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: Denis Arnaud To: git-commits@fedoraproject.org Subject: [rpms/soci] update-to-4.1.4: Fixed a g++-4.4 compatibility issue, within the PostgreSQL test, by adding Date: Sat, 20 Jun 2026 04:39:15 GMT Message-ID: <178193035544.1.11754778877478909275.rpms-soci-b58b972c3ec6@fedoraproject.org> List-ID: X-Git-Repo: rpms/soci X-Git-Branch: update-to-4.1.4 X-Git-Rev: b58b972c3ec6c23f34fac03b3d2507952b5ddf87 ICAgICAgICBBIG5ldyBjb21taXQgaGFzIGJlZW4gcHVzaGVkLgoKICAgICAgICBSZXBvICAgOiBy cG1zL3NvY2kKICAgICAgICBCcmFuY2ggOiB1cGRhdGUtdG8tNC4xLjQKICAgICAgICBDb21taXQg OiBiNThiOTcyYzNlYzZjMjNmMzRmYWMwM2IzZDI1MDc5NTJiNWRkZjg3CiAgICAgICAgQXV0aG9y IDogRGVuaXMgQXJuYXVkIDxkZW5pc2FybmF1ZEBmZWRvcmFwcm9qZWN0Lm9yZz4KICAgICAgICBE YXRlICAgOiAyMDEwLTAxLTIzVDE1OjE2OjQ5KzAwOjAwCiAgICAgICAgU3RhdHMgIDogKzYyOTcw Ly01OTg2MiBpbiA2IGZpbGUocykKICAgICAgICBVUkwgICAgOiBodHRwczovL3NyYy5mZWRvcmFw cm9qZWN0Lm9yZy9ycG1zL3NvY2kvYy9iNThiOTcyYzNlYzZjMjNmMzRmYWMwM2IzZDI1MDc5NTJi NWRkZjg3P2JyYW5jaD11cGRhdGUtdG8tNC4xLjQKCiAgICAgICAgTG9nOgogICAgICAgIEZpeGVk IGEgZysrLTQuNCBjb21wYXRpYmlsaXR5IGlzc3VlLCB3aXRoaW4gdGhlIFBvc3RncmVTUUwgdGVz dCwgYnkgYWRkaW5nCmEgY3N0cmluZyBpbmNsdWRlIGRpcmVjdGl2ZS4KCi0tLQpkaWZmIC0tZ2l0 IGEvaW1wb3J0LmxvZyBiL2ltcG9ydC5sb2cKaW5kZXggY2ZhNDRjNi4uYTc2NmZjNSAxMDA2NDQK LS0tIGEvaW1wb3J0LmxvZworKysgYi9pbXBvcnQubG9nCkBAIC01LDMgKzUsNCBAQCBzb2NpLTNf MF8wLTlfZmMxMDpIRUFEOnNvY2ktMy4wLjAtOS5mYzEwLnNyYy5ycG06MTI0MTU1OTczMgogc29j aS0zXzBfMC0xMF9mYzEwOkhFQUQ6c29jaS0zLjAuMC0xMC5mYzEwLnNyYy5ycG06MTI0MTU2MzMx MQogc29jaS0zXzBfMC0xMV9mYzEwOkhFQUQ6c29jaS0zLjAuMC0xMS5mYzEwLnNyYy5ycG06MTI0 MTU2NzE1Mwogc29jaS0zXzBfMC0xM19mYzExOkhFQUQ6c29jaS0zLjAuMC0xMy5mYzExLnNyYy5y cG06MTI0MzA4MDM3Mgorc29jaS0zXzBfMC0xNl9mYzEyOkhFQUQ6c29jaS0zLjAuMC0xNi5mYzEy LnNyYy5ycG06MTI2NDI1ODg0OQoKZGlmZiAtLWdpdCBhL3NvY2ktMy4wLjAtMTMtZml4LWdjYzQz LWNvbXBhdGliaWxpdHkucGF0Y2ggYi9zb2NpLTMuMC4wLTEzLWZpeC1nY2M0My1jb21wYXRpYmls aXR5LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2OTFiNWIyLi4wMDAwMDAw Ci0tLSBhL3NvY2ktMy4wLjAtMTMtZml4LWdjYzQzLWNvbXBhdGliaWxpdHkucGF0Y2gKKysrIC9k ZXYvbnVsbApAQCAtMSw5MSArMCwwIEBACi1kaWZmIC1OdXIgc29jaS0zLjAuMC9zcmMvYmFja2Vu ZHMvbXlzcWwvY29tbW9uLmggc29jaS0zLjAuMF80LXBhY2svc3JjL2JhY2tlbmRzL215c3FsL2Nv bW1vbi5oCi0tLS0gc29jaS0zLjAuMC9zcmMvYmFja2VuZHMvbXlzcWwvY29tbW9uLmgJMjAwOC0w Ny0wMyAwOToyMjo1Ny4wMDAwMDAwMDAgKzAyMDAKLSsrKyBzb2NpLTMuMC4wXzQtcGFjay9zcmMv YmFja2VuZHMvbXlzcWwvY29tbW9uLmgJMjAwOS0wNS0yMyAxMzoxMTowMy4wMDAwMDAwMDAgKzAy MDAKLUBAIC0xMCw2ICsxMCw3IEBACi0gCi0gI2luY2x1ZGUgPHNzdHJlYW0+Ci0gI2luY2x1ZGUg InNvY2ktbXlzcWwuaCIKLSsjaW5jbHVkZSA8Y3RpbWU+Ci0gCi0gbmFtZXNwYWNlIHNvY2kKLSB7 Ci1kaWZmIC1OdXIgc29jaS0zLjAuMC9zcmMvYmFja2VuZHMvbXlzcWwvc2Vzc2lvbi5jcHAgc29j aS0zLjAuMF80LXBhY2svc3JjL2JhY2tlbmRzL215c3FsL3Nlc3Npb24uY3BwCi0tLS0gc29jaS0z LjAuMC9zcmMvYmFja2VuZHMvbXlzcWwvc2Vzc2lvbi5jcHAJMjAwOC0wNS0xNSAxNTo1ODozOC4w MDAwMDAwMDAgKzAyMDAKLSsrKyBzb2NpLTMuMC4wXzQtcGFjay9zcmMvYmFja2VuZHMvbXlzcWwv c2Vzc2lvbi5jcHAJMjAwOS0wNS0yMyAxMzoxMTowMy4wMDAwMDAwMDAgKzAyMDAKLUBAIC0xMSw3 ICsxMSw4IEBACi0gI2luY2x1ZGUgPGNjdHlwZT4KLSAjaW5jbHVkZSA8Y2Vycm5vPgotICNpbmNs dWRlIDxjaXNvNjQ2PgotLQotKyNpbmNsdWRlIDxjc3RkbGliPgotKyNpbmNsdWRlIDxjbGltaXRz PgotIAotICNpZmRlZiBfTVNDX1ZFUgotICNwcmFnbWEgd2FybmluZyhkaXNhYmxlOjQzNTUpCi1k aWZmIC1OdXIgc29jaS0zLjAuMC9zcmMvYmFja2VuZHMvbXlzcWwvc3RhbmRhcmQtaW50by10eXBl LmNwcCBzb2NpLTMuMC4wXzQtcGFjay9zcmMvYmFja2VuZHMvbXlzcWwvc3RhbmRhcmQtaW50by10 eXBlLmNwcAotLS0tIHNvY2ktMy4wLjAvc3JjL2JhY2tlbmRzL215c3FsL3N0YW5kYXJkLWludG8t dHlwZS5jcHAJMjAwOC0wNS0zMCAxMzozMzo0NS4wMDAwMDAwMDAgKzAyMDAKLSsrKyBzb2NpLTMu MC4wXzQtcGFjay9zcmMvYmFja2VuZHMvbXlzcWwvc3RhbmRhcmQtaW50by10eXBlLmNwcAkyMDA5 LTA1LTIzIDEzOjExOjAzLjAwMDAwMDAwMCArMDIwMAotQEAgLTEyLDYgKzEyLDggQEAKLSAjaW5j bHVkZSAiY29tbW9uLmgiCi0gI2luY2x1ZGUgPGNpc282NDY+Ci0gI2luY2x1ZGUgPGNhc3NlcnQ+ Ci0rI2luY2x1ZGUgPGN0aW1lPgotKyNpbmNsdWRlIDxjc3RyaW5nPgotIAotICNpZmRlZiBfTVND X1ZFUgotICNwcmFnbWEgd2FybmluZyhkaXNhYmxlOjQzNTUpCi1kaWZmIC1OdXIgc29jaS0zLjAu MC9zcmMvYmFja2VuZHMvbXlzcWwvc3RhbmRhcmQtdXNlLXR5cGUuY3BwIHNvY2ktMy4wLjBfNC1w YWNrL3NyYy9iYWNrZW5kcy9teXNxbC9zdGFuZGFyZC11c2UtdHlwZS5jcHAKLS0tLSBzb2NpLTMu MC4wL3NyYy9iYWNrZW5kcy9teXNxbC9zdGFuZGFyZC11c2UtdHlwZS5jcHAJMjAwOC0wNS0xNSAx NTo1ODozOC4wMDAwMDAwMDAgKzAyMDAKLSsrKyBzb2NpLTMuMC4wXzQtcGFjay9zcmMvYmFja2Vu ZHMvbXlzcWwvc3RhbmRhcmQtdXNlLXR5cGUuY3BwCTIwMDktMDUtMjMgMTM6MjQ6NDIuMDAwMDAw MDAwICswMjAwCi1AQCAtMTAsOCArMTAsMTAgQEAKLSAjaW5jbHVkZSAic29jaS1teXNxbC5oIgot ICNpbmNsdWRlICJjb21tb24uaCIKLSAjaW5jbHVkZSA8c29jaS1wbGF0Zm9ybS5oPgotKy8vCi0g I2luY2x1ZGUgPGNpc282NDY+Ci0gI2luY2x1ZGUgPGxpbWl0cz4KLSsjaW5jbHVkZSA8Y3N0ZGlv PgotICNpbmNsdWRlIDxjc3RyaW5nPgotIAotICNpZmRlZiBfTVNDX1ZFUgotZGlmZiAtTnVyIHNv Y2ktMy4wLjAvc3JjL2JhY2tlbmRzL215c3FsL3ZlY3Rvci11c2UtdHlwZS5jcHAgc29jaS0zLjAu MF80LXBhY2svc3JjL2JhY2tlbmRzL215c3FsL3ZlY3Rvci11c2UtdHlwZS5jcHAKLS0tLSBzb2Np LTMuMC4wL3NyYy9iYWNrZW5kcy9teXNxbC92ZWN0b3ItdXNlLXR5cGUuY3BwCTIwMDgtMDUtMTUg MTU6NTg6MzguMDAwMDAwMDAwICswMjAwCi0rKysgc29jaS0zLjAuMF80LXBhY2svc3JjL2JhY2tl bmRzL215c3FsL3ZlY3Rvci11c2UtdHlwZS5jcHAJMjAwOS0wNS0yMyAxMzoyNToxMS4wMDAwMDAw MDAgKzAyMDAKLUBAIC0xMCw5ICsxMCwxMiBAQAotICNpbmNsdWRlICJzb2NpLW15c3FsLmgiCi0g I2luY2x1ZGUgImNvbW1vbi5oIgotICNpbmNsdWRlIDxzb2NpLXBsYXRmb3JtLmg+Ci0rLy8KLSAj aW5jbHVkZSA8Y2lzbzY0Nj4KLSAjaW5jbHVkZSA8bGltaXRzPgotKyNpbmNsdWRlIDxjc3RkaW8+ Ci0gI2luY2x1ZGUgPGNzdHJpbmc+Ci0rI2luY2x1ZGUgPGN0aW1lPgotIAotICNpZmRlZiBfTVND X1ZFUgotICNwcmFnbWEgd2FybmluZyhkaXNhYmxlOjQzNTUpCi1kaWZmIC1OdXIgc29jaS0zLjAu MC9zcmMvYmFja2VuZHMvcG9zdGdyZXNxbC9jb21tb24uY3BwIHNvY2ktMy4wLjBfNC1wYWNrL3Ny Yy9iYWNrZW5kcy9wb3N0Z3Jlc3FsL2NvbW1vbi5jcHAKLS0tLSBzb2NpLTMuMC4wL3NyYy9iYWNr ZW5kcy9wb3N0Z3Jlc3FsL2NvbW1vbi5jcHAJMjAwOC0wNi0yNyAxNjozODowNS4wMDAwMDAwMDAg KzAyMDAKLSsrKyBzb2NpLTMuMC4wXzQtcGFjay9zcmMvYmFja2VuZHMvcG9zdGdyZXNxbC9jb21t b24uY3BwCTIwMDktMDUtMjMgMTM6MjM6MzguMDAwMDAwMDAwICswMjAwCi1AQCAtNyw3ICs3LDkg QEAKLSAKLSAjaW5jbHVkZSAiY29tbW9uLmgiCi0gI2luY2x1ZGUgPHNvY2ktYmFja2VuZC5oPgot Ky8vCi0gI2luY2x1ZGUgPGNzdGRsaWI+Ci0rI2luY2x1ZGUgPGNzdGRpbz4KLSAjaW5jbHVkZSA8 Y3RpbWU+Ci0gCi0gCi1kaWZmIC1OdXIgc29jaS0zLjAuMC9zcmMvY29yZS9zb2NpLXNpbXBsZS5j cHAgc29jaS0zLjAuMF80LXBhY2svc3JjL2NvcmUvc29jaS1zaW1wbGUuY3BwCi0tLS0gc29jaS0z LjAuMC9zcmMvY29yZS9zb2NpLXNpbXBsZS5jcHAJMjAwOC0wNy0wMSAwOTo0MjoyNS4wMDAwMDAw MDAgKzAyMDAKLSsrKyBzb2NpLTMuMC4wXzQtcGFjay9zcmMvY29yZS9zb2NpLXNpbXBsZS5jcHAJ MjAwOS0wNS0yMyAxMzoyMToxNC4wMDAwMDAwMDAgKzAyMDAKLUBAIC05LDYgKzksOCBAQAotIAot ICNpbmNsdWRlICJzb2NpLXNpbXBsZS5oIgotICNpbmNsdWRlICJzb2NpLmgiCi0rLy8KLSsjaW5j bHVkZSA8Y3N0ZGlvPgotIAotIHVzaW5nIG5hbWVzcGFjZSBzb2NpOwotIAoKZGlmZiAtLWdpdCBh L3NvY2ktMy4wLjAtMTMtZml4LWdudS1hdXRvdG9vbHMtY29tcGF0aWJpbGl0eS5wYXRjaCBiL3Nv Y2ktMy4wLjAtMTMtZml4LWdudS1hdXRvdG9vbHMtY29tcGF0aWJpbGl0eS5wYXRjaApkZWxldGVk IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjZkMzQ2OS4uMDAwMDAwMAotLS0gYS9zb2NpLTMuMC4w LTEzLWZpeC1nbnUtYXV0b3Rvb2xzLWNvbXBhdGliaWxpdHkucGF0Y2gKKysrIC9kZXYvbnVsbApA QCAtMSw1OTc2NyArMCwwIEBACi1kaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svYWNsb2NhbC5t NCBzb2NpLTMuMC4wX3RyZXAzMDAvYWNsb2NhbC5tNAotLS0tIHNvY2ktMy4wLjBfNC1wYWNrL2Fj bG9jYWwubTQJMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBzb2NpLTMu MC4wX3RyZXAzMDAvYWNsb2NhbC5tNAkyMDA5LTA1LTIzIDEwOjAxOjU4LjAwMDAwMDAwMCArMDIw MAotQEAgLTAsMCArMSw4ODcgQEAKLSsjIGdlbmVyYXRlZCBhdXRvbWF0aWNhbGx5IGJ5IGFjbG9j YWwgMS4xMC4yIC0qLSBBdXRvY29uZiAtKi0KLSsKLSsjIENvcHlyaWdodCAoQykgMTk5NiwgMTk5 NywgMTk5OCwgMTk5OSwgMjAwMCwgMjAwMSwgMjAwMiwgMjAwMywgMjAwNCwKLSsjIDIwMDUsIDIw MDYsIDIwMDcsIDIwMDggIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgotKyMgVGhpcyBm aWxlIGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24KLSsjIGdp dmVzIHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNvcHkgYW5kL29yIGRpc3RyaWJ1dGUgaXQsCi0r IyB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9ucywgYXMgbG9uZyBhcyB0aGlzIG5vdGljZSBp cyBwcmVzZXJ2ZWQuCi0rCi0rIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhv cGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSsjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWSwg dG8gdGhlIGV4dGVudCBwZXJtaXR0ZWQgYnkgbGF3OyB3aXRob3V0Ci0rIyBldmVuIHRoZSBpbXBs aWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBCi0rIyBQQVJU SUNVTEFSIFBVUlBPU0UuCi0rCi0rbTRfaWZuZGVmKFtBQ19BVVRPQ09ORl9WRVJTSU9OXSwKLSsg IFttNF9jb3B5KFttNF9QQUNLQUdFX1ZFUlNJT05dLCBbQUNfQVVUT0NPTkZfVkVSU0lPTl0pXSlk bmwKLSttNF9pZihtNF9kZWZuKFtBQ19BVVRPQ09ORl9WRVJTSU9OXSksIFsyLjYzXSwsCi0rW200 X3dhcm5pbmcoW3RoaXMgZmlsZSB3YXMgZ2VuZXJhdGVkIGZvciBhdXRvY29uZiAyLjYzLgotK1lv dSBoYXZlIGFub3RoZXIgdmVyc2lvbiBvZiBhdXRvY29uZi4gIEl0IG1heSB3b3JrLCBidXQgaXMg bm90IGd1YXJhbnRlZWQgdG8uCi0rSWYgeW91IGhhdmUgcHJvYmxlbXMsIHlvdSBtYXkgbmVlZCB0 byByZWdlbmVyYXRlIHRoZSBidWlsZCBzeXN0ZW0gZW50aXJlbHkuCi0rVG8gZG8gc28sIHVzZSB0 aGUgcHJvY2VkdXJlIGRvY3VtZW50ZWQgYnkgdGhlIHBhY2thZ2UsIHR5cGljYWxseSBgYXV0b3Jl Y29uZicuXSldKQotKwotKyMgQ29weXJpZ2h0IChDKSAyMDAyLCAyMDAzLCAyMDA1LCAyMDA2LCAy MDA3LCAyMDA4ICBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KLSsjCi0rIyBUaGlzIGZp bGUgaXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbgotKyMgZ2l2 ZXMgdW5saW1pdGVkIHBlcm1pc3Npb24gdG8gY29weSBhbmQvb3IgZGlzdHJpYnV0ZSBpdCwKLSsj IHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb25zLCBhcyBsb25nIGFzIHRoaXMgbm90aWNlIGlz IHByZXNlcnZlZC4KLSsKLSsjIEFNX0FVVE9NQUtFX1ZFUlNJT04oVkVSU0lPTikKLSsjIC0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSsjIEF1dG9tYWtlIFguWSB0cmFjZXMgdGhpcyBtYWNy byB0byBlbnN1cmUgYWNsb2NhbC5tNCBoYXMgYmVlbgotKyMgZ2VuZXJhdGVkIGZyb20gdGhlIG00 IGZpbGVzIGFjY29tcGFueWluZyBBdXRvbWFrZSBYLlkuCi0rIyAoVGhpcyBwcml2YXRlIG1hY3Jv IHNob3VsZCBub3QgYmUgY2FsbGVkIG91dHNpZGUgdGhpcyBmaWxlLikKLStBQ19ERUZVTihbQU1f QVVUT01BS0VfVkVSU0lPTl0sCi0rW2FtX19hcGlfdmVyc2lvbj0nMS4xMCcKLStkbmwgU29tZSB1 c2VycyBmaW5kIEFNX0FVVE9NQUtFX1ZFUlNJT04gYW5kIG1pc3Rha2UgaXQgZm9yIGEgd2F5IHRv Ci0rZG5sIHJlcXVpcmUgc29tZSBtaW5pbXVtIHZlcnNpb24uICBQb2ludCB0aGVtIHRvIHRoZSBy aWdodCBtYWNyby4KLSttNF9pZihbJDFdLCBbMS4xMC4yXSwgW10sCi0rICAgICAgW0FDX0ZBVEFM KFtEbyBub3QgY2FsbCAkMCwgdXNlIEFNX0lOSVRfQVVUT01BS0UoWyQxXSkuXSldKWRubAotK10p Ci0rCi0rIyBfQU1fQVVUT0NPTkZfVkVSU0lPTihWRVJTSU9OKQotKyMgLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KLSsjIGFjbG9jYWwgdHJhY2VzIHRoaXMgbWFjcm8gdG8gZmluZCB0aGUg QXV0b2NvbmYgdmVyc2lvbi4KLSsjIFRoaXMgaXMgYSBwcml2YXRlIG1hY3JvIHRvby4gIFVzaW5n IG00X2RlZmluZSBzaW1wbGlmaWVzCi0rIyB0aGUgbG9naWMgaW4gYWNsb2NhbCwgd2hpY2ggY2Fu IHNpbXBseSBpZ25vcmUgdGhpcyBkZWZpbml0aW9uLgotK200X2RlZmluZShbX0FNX0FVVE9DT05G X1ZFUlNJT05dLCBbXSkKLSsKLSsjIEFNX1NFVF9DVVJSRU5UX0FVVE9NQUtFX1ZFUlNJT04KLSsj IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSsjIENhbGwgQU1fQVVUT01BS0VfVkVS U0lPTiBhbmQgQU1fQVVUT01BS0VfVkVSU0lPTiBzbyB0aGV5IGNhbiBiZSB0cmFjZWQuCi0rIyBU aGlzIGZ1bmN0aW9uIGlzIEFDX1JFUVVJUkVkIGJ5IEFNX0lOSVRfQVVUT01BS0UuCi0rQUNfREVG VU4oW0FNX1NFVF9DVVJSRU5UX0FVVE9NQUtFX1ZFUlNJT05dLAotK1tBTV9BVVRPTUFLRV9WRVJT SU9OKFsxLjEwLjJdKWRubAotK200X2lmbmRlZihbQUNfQVVUT0NPTkZfVkVSU0lPTl0sCi0rICBb bTRfY29weShbbTRfUEFDS0FHRV9WRVJTSU9OXSwgW0FDX0FVVE9DT05GX1ZFUlNJT05dKV0pZG5s Ci0rX0FNX0FVVE9DT05GX1ZFUlNJT04obTRfZGVmbihbQUNfQVVUT0NPTkZfVkVSU0lPTl0pKV0p Ci0rCi0rIyBBTV9BVVhfRElSX0VYUEFORCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgLSotIEF1dG9jb25mIC0qLQotKwotKyMgQ29weXJpZ2h0IChDKSAyMDAxLCAyMDAz LCAyMDA1ICBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KLSsjCi0rIyBUaGlzIGZpbGUg aXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbgotKyMgZ2l2ZXMg dW5saW1pdGVkIHBlcm1pc3Npb24gdG8gY29weSBhbmQvb3IgZGlzdHJpYnV0ZSBpdCwKLSsjIHdp dGggb3Igd2l0aG91dCBtb2RpZmljYXRpb25zLCBhcyBsb25nIGFzIHRoaXMgbm90aWNlIGlzIHBy ZXNlcnZlZC4KLSsKLSsjIEZvciBwcm9qZWN0cyB1c2luZyBBQ19DT05GSUdfQVVYX0RJUihbZm9v XSksIEF1dG9jb25mIHNldHMKLSsjICRhY19hdXhfZGlyIHRvIGAkc3JjZGlyL2ZvbycuICBJbiBv dGhlciBwcm9qZWN0cywgaXQgaXMgc2V0IHRvCi0rIyBgJHNyY2RpcicsIGAkc3JjZGlyLy4uJywg b3IgYCRzcmNkaXIvLi4vLi4nLgotKyMKLSsjIE9mIGNvdXJzZSwgQXV0b21ha2UgbXVzdCBob25v ciB0aGlzIHZhcmlhYmxlIHdoZW5ldmVyIGl0IGNhbGxzIGEKLSsjIHRvb2wgZnJvbSB0aGUgYXV4 aWxpYXJ5IGRpcmVjdG9yeS4gIFRoZSBwcm9ibGVtIGlzIHRoYXQgJHNyY2RpciAoYW5kCi0rIyB0 aGVyZWZvcmUgJGFjX2F1eF9kaXIgYXMgd2VsbCkgY2FuIGJlIGVpdGhlciBhYnNvbHV0ZSBvciBy ZWxhdGl2ZSwKLSsjIGRlcGVuZGluZyBvbiBob3cgY29uZmlndXJlIGlzIHJ1bi4gIFRoaXMgaXMg cHJldHR5IGFubm95aW5nLCBzaW5jZQotKyMgaXQgbWFrZXMgJGFjX2F1eF9kaXIgcXVpdGUgdW51 c2FibGUgaW4gc3ViZGlyZWN0b3JpZXM6IGluIHRoZSB0b3AKLSsjIHNvdXJjZSBkaXJlY3Rvcnks IGFueSBmb3JtIHdpbGwgd29yayBmaW5lLCBidXQgaW4gc3ViZGlyZWN0b3JpZXMgYQotKyMgcmVs YXRpdmUgcGF0aCBuZWVkcyB0byBiZSBhZGp1c3RlZCBmaXJzdC4KLSsjCi0rIyAkYWNfYXV4X2Rp ci9taXNzaW5nCi0rIyAgICBmYWlscyB3aGVuIGNhbGxlZCBmcm9tIGEgc3ViZGlyZWN0b3J5IGlm ICRhY19hdXhfZGlyIGlzIHJlbGF0aXZlCi0rIyAkdG9wX3NyY2Rpci8kYWNfYXV4X2Rpci9taXNz aW5nCi0rIyAgICBmYWlscyBpZiAkYWNfYXV4X2RpciBpcyBhYnNvbHV0ZSwKLSsjICAgIGZhaWxz IHdoZW4gY2FsbGVkIGZyb20gYSBzdWJkaXJlY3RvcnkgaW4gYSBWUEFUSCBidWlsZCB3aXRoCi0r IyAgICAgICAgICBhIHJlbGF0aXZlICRhY19hdXhfZGlyCi0rIwotKyMgVGhlIHJlYXNvbiBvZiB0 aGUgbGF0dGVyIGZhaWx1cmUgaXMgdGhhdCAkdG9wX3NyY2RpciBhbmQgJGFjX2F1eF9kaXIKLSsj IGFyZSBib3RoIHByZWZpeGVkIGJ5ICRzcmNkaXIuICBJbiBhbiBpbi1zb3VyY2UgYnVpbGQgdGhp cyBpcyB1c3VhbGx5Ci0rIyBoYXJtbGVzcyBiZWNhdXNlICRzcmNkaXIgaXMgYC4nLCBidXQgdGhp bmdzIHdpbGwgYnJva2Ugd2hlbiB5b3UKLSsjIHN0YXJ0IGEgVlBBVEggYnVpbGQgb3IgdXNlIGFu IGFic29sdXRlICRzcmNkaXIuCi0rIwotKyMgU28gd2UgY291bGQgdXNlIHNvbWV0aGluZyBzaW1p bGFyIHRvICR0b3Bfc3JjZGlyLyRhY19hdXhfZGlyL21pc3NpbmcsCi0rIyBpZmYgd2Ugc3RyaXAg dGhlIGxlYWRpbmcgJHNyY2RpciBmcm9tICRhY19hdXhfZGlyLiAgVGhhdCB3b3VsZCBiZToKLSsj ICAgYW1fYXV4X2Rpcj0nXCQodG9wX3NyY2RpcikvJ2BleHByICIkYWNfYXV4X2RpciIgOiAiJHNy Y2Rpci8vKlwoLipcKSJgCi0rIyBhbmQgdGhlbiB3ZSB3b3VsZCBkZWZpbmUgJE1JU1NJTkcgYXMK LSsjICAgTUlTU0lORz0iXCR7U0hFTEx9ICRhbV9hdXhfZGlyL21pc3NpbmciCi0rIyBUaGlzIHdp bGwgd29yayBhcyBsb25nIGFzIE1JU1NJTkcgaXMgbm90IGNhbGxlZCBmcm9tIGNvbmZpZ3VyZSwg YmVjYXVzZQotKyMgdW5mb3J0dW5hdGVseSAkKHRvcF9zcmNkaXIpIGhhcyBubyBtZWFuaW5nIGlu IGNvbmZpZ3VyZS4KLSsjIEhvd2V2ZXIgdGhlcmUgYXJlIG90aGVyIHZhcmlhYmxlcywgbGlrZSBD Qywgd2hpY2ggYXJlIG9mdGVuIHVzZWQgaW4KLSsjIGNvbmZpZ3VyZSwgYW5kIGNvdWxkIHRoZXJl Zm9yZSBub3QgdXNlIHRoaXMgImZpeGVkIiAkYWNfYXV4X2Rpci4KLSsjCi0rIyBBbm90aGVyIHNv bHV0aW9uLCB1c2VkIGhlcmUsIGlzIHRvIGFsd2F5cyBleHBhbmQgJGFjX2F1eF9kaXIgdG8gYW4K LSsjIGFic29sdXRlIFBBVEguICBUaGUgZHJhd2JhY2sgaXMgdGhhdCB1c2luZyBhYnNvbHV0ZSBw YXRocyBwcmV2ZW50IGEKLSsjIGNvbmZpZ3VyZWQgdHJlZSB0byBiZSBtb3ZlZCB3aXRob3V0IHJl Y29uZmlndXJhdGlvbi4KLSsKLStBQ19ERUZVTihbQU1fQVVYX0RJUl9FWFBBTkRdLAotK1tkbmwg UmVseSBvbiBhdXRvY29uZiB0byBzZXQgdXAgQ0RQQVRIIHByb3Blcmx5LgotK0FDX1BSRVJFUShb Mi41MF0pZG5sCi0rIyBleHBhbmQgJGFjX2F1eF9kaXIgdG8gYW4gYWJzb2x1dGUgcGF0aAotK2Ft X2F1eF9kaXI9YGNkICRhY19hdXhfZGlyICYmIHB3ZGAKLStdKQotKwotKyMgQU1fQ09ORElUSU9O QUwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0qLSBBdXRvY29u ZiAtKi0KLSsKLSsjIENvcHlyaWdodCAoQykgMTk5NywgMjAwMCwgMjAwMSwgMjAwMywgMjAwNCwg MjAwNSwgMjAwNgotKyMgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCi0rIwotKyMgVGhp cyBmaWxlIGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24KLSsj IGdpdmVzIHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNvcHkgYW5kL29yIGRpc3RyaWJ1dGUgaXQs Ci0rIyB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9ucywgYXMgbG9uZyBhcyB0aGlzIG5vdGlj ZSBpcyBwcmVzZXJ2ZWQuCi0rCi0rIyBzZXJpYWwgOAotKwotKyMgQU1fQ09ORElUSU9OQUwoTkFN RSwgU0hFTEwtQ09ORElUSU9OKQotKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQotKyMgRGVmaW5lIGEgY29uZGl0aW9uYWwuCi0rQUNfREVGVU4oW0FNX0NPTkRJVElPTkFM XSwKLStbQUNfUFJFUkVRKDIuNTIpZG5sCi0rIGlmZWxzZShbJDFdLCBbVFJVRV0sICBbQUNfRkFU QUwoWyQwOiBpbnZhbGlkIGNvbmRpdGlvbjogJDFdKV0sCi0rCVskMV0sIFtGQUxTRV0sIFtBQ19G QVRBTChbJDA6IGludmFsaWQgY29uZGl0aW9uOiAkMV0pXSlkbmwKLStBQ19TVUJTVChbJDFfVFJV RV0pZG5sCi0rQUNfU1VCU1QoWyQxX0ZBTFNFXSlkbmwKLStfQU1fU1VCU1RfTk9UTUFLRShbJDFf VFJVRV0pZG5sCi0rX0FNX1NVQlNUX05PVE1BS0UoWyQxX0ZBTFNFXSlkbmwKLStpZiAkMjsgdGhl bgotKyAgJDFfVFJVRT0KLSsgICQxX0ZBTFNFPScjJwotK2Vsc2UKLSsgICQxX1RSVUU9JyMnCi0r ICAkMV9GQUxTRT0KLStmaQotK0FDX0NPTkZJR19DT01NQU5EU19QUkUoCi0rW2lmIHRlc3QgLXog IiR7JDFfVFJVRX0iICYmIHRlc3QgLXogIiR7JDFfRkFMU0V9IjsgdGhlbgotKyAgQUNfTVNHX0VS Uk9SKFtbY29uZGl0aW9uYWwgIiQxIiB3YXMgbmV2ZXIgZGVmaW5lZC4KLStVc3VhbGx5IHRoaXMg bWVhbnMgdGhlIG1hY3JvIHdhcyBvbmx5IGludm9rZWQgY29uZGl0aW9uYWxseS5dXSkKLStmaV0p XSkKLSsKLSsjIENvcHlyaWdodCAoQykgMTk5OSwgMjAwMCwgMjAwMSwgMjAwMiwgMjAwMywgMjAw NCwgMjAwNSwgMjAwNgotKyMgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCi0rIwotKyMg VGhpcyBmaWxlIGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24K LSsjIGdpdmVzIHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNvcHkgYW5kL29yIGRpc3RyaWJ1dGUg aXQsCi0rIyB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9ucywgYXMgbG9uZyBhcyB0aGlzIG5v dGljZSBpcyBwcmVzZXJ2ZWQuCi0rCi0rIyBzZXJpYWwgOQotKwotKyMgVGhlcmUgYXJlIGEgZmV3 IGRpcnR5IGhhY2tzIGJlbG93IHRvIGF2b2lkIGxldHRpbmcgYEFDX1BST0dfQ0MnIGJlCi0rIyB3 cml0dGVuIGluIGNsZWFyLCBpbiB3aGljaCBjYXNlIGF1dG9tYWtlLCB3aGVuIHJlYWRpbmcgYWNs b2NhbC5tNCwKLSsjIHdpbGwgdGhpbmsgaXQgc2VlcyBhICp1c2UqLCBhbmQgdGhlcmVmb3JlIHdp bGwgdHJpZ2dlciBhbGwgaXQncwotKyMgQyBzdXBwb3J0IG1hY2hpbmVyeS4gIEFsc28gbm90ZSB0 aGF0IGl0IG1lYW5zIHRoYXQgYXV0b3NjYW4sIHNlZWluZwotKyMgQ0MgZXRjLiBpbiB0aGUgTWFr ZWZpbGUsIHdpbGwgYXNrIGZvciBhbiBBQ19QUk9HX0NDIHVzZS4uLgotKwotKwotKyMgX0FNX0RF UEVOREVOQ0lFUyhOQU1FKQotKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotKyMgU2VlIGhvdyB0 aGUgY29tcGlsZXIgaW1wbGVtZW50cyBkZXBlbmRlbmN5IGNoZWNraW5nLgotKyMgTkFNRSBpcyAi Q0MiLCAiQ1hYIiwgIkdDSiIsIG9yICJPQkpDIi4KLSsjIFdlIHRyeSBhIGZldyB0ZWNobmlxdWVz IGFuZCB1c2UgdGhhdCB0byBzZXQgYSBzaW5nbGUgY2FjaGUgdmFyaWFibGUuCi0rIwotKyMgV2Ug ZG9uJ3QgQUNfUkVRVUlSRSB0aGUgY29ycmVzcG9uZGluZyBBQ19QUk9HX0NDIHNpbmNlIHRoZSBs YXR0ZXIgd2FzCi0rIyBtb2RpZmllZCB0byBpbnZva2UgX0FNX0RFUEVOREVOQ0lFUyhDQyk7IHdl IHdvdWxkIGhhdmUgYSBjaXJjdWxhcgotKyMgZGVwZW5kZW5jeSwgYW5kIGdpdmVuIHRoYXQgdGhl IHVzZXIgaXMgbm90IGV4cGVjdGVkIHRvIHJ1biB0aGlzIG1hY3JvLAotKyMganVzdCByZWx5IG9u IEFDX1BST0dfQ0MuCi0rQUNfREVGVU4oW19BTV9ERVBFTkRFTkNJRVNdLAotK1tBQ19SRVFVSVJF KFtBTV9TRVRfREVQRElSXSlkbmwKLStBQ19SRVFVSVJFKFtBTV9PVVRQVVRfREVQRU5ERU5DWV9D T01NQU5EU10pZG5sCi0rQUNfUkVRVUlSRShbQU1fTUFLRV9JTkNMVURFXSlkbmwKLStBQ19SRVFV SVJFKFtBTV9ERVBfVFJBQ0tdKWRubAotKwotK2lmZWxzZShbJDFdLCBDQywgICBbZGVwY2M9IiRD QyIgICBhbV9jb21waWxlcl9saXN0PV0sCi0rICAgICAgIFskMV0sIENYWCwgIFtkZXBjYz0iJENY WCIgIGFtX2NvbXBpbGVyX2xpc3Q9XSwKLSsgICAgICAgWyQxXSwgT0JKQywgW2RlcGNjPSIkT0JK QyIgYW1fY29tcGlsZXJfbGlzdD0nZ2NjMyBnY2MnXSwKLSsgICAgICAgWyQxXSwgVVBDLCAgW2Rl cGNjPSIkVVBDIiAgYW1fY29tcGlsZXJfbGlzdD1dLAotKyAgICAgICBbJDFdLCBHQ0osICBbZGVw Y2M9IiRHQ0oiICBhbV9jb21waWxlcl9saXN0PSdnY2MzIGdjYyddLAotKyAgICAgICAgICAgICAg ICAgICBbZGVwY2M9IiQkMSIgICBhbV9jb21waWxlcl9saXN0PV0pCi0rCi0rQUNfQ0FDSEVfQ0hF Q0soW2RlcGVuZGVuY3kgc3R5bGUgb2YgJGRlcGNjXSwKLSsgICAgICAgICAgICAgICBbYW1fY3Zf JDFfZGVwZW5kZW5jaWVzX2NvbXBpbGVyX3R5cGVdLAotK1tpZiB0ZXN0IC16ICIkQU1ERVBfVFJV RSIgJiYgdGVzdCAtZiAiJGFtX2RlcGNvbXAiOyB0aGVuCi0rICAjIFdlIG1ha2UgYSBzdWJkaXIg YW5kIGRvIHRoZSB0ZXN0cyB0aGVyZS4gIE90aGVyd2lzZSB3ZSBjYW4gZW5kIHVwCi0rICAjIG1h a2luZyBib2d1cyBmaWxlcyB0aGF0IHdlIGRvbid0IGtub3cgYWJvdXQgYW5kIG5ldmVyIHJlbW92 ZS4gIEZvcgotKyAgIyBpbnN0YW5jZSBpdCB3YXMgcmVwb3J0ZWQgdGhhdCBvbiBIUC1VWCB0aGUg Z2NjIHRlc3Qgd2lsbCBlbmQgdXAKLSsgICMgbWFraW5nIGEgZHVtbXkgZmlsZSBuYW1lZCBgRCcg LS0gYmVjYXVzZSBgLU1EJyBtZWFucyBgcHV0IHRoZSBvdXRwdXQKLSsgICMgaW4gRCcuCi0rICBt a2RpciBjb25mdGVzdC5kaXIKLSsgICMgQ29weSBkZXBjb21wIHRvIHN1YmRpciBiZWNhdXNlIG90 aGVyd2lzZSB3ZSB3b24ndCBmaW5kIGl0IGlmIHdlJ3JlCi0rICAjIHVzaW5nIGEgcmVsYXRpdmUg ZGlyZWN0b3J5LgotKyAgY3AgIiRhbV9kZXBjb21wIiBjb25mdGVzdC5kaXIKLSsgIGNkIGNvbmZ0 ZXN0LmRpcgotKyAgIyBXZSB3aWxsIGJ1aWxkIG9iamVjdHMgYW5kIGRlcGVuZGVuY2llcyBpbiBh IHN1YmRpcmVjdG9yeSBiZWNhdXNlCi0rICAjIGl0IGhlbHBzIHRvIGRldGVjdCBpbmFwcGxpY2Fi bGUgZGVwZW5kZW5jeSBtb2Rlcy4gIEZvciBpbnN0YW5jZQotKyAgIyBib3RoIFRydTY0J3MgY2Mg YW5kIElDQyBzdXBwb3J0IC1NRCB0byBvdXRwdXQgZGVwZW5kZW5jaWVzIGFzIGEKLSsgICMgc2lk ZSBlZmZlY3Qgb2YgY29tcGlsYXRpb24sIGJ1dCBJQ0Mgd2lsbCBwdXQgdGhlIGRlcGVuZGVuY2ll cyBpbgotKyAgIyB0aGUgY3VycmVudCBkaXJlY3Rvcnkgd2hpbGUgVHJ1NjQgd2lsbCBwdXQgdGhl bSBpbiB0aGUgb2JqZWN0Ci0rICAjIGRpcmVjdG9yeS4KLSsgIG1rZGlyIHN1YgotKwotKyAgYW1f Y3ZfJDFfZGVwZW5kZW5jaWVzX2NvbXBpbGVyX3R5cGU9bm9uZQotKyAgaWYgdGVzdCAiJGFtX2Nv bXBpbGVyX2xpc3QiID0gIiI7IHRoZW4KLSsgICAgIGFtX2NvbXBpbGVyX2xpc3Q9YHNlZCAtbiBb J3MvXiMqXChbYS16QS1aMC05XSpcKSkkL1wxL3AnXSA8IC4vZGVwY29tcGAKLSsgIGZpCi0rICBm b3IgZGVwbW9kZSBpbiAkYW1fY29tcGlsZXJfbGlzdDsgZG8KLSsgICAgIyBTZXR1cCBhIHNvdXJj ZSB3aXRoIG1hbnkgZGVwZW5kZW5jaWVzLCBiZWNhdXNlIHNvbWUgY29tcGlsZXJzCi0rICAgICMg bGlrZSB0byB3cmFwIGxhcmdlIGRlcGVuZGVuY3kgbGlzdHMgb24gY29sdW1uIDgwICh3aXRoIFwp LCBhbmQKLSsgICAgIyB3ZSBzaG91bGQgbm90IGNob29zZSBhIGRlcGNvbXAgbW9kZSB3aGljaCBp cyBjb25mdXNlZCBieSB0aGlzLgotKyAgICAjCi0rICAgICMgV2UgbmVlZCB0byByZWNyZWF0ZSB0 aGVzZSBmaWxlcyBmb3IgZWFjaCB0ZXN0LCBhcyB0aGUgY29tcGlsZXIgbWF5Ci0rICAgICMgb3Zl cndyaXRlIHNvbWUgb2YgdGhlbSB3aGVuIHRlc3Rpbmcgd2l0aCBvYnNjdXJlIGNvbW1hbmQgbGlu ZXMuCi0rICAgICMgVGhpcyBoYXBwZW5zIGF0IGxlYXN0IHdpdGggdGhlIEFJWCBDIGNvbXBpbGVy LgotKyAgICA6ID4gc3ViL2NvbmZ0ZXN0LmMKLSsgICAgZm9yIGkgaW4gMSAyIDMgNCA1IDY7IGRv Ci0rICAgICAgZWNobyAnI2luY2x1ZGUgImNvbmZ0c3QnJGknLmgiJyA+PiBzdWIvY29uZnRlc3Qu YwotKyAgICAgICMgVXNpbmcgYDogPiBzdWIvY29uZnRzdCRpLmgnIGNyZWF0ZXMgb25seSBzdWIv Y29uZnRzdDEuaCB3aXRoCi0rICAgICAgIyBTb2xhcmlzIDgncyB7L3Vzcix9L2Jpbi9zaC4KLSsg ICAgICB0b3VjaCBzdWIvY29uZnRzdCRpLmgKLSsgICAgZG9uZQotKyAgICBlY2hvICIke2FtX19p bmNsdWRlfSAke2FtX19xdW90ZX1zdWIvY29uZnRlc3QuUG8ke2FtX19xdW90ZX0iID4gY29uZm1m Ci0rCi0rICAgIGNhc2UgJGRlcG1vZGUgaW4KLSsgICAgbm9zaWRlZWZmZWN0KQotKyAgICAgICMg YWZ0ZXIgdGhpcyB0YWcsIG1lY2hhbmlzbXMgYXJlIG5vdCBieSBzaWRlLWVmZmVjdCwgc28gdGhl eSdsbAotKyAgICAgICMgb25seSBiZSB1c2VkIHdoZW4gZXhwbGljaXRseSByZXF1ZXN0ZWQKLSsg ICAgICBpZiB0ZXN0ICJ4JGVuYWJsZV9kZXBlbmRlbmN5X3RyYWNraW5nIiA9IHh5ZXM7IHRoZW4K LSsJY29udGludWUKLSsgICAgICBlbHNlCi0rCWJyZWFrCi0rICAgICAgZmkKLSsgICAgICA7Owot KyAgICBub25lKSBicmVhayA7OwotKyAgICBlc2FjCi0rICAgICMgV2UgY2hlY2sgd2l0aCBgLWMn IGFuZCBgLW8nIGZvciB0aGUgc2FrZSBvZiB0aGUgImRhc2htc3Rkb3V0IgotKyAgICAjIG1vZGUu ICBJdCB0dXJucyBvdXQgdGhhdCB0aGUgU3VuUHJvIEMrKyBjb21waWxlciBkb2VzIG5vdCBwcm9w ZXJseQotKyAgICAjIGhhbmRsZSBgLU0gLW8nLCBhbmQgd2UgbmVlZCB0byBkZXRlY3QgdGhpcy4K LSsgICAgaWYgZGVwbW9kZT0kZGVwbW9kZSBcCi0rICAgICAgIHNvdXJjZT1zdWIvY29uZnRlc3Qu YyBvYmplY3Q9c3ViL2NvbmZ0ZXN0LiR7T0JKRVhULW99IFwKLSsgICAgICAgZGVwZmlsZT1zdWIv Y29uZnRlc3QuUG8gdG1wZGVwZmlsZT1zdWIvY29uZnRlc3QuVFBvIFwKLSsgICAgICAgJFNIRUxM IC4vZGVwY29tcCAkZGVwY2MgLWMgLW8gc3ViL2NvbmZ0ZXN0LiR7T0JKRVhULW99IHN1Yi9jb25m dGVzdC5jIFwKLSsgICAgICAgICA+L2Rldi9udWxsIDI+Y29uZnRlc3QuZXJyICYmCi0rICAgICAg IGdyZXAgc3ViL2NvbmZ0c3QxLmggc3ViL2NvbmZ0ZXN0LlBvID4gL2Rldi9udWxsIDI+JjEgJiYK LSsgICAgICAgZ3JlcCBzdWIvY29uZnRzdDYuaCBzdWIvY29uZnRlc3QuUG8gPiAvZGV2L251bGwg Mj4mMSAmJgotKyAgICAgICBncmVwIHN1Yi9jb25mdGVzdC4ke09CSkVYVC1vfSBzdWIvY29uZnRl c3QuUG8gPiAvZGV2L251bGwgMj4mMSAmJgotKyAgICAgICAke01BS0UtbWFrZX0gLXMgLWYgY29u Zm1mID4gL2Rldi9udWxsIDI+JjE7IHRoZW4KLSsgICAgICAjIGljYyBkb2Vzbid0IGNob2tlIG9u IHVua25vd24gb3B0aW9ucywgaXQgd2lsbCBqdXN0IGlzc3VlIHdhcm5pbmdzCi0rICAgICAgIyBv ciByZW1hcmtzIChldmVuIHdpdGggLVdlcnJvcikuICBTbyB3ZSBncmVwIHN0ZGVyciBmb3IgYW55 IG1lc3NhZ2UKLSsgICAgICAjIHRoYXQgc2F5cyBhbiBvcHRpb24gd2FzIGlnbm9yZWQgb3Igbm90 IHN1cHBvcnRlZC4KLSsgICAgICAjIFdoZW4gZ2l2ZW4gLU1QLCBpY2MgNy4wIGFuZCA3LjEgY29t cGxhaW4gdGh1c2x5OgotKyAgICAgICMgICBpY2M6IENvbW1hbmQgbGluZSB3YXJuaW5nOiBpZ25v cmluZyBvcHRpb24gJy1NJzsgbm8gYXJndW1lbnQgcmVxdWlyZWQKLSsgICAgICAjIFRoZSBkaWFn bm9zaXMgY2hhbmdlZCBpbiBpY2MgOC4wOgotKyAgICAgICMgICBpY2M6IENvbW1hbmQgbGluZSBy ZW1hcms6IG9wdGlvbiAnLU1QJyBub3Qgc3VwcG9ydGVkCi0rICAgICAgaWYgKGdyZXAgJ2lnbm9y aW5nIG9wdGlvbicgY29uZnRlc3QuZXJyIHx8Ci0rICAgICAgICAgIGdyZXAgJ25vdCBzdXBwb3J0 ZWQnIGNvbmZ0ZXN0LmVycikgPi9kZXYvbnVsbCAyPiYxOyB0aGVuIDo7IGVsc2UKLSsgICAgICAg IGFtX2N2XyQxX2RlcGVuZGVuY2llc19jb21waWxlcl90eXBlPSRkZXBtb2RlCi0rICAgICAgICBi cmVhawotKyAgICAgIGZpCi0rICAgIGZpCi0rICBkb25lCi0rCi0rICBjZCAuLgotKyAgcm0gLXJm IGNvbmZ0ZXN0LmRpcgotK2Vsc2UKLSsgIGFtX2N2XyQxX2RlcGVuZGVuY2llc19jb21waWxlcl90 eXBlPW5vbmUKLStmaQotK10pCi0rQUNfU1VCU1QoWyQxREVQTU9ERV0sIFtkZXBtb2RlPSRhbV9j dl8kMV9kZXBlbmRlbmNpZXNfY29tcGlsZXJfdHlwZV0pCi0rQU1fQ09ORElUSU9OQUwoW2FtX19m YXN0ZGVwJDFdLCBbCi0rICB0ZXN0ICJ4JGVuYWJsZV9kZXBlbmRlbmN5X3RyYWNraW5nIiAhPSB4 bm8gXAotKyAgJiYgdGVzdCAiJGFtX2N2XyQxX2RlcGVuZGVuY2llc19jb21waWxlcl90eXBlIiA9 IGdjYzNdKQotK10pCi0rCi0rCi0rIyBBTV9TRVRfREVQRElSCi0rIyAtLS0tLS0tLS0tLS0tCi0r IyBDaG9vc2UgYSBkaXJlY3RvcnkgbmFtZSBmb3IgZGVwZW5kZW5jeSBmaWxlcy4KLSsjIFRoaXMg bWFjcm8gaXMgQUNfUkVRVUlSRWQgaW4gX0FNX0RFUEVOREVOQ0lFUwotK0FDX0RFRlVOKFtBTV9T RVRfREVQRElSXSwKLStbQUNfUkVRVUlSRShbQU1fU0VUX0xFQURJTkdfRE9UXSlkbmwKLStBQ19T VUJTVChbREVQRElSXSwgWyIke2FtX19sZWFkaW5nX2RvdH1kZXBzIl0pZG5sCi0rXSkKLSsKLSsK LSsjIEFNX0RFUF9UUkFDSwotKyMgLS0tLS0tLS0tLS0tCi0rQUNfREVGVU4oW0FNX0RFUF9UUkFD S10sCi0rW0FDX0FSR19FTkFCTEUoZGVwZW5kZW5jeS10cmFja2luZywKLStbICAtLWRpc2FibGUt ZGVwZW5kZW5jeS10cmFja2luZyAgc3BlZWRzIHVwIG9uZS10aW1lIGJ1aWxkCi0rICAtLWVuYWJs ZS1kZXBlbmRlbmN5LXRyYWNraW5nICAgZG8gbm90IHJlamVjdCBzbG93IGRlcGVuZGVuY3kgZXh0 cmFjdG9yc10pCi0raWYgdGVzdCAieCRlbmFibGVfZGVwZW5kZW5jeV90cmFja2luZyIgIT0geG5v OyB0aGVuCi0rICBhbV9kZXBjb21wPSIkYWNfYXV4X2Rpci9kZXBjb21wIgotKyAgQU1ERVBCQUNL U0xBU0g9J1wnCi0rZmkKLStBTV9DT05ESVRJT05BTChbQU1ERVBdLCBbdGVzdCAieCRlbmFibGVf ZGVwZW5kZW5jeV90cmFja2luZyIgIT0geG5vXSkKLStBQ19TVUJTVChbQU1ERVBCQUNLU0xBU0hd KWRubAotK19BTV9TVUJTVF9OT1RNQUtFKFtBTURFUEJBQ0tTTEFTSF0pZG5sCi0rXSkKLSsKLSsj IEdlbmVyYXRlIGNvZGUgdG8gc2V0IHVwIGRlcGVuZGVuY3kgdHJhY2tpbmcuICAgICAgICAgICAg ICAtKi0gQXV0b2NvbmYgLSotCi0rCi0rIyBDb3B5cmlnaHQgKEMpIDE5OTksIDIwMDAsIDIwMDEs IDIwMDIsIDIwMDMsIDIwMDQsIDIwMDUsIDIwMDgKLSsjIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv biwgSW5jLgotKyMKLSsjIFRoaXMgZmlsZSBpcyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0 d2FyZSBGb3VuZGF0aW9uCi0rIyBnaXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5IGFu ZC9vciBkaXN0cmlidXRlIGl0LAotKyMgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbnMsIGFz IGxvbmcgYXMgdGhpcyBub3RpY2UgaXMgcHJlc2VydmVkLgotKwotKyNzZXJpYWwgNAotKwotKyMg X0FNX09VVFBVVF9ERVBFTkRFTkNZX0NPTU1BTkRTCi0rIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KLStBQ19ERUZVTihbX0FNX09VVFBVVF9ERVBFTkRFTkNZX0NPTU1BTkRTXSwKLStb IyBBdXRvY29uZiAyLjYyIHF1b3RlcyAtLWZpbGUgYXJndW1lbnRzIGZvciBldmFsLCBidXQgbm90 IHdoZW4gZmlsZXMKLSsjIGFyZSBsaXN0ZWQgd2l0aG91dCAtLWZpbGUuICBMZXQncyBwbGF5IHNh ZmUgYW5kIG9ubHkgZW5hYmxlIHRoZSBldmFsCi0rIyBpZiB3ZSBkZXRlY3QgdGhlIHF1b3Rpbmcu Ci0rY2FzZSAkQ09ORklHX0ZJTEVTIGluCi0rKlwnKikgZXZhbCBzZXQgeCAiJENPTkZJR19GSUxF UyIgOzsKLSsqKSAgIHNldCB4ICRDT05GSUdfRklMRVMgOzsKLStlc2FjCi0rc2hpZnQKLStmb3Ig bWYKLStkbwotKyAgIyBTdHJpcCBNRiBzbyB3ZSBlbmQgdXAgd2l0aCB0aGUgbmFtZSBvZiB0aGUg ZmlsZS4KLSsgIG1mPWBlY2hvICIkbWYiIHwgc2VkIC1lICdzLzouKiQvLydgCi0rICAjIENoZWNr IHdoZXRoZXIgdGhpcyBpcyBhbiBBdXRvbWFrZSBnZW5lcmF0ZWQgTWFrZWZpbGUgb3Igbm90Lgot KyAgIyBXZSB1c2VkIHRvIG1hdGNoIG9ubHkgdGhlIGZpbGVzIG5hbWVkIGBNYWtlZmlsZS5pbics IGJ1dAotKyAgIyBzb21lIHBlb3BsZSByZW5hbWUgdGhlbTsgc28gaW5zdGVhZCB3ZSBsb29rIGF0 IHRoZSBmaWxlIGNvbnRlbnQuCi0rICAjIEdyZXAnaW5nIHRoZSBmaXJzdCBsaW5lIGlzIG5vdCBl bm91Z2g6IHNvbWUgcGVvcGxlIHBvc3QtcHJvY2VzcwotKyAgIyBlYWNoIE1ha2VmaWxlLmluIGFu ZCBhZGQgYSBuZXcgbGluZSBvbiB0b3Agb2YgZWFjaCBmaWxlIHRvIHNheSBzby4KLSsgICMgR3Jl cCdpbmcgdGhlIHdob2xlIGZpbGUgaXMgbm90IGdvb2QgZWl0aGVyOiBBSVggZ3JlcCBoYXMgYSBs aW5lCi0rICAjIGxpbWl0IG9mIDIwNDgsIGJ1dCBhbGwgc2VkJ3Mgd2Uga25vdyBoYXZlIHVuZGVy c3RhbmQgYXQgbGVhc3QgNDAwMC4KLSsgIGlmIHNlZCAtbiAncyxeIy4qZ2VuZXJhdGVkIGJ5IGF1 dG9tYWtlLiosWCxwJyAiJG1mIiB8IGdyZXAgWCA+L2Rldi9udWxsIDI+JjE7IHRoZW4KLSsgICAg ZGlycGFydD1gQVNfRElSTkFNRSgiJG1mIilgCi0rICBlbHNlCi0rICAgIGNvbnRpbnVlCi0rICBm aQotKyAgIyBFeHRyYWN0IHRoZSBkZWZpbml0aW9uIG9mIERFUERJUiwgYW1fX2luY2x1ZGUsIGFu ZCBhbV9fcXVvdGUKLSsgICMgZnJvbSB0aGUgTWFrZWZpbGUgd2l0aG91dCBydW5uaW5nIGBtYWtl Jy4KLSsgIERFUERJUj1gc2VkIC1uICdzL15ERVBESVIgPSAvL3AnIDwgIiRtZiJgCi0rICB0ZXN0 IC16ICIkREVQRElSIiAmJiBjb250aW51ZQotKyAgYW1fX2luY2x1ZGU9YHNlZCAtbiAncy9eYW1f X2luY2x1ZGUgPSAvL3AnIDwgIiRtZiJgCi0rICB0ZXN0IC16ICJhbV9faW5jbHVkZSIgJiYgY29u dGludWUKLSsgIGFtX19xdW90ZT1gc2VkIC1uICdzL15hbV9fcXVvdGUgPSAvL3AnIDwgIiRtZiJg Ci0rICAjIFdoZW4gdXNpbmcgYW5zaTJrbnIsIFUgbWF5IGJlIGVtcHR5IG9yIGFuIHVuZGVyc2Nv cmU7IGV4cGFuZCBpdAotKyAgVT1gc2VkIC1uICdzL15VID0gLy9wJyA8ICIkbWYiYAotKyAgIyBG aW5kIGFsbCBkZXBlbmRlbmN5IG91dHB1dCBmaWxlcywgdGhleSBhcmUgaW5jbHVkZWQgZmlsZXMg d2l0aAotKyAgIyAkKERFUERJUikgaW4gdGhlaXIgbmFtZXMuICBXZSBpbnZva2Ugc2VkIHR3aWNl IGJlY2F1c2UgaXQgaXMgdGhlCi0rICAjIHNpbXBsZXN0IGFwcHJvYWNoIHRvIGNoYW5naW5nICQo REVQRElSKSB0byBpdHMgYWN0dWFsIHZhbHVlIGluIHRoZQotKyAgIyBleHBhbnNpb24uCi0rICBm b3IgZmlsZSBpbiBgc2VkIC1uICIKLSsgICAgcy9eJGFtX19pbmNsdWRlICRhbV9fcXVvdGVcKC4q KERFUERJUikuKlwpJGFtX19xdW90ZSInJC9cMS9wJyA8IiRtZiIgfCBcCi0rICAgICAgIHNlZCAt ZSAncy9cJChERVBESVIpLyciJERFUERJUiInL2cnIC1lICdzL1wkVS8nIiRVIicvZydgOyBkbwot KyAgICAjIE1ha2Ugc3VyZSB0aGUgZGlyZWN0b3J5IGV4aXN0cy4KLSsgICAgdGVzdCAtZiAiJGRp cnBhcnQvJGZpbGUiICYmIGNvbnRpbnVlCi0rICAgIGZkaXI9YEFTX0RJUk5BTUUoWyIkZmlsZSJd KWAKLSsgICAgQVNfTUtESVJfUChbJGRpcnBhcnQvJGZkaXJdKQotKyAgICAjIGVjaG8gImNyZWF0 aW5nICRkaXJwYXJ0LyRmaWxlIgotKyAgICBlY2hvICcjIGR1bW15JyA+ICIkZGlycGFydC8kZmls ZSIKLSsgIGRvbmUKLStkb25lCi0rXSkjIF9BTV9PVVRQVVRfREVQRU5ERU5DWV9DT01NQU5EUwot KwotKwotKyMgQU1fT1VUUFVUX0RFUEVOREVOQ1lfQ09NTUFORFMKLSsjIC0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCi0rIyBUaGlzIG1hY3JvIHNob3VsZCBvbmx5IGJlIGludm9rZWQgb25j ZSAtLSB1c2UgdmlhIEFDX1JFUVVJUkUuCi0rIwotKyMgVGhpcyBjb2RlIGlzIG9ubHkgcmVxdWly ZWQgd2hlbiBhdXRvbWF0aWMgZGVwZW5kZW5jeSB0cmFja2luZwotKyMgaXMgZW5hYmxlZC4gIEZJ WE1FLiAgVGhpcyBjcmVhdGVzIGVhY2ggYC5QJyBmaWxlIHRoYXQgd2Ugd2lsbAotKyMgbmVlZCBp biBvcmRlciB0byBib290c3RyYXAgdGhlIGRlcGVuZGVuY3kgaGFuZGxpbmcgY29kZS4KLStBQ19E RUZVTihbQU1fT1VUUFVUX0RFUEVOREVOQ1lfQ09NTUFORFNdLAotK1tBQ19DT05GSUdfQ09NTUFO RFMoW2RlcGZpbGVzXSwKLSsgICAgIFt0ZXN0IHgiJEFNREVQX1RSVUUiICE9IHgiIiB8fCBfQU1f T1VUUFVUX0RFUEVOREVOQ1lfQ09NTUFORFNdLAotKyAgICAgW0FNREVQX1RSVUU9IiRBTURFUF9U UlVFIiBhY19hdXhfZGlyPSIkYWNfYXV4X2RpciJdKQotK10pCi0rCi0rIyBEbyBhbGwgdGhlIHdv cmsgZm9yIEF1dG9tYWtlLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLSotIEF1dG9jb25m IC0qLQotKwotKyMgQ29weXJpZ2h0IChDKSAxOTk2LCAxOTk3LCAxOTk4LCAxOTk5LCAyMDAwLCAy MDAxLCAyMDAyLCAyMDAzLCAyMDA0LAotKyMgMjAwNSwgMjAwNiwgMjAwOCBGcmVlIFNvZnR3YXJl IEZvdW5kYXRpb24sIEluYy4KLSsjCi0rIyBUaGlzIGZpbGUgaXMgZnJlZSBzb2Z0d2FyZTsgdGhl IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbgotKyMgZ2l2ZXMgdW5saW1pdGVkIHBlcm1pc3Npb24g dG8gY29weSBhbmQvb3IgZGlzdHJpYnV0ZSBpdCwKLSsjIHdpdGggb3Igd2l0aG91dCBtb2RpZmlj YXRpb25zLCBhcyBsb25nIGFzIHRoaXMgbm90aWNlIGlzIHByZXNlcnZlZC4KLSsKLSsjIHNlcmlh bCAxMwotKwotKyMgVGhpcyBtYWNybyBhY3R1YWxseSBkb2VzIHRvbyBtdWNoLiAgU29tZSBjaGVj a3MgYXJlIG9ubHkgbmVlZGVkIGlmCi0rIyB5b3VyIHBhY2thZ2UgZG9lcyBjZXJ0YWluIHRoaW5n cy4gIEJ1dCB0aGlzIGlzbid0IHJlYWxseSBhIGJpZyBkZWFsLgotKwotKyMgQU1fSU5JVF9BVVRP TUFLRShQQUNLQUdFLCBWRVJTSU9OLCBbTk8tREVGSU5FXSkKLSsjIEFNX0lOSVRfQVVUT01BS0Uo W09QVElPTlNdKQotKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KLSsjIFRoZSBjYWxsIHdpdGggUEFDS0FHRSBhbmQgVkVSU0lPTiBhcmd1bWVudHMgaXMg dGhlIG9sZCBzdHlsZQotKyMgY2FsbCAocHJlIGF1dG9jb25mLTIuNTApLCB3aGljaCBpcyBiZWlu ZyBwaGFzZWQgb3V0LiAgUEFDS0FHRQotKyMgYW5kIFZFUlNJT04gc2hvdWxkIG5vdyBiZSBwYXNz ZWQgdG8gQUNfSU5JVCBhbmQgcmVtb3ZlZCBmcm9tCi0rIyB0aGUgY2FsbCB0byBBTV9JTklUX0FV VE9NQUtFLgotKyMgV2Ugc3VwcG9ydCBib3RoIGNhbGwgc3R5bGVzIGZvciB0aGUgdHJhbnNpdGlv bi4gIEFmdGVyCi0rIyB0aGUgbmV4dCBBdXRvbWFrZSByZWxlYXNlLCBBdXRvY29uZiBjYW4gbWFr ZSB0aGUgQUNfSU5JVAotKyMgYXJndW1lbnRzIG1hbmRhdG9yeSwgYW5kIHRoZW4gd2UgY2FuIGRl cGVuZCBvbiBhIG5ldyBBdXRvY29uZgotKyMgcmVsZWFzZSBhbmQgZHJvcCB0aGUgb2xkIGNhbGwg c3VwcG9ydC4KLStBQ19ERUZVTihbQU1fSU5JVF9BVVRPTUFLRV0sCi0rW0FDX1BSRVJFUShbMi42 MF0pZG5sCi0rZG5sIEF1dG9jb25mIHdhbnRzIHRvIGRpc2FsbG93IEFNXyBuYW1lcy4gIFdlIGV4 cGxpY2l0bHkgYWxsb3cKLStkbmwgdGhlIG9uZXMgd2UgY2FyZSBhYm91dC4KLSttNF9wYXR0ZXJu X2FsbG93KFteQU1fW0EtWl0rRkxBR1MkXSlkbmwKLStBQ19SRVFVSVJFKFtBTV9TRVRfQ1VSUkVO VF9BVVRPTUFLRV9WRVJTSU9OXSlkbmwKLStBQ19SRVFVSVJFKFtBQ19QUk9HX0lOU1RBTExdKWRu bAotK2lmIHRlc3QgImBjZCAkc3JjZGlyICYmIHB3ZGAiICE9ICJgcHdkYCI7IHRoZW4KLSsgICMg VXNlIC1JJChzcmNkaXIpIG9ubHkgd2hlbiAkKHNyY2RpcikgIT0gLiwgc28gdGhhdCBtYWtlJ3Mg b3V0cHV0Ci0rICAjIGlzIG5vdCBwb2xsdXRlZCB3aXRoIHJlcGVhdGVkICItSS4iCi0rICBBQ19T VUJTVChbYW1fX2lzcmNdLCBbJyAtSSQoc3JjZGlyKSddKV9BTV9TVUJTVF9OT1RNQUtFKFthbV9f aXNyY10pZG5sCi0rICAjIHRlc3QgdG8gc2VlIGlmIHNyY2RpciBhbHJlYWR5IGNvbmZpZ3VyZWQK LSsgIGlmIHRlc3QgLWYgJHNyY2Rpci9jb25maWcuc3RhdHVzOyB0aGVuCi0rICAgIEFDX01TR19F UlJPUihbc291cmNlIGRpcmVjdG9yeSBhbHJlYWR5IGNvbmZpZ3VyZWQ7IHJ1biAibWFrZSBkaXN0 Y2xlYW4iIHRoZXJlIGZpcnN0XSkKLSsgIGZpCi0rZmkKLSsKLSsjIHRlc3Qgd2hldGhlciB3ZSBo YXZlIGN5Z3BhdGgKLStpZiB0ZXN0IC16ICIkQ1lHUEFUSF9XIjsgdGhlbgotKyAgaWYgKGN5Z3Bh dGggLS12ZXJzaW9uKSA+L2Rldi9udWxsIDI+L2Rldi9udWxsOyB0aGVuCi0rICAgIENZR1BBVEhf Vz0nY3lncGF0aCAtdycKLSsgIGVsc2UKLSsgICAgQ1lHUEFUSF9XPWVjaG8KLSsgIGZpCi0rZmkK LStBQ19TVUJTVChbQ1lHUEFUSF9XXSkKLSsKLSsjIERlZmluZSB0aGUgaWRlbnRpdHkgb2YgdGhl IHBhY2thZ2UuCi0rZG5sIERpc3Rpbmd1aXNoIGJldHdlZW4gb2xkLXN0eWxlIGFuZCBuZXctc3R5 bGUgY2FsbHMuCi0rbTRfaWZ2YWwoWyQyXSwKLStbbTRfaWZ2YWwoWyQzXSwgW19BTV9TRVRfT1BU SU9OKFtuby1kZWZpbmVdKV0pZG5sCi0rIEFDX1NVQlNUKFtQQUNLQUdFXSwgWyQxXSlkbmwKLSsg QUNfU1VCU1QoW1ZFUlNJT05dLCBbJDJdKV0sCi0rW19BTV9TRVRfT1BUSU9OUyhbJDFdKWRubAot K2RubCBEaWFnbm9zZSBvbGQtc3R5bGUgQUNfSU5JVCB3aXRoIG5ldy1zdHlsZSBBTV9BVVRPTUFL RV9JTklULgotK200X2lmKG00X2lmZGVmKFtBQ19QQUNLQUdFX05BTUVdLCAxKW00X2lmZGVmKFtB Q19QQUNLQUdFX1ZFUlNJT05dLCAxKSwgMTEsLAotKyAgW200X2ZhdGFsKFtBQ19JTklUIHNob3Vs ZCBiZSBjYWxsZWQgd2l0aCBwYWNrYWdlIGFuZCB2ZXJzaW9uIGFyZ3VtZW50c10pXSlkbmwKLSsg QUNfU1VCU1QoW1BBQ0tBR0VdLCBbJ0FDX1BBQ0tBR0VfVEFSTkFNRSddKWRubAotKyBBQ19TVUJT VChbVkVSU0lPTl0sIFsnQUNfUEFDS0FHRV9WRVJTSU9OJ10pXSlkbmwKLSsKLStfQU1fSUZfT1BU SU9OKFtuby1kZWZpbmVdLCwKLStbQUNfREVGSU5FX1VOUVVPVEVEKFBBQ0tBR0UsICIkUEFDS0FH RSIsIFtOYW1lIG9mIHBhY2thZ2VdKQotKyBBQ19ERUZJTkVfVU5RVU9URUQoVkVSU0lPTiwgIiRW RVJTSU9OIiwgW1ZlcnNpb24gbnVtYmVyIG9mIHBhY2thZ2VdKV0pZG5sCi0rCi0rIyBTb21lIHRv b2xzIEF1dG9tYWtlIG5lZWRzLgotK0FDX1JFUVVJUkUoW0FNX1NBTklUWV9DSEVDS10pZG5sCi0r QUNfUkVRVUlSRShbQUNfQVJHX1BST0dSQU1dKWRubAotK0FNX01JU1NJTkdfUFJPRyhBQ0xPQ0FM LCBhY2xvY2FsLSR7YW1fX2FwaV92ZXJzaW9ufSkKLStBTV9NSVNTSU5HX1BST0coQVVUT0NPTkYs IGF1dG9jb25mKQotK0FNX01JU1NJTkdfUFJPRyhBVVRPTUFLRSwgYXV0b21ha2UtJHthbV9fYXBp X3ZlcnNpb259KQotK0FNX01JU1NJTkdfUFJPRyhBVVRPSEVBREVSLCBhdXRvaGVhZGVyKQotK0FN X01JU1NJTkdfUFJPRyhNQUtFSU5GTywgbWFrZWluZm8pCi0rQU1fUFJPR19JTlNUQUxMX1NICi0r QU1fUFJPR19JTlNUQUxMX1NUUklQCi0rQUNfUkVRVUlSRShbQU1fUFJPR19NS0RJUl9QXSlkbmwK LSsjIFdlIG5lZWQgYXdrIGZvciB0aGUgImNoZWNrIiB0YXJnZXQuICBUaGUgc3lzdGVtICJhd2si IGlzIGJhZCBvbgotKyMgc29tZSBwbGF0Zm9ybXMuCi0rQUNfUkVRVUlSRShbQUNfUFJPR19BV0td KWRubAotK0FDX1JFUVVJUkUoW0FDX1BST0dfTUFLRV9TRVRdKWRubAotK0FDX1JFUVVJUkUoW0FN X1NFVF9MRUFESU5HX0RPVF0pZG5sCi0rX0FNX0lGX09QVElPTihbdGFyLXVzdGFyXSwgW19BTV9Q Uk9HX1RBUihbdXN0YXJdKV0sCi0rICAgICAgICAgICAgICBbX0FNX0lGX09QVElPTihbdGFyLXBh eF0sIFtfQU1fUFJPR19UQVIoW3BheF0pXSwKLSsJICAgICAgCQkgICAgIFtfQU1fUFJPR19UQVIo W3Y3XSldKV0pCi0rX0FNX0lGX09QVElPTihbbm8tZGVwZW5kZW5jaWVzXSwsCi0rW0FDX1BST1ZJ REVfSUZFTFNFKFtBQ19QUk9HX0NDXSwKLSsgICAgICAgICAgICAgICAgICBbX0FNX0RFUEVOREVO Q0lFUyhDQyldLAotKyAgICAgICAgICAgICAgICAgIFtkZWZpbmUoW0FDX1BST0dfQ0NdLAotKyAg ICAgICAgICAgICAgICAgICAgICAgICAgZGVmbihbQUNfUFJPR19DQ10pW19BTV9ERVBFTkRFTkNJ RVMoQ0MpXSldKWRubAotK0FDX1BST1ZJREVfSUZFTFNFKFtBQ19QUk9HX0NYWF0sCi0rICAgICAg ICAgICAgICAgICAgW19BTV9ERVBFTkRFTkNJRVMoQ1hYKV0sCi0rICAgICAgICAgICAgICAgICAg W2RlZmluZShbQUNfUFJPR19DWFhdLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmbihb QUNfUFJPR19DWFhdKVtfQU1fREVQRU5ERU5DSUVTKENYWCldKV0pZG5sCi0rQUNfUFJPVklERV9J RkVMU0UoW0FDX1BST0dfT0JKQ10sCi0rICAgICAgICAgICAgICAgICAgW19BTV9ERVBFTkRFTkNJ RVMoT0JKQyldLAotKyAgICAgICAgICAgICAgICAgIFtkZWZpbmUoW0FDX1BST0dfT0JKQ10sCi0r ICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZuKFtBQ19QUk9HX09CSkNdKVtfQU1fREVQRU5E RU5DSUVTKE9CSkMpXSldKWRubAotK10pCi0rXSkKLSsKLSsKLSsjIFdoZW4gY29uZmlnLnN0YXR1 cyBnZW5lcmF0ZXMgYSBoZWFkZXIsIHdlIG11c3QgdXBkYXRlIHRoZSBzdGFtcC1oIGZpbGUuCi0r IyBUaGlzIGZpbGUgcmVzaWRlcyBpbiB0aGUgc2FtZSBkaXJlY3RvcnkgYXMgdGhlIGNvbmZpZyBo ZWFkZXIKLSsjIHRoYXQgaXMgZ2VuZXJhdGVkLiAgVGhlIHN0YW1wIGZpbGVzIGFyZSBudW1iZXJl ZCB0byBoYXZlIGRpZmZlcmVudCBuYW1lcy4KLSsKLSsjIEF1dG9jb25mIGNhbGxzIF9BQ19BTV9D T05GSUdfSEVBREVSX0hPT0sgKHdoZW4gZGVmaW5lZCkgaW4gdGhlCi0rIyBsb29wIHdoZXJlIGNv bmZpZy5zdGF0dXMgY3JlYXRlcyB0aGUgaGVhZGVycywgc28gd2UgY2FuIGdlbmVyYXRlCi0rIyBv dXIgc3RhbXAgZmlsZXMgdGhlcmUuCi0rQUNfREVGVU4oW19BQ19BTV9DT05GSUdfSEVBREVSX0hP T0tdLAotK1sjIENvbXB1dGUgJDEncyBpbmRleCBpbiAkY29uZmlnX2hlYWRlcnMuCi0rX2FtX2Fy Zz0kMQotK19hbV9zdGFtcF9jb3VudD0xCi0rZm9yIF9hbV9oZWFkZXIgaW4gJGNvbmZpZ19oZWFk ZXJzIDo7IGRvCi0rICBjYXNlICRfYW1faGVhZGVyIGluCi0rICAgICRfYW1fYXJnIHwgJF9hbV9h cmc6KiApCi0rICAgICAgYnJlYWsgOzsKLSsgICAgKiApCi0rICAgICAgX2FtX3N0YW1wX2NvdW50 PWBleHByICRfYW1fc3RhbXBfY291bnQgKyAxYCA7OwotKyAgZXNhYwotK2RvbmUKLStlY2hvICJ0 aW1lc3RhbXAgZm9yICRfYW1fYXJnIiA+YEFTX0RJUk5BTUUoWyIkX2FtX2FyZyJdKWAvc3RhbXAt aFtdJF9hbV9zdGFtcF9jb3VudF0pCi0rCi0rIyBDb3B5cmlnaHQgKEMpIDIwMDEsIDIwMDMsIDIw MDUgIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgotKyMKLSsjIFRoaXMgZmlsZSBpcyBm cmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCi0rIyBnaXZlcyB1bmxp bWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5IGFuZC9vciBkaXN0cmlidXRlIGl0LAotKyMgd2l0aCBv ciB3aXRob3V0IG1vZGlmaWNhdGlvbnMsIGFzIGxvbmcgYXMgdGhpcyBub3RpY2UgaXMgcHJlc2Vy dmVkLgotKwotKyMgQU1fUFJPR19JTlNUQUxMX1NICi0rIyAtLS0tLS0tLS0tLS0tLS0tLS0KLSsj IERlZmluZSAkaW5zdGFsbF9zaC4KLStBQ19ERUZVTihbQU1fUFJPR19JTlNUQUxMX1NIXSwKLStb QUNfUkVRVUlSRShbQU1fQVVYX0RJUl9FWFBBTkRdKWRubAotK2luc3RhbGxfc2g9JHtpbnN0YWxs X3NoLSJcJChTSEVMTCkgJGFtX2F1eF9kaXIvaW5zdGFsbC1zaCJ9Ci0rQUNfU1VCU1QoaW5zdGFs bF9zaCldKQotKwotKyMgQ29weXJpZ2h0IChDKSAyMDAzLCAyMDA1ICBGcmVlIFNvZnR3YXJlIEZv dW5kYXRpb24sIEluYy4KLSsjCi0rIyBUaGlzIGZpbGUgaXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZy ZWUgU29mdHdhcmUgRm91bmRhdGlvbgotKyMgZ2l2ZXMgdW5saW1pdGVkIHBlcm1pc3Npb24gdG8g Y29weSBhbmQvb3IgZGlzdHJpYnV0ZSBpdCwKLSsjIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRp b25zLCBhcyBsb25nIGFzIHRoaXMgbm90aWNlIGlzIHByZXNlcnZlZC4KLSsKLSsjIHNlcmlhbCAy Ci0rCi0rIyBDaGVjayB3aGV0aGVyIHRoZSB1bmRlcmx5aW5nIGZpbGUtc3lzdGVtIHN1cHBvcnRz IGZpbGVuYW1lcwotKyMgd2l0aCBhIGxlYWRpbmcgZG90LiAgRm9yIGluc3RhbmNlIE1TLURPUyBk b2Vzbid0LgotK0FDX0RFRlVOKFtBTV9TRVRfTEVBRElOR19ET1RdLAotK1tybSAtcmYgLnRzdCAy Pi9kZXYvbnVsbAotK21rZGlyIC50c3QgMj4vZGV2L251bGwKLStpZiB0ZXN0IC1kIC50c3Q7IHRo ZW4KLSsgIGFtX19sZWFkaW5nX2RvdD0uCi0rZWxzZQotKyAgYW1fX2xlYWRpbmdfZG90PV8KLStm aQotK3JtZGlyIC50c3QgMj4vZGV2L251bGwKLStBQ19TVUJTVChbYW1fX2xlYWRpbmdfZG90XSld KQotKwotKyMgQ2hlY2sgdG8gc2VlIGhvdyAnbWFrZScgdHJlYXRzIGluY2x1ZGVzLgkgICAgICAg ICAgICAtKi0gQXV0b2NvbmYgLSotCi0rCi0rIyBDb3B5cmlnaHQgKEMpIDIwMDEsIDIwMDIsIDIw MDMsIDIwMDUgIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgotKyMKLSsjIFRoaXMgZmls ZSBpcyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCi0rIyBnaXZl cyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5IGFuZC9vciBkaXN0cmlidXRlIGl0LAotKyMg d2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbnMsIGFzIGxvbmcgYXMgdGhpcyBub3RpY2UgaXMg cHJlc2VydmVkLgotKwotKyMgc2VyaWFsIDMKLSsKLSsjIEFNX01BS0VfSU5DTFVERSgpCi0rIyAt LS0tLS0tLS0tLS0tLS0tLQotKyMgQ2hlY2sgdG8gc2VlIGhvdyBtYWtlIHRyZWF0cyBpbmNsdWRl cy4KLStBQ19ERUZVTihbQU1fTUFLRV9JTkNMVURFXSwKLStbYW1fbWFrZT0ke01BS0UtbWFrZX0K LStjYXQgPiBjb25maW5jIDw8ICdFTkQnCi0rYW1fX2RvaXQ6Ci0rCUBlY2hvIGRvbmUKLSsuUEhP Tlk6IGFtX19kb2l0Ci0rRU5ECi0rIyBJZiB3ZSBkb24ndCBmaW5kIGFuIGluY2x1ZGUgZGlyZWN0 aXZlLCBqdXN0IGNvbW1lbnQgb3V0IHRoZSBjb2RlLgotK0FDX01TR19DSEVDS0lORyhbZm9yIHN0 eWxlIG9mIGluY2x1ZGUgdXNlZCBieSAkYW1fbWFrZV0pCi0rYW1fX2luY2x1ZGU9IiMiCi0rYW1f X3F1b3RlPQotK19hbV9yZXN1bHQ9bm9uZQotKyMgRmlyc3QgdHJ5IEdOVSBtYWtlIHN0eWxlIGlu Y2x1ZGUuCi0rZWNobyAiaW5jbHVkZSBjb25maW5jIiA+IGNvbmZtZgotKyMgV2UgZ3JlcCBvdXQg YEVudGVyaW5nIGRpcmVjdG9yeScgYW5kIGBMZWF2aW5nIGRpcmVjdG9yeScKLSsjIG1lc3NhZ2Vz IHdoaWNoIGNhbiBvY2N1ciBpZiBgdycgZW5kcyB1cCBpbiBNQUtFRkxBR1MuCi0rIyBJbiBwYXJ0 aWN1bGFyIHdlIGRvbid0IGxvb2sgYXQgYF5tYWtlOicgYmVjYXVzZSBHTlUgbWFrZSBtaWdodAot KyMgYmUgaW52b2tlZCB1bmRlciBzb21lIG90aGVyIG5hbWUgKHVzdWFsbHkgImdtYWtlIiksIGlu IHdoaWNoCi0rIyBjYXNlIGl0IHByaW50cyBpdHMgbmV3IG5hbWUgaW5zdGVhZCBvZiBgbWFrZScu Ci0raWYgdGVzdCAiYCRhbV9tYWtlIC1zIC1mIGNvbmZtZiAyPiAvZGV2L251bGwgfCBncmVwIC12 ICdpbmcgZGlyZWN0b3J5J2AiID0gImRvbmUiOyB0aGVuCi0rICAgYW1fX2luY2x1ZGU9aW5jbHVk ZQotKyAgIGFtX19xdW90ZT0KLSsgICBfYW1fcmVzdWx0PUdOVQotK2ZpCi0rIyBOb3cgdHJ5IEJT RCBtYWtlIHN0eWxlIGluY2x1ZGUuCi0raWYgdGVzdCAiJGFtX19pbmNsdWRlIiA9ICIjIjsgdGhl bgotKyAgIGVjaG8gJy5pbmNsdWRlICJjb25maW5jIicgPiBjb25mbWYKLSsgICBpZiB0ZXN0ICJg JGFtX21ha2UgLXMgLWYgY29uZm1mIDI+IC9kZXYvbnVsbGAiID0gImRvbmUiOyB0aGVuCi0rICAg ICAgYW1fX2luY2x1ZGU9LmluY2x1ZGUKLSsgICAgICBhbV9fcXVvdGU9IlwiIgotKyAgICAgIF9h bV9yZXN1bHQ9QlNECi0rICAgZmkKLStmaQotK0FDX1NVQlNUKFthbV9faW5jbHVkZV0pCi0rQUNf U1VCU1QoW2FtX19xdW90ZV0pCi0rQUNfTVNHX1JFU1VMVChbJF9hbV9yZXN1bHRdKQotK3JtIC1m IGNvbmZpbmMgY29uZm1mCi0rXSkKLSsKLSsjIEZha2UgdGhlIGV4aXN0ZW5jZSBvZiBwcm9ncmFt cyB0aGF0IEdOVSBtYWludGFpbmVycyB1c2UuICAtKi0gQXV0b2NvbmYgLSotCi0rCi0rIyBDb3B5 cmlnaHQgKEMpIDE5OTcsIDE5OTksIDIwMDAsIDIwMDEsIDIwMDMsIDIwMDQsIDIwMDUKLSsjIEZy ZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgotKyMKLSsjIFRoaXMgZmlsZSBpcyBmcmVlIHNv ZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCi0rIyBnaXZlcyB1bmxpbWl0ZWQg cGVybWlzc2lvbiB0byBjb3B5IGFuZC9vciBkaXN0cmlidXRlIGl0LAotKyMgd2l0aCBvciB3aXRo b3V0IG1vZGlmaWNhdGlvbnMsIGFzIGxvbmcgYXMgdGhpcyBub3RpY2UgaXMgcHJlc2VydmVkLgot KwotKyMgc2VyaWFsIDUKLSsKLSsjIEFNX01JU1NJTkdfUFJPRyhOQU1FLCBQUk9HUkFNKQotKyMg LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0rQUNfREVGVU4oW0FNX01JU1NJTkdfUFJP R10sCi0rW0FDX1JFUVVJUkUoW0FNX01JU1NJTkdfSEFTX1JVTl0pCi0rJDE9JHskMS0iJHthbV9t aXNzaW5nX3J1bn0kMiJ9Ci0rQUNfU1VCU1QoJDEpXSkKLSsKLSsKLSsjIEFNX01JU1NJTkdfSEFT X1JVTgotKyMgLS0tLS0tLS0tLS0tLS0tLS0tCi0rIyBEZWZpbmUgTUlTU0lORyBpZiBub3QgZGVm aW5lZCBzbyBmYXIgYW5kIHRlc3QgaWYgaXQgc3VwcG9ydHMgLS1ydW4uCi0rIyBJZiBpdCBkb2Vz LCBzZXQgYW1fbWlzc2luZ19ydW4gdG8gdXNlIGl0LCBvdGhlcndpc2UsIHRvIG5vdGhpbmcuCi0r QUNfREVGVU4oW0FNX01JU1NJTkdfSEFTX1JVTl0sCi0rW0FDX1JFUVVJUkUoW0FNX0FVWF9ESVJf RVhQQU5EXSlkbmwKLStBQ19SRVFVSVJFX0FVWF9GSUxFKFttaXNzaW5nXSlkbmwKLSt0ZXN0IHgi JHtNSVNTSU5HK3NldH0iID0geHNldCB8fCBNSVNTSU5HPSJcJHtTSEVMTH0gJGFtX2F1eF9kaXIv bWlzc2luZyIKLSsjIFVzZSBldmFsIHRvIGV4cGFuZCAkU0hFTEwKLStpZiBldmFsICIkTUlTU0lO RyAtLXJ1biB0cnVlIjsgdGhlbgotKyAgYW1fbWlzc2luZ19ydW49IiRNSVNTSU5HIC0tcnVuICIK LStlbHNlCi0rICBhbV9taXNzaW5nX3J1bj0KLSsgIEFDX01TR19XQVJOKFtgbWlzc2luZycgc2Ny aXB0IGlzIHRvbyBvbGQgb3IgbWlzc2luZ10pCi0rZmkKLStdKQotKwotKyMgQ29weXJpZ2h0IChD KSAyMDAzLCAyMDA0LCAyMDA1LCAyMDA2ICBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4K LSsjCi0rIyBUaGlzIGZpbGUgaXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91 bmRhdGlvbgotKyMgZ2l2ZXMgdW5saW1pdGVkIHBlcm1pc3Npb24gdG8gY29weSBhbmQvb3IgZGlz dHJpYnV0ZSBpdCwKLSsjIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb25zLCBhcyBsb25nIGFz IHRoaXMgbm90aWNlIGlzIHByZXNlcnZlZC4KLSsKLSsjIEFNX1BST0dfTUtESVJfUAotKyMgLS0t LS0tLS0tLS0tLS0tCi0rIyBDaGVjayBmb3IgYG1rZGlyIC1wJy4KLStBQ19ERUZVTihbQU1fUFJP R19NS0RJUl9QXSwKLStbQUNfUFJFUkVRKFsyLjYwXSlkbmwKLStBQ19SRVFVSVJFKFtBQ19QUk9H X01LRElSX1BdKWRubAotK2RubCBBdXRvbWFrZSAxLjggdG8gMS45LjYgdXNlZCB0byBkZWZpbmUg bWtkaXJfcC4gIFdlIG5vdyB1c2UgTUtESVJfUCwKLStkbmwgd2hpbGUga2VlcGluZyBhIGRlZmlu aXRpb24gb2YgbWtkaXJfcCBmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eS4KLStkbmwgQE1LRElS X1BAIGlzIG1hZ2ljOiBBQ19PVVRQVVQgYWRqdXN0cyBpdHMgdmFsdWUgZm9yIGVhY2ggTWFrZWZp bGUuCi0rZG5sIEhvd2V2ZXIgd2UgY2Fubm90IGRlZmluZSBta2Rpcl9wIGFzICQoTUtESVJfUCkg Zm9yIHRoZSBzYWtlIG9mCi0rZG5sIE1ha2VmaWxlLmlucyB0aGF0IGRvIG5vdCBkZWZpbmUgTUtE SVJfUCwgc28gd2UgZG8gb3VyIG93bgotK2RubCBhZGp1c3RtZW50IHVzaW5nIHRvcF9idWlsZGRp ciAod2hpY2ggaXMgZGVmaW5lZCBtb3JlIG9mdGVuIHRoYW4KLStkbmwgTUtESVJfUCkuCi0rQUNf U1VCU1QoW21rZGlyX3BdLCBbIiRNS0RJUl9QIl0pZG5sCi0rY2FzZSAkbWtkaXJfcCBpbgotKyAg W1tcXC8kXV0qIHwgPzpbW1xcL11dKikgOzsKLSsgICovKikgbWtkaXJfcD0iXCQodG9wX2J1aWxk ZGlyKS8kbWtkaXJfcCIgOzsKLStlc2FjCi0rXSkKLSsKLSsjIEhlbHBlciBmdW5jdGlvbnMgZm9y IG9wdGlvbiBoYW5kbGluZy4gICAgICAgICAgICAgICAgICAgICAtKi0gQXV0b2NvbmYgLSotCi0r Ci0rIyBDb3B5cmlnaHQgKEMpIDIwMDEsIDIwMDIsIDIwMDMsIDIwMDUsIDIwMDggIEZyZWUgU29m dHdhcmUgRm91bmRhdGlvbiwgSW5jLgotKyMKLSsjIFRoaXMgZmlsZSBpcyBmcmVlIHNvZnR3YXJl OyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCi0rIyBnaXZlcyB1bmxpbWl0ZWQgcGVybWlz c2lvbiB0byBjb3B5IGFuZC9vciBkaXN0cmlidXRlIGl0LAotKyMgd2l0aCBvciB3aXRob3V0IG1v ZGlmaWNhdGlvbnMsIGFzIGxvbmcgYXMgdGhpcyBub3RpY2UgaXMgcHJlc2VydmVkLgotKwotKyMg c2VyaWFsIDQKLSsKLSsjIF9BTV9NQU5HTEVfT1BUSU9OKE5BTUUpCi0rIyAtLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQotK0FDX0RFRlVOKFtfQU1fTUFOR0xFX09QVElPTl0sCi0rW1tfQU1fT1BUSU9O X11tNF9icGF0c3Vic3QoJDEsIFtbXmEtekEtWjAtOV9dXSwgW19dKV0pCi0rCi0rIyBfQU1fU0VU X09QVElPTihOQU1FKQotKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0rIyBTZXQg b3B0aW9uIE5BTUUuICBQcmVzZW50bHkgdGhhdCBvbmx5IG1lYW5zIGRlZmluaW5nIGEgZmxhZyBm b3IgdGhpcyBvcHRpb24uCi0rQUNfREVGVU4oW19BTV9TRVRfT1BUSU9OXSwKLStbbTRfZGVmaW5l KF9BTV9NQU5HTEVfT1BUSU9OKFskMV0pLCAxKV0pCi0rCi0rIyBfQU1fU0VUX09QVElPTlMoT1BU SU9OUykKLSsjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSsjIE9QVElPTlMg aXMgYSBzcGFjZS1zZXBhcmF0ZWQgbGlzdCBvZiBBdXRvbWFrZSBvcHRpb25zLgotK0FDX0RFRlVO KFtfQU1fU0VUX09QVElPTlNdLAotK1ttNF9mb3JlYWNoX3coW19BTV9PcHRpb25dLCBbJDFdLCBb X0FNX1NFVF9PUFRJT04oX0FNX09wdGlvbildKV0pCi0rCi0rIyBfQU1fSUZfT1BUSU9OKE9QVElP TiwgSUYtU0VULCBbSUYtTk9ULVNFVF0pCi0rIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCi0rIyBFeGVjdXRlIElGLVNFVCBpZiBPUFRJT04gaXMgc2V0LCBJRi1O T1QtU0VUIG90aGVyd2lzZS4KLStBQ19ERUZVTihbX0FNX0lGX09QVElPTl0sCi0rW200X2lmc2V0 KF9BTV9NQU5HTEVfT1BUSU9OKFskMV0pLCBbJDJdLCBbJDNdKV0pCi0rCi0rIyBDaGVjayB0byBt YWtlIHN1cmUgdGhhdCB0aGUgYnVpbGQgZW52aXJvbm1lbnQgaXMgc2FuZS4gICAgLSotIEF1dG9j b25mIC0qLQotKwotKyMgQ29weXJpZ2h0IChDKSAxOTk2LCAxOTk3LCAyMDAwLCAyMDAxLCAyMDAz LCAyMDA1Ci0rIyBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KLSsjCi0rIyBUaGlzIGZp bGUgaXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbgotKyMgZ2l2 ZXMgdW5saW1pdGVkIHBlcm1pc3Npb24gdG8gY29weSBhbmQvb3IgZGlzdHJpYnV0ZSBpdCwKLSsj IHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb25zLCBhcyBsb25nIGFzIHRoaXMgbm90aWNlIGlz IHByZXNlcnZlZC4KLSsKLSsjIHNlcmlhbCA0Ci0rCi0rIyBBTV9TQU5JVFlfQ0hFQ0sKLSsjIC0t LS0tLS0tLS0tLS0tLQotK0FDX0RFRlVOKFtBTV9TQU5JVFlfQ0hFQ0tdLAotK1tBQ19NU0dfQ0hF Q0tJTkcoW3doZXRoZXIgYnVpbGQgZW52aXJvbm1lbnQgaXMgc2FuZV0pCi0rIyBKdXN0IGluIGNh c2UKLStzbGVlcCAxCi0rZWNobyB0aW1lc3RhbXAgPiBjb25mdGVzdC5maWxlCi0rIyBEbyBgc2V0 JyBpbiBhIHN1YnNoZWxsIHNvIHdlIGRvbid0IGNsb2JiZXIgdGhlIGN1cnJlbnQgc2hlbGwncwot KyMgYXJndW1lbnRzLiAgTXVzdCB0cnkgLUwgZmlyc3QgaW4gY2FzZSBjb25maWd1cmUgaXMgYWN0 dWFsbHkgYQotKyMgc3ltbGluazsgc29tZSBzeXN0ZW1zIHBsYXkgd2VpcmQgZ2FtZXMgd2l0aCB0 aGUgbW9kIHRpbWUgb2Ygc3ltbGlua3MKLSsjIChlZyBGcmVlQlNEIHJldHVybnMgdGhlIG1vZCB0 aW1lIG9mIHRoZSBzeW1saW5rJ3MgY29udGFpbmluZwotKyMgZGlyZWN0b3J5KS4KLStpZiAoCi0r ICAgc2V0IFggYGxzIC1MdCAkc3JjZGlyL2NvbmZpZ3VyZSBjb25mdGVzdC5maWxlIDI+IC9kZXYv bnVsbGAKLSsgICBpZiB0ZXN0ICIkWypdIiA9ICJYIjsgdGhlbgotKyAgICAgICMgLUwgZGlkbid0 IHdvcmsuCi0rICAgICAgc2V0IFggYGxzIC10ICRzcmNkaXIvY29uZmlndXJlIGNvbmZ0ZXN0LmZp bGVgCi0rICAgZmkKLSsgICBybSAtZiBjb25mdGVzdC5maWxlCi0rICAgaWYgdGVzdCAiJFsqXSIg IT0gIlggJHNyY2Rpci9jb25maWd1cmUgY29uZnRlc3QuZmlsZSIgXAotKyAgICAgICYmIHRlc3Qg IiRbKl0iICE9ICJYIGNvbmZ0ZXN0LmZpbGUgJHNyY2Rpci9jb25maWd1cmUiOyB0aGVuCi0rCi0r ICAgICAgIyBJZiBuZWl0aGVyIG1hdGNoZWQsIHRoZW4gd2UgaGF2ZSBhIGJyb2tlbiBscy4gIFRo aXMgY2FuIGhhcHBlbgotKyAgICAgICMgaWYsIGZvciBpbnN0YW5jZSwgQ09ORklHX1NIRUxMIGlz IGJhc2ggYW5kIGl0IGluaGVyaXRzIGEKLSsgICAgICAjIGJyb2tlbiBscyBhbGlhcyBmcm9tIHRo ZSBlbnZpcm9ubWVudC4gIFRoaXMgaGFzIGFjdHVhbGx5Ci0rICAgICAgIyBoYXBwZW5lZC4gIFN1 Y2ggYSBzeXN0ZW0gY291bGQgbm90IGJlIGNvbnNpZGVyZWQgInNhbmUiLgotKyAgICAgIEFDX01T R19FUlJPUihbbHMgLXQgYXBwZWFycyB0byBmYWlsLiAgTWFrZSBzdXJlIHRoZXJlIGlzIG5vdCBh IGJyb2tlbgotK2FsaWFzIGluIHlvdXIgZW52aXJvbm1lbnRdKQotKyAgIGZpCi0rCi0rICAgdGVz dCAiJFsyXSIgPSBjb25mdGVzdC5maWxlCi0rICAgKQotK3RoZW4KLSsgICAjIE9rLgotKyAgIDoK LStlbHNlCi0rICAgQUNfTVNHX0VSUk9SKFtuZXdseSBjcmVhdGVkIGZpbGUgaXMgb2xkZXIgdGhh biBkaXN0cmlidXRlZCBmaWxlcyEKLStDaGVjayB5b3VyIHN5c3RlbSBjbG9ja10pCi0rZmkKLStB Q19NU0dfUkVTVUxUKHllcyldKQotKwotKyMgQ29weXJpZ2h0IChDKSAyMDAxLCAyMDAzLCAyMDA1 ICBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KLSsjCi0rIyBUaGlzIGZpbGUgaXMgZnJl ZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbgotKyMgZ2l2ZXMgdW5saW1p dGVkIHBlcm1pc3Npb24gdG8gY29weSBhbmQvb3IgZGlzdHJpYnV0ZSBpdCwKLSsjIHdpdGggb3Ig d2l0aG91dCBtb2RpZmljYXRpb25zLCBhcyBsb25nIGFzIHRoaXMgbm90aWNlIGlzIHByZXNlcnZl ZC4KLSsKLSsjIEFNX1BST0dfSU5TVEFMTF9TVFJJUAotKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ci0rIyBPbmUgaXNzdWUgd2l0aCB2ZW5kb3IgYGluc3RhbGwnIChldmVuIEdOVSkgaXMgdGhhdCB5 b3UgY2FuJ3QKLSsjIHNwZWNpZnkgdGhlIHByb2dyYW0gdXNlZCB0byBzdHJpcCBiaW5hcmllcy4g IFRoaXMgaXMgZXNwZWNpYWxseQotKyMgYW5ub3lpbmcgaW4gY3Jvc3MtY29tcGlsaW5nIGVudmly b25tZW50cywgd2hlcmUgdGhlIGJ1aWxkJ3Mgc3RyaXAKLSsjIGlzIHVubGlrZWx5IHRvIGhhbmRs ZSB0aGUgaG9zdCdzIGJpbmFyaWVzLgotKyMgRm9ydHVuYXRlbHkgaW5zdGFsbC1zaCB3aWxsIGhv bm9yIGEgU1RSSVBQUk9HIHZhcmlhYmxlLCBzbyB3ZQotKyMgYWx3YXlzIHVzZSBpbnN0YWxsLXNo IGluIGBtYWtlIGluc3RhbGwtc3RyaXAnLCBhbmQgaW5pdGlhbGl6ZQotKyMgU1RSSVBQUk9HIHdp dGggdGhlIHZhbHVlIG9mIHRoZSBTVFJJUCB2YXJpYWJsZSAoc2V0IGJ5IHRoZSB1c2VyKS4KLStB Q19ERUZVTihbQU1fUFJPR19JTlNUQUxMX1NUUklQXSwKLStbQUNfUkVRVUlSRShbQU1fUFJPR19J TlNUQUxMX1NIXSlkbmwKLSsjIEluc3RhbGxlZCBiaW5hcmllcyBhcmUgdXN1YWxseSBzdHJpcHBl ZCB1c2luZyBgc3RyaXAnIHdoZW4gdGhlIHVzZXIKLSsjIHJ1biBgbWFrZSBpbnN0YWxsLXN0cmlw Jy4gIEhvd2V2ZXIgYHN0cmlwJyBtaWdodCBub3QgYmUgdGhlIHJpZ2h0Ci0rIyB0b29sIHRvIHVz ZSBpbiBjcm9zcy1jb21waWxhdGlvbiBlbnZpcm9ubWVudHMsIHRoZXJlZm9yZSBBdXRvbWFrZQot KyMgd2lsbCBob25vciB0aGUgYFNUUklQJyBlbnZpcm9ubWVudCB2YXJpYWJsZSB0byBvdmVycnVs ZSB0aGlzIHByb2dyYW0uCi0rZG5sIERvbid0IHRlc3QgZm9yICRjcm9zc19jb21waWxpbmcgPSB5 ZXMsIGJlY2F1c2UgaXQgbWlnaHQgYmUgYG1heWJlJy4KLStpZiB0ZXN0ICIkY3Jvc3NfY29tcGls aW5nIiAhPSBubzsgdGhlbgotKyAgQUNfQ0hFQ0tfVE9PTChbU1RSSVBdLCBbc3RyaXBdLCA6KQot K2ZpCi0rSU5TVEFMTF9TVFJJUF9QUk9HUkFNPSJcJChpbnN0YWxsX3NoKSAtYyAtcyIKLStBQ19T VUJTVChbSU5TVEFMTF9TVFJJUF9QUk9HUkFNXSldKQotKwotKyMgQ29weXJpZ2h0IChDKSAyMDA2 ICBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KLSsjCi0rIyBUaGlzIGZpbGUgaXMgZnJl ZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbgotKyMgZ2l2ZXMgdW5saW1p dGVkIHBlcm1pc3Npb24gdG8gY29weSBhbmQvb3IgZGlzdHJpYnV0ZSBpdCwKLSsjIHdpdGggb3Ig d2l0aG91dCBtb2RpZmljYXRpb25zLCBhcyBsb25nIGFzIHRoaXMgbm90aWNlIGlzIHByZXNlcnZl ZC4KLSsKLSsjIF9BTV9TVUJTVF9OT1RNQUtFKFZBUklBQkxFKQotKyMgLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCi0rIyBQcmV2ZW50IEF1dG9tYWtlIGZyb20gb3V0cHV0dGluZyBWQVJJQUJM RSA9IEBWQVJJQUJMRUAgaW4gTWFrZWZpbGUuaW4uCi0rIyBUaGlzIG1hY3JvIGlzIHRyYWNlZCBi eSBBdXRvbWFrZS4KLStBQ19ERUZVTihbX0FNX1NVQlNUX05PVE1BS0VdKQotKwotKyMgQ2hlY2sg aG93IHRvIGNyZWF0ZSBhIHRhcmJhbGwuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0qLSBB dXRvY29uZiAtKi0KLSsKLSsjIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSAgRnJlZSBTb2Z0d2Fy ZSBGb3VuZGF0aW9uLCBJbmMuCi0rIwotKyMgVGhpcyBmaWxlIGlzIGZyZWUgc29mdHdhcmU7IHRo ZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24KLSsjIGdpdmVzIHVubGltaXRlZCBwZXJtaXNzaW9u IHRvIGNvcHkgYW5kL29yIGRpc3RyaWJ1dGUgaXQsCi0rIyB3aXRoIG9yIHdpdGhvdXQgbW9kaWZp Y2F0aW9ucywgYXMgbG9uZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCi0rCi0rIyBzZXJp YWwgMgotKwotKyMgX0FNX1BST0dfVEFSKEZPUk1BVCkKLSsjIC0tLS0tLS0tLS0tLS0tLS0tLS0t Ci0rIyBDaGVjayBob3cgdG8gY3JlYXRlIGEgdGFyYmFsbCBpbiBmb3JtYXQgRk9STUFULgotKyMg Rk9STUFUIHNob3VsZCBiZSBvbmUgb2YgYHY3JywgYHVzdGFyJywgb3IgYHBheCcuCi0rIwotKyMg U3Vic3RpdHV0ZSBhIHZhcmlhYmxlICQoYW1fX3RhcikgdGhhdCBpcyBhIGNvbW1hbmQKLSsjIHdy aXRpbmcgdG8gc3Rkb3V0IGEgRk9STUFULXRhcmJhbGwgY29udGFpbmluZyB0aGUgZGlyZWN0b3J5 Ci0rIyAkdGFyZGlyLgotKyMgICAgIHRhcmRpcj1kaXJlY3RvcnkgJiYgJChhbV9fdGFyKSA+IHJl c3VsdC50YXIKLSsjCi0rIyBTdWJzdGl0dXRlIGEgdmFyaWFibGUgJChhbV9fdW50YXIpIHRoYXQg ZXh0cmFjdCBzdWNoCi0rIyBhIHRhcmJhbGwgcmVhZCBmcm9tIHN0ZGluLgotKyMgICAgICQoYW1f X3VudGFyKSA8IHJlc3VsdC50YXIKLStBQ19ERUZVTihbX0FNX1BST0dfVEFSXSwKLStbIyBBbHdh eXMgZGVmaW5lIEFNVEFSIGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5LgotK0FNX01JU1NJTkdf UFJPRyhbQU1UQVJdLCBbdGFyXSkKLSttNF9pZihbJDFdLCBbdjddLAotKyAgICAgW2FtX190YXI9 JyR7QU1UQVJ9IGNob2YgLSAiJCR0YXJkaXIiJzsgYW1fX3VudGFyPScke0FNVEFSfSB4ZiAtJ10s Ci0rICAgICBbbTRfY2FzZShbJDFdLCBbdXN0YXJdLCwgW3BheF0sLAotKyAgICAgICAgICAgICAg W200X2ZhdGFsKFtVbmtub3duIHRhciBmb3JtYXRdKV0pCi0rQUNfTVNHX0NIRUNLSU5HKFtob3cg dG8gY3JlYXRlIGEgJDEgdGFyIGFyY2hpdmVdKQotKyMgTG9vcCBvdmVyIGFsbCBrbm93biBtZXRo b2RzIHRvIGNyZWF0ZSBhIHRhciBhcmNoaXZlIHVudGlsIG9uZSB3b3Jrcy4KLStfYW1fdG9vbHM9 J2dudXRhciBtNF9pZihbJDFdLCBbdXN0YXJdLCBbcGxhaW50YXJdKSBwYXggY3BpbyBub25lJwot K19hbV90b29scz0ke2FtX2N2X3Byb2dfdGFyXyQxLSRfYW1fdG9vbHN9Ci0rIyBEbyBub3QgZm9s ZCB0aGUgYWJvdmUgdHdvIGxpbmUgaW50byBvbmUsIGJlY2F1c2UgVHJ1NjQgc2ggYW5kCi0rIyBT b2xhcmlzIHNoIHdpbGwgbm90IGdyb2sgc3BhY2VzIGluIHRoZSByaHMgb2YgYC0nLgotK2ZvciBf YW1fdG9vbCBpbiAkX2FtX3Rvb2xzCi0rZG8KLSsgIGNhc2UgJF9hbV90b29sIGluCi0rICBnbnV0 YXIpCi0rICAgIGZvciBfYW1fdGFyIGluIHRhciBnbnV0YXIgZ3RhcjsKLSsgICAgZG8KLSsgICAg ICBBTV9SVU5fTE9HKFskX2FtX3RhciAtLXZlcnNpb25dKSAmJiBicmVhawotKyAgICBkb25lCi0r ICAgIGFtX190YXI9IiRfYW1fdGFyIC0tZm9ybWF0PW00X2lmKFskMV0sIFtwYXhdLCBbcG9zaXhd LCBbJDFdKSAtY2hmIC0gIiciJCR0YXJkaXIiJwotKyAgICBhbV9fdGFyXz0iJF9hbV90YXIgLS1m b3JtYXQ9bTRfaWYoWyQxXSwgW3BheF0sIFtwb3NpeF0sIFskMV0pIC1jaGYgLSAiJyIkdGFyZGly IicKLSsgICAgYW1fX3VudGFyPSIkX2FtX3RhciAteGYgLSIKLSsgICAgOzsKLSsgIHBsYWludGFy KQotKyAgICAjIE11c3Qgc2tpcCBHTlUgdGFyOiBpZiBpdCBkb2VzIG5vdCBzdXBwb3J0IC0tZm9y bWF0PSBpdCBkb2Vzbid0IGNyZWF0ZQotKyAgICAjIHVzdGFyIHRhcmJhbGwgZWl0aGVyLgotKyAg ICAodGFyIC0tdmVyc2lvbikgPi9kZXYvbnVsbCAyPiYxICYmIGNvbnRpbnVlCi0rICAgIGFtX190 YXI9J3RhciBjaGYgLSAiJCR0YXJkaXIiJwotKyAgICBhbV9fdGFyXz0ndGFyIGNoZiAtICIkdGFy ZGlyIicKLSsgICAgYW1fX3VudGFyPSd0YXIgeGYgLScKLSsgICAgOzsKLSsgIHBheCkKLSsgICAg YW1fX3Rhcj0ncGF4IC1MIC14ICQxIC13ICIkJHRhcmRpciInCi0rICAgIGFtX190YXJfPSdwYXgg LUwgLXggJDEgLXcgIiR0YXJkaXIiJwotKyAgICBhbV9fdW50YXI9J3BheCAtcicKLSsgICAgOzsK LSsgIGNwaW8pCi0rICAgIGFtX190YXI9J2ZpbmQgIiQkdGFyZGlyIiAtcHJpbnQgfCBjcGlvIC1v IC1IICQxIC1MJwotKyAgICBhbV9fdGFyXz0nZmluZCAiJHRhcmRpciIgLXByaW50IHwgY3BpbyAt byAtSCAkMSAtTCcKLSsgICAgYW1fX3VudGFyPSdjcGlvIC1pIC1IICQxIC1kJwotKyAgICA7Owot KyAgbm9uZSkKLSsgICAgYW1fX3Rhcj1mYWxzZQotKyAgICBhbV9fdGFyXz1mYWxzZQotKyAgICBh bV9fdW50YXI9ZmFsc2UKLSsgICAgOzsKLSsgIGVzYWMKLSsKLSsgICMgSWYgdGhlIHZhbHVlIHdh cyBjYWNoZWQsIHN0b3Agbm93LiAgV2UganVzdCB3YW50ZWQgdG8gaGF2ZSBhbV9fdGFyCi0rICAj IGFuZCBhbV9fdW50YXIgc2V0LgotKyAgdGVzdCAtbiAiJHthbV9jdl9wcm9nX3Rhcl8kMX0iICYm IGJyZWFrCi0rCi0rICAjIHRhci91bnRhciBhIGR1bW15IGRpcmVjdG9yeSwgYW5kIHN0b3AgaWYg dGhlIGNvbW1hbmQgd29ya3MKLSsgIHJtIC1yZiBjb25mdGVzdC5kaXIKLSsgIG1rZGlyIGNvbmZ0 ZXN0LmRpcgotKyAgZWNobyBHcmVwTWUgPiBjb25mdGVzdC5kaXIvZmlsZQotKyAgQU1fUlVOX0xP RyhbdGFyZGlyPWNvbmZ0ZXN0LmRpciAmJiBldmFsICRhbV9fdGFyXyA+Y29uZnRlc3QudGFyXSkK LSsgIHJtIC1yZiBjb25mdGVzdC5kaXIKLSsgIGlmIHRlc3QgLXMgY29uZnRlc3QudGFyOyB0aGVu Ci0rICAgIEFNX1JVTl9MT0coWyRhbV9fdW50YXIgPGNvbmZ0ZXN0LnRhcl0pCi0rICAgIGdyZXAg R3JlcE1lIGNvbmZ0ZXN0LmRpci9maWxlID4vZGV2L251bGwgMj4mMSAmJiBicmVhawotKyAgZmkK LStkb25lCi0rcm0gLXJmIGNvbmZ0ZXN0LmRpcgotKwotK0FDX0NBQ0hFX1ZBTChbYW1fY3ZfcHJv Z190YXJfJDFdLCBbYW1fY3ZfcHJvZ190YXJfJDE9JF9hbV90b29sXSkKLStBQ19NU0dfUkVTVUxU KFskYW1fY3ZfcHJvZ190YXJfJDFdKV0pCi0rQUNfU1VCU1QoW2FtX190YXJdKQotK0FDX1NVQlNU KFthbV9fdW50YXJdKQotK10pICMgX0FNX1BST0dfVEFSCi0rCi0rbTRfaW5jbHVkZShbY29uZmln L2F4X2Jvb3N0Lm00XSkKLSttNF9pbmNsdWRlKFtjb25maWcvYXhfbXlzcWwubTRdKQotK200X2lu Y2x1ZGUoW2NvbmZpZy9heF9vcmFjbGVfb2NpLm00XSkKLSttNF9pbmNsdWRlKFtjb25maWcvYXhf cG9zdGdyZXNxbC5tNF0pCi0rbTRfaW5jbHVkZShbY29uZmlnL2NwcHVuaXQubTRdKQotK200X2lu Y2x1ZGUoW2NvbmZpZy9saWJ0b29sLm00XSkKLSttNF9pbmNsdWRlKFtjb25maWcvbHRvcHRpb25z Lm00XSkKLSttNF9pbmNsdWRlKFtjb25maWcvbHRzdWdhci5tNF0pCi0rbTRfaW5jbHVkZShbY29u ZmlnL2x0dmVyc2lvbi5tNF0pCi0rbTRfaW5jbHVkZShbY29uZmlnL2x0fm9ic29sZXRlLm00XSkK LWRpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9BVVRIT1JTIHNvY2ktMy4wLjBfdHJlcDMwMC9B VVRIT1JTCi0tLS0gc29jaS0zLjAuMF80LXBhY2svQVVUSE9SUwkxOTcwLTAxLTAxIDAxOjAwOjAw LjAwMDAwMDAwMCArMDEwMAotKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9BVVRIT1JTCTIwMDktMDUt MjIgMjI6NTQ6MjIuMDAwMDAwMDAwICswMjAwCi1AQCAtMCwwICsxLDkgQEAKLSsKLStEYXZpZCBD b3VydG5leSwgRGV2ZWxvcGVyLCBkYWNvdXJ0bmV5IGF0IHVzZXJzLnNvdXJjZWZvcmdlLm5ldAot K01hdGV1c3ogTG9za290LCBEZXZlbG9wZXIsIG1sb3Nrb3QgYXQgdXNlcnMuc291cmNlZm9yZ2Uu bmV0Ci0rTWFjaWVqIFNvYmN6YWssIEFkbWluIFByb2plY3QgTWFuYWdlciwgbXNvYmN6YWsgYXQg dXNlcnMuc291cmNlZm9yZ2UubmV0Ci0rUGF3ZWwgQWxla3NhbmRlciBGZWRvcnluc2tpLCBEZXZl bG9wZXIsIHBmZWRvciBhdCB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQKLStSYWZhbCBCb2Jyb3dza2ks IERldmVsb3BlciwgcmJvYnJvIGF0IHVzZXJzLnNvdXJjZWZvcmdlLm5ldAotK0plYW4tTWFyYywg RGV2ZWxvcGVyLCBzaWRqdGFsIGF0IHVzZXJzLnNvdXJjZWZvcmdlLm5ldAotK1N0ZXBoZW4gSHV0 dG9uLCBEZXZlbG9wZXIsIHN0ZXBoZW5odXR0b24gYXQgdXNlcnMuc291cmNlZm9yZ2UubmV0Ci0r Ci1kaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svYnVpbGQvTWFrZWZpbGUuYW0gc29jaS0zLjAu MF90cmVwMzAwL2J1aWxkL01ha2VmaWxlLmFtCi0tLS0gc29jaS0zLjAuMF80LXBhY2svYnVpbGQv TWFrZWZpbGUuYW0JMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBzb2Np LTMuMC4wX3RyZXAzMDAvYnVpbGQvTWFrZWZpbGUuYW0JMjAwOS0wNS0yMiAyMjo1NDoyMC4wMDAw MDAwMDAgKzAyMDAKLUBAIC0wLDAgKzEsNyBAQAotKyMjIGJ1aWxkIHN1Yi1kaXJlY3RvcnkKLStp bmNsdWRlICQodG9wX3NyY2RpcikvTWFrZWZpbGUuY29tbW9uCi0rCi0rTUFJTlRBSU5FUkNMRUFO RklMRVMgPSBNYWtlZmlsZS5pbgotKwotK1NVQkRJUlMgPSB1bml4IG1zdmM4MAotKwotZGlmZiAt TnVyIHNvY2ktMy4wLjBfNC1wYWNrL2J1aWxkL01ha2VmaWxlLmluIHNvY2ktMy4wLjBfdHJlcDMw MC9idWlsZC9NYWtlZmlsZS5pbgotLS0tIHNvY2ktMy4wLjBfNC1wYWNrL2J1aWxkL01ha2VmaWxl LmluCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCi0rKysgc29jaS0zLjAuMF90 cmVwMzAwL2J1aWxkL01ha2VmaWxlLmluCTIwMDktMDUtMjMgMTA6MDI6MDEuMDAwMDAwMDAwICsw MjAwCi1AQCAtMCwwICsxLDU0NiBAQAotKyMgTWFrZWZpbGUuaW4gZ2VuZXJhdGVkIGJ5IGF1dG9t YWtlIDEuMTAuMiBmcm9tIE1ha2VmaWxlLmFtLgotKyMgQGNvbmZpZ3VyZV9pbnB1dEAKLSsKLSsj IENvcHlyaWdodCAoQykgMTk5NCwgMTk5NSwgMTk5NiwgMTk5NywgMTk5OCwgMTk5OSwgMjAwMCwg MjAwMSwgMjAwMiwKLSsjIDIwMDMsIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDggIEZyZWUg U29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgotKyMgVGhpcyBNYWtlZmlsZS5pbiBpcyBmcmVlIHNv ZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCi0rIyBnaXZlcyB1bmxpbWl0ZWQg cGVybWlzc2lvbiB0byBjb3B5IGFuZC9vciBkaXN0cmlidXRlIGl0LAotKyMgd2l0aCBvciB3aXRo b3V0IG1vZGlmaWNhdGlvbnMsIGFzIGxvbmcgYXMgdGhpcyBub3RpY2UgaXMgcHJlc2VydmVkLgot KwotKyMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2ls bCBiZSB1c2VmdWwsCi0rIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFksIHRvIHRoZSBleHRlbnQg cGVybWl0dGVkIGJ5IGxhdzsgd2l0aG91dAotKyMgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBv ZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQQotKyMgUEFSVElDVUxBUiBQVVJQT1NF LgotKwotK0BTRVRfTUFLRUAKLStWUEFUSCA9IEBzcmNkaXJACi0rcGtnZGF0YWRpciA9ICQoZGF0 YWRpcikvQFBBQ0tBR0VACi0rcGtnbGliZGlyID0gJChsaWJkaXIpL0BQQUNLQUdFQAotK3BrZ2lu Y2x1ZGVkaXIgPSAkKGluY2x1ZGVkaXIpL0BQQUNLQUdFQAotK2FtX19jZCA9IENEUEFUSD0iJCR7 WlNIX1ZFUlNJT04rLn0kKFBBVEhfU0VQQVJBVE9SKSIgJiYgY2QKLStpbnN0YWxsX3NoX0RBVEEg PSAkKGluc3RhbGxfc2gpIC1jIC1tIDY0NAotK2luc3RhbGxfc2hfUFJPR1JBTSA9ICQoaW5zdGFs bF9zaCkgLWMKLStpbnN0YWxsX3NoX1NDUklQVCA9ICQoaW5zdGFsbF9zaCkgLWMKLStJTlNUQUxM X0hFQURFUiA9ICQoSU5TVEFMTF9EQVRBKQotK3RyYW5zZm9ybSA9ICQocHJvZ3JhbV90cmFuc2Zv cm1fbmFtZSkKLStOT1JNQUxfSU5TVEFMTCA9IDoKLStQUkVfSU5TVEFMTCA9IDoKLStQT1NUX0lO U1RBTEwgPSA6Ci0rTk9STUFMX1VOSU5TVEFMTCA9IDoKLStQUkVfVU5JTlNUQUxMID0gOgotK1BP U1RfVU5JTlNUQUxMID0gOgotK2J1aWxkX3RyaXBsZXQgPSBAYnVpbGRACi0raG9zdF90cmlwbGV0 ID0gQGhvc3RACi0rRElTVF9DT01NT04gPSBSRUFETUUgJChzcmNkaXIpL01ha2VmaWxlLmFtICQo c3JjZGlyKS9NYWtlZmlsZS5pbiBcCi0rCSQodG9wX3NyY2RpcikvTWFrZWZpbGUuY29tbW9uCi0r c3ViZGlyID0gYnVpbGQKLStBQ0xPQ0FMX000ID0gJCh0b3Bfc3JjZGlyKS9hY2xvY2FsLm00Ci0r YW1fX2FjbG9jYWxfbTRfZGVwcyA9ICQodG9wX3NyY2RpcikvY29uZmlnL2F4X2Jvb3N0Lm00IFwK LSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfbXlzcWwubTQgXAotKwkkKHRvcF9zcmNkaXIpL2Nv bmZpZy9heF9vcmFjbGVfb2NpLm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfcG9zdGdy ZXNxbC5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmlnL2NwcHVuaXQubTQgXAotKwkkKHRvcF9z cmNkaXIpL2NvbmZpZy9saWJ0b29sLm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvbHRvcHRp b25zLm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvbHRzdWdhci5tNCBcCi0rCSQodG9wX3Ny Y2RpcikvY29uZmlnL2x0dmVyc2lvbi5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmlnL2x0fm9i c29sZXRlLm00ICQodG9wX3NyY2RpcikvY29uZmlndXJlLmFjCi0rYW1fX2NvbmZpZ3VyZV9kZXBz ID0gJChhbV9fYWNsb2NhbF9tNF9kZXBzKSAkKENPTkZJR1VSRV9ERVBFTkRFTkNJRVMpIFwKLSsJ JChBQ0xPQ0FMX000KQotK21raW5zdGFsbGRpcnMgPSAkKGluc3RhbGxfc2gpIC1kCi0rQ09ORklH X0hFQURFUiA9ICQodG9wX2J1aWxkZGlyKS9zb2NpL2NvbmZpZy5oCi0rQ09ORklHX0NMRUFOX0ZJ TEVTID0KLStTT1VSQ0VTID0KLStESVNUX1NPVVJDRVMgPQotK1JFQ1VSU0lWRV9UQVJHRVRTID0g YWxsLXJlY3Vyc2l2ZSBjaGVjay1yZWN1cnNpdmUgZHZpLXJlY3Vyc2l2ZSBcCi0rCWh0bWwtcmVj dXJzaXZlIGluZm8tcmVjdXJzaXZlIGluc3RhbGwtZGF0YS1yZWN1cnNpdmUgXAotKwlpbnN0YWxs LWR2aS1yZWN1cnNpdmUgaW5zdGFsbC1leGVjLXJlY3Vyc2l2ZSBcCi0rCWluc3RhbGwtaHRtbC1y ZWN1cnNpdmUgaW5zdGFsbC1pbmZvLXJlY3Vyc2l2ZSBcCi0rCWluc3RhbGwtcGRmLXJlY3Vyc2l2 ZSBpbnN0YWxsLXBzLXJlY3Vyc2l2ZSBpbnN0YWxsLXJlY3Vyc2l2ZSBcCi0rCWluc3RhbGxjaGVj ay1yZWN1cnNpdmUgaW5zdGFsbGRpcnMtcmVjdXJzaXZlIHBkZi1yZWN1cnNpdmUgXAotKwlwcy1y ZWN1cnNpdmUgdW5pbnN0YWxsLXJlY3Vyc2l2ZQotK1JFQ1VSU0lWRV9DTEVBTl9UQVJHRVRTID0g bW9zdGx5Y2xlYW4tcmVjdXJzaXZlIGNsZWFuLXJlY3Vyc2l2ZQlcCi0rICBkaXN0Y2xlYW4tcmVj dXJzaXZlIG1haW50YWluZXItY2xlYW4tcmVjdXJzaXZlCi0rRVRBR1MgPSBldGFncwotK0NUQUdT ID0gY3RhZ3MKLStESVNUX1NVQkRJUlMgPSAkKFNVQkRJUlMpCi0rRElTVEZJTEVTID0gJChESVNU X0NPTU1PTikgJChESVNUX1NPVVJDRVMpICQoVEVYSU5GT1MpICQoRVhUUkFfRElTVCkKLStBQ0xP Q0FMID0gQEFDTE9DQUxACi0rQU1UQVIgPSBAQU1UQVJACi0rQVIgPSBAQVJACi0rQVVUT0NPTkYg PSBAQVVUT0NPTkZACi0rQVVUT0hFQURFUiA9IEBBVVRPSEVBREVSQAotK0FVVE9NQUtFID0gQEFV VE9NQUtFQAotK0FXSyA9IEBBV0tACi0rQk9PU1RfQ0ZMQUdTID0gQEJPT1NUX0NGTEFHU0AKLStC T09TVF9EQVRFX1RJTUVfTElCID0gQEJPT1NUX0RBVEVfVElNRV9MSUJACi0rQk9PU1RfRklMRVNZ U1RFTV9MSUIgPSBAQk9PU1RfRklMRVNZU1RFTV9MSUJACi0rQk9PU1RfSU9TVFJFQU1TX0xJQiA9 IEBCT09TVF9JT1NUUkVBTVNfTElCQAotK0JPT1NUX0xJQlMgPSBAQk9PU1RfTElCU0AKLStCT09T VF9QUk9HUkFNX09QVElPTlNfTElCID0gQEJPT1NUX1BST0dSQU1fT1BUSU9OU19MSUJACi0rQk9P U1RfUkVHRVhfTElCID0gQEJPT1NUX1JFR0VYX0xJQkAKLStCT09TVF9TRVJJQUxJWkFUSU9OX0xJ QiA9IEBCT09TVF9TRVJJQUxJWkFUSU9OX0xJQkAKLStCT09TVF9TSUdOQUxTX0xJQiA9IEBCT09T VF9TSUdOQUxTX0xJQkAKLStCT09TVF9USFJFQURfTElCID0gQEJPT1NUX1RIUkVBRF9MSUJACi0r Qk9PU1RfVU5JVF9URVNUX0ZSQU1FV09SS19MSUIgPSBAQk9PU1RfVU5JVF9URVNUX0ZSQU1FV09S S19MSUJACi0rQk9PU1RfVkVSU0lPTiA9IEBCT09TVF9WRVJTSU9OQAotK0JPT1NUX1dTRVJJQUxJ WkFUSU9OX0xJQiA9IEBCT09TVF9XU0VSSUFMSVpBVElPTl9MSUJACi0rQ0MgPSBAQ0NACi0rQ0NE RVBNT0RFID0gQENDREVQTU9ERUAKLStDRkxBR1MgPSBAQ0ZMQUdTQAotK0NQUCA9IEBDUFBACi0r Q1BQRkxBR1MgPSBAQ1BQRkxBR1NACi0rQ1BQVU5JVF9DRkxBR1MgPSBAQ1BQVU5JVF9DRkxBR1NA Ci0rQ1BQVU5JVF9DT05GSUcgPSBAQ1BQVU5JVF9DT05GSUdACi0rQ1BQVU5JVF9MSUJTID0gQENQ UFVOSVRfTElCU0AKLStDUFBVTklUX1ZFUlNJT04gPSBAQ1BQVU5JVF9WRVJTSU9OQAotK0NYWCA9 IEBDWFhACi0rQ1hYQ1BQID0gQENYWENQUEAKLStDWFhERVBNT0RFID0gQENYWERFUE1PREVACi0r Q1hYRkxBR1MgPSBAQ1hYRkxBR1NACi0rQ1lHUEFUSF9XID0gQENZR1BBVEhfV0AKLStERUZTID0g QERFRlNACi0rREVQRElSID0gQERFUERJUkAKLStEU1lNVVRJTCA9IEBEU1lNVVRJTEAKLStEVU1Q QklOID0gQERVTVBCSU5ACi0rRUNIT19DID0gQEVDSE9fQ0AKLStFQ0hPX04gPSBARUNIT19OQAot K0VDSE9fVCA9IEBFQ0hPX1RACi0rRUdSRVAgPSBARUdSRVBACi0rRVhFRVhUID0gQEVYRUVYVEAK LStGR1JFUCA9IEBGR1JFUEAKLStHRU5FUklDX0xJQlJBUllfVkVSU0lPTiA9IEBHRU5FUklDX0xJ QlJBUllfVkVSU0lPTkAKLStHUkVQID0gQEdSRVBACi0rSU5TVEFMTCA9IEBJTlNUQUxMQAotK0lO U1RBTExfREFUQSA9IEBJTlNUQUxMX0RBVEFACi0rSU5TVEFMTF9QUk9HUkFNID0gQElOU1RBTExf UFJPR1JBTUAKLStJTlNUQUxMX1NDUklQVCA9IEBJTlNUQUxMX1NDUklQVEAKLStJTlNUQUxMX1NU UklQX1BST0dSQU0gPSBASU5TVEFMTF9TVFJJUF9QUk9HUkFNQAotK0xEID0gQExEQAotK0xERkxB R1MgPSBATERGTEFHU0AKLStMSUJPQkpTID0gQExJQk9CSlNACi0rTElCUyA9IEBMSUJTQAotK0xJ QlRPT0wgPSBATElCVE9PTEAKLStMSVBPID0gQExJUE9ACi0rTE5fUyA9IEBMTl9TQAotK0xUTElC T0JKUyA9IEBMVExJQk9CSlNACi0rTUFLRUlORk8gPSBATUFLRUlORk9ACi0rTUtESVJfUCA9IEBN S0RJUl9QQAotK01ZU1FMX0NGTEFHUyA9IEBNWVNRTF9DRkxBR1NACi0rTVlTUUxfQ09ORklHID0g QE1ZU1FMX0NPTkZJR0AKLStNWVNRTF9ESVJTID0gQE1ZU1FMX0RJUlNACi0rTVlTUUxfTERGTEFH UyA9IEBNWVNRTF9MREZMQUdTQAotK01ZU1FMX1ZFUlNJT04gPSBATVlTUUxfVkVSU0lPTkAKLStO TSA9IEBOTUAKLStOTUVESVQgPSBATk1FRElUQAotK09CSkRVTVAgPSBAT0JKRFVNUEAKLStPQkpF WFQgPSBAT0JKRVhUQAotK09SQUNMRV9ESVJTID0gQE9SQUNMRV9ESVJTQAotK09SQUNMRV9PQ0lf Q0ZMQUdTID0gQE9SQUNMRV9PQ0lfQ0ZMQUdTQAotK09SQUNMRV9PQ0lfTERGTEFHUyA9IEBPUkFD TEVfT0NJX0xERkxBR1NACi0rT1JBQ0xFX09DSV9WRVJTSU9OID0gQE9SQUNMRV9PQ0lfVkVSU0lP TkAKLStPVE9PTCA9IEBPVE9PTEAKLStPVE9PTDY0ID0gQE9UT09MNjRACi0rUEFDS0FHRSA9IEBQ QUNLQUdFQAotK1BBQ0tBR0VfQlVHUkVQT1JUID0gQFBBQ0tBR0VfQlVHUkVQT1JUQAotK1BBQ0tB R0VfTkFNRSA9IEBQQUNLQUdFX05BTUVACi0rUEFDS0FHRV9TVFJJTkcgPSBAUEFDS0FHRV9TVFJJ TkdACi0rUEFDS0FHRV9UQVJOQU1FID0gQFBBQ0tBR0VfVEFSTkFNRUAKLStQQUNLQUdFX1ZFUlNJ T04gPSBAUEFDS0FHRV9WRVJTSU9OQAotK1BBVEhfU0VQQVJBVE9SID0gQFBBVEhfU0VQQVJBVE9S QAotK1BFUkwgPSBAUEVSTEAKLStQR19DT05GSUcgPSBAUEdfQ09ORklHQAotK1BPU1RHUkVTUUxf Q0ZMQUdTID0gQFBPU1RHUkVTUUxfQ0ZMQUdTQAotK1BPU1RHUkVTUUxfRElSUyA9IEBQT1NUR1JF U1FMX0RJUlNACi0rUE9TVEdSRVNRTF9MREZMQUdTID0gQFBPU1RHUkVTUUxfTERGTEFHU0AKLStQ T1NUR1JFU1FMX1ZFUlNJT04gPSBAUE9TVEdSRVNRTF9WRVJTSU9OQAotK1JBTkxJQiA9IEBSQU5M SUJACi0rUlBNX1JFTEVBU0UgPSBAUlBNX1JFTEVBU0VACi0rU0VEID0gQFNFREAKLStTRVRfTUFL RSA9IEBTRVRfTUFLRUAKLStTSEVMTCA9IEBTSEVMTEAKLStTT0NJX0hFQURFUlNfQlVSSUVEID0g QFNPQ0lfSEVBREVSU19CVVJJRURACi0rU09DSV9NWVNRTF9IRUFERVJTX0JVUklFRCA9IEBTT0NJ X01ZU1FMX0hFQURFUlNfQlVSSUVEQAotK1NPQ0lfUE9TVEdSRVNRTF9IRUFERVJTX0JVUklFRCA9 IEBTT0NJX1BPU1RHUkVTUUxfSEVBREVSU19CVVJJRURACi0rU1RSSVAgPSBAU1RSSVBACi0rVVBM T0FEX0NPTU1BTkQgPSBAVVBMT0FEX0NPTU1BTkRACi0rVkVSU0lPTiA9IEBWRVJTSU9OQAotK2Fi c19idWlsZGRpciA9IEBhYnNfYnVpbGRkaXJACi0rYWJzX3NyY2RpciA9IEBhYnNfc3JjZGlyQAot K2Fic190b3BfYnVpbGRkaXIgPSBAYWJzX3RvcF9idWlsZGRpckAKLSthYnNfdG9wX3NyY2RpciA9 IEBhYnNfdG9wX3NyY2RpckAKLSthY19jdF9DQyA9IEBhY19jdF9DQ0AKLSthY19jdF9DWFggPSBA YWNfY3RfQ1hYQAotK2FjX2N0X0RVTVBCSU4gPSBAYWNfY3RfRFVNUEJJTkAKLSthbV9faW5jbHVk ZSA9IEBhbV9faW5jbHVkZUAKLSthbV9fbGVhZGluZ19kb3QgPSBAYW1fX2xlYWRpbmdfZG90QAot K2FtX19xdW90ZSA9IEBhbV9fcXVvdGVACi0rYW1fX3RhciA9IEBhbV9fdGFyQAotK2FtX191bnRh ciA9IEBhbV9fdW50YXJACi0rYmluZGlyID0gQGJpbmRpckAKLStidWlsZCA9IEBidWlsZEAKLSti dWlsZF9hbGlhcyA9IEBidWlsZF9hbGlhc0AKLStidWlsZF9jcHUgPSBAYnVpbGRfY3B1QAotK2J1 aWxkX29zID0gQGJ1aWxkX29zQAotK2J1aWxkX3ZlbmRvciA9IEBidWlsZF92ZW5kb3JACi0rYnVp bGRkaXIgPSBAYnVpbGRkaXJACi0rZGF0YWRpciA9IEBkYXRhZGlyQAotK2RhdGFyb290ZGlyID0g QGRhdGFyb290ZGlyQAotK2RpZmZfb2sgPSBAZGlmZl9va0AKLStkb2NkaXIgPSBAZG9jZGlyQAot K2RveHlnZW5fb2sgPSBAZG94eWdlbl9va0AKLStkdmlkaXIgPSBAZHZpZGlyQAotK2R2aXBzX29r ID0gQGR2aXBzX29rQAotK2V4ZWNfcHJlZml4ID0gQGV4ZWNfcHJlZml4QAotK2dzX29rID0gQGdz X29rQAotK2hvc3QgPSBAaG9zdEAKLStob3N0X2FsaWFzID0gQGhvc3RfYWxpYXNACi0raG9zdF9j cHUgPSBAaG9zdF9jcHVACi0raG9zdF9vcyA9IEBob3N0X29zQAotK2hvc3RfdmVuZG9yID0gQGhv c3RfdmVuZG9yQAotK2h0bWxkaXIgPSBAaHRtbGRpckAKLStpbmNsdWRlZGlyID0gQGluY2x1ZGVk aXJACi0raW5mb2RpciA9IEBpbmZvZGlyQAotK2luc3RhbGxfc2ggPSBAaW5zdGFsbF9zaEAKLSts YXRleF9vayA9IEBsYXRleF9va0AKLStsaWJkaXIgPSBAbGliZGlyQAotK2xpYmV4ZWNkaXIgPSBA bGliZXhlY2RpckAKLStsb2NhbGVkaXIgPSBAbG9jYWxlZGlyQAotK2xvY2Fsc3RhdGVkaXIgPSBA bG9jYWxzdGF0ZWRpckAKLStsdF9FQ0hPID0gQGx0X0VDSE9ACi0rbWFuZGlyID0gQG1hbmRpckAK LStta2Rpcl9wID0gQG1rZGlyX3BACi0rb2xkaW5jbHVkZWRpciA9IEBvbGRpbmNsdWRlZGlyQAot K3BkZmRpciA9IEBwZGZkaXJACi0rcHJlZml4ID0gQHByZWZpeEAKLStwcm9ncmFtX3RyYW5zZm9y bV9uYW1lID0gQHByb2dyYW1fdHJhbnNmb3JtX25hbWVACi0rcHNkaXIgPSBAcHNkaXJACi0rc2Jp bmRpciA9IEBzYmluZGlyQAotK3NlZF9vayA9IEBzZWRfb2tACi0rc2hhcmVkc3RhdGVkaXIgPSBA c2hhcmVkc3RhdGVkaXJACi0rc3JjZGlyID0gQHNyY2RpckAKLStzeXNjb25mZGlyID0gQHN5c2Nv bmZkaXJACi0rdGFyZ2V0X2FsaWFzID0gQHRhcmdldF9hbGlhc0AKLSt0b3BfYnVpbGRfcHJlZml4 ID0gQHRvcF9idWlsZF9wcmVmaXhACi0rdG9wX2J1aWxkZGlyID0gQHRvcF9idWlsZGRpckAKLSt0 b3Bfc3JjZGlyID0gQHRvcF9zcmNkaXJACi0rQU1fQ1BQRkxBR1MgPSAtSSQodG9wX2J1aWxkZGly KSAtSSQodG9wX3NyY2RpcikKLStNQUlOVEFJTkVSQ0xFQU5GSUxFUyA9IE1ha2VmaWxlLmluCi0r U1VCRElSUyA9IHVuaXggbXN2YzgwCi0rYWxsOiBhbGwtcmVjdXJzaXZlCi0rCi0rLlNVRkZJWEVT OgotKyQoc3JjZGlyKS9NYWtlZmlsZS5pbjogICQoc3JjZGlyKS9NYWtlZmlsZS5hbSAkKHRvcF9z cmNkaXIpL01ha2VmaWxlLmNvbW1vbiAkKGFtX19jb25maWd1cmVfZGVwcykKLSsJQGZvciBkZXAg aW4gJD87IGRvIFwKLSsJICBjYXNlICckKGFtX19jb25maWd1cmVfZGVwcyknIGluIFwKLSsJICAg ICokJGRlcCopIFwKLSsJICAgICAgKCBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFN X01BS0VGTEFHUykgYW0tLXJlZnJlc2ggKSBcCi0rCSAgICAgICAgJiYgeyBpZiB0ZXN0IC1mICRA OyB0aGVuIGV4aXQgMDsgZWxzZSBicmVhazsgZmk7IH07IFwKLSsJICAgICAgZXhpdCAxOzsgXAot KwkgIGVzYWM7IFwKLSsJZG9uZTsgXAotKwllY2hvICcgY2QgJCh0b3Bfc3JjZGlyKSAmJiAkKEFV VE9NQUtFKSAtLWdudSAgYnVpbGQvTWFrZWZpbGUnOyBcCi0rCWNkICQodG9wX3NyY2RpcikgJiYg XAotKwkgICQoQVVUT01BS0UpIC0tZ251ICBidWlsZC9NYWtlZmlsZQotKy5QUkVDSU9VUzogTWFr ZWZpbGUKLStNYWtlZmlsZTogJChzcmNkaXIpL01ha2VmaWxlLmluICQodG9wX2J1aWxkZGlyKS9j b25maWcuc3RhdHVzCi0rCUBjYXNlICckPycgaW4gXAotKwkgICpjb25maWcuc3RhdHVzKikgXAot KwkgICAgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1y ZWZyZXNoOzsgXAotKwkgICopIFwKLSsJICAgIGVjaG8gJyBjZCAkKHRvcF9idWlsZGRpcikgJiYg JChTSEVMTCkgLi9jb25maWcuc3RhdHVzICQoc3ViZGlyKS8kQCAkKGFtX19kZXBmaWxlc19tYXli ZSknOyBcCi0rCSAgICBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChTSEVMTCkgLi9jb25maWcuc3Rh dHVzICQoc3ViZGlyKS8kQCAkKGFtX19kZXBmaWxlc19tYXliZSk7OyBcCi0rCWVzYWM7Ci0rCi0r JCh0b3BfYnVpbGRkaXIpL2NvbmZpZy5zdGF0dXM6ICQodG9wX3NyY2RpcikvY29uZmlndXJlICQo Q09ORklHX1NUQVRVU19ERVBFTkRFTkNJRVMpCi0rCWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1B S0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaAotKwotKyQodG9wX3NyY2RpcikvY29uZmln dXJlOiAgJChhbV9fY29uZmlndXJlX2RlcHMpCi0rCWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1B S0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaAotKyQoQUNMT0NBTF9NNCk6ICAkKGFtX19h Y2xvY2FsX200X2RlcHMpCi0rCWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFL RUZMQUdTKSBhbS0tcmVmcmVzaAotKwotK21vc3RseWNsZWFuLWxpYnRvb2w6Ci0rCS1ybSAtZiAq LmxvCi0rCi0rY2xlYW4tbGlidG9vbDoKLSsJLXJtIC1yZiAubGlicyBfbGlicwotKwotKyMgVGhp cyBkaXJlY3RvcnkncyBzdWJkaXJlY3RvcmllcyBhcmUgbW9zdGx5IGluZGVwZW5kZW50OyB5b3Ug Y2FuIGNkCi0rIyBpbnRvIHRoZW0gYW5kIHJ1biBgbWFrZScgd2l0aG91dCBnb2luZyB0aHJvdWdo IHRoaXMgTWFrZWZpbGUuCi0rIyBUbyBjaGFuZ2UgdGhlIHZhbHVlcyBvZiBgbWFrZScgdmFyaWFi bGVzOiBpbnN0ZWFkIG9mIGVkaXRpbmcgTWFrZWZpbGVzLAotKyMgKDEpIGlmIHRoZSB2YXJpYWJs ZSBpcyBzZXQgaW4gYGNvbmZpZy5zdGF0dXMnLCBlZGl0IGBjb25maWcuc3RhdHVzJwotKyMgICAg ICh3aGljaCB3aWxsIGNhdXNlIHRoZSBNYWtlZmlsZXMgdG8gYmUgcmVnZW5lcmF0ZWQgd2hlbiB5 b3UgcnVuIGBtYWtlJyk7Ci0rIyAoMikgb3RoZXJ3aXNlLCBwYXNzIHRoZSBkZXNpcmVkIHZhbHVl cyBvbiB0aGUgYG1ha2UnIGNvbW1hbmQgbGluZS4KLSskKFJFQ1VSU0lWRV9UQVJHRVRTKToKLSsJ QGZhaWxjb209J2V4aXQgMSc7IFwKLSsJZm9yIGYgaW4geCAkJE1BS0VGTEFHUzsgZG8gXAotKwkg IGNhc2UgJCRmIGluIFwKLSsJICAgICo9KiB8IC0tWyFrXSopOzsgXAotKwkgICAgKmsqKSBmYWls Y29tPSdmYWlsPXllcyc7OyBcCi0rCSAgZXNhYzsgXAotKwlkb25lOyBcCi0rCWRvdF9zZWVuPW5v OyBcCi0rCXRhcmdldD1gZWNobyAkQCB8IHNlZCBzLy1yZWN1cnNpdmUvL2A7IFwKLSsJbGlzdD0n JChTVUJESVJTKSc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCi0rCSAgZWNobyAiTWFraW5n ICQkdGFyZ2V0IGluICQkc3ViZGlyIjsgXAotKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9ICIuIjsg dGhlbiBcCi0rCSAgICBkb3Rfc2Vlbj15ZXM7IFwKLSsJICAgIGxvY2FsX3RhcmdldD0iJCR0YXJn ZXQtYW0iOyBcCi0rCSAgZWxzZSBcCi0rCSAgICBsb2NhbF90YXJnZXQ9IiQkdGFyZ2V0IjsgXAot KwkgIGZpOyBcCi0rCSAgKGNkICQkc3ViZGlyICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpICQk bG9jYWxfdGFyZ2V0KSBcCi0rCSAgfHwgZXZhbCAkJGZhaWxjb207IFwKLSsJZG9uZTsgXAotKwlp ZiB0ZXN0ICIkJGRvdF9zZWVuIiA9ICJubyI7IHRoZW4gXAotKwkgICQoTUFLRSkgJChBTV9NQUtF RkxBR1MpICIkJHRhcmdldC1hbSIgfHwgZXhpdCAxOyBcCi0rCWZpOyB0ZXN0IC16ICIkJGZhaWwi Ci0rCi0rJChSRUNVUlNJVkVfQ0xFQU5fVEFSR0VUUyk6Ci0rCUBmYWlsY29tPSdleGl0IDEnOyBc Ci0rCWZvciBmIGluIHggJCRNQUtFRkxBR1M7IGRvIFwKLSsJICBjYXNlICQkZiBpbiBcCi0rCSAg ICAqPSogfCAtLVsha10qKTs7IFwKLSsJICAgICprKikgZmFpbGNvbT0nZmFpbD15ZXMnOzsgXAot KwkgIGVzYWM7IFwKLSsJZG9uZTsgXAotKwlkb3Rfc2Vlbj1ubzsgXAotKwljYXNlICIkQCIgaW4g XAotKwkgIGRpc3RjbGVhbi0qIHwgbWFpbnRhaW5lci1jbGVhbi0qKSBsaXN0PSckKERJU1RfU1VC RElSUyknIDs7IFwKLSsJICAqKSBsaXN0PSckKFNVQkRJUlMpJyA7OyBcCi0rCWVzYWM7IFwKLSsJ cmV2PScnOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAotKwkgIGlmIHRlc3QgIiQkc3ViZGly IiA9ICIuIjsgdGhlbiA6OyBlbHNlIFwKLSsJICAgIHJldj0iJCRzdWJkaXIgJCRyZXYiOyBcCi0r CSAgZmk7IFwKLSsJZG9uZTsgXAotKwlyZXY9IiQkcmV2IC4iOyBcCi0rCXRhcmdldD1gZWNobyAk QCB8IHNlZCBzLy1yZWN1cnNpdmUvL2A7IFwKLSsJZm9yIHN1YmRpciBpbiAkJHJldjsgZG8gXAot KwkgIGVjaG8gIk1ha2luZyAkJHRhcmdldCBpbiAkJHN1YmRpciI7IFwKLSsJICBpZiB0ZXN0ICIk JHN1YmRpciIgPSAiLiI7IHRoZW4gXAotKwkgICAgbG9jYWxfdGFyZ2V0PSIkJHRhcmdldC1hbSI7 IFwKLSsJICBlbHNlIFwKLSsJICAgIGxvY2FsX3RhcmdldD0iJCR0YXJnZXQiOyBcCi0rCSAgZmk7 IFwKLSsJICAoY2QgJCRzdWJkaXIgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgJCRsb2NhbF90 YXJnZXQpIFwKLSsJICB8fCBldmFsICQkZmFpbGNvbTsgXAotKwlkb25lICYmIHRlc3QgLXogIiQk ZmFpbCIKLSt0YWdzLXJlY3Vyc2l2ZToKLSsJbGlzdD0nJChTVUJESVJTKSc7IGZvciBzdWJkaXIg aW4gJCRsaXN0OyBkbyBcCi0rCSAgdGVzdCAiJCRzdWJkaXIiID0gLiB8fCAoY2QgJCRzdWJkaXIg JiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgdGFncyk7IFwKLSsJZG9uZQotK2N0YWdzLXJlY3Vy c2l2ZToKLSsJbGlzdD0nJChTVUJESVJTKSc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCi0r CSAgdGVzdCAiJCRzdWJkaXIiID0gLiB8fCAoY2QgJCRzdWJkaXIgJiYgJChNQUtFKSAkKEFNX01B S0VGTEFHUykgY3RhZ3MpOyBcCi0rCWRvbmUKLSsKLStJRDogJChIRUFERVJTKSAkKFNPVVJDRVMp ICQoTElTUCkgJChUQUdTX0ZJTEVTKQotKwlsaXN0PSckKFNPVVJDRVMpICQoSEVBREVSUykgJChM SVNQKSAkKFRBR1NfRklMRVMpJzsgXAotKwl1bmlxdWU9YGZvciBpIGluICQkbGlzdDsgZG8gXAot KwkgICAgaWYgdGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsgZWxzZSBlY2hvICQoc3JjZGly KS8kJGk7IGZpOyBcCi0rCSAgZG9uZSB8IFwKLSsJICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9IDE7 IG5vbmVtcHR5ID0gMTsgfSBcCi0rCSAgICAgIEVORCB7IGlmIChub25lbXB0eSkgeyBmb3IgKGkg aW4gZmlsZXMpIHByaW50IGk7IH07IH0nYDsgXAotKwlta2lkIC1mSUQgJCR1bmlxdWUKLSt0YWdz OiBUQUdTCi0rCi0rVEFHUzogdGFncy1yZWN1cnNpdmUgJChIRUFERVJTKSAkKFNPVVJDRVMpICAk KFRBR1NfREVQRU5ERU5DSUVTKSBcCi0rCQkkKFRBR1NfRklMRVMpICQoTElTUCkKLSsJdGFncz07 IFwKLSsJaGVyZT1gcHdkYDsgXAotKwlpZiAoJChFVEFHUykgLS1ldGFncy1pbmNsdWRlIC0tdmVy c2lvbikgPi9kZXYvbnVsbCAyPiYxOyB0aGVuIFwKLSsJICBpbmNsdWRlX29wdGlvbj0tLWV0YWdz LWluY2x1ZGU7IFwKLSsJICBlbXB0eV9maXg9LjsgXAotKwllbHNlIFwKLSsJICBpbmNsdWRlX29w dGlvbj0tLWluY2x1ZGU7IFwKLSsJICBlbXB0eV9maXg9OyBcCi0rCWZpOyBcCi0rCWxpc3Q9JyQo U1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAotKwkgIGlmIHRlc3QgIiQkc3Vi ZGlyIiA9IC47IHRoZW4gOjsgZWxzZSBcCi0rCSAgICB0ZXN0ICEgLWYgJCRzdWJkaXIvVEFHUyB8 fCBcCi0rCSAgICAgIHRhZ3M9IiQkdGFncyAkJGluY2x1ZGVfb3B0aW9uPSQkaGVyZS8kJHN1YmRp ci9UQUdTIjsgXAotKwkgIGZpOyBcCi0rCWRvbmU7IFwKLSsJbGlzdD0nJChTT1VSQ0VTKSAkKEhF QURFUlMpICAkKExJU1ApICQoVEFHU19GSUxFUyknOyBcCi0rCXVuaXF1ZT1gZm9yIGkgaW4gJCRs aXN0OyBkbyBcCi0rCSAgICBpZiB0ZXN0IC1mICIkJGkiOyB0aGVuIGVjaG8gJCRpOyBlbHNlIGVj aG8gJChzcmNkaXIpLyQkaTsgZmk7IFwKLSsJICBkb25lIHwgXAotKwkgICQoQVdLKSAneyBmaWxl c1skJDBdID0gMTsgbm9uZW1wdHkgPSAxOyB9IFwKLSsJICAgICAgRU5EIHsgaWYgKG5vbmVtcHR5 KSB7IGZvciAoaSBpbiBmaWxlcykgcHJpbnQgaTsgfTsgfSdgOyBcCi0rCWlmIHRlc3QgLXogIiQo RVRBR1NfQVJHUykkJHRhZ3MkJHVuaXF1ZSI7IHRoZW4gOjsgZWxzZSBcCi0rCSAgdGVzdCAtbiAi JCR1bmlxdWUiIHx8IHVuaXF1ZT0kJGVtcHR5X2ZpeDsgXAotKwkgICQoRVRBR1MpICQoRVRBR1NG TEFHUykgJChBTV9FVEFHU0ZMQUdTKSAkKEVUQUdTX0FSR1MpIFwKLSsJICAgICQkdGFncyAkJHVu aXF1ZTsgXAotKwlmaQotK2N0YWdzOiBDVEFHUwotK0NUQUdTOiBjdGFncy1yZWN1cnNpdmUgJChI RUFERVJTKSAkKFNPVVJDRVMpICAkKFRBR1NfREVQRU5ERU5DSUVTKSBcCi0rCQkkKFRBR1NfRklM RVMpICQoTElTUCkKLSsJdGFncz07IFwKLSsJbGlzdD0nJChTT1VSQ0VTKSAkKEhFQURFUlMpICAk KExJU1ApICQoVEFHU19GSUxFUyknOyBcCi0rCXVuaXF1ZT1gZm9yIGkgaW4gJCRsaXN0OyBkbyBc Ci0rCSAgICBpZiB0ZXN0IC1mICIkJGkiOyB0aGVuIGVjaG8gJCRpOyBlbHNlIGVjaG8gJChzcmNk aXIpLyQkaTsgZmk7IFwKLSsJICBkb25lIHwgXAotKwkgICQoQVdLKSAneyBmaWxlc1skJDBdID0g MTsgbm9uZW1wdHkgPSAxOyB9IFwKLSsJICAgICAgRU5EIHsgaWYgKG5vbmVtcHR5KSB7IGZvciAo aSBpbiBmaWxlcykgcHJpbnQgaTsgfTsgfSdgOyBcCi0rCXRlc3QgLXogIiQoQ1RBR1NfQVJHUykk JHRhZ3MkJHVuaXF1ZSIgXAotKwkgIHx8ICQoQ1RBR1MpICQoQ1RBR1NGTEFHUykgJChBTV9DVEFH U0ZMQUdTKSAkKENUQUdTX0FSR1MpIFwKLSsJICAgICAkJHRhZ3MgJCR1bmlxdWUKLSsKLStHVEFH UzoKLSsJaGVyZT1gJChhbV9fY2QpICQodG9wX2J1aWxkZGlyKSAmJiBwd2RgIFwKLSsJICAmJiBj ZCAkKHRvcF9zcmNkaXIpIFwKLSsJICAmJiBndGFncyAtaSAkKEdUQUdTX0FSR1MpICQkaGVyZQot KwotK2Rpc3RjbGVhbi10YWdzOgotKwktcm0gLWYgVEFHUyBJRCBHVEFHUyBHUlRBR1MgR1NZTVMg R1BBVEggdGFncwotKwotK2Rpc3RkaXI6ICQoRElTVEZJTEVTKQotKwlAc3JjZGlyc3RyaXA9YGVj aG8gIiQoc3JjZGlyKSIgfCBzZWQgJ3MvW10uW14kJFxcKl0vXFxcXCYvZydgOyBcCi0rCXRvcHNy Y2RpcnN0cmlwPWBlY2hvICIkKHRvcF9zcmNkaXIpIiB8IHNlZCAncy9bXS5bXiQkXFwqXS9cXFxc Ji9nJ2A7IFwKLSsJbGlzdD0nJChESVNURklMRVMpJzsgXAotKwkgIGRpc3RfZmlsZXM9YGZvciBm aWxlIGluICQkbGlzdDsgZG8gZWNobyAkJGZpbGU7IGRvbmUgfCBcCi0rCSAgc2VkIC1lICJzfF4k JHNyY2RpcnN0cmlwL3x8O3QiIFwKLSsJICAgICAgLWUgInN8XiQkdG9wc3JjZGlyc3RyaXAvfCQo dG9wX2J1aWxkZGlyKS98O3QiYDsgXAotKwljYXNlICQkZGlzdF9maWxlcyBpbiBcCi0rCSAgKi8q KSAkKE1LRElSX1ApIGBlY2hvICIkJGRpc3RfZmlsZXMiIHwgXAotKwkJCSAgIHNlZCAnL1wvLyFk O3N8XnwkKGRpc3RkaXIpL3w7cywvW14vXSokJCwsJyB8IFwKLSsJCQkgICBzb3J0IC11YCA7OyBc Ci0rCWVzYWM7IFwKLSsJZm9yIGZpbGUgaW4gJCRkaXN0X2ZpbGVzOyBkbyBcCi0rCSAgaWYgdGVz dCAtZiAkJGZpbGUgfHwgdGVzdCAtZCAkJGZpbGU7IHRoZW4gZD0uOyBlbHNlIGQ9JChzcmNkaXIp OyBmaTsgXAotKwkgIGlmIHRlc3QgLWQgJCRkLyQkZmlsZTsgdGhlbiBcCi0rCSAgICBkaXI9YGVj aG8gIi8kJGZpbGUiIHwgc2VkIC1lICdzLC9bXi9dKiQkLCwnYDsgXAotKwkgICAgaWYgdGVzdCAt ZCAkKHNyY2RpcikvJCRmaWxlICYmIHRlc3QgJCRkICE9ICQoc3JjZGlyKTsgdGhlbiBcCi0rCSAg ICAgIGNwIC1wUiAkKHNyY2RpcikvJCRmaWxlICQoZGlzdGRpcikkJGRpciB8fCBleGl0IDE7IFwK LSsJICAgIGZpOyBcCi0rCSAgICBjcCAtcFIgJCRkLyQkZmlsZSAkKGRpc3RkaXIpJCRkaXIgfHwg ZXhpdCAxOyBcCi0rCSAgZWxzZSBcCi0rCSAgICB0ZXN0IC1mICQoZGlzdGRpcikvJCRmaWxlIFwK LSsJICAgIHx8IGNwIC1wICQkZC8kJGZpbGUgJChkaXN0ZGlyKS8kJGZpbGUgXAotKwkgICAgfHwg ZXhpdCAxOyBcCi0rCSAgZmk7IFwKLSsJZG9uZQotKwlsaXN0PSckKERJU1RfU1VCRElSUyknOyBm b3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAotKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9IC47IHRo ZW4gOjsgZWxzZSBcCi0rCSAgICB0ZXN0IC1kICIkKGRpc3RkaXIpLyQkc3ViZGlyIiBcCi0rCSAg ICB8fCAkKE1LRElSX1ApICIkKGRpc3RkaXIpLyQkc3ViZGlyIiBcCi0rCSAgICB8fCBleGl0IDE7 IFwKLSsJICAgIGRpc3RkaXI9YCQoYW1fX2NkKSAkKGRpc3RkaXIpICYmIHB3ZGA7IFwKLSsJICAg IHRvcF9kaXN0ZGlyPWAkKGFtX19jZCkgJCh0b3BfZGlzdGRpcikgJiYgcHdkYDsgXAotKwkgICAg KGNkICQkc3ViZGlyICYmIFwKLSsJICAgICAgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgXAotKwkg ICAgICAgIHRvcF9kaXN0ZGlyPSIkJHRvcF9kaXN0ZGlyIiBcCi0rCSAgICAgICAgZGlzdGRpcj0i JCRkaXN0ZGlyLyQkc3ViZGlyIiBcCi0rCQlhbV9fcmVtb3ZlX2Rpc3RkaXI9OiBcCi0rCQlhbV9f c2tpcF9sZW5ndGhfY2hlY2s9OiBcCi0rCSAgICAgICAgZGlzdGRpcikgXAotKwkgICAgICB8fCBl eGl0IDE7IFwKLSsJICBmaTsgXAotKwlkb25lCi0rY2hlY2stYW06IGFsbC1hbQotK2NoZWNrOiBj aGVjay1yZWN1cnNpdmUKLSthbGwtYW06IE1ha2VmaWxlCi0raW5zdGFsbGRpcnM6IGluc3RhbGxk aXJzLXJlY3Vyc2l2ZQotK2luc3RhbGxkaXJzLWFtOgotK2luc3RhbGw6IGluc3RhbGwtcmVjdXJz aXZlCi0raW5zdGFsbC1leGVjOiBpbnN0YWxsLWV4ZWMtcmVjdXJzaXZlCi0raW5zdGFsbC1kYXRh OiBpbnN0YWxsLWRhdGEtcmVjdXJzaXZlCi0rdW5pbnN0YWxsOiB1bmluc3RhbGwtcmVjdXJzaXZl Ci0rCi0raW5zdGFsbC1hbTogYWxsLWFtCi0rCUAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBpbnN0 YWxsLWV4ZWMtYW0gaW5zdGFsbC1kYXRhLWFtCi0rCi0raW5zdGFsbGNoZWNrOiBpbnN0YWxsY2hl Y2stcmVjdXJzaXZlCi0raW5zdGFsbC1zdHJpcDoKLSsJJChNQUtFKSAkKEFNX01BS0VGTEFHUykg SU5TVEFMTF9QUk9HUkFNPSIkKElOU1RBTExfU1RSSVBfUFJPR1JBTSkiIFwKLSsJICBpbnN0YWxs X3NoX1BST0dSQU09IiQoSU5TVEFMTF9TVFJJUF9QUk9HUkFNKSIgSU5TVEFMTF9TVFJJUF9GTEFH PS1zIFwKLSsJICBgdGVzdCAteiAnJChTVFJJUCknIHx8IFwKLSsJICAgIGVjaG8gIklOU1RBTExf UFJPR1JBTV9FTlY9U1RSSVBQUk9HPSckKFNUUklQKSciYCBpbnN0YWxsCi0rbW9zdGx5Y2xlYW4t Z2VuZXJpYzoKLSsKLStjbGVhbi1nZW5lcmljOgotKwotK2Rpc3RjbGVhbi1nZW5lcmljOgotKwkt dGVzdCAteiAiJChDT05GSUdfQ0xFQU5fRklMRVMpIiB8fCBybSAtZiAkKENPTkZJR19DTEVBTl9G SUxFUykKLSsKLSttYWludGFpbmVyLWNsZWFuLWdlbmVyaWM6Ci0rCUBlY2hvICJUaGlzIGNvbW1h bmQgaXMgaW50ZW5kZWQgZm9yIG1haW50YWluZXJzIHRvIHVzZSIKLSsJQGVjaG8gIml0IGRlbGV0 ZXMgZmlsZXMgdGhhdCBtYXkgcmVxdWlyZSBzcGVjaWFsIHRvb2xzIHRvIHJlYnVpbGQuIgotKwkt dGVzdCAteiAiJChNQUlOVEFJTkVSQ0xFQU5GSUxFUykiIHx8IHJtIC1mICQoTUFJTlRBSU5FUkNM RUFORklMRVMpCi0rY2xlYW46IGNsZWFuLXJlY3Vyc2l2ZQotKwotK2NsZWFuLWFtOiBjbGVhbi1n ZW5lcmljIGNsZWFuLWxpYnRvb2wgbW9zdGx5Y2xlYW4tYW0KLSsKLStkaXN0Y2xlYW46IGRpc3Rj bGVhbi1yZWN1cnNpdmUKLSsJLXJtIC1mIE1ha2VmaWxlCi0rZGlzdGNsZWFuLWFtOiBjbGVhbi1h bSBkaXN0Y2xlYW4tZ2VuZXJpYyBkaXN0Y2xlYW4tdGFncwotKwotK2R2aTogZHZpLXJlY3Vyc2l2 ZQotKwotK2R2aS1hbToKLSsKLStodG1sOiBodG1sLXJlY3Vyc2l2ZQotKwotK2luZm86IGluZm8t cmVjdXJzaXZlCi0rCi0raW5mby1hbToKLSsKLStpbnN0YWxsLWRhdGEtYW06Ci0rCi0raW5zdGFs bC1kdmk6IGluc3RhbGwtZHZpLXJlY3Vyc2l2ZQotKwotK2luc3RhbGwtZXhlYy1hbToKLSsKLStp bnN0YWxsLWh0bWw6IGluc3RhbGwtaHRtbC1yZWN1cnNpdmUKLSsKLStpbnN0YWxsLWluZm86IGlu c3RhbGwtaW5mby1yZWN1cnNpdmUKLSsKLStpbnN0YWxsLW1hbjoKLSsKLStpbnN0YWxsLXBkZjog aW5zdGFsbC1wZGYtcmVjdXJzaXZlCi0rCi0raW5zdGFsbC1wczogaW5zdGFsbC1wcy1yZWN1cnNp dmUKLSsKLStpbnN0YWxsY2hlY2stYW06Ci0rCi0rbWFpbnRhaW5lci1jbGVhbjogbWFpbnRhaW5l ci1jbGVhbi1yZWN1cnNpdmUKLSsJLXJtIC1mIE1ha2VmaWxlCi0rbWFpbnRhaW5lci1jbGVhbi1h bTogZGlzdGNsZWFuLWFtIG1haW50YWluZXItY2xlYW4tZ2VuZXJpYwotKwotK21vc3RseWNsZWFu OiBtb3N0bHljbGVhbi1yZWN1cnNpdmUKLSsKLSttb3N0bHljbGVhbi1hbTogbW9zdGx5Y2xlYW4t Z2VuZXJpYyBtb3N0bHljbGVhbi1saWJ0b29sCi0rCi0rcGRmOiBwZGYtcmVjdXJzaXZlCi0rCi0r cGRmLWFtOgotKwotK3BzOiBwcy1yZWN1cnNpdmUKLSsKLStwcy1hbToKLSsKLSt1bmluc3RhbGwt YW06Ci0rCi0rLk1BS0U6ICQoUkVDVVJTSVZFX0NMRUFOX1RBUkdFVFMpICQoUkVDVVJTSVZFX1RB UkdFVFMpIGluc3RhbGwtYW0gXAotKwlpbnN0YWxsLXN0cmlwCi0rCi0rLlBIT05ZOiAkKFJFQ1VS U0lWRV9DTEVBTl9UQVJHRVRTKSAkKFJFQ1VSU0lWRV9UQVJHRVRTKSBDVEFHUyBHVEFHUyBcCi0r CWFsbCBhbGwtYW0gY2hlY2sgY2hlY2stYW0gY2xlYW4gY2xlYW4tZ2VuZXJpYyBjbGVhbi1saWJ0 b29sIFwKLSsJY3RhZ3MgY3RhZ3MtcmVjdXJzaXZlIGRpc3RjbGVhbiBkaXN0Y2xlYW4tZ2VuZXJp YyBcCi0rCWRpc3RjbGVhbi1saWJ0b29sIGRpc3RjbGVhbi10YWdzIGRpc3RkaXIgZHZpIGR2aS1h bSBodG1sIFwKLSsJaHRtbC1hbSBpbmZvIGluZm8tYW0gaW5zdGFsbCBpbnN0YWxsLWFtIGluc3Rh bGwtZGF0YSBcCi0rCWluc3RhbGwtZGF0YS1hbSBpbnN0YWxsLWR2aSBpbnN0YWxsLWR2aS1hbSBp bnN0YWxsLWV4ZWMgXAotKwlpbnN0YWxsLWV4ZWMtYW0gaW5zdGFsbC1odG1sIGluc3RhbGwtaHRt bC1hbSBpbnN0YWxsLWluZm8gXAotKwlpbnN0YWxsLWluZm8tYW0gaW5zdGFsbC1tYW4gaW5zdGFs bC1wZGYgaW5zdGFsbC1wZGYtYW0gXAotKwlpbnN0YWxsLXBzIGluc3RhbGwtcHMtYW0gaW5zdGFs bC1zdHJpcCBpbnN0YWxsY2hlY2sgXAotKwlpbnN0YWxsY2hlY2stYW0gaW5zdGFsbGRpcnMgaW5z dGFsbGRpcnMtYW0gbWFpbnRhaW5lci1jbGVhbiBcCi0rCW1haW50YWluZXItY2xlYW4tZ2VuZXJp YyBtb3N0bHljbGVhbiBtb3N0bHljbGVhbi1nZW5lcmljIFwKLSsJbW9zdGx5Y2xlYW4tbGlidG9v bCBwZGYgcGRmLWFtIHBzIHBzLWFtIHRhZ3MgdGFncy1yZWN1cnNpdmUgXAotKwl1bmluc3RhbGwg dW5pbnN0YWxsLWFtCi0rCi0rQFNFVF9NQUtFQAotKyMgVGVsbCB2ZXJzaW9ucyBbMy41OSwzLjYz KSBvZiBHTlUgbWFrZSB0byBub3QgZXhwb3J0IGFsbCB2YXJpYWJsZXMuCi0rIyBPdGhlcndpc2Ug YSBzeXN0ZW0gbGltaXQgKGZvciBTeXNWIGF0IGxlYXN0KSBtYXkgYmUgZXhjZWVkZWQuCi0rLk5P RVhQT1JUOgotZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL2J1aWxkL21zdmM4MC9kbGwvTWFr ZWZpbGUuYW0gc29jaS0zLjAuMF90cmVwMzAwL2J1aWxkL21zdmM4MC9kbGwvTWFrZWZpbGUuYW0K LS0tLSBzb2NpLTMuMC4wXzQtcGFjay9idWlsZC9tc3ZjODAvZGxsL01ha2VmaWxlLmFtCTE5NzAt MDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCi0rKysgc29jaS0zLjAuMF90cmVwMzAwL2J1 aWxkL21zdmM4MC9kbGwvTWFrZWZpbGUuYW0JMjAwOS0wNS0yMiAyMjo1NDoyMC4wMDAwMDAwMDAg KzAyMDAKLUBAIC0wLDAgKzEsMTEgQEAKLSsjIyBidWlsZC9tc3ZjODAvZGxsIHN1Yi1kaXJlY3Rv cnkKLStpbmNsdWRlICQodG9wX3NyY2RpcikvTWFrZWZpbGUuY29tbW9uCi0rCi0rTUFJTlRBSU5F UkNMRUFORklMRVMgPSBNYWtlZmlsZS5pbgotKwotK0VYVFJBX0RJU1QgPSBidWlsZC5iYXQgZW1w dHkudmNwcm9qIG1ha2V0ZXN0Lm1hayBvZGJjX3Rlc3RfcG9zdGdyZXNxbC52Y3Byb2ogXAotKwlw b3N0Z3Jlc3FsX3Rlc3QudmNwcm9qIHNxbGl0ZTNfdGVzdC52Y3Byb2ogY2xlYW4uYmF0IFwKLSsJ ZmlyZWJpcmRfdGVzdC52Y3Byb2ogb2RiY190ZXN0X2FjY2Vzcy52Y3Byb2ogb2RiYy52Y3Byb2og XAotKwlwb3N0Z3Jlc3FsLnZjcHJvaiBzcWxpdGUzLnZjcHJvaiBjb3JlLnZjcHJvaiBmaXJlYmly ZC52Y3Byb2ogXAotKwlvZGJjX3Rlc3RfbXNzcWwudmNwcm9qIG9yYWNsZV90ZXN0LnZjcHJvaiBz b2NpX2RsbC5zbG4gXAotKwllbXB0eV90ZXN0LnZjcHJvaiBvZGJjX3Rlc3RfbXlzcWwudmNwcm9q IG9yYWNsZS52Y3Byb2ogc29jaV9kbGwudnNwcm9wcwotZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1w YWNrL2J1aWxkL21zdmM4MC9kbGwvTWFrZWZpbGUuaW4gc29jaS0zLjAuMF90cmVwMzAwL2J1aWxk L21zdmM4MC9kbGwvTWFrZWZpbGUuaW4KLS0tLSBzb2NpLTMuMC4wXzQtcGFjay9idWlsZC9tc3Zj ODAvZGxsL01ha2VmaWxlLmluCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCi0r Kysgc29jaS0zLjAuMF90cmVwMzAwL2J1aWxkL21zdmM4MC9kbGwvTWFrZWZpbGUuaW4JMjAwOS0w NS0yMyAxMDowMjowMi4wMDAwMDAwMDAgKzAyMDAKLUBAIC0wLDAgKzEsMzk0IEBACi0rIyBNYWtl ZmlsZS5pbiBnZW5lcmF0ZWQgYnkgYXV0b21ha2UgMS4xMC4yIGZyb20gTWFrZWZpbGUuYW0uCi0r IyBAY29uZmlndXJlX2lucHV0QAotKwotKyMgQ29weXJpZ2h0IChDKSAxOTk0LCAxOTk1LCAxOTk2 LCAxOTk3LCAxOTk4LCAxOTk5LCAyMDAwLCAyMDAxLCAyMDAyLAotKyMgMjAwMywgMjAwNCwgMjAw NSwgMjAwNiwgMjAwNywgMjAwOCAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCi0rIyBU aGlzIE1ha2VmaWxlLmluIGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5k YXRpb24KLSsjIGdpdmVzIHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNvcHkgYW5kL29yIGRpc3Ry aWJ1dGUgaXQsCi0rIyB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9ucywgYXMgbG9uZyBhcyB0 aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCi0rCi0rIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0 ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSsjIGJ1dCBXSVRIT1VUIEFO WSBXQVJSQU5UWSwgdG8gdGhlIGV4dGVudCBwZXJtaXR0ZWQgYnkgbGF3OyB3aXRob3V0Ci0rIyBl dmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZP UiBBCi0rIyBQQVJUSUNVTEFSIFBVUlBPU0UuCi0rCi0rQFNFVF9NQUtFQAotK1ZQQVRIID0gQHNy Y2RpckAKLStwa2dkYXRhZGlyID0gJChkYXRhZGlyKS9AUEFDS0FHRUAKLStwa2dsaWJkaXIgPSAk KGxpYmRpcikvQFBBQ0tBR0VACi0rcGtnaW5jbHVkZWRpciA9ICQoaW5jbHVkZWRpcikvQFBBQ0tB R0VACi0rYW1fX2NkID0gQ0RQQVRIPSIkJHtaU0hfVkVSU0lPTisufSQoUEFUSF9TRVBBUkFUT1Ip IiAmJiBjZAotK2luc3RhbGxfc2hfREFUQSA9ICQoaW5zdGFsbF9zaCkgLWMgLW0gNjQ0Ci0raW5z dGFsbF9zaF9QUk9HUkFNID0gJChpbnN0YWxsX3NoKSAtYwotK2luc3RhbGxfc2hfU0NSSVBUID0g JChpbnN0YWxsX3NoKSAtYwotK0lOU1RBTExfSEVBREVSID0gJChJTlNUQUxMX0RBVEEpCi0rdHJh bnNmb3JtID0gJChwcm9ncmFtX3RyYW5zZm9ybV9uYW1lKQotK05PUk1BTF9JTlNUQUxMID0gOgot K1BSRV9JTlNUQUxMID0gOgotK1BPU1RfSU5TVEFMTCA9IDoKLStOT1JNQUxfVU5JTlNUQUxMID0g OgotK1BSRV9VTklOU1RBTEwgPSA6Ci0rUE9TVF9VTklOU1RBTEwgPSA6Ci0rYnVpbGRfdHJpcGxl dCA9IEBidWlsZEAKLStob3N0X3RyaXBsZXQgPSBAaG9zdEAKLStESVNUX0NPTU1PTiA9ICQoc3Jj ZGlyKS9NYWtlZmlsZS5hbSAkKHNyY2RpcikvTWFrZWZpbGUuaW4gXAotKwkkKHRvcF9zcmNkaXIp L01ha2VmaWxlLmNvbW1vbgotK3N1YmRpciA9IGJ1aWxkL21zdmM4MC9kbGwKLStBQ0xPQ0FMX000 ID0gJCh0b3Bfc3JjZGlyKS9hY2xvY2FsLm00Ci0rYW1fX2FjbG9jYWxfbTRfZGVwcyA9ICQodG9w X3NyY2RpcikvY29uZmlnL2F4X2Jvb3N0Lm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhf bXlzcWwubTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9vcmFjbGVfb2NpLm00IFwKLSsJ JCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfcG9zdGdyZXNxbC5tNCBcCi0rCSQodG9wX3NyY2Rpcikv Y29uZmlnL2NwcHVuaXQubTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9saWJ0b29sLm00IFwK LSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvbHRvcHRpb25zLm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9j b25maWcvbHRzdWdhci5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmlnL2x0dmVyc2lvbi5tNCBc Ci0rCSQodG9wX3NyY2RpcikvY29uZmlnL2x0fm9ic29sZXRlLm00ICQodG9wX3NyY2RpcikvY29u ZmlndXJlLmFjCi0rYW1fX2NvbmZpZ3VyZV9kZXBzID0gJChhbV9fYWNsb2NhbF9tNF9kZXBzKSAk KENPTkZJR1VSRV9ERVBFTkRFTkNJRVMpIFwKLSsJJChBQ0xPQ0FMX000KQotK21raW5zdGFsbGRp cnMgPSAkKGluc3RhbGxfc2gpIC1kCi0rQ09ORklHX0hFQURFUiA9ICQodG9wX2J1aWxkZGlyKS9z b2NpL2NvbmZpZy5oCi0rQ09ORklHX0NMRUFOX0ZJTEVTID0KLStTT1VSQ0VTID0KLStESVNUX1NP VVJDRVMgPQotK0RJU1RGSUxFUyA9ICQoRElTVF9DT01NT04pICQoRElTVF9TT1VSQ0VTKSAkKFRF WElORk9TKSAkKEVYVFJBX0RJU1QpCi0rQUNMT0NBTCA9IEBBQ0xPQ0FMQAotK0FNVEFSID0gQEFN VEFSQAotK0FSID0gQEFSQAotK0FVVE9DT05GID0gQEFVVE9DT05GQAotK0FVVE9IRUFERVIgPSBA QVVUT0hFQURFUkAKLStBVVRPTUFLRSA9IEBBVVRPTUFLRUAKLStBV0sgPSBAQVdLQAotK0JPT1NU X0NGTEFHUyA9IEBCT09TVF9DRkxBR1NACi0rQk9PU1RfREFURV9USU1FX0xJQiA9IEBCT09TVF9E QVRFX1RJTUVfTElCQAotK0JPT1NUX0ZJTEVTWVNURU1fTElCID0gQEJPT1NUX0ZJTEVTWVNURU1f TElCQAotK0JPT1NUX0lPU1RSRUFNU19MSUIgPSBAQk9PU1RfSU9TVFJFQU1TX0xJQkAKLStCT09T VF9MSUJTID0gQEJPT1NUX0xJQlNACi0rQk9PU1RfUFJPR1JBTV9PUFRJT05TX0xJQiA9IEBCT09T VF9QUk9HUkFNX09QVElPTlNfTElCQAotK0JPT1NUX1JFR0VYX0xJQiA9IEBCT09TVF9SRUdFWF9M SUJACi0rQk9PU1RfU0VSSUFMSVpBVElPTl9MSUIgPSBAQk9PU1RfU0VSSUFMSVpBVElPTl9MSUJA Ci0rQk9PU1RfU0lHTkFMU19MSUIgPSBAQk9PU1RfU0lHTkFMU19MSUJACi0rQk9PU1RfVEhSRUFE X0xJQiA9IEBCT09TVF9USFJFQURfTElCQAotK0JPT1NUX1VOSVRfVEVTVF9GUkFNRVdPUktfTElC ID0gQEJPT1NUX1VOSVRfVEVTVF9GUkFNRVdPUktfTElCQAotK0JPT1NUX1ZFUlNJT04gPSBAQk9P U1RfVkVSU0lPTkAKLStCT09TVF9XU0VSSUFMSVpBVElPTl9MSUIgPSBAQk9PU1RfV1NFUklBTEla QVRJT05fTElCQAotK0NDID0gQENDQAotK0NDREVQTU9ERSA9IEBDQ0RFUE1PREVACi0rQ0ZMQUdT ID0gQENGTEFHU0AKLStDUFAgPSBAQ1BQQAotK0NQUEZMQUdTID0gQENQUEZMQUdTQAotK0NQUFVO SVRfQ0ZMQUdTID0gQENQUFVOSVRfQ0ZMQUdTQAotK0NQUFVOSVRfQ09ORklHID0gQENQUFVOSVRf Q09ORklHQAotK0NQUFVOSVRfTElCUyA9IEBDUFBVTklUX0xJQlNACi0rQ1BQVU5JVF9WRVJTSU9O ID0gQENQUFVOSVRfVkVSU0lPTkAKLStDWFggPSBAQ1hYQAotK0NYWENQUCA9IEBDWFhDUFBACi0r Q1hYREVQTU9ERSA9IEBDWFhERVBNT0RFQAotK0NYWEZMQUdTID0gQENYWEZMQUdTQAotK0NZR1BB VEhfVyA9IEBDWUdQQVRIX1dACi0rREVGUyA9IEBERUZTQAotK0RFUERJUiA9IEBERVBESVJACi0r RFNZTVVUSUwgPSBARFNZTVVUSUxACi0rRFVNUEJJTiA9IEBEVU1QQklOQAotK0VDSE9fQyA9IEBF Q0hPX0NACi0rRUNIT19OID0gQEVDSE9fTkAKLStFQ0hPX1QgPSBARUNIT19UQAotK0VHUkVQID0g QEVHUkVQQAotK0VYRUVYVCA9IEBFWEVFWFRACi0rRkdSRVAgPSBARkdSRVBACi0rR0VORVJJQ19M SUJSQVJZX1ZFUlNJT04gPSBAR0VORVJJQ19MSUJSQVJZX1ZFUlNJT05ACi0rR1JFUCA9IEBHUkVQ QAotK0lOU1RBTEwgPSBASU5TVEFMTEAKLStJTlNUQUxMX0RBVEEgPSBASU5TVEFMTF9EQVRBQAot K0lOU1RBTExfUFJPR1JBTSA9IEBJTlNUQUxMX1BST0dSQU1ACi0rSU5TVEFMTF9TQ1JJUFQgPSBA SU5TVEFMTF9TQ1JJUFRACi0rSU5TVEFMTF9TVFJJUF9QUk9HUkFNID0gQElOU1RBTExfU1RSSVBf UFJPR1JBTUAKLStMRCA9IEBMREAKLStMREZMQUdTID0gQExERkxBR1NACi0rTElCT0JKUyA9IEBM SUJPQkpTQAotK0xJQlMgPSBATElCU0AKLStMSUJUT09MID0gQExJQlRPT0xACi0rTElQTyA9IEBM SVBPQAotK0xOX1MgPSBATE5fU0AKLStMVExJQk9CSlMgPSBATFRMSUJPQkpTQAotK01BS0VJTkZP ID0gQE1BS0VJTkZPQAotK01LRElSX1AgPSBATUtESVJfUEAKLStNWVNRTF9DRkxBR1MgPSBATVlT UUxfQ0ZMQUdTQAotK01ZU1FMX0NPTkZJRyA9IEBNWVNRTF9DT05GSUdACi0rTVlTUUxfRElSUyA9 IEBNWVNRTF9ESVJTQAotK01ZU1FMX0xERkxBR1MgPSBATVlTUUxfTERGTEFHU0AKLStNWVNRTF9W RVJTSU9OID0gQE1ZU1FMX1ZFUlNJT05ACi0rTk0gPSBATk1ACi0rTk1FRElUID0gQE5NRURJVEAK LStPQkpEVU1QID0gQE9CSkRVTVBACi0rT0JKRVhUID0gQE9CSkVYVEAKLStPUkFDTEVfRElSUyA9 IEBPUkFDTEVfRElSU0AKLStPUkFDTEVfT0NJX0NGTEFHUyA9IEBPUkFDTEVfT0NJX0NGTEFHU0AK LStPUkFDTEVfT0NJX0xERkxBR1MgPSBAT1JBQ0xFX09DSV9MREZMQUdTQAotK09SQUNMRV9PQ0lf VkVSU0lPTiA9IEBPUkFDTEVfT0NJX1ZFUlNJT05ACi0rT1RPT0wgPSBAT1RPT0xACi0rT1RPT0w2 NCA9IEBPVE9PTDY0QAotK1BBQ0tBR0UgPSBAUEFDS0FHRUAKLStQQUNLQUdFX0JVR1JFUE9SVCA9 IEBQQUNLQUdFX0JVR1JFUE9SVEAKLStQQUNLQUdFX05BTUUgPSBAUEFDS0FHRV9OQU1FQAotK1BB Q0tBR0VfU1RSSU5HID0gQFBBQ0tBR0VfU1RSSU5HQAotK1BBQ0tBR0VfVEFSTkFNRSA9IEBQQUNL QUdFX1RBUk5BTUVACi0rUEFDS0FHRV9WRVJTSU9OID0gQFBBQ0tBR0VfVkVSU0lPTkAKLStQQVRI X1NFUEFSQVRPUiA9IEBQQVRIX1NFUEFSQVRPUkAKLStQRVJMID0gQFBFUkxACi0rUEdfQ09ORklH ID0gQFBHX0NPTkZJR0AKLStQT1NUR1JFU1FMX0NGTEFHUyA9IEBQT1NUR1JFU1FMX0NGTEFHU0AK LStQT1NUR1JFU1FMX0RJUlMgPSBAUE9TVEdSRVNRTF9ESVJTQAotK1BPU1RHUkVTUUxfTERGTEFH UyA9IEBQT1NUR1JFU1FMX0xERkxBR1NACi0rUE9TVEdSRVNRTF9WRVJTSU9OID0gQFBPU1RHUkVT UUxfVkVSU0lPTkAKLStSQU5MSUIgPSBAUkFOTElCQAotK1JQTV9SRUxFQVNFID0gQFJQTV9SRUxF QVNFQAotK1NFRCA9IEBTRURACi0rU0VUX01BS0UgPSBAU0VUX01BS0VACi0rU0hFTEwgPSBAU0hF TExACi0rU09DSV9IRUFERVJTX0JVUklFRCA9IEBTT0NJX0hFQURFUlNfQlVSSUVEQAotK1NPQ0lf TVlTUUxfSEVBREVSU19CVVJJRUQgPSBAU09DSV9NWVNRTF9IRUFERVJTX0JVUklFREAKLStTT0NJ X1BPU1RHUkVTUUxfSEVBREVSU19CVVJJRUQgPSBAU09DSV9QT1NUR1JFU1FMX0hFQURFUlNfQlVS SUVEQAotK1NUUklQID0gQFNUUklQQAotK1VQTE9BRF9DT01NQU5EID0gQFVQTE9BRF9DT01NQU5E QAotK1ZFUlNJT04gPSBAVkVSU0lPTkAKLSthYnNfYnVpbGRkaXIgPSBAYWJzX2J1aWxkZGlyQAot K2Fic19zcmNkaXIgPSBAYWJzX3NyY2RpckAKLSthYnNfdG9wX2J1aWxkZGlyID0gQGFic190b3Bf YnVpbGRkaXJACi0rYWJzX3RvcF9zcmNkaXIgPSBAYWJzX3RvcF9zcmNkaXJACi0rYWNfY3RfQ0Mg PSBAYWNfY3RfQ0NACi0rYWNfY3RfQ1hYID0gQGFjX2N0X0NYWEAKLSthY19jdF9EVU1QQklOID0g QGFjX2N0X0RVTVBCSU5ACi0rYW1fX2luY2x1ZGUgPSBAYW1fX2luY2x1ZGVACi0rYW1fX2xlYWRp bmdfZG90ID0gQGFtX19sZWFkaW5nX2RvdEAKLSthbV9fcXVvdGUgPSBAYW1fX3F1b3RlQAotK2Ft X190YXIgPSBAYW1fX3RhckAKLSthbV9fdW50YXIgPSBAYW1fX3VudGFyQAotK2JpbmRpciA9IEBi aW5kaXJACi0rYnVpbGQgPSBAYnVpbGRACi0rYnVpbGRfYWxpYXMgPSBAYnVpbGRfYWxpYXNACi0r YnVpbGRfY3B1ID0gQGJ1aWxkX2NwdUAKLStidWlsZF9vcyA9IEBidWlsZF9vc0AKLStidWlsZF92 ZW5kb3IgPSBAYnVpbGRfdmVuZG9yQAotK2J1aWxkZGlyID0gQGJ1aWxkZGlyQAotK2RhdGFkaXIg PSBAZGF0YWRpckAKLStkYXRhcm9vdGRpciA9IEBkYXRhcm9vdGRpckAKLStkaWZmX29rID0gQGRp ZmZfb2tACi0rZG9jZGlyID0gQGRvY2RpckAKLStkb3h5Z2VuX29rID0gQGRveHlnZW5fb2tACi0r ZHZpZGlyID0gQGR2aWRpckAKLStkdmlwc19vayA9IEBkdmlwc19va0AKLStleGVjX3ByZWZpeCA9 IEBleGVjX3ByZWZpeEAKLStnc19vayA9IEBnc19va0AKLStob3N0ID0gQGhvc3RACi0raG9zdF9h bGlhcyA9IEBob3N0X2FsaWFzQAotK2hvc3RfY3B1ID0gQGhvc3RfY3B1QAotK2hvc3Rfb3MgPSBA aG9zdF9vc0AKLStob3N0X3ZlbmRvciA9IEBob3N0X3ZlbmRvckAKLStodG1sZGlyID0gQGh0bWxk aXJACi0raW5jbHVkZWRpciA9IEBpbmNsdWRlZGlyQAotK2luZm9kaXIgPSBAaW5mb2RpckAKLStp bnN0YWxsX3NoID0gQGluc3RhbGxfc2hACi0rbGF0ZXhfb2sgPSBAbGF0ZXhfb2tACi0rbGliZGly ID0gQGxpYmRpckAKLStsaWJleGVjZGlyID0gQGxpYmV4ZWNkaXJACi0rbG9jYWxlZGlyID0gQGxv Y2FsZWRpckAKLStsb2NhbHN0YXRlZGlyID0gQGxvY2Fsc3RhdGVkaXJACi0rbHRfRUNITyA9IEBs dF9FQ0hPQAotK21hbmRpciA9IEBtYW5kaXJACi0rbWtkaXJfcCA9IEBta2Rpcl9wQAotK29sZGlu Y2x1ZGVkaXIgPSBAb2xkaW5jbHVkZWRpckAKLStwZGZkaXIgPSBAcGRmZGlyQAotK3ByZWZpeCA9 IEBwcmVmaXhACi0rcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZSA9IEBwcm9ncmFtX3RyYW5zZm9ybV9u YW1lQAotK3BzZGlyID0gQHBzZGlyQAotK3NiaW5kaXIgPSBAc2JpbmRpckAKLStzZWRfb2sgPSBA c2VkX29rQAotK3NoYXJlZHN0YXRlZGlyID0gQHNoYXJlZHN0YXRlZGlyQAotK3NyY2RpciA9IEBz cmNkaXJACi0rc3lzY29uZmRpciA9IEBzeXNjb25mZGlyQAotK3RhcmdldF9hbGlhcyA9IEB0YXJn ZXRfYWxpYXNACi0rdG9wX2J1aWxkX3ByZWZpeCA9IEB0b3BfYnVpbGRfcHJlZml4QAotK3RvcF9i dWlsZGRpciA9IEB0b3BfYnVpbGRkaXJACi0rdG9wX3NyY2RpciA9IEB0b3Bfc3JjZGlyQAotK0FN X0NQUEZMQUdTID0gLUkkKHRvcF9idWlsZGRpcikgLUkkKHRvcF9zcmNkaXIpCi0rTUFJTlRBSU5F UkNMRUFORklMRVMgPSBNYWtlZmlsZS5pbgotK0VYVFJBX0RJU1QgPSBidWlsZC5iYXQgZW1wdHku dmNwcm9qIG1ha2V0ZXN0Lm1hayBvZGJjX3Rlc3RfcG9zdGdyZXNxbC52Y3Byb2ogXAotKwlwb3N0 Z3Jlc3FsX3Rlc3QudmNwcm9qIHNxbGl0ZTNfdGVzdC52Y3Byb2ogY2xlYW4uYmF0IFwKLSsJZmly ZWJpcmRfdGVzdC52Y3Byb2ogb2RiY190ZXN0X2FjY2Vzcy52Y3Byb2ogb2RiYy52Y3Byb2ogXAot Kwlwb3N0Z3Jlc3FsLnZjcHJvaiBzcWxpdGUzLnZjcHJvaiBjb3JlLnZjcHJvaiBmaXJlYmlyZC52 Y3Byb2ogXAotKwlvZGJjX3Rlc3RfbXNzcWwudmNwcm9qIG9yYWNsZV90ZXN0LnZjcHJvaiBzb2Np X2RsbC5zbG4gXAotKwllbXB0eV90ZXN0LnZjcHJvaiBvZGJjX3Rlc3RfbXlzcWwudmNwcm9qIG9y YWNsZS52Y3Byb2ogc29jaV9kbGwudnNwcm9wcwotKwotK2FsbDogYWxsLWFtCi0rCi0rLlNVRkZJ WEVTOgotKyQoc3JjZGlyKS9NYWtlZmlsZS5pbjogICQoc3JjZGlyKS9NYWtlZmlsZS5hbSAkKHRv cF9zcmNkaXIpL01ha2VmaWxlLmNvbW1vbiAkKGFtX19jb25maWd1cmVfZGVwcykKLSsJQGZvciBk ZXAgaW4gJD87IGRvIFwKLSsJICBjYXNlICckKGFtX19jb25maWd1cmVfZGVwcyknIGluIFwKLSsJ ICAgICokJGRlcCopIFwKLSsJICAgICAgKCBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAk KEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2ggKSBcCi0rCSAgICAgICAgJiYgeyBpZiB0ZXN0IC1m ICRAOyB0aGVuIGV4aXQgMDsgZWxzZSBicmVhazsgZmk7IH07IFwKLSsJICAgICAgZXhpdCAxOzsg XAotKwkgIGVzYWM7IFwKLSsJZG9uZTsgXAotKwllY2hvICcgY2QgJCh0b3Bfc3JjZGlyKSAmJiAk KEFVVE9NQUtFKSAtLWdudSAgYnVpbGQvbXN2YzgwL2RsbC9NYWtlZmlsZSc7IFwKLSsJY2QgJCh0 b3Bfc3JjZGlyKSAmJiBcCi0rCSAgJChBVVRPTUFLRSkgLS1nbnUgIGJ1aWxkL21zdmM4MC9kbGwv TWFrZWZpbGUKLSsuUFJFQ0lPVVM6IE1ha2VmaWxlCi0rTWFrZWZpbGU6ICQoc3JjZGlyKS9NYWtl ZmlsZS5pbiAkKHRvcF9idWlsZGRpcikvY29uZmlnLnN0YXR1cwotKwlAY2FzZSAnJD8nIGluIFwK LSsJICAqY29uZmlnLnN0YXR1cyopIFwKLSsJICAgIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1B S0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaDs7IFwKLSsJICAqKSBcCi0rCSAgICBlY2hv ICcgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoU0hFTEwpIC4vY29uZmlnLnN0YXR1cyAkKHN1YmRp cikvJEAgJChhbV9fZGVwZmlsZXNfbWF5YmUpJzsgXAotKwkgICAgY2QgJCh0b3BfYnVpbGRkaXIp ICYmICQoU0hFTEwpIC4vY29uZmlnLnN0YXR1cyAkKHN1YmRpcikvJEAgJChhbV9fZGVwZmlsZXNf bWF5YmUpOzsgXAotKwllc2FjOwotKwotKyQodG9wX2J1aWxkZGlyKS9jb25maWcuc3RhdHVzOiAk KHRvcF9zcmNkaXIpL2NvbmZpZ3VyZSAkKENPTkZJR19TVEFUVVNfREVQRU5ERU5DSUVTKQotKwlj ZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gK LSsKLSskKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZTogICQoYW1fX2NvbmZpZ3VyZV9kZXBzKQotKwlj ZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gK LSskKEFDTE9DQUxfTTQpOiAgJChhbV9fYWNsb2NhbF9tNF9kZXBzKQotKwljZCAkKHRvcF9idWls ZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gKLSsKLSttb3N0bHlj bGVhbi1saWJ0b29sOgotKwktcm0gLWYgKi5sbwotKwotK2NsZWFuLWxpYnRvb2w6Ci0rCS1ybSAt cmYgLmxpYnMgX2xpYnMKLSt0YWdzOiBUQUdTCi0rVEFHUzoKLSsKLStjdGFnczogQ1RBR1MKLStD VEFHUzoKLSsKLSsKLStkaXN0ZGlyOiAkKERJU1RGSUxFUykKLSsJQHNyY2RpcnN0cmlwPWBlY2hv ICIkKHNyY2RpcikiIHwgc2VkICdzL1tdLlteJCRcXCpdL1xcXFwmL2cnYDsgXAotKwl0b3BzcmNk aXJzdHJpcD1gZWNobyAiJCh0b3Bfc3JjZGlyKSIgfCBzZWQgJ3MvW10uW14kJFxcKl0vXFxcXCYv ZydgOyBcCi0rCWxpc3Q9JyQoRElTVEZJTEVTKSc7IFwKLSsJICBkaXN0X2ZpbGVzPWBmb3IgZmls ZSBpbiAkJGxpc3Q7IGRvIGVjaG8gJCRmaWxlOyBkb25lIHwgXAotKwkgIHNlZCAtZSAic3xeJCRz cmNkaXJzdHJpcC98fDt0IiBcCi0rCSAgICAgIC1lICJzfF4kJHRvcHNyY2RpcnN0cmlwL3wkKHRv cF9idWlsZGRpcikvfDt0ImA7IFwKLSsJY2FzZSAkJGRpc3RfZmlsZXMgaW4gXAotKwkgICovKikg JChNS0RJUl9QKSBgZWNobyAiJCRkaXN0X2ZpbGVzIiB8IFwKLSsJCQkgICBzZWQgJy9cLy8hZDtz fF58JChkaXN0ZGlyKS98O3MsL1teL10qJCQsLCcgfCBcCi0rCQkJICAgc29ydCAtdWAgOzsgXAot Kwllc2FjOyBcCi0rCWZvciBmaWxlIGluICQkZGlzdF9maWxlczsgZG8gXAotKwkgIGlmIHRlc3Qg LWYgJCRmaWxlIHx8IHRlc3QgLWQgJCRmaWxlOyB0aGVuIGQ9LjsgZWxzZSBkPSQoc3JjZGlyKTsg Zmk7IFwKLSsJICBpZiB0ZXN0IC1kICQkZC8kJGZpbGU7IHRoZW4gXAotKwkgICAgZGlyPWBlY2hv ICIvJCRmaWxlIiB8IHNlZCAtZSAncywvW14vXSokJCwsJ2A7IFwKLSsJICAgIGlmIHRlc3QgLWQg JChzcmNkaXIpLyQkZmlsZSAmJiB0ZXN0ICQkZCAhPSAkKHNyY2Rpcik7IHRoZW4gXAotKwkgICAg ICBjcCAtcFIgJChzcmNkaXIpLyQkZmlsZSAkKGRpc3RkaXIpJCRkaXIgfHwgZXhpdCAxOyBcCi0r CSAgICBmaTsgXAotKwkgICAgY3AgLXBSICQkZC8kJGZpbGUgJChkaXN0ZGlyKSQkZGlyIHx8IGV4 aXQgMTsgXAotKwkgIGVsc2UgXAotKwkgICAgdGVzdCAtZiAkKGRpc3RkaXIpLyQkZmlsZSBcCi0r CSAgICB8fCBjcCAtcCAkJGQvJCRmaWxlICQoZGlzdGRpcikvJCRmaWxlIFwKLSsJICAgIHx8IGV4 aXQgMTsgXAotKwkgIGZpOyBcCi0rCWRvbmUKLStjaGVjay1hbTogYWxsLWFtCi0rY2hlY2s6IGNo ZWNrLWFtCi0rYWxsLWFtOiBNYWtlZmlsZQotK2luc3RhbGxkaXJzOgotK2luc3RhbGw6IGluc3Rh bGwtYW0KLStpbnN0YWxsLWV4ZWM6IGluc3RhbGwtZXhlYy1hbQotK2luc3RhbGwtZGF0YTogaW5z dGFsbC1kYXRhLWFtCi0rdW5pbnN0YWxsOiB1bmluc3RhbGwtYW0KLSsKLStpbnN0YWxsLWFtOiBh bGwtYW0KLSsJQCQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGluc3RhbGwtZXhlYy1hbSBpbnN0YWxs LWRhdGEtYW0KLSsKLStpbnN0YWxsY2hlY2s6IGluc3RhbGxjaGVjay1hbQotK2luc3RhbGwtc3Ry aXA6Ci0rCSQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIElOU1RBTExfUFJPR1JBTT0iJChJTlNUQUxM X1NUUklQX1BST0dSQU0pIiBcCi0rCSAgaW5zdGFsbF9zaF9QUk9HUkFNPSIkKElOU1RBTExfU1RS SVBfUFJPR1JBTSkiIElOU1RBTExfU1RSSVBfRkxBRz0tcyBcCi0rCSAgYHRlc3QgLXogJyQoU1RS SVApJyB8fCBcCi0rCSAgICBlY2hvICJJTlNUQUxMX1BST0dSQU1fRU5WPVNUUklQUFJPRz0nJChT VFJJUCknImAgaW5zdGFsbAotK21vc3RseWNsZWFuLWdlbmVyaWM6Ci0rCi0rY2xlYW4tZ2VuZXJp YzoKLSsKLStkaXN0Y2xlYW4tZ2VuZXJpYzoKLSsJLXRlc3QgLXogIiQoQ09ORklHX0NMRUFOX0ZJ TEVTKSIgfHwgcm0gLWYgJChDT05GSUdfQ0xFQU5fRklMRVMpCi0rCi0rbWFpbnRhaW5lci1jbGVh bi1nZW5lcmljOgotKwlAZWNobyAiVGhpcyBjb21tYW5kIGlzIGludGVuZGVkIGZvciBtYWludGFp bmVycyB0byB1c2UiCi0rCUBlY2hvICJpdCBkZWxldGVzIGZpbGVzIHRoYXQgbWF5IHJlcXVpcmUg c3BlY2lhbCB0b29scyB0byByZWJ1aWxkLiIKLSsJLXRlc3QgLXogIiQoTUFJTlRBSU5FUkNMRUFO RklMRVMpIiB8fCBybSAtZiAkKE1BSU5UQUlORVJDTEVBTkZJTEVTKQotK2NsZWFuOiBjbGVhbi1h bQotKwotK2NsZWFuLWFtOiBjbGVhbi1nZW5lcmljIGNsZWFuLWxpYnRvb2wgbW9zdGx5Y2xlYW4t YW0KLSsKLStkaXN0Y2xlYW46IGRpc3RjbGVhbi1hbQotKwktcm0gLWYgTWFrZWZpbGUKLStkaXN0 Y2xlYW4tYW06IGNsZWFuLWFtIGRpc3RjbGVhbi1nZW5lcmljCi0rCi0rZHZpOiBkdmktYW0KLSsK LStkdmktYW06Ci0rCi0raHRtbDogaHRtbC1hbQotKwotK2luZm86IGluZm8tYW0KLSsKLStpbmZv LWFtOgotKwotK2luc3RhbGwtZGF0YS1hbToKLSsKLStpbnN0YWxsLWR2aTogaW5zdGFsbC1kdmkt YW0KLSsKLStpbnN0YWxsLWV4ZWMtYW06Ci0rCi0raW5zdGFsbC1odG1sOiBpbnN0YWxsLWh0bWwt YW0KLSsKLStpbnN0YWxsLWluZm86IGluc3RhbGwtaW5mby1hbQotKwotK2luc3RhbGwtbWFuOgot KwotK2luc3RhbGwtcGRmOiBpbnN0YWxsLXBkZi1hbQotKwotK2luc3RhbGwtcHM6IGluc3RhbGwt cHMtYW0KLSsKLStpbnN0YWxsY2hlY2stYW06Ci0rCi0rbWFpbnRhaW5lci1jbGVhbjogbWFpbnRh aW5lci1jbGVhbi1hbQotKwktcm0gLWYgTWFrZWZpbGUKLSttYWludGFpbmVyLWNsZWFuLWFtOiBk aXN0Y2xlYW4tYW0gbWFpbnRhaW5lci1jbGVhbi1nZW5lcmljCi0rCi0rbW9zdGx5Y2xlYW46IG1v c3RseWNsZWFuLWFtCi0rCi0rbW9zdGx5Y2xlYW4tYW06IG1vc3RseWNsZWFuLWdlbmVyaWMgbW9z dGx5Y2xlYW4tbGlidG9vbAotKwotK3BkZjogcGRmLWFtCi0rCi0rcGRmLWFtOgotKwotK3BzOiBw cy1hbQotKwotK3BzLWFtOgotKwotK3VuaW5zdGFsbC1hbToKLSsKLSsuTUFLRTogaW5zdGFsbC1h bSBpbnN0YWxsLXN0cmlwCi0rCi0rLlBIT05ZOiBhbGwgYWxsLWFtIGNoZWNrIGNoZWNrLWFtIGNs ZWFuIGNsZWFuLWdlbmVyaWMgY2xlYW4tbGlidG9vbCBcCi0rCWRpc3RjbGVhbiBkaXN0Y2xlYW4t Z2VuZXJpYyBkaXN0Y2xlYW4tbGlidG9vbCBkaXN0ZGlyIGR2aSBcCi0rCWR2aS1hbSBodG1sIGh0 bWwtYW0gaW5mbyBpbmZvLWFtIGluc3RhbGwgaW5zdGFsbC1hbSBcCi0rCWluc3RhbGwtZGF0YSBp bnN0YWxsLWRhdGEtYW0gaW5zdGFsbC1kdmkgaW5zdGFsbC1kdmktYW0gXAotKwlpbnN0YWxsLWV4 ZWMgaW5zdGFsbC1leGVjLWFtIGluc3RhbGwtaHRtbCBpbnN0YWxsLWh0bWwtYW0gXAotKwlpbnN0 YWxsLWluZm8gaW5zdGFsbC1pbmZvLWFtIGluc3RhbGwtbWFuIGluc3RhbGwtcGRmIFwKLSsJaW5z dGFsbC1wZGYtYW0gaW5zdGFsbC1wcyBpbnN0YWxsLXBzLWFtIGluc3RhbGwtc3RyaXAgXAotKwlp bnN0YWxsY2hlY2sgaW5zdGFsbGNoZWNrLWFtIGluc3RhbGxkaXJzIG1haW50YWluZXItY2xlYW4g XAotKwltYWludGFpbmVyLWNsZWFuLWdlbmVyaWMgbW9zdGx5Y2xlYW4gbW9zdGx5Y2xlYW4tZ2Vu ZXJpYyBcCi0rCW1vc3RseWNsZWFuLWxpYnRvb2wgcGRmIHBkZi1hbSBwcyBwcy1hbSB1bmluc3Rh bGwgdW5pbnN0YWxsLWFtCi0rCi0rQFNFVF9NQUtFQAotKyMgVGVsbCB2ZXJzaW9ucyBbMy41OSwz LjYzKSBvZiBHTlUgbWFrZSB0byBub3QgZXhwb3J0IGFsbCB2YXJpYWJsZXMuCi0rIyBPdGhlcndp c2UgYSBzeXN0ZW0gbGltaXQgKGZvciBTeXNWIGF0IGxlYXN0KSBtYXkgYmUgZXhjZWVkZWQuCi0r Lk5PRVhQT1JUOgotZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL2J1aWxkL21zdmM4MC9saWIv TWFrZWZpbGUuYW0gc29jaS0zLjAuMF90cmVwMzAwL2J1aWxkL21zdmM4MC9saWIvTWFrZWZpbGUu YW0KLS0tLSBzb2NpLTMuMC4wXzQtcGFjay9idWlsZC9tc3ZjODAvbGliL01ha2VmaWxlLmFtCTE5 NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCi0rKysgc29jaS0zLjAuMF90cmVwMzAw L2J1aWxkL21zdmM4MC9saWIvTWFrZWZpbGUuYW0JMjAwOS0wNS0yMiAyMjo1NDoyMC4wMDAwMDAw MDAgKzAyMDAKLUBAIC0wLDAgKzEsMTEgQEAKLSsjIyBidWlsZC9tc3ZjODAvbGliIHN1Yi1kaXJl Y3RvcnkKLStpbmNsdWRlICQodG9wX3NyY2RpcikvTWFrZWZpbGUuY29tbW9uCi0rCi0rTUFJTlRB SU5FUkNMRUFORklMRVMgPSBNYWtlZmlsZS5pbgotKwotK0VYVFJBX0RJU1QgPSBidWlsZC5iYXQg ZW1wdHkudmNwcm9qIG1ha2V0ZXN0Lm1hayBvZGJjX3Rlc3RfcG9zdGdyZXNxbC52Y3Byb2ogXAot Kwlwb3N0Z3Jlc3FsX3Rlc3QudmNwcm9qIHNxbGl0ZTNfdGVzdC52Y3Byb2ogY2xlYW4uYmF0IFwK LSsJZmlyZWJpcmRfdGVzdC52Y3Byb2ogb2RiY190ZXN0X2FjY2Vzcy52Y3Byb2ogb2RiYy52Y3By b2ogXAotKwlwb3N0Z3Jlc3FsLnZjcHJvaiBzcWxpdGUzLnZjcHJvaiBjb3JlLnZjcHJvaiBmaXJl YmlyZC52Y3Byb2ogXAotKwlvZGJjX3Rlc3RfbXNzcWwudmNwcm9qIG9yYWNsZV90ZXN0LnZjcHJv aiBzb2NpX2xpYi5zbG4gXAotKwllbXB0eV90ZXN0LnZjcHJvaiBvZGJjX3Rlc3RfbXlzcWwudmNw cm9qIG9yYWNsZS52Y3Byb2ogc29jaV9saWIudnNwcm9wcwotZGlmZiAtTnVyIHNvY2ktMy4wLjBf NC1wYWNrL2J1aWxkL21zdmM4MC9saWIvTWFrZWZpbGUuaW4gc29jaS0zLjAuMF90cmVwMzAwL2J1 aWxkL21zdmM4MC9saWIvTWFrZWZpbGUuaW4KLS0tLSBzb2NpLTMuMC4wXzQtcGFjay9idWlsZC9t c3ZjODAvbGliL01ha2VmaWxlLmluCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAw Ci0rKysgc29jaS0zLjAuMF90cmVwMzAwL2J1aWxkL21zdmM4MC9saWIvTWFrZWZpbGUuaW4JMjAw OS0wNS0yMyAxMDowMjowMi4wMDAwMDAwMDAgKzAyMDAKLUBAIC0wLDAgKzEsMzk0IEBACi0rIyBN YWtlZmlsZS5pbiBnZW5lcmF0ZWQgYnkgYXV0b21ha2UgMS4xMC4yIGZyb20gTWFrZWZpbGUuYW0u Ci0rIyBAY29uZmlndXJlX2lucHV0QAotKwotKyMgQ29weXJpZ2h0IChDKSAxOTk0LCAxOTk1LCAx OTk2LCAxOTk3LCAxOTk4LCAxOTk5LCAyMDAwLCAyMDAxLCAyMDAyLAotKyMgMjAwMywgMjAwNCwg MjAwNSwgMjAwNiwgMjAwNywgMjAwOCAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCi0r IyBUaGlzIE1ha2VmaWxlLmluIGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3YXJlIEZv dW5kYXRpb24KLSsjIGdpdmVzIHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNvcHkgYW5kL29yIGRp c3RyaWJ1dGUgaXQsCi0rIyB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9ucywgYXMgbG9uZyBh cyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCi0rCi0rIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJp YnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSsjIGJ1dCBXSVRIT1VU IEFOWSBXQVJSQU5UWSwgdG8gdGhlIGV4dGVudCBwZXJtaXR0ZWQgYnkgbGF3OyB3aXRob3V0Ci0r IyBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNT IEZPUiBBCi0rIyBQQVJUSUNVTEFSIFBVUlBPU0UuCi0rCi0rQFNFVF9NQUtFQAotK1ZQQVRIID0g QHNyY2RpckAKLStwa2dkYXRhZGlyID0gJChkYXRhZGlyKS9AUEFDS0FHRUAKLStwa2dsaWJkaXIg PSAkKGxpYmRpcikvQFBBQ0tBR0VACi0rcGtnaW5jbHVkZWRpciA9ICQoaW5jbHVkZWRpcikvQFBB Q0tBR0VACi0rYW1fX2NkID0gQ0RQQVRIPSIkJHtaU0hfVkVSU0lPTisufSQoUEFUSF9TRVBBUkFU T1IpIiAmJiBjZAotK2luc3RhbGxfc2hfREFUQSA9ICQoaW5zdGFsbF9zaCkgLWMgLW0gNjQ0Ci0r aW5zdGFsbF9zaF9QUk9HUkFNID0gJChpbnN0YWxsX3NoKSAtYwotK2luc3RhbGxfc2hfU0NSSVBU ID0gJChpbnN0YWxsX3NoKSAtYwotK0lOU1RBTExfSEVBREVSID0gJChJTlNUQUxMX0RBVEEpCi0r dHJhbnNmb3JtID0gJChwcm9ncmFtX3RyYW5zZm9ybV9uYW1lKQotK05PUk1BTF9JTlNUQUxMID0g OgotK1BSRV9JTlNUQUxMID0gOgotK1BPU1RfSU5TVEFMTCA9IDoKLStOT1JNQUxfVU5JTlNUQUxM ID0gOgotK1BSRV9VTklOU1RBTEwgPSA6Ci0rUE9TVF9VTklOU1RBTEwgPSA6Ci0rYnVpbGRfdHJp cGxldCA9IEBidWlsZEAKLStob3N0X3RyaXBsZXQgPSBAaG9zdEAKLStESVNUX0NPTU1PTiA9ICQo c3JjZGlyKS9NYWtlZmlsZS5hbSAkKHNyY2RpcikvTWFrZWZpbGUuaW4gXAotKwkkKHRvcF9zcmNk aXIpL01ha2VmaWxlLmNvbW1vbgotK3N1YmRpciA9IGJ1aWxkL21zdmM4MC9saWIKLStBQ0xPQ0FM X000ID0gJCh0b3Bfc3JjZGlyKS9hY2xvY2FsLm00Ci0rYW1fX2FjbG9jYWxfbTRfZGVwcyA9ICQo dG9wX3NyY2RpcikvY29uZmlnL2F4X2Jvb3N0Lm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcv YXhfbXlzcWwubTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9vcmFjbGVfb2NpLm00IFwK LSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfcG9zdGdyZXNxbC5tNCBcCi0rCSQodG9wX3NyY2Rp cikvY29uZmlnL2NwcHVuaXQubTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9saWJ0b29sLm00 IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvbHRvcHRpb25zLm00IFwKLSsJJCh0b3Bfc3JjZGly KS9jb25maWcvbHRzdWdhci5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmlnL2x0dmVyc2lvbi5t NCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmlnL2x0fm9ic29sZXRlLm00ICQodG9wX3NyY2Rpcikv Y29uZmlndXJlLmFjCi0rYW1fX2NvbmZpZ3VyZV9kZXBzID0gJChhbV9fYWNsb2NhbF9tNF9kZXBz KSAkKENPTkZJR1VSRV9ERVBFTkRFTkNJRVMpIFwKLSsJJChBQ0xPQ0FMX000KQotK21raW5zdGFs bGRpcnMgPSAkKGluc3RhbGxfc2gpIC1kCi0rQ09ORklHX0hFQURFUiA9ICQodG9wX2J1aWxkZGly KS9zb2NpL2NvbmZpZy5oCi0rQ09ORklHX0NMRUFOX0ZJTEVTID0KLStTT1VSQ0VTID0KLStESVNU X1NPVVJDRVMgPQotK0RJU1RGSUxFUyA9ICQoRElTVF9DT01NT04pICQoRElTVF9TT1VSQ0VTKSAk KFRFWElORk9TKSAkKEVYVFJBX0RJU1QpCi0rQUNMT0NBTCA9IEBBQ0xPQ0FMQAotK0FNVEFSID0g QEFNVEFSQAotK0FSID0gQEFSQAotK0FVVE9DT05GID0gQEFVVE9DT05GQAotK0FVVE9IRUFERVIg PSBAQVVUT0hFQURFUkAKLStBVVRPTUFLRSA9IEBBVVRPTUFLRUAKLStBV0sgPSBAQVdLQAotK0JP T1NUX0NGTEFHUyA9IEBCT09TVF9DRkxBR1NACi0rQk9PU1RfREFURV9USU1FX0xJQiA9IEBCT09T VF9EQVRFX1RJTUVfTElCQAotK0JPT1NUX0ZJTEVTWVNURU1fTElCID0gQEJPT1NUX0ZJTEVTWVNU RU1fTElCQAotK0JPT1NUX0lPU1RSRUFNU19MSUIgPSBAQk9PU1RfSU9TVFJFQU1TX0xJQkAKLStC T09TVF9MSUJTID0gQEJPT1NUX0xJQlNACi0rQk9PU1RfUFJPR1JBTV9PUFRJT05TX0xJQiA9IEBC T09TVF9QUk9HUkFNX09QVElPTlNfTElCQAotK0JPT1NUX1JFR0VYX0xJQiA9IEBCT09TVF9SRUdF WF9MSUJACi0rQk9PU1RfU0VSSUFMSVpBVElPTl9MSUIgPSBAQk9PU1RfU0VSSUFMSVpBVElPTl9M SUJACi0rQk9PU1RfU0lHTkFMU19MSUIgPSBAQk9PU1RfU0lHTkFMU19MSUJACi0rQk9PU1RfVEhS RUFEX0xJQiA9IEBCT09TVF9USFJFQURfTElCQAotK0JPT1NUX1VOSVRfVEVTVF9GUkFNRVdPUktf TElCID0gQEJPT1NUX1VOSVRfVEVTVF9GUkFNRVdPUktfTElCQAotK0JPT1NUX1ZFUlNJT04gPSBA Qk9PU1RfVkVSU0lPTkAKLStCT09TVF9XU0VSSUFMSVpBVElPTl9MSUIgPSBAQk9PU1RfV1NFUklB TElaQVRJT05fTElCQAotK0NDID0gQENDQAotK0NDREVQTU9ERSA9IEBDQ0RFUE1PREVACi0rQ0ZM QUdTID0gQENGTEFHU0AKLStDUFAgPSBAQ1BQQAotK0NQUEZMQUdTID0gQENQUEZMQUdTQAotK0NQ UFVOSVRfQ0ZMQUdTID0gQENQUFVOSVRfQ0ZMQUdTQAotK0NQUFVOSVRfQ09ORklHID0gQENQUFVO SVRfQ09ORklHQAotK0NQUFVOSVRfTElCUyA9IEBDUFBVTklUX0xJQlNACi0rQ1BQVU5JVF9WRVJT SU9OID0gQENQUFVOSVRfVkVSU0lPTkAKLStDWFggPSBAQ1hYQAotK0NYWENQUCA9IEBDWFhDUFBA Ci0rQ1hYREVQTU9ERSA9IEBDWFhERVBNT0RFQAotK0NYWEZMQUdTID0gQENYWEZMQUdTQAotK0NZ R1BBVEhfVyA9IEBDWUdQQVRIX1dACi0rREVGUyA9IEBERUZTQAotK0RFUERJUiA9IEBERVBESVJA Ci0rRFNZTVVUSUwgPSBARFNZTVVUSUxACi0rRFVNUEJJTiA9IEBEVU1QQklOQAotK0VDSE9fQyA9 IEBFQ0hPX0NACi0rRUNIT19OID0gQEVDSE9fTkAKLStFQ0hPX1QgPSBARUNIT19UQAotK0VHUkVQ ID0gQEVHUkVQQAotK0VYRUVYVCA9IEBFWEVFWFRACi0rRkdSRVAgPSBARkdSRVBACi0rR0VORVJJ Q19MSUJSQVJZX1ZFUlNJT04gPSBAR0VORVJJQ19MSUJSQVJZX1ZFUlNJT05ACi0rR1JFUCA9IEBH UkVQQAotK0lOU1RBTEwgPSBASU5TVEFMTEAKLStJTlNUQUxMX0RBVEEgPSBASU5TVEFMTF9EQVRB QAotK0lOU1RBTExfUFJPR1JBTSA9IEBJTlNUQUxMX1BST0dSQU1ACi0rSU5TVEFMTF9TQ1JJUFQg PSBASU5TVEFMTF9TQ1JJUFRACi0rSU5TVEFMTF9TVFJJUF9QUk9HUkFNID0gQElOU1RBTExfU1RS SVBfUFJPR1JBTUAKLStMRCA9IEBMREAKLStMREZMQUdTID0gQExERkxBR1NACi0rTElCT0JKUyA9 IEBMSUJPQkpTQAotK0xJQlMgPSBATElCU0AKLStMSUJUT09MID0gQExJQlRPT0xACi0rTElQTyA9 IEBMSVBPQAotK0xOX1MgPSBATE5fU0AKLStMVExJQk9CSlMgPSBATFRMSUJPQkpTQAotK01BS0VJ TkZPID0gQE1BS0VJTkZPQAotK01LRElSX1AgPSBATUtESVJfUEAKLStNWVNRTF9DRkxBR1MgPSBA TVlTUUxfQ0ZMQUdTQAotK01ZU1FMX0NPTkZJRyA9IEBNWVNRTF9DT05GSUdACi0rTVlTUUxfRElS UyA9IEBNWVNRTF9ESVJTQAotK01ZU1FMX0xERkxBR1MgPSBATVlTUUxfTERGTEFHU0AKLStNWVNR TF9WRVJTSU9OID0gQE1ZU1FMX1ZFUlNJT05ACi0rTk0gPSBATk1ACi0rTk1FRElUID0gQE5NRURJ VEAKLStPQkpEVU1QID0gQE9CSkRVTVBACi0rT0JKRVhUID0gQE9CSkVYVEAKLStPUkFDTEVfRElS UyA9IEBPUkFDTEVfRElSU0AKLStPUkFDTEVfT0NJX0NGTEFHUyA9IEBPUkFDTEVfT0NJX0NGTEFH U0AKLStPUkFDTEVfT0NJX0xERkxBR1MgPSBAT1JBQ0xFX09DSV9MREZMQUdTQAotK09SQUNMRV9P Q0lfVkVSU0lPTiA9IEBPUkFDTEVfT0NJX1ZFUlNJT05ACi0rT1RPT0wgPSBAT1RPT0xACi0rT1RP T0w2NCA9IEBPVE9PTDY0QAotK1BBQ0tBR0UgPSBAUEFDS0FHRUAKLStQQUNLQUdFX0JVR1JFUE9S VCA9IEBQQUNLQUdFX0JVR1JFUE9SVEAKLStQQUNLQUdFX05BTUUgPSBAUEFDS0FHRV9OQU1FQAot K1BBQ0tBR0VfU1RSSU5HID0gQFBBQ0tBR0VfU1RSSU5HQAotK1BBQ0tBR0VfVEFSTkFNRSA9IEBQ QUNLQUdFX1RBUk5BTUVACi0rUEFDS0FHRV9WRVJTSU9OID0gQFBBQ0tBR0VfVkVSU0lPTkAKLStQ QVRIX1NFUEFSQVRPUiA9IEBQQVRIX1NFUEFSQVRPUkAKLStQRVJMID0gQFBFUkxACi0rUEdfQ09O RklHID0gQFBHX0NPTkZJR0AKLStQT1NUR1JFU1FMX0NGTEFHUyA9IEBQT1NUR1JFU1FMX0NGTEFH U0AKLStQT1NUR1JFU1FMX0RJUlMgPSBAUE9TVEdSRVNRTF9ESVJTQAotK1BPU1RHUkVTUUxfTERG TEFHUyA9IEBQT1NUR1JFU1FMX0xERkxBR1NACi0rUE9TVEdSRVNRTF9WRVJTSU9OID0gQFBPU1RH UkVTUUxfVkVSU0lPTkAKLStSQU5MSUIgPSBAUkFOTElCQAotK1JQTV9SRUxFQVNFID0gQFJQTV9S RUxFQVNFQAotK1NFRCA9IEBTRURACi0rU0VUX01BS0UgPSBAU0VUX01BS0VACi0rU0hFTEwgPSBA U0hFTExACi0rU09DSV9IRUFERVJTX0JVUklFRCA9IEBTT0NJX0hFQURFUlNfQlVSSUVEQAotK1NP Q0lfTVlTUUxfSEVBREVSU19CVVJJRUQgPSBAU09DSV9NWVNRTF9IRUFERVJTX0JVUklFREAKLStT T0NJX1BPU1RHUkVTUUxfSEVBREVSU19CVVJJRUQgPSBAU09DSV9QT1NUR1JFU1FMX0hFQURFUlNf QlVSSUVEQAotK1NUUklQID0gQFNUUklQQAotK1VQTE9BRF9DT01NQU5EID0gQFVQTE9BRF9DT01N QU5EQAotK1ZFUlNJT04gPSBAVkVSU0lPTkAKLSthYnNfYnVpbGRkaXIgPSBAYWJzX2J1aWxkZGly QAotK2Fic19zcmNkaXIgPSBAYWJzX3NyY2RpckAKLSthYnNfdG9wX2J1aWxkZGlyID0gQGFic190 b3BfYnVpbGRkaXJACi0rYWJzX3RvcF9zcmNkaXIgPSBAYWJzX3RvcF9zcmNkaXJACi0rYWNfY3Rf Q0MgPSBAYWNfY3RfQ0NACi0rYWNfY3RfQ1hYID0gQGFjX2N0X0NYWEAKLSthY19jdF9EVU1QQklO ID0gQGFjX2N0X0RVTVBCSU5ACi0rYW1fX2luY2x1ZGUgPSBAYW1fX2luY2x1ZGVACi0rYW1fX2xl YWRpbmdfZG90ID0gQGFtX19sZWFkaW5nX2RvdEAKLSthbV9fcXVvdGUgPSBAYW1fX3F1b3RlQAot K2FtX190YXIgPSBAYW1fX3RhckAKLSthbV9fdW50YXIgPSBAYW1fX3VudGFyQAotK2JpbmRpciA9 IEBiaW5kaXJACi0rYnVpbGQgPSBAYnVpbGRACi0rYnVpbGRfYWxpYXMgPSBAYnVpbGRfYWxpYXNA Ci0rYnVpbGRfY3B1ID0gQGJ1aWxkX2NwdUAKLStidWlsZF9vcyA9IEBidWlsZF9vc0AKLStidWls ZF92ZW5kb3IgPSBAYnVpbGRfdmVuZG9yQAotK2J1aWxkZGlyID0gQGJ1aWxkZGlyQAotK2RhdGFk aXIgPSBAZGF0YWRpckAKLStkYXRhcm9vdGRpciA9IEBkYXRhcm9vdGRpckAKLStkaWZmX29rID0g QGRpZmZfb2tACi0rZG9jZGlyID0gQGRvY2RpckAKLStkb3h5Z2VuX29rID0gQGRveHlnZW5fb2tA Ci0rZHZpZGlyID0gQGR2aWRpckAKLStkdmlwc19vayA9IEBkdmlwc19va0AKLStleGVjX3ByZWZp eCA9IEBleGVjX3ByZWZpeEAKLStnc19vayA9IEBnc19va0AKLStob3N0ID0gQGhvc3RACi0raG9z dF9hbGlhcyA9IEBob3N0X2FsaWFzQAotK2hvc3RfY3B1ID0gQGhvc3RfY3B1QAotK2hvc3Rfb3Mg PSBAaG9zdF9vc0AKLStob3N0X3ZlbmRvciA9IEBob3N0X3ZlbmRvckAKLStodG1sZGlyID0gQGh0 bWxkaXJACi0raW5jbHVkZWRpciA9IEBpbmNsdWRlZGlyQAotK2luZm9kaXIgPSBAaW5mb2RpckAK LStpbnN0YWxsX3NoID0gQGluc3RhbGxfc2hACi0rbGF0ZXhfb2sgPSBAbGF0ZXhfb2tACi0rbGli ZGlyID0gQGxpYmRpckAKLStsaWJleGVjZGlyID0gQGxpYmV4ZWNkaXJACi0rbG9jYWxlZGlyID0g QGxvY2FsZWRpckAKLStsb2NhbHN0YXRlZGlyID0gQGxvY2Fsc3RhdGVkaXJACi0rbHRfRUNITyA9 IEBsdF9FQ0hPQAotK21hbmRpciA9IEBtYW5kaXJACi0rbWtkaXJfcCA9IEBta2Rpcl9wQAotK29s ZGluY2x1ZGVkaXIgPSBAb2xkaW5jbHVkZWRpckAKLStwZGZkaXIgPSBAcGRmZGlyQAotK3ByZWZp eCA9IEBwcmVmaXhACi0rcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZSA9IEBwcm9ncmFtX3RyYW5zZm9y bV9uYW1lQAotK3BzZGlyID0gQHBzZGlyQAotK3NiaW5kaXIgPSBAc2JpbmRpckAKLStzZWRfb2sg PSBAc2VkX29rQAotK3NoYXJlZHN0YXRlZGlyID0gQHNoYXJlZHN0YXRlZGlyQAotK3NyY2RpciA9 IEBzcmNkaXJACi0rc3lzY29uZmRpciA9IEBzeXNjb25mZGlyQAotK3RhcmdldF9hbGlhcyA9IEB0 YXJnZXRfYWxpYXNACi0rdG9wX2J1aWxkX3ByZWZpeCA9IEB0b3BfYnVpbGRfcHJlZml4QAotK3Rv cF9idWlsZGRpciA9IEB0b3BfYnVpbGRkaXJACi0rdG9wX3NyY2RpciA9IEB0b3Bfc3JjZGlyQAot K0FNX0NQUEZMQUdTID0gLUkkKHRvcF9idWlsZGRpcikgLUkkKHRvcF9zcmNkaXIpCi0rTUFJTlRB SU5FUkNMRUFORklMRVMgPSBNYWtlZmlsZS5pbgotK0VYVFJBX0RJU1QgPSBidWlsZC5iYXQgZW1w dHkudmNwcm9qIG1ha2V0ZXN0Lm1hayBvZGJjX3Rlc3RfcG9zdGdyZXNxbC52Y3Byb2ogXAotKwlw b3N0Z3Jlc3FsX3Rlc3QudmNwcm9qIHNxbGl0ZTNfdGVzdC52Y3Byb2ogY2xlYW4uYmF0IFwKLSsJ ZmlyZWJpcmRfdGVzdC52Y3Byb2ogb2RiY190ZXN0X2FjY2Vzcy52Y3Byb2ogb2RiYy52Y3Byb2og XAotKwlwb3N0Z3Jlc3FsLnZjcHJvaiBzcWxpdGUzLnZjcHJvaiBjb3JlLnZjcHJvaiBmaXJlYmly ZC52Y3Byb2ogXAotKwlvZGJjX3Rlc3RfbXNzcWwudmNwcm9qIG9yYWNsZV90ZXN0LnZjcHJvaiBz b2NpX2xpYi5zbG4gXAotKwllbXB0eV90ZXN0LnZjcHJvaiBvZGJjX3Rlc3RfbXlzcWwudmNwcm9q IG9yYWNsZS52Y3Byb2ogc29jaV9saWIudnNwcm9wcwotKwotK2FsbDogYWxsLWFtCi0rCi0rLlNV RkZJWEVTOgotKyQoc3JjZGlyKS9NYWtlZmlsZS5pbjogICQoc3JjZGlyKS9NYWtlZmlsZS5hbSAk KHRvcF9zcmNkaXIpL01ha2VmaWxlLmNvbW1vbiAkKGFtX19jb25maWd1cmVfZGVwcykKLSsJQGZv ciBkZXAgaW4gJD87IGRvIFwKLSsJICBjYXNlICckKGFtX19jb25maWd1cmVfZGVwcyknIGluIFwK LSsJICAgICokJGRlcCopIFwKLSsJICAgICAgKCBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtF KSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2ggKSBcCi0rCSAgICAgICAgJiYgeyBpZiB0ZXN0 IC1mICRAOyB0aGVuIGV4aXQgMDsgZWxzZSBicmVhazsgZmk7IH07IFwKLSsJICAgICAgZXhpdCAx OzsgXAotKwkgIGVzYWM7IFwKLSsJZG9uZTsgXAotKwllY2hvICcgY2QgJCh0b3Bfc3JjZGlyKSAm JiAkKEFVVE9NQUtFKSAtLWdudSAgYnVpbGQvbXN2YzgwL2xpYi9NYWtlZmlsZSc7IFwKLSsJY2Qg JCh0b3Bfc3JjZGlyKSAmJiBcCi0rCSAgJChBVVRPTUFLRSkgLS1nbnUgIGJ1aWxkL21zdmM4MC9s aWIvTWFrZWZpbGUKLSsuUFJFQ0lPVVM6IE1ha2VmaWxlCi0rTWFrZWZpbGU6ICQoc3JjZGlyKS9N YWtlZmlsZS5pbiAkKHRvcF9idWlsZGRpcikvY29uZmlnLnN0YXR1cwotKwlAY2FzZSAnJD8nIGlu IFwKLSsJICAqY29uZmlnLnN0YXR1cyopIFwKLSsJICAgIGNkICQodG9wX2J1aWxkZGlyKSAmJiAk KE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaDs7IFwKLSsJICAqKSBcCi0rCSAgICBl Y2hvICcgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoU0hFTEwpIC4vY29uZmlnLnN0YXR1cyAkKHN1 YmRpcikvJEAgJChhbV9fZGVwZmlsZXNfbWF5YmUpJzsgXAotKwkgICAgY2QgJCh0b3BfYnVpbGRk aXIpICYmICQoU0hFTEwpIC4vY29uZmlnLnN0YXR1cyAkKHN1YmRpcikvJEAgJChhbV9fZGVwZmls ZXNfbWF5YmUpOzsgXAotKwllc2FjOwotKwotKyQodG9wX2J1aWxkZGlyKS9jb25maWcuc3RhdHVz OiAkKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZSAkKENPTkZJR19TVEFUVVNfREVQRU5ERU5DSUVTKQot KwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJl c2gKLSsKLSskKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZTogICQoYW1fX2NvbmZpZ3VyZV9kZXBzKQot KwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJl c2gKLSskKEFDTE9DQUxfTTQpOiAgJChhbV9fYWNsb2NhbF9tNF9kZXBzKQotKwljZCAkKHRvcF9i dWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gKLSsKLSttb3N0 bHljbGVhbi1saWJ0b29sOgotKwktcm0gLWYgKi5sbwotKwotK2NsZWFuLWxpYnRvb2w6Ci0rCS1y bSAtcmYgLmxpYnMgX2xpYnMKLSt0YWdzOiBUQUdTCi0rVEFHUzoKLSsKLStjdGFnczogQ1RBR1MK LStDVEFHUzoKLSsKLSsKLStkaXN0ZGlyOiAkKERJU1RGSUxFUykKLSsJQHNyY2RpcnN0cmlwPWBl Y2hvICIkKHNyY2RpcikiIHwgc2VkICdzL1tdLlteJCRcXCpdL1xcXFwmL2cnYDsgXAotKwl0b3Bz cmNkaXJzdHJpcD1gZWNobyAiJCh0b3Bfc3JjZGlyKSIgfCBzZWQgJ3MvW10uW14kJFxcKl0vXFxc XCYvZydgOyBcCi0rCWxpc3Q9JyQoRElTVEZJTEVTKSc7IFwKLSsJICBkaXN0X2ZpbGVzPWBmb3Ig ZmlsZSBpbiAkJGxpc3Q7IGRvIGVjaG8gJCRmaWxlOyBkb25lIHwgXAotKwkgIHNlZCAtZSAic3xe JCRzcmNkaXJzdHJpcC98fDt0IiBcCi0rCSAgICAgIC1lICJzfF4kJHRvcHNyY2RpcnN0cmlwL3wk KHRvcF9idWlsZGRpcikvfDt0ImA7IFwKLSsJY2FzZSAkJGRpc3RfZmlsZXMgaW4gXAotKwkgICov KikgJChNS0RJUl9QKSBgZWNobyAiJCRkaXN0X2ZpbGVzIiB8IFwKLSsJCQkgICBzZWQgJy9cLy8h ZDtzfF58JChkaXN0ZGlyKS98O3MsL1teL10qJCQsLCcgfCBcCi0rCQkJICAgc29ydCAtdWAgOzsg XAotKwllc2FjOyBcCi0rCWZvciBmaWxlIGluICQkZGlzdF9maWxlczsgZG8gXAotKwkgIGlmIHRl c3QgLWYgJCRmaWxlIHx8IHRlc3QgLWQgJCRmaWxlOyB0aGVuIGQ9LjsgZWxzZSBkPSQoc3JjZGly KTsgZmk7IFwKLSsJICBpZiB0ZXN0IC1kICQkZC8kJGZpbGU7IHRoZW4gXAotKwkgICAgZGlyPWBl Y2hvICIvJCRmaWxlIiB8IHNlZCAtZSAncywvW14vXSokJCwsJ2A7IFwKLSsJICAgIGlmIHRlc3Qg LWQgJChzcmNkaXIpLyQkZmlsZSAmJiB0ZXN0ICQkZCAhPSAkKHNyY2Rpcik7IHRoZW4gXAotKwkg ICAgICBjcCAtcFIgJChzcmNkaXIpLyQkZmlsZSAkKGRpc3RkaXIpJCRkaXIgfHwgZXhpdCAxOyBc Ci0rCSAgICBmaTsgXAotKwkgICAgY3AgLXBSICQkZC8kJGZpbGUgJChkaXN0ZGlyKSQkZGlyIHx8 IGV4aXQgMTsgXAotKwkgIGVsc2UgXAotKwkgICAgdGVzdCAtZiAkKGRpc3RkaXIpLyQkZmlsZSBc Ci0rCSAgICB8fCBjcCAtcCAkJGQvJCRmaWxlICQoZGlzdGRpcikvJCRmaWxlIFwKLSsJICAgIHx8 IGV4aXQgMTsgXAotKwkgIGZpOyBcCi0rCWRvbmUKLStjaGVjay1hbTogYWxsLWFtCi0rY2hlY2s6 IGNoZWNrLWFtCi0rYWxsLWFtOiBNYWtlZmlsZQotK2luc3RhbGxkaXJzOgotK2luc3RhbGw6IGlu c3RhbGwtYW0KLStpbnN0YWxsLWV4ZWM6IGluc3RhbGwtZXhlYy1hbQotK2luc3RhbGwtZGF0YTog aW5zdGFsbC1kYXRhLWFtCi0rdW5pbnN0YWxsOiB1bmluc3RhbGwtYW0KLSsKLStpbnN0YWxsLWFt OiBhbGwtYW0KLSsJQCQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGluc3RhbGwtZXhlYy1hbSBpbnN0 YWxsLWRhdGEtYW0KLSsKLStpbnN0YWxsY2hlY2s6IGluc3RhbGxjaGVjay1hbQotK2luc3RhbGwt c3RyaXA6Ci0rCSQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIElOU1RBTExfUFJPR1JBTT0iJChJTlNU QUxMX1NUUklQX1BST0dSQU0pIiBcCi0rCSAgaW5zdGFsbF9zaF9QUk9HUkFNPSIkKElOU1RBTExf U1RSSVBfUFJPR1JBTSkiIElOU1RBTExfU1RSSVBfRkxBRz0tcyBcCi0rCSAgYHRlc3QgLXogJyQo U1RSSVApJyB8fCBcCi0rCSAgICBlY2hvICJJTlNUQUxMX1BST0dSQU1fRU5WPVNUUklQUFJPRz0n JChTVFJJUCknImAgaW5zdGFsbAotK21vc3RseWNsZWFuLWdlbmVyaWM6Ci0rCi0rY2xlYW4tZ2Vu ZXJpYzoKLSsKLStkaXN0Y2xlYW4tZ2VuZXJpYzoKLSsJLXRlc3QgLXogIiQoQ09ORklHX0NMRUFO X0ZJTEVTKSIgfHwgcm0gLWYgJChDT05GSUdfQ0xFQU5fRklMRVMpCi0rCi0rbWFpbnRhaW5lci1j bGVhbi1nZW5lcmljOgotKwlAZWNobyAiVGhpcyBjb21tYW5kIGlzIGludGVuZGVkIGZvciBtYWlu dGFpbmVycyB0byB1c2UiCi0rCUBlY2hvICJpdCBkZWxldGVzIGZpbGVzIHRoYXQgbWF5IHJlcXVp cmUgc3BlY2lhbCB0b29scyB0byByZWJ1aWxkLiIKLSsJLXRlc3QgLXogIiQoTUFJTlRBSU5FUkNM RUFORklMRVMpIiB8fCBybSAtZiAkKE1BSU5UQUlORVJDTEVBTkZJTEVTKQotK2NsZWFuOiBjbGVh bi1hbQotKwotK2NsZWFuLWFtOiBjbGVhbi1nZW5lcmljIGNsZWFuLWxpYnRvb2wgbW9zdGx5Y2xl YW4tYW0KLSsKLStkaXN0Y2xlYW46IGRpc3RjbGVhbi1hbQotKwktcm0gLWYgTWFrZWZpbGUKLStk aXN0Y2xlYW4tYW06IGNsZWFuLWFtIGRpc3RjbGVhbi1nZW5lcmljCi0rCi0rZHZpOiBkdmktYW0K LSsKLStkdmktYW06Ci0rCi0raHRtbDogaHRtbC1hbQotKwotK2luZm86IGluZm8tYW0KLSsKLStp bmZvLWFtOgotKwotK2luc3RhbGwtZGF0YS1hbToKLSsKLStpbnN0YWxsLWR2aTogaW5zdGFsbC1k dmktYW0KLSsKLStpbnN0YWxsLWV4ZWMtYW06Ci0rCi0raW5zdGFsbC1odG1sOiBpbnN0YWxsLWh0 bWwtYW0KLSsKLStpbnN0YWxsLWluZm86IGluc3RhbGwtaW5mby1hbQotKwotK2luc3RhbGwtbWFu OgotKwotK2luc3RhbGwtcGRmOiBpbnN0YWxsLXBkZi1hbQotKwotK2luc3RhbGwtcHM6IGluc3Rh bGwtcHMtYW0KLSsKLStpbnN0YWxsY2hlY2stYW06Ci0rCi0rbWFpbnRhaW5lci1jbGVhbjogbWFp bnRhaW5lci1jbGVhbi1hbQotKwktcm0gLWYgTWFrZWZpbGUKLSttYWludGFpbmVyLWNsZWFuLWFt OiBkaXN0Y2xlYW4tYW0gbWFpbnRhaW5lci1jbGVhbi1nZW5lcmljCi0rCi0rbW9zdGx5Y2xlYW46 IG1vc3RseWNsZWFuLWFtCi0rCi0rbW9zdGx5Y2xlYW4tYW06IG1vc3RseWNsZWFuLWdlbmVyaWMg bW9zdGx5Y2xlYW4tbGlidG9vbAotKwotK3BkZjogcGRmLWFtCi0rCi0rcGRmLWFtOgotKwotK3Bz OiBwcy1hbQotKwotK3BzLWFtOgotKwotK3VuaW5zdGFsbC1hbToKLSsKLSsuTUFLRTogaW5zdGFs bC1hbSBpbnN0YWxsLXN0cmlwCi0rCi0rLlBIT05ZOiBhbGwgYWxsLWFtIGNoZWNrIGNoZWNrLWFt IGNsZWFuIGNsZWFuLWdlbmVyaWMgY2xlYW4tbGlidG9vbCBcCi0rCWRpc3RjbGVhbiBkaXN0Y2xl YW4tZ2VuZXJpYyBkaXN0Y2xlYW4tbGlidG9vbCBkaXN0ZGlyIGR2aSBcCi0rCWR2aS1hbSBodG1s IGh0bWwtYW0gaW5mbyBpbmZvLWFtIGluc3RhbGwgaW5zdGFsbC1hbSBcCi0rCWluc3RhbGwtZGF0 YSBpbnN0YWxsLWRhdGEtYW0gaW5zdGFsbC1kdmkgaW5zdGFsbC1kdmktYW0gXAotKwlpbnN0YWxs LWV4ZWMgaW5zdGFsbC1leGVjLWFtIGluc3RhbGwtaHRtbCBpbnN0YWxsLWh0bWwtYW0gXAotKwlp bnN0YWxsLWluZm8gaW5zdGFsbC1pbmZvLWFtIGluc3RhbGwtbWFuIGluc3RhbGwtcGRmIFwKLSsJ aW5zdGFsbC1wZGYtYW0gaW5zdGFsbC1wcyBpbnN0YWxsLXBzLWFtIGluc3RhbGwtc3RyaXAgXAot KwlpbnN0YWxsY2hlY2sgaW5zdGFsbGNoZWNrLWFtIGluc3RhbGxkaXJzIG1haW50YWluZXItY2xl YW4gXAotKwltYWludGFpbmVyLWNsZWFuLWdlbmVyaWMgbW9zdGx5Y2xlYW4gbW9zdGx5Y2xlYW4t Z2VuZXJpYyBcCi0rCW1vc3RseWNsZWFuLWxpYnRvb2wgcGRmIHBkZi1hbSBwcyBwcy1hbSB1bmlu c3RhbGwgdW5pbnN0YWxsLWFtCi0rCi0rQFNFVF9NQUtFQAotKyMgVGVsbCB2ZXJzaW9ucyBbMy41 OSwzLjYzKSBvZiBHTlUgbWFrZSB0byBub3QgZXhwb3J0IGFsbCB2YXJpYWJsZXMuCi0rIyBPdGhl cndpc2UgYSBzeXN0ZW0gbGltaXQgKGZvciBTeXNWIGF0IGxlYXN0KSBtYXkgYmUgZXhjZWVkZWQu Ci0rLk5PRVhQT1JUOgotZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL2J1aWxkL21zdmM4MC9N YWtlZmlsZS5hbSBzb2NpLTMuMC4wX3RyZXAzMDAvYnVpbGQvbXN2YzgwL01ha2VmaWxlLmFtCi0t LS0gc29jaS0zLjAuMF80LXBhY2svYnVpbGQvbXN2YzgwL01ha2VmaWxlLmFtCTE5NzAtMDEtMDEg MDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCi0rKysgc29jaS0zLjAuMF90cmVwMzAwL2J1aWxkL21z dmM4MC9NYWtlZmlsZS5hbQkyMDA5LTA1LTIyIDIyOjU0OjIwLjAwMDAwMDAwMCArMDIwMAotQEAg LTAsMCArMSw4IEBACi0rIyMgYnVpbGQvbXN2YzgwIHN1Yi1kaXJlY3RvcnkKLStpbmNsdWRlICQo dG9wX3NyY2RpcikvTWFrZWZpbGUuY29tbW9uCi0rCi0rTUFJTlRBSU5FUkNMRUFORklMRVMgPSBN YWtlZmlsZS5pbgotKwotK0VYVFJBX0RJU1QgPSBSRUFETUUudHh0IHNvY2kudnNwcm9wcwotKwot K1NVQkRJUlMgPSBkbGwgbGliCi1kaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svYnVpbGQvbXN2 YzgwL01ha2VmaWxlLmluIHNvY2ktMy4wLjBfdHJlcDMwMC9idWlsZC9tc3ZjODAvTWFrZWZpbGUu aW4KLS0tLSBzb2NpLTMuMC4wXzQtcGFjay9idWlsZC9tc3ZjODAvTWFrZWZpbGUuaW4JMTk3MC0w MS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBzb2NpLTMuMC4wX3RyZXAzMDAvYnVp bGQvbXN2YzgwL01ha2VmaWxlLmluCTIwMDktMDUtMjMgMTA6MDI6MDIuMDAwMDAwMDAwICswMjAw Ci1AQCAtMCwwICsxLDU0NyBAQAotKyMgTWFrZWZpbGUuaW4gZ2VuZXJhdGVkIGJ5IGF1dG9tYWtl IDEuMTAuMiBmcm9tIE1ha2VmaWxlLmFtLgotKyMgQGNvbmZpZ3VyZV9pbnB1dEAKLSsKLSsjIENv cHlyaWdodCAoQykgMTk5NCwgMTk5NSwgMTk5NiwgMTk5NywgMTk5OCwgMTk5OSwgMjAwMCwgMjAw MSwgMjAwMiwKLSsjIDIwMDMsIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDggIEZyZWUgU29m dHdhcmUgRm91bmRhdGlvbiwgSW5jLgotKyMgVGhpcyBNYWtlZmlsZS5pbiBpcyBmcmVlIHNvZnR3 YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCi0rIyBnaXZlcyB1bmxpbWl0ZWQgcGVy bWlzc2lvbiB0byBjb3B5IGFuZC9vciBkaXN0cmlidXRlIGl0LAotKyMgd2l0aCBvciB3aXRob3V0 IG1vZGlmaWNhdGlvbnMsIGFzIGxvbmcgYXMgdGhpcyBub3RpY2UgaXMgcHJlc2VydmVkLgotKwot KyMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBi ZSB1c2VmdWwsCi0rIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFksIHRvIHRoZSBleHRlbnQgcGVy bWl0dGVkIGJ5IGxhdzsgd2l0aG91dAotKyMgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZiBN RVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQQotKyMgUEFSVElDVUxBUiBQVVJQT1NFLgot KwotK0BTRVRfTUFLRUAKLStWUEFUSCA9IEBzcmNkaXJACi0rcGtnZGF0YWRpciA9ICQoZGF0YWRp cikvQFBBQ0tBR0VACi0rcGtnbGliZGlyID0gJChsaWJkaXIpL0BQQUNLQUdFQAotK3BrZ2luY2x1 ZGVkaXIgPSAkKGluY2x1ZGVkaXIpL0BQQUNLQUdFQAotK2FtX19jZCA9IENEUEFUSD0iJCR7WlNI X1ZFUlNJT04rLn0kKFBBVEhfU0VQQVJBVE9SKSIgJiYgY2QKLStpbnN0YWxsX3NoX0RBVEEgPSAk KGluc3RhbGxfc2gpIC1jIC1tIDY0NAotK2luc3RhbGxfc2hfUFJPR1JBTSA9ICQoaW5zdGFsbF9z aCkgLWMKLStpbnN0YWxsX3NoX1NDUklQVCA9ICQoaW5zdGFsbF9zaCkgLWMKLStJTlNUQUxMX0hF QURFUiA9ICQoSU5TVEFMTF9EQVRBKQotK3RyYW5zZm9ybSA9ICQocHJvZ3JhbV90cmFuc2Zvcm1f bmFtZSkKLStOT1JNQUxfSU5TVEFMTCA9IDoKLStQUkVfSU5TVEFMTCA9IDoKLStQT1NUX0lOU1RB TEwgPSA6Ci0rTk9STUFMX1VOSU5TVEFMTCA9IDoKLStQUkVfVU5JTlNUQUxMID0gOgotK1BPU1Rf VU5JTlNUQUxMID0gOgotK2J1aWxkX3RyaXBsZXQgPSBAYnVpbGRACi0raG9zdF90cmlwbGV0ID0g QGhvc3RACi0rRElTVF9DT01NT04gPSAkKHNyY2RpcikvTWFrZWZpbGUuYW0gJChzcmNkaXIpL01h a2VmaWxlLmluIFwKLSsJJCh0b3Bfc3JjZGlyKS9NYWtlZmlsZS5jb21tb24KLStzdWJkaXIgPSBi dWlsZC9tc3ZjODAKLStBQ0xPQ0FMX000ID0gJCh0b3Bfc3JjZGlyKS9hY2xvY2FsLm00Ci0rYW1f X2FjbG9jYWxfbTRfZGVwcyA9ICQodG9wX3NyY2RpcikvY29uZmlnL2F4X2Jvb3N0Lm00IFwKLSsJ JCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfbXlzcWwubTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZp Zy9heF9vcmFjbGVfb2NpLm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfcG9zdGdyZXNx bC5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmlnL2NwcHVuaXQubTQgXAotKwkkKHRvcF9zcmNk aXIpL2NvbmZpZy9saWJ0b29sLm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvbHRvcHRpb25z Lm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvbHRzdWdhci5tNCBcCi0rCSQodG9wX3NyY2Rp cikvY29uZmlnL2x0dmVyc2lvbi5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmlnL2x0fm9ic29s ZXRlLm00ICQodG9wX3NyY2RpcikvY29uZmlndXJlLmFjCi0rYW1fX2NvbmZpZ3VyZV9kZXBzID0g JChhbV9fYWNsb2NhbF9tNF9kZXBzKSAkKENPTkZJR1VSRV9ERVBFTkRFTkNJRVMpIFwKLSsJJChB Q0xPQ0FMX000KQotK21raW5zdGFsbGRpcnMgPSAkKGluc3RhbGxfc2gpIC1kCi0rQ09ORklHX0hF QURFUiA9ICQodG9wX2J1aWxkZGlyKS9zb2NpL2NvbmZpZy5oCi0rQ09ORklHX0NMRUFOX0ZJTEVT ID0KLStTT1VSQ0VTID0KLStESVNUX1NPVVJDRVMgPQotK1JFQ1VSU0lWRV9UQVJHRVRTID0gYWxs LXJlY3Vyc2l2ZSBjaGVjay1yZWN1cnNpdmUgZHZpLXJlY3Vyc2l2ZSBcCi0rCWh0bWwtcmVjdXJz aXZlIGluZm8tcmVjdXJzaXZlIGluc3RhbGwtZGF0YS1yZWN1cnNpdmUgXAotKwlpbnN0YWxsLWR2 aS1yZWN1cnNpdmUgaW5zdGFsbC1leGVjLXJlY3Vyc2l2ZSBcCi0rCWluc3RhbGwtaHRtbC1yZWN1 cnNpdmUgaW5zdGFsbC1pbmZvLXJlY3Vyc2l2ZSBcCi0rCWluc3RhbGwtcGRmLXJlY3Vyc2l2ZSBp bnN0YWxsLXBzLXJlY3Vyc2l2ZSBpbnN0YWxsLXJlY3Vyc2l2ZSBcCi0rCWluc3RhbGxjaGVjay1y ZWN1cnNpdmUgaW5zdGFsbGRpcnMtcmVjdXJzaXZlIHBkZi1yZWN1cnNpdmUgXAotKwlwcy1yZWN1 cnNpdmUgdW5pbnN0YWxsLXJlY3Vyc2l2ZQotK1JFQ1VSU0lWRV9DTEVBTl9UQVJHRVRTID0gbW9z dGx5Y2xlYW4tcmVjdXJzaXZlIGNsZWFuLXJlY3Vyc2l2ZQlcCi0rICBkaXN0Y2xlYW4tcmVjdXJz aXZlIG1haW50YWluZXItY2xlYW4tcmVjdXJzaXZlCi0rRVRBR1MgPSBldGFncwotK0NUQUdTID0g Y3RhZ3MKLStESVNUX1NVQkRJUlMgPSAkKFNVQkRJUlMpCi0rRElTVEZJTEVTID0gJChESVNUX0NP TU1PTikgJChESVNUX1NPVVJDRVMpICQoVEVYSU5GT1MpICQoRVhUUkFfRElTVCkKLStBQ0xPQ0FM ID0gQEFDTE9DQUxACi0rQU1UQVIgPSBAQU1UQVJACi0rQVIgPSBAQVJACi0rQVVUT0NPTkYgPSBA QVVUT0NPTkZACi0rQVVUT0hFQURFUiA9IEBBVVRPSEVBREVSQAotK0FVVE9NQUtFID0gQEFVVE9N QUtFQAotK0FXSyA9IEBBV0tACi0rQk9PU1RfQ0ZMQUdTID0gQEJPT1NUX0NGTEFHU0AKLStCT09T VF9EQVRFX1RJTUVfTElCID0gQEJPT1NUX0RBVEVfVElNRV9MSUJACi0rQk9PU1RfRklMRVNZU1RF TV9MSUIgPSBAQk9PU1RfRklMRVNZU1RFTV9MSUJACi0rQk9PU1RfSU9TVFJFQU1TX0xJQiA9IEBC T09TVF9JT1NUUkVBTVNfTElCQAotK0JPT1NUX0xJQlMgPSBAQk9PU1RfTElCU0AKLStCT09TVF9Q Uk9HUkFNX09QVElPTlNfTElCID0gQEJPT1NUX1BST0dSQU1fT1BUSU9OU19MSUJACi0rQk9PU1Rf UkVHRVhfTElCID0gQEJPT1NUX1JFR0VYX0xJQkAKLStCT09TVF9TRVJJQUxJWkFUSU9OX0xJQiA9 IEBCT09TVF9TRVJJQUxJWkFUSU9OX0xJQkAKLStCT09TVF9TSUdOQUxTX0xJQiA9IEBCT09TVF9T SUdOQUxTX0xJQkAKLStCT09TVF9USFJFQURfTElCID0gQEJPT1NUX1RIUkVBRF9MSUJACi0rQk9P U1RfVU5JVF9URVNUX0ZSQU1FV09SS19MSUIgPSBAQk9PU1RfVU5JVF9URVNUX0ZSQU1FV09SS19M SUJACi0rQk9PU1RfVkVSU0lPTiA9IEBCT09TVF9WRVJTSU9OQAotK0JPT1NUX1dTRVJJQUxJWkFU SU9OX0xJQiA9IEBCT09TVF9XU0VSSUFMSVpBVElPTl9MSUJACi0rQ0MgPSBAQ0NACi0rQ0NERVBN T0RFID0gQENDREVQTU9ERUAKLStDRkxBR1MgPSBAQ0ZMQUdTQAotK0NQUCA9IEBDUFBACi0rQ1BQ RkxBR1MgPSBAQ1BQRkxBR1NACi0rQ1BQVU5JVF9DRkxBR1MgPSBAQ1BQVU5JVF9DRkxBR1NACi0r Q1BQVU5JVF9DT05GSUcgPSBAQ1BQVU5JVF9DT05GSUdACi0rQ1BQVU5JVF9MSUJTID0gQENQUFVO SVRfTElCU0AKLStDUFBVTklUX1ZFUlNJT04gPSBAQ1BQVU5JVF9WRVJTSU9OQAotK0NYWCA9IEBD WFhACi0rQ1hYQ1BQID0gQENYWENQUEAKLStDWFhERVBNT0RFID0gQENYWERFUE1PREVACi0rQ1hY RkxBR1MgPSBAQ1hYRkxBR1NACi0rQ1lHUEFUSF9XID0gQENZR1BBVEhfV0AKLStERUZTID0gQERF RlNACi0rREVQRElSID0gQERFUERJUkAKLStEU1lNVVRJTCA9IEBEU1lNVVRJTEAKLStEVU1QQklO ID0gQERVTVBCSU5ACi0rRUNIT19DID0gQEVDSE9fQ0AKLStFQ0hPX04gPSBARUNIT19OQAotK0VD SE9fVCA9IEBFQ0hPX1RACi0rRUdSRVAgPSBARUdSRVBACi0rRVhFRVhUID0gQEVYRUVYVEAKLStG R1JFUCA9IEBGR1JFUEAKLStHRU5FUklDX0xJQlJBUllfVkVSU0lPTiA9IEBHRU5FUklDX0xJQlJB UllfVkVSU0lPTkAKLStHUkVQID0gQEdSRVBACi0rSU5TVEFMTCA9IEBJTlNUQUxMQAotK0lOU1RB TExfREFUQSA9IEBJTlNUQUxMX0RBVEFACi0rSU5TVEFMTF9QUk9HUkFNID0gQElOU1RBTExfUFJP R1JBTUAKLStJTlNUQUxMX1NDUklQVCA9IEBJTlNUQUxMX1NDUklQVEAKLStJTlNUQUxMX1NUUklQ X1BST0dSQU0gPSBASU5TVEFMTF9TVFJJUF9QUk9HUkFNQAotK0xEID0gQExEQAotK0xERkxBR1Mg PSBATERGTEFHU0AKLStMSUJPQkpTID0gQExJQk9CSlNACi0rTElCUyA9IEBMSUJTQAotK0xJQlRP T0wgPSBATElCVE9PTEAKLStMSVBPID0gQExJUE9ACi0rTE5fUyA9IEBMTl9TQAotK0xUTElCT0JK UyA9IEBMVExJQk9CSlNACi0rTUFLRUlORk8gPSBATUFLRUlORk9ACi0rTUtESVJfUCA9IEBNS0RJ Ul9QQAotK01ZU1FMX0NGTEFHUyA9IEBNWVNRTF9DRkxBR1NACi0rTVlTUUxfQ09ORklHID0gQE1Z U1FMX0NPTkZJR0AKLStNWVNRTF9ESVJTID0gQE1ZU1FMX0RJUlNACi0rTVlTUUxfTERGTEFHUyA9 IEBNWVNRTF9MREZMQUdTQAotK01ZU1FMX1ZFUlNJT04gPSBATVlTUUxfVkVSU0lPTkAKLStOTSA9 IEBOTUAKLStOTUVESVQgPSBATk1FRElUQAotK09CSkRVTVAgPSBAT0JKRFVNUEAKLStPQkpFWFQg PSBAT0JKRVhUQAotK09SQUNMRV9ESVJTID0gQE9SQUNMRV9ESVJTQAotK09SQUNMRV9PQ0lfQ0ZM QUdTID0gQE9SQUNMRV9PQ0lfQ0ZMQUdTQAotK09SQUNMRV9PQ0lfTERGTEFHUyA9IEBPUkFDTEVf T0NJX0xERkxBR1NACi0rT1JBQ0xFX09DSV9WRVJTSU9OID0gQE9SQUNMRV9PQ0lfVkVSU0lPTkAK LStPVE9PTCA9IEBPVE9PTEAKLStPVE9PTDY0ID0gQE9UT09MNjRACi0rUEFDS0FHRSA9IEBQQUNL QUdFQAotK1BBQ0tBR0VfQlVHUkVQT1JUID0gQFBBQ0tBR0VfQlVHUkVQT1JUQAotK1BBQ0tBR0Vf TkFNRSA9IEBQQUNLQUdFX05BTUVACi0rUEFDS0FHRV9TVFJJTkcgPSBAUEFDS0FHRV9TVFJJTkdA Ci0rUEFDS0FHRV9UQVJOQU1FID0gQFBBQ0tBR0VfVEFSTkFNRUAKLStQQUNLQUdFX1ZFUlNJT04g PSBAUEFDS0FHRV9WRVJTSU9OQAotK1BBVEhfU0VQQVJBVE9SID0gQFBBVEhfU0VQQVJBVE9SQAot K1BFUkwgPSBAUEVSTEAKLStQR19DT05GSUcgPSBAUEdfQ09ORklHQAotK1BPU1RHUkVTUUxfQ0ZM QUdTID0gQFBPU1RHUkVTUUxfQ0ZMQUdTQAotK1BPU1RHUkVTUUxfRElSUyA9IEBQT1NUR1JFU1FM X0RJUlNACi0rUE9TVEdSRVNRTF9MREZMQUdTID0gQFBPU1RHUkVTUUxfTERGTEFHU0AKLStQT1NU R1JFU1FMX1ZFUlNJT04gPSBAUE9TVEdSRVNRTF9WRVJTSU9OQAotK1JBTkxJQiA9IEBSQU5MSUJA Ci0rUlBNX1JFTEVBU0UgPSBAUlBNX1JFTEVBU0VACi0rU0VEID0gQFNFREAKLStTRVRfTUFLRSA9 IEBTRVRfTUFLRUAKLStTSEVMTCA9IEBTSEVMTEAKLStTT0NJX0hFQURFUlNfQlVSSUVEID0gQFNP Q0lfSEVBREVSU19CVVJJRURACi0rU09DSV9NWVNRTF9IRUFERVJTX0JVUklFRCA9IEBTT0NJX01Z U1FMX0hFQURFUlNfQlVSSUVEQAotK1NPQ0lfUE9TVEdSRVNRTF9IRUFERVJTX0JVUklFRCA9IEBT T0NJX1BPU1RHUkVTUUxfSEVBREVSU19CVVJJRURACi0rU1RSSVAgPSBAU1RSSVBACi0rVVBMT0FE X0NPTU1BTkQgPSBAVVBMT0FEX0NPTU1BTkRACi0rVkVSU0lPTiA9IEBWRVJTSU9OQAotK2Fic19i dWlsZGRpciA9IEBhYnNfYnVpbGRkaXJACi0rYWJzX3NyY2RpciA9IEBhYnNfc3JjZGlyQAotK2Fi c190b3BfYnVpbGRkaXIgPSBAYWJzX3RvcF9idWlsZGRpckAKLSthYnNfdG9wX3NyY2RpciA9IEBh YnNfdG9wX3NyY2RpckAKLSthY19jdF9DQyA9IEBhY19jdF9DQ0AKLSthY19jdF9DWFggPSBAYWNf Y3RfQ1hYQAotK2FjX2N0X0RVTVBCSU4gPSBAYWNfY3RfRFVNUEJJTkAKLSthbV9faW5jbHVkZSA9 IEBhbV9faW5jbHVkZUAKLSthbV9fbGVhZGluZ19kb3QgPSBAYW1fX2xlYWRpbmdfZG90QAotK2Ft X19xdW90ZSA9IEBhbV9fcXVvdGVACi0rYW1fX3RhciA9IEBhbV9fdGFyQAotK2FtX191bnRhciA9 IEBhbV9fdW50YXJACi0rYmluZGlyID0gQGJpbmRpckAKLStidWlsZCA9IEBidWlsZEAKLStidWls ZF9hbGlhcyA9IEBidWlsZF9hbGlhc0AKLStidWlsZF9jcHUgPSBAYnVpbGRfY3B1QAotK2J1aWxk X29zID0gQGJ1aWxkX29zQAotK2J1aWxkX3ZlbmRvciA9IEBidWlsZF92ZW5kb3JACi0rYnVpbGRk aXIgPSBAYnVpbGRkaXJACi0rZGF0YWRpciA9IEBkYXRhZGlyQAotK2RhdGFyb290ZGlyID0gQGRh dGFyb290ZGlyQAotK2RpZmZfb2sgPSBAZGlmZl9va0AKLStkb2NkaXIgPSBAZG9jZGlyQAotK2Rv eHlnZW5fb2sgPSBAZG94eWdlbl9va0AKLStkdmlkaXIgPSBAZHZpZGlyQAotK2R2aXBzX29rID0g QGR2aXBzX29rQAotK2V4ZWNfcHJlZml4ID0gQGV4ZWNfcHJlZml4QAotK2dzX29rID0gQGdzX29r QAotK2hvc3QgPSBAaG9zdEAKLStob3N0X2FsaWFzID0gQGhvc3RfYWxpYXNACi0raG9zdF9jcHUg PSBAaG9zdF9jcHVACi0raG9zdF9vcyA9IEBob3N0X29zQAotK2hvc3RfdmVuZG9yID0gQGhvc3Rf dmVuZG9yQAotK2h0bWxkaXIgPSBAaHRtbGRpckAKLStpbmNsdWRlZGlyID0gQGluY2x1ZGVkaXJA Ci0raW5mb2RpciA9IEBpbmZvZGlyQAotK2luc3RhbGxfc2ggPSBAaW5zdGFsbF9zaEAKLStsYXRl eF9vayA9IEBsYXRleF9va0AKLStsaWJkaXIgPSBAbGliZGlyQAotK2xpYmV4ZWNkaXIgPSBAbGli ZXhlY2RpckAKLStsb2NhbGVkaXIgPSBAbG9jYWxlZGlyQAotK2xvY2Fsc3RhdGVkaXIgPSBAbG9j YWxzdGF0ZWRpckAKLStsdF9FQ0hPID0gQGx0X0VDSE9ACi0rbWFuZGlyID0gQG1hbmRpckAKLStt a2Rpcl9wID0gQG1rZGlyX3BACi0rb2xkaW5jbHVkZWRpciA9IEBvbGRpbmNsdWRlZGlyQAotK3Bk ZmRpciA9IEBwZGZkaXJACi0rcHJlZml4ID0gQHByZWZpeEAKLStwcm9ncmFtX3RyYW5zZm9ybV9u YW1lID0gQHByb2dyYW1fdHJhbnNmb3JtX25hbWVACi0rcHNkaXIgPSBAcHNkaXJACi0rc2JpbmRp ciA9IEBzYmluZGlyQAotK3NlZF9vayA9IEBzZWRfb2tACi0rc2hhcmVkc3RhdGVkaXIgPSBAc2hh cmVkc3RhdGVkaXJACi0rc3JjZGlyID0gQHNyY2RpckAKLStzeXNjb25mZGlyID0gQHN5c2NvbmZk aXJACi0rdGFyZ2V0X2FsaWFzID0gQHRhcmdldF9hbGlhc0AKLSt0b3BfYnVpbGRfcHJlZml4ID0g QHRvcF9idWlsZF9wcmVmaXhACi0rdG9wX2J1aWxkZGlyID0gQHRvcF9idWlsZGRpckAKLSt0b3Bf c3JjZGlyID0gQHRvcF9zcmNkaXJACi0rQU1fQ1BQRkxBR1MgPSAtSSQodG9wX2J1aWxkZGlyKSAt SSQodG9wX3NyY2RpcikKLStNQUlOVEFJTkVSQ0xFQU5GSUxFUyA9IE1ha2VmaWxlLmluCi0rRVhU UkFfRElTVCA9IFJFQURNRS50eHQgc29jaS52c3Byb3BzCi0rU1VCRElSUyA9IGRsbCBsaWIKLSth bGw6IGFsbC1yZWN1cnNpdmUKLSsKLSsuU1VGRklYRVM6Ci0rJChzcmNkaXIpL01ha2VmaWxlLmlu OiAgJChzcmNkaXIpL01ha2VmaWxlLmFtICQodG9wX3NyY2RpcikvTWFrZWZpbGUuY29tbW9uICQo YW1fX2NvbmZpZ3VyZV9kZXBzKQotKwlAZm9yIGRlcCBpbiAkPzsgZG8gXAotKwkgIGNhc2UgJyQo YW1fX2NvbmZpZ3VyZV9kZXBzKScgaW4gXAotKwkgICAgKiQkZGVwKikgXAotKwkgICAgICAoIGNk ICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaCAp IFwKLSsJICAgICAgICAmJiB7IGlmIHRlc3QgLWYgJEA7IHRoZW4gZXhpdCAwOyBlbHNlIGJyZWFr OyBmaTsgfTsgXAotKwkgICAgICBleGl0IDE7OyBcCi0rCSAgZXNhYzsgXAotKwlkb25lOyBcCi0r CWVjaG8gJyBjZCAkKHRvcF9zcmNkaXIpICYmICQoQVVUT01BS0UpIC0tZ251ICBidWlsZC9tc3Zj ODAvTWFrZWZpbGUnOyBcCi0rCWNkICQodG9wX3NyY2RpcikgJiYgXAotKwkgICQoQVVUT01BS0Up IC0tZ251ICBidWlsZC9tc3ZjODAvTWFrZWZpbGUKLSsuUFJFQ0lPVVM6IE1ha2VmaWxlCi0rTWFr ZWZpbGU6ICQoc3JjZGlyKS9NYWtlZmlsZS5pbiAkKHRvcF9idWlsZGRpcikvY29uZmlnLnN0YXR1 cwotKwlAY2FzZSAnJD8nIGluIFwKLSsJICAqY29uZmlnLnN0YXR1cyopIFwKLSsJICAgIGNkICQo dG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaDs7IFwK LSsJICAqKSBcCi0rCSAgICBlY2hvICcgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoU0hFTEwpIC4v Y29uZmlnLnN0YXR1cyAkKHN1YmRpcikvJEAgJChhbV9fZGVwZmlsZXNfbWF5YmUpJzsgXAotKwkg ICAgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoU0hFTEwpIC4vY29uZmlnLnN0YXR1cyAkKHN1YmRp cikvJEAgJChhbV9fZGVwZmlsZXNfbWF5YmUpOzsgXAotKwllc2FjOwotKwotKyQodG9wX2J1aWxk ZGlyKS9jb25maWcuc3RhdHVzOiAkKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZSAkKENPTkZJR19TVEFU VVNfREVQRU5ERU5DSUVTKQotKwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01B S0VGTEFHUykgYW0tLXJlZnJlc2gKLSsKLSskKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZTogICQoYW1f X2NvbmZpZ3VyZV9kZXBzKQotKwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01B S0VGTEFHUykgYW0tLXJlZnJlc2gKLSskKEFDTE9DQUxfTTQpOiAgJChhbV9fYWNsb2NhbF9tNF9k ZXBzKQotKwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0t LXJlZnJlc2gKLSsKLSttb3N0bHljbGVhbi1saWJ0b29sOgotKwktcm0gLWYgKi5sbwotKwotK2Ns ZWFuLWxpYnRvb2w6Ci0rCS1ybSAtcmYgLmxpYnMgX2xpYnMKLSsKLSsjIFRoaXMgZGlyZWN0b3J5 J3Mgc3ViZGlyZWN0b3JpZXMgYXJlIG1vc3RseSBpbmRlcGVuZGVudDsgeW91IGNhbiBjZAotKyMg aW50byB0aGVtIGFuZCBydW4gYG1ha2UnIHdpdGhvdXQgZ29pbmcgdGhyb3VnaCB0aGlzIE1ha2Vm aWxlLgotKyMgVG8gY2hhbmdlIHRoZSB2YWx1ZXMgb2YgYG1ha2UnIHZhcmlhYmxlczogaW5zdGVh ZCBvZiBlZGl0aW5nIE1ha2VmaWxlcywKLSsjICgxKSBpZiB0aGUgdmFyaWFibGUgaXMgc2V0IGlu IGBjb25maWcuc3RhdHVzJywgZWRpdCBgY29uZmlnLnN0YXR1cycKLSsjICAgICAod2hpY2ggd2ls bCBjYXVzZSB0aGUgTWFrZWZpbGVzIHRvIGJlIHJlZ2VuZXJhdGVkIHdoZW4geW91IHJ1biBgbWFr ZScpOwotKyMgKDIpIG90aGVyd2lzZSwgcGFzcyB0aGUgZGVzaXJlZCB2YWx1ZXMgb24gdGhlIGBt YWtlJyBjb21tYW5kIGxpbmUuCi0rJChSRUNVUlNJVkVfVEFSR0VUUyk6Ci0rCUBmYWlsY29tPSdl eGl0IDEnOyBcCi0rCWZvciBmIGluIHggJCRNQUtFRkxBR1M7IGRvIFwKLSsJICBjYXNlICQkZiBp biBcCi0rCSAgICAqPSogfCAtLVsha10qKTs7IFwKLSsJICAgICprKikgZmFpbGNvbT0nZmFpbD15 ZXMnOzsgXAotKwkgIGVzYWM7IFwKLSsJZG9uZTsgXAotKwlkb3Rfc2Vlbj1ubzsgXAotKwl0YXJn ZXQ9YGVjaG8gJEAgfCBzZWQgcy8tcmVjdXJzaXZlLy9gOyBcCi0rCWxpc3Q9JyQoU1VCRElSUykn OyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAotKwkgIGVjaG8gIk1ha2luZyAkJHRhcmdldCBp biAkJHN1YmRpciI7IFwKLSsJICBpZiB0ZXN0ICIkJHN1YmRpciIgPSAiLiI7IHRoZW4gXAotKwkg ICAgZG90X3NlZW49eWVzOyBcCi0rCSAgICBsb2NhbF90YXJnZXQ9IiQkdGFyZ2V0LWFtIjsgXAot KwkgIGVsc2UgXAotKwkgICAgbG9jYWxfdGFyZ2V0PSIkJHRhcmdldCI7IFwKLSsJICBmaTsgXAot KwkgIChjZCAkJHN1YmRpciAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSAkJGxvY2FsX3Rhcmdl dCkgXAotKwkgIHx8IGV2YWwgJCRmYWlsY29tOyBcCi0rCWRvbmU7IFwKLSsJaWYgdGVzdCAiJCRk b3Rfc2VlbiIgPSAibm8iOyB0aGVuIFwKLSsJICAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSAiJCR0 YXJnZXQtYW0iIHx8IGV4aXQgMTsgXAotKwlmaTsgdGVzdCAteiAiJCRmYWlsIgotKwotKyQoUkVD VVJTSVZFX0NMRUFOX1RBUkdFVFMpOgotKwlAZmFpbGNvbT0nZXhpdCAxJzsgXAotKwlmb3IgZiBp biB4ICQkTUFLRUZMQUdTOyBkbyBcCi0rCSAgY2FzZSAkJGYgaW4gXAotKwkgICAgKj0qIHwgLS1b IWtdKik7OyBcCi0rCSAgICAqayopIGZhaWxjb209J2ZhaWw9eWVzJzs7IFwKLSsJICBlc2FjOyBc Ci0rCWRvbmU7IFwKLSsJZG90X3NlZW49bm87IFwKLSsJY2FzZSAiJEAiIGluIFwKLSsJICBkaXN0 Y2xlYW4tKiB8IG1haW50YWluZXItY2xlYW4tKikgbGlzdD0nJChESVNUX1NVQkRJUlMpJyA7OyBc Ci0rCSAgKikgbGlzdD0nJChTVUJESVJTKScgOzsgXAotKwllc2FjOyBcCi0rCXJldj0nJzsgZm9y IHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKLSsJICBpZiB0ZXN0ICIkJHN1YmRpciIgPSAiLiI7IHRo ZW4gOjsgZWxzZSBcCi0rCSAgICByZXY9IiQkc3ViZGlyICQkcmV2IjsgXAotKwkgIGZpOyBcCi0r CWRvbmU7IFwKLSsJcmV2PSIkJHJldiAuIjsgXAotKwl0YXJnZXQ9YGVjaG8gJEAgfCBzZWQgcy8t cmVjdXJzaXZlLy9gOyBcCi0rCWZvciBzdWJkaXIgaW4gJCRyZXY7IGRvIFwKLSsJICBlY2hvICJN YWtpbmcgJCR0YXJnZXQgaW4gJCRzdWJkaXIiOyBcCi0rCSAgaWYgdGVzdCAiJCRzdWJkaXIiID0g Ii4iOyB0aGVuIFwKLSsJICAgIGxvY2FsX3RhcmdldD0iJCR0YXJnZXQtYW0iOyBcCi0rCSAgZWxz ZSBcCi0rCSAgICBsb2NhbF90YXJnZXQ9IiQkdGFyZ2V0IjsgXAotKwkgIGZpOyBcCi0rCSAgKGNk ICQkc3ViZGlyICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpICQkbG9jYWxfdGFyZ2V0KSBcCi0r CSAgfHwgZXZhbCAkJGZhaWxjb207IFwKLSsJZG9uZSAmJiB0ZXN0IC16ICIkJGZhaWwiCi0rdGFn cy1yZWN1cnNpdmU6Ci0rCWxpc3Q9JyQoU1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsg ZG8gXAotKwkgIHRlc3QgIiQkc3ViZGlyIiA9IC4gfHwgKGNkICQkc3ViZGlyICYmICQoTUFLRSkg JChBTV9NQUtFRkxBR1MpIHRhZ3MpOyBcCi0rCWRvbmUKLStjdGFncy1yZWN1cnNpdmU6Ci0rCWxp c3Q9JyQoU1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAotKwkgIHRlc3QgIiQk c3ViZGlyIiA9IC4gfHwgKGNkICQkc3ViZGlyICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGN0 YWdzKTsgXAotKwlkb25lCi0rCi0rSUQ6ICQoSEVBREVSUykgJChTT1VSQ0VTKSAkKExJU1ApICQo VEFHU19GSUxFUykKLSsJbGlzdD0nJChTT1VSQ0VTKSAkKEhFQURFUlMpICQoTElTUCkgJChUQUdT X0ZJTEVTKSc7IFwKLSsJdW5pcXVlPWBmb3IgaSBpbiAkJGxpc3Q7IGRvIFwKLSsJICAgIGlmIHRl c3QgLWYgIiQkaSI7IHRoZW4gZWNobyAkJGk7IGVsc2UgZWNobyAkKHNyY2RpcikvJCRpOyBmaTsg XAotKwkgIGRvbmUgfCBcCi0rCSAgJChBV0spICd7IGZpbGVzWyQkMF0gPSAxOyBub25lbXB0eSA9 IDE7IH0gXAotKwkgICAgICBFTkQgeyBpZiAobm9uZW1wdHkpIHsgZm9yIChpIGluIGZpbGVzKSBw cmludCBpOyB9OyB9J2A7IFwKLSsJbWtpZCAtZklEICQkdW5pcXVlCi0rdGFnczogVEFHUwotKwot K1RBR1M6IHRhZ3MtcmVjdXJzaXZlICQoSEVBREVSUykgJChTT1VSQ0VTKSAgJChUQUdTX0RFUEVO REVOQ0lFUykgXAotKwkJJChUQUdTX0ZJTEVTKSAkKExJU1ApCi0rCXRhZ3M9OyBcCi0rCWhlcmU9 YHB3ZGA7IFwKLSsJaWYgKCQoRVRBR1MpIC0tZXRhZ3MtaW5jbHVkZSAtLXZlcnNpb24pID4vZGV2 L251bGwgMj4mMTsgdGhlbiBcCi0rCSAgaW5jbHVkZV9vcHRpb249LS1ldGFncy1pbmNsdWRlOyBc Ci0rCSAgZW1wdHlfZml4PS47IFwKLSsJZWxzZSBcCi0rCSAgaW5jbHVkZV9vcHRpb249LS1pbmNs dWRlOyBcCi0rCSAgZW1wdHlfZml4PTsgXAotKwlmaTsgXAotKwlsaXN0PSckKFNVQkRJUlMpJzsg Zm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKLSsJICBpZiB0ZXN0ICIkJHN1YmRpciIgPSAuOyB0 aGVuIDo7IGVsc2UgXAotKwkgICAgdGVzdCAhIC1mICQkc3ViZGlyL1RBR1MgfHwgXAotKwkgICAg ICB0YWdzPSIkJHRhZ3MgJCRpbmNsdWRlX29wdGlvbj0kJGhlcmUvJCRzdWJkaXIvVEFHUyI7IFwK LSsJICBmaTsgXAotKwlkb25lOyBcCi0rCWxpc3Q9JyQoU09VUkNFUykgJChIRUFERVJTKSAgJChM SVNQKSAkKFRBR1NfRklMRVMpJzsgXAotKwl1bmlxdWU9YGZvciBpIGluICQkbGlzdDsgZG8gXAot KwkgICAgaWYgdGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsgZWxzZSBlY2hvICQoc3JjZGly KS8kJGk7IGZpOyBcCi0rCSAgZG9uZSB8IFwKLSsJICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9IDE7 IG5vbmVtcHR5ID0gMTsgfSBcCi0rCSAgICAgIEVORCB7IGlmIChub25lbXB0eSkgeyBmb3IgKGkg aW4gZmlsZXMpIHByaW50IGk7IH07IH0nYDsgXAotKwlpZiB0ZXN0IC16ICIkKEVUQUdTX0FSR1Mp JCR0YWdzJCR1bmlxdWUiOyB0aGVuIDo7IGVsc2UgXAotKwkgIHRlc3QgLW4gIiQkdW5pcXVlIiB8 fCB1bmlxdWU9JCRlbXB0eV9maXg7IFwKLSsJICAkKEVUQUdTKSAkKEVUQUdTRkxBR1MpICQoQU1f RVRBR1NGTEFHUykgJChFVEFHU19BUkdTKSBcCi0rCSAgICAkJHRhZ3MgJCR1bmlxdWU7IFwKLSsJ ZmkKLStjdGFnczogQ1RBR1MKLStDVEFHUzogY3RhZ3MtcmVjdXJzaXZlICQoSEVBREVSUykgJChT T1VSQ0VTKSAgJChUQUdTX0RFUEVOREVOQ0lFUykgXAotKwkJJChUQUdTX0ZJTEVTKSAkKExJU1Ap Ci0rCXRhZ3M9OyBcCi0rCWxpc3Q9JyQoU09VUkNFUykgJChIRUFERVJTKSAgJChMSVNQKSAkKFRB R1NfRklMRVMpJzsgXAotKwl1bmlxdWU9YGZvciBpIGluICQkbGlzdDsgZG8gXAotKwkgICAgaWYg dGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsgZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7IGZp OyBcCi0rCSAgZG9uZSB8IFwKLSsJICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9IDE7IG5vbmVtcHR5 ID0gMTsgfSBcCi0rCSAgICAgIEVORCB7IGlmIChub25lbXB0eSkgeyBmb3IgKGkgaW4gZmlsZXMp IHByaW50IGk7IH07IH0nYDsgXAotKwl0ZXN0IC16ICIkKENUQUdTX0FSR1MpJCR0YWdzJCR1bmlx dWUiIFwKLSsJICB8fCAkKENUQUdTKSAkKENUQUdTRkxBR1MpICQoQU1fQ1RBR1NGTEFHUykgJChD VEFHU19BUkdTKSBcCi0rCSAgICAgJCR0YWdzICQkdW5pcXVlCi0rCi0rR1RBR1M6Ci0rCWhlcmU9 YCQoYW1fX2NkKSAkKHRvcF9idWlsZGRpcikgJiYgcHdkYCBcCi0rCSAgJiYgY2QgJCh0b3Bfc3Jj ZGlyKSBcCi0rCSAgJiYgZ3RhZ3MgLWkgJChHVEFHU19BUkdTKSAkJGhlcmUKLSsKLStkaXN0Y2xl YW4tdGFnczoKLSsJLXJtIC1mIFRBR1MgSUQgR1RBR1MgR1JUQUdTIEdTWU1TIEdQQVRIIHRhZ3MK LSsKLStkaXN0ZGlyOiAkKERJU1RGSUxFUykKLSsJQHNyY2RpcnN0cmlwPWBlY2hvICIkKHNyY2Rp cikiIHwgc2VkICdzL1tdLlteJCRcXCpdL1xcXFwmL2cnYDsgXAotKwl0b3BzcmNkaXJzdHJpcD1g ZWNobyAiJCh0b3Bfc3JjZGlyKSIgfCBzZWQgJ3MvW10uW14kJFxcKl0vXFxcXCYvZydgOyBcCi0r CWxpc3Q9JyQoRElTVEZJTEVTKSc7IFwKLSsJICBkaXN0X2ZpbGVzPWBmb3IgZmlsZSBpbiAkJGxp c3Q7IGRvIGVjaG8gJCRmaWxlOyBkb25lIHwgXAotKwkgIHNlZCAtZSAic3xeJCRzcmNkaXJzdHJp cC98fDt0IiBcCi0rCSAgICAgIC1lICJzfF4kJHRvcHNyY2RpcnN0cmlwL3wkKHRvcF9idWlsZGRp cikvfDt0ImA7IFwKLSsJY2FzZSAkJGRpc3RfZmlsZXMgaW4gXAotKwkgICovKikgJChNS0RJUl9Q KSBgZWNobyAiJCRkaXN0X2ZpbGVzIiB8IFwKLSsJCQkgICBzZWQgJy9cLy8hZDtzfF58JChkaXN0 ZGlyKS98O3MsL1teL10qJCQsLCcgfCBcCi0rCQkJICAgc29ydCAtdWAgOzsgXAotKwllc2FjOyBc Ci0rCWZvciBmaWxlIGluICQkZGlzdF9maWxlczsgZG8gXAotKwkgIGlmIHRlc3QgLWYgJCRmaWxl IHx8IHRlc3QgLWQgJCRmaWxlOyB0aGVuIGQ9LjsgZWxzZSBkPSQoc3JjZGlyKTsgZmk7IFwKLSsJ ICBpZiB0ZXN0IC1kICQkZC8kJGZpbGU7IHRoZW4gXAotKwkgICAgZGlyPWBlY2hvICIvJCRmaWxl IiB8IHNlZCAtZSAncywvW14vXSokJCwsJ2A7IFwKLSsJICAgIGlmIHRlc3QgLWQgJChzcmNkaXIp LyQkZmlsZSAmJiB0ZXN0ICQkZCAhPSAkKHNyY2Rpcik7IHRoZW4gXAotKwkgICAgICBjcCAtcFIg JChzcmNkaXIpLyQkZmlsZSAkKGRpc3RkaXIpJCRkaXIgfHwgZXhpdCAxOyBcCi0rCSAgICBmaTsg XAotKwkgICAgY3AgLXBSICQkZC8kJGZpbGUgJChkaXN0ZGlyKSQkZGlyIHx8IGV4aXQgMTsgXAot KwkgIGVsc2UgXAotKwkgICAgdGVzdCAtZiAkKGRpc3RkaXIpLyQkZmlsZSBcCi0rCSAgICB8fCBj cCAtcCAkJGQvJCRmaWxlICQoZGlzdGRpcikvJCRmaWxlIFwKLSsJICAgIHx8IGV4aXQgMTsgXAot KwkgIGZpOyBcCi0rCWRvbmUKLSsJbGlzdD0nJChESVNUX1NVQkRJUlMpJzsgZm9yIHN1YmRpciBp biAkJGxpc3Q7IGRvIFwKLSsJICBpZiB0ZXN0ICIkJHN1YmRpciIgPSAuOyB0aGVuIDo7IGVsc2Ug XAotKwkgICAgdGVzdCAtZCAiJChkaXN0ZGlyKS8kJHN1YmRpciIgXAotKwkgICAgfHwgJChNS0RJ Ul9QKSAiJChkaXN0ZGlyKS8kJHN1YmRpciIgXAotKwkgICAgfHwgZXhpdCAxOyBcCi0rCSAgICBk aXN0ZGlyPWAkKGFtX19jZCkgJChkaXN0ZGlyKSAmJiBwd2RgOyBcCi0rCSAgICB0b3BfZGlzdGRp cj1gJChhbV9fY2QpICQodG9wX2Rpc3RkaXIpICYmIHB3ZGA7IFwKLSsJICAgIChjZCAkJHN1YmRp ciAmJiBcCi0rCSAgICAgICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIFwKLSsJICAgICAgICB0b3Bf ZGlzdGRpcj0iJCR0b3BfZGlzdGRpciIgXAotKwkgICAgICAgIGRpc3RkaXI9IiQkZGlzdGRpci8k JHN1YmRpciIgXAotKwkJYW1fX3JlbW92ZV9kaXN0ZGlyPTogXAotKwkJYW1fX3NraXBfbGVuZ3Ro X2NoZWNrPTogXAotKwkgICAgICAgIGRpc3RkaXIpIFwKLSsJICAgICAgfHwgZXhpdCAxOyBcCi0r CSAgZmk7IFwKLSsJZG9uZQotK2NoZWNrLWFtOiBhbGwtYW0KLStjaGVjazogY2hlY2stcmVjdXJz aXZlCi0rYWxsLWFtOiBNYWtlZmlsZQotK2luc3RhbGxkaXJzOiBpbnN0YWxsZGlycy1yZWN1cnNp dmUKLStpbnN0YWxsZGlycy1hbToKLStpbnN0YWxsOiBpbnN0YWxsLXJlY3Vyc2l2ZQotK2luc3Rh bGwtZXhlYzogaW5zdGFsbC1leGVjLXJlY3Vyc2l2ZQotK2luc3RhbGwtZGF0YTogaW5zdGFsbC1k YXRhLXJlY3Vyc2l2ZQotK3VuaW5zdGFsbDogdW5pbnN0YWxsLXJlY3Vyc2l2ZQotKwotK2luc3Rh bGwtYW06IGFsbC1hbQotKwlAJChNQUtFKSAkKEFNX01BS0VGTEFHUykgaW5zdGFsbC1leGVjLWFt IGluc3RhbGwtZGF0YS1hbQotKwotK2luc3RhbGxjaGVjazogaW5zdGFsbGNoZWNrLXJlY3Vyc2l2 ZQotK2luc3RhbGwtc3RyaXA6Ci0rCSQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIElOU1RBTExfUFJP R1JBTT0iJChJTlNUQUxMX1NUUklQX1BST0dSQU0pIiBcCi0rCSAgaW5zdGFsbF9zaF9QUk9HUkFN PSIkKElOU1RBTExfU1RSSVBfUFJPR1JBTSkiIElOU1RBTExfU1RSSVBfRkxBRz0tcyBcCi0rCSAg YHRlc3QgLXogJyQoU1RSSVApJyB8fCBcCi0rCSAgICBlY2hvICJJTlNUQUxMX1BST0dSQU1fRU5W PVNUUklQUFJPRz0nJChTVFJJUCknImAgaW5zdGFsbAotK21vc3RseWNsZWFuLWdlbmVyaWM6Ci0r Ci0rY2xlYW4tZ2VuZXJpYzoKLSsKLStkaXN0Y2xlYW4tZ2VuZXJpYzoKLSsJLXRlc3QgLXogIiQo Q09ORklHX0NMRUFOX0ZJTEVTKSIgfHwgcm0gLWYgJChDT05GSUdfQ0xFQU5fRklMRVMpCi0rCi0r bWFpbnRhaW5lci1jbGVhbi1nZW5lcmljOgotKwlAZWNobyAiVGhpcyBjb21tYW5kIGlzIGludGVu ZGVkIGZvciBtYWludGFpbmVycyB0byB1c2UiCi0rCUBlY2hvICJpdCBkZWxldGVzIGZpbGVzIHRo YXQgbWF5IHJlcXVpcmUgc3BlY2lhbCB0b29scyB0byByZWJ1aWxkLiIKLSsJLXRlc3QgLXogIiQo TUFJTlRBSU5FUkNMRUFORklMRVMpIiB8fCBybSAtZiAkKE1BSU5UQUlORVJDTEVBTkZJTEVTKQot K2NsZWFuOiBjbGVhbi1yZWN1cnNpdmUKLSsKLStjbGVhbi1hbTogY2xlYW4tZ2VuZXJpYyBjbGVh bi1saWJ0b29sIG1vc3RseWNsZWFuLWFtCi0rCi0rZGlzdGNsZWFuOiBkaXN0Y2xlYW4tcmVjdXJz aXZlCi0rCS1ybSAtZiBNYWtlZmlsZQotK2Rpc3RjbGVhbi1hbTogY2xlYW4tYW0gZGlzdGNsZWFu LWdlbmVyaWMgZGlzdGNsZWFuLXRhZ3MKLSsKLStkdmk6IGR2aS1yZWN1cnNpdmUKLSsKLStkdmkt YW06Ci0rCi0raHRtbDogaHRtbC1yZWN1cnNpdmUKLSsKLStpbmZvOiBpbmZvLXJlY3Vyc2l2ZQot KwotK2luZm8tYW06Ci0rCi0raW5zdGFsbC1kYXRhLWFtOgotKwotK2luc3RhbGwtZHZpOiBpbnN0 YWxsLWR2aS1yZWN1cnNpdmUKLSsKLStpbnN0YWxsLWV4ZWMtYW06Ci0rCi0raW5zdGFsbC1odG1s OiBpbnN0YWxsLWh0bWwtcmVjdXJzaXZlCi0rCi0raW5zdGFsbC1pbmZvOiBpbnN0YWxsLWluZm8t cmVjdXJzaXZlCi0rCi0raW5zdGFsbC1tYW46Ci0rCi0raW5zdGFsbC1wZGY6IGluc3RhbGwtcGRm LXJlY3Vyc2l2ZQotKwotK2luc3RhbGwtcHM6IGluc3RhbGwtcHMtcmVjdXJzaXZlCi0rCi0raW5z dGFsbGNoZWNrLWFtOgotKwotK21haW50YWluZXItY2xlYW46IG1haW50YWluZXItY2xlYW4tcmVj dXJzaXZlCi0rCS1ybSAtZiBNYWtlZmlsZQotK21haW50YWluZXItY2xlYW4tYW06IGRpc3RjbGVh bi1hbSBtYWludGFpbmVyLWNsZWFuLWdlbmVyaWMKLSsKLSttb3N0bHljbGVhbjogbW9zdGx5Y2xl YW4tcmVjdXJzaXZlCi0rCi0rbW9zdGx5Y2xlYW4tYW06IG1vc3RseWNsZWFuLWdlbmVyaWMgbW9z dGx5Y2xlYW4tbGlidG9vbAotKwotK3BkZjogcGRmLXJlY3Vyc2l2ZQotKwotK3BkZi1hbToKLSsK LStwczogcHMtcmVjdXJzaXZlCi0rCi0rcHMtYW06Ci0rCi0rdW5pbnN0YWxsLWFtOgotKwotKy5N QUtFOiAkKFJFQ1VSU0lWRV9DTEVBTl9UQVJHRVRTKSAkKFJFQ1VSU0lWRV9UQVJHRVRTKSBpbnN0 YWxsLWFtIFwKLSsJaW5zdGFsbC1zdHJpcAotKwotKy5QSE9OWTogJChSRUNVUlNJVkVfQ0xFQU5f VEFSR0VUUykgJChSRUNVUlNJVkVfVEFSR0VUUykgQ1RBR1MgR1RBR1MgXAotKwlhbGwgYWxsLWFt IGNoZWNrIGNoZWNrLWFtIGNsZWFuIGNsZWFuLWdlbmVyaWMgY2xlYW4tbGlidG9vbCBcCi0rCWN0 YWdzIGN0YWdzLXJlY3Vyc2l2ZSBkaXN0Y2xlYW4gZGlzdGNsZWFuLWdlbmVyaWMgXAotKwlkaXN0 Y2xlYW4tbGlidG9vbCBkaXN0Y2xlYW4tdGFncyBkaXN0ZGlyIGR2aSBkdmktYW0gaHRtbCBcCi0r CWh0bWwtYW0gaW5mbyBpbmZvLWFtIGluc3RhbGwgaW5zdGFsbC1hbSBpbnN0YWxsLWRhdGEgXAot KwlpbnN0YWxsLWRhdGEtYW0gaW5zdGFsbC1kdmkgaW5zdGFsbC1kdmktYW0gaW5zdGFsbC1leGVj IFwKLSsJaW5zdGFsbC1leGVjLWFtIGluc3RhbGwtaHRtbCBpbnN0YWxsLWh0bWwtYW0gaW5zdGFs bC1pbmZvIFwKLSsJaW5zdGFsbC1pbmZvLWFtIGluc3RhbGwtbWFuIGluc3RhbGwtcGRmIGluc3Rh bGwtcGRmLWFtIFwKLSsJaW5zdGFsbC1wcyBpbnN0YWxsLXBzLWFtIGluc3RhbGwtc3RyaXAgaW5z dGFsbGNoZWNrIFwKLSsJaW5zdGFsbGNoZWNrLWFtIGluc3RhbGxkaXJzIGluc3RhbGxkaXJzLWFt IG1haW50YWluZXItY2xlYW4gXAotKwltYWludGFpbmVyLWNsZWFuLWdlbmVyaWMgbW9zdGx5Y2xl YW4gbW9zdGx5Y2xlYW4tZ2VuZXJpYyBcCi0rCW1vc3RseWNsZWFuLWxpYnRvb2wgcGRmIHBkZi1h bSBwcyBwcy1hbSB0YWdzIHRhZ3MtcmVjdXJzaXZlIFwKLSsJdW5pbnN0YWxsIHVuaW5zdGFsbC1h bQotKwotK0BTRVRfTUFLRUAKLSsjIFRlbGwgdmVyc2lvbnMgWzMuNTksMy42Mykgb2YgR05VIG1h a2UgdG8gbm90IGV4cG9ydCBhbGwgdmFyaWFibGVzLgotKyMgT3RoZXJ3aXNlIGEgc3lzdGVtIGxp bWl0IChmb3IgU3lzViBhdCBsZWFzdCkgbWF5IGJlIGV4Y2VlZGVkLgotKy5OT0VYUE9SVDoKLWRp ZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9idWlsZC91bml4L01ha2VmaWxlLmFtIHNvY2ktMy4w LjBfdHJlcDMwMC9idWlsZC91bml4L01ha2VmaWxlLmFtCi0tLS0gc29jaS0zLjAuMF80LXBhY2sv YnVpbGQvdW5peC9NYWtlZmlsZS5hbQkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEw MAotKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9idWlsZC91bml4L01ha2VmaWxlLmFtCTIwMDktMDUt MjIgMjI6NTQ6MjAuMDAwMDAwMDAwICswMjAwCi1AQCAtMCwwICsxLDExIEBACi0rIyMgYnVpbGQv dW5peCBzdWItZGlyZWN0b3J5Ci0raW5jbHVkZSAkKHRvcF9zcmNkaXIpL01ha2VmaWxlLmNvbW1v bgotKwotK01BSU5UQUlORVJDTEVBTkZJTEVTID0gTWFrZWZpbGUuaW4KLSsKLSsjRVhUUkFfRElT VF9GT1JfU09DSV9DT01QQVRJQklMSVRZID0gIC5fZmluZC1ib29zdC50Y2wgLl9idWlsZC1teXNx bC50Y2wgLl9idWlsZC1wb3N0Z3Jlc3FsLnRjbCAuX2V4ZWN1dGUudGNsIC5fYnVpbGQtY29yZS50 Y2wgLl9pbnN0YWxsLnRjbCAuX3BhcnNlLXBhcmFtZXRlcnMudGNsCi0rCi0rRVhUUkFfRElTVCA9 IGJ1aWxkLWNvcmUudGNsIGJ1aWxkLW9yYWNsZS50Y2wgYnVpbGQudGNsIGluc3RhbGwudGNsIFwK LSsJcGFyc2UtcGFyYW1ldGVycy50Y2wgZmluZC1ib29zdC50Y2wgYnVpbGQtbXlzcWwudGNsIFwK LSsJYnVpbGQtcG9zdGdyZXNxbC50Y2wgZXhlY3V0ZS50Y2wgXAotKwkkKEVYVFJBX0RJU1RfRk9S X1NPQ0lfQ09NUEFUSUJJTElUWSkKLWRpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9idWlsZC91 bml4L01ha2VmaWxlLmluIHNvY2ktMy4wLjBfdHJlcDMwMC9idWlsZC91bml4L01ha2VmaWxlLmlu Ci0tLS0gc29jaS0zLjAuMF80LXBhY2svYnVpbGQvdW5peC9NYWtlZmlsZS5pbgkxOTcwLTAxLTAx IDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAotKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9idWlsZC91 bml4L01ha2VmaWxlLmluCTIwMDktMDUtMjMgMTA6MDI6MDIuMDAwMDAwMDAwICswMjAwCi1AQCAt MCwwICsxLDM5NCBAQAotKyMgTWFrZWZpbGUuaW4gZ2VuZXJhdGVkIGJ5IGF1dG9tYWtlIDEuMTAu MiBmcm9tIE1ha2VmaWxlLmFtLgotKyMgQGNvbmZpZ3VyZV9pbnB1dEAKLSsKLSsjIENvcHlyaWdo dCAoQykgMTk5NCwgMTk5NSwgMTk5NiwgMTk5NywgMTk5OCwgMTk5OSwgMjAwMCwgMjAwMSwgMjAw MiwKLSsjIDIwMDMsIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDggIEZyZWUgU29mdHdhcmUg Rm91bmRhdGlvbiwgSW5jLgotKyMgVGhpcyBNYWtlZmlsZS5pbiBpcyBmcmVlIHNvZnR3YXJlOyB0 aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCi0rIyBnaXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lv biB0byBjb3B5IGFuZC9vciBkaXN0cmlidXRlIGl0LAotKyMgd2l0aCBvciB3aXRob3V0IG1vZGlm aWNhdGlvbnMsIGFzIGxvbmcgYXMgdGhpcyBub3RpY2UgaXMgcHJlc2VydmVkLgotKwotKyMgVGhp cyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2Vm dWwsCi0rIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFksIHRvIHRoZSBleHRlbnQgcGVybWl0dGVk IGJ5IGxhdzsgd2l0aG91dAotKyMgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFO VEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQQotKyMgUEFSVElDVUxBUiBQVVJQT1NFLgotKwotK0BT RVRfTUFLRUAKLStWUEFUSCA9IEBzcmNkaXJACi0rcGtnZGF0YWRpciA9ICQoZGF0YWRpcikvQFBB Q0tBR0VACi0rcGtnbGliZGlyID0gJChsaWJkaXIpL0BQQUNLQUdFQAotK3BrZ2luY2x1ZGVkaXIg PSAkKGluY2x1ZGVkaXIpL0BQQUNLQUdFQAotK2FtX19jZCA9IENEUEFUSD0iJCR7WlNIX1ZFUlNJ T04rLn0kKFBBVEhfU0VQQVJBVE9SKSIgJiYgY2QKLStpbnN0YWxsX3NoX0RBVEEgPSAkKGluc3Rh bGxfc2gpIC1jIC1tIDY0NAotK2luc3RhbGxfc2hfUFJPR1JBTSA9ICQoaW5zdGFsbF9zaCkgLWMK LStpbnN0YWxsX3NoX1NDUklQVCA9ICQoaW5zdGFsbF9zaCkgLWMKLStJTlNUQUxMX0hFQURFUiA9 ICQoSU5TVEFMTF9EQVRBKQotK3RyYW5zZm9ybSA9ICQocHJvZ3JhbV90cmFuc2Zvcm1fbmFtZSkK LStOT1JNQUxfSU5TVEFMTCA9IDoKLStQUkVfSU5TVEFMTCA9IDoKLStQT1NUX0lOU1RBTEwgPSA6 Ci0rTk9STUFMX1VOSU5TVEFMTCA9IDoKLStQUkVfVU5JTlNUQUxMID0gOgotK1BPU1RfVU5JTlNU QUxMID0gOgotK2J1aWxkX3RyaXBsZXQgPSBAYnVpbGRACi0raG9zdF90cmlwbGV0ID0gQGhvc3RA Ci0rRElTVF9DT01NT04gPSAkKHNyY2RpcikvTWFrZWZpbGUuYW0gJChzcmNkaXIpL01ha2VmaWxl LmluIFwKLSsJJCh0b3Bfc3JjZGlyKS9NYWtlZmlsZS5jb21tb24KLStzdWJkaXIgPSBidWlsZC91 bml4Ci0rQUNMT0NBTF9NNCA9ICQodG9wX3NyY2RpcikvYWNsb2NhbC5tNAotK2FtX19hY2xvY2Fs X200X2RlcHMgPSAkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9ib29zdC5tNCBcCi0rCSQodG9wX3Ny Y2RpcikvY29uZmlnL2F4X215c3FsLm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfb3Jh Y2xlX29jaS5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmlnL2F4X3Bvc3RncmVzcWwubTQgXAot KwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9jcHB1bml0Lm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25m aWcvbGlidG9vbC5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmlnL2x0b3B0aW9ucy5tNCBcCi0r CSQodG9wX3NyY2RpcikvY29uZmlnL2x0c3VnYXIubTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZp Zy9sdHZlcnNpb24ubTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9sdH5vYnNvbGV0ZS5tNCAk KHRvcF9zcmNkaXIpL2NvbmZpZ3VyZS5hYwotK2FtX19jb25maWd1cmVfZGVwcyA9ICQoYW1fX2Fj bG9jYWxfbTRfZGVwcykgJChDT05GSUdVUkVfREVQRU5ERU5DSUVTKSBcCi0rCSQoQUNMT0NBTF9N NCkKLStta2luc3RhbGxkaXJzID0gJChpbnN0YWxsX3NoKSAtZAotK0NPTkZJR19IRUFERVIgPSAk KHRvcF9idWlsZGRpcikvc29jaS9jb25maWcuaAotK0NPTkZJR19DTEVBTl9GSUxFUyA9Ci0rU09V UkNFUyA9Ci0rRElTVF9TT1VSQ0VTID0KLStESVNURklMRVMgPSAkKERJU1RfQ09NTU9OKSAkKERJ U1RfU09VUkNFUykgJChURVhJTkZPUykgJChFWFRSQV9ESVNUKQotK0FDTE9DQUwgPSBAQUNMT0NB TEAKLStBTVRBUiA9IEBBTVRBUkAKLStBUiA9IEBBUkAKLStBVVRPQ09ORiA9IEBBVVRPQ09ORkAK LStBVVRPSEVBREVSID0gQEFVVE9IRUFERVJACi0rQVVUT01BS0UgPSBAQVVUT01BS0VACi0rQVdL ID0gQEFXS0AKLStCT09TVF9DRkxBR1MgPSBAQk9PU1RfQ0ZMQUdTQAotK0JPT1NUX0RBVEVfVElN RV9MSUIgPSBAQk9PU1RfREFURV9USU1FX0xJQkAKLStCT09TVF9GSUxFU1lTVEVNX0xJQiA9IEBC T09TVF9GSUxFU1lTVEVNX0xJQkAKLStCT09TVF9JT1NUUkVBTVNfTElCID0gQEJPT1NUX0lPU1RS RUFNU19MSUJACi0rQk9PU1RfTElCUyA9IEBCT09TVF9MSUJTQAotK0JPT1NUX1BST0dSQU1fT1BU SU9OU19MSUIgPSBAQk9PU1RfUFJPR1JBTV9PUFRJT05TX0xJQkAKLStCT09TVF9SRUdFWF9MSUIg PSBAQk9PU1RfUkVHRVhfTElCQAotK0JPT1NUX1NFUklBTElaQVRJT05fTElCID0gQEJPT1NUX1NF UklBTElaQVRJT05fTElCQAotK0JPT1NUX1NJR05BTFNfTElCID0gQEJPT1NUX1NJR05BTFNfTElC QAotK0JPT1NUX1RIUkVBRF9MSUIgPSBAQk9PU1RfVEhSRUFEX0xJQkAKLStCT09TVF9VTklUX1RF U1RfRlJBTUVXT1JLX0xJQiA9IEBCT09TVF9VTklUX1RFU1RfRlJBTUVXT1JLX0xJQkAKLStCT09T VF9WRVJTSU9OID0gQEJPT1NUX1ZFUlNJT05ACi0rQk9PU1RfV1NFUklBTElaQVRJT05fTElCID0g QEJPT1NUX1dTRVJJQUxJWkFUSU9OX0xJQkAKLStDQyA9IEBDQ0AKLStDQ0RFUE1PREUgPSBAQ0NE RVBNT0RFQAotK0NGTEFHUyA9IEBDRkxBR1NACi0rQ1BQID0gQENQUEAKLStDUFBGTEFHUyA9IEBD UFBGTEFHU0AKLStDUFBVTklUX0NGTEFHUyA9IEBDUFBVTklUX0NGTEFHU0AKLStDUFBVTklUX0NP TkZJRyA9IEBDUFBVTklUX0NPTkZJR0AKLStDUFBVTklUX0xJQlMgPSBAQ1BQVU5JVF9MSUJTQAot K0NQUFVOSVRfVkVSU0lPTiA9IEBDUFBVTklUX1ZFUlNJT05ACi0rQ1hYID0gQENYWEAKLStDWFhD UFAgPSBAQ1hYQ1BQQAotK0NYWERFUE1PREUgPSBAQ1hYREVQTU9ERUAKLStDWFhGTEFHUyA9IEBD WFhGTEFHU0AKLStDWUdQQVRIX1cgPSBAQ1lHUEFUSF9XQAotK0RFRlMgPSBAREVGU0AKLStERVBE SVIgPSBAREVQRElSQAotK0RTWU1VVElMID0gQERTWU1VVElMQAotK0RVTVBCSU4gPSBARFVNUEJJ TkAKLStFQ0hPX0MgPSBARUNIT19DQAotK0VDSE9fTiA9IEBFQ0hPX05ACi0rRUNIT19UID0gQEVD SE9fVEAKLStFR1JFUCA9IEBFR1JFUEAKLStFWEVFWFQgPSBARVhFRVhUQAotK0ZHUkVQID0gQEZH UkVQQAotK0dFTkVSSUNfTElCUkFSWV9WRVJTSU9OID0gQEdFTkVSSUNfTElCUkFSWV9WRVJTSU9O QAotK0dSRVAgPSBAR1JFUEAKLStJTlNUQUxMID0gQElOU1RBTExACi0rSU5TVEFMTF9EQVRBID0g QElOU1RBTExfREFUQUAKLStJTlNUQUxMX1BST0dSQU0gPSBASU5TVEFMTF9QUk9HUkFNQAotK0lO U1RBTExfU0NSSVBUID0gQElOU1RBTExfU0NSSVBUQAotK0lOU1RBTExfU1RSSVBfUFJPR1JBTSA9 IEBJTlNUQUxMX1NUUklQX1BST0dSQU1ACi0rTEQgPSBATERACi0rTERGTEFHUyA9IEBMREZMQUdT QAotK0xJQk9CSlMgPSBATElCT0JKU0AKLStMSUJTID0gQExJQlNACi0rTElCVE9PTCA9IEBMSUJU T09MQAotK0xJUE8gPSBATElQT0AKLStMTl9TID0gQExOX1NACi0rTFRMSUJPQkpTID0gQExUTElC T0JKU0AKLStNQUtFSU5GTyA9IEBNQUtFSU5GT0AKLStNS0RJUl9QID0gQE1LRElSX1BACi0rTVlT UUxfQ0ZMQUdTID0gQE1ZU1FMX0NGTEFHU0AKLStNWVNRTF9DT05GSUcgPSBATVlTUUxfQ09ORklH QAotK01ZU1FMX0RJUlMgPSBATVlTUUxfRElSU0AKLStNWVNRTF9MREZMQUdTID0gQE1ZU1FMX0xE RkxBR1NACi0rTVlTUUxfVkVSU0lPTiA9IEBNWVNRTF9WRVJTSU9OQAotK05NID0gQE5NQAotK05N RURJVCA9IEBOTUVESVRACi0rT0JKRFVNUCA9IEBPQkpEVU1QQAotK09CSkVYVCA9IEBPQkpFWFRA Ci0rT1JBQ0xFX0RJUlMgPSBAT1JBQ0xFX0RJUlNACi0rT1JBQ0xFX09DSV9DRkxBR1MgPSBAT1JB Q0xFX09DSV9DRkxBR1NACi0rT1JBQ0xFX09DSV9MREZMQUdTID0gQE9SQUNMRV9PQ0lfTERGTEFH U0AKLStPUkFDTEVfT0NJX1ZFUlNJT04gPSBAT1JBQ0xFX09DSV9WRVJTSU9OQAotK09UT09MID0g QE9UT09MQAotK09UT09MNjQgPSBAT1RPT0w2NEAKLStQQUNLQUdFID0gQFBBQ0tBR0VACi0rUEFD S0FHRV9CVUdSRVBPUlQgPSBAUEFDS0FHRV9CVUdSRVBPUlRACi0rUEFDS0FHRV9OQU1FID0gQFBB Q0tBR0VfTkFNRUAKLStQQUNLQUdFX1NUUklORyA9IEBQQUNLQUdFX1NUUklOR0AKLStQQUNLQUdF X1RBUk5BTUUgPSBAUEFDS0FHRV9UQVJOQU1FQAotK1BBQ0tBR0VfVkVSU0lPTiA9IEBQQUNLQUdF X1ZFUlNJT05ACi0rUEFUSF9TRVBBUkFUT1IgPSBAUEFUSF9TRVBBUkFUT1JACi0rUEVSTCA9IEBQ RVJMQAotK1BHX0NPTkZJRyA9IEBQR19DT05GSUdACi0rUE9TVEdSRVNRTF9DRkxBR1MgPSBAUE9T VEdSRVNRTF9DRkxBR1NACi0rUE9TVEdSRVNRTF9ESVJTID0gQFBPU1RHUkVTUUxfRElSU0AKLStQ T1NUR1JFU1FMX0xERkxBR1MgPSBAUE9TVEdSRVNRTF9MREZMQUdTQAotK1BPU1RHUkVTUUxfVkVS U0lPTiA9IEBQT1NUR1JFU1FMX1ZFUlNJT05ACi0rUkFOTElCID0gQFJBTkxJQkAKLStSUE1fUkVM RUFTRSA9IEBSUE1fUkVMRUFTRUAKLStTRUQgPSBAU0VEQAotK1NFVF9NQUtFID0gQFNFVF9NQUtF QAotK1NIRUxMID0gQFNIRUxMQAotK1NPQ0lfSEVBREVSU19CVVJJRUQgPSBAU09DSV9IRUFERVJT X0JVUklFREAKLStTT0NJX01ZU1FMX0hFQURFUlNfQlVSSUVEID0gQFNPQ0lfTVlTUUxfSEVBREVS U19CVVJJRURACi0rU09DSV9QT1NUR1JFU1FMX0hFQURFUlNfQlVSSUVEID0gQFNPQ0lfUE9TVEdS RVNRTF9IRUFERVJTX0JVUklFREAKLStTVFJJUCA9IEBTVFJJUEAKLStVUExPQURfQ09NTUFORCA9 IEBVUExPQURfQ09NTUFOREAKLStWRVJTSU9OID0gQFZFUlNJT05ACi0rYWJzX2J1aWxkZGlyID0g QGFic19idWlsZGRpckAKLSthYnNfc3JjZGlyID0gQGFic19zcmNkaXJACi0rYWJzX3RvcF9idWls ZGRpciA9IEBhYnNfdG9wX2J1aWxkZGlyQAotK2Fic190b3Bfc3JjZGlyID0gQGFic190b3Bfc3Jj ZGlyQAotK2FjX2N0X0NDID0gQGFjX2N0X0NDQAotK2FjX2N0X0NYWCA9IEBhY19jdF9DWFhACi0r YWNfY3RfRFVNUEJJTiA9IEBhY19jdF9EVU1QQklOQAotK2FtX19pbmNsdWRlID0gQGFtX19pbmNs dWRlQAotK2FtX19sZWFkaW5nX2RvdCA9IEBhbV9fbGVhZGluZ19kb3RACi0rYW1fX3F1b3RlID0g QGFtX19xdW90ZUAKLSthbV9fdGFyID0gQGFtX190YXJACi0rYW1fX3VudGFyID0gQGFtX191bnRh ckAKLStiaW5kaXIgPSBAYmluZGlyQAotK2J1aWxkID0gQGJ1aWxkQAotK2J1aWxkX2FsaWFzID0g QGJ1aWxkX2FsaWFzQAotK2J1aWxkX2NwdSA9IEBidWlsZF9jcHVACi0rYnVpbGRfb3MgPSBAYnVp bGRfb3NACi0rYnVpbGRfdmVuZG9yID0gQGJ1aWxkX3ZlbmRvckAKLStidWlsZGRpciA9IEBidWls ZGRpckAKLStkYXRhZGlyID0gQGRhdGFkaXJACi0rZGF0YXJvb3RkaXIgPSBAZGF0YXJvb3RkaXJA Ci0rZGlmZl9vayA9IEBkaWZmX29rQAotK2RvY2RpciA9IEBkb2NkaXJACi0rZG94eWdlbl9vayA9 IEBkb3h5Z2VuX29rQAotK2R2aWRpciA9IEBkdmlkaXJACi0rZHZpcHNfb2sgPSBAZHZpcHNfb2tA Ci0rZXhlY19wcmVmaXggPSBAZXhlY19wcmVmaXhACi0rZ3Nfb2sgPSBAZ3Nfb2tACi0raG9zdCA9 IEBob3N0QAotK2hvc3RfYWxpYXMgPSBAaG9zdF9hbGlhc0AKLStob3N0X2NwdSA9IEBob3N0X2Nw dUAKLStob3N0X29zID0gQGhvc3Rfb3NACi0raG9zdF92ZW5kb3IgPSBAaG9zdF92ZW5kb3JACi0r aHRtbGRpciA9IEBodG1sZGlyQAotK2luY2x1ZGVkaXIgPSBAaW5jbHVkZWRpckAKLStpbmZvZGly ID0gQGluZm9kaXJACi0raW5zdGFsbF9zaCA9IEBpbnN0YWxsX3NoQAotK2xhdGV4X29rID0gQGxh dGV4X29rQAotK2xpYmRpciA9IEBsaWJkaXJACi0rbGliZXhlY2RpciA9IEBsaWJleGVjZGlyQAot K2xvY2FsZWRpciA9IEBsb2NhbGVkaXJACi0rbG9jYWxzdGF0ZWRpciA9IEBsb2NhbHN0YXRlZGly QAotK2x0X0VDSE8gPSBAbHRfRUNIT0AKLSttYW5kaXIgPSBAbWFuZGlyQAotK21rZGlyX3AgPSBA bWtkaXJfcEAKLStvbGRpbmNsdWRlZGlyID0gQG9sZGluY2x1ZGVkaXJACi0rcGRmZGlyID0gQHBk ZmRpckAKLStwcmVmaXggPSBAcHJlZml4QAotK3Byb2dyYW1fdHJhbnNmb3JtX25hbWUgPSBAcHJv Z3JhbV90cmFuc2Zvcm1fbmFtZUAKLStwc2RpciA9IEBwc2RpckAKLStzYmluZGlyID0gQHNiaW5k aXJACi0rc2VkX29rID0gQHNlZF9va0AKLStzaGFyZWRzdGF0ZWRpciA9IEBzaGFyZWRzdGF0ZWRp ckAKLStzcmNkaXIgPSBAc3JjZGlyQAotK3N5c2NvbmZkaXIgPSBAc3lzY29uZmRpckAKLSt0YXJn ZXRfYWxpYXMgPSBAdGFyZ2V0X2FsaWFzQAotK3RvcF9idWlsZF9wcmVmaXggPSBAdG9wX2J1aWxk X3ByZWZpeEAKLSt0b3BfYnVpbGRkaXIgPSBAdG9wX2J1aWxkZGlyQAotK3RvcF9zcmNkaXIgPSBA dG9wX3NyY2RpckAKLStBTV9DUFBGTEFHUyA9IC1JJCh0b3BfYnVpbGRkaXIpIC1JJCh0b3Bfc3Jj ZGlyKQotK01BSU5UQUlORVJDTEVBTkZJTEVTID0gTWFrZWZpbGUuaW4KLSsKLSsjRVhUUkFfRElT VF9GT1JfU09DSV9DT01QQVRJQklMSVRZID0gIC5fZmluZC1ib29zdC50Y2wgLl9idWlsZC1teXNx bC50Y2wgLl9idWlsZC1wb3N0Z3Jlc3FsLnRjbCAuX2V4ZWN1dGUudGNsIC5fYnVpbGQtY29yZS50 Y2wgLl9pbnN0YWxsLnRjbCAuX3BhcnNlLXBhcmFtZXRlcnMudGNsCi0rRVhUUkFfRElTVCA9IGJ1 aWxkLWNvcmUudGNsIGJ1aWxkLW9yYWNsZS50Y2wgYnVpbGQudGNsIGluc3RhbGwudGNsIFwKLSsJ cGFyc2UtcGFyYW1ldGVycy50Y2wgZmluZC1ib29zdC50Y2wgYnVpbGQtbXlzcWwudGNsIFwKLSsJ YnVpbGQtcG9zdGdyZXNxbC50Y2wgZXhlY3V0ZS50Y2wgXAotKwkkKEVYVFJBX0RJU1RfRk9SX1NP Q0lfQ09NUEFUSUJJTElUWSkKLSsKLSthbGw6IGFsbC1hbQotKwotKy5TVUZGSVhFUzoKLSskKHNy Y2RpcikvTWFrZWZpbGUuaW46ICAkKHNyY2RpcikvTWFrZWZpbGUuYW0gJCh0b3Bfc3JjZGlyKS9N YWtlZmlsZS5jb21tb24gJChhbV9fY29uZmlndXJlX2RlcHMpCi0rCUBmb3IgZGVwIGluICQ/OyBk byBcCi0rCSAgY2FzZSAnJChhbV9fY29uZmlndXJlX2RlcHMpJyBpbiBcCi0rCSAgICAqJCRkZXAq KSBcCi0rCSAgICAgICggY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxB R1MpIGFtLS1yZWZyZXNoICkgXAotKwkgICAgICAgICYmIHsgaWYgdGVzdCAtZiAkQDsgdGhlbiBl eGl0IDA7IGVsc2UgYnJlYWs7IGZpOyB9OyBcCi0rCSAgICAgIGV4aXQgMTs7IFwKLSsJICBlc2Fj OyBcCi0rCWRvbmU7IFwKLSsJZWNobyAnIGNkICQodG9wX3NyY2RpcikgJiYgJChBVVRPTUFLRSkg LS1nbnUgIGJ1aWxkL3VuaXgvTWFrZWZpbGUnOyBcCi0rCWNkICQodG9wX3NyY2RpcikgJiYgXAot KwkgICQoQVVUT01BS0UpIC0tZ251ICBidWlsZC91bml4L01ha2VmaWxlCi0rLlBSRUNJT1VTOiBN YWtlZmlsZQotK01ha2VmaWxlOiAkKHNyY2RpcikvTWFrZWZpbGUuaW4gJCh0b3BfYnVpbGRkaXIp L2NvbmZpZy5zdGF0dXMKLSsJQGNhc2UgJyQ/JyBpbiBcCi0rCSAgKmNvbmZpZy5zdGF0dXMqKSBc Ci0rCSAgICBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0t LXJlZnJlc2g7OyBcCi0rCSAgKikgXAotKwkgICAgZWNobyAnIGNkICQodG9wX2J1aWxkZGlyKSAm JiAkKFNIRUxMKSAuL2NvbmZpZy5zdGF0dXMgJChzdWJkaXIpLyRAICQoYW1fX2RlcGZpbGVzX21h eWJlKSc7IFwKLSsJICAgIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKFNIRUxMKSAuL2NvbmZpZy5z dGF0dXMgJChzdWJkaXIpLyRAICQoYW1fX2RlcGZpbGVzX21heWJlKTs7IFwKLSsJZXNhYzsKLSsK LSskKHRvcF9idWlsZGRpcikvY29uZmlnLnN0YXR1czogJCh0b3Bfc3JjZGlyKS9jb25maWd1cmUg JChDT05GSUdfU1RBVFVTX0RFUEVOREVOQ0lFUykKLSsJY2QgJCh0b3BfYnVpbGRkaXIpICYmICQo TUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCi0rCi0rJCh0b3Bfc3JjZGlyKS9jb25m aWd1cmU6ICAkKGFtX19jb25maWd1cmVfZGVwcykKLSsJY2QgJCh0b3BfYnVpbGRkaXIpICYmICQo TUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCi0rJChBQ0xPQ0FMX000KTogICQoYW1f X2FjbG9jYWxfbTRfZGVwcykKLSsJY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9N QUtFRkxBR1MpIGFtLS1yZWZyZXNoCi0rCi0rbW9zdGx5Y2xlYW4tbGlidG9vbDoKLSsJLXJtIC1m ICoubG8KLSsKLStjbGVhbi1saWJ0b29sOgotKwktcm0gLXJmIC5saWJzIF9saWJzCi0rdGFnczog VEFHUwotK1RBR1M6Ci0rCi0rY3RhZ3M6IENUQUdTCi0rQ1RBR1M6Ci0rCi0rCi0rZGlzdGRpcjog JChESVNURklMRVMpCi0rCUBzcmNkaXJzdHJpcD1gZWNobyAiJChzcmNkaXIpIiB8IHNlZCAncy9b XS5bXiQkXFwqXS9cXFxcJi9nJ2A7IFwKLSsJdG9wc3JjZGlyc3RyaXA9YGVjaG8gIiQodG9wX3Ny Y2RpcikiIHwgc2VkICdzL1tdLlteJCRcXCpdL1xcXFwmL2cnYDsgXAotKwlsaXN0PSckKERJU1RG SUxFUyknOyBcCi0rCSAgZGlzdF9maWxlcz1gZm9yIGZpbGUgaW4gJCRsaXN0OyBkbyBlY2hvICQk ZmlsZTsgZG9uZSB8IFwKLSsJICBzZWQgLWUgInN8XiQkc3JjZGlyc3RyaXAvfHw7dCIgXAotKwkg ICAgICAtZSAic3xeJCR0b3BzcmNkaXJzdHJpcC98JCh0b3BfYnVpbGRkaXIpL3w7dCJgOyBcCi0r CWNhc2UgJCRkaXN0X2ZpbGVzIGluIFwKLSsJICAqLyopICQoTUtESVJfUCkgYGVjaG8gIiQkZGlz dF9maWxlcyIgfCBcCi0rCQkJICAgc2VkICcvXC8vIWQ7c3xefCQoZGlzdGRpcikvfDtzLC9bXi9d KiQkLCwnIHwgXAotKwkJCSAgIHNvcnQgLXVgIDs7IFwKLSsJZXNhYzsgXAotKwlmb3IgZmlsZSBp biAkJGRpc3RfZmlsZXM7IGRvIFwKLSsJICBpZiB0ZXN0IC1mICQkZmlsZSB8fCB0ZXN0IC1kICQk ZmlsZTsgdGhlbiBkPS47IGVsc2UgZD0kKHNyY2Rpcik7IGZpOyBcCi0rCSAgaWYgdGVzdCAtZCAk JGQvJCRmaWxlOyB0aGVuIFwKLSsJICAgIGRpcj1gZWNobyAiLyQkZmlsZSIgfCBzZWQgLWUgJ3Ms L1teL10qJCQsLCdgOyBcCi0rCSAgICBpZiB0ZXN0IC1kICQoc3JjZGlyKS8kJGZpbGUgJiYgdGVz dCAkJGQgIT0gJChzcmNkaXIpOyB0aGVuIFwKLSsJICAgICAgY3AgLXBSICQoc3JjZGlyKS8kJGZp bGUgJChkaXN0ZGlyKSQkZGlyIHx8IGV4aXQgMTsgXAotKwkgICAgZmk7IFwKLSsJICAgIGNwIC1w UiAkJGQvJCRmaWxlICQoZGlzdGRpcikkJGRpciB8fCBleGl0IDE7IFwKLSsJICBlbHNlIFwKLSsJ ICAgIHRlc3QgLWYgJChkaXN0ZGlyKS8kJGZpbGUgXAotKwkgICAgfHwgY3AgLXAgJCRkLyQkZmls ZSAkKGRpc3RkaXIpLyQkZmlsZSBcCi0rCSAgICB8fCBleGl0IDE7IFwKLSsJICBmaTsgXAotKwlk b25lCi0rY2hlY2stYW06IGFsbC1hbQotK2NoZWNrOiBjaGVjay1hbQotK2FsbC1hbTogTWFrZWZp bGUKLStpbnN0YWxsZGlyczoKLStpbnN0YWxsOiBpbnN0YWxsLWFtCi0raW5zdGFsbC1leGVjOiBp bnN0YWxsLWV4ZWMtYW0KLStpbnN0YWxsLWRhdGE6IGluc3RhbGwtZGF0YS1hbQotK3VuaW5zdGFs bDogdW5pbnN0YWxsLWFtCi0rCi0raW5zdGFsbC1hbTogYWxsLWFtCi0rCUAkKE1BS0UpICQoQU1f TUFLRUZMQUdTKSBpbnN0YWxsLWV4ZWMtYW0gaW5zdGFsbC1kYXRhLWFtCi0rCi0raW5zdGFsbGNo ZWNrOiBpbnN0YWxsY2hlY2stYW0KLStpbnN0YWxsLXN0cmlwOgotKwkkKE1BS0UpICQoQU1fTUFL RUZMQUdTKSBJTlNUQUxMX1BST0dSQU09IiQoSU5TVEFMTF9TVFJJUF9QUk9HUkFNKSIgXAotKwkg IGluc3RhbGxfc2hfUFJPR1JBTT0iJChJTlNUQUxMX1NUUklQX1BST0dSQU0pIiBJTlNUQUxMX1NU UklQX0ZMQUc9LXMgXAotKwkgIGB0ZXN0IC16ICckKFNUUklQKScgfHwgXAotKwkgICAgZWNobyAi SU5TVEFMTF9QUk9HUkFNX0VOVj1TVFJJUFBST0c9JyQoU1RSSVApJyJgIGluc3RhbGwKLSttb3N0 bHljbGVhbi1nZW5lcmljOgotKwotK2NsZWFuLWdlbmVyaWM6Ci0rCi0rZGlzdGNsZWFuLWdlbmVy aWM6Ci0rCS10ZXN0IC16ICIkKENPTkZJR19DTEVBTl9GSUxFUykiIHx8IHJtIC1mICQoQ09ORklH X0NMRUFOX0ZJTEVTKQotKwotK21haW50YWluZXItY2xlYW4tZ2VuZXJpYzoKLSsJQGVjaG8gIlRo aXMgY29tbWFuZCBpcyBpbnRlbmRlZCBmb3IgbWFpbnRhaW5lcnMgdG8gdXNlIgotKwlAZWNobyAi aXQgZGVsZXRlcyBmaWxlcyB0aGF0IG1heSByZXF1aXJlIHNwZWNpYWwgdG9vbHMgdG8gcmVidWls ZC4iCi0rCS10ZXN0IC16ICIkKE1BSU5UQUlORVJDTEVBTkZJTEVTKSIgfHwgcm0gLWYgJChNQUlO VEFJTkVSQ0xFQU5GSUxFUykKLStjbGVhbjogY2xlYW4tYW0KLSsKLStjbGVhbi1hbTogY2xlYW4t Z2VuZXJpYyBjbGVhbi1saWJ0b29sIG1vc3RseWNsZWFuLWFtCi0rCi0rZGlzdGNsZWFuOiBkaXN0 Y2xlYW4tYW0KLSsJLXJtIC1mIE1ha2VmaWxlCi0rZGlzdGNsZWFuLWFtOiBjbGVhbi1hbSBkaXN0 Y2xlYW4tZ2VuZXJpYwotKwotK2R2aTogZHZpLWFtCi0rCi0rZHZpLWFtOgotKwotK2h0bWw6IGh0 bWwtYW0KLSsKLStpbmZvOiBpbmZvLWFtCi0rCi0raW5mby1hbToKLSsKLStpbnN0YWxsLWRhdGEt YW06Ci0rCi0raW5zdGFsbC1kdmk6IGluc3RhbGwtZHZpLWFtCi0rCi0raW5zdGFsbC1leGVjLWFt OgotKwotK2luc3RhbGwtaHRtbDogaW5zdGFsbC1odG1sLWFtCi0rCi0raW5zdGFsbC1pbmZvOiBp bnN0YWxsLWluZm8tYW0KLSsKLStpbnN0YWxsLW1hbjoKLSsKLStpbnN0YWxsLXBkZjogaW5zdGFs bC1wZGYtYW0KLSsKLStpbnN0YWxsLXBzOiBpbnN0YWxsLXBzLWFtCi0rCi0raW5zdGFsbGNoZWNr LWFtOgotKwotK21haW50YWluZXItY2xlYW46IG1haW50YWluZXItY2xlYW4tYW0KLSsJLXJtIC1m IE1ha2VmaWxlCi0rbWFpbnRhaW5lci1jbGVhbi1hbTogZGlzdGNsZWFuLWFtIG1haW50YWluZXIt Y2xlYW4tZ2VuZXJpYwotKwotK21vc3RseWNsZWFuOiBtb3N0bHljbGVhbi1hbQotKwotK21vc3Rs eWNsZWFuLWFtOiBtb3N0bHljbGVhbi1nZW5lcmljIG1vc3RseWNsZWFuLWxpYnRvb2wKLSsKLStw ZGY6IHBkZi1hbQotKwotK3BkZi1hbToKLSsKLStwczogcHMtYW0KLSsKLStwcy1hbToKLSsKLSt1 bmluc3RhbGwtYW06Ci0rCi0rLk1BS0U6IGluc3RhbGwtYW0gaW5zdGFsbC1zdHJpcAotKwotKy5Q SE9OWTogYWxsIGFsbC1hbSBjaGVjayBjaGVjay1hbSBjbGVhbiBjbGVhbi1nZW5lcmljIGNsZWFu LWxpYnRvb2wgXAotKwlkaXN0Y2xlYW4gZGlzdGNsZWFuLWdlbmVyaWMgZGlzdGNsZWFuLWxpYnRv b2wgZGlzdGRpciBkdmkgXAotKwlkdmktYW0gaHRtbCBodG1sLWFtIGluZm8gaW5mby1hbSBpbnN0 YWxsIGluc3RhbGwtYW0gXAotKwlpbnN0YWxsLWRhdGEgaW5zdGFsbC1kYXRhLWFtIGluc3RhbGwt ZHZpIGluc3RhbGwtZHZpLWFtIFwKLSsJaW5zdGFsbC1leGVjIGluc3RhbGwtZXhlYy1hbSBpbnN0 YWxsLWh0bWwgaW5zdGFsbC1odG1sLWFtIFwKLSsJaW5zdGFsbC1pbmZvIGluc3RhbGwtaW5mby1h bSBpbnN0YWxsLW1hbiBpbnN0YWxsLXBkZiBcCi0rCWluc3RhbGwtcGRmLWFtIGluc3RhbGwtcHMg aW5zdGFsbC1wcy1hbSBpbnN0YWxsLXN0cmlwIFwKLSsJaW5zdGFsbGNoZWNrIGluc3RhbGxjaGVj ay1hbSBpbnN0YWxsZGlycyBtYWludGFpbmVyLWNsZWFuIFwKLSsJbWFpbnRhaW5lci1jbGVhbi1n ZW5lcmljIG1vc3RseWNsZWFuIG1vc3RseWNsZWFuLWdlbmVyaWMgXAotKwltb3N0bHljbGVhbi1s aWJ0b29sIHBkZiBwZGYtYW0gcHMgcHMtYW0gdW5pbnN0YWxsIHVuaW5zdGFsbC1hbQotKwotK0BT RVRfTUFLRUAKLSsjIFRlbGwgdmVyc2lvbnMgWzMuNTksMy42Mykgb2YgR05VIG1ha2UgdG8gbm90 IGV4cG9ydCBhbGwgdmFyaWFibGVzLgotKyMgT3RoZXJ3aXNlIGEgc3lzdGVtIGxpbWl0IChmb3Ig U3lzViBhdCBsZWFzdCkgbWF5IGJlIGV4Y2VlZGVkLgotKy5OT0VYUE9SVDoKLWRpZmYgLU51ciBz b2NpLTMuMC4wXzQtcGFjay9jb25maWcvYXhfYm9vc3QubTQgc29jaS0zLjAuMF90cmVwMzAwL2Nv bmZpZy9heF9ib29zdC5tNAotLS0tIHNvY2ktMy4wLjBfNC1wYWNrL2NvbmZpZy9heF9ib29zdC5t NAkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAotKysrIHNvY2ktMy4wLjBfdHJl cDMwMC9jb25maWcvYXhfYm9vc3QubTQJMjAwOS0wNS0yMiAyMjo1NDozNy4wMDAwMDAwMDAgKzAy MDAKLUBAIC0wLDAgKzEsNTM0IEBACi0rZG5sIEBzeW5vcHNpcyBBWF9CT09TVChbTUlOSU1VTS1W RVJTSU9OXSwgW0FDVElPTi1JRi1GT1VORF0sIFtBQ1RJT04tSUYtTk9ULUZPVU5EXSkKLStkbmwK LStkbmwgVGVzdCBmb3IgdGhlIEJvb3N0IEMrKyBsaWJyYXJpZXMgb2YgYSBwYXJ0aWN1bGFyIHZl cnNpb24gKG9yIG5ld2VyKQotK2RubAotK2RubCBJZiBubyBwYXRoIHRvIHRoZSBpbnN0YWxsZWQg Ym9vc3QgbGlicmFyeSBpcyBnaXZlbiB0aGUgbWFjcm8KLStkbmwgc2VhcmNocyB1bmRlciAvdXNy LCAvdXNyL2xvY2FsLCBhbmQgL29wdCwgYW5kIGV2YWx1YXRlcyB0aGUKLStkbmwgJEJPT1NUX1JP T1QgZW52aXJvbm1lbnQgdmFyaWFibGUuCi0rZG5sCi0rZG5sIFRoaXMgbWFjcm8gY2FsbHM6Ci0r ZG5sCi0rZG5sICAgQUNfU1VCU1QoQk9PU1RfQ0ZMQUdTKSAvIEFDX1NVQlNUKEJPT1NUX0xJQlMp Ci0rZG5sICAgQUNfU1VCU1QoQk9PU1RfRklMRVNZU1RFTV9MSUIpCi0rZG5sICAgQUNfU1VCU1Qo Qk9PU1RfUFJPR1JBTV9PUFRJT05TX0xJQikKLStkbmwgICBBQ19TVUJTVChCT09TVF9USFJFQURf TElCKQotK2RubCAgIEFDX1NVQlNUKEJPT1NUX0lPU1RSRUFNU19MSUIpCi0rZG5sICAgQUNfU1VC U1QoQk9PU1RfU0VSSUFMSVpBVElPTl9MSUIpCi0rZG5sICAgQUNfU1VCU1QoQk9PU1RfV1NFUklB TElaQVRJT05fTElCKQotK2RubCAgIEFDX1NVQlNUKEJPT1NUX1NJR05BTFNfTElCKQotK2RubCAg IEFDX1NVQlNUKEJPT1NUX0RBVEVfVElNRV9MSUIpCi0rZG5sICAgQUNfU1VCU1QoQk9PU1RfUkVH RVhfTElCKQotK2RubCAgIEFDX1NVQlNUKEJPT1NUX1VOSVRfVEVTVF9GUkFNRVdPUktfTElCKQot K2RubAotK2RubCBBbmQgc2V0czoKLStkbmwKLStkbmwgICBIQVZFX0JPT1NUCi0rZG5sICAgSEFW RV9CT09TVF9GSUxFU1lTVEVNCi0rZG5sICAgSEFWRV9CT09TVF9QUk9HUkFNX09QVElPTlMKLStk bmwgICBIQVZFX0JPT1NUX1RIUkVBRAotK2RubCAgIEhBVkVfQk9PU1RfSU9TVFJFQU1TCi0rZG5s ICAgSEFWRV9CT09TVF9TRVJJQUxJWkFUSU9OCi0rZG5sICAgSEFWRV9CT09TVF9TSUdOQUxTCi0r ZG5sICAgSEFWRV9CT09TVF9EQVRFX1RJTUUKLStkbmwgICBIQVZFX0JPT1NUX1JFR0VYCi0rZG5s ICAgSEFWRV9CT09TVF9VTklUX1RFU1RfRlJBTUVXT1JLCi0rZG5sCi0rZG5sIEBjYXRlZ29yeSBJ bnN0YWxsZWRQYWNrYWdlcwotK2RubCBAYXV0aG9yIFRob21hcyBQb3JzY2hiZXJnIDx0aG9tYXNA cmFuZHNwcmluZ2VyLmRlPgotK2RubCBAdmVyc2lvbiAyMDA2LTAxLTAyCi0rZG5sIEBsaWNlbnNl IEFsbFBlcm1pc3NpdmUKLSsKLStBQ19ERUZVTihbQVhfQk9PU1RdLAotK1sKLSsgICAgQUNfQVJH X1dJVEgoW2Jvb3N0XSwKLSsgICAgICAgICAgICAgICAgQUNfSEVMUF9TVFJJTkcoWy0td2l0aC1i b29zdD1ESVJdLAotKyAgICAgICAgICAgICAgICBbdXNlIGJvb3N0IChkZWZhdWx0IGlzIE5PKSAs IHNwZWNpZnkgdGhlIHJvb3QgZGlyZWN0b3J5IGZvciBib29zdCBsaWJyYXJ5IChvcHRpb25hbCld KSwKLSsgICAgICAgICAgICAgICAgWwotKyAgICAgICAgICAgICAgICBpZiB0ZXN0ICIkd2l0aHZh bCIgPSAibm8iOyB0aGVuCi0rCQkgICAgICAgICAgICB3YW50X2Jvb3N0PSJubyIKLSsgICAgICAg ICAgICAgICAgZWxpZiB0ZXN0ICIkd2l0aHZhbCIgPSAieWVzIjsgdGhlbgotKyAgICAgICAgICAg ICAgICAgICAgd2FudF9ib29zdD0ieWVzIgotKyAgICAgICAgICAgICAgICAgICAgYWNfYm9vc3Rf cGF0aD0iIgotKyAgICAgICAgICAgICAgICBlbHNlCi0rCQkJICAgICAgICB3YW50X2Jvb3N0PSJ5 ZXMiCi0rICAgICAgICAgICAgCQlhY19ib29zdF9wYXRoPSIkd2l0aHZhbCIKLSsJCSAgICAgICAg ZmkKLSsgICAgICAgICAgICAJXSwKLSsgICAgICAgICAgICAgICAgW3dhbnRfYm9vc3Q9InllcyJd KQotKwotKyMgICAgQUNfQ0FOT05JQ0FMX0JVSUxECi0rQk9PU1RfTURXX1ZFUlNJT049IjEtMzMt MSIKLStCT09TVExJQl9NRFdfVkVSU0lPTj0iMV8zM18xIgotKwotKwlpZiB0ZXN0ICJ4JHdhbnRf Ym9vc3QiID0gInh5ZXMiOyB0aGVuCi0rCQlib29zdF9saWJfdmVyc2lvbl9yZXE9aWZlbHNlKFsk MV0sICwxLjIwLjAsJDEpCi0rCQlib29zdF9saWJfdmVyc2lvbl9yZXFfc2hvcnRlbj1gZXhwciAk Ym9vc3RfbGliX3ZlcnNpb25fcmVxIDogJ1woW1swLTldXSpcLltbMC05XV0qXCknYAotKwkJYm9v c3RfbGliX3ZlcnNpb25fcmVxX21ham9yPWBleHByICRib29zdF9saWJfdmVyc2lvbl9yZXEgOiAn XChbWzAtOV1dKlwpJ2AKLSsJCWJvb3N0X2xpYl92ZXJzaW9uX3JlcV9taW5vcj1gZXhwciAkYm9v c3RfbGliX3ZlcnNpb25fcmVxIDogJ1tbMC05XV0qXC5cKFtbMC05XV0qXCknYAotKwkJYm9vc3Rf bGliX3ZlcnNpb25fcmVxX3N1Yl9taW5vcj1gZXhwciAkYm9vc3RfbGliX3ZlcnNpb25fcmVxIDog J1tbMC05XV0qXC5bWzAtOV1dKlwuXChbWzAtOV1dKlwpJ2AKLSsJCWlmIHRlc3QgIngkYm9vc3Rf bGliX3ZlcnNpb25fcmVxX3N1Yl9taW5vciIgPSAieCIgOyB0aGVuCi0rCQkJYm9vc3RfbGliX3Zl cnNpb25fcmVxX3N1Yl9taW5vcj0iMCIKLSsgICAgCWZpCi0rCQlXQU5UX0JPT1NUX1ZFUlNJT049 YGV4cHIgJGJvb3N0X2xpYl92ZXJzaW9uX3JlcV9tYWpvciBcKiAxMDAwMDAgXCsgICRib29zdF9s aWJfdmVyc2lvbl9yZXFfbWlub3IgXCogMTAwIFwrICRib29zdF9saWJfdmVyc2lvbl9yZXFfc3Vi X21pbm9yYAotKwkJQUNfTVNHX0NIRUNLSU5HKGZvciBib29zdGxpYiA+PSAkYm9vc3RfbGliX3Zl cnNpb25fcmVxKQotKwkJc3VjY2VlZGVkPW5vCi0rCi0rCQlkbmwgZmlyc3Qgd2UgY2hlY2sgdGhl IHN5c3RlbSBsb2NhdGlvbiBmb3IgYm9vc3QgbGlicmFyaWVzCi0rCQlkbmwgdGhpcyBsb2NhdGlv biBpcyBjaG9zZW4gaWYgYm9vc3QgbGlicmFyaWVzIGFyZSBpbnN0YWxsZWQgCi0rCQlkbmwgd2l0 aCB0aGUgLS1sYXlvdXQ9c3lzdGVtIG9wdGlvbgotKwkJZG5sIG9yIGlmIHlvdSBpbnN0YWxsIGJv b3N0IHdpdGggUlBNCi0rCQlpZiB0ZXN0IC1kIC9saWI2NDsgdGhlbgotKwkJCUJPT1NUX0xJQkRJ UlRZUEU9ImxpYjY0IgotKwkJZWxzZQotKwkJCUJPT1NUX0xJQkRJUlRZUEU9ImxpYiIKLSsJCWZp Ci0rCQlpZiB0ZXN0ICIkYWNfYm9vc3RfcGF0aCIgIT0gIiI7IHRoZW4KLSsJCQlpZiB0ZXN0ICIk Qk9PU1RfTElCRElSVFlQRSIgPT0gImxpYjY0IjsgdGhlbgotKwkJCQlpZiB0ZXN0IC1kICIkYWNf Ym9vc3RfcGF0aC8kQk9PU1RfTElCRElSVFlQRSIgJiYgdGVzdCAtciAiJGFjX2Jvb3N0X3BhdGgv JEJPT1NUX0xJQkRJUlRZUEUiOyB0aGVuCi0rCSAgICAgICAgICAgICAgICBCT09TVF9MSUJTPSIt TCRhY19ib29zdF9wYXRoLyRCT09TVF9MSUJESVJUWVBFIgotKwkJCQllbHNlCi0rICAgICAgICAg ICAgICAgICAgICBCT09TVF9MSUJTPSItTCRhY19ib29zdF9wYXRoL2xpYiIKLSsJCQkJZmkKLSsJ CQllbHNlCi0rCQkJCUJPT1NUX0xJQlM9Ii1MJGFjX2Jvb3N0X3BhdGgvbGliIgotKwkJCWZpCi0r CQkJQk9PU1RfQ0ZMQUdTPSItSSRhY19ib29zdF9wYXRoL2luY2x1ZGUiCi0rCQllbHNlCi0rCQkJ Zm9yIGFjX2Jvb3N0X3BhdGhfdG1wIGluIC91c3IgL3Vzci9sb2NhbCAvb3B0IC9uYXN0b29scy9i b29zdCA7IGRvCi0rCQkJCWlmIHRlc3QgLWQgIiRhY19ib29zdF9wYXRoX3RtcC9pbmNsdWRlL2Jv b3N0IiAmJiB0ZXN0IC1yICIkYWNfYm9vc3RfcGF0aF90bXAvaW5jbHVkZS9ib29zdCI7IHRoZW4K LSsJCQkJCUJPT1NUX0xJQlM9Ii1MJGFjX2Jvb3N0X3BhdGhfdG1wLyRCT09TVF9MSUJESVJUWVBF IgotKwkJCQkJQk9PU1RfQ0ZMQUdTPSItSSRhY19ib29zdF9wYXRoX3RtcC9pbmNsdWRlIgotKwkJ CQkJYnJlYWs7Ci0rCQkJCWZpCi0rCQkJCWlmIHRlc3QgLWQgIiRhY19ib29zdF9wYXRoX3RtcC9p bmNsdWRlL2Jvb3N0LSRCT09TVF9NRFdfVkVSU0lPTi9ib29zdCIgJiYgdGVzdCAtciAiJGFjX2Jv b3N0X3BhdGhfdG1wL2luY2x1ZGUvYm9vc3QtJEJPT1NUX01EV19WRVJTSU9OL2Jvb3N0IjsgdGhl bgotKwkJCQkJQk9PU1RfTElCUz0iLUwkYWNfYm9vc3RfcGF0aF90bXAvJEJPT1NUX0xJQkRJUlRZ UEUiCi0rCQkJCQlCT09TVF9DRkxBR1M9Ii1JJGFjX2Jvb3N0X3BhdGhfdG1wL2luY2x1ZGUvYm9v c3QtJEJPT1NUX01EV19WRVJTSU9OIgotKwkJCQotKwkJCQkJZG5sIEhhY2sgZm9yIHdyb25nbHkg aW5zdGFsbGVkIEJvb3N0IGxpYnJhcmllcyAoQU1ENjQgbGlicmFyaWVzIGluc3RhbGxlZCBpbiBi b29zdC9saWIgZGlyZWN0b3J5KQotKwkJCQkJaWYgdGVzdCAtZCAiJGFjX2Jvb3N0X3BhdGhfdG1w L2xpYiIgJiYgdGVzdCAtciAiJGFjX2Jvb3N0X3BhdGhfdG1wL2xpYiIgJiYgdGVzdCAhIC1kICIk YWNfYm9vc3RfcGF0aF90bXAvbGliNjQiOyB0aGVuCi0rCQkJCQkJQk9PU1RfTElCUz0iLUwkYWNf Ym9vc3RfcGF0aF90bXAvbGliIgotKwkJCQkJCWVjaG8gIkhhY2s6ICRCT09TVF9MSUJTIgotKwkJ CQkJZmkKLSsJCQkJCWJyZWFrOwotKwkJCQlmaQotKwkJCWRvbmUKLSsJCWZpCi0rCi0rCQlDUFBG TEFHU19TQVZFRD0iJENQUEZMQUdTIgotKwkJQ1BQRkxBR1M9IiRDUFBGTEFHUyAkQk9PU1RfQ0ZM QUdTIgotKwkJZXhwb3J0IENQUEZMQUdTCi0rCi0rCQlMREZMQUdTX1NBVkVEPSIkTERGTEFHUyIK LSsJCUxERkxBR1M9IiRMREZMQUdTICRCT09TVF9MSUJTIgotKwkJZXhwb3J0IExERkxBR1MKLSsK LSsgICAgIAlBQ19UUllfQ09NUElMRSgKLSsgICAgICAgCVsKLStAJTpAaW5jbHVkZSA8Ym9vc3Qv dmVyc2lvbi5ocHA+Ci0rXSwKLSsgICAgICAgWwotKyNpZiBCT09TVF9WRVJTSU9OID49ICRXQU5U X0JPT1NUX1ZFUlNJT04KLSsvLyBFdmVyeXRoaW5nIGlzIG9rYXkKLSsjZWxzZQotKyMgIGVycm9y IEJvb3N0IHZlcnNpb24gaXMgdG9vIG9sZAotKyNlbmRpZgotKwotKwkJXSwKLSsgICAgCVsKLSsg ICAgICAgICBBQ19NU0dfUkVTVUxUKHllcykKLSsJCSBzdWNjZWVkZWQ9eWVzCi0rCQkgZm91bmRf c3lzdGVtPXllcwotKyAgICAgICAgIGlmZWxzZShbJDJdLCAsIDosIFskMl0pCi0rICAgICAgIF0s Ci0rICAgICAgIFsKLSsgICAgICAgXSkKLSsKLSsJCWRubCBpZiB3ZSBmb3VuZCBubyBib29zdCB3 aXRoIHN5c3RlbSBsYXlvdXQgd2Ugc2VhcmNoIGZvciBib29zdCBsaWJyYXJpZXMKLSsJCWRubCBi dWlsdCBhbmQgaW5zdGFsbGVkIHdpdGhvdXQgdGhlIC0tbGF5b3V0PXN5c3RlbSBvcHRpb24gb3Ig Zm9yIGEgc3RhZ2VkKG5vdCBpbnN0YWxsZWQpIHZlcnNpb24KLSsJCWlmIHRlc3QgIngkc3VjY2Vl ZGVkIiAhPSAieHllcyI7IHRoZW4KLSsJCQlfdmVyc2lvbj0wCi0rCQkJaWYgdGVzdCAiJGFjX2Jv b3N0X3BhdGgiICE9ICIiOyB0aGVuCi0rICAgICAgICAgICAgICAgIEJPT1NUX0xJQlM9Ii1MJGFj X2Jvb3N0X3BhdGgvJEJPT1NUX0xJQkRJUlRZUEUiCi0rCQkJCWlmIHRlc3QgLWQgIiRhY19ib29z dF9wYXRoIiAmJiB0ZXN0IC1yICIkYWNfYm9vc3RfcGF0aCI7IHRoZW4KLSsJCQkJCWZvciBpIGlu IGBscyAtZCAkYWNfYm9vc3RfcGF0aC9pbmNsdWRlL2Jvb3N0LSogMj4vZGV2L251bGxgOyBkbwot KwkJCQkJCV92ZXJzaW9uX3RtcD1gZWNobyAkaSB8IHNlZCAicyMkYWNfYm9vc3RfcGF0aCMjIiB8 IHNlZCAncy9cL2luY2x1ZGVcL2Jvb3N0LS8vJyB8IHNlZCAncy9fLy4vJ2AKLSsJCQkJCQlWX0NI RUNLPWBleHByICRfdmVyc2lvbl90bXAgXD4gJF92ZXJzaW9uYAotKwkJCQkJCWlmIHRlc3QgIiRW X0NIRUNLIiA9ICIxIiA7IHRoZW4KLSsJCQkJCQkJX3ZlcnNpb249JF92ZXJzaW9uX3RtcAotKwkJ CQkJCWZpCi0rCQkJCQkJVkVSU0lPTl9VTkRFUlNDT1JFPWBlY2hvICRfdmVyc2lvbiB8IHNlZCAn cy9cLi9fLydgCi0rCQkJCQkJQk9PU1RfQ0ZMQUdTPSItSSRhY19ib29zdF9wYXRoL2luY2x1ZGUv Ym9vc3QtJFZFUlNJT05fVU5ERVJTQ09SRSIKLSsJCQkJCWRvbmUKLSsJCQkJZmkKLSsJCQllbHNl Ci0rCQkJCWZvciBhY19ib29zdF9wYXRoIGluIC91c3IgL3Vzci9sb2NhbCAvb3B0IDsgZG8KLSsJ CQkJCWlmIHRlc3QgLWQgIiRhY19ib29zdF9wYXRoIiAmJiB0ZXN0IC1yICIkYWNfYm9vc3RfcGF0 aCI7IHRoZW4KLSsJCQkJCQlmb3IgaSBpbiBgbHMgLWQgJGFjX2Jvb3N0X3BhdGgvaW5jbHVkZS9i b29zdC0qIDI+L2Rldi9udWxsYDsgZG8KLSsJCQkJCQkJX3ZlcnNpb25fdG1wPWBlY2hvICRpIHwg c2VkICJzIyRhY19ib29zdF9wYXRoIyMiIHwgc2VkICdzL1wvaW5jbHVkZVwvYm9vc3QtLy8nIHwg c2VkICdzL18vLi8nYAotKwkJCQkJCQlWX0NIRUNLPWBleHByICRfdmVyc2lvbl90bXAgXD4gJF92 ZXJzaW9uYAotKwkJCQkJCQlpZiB0ZXN0ICIkVl9DSEVDSyIgPSAiMSIgOyB0aGVuCi0rCQkJCQkJ CQlfdmVyc2lvbj0kX3ZlcnNpb25fdG1wCi0rCQkJCQkJCQliZXN0X3BhdGg9JGFjX2Jvb3N0X3Bh dGgKLSsJCQkJCQkJZmkKLSsJCQkJCQlkb25lCi0rCQkJCQlmaQotKwkJCQlkb25lCi0rCi0rCQkJ CVZFUlNJT05fVU5ERVJTQ09SRT1gZWNobyAkX3ZlcnNpb24gfCBzZWQgJ3MvXC4vXy8nYAotKwkJ CQlCT09TVF9DRkxBR1M9Ii1JJGJlc3RfcGF0aC9pbmNsdWRlL2Jvb3N0LSRWRVJTSU9OX1VOREVS U0NPUkUiCi0rCQkJCUJPT1NUX0xJQlM9Ii1MJGJlc3RfcGF0aC8kQk9PU1RfTElCRElSVFlQRSIK LSsKLSsJICAgIAkJaWYgdGVzdCAieCRCT09TVF9ST09UIiAhPSAieCI7IHRoZW4KLSsJCQkJCWlm IHRlc3QgLWQgIiRCT09TVF9ST09UIiAmJiB0ZXN0IC1yICIkQk9PU1RfUk9PVCI7IHRoZW4KLSsJ CQkJCQl2ZXJzaW9uX2Rpcj1gZXhwciAvLyRCT09TVF9ST09UIDogJy4qL1woLipcKSdgCi0rCQkJ CQkJc3RhZ2VfdmVyc2lvbj1gZWNobyAkdmVyc2lvbl9kaXIgfCBzZWQgJ3MvYm9vc3RfLy8nIHwg c2VkICdzL18vLi9nJ2AKLSsJCQkJCQlzdGFnZV92ZXJzaW9uX3Nob3J0ZW49YGV4cHIgJHN0YWdl X3ZlcnNpb24gOiAnXChbWzAtOV1dKlwuW1swLTldXSpcKSdgCi0rCQkJCQkJVl9DSEVDSz1gZXhw ciAkc3RhZ2VfdmVyc2lvbl9zaG9ydGVuIFw+XD0gJF92ZXJzaW9uYAotKwkJCQkJCWlmIHRlc3Qg IiRWX0NIRUNLIiA9ICIxIiA7IHRoZW4KLSsJCQkJCQkJQUNfTVNHX05PVElDRShXZSB3aWxsIHVz ZSBhIHN0YWdlZCBib29zdCBsaWJyYXJ5IGZyb20gJEJPT1NUX1JPT1QpCi0rCQkJCQkJCUJPT1NU X0NGTEFHUz0iLUkkQk9PU1RfUk9PVCIKLSsJCQkJCQkJQk9PU1RfTElCUz0iLUwkQk9PU1RfUk9P VC9zdGFnZS8kQk9PU1RfTElCRElSVFlQRSIKLSsJCQkJCQlmaQotKwkJCQkJZmkKLSsJICAgIAkJ ZmkKLSsJCQlmaQotKwotKwkJCUNQUEZMQUdTPSIkQ1BQRkxBR1MgJEJPT1NUX0NGTEFHUyIKLSsJ CQlleHBvcnQgQ1BQRkxBR1MKLSsJCQlMREZMQUdTPSIkTERGTEFHUyAkQk9PU1RfTElCUyIKLSsJ CQlleHBvcnQgTERGTEFHUwotKwotKyAgICAgCQlBQ19UUllfQ09NUElMRSgKLSsgICAgICAgCQlb Ci0rQCU6QGluY2x1ZGUgPGJvb3N0L3ZlcnNpb24uaHBwPgotK10sCi0rICAgICAgIFsKLSsjaWYg Qk9PU1RfVkVSU0lPTiA+PSAkV0FOVF9CT09TVF9WRVJTSU9OCi0rLy8gRXZlcnl0aGluZyBpcyBv a2F5Ci0rI2Vsc2UKLSsjICBlcnJvciBCb29zdCB2ZXJzaW9uIGlzIHRvbyBvbGQKLSsjZW5kaWYK LSsKLSsJCV0sCi0rICAgIAlbCi0rICAgICAgICAgQUNfTVNHX1JFU1VMVCh5ZXMgKCRfdmVyc2lv bikpCi0rCQkgc3VjY2VlZGVkPXllcwotKyAgICAgICAgIGlmZWxzZShbJDJdLCAsIDosIFskMl0p Ci0rICAgICAgIF0sCi0rICAgICAgIFsKLSsgICAgICAgICBBQ19NU0dfUkVTVUxUKG5vICgkX3Zl cnNpb24pKQotKyAgICAgICAgIGlmZWxzZShbJDNdLCAsIDosIFskM10pCi0rICAgICAgIF0pCi0r CQlmaQotKwotKwkJaWYgdGVzdCAiJHN1Y2NlZWRlZCIgIT0gInllcyIgOyB0aGVuCi0rCQkJaWYg dGVzdCAiJF92ZXJzaW9uIiA9ICIwIiA7IHRoZW4KLSsJCQkJQUNfTVNHX0VSUk9SKFtbV2UgY291 bGQgbm90IGRldGVjdCB0aGUgYm9vc3QgbGlicmFyaWVzICh2ZXJzaW9uICRib29zdF9saWJfdmVy c2lvbl9yZXFfc2hvcnRlbiBvciBoaWdoZXIpLiBJZiB5b3UgaGF2ZSBhIHN0YWdlZCBib29zdCBs aWJyYXJ5IChzdGlsbCBub3QgaW5zdGFsbGVkKSBwbGVhc2Ugc3BlY2lmeSBcJEJPT1NUX1JPT1Qg aW4geW91ciBlbnZpcm9ubWVudCBhbmQgZG8gbm90IGdpdmUgYSBQQVRIIHRvIC0td2l0aC1ib29z dCBvcHRpb24uICBJZiB5b3UgYXJlIHN1cmUgeW91IGhhdmUgYm9vc3QgaW5zdGFsbGVkLCB0aGVu IGNoZWNrIHlvdXIgdmVyc2lvbiBudW1iZXIgbG9va2luZyBpbiA8Ym9vc3QvdmVyc2lvbi5ocHA+ Ll1dKQotKwkJCWVsc2UKLSsJCQkJQUNfTVNHX0VSUk9SKCdZb3VyIGJvb3N0IGxpYnJhcmllcyBz ZWVtcyB0byBvbGQgKHZlcnNpb24gJF92ZXJzaW9uKS4gIFdlIG5lZWQgYXQgbGVhc3QgJGJvb3N0 X2xpYl92ZXJzaW9uX3Nob3J0ZW4nKQotKwkJCWZpCi0rCQllbHNlCi0rCQkJQUNfU1VCU1QoQk9P U1RfQ0ZMQUdTKQotKwkJCUFDX1NVQlNUKEJPT1NUX0xJQlMpCi0rCQkJQUNfREVGSU5FKEhBVkVf Qk9PU1QsLFtkZWZpbmUgaWYgdGhlIEJvb3N0IGxpYnJhcnkgaXMgYXZhaWxhYmxlXSkKLSsKLSsJ CQlBQ19DQUNIRV9DSEVDSyhbd2hldGhlciB0aGUgQm9vc3Q6OkZpbGVzeXN0ZW0gbGlicmFyeSBp cyBhdmFpbGFibGVdLAotKwkJCQkJCSAgIGF4X2N2X2Jvb3N0X2ZpbGVzeXN0ZW0sCi0rCQkJCQkJ W0FDX0xBTkdfU0FWRQotKwkJCSBBQ19MQU5HX0NQTFVTUExVUwotKwkJCSBBQ19DT01QSUxFX0lG RUxTRShBQ19MQU5HX1BST0dSQU0oW1tAJTpAaW5jbHVkZSA8Ym9vc3QvZmlsZXN5c3RlbS9wYXRo LmhwcD5dXSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtbdXNpbmcgbmFt ZXNwYWNlIGJvb3N0OjpmaWxlc3lzdGVtOwotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgcGF0aCBteV9wYXRoKCAiZm9vL2Jhci9kYXRhLnR4dCIgKTsKLSsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAwO11dKSwKLSsgICAgICAgICAgICAJCQkJICAg ICAgIGF4X2N2X2Jvb3N0X2ZpbGVzeXN0ZW09eWVzLCBheF9jdl9ib29zdF9maWxlc3lzdGVtPW5v KQotKwkJIAkJICAgICAgICAJCQlBQ19MQU5HX1JFU1RPUkUKLSsJCQldKQotKwkJCWlmIHRlc3Qg IiRheF9jdl9ib29zdF9maWxlc3lzdGVtIiA9ICJ5ZXMiOyB0aGVuCi0rCQkJCUFDX0RFRklORShI QVZFX0JPT1NUX0ZJTEVTWVNURU0sLFtkZWZpbmUgaWYgdGhlIEJvb3N0OjpGSUxFU1lTVEVNIGxp YnJhcnkgaXMgYXZhaWxhYmxlXSkKLSsJCQkJQk49Ym9vc3RfZmlsZXN5c3RlbQotKwkJCQlmb3Ig YXhfbGliIGluICRCTiAkQk4tJENDICRCTi0kQ0MtbXQgJEJOLSRDQy1tdC1zICRCTi0kQ0MtcyBc Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGliJEJOIGxpYiRCTi0kQ0MgbGliJEJO LSRDQy1tdCBsaWIkQk4tJENDLW10LXMgXAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGxpYiRCTi0kQ0MtcyAkQk4tbWd3ICRCTi1tZ3ctbXQgJEJOLW1ndy1tdC1zIFwKLSsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAkQk4tbWd3LXMgJEJOLSRDQy1tdC0kQk9PU1RMSUJfTURX X1ZFUlNJT04gOyBkbwotKwkJCQkgICAgQUNfQ0hFQ0tfTElCKCRheF9saWIsIG1haW4sCi0rICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW0JPT1NUX0ZJTEVTWVNURU1fTElCPSItbCRh eF9saWIiIEFDX1NVQlNUKEJPT1NUX0ZJTEVTWVNURU1fTElCKSBsaW5rX2ZpbGVzeXN0ZW09Inll cyIgYnJlYWtdLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsaW5rX2ZpbGVz eXN0ZW09Im5vIl0pCi0rICAJCQkJZG9uZQotKwkJCQlpZiB0ZXN0ICJ4JGxpbmtfZmlsZXN5c3Rl bSIgPSAieG5vIjsgdGhlbgotKwkJCQkJQUNfTVNHX05PVElDRShDb3VsZCBub3QgbGluayBhZ2Fp bnN0ICRheF9saWIgISkKLSsJCQkJZmkKLSsJCQlmaQotKwotKwkJCUFDX0NBQ0hFX0NIRUNLKFt3 aGV0aGVyIHRoZSBCb29zdDo6UHJvZ3JhbV9PcHRpb25zIGxpYnJhcnkgaXMgYXZhaWxhYmxlXSwK LSsJCQkJCQkgICBheF9jdl9ib29zdF9wcm9ncmFtX29wdGlvbnMsCi0rCQkJCQkJICAgW0FDX0xB TkdfU0FWRQotKyAgICAgICAgICAgICAgICAgICAgICAgICAgIEFDX0xBTkdfQ1BMVVNQTFVTCi0r CQkJICAgICAgICAgICAgICAgQUNfQ09NUElMRV9JRkVMU0UoQUNfTEFOR19QUk9HUkFNKFtbQCU6 QGluY2x1ZGUgPGJvb3N0L3Byb2dyYW1fb3B0aW9ucy5ocHA+XV0sCi0rICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBbW2Jvb3N0Ojpwcm9ncmFtX29wdGlvbnM6Om9wdGlvbnNfZGVz Y3JpcHRpb24gZ2VuZXJpYygiR2VuZXJpYyBvcHRpb25zIik7Ci0rICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICByZXR1cm4gMDtdXSksCi0rICAgICAgICAgICAgICAgICAgICAgICAg ICAgYXhfY3ZfYm9vc3RfcHJvZ3JhbV9vcHRpb25zPXllcywgYXhfY3ZfYm9vc3RfcHJvZ3JhbV9v cHRpb25zPW5vKQotKwkJCSAgICAgICAgICAgICAgIEFDX0xBTkdfUkVTVE9SRQotKwkJCV0pCi0r CQkJaWYgdGVzdCAiJGF4X2N2X2Jvb3N0X3Byb2dyYW1fb3B0aW9ucyIgPSB5ZXM7IHRoZW4KLSsJ CQkJQUNfREVGSU5FKEhBVkVfQk9PU1RfUFJPR1JBTV9PUFRJT05TLCxbZGVmaW5lIGlmIHRoZSBC b29zdDo6UFJPR1JBTV9PUFRJT05TIGxpYnJhcnkgaXMgYXZhaWxhYmxlXSkKLSsJCQkJQk49Ym9v c3RfcHJvZ3JhbV9vcHRpb25zCi0rCQkJCWZvciBheF9saWIgaW4gJEJOICRCTi0kQ0MgJEJOLSRD Qy1tdCAkQk4tJENDLW10LXMgJEJOLSRDQy1zIFwKLSsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBsaWIkQk4gbGliJEJOLSRDQyBsaWIkQk4tJENDLW10IGxpYiRCTi0kQ0MtbXQtcyBcCi0r ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGliJEJOLSRDQy1zICRCTi1tZ3cgJEJOLW1n dy1tdCBcCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJEJOLW1ndy1tdC1zICRCTi1t Z3ctcyBcCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJEJOLSRDQy1tdC0kQk9PU1RM SUJfTURXX1ZFUlNJT047IGRvCi0rCQkJCSAgICBBQ19DSEVDS19MSUIoJGF4X2xpYiwgbWFpbiwK LSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbQk9PU1RfUFJPR1JBTV9PUFRJT05T X0xJQj0iLWwkYXhfbGliIiBBQ19TVUJTVChCT09TVF9QUk9HUkFNX09QVElPTlNfTElCKSBsaW5r X3Byb2dyYW1fb3B0aW9ucz0ieWVzIiBicmVha10sCi0rICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgW2xpbmtfcHJvZ3JhbV9vcHRpb25zPSJubyJdKQotKyAgCQkJCWRvbmUKLSsJCQkJ aWYgdGVzdCAieCRsaW5rX3Byb2dyYW1fb3B0aW9ucz0ibm8iIiA9ICJ4bm8iOyB0aGVuCi0rCQkJ CQlBQ19NU0dfTk9USUNFKENvdWxkIG5vdCBsaW5rIGFnYWluc3QgJGF4X2xpYiAhKQotKwkJCQlm aQotKwkJCWZpCi0rCi0rCQkJQUNfQ0FDSEVfQ0hFQ0sod2hldGhlciB0aGUgQm9vc3Q6OlRocmVh ZCBsaWJyYXJ5IGlzIGF2YWlsYWJsZSwKLSsJCQkJCQkgICBheF9jdl9ib29zdF90aHJlYWQsCi0r CQkJCQkJW0FDX0xBTkdfU0FWRQotKwkJCSBBQ19MQU5HX0NQTFVTUExVUwotKwkJCSBDWFhGTEFH U19TQVZFPSRDWFhGTEFHUwotKwotKwkJCSBpZiB0ZXN0ICJ4JGJ1aWxkX29zIiA9ICJ4c29sYXJp cyIgOyB0aGVuCi0rICAJCQkJIENYWEZMQUdTPSItcHRocmVhZHMgJENYWEZMQUdTIgotKwkJCSBl bGlmIHRlc3QgIngkYnVpbGRfb3MiID0gInhtaW5nMzIiIDsgdGhlbgotKwkJCQkgQ1hYRkxBR1M9 Ii1tdGhyZWFkcyAkQ1hYRkxBR1MiCi0rCQkJIGVsc2UKLSsJCQkJQ1hYRkxBR1M9Ii1wdGhyZWFk ICRDWFhGTEFHUyIKLSsJCQkgZmkKLSsJCQkgQUNfQ09NUElMRV9JRkVMU0UoQUNfTEFOR19QUk9H UkFNKFtbQCU6QGluY2x1ZGUgPGJvb3N0L3RocmVhZC90aHJlYWQuaHBwPl1dLAotKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgW1tib29zdDo6dGhyZWFkX2dyb3VwIHRocmRzOwot KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDA7XV0pLAotKyAgICAg ICAgICAgICAgICAgICBheF9jdl9ib29zdF90aHJlYWQ9eWVzLCBheF9jdl9ib29zdF90aHJlYWQ9 bm8pCi0rCQkJIENYWEZMQUdTPSRDWFhGTEFHU19TQVZFCi0rCQkJIEFDX0xBTkdfUkVTVE9SRQot KwkJCV0pCi0rCQkJaWYgdGVzdCAieCRheF9jdl9ib29zdF90aHJlYWQiID0gInh5ZXMiOyB0aGVu Ci0rICAgICAgICAgICAgICAgaWYgdGVzdCAieCRidWlsZF9vcyIgPSAieHNvbGFyaXMiIDsgdGhl bgotKyAJCQkJICBCT09TVF9DRkxBR1M9Ii1wdGhyZWFkcyAkQk9PU1RfQ0ZMQUdTIgotKwkJCSAg IGVsaWYgdGVzdCAieCRidWlsZF9vcyIgPSAieG1pbmczMiIgOyB0aGVuCi0rIAkJCQkgIEJPT1NU X0NGTEFHUz0iLW10aHJlYWRzICRCT09TVF9DRkxBR1MiCi0rCQkJICAgZWxzZQotKwkJCQkgIEJP T1NUX0NGTEFHUz0iLXB0aHJlYWQgJEJPT1NUX0NGTEFHUyIKLSsJCQkgICBmaQotKwotKwkJCQlB Q19TVUJTVChCT09TVF9DRkxBR1MpCi0rCQkJCUFDX0RFRklORShIQVZFX0JPT1NUX1RIUkVBRCws W2RlZmluZSBpZiB0aGUgQm9vc3Q6OlRIUkVBRCBsaWJyYXJ5IGlzIGF2YWlsYWJsZV0pCi0rCQkJ CUJOPWJvb3N0X3RocmVhZAotKwkJCQlmb3IgYXhfbGliIGluICRCTiAkQk4tJENDICRCTi0kQ0Mt bXQgJEJOLSRDQy1tdC1zICRCTi0kQ0MtcyBcCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgbGliJEJOIGxpYiRCTi0kQ0MgbGliJEJOLSRDQy1tdCBsaWIkQk4tJENDLW10LXMgXAotKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpYiRCTi0kQ0MtcyAkQk4tbWd3ICRCTi1tZ3ct bXQgXAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRCTi1tZ3ctbXQtcyAkQk4tbWd3 LXMgIFwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkQk4tJENDLW10LSRCT09TVExJ Ql9NRFdfVkVSU0lPTiA7IGRvCi0rCQkJCSAgICBBQ19DSEVDS19MSUIoJGF4X2xpYiwgbWFpbiwg W0JPT1NUX1RIUkVBRF9MSUI9Ii1sJGF4X2xpYiIgQUNfU1VCU1QoQk9PU1RfVEhSRUFEX0xJQikg bGlua190aHJlYWQ9InllcyIgYnJlYWtdLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFtsaW5rX3RocmVhZD0ibm8iXSkKLSsgIAkJCQlkb25lCi0rCQkJCWlmIHRlc3QgIngkbGlu a190aHJlYWQiID0gInhubyI7IHRoZW4KLSsJCQkJCUFDX01TR19OT1RJQ0UoQ291bGQgbm90IGxp bmsgYWdhaW5zdCAkYXhfbGliICEpCi0rCQkJCWZpCi0rCQkJZmkKLSsKLSsJCQlBQ19DQUNIRV9D SEVDSyh3aGV0aGVyIHRoZSBCb29zdDo6SU9TdHJlYW1zIGxpYnJhcnkgaXMgYXZhaWxhYmxlLAot KwkJCQkJCSAgIGF4X2N2X2Jvb3N0X2lvc3RyZWFtcywKLSsJCQkJCQlbQUNfTEFOR19TQVZFCi0r CQkJIEFDX0xBTkdfQ1BMVVNQTFVTCi0rCQkJIEFDX0NPTVBJTEVfSUZFTFNFKEFDX0xBTkdfUFJP R1JBTShbW0AlOkBpbmNsdWRlIDxib29zdC9pb3N0cmVhbXMvZmlsdGVyaW5nX3N0cmVhbS5ocHA+ Ci0rCQkJCQkJCQkJCQkJIEAlOkBpbmNsdWRlIDxib29zdC9yYW5nZS9pdGVyYXRvcl9yYW5nZS5o cHA+Ci0rCQkJCQkJCQkJCQkJXV0sCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBbW3N0ZDo6c3RyaW5nICBpbnB1dCA9ICJIZWxsbyBXb3JsZCEiOwotKwkJCQkJCQkJCSBuYW1l c3BhY2UgaW8gPSBib29zdDo6aW9zdHJlYW1zOwotKwkJCQkJCQkJCSBpbzo6ZmlsdGVyaW5nX2lz dHJlYW0gIGluKGJvb3N0OjptYWtlX2l0ZXJhdG9yX3JhbmdlKGlucHV0KSk7Ci0rCQkJCQkJCQkJ IHJldHVybiAwOwotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXV0pLAotKyAg ICAgICAgICAgICAgICAgICBheF9jdl9ib29zdF9pb3N0cmVhbXM9eWVzLCBheF9jdl9ib29zdF9p b3N0cmVhbXM9bm8pCi0rCQkJIEFDX0xBTkdfUkVTVE9SRQotKwkJCV0pCi0rCQkJaWYgdGVzdCAi eCRheF9jdl9ib29zdF9pb3N0cmVhbXMiID0gInh5ZXMiOyB0aGVuCi0rCQkJCUFDX0RFRklORShI QVZFX0JPT1NUX0lPU1RSRUFNUywsW2RlZmluZSBpZiB0aGUgQm9vc3Q6OklPU3RyZWFtcyBsaWJy YXJ5IGlzIGF2YWlsYWJsZV0pCi0rCQkJCUJOPWJvb3N0X2lvc3RyZWFtcwotKwkJCQlmb3IgYXhf bGliIGluICRCTiAkQk4tJENDICRCTi0kQ0MtbXQgJEJOLSRDQy1tdC1zICRCTi0kQ0MtcyBcCi0r ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGliJEJOIGxpYiRCTi0kQ0MgbGliJEJOLSRD Qy1tdCBsaWIkQk4tJENDLW10LXMgXAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxp YiRCTi0kQ0MtcyAkQk4tbWd3ICRCTi1tZ3ctbXQgXAotKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICRCTi1tZ3ctbXQtcyAkQk4tbWd3LXMgIFwKLSsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAkQk4tJENDLW10LSRCT09TVExJQl9NRFdfVkVSU0lPTiA7IGRvCi0rCQkJCSAgICBB Q19DSEVDS19MSUIoJGF4X2xpYiwgbWFpbiwgW0JPT1NUX0lPU1RSRUFNU19MSUI9Ii1sJGF4X2xp YiIgQUNfU1VCU1QoQk9PU1RfSU9TVFJFQU1TX0xJQikgbGlua190aHJlYWQ9InllcyIgYnJlYWtd LAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsaW5rX3RocmVhZD0ibm8iXSkK LSsgIAkJCQlkb25lCi0rCQkJCWlmIHRlc3QgIngkbGlua190aHJlYWQiID0gInhubyI7IHRoZW4K LSsJCQkJCUFDX01TR19OT1RJQ0UoQ291bGQgbm90IGxpbmsgYWdhaW5zdCAkYXhfbGliICEpCi0r CQkJCWZpCi0rCQkJZmkKLSsKLSsJCQlBQ19DQUNIRV9DSEVDSyh3aGV0aGVyIHRoZSBCb29zdDo6 U2VyaWFsaXphdGlvbiBsaWJyYXJ5IGlzIGF2YWlsYWJsZSwKLSsJCQkJCQkgICBheF9jdl9ib29z dF9zZXJpYWxpemF0aW9uLAotKwkJCQkJCVtBQ19MQU5HX1NBVkUKLSsJCQkgQUNfTEFOR19DUExV U1BMVVMKLSsJCQkgQUNfQ09NUElMRV9JRkVMU0UoQUNfTEFOR19QUk9HUkFNKFtbQCU6QGluY2x1 ZGUgPGZzdHJlYW0+Ci0rCQkJCQkJCQkJCQkJIEAlOkBpbmNsdWRlIDxib29zdC9hcmNoaXZlL3Rl eHRfb2FyY2hpdmUuaHBwPgotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBAJTpAaW5jbHVkZSA8Ym9vc3QvYXJjaGl2ZS90ZXh0X2lhcmNoaXZlLmhwcD4K LSsJCQkJCQkJCQkJCQldXSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtb c3RkOjpvZnN0cmVhbSBvZnMoImZpbGVuYW1lIik7Ci0rCQkJCQkJCQkJYm9vc3Q6OmFyY2hpdmU6 OnRleHRfb2FyY2hpdmUgb2Eob2ZzKTsKLSsJCQkJCQkJCQkgcmV0dXJuIDA7Ci0rICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBdXSksCi0rICAgICAgICAgICAgICAgICAgIGF4X2N2 X2Jvb3N0X3NlcmlhbGl6YXRpb249eWVzLCBheF9jdl9ib29zdF9zZXJpYWxpemF0aW9uPW5vKQot KwkJCSBBQ19MQU5HX1JFU1RPUkUKLSsJCQldKQotKwkJCWlmIHRlc3QgIngkYXhfY3ZfYm9vc3Rf c2VyaWFsaXphdGlvbiIgPSAieHllcyI7IHRoZW4KLSsJCQkJQUNfREVGSU5FKEhBVkVfQk9PU1Rf U0VSSUFMSVpBVElPTiwsW2RlZmluZSBpZiB0aGUgQm9vc3Q6OlNlcmlhbGl6YXRpb24gbGlicmFy eSBpcyBhdmFpbGFibGVdKQotKwkJCQlCTj1ib29zdF9zZXJpYWxpemF0aW9uCi0rCQkJCWZvciBh eF9saWIgaW4gJEJOICRCTi0kQ0MgJEJOLSRDQy1tdCAkQk4tJENDLW10LXMgJEJOLSRDQy1zIFwK LSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWIkQk4gbGliJEJOLSRDQyBsaWIkQk4t JENDLW10IGxpYiRCTi0kQ0MtbXQtcyBcCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg bGliJEJOLSRDQy1zICRCTi1tZ3cgJEJOLW1ndy1tdCBcCi0rICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgJEJOLW1ndy1tdC1zICRCTi1tZ3ctcyAgXAotKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICRCTi0kQ0MtbXQtJEJPT1NUTElCX01EV19WRVJTSU9OIDsgZG8KLSsJCQkJICAg IEFDX0NIRUNLX0xJQigkYXhfbGliLCBtYWluLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFtCT09TVF9TRVJJQUxJWkFUSU9OX0xJQj0iLWwkYXhfbGliIiBBQ19TVUJTVChCT09T VF9TRVJJQUxJWkFUSU9OX0xJQikgbGlua190aHJlYWQ9InllcyIgYnJlYWtdLAotKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFtsaW5rX3RocmVhZD0ibm8iXSkKLSsgIAkJCQlkb25l Ci0rCQkJCUJOPWJvb3N0X3dzZXJpYWxpemF0aW9uCi0rCQkJCWZvciBheF9saWIgaW4gJEJOICRC Ti0kQ0MgJEJOLSRDQy1tdCAkQk4tJENDLW10LXMgJEJOLSRDQy1zIFwKLSsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBsaWIkQk4gbGliJEJOLSRDQyBsaWIkQk4tJENDLW10IGxpYiRCTi0k Q0MtbXQtcyBcCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGliJEJOLSRDQy1zICRC Ti1tZ3cgJEJOLW1ndy1tdCBcCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJEJOLW1n dy1tdC1zICRCTi1tZ3ctcyAgXAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRCTi0k Q0MtbXQtJEJPT1NUTElCX01EV19WRVJTSU9OIDsgZG8KLSsJCQkJICAgIEFDX0NIRUNLX0xJQigk YXhfbGliLCBtYWluLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtCT09TVF9X U0VSSUFMSVpBVElPTl9MSUI9Ii1sJGF4X2xpYiIgQUNfU1VCU1QoQk9PU1RfV1NFUklBTElaQVRJ T05fTElCKSBsaW5rX3RocmVhZD0ieWVzIiBicmVha10sCi0rICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgW2xpbmtfdGhyZWFkPSJubyJdKQotKyAgCQkJCWRvbmUKLSsJCQkJaWYgdGVz dCAieCRsaW5rX3RocmVhZCIgPSAieG5vIjsgdGhlbgotKwkJCQkJQUNfTVNHX05PVElDRShDb3Vs ZCBub3QgbGluayBhZ2FpbnN0ICRheF9saWIgISkKLSsJCQkJZmkKLSsJCQlmaQotKwotKwkJCUFD X0NBQ0hFX0NIRUNLKHdoZXRoZXIgdGhlIEJvb3N0OjpTaWduYWxzIGxpYnJhcnkgaXMgYXZhaWxh YmxlLAotKwkJCQkJCSAgIGF4X2N2X2Jvb3N0X3NpZ25hbHMsCi0rCQkJCQkJW0FDX0xBTkdfU0FW RQotKwkJCSBBQ19MQU5HX0NQTFVTUExVUwotKwkJCSBBQ19DT01QSUxFX0lGRUxTRShBQ19MQU5H X1BST0dSQU0oW1tAJTpAaW5jbHVkZSA8Ym9vc3Qvc2lnbmFsLmhwcD4KLSsJCQkJCQkJCQkJCQld XSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtbYm9vc3Q6OnNpZ25hbDx2 b2lkICgpPiBzaWc7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVy biAwOwotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXV0pLAotKyAgICAgICAg ICAgICAgICAgICBheF9jdl9ib29zdF9zaWduYWxzPXllcywgYXhfY3ZfYm9vc3Rfc2lnbmFscz1u bykKLSsJCQkgQUNfTEFOR19SRVNUT1JFCi0rCQkJXSkKLSsJCQlpZiB0ZXN0ICJ4JGF4X2N2X2Jv b3N0X3NpZ25hbHMiID0gInh5ZXMiOyB0aGVuCi0rCQkJCUFDX0RFRklORShIQVZFX0JPT1NUX1NJ R05BTFMsLFtkZWZpbmUgaWYgdGhlIEJvb3N0OjpTaWduYWxzIGxpYnJhcnkgaXMgYXZhaWxhYmxl XSkKLSsJCQkJQk49Ym9vc3Rfc2lnbmFscwotKwkJCQlmb3IgYXhfbGliIGluICRCTiAkQk4tJEND ICRCTi0kQ0MtbXQgJEJOLSRDQy1tdC1zICRCTi0kQ0MtcyBcCi0rICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgbGliJEJOIGxpYiRCTi0kQ0MgbGliJEJOLSRDQy1tdCBsaWIkQk4tJENDLW10 LXMgXAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpYiRCTi0kQ0MtcyAkQk4tbWd3 ICRCTi1tZ3ctbXQgXAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRCTi1tZ3ctbXQt cyAkQk4tbWd3LXMgIFwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkQk4tJENDLW10 LSRCT09TVExJQl9NRFdfVkVSU0lPTiA7IGRvCi0rCQkJCSAgICBBQ19DSEVDS19MSUIoJGF4X2xp YiwgbWFpbiwgW0JPT1NUX1NJR05BTFNfTElCPSItbCRheF9saWIiIEFDX1NVQlNUKEJPT1NUX1NJ R05BTFNfTElCKSBsaW5rX3RocmVhZD0ieWVzIiBicmVha10sCi0rICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgW2xpbmtfdGhyZWFkPSJubyJdKQotKyAgCQkJCWRvbmUKLSsJCQkJaWYg dGVzdCAieCRsaW5rX3RocmVhZCIgPSAieG5vIjsgdGhlbgotKwkJCQkJQUNfTVNHX05PVElDRShD b3VsZCBub3QgbGluayBhZ2FpbnN0ICRheF9saWIgISkKLSsJCQkJZmkKLSsJCQlmaQotKwotKwkJ CUFDX0NBQ0hFX0NIRUNLKHdoZXRoZXIgdGhlIEJvb3N0OjpEYXRlX1RpbWUgbGlicmFyeSBpcyBh dmFpbGFibGUsCi0rCQkJCQkJICAgYXhfY3ZfYm9vc3RfZGF0ZV90aW1lLAotKwkJCQkJCVtBQ19M QU5HX1NBVkUKLSsJCQkgQUNfTEFOR19DUExVU1BMVVMKLSsJCQkgQUNfQ09NUElMRV9JRkVMU0Uo QUNfTEFOR19QUk9HUkFNKFtbQCU6QGluY2x1ZGUgPGJvb3N0L2RhdGVfdGltZS9ncmVnb3JpYW4v Z3JlZ29yaWFuX3R5cGVzLmhwcD4KLSsJCQkJCQkJCQkJCQldXSwKLSsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFtbdXNpbmcgbmFtZXNwYWNlIGJvb3N0OjpncmVnb3JpYW47IGRh dGUgZCgyMDAyLEphbiwxMCk7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHJldHVybiAwOwotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXV0pLAotKyAg ICAgICAgICAgICAgICAgICBheF9jdl9ib29zdF9kYXRlX3RpbWU9eWVzLCBheF9jdl9ib29zdF9k YXRlX3RpbWU9bm8pCi0rCQkJIEFDX0xBTkdfUkVTVE9SRQotKwkJCV0pCi0rCQkJaWYgdGVzdCAi eCRheF9jdl9ib29zdF9kYXRlX3RpbWUiID0gInh5ZXMiOyB0aGVuCi0rCQkJCUFDX0RFRklORShI QVZFX0JPT1NUX0RBVEVfVElNRSwsW2RlZmluZSBpZiB0aGUgQm9vc3Q6OkRhdGVfVGltZSBsaWJy YXJ5IGlzIGF2YWlsYWJsZV0pCi0rCQkJCUJOPWJvb3N0X2RhdGVfdGltZQotKwkJCQlmb3IgYXhf bGliIGluICRCTiAkQk4tJENDICRCTi0kQ0MtbXQgJEJOLSRDQy1tdC1zICRCTi0kQ0MtcyBcCi0r ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGliJEJOIGxpYiRCTi0kQ0MgbGliJEJOLSRD Qy1tdCBsaWIkQk4tJENDLW10LXMgXAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxp YiRCTi0kQ0MtcyAkQk4tbWd3ICRCTi1tZ3ctbXQgXAotKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICRCTi1tZ3ctbXQtcyAkQk4tbWd3LXMgIFwKLSsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAkQk4tJENDLW10LSRCT09TVExJQl9NRFdfVkVSU0lPTiA7IGRvCi0rCQkJCSAgICBB Q19DSEVDS19MSUIoJGF4X2xpYiwgbWFpbiwgW0JPT1NUX0RBVEVfVElNRV9MSUI9Ii1sJGF4X2xp YiIgQUNfU1VCU1QoQk9PU1RfREFURV9USU1FX0xJQikgbGlua190aHJlYWQ9InllcyIgYnJlYWtd LAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsaW5rX3RocmVhZD0ibm8iXSkK LSsgIAkJCQlkb25lCi0rCQkJCWlmIHRlc3QgIngkbGlua190aHJlYWQiPSJubyIgPSAieG5vIjsg dGhlbgotKwkJCQkJQUNfTVNHX05PVElDRShDb3VsZCBub3QgbGluayBhZ2FpbnN0ICRheF9saWIg ISkKLSsJCQkJZmkKLSsJCQlmaQotKwotKwkJCUFDX0NBQ0hFX0NIRUNLKHdoZXRoZXIgdGhlIEJv b3N0OjpSZWdleCBsaWJyYXJ5IGlzIGF2YWlsYWJsZSwKLSsJCQkJCQkgICBheF9jdl9ib29zdF9y ZWdleCwKLSsJCQkJCQlbQUNfTEFOR19TQVZFCi0rCQkJIEFDX0xBTkdfQ1BMVVNQTFVTCi0rCQkJ IEFDX0NPTVBJTEVfSUZFTFNFKEFDX0xBTkdfUFJPR1JBTShbW0AlOkBpbmNsdWRlIDxib29zdC9y ZWdleC5ocHA+Ci0rCQkJCQkJCQkJCQkJXV0sCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBbW2Jvb3N0OjpyZWdleCByKCk7IHJldHVybiAwO11dKSwKLSsgICAgICAgICAgICAg ICAgICAgYXhfY3ZfYm9vc3RfcmVnZXg9eWVzLCBheF9jdl9ib29zdF9yZWdleD1ubykKLSsJCQkg QUNfTEFOR19SRVNUT1JFCi0rCQkJXSkKLSsJCQlpZiB0ZXN0ICJ4JGF4X2N2X2Jvb3N0X3JlZ2V4 IiA9ICJ4eWVzIjsgdGhlbgotKwkJCQlBQ19ERUZJTkUoSEFWRV9CT09TVF9SRUdFWCwsW2RlZmlu ZSBpZiB0aGUgQm9vc3Q6OlJlZ2V4IGxpYnJhcnkgaXMgYXZhaWxhYmxlXSkKLSsJCQkJQk49Ym9v c3RfcmVnZXgKLSsJCQkJZm9yIGF4X2xpYiBpbiAkQk4gJEJOLSRDQyAkQk4tJENDLW10ICRCTi0k Q0MtbXQtcyAkQk4tJENDLXMgXAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpYiRC TiBsaWIkQk4tJENDIGxpYiRCTi0kQ0MtbXQgbGliJEJOLSRDQy1tdC1zIFwKLSsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBsaWIkQk4tJENDLXMgJEJOLW1ndyAkQk4tbWd3LW10IFwKLSsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkQk4tbWd3LW10LXMgJEJOLW1ndy1zICBcCi0r ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJEJOLSRDQy1tdC0kQk9PU1RMSUJfTURXX1ZF UlNJT04gOyBkbwotKwkJCQkgICAgQUNfQ0hFQ0tfTElCKCRheF9saWIsIG1haW4sIFtCT09TVF9S RUdFWF9MSUI9Ii1sJGF4X2xpYiIgQUNfU1VCU1QoQk9PU1RfUkVHRVhfTElCKSBsaW5rX3RocmVh ZD0ieWVzIiBicmVha10sCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xpbmtf dGhyZWFkPSJubyJdKQotKyAgCQkJCWRvbmUKLSsJCQkJaWYgdGVzdCAieCRsaW5rX3RocmVhZCIg PSAieG5vIjsgdGhlbgotKwkJCQkJQUNfTVNHX05PVElDRShDb3VsZCBub3QgbGluayBhZ2FpbnN0 ICRheF9saWIgISkKLSsJCQkJZmkKLSsJCQlmaQotKwotKwkJCUFDX0NBQ0hFX0NIRUNLKHdoZXRo ZXIgdGhlIEJvb3N0OjpVbml0VGVzdEZyYW1ld29yayBsaWJyYXJ5IGlzIGF2YWlsYWJsZSwKLSsJ CQkJCQkgICBheF9jdl9ib29zdF91bml0X3Rlc3RfZnJhbWV3b3JrLAotKwkJCQkJCVtBQ19MQU5H X1NBVkUKLSsJCQkgQUNfTEFOR19DUExVU1BMVVMKLSsJCQkgQUNfQ09NUElMRV9JRkVMU0UoQUNf TEFOR19QUk9HUkFNKFtbQCU6QGluY2x1ZGUgPGJvb3N0L3Rlc3QvdW5pdF90ZXN0LmhwcD5dXSwK LSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbW3VzaW5nIGJvb3N0Ojp1bml0 X3Rlc3Q6OnRlc3Rfc3VpdGU7Ci0rCQkJCQkgICAgICAgICAgICAgICAgIHRlc3Rfc3VpdGUqIHRl c3Q9IEJPT1NUX1RFU1RfU1VJVEUoICJVbml0IHRlc3QgZXhhbXBsZSAxIiApOyByZXR1cm4gMDtd XSksCi0rICAgICAgICAgICAgICAgICAgIGF4X2N2X2Jvb3N0X3VuaXRfdGVzdF9mcmFtZXdvcms9 eWVzLCBheF9jdl9ib29zdF91bml0X3Rlc3RfZnJhbWV3b3JrPW5vKQotKwkJCSBBQ19MQU5HX1JF U1RPUkUKLSsJCQldKQotKwkJCWlmIHRlc3QgIngkYXhfY3ZfYm9vc3RfdW5pdF90ZXN0X2ZyYW1l d29yayIgPSAieHllcyI7IHRoZW4KLSsgICAgCQlBQ19ERUZJTkUoSEFWRV9CT09TVF9VTklUX1RF U1RfRlJBTUVXT1JLLCxbZGVmaW5lIGlmIHRoZSBCb29zdDo6VW5pdF90ZXN0X2ZyYW1ld29yayBs aWJyYXJ5IGlzIGF2YWlsYWJsZV0pCi0rCQkJQk49Ym9vc3RfdW5pdF90ZXN0X2ZyYW1ld29yawot KyAgICAJCXNhdmVkX2xkZmxhZ3M9IiR7TERGTEFHU30iCi0rCQkJZm9yIGF4X2xpYiBpbiAkQk4g JEJOLSRDQyAkQk4tJENDLW10ICRCTi0kQ0MtbXQtcyAkQk4tJENDLXMgXAotKyAgICAgICAgICAg ICAgICAgICAgICAgICAgbGliJEJOIGxpYiRCTi0kQ0MgbGliJEJOLSRDQy1tdCBsaWIkQk4tJEND LW10LXMgXAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgbGliJEJOLSRDQy1zICRCTi1tZ3cg JEJOLW1ndy1tdCAkQk4tbWd3LW10LXMgXAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgJEJO LW1ndy1zICRCTi0kQ0MtbXQtJEJPT1NUTElCX01EV19WRVJTSU9OIDsgZG8KLSsgICAgICAgICAg ICAgICAgTERGTEFHUz0iJHtMREZMQUdTfSAtbCRheF9saWIiCi0rICAgIAkJCUFDX0NBQ0hFX0NI RUNLKHRoZSBuYW1lIG9mIHRoZSBCb29zdDo6VW5pdFRlc3RGcmFtZXdvcmsgbGlicmFyeSwKLSsJ ICAgICAgCQkJCQkgICBheF9jdl9ib29zdF91bml0X3Rlc3RfZnJhbWV3b3JrLAotKwkJCQkJCVtB Q19MQU5HX1NBVkUKLSsJCQkgQUNfTEFOR19DUExVU1BMVVMKLSsgICAgICAgICAgICAgICBBQ19M SU5LX0lGRUxTRShbQUNfTEFOR19QUk9HUkFNKFtbQCU6QGluY2x1ZGUgPGJvb3N0L3Rlc3QvdW5p dF90ZXN0LmhwcD5dXSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1t1c2luZyBi b29zdDo6dW5pdF90ZXN0Ojp0ZXN0X3N1aXRlOwotKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB0ZXN0X3N1aXRlKiB0ZXN0PSBCT09TVF9URVNUX1NVSVRFKCAiVW5pdCB0ZXN0IGV4YW1w bGUgMSIgKTsgcmV0dXJuIDA7XV0pXSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg W2xpbmtfdGhyZWFkPSJ5ZXMiXSxbbGlua190aHJlYWQ9Im5vIl0pCi0rCi0rCQkJIEFDX0xBTkdf UkVTVE9SRQotKyAgICAgICAgICAgICAgIF0pCi0rICAgICAgICAgICAgICAgIExERkxBR1M9IiR7 c2F2ZWRfbGRmbGFnc30iCi0rCQkJICAgIGlmIHRlc3QgIngkbGlua190aHJlYWQiID0gInh5ZXMi OyB0aGVuCi0rICAgICAgICAgICAgICAgICAgICBCT09TVF9VTklUX1RFU1RfRlJBTUVXT1JLX0xJ Qj0iLWwkYXhfbGliIgotKyAgICAgICAgICAgICAgICAgICAgQUNfU1VCU1QoQk9PU1RfVU5JVF9U RVNUX0ZSQU1FV09SS19MSUIpCi0rCQkJCQlicmVhawotKwkJCQlmaQotKyAgICAgICAgICAgICAg ZG9uZQotKwkJCSAgICBpZiB0ZXN0ICJ4JGxpbmtfdGhyZWFkIiA9ICJ4bm8iOyB0aGVuCi0rCQkJ CSAgIEFDX01TR19OT1RJQ0UoQ291bGQgbm90IGxpbmsgYWdhaW5zdCAkYXhfbGliICEpCi0rCQkJ CWZpCi0rCQkJZmkKLSsJCWZpCi0rICAgICAgICBDUFBGTEFHUz0iJENQUEZMQUdTX1NBVkVEIgot KyAgICAgICAgTERGTEFHUz0iJExERkxBR1NfU0FWRUQiCi0rCWZpCi0rXSkKLWRpZmYgLU51ciBz b2NpLTMuMC4wXzQtcGFjay9jb25maWcvYXhfbXlzcWwubTQgc29jaS0zLjAuMF90cmVwMzAwL2Nv bmZpZy9heF9teXNxbC5tNAotLS0tIHNvY2ktMy4wLjBfNC1wYWNrL2NvbmZpZy9heF9teXNxbC5t NAkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAotKysrIHNvY2ktMy4wLjBfdHJl cDMwMC9jb25maWcvYXhfbXlzcWwubTQJMjAwOS0wNS0yMiAyMjo1NDozNy4wMDAwMDAwMDAgKzAy MDAKLUBAIC0wLDAgKzEsMTcyIEBACi0rZG5sICRJZDogYXhfbXlzcWwubTQsdiAxLjMgMjAwNy8w Ni8yMyAwMTo1MToyMiBtbG9za290IEV4cCAkCi0rZG5sCi0rZG5sIEBzeW5vcHNpcyBBWF9MSUJf TVlTUUwoW01JTklNVU0tVkVSU0lPTl0pCi0rZG5sCi0rZG5sIFRoaXMgbWFjcm8gcHJvdmlkZXMg dGVzdHMgb2YgYXZhaWxhYmlsaXR5IG9mIE15U1FMIGNsaWVudCBsaWJyYXJ5Ci0rZG5sIG9mIHBh cnRpY3VsYXIgdmVyc2lvbiBvciBuZXdlci4KLStkbmwgCi0rZG5sIEFYX0xJQl9NWVNRTCBtYWNy byB0YWtlcyBvbmx5IG9uZSBhcmd1bWVudCB3aGljaCBpcyBvcHRpb25hbC4gSWYgdGhlcmUgaXMg bm8gCi0rZG5sIHJlcXVpcmVkIHZlcnNpb24gcGFzc2VkLCB0aGVuIG1hY3JvIGRvZXMgbm90IHJ1 biB2ZXJzaW9uIHRlc3QuCi0rZG5sCi0rZG5sIFRoZSAtLXdpdGgtbXlzcWwgb3B0aW9uIHRha2Vz IG9uZSBvZiB0aHJlZSBwb3NzaWJsZSB2YWx1ZXM6Ci0rZG5sIG5vICAgLSBkbyBub3QgY2hlY2sg Zm9yIE15U1FMIGNsaWVudCBsaWJyYXJ5Ci0rZG5sIHllcyAgLSBkbyBjaGVjayBmb3IgTXlTUUwg bGlicmFyeSBpbiBzdGFuZGFyZCBsb2NhdGlvbnMKLStkbmwgICAgICAgIChteXNxbF9jb25maWcg c2hvdWxkIGJlIGluIHRoZSBQQVRIKQotK2RubCBwYXRoIC0gY29tcGxldGUgcGF0aCB0byBteXNx bF9jb25maWcgdXRpbGl0eSwgdXNlIHRoaXMgb3B0aW9uCi0rZG5sICAgICAgICBpZiBteXNxbF9j b25maWcgY2FuJ3QgYmUgZm91bmQgaW4gdGhlIFBBVEgKLStkbmwKLStkbmwgVGhpcyBtYWNybyBj YWxsczoKLStkbmwKLStkbmwgICBBQ19TVUJTVChNWVNRTF9DRkxBR1MpCi0rZG5sICAgQUNfU1VC U1QoTVlTUUxfTERGTEFHUykKLStkbmwgICBBQ19TVUJTVChNWVNRTF9WRVJTSU9OKQotK2RubAot K2RubCBBbmQgc2V0czoKLStkbmwKLStkbmwgICBIQVZFX01ZU1FMCi0rZG5sCi0rZG5sIEBjYXRl Z29yeSBJbnN0YWxsZWRQYWNrYWdlcwotK2RubCBAY2F0ZWdvcnkgQ3h4Ci0rZG5sIEBhdXRob3Ig TWF0ZXVzeiBMb3Nrb3QgPG1hdGV1c3pAbG9za290Lm5ldD4KLStkbmwgQHZlcnNpb24gJERhdGU6 IDIwMDcvMDYvMjMgMDE6NTE6MjIgJAotK2RubCBAbGljZW5zZSBBbGxQZXJtaXNzaXZlCi0rZG5s Ci0rZG5sICRJZDogYXhfbXlzcWwubTQsdiAxLjMgMjAwNy8wNi8yMyAwMTo1MToyMiBtbG9za290 IEV4cCAkCi0rZG5sCi0rQUNfREVGVU4oW0FYX0xJQl9NWVNRTF0sCi0rWwotKyAgICBBQ19BUkdf V0lUSChbbXlzcWxdLAotKyAgICAgICAgQUNfSEVMUF9TVFJJTkcoWy0td2l0aC1teXNxbD1APDpA QVJHQDo+QF0sCi0rICAgICAgICAgICAgW3VzZSBNeVNRTCBjbGllbnQgbGlicmFyeSBAPDpAZGVm YXVsdD15ZXNAOj5ALCBvcHRpb25hbGx5IHNwZWNpZnkgcGF0aCB0byBteXNxbF9jb25maWddCi0r ICAgICAgICApLAotKyAgICAgICAgWwotKwlNWVNRTF9pbmNfY2hlY2s9IiR3aXRoX215c3FsL2lu Y2x1ZGUiCi0rICAgICAgICBpZiB0ZXN0ICIkd2l0aHZhbCIgPSAibm8iOyB0aGVuCi0rICAgICAg ICAgICAgd2FudF9teXNxbD0ibm8iCi0rICAgICAgICBlbGlmIHRlc3QgIiR3aXRodmFsIiA9ICJ5 ZXMiOyB0aGVuCi0rICAgICAgICAgICAgd2FudF9teXNxbD0ieWVzIgotKyAgICAgICAgZWxzZQot KyAgICAgICAgICAgIHdhbnRfbXlzcWw9InllcyIKLSsgICAgICAgICAgICBNWVNRTF9DT05GSUc9 IiR3aXRodmFsIgotKyAgICAgICAgZmkKLSsgICAgICAgIF0sCi0rICAgICAgICBbd2FudF9teXNx bD0ieWVzIgotKwlNWVNRTF9pbmNfY2hlY2s9Ii91c3IvaW5jbHVkZSAvdXNyL2xvY2FsIC9vcHQi XQotKyAgICApCi0rCi0rICAgIE1ZU1FMX0NGTEFHUz0iIgotKyAgICBNWVNRTF9MREZMQUdTPSIi Ci0rICAgIE1ZU1FMX1ZFUlNJT049IiIKLSsKLSsgICAgZG5sCi0rICAgIGRubCBDaGVjayBNeVNR TCBsaWJyYXJpZXMgKGxpYm15c3FsY2xpZW50KQotKyAgICBkbmwKLSsgICAgCi0rICAgIGlmIHRl c3QgIiR3YW50X215c3FsIiA9ICJ5ZXMiOyB0aGVuCi0rCi0rICAgICAgICBpZiB0ZXN0IC16ICIk TVlTUUxfQ09ORklHIiAtbyB0ZXN0OyB0aGVuCi0rICAgICAgICAgICAgQUNfUEFUSF9QUk9HKFtN WVNRTF9DT05GSUddLCBbbXlzcWxfY29uZmlnXSwgW10pCi0rICAgICAgICBmaQotKwotKyAgICAg ICAgZG5sIE1ZU1FMX0NPTkZJRyBpcyBwcm92aWRlZCBidXQgaXQgZG9lcyBub3QgcG9pbnQgdG8g ZXhlY3V0YWJsZSBmaWxlCi0rICAgICAgICBpZiB0ZXN0ICEgLXggIiRNWVNRTF9DT05GSUciOyB0 aGVuCi0rICAgICAgICAgICAgQUNfTVNHX0VSUk9SKFskTVlTUUxfQ09ORklHIGRvZXMgbm90IGV4 aXN0IG9yIGl0IGlzIG5vdCBhbiBleGVjdHVhYmxlIGZpbGVdKQotKyAgICAgICAgICAgIE1ZU1FM X0NPTkZJRz0ibm8iCi0rICAgICAgICAgICAgZm91bmRfbXlzcWw9Im5vIgotKyAgICAgICAgZmkK LSsKLSsgICAgICAgIGlmIHRlc3QgIiRNWVNRTF9DT05GSUciICE9ICJubyI7IHRoZW4KLSsgICAg ICAgICAgICAjCi0rICAgICAgICAgICAgIyBMb29rIGZvciBNeVNRTCBDIEFQSSBoZWFkZXJzCi0r ICAgICAgICAgICAgIwotKyAgICAgICAgICAgIEFDX01TR19DSEVDS0lORyhbZm9yIE15U1FMIGlu Y2x1ZGUgZGlyZWN0b3J5XSkKLSsgICAgICAgICAgICBNWVNRTF9pbmNkaXI9Ci0rICAgICAgICAg ICAgZm9yIG15c3FsX2luY19kaXIgaW4gJE1ZU1FMX2luY19jaGVjawotKyAgICAgICAgICAgIGRv Ci0rICAgICAgICAgICAgICAgIGlmIHRlc3QgLWQgIiRteXNxbF9pbmNfZGlyIiBcCi0rICAgICAg ICAgICAgICAgICYmIHRlc3QgLWYgIiRteXNxbF9pbmNfZGlyL215c3FsL215c3FsLmgiCi0rICAg ICAgICAgICAgICAgIHRoZW4KLSsgICAgICAgICAgICAgICAgICAgIE1ZU1FMX2luY2Rpcj0kbXlz cWxfaW5jX2RpcgotKyAgICAgICAgICAgICAgICAgICAgYnJlYWsKLSsgICAgICAgICAgICAgICAg ZmkKLSsgICAgICAgICAgICBkb25lCi0rCi0rICAgICAgICAgICAgaWYgdGVzdCAteiAiJE1ZU1FM X2luY2RpciIKLSsgICAgICAgICAgICB0aGVuCi0rICAgICAgICAgICAgICAgIEFDX01TR19FUlJP UihbRGlkbid0IGZpbmQgdGhlIE15U1FMIGluY2x1ZGUgZGlyIGluICckTVlTUUxfaW5jX2NoZWNr J10pCi0rICAgICAgICAgICAgZmkKLSsKLSsgICAgICAgICAgICBjYXNlICIkTVlTUUxfaW5jZGly IiBpbgotKyAgICAgICAgICAgICAgICAvKiApIDs7Ci0rICAgICAgICAgICAgICAgICogKSAgQUNf TVNHX0VSUk9SKFtUaGUgTXlTUUwgaW5jbHVkZSBkaXJlY3RvcnkgKCRNWVNRTF9pbmNkaXIpIG11 c3QgYmUgYW4gYWJzb2x1dGUgcGF0aC5dKSA7OwotKyAgICAgICAgICAgIGVzYWMKLSsKLSsgICAg ICAgICAgICBBQ19NU0dfUkVTVUxUKFskTVlTUUxfaW5jZGlyXSkKLSsKLSsgICAgICAgICAgICBp ZiB0ZXN0ICIkTVlTUUxfaW5jZGlyIiA9ICIvdXNyL2luY2x1ZGUiOyB0aGVuCi0rICAgICAgICAg ICAgICBNWVNRTF9DRkxBR1M9IiIKLSsgICAgICAgICAgICBlbHNlCi0rICAgICAgICAgICAgICBN WVNRTF9DRkxBR1M9Ii1JJHtNWVNRTF9pbmNkaXJ9IgotKyAgICAgICAgICAgIGZpCi0rCi0rICAg ICAgICAgICAgTVlTUUxfTERGTEFHUz0iYCRNWVNRTF9DT05GSUcgLS1saWJzYCIKLSsKLSsgICAg ICAgICAgICBNWVNRTF9WRVJTSU9OPWAkTVlTUUxfQ09ORklHIC0tdmVyc2lvbmAKLSsKLSsgICAg ICAgICAgICBBQ19ERUZJTkUoW0hBVkVfTVlTUUxdLCBbMV0sIFtEZWZpbmUgdG8gMSBpZiBNeVNR TCBsaWJyYXJpZXMgYXJlIGF2YWlsYWJsZV0pCi0rICAgICAgICAgICAgCi0rICAgICAgICAgICAg Zm91bmRfbXlzcWw9InllcyIKLSsgICAgICAgIGVsc2UKLSsgICAgICAgICAgICBmb3VuZF9teXNx bD0ibm8iCi0rICAgICAgICBmaQotKyAgICBmaQotKwotKyAgICBkbmwKLSsgICAgZG5sIENoZWNr IGlmIHJlcXVpcmVkIHZlcnNpb24gb2YgTXlTUUwgaXMgYXZhaWxhYmxlCi0rICAgIGRubAotKyAg ICAKLSsKLSsgICAgbXlzcWxfdmVyc2lvbl9yZXE9aWZlbHNlKFskMV0sIFtdLCBbXSwgWyQxXSkK LSsKLSsgICAgaWYgdGVzdCAiJGZvdW5kX215c3FsIiA9ICJ5ZXMiIC1hIC1uICIkbXlzcWxfdmVy c2lvbl9yZXEiOyB0aGVuCi0rCi0rICAgICAgICBBQ19NU0dfQ0hFQ0tJTkcoW2lmIE15U1FMIHZl cnNpb24gaXMgPj0gJG15c3FsX3ZlcnNpb25fcmVxXSkKLSsKLSsgICAgICAgIGRubCBEZWNvbXBv c2UgcmVxdWlyZWQgdmVyc2lvbiBzdHJpbmcgb2YgTXlTUUwKLSsgICAgICAgIGRubCBhbmQgY2Fs Y3VsYXRlIGl0cyBudW1iZXIgcmVwcmVzZW50YXRpb24KLSsgICAgICAgIG15c3FsX3ZlcnNpb25f cmVxX21ham9yPWBleHByICRteXNxbF92ZXJzaW9uX3JlcSA6ICdcKFtbMC05XV0qXCknYAotKyAg ICAgICAgbXlzcWxfdmVyc2lvbl9yZXFfbWlub3I9YGV4cHIgJG15c3FsX3ZlcnNpb25fcmVxIDog J1tbMC05XV0qXC5cKFtbMC05XV0qXCknYAotKyAgICAgICAgbXlzcWxfdmVyc2lvbl9yZXFfbWlj cm89YGV4cHIgJG15c3FsX3ZlcnNpb25fcmVxIDogJ1tbMC05XV0qXC5bWzAtOV1dKlwuXChbWzAt OV1dKlwpJ2AKLSsgICAgICAgIGlmIHRlc3QgIngkbXlzcWxfdmVyc2lvbl9yZXFfbWljcm8iID0g IngiOyB0aGVuCi0rICAgICAgICAgICAgbXlzcWxfdmVyc2lvbl9yZXFfbWljcm89IjAiCi0rICAg ICAgICBmaQotKwotKyAgICAgICAgbXlzcWxfdmVyc2lvbl9yZXFfbnVtYmVyPWBleHByICRteXNx bF92ZXJzaW9uX3JlcV9tYWpvciBcKiAxMDAwMDAwIFwKLSsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFwrICRteXNxbF92ZXJzaW9uX3JlcV9taW5vciBcKiAxMDAwIFwKLSsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwrICRteXNxbF92ZXJzaW9uX3JlcV9taWNy b2AKLSsKLSsgICAgICAgIGRubCBEZWNvbXBvc2UgdmVyc2lvbiBzdHJpbmcgb2YgaW5zdGFsbGVk IE15U1FMCi0rICAgICAgICBkbmwgYW5kIGNhbGN1bGF0ZSBpdHMgbnVtYmVyIHJlcHJlc2VudGF0 aW9uCi0rICAgICAgICBteXNxbF92ZXJzaW9uX21ham9yPWBleHByICRNWVNRTF9WRVJTSU9OIDog J1woW1swLTldXSpcKSdgCi0rICAgICAgICBteXNxbF92ZXJzaW9uX21pbm9yPWBleHByICRNWVNR TF9WRVJTSU9OIDogJ1tbMC05XV0qXC5cKFtbMC05XV0qXCknYAotKyAgICAgICAgbXlzcWxfdmVy c2lvbl9taWNybz1gZXhwciAkTVlTUUxfVkVSU0lPTiA6ICdbWzAtOV1dKlwuW1swLTldXSpcLlwo W1swLTldXSpcKSdgCi0rICAgICAgICBpZiB0ZXN0ICJ4JG15c3FsX3ZlcnNpb25fbWljcm8iID0g IngiOyB0aGVuCi0rICAgICAgICAgICAgbXlzcWxfdmVyc2lvbl9taWNybz0iMCIKLSsgICAgICAg IGZpCi0rCi0rICAgICAgICBteXNxbF92ZXJzaW9uX251bWJlcj1gZXhwciAkbXlzcWxfdmVyc2lv bl9tYWpvciBcKiAxMDAwMDAwIFwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFwrICRteXNxbF92ZXJzaW9uX21pbm9yIFwqIDEwMDAgXAotKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgXCsgJG15c3FsX3ZlcnNpb25fbWljcm9gCi0rCi0rICAgICAgICBteXNx bF92ZXJzaW9uX2NoZWNrPWBleHByICRteXNxbF92ZXJzaW9uX251bWJlciBcPlw9ICRteXNxbF92 ZXJzaW9uX3JlcV9udW1iZXJgCi0rICAgICAgICBpZiB0ZXN0ICIkbXlzcWxfdmVyc2lvbl9jaGVj ayIgPSAiMSI7IHRoZW4KLSsgICAgICAgICAgICBBQ19NU0dfUkVTVUxUKFt5ZXNdKQotKyAgICAg ICAgZWxzZQotKyAgICAgICAgICAgIEFDX01TR19SRVNVTFQoW25vXSkKLSsgICAgICAgIGZpCi0r ICAgIGZpCi0rCi0rICAgIEFDX1NVQlNUKFtNWVNRTF9WRVJTSU9OXSkKLSsgICAgQUNfU1VCU1Qo W01ZU1FMX0NGTEFHU10pCi0rICAgIEFDX1NVQlNUKFtNWVNRTF9MREZMQUdTXSkKLStdKQotZGlm ZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL2NvbmZpZy9heF9vcmFjbGVfb2NpLm00IHNvY2ktMy4w LjBfdHJlcDMwMC9jb25maWcvYXhfb3JhY2xlX29jaS5tNAotLS0tIHNvY2ktMy4wLjBfNC1wYWNr L2NvbmZpZy9heF9vcmFjbGVfb2NpLm00CTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICsw MTAwCi0rKysgc29jaS0zLjAuMF90cmVwMzAwL2NvbmZpZy9heF9vcmFjbGVfb2NpLm00CTIwMDkt MDUtMjIgMjI6NTQ6MzcuMDAwMDAwMDAwICswMjAwCi1AQCAtMCwwICsxLDI4NiBAQAotK2RubCAk SWQ6IGF4X29yYWNsZV9vY2kubTQsdiAxLjExIDIwMDgvMDQvMjggMTk6NTg6NTQgbWxvc2tvdCBF eHAgJAotK2RubAotK2RubCBAc3lub3BzaXMgQVhfTElCX09SQUNMRV9PQ0koW01JTklNVU0tVkVS U0lPTl0pCi0rZG5sCi0rZG5sIFRoaXMgbWFjcm8gcHJvdmlkZXMgdGVzdHMgb2YgYXZhaWxhYmls aXR5IG9mIE9yYWNsZSBPQ0kgQVBJCi0rZG5sIG9mIHBhcnRpY3VsYXIgdmVyc2lvbiBvciBuZXdl ci4KLStkbmwgVGhpcyBtYWNyb3MgY2hlY2tzIGZvciBPcmFjbGUgT0NJIGhlYWRlcnMgYW5kIGxp YnJhcmllcyAKLStkbmwgYW5kIGRlZmluZXMgY29tcGlsYXRpb24gZmxhZ3MKLStkbmwgCi0rZG5s IE1hY3JvIHN1cHBvcnRzIGZvbGxvd2luZyBvcHRpb25zIGFuZCB0aGVpciB2YWx1ZXM6Ci0rZG5s IDEpIFNpbmdsZS1vcHRpb24gdXNhZ2U6Ci0rZG5sIC0td2l0aC1vcmFjbGUgLSBwYXRoIHRvIE9S QUNMRV9IT01FIGRpcmVjdG9yeQotK2RubCAyKSBUd28tb3B0aW9ucyB1c2FnZSAoYm90aCBvcHRp b25zIGFyZSByZXF1aXJlZCk6Ci0rZG5sIC0td2l0aC1vcmFjbGUtaW5jbHVkZSAtIHBhdGggdG8g ZGlyZWN0b3J5IHdpdGggT0NJIGhlYWRlcnMKLStkbmwgLS13aXRoLW9yYWNsZS1saWIgLSBwYXRo IHRvIGRpcmVjdG9yeSB3aXRoIE9DSSBsaWJyYXJpZXMgCi0rZG5sCi0rZG5sIE5PVEU6IFRoZXNl IG9wdGlvbnMgZGVzY3JpYmVkIGFib3ZlIGRvZXMgbm90IHRha2UgeWVzfG5vIHZhbHVlcy4KLStk bmwgSWYgJ3llcycgdmFsdWUgaXMgcGFzc2VkLCB0aGVuIFdBUk5JTkcgbWVzc2FnZSB3aWxsIGJl IGRpc3BsYXllZCwKLStkbmwgJ25vJyB2YWx1ZSwgYXMgd2VsbCBhcyB0aGUgLS13aXRob3V0LW9y YWNsZSogdmFyaWF0aW9ucyB3aWxsIGNhdXNlCi0rZG5sIHRoZSBtYWNybyB3b24ndCBjaGVjayBl bnl0aGluZy4KLStkbmwKLStkbmwgVGhpcyBtYWNybyBjYWxsczoKLStkbmwKLStkbmwgICBBQ19T VUJTVChPUkFDTEVfT0NJX0NGTEFHUykKLStkbmwgICBBQ19TVUJTVChPUkFDTEVfT0NJX0xERkxB R1MpCi0rZG5sICAgQUNfU1VCU1QoT1JBQ0xFX09DSV9WRVJTSU9OKQotK2RubAotK2RubCBBbmQg c2V0czoKLStkbmwKLStkbmwgICBIQVZFX09SQUNMRQotK2RubAotK2RubCBAY2F0ZWdvcnkgSW5z dGFsbGVkUGFja2FnZXMKLStkbmwgQGNhdGVnb3J5IEN4eAotK2RubCBAYXV0aG9yIE1hdGV1c3og TG9za290IDxtYXRldXN6QGxvc2tvdC5uZXQ+Ci0rZG5sIEB2ZXJzaW9uICREYXRlOiAyMDA4LzA0 LzI4IDE5OjU4OjU0ICQKLStkbmwgQGxpY2Vuc2UgQWxsUGVybWlzc2l2ZQotK2RubAotK2RubCAk SWQ6IGF4X29yYWNsZV9vY2kubTQsdiAxLjExIDIwMDgvMDQvMjggMTk6NTg6NTQgbWxvc2tvdCBF eHAgJAotK2RubAotK0FDX0RFRlVOKFtBWF9MSUJfT1JBQ0xFX09DSV0sCi0rWwotKyAgICBBQ19S RVFVSVJFKFtBQ19DQU5PTklDQUxfSE9TVF0pCi0rICAgIEFDX0FSR19XSVRIKFtvcmFjbGVdLAot KyAgICAgICAgQUNfSEVMUF9TVFJJTkcoWy0td2l0aC1vcmFjbGU9QDw6QERJUkA6PkBdLAotKyAg ICAgICAgICAgIFt1c2UgT3JhY2xlIE9DSSBBUEkgZnJvbSBnaXZlbiBwYXRoIHRvIE9yYWNsZSBo b21lIGRpcmVjdG9yeV0KLSsgICAgICAgICksCi0rICAgICAgICBbCi0rICAgICAgICBpZiB0ZXN0 ICIkd2l0aHZhbCIgPSAieWVzIjsgdGhlbgotKyAgICAgICAgICAgIGlmIHRlc3QgLW4gIiRPUkFD TEVfSE9NRSI7IHRoZW4KLSsgICAgICAgICAgICAgICAgb3JhY2xlX2hvbWVfZGlyPSIkT1JBQ0xF X0hPTUUiCi0rICAgICAgICAgICAgZWxzZQotKyAgICAgICAgICAgICAgICBvcmFjbGVfaG9tZV9k aXI9IiIKLSsgICAgICAgICAgICBmaSAKLSsgICAgICAgIGZpCi0rICAgICAgICBdLAotKyAgICAg ICAgWwotKyAgICAgICAgaWYgdGVzdCAtbiAiJE9SQUNMRV9IT01FIjsgdGhlbgotKyAgICAgICAg ICAgIG9yYWNsZV9ob21lX2Rpcj0iJE9SQUNMRV9IT01FIgotKyAgICAgICAgZWxzZQotKyAgICAg ICAgICAgIG9yYWNsZV9ob21lX2Rpcj0iIgotKyAgICAgICAgZmkgCi0rICAgICAgICBdCi0rICAg ICkKLSsKLSsgICAgQUNfQVJHX1dJVEgoW29yYWNsZS1pbmNsdWRlXSwKLSsgICAgICAgIEFDX0hF TFBfU1RSSU5HKFstLXdpdGgtb3JhY2xlLWluY2x1ZGU9QDw6QERJUkA6PkBdLAotKyAgICAgICAg ICAgIFt1c2UgT3JhY2xlIE9DSSBBUEkgaGVhZGVycyBmcm9tIGdpdmVuIHBhdGhdCi0rICAgICAg ICApLAotKyAgICAgICAgW29yYWNsZV9ob21lX2luY2x1ZGVfZGlyPSIkd2l0aHZhbCJdLAotKyAg ICAgICAgW29yYWNsZV9ob21lX2luY2x1ZGVfZGlyPSIiXQotKyAgICApCi0rICAgIEFDX0FSR19X SVRIKFtvcmFjbGUtbGliXSwKLSsgICAgICAgIEFDX0hFTFBfU1RSSU5HKFstLXdpdGgtb3JhY2xl LWxpYj1APDpARElSQDo+QF0sCi0rICAgICAgICAgICAgW3VzZSBPcmFjbGUgT0NJIEFQSSBsaWJy YXJpZXMgZnJvbSBnaXZlbiBwYXRoXQotKyAgICAgICAgKSwKLSsgICAgICAgIFtvcmFjbGVfaG9t ZV9saWJfZGlyPSIkd2l0aHZhbCJdLAotKyAgICAgICAgW29yYWNsZV9ob21lX2xpYl9kaXI9IiJd Ci0rICAgICkKLSsKLSsgICAgT1JBQ0xFX09DSV9DRkxBR1M9IiIKLSsgICAgT1JBQ0xFX09DSV9M REZMQUdTPSIiCi0rICAgIE9SQUNMRV9PQ0lfVkVSU0lPTj0iIgotKwotKyAgICBkbmwKLSsgICAg ZG5sIENvbGxlY3QgaW5jbHVkZS9saWIgcGF0aHMKLSsgICAgZG5sIAotKyAgICB3YW50X29yYWNs ZV9idXRfbm9fcGF0aD0ibm8iCi0rCi0rICAgIGlmIHRlc3QgLW4gIiRvcmFjbGVfaG9tZV9kaXIi OyB0aGVuCi0rCi0rICAgICAgICBpZiB0ZXN0ICIkb3JhY2xlX2hvbWVfZGlyIiAhPSAibm8iIC1h ICIkb3JhY2xlX2hvbWVfZGlyIiAhPSAieWVzIjsgdGhlbgotKyAgICAgICAgICAgIGRubCBPUkFD TEVfSE9NRSBwYXRoIHByb3ZpZGVkCi0rICAgICAgICAgICAgCi0rICAgICAgICAgICAgZG5sIFBy aW1hcnkgcGF0aCB0byBPQ0kgaGVhZGVycywgYXZhaWxhYmxlIGluIE9yYWNsZT49MTAKLSsgICAg ICAgICAgICBvcmFjbGVfaW5jbHVkZV9kaXI9IiRvcmFjbGVfaG9tZV9kaXIvcmRibXMvcHVibGlj IgotKyAgICAgICAgICAgIAotKyAgICAgICAgICAgIGRubCBTZWNvbmRhcnkgcGF0aCB0byBPQ0kg aGVhZGVycyB1c2VkIGJ5IG9sZGVyIHZlcnNpb25zCi0rICAgICAgICAgICAgb3JhY2xlX2luY2x1 ZGVfZGlyMj0iJG9yYWNsZV9ob21lX2Rpci9yZGJtcy9kZW1vIgotKwotKyAgICAgICAgICAgIGRu bCBMaWJyYXJ5IHBhdGgKLSsgICAgICAgICAgICBvcmFjbGVfbGliX2Rpcj0iJG9yYWNsZV9ob21l X2Rpci9saWIiCi0rICAgICAgICBlbGlmIHRlc3QgIiRvcmFjbGVfaG9tZV9kaXIiID0gInllcyI7 IHRoZW4KLSsgICAgICAgICAgICB3YW50X29yYWNsZV9idXRfbm9fcGF0aD0ieWVzIgotKyAgICAg ICAgZmkKLSsKLSsgICAgZWxpZiB0ZXN0IC1uICIkb3JhY2xlX2hvbWVfaW5jbHVkZV9kaXIiIC1v IC1uICIkb3JhY2xlX2hvbWVfbGliX2RpciI7IHRoZW4KLSsKLSsgICAgICAgIGlmIHRlc3QgIiRv cmFjbGVfaG9tZV9pbmNsdWRlX2RpciIgIT0gIm5vIiAtYSAiJG9yYWNsZV9ob21lX2luY2x1ZGVf ZGlyIiAhPSAieWVzIjsgdGhlbgotKyAgICAgICAgICAgIG9yYWNsZV9pbmNsdWRlX2Rpcj0iJG9y YWNsZV9ob21lX2luY2x1ZGVfZGlyIgotKyAgICAgICAgZWxpZiB0ZXN0ICIkb3JhY2xlX2hvbWVf aW5jbHVkZV9kaXIiID0gInllcyI7IHRoZW4KLSsgICAgICAgICAgICB3YW50X29yYWNsZV9idXRf bm9fcGF0aD0ieWVzIgotKyAgICAgICAgZmkKLSsKLSsgICAgICAgIGlmIHRlc3QgIiRvcmFjbGVf aG9tZV9saWJfZGlyIiAhPSAibm8iIC1hICIkb3JhY2xlX2hvbWVfbGliX2RpciIgIT0gInllcyI7 IHRoZW4KLSsgICAgICAgICAgICBvcmFjbGVfbGliX2Rpcj0iJG9yYWNsZV9ob21lX2xpYl9kaXIi Ci0rICAgICAgICBlbGlmIHRlc3QgIiRvcmFjbGVfaG9tZV9saWJfZGlyIiA9ICJ5ZXMiOyB0aGVu Ci0rICAgICAgICAgICAgd2FudF9vcmFjbGVfYnV0X25vX3BhdGg9InllcyIKLSsgICAgICAgIGZp Ci0rICAgIGZpCi0rCi0rICAgIGlmIHRlc3QgIiR3YW50X29yYWNsZV9idXRfbm9fcGF0aCIgPSAi eWVzIjsgdGhlbgotKyAgICAgICAgQUNfTVNHX1dBUk4oW09yYWNsZSBzdXBwb3J0IGlzIHJlcXVl c3RlZCBidXQgbm8gT3JhY2xlIHBhdGhzIGhhdmUgYmVlbiBwcm92aWRlZC4gXAotK1BsZWFzZSwg bG9jYXRlIE9yYWNsZSBkaXJlY3RvcmllcyB1c2luZyAtLXdpdGgtb3JhY2xlIG9yIFwKLSstLXdp dGgtb3JhY2xlLWluY2x1ZGUgYW5kIC0td2l0aC1vcmFjbGUtbGliIG9wdGlvbnMuXSkKLSsgICAg ZmkKLSsKLSsgICAgZG5sCi0rICAgIGRubCBDaGVjayBPQ0kgZmlsZXMKLSsgICAgZG5sCi0rICAg IGlmIHRlc3QgLW4gIiRvcmFjbGVfaW5jbHVkZV9kaXIiIC1hIC1uICIkb3JhY2xlX2xpYl9kaXIi OyB0aGVuCi0rCi0rICAgICAgICBzYXZlZF9DUFBGTEFHUz0iJENQUEZMQUdTIgotKyAgICAgICAg Q1BQRkxBR1M9IiRDUFBGTEFHUyAtSSRvcmFjbGVfaW5jbHVkZV9kaXIiCi0rCi0rICAgICAgICBk bmwgQWRkaXRpb25hbCBwYXRoIGZvciBvbGRlciBPcmFjbGUgaW5zdGFsbGF0aW9ucyAKLSsgICAg ICAgIGlmIHRlc3QgLW4gIiRvcmFjbGVfaW5jbHVkZV9kaXIyIjsgdGhlbgotKyAgICAgICAgICAg IENQUEZMQUdTPSIkQ1BQRkxBR1MgLUkkb3JhY2xlX2luY2x1ZGVfZGlyMiIKLSsgICAgICAgIGZp Ci0rCi0rICAgICAgICAjIEZpZ3VyZSBvdXQgaWYgd2UgYXJlIGJ1aWxkaW5nIG9uIHdpbjMyLgot KyAgICAgICAgY2FzZSAkaG9zdF9vcyBpbgotKyAgICAgICAgICAgICptaW5ndzMyKiApIFdJTjMy PXllcyA7OwotKyAgICAgICAgICAgICpjeWd3aW4qICkgIFdJTjMyPXllcyA7OwotKyAgICAgICAg ICAgICopIFdJTjMyPW5vIDs7Ci0rICAgICAgICBlc2FjCi0rCi0rICAgICAgICBpZiB0ZXN0ICIk V0lOMzIiID0gIm5vIgotKyAgICAgICAgdGhlbgotKyAgICAgICAgICAgIG9jaV9saWJzPSItbGNs bnRzaCAtbG5uejExIgotKyAgICAgICAgZWxzZQotKyAgICAgICAgICAgIG9jaV9saWJzPSItbG9j aSIKLSsgICAgICAgIGZpCi0rCi0rICAgICAgICBzYXZlZF9MREZMQUdTPSIkTERGTEFHUyIKLSsg ICAgICAgIHNhdmVkX0xJQlM9IiRMSUJTIgotKyAgICAgICAgb2NpX2xkZmxhZ3M9Ii1MJG9yYWNs ZV9saWJfZGlyIgotKyAgICAgICAgTERGTEFHUz0iJExERkxBR1MgJG9jaV9sZGZsYWdzIgotKyAg ICAgICAgTElCUz0iJExJQlMgJG9jaV9saWJzIgotKwotKyAgICAgICAgZG5sCi0rICAgICAgICBk bmwgQ2hlY2sgT0NJIGhlYWRlcnMKLSsgICAgICAgIGRubAotKyAgICAgICAgQUNfTVNHX0NIRUNL SU5HKFtmb3IgT3JhY2xlIE9DSSBoZWFkZXJzIGluICRvcmFjbGVfaW5jbHVkZV9kaXJdKQotKwot KyAgICAgICAgQUNfTEFOR19QVVNIKEMrKykKLSsgICAgICAgIEFDX0NPTVBJTEVfSUZFTFNFKFsK LSsgICAgICAgICAgICBBQ19MQU5HX1BST0dSQU0oW1tAJTpAaW5jbHVkZSA8b2NpLmg+XV0sCi0r ICAgICAgICAgICAgICAgIFtbCi0rI2lmIGRlZmluZWQoT0NJX01BSk9SX1ZFUlNJT04pCi0rI2lm IE9DSV9NQUpPUl9WRVJTSU9OID09IDEwICYmIE9DSV9NSU5PUl9WRVJTSU9OID09IDIKLSsvLyBP cmFjbGUgMTAuMiBkZXRlY3RlZAotKyNlbmRpZgotKyNlbGlmIGRlZmluZWQoT0NJX1Y3X1NZTlRB WCkKLSsvLyBPSywgb2xkZXIgT3JhY2xlIGRldGVjdGVkCi0rLy8gVE9ETyAtIG1sb3Nrb3Q6IGZp bmQgYmV0dGVyIG1hY3JvIHRvIGNoZWNrIGZvciBvbGRlciB2ZXJzaW9uczsgCi0rI2Vsc2UKLSsj ICBlcnJvciBPcmFjbGUgb2NpLmggaGVhZGVyIG5vdCBmb3VuZAotKyNlbmRpZgotKyAgICAgICAg ICAgICAgICBdXQotKyAgICAgICAgICAgICldLAotKyAgICAgICAgICAgIFsKLSsgICAgICAgICAg ICBPUkFDTEVfT0NJX0NGTEFHUz0iLUkkb3JhY2xlX2luY2x1ZGVfZGlyIgotKwotKyAgICAgICAg ICAgIGlmIHRlc3QgLW4gIiRvcmFjbGVfaW5jbHVkZV9kaXIyIjsgdGhlbgotKyAgICAgICAgICAg ICAgICBPUkFDTEVfT0NJX0NGTEFHUz0iJE9SQUNMRV9PQ0lfQ0ZMQUdTIC1JJG9yYWNsZV9pbmNs dWRlX2RpcjIiCi0rICAgICAgICAgICAgZmkKLSsKLSsgICAgICAgICAgICBvY2lfaGVhZGVyX2Zv dW5kPSJ5ZXMiCi0rICAgICAgICAgICAgQUNfTVNHX1JFU1VMVChbeWVzXSkKLSsgICAgICAgICAg ICBdLAotKyAgICAgICAgICAgIFsKLSsgICAgICAgICAgICBvY2lfaGVhZGVyX2ZvdW5kPSJubyIK LSsgICAgICAgICAgICBBQ19NU0dfUkVTVUxUKFtub3QgZm91bmRdKQotKyAgICAgICAgICAgIF0K LSsgICAgICAgICkKLSsgICAgICAgIEFDX0xBTkdfUE9QKFtDKytdKQotKyAgICAgICAgCi0rICAg ICAgICBkbmwKLSsgICAgICAgIGRubCBDaGVjayBPQ0kgbGlicmFyaWVzCi0rICAgICAgICBkbmwK LSsgICAgICAgIGlmIHRlc3QgIiRvY2lfaGVhZGVyX2ZvdW5kIiA9ICJ5ZXMiOyB0aGVuCi0rCi0r ICAgICAgICAgICAgQUNfTVNHX0NIRUNLSU5HKFtmb3IgT3JhY2xlIE9DSSBsaWJyYXJpZXMgaW4g JG9yYWNsZV9saWJfZGlyXSkKLSsKLSsgICAgICAgICAgICBBQ19MQU5HX1BVU0goQysrKQotKyAg ICAgICAgICAgIEFDX0xJTktfSUZFTFNFKFsKLSsgICAgICAgICAgICAgICAgQUNfTEFOR19QUk9H UkFNKFtbQCU6QGluY2x1ZGUgPG9jaS5oPl1dLAotKyAgICAgICAgICAgICAgICAgICAgW1sKLStP Q0lFbnYqIGVudmggPSAwOwotK09DSUVudkNyZWF0ZSgmZW52aCwgT0NJX0RFRkFVTFQsIDAsIDAs IDAsIDAsIDAsIDApOwotK2lmIChlbnZoKSBPQ0lIYW5kbGVGcmVlKGVudmgsIE9DSV9IVFlQRV9F TlYpOwotKyAgICAgICAgICAgICAgICAgICAgXV0KLSsgICAgICAgICAgICAgICAgKV0sCi0rICAg ICAgICAgICAgICAgIFsKLSsgICAgICAgICAgICAgICAgT1JBQ0xFX09DSV9MREZMQUdTPSIkb2Np X2xkZmxhZ3MgJG9jaV9saWJzIgotKyAgICAgICAgICAgICAgICBvY2lfbGliX2ZvdW5kPSJ5ZXMi Ci0rICAgICAgICAgICAgICAgIEFDX01TR19SRVNVTFQoW3llc10pCi0rICAgICAgICAgICAgICAg IF0sCi0rICAgICAgICAgICAgICAgIFsKLSsgICAgICAgICAgICAgICAgb2NpX2xpYl9mb3VuZD0i bm8iCi0rICAgICAgICAgICAgICAgIEFDX01TR19SRVNVTFQoW25vdCBmb3VuZF0pCi0rICAgICAg ICAgICAgICAgIF0KLSsgICAgICAgICAgICApCi0rICAgICAgICAgICAgQUNfTEFOR19QT1AoW0Mr K10pCi0rICAgICAgICBmaQotKwotKyAgICAgICAgQ1BQRkxBR1M9IiRzYXZlZF9DUFBGTEFHUyIK LSsgICAgICAgIExERkxBR1M9IiRzYXZlZF9MREZMQUdTIgotKyAgICAgICAgTElCUz0iJHNhdmVk X0xJQlMiCi0rICAgIGZpCi0rCi0rICAgIGRubAotKyAgICBkbmwgQ2hlY2sgcmVxdWlyZWQgdmVy c2lvbiBvZiBPcmFjbGUgaXMgYXZhaWxhYmxlCi0rICAgIGRubAotKyAgICBvcmFjbGVfdmVyc2lv bl9yZXE9aWZlbHNlKFskMV0sIFtdLCBbXSwgWyQxXSkKLSsKLSsgICAgaWYgdGVzdCAiJG9jaV9o ZWFkZXJfZm91bmQiID0gInllcyIgLWEgIiRvY2lfbGliX2ZvdW5kIiA9ICJ5ZXMiIC1hIFwKLSsg ICAgICAgIC1uICIkb3JhY2xlX3ZlcnNpb25fcmVxIjsgdGhlbgotKwotKyAgICAgICAgb3JhY2xl X3ZlcnNpb25fbWFqb3I9YGNhdCAkb3JhY2xlX2luY2x1ZGVfZGlyL29jaS5oIFwKLSsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHwgZ3JlcCAnI2RlZmluZS4qT0NJX01BSk9SX1ZFUlNJT04u KicgXAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBzZWQgLWUgJ3MvI2RlZmluZSBP Q0lfTUFKT1JfVkVSU0lPTiAgKi8vJyBcCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8 IHNlZCAtZSAncy8gICpcL1wqLipcKlwvLy8nYAotKwotKyAgICAgICAgb3JhY2xlX3ZlcnNpb25f bWlub3I9YGNhdCAkb3JhY2xlX2luY2x1ZGVfZGlyL29jaS5oIFwKLSsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHwgZ3JlcCAnI2RlZmluZS4qT0NJX01JTk9SX1ZFUlNJT04uKicgXAotKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBzZWQgLWUgJ3MvI2RlZmluZSBPQ0lfTUlOT1Jf VkVSU0lPTiAgKi8vJyBcCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IHNlZCAtZSAn cy8gICpcL1wqLipcKlwvLy8nYAotKwotKyAgICAgICAgQUNfTVNHX0NIRUNLSU5HKFtpZiBPcmFj bGUgT0NJIHZlcnNpb24gaXMgPj0gJG9yYWNsZV92ZXJzaW9uX3JlcV0pCi0rCi0rICAgICAgICBp ZiB0ZXN0IC1uICIkb3JhY2xlX3ZlcnNpb25fbWFqb3IiIC1hIC1uICQib3JhY2xlX3ZlcnNpb25f bWlub3IiOyB0aGVuCi0rCi0rICAgICAgICAgICAgT1JBQ0xFX09DSV9WRVJTSU9OPSIkb3JhY2xl X3ZlcnNpb25fbWFqb3IuJG9yYWNsZV92ZXJzaW9uX21pbm9yIgotKwotKyAgICAgICAgICAgIGRu bCBEZWNvbXBvc2UgcmVxdWlyZWQgdmVyc2lvbiBzdHJpbmcgb2YgT3JhY2xlCi0rICAgICAgICAg ICAgZG5sIGFuZCBjYWxjdWxhdGUgaXRzIG51bWJlciByZXByZXNlbnRhdGlvbgotKyAgICAgICAg ICAgIG9yYWNsZV92ZXJzaW9uX3JlcV9tYWpvcj1gZXhwciAkb3JhY2xlX3ZlcnNpb25fcmVxIDog J1woW1swLTldXSpcKSdgCi0rICAgICAgICAgICAgb3JhY2xlX3ZlcnNpb25fcmVxX21pbm9yPWBl eHByICRvcmFjbGVfdmVyc2lvbl9yZXEgOiAnW1swLTldXSpcLlwoW1swLTldXSpcKSdgCi0rCi0r ICAgICAgICAgICAgb3JhY2xlX3ZlcnNpb25fcmVxX251bWJlcj1gZXhwciAkb3JhY2xlX3ZlcnNp b25fcmVxX21ham9yIFwqIDEwMDAwMDAgXAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFwrICRvcmFjbGVfdmVyc2lvbl9yZXFfbWlub3IgXCogMTAwMGAKLSsKLSsgICAg ICAgICAgICBkbmwgQ2FsY3VsYXRlIGl0cyBudW1iZXIgcmVwcmVzZW50YXRpb24gCi0rICAgICAg ICAgICAgb3JhY2xlX3ZlcnNpb25fbnVtYmVyPWBleHByICRvcmFjbGVfdmVyc2lvbl9tYWpvciBc KiAxMDAwMDAwIFwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCsgJG9yYWNs ZV92ZXJzaW9uX21pbm9yIFwqIDEwMDBgCi0rCi0rICAgICAgICAgICAgb3JhY2xlX3ZlcnNpb25f Y2hlY2s9YGV4cHIgJG9yYWNsZV92ZXJzaW9uX251bWJlciBcPlw9ICRvcmFjbGVfdmVyc2lvbl9y ZXFfbnVtYmVyYAotKyAgICAgICAgICAgIGlmIHRlc3QgIiRvcmFjbGVfdmVyc2lvbl9jaGVjayIg PSAiMSI7IHRoZW4KLSsgICAgICAgICAgICAgICAgQUNfTVNHX1JFU1VMVChbeWVzXSkKLSsgICAg ICAgICAgICAgICAgQUNfREVGSU5FKEhBVkVfT1JBQ0xFLCBbMV0sIFtEZWZpbmUgdG8gMSBpZiB0 aGUgT3JhY2xlIE9DSSBsaWJyYXJ5IGlzIGF2YWlsYWJsZV0pCi0rICAgICAgICAgICAgZWxzZQot KyAgICAgICAgICAgICAgICBBQ19NU0dfUkVTVUxUKFtub10pCi0rICAgICAgICAgICAgICAgIEFD X01TR19FUlJPUihbT3JhY2xlICRPUkFDTEVfT0NJX1ZFUlNJT04gZm91bmQsIGJ1dCByZXF1aXJl ZCB2ZXJzaW9uIGlzICRvcmFjbGVfdmVyc2lvbl9yZXFdKQotKyAgICAgICAgICAgIGZpCi0rICAg ICAgICBlbHNlCi0rICAgICAgICAgICAgT1JBQ0xFX09DSV9WRVJTSU9OPSJVTktOT1dOIgotKyAg ICAgICAgICAgIEFDX01TR19SRVNVTFQoW25vXSkKLSsgICAgICAgICAgICBBQ19NU0dfV0FSTihb T3JhY2xlIHZlcnNpb24gdW5rbm93biwgcHJvYmFibHkgT0NJIG9sZGVyIHRoYW4gMTAuMiBpcyBh dmFpbGFibGVdKQotKyAgICAgICAgZmkKLSsgICAgZmkKLSsKLSsgICAgQUNfU1VCU1QoW09SQUNM RV9PQ0lfVkVSU0lPTl0pCi0rICAgIEFDX1NVQlNUKFtPUkFDTEVfT0NJX0NGTEFHU10pCi0rICAg IEFDX1NVQlNUKFtPUkFDTEVfT0NJX0xERkxBR1NdKQotK10pCi1kaWZmIC1OdXIgc29jaS0zLjAu MF80LXBhY2svY29uZmlnL2F4X3Bvc3RncmVzcWwubTQgc29jaS0zLjAuMF90cmVwMzAwL2NvbmZp Zy9heF9wb3N0Z3Jlc3FsLm00Ci0tLS0gc29jaS0zLjAuMF80LXBhY2svY29uZmlnL2F4X3Bvc3Rn cmVzcWwubTQJMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBzb2NpLTMu MC4wX3RyZXAzMDAvY29uZmlnL2F4X3Bvc3RncmVzcWwubTQJMjAwOS0wNS0yMiAyMjo1NDozNy4w MDAwMDAwMDAgKzAyMDAKLUBAIC0wLDAgKzEsMTcxIEBACi0rZG5sICRJZDogYXhfcG9zdGdyZXNx bC5tNCx2IDEuMyAyMDA3LzA2LzIzIDAxOjUxOjIyIG1sb3Nrb3QgRXhwICQKLStkbmwKLStkbmwg QHN5bm9wc2lzIEFYX0xJQl9QT1NUR1JFU1FMKFtNSU5JTVVNLVZFUlNJT05dKQotK2RubAotK2Ru bCBUaGlzIG1hY3JvIHByb3ZpZGVzIHRlc3RzIG9mIGF2YWlsYWJpbGl0eSBvZiBQb3N0Z3JlU1FM ICdsaWJwcScgbGlicmFyeQotK2RubCBvZiBwYXJ0aWN1bGFyIHZlcnNpb24gb3IgbmV3ZXIuCi0r ZG5sIAotK2RubCBBWF9MSUJfUE9TVEdSRVNRTCBtYWNybyB0YWtlcyBvbmx5IG9uZSBhcmd1bWVu dCB3aGljaCBpcyBvcHRpb25hbC4gSWYgdGhlcmUgaXMgbm8gCi0rZG5sIHJlcXVpcmVkIHZlcnNp b24gcGFzc2VkLCB0aGVuIG1hY3JvIGRvZXMgbm90IHJ1biB2ZXJzaW9uIHRlc3QuCi0rZG5sCi0r ZG5sIFRoZSAtLXdpdGgtcG9zdGdyZXNxbCBvcHRpb24gdGFrZXMgb25lIG9mIHRocmVlIHBvc3Np YmxlIHZhbHVlczoKLStkbmwgbm8gICAtIGRvIG5vdCBjaGVjayBmb3IgUG9zdGdyZVNRTCBjbGll bnQgbGlicmFyeQotK2RubCB5ZXMgIC0gZG8gY2hlY2sgZm9yIFBvc3RncmVTUUwgbGlicmFyeSBp biBzdGFuZGFyZCBsb2NhdGlvbnMKLStkbmwgICAgICAgIChwZ19jb25maWcgc2hvdWxkIGJlIGlu IHRoZSBQQVRIKQotK2RubCBwYXRoIC0gY29tcGxldGUgcGF0aCB0byBwZ19jb25maWcgdXRpbGl0 eSwgdXNlIHRoaXMgb3B0aW9uCi0rZG5sICAgICAgICBpZiBwZ19jb25maWcgY2FuJ3QgYmUgZm91 bmQgaW4gdGhlIFBBVEgKLStkbmwKLStkbmwgVGhpcyBtYWNybyBjYWxsczoKLStkbmwKLStkbmwg ICBBQ19TVUJTVChQT1NUR1JFU1FMX0NGTEFHUykKLStkbmwgICBBQ19TVUJTVChQT1NUR1JFU1FM X0xERkxBR1MpCi0rZG5sICAgQUNfU1VCU1QoUE9TVEdSRVNRTF9WRVJTSU9OKQotK2RubAotK2Ru bCBBbmQgc2V0czoKLStkbmwKLStkbmwgICBIQVZFX1BPU1RHUkVTUUwKLStkbmwKLStkbmwgQGNh dGVnb3J5IEluc3RhbGxlZFBhY2thZ2VzCi0rZG5sIEBjYXRlZ29yeSBDeHgKLStkbmwgQGF1dGhv ciBNYXRldXN6IExvc2tvdCA8bWF0ZXVzekBsb3Nrb3QubmV0PgotK2RubCBAdmVyc2lvbiAkRGF0 ZTogMjAwNy8wNi8yMyAwMTo1MToyMiAkCi0rZG5sIEBsaWNlbnNlIEFsbFBlcm1pc3NpdmUKLStk bmwKLStkbmwgJElkOiBheF9wb3N0Z3Jlc3FsLm00LHYgMS4zIDIwMDcvMDYvMjMgMDE6NTE6MjIg bWxvc2tvdCBFeHAgJAotK2RubAotK0FDX0RFRlVOKFtBWF9MSUJfUE9TVEdSRVNRTF0sCi0rWwot KyAgICBBQ19BUkdfV0lUSChbcG9zdGdyZXNxbF0sCi0rICAgICAgICBBQ19IRUxQX1NUUklORyhb LS13aXRoLXBvc3RncmVzcWw9QDw6QEFSR0A6PkBdLAotKyAgICAgICAgICAgIFt1c2UgUG9zdGdy ZVNRTCBsaWJyYXJ5IEA8OkBkZWZhdWx0PXllc0A6PkAsIG9wdGlvbmFsbHkgc3BlY2lmeSBwYXRo IHRvIHBnX2NvbmZpZ10KLSsgICAgICAgICksCi0rICAgICAgICBbCi0rCVBPU1RHUkVTUUxfaW5j X2NoZWNrPSIkd2l0aF9wb3N0Z3Jlc3FsL2luY2x1ZGUiCi0rICAgICAgICBpZiB0ZXN0ICIkd2l0 aHZhbCIgPSAibm8iOyB0aGVuCi0rICAgICAgICAgICAgd2FudF9wb3N0Z3Jlc3FsPSJubyIKLSsg ICAgICAgIGVsaWYgdGVzdCAiJHdpdGh2YWwiID0gInllcyI7IHRoZW4KLSsgICAgICAgICAgICB3 YW50X3Bvc3RncmVzcWw9InllcyIKLSsgICAgICAgIGVsc2UKLSsgICAgICAgICAgICB3YW50X3Bv c3RncmVzcWw9InllcyIKLSsgICAgICAgICAgICBQR19DT05GSUc9IiR3aXRodmFsIgotKyAgICAg ICAgZmkKLSsgICAgICAgIF0sCi0rICAgICAgICBbd2FudF9wb3N0Z3Jlc3FsPSJ5ZXMiCi0rCVBP U1RHUkVTUUxfaW5jX2NoZWNrPSIvdXNyL2luY2x1ZGUgL3Vzci9sb2NhbCAvb3B0Il0KLSsgICAg KQotKwotKyAgICBQT1NUR1JFU1FMX0NGTEFHUz0iIgotKyAgICBQT1NUR1JFU1FMX0xERkxBR1M9 IiIKLSsgICAgUE9TVEdSRVNRTF9QT1NUR1JFU1FMPSIiCi0rCi0rICAgIGRubAotKyAgICBkbmwg Q2hlY2sgUG9zdGdyZVNRTCBsaWJyYXJpZXMgKGxpYnBxKQotKyAgICBkbmwKLSsgICAgCi0rICAg IGlmIHRlc3QgIiR3YW50X3Bvc3RncmVzcWwiID0gInllcyI7IHRoZW4KLSsKLSsgICAgICAgIGlm IHRlc3QgLXogIiRQR19DT05GSUciIC1vIHRlc3Q7IHRoZW4KLSsgICAgICAgICAgICBBQ19QQVRI X1BST0coW1BHX0NPTkZJR10sIFtwZ19jb25maWddLCBbXSkKLSsgICAgICAgIGZpCi0rCi0rICAg ICAgICBpZiB0ZXN0ICEgLXggIiRQR19DT05GSUciOyB0aGVuCi0rICAgICAgICAgICAgQUNfTVNH X0VSUk9SKFskUEdfQ09ORklHIGRvZXMgbm90IGV4aXN0IG9yIGl0IGlzIG5vdCBhbiBleGVjdHVh YmxlIGZpbGVdKQotKyAgICAgICAgICAgIFBHX0NPTkZJRz0ibm8iCi0rICAgICAgICAgICAgZm91 bmRfcG9zdGdyZXNxbD0ibm8iCi0rICAgICAgICBmaQotKwotKyAgICAgICAgaWYgdGVzdCAiJFBH X0NPTkZJRyIgIT0gIm5vIjsgdGhlbgotKyAgICAgICAgICAgICMKLSsgICAgICAgICAgICAjIExv b2sgZm9yIFBvc3RncmVzcWwgQyBBUEkgaGVhZGVycwotKyAgICAgICAgICAgICMKLSsgICAgICAg ICAgICBBQ19NU0dfQ0hFQ0tJTkcoW2ZvciBQb3N0Z3Jlc3FsIGluY2x1ZGUgZGlyZWN0b3J5XSkK LSsgICAgICAgICAgICBQT1NUR1JFU1FMX2luY2Rpcj0KLSsgICAgICAgICAgICBmb3IgcG9zdGdy ZXNxbF9pbmNfZGlyIGluICRQT1NUR1JFU1FMX2luY19jaGVjawotKyAgICAgICAgICAgIGRvCi0r ICAgICAgICAgICAgICAgIGlmIHRlc3QgLWQgIiRwb3N0Z3Jlc3FsX2luY19kaXIiIFwKLSsgICAg ICAgICAgICAgICAgJiYgdGVzdCAtZiAiJHBvc3RncmVzcWxfaW5jX2Rpci9wb3N0Z3Jlc19leHQu aCIKLSsgICAgICAgICAgICAgICAgdGhlbgotKyAgICAgICAgICAgICAgICAgICAgUE9TVEdSRVNR TF9pbmNkaXI9JHBvc3RncmVzcWxfaW5jX2RpcgotKyAgICAgICAgICAgICAgICAgICAgYnJlYWsK LSsgICAgICAgICAgICAgICAgZmkKLSsgICAgICAgICAgICBkb25lCi0rCi0rICAgICAgICAgICAg aWYgdGVzdCAteiAiJFBPU1RHUkVTUUxfaW5jZGlyIgotKyAgICAgICAgICAgIHRoZW4KLSsgICAg ICAgICAgICAgICAgQUNfTVNHX0VSUk9SKFtEaWRuJ3QgZmluZCB0aGUgUG9zdGdyZXNxbCBpbmNs dWRlIGRpciBpbiAnJFBPU1RHUkVTUUxfaW5jX2NoZWNrJ10pCi0rICAgICAgICAgICAgZmkKLSsK LSsgICAgICAgICAgICBjYXNlICIkUE9TVEdSRVNRTF9pbmNkaXIiIGluCi0rICAgICAgICAgICAg ICAgIC8qICkgOzsKLSsgICAgICAgICAgICAgICAgKiApICBBQ19NU0dfRVJST1IoW1RoZSBQb3N0 Z3Jlc3FsIGluY2x1ZGUgZGlyZWN0b3J5ICgkUE9TVEdSRVNRTF9pbmNkaXIpIG11c3QgYmUgYW4g YWJzb2x1dGUgcGF0aC5dKSA7OwotKyAgICAgICAgICAgIGVzYWMKLSsKLSsgICAgICAgICAgICBB Q19NU0dfUkVTVUxUKFskUE9TVEdSRVNRTF9pbmNkaXJdKQotKwotKyAgICAgICAgICAgIGlmIHRl c3QgIiRQT1NUR1JFU1FMX2luY2RpciIgPSAiL3Vzci9pbmNsdWRlIjsgdGhlbgotKyAgICAgICAg ICAgICAgUE9TVEdSRVNRTF9DRkxBR1M9IiIKLSsgICAgICAgICAgICBlbHNlCi0rICAgICAgICAg ICAgICBQT1NUR1JFU1FMX0NGTEFHUz0iLUkke1BPU1RHUkVTUUxfaW5jZGlyfSIKLSsgICAgICAg ICAgICBmaQotKwotKyAgICAgICAgICAgIFBPU1RHUkVTUUxfTERGTEFHUz0iLUxgJFBHX0NPTkZJ RyAtLWxpYmRpcmAgLWxwcSIKLSsKLSsgICAgICAgICAgICBQT1NUR1JFU1FMX1ZFUlNJT049YCRQ R19DT05GSUcgLS12ZXJzaW9uIHwgc2VkIC1lICdzI1Bvc3RncmVTUUwgIyMnYAotKwotKyAgICAg ICAgICAgIEFDX0RFRklORShbSEFWRV9QT1NUR1JFU1FMXSwgWzFdLCBbRGVmaW5lIHRvIDEgaWYg UG9zdGdyZVNRTCBsaWJyYXJpZXMgYXJlIGF2YWlsYWJsZV0pCi0rICAgICAgICAgICAgCi0rICAg ICAgICAgICAgZm91bmRfcG9zdGdyZXNxbD0ieWVzIgotKyAgICAgICAgZWxzZQotKyAgICAgICAg ICAgIGZvdW5kX3Bvc3RncmVzcWw9Im5vIgotKyAgICAgICAgZmkKLSsgICAgZmkKLSsKLSsgICAg ZG5sCi0rICAgIGRubCBDaGVjayBpZiByZXF1aXJlZCB2ZXJzaW9uIG9mIFBvc3RncmVTUUwgaXMg YXZhaWxhYmxlCi0rICAgIGRubAotKyAgICAKLSsKLSsgICAgcG9zdGdyZXNxbF92ZXJzaW9uX3Jl cT1pZmVsc2UoWyQxXSwgW10sIFtdLCBbJDFdKQotKwotKyAgICBpZiB0ZXN0ICIkZm91bmRfcG9z dGdyZXNxbCIgPSAieWVzIiAtYSAtbiAiJHBvc3RncmVzcWxfdmVyc2lvbl9yZXEiOyB0aGVuCi0r Ci0rICAgICAgICBBQ19NU0dfQ0hFQ0tJTkcoW2lmIFBvc3RncmVTUUwgdmVyc2lvbiBpcyA+PSAk cG9zdGdyZXNxbF92ZXJzaW9uX3JlcV0pCi0rCi0rICAgICAgICBkbmwgRGVjb21wb3NlIHJlcXVp cmVkIHZlcnNpb24gc3RyaW5nIG9mIFBvc3RncmVTUUwKLSsgICAgICAgIGRubCBhbmQgY2FsY3Vs YXRlIGl0cyBudW1iZXIgcmVwcmVzZW50YXRpb24KLSsgICAgICAgIHBvc3RncmVzcWxfdmVyc2lv bl9yZXFfbWFqb3I9YGV4cHIgJHBvc3RncmVzcWxfdmVyc2lvbl9yZXEgOiAnXChbWzAtOV1dKlwp J2AKLSsgICAgICAgIHBvc3RncmVzcWxfdmVyc2lvbl9yZXFfbWlub3I9YGV4cHIgJHBvc3RncmVz cWxfdmVyc2lvbl9yZXEgOiAnW1swLTldXSpcLlwoW1swLTldXSpcKSdgCi0rICAgICAgICBwb3N0 Z3Jlc3FsX3ZlcnNpb25fcmVxX21pY3JvPWBleHByICRwb3N0Z3Jlc3FsX3ZlcnNpb25fcmVxIDog J1tbMC05XV0qXC5bWzAtOV1dKlwuXChbWzAtOV1dKlwpJ2AKLSsgICAgICAgIGlmIHRlc3QgIngk cG9zdGdyZXNxbF92ZXJzaW9uX3JlcV9taWNybyIgPSAieCI7IHRoZW4KLSsgICAgICAgICAgICBw b3N0Z3Jlc3FsX3ZlcnNpb25fcmVxX21pY3JvPSIwIgotKyAgICAgICAgZmkKLSsKLSsgICAgICAg IHBvc3RncmVzcWxfdmVyc2lvbl9yZXFfbnVtYmVyPWBleHByICRwb3N0Z3Jlc3FsX3ZlcnNpb25f cmVxX21ham9yIFwqIDEwMDAwMDAgXAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgXCsgJHBvc3RncmVzcWxfdmVyc2lvbl9yZXFfbWlub3IgXCogMTAwMCBcCi0rICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBcKyAkcG9zdGdyZXNxbF92ZXJzaW9uX3JlcV9taWNy b2AKLSsKLSsgICAgICAgIGRubCBEZWNvbXBvc2UgdmVyc2lvbiBzdHJpbmcgb2YgaW5zdGFsbGVk IFBvc3RncmVTUUwKLSsgICAgICAgIGRubCBhbmQgY2FsY3VsYXRlIGl0cyBudW1iZXIgcmVwcmVz ZW50YXRpb24KLSsgICAgICAgIHBvc3RncmVzcWxfdmVyc2lvbl9tYWpvcj1gZXhwciAkUE9TVEdS RVNRTF9WRVJTSU9OIDogJ1woW1swLTldXSpcKSdgCi0rICAgICAgICBwb3N0Z3Jlc3FsX3ZlcnNp b25fbWlub3I9YGV4cHIgJFBPU1RHUkVTUUxfVkVSU0lPTiA6ICdbWzAtOV1dKlwuXChbWzAtOV1d KlwpJ2AKLSsgICAgICAgIHBvc3RncmVzcWxfdmVyc2lvbl9taWNybz1gZXhwciAkUE9TVEdSRVNR TF9WRVJTSU9OIDogJ1tbMC05XV0qXC5bWzAtOV1dKlwuXChbWzAtOV1dKlwpJ2AKLSsgICAgICAg IGlmIHRlc3QgIngkcG9zdGdyZXNxbF92ZXJzaW9uX21pY3JvIiA9ICJ4IjsgdGhlbgotKyAgICAg ICAgICAgIHBvc3RncmVzcWxfdmVyc2lvbl9taWNybz0iMCIKLSsgICAgICAgIGZpCi0rCi0rICAg ICAgICBwb3N0Z3Jlc3FsX3ZlcnNpb25fbnVtYmVyPWBleHByICRwb3N0Z3Jlc3FsX3ZlcnNpb25f bWFqb3IgXCogMTAwMDAwMCBcCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc KyAkcG9zdGdyZXNxbF92ZXJzaW9uX21pbm9yIFwqIDEwMDAgXAotKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgXCsgJHBvc3RncmVzcWxfdmVyc2lvbl9taWNyb2AKLSsKLSsgICAg ICAgIHBvc3RncmVzcWxfdmVyc2lvbl9jaGVjaz1gZXhwciAkcG9zdGdyZXNxbF92ZXJzaW9uX251 bWJlciBcPlw9ICRwb3N0Z3Jlc3FsX3ZlcnNpb25fcmVxX251bWJlcmAKLSsgICAgICAgIGlmIHRl c3QgIiRwb3N0Z3Jlc3FsX3ZlcnNpb25fY2hlY2siID0gIjEiOyB0aGVuCi0rICAgICAgICAgICAg QUNfTVNHX1JFU1VMVChbeWVzXSkKLSsgICAgICAgIGVsc2UKLSsgICAgICAgICAgICBBQ19NU0df UkVTVUxUKFtub10pCi0rICAgICAgICBmaQotKyAgICBmaQotKwotKyAgICBBQ19TVUJTVChbUE9T VEdSRVNRTF9WRVJTSU9OXSkKLSsgICAgQUNfU1VCU1QoW1BPU1RHUkVTUUxfQ0ZMQUdTXSkKLSsg ICAgQUNfU1VCU1QoW1BPU1RHUkVTUUxfTERGTEFHU10pCi0rXSkKLWRpZmYgLU51ciBzb2NpLTMu MC4wXzQtcGFjay9jb25maWcvY29uZmlnLmd1ZXNzIHNvY2ktMy4wLjBfdHJlcDMwMC9jb25maWcv Y29uZmlnLmd1ZXNzCi0tLS0gc29jaS0zLjAuMF80LXBhY2svY29uZmlnL2NvbmZpZy5ndWVzcwkx OTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAotKysrIHNvY2ktMy4wLjBfdHJlcDMw MC9jb25maWcvY29uZmlnLmd1ZXNzCTIwMDktMDUtMjMgMTA6MDI6MDEuMDAwMDAwMDAwICswMjAw Ci1AQCAtMCwwICsxLDE1NDIgQEAKLSsjISAvYmluL3NoCi0rIyBBdHRlbXB0IHRvIGd1ZXNzIGEg Y2Fub25pY2FsIHN5c3RlbSBuYW1lLgotKyMgICBDb3B5cmlnaHQgKEMpIDE5OTIsIDE5OTMsIDE5 OTQsIDE5OTUsIDE5OTYsIDE5OTcsIDE5OTgsIDE5OTksCi0rIyAgIDIwMDAsIDIwMDEsIDIwMDIs IDIwMDMsIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDgKLSsjICAgRnJlZSBTb2Z0d2FyZSBG b3VuZGF0aW9uLCBJbmMuCi0rCi0rdGltZXN0YW1wPScyMDA4LTExLTE1JwotKwotKyMgVGhpcyBm aWxlIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2Rp ZnkgaXQKLSsjIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vu c2UgYXMgcHVibGlzaGVkIGJ5Ci0rIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRo ZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgotKyMgKGF0IHlvdXIgb3B0aW9uKSBhbnkg bGF0ZXIgdmVyc2lvbi4KLSsjCi0rIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhl IGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0Ci0rIyBXSVRIT1VUIEFOWSBXQVJSQU5U WTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0rIyBNRVJDSEFOVEFCSUxJ VFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQotKyMg R2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotKyMKLSsjIFlvdSBzaG91 bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl Ci0rIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBT b2Z0d2FyZQotKyMgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0IC0gRmlmdGgg Rmxvb3IsIEJvc3RvbiwgTUEKLSsjIDAyMTEwLTEzMDEsIFVTQS4KLSsjCi0rIyBBcyBhIHNwZWNp YWwgZXhjZXB0aW9uIHRvIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSwgaWYgeW91Ci0r IyBkaXN0cmlidXRlIHRoaXMgZmlsZSBhcyBwYXJ0IG9mIGEgcHJvZ3JhbSB0aGF0IGNvbnRhaW5z IGEKLSsjIGNvbmZpZ3VyYXRpb24gc2NyaXB0IGdlbmVyYXRlZCBieSBBdXRvY29uZiwgeW91IG1h eSBpbmNsdWRlIGl0IHVuZGVyCi0rIyB0aGUgc2FtZSBkaXN0cmlidXRpb24gdGVybXMgdGhhdCB5 b3UgdXNlIGZvciB0aGUgcmVzdCBvZiB0aGF0IHByb2dyYW0uCi0rCi0rCi0rIyBPcmlnaW5hbGx5 IHdyaXR0ZW4gYnkgUGVyIEJvdGhuZXIgPHBlckBib3RobmVyLmNvbT4uCi0rIyBQbGVhc2Ugc2Vu ZCBwYXRjaGVzIHRvIDxjb25maWctcGF0Y2hlc0BnbnUub3JnPi4gIFN1Ym1pdCBhIGNvbnRleHQK LSsjIGRpZmYgYW5kIGEgcHJvcGVybHkgZm9ybWF0dGVkIENoYW5nZUxvZyBlbnRyeS4KLSsjCi0r IyBUaGlzIHNjcmlwdCBhdHRlbXB0cyB0byBndWVzcyBhIGNhbm9uaWNhbCBzeXN0ZW0gbmFtZSBz aW1pbGFyIHRvCi0rIyBjb25maWcuc3ViLiAgSWYgaXQgc3VjY2VlZHMsIGl0IHByaW50cyB0aGUg c3lzdGVtIG5hbWUgb24gc3Rkb3V0LCBhbmQKLSsjIGV4aXRzIHdpdGggMC4gIE90aGVyd2lzZSwg aXQgZXhpdHMgd2l0aCAxLgotKyMKLSsjIFRoZSBwbGFuIGlzIHRoYXQgdGhpcyBjYW4gYmUgY2Fs bGVkIGJ5IGNvbmZpZ3VyZSBzY3JpcHRzIGlmIHlvdQotKyMgZG9uJ3Qgc3BlY2lmeSBhbiBleHBs aWNpdCBidWlsZCBzeXN0ZW0gdHlwZS4KLSsKLSttZT1gZWNobyAiJDAiIHwgc2VkIC1lICdzLC4q LywsJ2AKLSsKLSt1c2FnZT0iXAotK1VzYWdlOiAkMCBbT1BUSU9OXQotKwotK091dHB1dCB0aGUg Y29uZmlndXJhdGlvbiBuYW1lIG9mIHRoZSBzeXN0ZW0gXGAkbWUnIGlzIHJ1biBvbi4KLSsKLStP cGVyYXRpb24gbW9kZXM6Ci0rICAtaCwgLS1oZWxwICAgICAgICAgcHJpbnQgdGhpcyBoZWxwLCB0 aGVuIGV4aXQKLSsgIC10LCAtLXRpbWUtc3RhbXAgICBwcmludCBkYXRlIG9mIGxhc3QgbW9kaWZp Y2F0aW9uLCB0aGVuIGV4aXQKLSsgIC12LCAtLXZlcnNpb24gICAgICBwcmludCB2ZXJzaW9uIG51 bWJlciwgdGhlbiBleGl0Ci0rCi0rUmVwb3J0IGJ1Z3MgYW5kIHBhdGNoZXMgdG8gPGNvbmZpZy1w YXRjaGVzQGdudS5vcmc+LiIKLSsKLSt2ZXJzaW9uPSJcCi0rR05VIGNvbmZpZy5ndWVzcyAoJHRp bWVzdGFtcCkKLSsKLStPcmlnaW5hbGx5IHdyaXR0ZW4gYnkgUGVyIEJvdGhuZXIuCi0rQ29weXJp Z2h0IChDKSAxOTkyLCAxOTkzLCAxOTk0LCAxOTk1LCAxOTk2LCAxOTk3LCAxOTk4LCAxOTk5LCAy MDAwLCAyMDAxLAotKzIwMDIsIDIwMDMsIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDggRnJl ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCi0rCi0rVGhpcyBpcyBmcmVlIHNvZnR3YXJlOyBz ZWUgdGhlIHNvdXJjZSBmb3IgY29weWluZyBjb25kaXRpb25zLiAgVGhlcmUgaXMgTk8KLSt3YXJy YW50eTsgbm90IGV2ZW4gZm9yIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJ Q1VMQVIgUFVSUE9TRS4iCi0rCi0raGVscD0iCi0rVHJ5IFxgJG1lIC0taGVscCcgZm9yIG1vcmUg aW5mb3JtYXRpb24uIgotKwotKyMgUGFyc2UgY29tbWFuZCBsaW5lCi0rd2hpbGUgdGVzdCAkIyAt Z3QgMCA7IGRvCi0rICBjYXNlICQxIGluCi0rICAgIC0tdGltZS1zdGFtcCB8IC0tdGltZSogfCAt dCApCi0rICAgICAgIGVjaG8gIiR0aW1lc3RhbXAiIDsgZXhpdCA7OwotKyAgICAtLXZlcnNpb24g fCAtdiApCi0rICAgICAgIGVjaG8gIiR2ZXJzaW9uIiA7IGV4aXQgOzsKLSsgICAgLS1oZWxwIHwg LS1oKiB8IC1oICkKLSsgICAgICAgZWNobyAiJHVzYWdlIjsgZXhpdCA7OwotKyAgICAtLSApICAg ICAjIFN0b3Agb3B0aW9uIHByb2Nlc3NpbmcKLSsgICAgICAgc2hpZnQ7IGJyZWFrIDs7Ci0rICAg IC0gKQkjIFVzZSBzdGRpbiBhcyBpbnB1dC4KLSsgICAgICAgYnJlYWsgOzsKLSsgICAgLSogKQot KyAgICAgICBlY2hvICIkbWU6IGludmFsaWQgb3B0aW9uICQxJGhlbHAiID4mMgotKyAgICAgICBl eGl0IDEgOzsKLSsgICAgKiApCi0rICAgICAgIGJyZWFrIDs7Ci0rICBlc2FjCi0rZG9uZQotKwot K2lmIHRlc3QgJCMgIT0gMDsgdGhlbgotKyAgZWNobyAiJG1lOiB0b28gbWFueSBhcmd1bWVudHMk aGVscCIgPiYyCi0rICBleGl0IDEKLStmaQotKwotK3RyYXAgJ2V4aXQgMScgMSAyIDE1Ci0rCi0r IyBDQ19GT1JfQlVJTEQgLS0gY29tcGlsZXIgdXNlZCBieSB0aGlzIHNjcmlwdC4gTm90ZSB0aGF0 IHRoZSB1c2Ugb2YgYQotKyMgY29tcGlsZXIgdG8gYWlkIGluIHN5c3RlbSBkZXRlY3Rpb24gaXMg ZGlzY291cmFnZWQgYXMgaXQgcmVxdWlyZXMKLSsjIHRlbXBvcmFyeSBmaWxlcyB0byBiZSBjcmVh dGVkIGFuZCwgYXMgeW91IGNhbiBzZWUgYmVsb3csIGl0IGlzIGEKLSsjIGhlYWRhY2hlIHRvIGRl YWwgd2l0aCBpbiBhIHBvcnRhYmxlIGZhc2hpb24uCi0rCi0rIyBIaXN0b3JpY2FsbHksIGBDQ19G T1JfQlVJTEQnIHVzZWQgdG8gYmUgbmFtZWQgYEhPU1RfQ0MnLiBXZSBzdGlsbAotKyMgdXNlIGBI T1NUX0NDJyBpZiBkZWZpbmVkLCBidXQgaXQgaXMgZGVwcmVjYXRlZC4KLSsKLSsjIFBvcnRhYmxl IHRtcCBkaXJlY3RvcnkgY3JlYXRpb24gaW5zcGlyZWQgYnkgdGhlIEF1dG9jb25mIHRlYW0uCi0r Ci0rc2V0X2NjX2Zvcl9idWlsZD0nCi0rdHJhcCAiZXhpdGNvZGU9XCQ/OyAocm0gLWYgXCR0bXBm aWxlcyAyPi9kZXYvbnVsbDsgcm1kaXIgXCR0bXAgMj4vZGV2L251bGwpICYmIGV4aXQgXCRleGl0 Y29kZSIgMCA7Ci0rdHJhcCAicm0gLWYgXCR0bXBmaWxlcyAyPi9kZXYvbnVsbDsgcm1kaXIgXCR0 bXAgMj4vZGV2L251bGw7IGV4aXQgMSIgMSAyIDEzIDE1IDsKLSs6ICR7VE1QRElSPS90bXB9IDsK LSsgeyB0bXA9YCh1bWFzayAwNzcgJiYgbWt0ZW1wIC1kICIkVE1QRElSL2NnWFhYWFhYIikgMj4v ZGV2L251bGxgICYmIHRlc3QgLW4gIiR0bXAiICYmIHRlc3QgLWQgIiR0bXAiIDsgfSB8fAotKyB7 IHRlc3QgLW4gIiRSQU5ET00iICYmIHRtcD0kVE1QRElSL2NnJCQtJFJBTkRPTSAmJiAodW1hc2sg MDc3ICYmIG1rZGlyICR0bXApIDsgfSB8fAotKyB7IHRtcD0kVE1QRElSL2NnLSQkICYmICh1bWFz ayAwNzcgJiYgbWtkaXIgJHRtcCkgJiYgZWNobyAiV2FybmluZzogY3JlYXRpbmcgaW5zZWN1cmUg dGVtcCBkaXJlY3RvcnkiID4mMiA7IH0gfHwKLSsgeyBlY2hvICIkbWU6IGNhbm5vdCBjcmVhdGUg YSB0ZW1wb3JhcnkgZGlyZWN0b3J5IGluICRUTVBESVIiID4mMiA7IGV4aXQgMSA7IH0gOwotK2R1 bW15PSR0bXAvZHVtbXkgOwotK3RtcGZpbGVzPSIkZHVtbXkuYyAkZHVtbXkubyAkZHVtbXkucmVs ICRkdW1teSIgOwotK2Nhc2UgJENDX0ZPUl9CVUlMRCwkSE9TVF9DQywkQ0MgaW4KLSsgLCwpICAg IGVjaG8gImludCB4OyIgPiAkZHVtbXkuYyA7Ci0rCWZvciBjIGluIGNjIGdjYyBjODkgYzk5IDsg ZG8KLSsJICBpZiAoJGMgLWMgLW8gJGR1bW15Lm8gJGR1bW15LmMpID4vZGV2L251bGwgMj4mMSA7 IHRoZW4KLSsJICAgICBDQ19GT1JfQlVJTEQ9IiRjIjsgYnJlYWsgOwotKwkgIGZpIDsKLSsJZG9u ZSA7Ci0rCWlmIHRlc3QgeCIkQ0NfRk9SX0JVSUxEIiA9IHggOyB0aGVuCi0rCSAgQ0NfRk9SX0JV SUxEPW5vX2NvbXBpbGVyX2ZvdW5kIDsKLSsJZmkKLSsJOzsKLSsgLCwqKSAgIENDX0ZPUl9CVUlM RD0kQ0MgOzsKLSsgLCosKikgIENDX0ZPUl9CVUlMRD0kSE9TVF9DQyA7OwotK2VzYWMgOyBzZXRf Y2NfZm9yX2J1aWxkPSA7JwotKwotKyMgVGhpcyBpcyBuZWVkZWQgdG8gZmluZCB1bmFtZSBvbiBh IFB5cmFtaWQgT1N4IHdoZW4gcnVuIGluIHRoZSBCU0QgdW5pdmVyc2UuCi0rIyAoZ2hhemlAbm9j LnJ1dGdlcnMuZWR1IDE5OTQtMDgtMjQpCi0raWYgKHRlc3QgLWYgLy5hdHRiaW4vdW5hbWUpID4v ZGV2L251bGwgMj4mMSA7IHRoZW4KLSsJUEFUSD0kUEFUSDovLmF0dGJpbiA7IGV4cG9ydCBQQVRI Ci0rZmkKLSsKLStVTkFNRV9NQUNISU5FPWAodW5hbWUgLW0pIDI+L2Rldi9udWxsYCB8fCBVTkFN RV9NQUNISU5FPXVua25vd24KLStVTkFNRV9SRUxFQVNFPWAodW5hbWUgLXIpIDI+L2Rldi9udWxs YCB8fCBVTkFNRV9SRUxFQVNFPXVua25vd24KLStVTkFNRV9TWVNURU09YCh1bmFtZSAtcykgMj4v ZGV2L251bGxgICB8fCBVTkFNRV9TWVNURU09dW5rbm93bgotK1VOQU1FX1ZFUlNJT049YCh1bmFt ZSAtdikgMj4vZGV2L251bGxgIHx8IFVOQU1FX1ZFUlNJT049dW5rbm93bgotKwotKyMgTm90ZTog b3JkZXIgaXMgc2lnbmlmaWNhbnQgLSB0aGUgY2FzZSBicmFuY2hlcyBhcmUgbm90IGV4Y2x1c2l2 ZS4KLSsKLStjYXNlICIke1VOQU1FX01BQ0hJTkV9OiR7VU5BTUVfU1lTVEVNfToke1VOQU1FX1JF TEVBU0V9OiR7VU5BTUVfVkVSU0lPTn0iIGluCi0rICAgICo6TmV0QlNEOio6KikKLSsJIyBOZXRC U0QgKG5ic2QpIHRhcmdldHMgc2hvdWxkICh3aGVyZSBhcHBsaWNhYmxlKSBtYXRjaCBvbmUgb3IK LSsJIyBtb3JlIG9mIHRoZSB0dXBwbGVzOiAqLSotbmV0YnNkZWxmKiwgKi0qLW5ldGJzZGFvdXQq LAotKwkjICotKi1uZXRic2RlY29mZiogYW5kICotKi1uZXRic2QqLiAgRm9yIHRhcmdldHMgdGhh dCByZWNlbnRseQotKwkjIHN3aXRjaGVkIHRvIEVMRiwgKi0qLW5ldGJzZCogd291bGQgc2VsZWN0 IHRoZSBvbGQKLSsJIyBvYmplY3QgZmlsZSBmb3JtYXQuICBUaGlzIHByb3ZpZGVzIGJvdGggZm9y d2FyZAotKwkjIGNvbXBhdGliaWxpdHkgYW5kIGEgY29uc2lzdGVudCBtZWNoYW5pc20gZm9yIHNl bGVjdGluZyB0aGUKLSsJIyBvYmplY3QgZmlsZSBmb3JtYXQuCi0rCSMKLSsJIyBOb3RlOiBOZXRC U0QgZG9lc24ndCBwYXJ0aWN1bGFybHkgY2FyZSBhYm91dCB0aGUgdmVuZG9yCi0rCSMgcG9ydGlv biBvZiB0aGUgbmFtZS4gIFdlIGFsd2F5cyBzZXQgaXQgdG8gInVua25vd24iLgotKwlzeXNjdGw9 InN5c2N0bCAtbiBody5tYWNoaW5lX2FyY2giCi0rCVVOQU1FX01BQ0hJTkVfQVJDSD1gKC9zYmlu LyRzeXNjdGwgMj4vZGV2L251bGwgfHwgXAotKwkgICAgL3Vzci9zYmluLyRzeXNjdGwgMj4vZGV2 L251bGwgfHwgZWNobyB1bmtub3duKWAKLSsJY2FzZSAiJHtVTkFNRV9NQUNISU5FX0FSQ0h9IiBp bgotKwkgICAgYXJtZWIpIG1hY2hpbmU9YXJtZWItdW5rbm93biA7OwotKwkgICAgYXJtKikgbWFj aGluZT1hcm0tdW5rbm93biA7OwotKwkgICAgc2gzZWwpIG1hY2hpbmU9c2hsLXVua25vd24gOzsK LSsJICAgIHNoM2ViKSBtYWNoaW5lPXNoLXVua25vd24gOzsKLSsJICAgIHNoNWVsKSBtYWNoaW5l PXNoNWxlLXVua25vd24gOzsKLSsJICAgICopIG1hY2hpbmU9JHtVTkFNRV9NQUNISU5FX0FSQ0h9 LXVua25vd24gOzsKLSsJZXNhYwotKwkjIFRoZSBPcGVyYXRpbmcgU3lzdGVtIGluY2x1ZGluZyBv YmplY3QgZm9ybWF0LCBpZiBpdCBoYXMgc3dpdGNoZWQKLSsJIyB0byBFTEYgcmVjZW50bHksIG9y IHdpbGwgaW4gdGhlIGZ1dHVyZS4KLSsJY2FzZSAiJHtVTkFNRV9NQUNISU5FX0FSQ0h9IiBpbgot KwkgICAgYXJtKnxpMzg2fG02OGt8bnMzMmt8c2gzKnxzcGFyY3x2YXgpCi0rCQlldmFsICRzZXRf Y2NfZm9yX2J1aWxkCi0rCQlpZiBlY2hvIF9fRUxGX18gfCAkQ0NfRk9SX0JVSUxEIC1FIC0gMj4v ZGV2L251bGwgXAotKwkJCXwgZ3JlcCBfX0VMRl9fID4vZGV2L251bGwKLSsJCXRoZW4KLSsJCSAg ICAjIE9uY2UgYWxsIHV0aWxpdGllcyBjYW4gYmUgRUNPRkYgKG5ldGJzZGVjb2ZmKSBvciBhLm91 dCAobmV0YnNkYW91dCkuCi0rCQkgICAgIyBSZXR1cm4gbmV0YnNkIGZvciBlaXRoZXIuICBGSVg/ Ci0rCQkgICAgb3M9bmV0YnNkCi0rCQllbHNlCi0rCQkgICAgb3M9bmV0YnNkZWxmCi0rCQlmaQot KwkJOzsKLSsJICAgICopCi0rCSAgICAgICAgb3M9bmV0YnNkCi0rCQk7OwotKwllc2FjCi0rCSMg VGhlIE9TIHJlbGVhc2UKLSsJIyBEZWJpYW4gR05VL05ldEJTRCBtYWNoaW5lcyBoYXZlIGEgZGlm ZmVyZW50IHVzZXJsYW5kLCBhbmQKLSsJIyB0aHVzLCBuZWVkIGEgZGlzdGluY3QgdHJpcGxldC4g SG93ZXZlciwgdGhleSBkbyBub3QgbmVlZAotKwkjIGtlcm5lbCB2ZXJzaW9uIGluZm9ybWF0aW9u LCBzbyBpdCBjYW4gYmUgcmVwbGFjZWQgd2l0aCBhCi0rCSMgc3VpdGFibGUgdGFnLCBpbiB0aGUg c3R5bGUgb2YgbGludXgtZ251LgotKwljYXNlICIke1VOQU1FX1ZFUlNJT059IiBpbgotKwkgICAg RGViaWFuKikKLSsJCXJlbGVhc2U9Jy1nbnUnCi0rCQk7OwotKwkgICAgKikKLSsJCXJlbGVhc2U9 YGVjaG8gJHtVTkFNRV9SRUxFQVNFfXxzZWQgLWUgJ3MvWy1fXS4qL1wuLydgCi0rCQk7OwotKwll c2FjCi0rCSMgU2luY2UgQ1BVX1RZUEUtTUFOVUZBQ1RVUkVSLUtFUk5FTC1PUEVSQVRJTkdfU1lT VEVNOgotKwkjIGNvbnRhaW5zIHJlZHVuZGFudCBpbmZvcm1hdGlvbiwgdGhlIHNob3J0ZXIgZm9y bToKLSsJIyBDUFVfVFlQRS1NQU5VRkFDVFVSRVItT1BFUkFUSU5HX1NZU1RFTSBpcyB1c2VkLgot KwllY2hvICIke21hY2hpbmV9LSR7b3N9JHtyZWxlYXNlfSIKLSsJZXhpdCA7OwotKyAgICAqOk9w ZW5CU0Q6KjoqKQotKwlVTkFNRV9NQUNISU5FX0FSQ0g9YGFyY2ggfCBzZWQgJ3MvT3BlbkJTRC4v LydgCi0rCWVjaG8gJHtVTkFNRV9NQUNISU5FX0FSQ0h9LXVua25vd24tb3BlbmJzZCR7VU5BTUVf UkVMRUFTRX0KLSsJZXhpdCA7OwotKyAgICAqOmVra29CU0Q6KjoqKQotKwllY2hvICR7VU5BTUVf TUFDSElORX0tdW5rbm93bi1la2tvYnNkJHtVTkFNRV9SRUxFQVNFfQotKwlleGl0IDs7Ci0rICAg ICo6U29saWRCU0Q6KjoqKQotKwllY2hvICR7VU5BTUVfTUFDSElORX0tdW5rbm93bi1zb2xpZGJz ZCR7VU5BTUVfUkVMRUFTRX0KLSsJZXhpdCA7OwotKyAgICBtYWNwcGM6TWlyQlNEOio6KikKLSsJ ZWNobyBwb3dlcnBjLXVua25vd24tbWlyYnNkJHtVTkFNRV9SRUxFQVNFfQotKwlleGl0IDs7Ci0r ICAgICo6TWlyQlNEOio6KikKLSsJZWNobyAke1VOQU1FX01BQ0hJTkV9LXVua25vd24tbWlyYnNk JHtVTkFNRV9SRUxFQVNFfQotKwlleGl0IDs7Ci0rICAgIGFscGhhOk9TRjE6KjoqKQotKwljYXNl ICRVTkFNRV9SRUxFQVNFIGluCi0rCSo0LjApCi0rCQlVTkFNRV9SRUxFQVNFPWAvdXNyL3NiaW4v c2l6ZXIgLXYgfCBhd2sgJ3twcmludCAkM30nYAotKwkJOzsKLSsJKjUuKikKLSsJICAgICAgICBV TkFNRV9SRUxFQVNFPWAvdXNyL3NiaW4vc2l6ZXIgLXYgfCBhd2sgJ3twcmludCAkNH0nYAotKwkJ OzsKLSsJZXNhYwotKwkjIEFjY29yZGluZyB0byBDb21wYXEsIC91c3Ivc2Jpbi9wc3JpbmZvIGhh cyBiZWVuIGF2YWlsYWJsZSBvbgotKwkjIE9TRi8xIGFuZCBUcnU2NCBzeXN0ZW1zIHByb2R1Y2Vk IHNpbmNlIDE5OTUuICBJIGhvcGUgdGhhdAotKwkjIGNvdmVycyBtb3N0IHN5c3RlbXMgcnVubmlu ZyB0b2RheS4gIFRoaXMgY29kZSBwaXBlcyB0aGUgQ1BVCi0rCSMgdHlwZXMgdGhyb3VnaCBoZWFk IC1uIDEsIHNvIHdlIG9ubHkgZGV0ZWN0IHRoZSB0eXBlIG9mIENQVSAwLgotKwlBTFBIQV9DUFVf VFlQRT1gL3Vzci9zYmluL3BzcmluZm8gLXYgfCBzZWQgLW4gLWUgJ3MvXiAgVGhlIGFscGhhIFwo LipcKSBwcm9jZXNzb3IuKiQvXDEvcCcgfCBoZWFkIC1uIDFgCi0rCWNhc2UgIiRBTFBIQV9DUFVf VFlQRSIgaW4KLSsJICAgICJFVjQgKDIxMDY0KSIpCi0rCQlVTkFNRV9NQUNISU5FPSJhbHBoYSIg OzsKLSsJICAgICJFVjQuNSAoMjEwNjQpIikKLSsJCVVOQU1FX01BQ0hJTkU9ImFscGhhIiA7Owot KwkgICAgIkxDQTQgKDIxMDY2LzIxMDY4KSIpCi0rCQlVTkFNRV9NQUNISU5FPSJhbHBoYSIgOzsK LSsJICAgICJFVjUgKDIxMTY0KSIpCi0rCQlVTkFNRV9NQUNISU5FPSJhbHBoYWV2NSIgOzsKLSsJ ICAgICJFVjUuNiAoMjExNjRBKSIpCi0rCQlVTkFNRV9NQUNISU5FPSJhbHBoYWV2NTYiIDs7Ci0r CSAgICAiRVY1LjYgKDIxMTY0UEMpIikKLSsJCVVOQU1FX01BQ0hJTkU9ImFscGhhcGNhNTYiIDs7 Ci0rCSAgICAiRVY1LjcgKDIxMTY0UEMpIikKLSsJCVVOQU1FX01BQ0hJTkU9ImFscGhhcGNhNTci IDs7Ci0rCSAgICAiRVY2ICgyMTI2NCkiKQotKwkJVU5BTUVfTUFDSElORT0iYWxwaGFldjYiIDs7 Ci0rCSAgICAiRVY2LjcgKDIxMjY0QSkiKQotKwkJVU5BTUVfTUFDSElORT0iYWxwaGFldjY3IiA7 OwotKwkgICAgIkVWNi44Q0IgKDIxMjY0QykiKQotKwkJVU5BTUVfTUFDSElORT0iYWxwaGFldjY4 IiA7OwotKwkgICAgIkVWNi44QUwgKDIxMjY0QikiKQotKwkJVU5BTUVfTUFDSElORT0iYWxwaGFl djY4IiA7OwotKwkgICAgIkVWNi44Q1ggKDIxMjY0RCkiKQotKwkJVU5BTUVfTUFDSElORT0iYWxw aGFldjY4IiA7OwotKwkgICAgIkVWNi45QSAoMjEyNjQvRVY2OUEpIikKLSsJCVVOQU1FX01BQ0hJ TkU9ImFscGhhZXY2OSIgOzsKLSsJICAgICJFVjcgKDIxMzY0KSIpCi0rCQlVTkFNRV9NQUNISU5F PSJhbHBoYWV2NyIgOzsKLSsJICAgICJFVjcuOSAoMjEzNjRBKSIpCi0rCQlVTkFNRV9NQUNISU5F PSJhbHBoYWV2NzkiIDs7Ci0rCWVzYWMKLSsJIyBBIFBuLm4gdmVyc2lvbiBpcyBhIHBhdGNoZWQg dmVyc2lvbi4KLSsJIyBBIFZuLm4gdmVyc2lvbiBpcyBhIHJlbGVhc2VkIHZlcnNpb24uCi0rCSMg QSBUbi5uIHZlcnNpb24gaXMgYSByZWxlYXNlZCBmaWVsZCB0ZXN0IHZlcnNpb24uCi0rCSMgQSBY bi5uIHZlcnNpb24gaXMgYW4gdW5yZWxlYXNlZCBleHBlcmltZW50YWwgYmFzZWxldmVsLgotKwkj IDEuMiB1c2VzICIxLjIiIGZvciB1bmFtZSAtci4KLSsJZWNobyAke1VOQU1FX01BQ0hJTkV9LWRl Yy1vc2ZgZWNobyAke1VOQU1FX1JFTEVBU0V9IHwgc2VkIC1lICdzL15bUFZUWF0vLycgfCB0ciAn QUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVonICdhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eidg Ci0rCWV4aXQgOzsKLSsgICAgQWxwaGFcICo6V2luZG93c19OVCo6KikKLSsJIyBIb3cgZG8gd2Ug a25vdyBpdCdzIEludGVyaXggcmF0aGVyIHRoYW4gdGhlIGdlbmVyaWMgUE9TSVggc3Vic3lzdGVt PwotKwkjIFNob3VsZCB3ZSBjaGFuZ2UgVU5BTUVfTUFDSElORSBiYXNlZCBvbiB0aGUgb3V0cHV0 IG9mIHVuYW1lIGluc3RlYWQKLSsJIyBvZiB0aGUgc3BlY2lmaWMgQWxwaGEgbW9kZWw/Ci0rCWVj aG8gYWxwaGEtcGMtaW50ZXJpeAotKwlleGl0IDs7Ci0rICAgIDIxMDY0OldpbmRvd3NfTlQ6NTA6 MykKLSsJZWNobyBhbHBoYS1kZWMtd2lubnQzLjUKLSsJZXhpdCA7OwotKyAgICBBbWlnYSo6VU5J WF9TeXN0ZW1fVjo0LjA6KikKLSsJZWNobyBtNjhrLXVua25vd24tc3lzdjQKLSsJZXhpdCA7Owot KyAgICAqOltBYV1taWdhW09vXVtTc106KjoqKQotKwllY2hvICR7VU5BTUVfTUFDSElORX0tdW5r bm93bi1hbWlnYW9zCi0rCWV4aXQgOzsKLSsgICAgKjpbTW1db3JwaFtPb11bU3NdOio6KikKLSsJ ZWNobyAke1VOQU1FX01BQ0hJTkV9LXVua25vd24tbW9ycGhvcwotKwlleGl0IDs7Ci0rICAgICo6 T1MvMzkwOio6KikKLSsJZWNobyBpMzcwLWlibS1vcGVuZWRpdGlvbgotKwlleGl0IDs7Ci0rICAg ICo6ei9WTToqOiopCi0rCWVjaG8gczM5MC1pYm0tenZtb2UKLSsJZXhpdCA7OwotKyAgICAqOk9T NDAwOio6KikKLSsgICAgICAgIGVjaG8gcG93ZXJwYy1pYm0tb3M0MDAKLSsJZXhpdCA7OwotKyAg ICBhcm06UklTQyo6MS5bMDEyXSo6Knxhcm06cmlzY2l4OjEuWzAxMl0qOiopCi0rCWVjaG8gYXJt LWFjb3JuLXJpc2NpeCR7VU5BTUVfUkVMRUFTRX0KLSsJZXhpdCA7OwotKyAgICBhcm06cmlzY29z Oio6Knxhcm06UklTQ09TOio6KikKLSsJZWNobyBhcm0tdW5rbm93bi1yaXNjb3MKLSsJZXhpdCA7 OwotKyAgICBTUjI/MDE6SEktVVgvTVBQOio6KiB8IFNSODAwMDpISS1VWC9NUFA6KjoqKQotKwll Y2hvIGhwcGExLjEtaGl0YWNoaS1oaXV4bXBwCi0rCWV4aXQgOzsKLSsgICAgUHlyYW1pZCo6T1N4 KjoqOiogfCBNSVMqOk9TeCo6KjoqIHwgTUlTKjpTTVBfREMtT1N4KjoqOiopCi0rCSMgYWtlZUB3 cGRpczAzLndwYWZiLmFmLm1pbCAoRWFybGUgRi4gQWtlKSBjb250cmlidXRlZCBNSVMgYW5kIE5J TEUuCi0rCWlmIHRlc3QgImAoL2Jpbi91bml2ZXJzZSkgMj4vZGV2L251bGxgIiA9IGF0dCA7IHRo ZW4KLSsJCWVjaG8gcHlyYW1pZC1weXJhbWlkLXN5c3YzCi0rCWVsc2UKLSsJCWVjaG8gcHlyYW1p ZC1weXJhbWlkLWJzZAotKwlmaQotKwlleGl0IDs7Ci0rICAgIE5JTEUqOio6KjpkY29zeCkKLSsJ ZWNobyBweXJhbWlkLXB5cmFtaWQtc3ZyNAotKwlleGl0IDs7Ci0rICAgIERSUz82MDAwOnVuaXg6 NC4wOjYqKQotKwllY2hvIHNwYXJjLWljbC1ueDYKLSsJZXhpdCA7OwotKyAgICBEUlM/NjAwMDpV TklYX1NWOjQuMio6NyogfCBEUlM/NjAwMDppc2lzOjQuMio6NyopCi0rCWNhc2UgYC91c3IvYmlu L3VuYW1lIC1wYCBpbgotKwkgICAgc3BhcmMpIGVjaG8gc3BhcmMtaWNsLW54NzsgZXhpdCA7Owot Kwllc2FjIDs7Ci0rICAgIHN1bjRIOlN1bk9TOjUuKjoqKQotKwllY2hvIHNwYXJjLWhhbC1zb2xh cmlzMmBlY2hvICR7VU5BTUVfUkVMRUFTRX18c2VkIC1lICdzL1teLl0qLy8nYAotKwlleGl0IDs7 Ci0rICAgIHN1bjQqOlN1bk9TOjUuKjoqIHwgdGFkcG9sZSo6U3VuT1M6NS4qOiopCi0rCWVjaG8g c3BhcmMtc3VuLXNvbGFyaXMyYGVjaG8gJHtVTkFNRV9SRUxFQVNFfXxzZWQgLWUgJ3MvW14uXSov LydgCi0rCWV4aXQgOzsKLSsgICAgaTg2cGM6U3VuT1M6NS4qOiogfCBpODZ4ZW46U3VuT1M6NS4q OiopCi0rCWV2YWwgJHNldF9jY19mb3JfYnVpbGQKLSsJU1VOX0FSQ0g9ImkzODYiCi0rCSMgSWYg dGhlcmUgaXMgYSBjb21waWxlciwgc2VlIGlmIGl0IGlzIGNvbmZpZ3VyZWQgZm9yIDY0LWJpdCBv YmplY3RzLgotKwkjIE5vdGUgdGhhdCB0aGUgU3VuIGNjIGRvZXMgbm90IHR1cm4gX19MUDY0X18g aW50byAxIGxpa2UgZ2NjIGRvZXMuCi0rCSMgVGhpcyB0ZXN0IHdvcmtzIGZvciBib3RoIGNvbXBp bGVycy4KLSsJaWYgWyAiJENDX0ZPUl9CVUlMRCIgIT0gJ25vX2NvbXBpbGVyX2ZvdW5kJyBdOyB0 aGVuCi0rCSAgICBpZiBlY2hvICdcbiNpZmRlZiBfX2FtZDY0XG5JU182NEJJVF9BUkNIXG4jZW5k aWYnIHwgXAotKwkJKENDT1BUUz0gJENDX0ZPUl9CVUlMRCAtRSAtIDI+L2Rldi9udWxsKSB8IFwK LSsJCWdyZXAgSVNfNjRCSVRfQVJDSCA+L2Rldi9udWxsCi0rCSAgICB0aGVuCi0rCQlTVU5fQVJD SD0ieDg2XzY0IgotKwkgICAgZmkKLSsJZmkKLSsJZWNobyAke1NVTl9BUkNIfS1wYy1zb2xhcmlz MmBlY2hvICR7VU5BTUVfUkVMRUFTRX18c2VkIC1lICdzL1teLl0qLy8nYAotKwlleGl0IDs7Ci0r ICAgIHN1bjQqOlN1bk9TOjYqOiopCi0rCSMgQWNjb3JkaW5nIHRvIGNvbmZpZy5zdWIsIHRoaXMg aXMgdGhlIHByb3BlciB3YXkgdG8gY2Fub25pY2FsaXplCi0rCSMgU3VuT1M2LiAgSGFyZCB0byBn dWVzcyBleGFjdGx5IHdoYXQgU3VuT1M2IHdpbGwgYmUgbGlrZSwgYnV0Ci0rCSMgaXQncyBsaWtl bHkgdG8gYmUgbW9yZSBsaWtlIFNvbGFyaXMgdGhhbiBTdW5PUzQuCi0rCWVjaG8gc3BhcmMtc3Vu LXNvbGFyaXMzYGVjaG8gJHtVTkFNRV9SRUxFQVNFfXxzZWQgLWUgJ3MvW14uXSovLydgCi0rCWV4 aXQgOzsKLSsgICAgc3VuNCo6U3VuT1M6KjoqKQotKwljYXNlICJgL3Vzci9iaW4vYXJjaCAta2Ai IGluCi0rCSAgICBTZXJpZXMqfFM0KikKLSsJCVVOQU1FX1JFTEVBU0U9YHVuYW1lIC12YAotKwkJ OzsKLSsJZXNhYwotKwkjIEphcGFuZXNlIExhbmd1YWdlIHZlcnNpb25zIGhhdmUgYSB2ZXJzaW9u IG51bWJlciBsaWtlIGA0LjEuMy1KTCcuCi0rCWVjaG8gc3BhcmMtc3VuLXN1bm9zYGVjaG8gJHtV TkFNRV9SRUxFQVNFfXxzZWQgLWUgJ3MvLS9fLydgCi0rCWV4aXQgOzsKLSsgICAgc3VuMyo6U3Vu T1M6KjoqKQotKwllY2hvIG02OGstc3VuLXN1bm9zJHtVTkFNRV9SRUxFQVNFfQotKwlleGl0IDs7 Ci0rICAgIHN1bio6Kjo0LjJCU0Q6KikKLSsJVU5BTUVfUkVMRUFTRT1gKHNlZCAxcSAvZXRjL21v dGQgfCBhd2sgJ3twcmludCBzdWJzdHIoJDUsMSwzKX0nKSAyPi9kZXYvbnVsbGAKLSsJdGVzdCAi eCR7VU5BTUVfUkVMRUFTRX0iID0gIngiICYmIFVOQU1FX1JFTEVBU0U9MwotKwljYXNlICJgL2Jp bi9hcmNoYCIgaW4KLSsJICAgIHN1bjMpCi0rCQllY2hvIG02OGstc3VuLXN1bm9zJHtVTkFNRV9S RUxFQVNFfQotKwkJOzsKLSsJICAgIHN1bjQpCi0rCQllY2hvIHNwYXJjLXN1bi1zdW5vcyR7VU5B TUVfUkVMRUFTRX0KLSsJCTs7Ci0rCWVzYWMKLSsJZXhpdCA7OwotKyAgICBhdXNocDpTdW5PUzoq OiopCi0rCWVjaG8gc3BhcmMtYXVzcGV4LXN1bm9zJHtVTkFNRV9SRUxFQVNFfQotKwlleGl0IDs7 Ci0rICAgICMgVGhlIHNpdHVhdGlvbiBmb3IgTWlOVCBpcyBhIGxpdHRsZSBjb25mdXNpbmcuICBU aGUgbWFjaGluZSBuYW1lCi0rICAgICMgY2FuIGJlIHZpcnR1YWxseSBldmVyeXRoaW5nIChldmVy eXRoaW5nIHdoaWNoIGlzIG5vdAotKyAgICAjICJhdGFyaXN0IiBvciAiYXRhcmlzdGUiIGF0IGxl YXN0IHNob3VsZCBoYXZlIGEgcHJvY2Vzc29yCi0rICAgICMgPiBtNjgwMDApLiAgVGhlIHN5c3Rl bSBuYW1lIHJhbmdlcyBmcm9tICJNaU5UIiBvdmVyICJGcmVlTWlOVCIKLSsgICAgIyB0byB0aGUg bG93ZXJjYXNlIHZlcnNpb24gIm1pbnQiIChvciAiZnJlZW1pbnQiKS4gIEZpbmFsbHkKLSsgICAg IyB0aGUgc3lzdGVtIG5hbWUgIlRPUyIgZGVub3RlcyBhIHN5c3RlbSB3aGljaCBpcyBhY3R1YWxs eSBub3QKLSsgICAgIyBNaU5ULiAgQnV0IE1pTlQgaXMgZG93bndhcmQgY29tcGF0aWJsZSB0byBU T1MsIHNvIHRoaXMgc2hvdWxkCi0rICAgICMgYmUgbm8gcHJvYmxlbS4KLSsgICAgYXRhcmlzdFtl XToqTWlOVDoqOiogfCBhdGFyaXN0W2VdOiptaW50Oio6KiB8IGF0YXJpc3RbZV06KlRPUzoqOiop Ci0rICAgICAgICBlY2hvIG02OGstYXRhcmktbWludCR7VU5BTUVfUkVMRUFTRX0KLSsJZXhpdCA7 OwotKyAgICBhdGFyaSo6Kk1pTlQ6KjoqIHwgYXRhcmkqOiptaW50Oio6KiB8IGF0YXJpc3RbZV06 KlRPUzoqOiopCi0rCWVjaG8gbTY4ay1hdGFyaS1taW50JHtVTkFNRV9SRUxFQVNFfQotKyAgICAg ICAgZXhpdCA7OwotKyAgICAqZmFsY29uKjoqTWlOVDoqOiogfCAqZmFsY29uKjoqbWludDoqOiog fCAqZmFsY29uKjoqVE9TOio6KikKLSsgICAgICAgIGVjaG8gbTY4ay1hdGFyaS1taW50JHtVTkFN RV9SRUxFQVNFfQotKwlleGl0IDs7Ci0rICAgIG1pbGFuKjoqTWlOVDoqOiogfCBtaWxhbio6Km1p bnQ6KjoqIHwgKm1pbGFuKjoqVE9TOio6KikKLSsgICAgICAgIGVjaG8gbTY4ay1taWxhbi1taW50 JHtVTkFNRV9SRUxFQVNFfQotKyAgICAgICAgZXhpdCA7OwotKyAgICBoYWRlcyo6Kk1pTlQ6Kjoq IHwgaGFkZXMqOiptaW50Oio6KiB8ICpoYWRlcyo6KlRPUzoqOiopCi0rICAgICAgICBlY2hvIG02 OGstaGFkZXMtbWludCR7VU5BTUVfUkVMRUFTRX0KLSsgICAgICAgIGV4aXQgOzsKLSsgICAgKjoq TWlOVDoqOiogfCAqOiptaW50Oio6KiB8ICo6KlRPUzoqOiopCi0rICAgICAgICBlY2hvIG02OGst dW5rbm93bi1taW50JHtVTkFNRV9SRUxFQVNFfQotKyAgICAgICAgZXhpdCA7OwotKyAgICBtNjhr Om1hY2h0ZW46KjoqKQotKwllY2hvIG02OGstYXBwbGUtbWFjaHRlbiR7VU5BTUVfUkVMRUFTRX0K LSsJZXhpdCA7OwotKyAgICBwb3dlcnBjOm1hY2h0ZW46KjoqKQotKwllY2hvIHBvd2VycGMtYXBw bGUtbWFjaHRlbiR7VU5BTUVfUkVMRUFTRX0KLSsJZXhpdCA7OwotKyAgICBSSVNDKjpNYWNoOio6 KikKLSsJZWNobyBtaXBzLWRlYy1tYWNoX2JzZDQuMwotKwlleGl0IDs7Ci0rICAgIFJJU0MqOlVM VFJJWDoqOiopCi0rCWVjaG8gbWlwcy1kZWMtdWx0cml4JHtVTkFNRV9SRUxFQVNFfQotKwlleGl0 IDs7Ci0rICAgIFZBWCo6VUxUUklYKjoqOiopCi0rCWVjaG8gdmF4LWRlYy11bHRyaXgke1VOQU1F X1JFTEVBU0V9Ci0rCWV4aXQgOzsKLSsgICAgMjAyMDpDTElYOio6KiB8IDI0MzA6Q0xJWDoqOiop Ci0rCWVjaG8gY2xpcHBlci1pbnRlcmdyYXBoLWNsaXgke1VOQU1FX1JFTEVBU0V9Ci0rCWV4aXQg OzsKLSsgICAgbWlwczoqOio6VU1JUFMgfCBtaXBzOio6KjpSSVNDb3MpCi0rCWV2YWwgJHNldF9j Y19mb3JfYnVpbGQKLSsJc2VkICdzL14JLy8nIDw8IEVPRiA+JGR1bW15LmMKLSsjaWZkZWYgX19j cGx1c3BsdXMKLSsjaW5jbHVkZSA8c3RkaW8uaD4gIC8qIGZvciBwcmludGYoKSBwcm90b3R5cGUg Ki8KLSsJaW50IG1haW4gKGludCBhcmdjLCBjaGFyICphcmd2W10pIHsKLSsjZWxzZQotKwlpbnQg bWFpbiAoYXJnYywgYXJndikgaW50IGFyZ2M7IGNoYXIgKmFyZ3ZbXTsgewotKyNlbmRpZgotKwkj aWYgZGVmaW5lZCAoaG9zdF9taXBzKSAmJiBkZWZpbmVkIChNSVBTRUIpCi0rCSNpZiBkZWZpbmVk IChTWVNUWVBFX1NZU1YpCi0rCSAgcHJpbnRmICgibWlwcy1taXBzLXJpc2NvcyVzc3lzdlxuIiwg YXJndlsxXSk7IGV4aXQgKDApOwotKwkjZW5kaWYKLSsJI2lmIGRlZmluZWQgKFNZU1RZUEVfU1ZS NCkKLSsJICBwcmludGYgKCJtaXBzLW1pcHMtcmlzY29zJXNzdnI0XG4iLCBhcmd2WzFdKTsgZXhp dCAoMCk7Ci0rCSNlbmRpZgotKwkjaWYgZGVmaW5lZCAoU1lTVFlQRV9CU0Q0MykgfHwgZGVmaW5l ZChTWVNUWVBFX0JTRCkKLSsJICBwcmludGYgKCJtaXBzLW1pcHMtcmlzY29zJXNic2RcbiIsIGFy Z3ZbMV0pOyBleGl0ICgwKTsKLSsJI2VuZGlmCi0rCSNlbmRpZgotKwkgIGV4aXQgKC0xKTsKLSsJ fQotK0VPRgotKwkkQ0NfRk9SX0JVSUxEIC1vICRkdW1teSAkZHVtbXkuYyAmJgotKwkgIGR1bW15 YXJnPWBlY2hvICIke1VOQU1FX1JFTEVBU0V9IiB8IHNlZCAtbiAncy9cKFswLTldKlwpLiovXDEv cCdgICYmCi0rCSAgU1lTVEVNX05BTUU9YCRkdW1teSAkZHVtbXlhcmdgICYmCi0rCSAgICB7IGVj aG8gIiRTWVNURU1fTkFNRSI7IGV4aXQ7IH0KLSsJZWNobyBtaXBzLW1pcHMtcmlzY29zJHtVTkFN RV9SRUxFQVNFfQotKwlleGl0IDs7Ci0rICAgIE1vdG9yb2xhOlBvd2VyTUFYX09TOio6KikKLSsJ ZWNobyBwb3dlcnBjLW1vdG9yb2xhLXBvd2VybWF4Ci0rCWV4aXQgOzsKLSsgICAgTW90b3JvbGE6 Kjo0LjM6UEw4LSopCi0rCWVjaG8gcG93ZXJwYy1oYXJyaXMtcG93ZXJtYXgKLSsJZXhpdCA7Owot KyAgICBOaWdodF9IYXdrOio6KjpQb3dlck1BWF9PUyB8IFN5bmVyZ3k6UG93ZXJNQVhfT1M6Kjoq KQotKwllY2hvIHBvd2VycGMtaGFycmlzLXBvd2VybWF4Ci0rCWV4aXQgOzsKLSsgICAgTmlnaHRf SGF3azpQb3dlcl9VTklYOio6KikKLSsJZWNobyBwb3dlcnBjLWhhcnJpcy1wb3dlcnVuaXgKLSsJ ZXhpdCA7OwotKyAgICBtODhrOkNYL1VYOjcqOiopCi0rCWVjaG8gbTg4ay1oYXJyaXMtY3h1eDcK LSsJZXhpdCA7OwotKyAgICBtODhrOio6NCo6UjQqKQotKwllY2hvIG04OGstbW90b3JvbGEtc3lz djQKLSsJZXhpdCA7OwotKyAgICBtODhrOio6Myo6UjMqKQotKwllY2hvIG04OGstbW90b3JvbGEt c3lzdjMKLSsJZXhpdCA7OwotKyAgICBBVmlpT046ZGd1eDoqOiopCi0rICAgICAgICAjIERHL1VY IHJldHVybnMgQVZpaU9OIGZvciBhbGwgYXJjaGl0ZWN0dXJlcwotKyAgICAgICAgVU5BTUVfUFJP Q0VTU09SPWAvdXNyL2Jpbi91bmFtZSAtcGAKLSsJaWYgWyAkVU5BTUVfUFJPQ0VTU09SID0gbWM4 ODEwMCBdIHx8IFsgJFVOQU1FX1BST0NFU1NPUiA9IG1jODgxMTAgXQotKwl0aGVuCi0rCSAgICBp ZiBbICR7VEFSR0VUX0JJTkFSWV9JTlRFUkZBQ0V9eCA9IG04OGtkZ3V4ZWxmeCBdIHx8IFwKLSsJ ICAgICAgIFsgJHtUQVJHRVRfQklOQVJZX0lOVEVSRkFDRX14ID0geCBdCi0rCSAgICB0aGVuCi0r CQllY2hvIG04OGstZGctZGd1eCR7VU5BTUVfUkVMRUFTRX0KLSsJICAgIGVsc2UKLSsJCWVjaG8g bTg4ay1kZy1kZ3V4YmNzJHtVTkFNRV9SRUxFQVNFfQotKwkgICAgZmkKLSsJZWxzZQotKwkgICAg ZWNobyBpNTg2LWRnLWRndXgke1VOQU1FX1JFTEVBU0V9Ci0rCWZpCi0rIAlleGl0IDs7Ci0rICAg IE04OCo6RG9scGhpbk9TOio6KikJIyBEb2xwaGluT1MgKFNWUjMpCi0rCWVjaG8gbTg4ay1kb2xw aGluLXN5c3YzCi0rCWV4aXQgOzsKLSsgICAgTTg4KjoqOlIzKjoqKQotKwkjIERlbHRhIDg4ayBz eXN0ZW0gcnVubmluZyBTVlIzCi0rCWVjaG8gbTg4ay1tb3Rvcm9sYS1zeXN2MwotKwlleGl0IDs7 Ci0rICAgIFhEODgqOio6KjoqKSAjIFRla3Ryb25peCBYRDg4IHN5c3RlbSBydW5uaW5nIFVUZWtW IChTVlIzKQotKwllY2hvIG04OGstdGVrdHJvbml4LXN5c3YzCi0rCWV4aXQgOzsKLSsgICAgVGVr NDNbMC05XVswLTldOlVUZWs6KjoqKSAjIFRla3Ryb25peCA0MzAwIHN5c3RlbSBydW5uaW5nIFVU ZWsgKEJTRCkKLSsJZWNobyBtNjhrLXRla3Ryb25peC1ic2QKLSsJZXhpdCA7OwotKyAgICAqOklS SVgqOio6KikKLSsJZWNobyBtaXBzLXNnaS1pcml4YGVjaG8gJHtVTkFNRV9SRUxFQVNFfXxzZWQg LWUgJ3MvLS9fL2cnYAotKwlleGl0IDs7Ci0rICAgID8/Pz8/Pz8/OkFJWD86WzEyXS4xOjIpICAg IyBBSVggMi4yLjEgb3IgQUlYIDIuMS4xIGlzIFJUL1BDIEFJWC4KLSsJZWNobyByb21wLWlibS1h aXggICAgICMgdW5hbWUgLW0gZ2l2ZXMgYW4gOCBoZXgtY29kZSBDUFUgaWQKLSsJZXhpdCA7OyAg ICAgICAgICAgICAgICMgTm90ZSB0aGF0OiBlY2hvICInYHVuYW1lIC1zYCciIGdpdmVzICdBSVgg JwotKyAgICBpKjg2OkFJWDoqOiopCi0rCWVjaG8gaTM4Ni1pYm0tYWl4Ci0rCWV4aXQgOzsKLSsg ICAgaWE2NDpBSVg6KjoqKQotKwlpZiBbIC14IC91c3IvYmluL29zbGV2ZWwgXSA7IHRoZW4KLSsJ CUlCTV9SRVY9YC91c3IvYmluL29zbGV2ZWxgCi0rCWVsc2UKLSsJCUlCTV9SRVY9JHtVTkFNRV9W RVJTSU9OfS4ke1VOQU1FX1JFTEVBU0V9Ci0rCWZpCi0rCWVjaG8gJHtVTkFNRV9NQUNISU5FfS1p Ym0tYWl4JHtJQk1fUkVWfQotKwlleGl0IDs7Ci0rICAgICo6QUlYOjI6MykKLSsJaWYgZ3JlcCBi b3MzMjUgL3Vzci9pbmNsdWRlL3N0ZGlvLmggPi9kZXYvbnVsbCAyPiYxOyB0aGVuCi0rCQlldmFs ICRzZXRfY2NfZm9yX2J1aWxkCi0rCQlzZWQgJ3MvXgkJLy8nIDw8IEVPRiA+JGR1bW15LmMKLSsJ CSNpbmNsdWRlIDxzeXMvc3lzdGVtY2ZnLmg+Ci0rCi0rCQltYWluKCkKLSsJCQl7Ci0rCQkJaWYg KCFfX3Bvd2VyX3BjKCkpCi0rCQkJCWV4aXQoMSk7Ci0rCQkJcHV0cygicG93ZXJwYy1pYm0tYWl4 My4yLjUiKTsKLSsJCQlleGl0KDApOwotKwkJCX0KLStFT0YKLSsJCWlmICRDQ19GT1JfQlVJTEQg LW8gJGR1bW15ICRkdW1teS5jICYmIFNZU1RFTV9OQU1FPWAkZHVtbXlgCi0rCQl0aGVuCi0rCQkJ ZWNobyAiJFNZU1RFTV9OQU1FIgotKwkJZWxzZQotKwkJCWVjaG8gcnM2MDAwLWlibS1haXgzLjIu NQotKwkJZmkKLSsJZWxpZiBncmVwIGJvczMyNCAvdXNyL2luY2x1ZGUvc3RkaW8uaCA+L2Rldi9u dWxsIDI+JjE7IHRoZW4KLSsJCWVjaG8gcnM2MDAwLWlibS1haXgzLjIuNAotKwllbHNlCi0rCQll Y2hvIHJzNjAwMC1pYm0tYWl4My4yCi0rCWZpCi0rCWV4aXQgOzsKLSsgICAgKjpBSVg6KjpbNDU2 XSkKLSsJSUJNX0NQVV9JRD1gL3Vzci9zYmluL2xzZGV2IC1DIC1jIHByb2Nlc3NvciAtUyBhdmFp bGFibGUgfCBzZWQgMXEgfCBhd2sgJ3sgcHJpbnQgJDEgfSdgCi0rCWlmIC91c3Ivc2Jpbi9sc2F0 dHIgLUVsICR7SUJNX0NQVV9JRH0gfCBncmVwICcgUE9XRVInID4vZGV2L251bGwgMj4mMTsgdGhl bgotKwkJSUJNX0FSQ0g9cnM2MDAwCi0rCWVsc2UKLSsJCUlCTV9BUkNIPXBvd2VycGMKLSsJZmkK LSsJaWYgWyAteCAvdXNyL2Jpbi9vc2xldmVsIF0gOyB0aGVuCi0rCQlJQk1fUkVWPWAvdXNyL2Jp bi9vc2xldmVsYAotKwllbHNlCi0rCQlJQk1fUkVWPSR7VU5BTUVfVkVSU0lPTn0uJHtVTkFNRV9S RUxFQVNFfQotKwlmaQotKwllY2hvICR7SUJNX0FSQ0h9LWlibS1haXgke0lCTV9SRVZ9Ci0rCWV4 aXQgOzsKLSsgICAgKjpBSVg6KjoqKQotKwllY2hvIHJzNjAwMC1pYm0tYWl4Ci0rCWV4aXQgOzsK LSsgICAgaWJtcnQ6NC40QlNEOip8cm9tcC1pYm06QlNEOiopCi0rCWVjaG8gcm9tcC1pYm0tYnNk NC40Ci0rCWV4aXQgOzsKLSsgICAgaWJtcnQ6KkJTRDoqfHJvbXAtaWJtOkJTRDoqKSAgICAgICAg ICAgICMgY292ZXJzIFJUL1BDIEJTRCBhbmQKLSsJZWNobyByb21wLWlibS1ic2Qke1VOQU1FX1JF TEVBU0V9ICAgIyA0LjMgd2l0aCB1bmFtZSBhZGRlZCB0bwotKwlleGl0IDs7ICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAjIHJlcG9ydDogcm9tcC1pYm0gQlNEIDQuMwotKyAgICAqOkJPU1g6 KjoqKQotKwllY2hvIHJzNjAwMC1idWxsLWJvc3gKLSsJZXhpdCA7OwotKyAgICBEUFgvMj8wMDpC Lk8uUy46KjoqKQotKwllY2hvIG02OGstYnVsbC1zeXN2MwotKwlleGl0IDs7Ci0rICAgIDkwMDAv WzM0XT8/OjQuM2JzZDoxLio6KikKLSsJZWNobyBtNjhrLWhwLWJzZAotKwlleGl0IDs7Ci0rICAg IGhwMzAwOjQuNEJTRDoqOiogfCA5MDAwL1szNF0/Pzo0LjNic2Q6Mi4qOiopCi0rCWVjaG8gbTY4 ay1ocC1ic2Q0LjQKLSsJZXhpdCA7OwotKyAgICA5MDAwL1szNDY3OF0/PzpIUC1VWDoqOiopCi0r CUhQVVhfUkVWPWBlY2hvICR7VU5BTUVfUkVMRUFTRX18c2VkIC1lICdzL1teLl0qLlswQl0qLy8n YAotKwljYXNlICIke1VOQU1FX01BQ0hJTkV9IiBpbgotKwkgICAgOTAwMC8zMT8gKSAgICAgICAg ICAgIEhQX0FSQ0g9bTY4MDAwIDs7Ci0rCSAgICA5MDAwL1szNF0/PyApICAgICAgICAgSFBfQVJD SD1tNjhrIDs7Ci0rCSAgICA5MDAwL1s2NzhdWzAtOV1bMC05XSkKLSsJCWlmIFsgLXggL3Vzci9i aW4vZ2V0Y29uZiBdOyB0aGVuCi0rCQkgICAgc2NfY3B1X3ZlcnNpb249YC91c3IvYmluL2dldGNv bmYgU0NfQ1BVX1ZFUlNJT04gMj4vZGV2L251bGxgCi0rICAgICAgICAgICAgICAgICAgICBzY19r ZXJuZWxfYml0cz1gL3Vzci9iaW4vZ2V0Y29uZiBTQ19LRVJORUxfQklUUyAyPi9kZXYvbnVsbGAK LSsgICAgICAgICAgICAgICAgICAgIGNhc2UgIiR7c2NfY3B1X3ZlcnNpb259IiBpbgotKyAgICAg ICAgICAgICAgICAgICAgICA1MjMpIEhQX0FSQ0g9ImhwcGExLjAiIDs7ICMgQ1BVX1BBX1JJU0Mx XzAKLSsgICAgICAgICAgICAgICAgICAgICAgNTI4KSBIUF9BUkNIPSJocHBhMS4xIiA7OyAjIENQ VV9QQV9SSVNDMV8xCi0rICAgICAgICAgICAgICAgICAgICAgIDUzMikgICAgICAgICAgICAgICAg ICAgICAgIyBDUFVfUEFfUklTQzJfMAotKyAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgIiR7 c2Nfa2VybmVsX2JpdHN9IiBpbgotKyAgICAgICAgICAgICAgICAgICAgICAgICAgMzIpIEhQX0FS Q0g9ImhwcGEyLjBuIiA7OwotKyAgICAgICAgICAgICAgICAgICAgICAgICAgNjQpIEhQX0FSQ0g9 ImhwcGEyLjB3IiA7OwotKwkJCSAgJycpIEhQX0FSQ0g9ImhwcGEyLjAiIDs7ICAgIyBIUC1VWCAx MC4yMAotKyAgICAgICAgICAgICAgICAgICAgICAgIGVzYWMgOzsKLSsgICAgICAgICAgICAgICAg ICAgIGVzYWMKLSsJCWZpCi0rCQlpZiBbICIke0hQX0FSQ0h9IiA9ICIiIF07IHRoZW4KLSsJCSAg ICBldmFsICRzZXRfY2NfZm9yX2J1aWxkCi0rCQkgICAgc2VkICdzL14gICAgICAgICAgICAgIC8v JyA8PCBFT0YgPiRkdW1teS5jCi0rCi0rICAgICAgICAgICAgICAjZGVmaW5lIF9IUFVYX1NPVVJD RQotKyAgICAgICAgICAgICAgI2luY2x1ZGUgPHN0ZGxpYi5oPgotKyAgICAgICAgICAgICAgI2lu Y2x1ZGUgPHVuaXN0ZC5oPgotKwotKyAgICAgICAgICAgICAgaW50IG1haW4gKCkKLSsgICAgICAg ICAgICAgIHsKLSsgICAgICAgICAgICAgICNpZiBkZWZpbmVkKF9TQ19LRVJORUxfQklUUykKLSsg ICAgICAgICAgICAgICAgICBsb25nIGJpdHMgPSBzeXNjb25mKF9TQ19LRVJORUxfQklUUyk7Ci0r ICAgICAgICAgICAgICAjZW5kaWYKLSsgICAgICAgICAgICAgICAgICBsb25nIGNwdSAgPSBzeXNj b25mIChfU0NfQ1BVX1ZFUlNJT04pOwotKwotKyAgICAgICAgICAgICAgICAgIHN3aXRjaCAoY3B1 KQotKyAgICAgICAgICAgICAgCXsKLSsgICAgICAgICAgICAgIAljYXNlIENQVV9QQV9SSVNDMV8w OiBwdXRzICgiaHBwYTEuMCIpOyBicmVhazsKLSsgICAgICAgICAgICAgIAljYXNlIENQVV9QQV9S SVNDMV8xOiBwdXRzICgiaHBwYTEuMSIpOyBicmVhazsKLSsgICAgICAgICAgICAgIAljYXNlIENQ VV9QQV9SSVNDMl8wOgotKyAgICAgICAgICAgICAgI2lmIGRlZmluZWQoX1NDX0tFUk5FTF9CSVRT KQotKyAgICAgICAgICAgICAgCSAgICBzd2l0Y2ggKGJpdHMpCi0rICAgICAgICAgICAgICAJCXsK LSsgICAgICAgICAgICAgIAkJY2FzZSA2NDogcHV0cyAoImhwcGEyLjB3Iik7IGJyZWFrOwotKyAg ICAgICAgICAgICAgCQljYXNlIDMyOiBwdXRzICgiaHBwYTIuMG4iKTsgYnJlYWs7Ci0rICAgICAg ICAgICAgICAJCWRlZmF1bHQ6IHB1dHMgKCJocHBhMi4wIik7IGJyZWFrOwotKyAgICAgICAgICAg ICAgCQl9IGJyZWFrOwotKyAgICAgICAgICAgICAgI2Vsc2UgIC8qICFkZWZpbmVkKF9TQ19LRVJO RUxfQklUUykgKi8KLSsgICAgICAgICAgICAgIAkgICAgcHV0cyAoImhwcGEyLjAiKTsgYnJlYWs7 Ci0rICAgICAgICAgICAgICAjZW5kaWYKLSsgICAgICAgICAgICAgIAlkZWZhdWx0OiBwdXRzICgi aHBwYTEuMCIpOyBicmVhazsKLSsgICAgICAgICAgICAgIAl9Ci0rICAgICAgICAgICAgICAgICAg ZXhpdCAoMCk7Ci0rICAgICAgICAgICAgICB9Ci0rRU9GCi0rCQkgICAgKENDT1BUUz0gJENDX0ZP Ul9CVUlMRCAtbyAkZHVtbXkgJGR1bW15LmMgMj4vZGV2L251bGwpICYmIEhQX0FSQ0g9YCRkdW1t eWAKLSsJCSAgICB0ZXN0IC16ICIkSFBfQVJDSCIgJiYgSFBfQVJDSD1ocHBhCi0rCQlmaSA7Owot Kwllc2FjCi0rCWlmIFsgJHtIUF9BUkNIfSA9ICJocHBhMi4wdyIgXQotKwl0aGVuCi0rCSAgICBl dmFsICRzZXRfY2NfZm9yX2J1aWxkCi0rCi0rCSAgICAjIGhwcGEyLjB3LWhwLWhwdXgqIGhhcyBh IDY0LWJpdCBrZXJuZWwgYW5kIGEgY29tcGlsZXIgZ2VuZXJhdGluZwotKwkgICAgIyAzMi1iaXQg Y29kZS4gIGhwcGE2NC1ocC1ocHV4KiBoYXMgdGhlIHNhbWUga2VybmVsIGFuZCBhIGNvbXBpbGVy Ci0rCSAgICAjIGdlbmVyYXRpbmcgNjQtYml0IGNvZGUuICBHTlUgYW5kIEhQIHVzZSBkaWZmZXJl bnQgbm9tZW5jbGF0dXJlOgotKwkgICAgIwotKwkgICAgIyAkIENDX0ZPUl9CVUlMRD1jYyAuL2Nv bmZpZy5ndWVzcwotKwkgICAgIyA9PiBocHBhMi4wdy1ocC1ocHV4MTEuMjMKLSsJICAgICMgJCBD Q19GT1JfQlVJTEQ9ImNjICtEQTIuMHciIC4vY29uZmlnLmd1ZXNzCi0rCSAgICAjID0+IGhwcGE2 NC1ocC1ocHV4MTEuMjMKLSsKLSsJICAgIGlmIGVjaG8gX19MUDY0X18gfCAoQ0NPUFRTPSAkQ0Nf Rk9SX0JVSUxEIC1FIC0gMj4vZGV2L251bGwpIHwKLSsJCWdyZXAgX19MUDY0X18gPi9kZXYvbnVs bAotKwkgICAgdGhlbgotKwkJSFBfQVJDSD0iaHBwYTIuMHciCi0rCSAgICBlbHNlCi0rCQlIUF9B UkNIPSJocHBhNjQiCi0rCSAgICBmaQotKwlmaQotKwllY2hvICR7SFBfQVJDSH0taHAtaHB1eCR7 SFBVWF9SRVZ9Ci0rCWV4aXQgOzsKLSsgICAgaWE2NDpIUC1VWDoqOiopCi0rCUhQVVhfUkVWPWBl Y2hvICR7VU5BTUVfUkVMRUFTRX18c2VkIC1lICdzL1teLl0qLlswQl0qLy8nYAotKwllY2hvIGlh NjQtaHAtaHB1eCR7SFBVWF9SRVZ9Ci0rCWV4aXQgOzsKLSsgICAgMzA1MCo6SEktVVg6KjoqKQot KwlldmFsICRzZXRfY2NfZm9yX2J1aWxkCi0rCXNlZCAncy9eCS8vJyA8PCBFT0YgPiRkdW1teS5j Ci0rCSNpbmNsdWRlIDx1bmlzdGQuaD4KLSsJaW50Ci0rCW1haW4gKCkKLSsJewotKwkgIGxvbmcg Y3B1ID0gc3lzY29uZiAoX1NDX0NQVV9WRVJTSU9OKTsKLSsJICAvKiBUaGUgb3JkZXIgbWF0dGVy cywgYmVjYXVzZSBDUFVfSVNfSFBfTUM2OEsgZXJyb25lb3VzbHkgcmV0dXJucwotKwkgICAgIHRy dWUgZm9yIENQVV9QQV9SSVNDMV8wLiAgQ1BVX0lTX1BBX1JJU0MgcmV0dXJucyBjb3JyZWN0Ci0r CSAgICAgcmVzdWx0cywgaG93ZXZlci4gICovCi0rCSAgaWYgKENQVV9JU19QQV9SSVNDIChjcHUp KQotKwkgICAgewotKwkgICAgICBzd2l0Y2ggKGNwdSkKLSsJCXsKLSsJCSAgY2FzZSBDUFVfUEFf UklTQzFfMDogcHV0cyAoImhwcGExLjAtaGl0YWNoaS1oaXV4d2UyIik7IGJyZWFrOwotKwkJICBj YXNlIENQVV9QQV9SSVNDMV8xOiBwdXRzICgiaHBwYTEuMS1oaXRhY2hpLWhpdXh3ZTIiKTsgYnJl YWs7Ci0rCQkgIGNhc2UgQ1BVX1BBX1JJU0MyXzA6IHB1dHMgKCJocHBhMi4wLWhpdGFjaGktaGl1 eHdlMiIpOyBicmVhazsKLSsJCSAgZGVmYXVsdDogcHV0cyAoImhwcGEtaGl0YWNoaS1oaXV4d2Uy Iik7IGJyZWFrOwotKwkJfQotKwkgICAgfQotKwkgIGVsc2UgaWYgKENQVV9JU19IUF9NQzY4SyAo Y3B1KSkKLSsJICAgIHB1dHMgKCJtNjhrLWhpdGFjaGktaGl1eHdlMiIpOwotKwkgIGVsc2UgcHV0 cyAoInVua25vd24taGl0YWNoaS1oaXV4d2UyIik7Ci0rCSAgZXhpdCAoMCk7Ci0rCX0KLStFT0YK LSsJJENDX0ZPUl9CVUlMRCAtbyAkZHVtbXkgJGR1bW15LmMgJiYgU1lTVEVNX05BTUU9YCRkdW1t eWAgJiYKLSsJCXsgZWNobyAiJFNZU1RFTV9OQU1FIjsgZXhpdDsgfQotKwllY2hvIHVua25vd24t aGl0YWNoaS1oaXV4d2UyCi0rCWV4aXQgOzsKLSsgICAgOTAwMC83Pz86NC4zYnNkOio6KiB8IDkw MDAvOD9bNzldOjQuM2JzZDoqOiogKQotKwllY2hvIGhwcGExLjEtaHAtYnNkCi0rCWV4aXQgOzsK LSsgICAgOTAwMC84Pz86NC4zYnNkOio6KikKLSsJZWNobyBocHBhMS4wLWhwLWJzZAotKwlleGl0 IDs7Ci0rICAgICo5Pz8qOk1QRS9pWDoqOiogfCAqMzAwMCo6TVBFL2lYOio6KikKLSsJZWNobyBo cHBhMS4wLWhwLW1wZWl4Ci0rCWV4aXQgOzsKLSsgICAgaHA3Pz86T1NGMToqOiogfCBocDg/Wzc5 XTpPU0YxOio6KiApCi0rCWVjaG8gaHBwYTEuMS1ocC1vc2YKLSsJZXhpdCA7OwotKyAgICBocDg/ PzpPU0YxOio6KikKLSsJZWNobyBocHBhMS4wLWhwLW9zZgotKwlleGl0IDs7Ci0rICAgIGkqODY6 T1NGMToqOiopCi0rCWlmIFsgLXggL3Vzci9zYmluL3N5c3ZlcnNpb24gXSA7IHRoZW4KLSsJICAg IGVjaG8gJHtVTkFNRV9NQUNISU5FfS11bmtub3duLW9zZjFtawotKwllbHNlCi0rCSAgICBlY2hv ICR7VU5BTUVfTUFDSElORX0tdW5rbm93bi1vc2YxCi0rCWZpCi0rCWV4aXQgOzsKLSsgICAgcGFy aXNjKjpMaXRlcyo6KjoqKQotKwllY2hvIGhwcGExLjEtaHAtbGl0ZXMKLSsJZXhpdCA7OwotKyAg ICBDMSo6Q29udmV4T1M6KjoqIHwgY29udmV4OkNvbnZleE9TOkMxKjoqKQotKwllY2hvIGMxLWNv bnZleC1ic2QKLSsgICAgICAgIGV4aXQgOzsKLSsgICAgQzIqOkNvbnZleE9TOio6KiB8IGNvbnZl eDpDb252ZXhPUzpDMio6KikKLSsJaWYgZ2V0c3lzaW5mbyAtZiBzY2FsYXJfYWNjCi0rCXRoZW4g ZWNobyBjMzItY29udmV4LWJzZAotKwllbHNlIGVjaG8gYzItY29udmV4LWJzZAotKwlmaQotKyAg ICAgICAgZXhpdCA7OwotKyAgICBDMzQqOkNvbnZleE9TOio6KiB8IGNvbnZleDpDb252ZXhPUzpD MzQqOiopCi0rCWVjaG8gYzM0LWNvbnZleC1ic2QKLSsgICAgICAgIGV4aXQgOzsKLSsgICAgQzM4 KjpDb252ZXhPUzoqOiogfCBjb252ZXg6Q29udmV4T1M6QzM4KjoqKQotKwllY2hvIGMzOC1jb252 ZXgtYnNkCi0rICAgICAgICBleGl0IDs7Ci0rICAgIEM0KjpDb252ZXhPUzoqOiogfCBjb252ZXg6 Q29udmV4T1M6QzQqOiopCi0rCWVjaG8gYzQtY29udmV4LWJzZAotKyAgICAgICAgZXhpdCA7Owot KyAgICBDUkFZKlktTVA6KjoqOiopCi0rCWVjaG8geW1wLWNyYXktdW5pY29zJHtVTkFNRV9SRUxF QVNFfSB8IHNlZCAtZSAncy9cLlteLl0qJC8uWC8nCi0rCWV4aXQgOzsKLSsgICAgQ1JBWSpbQS1a XTkwOio6KjoqKQotKwllY2hvICR7VU5BTUVfTUFDSElORX0tY3JheS11bmljb3Mke1VOQU1FX1JF TEVBU0V9IFwKLSsJfCBzZWQgLWUgJ3MvQ1JBWS4qXChbQS1aXTkwXCkvXDEvJyBcCi0rCSAgICAg IC1lIHkvQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVovYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4 eXovIFwKLSsJICAgICAgLWUgJ3MvXC5bXi5dKiQvLlgvJwotKwlleGl0IDs7Ci0rICAgIENSQVkq VFM6KjoqOiopCi0rCWVjaG8gdDkwLWNyYXktdW5pY29zJHtVTkFNRV9SRUxFQVNFfSB8IHNlZCAt ZSAncy9cLlteLl0qJC8uWC8nCi0rCWV4aXQgOzsKLSsgICAgQ1JBWSpUM0U6KjoqOiopCi0rCWVj aG8gYWxwaGFldjUtY3JheS11bmljb3NtayR7VU5BTUVfUkVMRUFTRX0gfCBzZWQgLWUgJ3MvXC5b Xi5dKiQvLlgvJwotKwlleGl0IDs7Ci0rICAgIENSQVkqU1YxOio6KjoqKQotKwllY2hvIHN2MS1j cmF5LXVuaWNvcyR7VU5BTUVfUkVMRUFTRX0gfCBzZWQgLWUgJ3MvXC5bXi5dKiQvLlgvJwotKwll eGl0IDs7Ci0rICAgICo6VU5JQ09TL21wOio6KikKLSsJZWNobyBjcmF5bnYtY3JheS11bmljb3Nt cCR7VU5BTUVfUkVMRUFTRX0gfCBzZWQgLWUgJ3MvXC5bXi5dKiQvLlgvJwotKwlleGl0IDs7Ci0r ICAgIEYzMFswMV06VU5JWF9TeXN0ZW1fVjoqOiogfCBGNzAwOlVOSVhfU3lzdGVtX1Y6KjoqKQot KwlGVUpJVFNVX1BST0M9YHVuYW1lIC1tIHwgdHIgJ0FCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFla JyAnYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXonYAotKyAgICAgICAgRlVKSVRTVV9TWVM9YHVu YW1lIC1wIHwgdHIgJ0FCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaJyAnYWJjZGVmZ2hpamtsbW5v cHFyc3R1dnd4eXonIHwgc2VkIC1lICdzL1wvLy8nYAotKyAgICAgICAgRlVKSVRTVV9SRUw9YGVj aG8gJHtVTkFNRV9SRUxFQVNFfSB8IHNlZCAtZSAncy8gL18vJ2AKLSsgICAgICAgIGVjaG8gIiR7 RlVKSVRTVV9QUk9DfS1mdWppdHN1LSR7RlVKSVRTVV9TWVN9JHtGVUpJVFNVX1JFTH0iCi0rICAg ICAgICBleGl0IDs7Ci0rICAgIDUwMDA6VU5JWF9TeXN0ZW1fVjo0Lio6KikKLSsgICAgICAgIEZV SklUU1VfU1lTPWB1bmFtZSAtcCB8IHRyICdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWicgJ2Fi Y2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6JyB8IHNlZCAtZSAncy9cLy8vJ2AKLSsgICAgICAgIEZV SklUU1VfUkVMPWBlY2hvICR7VU5BTUVfUkVMRUFTRX0gfCB0ciAnQUJDREVGR0hJSktMTU5PUFFS U1RVVldYWVonICdhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eicgfCBzZWQgLWUgJ3MvIC9fLydg Ci0rICAgICAgICBlY2hvICJzcGFyYy1mdWppdHN1LSR7RlVKSVRTVV9TWVN9JHtGVUpJVFNVX1JF TH0iCi0rCWV4aXQgOzsKLSsgICAgaSo4NjpCU0QvMzg2Oio6KiB8IGkqODY6QlNEL09TOio6KiB8 ICo6QXNjZW5kXCBFbWJlZGRlZC9PUzoqOiopCi0rCWVjaG8gJHtVTkFNRV9NQUNISU5FfS1wYy1i c2RpJHtVTkFNRV9SRUxFQVNFfQotKwlleGl0IDs7Ci0rICAgIHNwYXJjKjpCU0QvT1M6KjoqKQot KwllY2hvIHNwYXJjLXVua25vd24tYnNkaSR7VU5BTUVfUkVMRUFTRX0KLSsJZXhpdCA7OwotKyAg ICAqOkJTRC9PUzoqOiopCi0rCWVjaG8gJHtVTkFNRV9NQUNISU5FfS11bmtub3duLWJzZGkke1VO QU1FX1JFTEVBU0V9Ci0rCWV4aXQgOzsKLSsgICAgKjpGcmVlQlNEOio6KikKLSsJY2FzZSAke1VO QU1FX01BQ0hJTkV9IGluCi0rCSAgICBwYzk4KQotKwkJZWNobyBpMzg2LXVua25vd24tZnJlZWJz ZGBlY2hvICR7VU5BTUVfUkVMRUFTRX18c2VkIC1lICdzL1stKF0uKi8vJ2AgOzsKLSsJICAgIGFt ZDY0KQotKwkJZWNobyB4ODZfNjQtdW5rbm93bi1mcmVlYnNkYGVjaG8gJHtVTkFNRV9SRUxFQVNF fXxzZWQgLWUgJ3MvWy0oXS4qLy8nYCA7OwotKwkgICAgKikKLSsJCWVjaG8gJHtVTkFNRV9NQUNI SU5FfS11bmtub3duLWZyZWVic2RgZWNobyAke1VOQU1FX1JFTEVBU0V9fHNlZCAtZSAncy9bLShd LiovLydgIDs7Ci0rCWVzYWMKLSsJZXhpdCA7OwotKyAgICBpKjpDWUdXSU4qOiopCi0rCWVjaG8g JHtVTkFNRV9NQUNISU5FfS1wYy1jeWd3aW4KLSsJZXhpdCA7OwotKyAgICAqOk1JTkdXKjoqKQot KwllY2hvICR7VU5BTUVfTUFDSElORX0tcGMtbWluZ3czMgotKwlleGl0IDs7Ci0rICAgIGkqOndp bmRvd3MzMio6KikKLSsgICAgCSMgdW5hbWUgLW0gaW5jbHVkZXMgIi1wYyIgb24gdGhpcyBzeXN0 ZW0uCi0rICAgIAllY2hvICR7VU5BTUVfTUFDSElORX0tbWluZ3czMgotKwlleGl0IDs7Ci0rICAg IGkqOlBXKjoqKQotKwllY2hvICR7VU5BTUVfTUFDSElORX0tcGMtcHczMgotKwlleGl0IDs7Ci0r ICAgICo6SW50ZXJpeCo6WzM0NTZdKikKLSsgICAgCWNhc2UgJHtVTkFNRV9NQUNISU5FfSBpbgot KwkgICAgeDg2KQotKwkJZWNobyBpNTg2LXBjLWludGVyaXgke1VOQU1FX1JFTEVBU0V9Ci0rCQll eGl0IDs7Ci0rCSAgICBFTTY0VCB8IGF1dGhlbnRpY2FtZCB8IGdlbnVpbmVpbnRlbCkKLSsJCWVj aG8geDg2XzY0LXVua25vd24taW50ZXJpeCR7VU5BTUVfUkVMRUFTRX0KLSsJCWV4aXQgOzsKLSsJ ICAgIElBNjQpCi0rCQllY2hvIGlhNjQtdW5rbm93bi1pbnRlcml4JHtVTkFNRV9SRUxFQVNFfQot KwkJZXhpdCA7OwotKwllc2FjIDs7Ci0rICAgIFszNDVdODY6V2luZG93c185NToqIHwgWzM0NV04 NjpXaW5kb3dzXzk4OiogfCBbMzQ1XTg2OldpbmRvd3NfTlQ6KikKLSsJZWNobyBpJHtVTkFNRV9N QUNISU5FfS1wYy1ta3MKLSsJZXhpdCA7OwotKyAgICBpKjpXaW5kb3dzX05UKjoqIHwgUGVudGl1 bSo6V2luZG93c19OVCo6KikKLSsJIyBIb3cgZG8gd2Uga25vdyBpdCdzIEludGVyaXggcmF0aGVy IHRoYW4gdGhlIGdlbmVyaWMgUE9TSVggc3Vic3lzdGVtPwotKwkjIEl0IGFsc28gY29uZmxpY3Rz IHdpdGggcHJlLTIuMCB2ZXJzaW9ucyBvZiBBVCZUIFVXSU4uIFNob3VsZCB3ZQotKwkjIFVOQU1F X01BQ0hJTkUgYmFzZWQgb24gdGhlIG91dHB1dCBvZiB1bmFtZSBpbnN0ZWFkIG9mIGkzODY/Ci0r CWVjaG8gaTU4Ni1wYy1pbnRlcml4Ci0rCWV4aXQgOzsKLSsgICAgaSo6VVdJTio6KikKLSsJZWNo byAke1VOQU1FX01BQ0hJTkV9LXBjLXV3aW4KLSsJZXhpdCA7OwotKyAgICBhbWQ2NDpDWUdXSU4q Oio6KiB8IHg4Nl82NDpDWUdXSU4qOio6KikKLSsJZWNobyB4ODZfNjQtdW5rbm93bi1jeWd3aW4K LSsJZXhpdCA7OwotKyAgICBwKjpDWUdXSU4qOiopCi0rCWVjaG8gcG93ZXJwY2xlLXVua25vd24t Y3lnd2luCi0rCWV4aXQgOzsKLSsgICAgcHJlcCo6U3VuT1M6NS4qOiopCi0rCWVjaG8gcG93ZXJw Y2xlLXVua25vd24tc29sYXJpczJgZWNobyAke1VOQU1FX1JFTEVBU0V9fHNlZCAtZSAncy9bXi5d Ki8vJ2AKLSsJZXhpdCA7OwotKyAgICAqOkdOVToqOiopCi0rCSMgdGhlIEdOVSBzeXN0ZW0KLSsJ ZWNobyBgZWNobyAke1VOQU1FX01BQ0hJTkV9fHNlZCAtZSAncyxbLS9dLiokLCwnYC11bmtub3du LWdudWBlY2hvICR7VU5BTUVfUkVMRUFTRX18c2VkIC1lICdzLC8uKiQsLCdgCi0rCWV4aXQgOzsK LSsgICAgKjpHTlUvKjoqOiopCi0rCSMgb3RoZXIgc3lzdGVtcyB3aXRoIEdOVSBsaWJjIGFuZCB1 c2VybGFuZAotKwllY2hvICR7VU5BTUVfTUFDSElORX0tdW5rbm93bi1gZWNobyAke1VOQU1FX1NZ U1RFTX0gfCBzZWQgJ3MsXlteL10qLywsJyB8IHRyICdbQS1aXScgJ1thLXpdJ2BgZWNobyAke1VO QU1FX1JFTEVBU0V9fHNlZCAtZSAncy9bLShdLiovLydgLWdudQotKwlleGl0IDs7Ci0rICAgIGkq ODY6TWluaXg6KjoqKQotKwllY2hvICR7VU5BTUVfTUFDSElORX0tcGMtbWluaXgKLSsJZXhpdCA7 OwotKyAgICBhcm0qOkxpbnV4Oio6KikKLSsJZXZhbCAkc2V0X2NjX2Zvcl9idWlsZAotKwlpZiBl Y2hvIF9fQVJNX0VBQklfXyB8ICRDQ19GT1JfQlVJTEQgLUUgLSAyPi9kZXYvbnVsbCBcCi0rCSAg ICB8IGdyZXAgLXEgX19BUk1fRUFCSV9fCi0rCXRoZW4KLSsJICAgIGVjaG8gJHtVTkFNRV9NQUNI SU5FfS11bmtub3duLWxpbnV4LWdudQotKwllbHNlCi0rCSAgICBlY2hvICR7VU5BTUVfTUFDSElO RX0tdW5rbm93bi1saW51eC1nbnVlYWJpCi0rCWZpCi0rCWV4aXQgOzsKLSsgICAgYXZyMzIqOkxp bnV4Oio6KikKLSsJZWNobyAke1VOQU1FX01BQ0hJTkV9LXVua25vd24tbGludXgtZ251Ci0rCWV4 aXQgOzsKLSsgICAgY3JpczpMaW51eDoqOiopCi0rCWVjaG8gY3Jpcy1heGlzLWxpbnV4LWdudQot KwlleGl0IDs7Ci0rICAgIGNyaXN2MzI6TGludXg6KjoqKQotKwllY2hvIGNyaXN2MzItYXhpcy1s aW51eC1nbnUKLSsJZXhpdCA7OwotKyAgICBmcnY6TGludXg6KjoqKQotKyAgICAJZWNobyBmcnYt dW5rbm93bi1saW51eC1nbnUKLSsJZXhpdCA7OwotKyAgICBpYTY0OkxpbnV4Oio6KikKLSsJZWNo byAke1VOQU1FX01BQ0hJTkV9LXVua25vd24tbGludXgtZ251Ci0rCWV4aXQgOzsKLSsgICAgbTMy cio6TGludXg6KjoqKQotKwllY2hvICR7VU5BTUVfTUFDSElORX0tdW5rbm93bi1saW51eC1nbnUK LSsJZXhpdCA7OwotKyAgICBtNjgqOkxpbnV4Oio6KikKLSsJZWNobyAke1VOQU1FX01BQ0hJTkV9 LXVua25vd24tbGludXgtZ251Ci0rCWV4aXQgOzsKLSsgICAgbWlwczpMaW51eDoqOiopCi0rCWV2 YWwgJHNldF9jY19mb3JfYnVpbGQKLSsJc2VkICdzL14JLy8nIDw8IEVPRiA+JGR1bW15LmMKLSsJ I3VuZGVmIENQVQotKwkjdW5kZWYgbWlwcwotKwkjdW5kZWYgbWlwc2VsCi0rCSNpZiBkZWZpbmVk KF9fTUlQU0VMX18pIHx8IGRlZmluZWQoX19NSVBTRUwpIHx8IGRlZmluZWQoX01JUFNFTCkgfHwg ZGVmaW5lZChNSVBTRUwpCi0rCUNQVT1taXBzZWwKLSsJI2Vsc2UKLSsJI2lmIGRlZmluZWQoX19N SVBTRUJfXykgfHwgZGVmaW5lZChfX01JUFNFQikgfHwgZGVmaW5lZChfTUlQU0VCKSB8fCBkZWZp bmVkKE1JUFNFQikKLSsJQ1BVPW1pcHMKLSsJI2Vsc2UKLSsJQ1BVPQotKwkjZW5kaWYKLSsJI2Vu ZGlmCi0rRU9GCi0rCWV2YWwgImAkQ0NfRk9SX0JVSUxEIC1FICRkdW1teS5jIDI+L2Rldi9udWxs IHwgc2VkIC1uICcKLSsJICAgIC9eQ1BVL3sKLSsJCXM6IDo6ZwotKwkJcAotKwkgICAgfSdgIgot Kwl0ZXN0IHgiJHtDUFV9IiAhPSB4ICYmIHsgZWNobyAiJHtDUFV9LXVua25vd24tbGludXgtZ251 IjsgZXhpdDsgfQotKwk7OwotKyAgICBtaXBzNjQ6TGludXg6KjoqKQotKwlldmFsICRzZXRfY2Nf Zm9yX2J1aWxkCi0rCXNlZCAncy9eCS8vJyA8PCBFT0YgPiRkdW1teS5jCi0rCSN1bmRlZiBDUFUK LSsJI3VuZGVmIG1pcHM2NAotKwkjdW5kZWYgbWlwczY0ZWwKLSsJI2lmIGRlZmluZWQoX19NSVBT RUxfXykgfHwgZGVmaW5lZChfX01JUFNFTCkgfHwgZGVmaW5lZChfTUlQU0VMKSB8fCBkZWZpbmVk KE1JUFNFTCkKLSsJQ1BVPW1pcHM2NGVsCi0rCSNlbHNlCi0rCSNpZiBkZWZpbmVkKF9fTUlQU0VC X18pIHx8IGRlZmluZWQoX19NSVBTRUIpIHx8IGRlZmluZWQoX01JUFNFQikgfHwgZGVmaW5lZChN SVBTRUIpCi0rCUNQVT1taXBzNjQKLSsJI2Vsc2UKLSsJQ1BVPQotKwkjZW5kaWYKLSsJI2VuZGlm Ci0rRU9GCi0rCWV2YWwgImAkQ0NfRk9SX0JVSUxEIC1FICRkdW1teS5jIDI+L2Rldi9udWxsIHwg c2VkIC1uICcKLSsJICAgIC9eQ1BVL3sKLSsJCXM6IDo6ZwotKwkJcAotKwkgICAgfSdgIgotKwl0 ZXN0IHgiJHtDUFV9IiAhPSB4ICYmIHsgZWNobyAiJHtDUFV9LXVua25vd24tbGludXgtZ251Ijsg ZXhpdDsgfQotKwk7OwotKyAgICBvcjMyOkxpbnV4Oio6KikKLSsJZWNobyBvcjMyLXVua25vd24t bGludXgtZ251Ci0rCWV4aXQgOzsKLSsgICAgcHBjOkxpbnV4Oio6KikKLSsJZWNobyBwb3dlcnBj LXVua25vd24tbGludXgtZ251Ci0rCWV4aXQgOzsKLSsgICAgcHBjNjQ6TGludXg6KjoqKQotKwll Y2hvIHBvd2VycGM2NC11bmtub3duLWxpbnV4LWdudQotKwlleGl0IDs7Ci0rICAgIGFscGhhOkxp bnV4Oio6KikKLSsJY2FzZSBgc2VkIC1uICcvXmNwdSBtb2RlbC9zL14uKjogXCguKlwpL1wxL3An IDwgL3Byb2MvY3B1aW5mb2AgaW4KLSsJICBFVjUpICAgVU5BTUVfTUFDSElORT1hbHBoYWV2NSA7 OwotKwkgIEVWNTYpICBVTkFNRV9NQUNISU5FPWFscGhhZXY1NiA7OwotKwkgIFBDQTU2KSBVTkFN RV9NQUNISU5FPWFscGhhcGNhNTYgOzsKLSsJICBQQ0E1NykgVU5BTUVfTUFDSElORT1hbHBoYXBj YTU2IDs7Ci0rCSAgRVY2KSAgIFVOQU1FX01BQ0hJTkU9YWxwaGFldjYgOzsKLSsJICBFVjY3KSAg VU5BTUVfTUFDSElORT1hbHBoYWV2NjcgOzsKLSsJICBFVjY4KikgVU5BTUVfTUFDSElORT1hbHBo YWV2NjggOzsKLSsgICAgICAgIGVzYWMKLSsJb2JqZHVtcCAtLXByaXZhdGUtaGVhZGVycyAvYmlu L3NoIHwgZ3JlcCBsZC5zby4xID4vZGV2L251bGwKLSsJaWYgdGVzdCAiJD8iID0gMCA7IHRoZW4g TElCQz0ibGliYzEiIDsgZWxzZSBMSUJDPSIiIDsgZmkKLSsJZWNobyAke1VOQU1FX01BQ0hJTkV9 LXVua25vd24tbGludXgtZ251JHtMSUJDfQotKwlleGl0IDs7Ci0rICAgIHBhZHJlOkxpbnV4Oio6 KikKLSsJZWNobyBzcGFyYy11bmtub3duLWxpbnV4LWdudQotKwlleGl0IDs7Ci0rICAgIHBhcmlz YzpMaW51eDoqOiogfCBocHBhOkxpbnV4Oio6KikKLSsJIyBMb29rIGZvciBDUFUgbGV2ZWwKLSsJ Y2FzZSBgZ3JlcCAnXmNwdVteYS16XSo6JyAvcHJvYy9jcHVpbmZvIDI+L2Rldi9udWxsIHwgY3V0 IC1kJyAnIC1mMmAgaW4KLSsJICBQQTcqKSBlY2hvIGhwcGExLjEtdW5rbm93bi1saW51eC1nbnUg OzsKLSsJICBQQTgqKSBlY2hvIGhwcGEyLjAtdW5rbm93bi1saW51eC1nbnUgOzsKLSsJICAqKSAg ICBlY2hvIGhwcGEtdW5rbm93bi1saW51eC1nbnUgOzsKLSsJZXNhYwotKwlleGl0IDs7Ci0rICAg IHBhcmlzYzY0OkxpbnV4Oio6KiB8IGhwcGE2NDpMaW51eDoqOiopCi0rCWVjaG8gaHBwYTY0LXVu a25vd24tbGludXgtZ251Ci0rCWV4aXQgOzsKLSsgICAgczM5MDpMaW51eDoqOiogfCBzMzkweDpM aW51eDoqOiopCi0rCWVjaG8gJHtVTkFNRV9NQUNISU5FfS1pYm0tbGludXgKLSsJZXhpdCA7Owot KyAgICBzaDY0KjpMaW51eDoqOiopCi0rICAgIAllY2hvICR7VU5BTUVfTUFDSElORX0tdW5rbm93 bi1saW51eC1nbnUKLSsJZXhpdCA7OwotKyAgICBzaCo6TGludXg6KjoqKQotKwllY2hvICR7VU5B TUVfTUFDSElORX0tdW5rbm93bi1saW51eC1nbnUKLSsJZXhpdCA7OwotKyAgICBzcGFyYzpMaW51 eDoqOiogfCBzcGFyYzY0OkxpbnV4Oio6KikKLSsJZWNobyAke1VOQU1FX01BQ0hJTkV9LXVua25v d24tbGludXgtZ251Ci0rCWV4aXQgOzsKLSsgICAgdmF4OkxpbnV4Oio6KikKLSsJZWNobyAke1VO QU1FX01BQ0hJTkV9LWRlYy1saW51eC1nbnUKLSsJZXhpdCA7OwotKyAgICB4ODZfNjQ6TGludXg6 KjoqKQotKwllY2hvIHg4Nl82NC11bmtub3duLWxpbnV4LWdudQotKwlleGl0IDs7Ci0rICAgIHh0 ZW5zYSo6TGludXg6KjoqKQotKyAgICAJZWNobyAke1VOQU1FX01BQ0hJTkV9LXVua25vd24tbGlu dXgtZ251Ci0rCWV4aXQgOzsKLSsgICAgaSo4NjpMaW51eDoqOiopCi0rCSMgVGhlIEJGRCBsaW5r ZXIga25vd3Mgd2hhdCB0aGUgZGVmYXVsdCBvYmplY3QgZmlsZSBmb3JtYXQgaXMsIHNvCi0rCSMg Zmlyc3Qgc2VlIGlmIGl0IHdpbGwgdGVsbCB1cy4gY2QgdG8gdGhlIHJvb3QgZGlyZWN0b3J5IHRv IHByZXZlbnQKLSsJIyBwcm9ibGVtcyB3aXRoIG90aGVyIHByb2dyYW1zIG9yIGRpcmVjdG9yaWVz IGNhbGxlZCBgbGQnIGluIHRoZSBwYXRoLgotKwkjIFNldCBMQ19BTEw9QyB0byBlbnN1cmUgbGQg b3V0cHV0cyBtZXNzYWdlcyBpbiBFbmdsaXNoLgotKwlsZF9zdXBwb3J0ZWRfdGFyZ2V0cz1gY2Qg LzsgTENfQUxMPUMgbGQgLS1oZWxwIDI+JjEgXAotKwkJCSB8IHNlZCAtbmUgJy9zdXBwb3J0ZWQg dGFyZ2V0czovIWQKLSsJCQkJICAgIHMvWyAJXVsgCV0qLyAvZwotKwkJCQkgICAgcy8uKnN1cHBv cnRlZCB0YXJnZXRzOiAqLy8KLSsJCQkJICAgIHMvIC4qLy8KLSsJCQkJICAgIHAnYAotKyAgICAg ICAgY2FzZSAiJGxkX3N1cHBvcnRlZF90YXJnZXRzIiBpbgotKwkgIGVsZjMyLWkzODYpCi0rCQlU RU5UQVRJVkU9IiR7VU5BTUVfTUFDSElORX0tcGMtbGludXgtZ251IgotKwkJOzsKLSsJICBhLm91 dC1pMzg2LWxpbnV4KQotKwkJZWNobyAiJHtVTkFNRV9NQUNISU5FfS1wYy1saW51eC1nbnVhb3V0 IgotKwkJZXhpdCA7OwotKwkgICIiKQotKwkJIyBFaXRoZXIgYSBwcmUtQkZEIGEub3V0IGxpbmtl ciAobGludXgtZ251b2xkbGQpIG9yCi0rCQkjIG9uZSB0aGF0IGRvZXMgbm90IGdpdmUgdXMgdXNl ZnVsIC0taGVscC4KLSsJCWVjaG8gIiR7VU5BTUVfTUFDSElORX0tcGMtbGludXgtZ251b2xkbGQi Ci0rCQlleGl0IDs7Ci0rCWVzYWMKLSsJIyBEZXRlcm1pbmUgd2hldGhlciB0aGUgZGVmYXVsdCBj b21waWxlciBpcyBhLm91dCBvciBlbGYKLSsJZXZhbCAkc2V0X2NjX2Zvcl9idWlsZAotKwlzZWQg J3MvXgkvLycgPDwgRU9GID4kZHVtbXkuYwotKwkjaW5jbHVkZSA8ZmVhdHVyZXMuaD4KLSsJI2lm ZGVmIF9fRUxGX18KLSsJIyBpZmRlZiBfX0dMSUJDX18KLSsJIyAgaWYgX19HTElCQ19fID49IDIK LSsJTElCQz1nbnUKLSsJIyAgZWxzZQotKwlMSUJDPWdudWxpYmMxCi0rCSMgIGVuZGlmCi0rCSMg ZWxzZQotKwlMSUJDPWdudWxpYmMxCi0rCSMgZW5kaWYKLSsJI2Vsc2UKLSsJI2lmIGRlZmluZWQo X19JTlRFTF9DT01QSUxFUikgfHwgZGVmaW5lZChfX1BHSSkgfHwgZGVmaW5lZChfX1NVTlBST19D KSB8fCBkZWZpbmVkKF9fU1VOUFJPX0NDKQotKwlMSUJDPWdudQotKwkjZWxzZQotKwlMSUJDPWdu dWFvdXQKLSsJI2VuZGlmCi0rCSNlbmRpZgotKwkjaWZkZWYgX19kaWV0bGliY19fCi0rCUxJQkM9 ZGlldGxpYmMKLSsJI2VuZGlmCi0rRU9GCi0rCWV2YWwgImAkQ0NfRk9SX0JVSUxEIC1FICRkdW1t eS5jIDI+L2Rldi9udWxsIHwgc2VkIC1uICcKLSsJICAgIC9eTElCQy97Ci0rCQlzOiA6OmcKLSsJ CXAKLSsJICAgIH0nYCIKLSsJdGVzdCB4IiR7TElCQ30iICE9IHggJiYgewotKwkJZWNobyAiJHtV TkFNRV9NQUNISU5FfS1wYy1saW51eC0ke0xJQkN9IgotKwkJZXhpdAotKwl9Ci0rCXRlc3QgeCIk e1RFTlRBVElWRX0iICE9IHggJiYgeyBlY2hvICIke1RFTlRBVElWRX0iOyBleGl0OyB9Ci0rCTs7 Ci0rICAgIGkqODY6RFlOSVgvcHR4OjQqOiopCi0rCSMgcHR4IDQuMCBkb2VzIHVuYW1lIC1zIGNv cnJlY3RseSwgd2l0aCBEWU5JWC9wdHggaW4gdGhlcmUuCi0rCSMgZWFybGllciB2ZXJzaW9ucyBh cmUgbWVzc2VkIHVwIGFuZCBwdXQgdGhlIG5vZGVuYW1lIGluIGJvdGgKLSsJIyBzeXNuYW1lIGFu ZCBub2RlbmFtZS4KLSsJZWNobyBpMzg2LXNlcXVlbnQtc3lzdjQKLSsJZXhpdCA7OwotKyAgICBp Kjg2OlVOSVhfU1Y6NC4yTVA6Mi4qKQotKyAgICAgICAgIyBVbml4d2FyZSBpcyBhbiBvZmZzaG9v dCBvZiBTVlI0LCBidXQgaXQgaGFzIGl0cyBvd24gdmVyc2lvbgotKyAgICAgICAgIyBudW1iZXIg c2VyaWVzIHN0YXJ0aW5nIHdpdGggMi4uLgotKyAgICAgICAgIyBJIGFtIG5vdCBwb3NpdGl2ZSB0 aGF0IG90aGVyIFNWUjQgc3lzdGVtcyB3b24ndCBtYXRjaCB0aGlzLAotKwkjIEkganVzdCBoYXZl IHRvIGhvcGUuICAtLSBybXMuCi0rICAgICAgICAjIFVzZSBzeXN2NC4ydXcuLi4gc28gdGhhdCBz eXN2NCogbWF0Y2hlcyBpdC4KLSsJZWNobyAke1VOQU1FX01BQ0hJTkV9LXBjLXN5c3Y0LjJ1dyR7 VU5BTUVfVkVSU0lPTn0KLSsJZXhpdCA7OwotKyAgICBpKjg2Ok9TLzI6KjoqKQotKwkjIElmIHdl IHdlcmUgYWJsZSB0byBmaW5kIGB1bmFtZScsIHRoZW4gRU1YIFVuaXggY29tcGF0aWJpbGl0eQot KwkjIGlzIHByb2JhYmx5IGluc3RhbGxlZC4KLSsJZWNobyAke1VOQU1FX01BQ0hJTkV9LXBjLW9z Mi1lbXgKLSsJZXhpdCA7OwotKyAgICBpKjg2OlhUUy0zMDA6KjpTVE9QKQotKwllY2hvICR7VU5B TUVfTUFDSElORX0tdW5rbm93bi1zdG9wCi0rCWV4aXQgOzsKLSsgICAgaSo4NjphdGhlb3M6Kjoq KQotKwllY2hvICR7VU5BTUVfTUFDSElORX0tdW5rbm93bi1hdGhlb3MKLSsJZXhpdCA7OwotKyAg ICBpKjg2OnN5bGxhYmxlOio6KikKLSsJZWNobyAke1VOQU1FX01BQ0hJTkV9LXBjLXN5bGxhYmxl Ci0rCWV4aXQgOzsKLSsgICAgaSo4NjpMeW54T1M6Mi4qOiogfCBpKjg2Okx5bnhPUzozLlswMV0q OiogfCBpKjg2Okx5bnhPUzo0LjAqOiopCi0rCWVjaG8gaTM4Ni11bmtub3duLWx5bnhvcyR7VU5B TUVfUkVMRUFTRX0KLSsJZXhpdCA7OwotKyAgICBpKjg2OipET1M6KjoqKQotKwllY2hvICR7VU5B TUVfTUFDSElORX0tcGMtbXNkb3NkamdwcAotKwlleGl0IDs7Ci0rICAgIGkqODY6Kjo0Lio6KiB8 IGkqODY6U1lTVEVNX1Y6NC4qOiopCi0rCVVOQU1FX1JFTD1gZWNobyAke1VOQU1FX1JFTEVBU0V9 IHwgc2VkICdzL1wvTVAkLy8nYAotKwlpZiBncmVwIE5vdmVsbCAvdXNyL2luY2x1ZGUvbGluay5o ID4vZGV2L251bGwgMj4vZGV2L251bGw7IHRoZW4KLSsJCWVjaG8gJHtVTkFNRV9NQUNISU5FfS11 bml2ZWwtc3lzdiR7VU5BTUVfUkVMfQotKwllbHNlCi0rCQllY2hvICR7VU5BTUVfTUFDSElORX0t cGMtc3lzdiR7VU5BTUVfUkVMfQotKwlmaQotKwlleGl0IDs7Ci0rICAgIGkqODY6Kjo1Ols2Nzhd KikKLSsgICAgCSMgVW5peFdhcmUgNy54LCBPcGVuVU5JWCBhbmQgT3BlblNlcnZlciA2LgotKwlj YXNlIGAvYmluL3VuYW1lIC1YIHwgZ3JlcCAiXk1hY2hpbmUiYCBpbgotKwkgICAgKjQ4NiopCSAg ICAgVU5BTUVfTUFDSElORT1pNDg2IDs7Ci0rCSAgICAqUGVudGl1bSkJICAgICBVTkFNRV9NQUNI SU5FPWk1ODYgOzsKLSsJICAgICpQZW50KnwqQ2VsZXJvbikgVU5BTUVfTUFDSElORT1pNjg2IDs7 Ci0rCWVzYWMKLSsJZWNobyAke1VOQU1FX01BQ0hJTkV9LXVua25vd24tc3lzdiR7VU5BTUVfUkVM RUFTRX0ke1VOQU1FX1NZU1RFTX0ke1VOQU1FX1ZFUlNJT059Ci0rCWV4aXQgOzsKLSsgICAgaSo4 NjoqOjMuMjoqKQotKwlpZiB0ZXN0IC1mIC91c3Ivb3B0aW9ucy9jYi5uYW1lOyB0aGVuCi0rCQlV TkFNRV9SRUw9YHNlZCAtbiAncy8uKlZlcnNpb24gLy9wJyA8L3Vzci9vcHRpb25zL2NiLm5hbWVg Ci0rCQllY2hvICR7VU5BTUVfTUFDSElORX0tcGMtaXNjJFVOQU1FX1JFTAotKwllbGlmIC9iaW4v dW5hbWUgLVggMj4vZGV2L251bGwgPi9kZXYvbnVsbCA7IHRoZW4KLSsJCVVOQU1FX1JFTD1gKC9i aW4vdW5hbWUgLVh8Z3JlcCBSZWxlYXNlfHNlZCAtZSAncy8uKj0gLy8nKWAKLSsJCSgvYmluL3Vu YW1lIC1YfGdyZXAgaTgwNDg2ID4vZGV2L251bGwpICYmIFVOQU1FX01BQ0hJTkU9aTQ4NgotKwkJ KC9iaW4vdW5hbWUgLVh8Z3JlcCAnXk1hY2hpbmUuKlBlbnRpdW0nID4vZGV2L251bGwpIFwKLSsJ CQkmJiBVTkFNRV9NQUNISU5FPWk1ODYKLSsJCSgvYmluL3VuYW1lIC1YfGdyZXAgJ15NYWNoaW5l LipQZW50ICpJSScgPi9kZXYvbnVsbCkgXAotKwkJCSYmIFVOQU1FX01BQ0hJTkU9aTY4NgotKwkJ KC9iaW4vdW5hbWUgLVh8Z3JlcCAnXk1hY2hpbmUuKlBlbnRpdW0gUHJvJyA+L2Rldi9udWxsKSBc Ci0rCQkJJiYgVU5BTUVfTUFDSElORT1pNjg2Ci0rCQllY2hvICR7VU5BTUVfTUFDSElORX0tcGMt c2NvJFVOQU1FX1JFTAotKwllbHNlCi0rCQllY2hvICR7VU5BTUVfTUFDSElORX0tcGMtc3lzdjMy Ci0rCWZpCi0rCWV4aXQgOzsKLSsgICAgcGM6KjoqOiopCi0rCSMgTGVmdCBoZXJlIGZvciBjb21w YXRpYmlsaXR5OgotKyAgICAgICAgIyB1bmFtZSAtbSBwcmludHMgZm9yIERKR1BQIGFsd2F5cyAn cGMnLCBidXQgaXQgcHJpbnRzIG5vdGhpbmcgYWJvdXQKLSsgICAgICAgICMgdGhlIHByb2Nlc3Nv ciwgc28gd2UgcGxheSBzYWZlIGJ5IGFzc3VtaW5nIGkzODYuCi0rCWVjaG8gaTM4Ni1wYy1tc2Rv c2RqZ3BwCi0rICAgICAgICBleGl0IDs7Ci0rICAgIEludGVsOk1hY2g6Myo6KikKLSsJZWNobyBp Mzg2LXBjLW1hY2gzCi0rCWV4aXQgOzsKLSsgICAgcGFyYWdvbjoqOio6KikKLSsJZWNobyBpODYw LWludGVsLW9zZjEKLSsJZXhpdCA7OwotKyAgICBpODYwOio6NC4qOiopICMgaTg2MC1TVlI0Ci0r CWlmIGdyZXAgU3RhcmRlbnQgL3Vzci9pbmNsdWRlL3N5cy91YWRtaW4uaCA+L2Rldi9udWxsIDI+ JjEgOyB0aGVuCi0rCSAgZWNobyBpODYwLXN0YXJkZW50LXN5c3Yke1VOQU1FX1JFTEVBU0V9ICMg U3RhcmRlbnQgVmlzdHJhIGk4NjAtU1ZSNAotKwllbHNlICMgQWRkIG90aGVyIGk4NjAtU1ZSNCB2 ZW5kb3JzIGJlbG93IGFzIHRoZXkgYXJlIGRpc2NvdmVyZWQuCi0rCSAgZWNobyBpODYwLXVua25v d24tc3lzdiR7VU5BTUVfUkVMRUFTRX0gICMgVW5rbm93biBpODYwLVNWUjQKLSsJZmkKLSsJZXhp dCA7OwotKyAgICBtaW5pKjpDVElYOlNZUyo1OiopCi0rCSMgIm1pbmlmcmFtZSIKLSsJZWNobyBt NjgwMTAtY29udmVyZ2VudC1zeXN2Ci0rCWV4aXQgOzsKLSsgICAgbWM2OGs6VU5JWDpTWVNURU01 OjMuNTFtKQotKwllY2hvIG02OGstY29udmVyZ2VudC1zeXN2Ci0rCWV4aXQgOzsKLSsgICAgTTY4 MD8wOkQtTklYOjUuMzoqKQotKwllY2hvIG02OGstZGlhYi1kbml4Ci0rCWV4aXQgOzsKLSsgICAg TTY4KjoqOlIzVls1Njc4XSo6KikKLSsJdGVzdCAtciAvc3lzVjY4ICYmIHsgZWNobyAnbTY4ay1t b3Rvcm9sYS1zeXN2JzsgZXhpdDsgfSA7OwotKyAgICAzWzM0NV0/PzoqOjQuMDozLjAgfCAzWzM0 XT8/QToqOjQuMDozLjAgfCAzWzM0XT8/LCo6Kjo0LjA6My4wIHwgM1szNF0/Py8qOio6NC4wOjMu MCB8IDQ0MDA6Kjo0LjA6My4wIHwgNDg1MDoqOjQuMDozLjAgfCBTS0E0MDoqOjQuMDozLjAgfCBT RFMyOio6NC4wOjMuMCB8IFNIRzI6Kjo0LjA6My4wIHwgUzc1MDEqOio6NC4wOjMuMCkKLSsJT1Nf UkVMPScnCi0rCXRlc3QgLXIgL2V0Yy8ucmVsaWQgXAotKwkmJiBPU19SRUw9LmBzZWQgLW4gJ3Mv W14gXSogW14gXSogXChbMC05XVswLTldXCkuKi9cMS9wJyA8IC9ldGMvLnJlbGlkYAotKwkvYmlu L3VuYW1lIC1wIDI+L2Rldi9udWxsIHwgZ3JlcCA4NiA+L2Rldi9udWxsIFwKLSsJICAmJiB7IGVj aG8gaTQ4Ni1uY3Itc3lzdjQuMyR7T1NfUkVMfTsgZXhpdDsgfQotKwkvYmluL3VuYW1lIC1wIDI+ L2Rldi9udWxsIHwgL2Jpbi9ncmVwIGVudGl1bSA+L2Rldi9udWxsIFwKLSsJICAmJiB7IGVjaG8g aTU4Ni1uY3Itc3lzdjQuMyR7T1NfUkVMfTsgZXhpdDsgfSA7OwotKyAgICAzWzM0XT8/Oio6NC4w OiogfCAzWzM0XT8/LCo6Kjo0LjA6KikKLSsgICAgICAgIC9iaW4vdW5hbWUgLXAgMj4vZGV2L251 bGwgfCBncmVwIDg2ID4vZGV2L251bGwgXAotKyAgICAgICAgICAmJiB7IGVjaG8gaTQ4Ni1uY3It c3lzdjQ7IGV4aXQ7IH0gOzsKLSsgICAgbTY4KjpMeW54T1M6Mi4qOiogfCBtNjgqOkx5bnhPUzoz LjAqOiopCi0rCWVjaG8gbTY4ay11bmtub3duLWx5bnhvcyR7VU5BTUVfUkVMRUFTRX0KLSsJZXhp dCA7OwotKyAgICBtYzY4MDMwOlVOSVhfU3lzdGVtX1Y6NC4qOiopCi0rCWVjaG8gbTY4ay1hdGFy aS1zeXN2NAotKwlleGl0IDs7Ci0rICAgIFRTVU5BTUk6THlueE9TOjIuKjoqKQotKwllY2hvIHNw YXJjLXVua25vd24tbHlueG9zJHtVTkFNRV9SRUxFQVNFfQotKwlleGl0IDs7Ci0rICAgIHJzNjAw MDpMeW54T1M6Mi4qOiopCi0rCWVjaG8gcnM2MDAwLXVua25vd24tbHlueG9zJHtVTkFNRV9SRUxF QVNFfQotKwlleGl0IDs7Ci0rICAgIFBvd2VyUEM6THlueE9TOjIuKjoqIHwgUG93ZXJQQzpMeW54 T1M6My5bMDFdKjoqIHwgUG93ZXJQQzpMeW54T1M6NC4wKjoqKQotKwllY2hvIHBvd2VycGMtdW5r bm93bi1seW54b3Mke1VOQU1FX1JFTEVBU0V9Ci0rCWV4aXQgOzsKLSsgICAgU01bQkVdUzpVTklY X1NWOio6KikKLSsJZWNobyBtaXBzLWRkZS1zeXN2JHtVTkFNRV9SRUxFQVNFfQotKwlleGl0IDs7 Ci0rICAgIFJNKjpSZWxpYW50VU5JWC0qOio6KikKLSsJZWNobyBtaXBzLXNuaS1zeXN2NAotKwll eGl0IDs7Ci0rICAgIFJNKjpTSU5JWC0qOio6KikKLSsJZWNobyBtaXBzLXNuaS1zeXN2NAotKwll eGl0IDs7Ci0rICAgICo6U0lOSVgtKjoqOiopCi0rCWlmIHVuYW1lIC1wIDI+L2Rldi9udWxsID4v ZGV2L251bGwgOyB0aGVuCi0rCQlVTkFNRV9NQUNISU5FPWAodW5hbWUgLXApIDI+L2Rldi9udWxs YAotKwkJZWNobyAke1VOQU1FX01BQ0hJTkV9LXNuaS1zeXN2NAotKwllbHNlCi0rCQllY2hvIG5z MzJrLXNuaS1zeXN2Ci0rCWZpCi0rCWV4aXQgOzsKLSsgICAgUEVOVElVTToqOjQuMCo6KikgIyBV bmlzeXMgYENsZWFyUGF0aCBITVAgSVggNDAwMCcgU1ZSNC9NUCBlZmZvcnQKLSsgICAgICAgICAg ICAgICAgICAgICAgIyBzYXlzIDxSaWNoYXJkLk0uQmFydGVsQGNjTWFpbC5DZW5zdXMuR09WPgot KyAgICAgICAgZWNobyBpNTg2LXVuaXN5cy1zeXN2NAotKyAgICAgICAgZXhpdCA7OwotKyAgICAq OlVOSVhfU3lzdGVtX1Y6NCo6RlRYKikKLSsJIyBGcm9tIEdlcmFsZCBIZXdlcyA8aGV3ZXNAb3Bl bm1hcmtldC5jb20+LgotKwkjIEhvdyBhYm91dCBkaWZmZXJlbnRpYXRpbmcgYmV0d2VlbiBzdHJh dHVzIGFyY2hpdGVjdHVyZXM/IC1kam0KLSsJZWNobyBocHBhMS4xLXN0cmF0dXMtc3lzdjQKLSsJ ZXhpdCA7OwotKyAgICAqOio6KjpGVFgqKQotKwkjIEZyb20gc2VhbmZAc3dkYy5zdHJhdHVzLmNv bS4KLSsJZWNobyBpODYwLXN0cmF0dXMtc3lzdjQKLSsJZXhpdCA7OwotKyAgICBpKjg2OlZPUzoq OiopCi0rCSMgRnJvbSBQYXVsLkdyZWVuQHN0cmF0dXMuY29tLgotKwllY2hvICR7VU5BTUVfTUFD SElORX0tc3RyYXR1cy12b3MKLSsJZXhpdCA7OwotKyAgICAqOlZPUzoqOiopCi0rCSMgRnJvbSBQ YXVsLkdyZWVuQHN0cmF0dXMuY29tLgotKwllY2hvIGhwcGExLjEtc3RyYXR1cy12b3MKLSsJZXhp dCA7OwotKyAgICBtYzY4KjpBL1VYOio6KikKLSsJZWNobyBtNjhrLWFwcGxlLWF1eCR7VU5BTUVf UkVMRUFTRX0KLSsJZXhpdCA7OwotKyAgICBuZXdzKjpORVdTLU9TOjYqOiopCi0rCWVjaG8gbWlw cy1zb255LW5ld3NvczYKLSsJZXhpdCA7OwotKyAgICBSWzM0XTAwMDoqU3lzdGVtX1YqOio6KiB8 IFI0MDAwOlVOSVhfU1lTVjoqOiogfCBSKjAwMDpVTklYX1NWOio6KikKLSsJaWYgWyAtZCAvdXNy L25lYyBdOyB0aGVuCi0rCSAgICAgICAgZWNobyBtaXBzLW5lYy1zeXN2JHtVTkFNRV9SRUxFQVNF fQotKwllbHNlCi0rCSAgICAgICAgZWNobyBtaXBzLXVua25vd24tc3lzdiR7VU5BTUVfUkVMRUFT RX0KLSsJZmkKLSsgICAgICAgIGV4aXQgOzsKLSsgICAgQmVCb3g6QmVPUzoqOiopCSMgQmVPUyBy dW5uaW5nIG9uIGhhcmR3YXJlIG1hZGUgYnkgQmUsIFBQQyBvbmx5LgotKwllY2hvIHBvd2VycGMt YmUtYmVvcwotKwlleGl0IDs7Ci0rICAgIEJlTWFjOkJlT1M6KjoqKQkjIEJlT1MgcnVubmluZyBv biBNYWMgb3IgTWFjIGNsb25lLCBQUEMgb25seS4KLSsJZWNobyBwb3dlcnBjLWFwcGxlLWJlb3MK LSsJZXhpdCA7OwotKyAgICBCZVBDOkJlT1M6KjoqKQkjIEJlT1MgcnVubmluZyBvbiBJbnRlbCBQ QyBjb21wYXRpYmxlLgotKwllY2hvIGk1ODYtcGMtYmVvcwotKwlleGl0IDs7Ci0rICAgIEJlUEM6 SGFpa3U6KjoqKQkjIEhhaWt1IHJ1bm5pbmcgb24gSW50ZWwgUEMgY29tcGF0aWJsZS4KLSsJZWNo byBpNTg2LXBjLWhhaWt1Ci0rCWV4aXQgOzsKLSsgICAgU1gtNDpTVVBFUi1VWDoqOiopCi0rCWVj aG8gc3g0LW5lYy1zdXBlcnV4JHtVTkFNRV9SRUxFQVNFfQotKwlleGl0IDs7Ci0rICAgIFNYLTU6 U1VQRVItVVg6KjoqKQotKwllY2hvIHN4NS1uZWMtc3VwZXJ1eCR7VU5BTUVfUkVMRUFTRX0KLSsJ ZXhpdCA7OwotKyAgICBTWC02OlNVUEVSLVVYOio6KikKLSsJZWNobyBzeDYtbmVjLXN1cGVydXgk e1VOQU1FX1JFTEVBU0V9Ci0rCWV4aXQgOzsKLSsgICAgU1gtNzpTVVBFUi1VWDoqOiopCi0rCWVj aG8gc3g3LW5lYy1zdXBlcnV4JHtVTkFNRV9SRUxFQVNFfQotKwlleGl0IDs7Ci0rICAgIFNYLTg6 U1VQRVItVVg6KjoqKQotKwllY2hvIHN4OC1uZWMtc3VwZXJ1eCR7VU5BTUVfUkVMRUFTRX0KLSsJ ZXhpdCA7OwotKyAgICBTWC04UjpTVVBFUi1VWDoqOiopCi0rCWVjaG8gc3g4ci1uZWMtc3VwZXJ1 eCR7VU5BTUVfUkVMRUFTRX0KLSsJZXhpdCA7OwotKyAgICBQb3dlcio6UmhhcHNvZHk6KjoqKQot KwllY2hvIHBvd2VycGMtYXBwbGUtcmhhcHNvZHkke1VOQU1FX1JFTEVBU0V9Ci0rCWV4aXQgOzsK LSsgICAgKjpSaGFwc29keToqOiopCi0rCWVjaG8gJHtVTkFNRV9NQUNISU5FfS1hcHBsZS1yaGFw c29keSR7VU5BTUVfUkVMRUFTRX0KLSsJZXhpdCA7OwotKyAgICAqOkRhcndpbjoqOiopCi0rCVVO QU1FX1BST0NFU1NPUj1gdW5hbWUgLXBgIHx8IFVOQU1FX1BST0NFU1NPUj11bmtub3duCi0rCWNh c2UgJFVOQU1FX1BST0NFU1NPUiBpbgotKwkgICAgdW5rbm93bikgVU5BTUVfUFJPQ0VTU09SPXBv d2VycGMgOzsKLSsJZXNhYwotKwllY2hvICR7VU5BTUVfUFJPQ0VTU09SfS1hcHBsZS1kYXJ3aW4k e1VOQU1FX1JFTEVBU0V9Ci0rCWV4aXQgOzsKLSsgICAgKjpwcm9jbnRvKjoqOiogfCAqOlFOWDpb MDEyMzQ1Njc4OV0qOiopCi0rCVVOQU1FX1BST0NFU1NPUj1gdW5hbWUgLXBgCi0rCWlmIHRlc3Qg IiRVTkFNRV9QUk9DRVNTT1IiID0gIng4NiI7IHRoZW4KLSsJCVVOQU1FX1BST0NFU1NPUj1pMzg2 Ci0rCQlVTkFNRV9NQUNISU5FPXBjCi0rCWZpCi0rCWVjaG8gJHtVTkFNRV9QUk9DRVNTT1J9LSR7 VU5BTUVfTUFDSElORX0tbnRvLXFueCR7VU5BTUVfUkVMRUFTRX0KLSsJZXhpdCA7OwotKyAgICAq OlFOWDoqOjQqKQotKwllY2hvIGkzODYtcGMtcW54Ci0rCWV4aXQgOzsKLSsgICAgTlNFLT86Tk9O U1RPUF9LRVJORUw6KjoqKQotKwllY2hvIG5zZS10YW5kZW0tbnNrJHtVTkFNRV9SRUxFQVNFfQot KwlleGl0IDs7Ci0rICAgIE5TUi0/Ok5PTlNUT1BfS0VSTkVMOio6KikKLSsJZWNobyBuc3ItdGFu ZGVtLW5zayR7VU5BTUVfUkVMRUFTRX0KLSsJZXhpdCA7OwotKyAgICAqOk5vblN0b3AtVVg6Kjoq KQotKwllY2hvIG1pcHMtY29tcGFxLW5vbnN0b3B1eAotKwlleGl0IDs7Ci0rICAgIEJTMjAwMDpQ T1NJWCo6KjoqKQotKwllY2hvIGJzMjAwMC1zaWVtZW5zLXN5c3YKLSsJZXhpdCA7OwotKyAgICBE Uy8qOlVOSVhfU3lzdGVtX1Y6KjoqKQotKwllY2hvICR7VU5BTUVfTUFDSElORX0tJHtVTkFNRV9T WVNURU19LSR7VU5BTUVfUkVMRUFTRX0KLSsJZXhpdCA7OwotKyAgICAqOlBsYW45Oio6KikKLSsJ IyAidW5hbWUgLW0iIGlzIG5vdCBjb25zaXN0ZW50LCBzbyB1c2UgJGNwdXR5cGUgaW5zdGVhZC4g Mzg2Ci0rCSMgaXMgY29udmVydGVkIHRvIGkzODYgZm9yIGNvbnNpc3RlbmN5IHdpdGggb3RoZXIg eDg2Ci0rCSMgb3BlcmF0aW5nIHN5c3RlbXMuCi0rCWlmIHRlc3QgIiRjcHV0eXBlIiA9ICIzODYi OyB0aGVuCi0rCSAgICBVTkFNRV9NQUNISU5FPWkzODYKLSsJZWxzZQotKwkgICAgVU5BTUVfTUFD SElORT0iJGNwdXR5cGUiCi0rCWZpCi0rCWVjaG8gJHtVTkFNRV9NQUNISU5FfS11bmtub3duLXBs YW45Ci0rCWV4aXQgOzsKLSsgICAgKjpUT1BTLTEwOio6KikKLSsJZWNobyBwZHAxMC11bmtub3du LXRvcHMxMAotKwlleGl0IDs7Ci0rICAgICo6VEVORVg6KjoqKQotKwllY2hvIHBkcDEwLXVua25v d24tdGVuZXgKLSsJZXhpdCA7OwotKyAgICBLUzEwOlRPUFMtMjA6KjoqIHwgS0wxMDpUT1BTLTIw Oio6KiB8IFRZUEU0OlRPUFMtMjA6KjoqKQotKwllY2hvIHBkcDEwLWRlYy10b3BzMjAKLSsJZXhp dCA7OwotKyAgICBYS0wtMTpUT1BTLTIwOio6KiB8IFRZUEU1OlRPUFMtMjA6KjoqKQotKwllY2hv IHBkcDEwLXhrbC10b3BzMjAKLSsJZXhpdCA7OwotKyAgICAqOlRPUFMtMjA6KjoqKQotKwllY2hv IHBkcDEwLXVua25vd24tdG9wczIwCi0rCWV4aXQgOzsKLSsgICAgKjpJVFM6KjoqKQotKwllY2hv IHBkcDEwLXVua25vd24taXRzCi0rCWV4aXQgOzsKLSsgICAgU0VJOio6KjpTRUlVWCkKLSsgICAg ICAgIGVjaG8gbWlwcy1zZWktc2VpdXgke1VOQU1FX1JFTEVBU0V9Ci0rCWV4aXQgOzsKLSsgICAg KjpEcmFnb25GbHk6KjoqKQotKwllY2hvICR7VU5BTUVfTUFDSElORX0tdW5rbm93bi1kcmFnb25m bHlgZWNobyAke1VOQU1FX1JFTEVBU0V9fHNlZCAtZSAncy9bLShdLiovLydgCi0rCWV4aXQgOzsK LSsgICAgKjoqVk1TOio6KikKLSsgICAgCVVOQU1FX01BQ0hJTkU9YCh1bmFtZSAtcCkgMj4vZGV2 L251bGxgCi0rCWNhc2UgIiR7VU5BTUVfTUFDSElORX0iIGluCi0rCSAgICBBKikgZWNobyBhbHBo YS1kZWMtdm1zIDsgZXhpdCA7OwotKwkgICAgSSopIGVjaG8gaWE2NC1kZWMtdm1zIDsgZXhpdCA7 OwotKwkgICAgViopIGVjaG8gdmF4LWRlYy12bXMgOyBleGl0IDs7Ci0rCWVzYWMgOzsKLSsgICAg KjpYRU5JWDoqOlN5c1YpCi0rCWVjaG8gaTM4Ni1wYy14ZW5peAotKwlleGl0IDs7Ci0rICAgIGkq ODY6c2t5b3M6KjoqKQotKwllY2hvICR7VU5BTUVfTUFDSElORX0tcGMtc2t5b3NgZWNobyAke1VO QU1FX1JFTEVBU0V9YCB8IHNlZCAtZSAncy8gLiokLy8nCi0rCWV4aXQgOzsKLSsgICAgaSo4Njpy ZG9zOio6KikKLSsJZWNobyAke1VOQU1FX01BQ0hJTkV9LXBjLXJkb3MKLSsJZXhpdCA7OwotK2Vz YWMKLSsKLSsjZWNobyAnKE5vIHVuYW1lIGNvbW1hbmQgb3IgdW5hbWUgb3V0cHV0IG5vdCByZWNv Z25pemVkLiknIDE+JjIKLSsjZWNobyAiJHtVTkFNRV9NQUNISU5FfToke1VOQU1FX1NZU1RFTX06 JHtVTkFNRV9SRUxFQVNFfToke1VOQU1FX1ZFUlNJT059IiAxPiYyCi0rCi0rZXZhbCAkc2V0X2Nj X2Zvcl9idWlsZAotK2NhdCA+JGR1bW15LmMgPDxFT0YKLSsjaWZkZWYgX1NFUVVFTlRfCi0rIyBp bmNsdWRlIDxzeXMvdHlwZXMuaD4KLSsjIGluY2x1ZGUgPHN5cy91dHNuYW1lLmg+Ci0rI2VuZGlm Ci0rbWFpbiAoKQotK3sKLSsjaWYgZGVmaW5lZCAoc29ueSkKLSsjaWYgZGVmaW5lZCAoTUlQU0VC KQotKyAgLyogQkZEIHdhbnRzICJic2QiIGluc3RlYWQgb2YgIm5ld3NvcyIuICBQZXJoYXBzIEJG RCBzaG91bGQgYmUgY2hhbmdlZCwKLSsgICAgIEkgZG9uJ3Qga25vdy4uLi4gICovCi0rICBwcmlu dGYgKCJtaXBzLXNvbnktYnNkXG4iKTsgZXhpdCAoMCk7Ci0rI2Vsc2UKLSsjaW5jbHVkZSA8c3lz L3BhcmFtLmg+Ci0rICBwcmludGYgKCJtNjhrLXNvbnktbmV3c29zJXNcbiIsCi0rI2lmZGVmIE5F V1NPUzQKLSsgICAgICAgICAgIjQiCi0rI2Vsc2UKLSsJICAiIgotKyNlbmRpZgotKyAgICAgICAg ICk7IGV4aXQgKDApOwotKyNlbmRpZgotKyNlbmRpZgotKwotKyNpZiBkZWZpbmVkIChfX2FybSkg JiYgZGVmaW5lZCAoX19hY29ybikgJiYgZGVmaW5lZCAoX191bml4KQotKyAgcHJpbnRmICgiYXJt LWFjb3JuLXJpc2NpeFxuIik7IGV4aXQgKDApOwotKyNlbmRpZgotKwotKyNpZiBkZWZpbmVkICho cDMwMCkgJiYgIWRlZmluZWQgKGhwdXgpCi0rICBwcmludGYgKCJtNjhrLWhwLWJzZFxuIik7IGV4 aXQgKDApOwotKyNlbmRpZgotKwotKyNpZiBkZWZpbmVkIChOZVhUKQotKyNpZiAhZGVmaW5lZCAo X19BUkNISVRFQ1RVUkVfXykKLSsjZGVmaW5lIF9fQVJDSElURUNUVVJFX18gIm02OGsiCi0rI2Vu ZGlmCi0rICBpbnQgdmVyc2lvbjsKLSsgIHZlcnNpb249YChob3N0aW5mbyB8IHNlZCAtbiAncy8u Kk5lWFQgTWFjaCBcKFswLTldKlwpLiovXDEvcCcpIDI+L2Rldi9udWxsYDsKLSsgIGlmICh2ZXJz aW9uIDwgNCkKLSsgICAgcHJpbnRmICgiJXMtbmV4dC1uZXh0c3RlcCVkXG4iLCBfX0FSQ0hJVEVD VFVSRV9fLCB2ZXJzaW9uKTsKLSsgIGVsc2UKLSsgICAgcHJpbnRmICgiJXMtbmV4dC1vcGVuc3Rl cCVkXG4iLCBfX0FSQ0hJVEVDVFVSRV9fLCB2ZXJzaW9uKTsKLSsgIGV4aXQgKDApOwotKyNlbmRp ZgotKwotKyNpZiBkZWZpbmVkIChNVUxUSU1BWCkgfHwgZGVmaW5lZCAobjE2KQotKyNpZiBkZWZp bmVkIChVTUFYVikKLSsgIHByaW50ZiAoIm5zMzJrLWVuY29yZS1zeXN2XG4iKTsgZXhpdCAoMCk7 Ci0rI2Vsc2UKLSsjaWYgZGVmaW5lZCAoQ01VKQotKyAgcHJpbnRmICgibnMzMmstZW5jb3JlLW1h Y2hcbiIpOyBleGl0ICgwKTsKLSsjZWxzZQotKyAgcHJpbnRmICgibnMzMmstZW5jb3JlLWJzZFxu Iik7IGV4aXQgKDApOwotKyNlbmRpZgotKyNlbmRpZgotKyNlbmRpZgotKwotKyNpZiBkZWZpbmVk IChfXzM4NkJTRF9fKQotKyAgcHJpbnRmICgiaTM4Ni1wYy1ic2RcbiIpOyBleGl0ICgwKTsKLSsj ZW5kaWYKLSsKLSsjaWYgZGVmaW5lZCAoc2VxdWVudCkKLSsjaWYgZGVmaW5lZCAoaTM4NikKLSsg IHByaW50ZiAoImkzODYtc2VxdWVudC1keW5peFxuIik7IGV4aXQgKDApOwotKyNlbmRpZgotKyNp ZiBkZWZpbmVkIChuczMyMDAwKQotKyAgcHJpbnRmICgibnMzMmstc2VxdWVudC1keW5peFxuIik7 IGV4aXQgKDApOwotKyNlbmRpZgotKyNlbmRpZgotKwotKyNpZiBkZWZpbmVkIChfU0VRVUVOVF8p Ci0rICAgIHN0cnVjdCB1dHNuYW1lIHVuOwotKwotKyAgICB1bmFtZSgmdW4pOwotKwotKyAgICBp ZiAoc3RybmNtcCh1bi52ZXJzaW9uLCAiVjIiLCAyKSA9PSAwKSB7Ci0rCXByaW50ZiAoImkzODYt c2VxdWVudC1wdHgyXG4iKTsgZXhpdCAoMCk7Ci0rICAgIH0KLSsgICAgaWYgKHN0cm5jbXAodW4u dmVyc2lvbiwgIlYxIiwgMikgPT0gMCkgeyAvKiBYWFggaXMgVjEgY29ycmVjdD8gKi8KLSsJcHJp bnRmICgiaTM4Ni1zZXF1ZW50LXB0eDFcbiIpOyBleGl0ICgwKTsKLSsgICAgfQotKyAgICBwcmlu dGYgKCJpMzg2LXNlcXVlbnQtcHR4XG4iKTsgZXhpdCAoMCk7Ci0rCi0rI2VuZGlmCi0rCi0rI2lm IGRlZmluZWQgKHZheCkKLSsjIGlmICFkZWZpbmVkICh1bHRyaXgpCi0rIyAgaW5jbHVkZSA8c3lz L3BhcmFtLmg+Ci0rIyAgaWYgZGVmaW5lZCAoQlNEKQotKyMgICBpZiBCU0QgPT0gNDMKLSsgICAg ICBwcmludGYgKCJ2YXgtZGVjLWJzZDQuM1xuIik7IGV4aXQgKDApOwotKyMgICBlbHNlCi0rIyAg ICBpZiBCU0QgPT0gMTk5MDA2Ci0rICAgICAgcHJpbnRmICgidmF4LWRlYy1ic2Q0LjNyZW5vXG4i KTsgZXhpdCAoMCk7Ci0rIyAgICBlbHNlCi0rICAgICAgcHJpbnRmICgidmF4LWRlYy1ic2RcbiIp OyBleGl0ICgwKTsKLSsjICAgIGVuZGlmCi0rIyAgIGVuZGlmCi0rIyAgZWxzZQotKyAgICBwcmlu dGYgKCJ2YXgtZGVjLWJzZFxuIik7IGV4aXQgKDApOwotKyMgIGVuZGlmCi0rIyBlbHNlCi0rICAg IHByaW50ZiAoInZheC1kZWMtdWx0cml4XG4iKTsgZXhpdCAoMCk7Ci0rIyBlbmRpZgotKyNlbmRp ZgotKwotKyNpZiBkZWZpbmVkIChhbGxpYW50KSAmJiBkZWZpbmVkIChpODYwKQotKyAgcHJpbnRm ICgiaTg2MC1hbGxpYW50LWJzZFxuIik7IGV4aXQgKDApOwotKyNlbmRpZgotKwotKyAgZXhpdCAo MSk7Ci0rfQotK0VPRgotKwotKyRDQ19GT1JfQlVJTEQgLW8gJGR1bW15ICRkdW1teS5jIDI+L2Rl di9udWxsICYmIFNZU1RFTV9OQU1FPWAkZHVtbXlgICYmCi0rCXsgZWNobyAiJFNZU1RFTV9OQU1F IjsgZXhpdDsgfQotKwotKyMgQXBvbGxvcyBwdXQgdGhlIHN5c3RlbSB0eXBlIGluIHRoZSBlbnZp cm9ubWVudC4KLSsKLSt0ZXN0IC1kIC91c3IvYXBvbGxvICYmIHsgZWNobyAke0lTUH0tYXBvbGxv LSR7U1lTVFlQRX07IGV4aXQ7IH0KLSsKLSsjIENvbnZleCB2ZXJzaW9ucyB0aGF0IHByZWRhdGUg dW5hbWUgY2FuIHVzZSBnZXRzeXNpbmZvKDEpCi0rCi0raWYgWyAteCAvdXNyL2NvbnZleC9nZXRz eXNpbmZvIF0KLSt0aGVuCi0rICAgIGNhc2UgYGdldHN5c2luZm8gLWYgY3B1X3R5cGVgIGluCi0r ICAgIGMxKikKLSsJZWNobyBjMS1jb252ZXgtYnNkCi0rCWV4aXQgOzsKLSsgICAgYzIqKQotKwlp ZiBnZXRzeXNpbmZvIC1mIHNjYWxhcl9hY2MKLSsJdGhlbiBlY2hvIGMzMi1jb252ZXgtYnNkCi0r CWVsc2UgZWNobyBjMi1jb252ZXgtYnNkCi0rCWZpCi0rCWV4aXQgOzsKLSsgICAgYzM0KikKLSsJ ZWNobyBjMzQtY29udmV4LWJzZAotKwlleGl0IDs7Ci0rICAgIGMzOCopCi0rCWVjaG8gYzM4LWNv bnZleC1ic2QKLSsJZXhpdCA7OwotKyAgICBjNCopCi0rCWVjaG8gYzQtY29udmV4LWJzZAotKwll eGl0IDs7Ci0rICAgIGVzYWMKLStmaQotKwotK2NhdCA+JjIgPDxFT0YKLSskMDogdW5hYmxlIHRv IGd1ZXNzIHN5c3RlbSB0eXBlCi0rCi0rVGhpcyBzY3JpcHQsIGxhc3QgbW9kaWZpZWQgJHRpbWVz dGFtcCwgaGFzIGZhaWxlZCB0byByZWNvZ25pemUKLSt0aGUgb3BlcmF0aW5nIHN5c3RlbSB5b3Ug YXJlIHVzaW5nLiBJdCBpcyBhZHZpc2VkIHRoYXQgeW91Ci0rZG93bmxvYWQgdGhlIG1vc3QgdXAg dG8gZGF0ZSB2ZXJzaW9uIG9mIHRoZSBjb25maWcgc2NyaXB0cyBmcm9tCi0rCi0rICBodHRwOi8v Z2l0LnNhdmFubmFoLmdudS5vcmcvZ2l0d2ViLz9wPWNvbmZpZy5naXQ7YT1ibG9iX3BsYWluO2Y9 Y29uZmlnLmd1ZXNzO2hiPUhFQUQKLSthbmQKLSsgIGh0dHA6Ly9naXQuc2F2YW5uYWguZ251Lm9y Zy9naXR3ZWIvP3A9Y29uZmlnLmdpdDthPWJsb2JfcGxhaW47Zj1jb25maWcuc3ViO2hiPUhFQUQK LSsKLStJZiB0aGUgdmVyc2lvbiB5b3UgcnVuICgkMCkgaXMgYWxyZWFkeSB1cCB0byBkYXRlLCBw bGVhc2UKLStzZW5kIHRoZSBmb2xsb3dpbmcgZGF0YSBhbmQgYW55IGluZm9ybWF0aW9uIHlvdSB0 aGluayBtaWdodCBiZQotK3BlcnRpbmVudCB0byA8Y29uZmlnLXBhdGNoZXNAZ251Lm9yZz4gaW4g b3JkZXIgdG8gcHJvdmlkZSB0aGUgbmVlZGVkCi0raW5mb3JtYXRpb24gdG8gaGFuZGxlIHlvdXIg c3lzdGVtLgotKwotK2NvbmZpZy5ndWVzcyB0aW1lc3RhbXAgPSAkdGltZXN0YW1wCi0rCi0rdW5h bWUgLW0gPSBgKHVuYW1lIC1tKSAyPi9kZXYvbnVsbCB8fCBlY2hvIHVua25vd25gCi0rdW5hbWUg LXIgPSBgKHVuYW1lIC1yKSAyPi9kZXYvbnVsbCB8fCBlY2hvIHVua25vd25gCi0rdW5hbWUgLXMg PSBgKHVuYW1lIC1zKSAyPi9kZXYvbnVsbCB8fCBlY2hvIHVua25vd25gCi0rdW5hbWUgLXYgPSBg KHVuYW1lIC12KSAyPi9kZXYvbnVsbCB8fCBlY2hvIHVua25vd25gCi0rCi0rL3Vzci9iaW4vdW5h bWUgLXAgPSBgKC91c3IvYmluL3VuYW1lIC1wKSAyPi9kZXYvbnVsbGAKLSsvYmluL3VuYW1lIC1Y ICAgICA9IGAoL2Jpbi91bmFtZSAtWCkgMj4vZGV2L251bGxgCi0rCi0raG9zdGluZm8gICAgICAg ICAgICAgICA9IGAoaG9zdGluZm8pIDI+L2Rldi9udWxsYAotKy9iaW4vdW5pdmVyc2UgICAgICAg ICAgPSBgKC9iaW4vdW5pdmVyc2UpIDI+L2Rldi9udWxsYAotKy91c3IvYmluL2FyY2ggLWsgICAg ICAgPSBgKC91c3IvYmluL2FyY2ggLWspIDI+L2Rldi9udWxsYAotKy9iaW4vYXJjaCAgICAgICAg ICAgICAgPSBgKC9iaW4vYXJjaCkgMj4vZGV2L251bGxgCi0rL3Vzci9iaW4vb3NsZXZlbCAgICAg ICA9IGAoL3Vzci9iaW4vb3NsZXZlbCkgMj4vZGV2L251bGxgCi0rL3Vzci9jb252ZXgvZ2V0c3lz aW5mbyA9IGAoL3Vzci9jb252ZXgvZ2V0c3lzaW5mbykgMj4vZGV2L251bGxgCi0rCi0rVU5BTUVf TUFDSElORSA9ICR7VU5BTUVfTUFDSElORX0KLStVTkFNRV9SRUxFQVNFID0gJHtVTkFNRV9SRUxF QVNFfQotK1VOQU1FX1NZU1RFTSAgPSAke1VOQU1FX1NZU1RFTX0KLStVTkFNRV9WRVJTSU9OID0g JHtVTkFNRV9WRVJTSU9OfQotK0VPRgotKwotK2V4aXQgMQotKwotKyMgTG9jYWwgdmFyaWFibGVz OgotKyMgZXZhbDogKGFkZC1ob29rICd3cml0ZS1maWxlLWhvb2tzICd0aW1lLXN0YW1wKQotKyMg dGltZS1zdGFtcC1zdGFydDogInRpbWVzdGFtcD0nIgotKyMgdGltZS1zdGFtcC1mb3JtYXQ6ICIl OnktJTAybS0lMDJkIgotKyMgdGltZS1zdGFtcC1lbmQ6ICInIgotKyMgRW5kOgotZGlmZiAtTnVy IHNvY2ktMy4wLjBfNC1wYWNrL2NvbmZpZy9jb25maWcuc3ViIHNvY2ktMy4wLjBfdHJlcDMwMC9j b25maWcvY29uZmlnLnN1YgotLS0tIHNvY2ktMy4wLjBfNC1wYWNrL2NvbmZpZy9jb25maWcuc3Vi CTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCi0rKysgc29jaS0zLjAuMF90cmVw MzAwL2NvbmZpZy9jb25maWcuc3ViCTIwMDktMDUtMjMgMTA6MDI6MDEuMDAwMDAwMDAwICswMjAw Ci1AQCAtMCwwICsxLDE2NzcgQEAKLSsjISAvYmluL3NoCi0rIyBDb25maWd1cmF0aW9uIHZhbGlk YXRpb24gc3Vicm91dGluZSBzY3JpcHQuCi0rIyAgIENvcHlyaWdodCAoQykgMTk5MiwgMTk5Mywg MTk5NCwgMTk5NSwgMTk5NiwgMTk5NywgMTk5OCwgMTk5OSwKLSsjICAgMjAwMCwgMjAwMSwgMjAw MiwgMjAwMywgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNywgMjAwOAotKyMgICBGcmVlIFNvZnR3YXJl IEZvdW5kYXRpb24sIEluYy4KLSsKLSt0aW1lc3RhbXA9JzIwMDgtMDktMDgnCi0rCi0rIyBUaGlz IGZpbGUgaXMgKGluIHByaW5jaXBsZSkgY29tbW9uIHRvIEFMTCBHTlUgc29mdHdhcmUuCi0rIyBU aGUgcHJlc2VuY2Ugb2YgYSBtYWNoaW5lIGluIHRoaXMgZmlsZSBzdWdnZXN0cyB0aGF0IFNPTUUg R05VIHNvZnR3YXJlCi0rIyBjYW4gaGFuZGxlIHRoYXQgbWFjaGluZS4gIEl0IGRvZXMgbm90IGlt cGx5IEFMTCBHTlUgc29mdHdhcmUgY2FuLgotKyMKLSsjIFRoaXMgZmlsZSBpcyBmcmVlIHNvZnR3 YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5Ci0rIyBpdCB1bmRlciB0 aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBi eQotKyMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0 aGUgTGljZW5zZSwgb3IKLSsjIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0r IwotKyMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2ls bCBiZSB1c2VmdWwsCi0rIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0 aGUgaW1wbGllZCB3YXJyYW50eSBvZgotKyMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9S IEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQotKyMgR05VIEdlbmVyYWwgUHVibGljIExp Y2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSsjCi0rIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQg YSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotKyMgYWxvbmcgd2l0aCB0 aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKLSsjIEZvdW5k YXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCAtIEZpZnRoIEZsb29yLCBCb3N0b24sIE1B Ci0rIyAwMjExMC0xMzAxLCBVU0EuCi0rIwotKyMgQXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0 aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UsIGlmIHlvdQotKyMgZGlzdHJpYnV0ZSB0aGlz IGZpbGUgYXMgcGFydCBvZiBhIHByb2dyYW0gdGhhdCBjb250YWlucyBhCi0rIyBjb25maWd1cmF0 aW9uIHNjcmlwdCBnZW5lcmF0ZWQgYnkgQXV0b2NvbmYsIHlvdSBtYXkgaW5jbHVkZSBpdCB1bmRl cgotKyMgdGhlIHNhbWUgZGlzdHJpYnV0aW9uIHRlcm1zIHRoYXQgeW91IHVzZSBmb3IgdGhlIHJl c3Qgb2YgdGhhdCBwcm9ncmFtLgotKwotKwotKyMgUGxlYXNlIHNlbmQgcGF0Y2hlcyB0byA8Y29u ZmlnLXBhdGNoZXNAZ251Lm9yZz4uICBTdWJtaXQgYSBjb250ZXh0Ci0rIyBkaWZmIGFuZCBhIHBy b3Blcmx5IGZvcm1hdHRlZCBDaGFuZ2VMb2cgZW50cnkuCi0rIwotKyMgQ29uZmlndXJhdGlvbiBz dWJyb3V0aW5lIHRvIHZhbGlkYXRlIGFuZCBjYW5vbmljYWxpemUgYSBjb25maWd1cmF0aW9uIHR5 cGUuCi0rIyBTdXBwbHkgdGhlIHNwZWNpZmllZCBjb25maWd1cmF0aW9uIHR5cGUgYXMgYW4gYXJn dW1lbnQuCi0rIyBJZiBpdCBpcyBpbnZhbGlkLCB3ZSBwcmludCBhbiBlcnJvciBtZXNzYWdlIG9u IHN0ZGVyciBhbmQgZXhpdCB3aXRoIGNvZGUgMS4KLSsjIE90aGVyd2lzZSwgd2UgcHJpbnQgdGhl IGNhbm9uaWNhbCBjb25maWcgdHlwZSBvbiBzdGRvdXQgYW5kIHN1Y2NlZWQuCi0rCi0rIyBUaGlz IGZpbGUgaXMgc3VwcG9zZWQgdG8gYmUgdGhlIHNhbWUgZm9yIGFsbCBHTlUgcGFja2FnZXMKLSsj IGFuZCByZWNvZ25pemUgYWxsIHRoZSBDUFUgdHlwZXMsIHN5c3RlbSB0eXBlcyBhbmQgYWxpYXNl cwotKyMgdGhhdCBhcmUgbWVhbmluZ2Z1bCB3aXRoICphbnkqIEdOVSBzb2Z0d2FyZS4KLSsjIEVh Y2ggcGFja2FnZSBpcyByZXNwb25zaWJsZSBmb3IgcmVwb3J0aW5nIHdoaWNoIHZhbGlkIGNvbmZp Z3VyYXRpb25zCi0rIyBpdCBkb2VzIG5vdCBzdXBwb3J0LiAgVGhlIHVzZXIgc2hvdWxkIGJlIGFi bGUgdG8gZGlzdGluZ3Vpc2gKLSsjIGEgZmFpbHVyZSB0byBzdXBwb3J0IGEgdmFsaWQgY29uZmln dXJhdGlvbiBmcm9tIGEgbWVhbmluZ2xlc3MKLSsjIGNvbmZpZ3VyYXRpb24uCi0rCi0rIyBUaGUg Z29hbCBvZiB0aGlzIGZpbGUgaXMgdG8gbWFwIGFsbCB0aGUgdmFyaW91cyB2YXJpYXRpb25zIG9m IGEgZ2l2ZW4KLSsjIG1hY2hpbmUgc3BlY2lmaWNhdGlvbiBpbnRvIGEgc2luZ2xlIHNwZWNpZmlj YXRpb24gaW4gdGhlIGZvcm06Ci0rIwlDUFVfVFlQRS1NQU5VRkFDVFVSRVItT1BFUkFUSU5HX1NZ U1RFTQotKyMgb3IgaW4gc29tZSBjYXNlcywgdGhlIG5ld2VyIGZvdXItcGFydCBmb3JtOgotKyMJ Q1BVX1RZUEUtTUFOVUZBQ1RVUkVSLUtFUk5FTC1PUEVSQVRJTkdfU1lTVEVNCi0rIyBJdCBpcyB3 cm9uZyB0byBlY2hvIGFueSBvdGhlciB0eXBlIG9mIHNwZWNpZmljYXRpb24uCi0rCi0rbWU9YGVj aG8gIiQwIiB8IHNlZCAtZSAncywuKi8sLCdgCi0rCi0rdXNhZ2U9IlwKLStVc2FnZTogJDAgW09Q VElPTl0gQ1BVLU1GUi1PUFNZUwotKyAgICAgICAkMCBbT1BUSU9OXSBBTElBUwotKwotK0Nhbm9u aWNhbGl6ZSBhIGNvbmZpZ3VyYXRpb24gbmFtZS4KLSsKLStPcGVyYXRpb24gbW9kZXM6Ci0rICAt aCwgLS1oZWxwICAgICAgICAgcHJpbnQgdGhpcyBoZWxwLCB0aGVuIGV4aXQKLSsgIC10LCAtLXRp bWUtc3RhbXAgICBwcmludCBkYXRlIG9mIGxhc3QgbW9kaWZpY2F0aW9uLCB0aGVuIGV4aXQKLSsg IC12LCAtLXZlcnNpb24gICAgICBwcmludCB2ZXJzaW9uIG51bWJlciwgdGhlbiBleGl0Ci0rCi0r UmVwb3J0IGJ1Z3MgYW5kIHBhdGNoZXMgdG8gPGNvbmZpZy1wYXRjaGVzQGdudS5vcmc+LiIKLSsK LSt2ZXJzaW9uPSJcCi0rR05VIGNvbmZpZy5zdWIgKCR0aW1lc3RhbXApCi0rCi0rQ29weXJpZ2h0 IChDKSAxOTkyLCAxOTkzLCAxOTk0LCAxOTk1LCAxOTk2LCAxOTk3LCAxOTk4LCAxOTk5LCAyMDAw LCAyMDAxLAotKzIwMDIsIDIwMDMsIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDggRnJlZSBT b2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCi0rCi0rVGhpcyBpcyBmcmVlIHNvZnR3YXJlOyBzZWUg dGhlIHNvdXJjZSBmb3IgY29weWluZyBjb25kaXRpb25zLiAgVGhlcmUgaXMgTk8KLSt3YXJyYW50 eTsgbm90IGV2ZW4gZm9yIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM QVIgUFVSUE9TRS4iCi0rCi0raGVscD0iCi0rVHJ5IFxgJG1lIC0taGVscCcgZm9yIG1vcmUgaW5m b3JtYXRpb24uIgotKwotKyMgUGFyc2UgY29tbWFuZCBsaW5lCi0rd2hpbGUgdGVzdCAkIyAtZ3Qg MCA7IGRvCi0rICBjYXNlICQxIGluCi0rICAgIC0tdGltZS1zdGFtcCB8IC0tdGltZSogfCAtdCAp Ci0rICAgICAgIGVjaG8gIiR0aW1lc3RhbXAiIDsgZXhpdCA7OwotKyAgICAtLXZlcnNpb24gfCAt diApCi0rICAgICAgIGVjaG8gIiR2ZXJzaW9uIiA7IGV4aXQgOzsKLSsgICAgLS1oZWxwIHwgLS1o KiB8IC1oICkKLSsgICAgICAgZWNobyAiJHVzYWdlIjsgZXhpdCA7OwotKyAgICAtLSApICAgICAj IFN0b3Agb3B0aW9uIHByb2Nlc3NpbmcKLSsgICAgICAgc2hpZnQ7IGJyZWFrIDs7Ci0rICAgIC0g KQkjIFVzZSBzdGRpbiBhcyBpbnB1dC4KLSsgICAgICAgYnJlYWsgOzsKLSsgICAgLSogKQotKyAg ICAgICBlY2hvICIkbWU6IGludmFsaWQgb3B0aW9uICQxJGhlbHAiCi0rICAgICAgIGV4aXQgMSA7 OwotKwotKyAgICAqbG9jYWwqKQotKyAgICAgICAjIEZpcnN0IHBhc3MgdGhyb3VnaCBhbnkgbG9j YWwgbWFjaGluZSB0eXBlcy4KLSsgICAgICAgZWNobyAkMQotKyAgICAgICBleGl0IDs7Ci0rCi0r ICAgICogKQotKyAgICAgICBicmVhayA7OwotKyAgZXNhYwotK2RvbmUKLSsKLStjYXNlICQjIGlu Ci0rIDApIGVjaG8gIiRtZTogbWlzc2luZyBhcmd1bWVudCRoZWxwIiA+JjIKLSsgICAgZXhpdCAx OzsKLSsgMSkgOzsKLSsgKikgZWNobyAiJG1lOiB0b28gbWFueSBhcmd1bWVudHMkaGVscCIgPiYy Ci0rICAgIGV4aXQgMTs7Ci0rZXNhYwotKwotKyMgU2VwYXJhdGUgd2hhdCB0aGUgdXNlciBnYXZl IGludG8gQ1BVLUNPTVBBTlkgYW5kIE9TIG9yIEtFUk5FTC1PUyAoaWYgYW55KS4KLSsjIEhlcmUg d2UgbXVzdCByZWNvZ25pemUgYWxsIHRoZSB2YWxpZCBLRVJORUwtT1MgY29tYmluYXRpb25zLgot K21heWJlX29zPWBlY2hvICQxIHwgc2VkICdzL15cKC4qXCktXChbXi1dKi1bXi1dKlwpJC9cMi8n YAotK2Nhc2UgJG1heWJlX29zIGluCi0rICBudG8tcW54KiB8IGxpbnV4LWdudSogfCBsaW51eC1k aWV0bGliYyB8IGxpbnV4LW5ld2xpYiogfCBsaW51eC11Y2xpYmMqIHwgXAotKyAgdWNsaW51eC11 Y2xpYmMqIHwgdWNsaW51eC1nbnUqIHwga2ZyZWVic2QqLWdudSogfCBrbmV0YnNkKi1nbnUqIHwg bmV0YnNkKi1nbnUqIHwgXAotKyAgc3Rvcm0tY2hhb3MqIHwgb3MyLWVteCogfCBydG1rLW5vdmEq KQotKyAgICBvcz0tJG1heWJlX29zCi0rICAgIGJhc2ljX21hY2hpbmU9YGVjaG8gJDEgfCBzZWQg J3MvXlwoLipcKS1cKFteLV0qLVteLV0qXCkkL1wxLydgCi0rICAgIDs7Ci0rICAqKQotKyAgICBi YXNpY19tYWNoaW5lPWBlY2hvICQxIHwgc2VkICdzLy1bXi1dKiQvLydgCi0rICAgIGlmIFsgJGJh c2ljX21hY2hpbmUgIT0gJDEgXQotKyAgICB0aGVuIG9zPWBlY2hvICQxIHwgc2VkICdzLy4qLS8t LydgCi0rICAgIGVsc2Ugb3M9OyBmaQotKyAgICA7OwotK2VzYWMKLSsKLSsjIyMgTGV0J3MgcmVj b2duaXplIGNvbW1vbiBtYWNoaW5lcyBhcyBub3QgYmVpbmcgb3BlcmF0aW5nIHN5c3RlbXMgc28K LSsjIyMgdGhhdCB0aGluZ3MgbGlrZSBjb25maWcuc3ViIGRlY3N0YXRpb24tMzEwMCB3b3JrLiAg V2UgYWxzbwotKyMjIyByZWNvZ25pemUgc29tZSBtYW51ZmFjdHVyZXJzIGFzIG5vdCBiZWluZyBv cGVyYXRpbmcgc3lzdGVtcywgc28gd2UKLSsjIyMgY2FuIHByb3ZpZGUgZGVmYXVsdCBvcGVyYXRp bmcgc3lzdGVtcyBiZWxvdy4KLStjYXNlICRvcyBpbgotKwktc3VuKm9zKikKLSsJCSMgUHJldmVu dCBmb2xsb3dpbmcgY2xhdXNlIGZyb20gaGFuZGxpbmcgdGhpcyBpbnZhbGlkIGlucHV0LgotKwkJ OzsKLSsJLWRlYyogfCAtbWlwcyogfCAtc2VxdWVudCogfCAtZW5jb3JlKiB8IC1wYzUzMiogfCAt c2dpKiB8IC1zb255KiB8IFwKLSsJLWF0dCogfCAtNzMwMCogfCAtMzMwMCogfCAtZGVsdGEqIHwg LW1vdG9yb2xhKiB8IC1zdW5bMjM0XSogfCBcCi0rCS11bmljb20qIHwgLWlibSogfCAtbmV4dCB8 IC1ocCB8IC1pc2kqIHwgLWFwb2xsbyB8IC1hbHRvcyogfCBcCi0rCS1jb252ZXJnZW50KiB8IC1u Y3IqIHwgLW5ld3MgfCAtMzIqIHwgLTM2MDAqIHwgLTMxMDAqIHwgLWhpdGFjaGkqIHxcCi0rCS1j WzEyM10qIHwgLWNvbnZleCogfCAtc3VuIHwgLWNyZHMgfCAtb21yb24qIHwgLWRnIHwgLXVsdHJh IHwgLXR0aSogfCBcCi0rCS1oYXJyaXMgfCAtZG9scGhpbiB8IC1oaWdobGV2ZWwgfCAtZ291bGQg fCAtY2JtIHwgLW5zIHwgLW1hc3Njb21wIHwgXAotKwktYXBwbGUgfCAtYXhpcyB8IC1rbnV0aCB8 IC1jcmF5KQotKwkJb3M9Ci0rCQliYXNpY19tYWNoaW5lPSQxCi0rCQk7OwotKwktc2ltIHwgLWNp c2NvIHwgLW9raSB8IC13ZWMgfCAtd2luYm9uZCkKLSsJCW9zPQotKwkJYmFzaWNfbWFjaGluZT0k MQotKwkJOzsKLSsJLXNjb3V0KQotKwkJOzsKLSsJLXdycykKLSsJCW9zPS12eHdvcmtzCi0rCQli YXNpY19tYWNoaW5lPSQxCi0rCQk7OwotKwktY2hvcnVzb3MqKQotKwkJb3M9LWNob3J1c29zCi0r CQliYXNpY19tYWNoaW5lPSQxCi0rCQk7OwotKyAJLWNob3J1c3JkYikKLSsgCQlvcz0tY2hvcnVz cmRiCi0rCQliYXNpY19tYWNoaW5lPSQxCi0rIAkJOzsKLSsJLWhpdXgqKQotKwkJb3M9LWhpdXh3 ZTIKLSsJCTs7Ci0rCS1zY282KQotKwkJb3M9LXNjbzV2NgotKwkJYmFzaWNfbWFjaGluZT1gZWNo byAkMSB8IHNlZCAtZSAncy84Ni0uKi84Ni1wYy8nYAotKwkJOzsKLSsJLXNjbzUpCi0rCQlvcz0t c2NvMy4ydjUKLSsJCWJhc2ljX21hY2hpbmU9YGVjaG8gJDEgfCBzZWQgLWUgJ3MvODYtLiovODYt cGMvJ2AKLSsJCTs7Ci0rCS1zY280KQotKwkJb3M9LXNjbzMuMnY0Ci0rCQliYXNpY19tYWNoaW5l PWBlY2hvICQxIHwgc2VkIC1lICdzLzg2LS4qLzg2LXBjLydgCi0rCQk7OwotKwktc2NvMy4yLls0 LTldKikKLSsJCW9zPWBlY2hvICRvcyB8IHNlZCAtZSAncy9zY28zLjIuL3NjbzMuMnYvJ2AKLSsJ CWJhc2ljX21hY2hpbmU9YGVjaG8gJDEgfCBzZWQgLWUgJ3MvODYtLiovODYtcGMvJ2AKLSsJCTs7 Ci0rCS1zY28zLjJ2WzQtOV0qKQotKwkJIyBEb24ndCBmb3JnZXQgdmVyc2lvbiBpZiBpdCBpcyAz LjJ2NCBvciBuZXdlci4KLSsJCWJhc2ljX21hY2hpbmU9YGVjaG8gJDEgfCBzZWQgLWUgJ3MvODYt LiovODYtcGMvJ2AKLSsJCTs7Ci0rCS1zY281djYqKQotKwkJIyBEb24ndCBmb3JnZXQgdmVyc2lv biBpZiBpdCBpcyAzLjJ2NCBvciBuZXdlci4KLSsJCWJhc2ljX21hY2hpbmU9YGVjaG8gJDEgfCBz ZWQgLWUgJ3MvODYtLiovODYtcGMvJ2AKLSsJCTs7Ci0rCS1zY28qKQotKwkJb3M9LXNjbzMuMnYy Ci0rCQliYXNpY19tYWNoaW5lPWBlY2hvICQxIHwgc2VkIC1lICdzLzg2LS4qLzg2LXBjLydgCi0r CQk7OwotKwktdWRrKikKLSsJCWJhc2ljX21hY2hpbmU9YGVjaG8gJDEgfCBzZWQgLWUgJ3MvODYt LiovODYtcGMvJ2AKLSsJCTs7Ci0rCS1pc2MpCi0rCQlvcz0taXNjMi4yCi0rCQliYXNpY19tYWNo aW5lPWBlY2hvICQxIHwgc2VkIC1lICdzLzg2LS4qLzg2LXBjLydgCi0rCQk7OwotKwktY2xpeCop Ci0rCQliYXNpY19tYWNoaW5lPWNsaXBwZXItaW50ZXJncmFwaAotKwkJOzsKLSsJLWlzYyopCi0r CQliYXNpY19tYWNoaW5lPWBlY2hvICQxIHwgc2VkIC1lICdzLzg2LS4qLzg2LXBjLydgCi0rCQk7 OwotKwktbHlueCopCi0rCQlvcz0tbHlueG9zCi0rCQk7OwotKwktcHR4KikKLSsJCWJhc2ljX21h Y2hpbmU9YGVjaG8gJDEgfCBzZWQgLWUgJ3MvODYtLiovODYtc2VxdWVudC8nYAotKwkJOzsKLSsJ LXdpbmRvd3NudCopCi0rCQlvcz1gZWNobyAkb3MgfCBzZWQgLWUgJ3Mvd2luZG93c250L3dpbm50 LydgCi0rCQk7OwotKwktcHNvcyopCi0rCQlvcz0tcHNvcwotKwkJOzsKLSsJLW1pbnQgfCAtbWlu dFswLTldKikKLSsJCWJhc2ljX21hY2hpbmU9bTY4ay1hdGFyaQotKwkJb3M9LW1pbnQKLSsJCTs7 Ci0rZXNhYwotKwotKyMgRGVjb2RlIGFsaWFzZXMgZm9yIGNlcnRhaW4gQ1BVLUNPTVBBTlkgY29t YmluYXRpb25zLgotK2Nhc2UgJGJhc2ljX21hY2hpbmUgaW4KLSsJIyBSZWNvZ25pemUgdGhlIGJh c2ljIENQVSB0eXBlcyB3aXRob3V0IGNvbXBhbnkgbmFtZS4KLSsJIyBTb21lIGFyZSBvbWl0dGVk IGhlcmUgYmVjYXVzZSB0aGV5IGhhdmUgc3BlY2lhbCBtZWFuaW5ncyBiZWxvdy4KLSsJMTc1MGEg fCA1ODAgXAotKwl8IGEyOWsgXAotKwl8IGFscGhhIHwgYWxwaGFldls0LThdIHwgYWxwaGFldjU2 IHwgYWxwaGFldjZbNzhdIHwgYWxwaGFwY2E1WzY3XSBcCi0rCXwgYWxwaGE2NCB8IGFscGhhNjRl dls0LThdIHwgYWxwaGE2NGV2NTYgfCBhbHBoYTY0ZXY2Wzc4XSB8IGFscGhhNjRwY2E1WzY3XSBc Ci0rCXwgYW0zM18yLjAgXAotKwl8IGFyYyB8IGFybSB8IGFybVtibF1lIHwgYXJtZVtsYl0gfCBh cm12WzIzNDVdIHwgYXJtdlszNDVdW2xiXSB8IGF2ciB8IGF2cjMyIFwKLSsJfCBiZmluIFwKLSsJ fCBjNHggfCBjbGlwcGVyIFwKLSsJfCBkMTB2IHwgZDMwdiB8IGRseCB8IGRzcDE2eHggXAotKwl8 IGZpZG8gfCBmcjMwIHwgZnJ2IFwKLSsJfCBoODMwMCB8IGg4NTAwIHwgaHBwYSB8IGhwcGExLlsw MV0gfCBocHBhMi4wIHwgaHBwYTIuMFtud10gfCBocHBhNjQgXAotKwl8IGkzNzAgfCBpODYwIHwg aTk2MCB8IGlhNjQgXAotKwl8IGlwMmsgfCBpcTIwMDAgXAotKwl8IG0zMmMgfCBtMzJyIHwgbTMy cmxlIHwgbTY4MDAwIHwgbTY4ayB8IG04OGsgXAotKwl8IG1heHEgfCBtYiB8IG1pY3JvYmxhemUg fCBtY29yZSB8IG1lcCB8IG1ldGFnIFwKLSsJfCBtaXBzIHwgbWlwc2JlIHwgbWlwc2ViIHwgbWlw c2VsIHwgbWlwc2xlIFwKLSsJfCBtaXBzMTYgXAotKwl8IG1pcHM2NCB8IG1pcHM2NGVsIFwKLSsJ fCBtaXBzNjRvY3Rlb24gfCBtaXBzNjRvY3Rlb25lbCBcCi0rCXwgbWlwczY0b3Jpb24gfCBtaXBz NjRvcmlvbmVsIFwKLSsJfCBtaXBzNjRyNTkwMCB8IG1pcHM2NHI1OTAwZWwgXAotKwl8IG1pcHM2 NHZyIHwgbWlwczY0dnJlbCBcCi0rCXwgbWlwczY0dnI0MTAwIHwgbWlwczY0dnI0MTAwZWwgXAot Kwl8IG1pcHM2NHZyNDMwMCB8IG1pcHM2NHZyNDMwMGVsIFwKLSsJfCBtaXBzNjR2cjUwMDAgfCBt aXBzNjR2cjUwMDBlbCBcCi0rCXwgbWlwczY0dnI1OTAwIHwgbWlwczY0dnI1OTAwZWwgXAotKwl8 IG1pcHNpc2EzMiB8IG1pcHNpc2EzMmVsIFwKLSsJfCBtaXBzaXNhMzJyMiB8IG1pcHNpc2EzMnIy ZWwgXAotKwl8IG1pcHNpc2E2NCB8IG1pcHNpc2E2NGVsIFwKLSsJfCBtaXBzaXNhNjRyMiB8IG1p cHNpc2E2NHIyZWwgXAotKwl8IG1pcHNpc2E2NHNiMSB8IG1pcHNpc2E2NHNiMWVsIFwKLSsJfCBt aXBzaXNhNjRzcjcxayB8IG1pcHNpc2E2NHNyNzFrZWwgXAotKwl8IG1pcHN0eDM5IHwgbWlwc3R4 MzllbCBcCi0rCXwgbW4xMDIwMCB8IG1uMTAzMDAgXAotKwl8IG10IFwKLSsJfCBtc3A0MzAgXAot Kwl8IG5pb3MgfCBuaW9zMiBcCi0rCXwgbnMxNmsgfCBuczMyayBcCi0rCXwgb3IzMiBcCi0rCXwg cGRwMTAgfCBwZHAxMSB8IHBqIHwgcGpsIFwKLSsJfCBwb3dlcnBjIHwgcG93ZXJwYzY0IHwgcG93 ZXJwYzY0bGUgfCBwb3dlcnBjbGUgfCBwcGNiZSBcCi0rCXwgcHlyYW1pZCBcCi0rCXwgc2NvcmUg XAotKwl8IHNoIHwgc2hbMTIzNF0gfCBzaFsyNF1hIHwgc2hbMjNdZSB8IHNoWzM0XWViIHwgc2hl YiB8IHNoYmUgfCBzaGxlIHwgc2hbMTIzNF1sZSB8IHNoM2VsZSBcCi0rCXwgc2g2NCB8IHNoNjRs ZSBcCi0rCXwgc3BhcmMgfCBzcGFyYzY0IHwgc3BhcmM2NGIgfCBzcGFyYzY0diB8IHNwYXJjODZ4 IHwgc3BhcmNsZXQgfCBzcGFyY2xpdGUgXAotKwl8IHNwYXJjdjggfCBzcGFyY3Y5IHwgc3BhcmN2 OWIgfCBzcGFyY3Y5diBcCi0rCXwgc3B1IHwgc3Ryb25nYXJtIFwKLSsJfCB0YWhvZSB8IHRodW1i IHwgdGljNHggfCB0aWM4MCB8IHRyb24gXAotKwl8IHY4NTAgfCB2ODUwZSBcCi0rCXwgd2UzMmsg XAotKwl8IHg4NiB8IHhjMTZ4IHwgeHNjYWxlIHwgeHNjYWxlZVtibF0gfCB4c3Rvcm15MTYgfCB4 dGVuc2EgXAotKwl8IHo4ayB8IHo4MCkKLSsJCWJhc2ljX21hY2hpbmU9JGJhc2ljX21hY2hpbmUt dW5rbm93bgotKwkJOzsKLSsJbTY4MTEgfCBtNjhoYzExIHwgbTY4MTIgfCBtNjhoYzEyKQotKwkJ IyBNb3Rvcm9sYSA2OEhDMTEvMTIuCi0rCQliYXNpY19tYWNoaW5lPSRiYXNpY19tYWNoaW5lLXVu a25vd24KLSsJCW9zPS1ub25lCi0rCQk7OwotKwltODgxMTAgfCBtNjgwWzEyMzQ2XTAgfCBtNjgz PzIgfCBtNjgzNjAgfCBtNTIwMCB8IHY3MCB8IHc2NSB8IHo4aykKLSsJCTs7Ci0rCW1zMSkKLSsJ CWJhc2ljX21hY2hpbmU9bXQtdW5rbm93bgotKwkJOzsKLSsKLSsJIyBXZSB1c2UgYHBjJyByYXRo ZXIgdGhhbiBgdW5rbm93bicKLSsJIyBiZWNhdXNlICgxKSB0aGF0J3Mgd2hhdCB0aGV5IG5vcm1h bGx5IGFyZSwgYW5kCi0rCSMgKDIpIHRoZSB3b3JkICJ1bmtub3duIiB0ZW5kcyB0byBjb25mdXNl IGJlZ2lubmluZyB1c2Vycy4KLSsJaSo4NiB8IHg4Nl82NCkKLSsJICBiYXNpY19tYWNoaW5lPSRi YXNpY19tYWNoaW5lLXBjCi0rCSAgOzsKLSsJIyBPYmplY3QgaWYgbW9yZSB0aGFuIG9uZSBjb21w YW55IG5hbWUgd29yZC4KLSsJKi0qLSopCi0rCQllY2hvIEludmFsaWQgY29uZmlndXJhdGlvbiBc YCQxXCc6IG1hY2hpbmUgXGAkYmFzaWNfbWFjaGluZVwnIG5vdCByZWNvZ25pemVkIDE+JjIKLSsJ CWV4aXQgMQotKwkJOzsKLSsJIyBSZWNvZ25pemUgdGhlIGJhc2ljIENQVSB0eXBlcyB3aXRoIGNv bXBhbnkgbmFtZS4KLSsJNTgwLSogXAotKwl8IGEyOWstKiBcCi0rCXwgYWxwaGEtKiB8IGFscGhh ZXZbNC04XS0qIHwgYWxwaGFldjU2LSogfCBhbHBoYWV2Nls3OF0tKiBcCi0rCXwgYWxwaGE2NC0q IHwgYWxwaGE2NGV2WzQtOF0tKiB8IGFscGhhNjRldjU2LSogfCBhbHBoYTY0ZXY2Wzc4XS0qIFwK LSsJfCBhbHBoYXBjYTVbNjddLSogfCBhbHBoYTY0cGNhNVs2N10tKiB8IGFyYy0qIFwKLSsJfCBh cm0tKiAgfCBhcm1iZS0qIHwgYXJtbGUtKiB8IGFybWViLSogfCBhcm12Ki0qIFwKLSsJfCBhdnIt KiB8IGF2cjMyLSogXAotKwl8IGJmaW4tKiB8IGJzMjAwMC0qIFwKLSsJfCBjWzEyM10qIHwgYzMw LSogfCBbY2p0XTkwLSogfCBjNHgtKiB8IGM1NHgtKiB8IGM1NXgtKiB8IGM2eC0qIFwKLSsJfCBj bGlwcGVyLSogfCBjcmF5bnYtKiB8IGN5ZHJhLSogXAotKwl8IGQxMHYtKiB8IGQzMHYtKiB8IGRs eC0qIFwKLSsJfCBlbHhzaS0qIFwKLSsJfCBmMzBbMDFdLSogfCBmNzAwLSogfCBmaWRvLSogfCBm cjMwLSogfCBmcnYtKiB8IGZ4ODAtKiBcCi0rCXwgaDgzMDAtKiB8IGg4NTAwLSogXAotKwl8IGhw cGEtKiB8IGhwcGExLlswMV0tKiB8IGhwcGEyLjAtKiB8IGhwcGEyLjBbbnddLSogfCBocHBhNjQt KiBcCi0rCXwgaSo4Ni0qIHwgaTg2MC0qIHwgaTk2MC0qIHwgaWE2NC0qIFwKLSsJfCBpcDJrLSog fCBpcTIwMDAtKiBcCi0rCXwgbTMyYy0qIHwgbTMyci0qIHwgbTMycmxlLSogXAotKwl8IG02ODAw MC0qIHwgbTY4MFswMTIzNDZdMC0qIHwgbTY4MzYwLSogfCBtNjgzPzItKiB8IG02OGstKiBcCi0r CXwgbTg4MTEwLSogfCBtODhrLSogfCBtYXhxLSogfCBtY29yZS0qIHwgbWV0YWctKiBcCi0rCXwg bWlwcy0qIHwgbWlwc2JlLSogfCBtaXBzZWItKiB8IG1pcHNlbC0qIHwgbWlwc2xlLSogXAotKwl8 IG1pcHMxNi0qIFwKLSsJfCBtaXBzNjQtKiB8IG1pcHM2NGVsLSogXAotKwl8IG1pcHM2NG9jdGVv bi0qIHwgbWlwczY0b2N0ZW9uZWwtKiBcCi0rCXwgbWlwczY0b3Jpb24tKiB8IG1pcHM2NG9yaW9u ZWwtKiBcCi0rCXwgbWlwczY0cjU5MDAtKiB8IG1pcHM2NHI1OTAwZWwtKiBcCi0rCXwgbWlwczY0 dnItKiB8IG1pcHM2NHZyZWwtKiBcCi0rCXwgbWlwczY0dnI0MTAwLSogfCBtaXBzNjR2cjQxMDBl bC0qIFwKLSsJfCBtaXBzNjR2cjQzMDAtKiB8IG1pcHM2NHZyNDMwMGVsLSogXAotKwl8IG1pcHM2 NHZyNTAwMC0qIHwgbWlwczY0dnI1MDAwZWwtKiBcCi0rCXwgbWlwczY0dnI1OTAwLSogfCBtaXBz NjR2cjU5MDBlbC0qIFwKLSsJfCBtaXBzaXNhMzItKiB8IG1pcHNpc2EzMmVsLSogXAotKwl8IG1p cHNpc2EzMnIyLSogfCBtaXBzaXNhMzJyMmVsLSogXAotKwl8IG1pcHNpc2E2NC0qIHwgbWlwc2lz YTY0ZWwtKiBcCi0rCXwgbWlwc2lzYTY0cjItKiB8IG1pcHNpc2E2NHIyZWwtKiBcCi0rCXwgbWlw c2lzYTY0c2IxLSogfCBtaXBzaXNhNjRzYjFlbC0qIFwKLSsJfCBtaXBzaXNhNjRzcjcxay0qIHwg bWlwc2lzYTY0c3I3MWtlbC0qIFwKLSsJfCBtaXBzdHgzOS0qIHwgbWlwc3R4MzllbC0qIFwKLSsJ fCBtbWl4LSogXAotKwl8IG10LSogXAotKwl8IG1zcDQzMC0qIFwKLSsJfCBuaW9zLSogfCBuaW9z Mi0qIFwKLSsJfCBub25lLSogfCBucDEtKiB8IG5zMTZrLSogfCBuczMyay0qIFwKLSsJfCBvcmlv bi0qIFwKLSsJfCBwZHAxMC0qIHwgcGRwMTEtKiB8IHBqLSogfCBwamwtKiB8IHBuLSogfCBwb3dl ci0qIFwKLSsJfCBwb3dlcnBjLSogfCBwb3dlcnBjNjQtKiB8IHBvd2VycGM2NGxlLSogfCBwb3dl cnBjbGUtKiB8IHBwY2JlLSogXAotKwl8IHB5cmFtaWQtKiBcCi0rCXwgcm9tcC0qIHwgcnM2MDAw LSogXAotKwl8IHNoLSogfCBzaFsxMjM0XS0qIHwgc2hbMjRdYS0qIHwgc2hbMjNdZS0qIHwgc2hb MzRdZWItKiB8IHNoZWItKiB8IHNoYmUtKiBcCi0rCXwgc2hsZS0qIHwgc2hbMTIzNF1sZS0qIHwg c2gzZWxlLSogfCBzaDY0LSogfCBzaDY0bGUtKiBcCi0rCXwgc3BhcmMtKiB8IHNwYXJjNjQtKiB8 IHNwYXJjNjRiLSogfCBzcGFyYzY0di0qIHwgc3BhcmM4NngtKiB8IHNwYXJjbGV0LSogXAotKwl8 IHNwYXJjbGl0ZS0qIFwKLSsJfCBzcGFyY3Y4LSogfCBzcGFyY3Y5LSogfCBzcGFyY3Y5Yi0qIHwg c3BhcmN2OXYtKiB8IHN0cm9uZ2FybS0qIHwgc3YxLSogfCBzeD8tKiBcCi0rCXwgdGFob2UtKiB8 IHRodW1iLSogXAotKwl8IHRpYzMwLSogfCB0aWM0eC0qIHwgdGljNTR4LSogfCB0aWM1NXgtKiB8 IHRpYzZ4LSogfCB0aWM4MC0qIHwgdGlsZS0qIFwKLSsJfCB0cm9uLSogXAotKwl8IHY4NTAtKiB8 IHY4NTBlLSogfCB2YXgtKiBcCi0rCXwgd2UzMmstKiBcCi0rCXwgeDg2LSogfCB4ODZfNjQtKiB8 IHhjMTZ4LSogfCB4cHMxMDAtKiB8IHhzY2FsZS0qIHwgeHNjYWxlZVtibF0tKiBcCi0rCXwgeHN0 b3JteTE2LSogfCB4dGVuc2EqLSogXAotKwl8IHltcC0qIFwKLSsJfCB6OGstKiB8IHo4MC0qKQot KwkJOzsKLSsJIyBSZWNvZ25pemUgdGhlIGJhc2ljIENQVSB0eXBlcyB3aXRob3V0IGNvbXBhbnkg bmFtZSwgd2l0aCBnbG9iIG1hdGNoLgotKwl4dGVuc2EqKQotKwkJYmFzaWNfbWFjaGluZT0kYmFz aWNfbWFjaGluZS11bmtub3duCi0rCQk7OwotKwkjIFJlY29nbml6ZSB0aGUgdmFyaW91cyBtYWNo aW5lIG5hbWVzIGFuZCBhbGlhc2VzIHdoaWNoIHN0YW5kCi0rCSMgZm9yIGEgQ1BVIHR5cGUgYW5k IGEgY29tcGFueSBhbmQgc29tZXRpbWVzIGV2ZW4gYW4gT1MuCi0rCTM4NmJzZCkKLSsJCWJhc2lj X21hY2hpbmU9aTM4Ni11bmtub3duCi0rCQlvcz0tYnNkCi0rCQk7OwotKwkzYjEgfCA3MzAwIHwg NzMwMC1hdHQgfCBhdHQtNzMwMCB8IHBjNzMwMCB8IHNhZmFyaSB8IHVuaXhwYykKLSsJCWJhc2lj X21hY2hpbmU9bTY4MDAwLWF0dAotKwkJOzsKLSsJM2IqKQotKwkJYmFzaWNfbWFjaGluZT13ZTMy ay1hdHQKLSsJCTs7Ci0rCWEyOWtoaWYpCi0rCQliYXNpY19tYWNoaW5lPWEyOWstYW1kCi0rCQlv cz0tdWRpCi0rCQk7OwotKyAgICAJYWJhY3VzKQotKwkJYmFzaWNfbWFjaGluZT1hYmFjdXMtdW5r bm93bgotKwkJOzsKLSsJYWRvYmU2OGspCi0rCQliYXNpY19tYWNoaW5lPW02ODAxMC1hZG9iZQot KwkJb3M9LXNjb3V0Ci0rCQk7OwotKwlhbGxpYW50IHwgZng4MCkKLSsJCWJhc2ljX21hY2hpbmU9 Zng4MC1hbGxpYW50Ci0rCQk7OwotKwlhbHRvcyB8IGFsdG9zMzA2OCkKLSsJCWJhc2ljX21hY2hp bmU9bTY4ay1hbHRvcwotKwkJOzsKLSsJYW0yOWspCi0rCQliYXNpY19tYWNoaW5lPWEyOWstbm9u ZQotKwkJb3M9LWJzZAotKwkJOzsKLSsJYW1kNjQpCi0rCQliYXNpY19tYWNoaW5lPXg4Nl82NC1w YwotKwkJOzsKLSsJYW1kNjQtKikKLSsJCWJhc2ljX21hY2hpbmU9eDg2XzY0LWBlY2hvICRiYXNp Y19tYWNoaW5lIHwgc2VkICdzL15bXi1dKi0vLydgCi0rCQk7OwotKwlhbWRhaGwpCi0rCQliYXNp Y19tYWNoaW5lPTU4MC1hbWRhaGwKLSsJCW9zPS1zeXN2Ci0rCQk7OwotKwlhbWlnYSB8IGFtaWdh LSopCi0rCQliYXNpY19tYWNoaW5lPW02OGstdW5rbm93bgotKwkJOzsKLSsJYW1pZ2FvcyB8IGFt aWdhZG9zKQotKwkJYmFzaWNfbWFjaGluZT1tNjhrLXVua25vd24KLSsJCW9zPS1hbWlnYW9zCi0r CQk7OwotKwlhbWlnYXVuaXggfCBhbWl4KQotKwkJYmFzaWNfbWFjaGluZT1tNjhrLXVua25vd24K LSsJCW9zPS1zeXN2NAotKwkJOzsKLSsJYXBvbGxvNjgpCi0rCQliYXNpY19tYWNoaW5lPW02OGst YXBvbGxvCi0rCQlvcz0tc3lzdgotKwkJOzsKLSsJYXBvbGxvNjhic2QpCi0rCQliYXNpY19tYWNo aW5lPW02OGstYXBvbGxvCi0rCQlvcz0tYnNkCi0rCQk7OwotKwlhdXgpCi0rCQliYXNpY19tYWNo aW5lPW02OGstYXBwbGUKLSsJCW9zPS1hdXgKLSsJCTs7Ci0rCWJhbGFuY2UpCi0rCQliYXNpY19t YWNoaW5lPW5zMzJrLXNlcXVlbnQKLSsJCW9zPS1keW5peAotKwkJOzsKLSsJYmxhY2tmaW4pCi0r CQliYXNpY19tYWNoaW5lPWJmaW4tdW5rbm93bgotKwkJb3M9LWxpbnV4Ci0rCQk7OwotKwlibGFj a2Zpbi0qKQotKwkJYmFzaWNfbWFjaGluZT1iZmluLWBlY2hvICRiYXNpY19tYWNoaW5lIHwgc2Vk ICdzL15bXi1dKi0vLydgCi0rCQlvcz0tbGludXgKLSsJCTs7Ci0rCWM5MCkKLSsJCWJhc2ljX21h Y2hpbmU9YzkwLWNyYXkKLSsJCW9zPS11bmljb3MKLSsJCTs7Ci0rICAgICAgICBjZWdjYykKLSsJ CWJhc2ljX21hY2hpbmU9YXJtLXVua25vd24KLSsJCW9zPS1jZWdjYwotKwkJOzsKLSsJY29udmV4 LWMxKQotKwkJYmFzaWNfbWFjaGluZT1jMS1jb252ZXgKLSsJCW9zPS1ic2QKLSsJCTs7Ci0rCWNv bnZleC1jMikKLSsJCWJhc2ljX21hY2hpbmU9YzItY29udmV4Ci0rCQlvcz0tYnNkCi0rCQk7Owot Kwljb252ZXgtYzMyKQotKwkJYmFzaWNfbWFjaGluZT1jMzItY29udmV4Ci0rCQlvcz0tYnNkCi0r CQk7OwotKwljb252ZXgtYzM0KQotKwkJYmFzaWNfbWFjaGluZT1jMzQtY29udmV4Ci0rCQlvcz0t YnNkCi0rCQk7OwotKwljb252ZXgtYzM4KQotKwkJYmFzaWNfbWFjaGluZT1jMzgtY29udmV4Ci0r CQlvcz0tYnNkCi0rCQk7OwotKwljcmF5IHwgajkwKQotKwkJYmFzaWNfbWFjaGluZT1qOTAtY3Jh eQotKwkJb3M9LXVuaWNvcwotKwkJOzsKLSsJY3JheW52KQotKwkJYmFzaWNfbWFjaGluZT1jcmF5 bnYtY3JheQotKwkJb3M9LXVuaWNvc21wCi0rCQk7OwotKwljcjE2KQotKwkJYmFzaWNfbWFjaGlu ZT1jcjE2LXVua25vd24KLSsJCW9zPS1lbGYKLSsJCTs7Ci0rCWNyZHMgfCB1bm9zKQotKwkJYmFz aWNfbWFjaGluZT1tNjhrLWNyZHMKLSsJCTs7Ci0rCWNyaXN2MzIgfCBjcmlzdjMyLSogfCBldHJh eGZzKikKLSsJCWJhc2ljX21hY2hpbmU9Y3Jpc3YzMi1heGlzCi0rCQk7OwotKwljcmlzIHwgY3Jp cy0qIHwgZXRyYXgqKQotKwkJYmFzaWNfbWFjaGluZT1jcmlzLWF4aXMKLSsJCTs7Ci0rCWNyeCkK LSsJCWJhc2ljX21hY2hpbmU9Y3J4LXVua25vd24KLSsJCW9zPS1lbGYKLSsJCTs7Ci0rCWRhMzAg fCBkYTMwLSopCi0rCQliYXNpY19tYWNoaW5lPW02OGstZGEzMAotKwkJOzsKLSsJZGVjc3RhdGlv biB8IGRlY3N0YXRpb24tMzEwMCB8IHBtYXggfCBwbWF4LSogfCBwbWluIHwgZGVjMzEwMCB8IGRl Y3N0YXRuKQotKwkJYmFzaWNfbWFjaGluZT1taXBzLWRlYwotKwkJOzsKLSsJZGVjc3lzdGVtMTAq IHwgZGVjMTAqKQotKwkJYmFzaWNfbWFjaGluZT1wZHAxMC1kZWMKLSsJCW9zPS10b3BzMTAKLSsJ CTs7Ci0rCWRlY3N5c3RlbTIwKiB8IGRlYzIwKikKLSsJCWJhc2ljX21hY2hpbmU9cGRwMTAtZGVj Ci0rCQlvcz0tdG9wczIwCi0rCQk7OwotKwlkZWx0YSB8IDMzMDAgfCBtb3Rvcm9sYS0zMzAwIHwg bW90b3JvbGEtZGVsdGEgXAotKwkgICAgICB8IDMzMDAtbW90b3JvbGEgfCBkZWx0YS1tb3Rvcm9s YSkKLSsJCWJhc2ljX21hY2hpbmU9bTY4ay1tb3Rvcm9sYQotKwkJOzsKLSsJZGVsdGE4OCkKLSsJ CWJhc2ljX21hY2hpbmU9bTg4ay1tb3Rvcm9sYQotKwkJb3M9LXN5c3YzCi0rCQk7OwotKwlkaWNv cykKLSsJCWJhc2ljX21hY2hpbmU9aTY4Ni1wYwotKwkJb3M9LWRpY29zCi0rCQk7OwotKwlkamdw cCkKLSsJCWJhc2ljX21hY2hpbmU9aTU4Ni1wYwotKwkJb3M9LW1zZG9zZGpncHAKLSsJCTs7Ci0r CWRweDIwIHwgZHB4MjAtKikKLSsJCWJhc2ljX21hY2hpbmU9cnM2MDAwLWJ1bGwKLSsJCW9zPS1i b3N4Ci0rCQk7OwotKwlkcHgyKiB8IGRweDIqLWJ1bGwpCi0rCQliYXNpY19tYWNoaW5lPW02OGst YnVsbAotKwkJb3M9LXN5c3YzCi0rCQk7OwotKwllYm1vbjI5aykKLSsJCWJhc2ljX21hY2hpbmU9 YTI5ay1hbWQKLSsJCW9zPS1lYm1vbgotKwkJOzsKLSsJZWx4c2kpCi0rCQliYXNpY19tYWNoaW5l PWVseHNpLWVseHNpCi0rCQlvcz0tYnNkCi0rCQk7OwotKwllbmNvcmUgfCB1bWF4IHwgbW1heCkK LSsJCWJhc2ljX21hY2hpbmU9bnMzMmstZW5jb3JlCi0rCQk7OwotKwllczE4MDAgfCBPU0U2OGsg fCBvc2U2OGsgfCBvc2UgfCBPU0UpCi0rCQliYXNpY19tYWNoaW5lPW02OGstZXJpY3Nzb24KLSsJ CW9zPS1vc2UKLSsJCTs7Ci0rCWZ4MjgwMCkKLSsJCWJhc2ljX21hY2hpbmU9aTg2MC1hbGxpYW50 Ci0rCQk7OwotKwlnZW5peCkKLSsJCWJhc2ljX21hY2hpbmU9bnMzMmstbnMKLSsJCTs7Ci0rCWdt aWNybykKLSsJCWJhc2ljX21hY2hpbmU9dHJvbi1nbWljcm8KLSsJCW9zPS1zeXN2Ci0rCQk7Owot KwlnbzMyKQotKwkJYmFzaWNfbWFjaGluZT1pMzg2LXBjCi0rCQlvcz0tZ28zMgotKwkJOzsKLSsJ aDMwNTByKiB8IGhpdXgqKQotKwkJYmFzaWNfbWFjaGluZT1ocHBhMS4xLWhpdGFjaGkKLSsJCW9z PS1oaXV4d2UyCi0rCQk7OwotKwloODMwMGhtcykKLSsJCWJhc2ljX21hY2hpbmU9aDgzMDAtaGl0 YWNoaQotKwkJb3M9LWhtcwotKwkJOzsKLSsJaDgzMDB4cmF5KQotKwkJYmFzaWNfbWFjaGluZT1o ODMwMC1oaXRhY2hpCi0rCQlvcz0teHJheQotKwkJOzsKLSsJaDg1MDBobXMpCi0rCQliYXNpY19t YWNoaW5lPWg4NTAwLWhpdGFjaGkKLSsJCW9zPS1obXMKLSsJCTs7Ci0rCWhhcnJpcykKLSsJCWJh c2ljX21hY2hpbmU9bTg4ay1oYXJyaXMKLSsJCW9zPS1zeXN2MwotKwkJOzsKLSsJaHAzMDAtKikK LSsJCWJhc2ljX21hY2hpbmU9bTY4ay1ocAotKwkJOzsKLSsJaHAzMDBic2QpCi0rCQliYXNpY19t YWNoaW5lPW02OGstaHAKLSsJCW9zPS1ic2QKLSsJCTs7Ci0rCWhwMzAwaHB1eCkKLSsJCWJhc2lj X21hY2hpbmU9bTY4ay1ocAotKwkJb3M9LWhwdXgKLSsJCTs7Ci0rCWhwM2s5WzAtOV1bMC05XSB8 IGhwOVswLTldWzAtOV0pCi0rCQliYXNpY19tYWNoaW5lPWhwcGExLjAtaHAKLSsJCTs7Ci0rCWhw OWsyWzAtOV1bMC05XSB8IGhwOWszMVswLTldKQotKwkJYmFzaWNfbWFjaGluZT1tNjgwMDAtaHAK LSsJCTs7Ci0rCWhwOWszWzItOV1bMC05XSkKLSsJCWJhc2ljX21hY2hpbmU9bTY4ay1ocAotKwkJ OzsKLSsJaHA5azZbMC05XVswLTldIHwgaHA2WzAtOV1bMC05XSkKLSsJCWJhc2ljX21hY2hpbmU9 aHBwYTEuMC1ocAotKwkJOzsKLSsJaHA5azdbMC03OV1bMC05XSB8IGhwN1swLTc5XVswLTldKQot KwkJYmFzaWNfbWFjaGluZT1ocHBhMS4xLWhwCi0rCQk7OwotKwlocDlrNzhbMC05XSB8IGhwNzhb MC05XSkKLSsJCSMgRklYTUU6IHJlYWxseSBocHBhMi4wLWhwCi0rCQliYXNpY19tYWNoaW5lPWhw cGExLjEtaHAKLSsJCTs7Ci0rCWhwOWs4WzY3XTEgfCBocDhbNjddMSB8IGhwOWs4MFsyNF0gfCBo cDgwWzI0XSB8IGhwOWs4Wzc4XTkgfCBocDhbNzhdOSB8IGhwOWs4OTMgfCBocDg5MykKLSsJCSMg RklYTUU6IHJlYWxseSBocHBhMi4wLWhwCi0rCQliYXNpY19tYWNoaW5lPWhwcGExLjEtaHAKLSsJ CTs7Ci0rCWhwOWs4WzAtOV1bMTM2NzldIHwgaHA4WzAtOV1bMTM2NzldKQotKwkJYmFzaWNfbWFj aGluZT1ocHBhMS4xLWhwCi0rCQk7OwotKwlocDlrOFswLTldWzAtOV0gfCBocDhbMC05XVswLTld KQotKwkJYmFzaWNfbWFjaGluZT1ocHBhMS4wLWhwCi0rCQk7OwotKwlocHBhLW5leHQpCi0rCQlv cz0tbmV4dHN0ZXAzCi0rCQk7OwotKwlocHBhb3NmKQotKwkJYmFzaWNfbWFjaGluZT1ocHBhMS4x LWhwCi0rCQlvcz0tb3NmCi0rCQk7OwotKwlocHBybykKLSsJCWJhc2ljX21hY2hpbmU9aHBwYTEu MS1ocAotKwkJb3M9LXByb2VsZgotKwkJOzsKLSsJaTM3MC1pYm0qIHwgaWJtKikKLSsJCWJhc2lj X21hY2hpbmU9aTM3MC1pYm0KLSsJCTs7Ci0rIyBJJ20gbm90IHN1cmUgd2hhdCAiU3lzdjMyIiBt ZWFucy4gIFNob3VsZCB0aGlzIGJlIHN5c3YzLjI/Ci0rCWkqODZ2MzIpCi0rCQliYXNpY19tYWNo aW5lPWBlY2hvICQxIHwgc2VkIC1lICdzLzg2LiovODYtcGMvJ2AKLSsJCW9zPS1zeXN2MzIKLSsJ CTs7Ci0rCWkqODZ2NCopCi0rCQliYXNpY19tYWNoaW5lPWBlY2hvICQxIHwgc2VkIC1lICdzLzg2 LiovODYtcGMvJ2AKLSsJCW9zPS1zeXN2NAotKwkJOzsKLSsJaSo4NnYpCi0rCQliYXNpY19tYWNo aW5lPWBlY2hvICQxIHwgc2VkIC1lICdzLzg2LiovODYtcGMvJ2AKLSsJCW9zPS1zeXN2Ci0rCQk7 OwotKwlpKjg2c29sMikKLSsJCWJhc2ljX21hY2hpbmU9YGVjaG8gJDEgfCBzZWQgLWUgJ3MvODYu Ki84Ni1wYy8nYAotKwkJb3M9LXNvbGFyaXMyCi0rCQk7OwotKwlpMzg2bWFjaCkKLSsJCWJhc2lj X21hY2hpbmU9aTM4Ni1tYWNoCi0rCQlvcz0tbWFjaAotKwkJOzsKLSsJaTM4Ni12c3RhIHwgdnN0 YSkKLSsJCWJhc2ljX21hY2hpbmU9aTM4Ni11bmtub3duCi0rCQlvcz0tdnN0YQotKwkJOzsKLSsJ aXJpcyB8IGlyaXM0ZCkKLSsJCWJhc2ljX21hY2hpbmU9bWlwcy1zZ2kKLSsJCWNhc2UgJG9zIGlu Ci0rCQkgICAgLWlyaXgqKQotKwkJCTs7Ci0rCQkgICAgKikKLSsJCQlvcz0taXJpeDQKLSsJCQk7 OwotKwkJZXNhYwotKwkJOzsKLSsJaXNpNjggfCBpc2kpCi0rCQliYXNpY19tYWNoaW5lPW02OGst aXNpCi0rCQlvcz0tc3lzdgotKwkJOzsKLSsJbTY4a25vbW11KQotKwkJYmFzaWNfbWFjaGluZT1t NjhrLXVua25vd24KLSsJCW9zPS1saW51eAotKwkJOzsKLSsJbTY4a25vbW11LSopCi0rCQliYXNp Y19tYWNoaW5lPW02OGstYGVjaG8gJGJhc2ljX21hY2hpbmUgfCBzZWQgJ3MvXlteLV0qLS8vJ2AK LSsJCW9zPS1saW51eAotKwkJOzsKLSsJbTg4ay1vbXJvbiopCi0rCQliYXNpY19tYWNoaW5lPW04 OGstb21yb24KLSsJCTs7Ci0rCW1hZ251bSB8IG0zMjMwKQotKwkJYmFzaWNfbWFjaGluZT1taXBz LW1pcHMKLSsJCW9zPS1zeXN2Ci0rCQk7OwotKwltZXJsaW4pCi0rCQliYXNpY19tYWNoaW5lPW5z MzJrLXV0ZWsKLSsJCW9zPS1zeXN2Ci0rCQk7OwotKwltaW5ndzMyKQotKwkJYmFzaWNfbWFjaGlu ZT1pMzg2LXBjCi0rCQlvcz0tbWluZ3czMgotKwkJOzsKLSsJbWluZ3czMmNlKQotKwkJYmFzaWNf bWFjaGluZT1hcm0tdW5rbm93bgotKwkJb3M9LW1pbmd3MzJjZQotKwkJOzsKLSsJbWluaWZyYW1l KQotKwkJYmFzaWNfbWFjaGluZT1tNjgwMDAtY29udmVyZ2VudAotKwkJOzsKLSsJKm1pbnQgfCAt bWludFswLTldKiB8ICpNaU5UIHwgKk1pTlRbMC05XSopCi0rCQliYXNpY19tYWNoaW5lPW02OGst YXRhcmkKLSsJCW9zPS1taW50Ci0rCQk7OwotKwltaXBzMyotKikKLSsJCWJhc2ljX21hY2hpbmU9 YGVjaG8gJGJhc2ljX21hY2hpbmUgfCBzZWQgLWUgJ3MvbWlwczMvbWlwczY0LydgCi0rCQk7Owot KwltaXBzMyopCi0rCQliYXNpY19tYWNoaW5lPWBlY2hvICRiYXNpY19tYWNoaW5lIHwgc2VkIC1l ICdzL21pcHMzL21pcHM2NC8nYC11bmtub3duCi0rCQk7OwotKwltb25pdG9yKQotKwkJYmFzaWNf bWFjaGluZT1tNjhrLXJvbTY4awotKwkJb3M9LWNvZmYKLSsJCTs7Ci0rCW1vcnBob3MpCi0rCQli YXNpY19tYWNoaW5lPXBvd2VycGMtdW5rbm93bgotKwkJb3M9LW1vcnBob3MKLSsJCTs7Ci0rCW1z ZG9zKQotKwkJYmFzaWNfbWFjaGluZT1pMzg2LXBjCi0rCQlvcz0tbXNkb3MKLSsJCTs7Ci0rCW1z MS0qKQotKwkJYmFzaWNfbWFjaGluZT1gZWNobyAkYmFzaWNfbWFjaGluZSB8IHNlZCAtZSAncy9t czEtL210LS8nYAotKwkJOzsKLSsJbXZzKQotKwkJYmFzaWNfbWFjaGluZT1pMzcwLWlibQotKwkJ b3M9LW12cwotKwkJOzsKLSsJbmNyMzAwMCkKLSsJCWJhc2ljX21hY2hpbmU9aTQ4Ni1uY3IKLSsJ CW9zPS1zeXN2NAotKwkJOzsKLSsJbmV0YnNkMzg2KQotKwkJYmFzaWNfbWFjaGluZT1pMzg2LXVu a25vd24KLSsJCW9zPS1uZXRic2QKLSsJCTs7Ci0rCW5ldHdpbmRlcikKLSsJCWJhc2ljX21hY2hp bmU9YXJtdjRsLXJlYmVsCi0rCQlvcz0tbGludXgKLSsJCTs7Ci0rCW5ld3MgfCBuZXdzNzAwIHwg bmV3czgwMCB8IG5ld3M5MDApCi0rCQliYXNpY19tYWNoaW5lPW02OGstc29ueQotKwkJb3M9LW5l d3NvcwotKwkJOzsKLSsJbmV3czEwMDApCi0rCQliYXNpY19tYWNoaW5lPW02ODAzMC1zb255Ci0r CQlvcz0tbmV3c29zCi0rCQk7OwotKwluZXdzLTM2MDAgfCByaXNjLW5ld3MpCi0rCQliYXNpY19t YWNoaW5lPW1pcHMtc29ueQotKwkJb3M9LW5ld3NvcwotKwkJOzsKLSsJbmVjdjcwKQotKwkJYmFz aWNfbWFjaGluZT12NzAtbmVjCi0rCQlvcz0tc3lzdgotKwkJOzsKLSsJbmV4dCB8IG0qLW5leHQg KQotKwkJYmFzaWNfbWFjaGluZT1tNjhrLW5leHQKLSsJCWNhc2UgJG9zIGluCi0rCQkgICAgLW5l eHRzdGVwKiApCi0rCQkJOzsKLSsJCSAgICAtbnMyKikKLSsJCSAgICAgIG9zPS1uZXh0c3RlcDIK LSsJCQk7OwotKwkJICAgICopCi0rCQkgICAgICBvcz0tbmV4dHN0ZXAzCi0rCQkJOzsKLSsJCWVz YWMKLSsJCTs7Ci0rCW5oMzAwMCkKLSsJCWJhc2ljX21hY2hpbmU9bTY4ay1oYXJyaXMKLSsJCW9z PS1jeHV4Ci0rCQk7OwotKwluaFs0NV0wMDApCi0rCQliYXNpY19tYWNoaW5lPW04OGstaGFycmlz Ci0rCQlvcz0tY3h1eAotKwkJOzsKLSsJbmluZHk5NjApCi0rCQliYXNpY19tYWNoaW5lPWk5NjAt aW50ZWwKLSsJCW9zPS1uaW5keQotKwkJOzsKLSsJbW9uOTYwKQotKwkJYmFzaWNfbWFjaGluZT1p OTYwLWludGVsCi0rCQlvcz0tbW9uOTYwCi0rCQk7OwotKwlub25zdG9wdXgpCi0rCQliYXNpY19t YWNoaW5lPW1pcHMtY29tcGFxCi0rCQlvcz0tbm9uc3RvcHV4Ci0rCQk7OwotKwlucDEpCi0rCQli YXNpY19tYWNoaW5lPW5wMS1nb3VsZAotKwkJOzsKLSsJbnNyLXRhbmRlbSkKLSsJCWJhc2ljX21h Y2hpbmU9bnNyLXRhbmRlbQotKwkJOzsKLSsJb3A1MG4tKiB8IG9wNjBjLSopCi0rCQliYXNpY19t YWNoaW5lPWhwcGExLjEtb2tpCi0rCQlvcz0tcHJvZWxmCi0rCQk7OwotKwlvcGVucmlzYyB8IG9w ZW5yaXNjLSopCi0rCQliYXNpY19tYWNoaW5lPW9yMzItdW5rbm93bgotKwkJOzsKLSsJb3M0MDAp Ci0rCQliYXNpY19tYWNoaW5lPXBvd2VycGMtaWJtCi0rCQlvcz0tb3M0MDAKLSsJCTs7Ci0rCU9T RTY4MDAwIHwgb3NlNjgwMDApCi0rCQliYXNpY19tYWNoaW5lPW02ODAwMC1lcmljc3NvbgotKwkJ b3M9LW9zZQotKwkJOzsKLSsJb3M2OGspCi0rCQliYXNpY19tYWNoaW5lPW02OGstbm9uZQotKwkJ b3M9LW9zNjhrCi0rCQk7OwotKwlwYS1oaXRhY2hpKQotKwkJYmFzaWNfbWFjaGluZT1ocHBhMS4x LWhpdGFjaGkKLSsJCW9zPS1oaXV4d2UyCi0rCQk7OwotKwlwYXJhZ29uKQotKwkJYmFzaWNfbWFj aGluZT1pODYwLWludGVsCi0rCQlvcz0tb3NmCi0rCQk7OwotKwlwYXJpc2MpCi0rCQliYXNpY19t YWNoaW5lPWhwcGEtdW5rbm93bgotKwkJb3M9LWxpbnV4Ci0rCQk7OwotKwlwYXJpc2MtKikKLSsJ CWJhc2ljX21hY2hpbmU9aHBwYS1gZWNobyAkYmFzaWNfbWFjaGluZSB8IHNlZCAncy9eW14tXSot Ly8nYAotKwkJb3M9LWxpbnV4Ci0rCQk7OwotKwlwYmQpCi0rCQliYXNpY19tYWNoaW5lPXNwYXJj LXR0aQotKwkJOzsKLSsJcGJiKQotKwkJYmFzaWNfbWFjaGluZT1tNjhrLXR0aQotKwkJOzsKLSsJ cGM1MzIgfCBwYzUzMi0qKQotKwkJYmFzaWNfbWFjaGluZT1uczMyay1wYzUzMgotKwkJOzsKLSsJ cGM5OCkKLSsJCWJhc2ljX21hY2hpbmU9aTM4Ni1wYwotKwkJOzsKLSsJcGM5OC0qKQotKwkJYmFz aWNfbWFjaGluZT1pMzg2LWBlY2hvICRiYXNpY19tYWNoaW5lIHwgc2VkICdzL15bXi1dKi0vLydg Ci0rCQk7OwotKwlwZW50aXVtIHwgcDUgfCBrNSB8IGs2IHwgbmV4Z2VuIHwgdmlhYzMpCi0rCQli YXNpY19tYWNoaW5lPWk1ODYtcGMKLSsJCTs7Ci0rCXBlbnRpdW1wcm8gfCBwNiB8IDZ4ODYgfCBh dGhsb24gfCBhdGhsb25fKikKLSsJCWJhc2ljX21hY2hpbmU9aTY4Ni1wYwotKwkJOzsKLSsJcGVu dGl1bWlpIHwgcGVudGl1bTIgfCBwZW50aXVtaWlpIHwgcGVudGl1bTMpCi0rCQliYXNpY19tYWNo aW5lPWk2ODYtcGMKLSsJCTs7Ci0rCXBlbnRpdW00KQotKwkJYmFzaWNfbWFjaGluZT1pNzg2LXBj Ci0rCQk7OwotKwlwZW50aXVtLSogfCBwNS0qIHwgazUtKiB8IGs2LSogfCBuZXhnZW4tKiB8IHZp YWMzLSopCi0rCQliYXNpY19tYWNoaW5lPWk1ODYtYGVjaG8gJGJhc2ljX21hY2hpbmUgfCBzZWQg J3MvXlteLV0qLS8vJ2AKLSsJCTs7Ci0rCXBlbnRpdW1wcm8tKiB8IHA2LSogfCA2eDg2LSogfCBh dGhsb24tKikKLSsJCWJhc2ljX21hY2hpbmU9aTY4Ni1gZWNobyAkYmFzaWNfbWFjaGluZSB8IHNl ZCAncy9eW14tXSotLy8nYAotKwkJOzsKLSsJcGVudGl1bWlpLSogfCBwZW50aXVtMi0qIHwgcGVu dGl1bWlpaS0qIHwgcGVudGl1bTMtKikKLSsJCWJhc2ljX21hY2hpbmU9aTY4Ni1gZWNobyAkYmFz aWNfbWFjaGluZSB8IHNlZCAncy9eW14tXSotLy8nYAotKwkJOzsKLSsJcGVudGl1bTQtKikKLSsJ CWJhc2ljX21hY2hpbmU9aTc4Ni1gZWNobyAkYmFzaWNfbWFjaGluZSB8IHNlZCAncy9eW14tXSot Ly8nYAotKwkJOzsKLSsJcG4pCi0rCQliYXNpY19tYWNoaW5lPXBuLWdvdWxkCi0rCQk7OwotKwlw b3dlcikJYmFzaWNfbWFjaGluZT1wb3dlci1pYm0KLSsJCTs7Ci0rCXBwYykJYmFzaWNfbWFjaGlu ZT1wb3dlcnBjLXVua25vd24KLSsJCTs7Ci0rCXBwYy0qKQliYXNpY19tYWNoaW5lPXBvd2VycGMt YGVjaG8gJGJhc2ljX21hY2hpbmUgfCBzZWQgJ3MvXlteLV0qLS8vJ2AKLSsJCTs7Ci0rCXBwY2xl IHwgcG93ZXJwY2xpdHRsZSB8IHBwYy1sZSB8IHBvd2VycGMtbGl0dGxlKQotKwkJYmFzaWNfbWFj aGluZT1wb3dlcnBjbGUtdW5rbm93bgotKwkJOzsKLSsJcHBjbGUtKiB8IHBvd2VycGNsaXR0bGUt KikKLSsJCWJhc2ljX21hY2hpbmU9cG93ZXJwY2xlLWBlY2hvICRiYXNpY19tYWNoaW5lIHwgc2Vk ICdzL15bXi1dKi0vLydgCi0rCQk7OwotKwlwcGM2NCkJYmFzaWNfbWFjaGluZT1wb3dlcnBjNjQt dW5rbm93bgotKwkJOzsKLSsJcHBjNjQtKikgYmFzaWNfbWFjaGluZT1wb3dlcnBjNjQtYGVjaG8g JGJhc2ljX21hY2hpbmUgfCBzZWQgJ3MvXlteLV0qLS8vJ2AKLSsJCTs7Ci0rCXBwYzY0bGUgfCBw b3dlcnBjNjRsaXR0bGUgfCBwcGM2NC1sZSB8IHBvd2VycGM2NC1saXR0bGUpCi0rCQliYXNpY19t YWNoaW5lPXBvd2VycGM2NGxlLXVua25vd24KLSsJCTs7Ci0rCXBwYzY0bGUtKiB8IHBvd2VycGM2 NGxpdHRsZS0qKQotKwkJYmFzaWNfbWFjaGluZT1wb3dlcnBjNjRsZS1gZWNobyAkYmFzaWNfbWFj aGluZSB8IHNlZCAncy9eW14tXSotLy8nYAotKwkJOzsKLSsJcHMyKQotKwkJYmFzaWNfbWFjaGlu ZT1pMzg2LWlibQotKwkJOzsKLSsJcHczMikKLSsJCWJhc2ljX21hY2hpbmU9aTU4Ni11bmtub3du Ci0rCQlvcz0tcHczMgotKwkJOzsKLSsJcmRvcykKLSsJCWJhc2ljX21hY2hpbmU9aTM4Ni1wYwot KwkJb3M9LXJkb3MKLSsJCTs7Ci0rCXJvbTY4aykKLSsJCWJhc2ljX21hY2hpbmU9bTY4ay1yb202 OGsKLSsJCW9zPS1jb2ZmCi0rCQk7OwotKwlybVs0Nl0wMCkKLSsJCWJhc2ljX21hY2hpbmU9bWlw cy1zaWVtZW5zCi0rCQk7OwotKwlydHBjIHwgcnRwYy0qKQotKwkJYmFzaWNfbWFjaGluZT1yb21w LWlibQotKwkJOzsKLSsJczM5MCB8IHMzOTAtKikKLSsJCWJhc2ljX21hY2hpbmU9czM5MC1pYm0K LSsJCTs7Ci0rCXMzOTB4IHwgczM5MHgtKikKLSsJCWJhc2ljX21hY2hpbmU9czM5MHgtaWJtCi0r CQk7OwotKwlzYTI5MjAwKQotKwkJYmFzaWNfbWFjaGluZT1hMjlrLWFtZAotKwkJb3M9LXVkaQot KwkJOzsKLSsJc2IxKQotKwkJYmFzaWNfbWFjaGluZT1taXBzaXNhNjRzYjEtdW5rbm93bgotKwkJ OzsKLSsJc2IxZWwpCi0rCQliYXNpY19tYWNoaW5lPW1pcHNpc2E2NHNiMWVsLXVua25vd24KLSsJ CTs7Ci0rCXNkZSkKLSsJCWJhc2ljX21hY2hpbmU9bWlwc2lzYTMyLXNkZQotKwkJb3M9LWVsZgot KwkJOzsKLSsJc2VpKQotKwkJYmFzaWNfbWFjaGluZT1taXBzLXNlaQotKwkJb3M9LXNlaXV4Ci0r CQk7OwotKwlzZXF1ZW50KQotKwkJYmFzaWNfbWFjaGluZT1pMzg2LXNlcXVlbnQKLSsJCTs7Ci0r CXNoKQotKwkJYmFzaWNfbWFjaGluZT1zaC1oaXRhY2hpCi0rCQlvcz0taG1zCi0rCQk7OwotKwlz aDVlbCkKLSsJCWJhc2ljX21hY2hpbmU9c2g1bGUtdW5rbm93bgotKwkJOzsKLSsJc2g2NCkKLSsJ CWJhc2ljX21hY2hpbmU9c2g2NC11bmtub3duCi0rCQk7OwotKwlzcGFyY2xpdGUtd3JzIHwgc2lt c28td3JzKQotKwkJYmFzaWNfbWFjaGluZT1zcGFyY2xpdGUtd3JzCi0rCQlvcz0tdnh3b3Jrcwot KwkJOzsKLSsJc3BzNykKLSsJCWJhc2ljX21hY2hpbmU9bTY4ay1idWxsCi0rCQlvcz0tc3lzdjIK LSsJCTs7Ci0rCXNwdXIpCi0rCQliYXNpY19tYWNoaW5lPXNwdXItdW5rbm93bgotKwkJOzsKLSsJ c3QyMDAwKQotKwkJYmFzaWNfbWFjaGluZT1tNjhrLXRhbmRlbQotKwkJOzsKLSsJc3RyYXR1cykK LSsJCWJhc2ljX21hY2hpbmU9aTg2MC1zdHJhdHVzCi0rCQlvcz0tc3lzdjQKLSsJCTs7Ci0rCXN1 bjIpCi0rCQliYXNpY19tYWNoaW5lPW02ODAwMC1zdW4KLSsJCTs7Ci0rCXN1bjJvczMpCi0rCQli YXNpY19tYWNoaW5lPW02ODAwMC1zdW4KLSsJCW9zPS1zdW5vczMKLSsJCTs7Ci0rCXN1bjJvczQp Ci0rCQliYXNpY19tYWNoaW5lPW02ODAwMC1zdW4KLSsJCW9zPS1zdW5vczQKLSsJCTs7Ci0rCXN1 bjNvczMpCi0rCQliYXNpY19tYWNoaW5lPW02OGstc3VuCi0rCQlvcz0tc3Vub3MzCi0rCQk7Owot KwlzdW4zb3M0KQotKwkJYmFzaWNfbWFjaGluZT1tNjhrLXN1bgotKwkJb3M9LXN1bm9zNAotKwkJ OzsKLSsJc3VuNG9zMykKLSsJCWJhc2ljX21hY2hpbmU9c3BhcmMtc3VuCi0rCQlvcz0tc3Vub3Mz Ci0rCQk7OwotKwlzdW40b3M0KQotKwkJYmFzaWNfbWFjaGluZT1zcGFyYy1zdW4KLSsJCW9zPS1z dW5vczQKLSsJCTs7Ci0rCXN1bjRzb2wyKQotKwkJYmFzaWNfbWFjaGluZT1zcGFyYy1zdW4KLSsJ CW9zPS1zb2xhcmlzMgotKwkJOzsKLSsJc3VuMyB8IHN1bjMtKikKLSsJCWJhc2ljX21hY2hpbmU9 bTY4ay1zdW4KLSsJCTs7Ci0rCXN1bjQpCi0rCQliYXNpY19tYWNoaW5lPXNwYXJjLXN1bgotKwkJ OzsKLSsJc3VuMzg2IHwgc3VuMzg2aSB8IHJvYWRydW5uZXIpCi0rCQliYXNpY19tYWNoaW5lPWkz ODYtc3VuCi0rCQk7OwotKwlzdjEpCi0rCQliYXNpY19tYWNoaW5lPXN2MS1jcmF5Ci0rCQlvcz0t dW5pY29zCi0rCQk7OwotKwlzeW1tZXRyeSkKLSsJCWJhc2ljX21hY2hpbmU9aTM4Ni1zZXF1ZW50 Ci0rCQlvcz0tZHluaXgKLSsJCTs7Ci0rCXQzZSkKLSsJCWJhc2ljX21hY2hpbmU9YWxwaGFldjUt Y3JheQotKwkJb3M9LXVuaWNvcwotKwkJOzsKLSsJdDkwKQotKwkJYmFzaWNfbWFjaGluZT10OTAt Y3JheQotKwkJb3M9LXVuaWNvcwotKwkJOzsKLSsJdGljNTR4IHwgYzU0eCopCi0rCQliYXNpY19t YWNoaW5lPXRpYzU0eC11bmtub3duCi0rCQlvcz0tY29mZgotKwkJOzsKLSsJdGljNTV4IHwgYzU1 eCopCi0rCQliYXNpY19tYWNoaW5lPXRpYzU1eC11bmtub3duCi0rCQlvcz0tY29mZgotKwkJOzsK LSsJdGljNnggfCBjNngqKQotKwkJYmFzaWNfbWFjaGluZT10aWM2eC11bmtub3duCi0rCQlvcz0t Y29mZgotKwkJOzsKLSsJdGlsZSopCi0rCQliYXNpY19tYWNoaW5lPXRpbGUtdW5rbm93bgotKwkJ b3M9LWxpbnV4LWdudQotKwkJOzsKLSsJdHgzOSkKLSsJCWJhc2ljX21hY2hpbmU9bWlwc3R4Mzkt dW5rbm93bgotKwkJOzsKLSsJdHgzOWVsKQotKwkJYmFzaWNfbWFjaGluZT1taXBzdHgzOWVsLXVu a25vd24KLSsJCTs7Ci0rCXRvYWQxKQotKwkJYmFzaWNfbWFjaGluZT1wZHAxMC14a2wKLSsJCW9z PS10b3BzMjAKLSsJCTs7Ci0rCXRvd2VyIHwgdG93ZXItMzIpCi0rCQliYXNpY19tYWNoaW5lPW02 OGstbmNyCi0rCQk7OwotKwl0cGYpCi0rCQliYXNpY19tYWNoaW5lPXMzOTB4LWlibQotKwkJb3M9 LXRwZgotKwkJOzsKLSsJdWRpMjlrKQotKwkJYmFzaWNfbWFjaGluZT1hMjlrLWFtZAotKwkJb3M9 LXVkaQotKwkJOzsKLSsJdWx0cmEzKQotKwkJYmFzaWNfbWFjaGluZT1hMjlrLW55dQotKwkJb3M9 LXN5bTEKLSsJCTs7Ci0rCXY4MTAgfCBuZWN2ODEwKQotKwkJYmFzaWNfbWFjaGluZT12ODEwLW5l YwotKwkJb3M9LW5vbmUKLSsJCTs7Ci0rCXZheHYpCi0rCQliYXNpY19tYWNoaW5lPXZheC1kZWMK LSsJCW9zPS1zeXN2Ci0rCQk7OwotKwl2bXMpCi0rCQliYXNpY19tYWNoaW5lPXZheC1kZWMKLSsJ CW9zPS12bXMKLSsJCTs7Ci0rCXZwcCp8dnh8dngtKikKLSsJCWJhc2ljX21hY2hpbmU9ZjMwMS1m dWppdHN1Ci0rCQk7OwotKwl2eHdvcmtzOTYwKQotKwkJYmFzaWNfbWFjaGluZT1pOTYwLXdycwot KwkJb3M9LXZ4d29ya3MKLSsJCTs7Ci0rCXZ4d29ya3M2OCkKLSsJCWJhc2ljX21hY2hpbmU9bTY4 ay13cnMKLSsJCW9zPS12eHdvcmtzCi0rCQk7OwotKwl2eHdvcmtzMjlrKQotKwkJYmFzaWNfbWFj aGluZT1hMjlrLXdycwotKwkJb3M9LXZ4d29ya3MKLSsJCTs7Ci0rCXc2NSopCi0rCQliYXNpY19t YWNoaW5lPXc2NS13ZGMKLSsJCW9zPS1ub25lCi0rCQk7OwotKwl3ODlrLSopCi0rCQliYXNpY19t YWNoaW5lPWhwcGExLjEtd2luYm9uZAotKwkJb3M9LXByb2VsZgotKwkJOzsKLSsJeGJveCkKLSsJ CWJhc2ljX21hY2hpbmU9aTY4Ni1wYwotKwkJb3M9LW1pbmd3MzIKLSsJCTs7Ci0rCXhwcyB8IHhw czEwMCkKLSsJCWJhc2ljX21hY2hpbmU9eHBzMTAwLWhvbmV5d2VsbAotKwkJOzsKLSsJeW1wKQot KwkJYmFzaWNfbWFjaGluZT15bXAtY3JheQotKwkJb3M9LXVuaWNvcwotKwkJOzsKLSsJejhrLSot Y29mZikKLSsJCWJhc2ljX21hY2hpbmU9ejhrLXVua25vd24KLSsJCW9zPS1zaW0KLSsJCTs7Ci0r CXo4MC0qLWNvZmYpCi0rCQliYXNpY19tYWNoaW5lPXo4MC11bmtub3duCi0rCQlvcz0tc2ltCi0r CQk7OwotKwlub25lKQotKwkJYmFzaWNfbWFjaGluZT1ub25lLW5vbmUKLSsJCW9zPS1ub25lCi0r CQk7OwotKwotKyMgSGVyZSB3ZSBoYW5kbGUgdGhlIGRlZmF1bHQgbWFudWZhY3R1cmVyIG9mIGNl cnRhaW4gQ1BVIHR5cGVzLiAgSXQgaXMgaW4KLSsjIHNvbWUgY2FzZXMgdGhlIG9ubHkgbWFudWZh Y3R1cmVyLCBpbiBvdGhlcnMsIGl0IGlzIHRoZSBtb3N0IHBvcHVsYXIuCi0rCXc4OWspCi0rCQli YXNpY19tYWNoaW5lPWhwcGExLjEtd2luYm9uZAotKwkJOzsKLSsJb3A1MG4pCi0rCQliYXNpY19t YWNoaW5lPWhwcGExLjEtb2tpCi0rCQk7OwotKwlvcDYwYykKLSsJCWJhc2ljX21hY2hpbmU9aHBw YTEuMS1va2kKLSsJCTs7Ci0rCXJvbXApCi0rCQliYXNpY19tYWNoaW5lPXJvbXAtaWJtCi0rCQk7 OwotKwltbWl4KQotKwkJYmFzaWNfbWFjaGluZT1tbWl4LWtudXRoCi0rCQk7OwotKwlyczYwMDAp Ci0rCQliYXNpY19tYWNoaW5lPXJzNjAwMC1pYm0KLSsJCTs7Ci0rCXZheCkKLSsJCWJhc2ljX21h Y2hpbmU9dmF4LWRlYwotKwkJOzsKLSsJcGRwMTApCi0rCQkjIHRoZXJlIGFyZSBtYW55IGNsb25l cywgc28gREVDIGlzIG5vdCBhIHNhZmUgYmV0Ci0rCQliYXNpY19tYWNoaW5lPXBkcDEwLXVua25v d24KLSsJCTs7Ci0rCXBkcDExKQotKwkJYmFzaWNfbWFjaGluZT1wZHAxMS1kZWMKLSsJCTs7Ci0r CXdlMzJrKQotKwkJYmFzaWNfbWFjaGluZT13ZTMyay1hdHQKLSsJCTs7Ci0rCXNoWzEyMzRdIHwg c2hbMjRdYSB8IHNoWzM0XWViIHwgc2hbMTIzNF1sZSB8IHNoWzIzXWVsZSkKLSsJCWJhc2ljX21h Y2hpbmU9c2gtdW5rbm93bgotKwkJOzsKLSsJc3BhcmMgfCBzcGFyY3Y4IHwgc3BhcmN2OSB8IHNw YXJjdjliIHwgc3BhcmN2OXYpCi0rCQliYXNpY19tYWNoaW5lPXNwYXJjLXN1bgotKwkJOzsKLSsJ Y3lkcmEpCi0rCQliYXNpY19tYWNoaW5lPWN5ZHJhLWN5ZHJvbWUKLSsJCTs7Ci0rCW9yaW9uKQot KwkJYmFzaWNfbWFjaGluZT1vcmlvbi1oaWdobGV2ZWwKLSsJCTs7Ci0rCW9yaW9uMTA1KQotKwkJ YmFzaWNfbWFjaGluZT1jbGlwcGVyLWhpZ2hsZXZlbAotKwkJOzsKLSsJbWFjIHwgbXB3IHwgbWFj LW1wdykKLSsJCWJhc2ljX21hY2hpbmU9bTY4ay1hcHBsZQotKwkJOzsKLSsJcG1hYyB8IHBtYWMt bXB3KQotKwkJYmFzaWNfbWFjaGluZT1wb3dlcnBjLWFwcGxlCi0rCQk7OwotKwkqLXVua25vd24p Ci0rCQkjIE1ha2Ugc3VyZSB0byBtYXRjaCBhbiBhbHJlYWR5LWNhbm9uaWNhbGl6ZWQgbWFjaGlu ZSBuYW1lLgotKwkJOzsKLSsJKikKLSsJCWVjaG8gSW52YWxpZCBjb25maWd1cmF0aW9uIFxgJDFc JzogbWFjaGluZSBcYCRiYXNpY19tYWNoaW5lXCcgbm90IHJlY29nbml6ZWQgMT4mMgotKwkJZXhp dCAxCi0rCQk7OwotK2VzYWMKLSsKLSsjIEhlcmUgd2UgY2Fub25pY2FsaXplIGNlcnRhaW4gYWxp YXNlcyBmb3IgbWFudWZhY3R1cmVycy4KLStjYXNlICRiYXNpY19tYWNoaW5lIGluCi0rCSotZGln aXRhbCopCi0rCQliYXNpY19tYWNoaW5lPWBlY2hvICRiYXNpY19tYWNoaW5lIHwgc2VkICdzL2Rp Z2l0YWwuKi9kZWMvJ2AKLSsJCTs7Ci0rCSotY29tbW9kb3JlKikKLSsJCWJhc2ljX21hY2hpbmU9 YGVjaG8gJGJhc2ljX21hY2hpbmUgfCBzZWQgJ3MvY29tbW9kb3JlLiovY2JtLydgCi0rCQk7Owot KwkqKQotKwkJOzsKLStlc2FjCi0rCi0rIyBEZWNvZGUgbWFudWZhY3R1cmVyLXNwZWNpZmljIGFs aWFzZXMgZm9yIGNlcnRhaW4gb3BlcmF0aW5nIHN5c3RlbXMuCi0rCi0raWYgWyB4IiRvcyIgIT0g eCIiIF0KLSt0aGVuCi0rY2FzZSAkb3MgaW4KLSsgICAgICAgICMgRmlyc3QgbWF0Y2ggc29tZSBz eXN0ZW0gdHlwZSBhbGlhc2VzCi0rICAgICAgICAjIHRoYXQgbWlnaHQgZ2V0IGNvbmZ1c2VkIHdp dGggdmFsaWQgc3lzdGVtIHR5cGVzLgotKwkjIC1zb2xhcmlzKiBpcyBhIGJhc2ljIHN5c3RlbSB0 eXBlLCB3aXRoIHRoaXMgb25lIGV4Y2VwdGlvbi4KLSsJLXNvbGFyaXMxIHwgLXNvbGFyaXMxLiop Ci0rCQlvcz1gZWNobyAkb3MgfCBzZWQgLWUgJ3N8c29sYXJpczF8c3Vub3M0fCdgCi0rCQk7Owot Kwktc29sYXJpcykKLSsJCW9zPS1zb2xhcmlzMgotKwkJOzsKLSsJLXN2cjQqKQotKwkJb3M9LXN5 c3Y0Ci0rCQk7OwotKwktdW5peHdhcmUqKQotKwkJb3M9LXN5c3Y0LjJ1dwotKwkJOzsKLSsJLWdu dS9saW51eCopCi0rCQlvcz1gZWNobyAkb3MgfCBzZWQgLWUgJ3N8Z251L2xpbnV4fGxpbnV4LWdu dXwnYAotKwkJOzsKLSsJIyBGaXJzdCBhY2NlcHQgdGhlIGJhc2ljIHN5c3RlbSB0eXBlcy4KLSsJ IyBUaGUgcG9ydGFibGUgc3lzdGVtcyBjb21lcyBmaXJzdC4KLSsJIyBFYWNoIGFsdGVybmF0aXZl IE1VU1QgRU5EIElOIEEgKiwgdG8gbWF0Y2ggYSB2ZXJzaW9uIG51bWJlci4KLSsJIyAtc3lzdiog aXMgbm90IGhlcmUgYmVjYXVzZSBpdCBjb21lcyBsYXRlciwgYWZ0ZXIgc3lzdnI0LgotKwktZ251 KiB8IC1ic2QqIHwgLW1hY2gqIHwgLW1pbml4KiB8IC1nZW5peCogfCAtdWx0cml4KiB8IC1pcml4 KiBcCi0rCSAgICAgIHwgLSp2bXMqIHwgLXNjbyogfCAtZXNpeCogfCAtaXNjKiB8IC1haXgqIHwg LXN1bm9zIHwgLXN1bm9zWzM0XSpcCi0rCSAgICAgIHwgLWhwdXgqIHwgLXVub3MqIHwgLW9zZiog fCAtbHVuYSogfCAtZGd1eCogfCAtc29sYXJpcyogfCAtc3ltKiBcCi0rCSAgICAgIHwgLWFtaWdh b3MqIHwgLWFtaWdhZG9zKiB8IC1tc2RvcyogfCAtbmV3c29zKiB8IC11bmljb3MqIHwgLWFvZiog XAotKwkgICAgICB8IC1hb3MqIFwKLSsJICAgICAgfCAtbmluZHkqIHwgLXZ4c2ltKiB8IC12eHdv cmtzKiB8IC1lYm1vbiogfCAtaG1zKiB8IC1tdnMqIFwKLSsJICAgICAgfCAtY2xpeCogfCAtcmlz Y29zKiB8IC11bmlwbHVzKiB8IC1pcmlzKiB8IC1ydHUqIHwgLXhlbml4KiBcCi0rCSAgICAgIHwg LWhpdXgqIHwgLTM4NmJzZCogfCAta25ldGJzZCogfCAtbWlyYnNkKiB8IC1uZXRic2QqIFwKLSsJ ICAgICAgfCAtb3BlbmJzZCogfCAtc29saWRic2QqIFwKLSsJICAgICAgfCAtZWtrb2JzZCogfCAt a2ZyZWVic2QqIHwgLWZyZWVic2QqIHwgLXJpc2NpeCogfCAtbHlueG9zKiBcCi0rCSAgICAgIHwg LWJvc3gqIHwgLW5leHRzdGVwKiB8IC1jeHV4KiB8IC1hb3V0KiB8IC1lbGYqIHwgLW9hYmkqIFwK LSsJICAgICAgfCAtcHR4KiB8IC1jb2ZmKiB8IC1lY29mZiogfCAtd2lubnQqIHwgLWRvbWFpbiog fCAtdnN0YSogXAotKwkgICAgICB8IC11ZGkqIHwgLWVhYmkqIHwgLWxpdGVzKiB8IC1pZWVlKiB8 IC1nbzMyKiB8IC1hdXgqIFwKLSsJICAgICAgfCAtY2hvcnVzb3MqIHwgLWNob3J1c3JkYiogfCAt Y2VnY2MqIFwKLSsJICAgICAgfCAtY3lnd2luKiB8IC1wZSogfCAtcHNvcyogfCAtbW9zcyogfCAt cHJvZWxmKiB8IC1ydGVtcyogXAotKwkgICAgICB8IC1taW5ndzMyKiB8IC1saW51eC1nbnUqIHwg LWxpbnV4LW5ld2xpYiogfCAtbGludXgtdWNsaWJjKiBcCi0rCSAgICAgIHwgLXV4cHYqIHwgLWJl b3MqIHwgLW1wZWl4KiB8IC11ZGsqIFwKLSsJICAgICAgfCAtaW50ZXJpeCogfCAtdXdpbiogfCAt bWtzKiB8IC1yaGFwc29keSogfCAtZGFyd2luKiB8IC1vcGVuZWQqIFwKLSsJICAgICAgfCAtb3Bl bnN0ZXAqIHwgLW9za2l0KiB8IC1jb25peCogfCAtcHczMiogfCAtbm9uc3RvcHV4KiBcCi0rCSAg ICAgIHwgLXN0b3JtLWNoYW9zKiB8IC10b3BzMTAqIHwgLXRlbmV4KiB8IC10b3BzMjAqIHwgLWl0 cyogXAotKwkgICAgICB8IC1vczIqIHwgLXZvcyogfCAtcGFsbW9zKiB8IC11Y2xpbnV4KiB8IC1u dWNsZXVzKiBcCi0rCSAgICAgIHwgLW1vcnBob3MqIHwgLXN1cGVydXgqIHwgLXJ0bWsqIHwgLXJ0 bWstbm92YSogfCAtd2luZGlzcyogXAotKwkgICAgICB8IC1wb3dlcm1heCogfCAtZG5peCogfCAt bng2IHwgLW54NyB8IC1zZWkqIHwgLWRyYWdvbmZseSogXAotKwkgICAgICB8IC1za3lvcyogfCAt aGFpa3UqIHwgLXJkb3MqIHwgLXRvcHBlcnMqIHwgLWRyb3BzKikKLSsJIyBSZW1lbWJlciwgZWFj aCBhbHRlcm5hdGl2ZSBNVVNUIEVORCBJTiAqLCB0byBtYXRjaCBhIHZlcnNpb24gbnVtYmVyLgot KwkJOzsKLSsJLXFueCopCi0rCQljYXNlICRiYXNpY19tYWNoaW5lIGluCi0rCQkgICAgeDg2LSog fCBpKjg2LSopCi0rCQkJOzsKLSsJCSAgICAqKQotKwkJCW9zPS1udG8kb3MKLSsJCQk7OwotKwkJ ZXNhYwotKwkJOzsKLSsJLW50by1xbngqKQotKwkJOzsKLSsJLW50byopCi0rCQlvcz1gZWNobyAk b3MgfCBzZWQgLWUgJ3N8bnRvfG50by1xbnh8J2AKLSsJCTs7Ci0rCS1zaW0gfCAtZXMxODAwKiB8 IC1obXMqIHwgLXhyYXkgfCAtb3M2OGsqIHwgLW5vbmUqIHwgLXY4OHIqIFwKLSsJICAgICAgfCAt d2luZG93cyogfCAtb3N4IHwgLWFidWcgfCAtbmV0d2FyZSogfCAtb3M5KiB8IC1iZW9zKiB8IC1o YWlrdSogXAotKwkgICAgICB8IC1tYWNvcyogfCAtbXB3KiB8IC1tYWdpYyogfCAtbW1peHdhcmUq IHwgLW1vbjk2MCogfCAtbG5ld3MqKQotKwkJOzsKLSsJLW1hYyopCi0rCQlvcz1gZWNobyAkb3Mg fCBzZWQgLWUgJ3N8bWFjfG1hY29zfCdgCi0rCQk7OwotKwktbGludXgtZGlldGxpYmMpCi0rCQlv cz0tbGludXgtZGlldGxpYmMKLSsJCTs7Ci0rCS1saW51eCopCi0rCQlvcz1gZWNobyAkb3MgfCBz ZWQgLWUgJ3N8bGludXh8bGludXgtZ251fCdgCi0rCQk7OwotKwktc3Vub3M1KikKLSsJCW9zPWBl Y2hvICRvcyB8IHNlZCAtZSAnc3xzdW5vczV8c29sYXJpczJ8J2AKLSsJCTs7Ci0rCS1zdW5vczYq KQotKwkJb3M9YGVjaG8gJG9zIHwgc2VkIC1lICdzfHN1bm9zNnxzb2xhcmlzM3wnYAotKwkJOzsK LSsJLW9wZW5lZCopCi0rCQlvcz0tb3BlbmVkaXRpb24KLSsJCTs7Ci0rICAgICAgICAtb3M0MDAq KQotKwkJb3M9LW9zNDAwCi0rCQk7OwotKwktd2luY2UqKQotKwkJb3M9LXdpbmNlCi0rCQk7Owot Kwktb3Nmcm9zZSopCi0rCQlvcz0tb3Nmcm9zZQotKwkJOzsKLSsJLW9zZiopCi0rCQlvcz0tb3Nm Ci0rCQk7OwotKwktdXRlayopCi0rCQlvcz0tYnNkCi0rCQk7OwotKwktZHluaXgqKQotKwkJb3M9 LWJzZAotKwkJOzsKLSsJLWFjaXMqKQotKwkJb3M9LWFvcwotKwkJOzsKLSsJLWF0aGVvcyopCi0r CQlvcz0tYXRoZW9zCi0rCQk7OwotKwktc3lsbGFibGUqKQotKwkJb3M9LXN5bGxhYmxlCi0rCQk7 OwotKwktMzg2YnNkKQotKwkJb3M9LWJzZAotKwkJOzsKLSsJLWN0aXgqIHwgLXV0cyopCi0rCQlv cz0tc3lzdgotKwkJOzsKLSsJLW5vdmEqKQotKwkJb3M9LXJ0bWstbm92YQotKwkJOzsKLSsJLW5z MiApCi0rCQlvcz0tbmV4dHN0ZXAyCi0rCQk7OwotKwktbnNrKikKLSsJCW9zPS1uc2sKLSsJCTs7 Ci0rCSMgUHJlc2VydmUgdGhlIHZlcnNpb24gbnVtYmVyIG9mIHNpbml4NS4KLSsJLXNpbml4NS4q KQotKwkJb3M9YGVjaG8gJG9zIHwgc2VkIC1lICdzfHNpbml4fHN5c3Z8J2AKLSsJCTs7Ci0rCS1z aW5peCopCi0rCQlvcz0tc3lzdjQKLSsJCTs7Ci0rICAgICAgICAtdHBmKikKLSsJCW9zPS10cGYK LSsJCTs7Ci0rCS10cml0b24qKQotKwkJb3M9LXN5c3YzCi0rCQk7OwotKwktb3NzKikKLSsJCW9z PS1zeXN2MwotKwkJOzsKLSsJLXN2cjQpCi0rCQlvcz0tc3lzdjQKLSsJCTs7Ci0rCS1zdnIzKQot KwkJb3M9LXN5c3YzCi0rCQk7OwotKwktc3lzdnI0KQotKwkJb3M9LXN5c3Y0Ci0rCQk7OwotKwkj IFRoaXMgbXVzdCBjb21lIGFmdGVyIC1zeXN2cjQuCi0rCS1zeXN2KikKLSsJCTs7Ci0rCS1vc2Uq KQotKwkJb3M9LW9zZQotKwkJOzsKLSsJLWVzMTgwMCopCi0rCQlvcz0tb3NlCi0rCQk7OwotKwkt eGVuaXgpCi0rCQlvcz0teGVuaXgKLSsJCTs7Ci0rCS0qbWludCB8IC1taW50WzAtOV0qIHwgLSpN aU5UIHwgLU1pTlRbMC05XSopCi0rCQlvcz0tbWludAotKwkJOzsKLSsJLWFyb3MqKQotKwkJb3M9 LWFyb3MKLSsJCTs7Ci0rCS1rYW9zKikKLSsJCW9zPS1rYW9zCi0rCQk7OwotKwktenZtb2UpCi0r CQlvcz0tenZtb2UKLSsJCTs7Ci0rCS1kaWNvcyopCi0rCQlvcz0tZGljb3MKLSsJCTs7Ci0rCS1u b25lKQotKwkJOzsKLSsJKikKLSsJCSMgR2V0IHJpZCBvZiB0aGUgYC0nIGF0IHRoZSBiZWdpbm5p bmcgb2YgJG9zLgotKwkJb3M9YGVjaG8gJG9zIHwgc2VkICdzL1teLV0qLS8vJ2AKLSsJCWVjaG8g SW52YWxpZCBjb25maWd1cmF0aW9uIFxgJDFcJzogc3lzdGVtIFxgJG9zXCcgbm90IHJlY29nbml6 ZWQgMT4mMgotKwkJZXhpdCAxCi0rCQk7OwotK2VzYWMKLStlbHNlCi0rCi0rIyBIZXJlIHdlIGhh bmRsZSB0aGUgZGVmYXVsdCBvcGVyYXRpbmcgc3lzdGVtcyB0aGF0IGNvbWUgd2l0aCB2YXJpb3Vz IG1hY2hpbmVzLgotKyMgVGhlIHZhbHVlIHNob3VsZCBiZSB3aGF0IHRoZSB2ZW5kb3IgY3VycmVu dGx5IHNoaXBzIG91dCB0aGUgZG9vciB3aXRoIHRoZWlyCi0rIyBtYWNoaW5lIG9yIHB1dCBhbm90 aGVyIHdheSwgdGhlIG1vc3QgcG9wdWxhciBvcyBwcm92aWRlZCB3aXRoIHRoZSBtYWNoaW5lLgot KwotKyMgTm90ZSB0aGF0IGlmIHlvdSdyZSBnb2luZyB0byB0cnkgdG8gbWF0Y2ggIi1NQU5VRkFD VFVSRVIiIGhlcmUgKHNheSwKLSsjICItc3VuIiksIHRoZW4geW91IGhhdmUgdG8gdGVsbCB0aGUg Y2FzZSBzdGF0ZW1lbnQgdXAgdG93YXJkcyB0aGUgdG9wCi0rIyB0aGF0IE1BTlVGQUNUVVJFUiBp c24ndCBhbiBvcGVyYXRpbmcgc3lzdGVtLiAgT3RoZXJ3aXNlLCBjb2RlIGFib3ZlCi0rIyB3aWxs IHNpZ25hbCBhbiBlcnJvciBzYXlpbmcgdGhhdCBNQU5VRkFDVFVSRVIgaXNuJ3QgYW4gb3BlcmF0 aW5nCi0rIyBzeXN0ZW0sIGFuZCB3ZSdsbCBuZXZlciBnZXQgdG8gdGhpcyBwb2ludC4KLSsKLStj YXNlICRiYXNpY19tYWNoaW5lIGluCi0rICAgICAgICBzY29yZS0qKQotKwkJb3M9LWVsZgotKwkJ OzsKLSsgICAgICAgIHNwdS0qKQotKwkJb3M9LWVsZgotKwkJOzsKLSsJKi1hY29ybikKLSsJCW9z PS1yaXNjaXgxLjIKLSsJCTs7Ci0rCWFybSotcmViZWwpCi0rCQlvcz0tbGludXgKLSsJCTs7Ci0r CWFybSotc2VtaSkKLSsJCW9zPS1hb3V0Ci0rCQk7OwotKyAgICAgICAgYzR4LSogfCB0aWM0eC0q KQotKyAgICAgICAgCW9zPS1jb2ZmCi0rCQk7OwotKwkjIFRoaXMgbXVzdCBjb21lIGJlZm9yZSB0 aGUgKi1kZWMgZW50cnkuCi0rCXBkcDEwLSopCi0rCQlvcz0tdG9wczIwCi0rCQk7OwotKwlwZHAx MS0qKQotKwkJb3M9LW5vbmUKLSsJCTs7Ci0rCSotZGVjIHwgdmF4LSopCi0rCQlvcz0tdWx0cml4 NC4yCi0rCQk7OwotKwltNjgqLWFwb2xsbykKLSsJCW9zPS1kb21haW4KLSsJCTs7Ci0rCWkzODYt c3VuKQotKwkJb3M9LXN1bm9zNC4wLjIKLSsJCTs7Ci0rCW02ODAwMC1zdW4pCi0rCQlvcz0tc3Vu b3MzCi0rCQkjIFRoaXMgYWxzbyBleGlzdHMgaW4gdGhlIGNvbmZpZ3VyZSBwcm9ncmFtLCBidXQg d2FzIG5vdCB0aGUKLSsJCSMgZGVmYXVsdC4KLSsJCSMgb3M9LXN1bm9zNAotKwkJOzsKLSsJbTY4 Ki1jaXNjbykKLSsJCW9zPS1hb3V0Ci0rCQk7OwotKyAgICAgICAgbWVwLSopCi0rCQlvcz0tZWxm Ci0rCQk7OwotKwltaXBzKi1jaXNjbykKLSsJCW9zPS1lbGYKLSsJCTs7Ci0rCW1pcHMqLSopCi0r CQlvcz0tZWxmCi0rCQk7OwotKwlvcjMyLSopCi0rCQlvcz0tY29mZgotKwkJOzsKLSsJKi10dGkp CSMgbXVzdCBiZSBiZWZvcmUgc3BhcmMgZW50cnkgb3Igd2UgZ2V0IHRoZSB3cm9uZyBvcy4KLSsJ CW9zPS1zeXN2MwotKwkJOzsKLSsJc3BhcmMtKiB8ICotc3VuKQotKwkJb3M9LXN1bm9zNC4xLjEK LSsJCTs7Ci0rCSotYmUpCi0rCQlvcz0tYmVvcwotKwkJOzsKLSsJKi1oYWlrdSkKLSsJCW9zPS1o YWlrdQotKwkJOzsKLSsJKi1pYm0pCi0rCQlvcz0tYWl4Ci0rCQk7OwotKyAgICAJKi1rbnV0aCkK LSsJCW9zPS1tbWl4d2FyZQotKwkJOzsKLSsJKi13ZWMpCi0rCQlvcz0tcHJvZWxmCi0rCQk7Owot KwkqLXdpbmJvbmQpCi0rCQlvcz0tcHJvZWxmCi0rCQk7OwotKwkqLW9raSkKLSsJCW9zPS1wcm9l bGYKLSsJCTs7Ci0rCSotaHApCi0rCQlvcz0taHB1eAotKwkJOzsKLSsJKi1oaXRhY2hpKQotKwkJ b3M9LWhpdXgKLSsJCTs7Ci0rCWk4NjAtKiB8ICotYXR0IHwgKi1uY3IgfCAqLWFsdG9zIHwgKi1t b3Rvcm9sYSB8ICotY29udmVyZ2VudCkKLSsJCW9zPS1zeXN2Ci0rCQk7OwotKwkqLWNibSkKLSsJ CW9zPS1hbWlnYW9zCi0rCQk7OwotKwkqLWRnKQotKwkJb3M9LWRndXgKLSsJCTs7Ci0rCSotZG9s cGhpbikKLSsJCW9zPS1zeXN2MwotKwkJOzsKLSsJbTY4ay1jY3VyKQotKwkJb3M9LXJ0dQotKwkJ OzsKLSsJbTg4ay1vbXJvbiopCi0rCQlvcz0tbHVuYQotKwkJOzsKLSsJKi1uZXh0ICkKLSsJCW9z PS1uZXh0c3RlcAotKwkJOzsKLSsJKi1zZXF1ZW50KQotKwkJb3M9LXB0eAotKwkJOzsKLSsJKi1j cmRzKQotKwkJb3M9LXVub3MKLSsJCTs7Ci0rCSotbnMpCi0rCQlvcz0tZ2VuaXgKLSsJCTs7Ci0r CWkzNzAtKikKLSsJCW9zPS1tdnMKLSsJCTs7Ci0rCSotbmV4dCkKLSsJCW9zPS1uZXh0c3RlcDMK LSsJCTs7Ci0rCSotZ291bGQpCi0rCQlvcz0tc3lzdgotKwkJOzsKLSsJKi1oaWdobGV2ZWwpCi0r CQlvcz0tYnNkCi0rCQk7OwotKwkqLWVuY29yZSkKLSsJCW9zPS1ic2QKLSsJCTs7Ci0rCSotc2dp KQotKwkJb3M9LWlyaXgKLSsJCTs7Ci0rCSotc2llbWVucykKLSsJCW9zPS1zeXN2NAotKwkJOzsK LSsJKi1tYXNzY29tcCkKLSsJCW9zPS1ydHUKLSsJCTs7Ci0rCWYzMFswMV0tZnVqaXRzdSB8IGY3 MDAtZnVqaXRzdSkKLSsJCW9zPS11eHB2Ci0rCQk7OwotKwkqLXJvbTY4aykKLSsJCW9zPS1jb2Zm Ci0rCQk7OwotKwkqLSpidWcpCi0rCQlvcz0tY29mZgotKwkJOzsKLSsJKi1hcHBsZSkKLSsJCW9z PS1tYWNvcwotKwkJOzsKLSsJKi1hdGFyaSopCi0rCQlvcz0tbWludAotKwkJOzsKLSsJKikKLSsJ CW9zPS1ub25lCi0rCQk7OwotK2VzYWMKLStmaQotKwotKyMgSGVyZSB3ZSBoYW5kbGUgdGhlIGNh c2Ugd2hlcmUgd2Uga25vdyB0aGUgb3MsIGFuZCB0aGUgQ1BVIHR5cGUsIGJ1dCBub3QgdGhlCi0r IyBtYW51ZmFjdHVyZXIuICBXZSBwaWNrIHRoZSBsb2dpY2FsIG1hbnVmYWN0dXJlci4KLSt2ZW5k b3I9dW5rbm93bgotK2Nhc2UgJGJhc2ljX21hY2hpbmUgaW4KLSsJKi11bmtub3duKQotKwkJY2Fz ZSAkb3MgaW4KLSsJCQktcmlzY2l4KikKLSsJCQkJdmVuZG9yPWFjb3JuCi0rCQkJCTs7Ci0rCQkJ LXN1bm9zKikKLSsJCQkJdmVuZG9yPXN1bgotKwkJCQk7OwotKwkJCS1haXgqKQotKwkJCQl2ZW5k b3I9aWJtCi0rCQkJCTs7Ci0rCQkJLWJlb3MqKQotKwkJCQl2ZW5kb3I9YmUKLSsJCQkJOzsKLSsJ CQktaHB1eCopCi0rCQkJCXZlbmRvcj1ocAotKwkJCQk7OwotKwkJCS1tcGVpeCopCi0rCQkJCXZl bmRvcj1ocAotKwkJCQk7OwotKwkJCS1oaXV4KikKLSsJCQkJdmVuZG9yPWhpdGFjaGkKLSsJCQkJ OzsKLSsJCQktdW5vcyopCi0rCQkJCXZlbmRvcj1jcmRzCi0rCQkJCTs7Ci0rCQkJLWRndXgqKQot KwkJCQl2ZW5kb3I9ZGcKLSsJCQkJOzsKLSsJCQktbHVuYSopCi0rCQkJCXZlbmRvcj1vbXJvbgot KwkJCQk7OwotKwkJCS1nZW5peCopCi0rCQkJCXZlbmRvcj1ucwotKwkJCQk7OwotKwkJCS1tdnMq IHwgLW9wZW5lZCopCi0rCQkJCXZlbmRvcj1pYm0KLSsJCQkJOzsKLSsJCQktb3M0MDAqKQotKwkJ CQl2ZW5kb3I9aWJtCi0rCQkJCTs7Ci0rCQkJLXB0eCopCi0rCQkJCXZlbmRvcj1zZXF1ZW50Ci0r CQkJCTs7Ci0rCQkJLXRwZiopCi0rCQkJCXZlbmRvcj1pYm0KLSsJCQkJOzsKLSsJCQktdnhzaW0q IHwgLXZ4d29ya3MqIHwgLXdpbmRpc3MqKQotKwkJCQl2ZW5kb3I9d3JzCi0rCQkJCTs7Ci0rCQkJ LWF1eCopCi0rCQkJCXZlbmRvcj1hcHBsZQotKwkJCQk7OwotKwkJCS1obXMqKQotKwkJCQl2ZW5k b3I9aGl0YWNoaQotKwkJCQk7OwotKwkJCS1tcHcqIHwgLW1hY29zKikKLSsJCQkJdmVuZG9yPWFw cGxlCi0rCQkJCTs7Ci0rCQkJLSptaW50IHwgLW1pbnRbMC05XSogfCAtKk1pTlQgfCAtTWlOVFsw LTldKikKLSsJCQkJdmVuZG9yPWF0YXJpCi0rCQkJCTs7Ci0rCQkJLXZvcyopCi0rCQkJCXZlbmRv cj1zdHJhdHVzCi0rCQkJCTs7Ci0rCQllc2FjCi0rCQliYXNpY19tYWNoaW5lPWBlY2hvICRiYXNp Y19tYWNoaW5lIHwgc2VkICJzL3Vua25vd24vJHZlbmRvci8iYAotKwkJOzsKLStlc2FjCi0rCi0r ZWNobyAkYmFzaWNfbWFjaGluZSRvcwotK2V4aXQKLSsKLSsjIExvY2FsIHZhcmlhYmxlczoKLSsj IGV2YWw6IChhZGQtaG9vayAnd3JpdGUtZmlsZS1ob29rcyAndGltZS1zdGFtcCkKLSsjIHRpbWUt c3RhbXAtc3RhcnQ6ICJ0aW1lc3RhbXA9JyIKLSsjIHRpbWUtc3RhbXAtZm9ybWF0OiAiJTp5LSUw Mm0tJTAyZCIKLSsjIHRpbWUtc3RhbXAtZW5kOiAiJyIKLSsjIEVuZDoKLWRpZmYgLU51ciBzb2Np LTMuMC4wXzQtcGFjay9jb25maWcvY3BwdW5pdC5tNCBzb2NpLTMuMC4wX3RyZXAzMDAvY29uZmln L2NwcHVuaXQubTQKLS0tLSBzb2NpLTMuMC4wXzQtcGFjay9jb25maWcvY3BwdW5pdC5tNAkxOTcw LTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAotKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9j b25maWcvY3BwdW5pdC5tNAkyMDA5LTA1LTIyIDIyOjU0OjM3LjAwMDAwMDAwMCArMDIwMAotQEAg LTAsMCArMSw5MyBAQAotK2RubAotK2RubCBBTV9QQVRIX0NQUFVOSVQoTUlOSU1VTS1WRVJTSU9O LCBbQUNUSU9OLUlGLUZPVU5EIFssIEFDVElPTi1JRi1OT1QtRk9VTkRdXSkKLStkbmwKLStBQ19E RUZVTihbQU1fUEFUSF9DUFBVTklUXSwKLStbCi0rCi0rQUNfQVJHX1dJVEgoY3BwdW5pdC1wcmVm aXgsWyAgLS13aXRoLWNwcHVuaXQtcHJlZml4PVBGWCAgIFByZWZpeCB3aGVyZSBDcHBVbml0IGlz IGluc3RhbGxlZCAob3B0aW9uYWwpXSwKLSsgICAgICAgICAgICBjcHB1bml0X2NvbmZpZ19wcmVm aXg9IiR3aXRodmFsIiwgY3BwdW5pdF9jb25maWdfcHJlZml4PSIiKQotK0FDX0FSR19XSVRIKGNw cHVuaXQtZXhlYy1wcmVmaXgsWyAgLS13aXRoLWNwcHVuaXQtZXhlYy1wcmVmaXg9UEZYICBFeGVj IHByZWZpeCB3aGVyZSBDcHBVbml0IGlzIGluc3RhbGxlZCAob3B0aW9uYWwpXSwKLSsgICAgICAg ICAgICBjcHB1bml0X2NvbmZpZ19leGVjX3ByZWZpeD0iJHdpdGh2YWwiLCBjcHB1bml0X2NvbmZp Z19leGVjX3ByZWZpeD0iIikKLSsKLSsgIGlmIHRlc3QgeCRjcHB1bml0X2NvbmZpZ19leGVjX3By ZWZpeCAhPSB4IDsgdGhlbgotKyAgICAgY3BwdW5pdF9jb25maWdfYXJncz0iJGNwcHVuaXRfY29u ZmlnX2FyZ3MgLS1leGVjLXByZWZpeD0kY3BwdW5pdF9jb25maWdfZXhlY19wcmVmaXgiCi0rICAg ICBpZiB0ZXN0IHgke0NQUFVOSVRfQ09ORklHK3NldH0gIT0geHNldCA7IHRoZW4KLSsgICAgICAg IENQUFVOSVRfQ09ORklHPSRjcHB1bml0X2NvbmZpZ19leGVjX3ByZWZpeC9iaW4vY3BwdW5pdC1j b25maWcKLSsgICAgIGZpCi0rICBmaQotKyAgaWYgdGVzdCB4JGNwcHVuaXRfY29uZmlnX3ByZWZp eCAhPSB4IDsgdGhlbgotKyAgICAgY3BwdW5pdF9jb25maWdfYXJncz0iJGNwcHVuaXRfY29uZmln X2FyZ3MgLS1wcmVmaXg9JGNwcHVuaXRfY29uZmlnX3ByZWZpeCIKLSsgICAgIGlmIHRlc3QgeCR7 Q1BQVU5JVF9DT05GSUcrc2V0fSAhPSB4c2V0IDsgdGhlbgotKyAgICAgICAgQ1BQVU5JVF9DT05G SUc9JGNwcHVuaXRfY29uZmlnX3ByZWZpeC9iaW4vY3BwdW5pdC1jb25maWcKLSsgICAgIGZpCi0r ICBmaQotKwotKyAgQUNfUEFUSF9QUk9HKENQUFVOSVRfQ09ORklHLCBjcHB1bml0LWNvbmZpZywg bm8pCi0rICBjcHB1bml0X3ZlcnNpb25fbWluPSQxCi0rCi0rICBBQ19NU0dfQ0hFQ0tJTkcoZm9y IENwcHVuaXQgLSB2ZXJzaW9uID49ICRjcHB1bml0X3ZlcnNpb25fbWluKQotKyAgbm9fY3BwdW5p dD0iIgotKyAgaWYgdGVzdCAiJENQUFVOSVRfQ09ORklHIiA9ICJubyIgOyB0aGVuCi0rICAgIEFD X01TR19SRVNVTFQobm8pCi0rICAgIG5vX2NwcHVuaXQ9eWVzCi0rICBlbHNlCi0rICAgIENQUFVO SVRfQ0ZMQUdTPWAkQ1BQVU5JVF9DT05GSUcgLS1jZmxhZ3NgCi0rICAgIENQUFVOSVRfTElCUz1g JENQUFVOSVRfQ09ORklHIC0tbGlic2AKLSsgICAgQ1BQVU5JVF9WRVJTSU9OPWAkQ1BQVU5JVF9D T05GSUcgLS12ZXJzaW9uYAotKwotKyAgICBjcHB1bml0X21ham9yX3ZlcnNpb249YGVjaG8gJENQ UFVOSVRfVkVSU0lPTiB8IFwKLSsgICAgICAgICAgIHNlZCAncy9cKFtbMC05XV0qXCkuXChbWzAt OV1dKlwpLlwoW1swLTldXSpcKS9cMS8nYAotKyAgICBjcHB1bml0X21pbm9yX3ZlcnNpb249YGVj aG8gJENQUFVOSVRfVkVSU0lPTiB8IFwKLSsgICAgICAgICAgIHNlZCAncy9cKFtbMC05XV0qXCku XChbWzAtOV1dKlwpLlwoW1swLTldXSpcKS9cMi8nYAotKyAgICBjcHB1bml0X21pY3JvX3ZlcnNp b249YGVjaG8gJENQUFVOSVRfVkVSU0lPTiB8IFwKLSsgICAgICAgICAgIHNlZCAncy9cKFtbMC05 XV0qXCkuXChbWzAtOV1dKlwpLlwoW1swLTldXSpcKS9cMy8nYAotKwotKyAgICBjcHB1bml0X21h am9yX21pbj1gZWNobyAkY3BwdW5pdF92ZXJzaW9uX21pbiB8IFwKLSsgICAgICAgICAgIHNlZCAn cy9cKFtbMC05XV0qXCkuXChbWzAtOV1dKlwpLlwoW1swLTldXSpcKS9cMS8nYAotKyAgICBpZiB0 ZXN0ICJ4JHtjcHB1bml0X21ham9yX21pbn0iID0gIngiIDsgdGhlbgotKyAgICAgICBjcHB1bml0 X21ham9yX21pbj0wCi0rICAgIGZpCi0rICAgIAotKyAgICBjcHB1bml0X21pbm9yX21pbj1gZWNo byAkY3BwdW5pdF92ZXJzaW9uX21pbiB8IFwKLSsgICAgICAgICAgIHNlZCAncy9cKFtbMC05XV0q XCkuXChbWzAtOV1dKlwpLlwoW1swLTldXSpcKS9cMi8nYAotKyAgICBpZiB0ZXN0ICJ4JHtjcHB1 bml0X21pbm9yX21pbn0iID0gIngiIDsgdGhlbgotKyAgICAgICBjcHB1bml0X21pbm9yX21pbj0w Ci0rICAgIGZpCi0rICAgIAotKyAgICBjcHB1bml0X21pY3JvX21pbj1gZWNobyAkY3BwdW5pdF92 ZXJzaW9uX21pbiB8IFwKLSsgICAgICAgICAgIHNlZCAncy9cKFtbMC05XV0qXCkuXChbWzAtOV1d KlwpLlwoW1swLTldXSpcKS9cMy8nYAotKyAgICBpZiB0ZXN0ICJ4JHtjcHB1bml0X21pY3JvX21p bn0iID0gIngiIDsgdGhlbgotKyAgICAgICBjcHB1bml0X21pY3JvX21pbj0wCi0rICAgIGZpCi0r Ci0rICAgIGNwcHVuaXRfdmVyc2lvbl9wcm9wZXI9YGV4cHIgXAotKyAgICAgICAgJGNwcHVuaXRf bWFqb3JfdmVyc2lvbiBcPiAkY3BwdW5pdF9tYWpvcl9taW4gXHwgXAotKyAgICAgICAgJGNwcHVu aXRfbWFqb3JfdmVyc2lvbiBcPSAkY3BwdW5pdF9tYWpvcl9taW4gXCYgXAotKyAgICAgICAgJGNw cHVuaXRfbWlub3JfdmVyc2lvbiBcPiAkY3BwdW5pdF9taW5vcl9taW4gXHwgXAotKyAgICAgICAg JGNwcHVuaXRfbWFqb3JfdmVyc2lvbiBcPSAkY3BwdW5pdF9tYWpvcl9taW4gXCYgXAotKyAgICAg ICAgJGNwcHVuaXRfbWlub3JfdmVyc2lvbiBcPSAkY3BwdW5pdF9taW5vcl9taW4gXCYgXAotKyAg ICAgICAgJGNwcHVuaXRfbWljcm9fdmVyc2lvbiBcPj0gJGNwcHVuaXRfbWljcm9fbWluIGAKLSsK LSsgICAgaWYgdGVzdCAiJGNwcHVuaXRfdmVyc2lvbl9wcm9wZXIiID0gIjEiIDsgdGhlbgotKyAg ICAgIEFDX01TR19SRVNVTFQoWyRjcHB1bml0X21ham9yX3ZlcnNpb24uJGNwcHVuaXRfbWlub3Jf dmVyc2lvbi4kY3BwdW5pdF9taWNyb192ZXJzaW9uXSkKLSsgICAgZWxzZQotKyAgICAgIEFDX01T R19SRVNVTFQobm8pCi0rICAgICAgbm9fY3BwdW5pdD15ZXMKLSsgICAgZmkKLSsgIGZpCi0rCi0r ICBpZiB0ZXN0ICJ4JG5vX2NwcHVuaXQiID0geCA7IHRoZW4KLSsgICAgIGlmZWxzZShbJDJdLCAs IDosIFskMl0pICAgICAKLSsgIGVsc2UKLSsgICAgIENQUFVOSVRfQ0ZMQUdTPSIiCi0rICAgICBD UFBVTklUX0xJQlM9IiIKLSsgICAgIGlmZWxzZShbJDNdLCAsIDosIFskM10pCi0rICBmaQotKwot KyAgQUNfU1VCU1QoQ1BQVU5JVF9DRkxBR1MpCi0rICBBQ19TVUJTVChDUFBVTklUX0xJQlMpCi0r ICBBQ19TVUJTVChDUFBVTklUX1ZFUlNJT04pCi0rXSkKLSsKLSsKLSsKLWRpZmYgLU51ciBzb2Np LTMuMC4wXzQtcGFjay9jb25maWcvZGVwY29tcCBzb2NpLTMuMC4wX3RyZXAzMDAvY29uZmlnL2Rl cGNvbXAKLS0tLSBzb2NpLTMuMC4wXzQtcGFjay9jb25maWcvZGVwY29tcAkxOTcwLTAxLTAxIDAx OjAwOjAwLjAwMDAwMDAwMCArMDEwMAotKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9jb25maWcvZGVw Y29tcAkyMDA5LTA1LTIzIDEwOjAyOjAyLjAwMDAwMDAwMCArMDIwMAotQEAgLTAsMCArMSw1ODkg QEAKLSsjISAvYmluL3NoCi0rIyBkZXBjb21wIC0gY29tcGlsZSBhIHByb2dyYW0gZ2VuZXJhdGlu ZyBkZXBlbmRlbmNpZXMgYXMgc2lkZS1lZmZlY3RzCi0rCi0rc2NyaXB0dmVyc2lvbj0yMDA3LTAz LTI5LjAxCi0rCi0rIyBDb3B5cmlnaHQgKEMpIDE5OTksIDIwMDAsIDIwMDMsIDIwMDQsIDIwMDUs IDIwMDYsIDIwMDcgRnJlZSBTb2Z0d2FyZQotKyMgRm91bmRhdGlvbiwgSW5jLgotKwotKyMgVGhp cyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9v ciBtb2RpZnkKLSsjIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGlj IExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5Ci0rIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u OyBlaXRoZXIgdmVyc2lvbiAyLCBvciAoYXQgeW91ciBvcHRpb24pCi0rIyBhbnkgbGF0ZXIgdmVy c2lvbi4KLSsKLSsjIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0 IGl0IHdpbGwgYmUgdXNlZnVsLAotKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0 IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSsjIE1FUkNIQU5UQUJJTElUWSBvciBGSVRO RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKLSsjIEdOVSBHZW5lcmFsIFB1 YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0rCi0rIyBZb3Ugc2hvdWxkIGhhdmUgcmVj ZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotKyMgYWxvbmcg d2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKLSsj IEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3Rv biwgTUEKLSsjIDAyMTEwLTEzMDEsIFVTQS4KLSsKLSsjIEFzIGEgc3BlY2lhbCBleGNlcHRpb24g dG8gdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLCBpZiB5b3UKLSsjIGRpc3RyaWJ1dGUg dGhpcyBmaWxlIGFzIHBhcnQgb2YgYSBwcm9ncmFtIHRoYXQgY29udGFpbnMgYQotKyMgY29uZmln dXJhdGlvbiBzY3JpcHQgZ2VuZXJhdGVkIGJ5IEF1dG9jb25mLCB5b3UgbWF5IGluY2x1ZGUgaXQg dW5kZXIKLSsjIHRoZSBzYW1lIGRpc3RyaWJ1dGlvbiB0ZXJtcyB0aGF0IHlvdSB1c2UgZm9yIHRo ZSByZXN0IG9mIHRoYXQgcHJvZ3JhbS4KLSsKLSsjIE9yaWdpbmFsbHkgd3JpdHRlbiBieSBBbGV4 YW5kcmUgT2xpdmEgPG9saXZhQGRjYy51bmljYW1wLmJyPi4KLSsKLStjYXNlICQxIGluCi0rICAn JykKLSsgICAgIGVjaG8gIiQwOiBObyBjb21tYW5kLiAgVHJ5IFxgJDAgLS1oZWxwJyBmb3IgbW9y ZSBpbmZvcm1hdGlvbi4iIDE+JjIKLSsgICAgIGV4aXQgMTsKLSsgICAgIDs7Ci0rICAtaCB8IC0t aCopCi0rICAgIGNhdCA8PFxFT0YKLStVc2FnZTogZGVwY29tcCBbLS1oZWxwXSBbLS12ZXJzaW9u XSBQUk9HUkFNIFtBUkdTXQotKwotK1J1biBQUk9HUkFNUyBBUkdTIHRvIGNvbXBpbGUgYSBmaWxl LCBnZW5lcmF0aW5nIGRlcGVuZGVuY2llcwotK2FzIHNpZGUtZWZmZWN0cy4KLSsKLStFbnZpcm9u bWVudCB2YXJpYWJsZXM6Ci0rICBkZXBtb2RlICAgICBEZXBlbmRlbmN5IHRyYWNraW5nIG1vZGUu Ci0rICBzb3VyY2UgICAgICBTb3VyY2UgZmlsZSByZWFkIGJ5IGBQUk9HUkFNUyBBUkdTJy4KLSsg IG9iamVjdCAgICAgIE9iamVjdCBmaWxlIG91dHB1dCBieSBgUFJPR1JBTVMgQVJHUycuCi0rICBE RVBESVIgICAgICBkaXJlY3Rvcnkgd2hlcmUgdG8gc3RvcmUgZGVwZW5kZW5jaWVzLgotKyAgZGVw ZmlsZSAgICAgRGVwZW5kZW5jeSBmaWxlIHRvIG91dHB1dC4KLSsgIHRtcGRlcGZpbGUgIFRlbXBv cmFyeSBmaWxlIHRvIHVzZSB3aGVuIG91dHB1dGluZyBkZXBlbmRlbmNpZXMuCi0rICBsaWJ0b29s ICAgICBXaGV0aGVyIGxpYnRvb2wgaXMgdXNlZCAoeWVzL25vKS4KLSsKLStSZXBvcnQgYnVncyB0 byA8YnVnLWF1dG9tYWtlQGdudS5vcmc+LgotK0VPRgotKyAgICBleGl0ICQ/Ci0rICAgIDs7Ci0r ICAtdiB8IC0tdiopCi0rICAgIGVjaG8gImRlcGNvbXAgJHNjcmlwdHZlcnNpb24iCi0rICAgIGV4 aXQgJD8KLSsgICAgOzsKLStlc2FjCi0rCi0raWYgdGVzdCAteiAiJGRlcG1vZGUiIHx8IHRlc3Qg LXogIiRzb3VyY2UiIHx8IHRlc3QgLXogIiRvYmplY3QiOyB0aGVuCi0rICBlY2hvICJkZXBjb21w OiBWYXJpYWJsZXMgc291cmNlLCBvYmplY3QgYW5kIGRlcG1vZGUgbXVzdCBiZSBzZXQiIDE+JjIK LSsgIGV4aXQgMQotK2ZpCi0rCi0rIyBEZXBlbmRlbmNpZXMgZm9yIHN1Yi9iYXIubyBvciBzdWIv YmFyLm9iaiBnbyBpbnRvIHN1Yi8uZGVwcy9iYXIuUG8uCi0rZGVwZmlsZT0ke2RlcGZpbGUtYGVj aG8gIiRvYmplY3QiIHwKLSsgIHNlZCAnc3xbXlxcL10qJHwnJHtERVBESVItLmRlcHN9Jy8mfDtz fFwuXChbXi5dKlwpJHwuUFwxfDtzfFBvYmokfFBvfCdgfQotK3RtcGRlcGZpbGU9JHt0bXBkZXBm aWxlLWBlY2hvICIkZGVwZmlsZSIgfCBzZWQgJ3MvXC5cKFteLl0qXCkkLy5UXDEvJ2B9Ci0rCi0r cm0gLWYgIiR0bXBkZXBmaWxlIgotKwotKyMgU29tZSBtb2RlcyB3b3JrIGp1c3QgbGlrZSBvdGhl ciBtb2RlcywgYnV0IHVzZSBkaWZmZXJlbnQgZmxhZ3MuICBXZQotKyMgcGFyYW1ldGVyaXplIGhl cmUsIGJ1dCBzdGlsbCBsaXN0IHRoZSBtb2RlcyBpbiB0aGUgYmlnIGNhc2UgYmVsb3csCi0rIyB0 byBtYWtlIGRlcGVuZC5tNCBlYXNpZXIgdG8gd3JpdGUuICBOb3RlIHRoYXQgd2UgKmNhbm5vdCog dXNlIGEgY2FzZQotKyMgaGVyZSwgYmVjYXVzZSB0aGlzIGZpbGUgY2FuIG9ubHkgY29udGFpbiBv bmUgY2FzZSBzdGF0ZW1lbnQuCi0raWYgdGVzdCAiJGRlcG1vZGUiID0gaHA7IHRoZW4KLSsgICMg SFAgY29tcGlsZXIgdXNlcyAtTSBhbmQgbm8gZXh0cmEgYXJnLgotKyAgZ2NjZmxhZz0tTQotKyAg ZGVwbW9kZT1nY2MKLStmaQotKwotK2lmIHRlc3QgIiRkZXBtb2RlIiA9IGRhc2hYbXN0ZG91dDsg dGhlbgotKyAgICMgVGhpcyBpcyBqdXN0IGxpa2UgZGFzaG1zdGRvdXQgd2l0aCBhIGRpZmZlcmVu dCBhcmd1bWVudC4KLSsgICBkYXNobWZsYWc9LXhNCi0rICAgZGVwbW9kZT1kYXNobXN0ZG91dAot K2ZpCi0rCi0rY2FzZSAiJGRlcG1vZGUiIGluCi0rZ2NjMykKLSsjIyBnY2MgMyBpbXBsZW1lbnRz IGRlcGVuZGVuY3kgdHJhY2tpbmcgdGhhdCBkb2VzIGV4YWN0bHkgd2hhdAotKyMjIHdlIHdhbnQu ICBZYXkhICBOb3RlOiBmb3Igc29tZSByZWFzb24gbGlidG9vbCAxLjQgZG9lc24ndCBsaWtlCi0r IyMgaXQgaWYgLU1EIC1NUCBjb21lcyBhZnRlciB0aGUgLU1GIHN0dWZmLiAgSG1tLgotKyMjIFVu Zm9ydHVuYXRlbHksIEZyZWVCU0QgYzg5IGFjY2VwdGFuY2Ugb2YgZmxhZ3MgZGVwZW5kcyB1cG9u Ci0rIyMgdGhlIGNvbW1hbmQgbGluZSBhcmd1bWVudCBvcmRlcjsgc28gYWRkIHRoZSBmbGFncyB3 aGVyZSB0aGV5Ci0rIyMgYXBwZWFyIGluIGRlcGVuZDIuYW0uICBOb3RlIHRoYXQgdGhlIHNsb3dk b3duIGluY3VycmVkIGhlcmUKLSsjIyBhZmZlY3RzIG9ubHkgY29uZmlndXJlOiBpbiBtYWtlZmls ZXMsICVGQVNUREVQJSBzaG9ydGN1dHMgdGhpcy4KLSsgIGZvciBhcmcKLSsgIGRvCi0rICAgIGNh c2UgJGFyZyBpbgotKyAgICAtYykgc2V0IGZub3JkICIkQCIgLU1UICIkb2JqZWN0IiAtTUQgLU1Q IC1NRiAiJHRtcGRlcGZpbGUiICIkYXJnIiA7OwotKyAgICAqKSAgc2V0IGZub3JkICIkQCIgIiRh cmciIDs7Ci0rICAgIGVzYWMKLSsgICAgc2hpZnQgIyBmbm9yZAotKyAgICBzaGlmdCAjICRhcmcK LSsgIGRvbmUKLSsgICIkQCIKLSsgIHN0YXQ9JD8KLSsgIGlmIHRlc3QgJHN0YXQgLWVxIDA7IHRo ZW4gOgotKyAgZWxzZQotKyAgICBybSAtZiAiJHRtcGRlcGZpbGUiCi0rICAgIGV4aXQgJHN0YXQK LSsgIGZpCi0rICBtdiAiJHRtcGRlcGZpbGUiICIkZGVwZmlsZSIKLSsgIDs7Ci0rCi0rZ2NjKQot KyMjIFRoZXJlIGFyZSB2YXJpb3VzIHdheXMgdG8gZ2V0IGRlcGVuZGVuY3kgb3V0cHV0IGZyb20g Z2NjLiAgSGVyZSdzCi0rIyMgd2h5IHdlIHBpY2sgdGhpcyByYXRoZXIgb2JzY3VyZSBtZXRob2Q6 Ci0rIyMgLSBEb24ndCB3YW50IHRvIHVzZSAtTUQgYmVjYXVzZSB3ZSdkIGxpa2UgdGhlIGRlcGVu ZGVuY2llcyB0byBlbmQKLSsjIyAgIHVwIGluIGEgc3ViZGlyLiAgSGF2aW5nIHRvIHJlbmFtZSBi eSBoYW5kIGlzIHVnbHkuCi0rIyMgICAoV2UgbWlnaHQgZW5kIHVwIGRvaW5nIHRoaXMgYW55d2F5 IHRvIHN1cHBvcnQgb3RoZXIgY29tcGlsZXJzLikKLSsjIyAtIFRoZSBERVBFTkRFTkNJRVNfT1VU UFVUIGVudmlyb25tZW50IHZhcmlhYmxlIG1ha2VzIGdjYyBhY3QgbGlrZQotKyMjICAgLU1NLCBu b3QgLU0gKGRlc3BpdGUgd2hhdCB0aGUgZG9jcyBzYXkpLgotKyMjIC0gVXNpbmcgLU0gZGlyZWN0 bHkgbWVhbnMgcnVubmluZyB0aGUgY29tcGlsZXIgdHdpY2UgKGV2ZW4gd29yc2UKLSsjIyAgIHRo YW4gcmVuYW1pbmcpLgotKyAgaWYgdGVzdCAteiAiJGdjY2ZsYWciOyB0aGVuCi0rICAgIGdjY2Zs YWc9LU1ELAotKyAgZmkKLSsgICIkQCIgLVdwLCIkZ2NjZmxhZyR0bXBkZXBmaWxlIgotKyAgc3Rh dD0kPwotKyAgaWYgdGVzdCAkc3RhdCAtZXEgMDsgdGhlbiA6Ci0rICBlbHNlCi0rICAgIHJtIC1m ICIkdG1wZGVwZmlsZSIKLSsgICAgZXhpdCAkc3RhdAotKyAgZmkKLSsgIHJtIC1mICIkZGVwZmls ZSIKLSsgIGVjaG8gIiRvYmplY3QgOiBcXCIgPiAiJGRlcGZpbGUiCi0rICBhbHBoYT1BQkNERUZH SElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6Ci0rIyMgVGhlIHNl Y29uZCAtZSBleHByZXNzaW9uIGhhbmRsZXMgRE9TLXN0eWxlIGZpbGUgbmFtZXMgd2l0aCBkcml2 ZSBsZXR0ZXJzLgotKyAgc2VkIC1lICdzL15bXjpdKjogLyAvJyBcCi0rICAgICAgLWUgJ3MvXlsn JGFscGhhJ106XC9bXjpdKjogLyAvJyA8ICIkdG1wZGVwZmlsZSIgPj4gIiRkZXBmaWxlIgotKyMj IFRoaXMgbmV4dCBwaWVjZSBvZiBtYWdpYyBhdm9pZHMgdGhlIGBkZWxldGVkIGhlYWRlciBmaWxl JyBwcm9ibGVtLgotKyMjIFRoZSBwcm9ibGVtIGlzIHRoYXQgd2hlbiBhIGhlYWRlciBmaWxlIHdo aWNoIGFwcGVhcnMgaW4gYSAuUCBmaWxlCi0rIyMgaXMgZGVsZXRlZCwgdGhlIGRlcGVuZGVuY3kg Y2F1c2VzIG1ha2UgdG8gZGllIChiZWNhdXNlIHRoZXJlIGlzCi0rIyMgdHlwaWNhbGx5IG5vIHdh eSB0byByZWJ1aWxkIHRoZSBoZWFkZXIpLiAgV2UgYXZvaWQgdGhpcyBieSBhZGRpbmcKLSsjIyBk dW1teSBkZXBlbmRlbmNpZXMgZm9yIGVhY2ggaGVhZGVyIGZpbGUuICBUb28gYmFkIGdjYyBkb2Vz bid0IGRvCi0rIyMgdGhpcyBmb3IgdXMgZGlyZWN0bHkuCi0rICB0ciAnICcgJwotKycgPCAiJHRt cGRlcGZpbGUiIHwKLSsjIyBTb21lIHZlcnNpb25zIG9mIGdjYyBwdXQgYSBzcGFjZSBiZWZvcmUg dGhlIGA6Jy4gIE9uIHRoZSB0aGVvcnkKLSsjIyB0aGF0IHRoZSBzcGFjZSBtZWFucyBzb21ldGhp bmcsIHdlIGFkZCBhIHNwYWNlIHRvIHRoZSBvdXRwdXQgYXMKLSsjIyB3ZWxsLgotKyMjIFNvbWUg dmVyc2lvbnMgb2YgdGhlIEhQVVggMTAuMjAgc2VkIGNhbid0IHByb2Nlc3MgdGhpcyBpbnZvY2F0 aW9uCi0rIyMgY29ycmVjdGx5LiAgQnJlYWtpbmcgaXQgaW50byB0d28gc2VkIGludm9jYXRpb25z IGlzIGEgd29ya2Fyb3VuZC4KLSsgICAgc2VkIC1lICdzL15cXCQvLycgLWUgJy9eJC9kJyAtZSAn LzokL2QnIHwgc2VkIC1lICdzLyQvIDovJyA+PiAiJGRlcGZpbGUiCi0rICBybSAtZiAiJHRtcGRl cGZpbGUiCi0rICA7OwotKwotK2hwKQotKyAgIyBUaGlzIGNhc2UgZXhpc3RzIG9ubHkgdG8gbGV0 IGRlcGVuZC5tNCBkbyBpdHMgd29yay4gIEl0IHdvcmtzIGJ5Ci0rICAjIGxvb2tpbmcgYXQgdGhl IHRleHQgb2YgdGhpcyBzY3JpcHQuICBUaGlzIGNhc2Ugd2lsbCBuZXZlciBiZSBydW4sCi0rICAj IHNpbmNlIGl0IGlzIGNoZWNrZWQgZm9yIGFib3ZlLgotKyAgZXhpdCAxCi0rICA7OwotKwotK3Nn aSkKLSsgIGlmIHRlc3QgIiRsaWJ0b29sIiA9IHllczsgdGhlbgotKyAgICAiJEAiICItV3AsLU1E dXBkYXRlLCR0bXBkZXBmaWxlIgotKyAgZWxzZQotKyAgICAiJEAiIC1NRHVwZGF0ZSAiJHRtcGRl cGZpbGUiCi0rICBmaQotKyAgc3RhdD0kPwotKyAgaWYgdGVzdCAkc3RhdCAtZXEgMDsgdGhlbiA6 Ci0rICBlbHNlCi0rICAgIHJtIC1mICIkdG1wZGVwZmlsZSIKLSsgICAgZXhpdCAkc3RhdAotKyAg ZmkKLSsgIHJtIC1mICIkZGVwZmlsZSIKLSsKLSsgIGlmIHRlc3QgLWYgIiR0bXBkZXBmaWxlIjsg dGhlbiAgIyB5ZXMsIHRoZSBzb3VyY2VmaWxlIGRlcGVuZCBvbiBvdGhlciBmaWxlcwotKyAgICBl Y2hvICIkb2JqZWN0IDogXFwiID4gIiRkZXBmaWxlIgotKwotKyAgICAjIENsaXAgb2ZmIHRoZSBp bml0aWFsIGVsZW1lbnQgKHRoZSBkZXBlbmRlbnQpLiAgRG9uJ3QgdHJ5IHRvIGJlCi0rICAgICMg Y2xldmVyIGFuZCByZXBsYWNlIHRoaXMgd2l0aCBzZWQgY29kZSwgYXMgSVJJWCBzZWQgd29uJ3Qg aGFuZGxlCi0rICAgICMgbGluZXMgd2l0aCBtb3JlIHRoYW4gYSBmaXhlZCBudW1iZXIgb2YgY2hh cmFjdGVycyAoNDA5NiBpbgotKyAgICAjIElSSVggNi4yIHNlZCwgODE5MiBpbiBJUklYIDYuNSku ICBXZSBhbHNvIHJlbW92ZSBjb21tZW50IGxpbmVzOwotKyAgICAjIHRoZSBJUklYIGNjIGFkZHMg Y29tbWVudHMgbGlrZSBgIzpmZWMnIHRvIHRoZSBlbmQgb2YgdGhlCi0rICAgICMgZGVwZW5kZW5j eSBsaW5lLgotKyAgICB0ciAnICcgJwotKycgPCAiJHRtcGRlcGZpbGUiIFwKLSsgICAgfCBzZWQg LWUgJ3MvXi4qXC5vOi8vJyAtZSAncy8jLiokLy8nIC1lICcvXiQvIGQnIHwgXAotKyAgICB0ciAn Ci0rJyAnICcgPj4gJGRlcGZpbGUKLSsgICAgZWNobyA+PiAkZGVwZmlsZQotKwotKyAgICAjIFRo ZSBzZWNvbmQgcGFzcyBnZW5lcmF0ZXMgYSBkdW1teSBlbnRyeSBmb3IgZWFjaCBoZWFkZXIgZmls ZS4KLSsgICAgdHIgJyAnICcKLSsnIDwgIiR0bXBkZXBmaWxlIiBcCi0rICAgfCBzZWQgLWUgJ3Mv Xi4qXC5vOi8vJyAtZSAncy8jLiokLy8nIC1lICcvXiQvIGQnIC1lICdzLyQvOi8nIFwKLSsgICA+ PiAkZGVwZmlsZQotKyAgZWxzZQotKyAgICAjIFRoZSBzb3VyY2VmaWxlIGRvZXMgbm90IGNvbnRh aW4gYW55IGRlcGVuZGVuY2llcywgc28ganVzdAotKyAgICAjIHN0b3JlIGEgZHVtbXkgY29tbWVu dCBsaW5lLCB0byBhdm9pZCBlcnJvcnMgd2l0aCB0aGUgTWFrZWZpbGUKLSsgICAgIyAiaW5jbHVk ZSBiYXNlbmFtZS5QbG8iIHNjaGVtZS4KLSsgICAgZWNobyAiI2R1bW15IiA+ICIkZGVwZmlsZSIK LSsgIGZpCi0rICBybSAtZiAiJHRtcGRlcGZpbGUiCi0rICA7OwotKwotK2FpeCkKLSsgICMgVGhl IEMgZm9yIEFJWCBDb21waWxlciB1c2VzIC1NIGFuZCBvdXRwdXRzIHRoZSBkZXBlbmRlbmNpZXMK LSsgICMgaW4gYSAudSBmaWxlLiAgSW4gb2xkZXIgdmVyc2lvbnMsIHRoaXMgZmlsZSBhbHdheXMg bGl2ZXMgaW4gdGhlCi0rICAjIGN1cnJlbnQgZGlyZWN0b3J5LiAgQWxzbywgdGhlIEFJWCBjb21w aWxlciBwdXRzIGAkb2JqZWN0OicgYXQgdGhlCi0rICAjIHN0YXJ0IG9mIGVhY2ggbGluZTsgJG9i amVjdCBkb2Vzbid0IGhhdmUgZGlyZWN0b3J5IGluZm9ybWF0aW9uLgotKyAgIyBWZXJzaW9uIDYg dXNlcyB0aGUgZGlyZWN0b3J5IGluIGJvdGggY2FzZXMuCi0rICBkaXI9YGVjaG8gIiRvYmplY3Qi IHwgc2VkIC1lICdzfC9bXi9dKiR8L3wnYAotKyAgdGVzdCAieCRkaXIiID0gIngkb2JqZWN0IiAm JiBkaXI9Ci0rICBiYXNlPWBlY2hvICIkb2JqZWN0IiB8IHNlZCAtZSAnc3xeLiovfHwnIC1lICdz L1wubyQvLycgLWUgJ3MvXC5sbyQvLydgCi0rICBpZiB0ZXN0ICIkbGlidG9vbCIgPSB5ZXM7IHRo ZW4KLSsgICAgdG1wZGVwZmlsZTE9JGRpciRiYXNlLnUKLSsgICAgdG1wZGVwZmlsZTI9JGJhc2Uu dQotKyAgICB0bXBkZXBmaWxlMz0kZGlyLmxpYnMvJGJhc2UudQotKyAgICAiJEAiIC1XYywtTQot KyAgZWxzZQotKyAgICB0bXBkZXBmaWxlMT0kZGlyJGJhc2UudQotKyAgICB0bXBkZXBmaWxlMj0k ZGlyJGJhc2UudQotKyAgICB0bXBkZXBmaWxlMz0kZGlyJGJhc2UudQotKyAgICAiJEAiIC1NCi0r ICBmaQotKyAgc3RhdD0kPwotKwotKyAgaWYgdGVzdCAkc3RhdCAtZXEgMDsgdGhlbiA6Ci0rICBl bHNlCi0rICAgIHJtIC1mICIkdG1wZGVwZmlsZTEiICIkdG1wZGVwZmlsZTIiICIkdG1wZGVwZmls ZTMiCi0rICAgIGV4aXQgJHN0YXQKLSsgIGZpCi0rCi0rICBmb3IgdG1wZGVwZmlsZSBpbiAiJHRt cGRlcGZpbGUxIiAiJHRtcGRlcGZpbGUyIiAiJHRtcGRlcGZpbGUzIgotKyAgZG8KLSsgICAgdGVz dCAtZiAiJHRtcGRlcGZpbGUiICYmIGJyZWFrCi0rICBkb25lCi0rICBpZiB0ZXN0IC1mICIkdG1w ZGVwZmlsZSI7IHRoZW4KLSsgICAgIyBFYWNoIGxpbmUgaXMgb2YgdGhlIGZvcm0gYGZvby5vOiBk ZXBlbmRlbnQuaCcuCi0rICAgICMgRG8gdHdvIHBhc3Nlcywgb25lIHRvIGp1c3QgY2hhbmdlIHRo ZXNlIHRvCi0rICAgICMgYCRvYmplY3Q6IGRlcGVuZGVudC5oJyBhbmQgb25lIHRvIHNpbXBseSBg ZGVwZW5kZW50Lmg6Jy4KLSsgICAgc2VkIC1lICJzLF4uKlwuW2Etel0qOiwkb2JqZWN0OiwiIDwg IiR0bXBkZXBmaWxlIiA+ICIkZGVwZmlsZSIKLSsgICAgIyBUaGF0J3MgYSB0YWIgYW5kIGEgc3Bh Y2UgaW4gdGhlIFtdLgotKyAgICBzZWQgLWUgJ3MsXi4qXC5bYS16XSo6WwkgXSosLCcgLWUgJ3Ms JCw6LCcgPCAiJHRtcGRlcGZpbGUiID4+ICIkZGVwZmlsZSIKLSsgIGVsc2UKLSsgICAgIyBUaGUg c291cmNlZmlsZSBkb2VzIG5vdCBjb250YWluIGFueSBkZXBlbmRlbmNpZXMsIHNvIGp1c3QKLSsg ICAgIyBzdG9yZSBhIGR1bW15IGNvbW1lbnQgbGluZSwgdG8gYXZvaWQgZXJyb3JzIHdpdGggdGhl IE1ha2VmaWxlCi0rICAgICMgImluY2x1ZGUgYmFzZW5hbWUuUGxvIiBzY2hlbWUuCi0rICAgIGVj aG8gIiNkdW1teSIgPiAiJGRlcGZpbGUiCi0rICBmaQotKyAgcm0gLWYgIiR0bXBkZXBmaWxlIgot KyAgOzsKLSsKLStpY2MpCi0rICAjIEludGVsJ3MgQyBjb21waWxlciB1bmRlcnN0YW5kcyBgLU1E IC1NRiBmaWxlJy4gIEhvd2V2ZXIgb24KLSsgICMgICAgaWNjIC1NRCAtTUYgZm9vLmQgLWMgLW8g c3ViL2Zvby5vIHN1Yi9mb28uYwotKyAgIyBJQ0MgNy4wIHdpbGwgZmlsbCBmb28uZCB3aXRoIHNv bWV0aGluZyBsaWtlCi0rICAjICAgIGZvby5vOiBzdWIvZm9vLmMKLSsgICMgICAgZm9vLm86IHN1 Yi9mb28uaAotKyAgIyB3aGljaCBpcyB3cm9uZy4gIFdlIHdhbnQ6Ci0rICAjICAgIHN1Yi9mb28u bzogc3ViL2Zvby5jCi0rICAjICAgIHN1Yi9mb28ubzogc3ViL2Zvby5oCi0rICAjICAgIHN1Yi9m b28uYzoKLSsgICMgICAgc3ViL2Zvby5oOgotKyAgIyBJQ0MgNy4xIHdpbGwgb3V0cHV0Ci0rICAj ICAgIGZvby5vOiBzdWIvZm9vLmMgc3ViL2Zvby5oCi0rICAjIGFuZCB3aWxsIHdyYXAgbG9uZyBs aW5lcyB1c2luZyBcIDoKLSsgICMgICAgZm9vLm86IHN1Yi9mb28uYyAuLi4gXAotKyAgIyAgICAg c3ViL2Zvby5oIC4uLiBcCi0rICAjICAgICAuLi4KLSsKLSsgICIkQCIgLU1EIC1NRiAiJHRtcGRl cGZpbGUiCi0rICBzdGF0PSQ/Ci0rICBpZiB0ZXN0ICRzdGF0IC1lcSAwOyB0aGVuIDoKLSsgIGVs c2UKLSsgICAgcm0gLWYgIiR0bXBkZXBmaWxlIgotKyAgICBleGl0ICRzdGF0Ci0rICBmaQotKyAg cm0gLWYgIiRkZXBmaWxlIgotKyAgIyBFYWNoIGxpbmUgaXMgb2YgdGhlIGZvcm0gYGZvby5vOiBk ZXBlbmRlbnQuaCcsCi0rICAjIG9yIGBmb28ubzogZGVwMS5oIGRlcDIuaCBcJywgb3IgYCBkZXAz LmggZGVwNC5oIFwnLgotKyAgIyBEbyB0d28gcGFzc2VzLCBvbmUgdG8ganVzdCBjaGFuZ2UgdGhl c2UgdG8KLSsgICMgYCRvYmplY3Q6IGRlcGVuZGVudC5oJyBhbmQgb25lIHRvIHNpbXBseSBgZGVw ZW5kZW50Lmg6Jy4KLSsgIHNlZCAicyxeW146XSo6LCRvYmplY3QgOiwiIDwgIiR0bXBkZXBmaWxl IiA+ICIkZGVwZmlsZSIKLSsgICMgU29tZSB2ZXJzaW9ucyBvZiB0aGUgSFBVWCAxMC4yMCBzZWQg Y2FuJ3QgcHJvY2VzcyB0aGlzIGludm9jYXRpb24KLSsgICMgY29ycmVjdGx5LiAgQnJlYWtpbmcg aXQgaW50byB0d28gc2VkIGludm9jYXRpb25zIGlzIGEgd29ya2Fyb3VuZC4KLSsgIHNlZCAncyxe W146XSo6IFwoLipcKSQsXDEsO3MvXlxcJC8vOy9eJC9kOy86JC9kJyA8ICIkdG1wZGVwZmlsZSIg fAotKyAgICBzZWQgLWUgJ3MvJC8gOi8nID4+ICIkZGVwZmlsZSIKLSsgIHJtIC1mICIkdG1wZGVw ZmlsZSIKLSsgIDs7Ci0rCi0raHAyKQotKyAgIyBUaGUgImhwIiBzdGFuemEgYWJvdmUgZG9lcyBu b3Qgd29yayB3aXRoIGFDQyAoQysrKSBhbmQgSFAncyBpYTY0Ci0rICAjIGNvbXBpbGVycywgd2hp Y2ggaGF2ZSBpbnRlZ3JhdGVkIHByZXByb2Nlc3NvcnMuICBUaGUgY29ycmVjdCBvcHRpb24KLSsg ICMgdG8gdXNlIHdpdGggdGhlc2UgaXMgK01ha2VkOyBpdCB3cml0ZXMgZGVwZW5kZW5jaWVzIHRv IGEgZmlsZSBuYW1lZAotKyAgIyAnZm9vLmQnLCB3aGljaCBsYW5kcyBuZXh0IHRvIHRoZSBvYmpl Y3QgZmlsZSwgd2hlcmV2ZXIgdGhhdAotKyAgIyBoYXBwZW5zIHRvIGJlLgotKyAgIyBNdWNoIG9m IHRoaXMgaXMgc2ltaWxhciB0byB0aGUgdHJ1NjQgY2FzZTsgc2VlIGNvbW1lbnRzIHRoZXJlLgot KyAgZGlyPWBlY2hvICIkb2JqZWN0IiB8IHNlZCAtZSAnc3wvW14vXSokfC98J2AKLSsgIHRlc3Qg IngkZGlyIiA9ICJ4JG9iamVjdCIgJiYgZGlyPQotKyAgYmFzZT1gZWNobyAiJG9iamVjdCIgfCBz ZWQgLWUgJ3N8Xi4qL3x8JyAtZSAncy9cLm8kLy8nIC1lICdzL1wubG8kLy8nYAotKyAgaWYgdGVz dCAiJGxpYnRvb2wiID0geWVzOyB0aGVuCi0rICAgIHRtcGRlcGZpbGUxPSRkaXIkYmFzZS5kCi0r ICAgIHRtcGRlcGZpbGUyPSRkaXIubGlicy8kYmFzZS5kCi0rICAgICIkQCIgLVdjLCtNYWtlZAot KyAgZWxzZQotKyAgICB0bXBkZXBmaWxlMT0kZGlyJGJhc2UuZAotKyAgICB0bXBkZXBmaWxlMj0k ZGlyJGJhc2UuZAotKyAgICAiJEAiICtNYWtlZAotKyAgZmkKLSsgIHN0YXQ9JD8KLSsgIGlmIHRl c3QgJHN0YXQgLWVxIDA7IHRoZW4gOgotKyAgZWxzZQotKyAgICAgcm0gLWYgIiR0bXBkZXBmaWxl MSIgIiR0bXBkZXBmaWxlMiIKLSsgICAgIGV4aXQgJHN0YXQKLSsgIGZpCi0rCi0rICBmb3IgdG1w ZGVwZmlsZSBpbiAiJHRtcGRlcGZpbGUxIiAiJHRtcGRlcGZpbGUyIgotKyAgZG8KLSsgICAgdGVz dCAtZiAiJHRtcGRlcGZpbGUiICYmIGJyZWFrCi0rICBkb25lCi0rICBpZiB0ZXN0IC1mICIkdG1w ZGVwZmlsZSI7IHRoZW4KLSsgICAgc2VkIC1lICJzLF4uKlwuW2Etel0qOiwkb2JqZWN0OiwiICIk dG1wZGVwZmlsZSIgPiAiJGRlcGZpbGUiCi0rICAgICMgQWRkIGBkZXBlbmRlbnQuaDonIGxpbmVz LgotKyAgICBzZWQgLW5lICcyLCR7OyBzL14gKi8vOyBzLyBcXCokLy87IHMvJC86LzsgcDt9JyAi JHRtcGRlcGZpbGUiID4+ICIkZGVwZmlsZSIKLSsgIGVsc2UKLSsgICAgZWNobyAiI2R1bW15IiA+ ICIkZGVwZmlsZSIKLSsgIGZpCi0rICBybSAtZiAiJHRtcGRlcGZpbGUiICIkdG1wZGVwZmlsZTIi Ci0rICA7OwotKwotK3RydTY0KQotKyAgICMgVGhlIFRydTY0IGNvbXBpbGVyIHVzZXMgLU1EIHRv IGdlbmVyYXRlIGRlcGVuZGVuY2llcyBhcyBhIHNpZGUKLSsgICAjIGVmZmVjdC4gIGBjYyAtTUQg LW8gZm9vLm8gLi4uJyBwdXRzIHRoZSBkZXBlbmRlbmNpZXMgaW50byBgZm9vLm8uZCcuCi0rICAg IyBBdCBsZWFzdCBvbiBBbHBoYS9SZWRoYXQgNi4xLCBDb21wYXEgQ0NDIFY2LjItNTA0IHNlZW1z IHRvIHB1dAotKyAgICMgZGVwZW5kZW5jaWVzIGluIGBmb28uZCcgaW5zdGVhZCwgc28gd2UgY2hl Y2sgZm9yIHRoYXQgdG9vLgotKyAgICMgU3ViZGlyZWN0b3JpZXMgYXJlIHJlc3BlY3RlZC4KLSsg ICBkaXI9YGVjaG8gIiRvYmplY3QiIHwgc2VkIC1lICdzfC9bXi9dKiR8L3wnYAotKyAgIHRlc3Qg IngkZGlyIiA9ICJ4JG9iamVjdCIgJiYgZGlyPQotKyAgIGJhc2U9YGVjaG8gIiRvYmplY3QiIHwg c2VkIC1lICdzfF4uKi98fCcgLWUgJ3MvXC5vJC8vJyAtZSAncy9cLmxvJC8vJ2AKLSsKLSsgICBp ZiB0ZXN0ICIkbGlidG9vbCIgPSB5ZXM7IHRoZW4KLSsgICAgICAjIFdpdGggVHJ1NjQgY2MsIHNo YXJlZCBvYmplY3RzIGNhbiBhbHNvIGJlIHVzZWQgdG8gbWFrZSBhCi0rICAgICAgIyBzdGF0aWMg bGlicmFyeS4gIFRoaXMgbWVjaGFuaXNtIGlzIHVzZWQgaW4gbGlidG9vbCAxLjQgc2VyaWVzIHRv Ci0rICAgICAgIyBoYW5kbGUgYm90aCBzaGFyZWQgYW5kIHN0YXRpYyBsaWJyYXJpZXMgaW4gYSBz aW5nbGUgY29tcGlsYXRpb24uCi0rICAgICAgIyBXaXRoIGxpYnRvb2wgMS40LCBkZXBlbmRlbmNp ZXMgd2VyZSBvdXRwdXQgaW4gJGRpci5saWJzLyRiYXNlLmxvLmQuCi0rICAgICAgIwotKyAgICAg ICMgV2l0aCBsaWJ0b29sIDEuNSB0aGlzIGV4Y2VwdGlvbiB3YXMgcmVtb3ZlZCwgYW5kIGxpYnRv b2wgbm93Ci0rICAgICAgIyBnZW5lcmF0ZXMgMiBzZXBhcmF0ZSBvYmplY3RzIGZvciB0aGUgMiBs aWJyYXJpZXMuICBUaGVzZSB0d28KLSsgICAgICAjIGNvbXBpbGF0aW9ucyBvdXRwdXQgZGVwZW5k ZW5jaWVzIGluICRkaXIubGlicy8kYmFzZS5vLmQgYW5kCi0rICAgICAgIyBpbiAkZGlyJGJhc2Uu by5kLiAgV2UgaGF2ZSB0byBjaGVjayBmb3IgYm90aCBmaWxlcywgYmVjYXVzZQotKyAgICAgICMg b25lIG9mIHRoZSB0d28gY29tcGlsYXRpb25zIGNhbiBiZSBkaXNhYmxlZC4gIFdlIHNob3VsZCBw cmVmZXIKLSsgICAgICAjICRkaXIkYmFzZS5vLmQgb3ZlciAkZGlyLmxpYnMvJGJhc2Uuby5kIGJl Y2F1c2UgdGhlIGxhdHRlciBpcwotKyAgICAgICMgYXV0b21hdGljYWxseSBjbGVhbmVkIHdoZW4g LmxpYnMvIGlzIGRlbGV0ZWQsIHdoaWxlIGlnbm9yaW5nCi0rICAgICAgIyB0aGUgZm9ybWVyIHdv dWxkIGNhdXNlIGEgZGlzdGNsZWFuY2hlY2sgcGFuaWMuCi0rICAgICAgdG1wZGVwZmlsZTE9JGRp ci5saWJzLyRiYXNlLmxvLmQgICAjIGxpYnRvb2wgMS40Ci0rICAgICAgdG1wZGVwZmlsZTI9JGRp ciRiYXNlLm8uZCAgICAgICAgICAjIGxpYnRvb2wgMS41Ci0rICAgICAgdG1wZGVwZmlsZTM9JGRp ci5saWJzLyRiYXNlLm8uZCAgICAjIGxpYnRvb2wgMS41Ci0rICAgICAgdG1wZGVwZmlsZTQ9JGRp ci5saWJzLyRiYXNlLmQgICAgICAjIENvbXBhcSBDQ0MgVjYuMi01MDQKLSsgICAgICAiJEAiIC1X YywtTUQKLSsgICBlbHNlCi0rICAgICAgdG1wZGVwZmlsZTE9JGRpciRiYXNlLm8uZAotKyAgICAg IHRtcGRlcGZpbGUyPSRkaXIkYmFzZS5kCi0rICAgICAgdG1wZGVwZmlsZTM9JGRpciRiYXNlLmQK LSsgICAgICB0bXBkZXBmaWxlND0kZGlyJGJhc2UuZAotKyAgICAgICIkQCIgLU1ECi0rICAgZmkK LSsKLSsgICBzdGF0PSQ/Ci0rICAgaWYgdGVzdCAkc3RhdCAtZXEgMDsgdGhlbiA6Ci0rICAgZWxz ZQotKyAgICAgIHJtIC1mICIkdG1wZGVwZmlsZTEiICIkdG1wZGVwZmlsZTIiICIkdG1wZGVwZmls ZTMiICIkdG1wZGVwZmlsZTQiCi0rICAgICAgZXhpdCAkc3RhdAotKyAgIGZpCi0rCi0rICAgZm9y IHRtcGRlcGZpbGUgaW4gIiR0bXBkZXBmaWxlMSIgIiR0bXBkZXBmaWxlMiIgIiR0bXBkZXBmaWxl MyIgIiR0bXBkZXBmaWxlNCIKLSsgICBkbwotKyAgICAgdGVzdCAtZiAiJHRtcGRlcGZpbGUiICYm IGJyZWFrCi0rICAgZG9uZQotKyAgIGlmIHRlc3QgLWYgIiR0bXBkZXBmaWxlIjsgdGhlbgotKyAg ICAgIHNlZCAtZSAicyxeLipcLlthLXpdKjosJG9iamVjdDosIiA8ICIkdG1wZGVwZmlsZSIgPiAi JGRlcGZpbGUiCi0rICAgICAgIyBUaGF0J3MgYSB0YWIgYW5kIGEgc3BhY2UgaW4gdGhlIFtdLgot KyAgICAgIHNlZCAtZSAncyxeLipcLlthLXpdKjpbCSBdKiwsJyAtZSAncywkLDosJyA8ICIkdG1w ZGVwZmlsZSIgPj4gIiRkZXBmaWxlIgotKyAgIGVsc2UKLSsgICAgICBlY2hvICIjZHVtbXkiID4g IiRkZXBmaWxlIgotKyAgIGZpCi0rICAgcm0gLWYgIiR0bXBkZXBmaWxlIgotKyAgIDs7Ci0rCi0r I25vc2lkZWVmZmVjdCkKLSsgICMgVGhpcyBjb21tZW50IGFib3ZlIGlzIHVzZWQgYnkgYXV0b21h a2UgdG8gdGVsbCBzaWRlLWVmZmVjdAotKyAgIyBkZXBlbmRlbmN5IHRyYWNraW5nIG1lY2hhbmlz bXMgZnJvbSBzbG93ZXIgb25lcy4KLSsKLStkYXNobXN0ZG91dCkKLSsgICMgSW1wb3J0YW50IG5v dGU6IGluIG9yZGVyIHRvIHN1cHBvcnQgdGhpcyBtb2RlLCBhIGNvbXBpbGVyICptdXN0KgotKyAg IyBhbHdheXMgd3JpdGUgdGhlIHByZXByb2Nlc3NlZCBmaWxlIHRvIHN0ZG91dCwgcmVnYXJkbGVz cyBvZiAtby4KLSsgICIkQCIgfHwgZXhpdCAkPwotKwotKyAgIyBSZW1vdmUgdGhlIGNhbGwgdG8g TGlidG9vbC4KLSsgIGlmIHRlc3QgIiRsaWJ0b29sIiA9IHllczsgdGhlbgotKyAgICB3aGlsZSB0 ZXN0ICQxICE9ICctLW1vZGU9Y29tcGlsZSc7IGRvCi0rICAgICAgc2hpZnQKLSsgICAgZG9uZQot KyAgICBzaGlmdAotKyAgZmkKLSsKLSsgICMgUmVtb3ZlIGAtbyAkb2JqZWN0Jy4KLSsgIElGUz0i ICIKLSsgIGZvciBhcmcKLSsgIGRvCi0rICAgIGNhc2UgJGFyZyBpbgotKyAgICAtbykKLSsgICAg ICBzaGlmdAotKyAgICAgIDs7Ci0rICAgICRvYmplY3QpCi0rICAgICAgc2hpZnQKLSsgICAgICA7 OwotKyAgICAqKQotKyAgICAgIHNldCBmbm9yZCAiJEAiICIkYXJnIgotKyAgICAgIHNoaWZ0ICMg Zm5vcmQKLSsgICAgICBzaGlmdCAjICRhcmcKLSsgICAgICA7OwotKyAgICBlc2FjCi0rICBkb25l Ci0rCi0rICB0ZXN0IC16ICIkZGFzaG1mbGFnIiAmJiBkYXNobWZsYWc9LU0KLSsgICMgUmVxdWly ZSBhdCBsZWFzdCB0d28gY2hhcmFjdGVycyBiZWZvcmUgc2VhcmNoaW5nIGZvciBgOicKLSsgICMg aW4gdGhlIHRhcmdldCBuYW1lLiAgVGhpcyBpcyB0byBjb3BlIHdpdGggRE9TLXN0eWxlIGZpbGVu YW1lczoKLSsgICMgYSBkZXBlbmRlbmN5IHN1Y2ggYXMgYGM6L2Zvby9iYXInIGNvdWxkIGJlIHNl ZW4gYXMgdGFyZ2V0IGBjJyBvdGhlcndpc2UuCi0rICAiJEAiICRkYXNobWZsYWcgfAotKyAgICBz ZWQgJ3M6XlsgIF0qW146IF1bXjpdW146XSpcOlsgICAgXSo6JyIkb2JqZWN0IidcOiA6JyA+ICIk dG1wZGVwZmlsZSIKLSsgIHJtIC1mICIkZGVwZmlsZSIKLSsgIGNhdCA8ICIkdG1wZGVwZmlsZSIg PiAiJGRlcGZpbGUiCi0rICB0ciAnICcgJwotKycgPCAiJHRtcGRlcGZpbGUiIHwgXAotKyMjIFNv bWUgdmVyc2lvbnMgb2YgdGhlIEhQVVggMTAuMjAgc2VkIGNhbid0IHByb2Nlc3MgdGhpcyBpbnZv Y2F0aW9uCi0rIyMgY29ycmVjdGx5LiAgQnJlYWtpbmcgaXQgaW50byB0d28gc2VkIGludm9jYXRp b25zIGlzIGEgd29ya2Fyb3VuZC4KLSsgICAgc2VkIC1lICdzL15cXCQvLycgLWUgJy9eJC9kJyAt ZSAnLzokL2QnIHwgc2VkIC1lICdzLyQvIDovJyA+PiAiJGRlcGZpbGUiCi0rICBybSAtZiAiJHRt cGRlcGZpbGUiCi0rICA7OwotKwotK2Rhc2hYbXN0ZG91dCkKLSsgICMgVGhpcyBjYXNlIG9ubHkg ZXhpc3RzIHRvIHNhdGlzZnkgZGVwZW5kLm00LiAgSXQgaXMgbmV2ZXIgYWN0dWFsbHkKLSsgICMg cnVuLCBhcyB0aGlzIG1vZGUgaXMgc3BlY2lhbGx5IHJlY29nbml6ZWQgaW4gdGhlIHByZWFtYmxl LgotKyAgZXhpdCAxCi0rICA7OwotKwotK21ha2VkZXBlbmQpCi0rICAiJEAiIHx8IGV4aXQgJD8K LSsgICMgUmVtb3ZlIGFueSBMaWJ0b29sIGNhbGwKLSsgIGlmIHRlc3QgIiRsaWJ0b29sIiA9IHll czsgdGhlbgotKyAgICB3aGlsZSB0ZXN0ICQxICE9ICctLW1vZGU9Y29tcGlsZSc7IGRvCi0rICAg ICAgc2hpZnQKLSsgICAgZG9uZQotKyAgICBzaGlmdAotKyAgZmkKLSsgICMgWCBtYWtlZGVwZW5k Ci0rICBzaGlmdAotKyAgY2xlYXJlZD1ubwotKyAgZm9yIGFyZyBpbiAiJEAiOyBkbwotKyAgICBj YXNlICRjbGVhcmVkIGluCi0rICAgIG5vKQotKyAgICAgIHNldCAiIjsgc2hpZnQKLSsgICAgICBj bGVhcmVkPXllcyA7OwotKyAgICBlc2FjCi0rICAgIGNhc2UgIiRhcmciIGluCi0rICAgIC1EKnwt SSopCi0rICAgICAgc2V0IGZub3JkICIkQCIgIiRhcmciOyBzaGlmdCA7OwotKyAgICAjIFN0cmlw IGFueSBvcHRpb24gdGhhdCBtYWtlZGVwZW5kIG1heSBub3QgdW5kZXJzdGFuZC4gIFJlbW92ZQot KyAgICAjIHRoZSBvYmplY3QgdG9vLCBvdGhlcndpc2UgbWFrZWRlcGVuZCB3aWxsIHBhcnNlIGl0 IGFzIGEgc291cmNlIGZpbGUuCi0rICAgIC0qfCRvYmplY3QpCi0rICAgICAgOzsKLSsgICAgKikK LSsgICAgICBzZXQgZm5vcmQgIiRAIiAiJGFyZyI7IHNoaWZ0IDs7Ci0rICAgIGVzYWMKLSsgIGRv bmUKLSsgIG9ial9zdWZmaXg9ImBlY2hvICRvYmplY3QgfCBzZWQgJ3MvXi4qXC4vLi8nYCIKLSsg IHRvdWNoICIkdG1wZGVwZmlsZSIKLSsgICR7TUFLRURFUEVORC1tYWtlZGVwZW5kfSAtbyIkb2Jq X3N1ZmZpeCIgLWYiJHRtcGRlcGZpbGUiICIkQCIKLSsgIHJtIC1mICIkZGVwZmlsZSIKLSsgIGNh dCA8ICIkdG1wZGVwZmlsZSIgPiAiJGRlcGZpbGUiCi0rICBzZWQgJzEsMmQnICIkdG1wZGVwZmls ZSIgfCB0ciAnICcgJwotKycgfCBcCi0rIyMgU29tZSB2ZXJzaW9ucyBvZiB0aGUgSFBVWCAxMC4y MCBzZWQgY2FuJ3QgcHJvY2VzcyB0aGlzIGludm9jYXRpb24KLSsjIyBjb3JyZWN0bHkuICBCcmVh a2luZyBpdCBpbnRvIHR3byBzZWQgaW52b2NhdGlvbnMgaXMgYSB3b3JrYXJvdW5kLgotKyAgICBz ZWQgLWUgJ3MvXlxcJC8vJyAtZSAnL14kL2QnIC1lICcvOiQvZCcgfCBzZWQgLWUgJ3MvJC8gOi8n ID4+ICIkZGVwZmlsZSIKLSsgIHJtIC1mICIkdG1wZGVwZmlsZSIgIiR0bXBkZXBmaWxlIi5iYWsK LSsgIDs7Ci0rCi0rY3BwKQotKyAgIyBJbXBvcnRhbnQgbm90ZTogaW4gb3JkZXIgdG8gc3VwcG9y dCB0aGlzIG1vZGUsIGEgY29tcGlsZXIgKm11c3QqCi0rICAjIGFsd2F5cyB3cml0ZSB0aGUgcHJl cHJvY2Vzc2VkIGZpbGUgdG8gc3Rkb3V0LgotKyAgIiRAIiB8fCBleGl0ICQ/Ci0rCi0rICAjIFJl bW92ZSB0aGUgY2FsbCB0byBMaWJ0b29sLgotKyAgaWYgdGVzdCAiJGxpYnRvb2wiID0geWVzOyB0 aGVuCi0rICAgIHdoaWxlIHRlc3QgJDEgIT0gJy0tbW9kZT1jb21waWxlJzsgZG8KLSsgICAgICBz aGlmdAotKyAgICBkb25lCi0rICAgIHNoaWZ0Ci0rICBmaQotKwotKyAgIyBSZW1vdmUgYC1vICRv YmplY3QnLgotKyAgSUZTPSIgIgotKyAgZm9yIGFyZwotKyAgZG8KLSsgICAgY2FzZSAkYXJnIGlu Ci0rICAgIC1vKQotKyAgICAgIHNoaWZ0Ci0rICAgICAgOzsKLSsgICAgJG9iamVjdCkKLSsgICAg ICBzaGlmdAotKyAgICAgIDs7Ci0rICAgICopCi0rICAgICAgc2V0IGZub3JkICIkQCIgIiRhcmci Ci0rICAgICAgc2hpZnQgIyBmbm9yZAotKyAgICAgIHNoaWZ0ICMgJGFyZwotKyAgICAgIDs7Ci0r ICAgIGVzYWMKLSsgIGRvbmUKLSsKLSsgICIkQCIgLUUgfAotKyAgICBzZWQgLW4gLWUgJy9eIyBb MC05XVswLTldKiAiXChbXiJdKlwpIi4qLyBzOjogXDEgXFw6cCcgXAotKyAgICAgICAtZSAnL14j bGluZSBbMC05XVswLTldKiAiXChbXiJdKlwpIi4qLyBzOjogXDEgXFw6cCcgfAotKyAgICBzZWQg JyQgczogXFwkOjonID4gIiR0bXBkZXBmaWxlIgotKyAgcm0gLWYgIiRkZXBmaWxlIgotKyAgZWNo byAiJG9iamVjdCA6IFxcIiA+ICIkZGVwZmlsZSIKLSsgIGNhdCA8ICIkdG1wZGVwZmlsZSIgPj4g IiRkZXBmaWxlIgotKyAgc2VkIDwgIiR0bXBkZXBmaWxlIiAnL14kL2Q7cy9eIC8vO3MvIFxcJC8v O3MvJC8gOi8nID4+ICIkZGVwZmlsZSIKLSsgIHJtIC1mICIkdG1wZGVwZmlsZSIKLSsgIDs7Ci0r Ci0rbXN2aXN1YWxjcHApCi0rICAjIEltcG9ydGFudCBub3RlOiBpbiBvcmRlciB0byBzdXBwb3J0 IHRoaXMgbW9kZSwgYSBjb21waWxlciAqbXVzdCoKLSsgICMgYWx3YXlzIHdyaXRlIHRoZSBwcmVw cm9jZXNzZWQgZmlsZSB0byBzdGRvdXQsIHJlZ2FyZGxlc3Mgb2YgLW8sCi0rICAjIGJlY2F1c2Ug d2UgbXVzdCB1c2UgLW8gd2hlbiBydW5uaW5nIGxpYnRvb2wuCi0rICAiJEAiIHx8IGV4aXQgJD8K LSsgIElGUz0iICIKLSsgIGZvciBhcmcKLSsgIGRvCi0rICAgIGNhc2UgIiRhcmciIGluCi0rICAg ICItR20ifCIvR20ifCItR2kifCIvR2kifCItWkkifCIvWkkiKQotKwlzZXQgZm5vcmQgIiRAIgot KwlzaGlmdAotKwlzaGlmdAotKwk7OwotKyAgICAqKQotKwlzZXQgZm5vcmQgIiRAIiAiJGFyZyIK LSsJc2hpZnQKLSsJc2hpZnQKLSsJOzsKLSsgICAgZXNhYwotKyAgZG9uZQotKyAgIiRAIiAtRSB8 Ci0rICBzZWQgLW4gJy9eI2xpbmUgWzAtOV1bMC05XSogIlwoW14iXSpcKSIvIHM6OmVjaG8gImBj eWdwYXRoIC11IFxcIlwxXFwiYCI6cCcgfCBzb3J0IHwgdW5pcSA+ICIkdG1wZGVwZmlsZSIKLSsg IHJtIC1mICIkZGVwZmlsZSIKLSsgIGVjaG8gIiRvYmplY3QgOiBcXCIgPiAiJGRlcGZpbGUiCi0r ICAuICIkdG1wZGVwZmlsZSIgfCBzZWQgJ3MlICVcXCAlZycgfCBzZWQgLW4gJy9eXCguKlwpJC8g czo6CVwxIFxcOnAnID4+ICIkZGVwZmlsZSIKLSsgIGVjaG8gIgkiID4+ICIkZGVwZmlsZSIKLSsg IC4gIiR0bXBkZXBmaWxlIiB8IHNlZCAncyUgJVxcICVnJyB8IHNlZCAtbiAnL15cKC4qXCkkLyBz OjpcMVw6OnAnID4+ICIkZGVwZmlsZSIKLSsgIHJtIC1mICIkdG1wZGVwZmlsZSIKLSsgIDs7Ci0r Ci0rbm9uZSkKLSsgIGV4ZWMgIiRAIgotKyAgOzsKLSsKLSsqKQotKyAgZWNobyAiVW5rbm93biBk ZXBtb2RlICRkZXBtb2RlIiAxPiYyCi0rICBleGl0IDEKLSsgIDs7Ci0rZXNhYwotKwotK2V4aXQg MAotKwotKyMgTG9jYWwgVmFyaWFibGVzOgotKyMgbW9kZTogc2hlbGwtc2NyaXB0Ci0rIyBzaC1p bmRlbnRhdGlvbjogMgotKyMgZXZhbDogKGFkZC1ob29rICd3cml0ZS1maWxlLWhvb2tzICd0aW1l LXN0YW1wKQotKyMgdGltZS1zdGFtcC1zdGFydDogInNjcmlwdHZlcnNpb249IgotKyMgdGltZS1z dGFtcC1mb3JtYXQ6ICIlOnktJTAybS0lMDJkLiUwMkgiCi0rIyB0aW1lLXN0YW1wLWVuZDogIiQi Ci0rIyBFbmQ6Ci1kaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svY29uZmlnL2luc3RhbGwtc2gg c29jaS0zLjAuMF90cmVwMzAwL2NvbmZpZy9pbnN0YWxsLXNoCi0tLS0gc29jaS0zLjAuMF80LXBh Y2svY29uZmlnL2luc3RhbGwtc2gJMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAK LSsrKyBzb2NpLTMuMC4wX3RyZXAzMDAvY29uZmlnL2luc3RhbGwtc2gJMjAwOS0wNS0yMyAxMDow MjowMS4wMDAwMDAwMDAgKzAyMDAKLUBAIC0wLDAgKzEsNTE5IEBACi0rIyEvYmluL3NoCi0rIyBp bnN0YWxsIC0gaW5zdGFsbCBhIHByb2dyYW0sIHNjcmlwdCwgb3IgZGF0YWZpbGUKLSsKLStzY3Jp cHR2ZXJzaW9uPTIwMDYtMTItMjUuMDAKLSsKLSsjIFRoaXMgb3JpZ2luYXRlcyBmcm9tIFgxMVI1 IChtaXQvdXRpbC9zY3JpcHRzL2luc3RhbGwuc2gpLCB3aGljaCB3YXMKLSsjIGxhdGVyIHJlbGVh c2VkIGluIFgxMVI2ICh4Yy9jb25maWcvdXRpbC9pbnN0YWxsLnNoKSB3aXRoIHRoZQotKyMgZm9s bG93aW5nIGNvcHlyaWdodCBhbmQgbGljZW5zZS4KLSsjCi0rIyBDb3B5cmlnaHQgKEMpIDE5OTQg WCBDb25zb3J0aXVtCi0rIwotKyMgUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBv ZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weQotKyMgb2YgdGhpcyBzb2Z0 d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiks IHRvCi0rIyBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRp bmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZQotKyMgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5 LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yCi0rIyBzZWxs IGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRo ZSBTb2Z0d2FyZSBpcwotKyMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xs b3dpbmcgY29uZGl0aW9uczoKLSsjCi0rIyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQg dGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpbgotKyMgYWxsIGNvcGll cyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuCi0rIwotKyMgVEhFIFNP RlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQs IEVYUFJFU1MgT1IKLSsjIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhF IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAotKyMgRklUTkVTUyBGT1IgQSBQQVJUSUNV TEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gIElOIE5PIEVWRU5UIFNIQUxMIFRIRQot KyMgWCBDT05TT1JUSVVNIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVS IExJQUJJTElUWSwgV0hFVEhFUiBJTgotKyMgQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9S IE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDLQotKyMgVElPTiBX SVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRSBTT0ZU V0FSRS4KLSsjCi0rIyBFeGNlcHQgYXMgY29udGFpbmVkIGluIHRoaXMgbm90aWNlLCB0aGUgbmFt ZSBvZiB0aGUgWCBDb25zb3J0aXVtIHNoYWxsIG5vdAotKyMgYmUgdXNlZCBpbiBhZHZlcnRpc2lu ZyBvciBvdGhlcndpc2UgdG8gcHJvbW90ZSB0aGUgc2FsZSwgdXNlIG9yIG90aGVyIGRlYWwtCi0r IyBpbmdzIGluIHRoaXMgU29mdHdhcmUgd2l0aG91dCBwcmlvciB3cml0dGVuIGF1dGhvcml6YXRp b24gZnJvbSB0aGUgWCBDb25zb3ItCi0rIyB0aXVtLgotKyMKLSsjCi0rIyBGU0YgY2hhbmdlcyB0 byB0aGlzIGZpbGUgYXJlIGluIHRoZSBwdWJsaWMgZG9tYWluLgotKyMKLSsjIENhbGxpbmcgdGhp cyBzY3JpcHQgaW5zdGFsbC1zaCBpcyBwcmVmZXJyZWQgb3ZlciBpbnN0YWxsLnNoLCB0byBwcmV2 ZW50Ci0rIyBgbWFrZScgaW1wbGljaXQgcnVsZXMgZnJvbSBjcmVhdGluZyBhIGZpbGUgY2FsbGVk IGluc3RhbGwgZnJvbSBpdAotKyMgd2hlbiB0aGVyZSBpcyBubyBNYWtlZmlsZS4KLSsjCi0rIyBU aGlzIHNjcmlwdCBpcyBjb21wYXRpYmxlIHdpdGggdGhlIEJTRCBpbnN0YWxsIHNjcmlwdCwgYnV0 IHdhcyB3cml0dGVuCi0rIyBmcm9tIHNjcmF0Y2guCi0rCi0rbmw9JwotKycKLStJRlM9IiAiIgkk bmwiCi0rCi0rIyBzZXQgRE9JVFBST0cgdG8gZWNobyB0byB0ZXN0IHRoaXMgc2NyaXB0Ci0rCi0r IyBEb24ndCB1c2UgOi0gc2luY2UgNC4zQlNEIGFuZCBlYXJsaWVyIHNoZWxscyBkb24ndCBsaWtl IGl0LgotK2RvaXQ9JHtET0lUUFJPRy19Ci0raWYgdGVzdCAteiAiJGRvaXQiOyB0aGVuCi0rICBk b2l0X2V4ZWM9ZXhlYwotK2Vsc2UKLSsgIGRvaXRfZXhlYz0kZG9pdAotK2ZpCi0rCi0rIyBQdXQg aW4gYWJzb2x1dGUgZmlsZSBuYW1lcyBpZiB5b3UgZG9uJ3QgaGF2ZSB0aGVtIGluIHlvdXIgcGF0 aDsKLSsjIG9yIHVzZSBlbnZpcm9ubWVudCB2YXJzLgotKwotK2NoZ3JwcHJvZz0ke0NIR1JQUFJP Ry1jaGdycH0KLStjaG1vZHByb2c9JHtDSE1PRFBST0ctY2htb2R9Ci0rY2hvd25wcm9nPSR7Q0hP V05QUk9HLWNob3dufQotK2NtcHByb2c9JHtDTVBQUk9HLWNtcH0KLStjcHByb2c9JHtDUFBST0ct Y3B9Ci0rbWtkaXJwcm9nPSR7TUtESVJQUk9HLW1rZGlyfQotK212cHJvZz0ke01WUFJPRy1tdn0K LStybXByb2c9JHtSTVBST0ctcm19Ci0rc3RyaXBwcm9nPSR7U1RSSVBQUk9HLXN0cmlwfQotKwot K3Bvc2l4X2dsb2I9Jz8nCi0raW5pdGlhbGl6ZV9wb3NpeF9nbG9iPScKLSsgIHRlc3QgIiRwb3Np eF9nbG9iIiAhPSAiPyIgfHwgewotKyAgICBpZiAoc2V0IC1mKSAyPi9kZXYvbnVsbDsgdGhlbgot KyAgICAgIHBvc2l4X2dsb2I9Ci0rICAgIGVsc2UKLSsgICAgICBwb3NpeF9nbG9iPToKLSsgICAg ZmkKLSsgIH0KLSsnCi0rCi0rcG9zaXhfbWtkaXI9Ci0rCi0rIyBEZXNpcmVkIG1vZGUgb2YgaW5z dGFsbGVkIGZpbGUuCi0rbW9kZT0wNzU1Ci0rCi0rY2hncnBjbWQ9Ci0rY2htb2RjbWQ9JGNobW9k cHJvZwotK2Nob3duY21kPQotK212Y21kPSRtdnByb2cKLStybWNtZD0iJHJtcHJvZyAtZiIKLStz dHJpcGNtZD0KLSsKLStzcmM9Ci0rZHN0PQotK2Rpcl9hcmc9Ci0rZHN0X2FyZz0KLSsKLStjb3B5 X29uX2NoYW5nZT1mYWxzZQotK25vX3RhcmdldF9kaXJlY3Rvcnk9Ci0rCi0rdXNhZ2U9IlwKLStV c2FnZTogJDAgW09QVElPTl0uLi4gWy1UXSBTUkNGSUxFIERTVEZJTEUKLSsgICBvcjogJDAgW09Q VElPTl0uLi4gU1JDRklMRVMuLi4gRElSRUNUT1JZCi0rICAgb3I6ICQwIFtPUFRJT05dLi4uIC10 IERJUkVDVE9SWSBTUkNGSUxFUy4uLgotKyAgIG9yOiAkMCBbT1BUSU9OXS4uLiAtZCBESVJFQ1RP UklFUy4uLgotKwotK0luIHRoZSAxc3QgZm9ybSwgY29weSBTUkNGSUxFIHRvIERTVEZJTEUuCi0r SW4gdGhlIDJuZCBhbmQgM3JkLCBjb3B5IGFsbCBTUkNGSUxFUyB0byBESVJFQ1RPUlkuCi0rSW4g dGhlIDR0aCwgY3JlYXRlIERJUkVDVE9SSUVTLgotKwotK09wdGlvbnM6Ci0rICAgICAtLWhlbHAg ICAgIGRpc3BsYXkgdGhpcyBoZWxwIGFuZCBleGl0LgotKyAgICAgLS12ZXJzaW9uICBkaXNwbGF5 IHZlcnNpb24gaW5mbyBhbmQgZXhpdC4KLSsKLSsgIC1jICAgICAgICAgICAgKGlnbm9yZWQpCi0r ICAtQyAgICAgICAgICAgIGluc3RhbGwgb25seSBpZiBkaWZmZXJlbnQgKHByZXNlcnZlIHRoZSBs YXN0IGRhdGEgbW9kaWZpY2F0aW9uIHRpbWUpCi0rICAtZCAgICAgICAgICAgIGNyZWF0ZSBkaXJl Y3RvcmllcyBpbnN0ZWFkIG9mIGluc3RhbGxpbmcgZmlsZXMuCi0rICAtZyBHUk9VUCAgICAgICRj aGdycHByb2cgaW5zdGFsbGVkIGZpbGVzIHRvIEdST1VQLgotKyAgLW0gTU9ERSAgICAgICAkY2ht b2Rwcm9nIGluc3RhbGxlZCBmaWxlcyB0byBNT0RFLgotKyAgLW8gVVNFUiAgICAgICAkY2hvd25w cm9nIGluc3RhbGxlZCBmaWxlcyB0byBVU0VSLgotKyAgLXMgICAgICAgICAgICAkc3RyaXBwcm9n IGluc3RhbGxlZCBmaWxlcy4KLSsgIC10IERJUkVDVE9SWSAgaW5zdGFsbCBpbnRvIERJUkVDVE9S WS4KLSsgIC1UICAgICAgICAgICAgcmVwb3J0IGFuIGVycm9yIGlmIERTVEZJTEUgaXMgYSBkaXJl Y3RvcnkuCi0rCi0rRW52aXJvbm1lbnQgdmFyaWFibGVzIG92ZXJyaWRlIHRoZSBkZWZhdWx0IGNv bW1hbmRzOgotKyAgQ0hHUlBQUk9HIENITU9EUFJPRyBDSE9XTlBST0cgQ01QUFJPRyBDUFBST0cg TUtESVJQUk9HIE1WUFJPRwotKyAgUk1QUk9HIFNUUklQUFJPRwotKyIKLSsKLSt3aGlsZSB0ZXN0 ICQjIC1uZSAwOyBkbwotKyAgY2FzZSAkMSBpbgotKyAgICAtYykgOzsKLSsKLSsgICAgLUMpIGNv cHlfb25fY2hhbmdlPXRydWU7OwotKwotKyAgICAtZCkgZGlyX2FyZz10cnVlOzsKLSsKLSsgICAg LWcpIGNoZ3JwY21kPSIkY2hncnBwcm9nICQyIgotKwlzaGlmdDs7Ci0rCi0rICAgIC0taGVscCkg ZWNobyAiJHVzYWdlIjsgZXhpdCAkPzs7Ci0rCi0rICAgIC1tKSBtb2RlPSQyCi0rCWNhc2UgJG1v ZGUgaW4KLSsJICAqJyAnKiB8IConCScqIHwgKicKLSsnKgkgIHwgKicqJyogfCAqJz8nKiB8ICon WycqKQotKwkgICAgZWNobyAiJDA6IGludmFsaWQgbW9kZTogJG1vZGUiID4mMgotKwkgICAgZXhp dCAxOzsKLSsJZXNhYwotKwlzaGlmdDs7Ci0rCi0rICAgIC1vKSBjaG93bmNtZD0iJGNob3ducHJv ZyAkMiIKLSsJc2hpZnQ7OwotKwotKyAgICAtcykgc3RyaXBjbWQ9JHN0cmlwcHJvZzs7Ci0rCi0r ICAgIC10KSBkc3RfYXJnPSQyCi0rCXNoaWZ0OzsKLSsKLSsgICAgLVQpIG5vX3RhcmdldF9kaXJl Y3Rvcnk9dHJ1ZTs7Ci0rCi0rICAgIC0tdmVyc2lvbikgZWNobyAiJDAgJHNjcmlwdHZlcnNpb24i OyBleGl0ICQ/OzsKLSsKLSsgICAgLS0pCXNoaWZ0Ci0rCWJyZWFrOzsKLSsKLSsgICAgLSopCWVj aG8gIiQwOiBpbnZhbGlkIG9wdGlvbjogJDEiID4mMgotKwlleGl0IDE7OwotKwotKyAgICAqKSAg YnJlYWs7OwotKyAgZXNhYwotKyAgc2hpZnQKLStkb25lCi0rCi0raWYgdGVzdCAkIyAtbmUgMCAm JiB0ZXN0IC16ICIkZGlyX2FyZyRkc3RfYXJnIjsgdGhlbgotKyAgIyBXaGVuIC1kIGlzIHVzZWQs IGFsbCByZW1haW5pbmcgYXJndW1lbnRzIGFyZSBkaXJlY3RvcmllcyB0byBjcmVhdGUuCi0rICAj IFdoZW4gLXQgaXMgdXNlZCwgdGhlIGRlc3RpbmF0aW9uIGlzIGFscmVhZHkgc3BlY2lmaWVkLgot KyAgIyBPdGhlcndpc2UsIHRoZSBsYXN0IGFyZ3VtZW50IGlzIHRoZSBkZXN0aW5hdGlvbi4gIFJl bW92ZSBpdCBmcm9tICRALgotKyAgZm9yIGFyZwotKyAgZG8KLSsgICAgaWYgdGVzdCAtbiAiJGRz dF9hcmciOyB0aGVuCi0rICAgICAgIyAkQCBpcyBub3QgZW1wdHk6IGl0IGNvbnRhaW5zIGF0IGxl YXN0ICRhcmcuCi0rICAgICAgc2V0IGZub3JkICIkQCIgIiRkc3RfYXJnIgotKyAgICAgIHNoaWZ0 ICMgZm5vcmQKLSsgICAgZmkKLSsgICAgc2hpZnQgIyBhcmcKLSsgICAgZHN0X2FyZz0kYXJnCi0r ICBkb25lCi0rZmkKLSsKLStpZiB0ZXN0ICQjIC1lcSAwOyB0aGVuCi0rICBpZiB0ZXN0IC16ICIk ZGlyX2FyZyI7IHRoZW4KLSsgICAgZWNobyAiJDA6IG5vIGlucHV0IGZpbGUgc3BlY2lmaWVkLiIg PiYyCi0rICAgIGV4aXQgMQotKyAgZmkKLSsgICMgSXQncyBPSyB0byBjYWxsIGBpbnN0YWxsLXNo IC1kJyB3aXRob3V0IGFyZ3VtZW50LgotKyAgIyBUaGlzIGNhbiBoYXBwZW4gd2hlbiBjcmVhdGlu ZyBjb25kaXRpb25hbCBkaXJlY3Rvcmllcy4KLSsgIGV4aXQgMAotK2ZpCi0rCi0raWYgdGVzdCAt eiAiJGRpcl9hcmciOyB0aGVuCi0rICB0cmFwICcoZXhpdCAkPyk7IGV4aXQnIDEgMiAxMyAxNQot KwotKyAgIyBTZXQgdW1hc2sgc28gYXMgbm90IHRvIGNyZWF0ZSB0ZW1wcyB3aXRoIHRvby1nZW5l cm91cyBtb2Rlcy4KLSsgICMgSG93ZXZlciwgJ3N0cmlwJyByZXF1aXJlcyBib3RoIHJlYWQgYW5k IHdyaXRlIGFjY2VzcyB0byB0ZW1wcy4KLSsgIGNhc2UgJG1vZGUgaW4KLSsgICAgIyBPcHRpbWl6 ZSBjb21tb24gY2FzZXMuCi0rICAgICo2NDQpIGNwX3VtYXNrPTEzMzs7Ci0rICAgICo3NTUpIGNw X3VtYXNrPTIyOzsKLSsKLSsgICAgKlswLTddKQotKyAgICAgIGlmIHRlc3QgLXogIiRzdHJpcGNt ZCI7IHRoZW4KLSsJdV9wbHVzX3J3PQotKyAgICAgIGVsc2UKLSsJdV9wbHVzX3J3PSclIDIwMCcK LSsgICAgICBmaQotKyAgICAgIGNwX3VtYXNrPWBleHByICcoJyA3NzcgLSAkbW9kZSAlIDEwMDAg JyknICR1X3BsdXNfcndgOzsKLSsgICAgKikKLSsgICAgICBpZiB0ZXN0IC16ICIkc3RyaXBjbWQi OyB0aGVuCi0rCXVfcGx1c19ydz0KLSsgICAgICBlbHNlCi0rCXVfcGx1c19ydz0sdStydwotKyAg ICAgIGZpCi0rICAgICAgY3BfdW1hc2s9JG1vZGUkdV9wbHVzX3J3OzsKLSsgIGVzYWMKLStmaQot KwotK2ZvciBzcmMKLStkbwotKyAgIyBQcm90ZWN0IG5hbWVzIHN0YXJ0aW5nIHdpdGggYC0nLgot KyAgY2FzZSAkc3JjIGluCi0rICAgIC0qKSBzcmM9Li8kc3JjOzsKLSsgIGVzYWMKLSsKLSsgIGlm IHRlc3QgLW4gIiRkaXJfYXJnIjsgdGhlbgotKyAgICBkc3Q9JHNyYwotKyAgICBkc3RkaXI9JGRz dAotKyAgICB0ZXN0IC1kICIkZHN0ZGlyIgotKyAgICBkc3RkaXJfc3RhdHVzPSQ/Ci0rICBlbHNl Ci0rCi0rICAgICMgV2FpdGluZyBmb3IgdGhpcyB0byBiZSBkZXRlY3RlZCBieSB0aGUgIiRjcHBy b2cgJHNyYyAkZHN0dG1wIiBjb21tYW5kCi0rICAgICMgbWlnaHQgY2F1c2UgZGlyZWN0b3JpZXMg dG8gYmUgY3JlYXRlZCwgd2hpY2ggd291bGQgYmUgZXNwZWNpYWxseSBiYWQKLSsgICAgIyBpZiAk c3JjIChhbmQgdGh1cyAkZHN0dG1wKSBjb250YWlucyAnKicuCi0rICAgIGlmIHRlc3QgISAtZiAi JHNyYyIgJiYgdGVzdCAhIC1kICIkc3JjIjsgdGhlbgotKyAgICAgIGVjaG8gIiQwOiAkc3JjIGRv ZXMgbm90IGV4aXN0LiIgPiYyCi0rICAgICAgZXhpdCAxCi0rICAgIGZpCi0rCi0rICAgIGlmIHRl c3QgLXogIiRkc3RfYXJnIjsgdGhlbgotKyAgICAgIGVjaG8gIiQwOiBubyBkZXN0aW5hdGlvbiBz cGVjaWZpZWQuIiA+JjIKLSsgICAgICBleGl0IDEKLSsgICAgZmkKLSsKLSsgICAgZHN0PSRkc3Rf YXJnCi0rICAgICMgUHJvdGVjdCBuYW1lcyBzdGFydGluZyB3aXRoIGAtJy4KLSsgICAgY2FzZSAk ZHN0IGluCi0rICAgICAgLSopIGRzdD0uLyRkc3Q7OwotKyAgICBlc2FjCi0rCi0rICAgICMgSWYg ZGVzdGluYXRpb24gaXMgYSBkaXJlY3RvcnksIGFwcGVuZCB0aGUgaW5wdXQgZmlsZW5hbWU7IHdv bid0IHdvcmsKLSsgICAgIyBpZiBkb3VibGUgc2xhc2hlcyBhcmVuJ3QgaWdub3JlZC4KLSsgICAg aWYgdGVzdCAtZCAiJGRzdCI7IHRoZW4KLSsgICAgICBpZiB0ZXN0IC1uICIkbm9fdGFyZ2V0X2Rp cmVjdG9yeSI7IHRoZW4KLSsJZWNobyAiJDA6ICRkc3RfYXJnOiBJcyBhIGRpcmVjdG9yeSIgPiYy Ci0rCWV4aXQgMQotKyAgICAgIGZpCi0rICAgICAgZHN0ZGlyPSRkc3QKLSsgICAgICBkc3Q9JGRz dGRpci9gYmFzZW5hbWUgIiRzcmMiYAotKyAgICAgIGRzdGRpcl9zdGF0dXM9MAotKyAgICBlbHNl Ci0rICAgICAgIyBQcmVmZXIgZGlybmFtZSwgYnV0IGZhbGwgYmFjayBvbiBhIHN1YnN0aXR1dGUg aWYgZGlybmFtZSBmYWlscy4KLSsgICAgICBkc3RkaXI9YAotKwkoZGlybmFtZSAiJGRzdCIpIDI+ L2Rldi9udWxsIHx8Ci0rCWV4cHIgWCIkZHN0IiA6ICdYXCguKlteL11cKS8vKlteL11bXi9dKi8q JCcgXHwgXAotKwkgICAgIFgiJGRzdCIgOiAnWFwoLy9cKVteL10nIFx8IFwKLSsJICAgICBYIiRk c3QiIDogJ1hcKC8vXCkkJyBcfCBcCi0rCSAgICAgWCIkZHN0IiA6ICdYXCgvXCknIFx8IC4gMj4v ZGV2L251bGwgfHwKLSsJZWNobyBYIiRkc3QiIHwKLSsJICAgIHNlZCAnL15YXCguKlteL11cKVwv XC8qW14vXVteL10qXC8qJC97Ci0rCQkgICBzLy9cMS8KLSsJCSAgIHEKLSsJCSB9Ci0rCQkgL15Y XChcL1wvXClbXi9dLiovewotKwkJICAgcy8vXDEvCi0rCQkgICBxCi0rCQkgfQotKwkJIC9eWFwo XC9cL1wpJC97Ci0rCQkgICBzLy9cMS8KLSsJCSAgIHEKLSsJCSB9Ci0rCQkgL15YXChcL1wpLiov ewotKwkJICAgcy8vXDEvCi0rCQkgICBxCi0rCQkgfQotKwkJIHMvLiovLi87IHEnCi0rICAgICAg YAotKwotKyAgICAgIHRlc3QgLWQgIiRkc3RkaXIiCi0rICAgICAgZHN0ZGlyX3N0YXR1cz0kPwot KyAgICBmaQotKyAgZmkKLSsKLSsgIG9ic29sZXRlX21rZGlyX3VzZWQ9ZmFsc2UKLSsKLSsgIGlm IHRlc3QgJGRzdGRpcl9zdGF0dXMgIT0gMDsgdGhlbgotKyAgICBjYXNlICRwb3NpeF9ta2RpciBp bgotKyAgICAgICcnKQotKwkjIENyZWF0ZSBpbnRlcm1lZGlhdGUgZGlycyB1c2luZyBtb2RlIDc1 NSBhcyBtb2RpZmllZCBieSB0aGUgdW1hc2suCi0rCSMgVGhpcyBpcyBsaWtlIEZyZWVCU0QgJ2lu c3RhbGwnIGFzIG9mIDE5OTctMTAtMjguCi0rCXVtYXNrPWB1bWFza2AKLSsJY2FzZSAkc3RyaXBj bWQuJHVtYXNrIGluCi0rCSAgIyBPcHRpbWl6ZSBjb21tb24gY2FzZXMuCi0rCSAgKlsyMzY3XVsy MzY3XSkgbWtkaXJfdW1hc2s9JHVtYXNrOzsKLSsJICAuKjBbMDJdWzAyXSB8IC5bMDJdWzAyXSB8 IC5bMDJdKSBta2Rpcl91bWFzaz0yMjs7Ci0rCi0rCSAgKlswLTddKQotKwkgICAgbWtkaXJfdW1h c2s9YGV4cHIgJHVtYXNrICsgMjIgXAotKwkgICAgICAtICR1bWFzayAlIDEwMCAlIDQwICsgJHVt YXNrICUgMjAgXAotKwkgICAgICAtICR1bWFzayAlIDEwICUgNCArICR1bWFzayAlIDIKLSsJICAg IGA7OwotKwkgICopIG1rZGlyX3VtYXNrPSR1bWFzayxnby13OzsKLSsJZXNhYwotKwotKwkjIFdp dGggLWQsIGNyZWF0ZSB0aGUgbmV3IGRpcmVjdG9yeSB3aXRoIHRoZSB1c2VyLXNwZWNpZmllZCBt b2RlLgotKwkjIE90aGVyd2lzZSwgcmVseSBvbiAkbWtkaXJfdW1hc2suCi0rCWlmIHRlc3QgLW4g IiRkaXJfYXJnIjsgdGhlbgotKwkgIG1rZGlyX21vZGU9LW0kbW9kZQotKwllbHNlCi0rCSAgbWtk aXJfbW9kZT0KLSsJZmkKLSsKLSsJcG9zaXhfbWtkaXI9ZmFsc2UKLSsJY2FzZSAkdW1hc2sgaW4K LSsJICAqWzEyMzU2N11bMC03XVswLTddKQotKwkgICAgIyBQT1NJWCBta2RpciAtcCBzZXRzIHUr d3ggYml0cyByZWdhcmRsZXNzIG9mIHVtYXNrLCB3aGljaAotKwkgICAgIyBpcyBpbmNvbXBhdGli bGUgd2l0aCBGcmVlQlNEICdpbnN0YWxsJyB3aGVuICh1bWFzayAmIDMwMCkgIT0gMC4KLSsJICAg IDs7Ci0rCSAgKikKLSsJICAgIHRtcGRpcj0ke1RNUERJUi0vdG1wfS9pbnMkUkFORE9NLSQkCi0r CSAgICB0cmFwICdyZXQ9JD87IHJtZGlyICIkdG1wZGlyL2QiICIkdG1wZGlyIiAyPi9kZXYvbnVs bDsgZXhpdCAkcmV0JyAwCi0rCi0rCSAgICBpZiAodW1hc2sgJG1rZGlyX3VtYXNrICYmCi0rCQll eGVjICRta2RpcnByb2cgJG1rZGlyX21vZGUgLXAgLS0gIiR0bXBkaXIvZCIpID4vZGV2L251bGwg Mj4mMQotKwkgICAgdGhlbgotKwkgICAgICBpZiB0ZXN0IC16ICIkZGlyX2FyZyIgfHwgewotKwkJ ICAgIyBDaGVjayBmb3IgUE9TSVggaW5jb21wYXRpYmlsaXRpZXMgd2l0aCAtbS4KLSsJCSAgICMg SFAtVVggMTEuMjMgYW5kIElSSVggNi41IG1rZGlyIC1tIC1wIHNldHMgZ3JvdXAtIG9yCi0rCQkg ICAjIG90aGVyLXdyaXRlYWJsZSBiaXQgb2YgcGFyZW50IGRpcmVjdG9yeSB3aGVuIGl0IHNob3Vs ZG4ndC4KLSsJCSAgICMgRnJlZUJTRCA2LjEgbWtkaXIgLW0gLXAgc2V0cyBtb2RlIG9mIGV4aXN0 aW5nIGRpcmVjdG9yeS4KLSsJCSAgIGxzX2xkX3RtcGRpcj1gbHMgLWxkICIkdG1wZGlyImAKLSsJ CSAgIGNhc2UgJGxzX2xkX3RtcGRpciBpbgotKwkJICAgICBkPz8/Py0/ci0qKSBkaWZmZXJlbnRf bW9kZT03MDA7OwotKwkJICAgICBkPz8/Py0/LS0qKSBkaWZmZXJlbnRfbW9kZT03NTU7OwotKwkJ ICAgICAqKSBmYWxzZTs7Ci0rCQkgICBlc2FjICYmCi0rCQkgICAkbWtkaXJwcm9nIC1tJGRpZmZl cmVudF9tb2RlIC1wIC0tICIkdG1wZGlyIiAmJiB7Ci0rCQkgICAgIGxzX2xkX3RtcGRpcl8xPWBs cyAtbGQgIiR0bXBkaXIiYAotKwkJICAgICB0ZXN0ICIkbHNfbGRfdG1wZGlyIiA9ICIkbHNfbGRf dG1wZGlyXzEiCi0rCQkgICB9Ci0rCQkgfQotKwkgICAgICB0aGVuIHBvc2l4X21rZGlyPToKLSsJ ICAgICAgZmkKLSsJICAgICAgcm1kaXIgIiR0bXBkaXIvZCIgIiR0bXBkaXIiCi0rCSAgICBlbHNl Ci0rCSAgICAgICMgUmVtb3ZlIGFueSBkaXJzIGxlZnQgYmVoaW5kIGJ5IGFuY2llbnQgbWtkaXIg aW1wbGVtZW50YXRpb25zLgotKwkgICAgICBybWRpciAuLyRta2Rpcl9tb2RlIC4vLXAgLi8tLSAy Pi9kZXYvbnVsbAotKwkgICAgZmkKLSsJICAgIHRyYXAgJycgMDs7Ci0rCWVzYWM7OwotKyAgICBl c2FjCi0rCi0rICAgIGlmCi0rICAgICAgJHBvc2l4X21rZGlyICYmICgKLSsJdW1hc2sgJG1rZGly X3VtYXNrICYmCi0rCSRkb2l0X2V4ZWMgJG1rZGlycHJvZyAkbWtkaXJfbW9kZSAtcCAtLSAiJGRz dGRpciIKLSsgICAgICApCi0rICAgIHRoZW4gOgotKyAgICBlbHNlCi0rCi0rICAgICAgIyBUaGUg dW1hc2sgaXMgcmlkaWN1bG91cywgb3IgbWtkaXIgZG9lcyBub3QgY29uZm9ybSB0byBQT1NJWCwK LSsgICAgICAjIG9yIGl0IGZhaWxlZCBwb3NzaWJseSBkdWUgdG8gYSByYWNlIGNvbmRpdGlvbi4g IENyZWF0ZSB0aGUKLSsgICAgICAjIGRpcmVjdG9yeSB0aGUgc2xvdyB3YXksIHN0ZXAgYnkgc3Rl cCwgY2hlY2tpbmcgZm9yIHJhY2VzIGFzIHdlIGdvLgotKwotKyAgICAgIGNhc2UgJGRzdGRpciBp bgotKwkvKikgcHJlZml4PScvJzs7Ci0rCS0qKSBwcmVmaXg9Jy4vJzs7Ci0rCSopICBwcmVmaXg9 Jyc7OwotKyAgICAgIGVzYWMKLSsKLSsgICAgICBldmFsICIkaW5pdGlhbGl6ZV9wb3NpeF9nbG9i IgotKwotKyAgICAgIG9JRlM9JElGUwotKyAgICAgIElGUz0vCi0rICAgICAgJHBvc2l4X2dsb2Ig c2V0IC1mCi0rICAgICAgc2V0IGZub3JkICRkc3RkaXIKLSsgICAgICBzaGlmdAotKyAgICAgICRw b3NpeF9nbG9iIHNldCArZgotKyAgICAgIElGUz0kb0lGUwotKwotKyAgICAgIHByZWZpeGVzPQot KwotKyAgICAgIGZvciBkCi0rICAgICAgZG8KLSsJdGVzdCAteiAiJGQiICYmIGNvbnRpbnVlCi0r Ci0rCXByZWZpeD0kcHJlZml4JGQKLSsJaWYgdGVzdCAtZCAiJHByZWZpeCI7IHRoZW4KLSsJICBw cmVmaXhlcz0KLSsJZWxzZQotKwkgIGlmICRwb3NpeF9ta2RpcjsgdGhlbgotKwkgICAgKHVtYXNr PSRta2Rpcl91bWFzayAmJgotKwkgICAgICRkb2l0X2V4ZWMgJG1rZGlycHJvZyAkbWtkaXJfbW9k ZSAtcCAtLSAiJGRzdGRpciIpICYmIGJyZWFrCi0rCSAgICAjIERvbid0IGZhaWwgaWYgdHdvIGlu c3RhbmNlcyBhcmUgcnVubmluZyBjb25jdXJyZW50bHkuCi0rCSAgICB0ZXN0IC1kICIkcHJlZml4 IiB8fCBleGl0IDEKLSsJICBlbHNlCi0rCSAgICBjYXNlICRwcmVmaXggaW4KLSsJICAgICAgKlwn KikgcXByZWZpeD1gZWNobyAiJHByZWZpeCIgfCBzZWQgInMvJy8nXFxcXFxcXFwnJy9nImA7Owot KwkgICAgICAqKSBxcHJlZml4PSRwcmVmaXg7OwotKwkgICAgZXNhYwotKwkgICAgcHJlZml4ZXM9 IiRwcmVmaXhlcyAnJHFwcmVmaXgnIgotKwkgIGZpCi0rCWZpCi0rCXByZWZpeD0kcHJlZml4Lwot KyAgICAgIGRvbmUKLSsKLSsgICAgICBpZiB0ZXN0IC1uICIkcHJlZml4ZXMiOyB0aGVuCi0rCSMg RG9uJ3QgZmFpbCBpZiB0d28gaW5zdGFuY2VzIGFyZSBydW5uaW5nIGNvbmN1cnJlbnRseS4KLSsJ KHVtYXNrICRta2Rpcl91bWFzayAmJgotKwkgZXZhbCAiXCRkb2l0X2V4ZWMgXCRta2RpcnByb2cg JHByZWZpeGVzIikgfHwKLSsJICB0ZXN0IC1kICIkZHN0ZGlyIiB8fCBleGl0IDEKLSsJb2Jzb2xl dGVfbWtkaXJfdXNlZD10cnVlCi0rICAgICAgZmkKLSsgICAgZmkKLSsgIGZpCi0rCi0rICBpZiB0 ZXN0IC1uICIkZGlyX2FyZyI7IHRoZW4KLSsgICAgeyB0ZXN0IC16ICIkY2hvd25jbWQiIHx8ICRk b2l0ICRjaG93bmNtZCAiJGRzdCI7IH0gJiYKLSsgICAgeyB0ZXN0IC16ICIkY2hncnBjbWQiIHx8 ICRkb2l0ICRjaGdycGNtZCAiJGRzdCI7IH0gJiYKLSsgICAgeyB0ZXN0ICIkb2Jzb2xldGVfbWtk aXJfdXNlZCRjaG93bmNtZCRjaGdycGNtZCIgPSBmYWxzZSB8fAotKyAgICAgIHRlc3QgLXogIiRj aG1vZGNtZCIgfHwgJGRvaXQgJGNobW9kY21kICRtb2RlICIkZHN0IjsgfSB8fCBleGl0IDEKLSsg IGVsc2UKLSsKLSsgICAgIyBNYWtlIGEgY291cGxlIG9mIHRlbXAgZmlsZSBuYW1lcyBpbiB0aGUg cHJvcGVyIGRpcmVjdG9yeS4KLSsgICAgZHN0dG1wPSRkc3RkaXIvX2luc3QuJCRfCi0rICAgIHJt dG1wPSRkc3RkaXIvX3JtLiQkXwotKwotKyAgICAjIFRyYXAgdG8gY2xlYW4gdXAgdGhvc2UgdGVt cCBmaWxlcyBhdCBleGl0LgotKyAgICB0cmFwICdyZXQ9JD87IHJtIC1mICIkZHN0dG1wIiAiJHJt dG1wIiAmJiBleGl0ICRyZXQnIDAKLSsKLSsgICAgIyBDb3B5IHRoZSBmaWxlIG5hbWUgdG8gdGhl IHRlbXAgbmFtZS4KLSsgICAgKHVtYXNrICRjcF91bWFzayAmJiAkZG9pdF9leGVjICRjcHByb2cg IiRzcmMiICIkZHN0dG1wIikgJiYKLSsKLSsgICAgIyBhbmQgc2V0IGFueSBvcHRpb25zOyBkbyBj aG1vZCBsYXN0IHRvIHByZXNlcnZlIHNldHVpZCBiaXRzLgotKyAgICAjCi0rICAgICMgSWYgYW55 IG9mIHRoZXNlIGZhaWwsIHdlIGFib3J0IHRoZSB3aG9sZSB0aGluZy4gIElmIHdlIHdhbnQgdG8K LSsgICAgIyBpZ25vcmUgZXJyb3JzIGZyb20gYW55IG9mIHRoZXNlLCBqdXN0IG1ha2Ugc3VyZSBu b3QgdG8gaWdub3JlCi0rICAgICMgZXJyb3JzIGZyb20gdGhlIGFib3ZlICIkZG9pdCAkY3Bwcm9n ICRzcmMgJGRzdHRtcCIgY29tbWFuZC4KLSsgICAgIwotKyAgICB7IHRlc3QgLXogIiRjaG93bmNt ZCIgfHwgJGRvaXQgJGNob3duY21kICIkZHN0dG1wIjsgfSAmJgotKyAgICB7IHRlc3QgLXogIiRj aGdycGNtZCIgfHwgJGRvaXQgJGNoZ3JwY21kICIkZHN0dG1wIjsgfSAmJgotKyAgICB7IHRlc3Qg LXogIiRzdHJpcGNtZCIgfHwgJGRvaXQgJHN0cmlwY21kICIkZHN0dG1wIjsgfSAmJgotKyAgICB7 IHRlc3QgLXogIiRjaG1vZGNtZCIgfHwgJGRvaXQgJGNobW9kY21kICRtb2RlICIkZHN0dG1wIjsg fSAmJgotKwotKyAgICAjIElmIC1DLCBkb24ndCBib3RoZXIgdG8gY29weSBpZiBpdCB3b3VsZG4n dCBjaGFuZ2UgdGhlIGZpbGUuCi0rICAgIGlmICRjb3B5X29uX2NoYW5nZSAmJgotKyAgICAgICBv bGQ9YExDX0FMTD1DIGxzIC1kbEwgIiRkc3QiCTI+L2Rldi9udWxsYCAmJgotKyAgICAgICBuZXc9 YExDX0FMTD1DIGxzIC1kbEwgIiRkc3R0bXAiCTI+L2Rldi9udWxsYCAmJgotKwotKyAgICAgICBl dmFsICIkaW5pdGlhbGl6ZV9wb3NpeF9nbG9iIiAmJgotKyAgICAgICAkcG9zaXhfZ2xvYiBzZXQg LWYgJiYKLSsgICAgICAgc2V0IFggJG9sZCAmJiBvbGQ9OiQyOiQ0OiQ1OiQ2ICYmCi0rICAgICAg IHNldCBYICRuZXcgJiYgbmV3PTokMjokNDokNTokNiAmJgotKyAgICAgICAkcG9zaXhfZ2xvYiBz ZXQgK2YgJiYKLSsKLSsgICAgICAgdGVzdCAiJG9sZCIgPSAiJG5ldyIgJiYKLSsgICAgICAgJGNt cHByb2cgIiRkc3QiICIkZHN0dG1wIiA+L2Rldi9udWxsIDI+JjEKLSsgICAgdGhlbgotKyAgICAg IHJtIC1mICIkZHN0dG1wIgotKyAgICBlbHNlCi0rICAgICAgIyBSZW5hbWUgdGhlIGZpbGUgdG8g dGhlIHJlYWwgZGVzdGluYXRpb24uCi0rICAgICAgJGRvaXQgJG12Y21kIC1mICIkZHN0dG1wIiAi JGRzdCIgMj4vZGV2L251bGwgfHwKLSsKLSsgICAgICAjIFRoZSByZW5hbWUgZmFpbGVkLCBwZXJo YXBzIGJlY2F1c2UgbXYgY2FuJ3QgcmVuYW1lIHNvbWV0aGluZyBlbHNlCi0rICAgICAgIyB0byBp dHNlbGYsIG9yIHBlcmhhcHMgYmVjYXVzZSBtdiBpcyBzbyBhbmNpZW50IHRoYXQgaXQgZG9lcyBu b3QKLSsgICAgICAjIHN1cHBvcnQgLWYuCi0rICAgICAgewotKwkjIE5vdyByZW1vdmUgb3IgbW92 ZSBhc2lkZSBhbnkgb2xkIGZpbGUgYXQgZGVzdGluYXRpb24gbG9jYXRpb24uCi0rCSMgV2UgdHJ5 IHRoaXMgdHdvIHdheXMgc2luY2Ugcm0gY2FuJ3QgdW5saW5rIGl0c2VsZiBvbiBzb21lCi0rCSMg c3lzdGVtcyBhbmQgdGhlIGRlc3RpbmF0aW9uIGZpbGUgbWlnaHQgYmUgYnVzeSBmb3Igb3RoZXIK LSsJIyByZWFzb25zLiAgSW4gdGhpcyBjYXNlLCB0aGUgZmluYWwgY2xlYW51cCBtaWdodCBmYWls IGJ1dCB0aGUgbmV3Ci0rCSMgZmlsZSBzaG91bGQgc3RpbGwgaW5zdGFsbCBzdWNjZXNzZnVsbHku Ci0rCXsKLSsJICB0ZXN0ICEgLWYgIiRkc3QiIHx8Ci0rCSAgJGRvaXQgJHJtY21kIC1mICIkZHN0 IiAyPi9kZXYvbnVsbCB8fAotKwkgIHsgJGRvaXQgJG12Y21kIC1mICIkZHN0IiAiJHJtdG1wIiAy Pi9kZXYvbnVsbCAmJgotKwkgICAgeyAkZG9pdCAkcm1jbWQgLWYgIiRybXRtcCIgMj4vZGV2L251 bGw7IDo7IH0KLSsJICB9IHx8Ci0rCSAgeyBlY2hvICIkMDogY2Fubm90IHVubGluayBvciByZW5h bWUgJGRzdCIgPiYyCi0rCSAgICAoZXhpdCAxKTsgZXhpdCAxCi0rCSAgfQotKwl9ICYmCi0rCi0r CSMgTm93IHJlbmFtZSB0aGUgZmlsZSB0byB0aGUgcmVhbCBkZXN0aW5hdGlvbi4KLSsJJGRvaXQg JG12Y21kICIkZHN0dG1wIiAiJGRzdCIKLSsgICAgICB9Ci0rICAgIGZpIHx8IGV4aXQgMQotKwot KyAgICB0cmFwICcnIDAKLSsgIGZpCi0rZG9uZQotKwotKyMgTG9jYWwgdmFyaWFibGVzOgotKyMg ZXZhbDogKGFkZC1ob29rICd3cml0ZS1maWxlLWhvb2tzICd0aW1lLXN0YW1wKQotKyMgdGltZS1z dGFtcC1zdGFydDogInNjcmlwdHZlcnNpb249IgotKyMgdGltZS1zdGFtcC1mb3JtYXQ6ICIlOnkt JTAybS0lMDJkLiUwMkgiCi0rIyB0aW1lLXN0YW1wLWVuZDogIiQiCi0rIyBFbmQ6Ci1kaWZmIC1O dXIgc29jaS0zLjAuMF80LXBhY2svY29uZmlnL2xpYnRvb2wubTQgc29jaS0zLjAuMF90cmVwMzAw L2NvbmZpZy9saWJ0b29sLm00Ci0tLS0gc29jaS0zLjAuMF80LXBhY2svY29uZmlnL2xpYnRvb2wu bTQJMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBzb2NpLTMuMC4wX3Ry ZXAzMDAvY29uZmlnL2xpYnRvb2wubTQJMjAwOS0wNS0yMyAxMDowMTo1NS4wMDAwMDAwMDAgKzAy MDAKLUBAIC0wLDAgKzEsNzM2MCBAQAotKyMgbGlidG9vbC5tNCAtIENvbmZpZ3VyZSBsaWJ0b29s IGZvciB0aGUgaG9zdCBzeXN0ZW0uIC0qLUF1dG9jb25mLSotCi0rIwotKyMgICBDb3B5cmlnaHQg KEMpIDE5OTYsIDE5OTcsIDE5OTgsIDE5OTksIDIwMDAsIDIwMDEsIDIwMDMsIDIwMDQsIDIwMDUs Ci0rIyAgICAgICAgICAgICAgICAgMjAwNiwgMjAwNywgMjAwOCBGcmVlIFNvZnR3YXJlIEZvdW5k YXRpb24sIEluYy4KLSsjICAgV3JpdHRlbiBieSBHb3Jkb24gTWF0emlna2VpdCwgMTk5NgotKyMK LSsjIFRoaXMgZmlsZSBpcyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0 aW9uIGdpdmVzCi0rIyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5IGFuZC9vciBkaXN0cmli dXRlIGl0LCB3aXRoIG9yIHdpdGhvdXQKLSsjIG1vZGlmaWNhdGlvbnMsIGFzIGxvbmcgYXMgdGhp cyBub3RpY2UgaXMgcHJlc2VydmVkLgotKwotK200X2RlZmluZShbX0xUX0NPUFlJTkddLCBbZG5s Ci0rIyAgIENvcHlyaWdodCAoQykgMTk5NiwgMTk5NywgMTk5OCwgMTk5OSwgMjAwMCwgMjAwMSwg MjAwMywgMjAwNCwgMjAwNSwKLSsjICAgICAgICAgICAgICAgICAyMDA2LCAyMDA3LCAyMDA4IEZy ZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgotKyMgICBXcml0dGVuIGJ5IEdvcmRvbiBNYXR6 aWdrZWl0LCAxOTk2Ci0rIwotKyMgICBUaGlzIGZpbGUgaXMgcGFydCBvZiBHTlUgTGlidG9vbC4K LSsjCi0rIyBHTlUgTGlidG9vbCBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0 ZSBpdCBhbmQvb3IKLSsjIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5l cmFsIFB1YmxpYyBMaWNlbnNlIGFzCi0rIyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUg Rm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZgotKyMgdGhlIExpY2Vuc2UsIG9yIChhdCB5 b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0rIwotKyMgQXMgYSBzcGVjaWFsIGV4Y2Vw dGlvbiB0byB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UsCi0rIyBpZiB5b3UgZGlzdHJp YnV0ZSB0aGlzIGZpbGUgYXMgcGFydCBvZiBhIHByb2dyYW0gb3IgbGlicmFyeSB0aGF0Ci0rIyBp cyBidWlsdCB1c2luZyBHTlUgTGlidG9vbCwgeW91IG1heSBpbmNsdWRlIHRoaXMgZmlsZSB1bmRl ciB0aGUKLSsjIHNhbWUgZGlzdHJpYnV0aW9uIHRlcm1zIHRoYXQgeW91IHVzZSBmb3IgdGhlIHJl c3Qgb2YgdGhhdCBwcm9ncmFtLgotKyMKLSsjIEdOVSBMaWJ0b29sIGlzIGRpc3RyaWJ1dGVkIGlu IHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0rIyBidXQgV0lUSE9VVCBBTlkgV0FS UkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotKyMgTUVSQ0hBTlRB QklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQotKyMg R05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSsjCi0rIyBZb3Ug c2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGlj ZW5zZQotKyMgYWxvbmcgd2l0aCBHTlUgTGlidG9vbDsgc2VlIHRoZSBmaWxlIENPUFlJTkcuICBJ ZiBub3QsIGEgY29weQotKyMgY2FuIGJlIGRvd25sb2FkZWQgZnJvbSBodHRwOi8vd3d3LmdudS5v cmcvbGljZW5zZXMvZ3BsLmh0bWwsIG9yCi0rIyBvYnRhaW5lZCBieSB3cml0aW5nIHRvIHRoZSBG cmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sCi0rIyA1MSBGcmFua2xpbiBTdHJlZXQsIEZp ZnRoIEZsb29yLCBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KLStdKQotKwotKyMgc2VyaWFs IDU2IExUX0lOSVQKLSsKLSsKLSsjIExUX1BSRVJFUShWRVJTSU9OKQotKyMgLS0tLS0tLS0tLS0t LS0tLS0tCi0rIyBDb21wbGFpbiBhbmQgZXhpdCBpZiB0aGlzIGxpYnRvb2wgdmVyc2lvbiBpcyBs ZXNzIHRoYXQgVkVSU0lPTi4KLSttNF9kZWZ1bihbTFRfUFJFUkVRXSwKLStbbTRfaWYobTRfdmVy c2lvbl9jb21wYXJlKG00X2RlZm4oW0xUX1BBQ0tBR0VfVkVSU0lPTl0pLCBbJDFdKSwgLTEsCi0r ICAgICAgIFttNF9kZWZhdWx0KFskM10sCi0rCQkgICBbbTRfZmF0YWwoW0xpYnRvb2wgdmVyc2lv biAkMSBvciBoaWdoZXIgaXMgcmVxdWlyZWRdLAotKwkJICAgICAgICAgICAgIDYzKV0pXSwKLSsg ICAgICAgWyQyXSldKQotKwotKwotKyMgX0xUX0NIRUNLX0JVSUxERElSCi0rIyAtLS0tLS0tLS0t LS0tLS0tLS0KLSsjIENvbXBsYWluIGlmIHRoZSBhYnNvbHV0ZSBidWlsZCBkaXJlY3RvcnkgbmFt ZSBjb250YWlucyB1bnVzdWFsIGNoYXJhY3RlcnMKLSttNF9kZWZ1bihbX0xUX0NIRUNLX0JVSUxE RElSXSwKLStbY2FzZSBgcHdkYCBpbgotKyAgKlwgKiB8ICpcCSopCi0rICAgIEFDX01TR19XQVJO KFtMaWJ0b29sIGRvZXMgbm90IGNvcGUgd2VsbCB3aXRoIHdoaXRlc3BhY2UgaW4gYHB3ZGBdKSA7 OwotK2VzYWMKLStdKQotKwotKwotKyMgTFRfSU5JVChbT1BUSU9OU10pCi0rIyAtLS0tLS0tLS0t LS0tLS0tLS0KLStBQ19ERUZVTihbTFRfSU5JVF0sCi0rW0FDX1BSRVJFUShbMi41OF0pZG5sIFdl IHVzZSBBQ19JTkNMVURFU19ERUZBVUxUCi0rQUNfQkVGT1JFKFskMF0sIFtMVF9MQU5HXSlkbmwK LStBQ19CRUZPUkUoWyQwXSwgW0xUX09VVFBVVF0pZG5sCi0rQUNfQkVGT1JFKFskMF0sIFtMVERM X0lOSVRdKWRubAotK200X3JlcXVpcmUoW19MVF9DSEVDS19CVUlMRERJUl0pZG5sCi0rCi0rZG5s IEF1dG9jb25mIGRvZXNuJ3QgY2F0Y2ggdW5leHBhbmRlZCBMVF8gbWFjcm9zIGJ5IGRlZmF1bHQ6 Ci0rbTRfcGF0dGVybl9mb3JiaWQoW15fP0xUX1tBLVpfXSskXSlkbmwKLSttNF9wYXR0ZXJuX2Fs bG93KFteKF9MVF9FT0Z8TFRfRExHTE9CQUx8TFRfRExMQVpZX09SX05PV3xMVF9NVUxUSV9NT0RV TEUpJF0pZG5sCi0rZG5sIGFjbG9jYWwgZG9lc24ndCBwdWxsIGx0b3B0aW9ucy5tNCwgbHRzdWdh ci5tNCwgb3IgbHR2ZXJzaW9uLm00Ci0rZG5sIHVubGVzcyB3ZSByZXF1aXJlIGFuIEFDX0RFRlVO ZWQgbWFjcm86Ci0rQUNfUkVRVUlSRShbTFRPUFRJT05TX1ZFUlNJT05dKWRubAotK0FDX1JFUVVJ UkUoW0xUU1VHQVJfVkVSU0lPTl0pZG5sCi0rQUNfUkVRVUlSRShbTFRWRVJTSU9OX1ZFUlNJT05d KWRubAotK0FDX1JFUVVJUkUoW0xUT0JTT0xFVEVfVkVSU0lPTl0pZG5sCi0rbTRfcmVxdWlyZShb X0xUX1BST0dfTFRNQUlOXSlkbmwKLSsKLStkbmwgUGFyc2UgT1BUSU9OUwotK19MVF9TRVRfT1BU SU9OUyhbJDBdLCBbJDFdKQotKwotKyMgVGhpcyBjYW4gYmUgdXNlZCB0byByZWJ1aWxkIGxpYnRv b2wgd2hlbiBuZWVkZWQKLStMSUJUT09MX0RFUFM9IiRsdG1haW4iCi0rCi0rIyBBbHdheXMgdXNl IG91ciBvd24gbGlidG9vbC4KLStMSUJUT09MPSckKFNIRUxMKSAkKHRvcF9idWlsZGRpcikvbGli dG9vbCcKLStBQ19TVUJTVChMSUJUT09MKWRubAotKwotK19MVF9TRVRVUAotKwotKyMgT25seSBl eHBhbmQgb25jZToKLSttNF9kZWZpbmUoW0xUX0lOSVRdKQotK10pIyBMVF9JTklUCi0rCi0rIyBP bGQgbmFtZXM6Ci0rQVVfQUxJQVMoW0FDX1BST0dfTElCVE9PTF0sIFtMVF9JTklUXSkKLStBVV9B TElBUyhbQU1fUFJPR19MSUJUT09MXSwgW0xUX0lOSVRdKQotK2RubCBhY2xvY2FsLTEuNCBiYWNr d2FyZHMgY29tcGF0aWJpbGl0eToKLStkbmwgQUNfREVGVU4oW0FDX1BST0dfTElCVE9PTF0sIFtd KQotK2RubCBBQ19ERUZVTihbQU1fUFJPR19MSUJUT09MXSwgW10pCi0rCi0rCi0rIyBfTFRfQ0Nf QkFTRU5BTUUoQ0MpCi0rIyAtLS0tLS0tLS0tLS0tLS0tLS0tCi0rIyBDYWxjdWxhdGUgY2NfYmFz ZW5hbWUuICBTa2lwIGtub3duIGNvbXBpbGVyIHdyYXBwZXJzIGFuZCBjcm9zcy1wcmVmaXguCi0r bTRfZGVmdW4oW19MVF9DQ19CQVNFTkFNRV0sCi0rW2ZvciBjY190ZW1wIGluICQxIiI7IGRvCi0r ICBjYXNlICRjY190ZW1wIGluCi0rICAgIGNvbXBpbGUgfCAqW1tcXC9dXWNvbXBpbGUgfCBjY2Fj aGUgfCAqW1tcXC9dXWNjYWNoZSApIDs7Ci0rICAgIGRpc3RjYyB8ICpbW1xcL11dZGlzdGNjIHwg cHVyaWZ5IHwgKltbXFwvXV1wdXJpZnkgKSA7OwotKyAgICBcLSopIDs7Ci0rICAgICopIGJyZWFr OzsKLSsgIGVzYWMKLStkb25lCi0rY2NfYmFzZW5hbWU9YCRFQ0hPICJYJGNjX3RlbXAiIHwgJFhz ZWQgLWUgJ3MlLiovJSUnIC1lICJzJV4kaG9zdF9hbGlhcy0lJSJgCi0rXSkKLSsKLSsKLSsjIF9M VF9GSUxFVVRJTFNfREVGQVVMVFMKLSsjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSsjIEl0IGlz IG9rYXkgdG8gdXNlIHRoZXNlIGZpbGUgY29tbWFuZHMgYW5kIGFzc3VtZSB0aGV5IGhhdmUgYmVl biBzZXQKLSsjIHNlbnNpYmx5IGFmdGVyIGBtNF9yZXF1aXJlKFtfTFRfRklMRVVUSUxTX0RFRkFV TFRTXSknLgotK200X2RlZnVuKFtfTFRfRklMRVVUSUxTX0RFRkFVTFRTXSwKLStbOiAke0NQPSJj cCAtZiJ9Ci0rOiAke01WPSJtdiAtZiJ9Ci0rOiAke1JNPSJybSAtZiJ9Ci0rXSkjIF9MVF9GSUxF VVRJTFNfREVGQVVMVFMKLSsKLSsKLSsjIF9MVF9TRVRVUAotKyMgLS0tLS0tLS0tCi0rbTRfZGVm dW4oW19MVF9TRVRVUF0sCi0rW0FDX1JFUVVJUkUoW0FDX0NBTk9OSUNBTF9IT1NUXSlkbmwKLStB Q19SRVFVSVJFKFtBQ19DQU5PTklDQUxfQlVJTERdKWRubAotK19MVF9ERUNMKFtdLCBbaG9zdF9h bGlhc10sIFswXSwgW1RoZSBob3N0IHN5c3RlbV0pZG5sCi0rX0xUX0RFQ0woW10sIFtob3N0XSwg WzBdKWRubAotK19MVF9ERUNMKFtdLCBbaG9zdF9vc10sIFswXSlkbmwKLStkbmwKLStfTFRfREVD TChbXSwgW2J1aWxkX2FsaWFzXSwgWzBdLCBbVGhlIGJ1aWxkIHN5c3RlbV0pZG5sCi0rX0xUX0RF Q0woW10sIFtidWlsZF0sIFswXSlkbmwKLStfTFRfREVDTChbXSwgW2J1aWxkX29zXSwgWzBdKWRu bAotK2RubAotK0FDX1JFUVVJUkUoW0FDX1BST0dfQ0NdKWRubAotK0FDX1JFUVVJUkUoW0xUX1BB VEhfTERdKWRubAotK0FDX1JFUVVJUkUoW0xUX1BBVEhfTk1dKWRubAotK2RubAotK0FDX1JFUVVJ UkUoW0FDX1BST0dfTE5fU10pZG5sCi0rdGVzdCAteiAiJExOX1MiICYmIExOX1M9ImxuIC1zIgot K19MVF9ERUNMKFtdLCBbTE5fU10sIFsxXSwgW1doZXRoZXIgd2UgbmVlZCBzb2Z0IG9yIGhhcmQg bGlua3NdKWRubAotK2RubAotK0FDX1JFUVVJUkUoW0xUX0NNRF9NQVhfTEVOXSlkbmwKLStfTFRf REVDTChbb2JqZXh0XSwgW2FjX29iamV4dF0sIFswXSwgW09iamVjdCBmaWxlIHN1ZmZpeCAobm9y bWFsbHkgIm8iKV0pZG5sCi0rX0xUX0RFQ0woW10sIFtleGVleHRdLCBbMF0sIFtFeGVjdXRhYmxl IGZpbGUgc3VmZml4IChub3JtYWxseSAiIildKWRubAotK2RubAotK200X3JlcXVpcmUoW19MVF9G SUxFVVRJTFNfREVGQVVMVFNdKWRubAotK200X3JlcXVpcmUoW19MVF9DSEVDS19TSEVMTF9GRUFU VVJFU10pZG5sCi0rbTRfcmVxdWlyZShbX0xUX0NNRF9SRUxPQURdKWRubAotK200X3JlcXVpcmUo W19MVF9DSEVDS19NQUdJQ19NRVRIT0RdKWRubAotK200X3JlcXVpcmUoW19MVF9DTURfT0xEX0FS Q0hJVkVdKWRubAotK200X3JlcXVpcmUoW19MVF9DTURfR0xPQkFMX1NZTUJPTFNdKWRubAotKwot K19MVF9DT05GSUdfTElCVE9PTF9JTklUKFsKLSsjIFNlZSBpZiB3ZSBhcmUgcnVubmluZyBvbiB6 c2gsIGFuZCBzZXQgdGhlIG9wdGlvbnMgd2hpY2ggYWxsb3cgb3VyCi0rIyBjb21tYW5kcyB0aHJv dWdoIHdpdGhvdXQgcmVtb3ZhbCBvZiBcIGVzY2FwZXMgSU5JVC4KLStpZiB0ZXN0IC1uICJcJHta U0hfVkVSU0lPTitzZXR9IiA7IHRoZW4KLSsgICBzZXRvcHQgTk9fR0xPQl9TVUJTVAotK2ZpCi0r XSkKLStpZiB0ZXN0IC1uICIke1pTSF9WRVJTSU9OK3NldH0iIDsgdGhlbgotKyAgIHNldG9wdCBO T19HTE9CX1NVQlNUCi0rZmkKLSsKLStfTFRfQ0hFQ0tfT0JKRElSCi0rCi0rbTRfcmVxdWlyZShb X0xUX1RBR19DT01QSUxFUl0pZG5sCi0rX0xUX1BST0dfRUNIT19CQUNLU0xBU0gKLSsKLStjYXNl ICRob3N0X29zIGluCi0rYWl4MyopCi0rICAjIEFJWCBzb21ldGltZXMgaGFzIHByb2JsZW1zIHdp dGggdGhlIEdDQyBjb2xsZWN0MiBwcm9ncmFtLiAgRm9yIHNvbWUKLSsgICMgcmVhc29uLCBpZiB3 ZSBzZXQgdGhlIENPTExFQ1RfTkFNRVMgZW52aXJvbm1lbnQgdmFyaWFibGUsIHRoZSBwcm9ibGVt cwotKyAgIyB2YW5pc2ggaW4gYSBwdWZmIG9mIHNtb2tlLgotKyAgaWYgdGVzdCAiWCR7Q09MTEVD VF9OQU1FUytzZXR9IiAhPSBYc2V0OyB0aGVuCi0rICAgIENPTExFQ1RfTkFNRVM9Ci0rICAgIGV4 cG9ydCBDT0xMRUNUX05BTUVTCi0rICBmaQotKyAgOzsKLStlc2FjCi0rCi0rIyBTZWQgc3Vic3Rp dHV0aW9uIHRoYXQgaGVscHMgdXMgZG8gcm9idXN0IHF1b3RpbmcuICBJdCBiYWNrc2xhc2hpZmll cwotKyMgbWV0YWNoYXJhY3RlcnMgdGhhdCBhcmUgc3RpbGwgYWN0aXZlIHdpdGhpbiBkb3VibGUt cXVvdGVkIHN0cmluZ3MuCi0rc2VkX3F1b3RlX3N1YnN0PSdzL1woW1siYCRcXF1dXCkvXFxcMS9n JwotKwotKyMgU2FtZSBhcyBhYm92ZSwgYnV0IGRvIG5vdCBxdW90ZSB2YXJpYWJsZSByZWZlcmVu Y2VzLgotK2RvdWJsZV9xdW90ZV9zdWJzdD0ncy9cKFtbImBcXF1dXCkvXFxcMS9nJwotKwotKyMg U2VkIHN1YnN0aXR1dGlvbiB0byBkZWxheSBleHBhbnNpb24gb2YgYW4gZXNjYXBlZCBzaGVsbCB2 YXJpYWJsZSBpbiBhCi0rIyBkb3VibGVfcXVvdGVfc3Vic3QnZWQgc3RyaW5nLgotK2RlbGF5X3Zh cmlhYmxlX3N1YnN0PSdzL1xcXFxcXFxcXFxcJC9cXFxcXFwkL2cnCi0rCi0rIyBTZWQgc3Vic3Rp dHV0aW9uIHRvIGRlbGF5IGV4cGFuc2lvbiBvZiBhbiBlc2NhcGVkIHNpbmdsZSBxdW90ZS4KLStk ZWxheV9zaW5nbGVfcXVvdGVfc3Vic3Q9J3MvJ1wnJy8nXCdcXFxcXFxcJ1wnJy9nJwotKwotKyMg U2VkIHN1YnN0aXR1dGlvbiB0byBhdm9pZCBhY2NpZGVudGFsIGdsb2JiaW5nIGluIGV2YWxlZCBl eHByZXNzaW9ucwotK25vX2dsb2Jfc3Vic3Q9J3MvXCovXFxcKi9nJwotKwotKyMgR2xvYmFsIHZh cmlhYmxlczoKLStvZmlsZT1saWJ0b29sCi0rY2FuX2J1aWxkX3NoYXJlZD15ZXMKLSsKLSsjIEFs bCBrbm93biBsaW5rZXJzIHJlcXVpcmUgYSBgLmEnIGFyY2hpdmUgZm9yIHN0YXRpYyBsaW5raW5n IChleGNlcHQgTVNWQywKLSsjIHdoaWNoIG5lZWRzICcubGliJykuCi0rbGliZXh0PWEKLSsKLSt3 aXRoX2dudV9sZD0iJGx0X2N2X3Byb2dfZ251X2xkIgotKwotK29sZF9DQz0iJENDIgotK29sZF9D RkxBR1M9IiRDRkxBR1MiCi0rCi0rIyBTZXQgc2FuZSBkZWZhdWx0cyBmb3IgdmFyaW91cyB2YXJp YWJsZXMKLSt0ZXN0IC16ICIkQ0MiICYmIENDPWNjCi0rdGVzdCAteiAiJExUQ0MiICYmIExUQ0M9 JENDCi0rdGVzdCAteiAiJExUQ0ZMQUdTIiAmJiBMVENGTEFHUz0kQ0ZMQUdTCi0rdGVzdCAteiAi JExEIiAmJiBMRD1sZAotK3Rlc3QgLXogIiRhY19vYmpleHQiICYmIGFjX29iamV4dD1vCi0rCi0r X0xUX0NDX0JBU0VOQU1FKFskY29tcGlsZXJdKQotKwotKyMgT25seSBwZXJmb3JtIHRoZSBjaGVj ayBmb3IgZmlsZSwgaWYgdGhlIGNoZWNrIG1ldGhvZCByZXF1aXJlcyBpdAotK3Rlc3QgLXogIiRN QUdJQ19DTUQiICYmIE1BR0lDX0NNRD1maWxlCi0rY2FzZSAkZGVwbGlic19jaGVja19tZXRob2Qg aW4KLStmaWxlX21hZ2ljKikKLSsgIGlmIHRlc3QgIiRmaWxlX21hZ2ljX2NtZCIgPSAnJE1BR0lD X0NNRCc7IHRoZW4KLSsgICAgX0xUX1BBVEhfTUFHSUMKLSsgIGZpCi0rICA7OwotK2VzYWMKLSsK LSsjIFVzZSBDIGZvciB0aGUgZGVmYXVsdCBjb25maWd1cmF0aW9uIGluIHRoZSBsaWJ0b29sIHNj cmlwdAotK0xUX1NVUFBPUlRFRF9UQUcoW0NDXSkKLStfTFRfTEFOR19DX0NPTkZJRwotK19MVF9M QU5HX0RFRkFVTFRfQ09ORklHCi0rX0xUX0NPTkZJR19DT01NQU5EUwotK10pIyBfTFRfU0VUVVAK LSsKLSsKLSsjIF9MVF9QUk9HX0xUTUFJTgotKyMgLS0tLS0tLS0tLS0tLS0tCi0rIyBOb3RlIHRo YXQgdGhpcyBjb2RlIGlzIGNhbGxlZCBib3RoIGZyb20gYGNvbmZpZ3VyZScsIGFuZCBgY29uZmln LnN0YXR1cycKLSsjIG5vdyB0aGF0IHdlIHVzZSBBQ19DT05GSUdfQ09NTUFORFMgdG8gZ2VuZXJh dGUgbGlidG9vbC4gIE5vdGFibHksCi0rIyBgY29uZmlnLnN0YXR1cycgaGFzIG5vIHZhbHVlIGZv ciBhY19hdXhfZGlyIHVubGVzcyB3ZSBhcmUgdXNpbmcgQXV0b21ha2UsCi0rIyBzbyB3ZSBwYXNz IGEgY29weSBhbG9uZyB0byBtYWtlIHN1cmUgaXQgaGFzIGEgc2Vuc2libGUgdmFsdWUgYW55d2F5 LgotK200X2RlZnVuKFtfTFRfUFJPR19MVE1BSU5dLAotK1ttNF9pZmRlZihbQUNfUkVRVUlSRV9B VVhfRklMRV0sIFtBQ19SRVFVSVJFX0FVWF9GSUxFKFtsdG1haW4uc2hdKV0pZG5sCi0rX0xUX0NP TkZJR19MSUJUT09MX0lOSVQoW2FjX2F1eF9kaXI9JyRhY19hdXhfZGlyJ10pCi0rbHRtYWluPSIk YWNfYXV4X2Rpci9sdG1haW4uc2giCi0rXSkjIF9MVF9QUk9HX0xUTUFJTgotKwotKwotKyMjIC0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIyMKLSsjIyBBY2N1bXVsYXRlIGNv ZGUgZm9yIGNyZWF0aW5nIGxpYnRvb2wuICMjCi0rIyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLSAjIwotKwotKyMgU28gdGhhdCB3ZSBjYW4gcmVjcmVhdGUgYSBmdWxsIGxp YnRvb2wgc2NyaXB0IGluY2x1ZGluZyBhZGRpdGlvbmFsCi0rIyB0YWdzLCB3ZSBhY2N1bXVsYXRl IHRoZSBjaHVua3Mgb2YgY29kZSB0byBzZW5kIHRvIEFDX0NPTkZJR19DT01NQU5EUwotKyMgaW4g bWFjcm9zIGFuZCB0aGVuIG1ha2UgYSBzaW5nbGUgY2FsbCBhdCB0aGUgZW5kIHVzaW5nIHRoZSBg bGlidG9vbCcKLSsjIGxhYmVsLgotKwotKwotKyMgX0xUX0NPTkZJR19MSUJUT09MX0lOSVQoW0lO SVQtQ09NTUFORFNdKQotKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQotKyMgUmVnaXN0ZXIgSU5JVC1DT01NQU5EUyB0byBiZSBwYXNzZWQgdG8gQUNfQ09ORklHX0NP TU1BTkRTIGxhdGVyLgotK200X2RlZmluZShbX0xUX0NPTkZJR19MSUJUT09MX0lOSVRdLAotK1tt NF9pZnZhbChbJDFdLAotKyAgICAgICAgICBbbTRfYXBwZW5kKFtfTFRfT1VUUFVUX0xJQlRPT0xf SU5JVF0sCi0rICAgICAgICAgICAgICAgICAgICAgWyQxCi0rXSldKV0pCi0rCi0rIyBJbml0aWFs aXplLgotK200X2RlZmluZShbX0xUX09VVFBVVF9MSUJUT09MX0lOSVRdKQotKwotKwotKyMgX0xU X0NPTkZJR19MSUJUT09MKFtDT01NQU5EU10pCi0rIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KLSsjIFJlZ2lzdGVyIENPTU1BTkRTIHRvIGJlIHBhc3NlZCB0byBBQ19DT05GSUdfQ09N TUFORFMgbGF0ZXIuCi0rbTRfZGVmaW5lKFtfTFRfQ09ORklHX0xJQlRPT0xdLAotK1ttNF9pZnZh bChbJDFdLAotKyAgICAgICAgICBbbTRfYXBwZW5kKFtfTFRfT1VUUFVUX0xJQlRPT0xfQ09NTUFO RFNdLAotKyAgICAgICAgICAgICAgICAgICAgIFskMQotK10pXSldKQotKwotKyMgSW5pdGlhbGl6 ZS4KLSttNF9kZWZpbmUoW19MVF9PVVRQVVRfTElCVE9PTF9DT01NQU5EU10pCi0rCi0rCi0rIyBf TFRfQ09ORklHX1NBVkVfQ09NTUFORFMoW0NPTU1BTkRTXSwgW0lOSVRfQ09NTUFORFNdKQotKyMg LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLStt NF9kZWZ1bihbX0xUX0NPTkZJR19TQVZFX0NPTU1BTkRTXSwKLStbX0xUX0NPTkZJR19MSUJUT09M KFskMV0pCi0rX0xUX0NPTkZJR19MSUJUT09MX0lOSVQoWyQyXSkKLStdKQotKwotKwotKyMgX0xU X0ZPUk1BVF9DT01NRU5UKFtDT01NRU5UXSkKLSsjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCi0rIyBBZGQgbGVhZGluZyBjb21tZW50IG1hcmtzIHRvIHRoZSBzdGFydCBvZiBlYWNoIGxp bmUsIGFuZCBhIHRyYWlsaW5nCi0rIyBmdWxsLXN0b3AgdG8gdGhlIHdob2xlIGNvbW1lbnQgaWYg b25lIGlzIG5vdCBwcmVzZW50IGFscmVhZHkuCi0rbTRfZGVmaW5lKFtfTFRfRk9STUFUX0NPTU1F TlRdLAotK1ttNF9pZnZhbChbJDFdLCBbCi0rbTRfYnBhdHN1YnN0KFttNF9icGF0c3Vic3QoWyQx XSwgW14gKl0sIFsjIF0pXSwKLSsgICAgICAgICAgICAgIFtbJ2AkXF1dLCBbXFxcJl0pXW00X2Jt YXRjaChbJDFdLCBbWyE/Ll0kXSwgW10sIFsuXSkKLSspXSkKLSsKLSsKLSsKLSsjIyAtLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0gIyMKLSsjIyBGSVhNRTogRWxpbWluYXRlIFZBUk5BTUUgIyMKLSsj IyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIyMKLSsKLSsKLSsjIF9MVF9ERUNMKFtDT05GSUdO QU1FXSwgVkFSTkFNRSwgVkFMVUUsIFtERVNDUklQVElPTl0sIFtJUy1UQUdHRUQ/XSkKLSsjIC0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KLSsjIENPTkZJR05BTUUgaXMgdGhlIG5hbWUgZ2l2ZW4gdG8gdGhlIHZhbHVlIGlu IHRoZSBsaWJ0b29sIHNjcmlwdC4KLSsjIFZBUk5BTUUgaXMgdGhlIChiYXNlKSBuYW1lIHVzZWQg aW4gdGhlIGNvbmZpZ3VyZSBzY3JpcHQuCi0rIyBWQUxVRSBtYXkgYmUgMCwgMSBvciAyIGZvciBh IGNvbXB1dGVkIHF1b3RlIGVzY2FwZWQgdmFsdWUgYmFzZWQgb24KLSsjIFZBUk5BTUUuICBBbnkg b3RoZXIgdmFsdWUgd2lsbCBiZSB1c2VkIGRpcmVjdGx5LgotK200X2RlZmluZShbX0xUX0RFQ0xd LAotK1tsdF9pZl9hcHBlbmRfdW5pcShbbHRfZGVjbF92YXJuYW1lc10sIFskMl0sIFssIF0sCi0r ICAgIFtsdF9kaWN0X2FkZF9zdWJrZXkoW2x0X2RlY2xfZGljdF0sIFskMl0sIFtsaWJ0b29sX25h bWVdLAotKwlbbTRfaWZ2YWwoWyQxXSwgWyQxXSwgWyQyXSldKQotKyAgICBsdF9kaWN0X2FkZF9z dWJrZXkoW2x0X2RlY2xfZGljdF0sIFskMl0sIFt2YWx1ZV0sIFskM10pCi0rICAgIG00X2lmdmFs KFskNF0sCi0rCVtsdF9kaWN0X2FkZF9zdWJrZXkoW2x0X2RlY2xfZGljdF0sIFskMl0sIFtkZXNj cmlwdGlvbl0sIFskNF0pXSkKLSsgICAgbHRfZGljdF9hZGRfc3Via2V5KFtsdF9kZWNsX2RpY3Rd LCBbJDJdLAotKwlbdGFnZ2VkP10sIFttNF9pZnZhbChbJDVdLCBbeWVzXSwgW25vXSldKV0pCi0r XSkKLSsKLSsKLSsjIF9MVF9UQUdERUNMKFtDT05GSUdOQU1FXSwgVkFSTkFNRSwgVkFMVUUsIFtE RVNDUklQVElPTl0pCi0rIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQotK200X2RlZmluZShbX0xUX1RBR0RFQ0xdLCBbX0xUX0RFQ0woWyQx XSwgWyQyXSwgWyQzXSwgWyQ0XSwgW3llc10pXSkKLSsKLSsKLSsjIGx0X2RlY2xfdGFnX3Zhcm5h bWVzKFtTRVBBUkFUT1JdLCBbVkFSTkFNRTEuLi5dKQotKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0rbTRfZGVmaW5lKFtsdF9kZWNsX3RhZ192YXJu YW1lc10sCi0rW19sdF9kZWNsX2ZpbHRlcihbdGFnZ2VkP10sIFt5ZXNdLCAkQCldKQotKwotKwot KyMgX2x0X2RlY2xfZmlsdGVyKFNVQktFWSwgVkFMVUUsIFtTRVBBUkFUT1JdLCBbVkFSTkFNRTEu Ll0pCi0rIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KLSttNF9kZWZpbmUoW19sdF9kZWNsX2ZpbHRlcl0sCi0rW200X2Nhc2UoWyQjXSwK LSsgIFswXSwgW200X2ZhdGFsKFskMDogdG9vIGZldyBhcmd1bWVudHM6ICQjXSldLAotKyAgWzFd LCBbbTRfZmF0YWwoWyQwOiB0b28gZmV3IGFyZ3VtZW50czogJCM6ICQxXSldLAotKyAgWzJdLCBb bHRfZGljdF9maWx0ZXIoW2x0X2RlY2xfZGljdF0sIFskMV0sIFskMl0sIFtdLCBsdF9kZWNsX3Zh cm5hbWVzKV0sCi0rICBbM10sIFtsdF9kaWN0X2ZpbHRlcihbbHRfZGVjbF9kaWN0XSwgWyQxXSwg WyQyXSwgWyQzXSwgbHRfZGVjbF92YXJuYW1lcyldLAotKyAgW2x0X2RpY3RfZmlsdGVyKFtsdF9k ZWNsX2RpY3RdLCAkQCldKVtdZG5sCi0rXSkKLSsKLSsKLSsjIGx0X2RlY2xfcXVvdGVfdmFybmFt ZXMoW1NFUEFSQVRPUl0sIFtWQVJOQU1FMS4uLl0pCi0rIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotK200X2RlZmluZShbbHRfZGVjbF9xdW90ZV92 YXJuYW1lc10sCi0rW19sdF9kZWNsX2ZpbHRlcihbdmFsdWVdLCBbMV0sICRAKV0pCi0rCi0rCi0r IyBsdF9kZWNsX2RxdW90ZV92YXJuYW1lcyhbU0VQQVJBVE9SXSwgW1ZBUk5BTUUxLi4uXSkKLSsj IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotK200 X2RlZmluZShbbHRfZGVjbF9kcXVvdGVfdmFybmFtZXNdLAotK1tfbHRfZGVjbF9maWx0ZXIoW3Zh bHVlXSwgWzJdLCAkQCldKQotKwotKwotKyMgbHRfZGVjbF92YXJuYW1lc190YWdnZWQoW1NFUEFS QVRPUl0sIFtWQVJOQU1FMS4uLl0pCi0rIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KLSttNF9kZWZpbmUoW2x0X2RlY2xfdmFybmFtZXNfdGFnZ2Vk XSwKLStbbTRfYXNzZXJ0KFskIyA8PSAyXSlkbmwKLStfJDAobTRfcXVvdGUobTRfZGVmYXVsdChb JDFdLCBbWywgXV0pKSwKLSsgICAgbTRfaWZ2YWwoWyQyXSwgW1skMl1dLCBbbTRfZHF1b3RlKGx0 X2RlY2xfdGFnX3Zhcm5hbWVzKV0pLAotKyAgICBtNF9zcGxpdChtNF9ub3JtYWxpemUobTRfcXVv dGUoX0xUX1RBR1MpKSwgWyBdKSldKQotK200X2RlZmluZShbX2x0X2RlY2xfdmFybmFtZXNfdGFn Z2VkXSwKLStbbTRfaWZ2YWwoWyQzXSwgW2x0X2NvbWJpbmUoWyQxXSwgWyQyXSwgW19dLCAkMyld KV0pCi0rCi0rCi0rIyBsdF9kZWNsX2FsbF92YXJuYW1lcyhbU0VQQVJBVE9SXSwgW1ZBUk5BTUUx Li4uXSkKLSsjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQotK200X2RlZmluZShbbHRfZGVjbF9hbGxfdmFybmFtZXNdLAotK1tfJDAobTRfcXVvdGUobTRf ZGVmYXVsdChbJDFdLCBbWywgXV0pKSwKLSsgICAgIG00X2lmKFskMl0sIFtdLAotKwkgICBtNF9x dW90ZShsdF9kZWNsX3Zhcm5hbWVzKSwKLSsJbTRfcXVvdGUobTRfc2hpZnQoJEApKSkpW11kbmwK LStdKQotK200X2RlZmluZShbX2x0X2RlY2xfYWxsX3Zhcm5hbWVzXSwKLStbbHRfam9pbigkQCwg bHRfZGVjbF92YXJuYW1lc190YWdnZWQoWyQxXSwKLSsJCQlsdF9kZWNsX3RhZ192YXJuYW1lcyhb WywgXV0sIG00X3NoaWZ0KCRAKSkpKWRubAotK10pCi0rCi0rCi0rIyBfTFRfQ09ORklHX1NUQVRV U19ERUNMQVJFKFtWQVJOQU1FXSkKLSsjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQotKyMgUXVvdGUgYSB2YXJpYWJsZSB2YWx1ZSwgYW5kIGZvcndhcmQgaXQgdG8gYGNvbmZp Zy5zdGF0dXMnIHNvIHRoYXQgaXRzCi0rIyBkZWNsYXJhdGlvbiB0aGVyZSB3aWxsIGhhdmUgdGhl IHNhbWUgdmFsdWUgYXMgaW4gYGNvbmZpZ3VyZScuICBWQVJOQU1FCi0rIyBtdXN0IGhhdmUgYSBz aW5nbGUgcXVvdGUgZGVsaW1pdGVkIHZhbHVlIGZvciB0aGlzIHRvIHdvcmsuCi0rbTRfZGVmaW5l KFtfTFRfQ09ORklHX1NUQVRVU19ERUNMQVJFXSwKLStbJDE9J2AkRUNITyAiWCRdWyQxIiB8ICRY c2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnXSkKLSsKLSsKLSsjIF9MVF9DT05G SUdfU1RBVFVTX0RFQ0xBUkFUSU9OUwotKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ci0rIyBXZSBkZWxpbWl0IGxpYnRvb2wgY29uZmlnIHZhcmlhYmxlcyB3aXRoIHNpbmdsZSBxdW90 ZXMsIHNvIHdoZW4KLSsjIHdlIHdyaXRlIHRoZW0gdG8gY29uZmlnLnN0YXR1cywgd2UgaGF2ZSB0 byBiZSBzdXJlIHRvIHF1b3RlIGFsbAotKyMgZW1iZWRkZWQgc2luZ2xlIHF1b3RlcyBwcm9wZXJs eS4gIEluIGNvbmZpZ3VyZSwgdGhpcyBtYWNybyBleHBhbmRzCi0rIyBlYWNoIHZhcmlhYmxlIGRl Y2xhcmVkIHdpdGggX0xUX0RFQ0wgKGFuZCBfTFRfVEFHREVDTCkgaW50bzoKLSsjCi0rIyAgICA8 dmFyPj0nYCRFQ0hPICJYJDx2YXI+IiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1 YnN0ImAnCi0rbTRfZGVmdW4oW19MVF9DT05GSUdfU1RBVFVTX0RFQ0xBUkFUSU9OU10sCi0rW200 X2ZvcmVhY2goW19sdF92YXJdLCBtNF9xdW90ZShsdF9kZWNsX2FsbF92YXJuYW1lcyksCi0rICAg IFttNF9uKFtfTFRfQ09ORklHX1NUQVRVU19ERUNMQVJFKF9sdF92YXIpXSldKV0pCi0rCi0rCi0r IyBfTFRfTElCVE9PTF9UQUdTCi0rIyAtLS0tLS0tLS0tLS0tLS0tCi0rIyBPdXRwdXQgY29tbWVu dCBhbmQgbGlzdCBvZiB0YWdzIHN1cHBvcnRlZCBieSB0aGUgc2NyaXB0Ci0rbTRfZGVmdW4oW19M VF9MSUJUT09MX1RBR1NdLAotK1tfTFRfRk9STUFUX0NPTU1FTlQoW1RoZSBuYW1lcyBvZiB0aGUg dGFnZ2VkIGNvbmZpZ3VyYXRpb25zIHN1cHBvcnRlZCBieSB0aGlzIHNjcmlwdF0pZG5sCi0rYXZh aWxhYmxlX3RhZ3M9Il9MVF9UQUdTImRubAotK10pCi0rCi0rCi0rIyBfTFRfTElCVE9PTF9ERUNM QVJFKFZBUk5BTUUsIFtUQUddKQotKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KLSsjIEV4dHJhY3QgdGhlIGRpY3Rpb25hcnkgdmFsdWVzIGZvciBWQVJOQU1FIChvcHRpb25h bGx5IHdpdGggVEFHKSBhbmQKLSsjIGV4cGFuZCB0byBhIGNvbW1lbnRlZCBzaGVsbCB2YXJpYWJs ZSBzZXR0aW5nOgotKyMKLSsjICAgICMgU29tZSBjb21tZW50IGFib3V0IHdoYXQgVkFSIGlzIGZv ci4KLSsjICAgIHZpc2libGVfbmFtZT0kbHRfaW50ZXJuYWxfbmFtZQotK200X2RlZmluZShbX0xU X0xJQlRPT0xfREVDTEFSRV0sCi0rW19MVF9GT1JNQVRfQ09NTUVOVChtNF9xdW90ZShsdF9kaWN0 X2ZldGNoKFtsdF9kZWNsX2RpY3RdLCBbJDFdLAotKwkJCQkJICAgW2Rlc2NyaXB0aW9uXSkpKVtd ZG5sCi0rbTRfcHVzaGRlZihbX2xpYnRvb2xfbmFtZV0sCi0rICAgIG00X3F1b3RlKGx0X2RpY3Rf ZmV0Y2goW2x0X2RlY2xfZGljdF0sIFskMV0sIFtsaWJ0b29sX25hbWVdKSkpW11kbmwKLSttNF9j YXNlKG00X3F1b3RlKGx0X2RpY3RfZmV0Y2goW2x0X2RlY2xfZGljdF0sIFskMV0sIFt2YWx1ZV0p KSwKLSsgICAgWzBdLCBbX2xpYnRvb2xfbmFtZT1bJF0kMV0sCi0rICAgIFsxXSwgW19saWJ0b29s X25hbWU9JGx0X1tdJDFdLAotKyAgICBbMl0sIFtfbGlidG9vbF9uYW1lPSRsdF9bXSQxXSwKLSsg ICAgW19saWJ0b29sX25hbWU9bHRfZGljdF9mZXRjaChbbHRfZGVjbF9kaWN0XSwgWyQxXSwgW3Zh bHVlXSldKVtdZG5sCi0rbTRfaWZ2YWwoWyQyXSwgW18kMl0pW11tNF9wb3BkZWYoW19saWJ0b29s X25hbWVdKVtdZG5sCi0rXSkKLSsKLSsKLSsjIF9MVF9MSUJUT09MX0NPTkZJR19WQVJTCi0rIyAt LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotKyMgUHJvZHVjZSBjb21tZW50ZWQgZGVjbGFyYXRpb25z IG9mIG5vbi10YWdnZWQgbGlidG9vbCBjb25maWcgdmFyaWFibGVzCi0rIyBzdWl0YWJsZSBmb3Ig aW5zZXJ0aW9uIGluIHRoZSBMSUJUT09MIENPTkZJRyBzZWN0aW9uIG9mIHRoZSBgbGlidG9vbCcK LSsjIHNjcmlwdC4gIFRhZ2dlZCBsaWJ0b29sIGNvbmZpZyB2YXJpYWJsZXMgKGV2ZW4gZm9yIHRo ZSBMSUJUT09MIENPTkZJRwotKyMgc2VjdGlvbikgYXJlIHByb2R1Y2VkIGJ5IF9MVF9MSUJUT09M X1RBR19WQVJTLgotK200X2RlZnVuKFtfTFRfTElCVE9PTF9DT05GSUdfVkFSU10sCi0rW200X2Zv cmVhY2goW19sdF92YXJdLAotKyAgICBtNF9xdW90ZShfbHRfZGVjbF9maWx0ZXIoW3RhZ2dlZD9d LCBbbm9dLCBbXSwgbHRfZGVjbF92YXJuYW1lcykpLAotKyAgICBbbTRfbihbX0xUX0xJQlRPT0xf REVDTEFSRShfbHRfdmFyKV0pXSldKQotKwotKwotKyMgX0xUX0xJQlRPT0xfVEFHX1ZBUlMoVEFH KQotKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotK200X2RlZmluZShbX0xUX0xJQlRPT0xf VEFHX1ZBUlNdLAotK1ttNF9mb3JlYWNoKFtfbHRfdmFyXSwgbTRfcXVvdGUobHRfZGVjbF90YWdf dmFybmFtZXMpLAotKyAgICBbbTRfbihbX0xUX0xJQlRPT0xfREVDTEFSRShfbHRfdmFyLCBbJDFd KV0pXSldKQotKwotKwotKyMgX0xUX1RBR1ZBUihWQVJOQU1FLCBbVEFHTkFNRV0pCi0rIyAtLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSttNF9kZWZpbmUoW19MVF9UQUdWQVJdLCBbbTRf aWZ2YWwoWyQyXSwgWyQxXyQyXSwgWyQxXSldKQotKwotKwotKyMgX0xUX0NPTkZJR19DT01NQU5E UwotKyMgLS0tLS0tLS0tLS0tLS0tLS0tLQotKyMgU2VuZCBhY2N1bXVsYXRlZCBvdXRwdXQgdG8g JENPTkZJR19TVEFUVVMuICBUaGFua3MgdG8gdGhlIGxpc3RzIG9mCi0rIyB2YXJpYWJsZXMgZm9y IHNpbmdsZSBhbmQgZG91YmxlIHF1b3RlIGVzY2FwaW5nIHdlIHNhdmVkIGZyb20gY2FsbHMKLSsj IHRvIF9MVF9ERUNMLCB3ZSBjYW4gcHV0IHF1b3RlIGVzY2FwZWQgdmFyaWFibGVzIGRlY2xhcmF0 aW9ucwotKyMgaW50byBgY29uZmlnLnN0YXR1cycsIGFuZCB0aGVuIHRoZSBzaGVsbCBjb2RlIHRv IHF1b3RlIGVzY2FwZSB0aGVtIGluCi0rIyBmb3IgbG9vcHMgaW4gYGNvbmZpZy5zdGF0dXMnLiAg RmluYWxseSwgYW55IGFkZGl0aW9uYWwgY29kZSBhY2N1bXVsYXRlZAotKyMgZnJvbSBjYWxscyB0 byBfTFRfQ09ORklHX0xJQlRPT0xfSU5JVCBpcyBleHBhbmRlZC4KLSttNF9kZWZ1bihbX0xUX0NP TkZJR19DT01NQU5EU10sCi0rW0FDX1BST1ZJREVfSUZFTFNFKFtMVF9PVVRQVVRdLAotKwlkbmwg SWYgdGhlIGxpYnRvb2wgZ2VuZXJhdGlvbiBjb2RlIGhhcyBiZWVuIHBsYWNlZCBpbiAkQ09ORklH X0xULAotKwlkbmwgaW5zdGVhZCBvZiBkdXBsaWNhdGluZyBpdCBhbGwgb3ZlciBhZ2FpbiBpbnRv IGNvbmZpZy5zdGF0dXMsCi0rCWRubCB0aGVuIHdlIHdpbGwgaGF2ZSBjb25maWcuc3RhdHVzIHJ1 biAkQ09ORklHX0xUIGxhdGVyLCBzbyBpdAotKwlkbmwgbmVlZHMgdG8ga25vdyB3aGF0IG5hbWUg aXMgc3RvcmVkIHRoZXJlOgotKyAgICAgICAgW0FDX0NPTkZJR19DT01NQU5EUyhbbGlidG9vbF0s Ci0rICAgICAgICAgICAgWyRTSEVMTCAkQ09ORklHX0xUIHx8IEFTX0VYSVQoMSldLCBbQ09ORklH X0xUPSckQ09ORklHX0xUJ10pXSwKLSsgICAgZG5sIElmIHRoZSBsaWJ0b29sIGdlbmVyYXRpb24g Y29kZSBpcyBkZXN0aW5lZCBmb3IgY29uZmlnLnN0YXR1cywKLSsgICAgZG5sIGV4cGFuZCB0aGUg YWNjdW11bGF0ZWQgY29tbWFuZHMgYW5kIGluaXQgY29kZSBub3c6Ci0rICAgIFtBQ19DT05GSUdf Q09NTUFORFMoW2xpYnRvb2xdLAotKyAgICAgICAgW19MVF9PVVRQVVRfTElCVE9PTF9DT01NQU5E U10sIFtfTFRfT1VUUFVUX0xJQlRPT0xfQ09NTUFORFNfSU5JVF0pXSkKLStdKSNfTFRfQ09ORklH X0NPTU1BTkRTCi0rCi0rCi0rIyBJbml0aWFsaXplLgotK200X2RlZmluZShbX0xUX09VVFBVVF9M SUJUT09MX0NPTU1BTkRTX0lOSVRdLAotK1sKLSsKLSsjIFRoZSBIUC1VWCBrc2ggYW5kIFBPU0lY IHNoZWxsIHByaW50IHRoZSB0YXJnZXQgZGlyZWN0b3J5IHRvIHN0ZG91dAotKyMgaWYgQ0RQQVRI IGlzIHNldC4KLSsodW5zZXQgQ0RQQVRIKSA+L2Rldi9udWxsIDI+JjEgJiYgdW5zZXQgQ0RQQVRI Ci0rCi0rc2VkX3F1b3RlX3N1YnN0PSckc2VkX3F1b3RlX3N1YnN0JwotK2RvdWJsZV9xdW90ZV9z dWJzdD0nJGRvdWJsZV9xdW90ZV9zdWJzdCcKLStkZWxheV92YXJpYWJsZV9zdWJzdD0nJGRlbGF5 X3ZhcmlhYmxlX3N1YnN0JwotK19MVF9DT05GSUdfU1RBVFVTX0RFQ0xBUkFUSU9OUwotK0xUQ0M9 JyRMVENDJwotK0xUQ0ZMQUdTPSckTFRDRkxBR1MnCi0rY29tcGlsZXI9JyRjb21waWxlcl9ERUZB VUxUJwotKwotKyMgUXVvdGUgZXZhbGVkIHN0cmluZ3MuCi0rZm9yIHZhciBpbiBsdF9kZWNsX2Fs bF92YXJuYW1lcyhbWyBcCi0rXV0sIGx0X2RlY2xfcXVvdGVfdmFybmFtZXMpOyBkbwotKyAgICBj YXNlIFxgZXZhbCBcXFxcXCRFQ0hPICJYXFxcXFwkXCR2YXIiXGAgaW4KLSsgICAgKltbXFxcXFxc XGBcXCJcXFwkXV0qKQotKyAgICAgIGV2YWwgImx0X1wkdmFyPVxcXFxcXCJcXFxgXFxcJEVDSE8g XFwiWFxcXCRcJHZhclxcIiB8IFxcXCRYc2VkIC1lIFxcIlxcXCRzZWRfcXVvdGVfc3Vic3RcXCJc XFxgXFxcXFxcIiIKLSsgICAgICA7OwotKyAgICAqKQotKyAgICAgIGV2YWwgImx0X1wkdmFyPVxc XFxcXCJcXFwkXCR2YXJcXFxcXFwiIgotKyAgICAgIDs7Ci0rICAgIGVzYWMKLStkb25lCi0rCi0r IyBEb3VibGUtcXVvdGUgZG91YmxlLWV2YWxlZCBzdHJpbmdzLgotK2ZvciB2YXIgaW4gbHRfZGVj bF9hbGxfdmFybmFtZXMoW1sgXAotK11dLCBsdF9kZWNsX2RxdW90ZV92YXJuYW1lcyk7IGRvCi0r ICAgIGNhc2UgXGBldmFsIFxcXFxcJEVDSE8gIlhcXFxcXCRcJHZhciJcYCBpbgotKyAgICAqW1tc XFxcXFxcYFxcIlxcXCRdXSopCi0rICAgICAgZXZhbCAibHRfXCR2YXI9XFxcXFxcIlxcXGBcXFwk RUNITyBcXCJYXFxcJFwkdmFyXFwiIHwgXFxcJFhzZWQgLWUgXFwiXFxcJGRvdWJsZV9xdW90ZV9z dWJzdFxcIiAtZSBcXCJcXFwkc2VkX3F1b3RlX3N1YnN0XFwiIC1lIFxcIlxcXCRkZWxheV92YXJp YWJsZV9zdWJzdFxcIlxcXGBcXFxcXFwiIgotKyAgICAgIDs7Ci0rICAgICopCi0rICAgICAgZXZh bCAibHRfXCR2YXI9XFxcXFxcIlxcXCRcJHZhclxcXFxcXCIiCi0rICAgICAgOzsKLSsgICAgZXNh YwotK2RvbmUKLSsKLSsjIEZpeC11cCBmYWxsYmFjayBlY2hvIGlmIGl0IHdhcyBtYW5nbGVkIGJ5 IHRoZSBhYm92ZSBxdW90aW5nIHJ1bGVzLgotK2Nhc2UgXCRsdF9FQ0hPIGluCi0rKidcXFxbJF0w IC0tZmFsbGJhY2stZWNobyInKWRubCAiCi0rICBsdF9FQ0hPPVxgXCRFQ0hPICJYXCRsdF9FQ0hP IiB8IFwkWHNlZCAtZSAncy9cXFxcXFxcXFxcXFxcXFxbJF0wIC0tZmFsbGJhY2stZWNobyJcWyRd L1xbJF0wIC0tZmFsbGJhY2stZWNobyIvJ1xgCi0rICA7OwotK2VzYWMKLSsKLStfTFRfT1VUUFVU X0xJQlRPT0xfSU5JVAotK10pCi0rCi0rCi0rIyBMVF9PVVRQVVQKLSsjIC0tLS0tLS0tLQotKyMg VGhpcyBtYWNybyBhbGxvd3MgZWFybHkgZ2VuZXJhdGlvbiBvZiB0aGUgbGlidG9vbCBzY3JpcHQg KGJlZm9yZQotKyMgQUNfT1VUUFVUIGlzIGNhbGxlZCksIGluY2FzZSBpdCBpcyB1c2VkIGluIGNv bmZpZ3VyZSBmb3IgY29tcGlsYXRpb24KLSsjIHRlc3RzLgotK0FDX0RFRlVOKFtMVF9PVVRQVVRd LAotK1s6ICR7Q09ORklHX0xUPS4vY29uZmlnLmx0fQotK0FDX01TR19OT1RJQ0UoW2NyZWF0aW5n ICRDT05GSUdfTFRdKQotK2NhdCA+IiRDT05GSUdfTFQiIDw8X0xURU9GCi0rIyEgJFNIRUxMCi0r IyBHZW5lcmF0ZWQgYnkgJGFzX21lLgotKyMgUnVuIHRoaXMgZmlsZSB0byByZWNyZWF0ZSBhIGxp YnRvb2wgc3R1YiB3aXRoIHRoZSBjdXJyZW50IGNvbmZpZ3VyYXRpb24uCi0rCi0rbHRfY2xfc2ls ZW50PWZhbHNlCi0rU0hFTEw9XCR7Q09ORklHX1NIRUxMLSRTSEVMTH0KLStfTFRFT0YKLSsKLStj YXQgPj4iJENPTkZJR19MVCIgPDxcX0xURU9GCi0rQVNfU0hFTExfU0FOSVRJWkUKLStfQVNfUFJF UEFSRQotKwotK2V4ZWMgQVNfTUVTU0FHRV9GRD4mMQotK2V4ZWMgQVNfTUVTU0FHRV9MT0dfRkQ+ PmNvbmZpZy5sb2cKLSt7Ci0rICBlY2hvCi0rICBBU19CT1goW1J1bm5pbmcgJGFzX21lLl0pCi0r fSA+JkFTX01FU1NBR0VfTE9HX0ZECi0rCi0rbHRfY2xfaGVscD0iXAotK1xgJGFzX21lJyBjcmVh dGVzIGEgbG9jYWwgbGlidG9vbCBzdHViIGZyb20gdGhlIGN1cnJlbnQgY29uZmlndXJhdGlvbiwK LStmb3IgdXNlIGluIGZ1cnRoZXIgY29uZmlndXJlIHRpbWUgdGVzdHMgYmVmb3JlIHRoZSByZWFs IGxpYnRvb2wgaXMKLStnZW5lcmF0ZWQuCi0rCi0rVXNhZ2U6ICRbMF0gW1tPUFRJT05TXV0KLSsK LSsgIC1oLCAtLWhlbHAgICAgICBwcmludCB0aGlzIGhlbHAsIHRoZW4gZXhpdAotKyAgLVYsIC0t dmVyc2lvbiAgIHByaW50IHZlcnNpb24gbnVtYmVyLCB0aGVuIGV4aXQKLSsgIC1xLCAtLXF1aWV0 ICAgICBkbyBub3QgcHJpbnQgcHJvZ3Jlc3MgbWVzc2FnZXMKLSsgIC1kLCAtLWRlYnVnICAgICBk b24ndCByZW1vdmUgdGVtcG9yYXJ5IGZpbGVzCi0rCi0rUmVwb3J0IGJ1Z3MgdG8gPGJ1Zy1saWJ0 b29sQGdudS5vcmc+LiIKLSsKLStsdF9jbF92ZXJzaW9uPSJcCi0rbTRfaWZzZXQoW0FDX1BBQ0tB R0VfTkFNRV0sIFtBQ19QQUNLQUdFX05BTUUgXSljb25maWcubHRbXWRubAotK200X2lmc2V0KFtB Q19QQUNLQUdFX1ZFUlNJT05dLCBbIEFDX1BBQ0tBR0VfVkVSU0lPTl0pCi0rY29uZmlndXJlZCBi eSAkWzBdLCBnZW5lcmF0ZWQgYnkgbTRfUEFDS0FHRV9TVFJJTkcuCi0rCi0rQ29weXJpZ2h0IChD KSAyMDA4IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgotK1RoaXMgY29uZmlnLmx0IHNj cmlwdCBpcyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCi0rZ2l2 ZXMgdW5saW1pdGVkIHBlcm1pc2lvbiB0byBjb3B5LCBkaXN0cmlidXRlIGFuZCBtb2RpZnkgaXQu IgotKwotK3doaWxlIHRlc3QgJFsjXSAhPSAwCi0rZG8KLSsgIGNhc2UgJFsxXSBpbgotKyAgICAt LXZlcnNpb24gfCAtLXYqIHwgLVYgKQotKyAgICAgIGVjaG8gIiRsdF9jbF92ZXJzaW9uIjsgZXhp dCAwIDs7Ci0rICAgIC0taGVscCB8IC0taCogfCAtaCApCi0rICAgICAgZWNobyAiJGx0X2NsX2hl bHAiOyBleGl0IDAgOzsKLSsgICAgLS1kZWJ1ZyB8IC0tZCogfCAtZCApCi0rICAgICAgZGVidWc9 OiA7OwotKyAgICAtLXF1aWV0IHwgLS1xKiB8IC0tc2lsZW50IHwgLS1zKiB8IC1xICkKLSsgICAg ICBsdF9jbF9zaWxlbnQ9OiA7OwotKwotKyAgICAtKikgQUNfTVNHX0VSUk9SKFt1bnJlY29nbml6 ZWQgb3B0aW9uOiAkWzFdCi0rVHJ5IFxgJFswXSAtLWhlbHAnIGZvciBtb3JlIGluZm9ybWF0aW9u Ll0pIDs7Ci0rCi0rICAgICopIEFDX01TR19FUlJPUihbdW5yZWNvZ25pemVkIGFyZ3VtZW50OiAk WzFdCi0rVHJ5IFxgJFswXSAtLWhlbHAnIGZvciBtb3JlIGluZm9ybWF0aW9uLl0pIDs7Ci0rICBl c2FjCi0rICBzaGlmdAotK2RvbmUKLSsKLStpZiAkbHRfY2xfc2lsZW50OyB0aGVuCi0rICBleGVj IEFTX01FU1NBR0VfRkQ+L2Rldi9udWxsCi0rZmkKLStfTFRFT0YKLSsKLStjYXQgPj4iJENPTkZJ R19MVCIgPDxfTFRFT0YKLStfTFRfT1VUUFVUX0xJQlRPT0xfQ09NTUFORFNfSU5JVAotK19MVEVP RgotKwotK2NhdCA+PiIkQ09ORklHX0xUIiA8PFxfTFRFT0YKLStBQ19NU0dfTk9USUNFKFtjcmVh dGluZyAkb2ZpbGVdKQotK19MVF9PVVRQVVRfTElCVE9PTF9DT01NQU5EUwotK0FTX0VYSVQoMCkK LStfTFRFT0YKLStjaG1vZCAreCAiJENPTkZJR19MVCIKLSsKLSsjIGNvbmZpZ3VyZSBpcyB3cml0 aW5nIHRvIGNvbmZpZy5sb2csIGJ1dCBjb25maWcubHQgZG9lcyBpdHMgb3duIHJlZGlyZWN0aW9u LAotKyMgYXBwZW5kaW5nIHRvIGNvbmZpZy5sb2csIHdoaWNoIGZhaWxzIG9uIERPUywgYXMgY29u ZmlnLmxvZyBpcyBzdGlsbCBrZXB0Ci0rIyBvcGVuIGJ5IGNvbmZpZ3VyZS4gIEhlcmUgd2UgZXhl YyB0aGUgRkQgdG8gL2Rldi9udWxsLCBlZmZlY3RpdmVseSBjbG9zaW5nCi0rIyBjb25maWcubG9n LCBzbyBpdCBjYW4gYmUgcHJvcGVybHkgKHJlKW9wZW5lZCBhbmQgYXBwZW5kZWQgdG8gYnkgY29u ZmlnLmx0LgotK2lmIHRlc3QgIiRub19jcmVhdGUiICE9IHllczsgdGhlbgotKyAgbHRfY2xfc3Vj Y2Vzcz06Ci0rICB0ZXN0ICIkc2lsZW50IiA9IHllcyAmJgotKyAgICBsdF9jb25maWdfbHRfYXJn cz0iJGx0X2NvbmZpZ19sdF9hcmdzIC0tcXVpZXQiCi0rICBleGVjIEFTX01FU1NBR0VfTE9HX0ZE Pi9kZXYvbnVsbAotKyAgJFNIRUxMICIkQ09ORklHX0xUIiAkbHRfY29uZmlnX2x0X2FyZ3MgfHwg bHRfY2xfc3VjY2Vzcz1mYWxzZQotKyAgZXhlYyBBU19NRVNTQUdFX0xPR19GRD4+Y29uZmlnLmxv ZwotKyAgJGx0X2NsX3N1Y2Nlc3MgfHwgQVNfRVhJVCgxKQotK2ZpCi0rXSkjIExUX09VVFBVVAot KwotKwotKyMgX0xUX0NPTkZJRyhUQUcpCi0rIyAtLS0tLS0tLS0tLS0tLS0KLSsjIElmIFRBRyBp cyB0aGUgYnVpbHQtaW4gdGFnLCBjcmVhdGUgYW4gaW5pdGlhbCBsaWJ0b29sIHNjcmlwdCB3aXRo IGEKLSsjIGRlZmF1bHQgY29uZmlndXJhdGlvbiBmcm9tIHRoZSB1bnRhZ2dlZCBjb25maWcgdmFy cy4gIE90aGVyd2lzZSBhZGQgY29kZQotKyMgdG8gY29uZmlnLnN0YXR1cyBmb3IgYXBwZW5kaW5n IHRoZSBjb25maWd1cmF0aW9uIG5hbWVkIGJ5IFRBRyBmcm9tIHRoZQotKyMgbWF0Y2hpbmcgdGFn Z2VkIGNvbmZpZyB2YXJzLgotK200X2RlZnVuKFtfTFRfQ09ORklHXSwKLStbbTRfcmVxdWlyZShb X0xUX0ZJTEVVVElMU19ERUZBVUxUU10pZG5sCi0rX0xUX0NPTkZJR19TQVZFX0NPTU1BTkRTKFsK LSsgIG00X2RlZmluZShbX0xUX1RBR10sIG00X2lmKFskMV0sIFtdLCBbQ10sIFskMV0pKWRubAot KyAgbTRfaWYoX0xUX1RBRywgW0NdLCBbCi0rICAgICMgU2VlIGlmIHdlIGFyZSBydW5uaW5nIG9u IHpzaCwgYW5kIHNldCB0aGUgb3B0aW9ucyB3aGljaCBhbGxvdyBvdXIKLSsgICAgIyBjb21tYW5k cyB0aHJvdWdoIHdpdGhvdXQgcmVtb3ZhbCBvZiBcIGVzY2FwZXMuCi0rICAgIGlmIHRlc3QgLW4g IiR7WlNIX1ZFUlNJT04rc2V0fSIgOyB0aGVuCi0rICAgICAgc2V0b3B0IE5PX0dMT0JfU1VCU1QK LSsgICAgZmkKLSsKLSsgICAgY2ZnZmlsZT0iJHtvZmlsZX1UIgotKyAgICB0cmFwICIkUk0gXCIk Y2ZnZmlsZVwiOyBleGl0IDEiIDEgMiAxNQotKyAgICAkUk0gIiRjZmdmaWxlIgotKwotKyAgICBj YXQgPDxfTFRfRU9GID4+ICIkY2ZnZmlsZSIKLSsjISAkU0hFTEwKLSsKLSsjIGAkRUNITyAiJG9m aWxlIiB8IHNlZCAncyVeLiovJSUnYCAtIFByb3ZpZGUgZ2VuZXJhbGl6ZWQgbGlicmFyeS1idWls ZGluZyBzdXBwb3J0IHNlcnZpY2VzLgotKyMgR2VuZXJhdGVkIGF1dG9tYXRpY2FsbHkgYnkgJGFz X21lICgkUEFDS0FHRSRUSU1FU1RBTVApICRWRVJTSU9OCi0rIyBMaWJ0b29sIHdhcyBjb25maWd1 cmVkIG9uIGhvc3QgYChob3N0bmFtZSB8fCB1bmFtZSAtbikgMj4vZGV2L251bGwgfCBzZWQgMXFg OgotKyMgTk9URTogQ2hhbmdlcyBtYWRlIHRvIHRoaXMgZmlsZSB3aWxsIGJlIGxvc3Q6IGxvb2sg YXQgbHRtYWluLnNoLgotKyMKLStfTFRfQ09QWUlORwotK19MVF9MSUJUT09MX1RBR1MKLSsKLSsj ICMjIyBCRUdJTiBMSUJUT09MIENPTkZJRwotK19MVF9MSUJUT09MX0NPTkZJR19WQVJTCi0rX0xU X0xJQlRPT0xfVEFHX1ZBUlMKLSsjICMjIyBFTkQgTElCVE9PTCBDT05GSUcKLSsKLStfTFRfRU9G Ci0rCi0rICBjYXNlICRob3N0X29zIGluCi0rICBhaXgzKikKLSsgICAgY2F0IDw8XF9MVF9FT0Yg Pj4gIiRjZmdmaWxlIgotKyMgQUlYIHNvbWV0aW1lcyBoYXMgcHJvYmxlbXMgd2l0aCB0aGUgR0ND IGNvbGxlY3QyIHByb2dyYW0uICBGb3Igc29tZQotKyMgcmVhc29uLCBpZiB3ZSBzZXQgdGhlIENP TExFQ1RfTkFNRVMgZW52aXJvbm1lbnQgdmFyaWFibGUsIHRoZSBwcm9ibGVtcwotKyMgdmFuaXNo IGluIGEgcHVmZiBvZiBzbW9rZS4KLStpZiB0ZXN0ICJYJHtDT0xMRUNUX05BTUVTK3NldH0iICE9 IFhzZXQ7IHRoZW4KLSsgIENPTExFQ1RfTkFNRVM9Ci0rICBleHBvcnQgQ09MTEVDVF9OQU1FUwot K2ZpCi0rX0xUX0VPRgotKyAgICA7OwotKyAgZXNhYwotKwotKyAgX0xUX1BST0dfTFRNQUlOCi0r Ci0rICAjIFdlIHVzZSBzZWQgaW5zdGVhZCBvZiBjYXQgYmVjYXVzZSBiYXNoIG9uIERKR1BQIGdl dHMgY29uZnVzZWQgaWYKLSsgICMgaWYgZmluZHMgbWl4ZWQgQ1IvTEYgYW5kIExGLW9ubHkgbGlu ZXMuICBTaW5jZSBzZWQgb3BlcmF0ZXMgaW4KLSsgICMgdGV4dCBtb2RlLCBpdCBwcm9wZXJseSBj b252ZXJ0cyBsaW5lcyB0byBDUi9MRi4gIFRoaXMgYmFzaCBwcm9ibGVtCi0rICAjIGlzIHJlcG9y dGVkbHkgZml4ZWQsIGJ1dCB3aHkgbm90IHJ1biBvbiBvbGQgdmVyc2lvbnMgdG9vPwotKyAgc2Vk ICcvXiMgR2VuZXJhdGVkIHNoZWxsIGZ1bmN0aW9ucyBpbnNlcnRlZCBoZXJlL3EnICIkbHRtYWlu IiA+PiAiJGNmZ2ZpbGUiIFwKLSsgICAgfHwgKHJtIC1mICIkY2ZnZmlsZSI7IGV4aXQgMSkKLSsK LSsgIF9MVF9QUk9HX1hTSV9TSEVMTEZOUwotKwotKyAgc2VkIC1uICcvXiMgR2VuZXJhdGVkIHNo ZWxsIGZ1bmN0aW9ucyBpbnNlcnRlZCBoZXJlLywkcCcgIiRsdG1haW4iID4+ICIkY2ZnZmlsZSIg XAotKyAgICB8fCAocm0gLWYgIiRjZmdmaWxlIjsgZXhpdCAxKQotKwotKyAgbXYgLWYgIiRjZmdm aWxlIiAiJG9maWxlIiB8fAotKyAgICAocm0gLWYgIiRvZmlsZSIgJiYgY3AgIiRjZmdmaWxlIiAi JG9maWxlIiAmJiBybSAtZiAiJGNmZ2ZpbGUiKQotKyAgY2htb2QgK3ggIiRvZmlsZSIKLStdLAot K1tjYXQgPDxfTFRfRU9GID4+ICIkb2ZpbGUiCi0rCi0rZG5sIFVuZm9ydHVuYXRlbHkgd2UgaGF2 ZSB0byB1c2UgJDEgaGVyZSwgc2luY2UgX0xUX1RBRyBpcyBub3QgZXhwYW5kZWQKLStkbmwgaW4g YSBjb21tZW50IChpZSBhZnRlciBhICMpLgotKyMgIyMjIEJFR0lOIExJQlRPT0wgVEFHIENPTkZJ RzogJDEKLStfTFRfTElCVE9PTF9UQUdfVkFSUyhfTFRfVEFHKQotKyMgIyMjIEVORCBMSUJUT09M IFRBRyBDT05GSUc6ICQxCi0rX0xUX0VPRgotK10pZG5sIC9tNF9pZgotK10sCi0rW200X2lmKFsk MV0sIFtdLCBbCi0rICAgIFBBQ0tBR0U9JyRQQUNLQUdFJwotKyAgICBWRVJTSU9OPSckVkVSU0lP TicKLSsgICAgVElNRVNUQU1QPSckVElNRVNUQU1QJwotKyAgICBSTT0nJFJNJwotKyAgICBvZmls ZT0nJG9maWxlJ10sIFtdKQotK10pZG5sIC9fTFRfQ09ORklHX1NBVkVfQ09NTUFORFMKLStdKSMg X0xUX0NPTkZJRwotKwotKwotKyMgTFRfU1VQUE9SVEVEX1RBRyhUQUcpCi0rIyAtLS0tLS0tLS0t LS0tLS0tLS0tLS0KLSsjIFRyYWNlIHRoaXMgbWFjcm8gdG8gZGlzY292ZXIgd2hhdCB0YWdzIGFy ZSBzdXBwb3J0ZWQgYnkgdGhlIGxpYnRvb2wKLSsjIC0tdGFnIG9wdGlvbiwgdXNpbmc6Ci0rIyAg ICBhdXRvY29uZiAtLXRyYWNlICdMVF9TVVBQT1JURURfVEFHOiQxJwotK0FDX0RFRlVOKFtMVF9T VVBQT1JURURfVEFHXSwgW10pCi0rCi0rCi0rIyBDIHN1cHBvcnQgaXMgYnVpbHQtaW4gZm9yIG5v dwotK200X2RlZmluZShbX0xUX0xBTkdfQ19lbmFibGVkXSwgW10pCi0rbTRfZGVmaW5lKFtfTFRf VEFHU10sIFtdKQotKwotKwotKyMgTFRfTEFORyhMQU5HKQotKyMgLS0tLS0tLS0tLS0tLQotKyMg RW5hYmxlIGxpYnRvb2wgc3VwcG9ydCBmb3IgdGhlIGdpdmVuIGxhbmd1YWdlIGlmIG5vdCBhbHJl YWR5IGVuYWJsZWQuCi0rQUNfREVGVU4oW0xUX0xBTkddLAotK1tBQ19CRUZPUkUoWyQwXSwgW0xU X09VVFBVVF0pZG5sCi0rbTRfY2FzZShbJDFdLAotKyAgW0NdLAkJCVtfTFRfTEFORyhDKV0sCi0r ICBbQysrXSwJCVtfTFRfTEFORyhDWFgpXSwKLSsgIFtKYXZhXSwJCVtfTFRfTEFORyhHQ0opXSwK LSsgIFtGb3J0cmFuIDc3XSwJCVtfTFRfTEFORyhGNzcpXSwKLSsgIFtGb3J0cmFuXSwJCVtfTFRf TEFORyhGQyldLAotKyAgW1dpbmRvd3MgUmVzb3VyY2VdLAlbX0xUX0xBTkcoUkMpXSwKLSsgIFtt NF9pZmRlZihbX0xUX0xBTkdfXSQxW19DT05GSUddLAotKyAgICBbX0xUX0xBTkcoJDEpXSwKLSsg ICAgW200X2ZhdGFsKFskMDogdW5zdXBwb3J0ZWQgbGFuZ3VhZ2U6ICIkMSJdKV0pXSlkbmwKLStd KSMgTFRfTEFORwotKwotKwotKyMgX0xUX0xBTkcoTEFOR05BTUUpCi0rIyAtLS0tLS0tLS0tLS0t LS0tLS0KLSttNF9kZWZ1bihbX0xUX0xBTkddLAotK1ttNF9pZmRlZihbX0xUX0xBTkdfXSQxW19l bmFibGVkXSwgW10sCi0rICBbTFRfU1VQUE9SVEVEX1RBRyhbJDFdKWRubAotKyAgbTRfYXBwZW5k KFtfTFRfVEFHU10sIFskMSBdKWRubAotKyAgbTRfZGVmaW5lKFtfTFRfTEFOR19dJDFbX2VuYWJs ZWRdLCBbXSlkbmwKLSsgIF9MVF9MQU5HXyQxX0NPTkZJRygkMSldKWRubAotK10pIyBfTFRfTEFO RwotKwotKwotKyMgX0xUX0xBTkdfREVGQVVMVF9DT05GSUcKLSsjIC0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCi0rbTRfZGVmdW4oW19MVF9MQU5HX0RFRkFVTFRfQ09ORklHXSwKLStbQUNfUFJPVklE RV9JRkVMU0UoW0FDX1BST0dfQ1hYXSwKLSsgIFtMVF9MQU5HKENYWCldLAotKyAgW200X2RlZmlu ZShbQUNfUFJPR19DWFhdLCBkZWZuKFtBQ19QUk9HX0NYWF0pW0xUX0xBTkcoQ1hYKV0pXSkKLSsK LStBQ19QUk9WSURFX0lGRUxTRShbQUNfUFJPR19GNzddLAotKyAgW0xUX0xBTkcoRjc3KV0sCi0r ICBbbTRfZGVmaW5lKFtBQ19QUk9HX0Y3N10sIGRlZm4oW0FDX1BST0dfRjc3XSlbTFRfTEFORyhG NzcpXSldKQotKwotK0FDX1BST1ZJREVfSUZFTFNFKFtBQ19QUk9HX0ZDXSwKLSsgIFtMVF9MQU5H KEZDKV0sCi0rICBbbTRfZGVmaW5lKFtBQ19QUk9HX0ZDXSwgZGVmbihbQUNfUFJPR19GQ10pW0xU X0xBTkcoRkMpXSldKQotKwotK2RubCBUaGUgY2FsbCB0byBbQV1bTV9QUk9HX0dDSl0gaXMgcXVv dGVkIGxpa2UgdGhhdCB0byBzdG9wIGFjbG9jYWwKLStkbmwgcHVsbGluZyB0aGluZ3MgaW4gbmVl ZGxlc3NseS4KLStBQ19QUk9WSURFX0lGRUxTRShbQUNfUFJPR19HQ0pdLAotKyAgW0xUX0xBTkco R0NKKV0sCi0rICBbQUNfUFJPVklERV9JRkVMU0UoW0FdW01fUFJPR19HQ0pdLAotKyAgICBbTFRf TEFORyhHQ0opXSwKLSsgICAgW0FDX1BST1ZJREVfSUZFTFNFKFtMVF9QUk9HX0dDSl0sCi0rICAg ICAgW0xUX0xBTkcoR0NKKV0sCi0rICAgICAgW200X2lmZGVmKFtBQ19QUk9HX0dDSl0sCi0rCVtt NF9kZWZpbmUoW0FDX1BST0dfR0NKXSwgZGVmbihbQUNfUFJPR19HQ0pdKVtMVF9MQU5HKEdDSild KV0pCi0rICAgICAgIG00X2lmZGVmKFtBXVtNX1BST0dfR0NKXSwKLSsJW200X2RlZmluZShbQV1b TV9QUk9HX0dDSl0sIGRlZm4oW0FdW01fUFJPR19HQ0pdKVtMVF9MQU5HKEdDSildKV0pCi0rICAg ICAgIG00X2lmZGVmKFtMVF9QUk9HX0dDSl0sCi0rCVttNF9kZWZpbmUoW0xUX1BST0dfR0NKXSwg ZGVmbihbTFRfUFJPR19HQ0pdKVtMVF9MQU5HKEdDSildKV0pXSldKV0pCi0rCi0rQUNfUFJPVklE RV9JRkVMU0UoW0xUX1BST0dfUkNdLAotKyAgW0xUX0xBTkcoUkMpXSwKLSsgIFttNF9kZWZpbmUo W0xUX1BST0dfUkNdLCBkZWZuKFtMVF9QUk9HX1JDXSlbTFRfTEFORyhSQyldKV0pCi0rXSkjIF9M VF9MQU5HX0RFRkFVTFRfQ09ORklHCi0rCi0rIyBPYnNvbGV0ZSBtYWNyb3M6Ci0rQVVfREVGVU4o W0FDX0xJQlRPT0xfQ1hYXSwgW0xUX0xBTkcoQysrKV0pCi0rQVVfREVGVU4oW0FDX0xJQlRPT0xf Rjc3XSwgW0xUX0xBTkcoRm9ydHJhbiA3NyldKQotK0FVX0RFRlVOKFtBQ19MSUJUT09MX0ZDXSwg W0xUX0xBTkcoRm9ydHJhbildKQotK0FVX0RFRlVOKFtBQ19MSUJUT09MX0dDSl0sIFtMVF9MQU5H KEphdmEpXSkKLStkbmwgYWNsb2NhbC0xLjQgYmFja3dhcmRzIGNvbXBhdGliaWxpdHk6Ci0rZG5s IEFDX0RFRlVOKFtBQ19MSUJUT09MX0NYWF0sIFtdKQotK2RubCBBQ19ERUZVTihbQUNfTElCVE9P TF9GNzddLCBbXSkKLStkbmwgQUNfREVGVU4oW0FDX0xJQlRPT0xfRkNdLCBbXSkKLStkbmwgQUNf REVGVU4oW0FDX0xJQlRPT0xfR0NKXSwgW10pCi0rCi0rCi0rIyBfTFRfVEFHX0NPTVBJTEVSCi0r IyAtLS0tLS0tLS0tLS0tLS0tCi0rbTRfZGVmdW4oW19MVF9UQUdfQ09NUElMRVJdLAotK1tBQ19S RVFVSVJFKFtBQ19QUk9HX0NDXSlkbmwKLSsKLStfTFRfREVDTChbTFRDQ10sIFtDQ10sIFsxXSwg W0EgQyBjb21waWxlcl0pZG5sCi0rX0xUX0RFQ0woW0xUQ0ZMQUdTXSwgW0NGTEFHU10sIFsxXSwg W0xUQ0MgY29tcGlsZXIgZmxhZ3NdKWRubAotK19MVF9UQUdERUNMKFtDQ10sIFtjb21waWxlcl0s IFsxXSwgW0EgbGFuZ3VhZ2Ugc3BlY2lmaWMgY29tcGlsZXJdKWRubAotK19MVF9UQUdERUNMKFt3 aXRoX2djY10sIFtHQ0NdLCBbMF0sIFtJcyB0aGUgY29tcGlsZXIgdGhlIEdOVSBjb21waWxlcj9d KWRubAotKwotKyMgSWYgbm8gQyBjb21waWxlciB3YXMgc3BlY2lmaWVkLCB1c2UgQ0MuCi0rTFRD Qz0ke0xUQ0MtIiRDQyJ9Ci0rCi0rIyBJZiBubyBDIGNvbXBpbGVyIGZsYWdzIHdlcmUgc3BlY2lm aWVkLCB1c2UgQ0ZMQUdTLgotK0xUQ0ZMQUdTPSR7TFRDRkxBR1MtIiRDRkxBR1MifQotKwotKyMg QWxsb3cgQ0MgdG8gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmd1bWVudHMuCi0rY29tcGlsZXI9 JENDCi0rXSkjIF9MVF9UQUdfQ09NUElMRVIKLSsKLSsKLSsjIF9MVF9DT01QSUxFUl9CT0lMRVJQ TEFURQotKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0rIyBDaGVjayBmb3IgY29tcGlsZXIg Ym9pbGVycGxhdGUgb3V0cHV0IG9yIHdhcm5pbmdzIHdpdGgKLSsjIHRoZSBzaW1wbGUgY29tcGls ZXIgdGVzdCBjb2RlLgotK200X2RlZnVuKFtfTFRfQ09NUElMRVJfQk9JTEVSUExBVEVdLAotK1tt NF9yZXF1aXJlKFtfTFRfREVDTF9TRURdKWRubAotK2FjX291dGZpbGU9Y29uZnRlc3QuJGFjX29i amV4dAotK2VjaG8gIiRsdF9zaW1wbGVfY29tcGlsZV90ZXN0X2NvZGUiID5jb25mdGVzdC4kYWNf ZXh0Ci0rZXZhbCAiJGFjX2NvbXBpbGUiIDI+JjEgPi9kZXYvbnVsbCB8ICRTRUQgJy9eJC9kOyAv XiAqKy9kJyA+Y29uZnRlc3QuZXJyCi0rX2x0X2NvbXBpbGVyX2JvaWxlcnBsYXRlPWBjYXQgY29u ZnRlc3QuZXJyYAotKyRSTSBjb25mdGVzdCoKLStdKSMgX0xUX0NPTVBJTEVSX0JPSUxFUlBMQVRF Ci0rCi0rCi0rIyBfTFRfTElOS0VSX0JPSUxFUlBMQVRFCi0rIyAtLS0tLS0tLS0tLS0tLS0tLS0t LS0tCi0rIyBDaGVjayBmb3IgbGlua2VyIGJvaWxlcnBsYXRlIG91dHB1dCBvciB3YXJuaW5ncyB3 aXRoCi0rIyB0aGUgc2ltcGxlIGxpbmsgdGVzdCBjb2RlLgotK200X2RlZnVuKFtfTFRfTElOS0VS X0JPSUxFUlBMQVRFXSwKLStbbTRfcmVxdWlyZShbX0xUX0RFQ0xfU0VEXSlkbmwKLSthY19vdXRm aWxlPWNvbmZ0ZXN0LiRhY19vYmpleHQKLStlY2hvICIkbHRfc2ltcGxlX2xpbmtfdGVzdF9jb2Rl IiA+Y29uZnRlc3QuJGFjX2V4dAotK2V2YWwgIiRhY19saW5rIiAyPiYxID4vZGV2L251bGwgfCAk U0VEICcvXiQvZDsgL14gKisvZCcgPmNvbmZ0ZXN0LmVycgotK19sdF9saW5rZXJfYm9pbGVycGxh dGU9YGNhdCBjb25mdGVzdC5lcnJgCi0rJFJNIC1yIGNvbmZ0ZXN0KgotK10pIyBfTFRfTElOS0VS X0JPSUxFUlBMQVRFCi0rCi0rIyBfTFRfUkVRVUlSRURfREFSV0lOX0NIRUNLUwotKyMgLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQotK200X2RlZnVuX29uY2UoW19MVF9SRVFVSVJFRF9EQVJXSU5f Q0hFQ0tTXSxbCi0rICBjYXNlICRob3N0X29zIGluCi0rICAgIHJoYXBzb2R5KiB8IGRhcndpbiop Ci0rICAgIEFDX0NIRUNLX1RPT0woW0RTWU1VVElMXSwgW2RzeW11dGlsXSwgWzpdKQotKyAgICBB Q19DSEVDS19UT09MKFtOTUVESVRdLCBbbm1lZGl0XSwgWzpdKQotKyAgICBBQ19DSEVDS19UT09M KFtMSVBPXSwgW2xpcG9dLCBbOl0pCi0rICAgIEFDX0NIRUNLX1RPT0woW09UT09MXSwgW290b29s XSwgWzpdKQotKyAgICBBQ19DSEVDS19UT09MKFtPVE9PTDY0XSwgW290b29sNjRdLCBbOl0pCi0r ICAgIF9MVF9ERUNMKFtdLCBbRFNZTVVUSUxdLCBbMV0sCi0rICAgICAgW1Rvb2wgdG8gbWFuaXB1 bGF0ZSBhcmNoaXZlZCBEV0FSRiBkZWJ1ZyBzeW1ib2wgZmlsZXMgb24gTWFjIE9TIFhdKQotKyAg ICBfTFRfREVDTChbXSwgW05NRURJVF0sIFsxXSwKLSsgICAgICBbVG9vbCB0byBjaGFuZ2UgZ2xv YmFsIHRvIGxvY2FsIHN5bWJvbHMgb24gTWFjIE9TIFhdKQotKyAgICBfTFRfREVDTChbXSwgW0xJ UE9dLCBbMV0sCi0rICAgICAgW1Rvb2wgdG8gbWFuaXB1bGF0ZSBmYXQgb2JqZWN0cyBhbmQgYXJj aGl2ZXMgb24gTWFjIE9TIFhdKQotKyAgICBfTFRfREVDTChbXSwgW09UT09MXSwgWzFdLAotKyAg ICAgIFtsZGQvcmVhZGVsZiBsaWtlIHRvb2wgZm9yIE1hY2gtTyBiaW5hcmllcyBvbiBNYWMgT1Mg WF0pCi0rICAgIF9MVF9ERUNMKFtdLCBbT1RPT0w2NF0sIFsxXSwKLSsgICAgICBbbGRkL3JlYWRl bGYgbGlrZSB0b29sIGZvciA2NCBiaXQgTWFjaC1PIGJpbmFyaWVzIG9uIE1hYyBPUyBYIDEwLjRd KQotKwotKyAgICBBQ19DQUNIRV9DSEVDSyhbZm9yIC1zaW5nbGVfbW9kdWxlIGxpbmtlciBmbGFn XSxbbHRfY3ZfYXBwbGVfY2Nfc2luZ2xlX21vZF0sCi0rICAgICAgW2x0X2N2X2FwcGxlX2NjX3Np bmdsZV9tb2Q9bm8KLSsgICAgICBpZiB0ZXN0IC16ICIke0xUX01VTFRJX01PRFVMRX0iOyB0aGVu Ci0rCSMgQnkgZGVmYXVsdCB3ZSB3aWxsIGFkZCB0aGUgLXNpbmdsZV9tb2R1bGUgZmxhZy4gWW91 IGNhbiBvdmVycmlkZQotKwkjIGJ5IGVpdGhlciBzZXR0aW5nIHRoZSBlbnZpcm9ubWVudCB2YXJp YWJsZSBMVF9NVUxUSV9NT0RVTEUKLSsJIyBub24tZW1wdHkgYXQgY29uZmlndXJlIHRpbWUsIG9y IGJ5IGFkZGluZyAtbXVsdGlfbW9kdWxlIHRvIHRoZQotKwkjIGxpbmsgZmxhZ3MuCi0rCXJtIC1y ZiBsaWJjb25mdGVzdC5keWxpYioKLSsJZWNobyAiaW50IGZvbyh2b2lkKXtyZXR1cm4gMTt9IiA+ IGNvbmZ0ZXN0LmMKLSsJZWNobyAiJExUQ0MgJExUQ0ZMQUdTICRMREZMQUdTIC1vIGxpYmNvbmZ0 ZXN0LmR5bGliIFwKLSstZHluYW1pY2xpYiAtV2wsLXNpbmdsZV9tb2R1bGUgY29uZnRlc3QuYyIg PiZBU19NRVNTQUdFX0xPR19GRAotKwkkTFRDQyAkTFRDRkxBR1MgJExERkxBR1MgLW8gbGliY29u ZnRlc3QuZHlsaWIgXAotKwkgIC1keW5hbWljbGliIC1XbCwtc2luZ2xlX21vZHVsZSBjb25mdGVz dC5jIDI+Y29uZnRlc3QuZXJyCi0rICAgICAgICBfbHRfcmVzdWx0PSQ/Ci0rCWlmIHRlc3QgLWYg bGliY29uZnRlc3QuZHlsaWIgJiYgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVyciAmJiB0ZXN0ICRfbHRf cmVzdWx0ID0gMDsgdGhlbgotKwkgIGx0X2N2X2FwcGxlX2NjX3NpbmdsZV9tb2Q9eWVzCi0rCWVs c2UKLSsJICBjYXQgY29uZnRlc3QuZXJyID4mQVNfTUVTU0FHRV9MT0dfRkQKLSsJZmkKLSsJcm0g LXJmIGxpYmNvbmZ0ZXN0LmR5bGliKgotKwlybSAtZiBjb25mdGVzdC4qCi0rICAgICAgZmldKQot KyAgICBBQ19DQUNIRV9DSEVDSyhbZm9yIC1leHBvcnRlZF9zeW1ib2xzX2xpc3QgbGlua2VyIGZs YWddLAotKyAgICAgIFtsdF9jdl9sZF9leHBvcnRlZF9zeW1ib2xzX2xpc3RdLAotKyAgICAgIFts dF9jdl9sZF9leHBvcnRlZF9zeW1ib2xzX2xpc3Q9bm8KLSsgICAgICBzYXZlX0xERkxBR1M9JExE RkxBR1MKLSsgICAgICBlY2hvICJfbWFpbiIgPiBjb25mdGVzdC5zeW0KLSsgICAgICBMREZMQUdT PSIkTERGTEFHUyAtV2wsLWV4cG9ydGVkX3N5bWJvbHNfbGlzdCxjb25mdGVzdC5zeW0iCi0rICAg ICAgQUNfTElOS19JRkVMU0UoW0FDX0xBTkdfUFJPR1JBTShbXSxbXSldLAotKwlbbHRfY3ZfbGRf ZXhwb3J0ZWRfc3ltYm9sc19saXN0PXllc10sCi0rCVtsdF9jdl9sZF9leHBvcnRlZF9zeW1ib2xz X2xpc3Q9bm9dKQotKwlMREZMQUdTPSIkc2F2ZV9MREZMQUdTIgotKyAgICBdKQotKyAgICBjYXNl ICRob3N0X29zIGluCi0rICAgIHJoYXBzb2R5KiB8IGRhcndpbjEuW1swMTJdXSkKLSsgICAgICBf bHRfZGFyX2FsbG93X3VuZGVmaW5lZD0nJHt3bH0tdW5kZWZpbmVkICR7d2x9c3VwcHJlc3MnIDs7 Ci0rICAgIGRhcndpbjEuKikKLSsgICAgICBfbHRfZGFyX2FsbG93X3VuZGVmaW5lZD0nJHt3bH0t ZmxhdF9uYW1lc3BhY2UgJHt3bH0tdW5kZWZpbmVkICR7d2x9c3VwcHJlc3MnIDs7Ci0rICAgIGRh cndpbiopICMgZGFyd2luIDUueCBvbgotKyAgICAgICMgaWYgcnVubmluZyBvbiAxMC41IG9yIGxh dGVyLCB0aGUgZGVwbG95bWVudCB0YXJnZXQgZGVmYXVsdHMKLSsgICAgICAjIHRvIHRoZSBPUyB2 ZXJzaW9uLCBpZiBvbiB4ODYsIGFuZCAxMC40LCB0aGUgZGVwbG95bWVudAotKyAgICAgICMgdGFy Z2V0IGRlZmF1bHRzIHRvIDEwLjQuIERvbid0IHlvdSBsb3ZlIGl0PwotKyAgICAgIGNhc2UgJHtN QUNPU1hfREVQTE9ZTUVOVF9UQVJHRVQtMTAuMH0sJGhvc3QgaW4KLSsJMTAuMCwqODYqLWRhcndp bjgqfDEwLjAsKi1kYXJ3aW5bWzkxXV0qKQotKwkgIF9sdF9kYXJfYWxsb3dfdW5kZWZpbmVkPSck e3dsfS11bmRlZmluZWQgJHt3bH1keW5hbWljX2xvb2t1cCcgOzsKLSsJMTAuW1swMTJdXSopCi0r CSAgX2x0X2Rhcl9hbGxvd191bmRlZmluZWQ9JyR7d2x9LWZsYXRfbmFtZXNwYWNlICR7d2x9LXVu ZGVmaW5lZCAke3dsfXN1cHByZXNzJyA7OwotKwkxMC4qKQotKwkgIF9sdF9kYXJfYWxsb3dfdW5k ZWZpbmVkPScke3dsfS11bmRlZmluZWQgJHt3bH1keW5hbWljX2xvb2t1cCcgOzsKLSsgICAgICBl c2FjCi0rICAgIDs7Ci0rICBlc2FjCi0rICAgIGlmIHRlc3QgIiRsdF9jdl9hcHBsZV9jY19zaW5n bGVfbW9kIiA9ICJ5ZXMiOyB0aGVuCi0rICAgICAgX2x0X2Rhcl9zaW5nbGVfbW9kPSckc2luZ2xl X21vZHVsZScKLSsgICAgZmkKLSsgICAgaWYgdGVzdCAiJGx0X2N2X2xkX2V4cG9ydGVkX3N5bWJv bHNfbGlzdCIgPSAieWVzIjsgdGhlbgotKyAgICAgIF9sdF9kYXJfZXhwb3J0X3N5bXM9JyAke3ds fS1leHBvcnRlZF9zeW1ib2xzX2xpc3QsJG91dHB1dF9vYmpkaXIvJHtsaWJuYW1lfS1zeW1ib2xz LmV4cHN5bScKLSsgICAgZWxzZQotKyAgICAgIF9sdF9kYXJfZXhwb3J0X3N5bXM9J34kTk1FRElU IC1zICRvdXRwdXRfb2JqZGlyLyR7bGlibmFtZX0tc3ltYm9scy5leHBzeW0gJHtsaWJ9JwotKyAg ICBmaQotKyAgICBpZiB0ZXN0ICIkRFNZTVVUSUwiICE9ICI6IjsgdGhlbgotKyAgICAgIF9sdF9k c3ltdXRpbD0nfiREU1lNVVRJTCAkbGliIHx8IDonCi0rICAgIGVsc2UKLSsgICAgICBfbHRfZHN5 bXV0aWw9Ci0rICAgIGZpCi0rICAgIDs7Ci0rICBlc2FjCi0rXSkKLSsKLSsKLSsjIF9MVF9EQVJX SU5fTElOS0VSX0ZFQVRVUkVTCi0rIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotKyMgQ2hl Y2tzIGZvciBsaW5rZXIgYW5kIGNvbXBpbGVyIGZlYXR1cmVzIG9uIGRhcndpbgotK200X2RlZnVu KFtfTFRfREFSV0lOX0xJTktFUl9GRUFUVVJFU10sCi0rWwotKyAgbTRfcmVxdWlyZShbX0xUX1JF UVVJUkVEX0RBUldJTl9DSEVDS1NdKQotKyAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHNfbmVlZF9s YywgJDEpPW5vCi0rICBfTFRfVEFHVkFSKGhhcmRjb2RlX2RpcmVjdCwgJDEpPW5vCi0rICBfTFRf VEFHVkFSKGhhcmRjb2RlX2F1dG9tYXRpYywgJDEpPXllcwotKyAgX0xUX1RBR1ZBUihoYXJkY29k ZV9zaGxpYnBhdGhfdmFyLCAkMSk9dW5zdXBwb3J0ZWQKLSsgIF9MVF9UQUdWQVIod2hvbGVfYXJj aGl2ZV9mbGFnX3NwZWMsICQxKT0nJwotKyAgX0xUX1RBR1ZBUihsaW5rX2FsbF9kZXBsaWJzLCAk MSk9eWVzCi0rICBfTFRfVEFHVkFSKGFsbG93X3VuZGVmaW5lZF9mbGFnLCAkMSk9IiRfbHRfZGFy X2FsbG93X3VuZGVmaW5lZCIKLSsgIGNhc2UgJGNjX2Jhc2VuYW1lIGluCi0rICAgICBpZm9ydCop IF9sdF9kYXJfY2FuX3NoYXJlZD15ZXMgOzsKLSsgICAgICopIF9sdF9kYXJfY2FuX3NoYXJlZD0k R0NDIDs7Ci0rICBlc2FjCi0rICBpZiB0ZXN0ICIkX2x0X2Rhcl9jYW5fc2hhcmVkIiA9ICJ5ZXMi OyB0aGVuCi0rICAgIG91dHB1dF92ZXJib3NlX2xpbmtfY21kPWVjaG8KLSsgICAgX0xUX1RBR1ZB UihhcmNoaXZlX2NtZHMsICQxKT0iXCRDQyAtZHluYW1pY2xpYiBcJGFsbG93X3VuZGVmaW5lZF9m bGFnIC1vIFwkbGliIFwkbGlib2JqcyBcJGRlcGxpYnMgXCRjb21waWxlcl9mbGFncyAtaW5zdGFs bF9uYW1lIFwkcnBhdGgvXCRzb25hbWUgXCR2ZXJzdHJpbmcgJF9sdF9kYXJfc2luZ2xlX21vZCR7 X2x0X2RzeW11dGlsfSIKLSsgICAgX0xUX1RBR1ZBUihtb2R1bGVfY21kcywgJDEpPSJcJENDIFwk YWxsb3dfdW5kZWZpbmVkX2ZsYWcgLW8gXCRsaWIgLWJ1bmRsZSBcJGxpYm9ianMgXCRkZXBsaWJz IFwkY29tcGlsZXJfZmxhZ3Mke19sdF9kc3ltdXRpbH0iCi0rICAgIF9MVF9UQUdWQVIoYXJjaGl2 ZV9leHBzeW1fY21kcywgJDEpPSJzZWQgJ3MsXixfLCcgPCBcJGV4cG9ydF9zeW1ib2xzID4gXCRv dXRwdXRfb2JqZGlyL1wke2xpYm5hbWV9LXN5bWJvbHMuZXhwc3ltflwkQ0MgLWR5bmFtaWNsaWIg XCRhbGxvd191bmRlZmluZWRfZmxhZyAtbyBcJGxpYiBcJGxpYm9ianMgXCRkZXBsaWJzIFwkY29t cGlsZXJfZmxhZ3MgLWluc3RhbGxfbmFtZSBcJHJwYXRoL1wkc29uYW1lIFwkdmVyc3RyaW5nICR7 X2x0X2Rhcl9zaW5nbGVfbW9kfSR7X2x0X2Rhcl9leHBvcnRfc3ltc30ke19sdF9kc3ltdXRpbH0i Ci0rICAgIF9MVF9UQUdWQVIobW9kdWxlX2V4cHN5bV9jbWRzLCAkMSk9InNlZCAtZSAncyxeLF8s JyA8IFwkZXhwb3J0X3N5bWJvbHMgPiBcJG91dHB1dF9vYmpkaXIvXCR7bGlibmFtZX0tc3ltYm9s cy5leHBzeW1+XCRDQyBcJGFsbG93X3VuZGVmaW5lZF9mbGFnIC1vIFwkbGliIC1idW5kbGUgXCRs aWJvYmpzIFwkZGVwbGlicyBcJGNvbXBpbGVyX2ZsYWdzJHtfbHRfZGFyX2V4cG9ydF9zeW1zfSR7 X2x0X2RzeW11dGlsfSIKLSsgICAgbTRfaWYoWyQxXSwgW0NYWF0sCi0rWyAgIGlmIHRlc3QgIiRs dF9jdl9hcHBsZV9jY19zaW5nbGVfbW9kIiAhPSAieWVzIjsgdGhlbgotKyAgICAgIF9MVF9UQUdW QVIoYXJjaGl2ZV9jbWRzLCAkMSk9IlwkQ0MgLXIgLWtlZXBfcHJpdmF0ZV9leHRlcm5zIC1ub3N0 ZGxpYiAtbyBcJHtsaWJ9LW1hc3Rlci5vIFwkbGlib2Jqc35cJENDIC1keW5hbWljbGliIFwkYWxs b3dfdW5kZWZpbmVkX2ZsYWcgLW8gXCRsaWIgXCR7bGlifS1tYXN0ZXIubyBcJGRlcGxpYnMgXCRj b21waWxlcl9mbGFncyAtaW5zdGFsbF9uYW1lIFwkcnBhdGgvXCRzb25hbWUgXCR2ZXJzdHJpbmck e19sdF9kc3ltdXRpbH0iCi0rICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAk MSk9InNlZCAncyxeLF8sJyA8IFwkZXhwb3J0X3N5bWJvbHMgPiBcJG91dHB1dF9vYmpkaXIvXCR7 bGlibmFtZX0tc3ltYm9scy5leHBzeW1+XCRDQyAtciAta2VlcF9wcml2YXRlX2V4dGVybnMgLW5v c3RkbGliIC1vIFwke2xpYn0tbWFzdGVyLm8gXCRsaWJvYmpzflwkQ0MgLWR5bmFtaWNsaWIgXCRh bGxvd191bmRlZmluZWRfZmxhZyAtbyBcJGxpYiBcJHtsaWJ9LW1hc3Rlci5vIFwkZGVwbGlicyBc JGNvbXBpbGVyX2ZsYWdzIC1pbnN0YWxsX25hbWUgXCRycGF0aC9cJHNvbmFtZSBcJHZlcnN0cmlu ZyR7X2x0X2Rhcl9leHBvcnRfc3ltc30ke19sdF9kc3ltdXRpbH0iCi0rICAgIGZpCi0rXSxbXSkK LSsgIGVsc2UKLSsgIF9MVF9UQUdWQVIobGRfc2hsaWJzLCAkMSk9bm8KLSsgIGZpCi0rXSkKLSsK LSsjIF9MVF9TWVNfTU9EVUxFX1BBVEhfQUlYCi0rIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQot KyMgTGlua3MgYSBtaW5pbWFsIHByb2dyYW0gYW5kIGNoZWNrcyB0aGUgZXhlY3V0YWJsZQotKyMg Zm9yIHRoZSBzeXN0ZW0gZGVmYXVsdCBoYXJkY29kZWQgbGlicmFyeSBwYXRoLiBJbiBtb3N0IGNh c2VzLAotKyMgdGhpcyBpcyAvdXNyL2xpYjovbGliLCBidXQgd2hlbiB0aGUgTVBJIGNvbXBpbGVy cyBhcmUgdXNlZAotKyMgdGhlIGxvY2F0aW9uIG9mIHRoZSBjb21tdW5pY2F0aW9uIGFuZCBNUEkg bGlicyBhcmUgaW5jbHVkZWQgdG9vLgotKyMgSWYgd2UgZG9uJ3QgZmluZCBhbnl0aGluZywgdXNl IHRoZSBkZWZhdWx0IGxpYnJhcnkgcGF0aCBhY2NvcmRpbmcKLSsjIHRvIHRoZSBhaXggbGQgbWFu dWFsLgotK200X2RlZnVuKFtfTFRfU1lTX01PRFVMRV9QQVRIX0FJWF0sCi0rW200X3JlcXVpcmUo W19MVF9ERUNMX1NFRF0pZG5sCi0rQUNfTElOS19JRkVMU0UoQUNfTEFOR19QUk9HUkFNLFsKLSts dF9haXhfbGlicGF0aF9zZWQ9JwotKyAgICAvSW1wb3J0IEZpbGUgU3RyaW5ncy8sL14kLyB7Ci0r CS9eMC8gewotKwkgICAgcy9eMCAgKlwoLipcKSQvXDEvCi0rCSAgICBwCi0rCX0KLSsgICAgfScK LSthaXhfbGlicGF0aD1gZHVtcCAtSCBjb25mdGVzdCRhY19leGVleHQgMj4vZGV2L251bGwgfCAk U0VEIC1uIC1lICIkbHRfYWl4X2xpYnBhdGhfc2VkImAKLSsjIENoZWNrIGZvciBhIDY0LWJpdCBv YmplY3QgaWYgd2UgZGlkbid0IGZpbmQgYW55dGhpbmcuCi0raWYgdGVzdCAteiAiJGFpeF9saWJw YXRoIjsgdGhlbgotKyAgYWl4X2xpYnBhdGg9YGR1bXAgLUhYNjQgY29uZnRlc3QkYWNfZXhlZXh0 IDI+L2Rldi9udWxsIHwgJFNFRCAtbiAtZSAiJGx0X2FpeF9saWJwYXRoX3NlZCJgCi0rZmldLFtd KQotK2lmIHRlc3QgLXogIiRhaXhfbGlicGF0aCI7IHRoZW4gYWl4X2xpYnBhdGg9Ii91c3IvbGli Oi9saWIiOyBmaQotK10pIyBfTFRfU1lTX01PRFVMRV9QQVRIX0FJWAotKwotKwotKyMgX0xUX1NI RUxMX0lOSVQoQVJHKQotKyMgLS0tLS0tLS0tLS0tLS0tLS0tLQotK200X2RlZmluZShbX0xUX1NI RUxMX0lOSVRdLAotK1tpZmRlZihbQUNfRElWRVJTSU9OX05PVElDRV0sCi0rCSAgICAgW0FDX0RJ VkVSVF9QVVNIKEFDX0RJVkVSU0lPTl9OT1RJQ0UpXSwKLSsJIFtBQ19ESVZFUlRfUFVTSChOT1RJ Q0UpXSkKLSskMQotK0FDX0RJVkVSVF9QT1AKLStdKSMgX0xUX1NIRUxMX0lOSVQKLSsKLSsKLSsj IF9MVF9QUk9HX0VDSE9fQkFDS1NMQVNICi0rIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotKyMg QWRkIHNvbWUgY29kZSB0byB0aGUgc3RhcnQgb2YgdGhlIGdlbmVyYXRlZCBjb25maWd1cmUgc2Ny aXB0IHdoaWNoCi0rIyB3aWxsIGZpbmQgYW4gZWNobyBjb21tYW5kIHdoaWNoIGRvZXNuJ3QgaW50 ZXJwcmV0IGJhY2tzbGFzaGVzLgotK200X2RlZnVuKFtfTFRfUFJPR19FQ0hPX0JBQ0tTTEFTSF0s Ci0rW19MVF9TSEVMTF9JTklUKFsKLSsjIENoZWNrIHRoYXQgd2UgYXJlIHJ1bm5pbmcgdW5kZXIg dGhlIGNvcnJlY3Qgc2hlbGwuCi0rU0hFTEw9JHtDT05GSUdfU0hFTEwtL2Jpbi9zaH0KLSsKLStj YXNlIFgkbHRfRUNITyBpbgotK1gqLS1mYWxsYmFjay1lY2hvKQotKyAgIyBSZW1vdmUgb25lIGxl dmVsIG9mIHF1b3RhdGlvbiAod2hpY2ggd2FzIHJlcXVpcmVkIGZvciBNYWtlKS4KLSsgIEVDSE89 YGVjaG8gIiRsdF9FQ0hPIiB8IHNlZCAncyxcXFxcXFskXVxcWyRdMCwnWyRdMCcsJ2AKLSsgIDs7 Ci0rZXNhYwotKwotK0VDSE89JHtsdF9FQ0hPLWVjaG99Ci0raWYgdGVzdCAiWFskXTEiID0gWC0t bm8tcmVleGVjOyB0aGVuCi0rICAjIERpc2NhcmQgdGhlIC0tbm8tcmVleGVjIGZsYWcsIGFuZCBj b250aW51ZS4KLSsgIHNoaWZ0Ci0rZWxpZiB0ZXN0ICJYWyRdMSIgPSBYLS1mYWxsYmFjay1lY2hv OyB0aGVuCi0rICAjIEF2b2lkIGlubGluZSBkb2N1bWVudCBoZXJlLCBpdCBtYXkgYmUgbGVmdCBv dmVyCi0rICA6Ci0rZWxpZiB0ZXN0ICJYYHsgJEVDSE8gJ1x0JzsgfSAyPi9kZXYvbnVsbGAiID0g J1hcdCcgOyB0aGVuCi0rICAjIFlpcHBlZSwgJEVDSE8gd29ya3MhCi0rICA6Ci0rZWxzZQotKyAg IyBSZXN0YXJ0IHVuZGVyIHRoZSBjb3JyZWN0IHNoZWxsLgotKyAgZXhlYyAkU0hFTEwgIlskXTAi IC0tbm8tcmVleGVjICR7MSsiWyRdQCJ9Ci0rZmkKLSsKLStpZiB0ZXN0ICJYWyRdMSIgPSBYLS1m YWxsYmFjay1lY2hvOyB0aGVuCi0rICAjIHVzZWQgYXMgZmFsbGJhY2sgZWNobwotKyAgc2hpZnQK LSsgIGNhdCA8PF9MVF9FT0YKLStbJF0qCi0rX0xUX0VPRgotKyAgZXhpdCAwCi0rZmkKLSsKLSsj IFRoZSBIUC1VWCBrc2ggYW5kIFBPU0lYIHNoZWxsIHByaW50IHRoZSB0YXJnZXQgZGlyZWN0b3J5 IHRvIHN0ZG91dAotKyMgaWYgQ0RQQVRIIGlzIHNldC4KLSsodW5zZXQgQ0RQQVRIKSA+L2Rldi9u dWxsIDI+JjEgJiYgdW5zZXQgQ0RQQVRICi0rCi0raWYgdGVzdCAteiAiJGx0X0VDSE8iOyB0aGVu Ci0rICBpZiB0ZXN0ICJYJHtlY2hvX3Rlc3Rfc3RyaW5nK3NldH0iICE9IFhzZXQ7IHRoZW4KLSsg ICAgIyBmaW5kIGEgc3RyaW5nIGFzIGxhcmdlIGFzIHBvc3NpYmxlLCBhcyBsb25nIGFzIHRoZSBz aGVsbCBjYW4gY29wZSB3aXRoIGl0Ci0rICAgIGZvciBjbWQgaW4gJ3NlZCA1MHEgIlskXTAiJyAn c2VkIDIwcSAiWyRdMCInICdzZWQgMTBxICJbJF0wIicgJ3NlZCAycSAiWyRdMCInICdlY2hvIHRl c3QnOyBkbwotKyAgICAgICMgZXhwZWN0ZWQgc2l6ZXM6IGxlc3MgdGhhbiAyS2IsIDFLYiwgNTEy IGJ5dGVzLCAxNiBieXRlcywgLi4uCi0rICAgICAgaWYgeyBlY2hvX3Rlc3Rfc3RyaW5nPWBldmFs ICRjbWRgOyB9IDI+L2Rldi9udWxsICYmCi0rCSB7IHRlc3QgIlgkZWNob190ZXN0X3N0cmluZyIg PSAiWCRlY2hvX3Rlc3Rfc3RyaW5nIjsgfSAyPi9kZXYvbnVsbAotKyAgICAgIHRoZW4KLSsgICAg ICAgIGJyZWFrCi0rICAgICAgZmkKLSsgICAgZG9uZQotKyAgZmkKLSsKLSsgIGlmIHRlc3QgIlhg eyAkRUNITyAnXHQnOyB9IDI+L2Rldi9udWxsYCIgPSAnWFx0JyAmJgotKyAgICAgZWNob190ZXN0 aW5nX3N0cmluZz1geyAkRUNITyAiJGVjaG9fdGVzdF9zdHJpbmciOyB9IDI+L2Rldi9udWxsYCAm JgotKyAgICAgdGVzdCAiWCRlY2hvX3Rlc3Rpbmdfc3RyaW5nIiA9ICJYJGVjaG9fdGVzdF9zdHJp bmciOyB0aGVuCi0rICAgIDoKLSsgIGVsc2UKLSsgICAgIyBUaGUgU29sYXJpcywgQUlYLCBhbmQg RGlnaXRhbCBVbml4IGRlZmF1bHQgZWNobyBwcm9ncmFtcyB1bnF1b3RlCi0rICAgICMgYmFja3Ns YXNoZXMuICBUaGlzIG1ha2VzIGl0IGltcG9zc2libGUgdG8gcXVvdGUgYmFja3NsYXNoZXMgdXNp bmcKLSsgICAgIyAgIGVjaG8gIiRzb21ldGhpbmciIHwgc2VkICdzL1xcL1xcXFwvZycKLSsgICAg IwotKyAgICAjIFNvLCBmaXJzdCB3ZSBsb29rIGZvciBhIHdvcmtpbmcgZWNobyBpbiB0aGUgdXNl cidzIFBBVEguCi0rCi0rICAgIGx0X3NhdmVfaWZzPSIkSUZTIjsgSUZTPSRQQVRIX1NFUEFSQVRP UgotKyAgICBmb3IgZGlyIGluICRQQVRIIC91c3IvdWNiOyBkbwotKyAgICAgIElGUz0iJGx0X3Nh dmVfaWZzIgotKyAgICAgIGlmICh0ZXN0IC1mICRkaXIvZWNobyB8fCB0ZXN0IC1mICRkaXIvZWNo byRhY19leGVleHQpICYmCi0rICAgICAgICAgdGVzdCAiWGAoJGRpci9lY2hvICdcdCcpIDI+L2Rl di9udWxsYCIgPSAnWFx0JyAmJgotKyAgICAgICAgIGVjaG9fdGVzdGluZ19zdHJpbmc9YCgkZGly L2VjaG8gIiRlY2hvX3Rlc3Rfc3RyaW5nIikgMj4vZGV2L251bGxgICYmCi0rICAgICAgICAgdGVz dCAiWCRlY2hvX3Rlc3Rpbmdfc3RyaW5nIiA9ICJYJGVjaG9fdGVzdF9zdHJpbmciOyB0aGVuCi0r ICAgICAgICBFQ0hPPSIkZGlyL2VjaG8iCi0rICAgICAgICBicmVhawotKyAgICAgIGZpCi0rICAg IGRvbmUKLSsgICAgSUZTPSIkbHRfc2F2ZV9pZnMiCi0rCi0rICAgIGlmIHRlc3QgIlgkRUNITyIg PSBYZWNobzsgdGhlbgotKyAgICAgICMgV2UgZGlkbid0IGZpbmQgYSBiZXR0ZXIgZWNobywgc28g bG9vayBmb3IgYWx0ZXJuYXRpdmVzLgotKyAgICAgIGlmIHRlc3QgIlhgeyBwcmludCAtciAnXHQn OyB9IDI+L2Rldi9udWxsYCIgPSAnWFx0JyAmJgotKyAgICAgICAgIGVjaG9fdGVzdGluZ19zdHJp bmc9YHsgcHJpbnQgLXIgIiRlY2hvX3Rlc3Rfc3RyaW5nIjsgfSAyPi9kZXYvbnVsbGAgJiYKLSsg ICAgICAgICB0ZXN0ICJYJGVjaG9fdGVzdGluZ19zdHJpbmciID0gIlgkZWNob190ZXN0X3N0cmlu ZyI7IHRoZW4KLSsgICAgICAgICMgVGhpcyBzaGVsbCBoYXMgYSBidWlsdGluIHByaW50IC1yIHRo YXQgZG9lcyB0aGUgdHJpY2suCi0rICAgICAgICBFQ0hPPSdwcmludCAtcicKLSsgICAgICBlbGlm IHsgdGVzdCAtZiAvYmluL2tzaCB8fCB0ZXN0IC1mIC9iaW4va3NoJGFjX2V4ZWV4dDsgfSAmJgot KwkgICB0ZXN0ICJYJENPTkZJR19TSEVMTCIgIT0gWC9iaW4va3NoOyB0aGVuCi0rICAgICAgICAj IElmIHdlIGhhdmUga3NoLCB0cnkgcnVubmluZyBjb25maWd1cmUgYWdhaW4gd2l0aCBpdC4KLSsg ICAgICAgIE9SSUdJTkFMX0NPTkZJR19TSEVMTD0ke0NPTkZJR19TSEVMTC0vYmluL3NofQotKyAg ICAgICAgZXhwb3J0IE9SSUdJTkFMX0NPTkZJR19TSEVMTAotKyAgICAgICAgQ09ORklHX1NIRUxM PS9iaW4va3NoCi0rICAgICAgICBleHBvcnQgQ09ORklHX1NIRUxMCi0rICAgICAgICBleGVjICRD T05GSUdfU0hFTEwgIlskXTAiIC0tbm8tcmVleGVjICR7MSsiWyRdQCJ9Ci0rICAgICAgZWxzZQot KyAgICAgICAgIyBUcnkgdXNpbmcgcHJpbnRmLgotKyAgICAgICAgRUNITz0ncHJpbnRmICVzXG4n Ci0rICAgICAgICBpZiB0ZXN0ICJYYHsgJEVDSE8gJ1x0JzsgfSAyPi9kZXYvbnVsbGAiID0gJ1hc dCcgJiYKLSsJICAgZWNob190ZXN0aW5nX3N0cmluZz1geyAkRUNITyAiJGVjaG9fdGVzdF9zdHJp bmciOyB9IDI+L2Rldi9udWxsYCAmJgotKwkgICB0ZXN0ICJYJGVjaG9fdGVzdGluZ19zdHJpbmci ID0gIlgkZWNob190ZXN0X3N0cmluZyI7IHRoZW4KLSsJICAjIENvb2wsIHByaW50ZiB3b3Jrcwot KwkgIDoKLSsgICAgICAgIGVsaWYgZWNob190ZXN0aW5nX3N0cmluZz1gKCRPUklHSU5BTF9DT05G SUdfU0hFTEwgIlskXTAiIC0tZmFsbGJhY2stZWNobyAnXHQnKSAyPi9kZXYvbnVsbGAgJiYKLSsJ ICAgICB0ZXN0ICJYJGVjaG9fdGVzdGluZ19zdHJpbmciID0gJ1hcdCcgJiYKLSsJICAgICBlY2hv X3Rlc3Rpbmdfc3RyaW5nPWAoJE9SSUdJTkFMX0NPTkZJR19TSEVMTCAiWyRdMCIgLS1mYWxsYmFj ay1lY2hvICIkZWNob190ZXN0X3N0cmluZyIpIDI+L2Rldi9udWxsYCAmJgotKwkgICAgIHRlc3Qg IlgkZWNob190ZXN0aW5nX3N0cmluZyIgPSAiWCRlY2hvX3Rlc3Rfc3RyaW5nIjsgdGhlbgotKwkg IENPTkZJR19TSEVMTD0kT1JJR0lOQUxfQ09ORklHX1NIRUxMCi0rCSAgZXhwb3J0IENPTkZJR19T SEVMTAotKwkgIFNIRUxMPSIkQ09ORklHX1NIRUxMIgotKwkgIGV4cG9ydCBTSEVMTAotKwkgIEVD SE89IiRDT05GSUdfU0hFTEwgWyRdMCAtLWZhbGxiYWNrLWVjaG8iCi0rICAgICAgICBlbGlmIGVj aG9fdGVzdGluZ19zdHJpbmc9YCgkQ09ORklHX1NIRUxMICJbJF0wIiAtLWZhbGxiYWNrLWVjaG8g J1x0JykgMj4vZGV2L251bGxgICYmCi0rCSAgICAgdGVzdCAiWCRlY2hvX3Rlc3Rpbmdfc3RyaW5n IiA9ICdYXHQnICYmCi0rCSAgICAgZWNob190ZXN0aW5nX3N0cmluZz1gKCRDT05GSUdfU0hFTEwg IlskXTAiIC0tZmFsbGJhY2stZWNobyAiJGVjaG9fdGVzdF9zdHJpbmciKSAyPi9kZXYvbnVsbGAg JiYKLSsJICAgICB0ZXN0ICJYJGVjaG9fdGVzdGluZ19zdHJpbmciID0gIlgkZWNob190ZXN0X3N0 cmluZyI7IHRoZW4KLSsJICBFQ0hPPSIkQ09ORklHX1NIRUxMIFskXTAgLS1mYWxsYmFjay1lY2hv IgotKyAgICAgICAgZWxzZQotKwkgICMgbWF5YmUgd2l0aCBhIHNtYWxsZXIgc3RyaW5nLi4uCi0r CSAgcHJldj06Ci0rCi0rCSAgZm9yIGNtZCBpbiAnZWNobyB0ZXN0JyAnc2VkIDJxICJbJF0wIicg J3NlZCAxMHEgIlskXTAiJyAnc2VkIDIwcSAiWyRdMCInICdzZWQgNTBxICJbJF0wIic7IGRvCi0r CSAgICBpZiB7IHRlc3QgIlgkZWNob190ZXN0X3N0cmluZyIgPSAiWGBldmFsICRjbWRgIjsgfSAy Pi9kZXYvbnVsbAotKwkgICAgdGhlbgotKwkgICAgICBicmVhawotKwkgICAgZmkKLSsJICAgIHBy ZXY9IiRjbWQiCi0rCSAgZG9uZQotKwotKwkgIGlmIHRlc3QgIiRwcmV2IiAhPSAnc2VkIDUwcSAi WyRdMCInOyB0aGVuCi0rCSAgICBlY2hvX3Rlc3Rfc3RyaW5nPWBldmFsICRwcmV2YAotKwkgICAg ZXhwb3J0IGVjaG9fdGVzdF9zdHJpbmcKLSsJICAgIGV4ZWMgJHtPUklHSU5BTF9DT05GSUdfU0hF TEwtJHtDT05GSUdfU0hFTEwtL2Jpbi9zaH19ICJbJF0wIiAkezErIlskXUAifQotKwkgIGVsc2UK LSsJICAgICMgT29wcy4gIFdlIGxvc3QgY29tcGxldGVseSwgc28ganVzdCBzdGljayB3aXRoIGVj aG8uCi0rCSAgICBFQ0hPPWVjaG8KLSsJICBmaQotKyAgICAgICAgZmkKLSsgICAgICBmaQotKyAg ICBmaQotKyAgZmkKLStmaQotKwotKyMgQ29weSBlY2hvIGFuZCBxdW90ZSB0aGUgY29weSBzdWl0 YWJseSBmb3IgcGFzc2luZyB0byBsaWJ0b29sIGZyb20KLSsjIHRoZSBNYWtlZmlsZSwgaW5zdGVh ZCBvZiBxdW90aW5nIHRoZSBvcmlnaW5hbCwgd2hpY2ggaXMgdXNlZCBsYXRlci4KLStsdF9FQ0hP PSRFQ0hPCi0raWYgdGVzdCAiWCRsdF9FQ0hPIiA9ICJYJENPTkZJR19TSEVMTCBbJF0wIC0tZmFs bGJhY2stZWNobyI7IHRoZW4KLSsgICBsdF9FQ0hPPSIkQ09ORklHX1NIRUxMIFxcXCRcWyRdMCAt LWZhbGxiYWNrLWVjaG8iCi0rZmkKLSsKLStBQ19TVUJTVChsdF9FQ0hPKQotK10pCi0rX0xUX0RF Q0woW10sIFtTSEVMTF0sIFsxXSwgW1NoZWxsIHRvIHVzZSB3aGVuIGludm9raW5nIHNoZWxsIHNj cmlwdHNdKQotK19MVF9ERUNMKFtdLCBbRUNIT10sIFsxXSwKLSsgICAgW0FuIGVjaG8gcHJvZ3Jh bSB0aGF0IGRvZXMgbm90IGludGVycHJldCBiYWNrc2xhc2hlc10pCi0rXSkjIF9MVF9QUk9HX0VD SE9fQkFDS1NMQVNICi0rCi0rCi0rIyBfTFRfRU5BQkxFX0xPQ0sKLSsjIC0tLS0tLS0tLS0tLS0t LQotK200X2RlZnVuKFtfTFRfRU5BQkxFX0xPQ0tdLAotK1tBQ19BUkdfRU5BQkxFKFtsaWJ0b29s LWxvY2tdLAotKyAgW0FTX0hFTFBfU1RSSU5HKFstLWRpc2FibGUtbGlidG9vbC1sb2NrXSwKLSsg ICAgW2F2b2lkIGxvY2tpbmcgKG1pZ2h0IGJyZWFrIHBhcmFsbGVsIGJ1aWxkcyldKV0pCi0rdGVz dCAieCRlbmFibGVfbGlidG9vbF9sb2NrIiAhPSB4bm8gJiYgZW5hYmxlX2xpYnRvb2xfbG9jaz15 ZXMKLSsKLSsjIFNvbWUgZmxhZ3MgbmVlZCB0byBiZSBwcm9wYWdhdGVkIHRvIHRoZSBjb21waWxl ciBvciBsaW5rZXIgZm9yIGdvb2QKLSsjIGxpYnRvb2wgc3VwcG9ydC4KLStjYXNlICRob3N0IGlu Ci0raWE2NC0qLWhwdXgqKQotKyAgIyBGaW5kIG91dCB3aGljaCBBQkkgd2UgYXJlIHVzaW5nLgot KyAgZWNobyAnaW50IGk7JyA+IGNvbmZ0ZXN0LiRhY19leHQKLSsgIGlmIEFDX1RSWV9FVkFMKGFj X2NvbXBpbGUpOyB0aGVuCi0rICAgIGNhc2UgYC91c3IvYmluL2ZpbGUgY29uZnRlc3QuJGFjX29i amV4dGAgaW4KLSsgICAgICAqRUxGLTMyKikKLSsJSFBVWF9JQTY0X01PREU9IjMyIgotKwk7Owot KyAgICAgICpFTEYtNjQqKQotKwlIUFVYX0lBNjRfTU9ERT0iNjQiCi0rCTs7Ci0rICAgIGVzYWMK LSsgIGZpCi0rICBybSAtcmYgY29uZnRlc3QqCi0rICA7OwotKyotKi1pcml4NiopCi0rICAjIEZp bmQgb3V0IHdoaWNoIEFCSSB3ZSBhcmUgdXNpbmcuCi0rICBlY2hvICdbI11saW5lIF9fb2xpbmVf XyAiY29uZmlndXJlIicgPiBjb25mdGVzdC4kYWNfZXh0Ci0rICBpZiBBQ19UUllfRVZBTChhY19j b21waWxlKTsgdGhlbgotKyAgICBpZiB0ZXN0ICIkbHRfY3ZfcHJvZ19nbnVfbGQiID0geWVzOyB0 aGVuCi0rICAgICAgY2FzZSBgL3Vzci9iaW4vZmlsZSBjb25mdGVzdC4kYWNfb2JqZXh0YCBpbgot KwkqMzItYml0KikKLSsJICBMRD0iJHtMRC1sZH0gLW1lbGYzMmJzbWlwIgotKwkgIDs7Ci0rCSpO MzIqKQotKwkgIExEPSIke0xELWxkfSAtbWVsZjMyYm1pcG4zMiIKLSsJICA7OwotKwkqNjQtYml0 KikKLSsJICBMRD0iJHtMRC1sZH0gLW1lbGY2NGJtaXAiCi0rCTs7Ci0rICAgICAgZXNhYwotKyAg ICBlbHNlCi0rICAgICAgY2FzZSBgL3Vzci9iaW4vZmlsZSBjb25mdGVzdC4kYWNfb2JqZXh0YCBp bgotKwkqMzItYml0KikKLSsJICBMRD0iJHtMRC1sZH0gLTMyIgotKwkgIDs7Ci0rCSpOMzIqKQot KwkgIExEPSIke0xELWxkfSAtbjMyIgotKwkgIDs7Ci0rCSo2NC1iaXQqKQotKwkgIExEPSIke0xE LWxkfSAtNjQiCi0rCSAgOzsKLSsgICAgICBlc2FjCi0rICAgIGZpCi0rICBmaQotKyAgcm0gLXJm IGNvbmZ0ZXN0KgotKyAgOzsKLSsKLSt4ODZfNjQtKmtmcmVlYnNkKi1nbnV8eDg2XzY0LSpsaW51 eCp8cHBjKi0qbGludXgqfHBvd2VycGMqLSpsaW51eCp8IFwKLStzMzkwKi0qbGludXgqfHMzOTAq LSp0cGYqfHNwYXJjKi0qbGludXgqKQotKyAgIyBGaW5kIG91dCB3aGljaCBBQkkgd2UgYXJlIHVz aW5nLgotKyAgZWNobyAnaW50IGk7JyA+IGNvbmZ0ZXN0LiRhY19leHQKLSsgIGlmIEFDX1RSWV9F VkFMKGFjX2NvbXBpbGUpOyB0aGVuCi0rICAgIGNhc2UgYC91c3IvYmluL2ZpbGUgY29uZnRlc3Qu b2AgaW4KLSsgICAgICAqMzItYml0KikKLSsJY2FzZSAkaG9zdCBpbgotKwkgIHg4Nl82NC0qa2Zy ZWVic2QqLWdudSkKLSsJICAgIExEPSIke0xELWxkfSAtbSBlbGZfaTM4Nl9mYnNkIgotKwkgICAg OzsKLSsJICB4ODZfNjQtKmxpbnV4KikKLSsJICAgIExEPSIke0xELWxkfSAtbSBlbGZfaTM4NiIK LSsJICAgIDs7Ci0rCSAgcHBjNjQtKmxpbnV4Knxwb3dlcnBjNjQtKmxpbnV4KikKLSsJICAgIExE PSIke0xELWxkfSAtbSBlbGYzMnBwY2xpbnV4IgotKwkgICAgOzsKLSsJICBzMzkweC0qbGludXgq KQotKwkgICAgTEQ9IiR7TEQtbGR9IC1tIGVsZl9zMzkwIgotKwkgICAgOzsKLSsJICBzcGFyYzY0 LSpsaW51eCopCi0rCSAgICBMRD0iJHtMRC1sZH0gLW0gZWxmMzJfc3BhcmMiCi0rCSAgICA7Owot Kwllc2FjCi0rCTs7Ci0rICAgICAgKjY0LWJpdCopCi0rCWNhc2UgJGhvc3QgaW4KLSsJICB4ODZf NjQtKmtmcmVlYnNkKi1nbnUpCi0rCSAgICBMRD0iJHtMRC1sZH0gLW0gZWxmX3g4Nl82NF9mYnNk IgotKwkgICAgOzsKLSsJICB4ODZfNjQtKmxpbnV4KikKLSsJICAgIExEPSIke0xELWxkfSAtbSBl bGZfeDg2XzY0IgotKwkgICAgOzsKLSsJICBwcGMqLSpsaW51eCp8cG93ZXJwYyotKmxpbnV4KikK LSsJICAgIExEPSIke0xELWxkfSAtbSBlbGY2NHBwYyIKLSsJICAgIDs7Ci0rCSAgczM5MCotKmxp bnV4KnxzMzkwKi0qdHBmKikKLSsJICAgIExEPSIke0xELWxkfSAtbSBlbGY2NF9zMzkwIgotKwkg ICAgOzsKLSsJICBzcGFyYyotKmxpbnV4KikKLSsJICAgIExEPSIke0xELWxkfSAtbSBlbGY2NF9z cGFyYyIKLSsJICAgIDs7Ci0rCWVzYWMKLSsJOzsKLSsgICAgZXNhYwotKyAgZmkKLSsgIHJtIC1y ZiBjb25mdGVzdCoKLSsgIDs7Ci0rCi0rKi0qLXNjbzMuMnY1KikKLSsgICMgT24gU0NPIE9wZW5T ZXJ2ZXIgNSwgd2UgbmVlZCAtYmVsZiB0byBnZXQgZnVsbC1mZWF0dXJlZCBiaW5hcmllcy4KLSsg IFNBVkVfQ0ZMQUdTPSIkQ0ZMQUdTIgotKyAgQ0ZMQUdTPSIkQ0ZMQUdTIC1iZWxmIgotKyAgQUNf Q0FDSEVfQ0hFQ0soW3doZXRoZXIgdGhlIEMgY29tcGlsZXIgbmVlZHMgLWJlbGZdLCBsdF9jdl9j Y19uZWVkc19iZWxmLAotKyAgICBbQUNfTEFOR19QVVNIKEMpCi0rICAgICBBQ19MSU5LX0lGRUxT RShbQUNfTEFOR19QUk9HUkFNKFtbXV0sW1tdXSldLFtsdF9jdl9jY19uZWVkc19iZWxmPXllc10s W2x0X2N2X2NjX25lZWRzX2JlbGY9bm9dKQotKyAgICAgQUNfTEFOR19QT1BdKQotKyAgaWYgdGVz dCB4IiRsdF9jdl9jY19uZWVkc19iZWxmIiAhPSB4InllcyI7IHRoZW4KLSsgICAgIyB0aGlzIGlz IHByb2JhYmx5IGdjYyAyLjguMCwgZWdjcyAxLjAgb3IgbmV3ZXI7IG5vIG5lZWQgZm9yIC1iZWxm Ci0rICAgIENGTEFHUz0iJFNBVkVfQ0ZMQUdTIgotKyAgZmkKLSsgIDs7Ci0rc3BhcmMqLSpzb2xh cmlzKikKLSsgICMgRmluZCBvdXQgd2hpY2ggQUJJIHdlIGFyZSB1c2luZy4KLSsgIGVjaG8gJ2lu dCBpOycgPiBjb25mdGVzdC4kYWNfZXh0Ci0rICBpZiBBQ19UUllfRVZBTChhY19jb21waWxlKTsg dGhlbgotKyAgICBjYXNlIGAvdXNyL2Jpbi9maWxlIGNvbmZ0ZXN0Lm9gIGluCi0rICAgICo2NC1i aXQqKQotKyAgICAgIGNhc2UgJGx0X2N2X3Byb2dfZ251X2xkIGluCi0rICAgICAgeWVzKikgTEQ9 IiR7TEQtbGR9IC1tIGVsZjY0X3NwYXJjIiA7OwotKyAgICAgICopCi0rCWlmICR7TEQtbGR9IC02 NCAtciAtbyBjb25mdGVzdDIubyBjb25mdGVzdC5vID4vZGV2L251bGwgMj4mMTsgdGhlbgotKwkg IExEPSIke0xELWxkfSAtNjQiCi0rCWZpCi0rCTs7Ci0rICAgICAgZXNhYwotKyAgICAgIDs7Ci0r ICAgIGVzYWMKLSsgIGZpCi0rICBybSAtcmYgY29uZnRlc3QqCi0rICA7OwotK2VzYWMKLSsKLStu ZWVkX2xvY2tzPSIkZW5hYmxlX2xpYnRvb2xfbG9jayIKLStdKSMgX0xUX0VOQUJMRV9MT0NLCi0r Ci0rCi0rIyBfTFRfQ01EX09MRF9BUkNISVZFCi0rIyAtLS0tLS0tLS0tLS0tLS0tLS0tCi0rbTRf ZGVmdW4oW19MVF9DTURfT0xEX0FSQ0hJVkVdLAotK1tBQ19DSEVDS19UT09MKEFSLCBhciwgZmFs c2UpCi0rdGVzdCAteiAiJEFSIiAmJiBBUj1hcgotK3Rlc3QgLXogIiRBUl9GTEFHUyIgJiYgQVJf RkxBR1M9Y3J1Ci0rX0xUX0RFQ0woW10sIFtBUl0sIFsxXSwgW1RoZSBhcmNoaXZlcl0pCi0rX0xU X0RFQ0woW10sIFtBUl9GTEFHU10sIFsxXSkKLSsKLStBQ19DSEVDS19UT09MKFNUUklQLCBzdHJp cCwgOikKLSt0ZXN0IC16ICIkU1RSSVAiICYmIFNUUklQPToKLStfTFRfREVDTChbXSwgW1NUUklQ XSwgWzFdLCBbQSBzeW1ib2wgc3RyaXBwaW5nIHByb2dyYW1dKQotKwotK0FDX0NIRUNLX1RPT0wo UkFOTElCLCByYW5saWIsIDopCi0rdGVzdCAteiAiJFJBTkxJQiIgJiYgUkFOTElCPToKLStfTFRf REVDTChbXSwgW1JBTkxJQl0sIFsxXSwKLSsgICAgW0NvbW1hbmRzIHVzZWQgdG8gaW5zdGFsbCBh biBvbGQtc3R5bGUgYXJjaGl2ZV0pCi0rCi0rIyBEZXRlcm1pbmUgY29tbWFuZHMgdG8gY3JlYXRl IG9sZC1zdHlsZSBzdGF0aWMgYXJjaGl2ZXMuCi0rb2xkX2FyY2hpdmVfY21kcz0nJEFSICRBUl9G TEFHUyAkb2xkbGliJG9sZG9ianMnCi0rb2xkX3Bvc3RpbnN0YWxsX2NtZHM9J2NobW9kIDY0NCAk b2xkbGliJwotK29sZF9wb3N0dW5pbnN0YWxsX2NtZHM9Ci0rCi0raWYgdGVzdCAtbiAiJFJBTkxJ QiI7IHRoZW4KLSsgIGNhc2UgJGhvc3Rfb3MgaW4KLSsgIG9wZW5ic2QqKQotKyAgICBvbGRfcG9z dGluc3RhbGxfY21kcz0iJG9sZF9wb3N0aW5zdGFsbF9jbWRzflwkUkFOTElCIC10IFwkb2xkbGli IgotKyAgICA7OwotKyAgKikKLSsgICAgb2xkX3Bvc3RpbnN0YWxsX2NtZHM9IiRvbGRfcG9zdGlu c3RhbGxfY21kc35cJFJBTkxJQiBcJG9sZGxpYiIKLSsgICAgOzsKLSsgIGVzYWMKLSsgIG9sZF9h cmNoaXZlX2NtZHM9IiRvbGRfYXJjaGl2ZV9jbWRzflwkUkFOTElCIFwkb2xkbGliIgotK2ZpCi0r X0xUX0RFQ0woW10sIFtvbGRfcG9zdGluc3RhbGxfY21kc10sIFsyXSkKLStfTFRfREVDTChbXSwg W29sZF9wb3N0dW5pbnN0YWxsX2NtZHNdLCBbMl0pCi0rX0xUX1RBR0RFQ0woW10sIFtvbGRfYXJj aGl2ZV9jbWRzXSwgWzJdLAotKyAgICBbQ29tbWFuZHMgdXNlZCB0byBidWlsZCBhbiBvbGQtc3R5 bGUgYXJjaGl2ZV0pCi0rXSkjIF9MVF9DTURfT0xEX0FSQ0hJVkUKLSsKLSsKLSsjIF9MVF9DT01Q SUxFUl9PUFRJT04oTUVTU0FHRSwgVkFSSUFCTEUtTkFNRSwgRkxBR1MsCi0rIwkJW09VVFBVVC1G SUxFXSwgW0FDVElPTi1TVUNDRVNTXSwgW0FDVElPTi1GQUlMVVJFXSkKLSsjIC0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSsj IENoZWNrIHdoZXRoZXIgdGhlIGdpdmVuIGNvbXBpbGVyIG9wdGlvbiB3b3JrcwotK0FDX0RFRlVO KFtfTFRfQ09NUElMRVJfT1BUSU9OXSwKLStbbTRfcmVxdWlyZShbX0xUX0ZJTEVVVElMU19ERUZB VUxUU10pZG5sCi0rbTRfcmVxdWlyZShbX0xUX0RFQ0xfU0VEXSlkbmwKLStBQ19DQUNIRV9DSEVD SyhbJDFdLCBbJDJdLAotKyAgWyQyPW5vCi0rICAgbTRfaWYoWyQ0XSwgLCBbYWNfb3V0ZmlsZT1j b25mdGVzdC4kYWNfb2JqZXh0XSwgW2FjX291dGZpbGU9JDRdKQotKyAgIGVjaG8gIiRsdF9zaW1w bGVfY29tcGlsZV90ZXN0X2NvZGUiID4gY29uZnRlc3QuJGFjX2V4dAotKyAgIGx0X2NvbXBpbGVy X2ZsYWc9IiQzIgotKyAgICMgSW5zZXJ0IHRoZSBvcHRpb24gZWl0aGVyICgxKSBhZnRlciB0aGUg bGFzdCAqRkxBR1MgdmFyaWFibGUsIG9yCi0rICAgIyAoMikgYmVmb3JlIGEgd29yZCBjb250YWlu aW5nICJjb25mdGVzdC4iLCBvciAoMykgYXQgdGhlIGVuZC4KLSsgICAjIE5vdGUgdGhhdCAkYWNf Y29tcGlsZSBpdHNlbGYgZG9lcyBub3QgY29udGFpbiBiYWNrc2xhc2hlcyBhbmQgYmVnaW5zCi0r ICAgIyB3aXRoIGEgZG9sbGFyIHNpZ24gKG5vdCBhIGh5cGhlbiksIHNvIHRoZSBlY2hvIHNob3Vs ZCB3b3JrIGNvcnJlY3RseS4KLSsgICAjIFRoZSBvcHRpb24gaXMgcmVmZXJlbmNlZCB2aWEgYSB2 YXJpYWJsZSB0byBhdm9pZCBjb25mdXNpbmcgc2VkLgotKyAgIGx0X2NvbXBpbGU9YGVjaG8gIiRh Y19jb21waWxlIiB8ICRTRUQgXAotKyAgIC1lICdzOi4qRkxBR1N9XHswLDFcfSA6JiRsdF9jb21w aWxlcl9mbGFnIDo7IHQnIFwKLSsgICAtZSAnczogW1teIF1dKmNvbmZ0ZXN0XC46ICRsdF9jb21w aWxlcl9mbGFnJjo7IHQnIFwKLSsgICAtZSAnczokOiAkbHRfY29tcGlsZXJfZmxhZzonYAotKyAg IChldmFsIGVjaG8gIlwiXCRhc19tZTpfX29saW5lX186ICRsdF9jb21waWxlXCIiID4mQVNfTUVT U0FHRV9MT0dfRkQpCi0rICAgKGV2YWwgIiRsdF9jb21waWxlIiAyPmNvbmZ0ZXN0LmVycikKLSsg ICBhY19zdGF0dXM9JD8KLSsgICBjYXQgY29uZnRlc3QuZXJyID4mQVNfTUVTU0FHRV9MT0dfRkQK LSsgICBlY2hvICIkYXNfbWU6X19vbGluZV9fOiBcJD8gPSAkYWNfc3RhdHVzIiA+JkFTX01FU1NB R0VfTE9HX0ZECi0rICAgaWYgKGV4aXQgJGFjX3N0YXR1cykgJiYgdGVzdCAtcyAiJGFjX291dGZp bGUiOyB0aGVuCi0rICAgICAjIFRoZSBjb21waWxlciBjYW4gb25seSB3YXJuIGFuZCBpZ25vcmUg dGhlIG9wdGlvbiBpZiBub3QgcmVjb2duaXplZAotKyAgICAgIyBTbyBzYXkgbm8gaWYgdGhlcmUg YXJlIHdhcm5pbmdzIG90aGVyIHRoYW4gdGhlIHVzdWFsIG91dHB1dC4KLSsgICAgICRFQ0hPICJY JF9sdF9jb21waWxlcl9ib2lsZXJwbGF0ZSIgfCAkWHNlZCAtZSAnL14kL2QnID5jb25mdGVzdC5l eHAKLSsgICAgICRTRUQgJy9eJC9kOyAvXiAqKy9kJyBjb25mdGVzdC5lcnIgPmNvbmZ0ZXN0LmVy MgotKyAgICAgaWYgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVyMiB8fCBkaWZmIGNvbmZ0ZXN0LmV4cCBj b25mdGVzdC5lcjIgPi9kZXYvbnVsbDsgdGhlbgotKyAgICAgICAkMj15ZXMKLSsgICAgIGZpCi0r ICAgZmkKLSsgICAkUk0gY29uZnRlc3QqCi0rXSkKLSsKLStpZiB0ZXN0IHgiWyRdJDIiID0geHll czsgdGhlbgotKyAgICBtNF9pZihbJDVdLCAsIDosIFskNV0pCi0rZWxzZQotKyAgICBtNF9pZihb JDZdLCAsIDosIFskNl0pCi0rZmkKLStdKSMgX0xUX0NPTVBJTEVSX09QVElPTgotKwotKyMgT2xk IG5hbWU6Ci0rQVVfQUxJQVMoW0FDX0xJQlRPT0xfQ09NUElMRVJfT1BUSU9OXSwgW19MVF9DT01Q SUxFUl9PUFRJT05dKQotK2RubCBhY2xvY2FsLTEuNCBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eToK LStkbmwgQUNfREVGVU4oW0FDX0xJQlRPT0xfQ09NUElMRVJfT1BUSU9OXSwgW10pCi0rCi0rCi0r IyBfTFRfTElOS0VSX09QVElPTihNRVNTQUdFLCBWQVJJQUJMRS1OQU1FLCBGTEFHUywKLSsjICAg ICAgICAgICAgICAgICAgW0FDVElPTi1TVUNDRVNTXSwgW0FDVElPTi1GQUlMVVJFXSkKLSsjIC0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSsjIENo ZWNrIHdoZXRoZXIgdGhlIGdpdmVuIGxpbmtlciBvcHRpb24gd29ya3MKLStBQ19ERUZVTihbX0xU X0xJTktFUl9PUFRJT05dLAotK1ttNF9yZXF1aXJlKFtfTFRfRklMRVVUSUxTX0RFRkFVTFRTXSlk bmwKLSttNF9yZXF1aXJlKFtfTFRfREVDTF9TRURdKWRubAotK0FDX0NBQ0hFX0NIRUNLKFskMV0s IFskMl0sCi0rICBbJDI9bm8KLSsgICBzYXZlX0xERkxBR1M9IiRMREZMQUdTIgotKyAgIExERkxB R1M9IiRMREZMQUdTICQzIgotKyAgIGVjaG8gIiRsdF9zaW1wbGVfbGlua190ZXN0X2NvZGUiID4g Y29uZnRlc3QuJGFjX2V4dAotKyAgIGlmIChldmFsICRhY19saW5rIDI+Y29uZnRlc3QuZXJyKSAm JiB0ZXN0IC1zIGNvbmZ0ZXN0JGFjX2V4ZWV4dDsgdGhlbgotKyAgICAgIyBUaGUgbGlua2VyIGNh biBvbmx5IHdhcm4gYW5kIGlnbm9yZSB0aGUgb3B0aW9uIGlmIG5vdCByZWNvZ25pemVkCi0rICAg ICAjIFNvIHNheSBubyBpZiB0aGVyZSBhcmUgd2FybmluZ3MKLSsgICAgIGlmIHRlc3QgLXMgY29u ZnRlc3QuZXJyOyB0aGVuCi0rICAgICAgICMgQXBwZW5kIGFueSBlcnJvcnMgdG8gdGhlIGNvbmZp Zy5sb2cuCi0rICAgICAgIGNhdCBjb25mdGVzdC5lcnIgMT4mQVNfTUVTU0FHRV9MT0dfRkQKLSsg ICAgICAgJEVDSE8gIlgkX2x0X2xpbmtlcl9ib2lsZXJwbGF0ZSIgfCAkWHNlZCAtZSAnL14kL2Qn ID4gY29uZnRlc3QuZXhwCi0rICAgICAgICRTRUQgJy9eJC9kOyAvXiAqKy9kJyBjb25mdGVzdC5l cnIgPmNvbmZ0ZXN0LmVyMgotKyAgICAgICBpZiBkaWZmIGNvbmZ0ZXN0LmV4cCBjb25mdGVzdC5l cjIgPi9kZXYvbnVsbDsgdGhlbgotKyAgICAgICAgICQyPXllcwotKyAgICAgICBmaQotKyAgICAg ZWxzZQotKyAgICAgICAkMj15ZXMKLSsgICAgIGZpCi0rICAgZmkKLSsgICAkUk0gLXIgY29uZnRl c3QqCi0rICAgTERGTEFHUz0iJHNhdmVfTERGTEFHUyIKLStdKQotKwotK2lmIHRlc3QgeCJbJF0k MiIgPSB4eWVzOyB0aGVuCi0rICAgIG00X2lmKFskNF0sICwgOiwgWyQ0XSkKLStlbHNlCi0rICAg IG00X2lmKFskNV0sICwgOiwgWyQ1XSkKLStmaQotK10pIyBfTFRfTElOS0VSX09QVElPTgotKwot KyMgT2xkIG5hbWU6Ci0rQVVfQUxJQVMoW0FDX0xJQlRPT0xfTElOS0VSX09QVElPTl0sIFtfTFRf TElOS0VSX09QVElPTl0pCi0rZG5sIGFjbG9jYWwtMS40IGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5 OgotK2RubCBBQ19ERUZVTihbQUNfTElCVE9PTF9MSU5LRVJfT1BUSU9OXSwgW10pCi0rCi0rCi0r IyBMVF9DTURfTUFYX0xFTgotKyMtLS0tLS0tLS0tLS0tLS0KLStBQ19ERUZVTihbTFRfQ01EX01B WF9MRU5dLAotK1tBQ19SRVFVSVJFKFtBQ19DQU5PTklDQUxfSE9TVF0pZG5sCi0rIyBmaW5kIHRo ZSBtYXhpbXVtIGxlbmd0aCBvZiBjb21tYW5kIGxpbmUgYXJndW1lbnRzCi0rQUNfTVNHX0NIRUNL SU5HKFt0aGUgbWF4aW11bSBsZW5ndGggb2YgY29tbWFuZCBsaW5lIGFyZ3VtZW50c10pCi0rQUNf Q0FDSEVfVkFMKFtsdF9jdl9zeXNfbWF4X2NtZF9sZW5dLCBbZG5sCi0rICBpPTAKLSsgIHRlc3Rz dHJpbmc9IkFCQ0QiCi0rCi0rICBjYXNlICRidWlsZF9vcyBpbgotKyAgbXNkb3NkamdwcCopCi0r ICAgICMgT24gREpHUFAsIHRoaXMgdGVzdCBjYW4gYmxvdyB1cCBwcmV0dHkgYmFkbHkgZHVlIHRv IHByb2JsZW1zIGluIGxpYmMKLSsgICAgIyAoYW55IHNpbmdsZSBhcmd1bWVudCBleGNlZWRpbmcg MjAwMCBieXRlcyBjYXVzZXMgYSBidWZmZXIgb3ZlcnJ1bgotKyAgICAjIGR1cmluZyBnbG9iIGV4 cGFuc2lvbikuICBFdmVuIGlmIGl0IHdlcmUgZml4ZWQsIHRoZSByZXN1bHQgb2YgdGhpcwotKyAg ICAjIGNoZWNrIHdvdWxkIGJlIGxhcmdlciB0aGFuIGl0IHNob3VsZCBiZS4KLSsgICAgbHRfY3Zf c3lzX21heF9jbWRfbGVuPTEyMjg4OyAgICAjIDEySyBpcyBhYm91dCByaWdodAotKyAgICA7Owot KwotKyAgZ251KikKLSsgICAgIyBVbmRlciBHTlUgSHVyZCwgdGhpcyB0ZXN0IGlzIG5vdCByZXF1 aXJlZCBiZWNhdXNlIHRoZXJlIGlzCi0rICAgICMgbm8gbGltaXQgdG8gdGhlIGxlbmd0aCBvZiBj b21tYW5kIGxpbmUgYXJndW1lbnRzLgotKyAgICAjIExpYnRvb2wgd2lsbCBpbnRlcnByZXQgLTEg YXMgbm8gbGltaXQgd2hhdHNvZXZlcgotKyAgICBsdF9jdl9zeXNfbWF4X2NtZF9sZW49LTE7Ci0r ICAgIDs7Ci0rCi0rICBjeWd3aW4qIHwgbWluZ3cqIHwgY2VnY2MqKQotKyAgICAjIE9uIFdpbjl4 L01FLCB0aGlzIHRlc3QgYmxvd3MgdXAgLS0gaXQgc3VjY2VlZHMsIGJ1dCB0YWtlcwotKyAgICAj IGFib3V0IDUgbWludXRlcyBhcyB0aGUgdGVzdHN0cmluZyBncm93cyBleHBvbmVudGlhbGx5Lgot KyAgICAjIFdvcnNlLCBzaW5jZSA5eC9NRSBhcmUgbm90IHByZS1lbXB0aXZlbHkgbXVsdGl0YXNr aW5nLAotKyAgICAjIHlvdSBlbmQgdXAgd2l0aCBhICJmcm96ZW4iIGNvbXB1dGVyLCBldmVuIHRo b3VnaCB3aXRoIHBhdGllbmNlCi0rICAgICMgdGhlIHRlc3QgZXZlbnR1YWxseSBzdWNjZWVkcyAo d2l0aCBhIG1heCBsaW5lIGxlbmd0aCBvZiAyNTZrKS4KLSsgICAgIyBJbnN0ZWFkLCBsZXQncyBq dXN0IHB1bnQ6IHVzZSB0aGUgbWluaW11bSBsaW5lbGVuZ3RoIHJlcG9ydGVkIGJ5Ci0rICAgICMg YWxsIG9mIHRoZSBzdXBwb3J0ZWQgcGxhdGZvcm1zOiA4MTkyIChvbiBOVC8ySy9YUCkuCi0rICAg IGx0X2N2X3N5c19tYXhfY21kX2xlbj04MTkyOwotKyAgICA7OwotKwotKyAgYW1pZ2FvcyopCi0r ICAgICMgT24gQW1pZ2FPUyB3aXRoIHBka3NoLCB0aGlzIHRlc3QgdGFrZXMgaG91cnMsIGxpdGVy YWxseS4KLSsgICAgIyBTbyB3ZSBqdXN0IHB1bnQgYW5kIHVzZSBhIG1pbmltdW0gbGluZSBsZW5n dGggb2YgODE5Mi4KLSsgICAgbHRfY3Zfc3lzX21heF9jbWRfbGVuPTgxOTI7Ci0rICAgIDs7Ci0r Ci0rICBuZXRic2QqIHwgZnJlZWJzZCogfCBvcGVuYnNkKiB8IGRhcndpbiogfCBkcmFnb25mbHkq KQotKyAgICAjIFRoaXMgaGFzIGJlZW4gYXJvdW5kIHNpbmNlIDM4NkJTRCwgYXQgbGVhc3QuICBM aWtlbHkgZnVydGhlci4KLSsgICAgaWYgdGVzdCAteCAvc2Jpbi9zeXNjdGw7IHRoZW4KLSsgICAg ICBsdF9jdl9zeXNfbWF4X2NtZF9sZW49YC9zYmluL3N5c2N0bCAtbiBrZXJuLmFyZ21heGAKLSsg ICAgZWxpZiB0ZXN0IC14IC91c3Ivc2Jpbi9zeXNjdGw7IHRoZW4KLSsgICAgICBsdF9jdl9zeXNf bWF4X2NtZF9sZW49YC91c3Ivc2Jpbi9zeXNjdGwgLW4ga2Vybi5hcmdtYXhgCi0rICAgIGVsc2UK LSsgICAgICBsdF9jdl9zeXNfbWF4X2NtZF9sZW49NjU1MzYJIyB1c2FibGUgZGVmYXVsdCBmb3Ig YWxsIEJTRHMKLSsgICAgZmkKLSsgICAgIyBBbmQgYWRkIGEgc2FmZXR5IHpvbmUKLSsgICAgbHRf Y3Zfc3lzX21heF9jbWRfbGVuPWBleHByICRsdF9jdl9zeXNfbWF4X2NtZF9sZW4gXC8gNGAKLSsg ICAgbHRfY3Zfc3lzX21heF9jbWRfbGVuPWBleHByICRsdF9jdl9zeXNfbWF4X2NtZF9sZW4gXCog M2AKLSsgICAgOzsKLSsKLSsgIGludGVyaXgqKQotKyAgICAjIFdlIGtub3cgdGhlIHZhbHVlIDI2 MjE0NCBhbmQgaGFyZGNvZGUgaXQgd2l0aCBhIHNhZmV0eSB6b25lIChsaWtlIEJTRCkKLSsgICAg bHRfY3Zfc3lzX21heF9jbWRfbGVuPTE5NjYwOAotKyAgICA7OwotKwotKyAgb3NmKikKLSsgICAg IyBEci4gSGFucyBFa2tlaGFyZCBQbGVzc2VyIHJlcG9ydHMgc2VlaW5nIGEga2VybmVsIHBhbmlj IHJ1bm5pbmcgY29uZmlndXJlCi0rICAgICMgZHVlIHRvIHRoaXMgdGVzdCB3aGVuIGV4ZWNfZGlz YWJsZV9hcmdfbGltaXQgaXMgMSBvbiBUcnU2NC4gSXQgaXMgbm90Ci0rICAgICMgbmljZSB0byBj YXVzZSBrZXJuZWwgcGFuaWNzIHNvIGxldHMgYXZvaWQgdGhlIGxvb3AgYmVsb3cuCi0rICAgICMg Rmlyc3Qgc2V0IGEgcmVhc29uYWJsZSBkZWZhdWx0LgotKyAgICBsdF9jdl9zeXNfbWF4X2NtZF9s ZW49MTYzODQKLSsgICAgIwotKyAgICBpZiB0ZXN0IC14IC9zYmluL3N5c2NvbmZpZzsgdGhlbgot KyAgICAgIGNhc2UgYC9zYmluL3N5c2NvbmZpZyAtcSBwcm9jIGV4ZWNfZGlzYWJsZV9hcmdfbGlt aXRgIGluCi0rICAgICAgICAqMSopIGx0X2N2X3N5c19tYXhfY21kX2xlbj0tMSA7OwotKyAgICAg IGVzYWMKLSsgICAgZmkKLSsgICAgOzsKLSsgIHNjbzMuMnY1KikKLSsgICAgbHRfY3Zfc3lzX21h eF9jbWRfbGVuPTEwMjQwMAotKyAgICA7OwotKyAgc3lzdjUqIHwgc2NvNXY2KiB8IHN5c3Y0LjJ1 dzIqKQotKyAgICBrYXJnbWF4PWBncmVwIEFSR19NQVggL2V0Yy9jb25mL2NmLmQvc3R1bmUgMj4v ZGV2L251bGxgCi0rICAgIGlmIHRlc3QgLW4gIiRrYXJnbWF4IjsgdGhlbgotKyAgICAgIGx0X2N2 X3N5c19tYXhfY21kX2xlbj1gZWNobyAka2FyZ21heCB8IHNlZCAncy8uKltbCSBdXS8vJ2AKLSsg ICAgZWxzZQotKyAgICAgIGx0X2N2X3N5c19tYXhfY21kX2xlbj0zMjc2OAotKyAgICBmaQotKyAg ICA7OwotKyAgKikKLSsgICAgbHRfY3Zfc3lzX21heF9jbWRfbGVuPWAoZ2V0Y29uZiBBUkdfTUFY KSAyPiAvZGV2L251bGxgCi0rICAgIGlmIHRlc3QgLW4gIiRsdF9jdl9zeXNfbWF4X2NtZF9sZW4i OyB0aGVuCi0rICAgICAgbHRfY3Zfc3lzX21heF9jbWRfbGVuPWBleHByICRsdF9jdl9zeXNfbWF4 X2NtZF9sZW4gXC8gNGAKLSsgICAgICBsdF9jdl9zeXNfbWF4X2NtZF9sZW49YGV4cHIgJGx0X2N2 X3N5c19tYXhfY21kX2xlbiBcKiAzYAotKyAgICBlbHNlCi0rICAgICAgIyBNYWtlIHRlc3RzdHJp bmcgYSBsaXR0bGUgYmlnZ2VyIGJlZm9yZSB3ZSBkbyBhbnl0aGluZyB3aXRoIGl0LgotKyAgICAg ICMgYSAxSyBzdHJpbmcgc2hvdWxkIGJlIGEgcmVhc29uYWJsZSBzdGFydC4KLSsgICAgICBmb3Ig aSBpbiAxIDIgMyA0IDUgNiA3IDggOyBkbwotKyAgICAgICAgdGVzdHN0cmluZz0kdGVzdHN0cmlu ZyR0ZXN0c3RyaW5nCi0rICAgICAgZG9uZQotKyAgICAgIFNIRUxMPSR7U0hFTEwtJHtDT05GSUdf U0hFTEwtL2Jpbi9zaH19Ci0rICAgICAgIyBJZiB0ZXN0IGlzIG5vdCBhIHNoZWxsIGJ1aWx0LWlu LCB3ZSdsbCBwcm9iYWJseSBlbmQgdXAgY29tcHV0aW5nIGEKLSsgICAgICAjIG1heGltdW0gbGVu Z3RoIHRoYXQgaXMgb25seSBoYWxmIG9mIHRoZSBhY3R1YWwgbWF4aW11bSBsZW5ndGgsIGJ1dAot KyAgICAgICMgd2UgY2FuJ3QgdGVsbC4KLSsgICAgICB3aGlsZSB7IHRlc3QgIlgiYCRTSEVMTCBb JF0wIC0tZmFsbGJhY2stZWNobyAiWCR0ZXN0c3RyaW5nJHRlc3RzdHJpbmciIDI+L2Rldi9udWxs YCBcCi0rCSAgICAgICAgID0gIlhYJHRlc3RzdHJpbmckdGVzdHN0cmluZyI7IH0gPi9kZXYvbnVs bCAyPiYxICYmCi0rCSAgICAgIHRlc3QgJGkgIT0gMTcgIyAxLzIgTUIgc2hvdWxkIGJlIGVub3Vn aAotKyAgICAgIGRvCi0rICAgICAgICBpPWBleHByICRpICsgMWAKLSsgICAgICAgIHRlc3RzdHJp bmc9JHRlc3RzdHJpbmckdGVzdHN0cmluZwotKyAgICAgIGRvbmUKLSsgICAgICAjIE9ubHkgY2hl Y2sgdGhlIHN0cmluZyBsZW5ndGggb3V0c2lkZSB0aGUgbG9vcC4KLSsgICAgICBsdF9jdl9zeXNf bWF4X2NtZF9sZW49YGV4cHIgIlgkdGVzdHN0cmluZyIgOiAiLioiIDI+JjFgCi0rICAgICAgdGVz dHN0cmluZz0KLSsgICAgICAjIEFkZCBhIHNpZ25pZmljYW50IHNhZmV0eSBmYWN0b3IgYmVjYXVz ZSBDKysgY29tcGlsZXJzIGNhbiB0YWNrIG9uCi0rICAgICAgIyBtYXNzaXZlIGFtb3VudHMgb2Yg YWRkaXRpb25hbCBhcmd1bWVudHMgYmVmb3JlIHBhc3NpbmcgdGhlbSB0byB0aGUKLSsgICAgICAj IGxpbmtlci4gIEl0IGFwcGVhcnMgYXMgdGhvdWdoIDEvMiBpcyBhIHVzYWJsZSB2YWx1ZS4KLSsg ICAgICBsdF9jdl9zeXNfbWF4X2NtZF9sZW49YGV4cHIgJGx0X2N2X3N5c19tYXhfY21kX2xlbiBc LyAyYAotKyAgICBmaQotKyAgICA7OwotKyAgZXNhYwotK10pCi0raWYgdGVzdCAtbiAkbHRfY3Zf c3lzX21heF9jbWRfbGVuIDsgdGhlbgotKyAgQUNfTVNHX1JFU1VMVCgkbHRfY3Zfc3lzX21heF9j bWRfbGVuKQotK2Vsc2UKLSsgIEFDX01TR19SRVNVTFQobm9uZSkKLStmaQotK21heF9jbWRfbGVu PSRsdF9jdl9zeXNfbWF4X2NtZF9sZW4KLStfTFRfREVDTChbXSwgW21heF9jbWRfbGVuXSwgWzBd LAotKyAgICBbV2hhdCBpcyB0aGUgbWF4aW11bSBsZW5ndGggb2YgYSBjb21tYW5kP10pCi0rXSkj IExUX0NNRF9NQVhfTEVOCi0rCi0rIyBPbGQgbmFtZToKLStBVV9BTElBUyhbQUNfTElCVE9PTF9T WVNfTUFYX0NNRF9MRU5dLCBbTFRfQ01EX01BWF9MRU5dKQotK2RubCBhY2xvY2FsLTEuNCBiYWNr d2FyZHMgY29tcGF0aWJpbGl0eToKLStkbmwgQUNfREVGVU4oW0FDX0xJQlRPT0xfU1lTX01BWF9D TURfTEVOXSwgW10pCi0rCi0rCi0rIyBfTFRfSEVBREVSX0RMRkNOCi0rIyAtLS0tLS0tLS0tLS0t LS0tCi0rbTRfZGVmdW4oW19MVF9IRUFERVJfRExGQ05dLAotK1tBQ19DSEVDS19IRUFERVJTKFtk bGZjbi5oXSwgW10sIFtdLCBbQUNfSU5DTFVERVNfREVGQVVMVF0pZG5sCi0rXSkjIF9MVF9IRUFE RVJfRExGQ04KLSsKLSsKLSsjIF9MVF9UUllfRExPUEVOX1NFTEYgKEFDVElPTi1JRi1UUlVFLCBB Q1RJT04tSUYtVFJVRS1XLVVTQ09SRSwKLSsjICAgICAgICAgICAgICAgICAgICAgIEFDVElPTi1J Ri1GQUxTRSwgQUNUSU9OLUlGLUNST1NTLUNPTVBJTElORykKLSsjIC0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSttNF9kZWZ1 bihbX0xUX1RSWV9ETE9QRU5fU0VMRl0sCi0rW200X3JlcXVpcmUoW19MVF9IRUFERVJfRExGQ05d KWRubAotK2lmIHRlc3QgIiRjcm9zc19jb21waWxpbmciID0geWVzOyB0aGVuIDoKLSsgIFskNF0K LStlbHNlCi0rICBsdF9kbHVua25vd249MDsgbHRfZGxub191c2NvcmU9MTsgbHRfZGxuZWVkX3Vz Y29yZT0yCi0rICBsdF9zdGF0dXM9JGx0X2RsdW5rbm93bgotKyAgY2F0ID4gY29uZnRlc3QuJGFj X2V4dCA8PF9MVF9FT0YKLStbI2xpbmUgX19vbGluZV9fICJjb25maWd1cmUiCi0rI2luY2x1ZGUg ImNvbmZkZWZzLmgiCi0rCi0rI2lmIEhBVkVfRExGQ05fSAotKyNpbmNsdWRlIDxkbGZjbi5oPgot KyNlbmRpZgotKwotKyNpbmNsdWRlIDxzdGRpby5oPgotKwotKyNpZmRlZiBSVExEX0dMT0JBTAot KyMgIGRlZmluZSBMVF9ETEdMT0JBTAkJUlRMRF9HTE9CQUwKLSsjZWxzZQotKyMgIGlmZGVmIERM X0dMT0JBTAotKyMgICAgZGVmaW5lIExUX0RMR0xPQkFMCQlETF9HTE9CQUwKLSsjICBlbHNlCi0r IyAgICBkZWZpbmUgTFRfRExHTE9CQUwJCTAKLSsjICBlbmRpZgotKyNlbmRpZgotKwotKy8qIFdl IG1heSBoYXZlIHRvIGRlZmluZSBMVF9ETExBWllfT1JfTk9XIGluIHRoZSBjb21tYW5kIGxpbmUg aWYgd2UKLSsgICBmaW5kIG91dCBpdCBkb2VzIG5vdCB3b3JrIGluIHNvbWUgcGxhdGZvcm0uICov Ci0rI2lmbmRlZiBMVF9ETExBWllfT1JfTk9XCi0rIyAgaWZkZWYgUlRMRF9MQVpZCi0rIyAgICBk ZWZpbmUgTFRfRExMQVpZX09SX05PVwkJUlRMRF9MQVpZCi0rIyAgZWxzZQotKyMgICAgaWZkZWYg RExfTEFaWQotKyMgICAgICBkZWZpbmUgTFRfRExMQVpZX09SX05PVwkJRExfTEFaWQotKyMgICAg ZWxzZQotKyMgICAgICBpZmRlZiBSVExEX05PVwotKyMgICAgICAgIGRlZmluZSBMVF9ETExBWllf T1JfTk9XCVJUTERfTk9XCi0rIyAgICAgIGVsc2UKLSsjICAgICAgICBpZmRlZiBETF9OT1cKLSsj ICAgICAgICAgIGRlZmluZSBMVF9ETExBWllfT1JfTk9XCURMX05PVwotKyMgICAgICAgIGVsc2UK LSsjICAgICAgICAgIGRlZmluZSBMVF9ETExBWllfT1JfTk9XCTAKLSsjICAgICAgICBlbmRpZgot KyMgICAgICBlbmRpZgotKyMgICAgZW5kaWYKLSsjICBlbmRpZgotKyNlbmRpZgotKwotK3ZvaWQg Zm5vcmQoKSB7IGludCBpPTQyO30KLStpbnQgbWFpbiAoKQotK3sKLSsgIHZvaWQgKnNlbGYgPSBk bG9wZW4gKDAsIExUX0RMR0xPQkFMfExUX0RMTEFaWV9PUl9OT1cpOwotKyAgaW50IHN0YXR1cyA9 ICRsdF9kbHVua25vd247Ci0rCi0rICBpZiAoc2VsZikKLSsgICAgewotKyAgICAgIGlmIChkbHN5 bSAoc2VsZiwiZm5vcmQiKSkgICAgICAgc3RhdHVzID0gJGx0X2Rsbm9fdXNjb3JlOwotKyAgICAg IGVsc2UgaWYgKGRsc3ltKCBzZWxmLCJfZm5vcmQiKSkgc3RhdHVzID0gJGx0X2RsbmVlZF91c2Nv cmU7Ci0rICAgICAgLyogZGxjbG9zZSAoc2VsZik7ICovCi0rICAgIH0KLSsgIGVsc2UKLSsgICAg cHV0cyAoZGxlcnJvciAoKSk7Ci0rCi0rICByZXR1cm4gc3RhdHVzOwotK31dCi0rX0xUX0VPRgot KyAgaWYgQUNfVFJZX0VWQUwoYWNfbGluaykgJiYgdGVzdCAtcyBjb25mdGVzdCR7YWNfZXhlZXh0 fSAyPi9kZXYvbnVsbDsgdGhlbgotKyAgICAoLi9jb25mdGVzdDsgZXhpdDsgKSA+JkFTX01FU1NB R0VfTE9HX0ZEIDI+L2Rldi9udWxsCi0rICAgIGx0X3N0YXR1cz0kPwotKyAgICBjYXNlIHgkbHRf c3RhdHVzIGluCi0rICAgICAgeCRsdF9kbG5vX3VzY29yZSkgJDEgOzsKLSsgICAgICB4JGx0X2Rs bmVlZF91c2NvcmUpICQyIDs7Ci0rICAgICAgeCRsdF9kbHVua25vd258eCopICQzIDs7Ci0rICAg IGVzYWMKLSsgIGVsc2UgOgotKyAgICAjIGNvbXBpbGF0aW9uIGZhaWxlZAotKyAgICAkMwotKyAg ZmkKLStmaQotK3JtIC1mciBjb25mdGVzdCoKLStdKSMgX0xUX1RSWV9ETE9QRU5fU0VMRgotKwot KwotKyMgTFRfU1lTX0RMT1BFTl9TRUxGCi0rIyAtLS0tLS0tLS0tLS0tLS0tLS0KLStBQ19ERUZV TihbTFRfU1lTX0RMT1BFTl9TRUxGXSwKLStbbTRfcmVxdWlyZShbX0xUX0hFQURFUl9ETEZDTl0p ZG5sCi0raWYgdGVzdCAieCRlbmFibGVfZGxvcGVuIiAhPSB4eWVzOyB0aGVuCi0rICBlbmFibGVf ZGxvcGVuPXVua25vd24KLSsgIGVuYWJsZV9kbG9wZW5fc2VsZj11bmtub3duCi0rICBlbmFibGVf ZGxvcGVuX3NlbGZfc3RhdGljPXVua25vd24KLStlbHNlCi0rICBsdF9jdl9kbG9wZW49bm8KLSsg IGx0X2N2X2Rsb3Blbl9saWJzPQotKwotKyAgY2FzZSAkaG9zdF9vcyBpbgotKyAgYmVvcyopCi0r ICAgIGx0X2N2X2Rsb3Blbj0ibG9hZF9hZGRfb24iCi0rICAgIGx0X2N2X2Rsb3Blbl9saWJzPQot KyAgICBsdF9jdl9kbG9wZW5fc2VsZj15ZXMKLSsgICAgOzsKLSsKLSsgIG1pbmd3KiB8IHB3MzIq IHwgY2VnY2MqKQotKyAgICBsdF9jdl9kbG9wZW49IkxvYWRMaWJyYXJ5IgotKyAgICBsdF9jdl9k bG9wZW5fbGlicz0KLSsgICAgOzsKLSsKLSsgIGN5Z3dpbiopCi0rICAgIGx0X2N2X2Rsb3Blbj0i ZGxvcGVuIgotKyAgICBsdF9jdl9kbG9wZW5fbGlicz0KLSsgICAgOzsKLSsKLSsgIGRhcndpbiop Ci0rICAjIGlmIGxpYmRsIGlzIGluc3RhbGxlZCB3ZSBuZWVkIHRvIGxpbmsgYWdhaW5zdCBpdAot KyAgICBBQ19DSEVDS19MSUIoW2RsXSwgW2Rsb3Blbl0sCi0rCQlbbHRfY3ZfZGxvcGVuPSJkbG9w ZW4iIGx0X2N2X2Rsb3Blbl9saWJzPSItbGRsIl0sWwotKyAgICBsdF9jdl9kbG9wZW49ImR5bGQi Ci0rICAgIGx0X2N2X2Rsb3Blbl9saWJzPQotKyAgICBsdF9jdl9kbG9wZW5fc2VsZj15ZXMKLSsg ICAgXSkKLSsgICAgOzsKLSsKLSsgICopCi0rICAgIEFDX0NIRUNLX0ZVTkMoW3NobF9sb2FkXSwK LSsJICBbbHRfY3ZfZGxvcGVuPSJzaGxfbG9hZCJdLAotKyAgICAgIFtBQ19DSEVDS19MSUIoW2Rs ZF0sIFtzaGxfbG9hZF0sCi0rCSAgICBbbHRfY3ZfZGxvcGVuPSJzaGxfbG9hZCIgbHRfY3ZfZGxv cGVuX2xpYnM9Ii1sZGxkIl0sCi0rCVtBQ19DSEVDS19GVU5DKFtkbG9wZW5dLAotKwkgICAgICBb bHRfY3ZfZGxvcGVuPSJkbG9wZW4iXSwKLSsJICBbQUNfQ0hFQ0tfTElCKFtkbF0sIFtkbG9wZW5d LAotKwkJW2x0X2N2X2Rsb3Blbj0iZGxvcGVuIiBsdF9jdl9kbG9wZW5fbGlicz0iLWxkbCJdLAot KwkgICAgW0FDX0NIRUNLX0xJQihbc3ZsZF0sIFtkbG9wZW5dLAotKwkJICBbbHRfY3ZfZGxvcGVu PSJkbG9wZW4iIGx0X2N2X2Rsb3Blbl9saWJzPSItbHN2bGQiXSwKLSsJICAgICAgW0FDX0NIRUNL X0xJQihbZGxkXSwgW2RsZF9saW5rXSwKLSsJCSAgICBbbHRfY3ZfZGxvcGVuPSJkbGRfbGluayIg bHRfY3ZfZGxvcGVuX2xpYnM9Ii1sZGxkIl0pCi0rCSAgICAgIF0pCi0rCSAgICBdKQotKwkgIF0p Ci0rCV0pCi0rICAgICAgXSkKLSsgICAgOzsKLSsgIGVzYWMKLSsKLSsgIGlmIHRlc3QgIngkbHRf Y3ZfZGxvcGVuIiAhPSB4bm87IHRoZW4KLSsgICAgZW5hYmxlX2Rsb3Blbj15ZXMKLSsgIGVsc2UK LSsgICAgZW5hYmxlX2Rsb3Blbj1ubwotKyAgZmkKLSsKLSsgIGNhc2UgJGx0X2N2X2Rsb3BlbiBp bgotKyAgZGxvcGVuKQotKyAgICBzYXZlX0NQUEZMQUdTPSIkQ1BQRkxBR1MiCi0rICAgIHRlc3Qg IngkYWNfY3ZfaGVhZGVyX2RsZmNuX2giID0geHllcyAmJiBDUFBGTEFHUz0iJENQUEZMQUdTIC1E SEFWRV9ETEZDTl9IIgotKwotKyAgICBzYXZlX0xERkxBR1M9IiRMREZMQUdTIgotKyAgICB3bD0k bHRfcHJvZ19jb21waWxlcl93bCBldmFsIExERkxBR1M9XCJcJExERkxBR1MgJGV4cG9ydF9keW5h bWljX2ZsYWdfc3BlY1wiCi0rCi0rICAgIHNhdmVfTElCUz0iJExJQlMiCi0rICAgIExJQlM9IiRs dF9jdl9kbG9wZW5fbGlicyAkTElCUyIKLSsKLSsgICAgQUNfQ0FDSEVfQ0hFQ0soW3doZXRoZXIg YSBwcm9ncmFtIGNhbiBkbG9wZW4gaXRzZWxmXSwKLSsJICBsdF9jdl9kbG9wZW5fc2VsZiwgW2Ru bAotKwkgIF9MVF9UUllfRExPUEVOX1NFTEYoCi0rCSAgICBsdF9jdl9kbG9wZW5fc2VsZj15ZXMs IGx0X2N2X2Rsb3Blbl9zZWxmPXllcywKLSsJICAgIGx0X2N2X2Rsb3Blbl9zZWxmPW5vLCBsdF9j dl9kbG9wZW5fc2VsZj1jcm9zcykKLSsgICAgXSkKLSsKLSsgICAgaWYgdGVzdCAieCRsdF9jdl9k bG9wZW5fc2VsZiIgPSB4eWVzOyB0aGVuCi0rICAgICAgd2w9JGx0X3Byb2dfY29tcGlsZXJfd2wg ZXZhbCBMREZMQUdTPVwiXCRMREZMQUdTICRsdF9wcm9nX2NvbXBpbGVyX3N0YXRpY1wiCi0rICAg ICAgQUNfQ0FDSEVfQ0hFQ0soW3doZXRoZXIgYSBzdGF0aWNhbGx5IGxpbmtlZCBwcm9ncmFtIGNh biBkbG9wZW4gaXRzZWxmXSwKLSsJICBsdF9jdl9kbG9wZW5fc2VsZl9zdGF0aWMsIFtkbmwKLSsJ ICBfTFRfVFJZX0RMT1BFTl9TRUxGKAotKwkgICAgbHRfY3ZfZGxvcGVuX3NlbGZfc3RhdGljPXll cywgbHRfY3ZfZGxvcGVuX3NlbGZfc3RhdGljPXllcywKLSsJICAgIGx0X2N2X2Rsb3Blbl9zZWxm X3N0YXRpYz1ubywgIGx0X2N2X2Rsb3Blbl9zZWxmX3N0YXRpYz1jcm9zcykKLSsgICAgICBdKQot KyAgICBmaQotKwotKyAgICBDUFBGTEFHUz0iJHNhdmVfQ1BQRkxBR1MiCi0rICAgIExERkxBR1M9 IiRzYXZlX0xERkxBR1MiCi0rICAgIExJQlM9IiRzYXZlX0xJQlMiCi0rICAgIDs7Ci0rICBlc2Fj Ci0rCi0rICBjYXNlICRsdF9jdl9kbG9wZW5fc2VsZiBpbgotKyAgeWVzfG5vKSBlbmFibGVfZGxv cGVuX3NlbGY9JGx0X2N2X2Rsb3Blbl9zZWxmIDs7Ci0rICAqKSBlbmFibGVfZGxvcGVuX3NlbGY9 dW5rbm93biA7OwotKyAgZXNhYwotKwotKyAgY2FzZSAkbHRfY3ZfZGxvcGVuX3NlbGZfc3RhdGlj IGluCi0rICB5ZXN8bm8pIGVuYWJsZV9kbG9wZW5fc2VsZl9zdGF0aWM9JGx0X2N2X2Rsb3Blbl9z ZWxmX3N0YXRpYyA7OwotKyAgKikgZW5hYmxlX2Rsb3Blbl9zZWxmX3N0YXRpYz11bmtub3duIDs7 Ci0rICBlc2FjCi0rZmkKLStfTFRfREVDTChbZGxvcGVuX3N1cHBvcnRdLCBbZW5hYmxlX2Rsb3Bl bl0sIFswXSwKLSsJIFtXaGV0aGVyIGRsb3BlbiBpcyBzdXBwb3J0ZWRdKQotK19MVF9ERUNMKFtk bG9wZW5fc2VsZl0sIFtlbmFibGVfZGxvcGVuX3NlbGZdLCBbMF0sCi0rCSBbV2hldGhlciBkbG9w ZW4gb2YgcHJvZ3JhbXMgaXMgc3VwcG9ydGVkXSkKLStfTFRfREVDTChbZGxvcGVuX3NlbGZfc3Rh dGljXSwgW2VuYWJsZV9kbG9wZW5fc2VsZl9zdGF0aWNdLCBbMF0sCi0rCSBbV2hldGhlciBkbG9w ZW4gb2Ygc3RhdGljYWxseSBsaW5rZWQgcHJvZ3JhbXMgaXMgc3VwcG9ydGVkXSkKLStdKSMgTFRf U1lTX0RMT1BFTl9TRUxGCi0rCi0rIyBPbGQgbmFtZToKLStBVV9BTElBUyhbQUNfTElCVE9PTF9E TE9QRU5fU0VMRl0sIFtMVF9TWVNfRExPUEVOX1NFTEZdKQotK2RubCBhY2xvY2FsLTEuNCBiYWNr d2FyZHMgY29tcGF0aWJpbGl0eToKLStkbmwgQUNfREVGVU4oW0FDX0xJQlRPT0xfRExPUEVOX1NF TEZdLCBbXSkKLSsKLSsKLSsjIF9MVF9DT01QSUxFUl9DX08oW1RBR05BTUVdKQotKyMgLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0rIyBDaGVjayB0byBzZWUgaWYgb3B0aW9ucyAtYyBhbmQg LW8gYXJlIHNpbXVsdGFuZW91c2x5IHN1cHBvcnRlZCBieSBjb21waWxlci4KLSsjIFRoaXMgbWFj cm8gZG9lcyBub3QgaGFyZCBjb2RlIHRoZSBjb21waWxlciBsaWtlIEFDX1BST0dfQ0NfQ19PLgot K200X2RlZnVuKFtfTFRfQ09NUElMRVJfQ19PXSwKLStbbTRfcmVxdWlyZShbX0xUX0RFQ0xfU0VE XSlkbmwKLSttNF9yZXF1aXJlKFtfTFRfRklMRVVUSUxTX0RFRkFVTFRTXSlkbmwKLSttNF9yZXF1 aXJlKFtfTFRfVEFHX0NPTVBJTEVSXSlkbmwKLStBQ19DQUNIRV9DSEVDSyhbaWYgJGNvbXBpbGVy IHN1cHBvcnRzIC1jIC1vIGZpbGUuJGFjX29iamV4dF0sCi0rICBbX0xUX1RBR1ZBUihsdF9jdl9w cm9nX2NvbXBpbGVyX2NfbywgJDEpXSwKLSsgIFtfTFRfVEFHVkFSKGx0X2N2X3Byb2dfY29tcGls ZXJfY19vLCAkMSk9bm8KLSsgICAkUk0gLXIgY29uZnRlc3QgMj4vZGV2L251bGwKLSsgICBta2Rp ciBjb25mdGVzdAotKyAgIGNkIGNvbmZ0ZXN0Ci0rICAgbWtkaXIgb3V0Ci0rICAgZWNobyAiJGx0 X3NpbXBsZV9jb21waWxlX3Rlc3RfY29kZSIgPiBjb25mdGVzdC4kYWNfZXh0Ci0rCi0rICAgbHRf Y29tcGlsZXJfZmxhZz0iLW8gb3V0L2NvbmZ0ZXN0Mi4kYWNfb2JqZXh0IgotKyAgICMgSW5zZXJ0 IHRoZSBvcHRpb24gZWl0aGVyICgxKSBhZnRlciB0aGUgbGFzdCAqRkxBR1MgdmFyaWFibGUsIG9y Ci0rICAgIyAoMikgYmVmb3JlIGEgd29yZCBjb250YWluaW5nICJjb25mdGVzdC4iLCBvciAoMykg YXQgdGhlIGVuZC4KLSsgICAjIE5vdGUgdGhhdCAkYWNfY29tcGlsZSBpdHNlbGYgZG9lcyBub3Qg Y29udGFpbiBiYWNrc2xhc2hlcyBhbmQgYmVnaW5zCi0rICAgIyB3aXRoIGEgZG9sbGFyIHNpZ24g KG5vdCBhIGh5cGhlbiksIHNvIHRoZSBlY2hvIHNob3VsZCB3b3JrIGNvcnJlY3RseS4KLSsgICBs dF9jb21waWxlPWBlY2hvICIkYWNfY29tcGlsZSIgfCAkU0VEIFwKLSsgICAtZSAnczouKkZMQUdT fVx7MCwxXH0gOiYkbHRfY29tcGlsZXJfZmxhZyA6OyB0JyBcCi0rICAgLWUgJ3M6IFtbXiBdXSpj b25mdGVzdFwuOiAkbHRfY29tcGlsZXJfZmxhZyY6OyB0JyBcCi0rICAgLWUgJ3M6JDogJGx0X2Nv bXBpbGVyX2ZsYWc6J2AKLSsgICAoZXZhbCBlY2hvICJcIlwkYXNfbWU6X19vbGluZV9fOiAkbHRf Y29tcGlsZVwiIiA+JkFTX01FU1NBR0VfTE9HX0ZEKQotKyAgIChldmFsICIkbHRfY29tcGlsZSIg Mj5vdXQvY29uZnRlc3QuZXJyKQotKyAgIGFjX3N0YXR1cz0kPwotKyAgIGNhdCBvdXQvY29uZnRl c3QuZXJyID4mQVNfTUVTU0FHRV9MT0dfRkQKLSsgICBlY2hvICIkYXNfbWU6X19vbGluZV9fOiBc JD8gPSAkYWNfc3RhdHVzIiA+JkFTX01FU1NBR0VfTE9HX0ZECi0rICAgaWYgKGV4aXQgJGFjX3N0 YXR1cykgJiYgdGVzdCAtcyBvdXQvY29uZnRlc3QyLiRhY19vYmpleHQKLSsgICB0aGVuCi0rICAg ICAjIFRoZSBjb21waWxlciBjYW4gb25seSB3YXJuIGFuZCBpZ25vcmUgdGhlIG9wdGlvbiBpZiBu b3QgcmVjb2duaXplZAotKyAgICAgIyBTbyBzYXkgbm8gaWYgdGhlcmUgYXJlIHdhcm5pbmdzCi0r ICAgICAkRUNITyAiWCRfbHRfY29tcGlsZXJfYm9pbGVycGxhdGUiIHwgJFhzZWQgLWUgJy9eJC9k JyA+IG91dC9jb25mdGVzdC5leHAKLSsgICAgICRTRUQgJy9eJC9kOyAvXiAqKy9kJyBvdXQvY29u ZnRlc3QuZXJyID5vdXQvY29uZnRlc3QuZXIyCi0rICAgICBpZiB0ZXN0ICEgLXMgb3V0L2NvbmZ0 ZXN0LmVyMiB8fCBkaWZmIG91dC9jb25mdGVzdC5leHAgb3V0L2NvbmZ0ZXN0LmVyMiA+L2Rldi9u dWxsOyB0aGVuCi0rICAgICAgIF9MVF9UQUdWQVIobHRfY3ZfcHJvZ19jb21waWxlcl9jX28sICQx KT15ZXMKLSsgICAgIGZpCi0rICAgZmkKLSsgICBjaG1vZCB1K3cgLiAyPiZBU19NRVNTQUdFX0xP R19GRAotKyAgICRSTSBjb25mdGVzdCoKLSsgICAjIFNHSSBDKysgY29tcGlsZXIgd2lsbCBjcmVh dGUgZGlyZWN0b3J5IG91dC9paV9maWxlcy8gZm9yCi0rICAgIyB0ZW1wbGF0ZSBpbnN0YW50aWF0 aW9uCi0rICAgdGVzdCAtZCBvdXQvaWlfZmlsZXMgJiYgJFJNIG91dC9paV9maWxlcy8qICYmIHJt ZGlyIG91dC9paV9maWxlcwotKyAgICRSTSBvdXQvKiAmJiBybWRpciBvdXQKLSsgICBjZCAuLgot KyAgICRSTSAtciBjb25mdGVzdAotKyAgICRSTSBjb25mdGVzdCoKLStdKQotK19MVF9UQUdERUNM KFtjb21waWxlcl9jX29dLCBbbHRfY3ZfcHJvZ19jb21waWxlcl9jX29dLCBbMV0sCi0rCVtEb2Vz IGNvbXBpbGVyIHNpbXVsdGFuZW91c2x5IHN1cHBvcnQgLWMgYW5kIC1vIG9wdGlvbnM/XSkKLStd KSMgX0xUX0NPTVBJTEVSX0NfTwotKwotKwotKyMgX0xUX0NPTVBJTEVSX0ZJTEVfTE9DS1MoW1RB R05BTUVdKQotKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotKyMgQ2hlY2sg dG8gc2VlIGlmIHdlIGNhbiBkbyBoYXJkIGxpbmtzIHRvIGxvY2sgc29tZSBmaWxlcyBpZiBuZWVk ZWQKLSttNF9kZWZ1bihbX0xUX0NPTVBJTEVSX0ZJTEVfTE9DS1NdLAotK1ttNF9yZXF1aXJlKFtf TFRfRU5BQkxFX0xPQ0tdKWRubAotK200X3JlcXVpcmUoW19MVF9GSUxFVVRJTFNfREVGQVVMVFNd KWRubAotK19MVF9DT01QSUxFUl9DX08oWyQxXSkKLSsKLStoYXJkX2xpbmtzPSJub3R0ZXN0ZWQi Ci0raWYgdGVzdCAiJF9MVF9UQUdWQVIobHRfY3ZfcHJvZ19jb21waWxlcl9jX28sICQxKSIgPSBu byAmJiB0ZXN0ICIkbmVlZF9sb2NrcyIgIT0gbm87IHRoZW4KLSsgICMgZG8gbm90IG92ZXJ3cml0 ZSB0aGUgdmFsdWUgb2YgbmVlZF9sb2NrcyBwcm92aWRlZCBieSB0aGUgdXNlcgotKyAgQUNfTVNH X0NIRUNLSU5HKFtpZiB3ZSBjYW4gbG9jayB3aXRoIGhhcmQgbGlua3NdKQotKyAgaGFyZF9saW5r cz15ZXMKLSsgICRSTSBjb25mdGVzdCoKLSsgIGxuIGNvbmZ0ZXN0LmEgY29uZnRlc3QuYiAyPi9k ZXYvbnVsbCAmJiBoYXJkX2xpbmtzPW5vCi0rICB0b3VjaCBjb25mdGVzdC5hCi0rICBsbiBjb25m dGVzdC5hIGNvbmZ0ZXN0LmIgMj4mNSB8fCBoYXJkX2xpbmtzPW5vCi0rICBsbiBjb25mdGVzdC5h IGNvbmZ0ZXN0LmIgMj4vZGV2L251bGwgJiYgaGFyZF9saW5rcz1ubwotKyAgQUNfTVNHX1JFU1VM VChbJGhhcmRfbGlua3NdKQotKyAgaWYgdGVzdCAiJGhhcmRfbGlua3MiID0gbm87IHRoZW4KLSsg ICAgQUNfTVNHX1dBUk4oW2AkQ0MnIGRvZXMgbm90IHN1cHBvcnQgYC1jIC1vJywgc28gYG1ha2Ug LWonIG1heSBiZSB1bnNhZmVdKQotKyAgICBuZWVkX2xvY2tzPXdhcm4KLSsgIGZpCi0rZWxzZQot KyAgbmVlZF9sb2Nrcz1ubwotK2ZpCi0rX0xUX0RFQ0woW10sIFtuZWVkX2xvY2tzXSwgWzFdLCBb TXVzdCB3ZSBsb2NrIGZpbGVzIHdoZW4gZG9pbmcgY29tcGlsYXRpb24/XSkKLStdKSMgX0xUX0NP TVBJTEVSX0ZJTEVfTE9DS1MKLSsKLSsKLSsjIF9MVF9DSEVDS19PQkpESVIKLSsjIC0tLS0tLS0t LS0tLS0tLS0KLSttNF9kZWZ1bihbX0xUX0NIRUNLX09CSkRJUl0sCi0rW0FDX0NBQ0hFX0NIRUNL KFtmb3Igb2JqZGlyXSwgW2x0X2N2X29iamRpcl0sCi0rW3JtIC1mIC5saWJzIDI+L2Rldi9udWxs Ci0rbWtkaXIgLmxpYnMgMj4vZGV2L251bGwKLStpZiB0ZXN0IC1kIC5saWJzOyB0aGVuCi0rICBs dF9jdl9vYmpkaXI9LmxpYnMKLStlbHNlCi0rICAjIE1TLURPUyBkb2VzIG5vdCBhbGxvdyBmaWxl bmFtZXMgdGhhdCBiZWdpbiB3aXRoIGEgZG90LgotKyAgbHRfY3Zfb2JqZGlyPV9saWJzCi0rZmkK LStybWRpciAubGlicyAyPi9kZXYvbnVsbF0pCi0rb2JqZGlyPSRsdF9jdl9vYmpkaXIKLStfTFRf REVDTChbXSwgW29iamRpcl0sIFswXSwKLSsgICAgICAgICBbVGhlIG5hbWUgb2YgdGhlIGRpcmVj dG9yeSB0aGF0IGNvbnRhaW5zIHRlbXBvcmFyeSBsaWJ0b29sIGZpbGVzXSlkbmwKLSttNF9wYXR0 ZXJuX2FsbG93KFtMVF9PQkpESVJdKWRubAotK0FDX0RFRklORV9VTlFVT1RFRChMVF9PQkpESVIs ICIkbHRfY3Zfb2JqZGlyLyIsCi0rICBbRGVmaW5lIHRvIHRoZSBzdWItZGlyZWN0b3J5IGluIHdo aWNoIGxpYnRvb2wgc3RvcmVzIHVuaW5zdGFsbGVkIGxpYnJhcmllcy5dKQotK10pIyBfTFRfQ0hF Q0tfT0JKRElSCi0rCi0rCi0rIyBfTFRfTElOS0VSX0hBUkRDT0RFX0xJQlBBVEgoW1RBR05BTUVd KQotKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSsjIENoZWNrIGhh cmRjb2RpbmcgYXR0cmlidXRlcy4KLSttNF9kZWZ1bihbX0xUX0xJTktFUl9IQVJEQ09ERV9MSUJQ QVRIXSwKLStbQUNfTVNHX0NIRUNLSU5HKFtob3cgdG8gaGFyZGNvZGUgbGlicmFyeSBwYXRocyBp bnRvIHByb2dyYW1zXSkKLStfTFRfVEFHVkFSKGhhcmRjb2RlX2FjdGlvbiwgJDEpPQotK2lmIHRl c3QgLW4gIiRfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKSIgfHwKLSsg ICB0ZXN0IC1uICIkX0xUX1RBR1ZBUihydW5wYXRoX3ZhciwgJDEpIiB8fAotKyAgIHRlc3QgIlgk X0xUX1RBR1ZBUihoYXJkY29kZV9hdXRvbWF0aWMsICQxKSIgPSAiWHllcyIgOyB0aGVuCi0rCi0r ICAjIFdlIGNhbiBoYXJkY29kZSBub24tZXhpc3RlbnQgZGlyZWN0b3JpZXMuCi0rICBpZiB0ZXN0 ICIkX0xUX1RBR1ZBUihoYXJkY29kZV9kaXJlY3QsICQxKSIgIT0gbm8gJiYKLSsgICAgICMgSWYg dGhlIG9ubHkgbWVjaGFuaXNtIHRvIGF2b2lkIGhhcmRjb2RpbmcgaXMgc2hsaWJwYXRoX3Zhciwg d2UKLSsgICAgICMgaGF2ZSB0byByZWxpbmssIG90aGVyd2lzZSB3ZSBtaWdodCBsaW5rIHdpdGgg YW4gaW5zdGFsbGVkIGxpYnJhcnkKLSsgICAgICMgd2hlbiB3ZSBzaG91bGQgYmUgbGlua2luZyB3 aXRoIGEgeWV0LXRvLWJlLWluc3RhbGxlZCBvbmUKLSsgICAgICMjIHRlc3QgIiRfTFRfVEFHVkFS KGhhcmRjb2RlX3NobGlicGF0aF92YXIsICQxKSIgIT0gbm8gJiYKLSsgICAgIHRlc3QgIiRfTFRf VEFHVkFSKGhhcmRjb2RlX21pbnVzX0wsICQxKSIgIT0gbm87IHRoZW4KLSsgICAgIyBMaW5raW5n IGFsd2F5cyBoYXJkY29kZXMgdGhlIHRlbXBvcmFyeSBsaWJyYXJ5IGRpcmVjdG9yeS4KLSsgICAg X0xUX1RBR1ZBUihoYXJkY29kZV9hY3Rpb24sICQxKT1yZWxpbmsKLSsgIGVsc2UKLSsgICAgIyBX ZSBjYW4gbGluayB3aXRob3V0IGhhcmRjb2RpbmcsIGFuZCB3ZSBjYW4gaGFyZGNvZGUgbm9uZXhp c3RpbmcgZGlycy4KLSsgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9hY3Rpb24sICQxKT1pbW1lZGlh dGUKLSsgIGZpCi0rZWxzZQotKyAgIyBXZSBjYW5ub3QgaGFyZGNvZGUgYW55dGhpbmcsIG9yIGVs c2Ugd2UgY2FuIG9ubHkgaGFyZGNvZGUgZXhpc3RpbmcKLSsgICMgZGlyZWN0b3JpZXMuCi0rICBf TFRfVEFHVkFSKGhhcmRjb2RlX2FjdGlvbiwgJDEpPXVuc3VwcG9ydGVkCi0rZmkKLStBQ19NU0df UkVTVUxUKFskX0xUX1RBR1ZBUihoYXJkY29kZV9hY3Rpb24sICQxKV0pCi0rCi0raWYgdGVzdCAi JF9MVF9UQUdWQVIoaGFyZGNvZGVfYWN0aW9uLCAkMSkiID0gcmVsaW5rIHx8Ci0rICAgdGVzdCAi JF9MVF9UQUdWQVIoaW5oZXJpdF9ycGF0aCwgJDEpIiA9IHllczsgdGhlbgotKyAgIyBGYXN0IGlu c3RhbGxhdGlvbiBpcyBub3Qgc3VwcG9ydGVkCi0rICBlbmFibGVfZmFzdF9pbnN0YWxsPW5vCi0r ZWxpZiB0ZXN0ICIkc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoIiA9IHllcyB8fAotKyAgICAg dGVzdCAiJGVuYWJsZV9zaGFyZWQiID0gbm87IHRoZW4KLSsgICMgRmFzdCBpbnN0YWxsYXRpb24g aXMgbm90IG5lY2Vzc2FyeQotKyAgZW5hYmxlX2Zhc3RfaW5zdGFsbD1uZWVkbGVzcwotK2ZpCi0r X0xUX1RBR0RFQ0woW10sIFtoYXJkY29kZV9hY3Rpb25dLCBbMF0sCi0rICAgIFtIb3cgdG8gaGFy ZGNvZGUgYSBzaGFyZWQgbGlicmFyeSBwYXRoIGludG8gYW4gZXhlY3V0YWJsZV0pCi0rXSkjIF9M VF9MSU5LRVJfSEFSRENPREVfTElCUEFUSAotKwotKwotKyMgX0xUX0NNRF9TVFJJUExJQgotKyMg LS0tLS0tLS0tLS0tLS0tLQotK200X2RlZnVuKFtfTFRfQ01EX1NUUklQTElCXSwKLStbbTRfcmVx dWlyZShbX0xUX0RFQ0xfRUdSRVBdKQotK3N0cmlwbGliPQotK29sZF9zdHJpcGxpYj0KLStBQ19N U0dfQ0hFQ0tJTkcoW3doZXRoZXIgc3RyaXBwaW5nIGxpYnJhcmllcyBpcyBwb3NzaWJsZV0pCi0r aWYgdGVzdCAtbiAiJFNUUklQIiAmJiAkU1RSSVAgLVYgMj4mMSB8ICRHUkVQICJHTlUgc3RyaXAi ID4vZGV2L251bGw7IHRoZW4KLSsgIHRlc3QgLXogIiRvbGRfc3RyaXBsaWIiICYmIG9sZF9zdHJp cGxpYj0iJFNUUklQIC0tc3RyaXAtZGVidWciCi0rICB0ZXN0IC16ICIkc3RyaXBsaWIiICYmIHN0 cmlwbGliPSIkU1RSSVAgLS1zdHJpcC11bm5lZWRlZCIKLSsgIEFDX01TR19SRVNVTFQoW3llc10p Ci0rZWxzZQotKyMgRklYTUUgLSBpbnNlcnQgc29tZSByZWFsIHRlc3RzLCBob3N0X29zIGlzbid0 IHJlYWxseSBnb29kIGVub3VnaAotKyAgY2FzZSAkaG9zdF9vcyBpbgotKyAgZGFyd2luKikKLSsg ICAgaWYgdGVzdCAtbiAiJFNUUklQIiA7IHRoZW4KLSsgICAgICBzdHJpcGxpYj0iJFNUUklQIC14 IgotKyAgICAgIG9sZF9zdHJpcGxpYj0iJFNUUklQIC1TIgotKyAgICAgIEFDX01TR19SRVNVTFQo W3llc10pCi0rICAgIGVsc2UKLSsgICAgICBBQ19NU0dfUkVTVUxUKFtub10pCi0rICAgIGZpCi0r ICAgIDs7Ci0rICAqKQotKyAgICBBQ19NU0dfUkVTVUxUKFtub10pCi0rICAgIDs7Ci0rICBlc2Fj Ci0rZmkKLStfTFRfREVDTChbXSwgW29sZF9zdHJpcGxpYl0sIFsxXSwgW0NvbW1hbmRzIHRvIHN0 cmlwIGxpYnJhcmllc10pCi0rX0xUX0RFQ0woW10sIFtzdHJpcGxpYl0sIFsxXSkKLStdKSMgX0xU X0NNRF9TVFJJUExJQgotKwotKwotKyMgX0xUX1NZU19EWU5BTUlDX0xJTktFUihbVEFHXSkKLSsj IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0rIyBQT1JUTUUgRmlsbCBpbiB5b3VyIGxk LnNvIGNoYXJhY3RlcmlzdGljcwotK200X2RlZnVuKFtfTFRfU1lTX0RZTkFNSUNfTElOS0VSXSwK LStbQUNfUkVRVUlSRShbQUNfQ0FOT05JQ0FMX0hPU1RdKWRubAotK200X3JlcXVpcmUoW19MVF9E RUNMX0VHUkVQXSlkbmwKLSttNF9yZXF1aXJlKFtfTFRfRklMRVVUSUxTX0RFRkFVTFRTXSlkbmwK LSttNF9yZXF1aXJlKFtfTFRfREVDTF9PQkpEVU1QXSlkbmwKLSttNF9yZXF1aXJlKFtfTFRfREVD TF9TRURdKWRubAotK0FDX01TR19DSEVDS0lORyhbZHluYW1pYyBsaW5rZXIgY2hhcmFjdGVyaXN0 aWNzXSkKLSttNF9pZihbJDFdLAotKwlbXSwgWwotK2lmIHRlc3QgIiRHQ0MiID0geWVzOyB0aGVu Ci0rICBjYXNlICRob3N0X29zIGluCi0rICAgIGRhcndpbiopIGx0X2F3a19hcmc9Ii9ebGlicmFy aWVzOi8sL0xSLyIgOzsKLSsgICAgKikgbHRfYXdrX2FyZz0iL15saWJyYXJpZXM6LyIgOzsKLSsg IGVzYWMKLSsgIGx0X3NlYXJjaF9wYXRoX3NwZWM9YCRDQyAtcHJpbnQtc2VhcmNoLWRpcnMgfCBh d2sgJGx0X2F3a19hcmcgfCAkU0VEIC1lICJzL15saWJyYXJpZXM6Ly8iIC1lICJzLD0vLC8sZyJg Ci0rICBpZiAkRUNITyAiJGx0X3NlYXJjaF9wYXRoX3NwZWMiIHwgJEdSRVAgJzsnID4vZGV2L251 bGwgOyB0aGVuCi0rICAgICMgaWYgdGhlIHBhdGggY29udGFpbnMgIjsiIHRoZW4gd2UgYXNzdW1l IGl0IHRvIGJlIHRoZSBzZXBhcmF0b3IKLSsgICAgIyBvdGhlcndpc2UgZGVmYXVsdCB0byB0aGUg c3RhbmRhcmQgcGF0aCBzZXBhcmF0b3IgKGkuZS4gIjoiKSAtIGl0IGlzCi0rICAgICMgYXNzdW1l ZCB0aGF0IG5vIHBhcnQgb2YgYSBub3JtYWwgcGF0aG5hbWUgY29udGFpbnMgIjsiIGJ1dCB0aGF0 IHNob3VsZAotKyAgICAjIG9rYXkgaW4gdGhlIHJlYWwgd29ybGQgd2hlcmUgIjsiIGluIGRpcnBh dGhzIGlzIGl0c2VsZiBwcm9ibGVtYXRpYy4KLSsgICAgbHRfc2VhcmNoX3BhdGhfc3BlYz1gJEVD SE8gIiRsdF9zZWFyY2hfcGF0aF9zcGVjIiB8ICRTRUQgLWUgJ3MvOy8gL2cnYAotKyAgZWxzZQot KyAgICBsdF9zZWFyY2hfcGF0aF9zcGVjPWAkRUNITyAiJGx0X3NlYXJjaF9wYXRoX3NwZWMiIHwg JFNFRCAgLWUgInMvJFBBVEhfU0VQQVJBVE9SLyAvZyJgCi0rICBmaQotKyAgIyBPaywgbm93IHdl IGhhdmUgdGhlIHBhdGgsIHNlcGFyYXRlZCBieSBzcGFjZXMsIHdlIGNhbiBzdGVwIHRocm91Z2gg aXQKLSsgICMgYW5kIGFkZCBtdWx0aWxpYiBkaXIgaWYgbmVjZXNzYXJ5LgotKyAgbHRfdG1wX2x0 X3NlYXJjaF9wYXRoX3NwZWM9Ci0rICBsdF9tdWx0aV9vc19kaXI9YCRDQyAkQ1BQRkxBR1MgJENG TEFHUyAkTERGTEFHUyAtcHJpbnQtbXVsdGktb3MtZGlyZWN0b3J5IDI+L2Rldi9udWxsYAotKyAg Zm9yIGx0X3N5c19wYXRoIGluICRsdF9zZWFyY2hfcGF0aF9zcGVjOyBkbwotKyAgICBpZiB0ZXN0 IC1kICIkbHRfc3lzX3BhdGgvJGx0X211bHRpX29zX2RpciI7IHRoZW4KLSsgICAgICBsdF90bXBf bHRfc2VhcmNoX3BhdGhfc3BlYz0iJGx0X3RtcF9sdF9zZWFyY2hfcGF0aF9zcGVjICRsdF9zeXNf cGF0aC8kbHRfbXVsdGlfb3NfZGlyIgotKyAgICBlbHNlCi0rICAgICAgdGVzdCAtZCAiJGx0X3N5 c19wYXRoIiAmJiBcCi0rCWx0X3RtcF9sdF9zZWFyY2hfcGF0aF9zcGVjPSIkbHRfdG1wX2x0X3Nl YXJjaF9wYXRoX3NwZWMgJGx0X3N5c19wYXRoIgotKyAgICBmaQotKyAgZG9uZQotKyAgbHRfc2Vh cmNoX3BhdGhfc3BlYz1gJEVDSE8gJGx0X3RtcF9sdF9zZWFyY2hfcGF0aF9zcGVjIHwgYXdrICcK LStCRUdJTiB7UlM9IiAiOyBGUz0iL3xcbiI7fSB7Ci0rICBsdF9mb289IiI7Ci0rICBsdF9jb3Vu dD0wOwotKyAgZm9yIChsdF9pID0gTkY7IGx0X2kgPiAwOyBsdF9pLS0pIHsKLSsgICAgaWYgKCRs dF9pICE9ICIiICYmICRsdF9pICE9ICIuIikgewotKyAgICAgIGlmICgkbHRfaSA9PSAiLi4iKSB7 Ci0rICAgICAgICBsdF9jb3VudCsrOwotKyAgICAgIH0gZWxzZSB7Ci0rICAgICAgICBpZiAobHRf Y291bnQgPT0gMCkgewotKyAgICAgICAgICBsdF9mb289Ii8iICRsdF9pIGx0X2ZvbzsKLSsgICAg ICAgIH0gZWxzZSB7Ci0rICAgICAgICAgIGx0X2NvdW50LS07Ci0rICAgICAgICB9Ci0rICAgICAg fQotKyAgICB9Ci0rICB9Ci0rICBpZiAobHRfZm9vICE9ICIiKSB7IGx0X2ZyZXFbW2x0X2Zvb11d Kys7IH0KLSsgIGlmIChsdF9mcmVxW1tsdF9mb29dXSA9PSAxKSB7IHByaW50IGx0X2ZvbzsgfQot K30nYAotKyAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPWAkRUNITyAkbHRfc2VhcmNoX3BhdGhf c3BlY2AKLStlbHNlCi0rICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9Ii9saWIgL3Vzci9saWIg L3Vzci9sb2NhbC9saWIiCi0rZmldKQotK2xpYnJhcnlfbmFtZXNfc3BlYz0KLStsaWJuYW1lX3Nw ZWM9J2xpYiRuYW1lJwotK3NvbmFtZV9zcGVjPQotK3NocmV4dF9jbWRzPSIuc28iCi0rcG9zdGlu c3RhbGxfY21kcz0KLStwb3N0dW5pbnN0YWxsX2NtZHM9Ci0rZmluaXNoX2NtZHM9Ci0rZmluaXNo X2V2YWw9Ci0rc2hsaWJwYXRoX3Zhcj0KLStzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9dW5r bm93bgotK3ZlcnNpb25fdHlwZT1ub25lCi0rZHluYW1pY19saW5rZXI9IiRob3N0X29zIGxkLnNv IgotK3N5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjPSIvbGliIC91c3IvbGliIgotK25lZWRfbGli X3ByZWZpeD11bmtub3duCi0raGFyZGNvZGVfaW50b19saWJzPW5vCi0rCi0rIyB3aGVuIHlvdSBz ZXQgbmVlZF92ZXJzaW9uIHRvIG5vLCBtYWtlIHN1cmUgaXQgZG9lcyBub3QgY2F1c2UgLXNldF92 ZXJzaW9uCi0rIyBmbGFncyB0byBiZSBsZWZ0IHdpdGhvdXQgYXJndW1lbnRzCi0rbmVlZF92ZXJz aW9uPXVua25vd24KLSsKLStjYXNlICRob3N0X29zIGluCi0rYWl4MyopCi0rICB2ZXJzaW9uX3R5 cGU9bGludXgKLSsgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3No YXJlZF9leHR9JHZlcnN1ZmZpeCAkbGlibmFtZS5hJwotKyAgc2hsaWJwYXRoX3Zhcj1MSUJQQVRI Ci0rCi0rICAjIEFJWCAzIGhhcyBubyB2ZXJzaW9uaW5nIHN1cHBvcnQsIHNvIHdlIGFwcGVuZCBh IG1ham9yIHZlcnNpb24gdG8gdGhlIG5hbWUuCi0rICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7 cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yJwotKyAgOzsKLSsKLSthaXhbWzQtOV1dKikKLSsg IHZlcnNpb25fdHlwZT1saW51eAotKyAgbmVlZF9saWJfcHJlZml4PW5vCi0rICBuZWVkX3ZlcnNp b249bm8KLSsgIGhhcmRjb2RlX2ludG9fbGlicz15ZXMKLSsgIGlmIHRlc3QgIiRob3N0X2NwdSIg PSBpYTY0OyB0aGVuCi0rICAgICMgQUlYIDUgc3VwcG9ydHMgSUE2NAotKyAgICBsaWJyYXJ5X25h bWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAke2xpYm5h bWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICRsaWJuYW1lJHtzaGFyZWRfZXh0 fScKLSsgICAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKLSsgIGVsc2UKLSsgICAgIyBX aXRoIEdDQyB1cCB0byAyLjk1LngsIGNvbGxlY3QyIHdvdWxkIGNyZWF0ZSBhbiBpbXBvcnQgZmls ZQotKyAgICAjIGZvciBkZXBlbmRlbmNlIGxpYnJhcmllcy4gIFRoZSBpbXBvcnQgZmlsZSB3b3Vs ZCBzdGFydCB3aXRoCi0rICAgICMgdGhlIGxpbmUgYCMhIC4nLiAgVGhpcyB3b3VsZCBjYXVzZSB0 aGUgZ2VuZXJhdGVkIGxpYnJhcnkgdG8KLSsgICAgIyBkZXBlbmQgb24gYC4nLCBhbHdheXMgYW4g aW52YWxpZCBsaWJyYXJ5LiAgVGhpcyB3YXMgZml4ZWQgaW4KLSsgICAgIyBkZXZlbG9wbWVudCBz bmFwc2hvdHMgb2YgR0NDIHByaW9yIHRvIDMuMC4KLSsgICAgY2FzZSAkaG9zdF9vcyBpbgotKyAg ICAgIGFpeDQgfCBhaXg0LltbMDFdXSB8IGFpeDQuW1swMV1dLiopCi0rICAgICAgaWYgeyBlY2hv ICcjaWYgX19HTlVDX18gPiAyIHx8IChfX0dOVUNfXyA9PSAyICYmIF9fR05VQ19NSU5PUl9fID49 IDk3KScKLSsJICAgZWNobyAnIHllcyAnCi0rCSAgIGVjaG8gJyNlbmRpZic7IH0gfCAke0NDfSAt RSAtIHwgJEdSRVAgeWVzID4gL2Rldi9udWxsOyB0aGVuCi0rCToKLSsgICAgICBlbHNlCi0rCWNh bl9idWlsZF9zaGFyZWQ9bm8KLSsgICAgICBmaQotKyAgICAgIDs7Ci0rICAgIGVzYWMKLSsgICAg IyBBSVggKG9uIFBvd2VyKikgaGFzIG5vIHZlcnNpb25pbmcgc3VwcG9ydCwgc28gY3VycmVudGx5 IHdlIGNhbiBub3QgaGFyZGNvZGUgY29ycmVjdAotKyAgICAjIHNvbmFtZSBpbnRvIGV4ZWN1dGFi bGUuIFByb2JhYmx5IHdlIGNhbiBhZGQgdmVyc2lvbmluZyBzdXBwb3J0IHRvCi0rICAgICMgY29s bGVjdDIsIHNvIGFkZGl0aW9uYWwgbGlua3MgY2FuIGJlIHVzZWZ1bCBpbiBmdXR1cmUuCi0rICAg IGlmIHRlc3QgIiRhaXhfdXNlX3J1bnRpbWVsaW5raW5nIiA9IHllczsgdGhlbgotKyAgICAgICMg SWYgdXNpbmcgcnVuIHRpbWUgbGlua2luZyAob24gQUlYIDQuMiBvciBsYXRlcikgdXNlIGxpYjxu YW1lPi5zbwotKyAgICAgICMgaW5zdGVhZCBvZiBsaWI8bmFtZT4uYSB0byBsZXQgcGVvcGxlIGtu b3cgdGhhdCB0aGVzZSBhcmUgbm90Ci0rICAgICAgIyB0eXBpY2FsIEFJWCBzaGFyZWQgbGlicmFy aWVzLgotKyAgICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3No YXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFq b3IgJGxpYm5hbWUke3NoYXJlZF9leHR9JwotKyAgICBlbHNlCi0rICAgICAgIyBXZSBwcmVzZXJ2 ZSAuYSBhcyBleHRlbnNpb24gZm9yIHNoYXJlZCBsaWJyYXJpZXMgdGhyb3VnaCBBSVg0LjIKLSsg ICAgICAjIGFuZCBsYXRlciB3aGVuIHdlIGFyZSBub3QgZG9pbmcgcnVuIHRpbWUgbGlua2luZy4K LSsgICAgICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9LmEgJGxpYm5h bWUuYScKLSsgICAgICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9l eHR9JG1ham9yJwotKyAgICBmaQotKyAgICBzaGxpYnBhdGhfdmFyPUxJQlBBVEgKLSsgIGZpCi0r ICA7OwotKwotK2FtaWdhb3MqKQotKyAgY2FzZSAkaG9zdF9jcHUgaW4KLSsgIHBvd2VycGMpCi0r ICAgICMgU2luY2UgSnVseSAyMDA3IEFtaWdhT1M0IG9mZmljaWFsbHkgc3VwcG9ydHMgLnNvIGxp YnJhcmllcy4KLSsgICAgIyBXaGVuIGNvbXBpbGluZyB0aGUgZXhlY3V0YWJsZSwgYWRkIC11c2Ut ZHlubGQgLUxzb2JqczogdG8gdGhlIGNvbXBpbGVsaW5lLgotKyAgICBsaWJyYXJ5X25hbWVzX3Nw ZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1l fSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKLSsg ICAgOzsKLSsgIG02OGspCi0rICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJGxpYm5hbWUuaXhsaWJy YXJ5ICRsaWJuYW1lLmEnCi0rICAgICMgQ3JlYXRlICR7bGlibmFtZX1faXhsaWJyYXJ5LmEgZW50 cmllcyBpbiAvc3lzL2xpYnMuCi0rICAgIGZpbmlzaF9ldmFsPSdmb3IgbGliIGluIGBscyAkbGli ZGlyLyouaXhsaWJyYXJ5IDI+L2Rldi9udWxsYDsgZG8gbGlibmFtZT1gJEVDSE8gIlgkbGliIiB8 ICRYc2VkIC1lICdcJydzJV4uKi9cKFtbXi9dXSpcKVwuaXhsaWJyYXJ5JCVcMSUnXCcnYDsgdGVz dCAkUk0gL3N5cy9saWJzLyR7bGlibmFtZX1faXhsaWJyYXJ5LmE7ICRzaG93ICJjZCAvc3lzL2xp YnMgJiYgJExOX1MgJGxpYiAke2xpYm5hbWV9X2l4bGlicmFyeS5hIjsgY2QgL3N5cy9saWJzICYm ICRMTl9TICRsaWIgJHtsaWJuYW1lfV9peGxpYnJhcnkuYSB8fCBleGl0IDE7IGRvbmUnCi0rICAg IDs7Ci0rICBlc2FjCi0rICA7OwotKwotK2Jlb3MqKQotKyAgbGlicmFyeV9uYW1lc19zcGVjPSck e2xpYm5hbWV9JHtzaGFyZWRfZXh0fScKLSsgIGR5bmFtaWNfbGlua2VyPSIkaG9zdF9vcyBsZC5z byIKLSsgIHNobGlicGF0aF92YXI9TElCUkFSWV9QQVRICi0rICA7OwotKwotK2JzZGlbWzQ1XV0q KQotKyAgdmVyc2lvbl90eXBlPWxpbnV4Ci0rICBuZWVkX3ZlcnNpb249bm8KLSsgIGxpYnJhcnlf bmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAk e2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJGxpYm5hbWUke3NoYXJlZF9l eHR9JwotKyAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRt YWpvcicKLSsgIGZpbmlzaF9jbWRzPSdQQVRIPSJcJFBBVEg6L3NiaW4iIGxkY29uZmlnICRsaWJk aXInCi0rICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAotKyAgc3lzX2xpYl9zZWFyY2hf cGF0aF9zcGVjPSIvc2hsaWIgL3Vzci9saWIgL3Vzci9YMTEvbGliIC91c3IvY29udHJpYi9saWIg L2xpYiAvdXNyL2xvY2FsL2xpYiIKLSsgIHN5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjPSIvc2hs aWIgL3Vzci9saWIgL3Vzci9sb2NhbC9saWIiCi0rICAjIHRoZSBkZWZhdWx0IGxkLnNvLmNvbmYg YWxzbyBjb250YWlucyAvdXNyL2NvbnRyaWIvbGliIGFuZAotKyAgIyAvdXNyL1gxMVI2L2xpYiAo L3Vzci9YMTEgaXMgYSBsaW5rIHRvIC91c3IvWDExUjYpLCBidXQgbGV0IHVzIGFsbG93Ci0rICAj IGxpYnRvb2wgdG8gaGFyZC1jb2RlIHRoZXNlIGludG8gcHJvZ3JhbXMKLSsgIDs7Ci0rCi0rY3ln d2luKiB8IG1pbmd3KiB8IHB3MzIqIHwgY2VnY2MqKQotKyAgdmVyc2lvbl90eXBlPXdpbmRvd3MK LSsgIHNocmV4dF9jbWRzPSIuZGxsIgotKyAgbmVlZF92ZXJzaW9uPW5vCi0rICBuZWVkX2xpYl9w cmVmaXg9bm8KLSsKLSsgIGNhc2UgJEdDQywkaG9zdF9vcyBpbgotKyAgeWVzLGN5Z3dpbiogfCB5 ZXMsbWluZ3cqIHwgeWVzLHB3MzIqIHwgeWVzLGNlZ2NjKikKLSsgICAgbGlicmFyeV9uYW1lc19z cGVjPSckbGlibmFtZS5kbGwuYScKLSsgICAgIyBETEwgaXMgaW5zdGFsbGVkIHRvICQobGliZGly KS8uLi9iaW4gYnkgcG9zdGluc3RhbGxfY21kcwotKyAgICBwb3N0aW5zdGFsbF9jbWRzPSdiYXNl X2ZpbGU9YGJhc2VuYW1lIFwke2ZpbGV9YH4KLSsgICAgICBkbHBhdGg9YCRTSEVMTCAyPiYxIC1j ICdcJycuICRkaXIvJ1wnJ1wke2Jhc2VfZmlsZX0nXCcnaTsgZWNobyBcJGRsbmFtZSdcJydgfgot KyAgICAgIGRsZGlyPSRkZXN0ZGlyL2BkaXJuYW1lIFwkZGxwYXRoYH4KLSsgICAgICB0ZXN0IC1k IFwkZGxkaXIgfHwgbWtkaXIgLXAgXCRkbGRpcn4KLSsgICAgICAkaW5zdGFsbF9wcm9nICRkaXIv JGRsbmFtZSBcJGRsZGlyLyRkbG5hbWV+Ci0rICAgICAgY2htb2QgYSt4IFwkZGxkaXIvJGRsbmFt ZX4KLSsgICAgICBpZiB0ZXN0IC1uICdcJyckc3RyaXBtZSdcJycgJiYgdGVzdCAtbiAnXCcnJHN0 cmlwbGliJ1wnJzsgdGhlbgotKyAgICAgICAgZXZhbCAnXCcnJHN0cmlwbGliIFwkZGxkaXIvJGRs bmFtZSdcJycgfHwgZXhpdCBcJD87Ci0rICAgICAgZmknCi0rICAgIHBvc3R1bmluc3RhbGxfY21k cz0nZGxkbGw9YCRTSEVMTCAyPiYxIC1jICdcJycuICRmaWxlOyBlY2hvIFwkZGxuYW1lJ1wnJ2B+ Ci0rICAgICAgZGxwYXRoPSRkaXIvXCRkbGRsbH4KLSsgICAgICAgJFJNIFwkZGxwYXRoJwotKyAg ICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9eWVzCi0rCi0rICAgIGNhc2UgJGhvc3Rfb3Mg aW4KLSsgICAgY3lnd2luKikKLSsgICAgICAjIEN5Z3dpbiBETExzIHVzZSAnY3lnJyBwcmVmaXgg cmF0aGVyIHRoYW4gJ2xpYicKLSsgICAgICBzb25hbWVfc3BlYz0nYGVjaG8gJHtsaWJuYW1lfSB8 IHNlZCAtZSAncy9ebGliL2N5Zy8nYGBlY2hvICR7cmVsZWFzZX0gfCAkU0VEIC1lICdzL1tbLl1d Ly0vZydgJHt2ZXJzdWZmaXh9JHtzaGFyZWRfZXh0fScKLSsgICAgICBzeXNfbGliX3NlYXJjaF9w YXRoX3NwZWM9Ii91c3IvbGliIC9saWIvdzMyYXBpIC9saWIgL3Vzci9sb2NhbC9saWIiCi0rICAg ICAgOzsKLSsgICAgbWluZ3cqIHwgY2VnY2MqKQotKyAgICAgICMgTWluR1cgRExMcyB1c2UgdHJh ZGl0aW9uYWwgJ2xpYicgcHJlZml4Ci0rICAgICAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX1gZWNo byAke3JlbGVhc2V9IHwgJFNFRCAtZSAncy9bWy5dXS8tL2cnYCR7dmVyc3VmZml4fSR7c2hhcmVk X2V4dH0nCi0rICAgICAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPWAkQ0MgLXByaW50LXNlYXJj aC1kaXJzIHwgJEdSRVAgIl5saWJyYXJpZXM6IiB8ICRTRUQgLWUgInMvXmxpYnJhcmllczovLyIg LWUgInMsPS8sLyxnImAKLSsgICAgICBpZiAkRUNITyAiJHN5c19saWJfc2VhcmNoX3BhdGhfc3Bl YyIgfCBbJEdSRVAgJztbYy16Qy1aXTovJyA+L2Rldi9udWxsXTsgdGhlbgotKyAgICAgICAgIyBJ dCBpcyBtb3N0IHByb2JhYmx5IGEgV2luZG93cyBmb3JtYXQgUEFUSCBwcmludGVkIGJ5Ci0rICAg ICAgICAjIG1pbmd3IGdjYywgYnV0IHdlIGFyZSBydW5uaW5nIG9uIEN5Z3dpbi4gR2NjIHByaW50 cyBpdHMgc2VhcmNoCi0rICAgICAgICAjIHBhdGggd2l0aCA7IHNlcGFyYXRvcnMsIGFuZCB3aXRo IGRyaXZlIGxldHRlcnMuIFdlIGNhbiBoYW5kbGUgdGhlCi0rICAgICAgICAjIGRyaXZlIGxldHRl cnMgKGN5Z3dpbiBmaWxldXRpbHMgdW5kZXJzdGFuZHMgdGhlbSksIHNvIGxlYXZlIHRoZW0sCi0r ICAgICAgICAjIGVzcGVjaWFsbHkgYXMgd2UgbWlnaHQgcGFzcyBmaWxlcyBmb3VuZCB0aGVyZSB0 byBhIG1pbmd3IG9iamR1bXAsCi0rICAgICAgICAjIHdoaWNoIHdvdWxkbid0IHVuZGVyc3RhbmQg YSBjeWd3aW5pZmllZCBwYXRoLiBBaGguCi0rICAgICAgICBzeXNfbGliX3NlYXJjaF9wYXRoX3Nw ZWM9YCRFQ0hPICIkc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjIiB8ICRTRUQgLWUgJ3MvOy8gL2cn YAotKyAgICAgIGVsc2UKLSsgICAgICAgIHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYz1gJEVDSE8g IiRzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWMiIHwgJFNFRCAgLWUgInMvJFBBVEhfU0VQQVJBVE9S LyAvZyJgCi0rICAgICAgZmkKLSsgICAgICA7OwotKyAgICBwdzMyKikKLSsgICAgICAjIHB3MzIg RExMcyB1c2UgJ3B3JyBwcmVmaXggcmF0aGVyIHRoYW4gJ2xpYicKLSsgICAgICBsaWJyYXJ5X25h bWVzX3NwZWM9J2BlY2hvICR7bGlibmFtZX0gfCBzZWQgLWUgJ3MvXmxpYi9wdy8nYGBlY2hvICR7 cmVsZWFzZX0gfCAkU0VEIC1lICdzL1tbLl1dLy0vZydgJHt2ZXJzdWZmaXh9JHtzaGFyZWRfZXh0 fScKLSsgICAgICA7OwotKyAgICBlc2FjCi0rICAgIDs7Ci0rCi0rICAqKQotKyAgICBsaWJyYXJ5 X25hbWVzX3NwZWM9JyR7bGlibmFtZX1gZWNobyAke3JlbGVhc2V9IHwgJFNFRCAtZSAncy9bWy5d XS8tL2cnYCR7dmVyc3VmZml4fSR7c2hhcmVkX2V4dH0gJGxpYm5hbWUubGliJwotKyAgICA7Owot KyAgZXNhYwotKyAgZHluYW1pY19saW5rZXI9J1dpbjMyIGxkLmV4ZScKLSsgICMgRklYTUU6IGZp cnN0IHdlIHNob3VsZCBzZWFyY2ggLiBhbmQgdGhlIGRpcmVjdG9yeSB0aGUgZXhlY3V0YWJsZSBp cyBpbgotKyAgc2hsaWJwYXRoX3Zhcj1QQVRICi0rICA7OwotKwotK2RhcndpbiogfCByaGFwc29k eSopCi0rICBkeW5hbWljX2xpbmtlcj0iJGhvc3Rfb3MgZHlsZCIKLSsgIHZlcnNpb25fdHlwZT1k YXJ3aW4KLSsgIG5lZWRfbGliX3ByZWZpeD1ubwotKyAgbmVlZF92ZXJzaW9uPW5vCi0rICBsaWJy YXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHttYWpvcn0kc2hhcmVkX2V4dCAk e2xpYm5hbWV9JHNoYXJlZF9leHQnCi0rICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFz ZX0ke21ham9yfSRzaGFyZWRfZXh0JwotKyAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPXll cwotKyAgc2hsaWJwYXRoX3Zhcj1EWUxEX0xJQlJBUllfUEFUSAotKyAgc2hyZXh0X2NtZHM9J2B0 ZXN0IC4kbW9kdWxlID0gLnllcyAmJiBlY2hvIC5zbyB8fCBlY2hvIC5keWxpYmAnCi0rbTRfaWYo WyQxXSwgW10sWwotKyAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPSIkc3lzX2xpYl9zZWFyY2hf cGF0aF9zcGVjIC91c3IvbG9jYWwvbGliIl0pCi0rICBzeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3Bl Yz0nL3Vzci9sb2NhbC9saWIgL2xpYiAvdXNyL2xpYicKLSsgIDs7Ci0rCi0rZGd1eCopCi0rICB2 ZXJzaW9uX3R5cGU9bGludXgKLSsgIG5lZWRfbGliX3ByZWZpeD1ubwotKyAgbmVlZF92ZXJzaW9u PW5vCi0rICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRf ZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICRs aWJuYW1lJHNoYXJlZF9leHQnCi0rICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0k e3NoYXJlZF9leHR9JG1ham9yJwotKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKLSsg IDs7Ci0rCi0rZnJlZWJzZDEqKQotKyAgZHluYW1pY19saW5rZXI9bm8KLSsgIDs7Ci0rCi0rZnJl ZWJzZCogfCBkcmFnb25mbHkqKQotKyAgIyBEcmFnb25GbHkgZG9lcyBub3QgaGF2ZSBhb3V0LiAg V2hlbi9pZiB0aGV5IGltcGxlbWVudCBhIG5ldwotKyAgIyB2ZXJzaW9uaW5nIG1lY2hhbmlzbSwg YWRqdXN0IHRoaXMuCi0rICBpZiB0ZXN0IC14IC91c3IvYmluL29iamZvcm1hdDsgdGhlbgotKyAg ICBvYmpmb3JtYXQ9YC91c3IvYmluL29iamZvcm1hdGAKLSsgIGVsc2UKLSsgICAgY2FzZSAkaG9z dF9vcyBpbgotKyAgICBmcmVlYnNkW1sxMjNdXSopIG9iamZvcm1hdD1hb3V0IDs7Ci0rICAgICop IG9iamZvcm1hdD1lbGYgOzsKLSsgICAgZXNhYwotKyAgZmkKLSsgIHZlcnNpb25fdHlwZT1mcmVl YnNkLSRvYmpmb3JtYXQKLSsgIGNhc2UgJHZlcnNpb25fdHlwZSBpbgotKyAgICBmcmVlYnNkLWVs ZiopCi0rICAgICAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hh cmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSAkbGli bmFtZSR7c2hhcmVkX2V4dH0nCi0rICAgICAgbmVlZF92ZXJzaW9uPW5vCi0rICAgICAgbmVlZF9s aWJfcHJlZml4PW5vCi0rICAgICAgOzsKLSsgICAgZnJlZWJzZC0qKQotKyAgICAgIGxpYnJhcnlf bmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAk bGlibmFtZSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4JwotKyAgICAgIG5lZWRfdmVyc2lvbj15ZXMK LSsgICAgICA7OwotKyAgZXNhYwotKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKLSsg IGNhc2UgJGhvc3Rfb3MgaW4KLSsgIGZyZWVic2QyKikKLSsgICAgc2hsaWJwYXRoX292ZXJyaWRl c19ydW5wYXRoPXllcwotKyAgICA7OwotKyAgZnJlZWJzZDMuW1swMV1dKiB8IGZyZWVic2RlbGYz LltbMDFdXSopCi0rICAgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD15ZXMKLSsgICAgaGFy ZGNvZGVfaW50b19saWJzPXllcwotKyAgICA7OwotKyAgZnJlZWJzZDMuW1syLTldXSogfCBmcmVl YnNkZWxmMy5bWzItOV1dKiB8IFwKLSsgIGZyZWVic2Q0LltbMC01XV0gfCBmcmVlYnNkZWxmNC5b WzAtNV1dIHwgZnJlZWJzZDQuMS4xIHwgZnJlZWJzZGVsZjQuMS4xKQotKyAgICBzaGxpYnBhdGhf b3ZlcnJpZGVzX3J1bnBhdGg9bm8KLSsgICAgaGFyZGNvZGVfaW50b19saWJzPXllcwotKyAgICA7 OwotKyAgKikgIyBmcm9tIDQuNiBvbiwgYW5kIERyYWdvbkZseQotKyAgICBzaGxpYnBhdGhfb3Zl cnJpZGVzX3J1bnBhdGg9eWVzCi0rICAgIGhhcmRjb2RlX2ludG9fbGlicz15ZXMKLSsgICAgOzsK LSsgIGVzYWMKLSsgIDs7Ci0rCi0rZ251KikKLSsgIHZlcnNpb25fdHlwZT1saW51eAotKyAgbmVl ZF9saWJfcHJlZml4PW5vCi0rICBuZWVkX3ZlcnNpb249bm8KLSsgIGxpYnJhcnlfbmFtZXNfc3Bl Yz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9 JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0ke21ham9yfSAke2xpYm5hbWV9JHtzaGFyZWRfZXh0fScK LSsgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3In Ci0rICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAotKyAgaGFyZGNvZGVfaW50b19saWJz PXllcwotKyAgOzsKLSsKLStocHV4OSogfCBocHV4MTAqIHwgaHB1eDExKikKLSsgICMgR2l2ZSBh IHNvbmFtZSBjb3JyZXNwb25kaW5nIHRvIHRoZSBtYWpvciB2ZXJzaW9uIHNvIHRoYXQgZGxkLnNs IHJlZnVzZXMgdG8KLSsgICMgbGluayBhZ2FpbnN0IG90aGVyIHZlcnNpb25zLgotKyAgdmVyc2lv bl90eXBlPXN1bm9zCi0rICBuZWVkX2xpYl9wcmVmaXg9bm8KLSsgIG5lZWRfdmVyc2lvbj1ubwot KyAgY2FzZSAkaG9zdF9jcHUgaW4KLSsgIGlhNjQqKQotKyAgICBzaHJleHRfY21kcz0nLnNvJwot KyAgICBoYXJkY29kZV9pbnRvX2xpYnM9eWVzCi0rICAgIGR5bmFtaWNfbGlua2VyPSIkaG9zdF9v cyBkbGQuc28iCi0rICAgIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRICi0rICAgIHNobGli cGF0aF9vdmVycmlkZXNfcnVucGF0aD15ZXMgIyBVbmxlc3MgK25vZW52dmFyIGlzIHNwZWNpZmll ZC4KLSsgICAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVk X2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAk bGlibmFtZSR7c2hhcmVkX2V4dH0nCi0rICAgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxl YXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCi0rICAgIGlmIHRlc3QgIlgkSFBVWF9JQTY0X01PREUi ID0gWDMyOyB0aGVuCi0rICAgICAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPSIvdXNyL2xpYi9o cHV4MzIgL3Vzci9sb2NhbC9saWIvaHB1eDMyIC91c3IvbG9jYWwvbGliIgotKyAgICBlbHNlCi0r ICAgICAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPSIvdXNyL2xpYi9ocHV4NjQgL3Vzci9sb2Nh bC9saWIvaHB1eDY0IgotKyAgICBmaQotKyAgICBzeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYz0k c3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjCi0rICAgIDs7Ci0rICBocHBhKjY0KikKLSsgICAgc2hy ZXh0X2NtZHM9Jy5zbCcKLSsgICAgaGFyZGNvZGVfaW50b19saWJzPXllcwotKyAgICBkeW5hbWlj X2xpbmtlcj0iJGhvc3Rfb3MgZGxkLnNsIgotKyAgICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllf UEFUSCAjIEhvdyBzaG91bGQgd2UgaGFuZGxlIFNITElCX1BBVEgKLSsgICAgc2hsaWJwYXRoX292 ZXJyaWRlc19ydW5wYXRoPXllcyAjIFVubGVzcyArbm9lbnZ2YXIgaXMgc3BlY2lmaWVkLgotKyAg ICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2 ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICRsaWJuYW1l JHtzaGFyZWRfZXh0fScKLSsgICAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtz aGFyZWRfZXh0fSRtYWpvcicKLSsgICAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPSIvdXNyL2xp Yi9wYTIwXzY0IC91c3IvY2NzL2xpYi9wYTIwXzY0IgotKyAgICBzeXNfbGliX2Rsc2VhcmNoX3Bh dGhfc3BlYz0kc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjCi0rICAgIDs7Ci0rICAqKQotKyAgICBz aHJleHRfY21kcz0nLnNsJwotKyAgICBkeW5hbWljX2xpbmtlcj0iJGhvc3Rfb3MgZGxkLnNsIgot KyAgICBzaGxpYnBhdGhfdmFyPVNITElCX1BBVEgKLSsgICAgc2hsaWJwYXRoX292ZXJyaWRlc19y dW5wYXRoPW5vICMgK3MgaXMgcmVxdWlyZWQgdG8gZW5hYmxlIFNITElCX1BBVEgKLSsgICAgbGli cmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3Vm Zml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAkbGlibmFtZSR7c2hh cmVkX2V4dH0nCi0rICAgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVk X2V4dH0kbWFqb3InCi0rICAgIDs7Ci0rICBlc2FjCi0rICAjIEhQLVVYIHJ1bnMgKnJlYWxseSog c2xvd2x5IHVubGVzcyBzaGFyZWQgbGlicmFyaWVzIGFyZSBtb2RlIDU1NS4KLSsgIHBvc3RpbnN0 YWxsX2NtZHM9J2NobW9kIDU1NSAkbGliJwotKyAgOzsKLSsKLStpbnRlcml4W1szLTldXSopCi0r ICB2ZXJzaW9uX3R5cGU9bGludXgKLSsgIG5lZWRfbGliX3ByZWZpeD1ubwotKyAgbmVlZF92ZXJz aW9uPW5vCi0rICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFy ZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9y ICR7bGlibmFtZX0ke3NoYXJlZF9leHR9JwotKyAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3Jl bGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKLSsgIGR5bmFtaWNfbGlua2VyPSdJbnRlcml4IDMu eCBsZC5zby4xIChQRSwgbGlrZSBFTEYpJwotKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BB VEgKLSsgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD1ubwotKyAgaGFyZGNvZGVfaW50b19s aWJzPXllcwotKyAgOzsKLSsKLStpcml4NSogfCBpcml4NiogfCBub25zdG9wdXgqKQotKyAgY2Fz ZSAkaG9zdF9vcyBpbgotKyAgICBub25zdG9wdXgqKSB2ZXJzaW9uX3R5cGU9bm9uc3RvcHV4IDs7 Ci0rICAgICopCi0rCWlmIHRlc3QgIiRsdF9jdl9wcm9nX2dudV9sZCIgPSB5ZXM7IHRoZW4KLSsJ CXZlcnNpb25fdHlwZT1saW51eAotKwllbHNlCi0rCQl2ZXJzaW9uX3R5cGU9aXJpeAotKwlmaSA7 OwotKyAgZXNhYwotKyAgbmVlZF9saWJfcHJlZml4PW5vCi0rICBuZWVkX3ZlcnNpb249bm8KLSsg IHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCi0r ICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2 ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICR7bGlibmFt ZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSAkbGlibmFtZSR7c2hhcmVkX2V4dH0nCi0rICBjYXNl ICRob3N0X29zIGluCi0rICBpcml4NSogfCBub25zdG9wdXgqKQotKyAgICBsaWJzdWZmPSBzaGxp YnN1ZmY9Ci0rICAgIDs7Ci0rICAqKQotKyAgICBjYXNlICRMRCBpbiAjIGxpYnRvb2wubTQgd2ls bCBhZGQgb25lIG9mIHRoZXNlIHN3aXRjaGVzIHRvIExECi0rICAgICotMzJ8KiItMzIgInwqLW1l bGYzMmJzbWlwfCoiLW1lbGYzMmJzbWlwICIpCi0rICAgICAgbGlic3VmZj0gc2hsaWJzdWZmPSBs aWJtYWdpYz0zMi1iaXQ7OwotKyAgICAqLW4zMnwqIi1uMzIgInwqLW1lbGYzMmJtaXBuMzJ8KiIt bWVsZjMyYm1pcG4zMiAiKQotKyAgICAgIGxpYnN1ZmY9MzIgc2hsaWJzdWZmPU4zMiBsaWJtYWdp Yz1OMzI7OwotKyAgICAqLTY0fCoiLTY0ICJ8Ki1tZWxmNjRibWlwfCoiLW1lbGY2NGJtaXAgIikK LSsgICAgICBsaWJzdWZmPTY0IHNobGlic3VmZj02NCBsaWJtYWdpYz02NC1iaXQ7OwotKyAgICAq KSBsaWJzdWZmPSBzaGxpYnN1ZmY9IGxpYm1hZ2ljPW5ldmVyLW1hdGNoOzsKLSsgICAgZXNhYwot KyAgICA7OwotKyAgZXNhYwotKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZJHtzaGxpYnN1ZmZ9 X1BBVEgKLSsgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD1ubwotKyAgc3lzX2xpYl9zZWFy Y2hfcGF0aF9zcGVjPSIvdXNyL2xpYiR7bGlic3VmZn0gL2xpYiR7bGlic3VmZn0gL3Vzci9sb2Nh bC9saWIke2xpYnN1ZmZ9IgotKyAgc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWM9Ii91c3IvbGli JHtsaWJzdWZmfSAvbGliJHtsaWJzdWZmfSIKLSsgIGhhcmRjb2RlX2ludG9fbGlicz15ZXMKLSsg IDs7Ci0rCi0rIyBObyBzaGFyZWQgbGliIHN1cHBvcnQgZm9yIExpbnV4IG9sZGxkLCBhb3V0LCBv ciBjb2ZmLgotK2xpbnV4Km9sZGxkKiB8IGxpbnV4KmFvdXQqIHwgbGludXgqY29mZiopCi0rICBk eW5hbWljX2xpbmtlcj1ubwotKyAgOzsKLSsKLSsjIFRoaXMgbXVzdCBiZSBMaW51eCBFTEYuCi0r bGludXgqIHwgaypic2QqLWdudSkKLSsgIHZlcnNpb25fdHlwZT1saW51eAotKyAgbmVlZF9saWJf cHJlZml4PW5vCi0rICBuZWVkX3ZlcnNpb249bm8KLSsgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHts aWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxl YXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJGxpYm5hbWUke3NoYXJlZF9leHR9JwotKyAgc29uYW1l X3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKLSsgIGZpbmlz aF9jbWRzPSdQQVRIPSJcJFBBVEg6L3NiaW4iIGxkY29uZmlnIC1uICRsaWJkaXInCi0rICBzaGxp YnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAotKyAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRo PW5vCi0rICAjIFNvbWUgYmludXRpbHMgbGQgYXJlIHBhdGNoZWQgdG8gc2V0IERUX1JVTlBBVEgK LSsgIHNhdmVfTERGTEFHUz0kTERGTEFHUwotKyAgc2F2ZV9saWJkaXI9JGxpYmRpcgotKyAgZXZh bCAibGliZGlyPS9mb287IHdsPVwiJF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl93bCwgJDEp XCI7IFwKLSsgICAgICAgTERGTEFHUz1cIlwkTERGTEFHUyAkX0xUX1RBR1ZBUihoYXJkY29kZV9s aWJkaXJfZmxhZ19zcGVjLCAkMSlcIiIKLSsgIEFDX0xJTktfSUZFTFNFKFtBQ19MQU5HX1BST0dS QU0oW10sW10pXSwKLSsgICAgW0FTX0lGKFsgKCRPQkpEVU1QIC1wIGNvbmZ0ZXN0JGFjX2V4ZWV4 dCkgMj4vZGV2L251bGwgfCBncmVwICJSVU5QQVRILiokbGliZGlyIiA+L2Rldi9udWxsXSwKLSsg ICAgICAgW3NobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD15ZXNdKV0pCi0rICBMREZMQUdTPSRz YXZlX0xERkxBR1MKLSsgIGxpYmRpcj0kc2F2ZV9saWJkaXIKLSsKLSsgICMgVGhpcyBpbXBsaWVz IG5vIGZhc3RfaW5zdGFsbCwgd2hpY2ggaXMgdW5hY2NlcHRhYmxlLgotKyAgIyBTb21lIHJld29y ayB3aWxsIGJlIG5lZWRlZCB0byBhbGxvdyBmb3IgZmFzdF9pbnN0YWxsCi0rICAjIGJlZm9yZSB0 aGlzIGNhbiBiZSBlbmFibGVkLgotKyAgaGFyZGNvZGVfaW50b19saWJzPXllcwotKwotKyAgIyBB ZGQgQUJJLXNwZWNpZmljIGRpcmVjdG9yaWVzIHRvIHRoZSBzeXN0ZW0gbGlicmFyeSBwYXRoLgot KyAgc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWM9Ii9saWI2NCAvdXNyL2xpYjY0IC9saWIgL3Vz ci9saWIiCi0rCi0rICAjIEFwcGVuZCBsZC5zby5jb25mIGNvbnRlbnRzIHRvIHRoZSBzZWFyY2gg cGF0aAotKyAgaWYgdGVzdCAtZiAvZXRjL2xkLnNvLmNvbmY7IHRoZW4KLSsgICAgbHRfbGRfZXh0 cmE9YGF3ayAnL15pbmNsdWRlIC8geyBzeXN0ZW0oc3ByaW50ZigiY2QgL2V0YzsgY2F0ICVzIDI+ L2Rldi9udWxsIiwgXFskXTIpKTsgc2tpcCA9IDE7IH0geyBpZiAoIXNraXApIHByaW50IFxbJF0w OyBza2lwID0gMDsgfScgPCAvZXRjL2xkLnNvLmNvbmYgfCAkU0VEIC1lICdzLyMuKi8vOy9eWwkg XSpod2NhcFsJIF0vZDtzL1s6LAldLyAvZztzLz1bXj1dKiQvLztzLz1bXj0gXSogLyAvZzsvXiQv ZCcgfCB0ciAnXG4nICcgJ2AKLSsgICAgc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWM9IiRzeXNf bGliX2Rsc2VhcmNoX3BhdGhfc3BlYyAkbHRfbGRfZXh0cmEiCi0rICBmaQotKwotKyAgIyBXZSB1 c2VkIHRvIHRlc3QgZm9yIC9saWIvbGQuc28uMSBhbmQgZGlzYWJsZSBzaGFyZWQgbGlicmFyaWVz IG9uCi0rICAjIHBvd2VycGMsIGJlY2F1c2UgTWtMaW51eCBvbmx5IHN1cHBvcnRlZCBzaGFyZWQg bGlicmFyaWVzIHdpdGggdGhlCi0rICAjIEdOVSBkeW5hbWljIGxpbmtlci4gIFNpbmNlIHRoaXMg d2FzIGJyb2tlbiB3aXRoIGNyb3NzIGNvbXBpbGVycywKLSsgICMgbW9zdCBwb3dlcnBjLWxpbnV4 IGJveGVzIHN1cHBvcnQgZHluYW1pYyBsaW5raW5nIHRoZXNlIGRheXMgYW5kCi0rICAjIHBlb3Bs ZSBjYW4gYWx3YXlzIC0tZGlzYWJsZS1zaGFyZWQsIHRoZSB0ZXN0IHdhcyByZW1vdmVkLCBhbmQg d2UKLSsgICMgYXNzdW1lIHRoZSBHTlUvTGludXggZHluYW1pYyBsaW5rZXIgaXMgaW4gdXNlLgot KyAgZHluYW1pY19saW5rZXI9J0dOVS9MaW51eCBsZC5zbycKLSsgIDs7Ci0rCi0rbmV0YnNkKikK LSsgIHZlcnNpb25fdHlwZT1zdW5vcwotKyAgbmVlZF9saWJfcHJlZml4PW5vCi0rICBuZWVkX3Zl cnNpb249bm8KLSsgIGlmIGVjaG8gX19FTEZfXyB8ICRDQyAtRSAtIHwgJEdSRVAgX19FTEZfXyA+ L2Rldi9udWxsOyB0aGVuCi0rICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVs ZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtzaGFyZWRfZXh0fSR2ZXJz dWZmaXgnCi0rICAgIGZpbmlzaF9jbWRzPSdQQVRIPSJcJFBBVEg6L3NiaW4iIGxkY29uZmlnIC1t ICRsaWJkaXInCi0rICAgIGR5bmFtaWNfbGlua2VyPSdOZXRCU0QgKGEub3V0KSBsZC5zbycKLSsg IGVsc2UKLSsgICAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hh cmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpv ciAke2xpYm5hbWV9JHtzaGFyZWRfZXh0fScKLSsgICAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0k e3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKLSsgICAgZHluYW1pY19saW5rZXI9J05ldEJT RCBsZC5lbGZfc28nCi0rICBmaQotKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKLSsg IHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD15ZXMKLSsgIGhhcmRjb2RlX2ludG9fbGlicz15 ZXMKLSsgIDs7Ci0rCi0rbmV3c29zNikKLSsgIHZlcnNpb25fdHlwZT1saW51eAotKyAgbGlicmFy eV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4 ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAkbGlibmFtZSR7c2hhcmVk X2V4dH0nCi0rICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAotKyAgc2hsaWJwYXRoX292 ZXJyaWRlc19ydW5wYXRoPXllcwotKyAgOzsKLSsKLSsqbnRvKiB8ICpxbngqKQotKyAgdmVyc2lv bl90eXBlPXFueAotKyAgbmVlZF9saWJfcHJlZml4PW5vCi0rICBuZWVkX3ZlcnNpb249bm8KLSsg IGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZl cnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJGxpYm5hbWUk e3NoYXJlZF9leHR9JwotKyAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFy ZWRfZXh0fSRtYWpvcicKLSsgIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRICi0rICBzaGxp YnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9bm8KLSsgIGhhcmRjb2RlX2ludG9fbGlicz15ZXMKLSsg IGR5bmFtaWNfbGlua2VyPSdsZHFueC5zbycKLSsgIDs7Ci0rCi0rb3BlbmJzZCopCi0rICB2ZXJz aW9uX3R5cGU9c3Vub3MKLSsgIHN5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjPSIvdXNyL2xpYiIK LSsgIG5lZWRfbGliX3ByZWZpeD1ubwotKyAgIyBTb21lIG9sZGVyIHZlcnNpb25zIG9mIE9wZW5C U0QgKDMuMyBhdCBsZWFzdCkgKmRvKiBuZWVkIHZlcnNpb25lZCBsaWJzLgotKyAgY2FzZSAkaG9z dF9vcyBpbgotKyAgICBvcGVuYnNkMy4zIHwgb3BlbmJzZDMuMy4qKQluZWVkX3ZlcnNpb249eWVz IDs7Ci0rICAgICopCQkJCW5lZWRfdmVyc2lvbj1ubyAgOzsKLSsgIGVzYWMKLSsgIGxpYnJhcnlf bmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAk e2xpYm5hbWV9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXgnCi0rICBmaW5pc2hfY21kcz0nUEFUSD0i XCRQQVRIOi9zYmluIiBsZGNvbmZpZyAtbSAkbGliZGlyJwotKyAgc2hsaWJwYXRoX3Zhcj1MRF9M SUJSQVJZX1BBVEgKLSsgIGlmIHRlc3QgLXogImBlY2hvIF9fRUxGX18gfCAkQ0MgLUUgLSB8ICRH UkVQIF9fRUxGX19gIiB8fCB0ZXN0ICIkaG9zdF9vcy0kaG9zdF9jcHUiID0gIm9wZW5ic2QyLjgt cG93ZXJwYyI7IHRoZW4KLSsgICAgY2FzZSAkaG9zdF9vcyBpbgotKyAgICAgIG9wZW5ic2QyLltb ODldXSB8IG9wZW5ic2QyLltbODldXS4qKQotKwlzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9 bm8KLSsJOzsKLSsgICAgICAqKQotKwlzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9eWVzCi0r CTs7Ci0rICAgICAgZXNhYwotKyAgZWxzZQotKyAgICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBh dGg9eWVzCi0rICBmaQotKyAgOzsKLSsKLStvczIqKQotKyAgbGlibmFtZV9zcGVjPSckbmFtZScK LSsgIHNocmV4dF9jbWRzPSIuZGxsIgotKyAgbmVlZF9saWJfcHJlZml4PW5vCi0rICBsaWJyYXJ5 X25hbWVzX3NwZWM9JyRsaWJuYW1lJHtzaGFyZWRfZXh0fSAkbGlibmFtZS5hJwotKyAgZHluYW1p Y19saW5rZXI9J09TLzIgbGQuZXhlJwotKyAgc2hsaWJwYXRoX3Zhcj1MSUJQQVRICi0rICA7Owot KwotK29zZjMqIHwgb3NmNCogfCBvc2Y1KikKLSsgIHZlcnNpb25fdHlwZT1vc2YKLSsgIG5lZWRf bGliX3ByZWZpeD1ubwotKyAgbmVlZF92ZXJzaW9uPW5vCi0rICBzb25hbWVfc3BlYz0nJHtsaWJu YW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yJwotKyAgbGlicmFyeV9uYW1lc19zcGVj PScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0k e3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAkbGlibmFtZSR7c2hhcmVkX2V4dH0nCi0rICBz aGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAotKyAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVj PSIvdXNyL3NobGliIC91c3IvY2NzL2xpYiAvdXNyL2xpYi9jbXBscnMvY2MgL3Vzci9saWIgL3Vz ci9sb2NhbC9saWIgL3Zhci9zaGxpYiIKLSsgIHN5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjPSIk c3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjIgotKyAgOzsKLSsKLStyZG9zKikKLSsgIGR5bmFtaWNf bGlua2VyPW5vCi0rICA7OwotKwotK3NvbGFyaXMqKQotKyAgdmVyc2lvbl90eXBlPWxpbnV4Ci0r ICBuZWVkX2xpYl9wcmVmaXg9bm8KLSsgIG5lZWRfdmVyc2lvbj1ubwotKyAgbGlicmFyeV9uYW1l c19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGli bmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAkbGlibmFtZSR7c2hhcmVkX2V4dH0n Ci0rICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9y JwotKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKLSsgIHNobGlicGF0aF9vdmVycmlk ZXNfcnVucGF0aD15ZXMKLSsgIGhhcmRjb2RlX2ludG9fbGlicz15ZXMKLSsgICMgbGRkIGNvbXBs YWlucyB1bmxlc3MgbGlicmFyaWVzIGFyZSBleGVjdXRhYmxlCi0rICBwb3N0aW5zdGFsbF9jbWRz PSdjaG1vZCAreCAkbGliJwotKyAgOzsKLSsKLStzdW5vczQqKQotKyAgdmVyc2lvbl90eXBlPXN1 bm9zCi0rICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRf ZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4JwotKyAgZmlu aXNoX2NtZHM9J1BBVEg9IlwkUEFUSDovdXNyL2V0YyIgbGRjb25maWcgJGxpYmRpcicKLSsgIHNo bGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRICi0rICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBh dGg9eWVzCi0rICBpZiB0ZXN0ICIkd2l0aF9nbnVfbGQiID0geWVzOyB0aGVuCi0rICAgIG5lZWRf bGliX3ByZWZpeD1ubwotKyAgZmkKLSsgIG5lZWRfdmVyc2lvbj15ZXMKLSsgIDs7Ci0rCi0rc3lz djQgfCBzeXN2NC4zKikKLSsgIHZlcnNpb25fdHlwZT1saW51eAotKyAgbGlicmFyeV9uYW1lc19z cGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFt ZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAkbGlibmFtZSR7c2hhcmVkX2V4dH0nCi0r ICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yJwot KyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKLSsgIGNhc2UgJGhvc3RfdmVuZG9yIGlu Ci0rICAgIHNuaSkKLSsgICAgICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9bm8KLSsgICAg ICBuZWVkX2xpYl9wcmVmaXg9bm8KLSsgICAgICBydW5wYXRoX3Zhcj1MRF9SVU5fUEFUSAotKyAg ICAgIDs7Ci0rICAgIHNpZW1lbnMpCi0rICAgICAgbmVlZF9saWJfcHJlZml4PW5vCi0rICAgICAg OzsKLSsgICAgbW90b3JvbGEpCi0rICAgICAgbmVlZF9saWJfcHJlZml4PW5vCi0rICAgICAgbmVl ZF92ZXJzaW9uPW5vCi0rICAgICAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPW5vCi0rICAg ICAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPScvbGliIC91c3IvbGliIC91c3IvY2NzL2xpYicK LSsgICAgICA7OwotKyAgZXNhYwotKyAgOzsKLSsKLStzeXN2NCpNUCopCi0rICBpZiB0ZXN0IC1k IC91c3IvbmVjIDt0aGVuCi0rICAgIHZlcnNpb25fdHlwZT1saW51eAotKyAgICBsaWJyYXJ5X25h bWVzX3NwZWM9JyRsaWJuYW1lJHtzaGFyZWRfZXh0fS4kdmVyc3VmZml4ICRsaWJuYW1lJHtzaGFy ZWRfZXh0fS4kbWFqb3IgJGxpYm5hbWUke3NoYXJlZF9leHR9JwotKyAgICBzb25hbWVfc3BlYz0n JGxpYm5hbWUke3NoYXJlZF9leHR9LiRtYWpvcicKLSsgICAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJS QVJZX1BBVEgKLSsgIGZpCi0rICA7OwotKwotK3N5c3Y1KiB8IHNjbzMuMnY1KiB8IHNjbzV2Niog fCB1bml4d2FyZSogfCBPcGVuVU5JWCogfCBzeXN2NCp1dzIqKQotKyAgdmVyc2lvbl90eXBlPWZy ZWVic2QtZWxmCi0rICBuZWVkX2xpYl9wcmVmaXg9bm8KLSsgIG5lZWRfdmVyc2lvbj1ubwotKyAg bGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVy c3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSAkbGlibmFtZSR7c2hhcmVk X2V4dH0nCi0rICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9 JG1ham9yJwotKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKLSsgIHNobGlicGF0aF9v dmVycmlkZXNfcnVucGF0aD15ZXMKLSsgIGhhcmRjb2RlX2ludG9fbGlicz15ZXMKLSsgIGlmIHRl c3QgIiR3aXRoX2dudV9sZCIgPSB5ZXM7IHRoZW4KLSsgICAgc3lzX2xpYl9zZWFyY2hfcGF0aF9z cGVjPScvdXNyL2xvY2FsL2xpYiAvdXNyL2dudS9saWIgL3Vzci9jY3MvbGliIC91c3IvbGliIC9s aWInCi0rICBlbHNlCi0rICAgIHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYz0nL3Vzci9jY3MvbGli IC91c3IvbGliJwotKyAgICBjYXNlICRob3N0X29zIGluCi0rICAgICAgc2NvMy4ydjUqKQotKyAg ICAgICAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPSIkc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVj IC9saWIiCi0rCTs7Ci0rICAgIGVzYWMKLSsgIGZpCi0rICBzeXNfbGliX2Rsc2VhcmNoX3BhdGhf c3BlYz0nL3Vzci9saWInCi0rICA7OwotKwotK3RwZiopCi0rICAjIFRQRiBpcyBhIGNyb3NzLXRh cmdldCBvbmx5LiAgUHJlZmVycmVkIGNyb3NzLWhvc3QgPSBHTlUvTGludXguCi0rICB2ZXJzaW9u X3R5cGU9bGludXgKLSsgIG5lZWRfbGliX3ByZWZpeD1ubwotKyAgbmVlZF92ZXJzaW9uPW5vCi0r ICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2 ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICRsaWJuYW1l JHtzaGFyZWRfZXh0fScKLSsgIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRICi0rICBzaGxp YnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9bm8KLSsgIGhhcmRjb2RlX2ludG9fbGlicz15ZXMKLSsg IDs7Ci0rCi0rdXRzNCopCi0rICB2ZXJzaW9uX3R5cGU9bGludXgKLSsgIGxpYnJhcnlfbmFtZXNf c3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5h bWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJGxpYm5hbWUke3NoYXJlZF9leHR9Jwot KyAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicK LSsgIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRICi0rICA7OwotKwotKyopCi0rICBkeW5h bWljX2xpbmtlcj1ubwotKyAgOzsKLStlc2FjCi0rQUNfTVNHX1JFU1VMVChbJGR5bmFtaWNfbGlu a2VyXSkKLSt0ZXN0ICIkZHluYW1pY19saW5rZXIiID0gbm8gJiYgY2FuX2J1aWxkX3NoYXJlZD1u bwotKwotK3ZhcmlhYmxlc19zYXZlZF9mb3JfcmVsaW5rPSJQQVRIICRzaGxpYnBhdGhfdmFyICRy dW5wYXRoX3ZhciIKLStpZiB0ZXN0ICIkR0NDIiA9IHllczsgdGhlbgotKyAgdmFyaWFibGVzX3Nh dmVkX2Zvcl9yZWxpbms9IiR2YXJpYWJsZXNfc2F2ZWRfZm9yX3JlbGluayBHQ0NfRVhFQ19QUkVG SVggQ09NUElMRVJfUEFUSCBMSUJSQVJZX1BBVEgiCi0rZmkKLSsKLStpZiB0ZXN0ICIke2x0X2N2 X3N5c19saWJfc2VhcmNoX3BhdGhfc3BlYytzZXR9IiA9IHNldDsgdGhlbgotKyAgc3lzX2xpYl9z ZWFyY2hfcGF0aF9zcGVjPSIkbHRfY3Zfc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjIgotK2ZpCi0r aWYgdGVzdCAiJHtsdF9jdl9zeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYytzZXR9IiA9IHNldDsg dGhlbgotKyAgc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWM9IiRsdF9jdl9zeXNfbGliX2Rsc2Vh cmNoX3BhdGhfc3BlYyIKLStmaQotKwotK19MVF9ERUNMKFtdLCBbdmFyaWFibGVzX3NhdmVkX2Zv cl9yZWxpbmtdLCBbMV0sCi0rICAgIFtWYXJpYWJsZXMgd2hvc2UgdmFsdWVzIHNob3VsZCBiZSBz YXZlZCBpbiBsaWJ0b29sIHdyYXBwZXIgc2NyaXB0cyBhbmQKLSsgICAgcmVzdG9yZWQgYXQgbGlu ayB0aW1lXSkKLStfTFRfREVDTChbXSwgW25lZWRfbGliX3ByZWZpeF0sIFswXSwKLSsgICAgW0Rv IHdlIG5lZWQgdGhlICJsaWIiIHByZWZpeCBmb3IgbW9kdWxlcz9dKQotK19MVF9ERUNMKFtdLCBb bmVlZF92ZXJzaW9uXSwgWzBdLCBbRG8gd2UgbmVlZCBhIHZlcnNpb24gZm9yIGxpYnJhcmllcz9d KQotK19MVF9ERUNMKFtdLCBbdmVyc2lvbl90eXBlXSwgWzBdLCBbTGlicmFyeSB2ZXJzaW9uaW5n IHR5cGVdKQotK19MVF9ERUNMKFtdLCBbcnVucGF0aF92YXJdLCBbMF0sICBbU2hhcmVkIGxpYnJh cnkgcnVudGltZSBwYXRoIHZhcmlhYmxlXSkKLStfTFRfREVDTChbXSwgW3NobGlicGF0aF92YXJd LCBbMF0sW1NoYXJlZCBsaWJyYXJ5IHBhdGggdmFyaWFibGVdKQotK19MVF9ERUNMKFtdLCBbc2hs aWJwYXRoX292ZXJyaWRlc19ydW5wYXRoXSwgWzBdLAotKyAgICBbSXMgc2hsaWJwYXRoIHNlYXJj aGVkIGJlZm9yZSB0aGUgaGFyZC1jb2RlZCBsaWJyYXJ5IHNlYXJjaCBwYXRoP10pCi0rX0xUX0RF Q0woW10sIFtsaWJuYW1lX3NwZWNdLCBbMV0sIFtGb3JtYXQgb2YgbGlicmFyeSBuYW1lIHByZWZp eF0pCi0rX0xUX0RFQ0woW10sIFtsaWJyYXJ5X25hbWVzX3NwZWNdLCBbMV0sCi0rICAgIFtbTGlz dCBvZiBhcmNoaXZlIG5hbWVzLiAgRmlyc3QgbmFtZSBpcyB0aGUgcmVhbCBvbmUsIHRoZSByZXN0 IGFyZSBsaW5rcy4KLSsgICAgVGhlIGxhc3QgbmFtZSBpcyB0aGUgb25lIHRoYXQgdGhlIGxpbmtl ciBmaW5kcyB3aXRoIC1sTkFNRV1dKQotK19MVF9ERUNMKFtdLCBbc29uYW1lX3NwZWNdLCBbMV0s Ci0rICAgIFtbVGhlIGNvZGVkIG5hbWUgb2YgdGhlIGxpYnJhcnksIGlmIGRpZmZlcmVudCBmcm9t IHRoZSByZWFsIG5hbWVdXSkKLStfTFRfREVDTChbXSwgW3Bvc3RpbnN0YWxsX2NtZHNdLCBbMl0s Ci0rICAgIFtDb21tYW5kIHRvIHVzZSBhZnRlciBpbnN0YWxsYXRpb24gb2YgYSBzaGFyZWQgYXJj aGl2ZV0pCi0rX0xUX0RFQ0woW10sIFtwb3N0dW5pbnN0YWxsX2NtZHNdLCBbMl0sCi0rICAgIFtD b21tYW5kIHRvIHVzZSBhZnRlciB1bmluc3RhbGxhdGlvbiBvZiBhIHNoYXJlZCBhcmNoaXZlXSkK LStfTFRfREVDTChbXSwgW2ZpbmlzaF9jbWRzXSwgWzJdLAotKyAgICBbQ29tbWFuZHMgdXNlZCB0 byBmaW5pc2ggYSBsaWJ0b29sIGxpYnJhcnkgaW5zdGFsbGF0aW9uIGluIGEgZGlyZWN0b3J5XSkK LStfTFRfREVDTChbXSwgW2ZpbmlzaF9ldmFsXSwgWzFdLAotKyAgICBbW0FzICJmaW5pc2hfY21k cyIsIGV4Y2VwdCBhIHNpbmdsZSBzY3JpcHQgZnJhZ21lbnQgdG8gYmUgZXZhbGVkIGJ1dAotKyAg ICBub3Qgc2hvd25dXSkKLStfTFRfREVDTChbXSwgW2hhcmRjb2RlX2ludG9fbGlic10sIFswXSwK LSsgICAgW1doZXRoZXIgd2Ugc2hvdWxkIGhhcmRjb2RlIGxpYnJhcnkgcGF0aHMgaW50byBsaWJy YXJpZXNdKQotK19MVF9ERUNMKFtdLCBbc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjXSwgWzJdLAot KyAgICBbQ29tcGlsZS10aW1lIHN5c3RlbSBzZWFyY2ggcGF0aCBmb3IgbGlicmFyaWVzXSkKLStf TFRfREVDTChbXSwgW3N5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjXSwgWzJdLAotKyAgICBbUnVu LXRpbWUgc3lzdGVtIHNlYXJjaCBwYXRoIGZvciBsaWJyYXJpZXNdKQotK10pIyBfTFRfU1lTX0RZ TkFNSUNfTElOS0VSCi0rCi0rCi0rIyBfTFRfUEFUSF9UT09MX1BSRUZJWChUT09MKQotKyMgLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSsjIGZpbmQgYSBmaWxlIHByb2dyYW0gd2hpY2ggY2Fu IHJlY29nbml6ZSBzaGFyZWQgbGlicmFyeQotK0FDX0RFRlVOKFtfTFRfUEFUSF9UT09MX1BSRUZJ WF0sCi0rW200X3JlcXVpcmUoW19MVF9ERUNMX0VHUkVQXSlkbmwKLStBQ19NU0dfQ0hFQ0tJTkco W2ZvciAkMV0pCi0rQUNfQ0FDSEVfVkFMKGx0X2N2X3BhdGhfTUFHSUNfQ01ELAotK1tjYXNlICRN QUdJQ19DTUQgaW4KLStbW1xcLypdIHwgID86W1xcL10qXSkKLSsgIGx0X2N2X3BhdGhfTUFHSUNf Q01EPSIkTUFHSUNfQ01EIiAjIExldCB0aGUgdXNlciBvdmVycmlkZSB0aGUgdGVzdCB3aXRoIGEg cGF0aC4KLSsgIDs7Ci0rKikKLSsgIGx0X3NhdmVfTUFHSUNfQ01EPSIkTUFHSUNfQ01EIgotKyAg bHRfc2F2ZV9pZnM9IiRJRlMiOyBJRlM9JFBBVEhfU0VQQVJBVE9SCi0rZG5sICRhY19kdW1teSBm b3JjZXMgc3BsaXR0aW5nIG9uIGNvbnN0YW50IHVzZXItc3VwcGxpZWQgcGF0aHMuCi0rZG5sIFBP U0lYLjIgd29yZCBzcGxpdHRpbmcgaXMgZG9uZSBvbmx5IG9uIHRoZSBvdXRwdXQgb2Ygd29yZCBl eHBhbnNpb25zLAotK2RubCBub3QgZXZlcnkgd29yZC4gIFRoaXMgY2xvc2VzIGEgbG9uZ3N0YW5k aW5nIHNoIHNlY3VyaXR5IGhvbGUuCi0rICBhY19kdW1teT0ibTRfaWYoWyQyXSwgLCAkUEFUSCwg WyQyXSkiCi0rICBmb3IgYWNfZGlyIGluICRhY19kdW1teTsgZG8KLSsgICAgSUZTPSIkbHRfc2F2 ZV9pZnMiCi0rICAgIHRlc3QgLXogIiRhY19kaXIiICYmIGFjX2Rpcj0uCi0rICAgIGlmIHRlc3Qg LWYgJGFjX2Rpci8kMTsgdGhlbgotKyAgICAgIGx0X2N2X3BhdGhfTUFHSUNfQ01EPSIkYWNfZGly LyQxIgotKyAgICAgIGlmIHRlc3QgLW4gIiRmaWxlX21hZ2ljX3Rlc3RfZmlsZSI7IHRoZW4KLSsJ Y2FzZSAkZGVwbGlic19jaGVja19tZXRob2QgaW4KLSsJImZpbGVfbWFnaWMgIiopCi0rCSAgZmls ZV9tYWdpY19yZWdleD1gZXhwciAiJGRlcGxpYnNfY2hlY2tfbWV0aG9kIiA6ICJmaWxlX21hZ2lj IFwoLipcKSJgCi0rCSAgTUFHSUNfQ01EPSIkbHRfY3ZfcGF0aF9NQUdJQ19DTUQiCi0rCSAgaWYg ZXZhbCAkZmlsZV9tYWdpY19jbWQgXCRmaWxlX21hZ2ljX3Rlc3RfZmlsZSAyPiAvZGV2L251bGwg fAotKwkgICAgJEVHUkVQICIkZmlsZV9tYWdpY19yZWdleCIgPiAvZGV2L251bGw7IHRoZW4KLSsJ ICAgIDoKLSsJICBlbHNlCi0rCSAgICBjYXQgPDxfTFRfRU9GIDE+JjIKLSsKLSsqKiogV2Fybmlu ZzogdGhlIGNvbW1hbmQgbGlidG9vbCB1c2VzIHRvIGRldGVjdCBzaGFyZWQgbGlicmFyaWVzLAot KyoqKiAkZmlsZV9tYWdpY19jbWQsIHByb2R1Y2VzIG91dHB1dCB0aGF0IGxpYnRvb2wgY2Fubm90 IHJlY29nbml6ZS4KLSsqKiogVGhlIHJlc3VsdCBpcyB0aGF0IGxpYnRvb2wgbWF5IGZhaWwgdG8g cmVjb2duaXplIHNoYXJlZCBsaWJyYXJpZXMKLSsqKiogYXMgc3VjaC4gIFRoaXMgd2lsbCBhZmZl Y3QgdGhlIGNyZWF0aW9uIG9mIGxpYnRvb2wgbGlicmFyaWVzIHRoYXQKLSsqKiogZGVwZW5kIG9u IHNoYXJlZCBsaWJyYXJpZXMsIGJ1dCBwcm9ncmFtcyBsaW5rZWQgd2l0aCBzdWNoIGxpYnRvb2wK LSsqKiogbGlicmFyaWVzIHdpbGwgd29yayByZWdhcmRsZXNzIG9mIHRoaXMgcHJvYmxlbS4gIE5l dmVydGhlbGVzcywgeW91Ci0rKioqIG1heSB3YW50IHRvIHJlcG9ydCB0aGUgcHJvYmxlbSB0byB5 b3VyIHN5c3RlbSBtYW5hZ2VyIGFuZC9vciB0bwotKyoqKiBidWctbGlidG9vbEBnbnUub3JnCi0r Ci0rX0xUX0VPRgotKwkgIGZpIDs7Ci0rCWVzYWMKLSsgICAgICBmaQotKyAgICAgIGJyZWFrCi0r ICAgIGZpCi0rICBkb25lCi0rICBJRlM9IiRsdF9zYXZlX2lmcyIKLSsgIE1BR0lDX0NNRD0iJGx0 X3NhdmVfTUFHSUNfQ01EIgotKyAgOzsKLStlc2FjXSkKLStNQUdJQ19DTUQ9IiRsdF9jdl9wYXRo X01BR0lDX0NNRCIKLStpZiB0ZXN0IC1uICIkTUFHSUNfQ01EIjsgdGhlbgotKyAgQUNfTVNHX1JF U1VMVCgkTUFHSUNfQ01EKQotK2Vsc2UKLSsgIEFDX01TR19SRVNVTFQobm8pCi0rZmkKLStfTFRf REVDTChbXSwgW01BR0lDX0NNRF0sIFswXSwKLSsJIFtVc2VkIHRvIGV4YW1pbmUgbGlicmFyaWVz IHdoZW4gZmlsZV9tYWdpY19jbWQgYmVnaW5zIHdpdGggImZpbGUiXSlkbmwKLStdKSMgX0xUX1BB VEhfVE9PTF9QUkVGSVgKLSsKLSsjIE9sZCBuYW1lOgotK0FVX0FMSUFTKFtBQ19QQVRIX1RPT0xf UFJFRklYXSwgW19MVF9QQVRIX1RPT0xfUFJFRklYXSkKLStkbmwgYWNsb2NhbC0xLjQgYmFja3dh cmRzIGNvbXBhdGliaWxpdHk6Ci0rZG5sIEFDX0RFRlVOKFtBQ19QQVRIX1RPT0xfUFJFRklYXSwg W10pCi0rCi0rCi0rIyBfTFRfUEFUSF9NQUdJQwotKyMgLS0tLS0tLS0tLS0tLS0KLSsjIGZpbmQg YSBmaWxlIHByb2dyYW0gd2hpY2ggY2FuIHJlY29nbml6ZSBhIHNoYXJlZCBsaWJyYXJ5Ci0rbTRf ZGVmdW4oW19MVF9QQVRIX01BR0lDXSwKLStbX0xUX1BBVEhfVE9PTF9QUkVGSVgoJHthY190b29s X3ByZWZpeH1maWxlLCAvdXNyL2JpbiRQQVRIX1NFUEFSQVRPUiRQQVRIKQotK2lmIHRlc3QgLXog IiRsdF9jdl9wYXRoX01BR0lDX0NNRCI7IHRoZW4KLSsgIGlmIHRlc3QgLW4gIiRhY190b29sX3By ZWZpeCI7IHRoZW4KLSsgICAgX0xUX1BBVEhfVE9PTF9QUkVGSVgoZmlsZSwgL3Vzci9iaW4kUEFU SF9TRVBBUkFUT1IkUEFUSCkKLSsgIGVsc2UKLSsgICAgTUFHSUNfQ01EPToKLSsgIGZpCi0rZmkK LStdKSMgX0xUX1BBVEhfTUFHSUMKLSsKLSsKLSsjIExUX1BBVEhfTEQKLSsjIC0tLS0tLS0tLS0K LSsjIGZpbmQgdGhlIHBhdGhuYW1lIHRvIHRoZSBHTlUgb3Igbm9uLUdOVSBsaW5rZXIKLStBQ19E RUZVTihbTFRfUEFUSF9MRF0sCi0rW0FDX1JFUVVJUkUoW0FDX1BST0dfQ0NdKWRubAotK0FDX1JF UVVJUkUoW0FDX0NBTk9OSUNBTF9IT1NUXSlkbmwKLStBQ19SRVFVSVJFKFtBQ19DQU5PTklDQUxf QlVJTERdKWRubAotK200X3JlcXVpcmUoW19MVF9ERUNMX1NFRF0pZG5sCi0rbTRfcmVxdWlyZShb X0xUX0RFQ0xfRUdSRVBdKWRubAotKwotK0FDX0FSR19XSVRIKFtnbnUtbGRdLAotKyAgICBbQVNf SEVMUF9TVFJJTkcoWy0td2l0aC1nbnUtbGRdLAotKwlbYXNzdW1lIHRoZSBDIGNvbXBpbGVyIHVz ZXMgR05VIGxkIEA8OkBkZWZhdWx0PW5vQDo+QF0pXSwKLSsgICAgW3Rlc3QgIiR3aXRodmFsIiA9 IG5vIHx8IHdpdGhfZ251X2xkPXllc10sCi0rICAgIFt3aXRoX2dudV9sZD1ub10pZG5sCi0rCi0r YWNfcHJvZz1sZAotK2lmIHRlc3QgIiRHQ0MiID0geWVzOyB0aGVuCi0rICAjIENoZWNrIGlmIGdj YyAtcHJpbnQtcHJvZy1uYW1lPWxkIGdpdmVzIGEgcGF0aC4KLSsgIEFDX01TR19DSEVDS0lORyhb Zm9yIGxkIHVzZWQgYnkgJENDXSkKLSsgIGNhc2UgJGhvc3QgaW4KLSsgICotKi1taW5ndyopCi0r ICAgICMgZ2NjIGxlYXZlcyBhIHRyYWlsaW5nIGNhcnJpYWdlIHJldHVybiB3aGljaCB1cHNldHMg bWluZ3cKLSsgICAgYWNfcHJvZz1gKCRDQyAtcHJpbnQtcHJvZy1uYW1lPWxkKSAyPiY1IHwgdHIg LWQgJ1wwMTUnYCA7OwotKyAgKikKLSsgICAgYWNfcHJvZz1gKCRDQyAtcHJpbnQtcHJvZy1uYW1l PWxkKSAyPiY1YCA7OwotKyAgZXNhYwotKyAgY2FzZSAkYWNfcHJvZyBpbgotKyAgICAjIEFjY2Vw dCBhYnNvbHV0ZSBwYXRocy4KLSsgICAgW1tcXC9dXSogfCA/OltbXFwvXV0qKQotKyAgICAgIHJl X2RpcmVsdD0nL1tbXi9dXVtbXi9dXSovXC5cLi8nCi0rICAgICAgIyBDYW5vbmljYWxpemUgdGhl IHBhdGhuYW1lIG9mIGxkCi0rICAgICAgYWNfcHJvZz1gJEVDSE8gIiRhY19wcm9nInwgJFNFRCAn cyVcXFxcJS8lZydgCi0rICAgICAgd2hpbGUgJEVDSE8gIiRhY19wcm9nIiB8ICRHUkVQICIkcmVf ZGlyZWx0IiA+IC9kZXYvbnVsbCAyPiYxOyBkbwotKwlhY19wcm9nPWAkRUNITyAkYWNfcHJvZ3wg JFNFRCAicyUkcmVfZGlyZWx0JS8lImAKLSsgICAgICBkb25lCi0rICAgICAgdGVzdCAteiAiJExE IiAmJiBMRD0iJGFjX3Byb2ciCi0rICAgICAgOzsKLSsgICIiKQotKyAgICAjIElmIGl0IGZhaWxz LCB0aGVuIHByZXRlbmQgd2UgYXJlbid0IHVzaW5nIEdDQy4KLSsgICAgYWNfcHJvZz1sZAotKyAg ICA7OwotKyAgKikKLSsgICAgIyBJZiBpdCBpcyByZWxhdGl2ZSwgdGhlbiBzZWFyY2ggZm9yIHRo ZSBmaXJzdCBsZCBpbiBQQVRILgotKyAgICB3aXRoX2dudV9sZD11bmtub3duCi0rICAgIDs7Ci0r ICBlc2FjCi0rZWxpZiB0ZXN0ICIkd2l0aF9nbnVfbGQiID0geWVzOyB0aGVuCi0rICBBQ19NU0df Q0hFQ0tJTkcoW2ZvciBHTlUgbGRdKQotK2Vsc2UKLSsgIEFDX01TR19DSEVDS0lORyhbZm9yIG5v bi1HTlUgbGRdKQotK2ZpCi0rQUNfQ0FDSEVfVkFMKGx0X2N2X3BhdGhfTEQsCi0rW2lmIHRlc3Qg LXogIiRMRCI7IHRoZW4KLSsgIGx0X3NhdmVfaWZzPSIkSUZTIjsgSUZTPSRQQVRIX1NFUEFSQVRP UgotKyAgZm9yIGFjX2RpciBpbiAkUEFUSDsgZG8KLSsgICAgSUZTPSIkbHRfc2F2ZV9pZnMiCi0r ICAgIHRlc3QgLXogIiRhY19kaXIiICYmIGFjX2Rpcj0uCi0rICAgIGlmIHRlc3QgLWYgIiRhY19k aXIvJGFjX3Byb2ciIHx8IHRlc3QgLWYgIiRhY19kaXIvJGFjX3Byb2ckYWNfZXhlZXh0IjsgdGhl bgotKyAgICAgIGx0X2N2X3BhdGhfTEQ9IiRhY19kaXIvJGFjX3Byb2ciCi0rICAgICAgIyBDaGVj ayB0byBzZWUgaWYgdGhlIHByb2dyYW0gaXMgR05VIGxkLiAgSSdkIHJhdGhlciB1c2UgLS12ZXJz aW9uLAotKyAgICAgICMgYnV0IGFwcGFyZW50bHkgc29tZSB2YXJpYW50cyBvZiBHTlUgbGQgb25s eSBhY2NlcHQgLXYuCi0rICAgICAgIyBCcmVhayBvbmx5IGlmIGl0IHdhcyB0aGUgR05VL25vbi1H TlUgbGQgdGhhdCB3ZSBwcmVmZXIuCi0rICAgICAgY2FzZSBgIiRsdF9jdl9wYXRoX0xEIiAtdiAy PiYxIDwvZGV2L251bGxgIGluCi0rICAgICAgKkdOVSogfCAqJ3dpdGggQkZEJyopCi0rCXRlc3Qg IiR3aXRoX2dudV9sZCIgIT0gbm8gJiYgYnJlYWsKLSsJOzsKLSsgICAgICAqKQotKwl0ZXN0ICIk d2l0aF9nbnVfbGQiICE9IHllcyAmJiBicmVhawotKwk7OwotKyAgICAgIGVzYWMKLSsgICAgZmkK LSsgIGRvbmUKLSsgIElGUz0iJGx0X3NhdmVfaWZzIgotK2Vsc2UKLSsgIGx0X2N2X3BhdGhfTEQ9 IiRMRCIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3Qgd2l0aCBhIHBhdGguCi0rZmld KQotK0xEPSIkbHRfY3ZfcGF0aF9MRCIKLStpZiB0ZXN0IC1uICIkTEQiOyB0aGVuCi0rICBBQ19N U0dfUkVTVUxUKCRMRCkKLStlbHNlCi0rICBBQ19NU0dfUkVTVUxUKG5vKQotK2ZpCi0rdGVzdCAt eiAiJExEIiAmJiBBQ19NU0dfRVJST1IoW25vIGFjY2VwdGFibGUgbGQgZm91bmQgaW4gXCRQQVRI XSkKLStfTFRfUEFUSF9MRF9HTlUKLStBQ19TVUJTVChbTERdKQotKwotK19MVF9UQUdERUNMKFtd LCBbTERdLCBbMV0sIFtUaGUgbGlua2VyIHVzZWQgdG8gYnVpbGQgbGlicmFyaWVzXSkKLStdKSMg TFRfUEFUSF9MRAotKwotKyMgT2xkIG5hbWVzOgotK0FVX0FMSUFTKFtBTV9QUk9HX0xEXSwgW0xU X1BBVEhfTERdKQotK0FVX0FMSUFTKFtBQ19QUk9HX0xEXSwgW0xUX1BBVEhfTERdKQotK2RubCBh Y2xvY2FsLTEuNCBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eToKLStkbmwgQUNfREVGVU4oW0FNX1BS T0dfTERdLCBbXSkKLStkbmwgQUNfREVGVU4oW0FDX1BST0dfTERdLCBbXSkKLSsKLSsKLSsjIF9M VF9QQVRIX0xEX0dOVQotKyMtIC0tLS0tLS0tLS0tLS0tCi0rbTRfZGVmdW4oW19MVF9QQVRIX0xE X0dOVV0sCi0rW0FDX0NBQ0hFX0NIRUNLKFtpZiB0aGUgbGlua2VyICgkTEQpIGlzIEdOVSBsZF0s IGx0X2N2X3Byb2dfZ251X2xkLAotK1sjIEknZCByYXRoZXIgdXNlIC0tdmVyc2lvbiBoZXJlLCBi dXQgYXBwYXJlbnRseSBzb21lIEdOVSBsZHMgb25seSBhY2NlcHQgLXYuCi0rY2FzZSBgJExEIC12 IDI+JjEgPC9kZXYvbnVsbGAgaW4KLSsqR05VKiB8ICond2l0aCBCRkQnKikKLSsgIGx0X2N2X3By b2dfZ251X2xkPXllcwotKyAgOzsKLSsqKQotKyAgbHRfY3ZfcHJvZ19nbnVfbGQ9bm8KLSsgIDs7 Ci0rZXNhY10pCi0rd2l0aF9nbnVfbGQ9JGx0X2N2X3Byb2dfZ251X2xkCi0rXSkjIF9MVF9QQVRI X0xEX0dOVQotKwotKwotKyMgX0xUX0NNRF9SRUxPQUQKLSsjIC0tLS0tLS0tLS0tLS0tCi0rIyBm aW5kIHJlbG9hZCBmbGFnIGZvciBsaW5rZXIKLSsjICAgLS0gUE9SVE1FIFNvbWUgbGlua2VycyBt YXkgbmVlZCBhIGRpZmZlcmVudCByZWxvYWQgZmxhZy4KLSttNF9kZWZ1bihbX0xUX0NNRF9SRUxP QURdLAotK1tBQ19DQUNIRV9DSEVDSyhbZm9yICRMRCBvcHRpb24gdG8gcmVsb2FkIG9iamVjdCBm aWxlc10sCi0rICBsdF9jdl9sZF9yZWxvYWRfZmxhZywKLSsgIFtsdF9jdl9sZF9yZWxvYWRfZmxh Zz0nLXInXSkKLStyZWxvYWRfZmxhZz0kbHRfY3ZfbGRfcmVsb2FkX2ZsYWcKLStjYXNlICRyZWxv YWRfZmxhZyBpbgotKyIiIHwgIiAiKikgOzsKLSsqKSByZWxvYWRfZmxhZz0iICRyZWxvYWRfZmxh ZyIgOzsKLStlc2FjCi0rcmVsb2FkX2NtZHM9JyRMRCRyZWxvYWRfZmxhZyAtbyAkb3V0cHV0JHJl bG9hZF9vYmpzJwotK2Nhc2UgJGhvc3Rfb3MgaW4KLSsgIGRhcndpbiopCi0rICAgIGlmIHRlc3Qg IiRHQ0MiID0geWVzOyB0aGVuCi0rICAgICAgcmVsb2FkX2NtZHM9JyRMVENDICRMVENGTEFHUyAt bm9zdGRsaWIgJHt3bH0tciAtbyAkb3V0cHV0JHJlbG9hZF9vYmpzJwotKyAgICBlbHNlCi0rICAg ICAgcmVsb2FkX2NtZHM9JyRMRCRyZWxvYWRfZmxhZyAtbyAkb3V0cHV0JHJlbG9hZF9vYmpzJwot KyAgICBmaQotKyAgICA7OwotK2VzYWMKLStfTFRfREVDTChbXSwgW3JlbG9hZF9mbGFnXSwgWzFd LCBbSG93IHRvIGNyZWF0ZSByZWxvYWRhYmxlIG9iamVjdCBmaWxlc10pZG5sCi0rX0xUX0RFQ0wo W10sIFtyZWxvYWRfY21kc10sIFsyXSlkbmwKLStdKSMgX0xUX0NNRF9SRUxPQUQKLSsKLSsKLSsj IF9MVF9DSEVDS19NQUdJQ19NRVRIT0QKLSsjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSsjIGhv dyB0byBjaGVjayBmb3IgbGlicmFyeSBkZXBlbmRlbmNpZXMKLSsjICAtLSBQT1JUTUUgZmlsbCBp biB3aXRoIHRoZSBkeW5hbWljIGxpYnJhcnkgY2hhcmFjdGVyaXN0aWNzCi0rbTRfZGVmdW4oW19M VF9DSEVDS19NQUdJQ19NRVRIT0RdLAotK1ttNF9yZXF1aXJlKFtfTFRfREVDTF9FR1JFUF0pCi0r bTRfcmVxdWlyZShbX0xUX0RFQ0xfT0JKRFVNUF0pCi0rQUNfQ0FDSEVfQ0hFQ0soW2hvdyB0byBy ZWNvZ25pemUgZGVwZW5kZW50IGxpYnJhcmllc10sCi0rbHRfY3ZfZGVwbGlic19jaGVja19tZXRo b2QsCi0rW2x0X2N2X2ZpbGVfbWFnaWNfY21kPSckTUFHSUNfQ01EJwotK2x0X2N2X2ZpbGVfbWFn aWNfdGVzdF9maWxlPQotK2x0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPSd1bmtub3duJwotKyMg TmVlZCB0byBzZXQgdGhlIHByZWNlZGluZyB2YXJpYWJsZSBvbiBhbGwgcGxhdGZvcm1zIHRoYXQg c3VwcG9ydAotKyMgaW50ZXJsaWJyYXJ5IGRlcGVuZGVuY2llcy4KLSsjICdub25lJyAtLSBkZXBl bmRlbmNpZXMgbm90IHN1cHBvcnRlZC4KLSsjIGB1bmtub3duJyAtLSBzYW1lIGFzIG5vbmUsIGJ1 dCBkb2N1bWVudHMgdGhhdCB3ZSByZWFsbHkgZG9uJ3Qga25vdy4KLSsjICdwYXNzX2FsbCcgLS0g YWxsIGRlcGVuZGVuY2llcyBwYXNzZWQgd2l0aCBubyBjaGVja3MuCi0rIyAndGVzdF9jb21waWxl JyAtLSBjaGVjayBieSBtYWtpbmcgdGVzdCBwcm9ncmFtLgotKyMgJ2ZpbGVfbWFnaWMgW1tyZWdl eF1dJyAtLSBjaGVjayBieSBsb29raW5nIGZvciBmaWxlcyBpbiBsaWJyYXJ5IHBhdGgKLSsjIHdo aWNoIHJlc3BvbmRzIHRvIHRoZSAkZmlsZV9tYWdpY19jbWQgd2l0aCBhIGdpdmVuIGV4dGVuZGVk IHJlZ2V4LgotKyMgSWYgeW91IGhhdmUgYGZpbGUnIG9yIGVxdWl2YWxlbnQgb24geW91ciBzeXN0 ZW0gYW5kIHlvdSdyZSBub3Qgc3VyZQotKyMgd2hldGhlciBgcGFzc19hbGwnIHdpbGwgKmFsd2F5 cyogd29yaywgeW91IHByb2JhYmx5IHdhbnQgdGhpcyBvbmUuCi0rCi0rY2FzZSAkaG9zdF9vcyBp bgotK2FpeFtbNC05XV0qKQotKyAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9cGFzc19hbGwK LSsgIDs7Ci0rCi0rYmVvcyopCi0rICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD1wYXNzX2Fs bAotKyAgOzsKLSsKLStic2RpW1s0NV1dKikKLSsgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9k PSdmaWxlX21hZ2ljIEVMRiBbWzAtOV1dW1swLTldXSotYml0IFtbTUxdXVNCIChzaGFyZWQgb2Jq ZWN0fGR5bmFtaWMgbGliKScKLSsgIGx0X2N2X2ZpbGVfbWFnaWNfY21kPScvdXNyL2Jpbi9maWxl IC1MJwotKyAgbHRfY3ZfZmlsZV9tYWdpY190ZXN0X2ZpbGU9L3NobGliL2xpYmMuc28KLSsgIDs7 Ci0rCi0rY3lnd2luKikKLSsgICMgZnVuY193aW4zMl9saWJpZCBpcyBhIHNoZWxsIGZ1bmN0aW9u IGRlZmluZWQgaW4gbHRtYWluLnNoCi0rICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD0nZmls ZV9tYWdpYyBeeDg2IGFyY2hpdmUgaW1wb3J0fF54ODYgRExMJwotKyAgbHRfY3ZfZmlsZV9tYWdp Y19jbWQ9J2Z1bmNfd2luMzJfbGliaWQnCi0rICA7OwotKwotK21pbmd3KiB8IHB3MzIqKQotKyAg IyBCYXNlIE1TWVMvTWluR1cgZG8gbm90IHByb3ZpZGUgdGhlICdmaWxlJyBjb21tYW5kIG5lZWRl ZCBieQotKyAgIyBmdW5jX3dpbjMyX2xpYmlkIHNoZWxsIGZ1bmN0aW9uLCBzbyB1c2UgYSB3ZWFr ZXIgdGVzdCBiYXNlZCBvbiAnb2JqZHVtcCcsCi0rICAjIHVubGVzcyB3ZSBmaW5kICdmaWxlJywg Zm9yIGV4YW1wbGUgYmVjYXVzZSB3ZSBhcmUgY3Jvc3MtY29tcGlsaW5nLgotKyAgaWYgKCBmaWxl IC8gKSA+L2Rldi9udWxsIDI+JjE7IHRoZW4KLSsgICAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRo b2Q9J2ZpbGVfbWFnaWMgXng4NiBhcmNoaXZlIGltcG9ydHxeeDg2IERMTCcKLSsgICAgbHRfY3Zf ZmlsZV9tYWdpY19jbWQ9J2Z1bmNfd2luMzJfbGliaWQnCi0rICBlbHNlCi0rICAgIGx0X2N2X2Rl cGxpYnNfY2hlY2tfbWV0aG9kPSdmaWxlX21hZ2ljIGZpbGUgZm9ybWF0IHBlaSotaTM4NiguKmFy Y2hpdGVjdHVyZTogaTM4Nik/JwotKyAgICBsdF9jdl9maWxlX21hZ2ljX2NtZD0nJE9CSkRVTVAg LWYnCi0rICBmaQotKyAgOzsKLSsKLStjZWdjYykKLSsgICMgdXNlIHRoZSB3ZWFrZXIgdGVzdCBi YXNlZCBvbiAnb2JqZHVtcCcuIFNlZSBtaW5ndyouCi0rICBsdF9jdl9kZXBsaWJzX2NoZWNrX21l dGhvZD0nZmlsZV9tYWdpYyBmaWxlIGZvcm1hdCBwZS1hcm0tLipsaXR0bGUoLiphcmNoaXRlY3R1 cmU6IGFybSk/JwotKyAgbHRfY3ZfZmlsZV9tYWdpY19jbWQ9JyRPQkpEVU1QIC1mJwotKyAgOzsK LSsKLStkYXJ3aW4qIHwgcmhhcHNvZHkqKQotKyAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9 cGFzc19hbGwKLSsgIDs7Ci0rCi0rZnJlZWJzZCogfCBkcmFnb25mbHkqKQotKyAgaWYgZWNobyBf X0VMRl9fIHwgJENDIC1FIC0gfCAkR1JFUCBfX0VMRl9fID4gL2Rldi9udWxsOyB0aGVuCi0rICAg IGNhc2UgJGhvc3RfY3B1IGluCi0rICAgIGkqODYgKQotKyAgICAgICMgTm90IHN1cmUgd2hldGhl ciB0aGUgcHJlc2VuY2Ugb2YgT3BlbkJTRCBoZXJlIHdhcyBhIG1pc3Rha2UuCi0rICAgICAgIyBM ZXQncyBhY2NlcHQgYm90aCBvZiB0aGVtIHVudGlsIHRoaXMgaXMgY2xlYXJlZCB1cC4KLSsgICAg ICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD0nZmlsZV9tYWdpYyAoRnJlZUJTRHxPcGVuQlNE fERyYWdvbkZseSkvaVtbMy05XV04NiAoY29tcGFjdCApP2RlbWFuZCBwYWdlZCBzaGFyZWQgbGli cmFyeScKLSsgICAgICBsdF9jdl9maWxlX21hZ2ljX2NtZD0vdXNyL2Jpbi9maWxlCi0rICAgICAg bHRfY3ZfZmlsZV9tYWdpY190ZXN0X2ZpbGU9YGVjaG8gL3Vzci9saWIvbGliYy5zby4qYAotKyAg ICAgIDs7Ci0rICAgIGVzYWMKLSsgIGVsc2UKLSsgICAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRo b2Q9cGFzc19hbGwKLSsgIGZpCi0rICA7OwotKwotK2dudSopCi0rICBsdF9jdl9kZXBsaWJzX2No ZWNrX21ldGhvZD1wYXNzX2FsbAotKyAgOzsKLSsKLStocHV4MTAuMjAqIHwgaHB1eDExKikKLSsg IGx0X2N2X2ZpbGVfbWFnaWNfY21kPS91c3IvYmluL2ZpbGUKLSsgIGNhc2UgJGhvc3RfY3B1IGlu Ci0rICBpYTY0KikKLSsgICAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9J2ZpbGVfbWFnaWMg KHNbWzAtOV1dW1swLTldXVtbMC05XV18RUxGLVtbMC05XV1bWzAtOV1dKSBzaGFyZWQgb2JqZWN0 IGZpbGUgLSBJQTY0JwotKyAgICBsdF9jdl9maWxlX21hZ2ljX3Rlc3RfZmlsZT0vdXNyL2xpYi9o cHV4MzIvbGliYy5zbwotKyAgICA7OwotKyAgaHBwYSo2NCopCi0rICAgIFtsdF9jdl9kZXBsaWJz X2NoZWNrX21ldGhvZD0nZmlsZV9tYWdpYyAoc1swLTldWzAtOV1bMC05XXxFTEYtWzAtOV1bMC05 XSkgc2hhcmVkIG9iamVjdCBmaWxlIC0gUEEtUklTQyBbMC05XS5bMC05XSddCi0rICAgIGx0X2N2 X2ZpbGVfbWFnaWNfdGVzdF9maWxlPS91c3IvbGliL3BhMjBfNjQvbGliYy5zbAotKyAgICA7Owot KyAgKikKLSsgICAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9J2ZpbGVfbWFnaWMgKHNbWzAt OV1dW1swLTldXVtbMC05XV18UEEtUklTQ1tbMC05XV0uW1swLTldXSkgc2hhcmVkIGxpYnJhcnkn Ci0rICAgIGx0X2N2X2ZpbGVfbWFnaWNfdGVzdF9maWxlPS91c3IvbGliL2xpYmMuc2wKLSsgICAg OzsKLSsgIGVzYWMKLSsgIDs7Ci0rCi0raW50ZXJpeFtbMy05XV0qKQotKyAgIyBQSUMgY29kZSBp cyBicm9rZW4gb24gSW50ZXJpeCAzLngsIHRoYXQncyB3aHkgfFwuYSBub3QgfF9waWNcLmEgaGVy ZQotKyAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9J21hdGNoX3BhdHRlcm4gL2xpYltbXi9d XSsoXC5zb3xcLmEpJCcKLSsgIDs7Ci0rCi0raXJpeDUqIHwgaXJpeDYqIHwgbm9uc3RvcHV4KikK LSsgIGNhc2UgJExEIGluCi0rICAqLTMyfCoiLTMyICIpIGxpYm1hZ2ljPTMyLWJpdDs7Ci0rICAq LW4zMnwqIi1uMzIgIikgbGlibWFnaWM9TjMyOzsKLSsgICotNjR8KiItNjQgIikgbGlibWFnaWM9 NjQtYml0OzsKLSsgICopIGxpYm1hZ2ljPW5ldmVyLW1hdGNoOzsKLSsgIGVzYWMKLSsgIGx0X2N2 X2RlcGxpYnNfY2hlY2tfbWV0aG9kPXBhc3NfYWxsCi0rICA7OwotKwotKyMgVGhpcyBtdXN0IGJl IExpbnV4IEVMRi4KLStsaW51eCogfCBrKmJzZCotZ251KQotKyAgbHRfY3ZfZGVwbGlic19jaGVj a19tZXRob2Q9cGFzc19hbGwKLSsgIDs7Ci0rCi0rbmV0YnNkKikKLSsgIGlmIGVjaG8gX19FTEZf XyB8ICRDQyAtRSAtIHwgJEdSRVAgX19FTEZfXyA+IC9kZXYvbnVsbDsgdGhlbgotKyAgICBsdF9j dl9kZXBsaWJzX2NoZWNrX21ldGhvZD0nbWF0Y2hfcGF0dGVybiAvbGliW1teL11dKyhcLnNvXC5b WzAtOV1dK1wuW1swLTldXSt8X3BpY1wuYSkkJwotKyAgZWxzZQotKyAgICBsdF9jdl9kZXBsaWJz X2NoZWNrX21ldGhvZD0nbWF0Y2hfcGF0dGVybiAvbGliW1teL11dKyhcLnNvfF9waWNcLmEpJCcK LSsgIGZpCi0rICA7OwotKwotK25ld29zNiopCi0rICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhv ZD0nZmlsZV9tYWdpYyBFTEYgW1swLTldXVtbMC05XV0qLWJpdCBbW01MXV1TQiAoZXhlY3V0YWJs ZXxkeW5hbWljIGxpYiknCi0rICBsdF9jdl9maWxlX21hZ2ljX2NtZD0vdXNyL2Jpbi9maWxlCi0r ICBsdF9jdl9maWxlX21hZ2ljX3Rlc3RfZmlsZT0vdXNyL2xpYi9saWJubHMuc28KLSsgIDs7Ci0r Ci0rKm50byogfCAqcW54KikKLSsgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPXBhc3NfYWxs Ci0rICA7OwotKwotK29wZW5ic2QqKQotKyAgaWYgdGVzdCAteiAiYGVjaG8gX19FTEZfXyB8ICRD QyAtRSAtIHwgJEdSRVAgX19FTEZfX2AiIHx8IHRlc3QgIiRob3N0X29zLSRob3N0X2NwdSIgPSAi b3BlbmJzZDIuOC1wb3dlcnBjIjsgdGhlbgotKyAgICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhv ZD0nbWF0Y2hfcGF0dGVybiAvbGliW1teL11dKyhcLnNvXC5bWzAtOV1dK1wuW1swLTldXSt8XC5z b3xfcGljXC5hKSQnCi0rICBlbHNlCi0rICAgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPSdt YXRjaF9wYXR0ZXJuIC9saWJbW14vXV0rKFwuc29cLltbMC05XV0rXC5bWzAtOV1dK3xfcGljXC5h KSQnCi0rICBmaQotKyAgOzsKLSsKLStvc2YzKiB8IG9zZjQqIHwgb3NmNSopCi0rICBsdF9jdl9k ZXBsaWJzX2NoZWNrX21ldGhvZD1wYXNzX2FsbAotKyAgOzsKLSsKLStyZG9zKikKLSsgIGx0X2N2 X2RlcGxpYnNfY2hlY2tfbWV0aG9kPXBhc3NfYWxsCi0rICA7OwotKwotK3NvbGFyaXMqKQotKyAg bHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9cGFzc19hbGwKLSsgIDs7Ci0rCi0rc3lzdjUqIHwg c2NvMy4ydjUqIHwgc2NvNXY2KiB8IHVuaXh3YXJlKiB8IE9wZW5VTklYKiB8IHN5c3Y0KnV3Miop Ci0rICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD1wYXNzX2FsbAotKyAgOzsKLSsKLStzeXN2 NCB8IHN5c3Y0LjMqKQotKyAgY2FzZSAkaG9zdF92ZW5kb3IgaW4KLSsgIG1vdG9yb2xhKQotKyAg ICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD0nZmlsZV9tYWdpYyBFTEYgW1swLTldXVtbMC05 XV0qLWJpdCBbW01MXV1TQiAoc2hhcmVkIG9iamVjdHxkeW5hbWljIGxpYikgTVtbMC05XV1bWzAt OV1dKiBWZXJzaW9uIFtbMC05XV0nCi0rICAgIGx0X2N2X2ZpbGVfbWFnaWNfdGVzdF9maWxlPWBl Y2hvIC91c3IvbGliL2xpYmMuc28qYAotKyAgICA7OwotKyAgbmNyKQotKyAgICBsdF9jdl9kZXBs aWJzX2NoZWNrX21ldGhvZD1wYXNzX2FsbAotKyAgICA7OwotKyAgc2VxdWVudCkKLSsgICAgbHRf Y3ZfZmlsZV9tYWdpY19jbWQ9Jy9iaW4vZmlsZScKLSsgICAgbHRfY3ZfZGVwbGlic19jaGVja19t ZXRob2Q9J2ZpbGVfbWFnaWMgRUxGIFtbMC05XV1bWzAtOV1dKi1iaXQgW1tMTV1dU0IgKHNoYXJl ZCBvYmplY3R8ZHluYW1pYyBsaWIgKScKLSsgICAgOzsKLSsgIHNuaSkKLSsgICAgbHRfY3ZfZmls ZV9tYWdpY19jbWQ9Jy9iaW4vZmlsZScKLSsgICAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9 ImZpbGVfbWFnaWMgRUxGIFtbMC05XV1bWzAtOV1dKi1iaXQgW1tMTV1dU0IgZHluYW1pYyBsaWIi Ci0rICAgIGx0X2N2X2ZpbGVfbWFnaWNfdGVzdF9maWxlPS9saWIvbGliYy5zbwotKyAgICA7Owot KyAgc2llbWVucykKLSsgICAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9cGFzc19hbGwKLSsg ICAgOzsKLSsgIHBjKQotKyAgICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD1wYXNzX2FsbAot KyAgICA7OwotKyAgZXNhYwotKyAgOzsKLSsKLSt0cGYqKQotKyAgbHRfY3ZfZGVwbGlic19jaGVj a19tZXRob2Q9cGFzc19hbGwKLSsgIDs7Ci0rZXNhYwotK10pCi0rZmlsZV9tYWdpY19jbWQ9JGx0 X2N2X2ZpbGVfbWFnaWNfY21kCi0rZGVwbGlic19jaGVja19tZXRob2Q9JGx0X2N2X2RlcGxpYnNf Y2hlY2tfbWV0aG9kCi0rdGVzdCAteiAiJGRlcGxpYnNfY2hlY2tfbWV0aG9kIiAmJiBkZXBsaWJz X2NoZWNrX21ldGhvZD11bmtub3duCi0rCi0rX0xUX0RFQ0woW10sIFtkZXBsaWJzX2NoZWNrX21l dGhvZF0sIFsxXSwKLSsgICAgW01ldGhvZCB0byBjaGVjayB3aGV0aGVyIGRlcGVuZGVudCBsaWJy YXJpZXMgYXJlIHNoYXJlZCBvYmplY3RzXSkKLStfTFRfREVDTChbXSwgW2ZpbGVfbWFnaWNfY21k XSwgWzFdLAotKyAgICBbQ29tbWFuZCB0byB1c2Ugd2hlbiBkZXBsaWJzX2NoZWNrX21ldGhvZCA9 PSAiZmlsZV9tYWdpYyJdKQotK10pIyBfTFRfQ0hFQ0tfTUFHSUNfTUVUSE9ECi0rCi0rCi0rIyBM VF9QQVRIX05NCi0rIyAtLS0tLS0tLS0tCi0rIyBmaW5kIHRoZSBwYXRobmFtZSB0byBhIEJTRC0g b3IgTVMtY29tcGF0aWJsZSBuYW1lIGxpc3RlcgotK0FDX0RFRlVOKFtMVF9QQVRIX05NXSwKLStb QUNfUkVRVUlSRShbQUNfUFJPR19DQ10pZG5sCi0rQUNfQ0FDSEVfQ0hFQ0soW2ZvciBCU0QtIG9y IE1TLWNvbXBhdGlibGUgbmFtZSBsaXN0ZXIgKG5tKV0sIGx0X2N2X3BhdGhfTk0sCi0rW2lmIHRl c3QgLW4gIiROTSI7IHRoZW4KLSsgICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0Lgot KyAgbHRfY3ZfcGF0aF9OTT0iJE5NIgotK2Vsc2UKLSsgIGx0X25tX3RvX2NoZWNrPSIke2FjX3Rv b2xfcHJlZml4fW5tIgotKyAgaWYgdGVzdCAtbiAiJGFjX3Rvb2xfcHJlZml4IiAmJiB0ZXN0ICIk YnVpbGQiID0gIiRob3N0IjsgdGhlbgotKyAgICBsdF9ubV90b19jaGVjaz0iJGx0X25tX3RvX2No ZWNrIG5tIgotKyAgZmkKLSsgIGZvciBsdF90bXBfbm0gaW4gJGx0X25tX3RvX2NoZWNrOyBkbwot KyAgICBsdF9zYXZlX2lmcz0iJElGUyI7IElGUz0kUEFUSF9TRVBBUkFUT1IKLSsgICAgZm9yIGFj X2RpciBpbiAkUEFUSCAvdXNyL2Njcy9iaW4vZWxmIC91c3IvY2NzL2JpbiAvdXNyL3VjYiAvYmlu OyBkbwotKyAgICAgIElGUz0iJGx0X3NhdmVfaWZzIgotKyAgICAgIHRlc3QgLXogIiRhY19kaXIi ICYmIGFjX2Rpcj0uCi0rICAgICAgdG1wX25tPSIkYWNfZGlyLyRsdF90bXBfbm0iCi0rICAgICAg aWYgdGVzdCAtZiAiJHRtcF9ubSIgfHwgdGVzdCAtZiAiJHRtcF9ubSRhY19leGVleHQiIDsgdGhl bgotKwkjIENoZWNrIHRvIHNlZSBpZiB0aGUgbm0gYWNjZXB0cyBhIEJTRC1jb21wYXQgZmxhZy4K LSsJIyBBZGRpbmcgdGhlIGBzZWQgMXEnIHByZXZlbnRzIGZhbHNlIHBvc2l0aXZlcyBvbiBIUC1V WCwgd2hpY2ggc2F5czoKLSsJIyAgIG5tOiB1bmtub3duIG9wdGlvbiAiQiIgaWdub3JlZAotKwkj IFRydTY0J3Mgbm0gY29tcGxhaW5zIHRoYXQgL2Rldi9udWxsIGlzIGFuIGludmFsaWQgb2JqZWN0 IGZpbGUKLSsJY2FzZSBgIiR0bXBfbm0iIC1CIC9kZXYvbnVsbCAyPiYxIHwgc2VkICcxcSdgIGlu Ci0rCSovZGV2L251bGwqIHwgKidJbnZhbGlkIGZpbGUgb3Igb2JqZWN0IHR5cGUnKikKLSsJICBs dF9jdl9wYXRoX05NPSIkdG1wX25tIC1CIgotKwkgIGJyZWFrCi0rCSAgOzsKLSsJKikKLSsJICBj YXNlIGAiJHRtcF9ubSIgLXAgL2Rldi9udWxsIDI+JjEgfCBzZWQgJzFxJ2AgaW4KLSsJICAqL2Rl di9udWxsKikKLSsJICAgIGx0X2N2X3BhdGhfTk09IiR0bXBfbm0gLXAiCi0rCSAgICBicmVhawot KwkgICAgOzsKLSsJICAqKQotKwkgICAgbHRfY3ZfcGF0aF9OTT0ke2x0X2N2X3BhdGhfTk09IiR0 bXBfbm0ifSAjIGtlZXAgdGhlIGZpcnN0IG1hdGNoLCBidXQKLSsJICAgIGNvbnRpbnVlICMgc28g dGhhdCB3ZSBjYW4gdHJ5IHRvIGZpbmQgb25lIHRoYXQgc3VwcG9ydHMgQlNEIGZsYWdzCi0rCSAg ICA7OwotKwkgIGVzYWMKLSsJICA7OwotKwllc2FjCi0rICAgICAgZmkKLSsgICAgZG9uZQotKyAg ICBJRlM9IiRsdF9zYXZlX2lmcyIKLSsgIGRvbmUKLSsgIDogJHtsdF9jdl9wYXRoX05NPW5vfQot K2ZpXSkKLStpZiB0ZXN0ICIkbHRfY3ZfcGF0aF9OTSIgIT0gIm5vIjsgdGhlbgotKyAgTk09IiRs dF9jdl9wYXRoX05NIgotK2Vsc2UKLSsgICMgRGlkbid0IGZpbmQgYW55IEJTRCBjb21wYXRpYmxl IG5hbWUgbGlzdGVyLCBsb29rIGZvciBkdW1wYmluLgotKyAgQUNfQ0hFQ0tfVE9PTFMoRFVNUEJJ TiwgWyJkdW1wYmluIC1zeW1ib2xzIiAibGluayAtZHVtcCAtc3ltYm9scyJdLCA6KQotKyAgQUNf U1VCU1QoW0RVTVBCSU5dKQotKyAgaWYgdGVzdCAiJERVTVBCSU4iICE9ICI6IjsgdGhlbgotKyAg ICBOTT0iJERVTVBCSU4iCi0rICBmaQotK2ZpCi0rdGVzdCAteiAiJE5NIiAmJiBOTT1ubQotK0FD X1NVQlNUKFtOTV0pCi0rX0xUX0RFQ0woW10sIFtOTV0sIFsxXSwgW0EgQlNELSBvciBNUy1jb21w YXRpYmxlIG5hbWUgbGlzdGVyXSlkbmwKLSsKLStBQ19DQUNIRV9DSEVDSyhbdGhlIG5hbWUgbGlz dGVyICgkTk0pIGludGVyZmFjZV0sIFtsdF9jdl9ubV9pbnRlcmZhY2VdLAotKyAgW2x0X2N2X25t X2ludGVyZmFjZT0iQlNEIG5tIgotKyAgZWNobyAiaW50IHNvbWVfdmFyaWFibGUgPSAwOyIgPiBj b25mdGVzdC4kYWNfZXh0Ci0rICAoZXZhbCBlY2hvICJcIlwkYXNfbWU6X19vbGluZV9fOiAkYWNf Y29tcGlsZVwiIiA+JkFTX01FU1NBR0VfTE9HX0ZEKQotKyAgKGV2YWwgIiRhY19jb21waWxlIiAy PmNvbmZ0ZXN0LmVycikKLSsgIGNhdCBjb25mdGVzdC5lcnIgPiZBU19NRVNTQUdFX0xPR19GRAot KyAgKGV2YWwgZWNobyAiXCJcJGFzX21lOl9fb2xpbmVfXzogJE5NIFxcXCJjb25mdGVzdC4kYWNf b2JqZXh0XFxcIlwiIiA+JkFTX01FU1NBR0VfTE9HX0ZEKQotKyAgKGV2YWwgIiROTSBcImNvbmZ0 ZXN0LiRhY19vYmpleHRcIiIgMj5jb25mdGVzdC5lcnIgPiBjb25mdGVzdC5vdXQpCi0rICBjYXQg Y29uZnRlc3QuZXJyID4mQVNfTUVTU0FHRV9MT0dfRkQKLSsgIChldmFsIGVjaG8gIlwiXCRhc19t ZTpfX29saW5lX186IG91dHB1dFwiIiA+JkFTX01FU1NBR0VfTE9HX0ZEKQotKyAgY2F0IGNvbmZ0 ZXN0Lm91dCA+JkFTX01FU1NBR0VfTE9HX0ZECi0rICBpZiAkR1JFUCAnRXh0ZXJuYWwuKnNvbWVf dmFyaWFibGUnIGNvbmZ0ZXN0Lm91dCA+IC9kZXYvbnVsbDsgdGhlbgotKyAgICBsdF9jdl9ubV9p bnRlcmZhY2U9Ik1TIGR1bXBiaW4iCi0rICBmaQotKyAgcm0gLWYgY29uZnRlc3QqXSkKLStdKSMg TFRfUEFUSF9OTQotKwotKyMgT2xkIG5hbWVzOgotK0FVX0FMSUFTKFtBTV9QUk9HX05NXSwgW0xU X1BBVEhfTk1dKQotK0FVX0FMSUFTKFtBQ19QUk9HX05NXSwgW0xUX1BBVEhfTk1dKQotK2RubCBh Y2xvY2FsLTEuNCBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eToKLStkbmwgQUNfREVGVU4oW0FNX1BS T0dfTk1dLCBbXSkKLStkbmwgQUNfREVGVU4oW0FDX1BST0dfTk1dLCBbXSkKLSsKLSsKLSsjIExU X0xJQl9NCi0rIyAtLS0tLS0tLQotKyMgY2hlY2sgZm9yIG1hdGggbGlicmFyeQotK0FDX0RFRlVO KFtMVF9MSUJfTV0sCi0rW0FDX1JFUVVJUkUoW0FDX0NBTk9OSUNBTF9IT1NUXSlkbmwKLStMSUJN PQotK2Nhc2UgJGhvc3QgaW4KLSsqLSotYmVvcyogfCAqLSotY3lnd2luKiB8ICotKi1wdzMyKiB8 ICotKi1kYXJ3aW4qKQotKyAgIyBUaGVzZSBzeXN0ZW0gZG9uJ3QgaGF2ZSBsaWJtLCBvciBkb24n dCBuZWVkIGl0Ci0rICA7OwotKyotbmNyLXN5c3Y0LjMqKQotKyAgQUNfQ0hFQ0tfTElCKG13LCBf bXd2YWxpZGNoZWNrbCwgTElCTT0iLWxtdyIpCi0rICBBQ19DSEVDS19MSUIobSwgY29zLCBMSUJN PSIkTElCTSAtbG0iKQotKyAgOzsKLSsqKQotKyAgQUNfQ0hFQ0tfTElCKG0sIGNvcywgTElCTT0i LWxtIikKLSsgIDs7Ci0rZXNhYwotK0FDX1NVQlNUKFtMSUJNXSkKLStdKSMgTFRfTElCX00KLSsK LSsjIE9sZCBuYW1lOgotK0FVX0FMSUFTKFtBQ19DSEVDS19MSUJNXSwgW0xUX0xJQl9NXSkKLStk bmwgYWNsb2NhbC0xLjQgYmFja3dhcmRzIGNvbXBhdGliaWxpdHk6Ci0rZG5sIEFDX0RFRlVOKFtB Q19DSEVDS19MSUJNXSwgW10pCi0rCi0rCi0rIyBfTFRfQ09NUElMRVJfTk9fUlRUSShbVEFHTkFN RV0pCi0rIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0rbTRfZGVmdW4oW19MVF9D T01QSUxFUl9OT19SVFRJXSwKLStbbTRfcmVxdWlyZShbX0xUX1RBR19DT01QSUxFUl0pZG5sCi0r Ci0rX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX25vX2J1aWx0aW5fZmxhZywgJDEpPQotKwot K2lmIHRlc3QgIiRHQ0MiID0geWVzOyB0aGVuCi0rICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGls ZXJfbm9fYnVpbHRpbl9mbGFnLCAkMSk9JyAtZm5vLWJ1aWx0aW4nCi0rCi0rICBfTFRfQ09NUElM RVJfT1BUSU9OKFtpZiAkY29tcGlsZXIgc3VwcG9ydHMgLWZuby1ydHRpIC1mbm8tZXhjZXB0aW9u c10sCi0rICAgIGx0X2N2X3Byb2dfY29tcGlsZXJfcnR0aV9leGNlcHRpb25zLAotKyAgICBbLWZu by1ydHRpIC1mbm8tZXhjZXB0aW9uc10sIFtdLAotKyAgICBbX0xUX1RBR1ZBUihsdF9wcm9nX2Nv bXBpbGVyX25vX2J1aWx0aW5fZmxhZywgJDEpPSIkX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVy X25vX2J1aWx0aW5fZmxhZywgJDEpIC1mbm8tcnR0aSAtZm5vLWV4Y2VwdGlvbnMiXSkKLStmaQot K19MVF9UQUdERUNMKFtub19idWlsdGluX2ZsYWddLCBbbHRfcHJvZ19jb21waWxlcl9ub19idWls dGluX2ZsYWddLCBbMV0sCi0rCVtDb21waWxlciBmbGFnIHRvIHR1cm4gb2ZmIGJ1aWx0aW4gZnVu Y3Rpb25zXSkKLStdKSMgX0xUX0NPTVBJTEVSX05PX1JUVEkKLSsKLSsKLSsjIF9MVF9DTURfR0xP QkFMX1NZTUJPTFMKLSsjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSttNF9kZWZ1bihbX0xUX0NN RF9HTE9CQUxfU1lNQk9MU10sCi0rW0FDX1JFUVVJUkUoW0FDX0NBTk9OSUNBTF9IT1NUXSlkbmwK LStBQ19SRVFVSVJFKFtBQ19QUk9HX0NDXSlkbmwKLStBQ19SRVFVSVJFKFtMVF9QQVRIX05NXSlk bmwKLStBQ19SRVFVSVJFKFtMVF9QQVRIX0xEXSlkbmwKLSttNF9yZXF1aXJlKFtfTFRfREVDTF9T RURdKWRubAotK200X3JlcXVpcmUoW19MVF9ERUNMX0VHUkVQXSlkbmwKLSttNF9yZXF1aXJlKFtf TFRfVEFHX0NPTVBJTEVSXSlkbmwKLSsKLSsjIENoZWNrIGZvciBjb21tYW5kIHRvIGdyYWIgdGhl IHJhdyBzeW1ib2wgbmFtZSBmb2xsb3dlZCBieSBDIHN5bWJvbCBmcm9tIG5tLgotK0FDX01TR19D SEVDS0lORyhbY29tbWFuZCB0byBwYXJzZSAkTk0gb3V0cHV0IGZyb20gJGNvbXBpbGVyIG9iamVj dF0pCi0rQUNfQ0FDSEVfVkFMKFtsdF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF9waXBlXSwKLStbCi0r IyBUaGVzZSBhcmUgc2FuZSBkZWZhdWx0cyB0aGF0IHdvcmsgb24gYXQgbGVhc3QgYSBmZXcgb2xk IHN5c3RlbXMuCi0rIyBbVGhleSBjb21lIGZyb20gVWx0cml4LiAgV2hhdCBjb3VsZCBiZSBvbGRl ciB0aGFuIFVsdHJpeD8hISA7KV0KLSsKLSsjIENoYXJhY3RlciBjbGFzcyBkZXNjcmliaW5nIE5N IGdsb2JhbCBzeW1ib2wgY29kZXMuCi0rc3ltY29kZT0nW1tCQ0RFR1JTVF1dJwotKwotKyMgUmVn ZXhwIHRvIG1hdGNoIHN5bWJvbHMgdGhhdCBjYW4gYmUgYWNjZXNzZWQgZGlyZWN0bHkgZnJvbSBD LgotK3N5bXBhdD0nXChbW19BLVphLXpdXVtbX0EtWmEtejAtOV1dKlwpJwotKwotKyMgRGVmaW5l IHN5c3RlbS1zcGVjaWZpYyB2YXJpYWJsZXMuCi0rY2FzZSAkaG9zdF9vcyBpbgotK2FpeCopCi0r ICBzeW1jb2RlPSdbW0JDRFRdXScKLSsgIDs7Ci0rY3lnd2luKiB8IG1pbmd3KiB8IHB3MzIqIHwg Y2VnY2MqKQotKyAgc3ltY29kZT0nW1tBQkNER0lTVFddXScKLSsgIDs7Ci0raHB1eCopCi0rICBp ZiB0ZXN0ICIkaG9zdF9jcHUiID0gaWE2NDsgdGhlbgotKyAgICBzeW1jb2RlPSdbW0FCQ0RFR1JT VF1dJwotKyAgZmkKLSsgIDs7Ci0raXJpeCogfCBub25zdG9wdXgqKQotKyAgc3ltY29kZT0nW1tC Q0RFR1JTVF1dJwotKyAgOzsKLStvc2YqKQotKyAgc3ltY29kZT0nW1tCQ0RFR1FSU1RdXScKLSsg IDs7Ci0rc29sYXJpcyopCi0rICBzeW1jb2RlPSdbW0JEUlRdXScKLSsgIDs7Ci0rc2NvMy4ydjUq KQotKyAgc3ltY29kZT0nW1tEVF1dJwotKyAgOzsKLStzeXN2NC4ydXcyKikKLSsgIHN5bWNvZGU9 J1tbRFRdXScKLSsgIDs7Ci0rc3lzdjUqIHwgc2NvNXY2KiB8IHVuaXh3YXJlKiB8IE9wZW5VTklY KikKLSsgIHN5bWNvZGU9J1tbQUJEVF1dJwotKyAgOzsKLStzeXN2NCkKLSsgIHN5bWNvZGU9J1tb REZOU1RVXV0nCi0rICA7OwotK2VzYWMKLSsKLSsjIElmIHdlJ3JlIHVzaW5nIEdOVSBubSwgdGhl biB1c2UgaXRzIHN0YW5kYXJkIHN5bWJvbCBjb2Rlcy4KLStjYXNlIGAkTk0gLVYgMj4mMWAgaW4K LSsqR05VKiB8ICond2l0aCBCRkQnKikKLSsgIHN5bWNvZGU9J1tbQUJDREdJUlNUV11dJyA7Owot K2VzYWMKLSsKLSsjIFRyYW5zZm9ybSBhbiBleHRyYWN0ZWQgc3ltYm9sIGxpbmUgaW50byBhIHBy b3BlciBDIGRlY2xhcmF0aW9uLgotKyMgU29tZSBzeXN0ZW1zIChlc3AuIG9uIGlhNjQpIGxpbmsg ZGF0YSBhbmQgY29kZSBzeW1ib2xzIGRpZmZlcmVudGx5LAotKyMgc28gdXNlIHRoaXMgZ2VuZXJh bCBhcHByb2FjaC4KLStsdF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF90b19jZGVjbD0ic2VkIC1uIC1l ICdzL15UIC4qIFwoLipcKSQvZXh0ZXJuIGludCBcMSgpOy9wJyAtZSAncy9eJHN5bWNvZGUqIC4q IFwoLipcKSQvZXh0ZXJuIGNoYXIgXDE7L3AnIgotKwotKyMgVHJhbnNmb3JtIGFuIGV4dHJhY3Rl ZCBzeW1ib2wgbGluZSBpbnRvIHN5bWJvbCBuYW1lIGFuZCBzeW1ib2wgYWRkcmVzcwotK2x0X2N2 X3N5c19nbG9iYWxfc3ltYm9sX3RvX2NfbmFtZV9hZGRyZXNzPSJzZWQgLW4gLWUgJ3MvXjogXChb W14gXV0qXCkgJC8gIHtcXFwiXDFcXFwiLCAodm9pZCAqKSAwfSwvcCcgLWUgJ3MvXiRzeW1jb2Rl KiBcKFtbXiBdXSpcKSBcKFtbXiBdXSpcKSQvICB7XCJcMlwiLCAodm9pZCAqKSBcJlwyfSwvcCci Ci0rbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfdG9fY19uYW1lX2FkZHJlc3NfbGliX3ByZWZpeD0i c2VkIC1uIC1lICdzL146IFwoW1teIF1dKlwpICQvICB7XFxcIlwxXFxcIiwgKHZvaWQgKikgMH0s L3AnIC1lICdzL14kc3ltY29kZSogXChbW14gXV0qXCkgXChsaWJbW14gXV0qXCkkLyAge1wiXDJc IiwgKHZvaWQgKikgXCZcMn0sL3AnIC1lICdzL14kc3ltY29kZSogXChbW14gXV0qXCkgXChbW14g XV0qXCkkLyAge1wibGliXDJcIiwgKHZvaWQgKikgXCZcMn0sL3AnIgotKwotKyMgSGFuZGxlIENS TEYgaW4gbWluZ3cgdG9vbCBjaGFpbgotK29wdF9jcj0KLStjYXNlICRidWlsZF9vcyBpbgotK21p bmd3KikKLSsgIG9wdF9jcj1gJEVDSE8gJ3hcezAsMVx9JyB8IHRyIHggJ1wwMTUnYCAjIG9wdGlv biBjciBpbiByZWdleHAKLSsgIDs7Ci0rZXNhYwotKwotKyMgVHJ5IHdpdGhvdXQgYSBwcmVmaXgg dW5kZXJzY29yZSwgdGhlbiB3aXRoIGl0LgotK2ZvciBhY19zeW1wcmZ4IGluICIiICJfIjsgZG8K LSsKLSsgICMgVHJhbnNmb3JtIHN5bWNvZGUsIHN5bXBhdCwgYW5kIHN5bXByZnggaW50byBhIHJh dyBzeW1ib2wgYW5kIGEgQyBzeW1ib2wuCi0rICBzeW14ZnJtPSJcXDEgJGFjX3N5bXByZnhcXDIg XFwyIgotKwotKyAgIyBXcml0ZSB0aGUgcmF3IGFuZCBDIGlkZW50aWZpZXJzLgotKyAgaWYgdGVz dCAiJGx0X2N2X25tX2ludGVyZmFjZSIgPSAiTVMgZHVtcGJpbiI7IHRoZW4KLSsgICAgIyBGYWtl IGl0IGZvciBkdW1wYmluIGFuZCBzYXkgVCBmb3IgYW55IG5vbi1zdGF0aWMgZnVuY3Rpb24KLSsg ICAgIyBhbmQgRCBmb3IgYW55IGdsb2JhbCB2YXJpYWJsZS4KLSsgICAgIyBBbHNvIGZpbmQgQysr IGFuZCBfX2Zhc3RjYWxsIHN5bWJvbHMgZnJvbSBNU1ZDKyssCi0rICAgICMgd2hpY2ggc3RhcnQg d2l0aCBAIG9yID8uCi0rICAgIGx0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3BpcGU9IiRBV0sgWyci XAotKyIgICAgIHtsYXN0X3NlY3Rpb249c2VjdGlvbjsgc2VjdGlvbj1cJCAzfTsiXAotKyIgICAg IC9TZWN0aW9uIGxlbmd0aCAuKiNyZWxvY3MuKihwaWNrIGFueSkve2hpZGVbbGFzdF9zZWN0aW9u XT0xfTsiXAotKyIgICAgIFwkIDAhfi9FeHRlcm5hbCAqXHwve25leHR9OyJcCi0rIiAgICAgLyAw KyBVTkRFRiAve25leHR9OyAvIFVOREVGIFwoW158XVwpKigpL3tuZXh0fTsiXAotKyIgICAgIHtp ZihoaWRlW3NlY3Rpb25dKSBuZXh0fTsiXAotKyIgICAgIHtmPTB9OyBcJCAwfi9cKFwpLipcfC97 Zj0xfTsge3ByaW50ZiBmID8gXCJUIFwiIDogXCJEIFwifTsiXAotKyIgICAgIHtzcGxpdChcJCAw LCBhLCAvXHx8XHIvKTsgc3BsaXQoYVsyXSwgcyl9OyJcCi0rIiAgICAgc1sxXX4vXltAP10ve3By aW50IHNbMV0sIHNbMV07IG5leHR9OyJcCi0rIiAgICAgc1sxXX5wcmZ4IHtzcGxpdChzWzFdLHQs XCJAXCIpOyBwcmludCB0WzFdLCBzdWJzdHIodFsxXSxsZW5ndGgocHJmeCkpfSJcCi0rIiAgICAg JyBwcmZ4PV4kYWNfc3ltcHJmeF0iCi0rICBlbHNlCi0rICAgIGx0X2N2X3N5c19nbG9iYWxfc3lt Ym9sX3BpcGU9InNlZCAtbiAtZSAncy9eLipbWwkgXV1cKCRzeW1jb2RlJHN5bWNvZGUqXClbWwkg XV1bWwkgXV0qJGFjX3N5bXByZngkc3ltcGF0JG9wdF9jciQvJHN5bXhmcm0vcCciCi0rICBmaQot KwotKyAgIyBDaGVjayB0byBzZWUgdGhhdCB0aGUgcGlwZSB3b3JrcyBjb3JyZWN0bHkuCi0rICBw aXBlX3dvcmtzPW5vCi0rCi0rICBybSAtZiBjb25mdGVzdCoKLSsgIGNhdCA+IGNvbmZ0ZXN0LiRh Y19leHQgPDxfTFRfRU9GCi0rI2lmZGVmIF9fY3BsdXNwbHVzCi0rZXh0ZXJuICJDIiB7Ci0rI2Vu ZGlmCi0rY2hhciBubV90ZXN0X3ZhcjsKLSt2b2lkIG5tX3Rlc3RfZnVuYyh2b2lkKTsKLSt2b2lk IG5tX3Rlc3RfZnVuYyh2b2lkKXt9Ci0rI2lmZGVmIF9fY3BsdXNwbHVzCi0rfQotKyNlbmRpZgot K2ludCBtYWluKCl7bm1fdGVzdF92YXI9J2EnO25tX3Rlc3RfZnVuYygpO3JldHVybigwKTt9Ci0r X0xUX0VPRgotKwotKyAgaWYgQUNfVFJZX0VWQUwoYWNfY29tcGlsZSk7IHRoZW4KLSsgICAgIyBO b3cgdHJ5IHRvIGdyYWIgdGhlIHN5bWJvbHMuCi0rICAgIG5saXN0PWNvbmZ0ZXN0Lm5tCi0rICAg IGlmIEFDX1RSWV9FVkFMKE5NIGNvbmZ0ZXN0LiRhY19vYmpleHQgXHwgJGx0X2N2X3N5c19nbG9i YWxfc3ltYm9sX3BpcGUgXD4gJG5saXN0KSAmJiB0ZXN0IC1zICIkbmxpc3QiOyB0aGVuCi0rICAg ICAgIyBUcnkgc29ydGluZyBhbmQgdW5pcXVpZnlpbmcgdGhlIG91dHB1dC4KLSsgICAgICBpZiBz b3J0ICIkbmxpc3QiIHwgdW5pcSA+ICIkbmxpc3QiVDsgdGhlbgotKwltdiAtZiAiJG5saXN0IlQg IiRubGlzdCIKLSsgICAgICBlbHNlCi0rCXJtIC1mICIkbmxpc3QiVAotKyAgICAgIGZpCi0rCi0r ICAgICAgIyBNYWtlIHN1cmUgdGhhdCB3ZSBzbmFnZ2VkIGFsbCB0aGUgc3ltYm9scyB3ZSBuZWVk LgotKyAgICAgIGlmICRHUkVQICcgbm1fdGVzdF92YXIkJyAiJG5saXN0IiA+L2Rldi9udWxsOyB0 aGVuCi0rCWlmICRHUkVQICcgbm1fdGVzdF9mdW5jJCcgIiRubGlzdCIgPi9kZXYvbnVsbDsgdGhl bgotKwkgIGNhdCA8PF9MVF9FT0YgPiBjb25mdGVzdC4kYWNfZXh0Ci0rI2lmZGVmIF9fY3BsdXNw bHVzCi0rZXh0ZXJuICJDIiB7Ci0rI2VuZGlmCi0rCi0rX0xUX0VPRgotKwkgICMgTm93IGdlbmVy YXRlIHRoZSBzeW1ib2wgZmlsZS4KLSsJICBldmFsICIkbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xf dG9fY2RlY2wiJyA8ICIkbmxpc3QiIHwgJEdSRVAgLXYgbWFpbiA+PiBjb25mdGVzdC4kYWNfZXh0 JwotKwotKwkgIGNhdCA8PF9MVF9FT0YgPj4gY29uZnRlc3QuJGFjX2V4dAotKwotKy8qIFRoZSBt YXBwaW5nIGJldHdlZW4gc3ltYm9sIG5hbWVzIGFuZCBzeW1ib2xzLiAgKi8KLStjb25zdCBzdHJ1 Y3QgewotKyAgY29uc3QgY2hhciAqbmFtZTsKLSsgIHZvaWQgICAgICAgKmFkZHJlc3M7Ci0rfQot K2x0X19QUk9HUkFNX19MVFhfcHJlbG9hZGVkX3N5bWJvbHNbW11dID0KLSt7Ci0rICB7ICJAUFJP R1JBTUAiLCAodm9pZCAqKSAwIH0sCi0rX0xUX0VPRgotKwkgICRTRUQgInMvXiRzeW1jb2RlJHN5 bWNvZGUqIFwoLipcKSBcKC4qXCkkLyAge1wiXDJcIiwgKHZvaWQgKikgXCZcMn0sLyIgPCAiJG5s aXN0IiB8ICRHUkVQIC12IG1haW4gPj4gY29uZnRlc3QuJGFjX2V4dAotKwkgIGNhdCA8PFxfTFRf RU9GID4+IGNvbmZ0ZXN0LiRhY19leHQKLSsgIHswLCAodm9pZCAqKSAwfQotK307Ci0rCi0rLyog VGhpcyB3b3JrcyBhcm91bmQgYSBwcm9ibGVtIGluIEZyZWVCU0QgbGlua2VyICovCi0rI2lmZGVm IEZSRUVCU0RfV09SS0FST1VORAotK3N0YXRpYyBjb25zdCB2b2lkICpsdF9wcmVsb2FkZWRfc2V0 dXAoKSB7Ci0rICByZXR1cm4gbHRfX1BST0dSQU1fX0xUWF9wcmVsb2FkZWRfc3ltYm9sczsKLSt9 Ci0rI2VuZGlmCi0rCi0rI2lmZGVmIF9fY3BsdXNwbHVzCi0rfQotKyNlbmRpZgotK19MVF9FT0YK LSsJICAjIE5vdyB0cnkgbGlua2luZyB0aGUgdHdvIGZpbGVzLgotKwkgIG12IGNvbmZ0ZXN0LiRh Y19vYmpleHQgY29uZnRzdG0uJGFjX29iamV4dAotKwkgIGx0X3NhdmVfTElCUz0iJExJQlMiCi0r CSAgbHRfc2F2ZV9DRkxBR1M9IiRDRkxBR1MiCi0rCSAgTElCUz0iY29uZnRzdG0uJGFjX29iamV4 dCIKLSsJICBDRkxBR1M9IiRDRkxBR1MkX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX25vX2J1 aWx0aW5fZmxhZywgJDEpIgotKwkgIGlmIEFDX1RSWV9FVkFMKGFjX2xpbmspICYmIHRlc3QgLXMg Y29uZnRlc3Qke2FjX2V4ZWV4dH07IHRoZW4KLSsJICAgIHBpcGVfd29ya3M9eWVzCi0rCSAgZmkK LSsJICBMSUJTPSIkbHRfc2F2ZV9MSUJTIgotKwkgIENGTEFHUz0iJGx0X3NhdmVfQ0ZMQUdTIgot KwllbHNlCi0rCSAgZWNobyAiY2Fubm90IGZpbmQgbm1fdGVzdF9mdW5jIGluICRubGlzdCIgPiZB U19NRVNTQUdFX0xPR19GRAotKwlmaQotKyAgICAgIGVsc2UKLSsJZWNobyAiY2Fubm90IGZpbmQg bm1fdGVzdF92YXIgaW4gJG5saXN0IiA+JkFTX01FU1NBR0VfTE9HX0ZECi0rICAgICAgZmkKLSsg ICAgZWxzZQotKyAgICAgIGVjaG8gImNhbm5vdCBydW4gJGx0X2N2X3N5c19nbG9iYWxfc3ltYm9s X3BpcGUiID4mQVNfTUVTU0FHRV9MT0dfRkQKLSsgICAgZmkKLSsgIGVsc2UKLSsgICAgZWNobyAi JHByb2duYW1lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JkFTX01FU1NBR0VfTE9HX0ZECi0rICAg IGNhdCBjb25mdGVzdC4kYWNfZXh0ID4mNQotKyAgZmkKLSsgIHJtIC1yZiBjb25mdGVzdCogY29u ZnRzdCoKLSsKLSsgICMgRG8gbm90IHVzZSB0aGUgZ2xvYmFsX3N5bWJvbF9waXBlIHVubGVzcyBp dCB3b3Jrcy4KLSsgIGlmIHRlc3QgIiRwaXBlX3dvcmtzIiA9IHllczsgdGhlbgotKyAgICBicmVh awotKyAgZWxzZQotKyAgICBsdF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF9waXBlPQotKyAgZmkKLStk b25lCi0rXSkKLStpZiB0ZXN0IC16ICIkbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfcGlwZSI7IHRo ZW4KLSsgIGx0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3RvX2NkZWNsPQotK2ZpCi0raWYgdGVzdCAt eiAiJGx0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3BpcGUkbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xf dG9fY2RlY2wiOyB0aGVuCi0rICBBQ19NU0dfUkVTVUxUKGZhaWxlZCkKLStlbHNlCi0rICBBQ19N U0dfUkVTVUxUKG9rKQotK2ZpCi0rCi0rX0xUX0RFQ0woW2dsb2JhbF9zeW1ib2xfcGlwZV0sIFts dF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF9waXBlXSwgWzFdLAotKyAgICBbVGFrZSB0aGUgb3V0cHV0 IG9mIG5tIGFuZCBwcm9kdWNlIGEgbGlzdGluZyBvZiByYXcgc3ltYm9scyBhbmQgQyBuYW1lc10p Ci0rX0xUX0RFQ0woW2dsb2JhbF9zeW1ib2xfdG9fY2RlY2xdLCBbbHRfY3Zfc3lzX2dsb2JhbF9z eW1ib2xfdG9fY2RlY2xdLCBbMV0sCi0rICAgIFtUcmFuc2Zvcm0gdGhlIG91dHB1dCBvZiBubSBp biBhIHByb3BlciBDIGRlY2xhcmF0aW9uXSkKLStfTFRfREVDTChbZ2xvYmFsX3N5bWJvbF90b19j X25hbWVfYWRkcmVzc10sCi0rICAgIFtsdF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF90b19jX25hbWVf YWRkcmVzc10sIFsxXSwKLSsgICAgW1RyYW5zZm9ybSB0aGUgb3V0cHV0IG9mIG5tIGluIGEgQyBu YW1lIGFkZHJlc3MgcGFpcl0pCi0rX0xUX0RFQ0woW2dsb2JhbF9zeW1ib2xfdG9fY19uYW1lX2Fk ZHJlc3NfbGliX3ByZWZpeF0sCi0rICAgIFtsdF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF90b19jX25h bWVfYWRkcmVzc19saWJfcHJlZml4XSwgWzFdLAotKyAgICBbVHJhbnNmb3JtIHRoZSBvdXRwdXQg b2Ygbm0gaW4gYSBDIG5hbWUgYWRkcmVzcyBwYWlyIHdoZW4gbGliIHByZWZpeCBpcyBuZWVkZWRd KQotK10pICMgX0xUX0NNRF9HTE9CQUxfU1lNQk9MUwotKwotKwotKyMgX0xUX0NPTVBJTEVSX1BJ QyhbVEFHTkFNRV0pCi0rIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSttNF9kZWZ1bihb X0xUX0NPTVBJTEVSX1BJQ10sCi0rW200X3JlcXVpcmUoW19MVF9UQUdfQ09NUElMRVJdKWRubAot K19MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl93bCwgJDEpPQotK19MVF9UQUdWQVIobHRfcHJv Z19jb21waWxlcl9waWMsICQxKT0KLStfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfc3RhdGlj LCAkMSk9Ci0rCi0rQUNfTVNHX0NIRUNLSU5HKFtmb3IgJGNvbXBpbGVyIG9wdGlvbiB0byBwcm9k dWNlIFBJQ10pCi0rbTRfaWYoWyQxXSwgW0NYWF0sIFsKLSsgICMgQysrIHNwZWNpZmljIGNhc2Vz IGZvciBwaWMsIHN0YXRpYywgd2wsIGV0Yy4KLSsgIGlmIHRlc3QgIiRHWFgiID0geWVzOyB0aGVu Ci0rICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl93bCwgJDEpPSctV2wsJwotKyAgICBf TFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfc3RhdGljLCAkMSk9Jy1zdGF0aWMnCi0rCi0rICAg IGNhc2UgJGhvc3Rfb3MgaW4KLSsgICAgYWl4KikKLSsgICAgICAjIEFsbCBBSVggY29kZSBpcyBQ SUMuCi0rICAgICAgaWYgdGVzdCAiJGhvc3RfY3B1IiA9IGlhNjQ7IHRoZW4KLSsJIyBBSVggNSBu b3cgc3VwcG9ydHMgSUE2NCBwcm9jZXNzb3IKLSsJX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVy X3N0YXRpYywgJDEpPSctQnN0YXRpYycKLSsgICAgICBmaQotKyAgICAgIDs7Ci0rCi0rICAgIGFt aWdhb3MqKQotKyAgICAgIGNhc2UgJGhvc3RfY3B1IGluCi0rICAgICAgcG93ZXJwYykKLSsgICAg ICAgICAgICAjIHNlZSBjb21tZW50IGFib3V0IEFtaWdhT1M0IC5zbyBzdXBwb3J0Ci0rICAgICAg ICAgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPSctZlBJQycKLSsgICAg ICAgIDs7Ci0rICAgICAgbTY4aykKLSsgICAgICAgICAgICAjIEZJWE1FOiB3ZSBuZWVkIGF0IGxl YXN0IDY4MDIwIGNvZGUgdG8gYnVpbGQgc2hhcmVkIGxpYnJhcmllcywgYnV0Ci0rICAgICAgICAg ICAgIyBhZGRpbmcgdGhlIGAtbTY4MDIwJyBmbGFnIHRvIEdDQyBwcmV2ZW50cyBidWlsZGluZyBh bnl0aGluZyBiZXR0ZXIsCi0rICAgICAgICAgICAgIyBsaWtlIGAtbTY4MDQwJy4KLSsgICAgICAg ICAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9Jy1tNjgwMjAgLXJlc2lk ZW50MzIgLW1hbHdheXMtcmVzdG9yZS1hNCcKLSsgICAgICAgIDs7Ci0rICAgICAgZXNhYwotKyAg ICAgIDs7Ci0rCi0rICAgIGJlb3MqIHwgaXJpeDUqIHwgaXJpeDYqIHwgbm9uc3RvcHV4KiB8IG9z ZjMqIHwgb3NmNCogfCBvc2Y1KikKLSsgICAgICAjIFBJQyBpcyB0aGUgZGVmYXVsdCBmb3IgdGhl c2UgT1Nlcy4KLSsgICAgICA7OwotKyAgICBtaW5ndyogfCBjeWd3aW4qIHwgb3MyKiB8IHB3MzIq IHwgY2VnY2MqKQotKyAgICAgICMgVGhpcyBoYWNrIGlzIHNvIHRoYXQgdGhlIHNvdXJjZSBmaWxl IGNhbiB0ZWxsIHdoZXRoZXIgaXQgaXMgYmVpbmcKLSsgICAgICAjIGJ1aWx0IGZvciBpbmNsdXNp b24gaW4gYSBkbGwgKGFuZCBzaG91bGQgZXhwb3J0IHN5bWJvbHMgZm9yIGV4YW1wbGUpLgotKyAg ICAgICMgQWx0aG91Z2ggdGhlIGN5Z3dpbiBnY2MgaWdub3JlcyAtZlBJQywgc3RpbGwgbmVlZCB0 aGlzIGZvciBvbGQtc3R5bGUKLSsgICAgICAjICgtLWRpc2FibGUtYXV0by1pbXBvcnQpIGxpYnJh cmllcwotKyAgICAgIG00X2lmKFskMV0sIFtHQ0pdLCBbXSwKLSsJW19MVF9UQUdWQVIobHRfcHJv Z19jb21waWxlcl9waWMsICQxKT0nLURETExfRVhQT1JUJ10pCi0rICAgICAgOzsKLSsgICAgZGFy d2luKiB8IHJoYXBzb2R5KikKLSsgICAgICAjIFBJQyBpcyB0aGUgZGVmYXVsdCBvbiB0aGlzIHBs YXRmb3JtCi0rICAgICAgIyBDb21tb24gc3ltYm9scyBub3QgYWxsb3dlZCBpbiBNSF9EWUxJQiBm aWxlcwotKyAgICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0nLWZuby1j b21tb24nCi0rICAgICAgOzsKLSsgICAgKmRqZ3BwKikKLSsgICAgICAjIERKR1BQIGRvZXMgbm90 IHN1cHBvcnQgc2hhcmVkIGxpYnJhcmllcyBhdCBhbGwKLSsgICAgICBfTFRfVEFHVkFSKGx0X3By b2dfY29tcGlsZXJfcGljLCAkMSk9Ci0rICAgICAgOzsKLSsgICAgaW50ZXJpeFtbMy05XV0qKQot KyAgICAgICMgSW50ZXJpeCAzLnggZ2NjIC1mcGljLy1mUElDIG9wdGlvbnMgZ2VuZXJhdGUgYnJv a2VuIGNvZGUuCi0rICAgICAgIyBJbnN0ZWFkLCB3ZSByZWxvY2F0ZSBzaGFyZWQgbGlicmFyaWVz IGF0IHJ1bnRpbWUuCi0rICAgICAgOzsKLSsgICAgc3lzdjQqTVAqKQotKyAgICAgIGlmIHRlc3Qg LWQgL3Vzci9uZWM7IHRoZW4KLSsJX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEp PS1LY29uZm9ybV9waWMKLSsgICAgICBmaQotKyAgICAgIDs7Ci0rICAgIGhwdXgqKQotKyAgICAg ICMgUElDIGlzIHRoZSBkZWZhdWx0IGZvciA2NC1iaXQgUEEgSFAtVVgsIGJ1dCBub3QgZm9yIDMy LWJpdAotKyAgICAgICMgUEEgSFAtVVguICBPbiBJQTY0IEhQLVVYLCBQSUMgaXMgdGhlIGRlZmF1 bHQgYnV0IHRoZSBwaWMgZmxhZwotKyAgICAgICMgc2V0cyB0aGUgZGVmYXVsdCBUTFMgbW9kZWwg YW5kIGFmZmVjdHMgaW5saW5pbmcuCi0rICAgICAgY2FzZSAkaG9zdF9jcHUgaW4KLSsgICAgICBo cHBhKjY0KikKLSsJOzsKLSsgICAgICAqKQotKwlfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJf cGljLCAkMSk9Jy1mUElDJwotKwk7OwotKyAgICAgIGVzYWMKLSsgICAgICA7OwotKyAgICAqcW54 KiB8ICpudG8qKQotKyAgICAgICMgUU5YIHVzZXMgR05VIEMrKywgYnV0IG5lZWQgdG8gZGVmaW5l IC1zaGFyZWQgb3B0aW9uIHRvbywgb3RoZXJ3aXNlCi0rICAgICAgIyBpdCB3aWxsIGNvcmVkdW1w LgotKyAgICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0nLWZQSUMgLXNo YXJlZCcKLSsgICAgICA7OwotKyAgICAqKQotKyAgICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21w aWxlcl9waWMsICQxKT0nLWZQSUMnCi0rICAgICAgOzsKLSsgICAgZXNhYwotKyAgZWxzZQotKyAg ICBjYXNlICRob3N0X29zIGluCi0rICAgICAgYWl4W1s0LTldXSopCi0rCSMgQWxsIEFJWCBjb2Rl IGlzIFBJQy4KLSsJaWYgdGVzdCAiJGhvc3RfY3B1IiA9IGlhNjQ7IHRoZW4KLSsJICAjIEFJWCA1 IG5vdyBzdXBwb3J0cyBJQTY0IHByb2Nlc3NvcgotKwkgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21w aWxlcl9zdGF0aWMsICQxKT0nLUJzdGF0aWMnCi0rCWVsc2UKLSsJICBfTFRfVEFHVkFSKGx0X3By b2dfY29tcGlsZXJfc3RhdGljLCAkMSk9Jy1ibnNvIC1iSTovbGliL3N5c2NhbGxzLmV4cCcKLSsJ ZmkKLSsJOzsKLSsgICAgICBjaG9ydXMqKQotKwljYXNlICRjY19iYXNlbmFtZSBpbgotKwljeGNo NjgqKQotKwkgICMgR3JlZW4gSGlsbHMgQysrIENvbXBpbGVyCi0rCSAgIyBfTFRfVEFHVkFSKGx0 X3Byb2dfY29tcGlsZXJfc3RhdGljLCAkMSk9Ii0tbm9fYXV0b19pbnN0YW50aWF0aW9uIC11IF9f bWFpbiAtdSBfX3ByZW1haW4gLXUgX2Fib3J0IC1yICRDT09MX0RJUi9saWIvbGliT3JiLmEgJE1W TUVfRElSL2xpYi9DQy9saWJDLmEgJE1WTUVfRElSL2xpYi9jbGFzc2l4L2xpYmN4LnMuYSIKLSsJ ICA7OwotKwllc2FjCi0rCTs7Ci0rICAgICAgZGd1eCopCi0rCWNhc2UgJGNjX2Jhc2VuYW1lIGlu Ci0rCSAgZWMrKyopCi0rCSAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9 Jy1LUElDJwotKwkgICAgOzsKLSsJICBnaGN4KikKLSsJICAgICMgR3JlZW4gSGlsbHMgQysrIENv bXBpbGVyCi0rCSAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9Jy1waWMn Ci0rCSAgICA7OwotKwkgICopCi0rCSAgICA7OwotKwllc2FjCi0rCTs7Ci0rICAgICAgZnJlZWJz ZCogfCBkcmFnb25mbHkqKQotKwkjIEZyZWVCU0QgdXNlcyBHTlUgQysrCi0rCTs7Ci0rICAgICAg aHB1eDkqIHwgaHB1eDEwKiB8IGhwdXgxMSopCi0rCWNhc2UgJGNjX2Jhc2VuYW1lIGluCi0rCSAg Q0MqKQotKwkgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3dsLCAkMSk9Jy1XbCwnCi0r CSAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfc3RhdGljLCAkMSk9JyR7d2x9LWEgJHt3 bH1hcmNoaXZlJwotKwkgICAgaWYgdGVzdCAiJGhvc3RfY3B1IiAhPSBpYTY0OyB0aGVuCi0rCSAg ICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0nK1onCi0rCSAgICBmaQot KwkgICAgOzsKLSsJICBhQ0MqKQotKwkgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3ds LCAkMSk9Jy1XbCwnCi0rCSAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfc3RhdGljLCAk MSk9JyR7d2x9LWEgJHt3bH1hcmNoaXZlJwotKwkgICAgY2FzZSAkaG9zdF9jcHUgaW4KLSsJICAg IGhwcGEqNjQqfGlhNjQqKQotKwkgICAgICAjICtaIHRoZSBkZWZhdWx0Ci0rCSAgICAgIDs7Ci0r CSAgICAqKQotKwkgICAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9Jyta JwotKwkgICAgICA7OwotKwkgICAgZXNhYwotKwkgICAgOzsKLSsJICAqKQotKwkgICAgOzsKLSsJ ZXNhYwotKwk7OwotKyAgICAgIGludGVyaXgqKQotKwkjIFRoaXMgaXMgYzg5LCB3aGljaCBpcyBN UyBWaXN1YWwgQysrIChubyBzaGFyZWQgbGlicykKLSsJIyBBbnlvbmUgd2FudHMgdG8gZG8gYSBw b3J0PwotKwk7OwotKyAgICAgIGlyaXg1KiB8IGlyaXg2KiB8IG5vbnN0b3B1eCopCi0rCWNhc2Ug JGNjX2Jhc2VuYW1lIGluCi0rCSAgQ0MqKQotKwkgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBp bGVyX3dsLCAkMSk9Jy1XbCwnCi0rCSAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfc3Rh dGljLCAkMSk9Jy1ub25fc2hhcmVkJwotKwkgICAgIyBDQyBwaWMgZmxhZyAtS1BJQyBpcyB0aGUg ZGVmYXVsdC4KLSsJICAgIDs7Ci0rCSAgKikKLSsJICAgIDs7Ci0rCWVzYWMKLSsJOzsKLSsgICAg ICBsaW51eCogfCBrKmJzZCotZ251KQotKwljYXNlICRjY19iYXNlbmFtZSBpbgotKwkgIEtDQyop Ci0rCSAgICAjIEtBSSBDKysgQ29tcGlsZXIKLSsJICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21w aWxlcl93bCwgJDEpPSctLWJhY2tlbmQgLVdsLCcKLSsJICAgIF9MVF9UQUdWQVIobHRfcHJvZ19j b21waWxlcl9waWMsICQxKT0nLWZQSUMnCi0rCSAgICA7OwotKwkgIGVjcGMqICkKLSsJICAgICMg b2xkIEludGVsIEMrKyBmb3IgeDg2XzY0IHdoaWNoIHN0aWxsIHN1cHBvcnRlZCAtS1BJQy4KLSsJ ICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl93bCwgJDEpPSctV2wsJwotKwkgICAgX0xU X1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPSctS1BJQycKLSsJICAgIF9MVF9UQUdW QVIobHRfcHJvZ19jb21waWxlcl9zdGF0aWMsICQxKT0nLXN0YXRpYycKLSsJICAgIDs7Ci0rCSAg aWNwYyogKQotKwkgICAgIyBJbnRlbCBDKyssIHVzZWQgdG8gYmUgaW5jb21wYXRpYmxlIHdpdGgg R0NDLgotKwkgICAgIyBJQ0MgMTAgZG9lc24ndCBhY2NlcHQgLUtQSUMgYW55IG1vcmUuCi0rCSAg ICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfd2wsICQxKT0nLVdsLCcKLSsJICAgIF9MVF9U QUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0nLWZQSUMnCi0rCSAgICBfTFRfVEFHVkFS KGx0X3Byb2dfY29tcGlsZXJfc3RhdGljLCAkMSk9Jy1zdGF0aWMnCi0rCSAgICA7OwotKwkgIHBn Q0MqIHwgcGdjcHAqKQotKwkgICAgIyBQb3J0bGFuZCBHcm91cCBDKysgY29tcGlsZXIKLSsJICAg IF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl93bCwgJDEpPSctV2wsJwotKwkgICAgX0xUX1RB R1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPSctZnBpYycKLSsJICAgIF9MVF9UQUdWQVIo bHRfcHJvZ19jb21waWxlcl9zdGF0aWMsICQxKT0nLUJzdGF0aWMnCi0rCSAgICA7OwotKwkgIGN4 eCopCi0rCSAgICAjIENvbXBhcSBDKysKLSsJICAgICMgTWFrZSBzdXJlIHRoZSBQSUMgZmxhZyBp cyBlbXB0eS4gIEl0IGFwcGVhcnMgdGhhdCBhbGwgQWxwaGEKLSsJICAgICMgTGludXggYW5kIENv bXBhcSBUcnU2NCBVbml4IG9iamVjdHMgYXJlIFBJQy4KLSsJICAgIF9MVF9UQUdWQVIobHRfcHJv Z19jb21waWxlcl9waWMsICQxKT0KLSsJICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9z dGF0aWMsICQxKT0nLW5vbl9zaGFyZWQnCi0rCSAgICA7OwotKwkgIHhsYyogfCB4bEMqKQotKwkg ICAgIyBJQk0gWEwgOC4wIG9uIFBQQwotKwkgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVy X3dsLCAkMSk9Jy1XbCwnCi0rCSAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAk MSk9Jy1xcGljJwotKwkgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYywgJDEp PSctcXN0YXRpY2xpbmsnCi0rCSAgICA7OwotKwkgICopCi0rCSAgICBjYXNlIGAkQ0MgLVYgMj4m MSB8IHNlZCA1cWAgaW4KLSsJICAgICpTdW5cIEMqKQotKwkgICAgICAjIFN1biBDKysgNS45Ci0r CSAgICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0nLUtQSUMnCi0rCSAg ICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9zdGF0aWMsICQxKT0nLUJzdGF0aWMnCi0r CSAgICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl93bCwgJDEpPSctUW9wdGlvbiBsZCAn Ci0rCSAgICAgIDs7Ci0rCSAgICBlc2FjCi0rCSAgICA7OwotKwllc2FjCi0rCTs7Ci0rICAgICAg bHlueG9zKikKLSsJOzsKLSsgICAgICBtODhrKikKLSsJOzsKLSsgICAgICBtdnMqKQotKwljYXNl ICRjY19iYXNlbmFtZSBpbgotKwkgIGN4eCopCi0rCSAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29t cGlsZXJfcGljLCAkMSk9Jy1XIGMsZXhwb3J0YWxsJwotKwkgICAgOzsKLSsJICAqKQotKwkgICAg OzsKLSsJZXNhYwotKwk7OwotKyAgICAgIG5ldGJzZCopCi0rCTs7Ci0rICAgICAgKnFueCogfCAq bnRvKikKLSsgICAgICAgICMgUU5YIHVzZXMgR05VIEMrKywgYnV0IG5lZWQgdG8gZGVmaW5lIC1z aGFyZWQgb3B0aW9uIHRvbywgb3RoZXJ3aXNlCi0rICAgICAgICAjIGl0IHdpbGwgY29yZWR1bXAu Ci0rICAgICAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9Jy1mUElDIC1z aGFyZWQnCi0rICAgICAgICA7OwotKyAgICAgIG9zZjMqIHwgb3NmNCogfCBvc2Y1KikKLSsJY2Fz ZSAkY2NfYmFzZW5hbWUgaW4KLSsJICBLQ0MqKQotKwkgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2Nv bXBpbGVyX3dsLCAkMSk9Jy0tYmFja2VuZCAtV2wsJwotKwkgICAgOzsKLSsJICBSQ0MqKQotKwkg ICAgIyBSYXRpb25hbCBDKysgMi40LjEKLSsJICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxl cl9waWMsICQxKT0nLXBpYycKLSsJICAgIDs7Ci0rCSAgY3h4KikKLSsJICAgICMgRGlnaXRhbC9D b21wYXEgQysrCi0rCSAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfd2wsICQxKT0nLVds LCcKLSsJICAgICMgTWFrZSBzdXJlIHRoZSBQSUMgZmxhZyBpcyBlbXB0eS4gIEl0IGFwcGVhcnMg dGhhdCBhbGwgQWxwaGEKLSsJICAgICMgTGludXggYW5kIENvbXBhcSBUcnU2NCBVbml4IG9iamVj dHMgYXJlIFBJQy4KLSsJICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0K LSsJICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9zdGF0aWMsICQxKT0nLW5vbl9zaGFy ZWQnCi0rCSAgICA7OwotKwkgICopCi0rCSAgICA7OwotKwllc2FjCi0rCTs7Ci0rICAgICAgcHNv cyopCi0rCTs7Ci0rICAgICAgc29sYXJpcyopCi0rCWNhc2UgJGNjX2Jhc2VuYW1lIGluCi0rCSAg Q0MqKQotKwkgICAgIyBTdW4gQysrIDQuMiwgNS54IGFuZCBDZW50ZXJsaW5lIEMrKwotKwkgICAg X0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPSctS1BJQycKLSsJICAgIF9MVF9U QUdWQVIobHRfcHJvZ19jb21waWxlcl9zdGF0aWMsICQxKT0nLUJzdGF0aWMnCi0rCSAgICBfTFRf VEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfd2wsICQxKT0nLVFvcHRpb24gbGQgJwotKwkgICAgOzsK LSsJICBnY3gqKQotKwkgICAgIyBHcmVlbiBIaWxscyBDKysgQ29tcGlsZXIKLSsJICAgIF9MVF9U QUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0nLVBJQycKLSsJICAgIDs7Ci0rCSAgKikK LSsJICAgIDs7Ci0rCWVzYWMKLSsJOzsKLSsgICAgICBzdW5vczQqKQotKwljYXNlICRjY19iYXNl bmFtZSBpbgotKwkgIENDKikKLSsJICAgICMgU3VuIEMrKyA0LngKLSsJICAgIF9MVF9UQUdWQVIo bHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0nLXBpYycKLSsJICAgIF9MVF9UQUdWQVIobHRfcHJv Z19jb21waWxlcl9zdGF0aWMsICQxKT0nLUJzdGF0aWMnCi0rCSAgICA7OwotKwkgIGxjYyopCi0r CSAgICAjIEx1Y2lkCi0rCSAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9 Jy1waWMnCi0rCSAgICA7OwotKwkgICopCi0rCSAgICA7OwotKwllc2FjCi0rCTs7Ci0rICAgICAg c3lzdjUqIHwgdW5peHdhcmUqIHwgc2NvMy4ydjUqIHwgc2NvNXY2KiB8IE9wZW5VTklYKikKLSsJ Y2FzZSAkY2NfYmFzZW5hbWUgaW4KLSsJICBDQyopCi0rCSAgICBfTFRfVEFHVkFSKGx0X3Byb2df Y29tcGlsZXJfd2wsICQxKT0nLVdsLCcKLSsJICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxl cl9waWMsICQxKT0nLUtQSUMnCi0rCSAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfc3Rh dGljLCAkMSk9Jy1Cc3RhdGljJwotKwkgICAgOzsKLSsJZXNhYwotKwk7OwotKyAgICAgIHRhbmRl bSopCi0rCWNhc2UgJGNjX2Jhc2VuYW1lIGluCi0rCSAgTkNDKikKLSsJICAgICMgTm9uU3RvcC1V WCBOQ0MgMy4yMAotKwkgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPSct S1BJQycKLSsJICAgIDs7Ci0rCSAgKikKLSsJICAgIDs7Ci0rCWVzYWMKLSsJOzsKLSsgICAgICB2 eHdvcmtzKikKLSsJOzsKLSsgICAgICAqKQotKwlfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJf Y2FuX2J1aWxkX3NoYXJlZCwgJDEpPW5vCi0rCTs7Ci0rICAgIGVzYWMKLSsgIGZpCi0rXSwKLStb Ci0rICBpZiB0ZXN0ICIkR0NDIiA9IHllczsgdGhlbgotKyAgICBfTFRfVEFHVkFSKGx0X3Byb2df Y29tcGlsZXJfd2wsICQxKT0nLVdsLCcKLSsgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVy X3N0YXRpYywgJDEpPSctc3RhdGljJwotKwotKyAgICBjYXNlICRob3N0X29zIGluCi0rICAgICAg YWl4KikKLSsgICAgICAjIEFsbCBBSVggY29kZSBpcyBQSUMuCi0rICAgICAgaWYgdGVzdCAiJGhv c3RfY3B1IiA9IGlhNjQ7IHRoZW4KLSsJIyBBSVggNSBub3cgc3VwcG9ydHMgSUE2NCBwcm9jZXNz b3IKLSsJX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYywgJDEpPSctQnN0YXRpYycK LSsgICAgICBmaQotKyAgICAgIDs7Ci0rCi0rICAgIGFtaWdhb3MqKQotKyAgICAgIGNhc2UgJGhv c3RfY3B1IGluCi0rICAgICAgcG93ZXJwYykKLSsgICAgICAgICAgICAjIHNlZSBjb21tZW50IGFi b3V0IEFtaWdhT1M0IC5zbyBzdXBwb3J0Ci0rICAgICAgICAgICAgX0xUX1RBR1ZBUihsdF9wcm9n X2NvbXBpbGVyX3BpYywgJDEpPSctZlBJQycKLSsgICAgICAgIDs7Ci0rICAgICAgbTY4aykKLSsg ICAgICAgICAgICAjIEZJWE1FOiB3ZSBuZWVkIGF0IGxlYXN0IDY4MDIwIGNvZGUgdG8gYnVpbGQg c2hhcmVkIGxpYnJhcmllcywgYnV0Ci0rICAgICAgICAgICAgIyBhZGRpbmcgdGhlIGAtbTY4MDIw JyBmbGFnIHRvIEdDQyBwcmV2ZW50cyBidWlsZGluZyBhbnl0aGluZyBiZXR0ZXIsCi0rICAgICAg ICAgICAgIyBsaWtlIGAtbTY4MDQwJy4KLSsgICAgICAgICAgICBfTFRfVEFHVkFSKGx0X3Byb2df Y29tcGlsZXJfcGljLCAkMSk9Jy1tNjgwMjAgLXJlc2lkZW50MzIgLW1hbHdheXMtcmVzdG9yZS1h NCcKLSsgICAgICAgIDs7Ci0rICAgICAgZXNhYwotKyAgICAgIDs7Ci0rCi0rICAgIGJlb3MqIHwg aXJpeDUqIHwgaXJpeDYqIHwgbm9uc3RvcHV4KiB8IG9zZjMqIHwgb3NmNCogfCBvc2Y1KikKLSsg ICAgICAjIFBJQyBpcyB0aGUgZGVmYXVsdCBmb3IgdGhlc2UgT1Nlcy4KLSsgICAgICA7OwotKwot KyAgICBtaW5ndyogfCBjeWd3aW4qIHwgcHczMiogfCBvczIqIHwgY2VnY2MqKQotKyAgICAgICMg VGhpcyBoYWNrIGlzIHNvIHRoYXQgdGhlIHNvdXJjZSBmaWxlIGNhbiB0ZWxsIHdoZXRoZXIgaXQg aXMgYmVpbmcKLSsgICAgICAjIGJ1aWx0IGZvciBpbmNsdXNpb24gaW4gYSBkbGwgKGFuZCBzaG91 bGQgZXhwb3J0IHN5bWJvbHMgZm9yIGV4YW1wbGUpLgotKyAgICAgICMgQWx0aG91Z2ggdGhlIGN5 Z3dpbiBnY2MgaWdub3JlcyAtZlBJQywgc3RpbGwgbmVlZCB0aGlzIGZvciBvbGQtc3R5bGUKLSsg ICAgICAjICgtLWRpc2FibGUtYXV0by1pbXBvcnQpIGxpYnJhcmllcwotKyAgICAgIG00X2lmKFsk MV0sIFtHQ0pdLCBbXSwKLSsJW19MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0n LURETExfRVhQT1JUJ10pCi0rICAgICAgOzsKLSsKLSsgICAgZGFyd2luKiB8IHJoYXBzb2R5KikK LSsgICAgICAjIFBJQyBpcyB0aGUgZGVmYXVsdCBvbiB0aGlzIHBsYXRmb3JtCi0rICAgICAgIyBD b21tb24gc3ltYm9scyBub3QgYWxsb3dlZCBpbiBNSF9EWUxJQiBmaWxlcwotKyAgICAgIF9MVF9U QUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0nLWZuby1jb21tb24nCi0rICAgICAgOzsK LSsKLSsgICAgaHB1eCopCi0rICAgICAgIyBQSUMgaXMgdGhlIGRlZmF1bHQgZm9yIDY0LWJpdCBQ QSBIUC1VWCwgYnV0IG5vdCBmb3IgMzItYml0Ci0rICAgICAgIyBQQSBIUC1VWC4gIE9uIElBNjQg SFAtVVgsIFBJQyBpcyB0aGUgZGVmYXVsdCBidXQgdGhlIHBpYyBmbGFnCi0rICAgICAgIyBzZXRz IHRoZSBkZWZhdWx0IFRMUyBtb2RlbCBhbmQgYWZmZWN0cyBpbmxpbmluZy4KLSsgICAgICBjYXNl ICRob3N0X2NwdSBpbgotKyAgICAgIGhwcGEqNjQqKQotKwkjICtaIHRoZSBkZWZhdWx0Ci0rCTs7 Ci0rICAgICAgKikKLSsJX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPSctZlBJ QycKLSsJOzsKLSsgICAgICBlc2FjCi0rICAgICAgOzsKLSsKLSsgICAgaW50ZXJpeFtbMy05XV0q KQotKyAgICAgICMgSW50ZXJpeCAzLnggZ2NjIC1mcGljLy1mUElDIG9wdGlvbnMgZ2VuZXJhdGUg YnJva2VuIGNvZGUuCi0rICAgICAgIyBJbnN0ZWFkLCB3ZSByZWxvY2F0ZSBzaGFyZWQgbGlicmFy aWVzIGF0IHJ1bnRpbWUuCi0rICAgICAgOzsKLSsKLSsgICAgbXNkb3NkamdwcCopCi0rICAgICAg IyBKdXN0IGJlY2F1c2Ugd2UgdXNlIEdDQyBkb2Vzbid0IG1lYW4gd2Ugc3VkZGVubHkgZ2V0IHNo YXJlZCBsaWJyYXJpZXMKLSsgICAgICAjIG9uIHN5c3RlbXMgdGhhdCBkb24ndCBzdXBwb3J0IHRo ZW0uCi0rICAgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX2Nhbl9idWlsZF9zaGFyZWQs ICQxKT1ubwotKyAgICAgIGVuYWJsZV9zaGFyZWQ9bm8KLSsgICAgICA7OwotKwotKyAgICAqbnRv KiB8ICpxbngqKQotKyAgICAgICMgUU5YIHVzZXMgR05VIEMrKywgYnV0IG5lZWQgdG8gZGVmaW5l IC1zaGFyZWQgb3B0aW9uIHRvbywgb3RoZXJ3aXNlCi0rICAgICAgIyBpdCB3aWxsIGNvcmVkdW1w LgotKyAgICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0nLWZQSUMgLXNo YXJlZCcKLSsgICAgICA7OwotKwotKyAgICBzeXN2NCpNUCopCi0rICAgICAgaWYgdGVzdCAtZCAv dXNyL25lYzsgdGhlbgotKwlfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9LUtj b25mb3JtX3BpYwotKyAgICAgIGZpCi0rICAgICAgOzsKLSsKLSsgICAgKikKLSsgICAgICBfTFRf VEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9Jy1mUElDJwotKyAgICAgIDs7Ci0rICAg IGVzYWMKLSsgIGVsc2UKLSsgICAgIyBQT1JUTUUgQ2hlY2sgZm9yIGZsYWcgdG8gcGFzcyBsaW5r ZXIgZmxhZ3MgdGhyb3VnaCB0aGUgc3lzdGVtIGNvbXBpbGVyLgotKyAgICBjYXNlICRob3N0X29z IGluCi0rICAgIGFpeCopCi0rICAgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3dsLCAk MSk9Jy1XbCwnCi0rICAgICAgaWYgdGVzdCAiJGhvc3RfY3B1IiA9IGlhNjQ7IHRoZW4KLSsJIyBB SVggNSBub3cgc3VwcG9ydHMgSUE2NCBwcm9jZXNzb3IKLSsJX0xUX1RBR1ZBUihsdF9wcm9nX2Nv bXBpbGVyX3N0YXRpYywgJDEpPSctQnN0YXRpYycKLSsgICAgICBlbHNlCi0rCV9MVF9UQUdWQVIo bHRfcHJvZ19jb21waWxlcl9zdGF0aWMsICQxKT0nLWJuc28gLWJJOi9saWIvc3lzY2FsbHMuZXhw JwotKyAgICAgIGZpCi0rICAgICAgOzsKLSsKLSsgICAgbWluZ3cqIHwgY3lnd2luKiB8IHB3MzIq IHwgb3MyKiB8IGNlZ2NjKikKLSsgICAgICAjIFRoaXMgaGFjayBpcyBzbyB0aGF0IHRoZSBzb3Vy Y2UgZmlsZSBjYW4gdGVsbCB3aGV0aGVyIGl0IGlzIGJlaW5nCi0rICAgICAgIyBidWlsdCBmb3Ig aW5jbHVzaW9uIGluIGEgZGxsIChhbmQgc2hvdWxkIGV4cG9ydCBzeW1ib2xzIGZvciBleGFtcGxl KS4KLSsgICAgICBtNF9pZihbJDFdLCBbR0NKXSwgW10sCi0rCVtfTFRfVEFHVkFSKGx0X3Byb2df Y29tcGlsZXJfcGljLCAkMSk9Jy1ERExMX0VYUE9SVCddKQotKyAgICAgIDs7Ci0rCi0rICAgIGhw dXg5KiB8IGhwdXgxMCogfCBocHV4MTEqKQotKyAgICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21w aWxlcl93bCwgJDEpPSctV2wsJwotKyAgICAgICMgUElDIGlzIHRoZSBkZWZhdWx0IGZvciBJQTY0 IEhQLVVYIGFuZCA2NC1iaXQgSFAtVVgsIGJ1dAotKyAgICAgICMgbm90IGZvciBQQSBIUC1VWC4K LSsgICAgICBjYXNlICRob3N0X2NwdSBpbgotKyAgICAgIGhwcGEqNjQqfGlhNjQqKQotKwkjICta IHRoZSBkZWZhdWx0Ci0rCTs7Ci0rICAgICAgKikKLSsJX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBp bGVyX3BpYywgJDEpPScrWicKLSsJOzsKLSsgICAgICBlc2FjCi0rICAgICAgIyBJcyB0aGVyZSBh IGJldHRlciBsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYyB0aGF0IHdvcmtzIHdpdGggdGhlIGJ1bmRs ZWQgQ0M/Ci0rICAgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYywgJDEpPSck e3dsfS1hICR7d2x9YXJjaGl2ZScKLSsgICAgICA7OwotKwotKyAgICBpcml4NSogfCBpcml4Niog fCBub25zdG9wdXgqKQotKyAgICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl93bCwgJDEp PSctV2wsJwotKyAgICAgICMgUElDICh3aXRoIC1LUElDKSBpcyB0aGUgZGVmYXVsdC4KLSsgICAg ICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfc3RhdGljLCAkMSk9Jy1ub25fc2hhcmVkJwot KyAgICAgIDs7Ci0rCi0rICAgIGxpbnV4KiB8IGsqYnNkKi1nbnUpCi0rICAgICAgY2FzZSAkY2Nf YmFzZW5hbWUgaW4KLSsgICAgICAjIG9sZCBJbnRlbCBmb3IgeDg2XzY0IHdoaWNoIHN0aWxsIHN1 cHBvcnRlZCAtS1BJQy4KLSsgICAgICBlY2MqKQotKwlfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGls ZXJfd2wsICQxKT0nLVdsLCcKLSsJX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEp PSctS1BJQycKLSsJX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYywgJDEpPSctc3Rh dGljJwotKyAgICAgICAgOzsKLSsgICAgICAjIGljYyB1c2VkIHRvIGJlIGluY29tcGF0aWJsZSB3 aXRoIEdDQy4KLSsgICAgICAjIElDQyAxMCBkb2Vzbid0IGFjY2VwdCAtS1BJQyBhbnkgbW9yZS4K LSsgICAgICBpY2MqIHwgaWZvcnQqKQotKwlfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfd2ws ICQxKT0nLVdsLCcKLSsJX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPSctZlBJ QycKLSsJX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYywgJDEpPSctc3RhdGljJwot KyAgICAgICAgOzsKLSsgICAgICAjIExhaGV5IEZvcnRyYW4gOC4xLgotKyAgICAgIGxmOTUqKQot KwlfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfd2wsICQxKT0nLVdsLCcKLSsJX0xUX1RBR1ZB UihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPSctLXNoYXJlZCcKLSsJX0xUX1RBR1ZBUihsdF9w cm9nX2NvbXBpbGVyX3N0YXRpYywgJDEpPSctLXN0YXRpYycKLSsJOzsKLSsgICAgICBwZ2NjKiB8 IHBnZjc3KiB8IHBnZjkwKiB8IHBnZjk1KikKLSsgICAgICAgICMgUG9ydGxhbmQgR3JvdXAgY29t cGlsZXJzICgqbm90KiB0aGUgUGVudGl1bSBnY2MgY29tcGlsZXIsCi0rCSMgd2hpY2ggbG9va3Mg dG8gYmUgYSBkZWFkIHByb2plY3QpCi0rCV9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl93bCwg JDEpPSctV2wsJwotKwlfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9Jy1mcGlj JwotKwlfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfc3RhdGljLCAkMSk9Jy1Cc3RhdGljJwot KyAgICAgICAgOzsKLSsgICAgICBjY2MqKQotKyAgICAgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2Nv bXBpbGVyX3dsLCAkMSk9Jy1XbCwnCi0rICAgICAgICAjIEFsbCBBbHBoYSBjb2RlIGlzIFBJQy4K LSsgICAgICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9zdGF0aWMsICQxKT0nLW5vbl9z aGFyZWQnCi0rICAgICAgICA7OwotKyAgICAgIHhsKikKLSsJIyBJQk0gWEwgQyA4LjAvRm9ydHJh biAxMC4xIG9uIFBQQwotKwlfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfd2wsICQxKT0nLVds LCcKLSsJX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPSctcXBpYycKLSsJX0xU X1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYywgJDEpPSctcXN0YXRpY2xpbmsnCi0rCTs7 Ci0rICAgICAgKikKLSsJY2FzZSBgJENDIC1WIDI+JjEgfCBzZWQgNXFgIGluCi0rCSpTdW5cIEMq KQotKwkgICMgU3VuIEMgNS45Ci0rCSAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywg JDEpPSctS1BJQycKLSsJICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfc3RhdGljLCAkMSk9 Jy1Cc3RhdGljJwotKwkgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl93bCwgJDEpPSctV2ws JwotKwkgIDs7Ci0rCSpTdW5cIEYqKQotKwkgICMgU3VuIEZvcnRyYW4gOC4zIHBhc3NlcyBhbGwg dW5yZWNvZ25pemVkIGZsYWdzIHRvIHRoZSBsaW5rZXIKLSsJICBfTFRfVEFHVkFSKGx0X3Byb2df Y29tcGlsZXJfcGljLCAkMSk9Jy1LUElDJwotKwkgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxl cl9zdGF0aWMsICQxKT0nLUJzdGF0aWMnCi0rCSAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVy X3dsLCAkMSk9JycKLSsJICA7OwotKwllc2FjCi0rCTs7Ci0rICAgICAgZXNhYwotKyAgICAgIDs7 Ci0rCi0rICAgIG5ld3NvczYpCi0rICAgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3Bp YywgJDEpPSctS1BJQycKLSsgICAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfc3RhdGlj LCAkMSk9Jy1Cc3RhdGljJwotKyAgICAgIDs7Ci0rCi0rICAgICpudG8qIHwgKnFueCopCi0rICAg ICAgIyBRTlggdXNlcyBHTlUgQysrLCBidXQgbmVlZCB0byBkZWZpbmUgLXNoYXJlZCBvcHRpb24g dG9vLCBvdGhlcndpc2UKLSsgICAgICAjIGl0IHdpbGwgY29yZWR1bXAuCi0rICAgICAgX0xUX1RB R1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPSctZlBJQyAtc2hhcmVkJwotKyAgICAgIDs7 Ci0rCi0rICAgIG9zZjMqIHwgb3NmNCogfCBvc2Y1KikKLSsgICAgICBfTFRfVEFHVkFSKGx0X3By b2dfY29tcGlsZXJfd2wsICQxKT0nLVdsLCcKLSsgICAgICAjIEFsbCBPU0YvMSBjb2RlIGlzIFBJ Qy4KLSsgICAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfc3RhdGljLCAkMSk9Jy1ub25f c2hhcmVkJwotKyAgICAgIDs7Ci0rCi0rICAgIHJkb3MqKQotKyAgICAgIF9MVF9UQUdWQVIobHRf cHJvZ19jb21waWxlcl9zdGF0aWMsICQxKT0nLW5vbl9zaGFyZWQnCi0rICAgICAgOzsKLSsKLSsg ICAgc29sYXJpcyopCi0rICAgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEp PSctS1BJQycKLSsgICAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfc3RhdGljLCAkMSk9 Jy1Cc3RhdGljJwotKyAgICAgIGNhc2UgJGNjX2Jhc2VuYW1lIGluCi0rICAgICAgZjc3KiB8IGY5 MCogfCBmOTUqKQotKwlfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfd2wsICQxKT0nLVFvcHRp b24gbGQgJzs7Ci0rICAgICAgKikKLSsJX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3dsLCAk MSk9Jy1XbCwnOzsKLSsgICAgICBlc2FjCi0rICAgICAgOzsKLSsKLSsgICAgc3Vub3M0KikKLSsg ICAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfd2wsICQxKT0nLVFvcHRpb24gbGQgJwot KyAgICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0nLVBJQycKLSsgICAg ICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfc3RhdGljLCAkMSk9Jy1Cc3RhdGljJwotKyAg ICAgIDs7Ci0rCi0rICAgIHN5c3Y0IHwgc3lzdjQuMnV3MiogfCBzeXN2NC4zKikKLSsgICAgICBf TFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfd2wsICQxKT0nLVdsLCcKLSsgICAgICBfTFRfVEFH VkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9Jy1LUElDJwotKyAgICAgIF9MVF9UQUdWQVIo bHRfcHJvZ19jb21waWxlcl9zdGF0aWMsICQxKT0nLUJzdGF0aWMnCi0rICAgICAgOzsKLSsKLSsg ICAgc3lzdjQqTVAqKQotKyAgICAgIGlmIHRlc3QgLWQgL3Vzci9uZWMgO3RoZW4KLSsJX0xUX1RB R1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPSctS2NvbmZvcm1fcGljJwotKwlfTFRfVEFH VkFSKGx0X3Byb2dfY29tcGlsZXJfc3RhdGljLCAkMSk9Jy1Cc3RhdGljJwotKyAgICAgIGZpCi0r ICAgICAgOzsKLSsKLSsgICAgc3lzdjUqIHwgdW5peHdhcmUqIHwgc2NvMy4ydjUqIHwgc2NvNXY2 KiB8IE9wZW5VTklYKikKLSsgICAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfd2wsICQx KT0nLVdsLCcKLSsgICAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9Jy1L UElDJwotKyAgICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9zdGF0aWMsICQxKT0nLUJz dGF0aWMnCi0rICAgICAgOzsKLSsKLSsgICAgdW5pY29zKikKLSsgICAgICBfTFRfVEFHVkFSKGx0 X3Byb2dfY29tcGlsZXJfd2wsICQxKT0nLVdsLCcKLSsgICAgICBfTFRfVEFHVkFSKGx0X3Byb2df Y29tcGlsZXJfY2FuX2J1aWxkX3NoYXJlZCwgJDEpPW5vCi0rICAgICAgOzsKLSsKLSsgICAgdXRz NCopCi0rICAgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPSctcGljJwot KyAgICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9zdGF0aWMsICQxKT0nLUJzdGF0aWMn Ci0rICAgICAgOzsKLSsKLSsgICAgKikKLSsgICAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGls ZXJfY2FuX2J1aWxkX3NoYXJlZCwgJDEpPW5vCi0rICAgICAgOzsKLSsgICAgZXNhYwotKyAgZmkK LStdKQotK2Nhc2UgJGhvc3Rfb3MgaW4KLSsgICMgRm9yIHBsYXRmb3JtcyB3aGljaCBkbyBub3Qg c3VwcG9ydCBQSUMsIC1EUElDIGlzIG1lYW5pbmdsZXNzOgotKyAgKmRqZ3BwKikKLSsgICAgX0xU X1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPQotKyAgICA7OwotKyAgKikKLSsgICAg X0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPSIkX0xUX1RBR1ZBUihsdF9wcm9n X2NvbXBpbGVyX3BpYywgJDEpQCZ0QG00X2lmKFskMV0sW10sWyAtRFBJQ10sW200X2lmKFskMV0s W0NYWF0sWyAtRFBJQ10sW10pXSkiCi0rICAgIDs7Ci0rZXNhYwotK0FDX01TR19SRVNVTFQoWyRf TFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSldKQotK19MVF9UQUdERUNMKFt3bF0s IFtsdF9wcm9nX2NvbXBpbGVyX3dsXSwgWzFdLAotKwlbSG93IHRvIHBhc3MgYSBsaW5rZXIgZmxh ZyB0aHJvdWdoIHRoZSBjb21waWxlcl0pCi0rCi0rIwotKyMgQ2hlY2sgdG8gbWFrZSBzdXJlIHRo ZSBQSUMgZmxhZyBhY3R1YWxseSB3b3Jrcy4KLSsjCi0raWYgdGVzdCAtbiAiJF9MVF9UQUdWQVIo bHRfcHJvZ19jb21waWxlcl9waWMsICQxKSI7IHRoZW4KLSsgIF9MVF9DT01QSUxFUl9PUFRJT04o W2lmICRjb21waWxlciBQSUMgZmxhZyAkX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywg JDEpIHdvcmtzXSwKLSsgICAgW19MVF9UQUdWQVIobHRfY3ZfcHJvZ19jb21waWxlcl9waWNfd29y a3MsICQxKV0sCi0rICAgIFskX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpQCZ0 QG00X2lmKFskMV0sW10sWyAtRFBJQ10sW200X2lmKFskMV0sW0NYWF0sWyAtRFBJQ10sW10pXSld LCBbXSwKLSsgICAgW2Nhc2UgJF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKSBp bgotKyAgICAgIiIgfCAiICIqKSA7OwotKyAgICAgKikgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBp bGVyX3BpYywgJDEpPSIgJF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKSIgOzsK LSsgICAgIGVzYWNdLAotKyAgICBbX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEp PQotKyAgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX2Nhbl9idWlsZF9zaGFyZWQsICQx KT1ub10pCi0rZmkKLStfTFRfVEFHREVDTChbcGljX2ZsYWddLCBbbHRfcHJvZ19jb21waWxlcl9w aWNdLCBbMV0sCi0rCVtBZGRpdGlvbmFsIGNvbXBpbGVyIGZsYWdzIGZvciBidWlsZGluZyBsaWJy YXJ5IG9iamVjdHNdKQotKwotKyMKLSsjIENoZWNrIHRvIG1ha2Ugc3VyZSB0aGUgc3RhdGljIGZs YWcgYWN0dWFsbHkgd29ya3MuCi0rIwotK3dsPSRfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJf d2wsICQxKSBldmFsIGx0X3RtcF9zdGF0aWNfZmxhZz1cIiRfTFRfVEFHVkFSKGx0X3Byb2dfY29t cGlsZXJfc3RhdGljLCAkMSlcIgotK19MVF9MSU5LRVJfT1BUSU9OKFtpZiAkY29tcGlsZXIgc3Rh dGljIGZsYWcgJGx0X3RtcF9zdGF0aWNfZmxhZyB3b3Jrc10sCi0rICBfTFRfVEFHVkFSKGx0X2N2 X3Byb2dfY29tcGlsZXJfc3RhdGljX3dvcmtzLCAkMSksCi0rICAkbHRfdG1wX3N0YXRpY19mbGFn LAotKyAgW10sCi0rICBbX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYywgJDEpPV0p Ci0rX0xUX1RBR0RFQ0woW2xpbmtfc3RhdGljX2ZsYWddLCBbbHRfcHJvZ19jb21waWxlcl9zdGF0 aWNdLCBbMV0sCi0rCVtDb21waWxlciBmbGFnIHRvIHByZXZlbnQgZHluYW1pYyBsaW5raW5nXSkK LStdKSMgX0xUX0NPTVBJTEVSX1BJQwotKwotKwotKyMgX0xUX0xJTktFUl9TSExJQlMoW1RBR05B TUVdKQotKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotKyMgU2VlIGlmIHRoZSBsaW5r ZXIgc3VwcG9ydHMgYnVpbGRpbmcgc2hhcmVkIGxpYnJhcmllcy4KLSttNF9kZWZ1bihbX0xUX0xJ TktFUl9TSExJQlNdLAotK1tBQ19SRVFVSVJFKFtMVF9QQVRIX0xEXSlkbmwKLStBQ19SRVFVSVJF KFtMVF9QQVRIX05NXSlkbmwKLSttNF9yZXF1aXJlKFtfTFRfRklMRVVUSUxTX0RFRkFVTFRTXSlk bmwKLSttNF9yZXF1aXJlKFtfTFRfREVDTF9FR1JFUF0pZG5sCi0rbTRfcmVxdWlyZShbX0xUX0RF Q0xfU0VEXSlkbmwKLSttNF9yZXF1aXJlKFtfTFRfQ01EX0dMT0JBTF9TWU1CT0xTXSlkbmwKLStt NF9yZXF1aXJlKFtfTFRfVEFHX0NPTVBJTEVSXSlkbmwKLStBQ19NU0dfQ0hFQ0tJTkcoW3doZXRo ZXIgdGhlICRjb21waWxlciBsaW5rZXIgKCRMRCkgc3VwcG9ydHMgc2hhcmVkIGxpYnJhcmllc10p Ci0rbTRfaWYoWyQxXSwgW0NYWF0sIFsKLSsgIF9MVF9UQUdWQVIoZXhwb3J0X3N5bWJvbHNfY21k cywgJDEpPSckTk0gJGxpYm9ianMgJGNvbnZlbmllbmNlIHwgJGdsb2JhbF9zeW1ib2xfcGlwZSB8 ICRTRUQgJ1wnJ3MvLiogLy8nXCcnIHwgc29ydCB8IHVuaXEgPiAkZXhwb3J0X3N5bWJvbHMnCi0r ICBjYXNlICRob3N0X29zIGluCi0rICBhaXhbWzQtOV1dKikKLSsgICAgIyBJZiB3ZSdyZSB1c2lu ZyBHTlUgbm0sIHRoZW4gd2UgZG9uJ3Qgd2FudCB0aGUgIi1DIiBvcHRpb24uCi0rICAgICMgLUMg bWVhbnMgZGVtYW5nbGUgdG8gQUlYIG5tLCBidXQgbWVhbnMgZG9uJ3QgZGVtYW5nbGUgd2l0aCBH TlUgbm0KLSsgICAgaWYgJE5NIC1WIDI+JjEgfCAkR1JFUCAnR05VJyA+IC9kZXYvbnVsbDsgdGhl bgotKyAgICAgIF9MVF9UQUdWQVIoZXhwb3J0X3N5bWJvbHNfY21kcywgJDEpPSckTk0gLUJwZyAk bGlib2JqcyAkY29udmVuaWVuY2UgfCBhd2sgJ1wnJ3sgaWYgKCgoXCQgMiA9PSAiVCIpIHx8IChc JCAyID09ICJEIikgfHwgKFwkIDIgPT0gIkIiKSkgJiYgKFtzdWJzdHJdKFwkIDMsMSwxKSAhPSAi LiIpKSB7IHByaW50IFwkIDMgfSB9J1wnJyB8IHNvcnQgLXUgPiAkZXhwb3J0X3N5bWJvbHMnCi0r ICAgIGVsc2UKLSsgICAgICBfTFRfVEFHVkFSKGV4cG9ydF9zeW1ib2xzX2NtZHMsICQxKT0nJE5N IC1CQ3BnICRsaWJvYmpzICRjb252ZW5pZW5jZSB8IGF3ayAnXCcneyBpZiAoKChcJCAyID09ICJU IikgfHwgKFwkIDIgPT0gIkQiKSB8fCAoXCQgMiA9PSAiQiIpKSAmJiAoW3N1YnN0cl0oXCQgMywx LDEpICE9ICIuIikpIHsgcHJpbnQgXCQgMyB9IH0nXCcnIHwgc29ydCAtdSA+ICRleHBvcnRfc3lt Ym9scycKLSsgICAgZmkKLSsgICAgOzsKLSsgIHB3MzIqKQotKyAgICBfTFRfVEFHVkFSKGV4cG9y dF9zeW1ib2xzX2NtZHMsICQxKT0iJGx0ZGxsX2NtZHMiCi0rICA7OwotKyAgY3lnd2luKiB8IG1p bmd3KiB8IGNlZ2NjKikKLSsgICAgX0xUX1RBR1ZBUihleHBvcnRfc3ltYm9sc19jbWRzLCAkMSk9 JyROTSAkbGlib2JqcyAkY29udmVuaWVuY2UgfCAkZ2xvYmFsX3N5bWJvbF9waXBlIHwgJFNFRCAt ZSAnXCcnL15bW0JDREdSU11dW1sgXV0vcy8uKltbIF1dXChbW14gXV0qXCkvXDEgREFUQS87L14u KltbIF1dX19ubV9fL3MvXi4qW1sgXV1fX25tX19cKFtbXiBdXSpcKVtbIF1dW1teIF1dKi9cMSBE QVRBLzsvXklbWyBdXS9kOy9eW1tBSVRXXV1bWyBdXS9zLy4qIC8vJ1wnJyB8IHNvcnQgfCB1bmlx ID4gJGV4cG9ydF9zeW1ib2xzJwotKyAgOzsKLSsgICopCi0rICAgIF9MVF9UQUdWQVIoZXhwb3J0 X3N5bWJvbHNfY21kcywgJDEpPSckTk0gJGxpYm9ianMgJGNvbnZlbmllbmNlIHwgJGdsb2JhbF9z eW1ib2xfcGlwZSB8ICRTRUQgJ1wnJ3MvLiogLy8nXCcnIHwgc29ydCB8IHVuaXEgPiAkZXhwb3J0 X3N5bWJvbHMnCi0rICA7OwotKyAgZXNhYwotKyAgX0xUX1RBR1ZBUihleGNsdWRlX2V4cHN5bXMs ICQxKT1bJ19HTE9CQUxfT0ZGU0VUX1RBQkxFX3xfR0xPQkFMX19GW0lEXV8uKiddCi0rXSwgWwot KyAgcnVucGF0aF92YXI9Ci0rICBfTFRfVEFHVkFSKGFsbG93X3VuZGVmaW5lZF9mbGFnLCAkMSk9 Ci0rICBfTFRfVEFHVkFSKGFsd2F5c19leHBvcnRfc3ltYm9scywgJDEpPW5vCi0rICBfTFRfVEFH VkFSKGFyY2hpdmVfY21kcywgJDEpPQotKyAgX0xUX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRz LCAkMSk9Ci0rICBfTFRfVEFHVkFSKGNvbXBpbGVyX25lZWRzX29iamVjdCwgJDEpPW5vCi0rICBf TFRfVEFHVkFSKGVuYWJsZV9zaGFyZWRfd2l0aF9zdGF0aWNfcnVudGltZXMsICQxKT1ubwotKyAg X0xUX1RBR1ZBUihleHBvcnRfZHluYW1pY19mbGFnX3NwZWMsICQxKT0KLSsgIF9MVF9UQUdWQVIo ZXhwb3J0X3N5bWJvbHNfY21kcywgJDEpPSckTk0gJGxpYm9ianMgJGNvbnZlbmllbmNlIHwgJGds b2JhbF9zeW1ib2xfcGlwZSB8ICRTRUQgJ1wnJ3MvLiogLy8nXCcnIHwgc29ydCB8IHVuaXEgPiAk ZXhwb3J0X3N5bWJvbHMnCi0rICBfTFRfVEFHVkFSKGhhcmRjb2RlX2F1dG9tYXRpYywgJDEpPW5v Ci0rICBfTFRfVEFHVkFSKGhhcmRjb2RlX2RpcmVjdCwgJDEpPW5vCi0rICBfTFRfVEFHVkFSKGhh cmRjb2RlX2RpcmVjdF9hYnNvbHV0ZSwgJDEpPW5vCi0rICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xp YmRpcl9mbGFnX3NwZWMsICQxKT0KLSsgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdf c3BlY19sZCwgJDEpPQotKyAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yLCAk MSk9Ci0rICBfTFRfVEFHVkFSKGhhcmRjb2RlX21pbnVzX0wsICQxKT1ubwotKyAgX0xUX1RBR1ZB UihoYXJkY29kZV9zaGxpYnBhdGhfdmFyLCAkMSk9dW5zdXBwb3J0ZWQKLSsgIF9MVF9UQUdWQVIo aW5oZXJpdF9ycGF0aCwgJDEpPW5vCi0rICBfTFRfVEFHVkFSKGxpbmtfYWxsX2RlcGxpYnMsICQx KT11bmtub3duCi0rICBfTFRfVEFHVkFSKG1vZHVsZV9jbWRzLCAkMSk9Ci0rICBfTFRfVEFHVkFS KG1vZHVsZV9leHBzeW1fY21kcywgJDEpPQotKyAgX0xUX1RBR1ZBUihvbGRfYXJjaGl2ZV9mcm9t X25ld19jbWRzLCAkMSk9Ci0rICBfTFRfVEFHVkFSKG9sZF9hcmNoaXZlX2Zyb21fZXhwc3ltc19j bWRzLCAkMSk9Ci0rICBfTFRfVEFHVkFSKHRocmVhZF9zYWZlX2ZsYWdfc3BlYywgJDEpPQotKyAg X0xUX1RBR1ZBUih3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYywgJDEpPQotKyAgIyBpbmNsdWRlX2V4 cHN5bXMgc2hvdWxkIGJlIGEgbGlzdCBvZiBzcGFjZS1zZXBhcmF0ZWQgc3ltYm9scyB0byBiZSAq YWx3YXlzKgotKyAgIyBpbmNsdWRlZCBpbiB0aGUgc3ltYm9sIGxpc3QKLSsgIF9MVF9UQUdWQVIo aW5jbHVkZV9leHBzeW1zLCAkMSk9Ci0rICAjIGV4Y2x1ZGVfZXhwc3ltcyBjYW4gYmUgYW4gZXh0 ZW5kZWQgcmVnZXhwIG9mIHN5bWJvbHMgdG8gZXhjbHVkZQotKyAgIyBpdCB3aWxsIGJlIHdyYXBw ZWQgYnkgYCAoJyBhbmQgYCkkJywgc28gb25lIG11c3Qgbm90IG1hdGNoIGJlZ2lubmluZyBvcgot KyAgIyBlbmQgb2YgbGluZS4gIEV4YW1wbGU6IGBhfGJjfC4qZC4qJyB3aWxsIGV4Y2x1ZGUgdGhl IHN5bWJvbHMgYGEnIGFuZCBgYmMnLAotKyAgIyBhcyB3ZWxsIGFzIGFueSBzeW1ib2wgdGhhdCBj b250YWlucyBgZCcuCi0rICBfTFRfVEFHVkFSKGV4Y2x1ZGVfZXhwc3ltcywgJDEpPVsnX0dMT0JB TF9PRkZTRVRfVEFCTEVffF9HTE9CQUxfX0ZbSURdXy4qJ10KLSsgICMgQWx0aG91Z2ggX0dMT0JB TF9PRkZTRVRfVEFCTEVfIGlzIGEgdmFsaWQgc3ltYm9sIEMgbmFtZSwgbW9zdCBhLm91dAotKyAg IyBwbGF0Zm9ybXMgKGFiKXVzZSBpdCBpbiBQSUMgY29kZSwgYnV0IHRoZWlyIGxpbmtlcnMgZ2V0 IGNvbmZ1c2VkIGlmCi0rICAjIHRoZSBzeW1ib2wgaXMgZXhwbGljaXRseSByZWZlcmVuY2VkLiAg U2luY2UgcG9ydGFibGUgY29kZSBjYW5ub3QKLSsgICMgcmVseSBvbiB0aGlzIHN5bWJvbCBuYW1l LCBpdCdzIHByb2JhYmx5IGZpbmUgdG8gbmV2ZXIgaW5jbHVkZSBpdCBpbgotKyAgIyBwcmVsb2Fk ZWQgc3ltYm9sIHRhYmxlcy4KLSsgICMgRXhjbHVkZSBzaGFyZWQgbGlicmFyeSBpbml0aWFsaXph dGlvbi9maW5hbGl6YXRpb24gc3ltYm9scy4KLStkbmwgTm90ZSBhbHNvIGFkanVzdCBleGNsdWRl X2V4cHN5bXMgZm9yIEMrKyBhYm92ZS4KLSsgIGV4dHJhY3RfZXhwc3ltc19jbWRzPQotKwotKyAg Y2FzZSAkaG9zdF9vcyBpbgotKyAgY3lnd2luKiB8IG1pbmd3KiB8IHB3MzIqIHwgY2VnY2MqKQot KyAgICAjIEZJWE1FOiB0aGUgTVNWQysrIHBvcnQgaGFzbid0IGJlZW4gdGVzdGVkIGluIGEgbG9v b29uZyB0aW1lCi0rICAgICMgV2hlbiBub3QgdXNpbmcgZ2NjLCB3ZSBjdXJyZW50bHkgYXNzdW1l IHRoYXQgd2UgYXJlIHVzaW5nCi0rICAgICMgTWljcm9zb2Z0IFZpc3VhbCBDKysuCi0rICAgIGlm IHRlc3QgIiRHQ0MiICE9IHllczsgdGhlbgotKyAgICAgIHdpdGhfZ251X2xkPW5vCi0rICAgIGZp Ci0rICAgIDs7Ci0rICBpbnRlcml4KikKLSsgICAgIyB3ZSBqdXN0IGhvcGUvYXNzdW1lIHRoaXMg aXMgZ2NjIGFuZCBub3QgYzg5ICg9IE1TVkMrKykKLSsgICAgd2l0aF9nbnVfbGQ9eWVzCi0rICAg IDs7Ci0rICBvcGVuYnNkKikKLSsgICAgd2l0aF9nbnVfbGQ9bm8KLSsgICAgOzsKLSsgIGVzYWMK LSsKLSsgIF9MVF9UQUdWQVIobGRfc2hsaWJzLCAkMSk9eWVzCi0rICBpZiB0ZXN0ICIkd2l0aF9n bnVfbGQiID0geWVzOyB0aGVuCi0rICAgICMgSWYgYXJjaGl2ZV9jbWRzIHJ1bnMgTEQsIG5vdCBD Qywgd2xhcmMgc2hvdWxkIGJlIGVtcHR5Ci0rICAgIHdsYXJjPScke3dsfScKLSsKLSsgICAgIyBT ZXQgc29tZSBkZWZhdWx0cyBmb3IgR05VIGxkIHdpdGggc2hhcmVkIGxpYnJhcnkgc3VwcG9ydC4g VGhlc2UKLSsgICAgIyBhcmUgcmVzZXQgbGF0ZXIgaWYgc2hhcmVkIGxpYnJhcmllcyBhcmUgbm90 IHN1cHBvcnRlZC4gUHV0dGluZyB0aGVtCi0rICAgICMgaGVyZSBhbGxvd3MgdGhlbSB0byBiZSBv dmVycmlkZGVuIGlmIG5lY2Vzc2FyeS4KLSsgICAgcnVucGF0aF92YXI9TERfUlVOX1BBVEgKLSsg ICAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LXJwYXRo ICR7d2x9JGxpYmRpcicKLSsgICAgX0xUX1RBR1ZBUihleHBvcnRfZHluYW1pY19mbGFnX3NwZWMs ICQxKT0nJHt3bH0tLWV4cG9ydC1keW5hbWljJwotKyAgICAjIGFuY2llbnQgR05VIGxkIGRpZG4n dCBzdXBwb3J0IC0td2hvbGUtYXJjaGl2ZSBldC4gYWwuCi0rICAgIGlmICRMRCAtLWhlbHAgMj4m MSB8ICRHUkVQICduby13aG9sZS1hcmNoaXZlJyA+IC9kZXYvbnVsbDsgdGhlbgotKyAgICAgIF9M VF9UQUdWQVIod2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWMsICQxKT0iJHdsYXJjIictLXdob2xlLWFy Y2hpdmUkY29udmVuaWVuY2UgJyIkd2xhcmMiJy0tbm8td2hvbGUtYXJjaGl2ZScKLSsgICAgZWxz ZQotKyAgICAgIF9MVF9UQUdWQVIod2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWMsICQxKT0KLSsgICAg ZmkKLSsgICAgc3VwcG9ydHNfYW5vbl92ZXJzaW9uaW5nPW5vCi0rICAgIGNhc2UgYCRMRCAtdiAy PiYxYCBpbgotKyAgICAgICpcIFtbMDFdXS4qIHwgKlwgMi5bWzAtOV1dLiogfCAqXCAyLjEwLiop IDs7ICMgY2F0Y2ggdmVyc2lvbnMgPCAyLjExCi0rICAgICAgKlwgMi4xMS45My4wLjJcICopIHN1 cHBvcnRzX2Fub25fdmVyc2lvbmluZz15ZXMgOzsgIyBSSDcuMyAuLi4KLSsgICAgICAqXCAyLjEx LjkyLjAuMTJcICopIHN1cHBvcnRzX2Fub25fdmVyc2lvbmluZz15ZXMgOzsgIyBNYW5kcmFrZSA4 LjIgLi4uCi0rICAgICAgKlwgMi4xMS4qKSA7OyAjIG90aGVyIDIuMTEgdmVyc2lvbnMKLSsgICAg ICAqKSBzdXBwb3J0c19hbm9uX3ZlcnNpb25pbmc9eWVzIDs7Ci0rICAgIGVzYWMKLSsKLSsgICAg IyBTZWUgaWYgR05VIGxkIHN1cHBvcnRzIHNoYXJlZCBsaWJyYXJpZXMuCi0rICAgIGNhc2UgJGhv c3Rfb3MgaW4KLSsgICAgYWl4W1szLTldXSopCi0rICAgICAgIyBPbiBBSVgvUFBDLCB0aGUgR05V IGxpbmtlciBpcyB2ZXJ5IGJyb2tlbgotKyAgICAgIGlmIHRlc3QgIiRob3N0X2NwdSIgIT0gaWE2 NDsgdGhlbgotKwlfTFRfVEFHVkFSKGxkX3NobGlicywgJDEpPW5vCi0rCWNhdCA8PF9MVF9FT0Yg MT4mMgotKwotKyoqKiBXYXJuaW5nOiB0aGUgR05VIGxpbmtlciwgYXQgbGVhc3QgdXAgdG8gcmVs ZWFzZSAyLjkuMSwgaXMgcmVwb3J0ZWQKLSsqKiogdG8gYmUgdW5hYmxlIHRvIHJlbGlhYmx5IGNy ZWF0ZSBzaGFyZWQgbGlicmFyaWVzIG9uIEFJWC4KLSsqKiogVGhlcmVmb3JlLCBsaWJ0b29sIGlz IGRpc2FibGluZyBzaGFyZWQgbGlicmFyaWVzIHN1cHBvcnQuICBJZiB5b3UKLSsqKiogcmVhbGx5 IGNhcmUgZm9yIHNoYXJlZCBsaWJyYXJpZXMsIHlvdSBtYXkgd2FudCB0byBtb2RpZnkgeW91ciBQ QVRICi0rKioqIHNvIHRoYXQgYSBub24tR05VIGxpbmtlciBpcyBmb3VuZCwgYW5kIHRoZW4gcmVz dGFydC4KLSsKLStfTFRfRU9GCi0rICAgICAgZmkKLSsgICAgICA7OwotKwotKyAgICBhbWlnYW9z KikKLSsgICAgICBjYXNlICRob3N0X2NwdSBpbgotKyAgICAgIHBvd2VycGMpCi0rICAgICAgICAg ICAgIyBzZWUgY29tbWVudCBhYm91dCBBbWlnYU9TNCAuc28gc3VwcG9ydAotKyAgICAgICAgICAg IF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkICRsaWJvYmpzICRkZXBs aWJzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAtbyAkbGliJwotKyAg ICAgICAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEpPScnCi0rICAgICAg ICA7OwotKyAgICAgIG02OGspCi0rICAgICAgICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMs ICQxKT0nJFJNICRvdXRwdXRfb2JqZGlyL2EyaXhsaWJyYXJ5LmRhdGF+JEVDSE8gIiNkZWZpbmUg TkFNRSAkbGlibmFtZSIgPiAkb3V0cHV0X29iamRpci9hMml4bGlicmFyeS5kYXRhfiRFQ0hPICIj ZGVmaW5lIExJQlJBUllfSUQgMSIgPj4gJG91dHB1dF9vYmpkaXIvYTJpeGxpYnJhcnkuZGF0YX4k RUNITyAiI2RlZmluZSBWRVJTSU9OICRtYWpvciIgPj4gJG91dHB1dF9vYmpkaXIvYTJpeGxpYnJh cnkuZGF0YX4kRUNITyAiI2RlZmluZSBSRVZJU0lPTiAkcmV2aXNpb24iID4+ICRvdXRwdXRfb2Jq ZGlyL2EyaXhsaWJyYXJ5LmRhdGF+JEFSICRBUl9GTEFHUyAkbGliICRsaWJvYmpzfiRSQU5MSUIg JGxpYn4oY2QgJG91dHB1dF9vYmpkaXIgJiYgYTJpeGxpYnJhcnkgLTMyKScKLSsgICAgICAgICAg ICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nLUwkbGliZGlyJwot KyAgICAgICAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbWludXNfTCwgJDEpPXllcwotKyAgICAg ICAgOzsKLSsgICAgICBlc2FjCi0rICAgICAgOzsKLSsKLSsgICAgYmVvcyopCi0rICAgICAgaWYg JExEIC0taGVscCAyPiYxIHwgJEdSRVAgJzogc3VwcG9ydGVkIHRhcmdldHM6LiogZWxmJyA+IC9k ZXYvbnVsbDsgdGhlbgotKwlfTFRfVEFHVkFSKGFsbG93X3VuZGVmaW5lZF9mbGFnLCAkMSk9dW5z dXBwb3J0ZWQKLSsJIyBKb3NlcGggQmVja2VuYmFjaCA8anJiM0BiZXN0LmNvbT4gc2F5cyBzb21l IHJlbGVhc2VzIG9mIGdjYwotKwkjIHN1cHBvcnQgLS11bmRlZmluZWQuICBUaGlzIGRlc2VydmVz IHNvbWUgaW52ZXN0aWdhdGlvbi4gIEZJWE1FCi0rCV9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAk MSk9JyRDQyAtbm9zdGFydCAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0t c29uYW1lICR3bCRzb25hbWUgLW8gJGxpYicKLSsgICAgICBlbHNlCi0rCV9MVF9UQUdWQVIobGRf c2hsaWJzLCAkMSk9bm8KLSsgICAgICBmaQotKyAgICAgIDs7Ci0rCi0rICAgIGN5Z3dpbiogfCBt aW5ndyogfCBwdzMyKiB8IGNlZ2NjKikKLSsgICAgICAjIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGli ZGlyX2ZsYWdfc3BlYywgJDEpIGlzIGFjdHVhbGx5IG1lYW5pbmdsZXNzLAotKyAgICAgICMgYXMg dGhlcmUgaXMgbm8gc2VhcmNoIHBhdGggZm9yIERMTHMuCi0rICAgICAgX0xUX1RBR1ZBUihoYXJk Y29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9Jy1MJGxpYmRpcicKLSsgICAgICBfTFRfVEFHVkFS KGFsbG93X3VuZGVmaW5lZF9mbGFnLCAkMSk9dW5zdXBwb3J0ZWQKLSsgICAgICBfTFRfVEFHVkFS KGFsd2F5c19leHBvcnRfc3ltYm9scywgJDEpPW5vCi0rICAgICAgX0xUX1RBR1ZBUihlbmFibGVf c2hhcmVkX3dpdGhfc3RhdGljX3J1bnRpbWVzLCAkMSk9eWVzCi0rICAgICAgX0xUX1RBR1ZBUihl eHBvcnRfc3ltYm9sc19jbWRzLCAkMSk9JyROTSAkbGlib2JqcyAkY29udmVuaWVuY2UgfCAkZ2xv YmFsX3N5bWJvbF9waXBlIHwgJFNFRCAtZSAnXCcnL15bW0JDREdSU11dW1sgXV0vcy8uKltbIF1d XChbW14gXV0qXCkvXDEgREFUQS8nXCcnIHwgJFNFRCAtZSAnXCcnL15bW0FJVFddXVtbIF1dL3Mv LipbWyBdXS8vJ1wnJyB8IHNvcnQgfCB1bmlxID4gJGV4cG9ydF9zeW1ib2xzJwotKwotKyAgICAg IGlmICRMRCAtLWhlbHAgMj4mMSB8ICRHUkVQICdhdXRvLWltcG9ydCcgPiAvZGV2L251bGw7IHRo ZW4KLSsgICAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkICRs aWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAtbyAkb3V0cHV0X29iamRpci8kc29uYW1l ICR7d2x9LS1lbmFibGUtYXV0by1pbWFnZS1iYXNlIC1YbGlua2VyIC0tb3V0LWltcGxpYiAtWGxp bmtlciAkbGliJwotKwkjIElmIHRoZSBleHBvcnQtc3ltYm9scyBmaWxlIGFscmVhZHkgaXMgYSAu ZGVmIGZpbGUgKDFzdCBsaW5lCi0rCSMgaXMgRVhQT1JUUyksIHVzZSBpdCBhcyBpczsgb3RoZXJ3 aXNlLCBwcmVwZW5kLi4uCi0rCV9MVF9UQUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEpPSdp ZiB0ZXN0ICJ4YCRTRUQgMXEgJGV4cG9ydF9zeW1ib2xzYCIgPSB4RVhQT1JUUzsgdGhlbgotKwkg IGNwICRleHBvcnRfc3ltYm9scyAkb3V0cHV0X29iamRpci8kc29uYW1lLmRlZjsKLSsJZWxzZQot KwkgIGVjaG8gRVhQT1JUUyA+ICRvdXRwdXRfb2JqZGlyLyRzb25hbWUuZGVmOwotKwkgIGNhdCAk ZXhwb3J0X3N5bWJvbHMgPj4gJG91dHB1dF9vYmpkaXIvJHNvbmFtZS5kZWY7Ci0rCWZpfgotKwkk Q0MgLXNoYXJlZCAkb3V0cHV0X29iamRpci8kc29uYW1lLmRlZiAkbGlib2JqcyAkZGVwbGlicyAk Y29tcGlsZXJfZmxhZ3MgLW8gJG91dHB1dF9vYmpkaXIvJHNvbmFtZSAke3dsfS0tZW5hYmxlLWF1 dG8taW1hZ2UtYmFzZSAtWGxpbmtlciAtLW91dC1pbXBsaWIgLVhsaW5rZXIgJGxpYicKLSsgICAg ICBlbHNlCi0rCV9MVF9UQUdWQVIobGRfc2hsaWJzLCAkMSk9bm8KLSsgICAgICBmaQotKyAgICAg IDs7Ci0rCi0rICAgIGludGVyaXhbWzMtOV1dKikKLSsgICAgICBfTFRfVEFHVkFSKGhhcmRjb2Rl X2RpcmVjdCwgJDEpPW5vCi0rICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9zaGxpYnBhdGhfdmFy LCAkMSk9bm8KLSsgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQx KT0nJHt3bH0tcnBhdGgsJGxpYmRpcicKLSsgICAgICBfTFRfVEFHVkFSKGV4cG9ydF9keW5hbWlj X2ZsYWdfc3BlYywgJDEpPScke3dsfS1FJwotKyAgICAgICMgSGFjazogT24gSW50ZXJpeCAzLngs IHdlIGNhbm5vdCBjb21waWxlIFBJQyBiZWNhdXNlIG9mIGEgYnJva2VuIGdjYy4KLSsgICAgICAj IEluc3RlYWQsIHNoYXJlZCBsaWJyYXJpZXMgYXJlIGxvYWRlZCBhdCBhbiBpbWFnZSBiYXNlICgw eDEwMDAwMDAwIGJ5Ci0rICAgICAgIyBkZWZhdWx0KSBhbmQgcmVsb2NhdGVkIGlmIHRoZXkgY29u ZmxpY3QsIHdoaWNoIGlzIGEgc2xvdyB2ZXJ5IG1lbW9yeQotKyAgICAgICMgY29uc3VtaW5nIGFu ZCBmcmFnbWVudGluZyBwcm9jZXNzLiAgVG8gYXZvaWQgdGhpcywgd2UgcGljayBhIHJhbmRvbSwK LSsgICAgICAjIDI1NiBLaUItYWxpZ25lZCBpbWFnZSBiYXNlIGJldHdlZW4gMHg1MDAwMDAwMCBh bmQgMHg2RkZDMDAwMCBhdCBsaW5rCi0rICAgICAgIyB0aW1lLiAgTW92aW5nIHVwIGZyb20gMHgx MDAwMDAwMCBhbHNvIGFsbG93cyBtb3JlIHNicmsoMikgc3BhY2UuCi0rICAgICAgX0xUX1RBR1ZB UihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgJHBpY19mbGFnICRsaWJvYmpzICRkZXBs aWJzICRjb21waWxlcl9mbGFncyAke3dsfS1oLCRzb25hbWUgJHt3bH0tLWltYWdlLWJhc2UsYGV4 cHIgJHtSQU5ET00tJCR9ICUgNDA5NiAvIDIgXCogMjYyMTQ0ICsgMTM0MjE3NzI4MGAgLW8gJGxp YicKLSsgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0nc2VkICJzLF4s XywiICRleHBvcnRfc3ltYm9scyA+JG91dHB1dF9vYmpkaXIvJHNvbmFtZS5leHBzeW1+JENDIC1z aGFyZWQgJHBpY19mbGFnICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1o LCRzb25hbWUgJHt3bH0tLXJldGFpbi1zeW1ib2xzLWZpbGUsJG91dHB1dF9vYmpkaXIvJHNvbmFt ZS5leHBzeW0gJHt3bH0tLWltYWdlLWJhc2UsYGV4cHIgJHtSQU5ET00tJCR9ICUgNDA5NiAvIDIg XCogMjYyMTQ0ICsgMTM0MjE3NzI4MGAgLW8gJGxpYicKLSsgICAgICA7OwotKwotKyAgICBnbnUq IHwgbGludXgqIHwgdHBmKiB8IGsqYnNkKi1nbnUpCi0rICAgICAgdG1wX2RpZXQ9bm8KLSsgICAg ICBpZiB0ZXN0ICIkaG9zdF9vcyIgPSBsaW51eC1kaWV0bGliYzsgdGhlbgotKwljYXNlICRjY19i YXNlbmFtZSBpbgotKwkgIGRpZXRcICopIHRtcF9kaWV0PXllczs7CSMgbGludXgtZGlldGxpYmMg d2l0aCBzdGF0aWMgbGlua2luZyAoIWRpZXQtZHluKQotKwllc2FjCi0rICAgICAgZmkKLSsgICAg ICBpZiAkTEQgLS1oZWxwIDI+JjEgfCAkRUdSRVAgJzogc3VwcG9ydGVkIHRhcmdldHM6LiogZWxm JyA+IC9kZXYvbnVsbCBcCi0rCSAmJiB0ZXN0ICIkdG1wX2RpZXQiID0gbm8KLSsgICAgICB0aGVu Ci0rCXRtcF9hZGRmbGFnPQotKwl0bXBfc2hhcmVkZmxhZz0nLXNoYXJlZCcKLSsJY2FzZSAkY2Nf YmFzZW5hbWUsJGhvc3RfY3B1IGluCi0rICAgICAgICBwZ2NjKikJCQkJIyBQb3J0bGFuZCBHcm91 cCBDIGNvbXBpbGVyCi0rCSAgX0xUX1RBR1ZBUih3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYywgJDEp PScke3dsfS0td2hvbGUtYXJjaGl2ZWBmb3IgY29udiBpbiAkY29udmVuaWVuY2VcIlwiOyBkbyB0 ZXN0ICAtbiBcIiRjb252XCIgJiYgbmV3X2NvbnZlbmllbmNlPVwiJG5ld19jb252ZW5pZW5jZSwk Y29udlwiOyBkb25lOyAkRUNITyBcIiRuZXdfY29udmVuaWVuY2VcImAgJHt3bH0tLW5vLXdob2xl LWFyY2hpdmUnCi0rCSAgdG1wX2FkZGZsYWc9JyAkcGljX2ZsYWcnCi0rCSAgOzsKLSsJcGdmNzcq IHwgcGdmOTAqIHwgcGdmOTUqKQkjIFBvcnRsYW5kIEdyb3VwIGY3NyBhbmQgZjkwIGNvbXBpbGVy cwotKwkgIF9MVF9UQUdWQVIod2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWMsICQxKT0nJHt3bH0tLXdo b2xlLWFyY2hpdmVgZm9yIGNvbnYgaW4gJGNvbnZlbmllbmNlXCJcIjsgZG8gdGVzdCAgLW4gXCIk Y29udlwiICYmIG5ld19jb252ZW5pZW5jZT1cIiRuZXdfY29udmVuaWVuY2UsJGNvbnZcIjsgZG9u ZTsgJEVDSE8gXCIkbmV3X2NvbnZlbmllbmNlXCJgICR7d2x9LS1uby13aG9sZS1hcmNoaXZlJwot KwkgIHRtcF9hZGRmbGFnPScgJHBpY19mbGFnIC1Nbm9tYWluJyA7OwotKwllY2MqLGlhNjQqIHwg aWNjKixpYTY0KikJIyBJbnRlbCBDIGNvbXBpbGVyIG9uIGlhNjQKLSsJICB0bXBfYWRkZmxhZz0n IC1pX2R5bmFtaWMnIDs7Ci0rCWVmYyosaWE2NCogfCBpZm9ydCosaWE2NCopCSMgSW50ZWwgRm9y dHJhbiBjb21waWxlciBvbiBpYTY0Ci0rCSAgdG1wX2FkZGZsYWc9JyAtaV9keW5hbWljIC1ub2Zv cl9tYWluJyA7OwotKwlpZmMqIHwgaWZvcnQqKQkJCSMgSW50ZWwgRm9ydHJhbiBjb21waWxlcgot KwkgIHRtcF9hZGRmbGFnPScgLW5vZm9yX21haW4nIDs7Ci0rCWxmOTUqKQkJCQkjIExhaGV5IEZv cnRyYW4gOC4xCi0rCSAgX0xUX1RBR1ZBUih3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYywgJDEpPQot KwkgIHRtcF9zaGFyZWRmbGFnPSctLXNoYXJlZCcgOzsKLSsJeGxbW2NDXV0qKQkJCSMgSUJNIFhM IEMgOC4wIG9uIFBQQyAoZGVhbCB3aXRoIHhsZiBiZWxvdykKLSsJICB0bXBfc2hhcmVkZmxhZz0n LXFta3Nocm9iaicKLSsJICB0bXBfYWRkZmxhZz0gOzsKLSsJZXNhYwotKwljYXNlIGAkQ0MgLVYg Mj4mMSB8IHNlZCA1cWAgaW4KLSsJKlN1blwgQyopCQkJIyBTdW4gQyA1LjkKLSsJICBfTFRfVEFH VkFSKHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LS13aG9sZS1hcmNoaXZlYG5l d19jb252ZW5pZW5jZT07IGZvciBjb252IGluICRjb252ZW5pZW5jZVwiXCI7IGRvIHRlc3QgLXog XCIkY29udlwiIHx8IG5ld19jb252ZW5pZW5jZT1cIiRuZXdfY29udmVuaWVuY2UsJGNvbnZcIjsg ZG9uZTsgJEVDSE8gXCIkbmV3X2NvbnZlbmllbmNlXCJgICR7d2x9LS1uby13aG9sZS1hcmNoaXZl JwotKwkgIF9MVF9UQUdWQVIoY29tcGlsZXJfbmVlZHNfb2JqZWN0LCAkMSk9eWVzCi0rCSAgdG1w X3NoYXJlZGZsYWc9Jy1HJyA7OwotKwkqU3VuXCBGKikJCQkjIFN1biBGb3J0cmFuIDguMwotKwkg IHRtcF9zaGFyZWRmbGFnPSctRycgOzsKLSsJZXNhYwotKwlfTFRfVEFHVkFSKGFyY2hpdmVfY21k cywgJDEpPSckQ0MgJyIkdG1wX3NoYXJlZGZsYWciIiR0bXBfYWRkZmxhZyInICRsaWJvYmpzICRk ZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAtbyAkbGliJwot KwotKyAgICAgICAgaWYgdGVzdCAieCRzdXBwb3J0c19hbm9uX3ZlcnNpb25pbmciID0geHllczsg dGhlbgotKyAgICAgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0nZWNo byAieyBnbG9iYWw6IiA+ICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLnZlcn4KLSsJICAgIGNhdCAk ZXhwb3J0X3N5bWJvbHMgfCBzZWQgLWUgInMvXCguKlwpL1wxOy8iID4+ICRvdXRwdXRfb2JqZGly LyRsaWJuYW1lLnZlcn4KLSsJICAgIGVjaG8gImxvY2FsOiAqOyB9OyIgPj4gJG91dHB1dF9vYmpk aXIvJGxpYm5hbWUudmVyfgotKwkgICAgJENDICciJHRtcF9zaGFyZWRmbGFnIiIkdG1wX2FkZGZs YWciJyAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR3bCRz b25hbWUgJHt3bH0tdmVyc2lvbi1zY3JpcHQgJHt3bH0kb3V0cHV0X29iamRpci8kbGlibmFtZS52 ZXIgLW8gJGxpYicKLSsgICAgICAgIGZpCi0rCi0rCWNhc2UgJGNjX2Jhc2VuYW1lIGluCi0rCXhs ZiopCi0rCSAgIyBJQk0gWEwgRm9ydHJhbiAxMC4xIG9uIFBQQyBjYW5ub3QgY3JlYXRlIHNoYXJl ZCBsaWJzIGl0c2VsZgotKwkgIF9MVF9UQUdWQVIod2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWMsICQx KT0nLS13aG9sZS1hcmNoaXZlJGNvbnZlbmllbmNlIC0tbm8td2hvbGUtYXJjaGl2ZScKLSsJICBf TFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0KLSsJICBfTFRfVEFHVkFS KGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfbGQsICQxKT0nLXJwYXRoICRsaWJkaXInCi0rCSAg X0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJExEIC1zaGFyZWQgJGxpYm9ianMgJGRlcGxp YnMgJGNvbXBpbGVyX2ZsYWdzIC1zb25hbWUgJHNvbmFtZSAtbyAkbGliJwotKwkgIGlmIHRlc3Qg Ingkc3VwcG9ydHNfYW5vbl92ZXJzaW9uaW5nIiA9IHh5ZXM7IHRoZW4KLSsJICAgIF9MVF9UQUdW QVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEpPSdlY2hvICJ7IGdsb2JhbDoiID4gJG91dHB1dF9v YmpkaXIvJGxpYm5hbWUudmVyfgotKwkgICAgICBjYXQgJGV4cG9ydF9zeW1ib2xzIHwgc2VkIC1l ICJzL1woLipcKS9cMTsvIiA+PiAkb3V0cHV0X29iamRpci8kbGlibmFtZS52ZXJ+Ci0rCSAgICAg IGVjaG8gImxvY2FsOiAqOyB9OyIgPj4gJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUudmVyfgotKwkg ICAgICAkTEQgLXNoYXJlZCAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgLXNvbmFt ZSAkc29uYW1lIC12ZXJzaW9uLXNjcmlwdCAkb3V0cHV0X29iamRpci8kbGlibmFtZS52ZXIgLW8g JGxpYicKLSsJICBmaQotKwkgIDs7Ci0rCWVzYWMKLSsgICAgICBlbHNlCi0rICAgICAgICBfTFRf VEFHVkFSKGxkX3NobGlicywgJDEpPW5vCi0rICAgICAgZmkKLSsgICAgICA7OwotKwotKyAgICBu ZXRic2QqKQotKyAgICAgIGlmIGVjaG8gX19FTEZfXyB8ICRDQyAtRSAtIHwgJEdSRVAgX19FTEZf XyA+L2Rldi9udWxsOyB0aGVuCi0rCV9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRMRCAt QnNoYXJlYWJsZSAkbGlib2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzIC1vICRsaWInCi0rCXds YXJjPQotKyAgICAgIGVsc2UKLSsJX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1z aGFyZWQgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAkd2wk c29uYW1lIC1vICRsaWInCi0rCV9MVF9UQUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEpPSck Q0MgLXNoYXJlZCAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1l ICR3bCRzb25hbWUgJHt3bH0tcmV0YWluLXN5bWJvbHMtZmlsZSAkd2wkZXhwb3J0X3N5bWJvbHMg LW8gJGxpYicKLSsgICAgICBmaQotKyAgICAgIDs7Ci0rCi0rICAgIHNvbGFyaXMqKQotKyAgICAg IGlmICRMRCAtdiAyPiYxIHwgJEdSRVAgJ0JGRCAyXC44JyA+IC9kZXYvbnVsbDsgdGhlbgotKwlf TFRfVEFHVkFSKGxkX3NobGlicywgJDEpPW5vCi0rCWNhdCA8PF9MVF9FT0YgMT4mMgotKwotKyoq KiBXYXJuaW5nOiBUaGUgcmVsZWFzZXMgMi44Liogb2YgdGhlIEdOVSBsaW5rZXIgY2Fubm90IHJl bGlhYmx5Ci0rKioqIGNyZWF0ZSBzaGFyZWQgbGlicmFyaWVzIG9uIFNvbGFyaXMgc3lzdGVtcy4g IFRoZXJlZm9yZSwgbGlidG9vbAotKyoqKiBpcyBkaXNhYmxpbmcgc2hhcmVkIGxpYnJhcmllcyBz dXBwb3J0LiAgV2UgdXJnZSB5b3UgdG8gdXBncmFkZSBHTlUKLSsqKiogYmludXRpbHMgdG8gcmVs ZWFzZSAyLjkuMSBvciBuZXdlci4gIEFub3RoZXIgb3B0aW9uIGlzIHRvIG1vZGlmeQotKyoqKiB5 b3VyIFBBVEggb3IgY29tcGlsZXIgY29uZmlndXJhdGlvbiBzbyB0aGF0IHRoZSBuYXRpdmUgbGlu a2VyIGlzCi0rKioqIHVzZWQsIGFuZCB0aGVuIHJlc3RhcnQuCi0rCi0rX0xUX0VPRgotKyAgICAg IGVsaWYgJExEIC0taGVscCAyPiYxIHwgJEdSRVAgJzogc3VwcG9ydGVkIHRhcmdldHM6LiogZWxm JyA+IC9kZXYvbnVsbDsgdGhlbgotKwlfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0Mg LXNoYXJlZCAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR3 bCRzb25hbWUgLW8gJGxpYicKLSsJX0xUX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9 JyRDQyAtc2hhcmVkICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25h bWUgJHdsJHNvbmFtZSAke3dsfS1yZXRhaW4tc3ltYm9scy1maWxlICR3bCRleHBvcnRfc3ltYm9s cyAtbyAkbGliJwotKyAgICAgIGVsc2UKLSsJX0xUX1RBR1ZBUihsZF9zaGxpYnMsICQxKT1ubwot KyAgICAgIGZpCi0rICAgICAgOzsKLSsKLSsgICAgc3lzdjUqIHwgc2NvMy4ydjUqIHwgc2NvNXY2 KiB8IHVuaXh3YXJlKiB8IE9wZW5VTklYKikKLSsgICAgICBjYXNlIGAkTEQgLXYgMj4mMWAgaW4K LSsgICAgICAgICpcIFtbMDFdXS4qIHwgKlwgMi5bWzAtOV1dLiogfCAqXCAyLjFbWzAtNV1dLiop Ci0rCV9MVF9UQUdWQVIobGRfc2hsaWJzLCAkMSk9bm8KLSsJY2F0IDw8X0xUX0VPRiAxPiYyCi0r Ci0rKioqIFdhcm5pbmc6IFJlbGVhc2VzIG9mIHRoZSBHTlUgbGlua2VyIHByaW9yIHRvIDIuMTYu OTEuMC4zIGNhbiBub3QKLSsqKiogcmVsaWFibHkgY3JlYXRlIHNoYXJlZCBsaWJyYXJpZXMgb24g U0NPIHN5c3RlbXMuICBUaGVyZWZvcmUsIGxpYnRvb2wKLSsqKiogaXMgZGlzYWJsaW5nIHNoYXJl ZCBsaWJyYXJpZXMgc3VwcG9ydC4gIFdlIHVyZ2UgeW91IHRvIHVwZ3JhZGUgR05VCi0rKioqIGJp bnV0aWxzIHRvIHJlbGVhc2UgMi4xNi45MS4wLjMgb3IgbmV3ZXIuICBBbm90aGVyIG9wdGlvbiBp cyB0byBtb2RpZnkKLSsqKiogeW91ciBQQVRIIG9yIGNvbXBpbGVyIGNvbmZpZ3VyYXRpb24gc28g dGhhdCB0aGUgbmF0aXZlIGxpbmtlciBpcwotKyoqKiB1c2VkLCBhbmQgdGhlbiByZXN0YXJ0Lgot KwotK19MVF9FT0YKLSsJOzsKLSsJKikKLSsJICAjIEZvciBzZWN1cml0eSByZWFzb25zLCBpdCBp cyBoaWdobHkgcmVjb21tZW5kZWQgdGhhdCB5b3UgYWx3YXlzCi0rCSAgIyB1c2UgYWJzb2x1dGUg cGF0aHMgZm9yIG5hbWluZyBzaGFyZWQgbGlicmFyaWVzLCBhbmQgZXhjbHVkZSB0aGUKLSsJICAj IERUX1JVTlBBVEggdGFnIGZyb20gZXhlY3V0YWJsZXMgYW5kIGxpYnJhcmllcy4gIEJ1dCBkb2lu ZyBzbwotKwkgICMgcmVxdWlyZXMgdGhhdCB5b3UgY29tcGlsZSBldmVyeXRoaW5nIHR3aWNlLCB3 aGljaCBpcyBhIHBhaW4uCi0rCSAgaWYgJExEIC0taGVscCAyPiYxIHwgJEdSRVAgJzogc3VwcG9y dGVkIHRhcmdldHM6LiogZWxmJyA+IC9kZXYvbnVsbDsgdGhlbgotKwkgICAgX0xUX1RBR1ZBUiho YXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LXJwYXRoICR7d2x9JGxpYmRpcicK LSsJICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkICRsaWJvYmpz ICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAtbyAkbGli JwotKwkgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVk ICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFt ZSAke3dsfS1yZXRhaW4tc3ltYm9scy1maWxlICR3bCRleHBvcnRfc3ltYm9scyAtbyAkbGliJwot KwkgIGVsc2UKLSsJICAgIF9MVF9UQUdWQVIobGRfc2hsaWJzLCAkMSk9bm8KLSsJICBmaQotKwk7 OwotKyAgICAgIGVzYWMKLSsgICAgICA7OwotKwotKyAgICBzdW5vczQqKQotKyAgICAgIF9MVF9U QUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRMRCAtYXNzZXJ0IHB1cmUtdGV4dCAtQnNoYXJlYWJs ZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRsaW5rZXJfZmxhZ3MnCi0rICAgICAgd2xhcmM9 Ci0rICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9kaXJlY3QsICQxKT15ZXMKLSsgICAgICBfTFRf VEFHVkFSKGhhcmRjb2RlX3NobGlicGF0aF92YXIsICQxKT1ubwotKyAgICAgIDs7Ci0rCi0rICAg ICopCi0rICAgICAgaWYgJExEIC0taGVscCAyPiYxIHwgJEdSRVAgJzogc3VwcG9ydGVkIHRhcmdl dHM6LiogZWxmJyA+IC9kZXYvbnVsbDsgdGhlbgotKwlfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywg JDEpPSckQ0MgLXNoYXJlZCAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0t c29uYW1lICR3bCRzb25hbWUgLW8gJGxpYicKLSsJX0xUX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9j bWRzLCAkMSk9JyRDQyAtc2hhcmVkICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAk e3dsfS1zb25hbWUgJHdsJHNvbmFtZSAke3dsfS1yZXRhaW4tc3ltYm9scy1maWxlICR3bCRleHBv cnRfc3ltYm9scyAtbyAkbGliJwotKyAgICAgIGVsc2UKLSsJX0xUX1RBR1ZBUihsZF9zaGxpYnMs ICQxKT1ubwotKyAgICAgIGZpCi0rICAgICAgOzsKLSsgICAgZXNhYwotKwotKyAgICBpZiB0ZXN0 ICIkX0xUX1RBR1ZBUihsZF9zaGxpYnMsICQxKSIgPSBubzsgdGhlbgotKyAgICAgIHJ1bnBhdGhf dmFyPQotKyAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPQot KyAgICAgIF9MVF9UQUdWQVIoZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjLCAkMSk9Ci0rICAgICAg X0xUX1RBR1ZBUih3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYywgJDEpPQotKyAgICBmaQotKyAgZWxz ZQotKyAgICAjIFBPUlRNRSBmaWxsIGluIGEgZGVzY3JpcHRpb24gb2YgeW91ciBzeXN0ZW0ncyBs aW5rZXIgKG5vdCBHTlUgbGQpCi0rICAgIGNhc2UgJGhvc3Rfb3MgaW4KLSsgICAgYWl4MyopCi0r ICAgICAgX0xUX1RBR1ZBUihhbGxvd191bmRlZmluZWRfZmxhZywgJDEpPXVuc3VwcG9ydGVkCi0r ICAgICAgX0xUX1RBR1ZBUihhbHdheXNfZXhwb3J0X3N5bWJvbHMsICQxKT15ZXMKLSsgICAgICBf TFRfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0nJExEIC1vICRvdXRwdXRfb2JqZGly LyRzb25hbWUgJGxpYm9ianMgJGRlcGxpYnMgJGxpbmtlcl9mbGFncyAtYkU6JGV4cG9ydF9zeW1i b2xzIC1UNTEyIC1INTEyIC1iTTpTUkV+JEFSICRBUl9GTEFHUyAkbGliICRvdXRwdXRfb2JqZGly LyRzb25hbWUnCi0rICAgICAgIyBOb3RlOiB0aGlzIGxpbmtlciBoYXJkY29kZXMgdGhlIGRpcmVj dG9yaWVzIGluIExJQlBBVEggaWYgdGhlcmUKLSsgICAgICAjIGFyZSBubyBkaXJlY3RvcmllcyBz cGVjaWZpZWQgYnkgLUwuCi0rICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9taW51c19MLCAkMSk9 eWVzCi0rICAgICAgaWYgdGVzdCAiJEdDQyIgPSB5ZXMgJiYgdGVzdCAteiAiJGx0X3Byb2dfY29t cGlsZXJfc3RhdGljIjsgdGhlbgotKwkjIE5laXRoZXIgZGlyZWN0IGhhcmRjb2Rpbmcgbm9yIHN0 YXRpYyBsaW5raW5nIGlzIHN1cHBvcnRlZCB3aXRoIGEKLSsJIyBicm9rZW4gY29sbGVjdDIuCi0r CV9MVF9UQUdWQVIoaGFyZGNvZGVfZGlyZWN0LCAkMSk9dW5zdXBwb3J0ZWQKLSsgICAgICBmaQot KyAgICAgIDs7Ci0rCi0rICAgIGFpeFtbNC05XV0qKQotKyAgICAgIGlmIHRlc3QgIiRob3N0X2Nw dSIgPSBpYTY0OyB0aGVuCi0rCSMgT24gSUE2NCwgdGhlIGxpbmtlciBkb2VzIHJ1biB0aW1lIGxp bmtpbmcgYnkgZGVmYXVsdCwgc28gd2UgZG9uJ3QKLSsJIyBoYXZlIHRvIGRvIGFueXRoaW5nIHNw ZWNpYWwuCi0rCWFpeF91c2VfcnVudGltZWxpbmtpbmc9bm8KLSsJZXhwX3N5bV9mbGFnPSctQmV4 cG9ydCcKLSsJbm9fZW50cnlfZmxhZz0iIgotKyAgICAgIGVsc2UKLSsJIyBJZiB3ZSdyZSB1c2lu ZyBHTlUgbm0sIHRoZW4gd2UgZG9uJ3Qgd2FudCB0aGUgIi1DIiBvcHRpb24uCi0rCSMgLUMgbWVh bnMgZGVtYW5nbGUgdG8gQUlYIG5tLCBidXQgbWVhbnMgZG9uJ3QgZGVtYW5nbGUgd2l0aCBHTlUg bm0KLSsJaWYgJE5NIC1WIDI+JjEgfCAkR1JFUCAnR05VJyA+IC9kZXYvbnVsbDsgdGhlbgotKwkg IF9MVF9UQUdWQVIoZXhwb3J0X3N5bWJvbHNfY21kcywgJDEpPSckTk0gLUJwZyAkbGlib2JqcyAk Y29udmVuaWVuY2UgfCBhd2sgJ1wnJ3sgaWYgKCgoXCQgMiA9PSAiVCIpIHx8IChcJCAyID09ICJE IikgfHwgKFwkIDIgPT0gIkIiKSkgJiYgKFtzdWJzdHJdKFwkIDMsMSwxKSAhPSAiLiIpKSB7IHBy aW50IFwkIDMgfSB9J1wnJyB8IHNvcnQgLXUgPiAkZXhwb3J0X3N5bWJvbHMnCi0rCWVsc2UKLSsJ ICBfTFRfVEFHVkFSKGV4cG9ydF9zeW1ib2xzX2NtZHMsICQxKT0nJE5NIC1CQ3BnICRsaWJvYmpz ICRjb252ZW5pZW5jZSB8IGF3ayAnXCcneyBpZiAoKChcJCAyID09ICJUIikgfHwgKFwkIDIgPT0g IkQiKSB8fCAoXCQgMiA9PSAiQiIpKSAmJiAoW3N1YnN0cl0oXCQgMywxLDEpICE9ICIuIikpIHsg cHJpbnQgXCQgMyB9IH0nXCcnIHwgc29ydCAtdSA+ICRleHBvcnRfc3ltYm9scycKLSsJZmkKLSsJ YWl4X3VzZV9ydW50aW1lbGlua2luZz1ubwotKwotKwkjIFRlc3QgaWYgd2UgYXJlIHRyeWluZyB0 byB1c2UgcnVuIHRpbWUgbGlua2luZyBvciBub3JtYWwKLSsJIyBBSVggc3R5bGUgbGlua2luZy4g SWYgLWJydGwgaXMgc29tZXdoZXJlIGluIExERkxBR1MsIHdlCi0rCSMgbmVlZCB0byBkbyBydW50 aW1lIGxpbmtpbmcuCi0rCWNhc2UgJGhvc3Rfb3MgaW4gYWl4NC5bWzIzXV18YWl4NC5bWzIzXV0u KnxhaXhbWzUtOV1dKikKLSsJICBmb3IgbGRfZmxhZyBpbiAkTERGTEFHUzsgZG8KLSsJICBpZiAo dGVzdCAkbGRfZmxhZyA9ICItYnJ0bCIgfHwgdGVzdCAkbGRfZmxhZyA9ICItV2wsLWJydGwiKTsg dGhlbgotKwkgICAgYWl4X3VzZV9ydW50aW1lbGlua2luZz15ZXMKLSsJICAgIGJyZWFrCi0rCSAg ZmkKLSsJICBkb25lCi0rCSAgOzsKLSsJZXNhYwotKwotKwlleHBfc3ltX2ZsYWc9Jy1iZXhwb3J0 JwotKwlub19lbnRyeV9mbGFnPSctYm5vZW50cnknCi0rICAgICAgZmkKLSsKLSsgICAgICAjIFdo ZW4gbGFyZ2UgZXhlY3V0YWJsZXMgb3Igc2hhcmVkIG9iamVjdHMgYXJlIGJ1aWx0LCBBSVggbGQg Y2FuCi0rICAgICAgIyBoYXZlIHByb2JsZW1zIGNyZWF0aW5nIHRoZSB0YWJsZSBvZiBjb250ZW50 cy4gIElmIGxpbmtpbmcgYSBsaWJyYXJ5Ci0rICAgICAgIyBvciBwcm9ncmFtIHJlc3VsdHMgaW4g ImVycm9yIFRPQyBvdmVyZmxvdyIgYWRkIC1tbWluaW1hbC10b2MgdG8KLSsgICAgICAjIENYWEZM QUdTL0NGTEFHUyBmb3IgZysrL2djYy4gIEluIHRoZSBjYXNlcyB3aGVyZSB0aGF0IGlzIG5vdAot KyAgICAgICMgZW5vdWdoIHRvIGZpeCB0aGUgcHJvYmxlbSwgYWRkIC1XbCwtYmJpZ3RvYyB0byBM REZMQUdTLgotKwotKyAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JycKLSsgICAg ICBfTFRfVEFHVkFSKGhhcmRjb2RlX2RpcmVjdCwgJDEpPXllcwotKyAgICAgIF9MVF9UQUdWQVIo aGFyZGNvZGVfZGlyZWN0X2Fic29sdXRlLCAkMSk9eWVzCi0rICAgICAgX0xUX1RBR1ZBUihoYXJk Y29kZV9saWJkaXJfc2VwYXJhdG9yLCAkMSk9JzonCi0rICAgICAgX0xUX1RBR1ZBUihsaW5rX2Fs bF9kZXBsaWJzLCAkMSk9eWVzCi0rICAgICAgX0xUX1RBR1ZBUihmaWxlX2xpc3Rfc3BlYywgJDEp PScke3dsfS1mLCcKLSsKLSsgICAgICBpZiB0ZXN0ICIkR0NDIiA9IHllczsgdGhlbgotKwljYXNl ICRob3N0X29zIGluIGFpeDQuW1swMTJdXXxhaXg0LltbMDEyXV0uKikKLSsJIyBXZSBvbmx5IHdh bnQgdG8gZG8gdGhpcyBvbiBBSVggNC4yIGFuZCBsb3dlciwgdGhlIGNoZWNrCi0rCSMgYmVsb3cg Zm9yIGJyb2tlbiBjb2xsZWN0MiBkb2Vzbid0IHdvcmsgdW5kZXIgNC4zKwotKwkgIGNvbGxlY3Qy bmFtZT1gJHtDQ30gLXByaW50LXByb2ctbmFtZT1jb2xsZWN0MmAKLSsJICBpZiB0ZXN0IC1mICIk Y29sbGVjdDJuYW1lIiAmJgotKwkgICBzdHJpbmdzICIkY29sbGVjdDJuYW1lIiB8ICRHUkVQIHJl c29sdmVfbGliX25hbWUgPi9kZXYvbnVsbAotKwkgIHRoZW4KLSsJICAjIFdlIGhhdmUgcmV3b3Jr ZWQgY29sbGVjdDIKLSsJICA6Ci0rCSAgZWxzZQotKwkgICMgV2UgaGF2ZSBvbGQgY29sbGVjdDIK LSsJICBfTFRfVEFHVkFSKGhhcmRjb2RlX2RpcmVjdCwgJDEpPXVuc3VwcG9ydGVkCi0rCSAgIyBJ dCBmYWlscyB0byBmaW5kIHVuaW5zdGFsbGVkIGxpYnJhcmllcyB3aGVuIHRoZSB1bmluc3RhbGxl ZAotKwkgICMgcGF0aCBpcyBub3QgbGlzdGVkIGluIHRoZSBsaWJwYXRoLiAgU2V0dGluZyBoYXJk Y29kZV9taW51c19MCi0rCSAgIyB0byB1bnN1cHBvcnRlZCBmb3JjZXMgcmVsaW5raW5nCi0rCSAg X0xUX1RBR1ZBUihoYXJkY29kZV9taW51c19MLCAkMSk9eWVzCi0rCSAgX0xUX1RBR1ZBUihoYXJk Y29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9Jy1MJGxpYmRpcicKLSsJICBfTFRfVEFHVkFSKGhh cmRjb2RlX2xpYmRpcl9zZXBhcmF0b3IsICQxKT0KLSsJICBmaQotKwkgIDs7Ci0rCWVzYWMKLSsJ c2hhcmVkX2ZsYWc9Jy1zaGFyZWQnCi0rCWlmIHRlc3QgIiRhaXhfdXNlX3J1bnRpbWVsaW5raW5n IiA9IHllczsgdGhlbgotKwkgIHNoYXJlZF9mbGFnPSIkc2hhcmVkX2ZsYWcgIicke3dsfS1HJwot KwlmaQotKyAgICAgIGVsc2UKLSsJIyBub3QgdXNpbmcgZ2NjCi0rCWlmIHRlc3QgIiRob3N0X2Nw dSIgPSBpYTY0OyB0aGVuCi0rCSMgVmlzdWFsQWdlIEMrKywgVmVyc2lvbiA1LjUgZm9yIEFJWCA1 TCBmb3IgSUEtNjQsIEJldGEgMyBSZWxlYXNlCi0rCSMgY2hva2VzIG9uIC1XbCwtRy4gVGhlIGZv bGxvd2luZyBsaW5lIGlzIGNvcnJlY3Q6Ci0rCSAgc2hhcmVkX2ZsYWc9Jy1HJwotKwllbHNlCi0r CSAgaWYgdGVzdCAiJGFpeF91c2VfcnVudGltZWxpbmtpbmciID0geWVzOyB0aGVuCi0rCSAgICBz aGFyZWRfZmxhZz0nJHt3bH0tRycKLSsJICBlbHNlCi0rCSAgICBzaGFyZWRfZmxhZz0nJHt3bH0t Yk06U1JFJwotKwkgIGZpCi0rCWZpCi0rICAgICAgZmkKLSsKLSsgICAgICBfTFRfVEFHVkFSKGV4 cG9ydF9keW5hbWljX2ZsYWdfc3BlYywgJDEpPScke3dsfS1iZXhwYWxsJwotKyAgICAgICMgSXQg c2VlbXMgdGhhdCAtYmV4cGFsbCBkb2VzIG5vdCBleHBvcnQgc3ltYm9scyBiZWdpbm5pbmcgd2l0 aAotKyAgICAgICMgdW5kZXJzY29yZSAoXyksIHNvIGl0IGlzIGJldHRlciB0byBnZW5lcmF0ZSBh IGxpc3Qgb2Ygc3ltYm9scyB0byBleHBvcnQuCi0rICAgICAgX0xUX1RBR1ZBUihhbHdheXNfZXhw b3J0X3N5bWJvbHMsICQxKT15ZXMKLSsgICAgICBpZiB0ZXN0ICIkYWl4X3VzZV9ydW50aW1lbGlu a2luZyIgPSB5ZXM7IHRoZW4KLSsJIyBXYXJuaW5nIC0gd2l0aG91dCB1c2luZyB0aGUgb3RoZXIg cnVudGltZSBsb2FkaW5nIGZsYWdzICgtYnJ0bCksCi0rCSMgLWJlcm9rIHdpbGwgbGluayB3aXRo b3V0IGVycm9yLCBidXQgbWF5IHByb2R1Y2UgYSBicm9rZW4gbGlicmFyeS4KLSsJX0xUX1RBR1ZB UihhbGxvd191bmRlZmluZWRfZmxhZywgJDEpPSctYmVyb2snCi0rICAgICAgICAjIERldGVybWlu ZSB0aGUgZGVmYXVsdCBsaWJwYXRoIGZyb20gdGhlIHZhbHVlIGVuY29kZWQgaW4gYW4KLSsgICAg ICAgICMgZW1wdHkgZXhlY3V0YWJsZS4KLSsgICAgICAgIF9MVF9TWVNfTU9EVUxFX1BBVEhfQUlY Ci0rICAgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nJHt3 bH0tYmxpYnBhdGg6JGxpYmRpcjonIiRhaXhfbGlicGF0aCIKLSsgICAgICAgIF9MVF9UQUdWQVIo YXJjaGl2ZV9leHBzeW1fY21kcywgJDEpPSckQ0MgLW8gJG91dHB1dF9vYmpkaXIvJHNvbmFtZSAk bGlib2JqcyAkZGVwbGlicyAnIlwke3dsfSRub19lbnRyeV9mbGFnIicgJGNvbXBpbGVyX2ZsYWdz IGBpZiB0ZXN0ICJ4JHthbGxvd191bmRlZmluZWRfZmxhZ30iICE9ICJ4IjsgdGhlbiAkRUNITyAi WCR7d2x9JHthbGxvd191bmRlZmluZWRfZmxhZ30iIHwgJFhzZWQ7IGVsc2UgOjsgZmlgICciXCR7 d2x9JGV4cF9zeW1fZmxhZzpcJGV4cG9ydF9zeW1ib2xzICRzaGFyZWRfZmxhZyIKLSsgICAgICBl bHNlCi0rCWlmIHRlc3QgIiRob3N0X2NwdSIgPSBpYTY0OyB0aGVuCi0rCSAgX0xUX1RBR1ZBUiho YXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LVIgJGxpYmRpcjovdXNyL2xpYjov bGliJwotKwkgIF9MVF9UQUdWQVIoYWxsb3dfdW5kZWZpbmVkX2ZsYWcsICQxKT0iLXogbm9kZWZz IgotKwkgIF9MVF9UQUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEpPSJcJENDICRzaGFyZWRf ZmxhZyInIC1vICRvdXRwdXRfb2JqZGlyLyRzb25hbWUgJGxpYm9ianMgJGRlcGxpYnMgJyJcJHt3 bH0kbm9fZW50cnlfZmxhZyInICRjb21waWxlcl9mbGFncyAke3dsfSR7YWxsb3dfdW5kZWZpbmVk X2ZsYWd9ICciXCR7d2x9JGV4cF9zeW1fZmxhZzpcJGV4cG9ydF9zeW1ib2xzIgotKwllbHNlCi0r CSAjIERldGVybWluZSB0aGUgZGVmYXVsdCBsaWJwYXRoIGZyb20gdGhlIHZhbHVlIGVuY29kZWQg aW4gYW4KLSsJICMgZW1wdHkgZXhlY3V0YWJsZS4KLSsJIF9MVF9TWVNfTU9EVUxFX1BBVEhfQUlY Ci0rCSBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nJHt3bH0tYmxp YnBhdGg6JGxpYmRpcjonIiRhaXhfbGlicGF0aCIKLSsJICAjIFdhcm5pbmcgLSB3aXRob3V0IHVz aW5nIHRoZSBvdGhlciBydW4gdGltZSBsb2FkaW5nIGZsYWdzLAotKwkgICMgLWJlcm9rIHdpbGwg bGluayB3aXRob3V0IGVycm9yLCBidXQgbWF5IHByb2R1Y2UgYSBicm9rZW4gbGlicmFyeS4KLSsJ ICBfTFRfVEFHVkFSKG5vX3VuZGVmaW5lZF9mbGFnLCAkMSk9JyAke3dsfS1iZXJub3RvaycKLSsJ ICBfTFRfVEFHVkFSKGFsbG93X3VuZGVmaW5lZF9mbGFnLCAkMSk9JyAke3dsfS1iZXJvaycKLSsJ ICAjIEV4cG9ydGVkIHN5bWJvbHMgY2FuIGJlIHB1bGxlZCBpbnRvIHNoYXJlZCBvYmplY3RzIGZy b20gYXJjaGl2ZXMKLSsJICBfTFRfVEFHVkFSKHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjLCAkMSk9 JyRjb252ZW5pZW5jZScKLSsJICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kc19uZWVkX2xjLCAkMSk9 eWVzCi0rCSAgIyBUaGlzIGlzIHNpbWlsYXIgdG8gaG93IEFJWCB0cmFkaXRpb25hbGx5IGJ1aWxk cyBpdHMgc2hhcmVkIGxpYnJhcmllcy4KLSsJICBfTFRfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2Nt ZHMsICQxKT0iXCRDQyAkc2hhcmVkX2ZsYWciJyAtbyAkb3V0cHV0X29iamRpci8kc29uYW1lICRs aWJvYmpzICRkZXBsaWJzICR7d2x9LWJub2VudHJ5ICRjb21waWxlcl9mbGFncyAke3dsfS1iRTok ZXhwb3J0X3N5bWJvbHMke2FsbG93X3VuZGVmaW5lZF9mbGFnfX4kQVIgJEFSX0ZMQUdTICRvdXRw dXRfb2JqZGlyLyRsaWJuYW1lJHJlbGVhc2UuYSAkb3V0cHV0X29iamRpci8kc29uYW1lJwotKwlm aQotKyAgICAgIGZpCi0rICAgICAgOzsKLSsKLSsgICAgYW1pZ2FvcyopCi0rICAgICAgY2FzZSAk aG9zdF9jcHUgaW4KLSsgICAgICBwb3dlcnBjKQotKyAgICAgICAgICAgICMgc2VlIGNvbW1lbnQg YWJvdXQgQW1pZ2FPUzQgLnNvIHN1cHBvcnQKLSsgICAgICAgICAgICBfTFRfVEFHVkFSKGFyY2hp dmVfY21kcywgJDEpPSckQ0MgLXNoYXJlZCAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxh Z3MgJHt3bH0tc29uYW1lICR3bCRzb25hbWUgLW8gJGxpYicKLSsgICAgICAgICAgICBfTFRfVEFH VkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0nJwotKyAgICAgICAgOzsKLSsgICAgICBtNjhr KQotKyAgICAgICAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRSTSAkb3V0cHV0 X29iamRpci9hMml4bGlicmFyeS5kYXRhfiRFQ0hPICIjZGVmaW5lIE5BTUUgJGxpYm5hbWUiID4g JG91dHB1dF9vYmpkaXIvYTJpeGxpYnJhcnkuZGF0YX4kRUNITyAiI2RlZmluZSBMSUJSQVJZX0lE IDEiID4+ICRvdXRwdXRfb2JqZGlyL2EyaXhsaWJyYXJ5LmRhdGF+JEVDSE8gIiNkZWZpbmUgVkVS U0lPTiAkbWFqb3IiID4+ICRvdXRwdXRfb2JqZGlyL2EyaXhsaWJyYXJ5LmRhdGF+JEVDSE8gIiNk ZWZpbmUgUkVWSVNJT04gJHJldmlzaW9uIiA+PiAkb3V0cHV0X29iamRpci9hMml4bGlicmFyeS5k YXRhfiRBUiAkQVJfRkxBR1MgJGxpYiAkbGlib2Jqc34kUkFOTElCICRsaWJ+KGNkICRvdXRwdXRf b2JqZGlyICYmIGEyaXhsaWJyYXJ5IC0zMiknCi0rICAgICAgICAgICAgX0xUX1RBR1ZBUihoYXJk Y29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9Jy1MJGxpYmRpcicKLSsgICAgICAgICAgICBfTFRf VEFHVkFSKGhhcmRjb2RlX21pbnVzX0wsICQxKT15ZXMKLSsgICAgICAgIDs7Ci0rICAgICAgZXNh YwotKyAgICAgIDs7Ci0rCi0rICAgIGJzZGlbWzQ1XV0qKQotKyAgICAgIF9MVF9UQUdWQVIoZXhw b3J0X2R5bmFtaWNfZmxhZ19zcGVjLCAkMSk9LXJkeW5hbWljCi0rICAgICAgOzsKLSsKLSsgICAg Y3lnd2luKiB8IG1pbmd3KiB8IHB3MzIqIHwgY2VnY2MqKQotKyAgICAgICMgV2hlbiBub3QgdXNp bmcgZ2NjLCB3ZSBjdXJyZW50bHkgYXNzdW1lIHRoYXQgd2UgYXJlIHVzaW5nCi0rICAgICAgIyBN aWNyb3NvZnQgVmlzdWFsIEMrKy4KLSsgICAgICAjIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMg aXMgYWN0dWFsbHkgbWVhbmluZ2xlc3MsIGFzIHRoZXJlIGlzCi0rICAgICAgIyBubyBzZWFyY2gg cGF0aCBmb3IgRExMcy4KLSsgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3Nw ZWMsICQxKT0nICcKLSsgICAgICBfTFRfVEFHVkFSKGFsbG93X3VuZGVmaW5lZF9mbGFnLCAkMSk9 dW5zdXBwb3J0ZWQKLSsgICAgICAjIFRlbGwgbHRtYWluIHRvIG1ha2UgLmxpYiBmaWxlcywgbm90 IC5hIGZpbGVzLgotKyAgICAgIGxpYmV4dD1saWIKLSsgICAgICAjIFRlbGwgbHRtYWluIHRvIG1h a2UgLmRsbCBmaWxlcywgbm90IC5zbyBmaWxlcy4KLSsgICAgICBzaHJleHRfY21kcz0iLmRsbCIK LSsgICAgICAjIEZJWE1FOiBTZXR0aW5nIGxpbmtuYW1lcyBoZXJlIGlzIGEgYmFkIGhhY2suCi0r ICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1vICRsaWIgJGxpYm9ianMg JGNvbXBpbGVyX2ZsYWdzIGAkRUNITyAiWCRkZXBsaWJzIiB8ICRYc2VkIC1lICdcJydzLyAtbGMk Ly8nXCcnYCAtbGluayAtZGxsfmxpbmtuYW1lcz0nCi0rICAgICAgIyBUaGUgbGlua2VyIHdpbGwg YXV0b21hdGljYWxseSBidWlsZCBhIC5saWIgZmlsZSBpZiB3ZSBidWlsZCBhIERMTC4KLSsgICAg ICBfTFRfVEFHVkFSKG9sZF9hcmNoaXZlX2Zyb21fbmV3X2NtZHMsICQxKT0ndHJ1ZScKLSsgICAg ICAjIEZJWE1FOiBTaG91bGQgbGV0IHRoZSB1c2VyIHNwZWNpZnkgdGhlIGxpYiBwcm9ncmFtLgot KyAgICAgIF9MVF9UQUdWQVIob2xkX2FyY2hpdmVfY21kcywgJDEpPSdsaWIgLU9VVDokb2xkbGli JG9sZG9ianMkb2xkX2RlcGxpYnMnCi0rICAgICAgX0xUX1RBR1ZBUihmaXhfc3JjZmlsZV9wYXRo LCAkMSk9J2BjeWdwYXRoIC13ICIkc3JjZmlsZSJgJwotKyAgICAgIF9MVF9UQUdWQVIoZW5hYmxl X3NoYXJlZF93aXRoX3N0YXRpY19ydW50aW1lcywgJDEpPXllcwotKyAgICAgIDs7Ci0rCi0rICAg IGRhcndpbiogfCByaGFwc29keSopCi0rICAgICAgX0xUX0RBUldJTl9MSU5LRVJfRkVBVFVSRVMo JDEpCi0rICAgICAgOzsKLSsKLSsgICAgZGd1eCopCi0rICAgICAgX0xUX1RBR1ZBUihhcmNoaXZl X2NtZHMsICQxKT0nJExEIC1HIC1oICRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAk bGlua2VyX2ZsYWdzJwotKyAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3Bl YywgJDEpPSctTCRsaWJkaXInCi0rICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9zaGxpYnBhdGhf dmFyLCAkMSk9bm8KLSsgICAgICA7OwotKwotKyAgICBmcmVlYnNkMSopCi0rICAgICAgX0xUX1RB R1ZBUihsZF9zaGxpYnMsICQxKT1ubwotKyAgICAgIDs7Ci0rCi0rICAgICMgRnJlZUJTRCAyLjIu WzAxMl0gYWxsb3dzIHVzIHRvIGluY2x1ZGUgYysrcnQwLm8gdG8gZ2V0IEMrKyBjb25zdHJ1Y3Rv cgotKyAgICAjIHN1cHBvcnQuICBGdXR1cmUgdmVyc2lvbnMgZG8gdGhpcyBhdXRvbWF0aWNhbGx5 LCBidXQgYW4gZXhwbGljaXQgYysrcnQwLm8KLSsgICAgIyBkb2VzIG5vdCBicmVhayBhbnl0aGlu ZywgYW5kIGhlbHBzIHNpZ25pZmljYW50bHkgKGF0IHRoZSBjb3N0IG9mIGEgbGl0dGxlCi0rICAg ICMgZXh0cmEgc3BhY2UpLgotKyAgICBmcmVlYnNkMi4yKikKLSsgICAgICBfTFRfVEFHVkFSKGFy Y2hpdmVfY21kcywgJDEpPSckTEQgLUJzaGFyZWFibGUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGli cyAkbGlua2VyX2ZsYWdzIC91c3IvbGliL2MrK3J0MC5vJwotKyAgICAgIF9MVF9UQUdWQVIoaGFy ZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPSctUiRsaWJkaXInCi0rICAgICAgX0xUX1RBR1ZB UihoYXJkY29kZV9kaXJlY3QsICQxKT15ZXMKLSsgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX3No bGlicGF0aF92YXIsICQxKT1ubwotKyAgICAgIDs7Ci0rCi0rICAgICMgVW5mb3J0dW5hdGVseSwg b2xkZXIgdmVyc2lvbnMgb2YgRnJlZUJTRCAyIGRvIG5vdCBoYXZlIHRoaXMgZmVhdHVyZS4KLSsg ICAgZnJlZWJzZDIqKQotKyAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRMRCAt QnNoYXJlYWJsZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRsaW5rZXJfZmxhZ3MnCi0rICAg ICAgX0xUX1RBR1ZBUihoYXJkY29kZV9kaXJlY3QsICQxKT15ZXMKLSsgICAgICBfTFRfVEFHVkFS KGhhcmRjb2RlX21pbnVzX0wsICQxKT15ZXMKLSsgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX3No bGlicGF0aF92YXIsICQxKT1ubwotKyAgICAgIDs7Ci0rCi0rICAgICMgRnJlZUJTRCAzIGFuZCBn cmVhdGVyIHVzZXMgZ2NjIC1zaGFyZWQgdG8gZG8gc2hhcmVkIGxpYnJhcmllcy4KLSsgICAgZnJl ZWJzZCogfCBkcmFnb25mbHkqKQotKyAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9 JyRDQyAtc2hhcmVkIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJwot KyAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPSctUiRsaWJk aXInCi0rICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9kaXJlY3QsICQxKT15ZXMKLSsgICAgICBf TFRfVEFHVkFSKGhhcmRjb2RlX3NobGlicGF0aF92YXIsICQxKT1ubwotKyAgICAgIDs7Ci0rCi0r ICAgIGhwdXg5KikKLSsgICAgICBpZiB0ZXN0ICIkR0NDIiA9IHllczsgdGhlbgotKwlfTFRfVEFH VkFSKGFyY2hpdmVfY21kcywgJDEpPSckUk0gJG91dHB1dF9vYmpkaXIvJHNvbmFtZX4kQ0MgLXNo YXJlZCAtZlBJQyAke3dsfStiICR7d2x9JGluc3RhbGxfbGliZGlyIC1vICRvdXRwdXRfb2JqZGly LyRzb25hbWUgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzfnRlc3QgJG91dHB1dF9v YmpkaXIvJHNvbmFtZSA9ICRsaWIgfHwgbXYgJG91dHB1dF9vYmpkaXIvJHNvbmFtZSAkbGliJwot KyAgICAgIGVsc2UKLSsJX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJFJNICRvdXRwdXRf b2JqZGlyLyRzb25hbWV+JExEIC1iICtiICRpbnN0YWxsX2xpYmRpciAtbyAkb3V0cHV0X29iamRp ci8kc29uYW1lICRsaWJvYmpzICRkZXBsaWJzICRsaW5rZXJfZmxhZ3N+dGVzdCAkb3V0cHV0X29i amRpci8kc29uYW1lID0gJGxpYiB8fCBtdiAkb3V0cHV0X29iamRpci8kc29uYW1lICRsaWInCi0r ICAgICAgZmkKLSsgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQx KT0nJHt3bH0rYiAke3dsfSRsaWJkaXInCi0rICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJk aXJfc2VwYXJhdG9yLCAkMSk9OgotKyAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfZGlyZWN0LCAk MSk9eWVzCi0rCi0rICAgICAgIyBoYXJkY29kZV9taW51c19MOiBOb3QgcmVhbGx5IGluIHRoZSBz ZWFyY2ggUEFUSCwKLSsgICAgICAjIGJ1dCBhcyB0aGUgZGVmYXVsdCBsb2NhdGlvbiBvZiB0aGUg bGlicmFyeS4KLSsgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX21pbnVzX0wsICQxKT15ZXMKLSsg ICAgICBfTFRfVEFHVkFSKGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlYywgJDEpPScke3dsfS1FJwot KyAgICAgIDs7Ci0rCi0rICAgIGhwdXgxMCopCi0rICAgICAgaWYgdGVzdCAiJEdDQyIgPSB5ZXMg LWEgIiR3aXRoX2dudV9sZCIgPSBubzsgdGhlbgotKwlfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywg JDEpPSckQ0MgLXNoYXJlZCAtZlBJQyAke3dsfStoICR7d2x9JHNvbmFtZSAke3dsfStiICR7d2x9 JGluc3RhbGxfbGliZGlyIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdz JwotKyAgICAgIGVsc2UKLSsJX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJExEIC1iICto ICRzb25hbWUgK2IgJGluc3RhbGxfbGliZGlyIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGxp bmtlcl9mbGFncycKLSsgICAgICBmaQotKyAgICAgIGlmIHRlc3QgIiR3aXRoX2dudV9sZCIgPSBu bzsgdGhlbgotKwlfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nJHt3 bH0rYiAke3dsfSRsaWJkaXInCi0rCV9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3Bl Y19sZCwgJDEpPScrYiAkbGliZGlyJwotKwlfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9zZXBh cmF0b3IsICQxKT06Ci0rCV9MVF9UQUdWQVIoaGFyZGNvZGVfZGlyZWN0LCAkMSk9eWVzCi0rCV9M VF9UQUdWQVIoaGFyZGNvZGVfZGlyZWN0X2Fic29sdXRlLCAkMSk9eWVzCi0rCV9MVF9UQUdWQVIo ZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LUUnCi0rCSMgaGFyZGNvZGVfbWlu dXNfTDogTm90IHJlYWxseSBpbiB0aGUgc2VhcmNoIFBBVEgsCi0rCSMgYnV0IGFzIHRoZSBkZWZh dWx0IGxvY2F0aW9uIG9mIHRoZSBsaWJyYXJ5LgotKwlfTFRfVEFHVkFSKGhhcmRjb2RlX21pbnVz X0wsICQxKT15ZXMKLSsgICAgICBmaQotKyAgICAgIDs7Ci0rCi0rICAgIGhwdXgxMSopCi0rICAg ICAgaWYgdGVzdCAiJEdDQyIgPSB5ZXMgLWEgIiR3aXRoX2dudV9sZCIgPSBubzsgdGhlbgotKwlj YXNlICRob3N0X2NwdSBpbgotKwlocHBhKjY0KikKLSsJICBfTFRfVEFHVkFSKGFyY2hpdmVfY21k cywgJDEpPSckQ0MgLXNoYXJlZCAke3dsfStoICR7d2x9JHNvbmFtZSAtbyAkbGliICRsaWJvYmpz ICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKLSsJICA7OwotKwlpYTY0KikKLSsJICBfTFRfVEFH VkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXNoYXJlZCAtZlBJQyAke3dsfStoICR7d2x9JHNv bmFtZSAke3dsfStub2RlZmF1bHRycGF0aCAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21w aWxlcl9mbGFncycKLSsJICA7OwotKwkqKQotKwkgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAk MSk9JyRDQyAtc2hhcmVkIC1mUElDICR7d2x9K2ggJHt3bH0kc29uYW1lICR7d2x9K2IgJHt3bH0k aW5zdGFsbF9saWJkaXIgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3Mn Ci0rCSAgOzsKLSsJZXNhYwotKyAgICAgIGVsc2UKLSsJY2FzZSAkaG9zdF9jcHUgaW4KLSsJaHBw YSo2NCopCi0rCSAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1iICR7d2x9K2gg JHt3bH0kc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJwot KwkgIDs7Ci0rCWlhNjQqKQotKwkgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAt YiAke3dsfStoICR7d2x9JHNvbmFtZSAke3dsfStub2RlZmF1bHRycGF0aCAtbyAkbGliICRsaWJv YmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKLSsJICA7OwotKwkqKQotKwkgIF9MVF9UQUdW QVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtYiAke3dsfStoICR7d2x9JHNvbmFtZSAke3dsfSti ICR7d2x9JGluc3RhbGxfbGliZGlyIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVy X2ZsYWdzJwotKwkgIDs7Ci0rCWVzYWMKLSsgICAgICBmaQotKyAgICAgIGlmIHRlc3QgIiR3aXRo X2dudV9sZCIgPSBubzsgdGhlbgotKwlfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3Nw ZWMsICQxKT0nJHt3bH0rYiAke3dsfSRsaWJkaXInCi0rCV9MVF9UQUdWQVIoaGFyZGNvZGVfbGli ZGlyX3NlcGFyYXRvciwgJDEpPToKLSsKLSsJY2FzZSAkaG9zdF9jcHUgaW4KLSsJaHBwYSo2NCp8 aWE2NCopCi0rCSAgX0xUX1RBR1ZBUihoYXJkY29kZV9kaXJlY3QsICQxKT1ubwotKwkgIF9MVF9U QUdWQVIoaGFyZGNvZGVfc2hsaWJwYXRoX3ZhciwgJDEpPW5vCi0rCSAgOzsKLSsJKikKLSsJICBf TFRfVEFHVkFSKGhhcmRjb2RlX2RpcmVjdCwgJDEpPXllcwotKwkgIF9MVF9UQUdWQVIoaGFyZGNv ZGVfZGlyZWN0X2Fic29sdXRlLCAkMSk9eWVzCi0rCSAgX0xUX1RBR1ZBUihleHBvcnRfZHluYW1p Y19mbGFnX3NwZWMsICQxKT0nJHt3bH0tRScKLSsKLSsJICAjIGhhcmRjb2RlX21pbnVzX0w6IE5v dCByZWFsbHkgaW4gdGhlIHNlYXJjaCBQQVRILAotKwkgICMgYnV0IGFzIHRoZSBkZWZhdWx0IGxv Y2F0aW9uIG9mIHRoZSBsaWJyYXJ5LgotKwkgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbWludXNfTCwg JDEpPXllcwotKwkgIDs7Ci0rCWVzYWMKLSsgICAgICBmaQotKyAgICAgIDs7Ci0rCi0rICAgIGly aXg1KiB8IGlyaXg2KiB8IG5vbnN0b3B1eCopCi0rICAgICAgaWYgdGVzdCAiJEdDQyIgPSB5ZXM7 IHRoZW4KLSsJX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgJGxpYm9i anMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAke3dsfSRzb25hbWUgYHRl c3QgLW4gIiR2ZXJzdHJpbmciICYmICRFQ0hPICJYJHt3bH0tc2V0X3ZlcnNpb24gJHt3bH0kdmVy c3RyaW5nIiB8ICRYc2VkYCAke3dsfS11cGRhdGVfcmVnaXN0cnkgJHt3bH0ke291dHB1dF9vYmpk aXJ9L3NvX2xvY2F0aW9ucyAtbyAkbGliJwotKwkjIFRyeSB0byB1c2UgdGhlIC1leHBvcnRlZF9z eW1ib2wgbGQgb3B0aW9uLCBpZiBpdCBkb2VzIG5vdAotKwkjIHdvcmssIGFzc3VtZSB0aGF0IC1l eHBvcnRzX2ZpbGUgZG9lcyBub3Qgd29yayBlaXRoZXIgYW5kCi0rCSMgaW1wbGljaXRseSBleHBv cnQgYWxsIHN5bWJvbHMuCi0rICAgICAgICBzYXZlX0xERkxBR1M9IiRMREZMQUdTIgotKyAgICAg ICAgTERGTEFHUz0iJExERkxBR1MgLXNoYXJlZCAke3dsfS1leHBvcnRlZF9zeW1ib2wgJHt3bH1m b28gJHt3bH0tdXBkYXRlX3JlZ2lzdHJ5ICR7d2x9L2Rldi9udWxsIgotKyAgICAgICAgQUNfTElO S19JRkVMU0UoaW50IGZvbyh2b2lkKSB7fSwKLSsgICAgICAgICAgX0xUX1RBR1ZBUihhcmNoaXZl X2V4cHN5bV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxl cl9mbGFncyAke3dsfS1zb25hbWUgJHt3bH0kc29uYW1lIGB0ZXN0IC1uICIkdmVyc3RyaW5nIiAm JiAkRUNITyAiWCR7d2x9LXNldF92ZXJzaW9uICR7d2x9JHZlcnN0cmluZyIgfCAkWHNlZGAgJHt3 bH0tdXBkYXRlX3JlZ2lzdHJ5ICR7d2x9JHtvdXRwdXRfb2JqZGlyfS9zb19sb2NhdGlvbnMgJHt3 bH0tZXhwb3J0c19maWxlICR7d2x9JGV4cG9ydF9zeW1ib2xzIC1vICRsaWInCi0rICAgICAgICAp Ci0rICAgICAgICBMREZMQUdTPSIkc2F2ZV9MREZMQUdTIgotKyAgICAgIGVsc2UKLSsJX0xUX1RB R1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgJGxpYm9ianMgJGRlcGxpYnMgJGNv bXBpbGVyX2ZsYWdzIC1zb25hbWUgJHNvbmFtZSBgdGVzdCAtbiAiJHZlcnN0cmluZyIgJiYgJEVD SE8gIlgtc2V0X3ZlcnNpb24gJHZlcnN0cmluZyIgfCAkWHNlZGAgLXVwZGF0ZV9yZWdpc3RyeSAk e291dHB1dF9vYmpkaXJ9L3NvX2xvY2F0aW9ucyAtbyAkbGliJwotKwlfTFRfVEFHVkFSKGFyY2hp dmVfZXhwc3ltX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBp bGVyX2ZsYWdzIC1zb25hbWUgJHNvbmFtZSBgdGVzdCAtbiAiJHZlcnN0cmluZyIgJiYgJEVDSE8g Ilgtc2V0X3ZlcnNpb24gJHZlcnN0cmluZyIgfCAkWHNlZGAgLXVwZGF0ZV9yZWdpc3RyeSAke291 dHB1dF9vYmpkaXJ9L3NvX2xvY2F0aW9ucyAtZXhwb3J0c19maWxlICRleHBvcnRfc3ltYm9scyAt byAkbGliJwotKyAgICAgIGZpCi0rICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHNfbmVlZF9s YywgJDEpPSdubycKLSsgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMs ICQxKT0nJHt3bH0tcnBhdGggJHt3bH0kbGliZGlyJwotKyAgICAgIF9MVF9UQUdWQVIoaGFyZGNv ZGVfbGliZGlyX3NlcGFyYXRvciwgJDEpPToKLSsgICAgICBfTFRfVEFHVkFSKGluaGVyaXRfcnBh dGgsICQxKT15ZXMKLSsgICAgICBfTFRfVEFHVkFSKGxpbmtfYWxsX2RlcGxpYnMsICQxKT15ZXMK LSsgICAgICA7OwotKwotKyAgICBuZXRic2QqKQotKyAgICAgIGlmIGVjaG8gX19FTEZfXyB8ICRD QyAtRSAtIHwgJEdSRVAgX19FTEZfXyA+L2Rldi9udWxsOyB0aGVuCi0rCV9MVF9UQUdWQVIoYXJj aGl2ZV9jbWRzLCAkMSk9JyRMRCAtQnNoYXJlYWJsZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJz ICRsaW5rZXJfZmxhZ3MnICAjIGEub3V0Ci0rICAgICAgZWxzZQotKwlfTFRfVEFHVkFSKGFyY2hp dmVfY21kcywgJDEpPSckTEQgLXNoYXJlZCAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRsaW5r ZXJfZmxhZ3MnICAgICAgIyBFTEYKLSsgICAgICBmaQotKyAgICAgIF9MVF9UQUdWQVIoaGFyZGNv ZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPSctUiRsaWJkaXInCi0rICAgICAgX0xUX1RBR1ZBUiho YXJkY29kZV9kaXJlY3QsICQxKT15ZXMKLSsgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX3NobGli cGF0aF92YXIsICQxKT1ubwotKyAgICAgIDs7Ci0rCi0rICAgIG5ld3NvczYpCi0rICAgICAgX0xU X1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJExEIC1HIC1oICRzb25hbWUgLW8gJGxpYiAkbGli b2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzJwotKyAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVf ZGlyZWN0LCAkMSk9eWVzCi0rICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19z cGVjLCAkMSk9JyR7d2x9LXJwYXRoICR7d2x9JGxpYmRpcicKLSsgICAgICBfTFRfVEFHVkFSKGhh cmRjb2RlX2xpYmRpcl9zZXBhcmF0b3IsICQxKT06Ci0rICAgICAgX0xUX1RBR1ZBUihoYXJkY29k ZV9zaGxpYnBhdGhfdmFyLCAkMSk9bm8KLSsgICAgICA7OwotKwotKyAgICAqbnRvKiB8ICpxbngq KQotKyAgICAgIDs7Ci0rCi0rICAgIG9wZW5ic2QqKQotKyAgICAgIGlmIHRlc3QgLWYgL3Vzci9s aWJleGVjL2xkLnNvOyB0aGVuCi0rCV9MVF9UQUdWQVIoaGFyZGNvZGVfZGlyZWN0LCAkMSk9eWVz Ci0rCV9MVF9UQUdWQVIoaGFyZGNvZGVfc2hsaWJwYXRoX3ZhciwgJDEpPW5vCi0rCV9MVF9UQUdW QVIoaGFyZGNvZGVfZGlyZWN0X2Fic29sdXRlLCAkMSk9eWVzCi0rCWlmIHRlc3QgLXogImBlY2hv IF9fRUxGX18gfCAkQ0MgLUUgLSB8ICRHUkVQIF9fRUxGX19gIiB8fCB0ZXN0ICIkaG9zdF9vcy0k aG9zdF9jcHUiID0gIm9wZW5ic2QyLjgtcG93ZXJwYyI7IHRoZW4KLSsJICBfTFRfVEFHVkFSKGFy Y2hpdmVfY21kcywgJDEpPSckQ0MgLXNoYXJlZCAkcGljX2ZsYWcgLW8gJGxpYiAkbGlib2JqcyAk ZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCi0rCSAgX0xUX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9j bWRzLCAkMSk9JyRDQyAtc2hhcmVkICRwaWNfZmxhZyAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJz ICRjb21waWxlcl9mbGFncyAke3dsfS1yZXRhaW4tc3ltYm9scy1maWxlLCRleHBvcnRfc3ltYm9s cycKLSsJICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nJHt3bH0t cnBhdGgsJGxpYmRpcicKLSsJICBfTFRfVEFHVkFSKGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlYywg JDEpPScke3dsfS1FJwotKwllbHNlCi0rCSAgY2FzZSAkaG9zdF9vcyBpbgotKwkgICBvcGVuYnNk W1swMV1dLiogfCBvcGVuYnNkMi5bWzAtN11dIHwgb3BlbmJzZDIuW1swLTddXS4qKQotKwkgICAg IF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRMRCAtQnNoYXJlYWJsZSAtbyAkbGliICRs aWJvYmpzICRkZXBsaWJzICRsaW5rZXJfZmxhZ3MnCi0rCSAgICAgX0xUX1RBR1ZBUihoYXJkY29k ZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9Jy1SJGxpYmRpcicKLSsJICAgICA7OwotKwkgICAqKQot KwkgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkICRwaWNfZmxh ZyAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKLSsJICAgICBfTFRf VEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nJHt3bH0tcnBhdGgsJGxpYmRp cicKLSsJICAgICA7OwotKwkgIGVzYWMKLSsJZmkKLSsgICAgICBlbHNlCi0rCV9MVF9UQUdWQVIo bGRfc2hsaWJzLCAkMSk9bm8KLSsgICAgICBmaQotKyAgICAgIDs7Ci0rCi0rICAgIG9zMiopCi0r ICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9Jy1MJGxpYmRp cicKLSsgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX21pbnVzX0wsICQxKT15ZXMKLSsgICAgICBf TFRfVEFHVkFSKGFsbG93X3VuZGVmaW5lZF9mbGFnLCAkMSk9dW5zdXBwb3J0ZWQKLSsgICAgICBf TFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckRUNITyAiTElCUkFSWSAkbGlibmFtZSBJTklU SU5TVEFOQ0UiID4gJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUuZGVmfiRFQ0hPICJERVNDUklQVElP TiBcIiRsaWJuYW1lXCIiID4+ICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLmRlZn4kRUNITyBEQVRB ID4+ICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLmRlZn4kRUNITyAiIFNJTkdMRSBOT05TSEFSRUQi ID4+ICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLmRlZn4kRUNITyBFWFBPUlRTID4+ICRvdXRwdXRf b2JqZGlyLyRsaWJuYW1lLmRlZn5lbXhleHAgJGxpYm9ianMgPj4gJG91dHB1dF9vYmpkaXIvJGxp Ym5hbWUuZGVmfiRDQyAtWmRsbCAtWmNydGRsbCAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRj b21waWxlcl9mbGFncyAkb3V0cHV0X29iamRpci8kbGlibmFtZS5kZWYnCi0rICAgICAgX0xUX1RB R1ZBUihvbGRfYXJjaGl2ZV9mcm9tX25ld19jbWRzLCAkMSk9J2VteGltcCAtbyAkb3V0cHV0X29i amRpci8kbGlibmFtZS5hICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLmRlZicKLSsgICAgICA7Owot KwotKyAgICBvc2YzKikKLSsgICAgICBpZiB0ZXN0ICIkR0NDIiA9IHllczsgdGhlbgotKwlfTFRf VEFHVkFSKGFsbG93X3VuZGVmaW5lZF9mbGFnLCAkMSk9JyAke3dsfS1leHBlY3RfdW5yZXNvbHZl ZCAke3dsfVwqJwotKwlfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXNoYXJlZCR7 YWxsb3dfdW5kZWZpbmVkX2ZsYWd9ICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAk e3dsfS1zb25hbWUgJHt3bH0kc29uYW1lIGB0ZXN0IC1uICIkdmVyc3RyaW5nIiAmJiAkRUNITyAi WCR7d2x9LXNldF92ZXJzaW9uICR7d2x9JHZlcnN0cmluZyIgfCAkWHNlZGAgJHt3bH0tdXBkYXRl X3JlZ2lzdHJ5ICR7d2x9JHtvdXRwdXRfb2JqZGlyfS9zb19sb2NhdGlvbnMgLW8gJGxpYicKLSsg ICAgICBlbHNlCi0rCV9MVF9UQUdWQVIoYWxsb3dfdW5kZWZpbmVkX2ZsYWcsICQxKT0nIC1leHBl Y3RfdW5yZXNvbHZlZCBcKicKLSsJX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1z aGFyZWQke2FsbG93X3VuZGVmaW5lZF9mbGFnfSAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJf ZmxhZ3MgLXNvbmFtZSAkc29uYW1lIGB0ZXN0IC1uICIkdmVyc3RyaW5nIiAmJiAkRUNITyAiWC1z ZXRfdmVyc2lvbiAkdmVyc3RyaW5nIiB8ICRYc2VkYCAtdXBkYXRlX3JlZ2lzdHJ5ICR7b3V0cHV0 X29iamRpcn0vc29fbG9jYXRpb25zIC1vICRsaWInCi0rICAgICAgZmkKLSsgICAgICBfTFRfVEFH VkFSKGFyY2hpdmVfY21kc19uZWVkX2xjLCAkMSk9J25vJwotKyAgICAgIF9MVF9UQUdWQVIoaGFy ZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPScke3dsfS1ycGF0aCAke3dsfSRsaWJkaXInCi0r ICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yLCAkMSk9OgotKyAgICAg IDs7Ci0rCi0rICAgIG9zZjQqIHwgb3NmNSopCSMgYXMgb3NmMyogd2l0aCB0aGUgYWRkaXRpb24g b2YgLW1zeW0gZmxhZwotKyAgICAgIGlmIHRlc3QgIiRHQ0MiID0geWVzOyB0aGVuCi0rCV9MVF9U QUdWQVIoYWxsb3dfdW5kZWZpbmVkX2ZsYWcsICQxKT0nICR7d2x9LWV4cGVjdF91bnJlc29sdmVk ICR7d2x9XConCi0rCV9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkJHth bGxvd191bmRlZmluZWRfZmxhZ30gJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7 d2x9LW1zeW0gJHt3bH0tc29uYW1lICR7d2x9JHNvbmFtZSBgdGVzdCAtbiAiJHZlcnN0cmluZyIg JiYgJEVDSE8gIlgke3dsfS1zZXRfdmVyc2lvbiAke3dsfSR2ZXJzdHJpbmciIHwgJFhzZWRgICR7 d2x9LXVwZGF0ZV9yZWdpc3RyeSAke3dsfSR7b3V0cHV0X29iamRpcn0vc29fbG9jYXRpb25zIC1v ICRsaWInCi0rCV9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPScke3ds fS1ycGF0aCAke3dsfSRsaWJkaXInCi0rICAgICAgZWxzZQotKwlfTFRfVEFHVkFSKGFsbG93X3Vu ZGVmaW5lZF9mbGFnLCAkMSk9JyAtZXhwZWN0X3VucmVzb2x2ZWQgXConCi0rCV9MVF9UQUdWQVIo YXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkJHthbGxvd191bmRlZmluZWRfZmxhZ30gJGxp Ym9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzIC1tc3ltIC1zb25hbWUgJHNvbmFtZSBgdGVz dCAtbiAiJHZlcnN0cmluZyIgJiYgJEVDSE8gIlgtc2V0X3ZlcnNpb24gJHZlcnN0cmluZyIgfCAk WHNlZGAgLXVwZGF0ZV9yZWdpc3RyeSAke291dHB1dF9vYmpkaXJ9L3NvX2xvY2F0aW9ucyAtbyAk bGliJwotKwlfTFRfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0nZm9yIGkgaW4gYGNh dCAkZXhwb3J0X3N5bWJvbHNgOyBkbyBwcmludGYgIiVzICVzXFxuIiAtZXhwb3J0ZWRfc3ltYm9s ICJcJGkiID4+ICRsaWIuZXhwOyBkb25lOyBwcmludGYgIiVzXFxuIiAiLWhpZGRlbiI+PiAkbGli LmV4cH4KLSsJJENDIC1zaGFyZWQke2FsbG93X3VuZGVmaW5lZF9mbGFnfSAke3dsfS1pbnB1dCAk e3dsfSRsaWIuZXhwICRjb21waWxlcl9mbGFncyAkbGlib2JqcyAkZGVwbGlicyAtc29uYW1lICRz b25hbWUgYHRlc3QgLW4gIiR2ZXJzdHJpbmciICYmICRFQ0hPICJYLXNldF92ZXJzaW9uICR2ZXJz dHJpbmciIHwgJFhzZWRgIC11cGRhdGVfcmVnaXN0cnkgJHtvdXRwdXRfb2JqZGlyfS9zb19sb2Nh dGlvbnMgLW8gJGxpYn4kUk0gJGxpYi5leHAnCi0rCi0rCSMgQm90aCBjIGFuZCBjeHggY29tcGls ZXIgc3VwcG9ydCAtcnBhdGggZGlyZWN0bHkKLSsJX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJf ZmxhZ19zcGVjLCAkMSk9Jy1ycGF0aCAkbGliZGlyJwotKyAgICAgIGZpCi0rICAgICAgX0xUX1RB R1ZBUihhcmNoaXZlX2NtZHNfbmVlZF9sYywgJDEpPSdubycKLSsgICAgICBfTFRfVEFHVkFSKGhh cmRjb2RlX2xpYmRpcl9zZXBhcmF0b3IsICQxKT06Ci0rICAgICAgOzsKLSsKLSsgICAgc29sYXJp cyopCi0rICAgICAgX0xUX1RBR1ZBUihub191bmRlZmluZWRfZmxhZywgJDEpPScgLXogZGVmcycK LSsgICAgICBpZiB0ZXN0ICIkR0NDIiA9IHllczsgdGhlbgotKwl3bGFyYz0nJHt3bH0nCi0rCV9M VF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkICR7d2x9LXogJHt3bH10ZXh0 ICR7d2x9LWggJHt3bH0kc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVy X2ZsYWdzJwotKwlfTFRfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0nZWNobyAieyBn bG9iYWw6IiA+ICRsaWIuZXhwfmNhdCAkZXhwb3J0X3N5bWJvbHMgfCAkU0VEIC1lICJzL1woLipc KS9cMTsvIiA+PiAkbGliLmV4cH5lY2hvICJsb2NhbDogKjsgfTsiID4+ICRsaWIuZXhwfgotKwkg ICRDQyAtc2hhcmVkICR7d2x9LXogJHt3bH10ZXh0ICR7d2x9LU0gJHt3bH0kbGliLmV4cCAke3ds fS1oICR7d2x9JHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFn c34kUk0gJGxpYi5leHAnCi0rICAgICAgZWxzZQotKwljYXNlIGAkQ0MgLVYgMj4mMWAgaW4KLSsJ KiJDb21waWxlcnMgNS4wIiopCi0rCSAgd2xhcmM9JycKLSsJICBfTFRfVEFHVkFSKGFyY2hpdmVf Y21kcywgJDEpPSckTEQgLUcke2FsbG93X3VuZGVmaW5lZF9mbGFnfSAtaCAkc29uYW1lIC1vICRs aWIgJGxpYm9ianMgJGRlcGxpYnMgJGxpbmtlcl9mbGFncycKLSsJICBfTFRfVEFHVkFSKGFyY2hp dmVfZXhwc3ltX2NtZHMsICQxKT0nZWNobyAieyBnbG9iYWw6IiA+ICRsaWIuZXhwfmNhdCAkZXhw b3J0X3N5bWJvbHMgfCAkU0VEIC1lICJzL1woLipcKS9cMTsvIiA+PiAkbGliLmV4cH5lY2hvICJs b2NhbDogKjsgfTsiID4+ICRsaWIuZXhwfgotKwkgICRMRCAtRyR7YWxsb3dfdW5kZWZpbmVkX2Zs YWd9IC1NICRsaWIuZXhwIC1oICRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkbGlu a2VyX2ZsYWdzfiRSTSAkbGliLmV4cCcKLSsJICA7OwotKwkqKQotKwkgIHdsYXJjPScke3dsfScK LSsJICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLUcke2FsbG93X3VuZGVmaW5l ZF9mbGFnfSAtaCAkc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2Zs YWdzJwotKwkgIF9MVF9UQUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEpPSdlY2hvICJ7IGds b2JhbDoiID4gJGxpYi5leHB+Y2F0ICRleHBvcnRfc3ltYm9scyB8ICRTRUQgLWUgInMvXCguKlwp L1wxOy8iID4+ICRsaWIuZXhwfmVjaG8gImxvY2FsOiAqOyB9OyIgPj4gJGxpYi5leHB+Ci0rCSAg JENDIC1HJHthbGxvd191bmRlZmluZWRfZmxhZ30gLU0gJGxpYi5leHAgLWggJHNvbmFtZSAtbyAk bGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFnc34kUk0gJGxpYi5leHAnCi0rCSAg OzsKLSsJZXNhYwotKyAgICAgIGZpCi0rICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJf ZmxhZ19zcGVjLCAkMSk9Jy1SJGxpYmRpcicKLSsgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX3No bGlicGF0aF92YXIsICQxKT1ubwotKyAgICAgIGNhc2UgJGhvc3Rfb3MgaW4KLSsgICAgICBzb2xh cmlzMi5bWzAtNV1dIHwgc29sYXJpczIuW1swLTVdXS4qKSA7OwotKyAgICAgICopCi0rCSMgVGhl IGNvbXBpbGVyIGRyaXZlciB3aWxsIGNvbWJpbmUgYW5kIHJlb3JkZXIgbGlua2VyIG9wdGlvbnMs Ci0rCSMgYnV0IHVuZGVyc3RhbmRzIGAteiBsaW5rZXJfZmxhZycuICBHQ0MgZGlzY2FyZHMgaXQg d2l0aG91dCBgJHdsJywKLSsJIyBidXQgaXMgY2FyZWZ1bCBlbm91Z2ggbm90IHRvIHJlb3JkZXIu Ci0rCSMgU3VwcG9ydGVkIHNpbmNlIFNvbGFyaXMgMi42IChtYXliZSAyLjUuMT8pCi0rCWlmIHRl c3QgIiRHQ0MiID0geWVzOyB0aGVuCi0rCSAgX0xUX1RBR1ZBUih3aG9sZV9hcmNoaXZlX2ZsYWdf c3BlYywgJDEpPScke3dsfS16ICR7d2x9YWxsZXh0cmFjdCRjb252ZW5pZW5jZSAke3dsfS16ICR7 d2x9ZGVmYXVsdGV4dHJhY3QnCi0rCWVsc2UKLSsJICBfTFRfVEFHVkFSKHdob2xlX2FyY2hpdmVf ZmxhZ19zcGVjLCAkMSk9Jy16IGFsbGV4dHJhY3QkY29udmVuaWVuY2UgLXogZGVmYXVsdGV4dHJh Y3QnCi0rCWZpCi0rCTs7Ci0rICAgICAgZXNhYwotKyAgICAgIF9MVF9UQUdWQVIobGlua19hbGxf ZGVwbGlicywgJDEpPXllcwotKyAgICAgIDs7Ci0rCi0rICAgIHN1bm9zNCopCi0rICAgICAgaWYg dGVzdCAieCRob3N0X3ZlbmRvciIgPSB4c2VxdWVudDsgdGhlbgotKwkjIFVzZSAkQ0MgdG8gbGlu ayB1bmRlciBzZXF1ZW50LCBiZWNhdXNlIGl0IHRocm93cyBpbiBzb21lIGV4dHJhIC5vCi0rCSMg ZmlsZXMgdGhhdCBtYWtlIC5pbml0IGFuZCAuZmluaSBzZWN0aW9ucyB3b3JrLgotKwlfTFRfVEFH VkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLUcgJHt3bH0taCAkc29uYW1lIC1vICRsaWIgJGxp Ym9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJwotKyAgICAgIGVsc2UKLSsJX0xUX1RBR1ZB UihhcmNoaXZlX2NtZHMsICQxKT0nJExEIC1hc3NlcnQgcHVyZS10ZXh0IC1Cc3RhdGljIC1vICRs aWIgJGxpYm9ianMgJGRlcGxpYnMgJGxpbmtlcl9mbGFncycKLSsgICAgICBmaQotKyAgICAgIF9M VF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPSctTCRsaWJkaXInCi0rICAg ICAgX0xUX1RBR1ZBUihoYXJkY29kZV9kaXJlY3QsICQxKT15ZXMKLSsgICAgICBfTFRfVEFHVkFS KGhhcmRjb2RlX21pbnVzX0wsICQxKT15ZXMKLSsgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX3No bGlicGF0aF92YXIsICQxKT1ubwotKyAgICAgIDs7Ci0rCi0rICAgIHN5c3Y0KQotKyAgICAgIGNh c2UgJGhvc3RfdmVuZG9yIGluCi0rCXNuaSkKLSsJICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywg JDEpPSckTEQgLUcgLWggJHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRsaW5rZXJf ZmxhZ3MnCi0rCSAgX0xUX1RBR1ZBUihoYXJkY29kZV9kaXJlY3QsICQxKT15ZXMgIyBpcyB0aGlz IHJlYWxseSB0cnVlPz8/Ci0rCTs7Ci0rCXNpZW1lbnMpCi0rCSAgIyMgTEQgaXMgbGQgaXQgbWFr ZXMgYSBQTEFNTElCCi0rCSAgIyMgQ0MganVzdCBtYWtlcyBhIEdyb3NzTW9kdWxlLgotKwkgIF9M VF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRMRCAtRyAtbyAkbGliICRsaWJvYmpzICRkZXBs aWJzICRsaW5rZXJfZmxhZ3MnCi0rCSAgX0xUX1RBR1ZBUihyZWxvYWRfY21kcywgJDEpPSckQ0Mg LXIgLW8gJG91dHB1dCRyZWxvYWRfb2JqcycKLSsJICBfTFRfVEFHVkFSKGhhcmRjb2RlX2RpcmVj dCwgJDEpPW5vCi0rICAgICAgICA7OwotKwltb3Rvcm9sYSkKLSsJICBfTFRfVEFHVkFSKGFyY2hp dmVfY21kcywgJDEpPSckTEQgLUcgLWggJHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJz ICRsaW5rZXJfZmxhZ3MnCi0rCSAgX0xUX1RBR1ZBUihoYXJkY29kZV9kaXJlY3QsICQxKT1ubyAj TW90b3JvbGEgbWFudWFsIHNheXMgeWVzLCBidXQgbXkgdGVzdHMgc2F5IHRoZXkgbGllCi0rCTs7 Ci0rICAgICAgZXNhYwotKyAgICAgIHJ1bnBhdGhfdmFyPSdMRF9SVU5fUEFUSCcKLSsgICAgICBf TFRfVEFHVkFSKGhhcmRjb2RlX3NobGlicGF0aF92YXIsICQxKT1ubwotKyAgICAgIDs7Ci0rCi0r ICAgIHN5c3Y0LjMqKQotKyAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRMRCAt RyAtaCAkc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGxpbmtlcl9mbGFncycKLSsg ICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX3NobGlicGF0aF92YXIsICQxKT1ubwotKyAgICAgIF9M VF9UQUdWQVIoZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjLCAkMSk9Jy1CZXhwb3J0JwotKyAgICAg IDs7Ci0rCi0rICAgIHN5c3Y0Kk1QKikKLSsgICAgICBpZiB0ZXN0IC1kIC91c3IvbmVjOyB0aGVu Ci0rCV9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRMRCAtRyAtaCAkc29uYW1lIC1vICRs aWIgJGxpYm9ianMgJGRlcGxpYnMgJGxpbmtlcl9mbGFncycKLSsJX0xUX1RBR1ZBUihoYXJkY29k ZV9zaGxpYnBhdGhfdmFyLCAkMSk9bm8KLSsJcnVucGF0aF92YXI9TERfUlVOX1BBVEgKLSsJaGFy ZGNvZGVfcnVucGF0aF92YXI9eWVzCi0rCV9MVF9UQUdWQVIobGRfc2hsaWJzLCAkMSk9eWVzCi0r ICAgICAgZmkKLSsgICAgICA7OwotKwotKyAgICBzeXN2NCp1dzIqIHwgc3lzdjVPcGVuVU5JWCog fCBzeXN2NVVuaXhXYXJlNy5bWzAxXV0uW1sxMF1dKiB8IHVuaXh3YXJlNyogfCBzY28zLjJ2NS4w LltbMDI0XV0qKQotKyAgICAgIF9MVF9UQUdWQVIobm9fdW5kZWZpbmVkX2ZsYWcsICQxKT0nJHt3 bH0teix0ZXh0JwotKyAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzX25lZWRfbGMsICQxKT1u bwotKyAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfc2hsaWJwYXRoX3ZhciwgJDEpPW5vCi0rICAg ICAgcnVucGF0aF92YXI9J0xEX1JVTl9QQVRIJwotKwotKyAgICAgIGlmIHRlc3QgIiRHQ0MiID0g eWVzOyB0aGVuCi0rCV9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkICR7 d2x9LWgsJHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycK LSsJX0xUX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkICR7d2x9 LUJleHBvcnQ6JGV4cG9ydF9zeW1ib2xzICR7d2x9LWgsJHNvbmFtZSAtbyAkbGliICRsaWJvYmpz ICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKLSsgICAgICBlbHNlCi0rCV9MVF9UQUdWQVIoYXJj aGl2ZV9jbWRzLCAkMSk9JyRDQyAtRyAke3dsfS1oLCRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAk ZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCi0rCV9MVF9UQUdWQVIoYXJjaGl2ZV9leHBzeW1fY21k cywgJDEpPSckQ0MgLUcgJHt3bH0tQmV4cG9ydDokZXhwb3J0X3N5bWJvbHMgJHt3bH0taCwkc29u YW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJwotKyAgICAgIGZp Ci0rICAgICAgOzsKLSsKLSsgICAgc3lzdjUqIHwgc2NvMy4ydjUqIHwgc2NvNXY2KikKLSsgICAg ICAjIE5vdGU6IFdlIGNhbiBOT1QgdXNlIC16IGRlZnMgYXMgd2UgbWlnaHQgZGVzaXJlLCBiZWNh dXNlIHdlIGRvIG5vdAotKyAgICAgICMgbGluayB3aXRoIC1sYywgYW5kIHRoYXQgd291bGQgY2F1 c2UgYW55IHN5bWJvbHMgdXNlZCBmcm9tIGxpYmMgdG8KLSsgICAgICAjIGFsd2F5cyBiZSB1bnJl c29sdmVkLCB3aGljaCBtZWFucyBqdXN0IGFib3V0IG5vIGxpYnJhcnkgd291bGQKLSsgICAgICAj IGV2ZXIgbGluayBjb3JyZWN0bHkuICBJZiB3ZSdyZSBub3QgdXNpbmcgR05VIGxkIHdlIHVzZSAt eiB0ZXh0Ci0rICAgICAgIyB0aG91Z2gsIHdoaWNoIGRvZXMgY2F0Y2ggc29tZSBiYWQgc3ltYm9s cyBidXQgaXNuJ3QgYXMgaGVhdnktaGFuZGVkCi0rICAgICAgIyBhcyAteiBkZWZzLgotKyAgICAg IF9MVF9UQUdWQVIobm9fdW5kZWZpbmVkX2ZsYWcsICQxKT0nJHt3bH0teix0ZXh0JwotKyAgICAg IF9MVF9UQUdWQVIoYWxsb3dfdW5kZWZpbmVkX2ZsYWcsICQxKT0nJHt3bH0teixub2RlZnMnCi0r ICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHNfbmVlZF9sYywgJDEpPW5vCi0rICAgICAgX0xU X1RBR1ZBUihoYXJkY29kZV9zaGxpYnBhdGhfdmFyLCAkMSk9bm8KLSsgICAgICBfTFRfVEFHVkFS KGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nJHt3bH0tUiwkbGliZGlyJwotKyAgICAg IF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciwgJDEpPSc6JwotKyAgICAgIF9M VF9UQUdWQVIobGlua19hbGxfZGVwbGlicywgJDEpPXllcwotKyAgICAgIF9MVF9UQUdWQVIoZXhw b3J0X2R5bmFtaWNfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LUJleHBvcnQnCi0rICAgICAgcnVucGF0 aF92YXI9J0xEX1JVTl9QQVRIJwotKwotKyAgICAgIGlmIHRlc3QgIiRHQ0MiID0geWVzOyB0aGVu Ci0rCV9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkICR7d2x9LWgsJHNv bmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKLSsJX0xUX1RB R1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkICR7d2x9LUJleHBvcnQ6 JGV4cG9ydF9zeW1ib2xzICR7d2x9LWgsJHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJz ICRjb21waWxlcl9mbGFncycKLSsgICAgICBlbHNlCi0rCV9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRz LCAkMSk9JyRDQyAtRyAke3dsfS1oLCRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAk Y29tcGlsZXJfZmxhZ3MnCi0rCV9MVF9UQUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEpPSck Q0MgLUcgJHt3bH0tQmV4cG9ydDokZXhwb3J0X3N5bWJvbHMgJHt3bH0taCwkc29uYW1lIC1vICRs aWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJwotKyAgICAgIGZpCi0rICAgICAg OzsKLSsKLSsgICAgdXRzNCopCi0rICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0n JExEIC1HIC1oICRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdz JwotKyAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPSctTCRs aWJkaXInCi0rICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9zaGxpYnBhdGhfdmFyLCAkMSk9bm8K LSsgICAgICA7OwotKwotKyAgICAqKQotKyAgICAgIF9MVF9UQUdWQVIobGRfc2hsaWJzLCAkMSk9 bm8KLSsgICAgICA7OwotKyAgICBlc2FjCi0rCi0rICAgIGlmIHRlc3QgeCRob3N0X3ZlbmRvciA9 IHhzbmk7IHRoZW4KLSsgICAgICBjYXNlICRob3N0IGluCi0rICAgICAgc3lzdjQgfCBzeXN2NC4y dXcyKiB8IHN5c3Y0LjMqIHwgc3lzdjUqKQotKwlfTFRfVEFHVkFSKGV4cG9ydF9keW5hbWljX2Zs YWdfc3BlYywgJDEpPScke3dsfS1CbGFyZ2VkeW5zeW0nCi0rCTs7Ci0rICAgICAgZXNhYwotKyAg ICBmaQotKyAgZmkKLStdKQotK0FDX01TR19SRVNVTFQoWyRfTFRfVEFHVkFSKGxkX3NobGlicywg JDEpXSkKLSt0ZXN0ICIkX0xUX1RBR1ZBUihsZF9zaGxpYnMsICQxKSIgPSBubyAmJiBjYW5fYnVp bGRfc2hhcmVkPW5vCi0rCi0rX0xUX1RBR1ZBUih3aXRoX2dudV9sZCwgJDEpPSR3aXRoX2dudV9s ZAotKwotK19MVF9ERUNMKFtdLCBbbGliZXh0XSwgWzBdLCBbT2xkIGFyY2hpdmUgc3VmZml4IChu b3JtYWxseSAiYSIpXSlkbmwKLStfTFRfREVDTChbXSwgW3NocmV4dF9jbWRzXSwgWzFdLCBbU2hh cmVkIGxpYnJhcnkgc3VmZml4IChub3JtYWxseSAiLnNvIildKWRubAotK19MVF9ERUNMKFtdLCBb ZXh0cmFjdF9leHBzeW1zX2NtZHNdLCBbMl0sCi0rICAgIFtUaGUgY29tbWFuZHMgdG8gZXh0cmFj dCB0aGUgZXhwb3J0ZWQgc3ltYm9sIGxpc3QgZnJvbSBhIHNoYXJlZCBhcmNoaXZlXSkKLSsKLSsj Ci0rIyBEbyB3ZSBuZWVkIHRvIGV4cGxpY2l0bHkgbGluayBsaWJjPwotKyMKLStjYXNlICJ4JF9M VF9UQUdWQVIoYXJjaGl2ZV9jbWRzX25lZWRfbGMsICQxKSIgaW4KLSt4fHh5ZXMpCi0rICAjIEFz c3VtZSAtbGMgc2hvdWxkIGJlIGFkZGVkCi0rICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kc19uZWVk X2xjLCAkMSk9eWVzCi0rCi0rICBpZiB0ZXN0ICIkZW5hYmxlX3NoYXJlZCIgPSB5ZXMgJiYgdGVz dCAiJEdDQyIgPSB5ZXM7IHRoZW4KLSsgICAgY2FzZSAkX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMs ICQxKSBpbgotKyAgICAqJ34nKikKLSsgICAgICAjIEZJWE1FOiB3ZSBtYXkgaGF2ZSB0byBkZWFs IHdpdGggbXVsdGktY29tbWFuZCBzZXF1ZW5jZXMuCi0rICAgICAgOzsKLSsgICAgJyRDQyAnKikK LSsgICAgICAjIFRlc3Qgd2hldGhlciB0aGUgY29tcGlsZXIgaW1wbGljaXRseSBsaW5rcyB3aXRo IC1sYyBzaW5jZSBvbiBzb21lCi0rICAgICAgIyBzeXN0ZW1zLCAtbGdjYyBoYXMgdG8gY29tZSBi ZWZvcmUgLWxjLiBJZiBnY2MgYWxyZWFkeSBwYXNzZXMgLWxjCi0rICAgICAgIyB0byBsZCwgZG9u J3QgYWRkIC1sYyBiZWZvcmUgLWxnY2MuCi0rICAgICAgQUNfTVNHX0NIRUNLSU5HKFt3aGV0aGVy IC1sYyBzaG91bGQgYmUgZXhwbGljaXRseSBsaW5rZWQgaW5dKQotKyAgICAgICRSTSBjb25mdGVz dCoKLSsgICAgICBlY2hvICIkbHRfc2ltcGxlX2NvbXBpbGVfdGVzdF9jb2RlIiA+IGNvbmZ0ZXN0 LiRhY19leHQKLSsKLSsgICAgICBpZiBBQ19UUllfRVZBTChhY19jb21waWxlKSAyPmNvbmZ0ZXN0 LmVycjsgdGhlbgotKyAgICAgICAgc29uYW1lPWNvbmZ0ZXN0Ci0rICAgICAgICBsaWI9Y29uZnRl c3QKLSsgICAgICAgIGxpYm9ianM9Y29uZnRlc3QuJGFjX29iamV4dAotKyAgICAgICAgZGVwbGli cz0KLSsgICAgICAgIHdsPSRfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfd2wsICQxKQotKwlw aWNfZmxhZz0kX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpCi0rICAgICAgICBj b21waWxlcl9mbGFncz0tdgotKyAgICAgICAgbGlua2VyX2ZsYWdzPS12Ci0rICAgICAgICB2ZXJz dHJpbmc9Ci0rICAgICAgICBvdXRwdXRfb2JqZGlyPS4KLSsgICAgICAgIGxpYm5hbWU9Y29uZnRl c3QKLSsgICAgICAgIGx0X3NhdmVfYWxsb3dfdW5kZWZpbmVkX2ZsYWc9JF9MVF9UQUdWQVIoYWxs b3dfdW5kZWZpbmVkX2ZsYWcsICQxKQotKyAgICAgICAgX0xUX1RBR1ZBUihhbGxvd191bmRlZmlu ZWRfZmxhZywgJDEpPQotKyAgICAgICAgaWYgQUNfVFJZX0VWQUwoX0xUX1RBR1ZBUihhcmNoaXZl X2NtZHMsICQxKSAyXD5cJjEgXHwgJEdSRVAgXCIgLWxjIFwiIFw+L2Rldi9udWxsIDJcPlwmMSkK LSsgICAgICAgIHRoZW4KLSsJICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kc19uZWVkX2xjLCAkMSk9 bm8KLSsgICAgICAgIGVsc2UKLSsJICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kc19uZWVkX2xjLCAk MSk9eWVzCi0rICAgICAgICBmaQotKyAgICAgICAgX0xUX1RBR1ZBUihhbGxvd191bmRlZmluZWRf ZmxhZywgJDEpPSRsdF9zYXZlX2FsbG93X3VuZGVmaW5lZF9mbGFnCi0rICAgICAgZWxzZQotKyAg ICAgICAgY2F0IGNvbmZ0ZXN0LmVyciAxPiY1Ci0rICAgICAgZmkKLSsgICAgICAkUk0gY29uZnRl c3QqCi0rICAgICAgQUNfTVNHX1JFU1VMVChbJF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzX25lZWRf bGMsICQxKV0pCi0rICAgICAgOzsKLSsgICAgZXNhYwotKyAgZmkKLSsgIDs7Ci0rZXNhYwotKwot K19MVF9UQUdERUNMKFtidWlsZF9saWJ0b29sX25lZWRfbGNdLCBbYXJjaGl2ZV9jbWRzX25lZWRf bGNdLCBbMF0sCi0rICAgIFtXaGV0aGVyIG9yIG5vdCB0byBhZGQgLWxjIGZvciBidWlsZGluZyBz aGFyZWQgbGlicmFyaWVzXSkKLStfTFRfVEFHREVDTChbYWxsb3dfbGlidG9vbF9saWJzX3dpdGhf c3RhdGljX3J1bnRpbWVzXSwKLSsgICAgW2VuYWJsZV9zaGFyZWRfd2l0aF9zdGF0aWNfcnVudGlt ZXNdLCBbMF0sCi0rICAgIFtXaGV0aGVyIG9yIG5vdCB0byBkaXNhbGxvdyBzaGFyZWQgbGlicyB3 aGVuIHJ1bnRpbWUgbGlicyBhcmUgc3RhdGljXSkKLStfTFRfVEFHREVDTChbXSwgW2V4cG9ydF9k eW5hbWljX2ZsYWdfc3BlY10sIFsxXSwKLSsgICAgW0NvbXBpbGVyIGZsYWcgdG8gYWxsb3cgcmVm bGV4aXZlIGRsb3BlbnNdKQotK19MVF9UQUdERUNMKFtdLCBbd2hvbGVfYXJjaGl2ZV9mbGFnX3Nw ZWNdLCBbMV0sCi0rICAgIFtDb21waWxlciBmbGFnIHRvIGdlbmVyYXRlIHNoYXJlZCBvYmplY3Rz IGRpcmVjdGx5IGZyb20gYXJjaGl2ZXNdKQotK19MVF9UQUdERUNMKFtdLCBbY29tcGlsZXJfbmVl ZHNfb2JqZWN0XSwgWzFdLAotKyAgICBbV2hldGhlciB0aGUgY29tcGlsZXIgY29wZXMgd2l0aCBw YXNzaW5nIG5vIG9iamVjdHMgZGlyZWN0bHldKQotK19MVF9UQUdERUNMKFtdLCBbb2xkX2FyY2hp dmVfZnJvbV9uZXdfY21kc10sIFsyXSwKLSsgICAgW0NyZWF0ZSBhbiBvbGQtc3R5bGUgYXJjaGl2 ZSBmcm9tIGEgc2hhcmVkIGFyY2hpdmVdKQotK19MVF9UQUdERUNMKFtdLCBbb2xkX2FyY2hpdmVf ZnJvbV9leHBzeW1zX2NtZHNdLCBbMl0sCi0rICAgIFtDcmVhdGUgYSB0ZW1wb3Jhcnkgb2xkLXN0 eWxlIGFyY2hpdmUgdG8gbGluayBpbnN0ZWFkIG9mIGEgc2hhcmVkIGFyY2hpdmVdKQotK19MVF9U QUdERUNMKFtdLCBbYXJjaGl2ZV9jbWRzXSwgWzJdLCBbQ29tbWFuZHMgdXNlZCB0byBidWlsZCBh IHNoYXJlZCBhcmNoaXZlXSkKLStfTFRfVEFHREVDTChbXSwgW2FyY2hpdmVfZXhwc3ltX2NtZHNd LCBbMl0pCi0rX0xUX1RBR0RFQ0woW10sIFttb2R1bGVfY21kc10sIFsyXSwKLSsgICAgW0NvbW1h bmRzIHVzZWQgdG8gYnVpbGQgYSBsb2FkYWJsZSBtb2R1bGUgaWYgZGlmZmVyZW50IGZyb20gYnVp bGRpbmcKLSsgICAgYSBzaGFyZWQgYXJjaGl2ZS5dKQotK19MVF9UQUdERUNMKFtdLCBbbW9kdWxl X2V4cHN5bV9jbWRzXSwgWzJdKQotK19MVF9UQUdERUNMKFtdLCBbd2l0aF9nbnVfbGRdLCBbMV0s Ci0rICAgIFtXaGV0aGVyIHdlIGFyZSBidWlsZGluZyB3aXRoIEdOVSBsZCBvciBub3RdKQotK19M VF9UQUdERUNMKFtdLCBbYWxsb3dfdW5kZWZpbmVkX2ZsYWddLCBbMV0sCi0rICAgIFtGbGFnIHRo YXQgYWxsb3dzIHNoYXJlZCBsaWJyYXJpZXMgd2l0aCB1bmRlZmluZWQgc3ltYm9scyB0byBiZSBi dWlsdF0pCi0rX0xUX1RBR0RFQ0woW10sIFtub191bmRlZmluZWRfZmxhZ10sIFsxXSwKLSsgICAg W0ZsYWcgdGhhdCBlbmZvcmNlcyBubyB1bmRlZmluZWQgc3ltYm9sc10pCi0rX0xUX1RBR0RFQ0wo W10sIFtoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjXSwgWzFdLAotKyAgICBbRmxhZyB0byBoYXJk Y29kZSAkbGliZGlyIGludG8gYSBiaW5hcnkgZHVyaW5nIGxpbmtpbmcuCi0rICAgIFRoaXMgbXVz dCB3b3JrIGV2ZW4gaWYgJGxpYmRpciBkb2VzIG5vdCBleGlzdF0pCi0rX0xUX1RBR0RFQ0woW10s IFtoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX2xkXSwgWzFdLAotKyAgICBbW0lmIGxkIGlzIHVz ZWQgd2hlbiBsaW5raW5nLCBmbGFnIHRvIGhhcmRjb2RlICRsaWJkaXIgaW50byBhIGJpbmFyeQot KyAgICBkdXJpbmcgbGlua2luZy4gIFRoaXMgbXVzdCB3b3JrIGV2ZW4gaWYgJGxpYmRpciBkb2Vz IG5vdCBleGlzdF1dKQotK19MVF9UQUdERUNMKFtdLCBbaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRv cl0sIFsxXSwKLSsgICAgW1doZXRoZXIgd2UgbmVlZCBhIHNpbmdsZSAiLXJwYXRoIiBmbGFnIHdp dGggYSBzZXBhcmF0ZWQgYXJndW1lbnRdKQotK19MVF9UQUdERUNMKFtdLCBbaGFyZGNvZGVfZGly ZWN0XSwgWzBdLAotKyAgICBbU2V0IHRvICJ5ZXMiIGlmIHVzaW5nIERJUi9saWJOQU1FJHtzaGFy ZWRfZXh0fSBkdXJpbmcgbGlua2luZyBoYXJkY29kZXMKLSsgICAgRElSIGludG8gdGhlIHJlc3Vs dGluZyBiaW5hcnldKQotK19MVF9UQUdERUNMKFtdLCBbaGFyZGNvZGVfZGlyZWN0X2Fic29sdXRl XSwgWzBdLAotKyAgICBbU2V0IHRvICJ5ZXMiIGlmIHVzaW5nIERJUi9saWJOQU1FJHtzaGFyZWRf ZXh0fSBkdXJpbmcgbGlua2luZyBoYXJkY29kZXMKLSsgICAgRElSIGludG8gdGhlIHJlc3VsdGlu ZyBiaW5hcnkgYW5kIHRoZSByZXN1bHRpbmcgbGlicmFyeSBkZXBlbmRlbmN5IGlzCi0rICAgICJh YnNvbHV0ZSIsIGkuZSBpbXBvc3NpYmxlIHRvIGNoYW5nZSBieSBzZXR0aW5nICR7c2hsaWJwYXRo X3Zhcn0gaWYgdGhlCi0rICAgIGxpYnJhcnkgaXMgcmVsb2NhdGVkXSkKLStfTFRfVEFHREVDTChb XSwgW2hhcmRjb2RlX21pbnVzX0xdLCBbMF0sCi0rICAgIFtTZXQgdG8gInllcyIgaWYgdXNpbmcg dGhlIC1MRElSIGZsYWcgZHVyaW5nIGxpbmtpbmcgaGFyZGNvZGVzIERJUgotKyAgICBpbnRvIHRo ZSByZXN1bHRpbmcgYmluYXJ5XSkKLStfTFRfVEFHREVDTChbXSwgW2hhcmRjb2RlX3NobGlicGF0 aF92YXJdLCBbMF0sCi0rICAgIFtTZXQgdG8gInllcyIgaWYgdXNpbmcgU0hMSUJQQVRIX1ZBUj1E SVIgZHVyaW5nIGxpbmtpbmcgaGFyZGNvZGVzIERJUgotKyAgICBpbnRvIHRoZSByZXN1bHRpbmcg YmluYXJ5XSkKLStfTFRfVEFHREVDTChbXSwgW2hhcmRjb2RlX2F1dG9tYXRpY10sIFswXSwKLSsg ICAgW1NldCB0byAieWVzIiBpZiBidWlsZGluZyBhIHNoYXJlZCBsaWJyYXJ5IGF1dG9tYXRpY2Fs bHkgaGFyZGNvZGVzIERJUgotKyAgICBpbnRvIHRoZSBsaWJyYXJ5IGFuZCBhbGwgc3Vic2VxdWVu dCBsaWJyYXJpZXMgYW5kIGV4ZWN1dGFibGVzIGxpbmtlZAotKyAgICBhZ2FpbnN0IGl0XSkKLStf TFRfVEFHREVDTChbXSwgW2luaGVyaXRfcnBhdGhdLCBbMF0sCi0rICAgIFtTZXQgdG8geWVzIGlm IGxpbmtlciBhZGRzIHJ1bnRpbWUgcGF0aHMgb2YgZGVwZW5kZW50IGxpYnJhcmllcwotKyAgICB0 byBydW50aW1lIHBhdGggbGlzdF0pCi0rX0xUX1RBR0RFQ0woW10sIFtsaW5rX2FsbF9kZXBsaWJz XSwgWzBdLAotKyAgICBbV2hldGhlciBsaWJ0b29sIG11c3QgbGluayBhIHByb2dyYW0gYWdhaW5z dCBhbGwgaXRzIGRlcGVuZGVuY3kgbGlicmFyaWVzXSkKLStfTFRfVEFHREVDTChbXSwgW2ZpeF9z cmNmaWxlX3BhdGhdLCBbMV0sCi0rICAgIFtGaXggdGhlIHNoZWxsIHZhcmlhYmxlICRzcmNmaWxl IGZvciB0aGUgY29tcGlsZXJdKQotK19MVF9UQUdERUNMKFtdLCBbYWx3YXlzX2V4cG9ydF9zeW1i b2xzXSwgWzBdLAotKyAgICBbU2V0IHRvICJ5ZXMiIGlmIGV4cG9ydGVkIHN5bWJvbHMgYXJlIHJl cXVpcmVkXSkKLStfTFRfVEFHREVDTChbXSwgW2V4cG9ydF9zeW1ib2xzX2NtZHNdLCBbMl0sCi0r ICAgIFtUaGUgY29tbWFuZHMgdG8gbGlzdCBleHBvcnRlZCBzeW1ib2xzXSkKLStfTFRfVEFHREVD TChbXSwgW2V4Y2x1ZGVfZXhwc3ltc10sIFsxXSwKLSsgICAgW1N5bWJvbHMgdGhhdCBzaG91bGQg bm90IGJlIGxpc3RlZCBpbiB0aGUgcHJlbG9hZGVkIHN5bWJvbHNdKQotK19MVF9UQUdERUNMKFtd LCBbaW5jbHVkZV9leHBzeW1zXSwgWzFdLAotKyAgICBbU3ltYm9scyB0aGF0IG11c3QgYWx3YXlz IGJlIGV4cG9ydGVkXSkKLStfTFRfVEFHREVDTChbXSwgW3ByZWxpbmtfY21kc10sIFsyXSwKLSsg ICAgW0NvbW1hbmRzIG5lY2Vzc2FyeSBmb3IgbGlua2luZyBwcm9ncmFtcyAoYWdhaW5zdCBsaWJy YXJpZXMpIHdpdGggdGVtcGxhdGVzXSkKLStfTFRfVEFHREVDTChbXSwgW2ZpbGVfbGlzdF9zcGVj XSwgWzFdLAotKyAgICBbU3BlY2lmeSBmaWxlbmFtZSBjb250YWluaW5nIGlucHV0IGZpbGVzXSkK LStkbmwgRklYTUU6IE5vdCB5ZXQgaW1wbGVtZW50ZWQKLStkbmwgX0xUX1RBR0RFQ0woW10sIFt0 aHJlYWRfc2FmZV9mbGFnX3NwZWNdLCBbMV0sCi0rZG5sICAgIFtDb21waWxlciBmbGFnIHRvIGdl bmVyYXRlIHRocmVhZCBzYWZlIG9iamVjdHNdKQotK10pIyBfTFRfTElOS0VSX1NITElCUwotKwot KwotKyMgX0xUX0xBTkdfQ19DT05GSUcoW1RBR10pCi0rIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KLSsjIEVuc3VyZSB0aGF0IHRoZSBjb25maWd1cmF0aW9uIHZhcmlhYmxlcyBmb3IgYSBDIGNv bXBpbGVyIGFyZSBzdWl0YWJseQotKyMgZGVmaW5lZC4gIFRoZXNlIHZhcmlhYmxlcyBhcmUgc3Vi c2VxdWVudGx5IHVzZWQgYnkgX0xUX0NPTkZJRyB0byB3cml0ZQotKyMgdGhlIGNvbXBpbGVyIGNv bmZpZ3VyYXRpb24gdG8gYGxpYnRvb2wnLgotK200X2RlZnVuKFtfTFRfTEFOR19DX0NPTkZJR10s Ci0rW200X3JlcXVpcmUoW19MVF9ERUNMX0VHUkVQXSlkbmwKLStsdF9zYXZlX0NDPSIkQ0MiCi0r QUNfTEFOR19QVVNIKEMpCi0rCi0rIyBTb3VyY2UgZmlsZSBleHRlbnNpb24gZm9yIEMgdGVzdCBz b3VyY2VzLgotK2FjX2V4dD1jCi0rCi0rIyBPYmplY3QgZmlsZSBleHRlbnNpb24gZm9yIGNvbXBp bGVkIEMgdGVzdCBzb3VyY2VzLgotK29iamV4dD1vCi0rX0xUX1RBR1ZBUihvYmpleHQsICQxKT0k b2JqZXh0Ci0rCi0rIyBDb2RlIHRvIGJlIHVzZWQgaW4gc2ltcGxlIGNvbXBpbGUgdGVzdHMKLSts dF9zaW1wbGVfY29tcGlsZV90ZXN0X2NvZGU9ImludCBzb21lX3ZhcmlhYmxlID0gMDsiCi0rCi0r IyBDb2RlIHRvIGJlIHVzZWQgaW4gc2ltcGxlIGxpbmsgdGVzdHMKLStsdF9zaW1wbGVfbGlua190 ZXN0X2NvZGU9J2ludCBtYWluKCl7cmV0dXJuKDApO30nCi0rCi0rX0xUX1RBR19DT01QSUxFUgot KyMgU2F2ZSB0aGUgZGVmYXVsdCBjb21waWxlciwgc2luY2UgaXQgZ2V0cyBvdmVyd3JpdHRlbiB3 aGVuIHRoZSBvdGhlcgotKyMgdGFncyBhcmUgYmVpbmcgdGVzdGVkLCBhbmQgX0xUX1RBR1ZBUihj b21waWxlciwgW10pIGlzIGEgTk9QLgotK2NvbXBpbGVyX0RFRkFVTFQ9JENDCi0rCi0rIyBzYXZl IHdhcm5pbmdzL2JvaWxlcnBsYXRlIG9mIHNpbXBsZSB0ZXN0IGNvZGUKLStfTFRfQ09NUElMRVJf Qk9JTEVSUExBVEUKLStfTFRfTElOS0VSX0JPSUxFUlBMQVRFCi0rCi0rIyMgQ0FWRUFUIEVNUFRP UjoKLSsjIyBUaGVyZSBpcyBubyBlbmNhcHN1bGF0aW9uIHdpdGhpbiB0aGUgZm9sbG93aW5nIG1h Y3JvcywgZG8gbm90IGNoYW5nZQotKyMjIHRoZSBydW5uaW5nIG9yZGVyIG9yIG90aGVyd2lzZSBt b3ZlIHRoZW0gYXJvdW5kIHVubGVzcyB5b3Uga25vdyBleGFjdGx5Ci0rIyMgd2hhdCB5b3UgYXJl IGRvaW5nLi4uCi0raWYgdGVzdCAtbiAiJGNvbXBpbGVyIjsgdGhlbgotKyAgX0xUX0NPTVBJTEVS X05PX1JUVEkoJDEpCi0rICBfTFRfQ09NUElMRVJfUElDKCQxKQotKyAgX0xUX0NPTVBJTEVSX0Nf TygkMSkKLSsgIF9MVF9DT01QSUxFUl9GSUxFX0xPQ0tTKCQxKQotKyAgX0xUX0xJTktFUl9TSExJ QlMoJDEpCi0rICBfTFRfU1lTX0RZTkFNSUNfTElOS0VSKCQxKQotKyAgX0xUX0xJTktFUl9IQVJE Q09ERV9MSUJQQVRIKCQxKQotKyAgTFRfU1lTX0RMT1BFTl9TRUxGCi0rICBfTFRfQ01EX1NUUklQ TElCCi0rCi0rICAjIFJlcG9ydCB3aGljaCBsaWJyYXJ5IHR5cGVzIHdpbGwgYWN0dWFsbHkgYmUg YnVpbHQKLSsgIEFDX01TR19DSEVDS0lORyhbaWYgbGlidG9vbCBzdXBwb3J0cyBzaGFyZWQgbGli cmFyaWVzXSkKLSsgIEFDX01TR19SRVNVTFQoWyRjYW5fYnVpbGRfc2hhcmVkXSkKLSsKLSsgIEFD X01TR19DSEVDS0lORyhbd2hldGhlciB0byBidWlsZCBzaGFyZWQgbGlicmFyaWVzXSkKLSsgIHRl c3QgIiRjYW5fYnVpbGRfc2hhcmVkIiA9ICJubyIgJiYgZW5hYmxlX3NoYXJlZD1ubwotKwotKyAg IyBPbiBBSVgsIHNoYXJlZCBsaWJyYXJpZXMgYW5kIHN0YXRpYyBsaWJyYXJpZXMgdXNlIHRoZSBz YW1lIG5hbWVzcGFjZSwgYW5kCi0rICAjIGFyZSBhbGwgYnVpbHQgZnJvbSBQSUMuCi0rICBjYXNl ICRob3N0X29zIGluCi0rICBhaXgzKikKLSsgICAgdGVzdCAiJGVuYWJsZV9zaGFyZWQiID0geWVz ICYmIGVuYWJsZV9zdGF0aWM9bm8KLSsgICAgaWYgdGVzdCAtbiAiJFJBTkxJQiI7IHRoZW4KLSsg ICAgICBhcmNoaXZlX2NtZHM9IiRhcmNoaXZlX2NtZHN+XCRSQU5MSUIgXCRsaWIiCi0rICAgICAg cG9zdGluc3RhbGxfY21kcz0nJFJBTkxJQiAkbGliJwotKyAgICBmaQotKyAgICA7OwotKwotKyAg YWl4W1s0LTldXSopCi0rICAgIGlmIHRlc3QgIiRob3N0X2NwdSIgIT0gaWE2NCAmJiB0ZXN0ICIk YWl4X3VzZV9ydW50aW1lbGlua2luZyIgPSBubyA7IHRoZW4KLSsgICAgICB0ZXN0ICIkZW5hYmxl X3NoYXJlZCIgPSB5ZXMgJiYgZW5hYmxlX3N0YXRpYz1ubwotKyAgICBmaQotKyAgICA7OwotKyAg ZXNhYwotKyAgQUNfTVNHX1JFU1VMVChbJGVuYWJsZV9zaGFyZWRdKQotKwotKyAgQUNfTVNHX0NI RUNLSU5HKFt3aGV0aGVyIHRvIGJ1aWxkIHN0YXRpYyBsaWJyYXJpZXNdKQotKyAgIyBNYWtlIHN1 cmUgZWl0aGVyIGVuYWJsZV9zaGFyZWQgb3IgZW5hYmxlX3N0YXRpYyBpcyB5ZXMuCi0rICB0ZXN0 ICIkZW5hYmxlX3NoYXJlZCIgPSB5ZXMgfHwgZW5hYmxlX3N0YXRpYz15ZXMKLSsgIEFDX01TR19S RVNVTFQoWyRlbmFibGVfc3RhdGljXSkKLSsKLSsgIF9MVF9DT05GSUcoJDEpCi0rZmkKLStBQ19M QU5HX1BPUAotK0NDPSIkbHRfc2F2ZV9DQyIKLStdKSMgX0xUX0xBTkdfQ19DT05GSUcKLSsKLSsK LSsjIF9MVF9QUk9HX0NYWAotKyMgLS0tLS0tLS0tLS0tCi0rIyBTaW5jZSBBQ19QUk9HX0NYWCBp cyBicm9rZW4sIGluIHRoYXQgaXQgcmV0dXJucyBnKysgaWYgdGhlcmUgaXMgbm8gYysrCi0rIyBj b21waWxlciwgd2UgaGF2ZSBvdXIgb3duIHZlcnNpb24gaGVyZS4KLSttNF9kZWZ1bihbX0xUX1BS T0dfQ1hYXSwKLStbCi0rcHVzaGRlZihbQUNfTVNHX0VSUk9SXSwgW19sdF9jYXVnaHRfQ1hYX2Vy cm9yPXllc10pCi0rQUNfUFJPR19DWFgKLStpZiB0ZXN0IC1uICIkQ1hYIiAmJiAoIHRlc3QgIlgk Q1hYIiAhPSAiWG5vIiAmJgotKyAgICAoICh0ZXN0ICJYJENYWCIgPSAiWGcrKyIgJiYgYGcrKyAt diA+L2Rldi9udWxsIDI+JjFgICkgfHwKLSsgICAgKHRlc3QgIlgkQ1hYIiAhPSAiWGcrKyIpKSkg OyB0aGVuCi0rICBBQ19QUk9HX0NYWENQUAotK2Vsc2UKLSsgIF9sdF9jYXVnaHRfQ1hYX2Vycm9y PXllcwotK2ZpCi0rcG9wZGVmKFtBQ19NU0dfRVJST1JdKQotK10pIyBfTFRfUFJPR19DWFgKLSsK LStkbmwgYWNsb2NhbC0xLjQgYmFja3dhcmRzIGNvbXBhdGliaWxpdHk6Ci0rZG5sIEFDX0RFRlVO KFtfTFRfUFJPR19DWFhdLCBbXSkKLSsKLSsKLSsjIF9MVF9MQU5HX0NYWF9DT05GSUcoW1RBR10p Ci0rIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotKyMgRW5zdXJlIHRoYXQgdGhlIGNvbmZp Z3VyYXRpb24gdmFyaWFibGVzIGZvciBhIEMrKyBjb21waWxlciBhcmUgc3VpdGFibHkKLSsjIGRl ZmluZWQuICBUaGVzZSB2YXJpYWJsZXMgYXJlIHN1YnNlcXVlbnRseSB1c2VkIGJ5IF9MVF9DT05G SUcgdG8gd3JpdGUKLSsjIHRoZSBjb21waWxlciBjb25maWd1cmF0aW9uIHRvIGBsaWJ0b29sJy4K LSttNF9kZWZ1bihbX0xUX0xBTkdfQ1hYX0NPTkZJR10sCi0rW0FDX1JFUVVJUkUoW19MVF9QUk9H X0NYWF0pZG5sCi0rbTRfcmVxdWlyZShbX0xUX0ZJTEVVVElMU19ERUZBVUxUU10pZG5sCi0rbTRf cmVxdWlyZShbX0xUX0RFQ0xfRUdSRVBdKWRubAotKwotK0FDX0xBTkdfUFVTSChDKyspCi0rX0xU X1RBR1ZBUihhcmNoaXZlX2NtZHNfbmVlZF9sYywgJDEpPW5vCi0rX0xUX1RBR1ZBUihhbGxvd191 bmRlZmluZWRfZmxhZywgJDEpPQotK19MVF9UQUdWQVIoYWx3YXlzX2V4cG9ydF9zeW1ib2xzLCAk MSk9bm8KLStfTFRfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0KLStfTFRfVEFHVkFS KGNvbXBpbGVyX25lZWRzX29iamVjdCwgJDEpPW5vCi0rX0xUX1RBR1ZBUihleHBvcnRfZHluYW1p Y19mbGFnX3NwZWMsICQxKT0KLStfTFRfVEFHVkFSKGhhcmRjb2RlX2RpcmVjdCwgJDEpPW5vCi0r X0xUX1RBR1ZBUihoYXJkY29kZV9kaXJlY3RfYWJzb2x1dGUsICQxKT1ubwotK19MVF9UQUdWQVIo aGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPQotK19MVF9UQUdWQVIoaGFyZGNvZGVfbGli ZGlyX2ZsYWdfc3BlY19sZCwgJDEpPQotK19MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX3NlcGFy YXRvciwgJDEpPQotK19MVF9UQUdWQVIoaGFyZGNvZGVfbWludXNfTCwgJDEpPW5vCi0rX0xUX1RB R1ZBUihoYXJkY29kZV9zaGxpYnBhdGhfdmFyLCAkMSk9dW5zdXBwb3J0ZWQKLStfTFRfVEFHVkFS KGhhcmRjb2RlX2F1dG9tYXRpYywgJDEpPW5vCi0rX0xUX1RBR1ZBUihpbmhlcml0X3JwYXRoLCAk MSk9bm8KLStfTFRfVEFHVkFSKG1vZHVsZV9jbWRzLCAkMSk9Ci0rX0xUX1RBR1ZBUihtb2R1bGVf ZXhwc3ltX2NtZHMsICQxKT0KLStfTFRfVEFHVkFSKGxpbmtfYWxsX2RlcGxpYnMsICQxKT11bmtu b3duCi0rX0xUX1RBR1ZBUihvbGRfYXJjaGl2ZV9jbWRzLCAkMSk9JG9sZF9hcmNoaXZlX2NtZHMK LStfTFRfVEFHVkFSKG5vX3VuZGVmaW5lZF9mbGFnLCAkMSk9Ci0rX0xUX1RBR1ZBUih3aG9sZV9h cmNoaXZlX2ZsYWdfc3BlYywgJDEpPQotK19MVF9UQUdWQVIoZW5hYmxlX3NoYXJlZF93aXRoX3N0 YXRpY19ydW50aW1lcywgJDEpPW5vCi0rCi0rIyBTb3VyY2UgZmlsZSBleHRlbnNpb24gZm9yIEMr KyB0ZXN0IHNvdXJjZXMuCi0rYWNfZXh0PWNwcAotKwotKyMgT2JqZWN0IGZpbGUgZXh0ZW5zaW9u IGZvciBjb21waWxlZCBDKysgdGVzdCBzb3VyY2VzLgotK29iamV4dD1vCi0rX0xUX1RBR1ZBUihv YmpleHQsICQxKT0kb2JqZXh0Ci0rCi0rIyBObyBzZW5zZSBpbiBydW5uaW5nIGFsbCB0aGVzZSB0 ZXN0cyBpZiB3ZSBhbHJlYWR5IGRldGVybWluZWQgdGhhdAotKyMgdGhlIENYWCBjb21waWxlciBp c24ndCB3b3JraW5nLiAgU29tZSB2YXJpYWJsZXMgKGxpa2UgZW5hYmxlX3NoYXJlZCkKLSsjIGFy ZSBjdXJyZW50bHkgYXNzdW1lZCB0byBhcHBseSB0byBhbGwgY29tcGlsZXJzIG9uIHRoaXMgcGxh dGZvcm0sCi0rIyBhbmQgd2lsbCBiZSBjb3JydXB0ZWQgYnkgc2V0dGluZyB0aGVtIGJhc2VkIG9u IGEgbm9uLXdvcmtpbmcgY29tcGlsZXIuCi0raWYgdGVzdCAiJF9sdF9jYXVnaHRfQ1hYX2Vycm9y IiAhPSB5ZXM7IHRoZW4KLSsgICMgQ29kZSB0byBiZSB1c2VkIGluIHNpbXBsZSBjb21waWxlIHRl c3RzCi0rICBsdF9zaW1wbGVfY29tcGlsZV90ZXN0X2NvZGU9ImludCBzb21lX3ZhcmlhYmxlID0g MDsiCi0rCi0rICAjIENvZGUgdG8gYmUgdXNlZCBpbiBzaW1wbGUgbGluayB0ZXN0cwotKyAgbHRf c2ltcGxlX2xpbmtfdGVzdF9jb2RlPSdpbnQgbWFpbihpbnQsIGNoYXIgKltbXV0pIHsgcmV0dXJu KDApOyB9JwotKwotKyAgIyBsdG1haW4gb25seSB1c2VzICRDQyBmb3IgdGFnZ2VkIGNvbmZpZ3Vy YXRpb25zIHNvIG1ha2Ugc3VyZSAkQ0MgaXMgc2V0LgotKyAgX0xUX1RBR19DT01QSUxFUgotKwot KyAgIyBzYXZlIHdhcm5pbmdzL2JvaWxlcnBsYXRlIG9mIHNpbXBsZSB0ZXN0IGNvZGUKLSsgIF9M VF9DT01QSUxFUl9CT0lMRVJQTEFURQotKyAgX0xUX0xJTktFUl9CT0lMRVJQTEFURQotKwotKyAg IyBBbGxvdyBDQyB0byBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3VtZW50cy4KLSsgIGx0X3Nh dmVfQ0M9JENDCi0rICBsdF9zYXZlX0xEPSRMRAotKyAgbHRfc2F2ZV9HQ0M9JEdDQwotKyAgR0ND PSRHWFgKLSsgIGx0X3NhdmVfd2l0aF9nbnVfbGQ9JHdpdGhfZ251X2xkCi0rICBsdF9zYXZlX3Bh dGhfTEQ9JGx0X2N2X3BhdGhfTEQKLSsgIGlmIHRlc3QgLW4gIiR7bHRfY3ZfcHJvZ19nbnVfbGRj eHgrc2V0fSI7IHRoZW4KLSsgICAgbHRfY3ZfcHJvZ19nbnVfbGQ9JGx0X2N2X3Byb2dfZ251X2xk Y3h4Ci0rICBlbHNlCi0rICAgICRhc191bnNldCBsdF9jdl9wcm9nX2dudV9sZAotKyAgZmkKLSsg IGlmIHRlc3QgLW4gIiR7bHRfY3ZfcGF0aF9MRENYWCtzZXR9IjsgdGhlbgotKyAgICBsdF9jdl9w YXRoX0xEPSRsdF9jdl9wYXRoX0xEQ1hYCi0rICBlbHNlCi0rICAgICRhc191bnNldCBsdF9jdl9w YXRoX0xECi0rICBmaQotKyAgdGVzdCAteiAiJHtMRENYWCtzZXR9IiB8fCBMRD0kTERDWFgKLSsg IENDPSR7Q1hYLSJjKysifQotKyAgY29tcGlsZXI9JENDCi0rICBfTFRfVEFHVkFSKGNvbXBpbGVy LCAkMSk9JENDCi0rICBfTFRfQ0NfQkFTRU5BTUUoWyRjb21waWxlcl0pCi0rCi0rICBpZiB0ZXN0 IC1uICIkY29tcGlsZXIiOyB0aGVuCi0rICAgICMgV2UgZG9uJ3Qgd2FudCAtZm5vLWV4Y2VwdGlv biB3aGVuIGNvbXBpbGluZyBDKysgY29kZSwgc28gc2V0IHRoZQotKyAgICAjIG5vX2J1aWx0aW5f ZmxhZyBzZXBhcmF0ZWx5Ci0rICAgIGlmIHRlc3QgIiRHWFgiID0geWVzOyB0aGVuCi0rICAgICAg X0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX25vX2J1aWx0aW5fZmxhZywgJDEpPScgLWZuby1i dWlsdGluJwotKyAgICBlbHNlCi0rICAgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX25v X2J1aWx0aW5fZmxhZywgJDEpPQotKyAgICBmaQotKwotKyAgICBpZiB0ZXN0ICIkR1hYIiA9IHll czsgdGhlbgotKyAgICAgICMgU2V0IHVwIGRlZmF1bHQgR05VIEMrKyBjb25maWd1cmF0aW9uCi0r Ci0rICAgICAgTFRfUEFUSF9MRAotKwotKyAgICAgICMgQ2hlY2sgaWYgR05VIEMrKyB1c2VzIEdO VSBsZCBhcyB0aGUgdW5kZXJseWluZyBsaW5rZXIsIHNpbmNlIHRoZQotKyAgICAgICMgYXJjaGl2 aW5nIGNvbW1hbmRzIGJlbG93IGFzc3VtZSB0aGF0IEdOVSBsZCBpcyBiZWluZyB1c2VkLgotKyAg ICAgIGlmIHRlc3QgIiR3aXRoX2dudV9sZCIgPSB5ZXM7IHRoZW4KLSsgICAgICAgIF9MVF9UQUdW QVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkIC1ub3N0ZGxpYiAkcHJlZGVwX29iamVj dHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgJHt3 bH0tc29uYW1lICR3bCRzb25hbWUgLW8gJGxpYicKLSsgICAgICAgIF9MVF9UQUdWQVIoYXJjaGl2 ZV9leHBzeW1fY21kcywgJDEpPSckQ0MgLXNoYXJlZCAtbm9zdGRsaWIgJHByZWRlcF9vYmplY3Rz ICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9 LXNvbmFtZSAkd2wkc29uYW1lICR7d2x9LXJldGFpbi1zeW1ib2xzLWZpbGUgJHdsJGV4cG9ydF9z eW1ib2xzIC1vICRsaWInCi0rCi0rICAgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9m bGFnX3NwZWMsICQxKT0nJHt3bH0tcnBhdGggJHt3bH0kbGliZGlyJwotKyAgICAgICAgX0xUX1RB R1ZBUihleHBvcnRfZHluYW1pY19mbGFnX3NwZWMsICQxKT0nJHt3bH0tLWV4cG9ydC1keW5hbWlj JwotKwotKyAgICAgICAgIyBJZiBhcmNoaXZlX2NtZHMgcnVucyBMRCwgbm90IENDLCB3bGFyYyBz aG91bGQgYmUgZW1wdHkKLSsgICAgICAgICMgWFhYIEkgdGhpbmsgd2xhcmMgY2FuIGJlIGVsaW1p bmF0ZWQgaW4gbHRjZi1jeHgsIGJ1dCBJIG5lZWQgdG8KLSsgICAgICAgICMgICAgIGludmVzdGln YXRlIGl0IGEgbGl0dGxlIGJpdCBtb3JlLiAoTU0pCi0rICAgICAgICB3bGFyYz0nJHt3bH0nCi0r Ci0rICAgICAgICAjIGFuY2llbnQgR05VIGxkIGRpZG4ndCBzdXBwb3J0IC0td2hvbGUtYXJjaGl2 ZSBldC4gYWwuCi0rICAgICAgICBpZiBldmFsICJgJENDIC1wcmludC1wcm9nLW5hbWU9bGRgIC0t aGVscCAyPiYxIiB8Ci0rCSAgJEdSRVAgJ25vLXdob2xlLWFyY2hpdmUnID4gL2Rldi9udWxsOyB0 aGVuCi0rICAgICAgICAgIF9MVF9UQUdWQVIod2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWMsICQxKT0i JHdsYXJjIictLXdob2xlLWFyY2hpdmUkY29udmVuaWVuY2UgJyIkd2xhcmMiJy0tbm8td2hvbGUt YXJjaGl2ZScKLSsgICAgICAgIGVsc2UKLSsgICAgICAgICAgX0xUX1RBR1ZBUih3aG9sZV9hcmNo aXZlX2ZsYWdfc3BlYywgJDEpPQotKyAgICAgICAgZmkKLSsgICAgICBlbHNlCi0rICAgICAgICB3 aXRoX2dudV9sZD1ubwotKyAgICAgICAgd2xhcmM9Ci0rCi0rICAgICAgICAjIEEgZ2VuZXJpYyBh bmQgdmVyeSBzaW1wbGUgZGVmYXVsdCBzaGFyZWQgbGlicmFyeSBjcmVhdGlvbgotKyAgICAgICAg IyBjb21tYW5kIGZvciBHTlUgQysrIGZvciB0aGUgY2FzZSB3aGVyZSBpdCB1c2VzIHRoZSBuYXRp dmUKLSsgICAgICAgICMgbGlua2VyLCBpbnN0ZWFkIG9mIEdOVSBsZC4gIElmIHBvc3NpYmxlLCB0 aGlzIHNldHRpbmcgc2hvdWxkCi0rICAgICAgICAjIG92ZXJyaWRkZW4gdG8gdGFrZSBhZHZhbnRh Z2Ugb2YgdGhlIG5hdGl2ZSBsaW5rZXIgZmVhdHVyZXMgb24KLSsgICAgICAgICMgdGhlIHBsYXRm b3JtIGl0IGlzIGJlaW5nIHVzZWQgb24uCi0rICAgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21k cywgJDEpPSckQ0MgLXNoYXJlZCAtbm9zdGRsaWIgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRk ZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzIC1vICRsaWInCi0rICAgICAg ZmkKLSsKLSsgICAgICAjIENvbW1hbmRzIHRvIG1ha2UgY29tcGlsZXIgcHJvZHVjZSB2ZXJib3Nl IG91dHB1dCB0aGF0IGxpc3RzCi0rICAgICAgIyB3aGF0ICJoaWRkZW4iIGxpYnJhcmllcywgb2Jq ZWN0IGZpbGVzIGFuZCBmbGFncyBhcmUgdXNlZCB3aGVuCi0rICAgICAgIyBsaW5raW5nIGEgc2hh cmVkIGxpYnJhcnkuCi0rICAgICAgb3V0cHV0X3ZlcmJvc2VfbGlua19jbWQ9JyRDQyAtc2hhcmVk ICRDRkxBR1MgLXYgY29uZnRlc3QuJG9iamV4dCAyPiYxIHwgJEdSRVAgIlwtTCInCi0rCi0rICAg IGVsc2UKLSsgICAgICBHWFg9bm8KLSsgICAgICB3aXRoX2dudV9sZD1ubwotKyAgICAgIHdsYXJj PQotKyAgICBmaQotKwotKyAgICAjIFBPUlRNRTogZmlsbCBpbiBhIGRlc2NyaXB0aW9uIG9mIHlv dXIgc3lzdGVtJ3MgQysrIGxpbmsgY2hhcmFjdGVyaXN0aWNzCi0rICAgIEFDX01TR19DSEVDS0lO Ryhbd2hldGhlciB0aGUgJGNvbXBpbGVyIGxpbmtlciAoJExEKSBzdXBwb3J0cyBzaGFyZWQgbGli cmFyaWVzXSkKLSsgICAgX0xUX1RBR1ZBUihsZF9zaGxpYnMsICQxKT15ZXMKLSsgICAgY2FzZSAk aG9zdF9vcyBpbgotKyAgICAgIGFpeDMqKQotKyAgICAgICAgIyBGSVhNRTogaW5zZXJ0IHByb3Bl ciBDKysgbGlicmFyeSBzdXBwb3J0Ci0rICAgICAgICBfTFRfVEFHVkFSKGxkX3NobGlicywgJDEp PW5vCi0rICAgICAgICA7OwotKyAgICAgIGFpeFtbNC05XV0qKQotKyAgICAgICAgaWYgdGVzdCAi JGhvc3RfY3B1IiA9IGlhNjQ7IHRoZW4KLSsgICAgICAgICAgIyBPbiBJQTY0LCB0aGUgbGlua2Vy IGRvZXMgcnVuIHRpbWUgbGlua2luZyBieSBkZWZhdWx0LCBzbyB3ZSBkb24ndAotKyAgICAgICAg ICAjIGhhdmUgdG8gZG8gYW55dGhpbmcgc3BlY2lhbC4KLSsgICAgICAgICAgYWl4X3VzZV9ydW50 aW1lbGlua2luZz1ubwotKyAgICAgICAgICBleHBfc3ltX2ZsYWc9Jy1CZXhwb3J0JwotKyAgICAg ICAgICBub19lbnRyeV9mbGFnPSIiCi0rICAgICAgICBlbHNlCi0rICAgICAgICAgIGFpeF91c2Vf cnVudGltZWxpbmtpbmc9bm8KLSsKLSsgICAgICAgICAgIyBUZXN0IGlmIHdlIGFyZSB0cnlpbmcg dG8gdXNlIHJ1biB0aW1lIGxpbmtpbmcgb3Igbm9ybWFsCi0rICAgICAgICAgICMgQUlYIHN0eWxl IGxpbmtpbmcuIElmIC1icnRsIGlzIHNvbWV3aGVyZSBpbiBMREZMQUdTLCB3ZQotKyAgICAgICAg ICAjIG5lZWQgdG8gZG8gcnVudGltZSBsaW5raW5nLgotKyAgICAgICAgICBjYXNlICRob3N0X29z IGluIGFpeDQuW1syM11dfGFpeDQuW1syM11dLip8YWl4W1s1LTldXSopCi0rCSAgICBmb3IgbGRf ZmxhZyBpbiAkTERGTEFHUzsgZG8KLSsJICAgICAgY2FzZSAkbGRfZmxhZyBpbgotKwkgICAgICAq LWJydGwqKQotKwkgICAgICAgIGFpeF91c2VfcnVudGltZWxpbmtpbmc9eWVzCi0rCSAgICAgICAg YnJlYWsKLSsJICAgICAgICA7OwotKwkgICAgICBlc2FjCi0rCSAgICBkb25lCi0rCSAgICA7Owot KyAgICAgICAgICBlc2FjCi0rCi0rICAgICAgICAgIGV4cF9zeW1fZmxhZz0nLWJleHBvcnQnCi0r ICAgICAgICAgIG5vX2VudHJ5X2ZsYWc9Jy1ibm9lbnRyeScKLSsgICAgICAgIGZpCi0rCi0rICAg ICAgICAjIFdoZW4gbGFyZ2UgZXhlY3V0YWJsZXMgb3Igc2hhcmVkIG9iamVjdHMgYXJlIGJ1aWx0 LCBBSVggbGQgY2FuCi0rICAgICAgICAjIGhhdmUgcHJvYmxlbXMgY3JlYXRpbmcgdGhlIHRhYmxl IG9mIGNvbnRlbnRzLiAgSWYgbGlua2luZyBhIGxpYnJhcnkKLSsgICAgICAgICMgb3IgcHJvZ3Jh bSByZXN1bHRzIGluICJlcnJvciBUT0Mgb3ZlcmZsb3ciIGFkZCAtbW1pbmltYWwtdG9jIHRvCi0r ICAgICAgICAjIENYWEZMQUdTL0NGTEFHUyBmb3IgZysrL2djYy4gIEluIHRoZSBjYXNlcyB3aGVy ZSB0aGF0IGlzIG5vdAotKyAgICAgICAgIyBlbm91Z2ggdG8gZml4IHRoZSBwcm9ibGVtLCBhZGQg LVdsLC1iYmlndG9jIHRvIExERkxBR1MuCi0rCi0rICAgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVf Y21kcywgJDEpPScnCi0rICAgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2RpcmVjdCwgJDEpPXll cwotKyAgICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9kaXJlY3RfYWJzb2x1dGUsICQxKT15ZXMK LSsgICAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciwgJDEpPSc6Jwot KyAgICAgICAgX0xUX1RBR1ZBUihsaW5rX2FsbF9kZXBsaWJzLCAkMSk9eWVzCi0rICAgICAgICBf TFRfVEFHVkFSKGZpbGVfbGlzdF9zcGVjLCAkMSk9JyR7d2x9LWYsJwotKwotKyAgICAgICAgaWYg dGVzdCAiJEdYWCIgPSB5ZXM7IHRoZW4KLSsgICAgICAgICAgY2FzZSAkaG9zdF9vcyBpbiBhaXg0 LltbMDEyXV18YWl4NC5bWzAxMl1dLiopCi0rICAgICAgICAgICMgV2Ugb25seSB3YW50IHRvIGRv IHRoaXMgb24gQUlYIDQuMiBhbmQgbG93ZXIsIHRoZSBjaGVjawotKyAgICAgICAgICAjIGJlbG93 IGZvciBicm9rZW4gY29sbGVjdDIgZG9lc24ndCB3b3JrIHVuZGVyIDQuMysKLSsJICBjb2xsZWN0 Mm5hbWU9YCR7Q0N9IC1wcmludC1wcm9nLW5hbWU9Y29sbGVjdDJgCi0rCSAgaWYgdGVzdCAtZiAi JGNvbGxlY3QybmFtZSIgJiYKLSsJICAgICBzdHJpbmdzICIkY29sbGVjdDJuYW1lIiB8ICRHUkVQ IHJlc29sdmVfbGliX25hbWUgPi9kZXYvbnVsbAotKwkgIHRoZW4KLSsJICAgICMgV2UgaGF2ZSBy ZXdvcmtlZCBjb2xsZWN0MgotKwkgICAgOgotKwkgIGVsc2UKLSsJICAgICMgV2UgaGF2ZSBvbGQg Y29sbGVjdDIKLSsJICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfZGlyZWN0LCAkMSk9dW5zdXBwb3J0 ZWQKLSsJICAgICMgSXQgZmFpbHMgdG8gZmluZCB1bmluc3RhbGxlZCBsaWJyYXJpZXMgd2hlbiB0 aGUgdW5pbnN0YWxsZWQKLSsJICAgICMgcGF0aCBpcyBub3QgbGlzdGVkIGluIHRoZSBsaWJwYXRo LiAgU2V0dGluZyBoYXJkY29kZV9taW51c19MCi0rCSAgICAjIHRvIHVuc3VwcG9ydGVkIGZvcmNl cyByZWxpbmtpbmcKLSsJICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbWludXNfTCwgJDEpPXllcwot KwkgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9Jy1MJGxpYmRp cicKLSsJICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciwgJDEpPQotKwkg IGZpCi0rICAgICAgICAgIGVzYWMKLSsgICAgICAgICAgc2hhcmVkX2ZsYWc9Jy1zaGFyZWQnCi0r CSAgaWYgdGVzdCAiJGFpeF91c2VfcnVudGltZWxpbmtpbmciID0geWVzOyB0aGVuCi0rCSAgICBz aGFyZWRfZmxhZz0iJHNoYXJlZF9mbGFnICInJHt3bH0tRycKLSsJICBmaQotKyAgICAgICAgZWxz ZQotKyAgICAgICAgICAjIG5vdCB1c2luZyBnY2MKLSsgICAgICAgICAgaWYgdGVzdCAiJGhvc3Rf Y3B1IiA9IGlhNjQ7IHRoZW4KLSsJICAjIFZpc3VhbEFnZSBDKyssIFZlcnNpb24gNS41IGZvciBB SVggNUwgZm9yIElBLTY0LCBCZXRhIDMgUmVsZWFzZQotKwkgICMgY2hva2VzIG9uIC1XbCwtRy4g VGhlIGZvbGxvd2luZyBsaW5lIGlzIGNvcnJlY3Q6Ci0rCSAgc2hhcmVkX2ZsYWc9Jy1HJwotKyAg ICAgICAgICBlbHNlCi0rCSAgICBpZiB0ZXN0ICIkYWl4X3VzZV9ydW50aW1lbGlua2luZyIgPSB5 ZXM7IHRoZW4KLSsJICAgICAgc2hhcmVkX2ZsYWc9JyR7d2x9LUcnCi0rCSAgICBlbHNlCi0rCSAg ICAgIHNoYXJlZF9mbGFnPScke3dsfS1iTTpTUkUnCi0rCSAgICBmaQotKyAgICAgICAgICBmaQot KyAgICAgICAgZmkKLSsKLSsgICAgICAgIF9MVF9UQUdWQVIoZXhwb3J0X2R5bmFtaWNfZmxhZ19z cGVjLCAkMSk9JyR7d2x9LWJleHBhbGwnCi0rICAgICAgICAjIEl0IHNlZW1zIHRoYXQgLWJleHBh bGwgZG9lcyBub3QgZXhwb3J0IHN5bWJvbHMgYmVnaW5uaW5nIHdpdGgKLSsgICAgICAgICMgdW5k ZXJzY29yZSAoXyksIHNvIGl0IGlzIGJldHRlciB0byBnZW5lcmF0ZSBhIGxpc3Qgb2Ygc3ltYm9s cyB0bwotKwkjIGV4cG9ydC4KLSsgICAgICAgIF9MVF9UQUdWQVIoYWx3YXlzX2V4cG9ydF9zeW1i b2xzLCAkMSk9eWVzCi0rICAgICAgICBpZiB0ZXN0ICIkYWl4X3VzZV9ydW50aW1lbGlua2luZyIg PSB5ZXM7IHRoZW4KLSsgICAgICAgICAgIyBXYXJuaW5nIC0gd2l0aG91dCB1c2luZyB0aGUgb3Ro ZXIgcnVudGltZSBsb2FkaW5nIGZsYWdzICgtYnJ0bCksCi0rICAgICAgICAgICMgLWJlcm9rIHdp bGwgbGluayB3aXRob3V0IGVycm9yLCBidXQgbWF5IHByb2R1Y2UgYSBicm9rZW4gbGlicmFyeS4K LSsgICAgICAgICAgX0xUX1RBR1ZBUihhbGxvd191bmRlZmluZWRfZmxhZywgJDEpPSctYmVyb2sn Ci0rICAgICAgICAgICMgRGV0ZXJtaW5lIHRoZSBkZWZhdWx0IGxpYnBhdGggZnJvbSB0aGUgdmFs dWUgZW5jb2RlZCBpbiBhbiBlbXB0eQotKyAgICAgICAgICAjIGV4ZWN1dGFibGUuCi0rICAgICAg ICAgIF9MVF9TWVNfTU9EVUxFX1BBVEhfQUlYCi0rICAgICAgICAgIF9MVF9UQUdWQVIoaGFyZGNv ZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPScke3dsfS1ibGlicGF0aDokbGliZGlyOiciJGFpeF9s aWJwYXRoIgotKwotKyAgICAgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQx KT0nJENDIC1vICRvdXRwdXRfb2JqZGlyLyRzb25hbWUgJGxpYm9ianMgJGRlcGxpYnMgJyJcJHt3 bH0kbm9fZW50cnlfZmxhZyInICRjb21waWxlcl9mbGFncyBgaWYgdGVzdCAieCR7YWxsb3dfdW5k ZWZpbmVkX2ZsYWd9IiAhPSAieCI7IHRoZW4gJEVDSE8gIlgke3dsfSR7YWxsb3dfdW5kZWZpbmVk X2ZsYWd9IiB8ICRYc2VkOyBlbHNlIDo7IGZpYCAnIlwke3dsfSRleHBfc3ltX2ZsYWc6XCRleHBv cnRfc3ltYm9scyAkc2hhcmVkX2ZsYWciCi0rICAgICAgICBlbHNlCi0rICAgICAgICAgIGlmIHRl c3QgIiRob3N0X2NwdSIgPSBpYTY0OyB0aGVuCi0rCSAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xp YmRpcl9mbGFnX3NwZWMsICQxKT0nJHt3bH0tUiAkbGliZGlyOi91c3IvbGliOi9saWInCi0rCSAg ICBfTFRfVEFHVkFSKGFsbG93X3VuZGVmaW5lZF9mbGFnLCAkMSk9Ii16IG5vZGVmcyIKLSsJICAg IF9MVF9UQUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEpPSJcJENDICRzaGFyZWRfZmxhZyIn IC1vICRvdXRwdXRfb2JqZGlyLyRzb25hbWUgJGxpYm9ianMgJGRlcGxpYnMgJyJcJHt3bH0kbm9f ZW50cnlfZmxhZyInICRjb21waWxlcl9mbGFncyAke3dsfSR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9 ICciXCR7d2x9JGV4cF9zeW1fZmxhZzpcJGV4cG9ydF9zeW1ib2xzIgotKyAgICAgICAgICBlbHNl Ci0rCSAgICAjIERldGVybWluZSB0aGUgZGVmYXVsdCBsaWJwYXRoIGZyb20gdGhlIHZhbHVlIGVu Y29kZWQgaW4gYW4KLSsJICAgICMgZW1wdHkgZXhlY3V0YWJsZS4KLSsJICAgIF9MVF9TWVNfTU9E VUxFX1BBVEhfQUlYCi0rCSAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMs ICQxKT0nJHt3bH0tYmxpYnBhdGg6JGxpYmRpcjonIiRhaXhfbGlicGF0aCIKLSsJICAgICMgV2Fy bmluZyAtIHdpdGhvdXQgdXNpbmcgdGhlIG90aGVyIHJ1biB0aW1lIGxvYWRpbmcgZmxhZ3MsCi0r CSAgICAjIC1iZXJvayB3aWxsIGxpbmsgd2l0aG91dCBlcnJvciwgYnV0IG1heSBwcm9kdWNlIGEg YnJva2VuIGxpYnJhcnkuCi0rCSAgICBfTFRfVEFHVkFSKG5vX3VuZGVmaW5lZF9mbGFnLCAkMSk9 JyAke3dsfS1iZXJub3RvaycKLSsJICAgIF9MVF9UQUdWQVIoYWxsb3dfdW5kZWZpbmVkX2ZsYWcs ICQxKT0nICR7d2x9LWJlcm9rJwotKwkgICAgIyBFeHBvcnRlZCBzeW1ib2xzIGNhbiBiZSBwdWxs ZWQgaW50byBzaGFyZWQgb2JqZWN0cyBmcm9tIGFyY2hpdmVzCi0rCSAgICBfTFRfVEFHVkFSKHdo b2xlX2FyY2hpdmVfZmxhZ19zcGVjLCAkMSk9JyRjb252ZW5pZW5jZScKLSsJICAgIF9MVF9UQUdW QVIoYXJjaGl2ZV9jbWRzX25lZWRfbGMsICQxKT15ZXMKLSsJICAgICMgVGhpcyBpcyBzaW1pbGFy IHRvIGhvdyBBSVggdHJhZGl0aW9uYWxseSBidWlsZHMgaXRzIHNoYXJlZAotKwkgICAgIyBsaWJy YXJpZXMuCi0rCSAgICBfTFRfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0iXCRDQyAk c2hhcmVkX2ZsYWciJyAtbyAkb3V0cHV0X29iamRpci8kc29uYW1lICRsaWJvYmpzICRkZXBsaWJz ICR7d2x9LWJub2VudHJ5ICRjb21waWxlcl9mbGFncyAke3dsfS1iRTokZXhwb3J0X3N5bWJvbHMk e2FsbG93X3VuZGVmaW5lZF9mbGFnfX4kQVIgJEFSX0ZMQUdTICRvdXRwdXRfb2JqZGlyLyRsaWJu YW1lJHJlbGVhc2UuYSAkb3V0cHV0X29iamRpci8kc29uYW1lJwotKyAgICAgICAgICBmaQotKyAg ICAgICAgZmkKLSsgICAgICAgIDs7Ci0rCi0rICAgICAgYmVvcyopCi0rCWlmICRMRCAtLWhlbHAg Mj4mMSB8ICRHUkVQICc6IHN1cHBvcnRlZCB0YXJnZXRzOi4qIGVsZicgPiAvZGV2L251bGw7IHRo ZW4KLSsJICBfTFRfVEFHVkFSKGFsbG93X3VuZGVmaW5lZF9mbGFnLCAkMSk9dW5zdXBwb3J0ZWQK LSsJICAjIEpvc2VwaCBCZWNrZW5iYWNoIDxqcmIzQGJlc3QuY29tPiBzYXlzIHNvbWUgcmVsZWFz ZXMgb2YgZ2NjCi0rCSAgIyBzdXBwb3J0IC0tdW5kZWZpbmVkLiAgVGhpcyBkZXNlcnZlcyBzb21l IGludmVzdGlnYXRpb24uICBGSVhNRQotKwkgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9 JyRDQyAtbm9zdGFydCAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29u YW1lICR3bCRzb25hbWUgLW8gJGxpYicKLSsJZWxzZQotKwkgIF9MVF9UQUdWQVIobGRfc2hsaWJz LCAkMSk9bm8KLSsJZmkKLSsJOzsKLSsKLSsgICAgICBjaG9ydXMqKQotKyAgICAgICAgY2FzZSAk Y2NfYmFzZW5hbWUgaW4KLSsgICAgICAgICAgKikKLSsJICAjIEZJWE1FOiBpbnNlcnQgcHJvcGVy IEMrKyBsaWJyYXJ5IHN1cHBvcnQKLSsJICBfTFRfVEFHVkFSKGxkX3NobGlicywgJDEpPW5vCi0r CSAgOzsKLSsgICAgICAgIGVzYWMKLSsgICAgICAgIDs7Ci0rCi0rICAgICAgY3lnd2luKiB8IG1p bmd3KiB8IHB3MzIqIHwgY2VnY2MqKQotKyAgICAgICAgIyBfTFRfVEFHVkFSKGhhcmRjb2RlX2xp YmRpcl9mbGFnX3NwZWMsICQxKSBpcyBhY3R1YWxseSBtZWFuaW5nbGVzcywKLSsgICAgICAgICMg YXMgdGhlcmUgaXMgbm8gc2VhcmNoIHBhdGggZm9yIERMTHMuCi0rICAgICAgICBfTFRfVEFHVkFS KGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nLUwkbGliZGlyJwotKyAgICAgICAgX0xU X1RBR1ZBUihhbGxvd191bmRlZmluZWRfZmxhZywgJDEpPXVuc3VwcG9ydGVkCi0rICAgICAgICBf TFRfVEFHVkFSKGFsd2F5c19leHBvcnRfc3ltYm9scywgJDEpPW5vCi0rICAgICAgICBfTFRfVEFH VkFSKGVuYWJsZV9zaGFyZWRfd2l0aF9zdGF0aWNfcnVudGltZXMsICQxKT15ZXMKLSsKLSsgICAg ICAgIGlmICRMRCAtLWhlbHAgMj4mMSB8ICRHUkVQICdhdXRvLWltcG9ydCcgPiAvZGV2L251bGw7 IHRoZW4KLSsgICAgICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1zaGFy ZWQgLW5vc3RkbGliICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9v YmplY3RzICRjb21waWxlcl9mbGFncyAtbyAkb3V0cHV0X29iamRpci8kc29uYW1lICR7d2x9LS1l bmFibGUtYXV0by1pbWFnZS1iYXNlIC1YbGlua2VyIC0tb3V0LWltcGxpYiAtWGxpbmtlciAkbGli JwotKyAgICAgICAgICAjIElmIHRoZSBleHBvcnQtc3ltYm9scyBmaWxlIGFscmVhZHkgaXMgYSAu ZGVmIGZpbGUgKDFzdCBsaW5lCi0rICAgICAgICAgICMgaXMgRVhQT1JUUyksIHVzZSBpdCBhcyBp czsgb3RoZXJ3aXNlLCBwcmVwZW5kLi4uCi0rICAgICAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9l eHBzeW1fY21kcywgJDEpPSdpZiB0ZXN0ICJ4YCRTRUQgMXEgJGV4cG9ydF9zeW1ib2xzYCIgPSB4 RVhQT1JUUzsgdGhlbgotKwkgICAgY3AgJGV4cG9ydF9zeW1ib2xzICRvdXRwdXRfb2JqZGlyLyRz b25hbWUuZGVmOwotKyAgICAgICAgICBlbHNlCi0rCSAgICBlY2hvIEVYUE9SVFMgPiAkb3V0cHV0 X29iamRpci8kc29uYW1lLmRlZjsKLSsJICAgIGNhdCAkZXhwb3J0X3N5bWJvbHMgPj4gJG91dHB1 dF9vYmpkaXIvJHNvbmFtZS5kZWY7Ci0rICAgICAgICAgIGZpfgotKyAgICAgICAgICAkQ0MgLXNo YXJlZCAtbm9zdGRsaWIgJG91dHB1dF9vYmpkaXIvJHNvbmFtZS5kZWYgJHByZWRlcF9vYmplY3Rz ICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzIC1vICRv dXRwdXRfb2JqZGlyLyRzb25hbWUgJHt3bH0tLWVuYWJsZS1hdXRvLWltYWdlLWJhc2UgLVhsaW5r ZXIgLS1vdXQtaW1wbGliIC1YbGlua2VyICRsaWInCi0rICAgICAgICBlbHNlCi0rICAgICAgICAg IF9MVF9UQUdWQVIobGRfc2hsaWJzLCAkMSk9bm8KLSsgICAgICAgIGZpCi0rICAgICAgICA7Owot KyAgICAgIGRhcndpbiogfCByaGFwc29keSopCi0rICAgICAgICBfTFRfREFSV0lOX0xJTktFUl9G RUFUVVJFUygkMSkKLSsJOzsKLSsKLSsgICAgICBkZ3V4KikKLSsgICAgICAgIGNhc2UgJGNjX2Jh c2VuYW1lIGluCi0rICAgICAgICAgIGVjKysqKQotKwkgICAgIyBGSVhNRTogaW5zZXJ0IHByb3Bl ciBDKysgbGlicmFyeSBzdXBwb3J0Ci0rCSAgICBfTFRfVEFHVkFSKGxkX3NobGlicywgJDEpPW5v Ci0rCSAgICA7OwotKyAgICAgICAgICBnaGN4KikKLSsJICAgICMgR3JlZW4gSGlsbHMgQysrIENv bXBpbGVyCi0rCSAgICAjIEZJWE1FOiBpbnNlcnQgcHJvcGVyIEMrKyBsaWJyYXJ5IHN1cHBvcnQK LSsJICAgIF9MVF9UQUdWQVIobGRfc2hsaWJzLCAkMSk9bm8KLSsJICAgIDs7Ci0rICAgICAgICAg ICopCi0rCSAgICAjIEZJWE1FOiBpbnNlcnQgcHJvcGVyIEMrKyBsaWJyYXJ5IHN1cHBvcnQKLSsJ ICAgIF9MVF9UQUdWQVIobGRfc2hsaWJzLCAkMSk9bm8KLSsJICAgIDs7Ci0rICAgICAgICBlc2Fj Ci0rICAgICAgICA7OwotKwotKyAgICAgIGZyZWVic2RbWzEyXV0qKQotKyAgICAgICAgIyBDKysg c2hhcmVkIGxpYnJhcmllcyByZXBvcnRlZCB0byBiZSBmYWlybHkgYnJva2VuIGJlZm9yZQotKwkj IHN3aXRjaCB0byBFTEYKLSsgICAgICAgIF9MVF9UQUdWQVIobGRfc2hsaWJzLCAkMSk9bm8KLSsg ICAgICAgIDs7Ci0rCi0rICAgICAgZnJlZWJzZC1lbGYqKQotKyAgICAgICAgX0xUX1RBR1ZBUihh cmNoaXZlX2NtZHNfbmVlZF9sYywgJDEpPW5vCi0rICAgICAgICA7OwotKwotKyAgICAgIGZyZWVi c2QqIHwgZHJhZ29uZmx5KikKLSsgICAgICAgICMgRnJlZUJTRCAzIGFuZCBsYXRlciB1c2UgR05V IEMrKyBhbmQgR05VIGxkIHdpdGggc3RhbmRhcmQgRUxGCi0rICAgICAgICAjIGNvbnZlbnRpb25z Ci0rICAgICAgICBfTFRfVEFHVkFSKGxkX3NobGlicywgJDEpPXllcwotKyAgICAgICAgOzsKLSsK LSsgICAgICBnbnUqKQotKyAgICAgICAgOzsKLSsKLSsgICAgICBocHV4OSopCi0rICAgICAgICBf TFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nJHt3bH0rYiAke3dsfSRs aWJkaXInCi0rICAgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3IsICQx KT06Ci0rICAgICAgICBfTFRfVEFHVkFSKGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlYywgJDEpPSck e3dsfS1FJwotKyAgICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9kaXJlY3QsICQxKT15ZXMKLSsg ICAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbWludXNfTCwgJDEpPXllcyAjIE5vdCBpbiB0aGUg c2VhcmNoIFBBVEgsCi0rCQkJCSAgICAgICAgICAgICAjIGJ1dCBhcyB0aGUgZGVmYXVsdAotKwkJ CQkgICAgICAgICAgICAgIyBsb2NhdGlvbiBvZiB0aGUgbGlicmFyeS4KLSsKLSsgICAgICAgIGNh c2UgJGNjX2Jhc2VuYW1lIGluCi0rICAgICAgICAgIENDKikKLSsgICAgICAgICAgICAjIEZJWE1F OiBpbnNlcnQgcHJvcGVyIEMrKyBsaWJyYXJ5IHN1cHBvcnQKLSsgICAgICAgICAgICBfTFRfVEFH VkFSKGxkX3NobGlicywgJDEpPW5vCi0rICAgICAgICAgICAgOzsKLSsgICAgICAgICAgYUNDKikK LSsgICAgICAgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckUk0gJG91dHB1dF9v YmpkaXIvJHNvbmFtZX4kQ0MgLWIgJHt3bH0rYiAke3dsfSRpbnN0YWxsX2xpYmRpciAtbyAkb3V0 cHV0X29iamRpci8kc29uYW1lICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9z dGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFnc350ZXN0ICRvdXRwdXRfb2JqZGlyLyRzb25hbWUg PSAkbGliIHx8IG12ICRvdXRwdXRfb2JqZGlyLyRzb25hbWUgJGxpYicKLSsgICAgICAgICAgICAj IENvbW1hbmRzIHRvIG1ha2UgY29tcGlsZXIgcHJvZHVjZSB2ZXJib3NlIG91dHB1dCB0aGF0IGxp c3RzCi0rICAgICAgICAgICAgIyB3aGF0ICJoaWRkZW4iIGxpYnJhcmllcywgb2JqZWN0IGZpbGVz IGFuZCBmbGFncyBhcmUgdXNlZCB3aGVuCi0rICAgICAgICAgICAgIyBsaW5raW5nIGEgc2hhcmVk IGxpYnJhcnkuCi0rICAgICAgICAgICAgIwotKyAgICAgICAgICAgICMgVGhlcmUgZG9lc24ndCBh cHBlYXIgdG8gYmUgYSB3YXkgdG8gcHJldmVudCB0aGlzIGNvbXBpbGVyIGZyb20KLSsgICAgICAg ICAgICAjIGV4cGxpY2l0bHkgbGlua2luZyBzeXN0ZW0gb2JqZWN0IGZpbGVzIHNvIHdlIG5lZWQg dG8gc3RyaXAgdGhlbQotKyAgICAgICAgICAgICMgZnJvbSB0aGUgb3V0cHV0IHNvIHRoYXQgdGhl eSBkb24ndCBnZXQgaW5jbHVkZWQgaW4gdGhlIGxpYnJhcnkKLSsgICAgICAgICAgICAjIGRlcGVu ZGVuY2llcy4KLSsgICAgICAgICAgICBvdXRwdXRfdmVyYm9zZV9saW5rX2NtZD0ndGVtcGxpc3Q9 YCgkQ0MgLWIgJENGTEFHUyAtdiBjb25mdGVzdC4kb2JqZXh0IDI+JjEpIHwgJEVHUkVQICJcLUwi YDsgbGlzdD0iIjsgZm9yIHogaW4gJHRlbXBsaXN0OyBkbyBjYXNlICR6IGluIGNvbmZ0ZXN0LiRv YmpleHQpIGxpc3Q9IiRsaXN0ICR6Ijs7ICouJG9iamV4dCk7OyAqKSBsaXN0PSIkbGlzdCAkeiI7 O2VzYWM7IGRvbmU7ICRFQ0hPICJYJGxpc3QiIHwgJFhzZWQnCi0rICAgICAgICAgICAgOzsKLSsg ICAgICAgICAgKikKLSsgICAgICAgICAgICBpZiB0ZXN0ICIkR1hYIiA9IHllczsgdGhlbgotKyAg ICAgICAgICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJFJNICRvdXRwdXRfb2Jq ZGlyLyRzb25hbWV+JENDIC1zaGFyZWQgLW5vc3RkbGliIC1mUElDICR7d2x9K2IgJHt3bH0kaW5z dGFsbF9saWJkaXIgLW8gJG91dHB1dF9vYmpkaXIvJHNvbmFtZSAkcHJlZGVwX29iamVjdHMgJGxp Ym9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3N+dGVzdCAkb3V0 cHV0X29iamRpci8kc29uYW1lID0gJGxpYiB8fCBtdiAkb3V0cHV0X29iamRpci8kc29uYW1lICRs aWInCi0rICAgICAgICAgICAgZWxzZQotKyAgICAgICAgICAgICAgIyBGSVhNRTogaW5zZXJ0IHBy b3BlciBDKysgbGlicmFyeSBzdXBwb3J0Ci0rICAgICAgICAgICAgICBfTFRfVEFHVkFSKGxkX3No bGlicywgJDEpPW5vCi0rICAgICAgICAgICAgZmkKLSsgICAgICAgICAgICA7OwotKyAgICAgICAg ZXNhYwotKyAgICAgICAgOzsKLSsKLSsgICAgICBocHV4MTAqfGhwdXgxMSopCi0rICAgICAgICBp ZiB0ZXN0ICR3aXRoX2dudV9sZCA9IG5vOyB0aGVuCi0rCSAgX0xUX1RBR1ZBUihoYXJkY29kZV9s aWJkaXJfZmxhZ19zcGVjLCAkMSk9JyR7d2x9K2IgJHt3bH0kbGliZGlyJwotKwkgIF9MVF9UQUdW QVIoaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciwgJDEpPToKLSsKLSsgICAgICAgICAgY2FzZSAk aG9zdF9jcHUgaW4KLSsgICAgICAgICAgICBocHBhKjY0KnxpYTY0KikKLSsgICAgICAgICAgICAg IDs7Ci0rICAgICAgICAgICAgKikKLSsJICAgICAgX0xUX1RBR1ZBUihleHBvcnRfZHluYW1pY19m bGFnX3NwZWMsICQxKT0nJHt3bH0tRScKLSsgICAgICAgICAgICAgIDs7Ci0rICAgICAgICAgIGVz YWMKLSsgICAgICAgIGZpCi0rICAgICAgICBjYXNlICRob3N0X2NwdSBpbgotKyAgICAgICAgICBo cHBhKjY0KnxpYTY0KikKLSsgICAgICAgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2RpcmVjdCwg JDEpPW5vCi0rICAgICAgICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9zaGxpYnBhdGhfdmFyLCAk MSk9bm8KLSsgICAgICAgICAgICA7OwotKyAgICAgICAgICAqKQotKyAgICAgICAgICAgIF9MVF9U QUdWQVIoaGFyZGNvZGVfZGlyZWN0LCAkMSk9eWVzCi0rICAgICAgICAgICAgX0xUX1RBR1ZBUiho YXJkY29kZV9kaXJlY3RfYWJzb2x1dGUsICQxKT15ZXMKLSsgICAgICAgICAgICBfTFRfVEFHVkFS KGhhcmRjb2RlX21pbnVzX0wsICQxKT15ZXMgIyBOb3QgaW4gdGhlIHNlYXJjaCBQQVRILAotKwkJ CQkJICAgICAgICAgIyBidXQgYXMgdGhlIGRlZmF1bHQKLSsJCQkJCSAgICAgICAgICMgbG9jYXRp b24gb2YgdGhlIGxpYnJhcnkuCi0rICAgICAgICAgICAgOzsKLSsgICAgICAgIGVzYWMKLSsKLSsg ICAgICAgIGNhc2UgJGNjX2Jhc2VuYW1lIGluCi0rICAgICAgICAgIENDKikKLSsJICAgICMgRklY TUU6IGluc2VydCBwcm9wZXIgQysrIGxpYnJhcnkgc3VwcG9ydAotKwkgICAgX0xUX1RBR1ZBUihs ZF9zaGxpYnMsICQxKT1ubwotKwkgICAgOzsKLSsgICAgICAgICAgYUNDKikKLSsJICAgIGNhc2Ug JGhvc3RfY3B1IGluCi0rCSAgICAgIGhwcGEqNjQqKQotKwkgICAgICAgIF9MVF9UQUdWQVIoYXJj aGl2ZV9jbWRzLCAkMSk9JyRDQyAtYiAke3dsfStoICR7d2x9JHNvbmFtZSAtbyAkbGliICRwcmVk ZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9m bGFncycKLSsJICAgICAgICA7OwotKwkgICAgICBpYTY0KikKLSsJICAgICAgICBfTFRfVEFHVkFS KGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLWIgJHt3bH0raCAke3dsfSRzb25hbWUgJHt3bH0rbm9k ZWZhdWx0cnBhdGggLW8gJGxpYiAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBv c3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MnCi0rCSAgICAgICAgOzsKLSsJICAgICAgKikK LSsJICAgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLWIgJHt3bH0raCAk e3dsfSRzb25hbWUgJHt3bH0rYiAke3dsfSRpbnN0YWxsX2xpYmRpciAtbyAkbGliICRwcmVkZXBf b2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFn cycKLSsJICAgICAgICA7OwotKwkgICAgZXNhYwotKwkgICAgIyBDb21tYW5kcyB0byBtYWtlIGNv bXBpbGVyIHByb2R1Y2UgdmVyYm9zZSBvdXRwdXQgdGhhdCBsaXN0cwotKwkgICAgIyB3aGF0ICJo aWRkZW4iIGxpYnJhcmllcywgb2JqZWN0IGZpbGVzIGFuZCBmbGFncyBhcmUgdXNlZCB3aGVuCi0r CSAgICAjIGxpbmtpbmcgYSBzaGFyZWQgbGlicmFyeS4KLSsJICAgICMKLSsJICAgICMgVGhlcmUg ZG9lc24ndCBhcHBlYXIgdG8gYmUgYSB3YXkgdG8gcHJldmVudCB0aGlzIGNvbXBpbGVyIGZyb20K LSsJICAgICMgZXhwbGljaXRseSBsaW5raW5nIHN5c3RlbSBvYmplY3QgZmlsZXMgc28gd2UgbmVl ZCB0byBzdHJpcCB0aGVtCi0rCSAgICAjIGZyb20gdGhlIG91dHB1dCBzbyB0aGF0IHRoZXkgZG9u J3QgZ2V0IGluY2x1ZGVkIGluIHRoZSBsaWJyYXJ5Ci0rCSAgICAjIGRlcGVuZGVuY2llcy4KLSsJ ICAgIG91dHB1dF92ZXJib3NlX2xpbmtfY21kPSd0ZW1wbGlzdD1gKCRDQyAtYiAkQ0ZMQUdTIC12 IGNvbmZ0ZXN0LiRvYmpleHQgMj4mMSkgfCAkR1JFUCAiXC1MImA7IGxpc3Q9IiI7IGZvciB6IGlu ICR0ZW1wbGlzdDsgZG8gY2FzZSAkeiBpbiBjb25mdGVzdC4kb2JqZXh0KSBsaXN0PSIkbGlzdCAk eiI7OyAqLiRvYmpleHQpOzsgKikgbGlzdD0iJGxpc3QgJHoiOztlc2FjOyBkb25lOyAkRUNITyAi WCRsaXN0IiB8ICRYc2VkJwotKwkgICAgOzsKLSsgICAgICAgICAgKikKLSsJICAgIGlmIHRlc3Qg IiRHWFgiID0geWVzOyB0aGVuCi0rCSAgICAgIGlmIHRlc3QgJHdpdGhfZ251X2xkID0gbm87IHRo ZW4KLSsJICAgICAgICBjYXNlICRob3N0X2NwdSBpbgotKwkgICAgICAgICAgaHBwYSo2NCopCi0r CSAgICAgICAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkIC1u b3N0ZGxpYiAtZlBJQyAke3dsfStoICR7d2x9JHNvbmFtZSAtbyAkbGliICRwcmVkZXBfb2JqZWN0 cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncycKLSsJ ICAgICAgICAgICAgOzsKLSsJICAgICAgICAgIGlhNjQqKQotKwkgICAgICAgICAgICBfTFRfVEFH VkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXNoYXJlZCAtbm9zdGRsaWIgLWZQSUMgJHt3bH0r aCAke3dsfSRzb25hbWUgJHt3bH0rbm9kZWZhdWx0cnBhdGggLW8gJGxpYiAkcHJlZGVwX29iamVj dHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MnCi0r CSAgICAgICAgICAgIDs7Ci0rCSAgICAgICAgICAqKQotKwkgICAgICAgICAgICBfTFRfVEFHVkFS KGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXNoYXJlZCAtbm9zdGRsaWIgLWZQSUMgJHt3bH0raCAk e3dsfSRzb25hbWUgJHt3bH0rYiAke3dsfSRpbnN0YWxsX2xpYmRpciAtbyAkbGliICRwcmVkZXBf b2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFn cycKLSsJICAgICAgICAgICAgOzsKLSsJICAgICAgICBlc2FjCi0rCSAgICAgIGZpCi0rCSAgICBl bHNlCi0rCSAgICAgICMgRklYTUU6IGluc2VydCBwcm9wZXIgQysrIGxpYnJhcnkgc3VwcG9ydAot KwkgICAgICBfTFRfVEFHVkFSKGxkX3NobGlicywgJDEpPW5vCi0rCSAgICBmaQotKwkgICAgOzsK LSsgICAgICAgIGVzYWMKLSsgICAgICAgIDs7Ci0rCi0rICAgICAgaW50ZXJpeFtbMy05XV0qKQot KwlfTFRfVEFHVkFSKGhhcmRjb2RlX2RpcmVjdCwgJDEpPW5vCi0rCV9MVF9UQUdWQVIoaGFyZGNv ZGVfc2hsaWJwYXRoX3ZhciwgJDEpPW5vCi0rCV9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2Zs YWdfc3BlYywgJDEpPScke3dsfS1ycGF0aCwkbGliZGlyJwotKwlfTFRfVEFHVkFSKGV4cG9ydF9k eW5hbWljX2ZsYWdfc3BlYywgJDEpPScke3dsfS1FJwotKwkjIEhhY2s6IE9uIEludGVyaXggMy54 LCB3ZSBjYW5ub3QgY29tcGlsZSBQSUMgYmVjYXVzZSBvZiBhIGJyb2tlbiBnY2MuCi0rCSMgSW5z dGVhZCwgc2hhcmVkIGxpYnJhcmllcyBhcmUgbG9hZGVkIGF0IGFuIGltYWdlIGJhc2UgKDB4MTAw MDAwMDAgYnkKLSsJIyBkZWZhdWx0KSBhbmQgcmVsb2NhdGVkIGlmIHRoZXkgY29uZmxpY3QsIHdo aWNoIGlzIGEgc2xvdyB2ZXJ5IG1lbW9yeQotKwkjIGNvbnN1bWluZyBhbmQgZnJhZ21lbnRpbmcg cHJvY2Vzcy4gIFRvIGF2b2lkIHRoaXMsIHdlIHBpY2sgYSByYW5kb20sCi0rCSMgMjU2IEtpQi1h bGlnbmVkIGltYWdlIGJhc2UgYmV0d2VlbiAweDUwMDAwMDAwIGFuZCAweDZGRkMwMDAwIGF0IGxp bmsKLSsJIyB0aW1lLiAgTW92aW5nIHVwIGZyb20gMHgxMDAwMDAwMCBhbHNvIGFsbG93cyBtb3Jl IHNicmsoMikgc3BhY2UuCi0rCV9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hh cmVkICRwaWNfZmxhZyAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0taCwk c29uYW1lICR7d2x9LS1pbWFnZS1iYXNlLGBleHByICR7UkFORE9NLSQkfSAlIDQwOTYgLyAyIFwq IDI2MjE0NCArIDEzNDIxNzcyODBgIC1vICRsaWInCi0rCV9MVF9UQUdWQVIoYXJjaGl2ZV9leHBz eW1fY21kcywgJDEpPSdzZWQgInMsXixfLCIgJGV4cG9ydF9zeW1ib2xzID4kb3V0cHV0X29iamRp ci8kc29uYW1lLmV4cHN5bX4kQ0MgLXNoYXJlZCAkcGljX2ZsYWcgJGxpYm9ianMgJGRlcGxpYnMg JGNvbXBpbGVyX2ZsYWdzICR7d2x9LWgsJHNvbmFtZSAke3dsfS0tcmV0YWluLXN5bWJvbHMtZmls ZSwkb3V0cHV0X29iamRpci8kc29uYW1lLmV4cHN5bSAke3dsfS0taW1hZ2UtYmFzZSxgZXhwciAk e1JBTkRPTS0kJH0gJSA0MDk2IC8gMiBcKiAyNjIxNDQgKyAxMzQyMTc3MjgwYCAtbyAkbGliJwot Kwk7OwotKyAgICAgIGlyaXg1KiB8IGlyaXg2KikKLSsgICAgICAgIGNhc2UgJGNjX2Jhc2VuYW1l IGluCi0rICAgICAgICAgIENDKikKLSsJICAgICMgU0dJIEMrKwotKwkgICAgX0xUX1RBR1ZBUihh cmNoaXZlX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgLWFsbCAtbXVsdGlnb3QgJHByZWRlcF9vYmpl Y3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzIC1z b25hbWUgJHNvbmFtZSBgdGVzdCAtbiAiJHZlcnN0cmluZyIgJiYgJEVDSE8gIlgtc2V0X3ZlcnNp b24gJHZlcnN0cmluZyIgfCAkWHNlZGAgLXVwZGF0ZV9yZWdpc3RyeSAke291dHB1dF9vYmpkaXJ9 L3NvX2xvY2F0aW9ucyAtbyAkbGliJwotKwotKwkgICAgIyBBcmNoaXZlcyBjb250YWluaW5nIEMr KyBvYmplY3QgZmlsZXMgbXVzdCBiZSBjcmVhdGVkIHVzaW5nCi0rCSAgICAjICJDQyAtYXIiLCB3 aGVyZSAiQ0MiIGlzIHRoZSBJUklYIEMrKyBjb21waWxlci4gIFRoaXMgaXMKLSsJICAgICMgbmVj ZXNzYXJ5IHRvIG1ha2Ugc3VyZSBpbnN0YW50aWF0ZWQgdGVtcGxhdGVzIGFyZSBpbmNsdWRlZAot KwkgICAgIyBpbiB0aGUgYXJjaGl2ZS4KLSsJICAgIF9MVF9UQUdWQVIob2xkX2FyY2hpdmVfY21k cywgJDEpPSckQ0MgLWFyIC1XUiwtdSAtbyAkb2xkbGliICRvbGRvYmpzJwotKwkgICAgOzsKLSsg ICAgICAgICAgKikKLSsJICAgIGlmIHRlc3QgIiRHWFgiID0geWVzOyB0aGVuCi0rCSAgICAgIGlm IHRlc3QgIiR3aXRoX2dudV9sZCIgPSBubzsgdGhlbgotKwkgICAgICAgIF9MVF9UQUdWQVIoYXJj aGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkIC1ub3N0ZGxpYiAkcHJlZGVwX29iamVjdHMgJGxp Ym9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29u YW1lICR7d2x9JHNvbmFtZSBgdGVzdCAtbiAiJHZlcnN0cmluZyIgJiYgJEVDSE8gIlgke3dsfS1z ZXRfdmVyc2lvbiAke3dsfSR2ZXJzdHJpbmciIHwgJFhzZWRgICR7d2x9LXVwZGF0ZV9yZWdpc3Ry eSAke3dsfSR7b3V0cHV0X29iamRpcn0vc29fbG9jYXRpb25zIC1vICRsaWInCi0rCSAgICAgIGVs c2UKLSsJICAgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXNoYXJlZCAt bm9zdGRsaWIgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVj dHMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAke3dsfSRzb25hbWUgYHRlc3QgLW4gIiR2 ZXJzdHJpbmciICYmICRFQ0hPICJYJHt3bH0tc2V0X3ZlcnNpb24gJHt3bH0kdmVyc3RyaW5nIiB8 ICRYc2VkYCAtbyAkbGliJwotKwkgICAgICBmaQotKwkgICAgZmkKLSsJICAgIF9MVF9UQUdWQVIo bGlua19hbGxfZGVwbGlicywgJDEpPXllcwotKwkgICAgOzsKLSsgICAgICAgIGVzYWMKLSsgICAg ICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPScke3dsfS1ycGF0 aCAke3dsfSRsaWJkaXInCi0rICAgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9zZXBh cmF0b3IsICQxKT06Ci0rICAgICAgICBfTFRfVEFHVkFSKGluaGVyaXRfcnBhdGgsICQxKT15ZXMK LSsgICAgICAgIDs7Ci0rCi0rICAgICAgbGludXgqIHwgaypic2QqLWdudSkKLSsgICAgICAgIGNh c2UgJGNjX2Jhc2VuYW1lIGluCi0rICAgICAgICAgIEtDQyopCi0rCSAgICAjIEt1Y2sgYW5kIEFz c29jaWF0ZXMsIEluYy4gKEtBSSkgQysrIENvbXBpbGVyCi0rCi0rCSAgICAjIEtDQyB3aWxsIG9u bHkgY3JlYXRlIGEgc2hhcmVkIGxpYnJhcnkgaWYgdGhlIG91dHB1dCBmaWxlCi0rCSAgICAjIGVu ZHMgd2l0aCAiLnNvIiAob3IgIi5zbCIgZm9yIEhQLVVYKSwgc28gcmVuYW1lIHRoZSBsaWJyYXJ5 Ci0rCSAgICAjIHRvIGl0cyBwcm9wZXIgbmFtZSAod2l0aCB2ZXJzaW9uKSBhZnRlciBsaW5raW5n LgotKwkgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0ndGVtcGV4dD1gZWNobyAkc2hh cmVkX2V4dCB8ICRTRUQgLWUgJ1wnJ3MvXChbW14oKTAtOUEtWmEtent9XV1cKS9cXFxcXDEvZydc JydgOyB0ZW1wbGliPWBlY2hvICRsaWIgfCAkU0VEIC1lICJzL1wke3RlbXBleHR9XC4uKi8uc28v ImA7ICRDQyAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0 cyAkY29tcGlsZXJfZmxhZ3MgLS1zb25hbWUgJHNvbmFtZSAtbyBcJHRlbXBsaWI7IG12IFwkdGVt cGxpYiAkbGliJwotKwkgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9J3Rl bXBleHQ9YGVjaG8gJHNoYXJlZF9leHQgfCAkU0VEIC1lICdcJydzL1woW1teKCkwLTlBLVphLXp7 fV1dXCkvXFxcXFwxL2cnXCcnYDsgdGVtcGxpYj1gZWNobyAkbGliIHwgJFNFRCAtZSAicy9cJHt0 ZW1wZXh0fVwuLiovLnNvLyJgOyAkQ0MgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJz ICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzIC0tc29uYW1lICRzb25hbWUgLW8gXCR0 ZW1wbGliICR7d2x9LXJldGFpbi1zeW1ib2xzLWZpbGUsJGV4cG9ydF9zeW1ib2xzOyBtdiBcJHRl bXBsaWIgJGxpYicKLSsJICAgICMgQ29tbWFuZHMgdG8gbWFrZSBjb21waWxlciBwcm9kdWNlIHZl cmJvc2Ugb3V0cHV0IHRoYXQgbGlzdHMKLSsJICAgICMgd2hhdCAiaGlkZGVuIiBsaWJyYXJpZXMs IG9iamVjdCBmaWxlcyBhbmQgZmxhZ3MgYXJlIHVzZWQgd2hlbgotKwkgICAgIyBsaW5raW5nIGEg c2hhcmVkIGxpYnJhcnkuCi0rCSAgICAjCi0rCSAgICAjIFRoZXJlIGRvZXNuJ3QgYXBwZWFyIHRv IGJlIGEgd2F5IHRvIHByZXZlbnQgdGhpcyBjb21waWxlciBmcm9tCi0rCSAgICAjIGV4cGxpY2l0 bHkgbGlua2luZyBzeXN0ZW0gb2JqZWN0IGZpbGVzIHNvIHdlIG5lZWQgdG8gc3RyaXAgdGhlbQot KwkgICAgIyBmcm9tIHRoZSBvdXRwdXQgc28gdGhhdCB0aGV5IGRvbid0IGdldCBpbmNsdWRlZCBp biB0aGUgbGlicmFyeQotKwkgICAgIyBkZXBlbmRlbmNpZXMuCi0rCSAgICBvdXRwdXRfdmVyYm9z ZV9saW5rX2NtZD0ndGVtcGxpc3Q9YCRDQyAkQ0ZMQUdTIC12IGNvbmZ0ZXN0LiRvYmpleHQgLW8g bGliY29uZnRlc3Qkc2hhcmVkX2V4dCAyPiYxIHwgJEdSRVAgImxkImA7IHJtIC1mIGxpYmNvbmZ0 ZXN0JHNoYXJlZF9leHQ7IGxpc3Q9IiI7IGZvciB6IGluICR0ZW1wbGlzdDsgZG8gY2FzZSAkeiBp biBjb25mdGVzdC4kb2JqZXh0KSBsaXN0PSIkbGlzdCAkeiI7OyAqLiRvYmpleHQpOzsgKikgbGlz dD0iJGxpc3QgJHoiOztlc2FjOyBkb25lOyAkRUNITyAiWCRsaXN0IiB8ICRYc2VkJwotKwotKwkg ICAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LXJwYXRo LCRsaWJkaXInCi0rCSAgICBfTFRfVEFHVkFSKGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlYywgJDEp PScke3dsfS0tZXhwb3J0LWR5bmFtaWMnCi0rCi0rCSAgICAjIEFyY2hpdmVzIGNvbnRhaW5pbmcg QysrIG9iamVjdCBmaWxlcyBtdXN0IGJlIGNyZWF0ZWQgdXNpbmcKLSsJICAgICMgIkNDIC1Cc3Rh dGljIiwgd2hlcmUgIkNDIiBpcyB0aGUgS0FJIEMrKyBjb21waWxlci4KLSsJICAgIF9MVF9UQUdW QVIob2xkX2FyY2hpdmVfY21kcywgJDEpPSckQ0MgLUJzdGF0aWMgLW8gJG9sZGxpYiAkb2xkb2Jq cycKLSsJICAgIDs7Ci0rCSAgaWNwYyogfCBlY3BjKiApCi0rCSAgICAjIEludGVsIEMrKwotKwkg ICAgd2l0aF9nbnVfbGQ9eWVzCi0rCSAgICAjIHZlcnNpb24gOC4wIGFuZCBhYm92ZSBvZiBpY3Bj IGNob2tlIG9uIG11bHRpcGx5IGRlZmluZWQgc3ltYm9scwotKwkgICAgIyBpZiB3ZSBhZGQgJHBy ZWRlcF9vYmplY3RzIGFuZCAkcG9zdGRlcF9vYmplY3RzLCBob3dldmVyIDcuMSBhbmQKLSsJICAg ICMgZWFybGllciBkbyBub3QgYWRkIHRoZSBvYmplY3RzIHRoZW1zZWx2ZXMuCi0rCSAgICBjYXNl IGAkQ0MgLVYgMj4mMWAgaW4KLSsJICAgICAgKiJWZXJzaW9uIDcuIiopCi0rCSAgICAgICAgX0xU X1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgJHByZWRlcF9vYmplY3RzICRs aWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNv bmFtZSAkd2wkc29uYW1lIC1vICRsaWInCi0rCQlfTFRfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2Nt ZHMsICQxKT0nJENDIC1zaGFyZWQgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRw b3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAkd2wkc29uYW1lICR7 d2x9LXJldGFpbi1zeW1ib2xzLWZpbGUgJHdsJGV4cG9ydF9zeW1ib2xzIC1vICRsaWInCi0rCQk7 OwotKwkgICAgICAqKSAgIyBWZXJzaW9uIDguMCBvciBuZXdlcgotKwkgICAgICAgIHRtcF9pZHlu PQotKwkgICAgICAgIGNhc2UgJGhvc3RfY3B1IGluCi0rCQkgIGlhNjQqKSB0bXBfaWR5bj0nIC1p X2R5bmFtaWMnOzsKLSsJCWVzYWMKLSsJICAgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywg JDEpPSckQ0MgLXNoYXJlZCciJHRtcF9pZHluIicgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVy X2ZsYWdzICR7d2x9LXNvbmFtZSAkd2wkc29uYW1lIC1vICRsaWInCi0rCQlfTFRfVEFHVkFSKGFy Y2hpdmVfZXhwc3ltX2NtZHMsICQxKT0nJENDIC1zaGFyZWQnIiR0bXBfaWR5biInICRsaWJvYmpz ICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAke3dsfS1y ZXRhaW4tc3ltYm9scy1maWxlICR3bCRleHBvcnRfc3ltYm9scyAtbyAkbGliJwotKwkJOzsKLSsJ ICAgIGVzYWMKLSsJICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzX25lZWRfbGMsICQxKT1ubwot KwkgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LXJw YXRoLCRsaWJkaXInCi0rCSAgICBfTFRfVEFHVkFSKGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlYywg JDEpPScke3dsfS0tZXhwb3J0LWR5bmFtaWMnCi0rCSAgICBfTFRfVEFHVkFSKHdob2xlX2FyY2hp dmVfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LS13aG9sZS1hcmNoaXZlJGNvbnZlbmllbmNlICR7d2x9 LS1uby13aG9sZS1hcmNoaXZlJwotKwkgICAgOzsKLSsgICAgICAgICAgcGdDQyogfCBwZ2NwcCop Ci0rICAgICAgICAgICAgIyBQb3J0bGFuZCBHcm91cCBDKysgY29tcGlsZXIKLSsJICAgIGNhc2Ug YCRDQyAtVmAgaW4KLSsJICAgICpwZ0NDXCBbWzEtNV1dKiB8ICpwZ2NwcFwgW1sxLTVdXSopCi0r CSAgICAgIF9MVF9UQUdWQVIocHJlbGlua19jbWRzLCAkMSk9J3RwbGRpcj1UZW1wbGF0ZS5kaXJ+ Ci0rCQlybSAtcmYgJHRwbGRpcn4KLSsJCSRDQyAtLXByZWxpbmtfb2JqZWN0cyAtLWluc3RhbnRp YXRpb25fZGlyICR0cGxkaXIgJG9ianMgJGxpYm9ianMgJGNvbXBpbGVfZGVwbGlic34KLSsJCWNv bXBpbGVfY29tbWFuZD0iJGNvbXBpbGVfY29tbWFuZCBgZmluZCAkdHBsZGlyIC1uYW1lIFwqLm8g fCAkTkwyU1BgIicKLSsJICAgICAgX0xUX1RBR1ZBUihvbGRfYXJjaGl2ZV9jbWRzLCAkMSk9J3Rw bGRpcj1UZW1wbGF0ZS5kaXJ+Ci0rCQlybSAtcmYgJHRwbGRpcn4KLSsJCSRDQyAtLXByZWxpbmtf b2JqZWN0cyAtLWluc3RhbnRpYXRpb25fZGlyICR0cGxkaXIgJG9sZG9ianMkb2xkX2RlcGxpYnN+ Ci0rCQkkQVIgJEFSX0ZMQUdTICRvbGRsaWIkb2xkb2JqcyRvbGRfZGVwbGlicyBgZmluZCAkdHBs ZGlyIC1uYW1lIFwqLm8gfCAkTkwyU1BgfgotKwkJJFJBTkxJQiAkb2xkbGliJwotKwkgICAgICBf TFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSd0cGxkaXI9VGVtcGxhdGUuZGlyfgotKwkJcm0g LXJmICR0cGxkaXJ+Ci0rCQkkQ0MgLS1wcmVsaW5rX29iamVjdHMgLS1pbnN0YW50aWF0aW9uX2Rp ciAkdHBsZGlyICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkY29udmVuaWVuY2Ug JHBvc3RkZXBfb2JqZWN0c34KLSsJCSRDQyAtc2hhcmVkICRwaWNfZmxhZyAkcHJlZGVwX29iamVj dHMgJGxpYm9ianMgJGRlcGxpYnMgYGZpbmQgJHRwbGRpciAtbmFtZSBcKi5vIHwgJE5MMlNQYCAk cG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHt3bH0kc29uYW1l IC1vICRsaWInCi0rCSAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEpPSd0 cGxkaXI9VGVtcGxhdGUuZGlyfgotKwkJcm0gLXJmICR0cGxkaXJ+Ci0rCQkkQ0MgLS1wcmVsaW5r X29iamVjdHMgLS1pbnN0YW50aWF0aW9uX2RpciAkdHBsZGlyICRwcmVkZXBfb2JqZWN0cyAkbGli b2JqcyAkZGVwbGlicyAkY29udmVuaWVuY2UgJHBvc3RkZXBfb2JqZWN0c34KLSsJCSRDQyAtc2hh cmVkICRwaWNfZmxhZyAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgYGZpbmQgJHRw bGRpciAtbmFtZSBcKi5vIHwgJE5MMlNQYCAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFn cyAke3dsfS1zb25hbWUgJHt3bH0kc29uYW1lICR7d2x9LXJldGFpbi1zeW1ib2xzLWZpbGUgJHt3 bH0kZXhwb3J0X3N5bWJvbHMgLW8gJGxpYicKLSsJICAgICAgOzsKLSsJICAgICopICMgVmVyc2lv biA2IHdpbGwgdXNlIHdlYWsgc3ltYm9scwotKwkgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21k cywgJDEpPSckQ0MgLXNoYXJlZCAkcGljX2ZsYWcgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRk ZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAke3ds fSRzb25hbWUgLW8gJGxpYicKLSsJICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRz LCAkMSk9JyRDQyAtc2hhcmVkICRwaWNfZmxhZyAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRl cGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR7d2x9 JHNvbmFtZSAke3dsfS1yZXRhaW4tc3ltYm9scy1maWxlICR7d2x9JGV4cG9ydF9zeW1ib2xzIC1v ICRsaWInCi0rCSAgICAgIDs7Ci0rCSAgICBlc2FjCi0rCi0rCSAgICBfTFRfVEFHVkFSKGhhcmRj b2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nJHt3bH0tLXJwYXRoICR7d2x9JGxpYmRpcicKLSsJ ICAgIF9MVF9UQUdWQVIoZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LS1leHBv cnQtZHluYW1pYycKLSsJICAgIF9MVF9UQUdWQVIod2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWMsICQx KT0nJHt3bH0tLXdob2xlLWFyY2hpdmVgZm9yIGNvbnYgaW4gJGNvbnZlbmllbmNlXCJcIjsgZG8g dGVzdCAgLW4gXCIkY29udlwiICYmIG5ld19jb252ZW5pZW5jZT1cIiRuZXdfY29udmVuaWVuY2Us JGNvbnZcIjsgZG9uZTsgJEVDSE8gXCIkbmV3X2NvbnZlbmllbmNlXCJgICR7d2x9LS1uby13aG9s ZS1hcmNoaXZlJwotKyAgICAgICAgICAgIDs7Ci0rCSAgY3h4KikKLSsJICAgICMgQ29tcGFxIEMr KwotKwkgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgJHByZWRl cF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2Zs YWdzICR7d2x9LXNvbmFtZSAkd2wkc29uYW1lIC1vICRsaWInCi0rCSAgICBfTFRfVEFHVkFSKGFy Y2hpdmVfZXhwc3ltX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgJHByZWRlcF9vYmplY3RzICRsaWJv YmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFt ZSAkd2wkc29uYW1lICAtbyAkbGliICR7d2x9LXJldGFpbi1zeW1ib2xzLWZpbGUgJHdsJGV4cG9y dF9zeW1ib2xzJwotKwotKwkgICAgcnVucGF0aF92YXI9TERfUlVOX1BBVEgKLSsJICAgIF9MVF9U QUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPSctcnBhdGggJGxpYmRpcicKLSsJ ICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciwgJDEpPToKLSsKLSsJICAg ICMgQ29tbWFuZHMgdG8gbWFrZSBjb21waWxlciBwcm9kdWNlIHZlcmJvc2Ugb3V0cHV0IHRoYXQg bGlzdHMKLSsJICAgICMgd2hhdCAiaGlkZGVuIiBsaWJyYXJpZXMsIG9iamVjdCBmaWxlcyBhbmQg ZmxhZ3MgYXJlIHVzZWQgd2hlbgotKwkgICAgIyBsaW5raW5nIGEgc2hhcmVkIGxpYnJhcnkuCi0r CSAgICAjCi0rCSAgICAjIFRoZXJlIGRvZXNuJ3QgYXBwZWFyIHRvIGJlIGEgd2F5IHRvIHByZXZl bnQgdGhpcyBjb21waWxlciBmcm9tCi0rCSAgICAjIGV4cGxpY2l0bHkgbGlua2luZyBzeXN0ZW0g b2JqZWN0IGZpbGVzIHNvIHdlIG5lZWQgdG8gc3RyaXAgdGhlbQotKwkgICAgIyBmcm9tIHRoZSBv dXRwdXQgc28gdGhhdCB0aGV5IGRvbid0IGdldCBpbmNsdWRlZCBpbiB0aGUgbGlicmFyeQotKwkg ICAgIyBkZXBlbmRlbmNpZXMuCi0rCSAgICBvdXRwdXRfdmVyYm9zZV9saW5rX2NtZD0ndGVtcGxp c3Q9YCRDQyAtc2hhcmVkICRDRkxBR1MgLXYgY29uZnRlc3QuJG9iamV4dCAyPiYxIHwgJEdSRVAg ImxkImA7IHRlbXBsaXN0PWAkRUNITyAiWCR0ZW1wbGlzdCIgfCAkWHNlZCAtZSAicy9cKF4uKmxk LipcKVwoIC4qbGQgLiokXCkvXDEvImA7IGxpc3Q9IiI7IGZvciB6IGluICR0ZW1wbGlzdDsgZG8g Y2FzZSAkeiBpbiBjb25mdGVzdC4kb2JqZXh0KSBsaXN0PSIkbGlzdCAkeiI7OyAqLiRvYmpleHQp OzsgKikgbGlzdD0iJGxpc3QgJHoiOztlc2FjOyBkb25lOyAkRUNITyAiWCRsaXN0IiB8ICRYc2Vk JwotKwkgICAgOzsKLSsJICB4bCopCi0rCSAgICAjIElCTSBYTCA4LjAgb24gUFBDLCB3aXRoIEdO VSBsZAotKwkgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9JyR7 d2x9LXJwYXRoICR7d2x9JGxpYmRpcicKLSsJICAgIF9MVF9UQUdWQVIoZXhwb3J0X2R5bmFtaWNf ZmxhZ19zcGVjLCAkMSk9JyR7d2x9LS1leHBvcnQtZHluYW1pYycKLSsJICAgIF9MVF9UQUdWQVIo YXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtcW1rc2hyb2JqICRsaWJvYmpzICRkZXBsaWJzICRjb21w aWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAtbyAkbGliJwotKwkgICAgaWYgdGVz dCAieCRzdXBwb3J0c19hbm9uX3ZlcnNpb25pbmciID0geHllczsgdGhlbgotKwkgICAgICBfTFRf VEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0nZWNobyAieyBnbG9iYWw6IiA+ICRvdXRw dXRfb2JqZGlyLyRsaWJuYW1lLnZlcn4KLSsJCWNhdCAkZXhwb3J0X3N5bWJvbHMgfCBzZWQgLWUg InMvXCguKlwpL1wxOy8iID4+ICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLnZlcn4KLSsJCWVjaG8g ImxvY2FsOiAqOyB9OyIgPj4gJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUudmVyfgotKwkJJENDIC1x bWtzaHJvYmogJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAk d2wkc29uYW1lICR7d2x9LXZlcnNpb24tc2NyaXB0ICR7d2x9JG91dHB1dF9vYmpkaXIvJGxpYm5h bWUudmVyIC1vICRsaWInCi0rCSAgICBmaQotKwkgICAgOzsKLSsJICAqKQotKwkgICAgY2FzZSBg JENDIC1WIDI+JjEgfCBzZWQgNXFgIGluCi0rCSAgICAqU3VuXCBDKikKLSsJICAgICAgIyBTdW4g QysrIDUuOQotKwkgICAgICBfTFRfVEFHVkFSKG5vX3VuZGVmaW5lZF9mbGFnLCAkMSk9JyAtemRl ZnMnCi0rCSAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtRyR7YWxsb3df dW5kZWZpbmVkX2ZsYWd9IC1oJHNvbmFtZSAtbyAkbGliICRwcmVkZXBfb2JqZWN0cyAkbGlib2Jq cyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncycKLSsJICAgICAgX0xU X1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9JyRDQyAtRyR7YWxsb3dfdW5kZWZpbmVk X2ZsYWd9IC1oJHNvbmFtZSAtbyAkbGliICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGli cyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAke3dsfS1yZXRhaW4tc3ltYm9scy1m aWxlICR7d2x9JGV4cG9ydF9zeW1ib2xzJwotKwkgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xp YmRpcl9mbGFnX3NwZWMsICQxKT0nLVIkbGliZGlyJwotKwkgICAgICBfTFRfVEFHVkFSKHdob2xl X2FyY2hpdmVfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LS13aG9sZS1hcmNoaXZlYG5ld19jb252ZW5p ZW5jZT07IGZvciBjb252IGluICRjb252ZW5pZW5jZVwiXCI7IGRvIHRlc3QgLXogXCIkY29udlwi IHx8IG5ld19jb252ZW5pZW5jZT1cIiRuZXdfY29udmVuaWVuY2UsJGNvbnZcIjsgZG9uZTsgJEVD SE8gXCIkbmV3X2NvbnZlbmllbmNlXCJgICR7d2x9LS1uby13aG9sZS1hcmNoaXZlJwotKwkgICAg ICBfTFRfVEFHVkFSKGNvbXBpbGVyX25lZWRzX29iamVjdCwgJDEpPXllcwotKwotKwkgICAgICAj IE5vdCBzdXJlIHdoZXRoZXIgc29tZXRoaW5nIGJhc2VkIG9uCi0rCSAgICAgICMgJENDICRDRkxB R1MgLXYgY29uZnRlc3QuJG9iamV4dCAtbyBsaWJjb25mdGVzdCRzaGFyZWRfZXh0IDI+JjEKLSsJ ICAgICAgIyB3b3VsZCBiZSBiZXR0ZXIuCi0rCSAgICAgIG91dHB1dF92ZXJib3NlX2xpbmtfY21k PSdlY2hvJwotKwotKwkgICAgICAjIEFyY2hpdmVzIGNvbnRhaW5pbmcgQysrIG9iamVjdCBmaWxl cyBtdXN0IGJlIGNyZWF0ZWQgdXNpbmcKLSsJICAgICAgIyAiQ0MgLXhhciIsIHdoZXJlICJDQyIg aXMgdGhlIFN1biBDKysgY29tcGlsZXIuICBUaGlzIGlzCi0rCSAgICAgICMgbmVjZXNzYXJ5IHRv IG1ha2Ugc3VyZSBpbnN0YW50aWF0ZWQgdGVtcGxhdGVzIGFyZSBpbmNsdWRlZAotKwkgICAgICAj IGluIHRoZSBhcmNoaXZlLgotKwkgICAgICBfTFRfVEFHVkFSKG9sZF9hcmNoaXZlX2NtZHMsICQx KT0nJENDIC14YXIgLW8gJG9sZGxpYiAkb2xkb2JqcycKLSsJICAgICAgOzsKLSsJICAgIGVzYWMK LSsJICAgIDs7Ci0rCWVzYWMKLSsJOzsKLSsKLSsgICAgICBseW54b3MqKQotKyAgICAgICAgIyBG SVhNRTogaW5zZXJ0IHByb3BlciBDKysgbGlicmFyeSBzdXBwb3J0Ci0rCV9MVF9UQUdWQVIobGRf c2hsaWJzLCAkMSk9bm8KLSsJOzsKLSsKLSsgICAgICBtODhrKikKLSsgICAgICAgICMgRklYTUU6 IGluc2VydCBwcm9wZXIgQysrIGxpYnJhcnkgc3VwcG9ydAotKyAgICAgICAgX0xUX1RBR1ZBUihs ZF9zaGxpYnMsICQxKT1ubwotKwk7OwotKwotKyAgICAgIG12cyopCi0rICAgICAgICBjYXNlICRj Y19iYXNlbmFtZSBpbgotKyAgICAgICAgICBjeHgqKQotKwkgICAgIyBGSVhNRTogaW5zZXJ0IHBy b3BlciBDKysgbGlicmFyeSBzdXBwb3J0Ci0rCSAgICBfTFRfVEFHVkFSKGxkX3NobGlicywgJDEp PW5vCi0rCSAgICA7OwotKwkgICopCi0rCSAgICAjIEZJWE1FOiBpbnNlcnQgcHJvcGVyIEMrKyBs aWJyYXJ5IHN1cHBvcnQKLSsJICAgIF9MVF9UQUdWQVIobGRfc2hsaWJzLCAkMSk9bm8KLSsJICAg IDs7Ci0rCWVzYWMKLSsJOzsKLSsKLSsgICAgICBuZXRic2QqKQotKyAgICAgICAgaWYgZWNobyBf X0VMRl9fIHwgJENDIC1FIC0gfCAkR1JFUCBfX0VMRl9fID4vZGV2L251bGw7IHRoZW4KLSsJICBf TFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckTEQgLUJzaGFyZWFibGUgIC1vICRsaWIgJHBy ZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGxpbmtlcl9m bGFncycKLSsJICB3bGFyYz0KLSsJICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3Nw ZWMsICQxKT0nLVIkbGliZGlyJwotKwkgIF9MVF9UQUdWQVIoaGFyZGNvZGVfZGlyZWN0LCAkMSk9 eWVzCi0rCSAgX0xUX1RBR1ZBUihoYXJkY29kZV9zaGxpYnBhdGhfdmFyLCAkMSk9bm8KLSsJZmkK LSsJIyBXb3JrYXJvdW5kIHNvbWUgYnJva2VuIHByZS0xLjUgdG9vbGNoYWlucwotKwlvdXRwdXRf dmVyYm9zZV9saW5rX2NtZD0nJENDIC1zaGFyZWQgJENGTEFHUyAtdiBjb25mdGVzdC4kb2JqZXh0 IDI+JjEgfCAkR1JFUCBjb25mdGVzdC4kb2JqZXh0IHwgJFNFRCAtZSAiczotbGdjYyAtbGMgLWxn Y2M6OiInCi0rCTs7Ci0rCi0rICAgICAgKm50byogfCAqcW54KikKLSsgICAgICAgIF9MVF9UQUdW QVIobGRfc2hsaWJzLCAkMSk9eWVzCi0rCTs7Ci0rCi0rICAgICAgb3BlbmJzZDIqKQotKyAgICAg ICAgIyBDKysgc2hhcmVkIGxpYnJhcmllcyBhcmUgZmFpcmx5IGJyb2tlbgotKwlfTFRfVEFHVkFS KGxkX3NobGlicywgJDEpPW5vCi0rCTs7Ci0rCi0rICAgICAgb3BlbmJzZCopCi0rCWlmIHRlc3Qg LWYgL3Vzci9saWJleGVjL2xkLnNvOyB0aGVuCi0rCSAgX0xUX1RBR1ZBUihoYXJkY29kZV9kaXJl Y3QsICQxKT15ZXMKLSsJICBfTFRfVEFHVkFSKGhhcmRjb2RlX3NobGlicGF0aF92YXIsICQxKT1u bwotKwkgIF9MVF9UQUdWQVIoaGFyZGNvZGVfZGlyZWN0X2Fic29sdXRlLCAkMSk9eWVzCi0rCSAg X0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgJHBpY19mbGFnICRwcmVk ZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9m bGFncyAtbyAkbGliJwotKwkgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywg JDEpPScke3dsfS1ycGF0aCwkbGliZGlyJwotKwkgIGlmIHRlc3QgLXogImBlY2hvIF9fRUxGX18g fCAkQ0MgLUUgLSB8IGdyZXAgX19FTEZfX2AiIHx8IHRlc3QgIiRob3N0X29zLSRob3N0X2NwdSIg PSAib3BlbmJzZDIuOC1wb3dlcnBjIjsgdGhlbgotKwkgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2V4 cHN5bV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkICRwaWNfZmxhZyAkcHJlZGVwX29iamVjdHMgJGxp Ym9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tcmV0 YWluLXN5bWJvbHMtZmlsZSwkZXhwb3J0X3N5bWJvbHMgLW8gJGxpYicKLSsJICAgIF9MVF9UQUdW QVIoZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LUUnCi0rCSAgICBfTFRfVEFH VkFSKHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjLCAkMSk9IiR3bGFyYyInLS13aG9sZS1hcmNoaXZl JGNvbnZlbmllbmNlICciJHdsYXJjIictLW5vLXdob2xlLWFyY2hpdmUnCi0rCSAgZmkKLSsJICBv dXRwdXRfdmVyYm9zZV9saW5rX2NtZD1lY2hvCi0rCWVsc2UKLSsJICBfTFRfVEFHVkFSKGxkX3No bGlicywgJDEpPW5vCi0rCWZpCi0rCTs7Ci0rCi0rICAgICAgb3NmMyogfCBvc2Y0KiB8IG9zZjUq KQotKyAgICAgICAgY2FzZSAkY2NfYmFzZW5hbWUgaW4KLSsgICAgICAgICAgS0NDKikKLSsJICAg ICMgS3VjayBhbmQgQXNzb2NpYXRlcywgSW5jLiAoS0FJKSBDKysgQ29tcGlsZXIKLSsKLSsJICAg ICMgS0NDIHdpbGwgb25seSBjcmVhdGUgYSBzaGFyZWQgbGlicmFyeSBpZiB0aGUgb3V0cHV0IGZp bGUKLSsJICAgICMgZW5kcyB3aXRoICIuc28iIChvciAiLnNsIiBmb3IgSFAtVVgpLCBzbyByZW5h bWUgdGhlIGxpYnJhcnkKLSsJICAgICMgdG8gaXRzIHByb3BlciBuYW1lICh3aXRoIHZlcnNpb24p IGFmdGVyIGxpbmtpbmcuCi0rCSAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSd0ZW1w ZXh0PWBlY2hvICRzaGFyZWRfZXh0IHwgJFNFRCAtZSAnXCcncy9cKFtbXigpMC05QS1aYS16e31d XVwpL1xcXFxcMS9nJ1wnJ2A7IHRlbXBsaWI9YGVjaG8gIiRsaWIiIHwgJFNFRCAtZSAicy9cJHt0 ZW1wZXh0fVwuLiovLnNvLyJgOyAkQ0MgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJz ICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzIC0tc29uYW1lICRzb25hbWUgLW8gXCR0 ZW1wbGliOyBtdiBcJHRlbXBsaWIgJGxpYicKLSsKLSsJICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVf bGliZGlyX2ZsYWdfc3BlYywgJDEpPScke3dsfS1ycGF0aCwkbGliZGlyJwotKwkgICAgX0xUX1RB R1ZBUihoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yLCAkMSk9OgotKwotKwkgICAgIyBBcmNoaXZl cyBjb250YWluaW5nIEMrKyBvYmplY3QgZmlsZXMgbXVzdCBiZSBjcmVhdGVkIHVzaW5nCi0rCSAg ICAjIHRoZSBLQUkgQysrIGNvbXBpbGVyLgotKwkgICAgY2FzZSAkaG9zdCBpbgotKwkgICAgICBv c2YzKikgX0xUX1RBR1ZBUihvbGRfYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtQnN0YXRpYyAtbyAk b2xkbGliICRvbGRvYmpzJyA7OwotKwkgICAgICAqKSBfTFRfVEFHVkFSKG9sZF9hcmNoaXZlX2Nt ZHMsICQxKT0nJENDIC1vICRvbGRsaWIgJG9sZG9ianMnIDs7Ci0rCSAgICBlc2FjCi0rCSAgICA7 OwotKyAgICAgICAgICBSQ0MqKQotKwkgICAgIyBSYXRpb25hbCBDKysgMi40LjEKLSsJICAgICMg RklYTUU6IGluc2VydCBwcm9wZXIgQysrIGxpYnJhcnkgc3VwcG9ydAotKwkgICAgX0xUX1RBR1ZB UihsZF9zaGxpYnMsICQxKT1ubwotKwkgICAgOzsKLSsgICAgICAgICAgY3h4KikKLSsJICAgIGNh c2UgJGhvc3QgaW4KLSsJICAgICAgb3NmMyopCi0rCSAgICAgICAgX0xUX1RBR1ZBUihhbGxvd191 bmRlZmluZWRfZmxhZywgJDEpPScgJHt3bH0tZXhwZWN0X3VucmVzb2x2ZWQgJHt3bH1cKicKLSsJ ICAgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXNoYXJlZCR7YWxsb3df dW5kZWZpbmVkX2ZsYWd9ICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRl cF9vYmplY3RzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHNvbmFtZSBgdGVzdCAtbiAi JHZlcnN0cmluZyIgJiYgJEVDSE8gIlgke3dsfS1zZXRfdmVyc2lvbiAkdmVyc3RyaW5nIiB8ICRY c2VkYCAtdXBkYXRlX3JlZ2lzdHJ5ICR7b3V0cHV0X29iamRpcn0vc29fbG9jYXRpb25zIC1vICRs aWInCi0rCSAgICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9 JyR7d2x9LXJwYXRoICR7d2x9JGxpYmRpcicKLSsJCTs7Ci0rCSAgICAgICopCi0rCSAgICAgICAg X0xUX1RBR1ZBUihhbGxvd191bmRlZmluZWRfZmxhZywgJDEpPScgLWV4cGVjdF91bnJlc29sdmVk IFwqJwotKwkgICAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVk JHthbGxvd191bmRlZmluZWRfZmxhZ30gJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJz ICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzIC1tc3ltIC1zb25hbWUgJHNvbmFtZSBg dGVzdCAtbiAiJHZlcnN0cmluZyIgJiYgJEVDSE8gIlgtc2V0X3ZlcnNpb24gJHZlcnN0cmluZyIg fCAkWHNlZGAgLXVwZGF0ZV9yZWdpc3RyeSAke291dHB1dF9vYmpkaXJ9L3NvX2xvY2F0aW9ucyAt byAkbGliJwotKwkgICAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEpPSdm b3IgaSBpbiBgY2F0ICRleHBvcnRfc3ltYm9sc2A7IGRvIHByaW50ZiAiJXMgJXNcXG4iIC1leHBv cnRlZF9zeW1ib2wgIlwkaSIgPj4gJGxpYi5leHA7IGRvbmV+Ci0rCSAgICAgICAgICBlY2hvICIt aGlkZGVuIj4+ICRsaWIuZXhwfgotKwkgICAgICAgICAgJENDIC1zaGFyZWQkYWxsb3dfdW5kZWZp bmVkX2ZsYWcgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVj dHMgJGNvbXBpbGVyX2ZsYWdzIC1tc3ltIC1zb25hbWUgJHNvbmFtZSAke3dsfS1pbnB1dCAke3ds fSRsaWIuZXhwICBgdGVzdCAtbiAiJHZlcnN0cmluZyIgJiYgJEVDSE8gIlgtc2V0X3ZlcnNpb24g JHZlcnN0cmluZyIgfCAkWHNlZGAgLXVwZGF0ZV9yZWdpc3RyeSAke291dHB1dF9vYmpkaXJ9L3Nv X2xvY2F0aW9ucyAtbyAkbGlifgotKwkgICAgICAgICAgJFJNICRsaWIuZXhwJwotKwkgICAgICAg IF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPSctcnBhdGggJGxpYmRp cicKLSsJCTs7Ci0rCSAgICBlc2FjCi0rCi0rCSAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRp cl9zZXBhcmF0b3IsICQxKT06Ci0rCi0rCSAgICAjIENvbW1hbmRzIHRvIG1ha2UgY29tcGlsZXIg cHJvZHVjZSB2ZXJib3NlIG91dHB1dCB0aGF0IGxpc3RzCi0rCSAgICAjIHdoYXQgImhpZGRlbiIg bGlicmFyaWVzLCBvYmplY3QgZmlsZXMgYW5kIGZsYWdzIGFyZSB1c2VkIHdoZW4KLSsJICAgICMg bGlua2luZyBhIHNoYXJlZCBsaWJyYXJ5LgotKwkgICAgIwotKwkgICAgIyBUaGVyZSBkb2Vzbid0 IGFwcGVhciB0byBiZSBhIHdheSB0byBwcmV2ZW50IHRoaXMgY29tcGlsZXIgZnJvbQotKwkgICAg IyBleHBsaWNpdGx5IGxpbmtpbmcgc3lzdGVtIG9iamVjdCBmaWxlcyBzbyB3ZSBuZWVkIHRvIHN0 cmlwIHRoZW0KLSsJICAgICMgZnJvbSB0aGUgb3V0cHV0IHNvIHRoYXQgdGhleSBkb24ndCBnZXQg aW5jbHVkZWQgaW4gdGhlIGxpYnJhcnkKLSsJICAgICMgZGVwZW5kZW5jaWVzLgotKwkgICAgb3V0 cHV0X3ZlcmJvc2VfbGlua19jbWQ9J3RlbXBsaXN0PWAkQ0MgLXNoYXJlZCAkQ0ZMQUdTIC12IGNv bmZ0ZXN0LiRvYmpleHQgMj4mMSB8ICRHUkVQICJsZCIgfCAkR1JFUCAtdiAibGQ6ImA7IHRlbXBs aXN0PWAkRUNITyAiWCR0ZW1wbGlzdCIgfCAkWHNlZCAtZSAicy9cKF4uKmxkLipcKVwoIC4qbGQu KiRcKS9cMS8iYDsgbGlzdD0iIjsgZm9yIHogaW4gJHRlbXBsaXN0OyBkbyBjYXNlICR6IGluIGNv bmZ0ZXN0LiRvYmpleHQpIGxpc3Q9IiRsaXN0ICR6Ijs7ICouJG9iamV4dCk7OyAqKSBsaXN0PSIk bGlzdCAkeiI7O2VzYWM7IGRvbmU7ICRFQ0hPICJYJGxpc3QiIHwgJFhzZWQnCi0rCSAgICA7Owot KwkgICopCi0rCSAgICBpZiB0ZXN0ICIkR1hYIiA9IHllcyAmJiB0ZXN0ICIkd2l0aF9nbnVfbGQi ID0gbm87IHRoZW4KLSsJICAgICAgX0xUX1RBR1ZBUihhbGxvd191bmRlZmluZWRfZmxhZywgJDEp PScgJHt3bH0tZXhwZWN0X3VucmVzb2x2ZWQgJHt3bH1cKicKLSsJICAgICAgY2FzZSAkaG9zdCBp bgotKwkgICAgICAgIG9zZjMqKQotKwkgICAgICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMs ICQxKT0nJENDIC1zaGFyZWQgLW5vc3RkbGliICR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9ICRwcmVk ZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9m bGFncyAke3dsfS1zb25hbWUgJHt3bH0kc29uYW1lIGB0ZXN0IC1uICIkdmVyc3RyaW5nIiAmJiAk RUNITyAiWCR7d2x9LXNldF92ZXJzaW9uICR7d2x9JHZlcnN0cmluZyIgfCAkWHNlZGAgJHt3bH0t dXBkYXRlX3JlZ2lzdHJ5ICR7d2x9JHtvdXRwdXRfb2JqZGlyfS9zb19sb2NhdGlvbnMgLW8gJGxp YicKLSsJCSAgOzsKLSsJICAgICAgICAqKQotKwkgICAgICAgICAgX0xUX1RBR1ZBUihhcmNoaXZl X2NtZHMsICQxKT0nJENDIC1zaGFyZWQgLW5vc3RkbGliICR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9 ICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21w aWxlcl9mbGFncyAke3dsfS1tc3ltICR7d2x9LXNvbmFtZSAke3dsfSRzb25hbWUgYHRlc3QgLW4g IiR2ZXJzdHJpbmciICYmICRFQ0hPICIke3dsfS1zZXRfdmVyc2lvbiAke3dsfSR2ZXJzdHJpbmci IHwgJFhzZWRgICR7d2x9LXVwZGF0ZV9yZWdpc3RyeSAke3dsfSR7b3V0cHV0X29iamRpcn0vc29f bG9jYXRpb25zIC1vICRsaWInCi0rCQkgIDs7Ci0rCSAgICAgIGVzYWMKLSsKLSsJICAgICAgX0xU X1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LXJwYXRoICR7d2x9 JGxpYmRpcicKLSsJICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yLCAk MSk9OgotKwotKwkgICAgICAjIENvbW1hbmRzIHRvIG1ha2UgY29tcGlsZXIgcHJvZHVjZSB2ZXJi b3NlIG91dHB1dCB0aGF0IGxpc3RzCi0rCSAgICAgICMgd2hhdCAiaGlkZGVuIiBsaWJyYXJpZXMs IG9iamVjdCBmaWxlcyBhbmQgZmxhZ3MgYXJlIHVzZWQgd2hlbgotKwkgICAgICAjIGxpbmtpbmcg YSBzaGFyZWQgbGlicmFyeS4KLSsJICAgICAgb3V0cHV0X3ZlcmJvc2VfbGlua19jbWQ9JyRDQyAt c2hhcmVkICRDRkxBR1MgLXYgY29uZnRlc3QuJG9iamV4dCAyPiYxIHwgJEdSRVAgIlwtTCInCi0r Ci0rCSAgICBlbHNlCi0rCSAgICAgICMgRklYTUU6IGluc2VydCBwcm9wZXIgQysrIGxpYnJhcnkg c3VwcG9ydAotKwkgICAgICBfTFRfVEFHVkFSKGxkX3NobGlicywgJDEpPW5vCi0rCSAgICBmaQot KwkgICAgOzsKLSsgICAgICAgIGVzYWMKLSsgICAgICAgIDs7Ci0rCi0rICAgICAgcHNvcyopCi0r ICAgICAgICAjIEZJWE1FOiBpbnNlcnQgcHJvcGVyIEMrKyBsaWJyYXJ5IHN1cHBvcnQKLSsgICAg ICAgIF9MVF9UQUdWQVIobGRfc2hsaWJzLCAkMSk9bm8KLSsgICAgICAgIDs7Ci0rCi0rICAgICAg c3Vub3M0KikKLSsgICAgICAgIGNhc2UgJGNjX2Jhc2VuYW1lIGluCi0rICAgICAgICAgIENDKikK LSsJICAgICMgU3VuIEMrKyA0LngKLSsJICAgICMgRklYTUU6IGluc2VydCBwcm9wZXIgQysrIGxp YnJhcnkgc3VwcG9ydAotKwkgICAgX0xUX1RBR1ZBUihsZF9zaGxpYnMsICQxKT1ubwotKwkgICAg OzsKLSsgICAgICAgICAgbGNjKikKLSsJICAgICMgTHVjaWQKLSsJICAgICMgRklYTUU6IGluc2Vy dCBwcm9wZXIgQysrIGxpYnJhcnkgc3VwcG9ydAotKwkgICAgX0xUX1RBR1ZBUihsZF9zaGxpYnMs ICQxKT1ubwotKwkgICAgOzsKLSsgICAgICAgICAgKikKLSsJICAgICMgRklYTUU6IGluc2VydCBw cm9wZXIgQysrIGxpYnJhcnkgc3VwcG9ydAotKwkgICAgX0xUX1RBR1ZBUihsZF9zaGxpYnMsICQx KT1ubwotKwkgICAgOzsKLSsgICAgICAgIGVzYWMKLSsgICAgICAgIDs7Ci0rCi0rICAgICAgc29s YXJpcyopCi0rICAgICAgICBjYXNlICRjY19iYXNlbmFtZSBpbgotKyAgICAgICAgICBDQyopCi0r CSAgICAjIFN1biBDKysgNC4yLCA1LnggYW5kIENlbnRlcmxpbmUgQysrCi0rICAgICAgICAgICAg X0xUX1RBR1ZBUihhcmNoaXZlX2NtZHNfbmVlZF9sYywkMSk9eWVzCi0rCSAgICBfTFRfVEFHVkFS KG5vX3VuZGVmaW5lZF9mbGFnLCAkMSk9JyAtemRlZnMnCi0rCSAgICBfTFRfVEFHVkFSKGFyY2hp dmVfY21kcywgJDEpPSckQ0MgLUcke2FsbG93X3VuZGVmaW5lZF9mbGFnfSAgLWgkc29uYW1lIC1v ICRsaWIgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMg JGNvbXBpbGVyX2ZsYWdzJwotKwkgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAk MSk9J2VjaG8gInsgZ2xvYmFsOiIgPiAkbGliLmV4cH5jYXQgJGV4cG9ydF9zeW1ib2xzIHwgJFNF RCAtZSAicy9cKC4qXCkvXDE7LyIgPj4gJGxpYi5leHB+ZWNobyAibG9jYWw6ICo7IH07IiA+PiAk bGliLmV4cH4KLSsJICAgICAgJENDIC1HJHthbGxvd191bmRlZmluZWRfZmxhZ30gJHt3bH0tTSAk e3dsfSRsaWIuZXhwIC1oJHNvbmFtZSAtbyAkbGliICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAk ZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFnc34kUk0gJGxpYi5leHAnCi0r Ci0rCSAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nLVIkbGli ZGlyJwotKwkgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9zaGxpYnBhdGhfdmFyLCAkMSk9bm8KLSsJ ICAgIGNhc2UgJGhvc3Rfb3MgaW4KLSsJICAgICAgc29sYXJpczIuW1swLTVdXSB8IHNvbGFyaXMy LltbMC01XV0uKikgOzsKLSsJICAgICAgKikKLSsJCSMgVGhlIGNvbXBpbGVyIGRyaXZlciB3aWxs IGNvbWJpbmUgYW5kIHJlb3JkZXIgbGlua2VyIG9wdGlvbnMsCi0rCQkjIGJ1dCB1bmRlcnN0YW5k cyBgLXogbGlua2VyX2ZsYWcnLgotKwkgICAgICAgICMgU3VwcG9ydGVkIHNpbmNlIFNvbGFyaXMg Mi42IChtYXliZSAyLjUuMT8pCi0rCQlfTFRfVEFHVkFSKHdob2xlX2FyY2hpdmVfZmxhZ19zcGVj LCAkMSk9Jy16IGFsbGV4dHJhY3QkY29udmVuaWVuY2UgLXogZGVmYXVsdGV4dHJhY3QnCi0rCSAg ICAgICAgOzsKLSsJICAgIGVzYWMKLSsJICAgIF9MVF9UQUdWQVIobGlua19hbGxfZGVwbGlicywg JDEpPXllcwotKwotKwkgICAgb3V0cHV0X3ZlcmJvc2VfbGlua19jbWQ9J2VjaG8nCi0rCi0rCSAg ICAjIEFyY2hpdmVzIGNvbnRhaW5pbmcgQysrIG9iamVjdCBmaWxlcyBtdXN0IGJlIGNyZWF0ZWQg dXNpbmcKLSsJICAgICMgIkNDIC14YXIiLCB3aGVyZSAiQ0MiIGlzIHRoZSBTdW4gQysrIGNvbXBp bGVyLiAgVGhpcyBpcwotKwkgICAgIyBuZWNlc3NhcnkgdG8gbWFrZSBzdXJlIGluc3RhbnRpYXRl ZCB0ZW1wbGF0ZXMgYXJlIGluY2x1ZGVkCi0rCSAgICAjIGluIHRoZSBhcmNoaXZlLgotKwkgICAg X0xUX1RBR1ZBUihvbGRfYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAteGFyIC1vICRvbGRsaWIgJG9s ZG9ianMnCi0rCSAgICA7OwotKyAgICAgICAgICBnY3gqKQotKwkgICAgIyBHcmVlbiBIaWxscyBD KysgQ29tcGlsZXIKLSsJICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hh cmVkICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRj b21waWxlcl9mbGFncyAke3dsfS1oICR3bCRzb25hbWUgLW8gJGxpYicKLSsKLSsJICAgICMgVGhl IEMrKyBjb21waWxlciBtdXN0IGJlIHVzZWQgdG8gY3JlYXRlIHRoZSBhcmNoaXZlLgotKwkgICAg X0xUX1RBR1ZBUihvbGRfYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAkTERGTEFHUyAtYXJjaGl2ZSAt byAkb2xkbGliICRvbGRvYmpzJwotKwkgICAgOzsKLSsgICAgICAgICAgKikKLSsJICAgICMgR05V IEMrKyBjb21waWxlciB3aXRoIFNvbGFyaXMgbGlua2VyCi0rCSAgICBpZiB0ZXN0ICIkR1hYIiA9 IHllcyAmJiB0ZXN0ICIkd2l0aF9nbnVfbGQiID0gbm87IHRoZW4KLSsJICAgICAgX0xUX1RBR1ZB Uihub191bmRlZmluZWRfZmxhZywgJDEpPScgJHt3bH0teiAke3dsfWRlZnMnCi0rCSAgICAgIGlm ICRDQyAtLXZlcnNpb24gfCAkR1JFUCAtdiAnXjJcLjcnID4gL2Rldi9udWxsOyB0aGVuCi0rCSAg ICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgLW5vc3RkbGli ICRMREZMQUdTICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmpl Y3RzICRjb21waWxlcl9mbGFncyAke3dsfS1oICR3bCRzb25hbWUgLW8gJGxpYicKLSsJICAgICAg ICBfTFRfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0nZWNobyAieyBnbG9iYWw6IiA+ ICRsaWIuZXhwfmNhdCAkZXhwb3J0X3N5bWJvbHMgfCAkU0VEIC1lICJzL1woLipcKS9cMTsvIiA+ PiAkbGliLmV4cH5lY2hvICJsb2NhbDogKjsgfTsiID4+ICRsaWIuZXhwfgotKwkJICAkQ0MgLXNo YXJlZCAtbm9zdGRsaWIgJHt3bH0tTSAkd2wkbGliLmV4cCAtbyAkbGliICRwcmVkZXBfb2JqZWN0 cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFnc34kUk0g JGxpYi5leHAnCi0rCi0rCSAgICAgICAgIyBDb21tYW5kcyB0byBtYWtlIGNvbXBpbGVyIHByb2R1 Y2UgdmVyYm9zZSBvdXRwdXQgdGhhdCBsaXN0cwotKwkgICAgICAgICMgd2hhdCAiaGlkZGVuIiBs aWJyYXJpZXMsIG9iamVjdCBmaWxlcyBhbmQgZmxhZ3MgYXJlIHVzZWQgd2hlbgotKwkgICAgICAg ICMgbGlua2luZyBhIHNoYXJlZCBsaWJyYXJ5LgotKwkgICAgICAgIG91dHB1dF92ZXJib3NlX2xp bmtfY21kPSckQ0MgLXNoYXJlZCAkQ0ZMQUdTIC12IGNvbmZ0ZXN0LiRvYmpleHQgMj4mMSB8ICRH UkVQICJcLUwiJwotKwkgICAgICBlbHNlCi0rCSAgICAgICAgIyBnKysgMi43IGFwcGVhcnMgdG8g cmVxdWlyZSBgLUcnIE5PVCBgLXNoYXJlZCcgb24gdGhpcwotKwkgICAgICAgICMgcGxhdGZvcm0u Ci0rCSAgICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1HIC1ub3N0ZGxp YiAkTERGTEFHUyAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2Jq ZWN0cyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0taCAkd2wkc29uYW1lIC1vICRsaWInCi0rCSAgICAg ICAgX0xUX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9J2VjaG8gInsgZ2xvYmFsOiIg PiAkbGliLmV4cH5jYXQgJGV4cG9ydF9zeW1ib2xzIHwgJFNFRCAtZSAicy9cKC4qXCkvXDE7LyIg Pj4gJGxpYi5leHB+ZWNobyAibG9jYWw6ICo7IH07IiA+PiAkbGliLmV4cH4KLSsJCSAgJENDIC1H IC1ub3N0ZGxpYiAke3dsfS1NICR3bCRsaWIuZXhwIC1vICRsaWIgJHByZWRlcF9vYmplY3RzICRs aWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzfiRSTSAkbGli LmV4cCcKLSsKLSsJICAgICAgICAjIENvbW1hbmRzIHRvIG1ha2UgY29tcGlsZXIgcHJvZHVjZSB2 ZXJib3NlIG91dHB1dCB0aGF0IGxpc3RzCi0rCSAgICAgICAgIyB3aGF0ICJoaWRkZW4iIGxpYnJh cmllcywgb2JqZWN0IGZpbGVzIGFuZCBmbGFncyBhcmUgdXNlZCB3aGVuCi0rCSAgICAgICAgIyBs aW5raW5nIGEgc2hhcmVkIGxpYnJhcnkuCi0rCSAgICAgICAgb3V0cHV0X3ZlcmJvc2VfbGlua19j bWQ9JyRDQyAtRyAkQ0ZMQUdTIC12IGNvbmZ0ZXN0LiRvYmpleHQgMj4mMSB8ICRHUkVQICJcLUwi JwotKwkgICAgICBmaQotKwotKwkgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFn X3NwZWMsICQxKT0nJHt3bH0tUiAkd2wkbGliZGlyJwotKwkgICAgICBjYXNlICRob3N0X29zIGlu Ci0rCQlzb2xhcmlzMi5bWzAtNV1dIHwgc29sYXJpczIuW1swLTVdXS4qKSA7OwotKwkJKikKLSsJ CSAgX0xUX1RBR1ZBUih3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYywgJDEpPScke3dsfS16ICR7d2x9 YWxsZXh0cmFjdCRjb252ZW5pZW5jZSAke3dsfS16ICR7d2x9ZGVmYXVsdGV4dHJhY3QnCi0rCQkg IDs7Ci0rCSAgICAgIGVzYWMKLSsJICAgIGZpCi0rCSAgICA7OwotKyAgICAgICAgZXNhYwotKyAg ICAgICAgOzsKLSsKLSsgICAgc3lzdjQqdXcyKiB8IHN5c3Y1T3BlblVOSVgqIHwgc3lzdjVVbml4 V2FyZTcuW1swMV1dLltbMTBdXSogfCB1bml4d2FyZTcqIHwgc2NvMy4ydjUuMC5bWzAyNF1dKikK LSsgICAgICBfTFRfVEFHVkFSKG5vX3VuZGVmaW5lZF9mbGFnLCAkMSk9JyR7d2x9LXosdGV4dCcK LSsgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kc19uZWVkX2xjLCAkMSk9bm8KLSsgICAgICBf TFRfVEFHVkFSKGhhcmRjb2RlX3NobGlicGF0aF92YXIsICQxKT1ubwotKyAgICAgIHJ1bnBhdGhf dmFyPSdMRF9SVU5fUEFUSCcKLSsKLSsgICAgICBjYXNlICRjY19iYXNlbmFtZSBpbgotKyAgICAg ICAgQ0MqKQotKwkgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtRyAke3dsfS1o LCRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCi0rCSAg X0xUX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9JyRDQyAtRyAke3dsfS1CZXhwb3J0 OiRleHBvcnRfc3ltYm9scyAke3dsfS1oLCRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGli cyAkY29tcGlsZXJfZmxhZ3MnCi0rCSAgOzsKLSsJKikKLSsJICBfTFRfVEFHVkFSKGFyY2hpdmVf Y21kcywgJDEpPSckQ0MgLXNoYXJlZCAke3dsfS1oLCRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAk ZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCi0rCSAgX0xUX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9j bWRzLCAkMSk9JyRDQyAtc2hhcmVkICR7d2x9LUJleHBvcnQ6JGV4cG9ydF9zeW1ib2xzICR7d2x9 LWgsJHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKLSsJ ICA7OwotKyAgICAgIGVzYWMKLSsgICAgICA7OwotKwotKyAgICAgIHN5c3Y1KiB8IHNjbzMuMnY1 KiB8IHNjbzV2NiopCi0rCSMgTm90ZTogV2UgY2FuIE5PVCB1c2UgLXogZGVmcyBhcyB3ZSBtaWdo dCBkZXNpcmUsIGJlY2F1c2Ugd2UgZG8gbm90Ci0rCSMgbGluayB3aXRoIC1sYywgYW5kIHRoYXQg d291bGQgY2F1c2UgYW55IHN5bWJvbHMgdXNlZCBmcm9tIGxpYmMgdG8KLSsJIyBhbHdheXMgYmUg dW5yZXNvbHZlZCwgd2hpY2ggbWVhbnMganVzdCBhYm91dCBubyBsaWJyYXJ5IHdvdWxkCi0rCSMg ZXZlciBsaW5rIGNvcnJlY3RseS4gIElmIHdlJ3JlIG5vdCB1c2luZyBHTlUgbGQgd2UgdXNlIC16 IHRleHQKLSsJIyB0aG91Z2gsIHdoaWNoIGRvZXMgY2F0Y2ggc29tZSBiYWQgc3ltYm9scyBidXQg aXNuJ3QgYXMgaGVhdnktaGFuZGVkCi0rCSMgYXMgLXogZGVmcy4KLSsJX0xUX1RBR1ZBUihub191 bmRlZmluZWRfZmxhZywgJDEpPScke3dsfS16LHRleHQnCi0rCV9MVF9UQUdWQVIoYWxsb3dfdW5k ZWZpbmVkX2ZsYWcsICQxKT0nJHt3bH0teixub2RlZnMnCi0rCV9MVF9UQUdWQVIoYXJjaGl2ZV9j bWRzX25lZWRfbGMsICQxKT1ubwotKwlfTFRfVEFHVkFSKGhhcmRjb2RlX3NobGlicGF0aF92YXIs ICQxKT1ubwotKwlfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nJHt3 bH0tUiwkbGliZGlyJwotKwlfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3IsICQx KT0nOicKLSsJX0xUX1RBR1ZBUihsaW5rX2FsbF9kZXBsaWJzLCAkMSk9eWVzCi0rCV9MVF9UQUdW QVIoZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LUJleHBvcnQnCi0rCXJ1bnBh dGhfdmFyPSdMRF9SVU5fUEFUSCcKLSsKLSsJY2FzZSAkY2NfYmFzZW5hbWUgaW4KLSsgICAgICAg ICAgQ0MqKQotKwkgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1HICR7d2x9 LWgsJHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKLSsJ ICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEpPSckQ0MgLUcgJHt3bH0tQmV4 cG9ydDokZXhwb3J0X3N5bWJvbHMgJHt3bH0taCwkc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRl cGxpYnMgJGNvbXBpbGVyX2ZsYWdzJwotKwkgICAgOzsKLSsJICAqKQotKwkgICAgX0xUX1RBR1ZB UihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgJHt3bH0taCwkc29uYW1lIC1vICRsaWIg JGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJwotKwkgICAgX0xUX1RBR1ZBUihhcmNo aXZlX2V4cHN5bV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkICR7d2x9LUJleHBvcnQ6JGV4cG9ydF9z eW1ib2xzICR7d2x9LWgsJHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxl cl9mbGFncycKLSsJICAgIDs7Ci0rCWVzYWMKLSsgICAgICA7OwotKwotKyAgICAgIHRhbmRlbSop Ci0rICAgICAgICBjYXNlICRjY19iYXNlbmFtZSBpbgotKyAgICAgICAgICBOQ0MqKQotKwkgICAg IyBOb25TdG9wLVVYIE5DQyAzLjIwCi0rCSAgICAjIEZJWE1FOiBpbnNlcnQgcHJvcGVyIEMrKyBs aWJyYXJ5IHN1cHBvcnQKLSsJICAgIF9MVF9UQUdWQVIobGRfc2hsaWJzLCAkMSk9bm8KLSsJICAg IDs7Ci0rICAgICAgICAgICopCi0rCSAgICAjIEZJWE1FOiBpbnNlcnQgcHJvcGVyIEMrKyBsaWJy YXJ5IHN1cHBvcnQKLSsJICAgIF9MVF9UQUdWQVIobGRfc2hsaWJzLCAkMSk9bm8KLSsJICAgIDs7 Ci0rICAgICAgICBlc2FjCi0rICAgICAgICA7OwotKwotKyAgICAgIHZ4d29ya3MqKQotKyAgICAg ICAgIyBGSVhNRTogaW5zZXJ0IHByb3BlciBDKysgbGlicmFyeSBzdXBwb3J0Ci0rICAgICAgICBf TFRfVEFHVkFSKGxkX3NobGlicywgJDEpPW5vCi0rICAgICAgICA7OwotKwotKyAgICAgICopCi0r ICAgICAgICAjIEZJWE1FOiBpbnNlcnQgcHJvcGVyIEMrKyBsaWJyYXJ5IHN1cHBvcnQKLSsgICAg ICAgIF9MVF9UQUdWQVIobGRfc2hsaWJzLCAkMSk9bm8KLSsgICAgICAgIDs7Ci0rICAgIGVzYWMK LSsKLSsgICAgQUNfTVNHX1JFU1VMVChbJF9MVF9UQUdWQVIobGRfc2hsaWJzLCAkMSldKQotKyAg ICB0ZXN0ICIkX0xUX1RBR1ZBUihsZF9zaGxpYnMsICQxKSIgPSBubyAmJiBjYW5fYnVpbGRfc2hh cmVkPW5vCi0rCi0rICAgIF9MVF9UQUdWQVIoR0NDLCAkMSk9IiRHWFgiCi0rICAgIF9MVF9UQUdW QVIoTEQsICQxKT0iJExEIgotKwotKyAgICAjIyBDQVZFQVQgRU1QVE9SOgotKyAgICAjIyBUaGVy ZSBpcyBubyBlbmNhcHN1bGF0aW9uIHdpdGhpbiB0aGUgZm9sbG93aW5nIG1hY3JvcywgZG8gbm90 IGNoYW5nZQotKyAgICAjIyB0aGUgcnVubmluZyBvcmRlciBvciBvdGhlcndpc2UgbW92ZSB0aGVt IGFyb3VuZCB1bmxlc3MgeW91IGtub3cgZXhhY3RseQotKyAgICAjIyB3aGF0IHlvdSBhcmUgZG9p bmcuLi4KLSsgICAgX0xUX1NZU19ISURERU5fTElCREVQUygkMSkKLSsgICAgX0xUX0NPTVBJTEVS X1BJQygkMSkKLSsgICAgX0xUX0NPTVBJTEVSX0NfTygkMSkKLSsgICAgX0xUX0NPTVBJTEVSX0ZJ TEVfTE9DS1MoJDEpCi0rICAgIF9MVF9MSU5LRVJfU0hMSUJTKCQxKQotKyAgICBfTFRfU1lTX0RZ TkFNSUNfTElOS0VSKCQxKQotKyAgICBfTFRfTElOS0VSX0hBUkRDT0RFX0xJQlBBVEgoJDEpCi0r Ci0rICAgIF9MVF9DT05GSUcoJDEpCi0rICBmaSAjIHRlc3QgLW4gIiRjb21waWxlciIKLSsKLSsg IENDPSRsdF9zYXZlX0NDCi0rICBMRENYWD0kTEQKLSsgIExEPSRsdF9zYXZlX0xECi0rICBHQ0M9 JGx0X3NhdmVfR0NDCi0rICB3aXRoX2dudV9sZD0kbHRfc2F2ZV93aXRoX2dudV9sZAotKyAgbHRf Y3ZfcGF0aF9MRENYWD0kbHRfY3ZfcGF0aF9MRAotKyAgbHRfY3ZfcGF0aF9MRD0kbHRfc2F2ZV9w YXRoX0xECi0rICBsdF9jdl9wcm9nX2dudV9sZGN4eD0kbHRfY3ZfcHJvZ19nbnVfbGQKLSsgIGx0 X2N2X3Byb2dfZ251X2xkPSRsdF9zYXZlX3dpdGhfZ251X2xkCi0rZmkgIyB0ZXN0ICIkX2x0X2Nh dWdodF9DWFhfZXJyb3IiICE9IHllcwotKwotK0FDX0xBTkdfUE9QCi0rXSkjIF9MVF9MQU5HX0NY WF9DT05GSUcKLSsKLSsKLSsjIF9MVF9TWVNfSElEREVOX0xJQkRFUFMoW1RBR05BTUVdKQotKyMg LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0rIyBGaWd1cmUgb3V0ICJoaWRkZW4i IGxpYnJhcnkgZGVwZW5kZW5jaWVzIGZyb20gdmVyYm9zZQotKyMgY29tcGlsZXIgb3V0cHV0IHdo ZW4gbGlua2luZyBhIHNoYXJlZCBsaWJyYXJ5LgotKyMgUGFyc2UgdGhlIGNvbXBpbGVyIG91dHB1 dCBhbmQgZXh0cmFjdCB0aGUgbmVjZXNzYXJ5Ci0rIyBvYmplY3RzLCBsaWJyYXJpZXMgYW5kIGxp YnJhcnkgZmxhZ3MuCi0rbTRfZGVmdW4oW19MVF9TWVNfSElEREVOX0xJQkRFUFNdLAotK1ttNF9y ZXF1aXJlKFtfTFRfRklMRVVUSUxTX0RFRkFVTFRTXSlkbmwKLSsjIERlcGVuZGVuY2llcyB0byBw bGFjZSBiZWZvcmUgYW5kIGFmdGVyIHRoZSBvYmplY3QgYmVpbmcgbGlua2VkOgotK19MVF9UQUdW QVIocHJlZGVwX29iamVjdHMsICQxKT0KLStfTFRfVEFHVkFSKHBvc3RkZXBfb2JqZWN0cywgJDEp PQotK19MVF9UQUdWQVIocHJlZGVwcywgJDEpPQotK19MVF9UQUdWQVIocG9zdGRlcHMsICQxKT0K LStfTFRfVEFHVkFSKGNvbXBpbGVyX2xpYl9zZWFyY2hfcGF0aCwgJDEpPQotKwotK2RubCB3ZSBj YW4ndCB1c2UgdGhlIGx0X3NpbXBsZV9jb21waWxlX3Rlc3RfY29kZSBoZXJlLAotK2RubCBiZWNh dXNlIGl0IGNvbnRhaW5zIGNvZGUgaW50ZW5kZWQgZm9yIGFuIGV4ZWN1dGFibGUsCi0rZG5sIG5v dCBhIGxpYnJhcnkuICBJdCdzIHBvc3NpYmxlIHdlIHNob3VsZCBsZXQgZWFjaAotK2RubCB0YWcg ZGVmaW5lIGEgbmV3IGx0Xz8/Pz9fbGlua190ZXN0X2NvZGUgdmFyaWFibGUsCi0rZG5sIGJ1dCBp dCdzIG9ubHkgdXNlZCBoZXJlLi4uCi0rbTRfaWYoWyQxXSwgW10sIFtjYXQgPiBjb25mdGVzdC4k YWNfZXh0IDw8X0xUX0VPRgotK2ludCBhOwotK3ZvaWQgZm9vICh2b2lkKSB7IGEgPSAwOyB9Ci0r X0xUX0VPRgotK10sIFskMV0sIFtDWFhdLCBbY2F0ID4gY29uZnRlc3QuJGFjX2V4dCA8PF9MVF9F T0YKLStjbGFzcyBGb28KLSt7Ci0rcHVibGljOgotKyAgRm9vICh2b2lkKSB7IGEgPSAwOyB9Ci0r cHJpdmF0ZToKLSsgIGludCBhOwotK307Ci0rX0xUX0VPRgotK10sIFskMV0sIFtGNzddLCBbY2F0 ID4gY29uZnRlc3QuJGFjX2V4dCA8PF9MVF9FT0YKLSsgICAgICBzdWJyb3V0aW5lIGZvbwotKyAg ICAgIGltcGxpY2l0IG5vbmUKLSsgICAgICBpbnRlZ2VyKjQgYQotKyAgICAgIGE9MAotKyAgICAg IHJldHVybgotKyAgICAgIGVuZAotK19MVF9FT0YKLStdLCBbJDFdLCBbRkNdLCBbY2F0ID4gY29u ZnRlc3QuJGFjX2V4dCA8PF9MVF9FT0YKLSsgICAgICBzdWJyb3V0aW5lIGZvbwotKyAgICAgIGlt cGxpY2l0IG5vbmUKLSsgICAgICBpbnRlZ2VyIGEKLSsgICAgICBhPTAKLSsgICAgICByZXR1cm4K LSsgICAgICBlbmQKLStfTFRfRU9GCi0rXSwgWyQxXSwgW0dDSl0sIFtjYXQgPiBjb25mdGVzdC4k YWNfZXh0IDw8X0xUX0VPRgotK3B1YmxpYyBjbGFzcyBmb28gewotKyAgcHJpdmF0ZSBpbnQgYTsK LSsgIHB1YmxpYyB2b2lkIGJhciAodm9pZCkgewotKyAgICBhID0gMDsKLSsgIH0KLSt9OwotK19M VF9FT0YKLStdKQotK2RubCBQYXJzZSB0aGUgY29tcGlsZXIgb3V0cHV0IGFuZCBleHRyYWN0IHRo ZSBuZWNlc3NhcnkKLStkbmwgb2JqZWN0cywgbGlicmFyaWVzIGFuZCBsaWJyYXJ5IGZsYWdzLgot K2lmIEFDX1RSWV9FVkFMKGFjX2NvbXBpbGUpOyB0aGVuCi0rICAjIFBhcnNlIHRoZSBjb21waWxl ciBvdXRwdXQgYW5kIGV4dHJhY3QgdGhlIG5lY2Vzc2FyeQotKyAgIyBvYmplY3RzLCBsaWJyYXJp ZXMgYW5kIGxpYnJhcnkgZmxhZ3MuCi0rCi0rICAjIFNlbnRpbmVsIHVzZWQgdG8ga2VlcCB0cmFj ayBvZiB3aGV0aGVyIG9yIG5vdCB3ZSBhcmUgYmVmb3JlCi0rICAjIHRoZSBjb25mdGVzdCBvYmpl Y3QgZmlsZS4KLSsgIHByZV90ZXN0X29iamVjdF9kZXBzX2RvbmU9bm8KLSsKLSsgIGZvciBwIGlu IGBldmFsICIkb3V0cHV0X3ZlcmJvc2VfbGlua19jbWQiYDsgZG8KLSsgICAgY2FzZSAkcCBpbgot KwotKyAgICAtTCogfCAtUiogfCAtbCopCi0rICAgICAgICMgU29tZSBjb21waWxlcnMgcGxhY2Ug c3BhY2UgYmV0d2VlbiAiLXtMLFJ9IiBhbmQgdGhlIHBhdGguCi0rICAgICAgICMgUmVtb3ZlIHRo ZSBzcGFjZS4KLSsgICAgICAgaWYgdGVzdCAkcCA9ICItTCIgfHwKLSsgICAgICAgICAgdGVzdCAk cCA9ICItUiI7IHRoZW4KLSsJIHByZXY9JHAKLSsJIGNvbnRpbnVlCi0rICAgICAgIGVsc2UKLSsJ IHByZXY9Ci0rICAgICAgIGZpCi0rCi0rICAgICAgIGlmIHRlc3QgIiRwcmVfdGVzdF9vYmplY3Rf ZGVwc19kb25lIiA9IG5vOyB0aGVuCi0rCSBjYXNlICRwIGluCi0rCSAtTCogfCAtUiopCi0rCSAg ICMgSW50ZXJuYWwgY29tcGlsZXIgbGlicmFyeSBwYXRocyBzaG91bGQgY29tZSBhZnRlciB0aG9z ZQotKwkgICAjIHByb3ZpZGVkIHRoZSB1c2VyLiAgVGhlIHBvc3RkZXBzIGFscmVhZHkgY29tZSBh ZnRlciB0aGUKLSsJICAgIyB1c2VyIHN1cHBsaWVkIGxpYnMgc28gdGhlcmUgaXMgbm8gbmVlZCB0 byBwcm9jZXNzIHRoZW0uCi0rCSAgIGlmIHRlc3QgLXogIiRfTFRfVEFHVkFSKGNvbXBpbGVyX2xp Yl9zZWFyY2hfcGF0aCwgJDEpIjsgdGhlbgotKwkgICAgIF9MVF9UQUdWQVIoY29tcGlsZXJfbGli X3NlYXJjaF9wYXRoLCAkMSk9IiR7cHJldn0ke3B9IgotKwkgICBlbHNlCi0rCSAgICAgX0xUX1RB R1ZBUihjb21waWxlcl9saWJfc2VhcmNoX3BhdGgsICQxKT0iJHtfTFRfVEFHVkFSKGNvbXBpbGVy X2xpYl9zZWFyY2hfcGF0aCwgJDEpfSAke3ByZXZ9JHtwfSIKLSsJICAgZmkKLSsJICAgOzsKLSsJ ICMgVGhlICItbCIgY2FzZSB3b3VsZCBuZXZlciBjb21lIGJlZm9yZSB0aGUgb2JqZWN0IGJlaW5n Ci0rCSAjIGxpbmtlZCwgc28gZG9uJ3QgYm90aGVyIGhhbmRsaW5nIHRoaXMgY2FzZS4KLSsJIGVz YWMKLSsgICAgICAgZWxzZQotKwkgaWYgdGVzdCAteiAiJF9MVF9UQUdWQVIocG9zdGRlcHMsICQx KSI7IHRoZW4KLSsJICAgX0xUX1RBR1ZBUihwb3N0ZGVwcywgJDEpPSIke3ByZXZ9JHtwfSIKLSsJ IGVsc2UKLSsJICAgX0xUX1RBR1ZBUihwb3N0ZGVwcywgJDEpPSIke19MVF9UQUdWQVIocG9zdGRl cHMsICQxKX0gJHtwcmV2fSR7cH0iCi0rCSBmaQotKyAgICAgICBmaQotKyAgICAgICA7OwotKwot KyAgICAqLiRvYmpleHQpCi0rICAgICAgICMgVGhpcyBhc3N1bWVzIHRoYXQgdGhlIHRlc3Qgb2Jq ZWN0IGZpbGUgb25seSBzaG93cyB1cAotKyAgICAgICAjIG9uY2UgaW4gdGhlIGNvbXBpbGVyIG91 dHB1dC4KLSsgICAgICAgaWYgdGVzdCAiJHAiID0gImNvbmZ0ZXN0LiRvYmpleHQiOyB0aGVuCi0r CSBwcmVfdGVzdF9vYmplY3RfZGVwc19kb25lPXllcwotKwkgY29udGludWUKLSsgICAgICAgZmkK LSsKLSsgICAgICAgaWYgdGVzdCAiJHByZV90ZXN0X29iamVjdF9kZXBzX2RvbmUiID0gbm87IHRo ZW4KLSsJIGlmIHRlc3QgLXogIiRfTFRfVEFHVkFSKHByZWRlcF9vYmplY3RzLCAkMSkiOyB0aGVu Ci0rCSAgIF9MVF9UQUdWQVIocHJlZGVwX29iamVjdHMsICQxKT0iJHAiCi0rCSBlbHNlCi0rCSAg IF9MVF9UQUdWQVIocHJlZGVwX29iamVjdHMsICQxKT0iJF9MVF9UQUdWQVIocHJlZGVwX29iamVj dHMsICQxKSAkcCIKLSsJIGZpCi0rICAgICAgIGVsc2UKLSsJIGlmIHRlc3QgLXogIiRfTFRfVEFH VkFSKHBvc3RkZXBfb2JqZWN0cywgJDEpIjsgdGhlbgotKwkgICBfTFRfVEFHVkFSKHBvc3RkZXBf b2JqZWN0cywgJDEpPSIkcCIKLSsJIGVsc2UKLSsJICAgX0xUX1RBR1ZBUihwb3N0ZGVwX29iamVj dHMsICQxKT0iJF9MVF9UQUdWQVIocG9zdGRlcF9vYmplY3RzLCAkMSkgJHAiCi0rCSBmaQotKyAg ICAgICBmaQotKyAgICAgICA7OwotKwotKyAgICAqKSA7OyAjIElnbm9yZSB0aGUgcmVzdC4KLSsK LSsgICAgZXNhYwotKyAgZG9uZQotKwotKyAgIyBDbGVhbiB1cC4KLSsgIHJtIC1mIGEub3V0IGEu ZXhlCi0rZWxzZQotKyAgZWNobyAibGlidG9vbC5tNDogZXJyb3I6IHByb2JsZW0gY29tcGlsaW5n ICQxIHRlc3QgcHJvZ3JhbSIKLStmaQotKwotKyRSTSAtZiBjb25mZXN0LiRvYmpleHQKLSsKLSsj IFBPUlRNRTogb3ZlcnJpZGUgYWJvdmUgdGVzdCBvbiBzeXN0ZW1zIHdoZXJlIGl0IGlzIGJyb2tl bgotK200X2lmKFskMV0sIFtDWFhdLAotK1tjYXNlICRob3N0X29zIGluCi0raW50ZXJpeFtbMy05 XV0qKQotKyAgIyBJbnRlcml4IDMuNSBpbnN0YWxscyBjb21wbGV0ZWx5IGhvc2VkIC5sYSBmaWxl cyBmb3IgQysrLCBzbyByYXRoZXIgdGhhbgotKyAgIyBoYWNrIGFsbCBhcm91bmQgaXQsIGxldCdz IGp1c3QgdHJ1c3QgImcrKyIgdG8gRFRSVC4KLSsgIF9MVF9UQUdWQVIocHJlZGVwX29iamVjdHMs JDEpPQotKyAgX0xUX1RBR1ZBUihwb3N0ZGVwX29iamVjdHMsJDEpPQotKyAgX0xUX1RBR1ZBUihw b3N0ZGVwcywkMSk9Ci0rICA7OwotKwotK2xpbnV4KikKLSsgIGNhc2UgYCRDQyAtViAyPiYxIHwg c2VkIDVxYCBpbgotKyAgKlN1blwgQyopCi0rICAgICMgU3VuIEMrKyA1LjkKLSsKLSsgICAgIyBU aGUgbW9yZSBzdGFuZGFyZHMtY29uZm9ybWluZyBzdGxwb3J0NCBsaWJyYXJ5IGlzCi0rICAgICMg aW5jb21wYXRpYmxlIHdpdGggdGhlIENzdGQgbGlicmFyeS4gQXZvaWQgc3BlY2lmeWluZwotKyAg ICAjIGl0IGlmIGl0J3MgaW4gQ1hYRkxBR1MuIElnbm9yZSBsaWJDcnVuIGFzCi0rICAgICMgLWxp YnJhcnk9c3RscG9ydDQgZGVwZW5kcyBvbiBpdC4KLSsgICAgY2FzZSAiICRDWFggJENYWEZMQUdT ICIgaW4KLSsgICAgKiIgLWxpYnJhcnk9c3RscG9ydDQgIiopCi0rICAgICAgc29sYXJpc191c2Vf c3RscG9ydDQ9eWVzCi0rICAgICAgOzsKLSsgICAgZXNhYwotKwotKyAgICBpZiB0ZXN0ICIkc29s YXJpc191c2Vfc3RscG9ydDQiICE9IHllczsgdGhlbgotKyAgICAgIF9MVF9UQUdWQVIocG9zdGRl cHMsJDEpPSctbGlicmFyeT1Dc3RkIC1saWJyYXJ5PUNydW4nCi0rICAgIGZpCi0rICAgIDs7Ci0r ICBlc2FjCi0rICA7OwotKwotK3NvbGFyaXMqKQotKyAgY2FzZSAkY2NfYmFzZW5hbWUgaW4KLSsg IENDKikKLSsgICAgIyBUaGUgbW9yZSBzdGFuZGFyZHMtY29uZm9ybWluZyBzdGxwb3J0NCBsaWJy YXJ5IGlzCi0rICAgICMgaW5jb21wYXRpYmxlIHdpdGggdGhlIENzdGQgbGlicmFyeS4gQXZvaWQg c3BlY2lmeWluZwotKyAgICAjIGl0IGlmIGl0J3MgaW4gQ1hYRkxBR1MuIElnbm9yZSBsaWJDcnVu IGFzCi0rICAgICMgLWxpYnJhcnk9c3RscG9ydDQgZGVwZW5kcyBvbiBpdC4KLSsgICAgY2FzZSAi ICRDWFggJENYWEZMQUdTICIgaW4KLSsgICAgKiIgLWxpYnJhcnk9c3RscG9ydDQgIiopCi0rICAg ICAgc29sYXJpc191c2Vfc3RscG9ydDQ9eWVzCi0rICAgICAgOzsKLSsgICAgZXNhYwotKwotKyAg ICAjIEFkZGluZyB0aGlzIHJlcXVpcmVzIGEga25vd24tZ29vZCBzZXR1cCBvZiBzaGFyZWQgbGli cmFyaWVzIGZvcgotKyAgICAjIFN1biBjb21waWxlciB2ZXJzaW9ucyBiZWZvcmUgNS42LCBlbHNl IFBJQyBvYmplY3RzIGZyb20gYW4gb2xkCi0rICAgICMgYXJjaGl2ZSB3aWxsIGJlIGxpbmtlZCBp bnRvIHRoZSBvdXRwdXQsIGxlYWRpbmcgdG8gc3VidGxlIGJ1Z3MuCi0rICAgIGlmIHRlc3QgIiRz b2xhcmlzX3VzZV9zdGxwb3J0NCIgIT0geWVzOyB0aGVuCi0rICAgICAgX0xUX1RBR1ZBUihwb3N0 ZGVwcywkMSk9Jy1saWJyYXJ5PUNzdGQgLWxpYnJhcnk9Q3J1bicKLSsgICAgZmkKLSsgICAgOzsK LSsgIGVzYWMKLSsgIDs7Ci0rZXNhYwotK10pCi0rCi0rY2FzZSAiICRfTFRfVEFHVkFSKHBvc3Rk ZXBzLCAkMSkgIiBpbgotKyoiIC1sYyAiKikgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHNfbmVlZF9s YywgJDEpPW5vIDs7Ci0rZXNhYwotKyBfTFRfVEFHVkFSKGNvbXBpbGVyX2xpYl9zZWFyY2hfZGly cywgJDEpPQotK2lmIHRlc3QgLW4gIiR7X0xUX1RBR1ZBUihjb21waWxlcl9saWJfc2VhcmNoX3Bh dGgsICQxKX0iOyB0aGVuCi0rIF9MVF9UQUdWQVIoY29tcGlsZXJfbGliX3NlYXJjaF9kaXJzLCAk MSk9YGVjaG8gIiAke19MVF9UQUdWQVIoY29tcGlsZXJfbGliX3NlYXJjaF9wYXRoLCAkMSl9IiB8 ICR7U0VEfSAtZSAncyEgLUwhICFnJyAtZSAncyFeICEhJ2AKLStmaQotK19MVF9UQUdERUNMKFtd LCBbY29tcGlsZXJfbGliX3NlYXJjaF9kaXJzXSwgWzFdLAotKyAgICBbVGhlIGRpcmVjdG9yaWVz IHNlYXJjaGVkIGJ5IHRoaXMgY29tcGlsZXIgd2hlbiBjcmVhdGluZyBhIHNoYXJlZCBsaWJyYXJ5 XSkKLStfTFRfVEFHREVDTChbXSwgW3ByZWRlcF9vYmplY3RzXSwgWzFdLAotKyAgICBbRGVwZW5k ZW5jaWVzIHRvIHBsYWNlIGJlZm9yZSBhbmQgYWZ0ZXIgdGhlIG9iamVjdHMgYmVpbmcgbGlua2Vk IHRvCi0rICAgIGNyZWF0ZSBhIHNoYXJlZCBsaWJyYXJ5XSkKLStfTFRfVEFHREVDTChbXSwgW3Bv c3RkZXBfb2JqZWN0c10sIFsxXSkKLStfTFRfVEFHREVDTChbXSwgW3ByZWRlcHNdLCBbMV0pCi0r X0xUX1RBR0RFQ0woW10sIFtwb3N0ZGVwc10sIFsxXSkKLStfTFRfVEFHREVDTChbXSwgW2NvbXBp bGVyX2xpYl9zZWFyY2hfcGF0aF0sIFsxXSwKLSsgICAgW1RoZSBsaWJyYXJ5IHNlYXJjaCBwYXRo IHVzZWQgaW50ZXJuYWxseSBieSB0aGUgY29tcGlsZXIgd2hlbiBsaW5raW5nCi0rICAgIGEgc2hh cmVkIGxpYnJhcnldKQotK10pIyBfTFRfU1lTX0hJRERFTl9MSUJERVBTCi0rCi0rCi0rIyBfTFRf UFJPR19GNzcKLSsjIC0tLS0tLS0tLS0tLQotKyMgU2luY2UgQUNfUFJPR19GNzcgaXMgYnJva2Vu LCBpbiB0aGF0IGl0IHJldHVybnMgdGhlIGVtcHR5IHN0cmluZwotKyMgaWYgdGhlcmUgaXMgbm8g Zm9ydHJhbiBjb21waWxlciwgd2UgaGF2ZSBvdXIgb3duIHZlcnNpb24gaGVyZS4KLSttNF9kZWZ1 bihbX0xUX1BST0dfRjc3XSwKLStbCi0rcHVzaGRlZihbQUNfTVNHX0VSUk9SXSwgW19sdF9kaXNh YmxlX0Y3Nz15ZXNdKQotK0FDX1BST0dfRjc3Ci0raWYgdGVzdCAteiAiJEY3NyIgfHwgdGVzdCAi WCRGNzciID0gIlhubyI7IHRoZW4KLSsgIF9sdF9kaXNhYmxlX0Y3Nz15ZXMKLStmaQotK3BvcGRl ZihbQUNfTVNHX0VSUk9SXSkKLStdKSMgX0xUX1BST0dfRjc3Ci0rCi0rZG5sIGFjbG9jYWwtMS40 IGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5OgotK2RubCBBQ19ERUZVTihbX0xUX1BST0dfRjc3XSwg W10pCi0rCi0rCi0rIyBfTFRfTEFOR19GNzdfQ09ORklHKFtUQUddKQotKyMgLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KLSsjIEVuc3VyZSB0aGF0IHRoZSBjb25maWd1cmF0aW9uIHZhcmlhYmxl cyBmb3IgYSBGb3J0cmFuIDc3IGNvbXBpbGVyIGFyZQotKyMgc3VpdGFibHkgZGVmaW5lZC4gIFRo ZXNlIHZhcmlhYmxlcyBhcmUgc3Vic2VxdWVudGx5IHVzZWQgYnkgX0xUX0NPTkZJRwotKyMgdG8g d3JpdGUgdGhlIGNvbXBpbGVyIGNvbmZpZ3VyYXRpb24gdG8gYGxpYnRvb2wnLgotK200X2RlZnVu KFtfTFRfTEFOR19GNzdfQ09ORklHXSwKLStbQUNfUkVRVUlSRShbX0xUX1BST0dfRjc3XSlkbmwK LStBQ19MQU5HX1BVU0goRm9ydHJhbiA3NykKLSsKLStfTFRfVEFHVkFSKGFyY2hpdmVfY21kc19u ZWVkX2xjLCAkMSk9bm8KLStfTFRfVEFHVkFSKGFsbG93X3VuZGVmaW5lZF9mbGFnLCAkMSk9Ci0r X0xUX1RBR1ZBUihhbHdheXNfZXhwb3J0X3N5bWJvbHMsICQxKT1ubwotK19MVF9UQUdWQVIoYXJj aGl2ZV9leHBzeW1fY21kcywgJDEpPQotK19MVF9UQUdWQVIoZXhwb3J0X2R5bmFtaWNfZmxhZ19z cGVjLCAkMSk9Ci0rX0xUX1RBR1ZBUihoYXJkY29kZV9kaXJlY3QsICQxKT1ubwotK19MVF9UQUdW QVIoaGFyZGNvZGVfZGlyZWN0X2Fic29sdXRlLCAkMSk9bm8KLStfTFRfVEFHVkFSKGhhcmRjb2Rl X2xpYmRpcl9mbGFnX3NwZWMsICQxKT0KLStfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFn X3NwZWNfbGQsICQxKT0KLStfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3IsICQx KT0KLStfTFRfVEFHVkFSKGhhcmRjb2RlX21pbnVzX0wsICQxKT1ubwotK19MVF9UQUdWQVIoaGFy ZGNvZGVfYXV0b21hdGljLCAkMSk9bm8KLStfTFRfVEFHVkFSKGluaGVyaXRfcnBhdGgsICQxKT1u bwotK19MVF9UQUdWQVIobW9kdWxlX2NtZHMsICQxKT0KLStfTFRfVEFHVkFSKG1vZHVsZV9leHBz eW1fY21kcywgJDEpPQotK19MVF9UQUdWQVIobGlua19hbGxfZGVwbGlicywgJDEpPXVua25vd24K LStfTFRfVEFHVkFSKG9sZF9hcmNoaXZlX2NtZHMsICQxKT0kb2xkX2FyY2hpdmVfY21kcwotK19M VF9UQUdWQVIobm9fdW5kZWZpbmVkX2ZsYWcsICQxKT0KLStfTFRfVEFHVkFSKHdob2xlX2FyY2hp dmVfZmxhZ19zcGVjLCAkMSk9Ci0rX0xUX1RBR1ZBUihlbmFibGVfc2hhcmVkX3dpdGhfc3RhdGlj X3J1bnRpbWVzLCAkMSk9bm8KLSsKLSsjIFNvdXJjZSBmaWxlIGV4dGVuc2lvbiBmb3IgZjc3IHRl c3Qgc291cmNlcy4KLSthY19leHQ9ZgotKwotKyMgT2JqZWN0IGZpbGUgZXh0ZW5zaW9uIGZvciBj b21waWxlZCBmNzcgdGVzdCBzb3VyY2VzLgotK29iamV4dD1vCi0rX0xUX1RBR1ZBUihvYmpleHQs ICQxKT0kb2JqZXh0Ci0rCi0rIyBObyBzZW5zZSBpbiBydW5uaW5nIGFsbCB0aGVzZSB0ZXN0cyBp ZiB3ZSBhbHJlYWR5IGRldGVybWluZWQgdGhhdAotKyMgdGhlIEY3NyBjb21waWxlciBpc24ndCB3 b3JraW5nLiAgU29tZSB2YXJpYWJsZXMgKGxpa2UgZW5hYmxlX3NoYXJlZCkKLSsjIGFyZSBjdXJy ZW50bHkgYXNzdW1lZCB0byBhcHBseSB0byBhbGwgY29tcGlsZXJzIG9uIHRoaXMgcGxhdGZvcm0s Ci0rIyBhbmQgd2lsbCBiZSBjb3JydXB0ZWQgYnkgc2V0dGluZyB0aGVtIGJhc2VkIG9uIGEgbm9u LXdvcmtpbmcgY29tcGlsZXIuCi0raWYgdGVzdCAiJF9sdF9kaXNhYmxlX0Y3NyIgIT0geWVzOyB0 aGVuCi0rICAjIENvZGUgdG8gYmUgdXNlZCBpbiBzaW1wbGUgY29tcGlsZSB0ZXN0cwotKyAgbHRf c2ltcGxlX2NvbXBpbGVfdGVzdF9jb2RlPSJcCi0rICAgICAgc3Vicm91dGluZSB0Ci0rICAgICAg cmV0dXJuCi0rICAgICAgZW5kCi0rIgotKwotKyAgIyBDb2RlIHRvIGJlIHVzZWQgaW4gc2ltcGxl IGxpbmsgdGVzdHMKLSsgIGx0X3NpbXBsZV9saW5rX3Rlc3RfY29kZT0iXAotKyAgICAgIHByb2dy YW0gdAotKyAgICAgIGVuZAotKyIKLSsKLSsgICMgbHRtYWluIG9ubHkgdXNlcyAkQ0MgZm9yIHRh Z2dlZCBjb25maWd1cmF0aW9ucyBzbyBtYWtlIHN1cmUgJENDIGlzIHNldC4KLSsgIF9MVF9UQUdf Q09NUElMRVIKLSsKLSsgICMgc2F2ZSB3YXJuaW5ncy9ib2lsZXJwbGF0ZSBvZiBzaW1wbGUgdGVz dCBjb2RlCi0rICBfTFRfQ09NUElMRVJfQk9JTEVSUExBVEUKLSsgIF9MVF9MSU5LRVJfQk9JTEVS UExBVEUKLSsKLSsgICMgQWxsb3cgQ0MgdG8gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmd1bWVu dHMuCi0rICBsdF9zYXZlX0NDPSIkQ0MiCi0rICBsdF9zYXZlX0dDQz0kR0NDCi0rICBDQz0ke0Y3 Ny0iZjc3In0KLSsgIGNvbXBpbGVyPSRDQwotKyAgX0xUX1RBR1ZBUihjb21waWxlciwgJDEpPSRD QwotKyAgX0xUX0NDX0JBU0VOQU1FKFskY29tcGlsZXJdKQotKyAgR0NDPSRHNzcKLSsgIGlmIHRl c3QgLW4gIiRjb21waWxlciI7IHRoZW4KLSsgICAgQUNfTVNHX0NIRUNLSU5HKFtpZiBsaWJ0b29s IHN1cHBvcnRzIHNoYXJlZCBsaWJyYXJpZXNdKQotKyAgICBBQ19NU0dfUkVTVUxUKFskY2FuX2J1 aWxkX3NoYXJlZF0pCi0rCi0rICAgIEFDX01TR19DSEVDS0lORyhbd2hldGhlciB0byBidWlsZCBz aGFyZWQgbGlicmFyaWVzXSkKLSsgICAgdGVzdCAiJGNhbl9idWlsZF9zaGFyZWQiID0gIm5vIiAm JiBlbmFibGVfc2hhcmVkPW5vCi0rCi0rICAgICMgT24gQUlYLCBzaGFyZWQgbGlicmFyaWVzIGFu ZCBzdGF0aWMgbGlicmFyaWVzIHVzZSB0aGUgc2FtZSBuYW1lc3BhY2UsIGFuZAotKyAgICAjIGFy ZSBhbGwgYnVpbHQgZnJvbSBQSUMuCi0rICAgIGNhc2UgJGhvc3Rfb3MgaW4KLSsgICAgICBhaXgz KikKLSsgICAgICAgIHRlc3QgIiRlbmFibGVfc2hhcmVkIiA9IHllcyAmJiBlbmFibGVfc3RhdGlj PW5vCi0rICAgICAgICBpZiB0ZXN0IC1uICIkUkFOTElCIjsgdGhlbgotKyAgICAgICAgICBhcmNo aXZlX2NtZHM9IiRhcmNoaXZlX2NtZHN+XCRSQU5MSUIgXCRsaWIiCi0rICAgICAgICAgIHBvc3Rp bnN0YWxsX2NtZHM9JyRSQU5MSUIgJGxpYicKLSsgICAgICAgIGZpCi0rICAgICAgICA7OwotKyAg ICAgIGFpeFtbNC05XV0qKQotKwlpZiB0ZXN0ICIkaG9zdF9jcHUiICE9IGlhNjQgJiYgdGVzdCAi JGFpeF91c2VfcnVudGltZWxpbmtpbmciID0gbm8gOyB0aGVuCi0rCSAgdGVzdCAiJGVuYWJsZV9z aGFyZWQiID0geWVzICYmIGVuYWJsZV9zdGF0aWM9bm8KLSsJZmkKLSsgICAgICAgIDs7Ci0rICAg IGVzYWMKLSsgICAgQUNfTVNHX1JFU1VMVChbJGVuYWJsZV9zaGFyZWRdKQotKwotKyAgICBBQ19N U0dfQ0hFQ0tJTkcoW3doZXRoZXIgdG8gYnVpbGQgc3RhdGljIGxpYnJhcmllc10pCi0rICAgICMg TWFrZSBzdXJlIGVpdGhlciBlbmFibGVfc2hhcmVkIG9yIGVuYWJsZV9zdGF0aWMgaXMgeWVzLgot KyAgICB0ZXN0ICIkZW5hYmxlX3NoYXJlZCIgPSB5ZXMgfHwgZW5hYmxlX3N0YXRpYz15ZXMKLSsg ICAgQUNfTVNHX1JFU1VMVChbJGVuYWJsZV9zdGF0aWNdKQotKwotKyAgICBfTFRfVEFHVkFSKEdD QywgJDEpPSIkRzc3IgotKyAgICBfTFRfVEFHVkFSKExELCAkMSk9IiRMRCIKLSsKLSsgICAgIyMg Q0FWRUFUIEVNUFRPUjoKLSsgICAgIyMgVGhlcmUgaXMgbm8gZW5jYXBzdWxhdGlvbiB3aXRoaW4g dGhlIGZvbGxvd2luZyBtYWNyb3MsIGRvIG5vdCBjaGFuZ2UKLSsgICAgIyMgdGhlIHJ1bm5pbmcg b3JkZXIgb3Igb3RoZXJ3aXNlIG1vdmUgdGhlbSBhcm91bmQgdW5sZXNzIHlvdSBrbm93IGV4YWN0 bHkKLSsgICAgIyMgd2hhdCB5b3UgYXJlIGRvaW5nLi4uCi0rICAgIF9MVF9DT01QSUxFUl9QSUMo JDEpCi0rICAgIF9MVF9DT01QSUxFUl9DX08oJDEpCi0rICAgIF9MVF9DT01QSUxFUl9GSUxFX0xP Q0tTKCQxKQotKyAgICBfTFRfTElOS0VSX1NITElCUygkMSkKLSsgICAgX0xUX1NZU19EWU5BTUlD X0xJTktFUigkMSkKLSsgICAgX0xUX0xJTktFUl9IQVJEQ09ERV9MSUJQQVRIKCQxKQotKwotKyAg ICBfTFRfQ09ORklHKCQxKQotKyAgZmkgIyB0ZXN0IC1uICIkY29tcGlsZXIiCi0rCi0rICBHQ0M9 JGx0X3NhdmVfR0NDCi0rICBDQz0iJGx0X3NhdmVfQ0MiCi0rZmkgIyB0ZXN0ICIkX2x0X2Rpc2Fi bGVfRjc3IiAhPSB5ZXMKLSsKLStBQ19MQU5HX1BPUAotK10pIyBfTFRfTEFOR19GNzdfQ09ORklH Ci0rCi0rCi0rIyBfTFRfUFJPR19GQwotKyMgLS0tLS0tLS0tLS0KLSsjIFNpbmNlIEFDX1BST0df RkMgaXMgYnJva2VuLCBpbiB0aGF0IGl0IHJldHVybnMgdGhlIGVtcHR5IHN0cmluZwotKyMgaWYg dGhlcmUgaXMgbm8gZm9ydHJhbiBjb21waWxlciwgd2UgaGF2ZSBvdXIgb3duIHZlcnNpb24gaGVy ZS4KLSttNF9kZWZ1bihbX0xUX1BST0dfRkNdLAotK1sKLStwdXNoZGVmKFtBQ19NU0dfRVJST1Jd LCBbX2x0X2Rpc2FibGVfRkM9eWVzXSkKLStBQ19QUk9HX0ZDCi0raWYgdGVzdCAteiAiJEZDIiB8 fCB0ZXN0ICJYJEZDIiA9ICJYbm8iOyB0aGVuCi0rICBfbHRfZGlzYWJsZV9GQz15ZXMKLStmaQot K3BvcGRlZihbQUNfTVNHX0VSUk9SXSkKLStdKSMgX0xUX1BST0dfRkMKLSsKLStkbmwgYWNsb2Nh bC0xLjQgYmFja3dhcmRzIGNvbXBhdGliaWxpdHk6Ci0rZG5sIEFDX0RFRlVOKFtfTFRfUFJPR19G Q10sIFtdKQotKwotKwotKyMgX0xUX0xBTkdfRkNfQ09ORklHKFtUQUddKQotKyMgLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQotKyMgRW5zdXJlIHRoYXQgdGhlIGNvbmZpZ3VyYXRpb24gdmFyaWFi bGVzIGZvciBhIEZvcnRyYW4gY29tcGlsZXIgYXJlCi0rIyBzdWl0YWJseSBkZWZpbmVkLiAgVGhl c2UgdmFyaWFibGVzIGFyZSBzdWJzZXF1ZW50bHkgdXNlZCBieSBfTFRfQ09ORklHCi0rIyB0byB3 cml0ZSB0aGUgY29tcGlsZXIgY29uZmlndXJhdGlvbiB0byBgbGlidG9vbCcuCi0rbTRfZGVmdW4o W19MVF9MQU5HX0ZDX0NPTkZJR10sCi0rW0FDX1JFUVVJUkUoW19MVF9QUk9HX0ZDXSlkbmwKLStB Q19MQU5HX1BVU0goRm9ydHJhbikKLSsKLStfTFRfVEFHVkFSKGFyY2hpdmVfY21kc19uZWVkX2xj LCAkMSk9bm8KLStfTFRfVEFHVkFSKGFsbG93X3VuZGVmaW5lZF9mbGFnLCAkMSk9Ci0rX0xUX1RB R1ZBUihhbHdheXNfZXhwb3J0X3N5bWJvbHMsICQxKT1ubwotK19MVF9UQUdWQVIoYXJjaGl2ZV9l eHBzeW1fY21kcywgJDEpPQotK19MVF9UQUdWQVIoZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjLCAk MSk9Ci0rX0xUX1RBR1ZBUihoYXJkY29kZV9kaXJlY3QsICQxKT1ubwotK19MVF9UQUdWQVIoaGFy ZGNvZGVfZGlyZWN0X2Fic29sdXRlLCAkMSk9bm8KLStfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRp cl9mbGFnX3NwZWMsICQxKT0KLStfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNf bGQsICQxKT0KLStfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3IsICQxKT0KLStf TFRfVEFHVkFSKGhhcmRjb2RlX21pbnVzX0wsICQxKT1ubwotK19MVF9UQUdWQVIoaGFyZGNvZGVf YXV0b21hdGljLCAkMSk9bm8KLStfTFRfVEFHVkFSKGluaGVyaXRfcnBhdGgsICQxKT1ubwotK19M VF9UQUdWQVIobW9kdWxlX2NtZHMsICQxKT0KLStfTFRfVEFHVkFSKG1vZHVsZV9leHBzeW1fY21k cywgJDEpPQotK19MVF9UQUdWQVIobGlua19hbGxfZGVwbGlicywgJDEpPXVua25vd24KLStfTFRf VEFHVkFSKG9sZF9hcmNoaXZlX2NtZHMsICQxKT0kb2xkX2FyY2hpdmVfY21kcwotK19MVF9UQUdW QVIobm9fdW5kZWZpbmVkX2ZsYWcsICQxKT0KLStfTFRfVEFHVkFSKHdob2xlX2FyY2hpdmVfZmxh Z19zcGVjLCAkMSk9Ci0rX0xUX1RBR1ZBUihlbmFibGVfc2hhcmVkX3dpdGhfc3RhdGljX3J1bnRp bWVzLCAkMSk9bm8KLSsKLSsjIFNvdXJjZSBmaWxlIGV4dGVuc2lvbiBmb3IgZmMgdGVzdCBzb3Vy Y2VzLgotK2FjX2V4dD0ke2FjX2ZjX3NyY2V4dC1mfQotKwotKyMgT2JqZWN0IGZpbGUgZXh0ZW5z aW9uIGZvciBjb21waWxlZCBmYyB0ZXN0IHNvdXJjZXMuCi0rb2JqZXh0PW8KLStfTFRfVEFHVkFS KG9iamV4dCwgJDEpPSRvYmpleHQKLSsKLSsjIE5vIHNlbnNlIGluIHJ1bm5pbmcgYWxsIHRoZXNl IHRlc3RzIGlmIHdlIGFscmVhZHkgZGV0ZXJtaW5lZCB0aGF0Ci0rIyB0aGUgRkMgY29tcGlsZXIg aXNuJ3Qgd29ya2luZy4gIFNvbWUgdmFyaWFibGVzIChsaWtlIGVuYWJsZV9zaGFyZWQpCi0rIyBh cmUgY3VycmVudGx5IGFzc3VtZWQgdG8gYXBwbHkgdG8gYWxsIGNvbXBpbGVycyBvbiB0aGlzIHBs YXRmb3JtLAotKyMgYW5kIHdpbGwgYmUgY29ycnVwdGVkIGJ5IHNldHRpbmcgdGhlbSBiYXNlZCBv biBhIG5vbi13b3JraW5nIGNvbXBpbGVyLgotK2lmIHRlc3QgIiRfbHRfZGlzYWJsZV9GQyIgIT0g eWVzOyB0aGVuCi0rICAjIENvZGUgdG8gYmUgdXNlZCBpbiBzaW1wbGUgY29tcGlsZSB0ZXN0cwot KyAgbHRfc2ltcGxlX2NvbXBpbGVfdGVzdF9jb2RlPSJcCi0rICAgICAgc3Vicm91dGluZSB0Ci0r ICAgICAgcmV0dXJuCi0rICAgICAgZW5kCi0rIgotKwotKyAgIyBDb2RlIHRvIGJlIHVzZWQgaW4g c2ltcGxlIGxpbmsgdGVzdHMKLSsgIGx0X3NpbXBsZV9saW5rX3Rlc3RfY29kZT0iXAotKyAgICAg IHByb2dyYW0gdAotKyAgICAgIGVuZAotKyIKLSsKLSsgICMgbHRtYWluIG9ubHkgdXNlcyAkQ0Mg Zm9yIHRhZ2dlZCBjb25maWd1cmF0aW9ucyBzbyBtYWtlIHN1cmUgJENDIGlzIHNldC4KLSsgIF9M VF9UQUdfQ09NUElMRVIKLSsKLSsgICMgc2F2ZSB3YXJuaW5ncy9ib2lsZXJwbGF0ZSBvZiBzaW1w bGUgdGVzdCBjb2RlCi0rICBfTFRfQ09NUElMRVJfQk9JTEVSUExBVEUKLSsgIF9MVF9MSU5LRVJf Qk9JTEVSUExBVEUKLSsKLSsgICMgQWxsb3cgQ0MgdG8gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBh cmd1bWVudHMuCi0rICBsdF9zYXZlX0NDPSIkQ0MiCi0rICBsdF9zYXZlX0dDQz0kR0NDCi0rICBD Qz0ke0ZDLSJmOTUifQotKyAgY29tcGlsZXI9JENDCi0rICBHQ0M9JGFjX2N2X2ZjX2NvbXBpbGVy X2dudQotKwotKyAgX0xUX1RBR1ZBUihjb21waWxlciwgJDEpPSRDQwotKyAgX0xUX0NDX0JBU0VO QU1FKFskY29tcGlsZXJdKQotKwotKyAgaWYgdGVzdCAtbiAiJGNvbXBpbGVyIjsgdGhlbgotKyAg ICBBQ19NU0dfQ0hFQ0tJTkcoW2lmIGxpYnRvb2wgc3VwcG9ydHMgc2hhcmVkIGxpYnJhcmllc10p Ci0rICAgIEFDX01TR19SRVNVTFQoWyRjYW5fYnVpbGRfc2hhcmVkXSkKLSsKLSsgICAgQUNfTVNH X0NIRUNLSU5HKFt3aGV0aGVyIHRvIGJ1aWxkIHNoYXJlZCBsaWJyYXJpZXNdKQotKyAgICB0ZXN0 ICIkY2FuX2J1aWxkX3NoYXJlZCIgPSAibm8iICYmIGVuYWJsZV9zaGFyZWQ9bm8KLSsKLSsgICAg IyBPbiBBSVgsIHNoYXJlZCBsaWJyYXJpZXMgYW5kIHN0YXRpYyBsaWJyYXJpZXMgdXNlIHRoZSBz YW1lIG5hbWVzcGFjZSwgYW5kCi0rICAgICMgYXJlIGFsbCBidWlsdCBmcm9tIFBJQy4KLSsgICAg Y2FzZSAkaG9zdF9vcyBpbgotKyAgICAgIGFpeDMqKQotKyAgICAgICAgdGVzdCAiJGVuYWJsZV9z aGFyZWQiID0geWVzICYmIGVuYWJsZV9zdGF0aWM9bm8KLSsgICAgICAgIGlmIHRlc3QgLW4gIiRS QU5MSUIiOyB0aGVuCi0rICAgICAgICAgIGFyY2hpdmVfY21kcz0iJGFyY2hpdmVfY21kc35cJFJB TkxJQiBcJGxpYiIKLSsgICAgICAgICAgcG9zdGluc3RhbGxfY21kcz0nJFJBTkxJQiAkbGliJwot KyAgICAgICAgZmkKLSsgICAgICAgIDs7Ci0rICAgICAgYWl4W1s0LTldXSopCi0rCWlmIHRlc3Qg IiRob3N0X2NwdSIgIT0gaWE2NCAmJiB0ZXN0ICIkYWl4X3VzZV9ydW50aW1lbGlua2luZyIgPSBu byA7IHRoZW4KLSsJICB0ZXN0ICIkZW5hYmxlX3NoYXJlZCIgPSB5ZXMgJiYgZW5hYmxlX3N0YXRp Yz1ubwotKwlmaQotKyAgICAgICAgOzsKLSsgICAgZXNhYwotKyAgICBBQ19NU0dfUkVTVUxUKFsk ZW5hYmxlX3NoYXJlZF0pCi0rCi0rICAgIEFDX01TR19DSEVDS0lORyhbd2hldGhlciB0byBidWls ZCBzdGF0aWMgbGlicmFyaWVzXSkKLSsgICAgIyBNYWtlIHN1cmUgZWl0aGVyIGVuYWJsZV9zaGFy ZWQgb3IgZW5hYmxlX3N0YXRpYyBpcyB5ZXMuCi0rICAgIHRlc3QgIiRlbmFibGVfc2hhcmVkIiA9 IHllcyB8fCBlbmFibGVfc3RhdGljPXllcwotKyAgICBBQ19NU0dfUkVTVUxUKFskZW5hYmxlX3N0 YXRpY10pCi0rCi0rICAgIF9MVF9UQUdWQVIoR0NDLCAkMSk9IiRhY19jdl9mY19jb21waWxlcl9n bnUiCi0rICAgIF9MVF9UQUdWQVIoTEQsICQxKT0iJExEIgotKwotKyAgICAjIyBDQVZFQVQgRU1Q VE9SOgotKyAgICAjIyBUaGVyZSBpcyBubyBlbmNhcHN1bGF0aW9uIHdpdGhpbiB0aGUgZm9sbG93 aW5nIG1hY3JvcywgZG8gbm90IGNoYW5nZQotKyAgICAjIyB0aGUgcnVubmluZyBvcmRlciBvciBv dGhlcndpc2UgbW92ZSB0aGVtIGFyb3VuZCB1bmxlc3MgeW91IGtub3cgZXhhY3RseQotKyAgICAj IyB3aGF0IHlvdSBhcmUgZG9pbmcuLi4KLSsgICAgX0xUX1NZU19ISURERU5fTElCREVQUygkMSkK LSsgICAgX0xUX0NPTVBJTEVSX1BJQygkMSkKLSsgICAgX0xUX0NPTVBJTEVSX0NfTygkMSkKLSsg ICAgX0xUX0NPTVBJTEVSX0ZJTEVfTE9DS1MoJDEpCi0rICAgIF9MVF9MSU5LRVJfU0hMSUJTKCQx KQotKyAgICBfTFRfU1lTX0RZTkFNSUNfTElOS0VSKCQxKQotKyAgICBfTFRfTElOS0VSX0hBUkRD T0RFX0xJQlBBVEgoJDEpCi0rCi0rICAgIF9MVF9DT05GSUcoJDEpCi0rICBmaSAjIHRlc3QgLW4g IiRjb21waWxlciIKLSsKLSsgIEdDQz0kbHRfc2F2ZV9HQ0MKLSsgIENDPSIkbHRfc2F2ZV9DQyIK LStmaSAjIHRlc3QgIiRfbHRfZGlzYWJsZV9GQyIgIT0geWVzCi0rCi0rQUNfTEFOR19QT1AKLStd KSMgX0xUX0xBTkdfRkNfQ09ORklHCi0rCi0rCi0rIyBfTFRfTEFOR19HQ0pfQ09ORklHKFtUQUdd KQotKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSsjIEVuc3VyZSB0aGF0IHRoZSBjb25m aWd1cmF0aW9uIHZhcmlhYmxlcyBmb3IgdGhlIEdOVSBKYXZhIENvbXBpbGVyIGNvbXBpbGVyCi0r IyBhcmUgc3VpdGFibHkgZGVmaW5lZC4gIFRoZXNlIHZhcmlhYmxlcyBhcmUgc3Vic2VxdWVudGx5 IHVzZWQgYnkgX0xUX0NPTkZJRwotKyMgdG8gd3JpdGUgdGhlIGNvbXBpbGVyIGNvbmZpZ3VyYXRp b24gdG8gYGxpYnRvb2wnLgotK200X2RlZnVuKFtfTFRfTEFOR19HQ0pfQ09ORklHXSwKLStbQUNf UkVRVUlSRShbTFRfUFJPR19HQ0pdKWRubAotK0FDX0xBTkdfU0FWRQotKwotKyMgU291cmNlIGZp bGUgZXh0ZW5zaW9uIGZvciBKYXZhIHRlc3Qgc291cmNlcy4KLSthY19leHQ9amF2YQotKwotKyMg T2JqZWN0IGZpbGUgZXh0ZW5zaW9uIGZvciBjb21waWxlZCBKYXZhIHRlc3Qgc291cmNlcy4KLStv YmpleHQ9bwotK19MVF9UQUdWQVIob2JqZXh0LCAkMSk9JG9iamV4dAotKwotKyMgQ29kZSB0byBi ZSB1c2VkIGluIHNpbXBsZSBjb21waWxlIHRlc3RzCi0rbHRfc2ltcGxlX2NvbXBpbGVfdGVzdF9j b2RlPSJjbGFzcyBmb28ge30iCi0rCi0rIyBDb2RlIHRvIGJlIHVzZWQgaW4gc2ltcGxlIGxpbmsg dGVzdHMKLStsdF9zaW1wbGVfbGlua190ZXN0X2NvZGU9J3B1YmxpYyBjbGFzcyBjb25mdGVzdCB7 IHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tbXV0gYXJndikge307IH0nCi0rCi0rIyBs dG1haW4gb25seSB1c2VzICRDQyBmb3IgdGFnZ2VkIGNvbmZpZ3VyYXRpb25zIHNvIG1ha2Ugc3Vy ZSAkQ0MgaXMgc2V0LgotK19MVF9UQUdfQ09NUElMRVIKLSsKLSsjIHNhdmUgd2FybmluZ3MvYm9p bGVycGxhdGUgb2Ygc2ltcGxlIHRlc3QgY29kZQotK19MVF9DT01QSUxFUl9CT0lMRVJQTEFURQot K19MVF9MSU5LRVJfQk9JTEVSUExBVEUKLSsKLSsjIEFsbG93IENDIHRvIGJlIGEgcHJvZ3JhbSBu YW1lIHdpdGggYXJndW1lbnRzLgotK2x0X3NhdmVfQ0M9IiRDQyIKLStsdF9zYXZlX0dDQz0kR0ND Ci0rR0NDPXllcwotK0NDPSR7R0NKLSJnY2oifQotK2NvbXBpbGVyPSRDQwotK19MVF9UQUdWQVIo Y29tcGlsZXIsICQxKT0kQ0MKLStfTFRfVEFHVkFSKExELCAkMSk9IiRMRCIKLStfTFRfQ0NfQkFT RU5BTUUoWyRjb21waWxlcl0pCi0rCi0rIyBHQ0ogZGlkIG5vdCBleGlzdCBhdCB0aGUgdGltZSBH Q0MgZGlkbid0IGltcGxpY2l0bHkgbGluayBsaWJjIGluLgotK19MVF9UQUdWQVIoYXJjaGl2ZV9j bWRzX25lZWRfbGMsICQxKT1ubwotKwotK19MVF9UQUdWQVIob2xkX2FyY2hpdmVfY21kcywgJDEp PSRvbGRfYXJjaGl2ZV9jbWRzCi0rCi0rIyMgQ0FWRUFUIEVNUFRPUjoKLSsjIyBUaGVyZSBpcyBu byBlbmNhcHN1bGF0aW9uIHdpdGhpbiB0aGUgZm9sbG93aW5nIG1hY3JvcywgZG8gbm90IGNoYW5n ZQotKyMjIHRoZSBydW5uaW5nIG9yZGVyIG9yIG90aGVyd2lzZSBtb3ZlIHRoZW0gYXJvdW5kIHVu bGVzcyB5b3Uga25vdyBleGFjdGx5Ci0rIyMgd2hhdCB5b3UgYXJlIGRvaW5nLi4uCi0raWYgdGVz dCAtbiAiJGNvbXBpbGVyIjsgdGhlbgotKyAgX0xUX0NPTVBJTEVSX05PX1JUVEkoJDEpCi0rICBf TFRfQ09NUElMRVJfUElDKCQxKQotKyAgX0xUX0NPTVBJTEVSX0NfTygkMSkKLSsgIF9MVF9DT01Q SUxFUl9GSUxFX0xPQ0tTKCQxKQotKyAgX0xUX0xJTktFUl9TSExJQlMoJDEpCi0rICBfTFRfTElO S0VSX0hBUkRDT0RFX0xJQlBBVEgoJDEpCi0rCi0rICBfTFRfQ09ORklHKCQxKQotK2ZpCi0rCi0r QUNfTEFOR19SRVNUT1JFCi0rCi0rR0NDPSRsdF9zYXZlX0dDQwotK0NDPSIkbHRfc2F2ZV9DQyIK LStdKSMgX0xUX0xBTkdfR0NKX0NPTkZJRwotKwotKwotKyMgX0xUX0xBTkdfUkNfQ09ORklHKFtU QUddKQotKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotKyMgRW5zdXJlIHRoYXQgdGhlIGNv bmZpZ3VyYXRpb24gdmFyaWFibGVzIGZvciB0aGUgV2luZG93cyByZXNvdXJjZSBjb21waWxlcgot KyMgYXJlIHN1aXRhYmx5IGRlZmluZWQuICBUaGVzZSB2YXJpYWJsZXMgYXJlIHN1YnNlcXVlbnRs eSB1c2VkIGJ5IF9MVF9DT05GSUcKLSsjIHRvIHdyaXRlIHRoZSBjb21waWxlciBjb25maWd1cmF0 aW9uIHRvIGBsaWJ0b29sJy4KLSttNF9kZWZ1bihbX0xUX0xBTkdfUkNfQ09ORklHXSwKLStbQUNf UkVRVUlSRShbTFRfUFJPR19SQ10pZG5sCi0rQUNfTEFOR19TQVZFCi0rCi0rIyBTb3VyY2UgZmls ZSBleHRlbnNpb24gZm9yIFJDIHRlc3Qgc291cmNlcy4KLSthY19leHQ9cmMKLSsKLSsjIE9iamVj dCBmaWxlIGV4dGVuc2lvbiBmb3IgY29tcGlsZWQgUkMgdGVzdCBzb3VyY2VzLgotK29iamV4dD1v Ci0rX0xUX1RBR1ZBUihvYmpleHQsICQxKT0kb2JqZXh0Ci0rCi0rIyBDb2RlIHRvIGJlIHVzZWQg aW4gc2ltcGxlIGNvbXBpbGUgdGVzdHMKLStsdF9zaW1wbGVfY29tcGlsZV90ZXN0X2NvZGU9J3Nh bXBsZSBNRU5VIHsgTUVOVUlURU0gIiZTb3VwIiwgMTAwLCBDSEVDS0VEIH0nCi0rCi0rIyBDb2Rl IHRvIGJlIHVzZWQgaW4gc2ltcGxlIGxpbmsgdGVzdHMKLStsdF9zaW1wbGVfbGlua190ZXN0X2Nv ZGU9IiRsdF9zaW1wbGVfY29tcGlsZV90ZXN0X2NvZGUiCi0rCi0rIyBsdG1haW4gb25seSB1c2Vz ICRDQyBmb3IgdGFnZ2VkIGNvbmZpZ3VyYXRpb25zIHNvIG1ha2Ugc3VyZSAkQ0MgaXMgc2V0Lgot K19MVF9UQUdfQ09NUElMRVIKLSsKLSsjIHNhdmUgd2FybmluZ3MvYm9pbGVycGxhdGUgb2Ygc2lt cGxlIHRlc3QgY29kZQotK19MVF9DT01QSUxFUl9CT0lMRVJQTEFURQotK19MVF9MSU5LRVJfQk9J TEVSUExBVEUKLSsKLSsjIEFsbG93IENDIHRvIGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJndW1l bnRzLgotK2x0X3NhdmVfQ0M9IiRDQyIKLStsdF9zYXZlX0dDQz0kR0NDCi0rR0NDPQotK0NDPSR7 UkMtIndpbmRyZXMifQotK2NvbXBpbGVyPSRDQwotK19MVF9UQUdWQVIoY29tcGlsZXIsICQxKT0k Q0MKLStfTFRfQ0NfQkFTRU5BTUUoWyRjb21waWxlcl0pCi0rX0xUX1RBR1ZBUihsdF9jdl9wcm9n X2NvbXBpbGVyX2NfbywgJDEpPXllcwotKwotK2lmIHRlc3QgLW4gIiRjb21waWxlciI7IHRoZW4K LSsgIDoKLSsgIF9MVF9DT05GSUcoJDEpCi0rZmkKLSsKLStHQ0M9JGx0X3NhdmVfR0NDCi0rQUNf TEFOR19SRVNUT1JFCi0rQ0M9IiRsdF9zYXZlX0NDIgotK10pIyBfTFRfTEFOR19SQ19DT05GSUcK LSsKLSsKLSsjIExUX1BST0dfR0NKCi0rIyAtLS0tLS0tLS0tLQotK0FDX0RFRlVOKFtMVF9QUk9H X0dDSl0sCi0rW200X2lmZGVmKFtBQ19QUk9HX0dDSl0sIFtBQ19QUk9HX0dDSl0sCi0rICBbbTRf aWZkZWYoW0FdW01fUFJPR19HQ0pdLCBbQV1bTV9QUk9HX0dDSl0sCi0rICAgIFtBQ19DSEVDS19U T09MKEdDSiwgZ2NqLCkKLSsgICAgICB0ZXN0ICJ4JHtHQ0pGTEFHUytzZXR9IiA9IHhzZXQgfHwg R0NKRkxBR1M9Ii1nIC1PMiIKLSsgICAgICBBQ19TVUJTVChHQ0pGTEFHUyldKV0pW11kbmwKLStd KQotKwotKyMgT2xkIG5hbWU6Ci0rQVVfQUxJQVMoW0xUX0FDX1BST0dfR0NKXSwgW0xUX1BST0df R0NKXSkKLStkbmwgYWNsb2NhbC0xLjQgYmFja3dhcmRzIGNvbXBhdGliaWxpdHk6Ci0rZG5sIEFD X0RFRlVOKFtMVF9BQ19QUk9HX0dDSl0sIFtdKQotKwotKwotKyMgTFRfUFJPR19SQwotKyMgLS0t LS0tLS0tLQotK0FDX0RFRlVOKFtMVF9QUk9HX1JDXSwKLStbQUNfQ0hFQ0tfVE9PTChSQywgd2lu ZHJlcywpCi0rXSkKLSsKLSsjIE9sZCBuYW1lOgotK0FVX0FMSUFTKFtMVF9BQ19QUk9HX1JDXSwg W0xUX1BST0dfUkNdKQotK2RubCBhY2xvY2FsLTEuNCBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eToK LStkbmwgQUNfREVGVU4oW0xUX0FDX1BST0dfUkNdLCBbXSkKLSsKLSsKLSsjIF9MVF9ERUNMX0VH UkVQCi0rIyAtLS0tLS0tLS0tLS0tLQotKyMgSWYgd2UgZG9uJ3QgaGF2ZSBhIG5ldyBlbm91Z2gg QXV0b2NvbmYgdG8gY2hvb3NlIHRoZSBiZXN0IGdyZXAKLSsjIGF2YWlsYWJsZSwgY2hvb3NlIHRo ZSBvbmUgZmlyc3QgaW4gdGhlIHVzZXIncyBQQVRILgotK200X2RlZnVuKFtfTFRfREVDTF9FR1JF UF0sCi0rW0FDX1JFUVVJUkUoW0FDX1BST0dfRUdSRVBdKWRubAotK0FDX1JFUVVJUkUoW0FDX1BS T0dfRkdSRVBdKWRubAotK3Rlc3QgLXogIiRHUkVQIiAmJiBHUkVQPWdyZXAKLStfTFRfREVDTChb XSwgW0dSRVBdLCBbMV0sIFtBIGdyZXAgcHJvZ3JhbSB0aGF0IGhhbmRsZXMgbG9uZyBsaW5lc10p Ci0rX0xUX0RFQ0woW10sIFtFR1JFUF0sIFsxXSwgW0FuIEVSRSBtYXRjaGVyXSkKLStfTFRfREVD TChbXSwgW0ZHUkVQXSwgWzFdLCBbQSBsaXRlcmFsIHN0cmluZyBtYXRjaGVyXSkKLStkbmwgTm9u LWJsZWVkaW5nLWVkZ2UgYXV0b2NvbmYgZG9lc24ndCBzdWJzdCBHUkVQLCBzbyBkbyBpdCBoZXJl IHRvbwotK0FDX1NVQlNUKFtHUkVQXSkKLStdKQotKwotKwotKyMgX0xUX0RFQ0xfT0JKRFVNUAot KyMgLS0tLS0tLS0tLS0tLS0KLSsjIElmIHdlIGRvbid0IGhhdmUgYSBuZXcgZW5vdWdoIEF1dG9j b25mIHRvIGNob29zZSB0aGUgYmVzdCBvYmpkdW1wCi0rIyBhdmFpbGFibGUsIGNob29zZSB0aGUg b25lIGZpcnN0IGluIHRoZSB1c2VyJ3MgUEFUSC4KLSttNF9kZWZ1bihbX0xUX0RFQ0xfT0JKRFVN UF0sCi0rW0FDX0NIRUNLX1RPT0woT0JKRFVNUCwgb2JqZHVtcCwgZmFsc2UpCi0rdGVzdCAteiAi JE9CSkRVTVAiICYmIE9CSkRVTVA9b2JqZHVtcAotK19MVF9ERUNMKFtdLCBbT0JKRFVNUF0sIFsx XSwgW0FuIG9iamVjdCBzeW1ib2wgZHVtcGVyXSkKLStBQ19TVUJTVChbT0JKRFVNUF0pCi0rXSkK LSsKLSsKLSsjIF9MVF9ERUNMX1NFRAotKyMgLS0tLS0tLS0tLS0tCi0rIyBDaGVjayBmb3IgYSBm dWxseS1mdW5jdGlvbmFsIHNlZCBwcm9ncmFtLCB0aGF0IHRydW5jYXRlcwotKyMgYXMgZmV3IGNo YXJhY3RlcnMgYXMgcG9zc2libGUuICBQcmVmZXIgR05VIHNlZCBpZiBmb3VuZC4KLSttNF9kZWZ1 bihbX0xUX0RFQ0xfU0VEXSwKLStbQUNfUFJPR19TRUQKLSt0ZXN0IC16ICIkU0VEIiAmJiBTRUQ9 c2VkCi0rWHNlZD0iJFNFRCAtZSAxcy9eWC8vIgotK19MVF9ERUNMKFtdLCBbU0VEXSwgWzFdLCBb QSBzZWQgcHJvZ3JhbSB0aGF0IGRvZXMgbm90IHRydW5jYXRlIG91dHB1dF0pCi0rX0xUX0RFQ0wo W10sIFtYc2VkXSwgWyJcJFNFRCAtZSAxcy9eWC8vIl0sCi0rICAgIFtTZWQgdGhhdCBoZWxwcyB1 cyBhdm9pZCBhY2NpZGVudGFsbHkgdHJpZ2dlcmluZyBlY2hvKDEpIG9wdGlvbnMgbGlrZSAtbl0p Ci0rXSkjIF9MVF9ERUNMX1NFRAotKwotK200X2lmbmRlZihbQUNfUFJPR19TRURdLCBbCi0rIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj Ci0rIyBOT1RFOiBUaGlzIG1hY3JvIGhhcyBiZWVuIHN1Ym1pdHRlZCBmb3IgaW5jbHVzaW9uIGlu dG8gICAjCi0rIyAgR05VIEF1dG9jb25mIGFzIEFDX1BST0dfU0VELiAgV2hlbiBpdCBpcyBhdmFp bGFibGUgaW4gICAjCi0rIyAgYSByZWxlYXNlZCB2ZXJzaW9uIG9mIEF1dG9jb25mIHdlIHNob3Vs ZCByZW1vdmUgdGhpcyAgICAjCi0rIyAgbWFjcm8gYW5kIHVzZSBpdCBpbnN0ZWFkLiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAjCi0rIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0rCi0rbTRfZGVmdW4oW0FDX1BST0dfU0VE XSwKLStbQUNfTVNHX0NIRUNLSU5HKFtmb3IgYSBzZWQgdGhhdCBkb2VzIG5vdCB0cnVuY2F0ZSBv dXRwdXRdKQotK0FDX0NBQ0hFX1ZBTChsdF9jdl9wYXRoX1NFRCwKLStbIyBMb29wIHRocm91Z2gg dGhlIHVzZXIncyBwYXRoIGFuZCB0ZXN0IGZvciBzZWQgYW5kIGdzZWQuCi0rIyBUaGVuIHVzZSB0 aGF0IGxpc3Qgb2Ygc2VkJ3MgYXMgb25lcyB0byB0ZXN0IGZvciB0cnVuY2F0aW9uLgotK2FzX3Nh dmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IKLStmb3IgYXNfZGlyIGluICRQQVRICi0r ZG8KLSsgIElGUz0kYXNfc2F2ZV9JRlMKLSsgIHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0u Ci0rICBmb3IgbHRfYWNfcHJvZyBpbiBzZWQgZ3NlZDsgZG8KLSsgICAgZm9yIGFjX2V4ZWNfZXh0 IGluICcnICRhY19leGVjdXRhYmxlX2V4dGVuc2lvbnM7IGRvCi0rICAgICAgaWYgJGFzX2V4ZWN1 dGFibGVfcCAiJGFzX2Rpci8kbHRfYWNfcHJvZyRhY19leGVjX2V4dCI7IHRoZW4KLSsgICAgICAg IGx0X2FjX3NlZF9saXN0PSIkbHRfYWNfc2VkX2xpc3QgJGFzX2Rpci8kbHRfYWNfcHJvZyRhY19l eGVjX2V4dCIKLSsgICAgICBmaQotKyAgICBkb25lCi0rICBkb25lCi0rZG9uZQotK0lGUz0kYXNf c2F2ZV9JRlMKLStsdF9hY19tYXg9MAotK2x0X2FjX2NvdW50PTAKLSsjIEFkZCAvdXNyL3hwZzQv YmluL3NlZCBhcyBpdCBpcyB0eXBpY2FsbHkgZm91bmQgb24gU29sYXJpcwotKyMgYWxvbmcgd2l0 aCAvYmluL3NlZCB0aGF0IHRydW5jYXRlcyBvdXRwdXQuCi0rZm9yIGx0X2FjX3NlZCBpbiAkbHRf YWNfc2VkX2xpc3QgL3Vzci94cGc0L2Jpbi9zZWQ7IGRvCi0rICB0ZXN0ICEgLWYgJGx0X2FjX3Nl ZCAmJiBjb250aW51ZQotKyAgY2F0IC9kZXYvbnVsbCA+IGNvbmZ0ZXN0LmluCi0rICBsdF9hY19j b3VudD0wCi0rICBlY2hvICRFQ0hPX04gIjAxMjM0NTY3ODkkRUNIT19DIiA+Y29uZnRlc3QuaW4K LSsgICMgQ2hlY2sgZm9yIEdOVSBzZWQgYW5kIHNlbGVjdCBpdCBpZiBpdCBpcyBmb3VuZC4KLSsg IGlmICIkbHRfYWNfc2VkIiAtLXZlcnNpb24gMj4mMSA8IC9kZXYvbnVsbCB8IGdyZXAgJ0dOVScg PiAvZGV2L251bGw7IHRoZW4KLSsgICAgbHRfY3ZfcGF0aF9TRUQ9JGx0X2FjX3NlZAotKyAgICBi cmVhawotKyAgZmkKLSsgIHdoaWxlIHRydWU7IGRvCi0rICAgIGNhdCBjb25mdGVzdC5pbiBjb25m dGVzdC5pbiA+Y29uZnRlc3QudG1wCi0rICAgIG12IGNvbmZ0ZXN0LnRtcCBjb25mdGVzdC5pbgot KyAgICBjcCBjb25mdGVzdC5pbiBjb25mdGVzdC5ubAotKyAgICBlY2hvID4+Y29uZnRlc3QubmwK LSsgICAgJGx0X2FjX3NlZCAtZSAncy9hJC8vJyA8IGNvbmZ0ZXN0Lm5sID5jb25mdGVzdC5vdXQg fHwgYnJlYWsKLSsgICAgY21wIC1zIGNvbmZ0ZXN0Lm91dCBjb25mdGVzdC5ubCB8fCBicmVhawot KyAgICAjIDEwMDAwIGNoYXJzIGFzIGlucHV0IHNlZW1zIG1vcmUgdGhhbiBlbm91Z2gKLSsgICAg dGVzdCAkbHRfYWNfY291bnQgLWd0IDEwICYmIGJyZWFrCi0rICAgIGx0X2FjX2NvdW50PWBleHBy ICRsdF9hY19jb3VudCArIDFgCi0rICAgIGlmIHRlc3QgJGx0X2FjX2NvdW50IC1ndCAkbHRfYWNf bWF4OyB0aGVuCi0rICAgICAgbHRfYWNfbWF4PSRsdF9hY19jb3VudAotKyAgICAgIGx0X2N2X3Bh dGhfU0VEPSRsdF9hY19zZWQKLSsgICAgZmkKLSsgIGRvbmUKLStkb25lCi0rXSkKLStTRUQ9JGx0 X2N2X3BhdGhfU0VECi0rQUNfU1VCU1QoW1NFRF0pCi0rQUNfTVNHX1JFU1VMVChbJFNFRF0pCi0r XSkjQUNfUFJPR19TRUQKLStdKSNtNF9pZm5kZWYKLSsKLSsjIE9sZCBuYW1lOgotK0FVX0FMSUFT KFtMVF9BQ19QUk9HX1NFRF0sIFtBQ19QUk9HX1NFRF0pCi0rZG5sIGFjbG9jYWwtMS40IGJhY2t3 YXJkcyBjb21wYXRpYmlsaXR5OgotK2RubCBBQ19ERUZVTihbTFRfQUNfUFJPR19TRURdLCBbXSkK LSsKLSsKLSsjIF9MVF9DSEVDS19TSEVMTF9GRUFUVVJFUwotKyMgLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCi0rIyBGaW5kIG91dCB3aGV0aGVyIHRoZSBzaGVsbCBpcyBCb3VybmUgb3IgWFNJIGNv bXBhdGlibGUsCi0rIyBvciBoYXMgc29tZSBvdGhlciB1c2VmdWwgZmVhdHVyZXMuCi0rbTRfZGVm dW4oW19MVF9DSEVDS19TSEVMTF9GRUFUVVJFU10sCi0rW0FDX01TR19DSEVDS0lORyhbd2hldGhl ciB0aGUgc2hlbGwgdW5kZXJzdGFuZHMgc29tZSBYU0kgY29uc3RydWN0c10pCi0rIyBUcnkgc29t ZSBYU0kgZmVhdHVyZXMKLSt4c2lfc2hlbGw9bm8KLSsoIF9sdF9kdW1teT0iYS9iL2MiCi0rICB0 ZXN0ICIke19sdF9kdW1teSMjKi99LCR7X2x0X2R1bW15JS8qfSwiJHtfbHRfZHVtbXklIiRfbHRf ZHVtbXkifSwgXAotKyAgICAgID0gYyxhL2IsLCBcCi0rICAgICYmIGV2YWwgJ3Rlc3QgJCgoIDEg KyAxICkpIC1lcSAyIFwKLSsgICAgJiYgdGVzdCAiJHsjX2x0X2R1bW15fSIgLWVxIDUnICkgPi9k ZXYvbnVsbCAyPiYxIFwKLSsgICYmIHhzaV9zaGVsbD15ZXMKLStBQ19NU0dfUkVTVUxUKFskeHNp X3NoZWxsXSkKLStfTFRfQ09ORklHX0xJQlRPT0xfSU5JVChbeHNpX3NoZWxsPSckeHNpX3NoZWxs J10pCi0rCi0rQUNfTVNHX0NIRUNLSU5HKFt3aGV0aGVyIHRoZSBzaGVsbCB1bmRlcnN0YW5kcyAi Kz0iXSkKLStsdF9zaGVsbF9hcHBlbmQ9bm8KLSsoIGZvbz1iYXI7IHNldCBmb28gYmF6OyBldmFs ICIkWzFdKz1cJFsyXSIgJiYgdGVzdCAiJGZvbyIgPSBiYXJiYXogKSBcCi0rICAgID4vZGV2L251 bGwgMj4mMSBcCi0rICAmJiBsdF9zaGVsbF9hcHBlbmQ9eWVzCi0rQUNfTVNHX1JFU1VMVChbJGx0 X3NoZWxsX2FwcGVuZF0pCi0rX0xUX0NPTkZJR19MSUJUT09MX0lOSVQoW2x0X3NoZWxsX2FwcGVu ZD0nJGx0X3NoZWxsX2FwcGVuZCddKQotKwotK2lmICggKE1BSUw9NjA7IHVuc2V0IE1BSUwpIHx8 IGV4aXQpID4vZGV2L251bGwgMj4mMTsgdGhlbgotKyAgbHRfdW5zZXQ9dW5zZXQKLStlbHNlCi0r ICBsdF91bnNldD1mYWxzZQotK2ZpCi0rX0xUX0RFQ0woW10sIFtsdF91bnNldF0sIFswXSwgW3do ZXRoZXIgdGhlIHNoZWxsIHVuZGVyc3RhbmRzICJ1bnNldCJdKWRubAotKwotKyMgdGVzdCBFQkNE SUMgb3IgQVNDSUkKLStjYXNlIGBlY2hvIFh8dHIgWCAnXDEwMSdgIGluCi0rIEEpICMgQVNDSUkg YmFzZWQgc3lzdGVtCi0rICAgICMgXG4gaXMgbm90IGludGVycHJldGVkIGNvcnJlY3RseSBieSBT b2xhcmlzIDggL3Vzci91Y2IvdHIKLSsgIGx0X1NQMk5MPSd0ciBcMDQwIFwwMTInCi0rICBsdF9O TDJTUD0ndHIgXDAxNVwwMTIgXDA0MFwwNDAnCi0rICA7OwotKyAqKSAjIEVCQ0RJQyBiYXNlZCBz eXN0ZW0KLSsgIGx0X1NQMk5MPSd0ciBcMTAwIFxuJwotKyAgbHRfTkwyU1A9J3RyIFxyXG4gXDEw MFwxMDAnCi0rICA7OwotK2VzYWMKLStfTFRfREVDTChbU1AyTkxdLCBbbHRfU1AyTkxdLCBbMV0s IFt0dXJuIHNwYWNlcyBpbnRvIG5ld2xpbmVzXSlkbmwKLStfTFRfREVDTChbTkwyU1BdLCBbbHRf TkwyU1BdLCBbMV0sIFt0dXJuIG5ld2xpbmVzIGludG8gc3BhY2VzXSlkbmwKLStdKSMgX0xUX0NI RUNLX1NIRUxMX0ZFQVRVUkVTCi0rCi0rCi0rIyBfTFRfUFJPR19YU0lfU0hFTExGTlMKLSsjIC0t LS0tLS0tLS0tLS0tLS0tLS0tLQotKyMgQm91cm5lIGFuZCBYU0kgY29tcGF0aWJsZSB2YXJpYW50 cyBvZiBzb21lIHVzZWZ1bCBzaGVsbCBmdW5jdGlvbnMuCi0rbTRfZGVmdW4oW19MVF9QUk9HX1hT SV9TSEVMTEZOU10sCi0rW2Nhc2UgJHhzaV9zaGVsbCBpbgotKyAgeWVzKQotKyAgICBjYXQgPDwg XF9MVF9FT0YgPj4gIiRjZmdmaWxlIgotKwotKyMgZnVuY19kaXJuYW1lIGZpbGUgYXBwZW5kIG5v bmRpcl9yZXBsYWNlbWVudAotKyMgQ29tcHV0ZSB0aGUgZGlybmFtZSBvZiBGSUxFLiAgSWYgbm9u ZW1wdHksIGFkZCBBUFBFTkQgdG8gdGhlIHJlc3VsdCwKLSsjIG90aGVyd2lzZSBzZXQgcmVzdWx0 IHRvIE5PTkRJUl9SRVBMQUNFTUVOVC4KLStmdW5jX2Rpcm5hbWUgKCkKLSt7Ci0rICBjYXNlICR7 MX0gaW4KLSsgICAgKi8qKSBmdW5jX2Rpcm5hbWVfcmVzdWx0PSIkezElLyp9JHsyfSIgOzsKLSsg ICAgKiAgKSBmdW5jX2Rpcm5hbWVfcmVzdWx0PSIkezN9IiA7OwotKyAgZXNhYwotK30KLSsKLSsj IGZ1bmNfYmFzZW5hbWUgZmlsZQotK2Z1bmNfYmFzZW5hbWUgKCkKLSt7Ci0rICBmdW5jX2Jhc2Vu YW1lX3Jlc3VsdD0iJHsxIyMqL30iCi0rfQotKwotKyMgZnVuY19kaXJuYW1lX2FuZF9iYXNlbmFt ZSBmaWxlIGFwcGVuZCBub25kaXJfcmVwbGFjZW1lbnQKLSsjIHBlcmZvcm0gZnVuY19iYXNlbmFt ZSBhbmQgZnVuY19kaXJuYW1lIGluIGEgc2luZ2xlIGZ1bmN0aW9uCi0rIyBjYWxsOgotKyMgICBk aXJuYW1lOiAgQ29tcHV0ZSB0aGUgZGlybmFtZSBvZiBGSUxFLiAgSWYgbm9uZW1wdHksCi0rIyAg ICAgICAgICAgICBhZGQgQVBQRU5EIHRvIHRoZSByZXN1bHQsIG90aGVyd2lzZSBzZXQgcmVzdWx0 Ci0rIyAgICAgICAgICAgICB0byBOT05ESVJfUkVQTEFDRU1FTlQuCi0rIyAgICAgICAgICAgICB2 YWx1ZSByZXR1cm5lZCBpbiAiJGZ1bmNfZGlybmFtZV9yZXN1bHQiCi0rIyAgIGJhc2VuYW1lOiBD b21wdXRlIGZpbGVuYW1lIG9mIEZJTEUuCi0rIyAgICAgICAgICAgICB2YWx1ZSByZXR1bmVkIGlu ICIkZnVuY19iYXNlbmFtZV9yZXN1bHQiCi0rIyBJbXBsZW1lbnRhdGlvbiBtdXN0IGJlIGtlcHQg c3luY2hyb25pemVkIHdpdGggZnVuY19kaXJuYW1lCi0rIyBhbmQgZnVuY19iYXNlbmFtZS4gRm9y IGVmZmljaWVuY3ksIHdlIGRvIG5vdCBkZWxlZ2F0ZSB0bwotKyMgdGhvc2UgZnVuY3Rpb25zIGJ1 dCBpbnN0ZWFkIGR1cGxpY2F0ZSB0aGUgZnVuY3Rpb25hbGl0eSBoZXJlLgotK2Z1bmNfZGlybmFt ZV9hbmRfYmFzZW5hbWUgKCkKLSt7Ci0rICBjYXNlICR7MX0gaW4KLSsgICAgKi8qKSBmdW5jX2Rp cm5hbWVfcmVzdWx0PSIkezElLyp9JHsyfSIgOzsKLSsgICAgKiAgKSBmdW5jX2Rpcm5hbWVfcmVz dWx0PSIkezN9IiA7OwotKyAgZXNhYwotKyAgZnVuY19iYXNlbmFtZV9yZXN1bHQ9IiR7MSMjKi99 IgotK30KLSsKLSsjIGZ1bmNfc3RyaXBuYW1lIHByZWZpeCBzdWZmaXggbmFtZQotKyMgc3RyaXAg UFJFRklYIGFuZCBTVUZGSVggb2ZmIG9mIE5BTUUuCi0rIyBQUkVGSVggYW5kIFNVRkZJWCBtdXN0 IG5vdCBjb250YWluIGdsb2JiaW5nIG9yIHJlZ2V4IHNwZWNpYWwKLSsjIGNoYXJhY3RlcnMsIGhh c2hlcywgcGVyY2VudCBzaWducywgYnV0IFNVRkZJWCBtYXkgY29udGFpbiBhIGxlYWRpbmcKLSsj IGRvdCAoaW4gd2hpY2ggY2FzZSB0aGF0IG1hdGNoZXMgb25seSBhIGRvdCkuCi0rZnVuY19zdHJp cG5hbWUgKCkKLSt7Ci0rICAjIHBka3NoIDUuMi4xNCBkb2VzIG5vdCBkbyAke1glJFl9IGNvcnJl Y3RseSBpZiBib3RoIFggYW5kIFkgYXJlCi0rICAjIHBvc2l0aW9uYWwgcGFyYW1ldGVycywgc28g YXNzaWduIG9uZSB0byBvcmRpbmFyeSBwYXJhbWV0ZXIgZmlyc3QuCi0rICBmdW5jX3N0cmlwbmFt ZV9yZXN1bHQ9JHszfQotKyAgZnVuY19zdHJpcG5hbWVfcmVzdWx0PSR7ZnVuY19zdHJpcG5hbWVf cmVzdWx0IyIkezF9In0KLSsgIGZ1bmNfc3RyaXBuYW1lX3Jlc3VsdD0ke2Z1bmNfc3RyaXBuYW1l X3Jlc3VsdCUiJHsyfSJ9Ci0rfQotKwotKyMgZnVuY19vcHRfc3BsaXQKLStmdW5jX29wdF9zcGxp dCAoKQotK3sKLSsgIGZ1bmNfb3B0X3NwbGl0X29wdD0kezElJT0qfQotKyAgZnVuY19vcHRfc3Bs aXRfYXJnPSR7MSMqPX0KLSt9Ci0rCi0rIyBmdW5jX2xvMm8gb2JqZWN0Ci0rZnVuY19sbzJvICgp Ci0rewotKyAgY2FzZSAkezF9IGluCi0rICAgICoubG8pIGZ1bmNfbG8yb19yZXN1bHQ9JHsxJS5s b30uJHtvYmpleHR9IDs7Ci0rICAgICopICAgIGZ1bmNfbG8yb19yZXN1bHQ9JHsxfSA7OwotKyAg ZXNhYwotK30KLSsKLSsjIGZ1bmNfeGZvcm0gbGlib2JqLW9yLXNvdXJjZQotK2Z1bmNfeGZvcm0g KCkKLSt7Ci0rICBmdW5jX3hmb3JtX3Jlc3VsdD0kezElLip9LmxvCi0rfQotKwotKyMgZnVuY19h cml0aCBhcml0aG1ldGljLXRlcm0uLi4KLStmdW5jX2FyaXRoICgpCi0rewotKyAgZnVuY19hcml0 aF9yZXN1bHQ9JCgoICRbKl0gKSkKLSt9Ci0rCi0rIyBmdW5jX2xlbiBzdHJpbmcKLSsjIFNUUklO RyBtYXkgbm90IHN0YXJ0IHdpdGggYSBoeXBoZW4uCi0rZnVuY19sZW4gKCkKLSt7Ci0rICBmdW5j X2xlbl9yZXN1bHQ9JHsjMX0KLSt9Ci0rCi0rX0xUX0VPRgotKyAgICA7OwotKyAgKikgIyBCb3Vy bmUgY29tcGF0aWJsZSBmdW5jdGlvbnMuCi0rICAgIGNhdCA8PCBcX0xUX0VPRiA+PiAiJGNmZ2Zp bGUiCi0rCi0rIyBmdW5jX2Rpcm5hbWUgZmlsZSBhcHBlbmQgbm9uZGlyX3JlcGxhY2VtZW50Ci0r IyBDb21wdXRlIHRoZSBkaXJuYW1lIG9mIEZJTEUuICBJZiBub25lbXB0eSwgYWRkIEFQUEVORCB0 byB0aGUgcmVzdWx0LAotKyMgb3RoZXJ3aXNlIHNldCByZXN1bHQgdG8gTk9ORElSX1JFUExBQ0VN RU5ULgotK2Z1bmNfZGlybmFtZSAoKQotK3sKLSsgICMgRXh0cmFjdCBzdWJkaXJlY3RvcnkgZnJv bSB0aGUgYXJndW1lbnQuCi0rICBmdW5jX2Rpcm5hbWVfcmVzdWx0PWAkRUNITyAiWCR7MX0iIHwg JFhzZWQgLWUgIiRkaXJuYW1lImAKLSsgIGlmIHRlc3QgIlgkZnVuY19kaXJuYW1lX3Jlc3VsdCIg PSAiWCR7MX0iOyB0aGVuCi0rICAgIGZ1bmNfZGlybmFtZV9yZXN1bHQ9IiR7M30iCi0rICBlbHNl Ci0rICAgIGZ1bmNfZGlybmFtZV9yZXN1bHQ9IiRmdW5jX2Rpcm5hbWVfcmVzdWx0JHsyfSIKLSsg IGZpCi0rfQotKwotKyMgZnVuY19iYXNlbmFtZSBmaWxlCi0rZnVuY19iYXNlbmFtZSAoKQotK3sK LSsgIGZ1bmNfYmFzZW5hbWVfcmVzdWx0PWAkRUNITyAiWCR7MX0iIHwgJFhzZWQgLWUgIiRiYXNl bmFtZSJgCi0rfQotKwotK2RubCBmdW5jX2Rpcm5hbWVfYW5kX2Jhc2VuYW1lCi0rZG5sIEEgcG9y dGFibGUgdmVyc2lvbiBvZiB0aGlzIGZ1bmN0aW9uIGlzIGFscmVhZHkgZGVmaW5lZCBpbiBnZW5l cmFsLm00c2gKLStkbmwgc28gdGhlcmUgaXMgbm8gbmVlZCBmb3IgaXQgaGVyZS4KLSsKLSsjIGZ1 bmNfc3RyaXBuYW1lIHByZWZpeCBzdWZmaXggbmFtZQotKyMgc3RyaXAgUFJFRklYIGFuZCBTVUZG SVggb2ZmIG9mIE5BTUUuCi0rIyBQUkVGSVggYW5kIFNVRkZJWCBtdXN0IG5vdCBjb250YWluIGds b2JiaW5nIG9yIHJlZ2V4IHNwZWNpYWwKLSsjIGNoYXJhY3RlcnMsIGhhc2hlcywgcGVyY2VudCBz aWducywgYnV0IFNVRkZJWCBtYXkgY29udGFpbiBhIGxlYWRpbmcKLSsjIGRvdCAoaW4gd2hpY2gg Y2FzZSB0aGF0IG1hdGNoZXMgb25seSBhIGRvdCkuCi0rIyBmdW5jX3N0cmlwX3N1ZmZpeCBwcmVm aXggbmFtZQotK2Z1bmNfc3RyaXBuYW1lICgpCi0rewotKyAgY2FzZSAkezJ9IGluCi0rICAgIC4q KSBmdW5jX3N0cmlwbmFtZV9yZXN1bHQ9YCRFQ0hPICJYJHszfSIgXAotKyAgICAgICAgICAgfCAk WHNlZCAtZSAicyVeJHsxfSUlIiAtZSAicyVcXFxcJHsyfVwkJSUiYDs7Ci0rICAgICopICBmdW5j X3N0cmlwbmFtZV9yZXN1bHQ9YCRFQ0hPICJYJHszfSIgXAotKyAgICAgICAgICAgfCAkWHNlZCAt ZSAicyVeJHsxfSUlIiAtZSAicyUkezJ9XCQlJSJgOzsKLSsgIGVzYWMKLSt9Ci0rCi0rIyBzZWQg c2NyaXB0czoKLStteV9zZWRfbG9uZ19vcHQ9JzFzL15cKC1bW149XV0qXCk9LiovXDEvO3EnCi0r bXlfc2VkX2xvbmdfYXJnPScxcy9eLVtbXj1dXSo9Ly8nCi0rCi0rIyBmdW5jX29wdF9zcGxpdAot K2Z1bmNfb3B0X3NwbGl0ICgpCi0rewotKyAgZnVuY19vcHRfc3BsaXRfb3B0PWAkRUNITyAiWCR7 MX0iIHwgJFhzZWQgLWUgIiRteV9zZWRfbG9uZ19vcHQiYAotKyAgZnVuY19vcHRfc3BsaXRfYXJn PWAkRUNITyAiWCR7MX0iIHwgJFhzZWQgLWUgIiRteV9zZWRfbG9uZ19hcmciYAotK30KLSsKLSsj IGZ1bmNfbG8ybyBvYmplY3QKLStmdW5jX2xvMm8gKCkKLSt7Ci0rICBmdW5jX2xvMm9fcmVzdWx0 PWAkRUNITyAiWCR7MX0iIHwgJFhzZWQgLWUgIiRsbzJvImAKLSt9Ci0rCi0rIyBmdW5jX3hmb3Jt IGxpYm9iai1vci1zb3VyY2UKLStmdW5jX3hmb3JtICgpCi0rewotKyAgZnVuY194Zm9ybV9yZXN1 bHQ9YCRFQ0hPICJYJHsxfSIgfCAkWHNlZCAtZSAncy9cLltbXi5dXSokLy5sby8nYAotK30KLSsK LSsjIGZ1bmNfYXJpdGggYXJpdGhtZXRpYy10ZXJtLi4uCi0rZnVuY19hcml0aCAoKQotK3sKLSsg IGZ1bmNfYXJpdGhfcmVzdWx0PWBleHByICIkW0BdImAKLSt9Ci0rCi0rIyBmdW5jX2xlbiBzdHJp bmcKLSsjIFNUUklORyBtYXkgbm90IHN0YXJ0IHdpdGggYSBoeXBoZW4uCi0rZnVuY19sZW4gKCkK LSt7Ci0rICBmdW5jX2xlbl9yZXN1bHQ9YGV4cHIgIiRbMV0iIDogIi4qIiAyPi9kZXYvbnVsbCB8 fCBlY2hvICRtYXhfY21kX2xlbmAKLSt9Ci0rCi0rX0xUX0VPRgotK2VzYWMKLSsKLStjYXNlICRs dF9zaGVsbF9hcHBlbmQgaW4KLSsgIHllcykKLSsgICAgY2F0IDw8IFxfTFRfRU9GID4+ICIkY2Zn ZmlsZSIKLSsKLSsjIGZ1bmNfYXBwZW5kIHZhciB2YWx1ZQotKyMgQXBwZW5kIFZBTFVFIHRvIHRo ZSBlbmQgb2Ygc2hlbGwgdmFyaWFibGUgVkFSLgotK2Z1bmNfYXBwZW5kICgpCi0rewotKyAgZXZh bCAiJFsxXSs9XCRbMl0iCi0rfQotK19MVF9FT0YKLSsgICAgOzsKLSsgICopCi0rICAgIGNhdCA8 PCBcX0xUX0VPRiA+PiAiJGNmZ2ZpbGUiCi0rCi0rIyBmdW5jX2FwcGVuZCB2YXIgdmFsdWUKLSsj IEFwcGVuZCBWQUxVRSB0byB0aGUgZW5kIG9mIHNoZWxsIHZhcmlhYmxlIFZBUi4KLStmdW5jX2Fw cGVuZCAoKQotK3sKLSsgIGV2YWwgIiRbMV09XCQkWzFdXCRbMl0iCi0rfQotKwotK19MVF9FT0YK LSsgICAgOzsKLSsgIGVzYWMKLStdKQotZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL2NvbmZp Zy9sdG1haW4uc2ggc29jaS0zLjAuMF90cmVwMzAwL2NvbmZpZy9sdG1haW4uc2gKLS0tLSBzb2Np LTMuMC4wXzQtcGFjay9jb25maWcvbHRtYWluLnNoCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAw MDAwICswMTAwCi0rKysgc29jaS0zLjAuMF90cmVwMzAwL2NvbmZpZy9sdG1haW4uc2gJMjAwOS0w NS0yMyAxMDowMTo1NS4wMDAwMDAwMDAgKzAyMDAKLUBAIC0wLDAgKzEsODQwNiBAQAotKyMgR2Vu ZXJhdGVkIGZyb20gbHRtYWluLm00c2guCi0rCi0rIyBsdG1haW4uc2ggKEdOVSBsaWJ0b29sKSAy LjIuNgotKyMgV3JpdHRlbiBieSBHb3Jkb24gTWF0emlna2VpdCA8Z29yZEBnbnUuYWkubWl0LmVk dT4sIDE5OTYKLSsKLSsjIENvcHlyaWdodCAoQykgMTk5NiwgMTk5NywgMTk5OCwgMTk5OSwgMjAw MCwgMjAwMSwgMjAwMywgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNyAyMDA4IEZyZWUgU29mdHdhcmUg Rm91bmRhdGlvbiwgSW5jLgotKyMgVGhpcyBpcyBmcmVlIHNvZnR3YXJlOyBzZWUgdGhlIHNvdXJj ZSBmb3IgY29weWluZyBjb25kaXRpb25zLiAgVGhlcmUgaXMgTk8KLSsjIHdhcnJhbnR5OyBub3Qg ZXZlbiBmb3IgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ T1NFLgotKwotKyMgR05VIExpYnRvb2wgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3Ry aWJ1dGUgaXQgYW5kL29yIG1vZGlmeQotKyMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUg R2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKLSsjIHRoZSBGcmVlIFNvZnR3 YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCi0rIyAo YXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotKyMKLSsjIEFzIGEgc3BlY2lhbCBl eGNlcHRpb24gdG8gdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLAotKyMgaWYgeW91IGRp c3RyaWJ1dGUgdGhpcyBmaWxlIGFzIHBhcnQgb2YgYSBwcm9ncmFtIG9yIGxpYnJhcnkgdGhhdAot KyMgaXMgYnVpbHQgdXNpbmcgR05VIExpYnRvb2wsIHlvdSBtYXkgaW5jbHVkZSB0aGlzIGZpbGUg dW5kZXIgdGhlCi0rIyBzYW1lIGRpc3RyaWJ1dGlvbiB0ZXJtcyB0aGF0IHlvdSB1c2UgZm9yIHRo ZSByZXN0IG9mIHRoYXQgcHJvZ3JhbS4KLSsjCi0rIyBHTlUgTGlidG9vbCBpcyBkaXN0cmlidXRl ZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQKLSsjIFdJVEhPVVQgQU5Z IFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSsjIE1FUkNI QU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUg R05VCi0rIyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0rIwotKyMg WW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGlj IExpY2Vuc2UKLSsjIGFsb25nIHdpdGggR05VIExpYnRvb2w7IHNlZSB0aGUgZmlsZSBDT1BZSU5H LiAgSWYgbm90LCBhIGNvcHkKLSsjIGNhbiBiZSBkb3dubG9hZGVkIGZyb20gaHR0cDovL3d3dy5n bnUub3JnL2xpY2Vuc2VzL2dwbC5odG1sLAotKyMgb3Igb2J0YWluZWQgYnkgd3JpdGluZyB0byB0 aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLAotKyMgNTEgRnJhbmtsaW4gU3RyZWV0 LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCi0rCi0rIyBVc2FnZTog JHByb2duYW1lIFtPUFRJT05dLi4uIFtNT0RFLUFSR10uLi4KLSsjCi0rIyBQcm92aWRlIGdlbmVy YWxpemVkIGxpYnJhcnktYnVpbGRpbmcgc3VwcG9ydCBzZXJ2aWNlcy4KLSsjCi0rIyAgICAgLS1j b25maWcgICAgICAgICAgICAgc2hvdyBhbGwgY29uZmlndXJhdGlvbiB2YXJpYWJsZXMKLSsjICAg ICAtLWRlYnVnICAgICAgICAgICAgICBlbmFibGUgdmVyYm9zZSBzaGVsbCB0cmFjaW5nCi0rIyAt biwgLS1kcnktcnVuICAgICAgICAgICAgZGlzcGxheSBjb21tYW5kcyB3aXRob3V0IG1vZGlmeWlu ZyBhbnkgZmlsZXMKLSsjICAgICAtLWZlYXR1cmVzICAgICAgICAgICBkaXNwbGF5IGJhc2ljIGNv bmZpZ3VyYXRpb24gaW5mb3JtYXRpb24gYW5kIGV4aXQKLSsjICAgICAtLW1vZGU9TU9ERSAgICAg ICAgICB1c2Ugb3BlcmF0aW9uIG1vZGUgTU9ERQotKyMgICAgIC0tcHJlc2VydmUtZHVwLWRlcHMg IGRvbid0IHJlbW92ZSBkdXBsaWNhdGUgZGVwZW5kZW5jeSBsaWJyYXJpZXMKLSsjICAgICAtLXF1 aWV0LCAtLXNpbGVudCAgICBkb24ndCBwcmludCBpbmZvcm1hdGlvbmFsIG1lc3NhZ2VzCi0rIyAg ICAgLS10YWc9VEFHICAgICAgICAgICAgdXNlIGNvbmZpZ3VyYXRpb24gdmFyaWFibGVzIGZyb20g dGFnIFRBRwotKyMgLXYsIC0tdmVyYm9zZSAgICAgICAgICAgIHByaW50IGluZm9ybWF0aW9uYWwg bWVzc2FnZXMgKGRlZmF1bHQpCi0rIyAgICAgLS12ZXJzaW9uICAgICAgICAgICAgcHJpbnQgdmVy c2lvbiBpbmZvcm1hdGlvbgotKyMgLWgsIC0taGVscCAgICAgICAgICAgICAgIHByaW50IHNob3J0 IG9yIGxvbmcgaGVscCBtZXNzYWdlCi0rIwotKyMgTU9ERSBtdXN0IGJlIG9uZSBvZiB0aGUgZm9s bG93aW5nOgotKyMKLSsjICAgICAgIGNsZWFuICAgICAgICAgICAgICByZW1vdmUgZmlsZXMgZnJv bSB0aGUgYnVpbGQgZGlyZWN0b3J5Ci0rIyAgICAgICBjb21waWxlICAgICAgICAgICAgY29tcGls ZSBhIHNvdXJjZSBmaWxlIGludG8gYSBsaWJ0b29sIG9iamVjdAotKyMgICAgICAgZXhlY3V0ZSAg ICAgICAgICAgIGF1dG9tYXRpY2FsbHkgc2V0IGxpYnJhcnkgcGF0aCwgdGhlbiBydW4gYSBwcm9n cmFtCi0rIyAgICAgICBmaW5pc2ggICAgICAgICAgICAgY29tcGxldGUgdGhlIGluc3RhbGxhdGlv biBvZiBsaWJ0b29sIGxpYnJhcmllcwotKyMgICAgICAgaW5zdGFsbCAgICAgICAgICAgIGluc3Rh bGwgbGlicmFyaWVzIG9yIGV4ZWN1dGFibGVzCi0rIyAgICAgICBsaW5rICAgICAgICAgICAgICAg Y3JlYXRlIGEgbGlicmFyeSBvciBhbiBleGVjdXRhYmxlCi0rIyAgICAgICB1bmluc3RhbGwgICAg ICAgICAgcmVtb3ZlIGxpYnJhcmllcyBmcm9tIGFuIGluc3RhbGxlZCBkaXJlY3RvcnkKLSsjCi0r IyBNT0RFLUFSR1MgdmFyeSBkZXBlbmRpbmcgb24gdGhlIE1PREUuCi0rIyBUcnkgYCRwcm9nbmFt ZSAtLWhlbHAgLS1tb2RlPU1PREUnIGZvciBhIG1vcmUgZGV0YWlsZWQgZGVzY3JpcHRpb24gb2Yg TU9ERS4KLSsjCi0rIyBXaGVuIHJlcG9ydGluZyBhIGJ1ZywgcGxlYXNlIGRlc2NyaWJlIGEgdGVz dCBjYXNlIHRvIHJlcHJvZHVjZSBpdCBhbmQKLSsjIGluY2x1ZGUgdGhlIGZvbGxvd2luZyBpbmZv cm1hdGlvbjoKLSsjCi0rIyAgICAgICBob3N0LXRyaXBsZXQ6CSRob3N0Ci0rIyAgICAgICBzaGVs bDoJCSRTSEVMTAotKyMgICAgICAgY29tcGlsZXI6CQkkTFRDQwotKyMgICAgICAgY29tcGlsZXIg ZmxhZ3M6CQkkTFRDRkxBR1MKLSsjICAgICAgIGxpbmtlcjoJCSRMRCAoZ251PyAkd2l0aF9nbnVf bGQpCi0rIyAgICAgICAkcHJvZ25hbWU6CQkoR05VIGxpYnRvb2wpIDIuMi42Ci0rIyAgICAgICBh dXRvbWFrZToJCSRhdXRvbWFrZV92ZXJzaW9uCi0rIyAgICAgICBhdXRvY29uZjoJCSRhdXRvY29u Zl92ZXJzaW9uCi0rIwotKyMgUmVwb3J0IGJ1Z3MgdG8gPGJ1Zy1saWJ0b29sQGdudS5vcmc+Lgot KwotK1BST0dSQU09bHRtYWluLnNoCi0rUEFDS0FHRT1saWJ0b29sCi0rVkVSU0lPTj0yLjIuNgot K1RJTUVTVEFNUD0iIgotK3BhY2thZ2VfcmV2aXNpb249MS4zMDEyCi0rCi0rIyBCZSBCb3VybmUg Y29tcGF0aWJsZQotK2lmIHRlc3QgLW4gIiR7WlNIX1ZFUlNJT04rc2V0fSIgJiYgKGVtdWxhdGUg c2gpID4vZGV2L251bGwgMj4mMTsgdGhlbgotKyAgZW11bGF0ZSBzaAotKyAgTlVMTENNRD06Ci0r ICAjIFpzaCAzLnggYW5kIDQueCBwZXJmb3JtcyB3b3JkIHNwbGl0dGluZyBvbiAkezErIiRAIn0s IHdoaWNoCi0rICAjIGlzIGNvbnRyYXJ5IHRvIG91ciB1c2FnZS4gIERpc2FibGUgdGhpcyBmZWF0 dXJlLgotKyAgYWxpYXMgLWcgJyR7MSsiJEAifSc9JyIkQCInCi0rICBzZXRvcHQgTk9fR0xPQl9T VUJTVAotK2Vsc2UKLSsgIGNhc2UgYChzZXQgLW8pIDI+L2Rldi9udWxsYCBpbiAqcG9zaXgqKSBz ZXQgLW8gcG9zaXg7OyBlc2FjCi0rZmkKLStCSU5fU0g9eHBnNDsgZXhwb3J0IEJJTl9TSCAjIGZv ciBUcnU2NAotK0RVQUxDQVNFPTE7IGV4cG9ydCBEVUFMQ0FTRSAjIGZvciBNS1Mgc2gKLSsKLSsj IE5MUyBudWlzYW5jZXM6IFdlIHNhdmUgdGhlIG9sZCB2YWx1ZXMgdG8gcmVzdG9yZSBkdXJpbmcg ZXhlY3V0ZSBtb2RlLgotKyMgT25seSBzZXQgTEFORyBhbmQgTENfQUxMIHRvIEMgaWYgYWxyZWFk eSBzZXQuCi0rIyBUaGVzZSBtdXN0IG5vdCBiZSBzZXQgdW5jb25kaXRpb25hbGx5IGJlY2F1c2Ug bm90IGFsbCBzeXN0ZW1zIHVuZGVyc3RhbmQKLSsjIGUuZy4gTEFORz1DIChub3RhYmx5IFNDTyku Ci0rbHRfdXNlcl9sb2NhbGU9Ci0rbHRfc2FmZV9sb2NhbGU9Ci0rZm9yIGx0X3ZhciBpbiBMQU5H IExBTkdVQUdFIExDX0FMTCBMQ19DVFlQRSBMQ19DT0xMQVRFIExDX01FU1NBR0VTCi0rZG8KLSsg IGV2YWwgImlmIHRlc3QgXCJcJHskbHRfdmFyK3NldH1cIiA9IHNldDsgdGhlbgotKyAgICAgICAg ICBzYXZlXyRsdF92YXI9XCQkbHRfdmFyCi0rICAgICAgICAgICRsdF92YXI9QwotKwkgIGV4cG9y dCAkbHRfdmFyCi0rCSAgbHRfdXNlcl9sb2NhbGU9XCIkbHRfdmFyPVxcXCRzYXZlX1wkbHRfdmFy OyBcJGx0X3VzZXJfbG9jYWxlXCIKLSsJICBsdF9zYWZlX2xvY2FsZT1cIiRsdF92YXI9QzsgXCRs dF9zYWZlX2xvY2FsZVwiCi0rCWZpIgotK2RvbmUKLSsKLSskbHRfdW5zZXQgQ0RQQVRICi0rCi0r Ci0rCi0rCi0rCi0rOiAke0NQPSJjcCAtZiJ9Ci0rOiAke0VDSE89ImVjaG8ifQotKzogJHtFR1JF UD0iL2Jpbi9ncmVwIC1FIn0KLSs6ICR7RkdSRVA9Ii9iaW4vZ3JlcCAtRiJ9Ci0rOiAke0dSRVA9 Ii9iaW4vZ3JlcCJ9Ci0rOiAke0xOX1M9ImxuIC1zIn0KLSs6ICR7TUFLRT0ibWFrZSJ9Ci0rOiAk e01LRElSPSJta2RpciJ9Ci0rOiAke01WPSJtdiAtZiJ9Ci0rOiAke1JNPSJybSAtZiJ9Ci0rOiAk e1NFRD0iL2Jpbi9zZWQifQotKzogJHtTSEVMTD0iJHtDT05GSUdfU0hFTEwtL2Jpbi9zaH0ifQot KzogJHtYc2VkPSIkU0VEIC1lIDFzL15YLy8ifQotKwotKyMgR2xvYmFsIHZhcmlhYmxlczoKLStF WElUX1NVQ0NFU1M9MAotK0VYSVRfRkFJTFVSRT0xCi0rRVhJVF9NSVNNQVRDSD02MyAgIyAkPyA9 IDYzIGlzIHVzZWQgdG8gaW5kaWNhdGUgdmVyc2lvbiBtaXNtYXRjaCB0byBtaXNzaW5nLgotK0VY SVRfU0tJUD03NwkgICMgJD8gPSA3NyBpcyB1c2VkIHRvIGluZGljYXRlIGEgc2tpcHBlZCB0ZXN0 IHRvIGF1dG9tYWtlLgotKwotK2V4aXRfc3RhdHVzPSRFWElUX1NVQ0NFU1MKLSsKLSsjIE1ha2Ug c3VyZSBJRlMgaGFzIGEgc2Vuc2libGUgZGVmYXVsdAotK2x0X25sPScKLSsnCi0rSUZTPSIgCSRs dF9ubCIKLSsKLStkaXJuYW1lPSJzLC9bXi9dKiQsLCIKLStiYXNlbmFtZT0icyxeLiovLCwiCi0r Ci0rIyBmdW5jX2Rpcm5hbWVfYW5kX2Jhc2VuYW1lIGZpbGUgYXBwZW5kIG5vbmRpcl9yZXBsYWNl bWVudAotKyMgcGVyZm9ybSBmdW5jX2Jhc2VuYW1lIGFuZCBmdW5jX2Rpcm5hbWUgaW4gYSBzaW5n bGUgZnVuY3Rpb24KLSsjIGNhbGw6Ci0rIyAgIGRpcm5hbWU6ICBDb21wdXRlIHRoZSBkaXJuYW1l IG9mIEZJTEUuICBJZiBub25lbXB0eSwKLSsjICAgICAgICAgICAgIGFkZCBBUFBFTkQgdG8gdGhl IHJlc3VsdCwgb3RoZXJ3aXNlIHNldCByZXN1bHQKLSsjICAgICAgICAgICAgIHRvIE5PTkRJUl9S RVBMQUNFTUVOVC4KLSsjICAgICAgICAgICAgIHZhbHVlIHJldHVybmVkIGluICIkZnVuY19kaXJu YW1lX3Jlc3VsdCIKLSsjICAgYmFzZW5hbWU6IENvbXB1dGUgZmlsZW5hbWUgb2YgRklMRS4KLSsj ICAgICAgICAgICAgIHZhbHVlIHJldHVuZWQgaW4gIiRmdW5jX2Jhc2VuYW1lX3Jlc3VsdCIKLSsj IEltcGxlbWVudGF0aW9uIG11c3QgYmUga2VwdCBzeW5jaHJvbml6ZWQgd2l0aCBmdW5jX2Rpcm5h bWUKLSsjIGFuZCBmdW5jX2Jhc2VuYW1lLiBGb3IgZWZmaWNpZW5jeSwgd2UgZG8gbm90IGRlbGVn YXRlIHRvCi0rIyB0aG9zZSBmdW5jdGlvbnMgYnV0IGluc3RlYWQgZHVwbGljYXRlIHRoZSBmdW5j dGlvbmFsaXR5IGhlcmUuCi0rZnVuY19kaXJuYW1lX2FuZF9iYXNlbmFtZSAoKQotK3sKLSsgICMg RXh0cmFjdCBzdWJkaXJlY3RvcnkgZnJvbSB0aGUgYXJndW1lbnQuCi0rICBmdW5jX2Rpcm5hbWVf cmVzdWx0PWAkRUNITyAiWCR7MX0iIHwgJFhzZWQgLWUgIiRkaXJuYW1lImAKLSsgIGlmIHRlc3Qg IlgkZnVuY19kaXJuYW1lX3Jlc3VsdCIgPSAiWCR7MX0iOyB0aGVuCi0rICAgIGZ1bmNfZGlybmFt ZV9yZXN1bHQ9IiR7M30iCi0rICBlbHNlCi0rICAgIGZ1bmNfZGlybmFtZV9yZXN1bHQ9IiRmdW5j X2Rpcm5hbWVfcmVzdWx0JHsyfSIKLSsgIGZpCi0rICBmdW5jX2Jhc2VuYW1lX3Jlc3VsdD1gJEVD SE8gIlgkezF9IiB8ICRYc2VkIC1lICIkYmFzZW5hbWUiYAotK30KLSsKLSsjIEdlbmVyYXRlZCBz aGVsbCBmdW5jdGlvbnMgaW5zZXJ0ZWQgaGVyZS4KLSsKLSsjIFdvcmsgYXJvdW5kIGJhY2t3YXJk IGNvbXBhdGliaWxpdHkgaXNzdWUgb24gSVJJWCA2LjUuIE9uIElSSVggNi40Kywgc2gKLSsjIGlz IGtzaCBidXQgd2hlbiB0aGUgc2hlbGwgaXMgaW52b2tlZCBhcyAic2giIGFuZCB0aGUgY3VycmVu dCB2YWx1ZSBvZgotKyMgdGhlIF9YUEcgZW52aXJvbm1lbnQgdmFyaWFibGUgaXMgbm90IGVxdWFs IHRvIDEgKG9uZSksIHRoZSBzcGVjaWFsCi0rIyBwb3NpdGlvbmFsIHBhcmFtZXRlciAkMCwgd2l0 aGluIGEgZnVuY3Rpb24gY2FsbCwgaXMgdGhlIG5hbWUgb2YgdGhlCi0rIyBmdW5jdGlvbi4KLStw cm9ncGF0aD0iJDAiCi0rCi0rIyBUaGUgbmFtZSBvZiB0aGlzIHByb2dyYW06Ci0rIyBJbiB0aGUg dW5saWtlbHkgZXZlbnQgJHByb2duYW1lIGJlZ2FuIHdpdGggYSAnLScsIGl0IHdvdWxkIHBsYXkg aGF2b2Mgd2l0aAotKyMgZnVuY19lY2hvIChpbWFnaW5lIHByb2duYW1lPS1uKSwgc28gd2UgcHJl cGVuZCAuLyBpbiB0aGF0IGNhc2U6Ci0rZnVuY19kaXJuYW1lX2FuZF9iYXNlbmFtZSAiJHByb2dw YXRoIgotK3Byb2duYW1lPSRmdW5jX2Jhc2VuYW1lX3Jlc3VsdAotK2Nhc2UgJHByb2duYW1lIGlu Ci0rICAtKikgcHJvZ25hbWU9Li8kcHJvZ25hbWUgOzsKLStlc2FjCi0rCi0rIyBNYWtlIHN1cmUg d2UgaGF2ZSBhbiBhYnNvbHV0ZSBwYXRoIGZvciByZWV4ZWN1dGlvbjoKLStjYXNlICRwcm9ncGF0 aCBpbgotKyAgW1xcL10qfFtBLVphLXpdOlxcKikgOzsKLSsgICpbXFwvXSopCi0rICAgICBwcm9n ZGlyPSRmdW5jX2Rpcm5hbWVfcmVzdWx0Ci0rICAgICBwcm9nZGlyPWBjZCAiJHByb2dkaXIiICYm IHB3ZGAKLSsgICAgIHByb2dwYXRoPSIkcHJvZ2Rpci8kcHJvZ25hbWUiCi0rICAgICA7OwotKyAg KikKLSsgICAgIHNhdmVfSUZTPSIkSUZTIgotKyAgICAgSUZTPToKLSsgICAgIGZvciBwcm9nZGly IGluICRQQVRIOyBkbwotKyAgICAgICBJRlM9IiRzYXZlX0lGUyIKLSsgICAgICAgdGVzdCAteCAi JHByb2dkaXIvJHByb2duYW1lIiAmJiBicmVhawotKyAgICAgZG9uZQotKyAgICAgSUZTPSIkc2F2 ZV9JRlMiCi0rICAgICB0ZXN0IC1uICIkcHJvZ2RpciIgfHwgcHJvZ2Rpcj1gcHdkYAotKyAgICAg cHJvZ3BhdGg9IiRwcm9nZGlyLyRwcm9nbmFtZSIKLSsgICAgIDs7Ci0rZXNhYwotKwotKyMgU2Vk IHN1YnN0aXR1dGlvbiB0aGF0IGhlbHBzIHVzIGRvIHJvYnVzdCBxdW90aW5nLiAgSXQgYmFja3Ns YXNoaWZpZXMKLSsjIG1ldGFjaGFyYWN0ZXJzIHRoYXQgYXJlIHN0aWxsIGFjdGl2ZSB3aXRoaW4g ZG91YmxlLXF1b3RlZCBzdHJpbmdzLgotK1hzZWQ9IiR7U0VEfSInIC1lIDFzL15YLy8nCi0rc2Vk X3F1b3RlX3N1YnN0PSdzL1woW2AiJFxcXVwpL1xcXDEvZycKLSsKLSsjIFNhbWUgYXMgYWJvdmUs IGJ1dCBkbyBub3QgcXVvdGUgdmFyaWFibGUgcmVmZXJlbmNlcy4KLStkb3VibGVfcXVvdGVfc3Vi c3Q9J3MvXChbImBcXF1cKS9cXFwxL2cnCi0rCi0rIyBSZS1gXCcgcGFyYW1ldGVyIGV4cGFuc2lv bnMgaW4gb3V0cHV0IG9mIGRvdWJsZV9xdW90ZV9zdWJzdCB0aGF0IHdlcmUKLSsjIGBcJy1lZCBp biBpbnB1dCB0byB0aGUgc2FtZS4gIElmIGFuIG9kZCBudW1iZXIgb2YgYFwnIHByZWNlZGVkIGEg JyQnCi0rIyBpbiBpbnB1dCB0byBkb3VibGVfcXVvdGVfc3Vic3QsIHRoYXQgJyQnIHdhcyBwcm90 ZWN0ZWQgZnJvbSBleHBhbnNpb24uCi0rIyBTaW5jZSBlYWNoIGlucHV0IGBcJyBpcyBub3cgdHdv IGBcJ3MsIGxvb2sgZm9yIGFueSBudW1iZXIgb2YgcnVucyBvZgotKyMgZm91ciBgXCdzIGZvbGxv d2VkIGJ5IHR3byBgXCdzIGFuZCB0aGVuIGEgJyQnLiAgYFwnIHRoYXQgJyQnLgotK2JzPSdcXCcK LSticzI9J1xcXFwnCi0rYnM0PSdcXFxcXFxcXCcKLStkb2xsYXI9J1wkJwotK3NlZF9kb3VibGVf YmFja3NsYXNoPSJcCi0rICBzLyRiczQvJlxcCi0rL2cKLSsgIHMvXiRiczIkZG9sbGFyLyRicyYv Ci0rICBzL1xcKFteJGJzXVxcKSRiczIkZG9sbGFyL1xcMSRiczIkYnMkZG9sbGFyL2cKLSsgIHMv XG4vL2ciCi0rCi0rIyBTdGFuZGFyZCBvcHRpb25zOgotK29wdF9kcnlfcnVuPWZhbHNlCi0rb3B0 X2hlbHA9ZmFsc2UKLStvcHRfcXVpZXQ9ZmFsc2UKLStvcHRfdmVyYm9zZT1mYWxzZQotK29wdF93 YXJuaW5nPToKLSsKLSsjIGZ1bmNfZWNobyBhcmcuLi4KLSsjIEVjaG8gcHJvZ3JhbSBuYW1lIHBy ZWZpeGVkIG1lc3NhZ2UsIGFsb25nIHdpdGggdGhlIGN1cnJlbnQgbW9kZQotKyMgbmFtZSBpZiBp dCBoYXMgYmVlbiBzZXQgeWV0LgotK2Z1bmNfZWNobyAoKQotK3sKLSsgICAgJEVDSE8gIiRwcm9n bmFtZSR7bW9kZSs6IH0kbW9kZTogJCoiCi0rfQotKwotKyMgZnVuY192ZXJib3NlIGFyZy4uLgot KyMgRWNobyBwcm9ncmFtIG5hbWUgcHJlZml4ZWQgbWVzc2FnZSBpbiB2ZXJib3NlIG1vZGUgb25s eS4KLStmdW5jX3ZlcmJvc2UgKCkKLSt7Ci0rICAgICRvcHRfdmVyYm9zZSAmJiBmdW5jX2VjaG8g JHsxKyIkQCJ9Ci0rCi0rICAgICMgQSBidWcgaW4gYmFzaCBoYWx0cyB0aGUgc2NyaXB0IGlmIHRo ZSBsYXN0IGxpbmUgb2YgYSBmdW5jdGlvbgotKyAgICAjIGZhaWxzIHdoZW4gc2V0IC1lIGlzIGlu IGZvcmNlLCBzbyB3ZSBuZWVkIGFub3RoZXIgY29tbWFuZCB0bwotKyAgICAjIHdvcmsgYXJvdW5k IHRoYXQ6Ci0rICAgIDoKLSt9Ci0rCi0rIyBmdW5jX2Vycm9yIGFyZy4uLgotKyMgRWNobyBwcm9n cmFtIG5hbWUgcHJlZml4ZWQgbWVzc2FnZSB0byBzdGFuZGFyZCBlcnJvci4KLStmdW5jX2Vycm9y ICgpCi0rewotKyAgICAkRUNITyAiJHByb2duYW1lJHttb2RlKzogfSRtb2RlOiAiJHsxKyIkQCJ9 IDE+JjIKLSt9Ci0rCi0rIyBmdW5jX3dhcm5pbmcgYXJnLi4uCi0rIyBFY2hvIHByb2dyYW0gbmFt ZSBwcmVmaXhlZCB3YXJuaW5nIG1lc3NhZ2UgdG8gc3RhbmRhcmQgZXJyb3IuCi0rZnVuY193YXJu aW5nICgpCi0rewotKyAgICAkb3B0X3dhcm5pbmcgJiYgJEVDSE8gIiRwcm9nbmFtZSR7bW9kZSs6 IH0kbW9kZTogd2FybmluZzogIiR7MSsiJEAifSAxPiYyCi0rCi0rICAgICMgYmFzaCBidWcgYWdh aW46Ci0rICAgIDoKLSt9Ci0rCi0rIyBmdW5jX2ZhdGFsX2Vycm9yIGFyZy4uLgotKyMgRWNobyBw cm9ncmFtIG5hbWUgcHJlZml4ZWQgbWVzc2FnZSB0byBzdGFuZGFyZCBlcnJvciwgYW5kIGV4aXQu Ci0rZnVuY19mYXRhbF9lcnJvciAoKQotK3sKLSsgICAgZnVuY19lcnJvciAkezErIiRAIn0KLSsg ICAgZXhpdCAkRVhJVF9GQUlMVVJFCi0rfQotKwotKyMgZnVuY19mYXRhbF9oZWxwIGFyZy4uLgot KyMgRWNobyBwcm9ncmFtIG5hbWUgcHJlZml4ZWQgbWVzc2FnZSB0byBzdGFuZGFyZCBlcnJvciwg Zm9sbG93ZWQgYnkKLSsjIGEgaGVscCBoaW50LCBhbmQgZXhpdC4KLStmdW5jX2ZhdGFsX2hlbHAg KCkKLSt7Ci0rICAgIGZ1bmNfZXJyb3IgJHsxKyIkQCJ9Ci0rICAgIGZ1bmNfZmF0YWxfZXJyb3Ig IiRoZWxwIgotK30KLStoZWxwPSJUcnkgXGAkcHJvZ25hbWUgLS1oZWxwJyBmb3IgbW9yZSBpbmZv cm1hdGlvbi4iICAjIyBkZWZhdWx0Ci0rCi0rCi0rIyBmdW5jX2dyZXAgZXhwcmVzc2lvbiBmaWxl bmFtZQotKyMgQ2hlY2sgd2hldGhlciBFWFBSRVNTSU9OIG1hdGNoZXMgYW55IGxpbmUgb2YgRklM RU5BTUUsIHdpdGhvdXQgb3V0cHV0LgotK2Z1bmNfZ3JlcCAoKQotK3sKLSsgICAgJEdSRVAgIiQx IiAiJDIiID4vZGV2L251bGwgMj4mMQotK30KLSsKLSsKLSsjIGZ1bmNfbWtkaXJfcCBkaXJlY3Rv cnktcGF0aAotKyMgTWFrZSBzdXJlIHRoZSBlbnRpcmUgcGF0aCB0byBESVJFQ1RPUlktUEFUSCBp cyBhdmFpbGFibGUuCi0rZnVuY19ta2Rpcl9wICgpCi0rewotKyAgICBteV9kaXJlY3RvcnlfcGF0 aD0iJDEiCi0rICAgIG15X2Rpcl9saXN0PQotKwotKyAgICBpZiB0ZXN0IC1uICIkbXlfZGlyZWN0 b3J5X3BhdGgiICYmIHRlc3QgIiRvcHRfZHJ5X3J1biIgIT0gIjoiOyB0aGVuCi0rCi0rICAgICAg IyBQcm90ZWN0IGRpcmVjdG9yeSBuYW1lcyBzdGFydGluZyB3aXRoIGAtJwotKyAgICAgIGNhc2Ug JG15X2RpcmVjdG9yeV9wYXRoIGluCi0rICAgICAgICAtKikgbXlfZGlyZWN0b3J5X3BhdGg9Ii4v JG15X2RpcmVjdG9yeV9wYXRoIiA7OwotKyAgICAgIGVzYWMKLSsKLSsgICAgICAjIFdoaWxlIHNv bWUgcG9ydGlvbiBvZiBESVIgZG9lcyBub3QgeWV0IGV4aXN0Li4uCi0rICAgICAgd2hpbGUgdGVz dCAhIC1kICIkbXlfZGlyZWN0b3J5X3BhdGgiOyBkbwotKyAgICAgICAgIyAuLi5tYWtlIGEgbGlz dCBpbiB0b3Btb3N0IGZpcnN0IG9yZGVyLiAgVXNlIGEgY29sb24gZGVsaW1pdGVkCi0rCSMgbGlz dCBpbmNhc2Ugc29tZSBwb3J0aW9uIG9mIHBhdGggY29udGFpbnMgd2hpdGVzcGFjZS4KLSsgICAg ICAgIG15X2Rpcl9saXN0PSIkbXlfZGlyZWN0b3J5X3BhdGg6JG15X2Rpcl9saXN0IgotKwotKyAg ICAgICAgIyBJZiB0aGUgbGFzdCBwb3J0aW9uIGFkZGVkIGhhcyBubyBzbGFzaCBpbiBpdCwgdGhl IGxpc3QgaXMgZG9uZQotKyAgICAgICAgY2FzZSAkbXlfZGlyZWN0b3J5X3BhdGggaW4gKi8qKSA7 OyAqKSBicmVhayA7OyBlc2FjCi0rCi0rICAgICAgICAjIC4uLm90aGVyd2lzZSB0aHJvdyBhd2F5 IHRoZSBjaGlsZCBkaXJlY3RvcnkgYW5kIGxvb3AKLSsgICAgICAgIG15X2RpcmVjdG9yeV9wYXRo PWAkRUNITyAiWCRteV9kaXJlY3RvcnlfcGF0aCIgfCAkWHNlZCAtZSAiJGRpcm5hbWUiYAotKyAg ICAgIGRvbmUKLSsgICAgICBteV9kaXJfbGlzdD1gJEVDSE8gIlgkbXlfZGlyX2xpc3QiIHwgJFhz ZWQgLWUgJ3MsOiokLCwnYAotKwotKyAgICAgIHNhdmVfbWtkaXJfcF9JRlM9IiRJRlMiOyBJRlM9 JzonCi0rICAgICAgZm9yIG15X2RpciBpbiAkbXlfZGlyX2xpc3Q7IGRvCi0rCUlGUz0iJHNhdmVf bWtkaXJfcF9JRlMiCi0rICAgICAgICAjIG1rZGlyIGNhbiBmYWlsIHdpdGggYSBgRmlsZSBleGlz dCcgZXJyb3IgaWYgdHdvIHByb2Nlc3NlcwotKyAgICAgICAgIyB0cnkgdG8gY3JlYXRlIG9uZSBv ZiB0aGUgZGlyZWN0b3JpZXMgY29uY3VycmVudGx5LiAgRG9uJ3QKLSsgICAgICAgICMgc3RvcCBp biB0aGF0IGNhc2UhCi0rICAgICAgICAkTUtESVIgIiRteV9kaXIiIDI+L2Rldi9udWxsIHx8IDoK LSsgICAgICBkb25lCi0rICAgICAgSUZTPSIkc2F2ZV9ta2Rpcl9wX0lGUyIKLSsKLSsgICAgICAj IEJhaWwgb3V0IGlmIHdlIChvciBzb21lIG90aGVyIHByb2Nlc3MpIGZhaWxlZCB0byBjcmVhdGUg YSBkaXJlY3RvcnkuCi0rICAgICAgdGVzdCAtZCAiJG15X2RpcmVjdG9yeV9wYXRoIiB8fCBcCi0r ICAgICAgICBmdW5jX2ZhdGFsX2Vycm9yICJGYWlsZWQgdG8gY3JlYXRlIFxgJDEnIgotKyAgICBm aQotK30KLSsKLSsKLSsjIGZ1bmNfbWt0ZW1wZGlyIFtzdHJpbmddCi0rIyBNYWtlIGEgdGVtcG9y YXJ5IGRpcmVjdG9yeSB0aGF0IHdvbid0IGNsYXNoIHdpdGggb3RoZXIgcnVubmluZwotKyMgbGli dG9vbCBwcm9jZXNzZXMsIGFuZCBhdm9pZHMgcmFjZSBjb25kaXRpb25zIGlmIHBvc3NpYmxlLiAg SWYKLSsjIGdpdmVuLCBTVFJJTkcgaXMgdGhlIGJhc2VuYW1lIGZvciB0aGF0IGRpcmVjdG9yeS4K LStmdW5jX21rdGVtcGRpciAoKQotK3sKLSsgICAgbXlfdGVtcGxhdGU9IiR7VE1QRElSLS90bXB9 LyR7MS0kcHJvZ25hbWV9IgotKwotKyAgICBpZiB0ZXN0ICIkb3B0X2RyeV9ydW4iID0gIjoiOyB0 aGVuCi0rICAgICAgIyBSZXR1cm4gYSBkaXJlY3RvcnkgbmFtZSwgYnV0IGRvbid0IGNyZWF0ZSBp dCBpbiBkcnktcnVuIG1vZGUKLSsgICAgICBteV90bXBkaXI9IiR7bXlfdGVtcGxhdGV9LSQkIgot KyAgICBlbHNlCi0rCi0rICAgICAgIyBJZiBta3RlbXAgd29ya3MsIHVzZSB0aGF0IGZpcnN0IGFu ZCBmb3JlbW9zdAotKyAgICAgIG15X3RtcGRpcj1gbWt0ZW1wIC1kICIke215X3RlbXBsYXRlfS1Y WFhYWFhYWCIgMj4vZGV2L251bGxgCi0rCi0rICAgICAgaWYgdGVzdCAhIC1kICIkbXlfdG1wZGly IjsgdGhlbgotKyAgICAgICAgIyBGYWlsaW5nIHRoYXQsIGF0IGxlYXN0IHRyeSBhbmQgdXNlICRS QU5ET00gdG8gYXZvaWQgYSByYWNlCi0rICAgICAgICBteV90bXBkaXI9IiR7bXlfdGVtcGxhdGV9 LSR7UkFORE9NLTB9JCQiCi0rCi0rICAgICAgICBzYXZlX21rdGVtcGRpcl91bWFzaz1gdW1hc2tg Ci0rICAgICAgICB1bWFzayAwMDc3Ci0rICAgICAgICAkTUtESVIgIiRteV90bXBkaXIiCi0rICAg ICAgICB1bWFzayAkc2F2ZV9ta3RlbXBkaXJfdW1hc2sKLSsgICAgICBmaQotKwotKyAgICAgICMg SWYgd2UncmUgbm90IGluIGRyeS1ydW4gbW9kZSwgYm9tYiBvdXQgb24gZmFpbHVyZQotKyAgICAg IHRlc3QgLWQgIiRteV90bXBkaXIiIHx8IFwKLSsgICAgICAgIGZ1bmNfZmF0YWxfZXJyb3IgImNh bm5vdCBjcmVhdGUgdGVtcG9yYXJ5IGRpcmVjdG9yeSBcYCRteV90bXBkaXInIgotKyAgICBmaQot KwotKyAgICAkRUNITyAiWCRteV90bXBkaXIiIHwgJFhzZWQKLSt9Ci0rCi0rCi0rIyBmdW5jX3F1 b3RlX2Zvcl9ldmFsIGFyZwotKyMgQWVzdGhldGljYWxseSBxdW90ZSBBUkcgdG8gYmUgZXZhbGVk IGxhdGVyLgotKyMgVGhpcyBmdW5jdGlvbiByZXR1cm5zIHR3byB2YWx1ZXM6IEZVTkNfUVVPVEVf Rk9SX0VWQUxfUkVTVUxUCi0rIyBpcyBkb3VibGUtcXVvdGVkLCBzdWl0YWJsZSBmb3IgYSBzdWJz ZXF1ZW50IGV2YWwsIHdoZXJlYXMKLSsjIEZVTkNfUVVPVEVfRk9SX0VWQUxfVU5RVU9URURfUkVT VUxUIGhhcyBtZXJlbHkgYWxsIGNoYXJhY3RlcnMKLSsjIHdoaWNoIGFyZSBzdGlsbCBhY3RpdmUg d2l0aGluIGRvdWJsZSBxdW90ZXMgYmFja3NsYXNoaWZpZWQuCi0rZnVuY19xdW90ZV9mb3JfZXZh bCAoKQotK3sKLSsgICAgY2FzZSAkMSBpbgotKyAgICAgICpbXFxcYFwiXCRdKikKLSsJZnVuY19x dW90ZV9mb3JfZXZhbF91bnF1b3RlZF9yZXN1bHQ9YCRFQ0hPICJYJDEiIHwgJFhzZWQgLWUgIiRz ZWRfcXVvdGVfc3Vic3QiYCA7OwotKyAgICAgICopCi0rICAgICAgICBmdW5jX3F1b3RlX2Zvcl9l dmFsX3VucXVvdGVkX3Jlc3VsdD0iJDEiIDs7Ci0rICAgIGVzYWMKLSsKLSsgICAgY2FzZSAkZnVu Y19xdW90ZV9mb3JfZXZhbF91bnF1b3RlZF9yZXN1bHQgaW4KLSsgICAgICAjIERvdWJsZS1xdW90 ZSBhcmdzIGNvbnRhaW5pbmcgc2hlbGwgbWV0YWNoYXJhY3RlcnMgdG8gZGVsYXkKLSsgICAgICAj IHdvcmQgc3BsaXR0aW5nLCBjb21tYW5kIHN1YnN0aXR1dGlvbiBhbmQgYW5kIHZhcmlhYmxlCi0r ICAgICAgIyBleHBhbnNpb24gZm9yIGEgc3Vic2VxdWVudCBldmFsLgotKyAgICAgICMgTWFueSBC b3VybmUgc2hlbGxzIGNhbm5vdCBoYW5kbGUgY2xvc2UgYnJhY2tldHMgY29ycmVjdGx5Ci0rICAg ICAgIyBpbiBzY2FuIHNldHMsIHNvIHdlIHNwZWNpZnkgaXQgc2VwYXJhdGVseS4KLSsgICAgICAq W1xbXH5cI1xeXCZcKlwoXClce1x9XHxcO1w8XD5cP1wnXCBcCV0qfCpdKnwiIikKLSsgICAgICAg IGZ1bmNfcXVvdGVfZm9yX2V2YWxfcmVzdWx0PSJcIiRmdW5jX3F1b3RlX2Zvcl9ldmFsX3VucXVv dGVkX3Jlc3VsdFwiIgotKyAgICAgICAgOzsKLSsgICAgICAqKQotKyAgICAgICAgZnVuY19xdW90 ZV9mb3JfZXZhbF9yZXN1bHQ9IiRmdW5jX3F1b3RlX2Zvcl9ldmFsX3VucXVvdGVkX3Jlc3VsdCIK LSsgICAgZXNhYwotK30KLSsKLSsKLSsjIGZ1bmNfcXVvdGVfZm9yX2V4cGFuZCBhcmcKLSsjIEFl c3RoZXRpY2FsbHkgcXVvdGUgQVJHIHRvIGJlIGV2YWxlZCBsYXRlcjsgc2FtZSBhcyBhYm92ZSwK LSsjIGJ1dCBkbyBub3QgcXVvdGUgdmFyaWFibGUgcmVmZXJlbmNlcy4KLStmdW5jX3F1b3RlX2Zv cl9leHBhbmQgKCkKLSt7Ci0rICAgIGNhc2UgJDEgaW4KLSsgICAgICAqW1xcXGBcIl0qKQotKwlt eV9hcmc9YCRFQ0hPICJYJDEiIHwgJFhzZWQgXAotKwkgICAgLWUgIiRkb3VibGVfcXVvdGVfc3Vi c3QiIC1lICIkc2VkX2RvdWJsZV9iYWNrc2xhc2giYCA7OwotKyAgICAgICopCi0rICAgICAgICBt eV9hcmc9IiQxIiA7OwotKyAgICBlc2FjCi0rCi0rICAgIGNhc2UgJG15X2FyZyBpbgotKyAgICAg ICMgRG91YmxlLXF1b3RlIGFyZ3MgY29udGFpbmluZyBzaGVsbCBtZXRhY2hhcmFjdGVycyB0byBk ZWxheQotKyAgICAgICMgd29yZCBzcGxpdHRpbmcgYW5kIGNvbW1hbmQgc3Vic3RpdHV0aW9uIGZv ciBhIHN1YnNlcXVlbnQgZXZhbC4KLSsgICAgICAjIE1hbnkgQm91cm5lIHNoZWxscyBjYW5ub3Qg aGFuZGxlIGNsb3NlIGJyYWNrZXRzIGNvcnJlY3RseQotKyAgICAgICMgaW4gc2NhbiBzZXRzLCBz byB3ZSBzcGVjaWZ5IGl0IHNlcGFyYXRlbHkuCi0rICAgICAgKltcW1x+XCNcXlwmXCpcKFwpXHtc fVx8XDtcPFw+XD9cJ1wgXAldKnwqXSp8IiIpCi0rICAgICAgICBteV9hcmc9IlwiJG15X2FyZ1wi IgotKyAgICAgICAgOzsKLSsgICAgZXNhYwotKwotKyAgICBmdW5jX3F1b3RlX2Zvcl9leHBhbmRf cmVzdWx0PSIkbXlfYXJnIgotK30KLSsKLSsKLSsjIGZ1bmNfc2hvd19ldmFsIGNtZCBbZmFpbF9l eHBdCi0rIyBVbmxlc3Mgb3B0X3NpbGVudCBpcyB0cnVlLCB0aGVuIG91dHB1dCBDTUQuICBUaGVu LCBpZiBvcHRfZHJ5cnVuIGlzCi0rIyBub3QgdHJ1ZSwgZXZhbHVhdGUgQ01ELiAgSWYgdGhlIGV2 YWx1YXRpb24gb2YgQ01EIGZhaWxzLCBhbmQgRkFJTF9FWFAKLSsjIGlzIGdpdmVuLCB0aGVuIGV2 YWx1YXRlIGl0LgotK2Z1bmNfc2hvd19ldmFsICgpCi0rewotKyAgICBteV9jbWQ9IiQxIgotKyAg ICBteV9mYWlsX2V4cD0iJHsyLTp9IgotKwotKyAgICAke29wdF9zaWxlbnQtZmFsc2V9IHx8IHsK LSsgICAgICBmdW5jX3F1b3RlX2Zvcl9leHBhbmQgIiRteV9jbWQiCi0rICAgICAgZXZhbCAiZnVu Y19lY2hvICRmdW5jX3F1b3RlX2Zvcl9leHBhbmRfcmVzdWx0IgotKyAgICB9Ci0rCi0rICAgIGlm ICR7b3B0X2RyeV9ydW4tZmFsc2V9OyB0aGVuIDo7IGVsc2UKLSsgICAgICBldmFsICIkbXlfY21k IgotKyAgICAgIG15X3N0YXR1cz0kPwotKyAgICAgIGlmIHRlc3QgIiRteV9zdGF0dXMiIC1lcSAw OyB0aGVuIDo7IGVsc2UKLSsJZXZhbCAiKGV4aXQgJG15X3N0YXR1cyk7ICRteV9mYWlsX2V4cCIK LSsgICAgICBmaQotKyAgICBmaQotK30KLSsKLSsKLSsjIGZ1bmNfc2hvd19ldmFsX2xvY2FsZSBj bWQgW2ZhaWxfZXhwXQotKyMgVW5sZXNzIG9wdF9zaWxlbnQgaXMgdHJ1ZSwgdGhlbiBvdXRwdXQg Q01ELiAgVGhlbiwgaWYgb3B0X2RyeXJ1biBpcwotKyMgbm90IHRydWUsIGV2YWx1YXRlIENNRC4g IElmIHRoZSBldmFsdWF0aW9uIG9mIENNRCBmYWlscywgYW5kIEZBSUxfRVhQCi0rIyBpcyBnaXZl biwgdGhlbiBldmFsdWF0ZSBpdC4gIFVzZSB0aGUgc2F2ZWQgbG9jYWxlIGZvciBldmFsdWF0aW9u LgotK2Z1bmNfc2hvd19ldmFsX2xvY2FsZSAoKQotK3sKLSsgICAgbXlfY21kPSIkMSIKLSsgICAg bXlfZmFpbF9leHA9IiR7Mi06fSIKLSsKLSsgICAgJHtvcHRfc2lsZW50LWZhbHNlfSB8fCB7Ci0r ICAgICAgZnVuY19xdW90ZV9mb3JfZXhwYW5kICIkbXlfY21kIgotKyAgICAgIGV2YWwgImZ1bmNf ZWNobyAkZnVuY19xdW90ZV9mb3JfZXhwYW5kX3Jlc3VsdCIKLSsgICAgfQotKwotKyAgICBpZiAk e29wdF9kcnlfcnVuLWZhbHNlfTsgdGhlbiA6OyBlbHNlCi0rICAgICAgZXZhbCAiJGx0X3VzZXJf bG9jYWxlCi0rCSAgICAkbXlfY21kIgotKyAgICAgIG15X3N0YXR1cz0kPwotKyAgICAgIGV2YWwg IiRsdF9zYWZlX2xvY2FsZSIKLSsgICAgICBpZiB0ZXN0ICIkbXlfc3RhdHVzIiAtZXEgMDsgdGhl biA6OyBlbHNlCi0rCWV2YWwgIihleGl0ICRteV9zdGF0dXMpOyAkbXlfZmFpbF9leHAiCi0rICAg ICAgZmkKLSsgICAgZmkKLSt9Ci0rCi0rCi0rCi0rCi0rCi0rIyBmdW5jX3ZlcnNpb24KLSsjIEVj aG8gdmVyc2lvbiBtZXNzYWdlIHRvIHN0YW5kYXJkIG91dHB1dCBhbmQgZXhpdC4KLStmdW5jX3Zl cnNpb24gKCkKLSt7Ci0rICAgICRTRUQgLW4gJy9eIyAnJFBST0dSQU0nIChHTlUgLywvIyB3YXJy YW50eTsgLyB7Ci0rICAgICAgICBzL14jIC8vCi0rCXMvXiMgKiQvLwotKyAgICAgICAgcy9cKChD KVwpWyAwLTksLV0qXCggWzEtOV1bMC05XSpcKS9cMVwyLwotKyAgICAgICAgcAotKyAgICAgfScg PCAiJHByb2dwYXRoIgotKyAgICAgZXhpdCAkPwotK30KLSsKLSsjIGZ1bmNfdXNhZ2UKLSsjIEVj aG8gc2hvcnQgaGVscCBtZXNzYWdlIHRvIHN0YW5kYXJkIG91dHB1dCBhbmQgZXhpdC4KLStmdW5j X3VzYWdlICgpCi0rewotKyAgICAkU0VEIC1uICcvXiMgVXNhZ2U6LywvIyAtaC8gewotKyAgICAg ICAgcy9eIyAvLwotKwlzL14jICokLy8KLSsJcy9cJHByb2duYW1lLyckcHJvZ25hbWUnLwotKwlw Ci0rICAgIH0nIDwgIiRwcm9ncGF0aCIKLSsgICAgJEVDSE8KLSsgICAgJEVDSE8gInJ1biBcYCRw cm9nbmFtZSAtLWhlbHAgfCBtb3JlJyBmb3IgZnVsbCB1c2FnZSIKLSsgICAgZXhpdCAkPwotK30K LSsKLSsjIGZ1bmNfaGVscAotKyMgRWNobyBsb25nIGhlbHAgbWVzc2FnZSB0byBzdGFuZGFyZCBv dXRwdXQgYW5kIGV4aXQuCi0rZnVuY19oZWxwICgpCi0rewotKyAgICAkU0VEIC1uICcvXiMgVXNh Z2U6LywvIyBSZXBvcnQgYnVncyB0by8gewotKyAgICAgICAgcy9eIyAvLwotKwlzL14jICokLy8K LSsJcypcJHByb2duYW1lKickcHJvZ25hbWUnKgotKwlzKlwkaG9zdConIiRob3N0IicqCi0rCXMq XCRTSEVMTConIiRTSEVMTCInKgotKwlzKlwkTFRDQyonIiRMVENDIicqCi0rCXMqXCRMVENGTEFH UyonIiRMVENGTEFHUyInKgotKwlzKlwkTEQqJyIkTEQiJyoKLSsJcy9cJHdpdGhfZ251X2xkLyci JHdpdGhfZ251X2xkIicvCi0rCXMvXCRhdXRvbWFrZV92ZXJzaW9uLyciYChhdXRvbWFrZSAtLXZl cnNpb24pIDI+L2Rldi9udWxsIHwkU0VEIDFxYCInLwotKwlzL1wkYXV0b2NvbmZfdmVyc2lvbi8n ImAoYXV0b2NvbmYgLS12ZXJzaW9uKSAyPi9kZXYvbnVsbCB8JFNFRCAxcWAiJy8KLSsJcAotKyAg ICAgfScgPCAiJHByb2dwYXRoIgotKyAgICBleGl0ICQ/Ci0rfQotKwotKyMgZnVuY19taXNzaW5n X2FyZyBhcmduYW1lCi0rIyBFY2hvIHByb2dyYW0gbmFtZSBwcmVmaXhlZCBtZXNzYWdlIHRvIHN0 YW5kYXJkIGVycm9yIGFuZCBzZXQgZ2xvYmFsCi0rIyBleGl0X2NtZC4KLStmdW5jX21pc3Npbmdf YXJnICgpCi0rewotKyAgICBmdW5jX2Vycm9yICJtaXNzaW5nIGFyZ3VtZW50IGZvciAkMSIKLSsg ICAgZXhpdF9jbWQ9ZXhpdAotK30KLSsKLStleGl0X2NtZD06Ci0rCi0rCi0rCi0rCi0rCi0rIyBD aGVjayB0aGF0IHdlIGhhdmUgYSB3b3JraW5nICRFQ0hPLgotK2lmIHRlc3QgIlgkMSIgPSBYLS1u by1yZWV4ZWM7IHRoZW4KLSsgICMgRGlzY2FyZCB0aGUgLS1uby1yZWV4ZWMgZmxhZywgYW5kIGNv bnRpbnVlLgotKyAgc2hpZnQKLStlbGlmIHRlc3QgIlgkMSIgPSBYLS1mYWxsYmFjay1lY2hvOyB0 aGVuCi0rICAjIEF2b2lkIGlubGluZSBkb2N1bWVudCBoZXJlLCBpdCBtYXkgYmUgbGVmdCBvdmVy Ci0rICA6Ci0rZWxpZiB0ZXN0ICJYYHsgJEVDSE8gJ1x0JzsgfSAyPi9kZXYvbnVsbGAiID0gJ1hc dCc7IHRoZW4KLSsgICMgWWlwcGVlLCAkRUNITyB3b3JrcyEKLSsgIDoKLStlbHNlCi0rICAjIFJl c3RhcnQgdW5kZXIgdGhlIGNvcnJlY3Qgc2hlbGwsIGFuZCB0aGVuIG1heWJlICRFQ0hPIHdpbGwg d29yay4KLSsgIGV4ZWMgJFNIRUxMICIkcHJvZ3BhdGgiIC0tbm8tcmVleGVjICR7MSsiJEAifQot K2ZpCi0rCi0raWYgdGVzdCAiWCQxIiA9IFgtLWZhbGxiYWNrLWVjaG87IHRoZW4KLSsgICMgdXNl ZCBhcyBmYWxsYmFjayBlY2hvCi0rICBzaGlmdAotKyAgY2F0IDw8RU9GCi0rJCoKLStFT0YKLSsg IGV4aXQgJEVYSVRfU1VDQ0VTUwotK2ZpCi0rCi0rbWFnaWM9IiUlJU1BR0lDIHZhcmlhYmxlJSUl IgotK21hZ2ljX2V4ZT0iJSUlTUFHSUMgRVhFIHZhcmlhYmxlJSUlIgotKwotKyMgR2xvYmFsIHZh cmlhYmxlcy4KLSsjICRtb2RlIGlzIHVuc2V0Ci0rbm9ub3B0PQotK2V4ZWN1dGVfZGxmaWxlcz0K LStwcmVzZXJ2ZV9hcmdzPQotK2xvMm89InMvXFwubG9cJC8uJHtvYmpleHR9LyIKLStvMmxvPSJz L1xcLiR7b2JqZXh0fVwkLy5sby8iCi0rZXh0cmFjdGVkX2FyY2hpdmVzPQotK2V4dHJhY3RlZF9z ZXJpYWw9MAotKwotK29wdF9kcnlfcnVuPWZhbHNlCi0rb3B0X2R1cGxpY2F0ZV9kZXBzPWZhbHNl Ci0rb3B0X3NpbGVudD1mYWxzZQotK29wdF9kZWJ1Zz06Ci0rCi0rIyBJZiB0aGlzIHZhcmlhYmxl IGlzIHNldCBpbiBhbnkgb2YgdGhlIGFjdGlvbnMsIHRoZSBjb21tYW5kIGluIGl0Ci0rIyB3aWxs IGJlIGV4ZWNlZCBhdCB0aGUgZW5kLiAgVGhpcyBwcmV2ZW50cyBoZXJlLWRvY3VtZW50cyBmcm9t IGJlaW5nCi0rIyBsZWZ0IG92ZXIgYnkgc2hlbGxzLgotK2V4ZWNfY21kPQotKwotKyMgZnVuY19m YXRhbF9jb25maWd1cmF0aW9uIGFyZy4uLgotKyMgRWNobyBwcm9ncmFtIG5hbWUgcHJlZml4ZWQg bWVzc2FnZSB0byBzdGFuZGFyZCBlcnJvciwgZm9sbG93ZWQgYnkKLSsjIGEgY29uZmlndXJhdGlv biBmYWlsdXJlIGhpbnQsIGFuZCBleGl0LgotK2Z1bmNfZmF0YWxfY29uZmlndXJhdGlvbiAoKQot K3sKLSsgICAgZnVuY19lcnJvciAkezErIiRAIn0KLSsgICAgZnVuY19lcnJvciAiU2VlIHRoZSAk UEFDS0FHRSBkb2N1bWVudGF0aW9uIGZvciBtb3JlIGluZm9ybWF0aW9uLiIKLSsgICAgZnVuY19m YXRhbF9lcnJvciAiRmF0YWwgY29uZmlndXJhdGlvbiBlcnJvci4iCi0rfQotKwotKwotKyMgZnVu Y19jb25maWcKLSsjIERpc3BsYXkgdGhlIGNvbmZpZ3VyYXRpb24gZm9yIGFsbCB0aGUgdGFncyBp biB0aGlzIHNjcmlwdC4KLStmdW5jX2NvbmZpZyAoKQotK3sKLSsgICAgcmVfYmVnaW5jZj0nXiMg IyMjIEJFR0lOIExJQlRPT0wnCi0rICAgIHJlX2VuZGNmPSdeIyAjIyMgRU5EIExJQlRPT0wnCi0r Ci0rICAgICMgRGVmYXVsdCBjb25maWd1cmF0aW9uLgotKyAgICAkU0VEICIxLC8kcmVfYmVnaW5j ZiBDT05GSUcvZDsvJHJlX2VuZGNmIENPTkZJRy8sXCRkIiA8ICIkcHJvZ3BhdGgiCi0rCi0rICAg ICMgTm93IHByaW50IHRoZSBjb25maWd1cmF0aW9ucyBmb3IgdGhlIHRhZ3MuCi0rICAgIGZvciB0 YWduYW1lIGluICR0YWdsaXN0OyBkbwotKyAgICAgICRTRUQgLW4gIi8kcmVfYmVnaW5jZiBUQUcg Q09ORklHOiAkdGFnbmFtZVwkLywvJHJlX2VuZGNmIFRBRyBDT05GSUc6ICR0YWduYW1lXCQvcCIg PCAiJHByb2dwYXRoIgotKyAgICBkb25lCi0rCi0rICAgIGV4aXQgJD8KLSt9Ci0rCi0rIyBmdW5j X2ZlYXR1cmVzCi0rIyBEaXNwbGF5IHRoZSBmZWF0dXJlcyBzdXBwb3J0ZWQgYnkgdGhpcyBzY3Jp cHQuCi0rZnVuY19mZWF0dXJlcyAoKQotK3sKLSsgICAgJEVDSE8gImhvc3Q6ICRob3N0IgotKyAg ICBpZiB0ZXN0ICIkYnVpbGRfbGlidG9vbF9saWJzIiA9IHllczsgdGhlbgotKyAgICAgICRFQ0hP ICJlbmFibGUgc2hhcmVkIGxpYnJhcmllcyIKLSsgICAgZWxzZQotKyAgICAgICRFQ0hPICJkaXNh YmxlIHNoYXJlZCBsaWJyYXJpZXMiCi0rICAgIGZpCi0rICAgIGlmIHRlc3QgIiRidWlsZF9vbGRf bGlicyIgPSB5ZXM7IHRoZW4KLSsgICAgICAkRUNITyAiZW5hYmxlIHN0YXRpYyBsaWJyYXJpZXMi Ci0rICAgIGVsc2UKLSsgICAgICAkRUNITyAiZGlzYWJsZSBzdGF0aWMgbGlicmFyaWVzIgotKyAg ICBmaQotKwotKyAgICBleGl0ICQ/Ci0rfQotKwotKyMgZnVuY19lbmFibGVfdGFnIHRhZ25hbWUK LSsjIFZlcmlmeSB0aGF0IFRBR05BTUUgaXMgdmFsaWQsIGFuZCBlaXRoZXIgZmxhZyBhbiBlcnJv ciBhbmQgZXhpdCwgb3IKLSsjIGVuYWJsZSB0aGUgVEFHTkFNRSB0YWcuICBXZSBhbHNvIGFkZCBU QUdOQU1FIHRvIHRoZSBnbG9iYWwgJHRhZ2xpc3QKLSsjIHZhcmlhYmxlIGhlcmUuCi0rZnVuY19l bmFibGVfdGFnICgpCi0rewotKyAgIyBHbG9iYWwgdmFyaWFibGU6Ci0rICB0YWduYW1lPSIkMSIK LSsKLSsgIHJlX2JlZ2luY2Y9Il4jICMjIyBCRUdJTiBMSUJUT09MIFRBRyBDT05GSUc6ICR0YWdu YW1lXCQiCi0rICByZV9lbmRjZj0iXiMgIyMjIEVORCBMSUJUT09MIFRBRyBDT05GSUc6ICR0YWdu YW1lXCQiCi0rICBzZWRfZXh0cmFjdGNmPSIvJHJlX2JlZ2luY2YvLC8kcmVfZW5kY2YvcCIKLSsK LSsgICMgVmFsaWRhdGUgdGFnbmFtZS4KLSsgIGNhc2UgJHRhZ25hbWUgaW4KLSsgICAgKlshLV9B LVphLXowLTksL10qKQotKyAgICAgIGZ1bmNfZmF0YWxfZXJyb3IgImludmFsaWQgdGFnIG5hbWU6 ICR0YWduYW1lIgotKyAgICAgIDs7Ci0rICBlc2FjCi0rCi0rICAjIERvbid0IHRlc3QgZm9yIHRo ZSAiZGVmYXVsdCIgQyB0YWcsIGFzIHdlIGtub3cgaXQncwotKyAgIyB0aGVyZSBidXQgbm90IHNw ZWNpYWxseSBtYXJrZWQuCi0rICBjYXNlICR0YWduYW1lIGluCi0rICAgIENDKSA7OwotKyAgICAq KQotKyAgICAgIGlmICRHUkVQICIkcmVfYmVnaW5jZiIgIiRwcm9ncGF0aCIgPi9kZXYvbnVsbCAy PiYxOyB0aGVuCi0rCXRhZ2xpc3Q9IiR0YWdsaXN0ICR0YWduYW1lIgotKwotKwkjIEV2YWx1YXRl IHRoZSBjb25maWd1cmF0aW9uLiAgQmUgY2FyZWZ1bCB0byBxdW90ZSB0aGUgcGF0aAotKwkjIGFu ZCB0aGUgc2VkIHNjcmlwdCwgdG8gYXZvaWQgc3BsaXR0aW5nIG9uIHdoaXRlc3BhY2UsIGJ1dAot KwkjIGFsc28gZG9uJ3QgdXNlIG5vbi1wb3J0YWJsZSBxdW90ZXMgd2l0aGluIGJhY2txdW90ZXMg d2l0aGluCi0rCSMgcXVvdGVzIHdlIGhhdmUgdG8gZG8gaXQgaW4gMiBzdGVwczoKLSsJZXh0cmFj dGVkY2Y9YCRTRUQgLW4gLWUgIiRzZWRfZXh0cmFjdGNmIiA8ICIkcHJvZ3BhdGgiYAotKwlldmFs ICIkZXh0cmFjdGVkY2YiCi0rICAgICAgZWxzZQotKwlmdW5jX2Vycm9yICJpZ25vcmluZyB1bmtu b3duIHRhZyAkdGFnbmFtZSIKLSsgICAgICBmaQotKyAgICAgIDs7Ci0rICBlc2FjCi0rfQotKwot KyMgUGFyc2Ugb3B0aW9ucyBvbmNlLCB0aG9yb3VnaGx5LiAgVGhpcyBjb21lcyBhcyBzb29uIGFz IHBvc3NpYmxlIGluCi0rIyB0aGUgc2NyaXB0IHRvIG1ha2UgdGhpbmdzIGxpa2UgYGxpYnRvb2wg LS12ZXJzaW9uJyBoYXBwZW4gcXVpY2tseS4KLSt7Ci0rCi0rICAjIFNob3J0aGFuZCBmb3IgLS1t b2RlPWZvbywgb25seSB2YWxpZCBhcyB0aGUgZmlyc3QgYXJndW1lbnQKLSsgIGNhc2UgJDEgaW4K LSsgIGNsZWFufGNsZWF8Y2xlfGNsKQotKyAgICBzaGlmdDsgc2V0IGR1bW15IC0tbW9kZSBjbGVh biAkezErIiRAIn07IHNoaWZ0Ci0rICAgIDs7Ci0rICBjb21waWxlfGNvbXBpbHxjb21waXxjb21w fGNvbXxjb3xjKQotKyAgICBzaGlmdDsgc2V0IGR1bW15IC0tbW9kZSBjb21waWxlICR7MSsiJEAi fTsgc2hpZnQKLSsgICAgOzsKLSsgIGV4ZWN1dGV8ZXhlY3V0fGV4ZWN1fGV4ZWN8ZXhlfGV4fGUp Ci0rICAgIHNoaWZ0OyBzZXQgZHVtbXkgLS1tb2RlIGV4ZWN1dGUgJHsxKyIkQCJ9OyBzaGlmdAot KyAgICA7OwotKyAgZmluaXNofGZpbmlzfGZpbml8ZmlufGZpfGYpCi0rICAgIHNoaWZ0OyBzZXQg ZHVtbXkgLS1tb2RlIGZpbmlzaCAkezErIiRAIn07IHNoaWZ0Ci0rICAgIDs7Ci0rICBpbnN0YWxs fGluc3RhbHxpbnN0YXxpbnN0fGluc3xpbnxpKQotKyAgICBzaGlmdDsgc2V0IGR1bW15IC0tbW9k ZSBpbnN0YWxsICR7MSsiJEAifTsgc2hpZnQKLSsgICAgOzsKLSsgIGxpbmt8bGlufGxpfGwpCi0r ICAgIHNoaWZ0OyBzZXQgZHVtbXkgLS1tb2RlIGxpbmsgJHsxKyIkQCJ9OyBzaGlmdAotKyAgICA7 OwotKyAgdW5pbnN0YWxsfHVuaW5zdGFsfHVuaW5zdGF8dW5pbnN0fHVuaW5zfHVuaW58dW5pfHVu fHUpCi0rICAgIHNoaWZ0OyBzZXQgZHVtbXkgLS1tb2RlIHVuaW5zdGFsbCAkezErIiRAIn07IHNo aWZ0Ci0rICAgIDs7Ci0rICBlc2FjCi0rCi0rICAjIFBhcnNlIG5vbi1tb2RlIHNwZWNpZmljIGFy Z3VtZW50czoKLSsgIHdoaWxlIHRlc3QgIiQjIiAtZ3QgMDsgZG8KLSsgICAgb3B0PSIkMSIKLSsg ICAgc2hpZnQKLSsKLSsgICAgY2FzZSAkb3B0IGluCi0rICAgICAgLS1jb25maWcpCQlmdW5jX2Nv bmZpZwkJCQkJOzsKLSsKLSsgICAgICAtLWRlYnVnKQkJcHJlc2VydmVfYXJncz0iJHByZXNlcnZl X2FyZ3MgJG9wdCIKLSsJCQlmdW5jX2VjaG8gImVuYWJsaW5nIHNoZWxsIHRyYWNlIG1vZGUiCi0r CQkJb3B0X2RlYnVnPSdzZXQgLXgnCi0rCQkJJG9wdF9kZWJ1ZwotKwkJCTs7Ci0rCi0rICAgICAg LWRsb3BlbikJCXRlc3QgIiQjIiAtZXEgMCAmJiBmdW5jX21pc3NpbmdfYXJnICIkb3B0IiAmJiBi cmVhawotKwkJCWV4ZWN1dGVfZGxmaWxlcz0iJGV4ZWN1dGVfZGxmaWxlcyAkMSIKLSsJCQlzaGlm dAotKwkJCTs7Ci0rCi0rICAgICAgLS1kcnktcnVuIHwgLW4pCW9wdF9kcnlfcnVuPToJCQkJCTs7 Ci0rICAgICAgLS1mZWF0dXJlcykgICAgICAgZnVuY19mZWF0dXJlcwkJCQkJOzsKLSsgICAgICAt LWZpbmlzaCkJCW1vZGU9ImZpbmlzaCIJCQkJCTs7Ci0rCi0rICAgICAgLS1tb2RlKQkJdGVzdCAi JCMiIC1lcSAwICYmIGZ1bmNfbWlzc2luZ19hcmcgIiRvcHQiICYmIGJyZWFrCi0rCQkJY2FzZSAk MSBpbgotKwkJCSAgIyBWYWxpZCBtb2RlIGFyZ3VtZW50czoKLSsJCQkgIGNsZWFuKQk7OwotKwkJ CSAgY29tcGlsZSkJOzsKLSsJCQkgIGV4ZWN1dGUpCTs7Ci0rCQkJICBmaW5pc2gpCTs7Ci0rCQkJ ICBpbnN0YWxsKQk7OwotKwkJCSAgbGluaykJCTs7Ci0rCQkJICByZWxpbmspCTs7Ci0rCQkJICB1 bmluc3RhbGwpCTs7Ci0rCi0rCQkJICAjIENhdGNoIGFueXRoaW5nIGVsc2UgYXMgYW4gZXJyb3IK LSsJCQkgICopIGZ1bmNfZXJyb3IgImludmFsaWQgYXJndW1lbnQgZm9yICRvcHQiCi0rCQkJICAg ICBleGl0X2NtZD1leGl0Ci0rCQkJICAgICBicmVhawotKwkJCSAgICAgOzsKLSsJCSAgICAgICAg ZXNhYwotKwotKwkJCW1vZGU9IiQxIgotKwkJCXNoaWZ0Ci0rCQkJOzsKLSsKLSsgICAgICAtLXBy ZXNlcnZlLWR1cC1kZXBzKQotKwkJCW9wdF9kdXBsaWNhdGVfZGVwcz06CQkJCTs7Ci0rCi0rICAg ICAgLS1xdWlldHwtLXNpbGVudCkJcHJlc2VydmVfYXJncz0iJHByZXNlcnZlX2FyZ3MgJG9wdCIK LSsJCQlvcHRfc2lsZW50PToKLSsJCQk7OwotKwotKyAgICAgIC0tdmVyYm9zZXwgLXYpCXByZXNl cnZlX2FyZ3M9IiRwcmVzZXJ2ZV9hcmdzICRvcHQiCi0rCQkJb3B0X3NpbGVudD1mYWxzZQotKwkJ CTs7Ci0rCi0rICAgICAgLS10YWcpCQl0ZXN0ICIkIyIgLWVxIDAgJiYgZnVuY19taXNzaW5nX2Fy ZyAiJG9wdCIgJiYgYnJlYWsKLSsJCQlwcmVzZXJ2ZV9hcmdzPSIkcHJlc2VydmVfYXJncyAkb3B0 ICQxIgotKwkJCWZ1bmNfZW5hYmxlX3RhZyAiJDEiCSMgdGFnbmFtZSBpcyBzZXQgaGVyZQotKwkJ CXNoaWZ0Ci0rCQkJOzsKLSsKLSsgICAgICAjIFNlcGFyYXRlIG9wdGFyZ3MgdG8gbG9uZyBvcHRp b25zOgotKyAgICAgIC1kbG9wZW49KnwtLW1vZGU9KnwtLXRhZz0qKQotKwkJCWZ1bmNfb3B0X3Nw bGl0ICIkb3B0IgotKwkJCXNldCBkdW1teSAiJGZ1bmNfb3B0X3NwbGl0X29wdCIgIiRmdW5jX29w dF9zcGxpdF9hcmciICR7MSsiJEAifQotKwkJCXNoaWZ0Ci0rCQkJOzsKLSsKLSsgICAgICAtXD98 LWgpCQlmdW5jX3VzYWdlCQkJCQk7OwotKyAgICAgIC0taGVscCkJCW9wdF9oZWxwPToJCQkJCTs7 Ci0rICAgICAgLS12ZXJzaW9uKQlmdW5jX3ZlcnNpb24JCQkJCTs7Ci0rCi0rICAgICAgLSopCQlm dW5jX2ZhdGFsX2hlbHAgInVucmVjb2duaXplZCBvcHRpb24gXGAkb3B0JyIJOzsKLSsKLSsgICAg ICAqKQkJbm9ub3B0PSIkb3B0IgotKwkJCWJyZWFrCi0rCQkJOzsKLSsgICAgZXNhYwotKyAgZG9u ZQotKwotKwotKyAgY2FzZSAkaG9zdCBpbgotKyAgICAqY3lnd2luKiB8ICptaW5ndyogfCAqcHcz MiogfCAqY2VnY2MqKQotKyAgICAgICMgZG9uJ3QgZWxpbWluYXRlIGR1cGxpY2F0aW9ucyBpbiAk cG9zdGRlcHMgYW5kICRwcmVkZXBzCi0rICAgICAgb3B0X2R1cGxpY2F0ZV9jb21waWxlcl9nZW5l cmF0ZWRfZGVwcz06Ci0rICAgICAgOzsKLSsgICAgKikKLSsgICAgICBvcHRfZHVwbGljYXRlX2Nv bXBpbGVyX2dlbmVyYXRlZF9kZXBzPSRvcHRfZHVwbGljYXRlX2RlcHMKLSsgICAgICA7OwotKyAg ZXNhYwotKwotKyAgIyBIYXZpbmcgd2FybmVkIGFib3V0IGFsbCBtaXMtc3BlY2lmaWVkIG9wdGlv bnMsIGJhaWwgb3V0IGlmCi0rICAjIGFueXRoaW5nIHdhcyB3cm9uZy4KLSsgICRleGl0X2NtZCAk RVhJVF9GQUlMVVJFCi0rfQotKwotKyMgZnVuY19jaGVja192ZXJzaW9uX21hdGNoCi0rIyBFbnN1 cmUgdGhhdCB3ZSBhcmUgdXNpbmcgbTQgbWFjcm9zLCBhbmQgbGlidG9vbCBzY3JpcHQgZnJvbSB0 aGUgc2FtZQotKyMgcmVsZWFzZSBvZiBsaWJ0b29sLgotK2Z1bmNfY2hlY2tfdmVyc2lvbl9tYXRj aCAoKQotK3sKLSsgIGlmIHRlc3QgIiRwYWNrYWdlX3JldmlzaW9uIiAhPSAiJG1hY3JvX3Jldmlz aW9uIjsgdGhlbgotKyAgICBpZiB0ZXN0ICIkVkVSU0lPTiIgIT0gIiRtYWNyb192ZXJzaW9uIjsg dGhlbgotKyAgICAgIGlmIHRlc3QgLXogIiRtYWNyb192ZXJzaW9uIjsgdGhlbgotKyAgICAgICAg Y2F0ID4mMiA8PF9MVF9FT0YKLSskcHJvZ25hbWU6IFZlcnNpb24gbWlzbWF0Y2ggZXJyb3IuICBU aGlzIGlzICRQQUNLQUdFICRWRVJTSU9OLCBidXQgdGhlCi0rJHByb2duYW1lOiBkZWZpbml0aW9u IG9mIHRoaXMgTFRfSU5JVCBjb21lcyBmcm9tIGFuIG9sZGVyIHJlbGVhc2UuCi0rJHByb2duYW1l OiBZb3Ugc2hvdWxkIHJlY3JlYXRlIGFjbG9jYWwubTQgd2l0aCBtYWNyb3MgZnJvbSAkUEFDS0FH RSAkVkVSU0lPTgotKyRwcm9nbmFtZTogYW5kIHJ1biBhdXRvY29uZiBhZ2Fpbi4KLStfTFRfRU9G Ci0rICAgICAgZWxzZQotKyAgICAgICAgY2F0ID4mMiA8PF9MVF9FT0YKLSskcHJvZ25hbWU6IFZl cnNpb24gbWlzbWF0Y2ggZXJyb3IuICBUaGlzIGlzICRQQUNLQUdFICRWRVJTSU9OLCBidXQgdGhl Ci0rJHByb2duYW1lOiBkZWZpbml0aW9uIG9mIHRoaXMgTFRfSU5JVCBjb21lcyBmcm9tICRQQUNL QUdFICRtYWNyb192ZXJzaW9uLgotKyRwcm9nbmFtZTogWW91IHNob3VsZCByZWNyZWF0ZSBhY2xv Y2FsLm00IHdpdGggbWFjcm9zIGZyb20gJFBBQ0tBR0UgJFZFUlNJT04KLSskcHJvZ25hbWU6IGFu ZCBydW4gYXV0b2NvbmYgYWdhaW4uCi0rX0xUX0VPRgotKyAgICAgIGZpCi0rICAgIGVsc2UKLSsg ICAgICBjYXQgPiYyIDw8X0xUX0VPRgotKyRwcm9nbmFtZTogVmVyc2lvbiBtaXNtYXRjaCBlcnJv ci4gIFRoaXMgaXMgJFBBQ0tBR0UgJFZFUlNJT04sIHJldmlzaW9uICRwYWNrYWdlX3JldmlzaW9u LAotKyRwcm9nbmFtZTogYnV0IHRoZSBkZWZpbml0aW9uIG9mIHRoaXMgTFRfSU5JVCBjb21lcyBm cm9tIHJldmlzaW9uICRtYWNyb19yZXZpc2lvbi4KLSskcHJvZ25hbWU6IFlvdSBzaG91bGQgcmVj cmVhdGUgYWNsb2NhbC5tNCB3aXRoIG1hY3JvcyBmcm9tIHJldmlzaW9uICRwYWNrYWdlX3Jldmlz aW9uCi0rJHByb2duYW1lOiBvZiAkUEFDS0FHRSAkVkVSU0lPTiBhbmQgcnVuIGF1dG9jb25mIGFn YWluLgotK19MVF9FT0YKLSsgICAgZmkKLSsKLSsgICAgZXhpdCAkRVhJVF9NSVNNQVRDSAotKyAg ZmkKLSt9Ci0rCi0rCi0rIyMgLS0tLS0tLS0tLS0gIyMKLSsjIyAgICBNYWluLiAgICAjIwotKyMj IC0tLS0tLS0tLS0tICMjCi0rCi0rJG9wdF9oZWxwIHx8IHsKLSsgICMgU2FuaXR5IGNoZWNrcyBm aXJzdDoKLSsgIGZ1bmNfY2hlY2tfdmVyc2lvbl9tYXRjaAotKwotKyAgaWYgdGVzdCAiJGJ1aWxk X2xpYnRvb2xfbGlicyIgIT0geWVzICYmIHRlc3QgIiRidWlsZF9vbGRfbGlicyIgIT0geWVzOyB0 aGVuCi0rICAgIGZ1bmNfZmF0YWxfY29uZmlndXJhdGlvbiAibm90IGNvbmZpZ3VyZWQgdG8gYnVp bGQgYW55IGtpbmQgb2YgbGlicmFyeSIKLSsgIGZpCi0rCi0rICB0ZXN0IC16ICIkbW9kZSIgJiYg ZnVuY19mYXRhbF9lcnJvciAiZXJyb3I6IHlvdSBtdXN0IHNwZWNpZnkgYSBNT0RFLiIKLSsKLSsK LSsgICMgRGFyd2luIHN1Y2tzCi0rICBldmFsIHN0ZF9zaHJleHQ9XCIkc2hyZXh0X2NtZHNcIgot KwotKwotKyAgIyBPbmx5IGV4ZWN1dGUgbW9kZSBpcyBhbGxvd2VkIHRvIGhhdmUgLWRsb3BlbiBm bGFncy4KLSsgIGlmIHRlc3QgLW4gIiRleGVjdXRlX2RsZmlsZXMiICYmIHRlc3QgIiRtb2RlIiAh PSBleGVjdXRlOyB0aGVuCi0rICAgIGZ1bmNfZXJyb3IgInVucmVjb2duaXplZCBvcHRpb24gXGAt ZGxvcGVuJyIKLSsgICAgJEVDSE8gIiRoZWxwIiAxPiYyCi0rICAgIGV4aXQgJEVYSVRfRkFJTFVS RQotKyAgZmkKLSsKLSsgICMgQ2hhbmdlIHRoZSBoZWxwIG1lc3NhZ2UgdG8gYSBtb2RlLXNwZWNp ZmljIG9uZS4KLSsgIGdlbmVyaWNfaGVscD0iJGhlbHAiCi0rICBoZWxwPSJUcnkgXGAkcHJvZ25h bWUgLS1oZWxwIC0tbW9kZT0kbW9kZScgZm9yIG1vcmUgaW5mb3JtYXRpb24uIgotK30KLSsKLSsK LSsjIGZ1bmNfbGFsaWJfcCBmaWxlCi0rIyBUcnVlIGlmZiBGSUxFIGlzIGEgbGlidG9vbCBgLmxh JyBsaWJyYXJ5IG9yIGAubG8nIG9iamVjdCBmaWxlLgotKyMgVGhpcyBmdW5jdGlvbiBpcyBvbmx5 IGEgYmFzaWMgc2FuaXR5IGNoZWNrOyBpdCB3aWxsIGhhcmRseSBmbHVzaCBvdXQKLSsjIGRldGVy bWluZWQgaW1wb3N0ZXJzLgotK2Z1bmNfbGFsaWJfcCAoKQotK3sKLSsgICAgdGVzdCAtZiAiJDEi ICYmCi0rICAgICAgJFNFRCAtZSA0cSAiJDEiIDI+L2Rldi9udWxsIFwKLSsgICAgICAgIHwgJEdS RVAgIl4jIEdlbmVyYXRlZCBieSAuKiRQQUNLQUdFIiA+IC9kZXYvbnVsbCAyPiYxCi0rfQotKwot KyMgZnVuY19sYWxpYl91bnNhZmVfcCBmaWxlCi0rIyBUcnVlIGlmZiBGSUxFIGlzIGEgbGlidG9v bCBgLmxhJyBsaWJyYXJ5IG9yIGAubG8nIG9iamVjdCBmaWxlLgotKyMgVGhpcyBmdW5jdGlvbiBp bXBsZW1lbnRzIHRoZSBzYW1lIGNoZWNrIGFzIGZ1bmNfbGFsaWJfcCB3aXRob3V0Ci0rIyByZXNv cnRpbmcgdG8gZXh0ZXJuYWwgcHJvZ3JhbXMuICBUbyB0aGlzIGVuZCwgaXQgcmVkaXJlY3RzIHN0 ZGluIGFuZAotKyMgY2xvc2VzIGl0IGFmdGVyd2FyZHMsIHdpdGhvdXQgc2F2aW5nIHRoZSBvcmln aW5hbCBmaWxlIGRlc2NyaXB0b3IuCi0rIyBBcyBhIHNhZmV0eSBtZWFzdXJlLCB1c2UgaXQgb25s eSB3aGVyZSBhIG5lZ2F0aXZlIHJlc3VsdCB3b3VsZCBiZQotKyMgZmF0YWwgYW55d2F5LiAgV29y a3MgaWYgYGZpbGUnIGRvZXMgbm90IGV4aXN0LgotK2Z1bmNfbGFsaWJfdW5zYWZlX3AgKCkKLSt7 Ci0rICAgIGxhbGliX3A9bm8KLSsgICAgaWYgdGVzdCAtZiAiJDEiICYmIHRlc3QgLXIgIiQxIiAm JiBleGVjIDU8JjAgPCIkMSI7IHRoZW4KLSsJZm9yIGxhbGliX3BfbCBpbiAxIDIgMyA0Ci0rCWRv Ci0rCSAgICByZWFkIGxhbGliX3BfbGluZQotKwkgICAgY2FzZSAiJGxhbGliX3BfbGluZSIgaW4K LSsJCVwjXCBHZW5lcmF0ZWRcIGJ5XCAqJFBBQ0tBR0UqICkgbGFsaWJfcD15ZXM7IGJyZWFrOzsK LSsJICAgIGVzYWMKLSsJZG9uZQotKwlleGVjIDA8JjUgNTwmLQotKyAgICBmaQotKyAgICB0ZXN0 ICIkbGFsaWJfcCIgPSB5ZXMKLSt9Ci0rCi0rIyBmdW5jX2x0d3JhcHBlcl9zY3JpcHRfcCBmaWxl Ci0rIyBUcnVlIGlmZiBGSUxFIGlzIGEgbGlidG9vbCB3cmFwcGVyIHNjcmlwdAotKyMgVGhpcyBm dW5jdGlvbiBpcyBvbmx5IGEgYmFzaWMgc2FuaXR5IGNoZWNrOyBpdCB3aWxsIGhhcmRseSBmbHVz aCBvdXQKLSsjIGRldGVybWluZWQgaW1wb3N0ZXJzLgotK2Z1bmNfbHR3cmFwcGVyX3NjcmlwdF9w ICgpCi0rewotKyAgICBmdW5jX2xhbGliX3AgIiQxIgotK30KLSsKLSsjIGZ1bmNfbHR3cmFwcGVy X2V4ZWN1dGFibGVfcCBmaWxlCi0rIyBUcnVlIGlmZiBGSUxFIGlzIGEgbGlidG9vbCB3cmFwcGVy IGV4ZWN1dGFibGUKLSsjIFRoaXMgZnVuY3Rpb24gaXMgb25seSBhIGJhc2ljIHNhbml0eSBjaGVj azsgaXQgd2lsbCBoYXJkbHkgZmx1c2ggb3V0Ci0rIyBkZXRlcm1pbmVkIGltcG9zdGVycy4KLStm dW5jX2x0d3JhcHBlcl9leGVjdXRhYmxlX3AgKCkKLSt7Ci0rICAgIGZ1bmNfbHR3cmFwcGVyX2V4 ZWNfc3VmZml4PQotKyAgICBjYXNlICQxIGluCi0rICAgICouZXhlKSA7OwotKyAgICAqKSBmdW5j X2x0d3JhcHBlcl9leGVjX3N1ZmZpeD0uZXhlIDs7Ci0rICAgIGVzYWMKLSsgICAgJEdSRVAgIiRt YWdpY19leGUiICIkMSRmdW5jX2x0d3JhcHBlcl9leGVjX3N1ZmZpeCIgPi9kZXYvbnVsbCAyPiYx Ci0rfQotKwotKyMgZnVuY19sdHdyYXBwZXJfc2NyaXB0bmFtZSBmaWxlCi0rIyBBc3N1bWVzIGZp bGUgaXMgYW4gbHR3cmFwcGVyX2V4ZWN1dGFibGUKLSsjIHVzZXMgJGZpbGUgdG8gZGV0ZXJtaW5l IHRoZSBhcHByb3ByaWF0ZSBmaWxlbmFtZSBmb3IgYQotKyMgdGVtcG9yYXJ5IGx0d3JhcHBlcl9z Y3JpcHQuCi0rZnVuY19sdHdyYXBwZXJfc2NyaXB0bmFtZSAoKQotK3sKLSsgICAgZnVuY19sdHdy YXBwZXJfc2NyaXB0bmFtZV9yZXN1bHQ9IiIKLSsgICAgaWYgZnVuY19sdHdyYXBwZXJfZXhlY3V0 YWJsZV9wICIkMSI7IHRoZW4KLSsJZnVuY19kaXJuYW1lX2FuZF9iYXNlbmFtZSAiJDEiICIiICIu IgotKwlmdW5jX3N0cmlwbmFtZSAnJyAnLmV4ZScgIiRmdW5jX2Jhc2VuYW1lX3Jlc3VsdCIKLSsJ ZnVuY19sdHdyYXBwZXJfc2NyaXB0bmFtZV9yZXN1bHQ9IiRmdW5jX2Rpcm5hbWVfcmVzdWx0LyRv YmpkaXIvJHtmdW5jX3N0cmlwbmFtZV9yZXN1bHR9X2x0c2h3cmFwcGVyIgotKyAgICBmaQotK30K LSsKLSsjIGZ1bmNfbHR3cmFwcGVyX3AgZmlsZQotKyMgVHJ1ZSBpZmYgRklMRSBpcyBhIGxpYnRv b2wgd3JhcHBlciBzY3JpcHQgb3Igd3JhcHBlciBleGVjdXRhYmxlCi0rIyBUaGlzIGZ1bmN0aW9u IGlzIG9ubHkgYSBiYXNpYyBzYW5pdHkgY2hlY2s7IGl0IHdpbGwgaGFyZGx5IGZsdXNoIG91dAot KyMgZGV0ZXJtaW5lZCBpbXBvc3RlcnMuCi0rZnVuY19sdHdyYXBwZXJfcCAoKQotK3sKLSsgICAg ZnVuY19sdHdyYXBwZXJfc2NyaXB0X3AgIiQxIiB8fCBmdW5jX2x0d3JhcHBlcl9leGVjdXRhYmxl X3AgIiQxIgotK30KLSsKLSsKLSsjIGZ1bmNfZXhlY3V0ZV9jbWRzIGNvbW1hbmRzIGZhaWxfY21k Ci0rIyBFeGVjdXRlIHRpbGRlLWRlbGltaXRlZCBDT01NQU5EUy4KLSsjIElmIEZBSUxfQ01EIGlz IGdpdmVuLCBldmFsIHRoYXQgdXBvbiBmYWlsdXJlLgotKyMgRkFJTF9DTUQgbWF5IHJlYWQtYWNj ZXNzIHRoZSBjdXJyZW50IGNvbW1hbmQgaW4gdmFyaWFibGUgQ01EIQotK2Z1bmNfZXhlY3V0ZV9j bWRzICgpCi0rewotKyAgICAkb3B0X2RlYnVnCi0rICAgIHNhdmVfaWZzPSRJRlM7IElGUz0nficK LSsgICAgZm9yIGNtZCBpbiAkMTsgZG8KLSsgICAgICBJRlM9JHNhdmVfaWZzCi0rICAgICAgZXZh bCBjbWQ9XCIkY21kXCIKLSsgICAgICBmdW5jX3Nob3dfZXZhbCAiJGNtZCIgIiR7Mi06fSIKLSsg ICAgZG9uZQotKyAgICBJRlM9JHNhdmVfaWZzCi0rfQotKwotKwotKyMgZnVuY19zb3VyY2UgZmls ZQotKyMgU291cmNlIEZJTEUsIGFkZGluZyBkaXJlY3RvcnkgY29tcG9uZW50IGlmIG5lY2Vzc2Fy eS4KLSsjIE5vdGUgdGhhdCBpdCBpcyBub3QgbmVjZXNzYXJ5IG9uIGN5Z3dpbi9taW5ndyB0byBh cHBlbmQgYSBkb3QgdG8KLSsjIEZJTEUgZXZlbiBpZiBib3RoIEZJTEUgYW5kIEZJTEUuZXhlIGV4 aXN0OiBhdXRvbWF0aWMtYXBwZW5kLS5leGUKLSsjIGJlaGF2aW9yIGhhcHBlbnMgb25seSBmb3Ig ZXhlYygzKSwgbm90IGZvciBvcGVuKDIpISAgQWxzbywgc291cmNpbmcKLSsjIGBGSUxFLicgZG9l cyBub3Qgd29yayBvbiBjeWd3aW4gbWFuYWdlZCBtb3VudHMuCi0rZnVuY19zb3VyY2UgKCkKLSt7 Ci0rICAgICRvcHRfZGVidWcKLSsgICAgY2FzZSAkMSBpbgotKyAgICAqLyogfCAqXFwqKQkuICIk MSIgOzsKLSsgICAgKikJCS4gIi4vJDEiIDs7Ci0rICAgIGVzYWMKLSt9Ci0rCi0rCi0rIyBmdW5j X2luZmVyX3RhZyBhcmcKLSsjIEluZmVyIHRhZ2dlZCBjb25maWd1cmF0aW9uIHRvIHVzZSBpZiBh bnkgYXJlIGF2YWlsYWJsZSBhbmQKLSsjIGlmIG9uZSB3YXNuJ3QgY2hvc2VuIHZpYSB0aGUgIi0t dGFnIiBjb21tYW5kIGxpbmUgb3B0aW9uLgotKyMgT25seSBhdHRlbXB0IHRoaXMgaWYgdGhlIGNv bXBpbGVyIGluIHRoZSBiYXNlIGNvbXBpbGUKLSsjIGNvbW1hbmQgZG9lc24ndCBtYXRjaCB0aGUg ZGVmYXVsdCBjb21waWxlci4KLSsjIGFyZyBpcyB1c3VhbGx5IG9mIHRoZSBmb3JtICdnY2MgLi4u JwotK2Z1bmNfaW5mZXJfdGFnICgpCi0rewotKyAgICAkb3B0X2RlYnVnCi0rICAgIGlmIHRlc3Qg LW4gIiRhdmFpbGFibGVfdGFncyIgJiYgdGVzdCAteiAiJHRhZ25hbWUiOyB0aGVuCi0rICAgICAg Q0NfcXVvdGVkPQotKyAgICAgIGZvciBhcmcgaW4gJENDOyBkbwotKyAgICAgICAgZnVuY19xdW90 ZV9mb3JfZXZhbCAiJGFyZyIKLSsJQ0NfcXVvdGVkPSIkQ0NfcXVvdGVkICRmdW5jX3F1b3RlX2Zv cl9ldmFsX3Jlc3VsdCIKLSsgICAgICBkb25lCi0rICAgICAgY2FzZSAkQCBpbgotKyAgICAgICMg QmxhbmtzIGluIHRoZSBjb21tYW5kIG1heSBoYXZlIGJlZW4gc3RyaXBwZWQgYnkgdGhlIGNhbGxp bmcgc2hlbGwsCi0rICAgICAgIyBidXQgbm90IGZyb20gdGhlIENDIGVudmlyb25tZW50IHZhcmlh YmxlIHdoZW4gY29uZmlndXJlIHdhcyBydW4uCi0rICAgICAgIiAkQ0MgIiogfCAiJENDICIqIHwg IiBgJEVDSE8gJENDYCAiKiB8ICJgJEVDSE8gJENDYCAiKiB8ICIgJENDX3F1b3RlZCIqIHwgIiRD Q19xdW90ZWQgIiogfCAiIGAkRUNITyAkQ0NfcXVvdGVkYCAiKiB8ICJgJEVDSE8gJENDX3F1b3Rl ZGAgIiopIDs7Ci0rICAgICAgIyBCbGFua3MgYXQgdGhlIHN0YXJ0IG9mICRiYXNlX2NvbXBpbGUg d2lsbCBjYXVzZSB0aGlzIHRvIGZhaWwKLSsgICAgICAjIGlmIHdlIGRvbid0IGNoZWNrIGZvciB0 aGVtIGFzIHdlbGwuCi0rICAgICAgKikKLSsJZm9yIHogaW4gJGF2YWlsYWJsZV90YWdzOyBkbwot KwkgIGlmICRHUkVQICJeIyAjIyMgQkVHSU4gTElCVE9PTCBUQUcgQ09ORklHOiAkeiQiIDwgIiRw cm9ncGF0aCIgPiAvZGV2L251bGw7IHRoZW4KLSsJICAgICMgRXZhbHVhdGUgdGhlIGNvbmZpZ3Vy YXRpb24uCi0rCSAgICBldmFsICJgJHtTRUR9IC1uIC1lICcvXiMgIyMjIEJFR0lOIExJQlRPT0wg VEFHIENPTkZJRzogJyR6JyQvLC9eIyAjIyMgRU5EIExJQlRPT0wgVEFHIENPTkZJRzogJyR6JyQv cCcgPCAkcHJvZ3BhdGhgIgotKwkgICAgQ0NfcXVvdGVkPQotKwkgICAgZm9yIGFyZyBpbiAkQ0M7 IGRvCi0rCSAgICAgICMgRG91YmxlLXF1b3RlIGFyZ3MgY29udGFpbmluZyBvdGhlciBzaGVsbCBt ZXRhY2hhcmFjdGVycy4KLSsJICAgICAgZnVuY19xdW90ZV9mb3JfZXZhbCAiJGFyZyIKLSsJICAg ICAgQ0NfcXVvdGVkPSIkQ0NfcXVvdGVkICRmdW5jX3F1b3RlX2Zvcl9ldmFsX3Jlc3VsdCIKLSsJ ICAgIGRvbmUKLSsJICAgIGNhc2UgIiRAICIgaW4KLSsJICAgICAgIiAkQ0MgIiogfCAiJENDICIq IHwgIiBgJEVDSE8gJENDYCAiKiB8ICJgJEVDSE8gJENDYCAiKiB8ICIgJENDX3F1b3RlZCIqIHwg IiRDQ19xdW90ZWQgIiogfCAiIGAkRUNITyAkQ0NfcXVvdGVkYCAiKiB8ICJgJEVDSE8gJENDX3F1 b3RlZGAgIiopCi0rCSAgICAgICMgVGhlIGNvbXBpbGVyIGluIHRoZSBiYXNlIGNvbXBpbGUgY29t bWFuZCBtYXRjaGVzCi0rCSAgICAgICMgdGhlIG9uZSBpbiB0aGUgdGFnZ2VkIGNvbmZpZ3VyYXRp b24uCi0rCSAgICAgICMgQXNzdW1lIHRoaXMgaXMgdGhlIHRhZ2dlZCBjb25maWd1cmF0aW9uIHdl IHdhbnQuCi0rCSAgICAgIHRhZ25hbWU9JHoKLSsJICAgICAgYnJlYWsKLSsJICAgICAgOzsKLSsJ ICAgIGVzYWMKLSsJICBmaQotKwlkb25lCi0rCSMgSWYgJHRhZ25hbWUgc3RpbGwgaXNuJ3Qgc2V0 LCB0aGVuIG5vIHRhZ2dlZCBjb25maWd1cmF0aW9uCi0rCSMgd2FzIGZvdW5kIGFuZCBsZXQgdGhl IHVzZXIga25vdyB0aGF0IHRoZSAiLS10YWciIGNvbW1hbmQKLSsJIyBsaW5lIG9wdGlvbiBtdXN0 IGJlIHVzZWQuCi0rCWlmIHRlc3QgLXogIiR0YWduYW1lIjsgdGhlbgotKwkgIGZ1bmNfZWNobyAi dW5hYmxlIHRvIGluZmVyIHRhZ2dlZCBjb25maWd1cmF0aW9uIgotKwkgIGZ1bmNfZmF0YWxfZXJy b3IgInNwZWNpZnkgYSB0YWcgd2l0aCBcYC0tdGFnJyIKLSsjCWVsc2UKLSsjCSAgZnVuY192ZXJi b3NlICJ1c2luZyAkdGFnbmFtZSB0YWdnZWQgY29uZmlndXJhdGlvbiIKLSsJZmkKLSsJOzsKLSsg ICAgICBlc2FjCi0rICAgIGZpCi0rfQotKwotKwotKwotKyMgZnVuY193cml0ZV9saWJ0b29sX29i amVjdCBvdXRwdXRfbmFtZSBwaWNfbmFtZSBub25waWNfbmFtZQotKyMgQ3JlYXRlIGEgbGlidG9v bCBvYmplY3QgZmlsZSAoYW5hbG9nb3VzIHRvIGEgIi5sYSIgZmlsZSksCi0rIyBidXQgZG9uJ3Qg Y3JlYXRlIGl0IGlmIHdlJ3JlIGRvaW5nIGEgZHJ5IHJ1bi4KLStmdW5jX3dyaXRlX2xpYnRvb2xf b2JqZWN0ICgpCi0rewotKyAgICB3cml0ZV9saWJvYmo9JHsxfQotKyAgICBpZiB0ZXN0ICIkYnVp bGRfbGlidG9vbF9saWJzIiA9IHllczsgdGhlbgotKyAgICAgIHdyaXRlX2xvYmo9XCckezJ9XCcK LSsgICAgZWxzZQotKyAgICAgIHdyaXRlX2xvYmo9bm9uZQotKyAgICBmaQotKwotKyAgICBpZiB0 ZXN0ICIkYnVpbGRfb2xkX2xpYnMiID0geWVzOyB0aGVuCi0rICAgICAgd3JpdGVfb2xkb2JqPVwn JHszfVwnCi0rICAgIGVsc2UKLSsgICAgICB3cml0ZV9vbGRvYmo9bm9uZQotKyAgICBmaQotKwot KyAgICAkb3B0X2RyeV9ydW4gfHwgewotKyAgICAgIGNhdCA+JHt3cml0ZV9saWJvYmp9VCA8PEVP RgotKyMgJHdyaXRlX2xpYm9iaiAtIGEgbGlidG9vbCBvYmplY3QgZmlsZQotKyMgR2VuZXJhdGVk IGJ5ICRQUk9HUkFNIChHTlUgJFBBQ0tBR0UkVElNRVNUQU1QKSAkVkVSU0lPTgotKyMKLSsjIFBs ZWFzZSBETyBOT1QgZGVsZXRlIHRoaXMgZmlsZSEKLSsjIEl0IGlzIG5lY2Vzc2FyeSBmb3IgbGlu a2luZyB0aGUgbGlicmFyeS4KLSsKLSsjIE5hbWUgb2YgdGhlIFBJQyBvYmplY3QuCi0rcGljX29i amVjdD0kd3JpdGVfbG9iagotKwotKyMgTmFtZSBvZiB0aGUgbm9uLVBJQyBvYmplY3QKLStub25f cGljX29iamVjdD0kd3JpdGVfb2xkb2JqCi0rCi0rRU9GCi0rICAgICAgJE1WICIke3dyaXRlX2xp Ym9ian1UIiAiJHt3cml0ZV9saWJvYmp9IgotKyAgICB9Ci0rfQotKwotKyMgZnVuY19tb2RlX2Nv bXBpbGUgYXJnLi4uCi0rZnVuY19tb2RlX2NvbXBpbGUgKCkKLSt7Ci0rICAgICRvcHRfZGVidWcK LSsgICAgIyBHZXQgdGhlIGNvbXBpbGF0aW9uIGNvbW1hbmQgYW5kIHRoZSBzb3VyY2UgZmlsZS4K LSsgICAgYmFzZV9jb21waWxlPQotKyAgICBzcmNmaWxlPSIkbm9ub3B0IiAgIyAgYWx3YXlzIGtl ZXAgYSBub24tZW1wdHkgdmFsdWUgaW4gInNyY2ZpbGUiCi0rICAgIHN1cHByZXNzX29wdD15ZXMK LSsgICAgc3VwcHJlc3Nfb3V0cHV0PQotKyAgICBhcmdfbW9kZT1ub3JtYWwKLSsgICAgbGlib2Jq PQotKyAgICBsYXRlcj0KLSsgICAgcGllX2ZsYWc9Ci0rCi0rICAgIGZvciBhcmcKLSsgICAgZG8K LSsgICAgICBjYXNlICRhcmdfbW9kZSBpbgotKyAgICAgIGFyZyAgKQotKwkjIGRvIG5vdCAiY29u dGludWUiLiAgSW5zdGVhZCwgYWRkIHRoaXMgdG8gYmFzZV9jb21waWxlCi0rCWxhc3Rhcmc9IiRh cmciCi0rCWFyZ19tb2RlPW5vcm1hbAotKwk7OwotKwotKyAgICAgIHRhcmdldCApCi0rCWxpYm9i aj0iJGFyZyIKLSsJYXJnX21vZGU9bm9ybWFsCi0rCWNvbnRpbnVlCi0rCTs7Ci0rCi0rICAgICAg bm9ybWFsICkKLSsJIyBBY2NlcHQgYW55IGNvbW1hbmQtbGluZSBvcHRpb25zLgotKwljYXNlICRh cmcgaW4KLSsJLW8pCi0rCSAgdGVzdCAtbiAiJGxpYm9iaiIgJiYgXAotKwkgICAgZnVuY19mYXRh bF9lcnJvciAieW91IGNhbm5vdCBzcGVjaWZ5IFxgLW8nIG1vcmUgdGhhbiBvbmNlIgotKwkgIGFy Z19tb2RlPXRhcmdldAotKwkgIGNvbnRpbnVlCi0rCSAgOzsKLSsKLSsJLXBpZSB8IC1mcGllIHwg LWZQSUUpCi0rICAgICAgICAgIHBpZV9mbGFnPSIkcGllX2ZsYWcgJGFyZyIKLSsJICBjb250aW51 ZQotKwkgIDs7Ci0rCi0rCS1zaGFyZWQgfCAtc3RhdGljIHwgLXByZWZlci1waWMgfCAtcHJlZmVy LW5vbi1waWMpCi0rCSAgbGF0ZXI9IiRsYXRlciAkYXJnIgotKwkgIGNvbnRpbnVlCi0rCSAgOzsK LSsKLSsJLW5vLXN1cHByZXNzKQotKwkgIHN1cHByZXNzX29wdD1ubwotKwkgIGNvbnRpbnVlCi0r CSAgOzsKLSsKLSsJLVhjb21waWxlcikKLSsJICBhcmdfbW9kZT1hcmcgICMgIHRoZSBuZXh0IG9u ZSBnb2VzIGludG8gdGhlICJiYXNlX2NvbXBpbGUiIGFyZyBsaXN0Ci0rCSAgY29udGludWUgICAg ICAjICBUaGUgY3VycmVudCAic3JjZmlsZSIgd2lsbCBlaXRoZXIgYmUgcmV0YWluZWQgb3IKLSsJ ICA7OyAgICAgICAgICAgICMgIHJlcGxhY2VkIGxhdGVyLiAgSSB3b3VsZCBndWVzcyB0aGF0IHdv dWxkIGJlIGEgYnVnLgotKwotKwktV2MsKikKLSsJICBmdW5jX3N0cmlwbmFtZSAnLVdjLCcgJycg IiRhcmciCi0rCSAgYXJncz0kZnVuY19zdHJpcG5hbWVfcmVzdWx0Ci0rCSAgbGFzdGFyZz0KLSsJ ICBzYXZlX2lmcz0iJElGUyI7IElGUz0nLCcKLSsJICBmb3IgYXJnIGluICRhcmdzOyBkbwotKwkg ICAgSUZTPSIkc2F2ZV9pZnMiCi0rCSAgICBmdW5jX3F1b3RlX2Zvcl9ldmFsICIkYXJnIgotKwkg ICAgbGFzdGFyZz0iJGxhc3RhcmcgJGZ1bmNfcXVvdGVfZm9yX2V2YWxfcmVzdWx0IgotKwkgIGRv bmUKLSsJICBJRlM9IiRzYXZlX2lmcyIKLSsJICBmdW5jX3N0cmlwbmFtZSAnICcgJycgIiRsYXN0 YXJnIgotKwkgIGxhc3Rhcmc9JGZ1bmNfc3RyaXBuYW1lX3Jlc3VsdAotKwotKwkgICMgQWRkIHRo ZSBhcmd1bWVudHMgdG8gYmFzZV9jb21waWxlLgotKwkgIGJhc2VfY29tcGlsZT0iJGJhc2VfY29t cGlsZSAkbGFzdGFyZyIKLSsJICBjb250aW51ZQotKwkgIDs7Ci0rCi0rCSopCi0rCSAgIyBBY2Nl cHQgdGhlIGN1cnJlbnQgYXJndW1lbnQgYXMgdGhlIHNvdXJjZSBmaWxlLgotKwkgICMgVGhlIHBy ZXZpb3VzICJzcmNmaWxlIiBiZWNvbWVzIHRoZSBjdXJyZW50IGFyZ3VtZW50LgotKwkgICMKLSsJ ICBsYXN0YXJnPSIkc3JjZmlsZSIKLSsJICBzcmNmaWxlPSIkYXJnIgotKwkgIDs7Ci0rCWVzYWMg ICMgIGNhc2UgJGFyZwotKwk7OwotKyAgICAgIGVzYWMgICAgIyAgY2FzZSAkYXJnX21vZGUKLSsK LSsgICAgICAjIEFlc3RoZXRpY2FsbHkgcXVvdGUgdGhlIHByZXZpb3VzIGFyZ3VtZW50LgotKyAg ICAgIGZ1bmNfcXVvdGVfZm9yX2V2YWwgIiRsYXN0YXJnIgotKyAgICAgIGJhc2VfY29tcGlsZT0i JGJhc2VfY29tcGlsZSAkZnVuY19xdW90ZV9mb3JfZXZhbF9yZXN1bHQiCi0rICAgIGRvbmUgIyBm b3IgYXJnCi0rCi0rICAgIGNhc2UgJGFyZ19tb2RlIGluCi0rICAgIGFyZykKLSsgICAgICBmdW5j X2ZhdGFsX2Vycm9yICJ5b3UgbXVzdCBzcGVjaWZ5IGFuIGFyZ3VtZW50IGZvciAtWGNvbXBpbGUi Ci0rICAgICAgOzsKLSsgICAgdGFyZ2V0KQotKyAgICAgIGZ1bmNfZmF0YWxfZXJyb3IgInlvdSBt dXN0IHNwZWNpZnkgYSB0YXJnZXQgd2l0aCBcYC1vJyIKLSsgICAgICA7OwotKyAgICAqKQotKyAg ICAgICMgR2V0IHRoZSBuYW1lIG9mIHRoZSBsaWJyYXJ5IG9iamVjdC4KLSsgICAgICB0ZXN0IC16 ICIkbGlib2JqIiAmJiB7Ci0rCWZ1bmNfYmFzZW5hbWUgIiRzcmNmaWxlIgotKwlsaWJvYmo9IiRm dW5jX2Jhc2VuYW1lX3Jlc3VsdCIKLSsgICAgICB9Ci0rICAgICAgOzsKLSsgICAgZXNhYwotKwot KyAgICAjIFJlY29nbml6ZSBzZXZlcmFsIGRpZmZlcmVudCBmaWxlIHN1ZmZpeGVzLgotKyAgICAj IElmIHRoZSB1c2VyIHNwZWNpZmllcyAtbyBmaWxlLm8sIGl0IGlzIHJlcGxhY2VkIHdpdGggZmls ZS5sbwotKyAgICBjYXNlICRsaWJvYmogaW4KLSsgICAgKi5bY0NGU2lmbXNvXSB8IFwKLSsgICAg Ki5hZGEgfCAqLmFkYiB8ICouYWRzIHwgKi5hc20gfCBcCi0rICAgICouYysrIHwgKi5jYyB8ICou aWkgfCAqLmNsYXNzIHwgKi5jcHAgfCAqLmN4eCB8IFwKLSsgICAgKi5bZkZdWzA5XT8gfCAqLmZv ciB8ICouamF2YSB8ICoub2JqIHwgKi5zeCkKLSsgICAgICBmdW5jX3hmb3JtICIkbGlib2JqIgot KyAgICAgIGxpYm9iaj0kZnVuY194Zm9ybV9yZXN1bHQKLSsgICAgICA7OwotKyAgICBlc2FjCi0r Ci0rICAgIGNhc2UgJGxpYm9iaiBpbgotKyAgICAqLmxvKSBmdW5jX2xvMm8gIiRsaWJvYmoiOyBv Ymo9JGZ1bmNfbG8yb19yZXN1bHQgOzsKLSsgICAgKikKLSsgICAgICBmdW5jX2ZhdGFsX2Vycm9y ICJjYW5ub3QgZGV0ZXJtaW5lIG5hbWUgb2YgbGlicmFyeSBvYmplY3QgZnJvbSBcYCRsaWJvYmon IgotKyAgICAgIDs7Ci0rICAgIGVzYWMKLSsKLSsgICAgZnVuY19pbmZlcl90YWcgJGJhc2VfY29t cGlsZQotKwotKyAgICBmb3IgYXJnIGluICRsYXRlcjsgZG8KLSsgICAgICBjYXNlICRhcmcgaW4K LSsgICAgICAtc2hhcmVkKQotKwl0ZXN0ICIkYnVpbGRfbGlidG9vbF9saWJzIiAhPSB5ZXMgJiYg XAotKwkgIGZ1bmNfZmF0YWxfY29uZmlndXJhdGlvbiAiY2FuIG5vdCBidWlsZCBhIHNoYXJlZCBs aWJyYXJ5IgotKwlidWlsZF9vbGRfbGlicz1ubwotKwljb250aW51ZQotKwk7OwotKwotKyAgICAg IC1zdGF0aWMpCi0rCWJ1aWxkX2xpYnRvb2xfbGlicz1ubwotKwlidWlsZF9vbGRfbGlicz15ZXMK LSsJY29udGludWUKLSsJOzsKLSsKLSsgICAgICAtcHJlZmVyLXBpYykKLSsJcGljX21vZGU9eWVz Ci0rCWNvbnRpbnVlCi0rCTs7Ci0rCi0rICAgICAgLXByZWZlci1ub24tcGljKQotKwlwaWNfbW9k ZT1ubwotKwljb250aW51ZQotKwk7OwotKyAgICAgIGVzYWMKLSsgICAgZG9uZQotKwotKyAgICBm dW5jX3F1b3RlX2Zvcl9ldmFsICIkbGlib2JqIgotKyAgICB0ZXN0ICJYJGxpYm9iaiIgIT0gIlgk ZnVuY19xdW90ZV9mb3JfZXZhbF9yZXN1bHQiIFwKLSsgICAgICAmJiAkRUNITyAiWCRsaWJvYmoi IHwgJEdSRVAgJ1tdfiNeKnt9Ozw+PyInIiciJwkgJigpfGAkW10nIFwKLSsgICAgICAmJiBmdW5j X3dhcm5pbmcgImxpYm9iaiBuYW1lIFxgJGxpYm9iaicgbWF5IG5vdCBjb250YWluIHNoZWxsIHNw ZWNpYWwgY2hhcmFjdGVycy4iCi0rICAgIGZ1bmNfZGlybmFtZV9hbmRfYmFzZW5hbWUgIiRvYmoi ICIvIiAiIgotKyAgICBvYmpuYW1lPSIkZnVuY19iYXNlbmFtZV9yZXN1bHQiCi0rICAgIHhkaXI9 IiRmdW5jX2Rpcm5hbWVfcmVzdWx0IgotKyAgICBsb2JqPSR7eGRpcn0kb2JqZGlyLyRvYmpuYW1l Ci0rCi0rICAgIHRlc3QgLXogIiRiYXNlX2NvbXBpbGUiICYmIFwKLSsgICAgICBmdW5jX2ZhdGFs X2hlbHAgInlvdSBtdXN0IHNwZWNpZnkgYSBjb21waWxhdGlvbiBjb21tYW5kIgotKwotKyAgICAj IERlbGV0ZSBhbnkgbGVmdG92ZXIgbGlicmFyeSBvYmplY3RzLgotKyAgICBpZiB0ZXN0ICIkYnVp bGRfb2xkX2xpYnMiID0geWVzOyB0aGVuCi0rICAgICAgcmVtb3ZlbGlzdD0iJG9iaiAkbG9iaiAk bGlib2JqICR7bGlib2JqfVQiCi0rICAgIGVsc2UKLSsgICAgICByZW1vdmVsaXN0PSIkbG9iaiAk bGlib2JqICR7bGlib2JqfVQiCi0rICAgIGZpCi0rCi0rICAgICMgT24gQ3lnd2luIHRoZXJlJ3Mg bm8gInJlYWwiIFBJQyBmbGFnIHNvIHdlIG11c3QgYnVpbGQgYm90aCBvYmplY3QgdHlwZXMKLSsg ICAgY2FzZSAkaG9zdF9vcyBpbgotKyAgICBjeWd3aW4qIHwgbWluZ3cqIHwgcHczMiogfCBvczIq IHwgY2VnY2MqKQotKyAgICAgIHBpY19tb2RlPWRlZmF1bHQKLSsgICAgICA7OwotKyAgICBlc2Fj Ci0rICAgIGlmIHRlc3QgIiRwaWNfbW9kZSIgPSBubyAmJiB0ZXN0ICIkZGVwbGlic19jaGVja19t ZXRob2QiICE9IHBhc3NfYWxsOyB0aGVuCi0rICAgICAgIyBub24tUElDIGNvZGUgaW4gc2hhcmVk IGxpYnJhcmllcyBpcyBub3Qgc3VwcG9ydGVkCi0rICAgICAgcGljX21vZGU9ZGVmYXVsdAotKyAg ICBmaQotKwotKyAgICAjIENhbGN1bGF0ZSB0aGUgZmlsZW5hbWUgb2YgdGhlIG91dHB1dCBvYmpl Y3QgaWYgY29tcGlsZXIgZG9lcwotKyAgICAjIG5vdCBzdXBwb3J0IC1vIHdpdGggLWMKLSsgICAg aWYgdGVzdCAiJGNvbXBpbGVyX2NfbyIgPSBubzsgdGhlbgotKyAgICAgIG91dHB1dF9vYmo9YCRF Q0hPICJYJHNyY2ZpbGUiIHwgJFhzZWQgLWUgJ3MlXi4qLyUlJyAtZSAncyVcLlteLl0qJCUlJ2Au JHtvYmpleHR9Ci0rICAgICAgbG9ja2ZpbGU9IiRvdXRwdXRfb2JqLmxvY2siCi0rICAgIGVsc2UK LSsgICAgICBvdXRwdXRfb2JqPQotKyAgICAgIG5lZWRfbG9ja3M9bm8KLSsgICAgICBsb2NrZmls ZT0KLSsgICAgZmkKLSsKLSsgICAgIyBMb2NrIHRoaXMgY3JpdGljYWwgc2VjdGlvbiBpZiBpdCBp cyBuZWVkZWQKLSsgICAgIyBXZSB1c2UgdGhpcyBzY3JpcHQgZmlsZSB0byBtYWtlIHRoZSBsaW5r LCBpdCBhdm9pZHMgY3JlYXRpbmcgYSBuZXcgZmlsZQotKyAgICBpZiB0ZXN0ICIkbmVlZF9sb2Nr cyIgPSB5ZXM7IHRoZW4KLSsgICAgICB1bnRpbCAkb3B0X2RyeV9ydW4gfHwgbG4gIiRwcm9ncGF0 aCIgIiRsb2NrZmlsZSIgMj4vZGV2L251bGw7IGRvCi0rCWZ1bmNfZWNobyAiV2FpdGluZyBmb3Ig JGxvY2tmaWxlIHRvIGJlIHJlbW92ZWQiCi0rCXNsZWVwIDIKLSsgICAgICBkb25lCi0rICAgIGVs aWYgdGVzdCAiJG5lZWRfbG9ja3MiID0gd2FybjsgdGhlbgotKyAgICAgIGlmIHRlc3QgLWYgIiRs b2NrZmlsZSI7IHRoZW4KLSsJJEVDSE8gIlwKLSsqKiogRVJST1IsICRsb2NrZmlsZSBleGlzdHMg YW5kIGNvbnRhaW5zOgotK2BjYXQgJGxvY2tmaWxlIDI+L2Rldi9udWxsYAotKwotK1RoaXMgaW5k aWNhdGVzIHRoYXQgYW5vdGhlciBwcm9jZXNzIGlzIHRyeWluZyB0byB1c2UgdGhlIHNhbWUKLSt0 ZW1wb3Jhcnkgb2JqZWN0IGZpbGUsIGFuZCBsaWJ0b29sIGNvdWxkIG5vdCB3b3JrIGFyb3VuZCBp dCBiZWNhdXNlCi0reW91ciBjb21waWxlciBkb2VzIG5vdCBzdXBwb3J0IFxgLWMnIGFuZCBcYC1v JyB0b2dldGhlci4gIElmIHlvdQotK3JlcGVhdCB0aGlzIGNvbXBpbGF0aW9uLCBpdCBtYXkgc3Vj Y2VlZCwgYnkgY2hhbmNlLCBidXQgeW91IGhhZCBiZXR0ZXIKLSthdm9pZCBwYXJhbGxlbCBidWls ZHMgKG1ha2UgLWopIGluIHRoaXMgcGxhdGZvcm0sIG9yIGdldCBhIGJldHRlcgotK2NvbXBpbGVy LiIKLSsKLSsJJG9wdF9kcnlfcnVuIHx8ICRSTSAkcmVtb3ZlbGlzdAotKwlleGl0ICRFWElUX0ZB SUxVUkUKLSsgICAgICBmaQotKyAgICAgIHJlbW92ZWxpc3Q9IiRyZW1vdmVsaXN0ICRvdXRwdXRf b2JqIgotKyAgICAgICRFQ0hPICIkc3JjZmlsZSIgPiAiJGxvY2tmaWxlIgotKyAgICBmaQotKwot KyAgICAkb3B0X2RyeV9ydW4gfHwgJFJNICRyZW1vdmVsaXN0Ci0rICAgIHJlbW92ZWxpc3Q9IiRy ZW1vdmVsaXN0ICRsb2NrZmlsZSIKLSsgICAgdHJhcCAnJG9wdF9kcnlfcnVuIHx8ICRSTSAkcmVt b3ZlbGlzdDsgZXhpdCAkRVhJVF9GQUlMVVJFJyAxIDIgMTUKLSsKLSsgICAgaWYgdGVzdCAtbiAi JGZpeF9zcmNmaWxlX3BhdGgiOyB0aGVuCi0rICAgICAgZXZhbCBzcmNmaWxlPVwiJGZpeF9zcmNm aWxlX3BhdGhcIgotKyAgICBmaQotKyAgICBmdW5jX3F1b3RlX2Zvcl9ldmFsICIkc3JjZmlsZSIK LSsgICAgcXNyY2ZpbGU9JGZ1bmNfcXVvdGVfZm9yX2V2YWxfcmVzdWx0Ci0rCi0rICAgICMgT25s eSBidWlsZCBhIFBJQyBvYmplY3QgaWYgd2UgYXJlIGJ1aWxkaW5nIGxpYnRvb2wgbGlicmFyaWVz LgotKyAgICBpZiB0ZXN0ICIkYnVpbGRfbGlidG9vbF9saWJzIiA9IHllczsgdGhlbgotKyAgICAg ICMgV2l0aG91dCB0aGlzIGFzc2lnbm1lbnQsIGJhc2VfY29tcGlsZSBnZXRzIGVtcHRpZWQuCi0r ICAgICAgZmJzZF9oaWRlb3VzX3NoX2J1Zz0kYmFzZV9jb21waWxlCi0rCi0rICAgICAgaWYgdGVz dCAiJHBpY19tb2RlIiAhPSBubzsgdGhlbgotKwljb21tYW5kPSIkYmFzZV9jb21waWxlICRxc3Jj ZmlsZSAkcGljX2ZsYWciCi0rICAgICAgZWxzZQotKwkjIERvbid0IGJ1aWxkIFBJQyBjb2RlCi0r CWNvbW1hbmQ9IiRiYXNlX2NvbXBpbGUgJHFzcmNmaWxlIgotKyAgICAgIGZpCi0rCi0rICAgICAg ZnVuY19ta2Rpcl9wICIkeGRpciRvYmpkaXIiCi0rCi0rICAgICAgaWYgdGVzdCAteiAiJG91dHB1 dF9vYmoiOyB0aGVuCi0rCSMgUGxhY2UgUElDIG9iamVjdHMgaW4gJG9iamRpcgotKwljb21tYW5k PSIkY29tbWFuZCAtbyAkbG9iaiIKLSsgICAgICBmaQotKwotKyAgICAgIGZ1bmNfc2hvd19ldmFs X2xvY2FsZSAiJGNvbW1hbmQiCVwKLSsgICAgICAgICAgJ3Rlc3QgLW4gIiRvdXRwdXRfb2JqIiAm JiAkUk0gJHJlbW92ZWxpc3Q7IGV4aXQgJEVYSVRfRkFJTFVSRScKLSsKLSsgICAgICBpZiB0ZXN0 ICIkbmVlZF9sb2NrcyIgPSB3YXJuICYmCi0rCSB0ZXN0ICJYYGNhdCAkbG9ja2ZpbGUgMj4vZGV2 L251bGxgIiAhPSAiWCRzcmNmaWxlIjsgdGhlbgotKwkkRUNITyAiXAotKyoqKiBFUlJPUiwgJGxv Y2tmaWxlIGNvbnRhaW5zOgotK2BjYXQgJGxvY2tmaWxlIDI+L2Rldi9udWxsYAotKwotK2J1dCBp dCBzaG91bGQgY29udGFpbjoKLSskc3JjZmlsZQotKwotK1RoaXMgaW5kaWNhdGVzIHRoYXQgYW5v dGhlciBwcm9jZXNzIGlzIHRyeWluZyB0byB1c2UgdGhlIHNhbWUKLSt0ZW1wb3Jhcnkgb2JqZWN0 IGZpbGUsIGFuZCBsaWJ0b29sIGNvdWxkIG5vdCB3b3JrIGFyb3VuZCBpdCBiZWNhdXNlCi0reW91 ciBjb21waWxlciBkb2VzIG5vdCBzdXBwb3J0IFxgLWMnIGFuZCBcYC1vJyB0b2dldGhlci4gIElm IHlvdQotK3JlcGVhdCB0aGlzIGNvbXBpbGF0aW9uLCBpdCBtYXkgc3VjY2VlZCwgYnkgY2hhbmNl LCBidXQgeW91IGhhZCBiZXR0ZXIKLSthdm9pZCBwYXJhbGxlbCBidWlsZHMgKG1ha2UgLWopIGlu IHRoaXMgcGxhdGZvcm0sIG9yIGdldCBhIGJldHRlcgotK2NvbXBpbGVyLiIKLSsKLSsJJG9wdF9k cnlfcnVuIHx8ICRSTSAkcmVtb3ZlbGlzdAotKwlleGl0ICRFWElUX0ZBSUxVUkUKLSsgICAgICBm aQotKwotKyAgICAgICMgSnVzdCBtb3ZlIHRoZSBvYmplY3QgaWYgbmVlZGVkLCB0aGVuIGdvIG9u IHRvIGNvbXBpbGUgdGhlIG5leHQgb25lCi0rICAgICAgaWYgdGVzdCAtbiAiJG91dHB1dF9vYmoi ICYmIHRlc3QgIlgkb3V0cHV0X29iaiIgIT0gIlgkbG9iaiI7IHRoZW4KLSsJZnVuY19zaG93X2V2 YWwgJyRNViAiJG91dHB1dF9vYmoiICIkbG9iaiInIFwKLSsJICAnZXJyb3I9JD87ICRvcHRfZHJ5 X3J1biB8fCAkUk0gJHJlbW92ZWxpc3Q7IGV4aXQgJGVycm9yJwotKyAgICAgIGZpCi0rCi0rICAg ICAgIyBBbGxvdyBlcnJvciBtZXNzYWdlcyBvbmx5IGZyb20gdGhlIGZpcnN0IGNvbXBpbGF0aW9u LgotKyAgICAgIGlmIHRlc3QgIiRzdXBwcmVzc19vcHQiID0geWVzOyB0aGVuCi0rCXN1cHByZXNz X291dHB1dD0nID4vZGV2L251bGwgMj4mMScKLSsgICAgICBmaQotKyAgICBmaQotKwotKyAgICAj IE9ubHkgYnVpbGQgYSBwb3NpdGlvbi1kZXBlbmRlbnQgb2JqZWN0IGlmIHdlIGJ1aWxkIG9sZCBs aWJyYXJpZXMuCi0rICAgIGlmIHRlc3QgIiRidWlsZF9vbGRfbGlicyIgPSB5ZXM7IHRoZW4KLSsg ICAgICBpZiB0ZXN0ICIkcGljX21vZGUiICE9IHllczsgdGhlbgotKwkjIERvbid0IGJ1aWxkIFBJ QyBjb2RlCi0rCWNvbW1hbmQ9IiRiYXNlX2NvbXBpbGUgJHFzcmNmaWxlJHBpZV9mbGFnIgotKyAg ICAgIGVsc2UKLSsJY29tbWFuZD0iJGJhc2VfY29tcGlsZSAkcXNyY2ZpbGUgJHBpY19mbGFnIgot KyAgICAgIGZpCi0rICAgICAgaWYgdGVzdCAiJGNvbXBpbGVyX2NfbyIgPSB5ZXM7IHRoZW4KLSsJ Y29tbWFuZD0iJGNvbW1hbmQgLW8gJG9iaiIKLSsgICAgICBmaQotKwotKyAgICAgICMgU3VwcHJl c3MgY29tcGlsZXIgb3V0cHV0IGlmIHdlIGFscmVhZHkgZGlkIGEgUElDIGNvbXBpbGF0aW9uLgot KyAgICAgIGNvbW1hbmQ9IiRjb21tYW5kJHN1cHByZXNzX291dHB1dCIKLSsgICAgICBmdW5jX3No b3dfZXZhbF9sb2NhbGUgIiRjb21tYW5kIiBcCi0rICAgICAgICAnJG9wdF9kcnlfcnVuIHx8ICRS TSAkcmVtb3ZlbGlzdDsgZXhpdCAkRVhJVF9GQUlMVVJFJwotKwotKyAgICAgIGlmIHRlc3QgIiRu ZWVkX2xvY2tzIiA9IHdhcm4gJiYKLSsJIHRlc3QgIlhgY2F0ICRsb2NrZmlsZSAyPi9kZXYvbnVs bGAiICE9ICJYJHNyY2ZpbGUiOyB0aGVuCi0rCSRFQ0hPICJcCi0rKioqIEVSUk9SLCAkbG9ja2Zp bGUgY29udGFpbnM6Ci0rYGNhdCAkbG9ja2ZpbGUgMj4vZGV2L251bGxgCi0rCi0rYnV0IGl0IHNo b3VsZCBjb250YWluOgotKyRzcmNmaWxlCi0rCi0rVGhpcyBpbmRpY2F0ZXMgdGhhdCBhbm90aGVy IHByb2Nlc3MgaXMgdHJ5aW5nIHRvIHVzZSB0aGUgc2FtZQotK3RlbXBvcmFyeSBvYmplY3QgZmls ZSwgYW5kIGxpYnRvb2wgY291bGQgbm90IHdvcmsgYXJvdW5kIGl0IGJlY2F1c2UKLSt5b3VyIGNv bXBpbGVyIGRvZXMgbm90IHN1cHBvcnQgXGAtYycgYW5kIFxgLW8nIHRvZ2V0aGVyLiAgSWYgeW91 Ci0rcmVwZWF0IHRoaXMgY29tcGlsYXRpb24sIGl0IG1heSBzdWNjZWVkLCBieSBjaGFuY2UsIGJ1 dCB5b3UgaGFkIGJldHRlcgotK2F2b2lkIHBhcmFsbGVsIGJ1aWxkcyAobWFrZSAtaikgaW4gdGhp cyBwbGF0Zm9ybSwgb3IgZ2V0IGEgYmV0dGVyCi0rY29tcGlsZXIuIgotKwotKwkkb3B0X2RyeV9y dW4gfHwgJFJNICRyZW1vdmVsaXN0Ci0rCWV4aXQgJEVYSVRfRkFJTFVSRQotKyAgICAgIGZpCi0r Ci0rICAgICAgIyBKdXN0IG1vdmUgdGhlIG9iamVjdCBpZiBuZWVkZWQKLSsgICAgICBpZiB0ZXN0 IC1uICIkb3V0cHV0X29iaiIgJiYgdGVzdCAiWCRvdXRwdXRfb2JqIiAhPSAiWCRvYmoiOyB0aGVu Ci0rCWZ1bmNfc2hvd19ldmFsICckTVYgIiRvdXRwdXRfb2JqIiAiJG9iaiInIFwKLSsJICAnZXJy b3I9JD87ICRvcHRfZHJ5X3J1biB8fCAkUk0gJHJlbW92ZWxpc3Q7IGV4aXQgJGVycm9yJwotKyAg ICAgIGZpCi0rICAgIGZpCi0rCi0rICAgICRvcHRfZHJ5X3J1biB8fCB7Ci0rICAgICAgZnVuY193 cml0ZV9saWJ0b29sX29iamVjdCAiJGxpYm9iaiIgIiRvYmpkaXIvJG9iam5hbWUiICIkb2JqbmFt ZSIKLSsKLSsgICAgICAjIFVubG9jayB0aGUgY3JpdGljYWwgc2VjdGlvbiBpZiBpdCB3YXMgbG9j a2VkCi0rICAgICAgaWYgdGVzdCAiJG5lZWRfbG9ja3MiICE9IG5vOyB0aGVuCi0rCXJlbW92ZWxp c3Q9JGxvY2tmaWxlCi0rICAgICAgICAkUk0gIiRsb2NrZmlsZSIKLSsgICAgICBmaQotKyAgICB9 Ci0rCi0rICAgIGV4aXQgJEVYSVRfU1VDQ0VTUwotK30KLSsKLSskb3B0X2hlbHAgfHwgewotK3Rl c3QgIiRtb2RlIiA9IGNvbXBpbGUgJiYgZnVuY19tb2RlX2NvbXBpbGUgJHsxKyIkQCJ9Ci0rfQot KwotK2Z1bmNfbW9kZV9oZWxwICgpCi0rewotKyAgICAjIFdlIG5lZWQgdG8gZGlzcGxheSBoZWxw IGZvciBlYWNoIG9mIHRoZSBtb2Rlcy4KLSsgICAgY2FzZSAkbW9kZSBpbgotKyAgICAgICIiKQot KyAgICAgICAgIyBHZW5lcmljIGhlbHAgaXMgZXh0cmFjdGVkIGZyb20gdGhlIHVzYWdlIGNvbW1l bnRzCi0rICAgICAgICAjIGF0IHRoZSBzdGFydCBvZiB0aGlzIGZpbGUuCi0rICAgICAgICBmdW5j X2hlbHAKLSsgICAgICAgIDs7Ci0rCi0rICAgICAgY2xlYW4pCi0rICAgICAgICAkRUNITyBcCi0r IlVzYWdlOiAkcHJvZ25hbWUgW09QVElPTl0uLi4gLS1tb2RlPWNsZWFuIFJNIFtSTS1PUFRJT05d Li4uIEZJTEUuLi4KLSsKLStSZW1vdmUgZmlsZXMgZnJvbSB0aGUgYnVpbGQgZGlyZWN0b3J5Lgot KwotK1JNIGlzIHRoZSBuYW1lIG9mIHRoZSBwcm9ncmFtIHRvIHVzZSB0byBkZWxldGUgZmlsZXMg YXNzb2NpYXRlZCB3aXRoIGVhY2ggRklMRQotKyh0eXBpY2FsbHkgXGAvYmluL3JtJykuICBSTS1P UFRJT05TIGFyZSBvcHRpb25zIChzdWNoIGFzIFxgLWYnKSB0byBiZSBwYXNzZWQKLSt0byBSTS4K LSsKLStJZiBGSUxFIGlzIGEgbGlidG9vbCBsaWJyYXJ5LCBvYmplY3Qgb3IgcHJvZ3JhbSwgYWxs IHRoZSBmaWxlcyBhc3NvY2lhdGVkCi0rd2l0aCBpdCBhcmUgZGVsZXRlZC4gT3RoZXJ3aXNlLCBv bmx5IEZJTEUgaXRzZWxmIGlzIGRlbGV0ZWQgdXNpbmcgUk0uIgotKyAgICAgICAgOzsKLSsKLSsg ICAgICBjb21waWxlKQotKyAgICAgICRFQ0hPIFwKLSsiVXNhZ2U6ICRwcm9nbmFtZSBbT1BUSU9O XS4uLiAtLW1vZGU9Y29tcGlsZSBDT01QSUxFLUNPTU1BTkQuLi4gU09VUkNFRklMRQotKwotK0Nv bXBpbGUgYSBzb3VyY2UgZmlsZSBpbnRvIGEgbGlidG9vbCBsaWJyYXJ5IG9iamVjdC4KLSsKLStU aGlzIG1vZGUgYWNjZXB0cyB0aGUgZm9sbG93aW5nIGFkZGl0aW9uYWwgb3B0aW9uczoKLSsKLSsg IC1vIE9VVFBVVC1GSUxFICAgIHNldCB0aGUgb3V0cHV0IGZpbGUgbmFtZSB0byBPVVRQVVQtRklM RQotKyAgLW5vLXN1cHByZXNzICAgICAgZG8gbm90IHN1cHByZXNzIGNvbXBpbGVyIG91dHB1dCBm b3IgbXVsdGlwbGUgcGFzc2VzCi0rICAtcHJlZmVyLXBpYyAgICAgICB0cnkgdG8gYnVpbGRpbmcg UElDIG9iamVjdHMgb25seQotKyAgLXByZWZlci1ub24tcGljICAgdHJ5IHRvIGJ1aWxkaW5nIG5v bi1QSUMgb2JqZWN0cyBvbmx5Ci0rICAtc2hhcmVkICAgICAgICAgICBkbyBub3QgYnVpbGQgYSBc YC5vJyBmaWxlIHN1aXRhYmxlIGZvciBzdGF0aWMgbGlua2luZwotKyAgLXN0YXRpYyAgICAgICAg ICAgb25seSBidWlsZCBhIFxgLm8nIGZpbGUgc3VpdGFibGUgZm9yIHN0YXRpYyBsaW5raW5nCi0r Ci0rQ09NUElMRS1DT01NQU5EIGlzIGEgY29tbWFuZCB0byBiZSB1c2VkIGluIGNyZWF0aW5nIGEg XGBzdGFuZGFyZCcgb2JqZWN0IGZpbGUKLStmcm9tIHRoZSBnaXZlbiBTT1VSQ0VGSUxFLgotKwot K1RoZSBvdXRwdXQgZmlsZSBuYW1lIGlzIGRldGVybWluZWQgYnkgcmVtb3ZpbmcgdGhlIGRpcmVj dG9yeSBjb21wb25lbnQgZnJvbQotK1NPVVJDRUZJTEUsIHRoZW4gc3Vic3RpdHV0aW5nIHRoZSBD IHNvdXJjZSBjb2RlIHN1ZmZpeCBcYC5jJyB3aXRoIHRoZQotK2xpYnJhcnkgb2JqZWN0IHN1ZmZp eCwgXGAubG8nLiIKLSsgICAgICAgIDs7Ci0rCi0rICAgICAgZXhlY3V0ZSkKLSsgICAgICAgICRF Q0hPIFwKLSsiVXNhZ2U6ICRwcm9nbmFtZSBbT1BUSU9OXS4uLiAtLW1vZGU9ZXhlY3V0ZSBDT01N QU5EIFtBUkdTXS4uLgotKwotK0F1dG9tYXRpY2FsbHkgc2V0IGxpYnJhcnkgcGF0aCwgdGhlbiBy dW4gYSBwcm9ncmFtLgotKwotK1RoaXMgbW9kZSBhY2NlcHRzIHRoZSBmb2xsb3dpbmcgYWRkaXRp b25hbCBvcHRpb25zOgotKwotKyAgLWRsb3BlbiBGSUxFICAgICAgYWRkIHRoZSBkaXJlY3Rvcnkg Y29udGFpbmluZyBGSUxFIHRvIHRoZSBsaWJyYXJ5IHBhdGgKLSsKLStUaGlzIG1vZGUgc2V0cyB0 aGUgbGlicmFyeSBwYXRoIGVudmlyb25tZW50IHZhcmlhYmxlIGFjY29yZGluZyB0byBcYC1kbG9w ZW4nCi0rZmxhZ3MuCi0rCi0rSWYgYW55IG9mIHRoZSBBUkdTIGFyZSBsaWJ0b29sIGV4ZWN1dGFi bGUgd3JhcHBlcnMsIHRoZW4gdGhleSBhcmUgdHJhbnNsYXRlZAotK2ludG8gdGhlaXIgY29ycmVz cG9uZGluZyB1bmluc3RhbGxlZCBiaW5hcnksIGFuZCBhbnkgb2YgdGhlaXIgcmVxdWlyZWQgbGli cmFyeQotK2RpcmVjdG9yaWVzIGFyZSBhZGRlZCB0byB0aGUgbGlicmFyeSBwYXRoLgotKwotK1Ro ZW4sIENPTU1BTkQgaXMgZXhlY3V0ZWQsIHdpdGggQVJHUyBhcyBhcmd1bWVudHMuIgotKyAgICAg ICAgOzsKLSsKLSsgICAgICBmaW5pc2gpCi0rICAgICAgICAkRUNITyBcCi0rIlVzYWdlOiAkcHJv Z25hbWUgW09QVElPTl0uLi4gLS1tb2RlPWZpbmlzaCBbTElCRElSXS4uLgotKwotK0NvbXBsZXRl IHRoZSBpbnN0YWxsYXRpb24gb2YgbGlidG9vbCBsaWJyYXJpZXMuCi0rCi0rRWFjaCBMSUJESVIg aXMgYSBkaXJlY3RvcnkgdGhhdCBjb250YWlucyBsaWJ0b29sIGxpYnJhcmllcy4KLSsKLStUaGUg Y29tbWFuZHMgdGhhdCB0aGlzIG1vZGUgZXhlY3V0ZXMgbWF5IHJlcXVpcmUgc3VwZXJ1c2VyIHBy aXZpbGVnZXMuICBVc2UKLSt0aGUgXGAtLWRyeS1ydW4nIG9wdGlvbiBpZiB5b3UganVzdCB3YW50 IHRvIHNlZSB3aGF0IHdvdWxkIGJlIGV4ZWN1dGVkLiIKLSsgICAgICAgIDs7Ci0rCi0rICAgICAg aW5zdGFsbCkKLSsgICAgICAgICRFQ0hPIFwKLSsiVXNhZ2U6ICRwcm9nbmFtZSBbT1BUSU9OXS4u LiAtLW1vZGU9aW5zdGFsbCBJTlNUQUxMLUNPTU1BTkQuLi4KLSsKLStJbnN0YWxsIGV4ZWN1dGFi bGVzIG9yIGxpYnJhcmllcy4KLSsKLStJTlNUQUxMLUNPTU1BTkQgaXMgdGhlIGluc3RhbGxhdGlv biBjb21tYW5kLiAgVGhlIGZpcnN0IGNvbXBvbmVudCBzaG91bGQgYmUKLStlaXRoZXIgdGhlIFxg aW5zdGFsbCcgb3IgXGBjcCcgcHJvZ3JhbS4KLSsKLStUaGUgZm9sbG93aW5nIGNvbXBvbmVudHMg b2YgSU5TVEFMTC1DT01NQU5EIGFyZSB0cmVhdGVkIHNwZWNpYWxseToKLSsKLSsgIC1pbnN0LXBy ZWZpeCBQUkVGSVgtRElSICBVc2UgUFJFRklYLURJUiBhcyBhIHN0YWdpbmcgYXJlYSBmb3IgaW5z dGFsbGF0aW9uCi0rCi0rVGhlIHJlc3Qgb2YgdGhlIGNvbXBvbmVudHMgYXJlIGludGVycHJldGVk IGFzIGFyZ3VtZW50cyB0byB0aGF0IGNvbW1hbmQgKG9ubHkKLStCU0QtY29tcGF0aWJsZSBpbnN0 YWxsIG9wdGlvbnMgYXJlIHJlY29nbml6ZWQpLiIKLSsgICAgICAgIDs7Ci0rCi0rICAgICAgbGlu aykKLSsgICAgICAgICRFQ0hPIFwKLSsiVXNhZ2U6ICRwcm9nbmFtZSBbT1BUSU9OXS4uLiAtLW1v ZGU9bGluayBMSU5LLUNPTU1BTkQuLi4KLSsKLStMaW5rIG9iamVjdCBmaWxlcyBvciBsaWJyYXJp ZXMgdG9nZXRoZXIgdG8gZm9ybSBhbm90aGVyIGxpYnJhcnksIG9yIHRvCi0rY3JlYXRlIGFuIGV4 ZWN1dGFibGUgcHJvZ3JhbS4KLSsKLStMSU5LLUNPTU1BTkQgaXMgYSBjb21tYW5kIHVzaW5nIHRo ZSBDIGNvbXBpbGVyIHRoYXQgeW91IHdvdWxkIHVzZSB0byBjcmVhdGUKLSthIHByb2dyYW0gZnJv bSBzZXZlcmFsIG9iamVjdCBmaWxlcy4KLSsKLStUaGUgZm9sbG93aW5nIGNvbXBvbmVudHMgb2Yg TElOSy1DT01NQU5EIGFyZSB0cmVhdGVkIHNwZWNpYWxseToKLSsKLSsgIC1hbGwtc3RhdGljICAg ICAgIGRvIG5vdCBkbyBhbnkgZHluYW1pYyBsaW5raW5nIGF0IGFsbAotKyAgLWF2b2lkLXZlcnNp b24gICAgZG8gbm90IGFkZCBhIHZlcnNpb24gc3VmZml4IGlmIHBvc3NpYmxlCi0rICAtZGxvcGVu IEZJTEUgICAgICBcYC1kbHByZW9wZW4nIEZJTEUgaWYgaXQgY2Fubm90IGJlIGRsb3BlbmVkIGF0 IHJ1bnRpbWUKLSsgIC1kbHByZW9wZW4gRklMRSAgIGxpbmsgaW4gRklMRSBhbmQgYWRkIGl0cyBz eW1ib2xzIHRvIGx0X3ByZWxvYWRlZF9zeW1ib2xzCi0rICAtZXhwb3J0LWR5bmFtaWMgICBhbGxv dyBzeW1ib2xzIGZyb20gT1VUUFVULUZJTEUgdG8gYmUgcmVzb2x2ZWQgd2l0aCBkbHN5bSgzKQot KyAgLWV4cG9ydC1zeW1ib2xzIFNZTUZJTEUKLSsgICAgICAgICAgICAgICAgICAgIHRyeSB0byBl eHBvcnQgb25seSB0aGUgc3ltYm9scyBsaXN0ZWQgaW4gU1lNRklMRQotKyAgLWV4cG9ydC1zeW1i b2xzLXJlZ2V4IFJFR0VYCi0rICAgICAgICAgICAgICAgICAgICB0cnkgdG8gZXhwb3J0IG9ubHkg dGhlIHN5bWJvbHMgbWF0Y2hpbmcgUkVHRVgKLSsgIC1MTElCRElSICAgICAgICAgIHNlYXJjaCBM SUJESVIgZm9yIHJlcXVpcmVkIGluc3RhbGxlZCBsaWJyYXJpZXMKLSsgIC1sTkFNRSAgICAgICAg ICAgIE9VVFBVVC1GSUxFIHJlcXVpcmVzIHRoZSBpbnN0YWxsZWQgbGlicmFyeSBsaWJOQU1FCi0r ICAtbW9kdWxlICAgICAgICAgICBidWlsZCBhIGxpYnJhcnkgdGhhdCBjYW4gZGxvcGVuZWQKLSsg IC1uby1mYXN0LWluc3RhbGwgIGRpc2FibGUgdGhlIGZhc3QtaW5zdGFsbCBtb2RlCi0rICAtbm8t aW5zdGFsbCAgICAgICBsaW5rIGEgbm90LWluc3RhbGxhYmxlIGV4ZWN1dGFibGUKLSsgIC1uby11 bmRlZmluZWQgICAgIGRlY2xhcmUgdGhhdCBhIGxpYnJhcnkgZG9lcyBub3QgcmVmZXIgdG8gZXh0 ZXJuYWwgc3ltYm9scwotKyAgLW8gT1VUUFVULUZJTEUgICAgY3JlYXRlIE9VVFBVVC1GSUxFIGZy b20gdGhlIHNwZWNpZmllZCBvYmplY3RzCi0rICAtb2JqZWN0bGlzdCBGSUxFICBVc2UgYSBsaXN0 IG9mIG9iamVjdCBmaWxlcyBmb3VuZCBpbiBGSUxFIHRvIHNwZWNpZnkgb2JqZWN0cwotKyAgLXBy ZWNpb3VzLWZpbGVzLXJlZ2V4IFJFR0VYCi0rICAgICAgICAgICAgICAgICAgICBkb24ndCByZW1v dmUgb3V0cHV0IGZpbGVzIG1hdGNoaW5nIFJFR0VYCi0rICAtcmVsZWFzZSBSRUxFQVNFICBzcGVj aWZ5IHBhY2thZ2UgcmVsZWFzZSBpbmZvcm1hdGlvbgotKyAgLXJwYXRoIExJQkRJUiAgICAgdGhl IGNyZWF0ZWQgbGlicmFyeSB3aWxsIGV2ZW50dWFsbHkgYmUgaW5zdGFsbGVkIGluIExJQkRJUgot KyAgLVJbIF1MSUJESVIgICAgICAgYWRkIExJQkRJUiB0byB0aGUgcnVudGltZSBwYXRoIG9mIHBy b2dyYW1zIGFuZCBsaWJyYXJpZXMKLSsgIC1zaGFyZWQgICAgICAgICAgIG9ubHkgZG8gZHluYW1p YyBsaW5raW5nIG9mIGxpYnRvb2wgbGlicmFyaWVzCi0rICAtc2hyZXh0IFNVRkZJWCAgICBvdmVy cmlkZSB0aGUgc3RhbmRhcmQgc2hhcmVkIGxpYnJhcnkgZmlsZSBleHRlbnNpb24KLSsgIC1zdGF0 aWMgICAgICAgICAgIGRvIG5vdCBkbyBhbnkgZHluYW1pYyBsaW5raW5nIG9mIHVuaW5zdGFsbGVk IGxpYnRvb2wgbGlicmFyaWVzCi0rICAtc3RhdGljLWxpYnRvb2wtbGlicwotKyAgICAgICAgICAg ICAgICAgICAgZG8gbm90IGRvIGFueSBkeW5hbWljIGxpbmtpbmcgb2YgbGlidG9vbCBsaWJyYXJp ZXMKLSsgIC12ZXJzaW9uLWluZm8gQ1VSUkVOVFs6UkVWSVNJT05bOkFHRV1dCi0rICAgICAgICAg ICAgICAgICAgICBzcGVjaWZ5IGxpYnJhcnkgdmVyc2lvbiBpbmZvIFtlYWNoIHZhcmlhYmxlIGRl ZmF1bHRzIHRvIDBdCi0rICAtd2VhayBMSUJOQU1FICAgICBkZWNsYXJlIHRoYXQgdGhlIHRhcmdl dCBwcm92aWRlcyB0aGUgTElCTkFNRSBpbnRlcmZhY2UKLSsKLStBbGwgb3RoZXIgb3B0aW9ucyAo YXJndW1lbnRzIGJlZ2lubmluZyB3aXRoIFxgLScpIGFyZSBpZ25vcmVkLgotKwotK0V2ZXJ5IG90 aGVyIGFyZ3VtZW50IGlzIHRyZWF0ZWQgYXMgYSBmaWxlbmFtZS4gIEZpbGVzIGVuZGluZyBpbiBc YC5sYScgYXJlCi0rdHJlYXRlZCBhcyB1bmluc3RhbGxlZCBsaWJ0b29sIGxpYnJhcmllcywgb3Ro ZXIgZmlsZXMgYXJlIHN0YW5kYXJkIG9yIGxpYnJhcnkKLStvYmplY3QgZmlsZXMuCi0rCi0rSWYg dGhlIE9VVFBVVC1GSUxFIGVuZHMgaW4gXGAubGEnLCB0aGVuIGEgbGlidG9vbCBsaWJyYXJ5IGlz IGNyZWF0ZWQsCi0rb25seSBsaWJyYXJ5IG9iamVjdHMgKFxgLmxvJyBmaWxlcykgbWF5IGJlIHNw ZWNpZmllZCwgYW5kIFxgLXJwYXRoJyBpcwotK3JlcXVpcmVkLCBleGNlcHQgd2hlbiBjcmVhdGlu ZyBhIGNvbnZlbmllbmNlIGxpYnJhcnkuCi0rCi0rSWYgT1VUUFVULUZJTEUgZW5kcyBpbiBcYC5h JyBvciBcYC5saWInLCB0aGVuIGEgc3RhbmRhcmQgbGlicmFyeSBpcyBjcmVhdGVkCi0rdXNpbmcg XGBhcicgYW5kIFxgcmFubGliJywgb3Igb24gV2luZG93cyB1c2luZyBcYGxpYicuCi0rCi0rSWYg T1VUUFVULUZJTEUgZW5kcyBpbiBcYC5sbycgb3IgXGAuJHtvYmpleHR9JywgdGhlbiBhIHJlbG9h ZGFibGUgb2JqZWN0IGZpbGUKLStpcyBjcmVhdGVkLCBvdGhlcndpc2UgYW4gZXhlY3V0YWJsZSBw cm9ncmFtIGlzIGNyZWF0ZWQuIgotKyAgICAgICAgOzsKLSsKLSsgICAgICB1bmluc3RhbGwpCi0r ICAgICAgICAkRUNITyBcCi0rIlVzYWdlOiAkcHJvZ25hbWUgW09QVElPTl0uLi4gLS1tb2RlPXVu aW5zdGFsbCBSTSBbUk0tT1BUSU9OXS4uLiBGSUxFLi4uCi0rCi0rUmVtb3ZlIGxpYnJhcmllcyBm cm9tIGFuIGluc3RhbGxhdGlvbiBkaXJlY3RvcnkuCi0rCi0rUk0gaXMgdGhlIG5hbWUgb2YgdGhl IHByb2dyYW0gdG8gdXNlIHRvIGRlbGV0ZSBmaWxlcyBhc3NvY2lhdGVkIHdpdGggZWFjaCBGSUxF Ci0rKHR5cGljYWxseSBcYC9iaW4vcm0nKS4gIFJNLU9QVElPTlMgYXJlIG9wdGlvbnMgKHN1Y2gg YXMgXGAtZicpIHRvIGJlIHBhc3NlZAotK3RvIFJNLgotKwotK0lmIEZJTEUgaXMgYSBsaWJ0b29s IGxpYnJhcnksIGFsbCB0aGUgZmlsZXMgYXNzb2NpYXRlZCB3aXRoIGl0IGFyZSBkZWxldGVkLgot K090aGVyd2lzZSwgb25seSBGSUxFIGl0c2VsZiBpcyBkZWxldGVkIHVzaW5nIFJNLiIKLSsgICAg ICAgIDs7Ci0rCi0rICAgICAgKikKLSsgICAgICAgIGZ1bmNfZmF0YWxfaGVscCAiaW52YWxpZCBv cGVyYXRpb24gbW9kZSBcYCRtb2RlJyIKLSsgICAgICAgIDs7Ci0rICAgIGVzYWMKLSsKLSsgICAg JEVDSE8KLSsgICAgJEVDSE8gIlRyeSBcYCRwcm9nbmFtZSAtLWhlbHAnIGZvciBtb3JlIGluZm9y bWF0aW9uIGFib3V0IG90aGVyIG1vZGVzLiIKLSsKLSsgICAgZXhpdCAkPwotK30KLSsKLSsgICMg Tm93IHRoYXQgd2UndmUgY29sbGVjdGVkIGEgcG9zc2libGUgLS1tb2RlIGFyZywgc2hvdyBoZWxw IGlmIG5lY2Vzc2FyeQotKyAgJG9wdF9oZWxwICYmIGZ1bmNfbW9kZV9oZWxwCi0rCi0rCi0rIyBm dW5jX21vZGVfZXhlY3V0ZSBhcmcuLi4KLStmdW5jX21vZGVfZXhlY3V0ZSAoKQotK3sKLSsgICAg JG9wdF9kZWJ1ZwotKyAgICAjIFRoZSBmaXJzdCBhcmd1bWVudCBpcyB0aGUgY29tbWFuZCBuYW1l LgotKyAgICBjbWQ9IiRub25vcHQiCi0rICAgIHRlc3QgLXogIiRjbWQiICYmIFwKLSsgICAgICBm dW5jX2ZhdGFsX2hlbHAgInlvdSBtdXN0IHNwZWNpZnkgYSBDT01NQU5EIgotKwotKyAgICAjIEhh bmRsZSAtZGxvcGVuIGZsYWdzIGltbWVkaWF0ZWx5LgotKyAgICBmb3IgZmlsZSBpbiAkZXhlY3V0 ZV9kbGZpbGVzOyBkbwotKyAgICAgIHRlc3QgLWYgIiRmaWxlIiBcCi0rCXx8IGZ1bmNfZmF0YWxf aGVscCAiXGAkZmlsZScgaXMgbm90IGEgZmlsZSIKLSsKLSsgICAgICBkaXI9Ci0rICAgICAgY2Fz ZSAkZmlsZSBpbgotKyAgICAgICoubGEpCi0rCSMgQ2hlY2sgdG8gc2VlIHRoYXQgdGhpcyByZWFs bHkgaXMgYSBsaWJ0b29sIGFyY2hpdmUuCi0rCWZ1bmNfbGFsaWJfdW5zYWZlX3AgIiRmaWxlIiBc Ci0rCSAgfHwgZnVuY19mYXRhbF9oZWxwICJcYCRsaWInIGlzIG5vdCBhIHZhbGlkIGxpYnRvb2wg YXJjaGl2ZSIKLSsKLSsJIyBSZWFkIHRoZSBsaWJ0b29sIGxpYnJhcnkuCi0rCWRsbmFtZT0KLSsJ bGlicmFyeV9uYW1lcz0KLSsJZnVuY19zb3VyY2UgIiRmaWxlIgotKwotKwkjIFNraXAgdGhpcyBs aWJyYXJ5IGlmIGl0IGNhbm5vdCBiZSBkbG9wZW5lZC4KLSsJaWYgdGVzdCAteiAiJGRsbmFtZSI7 IHRoZW4KLSsJICAjIFdhcm4gaWYgaXQgd2FzIGEgc2hhcmVkIGxpYnJhcnkuCi0rCSAgdGVzdCAt biAiJGxpYnJhcnlfbmFtZXMiICYmIFwKLSsJICAgIGZ1bmNfd2FybmluZyAiXGAkZmlsZScgd2Fz IG5vdCBsaW5rZWQgd2l0aCBcYC1leHBvcnQtZHluYW1pYyciCi0rCSAgY29udGludWUKLSsJZmkK LSsKLSsJZnVuY19kaXJuYW1lICIkZmlsZSIgIiIgIi4iCi0rCWRpcj0iJGZ1bmNfZGlybmFtZV9y ZXN1bHQiCi0rCi0rCWlmIHRlc3QgLWYgIiRkaXIvJG9iamRpci8kZGxuYW1lIjsgdGhlbgotKwkg IGRpcj0iJGRpci8kb2JqZGlyIgotKwllbHNlCi0rCSAgaWYgdGVzdCAhIC1mICIkZGlyLyRkbG5h bWUiOyB0aGVuCi0rCSAgICBmdW5jX2ZhdGFsX2Vycm9yICJjYW5ub3QgZmluZCBcYCRkbG5hbWUn IGluIFxgJGRpcicgb3IgXGAkZGlyLyRvYmpkaXInIgotKwkgIGZpCi0rCWZpCi0rCTs7Ci0rCi0r ICAgICAgKi5sbykKLSsJIyBKdXN0IGFkZCB0aGUgZGlyZWN0b3J5IGNvbnRhaW5pbmcgdGhlIC5s byBmaWxlLgotKwlmdW5jX2Rpcm5hbWUgIiRmaWxlIiAiIiAiLiIKLSsJZGlyPSIkZnVuY19kaXJu YW1lX3Jlc3VsdCIKLSsJOzsKLSsKLSsgICAgICAqKQotKwlmdW5jX3dhcm5pbmcgIlxgLWRsb3Bl bicgaXMgaWdub3JlZCBmb3Igbm9uLWxpYnRvb2wgbGlicmFyaWVzIGFuZCBvYmplY3RzIgotKwlj b250aW51ZQotKwk7OwotKyAgICAgIGVzYWMKLSsKLSsgICAgICAjIEdldCB0aGUgYWJzb2x1dGUg cGF0aG5hbWUuCi0rICAgICAgYWJzZGlyPWBjZCAiJGRpciIgJiYgcHdkYAotKyAgICAgIHRlc3Qg LW4gIiRhYnNkaXIiICYmIGRpcj0iJGFic2RpciIKLSsKLSsgICAgICAjIE5vdyBhZGQgdGhlIGRp cmVjdG9yeSB0byBzaGxpYnBhdGhfdmFyLgotKyAgICAgIGlmIGV2YWwgInRlc3QgLXogXCJcJCRz aGxpYnBhdGhfdmFyXCIiOyB0aGVuCi0rCWV2YWwgIiRzaGxpYnBhdGhfdmFyPVwiXCRkaXJcIiIK LSsgICAgICBlbHNlCi0rCWV2YWwgIiRzaGxpYnBhdGhfdmFyPVwiXCRkaXI6XCQkc2hsaWJwYXRo X3ZhclwiIgotKyAgICAgIGZpCi0rICAgIGRvbmUKLSsKLSsgICAgIyBUaGlzIHZhcmlhYmxlIHRl bGxzIHdyYXBwZXIgc2NyaXB0cyBqdXN0IHRvIHNldCBzaGxpYnBhdGhfdmFyCi0rICAgICMgcmF0 aGVyIHRoYW4gcnVubmluZyB0aGVpciBwcm9ncmFtcy4KLSsgICAgbGlidG9vbF9leGVjdXRlX21h Z2ljPSIkbWFnaWMiCi0rCi0rICAgICMgQ2hlY2sgaWYgYW55IG9mIHRoZSBhcmd1bWVudHMgaXMg YSB3cmFwcGVyIHNjcmlwdC4KLSsgICAgYXJncz0KLSsgICAgZm9yIGZpbGUKLSsgICAgZG8KLSsg ICAgICBjYXNlICRmaWxlIGluCi0rICAgICAgLSopIDs7Ci0rICAgICAgKikKLSsJIyBEbyBhIHRl c3QgdG8gc2VlIGlmIHRoaXMgaXMgcmVhbGx5IGEgbGlidG9vbCBwcm9ncmFtLgotKwlpZiBmdW5j X2x0d3JhcHBlcl9zY3JpcHRfcCAiJGZpbGUiOyB0aGVuCi0rCSAgZnVuY19zb3VyY2UgIiRmaWxl IgotKwkgICMgVHJhbnNmb3JtIGFyZyB0byB3cmFwcGVkIG5hbWUuCi0rCSAgZmlsZT0iJHByb2dk aXIvJHByb2dyYW0iCi0rCWVsaWYgZnVuY19sdHdyYXBwZXJfZXhlY3V0YWJsZV9wICIkZmlsZSI7 IHRoZW4KLSsJICBmdW5jX2x0d3JhcHBlcl9zY3JpcHRuYW1lICIkZmlsZSIKLSsJICBmdW5jX3Nv dXJjZSAiJGZ1bmNfbHR3cmFwcGVyX3NjcmlwdG5hbWVfcmVzdWx0IgotKwkgICMgVHJhbnNmb3Jt IGFyZyB0byB3cmFwcGVkIG5hbWUuCi0rCSAgZmlsZT0iJHByb2dkaXIvJHByb2dyYW0iCi0rCWZp Ci0rCTs7Ci0rICAgICAgZXNhYwotKyAgICAgICMgUXVvdGUgYXJndW1lbnRzICh0byBwcmVzZXJ2 ZSBzaGVsbCBtZXRhY2hhcmFjdGVycykuCi0rICAgICAgZnVuY19xdW90ZV9mb3JfZXZhbCAiJGZp bGUiCi0rICAgICAgYXJncz0iJGFyZ3MgJGZ1bmNfcXVvdGVfZm9yX2V2YWxfcmVzdWx0IgotKyAg ICBkb25lCi0rCi0rICAgIGlmIHRlc3QgIlgkb3B0X2RyeV9ydW4iID0gWGZhbHNlOyB0aGVuCi0r ICAgICAgaWYgdGVzdCAtbiAiJHNobGlicGF0aF92YXIiOyB0aGVuCi0rCSMgRXhwb3J0IHRoZSBz aGxpYnBhdGhfdmFyLgotKwlldmFsICJleHBvcnQgJHNobGlicGF0aF92YXIiCi0rICAgICAgZmkK LSsKLSsgICAgICAjIFJlc3RvcmUgc2F2ZWQgZW52aXJvbm1lbnQgdmFyaWFibGVzCi0rICAgICAg Zm9yIGx0X3ZhciBpbiBMQU5HIExBTkdVQUdFIExDX0FMTCBMQ19DVFlQRSBMQ19DT0xMQVRFIExD X01FU1NBR0VTCi0rICAgICAgZG8KLSsJZXZhbCAiaWYgdGVzdCBcIlwke3NhdmVfJGx0X3Zhcitz ZXR9XCIgPSBzZXQ7IHRoZW4KLSsgICAgICAgICAgICAgICAgJGx0X3Zhcj1cJHNhdmVfJGx0X3Zh cjsgZXhwb3J0ICRsdF92YXIKLSsJICAgICAgZWxzZQotKwkJJGx0X3Vuc2V0ICRsdF92YXIKLSsJ ICAgICAgZmkiCi0rICAgICAgZG9uZQotKwotKyAgICAgICMgTm93IHByZXBhcmUgdG8gYWN0dWFs bHkgZXhlYyB0aGUgY29tbWFuZC4KLSsgICAgICBleGVjX2NtZD0iXCRjbWQkYXJncyIKLSsgICAg ZWxzZQotKyAgICAgICMgRGlzcGxheSB3aGF0IHdvdWxkIGJlIGRvbmUuCi0rICAgICAgaWYgdGVz dCAtbiAiJHNobGlicGF0aF92YXIiOyB0aGVuCi0rCWV2YWwgIlwkRUNITyBcIlwkc2hsaWJwYXRo X3Zhcj1cJCRzaGxpYnBhdGhfdmFyXCIiCi0rCSRFQ0hPICJleHBvcnQgJHNobGlicGF0aF92YXIi Ci0rICAgICAgZmkKLSsgICAgICAkRUNITyAiJGNtZCRhcmdzIgotKyAgICAgIGV4aXQgJEVYSVRf U1VDQ0VTUwotKyAgICBmaQotK30KLSsKLSt0ZXN0ICIkbW9kZSIgPSBleGVjdXRlICYmIGZ1bmNf bW9kZV9leGVjdXRlICR7MSsiJEAifQotKwotKwotKyMgZnVuY19tb2RlX2ZpbmlzaCBhcmcuLi4K LStmdW5jX21vZGVfZmluaXNoICgpCi0rewotKyAgICAkb3B0X2RlYnVnCi0rICAgIGxpYmRpcnM9 IiRub25vcHQiCi0rICAgIGFkbWluY21kcz0KLSsKLSsgICAgaWYgdGVzdCAtbiAiJGZpbmlzaF9j bWRzJGZpbmlzaF9ldmFsIiAmJiB0ZXN0IC1uICIkbGliZGlycyI7IHRoZW4KLSsgICAgICBmb3Ig ZGlyCi0rICAgICAgZG8KLSsJbGliZGlycz0iJGxpYmRpcnMgJGRpciIKLSsgICAgICBkb25lCi0r Ci0rICAgICAgZm9yIGxpYmRpciBpbiAkbGliZGlyczsgZG8KLSsJaWYgdGVzdCAtbiAiJGZpbmlz aF9jbWRzIjsgdGhlbgotKwkgICMgRG8gZWFjaCBjb21tYW5kIGluIHRoZSBmaW5pc2ggY29tbWFu ZHMuCi0rCSAgZnVuY19leGVjdXRlX2NtZHMgIiRmaW5pc2hfY21kcyIgJ2FkbWluY21kcz0iJGFk bWluY21kcwotKyciJGNtZCInIicKLSsJZmkKLSsJaWYgdGVzdCAtbiAiJGZpbmlzaF9ldmFsIjsg dGhlbgotKwkgICMgRG8gdGhlIHNpbmdsZSBmaW5pc2hfZXZhbC4KLSsJICBldmFsIGNtZHM9XCIk ZmluaXNoX2V2YWxcIgotKwkgICRvcHRfZHJ5X3J1biB8fCBldmFsICIkY21kcyIgfHwgYWRtaW5j bWRzPSIkYWRtaW5jbWRzCi0rICAgICAgICRjbWRzIgotKwlmaQotKyAgICAgIGRvbmUKLSsgICAg ZmkKLSsKLSsgICAgIyBFeGl0IGhlcmUgaWYgdGhleSB3YW50ZWQgc2lsZW50IG1vZGUuCi0rICAg ICRvcHRfc2lsZW50ICYmIGV4aXQgJEVYSVRfU1VDQ0VTUwotKwotKyAgICAkRUNITyAiWC0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0iIHwgJFhzZWQKLSsgICAgJEVDSE8gIkxpYnJhcmllcyBoYXZlIGJlZW4gaW5zdGFs bGVkIGluOiIKLSsgICAgZm9yIGxpYmRpciBpbiAkbGliZGlyczsgZG8KLSsgICAgICAkRUNITyAi ICAgJGxpYmRpciIKLSsgICAgZG9uZQotKyAgICAkRUNITwotKyAgICAkRUNITyAiSWYgeW91IGV2 ZXIgaGFwcGVuIHRvIHdhbnQgdG8gbGluayBhZ2FpbnN0IGluc3RhbGxlZCBsaWJyYXJpZXMiCi0r ICAgICRFQ0hPICJpbiBhIGdpdmVuIGRpcmVjdG9yeSwgTElCRElSLCB5b3UgbXVzdCBlaXRoZXIg dXNlIGxpYnRvb2wsIGFuZCIKLSsgICAgJEVDSE8gInNwZWNpZnkgdGhlIGZ1bGwgcGF0aG5hbWUg b2YgdGhlIGxpYnJhcnksIG9yIHVzZSB0aGUgXGAtTExJQkRJUiciCi0rICAgICRFQ0hPICJmbGFn IGR1cmluZyBsaW5raW5nIGFuZCBkbyBhdCBsZWFzdCBvbmUgb2YgdGhlIGZvbGxvd2luZzoiCi0r ICAgIGlmIHRlc3QgLW4gIiRzaGxpYnBhdGhfdmFyIjsgdGhlbgotKyAgICAgICRFQ0hPICIgICAt IGFkZCBMSUJESVIgdG8gdGhlIFxgJHNobGlicGF0aF92YXInIGVudmlyb25tZW50IHZhcmlhYmxl IgotKyAgICAgICRFQ0hPICIgICAgIGR1cmluZyBleGVjdXRpb24iCi0rICAgIGZpCi0rICAgIGlm IHRlc3QgLW4gIiRydW5wYXRoX3ZhciI7IHRoZW4KLSsgICAgICAkRUNITyAiICAgLSBhZGQgTElC RElSIHRvIHRoZSBcYCRydW5wYXRoX3ZhcicgZW52aXJvbm1lbnQgdmFyaWFibGUiCi0rICAgICAg JEVDSE8gIiAgICAgZHVyaW5nIGxpbmtpbmciCi0rICAgIGZpCi0rICAgIGlmIHRlc3QgLW4gIiRo YXJkY29kZV9saWJkaXJfZmxhZ19zcGVjIjsgdGhlbgotKyAgICAgIGxpYmRpcj1MSUJESVIKLSsg ICAgICBldmFsIGZsYWc9XCIkaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY1wiCi0rCi0rICAgICAg JEVDSE8gIiAgIC0gdXNlIHRoZSBcYCRmbGFnJyBsaW5rZXIgZmxhZyIKLSsgICAgZmkKLSsgICAg aWYgdGVzdCAtbiAiJGFkbWluY21kcyI7IHRoZW4KLSsgICAgICAkRUNITyAiICAgLSBoYXZlIHlv dXIgc3lzdGVtIGFkbWluaXN0cmF0b3IgcnVuIHRoZXNlIGNvbW1hbmRzOiRhZG1pbmNtZHMiCi0r ICAgIGZpCi0rICAgIGlmIHRlc3QgLWYgL2V0Yy9sZC5zby5jb25mOyB0aGVuCi0rICAgICAgJEVD SE8gIiAgIC0gaGF2ZSB5b3VyIHN5c3RlbSBhZG1pbmlzdHJhdG9yIGFkZCBMSUJESVIgdG8gXGAv ZXRjL2xkLnNvLmNvbmYnIgotKyAgICBmaQotKyAgICAkRUNITwotKwotKyAgICAkRUNITyAiU2Vl IGFueSBvcGVyYXRpbmcgc3lzdGVtIGRvY3VtZW50YXRpb24gYWJvdXQgc2hhcmVkIGxpYnJhcmll cyBmb3IiCi0rICAgIGNhc2UgJGhvc3QgaW4KLSsgICAgICBzb2xhcmlzMi5bNjc4OV18c29sYXJp czIuMVswLTldKQotKyAgICAgICAgJEVDSE8gIm1vcmUgaW5mb3JtYXRpb24sIHN1Y2ggYXMgdGhl IGxkKDEpLCBjcmxlKDEpIGFuZCBsZC5zbyg4KSBtYW51YWwiCi0rCSRFQ0hPICJwYWdlcy4iCi0r CTs7Ci0rICAgICAgKikKLSsgICAgICAgICRFQ0hPICJtb3JlIGluZm9ybWF0aW9uLCBzdWNoIGFz IHRoZSBsZCgxKSBhbmQgbGQuc28oOCkgbWFudWFsIHBhZ2VzLiIKLSsgICAgICAgIDs7Ci0rICAg IGVzYWMKLSsgICAgJEVDSE8gIlgtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIiB8ICRYc2VkCi0rICAgIGV4aXQgJEVY SVRfU1VDQ0VTUwotK30KLSsKLSt0ZXN0ICIkbW9kZSIgPSBmaW5pc2ggJiYgZnVuY19tb2RlX2Zp bmlzaCAkezErIiRAIn0KLSsKLSsKLSsjIGZ1bmNfbW9kZV9pbnN0YWxsIGFyZy4uLgotK2Z1bmNf bW9kZV9pbnN0YWxsICgpCi0rewotKyAgICAkb3B0X2RlYnVnCi0rICAgICMgVGhlcmUgbWF5IGJl IGFuIG9wdGlvbmFsIHNoKDEpIGFyZ3VtZW50IGF0IHRoZSBiZWdpbm5pbmcgb2YKLSsgICAgIyBp bnN0YWxsX3Byb2cgKGVzcGVjaWFsbHkgb24gV2luZG93cyBOVCkuCi0rICAgIGlmIHRlc3QgIiRu b25vcHQiID0gIiRTSEVMTCIgfHwgdGVzdCAiJG5vbm9wdCIgPSAvYmluL3NoIHx8Ci0rICAgICAg ICMgQWxsb3cgdGhlIHVzZSBvZiBHTlUgc2h0b29sJ3MgaW5zdGFsbCBjb21tYW5kLgotKyAgICAg ICAkRUNITyAiWCRub25vcHQiIHwgJEdSRVAgc2h0b29sID4vZGV2L251bGw7IHRoZW4KLSsgICAg ICAjIEFlc3RoZXRpY2FsbHkgcXVvdGUgaXQuCi0rICAgICAgZnVuY19xdW90ZV9mb3JfZXZhbCAi JG5vbm9wdCIKLSsgICAgICBpbnN0YWxsX3Byb2c9IiRmdW5jX3F1b3RlX2Zvcl9ldmFsX3Jlc3Vs dCAiCi0rICAgICAgYXJnPSQxCi0rICAgICAgc2hpZnQKLSsgICAgZWxzZQotKyAgICAgIGluc3Rh bGxfcHJvZz0KLSsgICAgICBhcmc9JG5vbm9wdAotKyAgICBmaQotKwotKyAgICAjIFRoZSByZWFs IGZpcnN0IGFyZ3VtZW50IHNob3VsZCBiZSB0aGUgbmFtZSBvZiB0aGUgaW5zdGFsbGF0aW9uIHBy b2dyYW0uCi0rICAgICMgQWVzdGhldGljYWxseSBxdW90ZSBpdC4KLSsgICAgZnVuY19xdW90ZV9m b3JfZXZhbCAiJGFyZyIKLSsgICAgaW5zdGFsbF9wcm9nPSIkaW5zdGFsbF9wcm9nJGZ1bmNfcXVv dGVfZm9yX2V2YWxfcmVzdWx0IgotKwotKyAgICAjIFdlIG5lZWQgdG8gYWNjZXB0IGF0IGxlYXN0 IGFsbCB0aGUgQlNEIGluc3RhbGwgZmxhZ3MuCi0rICAgIGRlc3Q9Ci0rICAgIGZpbGVzPQotKyAg ICBvcHRzPQotKyAgICBwcmV2PQotKyAgICBpbnN0YWxsX3R5cGU9Ci0rICAgIGlzZGlyPW5vCi0r ICAgIHN0cmlwbWU9Ci0rICAgIGZvciBhcmcKLSsgICAgZG8KLSsgICAgICBpZiB0ZXN0IC1uICIk ZGVzdCI7IHRoZW4KLSsJZmlsZXM9IiRmaWxlcyAkZGVzdCIKLSsJZGVzdD0kYXJnCi0rCWNvbnRp bnVlCi0rICAgICAgZmkKLSsKLSsgICAgICBjYXNlICRhcmcgaW4KLSsgICAgICAtZCkgaXNkaXI9 eWVzIDs7Ci0rICAgICAgLWYpCi0rCWNhc2UgIiAkaW5zdGFsbF9wcm9nICIgaW4KLSsJKltcXFwg L11jcFwgKikgOzsKLSsJKikgcHJldj0kYXJnIDs7Ci0rCWVzYWMKLSsJOzsKLSsgICAgICAtZyB8 IC1tIHwgLW8pCi0rCXByZXY9JGFyZwotKwk7OwotKyAgICAgIC1zKQotKwlzdHJpcG1lPSIgLXMi Ci0rCWNvbnRpbnVlCi0rCTs7Ci0rICAgICAgLSopCi0rCTs7Ci0rICAgICAgKikKLSsJIyBJZiB0 aGUgcHJldmlvdXMgb3B0aW9uIG5lZWRlZCBhbiBhcmd1bWVudCwgdGhlbiBza2lwIGl0LgotKwlp ZiB0ZXN0IC1uICIkcHJldiI7IHRoZW4KLSsJICBwcmV2PQotKwllbHNlCi0rCSAgZGVzdD0kYXJn Ci0rCSAgY29udGludWUKLSsJZmkKLSsJOzsKLSsgICAgICBlc2FjCi0rCi0rICAgICAgIyBBZXN0 aGV0aWNhbGx5IHF1b3RlIHRoZSBhcmd1bWVudC4KLSsgICAgICBmdW5jX3F1b3RlX2Zvcl9ldmFs ICIkYXJnIgotKyAgICAgIGluc3RhbGxfcHJvZz0iJGluc3RhbGxfcHJvZyAkZnVuY19xdW90ZV9m b3JfZXZhbF9yZXN1bHQiCi0rICAgIGRvbmUKLSsKLSsgICAgdGVzdCAteiAiJGluc3RhbGxfcHJv ZyIgJiYgXAotKyAgICAgIGZ1bmNfZmF0YWxfaGVscCAieW91IG11c3Qgc3BlY2lmeSBhbiBpbnN0 YWxsIHByb2dyYW0iCi0rCi0rICAgIHRlc3QgLW4gIiRwcmV2IiAmJiBcCi0rICAgICAgZnVuY19m YXRhbF9oZWxwICJ0aGUgXGAkcHJldicgb3B0aW9uIHJlcXVpcmVzIGFuIGFyZ3VtZW50IgotKwot KyAgICBpZiB0ZXN0IC16ICIkZmlsZXMiOyB0aGVuCi0rICAgICAgaWYgdGVzdCAteiAiJGRlc3Qi OyB0aGVuCi0rCWZ1bmNfZmF0YWxfaGVscCAibm8gZmlsZSBvciBkZXN0aW5hdGlvbiBzcGVjaWZp ZWQiCi0rICAgICAgZWxzZQotKwlmdW5jX2ZhdGFsX2hlbHAgInlvdSBtdXN0IHNwZWNpZnkgYSBk ZXN0aW5hdGlvbiIKLSsgICAgICBmaQotKyAgICBmaQotKwotKyAgICAjIFN0cmlwIGFueSB0cmFp bGluZyBzbGFzaCBmcm9tIHRoZSBkZXN0aW5hdGlvbi4KLSsgICAgZnVuY19zdHJpcG5hbWUgJycg Jy8nICIkZGVzdCIKLSsgICAgZGVzdD0kZnVuY19zdHJpcG5hbWVfcmVzdWx0Ci0rCi0rICAgICMg Q2hlY2sgdG8gc2VlIHRoYXQgdGhlIGRlc3RpbmF0aW9uIGlzIGEgZGlyZWN0b3J5LgotKyAgICB0 ZXN0IC1kICIkZGVzdCIgJiYgaXNkaXI9eWVzCi0rICAgIGlmIHRlc3QgIiRpc2RpciIgPSB5ZXM7 IHRoZW4KLSsgICAgICBkZXN0ZGlyPSIkZGVzdCIKLSsgICAgICBkZXN0bmFtZT0KLSsgICAgZWxz ZQotKyAgICAgIGZ1bmNfZGlybmFtZV9hbmRfYmFzZW5hbWUgIiRkZXN0IiAiIiAiLiIKLSsgICAg ICBkZXN0ZGlyPSIkZnVuY19kaXJuYW1lX3Jlc3VsdCIKLSsgICAgICBkZXN0bmFtZT0iJGZ1bmNf YmFzZW5hbWVfcmVzdWx0IgotKwotKyAgICAgICMgTm90IGEgZGlyZWN0b3J5LCBzbyBjaGVjayB0 byBzZWUgdGhhdCB0aGVyZSBpcyBvbmx5IG9uZSBmaWxlIHNwZWNpZmllZC4KLSsgICAgICBzZXQg ZHVtbXkgJGZpbGVzOyBzaGlmdAotKyAgICAgIHRlc3QgIiQjIiAtZ3QgMSAmJiBcCi0rCWZ1bmNf ZmF0YWxfaGVscCAiXGAkZGVzdCcgaXMgbm90IGEgZGlyZWN0b3J5IgotKyAgICBmaQotKyAgICBj YXNlICRkZXN0ZGlyIGluCi0rICAgIFtcXC9dKiB8IFtBLVphLXpdOltcXC9dKikgOzsKLSsgICAg KikKLSsgICAgICBmb3IgZmlsZSBpbiAkZmlsZXM7IGRvCi0rCWNhc2UgJGZpbGUgaW4KLSsJKi5s bykgOzsKLSsJKikKLSsJICBmdW5jX2ZhdGFsX2hlbHAgIlxgJGRlc3RkaXInIG11c3QgYmUgYW4g YWJzb2x1dGUgZGlyZWN0b3J5IG5hbWUiCi0rCSAgOzsKLSsJZXNhYwotKyAgICAgIGRvbmUKLSsg ICAgICA7OwotKyAgICBlc2FjCi0rCi0rICAgICMgVGhpcyB2YXJpYWJsZSB0ZWxscyB3cmFwcGVy IHNjcmlwdHMganVzdCB0byBzZXQgdmFyaWFibGVzIHJhdGhlcgotKyAgICAjIHRoYW4gcnVubmlu ZyB0aGVpciBwcm9ncmFtcy4KLSsgICAgbGlidG9vbF9pbnN0YWxsX21hZ2ljPSIkbWFnaWMiCi0r Ci0rICAgIHN0YXRpY2xpYnM9Ci0rICAgIGZ1dHVyZV9saWJkaXJzPQotKyAgICBjdXJyZW50X2xp YmRpcnM9Ci0rICAgIGZvciBmaWxlIGluICRmaWxlczsgZG8KLSsKLSsgICAgICAjIERvIGVhY2gg aW5zdGFsbGF0aW9uLgotKyAgICAgIGNhc2UgJGZpbGUgaW4KLSsgICAgICAqLiRsaWJleHQpCi0r CSMgRG8gdGhlIHN0YXRpYyBsaWJyYXJpZXMgbGF0ZXIuCi0rCXN0YXRpY2xpYnM9IiRzdGF0aWNs aWJzICRmaWxlIgotKwk7OwotKwotKyAgICAgICoubGEpCi0rCSMgQ2hlY2sgdG8gc2VlIHRoYXQg dGhpcyByZWFsbHkgaXMgYSBsaWJ0b29sIGFyY2hpdmUuCi0rCWZ1bmNfbGFsaWJfdW5zYWZlX3Ag IiRmaWxlIiBcCi0rCSAgfHwgZnVuY19mYXRhbF9oZWxwICJcYCRmaWxlJyBpcyBub3QgYSB2YWxp ZCBsaWJ0b29sIGFyY2hpdmUiCi0rCi0rCWxpYnJhcnlfbmFtZXM9Ci0rCW9sZF9saWJyYXJ5PQot KwlyZWxpbmtfY29tbWFuZD0KLSsJZnVuY19zb3VyY2UgIiRmaWxlIgotKwotKwkjIEFkZCB0aGUg bGliZGlyIHRvIGN1cnJlbnRfbGliZGlycyBpZiBpdCBpcyB0aGUgZGVzdGluYXRpb24uCi0rCWlm IHRlc3QgIlgkZGVzdGRpciIgPSAiWCRsaWJkaXIiOyB0aGVuCi0rCSAgY2FzZSAiJGN1cnJlbnRf bGliZGlycyAiIGluCi0rCSAgKiIgJGxpYmRpciAiKikgOzsKLSsJICAqKSBjdXJyZW50X2xpYmRp cnM9IiRjdXJyZW50X2xpYmRpcnMgJGxpYmRpciIgOzsKLSsJICBlc2FjCi0rCWVsc2UKLSsJICAj IE5vdGUgdGhlIGxpYmRpciBhcyBhIGZ1dHVyZSBsaWJkaXIuCi0rCSAgY2FzZSAiJGZ1dHVyZV9s aWJkaXJzICIgaW4KLSsJICAqIiAkbGliZGlyICIqKSA7OwotKwkgICopIGZ1dHVyZV9saWJkaXJz PSIkZnV0dXJlX2xpYmRpcnMgJGxpYmRpciIgOzsKLSsJICBlc2FjCi0rCWZpCi0rCi0rCWZ1bmNf ZGlybmFtZSAiJGZpbGUiICIvIiAiIgotKwlkaXI9IiRmdW5jX2Rpcm5hbWVfcmVzdWx0IgotKwlk aXI9IiRkaXIkb2JqZGlyIgotKwotKwlpZiB0ZXN0IC1uICIkcmVsaW5rX2NvbW1hbmQiOyB0aGVu Ci0rCSAgIyBEZXRlcm1pbmUgdGhlIHByZWZpeCB0aGUgdXNlciBoYXMgYXBwbGllZCB0byBvdXIg ZnV0dXJlIGRpci4KLSsJICBpbnN0X3ByZWZpeF9kaXI9YCRFQ0hPICJYJGRlc3RkaXIiIHwgJFhz ZWQgLWUgInMlJGxpYmRpclwkJSUiYAotKwotKwkgICMgRG9uJ3QgYWxsb3cgdGhlIHVzZXIgdG8g cGxhY2UgdXMgb3V0c2lkZSBvZiBvdXIgZXhwZWN0ZWQKLSsJICAjIGxvY2F0aW9uIGIvYyB0aGlz IHByZXZlbnRzIGZpbmRpbmcgZGVwZW5kZW50IGxpYnJhcmllcyB0aGF0Ci0rCSAgIyBhcmUgaW5z dGFsbGVkIHRvIHRoZSBzYW1lIHByZWZpeC4KLSsJICAjIEF0IHByZXNlbnQsIHRoaXMgY2hlY2sg ZG9lc24ndCBhZmZlY3Qgd2luZG93cyAuZGxsJ3MgdGhhdAotKwkgICMgYXJlIGluc3RhbGxlZCBp bnRvICRsaWJkaXIvLi4vYmluIChjdXJyZW50bHksIHRoYXQgd29ya3MgZmluZSkKLSsJICAjIGJ1 dCBpdCdzIHNvbWV0aGluZyB0byBrZWVwIGFuIGV5ZSBvbi4KLSsJICB0ZXN0ICIkaW5zdF9wcmVm aXhfZGlyIiA9ICIkZGVzdGRpciIgJiYgXAotKwkgICAgZnVuY19mYXRhbF9lcnJvciAiZXJyb3I6 IGNhbm5vdCBpbnN0YWxsIFxgJGZpbGUnIHRvIGEgZGlyZWN0b3J5IG5vdCBlbmRpbmcgaW4gJGxp YmRpciIKLSsKLSsJICBpZiB0ZXN0IC1uICIkaW5zdF9wcmVmaXhfZGlyIjsgdGhlbgotKwkgICAg IyBTdGljayB0aGUgaW5zdF9wcmVmaXhfZGlyIGRhdGEgaW50byB0aGUgbGluayBjb21tYW5kLgot KwkgICAgcmVsaW5rX2NvbW1hbmQ9YCRFQ0hPICJYJHJlbGlua19jb21tYW5kIiB8ICRYc2VkIC1l ICJzJUBpbnN0X3ByZWZpeF9kaXJAJS1pbnN0LXByZWZpeC1kaXIgJGluc3RfcHJlZml4X2RpciUi YAotKwkgIGVsc2UKLSsJICAgIHJlbGlua19jb21tYW5kPWAkRUNITyAiWCRyZWxpbmtfY29tbWFu ZCIgfCAkWHNlZCAtZSAicyVAaW5zdF9wcmVmaXhfZGlyQCUlImAKLSsJICBmaQotKwotKwkgIGZ1 bmNfd2FybmluZyAicmVsaW5raW5nIFxgJGZpbGUnIgotKwkgIGZ1bmNfc2hvd19ldmFsICIkcmVs aW5rX2NvbW1hbmQiIFwKLSsJICAgICdmdW5jX2ZhdGFsX2Vycm9yICJlcnJvcjogcmVsaW5rIFxg JGZpbGUnXCcnIHdpdGggdGhlIGFib3ZlIGNvbW1hbmQgYmVmb3JlIGluc3RhbGxpbmcgaXQiJwot KwlmaQotKwotKwkjIFNlZSB0aGUgbmFtZXMgb2YgdGhlIHNoYXJlZCBsaWJyYXJ5LgotKwlzZXQg ZHVtbXkgJGxpYnJhcnlfbmFtZXM7IHNoaWZ0Ci0rCWlmIHRlc3QgLW4gIiQxIjsgdGhlbgotKwkg IHJlYWxuYW1lPSIkMSIKLSsJICBzaGlmdAotKwotKwkgIHNyY25hbWU9IiRyZWFsbmFtZSIKLSsJ ICB0ZXN0IC1uICIkcmVsaW5rX2NvbW1hbmQiICYmIHNyY25hbWU9IiRyZWFsbmFtZSJUCi0rCi0r CSAgIyBJbnN0YWxsIHRoZSBzaGFyZWQgbGlicmFyeSBhbmQgYnVpbGQgdGhlIHN5bWxpbmtzLgot KwkgIGZ1bmNfc2hvd19ldmFsICIkaW5zdGFsbF9wcm9nICRkaXIvJHNyY25hbWUgJGRlc3RkaXIv JHJlYWxuYW1lIiBcCi0rCSAgICAgICdleGl0ICQ/JwotKwkgIHRzdHJpcG1lPSIkc3RyaXBtZSIK LSsJICBjYXNlICRob3N0X29zIGluCi0rCSAgY3lnd2luKiB8IG1pbmd3KiB8IHB3MzIqIHwgY2Vn Y2MqKQotKwkgICAgY2FzZSAkcmVhbG5hbWUgaW4KLSsJICAgICouZGxsLmEpCi0rCSAgICAgIHRz dHJpcG1lPSIiCi0rCSAgICAgIDs7Ci0rCSAgICBlc2FjCi0rCSAgICA7OwotKwkgIGVzYWMKLSsJ ICBpZiB0ZXN0IC1uICIkdHN0cmlwbWUiICYmIHRlc3QgLW4gIiRzdHJpcGxpYiI7IHRoZW4KLSsJ ICAgIGZ1bmNfc2hvd19ldmFsICIkc3RyaXBsaWIgJGRlc3RkaXIvJHJlYWxuYW1lIiAnZXhpdCAk PycKLSsJICBmaQotKwotKwkgIGlmIHRlc3QgIiQjIiAtZ3QgMDsgdGhlbgotKwkgICAgIyBEZWxl dGUgdGhlIG9sZCBzeW1saW5rcywgYW5kIGNyZWF0ZSBuZXcgb25lcy4KLSsJICAgICMgVHJ5IGBs biAtc2YnIGZpcnN0LCBiZWNhdXNlIHRoZSBgbG4nIGJpbmFyeSBtaWdodCBkZXBlbmQgb24KLSsJ ICAgICMgdGhlIHN5bWxpbmsgd2UgcmVwbGFjZSEgIFNvbGFyaXMgL2Jpbi9sbiBkb2VzIG5vdCB1 bmRlcnN0YW5kIC1mLAotKwkgICAgIyBzbyB3ZSBhbHNvIG5lZWQgdG8gdHJ5IHJtICYmIGxuIC1z LgotKwkgICAgZm9yIGxpbmtuYW1lCi0rCSAgICBkbwotKwkgICAgICB0ZXN0ICIkbGlua25hbWUi ICE9ICIkcmVhbG5hbWUiIFwKLSsJCSYmIGZ1bmNfc2hvd19ldmFsICIoY2QgJGRlc3RkaXIgJiYg eyAkTE5fUyAtZiAkcmVhbG5hbWUgJGxpbmtuYW1lIHx8IHsgJFJNICRsaW5rbmFtZSAmJiAkTE5f UyAkcmVhbG5hbWUgJGxpbmtuYW1lOyB9OyB9KSIKLSsJICAgIGRvbmUKLSsJICBmaQotKwotKwkg ICMgRG8gZWFjaCBjb21tYW5kIGluIHRoZSBwb3N0aW5zdGFsbCBjb21tYW5kcy4KLSsJICBsaWI9 IiRkZXN0ZGlyLyRyZWFsbmFtZSIKLSsJICBmdW5jX2V4ZWN1dGVfY21kcyAiJHBvc3RpbnN0YWxs X2NtZHMiICdleGl0ICQ/JwotKwlmaQotKwotKwkjIEluc3RhbGwgdGhlIHBzZXVkby1saWJyYXJ5 IGZvciBpbmZvcm1hdGlvbiBwdXJwb3Nlcy4KLSsJZnVuY19iYXNlbmFtZSAiJGZpbGUiCi0rCW5h bWU9IiRmdW5jX2Jhc2VuYW1lX3Jlc3VsdCIKLSsJaW5zdG5hbWU9IiRkaXIvJG5hbWUiaQotKwlm dW5jX3Nob3dfZXZhbCAiJGluc3RhbGxfcHJvZyAkaW5zdG5hbWUgJGRlc3RkaXIvJG5hbWUiICdl eGl0ICQ/JwotKwotKwkjIE1heWJlIGluc3RhbGwgdGhlIHN0YXRpYyBsaWJyYXJ5LCB0b28uCi0r CXRlc3QgLW4gIiRvbGRfbGlicmFyeSIgJiYgc3RhdGljbGlicz0iJHN0YXRpY2xpYnMgJGRpci8k b2xkX2xpYnJhcnkiCi0rCTs7Ci0rCi0rICAgICAgKi5sbykKLSsJIyBJbnN0YWxsIChpLmUuIGNv cHkpIGEgbGlidG9vbCBvYmplY3QuCi0rCi0rCSMgRmlndXJlIG91dCBkZXN0aW5hdGlvbiBmaWxl IG5hbWUsIGlmIGl0IHdhc24ndCBhbHJlYWR5IHNwZWNpZmllZC4KLSsJaWYgdGVzdCAtbiAiJGRl c3RuYW1lIjsgdGhlbgotKwkgIGRlc3RmaWxlPSIkZGVzdGRpci8kZGVzdG5hbWUiCi0rCWVsc2UK LSsJICBmdW5jX2Jhc2VuYW1lICIkZmlsZSIKLSsJICBkZXN0ZmlsZT0iJGZ1bmNfYmFzZW5hbWVf cmVzdWx0IgotKwkgIGRlc3RmaWxlPSIkZGVzdGRpci8kZGVzdGZpbGUiCi0rCWZpCi0rCi0rCSMg RGVkdWNlIHRoZSBuYW1lIG9mIHRoZSBkZXN0aW5hdGlvbiBvbGQtc3R5bGUgb2JqZWN0IGZpbGUu Ci0rCWNhc2UgJGRlc3RmaWxlIGluCi0rCSoubG8pCi0rCSAgZnVuY19sbzJvICIkZGVzdGZpbGUi Ci0rCSAgc3RhdGljZGVzdD0kZnVuY19sbzJvX3Jlc3VsdAotKwkgIDs7Ci0rCSouJG9iamV4dCkK LSsJICBzdGF0aWNkZXN0PSIkZGVzdGZpbGUiCi0rCSAgZGVzdGZpbGU9Ci0rCSAgOzsKLSsJKikK LSsJICBmdW5jX2ZhdGFsX2hlbHAgImNhbm5vdCBjb3B5IGEgbGlidG9vbCBvYmplY3QgdG8gXGAk ZGVzdGZpbGUnIgotKwkgIDs7Ci0rCWVzYWMKLSsKLSsJIyBJbnN0YWxsIHRoZSBsaWJ0b29sIG9i amVjdCBpZiByZXF1ZXN0ZWQuCi0rCXRlc3QgLW4gIiRkZXN0ZmlsZSIgJiYgXAotKwkgIGZ1bmNf c2hvd19ldmFsICIkaW5zdGFsbF9wcm9nICRmaWxlICRkZXN0ZmlsZSIgJ2V4aXQgJD8nCi0rCi0r CSMgSW5zdGFsbCB0aGUgb2xkIG9iamVjdCBpZiBlbmFibGVkLgotKwlpZiB0ZXN0ICIkYnVpbGRf b2xkX2xpYnMiID0geWVzOyB0aGVuCi0rCSAgIyBEZWR1Y2UgdGhlIG5hbWUgb2YgdGhlIG9sZC1z dHlsZSBvYmplY3QgZmlsZS4KLSsJICBmdW5jX2xvMm8gIiRmaWxlIgotKwkgIHN0YXRpY29iaj0k ZnVuY19sbzJvX3Jlc3VsdAotKwkgIGZ1bmNfc2hvd19ldmFsICIkaW5zdGFsbF9wcm9nIFwkc3Rh dGljb2JqIFwkc3RhdGljZGVzdCIgJ2V4aXQgJD8nCi0rCWZpCi0rCWV4aXQgJEVYSVRfU1VDQ0VT UwotKwk7OwotKwotKyAgICAgICopCi0rCSMgRmlndXJlIG91dCBkZXN0aW5hdGlvbiBmaWxlIG5h bWUsIGlmIGl0IHdhc24ndCBhbHJlYWR5IHNwZWNpZmllZC4KLSsJaWYgdGVzdCAtbiAiJGRlc3Ru YW1lIjsgdGhlbgotKwkgIGRlc3RmaWxlPSIkZGVzdGRpci8kZGVzdG5hbWUiCi0rCWVsc2UKLSsJ ICBmdW5jX2Jhc2VuYW1lICIkZmlsZSIKLSsJICBkZXN0ZmlsZT0iJGZ1bmNfYmFzZW5hbWVfcmVz dWx0IgotKwkgIGRlc3RmaWxlPSIkZGVzdGRpci8kZGVzdGZpbGUiCi0rCWZpCi0rCi0rCSMgSWYg dGhlIGZpbGUgaXMgbWlzc2luZywgYW5kIHRoZXJlIGlzIGEgLmV4ZSBvbiB0aGUgZW5kLCBzdHJp cCBpdAotKwkjIGJlY2F1c2UgaXQgaXMgbW9zdCBsaWtlbHkgYSBsaWJ0b29sIHNjcmlwdCB3ZSBh Y3R1YWxseSB3YW50IHRvCi0rCSMgaW5zdGFsbAotKwlzdHJpcHBlZF9leHQ9IiIKLSsJY2FzZSAk ZmlsZSBpbgotKwkgICouZXhlKQotKwkgICAgaWYgdGVzdCAhIC1mICIkZmlsZSI7IHRoZW4KLSsJ ICAgICAgZnVuY19zdHJpcG5hbWUgJycgJy5leGUnICIkZmlsZSIKLSsJICAgICAgZmlsZT0kZnVu Y19zdHJpcG5hbWVfcmVzdWx0Ci0rCSAgICAgIHN0cmlwcGVkX2V4dD0iLmV4ZSIKLSsJICAgIGZp Ci0rCSAgICA7OwotKwllc2FjCi0rCi0rCSMgRG8gYSB0ZXN0IHRvIHNlZSBpZiB0aGlzIGlzIHJl YWxseSBhIGxpYnRvb2wgcHJvZ3JhbS4KLSsJY2FzZSAkaG9zdCBpbgotKwkqY3lnd2luKiB8ICpt aW5ndyopCi0rCSAgICBpZiBmdW5jX2x0d3JhcHBlcl9leGVjdXRhYmxlX3AgIiRmaWxlIjsgdGhl bgotKwkgICAgICBmdW5jX2x0d3JhcHBlcl9zY3JpcHRuYW1lICIkZmlsZSIKLSsJICAgICAgd3Jh cHBlcj0kZnVuY19sdHdyYXBwZXJfc2NyaXB0bmFtZV9yZXN1bHQKLSsJICAgIGVsc2UKLSsJICAg ICAgZnVuY19zdHJpcG5hbWUgJycgJy5leGUnICIkZmlsZSIKLSsJICAgICAgd3JhcHBlcj0kZnVu Y19zdHJpcG5hbWVfcmVzdWx0Ci0rCSAgICBmaQotKwkgICAgOzsKLSsJKikKLSsJICAgIHdyYXBw ZXI9JGZpbGUKLSsJICAgIDs7Ci0rCWVzYWMKLSsJaWYgZnVuY19sdHdyYXBwZXJfc2NyaXB0X3Ag IiR3cmFwcGVyIjsgdGhlbgotKwkgIG5vdGluc3RfZGVwbGlicz0KLSsJICByZWxpbmtfY29tbWFu ZD0KLSsKLSsJICBmdW5jX3NvdXJjZSAiJHdyYXBwZXIiCi0rCi0rCSAgIyBDaGVjayB0aGUgdmFy aWFibGVzIHRoYXQgc2hvdWxkIGhhdmUgYmVlbiBzZXQuCi0rCSAgdGVzdCAteiAiJGdlbmVyYXRl ZF9ieV9saWJ0b29sX3ZlcnNpb24iICYmIFwKLSsJICAgIGZ1bmNfZmF0YWxfZXJyb3IgImludmFs aWQgbGlidG9vbCB3cmFwcGVyIHNjcmlwdCBcYCR3cmFwcGVyJyIKLSsKLSsJICBmaW5hbGl6ZT15 ZXMKLSsJICBmb3IgbGliIGluICRub3RpbnN0X2RlcGxpYnM7IGRvCi0rCSAgICAjIENoZWNrIHRv IHNlZSB0aGF0IGVhY2ggbGlicmFyeSBpcyBpbnN0YWxsZWQuCi0rCSAgICBsaWJkaXI9Ci0rCSAg ICBpZiB0ZXN0IC1mICIkbGliIjsgdGhlbgotKwkgICAgICBmdW5jX3NvdXJjZSAiJGxpYiIKLSsJ ICAgIGZpCi0rCSAgICBsaWJmaWxlPSIkbGliZGlyLyJgJEVDSE8gIlgkbGliIiB8ICRYc2VkIC1l ICdzJV4uKi8lJWcnYCAjIyMgdGVzdHN1aXRlOiBza2lwIG5lc3RlZCBxdW90aW5nIHRlc3QKLSsJ ICAgIGlmIHRlc3QgLW4gIiRsaWJkaXIiICYmIHRlc3QgISAtZiAiJGxpYmZpbGUiOyB0aGVuCi0r CSAgICAgIGZ1bmNfd2FybmluZyAiXGAkbGliJyBoYXMgbm90IGJlZW4gaW5zdGFsbGVkIGluIFxg JGxpYmRpciciCi0rCSAgICAgIGZpbmFsaXplPW5vCi0rCSAgICBmaQotKwkgIGRvbmUKLSsKLSsJ ICByZWxpbmtfY29tbWFuZD0KLSsJICBmdW5jX3NvdXJjZSAiJHdyYXBwZXIiCi0rCi0rCSAgb3V0 cHV0bmFtZT0KLSsJICBpZiB0ZXN0ICIkZmFzdF9pbnN0YWxsIiA9IG5vICYmIHRlc3QgLW4gIiRy ZWxpbmtfY29tbWFuZCI7IHRoZW4KLSsJICAgICRvcHRfZHJ5X3J1biB8fCB7Ci0rCSAgICAgIGlm IHRlc3QgIiRmaW5hbGl6ZSIgPSB5ZXM7IHRoZW4KLSsJICAgICAgICB0bXBkaXI9YGZ1bmNfbWt0 ZW1wZGlyYAotKwkJZnVuY19iYXNlbmFtZSAiJGZpbGUkc3RyaXBwZWRfZXh0IgotKwkJZmlsZT0i JGZ1bmNfYmFzZW5hbWVfcmVzdWx0IgotKwkgICAgICAgIG91dHB1dG5hbWU9IiR0bXBkaXIvJGZp bGUiCi0rCSAgICAgICAgIyBSZXBsYWNlIHRoZSBvdXRwdXQgZmlsZSBzcGVjaWZpY2F0aW9uLgot KwkgICAgICAgIHJlbGlua19jb21tYW5kPWAkRUNITyAiWCRyZWxpbmtfY29tbWFuZCIgfCAkWHNl ZCAtZSAncyVAT1VUUFVUQCUnIiRvdXRwdXRuYW1lIiclZydgCi0rCi0rCSAgICAgICAgJG9wdF9z aWxlbnQgfHwgewotKwkgICAgICAgICAgZnVuY19xdW90ZV9mb3JfZXhwYW5kICIkcmVsaW5rX2Nv bW1hbmQiCi0rCQkgIGV2YWwgImZ1bmNfZWNobyAkZnVuY19xdW90ZV9mb3JfZXhwYW5kX3Jlc3Vs dCIKLSsJICAgICAgICB9Ci0rCSAgICAgICAgaWYgZXZhbCAiJHJlbGlua19jb21tYW5kIjsgdGhl biA6Ci0rCSAgICAgICAgICBlbHNlCi0rCQkgIGZ1bmNfZXJyb3IgImVycm9yOiByZWxpbmsgXGAk ZmlsZScgd2l0aCB0aGUgYWJvdmUgY29tbWFuZCBiZWZvcmUgaW5zdGFsbGluZyBpdCIKLSsJCSAg JG9wdF9kcnlfcnVuIHx8ICR7Uk19ciAiJHRtcGRpciIKLSsJCSAgY29udGludWUKLSsJICAgICAg ICBmaQotKwkgICAgICAgIGZpbGU9IiRvdXRwdXRuYW1lIgotKwkgICAgICBlbHNlCi0rCSAgICAg ICAgZnVuY193YXJuaW5nICJjYW5ub3QgcmVsaW5rIFxgJGZpbGUnIgotKwkgICAgICBmaQotKwkg ICAgfQotKwkgIGVsc2UKLSsJICAgICMgSW5zdGFsbCB0aGUgYmluYXJ5IHRoYXQgd2UgY29tcGls ZWQgZWFybGllci4KLSsJICAgIGZpbGU9YCRFQ0hPICJYJGZpbGUkc3RyaXBwZWRfZXh0IiB8ICRY c2VkIC1lICJzJVwoW14vXSpcKSQlJG9iamRpci9cMSUiYAotKwkgIGZpCi0rCWZpCi0rCi0rCSMg cmVtb3ZlIC5leGUgc2luY2UgY3lnd2luIC91c3IvYmluL2luc3RhbGwgd2lsbCBhcHBlbmQgYW5v dGhlcgotKwkjIG9uZSBhbnl3YXkKLSsJY2FzZSAkaW5zdGFsbF9wcm9nLCRob3N0IGluCi0rCSov dXNyL2Jpbi9pbnN0YWxsKiwqY3lnd2luKikKLSsJICBjYXNlICRmaWxlOiRkZXN0ZmlsZSBpbgot KwkgICouZXhlOiouZXhlKQotKwkgICAgIyB0aGlzIGlzIG9rCi0rCSAgICA7OwotKwkgICouZXhl OiopCi0rCSAgICBkZXN0ZmlsZT0kZGVzdGZpbGUuZXhlCi0rCSAgICA7OwotKwkgICo6Ki5leGUp Ci0rCSAgICBmdW5jX3N0cmlwbmFtZSAnJyAnLmV4ZScgIiRkZXN0ZmlsZSIKLSsJICAgIGRlc3Rm aWxlPSRmdW5jX3N0cmlwbmFtZV9yZXN1bHQKLSsJICAgIDs7Ci0rCSAgZXNhYwotKwkgIDs7Ci0r CWVzYWMKLSsJZnVuY19zaG93X2V2YWwgIiRpbnN0YWxsX3Byb2dcJHN0cmlwbWUgXCRmaWxlIFwk ZGVzdGZpbGUiICdleGl0ICQ/JwotKwkkb3B0X2RyeV9ydW4gfHwgaWYgdGVzdCAtbiAiJG91dHB1 dG5hbWUiOyB0aGVuCi0rCSAgJHtSTX1yICIkdG1wZGlyIgotKwlmaQotKwk7OwotKyAgICAgIGVz YWMKLSsgICAgZG9uZQotKwotKyAgICBmb3IgZmlsZSBpbiAkc3RhdGljbGliczsgZG8KLSsgICAg ICBmdW5jX2Jhc2VuYW1lICIkZmlsZSIKLSsgICAgICBuYW1lPSIkZnVuY19iYXNlbmFtZV9yZXN1 bHQiCi0rCi0rICAgICAgIyBTZXQgdXAgdGhlIHJhbmxpYiBwYXJhbWV0ZXJzLgotKyAgICAgIG9s ZGxpYj0iJGRlc3RkaXIvJG5hbWUiCi0rCi0rICAgICAgZnVuY19zaG93X2V2YWwgIiRpbnN0YWxs X3Byb2cgXCRmaWxlIFwkb2xkbGliIiAnZXhpdCAkPycKLSsKLSsgICAgICBpZiB0ZXN0IC1uICIk c3RyaXBtZSIgJiYgdGVzdCAtbiAiJG9sZF9zdHJpcGxpYiI7IHRoZW4KLSsJZnVuY19zaG93X2V2 YWwgIiRvbGRfc3RyaXBsaWIgJG9sZGxpYiIgJ2V4aXQgJD8nCi0rICAgICAgZmkKLSsKLSsgICAg ICAjIERvIGVhY2ggY29tbWFuZCBpbiB0aGUgcG9zdGluc3RhbGwgY29tbWFuZHMuCi0rICAgICAg ZnVuY19leGVjdXRlX2NtZHMgIiRvbGRfcG9zdGluc3RhbGxfY21kcyIgJ2V4aXQgJD8nCi0rICAg IGRvbmUKLSsKLSsgICAgdGVzdCAtbiAiJGZ1dHVyZV9saWJkaXJzIiAmJiBcCi0rICAgICAgZnVu Y193YXJuaW5nICJyZW1lbWJlciB0byBydW4gXGAkcHJvZ25hbWUgLS1maW5pc2gkZnV0dXJlX2xp YmRpcnMnIgotKwotKyAgICBpZiB0ZXN0IC1uICIkY3VycmVudF9saWJkaXJzIjsgdGhlbgotKyAg ICAgICMgTWF5YmUganVzdCBkbyBhIGRyeSBydW4uCi0rICAgICAgJG9wdF9kcnlfcnVuICYmIGN1 cnJlbnRfbGliZGlycz0iIC1uJGN1cnJlbnRfbGliZGlycyIKLSsgICAgICBleGVjX2NtZD0nJFNI RUxMICRwcm9ncGF0aCAkcHJlc2VydmVfYXJncyAtLWZpbmlzaCRjdXJyZW50X2xpYmRpcnMnCi0r ICAgIGVsc2UKLSsgICAgICBleGl0ICRFWElUX1NVQ0NFU1MKLSsgICAgZmkKLSt9Ci0rCi0rdGVz dCAiJG1vZGUiID0gaW5zdGFsbCAmJiBmdW5jX21vZGVfaW5zdGFsbCAkezErIiRAIn0KLSsKLSsK LSsjIGZ1bmNfZ2VuZXJhdGVfZGxzeW1zIG91dHB1dG5hbWUgb3JpZ2luYXRvciBwaWNfcAotKyMg RXh0cmFjdCBzeW1ib2xzIGZyb20gZGxwcmVmaWxlcyBhbmQgY3JlYXRlICR7b3V0cHV0bmFtZX1T Lm8gd2l0aAotKyMgYSBkbHByZW9wZW4gc3ltYm9sIHRhYmxlLgotK2Z1bmNfZ2VuZXJhdGVfZGxz eW1zICgpCi0rewotKyAgICAkb3B0X2RlYnVnCi0rICAgIG15X291dHB1dG5hbWU9IiQxIgotKyAg ICBteV9vcmlnaW5hdG9yPSIkMiIKLSsgICAgbXlfcGljX3A9IiR7My1ub30iCi0rICAgIG15X3By ZWZpeD1gJEVDSE8gIiRteV9vcmlnaW5hdG9yIiB8IHNlZCAncyVbXmEtekEtWjAtOV0lXyVnJ2AK LSsgICAgbXlfZGxzeW1zPQotKwotKyAgICBpZiB0ZXN0IC1uICIkZGxmaWxlcyRkbHByZWZpbGVz IiB8fCB0ZXN0ICIkZGxzZWxmIiAhPSBubzsgdGhlbgotKyAgICAgIGlmIHRlc3QgLW4gIiROTSIg JiYgdGVzdCAtbiAiJGdsb2JhbF9zeW1ib2xfcGlwZSI7IHRoZW4KLSsJbXlfZGxzeW1zPSIke215 X291dHB1dG5hbWV9Uy5jIgotKyAgICAgIGVsc2UKLSsJZnVuY19lcnJvciAibm90IGNvbmZpZ3Vy ZWQgdG8gZXh0cmFjdCBnbG9iYWwgc3ltYm9scyBmcm9tIGRscHJlb3BlbmVkIGZpbGVzIgotKyAg ICAgIGZpCi0rICAgIGZpCi0rCi0rICAgIGlmIHRlc3QgLW4gIiRteV9kbHN5bXMiOyB0aGVuCi0r ICAgICAgY2FzZSAkbXlfZGxzeW1zIGluCi0rICAgICAgIiIpIDs7Ci0rICAgICAgKi5jKQotKwkj IERpc2NvdmVyIHRoZSBubGlzdCBvZiBlYWNoIG9mIHRoZSBkbGZpbGVzLgotKwlubGlzdD0iJG91 dHB1dF9vYmpkaXIvJHtteV9vdXRwdXRuYW1lfS5ubSIKLSsKLSsJZnVuY19zaG93X2V2YWwgIiRS TSAkbmxpc3QgJHtubGlzdH1TICR7bmxpc3R9VCIKLSsKLSsJIyBQYXJzZSB0aGUgbmFtZSBsaXN0 IGludG8gYSBzb3VyY2UgZmlsZS4KLSsJZnVuY192ZXJib3NlICJjcmVhdGluZyAkb3V0cHV0X29i amRpci8kbXlfZGxzeW1zIgotKwotKwkkb3B0X2RyeV9ydW4gfHwgJEVDSE8gPiAiJG91dHB1dF9v YmpkaXIvJG15X2Rsc3ltcyIgIlwKLSsvKiAkbXlfZGxzeW1zIC0gc3ltYm9sIHJlc29sdXRpb24g dGFibGUgZm9yIFxgJG15X291dHB1dG5hbWUnIGRsc3ltIGVtdWxhdGlvbi4gKi8KLSsvKiBHZW5l cmF0ZWQgYnkgJFBST0dSQU0gKEdOVSAkUEFDS0FHRSRUSU1FU1RBTVApICRWRVJTSU9OICovCi0r Ci0rI2lmZGVmIF9fY3BsdXNwbHVzCi0rZXh0ZXJuIFwiQ1wiIHsKLSsjZW5kaWYKLSsKLSsvKiBF eHRlcm5hbCBzeW1ib2wgZGVjbGFyYXRpb25zIGZvciB0aGUgY29tcGlsZXIuICovXAotKyIKLSsK LSsJaWYgdGVzdCAiJGRsc2VsZiIgPSB5ZXM7IHRoZW4KLSsJICBmdW5jX3ZlcmJvc2UgImdlbmVy YXRpbmcgc3ltYm9sIGxpc3QgZm9yIFxgJG91dHB1dCciCi0rCi0rCSAgJG9wdF9kcnlfcnVuIHx8 IGVjaG8gJzogQFBST0dSQU1AICcgPiAiJG5saXN0IgotKwotKwkgICMgQWRkIG91ciBvd24gcHJv Z3JhbSBvYmplY3RzIHRvIHRoZSBzeW1ib2wgbGlzdC4KLSsJICBwcm9nZmlsZXM9YCRFQ0hPICJY JG9ianMkb2xkX2RlcGxpYnMiIHwgJFNQMk5MIHwgJFhzZWQgLWUgIiRsbzJvIiB8ICROTDJTUGAK LSsJICBmb3IgcHJvZ2ZpbGUgaW4gJHByb2dmaWxlczsgZG8KLSsJICAgIGZ1bmNfdmVyYm9zZSAi ZXh0cmFjdGluZyBnbG9iYWwgQyBzeW1ib2xzIGZyb20gXGAkcHJvZ2ZpbGUnIgotKwkgICAgJG9w dF9kcnlfcnVuIHx8IGV2YWwgIiROTSAkcHJvZ2ZpbGUgfCAkZ2xvYmFsX3N5bWJvbF9waXBlID4+ ICckbmxpc3QnIgotKwkgIGRvbmUKLSsKLSsJICBpZiB0ZXN0IC1uICIkZXhjbHVkZV9leHBzeW1z IjsgdGhlbgotKwkgICAgJG9wdF9kcnlfcnVuIHx8IHsKLSsJICAgICAgZXZhbCAnJEVHUkVQIC12 ICIgKCRleGNsdWRlX2V4cHN5bXMpJCIgIiRubGlzdCIgPiAiJG5saXN0IlQnCi0rCSAgICAgIGV2 YWwgJyRNViAiJG5saXN0IlQgIiRubGlzdCInCi0rCSAgICB9Ci0rCSAgZmkKLSsKLSsJICBpZiB0 ZXN0IC1uICIkZXhwb3J0X3N5bWJvbHNfcmVnZXgiOyB0aGVuCi0rCSAgICAkb3B0X2RyeV9ydW4g fHwgewotKwkgICAgICBldmFsICckRUdSRVAgLWUgIiRleHBvcnRfc3ltYm9sc19yZWdleCIgIiRu bGlzdCIgPiAiJG5saXN0IlQnCi0rCSAgICAgIGV2YWwgJyRNViAiJG5saXN0IlQgIiRubGlzdCIn Ci0rCSAgICB9Ci0rCSAgZmkKLSsKLSsJICAjIFByZXBhcmUgdGhlIGxpc3Qgb2YgZXhwb3J0ZWQg c3ltYm9scwotKwkgIGlmIHRlc3QgLXogIiRleHBvcnRfc3ltYm9scyI7IHRoZW4KLSsJICAgIGV4 cG9ydF9zeW1ib2xzPSIkb3V0cHV0X29iamRpci8kb3V0cHV0bmFtZS5leHAiCi0rCSAgICAkb3B0 X2RyeV9ydW4gfHwgewotKwkgICAgICAkUk0gJGV4cG9ydF9zeW1ib2xzCi0rCSAgICAgIGV2YWwg IiR7U0VEfSAtbiAtZSAnL146IEBQUk9HUkFNQCAkL2QnIC1lICdzL14uKiBcKC4qXCkkL1wxL3An ICInPCAiJG5saXN0IiA+ICIkZXhwb3J0X3N5bWJvbHMiJwotKwkgICAgICBjYXNlICRob3N0IGlu Ci0rCSAgICAgICpjeWd3aW4qIHwgKm1pbmd3KiB8ICpjZWdjYyogKQotKyAgICAgICAgICAgICAg ICBldmFsICJlY2hvIEVYUE9SVFMgIic+ICIkb3V0cHV0X29iamRpci8kb3V0cHV0bmFtZS5kZWYi JwotKyAgICAgICAgICAgICAgICBldmFsICdjYXQgIiRleHBvcnRfc3ltYm9scyIgPj4gIiRvdXRw dXRfb2JqZGlyLyRvdXRwdXRuYW1lLmRlZiInCi0rCSAgICAgICAgOzsKLSsJICAgICAgZXNhYwot KwkgICAgfQotKwkgIGVsc2UKLSsJICAgICRvcHRfZHJ5X3J1biB8fCB7Ci0rCSAgICAgIGV2YWwg IiR7U0VEfSAtZSAncy9cKFtdLlsqXiRdXCkvXFxcXFwxL2cnIC1lICdzL14vIC8nIC1lICdzLyQv JC8nIicgPCAiJGV4cG9ydF9zeW1ib2xzIiA+ICIkb3V0cHV0X29iamRpci8kb3V0cHV0bmFtZS5l eHAiJwotKwkgICAgICBldmFsICckR1JFUCAtZiAiJG91dHB1dF9vYmpkaXIvJG91dHB1dG5hbWUu ZXhwIiA8ICIkbmxpc3QiID4gIiRubGlzdCJUJwotKwkgICAgICBldmFsICckTVYgIiRubGlzdCJU ICIkbmxpc3QiJwotKwkgICAgICBjYXNlICRob3N0IGluCi0rCSAgICAgICAgKmN5Z3dpbiB8ICpt aW5ndyogfCAqY2VnY2MqICkKLSsJICAgICAgICAgIGV2YWwgImVjaG8gRVhQT1JUUyAiJz4gIiRv dXRwdXRfb2JqZGlyLyRvdXRwdXRuYW1lLmRlZiInCi0rCSAgICAgICAgICBldmFsICdjYXQgIiRu bGlzdCIgPj4gIiRvdXRwdXRfb2JqZGlyLyRvdXRwdXRuYW1lLmRlZiInCi0rCSAgICAgICAgICA7 OwotKwkgICAgICBlc2FjCi0rCSAgICB9Ci0rCSAgZmkKLSsJZmkKLSsKLSsJZm9yIGRscHJlZmls ZSBpbiAkZGxwcmVmaWxlczsgZG8KLSsJICBmdW5jX3ZlcmJvc2UgImV4dHJhY3RpbmcgZ2xvYmFs IEMgc3ltYm9scyBmcm9tIFxgJGRscHJlZmlsZSciCi0rCSAgZnVuY19iYXNlbmFtZSAiJGRscHJl ZmlsZSIKLSsJICBuYW1lPSIkZnVuY19iYXNlbmFtZV9yZXN1bHQiCi0rCSAgJG9wdF9kcnlfcnVu IHx8IHsKLSsJICAgIGV2YWwgJyRFQ0hPICI6ICRuYW1lICIgPj4gIiRubGlzdCInCi0rCSAgICBl dmFsICIkTk0gJGRscHJlZmlsZSAyPi9kZXYvbnVsbCB8ICRnbG9iYWxfc3ltYm9sX3BpcGUgPj4g JyRubGlzdCciCi0rCSAgfQotKwlkb25lCi0rCi0rCSRvcHRfZHJ5X3J1biB8fCB7Ci0rCSAgIyBN YWtlIHN1cmUgd2UgaGF2ZSBhdCBsZWFzdCBhbiBlbXB0eSBmaWxlLgotKwkgIHRlc3QgLWYgIiRu bGlzdCIgfHwgOiA+ICIkbmxpc3QiCi0rCi0rCSAgaWYgdGVzdCAtbiAiJGV4Y2x1ZGVfZXhwc3lt cyI7IHRoZW4KLSsJICAgICRFR1JFUCAtdiAiICgkZXhjbHVkZV9leHBzeW1zKSQiICIkbmxpc3Qi ID4gIiRubGlzdCJUCi0rCSAgICAkTVYgIiRubGlzdCJUICIkbmxpc3QiCi0rCSAgZmkKLSsKLSsJ ICAjIFRyeSBzb3J0aW5nIGFuZCB1bmlxdWlmeWluZyB0aGUgb3V0cHV0LgotKwkgIGlmICRHUkVQ IC12ICJeOiAiIDwgIiRubGlzdCIgfAotKwkgICAgICBpZiBzb3J0IC1rIDMgPC9kZXYvbnVsbCA+ L2Rldi9udWxsIDI+JjE7IHRoZW4KLSsJCXNvcnQgLWsgMwotKwkgICAgICBlbHNlCi0rCQlzb3J0 ICsyCi0rCSAgICAgIGZpIHwKLSsJICAgICAgdW5pcSA+ICIkbmxpc3QiUzsgdGhlbgotKwkgICAg OgotKwkgIGVsc2UKLSsJICAgICRHUkVQIC12ICJeOiAiIDwgIiRubGlzdCIgPiAiJG5saXN0IlMK LSsJICBmaQotKwotKwkgIGlmIHRlc3QgLWYgIiRubGlzdCJTOyB0aGVuCi0rCSAgICBldmFsICIk Z2xvYmFsX3N5bWJvbF90b19jZGVjbCInIDwgIiRubGlzdCJTID4+ICIkb3V0cHV0X29iamRpci8k bXlfZGxzeW1zIicKLSsJICBlbHNlCi0rCSAgICAkRUNITyAnLyogTk9ORSAqLycgPj4gIiRvdXRw dXRfb2JqZGlyLyRteV9kbHN5bXMiCi0rCSAgZmkKLSsKLSsJICAkRUNITyA+PiAiJG91dHB1dF9v YmpkaXIvJG15X2Rsc3ltcyIgIlwKLSsKLSsvKiBUaGUgbWFwcGluZyBiZXR3ZWVuIHN5bWJvbCBu YW1lcyBhbmQgc3ltYm9scy4gICovCi0rdHlwZWRlZiBzdHJ1Y3QgewotKyAgY29uc3QgY2hhciAq bmFtZTsKLSsgIHZvaWQgKmFkZHJlc3M7Ci0rfSBsdF9kbHN5bWxpc3Q7Ci0rIgotKwkgIGNhc2Ug JGhvc3QgaW4KLSsJICAqY3lnd2luKiB8ICptaW5ndyogfCAqY2VnY2MqICkKLSsJICAgICRFQ0hP ID4+ICIkb3V0cHV0X29iamRpci8kbXlfZGxzeW1zIiAiXAotKy8qIERBVEEgaW1wb3J0cyBmcm9t IERMTHMgb24gV0lOMzIgY29uJ3QgYmUgY29uc3QsIGJlY2F1c2UKLSsgICBydW50aW1lIHJlbG9j YXRpb25zIGFyZSBwZXJmb3JtZWQgLS0gc2VlIGxkJ3MgZG9jdW1lbnRhdGlvbgotKyAgIG9uIHBz ZXVkby1yZWxvY3MuICAqLyIKLSsJICAgIGx0X2Rsc3ltX2NvbnN0PSA7OwotKwkgICpvc2Y1KikK LSsJICAgIGVjaG8gPj4gIiRvdXRwdXRfb2JqZGlyLyRteV9kbHN5bXMiICJcCi0rLyogVGhpcyBz eXN0ZW0gZG9lcyBub3QgY29wZSB3ZWxsIHdpdGggcmVsb2NhdGlvbnMgaW4gY29uc3QgZGF0YSAq LyIKLSsJICAgIGx0X2Rsc3ltX2NvbnN0PSA7OwotKwkgICopCi0rCSAgICBsdF9kbHN5bV9jb25z dD1jb25zdCA7OwotKwkgIGVzYWMKLSsKLSsJICAkRUNITyA+PiAiJG91dHB1dF9vYmpkaXIvJG15 X2Rsc3ltcyIgIlwKLStleHRlcm4gJGx0X2Rsc3ltX2NvbnN0IGx0X2Rsc3ltbGlzdAotK2x0XyR7 bXlfcHJlZml4fV9MVFhfcHJlbG9hZGVkX3N5bWJvbHNbXTsKLSskbHRfZGxzeW1fY29uc3QgbHRf ZGxzeW1saXN0Ci0rbHRfJHtteV9wcmVmaXh9X0xUWF9wcmVsb2FkZWRfc3ltYm9sc1tdID0KLSt7 XAotKyAgeyBcIiRteV9vcmlnaW5hdG9yXCIsICh2b2lkICopIDAgfSwiCi0rCi0rCSAgY2FzZSAk bmVlZF9saWJfcHJlZml4IGluCi0rCSAgbm8pCi0rCSAgICBldmFsICIkZ2xvYmFsX3N5bWJvbF90 b19jX25hbWVfYWRkcmVzcyIgPCAiJG5saXN0IiA+PiAiJG91dHB1dF9vYmpkaXIvJG15X2Rsc3lt cyIKLSsJICAgIDs7Ci0rCSAgKikKLSsJICAgIGV2YWwgIiRnbG9iYWxfc3ltYm9sX3RvX2NfbmFt ZV9hZGRyZXNzX2xpYl9wcmVmaXgiIDwgIiRubGlzdCIgPj4gIiRvdXRwdXRfb2JqZGlyLyRteV9k bHN5bXMiCi0rCSAgICA7OwotKwkgIGVzYWMKLSsJICAkRUNITyA+PiAiJG91dHB1dF9vYmpkaXIv JG15X2Rsc3ltcyIgIlwKLSsgIHswLCAodm9pZCAqKSAwfQotK307Ci0rCi0rLyogVGhpcyB3b3Jr cyBhcm91bmQgYSBwcm9ibGVtIGluIEZyZWVCU0QgbGlua2VyICovCi0rI2lmZGVmIEZSRUVCU0Rf V09SS0FST1VORAotK3N0YXRpYyBjb25zdCB2b2lkICpsdF9wcmVsb2FkZWRfc2V0dXAoKSB7Ci0r ICByZXR1cm4gbHRfJHtteV9wcmVmaXh9X0xUWF9wcmVsb2FkZWRfc3ltYm9sczsKLSt9Ci0rI2Vu ZGlmCi0rCi0rI2lmZGVmIF9fY3BsdXNwbHVzCi0rfQotKyNlbmRpZlwKLSsiCi0rCX0gIyAhJG9w dF9kcnlfcnVuCi0rCi0rCXBpY19mbGFnX2Zvcl9zeW10YWJsZT0KLSsJY2FzZSAiJGNvbXBpbGVf Y29tbWFuZCAiIGluCi0rCSoiIC1zdGF0aWMgIiopIDs7Ci0rCSopCi0rCSAgY2FzZSAkaG9zdCBp bgotKwkgICMgY29tcGlsaW5nIHRoZSBzeW1ib2wgdGFibGUgZmlsZSB3aXRoIHBpY19mbGFnIHdv cmtzIGFyb3VuZAotKwkgICMgYSBGcmVlQlNEIGJ1ZyB0aGF0IGNhdXNlcyBwcm9ncmFtcyB0byBj cmFzaCB3aGVuIC1sbSBpcwotKwkgICMgbGlua2VkIGJlZm9yZSBhbnkgb3RoZXIgUElDIG9iamVj dC4gIEJ1dCB3ZSBtdXN0IG5vdCB1c2UKLSsJICAjIHBpY19mbGFnIHdoZW4gbGlua2luZyB3aXRo IC1zdGF0aWMuICBUaGUgcHJvYmxlbSBleGlzdHMgaW4KLSsJICAjIEZyZWVCU0QgMi4yLjYgYW5k IGlzIGZpeGVkIGluIEZyZWVCU0QgMy4xLgotKwkgICotKi1mcmVlYnNkMip8Ki0qLWZyZWVic2Qz LjAqfCotKi1mcmVlYnNkZWxmMy4wKikKLSsJICAgIHBpY19mbGFnX2Zvcl9zeW10YWJsZT0iICRw aWNfZmxhZyAtREZSRUVCU0RfV09SS0FST1VORCIgOzsKLSsJICAqLSotaHB1eCopCi0rCSAgICBw aWNfZmxhZ19mb3Jfc3ltdGFibGU9IiAkcGljX2ZsYWciICA7OwotKwkgICopCi0rCSAgICBpZiB0 ZXN0ICJYJG15X3BpY19wIiAhPSBYbm87IHRoZW4KLSsJICAgICAgcGljX2ZsYWdfZm9yX3N5bXRh YmxlPSIgJHBpY19mbGFnIgotKwkgICAgZmkKLSsJICAgIDs7Ci0rCSAgZXNhYwotKwkgIDs7Ci0r CWVzYWMKLSsJc3ltdGFiX2NmbGFncz0KLSsJZm9yIGFyZyBpbiAkTFRDRkxBR1M7IGRvCi0rCSAg Y2FzZSAkYXJnIGluCi0rCSAgLXBpZSB8IC1mcGllIHwgLWZQSUUpIDs7Ci0rCSAgKikgc3ltdGFi X2NmbGFncz0iJHN5bXRhYl9jZmxhZ3MgJGFyZyIgOzsKLSsJICBlc2FjCi0rCWRvbmUKLSsKLSsJ IyBOb3cgY29tcGlsZSB0aGUgZHluYW1pYyBzeW1ib2wgZmlsZS4KLSsJZnVuY19zaG93X2V2YWwg JyhjZCAkb3V0cHV0X29iamRpciAmJiAkTFRDQyRzeW10YWJfY2ZsYWdzIC1jJG5vX2J1aWx0aW5f ZmxhZyRwaWNfZmxhZ19mb3Jfc3ltdGFibGUgIiRteV9kbHN5bXMiKScgJ2V4aXQgJD8nCi0rCi0r CSMgQ2xlYW4gdXAgdGhlIGdlbmVyYXRlZCBmaWxlcy4KLSsJZnVuY19zaG93X2V2YWwgJyRSTSAi JG91dHB1dF9vYmpkaXIvJG15X2Rsc3ltcyIgIiRubGlzdCIgIiR7bmxpc3R9UyIgIiR7bmxpc3R9 VCInCi0rCi0rCSMgVHJhbnNmb3JtIHRoZSBzeW1ib2wgZmlsZSBpbnRvIHRoZSBjb3JyZWN0IG5h bWUuCi0rCXN5bWZpbGVvYmo9IiRvdXRwdXRfb2JqZGlyLyR7bXlfb3V0cHV0bmFtZX1TLiRvYmpl eHQiCi0rCWNhc2UgJGhvc3QgaW4KLSsJKmN5Z3dpbiogfCAqbWluZ3cqIHwgKmNlZ2NjKiApCi0r CSAgaWYgdGVzdCAtZiAiJG91dHB1dF9vYmpkaXIvJG15X291dHB1dG5hbWUuZGVmIjsgdGhlbgot KwkgICAgY29tcGlsZV9jb21tYW5kPWAkRUNITyAiWCRjb21waWxlX2NvbW1hbmQiIHwgJFhzZWQg LWUgInMlQFNZTUZJTEVAJSRvdXRwdXRfb2JqZGlyLyRteV9vdXRwdXRuYW1lLmRlZiAkc3ltZmls ZW9iaiUiYAotKwkgICAgZmluYWxpemVfY29tbWFuZD1gJEVDSE8gIlgkZmluYWxpemVfY29tbWFu ZCIgfCAkWHNlZCAtZSAicyVAU1lNRklMRUAlJG91dHB1dF9vYmpkaXIvJG15X291dHB1dG5hbWUu ZGVmICRzeW1maWxlb2JqJSJgCi0rCSAgZWxzZQotKwkgICAgY29tcGlsZV9jb21tYW5kPWAkRUNI TyAiWCRjb21waWxlX2NvbW1hbmQiIHwgJFhzZWQgLWUgInMlQFNZTUZJTEVAJSRzeW1maWxlb2Jq JSJgCi0rCSAgICBmaW5hbGl6ZV9jb21tYW5kPWAkRUNITyAiWCRmaW5hbGl6ZV9jb21tYW5kIiB8 ICRYc2VkIC1lICJzJUBTWU1GSUxFQCUkc3ltZmlsZW9iaiUiYAotKwkgIGZpCi0rCSAgOzsKLSsJ KikKLSsJICBjb21waWxlX2NvbW1hbmQ9YCRFQ0hPICJYJGNvbXBpbGVfY29tbWFuZCIgfCAkWHNl ZCAtZSAicyVAU1lNRklMRUAlJHN5bWZpbGVvYmolImAKLSsJICBmaW5hbGl6ZV9jb21tYW5kPWAk RUNITyAiWCRmaW5hbGl6ZV9jb21tYW5kIiB8ICRYc2VkIC1lICJzJUBTWU1GSUxFQCUkc3ltZmls ZW9iaiUiYAotKwkgIDs7Ci0rCWVzYWMKLSsJOzsKLSsgICAgICAqKQotKwlmdW5jX2ZhdGFsX2Vy cm9yICJ1bmtub3duIHN1ZmZpeCBmb3IgXGAkbXlfZGxzeW1zJyIKLSsJOzsKLSsgICAgICBlc2Fj Ci0rICAgIGVsc2UKLSsgICAgICAjIFdlIGtlZXAgZ29pbmcganVzdCBpbiBjYXNlIHRoZSB1c2Vy IGRpZG4ndCByZWZlciB0bwotKyAgICAgICMgbHRfcHJlbG9hZGVkX3N5bWJvbHMuICBUaGUgbGlu a2VyIHdpbGwgZmFpbCBpZiBnbG9iYWxfc3ltYm9sX3BpcGUKLSsgICAgICAjIHJlYWxseSB3YXMg cmVxdWlyZWQuCi0rCi0rICAgICAgIyBOdWxsaWZ5IHRoZSBzeW1ib2wgZmlsZS4KLSsgICAgICBj b21waWxlX2NvbW1hbmQ9YCRFQ0hPICJYJGNvbXBpbGVfY29tbWFuZCIgfCAkWHNlZCAtZSAicyUg QFNZTUZJTEVAJSUiYAotKyAgICAgIGZpbmFsaXplX2NvbW1hbmQ9YCRFQ0hPICJYJGZpbmFsaXpl X2NvbW1hbmQiIHwgJFhzZWQgLWUgInMlIEBTWU1GSUxFQCUlImAKLSsgICAgZmkKLSt9Ci0rCi0r IyBmdW5jX3dpbjMyX2xpYmlkIGFyZwotKyMgcmV0dXJuIHRoZSBsaWJyYXJ5IHR5cGUgb2YgZmls ZSAnYXJnJwotKyMKLSsjIE5lZWQgYSBsb3Qgb2YgZ29vIHRvIGhhbmRsZSAqYm90aCogRExMcyBh bmQgaW1wb3J0IGxpYnMKLSsjIEhhcyB0byBiZSBhIHNoZWxsIGZ1bmN0aW9uIGluIG9yZGVyIHRv ICdlYXQnIHRoZSBhcmd1bWVudAotKyMgdGhhdCBpcyBzdXBwbGllZCB3aGVuICRmaWxlX21hZ2lj X2NvbW1hbmQgaXMgY2FsbGVkLgotK2Z1bmNfd2luMzJfbGliaWQgKCkKLSt7Ci0rICAkb3B0X2Rl YnVnCi0rICB3aW4zMl9saWJpZF90eXBlPSJ1bmtub3duIgotKyAgd2luMzJfZmlsZXJlcz1gZmls ZSAtTCAkMSAyPi9kZXYvbnVsbGAKLSsgIGNhc2UgJHdpbjMyX2ZpbGVyZXMgaW4KLSsgICphclwg YXJjaGl2ZVwgaW1wb3J0XCBsaWJyYXJ5KikgIyBkZWZpbml0ZWx5IGltcG9ydAotKyAgICB3aW4z Ml9saWJpZF90eXBlPSJ4ODYgYXJjaGl2ZSBpbXBvcnQiCi0rICAgIDs7Ci0rICAqYXJcIGFyY2hp dmUqKSAjIGNvdWxkIGJlIGFuIGltcG9ydCwgb3Igc3RhdGljCi0rICAgIGlmIGV2YWwgJE9CSkRV TVAgLWYgJDEgfCAkU0VEIC1lICcxMHEnIDI+L2Rldi9udWxsIHwKLSsgICAgICAgJEVHUkVQICdm aWxlIGZvcm1hdCBwZS1pMzg2KC4qYXJjaGl0ZWN0dXJlOiBpMzg2KT8nID4vZGV2L251bGwgOyB0 aGVuCi0rICAgICAgd2luMzJfbm1yZXM9YGV2YWwgJE5NIC1mIHBvc2l4IC1BICQxIHwKLSsJJFNF RCAtbiAtZSAnCi0rCSAgICAxLDEwMHsKLSsJCS8gSSAvewotKwkJICAgIHMsLiosaW1wb3J0LAot KwkJICAgIHAKLSsJCSAgICBxCi0rCQl9Ci0rCSAgICB9J2AKLSsgICAgICBjYXNlICR3aW4zMl9u bXJlcyBpbgotKyAgICAgIGltcG9ydCopICB3aW4zMl9saWJpZF90eXBlPSJ4ODYgYXJjaGl2ZSBp bXBvcnQiOzsKLSsgICAgICAqKSAgICAgICAgd2luMzJfbGliaWRfdHlwZT0ieDg2IGFyY2hpdmUg c3RhdGljIjs7Ci0rICAgICAgZXNhYwotKyAgICBmaQotKyAgICA7OwotKyAgKkRMTCopCi0rICAg IHdpbjMyX2xpYmlkX3R5cGU9Ing4NiBETEwiCi0rICAgIDs7Ci0rICAqZXhlY3V0YWJsZSopICMg YnV0IHNoZWxsIHNjcmlwdHMgYXJlICJleGVjdXRhYmxlIiB0b28uLi4KLSsgICAgY2FzZSAkd2lu MzJfZmlsZXJlcyBpbgotKyAgICAqTVNcIFdpbmRvd3NcIFBFXCBJbnRlbCopCi0rICAgICAgd2lu MzJfbGliaWRfdHlwZT0ieDg2IERMTCIKLSsgICAgICA7OwotKyAgICBlc2FjCi0rICAgIDs7Ci0r ICBlc2FjCi0rICAkRUNITyAiJHdpbjMyX2xpYmlkX3R5cGUiCi0rfQotKwotKwotKwotKyMgZnVu Y19leHRyYWN0X2FuX2FyY2hpdmUgZGlyIG9sZGxpYgotK2Z1bmNfZXh0cmFjdF9hbl9hcmNoaXZl ICgpCi0rewotKyAgICAkb3B0X2RlYnVnCi0rICAgIGZfZXhfYW5fYXJfZGlyPSIkMSI7IHNoaWZ0 Ci0rICAgIGZfZXhfYW5fYXJfb2xkbGliPSIkMSIKLSsgICAgZnVuY19zaG93X2V2YWwgIihjZCBc JGZfZXhfYW5fYXJfZGlyICYmICRBUiB4IFwiXCRmX2V4X2FuX2FyX29sZGxpYlwiKSIgJ2V4aXQg JD8nCi0rICAgIGlmICgkQVIgdCAiJGZfZXhfYW5fYXJfb2xkbGliIiB8IHNvcnQgfCBzb3J0IC11 YyA+L2Rldi9udWxsIDI+JjEpOyB0aGVuCi0rICAgICA6Ci0rICAgIGVsc2UKLSsgICAgICBmdW5j X2ZhdGFsX2Vycm9yICJvYmplY3QgbmFtZSBjb25mbGljdHMgaW4gYXJjaGl2ZTogJGZfZXhfYW5f YXJfZGlyLyRmX2V4X2FuX2FyX29sZGxpYiIKLSsgICAgZmkKLSt9Ci0rCi0rCi0rIyBmdW5jX2V4 dHJhY3RfYXJjaGl2ZXMgZ2VudG9wIG9sZGxpYiAuLi4KLStmdW5jX2V4dHJhY3RfYXJjaGl2ZXMg KCkKLSt7Ci0rICAgICRvcHRfZGVidWcKLSsgICAgbXlfZ2VudG9wPSIkMSI7IHNoaWZ0Ci0rICAg IG15X29sZGxpYnM9JHsxKyIkQCJ9Ci0rICAgIG15X29sZG9ianM9IiIKLSsgICAgbXlfeGxpYj0i IgotKyAgICBteV94YWJzPSIiCi0rICAgIG15X3hkaXI9IiIKLSsKLSsgICAgZm9yIG15X3hsaWIg aW4gJG15X29sZGxpYnM7IGRvCi0rICAgICAgIyBFeHRyYWN0IHRoZSBvYmplY3RzLgotKyAgICAg IGNhc2UgJG15X3hsaWIgaW4KLSsJW1xcL10qIHwgW0EtWmEtel06W1xcL10qKSBteV94YWJzPSIk bXlfeGxpYiIgOzsKLSsJKikgbXlfeGFicz1gcHdkYCIvJG15X3hsaWIiIDs7Ci0rICAgICAgZXNh YwotKyAgICAgIGZ1bmNfYmFzZW5hbWUgIiRteV94bGliIgotKyAgICAgIG15X3hsaWI9IiRmdW5j X2Jhc2VuYW1lX3Jlc3VsdCIKLSsgICAgICBteV94bGliX3U9JG15X3hsaWIKLSsgICAgICB3aGls ZSA6OyBkbwotKyAgICAgICAgY2FzZSAiICRleHRyYWN0ZWRfYXJjaGl2ZXMgIiBpbgotKwkqIiAk bXlfeGxpYl91ICIqKQotKwkgIGZ1bmNfYXJpdGggJGV4dHJhY3RlZF9zZXJpYWwgKyAxCi0rCSAg ZXh0cmFjdGVkX3NlcmlhbD0kZnVuY19hcml0aF9yZXN1bHQKLSsJICBteV94bGliX3U9bHQkZXh0 cmFjdGVkX3NlcmlhbC0kbXlfeGxpYiA7OwotKwkqKSBicmVhayA7OwotKwllc2FjCi0rICAgICAg ZG9uZQotKyAgICAgIGV4dHJhY3RlZF9hcmNoaXZlcz0iJGV4dHJhY3RlZF9hcmNoaXZlcyAkbXlf eGxpYl91IgotKyAgICAgIG15X3hkaXI9IiRteV9nZW50b3AvJG15X3hsaWJfdSIKLSsKLSsgICAg ICBmdW5jX21rZGlyX3AgIiRteV94ZGlyIgotKwotKyAgICAgIGNhc2UgJGhvc3QgaW4KLSsgICAg ICAqLWRhcndpbiopCi0rCWZ1bmNfdmVyYm9zZSAiRXh0cmFjdGluZyAkbXlfeGFicyIKLSsJIyBE byBub3QgYm90aGVyIGRvaW5nIGFueXRoaW5nIGlmIGp1c3QgYSBkcnkgcnVuCi0rCSRvcHRfZHJ5 X3J1biB8fCB7Ci0rCSAgZGFyd2luX29yaWdfZGlyPWBwd2RgCi0rCSAgY2QgJG15X3hkaXIgfHwg ZXhpdCAkPwotKwkgIGRhcndpbl9hcmNoaXZlPSRteV94YWJzCi0rCSAgZGFyd2luX2N1cmRpcj1g cHdkYAotKwkgIGRhcndpbl9iYXNlX2FyY2hpdmU9YGJhc2VuYW1lICIkZGFyd2luX2FyY2hpdmUi YAotKwkgIGRhcndpbl9hcmNoZXM9YCRMSVBPIC1pbmZvICIkZGFyd2luX2FyY2hpdmUiIDI+L2Rl di9udWxsIHwgJEdSRVAgQXJjaGl0ZWN0dXJlcyAyPi9kZXYvbnVsbCB8fCB0cnVlYAotKwkgIGlm IHRlc3QgLW4gIiRkYXJ3aW5fYXJjaGVzIjsgdGhlbgotKwkgICAgZGFyd2luX2FyY2hlcz1gJEVD SE8gIiRkYXJ3aW5fYXJjaGVzIiB8ICRTRUQgLWUgJ3MvLiphcmU6Ly8nYAotKwkgICAgZGFyd2lu X2FyY2g9Ci0rCSAgICBmdW5jX3ZlcmJvc2UgIiRkYXJ3aW5fYmFzZV9hcmNoaXZlIGhhcyBtdWx0 aXBsZSBhcmNoaXRlY3R1cmVzICRkYXJ3aW5fYXJjaGVzIgotKwkgICAgZm9yIGRhcndpbl9hcmNo IGluICAkZGFyd2luX2FyY2hlcyA7IGRvCi0rCSAgICAgIGZ1bmNfbWtkaXJfcCAidW5mYXQtJCQv JHtkYXJ3aW5fYmFzZV9hcmNoaXZlfS0ke2Rhcndpbl9hcmNofSIKLSsJICAgICAgJExJUE8gLXRo aW4gJGRhcndpbl9hcmNoIC1vdXRwdXQgInVuZmF0LSQkLyR7ZGFyd2luX2Jhc2VfYXJjaGl2ZX0t JHtkYXJ3aW5fYXJjaH0vJHtkYXJ3aW5fYmFzZV9hcmNoaXZlfSIgIiR7ZGFyd2luX2FyY2hpdmV9 IgotKwkgICAgICBjZCAidW5mYXQtJCQvJHtkYXJ3aW5fYmFzZV9hcmNoaXZlfS0ke2Rhcndpbl9h cmNofSIKLSsJICAgICAgZnVuY19leHRyYWN0X2FuX2FyY2hpdmUgImBwd2RgIiAiJHtkYXJ3aW5f YmFzZV9hcmNoaXZlfSIKLSsJICAgICAgY2QgIiRkYXJ3aW5fY3VyZGlyIgotKwkgICAgICAkUk0g InVuZmF0LSQkLyR7ZGFyd2luX2Jhc2VfYXJjaGl2ZX0tJHtkYXJ3aW5fYXJjaH0vJHtkYXJ3aW5f YmFzZV9hcmNoaXZlfSIKLSsJICAgIGRvbmUgIyAkZGFyd2luX2FyY2hlcwotKyAgICAgICAgICAg ICMjIE9rYXkgbm93IHdlJ3ZlIGEgYnVuY2ggb2YgdGhpbiBvYmplY3RzLCBnb3R0YSBmYXR0ZW4g dGhlbSB1cCA6KQotKwkgICAgZGFyd2luX2ZpbGVsaXN0PWBmaW5kIHVuZmF0LSQkIC10eXBlIGYg LW5hbWUgXCoubyAtcHJpbnQgLW8gLW5hbWUgXCoubG8gLXByaW50IHwgJFNFRCAtZSAiJGJhc2Vu YW1lIiB8IHNvcnQgLXVgCi0rCSAgICBkYXJ3aW5fZmlsZT0KLSsJICAgIGRhcndpbl9maWxlcz0K LSsJICAgIGZvciBkYXJ3aW5fZmlsZSBpbiAkZGFyd2luX2ZpbGVsaXN0OyBkbwotKwkgICAgICBk YXJ3aW5fZmlsZXM9YGZpbmQgdW5mYXQtJCQgLW5hbWUgJGRhcndpbl9maWxlIC1wcmludCB8ICRO TDJTUGAKLSsJICAgICAgJExJUE8gLWNyZWF0ZSAtb3V0cHV0ICIkZGFyd2luX2ZpbGUiICRkYXJ3 aW5fZmlsZXMKLSsJICAgIGRvbmUgIyAkZGFyd2luX2ZpbGVsaXN0Ci0rCSAgICAkUk0gLXJmIHVu ZmF0LSQkCi0rCSAgICBjZCAiJGRhcndpbl9vcmlnX2RpciIKLSsJICBlbHNlCi0rCSAgICBjZCAk ZGFyd2luX29yaWdfZGlyCi0rCSAgICBmdW5jX2V4dHJhY3RfYW5fYXJjaGl2ZSAiJG15X3hkaXIi ICIkbXlfeGFicyIKLSsJICBmaSAjICRkYXJ3aW5fYXJjaGVzCi0rCX0gIyAhJG9wdF9kcnlfcnVu Ci0rCTs7Ci0rICAgICAgKikKLSsgICAgICAgIGZ1bmNfZXh0cmFjdF9hbl9hcmNoaXZlICIkbXlf eGRpciIgIiRteV94YWJzIgotKwk7OwotKyAgICAgIGVzYWMKLSsgICAgICBteV9vbGRvYmpzPSIk bXlfb2xkb2JqcyAiYGZpbmQgJG15X3hkaXIgLW5hbWUgXCouJG9iamV4dCAtcHJpbnQgLW8gLW5h bWUgXCoubG8gLXByaW50IHwgJE5MMlNQYAotKyAgICBkb25lCi0rCi0rICAgIGZ1bmNfZXh0cmFj dF9hcmNoaXZlc19yZXN1bHQ9IiRteV9vbGRvYmpzIgotK30KLSsKLSsKLSsKLSsjIGZ1bmNfZW1p dF93cmFwcGVyX3BhcnQxIFthcmc9bm9dCi0rIwotKyMgRW1pdCB0aGUgZmlyc3QgcGFydCBvZiBh IGxpYnRvb2wgd3JhcHBlciBzY3JpcHQgb24gc3Rkb3V0LgotKyMgRm9yIG1vcmUgaW5mb3JtYXRp b24sIHNlZSB0aGUgZGVzY3JpcHRpb24gYXNzb2NpYXRlZCB3aXRoCi0rIyBmdW5jX2VtaXRfd3Jh cHBlcigpLCBiZWxvdy4KLStmdW5jX2VtaXRfd3JhcHBlcl9wYXJ0MSAoKQotK3sKLSsJZnVuY19l bWl0X3dyYXBwZXJfcGFydDFfYXJnMT1ubwotKwlpZiB0ZXN0IC1uICIkMSIgOyB0aGVuCi0rCSAg ZnVuY19lbWl0X3dyYXBwZXJfcGFydDFfYXJnMT0kMQotKwlmaQotKwotKwkkRUNITyAiXAotKyMh ICRTSEVMTAotKwotKyMgJG91dHB1dCAtIHRlbXBvcmFyeSB3cmFwcGVyIHNjcmlwdCBmb3IgJG9i amRpci8kb3V0cHV0bmFtZQotKyMgR2VuZXJhdGVkIGJ5ICRQUk9HUkFNIChHTlUgJFBBQ0tBR0Uk VElNRVNUQU1QKSAkVkVSU0lPTgotKyMKLSsjIFRoZSAkb3V0cHV0IHByb2dyYW0gY2Fubm90IGJl IGRpcmVjdGx5IGV4ZWN1dGVkIHVudGlsIGFsbCB0aGUgbGlidG9vbAotKyMgbGlicmFyaWVzIHRo YXQgaXQgZGVwZW5kcyBvbiBhcmUgaW5zdGFsbGVkLgotKyMKLSsjIFRoaXMgd3JhcHBlciBzY3Jp cHQgc2hvdWxkIG5ldmVyIGJlIG1vdmVkIG91dCBvZiB0aGUgYnVpbGQgZGlyZWN0b3J5LgotKyMg SWYgaXQgaXMsIGl0IHdpbGwgbm90IG9wZXJhdGUgY29ycmVjdGx5LgotKwotKyMgU2VkIHN1YnN0 aXR1dGlvbiB0aGF0IGhlbHBzIHVzIGRvIHJvYnVzdCBxdW90aW5nLiAgSXQgYmFja3NsYXNoaWZp ZXMKLSsjIG1ldGFjaGFyYWN0ZXJzIHRoYXQgYXJlIHN0aWxsIGFjdGl2ZSB3aXRoaW4gZG91Ymxl LXF1b3RlZCBzdHJpbmdzLgotK1hzZWQ9JyR7U0VEfSAtZSAxcy9eWC8vJwotK3NlZF9xdW90ZV9z dWJzdD0nJHNlZF9xdW90ZV9zdWJzdCcKLSsKLSsjIEJlIEJvdXJuZSBjb21wYXRpYmxlCi0raWYg dGVzdCAtbiBcIlwke1pTSF9WRVJTSU9OK3NldH1cIiAmJiAoZW11bGF0ZSBzaCkgPi9kZXYvbnVs bCAyPiYxOyB0aGVuCi0rICBlbXVsYXRlIHNoCi0rICBOVUxMQ01EPToKLSsgICMgWnNoIDMueCBh bmQgNC54IHBlcmZvcm1zIHdvcmQgc3BsaXR0aW5nIG9uIFwkezErXCJcJEBcIn0sIHdoaWNoCi0r ICAjIGlzIGNvbnRyYXJ5IHRvIG91ciB1c2FnZS4gIERpc2FibGUgdGhpcyBmZWF0dXJlLgotKyAg YWxpYXMgLWcgJ1wkezErXCJcJEBcIn0nPSdcIlwkQFwiJwotKyAgc2V0b3B0IE5PX0dMT0JfU1VC U1QKLStlbHNlCi0rICBjYXNlIFxgKHNldCAtbykgMj4vZGV2L251bGxcYCBpbiAqcG9zaXgqKSBz ZXQgLW8gcG9zaXg7OyBlc2FjCi0rZmkKLStCSU5fU0g9eHBnNDsgZXhwb3J0IEJJTl9TSCAjIGZv ciBUcnU2NAotK0RVQUxDQVNFPTE7IGV4cG9ydCBEVUFMQ0FTRSAjIGZvciBNS1Mgc2gKLSsKLSsj IFRoZSBIUC1VWCBrc2ggYW5kIFBPU0lYIHNoZWxsIHByaW50IHRoZSB0YXJnZXQgZGlyZWN0b3J5 IHRvIHN0ZG91dAotKyMgaWYgQ0RQQVRIIGlzIHNldC4KLSsodW5zZXQgQ0RQQVRIKSA+L2Rldi9u dWxsIDI+JjEgJiYgdW5zZXQgQ0RQQVRICi0rCi0rcmVsaW5rX2NvbW1hbmQ9XCIkcmVsaW5rX2Nv bW1hbmRcIgotKwotKyMgVGhpcyBlbnZpcm9ubWVudCB2YXJpYWJsZSBkZXRlcm1pbmVzIG91ciBv cGVyYXRpb24gbW9kZS4KLStpZiB0ZXN0IFwiXCRsaWJ0b29sX2luc3RhbGxfbWFnaWNcIiA9IFwi JG1hZ2ljXCI7IHRoZW4KLSsgICMgaW5zdGFsbCBtb2RlIG5lZWRzIHRoZSBmb2xsb3dpbmcgdmFy aWFibGVzOgotKyAgZ2VuZXJhdGVkX2J5X2xpYnRvb2xfdmVyc2lvbj0nJG1hY3JvX3ZlcnNpb24n Ci0rICBub3RpbnN0X2RlcGxpYnM9JyRub3RpbnN0X2RlcGxpYnMnCi0rZWxzZQotKyAgIyBXaGVu IHdlIGFyZSBzb3VyY2VkIGluIGV4ZWN1dGUgbW9kZSwgXCRmaWxlIGFuZCBcJEVDSE8gYXJlIGFs cmVhZHkgc2V0LgotKyAgaWYgdGVzdCBcIlwkbGlidG9vbF9leGVjdXRlX21hZ2ljXCIgIT0gXCIk bWFnaWNcIjsgdGhlbgotKyAgICBFQ0hPPVwiJHFlY2hvXCIKLSsgICAgZmlsZT1cIlwkMFwiCi0r ICAgICMgTWFrZSBzdXJlIGVjaG8gd29ya3MuCi0rICAgIGlmIHRlc3QgXCJYXCQxXCIgPSBYLS1u by1yZWV4ZWM7IHRoZW4KLSsgICAgICAjIERpc2NhcmQgdGhlIC0tbm8tcmVleGVjIGZsYWcsIGFu ZCBjb250aW51ZS4KLSsgICAgICBzaGlmdAotKyAgICBlbGlmIHRlc3QgXCJYXGB7IFwkRUNITyAn XHQnOyB9IDI+L2Rldi9udWxsXGBcIiA9ICdYXHQnOyB0aGVuCi0rICAgICAgIyBZaXBwZWUsIFwk RUNITyB3b3JrcyEKLSsgICAgICA6Ci0rICAgIGVsc2UKLSsgICAgICAjIFJlc3RhcnQgdW5kZXIg dGhlIGNvcnJlY3Qgc2hlbGwsIGFuZCB0aGVuIG1heWJlIFwkRUNITyB3aWxsIHdvcmsuCi0rICAg ICAgZXhlYyAkU0hFTEwgXCJcJDBcIiAtLW5vLXJlZXhlYyBcJHsxK1wiXCRAXCJ9Ci0rICAgIGZp Ci0rICBmaVwKLSsiCi0rCSRFQ0hPICJcCi0rCi0rICAjIEZpbmQgdGhlIGRpcmVjdG9yeSB0aGF0 IHRoaXMgc2NyaXB0IGxpdmVzIGluLgotKyAgdGhpc2Rpcj1cYFwkRUNITyBcIlhcJGZpbGVcIiB8 IFwkWHNlZCAtZSAncyUvW14vXSokJSUnXGAKLSsgIHRlc3QgXCJ4XCR0aGlzZGlyXCIgPSBcInhc JGZpbGVcIiAmJiB0aGlzZGlyPS4KLSsKLSsgICMgRm9sbG93IHN5bWJvbGljIGxpbmtzIHVudGls IHdlIGdldCB0byB0aGUgcmVhbCB0aGlzZGlyLgotKyAgZmlsZT1cYGxzIC1sZCBcIlwkZmlsZVwi IHwgJHtTRUR9IC1uICdzLy4qLT4gLy9wJ1xgCi0rICB3aGlsZSB0ZXN0IC1uIFwiXCRmaWxlXCI7 IGRvCi0rICAgIGRlc3RkaXI9XGBcJEVDSE8gXCJYXCRmaWxlXCIgfCBcJFhzZWQgLWUgJ3MlL1te L10qXCQlJSdcYAotKwotKyAgICAjIElmIHRoZXJlIHdhcyBhIGRpcmVjdG9yeSBjb21wb25lbnQs IHRoZW4gY2hhbmdlIHRoaXNkaXIuCi0rICAgIGlmIHRlc3QgXCJ4XCRkZXN0ZGlyXCIgIT0gXCJ4 XCRmaWxlXCI7IHRoZW4KLSsgICAgICBjYXNlIFwiXCRkZXN0ZGlyXCIgaW4KLSsgICAgICBbXFxc XC9dKiB8IFtBLVphLXpdOltcXFxcL10qKSB0aGlzZGlyPVwiXCRkZXN0ZGlyXCIgOzsKLSsgICAg ICAqKSB0aGlzZGlyPVwiXCR0aGlzZGlyL1wkZGVzdGRpclwiIDs7Ci0rICAgICAgZXNhYwotKyAg ICBmaQotKwotKyAgICBmaWxlPVxgXCRFQ0hPIFwiWFwkZmlsZVwiIHwgXCRYc2VkIC1lICdzJV4u Ki8lJSdcYAotKyAgICBmaWxlPVxgbHMgLWxkIFwiXCR0aGlzZGlyL1wkZmlsZVwiIHwgJHtTRUR9 IC1uICdzLy4qLT4gLy9wJ1xgCi0rICBkb25lCi0rIgotK30KLSsjIGVuZDogZnVuY19lbWl0X3dy YXBwZXJfcGFydDEKLSsKLSsjIGZ1bmNfZW1pdF93cmFwcGVyX3BhcnQyIFthcmc9bm9dCi0rIwot KyMgRW1pdCB0aGUgc2Vjb25kIHBhcnQgb2YgYSBsaWJ0b29sIHdyYXBwZXIgc2NyaXB0IG9uIHN0 ZG91dC4KLSsjIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgdGhlIGRlc2NyaXB0aW9uIGFzc29j aWF0ZWQgd2l0aAotKyMgZnVuY19lbWl0X3dyYXBwZXIoKSwgYmVsb3cuCi0rZnVuY19lbWl0X3dy YXBwZXJfcGFydDIgKCkKLSt7Ci0rCWZ1bmNfZW1pdF93cmFwcGVyX3BhcnQyX2FyZzE9bm8KLSsJ aWYgdGVzdCAtbiAiJDEiIDsgdGhlbgotKwkgIGZ1bmNfZW1pdF93cmFwcGVyX3BhcnQyX2FyZzE9 JDEKLSsJZmkKLSsKLSsJJEVDSE8gIlwKLSsKLSsgICMgVXN1YWxseSAnbm8nLCBleGNlcHQgb24g Y3lnd2luL21pbmd3IHdoZW4gZW1iZWRkZWQgaW50bwotKyAgIyB0aGUgY3dyYXBwZXIuCi0rICBX UkFQUEVSX1NDUklQVF9CRUxPTkdTX0lOX09CSkRJUj0kZnVuY19lbWl0X3dyYXBwZXJfcGFydDJf YXJnMQotKyAgaWYgdGVzdCBcIlwkV1JBUFBFUl9TQ1JJUFRfQkVMT05HU19JTl9PQkpESVJcIiA9 IFwieWVzXCI7IHRoZW4KLSsgICAgIyBzcGVjaWFsIGNhc2UgZm9yICcuJwotKyAgICBpZiB0ZXN0 IFwiXCR0aGlzZGlyXCIgPSBcIi5cIjsgdGhlbgotKyAgICAgIHRoaXNkaXI9XGBwd2RcYAotKyAg ICBmaQotKyAgICAjIHJlbW92ZSAubGlicyBmcm9tIHRoaXNkaXIKLSsgICAgY2FzZSBcIlwkdGhp c2RpclwiIGluCi0rICAgICpbXFxcXC9dJG9iamRpciApIHRoaXNkaXI9XGBcJEVDSE8gXCJYXCR0 aGlzZGlyXCIgfCBcJFhzZWQgLWUgJ3MlW1xcXFwvXVteXFxcXC9dKiQlJSdcYCA7OwotKyAgICAk b2JqZGlyICkgICB0aGlzZGlyPS4gOzsKLSsgICAgZXNhYwotKyAgZmkKLSsKLSsgICMgVHJ5IHRv IGdldCB0aGUgYWJzb2x1dGUgZGlyZWN0b3J5IG5hbWUuCi0rICBhYnNkaXI9XGBjZCBcIlwkdGhp c2RpclwiICYmIHB3ZFxgCi0rICB0ZXN0IC1uIFwiXCRhYnNkaXJcIiAmJiB0aGlzZGlyPVwiXCRh YnNkaXJcIgotKyIKLSsKLSsJaWYgdGVzdCAiJGZhc3RfaW5zdGFsbCIgPSB5ZXM7IHRoZW4KLSsJ ICAkRUNITyAiXAotKyAgcHJvZ3JhbT1sdC0nJG91dHB1dG5hbWUnJGV4ZWV4dAotKyAgcHJvZ2Rp cj1cIlwkdGhpc2Rpci8kb2JqZGlyXCIKLSsKLSsgIGlmIHRlc3QgISAtZiBcIlwkcHJvZ2Rpci9c JHByb2dyYW1cIiB8fAotKyAgICAgeyBmaWxlPVxgbHMgLTFkdCBcIlwkcHJvZ2Rpci9cJHByb2dy YW1cIiBcIlwkcHJvZ2Rpci8uLi9cJHByb2dyYW1cIiAyPi9kZXYvbnVsbCB8ICR7U0VEfSAxcVxg OyBcXAotKyAgICAgICB0ZXN0IFwiWFwkZmlsZVwiICE9IFwiWFwkcHJvZ2Rpci9cJHByb2dyYW1c IjsgfTsgdGhlbgotKwotKyAgICBmaWxlPVwiXCRcJC1cJHByb2dyYW1cIgotKwotKyAgICBpZiB0 ZXN0ICEgLWQgXCJcJHByb2dkaXJcIjsgdGhlbgotKyAgICAgICRNS0RJUiBcIlwkcHJvZ2Rpclwi Ci0rICAgIGVsc2UKLSsgICAgICAkUk0gXCJcJHByb2dkaXIvXCRmaWxlXCIKLSsgICAgZmkiCi0r Ci0rCSAgJEVDSE8gIlwKLSsKLSsgICAgIyByZWxpbmsgZXhlY3V0YWJsZSBpZiBuZWNlc3NhcnkK LSsgICAgaWYgdGVzdCAtbiBcIlwkcmVsaW5rX2NvbW1hbmRcIjsgdGhlbgotKyAgICAgIGlmIHJl bGlua19jb21tYW5kX291dHB1dD1cYGV2YWwgXCRyZWxpbmtfY29tbWFuZCAyPiYxXGA7IHRoZW4g OgotKyAgICAgIGVsc2UKLSsJJEVDSE8gXCJcJHJlbGlua19jb21tYW5kX291dHB1dFwiID4mMgot KwkkUk0gXCJcJHByb2dkaXIvXCRmaWxlXCIKLSsJZXhpdCAxCi0rICAgICAgZmkKLSsgICAgZmkK LSsKLSsgICAgJE1WIFwiXCRwcm9nZGlyL1wkZmlsZVwiIFwiXCRwcm9nZGlyL1wkcHJvZ3JhbVwi IDI+L2Rldi9udWxsIHx8Ci0rICAgIHsgJFJNIFwiXCRwcm9nZGlyL1wkcHJvZ3JhbVwiOwotKyAg ICAgICRNViBcIlwkcHJvZ2Rpci9cJGZpbGVcIiBcIlwkcHJvZ2Rpci9cJHByb2dyYW1cIjsgfQot KyAgICAkUk0gXCJcJHByb2dkaXIvXCRmaWxlXCIKLSsgIGZpIgotKwllbHNlCi0rCSAgJEVDSE8g IlwKLSsgIHByb2dyYW09JyRvdXRwdXRuYW1lJwotKyAgcHJvZ2Rpcj1cIlwkdGhpc2Rpci8kb2Jq ZGlyXCIKLSsiCi0rCWZpCi0rCi0rCSRFQ0hPICJcCi0rCi0rICBpZiB0ZXN0IC1mIFwiXCRwcm9n ZGlyL1wkcHJvZ3JhbVwiOyB0aGVuIgotKwotKwkjIEV4cG9ydCBvdXIgc2hsaWJwYXRoX3ZhciBp ZiB3ZSBoYXZlIG9uZS4KLSsJaWYgdGVzdCAiJHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aCIg PSB5ZXMgJiYgdGVzdCAtbiAiJHNobGlicGF0aF92YXIiICYmIHRlc3QgLW4gIiR0ZW1wX3JwYXRo IjsgdGhlbgotKwkgICRFQ0hPICJcCi0rICAgICMgQWRkIG91ciBvd24gbGlicmFyeSBwYXRoIHRv ICRzaGxpYnBhdGhfdmFyCi0rICAgICRzaGxpYnBhdGhfdmFyPVwiJHRlbXBfcnBhdGhcJCRzaGxp YnBhdGhfdmFyXCIKLSsKLSsgICAgIyBTb21lIHN5c3RlbXMgY2Fubm90IGNvcGUgd2l0aCBjb2xv bi10ZXJtaW5hdGVkICRzaGxpYnBhdGhfdmFyCi0rICAgICMgVGhlIHNlY29uZCBjb2xvbiBpcyBh IHdvcmthcm91bmQgZm9yIGEgYnVnIGluIEJlT1MgUjQgc2VkCi0rICAgICRzaGxpYnBhdGhfdmFy PVxgXCRFQ0hPIFwiWFwkJHNobGlicGF0aF92YXJcIiB8IFwkWHNlZCAtZSAncy86OipcJC8vJ1xg Ci0rCi0rICAgIGV4cG9ydCAkc2hsaWJwYXRoX3ZhcgotKyIKLSsJZmkKLSsKLSsJIyBmaXh1cCB0 aGUgZGxsIHNlYXJjaHBhdGggaWYgd2UgbmVlZCB0by4KLSsJaWYgdGVzdCAtbiAiJGRsbHNlYXJj aHBhdGgiOyB0aGVuCi0rCSAgJEVDSE8gIlwKLSsgICAgIyBBZGQgdGhlIGRsbCBzZWFyY2ggcGF0 aCBjb21wb25lbnRzIHRvIHRoZSBleGVjdXRhYmxlIFBBVEgKLSsgICAgUEFUSD0kZGxsc2VhcmNo cGF0aDpcJFBBVEgKLSsiCi0rCWZpCi0rCi0rCSRFQ0hPICJcCi0rICAgIGlmIHRlc3QgXCJcJGxp YnRvb2xfZXhlY3V0ZV9tYWdpY1wiICE9IFwiJG1hZ2ljXCI7IHRoZW4KLSsgICAgICAjIFJ1biB0 aGUgYWN0dWFsIHByb2dyYW0gd2l0aCBvdXIgYXJndW1lbnRzLgotKyIKLSsJY2FzZSAkaG9zdCBp bgotKwkjIEJhY2tzbGFzaGVzIHNlcGFyYXRlIGRpcmVjdG9yaWVzIG9uIHBsYWluIHdpbmRvd3MK LSsJKi0qLW1pbmd3IHwgKi0qLW9zMiogfCAqLWNlZ2NjKikKLSsJICAkRUNITyAiXAotKyAgICAg IGV4ZWMgXCJcJHByb2dkaXJcXFxcXCRwcm9ncmFtXCIgXCR7MStcIlwkQFwifQotKyIKLSsJICA7 OwotKwotKwkqKQotKwkgICRFQ0hPICJcCi0rICAgICAgZXhlYyBcIlwkcHJvZ2Rpci9cJHByb2dy YW1cIiBcJHsxK1wiXCRAXCJ9Ci0rIgotKwkgIDs7Ci0rCWVzYWMKLSsJJEVDSE8gIlwKLSsgICAg ICBcJEVDSE8gXCJcJDA6IGNhbm5vdCBleGVjIFwkcHJvZ3JhbSBcJCpcIiAxPiYyCi0rICAgICAg ZXhpdCAxCi0rICAgIGZpCi0rICBlbHNlCi0rICAgICMgVGhlIHByb2dyYW0gZG9lc24ndCBleGlz dC4KLSsgICAgXCRFQ0hPIFwiXCQwOiBlcnJvcjogXFxcYFwkcHJvZ2Rpci9cJHByb2dyYW0nIGRv ZXMgbm90IGV4aXN0XCIgMT4mMgotKyAgICBcJEVDSE8gXCJUaGlzIHNjcmlwdCBpcyBqdXN0IGEg d3JhcHBlciBmb3IgXCRwcm9ncmFtLlwiIDE+JjIKLSsgICAgJEVDSE8gXCJTZWUgdGhlICRQQUNL QUdFIGRvY3VtZW50YXRpb24gZm9yIG1vcmUgaW5mb3JtYXRpb24uXCIgMT4mMgotKyAgICBleGl0 IDEKLSsgIGZpCi0rZmlcCi0rIgotK30KLSsjIGVuZDogZnVuY19lbWl0X3dyYXBwZXJfcGFydDIK LSsKLSsKLSsjIGZ1bmNfZW1pdF93cmFwcGVyIFthcmc9bm9dCi0rIwotKyMgRW1pdCBhIGxpYnRv b2wgd3JhcHBlciBzY3JpcHQgb24gc3Rkb3V0LgotKyMgRG9uJ3QgZGlyZWN0bHkgb3BlbiBhIGZp bGUgYmVjYXVzZSB3ZSBtYXkgd2FudCB0bwotKyMgaW5jb3Jwb3JhdGUgdGhlIHNjcmlwdCBjb250 ZW50cyB3aXRoaW4gYSBjeWd3aW4vbWluZ3cKLSsjIHdyYXBwZXIgZXhlY3V0YWJsZS4gIE11c3Qg T05MWSBiZSBjYWxsZWQgZnJvbSB3aXRoaW4KLSsjIGZ1bmNfbW9kZV9saW5rIGJlY2F1c2UgaXQg ZGVwZW5kcyBvbiBhIG51bWJlciBvZiB2YXJpYWJsZXMKLSsjIHNldCB0aGVyZWluLgotKyMKLSsj IEFSRyBpcyB0aGUgdmFsdWUgdGhhdCB0aGUgV1JBUFBFUl9TQ1JJUFRfQkVMT05HU19JTl9PQkpE SVIKLSsjIHZhcmlhYmxlIHdpbGwgdGFrZS4gIElmICd5ZXMnLCB0aGVuIHRoZSBlbWl0dGVkIHNj cmlwdAotKyMgd2lsbCBhc3N1bWUgdGhhdCB0aGUgZGlyZWN0b3J5IGluIHdoaWNoIGl0IGlzIHN0 b3JlZCBpcwotKyMgdGhlICRvYmpkaXIgZGlyZWN0b3J5LiAgVGhpcyBpcyBhIGN5Z3dpbi9taW5n dy1zcGVjaWZpYwotKyMgYmVoYXZpb3IuCi0rZnVuY19lbWl0X3dyYXBwZXIgKCkKLSt7Ci0rCWZ1 bmNfZW1pdF93cmFwcGVyX2FyZzE9bm8KLSsJaWYgdGVzdCAtbiAiJDEiIDsgdGhlbgotKwkgIGZ1 bmNfZW1pdF93cmFwcGVyX2FyZzE9JDEKLSsJZmkKLSsKLSsJIyBzcGxpdCB0aGlzIHVwIHNvIHRo YXQgZnVuY19lbWl0X2N3cmFwcGVyZXhlX3NyYwotKwkjIGNhbiBjYWxsIGVhY2ggcGFydCBpbmRl cGVuZGVudGx5LgotKwlmdW5jX2VtaXRfd3JhcHBlcl9wYXJ0MSAiJHtmdW5jX2VtaXRfd3JhcHBl cl9hcmcxfSIKLSsJZnVuY19lbWl0X3dyYXBwZXJfcGFydDIgIiR7ZnVuY19lbWl0X3dyYXBwZXJf YXJnMX0iCi0rfQotKwotKwotKyMgZnVuY190b19ob3N0X3BhdGggYXJnCi0rIwotKyMgQ29udmVy dCBwYXRocyB0byBob3N0IGZvcm1hdCB3aGVuIHVzZWQgd2l0aCBidWlsZCB0b29scy4KLSsjIElu dGVuZGVkIGZvciB1c2Ugd2l0aCAibmF0aXZlIiBtaW5ndyAod2hlcmUgbGlidG9vbCBpdHNlbGYK LSsjIGlzIHJ1bm5pbmcgdW5kZXIgdGhlIG1zeXMgc2hlbGwpLCBvciBpbiB0aGUgZm9sbG93aW5n IGNyb3NzLQotKyMgYnVpbGQgZW52aXJvbm1lbnRzOgotKyMgICAgJGJ1aWxkICAgICAgICAgICRo b3N0Ci0rIyAgICBtaW5ndyAobXN5cykgICAgbWluZ3cgIFtlLmcuIG5hdGl2ZV0KLSsjICAgIGN5 Z3dpbiAgICAgICAgICBtaW5ndwotKyMgICAgKm5peCArIHdpbmUgICAgIG1pbmd3Ci0rIyB3aGVy ZSB3aW5lIGlzIGVxdWlwcGVkIHdpdGggdGhlIGB3aW5lcGF0aCcgZXhlY3V0YWJsZS4KLSsjIElu IHRoZSBuYXRpdmUgbWluZ3cgY2FzZSwgdGhlIChtc3lzKSBzaGVsbCBhdXRvbWF0aWNhbGx5Ci0r IyBjb252ZXJ0cyBwYXRocyBmb3IgYW55IG5vbi1tc3lzIGFwcGxpY2F0aW9ucyBpdCBsYXVuY2hl cywKLSsjIGJ1dCB0aGF0IGZhY2lsaXR5IGlzbid0IGF2YWlsYWJsZSBmcm9tIGluc2lkZSB0aGUg Y3dyYXBwZXIuCi0rIyBTaW1pbGFyIGFjY29tbW9kYXRpb25zIGFyZSBuZWNlc3NhcnkgZm9yICRo b3N0IG1pbmd3IGFuZAotKyMgJGJ1aWxkIGN5Z3dpbi4gIENhbGxpbmcgdGhpcyBmdW5jdGlvbiBk b2VzIG5vIGhhcm0gZm9yIG90aGVyCi0rIyAkaG9zdC8kYnVpbGQgY29tYmluYXRpb25zIG5vdCBs aXN0ZWQgYWJvdmUuCi0rIwotKyMgQVJHIGlzIHRoZSBwYXRoIChvbiAkYnVpbGQpIHRoYXQgc2hv dWxkIGJlIGNvbnZlcnRlZCB0bwotKyMgdGhlIHByb3BlciByZXByZXNlbnRhdGlvbiBmb3IgJGhv c3QuIFRoZSByZXN1bHQgaXMgc3RvcmVkCi0rIyBpbiAkZnVuY190b19ob3N0X3BhdGhfcmVzdWx0 LgotK2Z1bmNfdG9faG9zdF9wYXRoICgpCi0rewotKyAgZnVuY190b19ob3N0X3BhdGhfcmVzdWx0 PSIkMSIKLSsgIGlmIHRlc3QgLW4gIiQxIiA7IHRoZW4KLSsgICAgY2FzZSAkaG9zdCBpbgotKyAg ICAgICptaW5ndyogKQotKyAgICAgICAgbHRfc2VkX25haXZlX2JhY2tzbGFzaGlmeT0nc3xcXFxc KnxcXHxnO3N8L3xcXHxnO3N8XFx8XFxcXHxnJwotKyAgICAgICAgY2FzZSAkYnVpbGQgaW4KLSsg ICAgICAgICAgKm1pbmd3KiApICMgYWN0dWFsbHksIG1zeXMKLSsgICAgICAgICAgICAjIGF3a3dh cmQ6IGNtZCBhcHBlbmRzIHNwYWNlcyB0byByZXN1bHQKLSsgICAgICAgICAgICBsdF9zZWRfc3Ry aXBfdHJhaWxpbmdfc3BhY2VzPSJzL1sgXSpcJC8vIgotKyAgICAgICAgICAgIGZ1bmNfdG9faG9z dF9wYXRoX3RtcDE9YCggY21kIC8vYyBlY2hvICIkMSIgfFwKLSsgICAgICAgICAgICAgICRTRUQg LWUgIiRsdF9zZWRfc3RyaXBfdHJhaWxpbmdfc3BhY2VzIiApIDI+L2Rldi9udWxsIHx8IGVjaG8g IiJgCi0rICAgICAgICAgICAgZnVuY190b19ob3N0X3BhdGhfcmVzdWx0PWBlY2hvICIkZnVuY190 b19ob3N0X3BhdGhfdG1wMSIgfFwKLSsgICAgICAgICAgICAgICRTRUQgLWUgIiRsdF9zZWRfbmFp dmVfYmFja3NsYXNoaWZ5ImAKLSsgICAgICAgICAgICA7OwotKyAgICAgICAgICAqY3lnd2luKiAp Ci0rICAgICAgICAgICAgZnVuY190b19ob3N0X3BhdGhfdG1wMT1gY3lncGF0aCAtdyAiJDEiYAot KyAgICAgICAgICAgIGZ1bmNfdG9faG9zdF9wYXRoX3Jlc3VsdD1gZWNobyAiJGZ1bmNfdG9faG9z dF9wYXRoX3RtcDEiIHxcCi0rICAgICAgICAgICAgICAkU0VEIC1lICIkbHRfc2VkX25haXZlX2Jh Y2tzbGFzaGlmeSJgCi0rICAgICAgICAgICAgOzsKLSsgICAgICAgICAgKiApCi0rICAgICAgICAg ICAgIyBVbmZvcnR1bmF0ZWx5LCB3aW5lcGF0aCBkb2VzIG5vdCBleGl0IHdpdGggYSBub24temVy bwotKyAgICAgICAgICAgICMgZXJyb3IgY29kZSwgc28gd2UgYXJlIGZvcmNlZCB0byBjaGVjayB0 aGUgY29udGVudHMgb2YKLSsgICAgICAgICAgICAjIHN0ZG91dC4gT24gdGhlIG90aGVyIGhhbmQs IGlmIHRoZSBjb21tYW5kIGlzIG5vdAotKyAgICAgICAgICAgICMgZm91bmQsIHRoZSBzaGVsbCB3 aWxsIHNldCBhbiBleGl0IGNvZGUgb2YgMTI3IGFuZCBwcmludAotKyAgICAgICAgICAgICMgKmFu IGVycm9yIG1lc3NhZ2UqIHRvIHN0ZG91dC4gU28gd2UgbXVzdCBjaGVjayBmb3IgYm90aAotKyAg ICAgICAgICAgICMgZXJyb3IgY29kZSBvZiB6ZXJvIEFORCBub24tZW1wdHkgc3Rkb3V0LCB3aGlj aCBleHBsYWlucwotKyAgICAgICAgICAgICMgdGhlIG9kZCBjb25zdHJ1Y3Rpb246Ci0rICAgICAg ICAgICAgZnVuY190b19ob3N0X3BhdGhfdG1wMT1gd2luZXBhdGggLXcgIiQxIiAyPi9kZXYvbnVs bGAKLSsgICAgICAgICAgICBpZiB0ZXN0ICIkPyIgLWVxIDAgJiYgdGVzdCAtbiAiJHtmdW5jX3Rv X2hvc3RfcGF0aF90bXAxfSI7IHRoZW4KLSsgICAgICAgICAgICAgIGZ1bmNfdG9faG9zdF9wYXRo X3Jlc3VsdD1gZWNobyAiJGZ1bmNfdG9faG9zdF9wYXRoX3RtcDEiIHxcCi0rICAgICAgICAgICAg ICAgICRTRUQgLWUgIiRsdF9zZWRfbmFpdmVfYmFja3NsYXNoaWZ5ImAKLSsgICAgICAgICAgICBl bHNlCi0rICAgICAgICAgICAgICAjIEFsbG93IHdhcm5pbmcgYmVsb3cuCi0rICAgICAgICAgICAg ICBmdW5jX3RvX2hvc3RfcGF0aF9yZXN1bHQ9IiIKLSsgICAgICAgICAgICBmaQotKyAgICAgICAg ICAgIDs7Ci0rICAgICAgICBlc2FjCi0rICAgICAgICBpZiB0ZXN0IC16ICIkZnVuY190b19ob3N0 X3BhdGhfcmVzdWx0IiA7IHRoZW4KLSsgICAgICAgICAgZnVuY19lcnJvciAiQ291bGQgbm90IGRl dGVybWluZSBob3N0IHBhdGggY29ycmVzcG9uZGluZyB0byIKLSsgICAgICAgICAgZnVuY19lcnJv ciAiICAnJDEnIgotKyAgICAgICAgICBmdW5jX2Vycm9yICJDb250aW51aW5nLCBidXQgdW5pbnN0 YWxsZWQgZXhlY3V0YWJsZXMgbWF5IG5vdCB3b3JrLiIKLSsgICAgICAgICAgIyBGYWxsYmFjazoK LSsgICAgICAgICAgZnVuY190b19ob3N0X3BhdGhfcmVzdWx0PSIkMSIKLSsgICAgICAgIGZpCi0r ICAgICAgICA7OwotKyAgICBlc2FjCi0rICBmaQotK30KLSsjIGVuZDogZnVuY190b19ob3N0X3Bh dGgKLSsKLSsjIGZ1bmNfdG9faG9zdF9wYXRobGlzdCBhcmcKLSsjCi0rIyBDb252ZXJ0IHBhdGhs aXN0cyB0byBob3N0IGZvcm1hdCB3aGVuIHVzZWQgd2l0aCBidWlsZCB0b29scy4KLSsjIFNlZSBm dW5jX3RvX2hvc3RfcGF0aCgpLCBhYm92ZS4gVGhpcyBmdW5jdGlvbiBzdXBwb3J0cyB0aGUKLSsj IGZvbGxvd2luZyAkYnVpbGQvJGhvc3QgY29tYmluYXRpb25zIChidXQgZG9lcyBubyBoYXJtIGZv cgotKyMgY29tYmluYXRpb25zIG5vdCBsaXN0ZWQgaGVyZSk6Ci0rIyAgICAkYnVpbGQgICAgICAg ICAgJGhvc3QKLSsjICAgIG1pbmd3IChtc3lzKSAgICBtaW5ndyAgW2UuZy4gbmF0aXZlXQotKyMg ICAgY3lnd2luICAgICAgICAgIG1pbmd3Ci0rIyAgICAqbml4ICsgd2luZSAgICAgbWluZ3cKLSsj Ci0rIyBQYXRoIHNlcGFyYXRvcnMgYXJlIGFsc28gY29udmVydGVkIGZyb20gJGJ1aWxkIGZvcm1h dCB0bwotKyMgJGhvc3QgZm9ybWF0LiBJZiBBUkcgYmVnaW5zIG9yIGVuZHMgd2l0aCBhIHBhdGgg c2VwYXJhdG9yCi0rIyBjaGFyYWN0ZXIsIGl0IGlzIHByZXNlcnZlZCAoYnV0IGNvbnZlcnRlZCB0 byAkaG9zdCBmb3JtYXQpCi0rIyBvbiBvdXRwdXQuCi0rIwotKyMgQVJHIGlzIGEgcGF0aGxpc3Qg KG9uICRidWlsZCkgdGhhdCBzaG91bGQgYmUgY29udmVydGVkIHRvCi0rIyB0aGUgcHJvcGVyIHJl cHJlc2VudGF0aW9uIG9uICRob3N0LiBUaGUgcmVzdWx0IGlzIHN0b3JlZAotKyMgaW4gJGZ1bmNf dG9faG9zdF9wYXRobGlzdF9yZXN1bHQuCi0rZnVuY190b19ob3N0X3BhdGhsaXN0ICgpCi0rewot KyAgZnVuY190b19ob3N0X3BhdGhsaXN0X3Jlc3VsdD0iJDEiCi0rICBpZiB0ZXN0IC1uICIkMSIg OyB0aGVuCi0rICAgIGNhc2UgJGhvc3QgaW4KLSsgICAgICAqbWluZ3cqICkKLSsgICAgICAgIGx0 X3NlZF9uYWl2ZV9iYWNrc2xhc2hpZnk9J3N8XFxcXCp8XFx8ZztzfC98XFx8ZztzfFxcfFxcXFx8 ZycKLSsgICAgICAgICMgUmVtb3ZlIGxlYWRpbmcgYW5kIHRyYWlsaW5nIHBhdGggc2VwYXJhdG9y IGNoYXJhY3RlcnMgZnJvbQotKyAgICAgICAgIyBBUkcuIG1zeXMgYmVoYXZpb3IgaXMgaW5jb25z aXN0ZW50IGhlcmUsIGN5Z3BhdGggdHVybnMgdGhlbQotKyAgICAgICAgIyBpbnRvICcuOycgYW5k ICc7LicsIGFuZCB3aW5lcGF0aCBpZ25vcmVzIHRoZW0gY29tcGxldGVseS4KLSsgICAgICAgIGZ1 bmNfdG9faG9zdF9wYXRobGlzdF90bXAyPSIkMSIKLSsgICAgICAgICMgT25jZSBzZXQgZm9yIHRo aXMgY2FsbCwgdGhpcyB2YXJpYWJsZSBzaG91bGQgbm90IGJlCi0rICAgICAgICAjIHJlYXNzaWdu ZWQuIEl0IGlzIHVzZWQgaW4gdGhhIGZhbGxiYWNrIGNhc2UuCi0rICAgICAgICBmdW5jX3RvX2hv c3RfcGF0aGxpc3RfdG1wMT1gZWNobyAiJGZ1bmNfdG9faG9zdF9wYXRobGlzdF90bXAyIiB8XAot KyAgICAgICAgICAkU0VEIC1lICdzfF46Knx8JyAtZSAnc3w6KiR8fCdgCi0rICAgICAgICBjYXNl ICRidWlsZCBpbgotKyAgICAgICAgICAqbWluZ3cqICkgIyBBY3R1YWxseSwgbXN5cy4KLSsgICAg ICAgICAgICAjIEF3a3dhcmQ6IGNtZCBhcHBlbmRzIHNwYWNlcyB0byByZXN1bHQuCi0rICAgICAg ICAgICAgbHRfc2VkX3N0cmlwX3RyYWlsaW5nX3NwYWNlcz0icy9bIF0qXCQvLyIKLSsgICAgICAg ICAgICBmdW5jX3RvX2hvc3RfcGF0aGxpc3RfdG1wMj1gKCBjbWQgLy9jIGVjaG8gIiRmdW5jX3Rv X2hvc3RfcGF0aGxpc3RfdG1wMSIgfFwKLSsgICAgICAgICAgICAgICRTRUQgLWUgIiRsdF9zZWRf c3RyaXBfdHJhaWxpbmdfc3BhY2VzIiApIDI+L2Rldi9udWxsIHx8IGVjaG8gIiJgCi0rICAgICAg ICAgICAgZnVuY190b19ob3N0X3BhdGhsaXN0X3Jlc3VsdD1gZWNobyAiJGZ1bmNfdG9faG9zdF9w YXRobGlzdF90bXAyIiB8XAotKyAgICAgICAgICAgICAgJFNFRCAtZSAiJGx0X3NlZF9uYWl2ZV9i YWNrc2xhc2hpZnkiYAotKyAgICAgICAgICAgIDs7Ci0rICAgICAgICAgICpjeWd3aW4qICkKLSsg ICAgICAgICAgICBmdW5jX3RvX2hvc3RfcGF0aGxpc3RfdG1wMj1gY3lncGF0aCAtdyAtcCAiJGZ1 bmNfdG9faG9zdF9wYXRobGlzdF90bXAxImAKLSsgICAgICAgICAgICBmdW5jX3RvX2hvc3RfcGF0 aGxpc3RfcmVzdWx0PWBlY2hvICIkZnVuY190b19ob3N0X3BhdGhsaXN0X3RtcDIiIHxcCi0rICAg ICAgICAgICAgICAkU0VEIC1lICIkbHRfc2VkX25haXZlX2JhY2tzbGFzaGlmeSJgCi0rICAgICAg ICAgICAgOzsKLSsgICAgICAgICAgKiApCi0rICAgICAgICAgICAgIyB1bmZvcnR1bmF0ZWx5LCB3 aW5lcGF0aCBkb2Vzbid0IGNvbnZlcnQgcGF0aGxpc3RzCi0rICAgICAgICAgICAgZnVuY190b19o b3N0X3BhdGhsaXN0X3Jlc3VsdD0iIgotKyAgICAgICAgICAgIGZ1bmNfdG9faG9zdF9wYXRobGlz dF9vbGRJRlM9JElGUwotKyAgICAgICAgICAgIElGUz06Ci0rICAgICAgICAgICAgZm9yIGZ1bmNf dG9faG9zdF9wYXRobGlzdF9mIGluICRmdW5jX3RvX2hvc3RfcGF0aGxpc3RfdG1wMSA7IGRvCi0r ICAgICAgICAgICAgICBJRlM9JGZ1bmNfdG9faG9zdF9wYXRobGlzdF9vbGRJRlMKLSsgICAgICAg ICAgICAgIGlmIHRlc3QgLW4gIiRmdW5jX3RvX2hvc3RfcGF0aGxpc3RfZiIgOyB0aGVuCi0rICAg ICAgICAgICAgICAgIGZ1bmNfdG9faG9zdF9wYXRoICIkZnVuY190b19ob3N0X3BhdGhsaXN0X2Yi Ci0rICAgICAgICAgICAgICAgIGlmIHRlc3QgLW4gIiRmdW5jX3RvX2hvc3RfcGF0aF9yZXN1bHQi IDsgdGhlbgotKyAgICAgICAgICAgICAgICAgIGlmIHRlc3QgLXogIiRmdW5jX3RvX2hvc3RfcGF0 aGxpc3RfcmVzdWx0IiA7IHRoZW4KLSsgICAgICAgICAgICAgICAgICAgIGZ1bmNfdG9faG9zdF9w YXRobGlzdF9yZXN1bHQ9IiRmdW5jX3RvX2hvc3RfcGF0aF9yZXN1bHQiCi0rICAgICAgICAgICAg ICAgICAgZWxzZQotKyAgICAgICAgICAgICAgICAgICAgZnVuY190b19ob3N0X3BhdGhsaXN0X3Jl c3VsdD0iJGZ1bmNfdG9faG9zdF9wYXRobGlzdF9yZXN1bHQ7JGZ1bmNfdG9faG9zdF9wYXRoX3Jl c3VsdCIKLSsgICAgICAgICAgICAgICAgICBmaQotKyAgICAgICAgICAgICAgICBmaQotKyAgICAg ICAgICAgICAgZmkKLSsgICAgICAgICAgICAgIElGUz06Ci0rICAgICAgICAgICAgZG9uZQotKyAg ICAgICAgICAgIElGUz0kZnVuY190b19ob3N0X3BhdGhsaXN0X29sZElGUwotKyAgICAgICAgICAg IDs7Ci0rICAgICAgICBlc2FjCi0rICAgICAgICBpZiB0ZXN0IC16ICIkZnVuY190b19ob3N0X3Bh dGhsaXN0X3Jlc3VsdCIgOyB0aGVuCi0rICAgICAgICAgIGZ1bmNfZXJyb3IgIkNvdWxkIG5vdCBk ZXRlcm1pbmUgdGhlIGhvc3QgcGF0aChzKSBjb3JyZXNwb25kaW5nIHRvIgotKyAgICAgICAgICBm dW5jX2Vycm9yICIgICckMSciCi0rICAgICAgICAgIGZ1bmNfZXJyb3IgIkNvbnRpbnVpbmcsIGJ1 dCB1bmluc3RhbGxlZCBleGVjdXRhYmxlcyBtYXkgbm90IHdvcmsuIgotKyAgICAgICAgICAjIEZh bGxiYWNrLiBUaGlzIG1heSBicmVhayBpZiAkMSBjb250YWlucyBET1Mtc3R5bGUgZHJpdmUKLSsg ICAgICAgICAgIyBzcGVjaWZpY2F0aW9ucy4gVGhlIGZpeCBpcyBub3QgdG8gY29tcGxpY2F0ZSB0 aGUgZXhwcmVzc2lvbgotKyAgICAgICAgICAjIGJlbG93LCBidXQgZm9yIHRoZSB1c2VyIHRvIHBy b3ZpZGUgYSB3b3JraW5nIHdpbmUgaW5zdGFsbGF0aW9uCi0rICAgICAgICAgICMgd2l0aCB3aW5l cGF0aCBzbyB0aGF0IHBhdGggdHJhbnNsYXRpb24gaW4gdGhlIGNyb3NzLXRvLW1pbmd3Ci0rICAg ICAgICAgICMgY2FzZSB3b3JrcyBwcm9wZXJseS4KLSsgICAgICAgICAgbHRfcmVwbGFjZV9wYXRo c2VwX25peF90b19kb3M9InN8Onw7fGciCi0rICAgICAgICAgIGZ1bmNfdG9faG9zdF9wYXRobGlz dF9yZXN1bHQ9YGVjaG8gIiRmdW5jX3RvX2hvc3RfcGF0aGxpc3RfdG1wMSIgfFwKLSsgICAgICAg ICAgICAkU0VEIC1lICIkbHRfcmVwbGFjZV9wYXRoc2VwX25peF90b19kb3MiYAotKyAgICAgICAg ZmkKLSsgICAgICAgICMgTm93LCBhZGQgdGhlIGxlYWRpbmcgYW5kIHRyYWlsaW5nIHBhdGggc2Vw YXJhdG9ycyBiYWNrCi0rICAgICAgICBjYXNlICIkMSIgaW4KLSsgICAgICAgICAgOiogKSBmdW5j X3RvX2hvc3RfcGF0aGxpc3RfcmVzdWx0PSI7JGZ1bmNfdG9faG9zdF9wYXRobGlzdF9yZXN1bHQi Ci0rICAgICAgICAgICAgOzsKLSsgICAgICAgIGVzYWMKLSsgICAgICAgIGNhc2UgIiQxIiBpbgot KyAgICAgICAgICAqOiApIGZ1bmNfdG9faG9zdF9wYXRobGlzdF9yZXN1bHQ9IiRmdW5jX3RvX2hv c3RfcGF0aGxpc3RfcmVzdWx0OyIKLSsgICAgICAgICAgICA7OwotKyAgICAgICAgZXNhYwotKyAg ICAgICAgOzsKLSsgICAgZXNhYwotKyAgZmkKLSt9Ci0rIyBlbmQ6IGZ1bmNfdG9faG9zdF9wYXRo bGlzdAotKwotKyMgZnVuY19lbWl0X2N3cmFwcGVyZXhlX3NyYwotKyMgZW1pdCB0aGUgc291cmNl IGNvZGUgZm9yIGEgd3JhcHBlciBleGVjdXRhYmxlIG9uIHN0ZG91dAotKyMgTXVzdCBPTkxZIGJl IGNhbGxlZCBmcm9tIHdpdGhpbiBmdW5jX21vZGVfbGluayBiZWNhdXNlCi0rIyBpdCBkZXBlbmRz IG9uIGEgbnVtYmVyIG9mIHZhcmlhYmxlIHNldCB0aGVyZWluLgotK2Z1bmNfZW1pdF9jd3JhcHBl cmV4ZV9zcmMgKCkKLSt7Ci0rCWNhdCA8PEVPRgotKwotKy8qICRjd3JhcHBlcnNvdXJjZSAtIHRl bXBvcmFyeSB3cmFwcGVyIGV4ZWN1dGFibGUgZm9yICRvYmpkaXIvJG91dHB1dG5hbWUKLSsgICBH ZW5lcmF0ZWQgYnkgJFBST0dSQU0gKEdOVSAkUEFDS0FHRSRUSU1FU1RBTVApICRWRVJTSU9OCi0r Ci0rICAgVGhlICRvdXRwdXQgcHJvZ3JhbSBjYW5ub3QgYmUgZGlyZWN0bHkgZXhlY3V0ZWQgdW50 aWwgYWxsIHRoZSBsaWJ0b29sCi0rICAgbGlicmFyaWVzIHRoYXQgaXQgZGVwZW5kcyBvbiBhcmUg aW5zdGFsbGVkLgotKwotKyAgIFRoaXMgd3JhcHBlciBleGVjdXRhYmxlIHNob3VsZCBuZXZlciBi ZSBtb3ZlZCBvdXQgb2YgdGhlIGJ1aWxkIGRpcmVjdG9yeS4KLSsgICBJZiBpdCBpcywgaXQgd2ls bCBub3Qgb3BlcmF0ZSBjb3JyZWN0bHkuCi0rCi0rICAgQ3VycmVudGx5LCBpdCBzaW1wbHkgZXhl Y3MgdGhlIHdyYXBwZXIgKnNjcmlwdCogIiRTSEVMTCAkb3V0cHV0IiwKLSsgICBidXQgY291bGQg ZXZlbnR1YWxseSBhYnNvcmIgYWxsIG9mIHRoZSBzY3JpcHRzIGZ1bmN0aW9uYWxpdHkgYW5kCi0r ICAgZXhlYyAkb2JqZGlyLyRvdXRwdXRuYW1lIGRpcmVjdGx5LgotKyovCi0rRU9GCi0rCSAgICBj YXQgPDwiRU9GIgotKyNpbmNsdWRlIDxzdGRpby5oPgotKyNpbmNsdWRlIDxzdGRsaWIuaD4KLSsj aWZkZWYgX01TQ19WRVIKLSsjIGluY2x1ZGUgPGRpcmVjdC5oPgotKyMgaW5jbHVkZSA8cHJvY2Vz cy5oPgotKyMgaW5jbHVkZSA8aW8uaD4KLSsjIGRlZmluZSBzZXRtb2RlIF9zZXRtb2RlCi0rI2Vs c2UKLSsjIGluY2x1ZGUgPHVuaXN0ZC5oPgotKyMgaW5jbHVkZSA8c3RkaW50Lmg+Ci0rIyBpZmRl ZiBfX0NZR1dJTl9fCi0rIyAgaW5jbHVkZSA8aW8uaD4KLSsjICBkZWZpbmUgSEFWRV9TRVRFTlYK LSsjICBpZmRlZiBfX1NUUklDVF9BTlNJX18KLStjaGFyICpyZWFscGF0aCAoY29uc3QgY2hhciAq LCBjaGFyICopOwotK2ludCBwdXRlbnYgKGNoYXIgKik7Ci0raW50IHNldGVudiAoY29uc3QgY2hh ciAqLCBjb25zdCBjaGFyICosIGludCk7Ci0rIyAgZW5kaWYKLSsjIGVuZGlmCi0rI2VuZGlmCi0r I2luY2x1ZGUgPG1hbGxvYy5oPgotKyNpbmNsdWRlIDxzdGRhcmcuaD4KLSsjaW5jbHVkZSA8YXNz ZXJ0Lmg+Ci0rI2luY2x1ZGUgPHN0cmluZy5oPgotKyNpbmNsdWRlIDxjdHlwZS5oPgotKyNpbmNs dWRlIDxlcnJuby5oPgotKyNpbmNsdWRlIDxmY250bC5oPgotKyNpbmNsdWRlIDxzeXMvc3RhdC5o PgotKwotKyNpZiBkZWZpbmVkKFBBVEhfTUFYKQotKyMgZGVmaW5lIExUX1BBVEhNQVggUEFUSF9N QVgKLSsjZWxpZiBkZWZpbmVkKE1BWFBBVEhMRU4pCi0rIyBkZWZpbmUgTFRfUEFUSE1BWCBNQVhQ QVRITEVOCi0rI2Vsc2UKLSsjIGRlZmluZSBMVF9QQVRITUFYIDEwMjQKLSsjZW5kaWYKLSsKLSsj aWZuZGVmIFNfSVhPVEgKLSsjIGRlZmluZSBTX0lYT1RIIDAKLSsjZW5kaWYKLSsjaWZuZGVmIFNf SVhHUlAKLSsjIGRlZmluZSBTX0lYR1JQIDAKLSsjZW5kaWYKLSsKLSsjaWZkZWYgX01TQ19WRVIK LSsjIGRlZmluZSBTX0lYVVNSIF9TX0lFWEVDCi0rIyBkZWZpbmUgc3RhdCBfc3RhdAotKyMgaWZu ZGVmIF9JTlRQVFJfVF9ERUZJTkVECi0rIyAgZGVmaW5lIGludHB0cl90IGludAotKyMgZW5kaWYK LSsjZW5kaWYKLSsKLSsjaWZuZGVmIERJUl9TRVBBUkFUT1IKLSsjIGRlZmluZSBESVJfU0VQQVJB VE9SICcvJwotKyMgZGVmaW5lIFBBVEhfU0VQQVJBVE9SICc6JwotKyNlbmRpZgotKwotKyNpZiBk ZWZpbmVkIChfV0lOMzIpIHx8IGRlZmluZWQgKF9fTVNET1NfXykgfHwgZGVmaW5lZCAoX19ESkdQ UF9fKSB8fCBcCi0rICBkZWZpbmVkIChfX09TMl9fKQotKyMgZGVmaW5lIEhBVkVfRE9TX0JBU0VE X0ZJTEVfU1lTVEVNCi0rIyBkZWZpbmUgRk9QRU5fV0IgIndiIgotKyMgaWZuZGVmIERJUl9TRVBB UkFUT1JfMgotKyMgIGRlZmluZSBESVJfU0VQQVJBVE9SXzIgJ1xcJwotKyMgZW5kaWYKLSsjIGlm bmRlZiBQQVRIX1NFUEFSQVRPUl8yCi0rIyAgZGVmaW5lIFBBVEhfU0VQQVJBVE9SXzIgJzsnCi0r IyBlbmRpZgotKyNlbmRpZgotKwotKyNpZm5kZWYgRElSX1NFUEFSQVRPUl8yCi0rIyBkZWZpbmUg SVNfRElSX1NFUEFSQVRPUihjaCkgKChjaCkgPT0gRElSX1NFUEFSQVRPUikKLSsjZWxzZSAvKiBE SVJfU0VQQVJBVE9SXzIgKi8KLSsjIGRlZmluZSBJU19ESVJfU0VQQVJBVE9SKGNoKSBcCi0rCSgo KGNoKSA9PSBESVJfU0VQQVJBVE9SKSB8fCAoKGNoKSA9PSBESVJfU0VQQVJBVE9SXzIpKQotKyNl bmRpZiAvKiBESVJfU0VQQVJBVE9SXzIgKi8KLSsKLSsjaWZuZGVmIFBBVEhfU0VQQVJBVE9SXzIK LSsjIGRlZmluZSBJU19QQVRIX1NFUEFSQVRPUihjaCkgKChjaCkgPT0gUEFUSF9TRVBBUkFUT1Ip Ci0rI2Vsc2UgLyogUEFUSF9TRVBBUkFUT1JfMiAqLwotKyMgZGVmaW5lIElTX1BBVEhfU0VQQVJB VE9SKGNoKSAoKGNoKSA9PSBQQVRIX1NFUEFSQVRPUl8yKQotKyNlbmRpZiAvKiBQQVRIX1NFUEFS QVRPUl8yICovCi0rCi0rI2lmZGVmIF9fQ1lHV0lOX18KLSsjIGRlZmluZSBGT1BFTl9XQiAid2Ii Ci0rI2VuZGlmCi0rCi0rI2lmbmRlZiBGT1BFTl9XQgotKyMgZGVmaW5lIEZPUEVOX1dCICJ3Igot KyNlbmRpZgotKyNpZm5kZWYgX09fQklOQVJZCi0rIyBkZWZpbmUgX09fQklOQVJZIDAKLSsjZW5k aWYKLSsKLSsjZGVmaW5lIFhNQUxMT0ModHlwZSwgbnVtKSAgICAgICgodHlwZSAqKSB4bWFsbG9j ICgobnVtKSAqIHNpemVvZih0eXBlKSkpCi0rI2RlZmluZSBYRlJFRShzdGFsZSkgZG8geyBcCi0r ICBpZiAoc3RhbGUpIHsgZnJlZSAoKHZvaWQgKikgc3RhbGUpOyBzdGFsZSA9IDA7IH0gXAotK30g d2hpbGUgKDApCi0rCi0rI3VuZGVmIExUV1JBUFBFUl9ERUJVR1BSSU5URgotKyNpZiBkZWZpbmVk IERFQlVHV1JBUFBFUgotKyMgZGVmaW5lIExUV1JBUFBFUl9ERUJVR1BSSU5URihhcmdzKSBsdHdy YXBwZXJfZGVidWdwcmludGYgYXJncwotK3N0YXRpYyB2b2lkCi0rbHR3cmFwcGVyX2RlYnVncHJp bnRmIChjb25zdCBjaGFyICpmbXQsIC4uLikKLSt7Ci0rICAgIHZhX2xpc3QgYXJnczsKLSsgICAg dmFfc3RhcnQgKGFyZ3MsIGZtdCk7Ci0rICAgICh2b2lkKSB2ZnByaW50ZiAoc3RkZXJyLCBmbXQs IGFyZ3MpOwotKyAgICB2YV9lbmQgKGFyZ3MpOwotK30KLSsjZWxzZQotKyMgZGVmaW5lIExUV1JB UFBFUl9ERUJVR1BSSU5URihhcmdzKQotKyNlbmRpZgotKwotK2NvbnN0IGNoYXIgKnByb2dyYW1f bmFtZSA9IE5VTEw7Ci0rCi0rdm9pZCAqeG1hbGxvYyAoc2l6ZV90IG51bSk7Ci0rY2hhciAqeHN0 cmR1cCAoY29uc3QgY2hhciAqc3RyaW5nKTsKLStjb25zdCBjaGFyICpiYXNlX25hbWUgKGNvbnN0 IGNoYXIgKm5hbWUpOwotK2NoYXIgKmZpbmRfZXhlY3V0YWJsZSAoY29uc3QgY2hhciAqd3JhcHBl cik7Ci0rY2hhciAqY2hhc2Vfc3ltbGlua3MgKGNvbnN0IGNoYXIgKnBhdGhzcGVjKTsKLStpbnQg bWFrZV9leGVjdXRhYmxlIChjb25zdCBjaGFyICpwYXRoKTsKLStpbnQgY2hlY2tfZXhlY3V0YWJs ZSAoY29uc3QgY2hhciAqcGF0aCk7Ci0rY2hhciAqc3RyZW5kemFwIChjaGFyICpzdHIsIGNvbnN0 IGNoYXIgKnBhdCk7Ci0rdm9pZCBsdF9mYXRhbCAoY29uc3QgY2hhciAqbWVzc2FnZSwgLi4uKTsK LSt2b2lkIGx0X3NldGVudiAoY29uc3QgY2hhciAqbmFtZSwgY29uc3QgY2hhciAqdmFsdWUpOwot K2NoYXIgKmx0X2V4dGVuZF9zdHIgKGNvbnN0IGNoYXIgKm9yaWdfdmFsdWUsIGNvbnN0IGNoYXIg KmFkZCwgaW50IHRvX2VuZCk7Ci0rdm9pZCBsdF9vcHRfcHJvY2Vzc19lbnZfc2V0IChjb25zdCBj aGFyICphcmcpOwotK3ZvaWQgbHRfb3B0X3Byb2Nlc3NfZW52X3ByZXBlbmQgKGNvbnN0IGNoYXIg KmFyZyk7Ci0rdm9pZCBsdF9vcHRfcHJvY2Vzc19lbnZfYXBwZW5kIChjb25zdCBjaGFyICphcmcp OwotK2ludCBsdF9zcGxpdF9uYW1lX3ZhbHVlIChjb25zdCBjaGFyICphcmcsIGNoYXIqKiBuYW1l LCBjaGFyKiogdmFsdWUpOwotK3ZvaWQgbHRfdXBkYXRlX2V4ZV9wYXRoIChjb25zdCBjaGFyICpu YW1lLCBjb25zdCBjaGFyICp2YWx1ZSk7Ci0rdm9pZCBsdF91cGRhdGVfbGliX3BhdGggKGNvbnN0 IGNoYXIgKm5hbWUsIGNvbnN0IGNoYXIgKnZhbHVlKTsKLSsKLStzdGF0aWMgY29uc3QgY2hhciAq c2NyaXB0X3RleHRfcGFydDEgPQotK0VPRgotKwotKwkgICAgZnVuY19lbWl0X3dyYXBwZXJfcGFy dDEgeWVzIHwKLSsJICAgICAgICAkU0VEIC1lICdzL1woW1xcIl1cKS9cXFwxL2cnIFwKLSsJICAg ICAgICAgICAgIC1lICdzL14vICAiLycgLWUgJ3MvJC9cXG4iLycKLSsJICAgIGVjaG8gIjsiCi0r CSAgICBjYXQgPDxFT0YKLSsKLStzdGF0aWMgY29uc3QgY2hhciAqc2NyaXB0X3RleHRfcGFydDIg PQotK0VPRgotKwkgICAgZnVuY19lbWl0X3dyYXBwZXJfcGFydDIgeWVzIHwKLSsJICAgICAgICAk U0VEIC1lICdzL1woW1xcIl1cKS9cXFwxL2cnIFwKLSsJICAgICAgICAgICAgIC1lICdzL14vICAi LycgLWUgJ3MvJC9cXG4iLycKLSsJICAgIGVjaG8gIjsiCi0rCi0rCSAgICBjYXQgPDxFT0YKLStj b25zdCBjaGFyICogTUFHSUNfRVhFID0gIiRtYWdpY19leGUiOwotK2NvbnN0IGNoYXIgKiBMSUJf UEFUSF9WQVJOQU1FID0gIiRzaGxpYnBhdGhfdmFyIjsKLStFT0YKLSsKLSsJICAgIGlmIHRlc3Qg IiRzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGgiID0geWVzICYmIHRlc3QgLW4gIiRzaGxpYnBh dGhfdmFyIiAmJiB0ZXN0IC1uICIkdGVtcF9ycGF0aCI7IHRoZW4KLSsgICAgICAgICAgICAgIGZ1 bmNfdG9faG9zdF9wYXRobGlzdCAiJHRlbXBfcnBhdGgiCi0rCSAgICAgIGNhdCA8PEVPRgotK2Nv bnN0IGNoYXIgKiBMSUJfUEFUSF9WQUxVRSAgID0gIiRmdW5jX3RvX2hvc3RfcGF0aGxpc3RfcmVz dWx0IjsKLStFT0YKLSsJICAgIGVsc2UKLSsJICAgICAgY2F0IDw8IkVPRiIKLStjb25zdCBjaGFy ICogTElCX1BBVEhfVkFMVUUgICA9ICIiOwotK0VPRgotKwkgICAgZmkKLSsKLSsJICAgIGlmIHRl c3QgLW4gIiRkbGxzZWFyY2hwYXRoIjsgdGhlbgotKyAgICAgICAgICAgICAgZnVuY190b19ob3N0 X3BhdGhsaXN0ICIkZGxsc2VhcmNocGF0aDoiCi0rCSAgICAgIGNhdCA8PEVPRgotK2NvbnN0IGNo YXIgKiBFWEVfUEFUSF9WQVJOQU1FID0gIlBBVEgiOwotK2NvbnN0IGNoYXIgKiBFWEVfUEFUSF9W QUxVRSAgID0gIiRmdW5jX3RvX2hvc3RfcGF0aGxpc3RfcmVzdWx0IjsKLStFT0YKLSsJICAgIGVs c2UKLSsJICAgICAgY2F0IDw8IkVPRiIKLStjb25zdCBjaGFyICogRVhFX1BBVEhfVkFSTkFNRSA9 ICIiOwotK2NvbnN0IGNoYXIgKiBFWEVfUEFUSF9WQUxVRSAgID0gIiI7Ci0rRU9GCi0rCSAgICBm aQotKwotKwkgICAgaWYgdGVzdCAiJGZhc3RfaW5zdGFsbCIgPSB5ZXM7IHRoZW4KLSsJICAgICAg Y2F0IDw8RU9GCi0rY29uc3QgY2hhciAqIFRBUkdFVF9QUk9HUkFNX05BTUUgPSAibHQtJG91dHB1 dG5hbWUiOyAvKiBob3BlZnVsbHksIG5vIC5leGUgKi8KLStFT0YKLSsJICAgIGVsc2UKLSsJICAg ICAgY2F0IDw8RU9GCi0rY29uc3QgY2hhciAqIFRBUkdFVF9QUk9HUkFNX05BTUUgPSAiJG91dHB1 dG5hbWUiOyAvKiBob3BlZnVsbHksIG5vIC5leGUgKi8KLStFT0YKLSsJICAgIGZpCi0rCi0rCi0r CSAgICBjYXQgPDwiRU9GIgotKwotKyNkZWZpbmUgTFRXUkFQUEVSX09QVElPTl9QUkVGSVggICAg ICAgICAiLS1sdC0iCi0rI2RlZmluZSBMVFdSQVBQRVJfT1BUSU9OX1BSRUZJWF9MRU5HVEggIDUK LSsKLStzdGF0aWMgY29uc3Qgc2l6ZV90IG9wdF9wcmVmaXhfbGVuICAgICAgICAgPSBMVFdSQVBQ RVJfT1BUSU9OX1BSRUZJWF9MRU5HVEg7Ci0rc3RhdGljIGNvbnN0IGNoYXIgKmx0d3JhcHBlcl9v cHRpb25fcHJlZml4ID0gTFRXUkFQUEVSX09QVElPTl9QUkVGSVg7Ci0rCi0rc3RhdGljIGNvbnN0 IGNoYXIgKmR1bXBzY3JpcHRfb3B0ICAgICAgID0gTFRXUkFQUEVSX09QVElPTl9QUkVGSVggImR1 bXAtc2NyaXB0IjsKLSsKLStzdGF0aWMgY29uc3Qgc2l6ZV90IGVudl9zZXRfb3B0X2xlbiAgICAg PSBMVFdSQVBQRVJfT1BUSU9OX1BSRUZJWF9MRU5HVEggKyA3OwotK3N0YXRpYyBjb25zdCBjaGFy ICplbnZfc2V0X29wdCAgICAgICAgICA9IExUV1JBUFBFUl9PUFRJT05fUFJFRklYICJlbnYtc2V0 IjsKLSsgIC8qIGFyZ3VtZW50IGlzIHB1dGVudi1zdHlsZSAiZm9vPWJhciIsIHZhbHVlIG9mIGZv byBpcyBzZXQgdG8gYmFyICovCi0rCi0rc3RhdGljIGNvbnN0IHNpemVfdCBlbnZfcHJlcGVuZF9v cHRfbGVuID0gTFRXUkFQUEVSX09QVElPTl9QUkVGSVhfTEVOR1RIICsgMTE7Ci0rc3RhdGljIGNv bnN0IGNoYXIgKmVudl9wcmVwZW5kX29wdCAgICAgID0gTFRXUkFQUEVSX09QVElPTl9QUkVGSVgg ImVudi1wcmVwZW5kIjsKLSsgIC8qIGFyZ3VtZW50IGlzIHB1dGVudi1zdHlsZSAiZm9vPWJhciIs IG5ldyB2YWx1ZSBvZiBmb28gaXMgYmFyJHtmb299ICovCi0rCi0rc3RhdGljIGNvbnN0IHNpemVf dCBlbnZfYXBwZW5kX29wdF9sZW4gID0gTFRXUkFQUEVSX09QVElPTl9QUkVGSVhfTEVOR1RIICsg MTA7Ci0rc3RhdGljIGNvbnN0IGNoYXIgKmVudl9hcHBlbmRfb3B0ICAgICAgID0gTFRXUkFQUEVS X09QVElPTl9QUkVGSVggImVudi1hcHBlbmQiOwotKyAgLyogYXJndW1lbnQgaXMgcHV0ZW52LXN0 eWxlICJmb289YmFyIiwgbmV3IHZhbHVlIG9mIGZvbyBpcyAke2Zvb31iYXIgKi8KLSsKLStpbnQK LSttYWluIChpbnQgYXJnYywgY2hhciAqYXJndltdKQotK3sKLSsgIGNoYXIgKipuZXdhcmd6Owot KyAgaW50ICBuZXdhcmdjOwotKyAgY2hhciAqdG1wX3BhdGhzcGVjOwotKyAgY2hhciAqYWN0dWFs X2N3cmFwcGVyX3BhdGg7Ci0rICBjaGFyICphY3R1YWxfY3dyYXBwZXJfbmFtZTsKLSsgIGNoYXIg KnRhcmdldF9uYW1lOwotKyAgY2hhciAqbHRfYXJndl96ZXJvOwotKyAgaW50cHRyX3QgcnZhbCA9 IDEyNzsKLSsKLSsgIGludCBpOwotKwotKyAgcHJvZ3JhbV9uYW1lID0gKGNoYXIgKikgeHN0cmR1 cCAoYmFzZV9uYW1lIChhcmd2WzBdKSk7Ci0rICBMVFdSQVBQRVJfREVCVUdQUklOVEYgKCgiKG1h aW4pIGFyZ3ZbMF0gICAgICA6ICVzXG4iLCBhcmd2WzBdKSk7Ci0rICBMVFdSQVBQRVJfREVCVUdQ UklOVEYgKCgiKG1haW4pIHByb2dyYW1fbmFtZSA6ICVzXG4iLCBwcm9ncmFtX25hbWUpKTsKLSsK LSsgIC8qIHZlcnkgc2ltcGxlIGFyZyBwYXJzaW5nOyBkb24ndCB3YW50IHRvIHJlbHkgb24gZ2V0 b3B0ICovCi0rICBmb3IgKGkgPSAxOyBpIDwgYXJnYzsgaSsrKQotKyAgICB7Ci0rICAgICAgaWYg KHN0cmNtcCAoYXJndltpXSwgZHVtcHNjcmlwdF9vcHQpID09IDApCi0rCXsKLStFT0YKLSsJICAg IGNhc2UgIiRob3N0IiBpbgotKwkgICAgICAqbWluZ3cqIHwgKmN5Z3dpbiogKQotKwkJIyBtYWtl IHN0ZG91dCB1c2UgInVuaXgiIGxpbmUgZW5kaW5ncwotKwkJZWNobyAiICAgICAgICAgIHNldG1v ZGUoMSxfT19CSU5BUlkpOyIKLSsJCTs7Ci0rCSAgICAgIGVzYWMKLSsKLSsJICAgIGNhdCA8PCJF T0YiCi0rCSAgcHJpbnRmICgiJXMiLCBzY3JpcHRfdGV4dF9wYXJ0MSk7Ci0rCSAgcHJpbnRmICgi JXMiLCBzY3JpcHRfdGV4dF9wYXJ0Mik7Ci0rCSAgcmV0dXJuIDA7Ci0rCX0KLSsgICAgfQotKwot KyAgbmV3YXJneiA9IFhNQUxMT0MgKGNoYXIgKiwgYXJnYyArIDEpOwotKyAgdG1wX3BhdGhzcGVj ID0gZmluZF9leGVjdXRhYmxlIChhcmd2WzBdKTsKLSsgIGlmICh0bXBfcGF0aHNwZWMgPT0gTlVM TCkKLSsgICAgbHRfZmF0YWwgKCJDb3VsZG4ndCBmaW5kICVzIiwgYXJndlswXSk7Ci0rICBMVFdS QVBQRVJfREVCVUdQUklOVEYgKCgiKG1haW4pIGZvdW5kIGV4ZSAoYmVmb3JlIHN5bWxpbmsgY2hh c2UpIGF0IDogJXNcbiIsCi0rCQkJICB0bXBfcGF0aHNwZWMpKTsKLSsKLSsgIGFjdHVhbF9jd3Jh cHBlcl9wYXRoID0gY2hhc2Vfc3ltbGlua3MgKHRtcF9wYXRoc3BlYyk7Ci0rICBMVFdSQVBQRVJf REVCVUdQUklOVEYgKCgiKG1haW4pIGZvdW5kIGV4ZSAoYWZ0ZXIgc3ltbGluayBjaGFzZSkgYXQg OiAlc1xuIiwKLSsJCQkgIGFjdHVhbF9jd3JhcHBlcl9wYXRoKSk7Ci0rICBYRlJFRSAodG1wX3Bh dGhzcGVjKTsKLSsKLSsgIGFjdHVhbF9jd3JhcHBlcl9uYW1lID0geHN0cmR1cCggYmFzZV9uYW1l IChhY3R1YWxfY3dyYXBwZXJfcGF0aCkpOwotKyAgc3RyZW5kemFwIChhY3R1YWxfY3dyYXBwZXJf cGF0aCwgYWN0dWFsX2N3cmFwcGVyX25hbWUpOwotKwotKyAgLyogd3JhcHBlciBuYW1lIHRyYW5z Zm9ybXMgKi8KLSsgIHN0cmVuZHphcCAoYWN0dWFsX2N3cmFwcGVyX25hbWUsICIuZXhlIik7Ci0r ICB0bXBfcGF0aHNwZWMgPSBsdF9leHRlbmRfc3RyIChhY3R1YWxfY3dyYXBwZXJfbmFtZSwgIi5l eGUiLCAxKTsKLSsgIFhGUkVFIChhY3R1YWxfY3dyYXBwZXJfbmFtZSk7Ci0rICBhY3R1YWxfY3dy YXBwZXJfbmFtZSA9IHRtcF9wYXRoc3BlYzsKLSsgIHRtcF9wYXRoc3BlYyA9IDA7Ci0rCi0rICAv KiB0YXJnZXRfbmFtZSB0cmFuc2Zvcm1zIC0tIHVzZSBhY3R1YWwgdGFyZ2V0IHByb2dyYW0gbmFt ZTsgbWlnaHQgaGF2ZSBsdC0gcHJlZml4ICovCi0rICB0YXJnZXRfbmFtZSA9IHhzdHJkdXAgKGJh c2VfbmFtZSAoVEFSR0VUX1BST0dSQU1fTkFNRSkpOwotKyAgc3RyZW5kemFwICh0YXJnZXRfbmFt ZSwgIi5leGUiKTsKLSsgIHRtcF9wYXRoc3BlYyA9IGx0X2V4dGVuZF9zdHIgKHRhcmdldF9uYW1l LCAiLmV4ZSIsIDEpOwotKyAgWEZSRUUgKHRhcmdldF9uYW1lKTsKLSsgIHRhcmdldF9uYW1lID0g dG1wX3BhdGhzcGVjOwotKyAgdG1wX3BhdGhzcGVjID0gMDsKLSsKLSsgIExUV1JBUFBFUl9ERUJV R1BSSU5URiAoKCIobWFpbikgbGlidG9vbCB0YXJnZXQgbmFtZTogJXNcbiIsCi0rCQkJICB0YXJn ZXRfbmFtZSkpOwotK0VPRgotKwotKwkgICAgY2F0IDw8RU9GCi0rICBuZXdhcmd6WzBdID0KLSsg ICAgWE1BTExPQyAoY2hhciwgKHN0cmxlbiAoYWN0dWFsX2N3cmFwcGVyX3BhdGgpICsKLSsJCSAg ICBzdHJsZW4gKCIkb2JqZGlyIikgKyAxICsgc3RybGVuIChhY3R1YWxfY3dyYXBwZXJfbmFtZSkg KyAxKSk7Ci0rICBzdHJjcHkgKG5ld2FyZ3pbMF0sIGFjdHVhbF9jd3JhcHBlcl9wYXRoKTsKLSsg IHN0cmNhdCAobmV3YXJnelswXSwgIiRvYmpkaXIiKTsKLSsgIHN0cmNhdCAobmV3YXJnelswXSwg Ii8iKTsKLStFT0YKLSsKLSsJICAgIGNhdCA8PCJFT0YiCi0rICAvKiBzdG9wIGhlcmUsIGFuZCBj b3B5IHNvIHdlIGRvbid0IGhhdmUgdG8gZG8gdGhpcyB0d2ljZSAqLwotKyAgdG1wX3BhdGhzcGVj ID0geHN0cmR1cCAobmV3YXJnelswXSk7Ci0rCi0rICAvKiBkbyBOT1Qgd2FudCB0aGUgbHQtIHBy ZWZpeCBoZXJlLCBzbyB1c2UgYWN0dWFsX2N3cmFwcGVyX25hbWUgKi8KLSsgIHN0cmNhdCAobmV3 YXJnelswXSwgYWN0dWFsX2N3cmFwcGVyX25hbWUpOwotKwotKyAgLyogRE8gd2FudCB0aGUgbHQt IHByZWZpeCBoZXJlIGlmIGl0IGV4aXN0cywgc28gdXNlIHRhcmdldF9uYW1lICovCi0rICBsdF9h cmd2X3plcm8gPSBsdF9leHRlbmRfc3RyICh0bXBfcGF0aHNwZWMsIHRhcmdldF9uYW1lLCAxKTsK LSsgIFhGUkVFICh0bXBfcGF0aHNwZWMpOwotKyAgdG1wX3BhdGhzcGVjID0gTlVMTDsKLStFT0YK LSsKLSsJICAgIGNhc2UgJGhvc3Rfb3MgaW4KLSsJICAgICAgbWluZ3cqKQotKwkgICAgY2F0IDw8 IkVPRiIKLSsgIHsKLSsgICAgY2hhciogcDsKLSsgICAgd2hpbGUgKChwID0gc3RyY2hyIChuZXdh cmd6WzBdLCAnXFwnKSkgIT0gTlVMTCkKLSsgICAgICB7Ci0rCSpwID0gJy8nOwotKyAgICAgIH0K LSsgICAgd2hpbGUgKChwID0gc3RyY2hyIChsdF9hcmd2X3plcm8sICdcXCcpKSAhPSBOVUxMKQot KyAgICAgIHsKLSsJKnAgPSAnLyc7Ci0rICAgICAgfQotKyAgfQotK0VPRgotKwkgICAgOzsKLSsJ ICAgIGVzYWMKLSsKLSsJICAgIGNhdCA8PCJFT0YiCi0rICBYRlJFRSAodGFyZ2V0X25hbWUpOwot KyAgWEZSRUUgKGFjdHVhbF9jd3JhcHBlcl9wYXRoKTsKLSsgIFhGUkVFIChhY3R1YWxfY3dyYXBw ZXJfbmFtZSk7Ci0rCi0rICBsdF9zZXRlbnYgKCJCSU5fU0giLCAieHBnNCIpOyAvKiBmb3IgVHJ1 NjQgKi8KLSsgIGx0X3NldGVudiAoIkRVQUxDQVNFIiwgIjEiKTsgIC8qIGZvciBNU0sgc2ggKi8K LSsgIGx0X3VwZGF0ZV9saWJfcGF0aCAoTElCX1BBVEhfVkFSTkFNRSwgTElCX1BBVEhfVkFMVUUp OwotKyAgbHRfdXBkYXRlX2V4ZV9wYXRoIChFWEVfUEFUSF9WQVJOQU1FLCBFWEVfUEFUSF9WQUxV RSk7Ci0rCi0rICBuZXdhcmdjPTA7Ci0rICBmb3IgKGkgPSAxOyBpIDwgYXJnYzsgaSsrKQotKyAg ICB7Ci0rICAgICAgaWYgKHN0cm5jbXAgKGFyZ3ZbaV0sIGVudl9zZXRfb3B0LCBlbnZfc2V0X29w dF9sZW4pID09IDApCi0rICAgICAgICB7Ci0rICAgICAgICAgIGlmIChhcmd2W2ldW2Vudl9zZXRf b3B0X2xlbl0gPT0gJz0nKQotKyAgICAgICAgICAgIHsKLSsgICAgICAgICAgICAgIGNvbnN0IGNo YXIgKnAgPSBhcmd2W2ldICsgZW52X3NldF9vcHRfbGVuICsgMTsKLSsgICAgICAgICAgICAgIGx0 X29wdF9wcm9jZXNzX2Vudl9zZXQgKHApOwotKyAgICAgICAgICAgIH0KLSsgICAgICAgICAgZWxz ZSBpZiAoYXJndltpXVtlbnZfc2V0X29wdF9sZW5dID09ICdcMCcgJiYgaSArIDEgPCBhcmdjKQot KyAgICAgICAgICAgIHsKLSsgICAgICAgICAgICAgIGx0X29wdF9wcm9jZXNzX2Vudl9zZXQgKGFy Z3ZbKytpXSk7IC8qIGRvbid0IGNvcHkgKi8KLSsgICAgICAgICAgICB9Ci0rICAgICAgICAgIGVs c2UKLSsgICAgICAgICAgICBsdF9mYXRhbCAoIiVzIG1pc3NpbmcgcmVxdWlyZWQgYXJndW1lbnQi LCBlbnZfc2V0X29wdCk7Ci0rICAgICAgICAgIGNvbnRpbnVlOwotKyAgICAgICAgfQotKyAgICAg IGlmIChzdHJuY21wIChhcmd2W2ldLCBlbnZfcHJlcGVuZF9vcHQsIGVudl9wcmVwZW5kX29wdF9s ZW4pID09IDApCi0rICAgICAgICB7Ci0rICAgICAgICAgIGlmIChhcmd2W2ldW2Vudl9wcmVwZW5k X29wdF9sZW5dID09ICc9JykKLSsgICAgICAgICAgICB7Ci0rICAgICAgICAgICAgICBjb25zdCBj aGFyICpwID0gYXJndltpXSArIGVudl9wcmVwZW5kX29wdF9sZW4gKyAxOwotKyAgICAgICAgICAg ICAgbHRfb3B0X3Byb2Nlc3NfZW52X3ByZXBlbmQgKHApOwotKyAgICAgICAgICAgIH0KLSsgICAg ICAgICAgZWxzZSBpZiAoYXJndltpXVtlbnZfcHJlcGVuZF9vcHRfbGVuXSA9PSAnXDAnICYmIGkg KyAxIDwgYXJnYykKLSsgICAgICAgICAgICB7Ci0rICAgICAgICAgICAgICBsdF9vcHRfcHJvY2Vz c19lbnZfcHJlcGVuZCAoYXJndlsrK2ldKTsgLyogZG9uJ3QgY29weSAqLwotKyAgICAgICAgICAg IH0KLSsgICAgICAgICAgZWxzZQotKyAgICAgICAgICAgIGx0X2ZhdGFsICgiJXMgbWlzc2luZyBy ZXF1aXJlZCBhcmd1bWVudCIsIGVudl9wcmVwZW5kX29wdCk7Ci0rICAgICAgICAgIGNvbnRpbnVl OwotKyAgICAgICAgfQotKyAgICAgIGlmIChzdHJuY21wIChhcmd2W2ldLCBlbnZfYXBwZW5kX29w dCwgZW52X2FwcGVuZF9vcHRfbGVuKSA9PSAwKQotKyAgICAgICAgewotKyAgICAgICAgICBpZiAo YXJndltpXVtlbnZfYXBwZW5kX29wdF9sZW5dID09ICc9JykKLSsgICAgICAgICAgICB7Ci0rICAg ICAgICAgICAgICBjb25zdCBjaGFyICpwID0gYXJndltpXSArIGVudl9hcHBlbmRfb3B0X2xlbiAr IDE7Ci0rICAgICAgICAgICAgICBsdF9vcHRfcHJvY2Vzc19lbnZfYXBwZW5kIChwKTsKLSsgICAg ICAgICAgICB9Ci0rICAgICAgICAgIGVsc2UgaWYgKGFyZ3ZbaV1bZW52X2FwcGVuZF9vcHRfbGVu XSA9PSAnXDAnICYmIGkgKyAxIDwgYXJnYykKLSsgICAgICAgICAgICB7Ci0rICAgICAgICAgICAg ICBsdF9vcHRfcHJvY2Vzc19lbnZfYXBwZW5kIChhcmd2WysraV0pOyAvKiBkb24ndCBjb3B5ICov Ci0rICAgICAgICAgICAgfQotKyAgICAgICAgICBlbHNlCi0rICAgICAgICAgICAgbHRfZmF0YWwg KCIlcyBtaXNzaW5nIHJlcXVpcmVkIGFyZ3VtZW50IiwgZW52X2FwcGVuZF9vcHQpOwotKyAgICAg ICAgICBjb250aW51ZTsKLSsgICAgICAgIH0KLSsgICAgICBpZiAoc3RybmNtcCAoYXJndltpXSwg bHR3cmFwcGVyX29wdGlvbl9wcmVmaXgsIG9wdF9wcmVmaXhfbGVuKSA9PSAwKQotKyAgICAgICAg ewotKyAgICAgICAgICAvKiBob3dldmVyLCBpZiB0aGVyZSBpcyBhbiBvcHRpb24gaW4gdGhlIExU V1JBUFBFUl9PUFRJT05fUFJFRklYCi0rICAgICAgICAgICAgIG5hbWVzcGFjZSwgYnV0IGl0IGlz IG5vdCBvbmUgb2YgdGhlIG9uZXMgd2Uga25vdyBhYm91dCBhbmQKLSsgICAgICAgICAgICAgaGF2 ZSBhbHJlYWR5IGRlYWx0IHdpdGgsIGFib3ZlIChpbmx1ZGluZyBkdW1wLXNjcmlwdCksIHRoZW4K LSsgICAgICAgICAgICAgcmVwb3J0IGFuIGVycm9yLiBPdGhlcndpc2UsIHRhcmdldHMgbWlnaHQg YmVnaW4gdG8gYmVsaWV2ZQotKyAgICAgICAgICAgICB0aGV5IGFyZSBhbGxvd2VkIHRvIHVzZSBv cHRpb25zIGluIHRoZSBMVFdSQVBQRVJfT1BUSU9OX1BSRUZJWAotKyAgICAgICAgICAgICBuYW1l c3BhY2UuIFRoZSBmaXJzdCB0aW1lIGFueSB1c2VyIGNvbXBsYWlucyBhYm91dCB0aGlzLCB3ZSds bAotKyAgICAgICAgICAgICBuZWVkIHRvIG1ha2UgTFRXUkFQUEVSX09QVElPTl9QUkVGSVggYSBj b25maWd1cmUtdGltZSBvcHRpb24KLSsgICAgICAgICAgICAgb3IgYSBjb25maWd1cmUuYWMtc2V0 dGFibGUgdmFsdWUuCi0rICAgICAgICAgICAqLwotKyAgICAgICAgICBsdF9mYXRhbCAoIlVucmVj b2duaXplZCBvcHRpb24gaW4gJXMgbmFtZXNwYWNlOiAnJXMnIiwKLSsgICAgICAgICAgICAgICAg ICAgIGx0d3JhcHBlcl9vcHRpb25fcHJlZml4LCBhcmd2W2ldKTsKLSsgICAgICAgIH0KLSsgICAg ICAvKiBvdGhlcndpc2UgLi4uICovCi0rICAgICAgbmV3YXJnelsrK25ld2FyZ2NdID0geHN0cmR1 cCAoYXJndltpXSk7Ci0rICAgIH0KLSsgIG5ld2FyZ3pbKytuZXdhcmdjXSA9IE5VTEw7Ci0rCi0r ICBMVFdSQVBQRVJfREVCVUdQUklOVEYgICAgICgoIihtYWluKSBsdF9hcmd2X3plcm8gOiAlc1xu IiwgKGx0X2FyZ3ZfemVybyA/IGx0X2FyZ3ZfemVybyA6ICI8TlVMTD4iKSkpOwotKyAgZm9yIChp ID0gMDsgaSA8IG5ld2FyZ2M7IGkrKykKLSsgICAgewotKyAgICAgIExUV1JBUFBFUl9ERUJVR1BS SU5URiAoKCIobWFpbikgbmV3YXJnelslZF0gICA6ICVzXG4iLCBpLCAobmV3YXJneltpXSA/IG5l d2FyZ3pbaV0gOiAiPE5VTEw+IikpKTsKLSsgICAgfQotKwotK0VPRgotKwotKwkgICAgY2FzZSAk aG9zdF9vcyBpbgotKwkgICAgICBtaW5ndyopCi0rCQljYXQgPDwiRU9GIgotKyAgLyogZXhlY3Yg ZG9lc24ndCBhY3R1YWxseSB3b3JrIG9uIG1pbmd3IGFzIGV4cGVjdGVkIG9uIHVuaXggKi8KLSsg IHJ2YWwgPSBfc3Bhd252IChfUF9XQUlULCBsdF9hcmd2X3plcm8sIChjb25zdCBjaGFyICogY29u c3QgKikgbmV3YXJneik7Ci0rICBpZiAocnZhbCA9PSAtMSkKLSsgICAgewotKyAgICAgIC8qIGZh aWxlZCB0byBzdGFydCBwcm9jZXNzICovCi0rICAgICAgTFRXUkFQUEVSX0RFQlVHUFJJTlRGICgo IihtYWluKSBmYWlsZWQgdG8gbGF1bmNoIHRhcmdldCBcIiVzXCI6IGVycm5vID0gJWRcbiIsIGx0 X2FyZ3ZfemVybywgZXJybm8pKTsKLSsgICAgICByZXR1cm4gMTI3OwotKyAgICB9Ci0rICByZXR1 cm4gcnZhbDsKLStFT0YKLSsJCTs7Ci0rCSAgICAgICopCi0rCQljYXQgPDwiRU9GIgotKyAgZXhl Y3YgKGx0X2FyZ3ZfemVybywgbmV3YXJneik7Ci0rICByZXR1cm4gcnZhbDsgLyogPTEyNywgYnV0 IGF2b2lkcyB1bnVzZWQgdmFyaWFibGUgd2FybmluZyAqLwotK0VPRgotKwkJOzsKLSsJICAgIGVz YWMKLSsKLSsJICAgIGNhdCA8PCJFT0YiCi0rfQotKwotK3ZvaWQgKgotK3htYWxsb2MgKHNpemVf dCBudW0pCi0rewotKyAgdm9pZCAqcCA9ICh2b2lkICopIG1hbGxvYyAobnVtKTsKLSsgIGlmICgh cCkKLSsgICAgbHRfZmF0YWwgKCJNZW1vcnkgZXhoYXVzdGVkIik7Ci0rCi0rICByZXR1cm4gcDsK LSt9Ci0rCi0rY2hhciAqCi0reHN0cmR1cCAoY29uc3QgY2hhciAqc3RyaW5nKQotK3sKLSsgIHJl dHVybiBzdHJpbmcgPyBzdHJjcHkgKChjaGFyICopIHhtYWxsb2MgKHN0cmxlbiAoc3RyaW5nKSAr IDEpLAotKwkJCSAgc3RyaW5nKSA6IE5VTEw7Ci0rfQotKwotK2NvbnN0IGNoYXIgKgotK2Jhc2Vf bmFtZSAoY29uc3QgY2hhciAqbmFtZSkKLSt7Ci0rICBjb25zdCBjaGFyICpiYXNlOwotKwotKyNp ZiBkZWZpbmVkIChIQVZFX0RPU19CQVNFRF9GSUxFX1NZU1RFTSkKLSsgIC8qIFNraXAgb3ZlciB0 aGUgZGlzayBuYW1lIGluIE1TRE9TIHBhdGhuYW1lcy4gKi8KLSsgIGlmIChpc2FscGhhICgodW5z aWduZWQgY2hhcikgbmFtZVswXSkgJiYgbmFtZVsxXSA9PSAnOicpCi0rICAgIG5hbWUgKz0gMjsK LSsjZW5kaWYKLSsKLSsgIGZvciAoYmFzZSA9IG5hbWU7ICpuYW1lOyBuYW1lKyspCi0rICAgIGlm IChJU19ESVJfU0VQQVJBVE9SICgqbmFtZSkpCi0rICAgICAgYmFzZSA9IG5hbWUgKyAxOwotKyAg cmV0dXJuIGJhc2U7Ci0rfQotKwotK2ludAotK2NoZWNrX2V4ZWN1dGFibGUgKGNvbnN0IGNoYXIg KnBhdGgpCi0rewotKyAgc3RydWN0IHN0YXQgc3Q7Ci0rCi0rICBMVFdSQVBQRVJfREVCVUdQUklO VEYgKCgiKGNoZWNrX2V4ZWN1dGFibGUpICA6ICVzXG4iLAotKwkJCSAgcGF0aCA/ICgqcGF0aCA/ IHBhdGggOiAiRU1QVFkhIikgOiAiTlVMTCEiKSk7Ci0rICBpZiAoKCFwYXRoKSB8fCAoISpwYXRo KSkKLSsgICAgcmV0dXJuIDA7Ci0rCi0rICBpZiAoKHN0YXQgKHBhdGgsICZzdCkgPj0gMCkKLSsg ICAgICAmJiAoc3Quc3RfbW9kZSAmIChTX0lYVVNSIHwgU19JWEdSUCB8IFNfSVhPVEgpKSkKLSsg ICAgcmV0dXJuIDE7Ci0rICBlbHNlCi0rICAgIHJldHVybiAwOwotK30KLSsKLStpbnQKLSttYWtl X2V4ZWN1dGFibGUgKGNvbnN0IGNoYXIgKnBhdGgpCi0rewotKyAgaW50IHJ2YWwgPSAwOwotKyAg c3RydWN0IHN0YXQgc3Q7Ci0rCi0rICBMVFdSQVBQRVJfREVCVUdQUklOVEYgKCgiKG1ha2VfZXhl Y3V0YWJsZSkgICA6ICVzXG4iLAotKwkJCSAgcGF0aCA/ICgqcGF0aCA/IHBhdGggOiAiRU1QVFkh IikgOiAiTlVMTCEiKSk7Ci0rICBpZiAoKCFwYXRoKSB8fCAoISpwYXRoKSkKLSsgICAgcmV0dXJu IDA7Ci0rCi0rICBpZiAoc3RhdCAocGF0aCwgJnN0KSA+PSAwKQotKyAgICB7Ci0rICAgICAgcnZh bCA9IGNobW9kIChwYXRoLCBzdC5zdF9tb2RlIHwgU19JWE9USCB8IFNfSVhHUlAgfCBTX0lYVVNS KTsKLSsgICAgfQotKyAgcmV0dXJuIHJ2YWw7Ci0rfQotKwotKy8qIFNlYXJjaGVzIGZvciB0aGUg ZnVsbCBwYXRoIG9mIHRoZSB3cmFwcGVyLiAgUmV0dXJucwotKyAgIG5ld2x5IGFsbG9jYXRlZCBm dWxsIHBhdGggbmFtZSBpZiBmb3VuZCwgTlVMTCBvdGhlcndpc2UKLSsgICBEb2VzIG5vdCBjaGFz ZSBzeW1saW5rcywgZXZlbiBvbiBwbGF0Zm9ybXMgdGhhdCBzdXBwb3J0IHRoZW0uCi0rKi8KLStj aGFyICoKLStmaW5kX2V4ZWN1dGFibGUgKGNvbnN0IGNoYXIgKndyYXBwZXIpCi0rewotKyAgaW50 IGhhc19zbGFzaCA9IDA7Ci0rICBjb25zdCBjaGFyICpwOwotKyAgY29uc3QgY2hhciAqcF9uZXh0 OwotKyAgLyogc3RhdGljIGJ1ZmZlciBmb3IgZ2V0Y3dkICovCi0rICBjaGFyIHRtcFtMVF9QQVRI TUFYICsgMV07Ci0rICBpbnQgdG1wX2xlbjsKLSsgIGNoYXIgKmNvbmNhdF9uYW1lOwotKwotKyAg TFRXUkFQUEVSX0RFQlVHUFJJTlRGICgoIihmaW5kX2V4ZWN1dGFibGUpICAgOiAlc1xuIiwKLSsJ CQkgIHdyYXBwZXIgPyAoKndyYXBwZXIgPyB3cmFwcGVyIDogIkVNUFRZISIpIDogIk5VTEwhIikp OwotKwotKyAgaWYgKCh3cmFwcGVyID09IE5VTEwpIHx8ICgqd3JhcHBlciA9PSAnXDAnKSkKLSsg ICAgcmV0dXJuIE5VTEw7Ci0rCi0rICAvKiBBYnNvbHV0ZSBwYXRoPyAqLwotKyNpZiBkZWZpbmVk IChIQVZFX0RPU19CQVNFRF9GSUxFX1NZU1RFTSkKLSsgIGlmIChpc2FscGhhICgodW5zaWduZWQg Y2hhcikgd3JhcHBlclswXSkgJiYgd3JhcHBlclsxXSA9PSAnOicpCi0rICAgIHsKLSsgICAgICBj b25jYXRfbmFtZSA9IHhzdHJkdXAgKHdyYXBwZXIpOwotKyAgICAgIGlmIChjaGVja19leGVjdXRh YmxlIChjb25jYXRfbmFtZSkpCi0rCXJldHVybiBjb25jYXRfbmFtZTsKLSsgICAgICBYRlJFRSAo Y29uY2F0X25hbWUpOwotKyAgICB9Ci0rICBlbHNlCi0rICAgIHsKLSsjZW5kaWYKLSsgICAgICBp ZiAoSVNfRElSX1NFUEFSQVRPUiAod3JhcHBlclswXSkpCi0rCXsKLSsJICBjb25jYXRfbmFtZSA9 IHhzdHJkdXAgKHdyYXBwZXIpOwotKwkgIGlmIChjaGVja19leGVjdXRhYmxlIChjb25jYXRfbmFt ZSkpCi0rCSAgICByZXR1cm4gY29uY2F0X25hbWU7Ci0rCSAgWEZSRUUgKGNvbmNhdF9uYW1lKTsK LSsJfQotKyNpZiBkZWZpbmVkIChIQVZFX0RPU19CQVNFRF9GSUxFX1NZU1RFTSkKLSsgICAgfQot KyNlbmRpZgotKwotKyAgZm9yIChwID0gd3JhcHBlcjsgKnA7IHArKykKLSsgICAgaWYgKCpwID09 ICcvJykKLSsgICAgICB7Ci0rCWhhc19zbGFzaCA9IDE7Ci0rCWJyZWFrOwotKyAgICAgIH0KLSsg IGlmICghaGFzX3NsYXNoKQotKyAgICB7Ci0rICAgICAgLyogbm8gc2xhc2hlczsgc2VhcmNoIFBB VEggKi8KLSsgICAgICBjb25zdCBjaGFyICpwYXRoID0gZ2V0ZW52ICgiUEFUSCIpOwotKyAgICAg IGlmIChwYXRoICE9IE5VTEwpCi0rCXsKLSsJICBmb3IgKHAgPSBwYXRoOyAqcDsgcCA9IHBfbmV4 dCkKLSsJICAgIHsKLSsJICAgICAgY29uc3QgY2hhciAqcTsKLSsJICAgICAgc2l6ZV90IHBfbGVu OwotKwkgICAgICBmb3IgKHEgPSBwOyAqcTsgcSsrKQotKwkJaWYgKElTX1BBVEhfU0VQQVJBVE9S ICgqcSkpCi0rCQkgIGJyZWFrOwotKwkgICAgICBwX2xlbiA9IHEgLSBwOwotKwkgICAgICBwX25l eHQgPSAoKnEgPT0gJ1wwJyA/IHEgOiBxICsgMSk7Ci0rCSAgICAgIGlmIChwX2xlbiA9PSAwKQot KwkJewotKwkJICAvKiBlbXB0eSBwYXRoOiBjdXJyZW50IGRpcmVjdG9yeSAqLwotKwkJICBpZiAo Z2V0Y3dkICh0bXAsIExUX1BBVEhNQVgpID09IE5VTEwpCi0rCQkgICAgbHRfZmF0YWwgKCJnZXRj d2QgZmFpbGVkIik7Ci0rCQkgIHRtcF9sZW4gPSBzdHJsZW4gKHRtcCk7Ci0rCQkgIGNvbmNhdF9u YW1lID0KLSsJCSAgICBYTUFMTE9DIChjaGFyLCB0bXBfbGVuICsgMSArIHN0cmxlbiAod3JhcHBl cikgKyAxKTsKLSsJCSAgbWVtY3B5IChjb25jYXRfbmFtZSwgdG1wLCB0bXBfbGVuKTsKLSsJCSAg Y29uY2F0X25hbWVbdG1wX2xlbl0gPSAnLyc7Ci0rCQkgIHN0cmNweSAoY29uY2F0X25hbWUgKyB0 bXBfbGVuICsgMSwgd3JhcHBlcik7Ci0rCQl9Ci0rCSAgICAgIGVsc2UKLSsJCXsKLSsJCSAgY29u Y2F0X25hbWUgPQotKwkJICAgIFhNQUxMT0MgKGNoYXIsIHBfbGVuICsgMSArIHN0cmxlbiAod3Jh cHBlcikgKyAxKTsKLSsJCSAgbWVtY3B5IChjb25jYXRfbmFtZSwgcCwgcF9sZW4pOwotKwkJICBj b25jYXRfbmFtZVtwX2xlbl0gPSAnLyc7Ci0rCQkgIHN0cmNweSAoY29uY2F0X25hbWUgKyBwX2xl biArIDEsIHdyYXBwZXIpOwotKwkJfQotKwkgICAgICBpZiAoY2hlY2tfZXhlY3V0YWJsZSAoY29u Y2F0X25hbWUpKQotKwkJcmV0dXJuIGNvbmNhdF9uYW1lOwotKwkgICAgICBYRlJFRSAoY29uY2F0 X25hbWUpOwotKwkgICAgfQotKwl9Ci0rICAgICAgLyogbm90IGZvdW5kIGluIFBBVEg7IGFzc3Vt ZSBjdXJkaXIgKi8KLSsgICAgfQotKyAgLyogUmVsYXRpdmUgcGF0aCB8IG5vdCBmb3VuZCBpbiBw YXRoOiBwcmVwZW5kIGN3ZCAqLwotKyAgaWYgKGdldGN3ZCAodG1wLCBMVF9QQVRITUFYKSA9PSBO VUxMKQotKyAgICBsdF9mYXRhbCAoImdldGN3ZCBmYWlsZWQiKTsKLSsgIHRtcF9sZW4gPSBzdHJs ZW4gKHRtcCk7Ci0rICBjb25jYXRfbmFtZSA9IFhNQUxMT0MgKGNoYXIsIHRtcF9sZW4gKyAxICsg c3RybGVuICh3cmFwcGVyKSArIDEpOwotKyAgbWVtY3B5IChjb25jYXRfbmFtZSwgdG1wLCB0bXBf bGVuKTsKLSsgIGNvbmNhdF9uYW1lW3RtcF9sZW5dID0gJy8nOwotKyAgc3RyY3B5IChjb25jYXRf bmFtZSArIHRtcF9sZW4gKyAxLCB3cmFwcGVyKTsKLSsKLSsgIGlmIChjaGVja19leGVjdXRhYmxl IChjb25jYXRfbmFtZSkpCi0rICAgIHJldHVybiBjb25jYXRfbmFtZTsKLSsgIFhGUkVFIChjb25j YXRfbmFtZSk7Ci0rICByZXR1cm4gTlVMTDsKLSt9Ci0rCi0rY2hhciAqCi0rY2hhc2Vfc3ltbGlu a3MgKGNvbnN0IGNoYXIgKnBhdGhzcGVjKQotK3sKLSsjaWZuZGVmIFNfSVNMTksKLSsgIHJldHVy biB4c3RyZHVwIChwYXRoc3BlYyk7Ci0rI2Vsc2UKLSsgIGNoYXIgYnVmW0xUX1BBVEhNQVhdOwot KyAgc3RydWN0IHN0YXQgczsKLSsgIGNoYXIgKnRtcF9wYXRoc3BlYyA9IHhzdHJkdXAgKHBhdGhz cGVjKTsKLSsgIGNoYXIgKnA7Ci0rICBpbnQgaGFzX3N5bWxpbmtzID0gMDsKLSsgIHdoaWxlIChz dHJsZW4gKHRtcF9wYXRoc3BlYykgJiYgIWhhc19zeW1saW5rcykKLSsgICAgewotKyAgICAgIExU V1JBUFBFUl9ERUJVR1BSSU5URiAoKCJjaGVja2luZyBwYXRoIGNvbXBvbmVudCBmb3Igc3ltbGlu a3M6ICVzXG4iLAotKwkJCSAgICAgIHRtcF9wYXRoc3BlYykpOwotKyAgICAgIGlmIChsc3RhdCAo dG1wX3BhdGhzcGVjLCAmcykgPT0gMCkKLSsJewotKwkgIGlmIChTX0lTTE5LIChzLnN0X21vZGUp ICE9IDApCi0rCSAgICB7Ci0rCSAgICAgIGhhc19zeW1saW5rcyA9IDE7Ci0rCSAgICAgIGJyZWFr OwotKwkgICAgfQotKwotKwkgIC8qIHNlYXJjaCBiYWNrd2FyZHMgZm9yIGxhc3QgRElSX1NFUEFS QVRPUiAqLwotKwkgIHAgPSB0bXBfcGF0aHNwZWMgKyBzdHJsZW4gKHRtcF9wYXRoc3BlYykgLSAx OwotKwkgIHdoaWxlICgocCA+IHRtcF9wYXRoc3BlYykgJiYgKCFJU19ESVJfU0VQQVJBVE9SICgq cCkpKQotKwkgICAgcC0tOwotKwkgIGlmICgocCA9PSB0bXBfcGF0aHNwZWMpICYmICghSVNfRElS X1NFUEFSQVRPUiAoKnApKSkKLSsJICAgIHsKLSsJICAgICAgLyogbm8gbW9yZSBESVJfU0VQQVJB VE9SUyBsZWZ0ICovCi0rCSAgICAgIGJyZWFrOwotKwkgICAgfQotKwkgICpwID0gJ1wwJzsKLSsJ fQotKyAgICAgIGVsc2UKLSsJewotKwkgIGNoYXIgKmVycnN0ciA9IHN0cmVycm9yIChlcnJubyk7 Ci0rCSAgbHRfZmF0YWwgKCJFcnJvciBhY2Nlc3NpbmcgZmlsZSAlcyAoJXMpIiwgdG1wX3BhdGhz cGVjLCBlcnJzdHIpOwotKwl9Ci0rICAgIH0KLSsgIFhGUkVFICh0bXBfcGF0aHNwZWMpOwotKwot KyAgaWYgKCFoYXNfc3ltbGlua3MpCi0rICAgIHsKLSsgICAgICByZXR1cm4geHN0cmR1cCAocGF0 aHNwZWMpOwotKyAgICB9Ci0rCi0rICB0bXBfcGF0aHNwZWMgPSByZWFscGF0aCAocGF0aHNwZWMs IGJ1Zik7Ci0rICBpZiAodG1wX3BhdGhzcGVjID09IDApCi0rICAgIHsKLSsgICAgICBsdF9mYXRh bCAoIkNvdWxkIG5vdCBmb2xsb3cgc3ltbGlua3MgZm9yICVzIiwgcGF0aHNwZWMpOwotKyAgICB9 Ci0rICByZXR1cm4geHN0cmR1cCAodG1wX3BhdGhzcGVjKTsKLSsjZW5kaWYKLSt9Ci0rCi0rY2hh ciAqCi0rc3RyZW5kemFwIChjaGFyICpzdHIsIGNvbnN0IGNoYXIgKnBhdCkKLSt7Ci0rICBzaXpl X3QgbGVuLCBwYXRsZW47Ci0rCi0rICBhc3NlcnQgKHN0ciAhPSBOVUxMKTsKLSsgIGFzc2VydCAo cGF0ICE9IE5VTEwpOwotKwotKyAgbGVuID0gc3RybGVuIChzdHIpOwotKyAgcGF0bGVuID0gc3Ry bGVuIChwYXQpOwotKwotKyAgaWYgKHBhdGxlbiA8PSBsZW4pCi0rICAgIHsKLSsgICAgICBzdHIg Kz0gbGVuIC0gcGF0bGVuOwotKyAgICAgIGlmIChzdHJjbXAgKHN0ciwgcGF0KSA9PSAwKQotKwkq c3RyID0gJ1wwJzsKLSsgICAgfQotKyAgcmV0dXJuIHN0cjsKLSt9Ci0rCi0rc3RhdGljIHZvaWQK LStsdF9lcnJvcl9jb3JlIChpbnQgZXhpdF9zdGF0dXMsIGNvbnN0IGNoYXIgKm1vZGUsCi0rCSAg ICAgICBjb25zdCBjaGFyICptZXNzYWdlLCB2YV9saXN0IGFwKQotK3sKLSsgIGZwcmludGYgKHN0 ZGVyciwgIiVzOiAlczogIiwgcHJvZ3JhbV9uYW1lLCBtb2RlKTsKLSsgIHZmcHJpbnRmIChzdGRl cnIsIG1lc3NhZ2UsIGFwKTsKLSsgIGZwcmludGYgKHN0ZGVyciwgIi5cbiIpOwotKwotKyAgaWYg KGV4aXRfc3RhdHVzID49IDApCi0rICAgIGV4aXQgKGV4aXRfc3RhdHVzKTsKLSt9Ci0rCi0rdm9p ZAotK2x0X2ZhdGFsIChjb25zdCBjaGFyICptZXNzYWdlLCAuLi4pCi0rewotKyAgdmFfbGlzdCBh cDsKLSsgIHZhX3N0YXJ0IChhcCwgbWVzc2FnZSk7Ci0rICBsdF9lcnJvcl9jb3JlIChFWElUX0ZB SUxVUkUsICJGQVRBTCIsIG1lc3NhZ2UsIGFwKTsKLSsgIHZhX2VuZCAoYXApOwotK30KLSsKLSt2 b2lkCi0rbHRfc2V0ZW52IChjb25zdCBjaGFyICpuYW1lLCBjb25zdCBjaGFyICp2YWx1ZSkKLSt7 Ci0rICBMVFdSQVBQRVJfREVCVUdQUklOVEYgKCgiKGx0X3NldGVudikgc2V0dGluZyAnJXMnIHRv ICclcydcbiIsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAobmFtZSA/IG5hbWUgOiAiPE5V TEw+IiksCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAodmFsdWUgPyB2YWx1ZSA6ICI8TlVM TD4iKSkpOwotKyAgewotKyNpZmRlZiBIQVZFX1NFVEVOVgotKyAgICAvKiBhbHdheXMgbWFrZSBh IGNvcHksIGZvciBjb25zaXN0ZW5jeSB3aXRoICFIQVZFX1NFVEVOViAqLwotKyAgICBjaGFyICpz dHIgPSB4c3RyZHVwICh2YWx1ZSk7Ci0rICAgIHNldGVudiAobmFtZSwgc3RyLCAxKTsKLSsjZWxz ZQotKyAgICBpbnQgbGVuID0gc3RybGVuIChuYW1lKSArIDEgKyBzdHJsZW4gKHZhbHVlKSArIDE7 Ci0rICAgIGNoYXIgKnN0ciA9IFhNQUxMT0MgKGNoYXIsIGxlbik7Ci0rICAgIHNwcmludGYgKHN0 ciwgIiVzPSVzIiwgbmFtZSwgdmFsdWUpOwotKyAgICBpZiAocHV0ZW52IChzdHIpICE9IEVYSVRf U1VDQ0VTUykKLSsgICAgICB7Ci0rICAgICAgICBYRlJFRSAoc3RyKTsKLSsgICAgICB9Ci0rI2Vu ZGlmCi0rICB9Ci0rfQotKwotK2NoYXIgKgotK2x0X2V4dGVuZF9zdHIgKGNvbnN0IGNoYXIgKm9y aWdfdmFsdWUsIGNvbnN0IGNoYXIgKmFkZCwgaW50IHRvX2VuZCkKLSt7Ci0rICBjaGFyICpuZXdf dmFsdWU7Ci0rICBpZiAob3JpZ192YWx1ZSAmJiAqb3JpZ192YWx1ZSkKLSsgICAgewotKyAgICAg IGludCBvcmlnX3ZhbHVlX2xlbiA9IHN0cmxlbiAob3JpZ192YWx1ZSk7Ci0rICAgICAgaW50IGFk ZF9sZW4gPSBzdHJsZW4gKGFkZCk7Ci0rICAgICAgbmV3X3ZhbHVlID0gWE1BTExPQyAoY2hhciwg YWRkX2xlbiArIG9yaWdfdmFsdWVfbGVuICsgMSk7Ci0rICAgICAgaWYgKHRvX2VuZCkKLSsgICAg ICAgIHsKLSsgICAgICAgICAgc3RyY3B5IChuZXdfdmFsdWUsIG9yaWdfdmFsdWUpOwotKyAgICAg ICAgICBzdHJjcHkgKG5ld192YWx1ZSArIG9yaWdfdmFsdWVfbGVuLCBhZGQpOwotKyAgICAgICAg fQotKyAgICAgIGVsc2UKLSsgICAgICAgIHsKLSsgICAgICAgICAgc3RyY3B5IChuZXdfdmFsdWUs IGFkZCk7Ci0rICAgICAgICAgIHN0cmNweSAobmV3X3ZhbHVlICsgYWRkX2xlbiwgb3JpZ192YWx1 ZSk7Ci0rICAgICAgICB9Ci0rICAgIH0KLSsgIGVsc2UKLSsgICAgewotKyAgICAgIG5ld192YWx1 ZSA9IHhzdHJkdXAgKGFkZCk7Ci0rICAgIH0KLSsgIHJldHVybiBuZXdfdmFsdWU7Ci0rfQotKwot K2ludAotK2x0X3NwbGl0X25hbWVfdmFsdWUgKGNvbnN0IGNoYXIgKmFyZywgY2hhcioqIG5hbWUs IGNoYXIqKiB2YWx1ZSkKLSt7Ci0rICBjb25zdCBjaGFyICpwOwotKyAgaW50IGxlbjsKLSsgIGlm ICghYXJnIHx8ICEqYXJnKQotKyAgICByZXR1cm4gMTsKLSsKLSsgIHAgPSBzdHJjaHIgKGFyZywg KGludCknPScpOwotKwotKyAgaWYgKCFwKQotKyAgICByZXR1cm4gMTsKLSsKLSsgICp2YWx1ZSA9 IHhzdHJkdXAgKCsrcCk7Ci0rCi0rICBsZW4gPSBzdHJsZW4gKGFyZykgLSBzdHJsZW4gKCp2YWx1 ZSk7Ci0rICAqbmFtZSA9IFhNQUxMT0MgKGNoYXIsIGxlbik7Ci0rICBzdHJuY3B5ICgqbmFtZSwg YXJnLCBsZW4tMSk7Ci0rICAoKm5hbWUpW2xlbiAtIDFdID0gJ1wwJzsKLSsKLSsgIHJldHVybiAw OwotK30KLSsKLSt2b2lkCi0rbHRfb3B0X3Byb2Nlc3NfZW52X3NldCAoY29uc3QgY2hhciAqYXJn KQotK3sKLSsgIGNoYXIgKm5hbWUgPSBOVUxMOwotKyAgY2hhciAqdmFsdWUgPSBOVUxMOwotKwot KyAgaWYgKGx0X3NwbGl0X25hbWVfdmFsdWUgKGFyZywgJm5hbWUsICZ2YWx1ZSkgIT0gMCkKLSsg ICAgewotKyAgICAgIFhGUkVFIChuYW1lKTsKLSsgICAgICBYRlJFRSAodmFsdWUpOwotKyAgICAg IGx0X2ZhdGFsICgiYmFkIGFyZ3VtZW50IGZvciAlczogJyVzJyIsIGVudl9zZXRfb3B0LCBhcmcp OwotKyAgICB9Ci0rCi0rICBsdF9zZXRlbnYgKG5hbWUsIHZhbHVlKTsKLSsgIFhGUkVFIChuYW1l KTsKLSsgIFhGUkVFICh2YWx1ZSk7Ci0rfQotKwotK3ZvaWQKLStsdF9vcHRfcHJvY2Vzc19lbnZf cHJlcGVuZCAoY29uc3QgY2hhciAqYXJnKQotK3sKLSsgIGNoYXIgKm5hbWUgPSBOVUxMOwotKyAg Y2hhciAqdmFsdWUgPSBOVUxMOwotKyAgY2hhciAqbmV3X3ZhbHVlID0gTlVMTDsKLSsKLSsgIGlm IChsdF9zcGxpdF9uYW1lX3ZhbHVlIChhcmcsICZuYW1lLCAmdmFsdWUpICE9IDApCi0rICAgIHsK LSsgICAgICBYRlJFRSAobmFtZSk7Ci0rICAgICAgWEZSRUUgKHZhbHVlKTsKLSsgICAgICBsdF9m YXRhbCAoImJhZCBhcmd1bWVudCBmb3IgJXM6ICclcyciLCBlbnZfcHJlcGVuZF9vcHQsIGFyZyk7 Ci0rICAgIH0KLSsKLSsgIG5ld192YWx1ZSA9IGx0X2V4dGVuZF9zdHIgKGdldGVudiAobmFtZSks IHZhbHVlLCAwKTsKLSsgIGx0X3NldGVudiAobmFtZSwgbmV3X3ZhbHVlKTsKLSsgIFhGUkVFIChu ZXdfdmFsdWUpOwotKyAgWEZSRUUgKG5hbWUpOwotKyAgWEZSRUUgKHZhbHVlKTsKLSt9Ci0rCi0r dm9pZAotK2x0X29wdF9wcm9jZXNzX2Vudl9hcHBlbmQgKGNvbnN0IGNoYXIgKmFyZykKLSt7Ci0r ICBjaGFyICpuYW1lID0gTlVMTDsKLSsgIGNoYXIgKnZhbHVlID0gTlVMTDsKLSsgIGNoYXIgKm5l d192YWx1ZSA9IE5VTEw7Ci0rCi0rICBpZiAobHRfc3BsaXRfbmFtZV92YWx1ZSAoYXJnLCAmbmFt ZSwgJnZhbHVlKSAhPSAwKQotKyAgICB7Ci0rICAgICAgWEZSRUUgKG5hbWUpOwotKyAgICAgIFhG UkVFICh2YWx1ZSk7Ci0rICAgICAgbHRfZmF0YWwgKCJiYWQgYXJndW1lbnQgZm9yICVzOiAnJXMn IiwgZW52X2FwcGVuZF9vcHQsIGFyZyk7Ci0rICAgIH0KLSsKLSsgIG5ld192YWx1ZSA9IGx0X2V4 dGVuZF9zdHIgKGdldGVudiAobmFtZSksIHZhbHVlLCAxKTsKLSsgIGx0X3NldGVudiAobmFtZSwg bmV3X3ZhbHVlKTsKLSsgIFhGUkVFIChuZXdfdmFsdWUpOwotKyAgWEZSRUUgKG5hbWUpOwotKyAg WEZSRUUgKHZhbHVlKTsKLSt9Ci0rCi0rdm9pZAotK2x0X3VwZGF0ZV9leGVfcGF0aCAoY29uc3Qg Y2hhciAqbmFtZSwgY29uc3QgY2hhciAqdmFsdWUpCi0rewotKyAgTFRXUkFQUEVSX0RFQlVHUFJJ TlRGICgoIihsdF91cGRhdGVfZXhlX3BhdGgpIG1vZGlmeWluZyAnJXMnIGJ5IHByZXBlbmRpbmcg JyVzJ1xuIiwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgIChuYW1lID8gbmFtZSA6ICI8TlVM TD4iKSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICh2YWx1ZSA/IHZhbHVlIDogIjxOVUxM PiIpKSk7Ci0rCi0rICBpZiAobmFtZSAmJiAqbmFtZSAmJiB2YWx1ZSAmJiAqdmFsdWUpCi0rICAg IHsKLSsgICAgICBjaGFyICpuZXdfdmFsdWUgPSBsdF9leHRlbmRfc3RyIChnZXRlbnYgKG5hbWUp LCB2YWx1ZSwgMCk7Ci0rICAgICAgLyogc29tZSBzeXN0ZW1zIGNhbid0IGNvcGUgd2l0aCBhICc6 Jy10ZXJtaW5hdGVkIHBhdGggIycgKi8KLSsgICAgICBpbnQgbGVuID0gc3RybGVuIChuZXdfdmFs dWUpOwotKyAgICAgIHdoaWxlICgoKGxlbiA9IHN0cmxlbiAobmV3X3ZhbHVlKSkgPiAwKSAmJiBJ U19QQVRIX1NFUEFSQVRPUiAobmV3X3ZhbHVlW2xlbi0xXSkpCi0rICAgICAgICB7Ci0rICAgICAg ICAgIG5ld192YWx1ZVtsZW4tMV0gPSAnXDAnOwotKyAgICAgICAgfQotKyAgICAgIGx0X3NldGVu diAobmFtZSwgbmV3X3ZhbHVlKTsKLSsgICAgICBYRlJFRSAobmV3X3ZhbHVlKTsKLSsgICAgfQot K30KLSsKLSt2b2lkCi0rbHRfdXBkYXRlX2xpYl9wYXRoIChjb25zdCBjaGFyICpuYW1lLCBjb25z dCBjaGFyICp2YWx1ZSkKLSt7Ci0rICBMVFdSQVBQRVJfREVCVUdQUklOVEYgKCgiKGx0X3VwZGF0 ZV9saWJfcGF0aCkgbW9kaWZ5aW5nICclcycgYnkgcHJlcGVuZGluZyAnJXMnXG4iLAotKyAgICAg ICAgICAgICAgICAgICAgICAgICAgKG5hbWUgPyBuYW1lIDogIjxOVUxMPiIpLAotKyAgICAgICAg ICAgICAgICAgICAgICAgICAgKHZhbHVlID8gdmFsdWUgOiAiPE5VTEw+IikpKTsKLSsKLSsgIGlm IChuYW1lICYmICpuYW1lICYmIHZhbHVlICYmICp2YWx1ZSkKLSsgICAgewotKyAgICAgIGNoYXIg Km5ld192YWx1ZSA9IGx0X2V4dGVuZF9zdHIgKGdldGVudiAobmFtZSksIHZhbHVlLCAwKTsKLSsg ICAgICBsdF9zZXRlbnYgKG5hbWUsIG5ld192YWx1ZSk7Ci0rICAgICAgWEZSRUUgKG5ld192YWx1 ZSk7Ci0rICAgIH0KLSt9Ci0rCi0rCi0rRU9GCi0rfQotKyMgZW5kOiBmdW5jX2VtaXRfY3dyYXBw ZXJleGVfc3JjCi0rCi0rIyBmdW5jX21vZGVfbGluayBhcmcuLi4KLStmdW5jX21vZGVfbGluayAo KQotK3sKLSsgICAgJG9wdF9kZWJ1ZwotKyAgICBjYXNlICRob3N0IGluCi0rICAgICotKi1jeWd3 aW4qIHwgKi0qLW1pbmd3KiB8ICotKi1wdzMyKiB8ICotKi1vczIqIHwgKi1jZWdjYyopCi0rICAg ICAgIyBJdCBpcyBpbXBvc3NpYmxlIHRvIGxpbmsgYSBkbGwgd2l0aG91dCB0aGlzIHNldHRpbmcs IGFuZAotKyAgICAgICMgd2Ugc2hvdWxkbid0IGZvcmNlIHRoZSBtYWtlZmlsZSBtYWludGFpbmVy IHRvIGZpZ3VyZSBvdXQKLSsgICAgICAjIHdoaWNoIHN5c3RlbSB3ZSBhcmUgY29tcGlsaW5nIGZv ciBpbiBvcmRlciB0byBwYXNzIGFuIGV4dHJhCi0rICAgICAgIyBmbGFnIGZvciBldmVyeSBsaWJ0 b29sIGludm9jYXRpb24uCi0rICAgICAgIyBhbGxvd191bmRlZmluZWQ9bm8KLSsKLSsgICAgICAj IEZJWE1FOiBVbmZvcnR1bmF0ZWx5LCB0aGVyZSBhcmUgcHJvYmxlbXMgd2l0aCB0aGUgYWJvdmUg d2hlbiB0cnlpbmcKLSsgICAgICAjIHRvIG1ha2UgYSBkbGwgd2hpY2ggaGFzIHVuZGVmaW5lZCBz eW1ib2xzLCBpbiB3aGljaCBjYXNlIG5vdAotKyAgICAgICMgZXZlbiBhIHN0YXRpYyBsaWJyYXJ5 IGlzIGJ1aWx0LiAgRm9yIG5vdywgd2UgbmVlZCB0byBzcGVjaWZ5Ci0rICAgICAgIyAtbm8tdW5k ZWZpbmVkIG9uIHRoZSBsaWJ0b29sIGxpbmsgbGluZSB3aGVuIHdlIGNhbiBiZSBjZXJ0YWluCi0r ICAgICAgIyB0aGF0IGFsbCBzeW1ib2xzIGFyZSBzYXRpc2ZpZWQsIG90aGVyd2lzZSB3ZSBnZXQg YSBzdGF0aWMgbGlicmFyeS4KLSsgICAgICBhbGxvd191bmRlZmluZWQ9eWVzCi0rICAgICAgOzsK LSsgICAgKikKLSsgICAgICBhbGxvd191bmRlZmluZWQ9eWVzCi0rICAgICAgOzsKLSsgICAgZXNh YwotKyAgICBsaWJ0b29sX2FyZ3M9JG5vbm9wdAotKyAgICBiYXNlX2NvbXBpbGU9IiRub25vcHQg JEAiCi0rICAgIGNvbXBpbGVfY29tbWFuZD0kbm9ub3B0Ci0rICAgIGZpbmFsaXplX2NvbW1hbmQ9 JG5vbm9wdAotKwotKyAgICBjb21waWxlX3JwYXRoPQotKyAgICBmaW5hbGl6ZV9ycGF0aD0KLSsg ICAgY29tcGlsZV9zaGxpYnBhdGg9Ci0rICAgIGZpbmFsaXplX3NobGlicGF0aD0KLSsgICAgY29u dmVuaWVuY2U9Ci0rICAgIG9sZF9jb252ZW5pZW5jZT0KLSsgICAgZGVwbGlicz0KLSsgICAgb2xk X2RlcGxpYnM9Ci0rICAgIGNvbXBpbGVyX2ZsYWdzPQotKyAgICBsaW5rZXJfZmxhZ3M9Ci0rICAg IGRsbHNlYXJjaHBhdGg9Ci0rICAgIGxpYl9zZWFyY2hfcGF0aD1gcHdkYAotKyAgICBpbnN0X3By ZWZpeF9kaXI9Ci0rICAgIG5ld19pbmhlcml0ZWRfbGlua2VyX2ZsYWdzPQotKwotKyAgICBhdm9p ZF92ZXJzaW9uPW5vCi0rICAgIGRsZmlsZXM9Ci0rICAgIGRscHJlZmlsZXM9Ci0rICAgIGRsc2Vs Zj1ubwotKyAgICBleHBvcnRfZHluYW1pYz1ubwotKyAgICBleHBvcnRfc3ltYm9scz0KLSsgICAg ZXhwb3J0X3N5bWJvbHNfcmVnZXg9Ci0rICAgIGdlbmVyYXRlZD0KLSsgICAgbGlib2Jqcz0KLSsg ICAgbHRsaWJzPQotKyAgICBtb2R1bGU9bm8KLSsgICAgbm9faW5zdGFsbD1ubwotKyAgICBvYmpz PQotKyAgICBub25fcGljX29iamVjdHM9Ci0rICAgIHByZWNpb3VzX2ZpbGVzX3JlZ2V4PQotKyAg ICBwcmVmZXJfc3RhdGljX2xpYnM9bm8KLSsgICAgcHJlbG9hZD1ubwotKyAgICBwcmV2PQotKyAg ICBwcmV2YXJnPQotKyAgICByZWxlYXNlPQotKyAgICBycGF0aD0KLSsgICAgeHJwYXRoPQotKyAg ICBwZXJtX3JwYXRoPQotKyAgICB0ZW1wX3JwYXRoPQotKyAgICB0aHJlYWRfc2FmZT1ubwotKyAg ICB2aW5mbz0KLSsgICAgdmluZm9fbnVtYmVyPW5vCi0rICAgIHdlYWtfbGlicz0KLSsgICAgc2lu Z2xlX21vZHVsZT0iJHt3bH0tc2luZ2xlX21vZHVsZSIKLSsgICAgZnVuY19pbmZlcl90YWcgJGJh c2VfY29tcGlsZQotKwotKyAgICAjIFdlIG5lZWQgdG8ga25vdyAtc3RhdGljLCB0byBnZXQgdGhl IHJpZ2h0IG91dHB1dCBmaWxlbmFtZXMuCi0rICAgIGZvciBhcmcKLSsgICAgZG8KLSsgICAgICBj YXNlICRhcmcgaW4KLSsgICAgICAtc2hhcmVkKQotKwl0ZXN0ICIkYnVpbGRfbGlidG9vbF9saWJz IiAhPSB5ZXMgJiYgXAotKwkgIGZ1bmNfZmF0YWxfY29uZmlndXJhdGlvbiAiY2FuIG5vdCBidWls ZCBhIHNoYXJlZCBsaWJyYXJ5IgotKwlidWlsZF9vbGRfbGlicz1ubwotKwlicmVhawotKwk7Owot KyAgICAgIC1hbGwtc3RhdGljIHwgLXN0YXRpYyB8IC1zdGF0aWMtbGlidG9vbC1saWJzKQotKwlj YXNlICRhcmcgaW4KLSsJLWFsbC1zdGF0aWMpCi0rCSAgaWYgdGVzdCAiJGJ1aWxkX2xpYnRvb2xf bGlicyIgPSB5ZXMgJiYgdGVzdCAteiAiJGxpbmtfc3RhdGljX2ZsYWciOyB0aGVuCi0rCSAgICBm dW5jX3dhcm5pbmcgImNvbXBsZXRlIHN0YXRpYyBsaW5raW5nIGlzIGltcG9zc2libGUgaW4gdGhp cyBjb25maWd1cmF0aW9uIgotKwkgIGZpCi0rCSAgaWYgdGVzdCAtbiAiJGxpbmtfc3RhdGljX2Zs YWciOyB0aGVuCi0rCSAgICBkbG9wZW5fc2VsZj0kZGxvcGVuX3NlbGZfc3RhdGljCi0rCSAgZmkK LSsJICBwcmVmZXJfc3RhdGljX2xpYnM9eWVzCi0rCSAgOzsKLSsJLXN0YXRpYykKLSsJICBpZiB0 ZXN0IC16ICIkcGljX2ZsYWciICYmIHRlc3QgLW4gIiRsaW5rX3N0YXRpY19mbGFnIjsgdGhlbgot KwkgICAgZGxvcGVuX3NlbGY9JGRsb3Blbl9zZWxmX3N0YXRpYwotKwkgIGZpCi0rCSAgcHJlZmVy X3N0YXRpY19saWJzPWJ1aWx0Ci0rCSAgOzsKLSsJLXN0YXRpYy1saWJ0b29sLWxpYnMpCi0rCSAg aWYgdGVzdCAteiAiJHBpY19mbGFnIiAmJiB0ZXN0IC1uICIkbGlua19zdGF0aWNfZmxhZyI7IHRo ZW4KLSsJICAgIGRsb3Blbl9zZWxmPSRkbG9wZW5fc2VsZl9zdGF0aWMKLSsJICBmaQotKwkgIHBy ZWZlcl9zdGF0aWNfbGlicz15ZXMKLSsJICA7OwotKwllc2FjCi0rCWJ1aWxkX2xpYnRvb2xfbGli cz1ubwotKwlidWlsZF9vbGRfbGlicz15ZXMKLSsJYnJlYWsKLSsJOzsKLSsgICAgICBlc2FjCi0r ICAgIGRvbmUKLSsKLSsgICAgIyBTZWUgaWYgb3VyIHNoYXJlZCBhcmNoaXZlcyBkZXBlbmQgb24g c3RhdGljIGFyY2hpdmVzLgotKyAgICB0ZXN0IC1uICIkb2xkX2FyY2hpdmVfZnJvbV9uZXdfY21k cyIgJiYgYnVpbGRfb2xkX2xpYnM9eWVzCi0rCi0rICAgICMgR28gdGhyb3VnaCB0aGUgYXJndW1l bnRzLCB0cmFuc2Zvcm1pbmcgdGhlbSBvbiB0aGUgd2F5LgotKyAgICB3aGlsZSB0ZXN0ICIkIyIg LWd0IDA7IGRvCi0rICAgICAgYXJnPSIkMSIKLSsgICAgICBzaGlmdAotKyAgICAgIGZ1bmNfcXVv dGVfZm9yX2V2YWwgIiRhcmciCi0rICAgICAgcWFyZz0kZnVuY19xdW90ZV9mb3JfZXZhbF91bnF1 b3RlZF9yZXN1bHQKLSsgICAgICBmdW5jX2FwcGVuZCBsaWJ0b29sX2FyZ3MgIiAkZnVuY19xdW90 ZV9mb3JfZXZhbF9yZXN1bHQiCi0rCi0rICAgICAgIyBJZiB0aGUgcHJldmlvdXMgb3B0aW9uIG5l ZWRzIGFuIGFyZ3VtZW50LCBhc3NpZ24gaXQuCi0rICAgICAgaWYgdGVzdCAtbiAiJHByZXYiOyB0 aGVuCi0rCWNhc2UgJHByZXYgaW4KLSsJb3V0cHV0KQotKwkgIGZ1bmNfYXBwZW5kIGNvbXBpbGVf Y29tbWFuZCAiIEBPVVRQVVRAIgotKwkgIGZ1bmNfYXBwZW5kIGZpbmFsaXplX2NvbW1hbmQgIiBA T1VUUFVUQCIKLSsJICA7OwotKwllc2FjCi0rCi0rCWNhc2UgJHByZXYgaW4KLSsJZGxmaWxlc3xk bHByZWZpbGVzKQotKwkgIGlmIHRlc3QgIiRwcmVsb2FkIiA9IG5vOyB0aGVuCi0rCSAgICAjIEFk ZCB0aGUgc3ltYm9sIG9iamVjdCBpbnRvIHRoZSBsaW5raW5nIGNvbW1hbmRzLgotKwkgICAgZnVu Y19hcHBlbmQgY29tcGlsZV9jb21tYW5kICIgQFNZTUZJTEVAIgotKwkgICAgZnVuY19hcHBlbmQg ZmluYWxpemVfY29tbWFuZCAiIEBTWU1GSUxFQCIKLSsJICAgIHByZWxvYWQ9eWVzCi0rCSAgZmkK LSsJICBjYXNlICRhcmcgaW4KLSsJICAqLmxhIHwgKi5sbykgOzsgICMgV2UgaGFuZGxlIHRoZXNl IGNhc2VzIGJlbG93LgotKwkgIGZvcmNlKQotKwkgICAgaWYgdGVzdCAiJGRsc2VsZiIgPSBubzsg dGhlbgotKwkgICAgICBkbHNlbGY9bmVlZGxlc3MKLSsJICAgICAgZXhwb3J0X2R5bmFtaWM9eWVz Ci0rCSAgICBmaQotKwkgICAgcHJldj0KLSsJICAgIGNvbnRpbnVlCi0rCSAgICA7OwotKwkgIHNl bGYpCi0rCSAgICBpZiB0ZXN0ICIkcHJldiIgPSBkbHByZWZpbGVzOyB0aGVuCi0rCSAgICAgIGRs c2VsZj15ZXMKLSsJICAgIGVsaWYgdGVzdCAiJHByZXYiID0gZGxmaWxlcyAmJiB0ZXN0ICIkZGxv cGVuX3NlbGYiICE9IHllczsgdGhlbgotKwkgICAgICBkbHNlbGY9eWVzCi0rCSAgICBlbHNlCi0r CSAgICAgIGRsc2VsZj1uZWVkbGVzcwotKwkgICAgICBleHBvcnRfZHluYW1pYz15ZXMKLSsJICAg IGZpCi0rCSAgICBwcmV2PQotKwkgICAgY29udGludWUKLSsJICAgIDs7Ci0rCSAgKikKLSsJICAg IGlmIHRlc3QgIiRwcmV2IiA9IGRsZmlsZXM7IHRoZW4KLSsJICAgICAgZGxmaWxlcz0iJGRsZmls ZXMgJGFyZyIKLSsJICAgIGVsc2UKLSsJICAgICAgZGxwcmVmaWxlcz0iJGRscHJlZmlsZXMgJGFy ZyIKLSsJICAgIGZpCi0rCSAgICBwcmV2PQotKwkgICAgY29udGludWUKLSsJICAgIDs7Ci0rCSAg ZXNhYwotKwkgIDs7Ci0rCWV4cHN5bXMpCi0rCSAgZXhwb3J0X3N5bWJvbHM9IiRhcmciCi0rCSAg dGVzdCAtZiAiJGFyZyIgXAotKwkgICAgfHwgZnVuY19mYXRhbF9lcnJvciAic3ltYm9sIGZpbGUg XGAkYXJnJyBkb2VzIG5vdCBleGlzdCIKLSsJICBwcmV2PQotKwkgIGNvbnRpbnVlCi0rCSAgOzsK LSsJZXhwc3ltc19yZWdleCkKLSsJICBleHBvcnRfc3ltYm9sc19yZWdleD0iJGFyZyIKLSsJICBw cmV2PQotKwkgIGNvbnRpbnVlCi0rCSAgOzsKLSsJZnJhbWV3b3JrKQotKwkgIGNhc2UgJGhvc3Qg aW4KLSsJICAgICotKi1kYXJ3aW4qKQotKwkgICAgICBjYXNlICIkZGVwbGlicyAiIGluCi0rCQkq IiAkcWFyZy5sdGZyYW1ld29yayAiKikgOzsKLSsJCSopIGRlcGxpYnM9IiRkZXBsaWJzICRxYXJn Lmx0ZnJhbWV3b3JrIiAjIHRoaXMgaXMgZml4ZWQgbGF0ZXIKLSsJCSAgIDs7Ci0rCSAgICAgIGVz YWMKLSsJICAgICAgOzsKLSsJICBlc2FjCi0rCSAgcHJldj0KLSsJICBjb250aW51ZQotKwkgIDs7 Ci0rCWluc3RfcHJlZml4KQotKwkgIGluc3RfcHJlZml4X2Rpcj0iJGFyZyIKLSsJICBwcmV2PQot KwkgIGNvbnRpbnVlCi0rCSAgOzsKLSsJb2JqZWN0bGlzdCkKLSsJICBpZiB0ZXN0IC1mICIkYXJn IjsgdGhlbgotKwkgICAgc2F2ZV9hcmc9JGFyZwotKwkgICAgbW9yZWFyZ3M9Ci0rCSAgICBmb3Ig ZmlsIGluIGBjYXQgIiRzYXZlX2FyZyJgCi0rCSAgICBkbwotKyMJICAgICAgbW9yZWFyZ3M9IiRt b3JlYXJncyAkZmlsIgotKwkgICAgICBhcmc9JGZpbAotKwkgICAgICAjIEEgbGlidG9vbC1jb250 cm9sbGVkIG9iamVjdC4KLSsKLSsJICAgICAgIyBDaGVjayB0byBzZWUgdGhhdCB0aGlzIHJlYWxs eSBpcyBhIGxpYnRvb2wgb2JqZWN0LgotKwkgICAgICBpZiBmdW5jX2xhbGliX3Vuc2FmZV9wICIk YXJnIjsgdGhlbgotKwkJcGljX29iamVjdD0KLSsJCW5vbl9waWNfb2JqZWN0PQotKwotKwkJIyBS ZWFkIHRoZSAubG8gZmlsZQotKwkJZnVuY19zb3VyY2UgIiRhcmciCi0rCi0rCQlpZiB0ZXN0IC16 ICIkcGljX29iamVjdCIgfHwKLSsJCSAgIHRlc3QgLXogIiRub25fcGljX29iamVjdCIgfHwKLSsJ CSAgIHRlc3QgIiRwaWNfb2JqZWN0IiA9IG5vbmUgJiYKLSsJCSAgIHRlc3QgIiRub25fcGljX29i amVjdCIgPSBub25lOyB0aGVuCi0rCQkgIGZ1bmNfZmF0YWxfZXJyb3IgImNhbm5vdCBmaW5kIG5h bWUgb2Ygb2JqZWN0IGZvciBcYCRhcmcnIgotKwkJZmkKLSsKLSsJCSMgRXh0cmFjdCBzdWJkaXJl Y3RvcnkgZnJvbSB0aGUgYXJndW1lbnQuCi0rCQlmdW5jX2Rpcm5hbWUgIiRhcmciICIvIiAiIgot KwkJeGRpcj0iJGZ1bmNfZGlybmFtZV9yZXN1bHQiCi0rCi0rCQlpZiB0ZXN0ICIkcGljX29iamVj dCIgIT0gbm9uZTsgdGhlbgotKwkJICAjIFByZXBlbmQgdGhlIHN1YmRpcmVjdG9yeSB0aGUgb2Jq ZWN0IGlzIGZvdW5kIGluLgotKwkJICBwaWNfb2JqZWN0PSIkeGRpciRwaWNfb2JqZWN0IgotKwot KwkJICBpZiB0ZXN0ICIkcHJldiIgPSBkbGZpbGVzOyB0aGVuCi0rCQkgICAgaWYgdGVzdCAiJGJ1 aWxkX2xpYnRvb2xfbGlicyIgPSB5ZXMgJiYgdGVzdCAiJGRsb3Blbl9zdXBwb3J0IiA9IHllczsg dGhlbgotKwkJICAgICAgZGxmaWxlcz0iJGRsZmlsZXMgJHBpY19vYmplY3QiCi0rCQkgICAgICBw cmV2PQotKwkJICAgICAgY29udGludWUKLSsJCSAgICBlbHNlCi0rCQkgICAgICAjIElmIGxpYnRv b2wgb2JqZWN0cyBhcmUgdW5zdXBwb3J0ZWQsIHRoZW4gd2UgbmVlZCB0byBwcmVsb2FkLgotKwkJ ICAgICAgcHJldj1kbHByZWZpbGVzCi0rCQkgICAgZmkKLSsJCSAgZmkKLSsKLSsJCSAgIyBDSEVD SyBNRTogIEkgdGhpbmsgSSBidXN0ZWQgdGhpcy4gIC1Pc3NhbWEKLSsJCSAgaWYgdGVzdCAiJHBy ZXYiID0gZGxwcmVmaWxlczsgdGhlbgotKwkJICAgICMgUHJlbG9hZCB0aGUgb2xkLXN0eWxlIG9i amVjdC4KLSsJCSAgICBkbHByZWZpbGVzPSIkZGxwcmVmaWxlcyAkcGljX29iamVjdCIKLSsJCSAg ICBwcmV2PQotKwkJICBmaQotKwotKwkJICAjIEEgUElDIG9iamVjdC4KLSsJCSAgZnVuY19hcHBl bmQgbGlib2JqcyAiICRwaWNfb2JqZWN0IgotKwkJICBhcmc9IiRwaWNfb2JqZWN0IgotKwkJZmkK LSsKLSsJCSMgTm9uLVBJQyBvYmplY3QuCi0rCQlpZiB0ZXN0ICIkbm9uX3BpY19vYmplY3QiICE9 IG5vbmU7IHRoZW4KLSsJCSAgIyBQcmVwZW5kIHRoZSBzdWJkaXJlY3RvcnkgdGhlIG9iamVjdCBp cyBmb3VuZCBpbi4KLSsJCSAgbm9uX3BpY19vYmplY3Q9IiR4ZGlyJG5vbl9waWNfb2JqZWN0Igot KwotKwkJICAjIEEgc3RhbmRhcmQgbm9uLVBJQyBvYmplY3QKLSsJCSAgZnVuY19hcHBlbmQgbm9u X3BpY19vYmplY3RzICIgJG5vbl9waWNfb2JqZWN0IgotKwkJICBpZiB0ZXN0IC16ICIkcGljX29i amVjdCIgfHwgdGVzdCAiJHBpY19vYmplY3QiID0gbm9uZSA7IHRoZW4KLSsJCSAgICBhcmc9IiRu b25fcGljX29iamVjdCIKLSsJCSAgZmkKLSsJCWVsc2UKLSsJCSAgIyBJZiB0aGUgUElDIG9iamVj dCBleGlzdHMsIHVzZSBpdCBpbnN0ZWFkLgotKwkJICAjICR4ZGlyIHdhcyBwcmVwZW5kZWQgdG8g JHBpY19vYmplY3QgYWJvdmUuCi0rCQkgIG5vbl9waWNfb2JqZWN0PSIkcGljX29iamVjdCIKLSsJ CSAgZnVuY19hcHBlbmQgbm9uX3BpY19vYmplY3RzICIgJG5vbl9waWNfb2JqZWN0IgotKwkJZmkK LSsJICAgICAgZWxzZQotKwkJIyBPbmx5IGFuIGVycm9yIGlmIG5vdCBkb2luZyBhIGRyeS1ydW4u Ci0rCQlpZiAkb3B0X2RyeV9ydW47IHRoZW4KLSsJCSAgIyBFeHRyYWN0IHN1YmRpcmVjdG9yeSBm cm9tIHRoZSBhcmd1bWVudC4KLSsJCSAgZnVuY19kaXJuYW1lICIkYXJnIiAiLyIgIiIKLSsJCSAg eGRpcj0iJGZ1bmNfZGlybmFtZV9yZXN1bHQiCi0rCi0rCQkgIGZ1bmNfbG8ybyAiJGFyZyIKLSsJ CSAgcGljX29iamVjdD0keGRpciRvYmpkaXIvJGZ1bmNfbG8yb19yZXN1bHQKLSsJCSAgbm9uX3Bp Y19vYmplY3Q9JHhkaXIkZnVuY19sbzJvX3Jlc3VsdAotKwkJICBmdW5jX2FwcGVuZCBsaWJvYmpz ICIgJHBpY19vYmplY3QiCi0rCQkgIGZ1bmNfYXBwZW5kIG5vbl9waWNfb2JqZWN0cyAiICRub25f cGljX29iamVjdCIKLSsJICAgICAgICBlbHNlCi0rCQkgIGZ1bmNfZmF0YWxfZXJyb3IgIlxgJGFy ZycgaXMgbm90IGEgdmFsaWQgbGlidG9vbCBvYmplY3QiCi0rCQlmaQotKwkgICAgICBmaQotKwkg ICAgZG9uZQotKwkgIGVsc2UKLSsJICAgIGZ1bmNfZmF0YWxfZXJyb3IgImxpbmsgaW5wdXQgZmls ZSBcYCRhcmcnIGRvZXMgbm90IGV4aXN0IgotKwkgIGZpCi0rCSAgYXJnPSRzYXZlX2FyZwotKwkg IHByZXY9Ci0rCSAgY29udGludWUKLSsJICA7OwotKwlwcmVjaW91c19yZWdleCkKLSsJICBwcmVj aW91c19maWxlc19yZWdleD0iJGFyZyIKLSsJICBwcmV2PQotKwkgIGNvbnRpbnVlCi0rCSAgOzsK LSsJcmVsZWFzZSkKLSsJICByZWxlYXNlPSItJGFyZyIKLSsJICBwcmV2PQotKwkgIGNvbnRpbnVl Ci0rCSAgOzsKLSsJcnBhdGggfCB4cnBhdGgpCi0rCSAgIyBXZSBuZWVkIGFuIGFic29sdXRlIHBh dGguCi0rCSAgY2FzZSAkYXJnIGluCi0rCSAgW1xcL10qIHwgW0EtWmEtel06W1xcL10qKSA7Owot KwkgICopCi0rCSAgICBmdW5jX2ZhdGFsX2Vycm9yICJvbmx5IGFic29sdXRlIHJ1bi1wYXRocyBh cmUgYWxsb3dlZCIKLSsJICAgIDs7Ci0rCSAgZXNhYwotKwkgIGlmIHRlc3QgIiRwcmV2IiA9IHJw YXRoOyB0aGVuCi0rCSAgICBjYXNlICIkcnBhdGggIiBpbgotKwkgICAgKiIgJGFyZyAiKikgOzsK LSsJICAgICopIHJwYXRoPSIkcnBhdGggJGFyZyIgOzsKLSsJICAgIGVzYWMKLSsJICBlbHNlCi0r CSAgICBjYXNlICIkeHJwYXRoICIgaW4KLSsJICAgICoiICRhcmcgIiopIDs7Ci0rCSAgICAqKSB4 cnBhdGg9IiR4cnBhdGggJGFyZyIgOzsKLSsJICAgIGVzYWMKLSsJICBmaQotKwkgIHByZXY9Ci0r CSAgY29udGludWUKLSsJICA7OwotKwlzaHJleHQpCi0rCSAgc2hyZXh0X2NtZHM9IiRhcmciCi0r CSAgcHJldj0KLSsJICBjb250aW51ZQotKwkgIDs7Ci0rCXdlYWspCi0rCSAgd2Vha19saWJzPSIk d2Vha19saWJzICRhcmciCi0rCSAgcHJldj0KLSsJICBjb250aW51ZQotKwkgIDs7Ci0rCXhjY2xp bmtlcikKLSsJICBsaW5rZXJfZmxhZ3M9IiRsaW5rZXJfZmxhZ3MgJHFhcmciCi0rCSAgY29tcGls ZXJfZmxhZ3M9IiRjb21waWxlcl9mbGFncyAkcWFyZyIKLSsJICBwcmV2PQotKwkgIGZ1bmNfYXBw ZW5kIGNvbXBpbGVfY29tbWFuZCAiICRxYXJnIgotKwkgIGZ1bmNfYXBwZW5kIGZpbmFsaXplX2Nv bW1hbmQgIiAkcWFyZyIKLSsJICBjb250aW51ZQotKwkgIDs7Ci0rCXhjb21waWxlcikKLSsJICBj b21waWxlcl9mbGFncz0iJGNvbXBpbGVyX2ZsYWdzICRxYXJnIgotKwkgIHByZXY9Ci0rCSAgZnVu Y19hcHBlbmQgY29tcGlsZV9jb21tYW5kICIgJHFhcmciCi0rCSAgZnVuY19hcHBlbmQgZmluYWxp emVfY29tbWFuZCAiICRxYXJnIgotKwkgIGNvbnRpbnVlCi0rCSAgOzsKLSsJeGxpbmtlcikKLSsJ ICBsaW5rZXJfZmxhZ3M9IiRsaW5rZXJfZmxhZ3MgJHFhcmciCi0rCSAgY29tcGlsZXJfZmxhZ3M9 IiRjb21waWxlcl9mbGFncyAkd2wkcWFyZyIKLSsJICBwcmV2PQotKwkgIGZ1bmNfYXBwZW5kIGNv bXBpbGVfY29tbWFuZCAiICR3bCRxYXJnIgotKwkgIGZ1bmNfYXBwZW5kIGZpbmFsaXplX2NvbW1h bmQgIiAkd2wkcWFyZyIKLSsJICBjb250aW51ZQotKwkgIDs7Ci0rCSopCi0rCSAgZXZhbCAiJHBy ZXY9XCJcJGFyZ1wiIgotKwkgIHByZXY9Ci0rCSAgY29udGludWUKLSsJICA7OwotKwllc2FjCi0r ICAgICAgZmkgIyB0ZXN0IC1uICIkcHJldiIKLSsKLSsgICAgICBwcmV2YXJnPSIkYXJnIgotKwot KyAgICAgIGNhc2UgJGFyZyBpbgotKyAgICAgIC1hbGwtc3RhdGljKQotKwlpZiB0ZXN0IC1uICIk bGlua19zdGF0aWNfZmxhZyI7IHRoZW4KLSsJICAjIFNlZSBjb21tZW50IGZvciAtc3RhdGljIGZs YWcgYmVsb3csIGZvciBtb3JlIGRldGFpbHMuCi0rCSAgZnVuY19hcHBlbmQgY29tcGlsZV9jb21t YW5kICIgJGxpbmtfc3RhdGljX2ZsYWciCi0rCSAgZnVuY19hcHBlbmQgZmluYWxpemVfY29tbWFu ZCAiICRsaW5rX3N0YXRpY19mbGFnIgotKwlmaQotKwljb250aW51ZQotKwk7OwotKwotKyAgICAg IC1hbGxvdy11bmRlZmluZWQpCi0rCSMgRklYTUU6IHJlbW92ZSB0aGlzIGZsYWcgc29tZXRpbWUg aW4gdGhlIGZ1dHVyZS4KLSsJZnVuY19mYXRhbF9lcnJvciAiXGAtYWxsb3ctdW5kZWZpbmVkJyBt dXN0IG5vdCBiZSB1c2VkIGJlY2F1c2UgaXQgaXMgdGhlIGRlZmF1bHQiCi0rCTs7Ci0rCi0rICAg ICAgLWF2b2lkLXZlcnNpb24pCi0rCWF2b2lkX3ZlcnNpb249eWVzCi0rCWNvbnRpbnVlCi0rCTs7 Ci0rCi0rICAgICAgLWRsb3BlbikKLSsJcHJldj1kbGZpbGVzCi0rCWNvbnRpbnVlCi0rCTs7Ci0r Ci0rICAgICAgLWRscHJlb3BlbikKLSsJcHJldj1kbHByZWZpbGVzCi0rCWNvbnRpbnVlCi0rCTs7 Ci0rCi0rICAgICAgLWV4cG9ydC1keW5hbWljKQotKwlleHBvcnRfZHluYW1pYz15ZXMKLSsJY29u dGludWUKLSsJOzsKLSsKLSsgICAgICAtZXhwb3J0LXN5bWJvbHMgfCAtZXhwb3J0LXN5bWJvbHMt cmVnZXgpCi0rCWlmIHRlc3QgLW4gIiRleHBvcnRfc3ltYm9scyIgfHwgdGVzdCAtbiAiJGV4cG9y dF9zeW1ib2xzX3JlZ2V4IjsgdGhlbgotKwkgIGZ1bmNfZmF0YWxfZXJyb3IgIm1vcmUgdGhhbiBv bmUgLWV4cG9ydGVkLXN5bWJvbHMgYXJndW1lbnQgaXMgbm90IGFsbG93ZWQiCi0rCWZpCi0rCWlm IHRlc3QgIlgkYXJnIiA9ICJYLWV4cG9ydC1zeW1ib2xzIjsgdGhlbgotKwkgIHByZXY9ZXhwc3lt cwotKwllbHNlCi0rCSAgcHJldj1leHBzeW1zX3JlZ2V4Ci0rCWZpCi0rCWNvbnRpbnVlCi0rCTs7 Ci0rCi0rICAgICAgLWZyYW1ld29yaykKLSsJcHJldj1mcmFtZXdvcmsKLSsJY29udGludWUKLSsJ OzsKLSsKLSsgICAgICAtaW5zdC1wcmVmaXgtZGlyKQotKwlwcmV2PWluc3RfcHJlZml4Ci0rCWNv bnRpbnVlCi0rCTs7Ci0rCi0rICAgICAgIyBUaGUgbmF0aXZlIElSSVggbGlua2VyIHVuZGVyc3Rh bmRzIC1MQU5HOiosIC1MSVNUOiogYW5kIC1MTk86KgotKyAgICAgICMgc28sIGlmIHdlIHNlZSB0 aGVzZSBmbGFncyBiZSBjYXJlZnVsIG5vdCB0byB0cmVhdCB0aGVtIGxpa2UgLUwKLSsgICAgICAt TFtBLVpdW0EtWl0qOiopCi0rCWNhc2UgJHdpdGhfZ2NjLyRob3N0IGluCi0rCW5vLyotKi1pcml4 KiB8IC8qLSotaXJpeCopCi0rCSAgZnVuY19hcHBlbmQgY29tcGlsZV9jb21tYW5kICIgJGFyZyIK LSsJICBmdW5jX2FwcGVuZCBmaW5hbGl6ZV9jb21tYW5kICIgJGFyZyIKLSsJICA7OwotKwllc2Fj Ci0rCWNvbnRpbnVlCi0rCTs7Ci0rCi0rICAgICAgLUwqKQotKwlmdW5jX3N0cmlwbmFtZSAnLUwn ICcnICIkYXJnIgotKwlkaXI9JGZ1bmNfc3RyaXBuYW1lX3Jlc3VsdAotKwlpZiB0ZXN0IC16ICIk ZGlyIjsgdGhlbgotKwkgIGlmIHRlc3QgIiQjIiAtZ3QgMDsgdGhlbgotKwkgICAgZnVuY19mYXRh bF9lcnJvciAicmVxdWlyZSBubyBzcGFjZSBiZXR3ZWVuIFxgLUwnIGFuZCBcYCQxJyIKLSsJICBl bHNlCi0rCSAgICBmdW5jX2ZhdGFsX2Vycm9yICJuZWVkIHBhdGggZm9yIFxgLUwnIG9wdGlvbiIK LSsJICBmaQotKwlmaQotKwkjIFdlIG5lZWQgYW4gYWJzb2x1dGUgcGF0aC4KLSsJY2FzZSAkZGly IGluCi0rCVtcXC9dKiB8IFtBLVphLXpdOltcXC9dKikgOzsKLSsJKikKLSsJICBhYnNkaXI9YGNk ICIkZGlyIiAmJiBwd2RgCi0rCSAgdGVzdCAteiAiJGFic2RpciIgJiYgXAotKwkgICAgZnVuY19m YXRhbF9lcnJvciAiY2Fubm90IGRldGVybWluZSBhYnNvbHV0ZSBkaXJlY3RvcnkgbmFtZSBvZiBc YCRkaXInIgotKwkgIGRpcj0iJGFic2RpciIKLSsJICA7OwotKwllc2FjCi0rCWNhc2UgIiRkZXBs aWJzICIgaW4KLSsJKiIgLUwkZGlyICIqKSA7OwotKwkqKQotKwkgIGRlcGxpYnM9IiRkZXBsaWJz IC1MJGRpciIKLSsJICBsaWJfc2VhcmNoX3BhdGg9IiRsaWJfc2VhcmNoX3BhdGggJGRpciIKLSsJ ICA7OwotKwllc2FjCi0rCWNhc2UgJGhvc3QgaW4KLSsJKi0qLWN5Z3dpbiogfCAqLSotbWluZ3cq IHwgKi0qLXB3MzIqIHwgKi0qLW9zMiogfCAqLWNlZ2NjKikKLSsJICB0ZXN0YmluZGlyPWAkRUNI TyAiWCRkaXIiIHwgJFhzZWQgLWUgJ3MqL2xpYiQqL2JpbionYAotKwkgIGNhc2UgOiRkbGxzZWFy Y2hwYXRoOiBpbgotKwkgICoiOiRkaXI6IiopIDs7Ci0rCSAgOjopIGRsbHNlYXJjaHBhdGg9JGRp cjs7Ci0rCSAgKikgZGxsc2VhcmNocGF0aD0iJGRsbHNlYXJjaHBhdGg6JGRpciI7OwotKwkgIGVz YWMKLSsJICBjYXNlIDokZGxsc2VhcmNocGF0aDogaW4KLSsJICAqIjokdGVzdGJpbmRpcjoiKikg OzsKLSsJICA6OikgZGxsc2VhcmNocGF0aD0kdGVzdGJpbmRpcjs7Ci0rCSAgKikgZGxsc2VhcmNo cGF0aD0iJGRsbHNlYXJjaHBhdGg6JHRlc3RiaW5kaXIiOzsKLSsJICBlc2FjCi0rCSAgOzsKLSsJ ZXNhYwotKwljb250aW51ZQotKwk7OwotKwotKyAgICAgIC1sKikKLSsJaWYgdGVzdCAiWCRhcmci ID0gIlgtbGMiIHx8IHRlc3QgIlgkYXJnIiA9ICJYLWxtIjsgdGhlbgotKwkgIGNhc2UgJGhvc3Qg aW4KLSsJICAqLSotY3lnd2luKiB8ICotKi1taW5ndyogfCAqLSotcHczMiogfCAqLSotYmVvcyog fCAqLWNlZ2NjKikKLSsJICAgICMgVGhlc2Ugc3lzdGVtcyBkb24ndCBhY3R1YWxseSBoYXZlIGEg QyBvciBtYXRoIGxpYnJhcnkgKGFzIHN1Y2gpCi0rCSAgICBjb250aW51ZQotKwkgICAgOzsKLSsJ ICAqLSotb3MyKikKLSsJICAgICMgVGhlc2Ugc3lzdGVtcyBkb24ndCBhY3R1YWxseSBoYXZlIGEg QyBsaWJyYXJ5IChhcyBzdWNoKQotKwkgICAgdGVzdCAiWCRhcmciID0gIlgtbGMiICYmIGNvbnRp bnVlCi0rCSAgICA7OwotKwkgICotKi1vcGVuYnNkKiB8ICotKi1mcmVlYnNkKiB8ICotKi1kcmFn b25mbHkqKQotKwkgICAgIyBEbyBub3QgaW5jbHVkZSBsaWJjIGR1ZSB0byB1cyBoYXZpbmcgbGli Yy9saWJjX3IuCi0rCSAgICB0ZXN0ICJYJGFyZyIgPSAiWC1sYyIgJiYgY29udGludWUKLSsJICAg IDs7Ci0rCSAgKi0qLXJoYXBzb2R5KiB8ICotKi1kYXJ3aW4xLlswMTJdKQotKwkgICAgIyBSaGFw c29keSBDIGFuZCBtYXRoIGxpYnJhcmllcyBhcmUgaW4gdGhlIFN5c3RlbSBmcmFtZXdvcmsKLSsJ ICAgIGRlcGxpYnM9IiRkZXBsaWJzIFN5c3RlbS5sdGZyYW1ld29yayIKLSsJICAgIGNvbnRpbnVl Ci0rCSAgICA7OwotKwkgICotKi1zY28zLjJ2NSogfCAqLSotc2NvNXY2KikKLSsJICAgICMgQ2F1 c2VzIHByb2JsZW1zIHdpdGggX19jdHlwZQotKwkgICAgdGVzdCAiWCRhcmciID0gIlgtbGMiICYm IGNvbnRpbnVlCi0rCSAgICA7OwotKwkgICotKi1zeXN2NC4ydXcyKiB8ICotKi1zeXN2NSogfCAq LSotdW5peHdhcmUqIHwgKi0qLU9wZW5VTklYKikKLSsJICAgICMgQ29tcGlsZXIgaW5zZXJ0cyBs aWJjIGluIHRoZSBjb3JyZWN0IHBsYWNlIGZvciB0aHJlYWRzIHRvIHdvcmsKLSsJICAgIHRlc3Qg IlgkYXJnIiA9ICJYLWxjIiAmJiBjb250aW51ZQotKwkgICAgOzsKLSsJICBlc2FjCi0rCWVsaWYg dGVzdCAiWCRhcmciID0gIlgtbGNfciI7IHRoZW4KLSsJIGNhc2UgJGhvc3QgaW4KLSsJICotKi1v cGVuYnNkKiB8ICotKi1mcmVlYnNkKiB8ICotKi1kcmFnb25mbHkqKQotKwkgICAjIERvIG5vdCBp bmNsdWRlIGxpYmNfciBkaXJlY3RseSwgdXNlIC1wdGhyZWFkIGZsYWcuCi0rCSAgIGNvbnRpbnVl Ci0rCSAgIDs7Ci0rCSBlc2FjCi0rCWZpCi0rCWRlcGxpYnM9IiRkZXBsaWJzICRhcmciCi0rCWNv bnRpbnVlCi0rCTs7Ci0rCi0rICAgICAgLW1vZHVsZSkKLSsJbW9kdWxlPXllcwotKwljb250aW51 ZQotKwk7OwotKwotKyAgICAgICMgVHJ1NjQgVU5JWCB1c2VzIC1tb2RlbCBbYXJnXSB0byBkZXRl cm1pbmUgdGhlIGxheW91dCBvZiBDKysKLSsgICAgICAjIGNsYXNzZXMsIG5hbWUgbWFuZ2xpbmcs IGFuZCBleGNlcHRpb24gaGFuZGxpbmcuCi0rICAgICAgIyBEYXJ3aW4gdXNlcyB0aGUgLWFyY2gg ZmxhZyB0byBkZXRlcm1pbmUgb3V0cHV0IGFyY2hpdGVjdHVyZS4KLSsgICAgICAtbW9kZWx8LWFy Y2h8LWlzeXNyb290KQotKwljb21waWxlcl9mbGFncz0iJGNvbXBpbGVyX2ZsYWdzICRhcmciCi0r CWZ1bmNfYXBwZW5kIGNvbXBpbGVfY29tbWFuZCAiICRhcmciCi0rCWZ1bmNfYXBwZW5kIGZpbmFs aXplX2NvbW1hbmQgIiAkYXJnIgotKwlwcmV2PXhjb21waWxlcgotKwljb250aW51ZQotKwk7Owot KwotKyAgICAgIC1tdHwtbXRocmVhZHN8LWt0aHJlYWR8LUt0aHJlYWR8LXB0aHJlYWR8LXB0aHJl YWRzfC0tdGhyZWFkLXNhZmV8LXRocmVhZHMpCi0rCWNvbXBpbGVyX2ZsYWdzPSIkY29tcGlsZXJf ZmxhZ3MgJGFyZyIKLSsJZnVuY19hcHBlbmQgY29tcGlsZV9jb21tYW5kICIgJGFyZyIKLSsJZnVu Y19hcHBlbmQgZmluYWxpemVfY29tbWFuZCAiICRhcmciCi0rCWNhc2UgIiRuZXdfaW5oZXJpdGVk X2xpbmtlcl9mbGFncyAiIGluCi0rCSAgICAqIiAkYXJnICIqKSA7OwotKwkgICAgKiApIG5ld19p bmhlcml0ZWRfbGlua2VyX2ZsYWdzPSIkbmV3X2luaGVyaXRlZF9saW5rZXJfZmxhZ3MgJGFyZyIg OzsKLSsJZXNhYwotKwljb250aW51ZQotKwk7OwotKwotKyAgICAgIC1tdWx0aV9tb2R1bGUpCi0r CXNpbmdsZV9tb2R1bGU9IiR7d2x9LW11bHRpX21vZHVsZSIKLSsJY29udGludWUKLSsJOzsKLSsK LSsgICAgICAtbm8tZmFzdC1pbnN0YWxsKQotKwlmYXN0X2luc3RhbGw9bm8KLSsJY29udGludWUK LSsJOzsKLSsKLSsgICAgICAtbm8taW5zdGFsbCkKLSsJY2FzZSAkaG9zdCBpbgotKwkqLSotY3ln d2luKiB8ICotKi1taW5ndyogfCAqLSotcHczMiogfCAqLSotb3MyKiB8ICotKi1kYXJ3aW4qIHwg Ki1jZWdjYyopCi0rCSAgIyBUaGUgUEFUSCBoYWNrZXJ5IGluIHdyYXBwZXIgc2NyaXB0cyBpcyBy ZXF1aXJlZCBvbiBXaW5kb3dzCi0rCSAgIyBhbmQgRGFyd2luIGluIG9yZGVyIGZvciB0aGUgbG9h ZGVyIHRvIGZpbmQgYW55IGRsbHMgaXQgbmVlZHMuCi0rCSAgZnVuY193YXJuaW5nICJcYC1uby1p bnN0YWxsJyBpcyBpZ25vcmVkIGZvciAkaG9zdCIKLSsJICBmdW5jX3dhcm5pbmcgImFzc3VtaW5n IFxgLW5vLWZhc3QtaW5zdGFsbCcgaW5zdGVhZCIKLSsJICBmYXN0X2luc3RhbGw9bm8KLSsJICA7 OwotKwkqKSBub19pbnN0YWxsPXllcyA7OwotKwllc2FjCi0rCWNvbnRpbnVlCi0rCTs7Ci0rCi0r ICAgICAgLW5vLXVuZGVmaW5lZCkKLSsJYWxsb3dfdW5kZWZpbmVkPW5vCi0rCWNvbnRpbnVlCi0r CTs7Ci0rCi0rICAgICAgLW9iamVjdGxpc3QpCi0rCXByZXY9b2JqZWN0bGlzdAotKwljb250aW51 ZQotKwk7OwotKwotKyAgICAgIC1vKSBwcmV2PW91dHB1dCA7OwotKwotKyAgICAgIC1wcmVjaW91 cy1maWxlcy1yZWdleCkKLSsJcHJldj1wcmVjaW91c19yZWdleAotKwljb250aW51ZQotKwk7Owot KwotKyAgICAgIC1yZWxlYXNlKQotKwlwcmV2PXJlbGVhc2UKLSsJY29udGludWUKLSsJOzsKLSsK LSsgICAgICAtcnBhdGgpCi0rCXByZXY9cnBhdGgKLSsJY29udGludWUKLSsJOzsKLSsKLSsgICAg ICAtUikKLSsJcHJldj14cnBhdGgKLSsJY29udGludWUKLSsJOzsKLSsKLSsgICAgICAtUiopCi0r CWZ1bmNfc3RyaXBuYW1lICctUicgJycgIiRhcmciCi0rCWRpcj0kZnVuY19zdHJpcG5hbWVfcmVz dWx0Ci0rCSMgV2UgbmVlZCBhbiBhYnNvbHV0ZSBwYXRoLgotKwljYXNlICRkaXIgaW4KLSsJW1xc L10qIHwgW0EtWmEtel06W1xcL10qKSA7OwotKwkqKQotKwkgIGZ1bmNfZmF0YWxfZXJyb3IgIm9u bHkgYWJzb2x1dGUgcnVuLXBhdGhzIGFyZSBhbGxvd2VkIgotKwkgIDs7Ci0rCWVzYWMKLSsJY2Fz ZSAiJHhycGF0aCAiIGluCi0rCSoiICRkaXIgIiopIDs7Ci0rCSopIHhycGF0aD0iJHhycGF0aCAk ZGlyIiA7OwotKwllc2FjCi0rCWNvbnRpbnVlCi0rCTs7Ci0rCi0rICAgICAgLXNoYXJlZCkKLSsJ IyBUaGUgZWZmZWN0cyBvZiAtc2hhcmVkIGFyZSBkZWZpbmVkIGluIGEgcHJldmlvdXMgbG9vcC4K LSsJY29udGludWUKLSsJOzsKLSsKLSsgICAgICAtc2hyZXh0KQotKwlwcmV2PXNocmV4dAotKwlj b250aW51ZQotKwk7OwotKwotKyAgICAgIC1zdGF0aWMgfCAtc3RhdGljLWxpYnRvb2wtbGlicykK LSsJIyBUaGUgZWZmZWN0cyBvZiAtc3RhdGljIGFyZSBkZWZpbmVkIGluIGEgcHJldmlvdXMgbG9v cC4KLSsJIyBXZSB1c2VkIHRvIGRvIHRoZSBzYW1lIGFzIC1hbGwtc3RhdGljIG9uIHBsYXRmb3Jt cyB0aGF0Ci0rCSMgZGlkbid0IGhhdmUgYSBQSUMgZmxhZywgYnV0IHRoZSBhc3N1bXB0aW9uIHRo YXQgdGhlIGVmZmVjdHMKLSsJIyB3b3VsZCBiZSBlcXVpdmFsZW50IHdhcyB3cm9uZy4gIEl0IHdv dWxkIGJyZWFrIG9uIGF0IGxlYXN0Ci0rCSMgRGlnaXRhbCBVbml4IGFuZCBBSVguCi0rCWNvbnRp bnVlCi0rCTs7Ci0rCi0rICAgICAgLXRocmVhZC1zYWZlKQotKwl0aHJlYWRfc2FmZT15ZXMKLSsJ Y29udGludWUKLSsJOzsKLSsKLSsgICAgICAtdmVyc2lvbi1pbmZvKQotKwlwcmV2PXZpbmZvCi0r CWNvbnRpbnVlCi0rCTs7Ci0rCi0rICAgICAgLXZlcnNpb24tbnVtYmVyKQotKwlwcmV2PXZpbmZv Ci0rCXZpbmZvX251bWJlcj15ZXMKLSsJY29udGludWUKLSsJOzsKLSsKLSsgICAgICAtd2VhaykK LSsgICAgICAgIHByZXY9d2VhawotKwljb250aW51ZQotKwk7OwotKwotKyAgICAgIC1XYywqKQot KwlmdW5jX3N0cmlwbmFtZSAnLVdjLCcgJycgIiRhcmciCi0rCWFyZ3M9JGZ1bmNfc3RyaXBuYW1l X3Jlc3VsdAotKwlhcmc9Ci0rCXNhdmVfaWZzPSIkSUZTIjsgSUZTPScsJwotKwlmb3IgZmxhZyBp biAkYXJnczsgZG8KLSsJICBJRlM9IiRzYXZlX2lmcyIKLSsgICAgICAgICAgZnVuY19xdW90ZV9m b3JfZXZhbCAiJGZsYWciCi0rCSAgYXJnPSIkYXJnICR3bCRmdW5jX3F1b3RlX2Zvcl9ldmFsX3Jl c3VsdCIKLSsJICBjb21waWxlcl9mbGFncz0iJGNvbXBpbGVyX2ZsYWdzICRmdW5jX3F1b3RlX2Zv cl9ldmFsX3Jlc3VsdCIKLSsJZG9uZQotKwlJRlM9IiRzYXZlX2lmcyIKLSsJZnVuY19zdHJpcG5h bWUgJyAnICcnICIkYXJnIgotKwlhcmc9JGZ1bmNfc3RyaXBuYW1lX3Jlc3VsdAotKwk7OwotKwot KyAgICAgIC1XbCwqKQotKwlmdW5jX3N0cmlwbmFtZSAnLVdsLCcgJycgIiRhcmciCi0rCWFyZ3M9 JGZ1bmNfc3RyaXBuYW1lX3Jlc3VsdAotKwlhcmc9Ci0rCXNhdmVfaWZzPSIkSUZTIjsgSUZTPScs JwotKwlmb3IgZmxhZyBpbiAkYXJnczsgZG8KLSsJICBJRlM9IiRzYXZlX2lmcyIKLSsgICAgICAg ICAgZnVuY19xdW90ZV9mb3JfZXZhbCAiJGZsYWciCi0rCSAgYXJnPSIkYXJnICR3bCRmdW5jX3F1 b3RlX2Zvcl9ldmFsX3Jlc3VsdCIKLSsJICBjb21waWxlcl9mbGFncz0iJGNvbXBpbGVyX2ZsYWdz ICR3bCRmdW5jX3F1b3RlX2Zvcl9ldmFsX3Jlc3VsdCIKLSsJICBsaW5rZXJfZmxhZ3M9IiRsaW5r ZXJfZmxhZ3MgJGZ1bmNfcXVvdGVfZm9yX2V2YWxfcmVzdWx0IgotKwlkb25lCi0rCUlGUz0iJHNh dmVfaWZzIgotKwlmdW5jX3N0cmlwbmFtZSAnICcgJycgIiRhcmciCi0rCWFyZz0kZnVuY19zdHJp cG5hbWVfcmVzdWx0Ci0rCTs7Ci0rCi0rICAgICAgLVhjb21waWxlcikKLSsJcHJldj14Y29tcGls ZXIKLSsJY29udGludWUKLSsJOzsKLSsKLSsgICAgICAtWGxpbmtlcikKLSsJcHJldj14bGlua2Vy Ci0rCWNvbnRpbnVlCi0rCTs7Ci0rCi0rICAgICAgLVhDQ2xpbmtlcikKLSsJcHJldj14Y2NsaW5r ZXIKLSsJY29udGludWUKLSsJOzsKLSsKLSsgICAgICAjIC1tc2dfKiBmb3Igb3NmIGNjCi0rICAg ICAgLW1zZ18qKQotKwlmdW5jX3F1b3RlX2Zvcl9ldmFsICIkYXJnIgotKwlhcmc9IiRmdW5jX3F1 b3RlX2Zvcl9ldmFsX3Jlc3VsdCIKLSsJOzsKLSsKLSsgICAgICAjIC02NCwgLW1pcHNbMC05XSBl bmFibGUgNjQtYml0IG1vZGUgb24gdGhlIFNHSSBjb21waWxlcgotKyAgICAgICMgLXJbMC05XVsw LTldKiBzcGVjaWZpZXMgdGhlIHByb2Nlc3NvciBvbiB0aGUgU0dJIGNvbXBpbGVyCi0rICAgICAg IyAteGFyY2g9KiwgLXh0YXJnZXQ9KiBlbmFibGUgNjQtYml0IG1vZGUgb24gdGhlIFN1biBjb21w aWxlcgotKyAgICAgICMgK0RBKiwgK0REKiBlbmFibGUgNjQtYml0IG1vZGUgb24gdGhlIEhQIGNv bXBpbGVyCi0rICAgICAgIyAtcSogcGFzcyB0aHJvdWdoIGNvbXBpbGVyIGFyZ3MgZm9yIHRoZSBJ Qk0gY29tcGlsZXIKLSsgICAgICAjIC1tKiwgLXRbNDVdKiwgLXR4c2NhbGUqIHBhc3MgdGhyb3Vn aCBhcmNoaXRlY3R1cmUtc3BlY2lmaWMKLSsgICAgICAjIGNvbXBpbGVyIGFyZ3MgZm9yIEdDQwot KyAgICAgICMgLUYvcGF0aCBnaXZlcyBwYXRoIHRvIHVuaW5zdGFsbGVkIGZyYW1ld29ya3MsIGdj YyBvbiBkYXJ3aW4KLSsgICAgICAjIC1wLCAtcGcsIC0tY292ZXJhZ2UsIC1mcHJvZmlsZS0qIHBh c3MgdGhyb3VnaCBwcm9maWxpbmcgZmxhZyBmb3IgR0NDCi0rICAgICAgIyBAZmlsZSBHQ0MgcmVz cG9uc2UgZmlsZXMKLSsgICAgICAtNjR8LW1pcHNbMC05XXwtclswLTldWzAtOV0qfC14YXJjaD0q fC14dGFyZ2V0PSp8K0RBKnwrREQqfC1xKnwtbSp8IFwKLSsgICAgICAtdFs0NV0qfC10eHNjYWxl KnwtcHwtcGd8LS1jb3ZlcmFnZXwtZnByb2ZpbGUtKnwtRip8QCopCi0rICAgICAgICBmdW5jX3F1 b3RlX2Zvcl9ldmFsICIkYXJnIgotKwlhcmc9IiRmdW5jX3F1b3RlX2Zvcl9ldmFsX3Jlc3VsdCIK LSsgICAgICAgIGZ1bmNfYXBwZW5kIGNvbXBpbGVfY29tbWFuZCAiICRhcmciCi0rICAgICAgICBm dW5jX2FwcGVuZCBmaW5hbGl6ZV9jb21tYW5kICIgJGFyZyIKLSsgICAgICAgIGNvbXBpbGVyX2Zs YWdzPSIkY29tcGlsZXJfZmxhZ3MgJGFyZyIKLSsgICAgICAgIGNvbnRpbnVlCi0rICAgICAgICA7 OwotKwotKyAgICAgICMgU29tZSBvdGhlciBjb21waWxlciBmbGFnLgotKyAgICAgIC0qIHwgKyop Ci0rICAgICAgICBmdW5jX3F1b3RlX2Zvcl9ldmFsICIkYXJnIgotKwlhcmc9IiRmdW5jX3F1b3Rl X2Zvcl9ldmFsX3Jlc3VsdCIKLSsJOzsKLSsKLSsgICAgICAqLiRvYmpleHQpCi0rCSMgQSBzdGFu ZGFyZCBvYmplY3QuCi0rCW9ianM9IiRvYmpzICRhcmciCi0rCTs7Ci0rCi0rICAgICAgKi5sbykK LSsJIyBBIGxpYnRvb2wtY29udHJvbGxlZCBvYmplY3QuCi0rCi0rCSMgQ2hlY2sgdG8gc2VlIHRo YXQgdGhpcyByZWFsbHkgaXMgYSBsaWJ0b29sIG9iamVjdC4KLSsJaWYgZnVuY19sYWxpYl91bnNh ZmVfcCAiJGFyZyI7IHRoZW4KLSsJICBwaWNfb2JqZWN0PQotKwkgIG5vbl9waWNfb2JqZWN0PQot KwotKwkgICMgUmVhZCB0aGUgLmxvIGZpbGUKLSsJICBmdW5jX3NvdXJjZSAiJGFyZyIKLSsKLSsJ ICBpZiB0ZXN0IC16ICIkcGljX29iamVjdCIgfHwKLSsJICAgICB0ZXN0IC16ICIkbm9uX3BpY19v YmplY3QiIHx8Ci0rCSAgICAgdGVzdCAiJHBpY19vYmplY3QiID0gbm9uZSAmJgotKwkgICAgIHRl c3QgIiRub25fcGljX29iamVjdCIgPSBub25lOyB0aGVuCi0rCSAgICBmdW5jX2ZhdGFsX2Vycm9y ICJjYW5ub3QgZmluZCBuYW1lIG9mIG9iamVjdCBmb3IgXGAkYXJnJyIKLSsJICBmaQotKwotKwkg ICMgRXh0cmFjdCBzdWJkaXJlY3RvcnkgZnJvbSB0aGUgYXJndW1lbnQuCi0rCSAgZnVuY19kaXJu YW1lICIkYXJnIiAiLyIgIiIKLSsJICB4ZGlyPSIkZnVuY19kaXJuYW1lX3Jlc3VsdCIKLSsKLSsJ ICBpZiB0ZXN0ICIkcGljX29iamVjdCIgIT0gbm9uZTsgdGhlbgotKwkgICAgIyBQcmVwZW5kIHRo ZSBzdWJkaXJlY3RvcnkgdGhlIG9iamVjdCBpcyBmb3VuZCBpbi4KLSsJICAgIHBpY19vYmplY3Q9 IiR4ZGlyJHBpY19vYmplY3QiCi0rCi0rCSAgICBpZiB0ZXN0ICIkcHJldiIgPSBkbGZpbGVzOyB0 aGVuCi0rCSAgICAgIGlmIHRlc3QgIiRidWlsZF9saWJ0b29sX2xpYnMiID0geWVzICYmIHRlc3Qg IiRkbG9wZW5fc3VwcG9ydCIgPSB5ZXM7IHRoZW4KLSsJCWRsZmlsZXM9IiRkbGZpbGVzICRwaWNf b2JqZWN0IgotKwkJcHJldj0KLSsJCWNvbnRpbnVlCi0rCSAgICAgIGVsc2UKLSsJCSMgSWYgbGli dG9vbCBvYmplY3RzIGFyZSB1bnN1cHBvcnRlZCwgdGhlbiB3ZSBuZWVkIHRvIHByZWxvYWQuCi0r CQlwcmV2PWRscHJlZmlsZXMKLSsJICAgICAgZmkKLSsJICAgIGZpCi0rCi0rCSAgICAjIENIRUNL IE1FOiAgSSB0aGluayBJIGJ1c3RlZCB0aGlzLiAgLU9zc2FtYQotKwkgICAgaWYgdGVzdCAiJHBy ZXYiID0gZGxwcmVmaWxlczsgdGhlbgotKwkgICAgICAjIFByZWxvYWQgdGhlIG9sZC1zdHlsZSBv YmplY3QuCi0rCSAgICAgIGRscHJlZmlsZXM9IiRkbHByZWZpbGVzICRwaWNfb2JqZWN0IgotKwkg ICAgICBwcmV2PQotKwkgICAgZmkKLSsKLSsJICAgICMgQSBQSUMgb2JqZWN0LgotKwkgICAgZnVu Y19hcHBlbmQgbGlib2JqcyAiICRwaWNfb2JqZWN0IgotKwkgICAgYXJnPSIkcGljX29iamVjdCIK LSsJICBmaQotKwotKwkgICMgTm9uLVBJQyBvYmplY3QuCi0rCSAgaWYgdGVzdCAiJG5vbl9waWNf b2JqZWN0IiAhPSBub25lOyB0aGVuCi0rCSAgICAjIFByZXBlbmQgdGhlIHN1YmRpcmVjdG9yeSB0 aGUgb2JqZWN0IGlzIGZvdW5kIGluLgotKwkgICAgbm9uX3BpY19vYmplY3Q9IiR4ZGlyJG5vbl9w aWNfb2JqZWN0IgotKwotKwkgICAgIyBBIHN0YW5kYXJkIG5vbi1QSUMgb2JqZWN0Ci0rCSAgICBm dW5jX2FwcGVuZCBub25fcGljX29iamVjdHMgIiAkbm9uX3BpY19vYmplY3QiCi0rCSAgICBpZiB0 ZXN0IC16ICIkcGljX29iamVjdCIgfHwgdGVzdCAiJHBpY19vYmplY3QiID0gbm9uZSA7IHRoZW4K LSsJICAgICAgYXJnPSIkbm9uX3BpY19vYmplY3QiCi0rCSAgICBmaQotKwkgIGVsc2UKLSsJICAg ICMgSWYgdGhlIFBJQyBvYmplY3QgZXhpc3RzLCB1c2UgaXQgaW5zdGVhZC4KLSsJICAgICMgJHhk aXIgd2FzIHByZXBlbmRlZCB0byAkcGljX29iamVjdCBhYm92ZS4KLSsJICAgIG5vbl9waWNfb2Jq ZWN0PSIkcGljX29iamVjdCIKLSsJICAgIGZ1bmNfYXBwZW5kIG5vbl9waWNfb2JqZWN0cyAiICRu b25fcGljX29iamVjdCIKLSsJICBmaQotKwllbHNlCi0rCSAgIyBPbmx5IGFuIGVycm9yIGlmIG5v dCBkb2luZyBhIGRyeS1ydW4uCi0rCSAgaWYgJG9wdF9kcnlfcnVuOyB0aGVuCi0rCSAgICAjIEV4 dHJhY3Qgc3ViZGlyZWN0b3J5IGZyb20gdGhlIGFyZ3VtZW50LgotKwkgICAgZnVuY19kaXJuYW1l ICIkYXJnIiAiLyIgIiIKLSsJICAgIHhkaXI9IiRmdW5jX2Rpcm5hbWVfcmVzdWx0IgotKwotKwkg ICAgZnVuY19sbzJvICIkYXJnIgotKwkgICAgcGljX29iamVjdD0keGRpciRvYmpkaXIvJGZ1bmNf bG8yb19yZXN1bHQKLSsJICAgIG5vbl9waWNfb2JqZWN0PSR4ZGlyJGZ1bmNfbG8yb19yZXN1bHQK LSsJICAgIGZ1bmNfYXBwZW5kIGxpYm9ianMgIiAkcGljX29iamVjdCIKLSsJICAgIGZ1bmNfYXBw ZW5kIG5vbl9waWNfb2JqZWN0cyAiICRub25fcGljX29iamVjdCIKLSsJICBlbHNlCi0rCSAgICBm dW5jX2ZhdGFsX2Vycm9yICJcYCRhcmcnIGlzIG5vdCBhIHZhbGlkIGxpYnRvb2wgb2JqZWN0Igot KwkgIGZpCi0rCWZpCi0rCTs7Ci0rCi0rICAgICAgKi4kbGliZXh0KQotKwkjIEFuIGFyY2hpdmUu Ci0rCWRlcGxpYnM9IiRkZXBsaWJzICRhcmciCi0rCW9sZF9kZXBsaWJzPSIkb2xkX2RlcGxpYnMg JGFyZyIKLSsJY29udGludWUKLSsJOzsKLSsKLSsgICAgICAqLmxhKQotKwkjIEEgbGlidG9vbC1j b250cm9sbGVkIGxpYnJhcnkuCi0rCi0rCWlmIHRlc3QgIiRwcmV2IiA9IGRsZmlsZXM7IHRoZW4K LSsJICAjIFRoaXMgbGlicmFyeSB3YXMgc3BlY2lmaWVkIHdpdGggLWRsb3Blbi4KLSsJICBkbGZp bGVzPSIkZGxmaWxlcyAkYXJnIgotKwkgIHByZXY9Ci0rCWVsaWYgdGVzdCAiJHByZXYiID0gZGxw cmVmaWxlczsgdGhlbgotKwkgICMgVGhlIGxpYnJhcnkgd2FzIHNwZWNpZmllZCB3aXRoIC1kbHBy ZW9wZW4uCi0rCSAgZGxwcmVmaWxlcz0iJGRscHJlZmlsZXMgJGFyZyIKLSsJICBwcmV2PQotKwll bHNlCi0rCSAgZGVwbGlicz0iJGRlcGxpYnMgJGFyZyIKLSsJZmkKLSsJY29udGludWUKLSsJOzsK LSsKLSsgICAgICAjIFNvbWUgb3RoZXIgY29tcGlsZXIgYXJndW1lbnQuCi0rICAgICAgKikKLSsJ IyBVbmtub3duIGFyZ3VtZW50cyBpbiBib3RoIGZpbmFsaXplX2NvbW1hbmQgYW5kIGNvbXBpbGVf Y29tbWFuZCBuZWVkCi0rCSMgdG8gYmUgYWVzdGhldGljYWxseSBxdW90ZWQgYmVjYXVzZSB0aGV5 IGFyZSBldmFsZWQgbGF0ZXIuCi0rCWZ1bmNfcXVvdGVfZm9yX2V2YWwgIiRhcmciCi0rCWFyZz0i JGZ1bmNfcXVvdGVfZm9yX2V2YWxfcmVzdWx0IgotKwk7OwotKyAgICAgIGVzYWMgIyBhcmcKLSsK LSsgICAgICAjIE5vdyBhY3R1YWxseSBzdWJzdGl0dXRlIHRoZSBhcmd1bWVudCBpbnRvIHRoZSBj b21tYW5kcy4KLSsgICAgICBpZiB0ZXN0IC1uICIkYXJnIjsgdGhlbgotKwlmdW5jX2FwcGVuZCBj b21waWxlX2NvbW1hbmQgIiAkYXJnIgotKwlmdW5jX2FwcGVuZCBmaW5hbGl6ZV9jb21tYW5kICIg JGFyZyIKLSsgICAgICBmaQotKyAgICBkb25lICMgYXJndW1lbnQgcGFyc2luZyBsb29wCi0rCi0r ICAgIHRlc3QgLW4gIiRwcmV2IiAmJiBcCi0rICAgICAgZnVuY19mYXRhbF9oZWxwICJ0aGUgXGAk cHJldmFyZycgb3B0aW9uIHJlcXVpcmVzIGFuIGFyZ3VtZW50IgotKwotKyAgICBpZiB0ZXN0ICIk ZXhwb3J0X2R5bmFtaWMiID0geWVzICYmIHRlc3QgLW4gIiRleHBvcnRfZHluYW1pY19mbGFnX3Nw ZWMiOyB0aGVuCi0rICAgICAgZXZhbCBhcmc9XCIkZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjXCIK LSsgICAgICBmdW5jX2FwcGVuZCBjb21waWxlX2NvbW1hbmQgIiAkYXJnIgotKyAgICAgIGZ1bmNf YXBwZW5kIGZpbmFsaXplX2NvbW1hbmQgIiAkYXJnIgotKyAgICBmaQotKwotKyAgICBvbGRsaWJz PQotKyAgICAjIGNhbGN1bGF0ZSB0aGUgbmFtZSBvZiB0aGUgZmlsZSwgd2l0aG91dCBpdHMgZGly ZWN0b3J5Ci0rICAgIGZ1bmNfYmFzZW5hbWUgIiRvdXRwdXQiCi0rICAgIG91dHB1dG5hbWU9IiRm dW5jX2Jhc2VuYW1lX3Jlc3VsdCIKLSsgICAgbGlib2Jqc19zYXZlPSIkbGlib2JqcyIKLSsKLSsg ICAgaWYgdGVzdCAtbiAiJHNobGlicGF0aF92YXIiOyB0aGVuCi0rICAgICAgIyBnZXQgdGhlIGRp cmVjdG9yaWVzIGxpc3RlZCBpbiAkc2hsaWJwYXRoX3ZhcgotKyAgICAgIGV2YWwgc2hsaWJfc2Vh cmNoX3BhdGg9XGBcJEVDSE8gXCJYXCR7JHNobGlicGF0aF92YXJ9XCIgXHwgXCRYc2VkIC1lIFwn cy86LyAvZ1wnXGAKLSsgICAgZWxzZQotKyAgICAgIHNobGliX3NlYXJjaF9wYXRoPQotKyAgICBm aQotKyAgICBldmFsIHN5c19saWJfc2VhcmNoX3BhdGg9XCIkc3lzX2xpYl9zZWFyY2hfcGF0aF9z cGVjXCIKLSsgICAgZXZhbCBzeXNfbGliX2Rsc2VhcmNoX3BhdGg9XCIkc3lzX2xpYl9kbHNlYXJj aF9wYXRoX3NwZWNcIgotKwotKyAgICBmdW5jX2Rpcm5hbWUgIiRvdXRwdXQiICIvIiAiIgotKyAg ICBvdXRwdXRfb2JqZGlyPSIkZnVuY19kaXJuYW1lX3Jlc3VsdCRvYmpkaXIiCi0rICAgICMgQ3Jl YXRlIHRoZSBvYmplY3QgZGlyZWN0b3J5LgotKyAgICBmdW5jX21rZGlyX3AgIiRvdXRwdXRfb2Jq ZGlyIgotKwotKyAgICAjIERldGVybWluZSB0aGUgdHlwZSBvZiBvdXRwdXQKLSsgICAgY2FzZSAk b3V0cHV0IGluCi0rICAgICIiKQotKyAgICAgIGZ1bmNfZmF0YWxfaGVscCAieW91IG11c3Qgc3Bl Y2lmeSBhbiBvdXRwdXQgZmlsZSIKLSsgICAgICA7OwotKyAgICAqLiRsaWJleHQpIGxpbmttb2Rl PW9sZGxpYiA7OwotKyAgICAqLmxvIHwgKi4kb2JqZXh0KSBsaW5rbW9kZT1vYmogOzsKLSsgICAg Ki5sYSkgbGlua21vZGU9bGliIDs7Ci0rICAgICopIGxpbmttb2RlPXByb2cgOzsgIyBBbnl0aGlu ZyBlbHNlIHNob3VsZCBiZSBhIHByb2dyYW0uCi0rICAgIGVzYWMKLSsKLSsgICAgc3BlY2lhbGRl cGxpYnM9Ci0rCi0rICAgIGxpYnM9Ci0rICAgICMgRmluZCBhbGwgaW50ZXJkZXBlbmRlbnQgZGVw bGlicyBieSBzZWFyY2hpbmcgZm9yIGxpYnJhcmllcwotKyAgICAjIHRoYXQgYXJlIGxpbmtlZCBt b3JlIHRoYW4gb25jZSAoZS5nLiAtbGEgLWxiIC1sYSkKLSsgICAgZm9yIGRlcGxpYiBpbiAkZGVw bGliczsgZG8KLSsgICAgICBpZiAkb3B0X2R1cGxpY2F0ZV9kZXBzIDsgdGhlbgotKwljYXNlICIk bGlicyAiIGluCi0rCSoiICRkZXBsaWIgIiopIHNwZWNpYWxkZXBsaWJzPSIkc3BlY2lhbGRlcGxp YnMgJGRlcGxpYiIgOzsKLSsJZXNhYwotKyAgICAgIGZpCi0rICAgICAgbGlicz0iJGxpYnMgJGRl cGxpYiIKLSsgICAgZG9uZQotKwotKyAgICBpZiB0ZXN0ICIkbGlua21vZGUiID0gbGliOyB0aGVu Ci0rICAgICAgbGlicz0iJHByZWRlcHMgJGxpYnMgJGNvbXBpbGVyX2xpYl9zZWFyY2hfcGF0aCAk cG9zdGRlcHMiCi0rCi0rICAgICAgIyBDb21wdXRlIGxpYnJhcmllcyB0aGF0IGFyZSBsaXN0ZWQg bW9yZSB0aGFuIG9uY2UgaW4gJHByZWRlcHMKLSsgICAgICAjICRwb3N0ZGVwcyBhbmQgbWFyayB0 aGVtIGFzIHNwZWNpYWwgKGkuZS4sIHdob3NlIGR1cGxpY2F0ZXMgYXJlCi0rICAgICAgIyBub3Qg dG8gYmUgZWxpbWluYXRlZCkuCi0rICAgICAgcHJlX3Bvc3RfZGVwcz0KLSsgICAgICBpZiAkb3B0 X2R1cGxpY2F0ZV9jb21waWxlcl9nZW5lcmF0ZWRfZGVwczsgdGhlbgotKwlmb3IgcHJlX3Bvc3Rf ZGVwIGluICRwcmVkZXBzICRwb3N0ZGVwczsgZG8KLSsJICBjYXNlICIkcHJlX3Bvc3RfZGVwcyAi IGluCi0rCSAgKiIgJHByZV9wb3N0X2RlcCAiKikgc3BlY2lhbGRlcGxpYnM9IiRzcGVjaWFsZGVw bGlicyAkcHJlX3Bvc3RfZGVwcyIgOzsKLSsJICBlc2FjCi0rCSAgcHJlX3Bvc3RfZGVwcz0iJHBy ZV9wb3N0X2RlcHMgJHByZV9wb3N0X2RlcCIKLSsJZG9uZQotKyAgICAgIGZpCi0rICAgICAgcHJl X3Bvc3RfZGVwcz0KLSsgICAgZmkKLSsKLSsgICAgZGVwbGlicz0KLSsgICAgbmV3ZGVwZW5kZW5j eV9saWJzPQotKyAgICBuZXdsaWJfc2VhcmNoX3BhdGg9Ci0rICAgIG5lZWRfcmVsaW5rPW5vICMg d2hldGhlciB3ZSdyZSBsaW5raW5nIGFueSB1bmluc3RhbGxlZCBsaWJ0b29sIGxpYnJhcmllcwot KyAgICBub3RpbnN0X2RlcGxpYnM9ICMgbm90LWluc3RhbGxlZCBsaWJ0b29sIGxpYnJhcmllcwot KyAgICBub3RpbnN0X3BhdGg9ICMgcGF0aHMgdGhhdCBjb250YWluIG5vdC1pbnN0YWxsZWQgbGli dG9vbCBsaWJyYXJpZXMKLSsKLSsgICAgY2FzZSAkbGlua21vZGUgaW4KLSsgICAgbGliKQotKwlw YXNzZXM9ImNvbnYgZGxwcmVvcGVuIGxpbmsiCi0rCWZvciBmaWxlIGluICRkbGZpbGVzICRkbHBy ZWZpbGVzOyBkbwotKwkgIGNhc2UgJGZpbGUgaW4KLSsJICAqLmxhKSA7OwotKwkgICopCi0rCSAg ICBmdW5jX2ZhdGFsX2hlbHAgImxpYnJhcmllcyBjYW4gXGAtZGxvcGVuJyBvbmx5IGxpYnRvb2wg bGlicmFyaWVzOiAkZmlsZSIKLSsJICAgIDs7Ci0rCSAgZXNhYwotKwlkb25lCi0rCTs7Ci0rICAg IHByb2cpCi0rCWNvbXBpbGVfZGVwbGlicz0KLSsJZmluYWxpemVfZGVwbGlicz0KLSsJYWxsZGVw bGlicz1ubwotKwluZXdkbGZpbGVzPQotKwluZXdkbHByZWZpbGVzPQotKwlwYXNzZXM9ImNvbnYg c2NhbiBkbG9wZW4gZGxwcmVvcGVuIGxpbmsiCi0rCTs7Ci0rICAgICopICBwYXNzZXM9ImNvbnYi Ci0rCTs7Ci0rICAgIGVzYWMKLSsKLSsgICAgZm9yIHBhc3MgaW4gJHBhc3NlczsgZG8KLSsgICAg ICAjIFRoZSBwcmVvcGVuIHBhc3MgaW4gbGliIG1vZGUgcmV2ZXJzZXMgJGRlcGxpYnM7IHB1dCBp dCBiYWNrIGhlcmUKLSsgICAgICAjIHNvIHRoYXQgLUwgY29tZXMgYmVmb3JlIGxpYnMgdGhhdCBu ZWVkIGl0IGZvciBpbnN0YW5jZS4uLgotKyAgICAgIGlmIHRlc3QgIiRsaW5rbW9kZSwkcGFzcyIg PSAibGliLGxpbmsiOyB0aGVuCi0rCSMjIEZJWE1FOiBGaW5kIHRoZSBwbGFjZSB3aGVyZSB0aGUg bGlzdCBpcyByZWJ1aWx0IGluIHRoZSB3cm9uZwotKwkjIyAgICAgICAgb3JkZXIsIGFuZCBmaXgg aXQgdGhlcmUgcHJvcGVybHkKLSsgICAgICAgIHRtcF9kZXBsaWJzPQotKwlmb3IgZGVwbGliIGlu ICRkZXBsaWJzOyBkbwotKwkgIHRtcF9kZXBsaWJzPSIkZGVwbGliICR0bXBfZGVwbGlicyIKLSsJ ZG9uZQotKwlkZXBsaWJzPSIkdG1wX2RlcGxpYnMiCi0rICAgICAgZmkKLSsKLSsgICAgICBpZiB0 ZXN0ICIkbGlua21vZGUsJHBhc3MiID0gImxpYixsaW5rIiB8fAotKwkgdGVzdCAiJGxpbmttb2Rl LCRwYXNzIiA9ICJwcm9nLHNjYW4iOyB0aGVuCi0rCWxpYnM9IiRkZXBsaWJzIgotKwlkZXBsaWJz PQotKyAgICAgIGZpCi0rICAgICAgaWYgdGVzdCAiJGxpbmttb2RlIiA9IHByb2c7IHRoZW4KLSsJ Y2FzZSAkcGFzcyBpbgotKwlkbG9wZW4pIGxpYnM9IiRkbGZpbGVzIiA7OwotKwlkbHByZW9wZW4p IGxpYnM9IiRkbHByZWZpbGVzIiA7OwotKwlsaW5rKSBsaWJzPSIkZGVwbGlicyAlREVQTElCUyUg JGRlcGVuZGVuY3lfbGlicyIgOzsKLSsJZXNhYwotKyAgICAgIGZpCi0rICAgICAgaWYgdGVzdCAi JGxpbmttb2RlLCRwYXNzIiA9ICJsaWIsZGxwcmVvcGVuIjsgdGhlbgotKwkjIENvbGxlY3QgYW5k IGZvcndhcmQgZGVwbGlicyBvZiBwcmVvcGVuZWQgbGlidG9vbCBsaWJzCi0rCWZvciBsaWIgaW4g JGRscHJlZmlsZXM7IGRvCi0rCSAgIyBJZ25vcmUgbm9uLWxpYnRvb2wtbGlicwotKwkgIGRlcGVu ZGVuY3lfbGlicz0KLSsJICBjYXNlICRsaWIgaW4KLSsJICAqLmxhKQlmdW5jX3NvdXJjZSAiJGxp YiIgOzsKLSsJICBlc2FjCi0rCi0rCSAgIyBDb2xsZWN0IHByZW9wZW5lZCBsaWJ0b29sIGRlcGxp YnMsIGV4Y2VwdCBhbnkgdGhpcyBsaWJyYXJ5Ci0rCSAgIyBoYXMgZGVjbGFyZWQgYXMgd2VhayBs aWJzCi0rCSAgZm9yIGRlcGxpYiBpbiAkZGVwZW5kZW5jeV9saWJzOyBkbwotKyAgICAgICAgICAg IGRlcGxpYl9iYXNlPWAkRUNITyAiWCRkZXBsaWIiIHwgJFhzZWQgLWUgIiRiYXNlbmFtZSJgCi0r CSAgICBjYXNlICIgJHdlYWtfbGlicyAiIGluCi0rCSAgICAqIiAkZGVwbGliX2Jhc2UgIiopIDs7 Ci0rCSAgICAqKSBkZXBsaWJzPSIkZGVwbGlicyAkZGVwbGliIiA7OwotKwkgICAgZXNhYwotKwkg IGRvbmUKLSsJZG9uZQotKwlsaWJzPSIkZGxwcmVmaWxlcyIKLSsgICAgICBmaQotKyAgICAgIGlm IHRlc3QgIiRwYXNzIiA9IGRsb3BlbjsgdGhlbgotKwkjIENvbGxlY3QgZGxwcmVvcGVuZWQgbGli cmFyaWVzCi0rCXNhdmVfZGVwbGlicz0iJGRlcGxpYnMiCi0rCWRlcGxpYnM9Ci0rICAgICAgZmkK LSsKLSsgICAgICBmb3IgZGVwbGliIGluICRsaWJzOyBkbwotKwlsaWI9Ci0rCWZvdW5kPW5vCi0r CWNhc2UgJGRlcGxpYiBpbgotKwktbXR8LW10aHJlYWRzfC1rdGhyZWFkfC1LdGhyZWFkfC1wdGhy ZWFkfC1wdGhyZWFkc3wtLXRocmVhZC1zYWZlfC10aHJlYWRzKQotKwkgIGlmIHRlc3QgIiRsaW5r bW9kZSwkcGFzcyIgPSAicHJvZyxsaW5rIjsgdGhlbgotKwkgICAgY29tcGlsZV9kZXBsaWJzPSIk ZGVwbGliICRjb21waWxlX2RlcGxpYnMiCi0rCSAgICBmaW5hbGl6ZV9kZXBsaWJzPSIkZGVwbGli ICRmaW5hbGl6ZV9kZXBsaWJzIgotKwkgIGVsc2UKLSsJICAgIGNvbXBpbGVyX2ZsYWdzPSIkY29t cGlsZXJfZmxhZ3MgJGRlcGxpYiIKLSsJICAgIGlmIHRlc3QgIiRsaW5rbW9kZSIgPSBsaWIgOyB0 aGVuCi0rCQljYXNlICIkbmV3X2luaGVyaXRlZF9saW5rZXJfZmxhZ3MgIiBpbgotKwkJICAgICoi ICRkZXBsaWIgIiopIDs7Ci0rCQkgICAgKiApIG5ld19pbmhlcml0ZWRfbGlua2VyX2ZsYWdzPSIk bmV3X2luaGVyaXRlZF9saW5rZXJfZmxhZ3MgJGRlcGxpYiIgOzsKLSsJCWVzYWMKLSsJICAgIGZp Ci0rCSAgZmkKLSsJICBjb250aW51ZQotKwkgIDs7Ci0rCS1sKikKLSsJICBpZiB0ZXN0ICIkbGlu a21vZGUiICE9IGxpYiAmJiB0ZXN0ICIkbGlua21vZGUiICE9IHByb2c7IHRoZW4KLSsJICAgIGZ1 bmNfd2FybmluZyAiXGAtbCcgaXMgaWdub3JlZCBmb3IgYXJjaGl2ZXMvb2JqZWN0cyIKLSsJICAg IGNvbnRpbnVlCi0rCSAgZmkKLSsJICBmdW5jX3N0cmlwbmFtZSAnLWwnICcnICIkZGVwbGliIgot KwkgIG5hbWU9JGZ1bmNfc3RyaXBuYW1lX3Jlc3VsdAotKwkgIGlmIHRlc3QgIiRsaW5rbW9kZSIg PSBsaWI7IHRoZW4KLSsJICAgIHNlYXJjaGRpcnM9IiRuZXdsaWJfc2VhcmNoX3BhdGggJGxpYl9z ZWFyY2hfcGF0aCAkY29tcGlsZXJfbGliX3NlYXJjaF9kaXJzICRzeXNfbGliX3NlYXJjaF9wYXRo ICRzaGxpYl9zZWFyY2hfcGF0aCIKLSsJICBlbHNlCi0rCSAgICBzZWFyY2hkaXJzPSIkbmV3bGli X3NlYXJjaF9wYXRoICRsaWJfc2VhcmNoX3BhdGggJHN5c19saWJfc2VhcmNoX3BhdGggJHNobGli X3NlYXJjaF9wYXRoIgotKwkgIGZpCi0rCSAgZm9yIHNlYXJjaGRpciBpbiAkc2VhcmNoZGlyczsg ZG8KLSsJICAgIGZvciBzZWFyY2hfZXh0IGluIC5sYSAkc3RkX3NocmV4dCAuc28gLmE7IGRvCi0r CSAgICAgICMgU2VhcmNoIHRoZSBsaWJ0b29sIGxpYnJhcnkKLSsJICAgICAgbGliPSIkc2VhcmNo ZGlyL2xpYiR7bmFtZX0ke3NlYXJjaF9leHR9IgotKwkgICAgICBpZiB0ZXN0IC1mICIkbGliIjsg dGhlbgotKwkJaWYgdGVzdCAiJHNlYXJjaF9leHQiID0gIi5sYSI7IHRoZW4KLSsJCSAgZm91bmQ9 eWVzCi0rCQllbHNlCi0rCQkgIGZvdW5kPW5vCi0rCQlmaQotKwkJYnJlYWsgMgotKwkgICAgICBm aQotKwkgICAgZG9uZQotKwkgIGRvbmUKLSsJICBpZiB0ZXN0ICIkZm91bmQiICE9IHllczsgdGhl bgotKwkgICAgIyBkZXBsaWIgZG9lc24ndCBzZWVtIHRvIGJlIGEgbGlidG9vbCBsaWJyYXJ5Ci0r CSAgICBpZiB0ZXN0ICIkbGlua21vZGUsJHBhc3MiID0gInByb2csbGluayI7IHRoZW4KLSsJICAg ICAgY29tcGlsZV9kZXBsaWJzPSIkZGVwbGliICRjb21waWxlX2RlcGxpYnMiCi0rCSAgICAgIGZp bmFsaXplX2RlcGxpYnM9IiRkZXBsaWIgJGZpbmFsaXplX2RlcGxpYnMiCi0rCSAgICBlbHNlCi0r CSAgICAgIGRlcGxpYnM9IiRkZXBsaWIgJGRlcGxpYnMiCi0rCSAgICAgIHRlc3QgIiRsaW5rbW9k ZSIgPSBsaWIgJiYgbmV3ZGVwZW5kZW5jeV9saWJzPSIkZGVwbGliICRuZXdkZXBlbmRlbmN5X2xp YnMiCi0rCSAgICBmaQotKwkgICAgY29udGludWUKLSsJICBlbHNlICMgZGVwbGliIGlzIGEgbGli dG9vbCBsaWJyYXJ5Ci0rCSAgICAjIElmICRhbGxvd19saWJ0b29sX2xpYnNfd2l0aF9zdGF0aWNf cnVudGltZXMgJiYgJGRlcGxpYiBpcyBhIHN0ZGxpYiwKLSsJICAgICMgV2UgbmVlZCB0byBkbyBz b21lIHNwZWNpYWwgdGhpbmdzIGhlcmUsIGFuZCBub3QgbGF0ZXIuCi0rCSAgICBpZiB0ZXN0ICJY JGFsbG93X2xpYnRvb2xfbGlic193aXRoX3N0YXRpY19ydW50aW1lcyIgPSAiWHllcyIgOyB0aGVu Ci0rCSAgICAgIGNhc2UgIiAkcHJlZGVwcyAkcG9zdGRlcHMgIiBpbgotKwkgICAgICAqIiAkZGVw bGliICIqKQotKwkJaWYgZnVuY19sYWxpYl9wICIkbGliIjsgdGhlbgotKwkJICBsaWJyYXJ5X25h bWVzPQotKwkJICBvbGRfbGlicmFyeT0KLSsJCSAgZnVuY19zb3VyY2UgIiRsaWIiCi0rCQkgIGZv ciBsIGluICRvbGRfbGlicmFyeSAkbGlicmFyeV9uYW1lczsgZG8KLSsJCSAgICBsbD0iJGwiCi0r CQkgIGRvbmUKLSsJCSAgaWYgdGVzdCAiWCRsbCIgPSAiWCRvbGRfbGlicmFyeSIgOyB0aGVuICMg b25seSBzdGF0aWMgdmVyc2lvbiBhdmFpbGFibGUKLSsJCSAgICBmb3VuZD1ubwotKwkJICAgIGZ1 bmNfZGlybmFtZSAiJGxpYiIgIiIgIi4iCi0rCQkgICAgbGFkaXI9IiRmdW5jX2Rpcm5hbWVfcmVz dWx0IgotKwkJICAgIGxpYj0kbGFkaXIvJG9sZF9saWJyYXJ5Ci0rCQkgICAgaWYgdGVzdCAiJGxp bmttb2RlLCRwYXNzIiA9ICJwcm9nLGxpbmsiOyB0aGVuCi0rCQkgICAgICBjb21waWxlX2RlcGxp YnM9IiRkZXBsaWIgJGNvbXBpbGVfZGVwbGlicyIKLSsJCSAgICAgIGZpbmFsaXplX2RlcGxpYnM9 IiRkZXBsaWIgJGZpbmFsaXplX2RlcGxpYnMiCi0rCQkgICAgZWxzZQotKwkJICAgICAgZGVwbGli cz0iJGRlcGxpYiAkZGVwbGlicyIKLSsJCSAgICAgIHRlc3QgIiRsaW5rbW9kZSIgPSBsaWIgJiYg bmV3ZGVwZW5kZW5jeV9saWJzPSIkZGVwbGliICRuZXdkZXBlbmRlbmN5X2xpYnMiCi0rCQkgICAg ZmkKLSsJCSAgICBjb250aW51ZQotKwkJICBmaQotKwkJZmkKLSsJCTs7Ci0rCSAgICAgICopIDs7 Ci0rCSAgICAgIGVzYWMKLSsJICAgIGZpCi0rCSAgZmkKLSsJICA7OyAjIC1sCi0rCSoubHRmcmFt ZXdvcmspCi0rCSAgaWYgdGVzdCAiJGxpbmttb2RlLCRwYXNzIiA9ICJwcm9nLGxpbmsiOyB0aGVu Ci0rCSAgICBjb21waWxlX2RlcGxpYnM9IiRkZXBsaWIgJGNvbXBpbGVfZGVwbGlicyIKLSsJICAg IGZpbmFsaXplX2RlcGxpYnM9IiRkZXBsaWIgJGZpbmFsaXplX2RlcGxpYnMiCi0rCSAgZWxzZQot KwkgICAgZGVwbGlicz0iJGRlcGxpYiAkZGVwbGlicyIKLSsJICAgIGlmIHRlc3QgIiRsaW5rbW9k ZSIgPSBsaWIgOyB0aGVuCi0rCQljYXNlICIkbmV3X2luaGVyaXRlZF9saW5rZXJfZmxhZ3MgIiBp bgotKwkJICAgICoiICRkZXBsaWIgIiopIDs7Ci0rCQkgICAgKiApIG5ld19pbmhlcml0ZWRfbGlu a2VyX2ZsYWdzPSIkbmV3X2luaGVyaXRlZF9saW5rZXJfZmxhZ3MgJGRlcGxpYiIgOzsKLSsJCWVz YWMKLSsJICAgIGZpCi0rCSAgZmkKLSsJICBjb250aW51ZQotKwkgIDs7Ci0rCS1MKikKLSsJICBj YXNlICRsaW5rbW9kZSBpbgotKwkgIGxpYikKLSsJICAgIGRlcGxpYnM9IiRkZXBsaWIgJGRlcGxp YnMiCi0rCSAgICB0ZXN0ICIkcGFzcyIgPSBjb252ICYmIGNvbnRpbnVlCi0rCSAgICBuZXdkZXBl bmRlbmN5X2xpYnM9IiRkZXBsaWIgJG5ld2RlcGVuZGVuY3lfbGlicyIKLSsJICAgIGZ1bmNfc3Ry aXBuYW1lICctTCcgJycgIiRkZXBsaWIiCi0rCSAgICBuZXdsaWJfc2VhcmNoX3BhdGg9IiRuZXds aWJfc2VhcmNoX3BhdGggJGZ1bmNfc3RyaXBuYW1lX3Jlc3VsdCIKLSsJICAgIDs7Ci0rCSAgcHJv ZykKLSsJICAgIGlmIHRlc3QgIiRwYXNzIiA9IGNvbnY7IHRoZW4KLSsJICAgICAgZGVwbGlicz0i JGRlcGxpYiAkZGVwbGlicyIKLSsJICAgICAgY29udGludWUKLSsJICAgIGZpCi0rCSAgICBpZiB0 ZXN0ICIkcGFzcyIgPSBzY2FuOyB0aGVuCi0rCSAgICAgIGRlcGxpYnM9IiRkZXBsaWIgJGRlcGxp YnMiCi0rCSAgICBlbHNlCi0rCSAgICAgIGNvbXBpbGVfZGVwbGlicz0iJGRlcGxpYiAkY29tcGls ZV9kZXBsaWJzIgotKwkgICAgICBmaW5hbGl6ZV9kZXBsaWJzPSIkZGVwbGliICRmaW5hbGl6ZV9k ZXBsaWJzIgotKwkgICAgZmkKLSsJICAgIGZ1bmNfc3RyaXBuYW1lICctTCcgJycgIiRkZXBsaWIi Ci0rCSAgICBuZXdsaWJfc2VhcmNoX3BhdGg9IiRuZXdsaWJfc2VhcmNoX3BhdGggJGZ1bmNfc3Ry aXBuYW1lX3Jlc3VsdCIKLSsJICAgIDs7Ci0rCSAgKikKLSsJICAgIGZ1bmNfd2FybmluZyAiXGAt TCcgaXMgaWdub3JlZCBmb3IgYXJjaGl2ZXMvb2JqZWN0cyIKLSsJICAgIDs7Ci0rCSAgZXNhYyAj IGxpbmttb2RlCi0rCSAgY29udGludWUKLSsJICA7OyAjIC1MCi0rCS1SKikKLSsJICBpZiB0ZXN0 ICIkcGFzcyIgPSBsaW5rOyB0aGVuCi0rCSAgICBmdW5jX3N0cmlwbmFtZSAnLVInICcnICIkZGVw bGliIgotKwkgICAgZGlyPSRmdW5jX3N0cmlwbmFtZV9yZXN1bHQKLSsJICAgICMgTWFrZSBzdXJl IHRoZSB4cnBhdGggY29udGFpbnMgb25seSB1bmlxdWUgZGlyZWN0b3JpZXMuCi0rCSAgICBjYXNl ICIkeHJwYXRoICIgaW4KLSsJICAgICoiICRkaXIgIiopIDs7Ci0rCSAgICAqKSB4cnBhdGg9IiR4 cnBhdGggJGRpciIgOzsKLSsJICAgIGVzYWMKLSsJICBmaQotKwkgIGRlcGxpYnM9IiRkZXBsaWIg JGRlcGxpYnMiCi0rCSAgY29udGludWUKLSsJICA7OwotKwkqLmxhKSBsaWI9IiRkZXBsaWIiIDs7 Ci0rCSouJGxpYmV4dCkKLSsJICBpZiB0ZXN0ICIkcGFzcyIgPSBjb252OyB0aGVuCi0rCSAgICBk ZXBsaWJzPSIkZGVwbGliICRkZXBsaWJzIgotKwkgICAgY29udGludWUKLSsJICBmaQotKwkgIGNh c2UgJGxpbmttb2RlIGluCi0rCSAgbGliKQotKwkgICAgIyBMaW5raW5nIGNvbnZlbmllbmNlIG1v ZHVsZXMgaW50byBzaGFyZWQgbGlicmFyaWVzIGlzIGFsbG93ZWQsCi0rCSAgICAjIGJ1dCBsaW5r aW5nIG90aGVyIHN0YXRpYyBsaWJyYXJpZXMgaXMgbm9uLXBvcnRhYmxlLgotKwkgICAgY2FzZSAi ICRkbHByZWNvbnZlbmllbmNlbGlicyAiIGluCi0rCSAgICAqIiAkZGVwbGliICIqKSA7OwotKwkg ICAgKikKLSsJICAgICAgdmFsaWRfYV9saWI9bm8KLSsJICAgICAgY2FzZSAkZGVwbGlic19jaGVj a19tZXRob2QgaW4KLSsJCW1hdGNoX3BhdHRlcm4qKQotKwkJICBzZXQgZHVtbXkgJGRlcGxpYnNf Y2hlY2tfbWV0aG9kOyBzaGlmdAotKwkJICBtYXRjaF9wYXR0ZXJuX3JlZ2V4PWBleHByICIkZGVw bGlic19jaGVja19tZXRob2QiIDogIiQxIFwoLipcKSJgCi0rCQkgIGlmIGV2YWwgIlwkRUNITyBc IlgkZGVwbGliXCIiIDI+L2Rldi9udWxsIHwgJFhzZWQgLWUgMTBxIFwKLSsJCSAgICB8ICRFR1JF UCAiJG1hdGNoX3BhdHRlcm5fcmVnZXgiID4gL2Rldi9udWxsOyB0aGVuCi0rCQkgICAgdmFsaWRf YV9saWI9eWVzCi0rCQkgIGZpCi0rCQk7OwotKwkJcGFzc19hbGwpCi0rCQkgIHZhbGlkX2FfbGli PXllcwotKwkJOzsKLSsJICAgICAgZXNhYwotKwkgICAgICBpZiB0ZXN0ICIkdmFsaWRfYV9saWIi ICE9IHllczsgdGhlbgotKwkJJEVDSE8KLSsJCSRFQ0hPICIqKiogV2FybmluZzogVHJ5aW5nIHRv IGxpbmsgd2l0aCBzdGF0aWMgbGliIGFyY2hpdmUgJGRlcGxpYi4iCi0rCQkkRUNITyAiKioqIEkg aGF2ZSB0aGUgY2FwYWJpbGl0eSB0byBtYWtlIHRoYXQgbGlicmFyeSBhdXRvbWF0aWNhbGx5IGxp bmsgaW4gd2hlbiIKLSsJCSRFQ0hPICIqKiogeW91IGxpbmsgdG8gdGhpcyBsaWJyYXJ5LiAgQnV0 IEkgY2FuIG9ubHkgZG8gdGhpcyBpZiB5b3UgaGF2ZSBhIgotKwkJJEVDSE8gIioqKiBzaGFyZWQg dmVyc2lvbiBvZiB0aGUgbGlicmFyeSwgd2hpY2ggeW91IGRvIG5vdCBhcHBlYXIgdG8gaGF2ZSIK LSsJCSRFQ0hPICIqKiogYmVjYXVzZSB0aGUgZmlsZSBleHRlbnNpb25zIC4kbGliZXh0IG9mIHRo aXMgYXJndW1lbnQgbWFrZXMgbWUgYmVsaWV2ZSIKLSsJCSRFQ0hPICIqKiogdGhhdCBpdCBpcyBq dXN0IGEgc3RhdGljIGFyY2hpdmUgdGhhdCBJIHNob3VsZCBub3QgdXNlIGhlcmUuIgotKwkgICAg ICBlbHNlCi0rCQkkRUNITwotKwkJJEVDSE8gIioqKiBXYXJuaW5nOiBMaW5raW5nIHRoZSBzaGFy ZWQgbGlicmFyeSAkb3V0cHV0IGFnYWluc3QgdGhlIgotKwkJJEVDSE8gIioqKiBzdGF0aWMgbGli cmFyeSAkZGVwbGliIGlzIG5vdCBwb3J0YWJsZSEiCi0rCQlkZXBsaWJzPSIkZGVwbGliICRkZXBs aWJzIgotKwkgICAgICBmaQotKwkgICAgICA7OwotKwkgICAgZXNhYwotKwkgICAgY29udGludWUK LSsJICAgIDs7Ci0rCSAgcHJvZykKLSsJICAgIGlmIHRlc3QgIiRwYXNzIiAhPSBsaW5rOyB0aGVu Ci0rCSAgICAgIGRlcGxpYnM9IiRkZXBsaWIgJGRlcGxpYnMiCi0rCSAgICBlbHNlCi0rCSAgICAg IGNvbXBpbGVfZGVwbGlicz0iJGRlcGxpYiAkY29tcGlsZV9kZXBsaWJzIgotKwkgICAgICBmaW5h bGl6ZV9kZXBsaWJzPSIkZGVwbGliICRmaW5hbGl6ZV9kZXBsaWJzIgotKwkgICAgZmkKLSsJICAg IGNvbnRpbnVlCi0rCSAgICA7OwotKwkgIGVzYWMgIyBsaW5rbW9kZQotKwkgIDs7ICMgKi4kbGli ZXh0Ci0rCSoubG8gfCAqLiRvYmpleHQpCi0rCSAgaWYgdGVzdCAiJHBhc3MiID0gY29udjsgdGhl bgotKwkgICAgZGVwbGlicz0iJGRlcGxpYiAkZGVwbGlicyIKLSsJICBlbGlmIHRlc3QgIiRsaW5r bW9kZSIgPSBwcm9nOyB0aGVuCi0rCSAgICBpZiB0ZXN0ICIkcGFzcyIgPSBkbHByZW9wZW4gfHwg dGVzdCAiJGRsb3Blbl9zdXBwb3J0IiAhPSB5ZXMgfHwgdGVzdCAiJGJ1aWxkX2xpYnRvb2xfbGli cyIgPSBubzsgdGhlbgotKwkgICAgICAjIElmIHRoZXJlIGlzIG5vIGRsb3BlbiBzdXBwb3J0IG9y IHdlJ3JlIGxpbmtpbmcgc3RhdGljYWxseSwKLSsJICAgICAgIyB3ZSBuZWVkIHRvIHByZWxvYWQu Ci0rCSAgICAgIG5ld2RscHJlZmlsZXM9IiRuZXdkbHByZWZpbGVzICRkZXBsaWIiCi0rCSAgICAg IGNvbXBpbGVfZGVwbGlicz0iJGRlcGxpYiAkY29tcGlsZV9kZXBsaWJzIgotKwkgICAgICBmaW5h bGl6ZV9kZXBsaWJzPSIkZGVwbGliICRmaW5hbGl6ZV9kZXBsaWJzIgotKwkgICAgZWxzZQotKwkg ICAgICBuZXdkbGZpbGVzPSIkbmV3ZGxmaWxlcyAkZGVwbGliIgotKwkgICAgZmkKLSsJICBmaQot KwkgIGNvbnRpbnVlCi0rCSAgOzsKLSsJJURFUExJQlMlKQotKwkgIGFsbGRlcGxpYnM9eWVzCi0r CSAgY29udGludWUKLSsJICA7OwotKwllc2FjICMgY2FzZSAkZGVwbGliCi0rCi0rCWlmIHRlc3Qg IiRmb3VuZCIgPSB5ZXMgfHwgdGVzdCAtZiAiJGxpYiI7IHRoZW4gOgotKwllbHNlCi0rCSAgZnVu Y19mYXRhbF9lcnJvciAiY2Fubm90IGZpbmQgdGhlIGxpYnJhcnkgXGAkbGliJyBvciB1bmhhbmRs ZWQgYXJndW1lbnQgXGAkZGVwbGliJyIKLSsJZmkKLSsKLSsJIyBDaGVjayB0byBzZWUgdGhhdCB0 aGlzIHJlYWxseSBpcyBhIGxpYnRvb2wgYXJjaGl2ZS4KLSsJZnVuY19sYWxpYl91bnNhZmVfcCAi JGxpYiIgXAotKwkgIHx8IGZ1bmNfZmF0YWxfZXJyb3IgIlxgJGxpYicgaXMgbm90IGEgdmFsaWQg bGlidG9vbCBhcmNoaXZlIgotKwotKwlmdW5jX2Rpcm5hbWUgIiRsaWIiICIiICIuIgotKwlsYWRp cj0iJGZ1bmNfZGlybmFtZV9yZXN1bHQiCi0rCi0rCWRsbmFtZT0KLSsJZGxvcGVuPQotKwlkbHBy ZW9wZW49Ci0rCWxpYmRpcj0KLSsJbGlicmFyeV9uYW1lcz0KLSsJb2xkX2xpYnJhcnk9Ci0rCWlu aGVyaXRlZF9saW5rZXJfZmxhZ3M9Ci0rCSMgSWYgdGhlIGxpYnJhcnkgd2FzIGluc3RhbGxlZCB3 aXRoIGFuIG9sZCByZWxlYXNlIG9mIGxpYnRvb2wsCi0rCSMgaXQgd2lsbCBub3QgcmVkZWZpbmUg dmFyaWFibGVzIGluc3RhbGxlZCwgb3Igc2hvdWxkbm90bGluawotKwlpbnN0YWxsZWQ9eWVzCi0r CXNob3VsZG5vdGxpbms9bm8KLSsJYXZvaWR0ZW1wcnBhdGg9Ci0rCi0rCi0rCSMgUmVhZCB0aGUg LmxhIGZpbGUKLSsJZnVuY19zb3VyY2UgIiRsaWIiCi0rCi0rCSMgQ29udmVydCAiLWZyYW1ld29y ayBmb28iIHRvICJmb28ubHRmcmFtZXdvcmsiCi0rCWlmIHRlc3QgLW4gIiRpbmhlcml0ZWRfbGlu a2VyX2ZsYWdzIjsgdGhlbgotKwkgIHRtcF9pbmhlcml0ZWRfbGlua2VyX2ZsYWdzPWAkRUNITyAi WCRpbmhlcml0ZWRfbGlua2VyX2ZsYWdzIiB8ICRYc2VkIC1lICdzLy1mcmFtZXdvcmsgXChbXiAk XSpcKS9cMS5sdGZyYW1ld29yay9nJ2AKLSsJICBmb3IgdG1wX2luaGVyaXRlZF9saW5rZXJfZmxh ZyBpbiAkdG1wX2luaGVyaXRlZF9saW5rZXJfZmxhZ3M7IGRvCi0rCSAgICBjYXNlICIgJG5ld19p bmhlcml0ZWRfbGlua2VyX2ZsYWdzICIgaW4KLSsJICAgICAgKiIgJHRtcF9pbmhlcml0ZWRfbGlu a2VyX2ZsYWcgIiopIDs7Ci0rCSAgICAgICopIG5ld19pbmhlcml0ZWRfbGlua2VyX2ZsYWdzPSIk bmV3X2luaGVyaXRlZF9saW5rZXJfZmxhZ3MgJHRtcF9pbmhlcml0ZWRfbGlua2VyX2ZsYWciOzsK LSsJICAgIGVzYWMKLSsJICBkb25lCi0rCWZpCi0rCWRlcGVuZGVuY3lfbGlicz1gJEVDSE8gIlgg JGRlcGVuZGVuY3lfbGlicyIgfCAkWHNlZCAtZSAncyUgXChbXiAkXSpcKS5sdGZyYW1ld29yayUg LWZyYW1ld29yayBcMSVnJ2AKLSsJaWYgdGVzdCAiJGxpbmttb2RlLCRwYXNzIiA9ICJsaWIsbGlu ayIgfHwKLSsJICAgdGVzdCAiJGxpbmttb2RlLCRwYXNzIiA9ICJwcm9nLHNjYW4iIHx8Ci0rCSAg IHsgdGVzdCAiJGxpbmttb2RlIiAhPSBwcm9nICYmIHRlc3QgIiRsaW5rbW9kZSIgIT0gbGliOyB9 OyB0aGVuCi0rCSAgdGVzdCAtbiAiJGRsb3BlbiIgJiYgZGxmaWxlcz0iJGRsZmlsZXMgJGRsb3Bl biIKLSsJICB0ZXN0IC1uICIkZGxwcmVvcGVuIiAmJiBkbHByZWZpbGVzPSIkZGxwcmVmaWxlcyAk ZGxwcmVvcGVuIgotKwlmaQotKwotKwlpZiB0ZXN0ICIkcGFzcyIgPSBjb252OyB0aGVuCi0rCSAg IyBPbmx5IGNoZWNrIGZvciBjb252ZW5pZW5jZSBsaWJyYXJpZXMKLSsJICBkZXBsaWJzPSIkbGli ICRkZXBsaWJzIgotKwkgIGlmIHRlc3QgLXogIiRsaWJkaXIiOyB0aGVuCi0rCSAgICBpZiB0ZXN0 IC16ICIkb2xkX2xpYnJhcnkiOyB0aGVuCi0rCSAgICAgIGZ1bmNfZmF0YWxfZXJyb3IgImNhbm5v dCBmaW5kIG5hbWUgb2YgbGluayBsaWJyYXJ5IGZvciBcYCRsaWInIgotKwkgICAgZmkKLSsJICAg ICMgSXQgaXMgYSBsaWJ0b29sIGNvbnZlbmllbmNlIGxpYnJhcnksIHNvIGFkZCBpbiBpdHMgb2Jq ZWN0cy4KLSsJICAgIGNvbnZlbmllbmNlPSIkY29udmVuaWVuY2UgJGxhZGlyLyRvYmpkaXIvJG9s ZF9saWJyYXJ5IgotKwkgICAgb2xkX2NvbnZlbmllbmNlPSIkb2xkX2NvbnZlbmllbmNlICRsYWRp ci8kb2JqZGlyLyRvbGRfbGlicmFyeSIKLSsJICBlbGlmIHRlc3QgIiRsaW5rbW9kZSIgIT0gcHJv ZyAmJiB0ZXN0ICIkbGlua21vZGUiICE9IGxpYjsgdGhlbgotKwkgICAgZnVuY19mYXRhbF9lcnJv ciAiXGAkbGliJyBpcyBub3QgYSBjb252ZW5pZW5jZSBsaWJyYXJ5IgotKwkgIGZpCi0rCSAgdG1w X2xpYnM9Ci0rCSAgZm9yIGRlcGxpYiBpbiAkZGVwZW5kZW5jeV9saWJzOyBkbwotKwkgICAgZGVw bGlicz0iJGRlcGxpYiAkZGVwbGlicyIKLSsJICAgIGlmICRvcHRfZHVwbGljYXRlX2RlcHMgOyB0 aGVuCi0rCSAgICAgIGNhc2UgIiR0bXBfbGlicyAiIGluCi0rCSAgICAgICoiICRkZXBsaWIgIiop IHNwZWNpYWxkZXBsaWJzPSIkc3BlY2lhbGRlcGxpYnMgJGRlcGxpYiIgOzsKLSsJICAgICAgZXNh YwotKwkgICAgZmkKLSsJICAgIHRtcF9saWJzPSIkdG1wX2xpYnMgJGRlcGxpYiIKLSsJICBkb25l Ci0rCSAgY29udGludWUKLSsJZmkgIyAkcGFzcyA9IGNvbnYKLSsKLSsKLSsJIyBHZXQgdGhlIG5h bWUgb2YgdGhlIGxpYnJhcnkgd2UgbGluayBhZ2FpbnN0LgotKwlsaW5rbGliPQotKwlmb3IgbCBp biAkb2xkX2xpYnJhcnkgJGxpYnJhcnlfbmFtZXM7IGRvCi0rCSAgbGlua2xpYj0iJGwiCi0rCWRv bmUKLSsJaWYgdGVzdCAteiAiJGxpbmtsaWIiOyB0aGVuCi0rCSAgZnVuY19mYXRhbF9lcnJvciAi Y2Fubm90IGZpbmQgbmFtZSBvZiBsaW5rIGxpYnJhcnkgZm9yIFxgJGxpYiciCi0rCWZpCi0rCi0r CSMgVGhpcyBsaWJyYXJ5IHdhcyBzcGVjaWZpZWQgd2l0aCAtZGxvcGVuLgotKwlpZiB0ZXN0ICIk cGFzcyIgPSBkbG9wZW47IHRoZW4KLSsJICBpZiB0ZXN0IC16ICIkbGliZGlyIjsgdGhlbgotKwkg ICAgZnVuY19mYXRhbF9lcnJvciAiY2Fubm90IC1kbG9wZW4gYSBjb252ZW5pZW5jZSBsaWJyYXJ5 OiBcYCRsaWInIgotKwkgIGZpCi0rCSAgaWYgdGVzdCAteiAiJGRsbmFtZSIgfHwKLSsJICAgICB0 ZXN0ICIkZGxvcGVuX3N1cHBvcnQiICE9IHllcyB8fAotKwkgICAgIHRlc3QgIiRidWlsZF9saWJ0 b29sX2xpYnMiID0gbm87IHRoZW4KLSsJICAgICMgSWYgdGhlcmUgaXMgbm8gZGxuYW1lLCBubyBk bG9wZW4gc3VwcG9ydCBvciB3ZSdyZSBsaW5raW5nCi0rCSAgICAjIHN0YXRpY2FsbHksIHdlIG5l ZWQgdG8gcHJlbG9hZC4gIFdlIGFsc28gbmVlZCB0byBwcmVsb2FkIGFueQotKwkgICAgIyBkZXBl bmRlbnQgbGlicmFyaWVzIHNvIGxpYmx0ZGwncyBkZXBsaWIgcHJlbG9hZGVyIGRvZXNuJ3QKLSsJ ICAgICMgYm9tYiBvdXQgaW4gdGhlIGxvYWQgZGVwbGlicyBwaGFzZS4KLSsJICAgIGRscHJlZmls ZXM9IiRkbHByZWZpbGVzICRsaWIgJGRlcGVuZGVuY3lfbGlicyIKLSsJICBlbHNlCi0rCSAgICBu ZXdkbGZpbGVzPSIkbmV3ZGxmaWxlcyAkbGliIgotKwkgIGZpCi0rCSAgY29udGludWUKLSsJZmkg IyAkcGFzcyA9IGRsb3BlbgotKwotKwkjIFdlIG5lZWQgYW4gYWJzb2x1dGUgcGF0aC4KLSsJY2Fz ZSAkbGFkaXIgaW4KLSsJW1xcL10qIHwgW0EtWmEtel06W1xcL10qKSBhYnNfbGFkaXI9IiRsYWRp ciIgOzsKLSsJKikKLSsJICBhYnNfbGFkaXI9YGNkICIkbGFkaXIiICYmIHB3ZGAKLSsJICBpZiB0 ZXN0IC16ICIkYWJzX2xhZGlyIjsgdGhlbgotKwkgICAgZnVuY193YXJuaW5nICJjYW5ub3QgZGV0 ZXJtaW5lIGFic29sdXRlIGRpcmVjdG9yeSBuYW1lIG9mIFxgJGxhZGlyJyIKLSsJICAgIGZ1bmNf d2FybmluZyAicGFzc2luZyBpdCBsaXRlcmFsbHkgdG8gdGhlIGxpbmtlciwgYWx0aG91Z2ggaXQg bWlnaHQgZmFpbCIKLSsJICAgIGFic19sYWRpcj0iJGxhZGlyIgotKwkgIGZpCi0rCSAgOzsKLSsJ ZXNhYwotKwlmdW5jX2Jhc2VuYW1lICIkbGliIgotKwlsYW5hbWU9IiRmdW5jX2Jhc2VuYW1lX3Jl c3VsdCIKLSsKLSsJIyBGaW5kIHRoZSByZWxldmFudCBvYmplY3QgZGlyZWN0b3J5IGFuZCBsaWJy YXJ5IG5hbWUuCi0rCWlmIHRlc3QgIlgkaW5zdGFsbGVkIiA9IFh5ZXM7IHRoZW4KLSsJICBpZiB0 ZXN0ICEgLWYgIiRsaWJkaXIvJGxpbmtsaWIiICYmIHRlc3QgLWYgIiRhYnNfbGFkaXIvJGxpbmts aWIiOyB0aGVuCi0rCSAgICBmdW5jX3dhcm5pbmcgImxpYnJhcnkgXGAkbGliJyB3YXMgbW92ZWQu IgotKwkgICAgZGlyPSIkbGFkaXIiCi0rCSAgICBhYnNkaXI9IiRhYnNfbGFkaXIiCi0rCSAgICBs aWJkaXI9IiRhYnNfbGFkaXIiCi0rCSAgZWxzZQotKwkgICAgZGlyPSIkbGliZGlyIgotKwkgICAg YWJzZGlyPSIkbGliZGlyIgotKwkgIGZpCi0rCSAgdGVzdCAiWCRoYXJkY29kZV9hdXRvbWF0aWMi ID0gWHllcyAmJiBhdm9pZHRlbXBycGF0aD15ZXMKLSsJZWxzZQotKwkgIGlmIHRlc3QgISAtZiAi JGxhZGlyLyRvYmpkaXIvJGxpbmtsaWIiICYmIHRlc3QgLWYgIiRhYnNfbGFkaXIvJGxpbmtsaWIi OyB0aGVuCi0rCSAgICBkaXI9IiRsYWRpciIKLSsJICAgIGFic2Rpcj0iJGFic19sYWRpciIKLSsJ ICAgICMgUmVtb3ZlIHRoaXMgc2VhcmNoIHBhdGggbGF0ZXIKLSsJICAgIG5vdGluc3RfcGF0aD0i JG5vdGluc3RfcGF0aCAkYWJzX2xhZGlyIgotKwkgIGVsc2UKLSsJICAgIGRpcj0iJGxhZGlyLyRv YmpkaXIiCi0rCSAgICBhYnNkaXI9IiRhYnNfbGFkaXIvJG9iamRpciIKLSsJICAgICMgUmVtb3Zl IHRoaXMgc2VhcmNoIHBhdGggbGF0ZXIKLSsJICAgIG5vdGluc3RfcGF0aD0iJG5vdGluc3RfcGF0 aCAkYWJzX2xhZGlyIgotKwkgIGZpCi0rCWZpICMgJGluc3RhbGxlZCA9IHllcwotKwlmdW5jX3N0 cmlwbmFtZSAnbGliJyAnLmxhJyAiJGxhbmFtZSIKLSsJbmFtZT0kZnVuY19zdHJpcG5hbWVfcmVz dWx0Ci0rCi0rCSMgVGhpcyBsaWJyYXJ5IHdhcyBzcGVjaWZpZWQgd2l0aCAtZGxwcmVvcGVuLgot KwlpZiB0ZXN0ICIkcGFzcyIgPSBkbHByZW9wZW47IHRoZW4KLSsJICBpZiB0ZXN0IC16ICIkbGli ZGlyIiAmJiB0ZXN0ICIkbGlua21vZGUiID0gcHJvZzsgdGhlbgotKwkgICAgZnVuY19mYXRhbF9l cnJvciAib25seSBsaWJyYXJpZXMgbWF5IC1kbHByZW9wZW4gYSBjb252ZW5pZW5jZSBsaWJyYXJ5 OiBcYCRsaWInIgotKwkgIGZpCi0rCSAgIyBQcmVmZXIgdXNpbmcgYSBzdGF0aWMgbGlicmFyeSAo c28gdGhhdCBubyBzaWxseSBfRFlOQU1JQyBzeW1ib2xzCi0rCSAgIyBhcmUgcmVxdWlyZWQgdG8g bGluaykuCi0rCSAgaWYgdGVzdCAtbiAiJG9sZF9saWJyYXJ5IjsgdGhlbgotKwkgICAgbmV3ZGxw cmVmaWxlcz0iJG5ld2RscHJlZmlsZXMgJGRpci8kb2xkX2xpYnJhcnkiCi0rCSAgICAjIEtlZXAg YSBsaXN0IG9mIHByZW9wZW5lZCBjb252ZW5pZW5jZSBsaWJyYXJpZXMgdG8gY2hlY2sKLSsJICAg ICMgdGhhdCB0aGV5IGFyZSBiZWluZyB1c2VkIGNvcnJlY3RseSBpbiB0aGUgbGluayBwYXNzLgot KwkgICAgdGVzdCAteiAiJGxpYmRpciIgJiYgXAotKwkJZGxwcmVjb252ZW5pZW5jZWxpYnM9IiRk bHByZWNvbnZlbmllbmNlbGlicyAkZGlyLyRvbGRfbGlicmFyeSIKLSsJICAjIE90aGVyd2lzZSwg dXNlIHRoZSBkbG5hbWUsIHNvIHRoYXQgbHRfZGxvcGVuIGZpbmRzIGl0LgotKwkgIGVsaWYgdGVz dCAtbiAiJGRsbmFtZSI7IHRoZW4KLSsJICAgIG5ld2RscHJlZmlsZXM9IiRuZXdkbHByZWZpbGVz ICRkaXIvJGRsbmFtZSIKLSsJICBlbHNlCi0rCSAgICBuZXdkbHByZWZpbGVzPSIkbmV3ZGxwcmVm aWxlcyAkZGlyLyRsaW5rbGliIgotKwkgIGZpCi0rCWZpICMgJHBhc3MgPSBkbHByZW9wZW4KLSsK LSsJaWYgdGVzdCAteiAiJGxpYmRpciI7IHRoZW4KLSsJICAjIExpbmsgdGhlIGNvbnZlbmllbmNl IGxpYnJhcnkKLSsJICBpZiB0ZXN0ICIkbGlua21vZGUiID0gbGliOyB0aGVuCi0rCSAgICBkZXBs aWJzPSIkZGlyLyRvbGRfbGlicmFyeSAkZGVwbGlicyIKLSsJICBlbGlmIHRlc3QgIiRsaW5rbW9k ZSwkcGFzcyIgPSAicHJvZyxsaW5rIjsgdGhlbgotKwkgICAgY29tcGlsZV9kZXBsaWJzPSIkZGly LyRvbGRfbGlicmFyeSAkY29tcGlsZV9kZXBsaWJzIgotKwkgICAgZmluYWxpemVfZGVwbGlicz0i JGRpci8kb2xkX2xpYnJhcnkgJGZpbmFsaXplX2RlcGxpYnMiCi0rCSAgZWxzZQotKwkgICAgZGVw bGlicz0iJGxpYiAkZGVwbGlicyIgIyB1c2VkIGZvciBwcm9nLHNjYW4gcGFzcwotKwkgIGZpCi0r CSAgY29udGludWUKLSsJZmkKLSsKLSsKLSsJaWYgdGVzdCAiJGxpbmttb2RlIiA9IHByb2cgJiYg dGVzdCAiJHBhc3MiICE9IGxpbms7IHRoZW4KLSsJICBuZXdsaWJfc2VhcmNoX3BhdGg9IiRuZXds aWJfc2VhcmNoX3BhdGggJGxhZGlyIgotKwkgIGRlcGxpYnM9IiRsaWIgJGRlcGxpYnMiCi0rCi0r CSAgbGlua2FsbGRlcGxpYnM9bm8KLSsJICBpZiB0ZXN0ICIkbGlua19hbGxfZGVwbGlicyIgIT0g bm8gfHwgdGVzdCAteiAiJGxpYnJhcnlfbmFtZXMiIHx8Ci0rCSAgICAgdGVzdCAiJGJ1aWxkX2xp YnRvb2xfbGlicyIgPSBubzsgdGhlbgotKwkgICAgbGlua2FsbGRlcGxpYnM9eWVzCi0rCSAgZmkK LSsKLSsJICB0bXBfbGlicz0KLSsJICBmb3IgZGVwbGliIGluICRkZXBlbmRlbmN5X2xpYnM7IGRv Ci0rCSAgICBjYXNlICRkZXBsaWIgaW4KLSsJICAgIC1MKikgZnVuY19zdHJpcG5hbWUgJy1MJyAn JyAiJGRlcGxpYiIKLSsJICAgICAgICAgbmV3bGliX3NlYXJjaF9wYXRoPSIkbmV3bGliX3NlYXJj aF9wYXRoICRmdW5jX3N0cmlwbmFtZV9yZXN1bHQiCi0rCQkgOzsKLSsJICAgIGVzYWMKLSsJICAg ICMgTmVlZCB0byBsaW5rIGFnYWluc3QgYWxsIGRlcGVuZGVuY3lfbGlicz8KLSsJICAgIGlmIHRl c3QgIiRsaW5rYWxsZGVwbGlicyIgPSB5ZXM7IHRoZW4KLSsJICAgICAgZGVwbGlicz0iJGRlcGxp YiAkZGVwbGlicyIKLSsJICAgIGVsc2UKLSsJICAgICAgIyBOZWVkIHRvIGhhcmRjb2RlIHNoYXJl ZCBsaWJyYXJ5IHBhdGhzCi0rCSAgICAgICMgb3IvYW5kIGxpbmsgYWdhaW5zdCBzdGF0aWMgbGli cmFyaWVzCi0rCSAgICAgIG5ld2RlcGVuZGVuY3lfbGlicz0iJGRlcGxpYiAkbmV3ZGVwZW5kZW5j eV9saWJzIgotKwkgICAgZmkKLSsJICAgIGlmICRvcHRfZHVwbGljYXRlX2RlcHMgOyB0aGVuCi0r CSAgICAgIGNhc2UgIiR0bXBfbGlicyAiIGluCi0rCSAgICAgICoiICRkZXBsaWIgIiopIHNwZWNp YWxkZXBsaWJzPSIkc3BlY2lhbGRlcGxpYnMgJGRlcGxpYiIgOzsKLSsJICAgICAgZXNhYwotKwkg ICAgZmkKLSsJICAgIHRtcF9saWJzPSIkdG1wX2xpYnMgJGRlcGxpYiIKLSsJICBkb25lICMgZm9y IGRlcGxpYgotKwkgIGNvbnRpbnVlCi0rCWZpICMgJGxpbmttb2RlID0gcHJvZy4uLgotKwotKwlp ZiB0ZXN0ICIkbGlua21vZGUsJHBhc3MiID0gInByb2csbGluayI7IHRoZW4KLSsJICBpZiB0ZXN0 IC1uICIkbGlicmFyeV9uYW1lcyIgJiYKLSsJICAgICB7IHsgdGVzdCAiJHByZWZlcl9zdGF0aWNf bGlicyIgPSBubyB8fAotKwkgICAgICAgICB0ZXN0ICIkcHJlZmVyX3N0YXRpY19saWJzLCRpbnN0 YWxsZWQiID0gImJ1aWx0LHllcyI7IH0gfHwKLSsJICAgICAgIHRlc3QgLXogIiRvbGRfbGlicmFy eSI7IH07IHRoZW4KLSsJICAgICMgV2UgbmVlZCB0byBoYXJkY29kZSB0aGUgbGlicmFyeSBwYXRo Ci0rCSAgICBpZiB0ZXN0IC1uICIkc2hsaWJwYXRoX3ZhciIgJiYgdGVzdCAteiAiJGF2b2lkdGVt cHJwYXRoIiA7IHRoZW4KLSsJICAgICAgIyBNYWtlIHN1cmUgdGhlIHJwYXRoIGNvbnRhaW5zIG9u bHkgdW5pcXVlIGRpcmVjdG9yaWVzLgotKwkgICAgICBjYXNlICIkdGVtcF9ycGF0aDoiIGluCi0r CSAgICAgICoiJGFic2RpcjoiKikgOzsKLSsJICAgICAgKikgdGVtcF9ycGF0aD0iJHRlbXBfcnBh dGgkYWJzZGlyOiIgOzsKLSsJICAgICAgZXNhYwotKwkgICAgZmkKLSsKLSsJICAgICMgSGFyZGNv ZGUgdGhlIGxpYnJhcnkgcGF0aC4KLSsJICAgICMgU2tpcCBkaXJlY3RvcmllcyB0aGF0IGFyZSBp biB0aGUgc3lzdGVtIGRlZmF1bHQgcnVuLXRpbWUKLSsJICAgICMgc2VhcmNoIHBhdGguCi0rCSAg ICBjYXNlICIgJHN5c19saWJfZGxzZWFyY2hfcGF0aCAiIGluCi0rCSAgICAqIiAkYWJzZGlyICIq KSA7OwotKwkgICAgKikKLSsJICAgICAgY2FzZSAiJGNvbXBpbGVfcnBhdGggIiBpbgotKwkgICAg ICAqIiAkYWJzZGlyICIqKSA7OwotKwkgICAgICAqKSBjb21waWxlX3JwYXRoPSIkY29tcGlsZV9y cGF0aCAkYWJzZGlyIgotKwkgICAgICBlc2FjCi0rCSAgICAgIDs7Ci0rCSAgICBlc2FjCi0rCSAg ICBjYXNlICIgJHN5c19saWJfZGxzZWFyY2hfcGF0aCAiIGluCi0rCSAgICAqIiAkbGliZGlyICIq KSA7OwotKwkgICAgKikKLSsJICAgICAgY2FzZSAiJGZpbmFsaXplX3JwYXRoICIgaW4KLSsJICAg ICAgKiIgJGxpYmRpciAiKikgOzsKLSsJICAgICAgKikgZmluYWxpemVfcnBhdGg9IiRmaW5hbGl6 ZV9ycGF0aCAkbGliZGlyIgotKwkgICAgICBlc2FjCi0rCSAgICAgIDs7Ci0rCSAgICBlc2FjCi0r CSAgZmkgIyAkbGlua21vZGUsJHBhc3MgPSBwcm9nLGxpbmsuLi4KLSsKLSsJICBpZiB0ZXN0ICIk YWxsZGVwbGlicyIgPSB5ZXMgJiYKLSsJICAgICB7IHRlc3QgIiRkZXBsaWJzX2NoZWNrX21ldGhv ZCIgPSBwYXNzX2FsbCB8fAotKwkgICAgICAgeyB0ZXN0ICIkYnVpbGRfbGlidG9vbF9saWJzIiA9 IHllcyAmJgotKwkJIHRlc3QgLW4gIiRsaWJyYXJ5X25hbWVzIjsgfTsgfTsgdGhlbgotKwkgICAg IyBXZSBvbmx5IG5lZWQgdG8gc2VhcmNoIGZvciBzdGF0aWMgbGlicmFyaWVzCi0rCSAgICBjb250 aW51ZQotKwkgIGZpCi0rCWZpCi0rCi0rCWxpbmtfc3RhdGljPW5vICMgV2hldGhlciB0aGUgZGVw bGliIHdpbGwgYmUgbGlua2VkIHN0YXRpY2FsbHkKLSsJdXNlX3N0YXRpY19saWJzPSRwcmVmZXJf c3RhdGljX2xpYnMKLSsJaWYgdGVzdCAiJHVzZV9zdGF0aWNfbGlicyIgPSBidWlsdCAmJiB0ZXN0 ICIkaW5zdGFsbGVkIiA9IHllczsgdGhlbgotKwkgIHVzZV9zdGF0aWNfbGlicz1ubwotKwlmaQot KwlpZiB0ZXN0IC1uICIkbGlicmFyeV9uYW1lcyIgJiYKLSsJICAgeyB0ZXN0ICIkdXNlX3N0YXRp Y19saWJzIiA9IG5vIHx8IHRlc3QgLXogIiRvbGRfbGlicmFyeSI7IH07IHRoZW4KLSsJICBjYXNl ICRob3N0IGluCi0rCSAgKmN5Z3dpbiogfCAqbWluZ3cqIHwgKmNlZ2NjKikKLSsJICAgICAgIyBO byBwb2ludCBpbiByZWxpbmtpbmcgRExMcyBiZWNhdXNlIHBhdGhzIGFyZSBub3QgZW5jb2RlZAot KwkgICAgICBub3RpbnN0X2RlcGxpYnM9IiRub3RpbnN0X2RlcGxpYnMgJGxpYiIKLSsJICAgICAg bmVlZF9yZWxpbms9bm8KLSsJICAgIDs7Ci0rCSAgKikKLSsJICAgIGlmIHRlc3QgIiRpbnN0YWxs ZWQiID0gbm87IHRoZW4KLSsJICAgICAgbm90aW5zdF9kZXBsaWJzPSIkbm90aW5zdF9kZXBsaWJz ICRsaWIiCi0rCSAgICAgIG5lZWRfcmVsaW5rPXllcwotKwkgICAgZmkKLSsJICAgIDs7Ci0rCSAg ZXNhYwotKwkgICMgVGhpcyBpcyBhIHNoYXJlZCBsaWJyYXJ5Ci0rCi0rCSAgIyBXYXJuIGFib3V0 IHBvcnRhYmlsaXR5LCBjYW4ndCBsaW5rIGFnYWluc3QgLW1vZHVsZSdzIG9uIHNvbWUKLSsJICAj IHN5c3RlbXMgKGRhcndpbikuICBEb24ndCBibGVhdCBhYm91dCBkbG9wZW5lZCBtb2R1bGVzIHRo b3VnaCEKLSsJICBkbG9wZW5tb2R1bGU9IiIKLSsJICBmb3IgZGxwcmVtb2R1bGV0ZXN0IGluICRk bHByZWZpbGVzOyBkbwotKwkgICAgaWYgdGVzdCAiWCRkbHByZW1vZHVsZXRlc3QiID0gIlgkbGli IjsgdGhlbgotKwkgICAgICBkbG9wZW5tb2R1bGU9IiRkbHByZW1vZHVsZXRlc3QiCi0rCSAgICAg IGJyZWFrCi0rCSAgICBmaQotKwkgIGRvbmUKLSsJICBpZiB0ZXN0IC16ICIkZGxvcGVubW9kdWxl IiAmJiB0ZXN0ICIkc2hvdWxkbm90bGluayIgPSB5ZXMgJiYgdGVzdCAiJHBhc3MiID0gbGluazsg dGhlbgotKwkgICAgJEVDSE8KLSsJICAgIGlmIHRlc3QgIiRsaW5rbW9kZSIgPSBwcm9nOyB0aGVu Ci0rCSAgICAgICRFQ0hPICIqKiogV2FybmluZzogTGlua2luZyB0aGUgZXhlY3V0YWJsZSAkb3V0 cHV0IGFnYWluc3QgdGhlIGxvYWRhYmxlIG1vZHVsZSIKLSsJICAgIGVsc2UKLSsJICAgICAgJEVD SE8gIioqKiBXYXJuaW5nOiBMaW5raW5nIHRoZSBzaGFyZWQgbGlicmFyeSAkb3V0cHV0IGFnYWlu c3QgdGhlIGxvYWRhYmxlIG1vZHVsZSIKLSsJICAgIGZpCi0rCSAgICAkRUNITyAiKioqICRsaW5r bGliIGlzIG5vdCBwb3J0YWJsZSEiCi0rCSAgZmkKLSsJICBpZiB0ZXN0ICIkbGlua21vZGUiID0g bGliICYmCi0rCSAgICAgdGVzdCAiJGhhcmRjb2RlX2ludG9fbGlicyIgPSB5ZXM7IHRoZW4KLSsJ ICAgICMgSGFyZGNvZGUgdGhlIGxpYnJhcnkgcGF0aC4KLSsJICAgICMgU2tpcCBkaXJlY3Rvcmll cyB0aGF0IGFyZSBpbiB0aGUgc3lzdGVtIGRlZmF1bHQgcnVuLXRpbWUKLSsJICAgICMgc2VhcmNo IHBhdGguCi0rCSAgICBjYXNlICIgJHN5c19saWJfZGxzZWFyY2hfcGF0aCAiIGluCi0rCSAgICAq IiAkYWJzZGlyICIqKSA7OwotKwkgICAgKikKLSsJICAgICAgY2FzZSAiJGNvbXBpbGVfcnBhdGgg IiBpbgotKwkgICAgICAqIiAkYWJzZGlyICIqKSA7OwotKwkgICAgICAqKSBjb21waWxlX3JwYXRo PSIkY29tcGlsZV9ycGF0aCAkYWJzZGlyIgotKwkgICAgICBlc2FjCi0rCSAgICAgIDs7Ci0rCSAg ICBlc2FjCi0rCSAgICBjYXNlICIgJHN5c19saWJfZGxzZWFyY2hfcGF0aCAiIGluCi0rCSAgICAq IiAkbGliZGlyICIqKSA7OwotKwkgICAgKikKLSsJICAgICAgY2FzZSAiJGZpbmFsaXplX3JwYXRo ICIgaW4KLSsJICAgICAgKiIgJGxpYmRpciAiKikgOzsKLSsJICAgICAgKikgZmluYWxpemVfcnBh dGg9IiRmaW5hbGl6ZV9ycGF0aCAkbGliZGlyIgotKwkgICAgICBlc2FjCi0rCSAgICAgIDs7Ci0r CSAgICBlc2FjCi0rCSAgZmkKLSsKLSsJICBpZiB0ZXN0IC1uICIkb2xkX2FyY2hpdmVfZnJvbV9l eHBzeW1zX2NtZHMiOyB0aGVuCi0rCSAgICAjIGZpZ3VyZSBvdXQgdGhlIHNvbmFtZQotKwkgICAg c2V0IGR1bW15ICRsaWJyYXJ5X25hbWVzCi0rCSAgICBzaGlmdAotKwkgICAgcmVhbG5hbWU9IiQx IgotKwkgICAgc2hpZnQKLSsJICAgIGxpYm5hbWU9YGV2YWwgIlxcJEVDSE8gXCIkbGlibmFtZV9z cGVjXCIiYAotKwkgICAgIyB1c2UgZGxuYW1lIGlmIHdlIGdvdCBpdC4gaXQncyBwZXJmZWN0bHkg Z29vZCwgbm8/Ci0rCSAgICBpZiB0ZXN0IC1uICIkZGxuYW1lIjsgdGhlbgotKwkgICAgICBzb25h bWU9IiRkbG5hbWUiCi0rCSAgICBlbGlmIHRlc3QgLW4gIiRzb25hbWVfc3BlYyI7IHRoZW4KLSsJ ICAgICAgIyBibGVoIHdpbmRvd3MKLSsJICAgICAgY2FzZSAkaG9zdCBpbgotKwkgICAgICAqY3ln d2luKiB8IG1pbmd3KiB8ICpjZWdjYyopCi0rCSAgICAgICAgZnVuY19hcml0aCAkY3VycmVudCAt ICRhZ2UKLSsJCW1ham9yPSRmdW5jX2FyaXRoX3Jlc3VsdAotKwkJdmVyc3VmZml4PSItJG1ham9y IgotKwkJOzsKLSsJICAgICAgZXNhYwotKwkgICAgICBldmFsIHNvbmFtZT1cIiRzb25hbWVfc3Bl Y1wiCi0rCSAgICBlbHNlCi0rCSAgICAgIHNvbmFtZT0iJHJlYWxuYW1lIgotKwkgICAgZmkKLSsK LSsJICAgICMgTWFrZSBhIG5ldyBuYW1lIGZvciB0aGUgZXh0cmFjdF9leHBzeW1zX2NtZHMgdG8g dXNlCi0rCSAgICBzb3Jvb3Q9IiRzb25hbWUiCi0rCSAgICBmdW5jX2Jhc2VuYW1lICIkc29yb290 IgotKwkgICAgc29uYW1lPSIkZnVuY19iYXNlbmFtZV9yZXN1bHQiCi0rCSAgICBmdW5jX3N0cmlw bmFtZSAnbGliJyAnLmRsbCcgIiRzb25hbWUiCi0rCSAgICBuZXdsaWI9bGliaW1wLSRmdW5jX3N0 cmlwbmFtZV9yZXN1bHQuYQotKwotKwkgICAgIyBJZiB0aGUgbGlicmFyeSBoYXMgbm8gZXhwb3J0 IGxpc3QsIHRoZW4gY3JlYXRlIG9uZSBub3cKLSsJICAgIGlmIHRlc3QgLWYgIiRvdXRwdXRfb2Jq ZGlyLyRzb25hbWUtZGVmIjsgdGhlbiA6Ci0rCSAgICBlbHNlCi0rCSAgICAgIGZ1bmNfdmVyYm9z ZSAiZXh0cmFjdGluZyBleHBvcnRlZCBzeW1ib2wgbGlzdCBmcm9tIFxgJHNvbmFtZSciCi0rCSAg ICAgIGZ1bmNfZXhlY3V0ZV9jbWRzICIkZXh0cmFjdF9leHBzeW1zX2NtZHMiICdleGl0ICQ/Jwot KwkgICAgZmkKLSsKLSsJICAgICMgQ3JlYXRlICRuZXdsaWIKLSsJICAgIGlmIHRlc3QgLWYgIiRv dXRwdXRfb2JqZGlyLyRuZXdsaWIiOyB0aGVuIDo7IGVsc2UKLSsJICAgICAgZnVuY192ZXJib3Nl ICJnZW5lcmF0aW5nIGltcG9ydCBsaWJyYXJ5IGZvciBcYCRzb25hbWUnIgotKwkgICAgICBmdW5j X2V4ZWN1dGVfY21kcyAiJG9sZF9hcmNoaXZlX2Zyb21fZXhwc3ltc19jbWRzIiAnZXhpdCAkPycK LSsJICAgIGZpCi0rCSAgICAjIG1ha2Ugc3VyZSB0aGUgbGlicmFyeSB2YXJpYWJsZXMgYXJlIHBv aW50aW5nIHRvIHRoZSBuZXcgbGlicmFyeQotKwkgICAgZGlyPSRvdXRwdXRfb2JqZGlyCi0rCSAg ICBsaW5rbGliPSRuZXdsaWIKLSsJICBmaSAjIHRlc3QgLW4gIiRvbGRfYXJjaGl2ZV9mcm9tX2V4 cHN5bXNfY21kcyIKLSsKLSsJICBpZiB0ZXN0ICIkbGlua21vZGUiID0gcHJvZyB8fCB0ZXN0ICIk bW9kZSIgIT0gcmVsaW5rOyB0aGVuCi0rCSAgICBhZGRfc2hsaWJwYXRoPQotKwkgICAgYWRkX2Rp cj0KLSsJICAgIGFkZD0KLSsJICAgIGxpYl9saW5rZWQ9eWVzCi0rCSAgICBjYXNlICRoYXJkY29k ZV9hY3Rpb24gaW4KLSsJICAgIGltbWVkaWF0ZSB8IHVuc3VwcG9ydGVkKQotKwkgICAgICBpZiB0 ZXN0ICIkaGFyZGNvZGVfZGlyZWN0IiA9IG5vOyB0aGVuCi0rCQlhZGQ9IiRkaXIvJGxpbmtsaWIi Ci0rCQljYXNlICRob3N0IGluCi0rCQkgICotKi1zY28zLjJ2NS4wLlswMjRdKikgYWRkX2Rpcj0i LUwkZGlyIiA7OwotKwkJICAqLSotc3lzdjQqdXcyKikgYWRkX2Rpcj0iLUwkZGlyIiA7OwotKwkJ ICAqLSotc3lzdjVPcGVuVU5JWCogfCAqLSotc3lzdjVVbml4V2FyZTcuWzAxXS5bMTBdKiB8IFwK LSsJCSAgICAqLSotdW5peHdhcmU3KikgYWRkX2Rpcj0iLUwkZGlyIiA7OwotKwkJICAqLSotZGFy d2luKiApCi0rCQkgICAgIyBpZiB0aGUgbGliIGlzIGEgKG5vbi1kbG9wZW5lZCkgbW9kdWxlIHRo ZW4gd2UgY2FuIG5vdAotKwkJICAgICMgbGluayBhZ2FpbnN0IGl0LCBzb21lb25lIGlzIGlnbm9y aW5nIHRoZSBlYXJsaWVyIHdhcm5pbmdzCi0rCQkgICAgaWYgL3Vzci9iaW4vZmlsZSAtTCAkYWRk IDI+IC9kZXYvbnVsbCB8Ci0rCQkJICRHUkVQICI6IFteOl0qIGJ1bmRsZSIgPi9kZXYvbnVsbCA7 IHRoZW4KLSsJCSAgICAgIGlmIHRlc3QgIlgkZGxvcGVubW9kdWxlIiAhPSAiWCRsaWIiOyB0aGVu Ci0rCQkJJEVDSE8gIioqKiBXYXJuaW5nOiBsaWIgJGxpbmtsaWIgaXMgYSBtb2R1bGUsIG5vdCBh IHNoYXJlZCBsaWJyYXJ5IgotKwkJCWlmIHRlc3QgLXogIiRvbGRfbGlicmFyeSIgOyB0aGVuCi0r CQkJICAkRUNITwotKwkJCSAgJEVDSE8gIioqKiBBbmQgdGhlcmUgZG9lc24ndCBzZWVtIHRvIGJl IGEgc3RhdGljIGFyY2hpdmUgYXZhaWxhYmxlIgotKwkJCSAgJEVDSE8gIioqKiBUaGUgbGluayB3 aWxsIHByb2JhYmx5IGZhaWwsIHNvcnJ5IgotKwkJCWVsc2UKLSsJCQkgIGFkZD0iJGRpci8kb2xk X2xpYnJhcnkiCi0rCQkJZmkKLSsJCSAgICAgIGVsaWYgdGVzdCAtbiAiJG9sZF9saWJyYXJ5Ijsg dGhlbgotKwkJCWFkZD0iJGRpci8kb2xkX2xpYnJhcnkiCi0rCQkgICAgICBmaQotKwkJICAgIGZp Ci0rCQllc2FjCi0rCSAgICAgIGVsaWYgdGVzdCAiJGhhcmRjb2RlX21pbnVzX0wiID0gbm87IHRo ZW4KLSsJCWNhc2UgJGhvc3QgaW4KLSsJCSotKi1zdW5vcyopIGFkZF9zaGxpYnBhdGg9IiRkaXIi IDs7Ci0rCQllc2FjCi0rCQlhZGRfZGlyPSItTCRkaXIiCi0rCQlhZGQ9Ii1sJG5hbWUiCi0rCSAg ICAgIGVsaWYgdGVzdCAiJGhhcmRjb2RlX3NobGlicGF0aF92YXIiID0gbm87IHRoZW4KLSsJCWFk ZF9zaGxpYnBhdGg9IiRkaXIiCi0rCQlhZGQ9Ii1sJG5hbWUiCi0rCSAgICAgIGVsc2UKLSsJCWxp Yl9saW5rZWQ9bm8KLSsJICAgICAgZmkKLSsJICAgICAgOzsKLSsJICAgIHJlbGluaykKLSsJICAg ICAgaWYgdGVzdCAiJGhhcmRjb2RlX2RpcmVjdCIgPSB5ZXMgJiYKLSsJICAgICAgICAgdGVzdCAi JGhhcmRjb2RlX2RpcmVjdF9hYnNvbHV0ZSIgPSBubzsgdGhlbgotKwkJYWRkPSIkZGlyLyRsaW5r bGliIgotKwkgICAgICBlbGlmIHRlc3QgIiRoYXJkY29kZV9taW51c19MIiA9IHllczsgdGhlbgot KwkJYWRkX2Rpcj0iLUwkZGlyIgotKwkJIyBUcnkgbG9va2luZyBmaXJzdCBpbiB0aGUgbG9jYXRp b24gd2UncmUgYmVpbmcgaW5zdGFsbGVkIHRvLgotKwkJaWYgdGVzdCAtbiAiJGluc3RfcHJlZml4 X2RpciI7IHRoZW4KLSsJCSAgY2FzZSAkbGliZGlyIGluCi0rCQkgICAgW1xcL10qKQotKwkJICAg ICAgYWRkX2Rpcj0iJGFkZF9kaXIgLUwkaW5zdF9wcmVmaXhfZGlyJGxpYmRpciIKLSsJCSAgICAg IDs7Ci0rCQkgIGVzYWMKLSsJCWZpCi0rCQlhZGQ9Ii1sJG5hbWUiCi0rCSAgICAgIGVsaWYgdGVz dCAiJGhhcmRjb2RlX3NobGlicGF0aF92YXIiID0geWVzOyB0aGVuCi0rCQlhZGRfc2hsaWJwYXRo PSIkZGlyIgotKwkJYWRkPSItbCRuYW1lIgotKwkgICAgICBlbHNlCi0rCQlsaWJfbGlua2VkPW5v Ci0rCSAgICAgIGZpCi0rCSAgICAgIDs7Ci0rCSAgICAqKSBsaWJfbGlua2VkPW5vIDs7Ci0rCSAg ICBlc2FjCi0rCi0rCSAgICBpZiB0ZXN0ICIkbGliX2xpbmtlZCIgIT0geWVzOyB0aGVuCi0rCSAg ICAgIGZ1bmNfZmF0YWxfY29uZmlndXJhdGlvbiAidW5zdXBwb3J0ZWQgaGFyZGNvZGUgcHJvcGVy dGllcyIKLSsJICAgIGZpCi0rCi0rCSAgICBpZiB0ZXN0IC1uICIkYWRkX3NobGlicGF0aCI7IHRo ZW4KLSsJICAgICAgY2FzZSA6JGNvbXBpbGVfc2hsaWJwYXRoOiBpbgotKwkgICAgICAqIjokYWRk X3NobGlicGF0aDoiKikgOzsKLSsJICAgICAgKikgY29tcGlsZV9zaGxpYnBhdGg9IiRjb21waWxl X3NobGlicGF0aCRhZGRfc2hsaWJwYXRoOiIgOzsKLSsJICAgICAgZXNhYwotKwkgICAgZmkKLSsJ ICAgIGlmIHRlc3QgIiRsaW5rbW9kZSIgPSBwcm9nOyB0aGVuCi0rCSAgICAgIHRlc3QgLW4gIiRh ZGRfZGlyIiAmJiBjb21waWxlX2RlcGxpYnM9IiRhZGRfZGlyICRjb21waWxlX2RlcGxpYnMiCi0r CSAgICAgIHRlc3QgLW4gIiRhZGQiICYmIGNvbXBpbGVfZGVwbGlicz0iJGFkZCAkY29tcGlsZV9k ZXBsaWJzIgotKwkgICAgZWxzZQotKwkgICAgICB0ZXN0IC1uICIkYWRkX2RpciIgJiYgZGVwbGli cz0iJGFkZF9kaXIgJGRlcGxpYnMiCi0rCSAgICAgIHRlc3QgLW4gIiRhZGQiICYmIGRlcGxpYnM9 IiRhZGQgJGRlcGxpYnMiCi0rCSAgICAgIGlmIHRlc3QgIiRoYXJkY29kZV9kaXJlY3QiICE9IHll cyAmJgotKwkJIHRlc3QgIiRoYXJkY29kZV9taW51c19MIiAhPSB5ZXMgJiYKLSsJCSB0ZXN0ICIk aGFyZGNvZGVfc2hsaWJwYXRoX3ZhciIgPSB5ZXM7IHRoZW4KLSsJCWNhc2UgOiRmaW5hbGl6ZV9z aGxpYnBhdGg6IGluCi0rCQkqIjokbGliZGlyOiIqKSA7OwotKwkJKikgZmluYWxpemVfc2hsaWJw YXRoPSIkZmluYWxpemVfc2hsaWJwYXRoJGxpYmRpcjoiIDs7Ci0rCQllc2FjCi0rCSAgICAgIGZp Ci0rCSAgICBmaQotKwkgIGZpCi0rCi0rCSAgaWYgdGVzdCAiJGxpbmttb2RlIiA9IHByb2cgfHwg dGVzdCAiJG1vZGUiID0gcmVsaW5rOyB0aGVuCi0rCSAgICBhZGRfc2hsaWJwYXRoPQotKwkgICAg YWRkX2Rpcj0KLSsJICAgIGFkZD0KLSsJICAgICMgRmluYWxpemUgY29tbWFuZCBmb3IgYm90aCBp cyBzaW1wbGU6IGp1c3QgaGFyZGNvZGUgaXQuCi0rCSAgICBpZiB0ZXN0ICIkaGFyZGNvZGVfZGly ZWN0IiA9IHllcyAmJgotKwkgICAgICAgdGVzdCAiJGhhcmRjb2RlX2RpcmVjdF9hYnNvbHV0ZSIg PSBubzsgdGhlbgotKwkgICAgICBhZGQ9IiRsaWJkaXIvJGxpbmtsaWIiCi0rCSAgICBlbGlmIHRl c3QgIiRoYXJkY29kZV9taW51c19MIiA9IHllczsgdGhlbgotKwkgICAgICBhZGRfZGlyPSItTCRs aWJkaXIiCi0rCSAgICAgIGFkZD0iLWwkbmFtZSIKLSsJICAgIGVsaWYgdGVzdCAiJGhhcmRjb2Rl X3NobGlicGF0aF92YXIiID0geWVzOyB0aGVuCi0rCSAgICAgIGNhc2UgOiRmaW5hbGl6ZV9zaGxp YnBhdGg6IGluCi0rCSAgICAgICoiOiRsaWJkaXI6IiopIDs7Ci0rCSAgICAgICopIGZpbmFsaXpl X3NobGlicGF0aD0iJGZpbmFsaXplX3NobGlicGF0aCRsaWJkaXI6IiA7OwotKwkgICAgICBlc2Fj Ci0rCSAgICAgIGFkZD0iLWwkbmFtZSIKLSsJICAgIGVsaWYgdGVzdCAiJGhhcmRjb2RlX2F1dG9t YXRpYyIgPSB5ZXM7IHRoZW4KLSsJICAgICAgaWYgdGVzdCAtbiAiJGluc3RfcHJlZml4X2RpciIg JiYKLSsJCSB0ZXN0IC1mICIkaW5zdF9wcmVmaXhfZGlyJGxpYmRpci8kbGlua2xpYiIgOyB0aGVu Ci0rCQlhZGQ9IiRpbnN0X3ByZWZpeF9kaXIkbGliZGlyLyRsaW5rbGliIgotKwkgICAgICBlbHNl Ci0rCQlhZGQ9IiRsaWJkaXIvJGxpbmtsaWIiCi0rCSAgICAgIGZpCi0rCSAgICBlbHNlCi0rCSAg ICAgICMgV2UgY2Fubm90IHNlZW0gdG8gaGFyZGNvZGUgaXQsIGd1ZXNzIHdlJ2xsIGZha2UgaXQu Ci0rCSAgICAgIGFkZF9kaXI9Ii1MJGxpYmRpciIKLSsJICAgICAgIyBUcnkgbG9va2luZyBmaXJz dCBpbiB0aGUgbG9jYXRpb24gd2UncmUgYmVpbmcgaW5zdGFsbGVkIHRvLgotKwkgICAgICBpZiB0 ZXN0IC1uICIkaW5zdF9wcmVmaXhfZGlyIjsgdGhlbgotKwkJY2FzZSAkbGliZGlyIGluCi0rCQkg IFtcXC9dKikKLSsJCSAgICBhZGRfZGlyPSIkYWRkX2RpciAtTCRpbnN0X3ByZWZpeF9kaXIkbGli ZGlyIgotKwkJICAgIDs7Ci0rCQllc2FjCi0rCSAgICAgIGZpCi0rCSAgICAgIGFkZD0iLWwkbmFt ZSIKLSsJICAgIGZpCi0rCi0rCSAgICBpZiB0ZXN0ICIkbGlua21vZGUiID0gcHJvZzsgdGhlbgot KwkgICAgICB0ZXN0IC1uICIkYWRkX2RpciIgJiYgZmluYWxpemVfZGVwbGlicz0iJGFkZF9kaXIg JGZpbmFsaXplX2RlcGxpYnMiCi0rCSAgICAgIHRlc3QgLW4gIiRhZGQiICYmIGZpbmFsaXplX2Rl cGxpYnM9IiRhZGQgJGZpbmFsaXplX2RlcGxpYnMiCi0rCSAgICBlbHNlCi0rCSAgICAgIHRlc3Qg LW4gIiRhZGRfZGlyIiAmJiBkZXBsaWJzPSIkYWRkX2RpciAkZGVwbGlicyIKLSsJICAgICAgdGVz dCAtbiAiJGFkZCIgJiYgZGVwbGlicz0iJGFkZCAkZGVwbGlicyIKLSsJICAgIGZpCi0rCSAgZmkK LSsJZWxpZiB0ZXN0ICIkbGlua21vZGUiID0gcHJvZzsgdGhlbgotKwkgICMgSGVyZSB3ZSBhc3N1 bWUgdGhhdCBvbmUgb2YgaGFyZGNvZGVfZGlyZWN0IG9yIGhhcmRjb2RlX21pbnVzX0wKLSsJICAj IGlzIG5vdCB1bnN1cHBvcnRlZC4gIFRoaXMgaXMgdmFsaWQgb24gYWxsIGtub3duIHN0YXRpYyBh bmQKLSsJICAjIHNoYXJlZCBwbGF0Zm9ybXMuCi0rCSAgaWYgdGVzdCAiJGhhcmRjb2RlX2RpcmVj dCIgIT0gdW5zdXBwb3J0ZWQ7IHRoZW4KLSsJICAgIHRlc3QgLW4gIiRvbGRfbGlicmFyeSIgJiYg bGlua2xpYj0iJG9sZF9saWJyYXJ5IgotKwkgICAgY29tcGlsZV9kZXBsaWJzPSIkZGlyLyRsaW5r bGliICRjb21waWxlX2RlcGxpYnMiCi0rCSAgICBmaW5hbGl6ZV9kZXBsaWJzPSIkZGlyLyRsaW5r bGliICRmaW5hbGl6ZV9kZXBsaWJzIgotKwkgIGVsc2UKLSsJICAgIGNvbXBpbGVfZGVwbGlicz0i LWwkbmFtZSAtTCRkaXIgJGNvbXBpbGVfZGVwbGlicyIKLSsJICAgIGZpbmFsaXplX2RlcGxpYnM9 Ii1sJG5hbWUgLUwkZGlyICRmaW5hbGl6ZV9kZXBsaWJzIgotKwkgIGZpCi0rCWVsaWYgdGVzdCAi JGJ1aWxkX2xpYnRvb2xfbGlicyIgPSB5ZXM7IHRoZW4KLSsJICAjIE5vdCBhIHNoYXJlZCBsaWJy YXJ5Ci0rCSAgaWYgdGVzdCAiJGRlcGxpYnNfY2hlY2tfbWV0aG9kIiAhPSBwYXNzX2FsbDsgdGhl bgotKwkgICAgIyBXZSdyZSB0cnlpbmcgbGluayBhIHNoYXJlZCBsaWJyYXJ5IGFnYWluc3QgYSBz dGF0aWMgb25lCi0rCSAgICAjIGJ1dCB0aGUgc3lzdGVtIGRvZXNuJ3Qgc3VwcG9ydCBpdC4KLSsK LSsJICAgICMgSnVzdCBwcmludCBhIHdhcm5pbmcgYW5kIGFkZCB0aGUgbGlicmFyeSB0byBkZXBl bmRlbmN5X2xpYnMgc28KLSsJICAgICMgdGhhdCB0aGUgcHJvZ3JhbSBjYW4gYmUgbGlua2VkIGFn YWluc3QgdGhlIHN0YXRpYyBsaWJyYXJ5LgotKwkgICAgJEVDSE8KLSsJICAgICRFQ0hPICIqKiog V2FybmluZzogVGhpcyBzeXN0ZW0gY2FuIG5vdCBsaW5rIHRvIHN0YXRpYyBsaWIgYXJjaGl2ZSAk bGliLiIKLSsJICAgICRFQ0hPICIqKiogSSBoYXZlIHRoZSBjYXBhYmlsaXR5IHRvIG1ha2UgdGhh dCBsaWJyYXJ5IGF1dG9tYXRpY2FsbHkgbGluayBpbiB3aGVuIgotKwkgICAgJEVDSE8gIioqKiB5 b3UgbGluayB0byB0aGlzIGxpYnJhcnkuICBCdXQgSSBjYW4gb25seSBkbyB0aGlzIGlmIHlvdSBo YXZlIGEiCi0rCSAgICAkRUNITyAiKioqIHNoYXJlZCB2ZXJzaW9uIG9mIHRoZSBsaWJyYXJ5LCB3 aGljaCB5b3UgZG8gbm90IGFwcGVhciB0byBoYXZlLiIKLSsJICAgIGlmIHRlc3QgIiRtb2R1bGUi ID0geWVzOyB0aGVuCi0rCSAgICAgICRFQ0hPICIqKiogQnV0IGFzIHlvdSB0cnkgdG8gYnVpbGQg YSBtb2R1bGUgbGlicmFyeSwgbGlidG9vbCB3aWxsIHN0aWxsIGNyZWF0ZSAiCi0rCSAgICAgICRF Q0hPICIqKiogYSBzdGF0aWMgbW9kdWxlLCB0aGF0IHNob3VsZCB3b3JrIGFzIGxvbmcgYXMgdGhl IGRsb3BlbmluZyBhcHBsaWNhdGlvbiIKLSsJICAgICAgJEVDSE8gIioqKiBpcyBsaW5rZWQgd2l0 aCB0aGUgLWRsb3BlbiBmbGFnIHRvIHJlc29sdmUgc3ltYm9scyBhdCBydW50aW1lLiIKLSsJICAg ICAgaWYgdGVzdCAteiAiJGdsb2JhbF9zeW1ib2xfcGlwZSI7IHRoZW4KLSsJCSRFQ0hPCi0rCQkk RUNITyAiKioqIEhvd2V2ZXIsIHRoaXMgd291bGQgb25seSB3b3JrIGlmIGxpYnRvb2wgd2FzIGFi bGUgdG8gZXh0cmFjdCBzeW1ib2wiCi0rCQkkRUNITyAiKioqIGxpc3RzIGZyb20gYSBwcm9ncmFt LCB1c2luZyBcYG5tJyBvciBlcXVpdmFsZW50LCBidXQgbGlidG9vbCBjb3VsZCIKLSsJCSRFQ0hP ICIqKiogbm90IGZpbmQgc3VjaCBhIHByb2dyYW0uICBTbywgdGhpcyBtb2R1bGUgaXMgcHJvYmFi bHkgdXNlbGVzcy4iCi0rCQkkRUNITyAiKioqIFxgbm0nIGZyb20gR05VIGJpbnV0aWxzIGFuZCBh IGZ1bGwgcmVidWlsZCBtYXkgaGVscC4iCi0rCSAgICAgIGZpCi0rCSAgICAgIGlmIHRlc3QgIiRi dWlsZF9vbGRfbGlicyIgPSBubzsgdGhlbgotKwkJYnVpbGRfbGlidG9vbF9saWJzPW1vZHVsZQot KwkJYnVpbGRfb2xkX2xpYnM9eWVzCi0rCSAgICAgIGVsc2UKLSsJCWJ1aWxkX2xpYnRvb2xfbGli cz1ubwotKwkgICAgICBmaQotKwkgICAgZmkKLSsJICBlbHNlCi0rCSAgICBkZXBsaWJzPSIkZGly LyRvbGRfbGlicmFyeSAkZGVwbGlicyIKLSsJICAgIGxpbmtfc3RhdGljPXllcwotKwkgIGZpCi0r CWZpICMgbGluayBzaGFyZWQvc3RhdGljIGxpYnJhcnk/Ci0rCi0rCWlmIHRlc3QgIiRsaW5rbW9k ZSIgPSBsaWI7IHRoZW4KLSsJICBpZiB0ZXN0IC1uICIkZGVwZW5kZW5jeV9saWJzIiAmJgotKwkg ICAgIHsgdGVzdCAiJGhhcmRjb2RlX2ludG9fbGlicyIgIT0geWVzIHx8Ci0rCSAgICAgICB0ZXN0 ICIkYnVpbGRfb2xkX2xpYnMiID0geWVzIHx8Ci0rCSAgICAgICB0ZXN0ICIkbGlua19zdGF0aWMi ID0geWVzOyB9OyB0aGVuCi0rCSAgICAjIEV4dHJhY3QgLVIgZnJvbSBkZXBlbmRlbmN5X2xpYnMK LSsJICAgIHRlbXBfZGVwbGlicz0KLSsJICAgIGZvciBsaWJkaXIgaW4gJGRlcGVuZGVuY3lfbGli czsgZG8KLSsJICAgICAgY2FzZSAkbGliZGlyIGluCi0rCSAgICAgIC1SKikgZnVuY19zdHJpcG5h bWUgJy1SJyAnJyAiJGxpYmRpciIKLSsJICAgICAgICAgICB0ZW1wX3hycGF0aD0kZnVuY19zdHJp cG5hbWVfcmVzdWx0Ci0rCQkgICBjYXNlICIgJHhycGF0aCAiIGluCi0rCQkgICAqIiAkdGVtcF94 cnBhdGggIiopIDs7Ci0rCQkgICAqKSB4cnBhdGg9IiR4cnBhdGggJHRlbXBfeHJwYXRoIjs7Ci0r CQkgICBlc2FjOzsKLSsJICAgICAgKikgdGVtcF9kZXBsaWJzPSIkdGVtcF9kZXBsaWJzICRsaWJk aXIiOzsKLSsJICAgICAgZXNhYwotKwkgICAgZG9uZQotKwkgICAgZGVwZW5kZW5jeV9saWJzPSIk dGVtcF9kZXBsaWJzIgotKwkgIGZpCi0rCi0rCSAgbmV3bGliX3NlYXJjaF9wYXRoPSIkbmV3bGli X3NlYXJjaF9wYXRoICRhYnNkaXIiCi0rCSAgIyBMaW5rIGFnYWluc3QgdGhpcyBsaWJyYXJ5Ci0r CSAgdGVzdCAiJGxpbmtfc3RhdGljIiA9IG5vICYmIG5ld2RlcGVuZGVuY3lfbGlicz0iJGFic19s YWRpci8kbGFuYW1lICRuZXdkZXBlbmRlbmN5X2xpYnMiCi0rCSAgIyAuLi4gYW5kIGl0cyBkZXBl bmRlbmN5X2xpYnMKLSsJICB0bXBfbGlicz0KLSsJICBmb3IgZGVwbGliIGluICRkZXBlbmRlbmN5 X2xpYnM7IGRvCi0rCSAgICBuZXdkZXBlbmRlbmN5X2xpYnM9IiRkZXBsaWIgJG5ld2RlcGVuZGVu Y3lfbGlicyIKLSsJICAgIGlmICRvcHRfZHVwbGljYXRlX2RlcHMgOyB0aGVuCi0rCSAgICAgIGNh c2UgIiR0bXBfbGlicyAiIGluCi0rCSAgICAgICoiICRkZXBsaWIgIiopIHNwZWNpYWxkZXBsaWJz PSIkc3BlY2lhbGRlcGxpYnMgJGRlcGxpYiIgOzsKLSsJICAgICAgZXNhYwotKwkgICAgZmkKLSsJ ICAgIHRtcF9saWJzPSIkdG1wX2xpYnMgJGRlcGxpYiIKLSsJICBkb25lCi0rCi0rCSAgaWYgdGVz dCAiJGxpbmtfYWxsX2RlcGxpYnMiICE9IG5vOyB0aGVuCi0rCSAgICAjIEFkZCB0aGUgc2VhcmNo IHBhdGhzIG9mIGFsbCBkZXBlbmRlbmN5IGxpYnJhcmllcwotKwkgICAgZm9yIGRlcGxpYiBpbiAk ZGVwZW5kZW5jeV9saWJzOyBkbwotKwkgICAgICBjYXNlICRkZXBsaWIgaW4KLSsJICAgICAgLUwq KSBwYXRoPSIkZGVwbGliIiA7OwotKwkgICAgICAqLmxhKQotKwkgICAgICAgIGZ1bmNfZGlybmFt ZSAiJGRlcGxpYiIgIiIgIi4iCi0rCQlkaXI9IiRmdW5jX2Rpcm5hbWVfcmVzdWx0IgotKwkJIyBX ZSBuZWVkIGFuIGFic29sdXRlIHBhdGguCi0rCQljYXNlICRkaXIgaW4KLSsJCVtcXC9dKiB8IFtB LVphLXpdOltcXC9dKikgYWJzZGlyPSIkZGlyIiA7OwotKwkJKikKLSsJCSAgYWJzZGlyPWBjZCAi JGRpciIgJiYgcHdkYAotKwkJICBpZiB0ZXN0IC16ICIkYWJzZGlyIjsgdGhlbgotKwkJICAgIGZ1 bmNfd2FybmluZyAiY2Fubm90IGRldGVybWluZSBhYnNvbHV0ZSBkaXJlY3RvcnkgbmFtZSBvZiBc YCRkaXInIgotKwkJICAgIGFic2Rpcj0iJGRpciIKLSsJCSAgZmkKLSsJCSAgOzsKLSsJCWVzYWMK LSsJCWlmICRHUkVQICJeaW5zdGFsbGVkPW5vIiAkZGVwbGliID4gL2Rldi9udWxsOyB0aGVuCi0r CQljYXNlICRob3N0IGluCi0rCQkqLSotZGFyd2luKikKLSsJCSAgZGVwZGVwbD0KLSsJCSAgZXZh bCBkZXBsaWJyYXJ5X25hbWVzPWAke1NFRH0gLW4gLWUgJ3MvXmxpYnJhcnlfbmFtZXM9XCguKlwp JC9cMS9wJyAkZGVwbGliYAotKwkJICBpZiB0ZXN0IC1uICIkZGVwbGlicmFyeV9uYW1lcyIgOyB0 aGVuCi0rCQkgICAgZm9yIHRtcCBpbiAkZGVwbGlicmFyeV9uYW1lcyA7IGRvCi0rCQkgICAgICBk ZXBkZXBsPSR0bXAKLSsJCSAgICBkb25lCi0rCQkgICAgaWYgdGVzdCAtZiAiJGFic2Rpci8kb2Jq ZGlyLyRkZXBkZXBsIiA7IHRoZW4KLSsJCSAgICAgIGRlcGRlcGw9IiRhYnNkaXIvJG9iamRpci8k ZGVwZGVwbCIKLSsJCSAgICAgIGRhcndpbl9pbnN0YWxsX25hbWU9YCR7T1RPT0x9IC1MICRkZXBk ZXBsIHwgYXdrICd7aWYgKE5SID09IDIpIHtwcmludCAkMTtleGl0fX0nYAotKyAgICAgICAgICAg ICAgICAgICAgICBpZiB0ZXN0IC16ICIkZGFyd2luX2luc3RhbGxfbmFtZSI7IHRoZW4KLSsgICAg ICAgICAgICAgICAgICAgICAgICAgIGRhcndpbl9pbnN0YWxsX25hbWU9YCR7T1RPT0w2NH0gLUwg JGRlcGRlcGwgIHwgYXdrICd7aWYgKE5SID09IDIpIHtwcmludCAkMTtleGl0fX0nYAotKyAgICAg ICAgICAgICAgICAgICAgICBmaQotKwkJICAgICAgY29tcGlsZXJfZmxhZ3M9IiRjb21waWxlcl9m bGFncyAke3dsfS1keWxpYl9maWxlICR7d2x9JHtkYXJ3aW5faW5zdGFsbF9uYW1lfToke2RlcGRl cGx9IgotKwkJICAgICAgbGlua2VyX2ZsYWdzPSIkbGlua2VyX2ZsYWdzIC1keWxpYl9maWxlICR7 ZGFyd2luX2luc3RhbGxfbmFtZX06JHtkZXBkZXBsfSIKLSsJCSAgICAgIHBhdGg9Ci0rCQkgICAg ZmkKLSsJCSAgZmkKLSsJCSAgOzsKLSsJCSopCi0rCQkgIHBhdGg9Ii1MJGFic2Rpci8kb2JqZGly IgotKwkJICA7OwotKwkJZXNhYwotKwkJZWxzZQotKwkJICBldmFsIGxpYmRpcj1gJHtTRUR9IC1u IC1lICdzL15saWJkaXI9XCguKlwpJC9cMS9wJyAkZGVwbGliYAotKwkJICB0ZXN0IC16ICIkbGli ZGlyIiAmJiBcCi0rCQkgICAgZnVuY19mYXRhbF9lcnJvciAiXGAkZGVwbGliJyBpcyBub3QgYSB2 YWxpZCBsaWJ0b29sIGFyY2hpdmUiCi0rCQkgIHRlc3QgIiRhYnNkaXIiICE9ICIkbGliZGlyIiAm JiBcCi0rCQkgICAgZnVuY193YXJuaW5nICJcYCRkZXBsaWInIHNlZW1zIHRvIGJlIG1vdmVkIgot KwotKwkJICBwYXRoPSItTCRhYnNkaXIiCi0rCQlmaQotKwkJOzsKLSsJICAgICAgZXNhYwotKwkg ICAgICBjYXNlICIgJGRlcGxpYnMgIiBpbgotKwkgICAgICAqIiAkcGF0aCAiKikgOzsKLSsJICAg ICAgKikgZGVwbGlicz0iJHBhdGggJGRlcGxpYnMiIDs7Ci0rCSAgICAgIGVzYWMKLSsJICAgIGRv bmUKLSsJICBmaSAjIGxpbmtfYWxsX2RlcGxpYnMgIT0gbm8KLSsJZmkgIyBsaW5rbW9kZSA9IGxp YgotKyAgICAgIGRvbmUgIyBmb3IgZGVwbGliIGluICRsaWJzCi0rICAgICAgaWYgdGVzdCAiJHBh c3MiID0gbGluazsgdGhlbgotKwlpZiB0ZXN0ICIkbGlua21vZGUiID0gInByb2ciOyB0aGVuCi0r CSAgY29tcGlsZV9kZXBsaWJzPSIkbmV3X2luaGVyaXRlZF9saW5rZXJfZmxhZ3MgJGNvbXBpbGVf ZGVwbGlicyIKLSsJICBmaW5hbGl6ZV9kZXBsaWJzPSIkbmV3X2luaGVyaXRlZF9saW5rZXJfZmxh Z3MgJGZpbmFsaXplX2RlcGxpYnMiCi0rCWVsc2UKLSsJICBjb21waWxlcl9mbGFncz0iJGNvbXBp bGVyX2ZsYWdzICJgJEVDSE8gIlggJG5ld19pbmhlcml0ZWRfbGlua2VyX2ZsYWdzIiB8ICRYc2Vk IC1lICdzJSBcKFteICRdKlwpLmx0ZnJhbWV3b3JrJSAtZnJhbWV3b3JrIFwxJWcnYAotKwlmaQot KyAgICAgIGZpCi0rICAgICAgZGVwZW5kZW5jeV9saWJzPSIkbmV3ZGVwZW5kZW5jeV9saWJzIgot KyAgICAgIGlmIHRlc3QgIiRwYXNzIiA9IGRscHJlb3BlbjsgdGhlbgotKwkjIExpbmsgdGhlIGRs cHJlb3BlbmVkIGxpYnJhcmllcyBiZWZvcmUgb3RoZXIgbGlicmFyaWVzCi0rCWZvciBkZXBsaWIg aW4gJHNhdmVfZGVwbGliczsgZG8KLSsJICBkZXBsaWJzPSIkZGVwbGliICRkZXBsaWJzIgotKwlk b25lCi0rICAgICAgZmkKLSsgICAgICBpZiB0ZXN0ICIkcGFzcyIgIT0gZGxvcGVuOyB0aGVuCi0r CWlmIHRlc3QgIiRwYXNzIiAhPSBjb252OyB0aGVuCi0rCSAgIyBNYWtlIHN1cmUgbGliX3NlYXJj aF9wYXRoIGNvbnRhaW5zIG9ubHkgdW5pcXVlIGRpcmVjdG9yaWVzLgotKwkgIGxpYl9zZWFyY2hf cGF0aD0KLSsJICBmb3IgZGlyIGluICRuZXdsaWJfc2VhcmNoX3BhdGg7IGRvCi0rCSAgICBjYXNl ICIkbGliX3NlYXJjaF9wYXRoICIgaW4KLSsJICAgICoiICRkaXIgIiopIDs7Ci0rCSAgICAqKSBs aWJfc2VhcmNoX3BhdGg9IiRsaWJfc2VhcmNoX3BhdGggJGRpciIgOzsKLSsJICAgIGVzYWMKLSsJ ICBkb25lCi0rCSAgbmV3bGliX3NlYXJjaF9wYXRoPQotKwlmaQotKwotKwlpZiB0ZXN0ICIkbGlu a21vZGUsJHBhc3MiICE9ICJwcm9nLGxpbmsiOyB0aGVuCi0rCSAgdmFycz0iZGVwbGlicyIKLSsJ ZWxzZQotKwkgIHZhcnM9ImNvbXBpbGVfZGVwbGlicyBmaW5hbGl6ZV9kZXBsaWJzIgotKwlmaQot Kwlmb3IgdmFyIGluICR2YXJzIGRlcGVuZGVuY3lfbGliczsgZG8KLSsJICAjIEFkZCBsaWJyYXJp ZXMgdG8gJHZhciBpbiByZXZlcnNlIG9yZGVyCi0rCSAgZXZhbCB0bXBfbGlicz1cIlwkJHZhclwi Ci0rCSAgbmV3X2xpYnM9Ci0rCSAgZm9yIGRlcGxpYiBpbiAkdG1wX2xpYnM7IGRvCi0rCSAgICAj IEZJWE1FOiBQZWRhbnRpY2FsbHksIHRoaXMgaXMgdGhlIHJpZ2h0IHRoaW5nIHRvIGRvLCBzbwot KwkgICAgIyAgICAgICAgdGhhdCBzb21lIG5hc3R5IGRlcGVuZGVuY3kgbG9vcCBpc24ndCBhY2Np ZGVudGFsbHkKLSsJICAgICMgICAgICAgIGJyb2tlbjoKLSsJICAgICNuZXdfbGlicz0iJGRlcGxp YiAkbmV3X2xpYnMiCi0rCSAgICAjIFByYWdtYXRpY2FsbHksIHRoaXMgc2VlbXMgdG8gY2F1c2Ug dmVyeSBmZXcgcHJvYmxlbXMgaW4KLSsJICAgICMgcHJhY3RpY2U6Ci0rCSAgICBjYXNlICRkZXBs aWIgaW4KLSsJICAgIC1MKikgbmV3X2xpYnM9IiRkZXBsaWIgJG5ld19saWJzIiA7OwotKwkgICAg LVIqKSA7OwotKwkgICAgKikKLSsJICAgICAgIyBBbmQgaGVyZSBpcyB0aGUgcmVhc29uOiB3aGVu IGEgbGlicmFyeSBhcHBlYXJzIG1vcmUKLSsJICAgICAgIyB0aGFuIG9uY2UgYXMgYW4gZXhwbGlj aXQgZGVwZW5kZW5jZSBvZiBhIGxpYnJhcnksIG9yCi0rCSAgICAgICMgaXMgaW1wbGljaXRseSBs aW5rZWQgaW4gbW9yZSB0aGFuIG9uY2UgYnkgdGhlCi0rCSAgICAgICMgY29tcGlsZXIsIGl0IGlz IGNvbnNpZGVyZWQgc3BlY2lhbCwgYW5kIG11bHRpcGxlCi0rCSAgICAgICMgb2NjdXJyZW5jZXMg dGhlcmVvZiBhcmUgbm90IHJlbW92ZWQuICBDb21wYXJlIHRoaXMKLSsJICAgICAgIyB3aXRoIGhh dmluZyB0aGUgc2FtZSBsaWJyYXJ5IGJlaW5nIGxpc3RlZCBhcyBhCi0rCSAgICAgICMgZGVwZW5k ZW5jeSBvZiBtdWx0aXBsZSBvdGhlciBsaWJyYXJpZXM6IGluIHRoaXMgY2FzZSwKLSsJICAgICAg IyB3ZSBrbm93IChwZWRhbnRpY2FsbHksIHdlIGFzc3VtZSkgdGhlIGxpYnJhcnkgZG9lcyBub3QK LSsJICAgICAgIyBuZWVkIHRvIGJlIGxpc3RlZCBtb3JlIHRoYW4gb25jZSwgc28gd2Uga2VlcCBv bmx5IHRoZQotKwkgICAgICAjIGxhc3QgY29weS4gIFRoaXMgaXMgbm90IGFsd2F5cyByaWdodCwg YnV0IGl0IGlzIHJhcmUKLSsJICAgICAgIyBlbm91Z2ggdGhhdCB3ZSByZXF1aXJlIHVzZXJzIHRo YXQgcmVhbGx5IG1lYW4gdG8gcGxheQotKwkgICAgICAjIHN1Y2ggdW5wb3J0YWJsZSBsaW5raW5n IHRyaWNrcyB0byBsaW5rIHRoZSBsaWJyYXJ5Ci0rCSAgICAgICMgdXNpbmcgLVdsLC1sbmFtZSwg c28gdGhhdCBsaWJ0b29sIGRvZXMgbm90IGNvbnNpZGVyIGl0Ci0rCSAgICAgICMgZm9yIGR1cGxp Y2F0ZSByZW1vdmFsLgotKwkgICAgICBjYXNlICIgJHNwZWNpYWxkZXBsaWJzICIgaW4KLSsJICAg ICAgKiIgJGRlcGxpYiAiKikgbmV3X2xpYnM9IiRkZXBsaWIgJG5ld19saWJzIiA7OwotKwkgICAg ICAqKQotKwkJY2FzZSAiICRuZXdfbGlicyAiIGluCi0rCQkqIiAkZGVwbGliICIqKSA7OwotKwkJ KikgbmV3X2xpYnM9IiRkZXBsaWIgJG5ld19saWJzIiA7OwotKwkJZXNhYwotKwkJOzsKLSsJICAg ICAgZXNhYwotKwkgICAgICA7OwotKwkgICAgZXNhYwotKwkgIGRvbmUKLSsJICB0bXBfbGlicz0K LSsJICBmb3IgZGVwbGliIGluICRuZXdfbGliczsgZG8KLSsJICAgIGNhc2UgJGRlcGxpYiBpbgot KwkgICAgLUwqKQotKwkgICAgICBjYXNlICIgJHRtcF9saWJzICIgaW4KLSsJICAgICAgKiIgJGRl cGxpYiAiKikgOzsKLSsJICAgICAgKikgdG1wX2xpYnM9IiR0bXBfbGlicyAkZGVwbGliIiA7Owot KwkgICAgICBlc2FjCi0rCSAgICAgIDs7Ci0rCSAgICAqKSB0bXBfbGlicz0iJHRtcF9saWJzICRk ZXBsaWIiIDs7Ci0rCSAgICBlc2FjCi0rCSAgZG9uZQotKwkgIGV2YWwgJHZhcj1cIiR0bXBfbGli c1wiCi0rCWRvbmUgIyBmb3IgdmFyCi0rICAgICAgZmkKLSsgICAgICAjIExhc3Qgc3RlcDogcmVt b3ZlIHJ1bnRpbWUgbGlicyBmcm9tIGRlcGVuZGVuY3lfbGlicwotKyAgICAgICMgKHRoZXkgc3Rh eSBpbiBkZXBsaWJzKQotKyAgICAgIHRtcF9saWJzPQotKyAgICAgIGZvciBpIGluICRkZXBlbmRl bmN5X2xpYnMgOyBkbwotKwljYXNlICIgJHByZWRlcHMgJHBvc3RkZXBzICRjb21waWxlcl9saWJf c2VhcmNoX3BhdGggIiBpbgotKwkqIiAkaSAiKikKLSsJICBpPSIiCi0rCSAgOzsKLSsJZXNhYwot KwlpZiB0ZXN0IC1uICIkaSIgOyB0aGVuCi0rCSAgdG1wX2xpYnM9IiR0bXBfbGlicyAkaSIKLSsJ ZmkKLSsgICAgICBkb25lCi0rICAgICAgZGVwZW5kZW5jeV9saWJzPSR0bXBfbGlicwotKyAgICBk b25lICMgZm9yIHBhc3MKLSsgICAgaWYgdGVzdCAiJGxpbmttb2RlIiA9IHByb2c7IHRoZW4KLSsg ICAgICBkbGZpbGVzPSIkbmV3ZGxmaWxlcyIKLSsgICAgZmkKLSsgICAgaWYgdGVzdCAiJGxpbmtt b2RlIiA9IHByb2cgfHwgdGVzdCAiJGxpbmttb2RlIiA9IGxpYjsgdGhlbgotKyAgICAgIGRscHJl ZmlsZXM9IiRuZXdkbHByZWZpbGVzIgotKyAgICBmaQotKwotKyAgICBjYXNlICRsaW5rbW9kZSBp bgotKyAgICBvbGRsaWIpCi0rICAgICAgaWYgdGVzdCAtbiAiJGRsZmlsZXMkZGxwcmVmaWxlcyIg fHwgdGVzdCAiJGRsc2VsZiIgIT0gbm87IHRoZW4KLSsJZnVuY193YXJuaW5nICJcYC1kbG9wZW4n IGlzIGlnbm9yZWQgZm9yIGFyY2hpdmVzIgotKyAgICAgIGZpCi0rCi0rICAgICAgY2FzZSAiICRk ZXBsaWJzIiBpbgotKyAgICAgICpcIC1sKiB8ICpcIC1MKikKLSsJZnVuY193YXJuaW5nICJcYC1s JyBhbmQgXGAtTCcgYXJlIGlnbm9yZWQgZm9yIGFyY2hpdmVzIiA7OwotKyAgICAgIGVzYWMKLSsK LSsgICAgICB0ZXN0IC1uICIkcnBhdGgiICYmIFwKLSsJZnVuY193YXJuaW5nICJcYC1ycGF0aCcg aXMgaWdub3JlZCBmb3IgYXJjaGl2ZXMiCi0rCi0rICAgICAgdGVzdCAtbiAiJHhycGF0aCIgJiYg XAotKwlmdW5jX3dhcm5pbmcgIlxgLVInIGlzIGlnbm9yZWQgZm9yIGFyY2hpdmVzIgotKwotKyAg ICAgIHRlc3QgLW4gIiR2aW5mbyIgJiYgXAotKwlmdW5jX3dhcm5pbmcgIlxgLXZlcnNpb24taW5m by8tdmVyc2lvbi1udW1iZXInIGlzIGlnbm9yZWQgZm9yIGFyY2hpdmVzIgotKwotKyAgICAgIHRl c3QgLW4gIiRyZWxlYXNlIiAmJiBcCi0rCWZ1bmNfd2FybmluZyAiXGAtcmVsZWFzZScgaXMgaWdu b3JlZCBmb3IgYXJjaGl2ZXMiCi0rCi0rICAgICAgdGVzdCAtbiAiJGV4cG9ydF9zeW1ib2xzJGV4 cG9ydF9zeW1ib2xzX3JlZ2V4IiAmJiBcCi0rCWZ1bmNfd2FybmluZyAiXGAtZXhwb3J0LXN5bWJv bHMnIGlzIGlnbm9yZWQgZm9yIGFyY2hpdmVzIgotKwotKyAgICAgICMgTm93IHNldCB0aGUgdmFy aWFibGVzIGZvciBidWlsZGluZyBvbGQgbGlicmFyaWVzLgotKyAgICAgIGJ1aWxkX2xpYnRvb2xf bGlicz1ubwotKyAgICAgIG9sZGxpYnM9IiRvdXRwdXQiCi0rICAgICAgb2Jqcz0iJG9ianMkb2xk X2RlcGxpYnMiCi0rICAgICAgOzsKLSsKLSsgICAgbGliKQotKyAgICAgICMgTWFrZSBzdXJlIHdl IG9ubHkgZ2VuZXJhdGUgbGlicmFyaWVzIG9mIHRoZSBmb3JtIGBsaWJOQU1FLmxhJy4KLSsgICAg ICBjYXNlICRvdXRwdXRuYW1lIGluCi0rICAgICAgbGliKikKLSsJZnVuY19zdHJpcG5hbWUgJ2xp YicgJy5sYScgIiRvdXRwdXRuYW1lIgotKwluYW1lPSRmdW5jX3N0cmlwbmFtZV9yZXN1bHQKLSsJ ZXZhbCBzaGFyZWRfZXh0PVwiJHNocmV4dF9jbWRzXCIKLSsJZXZhbCBsaWJuYW1lPVwiJGxpYm5h bWVfc3BlY1wiCi0rCTs7Ci0rICAgICAgKikKLSsJdGVzdCAiJG1vZHVsZSIgPSBubyAmJiBcCi0r CSAgZnVuY19mYXRhbF9oZWxwICJsaWJ0b29sIGxpYnJhcnkgXGAkb3V0cHV0JyBtdXN0IGJlZ2lu IHdpdGggXGBsaWInIgotKwotKwlpZiB0ZXN0ICIkbmVlZF9saWJfcHJlZml4IiAhPSBubzsgdGhl bgotKwkgICMgQWRkIHRoZSAibGliIiBwcmVmaXggZm9yIG1vZHVsZXMgaWYgcmVxdWlyZWQKLSsJ ICBmdW5jX3N0cmlwbmFtZSAnJyAnLmxhJyAiJG91dHB1dG5hbWUiCi0rCSAgbmFtZT0kZnVuY19z dHJpcG5hbWVfcmVzdWx0Ci0rCSAgZXZhbCBzaGFyZWRfZXh0PVwiJHNocmV4dF9jbWRzXCIKLSsJ ICBldmFsIGxpYm5hbWU9XCIkbGlibmFtZV9zcGVjXCIKLSsJZWxzZQotKwkgIGZ1bmNfc3RyaXBu YW1lICcnICcubGEnICIkb3V0cHV0bmFtZSIKLSsJICBsaWJuYW1lPSRmdW5jX3N0cmlwbmFtZV9y ZXN1bHQKLSsJZmkKLSsJOzsKLSsgICAgICBlc2FjCi0rCi0rICAgICAgaWYgdGVzdCAtbiAiJG9i anMiOyB0aGVuCi0rCWlmIHRlc3QgIiRkZXBsaWJzX2NoZWNrX21ldGhvZCIgIT0gcGFzc19hbGw7 IHRoZW4KLSsJICBmdW5jX2ZhdGFsX2Vycm9yICJjYW5ub3QgYnVpbGQgbGlidG9vbCBsaWJyYXJ5 IFxgJG91dHB1dCcgZnJvbSBub24tbGlidG9vbCBvYmplY3RzIG9uIHRoaXMgaG9zdDokb2JqcyIK LSsJZWxzZQotKwkgICRFQ0hPCi0rCSAgJEVDSE8gIioqKiBXYXJuaW5nOiBMaW5raW5nIHRoZSBz aGFyZWQgbGlicmFyeSAkb3V0cHV0IGFnYWluc3QgdGhlIG5vbi1saWJ0b29sIgotKwkgICRFQ0hP ICIqKiogb2JqZWN0cyAkb2JqcyBpcyBub3QgcG9ydGFibGUhIgotKwkgIGxpYm9ianM9IiRsaWJv YmpzICRvYmpzIgotKwlmaQotKyAgICAgIGZpCi0rCi0rICAgICAgdGVzdCAiJGRsc2VsZiIgIT0g bm8gJiYgXAotKwlmdW5jX3dhcm5pbmcgIlxgLWRsb3BlbiBzZWxmJyBpcyBpZ25vcmVkIGZvciBs aWJ0b29sIGxpYnJhcmllcyIKLSsKLSsgICAgICBzZXQgZHVtbXkgJHJwYXRoCi0rICAgICAgc2hp ZnQKLSsgICAgICB0ZXN0ICIkIyIgLWd0IDEgJiYgXAotKwlmdW5jX3dhcm5pbmcgImlnbm9yaW5n IG11bHRpcGxlIFxgLXJwYXRoJ3MgZm9yIGEgbGlidG9vbCBsaWJyYXJ5IgotKwotKyAgICAgIGlu c3RhbGxfbGliZGlyPSIkMSIKLSsKLSsgICAgICBvbGRsaWJzPQotKyAgICAgIGlmIHRlc3QgLXog IiRycGF0aCI7IHRoZW4KLSsJaWYgdGVzdCAiJGJ1aWxkX2xpYnRvb2xfbGlicyIgPSB5ZXM7IHRo ZW4KLSsJICAjIEJ1aWxkaW5nIGEgbGlidG9vbCBjb252ZW5pZW5jZSBsaWJyYXJ5LgotKwkgICMg U29tZSBjb21waWxlcnMgaGF2ZSBwcm9ibGVtcyB3aXRoIGEgYC5hbCcgZXh0ZW5zaW9uIHNvCi0r CSAgIyBjb252ZW5pZW5jZSBsaWJyYXJpZXMgc2hvdWxkIGhhdmUgdGhlIHNhbWUgZXh0ZW5zaW9u IGFuCi0rCSAgIyBhcmNoaXZlIG5vcm1hbGx5IHdvdWxkLgotKwkgIG9sZGxpYnM9IiRvdXRwdXRf b2JqZGlyLyRsaWJuYW1lLiRsaWJleHQgJG9sZGxpYnMiCi0rCSAgYnVpbGRfbGlidG9vbF9saWJz PWNvbnZlbmllbmNlCi0rCSAgYnVpbGRfb2xkX2xpYnM9eWVzCi0rCWZpCi0rCi0rCXRlc3QgLW4g IiR2aW5mbyIgJiYgXAotKwkgIGZ1bmNfd2FybmluZyAiXGAtdmVyc2lvbi1pbmZvLy12ZXJzaW9u LW51bWJlcicgaXMgaWdub3JlZCBmb3IgY29udmVuaWVuY2UgbGlicmFyaWVzIgotKwotKwl0ZXN0 IC1uICIkcmVsZWFzZSIgJiYgXAotKwkgIGZ1bmNfd2FybmluZyAiXGAtcmVsZWFzZScgaXMgaWdu b3JlZCBmb3IgY29udmVuaWVuY2UgbGlicmFyaWVzIgotKyAgICAgIGVsc2UKLSsKLSsJIyBQYXJz ZSB0aGUgdmVyc2lvbiBpbmZvcm1hdGlvbiBhcmd1bWVudC4KLSsJc2F2ZV9pZnM9IiRJRlMiOyBJ RlM9JzonCi0rCXNldCBkdW1teSAkdmluZm8gMCAwIDAKLSsJc2hpZnQKLSsJSUZTPSIkc2F2ZV9p ZnMiCi0rCi0rCXRlc3QgLW4gIiQ3IiAmJiBcCi0rCSAgZnVuY19mYXRhbF9oZWxwICJ0b28gbWFu eSBwYXJhbWV0ZXJzIHRvIFxgLXZlcnNpb24taW5mbyciCi0rCi0rCSMgY29udmVydCBhYnNvbHV0 ZSB2ZXJzaW9uIG51bWJlcnMgdG8gbGlidG9vbCBhZ2VzCi0rCSMgdGhpcyByZXRhaW5zIGNvbXBh dGliaWxpdHkgd2l0aCAubGEgZmlsZXMgYW5kIGF0dGVtcHRzCi0rCSMgdG8gbWFrZSB0aGUgY29k ZSBiZWxvdyBhIGJpdCBtb3JlIGNvbXByZWhlbnNpYmxlCi0rCi0rCWNhc2UgJHZpbmZvX251bWJl ciBpbgotKwl5ZXMpCi0rCSAgbnVtYmVyX21ham9yPSIkMSIKLSsJICBudW1iZXJfbWlub3I9IiQy IgotKwkgIG51bWJlcl9yZXZpc2lvbj0iJDMiCi0rCSAgIwotKwkgICMgVGhlcmUgYXJlIHJlYWxs eSBvbmx5IHR3byBraW5kcyAtLSB0aG9zZSB0aGF0Ci0rCSAgIyB1c2UgdGhlIGN1cnJlbnQgcmV2 aXNpb24gYXMgdGhlIG1ham9yIHZlcnNpb24KLSsJICAjIGFuZCB0aG9zZSB0aGF0IHN1YnRyYWN0 IGFnZSBhbmQgdXNlIGFnZSBhcwotKwkgICMgYSBtaW5vciB2ZXJzaW9uLiAgQnV0LCB0aGVuIHRo ZXJlIGlzIGlyaXgKLSsJICAjIHdoaWNoIGhhcyBhbiBleHRyYSAxIGFkZGVkIGp1c3QgZm9yIGZ1 bgotKwkgICMKLSsJICBjYXNlICR2ZXJzaW9uX3R5cGUgaW4KLSsJICBkYXJ3aW58bGludXh8b3Nm fHdpbmRvd3N8bm9uZSkKLSsJICAgIGZ1bmNfYXJpdGggJG51bWJlcl9tYWpvciArICRudW1iZXJf bWlub3IKLSsJICAgIGN1cnJlbnQ9JGZ1bmNfYXJpdGhfcmVzdWx0Ci0rCSAgICBhZ2U9IiRudW1i ZXJfbWlub3IiCi0rCSAgICByZXZpc2lvbj0iJG51bWJlcl9yZXZpc2lvbiIKLSsJICAgIDs7Ci0r CSAgZnJlZWJzZC1hb3V0fGZyZWVic2QtZWxmfHN1bm9zKQotKwkgICAgY3VycmVudD0iJG51bWJl cl9tYWpvciIKLSsJICAgIHJldmlzaW9uPSIkbnVtYmVyX21pbm9yIgotKwkgICAgYWdlPSIwIgot KwkgICAgOzsKLSsJICBpcml4fG5vbnN0b3B1eCkKLSsJICAgIGZ1bmNfYXJpdGggJG51bWJlcl9t YWpvciArICRudW1iZXJfbWlub3IKLSsJICAgIGN1cnJlbnQ9JGZ1bmNfYXJpdGhfcmVzdWx0Ci0r CSAgICBhZ2U9IiRudW1iZXJfbWlub3IiCi0rCSAgICByZXZpc2lvbj0iJG51bWJlcl9taW5vciIK LSsJICAgIGx0X2lyaXhfaW5jcmVtZW50PW5vCi0rCSAgICA7OwotKwkgIGVzYWMKLSsJICA7Owot KwlubykKLSsJICBjdXJyZW50PSIkMSIKLSsJICByZXZpc2lvbj0iJDIiCi0rCSAgYWdlPSIkMyIK LSsJICA7OwotKwllc2FjCi0rCi0rCSMgQ2hlY2sgdGhhdCBlYWNoIG9mIHRoZSB0aGluZ3MgYXJl IHZhbGlkIG51bWJlcnMuCi0rCWNhc2UgJGN1cnJlbnQgaW4KLSsJMHxbMS05XXxbMS05XVswLTld fFsxLTldWzAtOV1bMC05XXxbMS05XVswLTldWzAtOV1bMC05XXxbMS05XVswLTldWzAtOV1bMC05 XVswLTldKSA7OwotKwkqKQotKwkgIGZ1bmNfZXJyb3IgIkNVUlJFTlQgXGAkY3VycmVudCcgbXVz dCBiZSBhIG5vbm5lZ2F0aXZlIGludGVnZXIiCi0rCSAgZnVuY19mYXRhbF9lcnJvciAiXGAkdmlu Zm8nIGlzIG5vdCB2YWxpZCB2ZXJzaW9uIGluZm9ybWF0aW9uIgotKwkgIDs7Ci0rCWVzYWMKLSsK LSsJY2FzZSAkcmV2aXNpb24gaW4KLSsJMHxbMS05XXxbMS05XVswLTldfFsxLTldWzAtOV1bMC05 XXxbMS05XVswLTldWzAtOV1bMC05XXxbMS05XVswLTldWzAtOV1bMC05XVswLTldKSA7OwotKwkq KQotKwkgIGZ1bmNfZXJyb3IgIlJFVklTSU9OIFxgJHJldmlzaW9uJyBtdXN0IGJlIGEgbm9ubmVn YXRpdmUgaW50ZWdlciIKLSsJICBmdW5jX2ZhdGFsX2Vycm9yICJcYCR2aW5mbycgaXMgbm90IHZh bGlkIHZlcnNpb24gaW5mb3JtYXRpb24iCi0rCSAgOzsKLSsJZXNhYwotKwotKwljYXNlICRhZ2Ug aW4KLSsJMHxbMS05XXxbMS05XVswLTldfFsxLTldWzAtOV1bMC05XXxbMS05XVswLTldWzAtOV1b MC05XXxbMS05XVswLTldWzAtOV1bMC05XVswLTldKSA7OwotKwkqKQotKwkgIGZ1bmNfZXJyb3Ig IkFHRSBcYCRhZ2UnIG11c3QgYmUgYSBub25uZWdhdGl2ZSBpbnRlZ2VyIgotKwkgIGZ1bmNfZmF0 YWxfZXJyb3IgIlxgJHZpbmZvJyBpcyBub3QgdmFsaWQgdmVyc2lvbiBpbmZvcm1hdGlvbiIKLSsJ ICA7OwotKwllc2FjCi0rCi0rCWlmIHRlc3QgIiRhZ2UiIC1ndCAiJGN1cnJlbnQiOyB0aGVuCi0r CSAgZnVuY19lcnJvciAiQUdFIFxgJGFnZScgaXMgZ3JlYXRlciB0aGFuIHRoZSBjdXJyZW50IGlu dGVyZmFjZSBudW1iZXIgXGAkY3VycmVudCciCi0rCSAgZnVuY19mYXRhbF9lcnJvciAiXGAkdmlu Zm8nIGlzIG5vdCB2YWxpZCB2ZXJzaW9uIGluZm9ybWF0aW9uIgotKwlmaQotKwotKwkjIENhbGN1 bGF0ZSB0aGUgdmVyc2lvbiB2YXJpYWJsZXMuCi0rCW1ham9yPQotKwl2ZXJzdWZmaXg9Ci0rCXZl cnN0cmluZz0KLSsJY2FzZSAkdmVyc2lvbl90eXBlIGluCi0rCW5vbmUpIDs7Ci0rCi0rCWRhcndp bikKLSsJICAjIExpa2UgTGludXgsIGJ1dCB3aXRoIHRoZSBjdXJyZW50IHZlcnNpb24gYXZhaWxh YmxlIGluCi0rCSAgIyB2ZXJzdHJpbmcgZm9yIGNvZGluZyBpdCBpbnRvIHRoZSBsaWJyYXJ5IGhl YWRlcgotKwkgIGZ1bmNfYXJpdGggJGN1cnJlbnQgLSAkYWdlCi0rCSAgbWFqb3I9LiRmdW5jX2Fy aXRoX3Jlc3VsdAotKwkgIHZlcnN1ZmZpeD0iJG1ham9yLiRhZ2UuJHJldmlzaW9uIgotKwkgICMg RGFyd2luIGxkIGRvZXNuJ3QgbGlrZSAwIGZvciB0aGVzZSBvcHRpb25zLi4uCi0rCSAgZnVuY19h cml0aCAkY3VycmVudCArIDEKLSsJICBtaW5vcl9jdXJyZW50PSRmdW5jX2FyaXRoX3Jlc3VsdAot KwkgIHhsY3ZlcnN0cmluZz0iJHt3bH0tY29tcGF0aWJpbGl0eV92ZXJzaW9uICR7d2x9JG1pbm9y X2N1cnJlbnQgJHt3bH0tY3VycmVudF92ZXJzaW9uICR7d2x9JG1pbm9yX2N1cnJlbnQuJHJldmlz aW9uIgotKwkgIHZlcnN0cmluZz0iLWNvbXBhdGliaWxpdHlfdmVyc2lvbiAkbWlub3JfY3VycmVu dCAtY3VycmVudF92ZXJzaW9uICRtaW5vcl9jdXJyZW50LiRyZXZpc2lvbiIKLSsJICA7OwotKwot KwlmcmVlYnNkLWFvdXQpCi0rCSAgbWFqb3I9Ii4kY3VycmVudCIKLSsJICB2ZXJzdWZmaXg9Ii4k Y3VycmVudC4kcmV2aXNpb24iOwotKwkgIDs7Ci0rCi0rCWZyZWVic2QtZWxmKQotKwkgIG1ham9y PSIuJGN1cnJlbnQiCi0rCSAgdmVyc3VmZml4PSIuJGN1cnJlbnQiCi0rCSAgOzsKLSsKLSsJaXJp eCB8IG5vbnN0b3B1eCkKLSsJICBpZiB0ZXN0ICJYJGx0X2lyaXhfaW5jcmVtZW50IiA9ICJYbm8i OyB0aGVuCi0rCSAgICBmdW5jX2FyaXRoICRjdXJyZW50IC0gJGFnZQotKwkgIGVsc2UKLSsJICAg IGZ1bmNfYXJpdGggJGN1cnJlbnQgLSAkYWdlICsgMQotKwkgIGZpCi0rCSAgbWFqb3I9JGZ1bmNf YXJpdGhfcmVzdWx0Ci0rCi0rCSAgY2FzZSAkdmVyc2lvbl90eXBlIGluCi0rCSAgICBub25zdG9w dXgpIHZlcnN0cmluZ19wcmVmaXg9bm9uc3RvcHV4IDs7Ci0rCSAgICAqKSAgICAgICAgIHZlcnN0 cmluZ19wcmVmaXg9c2dpIDs7Ci0rCSAgZXNhYwotKwkgIHZlcnN0cmluZz0iJHZlcnN0cmluZ19w cmVmaXgkbWFqb3IuJHJldmlzaW9uIgotKwotKwkgICMgQWRkIGluIGFsbCB0aGUgaW50ZXJmYWNl cyB0aGF0IHdlIGFyZSBjb21wYXRpYmxlIHdpdGguCi0rCSAgbG9vcD0kcmV2aXNpb24KLSsJICB3 aGlsZSB0ZXN0ICIkbG9vcCIgLW5lIDA7IGRvCi0rCSAgICBmdW5jX2FyaXRoICRyZXZpc2lvbiAt ICRsb29wCi0rCSAgICBpZmFjZT0kZnVuY19hcml0aF9yZXN1bHQKLSsJICAgIGZ1bmNfYXJpdGgg JGxvb3AgLSAxCi0rCSAgICBsb29wPSRmdW5jX2FyaXRoX3Jlc3VsdAotKwkgICAgdmVyc3RyaW5n PSIkdmVyc3RyaW5nX3ByZWZpeCRtYWpvci4kaWZhY2U6JHZlcnN0cmluZyIKLSsJICBkb25lCi0r Ci0rCSAgIyBCZWZvcmUgdGhpcyBwb2ludCwgJG1ham9yIG11c3Qgbm90IGNvbnRhaW4gYC4nLgot KwkgIG1ham9yPS4kbWFqb3IKLSsJICB2ZXJzdWZmaXg9IiRtYWpvci4kcmV2aXNpb24iCi0rCSAg OzsKLSsKLSsJbGludXgpCi0rCSAgZnVuY19hcml0aCAkY3VycmVudCAtICRhZ2UKLSsJICBtYWpv cj0uJGZ1bmNfYXJpdGhfcmVzdWx0Ci0rCSAgdmVyc3VmZml4PSIkbWFqb3IuJGFnZS4kcmV2aXNp b24iCi0rCSAgOzsKLSsKLSsJb3NmKQotKwkgIGZ1bmNfYXJpdGggJGN1cnJlbnQgLSAkYWdlCi0r CSAgbWFqb3I9LiRmdW5jX2FyaXRoX3Jlc3VsdAotKwkgIHZlcnN1ZmZpeD0iLiRjdXJyZW50LiRh Z2UuJHJldmlzaW9uIgotKwkgIHZlcnN0cmluZz0iJGN1cnJlbnQuJGFnZS4kcmV2aXNpb24iCi0r Ci0rCSAgIyBBZGQgaW4gYWxsIHRoZSBpbnRlcmZhY2VzIHRoYXQgd2UgYXJlIGNvbXBhdGlibGUg d2l0aC4KLSsJICBsb29wPSRhZ2UKLSsJICB3aGlsZSB0ZXN0ICIkbG9vcCIgLW5lIDA7IGRvCi0r CSAgICBmdW5jX2FyaXRoICRjdXJyZW50IC0gJGxvb3AKLSsJICAgIGlmYWNlPSRmdW5jX2FyaXRo X3Jlc3VsdAotKwkgICAgZnVuY19hcml0aCAkbG9vcCAtIDEKLSsJICAgIGxvb3A9JGZ1bmNfYXJp dGhfcmVzdWx0Ci0rCSAgICB2ZXJzdHJpbmc9IiR2ZXJzdHJpbmc6JHtpZmFjZX0uMCIKLSsJICBk b25lCi0rCi0rCSAgIyBNYWtlIGV4ZWN1dGFibGVzIGRlcGVuZCBvbiBvdXIgY3VycmVudCB2ZXJz aW9uLgotKwkgIHZlcnN0cmluZz0iJHZlcnN0cmluZzoke2N1cnJlbnR9LjAiCi0rCSAgOzsKLSsK LSsJcW54KQotKwkgIG1ham9yPSIuJGN1cnJlbnQiCi0rCSAgdmVyc3VmZml4PSIuJGN1cnJlbnQi Ci0rCSAgOzsKLSsKLSsJc3Vub3MpCi0rCSAgbWFqb3I9Ii4kY3VycmVudCIKLSsJICB2ZXJzdWZm aXg9Ii4kY3VycmVudC4kcmV2aXNpb24iCi0rCSAgOzsKLSsKLSsJd2luZG93cykKLSsJICAjIFVz ZSAnLScgcmF0aGVyIHRoYW4gJy4nLCBzaW5jZSB3ZSBvbmx5IHdhbnQgb25lCi0rCSAgIyBleHRl bnNpb24gb24gRE9TIDguMyBmaWxlc3lzdGVtcy4KLSsJICBmdW5jX2FyaXRoICRjdXJyZW50IC0g JGFnZQotKwkgIG1ham9yPSRmdW5jX2FyaXRoX3Jlc3VsdAotKwkgIHZlcnN1ZmZpeD0iLSRtYWpv ciIKLSsJICA7OwotKwotKwkqKQotKwkgIGZ1bmNfZmF0YWxfY29uZmlndXJhdGlvbiAidW5rbm93 biBsaWJyYXJ5IHZlcnNpb24gdHlwZSBcYCR2ZXJzaW9uX3R5cGUnIgotKwkgIDs7Ci0rCWVzYWMK LSsKLSsJIyBDbGVhciB0aGUgdmVyc2lvbiBpbmZvIGlmIHdlIGRlZmF1bHRlZCwgYW5kIHRoZXkg c3BlY2lmaWVkIGEgcmVsZWFzZS4KLSsJaWYgdGVzdCAteiAiJHZpbmZvIiAmJiB0ZXN0IC1uICIk cmVsZWFzZSI7IHRoZW4KLSsJICBtYWpvcj0KLSsJICBjYXNlICR2ZXJzaW9uX3R5cGUgaW4KLSsJ ICBkYXJ3aW4pCi0rCSAgICAjIHdlIGNhbid0IGNoZWNrIGZvciAiMC4wIiBpbiBhcmNoaXZlX2Nt ZHMgZHVlIHRvIHF1b3RpbmcKLSsJICAgICMgcHJvYmxlbXMsIHNvIHdlIHJlc2V0IGl0IGNvbXBs ZXRlbHkKLSsJICAgIHZlcnN0cmluZz0KLSsJICAgIDs7Ci0rCSAgKikKLSsJICAgIHZlcnN0cmlu Zz0iMC4wIgotKwkgICAgOzsKLSsJICBlc2FjCi0rCSAgaWYgdGVzdCAiJG5lZWRfdmVyc2lvbiIg PSBubzsgdGhlbgotKwkgICAgdmVyc3VmZml4PQotKwkgIGVsc2UKLSsJICAgIHZlcnN1ZmZpeD0i LjAuMCIKLSsJICBmaQotKwlmaQotKwotKwkjIFJlbW92ZSB2ZXJzaW9uIGluZm8gZnJvbSBuYW1l IGlmIHZlcnNpb25pbmcgc2hvdWxkIGJlIGF2b2lkZWQKLSsJaWYgdGVzdCAiJGF2b2lkX3ZlcnNp b24iID0geWVzICYmIHRlc3QgIiRuZWVkX3ZlcnNpb24iID0gbm87IHRoZW4KLSsJICBtYWpvcj0K LSsJICB2ZXJzdWZmaXg9Ci0rCSAgdmVyc3RyaW5nPSIiCi0rCWZpCi0rCi0rCSMgQ2hlY2sgdG8g c2VlIGlmIHRoZSBhcmNoaXZlIHdpbGwgaGF2ZSB1bmRlZmluZWQgc3ltYm9scy4KLSsJaWYgdGVz dCAiJGFsbG93X3VuZGVmaW5lZCIgPSB5ZXM7IHRoZW4KLSsJICBpZiB0ZXN0ICIkYWxsb3dfdW5k ZWZpbmVkX2ZsYWciID0gdW5zdXBwb3J0ZWQ7IHRoZW4KLSsJICAgIGZ1bmNfd2FybmluZyAidW5k ZWZpbmVkIHN5bWJvbHMgbm90IGFsbG93ZWQgaW4gJGhvc3Qgc2hhcmVkIGxpYnJhcmllcyIKLSsJ ICAgIGJ1aWxkX2xpYnRvb2xfbGlicz1ubwotKwkgICAgYnVpbGRfb2xkX2xpYnM9eWVzCi0rCSAg ZmkKLSsJZWxzZQotKwkgICMgRG9uJ3QgYWxsb3cgdW5kZWZpbmVkIHN5bWJvbHMuCi0rCSAgYWxs b3dfdW5kZWZpbmVkX2ZsYWc9IiRub191bmRlZmluZWRfZmxhZyIKLSsJZmkKLSsKLSsgICAgICBm aQotKwotKyAgICAgIGZ1bmNfZ2VuZXJhdGVfZGxzeW1zICIkbGlibmFtZSIgIiRsaWJuYW1lIiAi eWVzIgotKyAgICAgIGxpYm9ianM9IiRsaWJvYmpzICRzeW1maWxlb2JqIgotKyAgICAgIHRlc3Qg IlgkbGlib2JqcyIgPSAiWCAiICYmIGxpYm9ianM9Ci0rCi0rICAgICAgaWYgdGVzdCAiJG1vZGUi ICE9IHJlbGluazsgdGhlbgotKwkjIFJlbW92ZSBvdXIgb3V0cHV0cywgYnV0IGRvbid0IHJlbW92 ZSBvYmplY3QgZmlsZXMgc2luY2UgdGhleQotKwkjIG1heSBoYXZlIGJlZW4gY3JlYXRlZCB3aGVu IGNvbXBpbGluZyBQSUMgb2JqZWN0cy4KLSsJcmVtb3ZlbGlzdD0KLSsJdGVtcHJlbW92ZWxpc3Q9 YCRFQ0hPICIkb3V0cHV0X29iamRpci8qImAKLSsJZm9yIHAgaW4gJHRlbXByZW1vdmVsaXN0OyBk bwotKwkgIGNhc2UgJHAgaW4KLSsJICAgICouJG9iamV4dCB8ICouZ2NubykKLSsJICAgICAgIDs7 Ci0rCSAgICAkb3V0cHV0X29iamRpci8kb3V0cHV0bmFtZSB8ICRvdXRwdXRfb2JqZGlyLyRsaWJu YW1lLiogfCAkb3V0cHV0X29iamRpci8ke2xpYm5hbWV9JHtyZWxlYXNlfS4qKQotKwkgICAgICAg aWYgdGVzdCAiWCRwcmVjaW91c19maWxlc19yZWdleCIgIT0gIlgiOyB0aGVuCi0rCQkgaWYgJEVD SE8gIiRwIiB8ICRFR1JFUCAtZSAiJHByZWNpb3VzX2ZpbGVzX3JlZ2V4IiA+L2Rldi9udWxsIDI+ JjEKLSsJCSB0aGVuCi0rCQkgICBjb250aW51ZQotKwkJIGZpCi0rCSAgICAgICBmaQotKwkgICAg ICAgcmVtb3ZlbGlzdD0iJHJlbW92ZWxpc3QgJHAiCi0rCSAgICAgICA7OwotKwkgICAgKikgOzsK LSsJICBlc2FjCi0rCWRvbmUKLSsJdGVzdCAtbiAiJHJlbW92ZWxpc3QiICYmIFwKLSsJICBmdW5j X3Nob3dfZXZhbCAiJHtSTX1yIFwkcmVtb3ZlbGlzdCIKLSsgICAgICBmaQotKwotKyAgICAgICMg Tm93IHNldCB0aGUgdmFyaWFibGVzIGZvciBidWlsZGluZyBvbGQgbGlicmFyaWVzLgotKyAgICAg IGlmIHRlc3QgIiRidWlsZF9vbGRfbGlicyIgPSB5ZXMgJiYgdGVzdCAiJGJ1aWxkX2xpYnRvb2xf bGlicyIgIT0gY29udmVuaWVuY2UgOyB0aGVuCi0rCW9sZGxpYnM9IiRvbGRsaWJzICRvdXRwdXRf b2JqZGlyLyRsaWJuYW1lLiRsaWJleHQiCi0rCi0rCSMgVHJhbnNmb3JtIC5sbyBmaWxlcyB0byAu byBmaWxlcy4KLSsJb2xkb2Jqcz0iJG9ianMgImAkRUNITyAiWCRsaWJvYmpzIiB8ICRTUDJOTCB8 ICRYc2VkIC1lICcvXC4nJHtsaWJleHR9JyQvZCcgLWUgIiRsbzJvIiB8ICROTDJTUGAKLSsgICAg ICBmaQotKwotKyAgICAgICMgRWxpbWluYXRlIGFsbCB0ZW1wb3JhcnkgZGlyZWN0b3JpZXMuCi0r ICAgICAgI2ZvciBwYXRoIGluICRub3RpbnN0X3BhdGg7IGRvCi0rICAgICAgIwlsaWJfc2VhcmNo X3BhdGg9YCRFQ0hPICJYJGxpYl9zZWFyY2hfcGF0aCAiIHwgJFhzZWQgLWUgInMlICRwYXRoICUg JWciYAotKyAgICAgICMJZGVwbGlicz1gJEVDSE8gIlgkZGVwbGlicyAiIHwgJFhzZWQgLWUgInMl IC1MJHBhdGggJSAlZyJgCi0rICAgICAgIwlkZXBlbmRlbmN5X2xpYnM9YCRFQ0hPICJYJGRlcGVu ZGVuY3lfbGlicyAiIHwgJFhzZWQgLWUgInMlIC1MJHBhdGggJSAlZyJgCi0rICAgICAgI2RvbmUK LSsKLSsgICAgICBpZiB0ZXN0IC1uICIkeHJwYXRoIjsgdGhlbgotKwkjIElmIHRoZSB1c2VyIHNw ZWNpZmllZCBhbnkgcnBhdGggZmxhZ3MsIHRoZW4gYWRkIHRoZW0uCi0rCXRlbXBfeHJwYXRoPQot Kwlmb3IgbGliZGlyIGluICR4cnBhdGg7IGRvCi0rCSAgdGVtcF94cnBhdGg9IiR0ZW1wX3hycGF0 aCAtUiRsaWJkaXIiCi0rCSAgY2FzZSAiJGZpbmFsaXplX3JwYXRoICIgaW4KLSsJICAqIiAkbGli ZGlyICIqKSA7OwotKwkgICopIGZpbmFsaXplX3JwYXRoPSIkZmluYWxpemVfcnBhdGggJGxpYmRp ciIgOzsKLSsJICBlc2FjCi0rCWRvbmUKLSsJaWYgdGVzdCAiJGhhcmRjb2RlX2ludG9fbGlicyIg IT0geWVzIHx8IHRlc3QgIiRidWlsZF9vbGRfbGlicyIgPSB5ZXM7IHRoZW4KLSsJICBkZXBlbmRl bmN5X2xpYnM9IiR0ZW1wX3hycGF0aCAkZGVwZW5kZW5jeV9saWJzIgotKwlmaQotKyAgICAgIGZp Ci0rCi0rICAgICAgIyBNYWtlIHN1cmUgZGxmaWxlcyBjb250YWlucyBvbmx5IHVuaXF1ZSBmaWxl cyB0aGF0IHdvbid0IGJlIGRscHJlb3BlbmVkCi0rICAgICAgb2xkX2RsZmlsZXM9IiRkbGZpbGVz IgotKyAgICAgIGRsZmlsZXM9Ci0rICAgICAgZm9yIGxpYiBpbiAkb2xkX2RsZmlsZXM7IGRvCi0r CWNhc2UgIiAkZGxwcmVmaWxlcyAkZGxmaWxlcyAiIGluCi0rCSoiICRsaWIgIiopIDs7Ci0rCSop IGRsZmlsZXM9IiRkbGZpbGVzICRsaWIiIDs7Ci0rCWVzYWMKLSsgICAgICBkb25lCi0rCi0rICAg ICAgIyBNYWtlIHN1cmUgZGxwcmVmaWxlcyBjb250YWlucyBvbmx5IHVuaXF1ZSBmaWxlcwotKyAg ICAgIG9sZF9kbHByZWZpbGVzPSIkZGxwcmVmaWxlcyIKLSsgICAgICBkbHByZWZpbGVzPQotKyAg ICAgIGZvciBsaWIgaW4gJG9sZF9kbHByZWZpbGVzOyBkbwotKwljYXNlICIkZGxwcmVmaWxlcyAi IGluCi0rCSoiICRsaWIgIiopIDs7Ci0rCSopIGRscHJlZmlsZXM9IiRkbHByZWZpbGVzICRsaWIi IDs7Ci0rCWVzYWMKLSsgICAgICBkb25lCi0rCi0rICAgICAgaWYgdGVzdCAiJGJ1aWxkX2xpYnRv b2xfbGlicyIgPSB5ZXM7IHRoZW4KLSsJaWYgdGVzdCAtbiAiJHJwYXRoIjsgdGhlbgotKwkgIGNh c2UgJGhvc3QgaW4KLSsJICAqLSotY3lnd2luKiB8ICotKi1taW5ndyogfCAqLSotcHczMiogfCAq LSotb3MyKiB8ICotKi1iZW9zKiB8ICotY2VnY2MqKQotKwkgICAgIyB0aGVzZSBzeXN0ZW1zIGRv bid0IGFjdHVhbGx5IGhhdmUgYSBjIGxpYnJhcnkgKGFzIHN1Y2gpIQotKwkgICAgOzsKLSsJICAq LSotcmhhcHNvZHkqIHwgKi0qLWRhcndpbjEuWzAxMl0pCi0rCSAgICAjIFJoYXBzb2R5IEMgbGli cmFyeSBpcyBpbiB0aGUgU3lzdGVtIGZyYW1ld29yawotKwkgICAgZGVwbGlicz0iJGRlcGxpYnMg U3lzdGVtLmx0ZnJhbWV3b3JrIgotKwkgICAgOzsKLSsJICAqLSotbmV0YnNkKikKLSsJICAgICMg RG9uJ3QgbGluayB3aXRoIGxpYmMgdW50aWwgdGhlIGEub3V0IGxkLnNvIGlzIGZpeGVkLgotKwkg ICAgOzsKLSsJICAqLSotb3BlbmJzZCogfCAqLSotZnJlZWJzZCogfCAqLSotZHJhZ29uZmx5KikK LSsJICAgICMgRG8gbm90IGluY2x1ZGUgbGliYyBkdWUgdG8gdXMgaGF2aW5nIGxpYmMvbGliY19y LgotKwkgICAgOzsKLSsJICAqLSotc2NvMy4ydjUqIHwgKi0qLXNjbzV2NiopCi0rCSAgICAjIENh dXNlcyBwcm9ibGVtcyB3aXRoIF9fY3R5cGUKLSsJICAgIDs7Ci0rCSAgKi0qLXN5c3Y0LjJ1dzIq IHwgKi0qLXN5c3Y1KiB8ICotKi11bml4d2FyZSogfCAqLSotT3BlblVOSVgqKQotKwkgICAgIyBD b21waWxlciBpbnNlcnRzIGxpYmMgaW4gdGhlIGNvcnJlY3QgcGxhY2UgZm9yIHRocmVhZHMgdG8g d29yawotKwkgICAgOzsKLSsJICAqKQotKwkgICAgIyBBZGQgbGliYyB0byBkZXBsaWJzIG9uIGFs bCBvdGhlciBzeXN0ZW1zIGlmIG5lY2Vzc2FyeS4KLSsJICAgIGlmIHRlc3QgIiRidWlsZF9saWJ0 b29sX25lZWRfbGMiID0gInllcyI7IHRoZW4KLSsJICAgICAgZGVwbGlicz0iJGRlcGxpYnMgLWxj IgotKwkgICAgZmkKLSsJICAgIDs7Ci0rCSAgZXNhYwotKwlmaQotKwotKwkjIFRyYW5zZm9ybSBk ZXBsaWJzIGludG8gb25seSBkZXBsaWJzIHRoYXQgY2FuIGJlIGxpbmtlZCBpbiBzaGFyZWQuCi0r CW5hbWVfc2F2ZT0kbmFtZQotKwlsaWJuYW1lX3NhdmU9JGxpYm5hbWUKLSsJcmVsZWFzZV9zYXZl PSRyZWxlYXNlCi0rCXZlcnN1ZmZpeF9zYXZlPSR2ZXJzdWZmaXgKLSsJbWFqb3Jfc2F2ZT0kbWFq b3IKLSsJIyBJJ20gbm90IHN1cmUgaWYgSSdtIHRyZWF0aW5nIHRoZSByZWxlYXNlIGNvcnJlY3Rs eS4gIEkgdGhpbmsKLSsJIyByZWxlYXNlIHNob3VsZCBzaG93IHVwIGluIHRoZSAtbCAoaWUgLWxn bXA1KSBzbyB3ZSBkb24ndCB3YW50IHRvCi0rCSMgYWRkIGl0IGluIHR3aWNlLiAgSXMgdGhhdCBj b3JyZWN0PwotKwlyZWxlYXNlPSIiCi0rCXZlcnN1ZmZpeD0iIgotKwltYWpvcj0iIgotKwluZXdk ZXBsaWJzPQotKwlkcm9wcGVkZGVwcz1ubwotKwljYXNlICRkZXBsaWJzX2NoZWNrX21ldGhvZCBp bgotKwlwYXNzX2FsbCkKLSsJICAjIERvbid0IGNoZWNrIGZvciBzaGFyZWQvc3RhdGljLiAgRXZl cnl0aGluZyB3b3Jrcy4KLSsJICAjIFRoaXMgbWlnaHQgYmUgYSBsaXR0bGUgbmFpdmUuICBXZSBt aWdodCB3YW50IHRvIGNoZWNrCi0rCSAgIyB3aGV0aGVyIHRoZSBsaWJyYXJ5IGV4aXN0cyBvciBu b3QuICBCdXQgdGhpcyBpcyBvbgotKwkgICMgb3NmMyAmIG9zZjQgYW5kIEknbSBub3QgcmVhbGx5 IHN1cmUuLi4gSnVzdAotKwkgICMgaW1wbGVtZW50aW5nIHdoYXQgd2FzIGFscmVhZHkgdGhlIGJl aGF2aW9yLgotKwkgIG5ld2RlcGxpYnM9JGRlcGxpYnMKLSsJICA7OwotKwl0ZXN0X2NvbXBpbGUp Ci0rCSAgIyBUaGlzIGNvZGUgc3RyZXNzZXMgdGhlICJsaWJyYXJpZXMgYXJlIHByb2dyYW1zIiBw YXJhZGlnbSB0byBpdHMKLSsJICAjIGxpbWl0cy4gTWF5YmUgZXZlbiBicmVha3MgaXQuICBXZSBj b21waWxlIGEgcHJvZ3JhbSwgbGlua2luZyBpdAotKwkgICMgYWdhaW5zdCB0aGUgZGVwbGlicyBh cyBhIHByb3h5IGZvciB0aGUgbGlicmFyeS4gIFRoZW4gd2UgY2FuIGNoZWNrCi0rCSAgIyB3aGV0 aGVyIHRoZXkgbGlua2VkIGluIHN0YXRpY2FsbHkgb3IgZHluYW1pY2FsbHkgd2l0aCBsZGQuCi0r CSAgJG9wdF9kcnlfcnVuIHx8ICRSTSBjb25mdGVzdC5jCi0rCSAgY2F0ID4gY29uZnRlc3QuYyA8 PEVPRgotKwkgIGludCBtYWluKCkgeyByZXR1cm4gMDsgfQotK0VPRgotKwkgICRvcHRfZHJ5X3J1 biB8fCAkUk0gY29uZnRlc3QKLSsJICBpZiAkTFRDQyAkTFRDRkxBR1MgLW8gY29uZnRlc3QgY29u ZnRlc3QuYyAkZGVwbGliczsgdGhlbgotKwkgICAgbGRkX291dHB1dD1gbGRkIGNvbmZ0ZXN0YAot KwkgICAgZm9yIGkgaW4gJGRlcGxpYnM7IGRvCi0rCSAgICAgIGNhc2UgJGkgaW4KLSsJICAgICAg LWwqKQotKwkJZnVuY19zdHJpcG5hbWUgLWwgJycgIiRpIgotKwkJbmFtZT0kZnVuY19zdHJpcG5h bWVfcmVzdWx0Ci0rCQlpZiB0ZXN0ICJYJGFsbG93X2xpYnRvb2xfbGlic193aXRoX3N0YXRpY19y dW50aW1lcyIgPSAiWHllcyIgOyB0aGVuCi0rCQkgIGNhc2UgIiAkcHJlZGVwcyAkcG9zdGRlcHMg IiBpbgotKwkJICAqIiAkaSAiKikKLSsJCSAgICBuZXdkZXBsaWJzPSIkbmV3ZGVwbGlicyAkaSIK LSsJCSAgICBpPSIiCi0rCQkgICAgOzsKLSsJCSAgZXNhYwotKwkJZmkKLSsJCWlmIHRlc3QgLW4g IiRpIiA7IHRoZW4KLSsJCSAgbGlibmFtZT1gZXZhbCAiXFwkRUNITyBcIiRsaWJuYW1lX3NwZWNc IiJgCi0rCQkgIGRlcGxpYl9tYXRjaGVzPWBldmFsICJcXCRFQ0hPIFwiJGxpYnJhcnlfbmFtZXNf c3BlY1wiImAKLSsJCSAgc2V0IGR1bW15ICRkZXBsaWJfbWF0Y2hlczsgc2hpZnQKLSsJCSAgZGVw bGliX21hdGNoPSQxCi0rCQkgIGlmIHRlc3QgYGV4cHIgIiRsZGRfb3V0cHV0IiA6ICIuKiRkZXBs aWJfbWF0Y2giYCAtbmUgMCA7IHRoZW4KLSsJCSAgICBuZXdkZXBsaWJzPSIkbmV3ZGVwbGlicyAk aSIKLSsJCSAgZWxzZQotKwkJICAgIGRyb3BwZWRkZXBzPXllcwotKwkJICAgICRFQ0hPCi0rCQkg ICAgJEVDSE8gIioqKiBXYXJuaW5nOiBkeW5hbWljIGxpbmtlciBkb2VzIG5vdCBhY2NlcHQgbmVl ZGVkIGxpYnJhcnkgJGkuIgotKwkJICAgICRFQ0hPICIqKiogSSBoYXZlIHRoZSBjYXBhYmlsaXR5 IHRvIG1ha2UgdGhhdCBsaWJyYXJ5IGF1dG9tYXRpY2FsbHkgbGluayBpbiB3aGVuIgotKwkJICAg ICRFQ0hPICIqKiogeW91IGxpbmsgdG8gdGhpcyBsaWJyYXJ5LiAgQnV0IEkgY2FuIG9ubHkgZG8g dGhpcyBpZiB5b3UgaGF2ZSBhIgotKwkJICAgICRFQ0hPICIqKiogc2hhcmVkIHZlcnNpb24gb2Yg dGhlIGxpYnJhcnksIHdoaWNoIEkgYmVsaWV2ZSB5b3UgZG8gbm90IGhhdmUiCi0rCQkgICAgJEVD SE8gIioqKiBiZWNhdXNlIGEgdGVzdF9jb21waWxlIGRpZCByZXZlYWwgdGhhdCB0aGUgbGlua2Vy IGRpZCBub3QgdXNlIGl0IGZvciIKLSsJCSAgICAkRUNITyAiKioqIGl0cyBkeW5hbWljIGRlcGVu ZGVuY3kgbGlzdCB0aGF0IHByb2dyYW1zIGdldCByZXNvbHZlZCB3aXRoIGF0IHJ1bnRpbWUuIgot KwkJICBmaQotKwkJZmkKLSsJCTs7Ci0rCSAgICAgICopCi0rCQluZXdkZXBsaWJzPSIkbmV3ZGVw bGlicyAkaSIKLSsJCTs7Ci0rCSAgICAgIGVzYWMKLSsJICAgIGRvbmUKLSsJICBlbHNlCi0rCSAg ICAjIEVycm9yIG9jY3VycmVkIGluIHRoZSBmaXJzdCBjb21waWxlLiAgTGV0J3MgdHJ5IHRvIHNh bHZhZ2UKLSsJICAgICMgdGhlIHNpdHVhdGlvbjogQ29tcGlsZSBhIHNlcGFyYXRlIHByb2dyYW0g Zm9yIGVhY2ggbGlicmFyeS4KLSsJICAgIGZvciBpIGluICRkZXBsaWJzOyBkbwotKwkgICAgICBj YXNlICRpIGluCi0rCSAgICAgIC1sKikKLSsJCWZ1bmNfc3RyaXBuYW1lIC1sICcnICIkaSIKLSsJ CW5hbWU9JGZ1bmNfc3RyaXBuYW1lX3Jlc3VsdAotKwkJJG9wdF9kcnlfcnVuIHx8ICRSTSBjb25m dGVzdAotKwkJaWYgJExUQ0MgJExUQ0ZMQUdTIC1vIGNvbmZ0ZXN0IGNvbmZ0ZXN0LmMgJGk7IHRo ZW4KLSsJCSAgbGRkX291dHB1dD1gbGRkIGNvbmZ0ZXN0YAotKwkJICBpZiB0ZXN0ICJYJGFsbG93 X2xpYnRvb2xfbGlic193aXRoX3N0YXRpY19ydW50aW1lcyIgPSAiWHllcyIgOyB0aGVuCi0rCQkg ICAgY2FzZSAiICRwcmVkZXBzICRwb3N0ZGVwcyAiIGluCi0rCQkgICAgKiIgJGkgIiopCi0rCQkg ICAgICBuZXdkZXBsaWJzPSIkbmV3ZGVwbGlicyAkaSIKLSsJCSAgICAgIGk9IiIKLSsJCSAgICAg IDs7Ci0rCQkgICAgZXNhYwotKwkJICBmaQotKwkJICBpZiB0ZXN0IC1uICIkaSIgOyB0aGVuCi0r CQkgICAgbGlibmFtZT1gZXZhbCAiXFwkRUNITyBcIiRsaWJuYW1lX3NwZWNcIiJgCi0rCQkgICAg ZGVwbGliX21hdGNoZXM9YGV2YWwgIlxcJEVDSE8gXCIkbGlicmFyeV9uYW1lc19zcGVjXCIiYAot KwkJICAgIHNldCBkdW1teSAkZGVwbGliX21hdGNoZXM7IHNoaWZ0Ci0rCQkgICAgZGVwbGliX21h dGNoPSQxCi0rCQkgICAgaWYgdGVzdCBgZXhwciAiJGxkZF9vdXRwdXQiIDogIi4qJGRlcGxpYl9t YXRjaCJgIC1uZSAwIDsgdGhlbgotKwkJICAgICAgbmV3ZGVwbGlicz0iJG5ld2RlcGxpYnMgJGki Ci0rCQkgICAgZWxzZQotKwkJICAgICAgZHJvcHBlZGRlcHM9eWVzCi0rCQkgICAgICAkRUNITwot KwkJICAgICAgJEVDSE8gIioqKiBXYXJuaW5nOiBkeW5hbWljIGxpbmtlciBkb2VzIG5vdCBhY2Nl cHQgbmVlZGVkIGxpYnJhcnkgJGkuIgotKwkJICAgICAgJEVDSE8gIioqKiBJIGhhdmUgdGhlIGNh cGFiaWxpdHkgdG8gbWFrZSB0aGF0IGxpYnJhcnkgYXV0b21hdGljYWxseSBsaW5rIGluIHdoZW4i Ci0rCQkgICAgICAkRUNITyAiKioqIHlvdSBsaW5rIHRvIHRoaXMgbGlicmFyeS4gIEJ1dCBJIGNh biBvbmx5IGRvIHRoaXMgaWYgeW91IGhhdmUgYSIKLSsJCSAgICAgICRFQ0hPICIqKiogc2hhcmVk IHZlcnNpb24gb2YgdGhlIGxpYnJhcnksIHdoaWNoIHlvdSBkbyBub3QgYXBwZWFyIHRvIGhhdmUi Ci0rCQkgICAgICAkRUNITyAiKioqIGJlY2F1c2UgYSB0ZXN0X2NvbXBpbGUgZGlkIHJldmVhbCB0 aGF0IHRoZSBsaW5rZXIgZGlkIG5vdCB1c2UgdGhpcyBvbmUiCi0rCQkgICAgICAkRUNITyAiKioq IGFzIGEgZHluYW1pYyBkZXBlbmRlbmN5IHRoYXQgcHJvZ3JhbXMgY2FuIGdldCByZXNvbHZlZCB3 aXRoIGF0IHJ1bnRpbWUuIgotKwkJICAgIGZpCi0rCQkgIGZpCi0rCQllbHNlCi0rCQkgIGRyb3Bw ZWRkZXBzPXllcwotKwkJICAkRUNITwotKwkJICAkRUNITyAiKioqIFdhcm5pbmchICBMaWJyYXJ5 ICRpIGlzIG5lZWRlZCBieSB0aGlzIGxpYnJhcnkgYnV0IEkgd2FzIG5vdCBhYmxlIHRvIgotKwkJ ICAkRUNITyAiKioqIG1ha2UgaXQgbGluayBpbiEgIFlvdSB3aWxsIHByb2JhYmx5IG5lZWQgdG8g aW5zdGFsbCBpdCBvciBzb21lIgotKwkJICAkRUNITyAiKioqIGxpYnJhcnkgdGhhdCBpdCBkZXBl bmRzIG9uIGJlZm9yZSB0aGlzIGxpYnJhcnkgd2lsbCBiZSBmdWxseSIKLSsJCSAgJEVDSE8gIioq KiBmdW5jdGlvbmFsLiAgSW5zdGFsbGluZyBpdCBiZWZvcmUgY29udGludWluZyB3b3VsZCBiZSBl dmVuIGJldHRlci4iCi0rCQlmaQotKwkJOzsKLSsJICAgICAgKikKLSsJCW5ld2RlcGxpYnM9IiRu ZXdkZXBsaWJzICRpIgotKwkJOzsKLSsJICAgICAgZXNhYwotKwkgICAgZG9uZQotKwkgIGZpCi0r CSAgOzsKLSsJZmlsZV9tYWdpYyopCi0rCSAgc2V0IGR1bW15ICRkZXBsaWJzX2NoZWNrX21ldGhv ZDsgc2hpZnQKLSsJICBmaWxlX21hZ2ljX3JlZ2V4PWBleHByICIkZGVwbGlic19jaGVja19tZXRo b2QiIDogIiQxIFwoLipcKSJgCi0rCSAgZm9yIGFfZGVwbGliIGluICRkZXBsaWJzOyBkbwotKwkg ICAgY2FzZSAkYV9kZXBsaWIgaW4KLSsJICAgIC1sKikKLSsJICAgICAgZnVuY19zdHJpcG5hbWUg LWwgJycgIiRhX2RlcGxpYiIKLSsJICAgICAgbmFtZT0kZnVuY19zdHJpcG5hbWVfcmVzdWx0Ci0r CSAgICAgIGlmIHRlc3QgIlgkYWxsb3dfbGlidG9vbF9saWJzX3dpdGhfc3RhdGljX3J1bnRpbWVz IiA9ICJYeWVzIiA7IHRoZW4KLSsJCWNhc2UgIiAkcHJlZGVwcyAkcG9zdGRlcHMgIiBpbgotKwkJ KiIgJGFfZGVwbGliICIqKQotKwkJICBuZXdkZXBsaWJzPSIkbmV3ZGVwbGlicyAkYV9kZXBsaWIi Ci0rCQkgIGFfZGVwbGliPSIiCi0rCQkgIDs7Ci0rCQllc2FjCi0rCSAgICAgIGZpCi0rCSAgICAg IGlmIHRlc3QgLW4gIiRhX2RlcGxpYiIgOyB0aGVuCi0rCQlsaWJuYW1lPWBldmFsICJcXCRFQ0hP IFwiJGxpYm5hbWVfc3BlY1wiImAKLSsJCWZvciBpIGluICRsaWJfc2VhcmNoX3BhdGggJHN5c19s aWJfc2VhcmNoX3BhdGggJHNobGliX3NlYXJjaF9wYXRoOyBkbwotKwkJICBwb3RlbnRpYWxfbGli cz1gbHMgJGkvJGxpYm5hbWVbLi1dKiAyPi9kZXYvbnVsbGAKLSsJCSAgZm9yIHBvdGVudF9saWIg aW4gJHBvdGVudGlhbF9saWJzOyBkbwotKwkJICAgICAgIyBGb2xsb3cgc29mdCBsaW5rcy4KLSsJ CSAgICAgIGlmIGxzIC1sTGQgIiRwb3RlbnRfbGliIiAyPi9kZXYvbnVsbCB8Ci0rCQkJICRHUkVQ ICIgLT4gIiA+L2Rldi9udWxsOyB0aGVuCi0rCQkJY29udGludWUKLSsJCSAgICAgIGZpCi0rCQkg ICAgICAjIFRoZSBzdGF0ZW1lbnQgYWJvdmUgdHJpZXMgdG8gYXZvaWQgZW50ZXJpbmcgYW4KLSsJ CSAgICAgICMgZW5kbGVzcyBsb29wIGJlbG93LCBpbiBjYXNlIG9mIGN5Y2xpYyBsaW5rcy4KLSsJ CSAgICAgICMgV2UgbWlnaHQgc3RpbGwgZW50ZXIgYW4gZW5kbGVzcyBsb29wLCBzaW5jZSBhIGxp bmsKLSsJCSAgICAgICMgbG9vcCBjYW4gYmUgY2xvc2VkIHdoaWxlIHdlIGZvbGxvdyBsaW5rcywK LSsJCSAgICAgICMgYnV0IHNvIHdoYXQ/Ci0rCQkgICAgICBwb3RsaWI9IiRwb3RlbnRfbGliIgot KwkJICAgICAgd2hpbGUgdGVzdCAtaCAiJHBvdGxpYiIgMj4vZGV2L251bGw7IGRvCi0rCQkJcG90 bGlibGluaz1gbHMgLWxkICRwb3RsaWIgfCAke1NFRH0gJ3MvLiogLT4gLy8nYAotKwkJCWNhc2Ug JHBvdGxpYmxpbmsgaW4KLSsJCQlbXFwvXSogfCBbQS1aYS16XTpbXFwvXSopIHBvdGxpYj0iJHBv dGxpYmxpbmsiOzsKLSsJCQkqKSBwb3RsaWI9YCRFQ0hPICJYJHBvdGxpYiIgfCAkWHNlZCAtZSAn cyxbXi9dKiQsLCdgIiRwb3RsaWJsaW5rIjs7Ci0rCQkJZXNhYwotKwkJICAgICAgZG9uZQotKwkJ ICAgICAgaWYgZXZhbCAkZmlsZV9tYWdpY19jbWQgXCJcJHBvdGxpYlwiIDI+L2Rldi9udWxsIHwK LSsJCQkgJFNFRCAtZSAxMHEgfAotKwkJCSAkRUdSRVAgIiRmaWxlX21hZ2ljX3JlZ2V4IiA+IC9k ZXYvbnVsbDsgdGhlbgotKwkJCW5ld2RlcGxpYnM9IiRuZXdkZXBsaWJzICRhX2RlcGxpYiIKLSsJ CQlhX2RlcGxpYj0iIgotKwkJCWJyZWFrIDIKLSsJCSAgICAgIGZpCi0rCQkgIGRvbmUKLSsJCWRv bmUKLSsJICAgICAgZmkKLSsJICAgICAgaWYgdGVzdCAtbiAiJGFfZGVwbGliIiA7IHRoZW4KLSsJ CWRyb3BwZWRkZXBzPXllcwotKwkJJEVDSE8KLSsJCSRFQ0hPICIqKiogV2FybmluZzogbGlua2Vy IHBhdGggZG9lcyBub3QgaGF2ZSByZWFsIGZpbGUgZm9yIGxpYnJhcnkgJGFfZGVwbGliLiIKLSsJ CSRFQ0hPICIqKiogSSBoYXZlIHRoZSBjYXBhYmlsaXR5IHRvIG1ha2UgdGhhdCBsaWJyYXJ5IGF1 dG9tYXRpY2FsbHkgbGluayBpbiB3aGVuIgotKwkJJEVDSE8gIioqKiB5b3UgbGluayB0byB0aGlz IGxpYnJhcnkuICBCdXQgSSBjYW4gb25seSBkbyB0aGlzIGlmIHlvdSBoYXZlIGEiCi0rCQkkRUNI TyAiKioqIHNoYXJlZCB2ZXJzaW9uIG9mIHRoZSBsaWJyYXJ5LCB3aGljaCB5b3UgZG8gbm90IGFw cGVhciB0byBoYXZlIgotKwkJJEVDSE8gIioqKiBiZWNhdXNlIEkgZGlkIGNoZWNrIHRoZSBsaW5r ZXIgcGF0aCBsb29raW5nIGZvciBhIGZpbGUgc3RhcnRpbmciCi0rCQlpZiB0ZXN0IC16ICIkcG90 bGliIiA7IHRoZW4KLSsJCSAgJEVDSE8gIioqKiB3aXRoICRsaWJuYW1lIGJ1dCBubyBjYW5kaWRh dGVzIHdlcmUgZm91bmQuICguLi5mb3IgZmlsZSBtYWdpYyB0ZXN0KSIKLSsJCWVsc2UKLSsJCSAg JEVDSE8gIioqKiB3aXRoICRsaWJuYW1lIGFuZCBub25lIG9mIHRoZSBjYW5kaWRhdGVzIHBhc3Nl ZCBhIGZpbGUgZm9ybWF0IHRlc3QiCi0rCQkgICRFQ0hPICIqKiogdXNpbmcgYSBmaWxlIG1hZ2lj LiBMYXN0IGZpbGUgY2hlY2tlZDogJHBvdGxpYiIKLSsJCWZpCi0rCSAgICAgIGZpCi0rCSAgICAg IDs7Ci0rCSAgICAqKQotKwkgICAgICAjIEFkZCBhIC1MIGFyZ3VtZW50LgotKwkgICAgICBuZXdk ZXBsaWJzPSIkbmV3ZGVwbGlicyAkYV9kZXBsaWIiCi0rCSAgICAgIDs7Ci0rCSAgICBlc2FjCi0r CSAgZG9uZSAjIEdvbmUgdGhyb3VnaCBhbGwgZGVwbGlicy4KLSsJICA7OwotKwltYXRjaF9wYXR0 ZXJuKikKLSsJICBzZXQgZHVtbXkgJGRlcGxpYnNfY2hlY2tfbWV0aG9kOyBzaGlmdAotKwkgIG1h dGNoX3BhdHRlcm5fcmVnZXg9YGV4cHIgIiRkZXBsaWJzX2NoZWNrX21ldGhvZCIgOiAiJDEgXCgu KlwpImAKLSsJICBmb3IgYV9kZXBsaWIgaW4gJGRlcGxpYnM7IGRvCi0rCSAgICBjYXNlICRhX2Rl cGxpYiBpbgotKwkgICAgLWwqKQotKwkgICAgICBmdW5jX3N0cmlwbmFtZSAtbCAnJyAiJGFfZGVw bGliIgotKwkgICAgICBuYW1lPSRmdW5jX3N0cmlwbmFtZV9yZXN1bHQKLSsJICAgICAgaWYgdGVz dCAiWCRhbGxvd19saWJ0b29sX2xpYnNfd2l0aF9zdGF0aWNfcnVudGltZXMiID0gIlh5ZXMiIDsg dGhlbgotKwkJY2FzZSAiICRwcmVkZXBzICRwb3N0ZGVwcyAiIGluCi0rCQkqIiAkYV9kZXBsaWIg IiopCi0rCQkgIG5ld2RlcGxpYnM9IiRuZXdkZXBsaWJzICRhX2RlcGxpYiIKLSsJCSAgYV9kZXBs aWI9IiIKLSsJCSAgOzsKLSsJCWVzYWMKLSsJICAgICAgZmkKLSsJICAgICAgaWYgdGVzdCAtbiAi JGFfZGVwbGliIiA7IHRoZW4KLSsJCWxpYm5hbWU9YGV2YWwgIlxcJEVDSE8gXCIkbGlibmFtZV9z cGVjXCIiYAotKwkJZm9yIGkgaW4gJGxpYl9zZWFyY2hfcGF0aCAkc3lzX2xpYl9zZWFyY2hfcGF0 aCAkc2hsaWJfc2VhcmNoX3BhdGg7IGRvCi0rCQkgIHBvdGVudGlhbF9saWJzPWBscyAkaS8kbGli bmFtZVsuLV0qIDI+L2Rldi9udWxsYAotKwkJICBmb3IgcG90ZW50X2xpYiBpbiAkcG90ZW50aWFs X2xpYnM7IGRvCi0rCQkgICAgcG90bGliPSIkcG90ZW50X2xpYiIgIyBzZWUgc3ltbGluay1jaGVj ayBhYm92ZSBpbiBmaWxlX21hZ2ljIHRlc3QKLSsJCSAgICBpZiBldmFsICJcJEVDSE8gXCJYJHBv dGVudF9saWJcIiIgMj4vZGV2L251bGwgfCAkWHNlZCAtZSAxMHEgfCBcCi0rCQkgICAgICAgJEVH UkVQICIkbWF0Y2hfcGF0dGVybl9yZWdleCIgPiAvZGV2L251bGw7IHRoZW4KLSsJCSAgICAgIG5l d2RlcGxpYnM9IiRuZXdkZXBsaWJzICRhX2RlcGxpYiIKLSsJCSAgICAgIGFfZGVwbGliPSIiCi0r CQkgICAgICBicmVhayAyCi0rCQkgICAgZmkKLSsJCSAgZG9uZQotKwkJZG9uZQotKwkgICAgICBm aQotKwkgICAgICBpZiB0ZXN0IC1uICIkYV9kZXBsaWIiIDsgdGhlbgotKwkJZHJvcHBlZGRlcHM9 eWVzCi0rCQkkRUNITwotKwkJJEVDSE8gIioqKiBXYXJuaW5nOiBsaW5rZXIgcGF0aCBkb2VzIG5v dCBoYXZlIHJlYWwgZmlsZSBmb3IgbGlicmFyeSAkYV9kZXBsaWIuIgotKwkJJEVDSE8gIioqKiBJ IGhhdmUgdGhlIGNhcGFiaWxpdHkgdG8gbWFrZSB0aGF0IGxpYnJhcnkgYXV0b21hdGljYWxseSBs aW5rIGluIHdoZW4iCi0rCQkkRUNITyAiKioqIHlvdSBsaW5rIHRvIHRoaXMgbGlicmFyeS4gIEJ1 dCBJIGNhbiBvbmx5IGRvIHRoaXMgaWYgeW91IGhhdmUgYSIKLSsJCSRFQ0hPICIqKiogc2hhcmVk IHZlcnNpb24gb2YgdGhlIGxpYnJhcnksIHdoaWNoIHlvdSBkbyBub3QgYXBwZWFyIHRvIGhhdmUi Ci0rCQkkRUNITyAiKioqIGJlY2F1c2UgSSBkaWQgY2hlY2sgdGhlIGxpbmtlciBwYXRoIGxvb2tp bmcgZm9yIGEgZmlsZSBzdGFydGluZyIKLSsJCWlmIHRlc3QgLXogIiRwb3RsaWIiIDsgdGhlbgot KwkJICAkRUNITyAiKioqIHdpdGggJGxpYm5hbWUgYnV0IG5vIGNhbmRpZGF0ZXMgd2VyZSBmb3Vu ZC4gKC4uLmZvciByZWdleCBwYXR0ZXJuIHRlc3QpIgotKwkJZWxzZQotKwkJICAkRUNITyAiKioq IHdpdGggJGxpYm5hbWUgYW5kIG5vbmUgb2YgdGhlIGNhbmRpZGF0ZXMgcGFzc2VkIGEgZmlsZSBm b3JtYXQgdGVzdCIKLSsJCSAgJEVDSE8gIioqKiB1c2luZyBhIHJlZ2V4IHBhdHRlcm4uIExhc3Qg ZmlsZSBjaGVja2VkOiAkcG90bGliIgotKwkJZmkKLSsJICAgICAgZmkKLSsJICAgICAgOzsKLSsJ ICAgICopCi0rCSAgICAgICMgQWRkIGEgLUwgYXJndW1lbnQuCi0rCSAgICAgIG5ld2RlcGxpYnM9 IiRuZXdkZXBsaWJzICRhX2RlcGxpYiIKLSsJICAgICAgOzsKLSsJICAgIGVzYWMKLSsJICBkb25l ICMgR29uZSB0aHJvdWdoIGFsbCBkZXBsaWJzLgotKwkgIDs7Ci0rCW5vbmUgfCB1bmtub3duIHwg KikKLSsJICBuZXdkZXBsaWJzPSIiCi0rCSAgdG1wX2RlcGxpYnM9YCRFQ0hPICJYICRkZXBsaWJz IiB8ICRYc2VkIFwKLSsJICAgICAgLWUgJ3MvIC1sYyQvLycgLWUgJ3MvIC1bTFJdW14gXSovL2cn YAotKwkgIGlmIHRlc3QgIlgkYWxsb3dfbGlidG9vbF9saWJzX3dpdGhfc3RhdGljX3J1bnRpbWVz IiA9ICJYeWVzIiA7IHRoZW4KLSsJICAgIGZvciBpIGluICRwcmVkZXBzICRwb3N0ZGVwcyA7IGRv Ci0rCSAgICAgICMgY2FuJ3QgdXNlIFhzZWQgYmVsb3csIGJlY2F1c2UgJGkgbWlnaHQgY29udGFp biAnLycKLSsJICAgICAgdG1wX2RlcGxpYnM9YCRFQ0hPICJYICR0bXBfZGVwbGlicyIgfCAkWHNl ZCAtZSAicywkaSwsImAKLSsJICAgIGRvbmUKLSsJICBmaQotKwkgIGlmICRFQ0hPICJYICR0bXBf ZGVwbGlicyIgfCAkWHNlZCAtZSAncy9bCSBdLy9nJyB8Ci0rCSAgICAgJEdSRVAgLiA+L2Rldi9u dWxsOyB0aGVuCi0rCSAgICAkRUNITwotKwkgICAgaWYgdGVzdCAiWCRkZXBsaWJzX2NoZWNrX21l dGhvZCIgPSAiWG5vbmUiOyB0aGVuCi0rCSAgICAgICRFQ0hPICIqKiogV2FybmluZzogaW50ZXIt bGlicmFyeSBkZXBlbmRlbmNpZXMgYXJlIG5vdCBzdXBwb3J0ZWQgaW4gdGhpcyBwbGF0Zm9ybS4i Ci0rCSAgICBlbHNlCi0rCSAgICAgICRFQ0hPICIqKiogV2FybmluZzogaW50ZXItbGlicmFyeSBk ZXBlbmRlbmNpZXMgYXJlIG5vdCBrbm93biB0byBiZSBzdXBwb3J0ZWQuIgotKwkgICAgZmkKLSsJ ICAgICRFQ0hPICIqKiogQWxsIGRlY2xhcmVkIGludGVyLWxpYnJhcnkgZGVwZW5kZW5jaWVzIGFy ZSBiZWluZyBkcm9wcGVkLiIKLSsJICAgIGRyb3BwZWRkZXBzPXllcwotKwkgIGZpCi0rCSAgOzsK LSsJZXNhYwotKwl2ZXJzdWZmaXg9JHZlcnN1ZmZpeF9zYXZlCi0rCW1ham9yPSRtYWpvcl9zYXZl Ci0rCXJlbGVhc2U9JHJlbGVhc2Vfc2F2ZQotKwlsaWJuYW1lPSRsaWJuYW1lX3NhdmUKLSsJbmFt ZT0kbmFtZV9zYXZlCi0rCi0rCWNhc2UgJGhvc3QgaW4KLSsJKi0qLXJoYXBzb2R5KiB8ICotKi1k YXJ3aW4xLlswMTJdKQotKwkgICMgT24gUmhhcHNvZHkgcmVwbGFjZSB0aGUgQyBsaWJyYXJ5IHdp dGggdGhlIFN5c3RlbSBmcmFtZXdvcmsKLSsJICBuZXdkZXBsaWJzPWAkRUNITyAiWCAkbmV3ZGVw bGlicyIgfCAkWHNlZCAtZSAncy8gLWxjIC8gU3lzdGVtLmx0ZnJhbWV3b3JrIC8nYAotKwkgIDs7 Ci0rCWVzYWMKLSsKLSsJaWYgdGVzdCAiJGRyb3BwZWRkZXBzIiA9IHllczsgdGhlbgotKwkgIGlm IHRlc3QgIiRtb2R1bGUiID0geWVzOyB0aGVuCi0rCSAgICAkRUNITwotKwkgICAgJEVDSE8gIioq KiBXYXJuaW5nOiBsaWJ0b29sIGNvdWxkIG5vdCBzYXRpc2Z5IGFsbCBkZWNsYXJlZCBpbnRlci1s aWJyYXJ5IgotKwkgICAgJEVDSE8gIioqKiBkZXBlbmRlbmNpZXMgb2YgbW9kdWxlICRsaWJuYW1l LiAgVGhlcmVmb3JlLCBsaWJ0b29sIHdpbGwgY3JlYXRlIgotKwkgICAgJEVDSE8gIioqKiBhIHN0 YXRpYyBtb2R1bGUsIHRoYXQgc2hvdWxkIHdvcmsgYXMgbG9uZyBhcyB0aGUgZGxvcGVuaW5nIgot KwkgICAgJEVDSE8gIioqKiBhcHBsaWNhdGlvbiBpcyBsaW5rZWQgd2l0aCB0aGUgLWRsb3BlbiBm bGFnLiIKLSsJICAgIGlmIHRlc3QgLXogIiRnbG9iYWxfc3ltYm9sX3BpcGUiOyB0aGVuCi0rCSAg ICAgICRFQ0hPCi0rCSAgICAgICRFQ0hPICIqKiogSG93ZXZlciwgdGhpcyB3b3VsZCBvbmx5IHdv cmsgaWYgbGlidG9vbCB3YXMgYWJsZSB0byBleHRyYWN0IHN5bWJvbCIKLSsJICAgICAgJEVDSE8g IioqKiBsaXN0cyBmcm9tIGEgcHJvZ3JhbSwgdXNpbmcgXGBubScgb3IgZXF1aXZhbGVudCwgYnV0 IGxpYnRvb2wgY291bGQiCi0rCSAgICAgICRFQ0hPICIqKiogbm90IGZpbmQgc3VjaCBhIHByb2dy YW0uICBTbywgdGhpcyBtb2R1bGUgaXMgcHJvYmFibHkgdXNlbGVzcy4iCi0rCSAgICAgICRFQ0hP ICIqKiogXGBubScgZnJvbSBHTlUgYmludXRpbHMgYW5kIGEgZnVsbCByZWJ1aWxkIG1heSBoZWxw LiIKLSsJICAgIGZpCi0rCSAgICBpZiB0ZXN0ICIkYnVpbGRfb2xkX2xpYnMiID0gbm87IHRoZW4K LSsJICAgICAgb2xkbGlicz0iJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUuJGxpYmV4dCIKLSsJICAg ICAgYnVpbGRfbGlidG9vbF9saWJzPW1vZHVsZQotKwkgICAgICBidWlsZF9vbGRfbGlicz15ZXMK LSsJICAgIGVsc2UKLSsJICAgICAgYnVpbGRfbGlidG9vbF9saWJzPW5vCi0rCSAgICBmaQotKwkg IGVsc2UKLSsJICAgICRFQ0hPICIqKiogVGhlIGludGVyLWxpYnJhcnkgZGVwZW5kZW5jaWVzIHRo YXQgaGF2ZSBiZWVuIGRyb3BwZWQgaGVyZSB3aWxsIGJlIgotKwkgICAgJEVDSE8gIioqKiBhdXRv bWF0aWNhbGx5IGFkZGVkIHdoZW5ldmVyIGEgcHJvZ3JhbSBpcyBsaW5rZWQgd2l0aCB0aGlzIGxp YnJhcnkiCi0rCSAgICAkRUNITyAiKioqIG9yIGlzIGRlY2xhcmVkIHRvIC1kbG9wZW4gaXQuIgot KwotKwkgICAgaWYgdGVzdCAiJGFsbG93X3VuZGVmaW5lZCIgPSBubzsgdGhlbgotKwkgICAgICAk RUNITwotKwkgICAgICAkRUNITyAiKioqIFNpbmNlIHRoaXMgbGlicmFyeSBtdXN0IG5vdCBjb250 YWluIHVuZGVmaW5lZCBzeW1ib2xzLCIKLSsJICAgICAgJEVDSE8gIioqKiBiZWNhdXNlIGVpdGhl ciB0aGUgcGxhdGZvcm0gZG9lcyBub3Qgc3VwcG9ydCB0aGVtIG9yIgotKwkgICAgICAkRUNITyAi KioqIGl0IHdhcyBleHBsaWNpdGx5IHJlcXVlc3RlZCB3aXRoIC1uby11bmRlZmluZWQsIgotKwkg ICAgICAkRUNITyAiKioqIGxpYnRvb2wgd2lsbCBvbmx5IGNyZWF0ZSBhIHN0YXRpYyB2ZXJzaW9u IG9mIGl0LiIKLSsJICAgICAgaWYgdGVzdCAiJGJ1aWxkX29sZF9saWJzIiA9IG5vOyB0aGVuCi0r CQlvbGRsaWJzPSIkb3V0cHV0X29iamRpci8kbGlibmFtZS4kbGliZXh0IgotKwkJYnVpbGRfbGli dG9vbF9saWJzPW1vZHVsZQotKwkJYnVpbGRfb2xkX2xpYnM9eWVzCi0rCSAgICAgIGVsc2UKLSsJ CWJ1aWxkX2xpYnRvb2xfbGlicz1ubwotKwkgICAgICBmaQotKwkgICAgZmkKLSsJICBmaQotKwlm aQotKwkjIERvbmUgY2hlY2tpbmcgZGVwbGlicyEKLSsJZGVwbGlicz0kbmV3ZGVwbGlicwotKyAg ICAgIGZpCi0rICAgICAgIyBUaW1lIHRvIGNoYW5nZSBhbGwgb3VyICJmb28ubHRmcmFtZXdvcmsi IHN0dWZmIGJhY2sgdG8gIi1mcmFtZXdvcmsgZm9vIgotKyAgICAgIGNhc2UgJGhvc3QgaW4KLSsJ Ki0qLWRhcndpbiopCi0rCSAgbmV3ZGVwbGlicz1gJEVDSE8gIlggJG5ld2RlcGxpYnMiIHwgJFhz ZWQgLWUgJ3MlIFwoW14gJF0qXCkubHRmcmFtZXdvcmslIC1mcmFtZXdvcmsgXDElZydgCi0rCSAg bmV3X2luaGVyaXRlZF9saW5rZXJfZmxhZ3M9YCRFQ0hPICJYICRuZXdfaW5oZXJpdGVkX2xpbmtl cl9mbGFncyIgfCAkWHNlZCAtZSAncyUgXChbXiAkXSpcKS5sdGZyYW1ld29yayUgLWZyYW1ld29y ayBcMSVnJ2AKLSsJICBkZXBsaWJzPWAkRUNITyAiWCAkZGVwbGlicyIgfCAkWHNlZCAtZSAncyUg XChbXiAkXSpcKS5sdGZyYW1ld29yayUgLWZyYW1ld29yayBcMSVnJ2AKLSsJICA7OwotKyAgICAg IGVzYWMKLSsKLSsgICAgICAjIG1vdmUgbGlicmFyeSBzZWFyY2ggcGF0aHMgdGhhdCBjb2luY2lk ZSB3aXRoIHBhdGhzIHRvIG5vdCB5ZXQKLSsgICAgICAjIGluc3RhbGxlZCBsaWJyYXJpZXMgdG8g dGhlIGJlZ2lubmluZyBvZiB0aGUgbGlicmFyeSBzZWFyY2ggbGlzdAotKyAgICAgIG5ld19saWJz PQotKyAgICAgIGZvciBwYXRoIGluICRub3RpbnN0X3BhdGg7IGRvCi0rCWNhc2UgIiAkbmV3X2xp YnMgIiBpbgotKwkqIiAtTCRwYXRoLyRvYmpkaXIgIiopIDs7Ci0rCSopCi0rCSAgY2FzZSAiICRk ZXBsaWJzICIgaW4KLSsJICAqIiAtTCRwYXRoLyRvYmpkaXIgIiopCi0rCSAgICBuZXdfbGlicz0i JG5ld19saWJzIC1MJHBhdGgvJG9iamRpciIgOzsKLSsJICBlc2FjCi0rCSAgOzsKLSsJZXNhYwot KyAgICAgIGRvbmUKLSsgICAgICBmb3IgZGVwbGliIGluICRkZXBsaWJzOyBkbwotKwljYXNlICRk ZXBsaWIgaW4KLSsJLUwqKQotKwkgIGNhc2UgIiAkbmV3X2xpYnMgIiBpbgotKwkgICoiICRkZXBs aWIgIiopIDs7Ci0rCSAgKikgbmV3X2xpYnM9IiRuZXdfbGlicyAkZGVwbGliIiA7OwotKwkgIGVz YWMKLSsJICA7OwotKwkqKSBuZXdfbGlicz0iJG5ld19saWJzICRkZXBsaWIiIDs7Ci0rCWVzYWMK LSsgICAgICBkb25lCi0rICAgICAgZGVwbGlicz0iJG5ld19saWJzIgotKwotKyAgICAgICMgQWxs IHRoZSBsaWJyYXJ5LXNwZWNpZmljIHZhcmlhYmxlcyAoaW5zdGFsbF9saWJkaXIgaXMgc2V0IGFi b3ZlKS4KLSsgICAgICBsaWJyYXJ5X25hbWVzPQotKyAgICAgIG9sZF9saWJyYXJ5PQotKyAgICAg IGRsbmFtZT0KLSsKLSsgICAgICAjIFRlc3QgYWdhaW4sIHdlIG1heSBoYXZlIGRlY2lkZWQgbm90 IHRvIGJ1aWxkIGl0IGFueSBtb3JlCi0rICAgICAgaWYgdGVzdCAiJGJ1aWxkX2xpYnRvb2xfbGli cyIgPSB5ZXM7IHRoZW4KLSsJaWYgdGVzdCAiJGhhcmRjb2RlX2ludG9fbGlicyIgPSB5ZXM7IHRo ZW4KLSsJICAjIEhhcmRjb2RlIHRoZSBsaWJyYXJ5IHBhdGhzCi0rCSAgaGFyZGNvZGVfbGliZGly cz0KLSsJICBkZXBfcnBhdGg9Ci0rCSAgcnBhdGg9IiRmaW5hbGl6ZV9ycGF0aCIKLSsJICB0ZXN0 ICIkbW9kZSIgIT0gcmVsaW5rICYmIHJwYXRoPSIkY29tcGlsZV9ycGF0aCRycGF0aCIKLSsJICBm b3IgbGliZGlyIGluICRycGF0aDsgZG8KLSsJICAgIGlmIHRlc3QgLW4gIiRoYXJkY29kZV9saWJk aXJfZmxhZ19zcGVjIjsgdGhlbgotKwkgICAgICBpZiB0ZXN0IC1uICIkaGFyZGNvZGVfbGliZGly X3NlcGFyYXRvciI7IHRoZW4KLSsJCWlmIHRlc3QgLXogIiRoYXJkY29kZV9saWJkaXJzIjsgdGhl bgotKwkJICBoYXJkY29kZV9saWJkaXJzPSIkbGliZGlyIgotKwkJZWxzZQotKwkJICAjIEp1c3Qg YWNjdW11bGF0ZSB0aGUgdW5pcXVlIGxpYmRpcnMuCi0rCQkgIGNhc2UgJGhhcmRjb2RlX2xpYmRp cl9zZXBhcmF0b3IkaGFyZGNvZGVfbGliZGlycyRoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yIGlu Ci0rCQkgICoiJGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3IkbGliZGlyJGhhcmRjb2RlX2xpYmRp cl9zZXBhcmF0b3IiKikKLSsJCSAgICA7OwotKwkJICAqKQotKwkJICAgIGhhcmRjb2RlX2xpYmRp cnM9IiRoYXJkY29kZV9saWJkaXJzJGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3IkbGliZGlyIgot KwkJICAgIDs7Ci0rCQkgIGVzYWMKLSsJCWZpCi0rCSAgICAgIGVsc2UKLSsJCWV2YWwgZmxhZz1c IiRoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjXCIKLSsJCWRlcF9ycGF0aD0iJGRlcF9ycGF0aCAk ZmxhZyIKLSsJICAgICAgZmkKLSsJICAgIGVsaWYgdGVzdCAtbiAiJHJ1bnBhdGhfdmFyIjsgdGhl bgotKwkgICAgICBjYXNlICIkcGVybV9ycGF0aCAiIGluCi0rCSAgICAgICoiICRsaWJkaXIgIiop IDs7Ci0rCSAgICAgICopIHBlcm1fcnBhdGg9IiRwZXJtX3JwYXRoICRsaWJkaXIiIDs7Ci0rCSAg ICAgIGVzYWMKLSsJICAgIGZpCi0rCSAgZG9uZQotKwkgICMgU3Vic3RpdHV0ZSB0aGUgaGFyZGNv ZGVkIGxpYmRpcnMgaW50byB0aGUgcnBhdGguCi0rCSAgaWYgdGVzdCAtbiAiJGhhcmRjb2RlX2xp YmRpcl9zZXBhcmF0b3IiICYmCi0rCSAgICAgdGVzdCAtbiAiJGhhcmRjb2RlX2xpYmRpcnMiOyB0 aGVuCi0rCSAgICBsaWJkaXI9IiRoYXJkY29kZV9saWJkaXJzIgotKwkgICAgaWYgdGVzdCAtbiAi JGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfbGQiOyB0aGVuCi0rCSAgICAgIGV2YWwgZGVwX3Jw YXRoPVwiJGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfbGRcIgotKwkgICAgZWxzZQotKwkgICAg ICBldmFsIGRlcF9ycGF0aD1cIiRoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjXCIKLSsJICAgIGZp Ci0rCSAgZmkKLSsJICBpZiB0ZXN0IC1uICIkcnVucGF0aF92YXIiICYmIHRlc3QgLW4gIiRwZXJt X3JwYXRoIjsgdGhlbgotKwkgICAgIyBXZSBzaG91bGQgc2V0IHRoZSBydW5wYXRoX3Zhci4KLSsJ ICAgIHJwYXRoPQotKwkgICAgZm9yIGRpciBpbiAkcGVybV9ycGF0aDsgZG8KLSsJICAgICAgcnBh dGg9IiRycGF0aCRkaXI6IgotKwkgICAgZG9uZQotKwkgICAgZXZhbCAiJHJ1bnBhdGhfdmFyPSck cnBhdGhcJCRydW5wYXRoX3Zhcic7IGV4cG9ydCAkcnVucGF0aF92YXIiCi0rCSAgZmkKLSsJICB0 ZXN0IC1uICIkZGVwX3JwYXRoIiAmJiBkZXBsaWJzPSIkZGVwX3JwYXRoICRkZXBsaWJzIgotKwlm aQotKwotKwlzaGxpYnBhdGg9IiRmaW5hbGl6ZV9zaGxpYnBhdGgiCi0rCXRlc3QgIiRtb2RlIiAh PSByZWxpbmsgJiYgc2hsaWJwYXRoPSIkY29tcGlsZV9zaGxpYnBhdGgkc2hsaWJwYXRoIgotKwlp ZiB0ZXN0IC1uICIkc2hsaWJwYXRoIjsgdGhlbgotKwkgIGV2YWwgIiRzaGxpYnBhdGhfdmFyPSck c2hsaWJwYXRoXCQkc2hsaWJwYXRoX3Zhcic7IGV4cG9ydCAkc2hsaWJwYXRoX3ZhciIKLSsJZmkK LSsKLSsJIyBHZXQgdGhlIHJlYWwgYW5kIGxpbmsgbmFtZXMgb2YgdGhlIGxpYnJhcnkuCi0rCWV2 YWwgc2hhcmVkX2V4dD1cIiRzaHJleHRfY21kc1wiCi0rCWV2YWwgbGlicmFyeV9uYW1lcz1cIiRs aWJyYXJ5X25hbWVzX3NwZWNcIgotKwlzZXQgZHVtbXkgJGxpYnJhcnlfbmFtZXMKLSsJc2hpZnQK LSsJcmVhbG5hbWU9IiQxIgotKwlzaGlmdAotKwotKwlpZiB0ZXN0IC1uICIkc29uYW1lX3NwZWMi OyB0aGVuCi0rCSAgZXZhbCBzb25hbWU9XCIkc29uYW1lX3NwZWNcIgotKwllbHNlCi0rCSAgc29u YW1lPSIkcmVhbG5hbWUiCi0rCWZpCi0rCWlmIHRlc3QgLXogIiRkbG5hbWUiOyB0aGVuCi0rCSAg ZGxuYW1lPSRzb25hbWUKLSsJZmkKLSsKLSsJbGliPSIkb3V0cHV0X29iamRpci8kcmVhbG5hbWUi Ci0rCWxpbmtuYW1lcz0KLSsJZm9yIGxpbmsKLSsJZG8KLSsJICBsaW5rbmFtZXM9IiRsaW5rbmFt ZXMgJGxpbmsiCi0rCWRvbmUKLSsKLSsJIyBVc2Ugc3RhbmRhcmQgb2JqZWN0cyBpZiB0aGV5IGFy ZSBwaWMKLSsJdGVzdCAteiAiJHBpY19mbGFnIiAmJiBsaWJvYmpzPWAkRUNITyAiWCRsaWJvYmpz IiB8ICRTUDJOTCB8ICRYc2VkIC1lICIkbG8ybyIgfCAkTkwyU1BgCi0rCXRlc3QgIlgkbGlib2Jq cyIgPSAiWCAiICYmIGxpYm9ianM9Ci0rCi0rCWRlbGZpbGVzPQotKwlpZiB0ZXN0IC1uICIkZXhw b3J0X3N5bWJvbHMiICYmIHRlc3QgLW4gIiRpbmNsdWRlX2V4cHN5bXMiOyB0aGVuCi0rCSAgJG9w dF9kcnlfcnVuIHx8IGNwICIkZXhwb3J0X3N5bWJvbHMiICIkb3V0cHV0X29iamRpci8kbGlibmFt ZS51ZXhwIgotKwkgIGV4cG9ydF9zeW1ib2xzPSIkb3V0cHV0X29iamRpci8kbGlibmFtZS51ZXhw IgotKwkgIGRlbGZpbGVzPSIkZGVsZmlsZXMgJGV4cG9ydF9zeW1ib2xzIgotKwlmaQotKwotKwlv cmlnX2V4cG9ydF9zeW1ib2xzPQotKwljYXNlICRob3N0X29zIGluCi0rCWN5Z3dpbiogfCBtaW5n dyogfCBjZWdjYyopCi0rCSAgaWYgdGVzdCAtbiAiJGV4cG9ydF9zeW1ib2xzIiAmJiB0ZXN0IC16 ICIkZXhwb3J0X3N5bWJvbHNfcmVnZXgiOyB0aGVuCi0rCSAgICAjIGV4cG9ydGluZyB1c2luZyB1 c2VyIHN1cHBsaWVkIHN5bWZpbGUKLSsJICAgIGlmIHRlc3QgInhgJFNFRCAxcSAkZXhwb3J0X3N5 bWJvbHNgIiAhPSB4RVhQT1JUUzsgdGhlbgotKwkgICAgICAjIGFuZCBpdCdzIE5PVCBhbHJlYWR5 IGEgLmRlZiBmaWxlLiBNdXN0IGZpZ3VyZSBvdXQKLSsJICAgICAgIyB3aGljaCBvZiB0aGUgZ2l2 ZW4gc3ltYm9scyBhcmUgZGF0YSBzeW1ib2xzIGFuZCB0YWcKLSsJICAgICAgIyB0aGVtIGFzIHN1 Y2guIFNvLCB0cmlnZ2VyIHVzZSBvZiBleHBvcnRfc3ltYm9sc19jbWRzLgotKwkgICAgICAjIGV4 cG9ydF9zeW1ib2xzIGdldHMgcmVhc3NpZ25lZCBpbnNpZGUgdGhlICJwcmVwYXJlCi0rCSAgICAg ICMgdGhlIGxpc3Qgb2YgZXhwb3J0ZWQgc3ltYm9scyIgaWYgc3RhdGVtZW50LCBzbyB0aGUKLSsJ ICAgICAgIyBpbmNsdWRlX2V4cHN5bXMgbG9naWMgc3RpbGwgd29ya3MuCi0rCSAgICAgIG9yaWdf ZXhwb3J0X3N5bWJvbHM9IiRleHBvcnRfc3ltYm9scyIKLSsJICAgICAgZXhwb3J0X3N5bWJvbHM9 Ci0rCSAgICAgIGFsd2F5c19leHBvcnRfc3ltYm9scz15ZXMKLSsJICAgIGZpCi0rCSAgZmkKLSsJ ICA7OwotKwllc2FjCi0rCi0rCSMgUHJlcGFyZSB0aGUgbGlzdCBvZiBleHBvcnRlZCBzeW1ib2xz Ci0rCWlmIHRlc3QgLXogIiRleHBvcnRfc3ltYm9scyI7IHRoZW4KLSsJICBpZiB0ZXN0ICIkYWx3 YXlzX2V4cG9ydF9zeW1ib2xzIiA9IHllcyB8fCB0ZXN0IC1uICIkZXhwb3J0X3N5bWJvbHNfcmVn ZXgiOyB0aGVuCi0rCSAgICBmdW5jX3ZlcmJvc2UgImdlbmVyYXRpbmcgc3ltYm9sIGxpc3QgZm9y IFxgJGxpYm5hbWUubGEnIgotKwkgICAgZXhwb3J0X3N5bWJvbHM9IiRvdXRwdXRfb2JqZGlyLyRs aWJuYW1lLmV4cCIKLSsJICAgICRvcHRfZHJ5X3J1biB8fCAkUk0gJGV4cG9ydF9zeW1ib2xzCi0r CSAgICBjbWRzPSRleHBvcnRfc3ltYm9sc19jbWRzCi0rCSAgICBzYXZlX2lmcz0iJElGUyI7IElG Uz0nficKLSsJICAgIGZvciBjbWQgaW4gJGNtZHM7IGRvCi0rCSAgICAgIElGUz0iJHNhdmVfaWZz IgotKwkgICAgICBldmFsIGNtZD1cIiRjbWRcIgotKwkgICAgICBmdW5jX2xlbiAiICRjbWQiCi0r CSAgICAgIGxlbj0kZnVuY19sZW5fcmVzdWx0Ci0rCSAgICAgIGlmIHRlc3QgIiRsZW4iIC1sdCAi JG1heF9jbWRfbGVuIiB8fCB0ZXN0ICIkbWF4X2NtZF9sZW4iIC1sZSAtMTsgdGhlbgotKwkJZnVu Y19zaG93X2V2YWwgIiRjbWQiICdleGl0ICQ/JwotKwkJc2tpcHBlZF9leHBvcnQ9ZmFsc2UKLSsJ ICAgICAgZWxzZQotKwkJIyBUaGUgY29tbWFuZCBsaW5lIGlzIHRvbyBsb25nIHRvIGV4ZWN1dGUg aW4gb25lIHN0ZXAuCi0rCQlmdW5jX3ZlcmJvc2UgInVzaW5nIHJlbG9hZGFibGUgb2JqZWN0IGZp bGUgZm9yIGV4cG9ydCBsaXN0Li4uIgotKwkJc2tpcHBlZF9leHBvcnQ9OgotKwkJIyBCcmVhayBv dXQgZWFybHksIG90aGVyd2lzZSBza2lwcGVkX2V4cG9ydCBtYXkgYmUKLSsJCSMgc2V0IHRvIGZh bHNlIGJ5IGEgbGF0ZXIgYnV0IHNob3J0ZXIgY21kLgotKwkJYnJlYWsKLSsJICAgICAgZmkKLSsJ ICAgIGRvbmUKLSsJICAgIElGUz0iJHNhdmVfaWZzIgotKwkgICAgaWYgdGVzdCAtbiAiJGV4cG9y dF9zeW1ib2xzX3JlZ2V4IiAmJiB0ZXN0ICJYJHNraXBwZWRfZXhwb3J0IiAhPSAiWDoiOyB0aGVu Ci0rCSAgICAgIGZ1bmNfc2hvd19ldmFsICckRUdSRVAgLWUgIiRleHBvcnRfc3ltYm9sc19yZWdl eCIgIiRleHBvcnRfc3ltYm9scyIgPiAiJHtleHBvcnRfc3ltYm9sc31UIicKLSsJICAgICAgZnVu Y19zaG93X2V2YWwgJyRNViAiJHtleHBvcnRfc3ltYm9sc31UIiAiJGV4cG9ydF9zeW1ib2xzIicK LSsJICAgIGZpCi0rCSAgZmkKLSsJZmkKLSsKLSsJaWYgdGVzdCAtbiAiJGV4cG9ydF9zeW1ib2xz IiAmJiB0ZXN0IC1uICIkaW5jbHVkZV9leHBzeW1zIjsgdGhlbgotKwkgIHRtcF9leHBvcnRfc3lt Ym9scz0iJGV4cG9ydF9zeW1ib2xzIgotKwkgIHRlc3QgLW4gIiRvcmlnX2V4cG9ydF9zeW1ib2xz IiAmJiB0bXBfZXhwb3J0X3N5bWJvbHM9IiRvcmlnX2V4cG9ydF9zeW1ib2xzIgotKwkgICRvcHRf ZHJ5X3J1biB8fCBldmFsICckRUNITyAiWCRpbmNsdWRlX2V4cHN5bXMiIHwgJFhzZWQgfCAkU1Ay TkwgPj4gIiR0bXBfZXhwb3J0X3N5bWJvbHMiJwotKwlmaQotKwotKwlpZiB0ZXN0ICJYJHNraXBw ZWRfZXhwb3J0IiAhPSAiWDoiICYmIHRlc3QgLW4gIiRvcmlnX2V4cG9ydF9zeW1ib2xzIjsgdGhl bgotKwkgICMgVGhlIGdpdmVuIGV4cG9ydHNfc3ltYm9scyBmaWxlIGhhcyB0byBiZSBmaWx0ZXJl ZCwgc28gZmlsdGVyIGl0LgotKwkgIGZ1bmNfdmVyYm9zZSAiZmlsdGVyIHN5bWJvbCBsaXN0IGZv ciBcYCRsaWJuYW1lLmxhJyB0byB0YWcgREFUQSBleHBvcnRzIgotKwkgICMgRklYTUU6ICRvdXRw dXRfb2JqZGlyLyRsaWJuYW1lLmZpbHRlciBwb3RlbnRpYWxseSBjb250YWlucyBsb3RzIG9mCi0r CSAgIyAncycgY29tbWFuZHMgd2hpY2ggbm90IGFsbCBzZWRzIGNhbiBoYW5kbGUuIEdOVSBzZWQg c2hvdWxkIGJlIGZpbmUKLSsJICAjIHRob3VnaC4gQWxzbywgdGhlIGZpbHRlciBzY2FsZXMgc3Vw ZXJsaW5lYXJseSB3aXRoIHRoZSBudW1iZXIgb2YKLSsJICAjIGdsb2JhbCB2YXJpYWJsZXMuIGpv aW4oMSkgd291bGQgYmUgbmljZSBoZXJlLCBidXQgdW5mb3J0dW5hdGVseQotKwkgICMgaXNuJ3Qg YSBibGVzc2VkIHRvb2wuCi0rCSAgJG9wdF9kcnlfcnVuIHx8ICRTRUQgLWUgJy9bICxdREFUQS8h ZDtzLFwoLipcKVwoWyBcLF0uKlwpLHN8XlwxJHxcMVwyfCwnIDwgJGV4cG9ydF9zeW1ib2xzID4g JG91dHB1dF9vYmpkaXIvJGxpYm5hbWUuZmlsdGVyCi0rCSAgZGVsZmlsZXM9IiRkZWxmaWxlcyAk ZXhwb3J0X3N5bWJvbHMgJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUuZmlsdGVyIgotKwkgIGV4cG9y dF9zeW1ib2xzPSRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLmRlZgotKwkgICRvcHRfZHJ5X3J1biB8 fCAkU0VEIC1mICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLmZpbHRlciA8ICRvcmlnX2V4cG9ydF9z eW1ib2xzID4gJGV4cG9ydF9zeW1ib2xzCi0rCWZpCi0rCi0rCXRtcF9kZXBsaWJzPQotKwlmb3Ig dGVzdF9kZXBsaWIgaW4gJGRlcGxpYnM7IGRvCi0rCSAgY2FzZSAiICRjb252ZW5pZW5jZSAiIGlu Ci0rCSAgKiIgJHRlc3RfZGVwbGliICIqKSA7OwotKwkgICopCi0rCSAgICB0bXBfZGVwbGlicz0i JHRtcF9kZXBsaWJzICR0ZXN0X2RlcGxpYiIKLSsJICAgIDs7Ci0rCSAgZXNhYwotKwlkb25lCi0r CWRlcGxpYnM9IiR0bXBfZGVwbGlicyIKLSsKLSsJaWYgdGVzdCAtbiAiJGNvbnZlbmllbmNlIjsg dGhlbgotKwkgIGlmIHRlc3QgLW4gIiR3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYyIgJiYKLSsJICAg IHRlc3QgIiRjb21waWxlcl9uZWVkc19vYmplY3QiID0geWVzICYmCi0rCSAgICB0ZXN0IC16ICIk bGlib2JqcyI7IHRoZW4KLSsJICAgICMgZXh0cmFjdCB0aGUgYXJjaGl2ZXMsIHNvIHdlIGhhdmUg b2JqZWN0cyB0byBsaXN0LgotKwkgICAgIyBUT0RPOiBjb3VsZCBvcHRpbWl6ZSB0aGlzIHRvIGp1 c3QgZXh0cmFjdCBvbmUgYXJjaGl2ZS4KLSsJICAgIHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjPQot KwkgIGZpCi0rCSAgaWYgdGVzdCAtbiAiJHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjIjsgdGhlbgot KwkgICAgc2F2ZV9saWJvYmpzPSRsaWJvYmpzCi0rCSAgICBldmFsIGxpYm9ianM9XCJcJGxpYm9i anMgJHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjXCIKLSsJICAgIHRlc3QgIlgkbGlib2JqcyIgPSAi WCAiICYmIGxpYm9ianM9Ci0rCSAgZWxzZQotKwkgICAgZ2VudG9wPSIkb3V0cHV0X29iamRpci8k e291dHB1dG5hbWV9eCIKLSsJICAgIGdlbmVyYXRlZD0iJGdlbmVyYXRlZCAkZ2VudG9wIgotKwot KwkgICAgZnVuY19leHRyYWN0X2FyY2hpdmVzICRnZW50b3AgJGNvbnZlbmllbmNlCi0rCSAgICBs aWJvYmpzPSIkbGlib2JqcyAkZnVuY19leHRyYWN0X2FyY2hpdmVzX3Jlc3VsdCIKLSsJICAgIHRl c3QgIlgkbGlib2JqcyIgPSAiWCAiICYmIGxpYm9ianM9Ci0rCSAgZmkKLSsJZmkKLSsKLSsJaWYg dGVzdCAiJHRocmVhZF9zYWZlIiA9IHllcyAmJiB0ZXN0IC1uICIkdGhyZWFkX3NhZmVfZmxhZ19z cGVjIjsgdGhlbgotKwkgIGV2YWwgZmxhZz1cIiR0aHJlYWRfc2FmZV9mbGFnX3NwZWNcIgotKwkg IGxpbmtlcl9mbGFncz0iJGxpbmtlcl9mbGFncyAkZmxhZyIKLSsJZmkKLSsKLSsJIyBNYWtlIGEg YmFja3VwIG9mIHRoZSB1bmluc3RhbGxlZCBsaWJyYXJ5IHdoZW4gcmVsaW5raW5nCi0rCWlmIHRl c3QgIiRtb2RlIiA9IHJlbGluazsgdGhlbgotKwkgICRvcHRfZHJ5X3J1biB8fCBldmFsICcoY2Qg JG91dHB1dF9vYmpkaXIgJiYgJFJNICR7cmVhbG5hbWV9VSAmJiAkTVYgJHJlYWxuYW1lICR7cmVh bG5hbWV9VSknIHx8IGV4aXQgJD8KLSsJZmkKLSsKLSsJIyBEbyBlYWNoIG9mIHRoZSBhcmNoaXZl IGNvbW1hbmRzLgotKwlpZiB0ZXN0ICIkbW9kdWxlIiA9IHllcyAmJiB0ZXN0IC1uICIkbW9kdWxl X2NtZHMiIDsgdGhlbgotKwkgIGlmIHRlc3QgLW4gIiRleHBvcnRfc3ltYm9scyIgJiYgdGVzdCAt biAiJG1vZHVsZV9leHBzeW1fY21kcyI7IHRoZW4KLSsJICAgIGV2YWwgdGVzdF9jbWRzPVwiJG1v ZHVsZV9leHBzeW1fY21kc1wiCi0rCSAgICBjbWRzPSRtb2R1bGVfZXhwc3ltX2NtZHMKLSsJICBl bHNlCi0rCSAgICBldmFsIHRlc3RfY21kcz1cIiRtb2R1bGVfY21kc1wiCi0rCSAgICBjbWRzPSRt b2R1bGVfY21kcwotKwkgIGZpCi0rCWVsc2UKLSsJICBpZiB0ZXN0IC1uICIkZXhwb3J0X3N5bWJv bHMiICYmIHRlc3QgLW4gIiRhcmNoaXZlX2V4cHN5bV9jbWRzIjsgdGhlbgotKwkgICAgZXZhbCB0 ZXN0X2NtZHM9XCIkYXJjaGl2ZV9leHBzeW1fY21kc1wiCi0rCSAgICBjbWRzPSRhcmNoaXZlX2V4 cHN5bV9jbWRzCi0rCSAgZWxzZQotKwkgICAgZXZhbCB0ZXN0X2NtZHM9XCIkYXJjaGl2ZV9jbWRz XCIKLSsJICAgIGNtZHM9JGFyY2hpdmVfY21kcwotKwkgIGZpCi0rCWZpCi0rCi0rCWlmIHRlc3Qg Ilgkc2tpcHBlZF9leHBvcnQiICE9ICJYOiIgJiYKLSsJICAgZnVuY19sZW4gIiAkdGVzdF9jbWRz IiAmJgotKwkgICBsZW49JGZ1bmNfbGVuX3Jlc3VsdCAmJgotKwkgICB0ZXN0ICIkbGVuIiAtbHQg IiRtYXhfY21kX2xlbiIgfHwgdGVzdCAiJG1heF9jbWRfbGVuIiAtbGUgLTE7IHRoZW4KLSsJICA6 Ci0rCWVsc2UKLSsJICAjIFRoZSBjb21tYW5kIGxpbmUgaXMgdG9vIGxvbmcgdG8gbGluayBpbiBv bmUgc3RlcCwgbGluayBwaWVjZXdpc2UKLSsJICAjIG9yLCBpZiB1c2luZyBHTlUgbGQgYW5kIHNr aXBwZWRfZXhwb3J0IGlzIG5vdCA6LCB1c2UgYSBsaW5rZXIKLSsJICAjIHNjcmlwdC4KLSsKLSsJ ICAjIFNhdmUgdGhlIHZhbHVlIG9mICRvdXRwdXQgYW5kICRsaWJvYmpzIGJlY2F1c2Ugd2Ugd2Fu dCB0bwotKwkgICMgdXNlIHRoZW0gbGF0ZXIuICBJZiB3ZSBoYXZlIHdob2xlX2FyY2hpdmVfZmxh Z19zcGVjLCB3ZQotKwkgICMgd2FudCB0byB1c2Ugc2F2ZV9saWJvYmpzIGFzIGl0IHdhcyBiZWZv cmUKLSsJICAjIHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjIHdhcyBleHBhbmRlZCwgYmVjYXVzZSB3 ZSBjYW4ndAotKwkgICMgYXNzdW1lIHRoZSBsaW5rZXIgdW5kZXJzdGFuZHMgd2hvbGVfYXJjaGl2 ZV9mbGFnX3NwZWMuCi0rCSAgIyBUaGlzIG1heSBoYXZlIHRvIGJlIHJldmlzaXRlZCwgaW4gY2Fz ZSB0b28gbWFueQotKwkgICMgY29udmVuaWVuY2UgbGlicmFyaWVzIGdldCBsaW5rZWQgaW4gYW5k IGVuZCB1cCBleGNlZWRpbmcKLSsJICAjIHRoZSBzcGVjLgotKwkgIGlmIHRlc3QgLXogIiRjb252 ZW5pZW5jZSIgfHwgdGVzdCAteiAiJHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjIjsgdGhlbgotKwkg ICAgc2F2ZV9saWJvYmpzPSRsaWJvYmpzCi0rCSAgZmkKLSsJICBzYXZlX291dHB1dD0kb3V0cHV0 Ci0rCSAgb3V0cHV0X2xhPWAkRUNITyAiWCRvdXRwdXQiIHwgJFhzZWQgLWUgIiRiYXNlbmFtZSJg Ci0rCi0rCSAgIyBDbGVhciB0aGUgcmVsb2FkYWJsZSBvYmplY3QgY3JlYXRpb24gY29tbWFuZCBx dWV1ZSBhbmQKLSsJICAjIGluaXRpYWxpemUgayB0byBvbmUuCi0rCSAgdGVzdF9jbWRzPQotKwkg IGNvbmNhdF9jbWRzPQotKwkgIG9iamxpc3Q9Ci0rCSAgbGFzdF9yb2JqPQotKwkgIGs9MQotKwot KwkgIGlmIHRlc3QgLW4gIiRzYXZlX2xpYm9ianMiICYmIHRlc3QgIlgkc2tpcHBlZF9leHBvcnQi ICE9ICJYOiIgJiYgdGVzdCAiJHdpdGhfZ251X2xkIiA9IHllczsgdGhlbgotKwkgICAgb3V0cHV0 PSR7b3V0cHV0X29iamRpcn0vJHtvdXRwdXRfbGF9Lmxua3NjcmlwdAotKwkgICAgZnVuY192ZXJi b3NlICJjcmVhdGluZyBHTlUgbGQgc2NyaXB0OiAkb3V0cHV0IgotKwkgICAgJEVDSE8gJ0lOUFVU ICgnID4gJG91dHB1dAotKwkgICAgZm9yIG9iaiBpbiAkc2F2ZV9saWJvYmpzCi0rCSAgICBkbwot KwkgICAgICAkRUNITyAiJG9iaiIgPj4gJG91dHB1dAotKwkgICAgZG9uZQotKwkgICAgJEVDSE8g JyknID4+ICRvdXRwdXQKLSsJICAgIGRlbGZpbGVzPSIkZGVsZmlsZXMgJG91dHB1dCIKLSsJICBl bGlmIHRlc3QgLW4gIiRzYXZlX2xpYm9ianMiICYmIHRlc3QgIlgkc2tpcHBlZF9leHBvcnQiICE9 ICJYOiIgJiYgdGVzdCAiWCRmaWxlX2xpc3Rfc3BlYyIgIT0gWDsgdGhlbgotKwkgICAgb3V0cHV0 PSR7b3V0cHV0X29iamRpcn0vJHtvdXRwdXRfbGF9LmxuawotKwkgICAgZnVuY192ZXJib3NlICJj cmVhdGluZyBsaW5rZXIgaW5wdXQgZmlsZSBsaXN0OiAkb3V0cHV0IgotKwkgICAgOiA+ICRvdXRw dXQKLSsJICAgIHNldCB4ICRzYXZlX2xpYm9ianMKLSsJICAgIHNoaWZ0Ci0rCSAgICBmaXJzdG9i aj0KLSsJICAgIGlmIHRlc3QgIiRjb21waWxlcl9uZWVkc19vYmplY3QiID0geWVzOyB0aGVuCi0r CSAgICAgIGZpcnN0b2JqPSIkMSAiCi0rCSAgICAgIHNoaWZ0Ci0rCSAgICBmaQotKwkgICAgZm9y IG9iagotKwkgICAgZG8KLSsJICAgICAgJEVDSE8gIiRvYmoiID4+ICRvdXRwdXQKLSsJICAgIGRv bmUKLSsJICAgIGRlbGZpbGVzPSIkZGVsZmlsZXMgJG91dHB1dCIKLSsJICAgIG91dHB1dD0kZmly c3RvYmpcIiRmaWxlX2xpc3Rfc3BlYyRvdXRwdXRcIgotKwkgIGVsc2UKLSsJICAgIGlmIHRlc3Qg LW4gIiRzYXZlX2xpYm9ianMiOyB0aGVuCi0rCSAgICAgIGZ1bmNfdmVyYm9zZSAiY3JlYXRpbmcg cmVsb2FkYWJsZSBvYmplY3QgZmlsZXMuLi4iCi0rCSAgICAgIG91dHB1dD0kb3V0cHV0X29iamRp ci8kb3V0cHV0X2xhLSR7a30uJG9iamV4dAotKwkgICAgICBldmFsIHRlc3RfY21kcz1cIiRyZWxv YWRfY21kc1wiCi0rCSAgICAgIGZ1bmNfbGVuICIgJHRlc3RfY21kcyIKLSsJICAgICAgbGVuMD0k ZnVuY19sZW5fcmVzdWx0Ci0rCSAgICAgIGxlbj0kbGVuMAotKwotKwkgICAgICAjIExvb3Agb3Zl ciB0aGUgbGlzdCBvZiBvYmplY3RzIHRvIGJlIGxpbmtlZC4KLSsJICAgICAgZm9yIG9iaiBpbiAk c2F2ZV9saWJvYmpzCi0rCSAgICAgIGRvCi0rCQlmdW5jX2xlbiAiICRvYmoiCi0rCQlmdW5jX2Fy aXRoICRsZW4gKyAkZnVuY19sZW5fcmVzdWx0Ci0rCQlsZW49JGZ1bmNfYXJpdGhfcmVzdWx0Ci0r CQlpZiB0ZXN0ICJYJG9iamxpc3QiID0gWCB8fAotKwkJICAgdGVzdCAiJGxlbiIgLWx0ICIkbWF4 X2NtZF9sZW4iOyB0aGVuCi0rCQkgIGZ1bmNfYXBwZW5kIG9iamxpc3QgIiAkb2JqIgotKwkJZWxz ZQotKwkJICAjIFRoZSBjb21tYW5kICR0ZXN0X2NtZHMgaXMgYWxtb3N0IHRvbyBsb25nLCBhZGQg YQotKwkJICAjIGNvbW1hbmQgdG8gdGhlIHF1ZXVlLgotKwkJICBpZiB0ZXN0ICIkayIgLWVxIDEg OyB0aGVuCi0rCQkgICAgIyBUaGUgZmlyc3QgZmlsZSBkb2Vzbid0IGhhdmUgYSBwcmV2aW91cyBj b21tYW5kIHRvIGFkZC4KLSsJCSAgICBldmFsIGNvbmNhdF9jbWRzPVwiJHJlbG9hZF9jbWRzICRv YmpsaXN0ICRsYXN0X3JvYmpcIgotKwkJICBlbHNlCi0rCQkgICAgIyBBbGwgc3Vic2VxdWVudCBy ZWxvYWRhYmxlIG9iamVjdCBmaWxlcyB3aWxsIGxpbmsgaW4KLSsJCSAgICAjIHRoZSBsYXN0IG9u ZSBjcmVhdGVkLgotKwkJICAgIGV2YWwgY29uY2F0X2NtZHM9XCJcJGNvbmNhdF9jbWRzfiRyZWxv YWRfY21kcyAkb2JqbGlzdCAkbGFzdF9yb2JqflwkUk0gJGxhc3Rfcm9ialwiCi0rCQkgIGZpCi0r CQkgIGxhc3Rfcm9iaj0kb3V0cHV0X29iamRpci8kb3V0cHV0X2xhLSR7a30uJG9iamV4dAotKwkJ ICBmdW5jX2FyaXRoICRrICsgMQotKwkJICBrPSRmdW5jX2FyaXRoX3Jlc3VsdAotKwkJICBvdXRw dXQ9JG91dHB1dF9vYmpkaXIvJG91dHB1dF9sYS0ke2t9LiRvYmpleHQKLSsJCSAgb2JqbGlzdD0k b2JqCi0rCQkgIGZ1bmNfbGVuICIgJGxhc3Rfcm9iaiIKLSsJCSAgZnVuY19hcml0aCAkbGVuMCAr ICRmdW5jX2xlbl9yZXN1bHQKLSsJCSAgbGVuPSRmdW5jX2FyaXRoX3Jlc3VsdAotKwkJZmkKLSsJ ICAgICAgZG9uZQotKwkgICAgICAjIEhhbmRsZSB0aGUgcmVtYWluaW5nIG9iamVjdHMgYnkgY3Jl YXRpbmcgb25lIGxhc3QKLSsJICAgICAgIyByZWxvYWRhYmxlIG9iamVjdCBmaWxlLiAgQWxsIHN1 YnNlcXVlbnQgcmVsb2FkYWJsZSBvYmplY3QKLSsJICAgICAgIyBmaWxlcyB3aWxsIGxpbmsgaW4g dGhlIGxhc3Qgb25lIGNyZWF0ZWQuCi0rCSAgICAgIHRlc3QgLXogIiRjb25jYXRfY21kcyIgfHwg Y29uY2F0X2NtZHM9JGNvbmNhdF9jbWRzfgotKwkgICAgICBldmFsIGNvbmNhdF9jbWRzPVwiXCR7 Y29uY2F0X2NtZHN9JHJlbG9hZF9jbWRzICRvYmpsaXN0ICRsYXN0X3JvYmpcIgotKwkgICAgICBp ZiB0ZXN0IC1uICIkbGFzdF9yb2JqIjsgdGhlbgotKwkgICAgICAgIGV2YWwgY29uY2F0X2NtZHM9 XCJcJHtjb25jYXRfY21kc31+XCRSTSAkbGFzdF9yb2JqXCIKLSsJICAgICAgZmkKLSsJICAgICAg ZGVsZmlsZXM9IiRkZWxmaWxlcyAkb3V0cHV0IgotKwotKwkgICAgZWxzZQotKwkgICAgICBvdXRw dXQ9Ci0rCSAgICBmaQotKwotKwkgICAgaWYgJHtza2lwcGVkX2V4cG9ydC1mYWxzZX07IHRoZW4K LSsJICAgICAgZnVuY192ZXJib3NlICJnZW5lcmF0aW5nIHN5bWJvbCBsaXN0IGZvciBcYCRsaWJu YW1lLmxhJyIKLSsJICAgICAgZXhwb3J0X3N5bWJvbHM9IiRvdXRwdXRfb2JqZGlyLyRsaWJuYW1l LmV4cCIKLSsJICAgICAgJG9wdF9kcnlfcnVuIHx8ICRSTSAkZXhwb3J0X3N5bWJvbHMKLSsJICAg ICAgbGlib2Jqcz0kb3V0cHV0Ci0rCSAgICAgICMgQXBwZW5kIHRoZSBjb21tYW5kIHRvIGNyZWF0 ZSB0aGUgZXhwb3J0IGZpbGUuCi0rCSAgICAgIHRlc3QgLXogIiRjb25jYXRfY21kcyIgfHwgY29u Y2F0X2NtZHM9JGNvbmNhdF9jbWRzfgotKwkgICAgICBldmFsIGNvbmNhdF9jbWRzPVwiXCRjb25j YXRfY21kcyRleHBvcnRfc3ltYm9sc19jbWRzXCIKLSsJICAgICAgaWYgdGVzdCAtbiAiJGxhc3Rf cm9iaiI7IHRoZW4KLSsJCWV2YWwgY29uY2F0X2NtZHM9XCJcJGNvbmNhdF9jbWRzflwkUk0gJGxh c3Rfcm9ialwiCi0rCSAgICAgIGZpCi0rCSAgICBmaQotKwotKwkgICAgdGVzdCAtbiAiJHNhdmVf bGlib2JqcyIgJiYKLSsJICAgICAgZnVuY192ZXJib3NlICJjcmVhdGluZyBhIHRlbXBvcmFyeSBy ZWxvYWRhYmxlIG9iamVjdCBmaWxlOiAkb3V0cHV0IgotKwotKwkgICAgIyBMb29wIHRocm91Z2gg dGhlIGNvbW1hbmRzIGdlbmVyYXRlZCBhYm92ZSBhbmQgZXhlY3V0ZSB0aGVtLgotKwkgICAgc2F2 ZV9pZnM9IiRJRlMiOyBJRlM9J34nCi0rCSAgICBmb3IgY21kIGluICRjb25jYXRfY21kczsgZG8K LSsJICAgICAgSUZTPSIkc2F2ZV9pZnMiCi0rCSAgICAgICRvcHRfc2lsZW50IHx8IHsKLSsJCSAg ZnVuY19xdW90ZV9mb3JfZXhwYW5kICIkY21kIgotKwkJICBldmFsICJmdW5jX2VjaG8gJGZ1bmNf cXVvdGVfZm9yX2V4cGFuZF9yZXN1bHQiCi0rCSAgICAgIH0KLSsJICAgICAgJG9wdF9kcnlfcnVu IHx8IGV2YWwgIiRjbWQiIHx8IHsKLSsJCWx0X2V4aXQ9JD8KLSsKLSsJCSMgUmVzdG9yZSB0aGUg dW5pbnN0YWxsZWQgbGlicmFyeSBhbmQgZXhpdAotKwkJaWYgdGVzdCAiJG1vZGUiID0gcmVsaW5r OyB0aGVuCi0rCQkgICggY2QgIiRvdXRwdXRfb2JqZGlyIiAmJiBcCi0rCQkgICAgJFJNICIke3Jl YWxuYW1lfVQiICYmIFwKLSsJCSAgICAkTVYgIiR7cmVhbG5hbWV9VSIgIiRyZWFsbmFtZSIgKQot KwkJZmkKLSsKLSsJCWV4aXQgJGx0X2V4aXQKLSsJICAgICAgfQotKwkgICAgZG9uZQotKwkgICAg SUZTPSIkc2F2ZV9pZnMiCi0rCi0rCSAgICBpZiB0ZXN0IC1uICIkZXhwb3J0X3N5bWJvbHNfcmVn ZXgiICYmICR7c2tpcHBlZF9leHBvcnQtZmFsc2V9OyB0aGVuCi0rCSAgICAgIGZ1bmNfc2hvd19l dmFsICckRUdSRVAgLWUgIiRleHBvcnRfc3ltYm9sc19yZWdleCIgIiRleHBvcnRfc3ltYm9scyIg PiAiJHtleHBvcnRfc3ltYm9sc31UIicKLSsJICAgICAgZnVuY19zaG93X2V2YWwgJyRNViAiJHtl eHBvcnRfc3ltYm9sc31UIiAiJGV4cG9ydF9zeW1ib2xzIicKLSsJICAgIGZpCi0rCSAgZmkKLSsK LSsgICAgICAgICAgaWYgJHtza2lwcGVkX2V4cG9ydC1mYWxzZX07IHRoZW4KLSsJICAgIGlmIHRl c3QgLW4gIiRleHBvcnRfc3ltYm9scyIgJiYgdGVzdCAtbiAiJGluY2x1ZGVfZXhwc3ltcyI7IHRo ZW4KLSsJICAgICAgdG1wX2V4cG9ydF9zeW1ib2xzPSIkZXhwb3J0X3N5bWJvbHMiCi0rCSAgICAg IHRlc3QgLW4gIiRvcmlnX2V4cG9ydF9zeW1ib2xzIiAmJiB0bXBfZXhwb3J0X3N5bWJvbHM9IiRv cmlnX2V4cG9ydF9zeW1ib2xzIgotKwkgICAgICAkb3B0X2RyeV9ydW4gfHwgZXZhbCAnJEVDSE8g IlgkaW5jbHVkZV9leHBzeW1zIiB8ICRYc2VkIHwgJFNQMk5MID4+ICIkdG1wX2V4cG9ydF9zeW1i b2xzIicKLSsJICAgIGZpCi0rCi0rCSAgICBpZiB0ZXN0IC1uICIkb3JpZ19leHBvcnRfc3ltYm9s cyI7IHRoZW4KLSsJICAgICAgIyBUaGUgZ2l2ZW4gZXhwb3J0c19zeW1ib2xzIGZpbGUgaGFzIHRv IGJlIGZpbHRlcmVkLCBzbyBmaWx0ZXIgaXQuCi0rCSAgICAgIGZ1bmNfdmVyYm9zZSAiZmlsdGVy IHN5bWJvbCBsaXN0IGZvciBcYCRsaWJuYW1lLmxhJyB0byB0YWcgREFUQSBleHBvcnRzIgotKwkg ICAgICAjIEZJWE1FOiAkb3V0cHV0X29iamRpci8kbGlibmFtZS5maWx0ZXIgcG90ZW50aWFsbHkg Y29udGFpbnMgbG90cyBvZgotKwkgICAgICAjICdzJyBjb21tYW5kcyB3aGljaCBub3QgYWxsIHNl ZHMgY2FuIGhhbmRsZS4gR05VIHNlZCBzaG91bGQgYmUgZmluZQotKwkgICAgICAjIHRob3VnaC4g QWxzbywgdGhlIGZpbHRlciBzY2FsZXMgc3VwZXJsaW5lYXJseSB3aXRoIHRoZSBudW1iZXIgb2YK LSsJICAgICAgIyBnbG9iYWwgdmFyaWFibGVzLiBqb2luKDEpIHdvdWxkIGJlIG5pY2UgaGVyZSwg YnV0IHVuZm9ydHVuYXRlbHkKLSsJICAgICAgIyBpc24ndCBhIGJsZXNzZWQgdG9vbC4KLSsJICAg ICAgJG9wdF9kcnlfcnVuIHx8ICRTRUQgLWUgJy9bICxdREFUQS8hZDtzLFwoLipcKVwoWyBcLF0u KlwpLHN8XlwxJHxcMVwyfCwnIDwgJGV4cG9ydF9zeW1ib2xzID4gJG91dHB1dF9vYmpkaXIvJGxp Ym5hbWUuZmlsdGVyCi0rCSAgICAgIGRlbGZpbGVzPSIkZGVsZmlsZXMgJGV4cG9ydF9zeW1ib2xz ICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLmZpbHRlciIKLSsJICAgICAgZXhwb3J0X3N5bWJvbHM9 JG91dHB1dF9vYmpkaXIvJGxpYm5hbWUuZGVmCi0rCSAgICAgICRvcHRfZHJ5X3J1biB8fCAkU0VE IC1mICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLmZpbHRlciA8ICRvcmlnX2V4cG9ydF9zeW1ib2xz ID4gJGV4cG9ydF9zeW1ib2xzCi0rCSAgICBmaQotKwkgIGZpCi0rCi0rCSAgbGlib2Jqcz0kb3V0 cHV0Ci0rCSAgIyBSZXN0b3JlIHRoZSB2YWx1ZSBvZiBvdXRwdXQuCi0rCSAgb3V0cHV0PSRzYXZl X291dHB1dAotKwotKwkgIGlmIHRlc3QgLW4gIiRjb252ZW5pZW5jZSIgJiYgdGVzdCAtbiAiJHdo b2xlX2FyY2hpdmVfZmxhZ19zcGVjIjsgdGhlbgotKwkgICAgZXZhbCBsaWJvYmpzPVwiXCRsaWJv YmpzICR3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlY1wiCi0rCSAgICB0ZXN0ICJYJGxpYm9ianMiID0g IlggIiAmJiBsaWJvYmpzPQotKwkgIGZpCi0rCSAgIyBFeHBhbmQgdGhlIGxpYnJhcnkgbGlua2lu ZyBjb21tYW5kcyBhZ2FpbiB0byByZXNldCB0aGUKLSsJICAjIHZhbHVlIG9mICRsaWJvYmpzIGZv ciBwaWVjZXdpc2UgbGlua2luZy4KLSsKLSsJICAjIERvIGVhY2ggb2YgdGhlIGFyY2hpdmUgY29t bWFuZHMuCi0rCSAgaWYgdGVzdCAiJG1vZHVsZSIgPSB5ZXMgJiYgdGVzdCAtbiAiJG1vZHVsZV9j bWRzIiA7IHRoZW4KLSsJICAgIGlmIHRlc3QgLW4gIiRleHBvcnRfc3ltYm9scyIgJiYgdGVzdCAt biAiJG1vZHVsZV9leHBzeW1fY21kcyI7IHRoZW4KLSsJICAgICAgY21kcz0kbW9kdWxlX2V4cHN5 bV9jbWRzCi0rCSAgICBlbHNlCi0rCSAgICAgIGNtZHM9JG1vZHVsZV9jbWRzCi0rCSAgICBmaQot KwkgIGVsc2UKLSsJICAgIGlmIHRlc3QgLW4gIiRleHBvcnRfc3ltYm9scyIgJiYgdGVzdCAtbiAi JGFyY2hpdmVfZXhwc3ltX2NtZHMiOyB0aGVuCi0rCSAgICAgIGNtZHM9JGFyY2hpdmVfZXhwc3lt X2NtZHMKLSsJICAgIGVsc2UKLSsJICAgICAgY21kcz0kYXJjaGl2ZV9jbWRzCi0rCSAgICBmaQot KwkgIGZpCi0rCWZpCi0rCi0rCWlmIHRlc3QgLW4gIiRkZWxmaWxlcyI7IHRoZW4KLSsJICAjIEFw cGVuZCB0aGUgY29tbWFuZCB0byByZW1vdmUgdGVtcG9yYXJ5IGZpbGVzIHRvICRjbWRzLgotKwkg IGV2YWwgY21kcz1cIlwkY21kc35cJFJNICRkZWxmaWxlc1wiCi0rCWZpCi0rCi0rCSMgQWRkIGFu eSBvYmplY3RzIGZyb20gcHJlbG9hZGVkIGNvbnZlbmllbmNlIGxpYnJhcmllcwotKwlpZiB0ZXN0 IC1uICIkZGxwcmVmaWxlcyI7IHRoZW4KLSsJICBnZW50b3A9IiRvdXRwdXRfb2JqZGlyLyR7b3V0 cHV0bmFtZX14IgotKwkgIGdlbmVyYXRlZD0iJGdlbmVyYXRlZCAkZ2VudG9wIgotKwotKwkgIGZ1 bmNfZXh0cmFjdF9hcmNoaXZlcyAkZ2VudG9wICRkbHByZWZpbGVzCi0rCSAgbGlib2Jqcz0iJGxp Ym9ianMgJGZ1bmNfZXh0cmFjdF9hcmNoaXZlc19yZXN1bHQiCi0rCSAgdGVzdCAiWCRsaWJvYmpz IiA9ICJYICIgJiYgbGlib2Jqcz0KLSsJZmkKLSsKLSsJc2F2ZV9pZnM9IiRJRlMiOyBJRlM9J34n Ci0rCWZvciBjbWQgaW4gJGNtZHM7IGRvCi0rCSAgSUZTPSIkc2F2ZV9pZnMiCi0rCSAgZXZhbCBj bWQ9XCIkY21kXCIKLSsJICAkb3B0X3NpbGVudCB8fCB7Ci0rCSAgICBmdW5jX3F1b3RlX2Zvcl9l eHBhbmQgIiRjbWQiCi0rCSAgICBldmFsICJmdW5jX2VjaG8gJGZ1bmNfcXVvdGVfZm9yX2V4cGFu ZF9yZXN1bHQiCi0rCSAgfQotKwkgICRvcHRfZHJ5X3J1biB8fCBldmFsICIkY21kIiB8fCB7Ci0r CSAgICBsdF9leGl0PSQ/Ci0rCi0rCSAgICAjIFJlc3RvcmUgdGhlIHVuaW5zdGFsbGVkIGxpYnJh cnkgYW5kIGV4aXQKLSsJICAgIGlmIHRlc3QgIiRtb2RlIiA9IHJlbGluazsgdGhlbgotKwkgICAg ICAoIGNkICIkb3V0cHV0X29iamRpciIgJiYgXAotKwkgICAgICAgICRSTSAiJHtyZWFsbmFtZX1U IiAmJiBcCi0rCQkkTVYgIiR7cmVhbG5hbWV9VSIgIiRyZWFsbmFtZSIgKQotKwkgICAgZmkKLSsK LSsJICAgIGV4aXQgJGx0X2V4aXQKLSsJICB9Ci0rCWRvbmUKLSsJSUZTPSIkc2F2ZV9pZnMiCi0r Ci0rCSMgUmVzdG9yZSB0aGUgdW5pbnN0YWxsZWQgbGlicmFyeSBhbmQgZXhpdAotKwlpZiB0ZXN0 ICIkbW9kZSIgPSByZWxpbms7IHRoZW4KLSsJICAkb3B0X2RyeV9ydW4gfHwgZXZhbCAnKGNkICRv dXRwdXRfb2JqZGlyICYmICRSTSAke3JlYWxuYW1lfVQgJiYgJE1WICRyZWFsbmFtZSAke3JlYWxu YW1lfVQgJiYgJE1WICR7cmVhbG5hbWV9VSAkcmVhbG5hbWUpJyB8fCBleGl0ICQ/Ci0rCi0rCSAg aWYgdGVzdCAtbiAiJGNvbnZlbmllbmNlIjsgdGhlbgotKwkgICAgaWYgdGVzdCAteiAiJHdob2xl X2FyY2hpdmVfZmxhZ19zcGVjIjsgdGhlbgotKwkgICAgICBmdW5jX3Nob3dfZXZhbCAnJHtSTX1y ICIkZ2VudG9wIicKLSsJICAgIGZpCi0rCSAgZmkKLSsKLSsJICBleGl0ICRFWElUX1NVQ0NFU1MK LSsJZmkKLSsKLSsJIyBDcmVhdGUgbGlua3MgdG8gdGhlIHJlYWwgbGlicmFyeS4KLSsJZm9yIGxp bmtuYW1lIGluICRsaW5rbmFtZXM7IGRvCi0rCSAgaWYgdGVzdCAiJHJlYWxuYW1lIiAhPSAiJGxp bmtuYW1lIjsgdGhlbgotKwkgICAgZnVuY19zaG93X2V2YWwgJyhjZCAiJG91dHB1dF9vYmpkaXIi ICYmICRSTSAiJGxpbmtuYW1lIiAmJiAkTE5fUyAiJHJlYWxuYW1lIiAiJGxpbmtuYW1lIiknICdl eGl0ICQ/JwotKwkgIGZpCi0rCWRvbmUKLSsKLSsJIyBJZiAtbW9kdWxlIG9yIC1leHBvcnQtZHlu YW1pYyB3YXMgc3BlY2lmaWVkLCBzZXQgdGhlIGRsbmFtZS4KLSsJaWYgdGVzdCAiJG1vZHVsZSIg PSB5ZXMgfHwgdGVzdCAiJGV4cG9ydF9keW5hbWljIiA9IHllczsgdGhlbgotKwkgICMgT24gYWxs IGtub3duIG9wZXJhdGluZyBzeXN0ZW1zLCB0aGVzZSBhcmUgaWRlbnRpY2FsLgotKwkgIGRsbmFt ZT0iJHNvbmFtZSIKLSsJZmkKLSsgICAgICBmaQotKyAgICAgIDs7Ci0rCi0rICAgIG9iaikKLSsg ICAgICBpZiB0ZXN0IC1uICIkZGxmaWxlcyRkbHByZWZpbGVzIiB8fCB0ZXN0ICIkZGxzZWxmIiAh PSBubzsgdGhlbgotKwlmdW5jX3dhcm5pbmcgIlxgLWRsb3BlbicgaXMgaWdub3JlZCBmb3Igb2Jq ZWN0cyIKLSsgICAgICBmaQotKwotKyAgICAgIGNhc2UgIiAkZGVwbGlicyIgaW4KLSsgICAgICAq XCAtbCogfCAqXCAtTCopCi0rCWZ1bmNfd2FybmluZyAiXGAtbCcgYW5kIFxgLUwnIGFyZSBpZ25v cmVkIGZvciBvYmplY3RzIiA7OwotKyAgICAgIGVzYWMKLSsKLSsgICAgICB0ZXN0IC1uICIkcnBh dGgiICYmIFwKLSsJZnVuY193YXJuaW5nICJcYC1ycGF0aCcgaXMgaWdub3JlZCBmb3Igb2JqZWN0 cyIKLSsKLSsgICAgICB0ZXN0IC1uICIkeHJwYXRoIiAmJiBcCi0rCWZ1bmNfd2FybmluZyAiXGAt UicgaXMgaWdub3JlZCBmb3Igb2JqZWN0cyIKLSsKLSsgICAgICB0ZXN0IC1uICIkdmluZm8iICYm IFwKLSsJZnVuY193YXJuaW5nICJcYC12ZXJzaW9uLWluZm8nIGlzIGlnbm9yZWQgZm9yIG9iamVj dHMiCi0rCi0rICAgICAgdGVzdCAtbiAiJHJlbGVhc2UiICYmIFwKLSsJZnVuY193YXJuaW5nICJc YC1yZWxlYXNlJyBpcyBpZ25vcmVkIGZvciBvYmplY3RzIgotKwotKyAgICAgIGNhc2UgJG91dHB1 dCBpbgotKyAgICAgICoubG8pCi0rCXRlc3QgLW4gIiRvYmpzJG9sZF9kZXBsaWJzIiAmJiBcCi0r CSAgZnVuY19mYXRhbF9lcnJvciAiY2Fubm90IGJ1aWxkIGxpYnJhcnkgb2JqZWN0IFxgJG91dHB1 dCcgZnJvbSBub24tbGlidG9vbCBvYmplY3RzIgotKwotKwlsaWJvYmo9JG91dHB1dAotKwlmdW5j X2xvMm8gIiRsaWJvYmoiCi0rCW9iaj0kZnVuY19sbzJvX3Jlc3VsdAotKwk7OwotKyAgICAgICop Ci0rCWxpYm9iaj0KLSsJb2JqPSIkb3V0cHV0IgotKwk7OwotKyAgICAgIGVzYWMKLSsKLSsgICAg ICAjIERlbGV0ZSB0aGUgb2xkIG9iamVjdHMuCi0rICAgICAgJG9wdF9kcnlfcnVuIHx8ICRSTSAk b2JqICRsaWJvYmoKLSsKLSsgICAgICAjIE9iamVjdHMgZnJvbSBjb252ZW5pZW5jZSBsaWJyYXJp ZXMuICBUaGlzIGFzc3VtZXMKLSsgICAgICAjIHNpbmdsZS12ZXJzaW9uIGNvbnZlbmllbmNlIGxp YnJhcmllcy4gIFdoZW5ldmVyIHdlIGNyZWF0ZQotKyAgICAgICMgZGlmZmVyZW50IG9uZXMgZm9y IFBJQy9ub24tUElDLCB0aGlzIHdlJ2xsIGhhdmUgdG8gZHVwbGljYXRlCi0rICAgICAgIyB0aGUg ZXh0cmFjdGlvbi4KLSsgICAgICByZWxvYWRfY29udl9vYmpzPQotKyAgICAgIGdlbnRvcD0KLSsg ICAgICAjIHJlbG9hZF9jbWRzIHJ1bnMgJExEIGRpcmVjdGx5LCBzbyBsZXQgdXMgZ2V0IHJpZCBv ZgotKyAgICAgICMgLVdsIGZyb20gd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWMgYW5kIGhvcGUgd2Ug Y2FuIGdldCBieSB3aXRoCi0rICAgICAgIyB0dXJuaW5nIGNvbW1hIGludG8gc3BhY2UuLgotKyAg ICAgIHdsPQotKwotKyAgICAgIGlmIHRlc3QgLW4gIiRjb252ZW5pZW5jZSI7IHRoZW4KLSsJaWYg dGVzdCAtbiAiJHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjIjsgdGhlbgotKwkgIGV2YWwgdG1wX3do b2xlX2FyY2hpdmVfZmxhZ3M9XCIkd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWNcIgotKwkgIHJlbG9h ZF9jb252X29ianM9JHJlbG9hZF9vYmpzXCBgJEVDSE8gIlgkdG1wX3dob2xlX2FyY2hpdmVfZmxh Z3MiIHwgJFhzZWQgLWUgJ3N8LHwgfGcnYAotKwllbHNlCi0rCSAgZ2VudG9wPSIkb3V0cHV0X29i amRpci8ke29ian14IgotKwkgIGdlbmVyYXRlZD0iJGdlbmVyYXRlZCAkZ2VudG9wIgotKwotKwkg IGZ1bmNfZXh0cmFjdF9hcmNoaXZlcyAkZ2VudG9wICRjb252ZW5pZW5jZQotKwkgIHJlbG9hZF9j b252X29ianM9IiRyZWxvYWRfb2JqcyAkZnVuY19leHRyYWN0X2FyY2hpdmVzX3Jlc3VsdCIKLSsJ ZmkKLSsgICAgICBmaQotKwotKyAgICAgICMgQ3JlYXRlIHRoZSBvbGQtc3R5bGUgb2JqZWN0Lgot KyAgICAgIHJlbG9hZF9vYmpzPSIkb2JqcyRvbGRfZGVwbGlicyAiYCRFQ0hPICJYJGxpYm9ianMi IHwgJFNQMk5MIHwgJFhzZWQgLWUgJy9cLicke2xpYmV4dH0kJy9kJyAtZSAnL1wubGliJC9kJyAt ZSAiJGxvMm8iIHwgJE5MMlNQYCIgJHJlbG9hZF9jb252X29ianMiICMjIyB0ZXN0c3VpdGU6IHNr aXAgbmVzdGVkIHF1b3RpbmcgdGVzdAotKwotKyAgICAgIG91dHB1dD0iJG9iaiIKLSsgICAgICBm dW5jX2V4ZWN1dGVfY21kcyAiJHJlbG9hZF9jbWRzIiAnZXhpdCAkPycKLSsKLSsgICAgICAjIEV4 aXQgaWYgd2UgYXJlbid0IGRvaW5nIGEgbGlicmFyeSBvYmplY3QgZmlsZS4KLSsgICAgICBpZiB0 ZXN0IC16ICIkbGlib2JqIjsgdGhlbgotKwlpZiB0ZXN0IC1uICIkZ2VudG9wIjsgdGhlbgotKwkg IGZ1bmNfc2hvd19ldmFsICcke1JNfXIgIiRnZW50b3AiJwotKwlmaQotKwotKwlleGl0ICRFWElU X1NVQ0NFU1MKLSsgICAgICBmaQotKwotKyAgICAgIGlmIHRlc3QgIiRidWlsZF9saWJ0b29sX2xp YnMiICE9IHllczsgdGhlbgotKwlpZiB0ZXN0IC1uICIkZ2VudG9wIjsgdGhlbgotKwkgIGZ1bmNf c2hvd19ldmFsICcke1JNfXIgIiRnZW50b3AiJwotKwlmaQotKwotKwkjIENyZWF0ZSBhbiBpbnZh bGlkIGxpYnRvb2wgb2JqZWN0IGlmIG5vIFBJQywgc28gdGhhdCB3ZSBkb24ndAotKwkjIGFjY2lk ZW50YWxseSBsaW5rIGl0IGludG8gYSBwcm9ncmFtLgotKwkjICRzaG93ICJlY2hvIHRpbWVzdGFt cCA+ICRsaWJvYmoiCi0rCSMgJG9wdF9kcnlfcnVuIHx8IGV2YWwgImVjaG8gdGltZXN0YW1wID4g JGxpYm9iaiIgfHwgZXhpdCAkPwotKwlleGl0ICRFWElUX1NVQ0NFU1MKLSsgICAgICBmaQotKwot KyAgICAgIGlmIHRlc3QgLW4gIiRwaWNfZmxhZyIgfHwgdGVzdCAiJHBpY19tb2RlIiAhPSBkZWZh dWx0OyB0aGVuCi0rCSMgT25seSBkbyBjb21tYW5kcyBpZiB3ZSByZWFsbHkgaGF2ZSBkaWZmZXJl bnQgUElDIG9iamVjdHMuCi0rCXJlbG9hZF9vYmpzPSIkbGlib2JqcyAkcmVsb2FkX2NvbnZfb2Jq cyIKLSsJb3V0cHV0PSIkbGlib2JqIgotKwlmdW5jX2V4ZWN1dGVfY21kcyAiJHJlbG9hZF9jbWRz IiAnZXhpdCAkPycKLSsgICAgICBmaQotKwotKyAgICAgIGlmIHRlc3QgLW4gIiRnZW50b3AiOyB0 aGVuCi0rCWZ1bmNfc2hvd19ldmFsICcke1JNfXIgIiRnZW50b3AiJwotKyAgICAgIGZpCi0rCi0r ICAgICAgZXhpdCAkRVhJVF9TVUNDRVNTCi0rICAgICAgOzsKLSsKLSsgICAgcHJvZykKLSsgICAg ICBjYXNlICRob3N0IGluCi0rCSpjeWd3aW4qKSBmdW5jX3N0cmlwbmFtZSAnJyAnLmV4ZScgIiRv dXRwdXQiCi0rCSAgICAgICAgICBvdXRwdXQ9JGZ1bmNfc3RyaXBuYW1lX3Jlc3VsdC5leGU7Owot KyAgICAgIGVzYWMKLSsgICAgICB0ZXN0IC1uICIkdmluZm8iICYmIFwKLSsJZnVuY193YXJuaW5n ICJcYC12ZXJzaW9uLWluZm8nIGlzIGlnbm9yZWQgZm9yIHByb2dyYW1zIgotKwotKyAgICAgIHRl c3QgLW4gIiRyZWxlYXNlIiAmJiBcCi0rCWZ1bmNfd2FybmluZyAiXGAtcmVsZWFzZScgaXMgaWdu b3JlZCBmb3IgcHJvZ3JhbXMiCi0rCi0rICAgICAgdGVzdCAiJHByZWxvYWQiID0geWVzIFwKLSsg ICAgICAgICYmIHRlc3QgIiRkbG9wZW5fc3VwcG9ydCIgPSB1bmtub3duIFwKLSsJJiYgdGVzdCAi JGRsb3Blbl9zZWxmIiA9IHVua25vd24gXAotKwkmJiB0ZXN0ICIkZGxvcGVuX3NlbGZfc3RhdGlj IiA9IHVua25vd24gJiYgXAotKwkgIGZ1bmNfd2FybmluZyAiXGBMVF9JTklUKFtkbG9wZW5dKScg bm90IHVzZWQuIEFzc3VtaW5nIG5vIGRsb3BlbiBzdXBwb3J0LiIKLSsKLSsgICAgICBjYXNlICRo b3N0IGluCi0rICAgICAgKi0qLXJoYXBzb2R5KiB8ICotKi1kYXJ3aW4xLlswMTJdKQotKwkjIE9u IFJoYXBzb2R5IHJlcGxhY2UgdGhlIEMgbGlicmFyeSBpcyB0aGUgU3lzdGVtIGZyYW1ld29yawot Kwljb21waWxlX2RlcGxpYnM9YCRFQ0hPICJYICRjb21waWxlX2RlcGxpYnMiIHwgJFhzZWQgLWUg J3MvIC1sYyAvIFN5c3RlbS5sdGZyYW1ld29yayAvJ2AKLSsJZmluYWxpemVfZGVwbGlicz1gJEVD SE8gIlggJGZpbmFsaXplX2RlcGxpYnMiIHwgJFhzZWQgLWUgJ3MvIC1sYyAvIFN5c3RlbS5sdGZy YW1ld29yayAvJ2AKLSsJOzsKLSsgICAgICBlc2FjCi0rCi0rICAgICAgY2FzZSAkaG9zdCBpbgot KyAgICAgICotKi1kYXJ3aW4qKQotKwkjIERvbid0IGFsbG93IGxhenkgbGlua2luZywgaXQgYnJl YWtzIEMrKyBnbG9iYWwgY29uc3RydWN0b3JzCi0rCSMgQnV0IGlzIHN1cHBvc2VkbHkgZml4ZWQg b24gMTAuNCBvciBsYXRlciAoeWF5ISkuCi0rCWlmIHRlc3QgIiR0YWduYW1lIiA9IENYWCA7IHRo ZW4KLSsJICBjYXNlICR7TUFDT1NYX0RFUExPWU1FTlRfVEFSR0VULTEwLjB9IGluCi0rCSAgICAx MC5bMDEyM10pCi0rCSAgICAgIGNvbXBpbGVfY29tbWFuZD0iJGNvbXBpbGVfY29tbWFuZCAke3ds fS1iaW5kX2F0X2xvYWQiCi0rCSAgICAgIGZpbmFsaXplX2NvbW1hbmQ9IiRmaW5hbGl6ZV9jb21t YW5kICR7d2x9LWJpbmRfYXRfbG9hZCIKLSsJICAgIDs7Ci0rCSAgZXNhYwotKwlmaQotKwkjIFRp bWUgdG8gY2hhbmdlIGFsbCBvdXIgImZvby5sdGZyYW1ld29yayIgc3R1ZmYgYmFjayB0byAiLWZy YW1ld29yayBmb28iCi0rCWNvbXBpbGVfZGVwbGlicz1gJEVDSE8gIlggJGNvbXBpbGVfZGVwbGli cyIgfCAkWHNlZCAtZSAncyUgXChbXiAkXSpcKS5sdGZyYW1ld29yayUgLWZyYW1ld29yayBcMSVn J2AKLSsJZmluYWxpemVfZGVwbGlicz1gJEVDSE8gIlggJGZpbmFsaXplX2RlcGxpYnMiIHwgJFhz ZWQgLWUgJ3MlIFwoW14gJF0qXCkubHRmcmFtZXdvcmslIC1mcmFtZXdvcmsgXDElZydgCi0rCTs7 Ci0rICAgICAgZXNhYwotKwotKwotKyAgICAgICMgbW92ZSBsaWJyYXJ5IHNlYXJjaCBwYXRocyB0 aGF0IGNvaW5jaWRlIHdpdGggcGF0aHMgdG8gbm90IHlldAotKyAgICAgICMgaW5zdGFsbGVkIGxp YnJhcmllcyB0byB0aGUgYmVnaW5uaW5nIG9mIHRoZSBsaWJyYXJ5IHNlYXJjaCBsaXN0Ci0rICAg ICAgbmV3X2xpYnM9Ci0rICAgICAgZm9yIHBhdGggaW4gJG5vdGluc3RfcGF0aDsgZG8KLSsJY2Fz ZSAiICRuZXdfbGlicyAiIGluCi0rCSoiIC1MJHBhdGgvJG9iamRpciAiKikgOzsKLSsJKikKLSsJ ICBjYXNlICIgJGNvbXBpbGVfZGVwbGlicyAiIGluCi0rCSAgKiIgLUwkcGF0aC8kb2JqZGlyICIq KQotKwkgICAgbmV3X2xpYnM9IiRuZXdfbGlicyAtTCRwYXRoLyRvYmpkaXIiIDs7Ci0rCSAgZXNh YwotKwkgIDs7Ci0rCWVzYWMKLSsgICAgICBkb25lCi0rICAgICAgZm9yIGRlcGxpYiBpbiAkY29t cGlsZV9kZXBsaWJzOyBkbwotKwljYXNlICRkZXBsaWIgaW4KLSsJLUwqKQotKwkgIGNhc2UgIiAk bmV3X2xpYnMgIiBpbgotKwkgICoiICRkZXBsaWIgIiopIDs7Ci0rCSAgKikgbmV3X2xpYnM9IiRu ZXdfbGlicyAkZGVwbGliIiA7OwotKwkgIGVzYWMKLSsJICA7OwotKwkqKSBuZXdfbGlicz0iJG5l d19saWJzICRkZXBsaWIiIDs7Ci0rCWVzYWMKLSsgICAgICBkb25lCi0rICAgICAgY29tcGlsZV9k ZXBsaWJzPSIkbmV3X2xpYnMiCi0rCi0rCi0rICAgICAgY29tcGlsZV9jb21tYW5kPSIkY29tcGls ZV9jb21tYW5kICRjb21waWxlX2RlcGxpYnMiCi0rICAgICAgZmluYWxpemVfY29tbWFuZD0iJGZp bmFsaXplX2NvbW1hbmQgJGZpbmFsaXplX2RlcGxpYnMiCi0rCi0rICAgICAgaWYgdGVzdCAtbiAi JHJwYXRoJHhycGF0aCI7IHRoZW4KLSsJIyBJZiB0aGUgdXNlciBzcGVjaWZpZWQgYW55IHJwYXRo IGZsYWdzLCB0aGVuIGFkZCB0aGVtLgotKwlmb3IgbGliZGlyIGluICRycGF0aCAkeHJwYXRoOyBk bwotKwkgICMgVGhpcyBpcyB0aGUgbWFnaWMgdG8gdXNlIC1ycGF0aC4KLSsJICBjYXNlICIkZmlu YWxpemVfcnBhdGggIiBpbgotKwkgICoiICRsaWJkaXIgIiopIDs7Ci0rCSAgKikgZmluYWxpemVf cnBhdGg9IiRmaW5hbGl6ZV9ycGF0aCAkbGliZGlyIiA7OwotKwkgIGVzYWMKLSsJZG9uZQotKyAg ICAgIGZpCi0rCi0rICAgICAgIyBOb3cgaGFyZGNvZGUgdGhlIGxpYnJhcnkgcGF0aHMKLSsgICAg ICBycGF0aD0KLSsgICAgICBoYXJkY29kZV9saWJkaXJzPQotKyAgICAgIGZvciBsaWJkaXIgaW4g JGNvbXBpbGVfcnBhdGggJGZpbmFsaXplX3JwYXRoOyBkbwotKwlpZiB0ZXN0IC1uICIkaGFyZGNv ZGVfbGliZGlyX2ZsYWdfc3BlYyI7IHRoZW4KLSsJICBpZiB0ZXN0IC1uICIkaGFyZGNvZGVfbGli ZGlyX3NlcGFyYXRvciI7IHRoZW4KLSsJICAgIGlmIHRlc3QgLXogIiRoYXJkY29kZV9saWJkaXJz IjsgdGhlbgotKwkgICAgICBoYXJkY29kZV9saWJkaXJzPSIkbGliZGlyIgotKwkgICAgZWxzZQot KwkgICAgICAjIEp1c3QgYWNjdW11bGF0ZSB0aGUgdW5pcXVlIGxpYmRpcnMuCi0rCSAgICAgIGNh c2UgJGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3IkaGFyZGNvZGVfbGliZGlycyRoYXJkY29kZV9s aWJkaXJfc2VwYXJhdG9yIGluCi0rCSAgICAgICoiJGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3Ik bGliZGlyJGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3IiKikKLSsJCTs7Ci0rCSAgICAgICopCi0r CQloYXJkY29kZV9saWJkaXJzPSIkaGFyZGNvZGVfbGliZGlycyRoYXJkY29kZV9saWJkaXJfc2Vw YXJhdG9yJGxpYmRpciIKLSsJCTs7Ci0rCSAgICAgIGVzYWMKLSsJICAgIGZpCi0rCSAgZWxzZQot KwkgICAgZXZhbCBmbGFnPVwiJGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNcIgotKwkgICAgcnBh dGg9IiRycGF0aCAkZmxhZyIKLSsJICBmaQotKwllbGlmIHRlc3QgLW4gIiRydW5wYXRoX3ZhciI7 IHRoZW4KLSsJICBjYXNlICIkcGVybV9ycGF0aCAiIGluCi0rCSAgKiIgJGxpYmRpciAiKikgOzsK LSsJICAqKSBwZXJtX3JwYXRoPSIkcGVybV9ycGF0aCAkbGliZGlyIiA7OwotKwkgIGVzYWMKLSsJ ZmkKLSsJY2FzZSAkaG9zdCBpbgotKwkqLSotY3lnd2luKiB8ICotKi1taW5ndyogfCAqLSotcHcz MiogfCAqLSotb3MyKiB8ICotY2VnY2MqKQotKwkgIHRlc3RiaW5kaXI9YCR7RUNIT30gIiRsaWJk aXIiIHwgJHtTRUR9IC1lICdzKi9saWIkKi9iaW4qJ2AKLSsJICBjYXNlIDokZGxsc2VhcmNocGF0 aDogaW4KLSsJICAqIjokbGliZGlyOiIqKSA7OwotKwkgIDo6KSBkbGxzZWFyY2hwYXRoPSRsaWJk aXI7OwotKwkgICopIGRsbHNlYXJjaHBhdGg9IiRkbGxzZWFyY2hwYXRoOiRsaWJkaXIiOzsKLSsJ ICBlc2FjCi0rCSAgY2FzZSA6JGRsbHNlYXJjaHBhdGg6IGluCi0rCSAgKiI6JHRlc3RiaW5kaXI6 IiopIDs7Ci0rCSAgOjopIGRsbHNlYXJjaHBhdGg9JHRlc3RiaW5kaXI7OwotKwkgICopIGRsbHNl YXJjaHBhdGg9IiRkbGxzZWFyY2hwYXRoOiR0ZXN0YmluZGlyIjs7Ci0rCSAgZXNhYwotKwkgIDs7 Ci0rCWVzYWMKLSsgICAgICBkb25lCi0rICAgICAgIyBTdWJzdGl0dXRlIHRoZSBoYXJkY29kZWQg bGliZGlycyBpbnRvIHRoZSBycGF0aC4KLSsgICAgICBpZiB0ZXN0IC1uICIkaGFyZGNvZGVfbGli ZGlyX3NlcGFyYXRvciIgJiYKLSsJIHRlc3QgLW4gIiRoYXJkY29kZV9saWJkaXJzIjsgdGhlbgot KwlsaWJkaXI9IiRoYXJkY29kZV9saWJkaXJzIgotKwlldmFsIHJwYXRoPVwiICRoYXJkY29kZV9s aWJkaXJfZmxhZ19zcGVjXCIKLSsgICAgICBmaQotKyAgICAgIGNvbXBpbGVfcnBhdGg9IiRycGF0 aCIKLSsKLSsgICAgICBycGF0aD0KLSsgICAgICBoYXJkY29kZV9saWJkaXJzPQotKyAgICAgIGZv ciBsaWJkaXIgaW4gJGZpbmFsaXplX3JwYXRoOyBkbwotKwlpZiB0ZXN0IC1uICIkaGFyZGNvZGVf bGliZGlyX2ZsYWdfc3BlYyI7IHRoZW4KLSsJICBpZiB0ZXN0IC1uICIkaGFyZGNvZGVfbGliZGly X3NlcGFyYXRvciI7IHRoZW4KLSsJICAgIGlmIHRlc3QgLXogIiRoYXJkY29kZV9saWJkaXJzIjsg dGhlbgotKwkgICAgICBoYXJkY29kZV9saWJkaXJzPSIkbGliZGlyIgotKwkgICAgZWxzZQotKwkg ICAgICAjIEp1c3QgYWNjdW11bGF0ZSB0aGUgdW5pcXVlIGxpYmRpcnMuCi0rCSAgICAgIGNhc2Ug JGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3IkaGFyZGNvZGVfbGliZGlycyRoYXJkY29kZV9saWJk aXJfc2VwYXJhdG9yIGluCi0rCSAgICAgICoiJGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3IkbGli ZGlyJGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3IiKikKLSsJCTs7Ci0rCSAgICAgICopCi0rCQlo YXJkY29kZV9saWJkaXJzPSIkaGFyZGNvZGVfbGliZGlycyRoYXJkY29kZV9saWJkaXJfc2VwYXJh dG9yJGxpYmRpciIKLSsJCTs7Ci0rCSAgICAgIGVzYWMKLSsJICAgIGZpCi0rCSAgZWxzZQotKwkg ICAgZXZhbCBmbGFnPVwiJGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNcIgotKwkgICAgcnBhdGg9 IiRycGF0aCAkZmxhZyIKLSsJICBmaQotKwllbGlmIHRlc3QgLW4gIiRydW5wYXRoX3ZhciI7IHRo ZW4KLSsJICBjYXNlICIkZmluYWxpemVfcGVybV9ycGF0aCAiIGluCi0rCSAgKiIgJGxpYmRpciAi KikgOzsKLSsJICAqKSBmaW5hbGl6ZV9wZXJtX3JwYXRoPSIkZmluYWxpemVfcGVybV9ycGF0aCAk bGliZGlyIiA7OwotKwkgIGVzYWMKLSsJZmkKLSsgICAgICBkb25lCi0rICAgICAgIyBTdWJzdGl0 dXRlIHRoZSBoYXJkY29kZWQgbGliZGlycyBpbnRvIHRoZSBycGF0aC4KLSsgICAgICBpZiB0ZXN0 IC1uICIkaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciIgJiYKLSsJIHRlc3QgLW4gIiRoYXJkY29k ZV9saWJkaXJzIjsgdGhlbgotKwlsaWJkaXI9IiRoYXJkY29kZV9saWJkaXJzIgotKwlldmFsIHJw YXRoPVwiICRoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjXCIKLSsgICAgICBmaQotKyAgICAgIGZp bmFsaXplX3JwYXRoPSIkcnBhdGgiCi0rCi0rICAgICAgaWYgdGVzdCAtbiAiJGxpYm9ianMiICYm IHRlc3QgIiRidWlsZF9vbGRfbGlicyIgPSB5ZXM7IHRoZW4KLSsJIyBUcmFuc2Zvcm0gYWxsIHRo ZSBsaWJyYXJ5IG9iamVjdHMgaW50byBzdGFuZGFyZCBvYmplY3RzLgotKwljb21waWxlX2NvbW1h bmQ9YCRFQ0hPICJYJGNvbXBpbGVfY29tbWFuZCIgfCAkU1AyTkwgfCAkWHNlZCAtZSAiJGxvMm8i IHwgJE5MMlNQYAotKwlmaW5hbGl6ZV9jb21tYW5kPWAkRUNITyAiWCRmaW5hbGl6ZV9jb21tYW5k IiB8ICRTUDJOTCB8ICRYc2VkIC1lICIkbG8ybyIgfCAkTkwyU1BgCi0rICAgICAgZmkKLSsKLSsg ICAgICBmdW5jX2dlbmVyYXRlX2Rsc3ltcyAiJG91dHB1dG5hbWUiICJAUFJPR1JBTUAiICJubyIK LSsKLSsgICAgICAjIHRlbXBsYXRlIHByZWxpbmtpbmcgc3RlcAotKyAgICAgIGlmIHRlc3QgLW4g IiRwcmVsaW5rX2NtZHMiOyB0aGVuCi0rCWZ1bmNfZXhlY3V0ZV9jbWRzICIkcHJlbGlua19jbWRz IiAnZXhpdCAkPycKLSsgICAgICBmaQotKwotKyAgICAgIHdyYXBwZXJzX3JlcXVpcmVkPXllcwot KyAgICAgIGNhc2UgJGhvc3QgaW4KLSsgICAgICAqY3lnd2luKiB8ICptaW5ndyogKQotKyAgICAg ICAgaWYgdGVzdCAiJGJ1aWxkX2xpYnRvb2xfbGlicyIgIT0geWVzOyB0aGVuCi0rICAgICAgICAg IHdyYXBwZXJzX3JlcXVpcmVkPW5vCi0rICAgICAgICBmaQotKyAgICAgICAgOzsKLSsgICAgICAq Y2VnY2MpCi0rICAgICAgICAjIERpc2FibGUgd3JhcHBlcnMgZm9yIGNlZ2NjLCB3ZSBhcmUgY3Jv c3MgY29tcGlsaW5nIGFueXdheS4KLSsgICAgICAgIHdyYXBwZXJzX3JlcXVpcmVkPW5vCi0rICAg ICAgICA7OwotKyAgICAgICopCi0rICAgICAgICBpZiB0ZXN0ICIkbmVlZF9yZWxpbmsiID0gbm8g fHwgdGVzdCAiJGJ1aWxkX2xpYnRvb2xfbGlicyIgIT0geWVzOyB0aGVuCi0rICAgICAgICAgIHdy YXBwZXJzX3JlcXVpcmVkPW5vCi0rICAgICAgICBmaQotKyAgICAgICAgOzsKLSsgICAgICBlc2Fj Ci0rICAgICAgaWYgdGVzdCAiJHdyYXBwZXJzX3JlcXVpcmVkIiA9IG5vOyB0aGVuCi0rCSMgUmVw bGFjZSB0aGUgb3V0cHV0IGZpbGUgc3BlY2lmaWNhdGlvbi4KLSsJY29tcGlsZV9jb21tYW5kPWAk RUNITyAiWCRjb21waWxlX2NvbW1hbmQiIHwgJFhzZWQgLWUgJ3MlQE9VVFBVVEAlJyIkb3V0cHV0 IiclZydgCi0rCWxpbmtfY29tbWFuZD0iJGNvbXBpbGVfY29tbWFuZCRjb21waWxlX3JwYXRoIgot KwotKwkjIFdlIGhhdmUgbm8gdW5pbnN0YWxsZWQgbGlicmFyeSBkZXBlbmRlbmNpZXMsIHNvIGZp bmFsaXplIHJpZ2h0IG5vdy4KLSsJZXhpdF9zdGF0dXM9MAotKwlmdW5jX3Nob3dfZXZhbCAiJGxp bmtfY29tbWFuZCIgJ2V4aXRfc3RhdHVzPSQ/JwotKwotKwkjIERlbGV0ZSB0aGUgZ2VuZXJhdGVk IGZpbGVzLgotKwlpZiB0ZXN0IC1mICIkb3V0cHV0X29iamRpci8ke291dHB1dG5hbWV9Uy4ke29i amV4dH0iOyB0aGVuCi0rCSAgZnVuY19zaG93X2V2YWwgJyRSTSAiJG91dHB1dF9vYmpkaXIvJHtv dXRwdXRuYW1lfVMuJHtvYmpleHR9IicKLSsJZmkKLSsKLSsJZXhpdCAkZXhpdF9zdGF0dXMKLSsg ICAgICBmaQotKwotKyAgICAgIGlmIHRlc3QgLW4gIiRjb21waWxlX3NobGlicGF0aCRmaW5hbGl6 ZV9zaGxpYnBhdGgiOyB0aGVuCi0rCWNvbXBpbGVfY29tbWFuZD0iJHNobGlicGF0aF92YXI9XCIk Y29tcGlsZV9zaGxpYnBhdGgkZmluYWxpemVfc2hsaWJwYXRoXCQkc2hsaWJwYXRoX3ZhclwiICRj b21waWxlX2NvbW1hbmQiCi0rICAgICAgZmkKLSsgICAgICBpZiB0ZXN0IC1uICIkZmluYWxpemVf c2hsaWJwYXRoIjsgdGhlbgotKwlmaW5hbGl6ZV9jb21tYW5kPSIkc2hsaWJwYXRoX3Zhcj1cIiRm aW5hbGl6ZV9zaGxpYnBhdGhcJCRzaGxpYnBhdGhfdmFyXCIgJGZpbmFsaXplX2NvbW1hbmQiCi0r ICAgICAgZmkKLSsKLSsgICAgICBjb21waWxlX3Zhcj0KLSsgICAgICBmaW5hbGl6ZV92YXI9Ci0r ICAgICAgaWYgdGVzdCAtbiAiJHJ1bnBhdGhfdmFyIjsgdGhlbgotKwlpZiB0ZXN0IC1uICIkcGVy bV9ycGF0aCI7IHRoZW4KLSsJICAjIFdlIHNob3VsZCBzZXQgdGhlIHJ1bnBhdGhfdmFyLgotKwkg IHJwYXRoPQotKwkgIGZvciBkaXIgaW4gJHBlcm1fcnBhdGg7IGRvCi0rCSAgICBycGF0aD0iJHJw YXRoJGRpcjoiCi0rCSAgZG9uZQotKwkgIGNvbXBpbGVfdmFyPSIkcnVucGF0aF92YXI9XCIkcnBh dGhcJCRydW5wYXRoX3ZhclwiICIKLSsJZmkKLSsJaWYgdGVzdCAtbiAiJGZpbmFsaXplX3Blcm1f cnBhdGgiOyB0aGVuCi0rCSAgIyBXZSBzaG91bGQgc2V0IHRoZSBydW5wYXRoX3Zhci4KLSsJICBy cGF0aD0KLSsJICBmb3IgZGlyIGluICRmaW5hbGl6ZV9wZXJtX3JwYXRoOyBkbwotKwkgICAgcnBh dGg9IiRycGF0aCRkaXI6IgotKwkgIGRvbmUKLSsJICBmaW5hbGl6ZV92YXI9IiRydW5wYXRoX3Zh cj1cIiRycGF0aFwkJHJ1bnBhdGhfdmFyXCIgIgotKwlmaQotKyAgICAgIGZpCi0rCi0rICAgICAg aWYgdGVzdCAiJG5vX2luc3RhbGwiID0geWVzOyB0aGVuCi0rCSMgV2UgZG9uJ3QgbmVlZCB0byBj cmVhdGUgYSB3cmFwcGVyIHNjcmlwdC4KLSsJbGlua19jb21tYW5kPSIkY29tcGlsZV92YXIkY29t cGlsZV9jb21tYW5kJGNvbXBpbGVfcnBhdGgiCi0rCSMgUmVwbGFjZSB0aGUgb3V0cHV0IGZpbGUg c3BlY2lmaWNhdGlvbi4KLSsJbGlua19jb21tYW5kPWAkRUNITyAiWCRsaW5rX2NvbW1hbmQiIHwg JFhzZWQgLWUgJ3MlQE9VVFBVVEAlJyIkb3V0cHV0IiclZydgCi0rCSMgRGVsZXRlIHRoZSBvbGQg b3V0cHV0IGZpbGUuCi0rCSRvcHRfZHJ5X3J1biB8fCAkUk0gJG91dHB1dAotKwkjIExpbmsgdGhl IGV4ZWN1dGFibGUgYW5kIGV4aXQKLSsJZnVuY19zaG93X2V2YWwgIiRsaW5rX2NvbW1hbmQiICdl eGl0ICQ/JwotKwlleGl0ICRFWElUX1NVQ0NFU1MKLSsgICAgICBmaQotKwotKyAgICAgIGlmIHRl c3QgIiRoYXJkY29kZV9hY3Rpb24iID0gcmVsaW5rOyB0aGVuCi0rCSMgRmFzdCBpbnN0YWxsYXRp b24gaXMgbm90IHN1cHBvcnRlZAotKwlsaW5rX2NvbW1hbmQ9IiRjb21waWxlX3ZhciRjb21waWxl X2NvbW1hbmQkY29tcGlsZV9ycGF0aCIKLSsJcmVsaW5rX2NvbW1hbmQ9IiRmaW5hbGl6ZV92YXIk ZmluYWxpemVfY29tbWFuZCRmaW5hbGl6ZV9ycGF0aCIKLSsKLSsJZnVuY193YXJuaW5nICJ0aGlz IHBsYXRmb3JtIGRvZXMgbm90IGxpa2UgdW5pbnN0YWxsZWQgc2hhcmVkIGxpYnJhcmllcyIKLSsJ ZnVuY193YXJuaW5nICJcYCRvdXRwdXQnIHdpbGwgYmUgcmVsaW5rZWQgZHVyaW5nIGluc3RhbGxh dGlvbiIKLSsgICAgICBlbHNlCi0rCWlmIHRlc3QgIiRmYXN0X2luc3RhbGwiICE9IG5vOyB0aGVu Ci0rCSAgbGlua19jb21tYW5kPSIkZmluYWxpemVfdmFyJGNvbXBpbGVfY29tbWFuZCRmaW5hbGl6 ZV9ycGF0aCIKLSsJICBpZiB0ZXN0ICIkZmFzdF9pbnN0YWxsIiA9IHllczsgdGhlbgotKwkgICAg cmVsaW5rX2NvbW1hbmQ9YCRFQ0hPICJYJGNvbXBpbGVfdmFyJGNvbXBpbGVfY29tbWFuZCRjb21w aWxlX3JwYXRoIiB8ICRYc2VkIC1lICdzJUBPVVRQVVRAJVwkcHJvZ2Rpci9cJGZpbGUlZydgCi0r CSAgZWxzZQotKwkgICAgIyBmYXN0X2luc3RhbGwgaXMgc2V0IHRvIG5lZWRsZXNzCi0rCSAgICBy ZWxpbmtfY29tbWFuZD0KLSsJICBmaQotKwllbHNlCi0rCSAgbGlua19jb21tYW5kPSIkY29tcGls ZV92YXIkY29tcGlsZV9jb21tYW5kJGNvbXBpbGVfcnBhdGgiCi0rCSAgcmVsaW5rX2NvbW1hbmQ9 IiRmaW5hbGl6ZV92YXIkZmluYWxpemVfY29tbWFuZCRmaW5hbGl6ZV9ycGF0aCIKLSsJZmkKLSsg ICAgICBmaQotKwotKyAgICAgICMgUmVwbGFjZSB0aGUgb3V0cHV0IGZpbGUgc3BlY2lmaWNhdGlv bi4KLSsgICAgICBsaW5rX2NvbW1hbmQ9YCRFQ0hPICJYJGxpbmtfY29tbWFuZCIgfCAkWHNlZCAt ZSAncyVAT1VUUFVUQCUnIiRvdXRwdXRfb2JqZGlyLyRvdXRwdXRuYW1lIiclZydgCi0rCi0rICAg ICAgIyBEZWxldGUgdGhlIG9sZCBvdXRwdXQgZmlsZXMuCi0rICAgICAgJG9wdF9kcnlfcnVuIHx8 ICRSTSAkb3V0cHV0ICRvdXRwdXRfb2JqZGlyLyRvdXRwdXRuYW1lICRvdXRwdXRfb2JqZGlyL2x0 LSRvdXRwdXRuYW1lCi0rCi0rICAgICAgZnVuY19zaG93X2V2YWwgIiRsaW5rX2NvbW1hbmQiICdl eGl0ICQ/JwotKwotKyAgICAgICMgTm93IGNyZWF0ZSB0aGUgd3JhcHBlciBzY3JpcHQuCi0rICAg ICAgZnVuY192ZXJib3NlICJjcmVhdGluZyAkb3V0cHV0IgotKwotKyAgICAgICMgUXVvdGUgdGhl IHJlbGluayBjb21tYW5kIGZvciBzaGlwcGluZy4KLSsgICAgICBpZiB0ZXN0IC1uICIkcmVsaW5r X2NvbW1hbmQiOyB0aGVuCi0rCSMgUHJlc2VydmUgYW55IHZhcmlhYmxlcyB0aGF0IG1heSBhZmZl Y3QgY29tcGlsZXIgYmVoYXZpb3IKLSsJZm9yIHZhciBpbiAkdmFyaWFibGVzX3NhdmVkX2Zvcl9y ZWxpbms7IGRvCi0rCSAgaWYgZXZhbCB0ZXN0IC16IFwiXCR7JHZhcitzZXR9XCI7IHRoZW4KLSsJ ICAgIHJlbGlua19jb21tYW5kPSJ7IHRlc3QgLXogXCJcJHskdmFyK3NldH1cIiB8fCAkbHRfdW5z ZXQgJHZhciB8fCB7ICR2YXI9OyBleHBvcnQgJHZhcjsgfTsgfTsgJHJlbGlua19jb21tYW5kIgot KwkgIGVsaWYgZXZhbCB2YXJfdmFsdWU9XCQkdmFyOyB0ZXN0IC16ICIkdmFyX3ZhbHVlIjsgdGhl bgotKwkgICAgcmVsaW5rX2NvbW1hbmQ9IiR2YXI9OyBleHBvcnQgJHZhcjsgJHJlbGlua19jb21t YW5kIgotKwkgIGVsc2UKLSsJICAgIGZ1bmNfcXVvdGVfZm9yX2V2YWwgIiR2YXJfdmFsdWUiCi0r CSAgICByZWxpbmtfY29tbWFuZD0iJHZhcj0kZnVuY19xdW90ZV9mb3JfZXZhbF9yZXN1bHQ7IGV4 cG9ydCAkdmFyOyAkcmVsaW5rX2NvbW1hbmQiCi0rCSAgZmkKLSsJZG9uZQotKwlyZWxpbmtfY29t bWFuZD0iKGNkIGBwd2RgOyAkcmVsaW5rX2NvbW1hbmQpIgotKwlyZWxpbmtfY29tbWFuZD1gJEVD SE8gIlgkcmVsaW5rX2NvbW1hbmQiIHwgJFhzZWQgLWUgIiRzZWRfcXVvdGVfc3Vic3QiYAotKyAg ICAgIGZpCi0rCi0rICAgICAgIyBRdW90ZSAkRUNITyBmb3Igc2hpcHBpbmcuCi0rICAgICAgaWYg dGVzdCAiWCRFQ0hPIiA9ICJYJFNIRUxMICRwcm9ncGF0aCAtLWZhbGxiYWNrLWVjaG8iOyB0aGVu Ci0rCWNhc2UgJHByb2dwYXRoIGluCi0rCVtcXC9dKiB8IFtBLVphLXpdOltcXC9dKikgcWVjaG89 IiRTSEVMTCAkcHJvZ3BhdGggLS1mYWxsYmFjay1lY2hvIjs7Ci0rCSopIHFlY2hvPSIkU0hFTEwg YHB3ZGAvJHByb2dwYXRoIC0tZmFsbGJhY2stZWNobyI7OwotKwllc2FjCi0rCXFlY2hvPWAkRUNI TyAiWCRxZWNobyIgfCAkWHNlZCAtZSAiJHNlZF9xdW90ZV9zdWJzdCJgCi0rICAgICAgZWxzZQot KwlxZWNobz1gJEVDSE8gIlgkRUNITyIgfCAkWHNlZCAtZSAiJHNlZF9xdW90ZV9zdWJzdCJgCi0r ICAgICAgZmkKLSsKLSsgICAgICAjIE9ubHkgYWN0dWFsbHkgZG8gdGhpbmdzIGlmIG5vdCBpbiBk cnkgcnVuIG1vZGUuCi0rICAgICAgJG9wdF9kcnlfcnVuIHx8IHsKLSsJIyB3aW4zMiB3aWxsIHRo aW5rIHRoZSBzY3JpcHQgaXMgYSBiaW5hcnkgaWYgaXQgaGFzCi0rCSMgYSAuZXhlIHN1ZmZpeCwg c28gd2Ugc3RyaXAgaXQgb2ZmIGhlcmUuCi0rCWNhc2UgJG91dHB1dCBpbgotKwkgICouZXhlKSBm dW5jX3N0cmlwbmFtZSAnJyAnLmV4ZScgIiRvdXRwdXQiCi0rCSAgICAgICAgIG91dHB1dD0kZnVu Y19zdHJpcG5hbWVfcmVzdWx0IDs7Ci0rCWVzYWMKLSsJIyB0ZXN0IGZvciBjeWd3aW4gYmVjYXVz ZSBtdiBmYWlscyB3L28gLmV4ZSBleHRlbnNpb25zCi0rCWNhc2UgJGhvc3QgaW4KLSsJICAqY3ln d2luKikKLSsJICAgIGV4ZWV4dD0uZXhlCi0rCSAgICBmdW5jX3N0cmlwbmFtZSAnJyAnLmV4ZScg IiRvdXRwdXRuYW1lIgotKwkgICAgb3V0cHV0bmFtZT0kZnVuY19zdHJpcG5hbWVfcmVzdWx0IDs7 Ci0rCSAgKikgZXhlZXh0PSA7OwotKwllc2FjCi0rCWNhc2UgJGhvc3QgaW4KLSsJICAqY3lnd2lu KiB8ICptaW5ndyogKQotKwkgICAgZnVuY19kaXJuYW1lX2FuZF9iYXNlbmFtZSAiJG91dHB1dCIg IiIgIi4iCi0rCSAgICBvdXRwdXRfbmFtZT0kZnVuY19iYXNlbmFtZV9yZXN1bHQKLSsJICAgIG91 dHB1dF9wYXRoPSRmdW5jX2Rpcm5hbWVfcmVzdWx0Ci0rCSAgICBjd3JhcHBlcnNvdXJjZT0iJG91 dHB1dF9wYXRoLyRvYmpkaXIvbHQtJG91dHB1dF9uYW1lLmMiCi0rCSAgICBjd3JhcHBlcj0iJG91 dHB1dF9wYXRoLyRvdXRwdXRfbmFtZS5leGUiCi0rCSAgICAkUk0gJGN3cmFwcGVyc291cmNlICRj d3JhcHBlcgotKwkgICAgdHJhcCAiJFJNICRjd3JhcHBlcnNvdXJjZSAkY3dyYXBwZXI7IGV4aXQg JEVYSVRfRkFJTFVSRSIgMSAyIDE1Ci0rCi0rCSAgICBmdW5jX2VtaXRfY3dyYXBwZXJleGVfc3Jj ID4gJGN3cmFwcGVyc291cmNlCi0rCi0rCSAgICAjIFRoZSB3cmFwcGVyIGV4ZWN1dGFibGUgaXMg YnVpbHQgdXNpbmcgdGhlICRob3N0IGNvbXBpbGVyLAotKwkgICAgIyBiZWNhdXNlIGl0IGNvbnRh aW5zICRob3N0IHBhdGhzIGFuZCBmaWxlcy4gSWYgY3Jvc3MtCi0rCSAgICAjIGNvbXBpbGluZywg aXQsIGxpa2UgdGhlIHRhcmdldCBleGVjdXRhYmxlLCBtdXN0IGJlCi0rCSAgICAjIGV4ZWN1dGVk IG9uIHRoZSAkaG9zdCBvciB1bmRlciBhbiBlbXVsYXRpb24gZW52aXJvbm1lbnQuCi0rCSAgICAk b3B0X2RyeV9ydW4gfHwgewotKwkgICAgICAkTFRDQyAkTFRDRkxBR1MgLW8gJGN3cmFwcGVyICRj d3JhcHBlcnNvdXJjZQotKwkgICAgICAkU1RSSVAgJGN3cmFwcGVyCi0rCSAgICB9Ci0rCi0rCSAg ICAjIE5vdywgY3JlYXRlIHRoZSB3cmFwcGVyIHNjcmlwdCBmb3IgZnVuY19zb3VyY2UgdXNlOgot KwkgICAgZnVuY19sdHdyYXBwZXJfc2NyaXB0bmFtZSAkY3dyYXBwZXIKLSsJICAgICRSTSAkZnVu Y19sdHdyYXBwZXJfc2NyaXB0bmFtZV9yZXN1bHQKLSsJICAgIHRyYXAgIiRSTSAkZnVuY19sdHdy YXBwZXJfc2NyaXB0bmFtZV9yZXN1bHQ7IGV4aXQgJEVYSVRfRkFJTFVSRSIgMSAyIDE1Ci0rCSAg ICAkb3B0X2RyeV9ydW4gfHwgewotKwkgICAgICAjIG5vdGU6IHRoaXMgc2NyaXB0IHdpbGwgbm90 IGJlIGV4ZWN1dGVkLCBzbyBkbyBub3QgY2htb2QuCi0rCSAgICAgIGlmIHRlc3QgIngkYnVpbGQi ID0gIngkaG9zdCIgOyB0aGVuCi0rCQkkY3dyYXBwZXIgLS1sdC1kdW1wLXNjcmlwdCA+ICRmdW5j X2x0d3JhcHBlcl9zY3JpcHRuYW1lX3Jlc3VsdAotKwkgICAgICBlbHNlCi0rCQlmdW5jX2VtaXRf d3JhcHBlciBubyA+ICRmdW5jX2x0d3JhcHBlcl9zY3JpcHRuYW1lX3Jlc3VsdAotKwkgICAgICBm aQotKwkgICAgfQotKwkgIDs7Ci0rCSAgKiApCi0rCSAgICAkUk0gJG91dHB1dAotKwkgICAgdHJh cCAiJFJNICRvdXRwdXQ7IGV4aXQgJEVYSVRfRkFJTFVSRSIgMSAyIDE1Ci0rCi0rCSAgICBmdW5j X2VtaXRfd3JhcHBlciBubyA+ICRvdXRwdXQKLSsJICAgIGNobW9kICt4ICRvdXRwdXQKLSsJICA7 OwotKwllc2FjCi0rICAgICAgfQotKyAgICAgIGV4aXQgJEVYSVRfU1VDQ0VTUwotKyAgICAgIDs7 Ci0rICAgIGVzYWMKLSsKLSsgICAgIyBTZWUgaWYgd2UgbmVlZCB0byBidWlsZCBhbiBvbGQtZmFz aGlvbmVkIGFyY2hpdmUuCi0rICAgIGZvciBvbGRsaWIgaW4gJG9sZGxpYnM7IGRvCi0rCi0rICAg ICAgaWYgdGVzdCAiJGJ1aWxkX2xpYnRvb2xfbGlicyIgPSBjb252ZW5pZW5jZTsgdGhlbgotKwlv bGRvYmpzPSIkbGlib2Jqc19zYXZlICRzeW1maWxlb2JqIgotKwlhZGRsaWJzPSIkY29udmVuaWVu Y2UiCi0rCWJ1aWxkX2xpYnRvb2xfbGlicz1ubwotKyAgICAgIGVsc2UKLSsJaWYgdGVzdCAiJGJ1 aWxkX2xpYnRvb2xfbGlicyIgPSBtb2R1bGU7IHRoZW4KLSsJICBvbGRvYmpzPSIkbGlib2Jqc19z YXZlIgotKwkgIGJ1aWxkX2xpYnRvb2xfbGlicz1ubwotKwllbHNlCi0rCSAgb2xkb2Jqcz0iJG9s ZF9kZXBsaWJzICRub25fcGljX29iamVjdHMiCi0rCSAgaWYgdGVzdCAiJHByZWxvYWQiID0geWVz ICYmIHRlc3QgLWYgIiRzeW1maWxlb2JqIjsgdGhlbgotKwkgICAgb2xkb2Jqcz0iJG9sZG9ianMg JHN5bWZpbGVvYmoiCi0rCSAgZmkKLSsJZmkKLSsJYWRkbGlicz0iJG9sZF9jb252ZW5pZW5jZSIK LSsgICAgICBmaQotKwotKyAgICAgIGlmIHRlc3QgLW4gIiRhZGRsaWJzIjsgdGhlbgotKwlnZW50 b3A9IiRvdXRwdXRfb2JqZGlyLyR7b3V0cHV0bmFtZX14IgotKwlnZW5lcmF0ZWQ9IiRnZW5lcmF0 ZWQgJGdlbnRvcCIKLSsKLSsJZnVuY19leHRyYWN0X2FyY2hpdmVzICRnZW50b3AgJGFkZGxpYnMK LSsJb2xkb2Jqcz0iJG9sZG9ianMgJGZ1bmNfZXh0cmFjdF9hcmNoaXZlc19yZXN1bHQiCi0rICAg ICAgZmkKLSsKLSsgICAgICAjIERvIGVhY2ggY29tbWFuZCBpbiB0aGUgYXJjaGl2ZSBjb21tYW5k cy4KLSsgICAgICBpZiB0ZXN0IC1uICIkb2xkX2FyY2hpdmVfZnJvbV9uZXdfY21kcyIgJiYgdGVz dCAiJGJ1aWxkX2xpYnRvb2xfbGlicyIgPSB5ZXM7IHRoZW4KLSsJY21kcz0kb2xkX2FyY2hpdmVf ZnJvbV9uZXdfY21kcwotKyAgICAgIGVsc2UKLSsKLSsJIyBBZGQgYW55IG9iamVjdHMgZnJvbSBw cmVsb2FkZWQgY29udmVuaWVuY2UgbGlicmFyaWVzCi0rCWlmIHRlc3QgLW4gIiRkbHByZWZpbGVz IjsgdGhlbgotKwkgIGdlbnRvcD0iJG91dHB1dF9vYmpkaXIvJHtvdXRwdXRuYW1lfXgiCi0rCSAg Z2VuZXJhdGVkPSIkZ2VuZXJhdGVkICRnZW50b3AiCi0rCi0rCSAgZnVuY19leHRyYWN0X2FyY2hp dmVzICRnZW50b3AgJGRscHJlZmlsZXMKLSsJICBvbGRvYmpzPSIkb2xkb2JqcyAkZnVuY19leHRy YWN0X2FyY2hpdmVzX3Jlc3VsdCIKLSsJZmkKLSsKLSsJIyBQT1NJWCBkZW1hbmRzIG5vIHBhdGhz IHRvIGJlIGVuY29kZWQgaW4gYXJjaGl2ZXMuICBXZSBoYXZlCi0rCSMgdG8gYXZvaWQgY3JlYXRp bmcgYXJjaGl2ZXMgd2l0aCBkdXBsaWNhdGUgYmFzZW5hbWVzIGlmIHdlCi0rCSMgbWlnaHQgaGF2 ZSB0byBleHRyYWN0IHRoZW0gYWZ0ZXJ3YXJkcywgZS5nLiwgd2hlbiBjcmVhdGluZyBhCi0rCSMg c3RhdGljIGFyY2hpdmUgb3V0IG9mIGEgY29udmVuaWVuY2UgbGlicmFyeSwgb3Igd2hlbiBsaW5r aW5nCi0rCSMgdGhlIGVudGlyZXR5IG9mIGEgbGlidG9vbCBhcmNoaXZlIGludG8gYW5vdGhlciAo Y3VycmVudGx5Ci0rCSMgbm90IHN1cHBvcnRlZCBieSBsaWJ0b29sKS4KLSsJaWYgKGZvciBvYmog aW4gJG9sZG9ianMKLSsJICAgIGRvCi0rCSAgICAgIGZ1bmNfYmFzZW5hbWUgIiRvYmoiCi0rCSAg ICAgICRFQ0hPICIkZnVuY19iYXNlbmFtZV9yZXN1bHQiCi0rCSAgICBkb25lIHwgc29ydCB8IHNv cnQgLXVjID4vZGV2L251bGwgMj4mMSk7IHRoZW4KLSsJICA6Ci0rCWVsc2UKLSsJICAkRUNITyAi Y29weWluZyBzZWxlY3RlZCBvYmplY3QgZmlsZXMgdG8gYXZvaWQgYmFzZW5hbWUgY29uZmxpY3Rz Li4uIgotKwkgIGdlbnRvcD0iJG91dHB1dF9vYmpkaXIvJHtvdXRwdXRuYW1lfXgiCi0rCSAgZ2Vu ZXJhdGVkPSIkZ2VuZXJhdGVkICRnZW50b3AiCi0rCSAgZnVuY19ta2Rpcl9wICIkZ2VudG9wIgot KwkgIHNhdmVfb2xkb2Jqcz0kb2xkb2JqcwotKwkgIG9sZG9ianM9Ci0rCSAgY291bnRlcj0xCi0r CSAgZm9yIG9iaiBpbiAkc2F2ZV9vbGRvYmpzCi0rCSAgZG8KLSsJICAgIGZ1bmNfYmFzZW5hbWUg IiRvYmoiCi0rCSAgICBvYmpiYXNlPSIkZnVuY19iYXNlbmFtZV9yZXN1bHQiCi0rCSAgICBjYXNl ICIgJG9sZG9ianMgIiBpbgotKwkgICAgIiAiKSBvbGRvYmpzPSRvYmogOzsKLSsJICAgICpbXCAv XSIkb2JqYmFzZSAiKikKLSsJICAgICAgd2hpbGUgOjsgZG8KLSsJCSMgTWFrZSBzdXJlIHdlIGRv bid0IHBpY2sgYW4gYWx0ZXJuYXRlIG5hbWUgdGhhdCBhbHNvCi0rCQkjIG92ZXJsYXBzLgotKwkJ bmV3b2JqPWx0JGNvdW50ZXItJG9iamJhc2UKLSsJCWZ1bmNfYXJpdGggJGNvdW50ZXIgKyAxCi0r CQljb3VudGVyPSRmdW5jX2FyaXRoX3Jlc3VsdAotKwkJY2FzZSAiICRvbGRvYmpzICIgaW4KLSsJ CSpbXCAvXSIkbmV3b2JqICIqKSA7OwotKwkJKikgaWYgdGVzdCAhIC1mICIkZ2VudG9wLyRuZXdv YmoiOyB0aGVuIGJyZWFrOyBmaSA7OwotKwkJZXNhYwotKwkgICAgICBkb25lCi0rCSAgICAgIGZ1 bmNfc2hvd19ldmFsICJsbiAkb2JqICRnZW50b3AvJG5ld29iaiB8fCBjcCAkb2JqICRnZW50b3Av JG5ld29iaiIKLSsJICAgICAgb2xkb2Jqcz0iJG9sZG9ianMgJGdlbnRvcC8kbmV3b2JqIgotKwkg ICAgICA7OwotKwkgICAgKikgb2xkb2Jqcz0iJG9sZG9ianMgJG9iaiIgOzsKLSsJICAgIGVzYWMK LSsJICBkb25lCi0rCWZpCi0rCWV2YWwgY21kcz1cIiRvbGRfYXJjaGl2ZV9jbWRzXCIKLSsKLSsJ ZnVuY19sZW4gIiAkY21kcyIKLSsJbGVuPSRmdW5jX2xlbl9yZXN1bHQKLSsJaWYgdGVzdCAiJGxl biIgLWx0ICIkbWF4X2NtZF9sZW4iIHx8IHRlc3QgIiRtYXhfY21kX2xlbiIgLWxlIC0xOyB0aGVu Ci0rCSAgY21kcz0kb2xkX2FyY2hpdmVfY21kcwotKwllbHNlCi0rCSAgIyB0aGUgY29tbWFuZCBs aW5lIGlzIHRvbyBsb25nIHRvIGxpbmsgaW4gb25lIHN0ZXAsIGxpbmsgaW4gcGFydHMKLSsJICBm dW5jX3ZlcmJvc2UgInVzaW5nIHBpZWNld2lzZSBhcmNoaXZlIGxpbmtpbmcuLi4iCi0rCSAgc2F2 ZV9SQU5MSUI9JFJBTkxJQgotKwkgIFJBTkxJQj06Ci0rCSAgb2JqbGlzdD0KLSsJICBjb25jYXRf Y21kcz0KLSsJICBzYXZlX29sZG9ianM9JG9sZG9ianMKLSsJICBvbGRvYmpzPQotKwkgICMgSXMg dGhlcmUgYSBiZXR0ZXIgd2F5IG9mIGZpbmRpbmcgdGhlIGxhc3Qgb2JqZWN0IGluIHRoZSBsaXN0 PwotKwkgIGZvciBvYmogaW4gJHNhdmVfb2xkb2JqcwotKwkgIGRvCi0rCSAgICBsYXN0X29sZG9i aj0kb2JqCi0rCSAgZG9uZQotKwkgIGV2YWwgdGVzdF9jbWRzPVwiJG9sZF9hcmNoaXZlX2NtZHNc IgotKwkgIGZ1bmNfbGVuICIgJHRlc3RfY21kcyIKLSsJICBsZW4wPSRmdW5jX2xlbl9yZXN1bHQK LSsJICBsZW49JGxlbjAKLSsJICBmb3Igb2JqIGluICRzYXZlX29sZG9ianMKLSsJICBkbwotKwkg ICAgZnVuY19sZW4gIiAkb2JqIgotKwkgICAgZnVuY19hcml0aCAkbGVuICsgJGZ1bmNfbGVuX3Jl c3VsdAotKwkgICAgbGVuPSRmdW5jX2FyaXRoX3Jlc3VsdAotKwkgICAgZnVuY19hcHBlbmQgb2Jq bGlzdCAiICRvYmoiCi0rCSAgICBpZiB0ZXN0ICIkbGVuIiAtbHQgIiRtYXhfY21kX2xlbiI7IHRo ZW4KLSsJICAgICAgOgotKwkgICAgZWxzZQotKwkgICAgICAjIHRoZSBhYm92ZSBjb21tYW5kIHNo b3VsZCBiZSB1c2VkIGJlZm9yZSBpdCBnZXRzIHRvbyBsb25nCi0rCSAgICAgIG9sZG9ianM9JG9i amxpc3QKLSsJICAgICAgaWYgdGVzdCAiJG9iaiIgPSAiJGxhc3Rfb2xkb2JqIiA7IHRoZW4KLSsJ CVJBTkxJQj0kc2F2ZV9SQU5MSUIKLSsJICAgICAgZmkKLSsJICAgICAgdGVzdCAteiAiJGNvbmNh dF9jbWRzIiB8fCBjb25jYXRfY21kcz0kY29uY2F0X2NtZHN+Ci0rCSAgICAgIGV2YWwgY29uY2F0 X2NtZHM9XCJcJHtjb25jYXRfY21kc30kb2xkX2FyY2hpdmVfY21kc1wiCi0rCSAgICAgIG9iamxp c3Q9Ci0rCSAgICAgIGxlbj0kbGVuMAotKwkgICAgZmkKLSsJICBkb25lCi0rCSAgUkFOTElCPSRz YXZlX1JBTkxJQgotKwkgIG9sZG9ianM9JG9iamxpc3QKLSsJICBpZiB0ZXN0ICJYJG9sZG9ianMi ID0gIlgiIDsgdGhlbgotKwkgICAgZXZhbCBjbWRzPVwiXCRjb25jYXRfY21kc1wiCi0rCSAgZWxz ZQotKwkgICAgZXZhbCBjbWRzPVwiXCRjb25jYXRfY21kc35cJG9sZF9hcmNoaXZlX2NtZHNcIgot KwkgIGZpCi0rCWZpCi0rICAgICAgZmkKLSsgICAgICBmdW5jX2V4ZWN1dGVfY21kcyAiJGNtZHMi ICdleGl0ICQ/JwotKyAgICBkb25lCi0rCi0rICAgIHRlc3QgLW4gIiRnZW5lcmF0ZWQiICYmIFwK LSsgICAgICBmdW5jX3Nob3dfZXZhbCAiJHtSTX1yJGdlbmVyYXRlZCIKLSsKLSsgICAgIyBOb3cg Y3JlYXRlIHRoZSBsaWJ0b29sIGFyY2hpdmUuCi0rICAgIGNhc2UgJG91dHB1dCBpbgotKyAgICAq LmxhKQotKyAgICAgIG9sZF9saWJyYXJ5PQotKyAgICAgIHRlc3QgIiRidWlsZF9vbGRfbGlicyIg PSB5ZXMgJiYgb2xkX2xpYnJhcnk9IiRsaWJuYW1lLiRsaWJleHQiCi0rICAgICAgZnVuY192ZXJi b3NlICJjcmVhdGluZyAkb3V0cHV0IgotKwotKyAgICAgICMgUHJlc2VydmUgYW55IHZhcmlhYmxl cyB0aGF0IG1heSBhZmZlY3QgY29tcGlsZXIgYmVoYXZpb3IKLSsgICAgICBmb3IgdmFyIGluICR2 YXJpYWJsZXNfc2F2ZWRfZm9yX3JlbGluazsgZG8KLSsJaWYgZXZhbCB0ZXN0IC16IFwiXCR7JHZh citzZXR9XCI7IHRoZW4KLSsJICByZWxpbmtfY29tbWFuZD0ieyB0ZXN0IC16IFwiXCR7JHZhcitz ZXR9XCIgfHwgJGx0X3Vuc2V0ICR2YXIgfHwgeyAkdmFyPTsgZXhwb3J0ICR2YXI7IH07IH07ICRy ZWxpbmtfY29tbWFuZCIKLSsJZWxpZiBldmFsIHZhcl92YWx1ZT1cJCR2YXI7IHRlc3QgLXogIiR2 YXJfdmFsdWUiOyB0aGVuCi0rCSAgcmVsaW5rX2NvbW1hbmQ9IiR2YXI9OyBleHBvcnQgJHZhcjsg JHJlbGlua19jb21tYW5kIgotKwllbHNlCi0rCSAgZnVuY19xdW90ZV9mb3JfZXZhbCAiJHZhcl92 YWx1ZSIKLSsJICByZWxpbmtfY29tbWFuZD0iJHZhcj0kZnVuY19xdW90ZV9mb3JfZXZhbF9yZXN1 bHQ7IGV4cG9ydCAkdmFyOyAkcmVsaW5rX2NvbW1hbmQiCi0rCWZpCi0rICAgICAgZG9uZQotKyAg ICAgICMgUXVvdGUgdGhlIGxpbmsgY29tbWFuZCBmb3Igc2hpcHBpbmcuCi0rICAgICAgcmVsaW5r X2NvbW1hbmQ9IihjZCBgcHdkYDsgJFNIRUxMICRwcm9ncGF0aCAkcHJlc2VydmVfYXJncyAtLW1v ZGU9cmVsaW5rICRsaWJ0b29sX2FyZ3MgQGluc3RfcHJlZml4X2RpckApIgotKyAgICAgIHJlbGlu a19jb21tYW5kPWAkRUNITyAiWCRyZWxpbmtfY29tbWFuZCIgfCAkWHNlZCAtZSAiJHNlZF9xdW90 ZV9zdWJzdCJgCi0rICAgICAgaWYgdGVzdCAiJGhhcmRjb2RlX2F1dG9tYXRpYyIgPSB5ZXMgOyB0 aGVuCi0rCXJlbGlua19jb21tYW5kPQotKyAgICAgIGZpCi0rCi0rICAgICAgIyBPbmx5IGNyZWF0 ZSB0aGUgb3V0cHV0IGlmIG5vdCBhIGRyeSBydW4uCi0rICAgICAgJG9wdF9kcnlfcnVuIHx8IHsK LSsJZm9yIGluc3RhbGxlZCBpbiBubyB5ZXM7IGRvCi0rCSAgaWYgdGVzdCAiJGluc3RhbGxlZCIg PSB5ZXM7IHRoZW4KLSsJICAgIGlmIHRlc3QgLXogIiRpbnN0YWxsX2xpYmRpciI7IHRoZW4KLSsJ ICAgICAgYnJlYWsKLSsJICAgIGZpCi0rCSAgICBvdXRwdXQ9IiRvdXRwdXRfb2JqZGlyLyRvdXRw dXRuYW1lImkKLSsJICAgICMgUmVwbGFjZSBhbGwgdW5pbnN0YWxsZWQgbGlidG9vbCBsaWJyYXJp ZXMgd2l0aCB0aGUgaW5zdGFsbGVkIG9uZXMKLSsJICAgIG5ld2RlcGVuZGVuY3lfbGlicz0KLSsJ ICAgIGZvciBkZXBsaWIgaW4gJGRlcGVuZGVuY3lfbGliczsgZG8KLSsJICAgICAgY2FzZSAkZGVw bGliIGluCi0rCSAgICAgICoubGEpCi0rCQlmdW5jX2Jhc2VuYW1lICIkZGVwbGliIgotKwkJbmFt ZT0iJGZ1bmNfYmFzZW5hbWVfcmVzdWx0IgotKwkJZXZhbCBsaWJkaXI9YCR7U0VEfSAtbiAtZSAn cy9ebGliZGlyPVwoLipcKSQvXDEvcCcgJGRlcGxpYmAKLSsJCXRlc3QgLXogIiRsaWJkaXIiICYm IFwKLSsJCSAgZnVuY19mYXRhbF9lcnJvciAiXGAkZGVwbGliJyBpcyBub3QgYSB2YWxpZCBsaWJ0 b29sIGFyY2hpdmUiCi0rCQluZXdkZXBlbmRlbmN5X2xpYnM9IiRuZXdkZXBlbmRlbmN5X2xpYnMg JGxpYmRpci8kbmFtZSIKLSsJCTs7Ci0rCSAgICAgICopIG5ld2RlcGVuZGVuY3lfbGlicz0iJG5l d2RlcGVuZGVuY3lfbGlicyAkZGVwbGliIiA7OwotKwkgICAgICBlc2FjCi0rCSAgICBkb25lCi0r CSAgICBkZXBlbmRlbmN5X2xpYnM9IiRuZXdkZXBlbmRlbmN5X2xpYnMiCi0rCSAgICBuZXdkbGZp bGVzPQotKwotKwkgICAgZm9yIGxpYiBpbiAkZGxmaWxlczsgZG8KLSsJICAgICAgY2FzZSAkbGli IGluCi0rCSAgICAgICoubGEpCi0rCSAgICAgICAgZnVuY19iYXNlbmFtZSAiJGxpYiIKLSsJCW5h bWU9IiRmdW5jX2Jhc2VuYW1lX3Jlc3VsdCIKLSsJCWV2YWwgbGliZGlyPWAke1NFRH0gLW4gLWUg J3MvXmxpYmRpcj1cKC4qXCkkL1wxL3AnICRsaWJgCi0rCQl0ZXN0IC16ICIkbGliZGlyIiAmJiBc Ci0rCQkgIGZ1bmNfZmF0YWxfZXJyb3IgIlxgJGxpYicgaXMgbm90IGEgdmFsaWQgbGlidG9vbCBh cmNoaXZlIgotKwkJbmV3ZGxmaWxlcz0iJG5ld2RsZmlsZXMgJGxpYmRpci8kbmFtZSIKLSsJCTs7 Ci0rCSAgICAgICopIG5ld2RsZmlsZXM9IiRuZXdkbGZpbGVzICRsaWIiIDs7Ci0rCSAgICAgIGVz YWMKLSsJICAgIGRvbmUKLSsJICAgIGRsZmlsZXM9IiRuZXdkbGZpbGVzIgotKwkgICAgbmV3ZGxw cmVmaWxlcz0KLSsJICAgIGZvciBsaWIgaW4gJGRscHJlZmlsZXM7IGRvCi0rCSAgICAgIGNhc2Ug JGxpYiBpbgotKwkgICAgICAqLmxhKQotKwkJIyBPbmx5IHBhc3MgcHJlb3BlbmVkIGZpbGVzIHRv IHRoZSBwc2V1ZG8tYXJjaGl2ZSAoZm9yCi0rCQkjIGV2ZW50dWFsIGxpbmtpbmcgd2l0aCB0aGUg YXBwLiB0aGF0IGxpbmtzIGl0KSBpZiB3ZQotKwkJIyBkaWRuJ3QgYWxyZWFkeSBsaW5rIHRoZSBw cmVvcGVuZWQgb2JqZWN0cyBkaXJlY3RseSBpbnRvCi0rCQkjIHRoZSBsaWJyYXJ5OgotKwkJZnVu Y19iYXNlbmFtZSAiJGxpYiIKLSsJCW5hbWU9IiRmdW5jX2Jhc2VuYW1lX3Jlc3VsdCIKLSsJCWV2 YWwgbGliZGlyPWAke1NFRH0gLW4gLWUgJ3MvXmxpYmRpcj1cKC4qXCkkL1wxL3AnICRsaWJgCi0r CQl0ZXN0IC16ICIkbGliZGlyIiAmJiBcCi0rCQkgIGZ1bmNfZmF0YWxfZXJyb3IgIlxgJGxpYicg aXMgbm90IGEgdmFsaWQgbGlidG9vbCBhcmNoaXZlIgotKwkJbmV3ZGxwcmVmaWxlcz0iJG5ld2Rs cHJlZmlsZXMgJGxpYmRpci8kbmFtZSIKLSsJCTs7Ci0rCSAgICAgIGVzYWMKLSsJICAgIGRvbmUK LSsJICAgIGRscHJlZmlsZXM9IiRuZXdkbHByZWZpbGVzIgotKwkgIGVsc2UKLSsJICAgIG5ld2Rs ZmlsZXM9Ci0rCSAgICBmb3IgbGliIGluICRkbGZpbGVzOyBkbwotKwkgICAgICBjYXNlICRsaWIg aW4KLSsJCVtcXC9dKiB8IFtBLVphLXpdOltcXC9dKikgYWJzPSIkbGliIiA7OwotKwkJKikgYWJz PWBwd2RgIi8kbGliIiA7OwotKwkgICAgICBlc2FjCi0rCSAgICAgIG5ld2RsZmlsZXM9IiRuZXdk bGZpbGVzICRhYnMiCi0rCSAgICBkb25lCi0rCSAgICBkbGZpbGVzPSIkbmV3ZGxmaWxlcyIKLSsJ ICAgIG5ld2RscHJlZmlsZXM9Ci0rCSAgICBmb3IgbGliIGluICRkbHByZWZpbGVzOyBkbwotKwkg ICAgICBjYXNlICRsaWIgaW4KLSsJCVtcXC9dKiB8IFtBLVphLXpdOltcXC9dKikgYWJzPSIkbGli IiA7OwotKwkJKikgYWJzPWBwd2RgIi8kbGliIiA7OwotKwkgICAgICBlc2FjCi0rCSAgICAgIG5l d2RscHJlZmlsZXM9IiRuZXdkbHByZWZpbGVzICRhYnMiCi0rCSAgICBkb25lCi0rCSAgICBkbHBy ZWZpbGVzPSIkbmV3ZGxwcmVmaWxlcyIKLSsJICBmaQotKwkgICRSTSAkb3V0cHV0Ci0rCSAgIyBw bGFjZSBkbG5hbWUgaW4gY29ycmVjdCBwb3NpdGlvbiBmb3IgY3lnd2luCi0rCSAgdGRsbmFtZT0k ZGxuYW1lCi0rCSAgY2FzZSAkaG9zdCwkb3V0cHV0LCRpbnN0YWxsZWQsJG1vZHVsZSwkZGxuYW1l IGluCi0rCSAgICAqY3lnd2luKiwqbGFpLHllcyxubywqLmRsbCB8ICptaW5ndyosKmxhaSx5ZXMs bm8sKi5kbGwgfCAqY2VnY2MqLCpsYWkseWVzLG5vLCouZGxsKSB0ZGxuYW1lPS4uL2Jpbi8kZGxu YW1lIDs7Ci0rCSAgZXNhYwotKwkgICRFQ0hPID4gJG91dHB1dCAiXAotKyMgJG91dHB1dG5hbWUg LSBhIGxpYnRvb2wgbGlicmFyeSBmaWxlCi0rIyBHZW5lcmF0ZWQgYnkgJFBST0dSQU0gKEdOVSAk UEFDS0FHRSRUSU1FU1RBTVApICRWRVJTSU9OCi0rIwotKyMgUGxlYXNlIERPIE5PVCBkZWxldGUg dGhpcyBmaWxlIQotKyMgSXQgaXMgbmVjZXNzYXJ5IGZvciBsaW5raW5nIHRoZSBsaWJyYXJ5Lgot KwotKyMgVGhlIG5hbWUgdGhhdCB3ZSBjYW4gZGxvcGVuKDMpLgotK2RsbmFtZT0nJHRkbG5hbWUn Ci0rCi0rIyBOYW1lcyBvZiB0aGlzIGxpYnJhcnkuCi0rbGlicmFyeV9uYW1lcz0nJGxpYnJhcnlf bmFtZXMnCi0rCi0rIyBUaGUgbmFtZSBvZiB0aGUgc3RhdGljIGFyY2hpdmUuCi0rb2xkX2xpYnJh cnk9JyRvbGRfbGlicmFyeScKLSsKLSsjIExpbmtlciBmbGFncyB0aGF0IGNhbiBub3QgZ28gaW4g ZGVwZW5kZW5jeV9saWJzLgotK2luaGVyaXRlZF9saW5rZXJfZmxhZ3M9JyRuZXdfaW5oZXJpdGVk X2xpbmtlcl9mbGFncycKLSsKLSsjIExpYnJhcmllcyB0aGF0IHRoaXMgb25lIGRlcGVuZHMgdXBv bi4KLStkZXBlbmRlbmN5X2xpYnM9JyRkZXBlbmRlbmN5X2xpYnMnCi0rCi0rIyBOYW1lcyBvZiBh ZGRpdGlvbmFsIHdlYWsgbGlicmFyaWVzIHByb3ZpZGVkIGJ5IHRoaXMgbGlicmFyeQotK3dlYWtf bGlicmFyeV9uYW1lcz0nJHdlYWtfbGlicycKLSsKLSsjIFZlcnNpb24gaW5mb3JtYXRpb24gZm9y ICRsaWJuYW1lLgotK2N1cnJlbnQ9JGN1cnJlbnQKLSthZ2U9JGFnZQotK3JldmlzaW9uPSRyZXZp c2lvbgotKwotKyMgSXMgdGhpcyBhbiBhbHJlYWR5IGluc3RhbGxlZCBsaWJyYXJ5PwotK2luc3Rh bGxlZD0kaW5zdGFsbGVkCi0rCi0rIyBTaG91bGQgd2Ugd2FybiBhYm91dCBwb3J0YWJpbGl0eSB3 aGVuIGxpbmtpbmcgYWdhaW5zdCAtbW9kdWxlcz8KLStzaG91bGRub3RsaW5rPSRtb2R1bGUKLSsK LSsjIEZpbGVzIHRvIGRsb3Blbi9kbHByZW9wZW4KLStkbG9wZW49JyRkbGZpbGVzJwotK2RscHJl b3Blbj0nJGRscHJlZmlsZXMnCi0rCi0rIyBEaXJlY3RvcnkgdGhhdCB0aGlzIGxpYnJhcnkgbmVl ZHMgdG8gYmUgaW5zdGFsbGVkIGluOgotK2xpYmRpcj0nJGluc3RhbGxfbGliZGlyJyIKLSsJICBp ZiB0ZXN0ICIkaW5zdGFsbGVkIiA9IG5vICYmIHRlc3QgIiRuZWVkX3JlbGluayIgPSB5ZXM7IHRo ZW4KLSsJICAgICRFQ0hPID4+ICRvdXRwdXQgIlwKLStyZWxpbmtfY29tbWFuZD1cIiRyZWxpbmtf Y29tbWFuZFwiIgotKwkgIGZpCi0rCWRvbmUKLSsgICAgICB9Ci0rCi0rICAgICAgIyBEbyBhIHN5 bWJvbGljIGxpbmsgc28gdGhhdCB0aGUgbGlidG9vbCBhcmNoaXZlIGNhbiBiZSBmb3VuZCBpbgot KyAgICAgICMgTERfTElCUkFSWV9QQVRIIGJlZm9yZSB0aGUgcHJvZ3JhbSBpcyBpbnN0YWxsZWQu Ci0rICAgICAgZnVuY19zaG93X2V2YWwgJyggY2QgIiRvdXRwdXRfb2JqZGlyIiAmJiAkUk0gIiRv dXRwdXRuYW1lIiAmJiAkTE5fUyAiLi4vJG91dHB1dG5hbWUiICIkb3V0cHV0bmFtZSIgKScgJ2V4 aXQgJD8nCi0rICAgICAgOzsKLSsgICAgZXNhYwotKyAgICBleGl0ICRFWElUX1NVQ0NFU1MKLSt9 Ci0rCi0reyB0ZXN0ICIkbW9kZSIgPSBsaW5rIHx8IHRlc3QgIiRtb2RlIiA9IHJlbGluazsgfSAm JgotKyAgICBmdW5jX21vZGVfbGluayAkezErIiRAIn0KLSsKLSsKLSsjIGZ1bmNfbW9kZV91bmlu c3RhbGwgYXJnLi4uCi0rZnVuY19tb2RlX3VuaW5zdGFsbCAoKQotK3sKLSsgICAgJG9wdF9kZWJ1 ZwotKyAgICBSTT0iJG5vbm9wdCIKLSsgICAgZmlsZXM9Ci0rICAgIHJtZm9yY2U9Ci0rICAgIGV4 aXRfc3RhdHVzPTAKLSsKLSsgICAgIyBUaGlzIHZhcmlhYmxlIHRlbGxzIHdyYXBwZXIgc2NyaXB0 cyBqdXN0IHRvIHNldCB2YXJpYWJsZXMgcmF0aGVyCi0rICAgICMgdGhhbiBydW5uaW5nIHRoZWly IHByb2dyYW1zLgotKyAgICBsaWJ0b29sX2luc3RhbGxfbWFnaWM9IiRtYWdpYyIKLSsKLSsgICAg Zm9yIGFyZwotKyAgICBkbwotKyAgICAgIGNhc2UgJGFyZyBpbgotKyAgICAgIC1mKSBSTT0iJFJN ICRhcmciOyBybWZvcmNlPXllcyA7OwotKyAgICAgIC0qKSBSTT0iJFJNICRhcmciIDs7Ci0rICAg ICAgKikgZmlsZXM9IiRmaWxlcyAkYXJnIiA7OwotKyAgICAgIGVzYWMKLSsgICAgZG9uZQotKwot KyAgICB0ZXN0IC16ICIkUk0iICYmIFwKLSsgICAgICBmdW5jX2ZhdGFsX2hlbHAgInlvdSBtdXN0 IHNwZWNpZnkgYW4gUk0gcHJvZ3JhbSIKLSsKLSsgICAgcm1kaXJzPQotKwotKyAgICBvcmlnb2Jq ZGlyPSIkb2JqZGlyIgotKyAgICBmb3IgZmlsZSBpbiAkZmlsZXM7IGRvCi0rICAgICAgZnVuY19k aXJuYW1lICIkZmlsZSIgIiIgIi4iCi0rICAgICAgZGlyPSIkZnVuY19kaXJuYW1lX3Jlc3VsdCIK LSsgICAgICBpZiB0ZXN0ICJYJGRpciIgPSBYLjsgdGhlbgotKwlvYmpkaXI9IiRvcmlnb2JqZGly IgotKyAgICAgIGVsc2UKLSsJb2JqZGlyPSIkZGlyLyRvcmlnb2JqZGlyIgotKyAgICAgIGZpCi0r ICAgICAgZnVuY19iYXNlbmFtZSAiJGZpbGUiCi0rICAgICAgbmFtZT0iJGZ1bmNfYmFzZW5hbWVf cmVzdWx0IgotKyAgICAgIHRlc3QgIiRtb2RlIiA9IHVuaW5zdGFsbCAmJiBvYmpkaXI9IiRkaXIi Ci0rCi0rICAgICAgIyBSZW1lbWJlciBvYmpkaXIgZm9yIHJlbW92YWwgbGF0ZXIsIGJlaW5nIGNh cmVmdWwgdG8gYXZvaWQgZHVwbGljYXRlcwotKyAgICAgIGlmIHRlc3QgIiRtb2RlIiA9IGNsZWFu OyB0aGVuCi0rCWNhc2UgIiAkcm1kaXJzICIgaW4KLSsJICAqIiAkb2JqZGlyICIqKSA7OwotKwkg ICopIHJtZGlycz0iJHJtZGlycyAkb2JqZGlyIiA7OwotKwllc2FjCi0rICAgICAgZmkKLSsKLSsg ICAgICAjIERvbid0IGVycm9yIGlmIHRoZSBmaWxlIGRvZXNuJ3QgZXhpc3QgYW5kIHJtIC1mIHdh cyB1c2VkLgotKyAgICAgIGlmIHsgdGVzdCAtTCAiJGZpbGUiOyB9ID4vZGV2L251bGwgMj4mMSB8 fAotKwkgeyB0ZXN0IC1oICIkZmlsZSI7IH0gPi9kZXYvbnVsbCAyPiYxIHx8Ci0rCSB0ZXN0IC1m ICIkZmlsZSI7IHRoZW4KLSsJOgotKyAgICAgIGVsaWYgdGVzdCAtZCAiJGZpbGUiOyB0aGVuCi0r CWV4aXRfc3RhdHVzPTEKLSsJY29udGludWUKLSsgICAgICBlbGlmIHRlc3QgIiRybWZvcmNlIiA9 IHllczsgdGhlbgotKwljb250aW51ZQotKyAgICAgIGZpCi0rCi0rICAgICAgcm1maWxlcz0iJGZp bGUiCi0rCi0rICAgICAgY2FzZSAkbmFtZSBpbgotKyAgICAgICoubGEpCi0rCSMgUG9zc2libHkg YSBsaWJ0b29sIGFyY2hpdmUsIHNvIHZlcmlmeSBpdC4KLSsJaWYgZnVuY19sYWxpYl9wICIkZmls ZSI7IHRoZW4KLSsJICBmdW5jX3NvdXJjZSAkZGlyLyRuYW1lCi0rCi0rCSAgIyBEZWxldGUgdGhl IGxpYnRvb2wgbGlicmFyaWVzIGFuZCBzeW1saW5rcy4KLSsJICBmb3IgbiBpbiAkbGlicmFyeV9u YW1lczsgZG8KLSsJICAgIHJtZmlsZXM9IiRybWZpbGVzICRvYmpkaXIvJG4iCi0rCSAgZG9uZQot KwkgIHRlc3QgLW4gIiRvbGRfbGlicmFyeSIgJiYgcm1maWxlcz0iJHJtZmlsZXMgJG9iamRpci8k b2xkX2xpYnJhcnkiCi0rCi0rCSAgY2FzZSAiJG1vZGUiIGluCi0rCSAgY2xlYW4pCi0rCSAgICBj YXNlICIgICRsaWJyYXJ5X25hbWVzICIgaW4KLSsJICAgICMgIiAgIiBpbiB0aGUgYmVnaW5uaW5n IGNhdGNoZXMgZW1wdHkgJGRsbmFtZQotKwkgICAgKiIgJGRsbmFtZSAiKikgOzsKLSsJICAgICop IHJtZmlsZXM9IiRybWZpbGVzICRvYmpkaXIvJGRsbmFtZSIgOzsKLSsJICAgIGVzYWMKLSsJICAg IHRlc3QgLW4gIiRsaWJkaXIiICYmIHJtZmlsZXM9IiRybWZpbGVzICRvYmpkaXIvJG5hbWUgJG9i amRpci8ke25hbWV9aSIKLSsJICAgIDs7Ci0rCSAgdW5pbnN0YWxsKQotKwkgICAgaWYgdGVzdCAt biAiJGxpYnJhcnlfbmFtZXMiOyB0aGVuCi0rCSAgICAgICMgRG8gZWFjaCBjb21tYW5kIGluIHRo ZSBwb3N0dW5pbnN0YWxsIGNvbW1hbmRzLgotKwkgICAgICBmdW5jX2V4ZWN1dGVfY21kcyAiJHBv c3R1bmluc3RhbGxfY21kcyIgJ3Rlc3QgIiRybWZvcmNlIiA9IHllcyB8fCBleGl0X3N0YXR1cz0x JwotKwkgICAgZmkKLSsKLSsJICAgIGlmIHRlc3QgLW4gIiRvbGRfbGlicmFyeSI7IHRoZW4KLSsJ ICAgICAgIyBEbyBlYWNoIGNvbW1hbmQgaW4gdGhlIG9sZF9wb3N0dW5pbnN0YWxsIGNvbW1hbmRz LgotKwkgICAgICBmdW5jX2V4ZWN1dGVfY21kcyAiJG9sZF9wb3N0dW5pbnN0YWxsX2NtZHMiICd0 ZXN0ICIkcm1mb3JjZSIgPSB5ZXMgfHwgZXhpdF9zdGF0dXM9MScKLSsJICAgIGZpCi0rCSAgICAj IEZJWE1FOiBzaG91bGQgcmVpbnN0YWxsIHRoZSBiZXN0IHJlbWFpbmluZyBzaGFyZWQgbGlicmFy eS4KLSsJICAgIDs7Ci0rCSAgZXNhYwotKwlmaQotKwk7OwotKwotKyAgICAgICoubG8pCi0rCSMg UG9zc2libHkgYSBsaWJ0b29sIG9iamVjdCwgc28gdmVyaWZ5IGl0LgotKwlpZiBmdW5jX2xhbGli X3AgIiRmaWxlIjsgdGhlbgotKwotKwkgICMgUmVhZCB0aGUgLmxvIGZpbGUKLSsJICBmdW5jX3Nv dXJjZSAkZGlyLyRuYW1lCi0rCi0rCSAgIyBBZGQgUElDIG9iamVjdCB0byB0aGUgbGlzdCBvZiBm aWxlcyB0byByZW1vdmUuCi0rCSAgaWYgdGVzdCAtbiAiJHBpY19vYmplY3QiICYmCi0rCSAgICAg dGVzdCAiJHBpY19vYmplY3QiICE9IG5vbmU7IHRoZW4KLSsJICAgIHJtZmlsZXM9IiRybWZpbGVz ICRkaXIvJHBpY19vYmplY3QiCi0rCSAgZmkKLSsKLSsJICAjIEFkZCBub24tUElDIG9iamVjdCB0 byB0aGUgbGlzdCBvZiBmaWxlcyB0byByZW1vdmUuCi0rCSAgaWYgdGVzdCAtbiAiJG5vbl9waWNf b2JqZWN0IiAmJgotKwkgICAgIHRlc3QgIiRub25fcGljX29iamVjdCIgIT0gbm9uZTsgdGhlbgot KwkgICAgcm1maWxlcz0iJHJtZmlsZXMgJGRpci8kbm9uX3BpY19vYmplY3QiCi0rCSAgZmkKLSsJ ZmkKLSsJOzsKLSsKLSsgICAgICAqKQotKwlpZiB0ZXN0ICIkbW9kZSIgPSBjbGVhbiA7IHRoZW4K LSsJICBub2V4ZW5hbWU9JG5hbWUKLSsJICBjYXNlICRmaWxlIGluCi0rCSAgKi5leGUpCi0rCSAg ICBmdW5jX3N0cmlwbmFtZSAnJyAnLmV4ZScgIiRmaWxlIgotKwkgICAgZmlsZT0kZnVuY19zdHJp cG5hbWVfcmVzdWx0Ci0rCSAgICBmdW5jX3N0cmlwbmFtZSAnJyAnLmV4ZScgIiRuYW1lIgotKwkg ICAgbm9leGVuYW1lPSRmdW5jX3N0cmlwbmFtZV9yZXN1bHQKLSsJICAgICMgJGZpbGUgd2l0aCAu ZXhlIGhhcyBhbHJlYWR5IGJlZW4gYWRkZWQgdG8gcm1maWxlcywKLSsJICAgICMgYWRkICRmaWxl IHdpdGhvdXQgLmV4ZQotKwkgICAgcm1maWxlcz0iJHJtZmlsZXMgJGZpbGUiCi0rCSAgICA7Owot KwkgIGVzYWMKLSsJICAjIERvIGEgdGVzdCB0byBzZWUgaWYgdGhpcyBpcyBhIGxpYnRvb2wgcHJv Z3JhbS4KLSsJICBpZiBmdW5jX2x0d3JhcHBlcl9wICIkZmlsZSI7IHRoZW4KLSsJICAgIGlmIGZ1 bmNfbHR3cmFwcGVyX2V4ZWN1dGFibGVfcCAiJGZpbGUiOyB0aGVuCi0rCSAgICAgIGZ1bmNfbHR3 cmFwcGVyX3NjcmlwdG5hbWUgIiRmaWxlIgotKwkgICAgICByZWxpbmtfY29tbWFuZD0KLSsJICAg ICAgZnVuY19zb3VyY2UgJGZ1bmNfbHR3cmFwcGVyX3NjcmlwdG5hbWVfcmVzdWx0Ci0rCSAgICAg IHJtZmlsZXM9IiRybWZpbGVzICRmdW5jX2x0d3JhcHBlcl9zY3JpcHRuYW1lX3Jlc3VsdCIKLSsJ ICAgIGVsc2UKLSsJICAgICAgcmVsaW5rX2NvbW1hbmQ9Ci0rCSAgICAgIGZ1bmNfc291cmNlICRk aXIvJG5vZXhlbmFtZQotKwkgICAgZmkKLSsKLSsJICAgICMgbm90ZSAkbmFtZSBzdGlsbCBjb250 YWlucyAuZXhlIGlmIGl0IHdhcyBpbiAkZmlsZSBvcmlnaW5hbGx5Ci0rCSAgICAjIGFzIGRvZXMg dGhlIHZlcnNpb24gb2YgJGZpbGUgdGhhdCB3YXMgYWRkZWQgaW50byAkcm1maWxlcwotKwkgICAg cm1maWxlcz0iJHJtZmlsZXMgJG9iamRpci8kbmFtZSAkb2JqZGlyLyR7bmFtZX1TLiR7b2JqZXh0 fSIKLSsJICAgIGlmIHRlc3QgIiRmYXN0X2luc3RhbGwiID0geWVzICYmIHRlc3QgLW4gIiRyZWxp bmtfY29tbWFuZCI7IHRoZW4KLSsJICAgICAgcm1maWxlcz0iJHJtZmlsZXMgJG9iamRpci9sdC0k bmFtZSIKLSsJICAgIGZpCi0rCSAgICBpZiB0ZXN0ICJYJG5vZXhlbmFtZSIgIT0gIlgkbmFtZSIg OyB0aGVuCi0rCSAgICAgIHJtZmlsZXM9IiRybWZpbGVzICRvYmpkaXIvbHQtJHtub2V4ZW5hbWV9 LmMiCi0rCSAgICBmaQotKwkgIGZpCi0rCWZpCi0rCTs7Ci0rICAgICAgZXNhYwotKyAgICAgIGZ1 bmNfc2hvd19ldmFsICIkUk0gJHJtZmlsZXMiICdleGl0X3N0YXR1cz0xJwotKyAgICBkb25lCi0r ICAgIG9iamRpcj0iJG9yaWdvYmpkaXIiCi0rCi0rICAgICMgVHJ5IHRvIHJlbW92ZSB0aGUgJHtv YmpkaXJ9cyBpbiB0aGUgZGlyZWN0b3JpZXMgd2hlcmUgd2UgZGVsZXRlZCBmaWxlcwotKyAgICBm b3IgZGlyIGluICRybWRpcnM7IGRvCi0rICAgICAgaWYgdGVzdCAtZCAiJGRpciI7IHRoZW4KLSsJ ZnVuY19zaG93X2V2YWwgInJtZGlyICRkaXIgPi9kZXYvbnVsbCAyPiYxIgotKyAgICAgIGZpCi0r ICAgIGRvbmUKLSsKLSsgICAgZXhpdCAkZXhpdF9zdGF0dXMKLSt9Ci0rCi0reyB0ZXN0ICIkbW9k ZSIgPSB1bmluc3RhbGwgfHwgdGVzdCAiJG1vZGUiID0gY2xlYW47IH0gJiYKLSsgICAgZnVuY19t b2RlX3VuaW5zdGFsbCAkezErIiRAIn0KLSsKLSt0ZXN0IC16ICIkbW9kZSIgJiYgewotKyAgaGVs cD0iJGdlbmVyaWNfaGVscCIKLSsgIGZ1bmNfZmF0YWxfaGVscCAieW91IG11c3Qgc3BlY2lmeSBh IE1PREUiCi0rfQotKwotK3Rlc3QgLXogIiRleGVjX2NtZCIgJiYgXAotKyAgZnVuY19mYXRhbF9o ZWxwICJpbnZhbGlkIG9wZXJhdGlvbiBtb2RlIFxgJG1vZGUnIgotKwotK2lmIHRlc3QgLW4gIiRl eGVjX2NtZCI7IHRoZW4KLSsgIGV2YWwgZXhlYyAiJGV4ZWNfY21kIgotKyAgZXhpdCAkRVhJVF9G QUlMVVJFCi0rZmkKLSsKLStleGl0ICRleGl0X3N0YXR1cwotKwotKwotKyMgVGhlIFRBR3MgYmVs b3cgYXJlIGRlZmluZWQgc3VjaCB0aGF0IHdlIG5ldmVyIGdldCBpbnRvIGEgc2l0dWF0aW9uCi0r IyBpbiB3aGljaCB3ZSBkaXNhYmxlIGJvdGgga2luZHMgb2YgbGlicmFyaWVzLiAgR2l2ZW4gY29u ZmxpY3RpbmcKLSsjIGNob2ljZXMsIHdlIGdvIGZvciBhIHN0YXRpYyBsaWJyYXJ5LCB0aGF0IGlz IHRoZSBtb3N0IHBvcnRhYmxlLAotKyMgc2luY2Ugd2UgY2FuJ3QgdGVsbCB3aGV0aGVyIHNoYXJl ZCBsaWJyYXJpZXMgd2VyZSBkaXNhYmxlZCBiZWNhdXNlCi0rIyB0aGUgdXNlciBhc2tlZCBmb3Ig dGhhdCBvciBiZWNhdXNlIHRoZSBwbGF0Zm9ybSBkb2Vzbid0IHN1cHBvcnQKLSsjIHRoZW0uICBU aGlzIGlzIHBhcnRpY3VsYXJseSBpbXBvcnRhbnQgb24gQUlYLCBiZWNhdXNlIHdlIGRvbid0Ci0r IyBzdXBwb3J0IGhhdmluZyBib3RoIHN0YXRpYyBhbmQgc2hhcmVkIGxpYnJhcmllcyBlbmFibGVk IGF0IHRoZSBzYW1lCi0rIyB0aW1lIG9uIHRoYXQgcGxhdGZvcm0sIHNvIHdlIGRlZmF1bHQgdG8g YSBzaGFyZWQtb25seSBjb25maWd1cmF0aW9uLgotKyMgSWYgYSBkaXNhYmxlLXNoYXJlZCB0YWcg aXMgZ2l2ZW4sIHdlJ2xsIGZhbGxiYWNrIHRvIGEgc3RhdGljLW9ubHkKLSsjIGNvbmZpZ3VyYXRp b24uICBCdXQgd2UnbGwgbmV2ZXIgZ28gZnJvbSBzdGF0aWMtb25seSB0byBzaGFyZWQtb25seS4K LSsKLSsjICMjIyBCRUdJTiBMSUJUT09MIFRBRyBDT05GSUc6IGRpc2FibGUtc2hhcmVkCi0rYnVp bGRfbGlidG9vbF9saWJzPW5vCi0rYnVpbGRfb2xkX2xpYnM9eWVzCi0rIyAjIyMgRU5EIExJQlRP T0wgVEFHIENPTkZJRzogZGlzYWJsZS1zaGFyZWQKLSsKLSsjICMjIyBCRUdJTiBMSUJUT09MIFRB RyBDT05GSUc6IGRpc2FibGUtc3RhdGljCi0rYnVpbGRfb2xkX2xpYnM9YGNhc2UgJGJ1aWxkX2xp YnRvb2xfbGlicyBpbiB5ZXMpIGVjaG8gbm87OyAqKSBlY2hvIHllczs7IGVzYWNgCi0rIyAjIyMg RU5EIExJQlRPT0wgVEFHIENPTkZJRzogZGlzYWJsZS1zdGF0aWMKLSsKLSsjIExvY2FsIFZhcmlh YmxlczoKLSsjIG1vZGU6c2hlbGwtc2NyaXB0Ci0rIyBzaC1pbmRlbnRhdGlvbjoyCi0rIyBFbmQ6 Ci0rIyB2aTpzdz0yCi0rCi1kaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svY29uZmlnL2x0fm9i c29sZXRlLm00IHNvY2ktMy4wLjBfdHJlcDMwMC9jb25maWcvbHR+b2Jzb2xldGUubTQKLS0tLSBz b2NpLTMuMC4wXzQtcGFjay9jb25maWcvbHR+b2Jzb2xldGUubTQJMTk3MC0wMS0wMSAwMTowMDow MC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBzb2NpLTMuMC4wX3RyZXAzMDAvY29uZmlnL2x0fm9ic29s ZXRlLm00CTIwMDktMDUtMjMgMTA6MDE6NTYuMDAwMDAwMDAwICswMjAwCi1AQCAtMCwwICsxLDky IEBACi0rIyBsdH5vYnNvbGV0ZS5tNCAtLSBhY2xvY2FsIHNhdGlzZnlpbmcgb2Jzb2xldGUgZGVm aW5pdGlvbnMuICAgIC0qLUF1dG9jb25mLSotCi0rIwotKyMgICBDb3B5cmlnaHQgKEMpIDIwMDQs IDIwMDUsIDIwMDcgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCi0rIyAgIFdyaXR0ZW4g YnkgU2NvdHQgSmFtZXMgUmVtbmFudCwgMjAwNC4KLSsjCi0rIyBUaGlzIGZpbGUgaXMgZnJlZSBz b2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiBnaXZlcwotKyMgdW5saW1pdGVk IHBlcm1pc3Npb24gdG8gY29weSBhbmQvb3IgZGlzdHJpYnV0ZSBpdCwgd2l0aCBvciB3aXRob3V0 Ci0rIyBtb2RpZmljYXRpb25zLCBhcyBsb25nIGFzIHRoaXMgbm90aWNlIGlzIHByZXNlcnZlZC4K LSsKLSsjIHNlcmlhbCA0IGx0fm9ic29sZXRlLm00Ci0rCi0rIyBUaGVzZSBleGlzdCBlbnRpcmVs eSB0byBmb29sIGFjbG9jYWwgd2hlbiBib290c3RyYXBwaW5nIGxpYnRvb2wuCi0rIwotKyMgSW4g dGhlIHBhc3QgbGlidG9vbC5tNCBoYXMgcHJvdmlkZWQgbWFjcm9zIHZpYSBBQ19ERUZVTiAob3Ig QVVfREVGVU4pCi0rIyB3aGljaCBoYXZlIGxhdGVyIGJlZW4gY2hhbmdlZCB0byBtNF9kZWZpbmUg YXMgdGhleSBhcmVuJ3QgcGFydCBvZiB0aGUKLSsjIGV4cG9ydGVkIEFQSSwgb3IgbW92ZWQgdG8g QXV0b2NvbmYgb3IgQXV0b21ha2Ugd2hlcmUgdGhleSBiZWxvbmcuCi0rIwotKyMgVGhlIHRyb3Vi bGUgaXMsIGFjbG9jYWwgaXMgYSBiaXQgdGhpY2suICBJdCdsbCBzZWUgdGhlIG9sZCBBQ19ERUZV TgotKyMgaW4gL3Vzci9zaGFyZS9hY2xvY2FsL2xpYnRvb2wubTQgYW5kIHJlbWVtYmVyIGl0LCB0 aGVuIHdoZW4gaXQgc2VlcyB1cwotKyMgdXNpbmcgYSBtYWNybyB3aXRoIHRoZSBzYW1lIG5hbWUg aW4gb3VyIGxvY2FsIG00L2xpYnRvb2wubTQgaXQnbGwKLSsjIHB1bGwgdGhlIG9sZCBsaWJ0b29s Lm00IGluIChpdCBkb2Vzbid0IHNlZSBvdXIgc2hpbnkgbmV3IG00X2RlZmluZQotKyMgYW5kIGRv ZXNuJ3Qga25vdyBhYm91dCBBdXRvY29uZiBtYWNyb3MgYXQgYWxsLikKLSsjCi0rIyBTbyB3ZSBw cm92aWRlIHRoaXMgZmlsZSwgd2hpY2ggaGFzIGEgc2lsbHkgZmlsZW5hbWUgc28gaXQncyBhbHdh eXMKLSsjIGluY2x1ZGVkIGFmdGVyIGV2ZXJ5dGhpbmcgZWxzZS4gIFRoaXMgcHJvdmlkZXMgYWNs b2NhbCB3aXRoIHRoZQotKyMgQUNfREVGVU5zIGl0IHdhbnRzLCBidXQgd2hlbiBtNCBwcm9jZXNz ZXMgaXQsIGl0IGRvZXNuJ3QgZG8gYW55dGhpbmcKLSsjIGJlY2F1c2UgdGhvc2UgbWFjcm9zIGFs cmVhZHkgZXhpc3QsIG9yIHdpbGwgYmUgb3ZlcndyaXR0ZW4gbGF0ZXIuCi0rIyBXZSB1c2UgQUNf REVGVU4gb3ZlciBBVV9ERUZVTiBmb3IgY29tcGF0aWJpbGl0eSB3aXRoIGFjbG9jYWwtMS42LiAK LSsjCi0rIyBBbnl0aW1lIHdlIHdpdGhkcmF3IGFuIEFDX0RFRlVOIG9yIEFVX0RFRlVOLCByZW1l bWJlciB0byBhZGQgaXQgaGVyZS4KLSsjIFllcywgdGhhdCBtZWFucyBldmVyeSBuYW1lIG9uY2Ug dGFrZW4gd2lsbCBuZWVkIHRvIHJlbWFpbiBoZXJlIHVudGlsCi0rIyB3ZSBnaXZlIHVwIGNvbXBh dGliaWxpdHkgd2l0aCB2ZXJzaW9ucyBiZWZvcmUgMS43LCBhdCB3aGljaCBwb2ludAotKyMgd2Ug bmVlZCB0byBrZWVwIG9ubHkgdGhvc2UgbmFtZXMgd2hpY2ggd2Ugc3RpbGwgcmVmZXIgdG8uCi0r Ci0rIyBUaGlzIGlzIHRvIGhlbHAgYWNsb2NhbCBmaW5kIHRoZXNlIG1hY3JvcywgYXMgaXQgY2Fu J3Qgc2VlIG00X2RlZmluZS4KLStBQ19ERUZVTihbTFRPQlNPTEVURV9WRVJTSU9OXSwgW200X2lm KFsxXSldKQotKwotK200X2lmbmRlZihbQUNfTElCVE9PTF9MSU5LRVJfT1BUSU9OXSwJW0FDX0RF RlVOKFtBQ19MSUJUT09MX0xJTktFUl9PUFRJT05dKV0pCi0rbTRfaWZuZGVmKFtBQ19QUk9HX0VH UkVQXSwJCVtBQ19ERUZVTihbQUNfUFJPR19FR1JFUF0pXSkKLSttNF9pZm5kZWYoW19MVF9BQ19Q Uk9HX0VDSE9fQkFDS1NMQVNIXSwJW0FDX0RFRlVOKFtfTFRfQUNfUFJPR19FQ0hPX0JBQ0tTTEFT SF0pXSkKLSttNF9pZm5kZWYoW19MVF9BQ19TSEVMTF9JTklUXSwJCVtBQ19ERUZVTihbX0xUX0FD X1NIRUxMX0lOSVRdKV0pCi0rbTRfaWZuZGVmKFtfTFRfQUNfU1lTX0xJQlBBVEhfQUlYXSwJW0FD X0RFRlVOKFtfTFRfQUNfU1lTX0xJQlBBVEhfQUlYXSldKQotK200X2lmbmRlZihbX0xUX1BST0df TFRNQUlOXSwJCVtBQ19ERUZVTihbX0xUX1BST0dfTFRNQUlOXSldKQotK200X2lmbmRlZihbX0xU X0FDX1RBR1ZBUl0sCQlbQUNfREVGVU4oW19MVF9BQ19UQUdWQVJdKV0pCi0rbTRfaWZuZGVmKFtB Q19MVERMX0VOQUJMRV9JTlNUQUxMXSwJW0FDX0RFRlVOKFtBQ19MVERMX0VOQUJMRV9JTlNUQUxM XSldKQotK200X2lmbmRlZihbQUNfTFRETF9QUkVPUEVOXSwJCVtBQ19ERUZVTihbQUNfTFRETF9Q UkVPUEVOXSldKQotK200X2lmbmRlZihbX0xUX0FDX1NZU19DT01QSUxFUl0sCVtBQ19ERUZVTihb X0xUX0FDX1NZU19DT01QSUxFUl0pXSkKLSttNF9pZm5kZWYoW19MVF9BQ19MT0NLXSwJCVtBQ19E RUZVTihbX0xUX0FDX0xPQ0tdKV0pCi0rbTRfaWZuZGVmKFtBQ19MSUJUT09MX1NZU19PTERfQVJD SElWRV0sCVtBQ19ERUZVTihbQUNfTElCVE9PTF9TWVNfT0xEX0FSQ0hJVkVdKV0pCi0rbTRfaWZu ZGVmKFtfTFRfQUNfVFJZX0RMT1BFTl9TRUxGXSwJW0FDX0RFRlVOKFtfTFRfQUNfVFJZX0RMT1BF Tl9TRUxGXSldKQotK200X2lmbmRlZihbQUNfTElCVE9PTF9QUk9HX0NDX0NfT10sCVtBQ19ERUZV TihbQUNfTElCVE9PTF9QUk9HX0NDX0NfT10pXSkKLSttNF9pZm5kZWYoW0FDX0xJQlRPT0xfU1lT X0hBUkRfTElOS19MT0NLU10sIFtBQ19ERUZVTihbQUNfTElCVE9PTF9TWVNfSEFSRF9MSU5LX0xP Q0tTXSldKQotK200X2lmbmRlZihbQUNfTElCVE9PTF9PQkpESVJdLAkJW0FDX0RFRlVOKFtBQ19M SUJUT09MX09CSkRJUl0pXSkKLSttNF9pZm5kZWYoW0FDX0xURExfT0JKRElSXSwJCVtBQ19ERUZV TihbQUNfTFRETF9PQkpESVJdKV0pCi0rbTRfaWZuZGVmKFtBQ19MSUJUT09MX1BST0dfTERfSEFS RENPREVfTElCUEFUSF0sIFtBQ19ERUZVTihbQUNfTElCVE9PTF9QUk9HX0xEX0hBUkRDT0RFX0xJ QlBBVEhdKV0pCi0rbTRfaWZuZGVmKFtBQ19MSUJUT09MX1NZU19MSUJfU1RSSVBdLAlbQUNfREVG VU4oW0FDX0xJQlRPT0xfU1lTX0xJQl9TVFJJUF0pXSkKLSttNF9pZm5kZWYoW0FDX1BBVEhfTUFH SUNdLAkJW0FDX0RFRlVOKFtBQ19QQVRIX01BR0lDXSldKQotK200X2lmbmRlZihbQUNfUFJPR19M RF9HTlVdLAkJW0FDX0RFRlVOKFtBQ19QUk9HX0xEX0dOVV0pXSkKLSttNF9pZm5kZWYoW0FDX1BS T0dfTERfUkVMT0FEX0ZMQUddLAlbQUNfREVGVU4oW0FDX1BST0dfTERfUkVMT0FEX0ZMQUddKV0p Ci0rbTRfaWZuZGVmKFtBQ19ERVBMSUJTX0NIRUNLX01FVEhPRF0sCVtBQ19ERUZVTihbQUNfREVQ TElCU19DSEVDS19NRVRIT0RdKV0pCi0rbTRfaWZuZGVmKFtBQ19MSUJUT09MX1BST0dfQ09NUElM RVJfTk9fUlRUSV0sIFtBQ19ERUZVTihbQUNfTElCVE9PTF9QUk9HX0NPTVBJTEVSX05PX1JUVEld KV0pCi0rbTRfaWZuZGVmKFtBQ19MSUJUT09MX1NZU19HTE9CQUxfU1lNQk9MX1BJUEVdLCBbQUNf REVGVU4oW0FDX0xJQlRPT0xfU1lTX0dMT0JBTF9TWU1CT0xfUElQRV0pXSkKLSttNF9pZm5kZWYo W0FDX0xJQlRPT0xfUFJPR19DT01QSUxFUl9QSUNdLCBbQUNfREVGVU4oW0FDX0xJQlRPT0xfUFJP R19DT01QSUxFUl9QSUNdKV0pCi0rbTRfaWZuZGVmKFtBQ19MSUJUT09MX1BST0dfTERfU0hMSUJT XSwJW0FDX0RFRlVOKFtBQ19MSUJUT09MX1BST0dfTERfU0hMSUJTXSldKQotK200X2lmbmRlZihb QUNfTElCVE9PTF9QT1NUREVQX1BSRURFUF0sCVtBQ19ERUZVTihbQUNfTElCVE9PTF9QT1NUREVQ X1BSRURFUF0pXSkKLSttNF9pZm5kZWYoW0xUX0FDX1BST0dfRUdSRVBdLAkJW0FDX0RFRlVOKFtM VF9BQ19QUk9HX0VHUkVQXSldKQotK200X2lmbmRlZihbTFRfQUNfUFJPR19TRURdLAkJW0FDX0RF RlVOKFtMVF9BQ19QUk9HX1NFRF0pXSkKLSttNF9pZm5kZWYoW19MVF9DQ19CQVNFTkFNRV0sCQlb QUNfREVGVU4oW19MVF9DQ19CQVNFTkFNRV0pXSkKLSttNF9pZm5kZWYoW19MVF9DT01QSUxFUl9C T0lMRVJQTEFURV0sCVtBQ19ERUZVTihbX0xUX0NPTVBJTEVSX0JPSUxFUlBMQVRFXSldKQotK200 X2lmbmRlZihbX0xUX0xJTktFUl9CT0lMRVJQTEFURV0sCVtBQ19ERUZVTihbX0xUX0xJTktFUl9C T0lMRVJQTEFURV0pXSkKLSttNF9pZm5kZWYoW19BQ19QUk9HX0xJQlRPT0xdLAkJW0FDX0RFRlVO KFtfQUNfUFJPR19MSUJUT09MXSldKQotK200X2lmbmRlZihbQUNfTElCVE9PTF9TRVRVUF0sCQlb QUNfREVGVU4oW0FDX0xJQlRPT0xfU0VUVVBdKV0pCi0rbTRfaWZuZGVmKFtfTFRfQUNfQ0hFQ0tf RExGQ05dLAkJW0FDX0RFRlVOKFtfTFRfQUNfQ0hFQ0tfRExGQ05dKV0pCi0rbTRfaWZuZGVmKFtB Q19MSUJUT09MX1NZU19EWU5BTUlDX0xJTktFUl0sCVtBQ19ERUZVTihbQUNfTElCVE9PTF9TWVNf RFlOQU1JQ19MSU5LRVJdKV0pCi0rbTRfaWZuZGVmKFtfTFRfQUNfVEFHQ09ORklHXSwJCVtBQ19E RUZVTihbX0xUX0FDX1RBR0NPTkZJR10pXSkKLSttNF9pZm5kZWYoW0FDX0RJU0FCTEVfRkFTVF9J TlNUQUxMXSwJW0FDX0RFRlVOKFtBQ19ESVNBQkxFX0ZBU1RfSU5TVEFMTF0pXSkKLSttNF9pZm5k ZWYoW19MVF9BQ19MQU5HX0NYWF0sCQlbQUNfREVGVU4oW19MVF9BQ19MQU5HX0NYWF0pXSkKLStt NF9pZm5kZWYoW19MVF9BQ19MQU5HX0Y3N10sCQlbQUNfREVGVU4oW19MVF9BQ19MQU5HX0Y3N10p XSkKLSttNF9pZm5kZWYoW19MVF9BQ19MQU5HX0dDSl0sCQlbQUNfREVGVU4oW19MVF9BQ19MQU5H X0dDSl0pXSkKLSttNF9pZm5kZWYoW0FDX0xJQlRPT0xfUkNdLAkJW0FDX0RFRlVOKFtBQ19MSUJU T09MX1JDXSldKQotK200X2lmbmRlZihbQUNfTElCVE9PTF9MQU5HX0NfQ09ORklHXSwJW0FDX0RF RlVOKFtBQ19MSUJUT09MX0xBTkdfQ19DT05GSUddKV0pCi0rbTRfaWZuZGVmKFtfTFRfQUNfTEFO R19DX0NPTkZJR10sCVtBQ19ERUZVTihbX0xUX0FDX0xBTkdfQ19DT05GSUddKV0pCi0rbTRfaWZu ZGVmKFtBQ19MSUJUT09MX0xBTkdfQ1hYX0NPTkZJR10sCVtBQ19ERUZVTihbQUNfTElCVE9PTF9M QU5HX0NYWF9DT05GSUddKV0pCi0rbTRfaWZuZGVmKFtfTFRfQUNfTEFOR19DWFhfQ09ORklHXSwJ W0FDX0RFRlVOKFtfTFRfQUNfTEFOR19DWFhfQ09ORklHXSldKQotK200X2lmbmRlZihbQUNfTElC VE9PTF9MQU5HX0Y3N19DT05GSUddLAlbQUNfREVGVU4oW0FDX0xJQlRPT0xfTEFOR19GNzdfQ09O RklHXSldKQotK200X2lmbmRlZihbX0xUX0FDX0xBTkdfRjc3X0NPTkZJR10sCVtBQ19ERUZVTihb X0xUX0FDX0xBTkdfRjc3X0NPTkZJR10pXSkKLSttNF9pZm5kZWYoW0FDX0xJQlRPT0xfTEFOR19H Q0pfQ09ORklHXSwJW0FDX0RFRlVOKFtBQ19MSUJUT09MX0xBTkdfR0NKX0NPTkZJR10pXSkKLStt NF9pZm5kZWYoW19MVF9BQ19MQU5HX0dDSl9DT05GSUddLAlbQUNfREVGVU4oW19MVF9BQ19MQU5H X0dDSl9DT05GSUddKV0pCi0rbTRfaWZuZGVmKFtBQ19MSUJUT09MX0xBTkdfUkNfQ09ORklHXSwJ W0FDX0RFRlVOKFtBQ19MSUJUT09MX0xBTkdfUkNfQ09ORklHXSldKQotK200X2lmbmRlZihbX0xU X0FDX0xBTkdfUkNfQ09ORklHXSwJW0FDX0RFRlVOKFtfTFRfQUNfTEFOR19SQ19DT05GSUddKV0p Ci0rbTRfaWZuZGVmKFtBQ19MSUJUT09MX0NPTkZJR10sCQlbQUNfREVGVU4oW0FDX0xJQlRPT0xf Q09ORklHXSldKQotK200X2lmbmRlZihbX0xUX0FDX0ZJTEVfTFRETExfQ10sCVtBQ19ERUZVTihb X0xUX0FDX0ZJTEVfTFRETExfQ10pXSkKLWRpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9jb25m aWcvbHRvcHRpb25zLm00IHNvY2ktMy4wLjBfdHJlcDMwMC9jb25maWcvbHRvcHRpb25zLm00Ci0t LS0gc29jaS0zLjAuMF80LXBhY2svY29uZmlnL2x0b3B0aW9ucy5tNAkxOTcwLTAxLTAxIDAxOjAw OjAwLjAwMDAwMDAwMCArMDEwMAotKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9jb25maWcvbHRvcHRp b25zLm00CTIwMDktMDUtMjMgMTA6MDE6NTUuMDAwMDAwMDAwICswMjAwCi1AQCAtMCwwICsxLDM2 OCBAQAotKyMgSGVscGVyIGZ1bmN0aW9ucyBmb3Igb3B0aW9uIGhhbmRsaW5nLiAgICAgICAgICAg ICAgICAgICAgLSotIEF1dG9jb25mIC0qLQotKyMKLSsjICAgQ29weXJpZ2h0IChDKSAyMDA0LCAy MDA1LCAyMDA3LCAyMDA4IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgotKyMgICBXcml0 dGVuIGJ5IEdhcnkgVi4gVmF1Z2hhbiwgMjAwNAotKyMKLSsjIFRoaXMgZmlsZSBpcyBmcmVlIHNv ZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uIGdpdmVzCi0rIyB1bmxpbWl0ZWQg cGVybWlzc2lvbiB0byBjb3B5IGFuZC9vciBkaXN0cmlidXRlIGl0LCB3aXRoIG9yIHdpdGhvdXQK LSsjIG1vZGlmaWNhdGlvbnMsIGFzIGxvbmcgYXMgdGhpcyBub3RpY2UgaXMgcHJlc2VydmVkLgot KwotKyMgc2VyaWFsIDYgbHRvcHRpb25zLm00Ci0rCi0rIyBUaGlzIGlzIHRvIGhlbHAgYWNsb2Nh bCBmaW5kIHRoZXNlIG1hY3JvcywgYXMgaXQgY2FuJ3Qgc2VlIG00X2RlZmluZS4KLStBQ19ERUZV TihbTFRPUFRJT05TX1ZFUlNJT05dLCBbbTRfaWYoWzFdKV0pCi0rCi0rCi0rIyBfTFRfTUFOR0xF X09QVElPTihNQUNSTy1OQU1FLCBPUFRJT04tTkFNRSkKLSsjIC0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotK200X2RlZmluZShbX0xUX01BTkdMRV9PUFRJT05dLAot K1tbX0xUX09QVElPTl9dbTRfYnBhdHN1YnN0KCQxX18kMiwgW1teYS16QS1aMC05X11dLCBbX10p XSkKLSsKLSsKLSsjIF9MVF9TRVRfT1BUSU9OKE1BQ1JPLU5BTUUsIE9QVElPTi1OQU1FKQotKyMg LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0rIyBTZXQgb3B0aW9uIE9Q VElPTi1OQU1FIGZvciBtYWNybyBNQUNSTy1OQU1FLCBhbmQgaWYgdGhlcmUgaXMgYQotKyMgbWF0 Y2hpbmcgaGFuZGxlciBkZWZpbmVkLCBkaXNwYXRjaCB0byBpdC4gIE90aGVyIE9QVElPTi1OQU1F cyBhcmUKLSsjIHNhdmVkIGFzIGEgZmxhZy4KLSttNF9kZWZpbmUoW19MVF9TRVRfT1BUSU9OXSwK LStbbTRfZGVmaW5lKF9MVF9NQU5HTEVfT1BUSU9OKFskMV0sIFskMl0pKWRubAotK200X2lmZGVm KF9MVF9NQU5HTEVfREVGVU4oWyQxXSwgWyQyXSksCi0rICAgICAgICBfTFRfTUFOR0xFX0RFRlVO KFskMV0sIFskMl0pLAotKyAgICBbbTRfd2FybmluZyhbVW5rbm93biAkMSBvcHRpb24gYCQyJ10p XSlbXWRubAotK10pCi0rCi0rCi0rIyBfTFRfSUZfT1BUSU9OKE1BQ1JPLU5BTUUsIE9QVElPTi1O QU1FLCBJRi1TRVQsIFtJRi1OT1QtU0VUXSkKLSsjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotKyMgRXhlY3V0ZSBJRi1TRVQgaWYg T1BUSU9OIGlzIHNldCwgSUYtTk9ULVNFVCBvdGhlcndpc2UuCi0rbTRfZGVmaW5lKFtfTFRfSUZf T1BUSU9OXSwKLStbbTRfaWZkZWYoX0xUX01BTkdMRV9PUFRJT04oWyQxXSwgWyQyXSksIFskM10s IFskNF0pXSkKLSsKLSsKLSsjIF9MVF9VTkxFU1NfT1BUSU9OUyhNQUNSTy1OQU1FLCBPUFRJT04t TElTVCwgSUYtTk9ULVNFVCkKLSsjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KLSsjIEV4ZWN1dGUgSUYtTk9ULVNFVCB1bmxlc3MgYWxsIG9w dGlvbnMgaW4gT1BUSU9OLUxJU1QgZm9yIE1BQ1JPLU5BTUUKLSsjIGFyZSBzZXQuCi0rbTRfZGVm aW5lKFtfTFRfVU5MRVNTX09QVElPTlNdLAotK1ttNF9mb3JlYWNoKFtfTFRfT3B0aW9uXSwgbTRf c3BsaXQobTRfbm9ybWFsaXplKFskMl0pKSwKLSsJICAgIFttNF9pZmRlZihfTFRfTUFOR0xFX09Q VElPTihbJDFdLCBfTFRfT3B0aW9uKSwKLSsJCSAgICAgIFttNF9kZWZpbmUoWyQwX2ZvdW5kXSld KV0pW11kbmwKLSttNF9pZmRlZihbJDBfZm91bmRdLCBbbTRfdW5kZWZpbmUoWyQwX2ZvdW5kXSld LCBbJDMKLStdKVtdZG5sCi0rXSkKLSsKLSsKLSsjIF9MVF9TRVRfT1BUSU9OUyhNQUNSTy1OQU1F LCBPUFRJT04tTElTVCkKLSsjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KLSsjIE9QVElPTi1MSVNUIGlzIGEgc3BhY2Utc2VwYXJhdGVkIGxpc3Qgb2YgTGlidG9vbCBv cHRpb25zIGFzc29jaWF0ZWQKLSsjIHdpdGggTUFDUk8tTkFNRS4gIElmIGFueSBPUFRJT04gaGFz IGEgbWF0Y2hpbmcgaGFuZGxlciBkZWNsYXJlZCB3aXRoCi0rIyBMVF9PUFRJT05fREVGSU5FLCBk aXNwYXRjaCB0byB0aGF0IG1hY3JvOyBvdGhlcndpc2UgY29tcGxhaW4gYWJvdXQKLSsjIHRoZSB1 bmtub3duIG9wdGlvbiBhbmQgZXhpdC4KLSttNF9kZWZ1bihbX0xUX1NFVF9PUFRJT05TXSwKLStb IyBTZXQgb3B0aW9ucwotK200X2ZvcmVhY2goW19MVF9PcHRpb25dLCBtNF9zcGxpdChtNF9ub3Jt YWxpemUoWyQyXSkpLAotKyAgICBbX0xUX1NFVF9PUFRJT04oWyQxXSwgX0xUX09wdGlvbildKQot KwotK200X2lmKFskMV0sW0xUX0lOSVRdLFsKLSsgIGRubAotKyAgZG5sIFNpbXBseSBzZXQgc29t ZSBkZWZhdWx0IHZhbHVlcyAoaS5lIG9mZikgaWYgYm9vbGVhbiBvcHRpb25zIHdlcmUgbm90Ci0r ICBkbmwgc3BlY2lmaWVkOgotKyAgX0xUX1VOTEVTU19PUFRJT05TKFtMVF9JTklUXSwgW2Rsb3Bl bl0sIFtlbmFibGVfZGxvcGVuPW5vCi0rICBdKQotKyAgX0xUX1VOTEVTU19PUFRJT05TKFtMVF9J TklUXSwgW3dpbjMyLWRsbF0sIFtlbmFibGVfd2luMzJfZGxsPW5vCi0rICBdKQotKyAgZG5sCi0r ICBkbmwgSWYgbm8gcmVmZXJlbmNlIHdhcyBtYWRlIHRvIHZhcmlvdXMgcGFpcnMgb2Ygb3Bwb3Np bmcgb3B0aW9ucywgdGhlbgotKyAgZG5sIHdlIHJ1biB0aGUgZGVmYXVsdCBtb2RlIGhhbmRsZXIg Zm9yIHRoZSBwYWlyLiAgRm9yIGV4YW1wbGUsIGlmIG5laXRoZXIKLSsgIGRubCBgc2hhcmVkJyBu b3IgYGRpc2FibGUtc2hhcmVkJyB3YXMgcGFzc2VkLCB3ZSBlbmFibGUgYnVpbGRpbmcgb2Ygc2hh cmVkCi0rICBkbmwgYXJjaGl2ZXMgYnkgZGVmYXVsdDoKLSsgIF9MVF9VTkxFU1NfT1BUSU9OUyhb TFRfSU5JVF0sIFtzaGFyZWQgZGlzYWJsZS1zaGFyZWRdLCBbX0xUX0VOQUJMRV9TSEFSRURdKQot KyAgX0xUX1VOTEVTU19PUFRJT05TKFtMVF9JTklUXSwgW3N0YXRpYyBkaXNhYmxlLXN0YXRpY10s IFtfTFRfRU5BQkxFX1NUQVRJQ10pCi0rICBfTFRfVU5MRVNTX09QVElPTlMoW0xUX0lOSVRdLCBb cGljLW9ubHkgbm8tcGljXSwgW19MVF9XSVRIX1BJQ10pCi0rICBfTFRfVU5MRVNTX09QVElPTlMo W0xUX0lOSVRdLCBbZmFzdC1pbnN0YWxsIGRpc2FibGUtZmFzdC1pbnN0YWxsXSwKLSsgIAkJICAg W19MVF9FTkFCTEVfRkFTVF9JTlNUQUxMXSkKLSsgIF0pCi0rXSkjIF9MVF9TRVRfT1BUSU9OUwot KwotKwotKyMjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjIwotKyMjIE1hY3Jv cyB0byBoYW5kbGUgTFRfSU5JVCBvcHRpb25zLiAjIwotKyMjIC0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLSAjIwotKwotKyMgX0xUX01BTkdMRV9ERUZVTihNQUNSTy1OQU1FLCBPUFRJ T04tTkFNRSkKLSsjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0r bTRfZGVmaW5lKFtfTFRfTUFOR0xFX0RFRlVOXSwKLStbW19MVF9PUFRJT05fREVGVU5fXW00X2Jw YXRzdWJzdChtNF90b3VwcGVyKFskMV9fJDJdKSwgW1teQS1aMC05X11dLCBbX10pXSkKLSsKLSsK LSsjIExUX09QVElPTl9ERUZJTkUoTUFDUk8tTkFNRSwgT1BUSU9OLU5BTUUsIENPREUpCi0rIyAt LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotK200X2RlZmlu ZShbTFRfT1BUSU9OX0RFRklORV0sCi0rW200X2RlZmluZShfTFRfTUFOR0xFX0RFRlVOKFskMV0s IFskMl0pLCBbJDNdKVtdZG5sCi0rXSkjIExUX09QVElPTl9ERUZJTkUKLSsKLSsKLSsjIGRsb3Bl bgotKyMgLS0tLS0tCi0rTFRfT1BUSU9OX0RFRklORShbTFRfSU5JVF0sIFtkbG9wZW5dLCBbZW5h YmxlX2Rsb3Blbj15ZXMKLStdKQotKwotK0FVX0RFRlVOKFtBQ19MSUJUT09MX0RMT1BFTl0sCi0r W19MVF9TRVRfT1BUSU9OKFtMVF9JTklUXSwgW2Rsb3Blbl0pCi0rQUNfRElBR05PU0UoW29ic29s ZXRlXSwKLStbJDA6IFJlbW92ZSB0aGlzIHdhcm5pbmcgYW5kIHRoZSBjYWxsIHRvIF9MVF9TRVRf T1BUSU9OIHdoZW4geW91Ci0rcHV0IHRoZSBgZGxvcGVuJyBvcHRpb24gaW50byBMVF9JTklUJ3Mg Zmlyc3QgcGFyYW1ldGVyLl0pCi0rXSkKLSsKLStkbmwgYWNsb2NhbC0xLjQgYmFja3dhcmRzIGNv bXBhdGliaWxpdHk6Ci0rZG5sIEFDX0RFRlVOKFtBQ19MSUJUT09MX0RMT1BFTl0sIFtdKQotKwot KwotKyMgd2luMzItZGxsCi0rIyAtLS0tLS0tLS0KLSsjIERlY2xhcmUgcGFja2FnZSBzdXBwb3J0 IGZvciBidWlsZGluZyB3aW4zMiBkbGwncy4KLStMVF9PUFRJT05fREVGSU5FKFtMVF9JTklUXSwg W3dpbjMyLWRsbF0sCi0rW2VuYWJsZV93aW4zMl9kbGw9eWVzCi0rCi0rY2FzZSAkaG9zdCBpbgot KyotKi1jeWd3aW4qIHwgKi0qLW1pbmd3KiB8ICotKi1wdzMyKiB8ICotY2VnY2MqKQotKyAgQUNf Q0hFQ0tfVE9PTChBUywgYXMsIGZhbHNlKQotKyAgQUNfQ0hFQ0tfVE9PTChETExUT09MLCBkbGx0 b29sLCBmYWxzZSkKLSsgIEFDX0NIRUNLX1RPT0woT0JKRFVNUCwgb2JqZHVtcCwgZmFsc2UpCi0r ICA7OwotK2VzYWMKLSsKLSt0ZXN0IC16ICIkQVMiICYmIEFTPWFzCi0rX0xUX0RFQ0woW10sIFtB U10sICAgICAgWzBdLCBbQXNzZW1ibGVyIHByb2dyYW1dKWRubAotKwotK3Rlc3QgLXogIiRETExU T09MIiAmJiBETExUT09MPWRsbHRvb2wKLStfTFRfREVDTChbXSwgW0RMTFRPT0xdLCBbMF0sIFtE TEwgY3JlYXRpb24gcHJvZ3JhbV0pZG5sCi0rCi0rdGVzdCAteiAiJE9CSkRVTVAiICYmIE9CSkRV TVA9b2JqZHVtcAotK19MVF9ERUNMKFtdLCBbT0JKRFVNUF0sIFswXSwgW09iamVjdCBkdW1wZXIg cHJvZ3JhbV0pZG5sCi0rXSkjIHdpbjMyLWRsbAotKwotK0FVX0RFRlVOKFtBQ19MSUJUT09MX1dJ TjMyX0RMTF0sCi0rW0FDX1JFUVVJUkUoW0FDX0NBTk9OSUNBTF9IT1NUXSlkbmwKLStfTFRfU0VU X09QVElPTihbTFRfSU5JVF0sIFt3aW4zMi1kbGxdKQotK0FDX0RJQUdOT1NFKFtvYnNvbGV0ZV0s Ci0rWyQwOiBSZW1vdmUgdGhpcyB3YXJuaW5nIGFuZCB0aGUgY2FsbCB0byBfTFRfU0VUX09QVElP TiB3aGVuIHlvdQotK3B1dCB0aGUgYHdpbjMyLWRsbCcgb3B0aW9uIGludG8gTFRfSU5JVCdzIGZp cnN0IHBhcmFtZXRlci5dKQotK10pCi0rCi0rZG5sIGFjbG9jYWwtMS40IGJhY2t3YXJkcyBjb21w YXRpYmlsaXR5OgotK2RubCBBQ19ERUZVTihbQUNfTElCVE9PTF9XSU4zMl9ETExdLCBbXSkKLSsK LSsKLSsjIF9MVF9FTkFCTEVfU0hBUkVEKFtERUZBVUxUXSkKLSsjIC0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KLSsjIGltcGxlbWVudCB0aGUgLS1lbmFibGUtc2hhcmVkIGZsYWcsIGFuZCBz dXBwb3J0cyB0aGUgYHNoYXJlZCcgYW5kCi0rIyBgZGlzYWJsZS1zaGFyZWQnIExUX0lOSVQgb3B0 aW9ucy4KLSsjIERFRkFVTFQgaXMgZWl0aGVyIGB5ZXMnIG9yIGBubycuICBJZiBvbWl0dGVkLCBp dCBkZWZhdWx0cyB0byBgeWVzJy4KLSttNF9kZWZpbmUoW19MVF9FTkFCTEVfU0hBUkVEXSwKLStb bTRfZGVmaW5lKFtfTFRfRU5BQkxFX1NIQVJFRF9ERUZBVUxUXSwgW200X2lmKCQxLCBubywgbm8s IHllcyldKWRubAotK0FDX0FSR19FTkFCTEUoW3NoYXJlZF0sCi0rICAgIFtBU19IRUxQX1NUUklO RyhbLS1lbmFibGUtc2hhcmVkQDw6QD1QS0dTQDo+QF0sCi0rCVtidWlsZCBzaGFyZWQgbGlicmFy aWVzIEA8OkBkZWZhdWx0PV1fTFRfRU5BQkxFX1NIQVJFRF9ERUZBVUxUW0A6PkBdKV0sCi0rICAg IFtwPSR7UEFDS0FHRS1kZWZhdWx0fQotKyAgICBjYXNlICRlbmFibGV2YWwgaW4KLSsgICAgeWVz KSBlbmFibGVfc2hhcmVkPXllcyA7OwotKyAgICBubykgZW5hYmxlX3NoYXJlZD1ubyA7OwotKyAg ICAqKQotKyAgICAgIGVuYWJsZV9zaGFyZWQ9bm8KLSsgICAgICAjIExvb2sgYXQgdGhlIGFyZ3Vt ZW50IHdlIGdvdC4gIFdlIHVzZSBhbGwgdGhlIGNvbW1vbiBsaXN0IHNlcGFyYXRvcnMuCi0rICAg ICAgbHRfc2F2ZV9pZnM9IiRJRlMiOyBJRlM9IiR7SUZTfSRQQVRIX1NFUEFSQVRPUiwiCi0rICAg ICAgZm9yIHBrZyBpbiAkZW5hYmxldmFsOyBkbwotKwlJRlM9IiRsdF9zYXZlX2lmcyIKLSsJaWYg dGVzdCAiWCRwa2ciID0gIlgkcCI7IHRoZW4KLSsJICBlbmFibGVfc2hhcmVkPXllcwotKwlmaQot KyAgICAgIGRvbmUKLSsgICAgICBJRlM9IiRsdF9zYXZlX2lmcyIKLSsgICAgICA7OwotKyAgICBl c2FjXSwKLSsgICAgW2VuYWJsZV9zaGFyZWQ9XV9MVF9FTkFCTEVfU0hBUkVEX0RFRkFVTFQpCi0r Ci0rICAgIF9MVF9ERUNMKFtidWlsZF9saWJ0b29sX2xpYnNdLCBbZW5hYmxlX3NoYXJlZF0sIFsw XSwKLSsJW1doZXRoZXIgb3Igbm90IHRvIGJ1aWxkIHNoYXJlZCBsaWJyYXJpZXNdKQotK10pIyBf TFRfRU5BQkxFX1NIQVJFRAotKwotK0xUX09QVElPTl9ERUZJTkUoW0xUX0lOSVRdLCBbc2hhcmVk XSwgW19MVF9FTkFCTEVfU0hBUkVEKFt5ZXNdKV0pCi0rTFRfT1BUSU9OX0RFRklORShbTFRfSU5J VF0sIFtkaXNhYmxlLXNoYXJlZF0sIFtfTFRfRU5BQkxFX1NIQVJFRChbbm9dKV0pCi0rCi0rIyBP bGQgbmFtZXM6Ci0rQUNfREVGVU4oW0FDX0VOQUJMRV9TSEFSRURdLAotK1tfTFRfU0VUX09QVElP TihbTFRfSU5JVF0sIG00X2lmKFskMV0sIFtub10sIFtkaXNhYmxlLV0pW3NoYXJlZF0pCi0rXSkK LSsKLStBQ19ERUZVTihbQUNfRElTQUJMRV9TSEFSRURdLAotK1tfTFRfU0VUX09QVElPTihbTFRf SU5JVF0sIFtkaXNhYmxlLXNoYXJlZF0pCi0rXSkKLSsKLStBVV9ERUZVTihbQU1fRU5BQkxFX1NI QVJFRF0sIFtBQ19FTkFCTEVfU0hBUkVEKCRAKV0pCi0rQVVfREVGVU4oW0FNX0RJU0FCTEVfU0hB UkVEXSwgW0FDX0RJU0FCTEVfU0hBUkVEKCRAKV0pCi0rCi0rZG5sIGFjbG9jYWwtMS40IGJhY2t3 YXJkcyBjb21wYXRpYmlsaXR5OgotK2RubCBBQ19ERUZVTihbQU1fRU5BQkxFX1NIQVJFRF0sIFtd KQotK2RubCBBQ19ERUZVTihbQU1fRElTQUJMRV9TSEFSRURdLCBbXSkKLSsKLSsKLSsKLSsjIF9M VF9FTkFCTEVfU1RBVElDKFtERUZBVUxUXSkKLSsjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KLSsjIGltcGxlbWVudCB0aGUgLS1lbmFibGUtc3RhdGljIGZsYWcsIGFuZCBzdXBwb3J0IHRo ZSBgc3RhdGljJyBhbmQKLSsjIGBkaXNhYmxlLXN0YXRpYycgTFRfSU5JVCBvcHRpb25zLgotKyMg REVGQVVMVCBpcyBlaXRoZXIgYHllcycgb3IgYG5vJy4gIElmIG9taXR0ZWQsIGl0IGRlZmF1bHRz IHRvIGB5ZXMnLgotK200X2RlZmluZShbX0xUX0VOQUJMRV9TVEFUSUNdLAotK1ttNF9kZWZpbmUo W19MVF9FTkFCTEVfU1RBVElDX0RFRkFVTFRdLCBbbTRfaWYoJDEsIG5vLCBubywgeWVzKV0pZG5s Ci0rQUNfQVJHX0VOQUJMRShbc3RhdGljXSwKLSsgICAgW0FTX0hFTFBfU1RSSU5HKFstLWVuYWJs ZS1zdGF0aWNAPDpAPVBLR1NAOj5AXSwKLSsJW2J1aWxkIHN0YXRpYyBsaWJyYXJpZXMgQDw6QGRl ZmF1bHQ9XV9MVF9FTkFCTEVfU1RBVElDX0RFRkFVTFRbQDo+QF0pXSwKLSsgICAgW3A9JHtQQUNL QUdFLWRlZmF1bHR9Ci0rICAgIGNhc2UgJGVuYWJsZXZhbCBpbgotKyAgICB5ZXMpIGVuYWJsZV9z dGF0aWM9eWVzIDs7Ci0rICAgIG5vKSBlbmFibGVfc3RhdGljPW5vIDs7Ci0rICAgICopCi0rICAg ICBlbmFibGVfc3RhdGljPW5vCi0rICAgICAgIyBMb29rIGF0IHRoZSBhcmd1bWVudCB3ZSBnb3Qu ICBXZSB1c2UgYWxsIHRoZSBjb21tb24gbGlzdCBzZXBhcmF0b3JzLgotKyAgICAgIGx0X3NhdmVf aWZzPSIkSUZTIjsgSUZTPSIke0lGU30kUEFUSF9TRVBBUkFUT1IsIgotKyAgICAgIGZvciBwa2cg aW4gJGVuYWJsZXZhbDsgZG8KLSsJSUZTPSIkbHRfc2F2ZV9pZnMiCi0rCWlmIHRlc3QgIlgkcGtn IiA9ICJYJHAiOyB0aGVuCi0rCSAgZW5hYmxlX3N0YXRpYz15ZXMKLSsJZmkKLSsgICAgICBkb25l Ci0rICAgICAgSUZTPSIkbHRfc2F2ZV9pZnMiCi0rICAgICAgOzsKLSsgICAgZXNhY10sCi0rICAg IFtlbmFibGVfc3RhdGljPV1fTFRfRU5BQkxFX1NUQVRJQ19ERUZBVUxUKQotKwotKyAgICBfTFRf REVDTChbYnVpbGRfb2xkX2xpYnNdLCBbZW5hYmxlX3N0YXRpY10sIFswXSwKLSsJW1doZXRoZXIg b3Igbm90IHRvIGJ1aWxkIHN0YXRpYyBsaWJyYXJpZXNdKQotK10pIyBfTFRfRU5BQkxFX1NUQVRJ QwotKwotK0xUX09QVElPTl9ERUZJTkUoW0xUX0lOSVRdLCBbc3RhdGljXSwgW19MVF9FTkFCTEVf U1RBVElDKFt5ZXNdKV0pCi0rTFRfT1BUSU9OX0RFRklORShbTFRfSU5JVF0sIFtkaXNhYmxlLXN0 YXRpY10sIFtfTFRfRU5BQkxFX1NUQVRJQyhbbm9dKV0pCi0rCi0rIyBPbGQgbmFtZXM6Ci0rQUNf REVGVU4oW0FDX0VOQUJMRV9TVEFUSUNdLAotK1tfTFRfU0VUX09QVElPTihbTFRfSU5JVF0sIG00 X2lmKFskMV0sIFtub10sIFtkaXNhYmxlLV0pW3N0YXRpY10pCi0rXSkKLSsKLStBQ19ERUZVTihb QUNfRElTQUJMRV9TVEFUSUNdLAotK1tfTFRfU0VUX09QVElPTihbTFRfSU5JVF0sIFtkaXNhYmxl LXN0YXRpY10pCi0rXSkKLSsKLStBVV9ERUZVTihbQU1fRU5BQkxFX1NUQVRJQ10sIFtBQ19FTkFC TEVfU1RBVElDKCRAKV0pCi0rQVVfREVGVU4oW0FNX0RJU0FCTEVfU1RBVElDXSwgW0FDX0RJU0FC TEVfU1RBVElDKCRAKV0pCi0rCi0rZG5sIGFjbG9jYWwtMS40IGJhY2t3YXJkcyBjb21wYXRpYmls aXR5OgotK2RubCBBQ19ERUZVTihbQU1fRU5BQkxFX1NUQVRJQ10sIFtdKQotK2RubCBBQ19ERUZV TihbQU1fRElTQUJMRV9TVEFUSUNdLCBbXSkKLSsKLSsKLSsKLSsjIF9MVF9FTkFCTEVfRkFTVF9J TlNUQUxMKFtERUZBVUxUXSkKLSsjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K LSsjIGltcGxlbWVudCB0aGUgLS1lbmFibGUtZmFzdC1pbnN0YWxsIGZsYWcsIGFuZCBzdXBwb3J0 IHRoZSBgZmFzdC1pbnN0YWxsJwotKyMgYW5kIGBkaXNhYmxlLWZhc3QtaW5zdGFsbCcgTFRfSU5J VCBvcHRpb25zLgotKyMgREVGQVVMVCBpcyBlaXRoZXIgYHllcycgb3IgYG5vJy4gIElmIG9taXR0 ZWQsIGl0IGRlZmF1bHRzIHRvIGB5ZXMnLgotK200X2RlZmluZShbX0xUX0VOQUJMRV9GQVNUX0lO U1RBTExdLAotK1ttNF9kZWZpbmUoW19MVF9FTkFCTEVfRkFTVF9JTlNUQUxMX0RFRkFVTFRdLCBb bTRfaWYoJDEsIG5vLCBubywgeWVzKV0pZG5sCi0rQUNfQVJHX0VOQUJMRShbZmFzdC1pbnN0YWxs XSwKLSsgICAgW0FTX0hFTFBfU1RSSU5HKFstLWVuYWJsZS1mYXN0LWluc3RhbGxAPDpAPVBLR1NA Oj5AXSwKLSsgICAgW29wdGltaXplIGZvciBmYXN0IGluc3RhbGxhdGlvbiBAPDpAZGVmYXVsdD1d X0xUX0VOQUJMRV9GQVNUX0lOU1RBTExfREVGQVVMVFtAOj5AXSldLAotKyAgICBbcD0ke1BBQ0tB R0UtZGVmYXVsdH0KLSsgICAgY2FzZSAkZW5hYmxldmFsIGluCi0rICAgIHllcykgZW5hYmxlX2Zh c3RfaW5zdGFsbD15ZXMgOzsKLSsgICAgbm8pIGVuYWJsZV9mYXN0X2luc3RhbGw9bm8gOzsKLSsg ICAgKikKLSsgICAgICBlbmFibGVfZmFzdF9pbnN0YWxsPW5vCi0rICAgICAgIyBMb29rIGF0IHRo ZSBhcmd1bWVudCB3ZSBnb3QuICBXZSB1c2UgYWxsIHRoZSBjb21tb24gbGlzdCBzZXBhcmF0b3Jz LgotKyAgICAgIGx0X3NhdmVfaWZzPSIkSUZTIjsgSUZTPSIke0lGU30kUEFUSF9TRVBBUkFUT1Is IgotKyAgICAgIGZvciBwa2cgaW4gJGVuYWJsZXZhbDsgZG8KLSsJSUZTPSIkbHRfc2F2ZV9pZnMi Ci0rCWlmIHRlc3QgIlgkcGtnIiA9ICJYJHAiOyB0aGVuCi0rCSAgZW5hYmxlX2Zhc3RfaW5zdGFs bD15ZXMKLSsJZmkKLSsgICAgICBkb25lCi0rICAgICAgSUZTPSIkbHRfc2F2ZV9pZnMiCi0rICAg ICAgOzsKLSsgICAgZXNhY10sCi0rICAgIFtlbmFibGVfZmFzdF9pbnN0YWxsPV1fTFRfRU5BQkxF X0ZBU1RfSU5TVEFMTF9ERUZBVUxUKQotKwotK19MVF9ERUNMKFtmYXN0X2luc3RhbGxdLCBbZW5h YmxlX2Zhc3RfaW5zdGFsbF0sIFswXSwKLSsJIFtXaGV0aGVyIG9yIG5vdCB0byBvcHRpbWl6ZSBm b3IgZmFzdCBpbnN0YWxsYXRpb25dKWRubAotK10pIyBfTFRfRU5BQkxFX0ZBU1RfSU5TVEFMTAot KwotK0xUX09QVElPTl9ERUZJTkUoW0xUX0lOSVRdLCBbZmFzdC1pbnN0YWxsXSwgW19MVF9FTkFC TEVfRkFTVF9JTlNUQUxMKFt5ZXNdKV0pCi0rTFRfT1BUSU9OX0RFRklORShbTFRfSU5JVF0sIFtk aXNhYmxlLWZhc3QtaW5zdGFsbF0sIFtfTFRfRU5BQkxFX0ZBU1RfSU5TVEFMTChbbm9dKV0pCi0r Ci0rIyBPbGQgbmFtZXM6Ci0rQVVfREVGVU4oW0FDX0VOQUJMRV9GQVNUX0lOU1RBTExdLAotK1tf TFRfU0VUX09QVElPTihbTFRfSU5JVF0sIG00X2lmKFskMV0sIFtub10sIFtkaXNhYmxlLV0pW2Zh c3QtaW5zdGFsbF0pCi0rQUNfRElBR05PU0UoW29ic29sZXRlXSwKLStbJDA6IFJlbW92ZSB0aGlz IHdhcm5pbmcgYW5kIHRoZSBjYWxsIHRvIF9MVF9TRVRfT1BUSU9OIHdoZW4geW91IHB1dAotK3Ro ZSBgZmFzdC1pbnN0YWxsJyBvcHRpb24gaW50byBMVF9JTklUJ3MgZmlyc3QgcGFyYW1ldGVyLl0p Ci0rXSkKLSsKLStBVV9ERUZVTihbQUNfRElTQUJMRV9GQVNUX0lOU1RBTExdLAotK1tfTFRfU0VU X09QVElPTihbTFRfSU5JVF0sIFtkaXNhYmxlLWZhc3QtaW5zdGFsbF0pCi0rQUNfRElBR05PU0Uo W29ic29sZXRlXSwKLStbJDA6IFJlbW92ZSB0aGlzIHdhcm5pbmcgYW5kIHRoZSBjYWxsIHRvIF9M VF9TRVRfT1BUSU9OIHdoZW4geW91IHB1dAotK3RoZSBgZGlzYWJsZS1mYXN0LWluc3RhbGwnIG9w dGlvbiBpbnRvIExUX0lOSVQncyBmaXJzdCBwYXJhbWV0ZXIuXSkKLStdKQotKwotK2RubCBhY2xv Y2FsLTEuNCBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eToKLStkbmwgQUNfREVGVU4oW0FDX0VOQUJM RV9GQVNUX0lOU1RBTExdLCBbXSkKLStkbmwgQUNfREVGVU4oW0FNX0RJU0FCTEVfRkFTVF9JTlNU QUxMXSwgW10pCi0rCi0rCi0rIyBfTFRfV0lUSF9QSUMoW01PREVdKQotKyMgLS0tLS0tLS0tLS0t LS0tLS0tLS0KLSsjIGltcGxlbWVudCB0aGUgLS13aXRoLXBpYyBmbGFnLCBhbmQgc3VwcG9ydCB0 aGUgYHBpYy1vbmx5JyBhbmQgYG5vLXBpYycKLSsjIExUX0lOSVQgb3B0aW9ucy4KLSsjIE1PREUg aXMgZWl0aGVyIGB5ZXMnIG9yIGBubycuICBJZiBvbWl0dGVkLCBpdCBkZWZhdWx0cyB0byBgYm90 aCcuCi0rbTRfZGVmaW5lKFtfTFRfV0lUSF9QSUNdLAotK1tBQ19BUkdfV0lUSChbcGljXSwKLSsg ICAgW0FTX0hFTFBfU1RSSU5HKFstLXdpdGgtcGljXSwKLSsJW3RyeSB0byB1c2Ugb25seSBQSUMv bm9uLVBJQyBvYmplY3RzIEA8OkBkZWZhdWx0PXVzZSBib3RoQDo+QF0pXSwKLSsgICAgW3BpY19t b2RlPSIkd2l0aHZhbCJdLAotKyAgICBbcGljX21vZGU9ZGVmYXVsdF0pCi0rCi0rdGVzdCAteiAi JHBpY19tb2RlIiAmJiBwaWNfbW9kZT1tNF9kZWZhdWx0KFskMV0sIFtkZWZhdWx0XSkKLSsKLStf TFRfREVDTChbXSwgW3BpY19tb2RlXSwgWzBdLCBbV2hhdCB0eXBlIG9mIG9iamVjdHMgdG8gYnVp bGRdKWRubAotK10pIyBfTFRfV0lUSF9QSUMKLSsKLStMVF9PUFRJT05fREVGSU5FKFtMVF9JTklU XSwgW3BpYy1vbmx5XSwgW19MVF9XSVRIX1BJQyhbeWVzXSldKQotK0xUX09QVElPTl9ERUZJTkUo W0xUX0lOSVRdLCBbbm8tcGljXSwgW19MVF9XSVRIX1BJQyhbbm9dKV0pCi0rCi0rIyBPbGQgbmFt ZToKLStBVV9ERUZVTihbQUNfTElCVE9PTF9QSUNNT0RFXSwKLStbX0xUX1NFVF9PUFRJT04oW0xU X0lOSVRdLCBbcGljLW9ubHldKQotK0FDX0RJQUdOT1NFKFtvYnNvbGV0ZV0sCi0rWyQwOiBSZW1v dmUgdGhpcyB3YXJuaW5nIGFuZCB0aGUgY2FsbCB0byBfTFRfU0VUX09QVElPTiB3aGVuIHlvdQot K3B1dCB0aGUgYHBpYy1vbmx5JyBvcHRpb24gaW50byBMVF9JTklUJ3MgZmlyc3QgcGFyYW1ldGVy Ll0pCi0rXSkKLSsKLStkbmwgYWNsb2NhbC0xLjQgYmFja3dhcmRzIGNvbXBhdGliaWxpdHk6Ci0r ZG5sIEFDX0RFRlVOKFtBQ19MSUJUT09MX1BJQ01PREVdLCBbXSkKLSsKLSsjIyAtLS0tLS0tLS0t LS0tLS0tLSAjIwotKyMjIExURExfSU5JVCBPcHRpb25zICMjCi0rIyMgLS0tLS0tLS0tLS0tLS0t LS0gIyMKLSsKLSttNF9kZWZpbmUoW19MVERMX01PREVdLCBbXSkKLStMVF9PUFRJT05fREVGSU5F KFtMVERMX0lOSVRdLCBbbm9ucmVjdXJzaXZlXSwKLSsJCSBbbTRfZGVmaW5lKFtfTFRETF9NT0RF XSwgW25vbnJlY3Vyc2l2ZV0pXSkKLStMVF9PUFRJT05fREVGSU5FKFtMVERMX0lOSVRdLCBbcmVj dXJzaXZlXSwKLSsJCSBbbTRfZGVmaW5lKFtfTFRETF9NT0RFXSwgW3JlY3Vyc2l2ZV0pXSkKLStM VF9PUFRJT05fREVGSU5FKFtMVERMX0lOSVRdLCBbc3VicHJvamVjdF0sCi0rCQkgW200X2RlZmlu ZShbX0xURExfTU9ERV0sIFtzdWJwcm9qZWN0XSldKQotKwotK200X2RlZmluZShbX0xURExfVFlQ RV0sIFtdKQotK0xUX09QVElPTl9ERUZJTkUoW0xURExfSU5JVF0sIFtpbnN0YWxsYWJsZV0sCi0r CQkgW200X2RlZmluZShbX0xURExfVFlQRV0sIFtpbnN0YWxsYWJsZV0pXSkKLStMVF9PUFRJT05f REVGSU5FKFtMVERMX0lOSVRdLCBbY29udmVuaWVuY2VdLAotKwkJIFttNF9kZWZpbmUoW19MVERM X1RZUEVdLCBbY29udmVuaWVuY2VdKV0pCi1kaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svY29u ZmlnL2x0c3VnYXIubTQgc29jaS0zLjAuMF90cmVwMzAwL2NvbmZpZy9sdHN1Z2FyLm00Ci0tLS0g c29jaS0zLjAuMF80LXBhY2svY29uZmlnL2x0c3VnYXIubTQJMTk3MC0wMS0wMSAwMTowMDowMC4w MDAwMDAwMDAgKzAxMDAKLSsrKyBzb2NpLTMuMC4wX3RyZXAzMDAvY29uZmlnL2x0c3VnYXIubTQJ MjAwOS0wNS0yMyAxMDowMTo1Ni4wMDAwMDAwMDAgKzAyMDAKLUBAIC0wLDAgKzEsMTIzIEBACi0r IyBsdHN1Z2FyLm00IC0tIGxpYnRvb2wgbTQgYmFzZSBsYXllci4gICAgICAgICAgICAgICAgICAg ICAgICAgLSotQXV0b2NvbmYtKi0KLSsjCi0rIyBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIw MDcsIDIwMDggRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCi0rIyBXcml0dGVuIGJ5IEdh cnkgVi4gVmF1Z2hhbiwgMjAwNAotKyMKLSsjIFRoaXMgZmlsZSBpcyBmcmVlIHNvZnR3YXJlOyB0 aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uIGdpdmVzCi0rIyB1bmxpbWl0ZWQgcGVybWlzc2lv biB0byBjb3B5IGFuZC9vciBkaXN0cmlidXRlIGl0LCB3aXRoIG9yIHdpdGhvdXQKLSsjIG1vZGlm aWNhdGlvbnMsIGFzIGxvbmcgYXMgdGhpcyBub3RpY2UgaXMgcHJlc2VydmVkLgotKwotKyMgc2Vy aWFsIDYgbHRzdWdhci5tNAotKwotKyMgVGhpcyBpcyB0byBoZWxwIGFjbG9jYWwgZmluZCB0aGVz ZSBtYWNyb3MsIGFzIGl0IGNhbid0IHNlZSBtNF9kZWZpbmUuCi0rQUNfREVGVU4oW0xUU1VHQVJf VkVSU0lPTl0sIFttNF9pZihbMC4xXSldKQotKwotKwotKyMgbHRfam9pbihTRVAsIEFSRzEsIFtB UkcyLi4uXSkKLSsjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0rIyBQcm9kdWNlIEFS RzFTRVBBUkcyLi4uU0VQQVJHbiwgb21pdHRpbmcgW10gYXJndW1lbnRzIGFuZCB0aGVpcgotKyMg YXNzb2NpYXRlZCBzZXBhcmF0b3IuCi0rIyBOZWVkZWQgdW50aWwgd2UgY2FuIHJlbHkgb24gbTRf am9pbiBmcm9tIEF1dG9jb25mIDIuNjIsIHNpbmNlIGFsbCBlYXJsaWVyCi0rIyB2ZXJzaW9ucyBp biBtNHN1Z2FyIGhhZCBidWdzLgotK200X2RlZmluZShbbHRfam9pbl0sCi0rW200X2lmKFskI10s IFsxXSwgW10sCi0rICAgICAgIFskI10sIFsyXSwgW1skMl1dLAotKyAgICAgICBbbTRfaWYoWyQy XSwgW10sIFtdLCBbWyQyXV9dKSQwKFskMV0sIG00X3NoaWZ0KG00X3NoaWZ0KCRAKSkpXSldKQot K200X2RlZmluZShbX2x0X2pvaW5dLAotK1ttNF9pZihbJCMkMl0sIFsyXSwgW10sCi0rICAgICAg IFttNF9pZihbJDJdLCBbXSwgW10sIFtbJDEkMl1dKSQwKFskMV0sIG00X3NoaWZ0KG00X3NoaWZ0 KCRAKSkpXSldKQotKwotKwotKyMgbHRfY2FyKExJU1QpCi0rIyBsdF9jZHIoTElTVCkKLSsjIC0t LS0tLS0tLS0tLQotKyMgTWFuaXB1bGF0ZSBtNCBsaXN0cy4KLSsjIFRoZXNlIG1hY3JvcyBhcmUg bmVjZXNzYXJ5IGFzIGxvbmcgYXMgd2lsbCBzdGlsbCBuZWVkIHRvIHN1cHBvcnQKLSsjIEF1dG9j b25mLTIuNTkgd2hpY2ggcXVvdGVzIGRpZmZlcmVudGx5LgotK200X2RlZmluZShbbHRfY2FyXSwg W1skMV1dKQotK200X2RlZmluZShbbHRfY2RyXSwKLStbbTRfaWYoWyQjXSwgMCwgW200X2ZhdGFs KFskMDogY2Fubm90IGJlIGNhbGxlZCB3aXRob3V0IGFyZ3VtZW50c10pXSwKLSsgICAgICAgWyQj XSwgMSwgW10sCi0rICAgICAgIFttNF9kcXVvdGUobTRfc2hpZnQoJEApKV0pXSkKLSttNF9kZWZp bmUoW2x0X3VucXVvdGVdLCAkMSkKLSsKLSsKLSsjIGx0X2FwcGVuZChNQUNSTy1OQU1FLCBTVFJJ TkcsIFtTRVBBUkFUT1JdKQotKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCi0rIyBSZWRlZmluZSBNQUNSTy1OQU1FIHRvIGhvbGQgaXRzIGZvcm1lciBjb250ZW50 IHBsdXMgYFNFUEFSQVRPUidgU1RSSU5HJy4KLSsjIE5vdGUgdGhhdCBuZWl0aGVyIFNFUEFSQVRP UiBub3IgU1RSSU5HIGFyZSBleHBhbmRlZDsgdGhleSBhcmUgYXBwZW5kZWQKLSsjIHRvIE1BQ1JP LU5BTUUgYXMgaXMgKGxlYXZpbmcgdGhlIGV4cGFuc2lvbiBmb3Igd2hlbiBNQUNSTy1OQU1FIGlz IGludm9rZWQpLgotKyMgTm8gU0VQQVJBVE9SIGlzIG91dHB1dCBpZiBNQUNSTy1OQU1FIHdhcyBw cmV2aW91c2x5IHVuZGVmaW5lZCAoZGlmZmVyZW50Ci0rIyB0aGFuIGRlZmluZWQgYW5kIGVtcHR5 KS4KLSsjCi0rIyBUaGlzIG1hY3JvIGlzIG5lZWRlZCB1bnRpbCB3ZSBjYW4gcmVseSBvbiBBdXRv Y29uZiAyLjYyLCBzaW5jZSBlYXJsaWVyCi0rIyB2ZXJzaW9ucyBvZiBtNHN1Z2FyIG1pc3Rha2Vu bHkgZXhwYW5kZWQgU0VQQVJBVE9SIGJ1dCBub3QgU1RSSU5HLgotK200X2RlZmluZShbbHRfYXBw ZW5kXSwKLStbbTRfZGVmaW5lKFskMV0sCi0rCSAgIG00X2lmZGVmKFskMV0sIFttNF9kZWZuKFsk MV0pWyQzXV0pWyQyXSldKQotKwotKwotKwotKyMgbHRfY29tYmluZShTRVAsIFBSRUZJWC1MSVNU LCBJTkZJWCwgU1VGRklYMSwgW1NVRkZJWDIuLi5dKQotKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotKyMgUHJvZHVjZSBhIFNFUCBk ZWxpbWl0ZWQgbGlzdCBvZiBhbGwgcGFpcmVkIGNvbWJpbmF0aW9ucyBvZiBlbGVtZW50cyBvZgot KyMgUFJFRklYLUxJU1Qgd2l0aCBTVUZGSVgxIHRocm91Z2ggU1VGRklYbi4gIEVhY2ggZWxlbWVu dCBvZiB0aGUgbGlzdAotKyMgaGFzIHRoZSBmb3JtIFBSRUZJWG1JTkZJWFNVRkZJWG4uCi0rIyBO ZWVkZWQgdW50aWwgd2UgY2FuIHJlbHkgb24gbTRfY29tYmluZSBhZGRlZCBpbiBBdXRvY29uZiAy LjYyLgotK200X2RlZmluZShbbHRfY29tYmluZV0sCi0rW200X2lmKG00X2V2YWwoWyQjID4gM10p LCBbMV0sCi0rICAgICAgIFttNF9wdXNoZGVmKFtfTHRfc2VwXSwgW200X2RlZmluZShbX0x0X3Nl cF0sIG00X2RlZm4oW2x0X2Nhcl0pKV0pXV1kbmwKLStbW200X2ZvcmVhY2goW19MdF9wcmVmaXhd LCBbJDJdLAotKwkgICAgIFttNF9mb3JlYWNoKFtfTHRfc3VmZml4XSwKLSsJCV1tNF9kcXVvdGUo bTRfZHF1b3RlKG00X3NoaWZ0KG00X3NoaWZ0KG00X3NoaWZ0KCRAKSkpKSlbLAotKwlbX0x0X3Nl cChbJDFdKVtdbTRfZGVmbihbX0x0X3ByZWZpeF0pWyQzXW00X2RlZm4oW19MdF9zdWZmaXhdKV0p XSldKV0pCi0rCi0rCi0rIyBsdF9pZl9hcHBlbmRfdW5pcShNQUNSTy1OQU1FLCBWQVJOQU1FLCBb U0VQQVJBVE9SXSwgW1VOSVFdLCBbTk9ULVVOSVFdKQotKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSsjIElm ZiBNQUNSTy1OQU1FIGRvZXMgbm90IHlldCBjb250YWluIFZBUk5BTUUsIHRoZW4gYXBwZW5kIGl0 IChkZWxpbWl0ZWQKLSsjIGJ5IFNFUEFSQVRPUiBpZiBzdXBwbGllZCkgYW5kIGV4cGFuZCBVTklR LCBlbHNlIE5PVC1VTklRLgotK200X2RlZmluZShbbHRfaWZfYXBwZW5kX3VuaXFdLAotK1ttNF9p ZmRlZihbJDFdLAotKwkgIFttNF9pZihtNF9pbmRleChbJDNdbTRfZGVmbihbJDFdKVskM10sIFsk MyQyJDNdKSwgWy0xXSwKLSsJCSBbbHRfYXBwZW5kKFskMV0sIFskMl0sIFskM10pJDRdLAotKwkJ IFskNV0pXSwKLSsJICBbbHRfYXBwZW5kKFskMV0sIFskMl0sIFskM10pJDRdKV0pCi0rCi0rCi0r IyBsdF9kaWN0X2FkZChESUNULCBLRVksIFZBTFVFKQotKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KLSttNF9kZWZpbmUoW2x0X2RpY3RfYWRkXSwKLStbbTRfZGVmaW5lKFskMSgkMild LCBbJDNdKV0pCi0rCi0rCi0rIyBsdF9kaWN0X2FkZF9zdWJrZXkoRElDVCwgS0VZLCBTVUJLRVks IFZBTFVFKQotKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K LSttNF9kZWZpbmUoW2x0X2RpY3RfYWRkX3N1YmtleV0sCi0rW200X2RlZmluZShbJDEoJDI6JDMp XSwgWyQ0XSldKQotKwotKwotKyMgbHRfZGljdF9mZXRjaChESUNULCBLRVksIFtTVUJLRVldKQot KyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotK200X2RlZmluZShbbHRfZGlj dF9mZXRjaF0sCi0rW200X2lmdmFsKFskM10sCi0rCW00X2lmZGVmKFskMSgkMjokMyldLCBbbTRf ZGVmbihbJDEoJDI6JDMpXSldKSwKLSsgICAgbTRfaWZkZWYoWyQxKCQyKV0sIFttNF9kZWZuKFsk MSgkMildKV0pKV0pCi0rCi0rCi0rIyBsdF9pZl9kaWN0X2ZldGNoKERJQ1QsIEtFWSwgW1NVQktF WV0sIFZBTFVFLCBJRi1UUlVFLCBbSUYtRkFMU0VdKQotKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSttNF9kZWZpbmUo W2x0X2lmX2RpY3RfZmV0Y2hdLAotK1ttNF9pZihsdF9kaWN0X2ZldGNoKFskMV0sIFskMl0sIFsk M10pLCBbJDRdLAotKwlbJDVdLAotKyAgICBbJDZdKV0pCi0rCi0rCi0rIyBsdF9kaWN0X2ZpbHRl cihESUNULCBbU1VCS0VZXSwgVkFMVUUsIFtTRVBBUkFUT1JdLCBLRVksIFsuLi5dKQotKyMgLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KLSttNF9kZWZpbmUoW2x0X2RpY3RfZmlsdGVyXSwKLStbbTRfaWYoWyQ1XSwgW10sIFtdLAot KyAgW2x0X2pvaW4obTRfcXVvdGUobTRfZGVmYXVsdChbJDRdLCBbWywgXV0pKSwKLSsgICAgICAg ICAgIGx0X3VucXVvdGUobTRfc3BsaXQobTRfbm9ybWFsaXplKG00X2ZvcmVhY2goX0x0X2tleSwg bHRfY2FyKFttNF9zaGlmdG4oNCwgJEApXSksCi0rCQkgICAgICBbbHRfaWZfZGljdF9mZXRjaChb JDFdLCBfTHRfa2V5LCBbJDJdLCBbJDNdLCBbX0x0X2tleSBdKV0pKSkpKV0pW11kbmwKLStdKQot ZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL2NvbmZpZy9sdHZlcnNpb24ubTQgc29jaS0zLjAu MF90cmVwMzAwL2NvbmZpZy9sdHZlcnNpb24ubTQKLS0tLSBzb2NpLTMuMC4wXzQtcGFjay9jb25m aWcvbHR2ZXJzaW9uLm00CTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCi0rKysg c29jaS0zLjAuMF90cmVwMzAwL2NvbmZpZy9sdHZlcnNpb24ubTQJMjAwOS0wNS0yMyAxMDowMTo1 Ni4wMDAwMDAwMDAgKzAyMDAKLUBAIC0wLDAgKzEsMjMgQEAKLSsjIGx0dmVyc2lvbi5tNCAtLSB2 ZXJzaW9uIG51bWJlcnMJCQktKi0gQXV0b2NvbmYgLSotCi0rIwotKyMgICBDb3B5cmlnaHQgKEMp IDIwMDQgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCi0rIyAgIFdyaXR0ZW4gYnkgU2Nv dHQgSmFtZXMgUmVtbmFudCwgMjAwNAotKyMKLSsjIFRoaXMgZmlsZSBpcyBmcmVlIHNvZnR3YXJl OyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uIGdpdmVzCi0rIyB1bmxpbWl0ZWQgcGVybWlz c2lvbiB0byBjb3B5IGFuZC9vciBkaXN0cmlidXRlIGl0LCB3aXRoIG9yIHdpdGhvdXQKLSsjIG1v ZGlmaWNhdGlvbnMsIGFzIGxvbmcgYXMgdGhpcyBub3RpY2UgaXMgcHJlc2VydmVkLgotKwotKyMg R2VuZXJhdGVkIGZyb20gbHR2ZXJzaW9uLmluLgotKwotKyMgc2VyaWFsIDMwMTIgbHR2ZXJzaW9u Lm00Ci0rIyBUaGlzIGZpbGUgaXMgcGFydCBvZiBHTlUgTGlidG9vbAotKwotK200X2RlZmluZShb TFRfUEFDS0FHRV9WRVJTSU9OXSwgWzIuMi42XSkKLSttNF9kZWZpbmUoW0xUX1BBQ0tBR0VfUkVW SVNJT05dLCBbMS4zMDEyXSkKLSsKLStBQ19ERUZVTihbTFRWRVJTSU9OX1ZFUlNJT05dLAotK1tt YWNyb192ZXJzaW9uPScyLjIuNicKLSttYWNyb19yZXZpc2lvbj0nMS4zMDEyJwotK19MVF9ERUNM KCwgbWFjcm9fdmVyc2lvbiwgMCwgW1doaWNoIHJlbGVhc2Ugb2YgbGlidG9vbC5tNCB3YXMgdXNl ZD9dKQotK19MVF9ERUNMKCwgbWFjcm9fcmV2aXNpb24sIDApCi0rXSkKLWRpZmYgLU51ciBzb2Np LTMuMC4wXzQtcGFjay9jb25maWcvbWlzc2luZyBzb2NpLTMuMC4wX3RyZXAzMDAvY29uZmlnL21p c3NpbmcKLS0tLSBzb2NpLTMuMC4wXzQtcGFjay9jb25maWcvbWlzc2luZwkxOTcwLTAxLTAxIDAx OjAwOjAwLjAwMDAwMDAwMCArMDEwMAotKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9jb25maWcvbWlz c2luZwkyMDA5LTA1LTIzIDEwOjAyOjAxLjAwMDAwMDAwMCArMDIwMAotQEAgLTAsMCArMSwzNjcg QEAKLSsjISAvYmluL3NoCi0rIyBDb21tb24gc3R1YiBmb3IgYSBmZXcgbWlzc2luZyBHTlUgcHJv Z3JhbXMgd2hpbGUgaW5zdGFsbGluZy4KLSsKLStzY3JpcHR2ZXJzaW9uPTIwMDYtMDUtMTAuMjMK LSsKLSsjIENvcHlyaWdodCAoQykgMTk5NiwgMTk5NywgMTk5OSwgMjAwMCwgMjAwMiwgMjAwMywg MjAwNCwgMjAwNSwgMjAwNgotKyMgICBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KLSsj IE9yaWdpbmFsbHkgYnkgRnJhbixjb2lzIFBpbmFyZCA8cGluYXJkQGlyby51bW9udHJlYWwuY2E+ LCAxOTk2LgotKwotKyMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVk aXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKLSsjIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUg R05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5Ci0rIyB0aGUgRnJlZSBT b2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyLCBvciAoYXQgeW91ciBvcHRpb24p Ci0rIyBhbnkgbGF0ZXIgdmVyc2lvbi4KLSsKLSsjIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRl ZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotKyMgYnV0IFdJVEhPVVQgQU5Z IFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSsjIE1FUkNI QU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUK LSsjIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0rCi0rIyBZ b3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMg TGljZW5zZQotKyMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhl IEZyZWUgU29mdHdhcmUKLSsjIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwg RmlmdGggRmxvb3IsIEJvc3RvbiwgTUEKLSsjIDAyMTEwLTEzMDEsIFVTQS4KLSsKLSsjIEFzIGEg c3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLCBpZiB5 b3UKLSsjIGRpc3RyaWJ1dGUgdGhpcyBmaWxlIGFzIHBhcnQgb2YgYSBwcm9ncmFtIHRoYXQgY29u dGFpbnMgYQotKyMgY29uZmlndXJhdGlvbiBzY3JpcHQgZ2VuZXJhdGVkIGJ5IEF1dG9jb25mLCB5 b3UgbWF5IGluY2x1ZGUgaXQgdW5kZXIKLSsjIHRoZSBzYW1lIGRpc3RyaWJ1dGlvbiB0ZXJtcyB0 aGF0IHlvdSB1c2UgZm9yIHRoZSByZXN0IG9mIHRoYXQgcHJvZ3JhbS4KLSsKLStpZiB0ZXN0ICQj IC1lcSAwOyB0aGVuCi0rICBlY2hvIDE+JjIgIlRyeSBcYCQwIC0taGVscCcgZm9yIG1vcmUgaW5m b3JtYXRpb24iCi0rICBleGl0IDEKLStmaQotKwotK3J1bj06Ci0rc2VkX291dHB1dD0ncy8uKiAt LW91dHB1dFsgPV1cKFteIF0qXCkuKi9cMS9wJwotK3NlZF9taW51c289J3MvLiogLW8gXChbXiBd KlwpLiovXDEvcCcKLSsKLSsjIEluIHRoZSBjYXNlcyB3aGVyZSB0aGlzIG1hdHRlcnMsIGBtaXNz aW5nJyBpcyBiZWluZyBydW4gaW4gdGhlCi0rIyBzcmNkaXIgYWxyZWFkeS4KLStpZiB0ZXN0IC1m IGNvbmZpZ3VyZS5hYzsgdGhlbgotKyAgY29uZmlndXJlX2FjPWNvbmZpZ3VyZS5hYwotK2Vsc2UK LSsgIGNvbmZpZ3VyZV9hYz1jb25maWd1cmUuaW4KLStmaQotKwotK21zZz0ibWlzc2luZyBvbiB5 b3VyIHN5c3RlbSIKLSsKLStjYXNlICQxIGluCi0rLS1ydW4pCi0rICAjIFRyeSB0byBydW4gcmVx dWVzdGVkIHByb2dyYW0sIGFuZCBqdXN0IGV4aXQgaWYgaXQgc3VjY2VlZHMuCi0rICBydW49Ci0r ICBzaGlmdAotKyAgIiRAIiAmJiBleGl0IDAKLSsgICMgRXhpdCBjb2RlIDYzIG1lYW5zIHZlcnNp b24gbWlzbWF0Y2guICBUaGlzIG9mdGVuIGhhcHBlbnMKLSsgICMgd2hlbiB0aGUgdXNlciB0cnkg dG8gdXNlIGFuIGFuY2llbnQgdmVyc2lvbiBvZiBhIHRvb2wgb24KLSsgICMgYSBmaWxlIHRoYXQg cmVxdWlyZXMgYSBtaW5pbXVtIHZlcnNpb24uICBJbiB0aGlzIGNhc2Ugd2UKLSsgICMgd2Ugc2hv dWxkIHByb2NlZWQgaGFzIGlmIHRoZSBwcm9ncmFtIGhhZCBiZWVuIGFic2VudCwgb3IKLSsgICMg aWYgLS1ydW4gaGFkbid0IGJlZW4gcGFzc2VkLgotKyAgaWYgdGVzdCAkPyA9IDYzOyB0aGVuCi0r ICAgIHJ1bj06Ci0rICAgIG1zZz0icHJvYmFibHkgdG9vIG9sZCIKLSsgIGZpCi0rICA7OwotKwot KyAgLWh8LS1ofC0taGV8LS1oZWx8LS1oZWxwKQotKyAgICBlY2hvICJcCi0rJDAgW09QVElPTl0u Li4gUFJPR1JBTSBbQVJHVU1FTlRdLi4uCi0rCi0rSGFuZGxlIFxgUFJPR1JBTSBbQVJHVU1FTlRd Li4uJyBmb3Igd2hlbiBQUk9HUkFNIGlzIG1pc3NpbmcsIG9yIHJldHVybiBhbgotK2Vycm9yIHN0 YXR1cyBpZiB0aGVyZSBpcyBubyBrbm93biBoYW5kbGluZyBmb3IgUFJPR1JBTS4KLSsKLStPcHRp b25zOgotKyAgLWgsIC0taGVscCAgICAgIGRpc3BsYXkgdGhpcyBoZWxwIGFuZCBleGl0Ci0rICAt diwgLS12ZXJzaW9uICAgb3V0cHV0IHZlcnNpb24gaW5mb3JtYXRpb24gYW5kIGV4aXQKLSsgIC0t cnVuICAgICAgICAgICB0cnkgdG8gcnVuIHRoZSBnaXZlbiBjb21tYW5kLCBhbmQgZW11bGF0ZSBp dCBpZiBpdCBmYWlscwotKwotK1N1cHBvcnRlZCBQUk9HUkFNIHZhbHVlczoKLSsgIGFjbG9jYWwg ICAgICB0b3VjaCBmaWxlIFxgYWNsb2NhbC5tNCcKLSsgIGF1dG9jb25mICAgICB0b3VjaCBmaWxl IFxgY29uZmlndXJlJwotKyAgYXV0b2hlYWRlciAgIHRvdWNoIGZpbGUgXGBjb25maWcuaC5pbicK LSsgIGF1dG9tNHRlICAgICB0b3VjaCB0aGUgb3V0cHV0IGZpbGUsIG9yIGNyZWF0ZSBhIHN0dWIg b25lCi0rICBhdXRvbWFrZSAgICAgdG91Y2ggYWxsIFxgTWFrZWZpbGUuaW4nIGZpbGVzCi0rICBi aXNvbiAgICAgICAgY3JlYXRlIFxgeS50YWIuW2NoXScsIGlmIHBvc3NpYmxlLCBmcm9tIGV4aXN0 aW5nIC5bY2hdCi0rICBmbGV4ICAgICAgICAgY3JlYXRlIFxgbGV4Lnl5LmMnLCBpZiBwb3NzaWJs ZSwgZnJvbSBleGlzdGluZyAuYwotKyAgaGVscDJtYW4gICAgIHRvdWNoIHRoZSBvdXRwdXQgZmls ZQotKyAgbGV4ICAgICAgICAgIGNyZWF0ZSBcYGxleC55eS5jJywgaWYgcG9zc2libGUsIGZyb20g ZXhpc3RpbmcgLmMKLSsgIG1ha2VpbmZvICAgICB0b3VjaCB0aGUgb3V0cHV0IGZpbGUKLSsgIHRh ciAgICAgICAgICB0cnkgdGFyLCBnbnV0YXIsIGd0YXIsIHRoZW4gdGFyIHdpdGhvdXQgbm9uLXBv cnRhYmxlIGZsYWdzCi0rICB5YWNjICAgICAgICAgY3JlYXRlIFxgeS50YWIuW2NoXScsIGlmIHBv c3NpYmxlLCBmcm9tIGV4aXN0aW5nIC5bY2hdCi0rCi0rU2VuZCBidWcgcmVwb3J0cyB0byA8YnVn LWF1dG9tYWtlQGdudS5vcmc+LiIKLSsgICAgZXhpdCAkPwotKyAgICA7OwotKwotKyAgLXZ8LS12 fC0tdmV8LS12ZXJ8LS12ZXJzfC0tdmVyc2l8LS12ZXJzaW98LS12ZXJzaW9uKQotKyAgICBlY2hv ICJtaXNzaW5nICRzY3JpcHR2ZXJzaW9uIChHTlUgQXV0b21ha2UpIgotKyAgICBleGl0ICQ/Ci0r ICAgIDs7Ci0rCi0rICAtKikKLSsgICAgZWNobyAxPiYyICIkMDogVW5rbm93biBcYCQxJyBvcHRp b24iCi0rICAgIGVjaG8gMT4mMiAiVHJ5IFxgJDAgLS1oZWxwJyBmb3IgbW9yZSBpbmZvcm1hdGlv biIKLSsgICAgZXhpdCAxCi0rICAgIDs7Ci0rCi0rZXNhYwotKwotKyMgTm93IGV4aXQgaWYgd2Ug aGF2ZSBpdCwgYnV0IGl0IGZhaWxlZC4gIEFsc28gZXhpdCBub3cgaWYgd2UKLSsjIGRvbid0IGhh dmUgaXQgYW5kIC0tdmVyc2lvbiB3YXMgcGFzc2VkIChtb3N0IGxpa2VseSB0byBkZXRlY3QKLSsj IHRoZSBwcm9ncmFtKS4KLStjYXNlICQxIGluCi0rICBsZXh8eWFjYykKLSsgICAgIyBOb3QgR05V IHByb2dyYW1zLCB0aGV5IGRvbid0IGhhdmUgLS12ZXJzaW9uLgotKyAgICA7OwotKwotKyAgdGFy KQotKyAgICBpZiB0ZXN0IC1uICIkcnVuIjsgdGhlbgotKyAgICAgICBlY2hvIDE+JjIgIkVSUk9S OiBcYHRhcicgcmVxdWlyZXMgLS1ydW4iCi0rICAgICAgIGV4aXQgMQotKyAgICBlbGlmIHRlc3Qg IngkMiIgPSAieC0tdmVyc2lvbiIgfHwgdGVzdCAieCQyIiA9ICJ4LS1oZWxwIjsgdGhlbgotKyAg ICAgICBleGl0IDEKLSsgICAgZmkKLSsgICAgOzsKLSsKLSsgICopCi0rICAgIGlmIHRlc3QgLXog IiRydW4iICYmICgkMSAtLXZlcnNpb24pID4gL2Rldi9udWxsIDI+JjE7IHRoZW4KLSsgICAgICAg IyBXZSBoYXZlIGl0LCBidXQgaXQgZmFpbGVkLgotKyAgICAgICBleGl0IDEKLSsgICAgZWxpZiB0 ZXN0ICJ4JDIiID0gIngtLXZlcnNpb24iIHx8IHRlc3QgIngkMiIgPSAieC0taGVscCI7IHRoZW4K LSsgICAgICAgIyBDb3VsZCBub3QgcnVuIC0tdmVyc2lvbiBvciAtLWhlbHAuICBUaGlzIGlzIHBy b2JhYmx5IHNvbWVvbmUKLSsgICAgICAgIyBydW5uaW5nIGAkVE9PTCAtLXZlcnNpb24nIG9yIGAk VE9PTCAtLWhlbHAnIHRvIGNoZWNrIHdoZXRoZXIKLSsgICAgICAgIyAkVE9PTCBleGlzdHMgYW5k IG5vdCBrbm93aW5nICRUT09MIHVzZXMgbWlzc2luZy4KLSsgICAgICAgZXhpdCAxCi0rICAgIGZp Ci0rICAgIDs7Ci0rZXNhYwotKwotKyMgSWYgaXQgZG9lcyBub3QgZXhpc3QsIG9yIGZhaWxzIHRv IHJ1biAocG9zc2libHkgYW4gb3V0ZGF0ZWQgdmVyc2lvbiksCi0rIyB0cnkgdG8gZW11bGF0ZSBp dC4KLStjYXNlICQxIGluCi0rICBhY2xvY2FsKikKLSsgICAgZWNobyAxPiYyICJcCi0rV0FSTklO RzogXGAkMScgaXMgJG1zZy4gIFlvdSBzaG91bGQgb25seSBuZWVkIGl0IGlmCi0rICAgICAgICAg eW91IG1vZGlmaWVkIFxgYWNpbmNsdWRlLm00JyBvciBcYCR7Y29uZmlndXJlX2FjfScuICBZb3Ug bWlnaHQgd2FudAotKyAgICAgICAgIHRvIGluc3RhbGwgdGhlIFxgQXV0b21ha2UnIGFuZCBcYFBl cmwnIHBhY2thZ2VzLiAgR3JhYiB0aGVtIGZyb20KLSsgICAgICAgICBhbnkgR05VIGFyY2hpdmUg c2l0ZS4iCi0rICAgIHRvdWNoIGFjbG9jYWwubTQKLSsgICAgOzsKLSsKLSsgIGF1dG9jb25mKQot KyAgICBlY2hvIDE+JjIgIlwKLStXQVJOSU5HOiBcYCQxJyBpcyAkbXNnLiAgWW91IHNob3VsZCBv bmx5IG5lZWQgaXQgaWYKLSsgICAgICAgICB5b3UgbW9kaWZpZWQgXGAke2NvbmZpZ3VyZV9hY30n LiAgWW91IG1pZ2h0IHdhbnQgdG8gaW5zdGFsbCB0aGUKLSsgICAgICAgICBcYEF1dG9jb25mJyBh bmQgXGBHTlUgbTQnIHBhY2thZ2VzLiAgR3JhYiB0aGVtIGZyb20gYW55IEdOVQotKyAgICAgICAg IGFyY2hpdmUgc2l0ZS4iCi0rICAgIHRvdWNoIGNvbmZpZ3VyZQotKyAgICA7OwotKwotKyAgYXV0 b2hlYWRlcikKLSsgICAgZWNobyAxPiYyICJcCi0rV0FSTklORzogXGAkMScgaXMgJG1zZy4gIFlv dSBzaG91bGQgb25seSBuZWVkIGl0IGlmCi0rICAgICAgICAgeW91IG1vZGlmaWVkIFxgYWNjb25m aWcuaCcgb3IgXGAke2NvbmZpZ3VyZV9hY30nLiAgWW91IG1pZ2h0IHdhbnQKLSsgICAgICAgICB0 byBpbnN0YWxsIHRoZSBcYEF1dG9jb25mJyBhbmQgXGBHTlUgbTQnIHBhY2thZ2VzLiAgR3JhYiB0 aGVtCi0rICAgICAgICAgZnJvbSBhbnkgR05VIGFyY2hpdmUgc2l0ZS4iCi0rICAgIGZpbGVzPWBz ZWQgLW4gJ3MvXlsgXSpBW0NNXV9DT05GSUdfSEVBREVSKFwoW14pXSpcKSkuKi9cMS9wJyAke2Nv bmZpZ3VyZV9hY31gCi0rICAgIHRlc3QgLXogIiRmaWxlcyIgJiYgZmlsZXM9ImNvbmZpZy5oIgot KyAgICB0b3VjaF9maWxlcz0KLSsgICAgZm9yIGYgaW4gJGZpbGVzOyBkbwotKyAgICAgIGNhc2Ug JGYgaW4KLSsgICAgICAqOiopIHRvdWNoX2ZpbGVzPSIkdG91Y2hfZmlsZXMgImBlY2hvICIkZiIg fAotKwkJCQkgICAgICAgc2VkIC1lICdzL15bXjpdKjovLycgLWUgJ3MvOi4qLy8nYDs7Ci0rICAg ICAgKikgdG91Y2hfZmlsZXM9IiR0b3VjaF9maWxlcyAkZi5pbiI7OwotKyAgICAgIGVzYWMKLSsg ICAgZG9uZQotKyAgICB0b3VjaCAkdG91Y2hfZmlsZXMKLSsgICAgOzsKLSsKLSsgIGF1dG9tYWtl KikKLSsgICAgZWNobyAxPiYyICJcCi0rV0FSTklORzogXGAkMScgaXMgJG1zZy4gIFlvdSBzaG91 bGQgb25seSBuZWVkIGl0IGlmCi0rICAgICAgICAgeW91IG1vZGlmaWVkIFxgTWFrZWZpbGUuYW0n LCBcYGFjaW5jbHVkZS5tNCcgb3IgXGAke2NvbmZpZ3VyZV9hY30nLgotKyAgICAgICAgIFlvdSBt aWdodCB3YW50IHRvIGluc3RhbGwgdGhlIFxgQXV0b21ha2UnIGFuZCBcYFBlcmwnIHBhY2thZ2Vz LgotKyAgICAgICAgIEdyYWIgdGhlbSBmcm9tIGFueSBHTlUgYXJjaGl2ZSBzaXRlLiIKLSsgICAg ZmluZCAuIC10eXBlIGYgLW5hbWUgTWFrZWZpbGUuYW0gLXByaW50IHwKLSsJICAgc2VkICdzL1wu YW0kLy5pbi8nIHwKLSsJICAgd2hpbGUgcmVhZCBmOyBkbyB0b3VjaCAiJGYiOyBkb25lCi0rICAg IDs7Ci0rCi0rICBhdXRvbTR0ZSkKLSsgICAgZWNobyAxPiYyICJcCi0rV0FSTklORzogXGAkMScg aXMgbmVlZGVkLCBidXQgaXMgJG1zZy4KLSsgICAgICAgICBZb3UgbWlnaHQgaGF2ZSBtb2RpZmll ZCBzb21lIGZpbGVzIHdpdGhvdXQgaGF2aW5nIHRoZQotKyAgICAgICAgIHByb3BlciB0b29scyBm b3IgZnVydGhlciBoYW5kbGluZyB0aGVtLgotKyAgICAgICAgIFlvdSBjYW4gZ2V0IFxgJDEnIGFz IHBhcnQgb2YgXGBBdXRvY29uZicgZnJvbSBhbnkgR05VCi0rICAgICAgICAgYXJjaGl2ZSBzaXRl LiIKLSsKLSsgICAgZmlsZT1gZWNobyAiJCoiIHwgc2VkIC1uICIkc2VkX291dHB1dCJgCi0rICAg IHRlc3QgLXogIiRmaWxlIiAmJiBmaWxlPWBlY2hvICIkKiIgfCBzZWQgLW4gIiRzZWRfbWludXNv ImAKLSsgICAgaWYgdGVzdCAtZiAiJGZpbGUiOyB0aGVuCi0rCXRvdWNoICRmaWxlCi0rICAgIGVs c2UKLSsJdGVzdCAteiAiJGZpbGUiIHx8IGV4ZWMgPiRmaWxlCi0rCWVjaG8gIiMhIC9iaW4vc2gi Ci0rCWVjaG8gIiMgQ3JlYXRlZCBieSBHTlUgQXV0b21ha2UgbWlzc2luZyBhcyBhIHJlcGxhY2Vt ZW50IG9mIgotKwllY2hvICIjICAkICRAIgotKwllY2hvICJleGl0IDAiCi0rCWNobW9kICt4ICRm aWxlCi0rCWV4aXQgMQotKyAgICBmaQotKyAgICA7OwotKwotKyAgYmlzb258eWFjYykKLSsgICAg ZWNobyAxPiYyICJcCi0rV0FSTklORzogXGAkMScgJG1zZy4gIFlvdSBzaG91bGQgb25seSBuZWVk IGl0IGlmCi0rICAgICAgICAgeW91IG1vZGlmaWVkIGEgXGAueScgZmlsZS4gIFlvdSBtYXkgbmVl ZCB0aGUgXGBCaXNvbicgcGFja2FnZQotKyAgICAgICAgIGluIG9yZGVyIGZvciB0aG9zZSBtb2Rp ZmljYXRpb25zIHRvIHRha2UgZWZmZWN0LiAgWW91IGNhbiBnZXQKLSsgICAgICAgICBcYEJpc29u JyBmcm9tIGFueSBHTlUgYXJjaGl2ZSBzaXRlLiIKLSsgICAgcm0gLWYgeS50YWIuYyB5LnRhYi5o Ci0rICAgIGlmIHRlc3QgJCMgLW5lIDE7IHRoZW4KLSsgICAgICAgIGV2YWwgTEFTVEFSRz0iXCR7 JCN9IgotKwljYXNlICRMQVNUQVJHIGluCi0rCSoueSkKLSsJICAgIFNSQ0ZJTEU9YGVjaG8gIiRM QVNUQVJHIiB8IHNlZCAncy95JC9jLydgCi0rCSAgICBpZiB0ZXN0IC1mICIkU1JDRklMRSI7IHRo ZW4KLSsJICAgICAgICAgY3AgIiRTUkNGSUxFIiB5LnRhYi5jCi0rCSAgICBmaQotKwkgICAgU1JD RklMRT1gZWNobyAiJExBU1RBUkciIHwgc2VkICdzL3kkL2gvJ2AKLSsJICAgIGlmIHRlc3QgLWYg IiRTUkNGSUxFIjsgdGhlbgotKwkgICAgICAgICBjcCAiJFNSQ0ZJTEUiIHkudGFiLmgKLSsJICAg IGZpCi0rCSAgOzsKLSsJZXNhYwotKyAgICBmaQotKyAgICBpZiB0ZXN0ICEgLWYgeS50YWIuaDsg dGhlbgotKwllY2hvID55LnRhYi5oCi0rICAgIGZpCi0rICAgIGlmIHRlc3QgISAtZiB5LnRhYi5j OyB0aGVuCi0rCWVjaG8gJ21haW4oKSB7IHJldHVybiAwOyB9JyA+eS50YWIuYwotKyAgICBmaQot KyAgICA7OwotKwotKyAgbGV4fGZsZXgpCi0rICAgIGVjaG8gMT4mMiAiXAotK1dBUk5JTkc6IFxg JDEnIGlzICRtc2cuICBZb3Ugc2hvdWxkIG9ubHkgbmVlZCBpdCBpZgotKyAgICAgICAgIHlvdSBt b2RpZmllZCBhIFxgLmwnIGZpbGUuICBZb3UgbWF5IG5lZWQgdGhlIFxgRmxleCcgcGFja2FnZQot KyAgICAgICAgIGluIG9yZGVyIGZvciB0aG9zZSBtb2RpZmljYXRpb25zIHRvIHRha2UgZWZmZWN0 LiAgWW91IGNhbiBnZXQKLSsgICAgICAgICBcYEZsZXgnIGZyb20gYW55IEdOVSBhcmNoaXZlIHNp dGUuIgotKyAgICBybSAtZiBsZXgueXkuYwotKyAgICBpZiB0ZXN0ICQjIC1uZSAxOyB0aGVuCi0r ICAgICAgICBldmFsIExBU1RBUkc9IlwkeyQjfSIKLSsJY2FzZSAkTEFTVEFSRyBpbgotKwkqLmwp Ci0rCSAgICBTUkNGSUxFPWBlY2hvICIkTEFTVEFSRyIgfCBzZWQgJ3MvbCQvYy8nYAotKwkgICAg aWYgdGVzdCAtZiAiJFNSQ0ZJTEUiOyB0aGVuCi0rCSAgICAgICAgIGNwICIkU1JDRklMRSIgbGV4 Lnl5LmMKLSsJICAgIGZpCi0rCSAgOzsKLSsJZXNhYwotKyAgICBmaQotKyAgICBpZiB0ZXN0ICEg LWYgbGV4Lnl5LmM7IHRoZW4KLSsJZWNobyAnbWFpbigpIHsgcmV0dXJuIDA7IH0nID5sZXgueXku YwotKyAgICBmaQotKyAgICA7OwotKwotKyAgaGVscDJtYW4pCi0rICAgIGVjaG8gMT4mMiAiXAot K1dBUk5JTkc6IFxgJDEnIGlzICRtc2cuICBZb3Ugc2hvdWxkIG9ubHkgbmVlZCBpdCBpZgotKwkg eW91IG1vZGlmaWVkIGEgZGVwZW5kZW5jeSBvZiBhIG1hbnVhbCBwYWdlLiAgWW91IG1heSBuZWVk IHRoZQotKwkgXGBIZWxwMm1hbicgcGFja2FnZSBpbiBvcmRlciBmb3IgdGhvc2UgbW9kaWZpY2F0 aW9ucyB0byB0YWtlCi0rCSBlZmZlY3QuICBZb3UgY2FuIGdldCBcYEhlbHAybWFuJyBmcm9tIGFu eSBHTlUgYXJjaGl2ZSBzaXRlLiIKLSsKLSsgICAgZmlsZT1gZWNobyAiJCoiIHwgc2VkIC1uICIk c2VkX291dHB1dCJgCi0rICAgIHRlc3QgLXogIiRmaWxlIiAmJiBmaWxlPWBlY2hvICIkKiIgfCBz ZWQgLW4gIiRzZWRfbWludXNvImAKLSsgICAgaWYgdGVzdCAtZiAiJGZpbGUiOyB0aGVuCi0rCXRv dWNoICRmaWxlCi0rICAgIGVsc2UKLSsJdGVzdCAteiAiJGZpbGUiIHx8IGV4ZWMgPiRmaWxlCi0r CWVjaG8gIi5hYiBoZWxwMm1hbiBpcyByZXF1aXJlZCB0byBnZW5lcmF0ZSB0aGlzIHBhZ2UiCi0r CWV4aXQgMQotKyAgICBmaQotKyAgICA7OwotKwotKyAgbWFrZWluZm8pCi0rICAgIGVjaG8gMT4m MiAiXAotK1dBUk5JTkc6IFxgJDEnIGlzICRtc2cuICBZb3Ugc2hvdWxkIG9ubHkgbmVlZCBpdCBp ZgotKyAgICAgICAgIHlvdSBtb2RpZmllZCBhIFxgLnRleGknIG9yIFxgLnRleGluZm8nIGZpbGUs IG9yIGFueSBvdGhlciBmaWxlCi0rICAgICAgICAgaW5kaXJlY3RseSBhZmZlY3RpbmcgdGhlIGFz cGVjdCBvZiB0aGUgbWFudWFsLiAgVGhlIHNwdXJpb3VzCi0rICAgICAgICAgY2FsbCBtaWdodCBh bHNvIGJlIHRoZSBjb25zZXF1ZW5jZSBvZiB1c2luZyBhIGJ1Z2d5IFxgbWFrZScgKEFJWCwKLSsg ICAgICAgICBEVSwgSVJJWCkuICBZb3UgbWlnaHQgd2FudCB0byBpbnN0YWxsIHRoZSBcYFRleGlu Zm8nIHBhY2thZ2Ugb3IKLSsgICAgICAgICB0aGUgXGBHTlUgbWFrZScgcGFja2FnZS4gIEdyYWIg ZWl0aGVyIGZyb20gYW55IEdOVSBhcmNoaXZlIHNpdGUuIgotKyAgICAjIFRoZSBmaWxlIHRvIHRv dWNoIGlzIHRoYXQgc3BlY2lmaWVkIHdpdGggLW8gLi4uCi0rICAgIGZpbGU9YGVjaG8gIiQqIiB8 IHNlZCAtbiAiJHNlZF9vdXRwdXQiYAotKyAgICB0ZXN0IC16ICIkZmlsZSIgJiYgZmlsZT1gZWNo byAiJCoiIHwgc2VkIC1uICIkc2VkX21pbnVzbyJgCi0rICAgIGlmIHRlc3QgLXogIiRmaWxlIjsg dGhlbgotKyAgICAgICMgLi4uIG9yIGl0IGlzIHRoZSBvbmUgc3BlY2lmaWVkIHdpdGggQHNldGZp bGVuYW1lIC4uLgotKyAgICAgIGluZmlsZT1gZWNobyAiJCoiIHwgc2VkICdzLy4qIFwoW14gXSpc KSAqJC9cMS8nYAotKyAgICAgIGZpbGU9YHNlZCAtbiAnCi0rCS9eQHNldGZpbGVuYW1lL3sKLSsJ ICBzLy4qIFwoW14gXSpcKSAqJC9cMS8KLSsJICBwCi0rCSAgcQotKwl9JyAkaW5maWxlYAotKyAg ICAgICMgLi4uIG9yIGl0IGlzIGRlcml2ZWQgZnJvbSB0aGUgc291cmNlIG5hbWUgKGRpci9mLnRl eGkgYmVjb21lcyBmLmluZm8pCi0rICAgICAgdGVzdCAteiAiJGZpbGUiICYmIGZpbGU9YGVjaG8g IiRpbmZpbGUiIHwgc2VkICdzLC4qLywsO3MsLlteLl0qJCwsJ2AuaW5mbwotKyAgICBmaQotKyAg ICAjIElmIHRoZSBmaWxlIGRvZXMgbm90IGV4aXN0LCB0aGUgdXNlciByZWFsbHkgbmVlZHMgbWFr ZWluZm87Ci0rICAgICMgbGV0J3MgZmFpbCB3aXRob3V0IHRvdWNoaW5nIGFueXRoaW5nLgotKyAg ICB0ZXN0IC1mICRmaWxlIHx8IGV4aXQgMQotKyAgICB0b3VjaCAkZmlsZQotKyAgICA7OwotKwot KyAgdGFyKQotKyAgICBzaGlmdAotKwotKyAgICAjIFdlIGhhdmUgYWxyZWFkeSB0cmllZCB0YXIg aW4gdGhlIGdlbmVyaWMgcGFydC4KLSsgICAgIyBMb29rIGZvciBnbnV0YXIvZ3RhciBiZWZvcmUg aW52b2NhdGlvbiB0byBhdm9pZCB1Z2x5IGVycm9yCi0rICAgICMgbWVzc2FnZXMuCi0rICAgIGlm IChnbnV0YXIgLS12ZXJzaW9uID4gL2Rldi9udWxsIDI+JjEpOyB0aGVuCi0rICAgICAgIGdudXRh ciAiJEAiICYmIGV4aXQgMAotKyAgICBmaQotKyAgICBpZiAoZ3RhciAtLXZlcnNpb24gPiAvZGV2 L251bGwgMj4mMSk7IHRoZW4KLSsgICAgICAgZ3RhciAiJEAiICYmIGV4aXQgMAotKyAgICBmaQot KyAgICBmaXJzdGFyZz0iJDEiCi0rICAgIGlmIHNoaWZ0OyB0aGVuCi0rCWNhc2UgJGZpcnN0YXJn IGluCi0rCSpvKikKLSsJICAgIGZpcnN0YXJnPWBlY2hvICIkZmlyc3RhcmciIHwgc2VkIHMvby8v YAotKwkgICAgdGFyICIkZmlyc3RhcmciICIkQCIgJiYgZXhpdCAwCi0rCSAgICA7OwotKwllc2Fj Ci0rCWNhc2UgJGZpcnN0YXJnIGluCi0rCSpoKikKLSsJICAgIGZpcnN0YXJnPWBlY2hvICIkZmly c3RhcmciIHwgc2VkIHMvaC8vYAotKwkgICAgdGFyICIkZmlyc3RhcmciICIkQCIgJiYgZXhpdCAw Ci0rCSAgICA7OwotKwllc2FjCi0rICAgIGZpCi0rCi0rICAgIGVjaG8gMT4mMiAiXAotK1dBUk5J Tkc6IEkgY2FuJ3Qgc2VlbSB0byBiZSBhYmxlIHRvIHJ1biBcYHRhcicgd2l0aCB0aGUgZ2l2ZW4g YXJndW1lbnRzLgotKyAgICAgICAgIFlvdSBtYXkgd2FudCB0byBpbnN0YWxsIEdOVSB0YXIgb3Ig RnJlZSBwYXh1dGlscywgb3IgY2hlY2sgdGhlCi0rICAgICAgICAgY29tbWFuZCBsaW5lIGFyZ3Vt ZW50cy4iCi0rICAgIGV4aXQgMQotKyAgICA7OwotKwotKyAgKikKLSsgICAgZWNobyAxPiYyICJc Ci0rV0FSTklORzogXGAkMScgaXMgbmVlZGVkLCBhbmQgaXMgJG1zZy4KLSsgICAgICAgICBZb3Ug bWlnaHQgaGF2ZSBtb2RpZmllZCBzb21lIGZpbGVzIHdpdGhvdXQgaGF2aW5nIHRoZQotKyAgICAg ICAgIHByb3BlciB0b29scyBmb3IgZnVydGhlciBoYW5kbGluZyB0aGVtLiAgQ2hlY2sgdGhlIFxg UkVBRE1FJyBmaWxlLAotKyAgICAgICAgIGl0IG9mdGVuIHRlbGxzIHlvdSBhYm91dCB0aGUgbmVl ZGVkIHByZXJlcXVpc2l0ZXMgZm9yIGluc3RhbGxpbmcKLSsgICAgICAgICB0aGlzIHBhY2thZ2Uu ICBZb3UgbWF5IGFsc28gcGVlayBhdCBhbnkgR05VIGFyY2hpdmUgc2l0ZSwgaW4gY2FzZQotKyAg ICAgICAgIHNvbWUgb3RoZXIgcGFja2FnZSB3b3VsZCBjb250YWluIHRoaXMgbWlzc2luZyBcYCQx JyBwcm9ncmFtLiIKLSsgICAgZXhpdCAxCi0rICAgIDs7Ci0rZXNhYwotKwotK2V4aXQgMAotKwot KyMgTG9jYWwgdmFyaWFibGVzOgotKyMgZXZhbDogKGFkZC1ob29rICd3cml0ZS1maWxlLWhvb2tz ICd0aW1lLXN0YW1wKQotKyMgdGltZS1zdGFtcC1zdGFydDogInNjcmlwdHZlcnNpb249IgotKyMg dGltZS1zdGFtcC1mb3JtYXQ6ICIlOnktJTAybS0lMDJkLiUwMkgiCi0rIyB0aW1lLXN0YW1wLWVu ZDogIiQiCi0rIyBFbmQ6Ci1kaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svY29uZmlndXJlIHNv Y2ktMy4wLjBfdHJlcDMwMC9jb25maWd1cmUKLS0tLSBzb2NpLTMuMC4wXzQtcGFjay9jb25maWd1 cmUJMjAwOS0wNS0yMyAxMzozNzowOS4wMDAwMDAwMDAgKzAyMDAKLSsrKyBzb2NpLTMuMC4wX3Ry ZXAzMDAvY29uZmlndXJlCTIwMDktMDUtMjMgMTA6MDI6MDAuMDAwMDAwMDAwICswMjAwCi1AQCAt MSw3MiArMSwyMjE1MCBAQAotLSMhL2Jpbi9zaAotKyMhIC9iaW4vc2gKLSsjIEd1ZXNzIHZhbHVl cyBmb3Igc3lzdGVtLWRlcGVuZGVudCB2YXJpYWJsZXMgYW5kIGNyZWF0ZSBNYWtlZmlsZXMuCi0r IyBHZW5lcmF0ZWQgYnkgR05VIEF1dG9jb25mIDIuNjMgZm9yIFNPQ0kgMy4wLjAuCi0rIwotKyMg UmVwb3J0IGJ1Z3MgdG8gPG1zb2JjemFrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4uCi0rIwotKyMg Q29weXJpZ2h0IChDKSAyMDA0LTIwMDkgTWFjaWVqIFNvYmN6YWsgPG1zb2JjemFrQHVzZXJzLnNv dXJjZWZvcmdlLm5ldD4KLSsjCi0rIyBDb3B5cmlnaHQgKEMpIDE5OTIsIDE5OTMsIDE5OTQsIDE5 OTUsIDE5OTYsIDE5OTgsIDE5OTksIDIwMDAsIDIwMDEsCi0rIyAyMDAyLCAyMDAzLCAyMDA0LCAy MDA1LCAyMDA2LCAyMDA3LCAyMDA4IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgotKyMg VGhpcyBjb25maWd1cmUgc2NyaXB0IGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3YXJl IEZvdW5kYXRpb24KLSsjIGdpdmVzIHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNvcHksIGRpc3Ry aWJ1dGUgYW5kIG1vZGlmeSBpdC4KLSsjIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0gIyMKLSsjIyBN NHNoIEluaXRpYWxpemF0aW9uLiAgIyMKLSsjIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0gIyMKLSAK LS1pZiBbICQjIC1ndCAwIF0KLS10aGVuCi0tICAgIGlmIFsgJDEgPSAiLWhlbHAiIC1vICQxID0g Ii0taGVscCIgXQotLSAgICB0aGVuCi0tICAgICAgICBlY2hvICdSZWNvZ25pemVkIGNvbmZpZ3Vy ZSBvcHRpb25zOicKLS0gICAgICAgIGVjaG8gJycKLS0gICAgICAgIGVjaG8gJ0luc3RhbGxhdGlv biBvcHRpb25zOicKLS0gICAgICAgIGVjaG8gJy0taW5jbHVkZS1wcmVmaXg9L3NvbWUvcGF0aCAg ICAgIC0gcGF0aCB0byBpbnN0YWxsIFNPQ0kgaGVhZGVyIGZpbGVzJwotLSAgICAgICAgZWNobyAn LS1saWItcHJlZml4PS9zb21lL3BhdGggICAgICAgICAgLSBwYXRoIHRvIGluc3RhbGwgU09DSSBs aWJyYXJpZXMnCi0tICAgICAgICBlY2hvICcnCi0tICAgICAgICBlY2hvICdNeVNRTCBvcHRpb25z OicKLS0gICAgICAgIGVjaG8gJy0tbXlzcWwtaW5jbHVkZT0vc29tZS9wYXRoICAgICAgIC0gZGly ZWN0b3J5IGNvbnRhaW5pbmcgbXlzcWwuaCcKLS0gICAgICAgIGVjaG8gJy0tbXlzcWwtbGliPS9z b21lL3BhdGggICAgICAgICAgIC0gZGlyZWN0b3J5IGNvbnRhaW5pbmcgbGlibXlzcWxjbGllbnQu W2F8c29dJwotLSAgICAgICAgZWNobyAnJwotLSAgICAgICAgZWNobyAnT3JhY2xlIG9wdGlvbnMg KGlmIE9SQUNMRV9IT01FIHZhcmlhYmxlIGlzIG5vdCBzZXQpOicKLS0gICAgICAgIGVjaG8gJy0t b3JhY2xlLWluY2x1ZGU9L3NvbWUvcGF0aCAgICAgIC0gZGlyZWN0b3J5IGNvbnRhaW5pbmcgb2Np LmgnCi0tICAgICAgICBlY2hvICctLW9yYWNsZS1saWI9L3NvbWUvcGF0aCAgICAgICAgICAtIGRp cmVjdG9yeSBjb250YWluaW5nIGxpYmNsbnRzaC5bYXxzb10nCi0tICAgICAgICBlY2hvICcnCi0t ICAgICAgICBlY2hvICdQb3N0Z3JlU1FMIG9wdGlvbnM6JwotLSAgICAgICAgZWNobyAnLS1wb3N0 Z3Jlc3FsLWluY2x1ZGU9L3NvbWUvcGF0aCAgLSBkaXJlY3RvcnkgY29udGFpbmluZyBsaWJwcS9s aWJwcS1mcy5oJwotLSAgICAgICAgZWNobyAnLS1wb3N0Z3Jlc3FsLWxpYj0vc29tZS9wYXRoICAg ICAgLSBkaXJlY3RvcnkgY29udGFpbmluZyBsaWJwcS5bYXxzb10nCi0tICAgICAgICBlY2hvICcn Ci0tICAgICAgICBlY2hvICdUZXN0IHByb2dyYW1zIGNvbXBpbGF0aW9uIG9wdGlvbnMgKG5vdCBu ZWVkZWQgZm9yIGxpYnJhcnkgYnVpbGQpOicKLS0gICAgICAgIGVjaG8gJy0tYm9vc3QtaW5jbHVk ZT0vc29tZS9wYXRoICAgICAgIC0gcm9vdCBpbmNsdWRlIGRpcmVjdG9yeSBvZiBCb29zdCcKLS0g ICAgICAgIGVjaG8gJy0tYm9vc3QtbGliPS9zb21lL3BhdGggICAgICAgICAgIC0gcm9vdCBsaWIg ZGlyZWN0b3J5IG9mIEJvb3N0JwotLSAgICAgICAgZWNobyAnJwotLSAgICAgICAgZXhpdAotLSAg ICBmaQotKyMgQmUgbW9yZSBCb3VybmUgY29tcGF0aWJsZQotK0RVQUxDQVNFPTE7IGV4cG9ydCBE VUFMQ0FTRSAjIGZvciBNS1Mgc2gKLStpZiB0ZXN0IC1uICIke1pTSF9WRVJTSU9OK3NldH0iICYm IChlbXVsYXRlIHNoKSA+L2Rldi9udWxsIDI+JjE7IHRoZW4KLSsgIGVtdWxhdGUgc2gKLSsgIE5V TExDTUQ9OgotKyAgIyBQcmUtNC4yIHZlcnNpb25zIG9mIFpzaCBkbyB3b3JkIHNwbGl0dGluZyBv biAkezErIiRAIn0sIHdoaWNoCi0rICAjIGlzIGNvbnRyYXJ5IHRvIG91ciB1c2FnZS4gIERpc2Fi bGUgdGhpcyBmZWF0dXJlLgotKyAgYWxpYXMgLWcgJyR7MSsiJEAifSc9JyIkQCInCi0rICBzZXRv cHQgTk9fR0xPQl9TVUJTVAotK2Vsc2UKLSsgIGNhc2UgYChzZXQgLW8pIDI+L2Rldi9udWxsYCBp bgotKyAgKnBvc2l4Kikgc2V0IC1vIHBvc2l4IDs7Ci0rZXNhYwotKwotK2ZpCi0rCi0rCi0rCi0r Ci0rIyBQQVRIIG5lZWRzIENSCi0rIyBBdm9pZCBkZXBlbmRpbmcgdXBvbiBDaGFyYWN0ZXIgUmFu Z2VzLgotK2FzX2NyX2xldHRlcnM9J2FiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6JwotK2FzX2Ny X0xFVFRFUlM9J0FCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaJwotK2FzX2NyX0xldHRlcnM9JGFz X2NyX2xldHRlcnMkYXNfY3JfTEVUVEVSUwotK2FzX2NyX2RpZ2l0cz0nMDEyMzQ1Njc4OScKLSth c19jcl9hbG51bT0kYXNfY3JfTGV0dGVycyRhc19jcl9kaWdpdHMKLSsKLSthc19ubD0nCi0rJwot K2V4cG9ydCBhc19ubAotKyMgUHJpbnRpbmcgYSBsb25nIHN0cmluZyBjcmFzaGVzIFNvbGFyaXMg NyAvdXNyL2Jpbi9wcmludGYuCi0rYXNfZWNobz0nXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxc XFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxc XFxcXFxcXFxcXFxcXFxcXFxcXCcKLSthc19lY2hvPSRhc19lY2hvJGFzX2VjaG8kYXNfZWNobyRh c19lY2hvJGFzX2VjaG8KLSthc19lY2hvPSRhc19lY2hvJGFzX2VjaG8kYXNfZWNobyRhc19lY2hv JGFzX2VjaG8kYXNfZWNobwotK2lmICh0ZXN0ICJYYHByaW50ZiAlcyAkYXNfZWNob2AiID0gIlgk YXNfZWNobyIpIDI+L2Rldi9udWxsOyB0aGVuCi0rICBhc19lY2hvPSdwcmludGYgJXNcbicKLSsg IGFzX2VjaG9fbj0ncHJpbnRmICVzJwotK2Vsc2UKLSsgIGlmIHRlc3QgIlhgKC91c3IvdWNiL2Vj aG8gLW4gLW4gJGFzX2VjaG8pIDI+L2Rldi9udWxsYCIgPSAiWC1uICRhc19lY2hvIjsgdGhlbgot KyAgICBhc19lY2hvX2JvZHk9J2V2YWwgL3Vzci91Y2IvZWNobyAtbiAiJDEkYXNfbmwiJwotKyAg ICBhc19lY2hvX249Jy91c3IvdWNiL2VjaG8gLW4nCi0rICBlbHNlCi0rICAgIGFzX2VjaG9fYm9k eT0nZXZhbCBleHByICJYJDEiIDogIlhcXCguKlxcKSInCi0rICAgIGFzX2VjaG9fbl9ib2R5PSdl dmFsCi0rICAgICAgYXJnPSQxOwotKyAgICAgIGNhc2UgJGFyZyBpbgotKyAgICAgICoiJGFzX25s IiopCi0rCWV4cHIgIlgkYXJnIiA6ICJYXFwoLipcXCkkYXNfbmwiOwotKwlhcmc9YGV4cHIgIlgk YXJnIiA6ICIuKiRhc19ubFxcKC4qXFwpImA7OwotKyAgICAgIGVzYWM7Ci0rICAgICAgZXhwciAi WCRhcmciIDogIlhcXCguKlxcKSIgfCB0ciAtZCAiJGFzX25sIgotKyAgICAnCi0rICAgIGV4cG9y dCBhc19lY2hvX25fYm9keQotKyAgICBhc19lY2hvX249J3NoIC1jICRhc19lY2hvX25fYm9keSBh c19lY2hvJwotKyAgZmkKLSsgIGV4cG9ydCBhc19lY2hvX2JvZHkKLSsgIGFzX2VjaG89J3NoIC1j ICRhc19lY2hvX2JvZHkgYXNfZWNobycKLStmaQotKwotKyMgVGhlIHVzZXIgaXMgYWx3YXlzIHJp Z2h0LgotK2lmIHRlc3QgIiR7UEFUSF9TRVBBUkFUT1Irc2V0fSIgIT0gc2V0OyB0aGVuCi0rICBQ QVRIX1NFUEFSQVRPUj06Ci0rICAoUEFUSD0nL2JpbjsvYmluJzsgRlBBVEg9JFBBVEg7IHNoIC1j IDopID4vZGV2L251bGwgMj4mMSAmJiB7Ci0rICAgIChQQVRIPScvYmluOi9iaW4nOyBGUEFUSD0k UEFUSDsgc2ggLWMgOikgPi9kZXYvbnVsbCAyPiYxIHx8Ci0rICAgICAgUEFUSF9TRVBBUkFUT1I9 JzsnCi0rICB9Ci0rZmkKLSsKLSsjIFN1cHBvcnQgdW5zZXQgd2hlbiBwb3NzaWJsZS4KLStpZiAo IChNQUlMPTYwOyB1bnNldCBNQUlMKSB8fCBleGl0KSA+L2Rldi9udWxsIDI+JjE7IHRoZW4KLSsg IGFzX3Vuc2V0PXVuc2V0Ci0rZWxzZQotKyAgYXNfdW5zZXQ9ZmFsc2UKLStmaQotKwotKwotKyMg SUZTCi0rIyBXZSBuZWVkIHNwYWNlLCB0YWIgYW5kIG5ldyBsaW5lLCBpbiBwcmVjaXNlbHkgdGhh dCBvcmRlci4gIFF1b3RpbmcgaXMKLSsjIHRoZXJlIHRvIHByZXZlbnQgZWRpdG9ycyBmcm9tIGNv bXBsYWluaW5nIGFib3V0IHNwYWNlLXRhYi4KLSsjIChJZiBfQVNfUEFUSF9XQUxLIHdlcmUgY2Fs bGVkIHdpdGggSUZTIHVuc2V0LCBpdCB3b3VsZCBkaXNhYmxlIHdvcmQKLSsjIHNwbGl0dGluZyBi eSBzZXR0aW5nIElGUyB0byBlbXB0eSB2YWx1ZS4pCi0rSUZTPSIgIiIJJGFzX25sIgotKwotKyMg RmluZCB3aG8gd2UgYXJlLiAgTG9vayBpbiB0aGUgcGF0aCBpZiB3ZSBjb250YWluIG5vIGRpcmVj dG9yeSBzZXBhcmF0b3IuCi0rY2FzZSAkMCBpbgotKyAgKltcXC9dKiApIGFzX215c2VsZj0kMCA7 OwotKyAgKikgYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgotK2ZvciBhc19k aXIgaW4gJFBBVEgKLStkbwotKyAgSUZTPSRhc19zYXZlX0lGUwotKyAgdGVzdCAteiAiJGFzX2Rp ciIgJiYgYXNfZGlyPS4KLSsgIHRlc3QgLXIgIiRhc19kaXIvJDAiICYmIGFzX215c2VsZj0kYXNf ZGlyLyQwICYmIGJyZWFrCi0rZG9uZQotK0lGUz0kYXNfc2F2ZV9JRlMKLSsKLSsgICAgIDs7Ci0r ZXNhYwotKyMgV2UgZGlkIG5vdCBmaW5kIG91cnNlbHZlcywgbW9zdCBwcm9iYWJseSB3ZSB3ZXJl IHJ1biBhcyBgc2ggQ09NTUFORCcKLSsjIGluIHdoaWNoIGNhc2Ugd2UgYXJlIG5vdCB0byBiZSBm b3VuZCBpbiB0aGUgcGF0aC4KLStpZiB0ZXN0ICJ4JGFzX215c2VsZiIgPSB4OyB0aGVuCi0rICBh c19teXNlbGY9JDAKLStmaQotK2lmIHRlc3QgISAtZiAiJGFzX215c2VsZiI7IHRoZW4KLSsgICRh c19lY2hvICIkYXNfbXlzZWxmOiBlcnJvcjogY2Fubm90IGZpbmQgbXlzZWxmOyByZXJ1biB3aXRo IGFuIGFic29sdXRlIGZpbGUgbmFtZSIgPiYyCi0rICB7IChleGl0IDEpOyBleGl0IDE7IH0KLStm aQotKwotKyMgV29yayBhcm91bmQgYnVncyBpbiBwcmUtMy4wIFVXSU4ga3NoLgotK2ZvciBhc192 YXIgaW4gRU5WIE1BSUwgTUFJTFBBVEgKLStkbyAoJGFzX3Vuc2V0ICRhc192YXIpID4vZGV2L251 bGwgMj4mMSAmJiAkYXNfdW5zZXQgJGFzX3ZhcgotK2RvbmUKLStQUzE9JyQgJwotK1BTMj0nPiAn Ci0rUFM0PScrICcKLSsKLSsjIE5MUyBudWlzYW5jZXMuCi0rTENfQUxMPUMKLStleHBvcnQgTENf QUxMCi0rTEFOR1VBR0U9QwotK2V4cG9ydCBMQU5HVUFHRQotKwotKyMgUmVxdWlyZWQgdG8gdXNl IGJhc2VuYW1lLgotK2lmIGV4cHIgYSA6ICdcKGFcKScgPi9kZXYvbnVsbCAyPiYxICYmCi0rICAg dGVzdCAiWGBleHByIDAwMDAxIDogJy4qXCguLi5cKSdgIiA9IFgwMDE7IHRoZW4KLSsgIGFzX2V4 cHI9ZXhwcgotK2Vsc2UKLSsgIGFzX2V4cHI9ZmFsc2UKLStmaQotKwotK2lmIChiYXNlbmFtZSAt LSAvKSA+L2Rldi9udWxsIDI+JjEgJiYgdGVzdCAiWGBiYXNlbmFtZSAtLSAvIDI+JjFgIiA9ICJY LyI7IHRoZW4KLSsgIGFzX2Jhc2VuYW1lPWJhc2VuYW1lCi0rZWxzZQotKyAgYXNfYmFzZW5hbWU9 ZmFsc2UKLStmaQotKwotKwotKyMgTmFtZSBvZiB0aGUgZXhlY3V0YWJsZS4KLSthc19tZT1gJGFz X2Jhc2VuYW1lIC0tICIkMCIgfHwKLSskYXNfZXhwciBYLyIkMCIgOiAnLiovXChbXi9dW14vXSpc KS8qJCcgXHwgXAotKwkgWCIkMCIgOiAnWFwoLy9cKSQnIFx8IFwKLSsJIFgiJDAiIDogJ1hcKC9c KScgXHwgLiAyPi9kZXYvbnVsbCB8fAotKyRhc19lY2hvIFgvIiQwIiB8Ci0rICAgIHNlZCAnL14u KlwvXChbXi9dW14vXSpcKVwvKiQvewotKwkgICAgcy8vXDEvCi0rCSAgICBxCi0rCSAgfQotKwkg IC9eWFwvXChcL1wvXCkkL3sKLSsJICAgIHMvL1wxLwotKwkgICAgcQotKwkgIH0KLSsJICAvXlhc L1woXC9cKS4qL3sKLSsJICAgIHMvL1wxLwotKwkgICAgcQotKwkgIH0KLSsJICBzLy4qLy4vOyBx J2AKLSsKLSsjIENEUEFUSC4KLSskYXNfdW5zZXQgQ0RQQVRICi0rCi0rCi0raWYgdGVzdCAieCRD T05GSUdfU0hFTEwiID0geDsgdGhlbgotKyAgaWYgKGV2YWwgIjoiKSAyPi9kZXYvbnVsbDsgdGhl bgotKyAgYXNfaGF2ZV9yZXF1aXJlZD15ZXMKLStlbHNlCi0rICBhc19oYXZlX3JlcXVpcmVkPW5v Ci0rZmkKLSsKLSsgIGlmIHRlc3QgJGFzX2hhdmVfcmVxdWlyZWQgPSB5ZXMgJiYJIChldmFsICI6 Ci0rKGFzX2Z1bmNfcmV0dXJuICgpIHsKLSsgIChleGl0IFwkMSkKLSt9Ci0rYXNfZnVuY19zdWNj ZXNzICgpIHsKLSsgIGFzX2Z1bmNfcmV0dXJuIDAKLSt9Ci0rYXNfZnVuY19mYWlsdXJlICgpIHsK LSsgIGFzX2Z1bmNfcmV0dXJuIDEKLSt9Ci0rYXNfZnVuY19yZXRfc3VjY2VzcyAoKSB7Ci0rICBy ZXR1cm4gMAotK30KLSthc19mdW5jX3JldF9mYWlsdXJlICgpIHsKLSsgIHJldHVybiAxCi0rfQot KwotK2V4aXRjb2RlPTAKLStpZiBhc19mdW5jX3N1Y2Nlc3M7IHRoZW4KLSsgIDoKLStlbHNlCi0r ICBleGl0Y29kZT0xCi0rICBlY2hvIGFzX2Z1bmNfc3VjY2VzcyBmYWlsZWQuCi0rZmkKLSsKLStp ZiBhc19mdW5jX2ZhaWx1cmU7IHRoZW4KLSsgIGV4aXRjb2RlPTEKLSsgIGVjaG8gYXNfZnVuY19m YWlsdXJlIHN1Y2NlZWRlZC4KLStmaQotKwotK2lmIGFzX2Z1bmNfcmV0X3N1Y2Nlc3M7IHRoZW4K LSsgIDoKLStlbHNlCi0rICBleGl0Y29kZT0xCi0rICBlY2hvIGFzX2Z1bmNfcmV0X3N1Y2Nlc3Mg ZmFpbGVkLgotK2ZpCi0rCi0raWYgYXNfZnVuY19yZXRfZmFpbHVyZTsgdGhlbgotKyAgZXhpdGNv ZGU9MQotKyAgZWNobyBhc19mdW5jX3JldF9mYWlsdXJlIHN1Y2NlZWRlZC4KLStmaQotKwotK2lm ICggc2V0IHg7IGFzX2Z1bmNfcmV0X3N1Y2Nlc3MgeSAmJiB0ZXN0IHggPSBcIlwkMVwiICk7IHRo ZW4KLSsgIDoKLStlbHNlCi0rICBleGl0Y29kZT0xCi0rICBlY2hvIHBvc2l0aW9uYWwgcGFyYW1l dGVycyB3ZXJlIG5vdCBzYXZlZC4KLStmaQotKwotK3Rlc3QgXCRleGl0Y29kZSA9IDApIHx8IHsg KGV4aXQgMSk7IGV4aXQgMTsgfQotKwotKygKLSsgIGFzX2xpbmVub18xPVwkTElORU5PCi0rICBh c19saW5lbm9fMj1cJExJTkVOTwotKyAgdGVzdCBcInhcJGFzX2xpbmVub18xXCIgIT0gXCJ4XCRh c19saW5lbm9fMlwiICYmCi0rICB0ZXN0IFwieFxgZXhwciBcJGFzX2xpbmVub18xICsgMVxgXCIg PSBcInhcJGFzX2xpbmVub18yXCIpIHx8IHsgKGV4aXQgMSk7IGV4aXQgMTsgfQotKyIpIDI+IC9k ZXYvbnVsbDsgdGhlbgotKyAgOgotK2Vsc2UKLSsgIGFzX2NhbmRpZGF0ZV9zaGVsbHM9Ci0rICAg IGFzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IKLStmb3IgYXNfZGlyIGluIC9i aW4kUEFUSF9TRVBBUkFUT1IvdXNyL2JpbiRQQVRIX1NFUEFSQVRPUiRQQVRICi0rZG8KLSsgIElG Uz0kYXNfc2F2ZV9JRlMKLSsgIHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCi0rICBjYXNl ICRhc19kaXIgaW4KLSsJIC8qKQotKwkgICBmb3IgYXNfYmFzZSBpbiBzaCBiYXNoIGtzaCBzaDU7 IGRvCi0rCSAgICAgYXNfY2FuZGlkYXRlX3NoZWxscz0iJGFzX2NhbmRpZGF0ZV9zaGVsbHMgJGFz X2Rpci8kYXNfYmFzZSIKLSsJICAgZG9uZTs7Ci0rICAgICAgIGVzYWMKLStkb25lCi0rSUZTPSRh c19zYXZlX0lGUwotKwotKwotKyAgICAgIGZvciBhc19zaGVsbCBpbiAkYXNfY2FuZGlkYXRlX3No ZWxscyAkU0hFTEw7IGRvCi0rCSAjIFRyeSBvbmx5IHNoZWxscyB0aGF0IGV4aXN0LCB0byBzYXZl IHNldmVyYWwgZm9ya3MuCi0rCSBpZiB7IHRlc3QgLWYgIiRhc19zaGVsbCIgfHwgdGVzdCAtZiAi JGFzX3NoZWxsLmV4ZSI7IH0gJiYKLSsJCXsgKCIkYXNfc2hlbGwiKSAyPiAvZGV2L251bGwgPDxc X0FTRU9GCi0raWYgdGVzdCAtbiAiJHtaU0hfVkVSU0lPTitzZXR9IiAmJiAoZW11bGF0ZSBzaCkg Pi9kZXYvbnVsbCAyPiYxOyB0aGVuCi0rICBlbXVsYXRlIHNoCi0rICBOVUxMQ01EPToKLSsgICMg UHJlLTQuMiB2ZXJzaW9ucyBvZiBac2ggZG8gd29yZCBzcGxpdHRpbmcgb24gJHsxKyIkQCJ9LCB3 aGljaAotKyAgIyBpcyBjb250cmFyeSB0byBvdXIgdXNhZ2UuICBEaXNhYmxlIHRoaXMgZmVhdHVy ZS4KLSsgIGFsaWFzIC1nICckezErIiRAIn0nPSciJEAiJwotKyAgc2V0b3B0IE5PX0dMT0JfU1VC U1QKLStlbHNlCi0rICBjYXNlIGAoc2V0IC1vKSAyPi9kZXYvbnVsbGAgaW4KLSsgICpwb3NpeCop IHNldCAtbyBwb3NpeCA7OwotK2VzYWMKLSsKLStmaQotKwotKwotKzoKLStfQVNFT0YKLSt9OyB0 aGVuCi0rICBDT05GSUdfU0hFTEw9JGFzX3NoZWxsCi0rCSAgICAgICBhc19oYXZlX3JlcXVpcmVk PXllcwotKwkgICAgICAgaWYgeyAiJGFzX3NoZWxsIiAyPiAvZGV2L251bGwgPDxcX0FTRU9GCi0r aWYgdGVzdCAtbiAiJHtaU0hfVkVSU0lPTitzZXR9IiAmJiAoZW11bGF0ZSBzaCkgPi9kZXYvbnVs bCAyPiYxOyB0aGVuCi0rICBlbXVsYXRlIHNoCi0rICBOVUxMQ01EPToKLSsgICMgUHJlLTQuMiB2 ZXJzaW9ucyBvZiBac2ggZG8gd29yZCBzcGxpdHRpbmcgb24gJHsxKyIkQCJ9LCB3aGljaAotKyAg IyBpcyBjb250cmFyeSB0byBvdXIgdXNhZ2UuICBEaXNhYmxlIHRoaXMgZmVhdHVyZS4KLSsgIGFs aWFzIC1nICckezErIiRAIn0nPSciJEAiJwotKyAgc2V0b3B0IE5PX0dMT0JfU1VCU1QKLStlbHNl Ci0rICBjYXNlIGAoc2V0IC1vKSAyPi9kZXYvbnVsbGAgaW4KLSsgICpwb3NpeCopIHNldCAtbyBw b3NpeCA7OwotK2VzYWMKLSsKLStmaQotKwotKwotKzoKLSsoYXNfZnVuY19yZXR1cm4gKCkgewot KyAgKGV4aXQgJDEpCi0rfQotK2FzX2Z1bmNfc3VjY2VzcyAoKSB7Ci0rICBhc19mdW5jX3JldHVy biAwCi0rfQotK2FzX2Z1bmNfZmFpbHVyZSAoKSB7Ci0rICBhc19mdW5jX3JldHVybiAxCi0rfQot K2FzX2Z1bmNfcmV0X3N1Y2Nlc3MgKCkgewotKyAgcmV0dXJuIDAKLSt9Ci0rYXNfZnVuY19yZXRf ZmFpbHVyZSAoKSB7Ci0rICByZXR1cm4gMQotK30KLSsKLStleGl0Y29kZT0wCi0raWYgYXNfZnVu Y19zdWNjZXNzOyB0aGVuCi0rICA6Ci0rZWxzZQotKyAgZXhpdGNvZGU9MQotKyAgZWNobyBhc19m dW5jX3N1Y2Nlc3MgZmFpbGVkLgotK2ZpCi0rCi0raWYgYXNfZnVuY19mYWlsdXJlOyB0aGVuCi0r ICBleGl0Y29kZT0xCi0rICBlY2hvIGFzX2Z1bmNfZmFpbHVyZSBzdWNjZWVkZWQuCi0rZmkKLSsK LStpZiBhc19mdW5jX3JldF9zdWNjZXNzOyB0aGVuCi0rICA6Ci0rZWxzZQotKyAgZXhpdGNvZGU9 MQotKyAgZWNobyBhc19mdW5jX3JldF9zdWNjZXNzIGZhaWxlZC4KLStmaQotKwotK2lmIGFzX2Z1 bmNfcmV0X2ZhaWx1cmU7IHRoZW4KLSsgIGV4aXRjb2RlPTEKLSsgIGVjaG8gYXNfZnVuY19yZXRf ZmFpbHVyZSBzdWNjZWVkZWQuCi0rZmkKLSsKLStpZiAoIHNldCB4OyBhc19mdW5jX3JldF9zdWNj ZXNzIHkgJiYgdGVzdCB4ID0gIiQxIiApOyB0aGVuCi0rICA6Ci0rZWxzZQotKyAgZXhpdGNvZGU9 MQotKyAgZWNobyBwb3NpdGlvbmFsIHBhcmFtZXRlcnMgd2VyZSBub3Qgc2F2ZWQuCi0rZmkKLSsK LSt0ZXN0ICRleGl0Y29kZSA9IDApIHx8IHsgKGV4aXQgMSk7IGV4aXQgMTsgfQotKwotKygKLSsg IGFzX2xpbmVub18xPSRMSU5FTk8KLSsgIGFzX2xpbmVub18yPSRMSU5FTk8KLSsgIHRlc3QgIngk YXNfbGluZW5vXzEiICE9ICJ4JGFzX2xpbmVub18yIiAmJgotKyAgdGVzdCAieGBleHByICRhc19s aW5lbm9fMSArIDFgIiA9ICJ4JGFzX2xpbmVub18yIikgfHwgeyAoZXhpdCAxKTsgZXhpdCAxOyB9 Ci0rCi0rX0FTRU9GCi0rfTsgdGhlbgotKyAgYnJlYWsKLStmaQotKwotK2ZpCi0rCi0rICAgICAg ZG9uZQotKwotKyAgICAgIGlmIHRlc3QgIngkQ09ORklHX1NIRUxMIiAhPSB4OyB0aGVuCi0rICBm b3IgYXNfdmFyIGluIEJBU0hfRU5WIEVOVgotKwlkbyAoJGFzX3Vuc2V0ICRhc192YXIpID4vZGV2 L251bGwgMj4mMSAmJiAkYXNfdW5zZXQgJGFzX3ZhcgotKwlkb25lCi0rCWV4cG9ydCBDT05GSUdf U0hFTEwKLSsJZXhlYyAiJENPTkZJR19TSEVMTCIgIiRhc19teXNlbGYiICR7MSsiJEAifQotK2Zp Ci0rCi0rCi0rICAgIGlmIHRlc3QgJGFzX2hhdmVfcmVxdWlyZWQgPSBubzsgdGhlbgotKyAgZWNo byBUaGlzIHNjcmlwdCByZXF1aXJlcyBhIHNoZWxsIG1vcmUgbW9kZXJuIHRoYW4gYWxsIHRoZQot KyAgICAgIGVjaG8gc2hlbGxzIHRoYXQgSSBmb3VuZCBvbiB5b3VyIHN5c3RlbS4gIFBsZWFzZSBp bnN0YWxsIGEKLSsgICAgICBlY2hvIG1vZGVybiBzaGVsbCwgb3IgbWFudWFsbHkgcnVuIHRoZSBz Y3JpcHQgdW5kZXIgc3VjaCBhCi0rICAgICAgZWNobyBzaGVsbCBpZiB5b3UgZG8gaGF2ZSBvbmUu Ci0rICAgICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9Ci0rZmkKLSsKLSsKLStmaQotKwotK2ZpCi0r Ci0rCi0rCi0rKGV2YWwgImFzX2Z1bmNfcmV0dXJuICgpIHsKLSsgIChleGl0IFwkMSkKLSt9Ci0r YXNfZnVuY19zdWNjZXNzICgpIHsKLSsgIGFzX2Z1bmNfcmV0dXJuIDAKLSt9Ci0rYXNfZnVuY19m YWlsdXJlICgpIHsKLSsgIGFzX2Z1bmNfcmV0dXJuIDEKLSt9Ci0rYXNfZnVuY19yZXRfc3VjY2Vz cyAoKSB7Ci0rICByZXR1cm4gMAotK30KLSthc19mdW5jX3JldF9mYWlsdXJlICgpIHsKLSsgIHJl dHVybiAxCi0rfQotKwotK2V4aXRjb2RlPTAKLStpZiBhc19mdW5jX3N1Y2Nlc3M7IHRoZW4KLSsg IDoKLStlbHNlCi0rICBleGl0Y29kZT0xCi0rICBlY2hvIGFzX2Z1bmNfc3VjY2VzcyBmYWlsZWQu Ci0rZmkKLSsKLStpZiBhc19mdW5jX2ZhaWx1cmU7IHRoZW4KLSsgIGV4aXRjb2RlPTEKLSsgIGVj aG8gYXNfZnVuY19mYWlsdXJlIHN1Y2NlZWRlZC4KLStmaQotKwotK2lmIGFzX2Z1bmNfcmV0X3N1 Y2Nlc3M7IHRoZW4KLSsgIDoKLStlbHNlCi0rICBleGl0Y29kZT0xCi0rICBlY2hvIGFzX2Z1bmNf cmV0X3N1Y2Nlc3MgZmFpbGVkLgotK2ZpCi0rCi0raWYgYXNfZnVuY19yZXRfZmFpbHVyZTsgdGhl bgotKyAgZXhpdGNvZGU9MQotKyAgZWNobyBhc19mdW5jX3JldF9mYWlsdXJlIHN1Y2NlZWRlZC4K LStmaQotKwotK2lmICggc2V0IHg7IGFzX2Z1bmNfcmV0X3N1Y2Nlc3MgeSAmJiB0ZXN0IHggPSBc IlwkMVwiICk7IHRoZW4KLSsgIDoKLStlbHNlCi0rICBleGl0Y29kZT0xCi0rICBlY2hvIHBvc2l0 aW9uYWwgcGFyYW1ldGVycyB3ZXJlIG5vdCBzYXZlZC4KLStmaQotKwotK3Rlc3QgXCRleGl0Y29k ZSA9IDAiKSB8fCB7Ci0rICBlY2hvIE5vIHNoZWxsIGZvdW5kIHRoYXQgc3VwcG9ydHMgc2hlbGwg ZnVuY3Rpb25zLgotKyAgZWNobyBQbGVhc2UgdGVsbCBidWctYXV0b2NvbmZAZ251Lm9yZyBhYm91 dCB5b3VyIHN5c3RlbSwKLSsgIGVjaG8gaW5jbHVkaW5nIGFueSBlcnJvciBwb3NzaWJseSBvdXRw dXQgYmVmb3JlIHRoaXMgbWVzc2FnZS4KLSsgIGVjaG8gVGhpcyBjYW4gaGVscCB1cyBpbXByb3Zl IGZ1dHVyZSBhdXRvY29uZiB2ZXJzaW9ucy4KLSsgIGVjaG8gQ29uZmlndXJhdGlvbiB3aWxsIG5v dyBwcm9jZWVkIHdpdGhvdXQgc2hlbGwgZnVuY3Rpb25zLgotK30KLSsKLSsKLSsKLSsgIGFzX2xp bmVub18xPSRMSU5FTk8KLSsgIGFzX2xpbmVub18yPSRMSU5FTk8KLSsgIHRlc3QgIngkYXNfbGlu ZW5vXzEiICE9ICJ4JGFzX2xpbmVub18yIiAmJgotKyAgdGVzdCAieGBleHByICRhc19saW5lbm9f MSArIDFgIiA9ICJ4JGFzX2xpbmVub18yIiB8fCB7Ci0rCi0rICAjIENyZWF0ZSAkYXNfbWUubGlu ZW5vIGFzIGEgY29weSBvZiAkYXNfbXlzZWxmLCBidXQgd2l0aCAkTElORU5PCi0rICAjIHVuaWZv cm1seSByZXBsYWNlZCBieSB0aGUgbGluZSBudW1iZXIuICBUaGUgZmlyc3QgJ3NlZCcgaW5zZXJ0 cyBhCi0rICAjIGxpbmUtbnVtYmVyIGxpbmUgYWZ0ZXIgZWFjaCBsaW5lIHVzaW5nICRMSU5FTk87 IHRoZSBzZWNvbmQgJ3NlZCcKLSsgICMgZG9lcyB0aGUgcmVhbCB3b3JrLiAgVGhlIHNlY29uZCBz Y3JpcHQgdXNlcyAnTicgdG8gcGFpciBlYWNoCi0rICAjIGxpbmUtbnVtYmVyIGxpbmUgd2l0aCB0 aGUgbGluZSBjb250YWluaW5nICRMSU5FTk8sIGFuZCBhcHBlbmRzCi0rICAjIHRyYWlsaW5nICct JyBkdXJpbmcgc3Vic3RpdHV0aW9uIHNvIHRoYXQgJExJTkVOTyBpcyBub3QgYSBzcGVjaWFsCi0r ICAjIGNhc2UgYXQgbGluZSBlbmQuCi0rICAjIChSYWphIFIgSGFyaW5hdGggc3VnZ2VzdGVkIHNl ZCAnPScsIGFuZCBQYXVsIEVnZ2VydCB3cm90ZSB0aGUKLSsgICMgc2NyaXB0cyB3aXRoIG9wdGlt aXphdGlvbiBoZWxwIGZyb20gUGFvbG8gQm9uemluaS4gIEJsYW1lIExlZQotKyAgIyBFLiBNY01h aG9uICgxOTMxLTE5ODkpIGZvciBzZWQncyBzeW50YXguICA6LSkKLSsgIHNlZCAtbiAnCi0rICAg IHAKLSsgICAgL1skXUxJTkVOTy89Ci0rICAnIDwkYXNfbXlzZWxmIHwKLSsgICAgc2VkICcKLSsg ICAgICBzL1skXUxJTkVOTy4qLyYtLwotKyAgICAgIHQgbGluZW5vCi0rICAgICAgYgotKyAgICAg IDpsaW5lbm8KLSsgICAgICBOCi0rICAgICAgOmxvb3AKLSsgICAgICBzL1skXUxJTkVOT1woW14n JGFzX2NyX2FsbnVtJ19dLipcblwpXCguKlwpL1wyXDFcMi8KLSsgICAgICB0IGxvb3AKLSsgICAg ICBzLy1cbi4qLy8KLSsgICAgJyA+JGFzX21lLmxpbmVubyAmJgotKyAgY2htb2QgK3ggIiRhc19t ZS5saW5lbm8iIHx8Ci0rICAgIHsgJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IGNhbm5vdCBjcmVh dGUgJGFzX21lLmxpbmVubzsgcmVydW4gd2l0aCBhIFBPU0lYIHNoZWxsIiA+JjIKLSsgICB7IChl eGl0IDEpOyBleGl0IDE7IH07IH0KLSsKLSsgICMgRG9uJ3QgdHJ5IHRvIGV4ZWMgYXMgaXQgY2hh bmdlcyAkWzBdLCBjYXVzaW5nIGFsbCBzb3J0IG9mIHByb2JsZW1zCi0rICAjICh0aGUgZGlybmFt ZSBvZiAkWzBdIGlzIG5vdCB0aGUgcGxhY2Ugd2hlcmUgd2UgbWlnaHQgZmluZCB0aGUKLSsgICMg b3JpZ2luYWwgYW5kIHNvIG9uLiAgQXV0b2NvbmYgaXMgZXNwZWNpYWxseSBzZW5zaXRpdmUgdG8g dGhpcykuCi0rICAuICIuLyRhc19tZS5saW5lbm8iCi0rICAjIEV4aXQgc3RhdHVzIGlzIHRoYXQg b2YgdGhlIGxhc3QgY29tbWFuZC4KLSsgIGV4aXQKLSt9Ci0rCi0rCi0raWYgKGFzX2Rpcj1gZGly bmFtZSAtLSAvYCAmJiB0ZXN0ICJYJGFzX2RpciIgPSBYLykgPi9kZXYvbnVsbCAyPiYxOyB0aGVu Ci0rICBhc19kaXJuYW1lPWRpcm5hbWUKLStlbHNlCi0rICBhc19kaXJuYW1lPWZhbHNlCi0rZmkK LSsKLStFQ0hPX0M9IEVDSE9fTj0gRUNIT19UPQotK2Nhc2UgYGVjaG8gLW4geGAgaW4KLSstbiop Ci0rICBjYXNlIGBlY2hvICd4XGMnYCBpbgotKyAgKmMqKSBFQ0hPX1Q9JwknOzsJIyBFQ0hPX1Qg aXMgc2luZ2xlIHRhYiBjaGFyYWN0ZXIuCi0rICAqKSAgIEVDSE9fQz0nXGMnOzsKLSsgIGVzYWM7 OwotKyopCi0rICBFQ0hPX049Jy1uJzs7Ci0rZXNhYwotK2lmIGV4cHIgYSA6ICdcKGFcKScgPi9k ZXYvbnVsbCAyPiYxICYmCi0rICAgdGVzdCAiWGBleHByIDAwMDAxIDogJy4qXCguLi5cKSdgIiA9 IFgwMDE7IHRoZW4KLSsgIGFzX2V4cHI9ZXhwcgotK2Vsc2UKLSsgIGFzX2V4cHI9ZmFsc2UKLStm aQotKwotK3JtIC1mIGNvbmYkJCBjb25mJCQuZXhlIGNvbmYkJC5maWxlCi0raWYgdGVzdCAtZCBj b25mJCQuZGlyOyB0aGVuCi0rICBybSAtZiBjb25mJCQuZGlyL2NvbmYkJC5maWxlCi0rZWxzZQot KyAgcm0gLWYgY29uZiQkLmRpcgotKyAgbWtkaXIgY29uZiQkLmRpciAyPi9kZXYvbnVsbAotK2Zp Ci0raWYgKGVjaG8gPmNvbmYkJC5maWxlKSAyPi9kZXYvbnVsbDsgdGhlbgotKyAgaWYgbG4gLXMg Y29uZiQkLmZpbGUgY29uZiQkIDI+L2Rldi9udWxsOyB0aGVuCi0rICAgIGFzX2xuX3M9J2xuIC1z JwotKyAgICAjIC4uLiBidXQgdGhlcmUgYXJlIHR3byBnb3RjaGFzOgotKyAgICAjIDEpIE9uIE1T WVMsIGJvdGggYGxuIC1zIGZpbGUgZGlyJyBhbmQgYGxuIGZpbGUgZGlyJyBmYWlsLgotKyAgICAj IDIpIERKR1BQIDwgMi4wNCBoYXMgbm8gc3ltbGlua3M7IGBsbiAtcycgY3JlYXRlcyBhIHdyYXBw ZXIgZXhlY3V0YWJsZS4KLSsgICAgIyBJbiBib3RoIGNhc2VzLCB3ZSBoYXZlIHRvIGRlZmF1bHQg dG8gYGNwIC1wJy4KLSsgICAgbG4gLXMgY29uZiQkLmZpbGUgY29uZiQkLmRpciAyPi9kZXYvbnVs bCAmJiB0ZXN0ICEgLWYgY29uZiQkLmV4ZSB8fAotKyAgICAgIGFzX2xuX3M9J2NwIC1wJwotKyAg ZWxpZiBsbiBjb25mJCQuZmlsZSBjb25mJCQgMj4vZGV2L251bGw7IHRoZW4KLSsgICAgYXNfbG5f cz1sbgotKyAgZWxzZQotKyAgICBhc19sbl9zPSdjcCAtcCcKLSsgIGZpCi0rZWxzZQotKyAgYXNf bG5fcz0nY3AgLXAnCi0rZmkKLStybSAtZiBjb25mJCQgY29uZiQkLmV4ZSBjb25mJCQuZGlyL2Nv bmYkJC5maWxlIGNvbmYkJC5maWxlCi0rcm1kaXIgY29uZiQkLmRpciAyPi9kZXYvbnVsbAotKwot K2lmIG1rZGlyIC1wIC4gMj4vZGV2L251bGw7IHRoZW4KLSsgIGFzX21rZGlyX3A9OgotK2Vsc2UK LSsgIHRlc3QgLWQgLi8tcCAmJiBybWRpciAuLy1wCi0rICBhc19ta2Rpcl9wPWZhbHNlCi0rZmkK LSsKLStpZiB0ZXN0IC14IC8gPi9kZXYvbnVsbCAyPiYxOyB0aGVuCi0rICBhc190ZXN0X3g9J3Rl c3QgLXgnCi0rZWxzZQotKyAgaWYgbHMgLWRMIC8gPi9kZXYvbnVsbCAyPiYxOyB0aGVuCi0rICAg IGFzX2xzX0xfb3B0aW9uPUwKLSsgIGVsc2UKLSsgICAgYXNfbHNfTF9vcHRpb249Ci0rICBmaQot KyAgYXNfdGVzdF94PScKLSsgICAgZXZhbCBzaCAtYyAnXCcnCi0rICAgICAgaWYgdGVzdCAtZCAi JDEiOyB0aGVuCi0rCXRlc3QgLWQgIiQxLy4iOwotKyAgICAgIGVsc2UKLSsJY2FzZSAkMSBpbgot KwktKilzZXQgIi4vJDEiOzsKLSsJZXNhYzsKLSsJY2FzZSBgbHMgLWxkJyRhc19sc19MX29wdGlv bicgIiQxIiAyPi9kZXYvbnVsbGAgaW4KLSsJPz8/W3N4XSopOjs7KilmYWxzZTs7ZXNhYztmaQot KyAgICAnXCcnIHNoCi0rICAnCi0rZmkKLSthc19leGVjdXRhYmxlX3A9JGFzX3Rlc3RfeAotKwot KyMgU2VkIGV4cHJlc3Npb24gdG8gbWFwIGEgc3RyaW5nIG9udG8gYSB2YWxpZCBDUFAgbmFtZS4K LSthc190cl9jcHA9ImV2YWwgc2VkICd5JSokYXNfY3JfbGV0dGVycyVQJGFzX2NyX0xFVFRFUlMl O3MlW15fJGFzX2NyX2FsbnVtXSVfJWcnIgotKwotKyMgU2VkIGV4cHJlc3Npb24gdG8gbWFwIGEg c3RyaW5nIG9udG8gYSB2YWxpZCB2YXJpYWJsZSBuYW1lLgotK2FzX3RyX3NoPSJldmFsIHNlZCAn eSUqKyVwcCU7cyVbXl8kYXNfY3JfYWxudW1dJV8lZyciCi0rCi0rCi0rCi0rCi0rIyBDaGVjayB0 aGF0IHdlIGFyZSBydW5uaW5nIHVuZGVyIHRoZSBjb3JyZWN0IHNoZWxsLgotK1NIRUxMPSR7Q09O RklHX1NIRUxMLS9iaW4vc2h9Ci0rCi0rY2FzZSBYJGx0X0VDSE8gaW4KLStYKi0tZmFsbGJhY2st ZWNobykKLSsgICMgUmVtb3ZlIG9uZSBsZXZlbCBvZiBxdW90YXRpb24gKHdoaWNoIHdhcyByZXF1 aXJlZCBmb3IgTWFrZSkuCi0rICBFQ0hPPWBlY2hvICIkbHRfRUNITyIgfCBzZWQgJ3MsXFxcXFwk XFwkMCwnJDAnLCdgCi0rICA7OwotK2VzYWMKLSsKLStFQ0hPPSR7bHRfRUNITy1lY2hvfQotK2lm IHRlc3QgIlgkMSIgPSBYLS1uby1yZWV4ZWM7IHRoZW4KLSsgICMgRGlzY2FyZCB0aGUgLS1uby1y ZWV4ZWMgZmxhZywgYW5kIGNvbnRpbnVlLgotKyAgc2hpZnQKLStlbGlmIHRlc3QgIlgkMSIgPSBY LS1mYWxsYmFjay1lY2hvOyB0aGVuCi0rICAjIEF2b2lkIGlubGluZSBkb2N1bWVudCBoZXJlLCBp dCBtYXkgYmUgbGVmdCBvdmVyCi0rICA6Ci0rZWxpZiB0ZXN0ICJYYHsgJEVDSE8gJ1x0JzsgfSAy Pi9kZXYvbnVsbGAiID0gJ1hcdCcgOyB0aGVuCi0rICAjIFlpcHBlZSwgJEVDSE8gd29ya3MhCi0r ICA6Ci0rZWxzZQotKyAgIyBSZXN0YXJ0IHVuZGVyIHRoZSBjb3JyZWN0IHNoZWxsLgotKyAgZXhl YyAkU0hFTEwgIiQwIiAtLW5vLXJlZXhlYyAkezErIiRAIn0KLStmaQotKwotK2lmIHRlc3QgIlgk MSIgPSBYLS1mYWxsYmFjay1lY2hvOyB0aGVuCi0rICAjIHVzZWQgYXMgZmFsbGJhY2sgZWNobwot KyAgc2hpZnQKLSsgIGNhdCA8PF9MVF9FT0YKLSskKgotK19MVF9FT0YKLSsgIGV4aXQgMAotIGZp Ci0gCi0tbWtkaXIgLXAgYnVpbGQvdW5peC9sb2NhbAotLXBhdGg9ImJ1aWxkL3VuaXgvbG9jYWwv cGFyYW1ldGVycyIKLS1ybSAtZiAkcGF0aAotLXRvdWNoICRwYXRoCi0tZm9yIHBhcmFtIGluICQq Ci0tZG8KLS0gICAgICAgIGVjaG8gJHBhcmFtID4+ICRwYXRoCi0tZG9uZQotLQotLXByaW50ZiAn VHJ5aW5nIHRvIGZpbmQgdGhlIFRjbCBpbnRlcnByZXRlci4uLiAnCi0tdGNsX2ZvdW5kPTAKLS0K LS1mb3IgcGF0aCBpbiAiL3Vzci9iaW4vdGNsc2giIFwKLS0gICAgICAgICAgICAiL3Vzci9sb2Nh bC9iaW4vdGNsc2g4LjUiIFwKLS0gICAgICAgICAgICAiL3Vzci9sb2NhbC9iaW4vdGNsc2g4LjQi IFwKLS0gICAgICAgICAgICAiL3Vzci9sb2NhbC9iaW4vdGNsc2g4LjMiOyBkbwotLSAgICBpZiBb IC14ICRwYXRoIF0KLS0gICAgdGhlbgotLSAgICAgICAgZWNobyAkcGF0aCA+IGJ1aWxkL3VuaXgv bG9jYWwvdGNsCi0tICAgICAgICBlY2hvICRwYXRoCi0tICAgICAgICB0Y2xfZm91bmQ9MQotKyMg VGhlIEhQLVVYIGtzaCBhbmQgUE9TSVggc2hlbGwgcHJpbnQgdGhlIHRhcmdldCBkaXJlY3Rvcnkg dG8gc3Rkb3V0Ci0rIyBpZiBDRFBBVEggaXMgc2V0LgotKyh1bnNldCBDRFBBVEgpID4vZGV2L251 bGwgMj4mMSAmJiB1bnNldCBDRFBBVEgKLSsKLStpZiB0ZXN0IC16ICIkbHRfRUNITyI7IHRoZW4K LSsgIGlmIHRlc3QgIlgke2VjaG9fdGVzdF9zdHJpbmcrc2V0fSIgIT0gWHNldDsgdGhlbgotKyAg ICAjIGZpbmQgYSBzdHJpbmcgYXMgbGFyZ2UgYXMgcG9zc2libGUsIGFzIGxvbmcgYXMgdGhlIHNo ZWxsIGNhbiBjb3BlIHdpdGggaXQKLSsgICAgZm9yIGNtZCBpbiAnc2VkIDUwcSAiJDAiJyAnc2Vk IDIwcSAiJDAiJyAnc2VkIDEwcSAiJDAiJyAnc2VkIDJxICIkMCInICdlY2hvIHRlc3QnOyBkbwot KyAgICAgICMgZXhwZWN0ZWQgc2l6ZXM6IGxlc3MgdGhhbiAyS2IsIDFLYiwgNTEyIGJ5dGVzLCAx NiBieXRlcywgLi4uCi0rICAgICAgaWYgeyBlY2hvX3Rlc3Rfc3RyaW5nPWBldmFsICRjbWRgOyB9 IDI+L2Rldi9udWxsICYmCi0rCSB7IHRlc3QgIlgkZWNob190ZXN0X3N0cmluZyIgPSAiWCRlY2hv X3Rlc3Rfc3RyaW5nIjsgfSAyPi9kZXYvbnVsbAotKyAgICAgIHRoZW4KLSsgICAgICAgIGJyZWFr Ci0rICAgICAgZmkKLSsgICAgZG9uZQotKyAgZmkKLSsKLSsgIGlmIHRlc3QgIlhgeyAkRUNITyAn XHQnOyB9IDI+L2Rldi9udWxsYCIgPSAnWFx0JyAmJgotKyAgICAgZWNob190ZXN0aW5nX3N0cmlu Zz1geyAkRUNITyAiJGVjaG9fdGVzdF9zdHJpbmciOyB9IDI+L2Rldi9udWxsYCAmJgotKyAgICAg dGVzdCAiWCRlY2hvX3Rlc3Rpbmdfc3RyaW5nIiA9ICJYJGVjaG9fdGVzdF9zdHJpbmciOyB0aGVu Ci0rICAgIDoKLSsgIGVsc2UKLSsgICAgIyBUaGUgU29sYXJpcywgQUlYLCBhbmQgRGlnaXRhbCBV bml4IGRlZmF1bHQgZWNobyBwcm9ncmFtcyB1bnF1b3RlCi0rICAgICMgYmFja3NsYXNoZXMuICBU aGlzIG1ha2VzIGl0IGltcG9zc2libGUgdG8gcXVvdGUgYmFja3NsYXNoZXMgdXNpbmcKLSsgICAg IyAgIGVjaG8gIiRzb21ldGhpbmciIHwgc2VkICdzL1xcL1xcXFwvZycKLSsgICAgIwotKyAgICAj IFNvLCBmaXJzdCB3ZSBsb29rIGZvciBhIHdvcmtpbmcgZWNobyBpbiB0aGUgdXNlcidzIFBBVEgu Ci0rCi0rICAgIGx0X3NhdmVfaWZzPSIkSUZTIjsgSUZTPSRQQVRIX1NFUEFSQVRPUgotKyAgICBm b3IgZGlyIGluICRQQVRIIC91c3IvdWNiOyBkbwotKyAgICAgIElGUz0iJGx0X3NhdmVfaWZzIgot KyAgICAgIGlmICh0ZXN0IC1mICRkaXIvZWNobyB8fCB0ZXN0IC1mICRkaXIvZWNobyRhY19leGVl eHQpICYmCi0rICAgICAgICAgdGVzdCAiWGAoJGRpci9lY2hvICdcdCcpIDI+L2Rldi9udWxsYCIg PSAnWFx0JyAmJgotKyAgICAgICAgIGVjaG9fdGVzdGluZ19zdHJpbmc9YCgkZGlyL2VjaG8gIiRl Y2hvX3Rlc3Rfc3RyaW5nIikgMj4vZGV2L251bGxgICYmCi0rICAgICAgICAgdGVzdCAiWCRlY2hv X3Rlc3Rpbmdfc3RyaW5nIiA9ICJYJGVjaG9fdGVzdF9zdHJpbmciOyB0aGVuCi0rICAgICAgICBF Q0hPPSIkZGlyL2VjaG8iCi0gICAgICAgICBicmVhawotKyAgICAgIGZpCi0rICAgIGRvbmUKLSsg ICAgSUZTPSIkbHRfc2F2ZV9pZnMiCi0rCi0rICAgIGlmIHRlc3QgIlgkRUNITyIgPSBYZWNobzsg dGhlbgotKyAgICAgICMgV2UgZGlkbid0IGZpbmQgYSBiZXR0ZXIgZWNobywgc28gbG9vayBmb3Ig YWx0ZXJuYXRpdmVzLgotKyAgICAgIGlmIHRlc3QgIlhgeyBwcmludCAtciAnXHQnOyB9IDI+L2Rl di9udWxsYCIgPSAnWFx0JyAmJgotKyAgICAgICAgIGVjaG9fdGVzdGluZ19zdHJpbmc9YHsgcHJp bnQgLXIgIiRlY2hvX3Rlc3Rfc3RyaW5nIjsgfSAyPi9kZXYvbnVsbGAgJiYKLSsgICAgICAgICB0 ZXN0ICJYJGVjaG9fdGVzdGluZ19zdHJpbmciID0gIlgkZWNob190ZXN0X3N0cmluZyI7IHRoZW4K LSsgICAgICAgICMgVGhpcyBzaGVsbCBoYXMgYSBidWlsdGluIHByaW50IC1yIHRoYXQgZG9lcyB0 aGUgdHJpY2suCi0rICAgICAgICBFQ0hPPSdwcmludCAtcicKLSsgICAgICBlbGlmIHsgdGVzdCAt ZiAvYmluL2tzaCB8fCB0ZXN0IC1mIC9iaW4va3NoJGFjX2V4ZWV4dDsgfSAmJgotKwkgICB0ZXN0 ICJYJENPTkZJR19TSEVMTCIgIT0gWC9iaW4va3NoOyB0aGVuCi0rICAgICAgICAjIElmIHdlIGhh dmUga3NoLCB0cnkgcnVubmluZyBjb25maWd1cmUgYWdhaW4gd2l0aCBpdC4KLSsgICAgICAgIE9S SUdJTkFMX0NPTkZJR19TSEVMTD0ke0NPTkZJR19TSEVMTC0vYmluL3NofQotKyAgICAgICAgZXhw b3J0IE9SSUdJTkFMX0NPTkZJR19TSEVMTAotKyAgICAgICAgQ09ORklHX1NIRUxMPS9iaW4va3No Ci0rICAgICAgICBleHBvcnQgQ09ORklHX1NIRUxMCi0rICAgICAgICBleGVjICRDT05GSUdfU0hF TEwgIiQwIiAtLW5vLXJlZXhlYyAkezErIiRAIn0KLSsgICAgICBlbHNlCi0rICAgICAgICAjIFRy eSB1c2luZyBwcmludGYuCi0rICAgICAgICBFQ0hPPSdwcmludGYgJXNcbicKLSsgICAgICAgIGlm IHRlc3QgIlhgeyAkRUNITyAnXHQnOyB9IDI+L2Rldi9udWxsYCIgPSAnWFx0JyAmJgotKwkgICBl Y2hvX3Rlc3Rpbmdfc3RyaW5nPWB7ICRFQ0hPICIkZWNob190ZXN0X3N0cmluZyI7IH0gMj4vZGV2 L251bGxgICYmCi0rCSAgIHRlc3QgIlgkZWNob190ZXN0aW5nX3N0cmluZyIgPSAiWCRlY2hvX3Rl c3Rfc3RyaW5nIjsgdGhlbgotKwkgICMgQ29vbCwgcHJpbnRmIHdvcmtzCi0rCSAgOgotKyAgICAg ICAgZWxpZiBlY2hvX3Rlc3Rpbmdfc3RyaW5nPWAoJE9SSUdJTkFMX0NPTkZJR19TSEVMTCAiJDAi IC0tZmFsbGJhY2stZWNobyAnXHQnKSAyPi9kZXYvbnVsbGAgJiYKLSsJICAgICB0ZXN0ICJYJGVj aG9fdGVzdGluZ19zdHJpbmciID0gJ1hcdCcgJiYKLSsJICAgICBlY2hvX3Rlc3Rpbmdfc3RyaW5n PWAoJE9SSUdJTkFMX0NPTkZJR19TSEVMTCAiJDAiIC0tZmFsbGJhY2stZWNobyAiJGVjaG9fdGVz dF9zdHJpbmciKSAyPi9kZXYvbnVsbGAgJiYKLSsJICAgICB0ZXN0ICJYJGVjaG9fdGVzdGluZ19z dHJpbmciID0gIlgkZWNob190ZXN0X3N0cmluZyI7IHRoZW4KLSsJICBDT05GSUdfU0hFTEw9JE9S SUdJTkFMX0NPTkZJR19TSEVMTAotKwkgIGV4cG9ydCBDT05GSUdfU0hFTEwKLSsJICBTSEVMTD0i JENPTkZJR19TSEVMTCIKLSsJICBleHBvcnQgU0hFTEwKLSsJICBFQ0hPPSIkQ09ORklHX1NIRUxM ICQwIC0tZmFsbGJhY2stZWNobyIKLSsgICAgICAgIGVsaWYgZWNob190ZXN0aW5nX3N0cmluZz1g KCRDT05GSUdfU0hFTEwgIiQwIiAtLWZhbGxiYWNrLWVjaG8gJ1x0JykgMj4vZGV2L251bGxgICYm Ci0rCSAgICAgdGVzdCAiWCRlY2hvX3Rlc3Rpbmdfc3RyaW5nIiA9ICdYXHQnICYmCi0rCSAgICAg ZWNob190ZXN0aW5nX3N0cmluZz1gKCRDT05GSUdfU0hFTEwgIiQwIiAtLWZhbGxiYWNrLWVjaG8g IiRlY2hvX3Rlc3Rfc3RyaW5nIikgMj4vZGV2L251bGxgICYmCi0rCSAgICAgdGVzdCAiWCRlY2hv X3Rlc3Rpbmdfc3RyaW5nIiA9ICJYJGVjaG9fdGVzdF9zdHJpbmciOyB0aGVuCi0rCSAgRUNITz0i JENPTkZJR19TSEVMTCAkMCAtLWZhbGxiYWNrLWVjaG8iCi0rICAgICAgICBlbHNlCi0rCSAgIyBt YXliZSB3aXRoIGEgc21hbGxlciBzdHJpbmcuLi4KLSsJICBwcmV2PToKLSsKLSsJICBmb3IgY21k IGluICdlY2hvIHRlc3QnICdzZWQgMnEgIiQwIicgJ3NlZCAxMHEgIiQwIicgJ3NlZCAyMHEgIiQw IicgJ3NlZCA1MHEgIiQwIic7IGRvCi0rCSAgICBpZiB7IHRlc3QgIlgkZWNob190ZXN0X3N0cmlu ZyIgPSAiWGBldmFsICRjbWRgIjsgfSAyPi9kZXYvbnVsbAotKwkgICAgdGhlbgotKwkgICAgICBi cmVhawotKwkgICAgZmkKLSsJICAgIHByZXY9IiRjbWQiCi0rCSAgZG9uZQotKwotKwkgIGlmIHRl c3QgIiRwcmV2IiAhPSAnc2VkIDUwcSAiJDAiJzsgdGhlbgotKwkgICAgZWNob190ZXN0X3N0cmlu Zz1gZXZhbCAkcHJldmAKLSsJICAgIGV4cG9ydCBlY2hvX3Rlc3Rfc3RyaW5nCi0rCSAgICBleGVj ICR7T1JJR0lOQUxfQ09ORklHX1NIRUxMLSR7Q09ORklHX1NIRUxMLS9iaW4vc2h9fSAiJDAiICR7 MSsiJEAifQotKwkgIGVsc2UKLSsJICAgICMgT29wcy4gIFdlIGxvc3QgY29tcGxldGVseSwgc28g anVzdCBzdGljayB3aXRoIGVjaG8uCi0rCSAgICBFQ0hPPWVjaG8KLSsJICBmaQotKyAgICAgICAg ZmkKLSsgICAgICBmaQotICAgICBmaQotKyAgZmkKLStmaQotKwotKyMgQ29weSBlY2hvIGFuZCBx dW90ZSB0aGUgY29weSBzdWl0YWJseSBmb3IgcGFzc2luZyB0byBsaWJ0b29sIGZyb20KLSsjIHRo ZSBNYWtlZmlsZSwgaW5zdGVhZCBvZiBxdW90aW5nIHRoZSBvcmlnaW5hbCwgd2hpY2ggaXMgdXNl ZCBsYXRlci4KLStsdF9FQ0hPPSRFQ0hPCi0raWYgdGVzdCAiWCRsdF9FQ0hPIiA9ICJYJENPTkZJ R19TSEVMTCAkMCAtLWZhbGxiYWNrLWVjaG8iOyB0aGVuCi0rICAgbHRfRUNITz0iJENPTkZJR19T SEVMTCBcXFwkXCQwIC0tZmFsbGJhY2stZWNobyIKLStmaQotKwotKwotKwotKwotK2V4ZWMgNzwm MCA8L2Rldi9udWxsIDY+JjEKLSsKLSsjIE5hbWUgb2YgdGhlIGhvc3QuCi0rIyBob3N0bmFtZSBv biBzb21lIHN5c3RlbXMgKFNWUjMuMiwgTGludXgpIHJldHVybnMgYSBib2d1cyBleGl0IHN0YXR1 cywKLSsjIHNvIHVuYW1lIGdldHMgcnVuIHRvby4KLSthY19ob3N0bmFtZT1gKGhvc3RuYW1lIHx8 IHVuYW1lIC1uKSAyPi9kZXYvbnVsbCB8IHNlZCAxcWAKLSsKLSsjCi0rIyBJbml0aWFsaXphdGlv bnMuCi0rIwotK2FjX2RlZmF1bHRfcHJlZml4PS91c3IvbG9jYWwKLSthY19jbGVhbl9maWxlcz0K LSthY19jb25maWdfbGlib2JqX2Rpcj0uCi0rTElCT0JKUz0KLStjcm9zc19jb21waWxpbmc9bm8K LStzdWJkaXJzPQotK01GTEFHUz0KLStNQUtFRkxBR1M9Ci0rU0hFTEw9JHtDT05GSUdfU0hFTEwt L2Jpbi9zaH0KLSsKLSsjIElkZW50aXR5IG9mIHRoaXMgcGFja2FnZS4KLStQQUNLQUdFX05BTUU9 J1NPQ0knCi0rUEFDS0FHRV9UQVJOQU1FPSdzb2NpJwotK1BBQ0tBR0VfVkVSU0lPTj0nMy4wLjAn Ci0rUEFDS0FHRV9TVFJJTkc9J1NPQ0kgMy4wLjAnCi0rUEFDS0FHRV9CVUdSRVBPUlQ9J21zb2Jj emFrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldCcKLSsKLSthY191bmlxdWVfZmlsZT0ic29jaS9jb3Jl L2Vycm9yLmNwcCIKLSsjIEZhY3RvcmluZyBkZWZhdWx0IGhlYWRlcnMgZm9yIG1vc3QgdGVzdHMu Ci0rYWNfaW5jbHVkZXNfZGVmYXVsdD0iXAotKyNpbmNsdWRlIDxzdGRpby5oPgotKyNpZmRlZiBI QVZFX1NZU19UWVBFU19ICi0rIyBpbmNsdWRlIDxzeXMvdHlwZXMuaD4KLSsjZW5kaWYKLSsjaWZk ZWYgSEFWRV9TWVNfU1RBVF9ICi0rIyBpbmNsdWRlIDxzeXMvc3RhdC5oPgotKyNlbmRpZgotKyNp ZmRlZiBTVERDX0hFQURFUlMKLSsjIGluY2x1ZGUgPHN0ZGxpYi5oPgotKyMgaW5jbHVkZSA8c3Rk ZGVmLmg+Ci0rI2Vsc2UKLSsjIGlmZGVmIEhBVkVfU1RETElCX0gKLSsjICBpbmNsdWRlIDxzdGRs aWIuaD4KLSsjIGVuZGlmCi0rI2VuZGlmCi0rI2lmZGVmIEhBVkVfU1RSSU5HX0gKLSsjIGlmICFk ZWZpbmVkIFNURENfSEVBREVSUyAmJiBkZWZpbmVkIEhBVkVfTUVNT1JZX0gKLSsjICBpbmNsdWRl IDxtZW1vcnkuaD4KLSsjIGVuZGlmCi0rIyBpbmNsdWRlIDxzdHJpbmcuaD4KLSsjZW5kaWYKLSsj aWZkZWYgSEFWRV9TVFJJTkdTX0gKLSsjIGluY2x1ZGUgPHN0cmluZ3MuaD4KLSsjZW5kaWYKLSsj aWZkZWYgSEFWRV9JTlRUWVBFU19ICi0rIyBpbmNsdWRlIDxpbnR0eXBlcy5oPgotKyNlbmRpZgot KyNpZmRlZiBIQVZFX1NURElOVF9ICi0rIyBpbmNsdWRlIDxzdGRpbnQuaD4KLSsjZW5kaWYKLSsj aWZkZWYgSEFWRV9VTklTVERfSAotKyMgaW5jbHVkZSA8dW5pc3RkLmg+Ci0rI2VuZGlmIgotKwot K2FjX3N1YnN0X3ZhcnM9J0xUTElCT0JKUwotK0xJQk9CSlMKLStSVU5fVEVTVFNfRkFMU0UKLStS VU5fVEVTVFNfVFJVRQotK3NlZF9vawotK2RpZmZfb2sKLStIVE1MX0RPQ19GQUxTRQotK0hUTUxf RE9DX1RSVUUKLStQRVJMCi0rZ3Nfb2sKLStkdmlwc19vawotK2xhdGV4X29rCi0rZG94eWdlbl9v awotK0lORk9fRE9DX0ZBTFNFCi0rSU5GT19ET0NfVFJVRQotK1BPU1RHUkVTUUxfRElSUwotK0hB VkVfUE9TVEdSRVNRTF9GQUxTRQotK0hBVkVfUE9TVEdSRVNRTF9UUlVFCi0rUE9TVEdSRVNRTF9M REZMQUdTCi0rUE9TVEdSRVNRTF9DRkxBR1MKLStQT1NUR1JFU1FMX1ZFUlNJT04KLStQR19DT05G SUcKLStPUkFDTEVfRElSUwotK0hBVkVfT1JBQ0xFX0ZBTFNFCi0rSEFWRV9PUkFDTEVfVFJVRQot K09SQUNMRV9PQ0lfTERGTEFHUwotK09SQUNMRV9PQ0lfQ0ZMQUdTCi0rT1JBQ0xFX09DSV9WRVJT SU9OCi0rTVlTUUxfRElSUwotK0hBVkVfTVlTUUxfRkFMU0UKLStIQVZFX01ZU1FMX1RSVUUKLStN WVNRTF9MREZMQUdTCi0rTVlTUUxfQ0ZMQUdTCi0rTVlTUUxfVkVSU0lPTgotK01ZU1FMX0NPTkZJ RwotK0JPT1NUX1ZFUlNJT04KLStCT09TVF9VTklUX1RFU1RfRlJBTUVXT1JLX0xJQgotK0JPT1NU X1JFR0VYX0xJQgotK0JPT1NUX0RBVEVfVElNRV9MSUIKLStCT09TVF9TSUdOQUxTX0xJQgotK0JP T1NUX1dTRVJJQUxJWkFUSU9OX0xJQgotK0JPT1NUX1NFUklBTElaQVRJT05fTElCCi0rQk9PU1Rf SU9TVFJFQU1TX0xJQgotK0JPT1NUX1RIUkVBRF9MSUIKLStCT09TVF9QUk9HUkFNX09QVElPTlNf TElCCi0rQk9PU1RfRklMRVNZU1RFTV9MSUIKLStCT09TVF9MSUJTCi0rQk9PU1RfQ0ZMQUdTCi0r U09DSV9QT1NUR1JFU1FMX0hFQURFUlNfQlVSSUVECi0rU09DSV9QT1NUR1JFU1FMX0hFQURFUlNf QlVSSUVEX0ZBTFNFCi0rU09DSV9QT1NUR1JFU1FMX0hFQURFUlNfQlVSSUVEX1RSVUUKLStTT0NJ X01ZU1FMX0hFQURFUlNfQlVSSUVECi0rU09DSV9NWVNRTF9IRUFERVJTX0JVUklFRF9GQUxTRQot K1NPQ0lfTVlTUUxfSEVBREVSU19CVVJJRURfVFJVRQotK1NPQ0lfSEVBREVSU19CVVJJRUQKLStT T0NJX0hFQURFUlNfQlVSSUVEX0ZBTFNFCi0rU09DSV9IRUFERVJTX0JVUklFRF9UUlVFCi0rQ1BQ Ci0rT1RPT0w2NAotK09UT09MCi0rTElQTwotK05NRURJVAotK0RTWU1VVElMCi0rbHRfRUNITwot K1JBTkxJQgotK0FSCi0rT0JKRFVNUAotK0xOX1MKLStOTQotK2FjX2N0X0RVTVBCSU4KLStEVU1Q QklOCi0rTEQKLStGR1JFUAotK0VHUkVQCi0rR1JFUAotK1NFRAotK2FtX19mYXN0ZGVwQ0NfRkFM U0UKLSthbV9fZmFzdGRlcENDX1RSVUUKLStDQ0RFUE1PREUKLSthY19jdF9DQwotK0NGTEFHUwot K0NDCi0rTElCVE9PTAotK0NYWENQUAotK2FtX19mYXN0ZGVwQ1hYX0ZBTFNFCi0rYW1fX2Zhc3Rk ZXBDWFhfVFJVRQotK0NYWERFUE1PREUKLStBTURFUEJBQ0tTTEFTSAotK0FNREVQX0ZBTFNFCi0r QU1ERVBfVFJVRQotK2FtX19xdW90ZQotK2FtX19pbmNsdWRlCi0rREVQRElSCi0rT0JKRVhUCi0r RVhFRVhUCi0rYWNfY3RfQ1hYCi0rQ1BQRkxBR1MKLStMREZMQUdTCi0rQ1hYRkxBR1MKLStDWFgK LStob3N0X29zCi0raG9zdF92ZW5kb3IKLStob3N0X2NwdQotK2hvc3QKLStidWlsZF9vcwotK2J1 aWxkX3ZlbmRvcgotK2J1aWxkX2NwdQotK2J1aWxkCi0rVVBMT0FEX0NPTU1BTkQKLStHRU5FUklD X0xJQlJBUllfVkVSU0lPTgotK1JQTV9SRUxFQVNFCi0rSEFWRV9DUFBVTklUX0ZBTFNFCi0rSEFW RV9DUFBVTklUX1RSVUUKLStDUFBVTklUX1ZFUlNJT04KLStDUFBVTklUX0xJQlMKLStDUFBVTklU X0NGTEFHUwotK0NQUFVOSVRfQ09ORklHCi0rYW1fX3VudGFyCi0rYW1fX3RhcgotK0FNVEFSCi0r YW1fX2xlYWRpbmdfZG90Ci0rU0VUX01BS0UKLStBV0sKLStta2Rpcl9wCi0rTUtESVJfUAotK0lO U1RBTExfU1RSSVBfUFJPR1JBTQotK1NUUklQCi0raW5zdGFsbF9zaAotK01BS0VJTkZPCi0rQVVU T0hFQURFUgotK0FVVE9NQUtFCi0rQVVUT0NPTkYKLStBQ0xPQ0FMCi0rVkVSU0lPTgotK1BBQ0tB R0UKLStDWUdQQVRIX1cKLSthbV9faXNyYwotK0lOU1RBTExfREFUQQotK0lOU1RBTExfU0NSSVBU Ci0rSU5TVEFMTF9QUk9HUkFNCi0rdGFyZ2V0X2FsaWFzCi0raG9zdF9hbGlhcwotK2J1aWxkX2Fs aWFzCi0rTElCUwotK0VDSE9fVAotK0VDSE9fTgotK0VDSE9fQwotK0RFRlMKLSttYW5kaXIKLSts b2NhbGVkaXIKLStsaWJkaXIKLStwc2RpcgotK3BkZmRpcgotK2R2aWRpcgotK2h0bWxkaXIKLStp bmZvZGlyCi0rZG9jZGlyCi0rb2xkaW5jbHVkZWRpcgotK2luY2x1ZGVkaXIKLStsb2NhbHN0YXRl ZGlyCi0rc2hhcmVkc3RhdGVkaXIKLStzeXNjb25mZGlyCi0rZGF0YWRpcgotK2RhdGFyb290ZGly Ci0rbGliZXhlY2RpcgotK3NiaW5kaXIKLStiaW5kaXIKLStwcm9ncmFtX3RyYW5zZm9ybV9uYW1l Ci0rcHJlZml4Ci0rZXhlY19wcmVmaXgKLStQQUNLQUdFX0JVR1JFUE9SVAotK1BBQ0tBR0VfU1RS SU5HCi0rUEFDS0FHRV9WRVJTSU9OCi0rUEFDS0FHRV9UQVJOQU1FCi0rUEFDS0FHRV9OQU1FCi0r UEFUSF9TRVBBUkFUT1IKLStTSEVMTCcKLSthY19zdWJzdF9maWxlcz0nJwotK2FjX3VzZXJfb3B0 cz0nCi0rZW5hYmxlX29wdGlvbl9jaGVja2luZwotK3dpdGhfY3BwdW5pdF9wcmVmaXgKLSt3aXRo X2NwcHVuaXRfZXhlY19wcmVmaXgKLStlbmFibGVfc2hhcmVkCi0rZW5hYmxlX3N0YXRpYwotK2Vu YWJsZV9kZXBlbmRlbmN5X3RyYWNraW5nCi0rd2l0aF9waWMKLStlbmFibGVfZmFzdF9pbnN0YWxs Ci0rd2l0aF9nbnVfbGQKLStlbmFibGVfbGlidG9vbF9sb2NrCi0rZW5hYmxlX2V4Y2VwdGlvbnMK LStlbmFibGVfaW5mb19kb2MKLStlbmFibGVfaHRtbF9kb2MKLSt3aXRoX2RvY2RpcgotK2VuYWJs ZV9idXJyaWVkX2hlYWRlcnMKLStlbmFibGVfbXlzcWxfYnVycmllZF9oZWFkZXJzCi0rZW5hYmxl X3Bvc3RncmVzcWxfYnVycmllZF9oZWFkZXJzCi0rd2l0aF9ib29zdAotK2VuYWJsZV9iYWNrZW5k X215c3FsCi0rd2l0aF9teXNxbAotK2VuYWJsZV9iYWNrZW5kX29yYWNsZQotK3dpdGhfb3JhY2xl Ci0rd2l0aF9vcmFjbGVfaW5jbHVkZQotK3dpdGhfb3JhY2xlX2xpYgotK2VuYWJsZV9iYWNrZW5k X3Bvc3RncmVzcWwKLSt3aXRoX3Bvc3RncmVzcWwKLSsnCi0rICAgICAgYWNfcHJlY2lvdXNfdmFy cz0nYnVpbGRfYWxpYXMKLStob3N0X2FsaWFzCi0rdGFyZ2V0X2FsaWFzCi0rQ1hYCi0rQ1hYRkxB R1MKLStMREZMQUdTCi0rTElCUwotK0NQUEZMQUdTCi0rQ0NDCi0rQ1hYQ1BQCi0rQ0MKLStDRkxB R1MKLStDUFAnCi0rCi0rCi0rIyBJbml0aWFsaXplIHNvbWUgdmFyaWFibGVzIHNldCBieSBvcHRp b25zLgotK2FjX2luaXRfaGVscD0KLSthY19pbml0X3ZlcnNpb249ZmFsc2UKLSthY191bnJlY29n bml6ZWRfb3B0cz0KLSthY191bnJlY29nbml6ZWRfc2VwPQotKyMgVGhlIHZhcmlhYmxlcyBoYXZl IHRoZSBzYW1lIG5hbWVzIGFzIHRoZSBvcHRpb25zLCB3aXRoCi0rIyBkYXNoZXMgY2hhbmdlZCB0 byB1bmRlcmxpbmVzLgotK2NhY2hlX2ZpbGU9L2Rldi9udWxsCi0rZXhlY19wcmVmaXg9Tk9ORQot K25vX2NyZWF0ZT0KLStub19yZWN1cnNpb249Ci0rcHJlZml4PU5PTkUKLStwcm9ncmFtX3ByZWZp eD1OT05FCi0rcHJvZ3JhbV9zdWZmaXg9Tk9ORQotK3Byb2dyYW1fdHJhbnNmb3JtX25hbWU9cyx4 LHgsCi0rc2lsZW50PQotK3NpdGU9Ci0rc3JjZGlyPQotK3ZlcmJvc2U9Ci0reF9pbmNsdWRlcz1O T05FCi0reF9saWJyYXJpZXM9Tk9ORQotKwotKyMgSW5zdGFsbGF0aW9uIGRpcmVjdG9yeSBvcHRp b25zLgotKyMgVGhlc2UgYXJlIGxlZnQgdW5leHBhbmRlZCBzbyB1c2VycyBjYW4gIm1ha2UgaW5z dGFsbCBleGVjX3ByZWZpeD0vZm9vIgotKyMgYW5kIGFsbCB0aGUgdmFyaWFibGVzIHRoYXQgYXJl IHN1cHBvc2VkIHRvIGJlIGJhc2VkIG9uIGV4ZWNfcHJlZml4Ci0rIyBieSBkZWZhdWx0IHdpbGwg YWN0dWFsbHkgY2hhbmdlLgotKyMgVXNlIGJyYWNlcyBpbnN0ZWFkIG9mIHBhcmVucyBiZWNhdXNl IHNoLCBwZXJsLCBldGMuIGFsc28gYWNjZXB0IHRoZW0uCi0rIyAoVGhlIGxpc3QgZm9sbG93cyB0 aGUgc2FtZSBvcmRlciBhcyB0aGUgR05VIENvZGluZyBTdGFuZGFyZHMuKQotK2JpbmRpcj0nJHtl eGVjX3ByZWZpeH0vYmluJwotK3NiaW5kaXI9JyR7ZXhlY19wcmVmaXh9L3NiaW4nCi0rbGliZXhl Y2Rpcj0nJHtleGVjX3ByZWZpeH0vbGliZXhlYycKLStkYXRhcm9vdGRpcj0nJHtwcmVmaXh9L3No YXJlJwotK2RhdGFkaXI9JyR7ZGF0YXJvb3RkaXJ9JwotK3N5c2NvbmZkaXI9JyR7cHJlZml4fS9l dGMnCi0rc2hhcmVkc3RhdGVkaXI9JyR7cHJlZml4fS9jb20nCi0rbG9jYWxzdGF0ZWRpcj0nJHtw cmVmaXh9L3ZhcicKLStpbmNsdWRlZGlyPScke3ByZWZpeH0vaW5jbHVkZScKLStvbGRpbmNsdWRl ZGlyPScvdXNyL2luY2x1ZGUnCi0rZG9jZGlyPScke2RhdGFyb290ZGlyfS9kb2MvJHtQQUNLQUdF X1RBUk5BTUV9JwotK2luZm9kaXI9JyR7ZGF0YXJvb3RkaXJ9L2luZm8nCi0raHRtbGRpcj0nJHtk b2NkaXJ9JwotK2R2aWRpcj0nJHtkb2NkaXJ9JwotK3BkZmRpcj0nJHtkb2NkaXJ9JwotK3BzZGly PScke2RvY2Rpcn0nCi0rbGliZGlyPScke2V4ZWNfcHJlZml4fS9saWInCi0rbG9jYWxlZGlyPSck e2RhdGFyb290ZGlyfS9sb2NhbGUnCi0rbWFuZGlyPScke2RhdGFyb290ZGlyfS9tYW4nCi0rCi0r YWNfcHJldj0KLSthY19kYXNoZGFzaD0KLStmb3IgYWNfb3B0aW9uCi0rZG8KLSsgICMgSWYgdGhl IHByZXZpb3VzIG9wdGlvbiBuZWVkcyBhbiBhcmd1bWVudCwgYXNzaWduIGl0LgotKyAgaWYgdGVz dCAtbiAiJGFjX3ByZXYiOyB0aGVuCi0rICAgIGV2YWwgJGFjX3ByZXY9XCRhY19vcHRpb24KLSsg ICAgYWNfcHJldj0KLSsgICAgY29udGludWUKLSsgIGZpCi0rCi0rICBjYXNlICRhY19vcHRpb24g aW4KLSsgICo9KikJYWNfb3B0YXJnPWBleHByICJYJGFjX29wdGlvbiIgOiAnW149XSo9XCguKlwp J2AgOzsKLSsgICopCWFjX29wdGFyZz15ZXMgOzsKLSsgIGVzYWMKLSsKLSsgICMgQWNjZXB0IHRo ZSBpbXBvcnRhbnQgQ3lnbnVzIGNvbmZpZ3VyZSBvcHRpb25zLCBzbyB3ZSBjYW4gZGlhZ25vc2Ug dHlwb3MuCi0rCi0rICBjYXNlICRhY19kYXNoZGFzaCRhY19vcHRpb24gaW4KLSsgIC0tKQotKyAg ICBhY19kYXNoZGFzaD15ZXMgOzsKLSsKLSsgIC1iaW5kaXIgfCAtLWJpbmRpciB8IC0tYmluZGkg fCAtLWJpbmQgfCAtLWJpbiB8IC0tYmkpCi0rICAgIGFjX3ByZXY9YmluZGlyIDs7Ci0rICAtYmlu ZGlyPSogfCAtLWJpbmRpcj0qIHwgLS1iaW5kaT0qIHwgLS1iaW5kPSogfCAtLWJpbj0qIHwgLS1i aT0qKQotKyAgICBiaW5kaXI9JGFjX29wdGFyZyA7OwotKwotKyAgLWJ1aWxkIHwgLS1idWlsZCB8 IC0tYnVpbCB8IC0tYnVpIHwgLS1idSkKLSsgICAgYWNfcHJldj1idWlsZF9hbGlhcyA7OwotKyAg LWJ1aWxkPSogfCAtLWJ1aWxkPSogfCAtLWJ1aWw9KiB8IC0tYnVpPSogfCAtLWJ1PSopCi0rICAg IGJ1aWxkX2FsaWFzPSRhY19vcHRhcmcgOzsKLSsKLSsgIC1jYWNoZS1maWxlIHwgLS1jYWNoZS1m aWxlIHwgLS1jYWNoZS1maWwgfCAtLWNhY2hlLWZpIFwKLSsgIHwgLS1jYWNoZS1mIHwgLS1jYWNo ZS0gfCAtLWNhY2hlIHwgLS1jYWNoIHwgLS1jYWMgfCAtLWNhIHwgLS1jKQotKyAgICBhY19wcmV2 PWNhY2hlX2ZpbGUgOzsKLSsgIC1jYWNoZS1maWxlPSogfCAtLWNhY2hlLWZpbGU9KiB8IC0tY2Fj aGUtZmlsPSogfCAtLWNhY2hlLWZpPSogXAotKyAgfCAtLWNhY2hlLWY9KiB8IC0tY2FjaGUtPSog fCAtLWNhY2hlPSogfCAtLWNhY2g9KiB8IC0tY2FjPSogfCAtLWNhPSogfCAtLWM9KikKLSsgICAg Y2FjaGVfZmlsZT0kYWNfb3B0YXJnIDs7Ci0rCi0rICAtLWNvbmZpZy1jYWNoZSB8IC1DKQotKyAg ICBjYWNoZV9maWxlPWNvbmZpZy5jYWNoZSA7OwotKwotKyAgLWRhdGFkaXIgfCAtLWRhdGFkaXIg fCAtLWRhdGFkaSB8IC0tZGF0YWQpCi0rICAgIGFjX3ByZXY9ZGF0YWRpciA7OwotKyAgLWRhdGFk aXI9KiB8IC0tZGF0YWRpcj0qIHwgLS1kYXRhZGk9KiB8IC0tZGF0YWQ9KikKLSsgICAgZGF0YWRp cj0kYWNfb3B0YXJnIDs7Ci0rCi0rICAtZGF0YXJvb3RkaXIgfCAtLWRhdGFyb290ZGlyIHwgLS1k YXRhcm9vdGRpIHwgLS1kYXRhcm9vdGQgfCAtLWRhdGFyb290IFwKLSsgIHwgLS1kYXRhcm9vIHwg LS1kYXRhcm8gfCAtLWRhdGFyKQotKyAgICBhY19wcmV2PWRhdGFyb290ZGlyIDs7Ci0rICAtZGF0 YXJvb3RkaXI9KiB8IC0tZGF0YXJvb3RkaXI9KiB8IC0tZGF0YXJvb3RkaT0qIHwgLS1kYXRhcm9v dGQ9KiBcCi0rICB8IC0tZGF0YXJvb3Q9KiB8IC0tZGF0YXJvbz0qIHwgLS1kYXRhcm89KiB8IC0t ZGF0YXI9KikKLSsgICAgZGF0YXJvb3RkaXI9JGFjX29wdGFyZyA7OwotKwotKyAgLWRpc2FibGUt KiB8IC0tZGlzYWJsZS0qKQotKyAgICBhY191c2Vyb3B0PWBleHByICJ4JGFjX29wdGlvbiIgOiAn eC0qZGlzYWJsZS1cKC4qXCknYAotKyAgICAjIFJlamVjdCBuYW1lcyB0aGF0IGFyZSBub3QgdmFs aWQgc2hlbGwgdmFyaWFibGUgbmFtZXMuCi0rICAgIGV4cHIgIngkYWNfdXNlcm9wdCIgOiAiLipb Xi0rLl8kYXNfY3JfYWxudW1dIiA+L2Rldi9udWxsICYmCi0rICAgICAgeyAkYXNfZWNobyAiJGFz X21lOiBlcnJvcjogaW52YWxpZCBmZWF0dXJlIG5hbWU6ICRhY191c2Vyb3B0IiA+JjIKLSsgICB7 IChleGl0IDEpOyBleGl0IDE7IH07IH0KLSsgICAgYWNfdXNlcm9wdF9vcmlnPSRhY191c2Vyb3B0 Ci0rICAgIGFjX3VzZXJvcHQ9YCRhc19lY2hvICIkYWNfdXNlcm9wdCIgfCBzZWQgJ3MvWy0rLl0v Xy9nJ2AKLSsgICAgY2FzZSAkYWNfdXNlcl9vcHRzIGluCi0rICAgICAgKiIKLSsiZW5hYmxlXyRh Y191c2Vyb3B0IgotKyIqKSA7OwotKyAgICAgICopIGFjX3VucmVjb2duaXplZF9vcHRzPSIkYWNf dW5yZWNvZ25pemVkX29wdHMkYWNfdW5yZWNvZ25pemVkX3NlcC0tZGlzYWJsZS0kYWNfdXNlcm9w dF9vcmlnIgotKwkgYWNfdW5yZWNvZ25pemVkX3NlcD0nLCAnOzsKLSsgICAgZXNhYwotKyAgICBl dmFsIGVuYWJsZV8kYWNfdXNlcm9wdD1ubyA7OwotKwotKyAgLWRvY2RpciB8IC0tZG9jZGlyIHwg LS1kb2NkaSB8IC0tZG9jIHwgLS1kbykKLSsgICAgYWNfcHJldj1kb2NkaXIgOzsKLSsgIC1kb2Nk aXI9KiB8IC0tZG9jZGlyPSogfCAtLWRvY2RpPSogfCAtLWRvYz0qIHwgLS1kbz0qKQotKyAgICBk b2NkaXI9JGFjX29wdGFyZyA7OwotKwotKyAgLWR2aWRpciB8IC0tZHZpZGlyIHwgLS1kdmlkaSB8 IC0tZHZpZCB8IC0tZHZpIHwgLS1kdikKLSsgICAgYWNfcHJldj1kdmlkaXIgOzsKLSsgIC1kdmlk aXI9KiB8IC0tZHZpZGlyPSogfCAtLWR2aWRpPSogfCAtLWR2aWQ9KiB8IC0tZHZpPSogfCAtLWR2 PSopCi0rICAgIGR2aWRpcj0kYWNfb3B0YXJnIDs7Ci0rCi0rICAtZW5hYmxlLSogfCAtLWVuYWJs ZS0qKQotKyAgICBhY191c2Vyb3B0PWBleHByICJ4JGFjX29wdGlvbiIgOiAneC0qZW5hYmxlLVwo W149XSpcKSdgCi0rICAgICMgUmVqZWN0IG5hbWVzIHRoYXQgYXJlIG5vdCB2YWxpZCBzaGVsbCB2 YXJpYWJsZSBuYW1lcy4KLSsgICAgZXhwciAieCRhY191c2Vyb3B0IiA6ICIuKlteLSsuXyRhc19j cl9hbG51bV0iID4vZGV2L251bGwgJiYKLSsgICAgICB7ICRhc19lY2hvICIkYXNfbWU6IGVycm9y OiBpbnZhbGlkIGZlYXR1cmUgbmFtZTogJGFjX3VzZXJvcHQiID4mMgotKyAgIHsgKGV4aXQgMSk7 IGV4aXQgMTsgfTsgfQotKyAgICBhY191c2Vyb3B0X29yaWc9JGFjX3VzZXJvcHQKLSsgICAgYWNf dXNlcm9wdD1gJGFzX2VjaG8gIiRhY191c2Vyb3B0IiB8IHNlZCAncy9bLSsuXS9fL2cnYAotKyAg ICBjYXNlICRhY191c2VyX29wdHMgaW4KLSsgICAgICAqIgotKyJlbmFibGVfJGFjX3VzZXJvcHQi Ci0rIiopIDs7Ci0rICAgICAgKikgYWNfdW5yZWNvZ25pemVkX29wdHM9IiRhY191bnJlY29nbml6 ZWRfb3B0cyRhY191bnJlY29nbml6ZWRfc2VwLS1lbmFibGUtJGFjX3VzZXJvcHRfb3JpZyIKLSsJ IGFjX3VucmVjb2duaXplZF9zZXA9JywgJzs7Ci0rICAgIGVzYWMKLSsgICAgZXZhbCBlbmFibGVf JGFjX3VzZXJvcHQ9XCRhY19vcHRhcmcgOzsKLSsKLSsgIC1leGVjLXByZWZpeCB8IC0tZXhlY19w cmVmaXggfCAtLWV4ZWMtcHJlZml4IHwgLS1leGVjLXByZWZpIFwKLSsgIHwgLS1leGVjLXByZWYg fCAtLWV4ZWMtcHJlIHwgLS1leGVjLXByIHwgLS1leGVjLXAgfCAtLWV4ZWMtIFwKLSsgIHwgLS1l eGVjIHwgLS1leGUgfCAtLWV4KQotKyAgICBhY19wcmV2PWV4ZWNfcHJlZml4IDs7Ci0rICAtZXhl Yy1wcmVmaXg9KiB8IC0tZXhlY19wcmVmaXg9KiB8IC0tZXhlYy1wcmVmaXg9KiB8IC0tZXhlYy1w cmVmaT0qIFwKLSsgIHwgLS1leGVjLXByZWY9KiB8IC0tZXhlYy1wcmU9KiB8IC0tZXhlYy1wcj0q IHwgLS1leGVjLXA9KiB8IC0tZXhlYy09KiBcCi0rICB8IC0tZXhlYz0qIHwgLS1leGU9KiB8IC0t ZXg9KikKLSsgICAgZXhlY19wcmVmaXg9JGFjX29wdGFyZyA7OwotKwotKyAgLWdhcyB8IC0tZ2Fz IHwgLS1nYSB8IC0tZykKLSsgICAgIyBPYnNvbGV0ZTsgdXNlIC0td2l0aC1nYXMuCi0rICAgIHdp dGhfZ2FzPXllcyA7OwotKwotKyAgLWhlbHAgfCAtLWhlbHAgfCAtLWhlbCB8IC0taGUgfCAtaCkK LSsgICAgYWNfaW5pdF9oZWxwPWxvbmcgOzsKLSsgIC1oZWxwPXIqIHwgLS1oZWxwPXIqIHwgLS1o ZWw9ciogfCAtLWhlPXIqIHwgLWhyKikKLSsgICAgYWNfaW5pdF9oZWxwPXJlY3Vyc2l2ZSA7Owot KyAgLWhlbHA9cyogfCAtLWhlbHA9cyogfCAtLWhlbD1zKiB8IC0taGU9cyogfCAtaHMqKQotKyAg ICBhY19pbml0X2hlbHA9c2hvcnQgOzsKLSsKLSsgIC1ob3N0IHwgLS1ob3N0IHwgLS1ob3MgfCAt LWhvKQotKyAgICBhY19wcmV2PWhvc3RfYWxpYXMgOzsKLSsgIC1ob3N0PSogfCAtLWhvc3Q9KiB8 IC0taG9zPSogfCAtLWhvPSopCi0rICAgIGhvc3RfYWxpYXM9JGFjX29wdGFyZyA7OwotKwotKyAg LWh0bWxkaXIgfCAtLWh0bWxkaXIgfCAtLWh0bWxkaSB8IC0taHRtbGQgfCAtLWh0bWwgfCAtLWh0 bSB8IC0taHQpCi0rICAgIGFjX3ByZXY9aHRtbGRpciA7OwotKyAgLWh0bWxkaXI9KiB8IC0taHRt bGRpcj0qIHwgLS1odG1sZGk9KiB8IC0taHRtbGQ9KiB8IC0taHRtbD0qIHwgLS1odG09KiBcCi0r ICB8IC0taHQ9KikKLSsgICAgaHRtbGRpcj0kYWNfb3B0YXJnIDs7Ci0rCi0rICAtaW5jbHVkZWRp ciB8IC0taW5jbHVkZWRpciB8IC0taW5jbHVkZWRpIHwgLS1pbmNsdWRlZCB8IC0taW5jbHVkZSBc Ci0rICB8IC0taW5jbHVkIHwgLS1pbmNsdSB8IC0taW5jbCB8IC0taW5jKQotKyAgICBhY19wcmV2 PWluY2x1ZGVkaXIgOzsKLSsgIC1pbmNsdWRlZGlyPSogfCAtLWluY2x1ZGVkaXI9KiB8IC0taW5j bHVkZWRpPSogfCAtLWluY2x1ZGVkPSogfCAtLWluY2x1ZGU9KiBcCi0rICB8IC0taW5jbHVkPSog fCAtLWluY2x1PSogfCAtLWluY2w9KiB8IC0taW5jPSopCi0rICAgIGluY2x1ZGVkaXI9JGFjX29w dGFyZyA7OwotKwotKyAgLWluZm9kaXIgfCAtLWluZm9kaXIgfCAtLWluZm9kaSB8IC0taW5mb2Qg fCAtLWluZm8gfCAtLWluZikKLSsgICAgYWNfcHJldj1pbmZvZGlyIDs7Ci0rICAtaW5mb2Rpcj0q IHwgLS1pbmZvZGlyPSogfCAtLWluZm9kaT0qIHwgLS1pbmZvZD0qIHwgLS1pbmZvPSogfCAtLWlu Zj0qKQotKyAgICBpbmZvZGlyPSRhY19vcHRhcmcgOzsKLSsKLSsgIC1saWJkaXIgfCAtLWxpYmRp ciB8IC0tbGliZGkgfCAtLWxpYmQpCi0rICAgIGFjX3ByZXY9bGliZGlyIDs7Ci0rICAtbGliZGly PSogfCAtLWxpYmRpcj0qIHwgLS1saWJkaT0qIHwgLS1saWJkPSopCi0rICAgIGxpYmRpcj0kYWNf b3B0YXJnIDs7Ci0rCi0rICAtbGliZXhlY2RpciB8IC0tbGliZXhlY2RpciB8IC0tbGliZXhlY2Rp IHwgLS1saWJleGVjZCB8IC0tbGliZXhlYyBcCi0rICB8IC0tbGliZXhlIHwgLS1saWJleCB8IC0t bGliZSkKLSsgICAgYWNfcHJldj1saWJleGVjZGlyIDs7Ci0rICAtbGliZXhlY2Rpcj0qIHwgLS1s aWJleGVjZGlyPSogfCAtLWxpYmV4ZWNkaT0qIHwgLS1saWJleGVjZD0qIHwgLS1saWJleGVjPSog XAotKyAgfCAtLWxpYmV4ZT0qIHwgLS1saWJleD0qIHwgLS1saWJlPSopCi0rICAgIGxpYmV4ZWNk aXI9JGFjX29wdGFyZyA7OwotKwotKyAgLWxvY2FsZWRpciB8IC0tbG9jYWxlZGlyIHwgLS1sb2Nh bGVkaSB8IC0tbG9jYWxlZCB8IC0tbG9jYWxlKQotKyAgICBhY19wcmV2PWxvY2FsZWRpciA7Owot KyAgLWxvY2FsZWRpcj0qIHwgLS1sb2NhbGVkaXI9KiB8IC0tbG9jYWxlZGk9KiB8IC0tbG9jYWxl ZD0qIHwgLS1sb2NhbGU9KikKLSsgICAgbG9jYWxlZGlyPSRhY19vcHRhcmcgOzsKLSsKLSsgIC1s b2NhbHN0YXRlZGlyIHwgLS1sb2NhbHN0YXRlZGlyIHwgLS1sb2NhbHN0YXRlZGkgfCAtLWxvY2Fs c3RhdGVkIFwKLSsgIHwgLS1sb2NhbHN0YXRlIHwgLS1sb2NhbHN0YXQgfCAtLWxvY2Fsc3RhIHwg LS1sb2NhbHN0IHwgLS1sb2NhbHMpCi0rICAgIGFjX3ByZXY9bG9jYWxzdGF0ZWRpciA7OwotKyAg LWxvY2Fsc3RhdGVkaXI9KiB8IC0tbG9jYWxzdGF0ZWRpcj0qIHwgLS1sb2NhbHN0YXRlZGk9KiB8 IC0tbG9jYWxzdGF0ZWQ9KiBcCi0rICB8IC0tbG9jYWxzdGF0ZT0qIHwgLS1sb2NhbHN0YXQ9KiB8 IC0tbG9jYWxzdGE9KiB8IC0tbG9jYWxzdD0qIHwgLS1sb2NhbHM9KikKLSsgICAgbG9jYWxzdGF0 ZWRpcj0kYWNfb3B0YXJnIDs7Ci0rCi0rICAtbWFuZGlyIHwgLS1tYW5kaXIgfCAtLW1hbmRpIHwg LS1tYW5kIHwgLS1tYW4gfCAtLW1hIHwgLS1tKQotKyAgICBhY19wcmV2PW1hbmRpciA7OwotKyAg LW1hbmRpcj0qIHwgLS1tYW5kaXI9KiB8IC0tbWFuZGk9KiB8IC0tbWFuZD0qIHwgLS1tYW49KiB8 IC0tbWE9KiB8IC0tbT0qKQotKyAgICBtYW5kaXI9JGFjX29wdGFyZyA7OwotKwotKyAgLW5mcCB8 IC0tbmZwIHwgLS1uZikKLSsgICAgIyBPYnNvbGV0ZTsgdXNlIC0td2l0aG91dC1mcC4KLSsgICAg d2l0aF9mcD1ubyA7OwotKwotKyAgLW5vLWNyZWF0ZSB8IC0tbm8tY3JlYXRlIHwgLS1uby1jcmVh dCB8IC0tbm8tY3JlYSB8IC0tbm8tY3JlIFwKLSsgIHwgLS1uby1jciB8IC0tbm8tYyB8IC1uKQot KyAgICBub19jcmVhdGU9eWVzIDs7Ci0rCi0rICAtbm8tcmVjdXJzaW9uIHwgLS1uby1yZWN1cnNp b24gfCAtLW5vLXJlY3Vyc2lvIHwgLS1uby1yZWN1cnNpIFwKLSsgIHwgLS1uby1yZWN1cnMgfCAt LW5vLXJlY3VyIHwgLS1uby1yZWN1IHwgLS1uby1yZWMgfCAtLW5vLXJlIHwgLS1uby1yKQotKyAg ICBub19yZWN1cnNpb249eWVzIDs7Ci0rCi0rICAtb2xkaW5jbHVkZWRpciB8IC0tb2xkaW5jbHVk ZWRpciB8IC0tb2xkaW5jbHVkZWRpIHwgLS1vbGRpbmNsdWRlZCBcCi0rICB8IC0tb2xkaW5jbHVk ZSB8IC0tb2xkaW5jbHVkIHwgLS1vbGRpbmNsdSB8IC0tb2xkaW5jbCB8IC0tb2xkaW5jIFwKLSsg IHwgLS1vbGRpbiB8IC0tb2xkaSB8IC0tb2xkIHwgLS1vbCB8IC0tbykKLSsgICAgYWNfcHJldj1v bGRpbmNsdWRlZGlyIDs7Ci0rICAtb2xkaW5jbHVkZWRpcj0qIHwgLS1vbGRpbmNsdWRlZGlyPSog fCAtLW9sZGluY2x1ZGVkaT0qIHwgLS1vbGRpbmNsdWRlZD0qIFwKLSsgIHwgLS1vbGRpbmNsdWRl PSogfCAtLW9sZGluY2x1ZD0qIHwgLS1vbGRpbmNsdT0qIHwgLS1vbGRpbmNsPSogfCAtLW9sZGlu Yz0qIFwKLSsgIHwgLS1vbGRpbj0qIHwgLS1vbGRpPSogfCAtLW9sZD0qIHwgLS1vbD0qIHwgLS1v PSopCi0rICAgIG9sZGluY2x1ZGVkaXI9JGFjX29wdGFyZyA7OwotKwotKyAgLXByZWZpeCB8IC0t cHJlZml4IHwgLS1wcmVmaSB8IC0tcHJlZiB8IC0tcHJlIHwgLS1wciB8IC0tcCkKLSsgICAgYWNf cHJldj1wcmVmaXggOzsKLSsgIC1wcmVmaXg9KiB8IC0tcHJlZml4PSogfCAtLXByZWZpPSogfCAt LXByZWY9KiB8IC0tcHJlPSogfCAtLXByPSogfCAtLXA9KikKLSsgICAgcHJlZml4PSRhY19vcHRh cmcgOzsKLSsKLSsgIC1wcm9ncmFtLXByZWZpeCB8IC0tcHJvZ3JhbS1wcmVmaXggfCAtLXByb2dy YW0tcHJlZmkgfCAtLXByb2dyYW0tcHJlZiBcCi0rICB8IC0tcHJvZ3JhbS1wcmUgfCAtLXByb2dy YW0tcHIgfCAtLXByb2dyYW0tcCkKLSsgICAgYWNfcHJldj1wcm9ncmFtX3ByZWZpeCA7OwotKyAg LXByb2dyYW0tcHJlZml4PSogfCAtLXByb2dyYW0tcHJlZml4PSogfCAtLXByb2dyYW0tcHJlZmk9 KiBcCi0rICB8IC0tcHJvZ3JhbS1wcmVmPSogfCAtLXByb2dyYW0tcHJlPSogfCAtLXByb2dyYW0t cHI9KiB8IC0tcHJvZ3JhbS1wPSopCi0rICAgIHByb2dyYW1fcHJlZml4PSRhY19vcHRhcmcgOzsK LSsKLSsgIC1wcm9ncmFtLXN1ZmZpeCB8IC0tcHJvZ3JhbS1zdWZmaXggfCAtLXByb2dyYW0tc3Vm ZmkgfCAtLXByb2dyYW0tc3VmZiBcCi0rICB8IC0tcHJvZ3JhbS1zdWYgfCAtLXByb2dyYW0tc3Ug fCAtLXByb2dyYW0tcykKLSsgICAgYWNfcHJldj1wcm9ncmFtX3N1ZmZpeCA7OwotKyAgLXByb2dy YW0tc3VmZml4PSogfCAtLXByb2dyYW0tc3VmZml4PSogfCAtLXByb2dyYW0tc3VmZmk9KiBcCi0r ICB8IC0tcHJvZ3JhbS1zdWZmPSogfCAtLXByb2dyYW0tc3VmPSogfCAtLXByb2dyYW0tc3U9KiB8 IC0tcHJvZ3JhbS1zPSopCi0rICAgIHByb2dyYW1fc3VmZml4PSRhY19vcHRhcmcgOzsKLSsKLSsg IC1wcm9ncmFtLXRyYW5zZm9ybS1uYW1lIHwgLS1wcm9ncmFtLXRyYW5zZm9ybS1uYW1lIFwKLSsg IHwgLS1wcm9ncmFtLXRyYW5zZm9ybS1uYW0gfCAtLXByb2dyYW0tdHJhbnNmb3JtLW5hIFwKLSsg IHwgLS1wcm9ncmFtLXRyYW5zZm9ybS1uIHwgLS1wcm9ncmFtLXRyYW5zZm9ybS0gXAotKyAgfCAt LXByb2dyYW0tdHJhbnNmb3JtIHwgLS1wcm9ncmFtLXRyYW5zZm9yIFwKLSsgIHwgLS1wcm9ncmFt LXRyYW5zZm8gfCAtLXByb2dyYW0tdHJhbnNmIFwKLSsgIHwgLS1wcm9ncmFtLXRyYW5zIHwgLS1w cm9ncmFtLXRyYW4gXAotKyAgfCAtLXByb2dyLXRyYSB8IC0tcHJvZ3JhbS10ciB8IC0tcHJvZ3Jh bS10KQotKyAgICBhY19wcmV2PXByb2dyYW1fdHJhbnNmb3JtX25hbWUgOzsKLSsgIC1wcm9ncmFt LXRyYW5zZm9ybS1uYW1lPSogfCAtLXByb2dyYW0tdHJhbnNmb3JtLW5hbWU9KiBcCi0rICB8IC0t cHJvZ3JhbS10cmFuc2Zvcm0tbmFtPSogfCAtLXByb2dyYW0tdHJhbnNmb3JtLW5hPSogXAotKyAg fCAtLXByb2dyYW0tdHJhbnNmb3JtLW49KiB8IC0tcHJvZ3JhbS10cmFuc2Zvcm0tPSogXAotKyAg fCAtLXByb2dyYW0tdHJhbnNmb3JtPSogfCAtLXByb2dyYW0tdHJhbnNmb3I9KiBcCi0rICB8IC0t cHJvZ3JhbS10cmFuc2ZvPSogfCAtLXByb2dyYW0tdHJhbnNmPSogXAotKyAgfCAtLXByb2dyYW0t dHJhbnM9KiB8IC0tcHJvZ3JhbS10cmFuPSogXAotKyAgfCAtLXByb2dyLXRyYT0qIHwgLS1wcm9n cmFtLXRyPSogfCAtLXByb2dyYW0tdD0qKQotKyAgICBwcm9ncmFtX3RyYW5zZm9ybV9uYW1lPSRh Y19vcHRhcmcgOzsKLSsKLSsgIC1wZGZkaXIgfCAtLXBkZmRpciB8IC0tcGRmZGkgfCAtLXBkZmQg fCAtLXBkZiB8IC0tcGQpCi0rICAgIGFjX3ByZXY9cGRmZGlyIDs7Ci0rICAtcGRmZGlyPSogfCAt LXBkZmRpcj0qIHwgLS1wZGZkaT0qIHwgLS1wZGZkPSogfCAtLXBkZj0qIHwgLS1wZD0qKQotKyAg ICBwZGZkaXI9JGFjX29wdGFyZyA7OwotKwotKyAgLXBzZGlyIHwgLS1wc2RpciB8IC0tcHNkaSB8 IC0tcHNkIHwgLS1wcykKLSsgICAgYWNfcHJldj1wc2RpciA7OwotKyAgLXBzZGlyPSogfCAtLXBz ZGlyPSogfCAtLXBzZGk9KiB8IC0tcHNkPSogfCAtLXBzPSopCi0rICAgIHBzZGlyPSRhY19vcHRh cmcgOzsKLSsKLSsgIC1xIHwgLXF1aWV0IHwgLS1xdWlldCB8IC0tcXVpZSB8IC0tcXVpIHwgLS1x dSB8IC0tcSBcCi0rICB8IC1zaWxlbnQgfCAtLXNpbGVudCB8IC0tc2lsZW4gfCAtLXNpbGUgfCAt LXNpbCkKLSsgICAgc2lsZW50PXllcyA7OwotKwotKyAgLXNiaW5kaXIgfCAtLXNiaW5kaXIgfCAt LXNiaW5kaSB8IC0tc2JpbmQgfCAtLXNiaW4gfCAtLXNiaSB8IC0tc2IpCi0rICAgIGFjX3ByZXY9 c2JpbmRpciA7OwotKyAgLXNiaW5kaXI9KiB8IC0tc2JpbmRpcj0qIHwgLS1zYmluZGk9KiB8IC0t c2JpbmQ9KiB8IC0tc2Jpbj0qIFwKLSsgIHwgLS1zYmk9KiB8IC0tc2I9KikKLSsgICAgc2JpbmRp cj0kYWNfb3B0YXJnIDs7Ci0rCi0rICAtc2hhcmVkc3RhdGVkaXIgfCAtLXNoYXJlZHN0YXRlZGly IHwgLS1zaGFyZWRzdGF0ZWRpIFwKLSsgIHwgLS1zaGFyZWRzdGF0ZWQgfCAtLXNoYXJlZHN0YXRl IHwgLS1zaGFyZWRzdGF0IHwgLS1zaGFyZWRzdGEgXAotKyAgfCAtLXNoYXJlZHN0IHwgLS1zaGFy ZWRzIHwgLS1zaGFyZWQgfCAtLXNoYXJlIHwgLS1zaGFyIFwKLSsgIHwgLS1zaGEgfCAtLXNoKQot KyAgICBhY19wcmV2PXNoYXJlZHN0YXRlZGlyIDs7Ci0rICAtc2hhcmVkc3RhdGVkaXI9KiB8IC0t c2hhcmVkc3RhdGVkaXI9KiB8IC0tc2hhcmVkc3RhdGVkaT0qIFwKLSsgIHwgLS1zaGFyZWRzdGF0 ZWQ9KiB8IC0tc2hhcmVkc3RhdGU9KiB8IC0tc2hhcmVkc3RhdD0qIHwgLS1zaGFyZWRzdGE9KiBc Ci0rICB8IC0tc2hhcmVkc3Q9KiB8IC0tc2hhcmVkcz0qIHwgLS1zaGFyZWQ9KiB8IC0tc2hhcmU9 KiB8IC0tc2hhcj0qIFwKLSsgIHwgLS1zaGE9KiB8IC0tc2g9KikKLSsgICAgc2hhcmVkc3RhdGVk aXI9JGFjX29wdGFyZyA7OwotKwotKyAgLXNpdGUgfCAtLXNpdGUgfCAtLXNpdCkKLSsgICAgYWNf cHJldj1zaXRlIDs7Ci0rICAtc2l0ZT0qIHwgLS1zaXRlPSogfCAtLXNpdD0qKQotKyAgICBzaXRl PSRhY19vcHRhcmcgOzsKLSsKLSsgIC1zcmNkaXIgfCAtLXNyY2RpciB8IC0tc3JjZGkgfCAtLXNy Y2QgfCAtLXNyYyB8IC0tc3IpCi0rICAgIGFjX3ByZXY9c3JjZGlyIDs7Ci0rICAtc3JjZGlyPSog fCAtLXNyY2Rpcj0qIHwgLS1zcmNkaT0qIHwgLS1zcmNkPSogfCAtLXNyYz0qIHwgLS1zcj0qKQot KyAgICBzcmNkaXI9JGFjX29wdGFyZyA7OwotKwotKyAgLXN5c2NvbmZkaXIgfCAtLXN5c2NvbmZk aXIgfCAtLXN5c2NvbmZkaSB8IC0tc3lzY29uZmQgfCAtLXN5c2NvbmYgXAotKyAgfCAtLXN5c2Nv biB8IC0tc3lzY28gfCAtLXN5c2MgfCAtLXN5cyB8IC0tc3kpCi0rICAgIGFjX3ByZXY9c3lzY29u ZmRpciA7OwotKyAgLXN5c2NvbmZkaXI9KiB8IC0tc3lzY29uZmRpcj0qIHwgLS1zeXNjb25mZGk9 KiB8IC0tc3lzY29uZmQ9KiB8IC0tc3lzY29uZj0qIFwKLSsgIHwgLS1zeXNjb249KiB8IC0tc3lz Y289KiB8IC0tc3lzYz0qIHwgLS1zeXM9KiB8IC0tc3k9KikKLSsgICAgc3lzY29uZmRpcj0kYWNf b3B0YXJnIDs7Ci0rCi0rICAtdGFyZ2V0IHwgLS10YXJnZXQgfCAtLXRhcmdlIHwgLS10YXJnIHwg LS10YXIgfCAtLXRhIHwgLS10KQotKyAgICBhY19wcmV2PXRhcmdldF9hbGlhcyA7OwotKyAgLXRh cmdldD0qIHwgLS10YXJnZXQ9KiB8IC0tdGFyZ2U9KiB8IC0tdGFyZz0qIHwgLS10YXI9KiB8IC0t dGE9KiB8IC0tdD0qKQotKyAgICB0YXJnZXRfYWxpYXM9JGFjX29wdGFyZyA7OwotKwotKyAgLXYg fCAtdmVyYm9zZSB8IC0tdmVyYm9zZSB8IC0tdmVyYm9zIHwgLS12ZXJibyB8IC0tdmVyYikKLSsg ICAgdmVyYm9zZT15ZXMgOzsKLSsKLSsgIC12ZXJzaW9uIHwgLS12ZXJzaW9uIHwgLS12ZXJzaW8g fCAtLXZlcnNpIHwgLS12ZXJzIHwgLVYpCi0rICAgIGFjX2luaXRfdmVyc2lvbj06IDs7Ci0rCi0r ICAtd2l0aC0qIHwgLS13aXRoLSopCi0rICAgIGFjX3VzZXJvcHQ9YGV4cHIgIngkYWNfb3B0aW9u IiA6ICd4LSp3aXRoLVwoW149XSpcKSdgCi0rICAgICMgUmVqZWN0IG5hbWVzIHRoYXQgYXJlIG5v dCB2YWxpZCBzaGVsbCB2YXJpYWJsZSBuYW1lcy4KLSsgICAgZXhwciAieCRhY191c2Vyb3B0IiA6 ICIuKlteLSsuXyRhc19jcl9hbG51bV0iID4vZGV2L251bGwgJiYKLSsgICAgICB7ICRhc19lY2hv ICIkYXNfbWU6IGVycm9yOiBpbnZhbGlkIHBhY2thZ2UgbmFtZTogJGFjX3VzZXJvcHQiID4mMgot KyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQotKyAgICBhY191c2Vyb3B0X29yaWc9JGFjX3Vz ZXJvcHQKLSsgICAgYWNfdXNlcm9wdD1gJGFzX2VjaG8gIiRhY191c2Vyb3B0IiB8IHNlZCAncy9b LSsuXS9fL2cnYAotKyAgICBjYXNlICRhY191c2VyX29wdHMgaW4KLSsgICAgICAqIgotKyJ3aXRo XyRhY191c2Vyb3B0IgotKyIqKSA7OwotKyAgICAgICopIGFjX3VucmVjb2duaXplZF9vcHRzPSIk YWNfdW5yZWNvZ25pemVkX29wdHMkYWNfdW5yZWNvZ25pemVkX3NlcC0td2l0aC0kYWNfdXNlcm9w dF9vcmlnIgotKwkgYWNfdW5yZWNvZ25pemVkX3NlcD0nLCAnOzsKLSsgICAgZXNhYwotKyAgICBl dmFsIHdpdGhfJGFjX3VzZXJvcHQ9XCRhY19vcHRhcmcgOzsKLSsKLSsgIC13aXRob3V0LSogfCAt LXdpdGhvdXQtKikKLSsgICAgYWNfdXNlcm9wdD1gZXhwciAieCRhY19vcHRpb24iIDogJ3gtKndp dGhvdXQtXCguKlwpJ2AKLSsgICAgIyBSZWplY3QgbmFtZXMgdGhhdCBhcmUgbm90IHZhbGlkIHNo ZWxsIHZhcmlhYmxlIG5hbWVzLgotKyAgICBleHByICJ4JGFjX3VzZXJvcHQiIDogIi4qW14tKy5f JGFzX2NyX2FsbnVtXSIgPi9kZXYvbnVsbCAmJgotKyAgICAgIHsgJGFzX2VjaG8gIiRhc19tZTog ZXJyb3I6IGludmFsaWQgcGFja2FnZSBuYW1lOiAkYWNfdXNlcm9wdCIgPiYyCi0rICAgeyAoZXhp dCAxKTsgZXhpdCAxOyB9OyB9Ci0rICAgIGFjX3VzZXJvcHRfb3JpZz0kYWNfdXNlcm9wdAotKyAg ICBhY191c2Vyb3B0PWAkYXNfZWNobyAiJGFjX3VzZXJvcHQiIHwgc2VkICdzL1stKy5dL18vZydg Ci0rICAgIGNhc2UgJGFjX3VzZXJfb3B0cyBpbgotKyAgICAgICoiCi0rIndpdGhfJGFjX3VzZXJv cHQiCi0rIiopIDs7Ci0rICAgICAgKikgYWNfdW5yZWNvZ25pemVkX29wdHM9IiRhY191bnJlY29n bml6ZWRfb3B0cyRhY191bnJlY29nbml6ZWRfc2VwLS13aXRob3V0LSRhY191c2Vyb3B0X29yaWci Ci0rCSBhY191bnJlY29nbml6ZWRfc2VwPScsICc7OwotKyAgICBlc2FjCi0rICAgIGV2YWwgd2l0 aF8kYWNfdXNlcm9wdD1ubyA7OwotKwotKyAgLS14KQotKyAgICAjIE9ic29sZXRlOyB1c2UgLS13 aXRoLXguCi0rICAgIHdpdGhfeD15ZXMgOzsKLSsKLSsgIC14LWluY2x1ZGVzIHwgLS14LWluY2x1 ZGVzIHwgLS14LWluY2x1ZGUgfCAtLXgtaW5jbHVkIHwgLS14LWluY2x1IFwKLSsgIHwgLS14LWlu Y2wgfCAtLXgtaW5jIHwgLS14LWluIHwgLS14LWkpCi0rICAgIGFjX3ByZXY9eF9pbmNsdWRlcyA7 OwotKyAgLXgtaW5jbHVkZXM9KiB8IC0teC1pbmNsdWRlcz0qIHwgLS14LWluY2x1ZGU9KiB8IC0t eC1pbmNsdWQ9KiB8IC0teC1pbmNsdT0qIFwKLSsgIHwgLS14LWluY2w9KiB8IC0teC1pbmM9KiB8 IC0teC1pbj0qIHwgLS14LWk9KikKLSsgICAgeF9pbmNsdWRlcz0kYWNfb3B0YXJnIDs7Ci0rCi0r ICAteC1saWJyYXJpZXMgfCAtLXgtbGlicmFyaWVzIHwgLS14LWxpYnJhcmllIHwgLS14LWxpYnJh cmkgXAotKyAgfCAtLXgtbGlicmFyIHwgLS14LWxpYnJhIHwgLS14LWxpYnIgfCAtLXgtbGliIHwg LS14LWxpIHwgLS14LWwpCi0rICAgIGFjX3ByZXY9eF9saWJyYXJpZXMgOzsKLSsgIC14LWxpYnJh cmllcz0qIHwgLS14LWxpYnJhcmllcz0qIHwgLS14LWxpYnJhcmllPSogfCAtLXgtbGlicmFyaT0q IFwKLSsgIHwgLS14LWxpYnJhcj0qIHwgLS14LWxpYnJhPSogfCAtLXgtbGlicj0qIHwgLS14LWxp Yj0qIHwgLS14LWxpPSogfCAtLXgtbD0qKQotKyAgICB4X2xpYnJhcmllcz0kYWNfb3B0YXJnIDs7 Ci0rCi0rICAtKikgeyAkYXNfZWNobyAiJGFzX21lOiBlcnJvcjogdW5yZWNvZ25pemVkIG9wdGlv bjogJGFjX29wdGlvbgotK1RyeSBcYCQwIC0taGVscCcgZm9yIG1vcmUgaW5mb3JtYXRpb24uIiA+ JjIKLSsgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KLSsgICAgOzsKLSsKLSsgICo9KikKLSsg ICAgYWNfZW52dmFyPWBleHByICJ4JGFjX29wdGlvbiIgOiAneFwoW149XSpcKT0nYAotKyAgICAj IFJlamVjdCBuYW1lcyB0aGF0IGFyZSBub3QgdmFsaWQgc2hlbGwgdmFyaWFibGUgbmFtZXMuCi0r ICAgIGV4cHIgIngkYWNfZW52dmFyIiA6ICIuKlteXyRhc19jcl9hbG51bV0iID4vZGV2L251bGwg JiYKLSsgICAgICB7ICRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBpbnZhbGlkIHZhcmlhYmxlIG5h bWU6ICRhY19lbnZ2YXIiID4mMgotKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQotKyAgICBl dmFsICRhY19lbnZ2YXI9XCRhY19vcHRhcmcKLSsgICAgZXhwb3J0ICRhY19lbnZ2YXIgOzsKLSsK LSsgICopCi0rICAgICMgRklYTUU6IHNob3VsZCBiZSByZW1vdmVkIGluIGF1dG9jb25mIDMuMC4K LSsgICAgJGFzX2VjaG8gIiRhc19tZTogV0FSTklORzogeW91IHNob3VsZCB1c2UgLS1idWlsZCwg LS1ob3N0LCAtLXRhcmdldCIgPiYyCi0rICAgIGV4cHIgIngkYWNfb3B0aW9uIiA6ICIuKlteLS5f JGFzX2NyX2FsbnVtXSIgPi9kZXYvbnVsbCAmJgotKyAgICAgICRhc19lY2hvICIkYXNfbWU6IFdB Uk5JTkc6IGludmFsaWQgaG9zdCB0eXBlOiAkYWNfb3B0aW9uIiA+JjIKLSsgICAgOiAke2J1aWxk X2FsaWFzPSRhY19vcHRpb259ICR7aG9zdF9hbGlhcz0kYWNfb3B0aW9ufSAke3RhcmdldF9hbGlh cz0kYWNfb3B0aW9ufQotKyAgICA7OwotKwotKyAgZXNhYwotIGRvbmUKLSAKLS1pZiBbICR0Y2xf Zm91bmQgLWVxIDAgXQotLXRoZW4KLS0gICAgICAgIGVjaG8gJ05PVCBmb3VuZC4nCi0tICAgICAg ICBlY2hvICdJcyB0aGUgVGNsIGluc3RhbGxlZD8nCi0tICAgICAgICBleGl0Ci0raWYgdGVzdCAt biAiJGFjX3ByZXYiOyB0aGVuCi0rICBhY19vcHRpb249LS1gZWNobyAkYWNfcHJldiB8IHNlZCAn cy9fLy0vZydgCi0rICB7ICRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBtaXNzaW5nIGFyZ3VtZW50 IHRvICRhY19vcHRpb24iID4mMgotKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQotK2ZpCi0r Ci0raWYgdGVzdCAtbiAiJGFjX3VucmVjb2duaXplZF9vcHRzIjsgdGhlbgotKyAgY2FzZSAkZW5h YmxlX29wdGlvbl9jaGVja2luZyBpbgotKyAgICBubykgOzsKLSsgICAgZmF0YWwpIHsgJGFzX2Vj aG8gIiRhc19tZTogZXJyb3I6IHVucmVjb2duaXplZCBvcHRpb25zOiAkYWNfdW5yZWNvZ25pemVk X29wdHMiID4mMgotKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfSA7OwotKyAgICAqKSAgICAg JGFzX2VjaG8gIiRhc19tZTogV0FSTklORzogdW5yZWNvZ25pemVkIG9wdGlvbnM6ICRhY191bnJl Y29nbml6ZWRfb3B0cyIgPiYyIDs7Ci0rICBlc2FjCi0rZmkKLSsKLSsjIENoZWNrIGFsbCBkaXJl Y3RvcnkgYXJndW1lbnRzIGZvciBjb25zaXN0ZW5jeS4KLStmb3IgYWNfdmFyIGluCWV4ZWNfcHJl Zml4IHByZWZpeCBiaW5kaXIgc2JpbmRpciBsaWJleGVjZGlyIGRhdGFyb290ZGlyIFwKLSsJCWRh dGFkaXIgc3lzY29uZmRpciBzaGFyZWRzdGF0ZWRpciBsb2NhbHN0YXRlZGlyIGluY2x1ZGVkaXIg XAotKwkJb2xkaW5jbHVkZWRpciBkb2NkaXIgaW5mb2RpciBodG1sZGlyIGR2aWRpciBwZGZkaXIg cHNkaXIgXAotKwkJbGliZGlyIGxvY2FsZWRpciBtYW5kaXIKLStkbwotKyAgZXZhbCBhY192YWw9 XCQkYWNfdmFyCi0rICAjIFJlbW92ZSB0cmFpbGluZyBzbGFzaGVzLgotKyAgY2FzZSAkYWNfdmFs IGluCi0rICAgICovICkKLSsgICAgICBhY192YWw9YGV4cHIgIlgkYWNfdmFsIiA6ICdYXCguKlte L11cKScgXHwgIlgkYWNfdmFsIiA6ICdYXCguKlwpJ2AKLSsgICAgICBldmFsICRhY192YXI9XCRh Y192YWw7OwotKyAgZXNhYwotKyAgIyBCZSBzdXJlIHRvIGhhdmUgYWJzb2x1dGUgZGlyZWN0b3J5 IG5hbWVzLgotKyAgY2FzZSAkYWNfdmFsIGluCi0rICAgIFtcXC8kXSogfCA/OltcXC9dKiApICBj b250aW51ZTs7Ci0rICAgIE5PTkUgfCAnJyApIGNhc2UgJGFjX3ZhciBpbiAqcHJlZml4ICkgY29u dGludWU7OyBlc2FjOzsKLSsgIGVzYWMKLSsgIHsgJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IGV4 cGVjdGVkIGFuIGFic29sdXRlIGRpcmVjdG9yeSBuYW1lIGZvciAtLSRhY192YXI6ICRhY192YWwi ID4mMgotKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQotK2RvbmUKLSsKLSsjIFRoZXJlIG1p Z2h0IGJlIHBlb3BsZSB3aG8gZGVwZW5kIG9uIHRoZSBvbGQgYnJva2VuIGJlaGF2aW9yOiBgJGhv c3QnCi0rIyB1c2VkIHRvIGhvbGQgdGhlIGFyZ3VtZW50IG9mIC0taG9zdCBldGMuCi0rIyBGSVhN RTogVG8gcmVtb3ZlIHNvbWUgZGF5LgotK2J1aWxkPSRidWlsZF9hbGlhcwotK2hvc3Q9JGhvc3Rf YWxpYXMKLSt0YXJnZXQ9JHRhcmdldF9hbGlhcwotKwotKyMgRklYTUU6IFRvIHJlbW92ZSBzb21l IGRheS4KLStpZiB0ZXN0ICJ4JGhvc3RfYWxpYXMiICE9IHg7IHRoZW4KLSsgIGlmIHRlc3QgIngk YnVpbGRfYWxpYXMiID0geDsgdGhlbgotKyAgICBjcm9zc19jb21waWxpbmc9bWF5YmUKLSsgICAg JGFzX2VjaG8gIiRhc19tZTogV0FSTklORzogSWYgeW91IHdhbnRlZCB0byBzZXQgdGhlIC0tYnVp bGQgdHlwZSwgZG9uJ3QgdXNlIC0taG9zdC4KLSsgICAgSWYgYSBjcm9zcyBjb21waWxlciBpcyBk ZXRlY3RlZCB0aGVuIGNyb3NzIGNvbXBpbGUgbW9kZSB3aWxsIGJlIHVzZWQuIiA+JjIKLSsgIGVs aWYgdGVzdCAieCRidWlsZF9hbGlhcyIgIT0gIngkaG9zdF9hbGlhcyI7IHRoZW4KLSsgICAgY3Jv c3NfY29tcGlsaW5nPXllcwotKyAgZmkKLStmaQotKwotK2FjX3Rvb2xfcHJlZml4PQotK3Rlc3Qg LW4gIiRob3N0X2FsaWFzIiAmJiBhY190b29sX3ByZWZpeD0kaG9zdF9hbGlhcy0KLSsKLSt0ZXN0 ICIkc2lsZW50IiA9IHllcyAmJiBleGVjIDY+L2Rldi9udWxsCi0rCi0rCi0rYWNfcHdkPWBwd2Rg ICYmIHRlc3QgLW4gIiRhY19wd2QiICYmCi0rYWNfbHNfZGk9YGxzIC1kaSAuYCAmJgotK2FjX3B3 ZF9sc19kaT1gY2QgIiRhY19wd2QiICYmIGxzIC1kaSAuYCB8fAotKyAgeyAkYXNfZWNobyAiJGFz X21lOiBlcnJvcjogd29ya2luZyBkaXJlY3RvcnkgY2Fubm90IGJlIGRldGVybWluZWQiID4mMgot KyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQotK3Rlc3QgIlgkYWNfbHNfZGkiID0gIlgkYWNf cHdkX2xzX2RpIiB8fAotKyAgeyAkYXNfZWNobyAiJGFzX21lOiBlcnJvcjogcHdkIGRvZXMgbm90 IHJlcG9ydCBuYW1lIG9mIHdvcmtpbmcgZGlyZWN0b3J5IiA+JjIKLSsgICB7IChleGl0IDEpOyBl eGl0IDE7IH07IH0KLSsKLSsKLSsjIEZpbmQgdGhlIHNvdXJjZSBmaWxlcywgaWYgbG9jYXRpb24g d2FzIG5vdCBzcGVjaWZpZWQuCi0raWYgdGVzdCAteiAiJHNyY2RpciI7IHRoZW4KLSsgIGFjX3Ny Y2Rpcl9kZWZhdWx0ZWQ9eWVzCi0rICAjIFRyeSB0aGUgZGlyZWN0b3J5IGNvbnRhaW5pbmcgdGhp cyBzY3JpcHQsIHRoZW4gdGhlIHBhcmVudCBkaXJlY3RvcnkuCi0rICBhY19jb25mZGlyPWAkYXNf ZGlybmFtZSAtLSAiJGFzX215c2VsZiIgfHwKLSskYXNfZXhwciBYIiRhc19teXNlbGYiIDogJ1hc KC4qW14vXVwpLy8qW14vXVteL10qLyokJyBcfCBcCi0rCSBYIiRhc19teXNlbGYiIDogJ1hcKC8v XClbXi9dJyBcfCBcCi0rCSBYIiRhc19teXNlbGYiIDogJ1hcKC8vXCkkJyBcfCBcCi0rCSBYIiRh c19teXNlbGYiIDogJ1hcKC9cKScgXHwgLiAyPi9kZXYvbnVsbCB8fAotKyRhc19lY2hvIFgiJGFz X215c2VsZiIgfAotKyAgICBzZWQgJy9eWFwoLipbXi9dXClcL1wvKlteL11bXi9dKlwvKiQvewot KwkgICAgcy8vXDEvCi0rCSAgICBxCi0rCSAgfQotKwkgIC9eWFwoXC9cL1wpW14vXS4qL3sKLSsJ ICAgIHMvL1wxLwotKwkgICAgcQotKwkgIH0KLSsJICAvXlhcKFwvXC9cKSQvewotKwkgICAgcy8v XDEvCi0rCSAgICBxCi0rCSAgfQotKwkgIC9eWFwoXC9cKS4qL3sKLSsJICAgIHMvL1wxLwotKwkg ICAgcQotKwkgIH0KLSsJICBzLy4qLy4vOyBxJ2AKLSsgIHNyY2Rpcj0kYWNfY29uZmRpcgotKyAg aWYgdGVzdCAhIC1yICIkc3JjZGlyLyRhY191bmlxdWVfZmlsZSI7IHRoZW4KLSsgICAgc3JjZGly PS4uCi0rICBmaQotK2Vsc2UKLSsgIGFjX3NyY2Rpcl9kZWZhdWx0ZWQ9bm8KLStmaQotK2lmIHRl c3QgISAtciAiJHNyY2Rpci8kYWNfdW5pcXVlX2ZpbGUiOyB0aGVuCi0rICB0ZXN0ICIkYWNfc3Jj ZGlyX2RlZmF1bHRlZCIgPSB5ZXMgJiYgc3JjZGlyPSIkYWNfY29uZmRpciBvciAuLiIKLSsgIHsg JGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IGNhbm5vdCBmaW5kIHNvdXJjZXMgKCRhY191bmlxdWVf ZmlsZSkgaW4gJHNyY2RpciIgPiYyCi0rICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9Ci0rZmkK LSthY19tc2c9InNvdXJjZXMgYXJlIGluICRzcmNkaXIsIGJ1dCBcYGNkICRzcmNkaXInIGRvZXMg bm90IHdvcmsiCi0rYWNfYWJzX2NvbmZkaXI9YCgKLSsJY2QgIiRzcmNkaXIiICYmIHRlc3QgLXIg Ii4vJGFjX3VuaXF1ZV9maWxlIiB8fCB7ICRhc19lY2hvICIkYXNfbWU6IGVycm9yOiAkYWNfbXNn IiA+JjIKLSsgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KLSsJcHdkKWAKLSsjIFdoZW4gYnVp bGRpbmcgaW4gcGxhY2UsIHNldCBzcmNkaXI9LgotK2lmIHRlc3QgIiRhY19hYnNfY29uZmRpciIg PSAiJGFjX3B3ZCI7IHRoZW4KLSsgIHNyY2Rpcj0uCi0rZmkKLSsjIFJlbW92ZSB1bm5lY2Vzc2Fy eSB0cmFpbGluZyBzbGFzaGVzIGZyb20gc3JjZGlyLgotKyMgRG91YmxlIHNsYXNoZXMgaW4gZmls ZSBuYW1lcyBpbiBvYmplY3QgZmlsZSBkZWJ1Z2dpbmcgaW5mbwotKyMgbWVzcyB1cCBNLXggZ2Ri IGluIEVtYWNzLgotK2Nhc2UgJHNyY2RpciBpbgotKyovKSBzcmNkaXI9YGV4cHIgIlgkc3JjZGly IiA6ICdYXCguKlteL11cKScgXHwgIlgkc3JjZGlyIiA6ICdYXCguKlwpJ2A7OwotK2VzYWMKLStm b3IgYWNfdmFyIGluICRhY19wcmVjaW91c192YXJzOyBkbwotKyAgZXZhbCBhY19lbnZfJHthY192 YXJ9X3NldD1cJHske2FjX3Zhcn0rc2V0fQotKyAgZXZhbCBhY19lbnZfJHthY192YXJ9X3ZhbHVl PVwkJHthY192YXJ9Ci0rICBldmFsIGFjX2N2X2Vudl8ke2FjX3Zhcn1fc2V0PVwkeyR7YWNfdmFy fStzZXR9Ci0rICBldmFsIGFjX2N2X2Vudl8ke2FjX3Zhcn1fdmFsdWU9XCQke2FjX3Zhcn0KLStk b25lCi0rCi0rIwotKyMgUmVwb3J0IHRoZSAtLWhlbHAgbWVzc2FnZS4KLSsjCi0raWYgdGVzdCAi JGFjX2luaXRfaGVscCIgPSAibG9uZyI7IHRoZW4KLSsgICMgT21pdCBzb21lIGludGVybmFsIG9y IG9ic29sZXRlIG9wdGlvbnMgdG8gbWFrZSB0aGUgbGlzdCBsZXNzIGltcG9zaW5nLgotKyAgIyBU aGlzIG1lc3NhZ2UgaXMgdG9vIGxvbmcgdG8gYmUgYSBzdHJpbmcgaW4gdGhlIEEvVVggMy4xIHNo LgotKyAgY2F0IDw8X0FDRU9GCi0rXGBjb25maWd1cmUnIGNvbmZpZ3VyZXMgU09DSSAzLjAuMCB0 byBhZGFwdCB0byBtYW55IGtpbmRzIG9mIHN5c3RlbXMuCi0rCi0rVXNhZ2U6ICQwIFtPUFRJT05d Li4uIFtWQVI9VkFMVUVdLi4uCi0rCi0rVG8gYXNzaWduIGVudmlyb25tZW50IHZhcmlhYmxlcyAo ZS5nLiwgQ0MsIENGTEFHUy4uLiksIHNwZWNpZnkgdGhlbSBhcwotK1ZBUj1WQUxVRS4gIFNlZSBi ZWxvdyBmb3IgZGVzY3JpcHRpb25zIG9mIHNvbWUgb2YgdGhlIHVzZWZ1bCB2YXJpYWJsZXMuCi0r Ci0rRGVmYXVsdHMgZm9yIHRoZSBvcHRpb25zIGFyZSBzcGVjaWZpZWQgaW4gYnJhY2tldHMuCi0r Ci0rQ29uZmlndXJhdGlvbjoKLSsgIC1oLCAtLWhlbHAgICAgICAgICAgICAgIGRpc3BsYXkgdGhp cyBoZWxwIGFuZCBleGl0Ci0rICAgICAgLS1oZWxwPXNob3J0ICAgICAgICBkaXNwbGF5IG9wdGlv bnMgc3BlY2lmaWMgdG8gdGhpcyBwYWNrYWdlCi0rICAgICAgLS1oZWxwPXJlY3Vyc2l2ZSAgICBk aXNwbGF5IHRoZSBzaG9ydCBoZWxwIG9mIGFsbCB0aGUgaW5jbHVkZWQgcGFja2FnZXMKLSsgIC1W LCAtLXZlcnNpb24gICAgICAgICAgIGRpc3BsYXkgdmVyc2lvbiBpbmZvcm1hdGlvbiBhbmQgZXhp dAotKyAgLXEsIC0tcXVpZXQsIC0tc2lsZW50ICAgZG8gbm90IHByaW50IFxgY2hlY2tpbmcuLi4n IG1lc3NhZ2VzCi0rICAgICAgLS1jYWNoZS1maWxlPUZJTEUgICBjYWNoZSB0ZXN0IHJlc3VsdHMg aW4gRklMRSBbZGlzYWJsZWRdCi0rICAtQywgLS1jb25maWctY2FjaGUgICAgICBhbGlhcyBmb3Ig XGAtLWNhY2hlLWZpbGU9Y29uZmlnLmNhY2hlJwotKyAgLW4sIC0tbm8tY3JlYXRlICAgICAgICAg ZG8gbm90IGNyZWF0ZSBvdXRwdXQgZmlsZXMKLSsgICAgICAtLXNyY2Rpcj1ESVIgICAgICAgIGZp bmQgdGhlIHNvdXJjZXMgaW4gRElSIFtjb25maWd1cmUgZGlyIG9yIFxgLi4nXQotKwotK0luc3Rh bGxhdGlvbiBkaXJlY3RvcmllczoKLSsgIC0tcHJlZml4PVBSRUZJWCAgICAgICAgIGluc3RhbGwg YXJjaGl0ZWN0dXJlLWluZGVwZW5kZW50IGZpbGVzIGluIFBSRUZJWAotKyAgICAgICAgICAgICAg ICAgICAgICAgICAgWyRhY19kZWZhdWx0X3ByZWZpeF0KLSsgIC0tZXhlYy1wcmVmaXg9RVBSRUZJ WCAgIGluc3RhbGwgYXJjaGl0ZWN0dXJlLWRlcGVuZGVudCBmaWxlcyBpbiBFUFJFRklYCi0rICAg ICAgICAgICAgICAgICAgICAgICAgICBbUFJFRklYXQotKwotK0J5IGRlZmF1bHQsIFxgbWFrZSBp bnN0YWxsJyB3aWxsIGluc3RhbGwgYWxsIHRoZSBmaWxlcyBpbgotK1xgJGFjX2RlZmF1bHRfcHJl Zml4L2JpbicsIFxgJGFjX2RlZmF1bHRfcHJlZml4L2xpYicgZXRjLiAgWW91IGNhbiBzcGVjaWZ5 Ci0rYW4gaW5zdGFsbGF0aW9uIHByZWZpeCBvdGhlciB0aGFuIFxgJGFjX2RlZmF1bHRfcHJlZml4 JyB1c2luZyBcYC0tcHJlZml4JywKLStmb3IgaW5zdGFuY2UgXGAtLXByZWZpeD1cJEhPTUUnLgot KwotK0ZvciBiZXR0ZXIgY29udHJvbCwgdXNlIHRoZSBvcHRpb25zIGJlbG93LgotKwotK0ZpbmUg dHVuaW5nIG9mIHRoZSBpbnN0YWxsYXRpb24gZGlyZWN0b3JpZXM6Ci0rICAtLWJpbmRpcj1ESVIg ICAgICAgICAgICB1c2VyIGV4ZWN1dGFibGVzIFtFUFJFRklYL2Jpbl0KLSsgIC0tc2JpbmRpcj1E SVIgICAgICAgICAgIHN5c3RlbSBhZG1pbiBleGVjdXRhYmxlcyBbRVBSRUZJWC9zYmluXQotKyAg LS1saWJleGVjZGlyPURJUiAgICAgICAgcHJvZ3JhbSBleGVjdXRhYmxlcyBbRVBSRUZJWC9saWJl eGVjXQotKyAgLS1zeXNjb25mZGlyPURJUiAgICAgICAgcmVhZC1vbmx5IHNpbmdsZS1tYWNoaW5l IGRhdGEgW1BSRUZJWC9ldGNdCi0rICAtLXNoYXJlZHN0YXRlZGlyPURJUiAgICBtb2RpZmlhYmxl IGFyY2hpdGVjdHVyZS1pbmRlcGVuZGVudCBkYXRhIFtQUkVGSVgvY29tXQotKyAgLS1sb2NhbHN0 YXRlZGlyPURJUiAgICAgbW9kaWZpYWJsZSBzaW5nbGUtbWFjaGluZSBkYXRhIFtQUkVGSVgvdmFy XQotKyAgLS1saWJkaXI9RElSICAgICAgICAgICAgb2JqZWN0IGNvZGUgbGlicmFyaWVzIFtFUFJF RklYL2xpYl0KLSsgIC0taW5jbHVkZWRpcj1ESVIgICAgICAgIEMgaGVhZGVyIGZpbGVzIFtQUkVG SVgvaW5jbHVkZV0KLSsgIC0tb2xkaW5jbHVkZWRpcj1ESVIgICAgIEMgaGVhZGVyIGZpbGVzIGZv ciBub24tZ2NjIFsvdXNyL2luY2x1ZGVdCi0rICAtLWRhdGFyb290ZGlyPURJUiAgICAgICByZWFk LW9ubHkgYXJjaC4taW5kZXBlbmRlbnQgZGF0YSByb290IFtQUkVGSVgvc2hhcmVdCi0rICAtLWRh dGFkaXI9RElSICAgICAgICAgICByZWFkLW9ubHkgYXJjaGl0ZWN0dXJlLWluZGVwZW5kZW50IGRh dGEgW0RBVEFST09URElSXQotKyAgLS1pbmZvZGlyPURJUiAgICAgICAgICAgaW5mbyBkb2N1bWVu dGF0aW9uIFtEQVRBUk9PVERJUi9pbmZvXQotKyAgLS1sb2NhbGVkaXI9RElSICAgICAgICAgbG9j YWxlLWRlcGVuZGVudCBkYXRhIFtEQVRBUk9PVERJUi9sb2NhbGVdCi0rICAtLW1hbmRpcj1ESVIg ICAgICAgICAgICBtYW4gZG9jdW1lbnRhdGlvbiBbREFUQVJPT1RESVIvbWFuXQotKyAgLS1kb2Nk aXI9RElSICAgICAgICAgICAgZG9jdW1lbnRhdGlvbiByb290IFtEQVRBUk9PVERJUi9kb2Mvc29j aV0KLSsgIC0taHRtbGRpcj1ESVIgICAgICAgICAgIGh0bWwgZG9jdW1lbnRhdGlvbiBbRE9DRElS XQotKyAgLS1kdmlkaXI9RElSICAgICAgICAgICAgZHZpIGRvY3VtZW50YXRpb24gW0RPQ0RJUl0K LSsgIC0tcGRmZGlyPURJUiAgICAgICAgICAgIHBkZiBkb2N1bWVudGF0aW9uIFtET0NESVJdCi0r ICAtLXBzZGlyPURJUiAgICAgICAgICAgICBwcyBkb2N1bWVudGF0aW9uIFtET0NESVJdCi0rX0FD RU9GCi0rCi0rICBjYXQgPDxcX0FDRU9GCi0rCi0rUHJvZ3JhbSBuYW1lczoKLSsgIC0tcHJvZ3Jh bS1wcmVmaXg9UFJFRklYICAgICAgICAgICAgcHJlcGVuZCBQUkVGSVggdG8gaW5zdGFsbGVkIHBy b2dyYW0gbmFtZXMKLSsgIC0tcHJvZ3JhbS1zdWZmaXg9U1VGRklYICAgICAgICAgICAgYXBwZW5k IFNVRkZJWCB0byBpbnN0YWxsZWQgcHJvZ3JhbSBuYW1lcwotKyAgLS1wcm9ncmFtLXRyYW5zZm9y bS1uYW1lPVBST0dSQU0gICBydW4gc2VkIFBST0dSQU0gb24gaW5zdGFsbGVkIHByb2dyYW0gbmFt ZXMKLSsKLStTeXN0ZW0gdHlwZXM6Ci0rICAtLWJ1aWxkPUJVSUxEICAgICBjb25maWd1cmUgZm9y IGJ1aWxkaW5nIG9uIEJVSUxEIFtndWVzc2VkXQotKyAgLS1ob3N0PUhPU1QgICAgICAgY3Jvc3Mt Y29tcGlsZSB0byBidWlsZCBwcm9ncmFtcyB0byBydW4gb24gSE9TVCBbQlVJTERdCi0rX0FDRU9G Ci0rZmkKLSsKLStpZiB0ZXN0IC1uICIkYWNfaW5pdF9oZWxwIjsgdGhlbgotKyAgY2FzZSAkYWNf aW5pdF9oZWxwIGluCi0rICAgICBzaG9ydCB8IHJlY3Vyc2l2ZSApIGVjaG8gIkNvbmZpZ3VyYXRp b24gb2YgU09DSSAzLjAuMDoiOzsKLSsgICBlc2FjCi0rICBjYXQgPDxcX0FDRU9GCi0rCi0rT3B0 aW9uYWwgRmVhdHVyZXM6Ci0rICAtLWRpc2FibGUtb3B0aW9uLWNoZWNraW5nICBpZ25vcmUgdW5y ZWNvZ25pemVkIC0tZW5hYmxlLy0td2l0aCBvcHRpb25zCi0rICAtLWRpc2FibGUtRkVBVFVSRSAg ICAgICBkbyBub3QgaW5jbHVkZSBGRUFUVVJFIChzYW1lIGFzIC0tZW5hYmxlLUZFQVRVUkU9bm8p Ci0rICAtLWVuYWJsZS1GRUFUVVJFWz1BUkddICBpbmNsdWRlIEZFQVRVUkUgW0FSRz15ZXNdCi0r ICAtLWVuYWJsZS1zaGFyZWRbPVBLR1NdICBidWlsZCBzaGFyZWQgbGlicmFyaWVzIFtkZWZhdWx0 PW5vXQotKyAgLS1lbmFibGUtc3RhdGljWz1QS0dTXSAgYnVpbGQgc3RhdGljIGxpYnJhcmllcyBb ZGVmYXVsdD15ZXNdCi0rICAtLWRpc2FibGUtZGVwZW5kZW5jeS10cmFja2luZyAgc3BlZWRzIHVw IG9uZS10aW1lIGJ1aWxkCi0rICAtLWVuYWJsZS1kZXBlbmRlbmN5LXRyYWNraW5nICAgZG8gbm90 IHJlamVjdCBzbG93IGRlcGVuZGVuY3kgZXh0cmFjdG9ycwotKyAgLS1lbmFibGUtZmFzdC1pbnN0 YWxsWz1QS0dTXQotKyAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW1pemUgZm9yIGZhc3Qg aW5zdGFsbGF0aW9uIFtkZWZhdWx0PXllc10KLSsgIC0tZGlzYWJsZS1saWJ0b29sLWxvY2sgIGF2 b2lkIGxvY2tpbmcgKG1pZ2h0IGJyZWFrIHBhcmFsbGVsIGJ1aWxkcykKLSsgIC0tZW5hYmxlLWV4 Y2VwdGlvbnMgICAgIGVuYWJsZSBleGNlcHRpb25zIGhhbmRsaW5nIG1lY2hhbmlzbQotKyAgLS1k aXNhYmxlLWluZm8tZG9jICAgICAgZG8gbm90IGdlbmVyYXRlIEluZm8gZG9jdW1lbnRhdGlvbgot KyAgLS1kaXNhYmxlLWh0bWwtZG9jICAgICAgZG8gbm90IGdlbmVyYXRlIEhUTUwgZG9jdW1lbnRh dGlvbgotKyAgLS1lbmFibGUtYnVycmllZC1oZWFkZXJzCi0rICAgICAgICAgICAgICAgICAgICAg ICAgICBpbmNsdWRlIGhlYWRlciBmaWxlcyBmcm9tIGEgZGlyZWN0b3J5IHN0cnVjdHVyZQotKyAg LS1lbmFibGUtbXlzcWwtYnVycmllZC1oZWFkZXJzCi0rICAgICAgICAgICAgICAgICAgICAgICAg ICBpbmNsdWRlIE15U1FMIGhlYWRlciBmaWxlcyBmcm9tIGEgZGlyZWN0b3J5Ci0rICAgICAgICAg ICAgICAgICAgICAgICAgICBzdHJ1Y3R1cmUKLSsgIC0tZW5hYmxlLXBvc3RncmVzcWwtYnVycmll ZC1oZWFkZXJzCi0rICAgICAgICAgICAgICAgICAgICAgICAgICBpbmNsdWRlIFBvc3RHcmVTUUwg aGVhZGVyIGZpbGVzIGZyb20gYSBkaXJlY3RvcnkKLSsgICAgICAgICAgICAgICAgICAgICAgICAg IHN0cnVjdHVyZQotKyAgLS1lbmFibGUtYmFja2VuZC1teXNxbCAgYnVpbGQtaW4gTXlTUUwgYmFj a2VuZCBzdXBwb3J0IFtkZWZhdWx0PW5vXQotKyAgLS1lbmFibGUtYmFja2VuZC1vcmFjbGUgYnVp bGQtaW4gT1JBQ0xFIGJhY2tlbmQgc3VwcG9ydCBbZGVmYXVsdD1ub10KLSsgIC0tZW5hYmxlLWJh Y2tlbmQtcG9zdGdyZXNxbAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgYnVpbGQtaW4gUG9z dGdyZVNRTCBiYWNrZW5kIHN1cHBvcnQgW2RlZmF1bHQ9bm9dCi0rCi0rT3B0aW9uYWwgUGFja2Fn ZXM6Ci0rICAtLXdpdGgtUEFDS0FHRVs9QVJHXSAgICB1c2UgUEFDS0FHRSBbQVJHPXllc10KLSsg IC0td2l0aG91dC1QQUNLQUdFICAgICAgIGRvIG5vdCB1c2UgUEFDS0FHRSAoc2FtZSBhcyAtLXdp dGgtUEFDS0FHRT1ubykKLSsgIC0td2l0aC1jcHB1bml0LXByZWZpeD1QRlggICBQcmVmaXggd2hl cmUgQ3BwVW5pdCBpcyBpbnN0YWxsZWQgKG9wdGlvbmFsKQotKyAgLS13aXRoLWNwcHVuaXQtZXhl Yy1wcmVmaXg9UEZYICBFeGVjIHByZWZpeCB3aGVyZSBDcHBVbml0IGlzIGluc3RhbGxlZCAob3B0 aW9uYWwpCi0rICAtLXdpdGgtcGljICAgICAgICAgICAgICB0cnkgdG8gdXNlIG9ubHkgUElDL25v bi1QSUMgb2JqZWN0cyBbZGVmYXVsdD11c2UKLSsgICAgICAgICAgICAgICAgICAgICAgICAgIGJv dGhdCi0rICAtLXdpdGgtZ251LWxkICAgICAgICAgICBhc3N1bWUgdGhlIEMgY29tcGlsZXIgdXNl cyBHTlUgbGQgW2RlZmF1bHQ9bm9dCi0rICAtLXdpdGgtZG9jZGlyPURJUiAgICAgICBzZXQgZG9j dW1lbnRhdGlvbiBkaXJlY3RvcnkgdG8gRElSCi0rICAtLXdpdGgtYm9vc3Q9RElSICAgICAgICB1 c2UgYm9vc3QgKGRlZmF1bHQgaXMgTk8pICwgc3BlY2lmeSB0aGUgcm9vdAotKyAgICAgICAgICAg ICAgICAgICAgICAgICAgZGlyZWN0b3J5IGZvciBib29zdCBsaWJyYXJ5IChvcHRpb25hbCkKLSsg IC0td2l0aC1teXNxbD1bQVJHXSAgICAgIHVzZSBNeVNRTCBjbGllbnQgbGlicmFyeSBbZGVmYXVs dD15ZXNdLCBvcHRpb25hbGx5Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICBzcGVjaWZ5IHBh dGggdG8gbXlzcWxfY29uZmlnCi0rICAtLXdpdGgtb3JhY2xlPVtESVJdICAgICB1c2UgT3JhY2xl IE9DSSBBUEkgZnJvbSBnaXZlbiBwYXRoIHRvIE9yYWNsZSBob21lCi0rICAgICAgICAgICAgICAg ICAgICAgICAgICBkaXJlY3RvcnkKLSsgIC0td2l0aC1vcmFjbGUtaW5jbHVkZT1bRElSXQotKyAg ICAgICAgICAgICAgICAgICAgICAgICAgdXNlIE9yYWNsZSBPQ0kgQVBJIGhlYWRlcnMgZnJvbSBn aXZlbiBwYXRoCi0rICAtLXdpdGgtb3JhY2xlLWxpYj1bRElSXSB1c2UgT3JhY2xlIE9DSSBBUEkg bGlicmFyaWVzIGZyb20gZ2l2ZW4gcGF0aAotKyAgLS13aXRoLXBvc3RncmVzcWw9W0FSR10gdXNl IFBvc3RncmVTUUwgbGlicmFyeSBbZGVmYXVsdD15ZXNdLCBvcHRpb25hbGx5Ci0rICAgICAgICAg ICAgICAgICAgICAgICAgICBzcGVjaWZ5IHBhdGggdG8gcGdfY29uZmlnCi0rCi0rU29tZSBpbmZs dWVudGlhbCBlbnZpcm9ubWVudCB2YXJpYWJsZXM6Ci0rICBDWFggICAgICAgICBDKysgY29tcGls ZXIgY29tbWFuZAotKyAgQ1hYRkxBR1MgICAgQysrIGNvbXBpbGVyIGZsYWdzCi0rICBMREZMQUdT ICAgICBsaW5rZXIgZmxhZ3MsIGUuZy4gLUw8bGliIGRpcj4gaWYgeW91IGhhdmUgbGlicmFyaWVz IGluIGEKLSsgICAgICAgICAgICAgIG5vbnN0YW5kYXJkIGRpcmVjdG9yeSA8bGliIGRpcj4KLSsg IExJQlMgICAgICAgIGxpYnJhcmllcyB0byBwYXNzIHRvIHRoZSBsaW5rZXIsIGUuZy4gLWw8bGli cmFyeT4KLSsgIENQUEZMQUdTICAgIEMvQysrL09iamVjdGl2ZSBDIHByZXByb2Nlc3NvciBmbGFn cywgZS5nLiAtSTxpbmNsdWRlIGRpcj4gaWYKLSsgICAgICAgICAgICAgIHlvdSBoYXZlIGhlYWRl cnMgaW4gYSBub25zdGFuZGFyZCBkaXJlY3RvcnkgPGluY2x1ZGUgZGlyPgotKyAgQ1hYQ1BQICAg ICAgQysrIHByZXByb2Nlc3NvcgotKyAgQ0MgICAgICAgICAgQyBjb21waWxlciBjb21tYW5kCi0r ICBDRkxBR1MgICAgICBDIGNvbXBpbGVyIGZsYWdzCi0rICBDUFAgICAgICAgICBDIHByZXByb2Nl c3NvcgotKwotK1VzZSB0aGVzZSB2YXJpYWJsZXMgdG8gb3ZlcnJpZGUgdGhlIGNob2ljZXMgbWFk ZSBieSBgY29uZmlndXJlJyBvciB0byBoZWxwCi0raXQgdG8gZmluZCBsaWJyYXJpZXMgYW5kIHBy b2dyYW1zIHdpdGggbm9uc3RhbmRhcmQgbmFtZXMvbG9jYXRpb25zLgotKwotK1JlcG9ydCBidWdz IHRvIDxtc29iY3pha0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+LgotK19BQ0VPRgotK2FjX3N0YXR1 cz0kPwotK2ZpCi0rCi0raWYgdGVzdCAiJGFjX2luaXRfaGVscCIgPSAicmVjdXJzaXZlIjsgdGhl bgotKyAgIyBJZiB0aGVyZSBhcmUgc3ViZGlycywgcmVwb3J0IHRoZWlyIHNwZWNpZmljIC0taGVs cC4KLSsgIGZvciBhY19kaXIgaW4gOiAkYWNfc3ViZGlyc19hbGw7IGRvIHRlc3QgIngkYWNfZGly IiA9IHg6ICYmIGNvbnRpbnVlCi0rICAgIHRlc3QgLWQgIiRhY19kaXIiIHx8Ci0rICAgICAgeyBj ZCAiJHNyY2RpciIgJiYgYWNfcHdkPWBwd2RgICYmIHNyY2Rpcj0uICYmIHRlc3QgLWQgIiRhY19k aXIiOyB9IHx8Ci0rICAgICAgY29udGludWUKLSsgICAgYWNfYnVpbGRkaXI9LgotKwotK2Nhc2Ug IiRhY19kaXIiIGluCi0rLikgYWNfZGlyX3N1ZmZpeD0gYWNfdG9wX2J1aWxkZGlyX3N1Yj0uIGFj X3RvcF9idWlsZF9wcmVmaXg9IDs7Ci0rKikKLSsgIGFjX2Rpcl9zdWZmaXg9L2AkYXNfZWNobyAi JGFjX2RpciIgfCBzZWQgJ3N8XlwuW1xcL118fCdgCi0rICAjIEEgIi4uIiBmb3IgZWFjaCBkaXJl Y3RvcnkgaW4gJGFjX2Rpcl9zdWZmaXguCi0rICBhY190b3BfYnVpbGRkaXJfc3ViPWAkYXNfZWNo byAiJGFjX2Rpcl9zdWZmaXgiIHwgc2VkICdzfC9bXlxcL10qfC8uLnxnO3N8L3x8J2AKLSsgIGNh c2UgJGFjX3RvcF9idWlsZGRpcl9zdWIgaW4KLSsgICIiKSBhY190b3BfYnVpbGRkaXJfc3ViPS4g YWNfdG9wX2J1aWxkX3ByZWZpeD0gOzsKLSsgICopICBhY190b3BfYnVpbGRfcHJlZml4PSRhY190 b3BfYnVpbGRkaXJfc3ViLyA7OwotKyAgZXNhYyA7OwotK2VzYWMKLSthY19hYnNfdG9wX2J1aWxk ZGlyPSRhY19wd2QKLSthY19hYnNfYnVpbGRkaXI9JGFjX3B3ZCRhY19kaXJfc3VmZml4Ci0rIyBm b3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eToKLSthY190b3BfYnVpbGRkaXI9JGFjX3RvcF9idWls ZF9wcmVmaXgKLSsKLStjYXNlICRzcmNkaXIgaW4KLSsgIC4pICAjIFdlIGFyZSBidWlsZGluZyBp biBwbGFjZS4KLSsgICAgYWNfc3JjZGlyPS4KLSsgICAgYWNfdG9wX3NyY2Rpcj0kYWNfdG9wX2J1 aWxkZGlyX3N1YgotKyAgICBhY19hYnNfdG9wX3NyY2Rpcj0kYWNfcHdkIDs7Ci0rICBbXFwvXSog fCA/OltcXC9dKiApICAjIEFic29sdXRlIG5hbWUuCi0rICAgIGFjX3NyY2Rpcj0kc3JjZGlyJGFj X2Rpcl9zdWZmaXg7Ci0rICAgIGFjX3RvcF9zcmNkaXI9JHNyY2RpcgotKyAgICBhY19hYnNfdG9w X3NyY2Rpcj0kc3JjZGlyIDs7Ci0rICAqKSAjIFJlbGF0aXZlIG5hbWUuCi0rICAgIGFjX3NyY2Rp cj0kYWNfdG9wX2J1aWxkX3ByZWZpeCRzcmNkaXIkYWNfZGlyX3N1ZmZpeAotKyAgICBhY190b3Bf c3JjZGlyPSRhY190b3BfYnVpbGRfcHJlZml4JHNyY2RpcgotKyAgICBhY19hYnNfdG9wX3NyY2Rp cj0kYWNfcHdkLyRzcmNkaXIgOzsKLStlc2FjCi0rYWNfYWJzX3NyY2Rpcj0kYWNfYWJzX3RvcF9z cmNkaXIkYWNfZGlyX3N1ZmZpeAotKwotKyAgICBjZCAiJGFjX2RpciIgfHwgeyBhY19zdGF0dXM9 JD87IGNvbnRpbnVlOyB9Ci0rICAgICMgQ2hlY2sgZm9yIGd1ZXN0ZWQgY29uZmlndXJlLgotKyAg ICBpZiB0ZXN0IC1mICIkYWNfc3JjZGlyL2NvbmZpZ3VyZS5nbnUiOyB0aGVuCi0rICAgICAgZWNo byAmJgotKyAgICAgICRTSEVMTCAiJGFjX3NyY2Rpci9jb25maWd1cmUuZ251IiAtLWhlbHA9cmVj dXJzaXZlCi0rICAgIGVsaWYgdGVzdCAtZiAiJGFjX3NyY2Rpci9jb25maWd1cmUiOyB0aGVuCi0r ICAgICAgZWNobyAmJgotKyAgICAgICRTSEVMTCAiJGFjX3NyY2Rpci9jb25maWd1cmUiIC0taGVs cD1yZWN1cnNpdmUKLSsgICAgZWxzZQotKyAgICAgICRhc19lY2hvICIkYXNfbWU6IFdBUk5JTkc6 IG5vIGNvbmZpZ3VyYXRpb24gaW5mb3JtYXRpb24gaXMgaW4gJGFjX2RpciIgPiYyCi0rICAgIGZp IHx8IGFjX3N0YXR1cz0kPwotKyAgICBjZCAiJGFjX3B3ZCIgfHwgeyBhY19zdGF0dXM9JD87IGJy ZWFrOyB9Ci0rICBkb25lCi0rZmkKLSsKLSt0ZXN0IC1uICIkYWNfaW5pdF9oZWxwIiAmJiBleGl0 ICRhY19zdGF0dXMKLStpZiAkYWNfaW5pdF92ZXJzaW9uOyB0aGVuCi0rICBjYXQgPDxcX0FDRU9G Ci0rU09DSSBjb25maWd1cmUgMy4wLjAKLStnZW5lcmF0ZWQgYnkgR05VIEF1dG9jb25mIDIuNjMK LSsKLStDb3B5cmlnaHQgKEMpIDE5OTIsIDE5OTMsIDE5OTQsIDE5OTUsIDE5OTYsIDE5OTgsIDE5 OTksIDIwMDAsIDIwMDEsCi0rMjAwMiwgMjAwMywgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNywgMjAw OCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KLStUaGlzIGNvbmZpZ3VyZSBzY3JpcHQg aXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbgotK2dpdmVzIHVu bGltaXRlZCBwZXJtaXNzaW9uIHRvIGNvcHksIGRpc3RyaWJ1dGUgYW5kIG1vZGlmeSBpdC4KLSsK LStDb3B5cmlnaHQgKEMpIDIwMDQtMjAwOSBNYWNpZWogU29iY3phayA8bXNvYmN6YWtAdXNlcnMu c291cmNlZm9yZ2UubmV0PgotK19BQ0VPRgotKyAgZXhpdAotIGZpCi0rY2F0ID5jb25maWcubG9n IDw8X0FDRU9GCi0rVGhpcyBmaWxlIGNvbnRhaW5zIGFueSBtZXNzYWdlcyBwcm9kdWNlZCBieSBj b21waWxlcnMgd2hpbGUKLStydW5uaW5nIGNvbmZpZ3VyZSwgdG8gYWlkIGRlYnVnZ2luZyBpZiBj b25maWd1cmUgbWFrZXMgYSBtaXN0YWtlLgotKwotK0l0IHdhcyBjcmVhdGVkIGJ5IFNPQ0kgJGFz X21lIDMuMC4wLCB3aGljaCB3YXMKLStnZW5lcmF0ZWQgYnkgR05VIEF1dG9jb25mIDIuNjMuICBJ bnZvY2F0aW9uIGNvbW1hbmQgbGluZSB3YXMKLSsKLSsgICQgJDAgJEAKLSsKLStfQUNFT0YKLStl eGVjIDU+PmNvbmZpZy5sb2cKLSt7Ci0rY2F0IDw8X0FTVU5BTUUKLSsjIyAtLS0tLS0tLS0gIyMK LSsjIyBQbGF0Zm9ybS4gIyMKLSsjIyAtLS0tLS0tLS0gIyMKLSsKLStob3N0bmFtZSA9IGAoaG9z dG5hbWUgfHwgdW5hbWUgLW4pIDI+L2Rldi9udWxsIHwgc2VkIDFxYAotK3VuYW1lIC1tID0gYCh1 bmFtZSAtbSkgMj4vZGV2L251bGwgfHwgZWNobyB1bmtub3duYAotK3VuYW1lIC1yID0gYCh1bmFt ZSAtcikgMj4vZGV2L251bGwgfHwgZWNobyB1bmtub3duYAotK3VuYW1lIC1zID0gYCh1bmFtZSAt cykgMj4vZGV2L251bGwgfHwgZWNobyB1bmtub3duYAotK3VuYW1lIC12ID0gYCh1bmFtZSAtdikg Mj4vZGV2L251bGwgfHwgZWNobyB1bmtub3duYAotKwotKy91c3IvYmluL3VuYW1lIC1wID0gYCgv dXNyL2Jpbi91bmFtZSAtcCkgMj4vZGV2L251bGwgfHwgZWNobyB1bmtub3duYAotKy9iaW4vdW5h bWUgLVggICAgID0gYCgvYmluL3VuYW1lIC1YKSAyPi9kZXYvbnVsbCAgICAgfHwgZWNobyB1bmtu b3duYAotKwotKy9iaW4vYXJjaCAgICAgICAgICAgICAgPSBgKC9iaW4vYXJjaCkgMj4vZGV2L251 bGwgICAgICAgICAgICAgIHx8IGVjaG8gdW5rbm93bmAKLSsvdXNyL2Jpbi9hcmNoIC1rICAgICAg ID0gYCgvdXNyL2Jpbi9hcmNoIC1rKSAyPi9kZXYvbnVsbCAgICAgICB8fCBlY2hvIHVua25vd25g Ci0rL3Vzci9jb252ZXgvZ2V0c3lzaW5mbyA9IGAoL3Vzci9jb252ZXgvZ2V0c3lzaW5mbykgMj4v ZGV2L251bGwgfHwgZWNobyB1bmtub3duYAotKy91c3IvYmluL2hvc3RpbmZvICAgICAgPSBgKC91 c3IvYmluL2hvc3RpbmZvKSAyPi9kZXYvbnVsbCAgICAgIHx8IGVjaG8gdW5rbm93bmAKLSsvYmlu L21hY2hpbmUgICAgICAgICAgID0gYCgvYmluL21hY2hpbmUpIDI+L2Rldi9udWxsICAgICAgICAg ICB8fCBlY2hvIHVua25vd25gCi0rL3Vzci9iaW4vb3NsZXZlbCAgICAgICA9IGAoL3Vzci9iaW4v b3NsZXZlbCkgMj4vZGV2L251bGwgICAgICAgfHwgZWNobyB1bmtub3duYAotKy9iaW4vdW5pdmVy c2UgICAgICAgICAgPSBgKC9iaW4vdW5pdmVyc2UpIDI+L2Rldi9udWxsICAgICAgICAgIHx8IGVj aG8gdW5rbm93bmAKLSsKLStfQVNVTkFNRQotKwotK2FzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFU SF9TRVBBUkFUT1IKLStmb3IgYXNfZGlyIGluICRQQVRICi0rZG8KLSsgIElGUz0kYXNfc2F2ZV9J RlMKLSsgIHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCi0rICAkYXNfZWNobyAiUEFUSDog JGFzX2RpciIKLStkb25lCi0rSUZTPSRhc19zYXZlX0lGUwotKwotK30gPiY1Ci0rCi0rY2F0ID4m NSA8PF9BQ0VPRgotKwotKwotKyMjIC0tLS0tLS0tLS0tICMjCi0rIyMgQ29yZSB0ZXN0cy4gIyMK LSsjIyAtLS0tLS0tLS0tLSAjIwotKwotK19BQ0VPRgotKwotKwotKyMgS2VlcCBhIHRyYWNlIG9m IHRoZSBjb21tYW5kIGxpbmUuCi0rIyBTdHJpcCBvdXQgLS1uby1jcmVhdGUgYW5kIC0tbm8tcmVj dXJzaW9uIHNvIHRoZXkgZG8gbm90IHBpbGUgdXAuCi0rIyBTdHJpcCBvdXQgLS1zaWxlbnQgYmVj YXVzZSB3ZSBkb24ndCB3YW50IHRvIHJlY29yZCBpdCBmb3IgZnV0dXJlIHJ1bnMuCi0rIyBBbHNv IHF1b3RlIGFueSBhcmdzIGNvbnRhaW5pbmcgc2hlbGwgbWV0YS1jaGFyYWN0ZXJzLgotKyMgTWFr ZSB0d28gcGFzc2VzIHRvIGFsbG93IGZvciBwcm9wZXIgZHVwbGljYXRlLWFyZ3VtZW50IHN1cHBy ZXNzaW9uLgotK2FjX2NvbmZpZ3VyZV9hcmdzPQotK2FjX2NvbmZpZ3VyZV9hcmdzMD0KLSthY19j b25maWd1cmVfYXJnczE9Ci0rYWNfbXVzdF9rZWVwX25leHQ9ZmFsc2UKLStmb3IgYWNfcGFzcyBp biAxIDIKLStkbwotKyAgZm9yIGFjX2FyZwotKyAgZG8KLSsgICAgY2FzZSAkYWNfYXJnIGluCi0r ICAgIC1uby1jcmVhdGUgfCAtLW5vLWMqIHwgLW4gfCAtbm8tcmVjdXJzaW9uIHwgLS1uby1yKikg Y29udGludWUgOzsKLSsgICAgLXEgfCAtcXVpZXQgfCAtLXF1aWV0IHwgLS1xdWllIHwgLS1xdWkg fCAtLXF1IHwgLS1xIFwKLSsgICAgfCAtc2lsZW50IHwgLS1zaWxlbnQgfCAtLXNpbGVuIHwgLS1z aWxlIHwgLS1zaWwpCi0rICAgICAgY29udGludWUgOzsKLSsgICAgKlwnKikKLSsgICAgICBhY19h cmc9YCRhc19lY2hvICIkYWNfYXJnIiB8IHNlZCAicy8nLydcXFxcXFxcXCcnL2ciYCA7OwotKyAg ICBlc2FjCi0rICAgIGNhc2UgJGFjX3Bhc3MgaW4KLSsgICAgMSkgYWNfY29uZmlndXJlX2FyZ3Mw PSIkYWNfY29uZmlndXJlX2FyZ3MwICckYWNfYXJnJyIgOzsKLSsgICAgMikKLSsgICAgICBhY19j b25maWd1cmVfYXJnczE9IiRhY19jb25maWd1cmVfYXJnczEgJyRhY19hcmcnIgotKyAgICAgIGlm IHRlc3QgJGFjX211c3Rfa2VlcF9uZXh0ID0gdHJ1ZTsgdGhlbgotKwlhY19tdXN0X2tlZXBfbmV4 dD1mYWxzZSAjIEdvdCB2YWx1ZSwgYmFjayB0byBub3JtYWwuCi0rICAgICAgZWxzZQotKwljYXNl ICRhY19hcmcgaW4KLSsJICAqPSogfCAtLWNvbmZpZy1jYWNoZSB8IC1DIHwgLWRpc2FibGUtKiB8 IC0tZGlzYWJsZS0qIFwKLSsJICB8IC1lbmFibGUtKiB8IC0tZW5hYmxlLSogfCAtZ2FzIHwgLS1n KiB8IC1uZnAgfCAtLW5mKiBcCi0rCSAgfCAtcSB8IC1xdWlldCB8IC0tcSogfCAtc2lsZW50IHwg LS1zaWwqIHwgLXYgfCAtdmVyYiogXAotKwkgIHwgLXdpdGgtKiB8IC0td2l0aC0qIHwgLXdpdGhv dXQtKiB8IC0td2l0aG91dC0qIHwgLS14KQotKwkgICAgY2FzZSAiJGFjX2NvbmZpZ3VyZV9hcmdz MCAiIGluCi0rCSAgICAgICIkYWNfY29uZmlndXJlX2FyZ3MxIioiICckYWNfYXJnJyAiKiApIGNv bnRpbnVlIDs7Ci0rCSAgICBlc2FjCi0rCSAgICA7OwotKwkgIC0qICkgYWNfbXVzdF9rZWVwX25l eHQ9dHJ1ZSA7OwotKwllc2FjCi0rICAgICAgZmkKLSsgICAgICBhY19jb25maWd1cmVfYXJncz0i JGFjX2NvbmZpZ3VyZV9hcmdzICckYWNfYXJnJyIKLSsgICAgICA7OwotKyAgICBlc2FjCi0rICBk b25lCi0rZG9uZQotKyRhc191bnNldCBhY19jb25maWd1cmVfYXJnczAgfHwgdGVzdCAiJHthY19j b25maWd1cmVfYXJnczArc2V0fSIgIT0gc2V0IHx8IHsgYWNfY29uZmlndXJlX2FyZ3MwPTsgZXhw b3J0IGFjX2NvbmZpZ3VyZV9hcmdzMDsgfQotKyRhc191bnNldCBhY19jb25maWd1cmVfYXJnczEg fHwgdGVzdCAiJHthY19jb25maWd1cmVfYXJnczErc2V0fSIgIT0gc2V0IHx8IHsgYWNfY29uZmln dXJlX2FyZ3MxPTsgZXhwb3J0IGFjX2NvbmZpZ3VyZV9hcmdzMTsgfQotKwotKyMgV2hlbiBpbnRl cnJ1cHRlZCBvciBleGl0J2QsIGNsZWFudXAgdGVtcG9yYXJ5IGZpbGVzLCBhbmQgY29tcGxldGUK LSsjIGNvbmZpZy5sb2cuICBXZSByZW1vdmUgY29tbWVudHMgYmVjYXVzZSBhbnl3YXkgdGhlIHF1 b3RlcyBpbiB0aGVyZQotKyMgd291bGQgY2F1c2UgcHJvYmxlbXMgb3IgbG9vayB1Z2x5LgotKyMg V0FSTklORzogVXNlICdcJycgdG8gcmVwcmVzZW50IGFuIGFwb3N0cm9waGUgd2l0aGluIHRoZSB0 cmFwLgotKyMgV0FSTklORzogRG8gbm90IHN0YXJ0IHRoZSB0cmFwIGNvZGUgd2l0aCBhIG5ld2xp bmUsIGR1ZSB0byBhIEZyZWVCU0QgNC4wIGJ1Zy4KLSt0cmFwICdleGl0X3N0YXR1cz0kPwotKyAg IyBTYXZlIGludG8gY29uZmlnLmxvZyBzb21lIGluZm9ybWF0aW9uIHRoYXQgbWlnaHQgaGVscCBp biBkZWJ1Z2dpbmcuCi0rICB7Ci0rICAgIGVjaG8KLSsKLSsgICAgY2F0IDw8XF9BU0JPWAotKyMj IC0tLS0tLS0tLS0tLS0tLS0gIyMKLSsjIyBDYWNoZSB2YXJpYWJsZXMuICMjCi0rIyMgLS0tLS0t LS0tLS0tLS0tLSAjIwotK19BU0JPWAotKyAgICBlY2hvCi0rICAgICMgVGhlIGZvbGxvd2luZyB3 YXkgb2Ygd3JpdGluZyB0aGUgY2FjaGUgbWlzaGFuZGxlcyBuZXdsaW5lcyBpbiB2YWx1ZXMsCi0r KAotKyAgZm9yIGFjX3ZhciBpbiBgKHNldCkgMj4mMSB8IHNlZCAtbiAnXCcncy9eXChbYS16QS1a X11bYS16QS1aMC05X10qXCk9LiovXDEvcCdcJydgOyBkbwotKyAgICBldmFsIGFjX3ZhbD1cJCRh Y192YXIKLSsgICAgY2FzZSAkYWNfdmFsIGluICMoCi0rICAgICoke2FzX25sfSopCi0rICAgICAg Y2FzZSAkYWNfdmFyIGluICMoCi0rICAgICAgKl9jdl8qKSB7ICRhc19lY2hvICIkYXNfbWU6JExJ TkVOTzogV0FSTklORzogY2FjaGUgdmFyaWFibGUgJGFjX3ZhciBjb250YWlucyBhIG5ld2xpbmUi ID4mNQotKyRhc19lY2hvICIkYXNfbWU6IFdBUk5JTkc6IGNhY2hlIHZhcmlhYmxlICRhY192YXIg Y29udGFpbnMgYSBuZXdsaW5lIiA+JjI7fSA7OwotKyAgICAgIGVzYWMKLSsgICAgICBjYXNlICRh Y192YXIgaW4gIygKLSsgICAgICBfIHwgSUZTIHwgYXNfbmwpIDs7ICMoCi0rICAgICAgQkFTSF9B UkdWIHwgQkFTSF9TT1VSQ0UpIGV2YWwgJGFjX3Zhcj0gOzsgIygKLSsgICAgICAqKSAkYXNfdW5z ZXQgJGFjX3ZhciA7OwotKyAgICAgIGVzYWMgOzsKLSsgICAgZXNhYwotKyAgZG9uZQotKyAgKHNl dCkgMj4mMSB8Ci0rICAgIGNhc2UgJGFzX25sYChhY19zcGFjZT0nXCcnICdcJyc7IHNldCkgMj4m MWAgaW4gIygKLSsgICAgKiR7YXNfbmx9YWNfc3BhY2U9XCAqKQotKyAgICAgIHNlZCAtbiBcCi0r CSJzLydcJycvJ1wnJ1xcXFwnXCcnJ1wnJy9nOwotKwkgIHMvXlxcKFtfJGFzX2NyX2FsbnVtXSpf Y3ZfW18kYXNfY3JfYWxudW1dKlxcKT1cXCguKlxcKS9cXDE9J1wnJ1xcMidcJycvcCIKLSsgICAg ICA7OyAjKAotKyAgICAqKQotKyAgICAgIHNlZCAtbiAiL15bXyRhc19jcl9hbG51bV0qX2N2X1tf JGFzX2NyX2FsbnVtXSo9L3AiCi0rICAgICAgOzsKLSsgICAgZXNhYyB8Ci0rICAgIHNvcnQKLSsp Ci0rICAgIGVjaG8KLSsKLSsgICAgY2F0IDw8XF9BU0JPWAotKyMjIC0tLS0tLS0tLS0tLS0tLS0t ICMjCi0rIyMgT3V0cHV0IHZhcmlhYmxlcy4gIyMKLSsjIyAtLS0tLS0tLS0tLS0tLS0tLSAjIwot K19BU0JPWAotKyAgICBlY2hvCi0rICAgIGZvciBhY192YXIgaW4gJGFjX3N1YnN0X3ZhcnMKLSsg ICAgZG8KLSsgICAgICBldmFsIGFjX3ZhbD1cJCRhY192YXIKLSsgICAgICBjYXNlICRhY192YWwg aW4KLSsgICAgICAqXCdcJycqKSBhY192YWw9YCRhc19lY2hvICIkYWNfdmFsIiB8IHNlZCAicy8n XCcnLydcJydcXFxcXFxcXCdcJycnXCcnL2ciYDs7Ci0rICAgICAgZXNhYwotKyAgICAgICRhc19l Y2hvICIkYWNfdmFyPSdcJyckYWNfdmFsJ1wnJyIKLSsgICAgZG9uZSB8IHNvcnQKLSsgICAgZWNo bwotKwotKyAgICBpZiB0ZXN0IC1uICIkYWNfc3Vic3RfZmlsZXMiOyB0aGVuCi0rICAgICAgY2F0 IDw8XF9BU0JPWAotKyMjIC0tLS0tLS0tLS0tLS0tLS0tLS0gIyMKLSsjIyBGaWxlIHN1YnN0aXR1 dGlvbnMuICMjCi0rIyMgLS0tLS0tLS0tLS0tLS0tLS0tLSAjIwotK19BU0JPWAotKyAgICAgIGVj aG8KLSsgICAgICBmb3IgYWNfdmFyIGluICRhY19zdWJzdF9maWxlcwotKyAgICAgIGRvCi0rCWV2 YWwgYWNfdmFsPVwkJGFjX3ZhcgotKwljYXNlICRhY192YWwgaW4KLSsJKlwnXCcnKikgYWNfdmFs PWAkYXNfZWNobyAiJGFjX3ZhbCIgfCBzZWQgInMvJ1wnJy8nXCcnXFxcXFxcXFwnXCcnJ1wnJy9n ImA7OwotKwllc2FjCi0rCSRhc19lY2hvICIkYWNfdmFyPSdcJyckYWNfdmFsJ1wnJyIKLSsgICAg ICBkb25lIHwgc29ydAotKyAgICAgIGVjaG8KLSsgICAgZmkKLSsKLSsgICAgaWYgdGVzdCAtcyBj b25mZGVmcy5oOyB0aGVuCi0rICAgICAgY2F0IDw8XF9BU0JPWAotKyMjIC0tLS0tLS0tLS0tICMj Ci0rIyMgY29uZmRlZnMuaC4gIyMKLSsjIyAtLS0tLS0tLS0tLSAjIwotK19BU0JPWAotKyAgICAg IGVjaG8KLSsgICAgICBjYXQgY29uZmRlZnMuaAotKyAgICAgIGVjaG8KLSsgICAgZmkKLSsgICAg dGVzdCAiJGFjX3NpZ25hbCIgIT0gMCAmJgotKyAgICAgICRhc19lY2hvICIkYXNfbWU6IGNhdWdo dCBzaWduYWwgJGFjX3NpZ25hbCIKLSsgICAgJGFzX2VjaG8gIiRhc19tZTogZXhpdCAkZXhpdF9z dGF0dXMiCi0rICB9ID4mNQotKyAgcm0gLWYgY29yZSAqLmNvcmUgY29yZS5jb25mdGVzdC4qICYm Ci0rICAgIHJtIC1mIC1yIGNvbmZ0ZXN0KiBjb25mZGVmcyogY29uZiQkKiAkYWNfY2xlYW5fZmls ZXMgJiYKLSsgICAgZXhpdCAkZXhpdF9zdGF0dXMKLSsnIDAKLStmb3IgYWNfc2lnbmFsIGluIDEg MiAxMyAxNTsgZG8KLSsgIHRyYXAgJ2FjX3NpZ25hbD0nJGFjX3NpZ25hbCc7IHsgKGV4aXQgMSk7 IGV4aXQgMTsgfScgJGFjX3NpZ25hbAotK2RvbmUKLSthY19zaWduYWw9MAotKwotKyMgY29uZmRl ZnMuaCBhdm9pZHMgT1MgY29tbWFuZCBsaW5lIGxlbmd0aCBsaW1pdHMgdGhhdCBERUZTIGNhbiBl eGNlZWQuCi0rcm0gLWYgLXIgY29uZnRlc3QqIGNvbmZkZWZzLmgKLSsKLSsjIFByZWRlZmluZWQg cHJlcHJvY2Vzc29yIHZhcmlhYmxlcy4KLSsKLStjYXQgPj5jb25mZGVmcy5oIDw8X0FDRU9GCi0r I2RlZmluZSBQQUNLQUdFX05BTUUgIiRQQUNLQUdFX05BTUUiCi0rX0FDRU9GCi0rCi0rCi0rY2F0 ID4+Y29uZmRlZnMuaCA8PF9BQ0VPRgotKyNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICIkUEFDS0FH RV9UQVJOQU1FIgotK19BQ0VPRgotKwotKwotK2NhdCA+PmNvbmZkZWZzLmggPDxfQUNFT0YKLSsj ZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiJFBBQ0tBR0VfVkVSU0lPTiIKLStfQUNFT0YKLSsKLSsK LStjYXQgPj5jb25mZGVmcy5oIDw8X0FDRU9GCi0rI2RlZmluZSBQQUNLQUdFX1NUUklORyAiJFBB Q0tBR0VfU1RSSU5HIgotK19BQ0VPRgotKwotKwotK2NhdCA+PmNvbmZkZWZzLmggPDxfQUNFT0YK LSsjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICIkUEFDS0FHRV9CVUdSRVBPUlQiCi0rX0FDRU9G Ci0rCi0rCi0rIyBMZXQgdGhlIHNpdGUgZmlsZSBzZWxlY3QgYW4gYWx0ZXJuYXRlIGNhY2hlIGZp bGUgaWYgaXQgd2FudHMgdG8uCi0rIyBQcmVmZXIgYW4gZXhwbGljaXRseSBzZWxlY3RlZCBmaWxl IHRvIGF1dG9tYXRpY2FsbHkgc2VsZWN0ZWQgb25lcy4KLSthY19zaXRlX2ZpbGUxPU5PTkUKLSth Y19zaXRlX2ZpbGUyPU5PTkUKLStpZiB0ZXN0IC1uICIkQ09ORklHX1NJVEUiOyB0aGVuCi0rICBh Y19zaXRlX2ZpbGUxPSRDT05GSUdfU0lURQotK2VsaWYgdGVzdCAieCRwcmVmaXgiICE9IHhOT05F OyB0aGVuCi0rICBhY19zaXRlX2ZpbGUxPSRwcmVmaXgvc2hhcmUvY29uZmlnLnNpdGUKLSsgIGFj X3NpdGVfZmlsZTI9JHByZWZpeC9ldGMvY29uZmlnLnNpdGUKLStlbHNlCi0rICBhY19zaXRlX2Zp bGUxPSRhY19kZWZhdWx0X3ByZWZpeC9zaGFyZS9jb25maWcuc2l0ZQotKyAgYWNfc2l0ZV9maWxl Mj0kYWNfZGVmYXVsdF9wcmVmaXgvZXRjL2NvbmZpZy5zaXRlCi0rZmkKLStmb3IgYWNfc2l0ZV9m aWxlIGluICIkYWNfc2l0ZV9maWxlMSIgIiRhY19zaXRlX2ZpbGUyIgotK2RvCi0rICB0ZXN0ICJ4 JGFjX3NpdGVfZmlsZSIgPSB4Tk9ORSAmJiBjb250aW51ZQotKyAgaWYgdGVzdCAtciAiJGFjX3Np dGVfZmlsZSI7IHRoZW4KLSsgICAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGxvYWRpbmcg c2l0ZSBzY3JpcHQgJGFjX3NpdGVfZmlsZSIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogbG9hZGlu ZyBzaXRlIHNjcmlwdCAkYWNfc2l0ZV9maWxlIiA+JjY7fQotKyAgICBzZWQgJ3MvXi98IC8nICIk YWNfc2l0ZV9maWxlIiA+JjUKLSsgICAgLiAiJGFjX3NpdGVfZmlsZSIKLSsgIGZpCi0rZG9uZQot KwotK2lmIHRlc3QgLXIgIiRjYWNoZV9maWxlIjsgdGhlbgotKyAgIyBTb21lIHZlcnNpb25zIG9m IGJhc2ggd2lsbCBmYWlsIHRvIHNvdXJjZSAvZGV2L251bGwgKHNwZWNpYWwKLSsgICMgZmlsZXMg YWN0dWFsbHkpLCBzbyB3ZSBhdm9pZCBkb2luZyB0aGF0LgotKyAgaWYgdGVzdCAtZiAiJGNhY2hl X2ZpbGUiOyB0aGVuCi0rICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBsb2FkaW5nIGNh Y2hlICRjYWNoZV9maWxlIiA+JjUKLSskYXNfZWNobyAiJGFzX21lOiBsb2FkaW5nIGNhY2hlICRj YWNoZV9maWxlIiA+JjY7fQotKyAgICBjYXNlICRjYWNoZV9maWxlIGluCi0rICAgICAgW1xcL10q IHwgPzpbXFwvXSogKSAuICIkY2FjaGVfZmlsZSI7OwotKyAgICAgICopICAgICAgICAgICAgICAg ICAgICAgIC4gIi4vJGNhY2hlX2ZpbGUiOzsKLSsgICAgZXNhYwotKyAgZmkKLStlbHNlCi0rICB7 ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY3JlYXRpbmcgY2FjaGUgJGNhY2hlX2ZpbGUiID4m NQotKyRhc19lY2hvICIkYXNfbWU6IGNyZWF0aW5nIGNhY2hlICRjYWNoZV9maWxlIiA+JjY7fQot KyAgPiRjYWNoZV9maWxlCi0rZmkKLSsKLSsjIENoZWNrIHRoYXQgdGhlIHByZWNpb3VzIHZhcmlh YmxlcyBzYXZlZCBpbiB0aGUgY2FjaGUgaGF2ZSBrZXB0IHRoZSBzYW1lCi0rIyB2YWx1ZS4KLSth Y19jYWNoZV9jb3JydXB0ZWQ9ZmFsc2UKLStmb3IgYWNfdmFyIGluICRhY19wcmVjaW91c192YXJz OyBkbwotKyAgZXZhbCBhY19vbGRfc2V0PVwkYWNfY3ZfZW52XyR7YWNfdmFyfV9zZXQKLSsgIGV2 YWwgYWNfbmV3X3NldD1cJGFjX2Vudl8ke2FjX3Zhcn1fc2V0Ci0rICBldmFsIGFjX29sZF92YWw9 XCRhY19jdl9lbnZfJHthY192YXJ9X3ZhbHVlCi0rICBldmFsIGFjX25ld192YWw9XCRhY19lbnZf JHthY192YXJ9X3ZhbHVlCi0rICBjYXNlICRhY19vbGRfc2V0LCRhY19uZXdfc2V0IGluCi0rICAg IHNldCwpCi0rICAgICAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBcYCRhY192 YXInIHdhcyBzZXQgdG8gXGAkYWNfb2xkX3ZhbCcgaW4gdGhlIHByZXZpb3VzIHJ1biIgPiY1Ci0r JGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IFxgJGFjX3Zhcicgd2FzIHNldCB0byBcYCRhY19vbGRf dmFsJyBpbiB0aGUgcHJldmlvdXMgcnVuIiA+JjI7fQotKyAgICAgIGFjX2NhY2hlX2NvcnJ1cHRl ZD06IDs7Ci0rICAgICxzZXQpCi0rICAgICAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGVy cm9yOiBcYCRhY192YXInIHdhcyBub3Qgc2V0IGluIHRoZSBwcmV2aW91cyBydW4iID4mNQotKyRh c19lY2hvICIkYXNfbWU6IGVycm9yOiBcYCRhY192YXInIHdhcyBub3Qgc2V0IGluIHRoZSBwcmV2 aW91cyBydW4iID4mMjt9Ci0rICAgICAgYWNfY2FjaGVfY29ycnVwdGVkPTogOzsKLSsgICAgLCk7 OwotKyAgICAqKQotKyAgICAgIGlmIHRlc3QgIngkYWNfb2xkX3ZhbCIgIT0gIngkYWNfbmV3X3Zh bCI7IHRoZW4KLSsJIyBkaWZmZXJlbmNlcyBpbiB3aGl0ZXNwYWNlIGRvIG5vdCBsZWFkIHRvIGZh aWx1cmUuCi0rCWFjX29sZF92YWxfdz1gZWNobyB4ICRhY19vbGRfdmFsYAotKwlhY19uZXdfdmFs X3c9YGVjaG8geCAkYWNfbmV3X3ZhbGAKLSsJaWYgdGVzdCAiJGFjX29sZF92YWxfdyIgIT0gIiRh Y19uZXdfdmFsX3ciOyB0aGVuCi0rCSAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9y OiBcYCRhY192YXInIGhhcyBjaGFuZ2VkIHNpbmNlIHRoZSBwcmV2aW91cyBydW46IiA+JjUKLSsk YXNfZWNobyAiJGFzX21lOiBlcnJvcjogXGAkYWNfdmFyJyBoYXMgY2hhbmdlZCBzaW5jZSB0aGUg cHJldmlvdXMgcnVuOiIgPiYyO30KLSsJICBhY19jYWNoZV9jb3JydXB0ZWQ9OgotKwllbHNlCi0r CSAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHdhcm5pbmc6IGlnbm9yaW5nIHdoaXRlc3Bh Y2UgY2hhbmdlcyBpbiBcYCRhY192YXInIHNpbmNlIHRoZSBwcmV2aW91cyBydW46IiA+JjUKLSsk YXNfZWNobyAiJGFzX21lOiB3YXJuaW5nOiBpZ25vcmluZyB3aGl0ZXNwYWNlIGNoYW5nZXMgaW4g XGAkYWNfdmFyJyBzaW5jZSB0aGUgcHJldmlvdXMgcnVuOiIgPiYyO30KLSsJICBldmFsICRhY192 YXI9XCRhY19vbGRfdmFsCi0rCWZpCi0rCXsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiAgIGZv cm1lciB2YWx1ZTogIFxgJGFjX29sZF92YWwnIiA+JjUKLSskYXNfZWNobyAiJGFzX21lOiAgIGZv cm1lciB2YWx1ZTogIFxgJGFjX29sZF92YWwnIiA+JjI7fQotKwl7ICRhc19lY2hvICIkYXNfbWU6 JExJTkVOTzogICBjdXJyZW50IHZhbHVlOiBcYCRhY19uZXdfdmFsJyIgPiY1Ci0rJGFzX2VjaG8g IiRhc19tZTogICBjdXJyZW50IHZhbHVlOiBcYCRhY19uZXdfdmFsJyIgPiYyO30KLSsgICAgICBm aTs7Ci0rICBlc2FjCi0rICAjIFBhc3MgcHJlY2lvdXMgdmFyaWFibGVzIHRvIGNvbmZpZy5zdGF0 dXMuCi0rICBpZiB0ZXN0ICIkYWNfbmV3X3NldCIgPSBzZXQ7IHRoZW4KLSsgICAgY2FzZSAkYWNf bmV3X3ZhbCBpbgotKyAgICAqXCcqKSBhY19hcmc9JGFjX3Zhcj1gJGFzX2VjaG8gIiRhY19uZXdf dmFsIiB8IHNlZCAicy8nLydcXFxcXFxcXCcnL2ciYCA7OwotKyAgICAqKSBhY19hcmc9JGFjX3Zh cj0kYWNfbmV3X3ZhbCA7OwotKyAgICBlc2FjCi0rICAgIGNhc2UgIiAkYWNfY29uZmlndXJlX2Fy Z3MgIiBpbgotKyAgICAgICoiICckYWNfYXJnJyAiKikgOzsgIyBBdm9pZCBkdXBzLiAgVXNlIG9m IHF1b3RlcyBlbnN1cmVzIGFjY3VyYWN5LgotKyAgICAgICopIGFjX2NvbmZpZ3VyZV9hcmdzPSIk YWNfY29uZmlndXJlX2FyZ3MgJyRhY19hcmcnIiA7OwotKyAgICBlc2FjCi0rICBmaQotK2RvbmUK LStpZiAkYWNfY2FjaGVfY29ycnVwdGVkOyB0aGVuCi0rICB7ICRhc19lY2hvICIkYXNfbWU6JExJ TkVOTzogZXJyb3I6IGluIFxgJGFjX3B3ZCc6IiA+JjUKLSskYXNfZWNobyAiJGFzX21lOiBlcnJv cjogaW4gXGAkYWNfcHdkJzoiID4mMjt9Ci0rICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzog ZXJyb3I6IGNoYW5nZXMgaW4gdGhlIGVudmlyb25tZW50IGNhbiBjb21wcm9taXNlIHRoZSBidWls ZCIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IGNoYW5nZXMgaW4gdGhlIGVudmlyb25t ZW50IGNhbiBjb21wcm9taXNlIHRoZSBidWlsZCIgPiYyO30KLSsgIHsgeyAkYXNfZWNobyAiJGFz X21lOiRMSU5FTk86IGVycm9yOiBydW4gXGBtYWtlIGRpc3RjbGVhbicgYW5kL29yIFxgcm0gJGNh Y2hlX2ZpbGUnIGFuZCBzdGFydCBvdmVyIiA+JjUKLSskYXNfZWNobyAiJGFzX21lOiBlcnJvcjog cnVuIFxgbWFrZSBkaXN0Y2xlYW4nIGFuZC9vciBcYHJtICRjYWNoZV9maWxlJyBhbmQgc3RhcnQg b3ZlciIgPiYyO30KLSsgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KLStmaQotKwotKwotKwot KwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwot KwotKwotKwotK2FjX2V4dD1jCi0rYWNfY3BwPSckQ1BQICRDUFBGTEFHUycKLSthY19jb21waWxl PSckQ0MgLWMgJENGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUnCi0rYWNfbGlu az0nJENDIC1vIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAkQ0ZMQUdTICRDUFBGTEFHUyAkTERGTEFHUyBj b25mdGVzdC4kYWNfZXh0ICRMSUJTID4mNScKLSthY19jb21waWxlcl9nbnU9JGFjX2N2X2NfY29t cGlsZXJfZ251Ci0rCi0rCi0rYWNfY29uZmlnX2hlYWRlcnM9IiRhY19jb25maWdfaGVhZGVycyBz b2NpL2NvbmZpZy5oIgotKwotKwotK2FjX2F1eF9kaXI9Ci0rZm9yIGFjX2RpciBpbiBjb25maWcg IiRzcmNkaXIiL2NvbmZpZzsgZG8KLSsgIGlmIHRlc3QgLWYgIiRhY19kaXIvaW5zdGFsbC1zaCI7 IHRoZW4KLSsgICAgYWNfYXV4X2Rpcj0kYWNfZGlyCi0rICAgIGFjX2luc3RhbGxfc2g9IiRhY19h dXhfZGlyL2luc3RhbGwtc2ggLWMiCi0rICAgIGJyZWFrCi0rICBlbGlmIHRlc3QgLWYgIiRhY19k aXIvaW5zdGFsbC5zaCI7IHRoZW4KLSsgICAgYWNfYXV4X2Rpcj0kYWNfZGlyCi0rICAgIGFjX2lu c3RhbGxfc2g9IiRhY19hdXhfZGlyL2luc3RhbGwuc2ggLWMiCi0rICAgIGJyZWFrCi0rICBlbGlm IHRlc3QgLWYgIiRhY19kaXIvc2h0b29sIjsgdGhlbgotKyAgICBhY19hdXhfZGlyPSRhY19kaXIK LSsgICAgYWNfaW5zdGFsbF9zaD0iJGFjX2F1eF9kaXIvc2h0b29sIGluc3RhbGwgLWMiCi0rICAg IGJyZWFrCi0rICBmaQotK2RvbmUKLStpZiB0ZXN0IC16ICIkYWNfYXV4X2RpciI7IHRoZW4KLSsg IHsgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBjYW5ub3QgZmluZCBpbnN0YWxs LXNoIG9yIGluc3RhbGwuc2ggaW4gY29uZmlnIFwiJHNyY2RpclwiL2NvbmZpZyIgPiY1Ci0rJGFz X2VjaG8gIiRhc19tZTogZXJyb3I6IGNhbm5vdCBmaW5kIGluc3RhbGwtc2ggb3IgaW5zdGFsbC5z aCBpbiBjb25maWcgXCIkc3JjZGlyXCIvY29uZmlnIiA+JjI7fQotKyAgIHsgKGV4aXQgMSk7IGV4 aXQgMTsgfTsgfQotK2ZpCi0rCi0rIyBUaGVzZSB0aHJlZSB2YXJpYWJsZXMgYXJlIHVuZG9jdW1l bnRlZCBhbmQgdW5zdXBwb3J0ZWQsCi0rIyBhbmQgYXJlIGludGVuZGVkIHRvIGJlIHdpdGhkcmF3 biBpbiBhIGZ1dHVyZSBBdXRvY29uZiByZWxlYXNlLgotKyMgVGhleSBjYW4gY2F1c2Ugc2VyaW91 cyBwcm9ibGVtcyBpZiBhIGJ1aWxkZXIncyBzb3VyY2UgdHJlZSBpcyBpbiBhIGRpcmVjdG9yeQot KyMgd2hvc2UgZnVsbCBuYW1lIGNvbnRhaW5zIHVudXN1YWwgY2hhcmFjdGVycy4KLSthY19jb25m aWdfZ3Vlc3M9IiRTSEVMTCAkYWNfYXV4X2Rpci9jb25maWcuZ3Vlc3MiICAjIFBsZWFzZSBkb24n dCB1c2UgdGhpcyB2YXIuCi0rYWNfY29uZmlnX3N1Yj0iJFNIRUxMICRhY19hdXhfZGlyL2NvbmZp Zy5zdWIiICAjIFBsZWFzZSBkb24ndCB1c2UgdGhpcyB2YXIuCi0rYWNfY29uZmlndXJlPSIkU0hF TEwgJGFjX2F1eF9kaXIvY29uZmlndXJlIiAgIyBQbGVhc2UgZG9uJ3QgdXNlIHRoaXMgdmFyLgot KwotKwotK2FtX19hcGlfdmVyc2lvbj0nMS4xMCcKLSsKLSsjIEZpbmQgYSBnb29kIGluc3RhbGwg cHJvZ3JhbS4gIFdlIHByZWZlciBhIEMgcHJvZ3JhbSAoZmFzdGVyKSwKLSsjIHNvIG9uZSBzY3Jp cHQgaXMgYXMgZ29vZCBhcyBhbm90aGVyLiAgQnV0IGF2b2lkIHRoZSBicm9rZW4gb3IKLSsjIGlu Y29tcGF0aWJsZSB2ZXJzaW9uczoKLSsjIFN5c1YgL2V0Yy9pbnN0YWxsLCAvdXNyL3NiaW4vaW5z dGFsbAotKyMgU3VuT1MgL3Vzci9ldGMvaW5zdGFsbAotKyMgSVJJWCAvc2Jpbi9pbnN0YWxsCi0r IyBBSVggL2Jpbi9pbnN0YWxsCi0rIyBBbWlnYU9TIC9DL2luc3RhbGwsIHdoaWNoIGluc3RhbGxz IGJvb3RibG9ja3Mgb24gZmxvcHB5IGRpc2NzCi0rIyBBSVggNCAvdXNyL2Jpbi9pbnN0YWxsYnNk LCB3aGljaCBkb2Vzbid0IHdvcmsgd2l0aG91dCBhIC1nIGZsYWcKLSsjIEFGUyAvdXNyL2Fmc3dz L2Jpbi9pbnN0YWxsLCB3aGljaCBtaXNoYW5kbGVzIG5vbmV4aXN0ZW50IGFyZ3MKLSsjIFNWUjQg L3Vzci91Y2IvaW5zdGFsbCwgd2hpY2ggdHJpZXMgdG8gdXNlIHRoZSBub25leGlzdGVudCBncm91 cCAic3RhZmYiCi0rIyBPUy8yJ3Mgc3lzdGVtIGluc3RhbGwsIHdoaWNoIGhhcyBhIGNvbXBsZXRl bHkgZGlmZmVyZW50IHNlbWFudGljCi0rIyAuL2luc3RhbGwsIHdoaWNoIGNhbiBiZSBlcnJvbmVv dXNseSBjcmVhdGVkIGJ5IG1ha2UgZnJvbSAuL2luc3RhbGwuc2guCi0rIyBSZWplY3QgaW5zdGFs bCBwcm9ncmFtcyB0aGF0IGNhbm5vdCBpbnN0YWxsIG11bHRpcGxlIGZpbGVzLgotK3sgJGFzX2Vj aG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgYSBCU0QtY29tcGF0aWJsZSBpbnN0YWxs IiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyBmb3IgYSBCU0QtY29tcGF0aWJsZSBpbnN0YWxs Li4uICIgPiY2OyB9Ci0raWYgdGVzdCAteiAiJElOU1RBTEwiOyB0aGVuCi0raWYgdGVzdCAiJHth Y19jdl9wYXRoX2luc3RhbGwrc2V0fSIgPSBzZXQ7IHRoZW4KLSsgICRhc19lY2hvX24gIihjYWNo ZWQpICIgPiY2Ci0rZWxzZQotKyAgYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRP UgotK2ZvciBhc19kaXIgaW4gJFBBVEgKLStkbwotKyAgSUZTPSRhc19zYXZlX0lGUwotKyAgdGVz dCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KLSsgICMgQWNjb3VudCBmb3IgcGVvcGxlIHdobyBw dXQgdHJhaWxpbmcgc2xhc2hlcyBpbiBQQVRIIGVsZW1lbnRzLgotK2Nhc2UgJGFzX2Rpci8gaW4K LSsgIC4vIHwgLi8vIHwgL2NDLyogfCBcCi0rICAvZXRjLyogfCAvdXNyL3NiaW4vKiB8IC91c3Iv ZXRjLyogfCAvc2Jpbi8qIHwgL3Vzci9hZnN3cy9iaW4vKiB8IFwKLSsgID86XFwvb3MyXFwvaW5z dGFsbFxcLyogfCA/OlxcL09TMlxcL0lOU1RBTExcXC8qIHwgXAotKyAgL3Vzci91Y2IvKiApIDs7 Ci0rICAqKQotKyAgICAjIE9TRjEgYW5kIFNDTyBPRFQgMy4wIGhhdmUgdGhlaXIgb3duIG5hbWVz IGZvciBpbnN0YWxsLgotKyAgICAjIERvbid0IHVzZSBpbnN0YWxsYnNkIGZyb20gT1NGIHNpbmNl IGl0IGluc3RhbGxzIHN0dWZmIGFzIHJvb3QKLSsgICAgIyBieSBkZWZhdWx0LgotKyAgICBmb3Ig YWNfcHJvZyBpbiBnaW5zdGFsbCBzY29pbnN0IGluc3RhbGw7IGRvCi0rICAgICAgZm9yIGFjX2V4 ZWNfZXh0IGluICcnICRhY19leGVjdXRhYmxlX2V4dGVuc2lvbnM7IGRvCi0rCWlmIHsgdGVzdCAt ZiAiJGFzX2Rpci8kYWNfcHJvZyRhY19leGVjX2V4dCIgJiYgJGFzX3Rlc3RfeCAiJGFzX2Rpci8k YWNfcHJvZyRhY19leGVjX2V4dCI7IH07IHRoZW4KLSsJICBpZiB0ZXN0ICRhY19wcm9nID0gaW5z dGFsbCAmJgotKwkgICAgZ3JlcCBkc3Btc2cgIiRhc19kaXIvJGFjX3Byb2ckYWNfZXhlY19leHQi ID4vZGV2L251bGwgMj4mMTsgdGhlbgotKwkgICAgIyBBSVggaW5zdGFsbC4gIEl0IGhhcyBhbiBp bmNvbXBhdGlibGUgY2FsbGluZyBjb252ZW50aW9uLgotKwkgICAgOgotKwkgIGVsaWYgdGVzdCAk YWNfcHJvZyA9IGluc3RhbGwgJiYKLSsJICAgIGdyZXAgcHdwbHVzICIkYXNfZGlyLyRhY19wcm9n JGFjX2V4ZWNfZXh0IiA+L2Rldi9udWxsIDI+JjE7IHRoZW4KLSsJICAgICMgcHJvZ3JhbS1zcGVj aWZpYyBpbnN0YWxsIHNjcmlwdCB1c2VkIGJ5IEhQIHB3cGx1cy0tZG9uJ3QgdXNlLgotKwkgICAg OgotKwkgIGVsc2UKLSsJICAgIHJtIC1yZiBjb25mdGVzdC5vbmUgY29uZnRlc3QudHdvIGNvbmZ0 ZXN0LmRpcgotKwkgICAgZWNobyBvbmUgPiBjb25mdGVzdC5vbmUKLSsJICAgIGVjaG8gdHdvID4g Y29uZnRlc3QudHdvCi0rCSAgICBta2RpciBjb25mdGVzdC5kaXIKLSsJICAgIGlmICIkYXNfZGly LyRhY19wcm9nJGFjX2V4ZWNfZXh0IiAtYyBjb25mdGVzdC5vbmUgY29uZnRlc3QudHdvICJgcHdk YC9jb25mdGVzdC5kaXIiICYmCi0rCSAgICAgIHRlc3QgLXMgY29uZnRlc3Qub25lICYmIHRlc3Qg LXMgY29uZnRlc3QudHdvICYmCi0rCSAgICAgIHRlc3QgLXMgY29uZnRlc3QuZGlyL2NvbmZ0ZXN0 Lm9uZSAmJgotKwkgICAgICB0ZXN0IC1zIGNvbmZ0ZXN0LmRpci9jb25mdGVzdC50d28KLSsJICAg IHRoZW4KLSsJICAgICAgYWNfY3ZfcGF0aF9pbnN0YWxsPSIkYXNfZGlyLyRhY19wcm9nJGFjX2V4 ZWNfZXh0IC1jIgotKwkgICAgICBicmVhayAzCi0rCSAgICBmaQotKwkgIGZpCi0rCWZpCi0rICAg ICAgZG9uZQotKyAgICBkb25lCi0rICAgIDs7Ci0rZXNhYwotKwotK2RvbmUKLStJRlM9JGFzX3Nh dmVfSUZTCi0rCi0rcm0gLXJmIGNvbmZ0ZXN0Lm9uZSBjb25mdGVzdC50d28gY29uZnRlc3QuZGly Ci0rCi0rZmkKLSsgIGlmIHRlc3QgIiR7YWNfY3ZfcGF0aF9pbnN0YWxsK3NldH0iID0gc2V0OyB0 aGVuCi0rICAgIElOU1RBTEw9JGFjX2N2X3BhdGhfaW5zdGFsbAotKyAgZWxzZQotKyAgICAjIEFz IGEgbGFzdCByZXNvcnQsIHVzZSB0aGUgc2xvdyBzaGVsbCBzY3JpcHQuICBEb24ndCBjYWNoZSBh Ci0rICAgICMgdmFsdWUgZm9yIElOU1RBTEwgd2l0aGluIGEgc291cmNlIGRpcmVjdG9yeSwgYmVj YXVzZSB0aGF0IHdpbGwKLSsgICAgIyBicmVhayBvdGhlciBwYWNrYWdlcyB1c2luZyB0aGUgY2Fj aGUgaWYgdGhhdCBkaXJlY3RvcnkgaXMKLSsgICAgIyByZW1vdmVkLCBvciBpZiB0aGUgdmFsdWUg aXMgYSByZWxhdGl2ZSBuYW1lLgotKyAgICBJTlNUQUxMPSRhY19pbnN0YWxsX3NoCi0rICBmaQot K2ZpCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJElOU1RBTEwiID4mNQot KyRhc19lY2hvICIkSU5TVEFMTCIgPiY2OyB9Ci0rCi0rIyBVc2UgdGVzdCAteiBiZWNhdXNlIFN1 bk9TNCBzaCBtaXNoYW5kbGVzIGJyYWNlcyBpbiAke3Zhci12YWx9LgotKyMgSXQgdGhpbmtzIHRo ZSBmaXJzdCBjbG9zZSBicmFjZSBlbmRzIHRoZSB2YXJpYWJsZSBzdWJzdGl0dXRpb24uCi0rdGVz dCAteiAiJElOU1RBTExfUFJPR1JBTSIgJiYgSU5TVEFMTF9QUk9HUkFNPScke0lOU1RBTEx9Jwot KwotK3Rlc3QgLXogIiRJTlNUQUxMX1NDUklQVCIgJiYgSU5TVEFMTF9TQ1JJUFQ9JyR7SU5TVEFM TH0nCi0rCi0rdGVzdCAteiAiJElOU1RBTExfREFUQSIgJiYgSU5TVEFMTF9EQVRBPScke0lOU1RB TEx9IC1tIDY0NCcKLSsKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgd2hl dGhlciBidWlsZCBlbnZpcm9ubWVudCBpcyBzYW5lIiA+JjUKLSskYXNfZWNob19uICJjaGVja2lu ZyB3aGV0aGVyIGJ1aWxkIGVudmlyb25tZW50IGlzIHNhbmUuLi4gIiA+JjY7IH0KLSsjIEp1c3Qg aW4gY2FzZQotK3NsZWVwIDEKLStlY2hvIHRpbWVzdGFtcCA+IGNvbmZ0ZXN0LmZpbGUKLSsjIERv IGBzZXQnIGluIGEgc3Vic2hlbGwgc28gd2UgZG9uJ3QgY2xvYmJlciB0aGUgY3VycmVudCBzaGVs bCdzCi0rIyBhcmd1bWVudHMuICBNdXN0IHRyeSAtTCBmaXJzdCBpbiBjYXNlIGNvbmZpZ3VyZSBp cyBhY3R1YWxseSBhCi0rIyBzeW1saW5rOyBzb21lIHN5c3RlbXMgcGxheSB3ZWlyZCBnYW1lcyB3 aXRoIHRoZSBtb2QgdGltZSBvZiBzeW1saW5rcwotKyMgKGVnIEZyZWVCU0QgcmV0dXJucyB0aGUg bW9kIHRpbWUgb2YgdGhlIHN5bWxpbmsncyBjb250YWluaW5nCi0rIyBkaXJlY3RvcnkpLgotK2lm ICgKLSsgICBzZXQgWCBgbHMgLUx0ICRzcmNkaXIvY29uZmlndXJlIGNvbmZ0ZXN0LmZpbGUgMj4g L2Rldi9udWxsYAotKyAgIGlmIHRlc3QgIiQqIiA9ICJYIjsgdGhlbgotKyAgICAgICMgLUwgZGlk bid0IHdvcmsuCi0rICAgICAgc2V0IFggYGxzIC10ICRzcmNkaXIvY29uZmlndXJlIGNvbmZ0ZXN0 LmZpbGVgCi0rICAgZmkKLSsgICBybSAtZiBjb25mdGVzdC5maWxlCi0rICAgaWYgdGVzdCAiJCoi ICE9ICJYICRzcmNkaXIvY29uZmlndXJlIGNvbmZ0ZXN0LmZpbGUiIFwKLSsgICAgICAmJiB0ZXN0 ICIkKiIgIT0gIlggY29uZnRlc3QuZmlsZSAkc3JjZGlyL2NvbmZpZ3VyZSI7IHRoZW4KLSsKLSsg ICAgICAjIElmIG5laXRoZXIgbWF0Y2hlZCwgdGhlbiB3ZSBoYXZlIGEgYnJva2VuIGxzLiAgVGhp cyBjYW4gaGFwcGVuCi0rICAgICAgIyBpZiwgZm9yIGluc3RhbmNlLCBDT05GSUdfU0hFTEwgaXMg YmFzaCBhbmQgaXQgaW5oZXJpdHMgYQotKyAgICAgICMgYnJva2VuIGxzIGFsaWFzIGZyb20gdGhl IGVudmlyb25tZW50LiAgVGhpcyBoYXMgYWN0dWFsbHkKLSsgICAgICAjIGhhcHBlbmVkLiAgU3Vj aCBhIHN5c3RlbSBjb3VsZCBub3QgYmUgY29uc2lkZXJlZCAic2FuZSIuCi0rICAgICAgeyB7ICRh c19lY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IGxzIC10IGFwcGVhcnMgdG8gZmFpbC4gIE1h a2Ugc3VyZSB0aGVyZSBpcyBub3QgYSBicm9rZW4KLSthbGlhcyBpbiB5b3VyIGVudmlyb25tZW50 IiA+JjUKLSskYXNfZWNobyAiJGFzX21lOiBlcnJvcjogbHMgLXQgYXBwZWFycyB0byBmYWlsLiAg TWFrZSBzdXJlIHRoZXJlIGlzIG5vdCBhIGJyb2tlbgotK2FsaWFzIGluIHlvdXIgZW52aXJvbm1l bnQiID4mMjt9Ci0rICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9Ci0rICAgZmkKLSsKLSsgICB0 ZXN0ICIkMiIgPSBjb25mdGVzdC5maWxlCi0rICAgKQotK3RoZW4KLSsgICAjIE9rLgotKyAgIDoK LStlbHNlCi0rICAgeyB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IG5ld2x5IGNy ZWF0ZWQgZmlsZSBpcyBvbGRlciB0aGFuIGRpc3RyaWJ1dGVkIGZpbGVzIQotK0NoZWNrIHlvdXIg c3lzdGVtIGNsb2NrIiA+JjUKLSskYXNfZWNobyAiJGFzX21lOiBlcnJvcjogbmV3bHkgY3JlYXRl ZCBmaWxlIGlzIG9sZGVyIHRoYW4gZGlzdHJpYnV0ZWQgZmlsZXMhCi0rQ2hlY2sgeW91ciBzeXN0 ZW0gY2xvY2siID4mMjt9Ci0rICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9Ci0rZmkKLSt7ICRh c19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiB5ZXMiID4mNQotKyRhc19lY2hvICJ5ZXMi ID4mNjsgfQotK3Rlc3QgIiRwcm9ncmFtX3ByZWZpeCIgIT0gTk9ORSAmJgotKyAgcHJvZ3JhbV90 cmFuc2Zvcm1fbmFtZT0icyZeJiRwcm9ncmFtX3ByZWZpeCY7JHByb2dyYW1fdHJhbnNmb3JtX25h bWUiCi0rIyBVc2UgYSBkb3VibGUgJCBzbyBtYWtlIGlnbm9yZXMgaXQuCi0rdGVzdCAiJHByb2dy YW1fc3VmZml4IiAhPSBOT05FICYmCi0rICBwcm9ncmFtX3RyYW5zZm9ybV9uYW1lPSJzJlwkJiRw cm9ncmFtX3N1ZmZpeCY7JHByb2dyYW1fdHJhbnNmb3JtX25hbWUiCi0rIyBEb3VibGUgYW55IFwg b3IgJC4KLSsjIEJ5IGRlZmF1bHQgd2FzIGBzLHgseCcsIHJlbW92ZSBpdCBpZiB1c2VsZXNzLgot K2FjX3NjcmlwdD0ncy9bXFwkXS8mJi9nO3MvO3MseCx4LCQvLycKLStwcm9ncmFtX3RyYW5zZm9y bV9uYW1lPWAkYXNfZWNobyAiJHByb2dyYW1fdHJhbnNmb3JtX25hbWUiIHwgc2VkICIkYWNfc2Ny aXB0ImAKLSsKLSsjIGV4cGFuZCAkYWNfYXV4X2RpciB0byBhbiBhYnNvbHV0ZSBwYXRoCi0rYW1f YXV4X2Rpcj1gY2QgJGFjX2F1eF9kaXIgJiYgcHdkYAotKwotK3Rlc3QgeCIke01JU1NJTkcrc2V0 fSIgPSB4c2V0IHx8IE1JU1NJTkc9Ilwke1NIRUxMfSAkYW1fYXV4X2Rpci9taXNzaW5nIgotKyMg VXNlIGV2YWwgdG8gZXhwYW5kICRTSEVMTAotK2lmIGV2YWwgIiRNSVNTSU5HIC0tcnVuIHRydWUi OyB0aGVuCi0rICBhbV9taXNzaW5nX3J1bj0iJE1JU1NJTkcgLS1ydW4gIgotK2Vsc2UKLSsgIGFt X21pc3NpbmdfcnVuPQotKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6IFxg bWlzc2luZycgc2NyaXB0IGlzIHRvbyBvbGQgb3IgbWlzc2luZyIgPiY1Ci0rJGFzX2VjaG8gIiRh c19tZTogV0FSTklORzogXGBtaXNzaW5nJyBzY3JpcHQgaXMgdG9vIG9sZCBvciBtaXNzaW5nIiA+ JjI7fQotK2ZpCi0rCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciBh IHRocmVhZC1zYWZlIG1rZGlyIC1wIiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyBmb3IgYSB0 aHJlYWQtc2FmZSBta2RpciAtcC4uLiAiID4mNjsgfQotK2lmIHRlc3QgLXogIiRNS0RJUl9QIjsg dGhlbgotKyAgaWYgdGVzdCAiJHthY19jdl9wYXRoX21rZGlyK3NldH0iID0gc2V0OyB0aGVuCi0r ICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsgIGFzX3NhdmVfSUZTPSRJRlM7 IElGUz0kUEFUSF9TRVBBUkFUT1IKLStmb3IgYXNfZGlyIGluICRQQVRIJFBBVEhfU0VQQVJBVE9S L29wdC9zZncvYmluCi0rZG8KLSsgIElGUz0kYXNfc2F2ZV9JRlMKLSsgIHRlc3QgLXogIiRhc19k aXIiICYmIGFzX2Rpcj0uCi0rICBmb3IgYWNfcHJvZyBpbiBta2RpciBnbWtkaXI7IGRvCi0rCSBm b3IgYWNfZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1dGFibGVfZXh0ZW5zaW9uczsgZG8KLSsJICAg eyB0ZXN0IC1mICIkYXNfZGlyLyRhY19wcm9nJGFjX2V4ZWNfZXh0IiAmJiAkYXNfdGVzdF94ICIk YXNfZGlyLyRhY19wcm9nJGFjX2V4ZWNfZXh0IjsgfSB8fCBjb250aW51ZQotKwkgICBjYXNlIGAi JGFzX2Rpci8kYWNfcHJvZyRhY19leGVjX2V4dCIgLS12ZXJzaW9uIDI+JjFgIGluICMoCi0rCSAg ICAgJ21rZGlyIChHTlUgY29yZXV0aWxzKSAnKiB8IFwKLSsJICAgICAnbWtkaXIgKGNvcmV1dGls cykgJyogfCBcCi0rCSAgICAgJ21rZGlyIChmaWxldXRpbHMpICc0LjEqKQotKwkgICAgICAgYWNf Y3ZfcGF0aF9ta2Rpcj0kYXNfZGlyLyRhY19wcm9nJGFjX2V4ZWNfZXh0Ci0rCSAgICAgICBicmVh ayAzOzsKLSsJICAgZXNhYwotKwkgZG9uZQotKyAgICAgICBkb25lCi0rZG9uZQotK0lGUz0kYXNf c2F2ZV9JRlMKLSsKLStmaQotKwotKyAgaWYgdGVzdCAiJHthY19jdl9wYXRoX21rZGlyK3NldH0i ID0gc2V0OyB0aGVuCi0rICAgIE1LRElSX1A9IiRhY19jdl9wYXRoX21rZGlyIC1wIgotKyAgZWxz ZQotKyAgICAjIEFzIGEgbGFzdCByZXNvcnQsIHVzZSB0aGUgc2xvdyBzaGVsbCBzY3JpcHQuICBE b24ndCBjYWNoZSBhCi0rICAgICMgdmFsdWUgZm9yIE1LRElSX1Agd2l0aGluIGEgc291cmNlIGRp cmVjdG9yeSwgYmVjYXVzZSB0aGF0IHdpbGwKLSsgICAgIyBicmVhayBvdGhlciBwYWNrYWdlcyB1 c2luZyB0aGUgY2FjaGUgaWYgdGhhdCBkaXJlY3RvcnkgaXMKLSsgICAgIyByZW1vdmVkLCBvciBp ZiB0aGUgdmFsdWUgaXMgYSByZWxhdGl2ZSBuYW1lLgotKyAgICB0ZXN0IC1kIC4vLS12ZXJzaW9u ICYmIHJtZGlyIC4vLS12ZXJzaW9uCi0rICAgIE1LRElSX1A9IiRhY19pbnN0YWxsX3NoIC1kIgot KyAgZmkKLStmaQotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRNS0RJUl9Q IiA+JjUKLSskYXNfZWNobyAiJE1LRElSX1AiID4mNjsgfQotKwotK21rZGlyX3A9IiRNS0RJUl9Q IgotK2Nhc2UgJG1rZGlyX3AgaW4KLSsgIFtcXC8kXSogfCA/OltcXC9dKikgOzsKLSsgICovKikg bWtkaXJfcD0iXCQodG9wX2J1aWxkZGlyKS8kbWtkaXJfcCIgOzsKLStlc2FjCi0rCi0rZm9yIGFj X3Byb2cgaW4gZ2F3ayBtYXdrIG5hd2sgYXdrCi0rZG8KLSsgICMgRXh0cmFjdCB0aGUgZmlyc3Qg d29yZCBvZiAiJGFjX3Byb2ciLCBzbyBpdCBjYW4gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmdz LgotK3NldCBkdW1teSAkYWNfcHJvZzsgYWNfd29yZD0kMgotK3sgJGFzX2VjaG8gIiRhc19tZTok TElORU5POiBjaGVja2luZyBmb3IgJGFjX3dvcmQiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5n IGZvciAkYWNfd29yZC4uLiAiID4mNjsgfQotK2lmIHRlc3QgIiR7YWNfY3ZfcHJvZ19BV0src2V0 fSIgPSBzZXQ7IHRoZW4KLSsgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci0rZWxzZQotKyAg aWYgdGVzdCAtbiAiJEFXSyI7IHRoZW4KLSsgIGFjX2N2X3Byb2dfQVdLPSIkQVdLIiAjIExldCB0 aGUgdXNlciBvdmVycmlkZSB0aGUgdGVzdC4KLStlbHNlCi0rYXNfc2F2ZV9JRlM9JElGUzsgSUZT PSRQQVRIX1NFUEFSQVRPUgotK2ZvciBhc19kaXIgaW4gJFBBVEgKLStkbwotKyAgSUZTPSRhc19z YXZlX0lGUwotKyAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KLSsgIGZvciBhY19leGVj X2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9leHRlbnNpb25zOyBkbwotKyAgaWYgeyB0ZXN0IC1m ICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiAmJiAkYXNfdGVzdF94ICIkYXNfZGlyLyRh Y193b3JkJGFjX2V4ZWNfZXh0IjsgfTsgdGhlbgotKyAgICBhY19jdl9wcm9nX0FXSz0iJGFjX3By b2ciCi0rICAgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZm91bmQgJGFzX2Rpci8kYWNfd29y ZCRhY19leGVjX2V4dCIgPiY1Ci0rICAgIGJyZWFrIDIKLSsgIGZpCi0rZG9uZQotK2RvbmUKLStJ RlM9JGFzX3NhdmVfSUZTCi0rCi0rZmkKLStmaQotK0FXSz0kYWNfY3ZfcHJvZ19BV0sKLStpZiB0 ZXN0IC1uICIkQVdLIjsgdGhlbgotKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3Vs dDogJEFXSyIgPiY1Ci0rJGFzX2VjaG8gIiRBV0siID4mNjsgfQotK2Vsc2UKLSsgIHsgJGFzX2Vj aG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IG5vIiA+JjUKLSskYXNfZWNobyAibm8iID4mNjsg fQotK2ZpCi0rCi0rCi0rICB0ZXN0IC1uICIkQVdLIiAmJiBicmVhawotK2RvbmUKLSsKLSt7ICRh c19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgd2hldGhlciAke01BS0UtbWFrZX0gc2V0 cyBcJChNQUtFKSIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgd2hldGhlciAke01BS0UtbWFr ZX0gc2V0cyBcJChNQUtFKS4uLiAiID4mNjsgfQotK3NldCB4ICR7TUFLRS1tYWtlfQotK2FjX21h a2U9YCRhc19lY2hvICIkMiIgfCBzZWQgJ3MvKy9wL2c7IHMvW15hLXpBLVowLTlfXS9fL2cnYAot K2lmIHsgYXNfdmFyPWFjX2N2X3Byb2dfbWFrZV8ke2FjX21ha2V9X3NldDsgZXZhbCAidGVzdCBc IlwkeyRhc192YXIrc2V0fVwiID0gc2V0IjsgfTsgdGhlbgotKyAgJGFzX2VjaG9fbiAiKGNhY2hl ZCkgIiA+JjYKLStlbHNlCi0rICBjYXQgPmNvbmZ0ZXN0Lm1ha2UgPDxcX0FDRU9GCi0rU0hFTEwg PSAvYmluL3NoCi0rYWxsOgotKwlAZWNobyAnQEBAJSUlPSQoTUFLRSk9QEBAJSUlJwotK19BQ0VP RgotKyMgR05VIG1ha2Ugc29tZXRpbWVzIHByaW50cyAibWFrZVsxXTogRW50ZXJpbmcuLi4iLCB3 aGljaCB3b3VsZCBjb25mdXNlIHVzLgotK2Nhc2UgYCR7TUFLRS1tYWtlfSAtZiBjb25mdGVzdC5t YWtlIDI+L2Rldi9udWxsYCBpbgotKyAgKkBAQCUlJT0/Kj1AQEAlJSUqKQotKyAgICBldmFsIGFj X2N2X3Byb2dfbWFrZV8ke2FjX21ha2V9X3NldD15ZXM7OwotKyAgKikKLSsgICAgZXZhbCBhY19j dl9wcm9nX21ha2VfJHthY19tYWtlfV9zZXQ9bm87OwotK2VzYWMKLStybSAtZiBjb25mdGVzdC5t YWtlCi0rZmkKLStpZiBldmFsIHRlc3QgXCRhY19jdl9wcm9nX21ha2VfJHthY19tYWtlfV9zZXQg PSB5ZXM7IHRoZW4KLSsgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IHllcyIg PiY1Ci0rJGFzX2VjaG8gInllcyIgPiY2OyB9Ci0rICBTRVRfTUFLRT0KLStlbHNlCi0rICB7ICRh c19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiBubyIgPiY1Ci0rJGFzX2VjaG8gIm5vIiA+ JjY7IH0KLSsgIFNFVF9NQUtFPSJNQUtFPSR7TUFLRS1tYWtlfSIKLStmaQotKwotK3JtIC1yZiAu dHN0IDI+L2Rldi9udWxsCi0rbWtkaXIgLnRzdCAyPi9kZXYvbnVsbAotK2lmIHRlc3QgLWQgLnRz dDsgdGhlbgotKyAgYW1fX2xlYWRpbmdfZG90PS4KLStlbHNlCi0rICBhbV9fbGVhZGluZ19kb3Q9 XwotK2ZpCi0rcm1kaXIgLnRzdCAyPi9kZXYvbnVsbAotKwotK2lmIHRlc3QgImBjZCAkc3JjZGly ICYmIHB3ZGAiICE9ICJgcHdkYCI7IHRoZW4KLSsgICMgVXNlIC1JJChzcmNkaXIpIG9ubHkgd2hl biAkKHNyY2RpcikgIT0gLiwgc28gdGhhdCBtYWtlJ3Mgb3V0cHV0Ci0rICAjIGlzIG5vdCBwb2xs dXRlZCB3aXRoIHJlcGVhdGVkICItSS4iCi0rICBhbV9faXNyYz0nIC1JJChzcmNkaXIpJwotKyAg IyB0ZXN0IHRvIHNlZSBpZiBzcmNkaXIgYWxyZWFkeSBjb25maWd1cmVkCi0rICBpZiB0ZXN0IC1m ICRzcmNkaXIvY29uZmlnLnN0YXR1czsgdGhlbgotKyAgICB7IHsgJGFzX2VjaG8gIiRhc19tZTok TElORU5POiBlcnJvcjogc291cmNlIGRpcmVjdG9yeSBhbHJlYWR5IGNvbmZpZ3VyZWQ7IHJ1biBc Im1ha2UgZGlzdGNsZWFuXCIgdGhlcmUgZmlyc3QiID4mNQotKyRhc19lY2hvICIkYXNfbWU6IGVy cm9yOiBzb3VyY2UgZGlyZWN0b3J5IGFscmVhZHkgY29uZmlndXJlZDsgcnVuIFwibWFrZSBkaXN0 Y2xlYW5cIiB0aGVyZSBmaXJzdCIgPiYyO30KLSsgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0K LSsgIGZpCi0rZmkKLSsKLSsjIHRlc3Qgd2hldGhlciB3ZSBoYXZlIGN5Z3BhdGgKLStpZiB0ZXN0 IC16ICIkQ1lHUEFUSF9XIjsgdGhlbgotKyAgaWYgKGN5Z3BhdGggLS12ZXJzaW9uKSA+L2Rldi9u dWxsIDI+L2Rldi9udWxsOyB0aGVuCi0rICAgIENZR1BBVEhfVz0nY3lncGF0aCAtdycKLSsgIGVs c2UKLSsgICAgQ1lHUEFUSF9XPWVjaG8KLSsgIGZpCi0rZmkKLSsKLSsKLSsjIERlZmluZSB0aGUg aWRlbnRpdHkgb2YgdGhlIHBhY2thZ2UuCi0rIFBBQ0tBR0U9J3NvY2knCi0rIFZFUlNJT049JzMu MC4wJwotKwotKwotK2NhdCA+PmNvbmZkZWZzLmggPDxfQUNFT0YKLSsjZGVmaW5lIFBBQ0tBR0Ug IiRQQUNLQUdFIgotK19BQ0VPRgotKwotKwotK2NhdCA+PmNvbmZkZWZzLmggPDxfQUNFT0YKLSsj ZGVmaW5lIFZFUlNJT04gIiRWRVJTSU9OIgotK19BQ0VPRgotKwotKyMgU29tZSB0b29scyBBdXRv bWFrZSBuZWVkcy4KLSsKLStBQ0xPQ0FMPSR7QUNMT0NBTC0iJHthbV9taXNzaW5nX3J1bn1hY2xv Y2FsLSR7YW1fX2FwaV92ZXJzaW9ufSJ9Ci0rCi0rCi0rQVVUT0NPTkY9JHtBVVRPQ09ORi0iJHth bV9taXNzaW5nX3J1bn1hdXRvY29uZiJ9Ci0rCi0rCi0rQVVUT01BS0U9JHtBVVRPTUFLRS0iJHth bV9taXNzaW5nX3J1bn1hdXRvbWFrZS0ke2FtX19hcGlfdmVyc2lvbn0ifQotKwotKwotK0FVVE9I RUFERVI9JHtBVVRPSEVBREVSLSIke2FtX21pc3NpbmdfcnVufWF1dG9oZWFkZXIifQotKwotKwot K01BS0VJTkZPPSR7TUFLRUlORk8tIiR7YW1fbWlzc2luZ19ydW59bWFrZWluZm8ifQotKwotK2lu c3RhbGxfc2g9JHtpbnN0YWxsX3NoLSJcJChTSEVMTCkgJGFtX2F1eF9kaXIvaW5zdGFsbC1zaCJ9 Ci0rCi0rIyBJbnN0YWxsZWQgYmluYXJpZXMgYXJlIHVzdWFsbHkgc3RyaXBwZWQgdXNpbmcgYHN0 cmlwJyB3aGVuIHRoZSB1c2VyCi0rIyBydW4gYG1ha2UgaW5zdGFsbC1zdHJpcCcuICBIb3dldmVy IGBzdHJpcCcgbWlnaHQgbm90IGJlIHRoZSByaWdodAotKyMgdG9vbCB0byB1c2UgaW4gY3Jvc3Mt Y29tcGlsYXRpb24gZW52aXJvbm1lbnRzLCB0aGVyZWZvcmUgQXV0b21ha2UKLSsjIHdpbGwgaG9u b3IgdGhlIGBTVFJJUCcgZW52aXJvbm1lbnQgdmFyaWFibGUgdG8gb3ZlcnJ1bGUgdGhpcyBwcm9n cmFtLgotK2lmIHRlc3QgIiRjcm9zc19jb21waWxpbmciICE9IG5vOyB0aGVuCi0rICBpZiB0ZXN0 IC1uICIkYWNfdG9vbF9wcmVmaXgiOyB0aGVuCi0rICAjIEV4dHJhY3QgdGhlIGZpcnN0IHdvcmQg b2YgIiR7YWNfdG9vbF9wcmVmaXh9c3RyaXAiLCBzbyBpdCBjYW4gYmUgYSBwcm9ncmFtIG5hbWUg d2l0aCBhcmdzLgotK3NldCBkdW1teSAke2FjX3Rvb2xfcHJlZml4fXN0cmlwOyBhY193b3JkPSQy Ci0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciAkYWNfd29yZCIgPiY1 Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yICRhY193b3JkLi4uICIgPiY2OyB9Ci0raWYgdGVz dCAiJHthY19jdl9wcm9nX1NUUklQK3NldH0iID0gc2V0OyB0aGVuCi0rICAkYXNfZWNob19uICIo Y2FjaGVkKSAiID4mNgotK2Vsc2UKLSsgIGlmIHRlc3QgLW4gIiRTVFJJUCI7IHRoZW4KLSsgIGFj X2N2X3Byb2dfU1RSSVA9IiRTVFJJUCIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3Qu Ci0rZWxzZQotK2FzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IKLStmb3IgYXNf ZGlyIGluICRQQVRICi0rZG8KLSsgIElGUz0kYXNfc2F2ZV9JRlMKLSsgIHRlc3QgLXogIiRhc19k aXIiICYmIGFzX2Rpcj0uCi0rICBmb3IgYWNfZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1dGFibGVf ZXh0ZW5zaW9uczsgZG8KLSsgIGlmIHsgdGVzdCAtZiAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVj X2V4dCIgJiYgJGFzX3Rlc3RfeCAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCI7IH07IHRo ZW4KLSsgICAgYWNfY3ZfcHJvZ19TVFJJUD0iJHthY190b29sX3ByZWZpeH1zdHJpcCIKLSsgICAg JGFzX2VjaG8gIiRhc19tZTokTElORU5POiBmb3VuZCAkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNf ZXh0IiA+JjUKLSsgICAgYnJlYWsgMgotKyAgZmkKLStkb25lCi0rZG9uZQotK0lGUz0kYXNfc2F2 ZV9JRlMKLSsKLStmaQotK2ZpCi0rU1RSSVA9JGFjX2N2X3Byb2dfU1RSSVAKLStpZiB0ZXN0IC1u ICIkU1RSSVAiOyB0aGVuCi0rICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAk U1RSSVAiID4mNQotKyRhc19lY2hvICIkU1RSSVAiID4mNjsgfQotK2Vsc2UKLSsgIHsgJGFzX2Vj aG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IG5vIiA+JjUKLSskYXNfZWNobyAibm8iID4mNjsg fQotK2ZpCi0rCi0rCi0rZmkKLStpZiB0ZXN0IC16ICIkYWNfY3ZfcHJvZ19TVFJJUCI7IHRoZW4K LSsgIGFjX2N0X1NUUklQPSRTVFJJUAotKyAgIyBFeHRyYWN0IHRoZSBmaXJzdCB3b3JkIG9mICJz dHJpcCIsIHNvIGl0IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3MuCi0rc2V0IGR1bW15 IHN0cmlwOyBhY193b3JkPSQyCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5n IGZvciAkYWNfd29yZCIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yICRhY193b3JkLi4u ICIgPiY2OyB9Ci0raWYgdGVzdCAiJHthY19jdl9wcm9nX2FjX2N0X1NUUklQK3NldH0iID0gc2V0 OyB0aGVuCi0rICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsgIGlmIHRlc3Qg LW4gIiRhY19jdF9TVFJJUCI7IHRoZW4KLSsgIGFjX2N2X3Byb2dfYWNfY3RfU1RSSVA9IiRhY19j dF9TVFJJUCIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3QuCi0rZWxzZQotK2FzX3Nh dmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IKLStmb3IgYXNfZGlyIGluICRQQVRICi0r ZG8KLSsgIElGUz0kYXNfc2F2ZV9JRlMKLSsgIHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0u Ci0rICBmb3IgYWNfZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1dGFibGVfZXh0ZW5zaW9uczsgZG8K LSsgIGlmIHsgdGVzdCAtZiAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgJiYgJGFzX3Rl c3RfeCAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCI7IH07IHRoZW4KLSsgICAgYWNfY3Zf cHJvZ19hY19jdF9TVFJJUD0ic3RyaXAiCi0rICAgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzog Zm91bmQgJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgPiY1Ci0rICAgIGJyZWFrIDIKLSsg IGZpCi0rZG9uZQotK2RvbmUKLStJRlM9JGFzX3NhdmVfSUZTCi0rCi0rZmkKLStmaQotK2FjX2N0 X1NUUklQPSRhY19jdl9wcm9nX2FjX2N0X1NUUklQCi0raWYgdGVzdCAtbiAiJGFjX2N0X1NUUklQ IjsgdGhlbgotKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2N0X1NU UklQIiA+JjUKLSskYXNfZWNobyAiJGFjX2N0X1NUUklQIiA+JjY7IH0KLStlbHNlCi0rICB7ICRh c19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiBubyIgPiY1Ci0rJGFzX2VjaG8gIm5vIiA+ JjY7IH0KLStmaQotKwotKyAgaWYgdGVzdCAieCRhY19jdF9TVFJJUCIgPSB4OyB0aGVuCi0rICAg IFNUUklQPSI6IgotKyAgZWxzZQotKyAgICBjYXNlICRjcm9zc19jb21waWxpbmc6JGFjX3Rvb2xf d2FybmVkIGluCi0reWVzOikKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogV0FSTklORzog dXNpbmcgY3Jvc3MgdG9vbHMgbm90IHByZWZpeGVkIHdpdGggaG9zdCB0cmlwbGV0IiA+JjUKLSsk YXNfZWNobyAiJGFzX21lOiBXQVJOSU5HOiB1c2luZyBjcm9zcyB0b29scyBub3QgcHJlZml4ZWQg d2l0aCBob3N0IHRyaXBsZXQiID4mMjt9Ci0rYWNfdG9vbF93YXJuZWQ9eWVzIDs7Ci0rZXNhYwot KyAgICBTVFJJUD0kYWNfY3RfU1RSSVAKLSsgIGZpCi0rZWxzZQotKyAgU1RSSVA9IiRhY19jdl9w cm9nX1NUUklQIgotK2ZpCi0rCi0rZmkKLStJTlNUQUxMX1NUUklQX1BST0dSQU09IlwkKGluc3Rh bGxfc2gpIC1jIC1zIgotKwotKyMgV2UgbmVlZCBhd2sgZm9yIHRoZSAiY2hlY2siIHRhcmdldC4g IFRoZSBzeXN0ZW0gImF3ayIgaXMgYmFkIG9uCi0rIyBzb21lIHBsYXRmb3Jtcy4KLSsjIEFsd2F5 cyBkZWZpbmUgQU1UQVIgZm9yIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkuCi0rCi0rQU1UQVI9JHtB TVRBUi0iJHthbV9taXNzaW5nX3J1bn10YXIifQotKwotK2FtX190YXI9JyR7QU1UQVJ9IGNob2Yg LSAiJCR0YXJkaXIiJzsgYW1fX3VudGFyPScke0FNVEFSfSB4ZiAtJwotKwotKwotKwotKwotKwot KwotKwotKwotKyMgQ2hlY2sgd2hldGhlciAtLXdpdGgtY3BwdW5pdC1wcmVmaXggd2FzIGdpdmVu LgotK2lmIHRlc3QgIiR7d2l0aF9jcHB1bml0X3ByZWZpeCtzZXR9IiA9IHNldDsgdGhlbgotKyAg d2l0aHZhbD0kd2l0aF9jcHB1bml0X3ByZWZpeDsgY3BwdW5pdF9jb25maWdfcHJlZml4PSIkd2l0 aHZhbCIKLStlbHNlCi0rICBjcHB1bml0X2NvbmZpZ19wcmVmaXg9IiIKLStmaQotKwotKwotKyMg Q2hlY2sgd2hldGhlciAtLXdpdGgtY3BwdW5pdC1leGVjLXByZWZpeCB3YXMgZ2l2ZW4uCi0raWYg dGVzdCAiJHt3aXRoX2NwcHVuaXRfZXhlY19wcmVmaXgrc2V0fSIgPSBzZXQ7IHRoZW4KLSsgIHdp dGh2YWw9JHdpdGhfY3BwdW5pdF9leGVjX3ByZWZpeDsgY3BwdW5pdF9jb25maWdfZXhlY19wcmVm aXg9IiR3aXRodmFsIgotK2Vsc2UKLSsgIGNwcHVuaXRfY29uZmlnX2V4ZWNfcHJlZml4PSIiCi0r ZmkKLSsKLSsKLSsgIGlmIHRlc3QgeCRjcHB1bml0X2NvbmZpZ19leGVjX3ByZWZpeCAhPSB4IDsg dGhlbgotKyAgICAgY3BwdW5pdF9jb25maWdfYXJncz0iJGNwcHVuaXRfY29uZmlnX2FyZ3MgLS1l eGVjLXByZWZpeD0kY3BwdW5pdF9jb25maWdfZXhlY19wcmVmaXgiCi0rICAgICBpZiB0ZXN0IHgk e0NQUFVOSVRfQ09ORklHK3NldH0gIT0geHNldCA7IHRoZW4KLSsgICAgICAgIENQUFVOSVRfQ09O RklHPSRjcHB1bml0X2NvbmZpZ19leGVjX3ByZWZpeC9iaW4vY3BwdW5pdC1jb25maWcKLSsgICAg IGZpCi0rICBmaQotKyAgaWYgdGVzdCB4JGNwcHVuaXRfY29uZmlnX3ByZWZpeCAhPSB4IDsgdGhl bgotKyAgICAgY3BwdW5pdF9jb25maWdfYXJncz0iJGNwcHVuaXRfY29uZmlnX2FyZ3MgLS1wcmVm aXg9JGNwcHVuaXRfY29uZmlnX3ByZWZpeCIKLSsgICAgIGlmIHRlc3QgeCR7Q1BQVU5JVF9DT05G SUcrc2V0fSAhPSB4c2V0IDsgdGhlbgotKyAgICAgICAgQ1BQVU5JVF9DT05GSUc9JGNwcHVuaXRf Y29uZmlnX3ByZWZpeC9iaW4vY3BwdW5pdC1jb25maWcKLSsgICAgIGZpCi0rICBmaQotKwotKyAg IyBFeHRyYWN0IHRoZSBmaXJzdCB3b3JkIG9mICJjcHB1bml0LWNvbmZpZyIsIHNvIGl0IGNhbiBi ZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3MuCi0rc2V0IGR1bW15IGNwcHVuaXQtY29uZmlnOyBh Y193b3JkPSQyCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciAkYWNf d29yZCIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yICRhY193b3JkLi4uICIgPiY2OyB9 Ci0raWYgdGVzdCAiJHthY19jdl9wYXRoX0NQUFVOSVRfQ09ORklHK3NldH0iID0gc2V0OyB0aGVu Ci0rICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsgIGNhc2UgJENQUFVOSVRf Q09ORklHIGluCi0rICBbXFwvXSogfCA/OltcXC9dKikKLSsgIGFjX2N2X3BhdGhfQ1BQVU5JVF9D T05GSUc9IiRDUFBVTklUX0NPTkZJRyIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3Qg d2l0aCBhIHBhdGguCi0rICA7OwotKyAgKikKLSsgIGFzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFU SF9TRVBBUkFUT1IKLStmb3IgYXNfZGlyIGluICRQQVRICi0rZG8KLSsgIElGUz0kYXNfc2F2ZV9J RlMKLSsgIHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCi0rICBmb3IgYWNfZXhlY19leHQg aW4gJycgJGFjX2V4ZWN1dGFibGVfZXh0ZW5zaW9uczsgZG8KLSsgIGlmIHsgdGVzdCAtZiAiJGFz X2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgJiYgJGFzX3Rlc3RfeCAiJGFzX2Rpci8kYWNfd29y ZCRhY19leGVjX2V4dCI7IH07IHRoZW4KLSsgICAgYWNfY3ZfcGF0aF9DUFBVTklUX0NPTkZJRz0i JGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIKLSsgICAgJGFzX2VjaG8gIiRhc19tZTokTElO RU5POiBmb3VuZCAkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiA+JjUKLSsgICAgYnJlYWsg MgotKyAgZmkKLStkb25lCi0rZG9uZQotK0lGUz0kYXNfc2F2ZV9JRlMKLSsKLSsgIHRlc3QgLXog IiRhY19jdl9wYXRoX0NQUFVOSVRfQ09ORklHIiAmJiBhY19jdl9wYXRoX0NQUFVOSVRfQ09ORklH PSJubyIKLSsgIDs7Ci0rZXNhYwotK2ZpCi0rQ1BQVU5JVF9DT05GSUc9JGFjX2N2X3BhdGhfQ1BQ VU5JVF9DT05GSUcKLStpZiB0ZXN0IC1uICIkQ1BQVU5JVF9DT05GSUciOyB0aGVuCi0rICB7ICRh c19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkQ1BQVU5JVF9DT05GSUciID4mNQotKyRh c19lY2hvICIkQ1BQVU5JVF9DT05GSUciID4mNjsgfQotK2Vsc2UKLSsgIHsgJGFzX2VjaG8gIiRh c19tZTokTElORU5POiByZXN1bHQ6IG5vIiA+JjUKLSskYXNfZWNobyAibm8iID4mNjsgfQotK2Zp Ci0rCi0rCi0rICBjcHB1bml0X3ZlcnNpb25fbWluPTEuMTAKLSsKLSsgIHsgJGFzX2VjaG8gIiRh c19tZTokTElORU5POiBjaGVja2luZyBmb3IgQ3BwdW5pdCAtIHZlcnNpb24gPj0gJGNwcHVuaXRf dmVyc2lvbl9taW4iID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIGZvciBDcHB1bml0IC0gdmVy c2lvbiA+PSAkY3BwdW5pdF92ZXJzaW9uX21pbi4uLiAiID4mNjsgfQotKyAgbm9fY3BwdW5pdD0i IgotKyAgaWYgdGVzdCAiJENQUFVOSVRfQ09ORklHIiA9ICJubyIgOyB0aGVuCi0rICAgIHsgJGFz X2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IG5vIiA+JjUKLSskYXNfZWNobyAibm8iID4m NjsgfQotKyAgICBub19jcHB1bml0PXllcwotKyAgZWxzZQotKyAgICBDUFBVTklUX0NGTEFHUz1g JENQUFVOSVRfQ09ORklHIC0tY2ZsYWdzYAotKyAgICBDUFBVTklUX0xJQlM9YCRDUFBVTklUX0NP TkZJRyAtLWxpYnNgCi0rICAgIENQUFVOSVRfVkVSU0lPTj1gJENQUFVOSVRfQ09ORklHIC0tdmVy c2lvbmAKLSsKLSsgICAgY3BwdW5pdF9tYWpvcl92ZXJzaW9uPWBlY2hvICRDUFBVTklUX1ZFUlNJ T04gfCBcCi0rICAgICAgICAgICBzZWQgJ3MvXChbMC05XSpcKS5cKFswLTldKlwpLlwoWzAtOV0q XCkvXDEvJ2AKLSsgICAgY3BwdW5pdF9taW5vcl92ZXJzaW9uPWBlY2hvICRDUFBVTklUX1ZFUlNJ T04gfCBcCi0rICAgICAgICAgICBzZWQgJ3MvXChbMC05XSpcKS5cKFswLTldKlwpLlwoWzAtOV0q XCkvXDIvJ2AKLSsgICAgY3BwdW5pdF9taWNyb192ZXJzaW9uPWBlY2hvICRDUFBVTklUX1ZFUlNJ T04gfCBcCi0rICAgICAgICAgICBzZWQgJ3MvXChbMC05XSpcKS5cKFswLTldKlwpLlwoWzAtOV0q XCkvXDMvJ2AKLSsKLSsgICAgY3BwdW5pdF9tYWpvcl9taW49YGVjaG8gJGNwcHVuaXRfdmVyc2lv bl9taW4gfCBcCi0rICAgICAgICAgICBzZWQgJ3MvXChbMC05XSpcKS5cKFswLTldKlwpLlwoWzAt OV0qXCkvXDEvJ2AKLSsgICAgaWYgdGVzdCAieCR7Y3BwdW5pdF9tYWpvcl9taW59IiA9ICJ4IiA7 IHRoZW4KLSsgICAgICAgY3BwdW5pdF9tYWpvcl9taW49MAotKyAgICBmaQotKwotKyAgICBjcHB1 bml0X21pbm9yX21pbj1gZWNobyAkY3BwdW5pdF92ZXJzaW9uX21pbiB8IFwKLSsgICAgICAgICAg IHNlZCAncy9cKFswLTldKlwpLlwoWzAtOV0qXCkuXChbMC05XSpcKS9cMi8nYAotKyAgICBpZiB0 ZXN0ICJ4JHtjcHB1bml0X21pbm9yX21pbn0iID0gIngiIDsgdGhlbgotKyAgICAgICBjcHB1bml0 X21pbm9yX21pbj0wCi0rICAgIGZpCi0rCi0rICAgIGNwcHVuaXRfbWljcm9fbWluPWBlY2hvICRj cHB1bml0X3ZlcnNpb25fbWluIHwgXAotKyAgICAgICAgICAgc2VkICdzL1woWzAtOV0qXCkuXChb MC05XSpcKS5cKFswLTldKlwpL1wzLydgCi0rICAgIGlmIHRlc3QgIngke2NwcHVuaXRfbWljcm9f bWlufSIgPSAieCIgOyB0aGVuCi0rICAgICAgIGNwcHVuaXRfbWljcm9fbWluPTAKLSsgICAgZmkK LSsKLSsgICAgY3BwdW5pdF92ZXJzaW9uX3Byb3Blcj1gZXhwciBcCi0rICAgICAgICAkY3BwdW5p dF9tYWpvcl92ZXJzaW9uIFw+ICRjcHB1bml0X21ham9yX21pbiBcfCBcCi0rICAgICAgICAkY3Bw dW5pdF9tYWpvcl92ZXJzaW9uIFw9ICRjcHB1bml0X21ham9yX21pbiBcJiBcCi0rICAgICAgICAk Y3BwdW5pdF9taW5vcl92ZXJzaW9uIFw+ICRjcHB1bml0X21pbm9yX21pbiBcfCBcCi0rICAgICAg ICAkY3BwdW5pdF9tYWpvcl92ZXJzaW9uIFw9ICRjcHB1bml0X21ham9yX21pbiBcJiBcCi0rICAg ICAgICAkY3BwdW5pdF9taW5vcl92ZXJzaW9uIFw9ICRjcHB1bml0X21pbm9yX21pbiBcJiBcCi0r ICAgICAgICAkY3BwdW5pdF9taWNyb192ZXJzaW9uIFw+PSAkY3BwdW5pdF9taWNyb19taW4gYAot KwotKyAgICBpZiB0ZXN0ICIkY3BwdW5pdF92ZXJzaW9uX3Byb3BlciIgPSAiMSIgOyB0aGVuCi0r ICAgICAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGNwcHVuaXRfbWFqb3Jf dmVyc2lvbi4kY3BwdW5pdF9taW5vcl92ZXJzaW9uLiRjcHB1bml0X21pY3JvX3ZlcnNpb24iID4m NQotKyRhc19lY2hvICIkY3BwdW5pdF9tYWpvcl92ZXJzaW9uLiRjcHB1bml0X21pbm9yX3ZlcnNp b24uJGNwcHVuaXRfbWljcm9fdmVyc2lvbiIgPiY2OyB9Ci0rICAgIGVsc2UKLSsgICAgICB7ICRh c19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiBubyIgPiY1Ci0rJGFzX2VjaG8gIm5vIiA+ JjY7IH0KLSsgICAgICBub19jcHB1bml0PXllcwotKyAgICBmaQotKyAgZmkKLSsKLSsgIGlmIHRl c3QgIngkbm9fY3BwdW5pdCIgPSB4IDsgdGhlbgotKyAgICAgOgotKyAgZWxzZQotKyAgICAgQ1BQ VU5JVF9DRkxBR1M9IiIKLSsgICAgIENQUFVOSVRfTElCUz0iIgotKyAgICAgOgotKyAgZmkKLSsK LSsKLSsKLSsKLSsKLSsgaWYgdGVzdCAieCRDUFBVTklUX0xJQlMiICE9IHg7IHRoZW4KLSsgIEhB VkVfQ1BQVU5JVF9UUlVFPQotKyAgSEFWRV9DUFBVTklUX0ZBTFNFPScjJwotK2Vsc2UKLSsgIEhB VkVfQ1BQVU5JVF9UUlVFPScjJwotKyAgSEFWRV9DUFBVTklUX0ZBTFNFPQotK2ZpCi0rCi0rCi0r IyBSUE0gcmVsZWFzZSBudW1iZXIKLStSUE1fUkVMRUFTRT0iMTMiCi0rCi0rCi0rIyBTaGFyZWQg bGlicmFyeSB2ZXJzaW9uaW5nCi0rR0VORVJJQ19MSUJSQVJZX1ZFUlNJT049IjM6MDowIgotKyMg ICAgICAgICAgICAgICAgICAgICAgICB8IHwgfAotKyMgICAgICAgICAgICAgICAgICstLS0tLS0r IHwgKy0tLSsKLSsjICAgICAgICAgICAgICAgICB8ICAgICAgICB8ICAgICB8Ci0rIyAgICAgICAg ICAgICAgY3VycmVudDpyZXZpc2lvbjphZ2UKLSsjICAgICAgICAgICAgICAgICB8ICAgICAgICB8 ICAgICB8Ci0rIyAgICAgICAgICAgICAgICAgfCAgICAgICAgfCAgICAgKy0gaW5jcmVtZW50IGlm IGludGVyZmFjZXMgaGF2ZSBiZWVuIGFkZGVkOwotKyMgICAgICAgICAgICAgICAgIHwgICAgICAg IHwgICAgICAgIHNldCB0byB6ZXJvIGlmIGludGVyZmFjZXMgaGF2ZSBiZWVuCi0rIyAgICAgICAg ICAgICAgICAgfCAgICAgICAgfCAgICAgICAgcmVtb3ZlZCBvciBjaGFuZ2VkCi0rIyAgICAgICAg ICAgICAgICAgfCAgICAgICAgKy0gaW5jcmVtZW50IGlmIHNvdXJjZSBjb2RlIGhhcyBjaGFuZ2Vk OwotKyMgICAgICAgICAgICAgICAgIHwgICAgICAgICAgIHNldCB0byB6ZXJvIGlmIGN1cnJlbnQg aXMgaW5jcmVtZW50ZWQKLSsjICAgICAgICAgICAgICAgICArLSBpbmNyZW1lbnQgaWYgaW50ZXJm YWNlcyBoYXZlIGJlZW4gYWRkZWQsIHJlbW92ZWQKLSsjICAgICAgICAgICAgICAgICAgICBvciBj aGFuZ2VkCi0rCi0rCi0rIyBVcGxvYWQgY29tbWFuZCBmb3IgU291cmNlRm9yZ2UKLStVUExPQURf Q09NTUFORD0ibmNmdHBwdXQgLXYgdXBsb2FkLnNvdXJjZWZvcmdlLm5ldCAvaW5jb21pbmciCi0r Ci0rCi0rIyBDaGVjayBmb3IgaG9zdCBhbmQgZGlzYWJsZSBidWlsZGluZyBhIHNoYXJlZCBsaWJy YXJ5IGluIFdpbmRvd3MKLSsjIE1ha2Ugc3VyZSB3ZSBjYW4gcnVuIGNvbmZpZy5zdWIuCi0rJFNI RUxMICIkYWNfYXV4X2Rpci9jb25maWcuc3ViIiBzdW40ID4vZGV2L251bGwgMj4mMSB8fAotKyAg eyB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IGNhbm5vdCBydW4gJFNIRUxMICRh Y19hdXhfZGlyL2NvbmZpZy5zdWIiID4mNQotKyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBjYW5u b3QgcnVuICRTSEVMTCAkYWNfYXV4X2Rpci9jb25maWcuc3ViIiA+JjI7fQotKyAgIHsgKGV4aXQg MSk7IGV4aXQgMTsgfTsgfQotKwotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2lu ZyBidWlsZCBzeXN0ZW0gdHlwZSIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgYnVpbGQgc3lz dGVtIHR5cGUuLi4gIiA+JjY7IH0KLStpZiB0ZXN0ICIke2FjX2N2X2J1aWxkK3NldH0iID0gc2V0 OyB0aGVuCi0rICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsgIGFjX2J1aWxk X2FsaWFzPSRidWlsZF9hbGlhcwotK3Rlc3QgIngkYWNfYnVpbGRfYWxpYXMiID0geCAmJgotKyAg YWNfYnVpbGRfYWxpYXM9YCRTSEVMTCAiJGFjX2F1eF9kaXIvY29uZmlnLmd1ZXNzImAKLSt0ZXN0 ICJ4JGFjX2J1aWxkX2FsaWFzIiA9IHggJiYKLSsgIHsgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5F Tk86IGVycm9yOiBjYW5ub3QgZ3Vlc3MgYnVpbGQgdHlwZTsgeW91IG11c3Qgc3BlY2lmeSBvbmUi ID4mNQotKyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBjYW5ub3QgZ3Vlc3MgYnVpbGQgdHlwZTsg eW91IG11c3Qgc3BlY2lmeSBvbmUiID4mMjt9Ci0rICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9 Ci0rYWNfY3ZfYnVpbGQ9YCRTSEVMTCAiJGFjX2F1eF9kaXIvY29uZmlnLnN1YiIgJGFjX2J1aWxk X2FsaWFzYCB8fAotKyAgeyB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6ICRTSEVM TCAkYWNfYXV4X2Rpci9jb25maWcuc3ViICRhY19idWlsZF9hbGlhcyBmYWlsZWQiID4mNQotKyRh c19lY2hvICIkYXNfbWU6IGVycm9yOiAkU0hFTEwgJGFjX2F1eF9kaXIvY29uZmlnLnN1YiAkYWNf YnVpbGRfYWxpYXMgZmFpbGVkIiA+JjI7fQotKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQot KwotK2ZpCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2N2X2J1aWxk IiA+JjUKLSskYXNfZWNobyAiJGFjX2N2X2J1aWxkIiA+JjY7IH0KLStjYXNlICRhY19jdl9idWls ZCBpbgotKyotKi0qKSA7OwotKyopIHsgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9y OiBpbnZhbGlkIHZhbHVlIG9mIGNhbm9uaWNhbCBidWlsZCIgPiY1Ci0rJGFzX2VjaG8gIiRhc19t ZTogZXJyb3I6IGludmFsaWQgdmFsdWUgb2YgY2Fub25pY2FsIGJ1aWxkIiA+JjI7fQotKyAgIHsg KGV4aXQgMSk7IGV4aXQgMTsgfTsgfTs7Ci0rZXNhYwotK2J1aWxkPSRhY19jdl9idWlsZAotK2Fj X3NhdmVfSUZTPSRJRlM7IElGUz0nLScKLStzZXQgeCAkYWNfY3ZfYnVpbGQKLStzaGlmdAotK2J1 aWxkX2NwdT0kMQotK2J1aWxkX3ZlbmRvcj0kMgotK3NoaWZ0OyBzaGlmdAotKyMgUmVtZW1iZXIs IHRoZSBmaXJzdCBjaGFyYWN0ZXIgb2YgSUZTIGlzIHVzZWQgdG8gY3JlYXRlICQqLAotKyMgZXhj ZXB0IHdpdGggb2xkIHNoZWxsczoKLStidWlsZF9vcz0kKgotK0lGUz0kYWNfc2F2ZV9JRlMKLStj YXNlICRidWlsZF9vcyBpbiAqXCAqKSBidWlsZF9vcz1gZWNobyAiJGJ1aWxkX29zIiB8IHNlZCAn cy8gLy0vZydgOzsgZXNhYwotKwotKwotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVj a2luZyBob3N0IHN5c3RlbSB0eXBlIiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyBob3N0IHN5 c3RlbSB0eXBlLi4uICIgPiY2OyB9Ci0raWYgdGVzdCAiJHthY19jdl9ob3N0K3NldH0iID0gc2V0 OyB0aGVuCi0rICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsgIGlmIHRlc3Qg IngkaG9zdF9hbGlhcyIgPSB4OyB0aGVuCi0rICBhY19jdl9ob3N0PSRhY19jdl9idWlsZAotK2Vs c2UKLSsgIGFjX2N2X2hvc3Q9YCRTSEVMTCAiJGFjX2F1eF9kaXIvY29uZmlnLnN1YiIgJGhvc3Rf YWxpYXNgIHx8Ci0rICAgIHsgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiAkU0hF TEwgJGFjX2F1eF9kaXIvY29uZmlnLnN1YiAkaG9zdF9hbGlhcyBmYWlsZWQiID4mNQotKyRhc19l Y2hvICIkYXNfbWU6IGVycm9yOiAkU0hFTEwgJGFjX2F1eF9kaXIvY29uZmlnLnN1YiAkaG9zdF9h bGlhcyBmYWlsZWQiID4mMjt9Ci0rICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9Ci0rZmkKLSsK LStmaQotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19jdl9ob3N0IiA+ JjUKLSskYXNfZWNobyAiJGFjX2N2X2hvc3QiID4mNjsgfQotK2Nhc2UgJGFjX2N2X2hvc3QgaW4K LSsqLSotKikgOzsKLSsqKSB7IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogaW52 YWxpZCB2YWx1ZSBvZiBjYW5vbmljYWwgaG9zdCIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogZXJy b3I6IGludmFsaWQgdmFsdWUgb2YgY2Fub25pY2FsIGhvc3QiID4mMjt9Ci0rICAgeyAoZXhpdCAx KTsgZXhpdCAxOyB9OyB9OzsKLStlc2FjCi0raG9zdD0kYWNfY3ZfaG9zdAotK2FjX3NhdmVfSUZT PSRJRlM7IElGUz0nLScKLStzZXQgeCAkYWNfY3ZfaG9zdAotK3NoaWZ0Ci0raG9zdF9jcHU9JDEK LStob3N0X3ZlbmRvcj0kMgotK3NoaWZ0OyBzaGlmdAotKyMgUmVtZW1iZXIsIHRoZSBmaXJzdCBj aGFyYWN0ZXIgb2YgSUZTIGlzIHVzZWQgdG8gY3JlYXRlICQqLAotKyMgZXhjZXB0IHdpdGggb2xk IHNoZWxsczoKLStob3N0X29zPSQqCi0rSUZTPSRhY19zYXZlX0lGUwotK2Nhc2UgJGhvc3Rfb3Mg aW4gKlwgKikgaG9zdF9vcz1gZWNobyAiJGhvc3Rfb3MiIHwgc2VkICdzLyAvLS9nJ2A7OyBlc2Fj Ci0rCi0rCi0rY2FzZSAkaG9zdCBpbgotKyAgKi0qLW1zZG9zKiB8ICotKi1nbzMyKiB8ICotKi1t aW5ndzMyKiB8ICotKi1jeWd3aW4qIHwgKi0qLXdpbmRvd3MqKQotKyAgICAjIENoZWNrIHdoZXRo ZXIgLS1lbmFibGUtc2hhcmVkIHdhcyBnaXZlbi4KLStpZiB0ZXN0ICIke2VuYWJsZV9zaGFyZWQr c2V0fSIgPSBzZXQ7IHRoZW4KLSsgIGVuYWJsZXZhbD0kZW5hYmxlX3NoYXJlZDsgcD0ke1BBQ0tB R0UtZGVmYXVsdH0KLSsgICAgY2FzZSAkZW5hYmxldmFsIGluCi0rICAgIHllcykgZW5hYmxlX3No YXJlZD15ZXMgOzsKLSsgICAgbm8pIGVuYWJsZV9zaGFyZWQ9bm8gOzsKLSsgICAgKikKLSsgICAg ICBlbmFibGVfc2hhcmVkPW5vCi0rICAgICAgIyBMb29rIGF0IHRoZSBhcmd1bWVudCB3ZSBnb3Qu ICBXZSB1c2UgYWxsIHRoZSBjb21tb24gbGlzdCBzZXBhcmF0b3JzLgotKyAgICAgIGx0X3NhdmVf aWZzPSIkSUZTIjsgSUZTPSIke0lGU30kUEFUSF9TRVBBUkFUT1IsIgotKyAgICAgIGZvciBwa2cg aW4gJGVuYWJsZXZhbDsgZG8KLSsJSUZTPSIkbHRfc2F2ZV9pZnMiCi0rCWlmIHRlc3QgIlgkcGtn IiA9ICJYJHAiOyB0aGVuCi0rCSAgZW5hYmxlX3NoYXJlZD15ZXMKLSsJZmkKLSsgICAgICBkb25l Ci0rICAgICAgSUZTPSIkbHRfc2F2ZV9pZnMiCi0rICAgICAgOzsKLSsgICAgZXNhYwotK2Vsc2UK LSsgIGVuYWJsZV9zaGFyZWQ9bm8KLStmaQotKwotKwotKwotKwotKwotKwotKwotKwotKwotKyAg ICAjIENoZWNrIHdoZXRoZXIgLS1lbmFibGUtc3RhdGljIHdhcyBnaXZlbi4KLStpZiB0ZXN0ICIk e2VuYWJsZV9zdGF0aWMrc2V0fSIgPSBzZXQ7IHRoZW4KLSsgIGVuYWJsZXZhbD0kZW5hYmxlX3N0 YXRpYzsgcD0ke1BBQ0tBR0UtZGVmYXVsdH0KLSsgICAgY2FzZSAkZW5hYmxldmFsIGluCi0rICAg IHllcykgZW5hYmxlX3N0YXRpYz15ZXMgOzsKLSsgICAgbm8pIGVuYWJsZV9zdGF0aWM9bm8gOzsK LSsgICAgKikKLSsgICAgIGVuYWJsZV9zdGF0aWM9bm8KLSsgICAgICAjIExvb2sgYXQgdGhlIGFy Z3VtZW50IHdlIGdvdC4gIFdlIHVzZSBhbGwgdGhlIGNvbW1vbiBsaXN0IHNlcGFyYXRvcnMuCi0r ICAgICAgbHRfc2F2ZV9pZnM9IiRJRlMiOyBJRlM9IiR7SUZTfSRQQVRIX1NFUEFSQVRPUiwiCi0r ICAgICAgZm9yIHBrZyBpbiAkZW5hYmxldmFsOyBkbwotKwlJRlM9IiRsdF9zYXZlX2lmcyIKLSsJ aWYgdGVzdCAiWCRwa2ciID0gIlgkcCI7IHRoZW4KLSsJICBlbmFibGVfc3RhdGljPXllcwotKwlm aQotKyAgICAgIGRvbmUKLSsgICAgICBJRlM9IiRsdF9zYXZlX2lmcyIKLSsgICAgICA7OwotKyAg ICBlc2FjCi0rZWxzZQotKyAgZW5hYmxlX3N0YXRpYz15ZXMKLStmaQotKwotKwotKwotKwotKwot KwotKwotKwotKwotKyAgICA7OwotKyAgKikKLSsgICAgIyBDaGVjayB3aGV0aGVyIC0tZW5hYmxl LXNoYXJlZCB3YXMgZ2l2ZW4uCi0raWYgdGVzdCAiJHtlbmFibGVfc2hhcmVkK3NldH0iID0gc2V0 OyB0aGVuCi0rICBlbmFibGV2YWw9JGVuYWJsZV9zaGFyZWQ7IHA9JHtQQUNLQUdFLWRlZmF1bHR9 Ci0rICAgIGNhc2UgJGVuYWJsZXZhbCBpbgotKyAgICB5ZXMpIGVuYWJsZV9zaGFyZWQ9eWVzIDs7 Ci0rICAgIG5vKSBlbmFibGVfc2hhcmVkPW5vIDs7Ci0rICAgICopCi0rICAgICAgZW5hYmxlX3No YXJlZD1ubwotKyAgICAgICMgTG9vayBhdCB0aGUgYXJndW1lbnQgd2UgZ290LiAgV2UgdXNlIGFs bCB0aGUgY29tbW9uIGxpc3Qgc2VwYXJhdG9ycy4KLSsgICAgICBsdF9zYXZlX2lmcz0iJElGUyI7 IElGUz0iJHtJRlN9JFBBVEhfU0VQQVJBVE9SLCIKLSsgICAgICBmb3IgcGtnIGluICRlbmFibGV2 YWw7IGRvCi0rCUlGUz0iJGx0X3NhdmVfaWZzIgotKwlpZiB0ZXN0ICJYJHBrZyIgPSAiWCRwIjsg dGhlbgotKwkgIGVuYWJsZV9zaGFyZWQ9eWVzCi0rCWZpCi0rICAgICAgZG9uZQotKyAgICAgIElG Uz0iJGx0X3NhdmVfaWZzIgotKyAgICAgIDs7Ci0rICAgIGVzYWMKLStlbHNlCi0rICBlbmFibGVf c2hhcmVkPXllcwotK2ZpCi0rCi0rCi0rCi0rCi0rCi0rCi0rICAgICMgQ2hlY2sgd2hldGhlciAt LWVuYWJsZS1zdGF0aWMgd2FzIGdpdmVuLgotK2lmIHRlc3QgIiR7ZW5hYmxlX3N0YXRpYytzZXR9 IiA9IHNldDsgdGhlbgotKyAgZW5hYmxldmFsPSRlbmFibGVfc3RhdGljOyBwPSR7UEFDS0FHRS1k ZWZhdWx0fQotKyAgICBjYXNlICRlbmFibGV2YWwgaW4KLSsgICAgeWVzKSBlbmFibGVfc3RhdGlj PXllcyA7OwotKyAgICBubykgZW5hYmxlX3N0YXRpYz1ubyA7OwotKyAgICAqKQotKyAgICAgZW5h YmxlX3N0YXRpYz1ubwotKyAgICAgICMgTG9vayBhdCB0aGUgYXJndW1lbnQgd2UgZ290LiAgV2Ug dXNlIGFsbCB0aGUgY29tbW9uIGxpc3Qgc2VwYXJhdG9ycy4KLSsgICAgICBsdF9zYXZlX2lmcz0i JElGUyI7IElGUz0iJHtJRlN9JFBBVEhfU0VQQVJBVE9SLCIKLSsgICAgICBmb3IgcGtnIGluICRl bmFibGV2YWw7IGRvCi0rCUlGUz0iJGx0X3NhdmVfaWZzIgotKwlpZiB0ZXN0ICJYJHBrZyIgPSAi WCRwIjsgdGhlbgotKwkgIGVuYWJsZV9zdGF0aWM9eWVzCi0rCWZpCi0rICAgICAgZG9uZQotKyAg ICAgIElGUz0iJGx0X3NhdmVfaWZzIgotKyAgICAgIDs7Ci0rICAgIGVzYWMKLStlbHNlCi0rICBl bmFibGVfc3RhdGljPW5vCi0rZmkKLSsKLSsKLSsKLSsKLSsKLSsKLSsgICAgOzsKLStlc2FjCi0r Ci0rIyBDaGVja3MgZm9yIHByb2dyYW1zCi0rc2F2ZV9DWFhGTEFHUz0iJENYWEZMQUdTIgotK2Fj X2V4dD1jcHAKLSthY19jcHA9JyRDWFhDUFAgJENQUEZMQUdTJwotK2FjX2NvbXBpbGU9JyRDWFgg LWMgJENYWEZMQUdTICRDUFBGTEFHUyBjb25mdGVzdC4kYWNfZXh0ID4mNScKLSthY19saW5rPSck Q1hYIC1vIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAkQ1hYRkxBR1MgJENQUEZMQUdTICRMREZMQUdTIGNv bmZ0ZXN0LiRhY19leHQgJExJQlMgPiY1JwotK2FjX2NvbXBpbGVyX2dudT0kYWNfY3ZfY3h4X2Nv bXBpbGVyX2dudQotK2lmIHRlc3QgLXogIiRDWFgiOyB0aGVuCi0rICBpZiB0ZXN0IC1uICIkQ0ND IjsgdGhlbgotKyAgICBDWFg9JENDQwotKyAgZWxzZQotKyAgICBpZiB0ZXN0IC1uICIkYWNfdG9v bF9wcmVmaXgiOyB0aGVuCi0rICBmb3IgYWNfcHJvZyBpbiBnKysgYysrIGdwcCBhQ0MgQ0MgY3h4 IGNjKysgY2wuZXhlIEZDQyBLQ0MgUkNDIHhsQ19yIHhsQwotKyAgZG8KLSsgICAgIyBFeHRyYWN0 IHRoZSBmaXJzdCB3b3JkIG9mICIkYWNfdG9vbF9wcmVmaXgkYWNfcHJvZyIsIHNvIGl0IGNhbiBi ZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3MuCi0rc2V0IGR1bW15ICRhY190b29sX3ByZWZpeCRh Y19wcm9nOyBhY193b3JkPSQyCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5n IGZvciAkYWNfd29yZCIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yICRhY193b3JkLi4u ICIgPiY2OyB9Ci0raWYgdGVzdCAiJHthY19jdl9wcm9nX0NYWCtzZXR9IiA9IHNldDsgdGhlbgot KyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rICBpZiB0ZXN0IC1uICIkQ1hY IjsgdGhlbgotKyAgYWNfY3ZfcHJvZ19DWFg9IiRDWFgiICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRl IHRoZSB0ZXN0LgotK2Vsc2UKLSthc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9S Ci0rZm9yIGFzX2RpciBpbiAkUEFUSAotK2RvCi0rICBJRlM9JGFzX3NhdmVfSUZTCi0rICB0ZXN0 IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgotKyAgZm9yIGFjX2V4ZWNfZXh0IGluICcnICRhY19l eGVjdXRhYmxlX2V4dGVuc2lvbnM7IGRvCi0rICBpZiB7IHRlc3QgLWYgIiRhc19kaXIvJGFjX3dv cmQkYWNfZXhlY19leHQiICYmICRhc190ZXN0X3ggIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19l eHQiOyB9OyB0aGVuCi0rICAgIGFjX2N2X3Byb2dfQ1hYPSIkYWNfdG9vbF9wcmVmaXgkYWNfcHJv ZyIKLSsgICAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBmb3VuZCAkYXNfZGlyLyRhY193b3Jk JGFjX2V4ZWNfZXh0IiA+JjUKLSsgICAgYnJlYWsgMgotKyAgZmkKLStkb25lCi0rZG9uZQotK0lG Uz0kYXNfc2F2ZV9JRlMKLSsKLStmaQotK2ZpCi0rQ1hYPSRhY19jdl9wcm9nX0NYWAotK2lmIHRl c3QgLW4gIiRDWFgiOyB0aGVuCi0rICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0 OiAkQ1hYIiA+JjUKLSskYXNfZWNobyAiJENYWCIgPiY2OyB9Ci0rZWxzZQotKyAgeyAkYXNfZWNo byAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogbm8iID4mNQotKyRhc19lY2hvICJubyIgPiY2OyB9 Ci0rZmkKLSsKLSsKLSsgICAgdGVzdCAtbiAiJENYWCIgJiYgYnJlYWsKLSsgIGRvbmUKLStmaQot K2lmIHRlc3QgLXogIiRDWFgiOyB0aGVuCi0rICBhY19jdF9DWFg9JENYWAotKyAgZm9yIGFjX3By b2cgaW4gZysrIGMrKyBncHAgYUNDIENDIGN4eCBjYysrIGNsLmV4ZSBGQ0MgS0NDIFJDQyB4bENf ciB4bEMKLStkbwotKyAgIyBFeHRyYWN0IHRoZSBmaXJzdCB3b3JkIG9mICIkYWNfcHJvZyIsIHNv IGl0IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3MuCi0rc2V0IGR1bW15ICRhY19wcm9n OyBhY193b3JkPSQyCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciAk YWNfd29yZCIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yICRhY193b3JkLi4uICIgPiY2 OyB9Ci0raWYgdGVzdCAiJHthY19jdl9wcm9nX2FjX2N0X0NYWCtzZXR9IiA9IHNldDsgdGhlbgot KyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rICBpZiB0ZXN0IC1uICIkYWNf Y3RfQ1hYIjsgdGhlbgotKyAgYWNfY3ZfcHJvZ19hY19jdF9DWFg9IiRhY19jdF9DWFgiICMgTGV0 IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0LgotK2Vsc2UKLSthc19zYXZlX0lGUz0kSUZTOyBJ RlM9JFBBVEhfU0VQQVJBVE9SCi0rZm9yIGFzX2RpciBpbiAkUEFUSAotK2RvCi0rICBJRlM9JGFz X3NhdmVfSUZTCi0rICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgotKyAgZm9yIGFjX2V4 ZWNfZXh0IGluICcnICRhY19leGVjdXRhYmxlX2V4dGVuc2lvbnM7IGRvCi0rICBpZiB7IHRlc3Qg LWYgIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiICYmICRhc190ZXN0X3ggIiRhc19kaXIv JGFjX3dvcmQkYWNfZXhlY19leHQiOyB9OyB0aGVuCi0rICAgIGFjX2N2X3Byb2dfYWNfY3RfQ1hY PSIkYWNfcHJvZyIKLSsgICAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBmb3VuZCAkYXNfZGly LyRhY193b3JkJGFjX2V4ZWNfZXh0IiA+JjUKLSsgICAgYnJlYWsgMgotKyAgZmkKLStkb25lCi0r ZG9uZQotK0lGUz0kYXNfc2F2ZV9JRlMKLSsKLStmaQotK2ZpCi0rYWNfY3RfQ1hYPSRhY19jdl9w cm9nX2FjX2N0X0NYWAotK2lmIHRlc3QgLW4gIiRhY19jdF9DWFgiOyB0aGVuCi0rICB7ICRhc19l Y2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3RfQ1hYIiA+JjUKLSskYXNfZWNobyAi JGFjX2N0X0NYWCIgPiY2OyB9Ci0rZWxzZQotKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86 IHJlc3VsdDogbm8iID4mNQotKyRhc19lY2hvICJubyIgPiY2OyB9Ci0rZmkKLSsKLSsKLSsgIHRl c3QgLW4gIiRhY19jdF9DWFgiICYmIGJyZWFrCi0rZG9uZQotKwotKyAgaWYgdGVzdCAieCRhY19j dF9DWFgiID0geDsgdGhlbgotKyAgICBDWFg9ImcrKyIKLSsgIGVsc2UKLSsgICAgY2FzZSAkY3Jv c3NfY29tcGlsaW5nOiRhY190b29sX3dhcm5lZCBpbgotK3llczopCi0reyAkYXNfZWNobyAiJGFz X21lOiRMSU5FTk86IFdBUk5JTkc6IHVzaW5nIGNyb3NzIHRvb2xzIG5vdCBwcmVmaXhlZCB3aXRo IGhvc3QgdHJpcGxldCIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogV0FSTklORzogdXNpbmcgY3Jv c3MgdG9vbHMgbm90IHByZWZpeGVkIHdpdGggaG9zdCB0cmlwbGV0IiA+JjI7fQotK2FjX3Rvb2xf d2FybmVkPXllcyA7OwotK2VzYWMKLSsgICAgQ1hYPSRhY19jdF9DWFgKLSsgIGZpCi0rZmkKLSsK LSsgIGZpCi0rZmkKLSsjIFByb3ZpZGUgc29tZSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgY29tcGls ZXIuCi0rJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgQysrIGNvbXBpbGVy IHZlcnNpb24iID4mNQotK3NldCBYICRhY19jb21waWxlCi0rYWNfY29tcGlsZXI9JDIKLSt7IChh Y190cnk9IiRhY19jb21waWxlciAtLXZlcnNpb24gPiY1IgotK2Nhc2UgIigoJGFjX3RyeSIgaW4K LSsgICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OwotKyAgKikgYWNf dHJ5X2VjaG89JGFjX3RyeTs7Ci0rZXNhYwotK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTok TElORU5POiAkYWNfdHJ5X2VjaG9cIiIKLSskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1Ci0r ICAoZXZhbCAiJGFjX2NvbXBpbGVyIC0tdmVyc2lvbiA+JjUiKSAyPiY1Ci0rICBhY19zdGF0dXM9 JD8KLSsgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0r ICAoZXhpdCAkYWNfc3RhdHVzKTsgfQotK3sgKGFjX3RyeT0iJGFjX2NvbXBpbGVyIC12ID4mNSIK LStjYXNlICIoKCRhY190cnkiIGluCi0rICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hv PVwkYWNfdHJ5OzsKLSsgICopIGFjX3RyeV9lY2hvPSRhY190cnk7OwotK2VzYWMKLStldmFsIGFj X3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCi0rJGFzX2VjaG8g IiRhY190cnlfZWNobyIpID4mNQotKyAgKGV2YWwgIiRhY19jb21waWxlciAtdiA+JjUiKSAyPiY1 Ci0rICBhY19zdGF0dXM9JD8KLSsgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFj X3N0YXR1cyIgPiY1Ci0rICAoZXhpdCAkYWNfc3RhdHVzKTsgfQotK3sgKGFjX3RyeT0iJGFjX2Nv bXBpbGVyIC1WID4mNSIKLStjYXNlICIoKCRhY190cnkiIGluCi0rICAqXCIqIHwgKlxgKiB8ICpc XCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKLSsgICopIGFjX3RyeV9lY2hvPSRhY190cnk7Owot K2VzYWMKLStldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hv XCIiCi0rJGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4mNQotKyAgKGV2YWwgIiRhY19jb21waWxl ciAtViA+JjUiKSAyPiY1Ci0rICBhY19zdGF0dXM9JD8KLSsgICRhc19lY2hvICIkYXNfbWU6JExJ TkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0rICAoZXhpdCAkYWNfc3RhdHVzKTsgfQotKwot K2NhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotKy8qIGNvbmZkZWZzLmguICAqLwotK19B Q0VPRgotK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAotK2NhdCA+PmNvbmZ0ZXN0 LiRhY19leHQgPDxfQUNFT0YKLSsvKiBlbmQgY29uZmRlZnMuaC4gICovCi0rCi0raW50Ci0rbWFp biAoKQotK3sKLSsKLSsgIDsKLSsgIHJldHVybiAwOwotK30KLStfQUNFT0YKLSthY19jbGVhbl9m aWxlc19zYXZlPSRhY19jbGVhbl9maWxlcwotK2FjX2NsZWFuX2ZpbGVzPSIkYWNfY2xlYW5fZmls ZXMgYS5vdXQgYS5vdXQuZFNZTSBhLmV4ZSBiLm91dCIKLSsjIFRyeSB0byBjcmVhdGUgYW4gZXhl Y3V0YWJsZSB3aXRob3V0IC1vIGZpcnN0LCBkaXNyZWdhcmQgYS5vdXQuCi0rIyBJdCB3aWxsIGhl bHAgdXMgZGlhZ25vc2UgYnJva2VuIGNvbXBpbGVycywgYW5kIGZpbmRpbmcgb3V0IGFuIGludHVp dGlvbgotKyMgb2YgZXhlZXh0LgotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2lu ZyBmb3IgQysrIGNvbXBpbGVyIGRlZmF1bHQgb3V0cHV0IGZpbGUgbmFtZSIgPiY1Ci0rJGFzX2Vj aG9fbiAiY2hlY2tpbmcgZm9yIEMrKyBjb21waWxlciBkZWZhdWx0IG91dHB1dCBmaWxlIG5hbWUu Li4gIiA+JjY7IH0KLSthY19saW5rX2RlZmF1bHQ9YCRhc19lY2hvICIkYWNfbGluayIgfCBzZWQg J3MvIC1vICpjb25mdGVzdFteIF0qLy8nYAotKwotKyMgVGhlIHBvc3NpYmxlIG91dHB1dCBmaWxl czoKLSthY19maWxlcz0iYS5vdXQgY29uZnRlc3QuZXhlIGNvbmZ0ZXN0IGEuZXhlIGFfb3V0LmV4 ZSBiLm91dCBjb25mdGVzdC4qIgotKwotK2FjX3JtZmlsZXM9Ci0rZm9yIGFjX2ZpbGUgaW4gJGFj X2ZpbGVzCi0rZG8KLSsgIGNhc2UgJGFjX2ZpbGUgaW4KLSsgICAgKi4kYWNfZXh0IHwgKi54Y29m ZiB8ICoudGRzIHwgKi5kIHwgKi5wZGIgfCAqLnhTWU0gfCAqLmJiIHwgKi5iYmcgfCAqLm1hcCB8 ICouaW5mIHwgKi5kU1lNIHwgKi5vIHwgKi5vYmogKSA7OwotKyAgICAqICkgYWNfcm1maWxlcz0i JGFjX3JtZmlsZXMgJGFjX2ZpbGUiOzsKLSsgIGVzYWMKLStkb25lCi0rcm0gLWYgJGFjX3JtZmls ZXMKLSsKLStpZiB7IChhY190cnk9IiRhY19saW5rX2RlZmF1bHQiCi0rY2FzZSAiKCgkYWNfdHJ5 IiBpbgotKyAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7Ci0rICAq KSBhY190cnlfZWNobz0kYWNfdHJ5OzsKLStlc2FjCi0rZXZhbCBhY190cnlfZWNobz0iXCJcJGFz X21lOiRMSU5FTk86ICRhY190cnlfZWNob1wiIgotKyRhc19lY2hvICIkYWNfdHJ5X2VjaG8iKSA+ JjUKLSsgIChldmFsICIkYWNfbGlua19kZWZhdWx0IikgMj4mNQotKyAgYWNfc3RhdHVzPSQ/Ci0r ICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotKyAgKGV4 aXQgJGFjX3N0YXR1cyk7IH07IHRoZW4KLSsgICMgQXV0b2NvbmYtMi4xMyBjb3VsZCBzZXQgdGhl IGFjX2N2X2V4ZWV4dCB2YXJpYWJsZSB0byBgbm8nLgotKyMgU28gaWdub3JlIGEgdmFsdWUgb2Yg YG5vJywgb3RoZXJ3aXNlIHRoaXMgd291bGQgbGVhZCB0byBgRVhFRVhUID0gbm8nCi0rIyBpbiBh IE1ha2VmaWxlLiAgV2Ugc2hvdWxkIG5vdCBvdmVycmlkZSBhY19jdl9leGVleHQgaWYgaXQgd2Fz IGNhY2hlZCwKLSsjIHNvIHRoYXQgdGhlIHVzZXIgY2FuIHNob3J0LWNpcmN1aXQgdGhpcyB0ZXN0 IGZvciBjb21waWxlcnMgdW5rbm93biB0bwotKyMgQXV0b2NvbmYuCi0rZm9yIGFjX2ZpbGUgaW4g JGFjX2ZpbGVzICcnCi0rZG8KLSsgIHRlc3QgLWYgIiRhY19maWxlIiB8fCBjb250aW51ZQotKyAg Y2FzZSAkYWNfZmlsZSBpbgotKyAgICAqLiRhY19leHQgfCAqLnhjb2ZmIHwgKi50ZHMgfCAqLmQg fCAqLnBkYiB8ICoueFNZTSB8ICouYmIgfCAqLmJiZyB8ICoubWFwIHwgKi5pbmYgfCAqLmRTWU0g fCAqLm8gfCAqLm9iaiApCi0rCTs7Ci0rICAgIFthYl0ub3V0ICkKLSsJIyBXZSBmb3VuZCB0aGUg ZGVmYXVsdCBleGVjdXRhYmxlLCBidXQgZXhlZXh0PScnIGlzIG1vc3QKLSsJIyBjZXJ0YWlubHkg cmlnaHQuCi0rCWJyZWFrOzsKLSsgICAgKi4qICkKLSsgICAgICAgIGlmIHRlc3QgIiR7YWNfY3Zf ZXhlZXh0K3NldH0iID0gc2V0ICYmIHRlc3QgIiRhY19jdl9leGVleHQiICE9IG5vOwotKwl0aGVu IDo7IGVsc2UKLSsJICAgYWNfY3ZfZXhlZXh0PWBleHByICIkYWNfZmlsZSIgOiAnW14uXSpcKFwu LipcKSdgCi0rCWZpCi0rCSMgV2Ugc2V0IGFjX2N2X2V4ZWV4dCBoZXJlIGJlY2F1c2UgdGhlIGxh dGVyIHRlc3QgZm9yIGl0IGlzIG5vdAotKwkjIHNhZmU6IGNyb3NzIGNvbXBpbGVycyBtYXkgbm90 IGFkZCB0aGUgc3VmZml4IGlmIGdpdmVuIGFuIGAtbycKLSsJIyBhcmd1bWVudCwgc28gd2UgbWF5 IG5lZWQgdG8ga25vdyBpdCBhdCB0aGF0IHBvaW50IGFscmVhZHkuCi0rCSMgRXZlbiBpZiB0aGlz IHNlY3Rpb24gbG9va3MgY3J1ZnR5OiBpdCBoYXMgdGhlIGFkdmFudGFnZSBvZgotKwkjIGFjdHVh bGx5IHdvcmtpbmcuCi0rCWJyZWFrOzsKLSsgICAgKiApCi0rCWJyZWFrOzsKLSsgIGVzYWMKLStk b25lCi0rdGVzdCAiJGFjX2N2X2V4ZWV4dCIgPSBubyAmJiBhY19jdl9leGVleHQ9Ci0rCi0rZWxz ZQotKyAgYWNfZmlsZT0nJwotK2ZpCi0rCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJl c3VsdDogJGFjX2ZpbGUiID4mNQotKyRhc19lY2hvICIkYWNfZmlsZSIgPiY2OyB9Ci0raWYgdGVz dCAteiAiJGFjX2ZpbGUiOyB0aGVuCi0rICAkYXNfZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3Jh bSB3YXM6IiA+JjUKLStzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1Ci0rCi0reyB7 ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IGluIFxgJGFjX3B3ZCc6IiA+JjUKLSsk YXNfZWNobyAiJGFzX21lOiBlcnJvcjogaW4gXGAkYWNfcHdkJzoiID4mMjt9Ci0reyB7ICRhc19l Y2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IEMrKyBjb21waWxlciBjYW5ub3QgY3JlYXRlIGV4 ZWN1dGFibGVzCi0rU2VlIFxgY29uZmlnLmxvZycgZm9yIG1vcmUgZGV0YWlscy4iID4mNQotKyRh c19lY2hvICIkYXNfbWU6IGVycm9yOiBDKysgY29tcGlsZXIgY2Fubm90IGNyZWF0ZSBleGVjdXRh YmxlcwotK1NlZSBcYGNvbmZpZy5sb2cnIGZvciBtb3JlIGRldGFpbHMuIiA+JjI7fQotKyAgIHsg KGV4aXQgNzcpOyBleGl0IDc3OyB9OyB9OyB9Ci0rZmkKLSsKLSthY19leGVleHQ9JGFjX2N2X2V4 ZWV4dAotKwotKyMgQ2hlY2sgdGhhdCB0aGUgY29tcGlsZXIgcHJvZHVjZXMgZXhlY3V0YWJsZXMg d2UgY2FuIHJ1bi4gIElmIG5vdCwgZWl0aGVyCi0rIyB0aGUgY29tcGlsZXIgaXMgYnJva2VuLCBv ciB3ZSBjcm9zcyBjb21waWxlLgotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2lu ZyB3aGV0aGVyIHRoZSBDKysgY29tcGlsZXIgd29ya3MiID4mNQotKyRhc19lY2hvX24gImNoZWNr aW5nIHdoZXRoZXIgdGhlIEMrKyBjb21waWxlciB3b3Jrcy4uLiAiID4mNjsgfQotKyMgRklYTUU6 IFRoZXNlIGNyb3NzIGNvbXBpbGVyIGhhY2tzIHNob3VsZCBiZSByZW1vdmVkIGZvciBBdXRvY29u ZiAzLjAKLSsjIElmIG5vdCBjcm9zcyBjb21waWxpbmcsIGNoZWNrIHRoYXQgd2UgY2FuIHJ1biBh IHNpbXBsZSBwcm9ncmFtLgotK2lmIHRlc3QgIiRjcm9zc19jb21waWxpbmciICE9IHllczsgdGhl bgotKyAgaWYgeyBhY190cnk9Jy4vJGFjX2ZpbGUnCi0rICB7IChjYXNlICIoKCRhY190cnkiIGlu Ci0rICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKLSsgICopIGFj X3RyeV9lY2hvPSRhY190cnk7OwotK2VzYWMKLStldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6 JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCi0rJGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4mNQot KyAgKGV2YWwgIiRhY190cnkiKSAyPiY1Ci0rICBhY19zdGF0dXM9JD8KLSsgICRhc19lY2hvICIk YXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0rICAoZXhpdCAkYWNfc3RhdHVz KTsgfTsgfTsgdGhlbgotKyAgICBjcm9zc19jb21waWxpbmc9bm8KLSsgIGVsc2UKLSsgICAgaWYg dGVzdCAiJGNyb3NzX2NvbXBpbGluZyIgPSBtYXliZTsgdGhlbgotKwljcm9zc19jb21waWxpbmc9 eWVzCi0rICAgIGVsc2UKLSsJeyB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IGlu IFxgJGFjX3B3ZCc6IiA+JjUKLSskYXNfZWNobyAiJGFzX21lOiBlcnJvcjogaW4gXGAkYWNfcHdk JzoiID4mMjt9Ci0reyB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IGNhbm5vdCBy dW4gQysrIGNvbXBpbGVkIHByb2dyYW1zLgotK0lmIHlvdSBtZWFudCB0byBjcm9zcyBjb21waWxl LCB1c2UgXGAtLWhvc3QnLgotK1NlZSBcYGNvbmZpZy5sb2cnIGZvciBtb3JlIGRldGFpbHMuIiA+ JjUKLSskYXNfZWNobyAiJGFzX21lOiBlcnJvcjogY2Fubm90IHJ1biBDKysgY29tcGlsZWQgcHJv Z3JhbXMuCi0rSWYgeW91IG1lYW50IHRvIGNyb3NzIGNvbXBpbGUsIHVzZSBcYC0taG9zdCcuCi0r U2VlIFxgY29uZmlnLmxvZycgZm9yIG1vcmUgZGV0YWlscy4iID4mMjt9Ci0rICAgeyAoZXhpdCAx KTsgZXhpdCAxOyB9OyB9OyB9Ci0rICAgIGZpCi0rICBmaQotK2ZpCi0reyAkYXNfZWNobyAiJGFz X21lOiRMSU5FTk86IHJlc3VsdDogeWVzIiA+JjUKLSskYXNfZWNobyAieWVzIiA+JjY7IH0KLSsK LStybSAtZiAtciBhLm91dCBhLm91dC5kU1lNIGEuZXhlIGNvbmZ0ZXN0JGFjX2N2X2V4ZWV4dCBi Lm91dAotK2FjX2NsZWFuX2ZpbGVzPSRhY19jbGVhbl9maWxlc19zYXZlCi0rIyBDaGVjayB0aGF0 IHRoZSBjb21waWxlciBwcm9kdWNlcyBleGVjdXRhYmxlcyB3ZSBjYW4gcnVuLiAgSWYgbm90LCBl aXRoZXIKLSsjIHRoZSBjb21waWxlciBpcyBicm9rZW4sIG9yIHdlIGNyb3NzIGNvbXBpbGUuCi0r eyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIHdoZXRoZXIgd2UgYXJlIGNyb3Nz IGNvbXBpbGluZyIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgd2hldGhlciB3ZSBhcmUgY3Jv c3MgY29tcGlsaW5nLi4uICIgPiY2OyB9Ci0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJl c3VsdDogJGNyb3NzX2NvbXBpbGluZyIgPiY1Ci0rJGFzX2VjaG8gIiRjcm9zc19jb21waWxpbmci ID4mNjsgfQotKwotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3Igc3Vm Zml4IG9mIGV4ZWN1dGFibGVzIiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyBmb3Igc3VmZml4 IG9mIGV4ZWN1dGFibGVzLi4uICIgPiY2OyB9Ci0raWYgeyAoYWNfdHJ5PSIkYWNfbGluayIKLStj YXNlICIoKCRhY190cnkiIGluCi0rICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwk YWNfdHJ5OzsKLSsgICopIGFjX3RyeV9lY2hvPSRhY190cnk7OwotK2VzYWMKLStldmFsIGFjX3Ry eV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCi0rJGFzX2VjaG8gIiRh Y190cnlfZWNobyIpID4mNQotKyAgKGV2YWwgIiRhY19saW5rIikgMj4mNQotKyAgYWNfc3RhdHVz PSQ/Ci0rICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQot KyAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IHRoZW4KLSsgICMgSWYgYm90aCBgY29uZnRlc3QuZXhl JyBhbmQgYGNvbmZ0ZXN0JyBhcmUgYHByZXNlbnQnICh3ZWxsLCBvYnNlcnZhYmxlKQotKyMgY2F0 Y2ggYGNvbmZ0ZXN0LmV4ZScuICBGb3IgaW5zdGFuY2Ugd2l0aCBDeWd3aW4sIGBscyBjb25mdGVz dCcgd2lsbAotKyMgd29yayBwcm9wZXJseSAoaS5lLiwgcmVmZXIgdG8gYGNvbmZ0ZXN0LmV4ZScp LCB3aGlsZSBpdCB3b24ndCB3aXRoCi0rIyBgcm0nLgotK2ZvciBhY19maWxlIGluIGNvbmZ0ZXN0 LmV4ZSBjb25mdGVzdCBjb25mdGVzdC4qOyBkbwotKyAgdGVzdCAtZiAiJGFjX2ZpbGUiIHx8IGNv bnRpbnVlCi0rICBjYXNlICRhY19maWxlIGluCi0rICAgICouJGFjX2V4dCB8ICoueGNvZmYgfCAq LnRkcyB8ICouZCB8ICoucGRiIHwgKi54U1lNIHwgKi5iYiB8ICouYmJnIHwgKi5tYXAgfCAqLmlu ZiB8ICouZFNZTSB8ICoubyB8ICoub2JqICkgOzsKLSsgICAgKi4qICkgYWNfY3ZfZXhlZXh0PWBl eHByICIkYWNfZmlsZSIgOiAnW14uXSpcKFwuLipcKSdgCi0rCSAgYnJlYWs7OwotKyAgICAqICkg YnJlYWs7OwotKyAgZXNhYwotK2RvbmUKLStlbHNlCi0rICB7IHsgJGFzX2VjaG8gIiRhc19tZTok TElORU5POiBlcnJvcjogaW4gXGAkYWNfcHdkJzoiID4mNQotKyRhc19lY2hvICIkYXNfbWU6IGVy cm9yOiBpbiBcYCRhY19wd2QnOiIgPiYyO30KLSt7IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5P OiBlcnJvcjogY2Fubm90IGNvbXB1dGUgc3VmZml4IG9mIGV4ZWN1dGFibGVzOiBjYW5ub3QgY29t cGlsZSBhbmQgbGluawotK1NlZSBcYGNvbmZpZy5sb2cnIGZvciBtb3JlIGRldGFpbHMuIiA+JjUK LSskYXNfZWNobyAiJGFzX21lOiBlcnJvcjogY2Fubm90IGNvbXB1dGUgc3VmZml4IG9mIGV4ZWN1 dGFibGVzOiBjYW5ub3QgY29tcGlsZSBhbmQgbGluawotK1NlZSBcYGNvbmZpZy5sb2cnIGZvciBt b3JlIGRldGFpbHMuIiA+JjI7fQotKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfTsgfQotK2Zp Ci0rCi0rcm0gLWYgY29uZnRlc3QkYWNfY3ZfZXhlZXh0Ci0reyAkYXNfZWNobyAiJGFzX21lOiRM SU5FTk86IHJlc3VsdDogJGFjX2N2X2V4ZWV4dCIgPiY1Ci0rJGFzX2VjaG8gIiRhY19jdl9leGVl eHQiID4mNjsgfQotKwotK3JtIC1mIGNvbmZ0ZXN0LiRhY19leHQKLStFWEVFWFQ9JGFjX2N2X2V4 ZWV4dAotK2FjX2V4ZWV4dD0kRVhFRVhUCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNo ZWNraW5nIGZvciBzdWZmaXggb2Ygb2JqZWN0IGZpbGVzIiA+JjUKLSskYXNfZWNob19uICJjaGVj a2luZyBmb3Igc3VmZml4IG9mIG9iamVjdCBmaWxlcy4uLiAiID4mNjsgfQotK2lmIHRlc3QgIiR7 YWNfY3Zfb2JqZXh0K3NldH0iID0gc2V0OyB0aGVuCi0rICAkYXNfZWNob19uICIoY2FjaGVkKSAi ID4mNgotK2Vsc2UKLSsgIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotKy8qIGNvbmZk ZWZzLmguICAqLwotK19BQ0VPRgotK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAot K2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLSsvKiBlbmQgY29uZmRlZnMuaC4gICov Ci0rCi0raW50Ci0rbWFpbiAoKQotK3sKLSsKLSsgIDsKLSsgIHJldHVybiAwOwotK30KLStfQUNF T0YKLStybSAtZiBjb25mdGVzdC5vIGNvbmZ0ZXN0Lm9iagotK2lmIHsgKGFjX3RyeT0iJGFjX2Nv bXBpbGUiCi0rY2FzZSAiKCgkYWNfdHJ5IiBpbgotKyAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190 cnlfZWNobz1cJGFjX3RyeTs7Ci0rICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKLStlc2FjCi0r ZXZhbCBhY190cnlfZWNobz0iXCJcJGFzX21lOiRMSU5FTk86ICRhY190cnlfZWNob1wiIgotKyRh c19lY2hvICIkYWNfdHJ5X2VjaG8iKSA+JjUKLSsgIChldmFsICIkYWNfY29tcGlsZSIpIDI+JjUK LSsgIGFjX3N0YXR1cz0kPwotKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNf c3RhdHVzIiA+JjUKLSsgIChleGl0ICRhY19zdGF0dXMpOyB9OyB0aGVuCi0rICBmb3IgYWNfZmls ZSBpbiBjb25mdGVzdC5vIGNvbmZ0ZXN0Lm9iaiBjb25mdGVzdC4qOyBkbwotKyAgdGVzdCAtZiAi JGFjX2ZpbGUiIHx8IGNvbnRpbnVlOwotKyAgY2FzZSAkYWNfZmlsZSBpbgotKyAgICAqLiRhY19l eHQgfCAqLnhjb2ZmIHwgKi50ZHMgfCAqLmQgfCAqLnBkYiB8ICoueFNZTSB8ICouYmIgfCAqLmJi ZyB8ICoubWFwIHwgKi5pbmYgfCAqLmRTWU0gKSA7OwotKyAgICAqKSBhY19jdl9vYmpleHQ9YGV4 cHIgIiRhY19maWxlIiA6ICcuKlwuXCguKlwpJ2AKLSsgICAgICAgYnJlYWs7OwotKyAgZXNhYwot K2RvbmUKLStlbHNlCi0rICAkYXNfZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+ JjUKLStzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1Ci0rCi0reyB7ICRhc19lY2hv ICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IGluIFxgJGFjX3B3ZCc6IiA+JjUKLSskYXNfZWNobyAi JGFzX21lOiBlcnJvcjogaW4gXGAkYWNfcHdkJzoiID4mMjt9Ci0reyB7ICRhc19lY2hvICIkYXNf bWU6JExJTkVOTzogZXJyb3I6IGNhbm5vdCBjb21wdXRlIHN1ZmZpeCBvZiBvYmplY3QgZmlsZXM6 IGNhbm5vdCBjb21waWxlCi0rU2VlIFxgY29uZmlnLmxvZycgZm9yIG1vcmUgZGV0YWlscy4iID4m NQotKyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBjYW5ub3QgY29tcHV0ZSBzdWZmaXggb2Ygb2Jq ZWN0IGZpbGVzOiBjYW5ub3QgY29tcGlsZQotK1NlZSBcYGNvbmZpZy5sb2cnIGZvciBtb3JlIGRl dGFpbHMuIiA+JjI7fQotKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfTsgfQotK2ZpCi0rCi0r cm0gLWYgY29uZnRlc3QuJGFjX2N2X29iamV4dCBjb25mdGVzdC4kYWNfZXh0Ci0rZmkKLSt7ICRh c19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3Zfb2JqZXh0IiA+JjUKLSskYXNf ZWNobyAiJGFjX2N2X29iamV4dCIgPiY2OyB9Ci0rT0JKRVhUPSRhY19jdl9vYmpleHQKLSthY19v YmpleHQ9JE9CSkVYVAotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyB3aGV0 aGVyIHdlIGFyZSB1c2luZyB0aGUgR05VIEMrKyBjb21waWxlciIgPiY1Ci0rJGFzX2VjaG9fbiAi Y2hlY2tpbmcgd2hldGhlciB3ZSBhcmUgdXNpbmcgdGhlIEdOVSBDKysgY29tcGlsZXIuLi4gIiA+ JjY7IH0KLStpZiB0ZXN0ICIke2FjX2N2X2N4eF9jb21waWxlcl9nbnUrc2V0fSIgPSBzZXQ7IHRo ZW4KLSsgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci0rZWxzZQotKyAgY2F0ID5jb25mdGVz dC4kYWNfZXh0IDw8X0FDRU9GCi0rLyogY29uZmRlZnMuaC4gICovCi0rX0FDRU9GCi0rY2F0IGNv bmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Ci0rY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9B Q0VPRgotKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLSsKLStpbnQKLSttYWluICgpCi0rewotKyNp Zm5kZWYgX19HTlVDX18KLSsgICAgICAgY2hva2UgbWUKLSsjZW5kaWYKLSsKLSsgIDsKLSsgIHJl dHVybiAwOwotK30KLStfQUNFT0YKLStybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0Ci0raWYgeyAo YWNfdHJ5PSIkYWNfY29tcGlsZSIKLStjYXNlICIoKCRhY190cnkiIGluCi0rICAqXCIqIHwgKlxg KiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKLSsgICopIGFjX3RyeV9lY2hvPSRhY190 cnk7OwotK2VzYWMKLStldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3Ry eV9lY2hvXCIiCi0rJGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4mNQotKyAgKGV2YWwgIiRhY19j b21waWxlIikgMj5jb25mdGVzdC5lcjEKLSsgIGFjX3N0YXR1cz0kPwotKyAgZ3JlcCAtdiAnXiAq KycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKLSsgIHJtIC1mIGNvbmZ0ZXN0LmVyMQotKyAg Y2F0IGNvbmZ0ZXN0LmVyciA+JjUKLSsgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0g JGFjX3N0YXR1cyIgPiY1Ci0rICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJiB7Ci0rCSB0ZXN0IC16 ICIkYWNfY3h4X3dlcnJvcl9mbGFnIiB8fAotKwkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgotKyAg ICAgICB9ICYmIHRlc3QgLXMgY29uZnRlc3QuJGFjX29iamV4dDsgdGhlbgotKyAgYWNfY29tcGls ZXJfZ251PXllcwotK2Vsc2UKLSsgICRhc19lY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdh czoiID4mNQotK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKLSsKLSsJYWNfY29t cGlsZXJfZ251PW5vCi0rZmkKLSsKLStybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4k YWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKLSthY19jdl9jeHhfY29tcGlsZXJfZ251PSRhY19j b21waWxlcl9nbnUKLSsKLStmaQotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6 ICRhY19jdl9jeHhfY29tcGlsZXJfZ251IiA+JjUKLSskYXNfZWNobyAiJGFjX2N2X2N4eF9jb21w aWxlcl9nbnUiID4mNjsgfQotK2lmIHRlc3QgJGFjX2NvbXBpbGVyX2dudSA9IHllczsgdGhlbgot KyAgR1hYPXllcwotK2Vsc2UKLSsgIEdYWD0KLStmaQotK2FjX3Rlc3RfQ1hYRkxBR1M9JHtDWFhG TEFHUytzZXR9Ci0rYWNfc2F2ZV9DWFhGTEFHUz0kQ1hYRkxBR1MKLSt7ICRhc19lY2hvICIkYXNf bWU6JExJTkVOTzogY2hlY2tpbmcgd2hldGhlciAkQ1hYIGFjY2VwdHMgLWciID4mNQotKyRhc19l Y2hvX24gImNoZWNraW5nIHdoZXRoZXIgJENYWCBhY2NlcHRzIC1nLi4uICIgPiY2OyB9Ci0raWYg dGVzdCAiJHthY19jdl9wcm9nX2N4eF9nK3NldH0iID0gc2V0OyB0aGVuCi0rICAkYXNfZWNob19u ICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsgIGFjX3NhdmVfY3h4X3dlcnJvcl9mbGFnPSRhY19j eHhfd2Vycm9yX2ZsYWcKLSsgICBhY19jeHhfd2Vycm9yX2ZsYWc9eWVzCi0rICAgYWNfY3ZfcHJv Z19jeHhfZz1ubwotKyAgIENYWEZMQUdTPSItZyIKLSsgICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQg PDxfQUNFT0YKLSsvKiBjb25mZGVmcy5oLiAgKi8KLStfQUNFT0YKLStjYXQgY29uZmRlZnMuaCA+ PmNvbmZ0ZXN0LiRhY19leHQKLStjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0rLyog ZW5kIGNvbmZkZWZzLmguICAqLwotKwotK2ludAotK21haW4gKCkKLSt7Ci0rCi0rICA7Ci0rICBy ZXR1cm4gMDsKLSt9Ci0rX0FDRU9GCi0rcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dAotK2lmIHsg KGFjX3RyeT0iJGFjX2NvbXBpbGUiCi0rY2FzZSAiKCgkYWNfdHJ5IiBpbgotKyAgKlwiKiB8ICpc YCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7Ci0rICAqKSBhY190cnlfZWNobz0kYWNf dHJ5OzsKLStlc2FjCi0rZXZhbCBhY190cnlfZWNobz0iXCJcJGFzX21lOiRMSU5FTk86ICRhY190 cnlfZWNob1wiIgotKyRhc19lY2hvICIkYWNfdHJ5X2VjaG8iKSA+JjUKLSsgIChldmFsICIkYWNf Y29tcGlsZSIpIDI+Y29uZnRlc3QuZXIxCi0rICBhY19zdGF0dXM9JD8KLSsgIGdyZXAgLXYgJ14g KisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCi0rICBybSAtZiBjb25mdGVzdC5lcjEKLSsg IGNhdCBjb25mdGVzdC5lcnIgPiY1Ci0rICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9 ICRhY19zdGF0dXMiID4mNQotKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYgewotKwkgdGVzdCAt eiAiJGFjX2N4eF93ZXJyb3JfZmxhZyIgfHwKLSsJIHRlc3QgISAtcyBjb25mdGVzdC5lcnIKLSsg ICAgICAgfSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0LiRhY19vYmpleHQ7IHRoZW4KLSsgIGFjX2N2X3By b2dfY3h4X2c9eWVzCi0rZWxzZQotKyAgJGFzX2VjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0g d2FzOiIgPiY1Ci0rc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQotKwotKwlDWFhG TEFHUz0iIgotKyAgICAgIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotKy8qIGNvbmZk ZWZzLmguICAqLwotK19BQ0VPRgotK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAot K2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLSsvKiBlbmQgY29uZmRlZnMuaC4gICov Ci0rCi0raW50Ci0rbWFpbiAoKQotK3sKLSsKLSsgIDsKLSsgIHJldHVybiAwOwotK30KLStfQUNF T0YKLStybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0Ci0raWYgeyAoYWNfdHJ5PSIkYWNfY29tcGls ZSIKLStjYXNlICIoKCRhY190cnkiIGluCi0rICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9l Y2hvPVwkYWNfdHJ5OzsKLSsgICopIGFjX3RyeV9lY2hvPSRhY190cnk7OwotK2VzYWMKLStldmFs IGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCi0rJGFzX2Vj aG8gIiRhY190cnlfZWNobyIpID4mNQotKyAgKGV2YWwgIiRhY19jb21waWxlIikgMj5jb25mdGVz dC5lcjEKLSsgIGFjX3N0YXR1cz0kPwotKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5j b25mdGVzdC5lcnIKLSsgIHJtIC1mIGNvbmZ0ZXN0LmVyMQotKyAgY2F0IGNvbmZ0ZXN0LmVyciA+ JjUKLSsgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0r ICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJiB7Ci0rCSB0ZXN0IC16ICIkYWNfY3h4X3dlcnJvcl9m bGFnIiB8fAotKwkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgotKyAgICAgICB9ICYmIHRlc3QgLXMg Y29uZnRlc3QuJGFjX29iamV4dDsgdGhlbgotKyAgOgotK2Vsc2UKLSsgICRhc19lY2hvICIkYXNf bWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQotK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFj X2V4dCA+JjUKLSsKLSsJYWNfY3h4X3dlcnJvcl9mbGFnPSRhY19zYXZlX2N4eF93ZXJyb3JfZmxh ZwotKwkgQ1hYRkxBR1M9Ii1nIgotKwkgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0r LyogY29uZmRlZnMuaC4gICovCi0rX0FDRU9GCi0rY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4k YWNfZXh0Ci0rY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotKy8qIGVuZCBjb25mZGVm cy5oLiAgKi8KLSsKLStpbnQKLSttYWluICgpCi0rewotKwotKyAgOwotKyAgcmV0dXJuIDA7Ci0r fQotK19BQ0VPRgotK3JtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQKLStpZiB7IChhY190cnk9IiRh Y19jb21waWxlIgotK2Nhc2UgIigoJGFjX3RyeSIgaW4KLSsgICpcIiogfCAqXGAqIHwgKlxcKikg YWNfdHJ5X2VjaG89XCRhY190cnk7OwotKyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7Ci0rZXNh YwotK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIK LSskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1Ci0rICAoZXZhbCAiJGFjX2NvbXBpbGUiKSAy PmNvbmZ0ZXN0LmVyMQotKyAgYWNfc3RhdHVzPSQ/Ci0rICBncmVwIC12ICdeICorJyBjb25mdGVz dC5lcjEgPmNvbmZ0ZXN0LmVycgotKyAgcm0gLWYgY29uZnRlc3QuZXIxCi0rICBjYXQgY29uZnRl c3QuZXJyID4mNQotKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVz IiA+JjUKLSsgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmIHsKLSsJIHRlc3QgLXogIiRhY19jeHhf d2Vycm9yX2ZsYWciIHx8Ci0rCSB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCi0rICAgICAgIH0gJiYg dGVzdCAtcyBjb25mdGVzdC4kYWNfb2JqZXh0OyB0aGVuCi0rICBhY19jdl9wcm9nX2N4eF9nPXll cwotK2Vsc2UKLSsgICRhc19lY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQot K3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKLSsKLSsKLStmaQotKwotK3JtIC1m IGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAot K2ZpCi0rCi0rcm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25m dGVzdC4kYWNfZXh0Ci0rZmkKLSsKLStybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4k YWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKLSsgICBhY19jeHhfd2Vycm9yX2ZsYWc9JGFjX3Nh dmVfY3h4X3dlcnJvcl9mbGFnCi0rZmkKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVz dWx0OiAkYWNfY3ZfcHJvZ19jeHhfZyIgPiY1Ci0rJGFzX2VjaG8gIiRhY19jdl9wcm9nX2N4eF9n IiA+JjY7IH0KLStpZiB0ZXN0ICIkYWNfdGVzdF9DWFhGTEFHUyIgPSBzZXQ7IHRoZW4KLSsgIENY WEZMQUdTPSRhY19zYXZlX0NYWEZMQUdTCi0rZWxpZiB0ZXN0ICRhY19jdl9wcm9nX2N4eF9nID0g eWVzOyB0aGVuCi0rICBpZiB0ZXN0ICIkR1hYIiA9IHllczsgdGhlbgotKyAgICBDWFhGTEFHUz0i LWcgLU8yIgotKyAgZWxzZQotKyAgICBDWFhGTEFHUz0iLWciCi0rICBmaQotK2Vsc2UKLSsgIGlm IHRlc3QgIiRHWFgiID0geWVzOyB0aGVuCi0rICAgIENYWEZMQUdTPSItTzIiCi0rICBlbHNlCi0r ICAgIENYWEZMQUdTPQotKyAgZmkKLStmaQotK2FjX2V4dD1jCi0rYWNfY3BwPSckQ1BQICRDUFBG TEFHUycKLSthY19jb21waWxlPSckQ0MgLWMgJENGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFj X2V4dCA+JjUnCi0rYWNfbGluaz0nJENDIC1vIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAkQ0ZMQUdTICRD UFBGTEFHUyAkTERGTEFHUyBjb25mdGVzdC4kYWNfZXh0ICRMSUJTID4mNScKLSthY19jb21waWxl cl9nbnU9JGFjX2N2X2NfY29tcGlsZXJfZ251Ci0rREVQRElSPSIke2FtX19sZWFkaW5nX2RvdH1k ZXBzIgotKwotK2FjX2NvbmZpZ19jb21tYW5kcz0iJGFjX2NvbmZpZ19jb21tYW5kcyBkZXBmaWxl cyIKLSsKLSsKLSthbV9tYWtlPSR7TUFLRS1tYWtlfQotK2NhdCA+IGNvbmZpbmMgPDwgJ0VORCcK LSthbV9fZG9pdDoKLSsJQGVjaG8gZG9uZQotKy5QSE9OWTogYW1fX2RvaXQKLStFTkQKLSsjIElm IHdlIGRvbid0IGZpbmQgYW4gaW5jbHVkZSBkaXJlY3RpdmUsIGp1c3QgY29tbWVudCBvdXQgdGhl IGNvZGUuCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciBzdHlsZSBv ZiBpbmNsdWRlIHVzZWQgYnkgJGFtX21ha2UiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIGZv ciBzdHlsZSBvZiBpbmNsdWRlIHVzZWQgYnkgJGFtX21ha2UuLi4gIiA+JjY7IH0KLSthbV9faW5j bHVkZT0iIyIKLSthbV9fcXVvdGU9Ci0rX2FtX3Jlc3VsdD1ub25lCi0rIyBGaXJzdCB0cnkgR05V IG1ha2Ugc3R5bGUgaW5jbHVkZS4KLStlY2hvICJpbmNsdWRlIGNvbmZpbmMiID4gY29uZm1mCi0r IyBXZSBncmVwIG91dCBgRW50ZXJpbmcgZGlyZWN0b3J5JyBhbmQgYExlYXZpbmcgZGlyZWN0b3J5 JwotKyMgbWVzc2FnZXMgd2hpY2ggY2FuIG9jY3VyIGlmIGB3JyBlbmRzIHVwIGluIE1BS0VGTEFH Uy4KLSsjIEluIHBhcnRpY3VsYXIgd2UgZG9uJ3QgbG9vayBhdCBgXm1ha2U6JyBiZWNhdXNlIEdO VSBtYWtlIG1pZ2h0Ci0rIyBiZSBpbnZva2VkIHVuZGVyIHNvbWUgb3RoZXIgbmFtZSAodXN1YWxs eSAiZ21ha2UiKSwgaW4gd2hpY2gKLSsjIGNhc2UgaXQgcHJpbnRzIGl0cyBuZXcgbmFtZSBpbnN0 ZWFkIG9mIGBtYWtlJy4KLStpZiB0ZXN0ICJgJGFtX21ha2UgLXMgLWYgY29uZm1mIDI+IC9kZXYv bnVsbCB8IGdyZXAgLXYgJ2luZyBkaXJlY3RvcnknYCIgPSAiZG9uZSI7IHRoZW4KLSsgICBhbV9f aW5jbHVkZT1pbmNsdWRlCi0rICAgYW1fX3F1b3RlPQotKyAgIF9hbV9yZXN1bHQ9R05VCi0rZmkK LSsjIE5vdyB0cnkgQlNEIG1ha2Ugc3R5bGUgaW5jbHVkZS4KLStpZiB0ZXN0ICIkYW1fX2luY2x1 ZGUiID0gIiMiOyB0aGVuCi0rICAgZWNobyAnLmluY2x1ZGUgImNvbmZpbmMiJyA+IGNvbmZtZgot KyAgIGlmIHRlc3QgImAkYW1fbWFrZSAtcyAtZiBjb25mbWYgMj4gL2Rldi9udWxsYCIgPSAiZG9u ZSI7IHRoZW4KLSsgICAgICBhbV9faW5jbHVkZT0uaW5jbHVkZQotKyAgICAgIGFtX19xdW90ZT0i XCIiCi0rICAgICAgX2FtX3Jlc3VsdD1CU0QKLSsgICBmaQotK2ZpCi0rCi0rCi0reyAkYXNfZWNo byAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJF9hbV9yZXN1bHQiID4mNQotKyRhc19lY2hvICIk X2FtX3Jlc3VsdCIgPiY2OyB9Ci0rcm0gLWYgY29uZmluYyBjb25mbWYKLSsKLSsjIENoZWNrIHdo ZXRoZXIgLS1lbmFibGUtZGVwZW5kZW5jeS10cmFja2luZyB3YXMgZ2l2ZW4uCi0raWYgdGVzdCAi JHtlbmFibGVfZGVwZW5kZW5jeV90cmFja2luZytzZXR9IiA9IHNldDsgdGhlbgotKyAgZW5hYmxl dmFsPSRlbmFibGVfZGVwZW5kZW5jeV90cmFja2luZzsKLStmaQotKwotK2lmIHRlc3QgIngkZW5h YmxlX2RlcGVuZGVuY3lfdHJhY2tpbmciICE9IHhubzsgdGhlbgotKyAgYW1fZGVwY29tcD0iJGFj X2F1eF9kaXIvZGVwY29tcCIKLSsgIEFNREVQQkFDS1NMQVNIPSdcJwotK2ZpCi0rIGlmIHRlc3Qg IngkZW5hYmxlX2RlcGVuZGVuY3lfdHJhY2tpbmciICE9IHhubzsgdGhlbgotKyAgQU1ERVBfVFJV RT0KLSsgIEFNREVQX0ZBTFNFPScjJwotK2Vsc2UKLSsgIEFNREVQX1RSVUU9JyMnCi0rICBBTURF UF9GQUxTRT0KLStmaQotKwotKwotKwotK2RlcGNjPSIkQ1hYIiAgYW1fY29tcGlsZXJfbGlzdD0K LSsKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZGVwZW5kZW5jeSBzdHls ZSBvZiAkZGVwY2MiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIGRlcGVuZGVuY3kgc3R5bGUg b2YgJGRlcGNjLi4uICIgPiY2OyB9Ci0raWYgdGVzdCAiJHthbV9jdl9DWFhfZGVwZW5kZW5jaWVz X2NvbXBpbGVyX3R5cGUrc2V0fSIgPSBzZXQ7IHRoZW4KLSsgICRhc19lY2hvX24gIihjYWNoZWQp ICIgPiY2Ci0rZWxzZQotKyAgaWYgdGVzdCAteiAiJEFNREVQX1RSVUUiICYmIHRlc3QgLWYgIiRh bV9kZXBjb21wIjsgdGhlbgotKyAgIyBXZSBtYWtlIGEgc3ViZGlyIGFuZCBkbyB0aGUgdGVzdHMg dGhlcmUuICBPdGhlcndpc2Ugd2UgY2FuIGVuZCB1cAotKyAgIyBtYWtpbmcgYm9ndXMgZmlsZXMg dGhhdCB3ZSBkb24ndCBrbm93IGFib3V0IGFuZCBuZXZlciByZW1vdmUuICBGb3IKLSsgICMgaW5z dGFuY2UgaXQgd2FzIHJlcG9ydGVkIHRoYXQgb24gSFAtVVggdGhlIGdjYyB0ZXN0IHdpbGwgZW5k IHVwCi0rICAjIG1ha2luZyBhIGR1bW15IGZpbGUgbmFtZWQgYEQnIC0tIGJlY2F1c2UgYC1NRCcg bWVhbnMgYHB1dCB0aGUgb3V0cHV0Ci0rICAjIGluIEQnLgotKyAgbWtkaXIgY29uZnRlc3QuZGly Ci0rICAjIENvcHkgZGVwY29tcCB0byBzdWJkaXIgYmVjYXVzZSBvdGhlcndpc2Ugd2Ugd29uJ3Qg ZmluZCBpdCBpZiB3ZSdyZQotKyAgIyB1c2luZyBhIHJlbGF0aXZlIGRpcmVjdG9yeS4KLSsgIGNw ICIkYW1fZGVwY29tcCIgY29uZnRlc3QuZGlyCi0rICBjZCBjb25mdGVzdC5kaXIKLSsgICMgV2Ug d2lsbCBidWlsZCBvYmplY3RzIGFuZCBkZXBlbmRlbmNpZXMgaW4gYSBzdWJkaXJlY3RvcnkgYmVj YXVzZQotKyAgIyBpdCBoZWxwcyB0byBkZXRlY3QgaW5hcHBsaWNhYmxlIGRlcGVuZGVuY3kgbW9k ZXMuICBGb3IgaW5zdGFuY2UKLSsgICMgYm90aCBUcnU2NCdzIGNjIGFuZCBJQ0Mgc3VwcG9ydCAt TUQgdG8gb3V0cHV0IGRlcGVuZGVuY2llcyBhcyBhCi0rICAjIHNpZGUgZWZmZWN0IG9mIGNvbXBp bGF0aW9uLCBidXQgSUNDIHdpbGwgcHV0IHRoZSBkZXBlbmRlbmNpZXMgaW4KLSsgICMgdGhlIGN1 cnJlbnQgZGlyZWN0b3J5IHdoaWxlIFRydTY0IHdpbGwgcHV0IHRoZW0gaW4gdGhlIG9iamVjdAot KyAgIyBkaXJlY3RvcnkuCi0rICBta2RpciBzdWIKLSsKLSsgIGFtX2N2X0NYWF9kZXBlbmRlbmNp ZXNfY29tcGlsZXJfdHlwZT1ub25lCi0rICBpZiB0ZXN0ICIkYW1fY29tcGlsZXJfbGlzdCIgPSAi IjsgdGhlbgotKyAgICAgYW1fY29tcGlsZXJfbGlzdD1gc2VkIC1uICdzL14jKlwoW2EtekEtWjAt OV0qXCkpJC9cMS9wJyA8IC4vZGVwY29tcGAKLSsgIGZpCi0rICBmb3IgZGVwbW9kZSBpbiAkYW1f Y29tcGlsZXJfbGlzdDsgZG8KLSsgICAgIyBTZXR1cCBhIHNvdXJjZSB3aXRoIG1hbnkgZGVwZW5k ZW5jaWVzLCBiZWNhdXNlIHNvbWUgY29tcGlsZXJzCi0rICAgICMgbGlrZSB0byB3cmFwIGxhcmdl IGRlcGVuZGVuY3kgbGlzdHMgb24gY29sdW1uIDgwICh3aXRoIFwpLCBhbmQKLSsgICAgIyB3ZSBz aG91bGQgbm90IGNob29zZSBhIGRlcGNvbXAgbW9kZSB3aGljaCBpcyBjb25mdXNlZCBieSB0aGlz LgotKyAgICAjCi0rICAgICMgV2UgbmVlZCB0byByZWNyZWF0ZSB0aGVzZSBmaWxlcyBmb3IgZWFj aCB0ZXN0LCBhcyB0aGUgY29tcGlsZXIgbWF5Ci0rICAgICMgb3ZlcndyaXRlIHNvbWUgb2YgdGhl bSB3aGVuIHRlc3Rpbmcgd2l0aCBvYnNjdXJlIGNvbW1hbmQgbGluZXMuCi0rICAgICMgVGhpcyBo YXBwZW5zIGF0IGxlYXN0IHdpdGggdGhlIEFJWCBDIGNvbXBpbGVyLgotKyAgICA6ID4gc3ViL2Nv bmZ0ZXN0LmMKLSsgICAgZm9yIGkgaW4gMSAyIDMgNCA1IDY7IGRvCi0rICAgICAgZWNobyAnI2lu Y2x1ZGUgImNvbmZ0c3QnJGknLmgiJyA+PiBzdWIvY29uZnRlc3QuYwotKyAgICAgICMgVXNpbmcg YDogPiBzdWIvY29uZnRzdCRpLmgnIGNyZWF0ZXMgb25seSBzdWIvY29uZnRzdDEuaCB3aXRoCi0r ICAgICAgIyBTb2xhcmlzIDgncyB7L3Vzcix9L2Jpbi9zaC4KLSsgICAgICB0b3VjaCBzdWIvY29u ZnRzdCRpLmgKLSsgICAgZG9uZQotKyAgICBlY2hvICIke2FtX19pbmNsdWRlfSAke2FtX19xdW90 ZX1zdWIvY29uZnRlc3QuUG8ke2FtX19xdW90ZX0iID4gY29uZm1mCi0rCi0rICAgIGNhc2UgJGRl cG1vZGUgaW4KLSsgICAgbm9zaWRlZWZmZWN0KQotKyAgICAgICMgYWZ0ZXIgdGhpcyB0YWcsIG1l Y2hhbmlzbXMgYXJlIG5vdCBieSBzaWRlLWVmZmVjdCwgc28gdGhleSdsbAotKyAgICAgICMgb25s eSBiZSB1c2VkIHdoZW4gZXhwbGljaXRseSByZXF1ZXN0ZWQKLSsgICAgICBpZiB0ZXN0ICJ4JGVu YWJsZV9kZXBlbmRlbmN5X3RyYWNraW5nIiA9IHh5ZXM7IHRoZW4KLSsJY29udGludWUKLSsgICAg ICBlbHNlCi0rCWJyZWFrCi0rICAgICAgZmkKLSsgICAgICA7OwotKyAgICBub25lKSBicmVhayA7 OwotKyAgICBlc2FjCi0rICAgICMgV2UgY2hlY2sgd2l0aCBgLWMnIGFuZCBgLW8nIGZvciB0aGUg c2FrZSBvZiB0aGUgImRhc2htc3Rkb3V0IgotKyAgICAjIG1vZGUuICBJdCB0dXJucyBvdXQgdGhh dCB0aGUgU3VuUHJvIEMrKyBjb21waWxlciBkb2VzIG5vdCBwcm9wZXJseQotKyAgICAjIGhhbmRs ZSBgLU0gLW8nLCBhbmQgd2UgbmVlZCB0byBkZXRlY3QgdGhpcy4KLSsgICAgaWYgZGVwbW9kZT0k ZGVwbW9kZSBcCi0rICAgICAgIHNvdXJjZT1zdWIvY29uZnRlc3QuYyBvYmplY3Q9c3ViL2NvbmZ0 ZXN0LiR7T0JKRVhULW99IFwKLSsgICAgICAgZGVwZmlsZT1zdWIvY29uZnRlc3QuUG8gdG1wZGVw ZmlsZT1zdWIvY29uZnRlc3QuVFBvIFwKLSsgICAgICAgJFNIRUxMIC4vZGVwY29tcCAkZGVwY2Mg LWMgLW8gc3ViL2NvbmZ0ZXN0LiR7T0JKRVhULW99IHN1Yi9jb25mdGVzdC5jIFwKLSsgICAgICAg ICA+L2Rldi9udWxsIDI+Y29uZnRlc3QuZXJyICYmCi0rICAgICAgIGdyZXAgc3ViL2NvbmZ0c3Qx Lmggc3ViL2NvbmZ0ZXN0LlBvID4gL2Rldi9udWxsIDI+JjEgJiYKLSsgICAgICAgZ3JlcCBzdWIv Y29uZnRzdDYuaCBzdWIvY29uZnRlc3QuUG8gPiAvZGV2L251bGwgMj4mMSAmJgotKyAgICAgICBn cmVwIHN1Yi9jb25mdGVzdC4ke09CSkVYVC1vfSBzdWIvY29uZnRlc3QuUG8gPiAvZGV2L251bGwg Mj4mMSAmJgotKyAgICAgICAke01BS0UtbWFrZX0gLXMgLWYgY29uZm1mID4gL2Rldi9udWxsIDI+ JjE7IHRoZW4KLSsgICAgICAjIGljYyBkb2Vzbid0IGNob2tlIG9uIHVua25vd24gb3B0aW9ucywg aXQgd2lsbCBqdXN0IGlzc3VlIHdhcm5pbmdzCi0rICAgICAgIyBvciByZW1hcmtzIChldmVuIHdp dGggLVdlcnJvcikuICBTbyB3ZSBncmVwIHN0ZGVyciBmb3IgYW55IG1lc3NhZ2UKLSsgICAgICAj IHRoYXQgc2F5cyBhbiBvcHRpb24gd2FzIGlnbm9yZWQgb3Igbm90IHN1cHBvcnRlZC4KLSsgICAg ICAjIFdoZW4gZ2l2ZW4gLU1QLCBpY2MgNy4wIGFuZCA3LjEgY29tcGxhaW4gdGh1c2x5OgotKyAg ICAgICMgICBpY2M6IENvbW1hbmQgbGluZSB3YXJuaW5nOiBpZ25vcmluZyBvcHRpb24gJy1NJzsg bm8gYXJndW1lbnQgcmVxdWlyZWQKLSsgICAgICAjIFRoZSBkaWFnbm9zaXMgY2hhbmdlZCBpbiBp Y2MgOC4wOgotKyAgICAgICMgICBpY2M6IENvbW1hbmQgbGluZSByZW1hcms6IG9wdGlvbiAnLU1Q JyBub3Qgc3VwcG9ydGVkCi0rICAgICAgaWYgKGdyZXAgJ2lnbm9yaW5nIG9wdGlvbicgY29uZnRl c3QuZXJyIHx8Ci0rICAgICAgICAgIGdyZXAgJ25vdCBzdXBwb3J0ZWQnIGNvbmZ0ZXN0LmVycikg Pi9kZXYvbnVsbCAyPiYxOyB0aGVuIDo7IGVsc2UKLSsgICAgICAgIGFtX2N2X0NYWF9kZXBlbmRl bmNpZXNfY29tcGlsZXJfdHlwZT0kZGVwbW9kZQotKyAgICAgICAgYnJlYWsKLSsgICAgICBmaQot KyAgICBmaQotKyAgZG9uZQotKwotKyAgY2QgLi4KLSsgIHJtIC1yZiBjb25mdGVzdC5kaXIKLStl bHNlCi0rICBhbV9jdl9DWFhfZGVwZW5kZW5jaWVzX2NvbXBpbGVyX3R5cGU9bm9uZQotK2ZpCi0r Ci0rZmkKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYW1fY3ZfQ1hYX2Rl cGVuZGVuY2llc19jb21waWxlcl90eXBlIiA+JjUKLSskYXNfZWNobyAiJGFtX2N2X0NYWF9kZXBl bmRlbmNpZXNfY29tcGlsZXJfdHlwZSIgPiY2OyB9Ci0rQ1hYREVQTU9ERT1kZXBtb2RlPSRhbV9j dl9DWFhfZGVwZW5kZW5jaWVzX2NvbXBpbGVyX3R5cGUKLSsKLSsgaWYKLSsgIHRlc3QgIngkZW5h YmxlX2RlcGVuZGVuY3lfdHJhY2tpbmciICE9IHhubyBcCi0rICAmJiB0ZXN0ICIkYW1fY3ZfQ1hY X2RlcGVuZGVuY2llc19jb21waWxlcl90eXBlIiA9IGdjYzM7IHRoZW4KLSsgIGFtX19mYXN0ZGVw Q1hYX1RSVUU9Ci0rICBhbV9fZmFzdGRlcENYWF9GQUxTRT0nIycKLStlbHNlCi0rICBhbV9fZmFz dGRlcENYWF9UUlVFPScjJwotKyAgYW1fX2Zhc3RkZXBDWFhfRkFMU0U9Ci0rZmkKLSsKLSsKLSth Y19leHQ9Y3BwCi0rYWNfY3BwPSckQ1hYQ1BQICRDUFBGTEFHUycKLSthY19jb21waWxlPSckQ1hY IC1jICRDWFhGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUnCi0rYWNfbGluaz0n JENYWCAtbyBjb25mdGVzdCRhY19leGVleHQgJENYWEZMQUdTICRDUFBGTEFHUyAkTERGTEFHUyBj b25mdGVzdC4kYWNfZXh0ICRMSUJTID4mNScKLSthY19jb21waWxlcl9nbnU9JGFjX2N2X2N4eF9j b21waWxlcl9nbnUKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgaG93IHRv IHJ1biB0aGUgQysrIHByZXByb2Nlc3NvciIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgaG93 IHRvIHJ1biB0aGUgQysrIHByZXByb2Nlc3Nvci4uLiAiID4mNjsgfQotK2lmIHRlc3QgLXogIiRD WFhDUFAiOyB0aGVuCi0rICBpZiB0ZXN0ICIke2FjX2N2X3Byb2dfQ1hYQ1BQK3NldH0iID0gc2V0 OyB0aGVuCi0rICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsgICAgICAjIERv dWJsZSBxdW90ZXMgYmVjYXVzZSBDWFhDUFAgbmVlZHMgdG8gYmUgZXhwYW5kZWQKLSsgICAgZm9y IENYWENQUCBpbiAiJENYWCAtRSIgIi9saWIvY3BwIgotKyAgICBkbwotKyAgICAgIGFjX3ByZXBy b2Nfb2s9ZmFsc2UKLStmb3IgYWNfY3h4X3ByZXByb2Nfd2Fybl9mbGFnIGluICcnIHllcwotK2Rv Ci0rICAjIFVzZSBhIGhlYWRlciBmaWxlIHRoYXQgY29tZXMgd2l0aCBnY2MsIHNvIGNvbmZpZ3Vy aW5nIGdsaWJjCi0rICAjIHdpdGggYSBmcmVzaCBjcm9zcy1jb21waWxlciB3b3Jrcy4KLSsgICMg UHJlZmVyIDxsaW1pdHMuaD4gdG8gPGFzc2VydC5oPiBpZiBfX1NURENfXyBpcyBkZWZpbmVkLCBz aW5jZQotKyAgIyA8bGltaXRzLmg+IGV4aXN0cyBldmVuIG9uIGZyZWVzdGFuZGluZyBjb21waWxl cnMuCi0rICAjIE9uIHRoZSBOZVhULCBjYyAtRSBydW5zIHRoZSBjb2RlIHRocm91Z2ggdGhlIGNv bXBpbGVyJ3MgcGFyc2VyLAotKyAgIyBub3QganVzdCB0aHJvdWdoIGNwcC4gIlN5bnRheCBlcnJv ciIgaXMgaGVyZSB0byBjYXRjaCB0aGlzIGNhc2UuCi0rICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQg PDxfQUNFT0YKLSsvKiBjb25mZGVmcy5oLiAgKi8KLStfQUNFT0YKLStjYXQgY29uZmRlZnMuaCA+ PmNvbmZ0ZXN0LiRhY19leHQKLStjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0rLyog ZW5kIGNvbmZkZWZzLmguICAqLwotKyNpZmRlZiBfX1NURENfXwotKyMgaW5jbHVkZSA8bGltaXRz Lmg+Ci0rI2Vsc2UKLSsjIGluY2x1ZGUgPGFzc2VydC5oPgotKyNlbmRpZgotKwkJICAgICBTeW50 YXggZXJyb3IKLStfQUNFT0YKLStpZiB7IChhY190cnk9IiRhY19jcHAgY29uZnRlc3QuJGFjX2V4 dCIKLStjYXNlICIoKCRhY190cnkiIGluCi0rICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9l Y2hvPVwkYWNfdHJ5OzsKLSsgICopIGFjX3RyeV9lY2hvPSRhY190cnk7OwotK2VzYWMKLStldmFs IGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCi0rJGFzX2Vj aG8gIiRhY190cnlfZWNobyIpID4mNQotKyAgKGV2YWwgIiRhY19jcHAgY29uZnRlc3QuJGFjX2V4 dCIpIDI+Y29uZnRlc3QuZXIxCi0rICBhY19zdGF0dXM9JD8KLSsgIGdyZXAgLXYgJ14gKisnIGNv bmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCi0rICBybSAtZiBjb25mdGVzdC5lcjEKLSsgIGNhdCBj b25mdGVzdC5lcnIgPiY1Ci0rICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19z dGF0dXMiID4mNQotKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gPi9kZXYvbnVsbCAmJiB7Ci0rCSB0 ZXN0IC16ICIkYWNfY3h4X3ByZXByb2Nfd2Fybl9mbGFnJGFjX2N4eF93ZXJyb3JfZmxhZyIgfHwK LSsJIHRlc3QgISAtcyBjb25mdGVzdC5lcnIKLSsgICAgICAgfTsgdGhlbgotKyAgOgotK2Vsc2UK LSsgICRhc19lY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQotK3NlZCAncy9e L3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKLSsKLSsgICMgQnJva2VuOiBmYWlscyBvbiB2YWxp ZCBpbnB1dC4KLStjb250aW51ZQotK2ZpCi0rCi0rcm0gLWYgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0 LiRhY19leHQKLSsKLSsgICMgT0ssIHdvcmtzIG9uIHNhbmUgY2FzZXMuICBOb3cgY2hlY2sgd2hl dGhlciBub25leGlzdGVudCBoZWFkZXJzCi0rICAjIGNhbiBiZSBkZXRlY3RlZCBhbmQgaG93Lgot KyAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0rLyogY29uZmRlZnMuaC4gICovCi0r X0FDRU9GCi0rY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Ci0rY2F0ID4+Y29uZnRl c3QuJGFjX2V4dCA8PF9BQ0VPRgotKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLSsjaW5jbHVkZSA8 YWNfbm9uZXhpc3RlbnQuaD4KLStfQUNFT0YKLStpZiB7IChhY190cnk9IiRhY19jcHAgY29uZnRl c3QuJGFjX2V4dCIKLStjYXNlICIoKCRhY190cnkiIGluCi0rICAqXCIqIHwgKlxgKiB8ICpcXCop IGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKLSsgICopIGFjX3RyeV9lY2hvPSRhY190cnk7OwotK2Vz YWMKLStldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIi Ci0rJGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4mNQotKyAgKGV2YWwgIiRhY19jcHAgY29uZnRl c3QuJGFjX2V4dCIpIDI+Y29uZnRlc3QuZXIxCi0rICBhY19zdGF0dXM9JD8KLSsgIGdyZXAgLXYg J14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCi0rICBybSAtZiBjb25mdGVzdC5lcjEK LSsgIGNhdCBjb25mdGVzdC5lcnIgPiY1Ci0rICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwk PyA9ICRhY19zdGF0dXMiID4mNQotKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gPi9kZXYvbnVsbCAm JiB7Ci0rCSB0ZXN0IC16ICIkYWNfY3h4X3ByZXByb2Nfd2Fybl9mbGFnJGFjX2N4eF93ZXJyb3Jf ZmxhZyIgfHwKLSsJIHRlc3QgISAtcyBjb25mdGVzdC5lcnIKLSsgICAgICAgfTsgdGhlbgotKyAg IyBCcm9rZW46IHN1Y2Nlc3Mgb24gaW52YWxpZCBpbnB1dC4KLStjb250aW51ZQotK2Vsc2UKLSsg ICRhc19lY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQotK3NlZCAncy9eL3wg LycgY29uZnRlc3QuJGFjX2V4dCA+JjUKLSsKLSsgICMgUGFzc2VzIGJvdGggdGVzdHMuCi0rYWNf cHJlcHJvY19vaz06Ci0rYnJlYWsKLStmaQotKwotK3JtIC1mIGNvbmZ0ZXN0LmVyciBjb25mdGVz dC4kYWNfZXh0Ci0rCi0rZG9uZQotKyMgQmVjYXVzZSBvZiBgYnJlYWsnLCBfQUNfUFJFUFJPQ19J RkVMU0UncyBjbGVhbmluZyBjb2RlIHdhcyBza2lwcGVkLgotK3JtIC1mIGNvbmZ0ZXN0LmVyciBj b25mdGVzdC4kYWNfZXh0Ci0raWYgJGFjX3ByZXByb2Nfb2s7IHRoZW4KLSsgIGJyZWFrCi0rZmkK LSsKLSsgICAgZG9uZQotKyAgICBhY19jdl9wcm9nX0NYWENQUD0kQ1hYQ1BQCi0rCi0rZmkKLSsg IENYWENQUD0kYWNfY3ZfcHJvZ19DWFhDUFAKLStlbHNlCi0rICBhY19jdl9wcm9nX0NYWENQUD0k Q1hYQ1BQCi0rZmkKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkQ1hYQ1BQ IiA+JjUKLSskYXNfZWNobyAiJENYWENQUCIgPiY2OyB9Ci0rYWNfcHJlcHJvY19vaz1mYWxzZQot K2ZvciBhY19jeHhfcHJlcHJvY193YXJuX2ZsYWcgaW4gJycgeWVzCi0rZG8KLSsgICMgVXNlIGEg aGVhZGVyIGZpbGUgdGhhdCBjb21lcyB3aXRoIGdjYywgc28gY29uZmlndXJpbmcgZ2xpYmMKLSsg ICMgd2l0aCBhIGZyZXNoIGNyb3NzLWNvbXBpbGVyIHdvcmtzLgotKyAgIyBQcmVmZXIgPGxpbWl0 cy5oPiB0byA8YXNzZXJ0Lmg+IGlmIF9fU1REQ19fIGlzIGRlZmluZWQsIHNpbmNlCi0rICAjIDxs aW1pdHMuaD4gZXhpc3RzIGV2ZW4gb24gZnJlZXN0YW5kaW5nIGNvbXBpbGVycy4KLSsgICMgT24g dGhlIE5lWFQsIGNjIC1FIHJ1bnMgdGhlIGNvZGUgdGhyb3VnaCB0aGUgY29tcGlsZXIncyBwYXJz ZXIsCi0rICAjIG5vdCBqdXN0IHRocm91Z2ggY3BwLiAiU3ludGF4IGVycm9yIiBpcyBoZXJlIHRv IGNhdGNoIHRoaXMgY2FzZS4KLSsgIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotKy8q IGNvbmZkZWZzLmguICAqLwotK19BQ0VPRgotK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFj X2V4dAotK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLSsvKiBlbmQgY29uZmRlZnMu aC4gICovCi0rI2lmZGVmIF9fU1REQ19fCi0rIyBpbmNsdWRlIDxsaW1pdHMuaD4KLSsjZWxzZQot KyMgaW5jbHVkZSA8YXNzZXJ0Lmg+Ci0rI2VuZGlmCi0rCQkgICAgIFN5bnRheCBlcnJvcgotK19B Q0VPRgotK2lmIHsgKGFjX3RyeT0iJGFjX2NwcCBjb25mdGVzdC4kYWNfZXh0IgotK2Nhc2UgIigo JGFjX3RyeSIgaW4KLSsgICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7 OwotKyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7Ci0rZXNhYwotK2V2YWwgYWNfdHJ5X2VjaG89 IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIKLSskYXNfZWNobyAiJGFjX3RyeV9l Y2hvIikgPiY1Ci0rICAoZXZhbCAiJGFjX2NwcCBjb25mdGVzdC4kYWNfZXh0IikgMj5jb25mdGVz dC5lcjEKLSsgIGFjX3N0YXR1cz0kPwotKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5j b25mdGVzdC5lcnIKLSsgIHJtIC1mIGNvbmZ0ZXN0LmVyMQotKyAgY2F0IGNvbmZ0ZXN0LmVyciA+ JjUKLSsgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0r ICAoZXhpdCAkYWNfc3RhdHVzKTsgfSA+L2Rldi9udWxsICYmIHsKLSsJIHRlc3QgLXogIiRhY19j eHhfcHJlcHJvY193YXJuX2ZsYWckYWNfY3h4X3dlcnJvcl9mbGFnIiB8fAotKwkgdGVzdCAhIC1z IGNvbmZ0ZXN0LmVycgotKyAgICAgICB9OyB0aGVuCi0rICA6Ci0rZWxzZQotKyAgJGFzX2VjaG8g IiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Ci0rc2VkICdzL14vfCAvJyBjb25mdGVz dC4kYWNfZXh0ID4mNQotKwotKyAgIyBCcm9rZW46IGZhaWxzIG9uIHZhbGlkIGlucHV0LgotK2Nv bnRpbnVlCi0rZmkKLSsKLStybSAtZiBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX2V4dAotKwot KyAgIyBPSywgd29ya3Mgb24gc2FuZSBjYXNlcy4gIE5vdyBjaGVjayB3aGV0aGVyIG5vbmV4aXN0 ZW50IGhlYWRlcnMKLSsgICMgY2FuIGJlIGRldGVjdGVkIGFuZCBob3cuCi0rICBjYXQgPmNvbmZ0 ZXN0LiRhY19leHQgPDxfQUNFT0YKLSsvKiBjb25mZGVmcy5oLiAgKi8KLStfQUNFT0YKLStjYXQg Y29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKLStjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8 X0FDRU9GCi0rLyogZW5kIGNvbmZkZWZzLmguICAqLwotKyNpbmNsdWRlIDxhY19ub25leGlzdGVu dC5oPgotK19BQ0VPRgotK2lmIHsgKGFjX3RyeT0iJGFjX2NwcCBjb25mdGVzdC4kYWNfZXh0Igot K2Nhc2UgIigoJGFjX3RyeSIgaW4KLSsgICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89 XCRhY190cnk7OwotKyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7Ci0rZXNhYwotK2V2YWwgYWNf dHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIKLSskYXNfZWNobyAi JGFjX3RyeV9lY2hvIikgPiY1Ci0rICAoZXZhbCAiJGFjX2NwcCBjb25mdGVzdC4kYWNfZXh0Iikg Mj5jb25mdGVzdC5lcjEKLSsgIGFjX3N0YXR1cz0kPwotKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRl c3QuZXIxID5jb25mdGVzdC5lcnIKLSsgIHJtIC1mIGNvbmZ0ZXN0LmVyMQotKyAgY2F0IGNvbmZ0 ZXN0LmVyciA+JjUKLSsgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1 cyIgPiY1Ci0rICAoZXhpdCAkYWNfc3RhdHVzKTsgfSA+L2Rldi9udWxsICYmIHsKLSsJIHRlc3Qg LXogIiRhY19jeHhfcHJlcHJvY193YXJuX2ZsYWckYWNfY3h4X3dlcnJvcl9mbGFnIiB8fAotKwkg dGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgotKyAgICAgICB9OyB0aGVuCi0rICAjIEJyb2tlbjogc3Vj Y2VzcyBvbiBpbnZhbGlkIGlucHV0LgotK2NvbnRpbnVlCi0rZWxzZQotKyAgJGFzX2VjaG8gIiRh c19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Ci0rc2VkICdzL14vfCAvJyBjb25mdGVzdC4k YWNfZXh0ID4mNQotKwotKyAgIyBQYXNzZXMgYm90aCB0ZXN0cy4KLSthY19wcmVwcm9jX29rPToK LSticmVhawotK2ZpCi0rCi0rcm0gLWYgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19leHQKLSsK LStkb25lCi0rIyBCZWNhdXNlIG9mIGBicmVhaycsIF9BQ19QUkVQUk9DX0lGRUxTRSdzIGNsZWFu aW5nIGNvZGUgd2FzIHNraXBwZWQuCi0rcm0gLWYgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19l eHQKLStpZiAkYWNfcHJlcHJvY19vazsgdGhlbgotKyAgOgotK2Vsc2UKLSsgIHsgeyAkYXNfZWNo byAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBpbiBcYCRhY19wd2QnOiIgPiY1Ci0rJGFzX2VjaG8g IiRhc19tZTogZXJyb3I6IGluIFxgJGFjX3B3ZCc6IiA+JjI7fQotK3sgeyAkYXNfZWNobyAiJGFz X21lOiRMSU5FTk86IGVycm9yOiBDKysgcHJlcHJvY2Vzc29yIFwiJENYWENQUFwiIGZhaWxzIHNh bml0eSBjaGVjawotK1NlZSBcYGNvbmZpZy5sb2cnIGZvciBtb3JlIGRldGFpbHMuIiA+JjUKLSsk YXNfZWNobyAiJGFzX21lOiBlcnJvcjogQysrIHByZXByb2Nlc3NvciBcIiRDWFhDUFBcIiBmYWls cyBzYW5pdHkgY2hlY2sKLStTZWUgXGBjb25maWcubG9nJyBmb3IgbW9yZSBkZXRhaWxzLiIgPiYy O30KLSsgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH07IH0KLStmaQotKwotK2FjX2V4dD1jCi0r YWNfY3BwPSckQ1BQICRDUFBGTEFHUycKLSthY19jb21waWxlPSckQ0MgLWMgJENGTEFHUyAkQ1BQ RkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUnCi0rYWNfbGluaz0nJENDIC1vIGNvbmZ0ZXN0JGFj X2V4ZWV4dCAkQ0ZMQUdTICRDUFBGTEFHUyAkTERGTEFHUyBjb25mdGVzdC4kYWNfZXh0ICRMSUJT ID4mNScKLSthY19jb21waWxlcl9nbnU9JGFjX2N2X2NfY29tcGlsZXJfZ251Ci0rCi0rQ1hYRkxB R1M9IiRzYXZlX0NYWEZMQUdTIgotKyMgRmluZCBhIGdvb2QgaW5zdGFsbCBwcm9ncmFtLiAgV2Ug cHJlZmVyIGEgQyBwcm9ncmFtIChmYXN0ZXIpLAotKyMgc28gb25lIHNjcmlwdCBpcyBhcyBnb29k IGFzIGFub3RoZXIuICBCdXQgYXZvaWQgdGhlIGJyb2tlbiBvcgotKyMgaW5jb21wYXRpYmxlIHZl cnNpb25zOgotKyMgU3lzViAvZXRjL2luc3RhbGwsIC91c3Ivc2Jpbi9pbnN0YWxsCi0rIyBTdW5P UyAvdXNyL2V0Yy9pbnN0YWxsCi0rIyBJUklYIC9zYmluL2luc3RhbGwKLSsjIEFJWCAvYmluL2lu c3RhbGwKLSsjIEFtaWdhT1MgL0MvaW5zdGFsbCwgd2hpY2ggaW5zdGFsbHMgYm9vdGJsb2NrcyBv biBmbG9wcHkgZGlzY3MKLSsjIEFJWCA0IC91c3IvYmluL2luc3RhbGxic2QsIHdoaWNoIGRvZXNu J3Qgd29yayB3aXRob3V0IGEgLWcgZmxhZwotKyMgQUZTIC91c3IvYWZzd3MvYmluL2luc3RhbGws IHdoaWNoIG1pc2hhbmRsZXMgbm9uZXhpc3RlbnQgYXJncwotKyMgU1ZSNCAvdXNyL3VjYi9pbnN0 YWxsLCB3aGljaCB0cmllcyB0byB1c2UgdGhlIG5vbmV4aXN0ZW50IGdyb3VwICJzdGFmZiIKLSsj IE9TLzIncyBzeXN0ZW0gaW5zdGFsbCwgd2hpY2ggaGFzIGEgY29tcGxldGVseSBkaWZmZXJlbnQg c2VtYW50aWMKLSsjIC4vaW5zdGFsbCwgd2hpY2ggY2FuIGJlIGVycm9uZW91c2x5IGNyZWF0ZWQg YnkgbWFrZSBmcm9tIC4vaW5zdGFsbC5zaC4KLSsjIFJlamVjdCBpbnN0YWxsIHByb2dyYW1zIHRo YXQgY2Fubm90IGluc3RhbGwgbXVsdGlwbGUgZmlsZXMuCi0reyAkYXNfZWNobyAiJGFzX21lOiRM SU5FTk86IGNoZWNraW5nIGZvciBhIEJTRC1jb21wYXRpYmxlIGluc3RhbGwiID4mNQotKyRhc19l Y2hvX24gImNoZWNraW5nIGZvciBhIEJTRC1jb21wYXRpYmxlIGluc3RhbGwuLi4gIiA+JjY7IH0K LStpZiB0ZXN0IC16ICIkSU5TVEFMTCI7IHRoZW4KLStpZiB0ZXN0ICIke2FjX2N2X3BhdGhfaW5z dGFsbCtzZXR9IiA9IHNldDsgdGhlbgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLStl bHNlCi0rICBhc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCi0rZm9yIGFzX2Rp ciBpbiAkUEFUSAotK2RvCi0rICBJRlM9JGFzX3NhdmVfSUZTCi0rICB0ZXN0IC16ICIkYXNfZGly IiAmJiBhc19kaXI9LgotKyAgIyBBY2NvdW50IGZvciBwZW9wbGUgd2hvIHB1dCB0cmFpbGluZyBz bGFzaGVzIGluIFBBVEggZWxlbWVudHMuCi0rY2FzZSAkYXNfZGlyLyBpbgotKyAgLi8gfCAuLy8g fCAvY0MvKiB8IFwKLSsgIC9ldGMvKiB8IC91c3Ivc2Jpbi8qIHwgL3Vzci9ldGMvKiB8IC9zYmlu LyogfCAvdXNyL2Fmc3dzL2Jpbi8qIHwgXAotKyAgPzpcXC9vczJcXC9pbnN0YWxsXFwvKiB8ID86 XFwvT1MyXFwvSU5TVEFMTFxcLyogfCBcCi0rICAvdXNyL3VjYi8qICkgOzsKLSsgICopCi0rICAg ICMgT1NGMSBhbmQgU0NPIE9EVCAzLjAgaGF2ZSB0aGVpciBvd24gbmFtZXMgZm9yIGluc3RhbGwu Ci0rICAgICMgRG9uJ3QgdXNlIGluc3RhbGxic2QgZnJvbSBPU0Ygc2luY2UgaXQgaW5zdGFsbHMg c3R1ZmYgYXMgcm9vdAotKyAgICAjIGJ5IGRlZmF1bHQuCi0rICAgIGZvciBhY19wcm9nIGluIGdp bnN0YWxsIHNjb2luc3QgaW5zdGFsbDsgZG8KLSsgICAgICBmb3IgYWNfZXhlY19leHQgaW4gJycg JGFjX2V4ZWN1dGFibGVfZXh0ZW5zaW9uczsgZG8KLSsJaWYgeyB0ZXN0IC1mICIkYXNfZGlyLyRh Y19wcm9nJGFjX2V4ZWNfZXh0IiAmJiAkYXNfdGVzdF94ICIkYXNfZGlyLyRhY19wcm9nJGFjX2V4 ZWNfZXh0IjsgfTsgdGhlbgotKwkgIGlmIHRlc3QgJGFjX3Byb2cgPSBpbnN0YWxsICYmCi0rCSAg ICBncmVwIGRzcG1zZyAiJGFzX2Rpci8kYWNfcHJvZyRhY19leGVjX2V4dCIgPi9kZXYvbnVsbCAy PiYxOyB0aGVuCi0rCSAgICAjIEFJWCBpbnN0YWxsLiAgSXQgaGFzIGFuIGluY29tcGF0aWJsZSBj YWxsaW5nIGNvbnZlbnRpb24uCi0rCSAgICA6Ci0rCSAgZWxpZiB0ZXN0ICRhY19wcm9nID0gaW5z dGFsbCAmJgotKwkgICAgZ3JlcCBwd3BsdXMgIiRhc19kaXIvJGFjX3Byb2ckYWNfZXhlY19leHQi ID4vZGV2L251bGwgMj4mMTsgdGhlbgotKwkgICAgIyBwcm9ncmFtLXNwZWNpZmljIGluc3RhbGwg c2NyaXB0IHVzZWQgYnkgSFAgcHdwbHVzLS1kb24ndCB1c2UuCi0rCSAgICA6Ci0rCSAgZWxzZQot KwkgICAgcm0gLXJmIGNvbmZ0ZXN0Lm9uZSBjb25mdGVzdC50d28gY29uZnRlc3QuZGlyCi0rCSAg ICBlY2hvIG9uZSA+IGNvbmZ0ZXN0Lm9uZQotKwkgICAgZWNobyB0d28gPiBjb25mdGVzdC50d28K LSsJICAgIG1rZGlyIGNvbmZ0ZXN0LmRpcgotKwkgICAgaWYgIiRhc19kaXIvJGFjX3Byb2ckYWNf ZXhlY19leHQiIC1jIGNvbmZ0ZXN0Lm9uZSBjb25mdGVzdC50d28gImBwd2RgL2NvbmZ0ZXN0LmRp ciIgJiYKLSsJICAgICAgdGVzdCAtcyBjb25mdGVzdC5vbmUgJiYgdGVzdCAtcyBjb25mdGVzdC50 d28gJiYKLSsJICAgICAgdGVzdCAtcyBjb25mdGVzdC5kaXIvY29uZnRlc3Qub25lICYmCi0rCSAg ICAgIHRlc3QgLXMgY29uZnRlc3QuZGlyL2NvbmZ0ZXN0LnR3bwotKwkgICAgdGhlbgotKwkgICAg ICBhY19jdl9wYXRoX2luc3RhbGw9IiRhc19kaXIvJGFjX3Byb2ckYWNfZXhlY19leHQgLWMiCi0r CSAgICAgIGJyZWFrIDMKLSsJICAgIGZpCi0rCSAgZmkKLSsJZmkKLSsgICAgICBkb25lCi0rICAg IGRvbmUKLSsgICAgOzsKLStlc2FjCi0rCi0rZG9uZQotK0lGUz0kYXNfc2F2ZV9JRlMKLSsKLSty bSAtcmYgY29uZnRlc3Qub25lIGNvbmZ0ZXN0LnR3byBjb25mdGVzdC5kaXIKLSsKLStmaQotKyAg aWYgdGVzdCAiJHthY19jdl9wYXRoX2luc3RhbGwrc2V0fSIgPSBzZXQ7IHRoZW4KLSsgICAgSU5T VEFMTD0kYWNfY3ZfcGF0aF9pbnN0YWxsCi0rICBlbHNlCi0rICAgICMgQXMgYSBsYXN0IHJlc29y dCwgdXNlIHRoZSBzbG93IHNoZWxsIHNjcmlwdC4gIERvbid0IGNhY2hlIGEKLSsgICAgIyB2YWx1 ZSBmb3IgSU5TVEFMTCB3aXRoaW4gYSBzb3VyY2UgZGlyZWN0b3J5LCBiZWNhdXNlIHRoYXQgd2ls bAotKyAgICAjIGJyZWFrIG90aGVyIHBhY2thZ2VzIHVzaW5nIHRoZSBjYWNoZSBpZiB0aGF0IGRp cmVjdG9yeSBpcwotKyAgICAjIHJlbW92ZWQsIG9yIGlmIHRoZSB2YWx1ZSBpcyBhIHJlbGF0aXZl IG5hbWUuCi0rICAgIElOU1RBTEw9JGFjX2luc3RhbGxfc2gKLSsgIGZpCi0rZmkKLSt7ICRhc19l Y2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkSU5TVEFMTCIgPiY1Ci0rJGFzX2VjaG8gIiRJ TlNUQUxMIiA+JjY7IH0KLSsKLSsjIFVzZSB0ZXN0IC16IGJlY2F1c2UgU3VuT1M0IHNoIG1pc2hh bmRsZXMgYnJhY2VzIGluICR7dmFyLXZhbH0uCi0rIyBJdCB0aGlua3MgdGhlIGZpcnN0IGNsb3Nl IGJyYWNlIGVuZHMgdGhlIHZhcmlhYmxlIHN1YnN0aXR1dGlvbi4KLSt0ZXN0IC16ICIkSU5TVEFM TF9QUk9HUkFNIiAmJiBJTlNUQUxMX1BST0dSQU09JyR7SU5TVEFMTH0nCi0rCi0rdGVzdCAteiAi JElOU1RBTExfU0NSSVBUIiAmJiBJTlNUQUxMX1NDUklQVD0nJHtJTlNUQUxMfScKLSsKLSt0ZXN0 IC16ICIkSU5TVEFMTF9EQVRBIiAmJiBJTlNUQUxMX0RBVEE9JyR7SU5TVEFMTH0gLW0gNjQ0Jwot KwotK2Nhc2UgYHB3ZGAgaW4KLSsgICpcICogfCAqXAkqKQotKyAgICB7ICRhc19lY2hvICIkYXNf bWU6JExJTkVOTzogV0FSTklORzogTGlidG9vbCBkb2VzIG5vdCBjb3BlIHdlbGwgd2l0aCB3aGl0 ZXNwYWNlIGluIFxgcHdkXGAiID4mNQotKyRhc19lY2hvICIkYXNfbWU6IFdBUk5JTkc6IExpYnRv b2wgZG9lcyBub3QgY29wZSB3ZWxsIHdpdGggd2hpdGVzcGFjZSBpbiBcYHB3ZFxgIiA+JjI7fSA7 OwotK2VzYWMKLSsKLSsKLSsKLSttYWNyb192ZXJzaW9uPScyLjIuNicKLSttYWNyb19yZXZpc2lv bj0nMS4zMDEyJwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotK2x0bWFp bj0iJGFjX2F1eF9kaXIvbHRtYWluLnNoIgotKwotK2FjX2V4dD1jCi0rYWNfY3BwPSckQ1BQICRD UFBGTEFHUycKLSthY19jb21waWxlPSckQ0MgLWMgJENGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3Qu JGFjX2V4dCA+JjUnCi0rYWNfbGluaz0nJENDIC1vIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAkQ0ZMQUdT ICRDUFBGTEFHUyAkTERGTEFHUyBjb25mdGVzdC4kYWNfZXh0ICRMSUJTID4mNScKLSthY19jb21w aWxlcl9nbnU9JGFjX2N2X2NfY29tcGlsZXJfZ251Ci0raWYgdGVzdCAtbiAiJGFjX3Rvb2xfcHJl Zml4IjsgdGhlbgotKyAgIyBFeHRyYWN0IHRoZSBmaXJzdCB3b3JkIG9mICIke2FjX3Rvb2xfcHJl Zml4fWdjYyIsIHNvIGl0IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3MuCi0rc2V0IGR1 bW15ICR7YWNfdG9vbF9wcmVmaXh9Z2NjOyBhY193b3JkPSQyCi0reyAkYXNfZWNobyAiJGFzX21l OiRMSU5FTk86IGNoZWNraW5nIGZvciAkYWNfd29yZCIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tp bmcgZm9yICRhY193b3JkLi4uICIgPiY2OyB9Ci0raWYgdGVzdCAiJHthY19jdl9wcm9nX0NDK3Nl dH0iID0gc2V0OyB0aGVuCi0rICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsg IGlmIHRlc3QgLW4gIiRDQyI7IHRoZW4KLSsgIGFjX2N2X3Byb2dfQ0M9IiRDQyIgIyBMZXQgdGhl IHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3QuCi0rZWxzZQotK2FzX3NhdmVfSUZTPSRJRlM7IElGUz0k UEFUSF9TRVBBUkFUT1IKLStmb3IgYXNfZGlyIGluICRQQVRICi0rZG8KLSsgIElGUz0kYXNfc2F2 ZV9JRlMKLSsgIHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCi0rICBmb3IgYWNfZXhlY19l eHQgaW4gJycgJGFjX2V4ZWN1dGFibGVfZXh0ZW5zaW9uczsgZG8KLSsgIGlmIHsgdGVzdCAtZiAi JGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgJiYgJGFzX3Rlc3RfeCAiJGFzX2Rpci8kYWNf d29yZCRhY19leGVjX2V4dCI7IH07IHRoZW4KLSsgICAgYWNfY3ZfcHJvZ19DQz0iJHthY190b29s X3ByZWZpeH1nY2MiCi0rICAgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZm91bmQgJGFzX2Rp ci8kYWNfd29yZCRhY19leGVjX2V4dCIgPiY1Ci0rICAgIGJyZWFrIDIKLSsgIGZpCi0rZG9uZQot K2RvbmUKLStJRlM9JGFzX3NhdmVfSUZTCi0rCi0rZmkKLStmaQotK0NDPSRhY19jdl9wcm9nX0ND Ci0raWYgdGVzdCAtbiAiJENDIjsgdGhlbgotKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86 IHJlc3VsdDogJENDIiA+JjUKLSskYXNfZWNobyAiJENDIiA+JjY7IH0KLStlbHNlCi0rICB7ICRh c19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiBubyIgPiY1Ci0rJGFzX2VjaG8gIm5vIiA+ JjY7IH0KLStmaQotKwotKwotK2ZpCi0raWYgdGVzdCAteiAiJGFjX2N2X3Byb2dfQ0MiOyB0aGVu Ci0rICBhY19jdF9DQz0kQ0MKLSsgICMgRXh0cmFjdCB0aGUgZmlyc3Qgd29yZCBvZiAiZ2NjIiwg c28gaXQgY2FuIGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJncy4KLStzZXQgZHVtbXkgZ2NjOyBh Y193b3JkPSQyCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciAkYWNf d29yZCIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yICRhY193b3JkLi4uICIgPiY2OyB9 Ci0raWYgdGVzdCAiJHthY19jdl9wcm9nX2FjX2N0X0NDK3NldH0iID0gc2V0OyB0aGVuCi0rICAk YXNfZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsgIGlmIHRlc3QgLW4gIiRhY19jdF9D QyI7IHRoZW4KLSsgIGFjX2N2X3Byb2dfYWNfY3RfQ0M9IiRhY19jdF9DQyIgIyBMZXQgdGhlIHVz ZXIgb3ZlcnJpZGUgdGhlIHRlc3QuCi0rZWxzZQotK2FzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFU SF9TRVBBUkFUT1IKLStmb3IgYXNfZGlyIGluICRQQVRICi0rZG8KLSsgIElGUz0kYXNfc2F2ZV9J RlMKLSsgIHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCi0rICBmb3IgYWNfZXhlY19leHQg aW4gJycgJGFjX2V4ZWN1dGFibGVfZXh0ZW5zaW9uczsgZG8KLSsgIGlmIHsgdGVzdCAtZiAiJGFz X2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgJiYgJGFzX3Rlc3RfeCAiJGFzX2Rpci8kYWNfd29y ZCRhY19leGVjX2V4dCI7IH07IHRoZW4KLSsgICAgYWNfY3ZfcHJvZ19hY19jdF9DQz0iZ2NjIgot KyAgICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGZvdW5kICRhc19kaXIvJGFjX3dvcmQkYWNf ZXhlY19leHQiID4mNQotKyAgICBicmVhayAyCi0rICBmaQotK2RvbmUKLStkb25lCi0rSUZTPSRh c19zYXZlX0lGUwotKwotK2ZpCi0rZmkKLSthY19jdF9DQz0kYWNfY3ZfcHJvZ19hY19jdF9DQwot K2lmIHRlc3QgLW4gIiRhY19jdF9DQyI7IHRoZW4KLSsgIHsgJGFzX2VjaG8gIiRhc19tZTokTElO RU5POiByZXN1bHQ6ICRhY19jdF9DQyIgPiY1Ci0rJGFzX2VjaG8gIiRhY19jdF9DQyIgPiY2OyB9 Ci0rZWxzZQotKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogbm8iID4mNQot KyRhc19lY2hvICJubyIgPiY2OyB9Ci0rZmkKLSsKLSsgIGlmIHRlc3QgIngkYWNfY3RfQ0MiID0g eDsgdGhlbgotKyAgICBDQz0iIgotKyAgZWxzZQotKyAgICBjYXNlICRjcm9zc19jb21waWxpbmc6 JGFjX3Rvb2xfd2FybmVkIGluCi0reWVzOikKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzog V0FSTklORzogdXNpbmcgY3Jvc3MgdG9vbHMgbm90IHByZWZpeGVkIHdpdGggaG9zdCB0cmlwbGV0 IiA+JjUKLSskYXNfZWNobyAiJGFzX21lOiBXQVJOSU5HOiB1c2luZyBjcm9zcyB0b29scyBub3Qg cHJlZml4ZWQgd2l0aCBob3N0IHRyaXBsZXQiID4mMjt9Ci0rYWNfdG9vbF93YXJuZWQ9eWVzIDs7 Ci0rZXNhYwotKyAgICBDQz0kYWNfY3RfQ0MKLSsgIGZpCi0rZWxzZQotKyAgQ0M9IiRhY19jdl9w cm9nX0NDIgotK2ZpCi0rCi0raWYgdGVzdCAteiAiJENDIjsgdGhlbgotKyAgICAgICAgICBpZiB0 ZXN0IC1uICIkYWNfdG9vbF9wcmVmaXgiOyB0aGVuCi0rICAgICMgRXh0cmFjdCB0aGUgZmlyc3Qg d29yZCBvZiAiJHthY190b29sX3ByZWZpeH1jYyIsIHNvIGl0IGNhbiBiZSBhIHByb2dyYW0gbmFt ZSB3aXRoIGFyZ3MuCi0rc2V0IGR1bW15ICR7YWNfdG9vbF9wcmVmaXh9Y2M7IGFjX3dvcmQ9JDIK LSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yICRhY193b3JkIiA+JjUK LSskYXNfZWNob19uICJjaGVja2luZyBmb3IgJGFjX3dvcmQuLi4gIiA+JjY7IH0KLStpZiB0ZXN0 ICIke2FjX2N2X3Byb2dfQ0Mrc2V0fSIgPSBzZXQ7IHRoZW4KLSsgICRhc19lY2hvX24gIihjYWNo ZWQpICIgPiY2Ci0rZWxzZQotKyAgaWYgdGVzdCAtbiAiJENDIjsgdGhlbgotKyAgYWNfY3ZfcHJv Z19DQz0iJENDIiAjIExldCB0aGUgdXNlciBvdmVycmlkZSB0aGUgdGVzdC4KLStlbHNlCi0rYXNf c2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgotK2ZvciBhc19kaXIgaW4gJFBBVEgK LStkbwotKyAgSUZTPSRhc19zYXZlX0lGUwotKyAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGly PS4KLSsgIGZvciBhY19leGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9leHRlbnNpb25zOyBk bwotKyAgaWYgeyB0ZXN0IC1mICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiAmJiAkYXNf dGVzdF94ICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IjsgfTsgdGhlbgotKyAgICBhY19j dl9wcm9nX0NDPSIke2FjX3Rvb2xfcHJlZml4fWNjIgotKyAgICAkYXNfZWNobyAiJGFzX21lOiRM SU5FTk86IGZvdW5kICRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiID4mNQotKyAgICBicmVh ayAyCi0rICBmaQotK2RvbmUKLStkb25lCi0rSUZTPSRhc19zYXZlX0lGUwotKwotK2ZpCi0rZmkK LStDQz0kYWNfY3ZfcHJvZ19DQwotK2lmIHRlc3QgLW4gIiRDQyI7IHRoZW4KLSsgIHsgJGFzX2Vj aG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRDQyIgPiY1Ci0rJGFzX2VjaG8gIiRDQyIgPiY2 OyB9Ci0rZWxzZQotKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogbm8iID4m NQotKyRhc19lY2hvICJubyIgPiY2OyB9Ci0rZmkKLSsKLSsKLSsgIGZpCi0rZmkKLStpZiB0ZXN0 IC16ICIkQ0MiOyB0aGVuCi0rICAjIEV4dHJhY3QgdGhlIGZpcnN0IHdvcmQgb2YgImNjIiwgc28g aXQgY2FuIGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJncy4KLStzZXQgZHVtbXkgY2M7IGFjX3dv cmQ9JDIKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yICRhY193b3Jk IiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyBmb3IgJGFjX3dvcmQuLi4gIiA+JjY7IH0KLStp ZiB0ZXN0ICIke2FjX2N2X3Byb2dfQ0Mrc2V0fSIgPSBzZXQ7IHRoZW4KLSsgICRhc19lY2hvX24g IihjYWNoZWQpICIgPiY2Ci0rZWxzZQotKyAgaWYgdGVzdCAtbiAiJENDIjsgdGhlbgotKyAgYWNf Y3ZfcHJvZ19DQz0iJENDIiAjIExldCB0aGUgdXNlciBvdmVycmlkZSB0aGUgdGVzdC4KLStlbHNl Ci0rICBhY19wcm9nX3JlamVjdGVkPW5vCi0rYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NF UEFSQVRPUgotK2ZvciBhc19kaXIgaW4gJFBBVEgKLStkbwotKyAgSUZTPSRhc19zYXZlX0lGUwot KyAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KLSsgIGZvciBhY19leGVjX2V4dCBpbiAn JyAkYWNfZXhlY3V0YWJsZV9leHRlbnNpb25zOyBkbwotKyAgaWYgeyB0ZXN0IC1mICIkYXNfZGly LyRhY193b3JkJGFjX2V4ZWNfZXh0IiAmJiAkYXNfdGVzdF94ICIkYXNfZGlyLyRhY193b3JkJGFj X2V4ZWNfZXh0IjsgfTsgdGhlbgotKyAgICBpZiB0ZXN0ICIkYXNfZGlyLyRhY193b3JkJGFjX2V4 ZWNfZXh0IiA9ICIvdXNyL3VjYi9jYyI7IHRoZW4KLSsgICAgICAgYWNfcHJvZ19yZWplY3RlZD15 ZXMKLSsgICAgICAgY29udGludWUKLSsgICAgIGZpCi0rICAgIGFjX2N2X3Byb2dfQ0M9ImNjIgot KyAgICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGZvdW5kICRhc19kaXIvJGFjX3dvcmQkYWNf ZXhlY19leHQiID4mNQotKyAgICBicmVhayAyCi0rICBmaQotK2RvbmUKLStkb25lCi0rSUZTPSRh c19zYXZlX0lGUwotKwotK2lmIHRlc3QgJGFjX3Byb2dfcmVqZWN0ZWQgPSB5ZXM7IHRoZW4KLSsg ICMgV2UgZm91bmQgYSBib2dvbiBpbiB0aGUgcGF0aCwgc28gbWFrZSBzdXJlIHdlIG5ldmVyIHVz ZSBpdC4KLSsgIHNldCBkdW1teSAkYWNfY3ZfcHJvZ19DQwotKyAgc2hpZnQKLSsgIGlmIHRlc3Qg JCMgIT0gMDsgdGhlbgotKyAgICAjIFdlIGNob3NlIGEgZGlmZmVyZW50IGNvbXBpbGVyIGZyb20g dGhlIGJvZ3VzIG9uZS4KLSsgICAgIyBIb3dldmVyLCBpdCBoYXMgdGhlIHNhbWUgYmFzZW5hbWUs IHNvIHRoZSBib2dvbiB3aWxsIGJlIGNob3NlbgotKyAgICAjIGZpcnN0IGlmIHdlIHNldCBDQyB0 byBqdXN0IHRoZSBiYXNlbmFtZTsgdXNlIHRoZSBmdWxsIGZpbGUgbmFtZS4KLSsgICAgc2hpZnQK LSsgICAgYWNfY3ZfcHJvZ19DQz0iJGFzX2Rpci8kYWNfd29yZCR7MSsnICd9JEAiCi0rICBmaQot K2ZpCi0rZmkKLStmaQotK0NDPSRhY19jdl9wcm9nX0NDCi0raWYgdGVzdCAtbiAiJENDIjsgdGhl bgotKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJENDIiA+JjUKLSskYXNf ZWNobyAiJENDIiA+JjY7IH0KLStlbHNlCi0rICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzog cmVzdWx0OiBubyIgPiY1Ci0rJGFzX2VjaG8gIm5vIiA+JjY7IH0KLStmaQotKwotKwotK2ZpCi0r aWYgdGVzdCAteiAiJENDIjsgdGhlbgotKyAgaWYgdGVzdCAtbiAiJGFjX3Rvb2xfcHJlZml4Ijsg dGhlbgotKyAgZm9yIGFjX3Byb2cgaW4gY2wuZXhlCi0rICBkbwotKyAgICAjIEV4dHJhY3QgdGhl IGZpcnN0IHdvcmQgb2YgIiRhY190b29sX3ByZWZpeCRhY19wcm9nIiwgc28gaXQgY2FuIGJlIGEg cHJvZ3JhbSBuYW1lIHdpdGggYXJncy4KLStzZXQgZHVtbXkgJGFjX3Rvb2xfcHJlZml4JGFjX3By b2c7IGFjX3dvcmQ9JDIKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9y ICRhY193b3JkIiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyBmb3IgJGFjX3dvcmQuLi4gIiA+ JjY7IH0KLStpZiB0ZXN0ICIke2FjX2N2X3Byb2dfQ0Mrc2V0fSIgPSBzZXQ7IHRoZW4KLSsgICRh c19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci0rZWxzZQotKyAgaWYgdGVzdCAtbiAiJENDIjsgdGhl bgotKyAgYWNfY3ZfcHJvZ19DQz0iJENDIiAjIExldCB0aGUgdXNlciBvdmVycmlkZSB0aGUgdGVz dC4KLStlbHNlCi0rYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgotK2ZvciBh c19kaXIgaW4gJFBBVEgKLStkbwotKyAgSUZTPSRhc19zYXZlX0lGUwotKyAgdGVzdCAteiAiJGFz X2RpciIgJiYgYXNfZGlyPS4KLSsgIGZvciBhY19leGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJs ZV9leHRlbnNpb25zOyBkbwotKyAgaWYgeyB0ZXN0IC1mICIkYXNfZGlyLyRhY193b3JkJGFjX2V4 ZWNfZXh0IiAmJiAkYXNfdGVzdF94ICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IjsgfTsg dGhlbgotKyAgICBhY19jdl9wcm9nX0NDPSIkYWNfdG9vbF9wcmVmaXgkYWNfcHJvZyIKLSsgICAg JGFzX2VjaG8gIiRhc19tZTokTElORU5POiBmb3VuZCAkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNf ZXh0IiA+JjUKLSsgICAgYnJlYWsgMgotKyAgZmkKLStkb25lCi0rZG9uZQotK0lGUz0kYXNfc2F2 ZV9JRlMKLSsKLStmaQotK2ZpCi0rQ0M9JGFjX2N2X3Byb2dfQ0MKLStpZiB0ZXN0IC1uICIkQ0Mi OyB0aGVuCi0rICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkQ0MiID4mNQot KyRhc19lY2hvICIkQ0MiID4mNjsgfQotK2Vsc2UKLSsgIHsgJGFzX2VjaG8gIiRhc19tZTokTElO RU5POiByZXN1bHQ6IG5vIiA+JjUKLSskYXNfZWNobyAibm8iID4mNjsgfQotK2ZpCi0rCi0rCi0r ICAgIHRlc3QgLW4gIiRDQyIgJiYgYnJlYWsKLSsgIGRvbmUKLStmaQotK2lmIHRlc3QgLXogIiRD QyI7IHRoZW4KLSsgIGFjX2N0X0NDPSRDQwotKyAgZm9yIGFjX3Byb2cgaW4gY2wuZXhlCi0rZG8K LSsgICMgRXh0cmFjdCB0aGUgZmlyc3Qgd29yZCBvZiAiJGFjX3Byb2ciLCBzbyBpdCBjYW4gYmUg YSBwcm9ncmFtIG5hbWUgd2l0aCBhcmdzLgotK3NldCBkdW1teSAkYWNfcHJvZzsgYWNfd29yZD0k MgotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgJGFjX3dvcmQiID4m NQotKyRhc19lY2hvX24gImNoZWNraW5nIGZvciAkYWNfd29yZC4uLiAiID4mNjsgfQotK2lmIHRl c3QgIiR7YWNfY3ZfcHJvZ19hY19jdF9DQytzZXR9IiA9IHNldDsgdGhlbgotKyAgJGFzX2VjaG9f biAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rICBpZiB0ZXN0IC1uICIkYWNfY3RfQ0MiOyB0aGVu Ci0rICBhY19jdl9wcm9nX2FjX2N0X0NDPSIkYWNfY3RfQ0MiICMgTGV0IHRoZSB1c2VyIG92ZXJy aWRlIHRoZSB0ZXN0LgotK2Vsc2UKLSthc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJB VE9SCi0rZm9yIGFzX2RpciBpbiAkUEFUSAotK2RvCi0rICBJRlM9JGFzX3NhdmVfSUZTCi0rICB0 ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgotKyAgZm9yIGFjX2V4ZWNfZXh0IGluICcnICRh Y19leGVjdXRhYmxlX2V4dGVuc2lvbnM7IGRvCi0rICBpZiB7IHRlc3QgLWYgIiRhc19kaXIvJGFj X3dvcmQkYWNfZXhlY19leHQiICYmICRhc190ZXN0X3ggIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhl Y19leHQiOyB9OyB0aGVuCi0rICAgIGFjX2N2X3Byb2dfYWNfY3RfQ0M9IiRhY19wcm9nIgotKyAg ICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGZvdW5kICRhc19kaXIvJGFjX3dvcmQkYWNfZXhl Y19leHQiID4mNQotKyAgICBicmVhayAyCi0rICBmaQotK2RvbmUKLStkb25lCi0rSUZTPSRhc19z YXZlX0lGUwotKwotK2ZpCi0rZmkKLSthY19jdF9DQz0kYWNfY3ZfcHJvZ19hY19jdF9DQwotK2lm IHRlc3QgLW4gIiRhY19jdF9DQyI7IHRoZW4KLSsgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5P OiByZXN1bHQ6ICRhY19jdF9DQyIgPiY1Ci0rJGFzX2VjaG8gIiRhY19jdF9DQyIgPiY2OyB9Ci0r ZWxzZQotKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogbm8iID4mNQotKyRh c19lY2hvICJubyIgPiY2OyB9Ci0rZmkKLSsKLSsKLSsgIHRlc3QgLW4gIiRhY19jdF9DQyIgJiYg YnJlYWsKLStkb25lCi0rCi0rICBpZiB0ZXN0ICJ4JGFjX2N0X0NDIiA9IHg7IHRoZW4KLSsgICAg Q0M9IiIKLSsgIGVsc2UKLSsgICAgY2FzZSAkY3Jvc3NfY29tcGlsaW5nOiRhY190b29sX3dhcm5l ZCBpbgotK3llczopCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6IHVzaW5n IGNyb3NzIHRvb2xzIG5vdCBwcmVmaXhlZCB3aXRoIGhvc3QgdHJpcGxldCIgPiY1Ci0rJGFzX2Vj aG8gIiRhc19tZTogV0FSTklORzogdXNpbmcgY3Jvc3MgdG9vbHMgbm90IHByZWZpeGVkIHdpdGgg aG9zdCB0cmlwbGV0IiA+JjI7fQotK2FjX3Rvb2xfd2FybmVkPXllcyA7OwotK2VzYWMKLSsgICAg Q0M9JGFjX2N0X0NDCi0rICBmaQotK2ZpCi0rCi0rZmkKLSsKLSsKLSt0ZXN0IC16ICIkQ0MiICYm IHsgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBpbiBcYCRhY19wd2QnOiIgPiY1 Ci0rJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IGluIFxgJGFjX3B3ZCc6IiA+JjI7fQotK3sgeyAk YXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBubyBhY2NlcHRhYmxlIEMgY29tcGlsZXIg Zm91bmQgaW4gXCRQQVRICi0rU2VlIFxgY29uZmlnLmxvZycgZm9yIG1vcmUgZGV0YWlscy4iID4m NQotKyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBubyBhY2NlcHRhYmxlIEMgY29tcGlsZXIgZm91 bmQgaW4gXCRQQVRICi0rU2VlIFxgY29uZmlnLmxvZycgZm9yIG1vcmUgZGV0YWlscy4iID4mMjt9 Ci0rICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9OyB9Ci0rCi0rIyBQcm92aWRlIHNvbWUgaW5m b3JtYXRpb24gYWJvdXQgdGhlIGNvbXBpbGVyLgotKyRhc19lY2hvICIkYXNfbWU6JExJTkVOTzog Y2hlY2tpbmcgZm9yIEMgY29tcGlsZXIgdmVyc2lvbiIgPiY1Ci0rc2V0IFggJGFjX2NvbXBpbGUK LSthY19jb21waWxlcj0kMgotK3sgKGFjX3RyeT0iJGFjX2NvbXBpbGVyIC0tdmVyc2lvbiA+JjUi Ci0rY2FzZSAiKCgkYWNfdHJ5IiBpbgotKyAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNo bz1cJGFjX3RyeTs7Ci0rICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKLStlc2FjCi0rZXZhbCBh Y190cnlfZWNobz0iXCJcJGFzX21lOiRMSU5FTk86ICRhY190cnlfZWNob1wiIgotKyRhc19lY2hv ICIkYWNfdHJ5X2VjaG8iKSA+JjUKLSsgIChldmFsICIkYWNfY29tcGlsZXIgLS12ZXJzaW9uID4m NSIpIDI+JjUKLSsgIGFjX3N0YXR1cz0kPwotKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBc JD8gPSAkYWNfc3RhdHVzIiA+JjUKLSsgIChleGl0ICRhY19zdGF0dXMpOyB9Ci0reyAoYWNfdHJ5 PSIkYWNfY29tcGlsZXIgLXYgPiY1IgotK2Nhc2UgIigoJGFjX3RyeSIgaW4KLSsgICpcIiogfCAq XGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OwotKyAgKikgYWNfdHJ5X2VjaG89JGFj X3RyeTs7Ci0rZXNhYwotK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5POiAkYWNf dHJ5X2VjaG9cIiIKLSskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1Ci0rICAoZXZhbCAiJGFj X2NvbXBpbGVyIC12ID4mNSIpIDI+JjUKLSsgIGFjX3N0YXR1cz0kPwotKyAgJGFzX2VjaG8gIiRh c19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSsgIChleGl0ICRhY19zdGF0dXMp OyB9Ci0reyAoYWNfdHJ5PSIkYWNfY29tcGlsZXIgLVYgPiY1IgotK2Nhc2UgIigoJGFjX3RyeSIg aW4KLSsgICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OwotKyAgKikg YWNfdHJ5X2VjaG89JGFjX3RyeTs7Ci0rZXNhYwotK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19t ZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIKLSskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1 Ci0rICAoZXZhbCAiJGFjX2NvbXBpbGVyIC1WID4mNSIpIDI+JjUKLSsgIGFjX3N0YXR1cz0kPwot KyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSsgIChl eGl0ICRhY19zdGF0dXMpOyB9Ci0rCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNr aW5nIHdoZXRoZXIgd2UgYXJlIHVzaW5nIHRoZSBHTlUgQyBjb21waWxlciIgPiY1Ci0rJGFzX2Vj aG9fbiAiY2hlY2tpbmcgd2hldGhlciB3ZSBhcmUgdXNpbmcgdGhlIEdOVSBDIGNvbXBpbGVyLi4u ICIgPiY2OyB9Ci0raWYgdGVzdCAiJHthY19jdl9jX2NvbXBpbGVyX2dudStzZXR9IiA9IHNldDsg dGhlbgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rICBjYXQgPmNvbmZ0 ZXN0LiRhY19leHQgPDxfQUNFT0YKLSsvKiBjb25mZGVmcy5oLiAgKi8KLStfQUNFT0YKLStjYXQg Y29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKLStjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8 X0FDRU9GCi0rLyogZW5kIGNvbmZkZWZzLmguICAqLwotKwotK2ludAotK21haW4gKCkKLSt7Ci0r I2lmbmRlZiBfX0dOVUNfXwotKyAgICAgICBjaG9rZSBtZQotKyNlbmRpZgotKwotKyAgOwotKyAg cmV0dXJuIDA7Ci0rfQotK19BQ0VPRgotK3JtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQKLStpZiB7 IChhY190cnk9IiRhY19jb21waWxlIgotK2Nhc2UgIigoJGFjX3RyeSIgaW4KLSsgICpcIiogfCAq XGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OwotKyAgKikgYWNfdHJ5X2VjaG89JGFj X3RyeTs7Ci0rZXNhYwotK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5POiAkYWNf dHJ5X2VjaG9cIiIKLSskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1Ci0rICAoZXZhbCAiJGFj X2NvbXBpbGUiKSAyPmNvbmZ0ZXN0LmVyMQotKyAgYWNfc3RhdHVzPSQ/Ci0rICBncmVwIC12ICde ICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgotKyAgcm0gLWYgY29uZnRlc3QuZXIxCi0r ICBjYXQgY29uZnRlc3QuZXJyID4mNQotKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8g PSAkYWNfc3RhdHVzIiA+JjUKLSsgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmIHsKLSsJIHRlc3Qg LXogIiRhY19jX3dlcnJvcl9mbGFnIiB8fAotKwkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgotKyAg ICAgICB9ICYmIHRlc3QgLXMgY29uZnRlc3QuJGFjX29iamV4dDsgdGhlbgotKyAgYWNfY29tcGls ZXJfZ251PXllcwotK2Vsc2UKLSsgICRhc19lY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdh czoiID4mNQotK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKLSsKLSsJYWNfY29t cGlsZXJfZ251PW5vCi0rZmkKLSsKLStybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4k YWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKLSthY19jdl9jX2NvbXBpbGVyX2dudT0kYWNfY29t cGlsZXJfZ251Ci0rCi0rZmkKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAk YWNfY3ZfY19jb21waWxlcl9nbnUiID4mNQotKyRhc19lY2hvICIkYWNfY3ZfY19jb21waWxlcl9n bnUiID4mNjsgfQotK2lmIHRlc3QgJGFjX2NvbXBpbGVyX2dudSA9IHllczsgdGhlbgotKyAgR0ND PXllcwotK2Vsc2UKLSsgIEdDQz0KLStmaQotK2FjX3Rlc3RfQ0ZMQUdTPSR7Q0ZMQUdTK3NldH0K LSthY19zYXZlX0NGTEFHUz0kQ0ZMQUdTCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNo ZWNraW5nIHdoZXRoZXIgJENDIGFjY2VwdHMgLWciID4mNQotKyRhc19lY2hvX24gImNoZWNraW5n IHdoZXRoZXIgJENDIGFjY2VwdHMgLWcuLi4gIiA+JjY7IH0KLStpZiB0ZXN0ICIke2FjX2N2X3By b2dfY2NfZytzZXR9IiA9IHNldDsgdGhlbgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYK LStlbHNlCi0rICBhY19zYXZlX2Nfd2Vycm9yX2ZsYWc9JGFjX2Nfd2Vycm9yX2ZsYWcKLSsgICBh Y19jX3dlcnJvcl9mbGFnPXllcwotKyAgIGFjX2N2X3Byb2dfY2NfZz1ubwotKyAgIENGTEFHUz0i LWciCi0rICAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0rLyogY29uZmRlZnMuaC4g ICovCi0rX0FDRU9GCi0rY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Ci0rY2F0ID4+ Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLSsKLStp bnQKLSttYWluICgpCi0rewotKwotKyAgOwotKyAgcmV0dXJuIDA7Ci0rfQotK19BQ0VPRgotK3Jt IC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQKLStpZiB7IChhY190cnk9IiRhY19jb21waWxlIgotK2Nh c2UgIigoJGFjX3RyeSIgaW4KLSsgICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRh Y190cnk7OwotKyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7Ci0rZXNhYwotK2V2YWwgYWNfdHJ5 X2VjaG89IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIKLSskYXNfZWNobyAiJGFj X3RyeV9lY2hvIikgPiY1Ci0rICAoZXZhbCAiJGFjX2NvbXBpbGUiKSAyPmNvbmZ0ZXN0LmVyMQot KyAgYWNfc3RhdHVzPSQ/Ci0rICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0 LmVycgotKyAgcm0gLWYgY29uZnRlc3QuZXIxCi0rICBjYXQgY29uZnRlc3QuZXJyID4mNQotKyAg JGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSsgIChleGl0 ICRhY19zdGF0dXMpOyB9ICYmIHsKLSsJIHRlc3QgLXogIiRhY19jX3dlcnJvcl9mbGFnIiB8fAot KwkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgotKyAgICAgICB9ICYmIHRlc3QgLXMgY29uZnRlc3Qu JGFjX29iamV4dDsgdGhlbgotKyAgYWNfY3ZfcHJvZ19jY19nPXllcwotK2Vsc2UKLSsgICRhc19l Y2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQotK3NlZCAncy9eL3wgLycgY29u ZnRlc3QuJGFjX2V4dCA+JjUKLSsKLSsJQ0ZMQUdTPSIiCi0rICAgICAgY2F0ID5jb25mdGVzdC4k YWNfZXh0IDw8X0FDRU9GCi0rLyogY29uZmRlZnMuaC4gICovCi0rX0FDRU9GCi0rY2F0IGNvbmZk ZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Ci0rY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VP RgotKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLSsKLStpbnQKLSttYWluICgpCi0rewotKwotKyAg OwotKyAgcmV0dXJuIDA7Ci0rfQotK19BQ0VPRgotK3JtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQK LStpZiB7IChhY190cnk9IiRhY19jb21waWxlIgotK2Nhc2UgIigoJGFjX3RyeSIgaW4KLSsgICpc IiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OwotKyAgKikgYWNfdHJ5X2Vj aG89JGFjX3RyeTs7Ci0rZXNhYwotK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5P OiAkYWNfdHJ5X2VjaG9cIiIKLSskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1Ci0rICAoZXZh bCAiJGFjX2NvbXBpbGUiKSAyPmNvbmZ0ZXN0LmVyMQotKyAgYWNfc3RhdHVzPSQ/Ci0rICBncmVw IC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgotKyAgcm0gLWYgY29uZnRlc3Qu ZXIxCi0rICBjYXQgY29uZnRlc3QuZXJyID4mNQotKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5P OiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSsgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmIHsKLSsJ IHRlc3QgLXogIiRhY19jX3dlcnJvcl9mbGFnIiB8fAotKwkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVy cgotKyAgICAgICB9ICYmIHRlc3QgLXMgY29uZnRlc3QuJGFjX29iamV4dDsgdGhlbgotKyAgOgot K2Vsc2UKLSsgICRhc19lY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQotK3Nl ZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKLSsKLSsJYWNfY193ZXJyb3JfZmxhZz0k YWNfc2F2ZV9jX3dlcnJvcl9mbGFnCi0rCSBDRkxBR1M9Ii1nIgotKwkgY2F0ID5jb25mdGVzdC4k YWNfZXh0IDw8X0FDRU9GCi0rLyogY29uZmRlZnMuaC4gICovCi0rX0FDRU9GCi0rY2F0IGNvbmZk ZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Ci0rY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VP RgotKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLSsKLStpbnQKLSttYWluICgpCi0rewotKwotKyAg OwotKyAgcmV0dXJuIDA7Ci0rfQotK19BQ0VPRgotK3JtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQK LStpZiB7IChhY190cnk9IiRhY19jb21waWxlIgotK2Nhc2UgIigoJGFjX3RyeSIgaW4KLSsgICpc IiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OwotKyAgKikgYWNfdHJ5X2Vj aG89JGFjX3RyeTs7Ci0rZXNhYwotK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5P OiAkYWNfdHJ5X2VjaG9cIiIKLSskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1Ci0rICAoZXZh bCAiJGFjX2NvbXBpbGUiKSAyPmNvbmZ0ZXN0LmVyMQotKyAgYWNfc3RhdHVzPSQ/Ci0rICBncmVw IC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgotKyAgcm0gLWYgY29uZnRlc3Qu ZXIxCi0rICBjYXQgY29uZnRlc3QuZXJyID4mNQotKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5P OiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSsgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmIHsKLSsJ IHRlc3QgLXogIiRhY19jX3dlcnJvcl9mbGFnIiB8fAotKwkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVy cgotKyAgICAgICB9ICYmIHRlc3QgLXMgY29uZnRlc3QuJGFjX29iamV4dDsgdGhlbgotKyAgYWNf Y3ZfcHJvZ19jY19nPXllcwotK2Vsc2UKLSsgICRhc19lY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9n cmFtIHdhczoiID4mNQotK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKLSsKLSsK LStmaQotKwotK3JtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29u ZnRlc3QuJGFjX2V4dAotK2ZpCi0rCi0rcm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3Qu JGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0Ci0rZmkKLSsKLStybSAtZiBjb3JlIGNvbmZ0ZXN0 LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKLSsgICBhY19jX3dlcnJv cl9mbGFnPSRhY19zYXZlX2Nfd2Vycm9yX2ZsYWcKLStmaQotK3sgJGFzX2VjaG8gIiRhc19tZTok TElORU5POiByZXN1bHQ6ICRhY19jdl9wcm9nX2NjX2ciID4mNQotKyRhc19lY2hvICIkYWNfY3Zf cHJvZ19jY19nIiA+JjY7IH0KLStpZiB0ZXN0ICIkYWNfdGVzdF9DRkxBR1MiID0gc2V0OyB0aGVu Ci0rICBDRkxBR1M9JGFjX3NhdmVfQ0ZMQUdTCi0rZWxpZiB0ZXN0ICRhY19jdl9wcm9nX2NjX2cg PSB5ZXM7IHRoZW4KLSsgIGlmIHRlc3QgIiRHQ0MiID0geWVzOyB0aGVuCi0rICAgIENGTEFHUz0i LWcgLU8yIgotKyAgZWxzZQotKyAgICBDRkxBR1M9Ii1nIgotKyAgZmkKLStlbHNlCi0rICBpZiB0 ZXN0ICIkR0NDIiA9IHllczsgdGhlbgotKyAgICBDRkxBR1M9Ii1PMiIKLSsgIGVsc2UKLSsgICAg Q0ZMQUdTPQotKyAgZmkKLStmaQotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2lu ZyBmb3IgJENDIG9wdGlvbiB0byBhY2NlcHQgSVNPIEM4OSIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hl Y2tpbmcgZm9yICRDQyBvcHRpb24gdG8gYWNjZXB0IElTTyBDODkuLi4gIiA+JjY7IH0KLStpZiB0 ZXN0ICIke2FjX2N2X3Byb2dfY2NfYzg5K3NldH0iID0gc2V0OyB0aGVuCi0rICAkYXNfZWNob19u ICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsgIGFjX2N2X3Byb2dfY2NfYzg5PW5vCi0rYWNfc2F2 ZV9DQz0kQ0MKLStjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLSsvKiBjb25mZGVmcy5o LiAgKi8KLStfQUNFT0YKLStjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKLStjYXQg Pj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0rLyogZW5kIGNvbmZkZWZzLmguICAqLwotKyNp bmNsdWRlIDxzdGRhcmcuaD4KLSsjaW5jbHVkZSA8c3RkaW8uaD4KLSsjaW5jbHVkZSA8c3lzL3R5 cGVzLmg+Ci0rI2luY2x1ZGUgPHN5cy9zdGF0Lmg+Ci0rLyogTW9zdCBvZiB0aGUgZm9sbG93aW5n IHRlc3RzIGFyZSBzdG9sZW4gZnJvbSBSQ1MgNS43J3Mgc3JjL2NvbmYuc2guICAqLwotK3N0cnVj dCBidWYgeyBpbnQgeDsgfTsKLStGSUxFICogKCpyY3NvcGVuKSAoc3RydWN0IGJ1ZiAqLCBzdHJ1 Y3Qgc3RhdCAqLCBpbnQpOwotK3N0YXRpYyBjaGFyICplIChwLCBpKQotKyAgICAgY2hhciAqKnA7 Ci0rICAgICBpbnQgaTsKLSt7Ci0rICByZXR1cm4gcFtpXTsKLSt9Ci0rc3RhdGljIGNoYXIgKmYg KGNoYXIgKiAoKmcpIChjaGFyICoqLCBpbnQpLCBjaGFyICoqcCwgLi4uKQotK3sKLSsgIGNoYXIg KnM7Ci0rICB2YV9saXN0IHY7Ci0rICB2YV9zdGFydCAodixwKTsKLSsgIHMgPSBnIChwLCB2YV9h cmcgKHYsaW50KSk7Ci0rICB2YV9lbmQgKHYpOwotKyAgcmV0dXJuIHM7Ci0rfQotKwotKy8qIE9T RiA0LjAgQ29tcGFxIGNjIGlzIHNvbWUgc29ydCBvZiBhbG1vc3QtQU5TSSBieSBkZWZhdWx0LiAg SXQgaGFzCi0rICAgZnVuY3Rpb24gcHJvdG90eXBlcyBhbmQgc3R1ZmYsIGJ1dCBub3QgJ1x4SEgn IGhleCBjaGFyYWN0ZXIgY29uc3RhbnRzLgotKyAgIFRoZXNlIGRvbid0IHByb3Zva2UgYW4gZXJy b3IgdW5mb3J0dW5hdGVseSwgaW5zdGVhZCBhcmUgc2lsZW50bHkgdHJlYXRlZAotKyAgIGFzICd4 Jy4gIFRoZSBmb2xsb3dpbmcgaW5kdWNlcyBhbiBlcnJvciwgdW50aWwgLXN0ZCBpcyBhZGRlZCB0 byBnZXQKLSsgICBwcm9wZXIgQU5TSSBtb2RlLiAgQ3VyaW91c2x5ICdceDAwJyE9J3gnIGFsd2F5 cyBjb21lcyBvdXQgdHJ1ZSwgZm9yIGFuCi0rICAgYXJyYXkgc2l6ZSBhdCBsZWFzdC4gIEl0J3Mg bmVjZXNzYXJ5IHRvIHdyaXRlICdceDAwJz09MCB0byBnZXQgc29tZXRoaW5nCi0rICAgdGhhdCdz IHRydWUgb25seSB3aXRoIC1zdGQuICAqLwotK2ludCBvc2Y0X2NjX2FycmF5IFsnXHgwMCcgPT0g MCA/IDEgOiAtMV07Ci0rCi0rLyogSUJNIEMgNiBmb3IgQUlYIGlzIGFsbW9zdC1BTlNJIGJ5IGRl ZmF1bHQsIGJ1dCBpdCByZXBsYWNlcyBtYWNybyBwYXJhbWV0ZXJzCi0rICAgaW5zaWRlIHN0cmlu Z3MgYW5kIGNoYXJhY3RlciBjb25zdGFudHMuICAqLwotKyNkZWZpbmUgRk9PKHgpICd4JwotK2lu dCB4bGM2X2NjX2FycmF5W0ZPTyhhKSA9PSAneCcgPyAxIDogLTFdOwotKwotK2ludCB0ZXN0IChp bnQgaSwgZG91YmxlIHgpOwotK3N0cnVjdCBzMSB7aW50ICgqZikgKGludCBhKTt9OwotK3N0cnVj dCBzMiB7aW50ICgqZikgKGRvdWJsZSBhKTt9OwotK2ludCBwYWlybmFtZXMgKGludCwgY2hhciAq KiwgRklMRSAqKCopKHN0cnVjdCBidWYgKiwgc3RydWN0IHN0YXQgKiwgaW50KSwgaW50LCBpbnQp OwotK2ludCBhcmdjOwotK2NoYXIgKiphcmd2OwotK2ludAotK21haW4gKCkKLSt7Ci0rcmV0dXJu IGYgKGUsIGFyZ3YsIDApICE9IGFyZ3ZbMF0gIHx8ICBmIChlLCBhcmd2LCAxKSAhPSBhcmd2WzFd OwotKyAgOwotKyAgcmV0dXJuIDA7Ci0rfQotK19BQ0VPRgotK2ZvciBhY19hcmcgaW4gJycgLXFs YW5nbHZsPWV4dGM4OSAtcWxhbmdsdmw9YW5zaSAtc3RkIFwKLSsJLUFlICItQWEgLURfSFBVWF9T T1VSQ0UiICItWGMgLURfX0VYVEVOU0lPTlNfXyIKLStkbwotKyAgQ0M9IiRhY19zYXZlX0NDICRh Y19hcmciCi0rICBybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0Ci0raWYgeyAoYWNfdHJ5PSIkYWNf Y29tcGlsZSIKLStjYXNlICIoKCRhY190cnkiIGluCi0rICAqXCIqIHwgKlxgKiB8ICpcXCopIGFj X3RyeV9lY2hvPVwkYWNfdHJ5OzsKLSsgICopIGFjX3RyeV9lY2hvPSRhY190cnk7OwotK2VzYWMK LStldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCi0r JGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4mNQotKyAgKGV2YWwgIiRhY19jb21waWxlIikgMj5j b25mdGVzdC5lcjEKLSsgIGFjX3N0YXR1cz0kPwotKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3Qu ZXIxID5jb25mdGVzdC5lcnIKLSsgIHJtIC1mIGNvbmZ0ZXN0LmVyMQotKyAgY2F0IGNvbmZ0ZXN0 LmVyciA+JjUKLSsgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIg PiY1Ci0rICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJiB7Ci0rCSB0ZXN0IC16ICIkYWNfY193ZXJy b3JfZmxhZyIgfHwKLSsJIHRlc3QgISAtcyBjb25mdGVzdC5lcnIKLSsgICAgICAgfSAmJiB0ZXN0 IC1zIGNvbmZ0ZXN0LiRhY19vYmpleHQ7IHRoZW4KLSsgIGFjX2N2X3Byb2dfY2NfYzg5PSRhY19h cmcKLStlbHNlCi0rICAkYXNfZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUK LStzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1Ci0rCi0rCi0rZmkKLSsKLStybSAt ZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0Ci0rICB0ZXN0ICJ4JGFjX2N2 X3Byb2dfY2NfYzg5IiAhPSAieG5vIiAmJiBicmVhawotK2RvbmUKLStybSAtZiBjb25mdGVzdC4k YWNfZXh0Ci0rQ0M9JGFjX3NhdmVfQ0MKLSsKLStmaQotKyMgQUNfQ0FDSEVfVkFMCi0rY2FzZSAi eCRhY19jdl9wcm9nX2NjX2M4OSIgaW4KLSsgIHgpCi0rICAgIHsgJGFzX2VjaG8gIiRhc19tZTok TElORU5POiByZXN1bHQ6IG5vbmUgbmVlZGVkIiA+JjUKLSskYXNfZWNobyAibm9uZSBuZWVkZWQi ID4mNjsgfSA7OwotKyAgeG5vKQotKyAgICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVz dWx0OiB1bnN1cHBvcnRlZCIgPiY1Ci0rJGFzX2VjaG8gInVuc3VwcG9ydGVkIiA+JjY7IH0gOzsK LSsgICopCi0rICAgIENDPSIkQ0MgJGFjX2N2X3Byb2dfY2NfYzg5IgotKyAgICB7ICRhc19lY2hv ICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3ZfcHJvZ19jY19jODkiID4mNQotKyRhc19l Y2hvICIkYWNfY3ZfcHJvZ19jY19jODkiID4mNjsgfSA7OwotK2VzYWMKLSsKLSsKLSthY19leHQ9 YwotK2FjX2NwcD0nJENQUCAkQ1BQRkxBR1MnCi0rYWNfY29tcGlsZT0nJENDIC1jICRDRkxBR1Mg JENQUEZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgPiY1JwotK2FjX2xpbms9JyRDQyAtbyBjb25mdGVz dCRhY19leGVleHQgJENGTEFHUyAkQ1BQRkxBR1MgJExERkxBR1MgY29uZnRlc3QuJGFjX2V4dCAk TElCUyA+JjUnCi0rYWNfY29tcGlsZXJfZ251PSRhY19jdl9jX2NvbXBpbGVyX2dudQotKwotK2Rl cGNjPSIkQ0MiICAgYW1fY29tcGlsZXJfbGlzdD0KLSsKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJ TkVOTzogY2hlY2tpbmcgZGVwZW5kZW5jeSBzdHlsZSBvZiAkZGVwY2MiID4mNQotKyRhc19lY2hv X24gImNoZWNraW5nIGRlcGVuZGVuY3kgc3R5bGUgb2YgJGRlcGNjLi4uICIgPiY2OyB9Ci0raWYg dGVzdCAiJHthbV9jdl9DQ19kZXBlbmRlbmNpZXNfY29tcGlsZXJfdHlwZStzZXR9IiA9IHNldDsg dGhlbgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rICBpZiB0ZXN0IC16 ICIkQU1ERVBfVFJVRSIgJiYgdGVzdCAtZiAiJGFtX2RlcGNvbXAiOyB0aGVuCi0rICAjIFdlIG1h a2UgYSBzdWJkaXIgYW5kIGRvIHRoZSB0ZXN0cyB0aGVyZS4gIE90aGVyd2lzZSB3ZSBjYW4gZW5k IHVwCi0rICAjIG1ha2luZyBib2d1cyBmaWxlcyB0aGF0IHdlIGRvbid0IGtub3cgYWJvdXQgYW5k IG5ldmVyIHJlbW92ZS4gIEZvcgotKyAgIyBpbnN0YW5jZSBpdCB3YXMgcmVwb3J0ZWQgdGhhdCBv biBIUC1VWCB0aGUgZ2NjIHRlc3Qgd2lsbCBlbmQgdXAKLSsgICMgbWFraW5nIGEgZHVtbXkgZmls ZSBuYW1lZCBgRCcgLS0gYmVjYXVzZSBgLU1EJyBtZWFucyBgcHV0IHRoZSBvdXRwdXQKLSsgICMg aW4gRCcuCi0rICBta2RpciBjb25mdGVzdC5kaXIKLSsgICMgQ29weSBkZXBjb21wIHRvIHN1YmRp ciBiZWNhdXNlIG90aGVyd2lzZSB3ZSB3b24ndCBmaW5kIGl0IGlmIHdlJ3JlCi0rICAjIHVzaW5n IGEgcmVsYXRpdmUgZGlyZWN0b3J5LgotKyAgY3AgIiRhbV9kZXBjb21wIiBjb25mdGVzdC5kaXIK LSsgIGNkIGNvbmZ0ZXN0LmRpcgotKyAgIyBXZSB3aWxsIGJ1aWxkIG9iamVjdHMgYW5kIGRlcGVu ZGVuY2llcyBpbiBhIHN1YmRpcmVjdG9yeSBiZWNhdXNlCi0rICAjIGl0IGhlbHBzIHRvIGRldGVj dCBpbmFwcGxpY2FibGUgZGVwZW5kZW5jeSBtb2Rlcy4gIEZvciBpbnN0YW5jZQotKyAgIyBib3Ro IFRydTY0J3MgY2MgYW5kIElDQyBzdXBwb3J0IC1NRCB0byBvdXRwdXQgZGVwZW5kZW5jaWVzIGFz IGEKLSsgICMgc2lkZSBlZmZlY3Qgb2YgY29tcGlsYXRpb24sIGJ1dCBJQ0Mgd2lsbCBwdXQgdGhl IGRlcGVuZGVuY2llcyBpbgotKyAgIyB0aGUgY3VycmVudCBkaXJlY3Rvcnkgd2hpbGUgVHJ1NjQg d2lsbCBwdXQgdGhlbSBpbiB0aGUgb2JqZWN0Ci0rICAjIGRpcmVjdG9yeS4KLSsgIG1rZGlyIHN1 YgotKwotKyAgYW1fY3ZfQ0NfZGVwZW5kZW5jaWVzX2NvbXBpbGVyX3R5cGU9bm9uZQotKyAgaWYg dGVzdCAiJGFtX2NvbXBpbGVyX2xpc3QiID0gIiI7IHRoZW4KLSsgICAgIGFtX2NvbXBpbGVyX2xp c3Q9YHNlZCAtbiAncy9eIypcKFthLXpBLVowLTldKlwpKSQvXDEvcCcgPCAuL2RlcGNvbXBgCi0r ICBmaQotKyAgZm9yIGRlcG1vZGUgaW4gJGFtX2NvbXBpbGVyX2xpc3Q7IGRvCi0rICAgICMgU2V0 dXAgYSBzb3VyY2Ugd2l0aCBtYW55IGRlcGVuZGVuY2llcywgYmVjYXVzZSBzb21lIGNvbXBpbGVy cwotKyAgICAjIGxpa2UgdG8gd3JhcCBsYXJnZSBkZXBlbmRlbmN5IGxpc3RzIG9uIGNvbHVtbiA4 MCAod2l0aCBcKSwgYW5kCi0rICAgICMgd2Ugc2hvdWxkIG5vdCBjaG9vc2UgYSBkZXBjb21wIG1v ZGUgd2hpY2ggaXMgY29uZnVzZWQgYnkgdGhpcy4KLSsgICAgIwotKyAgICAjIFdlIG5lZWQgdG8g cmVjcmVhdGUgdGhlc2UgZmlsZXMgZm9yIGVhY2ggdGVzdCwgYXMgdGhlIGNvbXBpbGVyIG1heQot KyAgICAjIG92ZXJ3cml0ZSBzb21lIG9mIHRoZW0gd2hlbiB0ZXN0aW5nIHdpdGggb2JzY3VyZSBj b21tYW5kIGxpbmVzLgotKyAgICAjIFRoaXMgaGFwcGVucyBhdCBsZWFzdCB3aXRoIHRoZSBBSVgg QyBjb21waWxlci4KLSsgICAgOiA+IHN1Yi9jb25mdGVzdC5jCi0rICAgIGZvciBpIGluIDEgMiAz IDQgNSA2OyBkbwotKyAgICAgIGVjaG8gJyNpbmNsdWRlICJjb25mdHN0JyRpJy5oIicgPj4gc3Vi L2NvbmZ0ZXN0LmMKLSsgICAgICAjIFVzaW5nIGA6ID4gc3ViL2NvbmZ0c3QkaS5oJyBjcmVhdGVz IG9ubHkgc3ViL2NvbmZ0c3QxLmggd2l0aAotKyAgICAgICMgU29sYXJpcyA4J3Mgey91c3IsfS9i aW4vc2guCi0rICAgICAgdG91Y2ggc3ViL2NvbmZ0c3QkaS5oCi0rICAgIGRvbmUKLSsgICAgZWNo byAiJHthbV9faW5jbHVkZX0gJHthbV9fcXVvdGV9c3ViL2NvbmZ0ZXN0LlBvJHthbV9fcXVvdGV9 IiA+IGNvbmZtZgotKwotKyAgICBjYXNlICRkZXBtb2RlIGluCi0rICAgIG5vc2lkZWVmZmVjdCkK LSsgICAgICAjIGFmdGVyIHRoaXMgdGFnLCBtZWNoYW5pc21zIGFyZSBub3QgYnkgc2lkZS1lZmZl Y3QsIHNvIHRoZXknbGwKLSsgICAgICAjIG9ubHkgYmUgdXNlZCB3aGVuIGV4cGxpY2l0bHkgcmVx dWVzdGVkCi0rICAgICAgaWYgdGVzdCAieCRlbmFibGVfZGVwZW5kZW5jeV90cmFja2luZyIgPSB4 eWVzOyB0aGVuCi0rCWNvbnRpbnVlCi0rICAgICAgZWxzZQotKwlicmVhawotKyAgICAgIGZpCi0r ICAgICAgOzsKLSsgICAgbm9uZSkgYnJlYWsgOzsKLSsgICAgZXNhYwotKyAgICAjIFdlIGNoZWNr IHdpdGggYC1jJyBhbmQgYC1vJyBmb3IgdGhlIHNha2Ugb2YgdGhlICJkYXNobXN0ZG91dCIKLSsg ICAgIyBtb2RlLiAgSXQgdHVybnMgb3V0IHRoYXQgdGhlIFN1blBybyBDKysgY29tcGlsZXIgZG9l cyBub3QgcHJvcGVybHkKLSsgICAgIyBoYW5kbGUgYC1NIC1vJywgYW5kIHdlIG5lZWQgdG8gZGV0 ZWN0IHRoaXMuCi0rICAgIGlmIGRlcG1vZGU9JGRlcG1vZGUgXAotKyAgICAgICBzb3VyY2U9c3Vi L2NvbmZ0ZXN0LmMgb2JqZWN0PXN1Yi9jb25mdGVzdC4ke09CSkVYVC1vfSBcCi0rICAgICAgIGRl cGZpbGU9c3ViL2NvbmZ0ZXN0LlBvIHRtcGRlcGZpbGU9c3ViL2NvbmZ0ZXN0LlRQbyBcCi0rICAg ICAgICRTSEVMTCAuL2RlcGNvbXAgJGRlcGNjIC1jIC1vIHN1Yi9jb25mdGVzdC4ke09CSkVYVC1v fSBzdWIvY29uZnRlc3QuYyBcCi0rICAgICAgICAgPi9kZXYvbnVsbCAyPmNvbmZ0ZXN0LmVyciAm JgotKyAgICAgICBncmVwIHN1Yi9jb25mdHN0MS5oIHN1Yi9jb25mdGVzdC5QbyA+IC9kZXYvbnVs bCAyPiYxICYmCi0rICAgICAgIGdyZXAgc3ViL2NvbmZ0c3Q2Lmggc3ViL2NvbmZ0ZXN0LlBvID4g L2Rldi9udWxsIDI+JjEgJiYKLSsgICAgICAgZ3JlcCBzdWIvY29uZnRlc3QuJHtPQkpFWFQtb30g c3ViL2NvbmZ0ZXN0LlBvID4gL2Rldi9udWxsIDI+JjEgJiYKLSsgICAgICAgJHtNQUtFLW1ha2V9 IC1zIC1mIGNvbmZtZiA+IC9kZXYvbnVsbCAyPiYxOyB0aGVuCi0rICAgICAgIyBpY2MgZG9lc24n dCBjaG9rZSBvbiB1bmtub3duIG9wdGlvbnMsIGl0IHdpbGwganVzdCBpc3N1ZSB3YXJuaW5ncwot KyAgICAgICMgb3IgcmVtYXJrcyAoZXZlbiB3aXRoIC1XZXJyb3IpLiAgU28gd2UgZ3JlcCBzdGRl cnIgZm9yIGFueSBtZXNzYWdlCi0rICAgICAgIyB0aGF0IHNheXMgYW4gb3B0aW9uIHdhcyBpZ25v cmVkIG9yIG5vdCBzdXBwb3J0ZWQuCi0rICAgICAgIyBXaGVuIGdpdmVuIC1NUCwgaWNjIDcuMCBh bmQgNy4xIGNvbXBsYWluIHRodXNseToKLSsgICAgICAjICAgaWNjOiBDb21tYW5kIGxpbmUgd2Fy bmluZzogaWdub3Jpbmcgb3B0aW9uICctTSc7IG5vIGFyZ3VtZW50IHJlcXVpcmVkCi0rICAgICAg IyBUaGUgZGlhZ25vc2lzIGNoYW5nZWQgaW4gaWNjIDguMDoKLSsgICAgICAjICAgaWNjOiBDb21t YW5kIGxpbmUgcmVtYXJrOiBvcHRpb24gJy1NUCcgbm90IHN1cHBvcnRlZAotKyAgICAgIGlmIChn cmVwICdpZ25vcmluZyBvcHRpb24nIGNvbmZ0ZXN0LmVyciB8fAotKyAgICAgICAgICBncmVwICdu b3Qgc3VwcG9ydGVkJyBjb25mdGVzdC5lcnIpID4vZGV2L251bGwgMj4mMTsgdGhlbiA6OyBlbHNl Ci0rICAgICAgICBhbV9jdl9DQ19kZXBlbmRlbmNpZXNfY29tcGlsZXJfdHlwZT0kZGVwbW9kZQot KyAgICAgICAgYnJlYWsKLSsgICAgICBmaQotKyAgICBmaQotKyAgZG9uZQotKwotKyAgY2QgLi4K LSsgIHJtIC1yZiBjb25mdGVzdC5kaXIKLStlbHNlCi0rICBhbV9jdl9DQ19kZXBlbmRlbmNpZXNf Y29tcGlsZXJfdHlwZT1ub25lCi0rZmkKLSsKLStmaQotK3sgJGFzX2VjaG8gIiRhc19tZTokTElO RU5POiByZXN1bHQ6ICRhbV9jdl9DQ19kZXBlbmRlbmNpZXNfY29tcGlsZXJfdHlwZSIgPiY1Ci0r JGFzX2VjaG8gIiRhbV9jdl9DQ19kZXBlbmRlbmNpZXNfY29tcGlsZXJfdHlwZSIgPiY2OyB9Ci0r Q0NERVBNT0RFPWRlcG1vZGU9JGFtX2N2X0NDX2RlcGVuZGVuY2llc19jb21waWxlcl90eXBlCi0r Ci0rIGlmCi0rICB0ZXN0ICJ4JGVuYWJsZV9kZXBlbmRlbmN5X3RyYWNraW5nIiAhPSB4bm8gXAot KyAgJiYgdGVzdCAiJGFtX2N2X0NDX2RlcGVuZGVuY2llc19jb21waWxlcl90eXBlIiA9IGdjYzM7 IHRoZW4KLSsgIGFtX19mYXN0ZGVwQ0NfVFJVRT0KLSsgIGFtX19mYXN0ZGVwQ0NfRkFMU0U9JyMn Ci0rZWxzZQotKyAgYW1fX2Zhc3RkZXBDQ19UUlVFPScjJwotKyAgYW1fX2Zhc3RkZXBDQ19GQUxT RT0KLStmaQotKwotKwotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3Ig YSBzZWQgdGhhdCBkb2VzIG5vdCB0cnVuY2F0ZSBvdXRwdXQiID4mNQotKyRhc19lY2hvX24gImNo ZWNraW5nIGZvciBhIHNlZCB0aGF0IGRvZXMgbm90IHRydW5jYXRlIG91dHB1dC4uLiAiID4mNjsg fQotK2lmIHRlc3QgIiR7YWNfY3ZfcGF0aF9TRUQrc2V0fSIgPSBzZXQ7IHRoZW4KLSsgICRhc19l Y2hvX24gIihjYWNoZWQpICIgPiY2Ci0rZWxzZQotKyAgICAgICAgICAgIGFjX3NjcmlwdD1zL2Fh YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhL2JiYmJiYmJiYmJiYmJiYmJiYmJiYmJi YmJiYmJiYmJiYi8KLSsgICAgIGZvciBhY19pIGluIDEgMiAzIDQgNSA2IDc7IGRvCi0rICAgICAg IGFjX3NjcmlwdD0iJGFjX3NjcmlwdCRhc19ubCRhY19zY3JpcHQiCi0rICAgICBkb25lCi0rICAg ICBlY2hvICIkYWNfc2NyaXB0IiAyPi9kZXYvbnVsbCB8IHNlZCA5OXEgPmNvbmZ0ZXN0LnNlZAot KyAgICAgJGFzX3Vuc2V0IGFjX3NjcmlwdCB8fCBhY19zY3JpcHQ9Ci0rICAgICBpZiB0ZXN0IC16 ICIkU0VEIjsgdGhlbgotKyAgYWNfcGF0aF9TRURfZm91bmQ9ZmFsc2UKLSsgICMgTG9vcCB0aHJv dWdoIHRoZSB1c2VyJ3MgcGF0aCBhbmQgdGVzdCBmb3IgZWFjaCBvZiBQUk9HTkFNRS1MSVNUCi0r ICBhc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCi0rZm9yIGFzX2RpciBpbiAk UEFUSAotK2RvCi0rICBJRlM9JGFzX3NhdmVfSUZTCi0rICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBh c19kaXI9LgotKyAgZm9yIGFjX3Byb2cgaW4gc2VkIGdzZWQ7IGRvCi0rICAgIGZvciBhY19leGVj X2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9leHRlbnNpb25zOyBkbwotKyAgICAgIGFjX3BhdGhf U0VEPSIkYXNfZGlyLyRhY19wcm9nJGFjX2V4ZWNfZXh0IgotKyAgICAgIHsgdGVzdCAtZiAiJGFj X3BhdGhfU0VEIiAmJiAkYXNfdGVzdF94ICIkYWNfcGF0aF9TRUQiOyB9IHx8IGNvbnRpbnVlCi0r IyBDaGVjayBmb3IgR05VIGFjX3BhdGhfU0VEIGFuZCBzZWxlY3QgaXQgaWYgaXQgaXMgZm91bmQu Ci0rICAjIENoZWNrIGZvciBHTlUgJGFjX3BhdGhfU0VECi0rY2FzZSBgIiRhY19wYXRoX1NFRCIg LS12ZXJzaW9uIDI+JjFgIGluCi0rKkdOVSopCi0rICBhY19jdl9wYXRoX1NFRD0iJGFjX3BhdGhf U0VEIiBhY19wYXRoX1NFRF9mb3VuZD06OzsKLSsqKQotKyAgYWNfY291bnQ9MAotKyAgJGFzX2Vj aG9fbiAwMTIzNDU2Nzg5ID4iY29uZnRlc3QuaW4iCi0rICB3aGlsZSA6Ci0rICBkbwotKyAgICBj YXQgImNvbmZ0ZXN0LmluIiAiY29uZnRlc3QuaW4iID4iY29uZnRlc3QudG1wIgotKyAgICBtdiAi Y29uZnRlc3QudG1wIiAiY29uZnRlc3QuaW4iCi0rICAgIGNwICJjb25mdGVzdC5pbiIgImNvbmZ0 ZXN0Lm5sIgotKyAgICAkYXNfZWNobyAnJyA+PiAiY29uZnRlc3QubmwiCi0rICAgICIkYWNfcGF0 aF9TRUQiIC1mIGNvbmZ0ZXN0LnNlZCA8ICJjb25mdGVzdC5ubCIgPiJjb25mdGVzdC5vdXQiIDI+ L2Rldi9udWxsIHx8IGJyZWFrCi0rICAgIGRpZmYgImNvbmZ0ZXN0Lm91dCIgImNvbmZ0ZXN0Lm5s IiA+L2Rldi9udWxsIDI+JjEgfHwgYnJlYWsKLSsgICAgYWNfY291bnQ9YGV4cHIgJGFjX2NvdW50 ICsgMWAKLSsgICAgaWYgdGVzdCAkYWNfY291bnQgLWd0ICR7YWNfcGF0aF9TRURfbWF4LTB9OyB0 aGVuCi0rICAgICAgIyBCZXN0IG9uZSBzbyBmYXIsIHNhdmUgaXQgYnV0IGtlZXAgbG9va2luZyBm b3IgYSBiZXR0ZXIgb25lCi0rICAgICAgYWNfY3ZfcGF0aF9TRUQ9IiRhY19wYXRoX1NFRCIKLSsg ICAgICBhY19wYXRoX1NFRF9tYXg9JGFjX2NvdW50Ci0rICAgIGZpCi0rICAgICMgMTAqKDJeMTAp IGNoYXJzIGFzIGlucHV0IHNlZW1zIG1vcmUgdGhhbiBlbm91Z2gKLSsgICAgdGVzdCAkYWNfY291 bnQgLWd0IDEwICYmIGJyZWFrCi0rICBkb25lCi0rICBybSAtZiBjb25mdGVzdC5pbiBjb25mdGVz dC50bXAgY29uZnRlc3QubmwgY29uZnRlc3Qub3V0OzsKLStlc2FjCi0rCi0rICAgICAgJGFjX3Bh dGhfU0VEX2ZvdW5kICYmIGJyZWFrIDMKLSsgICAgZG9uZQotKyAgZG9uZQotK2RvbmUKLStJRlM9 JGFzX3NhdmVfSUZTCi0rICBpZiB0ZXN0IC16ICIkYWNfY3ZfcGF0aF9TRUQiOyB0aGVuCi0rICAg IHsgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBubyBhY2NlcHRhYmxlIHNlZCBj b3VsZCBiZSBmb3VuZCBpbiBcJFBBVEgiID4mNQotKyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBu byBhY2NlcHRhYmxlIHNlZCBjb3VsZCBiZSBmb3VuZCBpbiBcJFBBVEgiID4mMjt9Ci0rICAgeyAo ZXhpdCAxKTsgZXhpdCAxOyB9OyB9Ci0rICBmaQotK2Vsc2UKLSsgIGFjX2N2X3BhdGhfU0VEPSRT RUQKLStmaQotKwotK2ZpCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFj X2N2X3BhdGhfU0VEIiA+JjUKLSskYXNfZWNobyAiJGFjX2N2X3BhdGhfU0VEIiA+JjY7IH0KLSsg U0VEPSIkYWNfY3ZfcGF0aF9TRUQiCi0rICBybSAtZiBjb25mdGVzdC5zZWQKLSsKLSt0ZXN0IC16 ICIkU0VEIiAmJiBTRUQ9c2VkCi0rWHNlZD0iJFNFRCAtZSAxcy9eWC8vIgotKwotKwotKwotKwot KwotKwotKwotKwotKwotKwotKwotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2lu ZyBmb3IgZ3JlcCB0aGF0IGhhbmRsZXMgbG9uZyBsaW5lcyBhbmQgLWUiID4mNQotKyRhc19lY2hv X24gImNoZWNraW5nIGZvciBncmVwIHRoYXQgaGFuZGxlcyBsb25nIGxpbmVzIGFuZCAtZS4uLiAi ID4mNjsgfQotK2lmIHRlc3QgIiR7YWNfY3ZfcGF0aF9HUkVQK3NldH0iID0gc2V0OyB0aGVuCi0r ICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsgIGlmIHRlc3QgLXogIiRHUkVQ IjsgdGhlbgotKyAgYWNfcGF0aF9HUkVQX2ZvdW5kPWZhbHNlCi0rICAjIExvb3AgdGhyb3VnaCB0 aGUgdXNlcidzIHBhdGggYW5kIHRlc3QgZm9yIGVhY2ggb2YgUFJPR05BTUUtTElTVAotKyAgYXNf c2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgotK2ZvciBhc19kaXIgaW4gJFBBVEgk UEFUSF9TRVBBUkFUT1IvdXNyL3hwZzQvYmluCi0rZG8KLSsgIElGUz0kYXNfc2F2ZV9JRlMKLSsg IHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCi0rICBmb3IgYWNfcHJvZyBpbiBncmVwIGdn cmVwOyBkbwotKyAgICBmb3IgYWNfZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1dGFibGVfZXh0ZW5z aW9uczsgZG8KLSsgICAgICBhY19wYXRoX0dSRVA9IiRhc19kaXIvJGFjX3Byb2ckYWNfZXhlY19l eHQiCi0rICAgICAgeyB0ZXN0IC1mICIkYWNfcGF0aF9HUkVQIiAmJiAkYXNfdGVzdF94ICIkYWNf cGF0aF9HUkVQIjsgfSB8fCBjb250aW51ZQotKyMgQ2hlY2sgZm9yIEdOVSBhY19wYXRoX0dSRVAg YW5kIHNlbGVjdCBpdCBpZiBpdCBpcyBmb3VuZC4KLSsgICMgQ2hlY2sgZm9yIEdOVSAkYWNfcGF0 aF9HUkVQCi0rY2FzZSBgIiRhY19wYXRoX0dSRVAiIC0tdmVyc2lvbiAyPiYxYCBpbgotKypHTlUq KQotKyAgYWNfY3ZfcGF0aF9HUkVQPSIkYWNfcGF0aF9HUkVQIiBhY19wYXRoX0dSRVBfZm91bmQ9 Ojs7Ci0rKikKLSsgIGFjX2NvdW50PTAKLSsgICRhc19lY2hvX24gMDEyMzQ1Njc4OSA+ImNvbmZ0 ZXN0LmluIgotKyAgd2hpbGUgOgotKyAgZG8KLSsgICAgY2F0ICJjb25mdGVzdC5pbiIgImNvbmZ0 ZXN0LmluIiA+ImNvbmZ0ZXN0LnRtcCIKLSsgICAgbXYgImNvbmZ0ZXN0LnRtcCIgImNvbmZ0ZXN0 LmluIgotKyAgICBjcCAiY29uZnRlc3QuaW4iICJjb25mdGVzdC5ubCIKLSsgICAgJGFzX2VjaG8g J0dSRVAnID4+ICJjb25mdGVzdC5ubCIKLSsgICAgIiRhY19wYXRoX0dSRVAiIC1lICdHUkVQJCcg LWUgJy0oY2Fubm90IG1hdGNoKS0nIDwgImNvbmZ0ZXN0Lm5sIiA+ImNvbmZ0ZXN0Lm91dCIgMj4v ZGV2L251bGwgfHwgYnJlYWsKLSsgICAgZGlmZiAiY29uZnRlc3Qub3V0IiAiY29uZnRlc3Qubmwi ID4vZGV2L251bGwgMj4mMSB8fCBicmVhawotKyAgICBhY19jb3VudD1gZXhwciAkYWNfY291bnQg KyAxYAotKyAgICBpZiB0ZXN0ICRhY19jb3VudCAtZ3QgJHthY19wYXRoX0dSRVBfbWF4LTB9OyB0 aGVuCi0rICAgICAgIyBCZXN0IG9uZSBzbyBmYXIsIHNhdmUgaXQgYnV0IGtlZXAgbG9va2luZyBm b3IgYSBiZXR0ZXIgb25lCi0rICAgICAgYWNfY3ZfcGF0aF9HUkVQPSIkYWNfcGF0aF9HUkVQIgot KyAgICAgIGFjX3BhdGhfR1JFUF9tYXg9JGFjX2NvdW50Ci0rICAgIGZpCi0rICAgICMgMTAqKDJe MTApIGNoYXJzIGFzIGlucHV0IHNlZW1zIG1vcmUgdGhhbiBlbm91Z2gKLSsgICAgdGVzdCAkYWNf Y291bnQgLWd0IDEwICYmIGJyZWFrCi0rICBkb25lCi0rICBybSAtZiBjb25mdGVzdC5pbiBjb25m dGVzdC50bXAgY29uZnRlc3QubmwgY29uZnRlc3Qub3V0OzsKLStlc2FjCi0rCi0rICAgICAgJGFj X3BhdGhfR1JFUF9mb3VuZCAmJiBicmVhayAzCi0rICAgIGRvbmUKLSsgIGRvbmUKLStkb25lCi0r SUZTPSRhc19zYXZlX0lGUwotKyAgaWYgdGVzdCAteiAiJGFjX2N2X3BhdGhfR1JFUCI7IHRoZW4K LSsgICAgeyB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IG5vIGFjY2VwdGFibGUg Z3JlcCBjb3VsZCBiZSBmb3VuZCBpbiAkUEFUSCRQQVRIX1NFUEFSQVRPUi91c3IveHBnNC9iaW4i ID4mNQotKyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBubyBhY2NlcHRhYmxlIGdyZXAgY291bGQg YmUgZm91bmQgaW4gJFBBVEgkUEFUSF9TRVBBUkFUT1IvdXNyL3hwZzQvYmluIiA+JjI7fQotKyAg IHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQotKyAgZmkKLStlbHNlCi0rICBhY19jdl9wYXRoX0dS RVA9JEdSRVAKLStmaQotKwotK2ZpCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3Vs dDogJGFjX2N2X3BhdGhfR1JFUCIgPiY1Ci0rJGFzX2VjaG8gIiRhY19jdl9wYXRoX0dSRVAiID4m NjsgfQotKyBHUkVQPSIkYWNfY3ZfcGF0aF9HUkVQIgotKwotKwotK3sgJGFzX2VjaG8gIiRhc19t ZTokTElORU5POiBjaGVja2luZyBmb3IgZWdyZXAiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5n IGZvciBlZ3JlcC4uLiAiID4mNjsgfQotK2lmIHRlc3QgIiR7YWNfY3ZfcGF0aF9FR1JFUCtzZXR9 IiA9IHNldDsgdGhlbgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rICBp ZiBlY2hvIGEgfCAkR1JFUCAtRSAnKGF8YiknID4vZGV2L251bGwgMj4mMQotKyAgIHRoZW4gYWNf Y3ZfcGF0aF9FR1JFUD0iJEdSRVAgLUUiCi0rICAgZWxzZQotKyAgICAgaWYgdGVzdCAteiAiJEVH UkVQIjsgdGhlbgotKyAgYWNfcGF0aF9FR1JFUF9mb3VuZD1mYWxzZQotKyAgIyBMb29wIHRocm91 Z2ggdGhlIHVzZXIncyBwYXRoIGFuZCB0ZXN0IGZvciBlYWNoIG9mIFBST0dOQU1FLUxJU1QKLSsg IGFzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IKLStmb3IgYXNfZGlyIGluICRQ QVRIJFBBVEhfU0VQQVJBVE9SL3Vzci94cGc0L2JpbgotK2RvCi0rICBJRlM9JGFzX3NhdmVfSUZT Ci0rICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgotKyAgZm9yIGFjX3Byb2cgaW4gZWdy ZXA7IGRvCi0rICAgIGZvciBhY19leGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9leHRlbnNp b25zOyBkbwotKyAgICAgIGFjX3BhdGhfRUdSRVA9IiRhc19kaXIvJGFjX3Byb2ckYWNfZXhlY19l eHQiCi0rICAgICAgeyB0ZXN0IC1mICIkYWNfcGF0aF9FR1JFUCIgJiYgJGFzX3Rlc3RfeCAiJGFj X3BhdGhfRUdSRVAiOyB9IHx8IGNvbnRpbnVlCi0rIyBDaGVjayBmb3IgR05VIGFjX3BhdGhfRUdS RVAgYW5kIHNlbGVjdCBpdCBpZiBpdCBpcyBmb3VuZC4KLSsgICMgQ2hlY2sgZm9yIEdOVSAkYWNf cGF0aF9FR1JFUAotK2Nhc2UgYCIkYWNfcGF0aF9FR1JFUCIgLS12ZXJzaW9uIDI+JjFgIGluCi0r KkdOVSopCi0rICBhY19jdl9wYXRoX0VHUkVQPSIkYWNfcGF0aF9FR1JFUCIgYWNfcGF0aF9FR1JF UF9mb3VuZD06OzsKLSsqKQotKyAgYWNfY291bnQ9MAotKyAgJGFzX2VjaG9fbiAwMTIzNDU2Nzg5 ID4iY29uZnRlc3QuaW4iCi0rICB3aGlsZSA6Ci0rICBkbwotKyAgICBjYXQgImNvbmZ0ZXN0Lmlu IiAiY29uZnRlc3QuaW4iID4iY29uZnRlc3QudG1wIgotKyAgICBtdiAiY29uZnRlc3QudG1wIiAi Y29uZnRlc3QuaW4iCi0rICAgIGNwICJjb25mdGVzdC5pbiIgImNvbmZ0ZXN0Lm5sIgotKyAgICAk YXNfZWNobyAnRUdSRVAnID4+ICJjb25mdGVzdC5ubCIKLSsgICAgIiRhY19wYXRoX0VHUkVQIiAn RUdSRVAkJyA8ICJjb25mdGVzdC5ubCIgPiJjb25mdGVzdC5vdXQiIDI+L2Rldi9udWxsIHx8IGJy ZWFrCi0rICAgIGRpZmYgImNvbmZ0ZXN0Lm91dCIgImNvbmZ0ZXN0Lm5sIiA+L2Rldi9udWxsIDI+ JjEgfHwgYnJlYWsKLSsgICAgYWNfY291bnQ9YGV4cHIgJGFjX2NvdW50ICsgMWAKLSsgICAgaWYg dGVzdCAkYWNfY291bnQgLWd0ICR7YWNfcGF0aF9FR1JFUF9tYXgtMH07IHRoZW4KLSsgICAgICAj IEJlc3Qgb25lIHNvIGZhciwgc2F2ZSBpdCBidXQga2VlcCBsb29raW5nIGZvciBhIGJldHRlciBv bmUKLSsgICAgICBhY19jdl9wYXRoX0VHUkVQPSIkYWNfcGF0aF9FR1JFUCIKLSsgICAgICBhY19w YXRoX0VHUkVQX21heD0kYWNfY291bnQKLSsgICAgZmkKLSsgICAgIyAxMCooMl4xMCkgY2hhcnMg YXMgaW5wdXQgc2VlbXMgbW9yZSB0aGFuIGVub3VnaAotKyAgICB0ZXN0ICRhY19jb3VudCAtZ3Qg MTAgJiYgYnJlYWsKLSsgIGRvbmUKLSsgIHJtIC1mIGNvbmZ0ZXN0LmluIGNvbmZ0ZXN0LnRtcCBj b25mdGVzdC5ubCBjb25mdGVzdC5vdXQ7OwotK2VzYWMKLSsKLSsgICAgICAkYWNfcGF0aF9FR1JF UF9mb3VuZCAmJiBicmVhayAzCi0rICAgIGRvbmUKLSsgIGRvbmUKLStkb25lCi0rSUZTPSRhc19z YXZlX0lGUwotKyAgaWYgdGVzdCAteiAiJGFjX2N2X3BhdGhfRUdSRVAiOyB0aGVuCi0rICAgIHsg eyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBubyBhY2NlcHRhYmxlIGVncmVwIGNv dWxkIGJlIGZvdW5kIGluICRQQVRIJFBBVEhfU0VQQVJBVE9SL3Vzci94cGc0L2JpbiIgPiY1Ci0r JGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IG5vIGFjY2VwdGFibGUgZWdyZXAgY291bGQgYmUgZm91 bmQgaW4gJFBBVEgkUEFUSF9TRVBBUkFUT1IvdXNyL3hwZzQvYmluIiA+JjI7fQotKyAgIHsgKGV4 aXQgMSk7IGV4aXQgMTsgfTsgfQotKyAgZmkKLStlbHNlCi0rICBhY19jdl9wYXRoX0VHUkVQPSRF R1JFUAotK2ZpCi0rCi0rICAgZmkKLStmaQotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBy ZXN1bHQ6ICRhY19jdl9wYXRoX0VHUkVQIiA+JjUKLSskYXNfZWNobyAiJGFjX2N2X3BhdGhfRUdS RVAiID4mNjsgfQotKyBFR1JFUD0iJGFjX2N2X3BhdGhfRUdSRVAiCi0rCi0rCi0reyAkYXNfZWNo byAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciBmZ3JlcCIgPiY1Ci0rJGFzX2VjaG9fbiAi Y2hlY2tpbmcgZm9yIGZncmVwLi4uICIgPiY2OyB9Ci0raWYgdGVzdCAiJHthY19jdl9wYXRoX0ZH UkVQK3NldH0iID0gc2V0OyB0aGVuCi0rICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vs c2UKLSsgIGlmIGVjaG8gJ2FiKmMnIHwgJEdSRVAgLUYgJ2FiKmMnID4vZGV2L251bGwgMj4mMQot KyAgIHRoZW4gYWNfY3ZfcGF0aF9GR1JFUD0iJEdSRVAgLUYiCi0rICAgZWxzZQotKyAgICAgaWYg dGVzdCAteiAiJEZHUkVQIjsgdGhlbgotKyAgYWNfcGF0aF9GR1JFUF9mb3VuZD1mYWxzZQotKyAg IyBMb29wIHRocm91Z2ggdGhlIHVzZXIncyBwYXRoIGFuZCB0ZXN0IGZvciBlYWNoIG9mIFBST0dO QU1FLUxJU1QKLSsgIGFzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IKLStmb3Ig YXNfZGlyIGluICRQQVRIJFBBVEhfU0VQQVJBVE9SL3Vzci94cGc0L2JpbgotK2RvCi0rICBJRlM9 JGFzX3NhdmVfSUZTCi0rICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgotKyAgZm9yIGFj X3Byb2cgaW4gZmdyZXA7IGRvCi0rICAgIGZvciBhY19leGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0 YWJsZV9leHRlbnNpb25zOyBkbwotKyAgICAgIGFjX3BhdGhfRkdSRVA9IiRhc19kaXIvJGFjX3By b2ckYWNfZXhlY19leHQiCi0rICAgICAgeyB0ZXN0IC1mICIkYWNfcGF0aF9GR1JFUCIgJiYgJGFz X3Rlc3RfeCAiJGFjX3BhdGhfRkdSRVAiOyB9IHx8IGNvbnRpbnVlCi0rIyBDaGVjayBmb3IgR05V IGFjX3BhdGhfRkdSRVAgYW5kIHNlbGVjdCBpdCBpZiBpdCBpcyBmb3VuZC4KLSsgICMgQ2hlY2sg Zm9yIEdOVSAkYWNfcGF0aF9GR1JFUAotK2Nhc2UgYCIkYWNfcGF0aF9GR1JFUCIgLS12ZXJzaW9u IDI+JjFgIGluCi0rKkdOVSopCi0rICBhY19jdl9wYXRoX0ZHUkVQPSIkYWNfcGF0aF9GR1JFUCIg YWNfcGF0aF9GR1JFUF9mb3VuZD06OzsKLSsqKQotKyAgYWNfY291bnQ9MAotKyAgJGFzX2VjaG9f biAwMTIzNDU2Nzg5ID4iY29uZnRlc3QuaW4iCi0rICB3aGlsZSA6Ci0rICBkbwotKyAgICBjYXQg ImNvbmZ0ZXN0LmluIiAiY29uZnRlc3QuaW4iID4iY29uZnRlc3QudG1wIgotKyAgICBtdiAiY29u ZnRlc3QudG1wIiAiY29uZnRlc3QuaW4iCi0rICAgIGNwICJjb25mdGVzdC5pbiIgImNvbmZ0ZXN0 Lm5sIgotKyAgICAkYXNfZWNobyAnRkdSRVAnID4+ICJjb25mdGVzdC5ubCIKLSsgICAgIiRhY19w YXRoX0ZHUkVQIiBGR1JFUCA8ICJjb25mdGVzdC5ubCIgPiJjb25mdGVzdC5vdXQiIDI+L2Rldi9u dWxsIHx8IGJyZWFrCi0rICAgIGRpZmYgImNvbmZ0ZXN0Lm91dCIgImNvbmZ0ZXN0Lm5sIiA+L2Rl di9udWxsIDI+JjEgfHwgYnJlYWsKLSsgICAgYWNfY291bnQ9YGV4cHIgJGFjX2NvdW50ICsgMWAK LSsgICAgaWYgdGVzdCAkYWNfY291bnQgLWd0ICR7YWNfcGF0aF9GR1JFUF9tYXgtMH07IHRoZW4K LSsgICAgICAjIEJlc3Qgb25lIHNvIGZhciwgc2F2ZSBpdCBidXQga2VlcCBsb29raW5nIGZvciBh IGJldHRlciBvbmUKLSsgICAgICBhY19jdl9wYXRoX0ZHUkVQPSIkYWNfcGF0aF9GR1JFUCIKLSsg ICAgICBhY19wYXRoX0ZHUkVQX21heD0kYWNfY291bnQKLSsgICAgZmkKLSsgICAgIyAxMCooMl4x MCkgY2hhcnMgYXMgaW5wdXQgc2VlbXMgbW9yZSB0aGFuIGVub3VnaAotKyAgICB0ZXN0ICRhY19j b3VudCAtZ3QgMTAgJiYgYnJlYWsKLSsgIGRvbmUKLSsgIHJtIC1mIGNvbmZ0ZXN0LmluIGNvbmZ0 ZXN0LnRtcCBjb25mdGVzdC5ubCBjb25mdGVzdC5vdXQ7OwotK2VzYWMKLSsKLSsgICAgICAkYWNf cGF0aF9GR1JFUF9mb3VuZCAmJiBicmVhayAzCi0rICAgIGRvbmUKLSsgIGRvbmUKLStkb25lCi0r SUZTPSRhc19zYXZlX0lGUwotKyAgaWYgdGVzdCAteiAiJGFjX2N2X3BhdGhfRkdSRVAiOyB0aGVu Ci0rICAgIHsgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBubyBhY2NlcHRhYmxl IGZncmVwIGNvdWxkIGJlIGZvdW5kIGluICRQQVRIJFBBVEhfU0VQQVJBVE9SL3Vzci94cGc0L2Jp biIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IG5vIGFjY2VwdGFibGUgZmdyZXAgY291 bGQgYmUgZm91bmQgaW4gJFBBVEgkUEFUSF9TRVBBUkFUT1IvdXNyL3hwZzQvYmluIiA+JjI7fQot KyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQotKyAgZmkKLStlbHNlCi0rICBhY19jdl9wYXRo X0ZHUkVQPSRGR1JFUAotK2ZpCi0rCi0rICAgZmkKLStmaQotK3sgJGFzX2VjaG8gIiRhc19tZTok TElORU5POiByZXN1bHQ6ICRhY19jdl9wYXRoX0ZHUkVQIiA+JjUKLSskYXNfZWNobyAiJGFjX2N2 X3BhdGhfRkdSRVAiID4mNjsgfQotKyBGR1JFUD0iJGFjX2N2X3BhdGhfRkdSRVAiCi0rCi0rCi0r dGVzdCAteiAiJEdSRVAiICYmIEdSRVA9Z3JlcAotKwotKwotKwotKwotKwotKwotKwotKwotKwot KwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKyMgQ2hlY2sgd2hldGhlciAtLXdpdGgtZ251 LWxkIHdhcyBnaXZlbi4KLStpZiB0ZXN0ICIke3dpdGhfZ251X2xkK3NldH0iID0gc2V0OyB0aGVu Ci0rICB3aXRodmFsPSR3aXRoX2dudV9sZDsgdGVzdCAiJHdpdGh2YWwiID0gbm8gfHwgd2l0aF9n bnVfbGQ9eWVzCi0rZWxzZQotKyAgd2l0aF9nbnVfbGQ9bm8KLStmaQotKwotK2FjX3Byb2c9bGQK LStpZiB0ZXN0ICIkR0NDIiA9IHllczsgdGhlbgotKyAgIyBDaGVjayBpZiBnY2MgLXByaW50LXBy b2ctbmFtZT1sZCBnaXZlcyBhIHBhdGguCi0rICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzog Y2hlY2tpbmcgZm9yIGxkIHVzZWQgYnkgJENDIiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyBm b3IgbGQgdXNlZCBieSAkQ0MuLi4gIiA+JjY7IH0KLSsgIGNhc2UgJGhvc3QgaW4KLSsgICotKi1t aW5ndyopCi0rICAgICMgZ2NjIGxlYXZlcyBhIHRyYWlsaW5nIGNhcnJpYWdlIHJldHVybiB3aGlj aCB1cHNldHMgbWluZ3cKLSsgICAgYWNfcHJvZz1gKCRDQyAtcHJpbnQtcHJvZy1uYW1lPWxkKSAy PiY1IHwgdHIgLWQgJ1wwMTUnYCA7OwotKyAgKikKLSsgICAgYWNfcHJvZz1gKCRDQyAtcHJpbnQt cHJvZy1uYW1lPWxkKSAyPiY1YCA7OwotKyAgZXNhYwotKyAgY2FzZSAkYWNfcHJvZyBpbgotKyAg ICAjIEFjY2VwdCBhYnNvbHV0ZSBwYXRocy4KLSsgICAgW1xcL10qIHwgPzpbXFwvXSopCi0rICAg ICAgcmVfZGlyZWx0PScvW14vXVteL10qL1wuXC4vJwotKyAgICAgICMgQ2Fub25pY2FsaXplIHRo ZSBwYXRobmFtZSBvZiBsZAotKyAgICAgIGFjX3Byb2c9YCRFQ0hPICIkYWNfcHJvZyJ8ICRTRUQg J3MlXFxcXCUvJWcnYAotKyAgICAgIHdoaWxlICRFQ0hPICIkYWNfcHJvZyIgfCAkR1JFUCAiJHJl X2RpcmVsdCIgPiAvZGV2L251bGwgMj4mMTsgZG8KLSsJYWNfcHJvZz1gJEVDSE8gJGFjX3Byb2d8 ICRTRUQgInMlJHJlX2RpcmVsdCUvJSJgCi0rICAgICAgZG9uZQotKyAgICAgIHRlc3QgLXogIiRM RCIgJiYgTEQ9IiRhY19wcm9nIgotKyAgICAgIDs7Ci0rICAiIikKLSsgICAgIyBJZiBpdCBmYWls cywgdGhlbiBwcmV0ZW5kIHdlIGFyZW4ndCB1c2luZyBHQ0MuCi0rICAgIGFjX3Byb2c9bGQKLSsg ICAgOzsKLSsgICopCi0rICAgICMgSWYgaXQgaXMgcmVsYXRpdmUsIHRoZW4gc2VhcmNoIGZvciB0 aGUgZmlyc3QgbGQgaW4gUEFUSC4KLSsgICAgd2l0aF9nbnVfbGQ9dW5rbm93bgotKyAgICA7Owot KyAgZXNhYwotK2VsaWYgdGVzdCAiJHdpdGhfZ251X2xkIiA9IHllczsgdGhlbgotKyAgeyAkYXNf ZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciBHTlUgbGQiID4mNQotKyRhc19lY2hv X24gImNoZWNraW5nIGZvciBHTlUgbGQuLi4gIiA+JjY7IH0KLStlbHNlCi0rICB7ICRhc19lY2hv ICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIG5vbi1HTlUgbGQiID4mNQotKyRhc19lY2hv X24gImNoZWNraW5nIGZvciBub24tR05VIGxkLi4uICIgPiY2OyB9Ci0rZmkKLStpZiB0ZXN0ICIk e2x0X2N2X3BhdGhfTEQrc2V0fSIgPSBzZXQ7IHRoZW4KLSsgICRhc19lY2hvX24gIihjYWNoZWQp ICIgPiY2Ci0rZWxzZQotKyAgaWYgdGVzdCAteiAiJExEIjsgdGhlbgotKyAgbHRfc2F2ZV9pZnM9 IiRJRlMiOyBJRlM9JFBBVEhfU0VQQVJBVE9SCi0rICBmb3IgYWNfZGlyIGluICRQQVRIOyBkbwot KyAgICBJRlM9IiRsdF9zYXZlX2lmcyIKLSsgICAgdGVzdCAteiAiJGFjX2RpciIgJiYgYWNfZGly PS4KLSsgICAgaWYgdGVzdCAtZiAiJGFjX2Rpci8kYWNfcHJvZyIgfHwgdGVzdCAtZiAiJGFjX2Rp ci8kYWNfcHJvZyRhY19leGVleHQiOyB0aGVuCi0rICAgICAgbHRfY3ZfcGF0aF9MRD0iJGFjX2Rp ci8kYWNfcHJvZyIKLSsgICAgICAjIENoZWNrIHRvIHNlZSBpZiB0aGUgcHJvZ3JhbSBpcyBHTlUg bGQuICBJJ2QgcmF0aGVyIHVzZSAtLXZlcnNpb24sCi0rICAgICAgIyBidXQgYXBwYXJlbnRseSBz b21lIHZhcmlhbnRzIG9mIEdOVSBsZCBvbmx5IGFjY2VwdCAtdi4KLSsgICAgICAjIEJyZWFrIG9u bHkgaWYgaXQgd2FzIHRoZSBHTlUvbm9uLUdOVSBsZCB0aGF0IHdlIHByZWZlci4KLSsgICAgICBj YXNlIGAiJGx0X2N2X3BhdGhfTEQiIC12IDI+JjEgPC9kZXYvbnVsbGAgaW4KLSsgICAgICAqR05V KiB8ICond2l0aCBCRkQnKikKLSsJdGVzdCAiJHdpdGhfZ251X2xkIiAhPSBubyAmJiBicmVhawot Kwk7OwotKyAgICAgICopCi0rCXRlc3QgIiR3aXRoX2dudV9sZCIgIT0geWVzICYmIGJyZWFrCi0r CTs7Ci0rICAgICAgZXNhYwotKyAgICBmaQotKyAgZG9uZQotKyAgSUZTPSIkbHRfc2F2ZV9pZnMi Ci0rZWxzZQotKyAgbHRfY3ZfcGF0aF9MRD0iJExEIiAjIExldCB0aGUgdXNlciBvdmVycmlkZSB0 aGUgdGVzdCB3aXRoIGEgcGF0aC4KLStmaQotK2ZpCi0rCi0rTEQ9IiRsdF9jdl9wYXRoX0xEIgot K2lmIHRlc3QgLW4gIiRMRCI7IHRoZW4KLSsgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBy ZXN1bHQ6ICRMRCIgPiY1Ci0rJGFzX2VjaG8gIiRMRCIgPiY2OyB9Ci0rZWxzZQotKyAgeyAkYXNf ZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogbm8iID4mNQotKyRhc19lY2hvICJubyIgPiY2 OyB9Ci0rZmkKLSt0ZXN0IC16ICIkTEQiICYmIHsgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86 IGVycm9yOiBubyBhY2NlcHRhYmxlIGxkIGZvdW5kIGluIFwkUEFUSCIgPiY1Ci0rJGFzX2VjaG8g IiRhc19tZTogZXJyb3I6IG5vIGFjY2VwdGFibGUgbGQgZm91bmQgaW4gXCRQQVRIIiA+JjI7fQot KyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5P OiBjaGVja2luZyBpZiB0aGUgbGlua2VyICgkTEQpIGlzIEdOVSBsZCIgPiY1Ci0rJGFzX2VjaG9f biAiY2hlY2tpbmcgaWYgdGhlIGxpbmtlciAoJExEKSBpcyBHTlUgbGQuLi4gIiA+JjY7IH0KLStp ZiB0ZXN0ICIke2x0X2N2X3Byb2dfZ251X2xkK3NldH0iID0gc2V0OyB0aGVuCi0rICAkYXNfZWNo b19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsgICMgSSdkIHJhdGhlciB1c2UgLS12ZXJzaW9u IGhlcmUsIGJ1dCBhcHBhcmVudGx5IHNvbWUgR05VIGxkcyBvbmx5IGFjY2VwdCAtdi4KLStjYXNl IGAkTEQgLXYgMj4mMSA8L2Rldi9udWxsYCBpbgotKypHTlUqIHwgKid3aXRoIEJGRCcqKQotKyAg bHRfY3ZfcHJvZ19nbnVfbGQ9eWVzCi0rICA7OwotKyopCi0rICBsdF9jdl9wcm9nX2dudV9sZD1u bwotKyAgOzsKLStlc2FjCi0rZmkKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0 OiAkbHRfY3ZfcHJvZ19nbnVfbGQiID4mNQotKyRhc19lY2hvICIkbHRfY3ZfcHJvZ19nbnVfbGQi ID4mNjsgfQotK3dpdGhfZ251X2xkPSRsdF9jdl9wcm9nX2dudV9sZAotKwotKwotKwotKwotKwot KwotKwotKwotKwotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgQlNE LSBvciBNUy1jb21wYXRpYmxlIG5hbWUgbGlzdGVyIChubSkiID4mNQotKyRhc19lY2hvX24gImNo ZWNraW5nIGZvciBCU0QtIG9yIE1TLWNvbXBhdGlibGUgbmFtZSBsaXN0ZXIgKG5tKS4uLiAiID4m NjsgfQotK2lmIHRlc3QgIiR7bHRfY3ZfcGF0aF9OTStzZXR9IiA9IHNldDsgdGhlbgotKyAgJGFz X2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rICBpZiB0ZXN0IC1uICIkTk0iOyB0aGVu Ci0rICAjIExldCB0aGUgdXNlciBvdmVycmlkZSB0aGUgdGVzdC4KLSsgIGx0X2N2X3BhdGhfTk09 IiROTSIKLStlbHNlCi0rICBsdF9ubV90b19jaGVjaz0iJHthY190b29sX3ByZWZpeH1ubSIKLSsg IGlmIHRlc3QgLW4gIiRhY190b29sX3ByZWZpeCIgJiYgdGVzdCAiJGJ1aWxkIiA9ICIkaG9zdCI7 IHRoZW4KLSsgICAgbHRfbm1fdG9fY2hlY2s9IiRsdF9ubV90b19jaGVjayBubSIKLSsgIGZpCi0r ICBmb3IgbHRfdG1wX25tIGluICRsdF9ubV90b19jaGVjazsgZG8KLSsgICAgbHRfc2F2ZV9pZnM9 IiRJRlMiOyBJRlM9JFBBVEhfU0VQQVJBVE9SCi0rICAgIGZvciBhY19kaXIgaW4gJFBBVEggL3Vz ci9jY3MvYmluL2VsZiAvdXNyL2Njcy9iaW4gL3Vzci91Y2IgL2JpbjsgZG8KLSsgICAgICBJRlM9 IiRsdF9zYXZlX2lmcyIKLSsgICAgICB0ZXN0IC16ICIkYWNfZGlyIiAmJiBhY19kaXI9LgotKyAg ICAgIHRtcF9ubT0iJGFjX2Rpci8kbHRfdG1wX25tIgotKyAgICAgIGlmIHRlc3QgLWYgIiR0bXBf bm0iIHx8IHRlc3QgLWYgIiR0bXBfbm0kYWNfZXhlZXh0IiA7IHRoZW4KLSsJIyBDaGVjayB0byBz ZWUgaWYgdGhlIG5tIGFjY2VwdHMgYSBCU0QtY29tcGF0IGZsYWcuCi0rCSMgQWRkaW5nIHRoZSBg c2VkIDFxJyBwcmV2ZW50cyBmYWxzZSBwb3NpdGl2ZXMgb24gSFAtVVgsIHdoaWNoIHNheXM6Ci0r CSMgICBubTogdW5rbm93biBvcHRpb24gIkIiIGlnbm9yZWQKLSsJIyBUcnU2NCdzIG5tIGNvbXBs YWlucyB0aGF0IC9kZXYvbnVsbCBpcyBhbiBpbnZhbGlkIG9iamVjdCBmaWxlCi0rCWNhc2UgYCIk dG1wX25tIiAtQiAvZGV2L251bGwgMj4mMSB8IHNlZCAnMXEnYCBpbgotKwkqL2Rldi9udWxsKiB8 IConSW52YWxpZCBmaWxlIG9yIG9iamVjdCB0eXBlJyopCi0rCSAgbHRfY3ZfcGF0aF9OTT0iJHRt cF9ubSAtQiIKLSsJICBicmVhawotKwkgIDs7Ci0rCSopCi0rCSAgY2FzZSBgIiR0bXBfbm0iIC1w IC9kZXYvbnVsbCAyPiYxIHwgc2VkICcxcSdgIGluCi0rCSAgKi9kZXYvbnVsbCopCi0rCSAgICBs dF9jdl9wYXRoX05NPSIkdG1wX25tIC1wIgotKwkgICAgYnJlYWsKLSsJICAgIDs7Ci0rCSAgKikK LSsJICAgIGx0X2N2X3BhdGhfTk09JHtsdF9jdl9wYXRoX05NPSIkdG1wX25tIn0gIyBrZWVwIHRo ZSBmaXJzdCBtYXRjaCwgYnV0Ci0rCSAgICBjb250aW51ZSAjIHNvIHRoYXQgd2UgY2FuIHRyeSB0 byBmaW5kIG9uZSB0aGF0IHN1cHBvcnRzIEJTRCBmbGFncwotKwkgICAgOzsKLSsJICBlc2FjCi0r CSAgOzsKLSsJZXNhYwotKyAgICAgIGZpCi0rICAgIGRvbmUKLSsgICAgSUZTPSIkbHRfc2F2ZV9p ZnMiCi0rICBkb25lCi0rICA6ICR7bHRfY3ZfcGF0aF9OTT1ub30KLStmaQotK2ZpCi0reyAkYXNf ZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGx0X2N2X3BhdGhfTk0iID4mNQotKyRhc19l Y2hvICIkbHRfY3ZfcGF0aF9OTSIgPiY2OyB9Ci0raWYgdGVzdCAiJGx0X2N2X3BhdGhfTk0iICE9 ICJubyI7IHRoZW4KLSsgIE5NPSIkbHRfY3ZfcGF0aF9OTSIKLStlbHNlCi0rICAjIERpZG4ndCBm aW5kIGFueSBCU0QgY29tcGF0aWJsZSBuYW1lIGxpc3RlciwgbG9vayBmb3IgZHVtcGJpbi4KLSsg IGlmIHRlc3QgLW4gIiRhY190b29sX3ByZWZpeCI7IHRoZW4KLSsgIGZvciBhY19wcm9nIGluICJk dW1wYmluIC1zeW1ib2xzIiAibGluayAtZHVtcCAtc3ltYm9scyIKLSsgIGRvCi0rICAgICMgRXh0 cmFjdCB0aGUgZmlyc3Qgd29yZCBvZiAiJGFjX3Rvb2xfcHJlZml4JGFjX3Byb2ciLCBzbyBpdCBj YW4gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmdzLgotK3NldCBkdW1teSAkYWNfdG9vbF9wcmVm aXgkYWNfcHJvZzsgYWNfd29yZD0kMgotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVj a2luZyBmb3IgJGFjX3dvcmQiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIGZvciAkYWNfd29y ZC4uLiAiID4mNjsgfQotK2lmIHRlc3QgIiR7YWNfY3ZfcHJvZ19EVU1QQklOK3NldH0iID0gc2V0 OyB0aGVuCi0rICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsgIGlmIHRlc3Qg LW4gIiREVU1QQklOIjsgdGhlbgotKyAgYWNfY3ZfcHJvZ19EVU1QQklOPSIkRFVNUEJJTiIgIyBM ZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3QuCi0rZWxzZQotK2FzX3NhdmVfSUZTPSRJRlM7 IElGUz0kUEFUSF9TRVBBUkFUT1IKLStmb3IgYXNfZGlyIGluICRQQVRICi0rZG8KLSsgIElGUz0k YXNfc2F2ZV9JRlMKLSsgIHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCi0rICBmb3IgYWNf ZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1dGFibGVfZXh0ZW5zaW9uczsgZG8KLSsgIGlmIHsgdGVz dCAtZiAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgJiYgJGFzX3Rlc3RfeCAiJGFzX2Rp ci8kYWNfd29yZCRhY19leGVjX2V4dCI7IH07IHRoZW4KLSsgICAgYWNfY3ZfcHJvZ19EVU1QQklO PSIkYWNfdG9vbF9wcmVmaXgkYWNfcHJvZyIKLSsgICAgJGFzX2VjaG8gIiRhc19tZTokTElORU5P OiBmb3VuZCAkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiA+JjUKLSsgICAgYnJlYWsgMgot KyAgZmkKLStkb25lCi0rZG9uZQotK0lGUz0kYXNfc2F2ZV9JRlMKLSsKLStmaQotK2ZpCi0rRFVN UEJJTj0kYWNfY3ZfcHJvZ19EVU1QQklOCi0raWYgdGVzdCAtbiAiJERVTVBCSU4iOyB0aGVuCi0r ICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkRFVNUEJJTiIgPiY1Ci0rJGFz X2VjaG8gIiREVU1QQklOIiA+JjY7IH0KLStlbHNlCi0rICB7ICRhc19lY2hvICIkYXNfbWU6JExJ TkVOTzogcmVzdWx0OiBubyIgPiY1Ci0rJGFzX2VjaG8gIm5vIiA+JjY7IH0KLStmaQotKwotKwot KyAgICB0ZXN0IC1uICIkRFVNUEJJTiIgJiYgYnJlYWsKLSsgIGRvbmUKLStmaQotK2lmIHRlc3Qg LXogIiREVU1QQklOIjsgdGhlbgotKyAgYWNfY3RfRFVNUEJJTj0kRFVNUEJJTgotKyAgZm9yIGFj X3Byb2cgaW4gImR1bXBiaW4gLXN5bWJvbHMiICJsaW5rIC1kdW1wIC1zeW1ib2xzIgotK2RvCi0r ICAjIEV4dHJhY3QgdGhlIGZpcnN0IHdvcmQgb2YgIiRhY19wcm9nIiwgc28gaXQgY2FuIGJlIGEg cHJvZ3JhbSBuYW1lIHdpdGggYXJncy4KLStzZXQgZHVtbXkgJGFjX3Byb2c7IGFjX3dvcmQ9JDIK LSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yICRhY193b3JkIiA+JjUK LSskYXNfZWNob19uICJjaGVja2luZyBmb3IgJGFjX3dvcmQuLi4gIiA+JjY7IH0KLStpZiB0ZXN0 ICIke2FjX2N2X3Byb2dfYWNfY3RfRFVNUEJJTitzZXR9IiA9IHNldDsgdGhlbgotKyAgJGFzX2Vj aG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rICBpZiB0ZXN0IC1uICIkYWNfY3RfRFVNUEJJ TiI7IHRoZW4KLSsgIGFjX2N2X3Byb2dfYWNfY3RfRFVNUEJJTj0iJGFjX2N0X0RVTVBCSU4iICMg TGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0LgotK2Vsc2UKLSthc19zYXZlX0lGUz0kSUZT OyBJRlM9JFBBVEhfU0VQQVJBVE9SCi0rZm9yIGFzX2RpciBpbiAkUEFUSAotK2RvCi0rICBJRlM9 JGFzX3NhdmVfSUZTCi0rICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgotKyAgZm9yIGFj X2V4ZWNfZXh0IGluICcnICRhY19leGVjdXRhYmxlX2V4dGVuc2lvbnM7IGRvCi0rICBpZiB7IHRl c3QgLWYgIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiICYmICRhc190ZXN0X3ggIiRhc19k aXIvJGFjX3dvcmQkYWNfZXhlY19leHQiOyB9OyB0aGVuCi0rICAgIGFjX2N2X3Byb2dfYWNfY3Rf RFVNUEJJTj0iJGFjX3Byb2ciCi0rICAgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZm91bmQg JGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgPiY1Ci0rICAgIGJyZWFrIDIKLSsgIGZpCi0r ZG9uZQotK2RvbmUKLStJRlM9JGFzX3NhdmVfSUZTCi0rCi0rZmkKLStmaQotK2FjX2N0X0RVTVBC SU49JGFjX2N2X3Byb2dfYWNfY3RfRFVNUEJJTgotK2lmIHRlc3QgLW4gIiRhY19jdF9EVU1QQklO IjsgdGhlbgotKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2N0X0RV TVBCSU4iID4mNQotKyRhc19lY2hvICIkYWNfY3RfRFVNUEJJTiIgPiY2OyB9Ci0rZWxzZQotKyAg eyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogbm8iID4mNQotKyRhc19lY2hvICJu byIgPiY2OyB9Ci0rZmkKLSsKLSsKLSsgIHRlc3QgLW4gIiRhY19jdF9EVU1QQklOIiAmJiBicmVh awotK2RvbmUKLSsKLSsgIGlmIHRlc3QgIngkYWNfY3RfRFVNUEJJTiIgPSB4OyB0aGVuCi0rICAg IERVTVBCSU49IjoiCi0rICBlbHNlCi0rICAgIGNhc2UgJGNyb3NzX2NvbXBpbGluZzokYWNfdG9v bF93YXJuZWQgaW4KLSt5ZXM6KQotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBXQVJOSU5H OiB1c2luZyBjcm9zcyB0b29scyBub3QgcHJlZml4ZWQgd2l0aCBob3N0IHRyaXBsZXQiID4mNQot KyRhc19lY2hvICIkYXNfbWU6IFdBUk5JTkc6IHVzaW5nIGNyb3NzIHRvb2xzIG5vdCBwcmVmaXhl ZCB3aXRoIGhvc3QgdHJpcGxldCIgPiYyO30KLSthY190b29sX3dhcm5lZD15ZXMgOzsKLStlc2Fj Ci0rICAgIERVTVBCSU49JGFjX2N0X0RVTVBCSU4KLSsgIGZpCi0rZmkKLSsKLSsKLSsgIGlmIHRl c3QgIiREVU1QQklOIiAhPSAiOiI7IHRoZW4KLSsgICAgTk09IiREVU1QQklOIgotKyAgZmkKLStm aQotK3Rlc3QgLXogIiROTSIgJiYgTk09bm0KLSsKLSsKLSsKLSsKLSsKLSsKLSt7ICRhc19lY2hv ICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgdGhlIG5hbWUgbGlzdGVyICgkTk0pIGludGVyZmFj ZSIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgdGhlIG5hbWUgbGlzdGVyICgkTk0pIGludGVy ZmFjZS4uLiAiID4mNjsgfQotK2lmIHRlc3QgIiR7bHRfY3Zfbm1faW50ZXJmYWNlK3NldH0iID0g c2V0OyB0aGVuCi0rICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsgIGx0X2N2 X25tX2ludGVyZmFjZT0iQlNEIG5tIgotKyAgZWNobyAiaW50IHNvbWVfdmFyaWFibGUgPSAwOyIg PiBjb25mdGVzdC4kYWNfZXh0Ci0rICAoZXZhbCBlY2hvICJcIlwkYXNfbWU6NTU1NDogJGFjX2Nv bXBpbGVcIiIgPiY1KQotKyAgKGV2YWwgIiRhY19jb21waWxlIiAyPmNvbmZ0ZXN0LmVycikKLSsg IGNhdCBjb25mdGVzdC5lcnIgPiY1Ci0rICAoZXZhbCBlY2hvICJcIlwkYXNfbWU6NTU1NzogJE5N IFxcXCJjb25mdGVzdC4kYWNfb2JqZXh0XFxcIlwiIiA+JjUpCi0rICAoZXZhbCAiJE5NIFwiY29u ZnRlc3QuJGFjX29iamV4dFwiIiAyPmNvbmZ0ZXN0LmVyciA+IGNvbmZ0ZXN0Lm91dCkKLSsgIGNh dCBjb25mdGVzdC5lcnIgPiY1Ci0rICAoZXZhbCBlY2hvICJcIlwkYXNfbWU6NTU2MDogb3V0cHV0 XCIiID4mNSkKLSsgIGNhdCBjb25mdGVzdC5vdXQgPiY1Ci0rICBpZiAkR1JFUCAnRXh0ZXJuYWwu KnNvbWVfdmFyaWFibGUnIGNvbmZ0ZXN0Lm91dCA+IC9kZXYvbnVsbDsgdGhlbgotKyAgICBsdF9j dl9ubV9pbnRlcmZhY2U9Ik1TIGR1bXBiaW4iCi0rICBmaQotKyAgcm0gLWYgY29uZnRlc3QqCi0r ZmkKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkbHRfY3Zfbm1faW50ZXJm YWNlIiA+JjUKLSskYXNfZWNobyAiJGx0X2N2X25tX2ludGVyZmFjZSIgPiY2OyB9Ci0rCi0reyAk YXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIHdoZXRoZXIgbG4gLXMgd29ya3MiID4m NQotKyRhc19lY2hvX24gImNoZWNraW5nIHdoZXRoZXIgbG4gLXMgd29ya3MuLi4gIiA+JjY7IH0K LStMTl9TPSRhc19sbl9zCi0raWYgdGVzdCAiJExOX1MiID0gImxuIC1zIjsgdGhlbgotKyAgeyAk YXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogeWVzIiA+JjUKLSskYXNfZWNobyAieWVz IiA+JjY7IH0KLStlbHNlCi0rICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiBu bywgdXNpbmcgJExOX1MiID4mNQotKyRhc19lY2hvICJubywgdXNpbmcgJExOX1MiID4mNjsgfQot K2ZpCi0rCi0rIyBmaW5kIHRoZSBtYXhpbXVtIGxlbmd0aCBvZiBjb21tYW5kIGxpbmUgYXJndW1l bnRzCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIHRoZSBtYXhpbXVtIGxl bmd0aCBvZiBjb21tYW5kIGxpbmUgYXJndW1lbnRzIiA+JjUKLSskYXNfZWNob19uICJjaGVja2lu ZyB0aGUgbWF4aW11bSBsZW5ndGggb2YgY29tbWFuZCBsaW5lIGFyZ3VtZW50cy4uLiAiID4mNjsg fQotK2lmIHRlc3QgIiR7bHRfY3Zfc3lzX21heF9jbWRfbGVuK3NldH0iID0gc2V0OyB0aGVuCi0r ICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsgICAgaT0wCi0rICB0ZXN0c3Ry aW5nPSJBQkNEIgotKwotKyAgY2FzZSAkYnVpbGRfb3MgaW4KLSsgIG1zZG9zZGpncHAqKQotKyAg ICAjIE9uIERKR1BQLCB0aGlzIHRlc3QgY2FuIGJsb3cgdXAgcHJldHR5IGJhZGx5IGR1ZSB0byBw cm9ibGVtcyBpbiBsaWJjCi0rICAgICMgKGFueSBzaW5nbGUgYXJndW1lbnQgZXhjZWVkaW5nIDIw MDAgYnl0ZXMgY2F1c2VzIGEgYnVmZmVyIG92ZXJydW4KLSsgICAgIyBkdXJpbmcgZ2xvYiBleHBh bnNpb24pLiAgRXZlbiBpZiBpdCB3ZXJlIGZpeGVkLCB0aGUgcmVzdWx0IG9mIHRoaXMKLSsgICAg IyBjaGVjayB3b3VsZCBiZSBsYXJnZXIgdGhhbiBpdCBzaG91bGQgYmUuCi0rICAgIGx0X2N2X3N5 c19tYXhfY21kX2xlbj0xMjI4ODsgICAgIyAxMksgaXMgYWJvdXQgcmlnaHQKLSsgICAgOzsKLSsK LSsgIGdudSopCi0rICAgICMgVW5kZXIgR05VIEh1cmQsIHRoaXMgdGVzdCBpcyBub3QgcmVxdWly ZWQgYmVjYXVzZSB0aGVyZSBpcwotKyAgICAjIG5vIGxpbWl0IHRvIHRoZSBsZW5ndGggb2YgY29t bWFuZCBsaW5lIGFyZ3VtZW50cy4KLSsgICAgIyBMaWJ0b29sIHdpbGwgaW50ZXJwcmV0IC0xIGFz IG5vIGxpbWl0IHdoYXRzb2V2ZXIKLSsgICAgbHRfY3Zfc3lzX21heF9jbWRfbGVuPS0xOwotKyAg ICA7OwotKwotKyAgY3lnd2luKiB8IG1pbmd3KiB8IGNlZ2NjKikKLSsgICAgIyBPbiBXaW45eC9N RSwgdGhpcyB0ZXN0IGJsb3dzIHVwIC0tIGl0IHN1Y2NlZWRzLCBidXQgdGFrZXMKLSsgICAgIyBh Ym91dCA1IG1pbnV0ZXMgYXMgdGhlIHRlc3RzdHJpbmcgZ3Jvd3MgZXhwb25lbnRpYWxseS4KLSsg ICAgIyBXb3JzZSwgc2luY2UgOXgvTUUgYXJlIG5vdCBwcmUtZW1wdGl2ZWx5IG11bHRpdGFza2lu ZywKLSsgICAgIyB5b3UgZW5kIHVwIHdpdGggYSAiZnJvemVuIiBjb21wdXRlciwgZXZlbiB0aG91 Z2ggd2l0aCBwYXRpZW5jZQotKyAgICAjIHRoZSB0ZXN0IGV2ZW50dWFsbHkgc3VjY2VlZHMgKHdp dGggYSBtYXggbGluZSBsZW5ndGggb2YgMjU2aykuCi0rICAgICMgSW5zdGVhZCwgbGV0J3MganVz dCBwdW50OiB1c2UgdGhlIG1pbmltdW0gbGluZWxlbmd0aCByZXBvcnRlZCBieQotKyAgICAjIGFs bCBvZiB0aGUgc3VwcG9ydGVkIHBsYXRmb3JtczogODE5MiAob24gTlQvMksvWFApLgotKyAgICBs dF9jdl9zeXNfbWF4X2NtZF9sZW49ODE5MjsKLSsgICAgOzsKLSsKLSsgIGFtaWdhb3MqKQotKyAg ICAjIE9uIEFtaWdhT1Mgd2l0aCBwZGtzaCwgdGhpcyB0ZXN0IHRha2VzIGhvdXJzLCBsaXRlcmFs bHkuCi0rICAgICMgU28gd2UganVzdCBwdW50IGFuZCB1c2UgYSBtaW5pbXVtIGxpbmUgbGVuZ3Ro IG9mIDgxOTIuCi0rICAgIGx0X2N2X3N5c19tYXhfY21kX2xlbj04MTkyOwotKyAgICA7OwotKwot KyAgbmV0YnNkKiB8IGZyZWVic2QqIHwgb3BlbmJzZCogfCBkYXJ3aW4qIHwgZHJhZ29uZmx5KikK LSsgICAgIyBUaGlzIGhhcyBiZWVuIGFyb3VuZCBzaW5jZSAzODZCU0QsIGF0IGxlYXN0LiAgTGlr ZWx5IGZ1cnRoZXIuCi0rICAgIGlmIHRlc3QgLXggL3NiaW4vc3lzY3RsOyB0aGVuCi0rICAgICAg bHRfY3Zfc3lzX21heF9jbWRfbGVuPWAvc2Jpbi9zeXNjdGwgLW4ga2Vybi5hcmdtYXhgCi0rICAg IGVsaWYgdGVzdCAteCAvdXNyL3NiaW4vc3lzY3RsOyB0aGVuCi0rICAgICAgbHRfY3Zfc3lzX21h eF9jbWRfbGVuPWAvdXNyL3NiaW4vc3lzY3RsIC1uIGtlcm4uYXJnbWF4YAotKyAgICBlbHNlCi0r ICAgICAgbHRfY3Zfc3lzX21heF9jbWRfbGVuPTY1NTM2CSMgdXNhYmxlIGRlZmF1bHQgZm9yIGFs bCBCU0RzCi0rICAgIGZpCi0rICAgICMgQW5kIGFkZCBhIHNhZmV0eSB6b25lCi0rICAgIGx0X2N2 X3N5c19tYXhfY21kX2xlbj1gZXhwciAkbHRfY3Zfc3lzX21heF9jbWRfbGVuIFwvIDRgCi0rICAg IGx0X2N2X3N5c19tYXhfY21kX2xlbj1gZXhwciAkbHRfY3Zfc3lzX21heF9jbWRfbGVuIFwqIDNg Ci0rICAgIDs7Ci0rCi0rICBpbnRlcml4KikKLSsgICAgIyBXZSBrbm93IHRoZSB2YWx1ZSAyNjIx NDQgYW5kIGhhcmRjb2RlIGl0IHdpdGggYSBzYWZldHkgem9uZSAobGlrZSBCU0QpCi0rICAgIGx0 X2N2X3N5c19tYXhfY21kX2xlbj0xOTY2MDgKLSsgICAgOzsKLSsKLSsgIG9zZiopCi0rICAgICMg RHIuIEhhbnMgRWtrZWhhcmQgUGxlc3NlciByZXBvcnRzIHNlZWluZyBhIGtlcm5lbCBwYW5pYyBy dW5uaW5nIGNvbmZpZ3VyZQotKyAgICAjIGR1ZSB0byB0aGlzIHRlc3Qgd2hlbiBleGVjX2Rpc2Fi bGVfYXJnX2xpbWl0IGlzIDEgb24gVHJ1NjQuIEl0IGlzIG5vdAotKyAgICAjIG5pY2UgdG8gY2F1 c2Uga2VybmVsIHBhbmljcyBzbyBsZXRzIGF2b2lkIHRoZSBsb29wIGJlbG93LgotKyAgICAjIEZp cnN0IHNldCBhIHJlYXNvbmFibGUgZGVmYXVsdC4KLSsgICAgbHRfY3Zfc3lzX21heF9jbWRfbGVu PTE2Mzg0Ci0rICAgICMKLSsgICAgaWYgdGVzdCAteCAvc2Jpbi9zeXNjb25maWc7IHRoZW4KLSsg ICAgICBjYXNlIGAvc2Jpbi9zeXNjb25maWcgLXEgcHJvYyBleGVjX2Rpc2FibGVfYXJnX2xpbWl0 YCBpbgotKyAgICAgICAgKjEqKSBsdF9jdl9zeXNfbWF4X2NtZF9sZW49LTEgOzsKLSsgICAgICBl c2FjCi0rICAgIGZpCi0rICAgIDs7Ci0rICBzY28zLjJ2NSopCi0rICAgIGx0X2N2X3N5c19tYXhf Y21kX2xlbj0xMDI0MDAKLSsgICAgOzsKLSsgIHN5c3Y1KiB8IHNjbzV2NiogfCBzeXN2NC4ydXcy KikKLSsgICAga2FyZ21heD1gZ3JlcCBBUkdfTUFYIC9ldGMvY29uZi9jZi5kL3N0dW5lIDI+L2Rl di9udWxsYAotKyAgICBpZiB0ZXN0IC1uICIka2FyZ21heCI7IHRoZW4KLSsgICAgICBsdF9jdl9z eXNfbWF4X2NtZF9sZW49YGVjaG8gJGthcmdtYXggfCBzZWQgJ3MvLipbCSBdLy8nYAotKyAgICBl bHNlCi0rICAgICAgbHRfY3Zfc3lzX21heF9jbWRfbGVuPTMyNzY4Ci0rICAgIGZpCi0rICAgIDs7 Ci0rICAqKQotKyAgICBsdF9jdl9zeXNfbWF4X2NtZF9sZW49YChnZXRjb25mIEFSR19NQVgpIDI+ IC9kZXYvbnVsbGAKLSsgICAgaWYgdGVzdCAtbiAiJGx0X2N2X3N5c19tYXhfY21kX2xlbiI7IHRo ZW4KLSsgICAgICBsdF9jdl9zeXNfbWF4X2NtZF9sZW49YGV4cHIgJGx0X2N2X3N5c19tYXhfY21k X2xlbiBcLyA0YAotKyAgICAgIGx0X2N2X3N5c19tYXhfY21kX2xlbj1gZXhwciAkbHRfY3Zfc3lz X21heF9jbWRfbGVuIFwqIDNgCi0rICAgIGVsc2UKLSsgICAgICAjIE1ha2UgdGVzdHN0cmluZyBh IGxpdHRsZSBiaWdnZXIgYmVmb3JlIHdlIGRvIGFueXRoaW5nIHdpdGggaXQuCi0rICAgICAgIyBh IDFLIHN0cmluZyBzaG91bGQgYmUgYSByZWFzb25hYmxlIHN0YXJ0LgotKyAgICAgIGZvciBpIGlu IDEgMiAzIDQgNSA2IDcgOCA7IGRvCi0rICAgICAgICB0ZXN0c3RyaW5nPSR0ZXN0c3RyaW5nJHRl c3RzdHJpbmcKLSsgICAgICBkb25lCi0rICAgICAgU0hFTEw9JHtTSEVMTC0ke0NPTkZJR19TSEVM TC0vYmluL3NofX0KLSsgICAgICAjIElmIHRlc3QgaXMgbm90IGEgc2hlbGwgYnVpbHQtaW4sIHdl J2xsIHByb2JhYmx5IGVuZCB1cCBjb21wdXRpbmcgYQotKyAgICAgICMgbWF4aW11bSBsZW5ndGgg dGhhdCBpcyBvbmx5IGhhbGYgb2YgdGhlIGFjdHVhbCBtYXhpbXVtIGxlbmd0aCwgYnV0Ci0rICAg ICAgIyB3ZSBjYW4ndCB0ZWxsLgotKyAgICAgIHdoaWxlIHsgdGVzdCAiWCJgJFNIRUxMICQwIC0t ZmFsbGJhY2stZWNobyAiWCR0ZXN0c3RyaW5nJHRlc3RzdHJpbmciIDI+L2Rldi9udWxsYCBcCi0r CSAgICAgICAgID0gIlhYJHRlc3RzdHJpbmckdGVzdHN0cmluZyI7IH0gPi9kZXYvbnVsbCAyPiYx ICYmCi0rCSAgICAgIHRlc3QgJGkgIT0gMTcgIyAxLzIgTUIgc2hvdWxkIGJlIGVub3VnaAotKyAg ICAgIGRvCi0rICAgICAgICBpPWBleHByICRpICsgMWAKLSsgICAgICAgIHRlc3RzdHJpbmc9JHRl c3RzdHJpbmckdGVzdHN0cmluZwotKyAgICAgIGRvbmUKLSsgICAgICAjIE9ubHkgY2hlY2sgdGhl IHN0cmluZyBsZW5ndGggb3V0c2lkZSB0aGUgbG9vcC4KLSsgICAgICBsdF9jdl9zeXNfbWF4X2Nt ZF9sZW49YGV4cHIgIlgkdGVzdHN0cmluZyIgOiAiLioiIDI+JjFgCi0rICAgICAgdGVzdHN0cmlu Zz0KLSsgICAgICAjIEFkZCBhIHNpZ25pZmljYW50IHNhZmV0eSBmYWN0b3IgYmVjYXVzZSBDKysg Y29tcGlsZXJzIGNhbiB0YWNrIG9uCi0rICAgICAgIyBtYXNzaXZlIGFtb3VudHMgb2YgYWRkaXRp b25hbCBhcmd1bWVudHMgYmVmb3JlIHBhc3NpbmcgdGhlbSB0byB0aGUKLSsgICAgICAjIGxpbmtl ci4gIEl0IGFwcGVhcnMgYXMgdGhvdWdoIDEvMiBpcyBhIHVzYWJsZSB2YWx1ZS4KLSsgICAgICBs dF9jdl9zeXNfbWF4X2NtZF9sZW49YGV4cHIgJGx0X2N2X3N5c19tYXhfY21kX2xlbiBcLyAyYAot KyAgICBmaQotKyAgICA7OwotKyAgZXNhYwotKwotK2ZpCi0rCi0raWYgdGVzdCAtbiAkbHRfY3Zf c3lzX21heF9jbWRfbGVuIDsgdGhlbgotKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJl c3VsdDogJGx0X2N2X3N5c19tYXhfY21kX2xlbiIgPiY1Ci0rJGFzX2VjaG8gIiRsdF9jdl9zeXNf bWF4X2NtZF9sZW4iID4mNjsgfQotK2Vsc2UKLSsgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5P OiByZXN1bHQ6IG5vbmUiID4mNQotKyRhc19lY2hvICJub25lIiA+JjY7IH0KLStmaQotK21heF9j bWRfbGVuPSRsdF9jdl9zeXNfbWF4X2NtZF9sZW4KLSsKLSsKLSsKLSsKLSsKLSsKLSs6ICR7Q1A9 ImNwIC1mIn0KLSs6ICR7TVY9Im12IC1mIn0KLSs6ICR7Uk09InJtIC1mIn0KLSsKLSt7ICRhc19l Y2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgd2hldGhlciB0aGUgc2hlbGwgdW5kZXJzdGFu ZHMgc29tZSBYU0kgY29uc3RydWN0cyIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgd2hldGhl ciB0aGUgc2hlbGwgdW5kZXJzdGFuZHMgc29tZSBYU0kgY29uc3RydWN0cy4uLiAiID4mNjsgfQot KyMgVHJ5IHNvbWUgWFNJIGZlYXR1cmVzCi0reHNpX3NoZWxsPW5vCi0rKCBfbHRfZHVtbXk9ImEv Yi9jIgotKyAgdGVzdCAiJHtfbHRfZHVtbXkjIyovfSwke19sdF9kdW1teSUvKn0sIiR7X2x0X2R1 bW15JSIkX2x0X2R1bW15In0sIFwKLSsgICAgICA9IGMsYS9iLCwgXAotKyAgICAmJiBldmFsICd0 ZXN0ICQoKCAxICsgMSApKSAtZXEgMiBcCi0rICAgICYmIHRlc3QgIiR7I19sdF9kdW1teX0iIC1l cSA1JyApID4vZGV2L251bGwgMj4mMSBcCi0rICAmJiB4c2lfc2hlbGw9eWVzCi0reyAkYXNfZWNo byAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJHhzaV9zaGVsbCIgPiY1Ci0rJGFzX2VjaG8gIiR4 c2lfc2hlbGwiID4mNjsgfQotKwotKwotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVj a2luZyB3aGV0aGVyIHRoZSBzaGVsbCB1bmRlcnN0YW5kcyBcIis9XCIiID4mNQotKyRhc19lY2hv X24gImNoZWNraW5nIHdoZXRoZXIgdGhlIHNoZWxsIHVuZGVyc3RhbmRzIFwiKz1cIi4uLiAiID4m NjsgfQotK2x0X3NoZWxsX2FwcGVuZD1ubwotKyggZm9vPWJhcjsgc2V0IGZvbyBiYXo7IGV2YWwg IiQxKz1cJDIiICYmIHRlc3QgIiRmb28iID0gYmFyYmF6ICkgXAotKyAgICA+L2Rldi9udWxsIDI+ JjEgXAotKyAgJiYgbHRfc2hlbGxfYXBwZW5kPXllcwotK3sgJGFzX2VjaG8gIiRhc19tZTokTElO RU5POiByZXN1bHQ6ICRsdF9zaGVsbF9hcHBlbmQiID4mNQotKyRhc19lY2hvICIkbHRfc2hlbGxf YXBwZW5kIiA+JjY7IH0KLSsKLSsKLStpZiAoIChNQUlMPTYwOyB1bnNldCBNQUlMKSB8fCBleGl0 KSA+L2Rldi9udWxsIDI+JjE7IHRoZW4KLSsgIGx0X3Vuc2V0PXVuc2V0Ci0rZWxzZQotKyAgbHRf dW5zZXQ9ZmFsc2UKLStmaQotKwotKwotKwotKwotKwotKyMgdGVzdCBFQkNESUMgb3IgQVNDSUkK LStjYXNlIGBlY2hvIFh8dHIgWCAnXDEwMSdgIGluCi0rIEEpICMgQVNDSUkgYmFzZWQgc3lzdGVt Ci0rICAgICMgXG4gaXMgbm90IGludGVycHJldGVkIGNvcnJlY3RseSBieSBTb2xhcmlzIDggL3Vz ci91Y2IvdHIKLSsgIGx0X1NQMk5MPSd0ciBcMDQwIFwwMTInCi0rICBsdF9OTDJTUD0ndHIgXDAx NVwwMTIgXDA0MFwwNDAnCi0rICA7OwotKyAqKSAjIEVCQ0RJQyBiYXNlZCBzeXN0ZW0KLSsgIGx0 X1NQMk5MPSd0ciBcMTAwIFxuJwotKyAgbHRfTkwyU1A9J3RyIFxyXG4gXDEwMFwxMDAnCi0rICA7 OwotK2VzYWMKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSt7ICRhc19lY2hvICIkYXNfbWU6 JExJTkVOTzogY2hlY2tpbmcgZm9yICRMRCBvcHRpb24gdG8gcmVsb2FkIG9iamVjdCBmaWxlcyIg PiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yICRMRCBvcHRpb24gdG8gcmVsb2FkIG9iamVj dCBmaWxlcy4uLiAiID4mNjsgfQotK2lmIHRlc3QgIiR7bHRfY3ZfbGRfcmVsb2FkX2ZsYWcrc2V0 fSIgPSBzZXQ7IHRoZW4KLSsgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci0rZWxzZQotKyAg bHRfY3ZfbGRfcmVsb2FkX2ZsYWc9Jy1yJwotK2ZpCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5F Tk86IHJlc3VsdDogJGx0X2N2X2xkX3JlbG9hZF9mbGFnIiA+JjUKLSskYXNfZWNobyAiJGx0X2N2 X2xkX3JlbG9hZF9mbGFnIiA+JjY7IH0KLStyZWxvYWRfZmxhZz0kbHRfY3ZfbGRfcmVsb2FkX2Zs YWcKLStjYXNlICRyZWxvYWRfZmxhZyBpbgotKyIiIHwgIiAiKikgOzsKLSsqKSByZWxvYWRfZmxh Zz0iICRyZWxvYWRfZmxhZyIgOzsKLStlc2FjCi0rcmVsb2FkX2NtZHM9JyRMRCRyZWxvYWRfZmxh ZyAtbyAkb3V0cHV0JHJlbG9hZF9vYmpzJwotK2Nhc2UgJGhvc3Rfb3MgaW4KLSsgIGRhcndpbiop Ci0rICAgIGlmIHRlc3QgIiRHQ0MiID0geWVzOyB0aGVuCi0rICAgICAgcmVsb2FkX2NtZHM9JyRM VENDICRMVENGTEFHUyAtbm9zdGRsaWIgJHt3bH0tciAtbyAkb3V0cHV0JHJlbG9hZF9vYmpzJwot KyAgICBlbHNlCi0rICAgICAgcmVsb2FkX2NtZHM9JyRMRCRyZWxvYWRfZmxhZyAtbyAkb3V0cHV0 JHJlbG9hZF9vYmpzJwotKyAgICBmaQotKyAgICA7OwotK2VzYWMKLSsKLSsKLSsKLSsKLSsKLSsK LSsKLSsKLSsKLStpZiB0ZXN0IC1uICIkYWNfdG9vbF9wcmVmaXgiOyB0aGVuCi0rICAjIEV4dHJh Y3QgdGhlIGZpcnN0IHdvcmQgb2YgIiR7YWNfdG9vbF9wcmVmaXh9b2JqZHVtcCIsIHNvIGl0IGNh biBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3MuCi0rc2V0IGR1bW15ICR7YWNfdG9vbF9wcmVm aXh9b2JqZHVtcDsgYWNfd29yZD0kMgotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVj a2luZyBmb3IgJGFjX3dvcmQiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIGZvciAkYWNfd29y ZC4uLiAiID4mNjsgfQotK2lmIHRlc3QgIiR7YWNfY3ZfcHJvZ19PQkpEVU1QK3NldH0iID0gc2V0 OyB0aGVuCi0rICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsgIGlmIHRlc3Qg LW4gIiRPQkpEVU1QIjsgdGhlbgotKyAgYWNfY3ZfcHJvZ19PQkpEVU1QPSIkT0JKRFVNUCIgIyBM ZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3QuCi0rZWxzZQotK2FzX3NhdmVfSUZTPSRJRlM7 IElGUz0kUEFUSF9TRVBBUkFUT1IKLStmb3IgYXNfZGlyIGluICRQQVRICi0rZG8KLSsgIElGUz0k YXNfc2F2ZV9JRlMKLSsgIHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCi0rICBmb3IgYWNf ZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1dGFibGVfZXh0ZW5zaW9uczsgZG8KLSsgIGlmIHsgdGVz dCAtZiAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgJiYgJGFzX3Rlc3RfeCAiJGFzX2Rp ci8kYWNfd29yZCRhY19leGVjX2V4dCI7IH07IHRoZW4KLSsgICAgYWNfY3ZfcHJvZ19PQkpEVU1Q PSIke2FjX3Rvb2xfcHJlZml4fW9iamR1bXAiCi0rICAgICRhc19lY2hvICIkYXNfbWU6JExJTkVO TzogZm91bmQgJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgPiY1Ci0rICAgIGJyZWFrIDIK LSsgIGZpCi0rZG9uZQotK2RvbmUKLStJRlM9JGFzX3NhdmVfSUZTCi0rCi0rZmkKLStmaQotK09C SkRVTVA9JGFjX2N2X3Byb2dfT0JKRFVNUAotK2lmIHRlc3QgLW4gIiRPQkpEVU1QIjsgdGhlbgot KyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJE9CSkRVTVAiID4mNQotKyRh c19lY2hvICIkT0JKRFVNUCIgPiY2OyB9Ci0rZWxzZQotKyAgeyAkYXNfZWNobyAiJGFzX21lOiRM SU5FTk86IHJlc3VsdDogbm8iID4mNQotKyRhc19lY2hvICJubyIgPiY2OyB9Ci0rZmkKLSsKLSsK LStmaQotK2lmIHRlc3QgLXogIiRhY19jdl9wcm9nX09CSkRVTVAiOyB0aGVuCi0rICBhY19jdF9P QkpEVU1QPSRPQkpEVU1QCi0rICAjIEV4dHJhY3QgdGhlIGZpcnN0IHdvcmQgb2YgIm9iamR1bXAi LCBzbyBpdCBjYW4gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmdzLgotK3NldCBkdW1teSBvYmpk dW1wOyBhY193b3JkPSQyCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZv ciAkYWNfd29yZCIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yICRhY193b3JkLi4uICIg PiY2OyB9Ci0raWYgdGVzdCAiJHthY19jdl9wcm9nX2FjX2N0X09CSkRVTVArc2V0fSIgPSBzZXQ7 IHRoZW4KLSsgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci0rZWxzZQotKyAgaWYgdGVzdCAt biAiJGFjX2N0X09CSkRVTVAiOyB0aGVuCi0rICBhY19jdl9wcm9nX2FjX2N0X09CSkRVTVA9IiRh Y19jdF9PQkpEVU1QIiAjIExldCB0aGUgdXNlciBvdmVycmlkZSB0aGUgdGVzdC4KLStlbHNlCi0r YXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgotK2ZvciBhc19kaXIgaW4gJFBB VEgKLStkbwotKyAgSUZTPSRhc19zYXZlX0lGUwotKyAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNf ZGlyPS4KLSsgIGZvciBhY19leGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9leHRlbnNpb25z OyBkbwotKyAgaWYgeyB0ZXN0IC1mICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiAmJiAk YXNfdGVzdF94ICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IjsgfTsgdGhlbgotKyAgICBh Y19jdl9wcm9nX2FjX2N0X09CSkRVTVA9Im9iamR1bXAiCi0rICAgICRhc19lY2hvICIkYXNfbWU6 JExJTkVOTzogZm91bmQgJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgPiY1Ci0rICAgIGJy ZWFrIDIKLSsgIGZpCi0rZG9uZQotK2RvbmUKLStJRlM9JGFzX3NhdmVfSUZTCi0rCi0rZmkKLStm aQotK2FjX2N0X09CSkRVTVA9JGFjX2N2X3Byb2dfYWNfY3RfT0JKRFVNUAotK2lmIHRlc3QgLW4g IiRhY19jdF9PQkpEVU1QIjsgdGhlbgotKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJl c3VsdDogJGFjX2N0X09CSkRVTVAiID4mNQotKyRhc19lY2hvICIkYWNfY3RfT0JKRFVNUCIgPiY2 OyB9Ci0rZWxzZQotKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogbm8iID4m NQotKyRhc19lY2hvICJubyIgPiY2OyB9Ci0rZmkKLSsKLSsgIGlmIHRlc3QgIngkYWNfY3RfT0JK RFVNUCIgPSB4OyB0aGVuCi0rICAgIE9CSkRVTVA9ImZhbHNlIgotKyAgZWxzZQotKyAgICBjYXNl ICRjcm9zc19jb21waWxpbmc6JGFjX3Rvb2xfd2FybmVkIGluCi0reWVzOikKLSt7ICRhc19lY2hv ICIkYXNfbWU6JExJTkVOTzogV0FSTklORzogdXNpbmcgY3Jvc3MgdG9vbHMgbm90IHByZWZpeGVk IHdpdGggaG9zdCB0cmlwbGV0IiA+JjUKLSskYXNfZWNobyAiJGFzX21lOiBXQVJOSU5HOiB1c2lu ZyBjcm9zcyB0b29scyBub3QgcHJlZml4ZWQgd2l0aCBob3N0IHRyaXBsZXQiID4mMjt9Ci0rYWNf dG9vbF93YXJuZWQ9eWVzIDs7Ci0rZXNhYwotKyAgICBPQkpEVU1QPSRhY19jdF9PQkpEVU1QCi0r ICBmaQotK2Vsc2UKLSsgIE9CSkRVTVA9IiRhY19jdl9wcm9nX09CSkRVTVAiCi0rZmkKLSsKLSt0 ZXN0IC16ICIkT0JKRFVNUCIgJiYgT0JKRFVNUD1vYmpkdW1wCi0rCi0rCi0rCi0rCi0rCi0rCi0r Ci0rCi0rCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGhvdyB0byByZWNv Z25pemUgZGVwZW5kZW50IGxpYnJhcmllcyIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgaG93 IHRvIHJlY29nbml6ZSBkZXBlbmRlbnQgbGlicmFyaWVzLi4uICIgPiY2OyB9Ci0raWYgdGVzdCAi JHtsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZCtzZXR9IiA9IHNldDsgdGhlbgotKyAgJGFzX2Vj aG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rICBsdF9jdl9maWxlX21hZ2ljX2NtZD0nJE1B R0lDX0NNRCcKLStsdF9jdl9maWxlX21hZ2ljX3Rlc3RfZmlsZT0KLStsdF9jdl9kZXBsaWJzX2No ZWNrX21ldGhvZD0ndW5rbm93bicKLSsjIE5lZWQgdG8gc2V0IHRoZSBwcmVjZWRpbmcgdmFyaWFi bGUgb24gYWxsIHBsYXRmb3JtcyB0aGF0IHN1cHBvcnQKLSsjIGludGVybGlicmFyeSBkZXBlbmRl bmNpZXMuCi0rIyAnbm9uZScgLS0gZGVwZW5kZW5jaWVzIG5vdCBzdXBwb3J0ZWQuCi0rIyBgdW5r bm93bicgLS0gc2FtZSBhcyBub25lLCBidXQgZG9jdW1lbnRzIHRoYXQgd2UgcmVhbGx5IGRvbid0 IGtub3cuCi0rIyAncGFzc19hbGwnIC0tIGFsbCBkZXBlbmRlbmNpZXMgcGFzc2VkIHdpdGggbm8g Y2hlY2tzLgotKyMgJ3Rlc3RfY29tcGlsZScgLS0gY2hlY2sgYnkgbWFraW5nIHRlc3QgcHJvZ3Jh bS4KLSsjICdmaWxlX21hZ2ljIFtbcmVnZXhdXScgLS0gY2hlY2sgYnkgbG9va2luZyBmb3IgZmls ZXMgaW4gbGlicmFyeSBwYXRoCi0rIyB3aGljaCByZXNwb25kcyB0byB0aGUgJGZpbGVfbWFnaWNf Y21kIHdpdGggYSBnaXZlbiBleHRlbmRlZCByZWdleC4KLSsjIElmIHlvdSBoYXZlIGBmaWxlJyBv ciBlcXVpdmFsZW50IG9uIHlvdXIgc3lzdGVtIGFuZCB5b3UncmUgbm90IHN1cmUKLSsjIHdoZXRo ZXIgYHBhc3NfYWxsJyB3aWxsICphbHdheXMqIHdvcmssIHlvdSBwcm9iYWJseSB3YW50IHRoaXMg b25lLgotKwotK2Nhc2UgJGhvc3Rfb3MgaW4KLSthaXhbNC05XSopCi0rICBsdF9jdl9kZXBsaWJz X2NoZWNrX21ldGhvZD1wYXNzX2FsbAotKyAgOzsKLSsKLStiZW9zKikKLSsgIGx0X2N2X2RlcGxp YnNfY2hlY2tfbWV0aG9kPXBhc3NfYWxsCi0rICA7OwotKwotK2JzZGlbNDVdKikKLSsgIGx0X2N2 X2RlcGxpYnNfY2hlY2tfbWV0aG9kPSdmaWxlX21hZ2ljIEVMRiBbMC05XVswLTldKi1iaXQgW01M XVNCIChzaGFyZWQgb2JqZWN0fGR5bmFtaWMgbGliKScKLSsgIGx0X2N2X2ZpbGVfbWFnaWNfY21k PScvdXNyL2Jpbi9maWxlIC1MJwotKyAgbHRfY3ZfZmlsZV9tYWdpY190ZXN0X2ZpbGU9L3NobGli L2xpYmMuc28KLSsgIDs7Ci0rCi0rY3lnd2luKikKLSsgICMgZnVuY193aW4zMl9saWJpZCBpcyBh IHNoZWxsIGZ1bmN0aW9uIGRlZmluZWQgaW4gbHRtYWluLnNoCi0rICBsdF9jdl9kZXBsaWJzX2No ZWNrX21ldGhvZD0nZmlsZV9tYWdpYyBeeDg2IGFyY2hpdmUgaW1wb3J0fF54ODYgRExMJwotKyAg bHRfY3ZfZmlsZV9tYWdpY19jbWQ9J2Z1bmNfd2luMzJfbGliaWQnCi0rICA7OwotKwotK21pbmd3 KiB8IHB3MzIqKQotKyAgIyBCYXNlIE1TWVMvTWluR1cgZG8gbm90IHByb3ZpZGUgdGhlICdmaWxl JyBjb21tYW5kIG5lZWRlZCBieQotKyAgIyBmdW5jX3dpbjMyX2xpYmlkIHNoZWxsIGZ1bmN0aW9u LCBzbyB1c2UgYSB3ZWFrZXIgdGVzdCBiYXNlZCBvbiAnb2JqZHVtcCcsCi0rICAjIHVubGVzcyB3 ZSBmaW5kICdmaWxlJywgZm9yIGV4YW1wbGUgYmVjYXVzZSB3ZSBhcmUgY3Jvc3MtY29tcGlsaW5n LgotKyAgaWYgKCBmaWxlIC8gKSA+L2Rldi9udWxsIDI+JjE7IHRoZW4KLSsgICAgbHRfY3ZfZGVw bGlic19jaGVja19tZXRob2Q9J2ZpbGVfbWFnaWMgXng4NiBhcmNoaXZlIGltcG9ydHxeeDg2IERM TCcKLSsgICAgbHRfY3ZfZmlsZV9tYWdpY19jbWQ9J2Z1bmNfd2luMzJfbGliaWQnCi0rICBlbHNl Ci0rICAgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPSdmaWxlX21hZ2ljIGZpbGUgZm9ybWF0 IHBlaSotaTM4NiguKmFyY2hpdGVjdHVyZTogaTM4Nik/JwotKyAgICBsdF9jdl9maWxlX21hZ2lj X2NtZD0nJE9CSkRVTVAgLWYnCi0rICBmaQotKyAgOzsKLSsKLStjZWdjYykKLSsgICMgdXNlIHRo ZSB3ZWFrZXIgdGVzdCBiYXNlZCBvbiAnb2JqZHVtcCcuIFNlZSBtaW5ndyouCi0rICBsdF9jdl9k ZXBsaWJzX2NoZWNrX21ldGhvZD0nZmlsZV9tYWdpYyBmaWxlIGZvcm1hdCBwZS1hcm0tLipsaXR0 bGUoLiphcmNoaXRlY3R1cmU6IGFybSk/JwotKyAgbHRfY3ZfZmlsZV9tYWdpY19jbWQ9JyRPQkpE VU1QIC1mJwotKyAgOzsKLSsKLStkYXJ3aW4qIHwgcmhhcHNvZHkqKQotKyAgbHRfY3ZfZGVwbGli c19jaGVja19tZXRob2Q9cGFzc19hbGwKLSsgIDs7Ci0rCi0rZnJlZWJzZCogfCBkcmFnb25mbHkq KQotKyAgaWYgZWNobyBfX0VMRl9fIHwgJENDIC1FIC0gfCAkR1JFUCBfX0VMRl9fID4gL2Rldi9u dWxsOyB0aGVuCi0rICAgIGNhc2UgJGhvc3RfY3B1IGluCi0rICAgIGkqODYgKQotKyAgICAgICMg Tm90IHN1cmUgd2hldGhlciB0aGUgcHJlc2VuY2Ugb2YgT3BlbkJTRCBoZXJlIHdhcyBhIG1pc3Rh a2UuCi0rICAgICAgIyBMZXQncyBhY2NlcHQgYm90aCBvZiB0aGVtIHVudGlsIHRoaXMgaXMgY2xl YXJlZCB1cC4KLSsgICAgICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD0nZmlsZV9tYWdpYyAo RnJlZUJTRHxPcGVuQlNEfERyYWdvbkZseSkvaVszLTldODYgKGNvbXBhY3QgKT9kZW1hbmQgcGFn ZWQgc2hhcmVkIGxpYnJhcnknCi0rICAgICAgbHRfY3ZfZmlsZV9tYWdpY19jbWQ9L3Vzci9iaW4v ZmlsZQotKyAgICAgIGx0X2N2X2ZpbGVfbWFnaWNfdGVzdF9maWxlPWBlY2hvIC91c3IvbGliL2xp YmMuc28uKmAKLSsgICAgICA7OwotKyAgICBlc2FjCi0rICBlbHNlCi0rICAgIGx0X2N2X2RlcGxp YnNfY2hlY2tfbWV0aG9kPXBhc3NfYWxsCi0rICBmaQotKyAgOzsKLSsKLStnbnUqKQotKyAgbHRf Y3ZfZGVwbGlic19jaGVja19tZXRob2Q9cGFzc19hbGwKLSsgIDs7Ci0rCi0raHB1eDEwLjIwKiB8 IGhwdXgxMSopCi0rICBsdF9jdl9maWxlX21hZ2ljX2NtZD0vdXNyL2Jpbi9maWxlCi0rICBjYXNl ICRob3N0X2NwdSBpbgotKyAgaWE2NCopCi0rICAgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9k PSdmaWxlX21hZ2ljIChzWzAtOV1bMC05XVswLTldfEVMRi1bMC05XVswLTldKSBzaGFyZWQgb2Jq ZWN0IGZpbGUgLSBJQTY0JwotKyAgICBsdF9jdl9maWxlX21hZ2ljX3Rlc3RfZmlsZT0vdXNyL2xp Yi9ocHV4MzIvbGliYy5zbwotKyAgICA7OwotKyAgaHBwYSo2NCopCi0rICAgIGx0X2N2X2RlcGxp YnNfY2hlY2tfbWV0aG9kPSdmaWxlX21hZ2ljIChzWzAtOV1bMC05XVswLTldfEVMRi1bMC05XVsw LTldKSBzaGFyZWQgb2JqZWN0IGZpbGUgLSBQQS1SSVNDIFswLTldLlswLTldJwotKyAgICBsdF9j dl9maWxlX21hZ2ljX3Rlc3RfZmlsZT0vdXNyL2xpYi9wYTIwXzY0L2xpYmMuc2wKLSsgICAgOzsK LSsgICopCi0rICAgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPSdmaWxlX21hZ2ljIChzWzAt OV1bMC05XVswLTldfFBBLVJJU0NbMC05XS5bMC05XSkgc2hhcmVkIGxpYnJhcnknCi0rICAgIGx0 X2N2X2ZpbGVfbWFnaWNfdGVzdF9maWxlPS91c3IvbGliL2xpYmMuc2wKLSsgICAgOzsKLSsgIGVz YWMKLSsgIDs7Ci0rCi0raW50ZXJpeFszLTldKikKLSsgICMgUElDIGNvZGUgaXMgYnJva2VuIG9u IEludGVyaXggMy54LCB0aGF0J3Mgd2h5IHxcLmEgbm90IHxfcGljXC5hIGhlcmUKLSsgIGx0X2N2 X2RlcGxpYnNfY2hlY2tfbWV0aG9kPSdtYXRjaF9wYXR0ZXJuIC9saWJbXi9dKyhcLnNvfFwuYSkk JwotKyAgOzsKLSsKLStpcml4NSogfCBpcml4NiogfCBub25zdG9wdXgqKQotKyAgY2FzZSAkTEQg aW4KLSsgICotMzJ8KiItMzIgIikgbGlibWFnaWM9MzItYml0OzsKLSsgICotbjMyfCoiLW4zMiAi KSBsaWJtYWdpYz1OMzI7OwotKyAgKi02NHwqIi02NCAiKSBsaWJtYWdpYz02NC1iaXQ7OwotKyAg KikgbGlibWFnaWM9bmV2ZXItbWF0Y2g7OwotKyAgZXNhYwotKyAgbHRfY3ZfZGVwbGlic19jaGVj a19tZXRob2Q9cGFzc19hbGwKLSsgIDs7Ci0rCi0rIyBUaGlzIG11c3QgYmUgTGludXggRUxGLgot K2xpbnV4KiB8IGsqYnNkKi1nbnUpCi0rICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD1wYXNz X2FsbAotKyAgOzsKLSsKLStuZXRic2QqKQotKyAgaWYgZWNobyBfX0VMRl9fIHwgJENDIC1FIC0g fCAkR1JFUCBfX0VMRl9fID4gL2Rldi9udWxsOyB0aGVuCi0rICAgIGx0X2N2X2RlcGxpYnNfY2hl Y2tfbWV0aG9kPSdtYXRjaF9wYXR0ZXJuIC9saWJbXi9dKyhcLnNvXC5bMC05XStcLlswLTldK3xf cGljXC5hKSQnCi0rICBlbHNlCi0rICAgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPSdtYXRj aF9wYXR0ZXJuIC9saWJbXi9dKyhcLnNvfF9waWNcLmEpJCcKLSsgIGZpCi0rICA7OwotKwotK25l d29zNiopCi0rICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD0nZmlsZV9tYWdpYyBFTEYgWzAt OV1bMC05XSotYml0IFtNTF1TQiAoZXhlY3V0YWJsZXxkeW5hbWljIGxpYiknCi0rICBsdF9jdl9m aWxlX21hZ2ljX2NtZD0vdXNyL2Jpbi9maWxlCi0rICBsdF9jdl9maWxlX21hZ2ljX3Rlc3RfZmls ZT0vdXNyL2xpYi9saWJubHMuc28KLSsgIDs7Ci0rCi0rKm50byogfCAqcW54KikKLSsgIGx0X2N2 X2RlcGxpYnNfY2hlY2tfbWV0aG9kPXBhc3NfYWxsCi0rICA7OwotKwotK29wZW5ic2QqKQotKyAg aWYgdGVzdCAteiAiYGVjaG8gX19FTEZfXyB8ICRDQyAtRSAtIHwgJEdSRVAgX19FTEZfX2AiIHx8 IHRlc3QgIiRob3N0X29zLSRob3N0X2NwdSIgPSAib3BlbmJzZDIuOC1wb3dlcnBjIjsgdGhlbgot KyAgICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD0nbWF0Y2hfcGF0dGVybiAvbGliW14vXSso XC5zb1wuWzAtOV0rXC5bMC05XSt8XC5zb3xfcGljXC5hKSQnCi0rICBlbHNlCi0rICAgIGx0X2N2 X2RlcGxpYnNfY2hlY2tfbWV0aG9kPSdtYXRjaF9wYXR0ZXJuIC9saWJbXi9dKyhcLnNvXC5bMC05 XStcLlswLTldK3xfcGljXC5hKSQnCi0rICBmaQotKyAgOzsKLSsKLStvc2YzKiB8IG9zZjQqIHwg b3NmNSopCi0rICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD1wYXNzX2FsbAotKyAgOzsKLSsK LStyZG9zKikKLSsgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPXBhc3NfYWxsCi0rICA7Owot KwotK3NvbGFyaXMqKQotKyAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9cGFzc19hbGwKLSsg IDs7Ci0rCi0rc3lzdjUqIHwgc2NvMy4ydjUqIHwgc2NvNXY2KiB8IHVuaXh3YXJlKiB8IE9wZW5V TklYKiB8IHN5c3Y0KnV3MiopCi0rICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD1wYXNzX2Fs bAotKyAgOzsKLSsKLStzeXN2NCB8IHN5c3Y0LjMqKQotKyAgY2FzZSAkaG9zdF92ZW5kb3IgaW4K LSsgIG1vdG9yb2xhKQotKyAgICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD0nZmlsZV9tYWdp YyBFTEYgWzAtOV1bMC05XSotYml0IFtNTF1TQiAoc2hhcmVkIG9iamVjdHxkeW5hbWljIGxpYikg TVswLTldWzAtOV0qIFZlcnNpb24gWzAtOV0nCi0rICAgIGx0X2N2X2ZpbGVfbWFnaWNfdGVzdF9m aWxlPWBlY2hvIC91c3IvbGliL2xpYmMuc28qYAotKyAgICA7OwotKyAgbmNyKQotKyAgICBsdF9j dl9kZXBsaWJzX2NoZWNrX21ldGhvZD1wYXNzX2FsbAotKyAgICA7OwotKyAgc2VxdWVudCkKLSsg ICAgbHRfY3ZfZmlsZV9tYWdpY19jbWQ9Jy9iaW4vZmlsZScKLSsgICAgbHRfY3ZfZGVwbGlic19j aGVja19tZXRob2Q9J2ZpbGVfbWFnaWMgRUxGIFswLTldWzAtOV0qLWJpdCBbTE1dU0IgKHNoYXJl ZCBvYmplY3R8ZHluYW1pYyBsaWIgKScKLSsgICAgOzsKLSsgIHNuaSkKLSsgICAgbHRfY3ZfZmls ZV9tYWdpY19jbWQ9Jy9iaW4vZmlsZScKLSsgICAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9 ImZpbGVfbWFnaWMgRUxGIFswLTldWzAtOV0qLWJpdCBbTE1dU0IgZHluYW1pYyBsaWIiCi0rICAg IGx0X2N2X2ZpbGVfbWFnaWNfdGVzdF9maWxlPS9saWIvbGliYy5zbwotKyAgICA7OwotKyAgc2ll bWVucykKLSsgICAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9cGFzc19hbGwKLSsgICAgOzsK LSsgIHBjKQotKyAgICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD1wYXNzX2FsbAotKyAgICA7 OwotKyAgZXNhYwotKyAgOzsKLSsKLSt0cGYqKQotKyAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRo b2Q9cGFzc19hbGwKLSsgIDs7Ci0rZXNhYwotKwotK2ZpCi0reyAkYXNfZWNobyAiJGFzX21lOiRM SU5FTk86IHJlc3VsdDogJGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kIiA+JjUKLSskYXNfZWNo byAiJGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kIiA+JjY7IH0KLStmaWxlX21hZ2ljX2NtZD0k bHRfY3ZfZmlsZV9tYWdpY19jbWQKLStkZXBsaWJzX2NoZWNrX21ldGhvZD0kbHRfY3ZfZGVwbGli c19jaGVja19tZXRob2QKLSt0ZXN0IC16ICIkZGVwbGlic19jaGVja19tZXRob2QiICYmIGRlcGxp YnNfY2hlY2tfbWV0aG9kPXVua25vd24KLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsK LSsKLStpZiB0ZXN0IC1uICIkYWNfdG9vbF9wcmVmaXgiOyB0aGVuCi0rICAjIEV4dHJhY3QgdGhl IGZpcnN0IHdvcmQgb2YgIiR7YWNfdG9vbF9wcmVmaXh9YXIiLCBzbyBpdCBjYW4gYmUgYSBwcm9n cmFtIG5hbWUgd2l0aCBhcmdzLgotK3NldCBkdW1teSAke2FjX3Rvb2xfcHJlZml4fWFyOyBhY193 b3JkPSQyCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciAkYWNfd29y ZCIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yICRhY193b3JkLi4uICIgPiY2OyB9Ci0r aWYgdGVzdCAiJHthY19jdl9wcm9nX0FSK3NldH0iID0gc2V0OyB0aGVuCi0rICAkYXNfZWNob19u ICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsgIGlmIHRlc3QgLW4gIiRBUiI7IHRoZW4KLSsgIGFj X2N2X3Byb2dfQVI9IiRBUiIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3QuCi0rZWxz ZQotK2FzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IKLStmb3IgYXNfZGlyIGlu ICRQQVRICi0rZG8KLSsgIElGUz0kYXNfc2F2ZV9JRlMKLSsgIHRlc3QgLXogIiRhc19kaXIiICYm IGFzX2Rpcj0uCi0rICBmb3IgYWNfZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1dGFibGVfZXh0ZW5z aW9uczsgZG8KLSsgIGlmIHsgdGVzdCAtZiAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIg JiYgJGFzX3Rlc3RfeCAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCI7IH07IHRoZW4KLSsg ICAgYWNfY3ZfcHJvZ19BUj0iJHthY190b29sX3ByZWZpeH1hciIKLSsgICAgJGFzX2VjaG8gIiRh c19tZTokTElORU5POiBmb3VuZCAkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiA+JjUKLSsg ICAgYnJlYWsgMgotKyAgZmkKLStkb25lCi0rZG9uZQotK0lGUz0kYXNfc2F2ZV9JRlMKLSsKLStm aQotK2ZpCi0rQVI9JGFjX2N2X3Byb2dfQVIKLStpZiB0ZXN0IC1uICIkQVIiOyB0aGVuCi0rICB7 ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkQVIiID4mNQotKyRhc19lY2hvICIk QVIiID4mNjsgfQotK2Vsc2UKLSsgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6 IG5vIiA+JjUKLSskYXNfZWNobyAibm8iID4mNjsgfQotK2ZpCi0rCi0rCi0rZmkKLStpZiB0ZXN0 IC16ICIkYWNfY3ZfcHJvZ19BUiI7IHRoZW4KLSsgIGFjX2N0X0FSPSRBUgotKyAgIyBFeHRyYWN0 IHRoZSBmaXJzdCB3b3JkIG9mICJhciIsIHNvIGl0IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3aXRo IGFyZ3MuCi0rc2V0IGR1bW15IGFyOyBhY193b3JkPSQyCi0reyAkYXNfZWNobyAiJGFzX21lOiRM SU5FTk86IGNoZWNraW5nIGZvciAkYWNfd29yZCIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcg Zm9yICRhY193b3JkLi4uICIgPiY2OyB9Ci0raWYgdGVzdCAiJHthY19jdl9wcm9nX2FjX2N0X0FS K3NldH0iID0gc2V0OyB0aGVuCi0rICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UK LSsgIGlmIHRlc3QgLW4gIiRhY19jdF9BUiI7IHRoZW4KLSsgIGFjX2N2X3Byb2dfYWNfY3RfQVI9 IiRhY19jdF9BUiIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3QuCi0rZWxzZQotK2Fz X3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IKLStmb3IgYXNfZGlyIGluICRQQVRI Ci0rZG8KLSsgIElGUz0kYXNfc2F2ZV9JRlMKLSsgIHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rp cj0uCi0rICBmb3IgYWNfZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1dGFibGVfZXh0ZW5zaW9uczsg ZG8KLSsgIGlmIHsgdGVzdCAtZiAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgJiYgJGFz X3Rlc3RfeCAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCI7IH07IHRoZW4KLSsgICAgYWNf Y3ZfcHJvZ19hY19jdF9BUj0iYXIiCi0rICAgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZm91 bmQgJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgPiY1Ci0rICAgIGJyZWFrIDIKLSsgIGZp Ci0rZG9uZQotK2RvbmUKLStJRlM9JGFzX3NhdmVfSUZTCi0rCi0rZmkKLStmaQotK2FjX2N0X0FS PSRhY19jdl9wcm9nX2FjX2N0X0FSCi0raWYgdGVzdCAtbiAiJGFjX2N0X0FSIjsgdGhlbgotKyAg eyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2N0X0FSIiA+JjUKLSskYXNf ZWNobyAiJGFjX2N0X0FSIiA+JjY7IH0KLStlbHNlCi0rICB7ICRhc19lY2hvICIkYXNfbWU6JExJ TkVOTzogcmVzdWx0OiBubyIgPiY1Ci0rJGFzX2VjaG8gIm5vIiA+JjY7IH0KLStmaQotKwotKyAg aWYgdGVzdCAieCRhY19jdF9BUiIgPSB4OyB0aGVuCi0rICAgIEFSPSJmYWxzZSIKLSsgIGVsc2UK LSsgICAgY2FzZSAkY3Jvc3NfY29tcGlsaW5nOiRhY190b29sX3dhcm5lZCBpbgotK3llczopCi0r eyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6IHVzaW5nIGNyb3NzIHRvb2xzIG5v dCBwcmVmaXhlZCB3aXRoIGhvc3QgdHJpcGxldCIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogV0FS TklORzogdXNpbmcgY3Jvc3MgdG9vbHMgbm90IHByZWZpeGVkIHdpdGggaG9zdCB0cmlwbGV0IiA+ JjI7fQotK2FjX3Rvb2xfd2FybmVkPXllcyA7OwotK2VzYWMKLSsgICAgQVI9JGFjX2N0X0FSCi0r ICBmaQotK2Vsc2UKLSsgIEFSPSIkYWNfY3ZfcHJvZ19BUiIKLStmaQotKwotK3Rlc3QgLXogIiRB UiIgJiYgQVI9YXIKLSt0ZXN0IC16ICIkQVJfRkxBR1MiICYmIEFSX0ZMQUdTPWNydQotKwotKwot KwotKwotKwotKwotKwotKwotKwotKwotKwotK2lmIHRlc3QgLW4gIiRhY190b29sX3ByZWZpeCI7 IHRoZW4KLSsgICMgRXh0cmFjdCB0aGUgZmlyc3Qgd29yZCBvZiAiJHthY190b29sX3ByZWZpeH1z dHJpcCIsIHNvIGl0IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3MuCi0rc2V0IGR1bW15 ICR7YWNfdG9vbF9wcmVmaXh9c3RyaXA7IGFjX3dvcmQ9JDIKLSt7ICRhc19lY2hvICIkYXNfbWU6 JExJTkVOTzogY2hlY2tpbmcgZm9yICRhY193b3JkIiA+JjUKLSskYXNfZWNob19uICJjaGVja2lu ZyBmb3IgJGFjX3dvcmQuLi4gIiA+JjY7IH0KLStpZiB0ZXN0ICIke2FjX2N2X3Byb2dfU1RSSVAr c2V0fSIgPSBzZXQ7IHRoZW4KLSsgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci0rZWxzZQot KyAgaWYgdGVzdCAtbiAiJFNUUklQIjsgdGhlbgotKyAgYWNfY3ZfcHJvZ19TVFJJUD0iJFNUUklQ IiAjIExldCB0aGUgdXNlciBvdmVycmlkZSB0aGUgdGVzdC4KLStlbHNlCi0rYXNfc2F2ZV9JRlM9 JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgotK2ZvciBhc19kaXIgaW4gJFBBVEgKLStkbwotKyAg SUZTPSRhc19zYXZlX0lGUwotKyAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KLSsgIGZv ciBhY19leGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9leHRlbnNpb25zOyBkbwotKyAgaWYg eyB0ZXN0IC1mICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiAmJiAkYXNfdGVzdF94ICIk YXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IjsgfTsgdGhlbgotKyAgICBhY19jdl9wcm9nX1NU UklQPSIke2FjX3Rvb2xfcHJlZml4fXN0cmlwIgotKyAgICAkYXNfZWNobyAiJGFzX21lOiRMSU5F Tk86IGZvdW5kICRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiID4mNQotKyAgICBicmVhayAy Ci0rICBmaQotK2RvbmUKLStkb25lCi0rSUZTPSRhc19zYXZlX0lGUwotKwotK2ZpCi0rZmkKLStT VFJJUD0kYWNfY3ZfcHJvZ19TVFJJUAotK2lmIHRlc3QgLW4gIiRTVFJJUCI7IHRoZW4KLSsgIHsg JGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRTVFJJUCIgPiY1Ci0rJGFzX2VjaG8g IiRTVFJJUCIgPiY2OyB9Ci0rZWxzZQotKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJl c3VsdDogbm8iID4mNQotKyRhc19lY2hvICJubyIgPiY2OyB9Ci0rZmkKLSsKLSsKLStmaQotK2lm IHRlc3QgLXogIiRhY19jdl9wcm9nX1NUUklQIjsgdGhlbgotKyAgYWNfY3RfU1RSSVA9JFNUUklQ Ci0rICAjIEV4dHJhY3QgdGhlIGZpcnN0IHdvcmQgb2YgInN0cmlwIiwgc28gaXQgY2FuIGJlIGEg cHJvZ3JhbSBuYW1lIHdpdGggYXJncy4KLStzZXQgZHVtbXkgc3RyaXA7IGFjX3dvcmQ9JDIKLSt7 ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yICRhY193b3JkIiA+JjUKLSsk YXNfZWNob19uICJjaGVja2luZyBmb3IgJGFjX3dvcmQuLi4gIiA+JjY7IH0KLStpZiB0ZXN0ICIk e2FjX2N2X3Byb2dfYWNfY3RfU1RSSVArc2V0fSIgPSBzZXQ7IHRoZW4KLSsgICRhc19lY2hvX24g IihjYWNoZWQpICIgPiY2Ci0rZWxzZQotKyAgaWYgdGVzdCAtbiAiJGFjX2N0X1NUUklQIjsgdGhl bgotKyAgYWNfY3ZfcHJvZ19hY19jdF9TVFJJUD0iJGFjX2N0X1NUUklQIiAjIExldCB0aGUgdXNl ciBvdmVycmlkZSB0aGUgdGVzdC4KLStlbHNlCi0rYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRI X1NFUEFSQVRPUgotK2ZvciBhc19kaXIgaW4gJFBBVEgKLStkbwotKyAgSUZTPSRhc19zYXZlX0lG UwotKyAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KLSsgIGZvciBhY19leGVjX2V4dCBp biAnJyAkYWNfZXhlY3V0YWJsZV9leHRlbnNpb25zOyBkbwotKyAgaWYgeyB0ZXN0IC1mICIkYXNf ZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiAmJiAkYXNfdGVzdF94ICIkYXNfZGlyLyRhY193b3Jk JGFjX2V4ZWNfZXh0IjsgfTsgdGhlbgotKyAgICBhY19jdl9wcm9nX2FjX2N0X1NUUklQPSJzdHJp cCIKLSsgICAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBmb3VuZCAkYXNfZGlyLyRhY193b3Jk JGFjX2V4ZWNfZXh0IiA+JjUKLSsgICAgYnJlYWsgMgotKyAgZmkKLStkb25lCi0rZG9uZQotK0lG Uz0kYXNfc2F2ZV9JRlMKLSsKLStmaQotK2ZpCi0rYWNfY3RfU1RSSVA9JGFjX2N2X3Byb2dfYWNf Y3RfU1RSSVAKLStpZiB0ZXN0IC1uICIkYWNfY3RfU1RSSVAiOyB0aGVuCi0rICB7ICRhc19lY2hv ICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3RfU1RSSVAiID4mNQotKyRhc19lY2hvICIk YWNfY3RfU1RSSVAiID4mNjsgfQotK2Vsc2UKLSsgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5P OiByZXN1bHQ6IG5vIiA+JjUKLSskYXNfZWNobyAibm8iID4mNjsgfQotK2ZpCi0rCi0rICBpZiB0 ZXN0ICJ4JGFjX2N0X1NUUklQIiA9IHg7IHRoZW4KLSsgICAgU1RSSVA9IjoiCi0rICBlbHNlCi0r ICAgIGNhc2UgJGNyb3NzX2NvbXBpbGluZzokYWNfdG9vbF93YXJuZWQgaW4KLSt5ZXM6KQotK3sg JGFzX2VjaG8gIiRhc19tZTokTElORU5POiBXQVJOSU5HOiB1c2luZyBjcm9zcyB0b29scyBub3Qg cHJlZml4ZWQgd2l0aCBob3N0IHRyaXBsZXQiID4mNQotKyRhc19lY2hvICIkYXNfbWU6IFdBUk5J Tkc6IHVzaW5nIGNyb3NzIHRvb2xzIG5vdCBwcmVmaXhlZCB3aXRoIGhvc3QgdHJpcGxldCIgPiYy O30KLSthY190b29sX3dhcm5lZD15ZXMgOzsKLStlc2FjCi0rICAgIFNUUklQPSRhY19jdF9TVFJJ UAotKyAgZmkKLStlbHNlCi0rICBTVFJJUD0iJGFjX2N2X3Byb2dfU1RSSVAiCi0rZmkKLSsKLSt0 ZXN0IC16ICIkU1RSSVAiICYmIFNUUklQPToKLSsKLSsKLSsKLSsKLSsKLSsKLStpZiB0ZXN0IC1u ICIkYWNfdG9vbF9wcmVmaXgiOyB0aGVuCi0rICAjIEV4dHJhY3QgdGhlIGZpcnN0IHdvcmQgb2Yg IiR7YWNfdG9vbF9wcmVmaXh9cmFubGliIiwgc28gaXQgY2FuIGJlIGEgcHJvZ3JhbSBuYW1lIHdp dGggYXJncy4KLStzZXQgZHVtbXkgJHthY190b29sX3ByZWZpeH1yYW5saWI7IGFjX3dvcmQ9JDIK LSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yICRhY193b3JkIiA+JjUK LSskYXNfZWNob19uICJjaGVja2luZyBmb3IgJGFjX3dvcmQuLi4gIiA+JjY7IH0KLStpZiB0ZXN0 ICIke2FjX2N2X3Byb2dfUkFOTElCK3NldH0iID0gc2V0OyB0aGVuCi0rICAkYXNfZWNob19uICIo Y2FjaGVkKSAiID4mNgotK2Vsc2UKLSsgIGlmIHRlc3QgLW4gIiRSQU5MSUIiOyB0aGVuCi0rICBh Y19jdl9wcm9nX1JBTkxJQj0iJFJBTkxJQiIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRl c3QuCi0rZWxzZQotK2FzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IKLStmb3Ig YXNfZGlyIGluICRQQVRICi0rZG8KLSsgIElGUz0kYXNfc2F2ZV9JRlMKLSsgIHRlc3QgLXogIiRh c19kaXIiICYmIGFzX2Rpcj0uCi0rICBmb3IgYWNfZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1dGFi bGVfZXh0ZW5zaW9uczsgZG8KLSsgIGlmIHsgdGVzdCAtZiAiJGFzX2Rpci8kYWNfd29yZCRhY19l eGVjX2V4dCIgJiYgJGFzX3Rlc3RfeCAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCI7IH07 IHRoZW4KLSsgICAgYWNfY3ZfcHJvZ19SQU5MSUI9IiR7YWNfdG9vbF9wcmVmaXh9cmFubGliIgot KyAgICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGZvdW5kICRhc19kaXIvJGFjX3dvcmQkYWNf ZXhlY19leHQiID4mNQotKyAgICBicmVhayAyCi0rICBmaQotK2RvbmUKLStkb25lCi0rSUZTPSRh c19zYXZlX0lGUwotKwotK2ZpCi0rZmkKLStSQU5MSUI9JGFjX2N2X3Byb2dfUkFOTElCCi0raWYg dGVzdCAtbiAiJFJBTkxJQiI7IHRoZW4KLSsgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBy ZXN1bHQ6ICRSQU5MSUIiID4mNQotKyRhc19lY2hvICIkUkFOTElCIiA+JjY7IH0KLStlbHNlCi0r ICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiBubyIgPiY1Ci0rJGFzX2VjaG8g Im5vIiA+JjY7IH0KLStmaQotKwotKwotK2ZpCi0raWYgdGVzdCAteiAiJGFjX2N2X3Byb2dfUkFO TElCIjsgdGhlbgotKyAgYWNfY3RfUkFOTElCPSRSQU5MSUIKLSsgICMgRXh0cmFjdCB0aGUgZmly c3Qgd29yZCBvZiAicmFubGliIiwgc28gaXQgY2FuIGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJn cy4KLStzZXQgZHVtbXkgcmFubGliOyBhY193b3JkPSQyCi0reyAkYXNfZWNobyAiJGFzX21lOiRM SU5FTk86IGNoZWNraW5nIGZvciAkYWNfd29yZCIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcg Zm9yICRhY193b3JkLi4uICIgPiY2OyB9Ci0raWYgdGVzdCAiJHthY19jdl9wcm9nX2FjX2N0X1JB TkxJQitzZXR9IiA9IHNldDsgdGhlbgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLStl bHNlCi0rICBpZiB0ZXN0IC1uICIkYWNfY3RfUkFOTElCIjsgdGhlbgotKyAgYWNfY3ZfcHJvZ19h Y19jdF9SQU5MSUI9IiRhY19jdF9SQU5MSUIiICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0 ZXN0LgotK2Vsc2UKLSthc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCi0rZm9y IGFzX2RpciBpbiAkUEFUSAotK2RvCi0rICBJRlM9JGFzX3NhdmVfSUZTCi0rICB0ZXN0IC16ICIk YXNfZGlyIiAmJiBhc19kaXI9LgotKyAgZm9yIGFjX2V4ZWNfZXh0IGluICcnICRhY19leGVjdXRh YmxlX2V4dGVuc2lvbnM7IGRvCi0rICBpZiB7IHRlc3QgLWYgIiRhc19kaXIvJGFjX3dvcmQkYWNf ZXhlY19leHQiICYmICRhc190ZXN0X3ggIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiOyB9 OyB0aGVuCi0rICAgIGFjX2N2X3Byb2dfYWNfY3RfUkFOTElCPSJyYW5saWIiCi0rICAgICRhc19l Y2hvICIkYXNfbWU6JExJTkVOTzogZm91bmQgJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIg PiY1Ci0rICAgIGJyZWFrIDIKLSsgIGZpCi0rZG9uZQotK2RvbmUKLStJRlM9JGFzX3NhdmVfSUZT Ci0rCi0rZmkKLStmaQotK2FjX2N0X1JBTkxJQj0kYWNfY3ZfcHJvZ19hY19jdF9SQU5MSUIKLStp ZiB0ZXN0IC1uICIkYWNfY3RfUkFOTElCIjsgdGhlbgotKyAgeyAkYXNfZWNobyAiJGFzX21lOiRM SU5FTk86IHJlc3VsdDogJGFjX2N0X1JBTkxJQiIgPiY1Ci0rJGFzX2VjaG8gIiRhY19jdF9SQU5M SUIiID4mNjsgfQotK2Vsc2UKLSsgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6 IG5vIiA+JjUKLSskYXNfZWNobyAibm8iID4mNjsgfQotK2ZpCi0rCi0rICBpZiB0ZXN0ICJ4JGFj X2N0X1JBTkxJQiIgPSB4OyB0aGVuCi0rICAgIFJBTkxJQj0iOiIKLSsgIGVsc2UKLSsgICAgY2Fz ZSAkY3Jvc3NfY29tcGlsaW5nOiRhY190b29sX3dhcm5lZCBpbgotK3llczopCi0reyAkYXNfZWNo byAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6IHVzaW5nIGNyb3NzIHRvb2xzIG5vdCBwcmVmaXhl ZCB3aXRoIGhvc3QgdHJpcGxldCIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogV0FSTklORzogdXNp bmcgY3Jvc3MgdG9vbHMgbm90IHByZWZpeGVkIHdpdGggaG9zdCB0cmlwbGV0IiA+JjI7fQotK2Fj X3Rvb2xfd2FybmVkPXllcyA7OwotK2VzYWMKLSsgICAgUkFOTElCPSRhY19jdF9SQU5MSUIKLSsg IGZpCi0rZWxzZQotKyAgUkFOTElCPSIkYWNfY3ZfcHJvZ19SQU5MSUIiCi0rZmkKLSsKLSt0ZXN0 IC16ICIkUkFOTElCIiAmJiBSQU5MSUI9OgotKwotKwotKwotKwotKwotKwotKyMgRGV0ZXJtaW5l IGNvbW1hbmRzIHRvIGNyZWF0ZSBvbGQtc3R5bGUgc3RhdGljIGFyY2hpdmVzLgotK29sZF9hcmNo aXZlX2NtZHM9JyRBUiAkQVJfRkxBR1MgJG9sZGxpYiRvbGRvYmpzJwotK29sZF9wb3N0aW5zdGFs bF9jbWRzPSdjaG1vZCA2NDQgJG9sZGxpYicKLStvbGRfcG9zdHVuaW5zdGFsbF9jbWRzPQotKwot K2lmIHRlc3QgLW4gIiRSQU5MSUIiOyB0aGVuCi0rICBjYXNlICRob3N0X29zIGluCi0rICBvcGVu YnNkKikKLSsgICAgb2xkX3Bvc3RpbnN0YWxsX2NtZHM9IiRvbGRfcG9zdGluc3RhbGxfY21kc35c JFJBTkxJQiAtdCBcJG9sZGxpYiIKLSsgICAgOzsKLSsgICopCi0rICAgIG9sZF9wb3N0aW5zdGFs bF9jbWRzPSIkb2xkX3Bvc3RpbnN0YWxsX2NtZHN+XCRSQU5MSUIgXCRvbGRsaWIiCi0rICAgIDs7 Ci0rICBlc2FjCi0rICBvbGRfYXJjaGl2ZV9jbWRzPSIkb2xkX2FyY2hpdmVfY21kc35cJFJBTkxJ QiBcJG9sZGxpYiIKLStmaQotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwot KwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwot KwotKwotKyMgSWYgbm8gQyBjb21waWxlciB3YXMgc3BlY2lmaWVkLCB1c2UgQ0MuCi0rTFRDQz0k e0xUQ0MtIiRDQyJ9Ci0rCi0rIyBJZiBubyBDIGNvbXBpbGVyIGZsYWdzIHdlcmUgc3BlY2lmaWVk LCB1c2UgQ0ZMQUdTLgotK0xUQ0ZMQUdTPSR7TFRDRkxBR1MtIiRDRkxBR1MifQotKwotKyMgQWxs b3cgQ0MgdG8gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmd1bWVudHMuCi0rY29tcGlsZXI9JEND Ci0rCi0rCi0rIyBDaGVjayBmb3IgY29tbWFuZCB0byBncmFiIHRoZSByYXcgc3ltYm9sIG5hbWUg Zm9sbG93ZWQgYnkgQyBzeW1ib2wgZnJvbSBubS4KLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVO TzogY2hlY2tpbmcgY29tbWFuZCB0byBwYXJzZSAkTk0gb3V0cHV0IGZyb20gJGNvbXBpbGVyIG9i amVjdCIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgY29tbWFuZCB0byBwYXJzZSAkTk0gb3V0 cHV0IGZyb20gJGNvbXBpbGVyIG9iamVjdC4uLiAiID4mNjsgfQotK2lmIHRlc3QgIiR7bHRfY3Zf c3lzX2dsb2JhbF9zeW1ib2xfcGlwZStzZXR9IiA9IHNldDsgdGhlbgotKyAgJGFzX2VjaG9fbiAi KGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rCi0rIyBUaGVzZSBhcmUgc2FuZSBkZWZhdWx0cyB0aGF0 IHdvcmsgb24gYXQgbGVhc3QgYSBmZXcgb2xkIHN5c3RlbXMuCi0rIyBbVGhleSBjb21lIGZyb20g VWx0cml4LiAgV2hhdCBjb3VsZCBiZSBvbGRlciB0aGFuIFVsdHJpeD8hISA7KV0KLSsKLSsjIENo YXJhY3RlciBjbGFzcyBkZXNjcmliaW5nIE5NIGdsb2JhbCBzeW1ib2wgY29kZXMuCi0rc3ltY29k ZT0nW0JDREVHUlNUXScKLSsKLSsjIFJlZ2V4cCB0byBtYXRjaCBzeW1ib2xzIHRoYXQgY2FuIGJl IGFjY2Vzc2VkIGRpcmVjdGx5IGZyb20gQy4KLStzeW1wYXQ9J1woW19BLVphLXpdW19BLVphLXow LTldKlwpJwotKwotKyMgRGVmaW5lIHN5c3RlbS1zcGVjaWZpYyB2YXJpYWJsZXMuCi0rY2FzZSAk aG9zdF9vcyBpbgotK2FpeCopCi0rICBzeW1jb2RlPSdbQkNEVF0nCi0rICA7OwotK2N5Z3dpbiog fCBtaW5ndyogfCBwdzMyKiB8IGNlZ2NjKikKLSsgIHN5bWNvZGU9J1tBQkNER0lTVFddJwotKyAg OzsKLStocHV4KikKLSsgIGlmIHRlc3QgIiRob3N0X2NwdSIgPSBpYTY0OyB0aGVuCi0rICAgIHN5 bWNvZGU9J1tBQkNERUdSU1RdJwotKyAgZmkKLSsgIDs7Ci0raXJpeCogfCBub25zdG9wdXgqKQot KyAgc3ltY29kZT0nW0JDREVHUlNUXScKLSsgIDs7Ci0rb3NmKikKLSsgIHN5bWNvZGU9J1tCQ0RF R1FSU1RdJwotKyAgOzsKLStzb2xhcmlzKikKLSsgIHN5bWNvZGU9J1tCRFJUXScKLSsgIDs7Ci0r c2NvMy4ydjUqKQotKyAgc3ltY29kZT0nW0RUXScKLSsgIDs7Ci0rc3lzdjQuMnV3MiopCi0rICBz eW1jb2RlPSdbRFRdJwotKyAgOzsKLStzeXN2NSogfCBzY281djYqIHwgdW5peHdhcmUqIHwgT3Bl blVOSVgqKQotKyAgc3ltY29kZT0nW0FCRFRdJwotKyAgOzsKLStzeXN2NCkKLSsgIHN5bWNvZGU9 J1tERk5TVFVdJwotKyAgOzsKLStlc2FjCi0rCi0rIyBJZiB3ZSdyZSB1c2luZyBHTlUgbm0sIHRo ZW4gdXNlIGl0cyBzdGFuZGFyZCBzeW1ib2wgY29kZXMuCi0rY2FzZSBgJE5NIC1WIDI+JjFgIGlu Ci0rKkdOVSogfCAqJ3dpdGggQkZEJyopCi0rICBzeW1jb2RlPSdbQUJDREdJUlNUV10nIDs7Ci0r ZXNhYwotKwotKyMgVHJhbnNmb3JtIGFuIGV4dHJhY3RlZCBzeW1ib2wgbGluZSBpbnRvIGEgcHJv cGVyIEMgZGVjbGFyYXRpb24uCi0rIyBTb21lIHN5c3RlbXMgKGVzcC4gb24gaWE2NCkgbGluayBk YXRhIGFuZCBjb2RlIHN5bWJvbHMgZGlmZmVyZW50bHksCi0rIyBzbyB1c2UgdGhpcyBnZW5lcmFs IGFwcHJvYWNoLgotK2x0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3RvX2NkZWNsPSJzZWQgLW4gLWUg J3MvXlQgLiogXCguKlwpJC9leHRlcm4gaW50IFwxKCk7L3AnIC1lICdzL14kc3ltY29kZSogLiog XCguKlwpJC9leHRlcm4gY2hhciBcMTsvcCciCi0rCi0rIyBUcmFuc2Zvcm0gYW4gZXh0cmFjdGVk IHN5bWJvbCBsaW5lIGludG8gc3ltYm9sIG5hbWUgYW5kIHN5bWJvbCBhZGRyZXNzCi0rbHRfY3Zf c3lzX2dsb2JhbF9zeW1ib2xfdG9fY19uYW1lX2FkZHJlc3M9InNlZCAtbiAtZSAncy9eOiBcKFte IF0qXCkgJC8gIHtcXFwiXDFcXFwiLCAodm9pZCAqKSAwfSwvcCcgLWUgJ3MvXiRzeW1jb2RlKiBc KFteIF0qXCkgXChbXiBdKlwpJC8gIHtcIlwyXCIsICh2b2lkICopIFwmXDJ9LC9wJyIKLStsdF9j dl9zeXNfZ2xvYmFsX3N5bWJvbF90b19jX25hbWVfYWRkcmVzc19saWJfcHJlZml4PSJzZWQgLW4g LWUgJ3MvXjogXChbXiBdKlwpICQvICB7XFxcIlwxXFxcIiwgKHZvaWQgKikgMH0sL3AnIC1lICdz L14kc3ltY29kZSogXChbXiBdKlwpIFwobGliW14gXSpcKSQvICB7XCJcMlwiLCAodm9pZCAqKSBc JlwyfSwvcCcgLWUgJ3MvXiRzeW1jb2RlKiBcKFteIF0qXCkgXChbXiBdKlwpJC8gIHtcImxpYlwy XCIsICh2b2lkICopIFwmXDJ9LC9wJyIKLSsKLSsjIEhhbmRsZSBDUkxGIGluIG1pbmd3IHRvb2wg Y2hhaW4KLStvcHRfY3I9Ci0rY2FzZSAkYnVpbGRfb3MgaW4KLSttaW5ndyopCi0rICBvcHRfY3I9 YCRFQ0hPICd4XHswLDFcfScgfCB0ciB4ICdcMDE1J2AgIyBvcHRpb24gY3IgaW4gcmVnZXhwCi0r ICA7OwotK2VzYWMKLSsKLSsjIFRyeSB3aXRob3V0IGEgcHJlZml4IHVuZGVyc2NvcmUsIHRoZW4g d2l0aCBpdC4KLStmb3IgYWNfc3ltcHJmeCBpbiAiIiAiXyI7IGRvCi0rCi0rICAjIFRyYW5zZm9y bSBzeW1jb2RlLCBzeW1wYXQsIGFuZCBzeW1wcmZ4IGludG8gYSByYXcgc3ltYm9sIGFuZCBhIEMg c3ltYm9sLgotKyAgc3lteGZybT0iXFwxICRhY19zeW1wcmZ4XFwyIFxcMiIKLSsKLSsgICMgV3Jp dGUgdGhlIHJhdyBhbmQgQyBpZGVudGlmaWVycy4KLSsgIGlmIHRlc3QgIiRsdF9jdl9ubV9pbnRl cmZhY2UiID0gIk1TIGR1bXBiaW4iOyB0aGVuCi0rICAgICMgRmFrZSBpdCBmb3IgZHVtcGJpbiBh bmQgc2F5IFQgZm9yIGFueSBub24tc3RhdGljIGZ1bmN0aW9uCi0rICAgICMgYW5kIEQgZm9yIGFu eSBnbG9iYWwgdmFyaWFibGUuCi0rICAgICMgQWxzbyBmaW5kIEMrKyBhbmQgX19mYXN0Y2FsbCBz eW1ib2xzIGZyb20gTVNWQysrLAotKyAgICAjIHdoaWNoIHN0YXJ0IHdpdGggQCBvciA/LgotKyAg ICBsdF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF9waXBlPSIkQVdLICciXAotKyIgICAgIHtsYXN0X3Nl Y3Rpb249c2VjdGlvbjsgc2VjdGlvbj1cJCAzfTsiXAotKyIgICAgIC9TZWN0aW9uIGxlbmd0aCAu KiNyZWxvY3MuKihwaWNrIGFueSkve2hpZGVbbGFzdF9zZWN0aW9uXT0xfTsiXAotKyIgICAgIFwk IDAhfi9FeHRlcm5hbCAqXHwve25leHR9OyJcCi0rIiAgICAgLyAwKyBVTkRFRiAve25leHR9OyAv IFVOREVGIFwoW158XVwpKigpL3tuZXh0fTsiXAotKyIgICAgIHtpZihoaWRlW3NlY3Rpb25dKSBu ZXh0fTsiXAotKyIgICAgIHtmPTB9OyBcJCAwfi9cKFwpLipcfC97Zj0xfTsge3ByaW50ZiBmID8g XCJUIFwiIDogXCJEIFwifTsiXAotKyIgICAgIHtzcGxpdChcJCAwLCBhLCAvXHx8XHIvKTsgc3Bs aXQoYVsyXSwgcyl9OyJcCi0rIiAgICAgc1sxXX4vXltAP10ve3ByaW50IHNbMV0sIHNbMV07IG5l eHR9OyJcCi0rIiAgICAgc1sxXX5wcmZ4IHtzcGxpdChzWzFdLHQsXCJAXCIpOyBwcmludCB0WzFd LCBzdWJzdHIodFsxXSxsZW5ndGgocHJmeCkpfSJcCi0rIiAgICAgJyBwcmZ4PV4kYWNfc3ltcHJm eCIKLSsgIGVsc2UKLSsgICAgbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfcGlwZT0ic2VkIC1uIC1l ICdzL14uKlsJIF1cKCRzeW1jb2RlJHN5bWNvZGUqXClbCSBdWwkgXSokYWNfc3ltcHJmeCRzeW1w YXQkb3B0X2NyJC8kc3lteGZybS9wJyIKLSsgIGZpCi0rCi0rICAjIENoZWNrIHRvIHNlZSB0aGF0 IHRoZSBwaXBlIHdvcmtzIGNvcnJlY3RseS4KLSsgIHBpcGVfd29ya3M9bm8KLSsKLSsgIHJtIC1m IGNvbmZ0ZXN0KgotKyAgY2F0ID4gY29uZnRlc3QuJGFjX2V4dCA8PF9MVF9FT0YKLSsjaWZkZWYg X19jcGx1c3BsdXMKLStleHRlcm4gIkMiIHsKLSsjZW5kaWYKLStjaGFyIG5tX3Rlc3RfdmFyOwot K3ZvaWQgbm1fdGVzdF9mdW5jKHZvaWQpOwotK3ZvaWQgbm1fdGVzdF9mdW5jKHZvaWQpe30KLSsj aWZkZWYgX19jcGx1c3BsdXMKLSt9Ci0rI2VuZGlmCi0raW50IG1haW4oKXtubV90ZXN0X3Zhcj0n YSc7bm1fdGVzdF9mdW5jKCk7cmV0dXJuKDApO30KLStfTFRfRU9GCi0rCi0rICBpZiB7IChldmFs IGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY19jb21waWxlXCIiKSA+JjUKLSsgIChldmFsICRh Y19jb21waWxlKSAyPiY1Ci0rICBhY19zdGF0dXM9JD8KLSsgICRhc19lY2hvICIkYXNfbWU6JExJ TkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0rICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgdGhl bgotKyAgICAjIE5vdyB0cnkgdG8gZ3JhYiB0aGUgc3ltYm9scy4KLSsgICAgbmxpc3Q9Y29uZnRl c3Qubm0KLSsgICAgaWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkTk0gY29uZnRl c3QuJGFjX29iamV4dCBcfCAkbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfcGlwZSBcPiAkbmxpc3Rc IiIpID4mNQotKyAgKGV2YWwgJE5NIGNvbmZ0ZXN0LiRhY19vYmpleHQgXHwgJGx0X2N2X3N5c19n bG9iYWxfc3ltYm9sX3BpcGUgXD4gJG5saXN0KSAyPiY1Ci0rICBhY19zdGF0dXM9JD8KLSsgICRh c19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0rICAoZXhpdCAk YWNfc3RhdHVzKTsgfSAmJiB0ZXN0IC1zICIkbmxpc3QiOyB0aGVuCi0rICAgICAgIyBUcnkgc29y dGluZyBhbmQgdW5pcXVpZnlpbmcgdGhlIG91dHB1dC4KLSsgICAgICBpZiBzb3J0ICIkbmxpc3Qi IHwgdW5pcSA+ICIkbmxpc3QiVDsgdGhlbgotKwltdiAtZiAiJG5saXN0IlQgIiRubGlzdCIKLSsg ICAgICBlbHNlCi0rCXJtIC1mICIkbmxpc3QiVAotKyAgICAgIGZpCi0rCi0rICAgICAgIyBNYWtl IHN1cmUgdGhhdCB3ZSBzbmFnZ2VkIGFsbCB0aGUgc3ltYm9scyB3ZSBuZWVkLgotKyAgICAgIGlm ICRHUkVQICcgbm1fdGVzdF92YXIkJyAiJG5saXN0IiA+L2Rldi9udWxsOyB0aGVuCi0rCWlmICRH UkVQICcgbm1fdGVzdF9mdW5jJCcgIiRubGlzdCIgPi9kZXYvbnVsbDsgdGhlbgotKwkgIGNhdCA8 PF9MVF9FT0YgPiBjb25mdGVzdC4kYWNfZXh0Ci0rI2lmZGVmIF9fY3BsdXNwbHVzCi0rZXh0ZXJu ICJDIiB7Ci0rI2VuZGlmCi0rCi0rX0xUX0VPRgotKwkgICMgTm93IGdlbmVyYXRlIHRoZSBzeW1i b2wgZmlsZS4KLSsJICBldmFsICIkbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfdG9fY2RlY2wiJyA8 ICIkbmxpc3QiIHwgJEdSRVAgLXYgbWFpbiA+PiBjb25mdGVzdC4kYWNfZXh0JwotKwotKwkgIGNh dCA8PF9MVF9FT0YgPj4gY29uZnRlc3QuJGFjX2V4dAotKwotKy8qIFRoZSBtYXBwaW5nIGJldHdl ZW4gc3ltYm9sIG5hbWVzIGFuZCBzeW1ib2xzLiAgKi8KLStjb25zdCBzdHJ1Y3QgewotKyAgY29u c3QgY2hhciAqbmFtZTsKLSsgIHZvaWQgICAgICAgKmFkZHJlc3M7Ci0rfQotK2x0X19QUk9HUkFN X19MVFhfcHJlbG9hZGVkX3N5bWJvbHNbXSA9Ci0rewotKyAgeyAiQFBST0dSQU1AIiwgKHZvaWQg KikgMCB9LAotK19MVF9FT0YKLSsJICAkU0VEICJzL14kc3ltY29kZSRzeW1jb2RlKiBcKC4qXCkg XCguKlwpJC8gIHtcIlwyXCIsICh2b2lkICopIFwmXDJ9LC8iIDwgIiRubGlzdCIgfCAkR1JFUCAt diBtYWluID4+IGNvbmZ0ZXN0LiRhY19leHQKLSsJICBjYXQgPDxcX0xUX0VPRiA+PiBjb25mdGVz dC4kYWNfZXh0Ci0rICB7MCwgKHZvaWQgKikgMH0KLSt9OwotKwotKy8qIFRoaXMgd29ya3MgYXJv dW5kIGEgcHJvYmxlbSBpbiBGcmVlQlNEIGxpbmtlciAqLwotKyNpZmRlZiBGUkVFQlNEX1dPUktB Uk9VTkQKLStzdGF0aWMgY29uc3Qgdm9pZCAqbHRfcHJlbG9hZGVkX3NldHVwKCkgewotKyAgcmV0 dXJuIGx0X19QUk9HUkFNX19MVFhfcHJlbG9hZGVkX3N5bWJvbHM7Ci0rfQotKyNlbmRpZgotKwot KyNpZmRlZiBfX2NwbHVzcGx1cwotK30KLSsjZW5kaWYKLStfTFRfRU9GCi0rCSAgIyBOb3cgdHJ5 IGxpbmtpbmcgdGhlIHR3byBmaWxlcy4KLSsJICBtdiBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0 c3RtLiRhY19vYmpleHQKLSsJICBsdF9zYXZlX0xJQlM9IiRMSUJTIgotKwkgIGx0X3NhdmVfQ0ZM QUdTPSIkQ0ZMQUdTIgotKwkgIExJQlM9ImNvbmZ0c3RtLiRhY19vYmpleHQiCi0rCSAgQ0ZMQUdT PSIkQ0ZMQUdTJGx0X3Byb2dfY29tcGlsZXJfbm9fYnVpbHRpbl9mbGFnIgotKwkgIGlmIHsgKGV2 YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX2xpbmtcIiIpID4mNQotKyAgKGV2YWwgJGFj X2xpbmspIDI+JjUKLSsgIGFjX3N0YXR1cz0kPwotKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5P OiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSsgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmIHRlc3Qg LXMgY29uZnRlc3Qke2FjX2V4ZWV4dH07IHRoZW4KLSsJICAgIHBpcGVfd29ya3M9eWVzCi0rCSAg ZmkKLSsJICBMSUJTPSIkbHRfc2F2ZV9MSUJTIgotKwkgIENGTEFHUz0iJGx0X3NhdmVfQ0ZMQUdT IgotKwllbHNlCi0rCSAgZWNobyAiY2Fubm90IGZpbmQgbm1fdGVzdF9mdW5jIGluICRubGlzdCIg PiY1Ci0rCWZpCi0rICAgICAgZWxzZQotKwllY2hvICJjYW5ub3QgZmluZCBubV90ZXN0X3ZhciBp biAkbmxpc3QiID4mNQotKyAgICAgIGZpCi0rICAgIGVsc2UKLSsgICAgICBlY2hvICJjYW5ub3Qg cnVuICRsdF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF9waXBlIiA+JjUKLSsgICAgZmkKLSsgIGVsc2UK LSsgICAgZWNobyAiJHByb2duYW1lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLSsgICAgY2F0 IGNvbmZ0ZXN0LiRhY19leHQgPiY1Ci0rICBmaQotKyAgcm0gLXJmIGNvbmZ0ZXN0KiBjb25mdHN0 KgotKwotKyAgIyBEbyBub3QgdXNlIHRoZSBnbG9iYWxfc3ltYm9sX3BpcGUgdW5sZXNzIGl0IHdv cmtzLgotKyAgaWYgdGVzdCAiJHBpcGVfd29ya3MiID0geWVzOyB0aGVuCi0rICAgIGJyZWFrCi0r ICBlbHNlCi0rICAgIGx0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3BpcGU9Ci0rICBmaQotK2RvbmUK LSsKLStmaQotKwotK2lmIHRlc3QgLXogIiRsdF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF9waXBlIjsg dGhlbgotKyAgbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfdG9fY2RlY2w9Ci0rZmkKLStpZiB0ZXN0 IC16ICIkbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfcGlwZSRsdF9jdl9zeXNfZ2xvYmFsX3N5bWJv bF90b19jZGVjbCI7IHRoZW4KLSsgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6 IGZhaWxlZCIgPiY1Ci0rJGFzX2VjaG8gImZhaWxlZCIgPiY2OyB9Ci0rZWxzZQotKyAgeyAkYXNf ZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogb2siID4mNQotKyRhc19lY2hvICJvayIgPiY2 OyB9Ci0rZmkKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsK LSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsjIENoZWNrIHdoZXRoZXIgLS1lbmFibGUtbGlidG9vbC1s b2NrIHdhcyBnaXZlbi4KLStpZiB0ZXN0ICIke2VuYWJsZV9saWJ0b29sX2xvY2src2V0fSIgPSBz ZXQ7IHRoZW4KLSsgIGVuYWJsZXZhbD0kZW5hYmxlX2xpYnRvb2xfbG9jazsKLStmaQotKwotK3Rl c3QgIngkZW5hYmxlX2xpYnRvb2xfbG9jayIgIT0geG5vICYmIGVuYWJsZV9saWJ0b29sX2xvY2s9 eWVzCi0rCi0rIyBTb21lIGZsYWdzIG5lZWQgdG8gYmUgcHJvcGFnYXRlZCB0byB0aGUgY29tcGls ZXIgb3IgbGlua2VyIGZvciBnb29kCi0rIyBsaWJ0b29sIHN1cHBvcnQuCi0rY2FzZSAkaG9zdCBp bgotK2lhNjQtKi1ocHV4KikKLSsgICMgRmluZCBvdXQgd2hpY2ggQUJJIHdlIGFyZSB1c2luZy4K LSsgIGVjaG8gJ2ludCBpOycgPiBjb25mdGVzdC4kYWNfZXh0Ci0rICBpZiB7IChldmFsIGVjaG8g IiRhc19tZTokTElORU5POiBcIiRhY19jb21waWxlXCIiKSA+JjUKLSsgIChldmFsICRhY19jb21w aWxlKSAyPiY1Ci0rICBhY19zdGF0dXM9JD8KLSsgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzog XCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0rICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgdGhlbgotKyAg ICBjYXNlIGAvdXNyL2Jpbi9maWxlIGNvbmZ0ZXN0LiRhY19vYmpleHRgIGluCi0rICAgICAgKkVM Ri0zMiopCi0rCUhQVVhfSUE2NF9NT0RFPSIzMiIKLSsJOzsKLSsgICAgICAqRUxGLTY0KikKLSsJ SFBVWF9JQTY0X01PREU9IjY0IgotKwk7OwotKyAgICBlc2FjCi0rICBmaQotKyAgcm0gLXJmIGNv bmZ0ZXN0KgotKyAgOzsKLSsqLSotaXJpeDYqKQotKyAgIyBGaW5kIG91dCB3aGljaCBBQkkgd2Ug YXJlIHVzaW5nLgotKyAgZWNobyAnI2xpbmUgNjc2NiAiY29uZmlndXJlIicgPiBjb25mdGVzdC4k YWNfZXh0Ci0rICBpZiB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY19jb21waWxl XCIiKSA+JjUKLSsgIChldmFsICRhY19jb21waWxlKSAyPiY1Ci0rICBhY19zdGF0dXM9JD8KLSsg ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0rICAoZXhp dCAkYWNfc3RhdHVzKTsgfTsgdGhlbgotKyAgICBpZiB0ZXN0ICIkbHRfY3ZfcHJvZ19nbnVfbGQi ID0geWVzOyB0aGVuCi0rICAgICAgY2FzZSBgL3Vzci9iaW4vZmlsZSBjb25mdGVzdC4kYWNfb2Jq ZXh0YCBpbgotKwkqMzItYml0KikKLSsJICBMRD0iJHtMRC1sZH0gLW1lbGYzMmJzbWlwIgotKwkg IDs7Ci0rCSpOMzIqKQotKwkgIExEPSIke0xELWxkfSAtbWVsZjMyYm1pcG4zMiIKLSsJICA7Owot KwkqNjQtYml0KikKLSsJICBMRD0iJHtMRC1sZH0gLW1lbGY2NGJtaXAiCi0rCTs7Ci0rICAgICAg ZXNhYwotKyAgICBlbHNlCi0rICAgICAgY2FzZSBgL3Vzci9iaW4vZmlsZSBjb25mdGVzdC4kYWNf b2JqZXh0YCBpbgotKwkqMzItYml0KikKLSsJICBMRD0iJHtMRC1sZH0gLTMyIgotKwkgIDs7Ci0r CSpOMzIqKQotKwkgIExEPSIke0xELWxkfSAtbjMyIgotKwkgIDs7Ci0rCSo2NC1iaXQqKQotKwkg IExEPSIke0xELWxkfSAtNjQiCi0rCSAgOzsKLSsgICAgICBlc2FjCi0rICAgIGZpCi0rICBmaQot KyAgcm0gLXJmIGNvbmZ0ZXN0KgotKyAgOzsKLSsKLSt4ODZfNjQtKmtmcmVlYnNkKi1nbnV8eDg2 XzY0LSpsaW51eCp8cHBjKi0qbGludXgqfHBvd2VycGMqLSpsaW51eCp8IFwKLStzMzkwKi0qbGlu dXgqfHMzOTAqLSp0cGYqfHNwYXJjKi0qbGludXgqKQotKyAgIyBGaW5kIG91dCB3aGljaCBBQkkg d2UgYXJlIHVzaW5nLgotKyAgZWNobyAnaW50IGk7JyA+IGNvbmZ0ZXN0LiRhY19leHQKLSsgIGlm IHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX2NvbXBpbGVcIiIpID4mNQotKyAg KGV2YWwgJGFjX2NvbXBpbGUpIDI+JjUKLSsgIGFjX3N0YXR1cz0kPwotKyAgJGFzX2VjaG8gIiRh c19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSsgIChleGl0ICRhY19zdGF0dXMp OyB9OyB0aGVuCi0rICAgIGNhc2UgYC91c3IvYmluL2ZpbGUgY29uZnRlc3Qub2AgaW4KLSsgICAg ICAqMzItYml0KikKLSsJY2FzZSAkaG9zdCBpbgotKwkgIHg4Nl82NC0qa2ZyZWVic2QqLWdudSkK LSsJICAgIExEPSIke0xELWxkfSAtbSBlbGZfaTM4Nl9mYnNkIgotKwkgICAgOzsKLSsJICB4ODZf NjQtKmxpbnV4KikKLSsJICAgIExEPSIke0xELWxkfSAtbSBlbGZfaTM4NiIKLSsJICAgIDs7Ci0r CSAgcHBjNjQtKmxpbnV4Knxwb3dlcnBjNjQtKmxpbnV4KikKLSsJICAgIExEPSIke0xELWxkfSAt bSBlbGYzMnBwY2xpbnV4IgotKwkgICAgOzsKLSsJICBzMzkweC0qbGludXgqKQotKwkgICAgTEQ9 IiR7TEQtbGR9IC1tIGVsZl9zMzkwIgotKwkgICAgOzsKLSsJICBzcGFyYzY0LSpsaW51eCopCi0r CSAgICBMRD0iJHtMRC1sZH0gLW0gZWxmMzJfc3BhcmMiCi0rCSAgICA7OwotKwllc2FjCi0rCTs7 Ci0rICAgICAgKjY0LWJpdCopCi0rCWNhc2UgJGhvc3QgaW4KLSsJICB4ODZfNjQtKmtmcmVlYnNk Ki1nbnUpCi0rCSAgICBMRD0iJHtMRC1sZH0gLW0gZWxmX3g4Nl82NF9mYnNkIgotKwkgICAgOzsK LSsJICB4ODZfNjQtKmxpbnV4KikKLSsJICAgIExEPSIke0xELWxkfSAtbSBlbGZfeDg2XzY0Igot KwkgICAgOzsKLSsJICBwcGMqLSpsaW51eCp8cG93ZXJwYyotKmxpbnV4KikKLSsJICAgIExEPSIk e0xELWxkfSAtbSBlbGY2NHBwYyIKLSsJICAgIDs7Ci0rCSAgczM5MCotKmxpbnV4KnxzMzkwKi0q dHBmKikKLSsJICAgIExEPSIke0xELWxkfSAtbSBlbGY2NF9zMzkwIgotKwkgICAgOzsKLSsJICBz cGFyYyotKmxpbnV4KikKLSsJICAgIExEPSIke0xELWxkfSAtbSBlbGY2NF9zcGFyYyIKLSsJICAg IDs7Ci0rCWVzYWMKLSsJOzsKLSsgICAgZXNhYwotKyAgZmkKLSsgIHJtIC1yZiBjb25mdGVzdCoK LSsgIDs7Ci0rCi0rKi0qLXNjbzMuMnY1KikKLSsgICMgT24gU0NPIE9wZW5TZXJ2ZXIgNSwgd2Ug bmVlZCAtYmVsZiB0byBnZXQgZnVsbC1mZWF0dXJlZCBiaW5hcmllcy4KLSsgIFNBVkVfQ0ZMQUdT PSIkQ0ZMQUdTIgotKyAgQ0ZMQUdTPSIkQ0ZMQUdTIC1iZWxmIgotKyAgeyAkYXNfZWNobyAiJGFz X21lOiRMSU5FTk86IGNoZWNraW5nIHdoZXRoZXIgdGhlIEMgY29tcGlsZXIgbmVlZHMgLWJlbGYi ID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIHdoZXRoZXIgdGhlIEMgY29tcGlsZXIgbmVlZHMg LWJlbGYuLi4gIiA+JjY7IH0KLStpZiB0ZXN0ICIke2x0X2N2X2NjX25lZWRzX2JlbGYrc2V0fSIg PSBzZXQ7IHRoZW4KLSsgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci0rZWxzZQotKyAgYWNf ZXh0PWMKLSthY19jcHA9JyRDUFAgJENQUEZMQUdTJwotK2FjX2NvbXBpbGU9JyRDQyAtYyAkQ0ZM QUdTICRDUFBGTEFHUyBjb25mdGVzdC4kYWNfZXh0ID4mNScKLSthY19saW5rPSckQ0MgLW8gY29u ZnRlc3QkYWNfZXhlZXh0ICRDRkxBR1MgJENQUEZMQUdTICRMREZMQUdTIGNvbmZ0ZXN0LiRhY19l eHQgJExJQlMgPiY1JwotK2FjX2NvbXBpbGVyX2dudT0kYWNfY3ZfY19jb21waWxlcl9nbnUKLSsK LSsgICAgIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotKy8qIGNvbmZkZWZzLmguICAq LwotK19BQ0VPRgotK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAotK2NhdCA+PmNv bmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLSsvKiBlbmQgY29uZmRlZnMuaC4gICovCi0rCi0raW50 Ci0rbWFpbiAoKQotK3sKLSsKLSsgIDsKLSsgIHJldHVybiAwOwotK30KLStfQUNFT0YKLStybSAt ZiBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0JGFjX2V4ZWV4dAotK2lmIHsgKGFjX3RyeT0i JGFjX2xpbmsiCi0rY2FzZSAiKCgkYWNfdHJ5IiBpbgotKyAgKlwiKiB8ICpcYCogfCAqXFwqKSBh Y190cnlfZWNobz1cJGFjX3RyeTs7Ci0rICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKLStlc2Fj Ci0rZXZhbCBhY190cnlfZWNobz0iXCJcJGFzX21lOiRMSU5FTk86ICRhY190cnlfZWNob1wiIgot KyRhc19lY2hvICIkYWNfdHJ5X2VjaG8iKSA+JjUKLSsgIChldmFsICIkYWNfbGluayIpIDI+Y29u ZnRlc3QuZXIxCi0rICBhY19zdGF0dXM9JD8KLSsgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVy MSA+Y29uZnRlc3QuZXJyCi0rICBybSAtZiBjb25mdGVzdC5lcjEKLSsgIGNhdCBjb25mdGVzdC5l cnIgPiY1Ci0rICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4m NQotKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYgewotKwkgdGVzdCAteiAiJGFjX2Nfd2Vycm9y X2ZsYWciIHx8Ci0rCSB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCi0rICAgICAgIH0gJiYgdGVzdCAt cyBjb25mdGVzdCRhY19leGVleHQgJiYgewotKwkgdGVzdCAiJGNyb3NzX2NvbXBpbGluZyIgPSB5 ZXMgfHwKLSsJICRhc190ZXN0X3ggY29uZnRlc3QkYWNfZXhlZXh0Ci0rICAgICAgIH07IHRoZW4K LSsgIGx0X2N2X2NjX25lZWRzX2JlbGY9eWVzCi0rZWxzZQotKyAgJGFzX2VjaG8gIiRhc19tZTog ZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Ci0rc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0 ID4mNQotKwotKwlsdF9jdl9jY19uZWVkc19iZWxmPW5vCi0rZmkKLSsKLStybSAtcmYgY29uZnRl c3QuZFNZTQotK3JtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29u ZnRlc3RfaXBhOF9jb25mdGVzdC5vbyBcCi0rICAgICAgY29uZnRlc3QkYWNfZXhlZXh0IGNvbmZ0 ZXN0LiRhY19leHQKLSsgICAgIGFjX2V4dD1jCi0rYWNfY3BwPSckQ1BQICRDUFBGTEFHUycKLSth Y19jb21waWxlPSckQ0MgLWMgJENGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUn Ci0rYWNfbGluaz0nJENDIC1vIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAkQ0ZMQUdTICRDUFBGTEFHUyAk TERGTEFHUyBjb25mdGVzdC4kYWNfZXh0ICRMSUJTID4mNScKLSthY19jb21waWxlcl9nbnU9JGFj X2N2X2NfY29tcGlsZXJfZ251Ci0rCi0rZmkKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzog cmVzdWx0OiAkbHRfY3ZfY2NfbmVlZHNfYmVsZiIgPiY1Ci0rJGFzX2VjaG8gIiRsdF9jdl9jY19u ZWVkc19iZWxmIiA+JjY7IH0KLSsgIGlmIHRlc3QgeCIkbHRfY3ZfY2NfbmVlZHNfYmVsZiIgIT0g eCJ5ZXMiOyB0aGVuCi0rICAgICMgdGhpcyBpcyBwcm9iYWJseSBnY2MgMi44LjAsIGVnY3MgMS4w IG9yIG5ld2VyOyBubyBuZWVkIGZvciAtYmVsZgotKyAgICBDRkxBR1M9IiRTQVZFX0NGTEFHUyIK LSsgIGZpCi0rICA7OwotK3NwYXJjKi0qc29sYXJpcyopCi0rICAjIEZpbmQgb3V0IHdoaWNoIEFC SSB3ZSBhcmUgdXNpbmcuCi0rICBlY2hvICdpbnQgaTsnID4gY29uZnRlc3QuJGFjX2V4dAotKyAg aWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfY29tcGlsZVwiIikgPiY1Ci0r ICAoZXZhbCAkYWNfY29tcGlsZSkgMj4mNQotKyAgYWNfc3RhdHVzPSQ/Ci0rICAkYXNfZWNobyAi JGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotKyAgKGV4aXQgJGFjX3N0YXR1 cyk7IH07IHRoZW4KLSsgICAgY2FzZSBgL3Vzci9iaW4vZmlsZSBjb25mdGVzdC5vYCBpbgotKyAg ICAqNjQtYml0KikKLSsgICAgICBjYXNlICRsdF9jdl9wcm9nX2dudV9sZCBpbgotKyAgICAgIHll cyopIExEPSIke0xELWxkfSAtbSBlbGY2NF9zcGFyYyIgOzsKLSsgICAgICAqKQotKwlpZiAke0xE LWxkfSAtNjQgLXIgLW8gY29uZnRlc3QyLm8gY29uZnRlc3QubyA+L2Rldi9udWxsIDI+JjE7IHRo ZW4KLSsJICBMRD0iJHtMRC1sZH0gLTY0IgotKwlmaQotKwk7OwotKyAgICAgIGVzYWMKLSsgICAg ICA7OwotKyAgICBlc2FjCi0rICBmaQotKyAgcm0gLXJmIGNvbmZ0ZXN0KgotKyAgOzsKLStlc2Fj Ci0rCi0rbmVlZF9sb2Nrcz0iJGVuYWJsZV9saWJ0b29sX2xvY2siCi0rCi0rCi0rICBjYXNlICRo b3N0X29zIGluCi0rICAgIHJoYXBzb2R5KiB8IGRhcndpbiopCi0rICAgIGlmIHRlc3QgLW4gIiRh Y190b29sX3ByZWZpeCI7IHRoZW4KLSsgICMgRXh0cmFjdCB0aGUgZmlyc3Qgd29yZCBvZiAiJHth Y190b29sX3ByZWZpeH1kc3ltdXRpbCIsIHNvIGl0IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3aXRo IGFyZ3MuCi0rc2V0IGR1bW15ICR7YWNfdG9vbF9wcmVmaXh9ZHN5bXV0aWw7IGFjX3dvcmQ9JDIK LSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yICRhY193b3JkIiA+JjUK LSskYXNfZWNob19uICJjaGVja2luZyBmb3IgJGFjX3dvcmQuLi4gIiA+JjY7IH0KLStpZiB0ZXN0 ICIke2FjX2N2X3Byb2dfRFNZTVVUSUwrc2V0fSIgPSBzZXQ7IHRoZW4KLSsgICRhc19lY2hvX24g IihjYWNoZWQpICIgPiY2Ci0rZWxzZQotKyAgaWYgdGVzdCAtbiAiJERTWU1VVElMIjsgdGhlbgot KyAgYWNfY3ZfcHJvZ19EU1lNVVRJTD0iJERTWU1VVElMIiAjIExldCB0aGUgdXNlciBvdmVycmlk ZSB0aGUgdGVzdC4KLStlbHNlCi0rYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRP UgotK2ZvciBhc19kaXIgaW4gJFBBVEgKLStkbwotKyAgSUZTPSRhc19zYXZlX0lGUwotKyAgdGVz dCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KLSsgIGZvciBhY19leGVjX2V4dCBpbiAnJyAkYWNf ZXhlY3V0YWJsZV9leHRlbnNpb25zOyBkbwotKyAgaWYgeyB0ZXN0IC1mICIkYXNfZGlyLyRhY193 b3JkJGFjX2V4ZWNfZXh0IiAmJiAkYXNfdGVzdF94ICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNf ZXh0IjsgfTsgdGhlbgotKyAgICBhY19jdl9wcm9nX0RTWU1VVElMPSIke2FjX3Rvb2xfcHJlZml4 fWRzeW11dGlsIgotKyAgICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGZvdW5kICRhc19kaXIv JGFjX3dvcmQkYWNfZXhlY19leHQiID4mNQotKyAgICBicmVhayAyCi0rICBmaQotK2RvbmUKLStk b25lCi0rSUZTPSRhc19zYXZlX0lGUwotKwotK2ZpCi0rZmkKLStEU1lNVVRJTD0kYWNfY3ZfcHJv Z19EU1lNVVRJTAotK2lmIHRlc3QgLW4gIiREU1lNVVRJTCI7IHRoZW4KLSsgIHsgJGFzX2VjaG8g IiRhc19tZTokTElORU5POiByZXN1bHQ6ICREU1lNVVRJTCIgPiY1Ci0rJGFzX2VjaG8gIiREU1lN VVRJTCIgPiY2OyB9Ci0rZWxzZQotKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3Vs dDogbm8iID4mNQotKyRhc19lY2hvICJubyIgPiY2OyB9Ci0rZmkKLSsKLSsKLStmaQotK2lmIHRl c3QgLXogIiRhY19jdl9wcm9nX0RTWU1VVElMIjsgdGhlbgotKyAgYWNfY3RfRFNZTVVUSUw9JERT WU1VVElMCi0rICAjIEV4dHJhY3QgdGhlIGZpcnN0IHdvcmQgb2YgImRzeW11dGlsIiwgc28gaXQg Y2FuIGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJncy4KLStzZXQgZHVtbXkgZHN5bXV0aWw7IGFj X3dvcmQ9JDIKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yICRhY193 b3JkIiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyBmb3IgJGFjX3dvcmQuLi4gIiA+JjY7IH0K LStpZiB0ZXN0ICIke2FjX2N2X3Byb2dfYWNfY3RfRFNZTVVUSUwrc2V0fSIgPSBzZXQ7IHRoZW4K LSsgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci0rZWxzZQotKyAgaWYgdGVzdCAtbiAiJGFj X2N0X0RTWU1VVElMIjsgdGhlbgotKyAgYWNfY3ZfcHJvZ19hY19jdF9EU1lNVVRJTD0iJGFjX2N0 X0RTWU1VVElMIiAjIExldCB0aGUgdXNlciBvdmVycmlkZSB0aGUgdGVzdC4KLStlbHNlCi0rYXNf c2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgotK2ZvciBhc19kaXIgaW4gJFBBVEgK LStkbwotKyAgSUZTPSRhc19zYXZlX0lGUwotKyAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGly PS4KLSsgIGZvciBhY19leGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9leHRlbnNpb25zOyBk bwotKyAgaWYgeyB0ZXN0IC1mICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiAmJiAkYXNf dGVzdF94ICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IjsgfTsgdGhlbgotKyAgICBhY19j dl9wcm9nX2FjX2N0X0RTWU1VVElMPSJkc3ltdXRpbCIKLSsgICAgJGFzX2VjaG8gIiRhc19tZTok TElORU5POiBmb3VuZCAkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiA+JjUKLSsgICAgYnJl YWsgMgotKyAgZmkKLStkb25lCi0rZG9uZQotK0lGUz0kYXNfc2F2ZV9JRlMKLSsKLStmaQotK2Zp Ci0rYWNfY3RfRFNZTVVUSUw9JGFjX2N2X3Byb2dfYWNfY3RfRFNZTVVUSUwKLStpZiB0ZXN0IC1u ICIkYWNfY3RfRFNZTVVUSUwiOyB0aGVuCi0rICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzog cmVzdWx0OiAkYWNfY3RfRFNZTVVUSUwiID4mNQotKyRhc19lY2hvICIkYWNfY3RfRFNZTVVUSUwi ID4mNjsgfQotK2Vsc2UKLSsgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IG5v IiA+JjUKLSskYXNfZWNobyAibm8iID4mNjsgfQotK2ZpCi0rCi0rICBpZiB0ZXN0ICJ4JGFjX2N0 X0RTWU1VVElMIiA9IHg7IHRoZW4KLSsgICAgRFNZTVVUSUw9IjoiCi0rICBlbHNlCi0rICAgIGNh c2UgJGNyb3NzX2NvbXBpbGluZzokYWNfdG9vbF93YXJuZWQgaW4KLSt5ZXM6KQotK3sgJGFzX2Vj aG8gIiRhc19tZTokTElORU5POiBXQVJOSU5HOiB1c2luZyBjcm9zcyB0b29scyBub3QgcHJlZml4 ZWQgd2l0aCBob3N0IHRyaXBsZXQiID4mNQotKyRhc19lY2hvICIkYXNfbWU6IFdBUk5JTkc6IHVz aW5nIGNyb3NzIHRvb2xzIG5vdCBwcmVmaXhlZCB3aXRoIGhvc3QgdHJpcGxldCIgPiYyO30KLSth Y190b29sX3dhcm5lZD15ZXMgOzsKLStlc2FjCi0rICAgIERTWU1VVElMPSRhY19jdF9EU1lNVVRJ TAotKyAgZmkKLStlbHNlCi0rICBEU1lNVVRJTD0iJGFjX2N2X3Byb2dfRFNZTVVUSUwiCi0rZmkK LSsKLSsgICAgaWYgdGVzdCAtbiAiJGFjX3Rvb2xfcHJlZml4IjsgdGhlbgotKyAgIyBFeHRyYWN0 IHRoZSBmaXJzdCB3b3JkIG9mICIke2FjX3Rvb2xfcHJlZml4fW5tZWRpdCIsIHNvIGl0IGNhbiBi ZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3MuCi0rc2V0IGR1bW15ICR7YWNfdG9vbF9wcmVmaXh9 bm1lZGl0OyBhY193b3JkPSQyCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5n IGZvciAkYWNfd29yZCIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yICRhY193b3JkLi4u ICIgPiY2OyB9Ci0raWYgdGVzdCAiJHthY19jdl9wcm9nX05NRURJVCtzZXR9IiA9IHNldDsgdGhl bgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rICBpZiB0ZXN0IC1uICIk Tk1FRElUIjsgdGhlbgotKyAgYWNfY3ZfcHJvZ19OTUVESVQ9IiROTUVESVQiICMgTGV0IHRoZSB1 c2VyIG92ZXJyaWRlIHRoZSB0ZXN0LgotK2Vsc2UKLSthc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBB VEhfU0VQQVJBVE9SCi0rZm9yIGFzX2RpciBpbiAkUEFUSAotK2RvCi0rICBJRlM9JGFzX3NhdmVf SUZTCi0rICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgotKyAgZm9yIGFjX2V4ZWNfZXh0 IGluICcnICRhY19leGVjdXRhYmxlX2V4dGVuc2lvbnM7IGRvCi0rICBpZiB7IHRlc3QgLWYgIiRh c19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiICYmICRhc190ZXN0X3ggIiRhc19kaXIvJGFjX3dv cmQkYWNfZXhlY19leHQiOyB9OyB0aGVuCi0rICAgIGFjX2N2X3Byb2dfTk1FRElUPSIke2FjX3Rv b2xfcHJlZml4fW5tZWRpdCIKLSsgICAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBmb3VuZCAk YXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiA+JjUKLSsgICAgYnJlYWsgMgotKyAgZmkKLStk b25lCi0rZG9uZQotK0lGUz0kYXNfc2F2ZV9JRlMKLSsKLStmaQotK2ZpCi0rTk1FRElUPSRhY19j dl9wcm9nX05NRURJVAotK2lmIHRlc3QgLW4gIiROTUVESVQiOyB0aGVuCi0rICB7ICRhc19lY2hv ICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkTk1FRElUIiA+JjUKLSskYXNfZWNobyAiJE5NRURJ VCIgPiY2OyB9Ci0rZWxzZQotKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDog bm8iID4mNQotKyRhc19lY2hvICJubyIgPiY2OyB9Ci0rZmkKLSsKLSsKLStmaQotK2lmIHRlc3Qg LXogIiRhY19jdl9wcm9nX05NRURJVCI7IHRoZW4KLSsgIGFjX2N0X05NRURJVD0kTk1FRElUCi0r ICAjIEV4dHJhY3QgdGhlIGZpcnN0IHdvcmQgb2YgIm5tZWRpdCIsIHNvIGl0IGNhbiBiZSBhIHBy b2dyYW0gbmFtZSB3aXRoIGFyZ3MuCi0rc2V0IGR1bW15IG5tZWRpdDsgYWNfd29yZD0kMgotK3sg JGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgJGFjX3dvcmQiID4mNQotKyRh c19lY2hvX24gImNoZWNraW5nIGZvciAkYWNfd29yZC4uLiAiID4mNjsgfQotK2lmIHRlc3QgIiR7 YWNfY3ZfcHJvZ19hY19jdF9OTUVESVQrc2V0fSIgPSBzZXQ7IHRoZW4KLSsgICRhc19lY2hvX24g IihjYWNoZWQpICIgPiY2Ci0rZWxzZQotKyAgaWYgdGVzdCAtbiAiJGFjX2N0X05NRURJVCI7IHRo ZW4KLSsgIGFjX2N2X3Byb2dfYWNfY3RfTk1FRElUPSIkYWNfY3RfTk1FRElUIiAjIExldCB0aGUg dXNlciBvdmVycmlkZSB0aGUgdGVzdC4KLStlbHNlCi0rYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQ QVRIX1NFUEFSQVRPUgotK2ZvciBhc19kaXIgaW4gJFBBVEgKLStkbwotKyAgSUZTPSRhc19zYXZl X0lGUwotKyAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KLSsgIGZvciBhY19leGVjX2V4 dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9leHRlbnNpb25zOyBkbwotKyAgaWYgeyB0ZXN0IC1mICIk YXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiAmJiAkYXNfdGVzdF94ICIkYXNfZGlyLyRhY193 b3JkJGFjX2V4ZWNfZXh0IjsgfTsgdGhlbgotKyAgICBhY19jdl9wcm9nX2FjX2N0X05NRURJVD0i bm1lZGl0IgotKyAgICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGZvdW5kICRhc19kaXIvJGFj X3dvcmQkYWNfZXhlY19leHQiID4mNQotKyAgICBicmVhayAyCi0rICBmaQotK2RvbmUKLStkb25l Ci0rSUZTPSRhc19zYXZlX0lGUwotKwotK2ZpCi0rZmkKLSthY19jdF9OTUVESVQ9JGFjX2N2X3By b2dfYWNfY3RfTk1FRElUCi0raWYgdGVzdCAtbiAiJGFjX2N0X05NRURJVCI7IHRoZW4KLSsgIHsg JGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19jdF9OTUVESVQiID4mNQotKyRh c19lY2hvICIkYWNfY3RfTk1FRElUIiA+JjY7IH0KLStlbHNlCi0rICB7ICRhc19lY2hvICIkYXNf bWU6JExJTkVOTzogcmVzdWx0OiBubyIgPiY1Ci0rJGFzX2VjaG8gIm5vIiA+JjY7IH0KLStmaQot KwotKyAgaWYgdGVzdCAieCRhY19jdF9OTUVESVQiID0geDsgdGhlbgotKyAgICBOTUVESVQ9Ijoi Ci0rICBlbHNlCi0rICAgIGNhc2UgJGNyb3NzX2NvbXBpbGluZzokYWNfdG9vbF93YXJuZWQgaW4K LSt5ZXM6KQotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBXQVJOSU5HOiB1c2luZyBjcm9z cyB0b29scyBub3QgcHJlZml4ZWQgd2l0aCBob3N0IHRyaXBsZXQiID4mNQotKyRhc19lY2hvICIk YXNfbWU6IFdBUk5JTkc6IHVzaW5nIGNyb3NzIHRvb2xzIG5vdCBwcmVmaXhlZCB3aXRoIGhvc3Qg dHJpcGxldCIgPiYyO30KLSthY190b29sX3dhcm5lZD15ZXMgOzsKLStlc2FjCi0rICAgIE5NRURJ VD0kYWNfY3RfTk1FRElUCi0rICBmaQotK2Vsc2UKLSsgIE5NRURJVD0iJGFjX2N2X3Byb2dfTk1F RElUIgotK2ZpCi0rCi0rICAgIGlmIHRlc3QgLW4gIiRhY190b29sX3ByZWZpeCI7IHRoZW4KLSsg ICMgRXh0cmFjdCB0aGUgZmlyc3Qgd29yZCBvZiAiJHthY190b29sX3ByZWZpeH1saXBvIiwgc28g aXQgY2FuIGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJncy4KLStzZXQgZHVtbXkgJHthY190b29s X3ByZWZpeH1saXBvOyBhY193b3JkPSQyCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNo ZWNraW5nIGZvciAkYWNfd29yZCIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yICRhY193 b3JkLi4uICIgPiY2OyB9Ci0raWYgdGVzdCAiJHthY19jdl9wcm9nX0xJUE8rc2V0fSIgPSBzZXQ7 IHRoZW4KLSsgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci0rZWxzZQotKyAgaWYgdGVzdCAt biAiJExJUE8iOyB0aGVuCi0rICBhY19jdl9wcm9nX0xJUE89IiRMSVBPIiAjIExldCB0aGUgdXNl ciBvdmVycmlkZSB0aGUgdGVzdC4KLStlbHNlCi0rYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRI X1NFUEFSQVRPUgotK2ZvciBhc19kaXIgaW4gJFBBVEgKLStkbwotKyAgSUZTPSRhc19zYXZlX0lG UwotKyAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KLSsgIGZvciBhY19leGVjX2V4dCBp biAnJyAkYWNfZXhlY3V0YWJsZV9leHRlbnNpb25zOyBkbwotKyAgaWYgeyB0ZXN0IC1mICIkYXNf ZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiAmJiAkYXNfdGVzdF94ICIkYXNfZGlyLyRhY193b3Jk JGFjX2V4ZWNfZXh0IjsgfTsgdGhlbgotKyAgICBhY19jdl9wcm9nX0xJUE89IiR7YWNfdG9vbF9w cmVmaXh9bGlwbyIKLSsgICAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBmb3VuZCAkYXNfZGly LyRhY193b3JkJGFjX2V4ZWNfZXh0IiA+JjUKLSsgICAgYnJlYWsgMgotKyAgZmkKLStkb25lCi0r ZG9uZQotK0lGUz0kYXNfc2F2ZV9JRlMKLSsKLStmaQotK2ZpCi0rTElQTz0kYWNfY3ZfcHJvZ19M SVBPCi0raWYgdGVzdCAtbiAiJExJUE8iOyB0aGVuCi0rICB7ICRhc19lY2hvICIkYXNfbWU6JExJ TkVOTzogcmVzdWx0OiAkTElQTyIgPiY1Ci0rJGFzX2VjaG8gIiRMSVBPIiA+JjY7IH0KLStlbHNl Ci0rICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiBubyIgPiY1Ci0rJGFzX2Vj aG8gIm5vIiA+JjY7IH0KLStmaQotKwotKwotK2ZpCi0raWYgdGVzdCAteiAiJGFjX2N2X3Byb2df TElQTyI7IHRoZW4KLSsgIGFjX2N0X0xJUE89JExJUE8KLSsgICMgRXh0cmFjdCB0aGUgZmlyc3Qg d29yZCBvZiAibGlwbyIsIHNvIGl0IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3MuCi0r c2V0IGR1bW15IGxpcG87IGFjX3dvcmQ9JDIKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzog Y2hlY2tpbmcgZm9yICRhY193b3JkIiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyBmb3IgJGFj X3dvcmQuLi4gIiA+JjY7IH0KLStpZiB0ZXN0ICIke2FjX2N2X3Byb2dfYWNfY3RfTElQTytzZXR9 IiA9IHNldDsgdGhlbgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rICBp ZiB0ZXN0IC1uICIkYWNfY3RfTElQTyI7IHRoZW4KLSsgIGFjX2N2X3Byb2dfYWNfY3RfTElQTz0i JGFjX2N0X0xJUE8iICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0LgotK2Vsc2UKLSth c19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCi0rZm9yIGFzX2RpciBpbiAkUEFU SAotK2RvCi0rICBJRlM9JGFzX3NhdmVfSUZTCi0rICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19k aXI9LgotKyAgZm9yIGFjX2V4ZWNfZXh0IGluICcnICRhY19leGVjdXRhYmxlX2V4dGVuc2lvbnM7 IGRvCi0rICBpZiB7IHRlc3QgLWYgIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiICYmICRh c190ZXN0X3ggIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiOyB9OyB0aGVuCi0rICAgIGFj X2N2X3Byb2dfYWNfY3RfTElQTz0ibGlwbyIKLSsgICAgJGFzX2VjaG8gIiRhc19tZTokTElORU5P OiBmb3VuZCAkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiA+JjUKLSsgICAgYnJlYWsgMgot KyAgZmkKLStkb25lCi0rZG9uZQotK0lGUz0kYXNfc2F2ZV9JRlMKLSsKLStmaQotK2ZpCi0rYWNf Y3RfTElQTz0kYWNfY3ZfcHJvZ19hY19jdF9MSVBPCi0raWYgdGVzdCAtbiAiJGFjX2N0X0xJUE8i OyB0aGVuCi0rICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3RfTElQ TyIgPiY1Ci0rJGFzX2VjaG8gIiRhY19jdF9MSVBPIiA+JjY7IH0KLStlbHNlCi0rICB7ICRhc19l Y2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiBubyIgPiY1Ci0rJGFzX2VjaG8gIm5vIiA+JjY7 IH0KLStmaQotKwotKyAgaWYgdGVzdCAieCRhY19jdF9MSVBPIiA9IHg7IHRoZW4KLSsgICAgTElQ Tz0iOiIKLSsgIGVsc2UKLSsgICAgY2FzZSAkY3Jvc3NfY29tcGlsaW5nOiRhY190b29sX3dhcm5l ZCBpbgotK3llczopCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6IHVzaW5n IGNyb3NzIHRvb2xzIG5vdCBwcmVmaXhlZCB3aXRoIGhvc3QgdHJpcGxldCIgPiY1Ci0rJGFzX2Vj aG8gIiRhc19tZTogV0FSTklORzogdXNpbmcgY3Jvc3MgdG9vbHMgbm90IHByZWZpeGVkIHdpdGgg aG9zdCB0cmlwbGV0IiA+JjI7fQotK2FjX3Rvb2xfd2FybmVkPXllcyA7OwotK2VzYWMKLSsgICAg TElQTz0kYWNfY3RfTElQTwotKyAgZmkKLStlbHNlCi0rICBMSVBPPSIkYWNfY3ZfcHJvZ19MSVBP IgotK2ZpCi0rCi0rICAgIGlmIHRlc3QgLW4gIiRhY190b29sX3ByZWZpeCI7IHRoZW4KLSsgICMg RXh0cmFjdCB0aGUgZmlyc3Qgd29yZCBvZiAiJHthY190b29sX3ByZWZpeH1vdG9vbCIsIHNvIGl0 IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3MuCi0rc2V0IGR1bW15ICR7YWNfdG9vbF9w cmVmaXh9b3Rvb2w7IGFjX3dvcmQ9JDIKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hl Y2tpbmcgZm9yICRhY193b3JkIiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyBmb3IgJGFjX3dv cmQuLi4gIiA+JjY7IH0KLStpZiB0ZXN0ICIke2FjX2N2X3Byb2dfT1RPT0wrc2V0fSIgPSBzZXQ7 IHRoZW4KLSsgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci0rZWxzZQotKyAgaWYgdGVzdCAt biAiJE9UT09MIjsgdGhlbgotKyAgYWNfY3ZfcHJvZ19PVE9PTD0iJE9UT09MIiAjIExldCB0aGUg dXNlciBvdmVycmlkZSB0aGUgdGVzdC4KLStlbHNlCi0rYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQ QVRIX1NFUEFSQVRPUgotK2ZvciBhc19kaXIgaW4gJFBBVEgKLStkbwotKyAgSUZTPSRhc19zYXZl X0lGUwotKyAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KLSsgIGZvciBhY19leGVjX2V4 dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9leHRlbnNpb25zOyBkbwotKyAgaWYgeyB0ZXN0IC1mICIk YXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiAmJiAkYXNfdGVzdF94ICIkYXNfZGlyLyRhY193 b3JkJGFjX2V4ZWNfZXh0IjsgfTsgdGhlbgotKyAgICBhY19jdl9wcm9nX09UT09MPSIke2FjX3Rv b2xfcHJlZml4fW90b29sIgotKyAgICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGZvdW5kICRh c19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiID4mNQotKyAgICBicmVhayAyCi0rICBmaQotK2Rv bmUKLStkb25lCi0rSUZTPSRhc19zYXZlX0lGUwotKwotK2ZpCi0rZmkKLStPVE9PTD0kYWNfY3Zf cHJvZ19PVE9PTAotK2lmIHRlc3QgLW4gIiRPVE9PTCI7IHRoZW4KLSsgIHsgJGFzX2VjaG8gIiRh c19tZTokTElORU5POiByZXN1bHQ6ICRPVE9PTCIgPiY1Ci0rJGFzX2VjaG8gIiRPVE9PTCIgPiY2 OyB9Ci0rZWxzZQotKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogbm8iID4m NQotKyRhc19lY2hvICJubyIgPiY2OyB9Ci0rZmkKLSsKLSsKLStmaQotK2lmIHRlc3QgLXogIiRh Y19jdl9wcm9nX09UT09MIjsgdGhlbgotKyAgYWNfY3RfT1RPT0w9JE9UT09MCi0rICAjIEV4dHJh Y3QgdGhlIGZpcnN0IHdvcmQgb2YgIm90b29sIiwgc28gaXQgY2FuIGJlIGEgcHJvZ3JhbSBuYW1l IHdpdGggYXJncy4KLStzZXQgZHVtbXkgb3Rvb2w7IGFjX3dvcmQ9JDIKLSt7ICRhc19lY2hvICIk YXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yICRhY193b3JkIiA+JjUKLSskYXNfZWNob19uICJj aGVja2luZyBmb3IgJGFjX3dvcmQuLi4gIiA+JjY7IH0KLStpZiB0ZXN0ICIke2FjX2N2X3Byb2df YWNfY3RfT1RPT0wrc2V0fSIgPSBzZXQ7IHRoZW4KLSsgICRhc19lY2hvX24gIihjYWNoZWQpICIg PiY2Ci0rZWxzZQotKyAgaWYgdGVzdCAtbiAiJGFjX2N0X09UT09MIjsgdGhlbgotKyAgYWNfY3Zf cHJvZ19hY19jdF9PVE9PTD0iJGFjX2N0X09UT09MIiAjIExldCB0aGUgdXNlciBvdmVycmlkZSB0 aGUgdGVzdC4KLStlbHNlCi0rYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgot K2ZvciBhc19kaXIgaW4gJFBBVEgKLStkbwotKyAgSUZTPSRhc19zYXZlX0lGUwotKyAgdGVzdCAt eiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KLSsgIGZvciBhY19leGVjX2V4dCBpbiAnJyAkYWNfZXhl Y3V0YWJsZV9leHRlbnNpb25zOyBkbwotKyAgaWYgeyB0ZXN0IC1mICIkYXNfZGlyLyRhY193b3Jk JGFjX2V4ZWNfZXh0IiAmJiAkYXNfdGVzdF94ICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0 IjsgfTsgdGhlbgotKyAgICBhY19jdl9wcm9nX2FjX2N0X09UT09MPSJvdG9vbCIKLSsgICAgJGFz X2VjaG8gIiRhc19tZTokTElORU5POiBmb3VuZCAkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0 IiA+JjUKLSsgICAgYnJlYWsgMgotKyAgZmkKLStkb25lCi0rZG9uZQotK0lGUz0kYXNfc2F2ZV9J RlMKLSsKLStmaQotK2ZpCi0rYWNfY3RfT1RPT0w9JGFjX2N2X3Byb2dfYWNfY3RfT1RPT0wKLStp ZiB0ZXN0IC1uICIkYWNfY3RfT1RPT0wiOyB0aGVuCi0rICB7ICRhc19lY2hvICIkYXNfbWU6JExJ TkVOTzogcmVzdWx0OiAkYWNfY3RfT1RPT0wiID4mNQotKyRhc19lY2hvICIkYWNfY3RfT1RPT0wi ID4mNjsgfQotK2Vsc2UKLSsgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IG5v IiA+JjUKLSskYXNfZWNobyAibm8iID4mNjsgfQotK2ZpCi0rCi0rICBpZiB0ZXN0ICJ4JGFjX2N0 X09UT09MIiA9IHg7IHRoZW4KLSsgICAgT1RPT0w9IjoiCi0rICBlbHNlCi0rICAgIGNhc2UgJGNy b3NzX2NvbXBpbGluZzokYWNfdG9vbF93YXJuZWQgaW4KLSt5ZXM6KQotK3sgJGFzX2VjaG8gIiRh c19tZTokTElORU5POiBXQVJOSU5HOiB1c2luZyBjcm9zcyB0b29scyBub3QgcHJlZml4ZWQgd2l0 aCBob3N0IHRyaXBsZXQiID4mNQotKyRhc19lY2hvICIkYXNfbWU6IFdBUk5JTkc6IHVzaW5nIGNy b3NzIHRvb2xzIG5vdCBwcmVmaXhlZCB3aXRoIGhvc3QgdHJpcGxldCIgPiYyO30KLSthY190b29s X3dhcm5lZD15ZXMgOzsKLStlc2FjCi0rICAgIE9UT09MPSRhY19jdF9PVE9PTAotKyAgZmkKLStl bHNlCi0rICBPVE9PTD0iJGFjX2N2X3Byb2dfT1RPT0wiCi0rZmkKLSsKLSsgICAgaWYgdGVzdCAt biAiJGFjX3Rvb2xfcHJlZml4IjsgdGhlbgotKyAgIyBFeHRyYWN0IHRoZSBmaXJzdCB3b3JkIG9m ICIke2FjX3Rvb2xfcHJlZml4fW90b29sNjQiLCBzbyBpdCBjYW4gYmUgYSBwcm9ncmFtIG5hbWUg d2l0aCBhcmdzLgotK3NldCBkdW1teSAke2FjX3Rvb2xfcHJlZml4fW90b29sNjQ7IGFjX3dvcmQ9 JDIKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yICRhY193b3JkIiA+ JjUKLSskYXNfZWNob19uICJjaGVja2luZyBmb3IgJGFjX3dvcmQuLi4gIiA+JjY7IH0KLStpZiB0 ZXN0ICIke2FjX2N2X3Byb2dfT1RPT0w2NCtzZXR9IiA9IHNldDsgdGhlbgotKyAgJGFzX2VjaG9f biAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rICBpZiB0ZXN0IC1uICIkT1RPT0w2NCI7IHRoZW4K LSsgIGFjX2N2X3Byb2dfT1RPT0w2ND0iJE9UT09MNjQiICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRl IHRoZSB0ZXN0LgotK2Vsc2UKLSthc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9S Ci0rZm9yIGFzX2RpciBpbiAkUEFUSAotK2RvCi0rICBJRlM9JGFzX3NhdmVfSUZTCi0rICB0ZXN0 IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgotKyAgZm9yIGFjX2V4ZWNfZXh0IGluICcnICRhY19l eGVjdXRhYmxlX2V4dGVuc2lvbnM7IGRvCi0rICBpZiB7IHRlc3QgLWYgIiRhc19kaXIvJGFjX3dv cmQkYWNfZXhlY19leHQiICYmICRhc190ZXN0X3ggIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19l eHQiOyB9OyB0aGVuCi0rICAgIGFjX2N2X3Byb2dfT1RPT0w2ND0iJHthY190b29sX3ByZWZpeH1v dG9vbDY0IgotKyAgICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGZvdW5kICRhc19kaXIvJGFj X3dvcmQkYWNfZXhlY19leHQiID4mNQotKyAgICBicmVhayAyCi0rICBmaQotK2RvbmUKLStkb25l Ci0rSUZTPSRhc19zYXZlX0lGUwotKwotK2ZpCi0rZmkKLStPVE9PTDY0PSRhY19jdl9wcm9nX09U T09MNjQKLStpZiB0ZXN0IC1uICIkT1RPT0w2NCI7IHRoZW4KLSsgIHsgJGFzX2VjaG8gIiRhc19t ZTokTElORU5POiByZXN1bHQ6ICRPVE9PTDY0IiA+JjUKLSskYXNfZWNobyAiJE9UT09MNjQiID4m NjsgfQotK2Vsc2UKLSsgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IG5vIiA+ JjUKLSskYXNfZWNobyAibm8iID4mNjsgfQotK2ZpCi0rCi0rCi0rZmkKLStpZiB0ZXN0IC16ICIk YWNfY3ZfcHJvZ19PVE9PTDY0IjsgdGhlbgotKyAgYWNfY3RfT1RPT0w2ND0kT1RPT0w2NAotKyAg IyBFeHRyYWN0IHRoZSBmaXJzdCB3b3JkIG9mICJvdG9vbDY0Iiwgc28gaXQgY2FuIGJlIGEgcHJv Z3JhbSBuYW1lIHdpdGggYXJncy4KLStzZXQgZHVtbXkgb3Rvb2w2NDsgYWNfd29yZD0kMgotK3sg JGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgJGFjX3dvcmQiID4mNQotKyRh c19lY2hvX24gImNoZWNraW5nIGZvciAkYWNfd29yZC4uLiAiID4mNjsgfQotK2lmIHRlc3QgIiR7 YWNfY3ZfcHJvZ19hY19jdF9PVE9PTDY0K3NldH0iID0gc2V0OyB0aGVuCi0rICAkYXNfZWNob19u ICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsgIGlmIHRlc3QgLW4gIiRhY19jdF9PVE9PTDY0Ijsg dGhlbgotKyAgYWNfY3ZfcHJvZ19hY19jdF9PVE9PTDY0PSIkYWNfY3RfT1RPT0w2NCIgIyBMZXQg dGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3QuCi0rZWxzZQotK2FzX3NhdmVfSUZTPSRJRlM7IElG Uz0kUEFUSF9TRVBBUkFUT1IKLStmb3IgYXNfZGlyIGluICRQQVRICi0rZG8KLSsgIElGUz0kYXNf c2F2ZV9JRlMKLSsgIHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCi0rICBmb3IgYWNfZXhl Y19leHQgaW4gJycgJGFjX2V4ZWN1dGFibGVfZXh0ZW5zaW9uczsgZG8KLSsgIGlmIHsgdGVzdCAt ZiAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgJiYgJGFzX3Rlc3RfeCAiJGFzX2Rpci8k YWNfd29yZCRhY19leGVjX2V4dCI7IH07IHRoZW4KLSsgICAgYWNfY3ZfcHJvZ19hY19jdF9PVE9P TDY0PSJvdG9vbDY0IgotKyAgICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGZvdW5kICRhc19k aXIvJGFjX3dvcmQkYWNfZXhlY19leHQiID4mNQotKyAgICBicmVhayAyCi0rICBmaQotK2RvbmUK LStkb25lCi0rSUZTPSRhc19zYXZlX0lGUwotKwotK2ZpCi0rZmkKLSthY19jdF9PVE9PTDY0PSRh Y19jdl9wcm9nX2FjX2N0X09UT09MNjQKLStpZiB0ZXN0IC1uICIkYWNfY3RfT1RPT0w2NCI7IHRo ZW4KLSsgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19jdF9PVE9PTDY0 IiA+JjUKLSskYXNfZWNobyAiJGFjX2N0X09UT09MNjQiID4mNjsgfQotK2Vsc2UKLSsgIHsgJGFz X2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IG5vIiA+JjUKLSskYXNfZWNobyAibm8iID4m NjsgfQotK2ZpCi0rCi0rICBpZiB0ZXN0ICJ4JGFjX2N0X09UT09MNjQiID0geDsgdGhlbgotKyAg ICBPVE9PTDY0PSI6IgotKyAgZWxzZQotKyAgICBjYXNlICRjcm9zc19jb21waWxpbmc6JGFjX3Rv b2xfd2FybmVkIGluCi0reWVzOikKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogV0FSTklO RzogdXNpbmcgY3Jvc3MgdG9vbHMgbm90IHByZWZpeGVkIHdpdGggaG9zdCB0cmlwbGV0IiA+JjUK LSskYXNfZWNobyAiJGFzX21lOiBXQVJOSU5HOiB1c2luZyBjcm9zcyB0b29scyBub3QgcHJlZml4 ZWQgd2l0aCBob3N0IHRyaXBsZXQiID4mMjt9Ci0rYWNfdG9vbF93YXJuZWQ9eWVzIDs7Ci0rZXNh YwotKyAgICBPVE9PTDY0PSRhY19jdF9PVE9PTDY0Ci0rICBmaQotK2Vsc2UKLSsgIE9UT09MNjQ9 IiRhY19jdl9wcm9nX09UT09MNjQiCi0rZmkKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsK LSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsgICAg eyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciAtc2luZ2xlX21vZHVsZSBs aW5rZXIgZmxhZyIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yIC1zaW5nbGVfbW9kdWxl IGxpbmtlciBmbGFnLi4uICIgPiY2OyB9Ci0raWYgdGVzdCAiJHtsdF9jdl9hcHBsZV9jY19zaW5n bGVfbW9kK3NldH0iID0gc2V0OyB0aGVuCi0rICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgot K2Vsc2UKLSsgIGx0X2N2X2FwcGxlX2NjX3NpbmdsZV9tb2Q9bm8KLSsgICAgICBpZiB0ZXN0IC16 ICIke0xUX01VTFRJX01PRFVMRX0iOyB0aGVuCi0rCSMgQnkgZGVmYXVsdCB3ZSB3aWxsIGFkZCB0 aGUgLXNpbmdsZV9tb2R1bGUgZmxhZy4gWW91IGNhbiBvdmVycmlkZQotKwkjIGJ5IGVpdGhlciBz ZXR0aW5nIHRoZSBlbnZpcm9ubWVudCB2YXJpYWJsZSBMVF9NVUxUSV9NT0RVTEUKLSsJIyBub24t ZW1wdHkgYXQgY29uZmlndXJlIHRpbWUsIG9yIGJ5IGFkZGluZyAtbXVsdGlfbW9kdWxlIHRvIHRo ZQotKwkjIGxpbmsgZmxhZ3MuCi0rCXJtIC1yZiBsaWJjb25mdGVzdC5keWxpYioKLSsJZWNobyAi aW50IGZvbyh2b2lkKXtyZXR1cm4gMTt9IiA+IGNvbmZ0ZXN0LmMKLSsJZWNobyAiJExUQ0MgJExU Q0ZMQUdTICRMREZMQUdTIC1vIGxpYmNvbmZ0ZXN0LmR5bGliIFwKLSstZHluYW1pY2xpYiAtV2ws LXNpbmdsZV9tb2R1bGUgY29uZnRlc3QuYyIgPiY1Ci0rCSRMVENDICRMVENGTEFHUyAkTERGTEFH UyAtbyBsaWJjb25mdGVzdC5keWxpYiBcCi0rCSAgLWR5bmFtaWNsaWIgLVdsLC1zaW5nbGVfbW9k dWxlIGNvbmZ0ZXN0LmMgMj5jb25mdGVzdC5lcnIKLSsgICAgICAgIF9sdF9yZXN1bHQ9JD8KLSsJ aWYgdGVzdCAtZiBsaWJjb25mdGVzdC5keWxpYiAmJiB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyICYm IHRlc3QgJF9sdF9yZXN1bHQgPSAwOyB0aGVuCi0rCSAgbHRfY3ZfYXBwbGVfY2Nfc2luZ2xlX21v ZD15ZXMKLSsJZWxzZQotKwkgIGNhdCBjb25mdGVzdC5lcnIgPiY1Ci0rCWZpCi0rCXJtIC1yZiBs aWJjb25mdGVzdC5keWxpYioKLSsJcm0gLWYgY29uZnRlc3QuKgotKyAgICAgIGZpCi0rZmkKLSt7 ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkbHRfY3ZfYXBwbGVfY2Nfc2luZ2xl X21vZCIgPiY1Ci0rJGFzX2VjaG8gIiRsdF9jdl9hcHBsZV9jY19zaW5nbGVfbW9kIiA+JjY7IH0K LSsgICAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciAtZXhwb3J0ZWRf c3ltYm9sc19saXN0IGxpbmtlciBmbGFnIiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyBmb3Ig LWV4cG9ydGVkX3N5bWJvbHNfbGlzdCBsaW5rZXIgZmxhZy4uLiAiID4mNjsgfQotK2lmIHRlc3Qg IiR7bHRfY3ZfbGRfZXhwb3J0ZWRfc3ltYm9sc19saXN0K3NldH0iID0gc2V0OyB0aGVuCi0rICAk YXNfZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsgIGx0X2N2X2xkX2V4cG9ydGVkX3N5 bWJvbHNfbGlzdD1ubwotKyAgICAgIHNhdmVfTERGTEFHUz0kTERGTEFHUwotKyAgICAgIGVjaG8g Il9tYWluIiA+IGNvbmZ0ZXN0LnN5bQotKyAgICAgIExERkxBR1M9IiRMREZMQUdTIC1XbCwtZXhw b3J0ZWRfc3ltYm9sc19saXN0LGNvbmZ0ZXN0LnN5bSIKLSsgICAgICBjYXQgPmNvbmZ0ZXN0LiRh Y19leHQgPDxfQUNFT0YKLSsvKiBjb25mZGVmcy5oLiAgKi8KLStfQUNFT0YKLStjYXQgY29uZmRl ZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKLStjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9G Ci0rLyogZW5kIGNvbmZkZWZzLmguICAqLwotKwotK2ludAotK21haW4gKCkKLSt7Ci0rCi0rICA7 Ci0rICByZXR1cm4gMDsKLSt9Ci0rX0FDRU9GCi0rcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dCBj b25mdGVzdCRhY19leGVleHQKLStpZiB7IChhY190cnk9IiRhY19saW5rIgotK2Nhc2UgIigoJGFj X3RyeSIgaW4KLSsgICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7Owot KyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7Ci0rZXNhYwotK2V2YWwgYWNfdHJ5X2VjaG89Ilwi XCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIKLSskYXNfZWNobyAiJGFjX3RyeV9lY2hv IikgPiY1Ci0rICAoZXZhbCAiJGFjX2xpbmsiKSAyPmNvbmZ0ZXN0LmVyMQotKyAgYWNfc3RhdHVz PSQ/Ci0rICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgotKyAgcm0g LWYgY29uZnRlc3QuZXIxCi0rICBjYXQgY29uZnRlc3QuZXJyID4mNQotKyAgJGFzX2VjaG8gIiRh c19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSsgIChleGl0ICRhY19zdGF0dXMp OyB9ICYmIHsKLSsJIHRlc3QgLXogIiRhY19jX3dlcnJvcl9mbGFnIiB8fAotKwkgdGVzdCAhIC1z IGNvbmZ0ZXN0LmVycgotKyAgICAgICB9ICYmIHRlc3QgLXMgY29uZnRlc3QkYWNfZXhlZXh0ICYm IHsKLSsJIHRlc3QgIiRjcm9zc19jb21waWxpbmciID0geWVzIHx8Ci0rCSAkYXNfdGVzdF94IGNv bmZ0ZXN0JGFjX2V4ZWV4dAotKyAgICAgICB9OyB0aGVuCi0rICBsdF9jdl9sZF9leHBvcnRlZF9z eW1ib2xzX2xpc3Q9eWVzCi0rZWxzZQotKyAgJGFzX2VjaG8gIiRhc19tZTogZmFpbGVkIHByb2dy YW0gd2FzOiIgPiY1Ci0rc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQotKwotKwls dF9jdl9sZF9leHBvcnRlZF9zeW1ib2xzX2xpc3Q9bm8KLStmaQotKwotK3JtIC1yZiBjb25mdGVz dC5kU1lNCi0rcm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25m dGVzdF9pcGE4X2NvbmZ0ZXN0Lm9vIFwKLSsgICAgICBjb25mdGVzdCRhY19leGVleHQgY29uZnRl c3QuJGFjX2V4dAotKwlMREZMQUdTPSIkc2F2ZV9MREZMQUdTIgotKwotK2ZpCi0reyAkYXNfZWNo byAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGx0X2N2X2xkX2V4cG9ydGVkX3N5bWJvbHNfbGlz dCIgPiY1Ci0rJGFzX2VjaG8gIiRsdF9jdl9sZF9leHBvcnRlZF9zeW1ib2xzX2xpc3QiID4mNjsg fQotKyAgICBjYXNlICRob3N0X29zIGluCi0rICAgIHJoYXBzb2R5KiB8IGRhcndpbjEuWzAxMl0p Ci0rICAgICAgX2x0X2Rhcl9hbGxvd191bmRlZmluZWQ9JyR7d2x9LXVuZGVmaW5lZCAke3dsfXN1 cHByZXNzJyA7OwotKyAgICBkYXJ3aW4xLiopCi0rICAgICAgX2x0X2Rhcl9hbGxvd191bmRlZmlu ZWQ9JyR7d2x9LWZsYXRfbmFtZXNwYWNlICR7d2x9LXVuZGVmaW5lZCAke3dsfXN1cHByZXNzJyA7 OwotKyAgICBkYXJ3aW4qKSAjIGRhcndpbiA1Lnggb24KLSsgICAgICAjIGlmIHJ1bm5pbmcgb24g MTAuNSBvciBsYXRlciwgdGhlIGRlcGxveW1lbnQgdGFyZ2V0IGRlZmF1bHRzCi0rICAgICAgIyB0 byB0aGUgT1MgdmVyc2lvbiwgaWYgb24geDg2LCBhbmQgMTAuNCwgdGhlIGRlcGxveW1lbnQKLSsg ICAgICAjIHRhcmdldCBkZWZhdWx0cyB0byAxMC40LiBEb24ndCB5b3UgbG92ZSBpdD8KLSsgICAg ICBjYXNlICR7TUFDT1NYX0RFUExPWU1FTlRfVEFSR0VULTEwLjB9LCRob3N0IGluCi0rCTEwLjAs Kjg2Ki1kYXJ3aW44KnwxMC4wLCotZGFyd2luWzkxXSopCi0rCSAgX2x0X2Rhcl9hbGxvd191bmRl ZmluZWQ9JyR7d2x9LXVuZGVmaW5lZCAke3dsfWR5bmFtaWNfbG9va3VwJyA7OwotKwkxMC5bMDEy XSopCi0rCSAgX2x0X2Rhcl9hbGxvd191bmRlZmluZWQ9JyR7d2x9LWZsYXRfbmFtZXNwYWNlICR7 d2x9LXVuZGVmaW5lZCAke3dsfXN1cHByZXNzJyA7OwotKwkxMC4qKQotKwkgIF9sdF9kYXJfYWxs b3dfdW5kZWZpbmVkPScke3dsfS11bmRlZmluZWQgJHt3bH1keW5hbWljX2xvb2t1cCcgOzsKLSsg ICAgICBlc2FjCi0rICAgIDs7Ci0rICBlc2FjCi0rICAgIGlmIHRlc3QgIiRsdF9jdl9hcHBsZV9j Y19zaW5nbGVfbW9kIiA9ICJ5ZXMiOyB0aGVuCi0rICAgICAgX2x0X2Rhcl9zaW5nbGVfbW9kPSck c2luZ2xlX21vZHVsZScKLSsgICAgZmkKLSsgICAgaWYgdGVzdCAiJGx0X2N2X2xkX2V4cG9ydGVk X3N5bWJvbHNfbGlzdCIgPSAieWVzIjsgdGhlbgotKyAgICAgIF9sdF9kYXJfZXhwb3J0X3N5bXM9 JyAke3dsfS1leHBvcnRlZF9zeW1ib2xzX2xpc3QsJG91dHB1dF9vYmpkaXIvJHtsaWJuYW1lfS1z eW1ib2xzLmV4cHN5bScKLSsgICAgZWxzZQotKyAgICAgIF9sdF9kYXJfZXhwb3J0X3N5bXM9J34k Tk1FRElUIC1zICRvdXRwdXRfb2JqZGlyLyR7bGlibmFtZX0tc3ltYm9scy5leHBzeW0gJHtsaWJ9 JwotKyAgICBmaQotKyAgICBpZiB0ZXN0ICIkRFNZTVVUSUwiICE9ICI6IjsgdGhlbgotKyAgICAg IF9sdF9kc3ltdXRpbD0nfiREU1lNVVRJTCAkbGliIHx8IDonCi0rICAgIGVsc2UKLSsgICAgICBf bHRfZHN5bXV0aWw9Ci0rICAgIGZpCi0rICAgIDs7Ci0rICBlc2FjCi0rCi0rYWNfZXh0PWMKLSth Y19jcHA9JyRDUFAgJENQUEZMQUdTJwotK2FjX2NvbXBpbGU9JyRDQyAtYyAkQ0ZMQUdTICRDUFBG TEFHUyBjb25mdGVzdC4kYWNfZXh0ID4mNScKLSthY19saW5rPSckQ0MgLW8gY29uZnRlc3QkYWNf ZXhlZXh0ICRDRkxBR1MgJENQUEZMQUdTICRMREZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgJExJQlMg PiY1JwotK2FjX2NvbXBpbGVyX2dudT0kYWNfY3ZfY19jb21waWxlcl9nbnUKLSt7ICRhc19lY2hv ICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgaG93IHRvIHJ1biB0aGUgQyBwcmVwcm9jZXNzb3Ii ID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIGhvdyB0byBydW4gdGhlIEMgcHJlcHJvY2Vzc29y Li4uICIgPiY2OyB9Ci0rIyBPbiBTdW5zLCBzb21ldGltZXMgJENQUCBuYW1lcyBhIGRpcmVjdG9y eS4KLStpZiB0ZXN0IC1uICIkQ1BQIiAmJiB0ZXN0IC1kICIkQ1BQIjsgdGhlbgotKyAgQ1BQPQot K2ZpCi0raWYgdGVzdCAteiAiJENQUCI7IHRoZW4KLSsgIGlmIHRlc3QgIiR7YWNfY3ZfcHJvZ19D UFArc2V0fSIgPSBzZXQ7IHRoZW4KLSsgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci0rZWxz ZQotKyAgICAgICMgRG91YmxlIHF1b3RlcyBiZWNhdXNlIENQUCBuZWVkcyB0byBiZSBleHBhbmRl ZAotKyAgICBmb3IgQ1BQIGluICIkQ0MgLUUiICIkQ0MgLUUgLXRyYWRpdGlvbmFsLWNwcCIgIi9s aWIvY3BwIgotKyAgICBkbwotKyAgICAgIGFjX3ByZXByb2Nfb2s9ZmFsc2UKLStmb3IgYWNfY19w cmVwcm9jX3dhcm5fZmxhZyBpbiAnJyB5ZXMKLStkbwotKyAgIyBVc2UgYSBoZWFkZXIgZmlsZSB0 aGF0IGNvbWVzIHdpdGggZ2NjLCBzbyBjb25maWd1cmluZyBnbGliYwotKyAgIyB3aXRoIGEgZnJl c2ggY3Jvc3MtY29tcGlsZXIgd29ya3MuCi0rICAjIFByZWZlciA8bGltaXRzLmg+IHRvIDxhc3Nl cnQuaD4gaWYgX19TVERDX18gaXMgZGVmaW5lZCwgc2luY2UKLSsgICMgPGxpbWl0cy5oPiBleGlz dHMgZXZlbiBvbiBmcmVlc3RhbmRpbmcgY29tcGlsZXJzLgotKyAgIyBPbiB0aGUgTmVYVCwgY2Mg LUUgcnVucyB0aGUgY29kZSB0aHJvdWdoIHRoZSBjb21waWxlcidzIHBhcnNlciwKLSsgICMgbm90 IGp1c3QgdGhyb3VnaCBjcHAuICJTeW50YXggZXJyb3IiIGlzIGhlcmUgdG8gY2F0Y2ggdGhpcyBj YXNlLgotKyAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0rLyogY29uZmRlZnMuaC4g ICovCi0rX0FDRU9GCi0rY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Ci0rY2F0ID4+ Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLSsjaWZk ZWYgX19TVERDX18KLSsjIGluY2x1ZGUgPGxpbWl0cy5oPgotKyNlbHNlCi0rIyBpbmNsdWRlIDxh c3NlcnQuaD4KLSsjZW5kaWYKLSsJCSAgICAgU3ludGF4IGVycm9yCi0rX0FDRU9GCi0raWYgeyAo YWNfdHJ5PSIkYWNfY3BwIGNvbmZ0ZXN0LiRhY19leHQiCi0rY2FzZSAiKCgkYWNfdHJ5IiBpbgot KyAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7Ci0rICAqKSBhY190 cnlfZWNobz0kYWNfdHJ5OzsKLStlc2FjCi0rZXZhbCBhY190cnlfZWNobz0iXCJcJGFzX21lOiRM SU5FTk86ICRhY190cnlfZWNob1wiIgotKyRhc19lY2hvICIkYWNfdHJ5X2VjaG8iKSA+JjUKLSsg IChldmFsICIkYWNfY3BwIGNvbmZ0ZXN0LiRhY19leHQiKSAyPmNvbmZ0ZXN0LmVyMQotKyAgYWNf c3RhdHVzPSQ/Ci0rICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgot KyAgcm0gLWYgY29uZnRlc3QuZXIxCi0rICBjYXQgY29uZnRlc3QuZXJyID4mNQotKyAgJGFzX2Vj aG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSsgIChleGl0ICRhY19z dGF0dXMpOyB9ID4vZGV2L251bGwgJiYgewotKwkgdGVzdCAteiAiJGFjX2NfcHJlcHJvY193YXJu X2ZsYWckYWNfY193ZXJyb3JfZmxhZyIgfHwKLSsJIHRlc3QgISAtcyBjb25mdGVzdC5lcnIKLSsg ICAgICAgfTsgdGhlbgotKyAgOgotK2Vsc2UKLSsgICRhc19lY2hvICIkYXNfbWU6IGZhaWxlZCBw cm9ncmFtIHdhczoiID4mNQotK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKLSsK LSsgICMgQnJva2VuOiBmYWlscyBvbiB2YWxpZCBpbnB1dC4KLStjb250aW51ZQotK2ZpCi0rCi0r cm0gLWYgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19leHQKLSsKLSsgICMgT0ssIHdvcmtzIG9u IHNhbmUgY2FzZXMuICBOb3cgY2hlY2sgd2hldGhlciBub25leGlzdGVudCBoZWFkZXJzCi0rICAj IGNhbiBiZSBkZXRlY3RlZCBhbmQgaG93LgotKyAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FD RU9GCi0rLyogY29uZmRlZnMuaC4gICovCi0rX0FDRU9GCi0rY2F0IGNvbmZkZWZzLmggPj5jb25m dGVzdC4kYWNfZXh0Ci0rY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotKy8qIGVuZCBj b25mZGVmcy5oLiAgKi8KLSsjaW5jbHVkZSA8YWNfbm9uZXhpc3RlbnQuaD4KLStfQUNFT0YKLStp ZiB7IChhY190cnk9IiRhY19jcHAgY29uZnRlc3QuJGFjX2V4dCIKLStjYXNlICIoKCRhY190cnki IGluCi0rICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKLSsgICop IGFjX3RyeV9lY2hvPSRhY190cnk7OwotK2VzYWMKLStldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNf bWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCi0rJGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4m NQotKyAgKGV2YWwgIiRhY19jcHAgY29uZnRlc3QuJGFjX2V4dCIpIDI+Y29uZnRlc3QuZXIxCi0r ICBhY19zdGF0dXM9JD8KLSsgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3Qu ZXJyCi0rICBybSAtZiBjb25mdGVzdC5lcjEKLSsgIGNhdCBjb25mdGVzdC5lcnIgPiY1Ci0rICAk YXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotKyAgKGV4aXQg JGFjX3N0YXR1cyk7IH0gPi9kZXYvbnVsbCAmJiB7Ci0rCSB0ZXN0IC16ICIkYWNfY19wcmVwcm9j X3dhcm5fZmxhZyRhY19jX3dlcnJvcl9mbGFnIiB8fAotKwkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVy cgotKyAgICAgICB9OyB0aGVuCi0rICAjIEJyb2tlbjogc3VjY2VzcyBvbiBpbnZhbGlkIGlucHV0 LgotK2NvbnRpbnVlCi0rZWxzZQotKyAgJGFzX2VjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0g d2FzOiIgPiY1Ci0rc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQotKwotKyAgIyBQ YXNzZXMgYm90aCB0ZXN0cy4KLSthY19wcmVwcm9jX29rPToKLSticmVhawotK2ZpCi0rCi0rcm0g LWYgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19leHQKLSsKLStkb25lCi0rIyBCZWNhdXNlIG9m IGBicmVhaycsIF9BQ19QUkVQUk9DX0lGRUxTRSdzIGNsZWFuaW5nIGNvZGUgd2FzIHNraXBwZWQu Ci0rcm0gLWYgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19leHQKLStpZiAkYWNfcHJlcHJvY19v azsgdGhlbgotKyAgYnJlYWsKLStmaQotKwotKyAgICBkb25lCi0rICAgIGFjX2N2X3Byb2dfQ1BQ PSRDUFAKLSsKLStmaQotKyAgQ1BQPSRhY19jdl9wcm9nX0NQUAotK2Vsc2UKLSsgIGFjX2N2X3By b2dfQ1BQPSRDUFAKLStmaQotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRD UFAiID4mNQotKyRhc19lY2hvICIkQ1BQIiA+JjY7IH0KLSthY19wcmVwcm9jX29rPWZhbHNlCi0r Zm9yIGFjX2NfcHJlcHJvY193YXJuX2ZsYWcgaW4gJycgeWVzCi0rZG8KLSsgICMgVXNlIGEgaGVh ZGVyIGZpbGUgdGhhdCBjb21lcyB3aXRoIGdjYywgc28gY29uZmlndXJpbmcgZ2xpYmMKLSsgICMg d2l0aCBhIGZyZXNoIGNyb3NzLWNvbXBpbGVyIHdvcmtzLgotKyAgIyBQcmVmZXIgPGxpbWl0cy5o PiB0byA8YXNzZXJ0Lmg+IGlmIF9fU1REQ19fIGlzIGRlZmluZWQsIHNpbmNlCi0rICAjIDxsaW1p dHMuaD4gZXhpc3RzIGV2ZW4gb24gZnJlZXN0YW5kaW5nIGNvbXBpbGVycy4KLSsgICMgT24gdGhl IE5lWFQsIGNjIC1FIHJ1bnMgdGhlIGNvZGUgdGhyb3VnaCB0aGUgY29tcGlsZXIncyBwYXJzZXIs Ci0rICAjIG5vdCBqdXN0IHRocm91Z2ggY3BwLiAiU3ludGF4IGVycm9yIiBpcyBoZXJlIHRvIGNh dGNoIHRoaXMgY2FzZS4KLSsgIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotKy8qIGNv bmZkZWZzLmguICAqLwotK19BQ0VPRgotK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4 dAotK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLSsvKiBlbmQgY29uZmRlZnMuaC4g ICovCi0rI2lmZGVmIF9fU1REQ19fCi0rIyBpbmNsdWRlIDxsaW1pdHMuaD4KLSsjZWxzZQotKyMg aW5jbHVkZSA8YXNzZXJ0Lmg+Ci0rI2VuZGlmCi0rCQkgICAgIFN5bnRheCBlcnJvcgotK19BQ0VP RgotK2lmIHsgKGFjX3RyeT0iJGFjX2NwcCBjb25mdGVzdC4kYWNfZXh0IgotK2Nhc2UgIigoJGFj X3RyeSIgaW4KLSsgICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7Owot KyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7Ci0rZXNhYwotK2V2YWwgYWNfdHJ5X2VjaG89Ilwi XCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIKLSskYXNfZWNobyAiJGFjX3RyeV9lY2hv IikgPiY1Ci0rICAoZXZhbCAiJGFjX2NwcCBjb25mdGVzdC4kYWNfZXh0IikgMj5jb25mdGVzdC5l cjEKLSsgIGFjX3N0YXR1cz0kPwotKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25m dGVzdC5lcnIKLSsgIHJtIC1mIGNvbmZ0ZXN0LmVyMQotKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUK LSsgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0rICAo ZXhpdCAkYWNfc3RhdHVzKTsgfSA+L2Rldi9udWxsICYmIHsKLSsJIHRlc3QgLXogIiRhY19jX3By ZXByb2Nfd2Fybl9mbGFnJGFjX2Nfd2Vycm9yX2ZsYWciIHx8Ci0rCSB0ZXN0ICEgLXMgY29uZnRl c3QuZXJyCi0rICAgICAgIH07IHRoZW4KLSsgIDoKLStlbHNlCi0rICAkYXNfZWNobyAiJGFzX21l OiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLStzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19l eHQgPiY1Ci0rCi0rICAjIEJyb2tlbjogZmFpbHMgb24gdmFsaWQgaW5wdXQuCi0rY29udGludWUK LStmaQotKwotK3JtIC1mIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfZXh0Ci0rCi0rICAjIE9L LCB3b3JrcyBvbiBzYW5lIGNhc2VzLiAgTm93IGNoZWNrIHdoZXRoZXIgbm9uZXhpc3RlbnQgaGVh ZGVycwotKyAgIyBjYW4gYmUgZGV0ZWN0ZWQgYW5kIGhvdy4KLSsgIGNhdCA+Y29uZnRlc3QuJGFj X2V4dCA8PF9BQ0VPRgotKy8qIGNvbmZkZWZzLmguICAqLwotK19BQ0VPRgotK2NhdCBjb25mZGVm cy5oID4+Y29uZnRlc3QuJGFjX2V4dAotK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YK LSsvKiBlbmQgY29uZmRlZnMuaC4gICovCi0rI2luY2x1ZGUgPGFjX25vbmV4aXN0ZW50Lmg+Ci0r X0FDRU9GCi0raWYgeyAoYWNfdHJ5PSIkYWNfY3BwIGNvbmZ0ZXN0LiRhY19leHQiCi0rY2FzZSAi KCgkYWNfdHJ5IiBpbgotKyAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3Ry eTs7Ci0rICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKLStlc2FjCi0rZXZhbCBhY190cnlfZWNo bz0iXCJcJGFzX21lOiRMSU5FTk86ICRhY190cnlfZWNob1wiIgotKyRhc19lY2hvICIkYWNfdHJ5 X2VjaG8iKSA+JjUKLSsgIChldmFsICIkYWNfY3BwIGNvbmZ0ZXN0LiRhY19leHQiKSAyPmNvbmZ0 ZXN0LmVyMQotKyAgYWNfc3RhdHVzPSQ/Ci0rICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEg PmNvbmZ0ZXN0LmVycgotKyAgcm0gLWYgY29uZnRlc3QuZXIxCi0rICBjYXQgY29uZnRlc3QuZXJy ID4mNQotKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUK LSsgIChleGl0ICRhY19zdGF0dXMpOyB9ID4vZGV2L251bGwgJiYgewotKwkgdGVzdCAteiAiJGFj X2NfcHJlcHJvY193YXJuX2ZsYWckYWNfY193ZXJyb3JfZmxhZyIgfHwKLSsJIHRlc3QgISAtcyBj b25mdGVzdC5lcnIKLSsgICAgICAgfTsgdGhlbgotKyAgIyBCcm9rZW46IHN1Y2Nlc3Mgb24gaW52 YWxpZCBpbnB1dC4KLStjb250aW51ZQotK2Vsc2UKLSsgICRhc19lY2hvICIkYXNfbWU6IGZhaWxl ZCBwcm9ncmFtIHdhczoiID4mNQotK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUK LSsKLSsgICMgUGFzc2VzIGJvdGggdGVzdHMuCi0rYWNfcHJlcHJvY19vaz06Ci0rYnJlYWsKLStm aQotKwotK3JtIC1mIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfZXh0Ci0rCi0rZG9uZQotKyMg QmVjYXVzZSBvZiBgYnJlYWsnLCBfQUNfUFJFUFJPQ19JRkVMU0UncyBjbGVhbmluZyBjb2RlIHdh cyBza2lwcGVkLgotK3JtIC1mIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfZXh0Ci0raWYgJGFj X3ByZXByb2Nfb2s7IHRoZW4KLSsgIDoKLStlbHNlCi0rICB7IHsgJGFzX2VjaG8gIiRhc19tZTok TElORU5POiBlcnJvcjogaW4gXGAkYWNfcHdkJzoiID4mNQotKyRhc19lY2hvICIkYXNfbWU6IGVy cm9yOiBpbiBcYCRhY19wd2QnOiIgPiYyO30KLSt7IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5P OiBlcnJvcjogQyBwcmVwcm9jZXNzb3IgXCIkQ1BQXCIgZmFpbHMgc2FuaXR5IGNoZWNrCi0rU2Vl IFxgY29uZmlnLmxvZycgZm9yIG1vcmUgZGV0YWlscy4iID4mNQotKyRhc19lY2hvICIkYXNfbWU6 IGVycm9yOiBDIHByZXByb2Nlc3NvciBcIiRDUFBcIiBmYWlscyBzYW5pdHkgY2hlY2sKLStTZWUg XGBjb25maWcubG9nJyBmb3IgbW9yZSBkZXRhaWxzLiIgPiYyO30KLSsgICB7IChleGl0IDEpOyBl eGl0IDE7IH07IH07IH0KLStmaQotKwotK2FjX2V4dD1jCi0rYWNfY3BwPSckQ1BQICRDUFBGTEFH UycKLSthY19jb21waWxlPSckQ0MgLWMgJENGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4 dCA+JjUnCi0rYWNfbGluaz0nJENDIC1vIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAkQ0ZMQUdTICRDUFBG TEFHUyAkTERGTEFHUyBjb25mdGVzdC4kYWNfZXh0ICRMSUJTID4mNScKLSthY19jb21waWxlcl9n bnU9JGFjX2N2X2NfY29tcGlsZXJfZ251Ci0rCi0rCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5F Tk86IGNoZWNraW5nIGZvciBBTlNJIEMgaGVhZGVyIGZpbGVzIiA+JjUKLSskYXNfZWNob19uICJj aGVja2luZyBmb3IgQU5TSSBDIGhlYWRlciBmaWxlcy4uLiAiID4mNjsgfQotK2lmIHRlc3QgIiR7 YWNfY3ZfaGVhZGVyX3N0ZGMrc2V0fSIgPSBzZXQ7IHRoZW4KLSsgICRhc19lY2hvX24gIihjYWNo ZWQpICIgPiY2Ci0rZWxzZQotKyAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0rLyog Y29uZmRlZnMuaC4gICovCi0rX0FDRU9GCi0rY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNf ZXh0Ci0rY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotKy8qIGVuZCBjb25mZGVmcy5o LiAgKi8KLSsjaW5jbHVkZSA8c3RkbGliLmg+Ci0rI2luY2x1ZGUgPHN0ZGFyZy5oPgotKyNpbmNs dWRlIDxzdHJpbmcuaD4KLSsjaW5jbHVkZSA8ZmxvYXQuaD4KLSsKLStpbnQKLSttYWluICgpCi0r ewotKwotKyAgOwotKyAgcmV0dXJuIDA7Ci0rfQotK19BQ0VPRgotK3JtIC1mIGNvbmZ0ZXN0LiRh Y19vYmpleHQKLStpZiB7IChhY190cnk9IiRhY19jb21waWxlIgotK2Nhc2UgIigoJGFjX3RyeSIg aW4KLSsgICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OwotKyAgKikg YWNfdHJ5X2VjaG89JGFjX3RyeTs7Ci0rZXNhYwotK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19t ZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIKLSskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1 Ci0rICAoZXZhbCAiJGFjX2NvbXBpbGUiKSAyPmNvbmZ0ZXN0LmVyMQotKyAgYWNfc3RhdHVzPSQ/ Ci0rICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgotKyAgcm0gLWYg Y29uZnRlc3QuZXIxCi0rICBjYXQgY29uZnRlc3QuZXJyID4mNQotKyAgJGFzX2VjaG8gIiRhc19t ZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSsgIChleGl0ICRhY19zdGF0dXMpOyB9 ICYmIHsKLSsJIHRlc3QgLXogIiRhY19jX3dlcnJvcl9mbGFnIiB8fAotKwkgdGVzdCAhIC1zIGNv bmZ0ZXN0LmVycgotKyAgICAgICB9ICYmIHRlc3QgLXMgY29uZnRlc3QuJGFjX29iamV4dDsgdGhl bgotKyAgYWNfY3ZfaGVhZGVyX3N0ZGM9eWVzCi0rZWxzZQotKyAgJGFzX2VjaG8gIiRhc19tZTog ZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Ci0rc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0 ID4mNQotKwotKwlhY19jdl9oZWFkZXJfc3RkYz1ubwotK2ZpCi0rCi0rcm0gLWYgY29yZSBjb25m dGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0Ci0rCi0raWYgdGVz dCAkYWNfY3ZfaGVhZGVyX3N0ZGMgPSB5ZXM7IHRoZW4KLSsgICMgU3VuT1MgNC54IHN0cmluZy5o IGRvZXMgbm90IGRlY2xhcmUgbWVtKiwgY29udHJhcnkgdG8gQU5TSS4KLSsgIGNhdCA+Y29uZnRl c3QuJGFjX2V4dCA8PF9BQ0VPRgotKy8qIGNvbmZkZWZzLmguICAqLwotK19BQ0VPRgotK2NhdCBj b25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAotK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxf QUNFT0YKLSsvKiBlbmQgY29uZmRlZnMuaC4gICovCi0rI2luY2x1ZGUgPHN0cmluZy5oPgotKwot K19BQ0VPRgotK2lmIChldmFsICIkYWNfY3BwIGNvbmZ0ZXN0LiRhY19leHQiKSAyPiY1IHwKLSsg ICRFR1JFUCAibWVtY2hyIiA+L2Rldi9udWxsIDI+JjE7IHRoZW4KLSsgIDoKLStlbHNlCi0rICBh Y19jdl9oZWFkZXJfc3RkYz1ubwotK2ZpCi0rcm0gLWYgY29uZnRlc3QqCi0rCi0rZmkKLSsKLStp ZiB0ZXN0ICRhY19jdl9oZWFkZXJfc3RkYyA9IHllczsgdGhlbgotKyAgIyBJU0MgMi4wLjIgc3Rk bGliLmggZG9lcyBub3QgZGVjbGFyZSBmcmVlLCBjb250cmFyeSB0byBBTlNJLgotKyAgY2F0ID5j b25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0rLyogY29uZmRlZnMuaC4gICovCi0rX0FDRU9GCi0r Y2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Ci0rY2F0ID4+Y29uZnRlc3QuJGFjX2V4 dCA8PF9BQ0VPRgotKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLSsjaW5jbHVkZSA8c3RkbGliLmg+ Ci0rCi0rX0FDRU9GCi0raWYgKGV2YWwgIiRhY19jcHAgY29uZnRlc3QuJGFjX2V4dCIpIDI+JjUg fAotKyAgJEVHUkVQICJmcmVlIiA+L2Rldi9udWxsIDI+JjE7IHRoZW4KLSsgIDoKLStlbHNlCi0r ICBhY19jdl9oZWFkZXJfc3RkYz1ubwotK2ZpCi0rcm0gLWYgY29uZnRlc3QqCi0rCi0rZmkKLSsK LStpZiB0ZXN0ICRhY19jdl9oZWFkZXJfc3RkYyA9IHllczsgdGhlbgotKyAgIyAvYmluL2NjIGlu IElyaXgtNC4wLjUgZ2V0cyBub24tQU5TSSBjdHlwZSBtYWNyb3MgdW5sZXNzIHVzaW5nIC1hbnNp LgotKyAgaWYgdGVzdCAiJGNyb3NzX2NvbXBpbGluZyIgPSB5ZXM7IHRoZW4KLSsgIDoKLStlbHNl Ci0rICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLSsvKiBjb25mZGVmcy5oLiAgKi8K LStfQUNFT0YKLStjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKLStjYXQgPj5jb25m dGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0rLyogZW5kIGNvbmZkZWZzLmguICAqLwotKyNpbmNsdWRl IDxjdHlwZS5oPgotKyNpbmNsdWRlIDxzdGRsaWIuaD4KLSsjaWYgKCgnICcgJiAweDBGRikgPT0g MHgwMjApCi0rIyBkZWZpbmUgSVNMT1dFUihjKSAoJ2EnIDw9IChjKSAmJiAoYykgPD0gJ3onKQot KyMgZGVmaW5lIFRPVVBQRVIoYykgKElTTE9XRVIoYykgPyAnQScgKyAoKGMpIC0gJ2EnKSA6IChj KSkKLSsjZWxzZQotKyMgZGVmaW5lIElTTE9XRVIoYykgXAotKwkJICAgKCgnYScgPD0gKGMpICYm IChjKSA8PSAnaScpIFwKLSsJCSAgICAgfHwgKCdqJyA8PSAoYykgJiYgKGMpIDw9ICdyJykgXAot KwkJICAgICB8fCAoJ3MnIDw9IChjKSAmJiAoYykgPD0gJ3onKSkKLSsjIGRlZmluZSBUT1VQUEVS KGMpIChJU0xPV0VSKGMpID8gKChjKSB8IDB4NDApIDogKGMpKQotKyNlbmRpZgotKwotKyNkZWZp bmUgWE9SKGUsIGYpICgoKGUpICYmICEoZikpIHx8ICghKGUpICYmIChmKSkpCi0raW50Ci0rbWFp biAoKQotK3sKLSsgIGludCBpOwotKyAgZm9yIChpID0gMDsgaSA8IDI1NjsgaSsrKQotKyAgICBp ZiAoWE9SIChpc2xvd2VyIChpKSwgSVNMT1dFUiAoaSkpCi0rCXx8IHRvdXBwZXIgKGkpICE9IFRP VVBQRVIgKGkpKQotKyAgICAgIHJldHVybiAyOwotKyAgcmV0dXJuIDA7Ci0rfQotK19BQ0VPRgot K3JtIC1mIGNvbmZ0ZXN0JGFjX2V4ZWV4dAotK2lmIHsgKGFjX3RyeT0iJGFjX2xpbmsiCi0rY2Fz ZSAiKCgkYWNfdHJ5IiBpbgotKyAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFj X3RyeTs7Ci0rICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKLStlc2FjCi0rZXZhbCBhY190cnlf ZWNobz0iXCJcJGFzX21lOiRMSU5FTk86ICRhY190cnlfZWNob1wiIgotKyRhc19lY2hvICIkYWNf dHJ5X2VjaG8iKSA+JjUKLSsgIChldmFsICIkYWNfbGluayIpIDI+JjUKLSsgIGFjX3N0YXR1cz0k PwotKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSsg IChleGl0ICRhY19zdGF0dXMpOyB9ICYmIHsgYWNfdHJ5PScuL2NvbmZ0ZXN0JGFjX2V4ZWV4dCcK LSsgIHsgKGNhc2UgIigoJGFjX3RyeSIgaW4KLSsgICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5 X2VjaG89XCRhY190cnk7OwotKyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7Ci0rZXNhYwotK2V2 YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIKLSskYXNf ZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1Ci0rICAoZXZhbCAiJGFjX3RyeSIpIDI+JjUKLSsgIGFj X3N0YXR1cz0kPwotKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVz IiA+JjUKLSsgIChleGl0ICRhY19zdGF0dXMpOyB9OyB9OyB0aGVuCi0rICA6Ci0rZWxzZQotKyAg JGFzX2VjaG8gIiRhc19tZTogcHJvZ3JhbSBleGl0ZWQgd2l0aCBzdGF0dXMgJGFjX3N0YXR1cyIg PiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Ci0rc2VkICdz L14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQotKwotKyggZXhpdCAkYWNfc3RhdHVzICkKLSth Y19jdl9oZWFkZXJfc3RkYz1ubwotK2ZpCi0rcm0gLXJmIGNvbmZ0ZXN0LmRTWU0KLStybSAtZiBj b3JlICouY29yZSBjb3JlLmNvbmZ0ZXN0LiogZ21vbi5vdXQgYmIub3V0IGNvbmZ0ZXN0JGFjX2V4 ZWV4dCBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKLStmaQotKwotKwotK2Zp Ci0rZmkKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3ZfaGVhZGVy X3N0ZGMiID4mNQotKyRhc19lY2hvICIkYWNfY3ZfaGVhZGVyX3N0ZGMiID4mNjsgfQotK2lmIHRl c3QgJGFjX2N2X2hlYWRlcl9zdGRjID0geWVzOyB0aGVuCi0rCi0rY2F0ID4+Y29uZmRlZnMuaCA8 PFxfQUNFT0YKLSsjZGVmaW5lIFNURENfSEVBREVSUyAxCi0rX0FDRU9GCi0rCi0rZmkKLSsKLSsj IE9uIElSSVggNS4zLCBzeXMvdHlwZXMgYW5kIGludHR5cGVzLmggYXJlIGNvbmZsaWN0aW5nLgot KwotKwotKwotKwotKwotKwotKwotKwotKwotK2ZvciBhY19oZWFkZXIgaW4gc3lzL3R5cGVzLmgg c3lzL3N0YXQuaCBzdGRsaWIuaCBzdHJpbmcuaCBtZW1vcnkuaCBzdHJpbmdzLmggXAotKwkJICBp bnR0eXBlcy5oIHN0ZGludC5oIHVuaXN0ZC5oCi0rZG8KLSthc19hY19IZWFkZXI9YCRhc19lY2hv ICJhY19jdl9oZWFkZXJfJGFjX2hlYWRlciIgfCAkYXNfdHJfc2hgCi0reyAkYXNfZWNobyAiJGFz X21lOiRMSU5FTk86IGNoZWNraW5nIGZvciAkYWNfaGVhZGVyIiA+JjUKLSskYXNfZWNob19uICJj aGVja2luZyBmb3IgJGFjX2hlYWRlci4uLiAiID4mNjsgfQotK2lmIHsgYXNfdmFyPSRhc19hY19I ZWFkZXI7IGV2YWwgInRlc3QgXCJcJHskYXNfdmFyK3NldH1cIiA9IHNldCI7IH07IHRoZW4KLSsg ICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci0rZWxzZQotKyAgY2F0ID5jb25mdGVzdC4kYWNf ZXh0IDw8X0FDRU9GCi0rLyogY29uZmRlZnMuaC4gICovCi0rX0FDRU9GCi0rY2F0IGNvbmZkZWZz LmggPj5jb25mdGVzdC4kYWNfZXh0Ci0rY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgot Ky8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLSskYWNfaW5jbHVkZXNfZGVmYXVsdAotKwotKyNpbmNs dWRlIDwkYWNfaGVhZGVyPgotK19BQ0VPRgotK3JtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQKLStp ZiB7IChhY190cnk9IiRhY19jb21waWxlIgotK2Nhc2UgIigoJGFjX3RyeSIgaW4KLSsgICpcIiog fCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OwotKyAgKikgYWNfdHJ5X2VjaG89 JGFjX3RyeTs7Ci0rZXNhYwotK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5POiAk YWNfdHJ5X2VjaG9cIiIKLSskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1Ci0rICAoZXZhbCAi JGFjX2NvbXBpbGUiKSAyPmNvbmZ0ZXN0LmVyMQotKyAgYWNfc3RhdHVzPSQ/Ci0rICBncmVwIC12 ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgotKyAgcm0gLWYgY29uZnRlc3QuZXIx Ci0rICBjYXQgY29uZnRlc3QuZXJyID4mNQotKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBc JD8gPSAkYWNfc3RhdHVzIiA+JjUKLSsgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmIHsKLSsJIHRl c3QgLXogIiRhY19jX3dlcnJvcl9mbGFnIiB8fAotKwkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgot KyAgICAgICB9ICYmIHRlc3QgLXMgY29uZnRlc3QuJGFjX29iamV4dDsgdGhlbgotKyAgZXZhbCAi JGFzX2FjX0hlYWRlcj15ZXMiCi0rZWxzZQotKyAgJGFzX2VjaG8gIiRhc19tZTogZmFpbGVkIHBy b2dyYW0gd2FzOiIgPiY1Ci0rc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQotKwot KwlldmFsICIkYXNfYWNfSGVhZGVyPW5vIgotK2ZpCi0rCi0rcm0gLWYgY29yZSBjb25mdGVzdC5l cnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0Ci0rZmkKLSthY19yZXM9YGV2 YWwgJ2FzX3ZhbD0keyckYXNfYWNfSGVhZGVyJ30KLSsJCSAkYXNfZWNobyAiJGFzX3ZhbCInYAot KwkgICAgICAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX3JlcyIgPiY1 Ci0rJGFzX2VjaG8gIiRhY19yZXMiID4mNjsgfQotK2FzX3ZhbD1gZXZhbCAnYXNfdmFsPSR7JyRh c19hY19IZWFkZXInfQotKwkJICRhc19lY2hvICIkYXNfdmFsIidgCi0rICAgaWYgdGVzdCAieCRh c192YWwiID0geCIieWVzOyB0aGVuCi0rICBjYXQgPj5jb25mZGVmcy5oIDw8X0FDRU9GCi0rI2Rl ZmluZSBgJGFzX2VjaG8gIkhBVkVfJGFjX2hlYWRlciIgfCAkYXNfdHJfY3BwYCAxCi0rX0FDRU9G Ci0rCi0rZmkKLSsKLStkb25lCi0rCi0rCi0rCi0rZm9yIGFjX2hlYWRlciBpbiBkbGZjbi5oCi0r ZG8KLSthc19hY19IZWFkZXI9YCRhc19lY2hvICJhY19jdl9oZWFkZXJfJGFjX2hlYWRlciIgfCAk YXNfdHJfc2hgCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciAkYWNf aGVhZGVyIiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyBmb3IgJGFjX2hlYWRlci4uLiAiID4m NjsgfQotK2lmIHsgYXNfdmFyPSRhc19hY19IZWFkZXI7IGV2YWwgInRlc3QgXCJcJHskYXNfdmFy K3NldH1cIiA9IHNldCI7IH07IHRoZW4KLSsgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci0r ZWxzZQotKyAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0rLyogY29uZmRlZnMuaC4g ICovCi0rX0FDRU9GCi0rY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Ci0rY2F0ID4+ Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLSskYWNf aW5jbHVkZXNfZGVmYXVsdAotKwotKyNpbmNsdWRlIDwkYWNfaGVhZGVyPgotK19BQ0VPRgotK3Jt IC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQKLStpZiB7IChhY190cnk9IiRhY19jb21waWxlIgotK2Nh c2UgIigoJGFjX3RyeSIgaW4KLSsgICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRh Y190cnk7OwotKyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7Ci0rZXNhYwotK2V2YWwgYWNfdHJ5 X2VjaG89IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIKLSskYXNfZWNobyAiJGFj X3RyeV9lY2hvIikgPiY1Ci0rICAoZXZhbCAiJGFjX2NvbXBpbGUiKSAyPmNvbmZ0ZXN0LmVyMQot KyAgYWNfc3RhdHVzPSQ/Ci0rICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0 LmVycgotKyAgcm0gLWYgY29uZnRlc3QuZXIxCi0rICBjYXQgY29uZnRlc3QuZXJyID4mNQotKyAg JGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSsgIChleGl0 ICRhY19zdGF0dXMpOyB9ICYmIHsKLSsJIHRlc3QgLXogIiRhY19jX3dlcnJvcl9mbGFnIiB8fAot KwkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgotKyAgICAgICB9ICYmIHRlc3QgLXMgY29uZnRlc3Qu JGFjX29iamV4dDsgdGhlbgotKyAgZXZhbCAiJGFzX2FjX0hlYWRlcj15ZXMiCi0rZWxzZQotKyAg JGFzX2VjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Ci0rc2VkICdzL14vfCAv JyBjb25mdGVzdC4kYWNfZXh0ID4mNQotKwotKwlldmFsICIkYXNfYWNfSGVhZGVyPW5vIgotK2Zp Ci0rCi0rcm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVz dC4kYWNfZXh0Ci0rZmkKLSthY19yZXM9YGV2YWwgJ2FzX3ZhbD0keyckYXNfYWNfSGVhZGVyJ30K LSsJCSAkYXNfZWNobyAiJGFzX3ZhbCInYAotKwkgICAgICAgeyAkYXNfZWNobyAiJGFzX21lOiRM SU5FTk86IHJlc3VsdDogJGFjX3JlcyIgPiY1Ci0rJGFzX2VjaG8gIiRhY19yZXMiID4mNjsgfQot K2FzX3ZhbD1gZXZhbCAnYXNfdmFsPSR7JyRhc19hY19IZWFkZXInfQotKwkJICRhc19lY2hvICIk YXNfdmFsIidgCi0rICAgaWYgdGVzdCAieCRhc192YWwiID0geCIieWVzOyB0aGVuCi0rICBjYXQg Pj5jb25mZGVmcy5oIDw8X0FDRU9GCi0rI2RlZmluZSBgJGFzX2VjaG8gIkhBVkVfJGFjX2hlYWRl ciIgfCAkYXNfdHJfY3BwYCAxCi0rX0FDRU9GCi0rCi0rZmkKLSsKLStkb25lCi0rCi0rCi0rCi0r YWNfZXh0PWNwcAotK2FjX2NwcD0nJENYWENQUCAkQ1BQRkxBR1MnCi0rYWNfY29tcGlsZT0nJENY WCAtYyAkQ1hYRkxBR1MgJENQUEZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgPiY1JwotK2FjX2xpbms9 JyRDWFggLW8gY29uZnRlc3QkYWNfZXhlZXh0ICRDWFhGTEFHUyAkQ1BQRkxBR1MgJExERkxBR1Mg Y29uZnRlc3QuJGFjX2V4dCAkTElCUyA+JjUnCi0rYWNfY29tcGlsZXJfZ251PSRhY19jdl9jeHhf Y29tcGlsZXJfZ251Ci0raWYgdGVzdCAteiAiJENYWCI7IHRoZW4KLSsgIGlmIHRlc3QgLW4gIiRD Q0MiOyB0aGVuCi0rICAgIENYWD0kQ0NDCi0rICBlbHNlCi0rICAgIGlmIHRlc3QgLW4gIiRhY190 b29sX3ByZWZpeCI7IHRoZW4KLSsgIGZvciBhY19wcm9nIGluIGcrKyBjKysgZ3BwIGFDQyBDQyBj eHggY2MrKyBjbC5leGUgRkNDIEtDQyBSQ0MgeGxDX3IgeGxDCi0rICBkbwotKyAgICAjIEV4dHJh Y3QgdGhlIGZpcnN0IHdvcmQgb2YgIiRhY190b29sX3ByZWZpeCRhY19wcm9nIiwgc28gaXQgY2Fu IGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJncy4KLStzZXQgZHVtbXkgJGFjX3Rvb2xfcHJlZml4 JGFjX3Byb2c7IGFjX3dvcmQ9JDIKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tp bmcgZm9yICRhY193b3JkIiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyBmb3IgJGFjX3dvcmQu Li4gIiA+JjY7IH0KLStpZiB0ZXN0ICIke2FjX2N2X3Byb2dfQ1hYK3NldH0iID0gc2V0OyB0aGVu Ci0rICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsgIGlmIHRlc3QgLW4gIiRD WFgiOyB0aGVuCi0rICBhY19jdl9wcm9nX0NYWD0iJENYWCIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJp ZGUgdGhlIHRlc3QuCi0rZWxzZQotK2FzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFU T1IKLStmb3IgYXNfZGlyIGluICRQQVRICi0rZG8KLSsgIElGUz0kYXNfc2F2ZV9JRlMKLSsgIHRl c3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCi0rICBmb3IgYWNfZXhlY19leHQgaW4gJycgJGFj X2V4ZWN1dGFibGVfZXh0ZW5zaW9uczsgZG8KLSsgIGlmIHsgdGVzdCAtZiAiJGFzX2Rpci8kYWNf d29yZCRhY19leGVjX2V4dCIgJiYgJGFzX3Rlc3RfeCAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVj X2V4dCI7IH07IHRoZW4KLSsgICAgYWNfY3ZfcHJvZ19DWFg9IiRhY190b29sX3ByZWZpeCRhY19w cm9nIgotKyAgICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGZvdW5kICRhc19kaXIvJGFjX3dv cmQkYWNfZXhlY19leHQiID4mNQotKyAgICBicmVhayAyCi0rICBmaQotK2RvbmUKLStkb25lCi0r SUZTPSRhc19zYXZlX0lGUwotKwotK2ZpCi0rZmkKLStDWFg9JGFjX2N2X3Byb2dfQ1hYCi0raWYg dGVzdCAtbiAiJENYWCI7IHRoZW4KLSsgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1 bHQ6ICRDWFgiID4mNQotKyRhc19lY2hvICIkQ1hYIiA+JjY7IH0KLStlbHNlCi0rICB7ICRhc19l Y2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiBubyIgPiY1Ci0rJGFzX2VjaG8gIm5vIiA+JjY7 IH0KLStmaQotKwotKwotKyAgICB0ZXN0IC1uICIkQ1hYIiAmJiBicmVhawotKyAgZG9uZQotK2Zp Ci0raWYgdGVzdCAteiAiJENYWCI7IHRoZW4KLSsgIGFjX2N0X0NYWD0kQ1hYCi0rICBmb3IgYWNf cHJvZyBpbiBnKysgYysrIGdwcCBhQ0MgQ0MgY3h4IGNjKysgY2wuZXhlIEZDQyBLQ0MgUkNDIHhs Q19yIHhsQwotK2RvCi0rICAjIEV4dHJhY3QgdGhlIGZpcnN0IHdvcmQgb2YgIiRhY19wcm9nIiwg c28gaXQgY2FuIGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJncy4KLStzZXQgZHVtbXkgJGFjX3By b2c7IGFjX3dvcmQ9JDIKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9y ICRhY193b3JkIiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyBmb3IgJGFjX3dvcmQuLi4gIiA+ JjY7IH0KLStpZiB0ZXN0ICIke2FjX2N2X3Byb2dfYWNfY3RfQ1hYK3NldH0iID0gc2V0OyB0aGVu Ci0rICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsgIGlmIHRlc3QgLW4gIiRh Y19jdF9DWFgiOyB0aGVuCi0rICBhY19jdl9wcm9nX2FjX2N0X0NYWD0iJGFjX2N0X0NYWCIgIyBM ZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3QuCi0rZWxzZQotK2FzX3NhdmVfSUZTPSRJRlM7 IElGUz0kUEFUSF9TRVBBUkFUT1IKLStmb3IgYXNfZGlyIGluICRQQVRICi0rZG8KLSsgIElGUz0k YXNfc2F2ZV9JRlMKLSsgIHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCi0rICBmb3IgYWNf ZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1dGFibGVfZXh0ZW5zaW9uczsgZG8KLSsgIGlmIHsgdGVz dCAtZiAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgJiYgJGFzX3Rlc3RfeCAiJGFzX2Rp ci8kYWNfd29yZCRhY19leGVjX2V4dCI7IH07IHRoZW4KLSsgICAgYWNfY3ZfcHJvZ19hY19jdF9D WFg9IiRhY19wcm9nIgotKyAgICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGZvdW5kICRhc19k aXIvJGFjX3dvcmQkYWNfZXhlY19leHQiID4mNQotKyAgICBicmVhayAyCi0rICBmaQotK2RvbmUK LStkb25lCi0rSUZTPSRhc19zYXZlX0lGUwotKwotK2ZpCi0rZmkKLSthY19jdF9DWFg9JGFjX2N2 X3Byb2dfYWNfY3RfQ1hYCi0raWYgdGVzdCAtbiAiJGFjX2N0X0NYWCI7IHRoZW4KLSsgIHsgJGFz X2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19jdF9DWFgiID4mNQotKyRhc19lY2hv ICIkYWNfY3RfQ1hYIiA+JjY7IH0KLStlbHNlCi0rICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVO TzogcmVzdWx0OiBubyIgPiY1Ci0rJGFzX2VjaG8gIm5vIiA+JjY7IH0KLStmaQotKwotKwotKyAg dGVzdCAtbiAiJGFjX2N0X0NYWCIgJiYgYnJlYWsKLStkb25lCi0rCi0rICBpZiB0ZXN0ICJ4JGFj X2N0X0NYWCIgPSB4OyB0aGVuCi0rICAgIENYWD0iZysrIgotKyAgZWxzZQotKyAgICBjYXNlICRj cm9zc19jb21waWxpbmc6JGFjX3Rvb2xfd2FybmVkIGluCi0reWVzOikKLSt7ICRhc19lY2hvICIk YXNfbWU6JExJTkVOTzogV0FSTklORzogdXNpbmcgY3Jvc3MgdG9vbHMgbm90IHByZWZpeGVkIHdp dGggaG9zdCB0cmlwbGV0IiA+JjUKLSskYXNfZWNobyAiJGFzX21lOiBXQVJOSU5HOiB1c2luZyBj cm9zcyB0b29scyBub3QgcHJlZml4ZWQgd2l0aCBob3N0IHRyaXBsZXQiID4mMjt9Ci0rYWNfdG9v bF93YXJuZWQ9eWVzIDs7Ci0rZXNhYwotKyAgICBDWFg9JGFjX2N0X0NYWAotKyAgZmkKLStmaQot KwotKyAgZmkKLStmaQotKyMgUHJvdmlkZSBzb21lIGluZm9ybWF0aW9uIGFib3V0IHRoZSBjb21w aWxlci4KLSskYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciBDKysgY29tcGls ZXIgdmVyc2lvbiIgPiY1Ci0rc2V0IFggJGFjX2NvbXBpbGUKLSthY19jb21waWxlcj0kMgotK3sg KGFjX3RyeT0iJGFjX2NvbXBpbGVyIC0tdmVyc2lvbiA+JjUiCi0rY2FzZSAiKCgkYWNfdHJ5IiBp bgotKyAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7Ci0rICAqKSBh Y190cnlfZWNobz0kYWNfdHJ5OzsKLStlc2FjCi0rZXZhbCBhY190cnlfZWNobz0iXCJcJGFzX21l OiRMSU5FTk86ICRhY190cnlfZWNob1wiIgotKyRhc19lY2hvICIkYWNfdHJ5X2VjaG8iKSA+JjUK LSsgIChldmFsICIkYWNfY29tcGlsZXIgLS12ZXJzaW9uID4mNSIpIDI+JjUKLSsgIGFjX3N0YXR1 cz0kPwotKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUK LSsgIChleGl0ICRhY19zdGF0dXMpOyB9Ci0reyAoYWNfdHJ5PSIkYWNfY29tcGlsZXIgLXYgPiY1 IgotK2Nhc2UgIigoJGFjX3RyeSIgaW4KLSsgICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2Vj aG89XCRhY190cnk7OwotKyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7Ci0rZXNhYwotK2V2YWwg YWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIKLSskYXNfZWNo byAiJGFjX3RyeV9lY2hvIikgPiY1Ci0rICAoZXZhbCAiJGFjX2NvbXBpbGVyIC12ID4mNSIpIDI+ JjUKLSsgIGFjX3N0YXR1cz0kPwotKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAk YWNfc3RhdHVzIiA+JjUKLSsgIChleGl0ICRhY19zdGF0dXMpOyB9Ci0reyAoYWNfdHJ5PSIkYWNf Y29tcGlsZXIgLVYgPiY1IgotK2Nhc2UgIigoJGFjX3RyeSIgaW4KLSsgICpcIiogfCAqXGAqIHwg KlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OwotKyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7 Ci0rZXNhYwotK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5X2Vj aG9cIiIKLSskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1Ci0rICAoZXZhbCAiJGFjX2NvbXBp bGVyIC1WID4mNSIpIDI+JjUKLSsgIGFjX3N0YXR1cz0kPwotKyAgJGFzX2VjaG8gIiRhc19tZTok TElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSsgIChleGl0ICRhY19zdGF0dXMpOyB9Ci0r Ci0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIHdoZXRoZXIgd2UgYXJlIHVz aW5nIHRoZSBHTlUgQysrIGNvbXBpbGVyIiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyB3aGV0 aGVyIHdlIGFyZSB1c2luZyB0aGUgR05VIEMrKyBjb21waWxlci4uLiAiID4mNjsgfQotK2lmIHRl c3QgIiR7YWNfY3ZfY3h4X2NvbXBpbGVyX2dudStzZXR9IiA9IHNldDsgdGhlbgotKyAgJGFzX2Vj aG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxf QUNFT0YKLSsvKiBjb25mZGVmcy5oLiAgKi8KLStfQUNFT0YKLStjYXQgY29uZmRlZnMuaCA+PmNv bmZ0ZXN0LiRhY19leHQKLStjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0rLyogZW5k IGNvbmZkZWZzLmguICAqLwotKwotK2ludAotK21haW4gKCkKLSt7Ci0rI2lmbmRlZiBfX0dOVUNf XwotKyAgICAgICBjaG9rZSBtZQotKyNlbmRpZgotKwotKyAgOwotKyAgcmV0dXJuIDA7Ci0rfQot K19BQ0VPRgotK3JtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQKLStpZiB7IChhY190cnk9IiRhY19j b21waWxlIgotK2Nhc2UgIigoJGFjX3RyeSIgaW4KLSsgICpcIiogfCAqXGAqIHwgKlxcKikgYWNf dHJ5X2VjaG89XCRhY190cnk7OwotKyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7Ci0rZXNhYwot K2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIKLSsk YXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1Ci0rICAoZXZhbCAiJGFjX2NvbXBpbGUiKSAyPmNv bmZ0ZXN0LmVyMQotKyAgYWNfc3RhdHVzPSQ/Ci0rICBncmVwIC12ICdeICorJyBjb25mdGVzdC5l cjEgPmNvbmZ0ZXN0LmVycgotKyAgcm0gLWYgY29uZnRlc3QuZXIxCi0rICBjYXQgY29uZnRlc3Qu ZXJyID4mNQotKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+ JjUKLSsgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmIHsKLSsJIHRlc3QgLXogIiRhY19jeHhfd2Vy cm9yX2ZsYWciIHx8Ci0rCSB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCi0rICAgICAgIH0gJiYgdGVz dCAtcyBjb25mdGVzdC4kYWNfb2JqZXh0OyB0aGVuCi0rICBhY19jb21waWxlcl9nbnU9eWVzCi0r ZWxzZQotKyAgJGFzX2VjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Ci0rc2Vk ICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQotKwotKwlhY19jb21waWxlcl9nbnU9bm8K LStmaQotKwotK3JtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29u ZnRlc3QuJGFjX2V4dAotK2FjX2N2X2N4eF9jb21waWxlcl9nbnU9JGFjX2NvbXBpbGVyX2dudQot KwotK2ZpCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2N2X2N4eF9j b21waWxlcl9nbnUiID4mNQotKyRhc19lY2hvICIkYWNfY3ZfY3h4X2NvbXBpbGVyX2dudSIgPiY2 OyB9Ci0raWYgdGVzdCAkYWNfY29tcGlsZXJfZ251ID0geWVzOyB0aGVuCi0rICBHWFg9eWVzCi0r ZWxzZQotKyAgR1hYPQotK2ZpCi0rYWNfdGVzdF9DWFhGTEFHUz0ke0NYWEZMQUdTK3NldH0KLSth Y19zYXZlX0NYWEZMQUdTPSRDWFhGTEFHUwotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBj aGVja2luZyB3aGV0aGVyICRDWFggYWNjZXB0cyAtZyIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tp bmcgd2hldGhlciAkQ1hYIGFjY2VwdHMgLWcuLi4gIiA+JjY7IH0KLStpZiB0ZXN0ICIke2FjX2N2 X3Byb2dfY3h4X2crc2V0fSIgPSBzZXQ7IHRoZW4KLSsgICRhc19lY2hvX24gIihjYWNoZWQpICIg PiY2Ci0rZWxzZQotKyAgYWNfc2F2ZV9jeHhfd2Vycm9yX2ZsYWc9JGFjX2N4eF93ZXJyb3JfZmxh ZwotKyAgIGFjX2N4eF93ZXJyb3JfZmxhZz15ZXMKLSsgICBhY19jdl9wcm9nX2N4eF9nPW5vCi0r ICAgQ1hYRkxBR1M9Ii1nIgotKyAgIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotKy8q IGNvbmZkZWZzLmguICAqLwotK19BQ0VPRgotK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFj X2V4dAotK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLSsvKiBlbmQgY29uZmRlZnMu aC4gICovCi0rCi0raW50Ci0rbWFpbiAoKQotK3sKLSsKLSsgIDsKLSsgIHJldHVybiAwOwotK30K LStfQUNFT0YKLStybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0Ci0raWYgeyAoYWNfdHJ5PSIkYWNf Y29tcGlsZSIKLStjYXNlICIoKCRhY190cnkiIGluCi0rICAqXCIqIHwgKlxgKiB8ICpcXCopIGFj X3RyeV9lY2hvPVwkYWNfdHJ5OzsKLSsgICopIGFjX3RyeV9lY2hvPSRhY190cnk7OwotK2VzYWMK LStldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCi0r JGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4mNQotKyAgKGV2YWwgIiRhY19jb21waWxlIikgMj5j b25mdGVzdC5lcjEKLSsgIGFjX3N0YXR1cz0kPwotKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3Qu ZXIxID5jb25mdGVzdC5lcnIKLSsgIHJtIC1mIGNvbmZ0ZXN0LmVyMQotKyAgY2F0IGNvbmZ0ZXN0 LmVyciA+JjUKLSsgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIg PiY1Ci0rICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJiB7Ci0rCSB0ZXN0IC16ICIkYWNfY3h4X3dl cnJvcl9mbGFnIiB8fAotKwkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgotKyAgICAgICB9ICYmIHRl c3QgLXMgY29uZnRlc3QuJGFjX29iamV4dDsgdGhlbgotKyAgYWNfY3ZfcHJvZ19jeHhfZz15ZXMK LStlbHNlCi0rICAkYXNfZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLStz ZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1Ci0rCi0rCUNYWEZMQUdTPSIiCi0rICAg ICAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0rLyogY29uZmRlZnMuaC4gICovCi0r X0FDRU9GCi0rY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Ci0rY2F0ID4+Y29uZnRl c3QuJGFjX2V4dCA8PF9BQ0VPRgotKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLSsKLStpbnQKLStt YWluICgpCi0rewotKwotKyAgOwotKyAgcmV0dXJuIDA7Ci0rfQotK19BQ0VPRgotK3JtIC1mIGNv bmZ0ZXN0LiRhY19vYmpleHQKLStpZiB7IChhY190cnk9IiRhY19jb21waWxlIgotK2Nhc2UgIigo JGFjX3RyeSIgaW4KLSsgICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7 OwotKyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7Ci0rZXNhYwotK2V2YWwgYWNfdHJ5X2VjaG89 IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIKLSskYXNfZWNobyAiJGFjX3RyeV9l Y2hvIikgPiY1Ci0rICAoZXZhbCAiJGFjX2NvbXBpbGUiKSAyPmNvbmZ0ZXN0LmVyMQotKyAgYWNf c3RhdHVzPSQ/Ci0rICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgot KyAgcm0gLWYgY29uZnRlc3QuZXIxCi0rICBjYXQgY29uZnRlc3QuZXJyID4mNQotKyAgJGFzX2Vj aG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSsgIChleGl0ICRhY19z dGF0dXMpOyB9ICYmIHsKLSsJIHRlc3QgLXogIiRhY19jeHhfd2Vycm9yX2ZsYWciIHx8Ci0rCSB0 ZXN0ICEgLXMgY29uZnRlc3QuZXJyCi0rICAgICAgIH0gJiYgdGVzdCAtcyBjb25mdGVzdC4kYWNf b2JqZXh0OyB0aGVuCi0rICA6Ci0rZWxzZQotKyAgJGFzX2VjaG8gIiRhc19tZTogZmFpbGVkIHBy b2dyYW0gd2FzOiIgPiY1Ci0rc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQotKwot KwlhY19jeHhfd2Vycm9yX2ZsYWc9JGFjX3NhdmVfY3h4X3dlcnJvcl9mbGFnCi0rCSBDWFhGTEFH Uz0iLWciCi0rCSBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLSsvKiBjb25mZGVmcy5o LiAgKi8KLStfQUNFT0YKLStjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKLStjYXQg Pj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0rLyogZW5kIGNvbmZkZWZzLmguICAqLwotKwot K2ludAotK21haW4gKCkKLSt7Ci0rCi0rICA7Ci0rICByZXR1cm4gMDsKLSt9Ci0rX0FDRU9GCi0r cm0gLWYgY29uZnRlc3QuJGFjX29iamV4dAotK2lmIHsgKGFjX3RyeT0iJGFjX2NvbXBpbGUiCi0r Y2FzZSAiKCgkYWNfdHJ5IiBpbgotKyAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1c JGFjX3RyeTs7Ci0rICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKLStlc2FjCi0rZXZhbCBhY190 cnlfZWNobz0iXCJcJGFzX21lOiRMSU5FTk86ICRhY190cnlfZWNob1wiIgotKyRhc19lY2hvICIk YWNfdHJ5X2VjaG8iKSA+JjUKLSsgIChldmFsICIkYWNfY29tcGlsZSIpIDI+Y29uZnRlc3QuZXIx Ci0rICBhY19zdGF0dXM9JD8KLSsgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRl c3QuZXJyCi0rICBybSAtZiBjb25mdGVzdC5lcjEKLSsgIGNhdCBjb25mdGVzdC5lcnIgPiY1Ci0r ICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotKyAgKGV4 aXQgJGFjX3N0YXR1cyk7IH0gJiYgewotKwkgdGVzdCAteiAiJGFjX2N4eF93ZXJyb3JfZmxhZyIg fHwKLSsJIHRlc3QgISAtcyBjb25mdGVzdC5lcnIKLSsgICAgICAgfSAmJiB0ZXN0IC1zIGNvbmZ0 ZXN0LiRhY19vYmpleHQ7IHRoZW4KLSsgIGFjX2N2X3Byb2dfY3h4X2c9eWVzCi0rZWxzZQotKyAg JGFzX2VjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Ci0rc2VkICdzL14vfCAv JyBjb25mdGVzdC4kYWNfZXh0ID4mNQotKwotKwotK2ZpCi0rCi0rcm0gLWYgY29yZSBjb25mdGVz dC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0Ci0rZmkKLSsKLStybSAt ZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQK LStmaQotKwotK3JtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29u ZnRlc3QuJGFjX2V4dAotKyAgIGFjX2N4eF93ZXJyb3JfZmxhZz0kYWNfc2F2ZV9jeHhfd2Vycm9y X2ZsYWcKLStmaQotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19jdl9w cm9nX2N4eF9nIiA+JjUKLSskYXNfZWNobyAiJGFjX2N2X3Byb2dfY3h4X2ciID4mNjsgfQotK2lm IHRlc3QgIiRhY190ZXN0X0NYWEZMQUdTIiA9IHNldDsgdGhlbgotKyAgQ1hYRkxBR1M9JGFjX3Nh dmVfQ1hYRkxBR1MKLStlbGlmIHRlc3QgJGFjX2N2X3Byb2dfY3h4X2cgPSB5ZXM7IHRoZW4KLSsg IGlmIHRlc3QgIiRHWFgiID0geWVzOyB0aGVuCi0rICAgIENYWEZMQUdTPSItZyAtTzIiCi0rICBl bHNlCi0rICAgIENYWEZMQUdTPSItZyIKLSsgIGZpCi0rZWxzZQotKyAgaWYgdGVzdCAiJEdYWCIg PSB5ZXM7IHRoZW4KLSsgICAgQ1hYRkxBR1M9Ii1PMiIKLSsgIGVsc2UKLSsgICAgQ1hYRkxBR1M9 Ci0rICBmaQotK2ZpCi0rYWNfZXh0PWMKLSthY19jcHA9JyRDUFAgJENQUEZMQUdTJwotK2FjX2Nv bXBpbGU9JyRDQyAtYyAkQ0ZMQUdTICRDUFBGTEFHUyBjb25mdGVzdC4kYWNfZXh0ID4mNScKLSth Y19saW5rPSckQ0MgLW8gY29uZnRlc3QkYWNfZXhlZXh0ICRDRkxBR1MgJENQUEZMQUdTICRMREZM QUdTIGNvbmZ0ZXN0LiRhY19leHQgJExJQlMgPiY1JwotK2FjX2NvbXBpbGVyX2dudT0kYWNfY3Zf Y19jb21waWxlcl9nbnUKLSsKLStkZXBjYz0iJENYWCIgIGFtX2NvbXBpbGVyX2xpc3Q9Ci0rCi0r eyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGRlcGVuZGVuY3kgc3R5bGUgb2Yg JGRlcGNjIiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyBkZXBlbmRlbmN5IHN0eWxlIG9mICRk ZXBjYy4uLiAiID4mNjsgfQotK2lmIHRlc3QgIiR7YW1fY3ZfQ1hYX2RlcGVuZGVuY2llc19jb21w aWxlcl90eXBlK3NldH0iID0gc2V0OyB0aGVuCi0rICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4m NgotK2Vsc2UKLSsgIGlmIHRlc3QgLXogIiRBTURFUF9UUlVFIiAmJiB0ZXN0IC1mICIkYW1fZGVw Y29tcCI7IHRoZW4KLSsgICMgV2UgbWFrZSBhIHN1YmRpciBhbmQgZG8gdGhlIHRlc3RzIHRoZXJl LiAgT3RoZXJ3aXNlIHdlIGNhbiBlbmQgdXAKLSsgICMgbWFraW5nIGJvZ3VzIGZpbGVzIHRoYXQg d2UgZG9uJ3Qga25vdyBhYm91dCBhbmQgbmV2ZXIgcmVtb3ZlLiAgRm9yCi0rICAjIGluc3RhbmNl IGl0IHdhcyByZXBvcnRlZCB0aGF0IG9uIEhQLVVYIHRoZSBnY2MgdGVzdCB3aWxsIGVuZCB1cAot KyAgIyBtYWtpbmcgYSBkdW1teSBmaWxlIG5hbWVkIGBEJyAtLSBiZWNhdXNlIGAtTUQnIG1lYW5z IGBwdXQgdGhlIG91dHB1dAotKyAgIyBpbiBEJy4KLSsgIG1rZGlyIGNvbmZ0ZXN0LmRpcgotKyAg IyBDb3B5IGRlcGNvbXAgdG8gc3ViZGlyIGJlY2F1c2Ugb3RoZXJ3aXNlIHdlIHdvbid0IGZpbmQg aXQgaWYgd2UncmUKLSsgICMgdXNpbmcgYSByZWxhdGl2ZSBkaXJlY3RvcnkuCi0rICBjcCAiJGFt X2RlcGNvbXAiIGNvbmZ0ZXN0LmRpcgotKyAgY2QgY29uZnRlc3QuZGlyCi0rICAjIFdlIHdpbGwg YnVpbGQgb2JqZWN0cyBhbmQgZGVwZW5kZW5jaWVzIGluIGEgc3ViZGlyZWN0b3J5IGJlY2F1c2UK LSsgICMgaXQgaGVscHMgdG8gZGV0ZWN0IGluYXBwbGljYWJsZSBkZXBlbmRlbmN5IG1vZGVzLiAg Rm9yIGluc3RhbmNlCi0rICAjIGJvdGggVHJ1NjQncyBjYyBhbmQgSUNDIHN1cHBvcnQgLU1EIHRv IG91dHB1dCBkZXBlbmRlbmNpZXMgYXMgYQotKyAgIyBzaWRlIGVmZmVjdCBvZiBjb21waWxhdGlv biwgYnV0IElDQyB3aWxsIHB1dCB0aGUgZGVwZW5kZW5jaWVzIGluCi0rICAjIHRoZSBjdXJyZW50 IGRpcmVjdG9yeSB3aGlsZSBUcnU2NCB3aWxsIHB1dCB0aGVtIGluIHRoZSBvYmplY3QKLSsgICMg ZGlyZWN0b3J5LgotKyAgbWtkaXIgc3ViCi0rCi0rICBhbV9jdl9DWFhfZGVwZW5kZW5jaWVzX2Nv bXBpbGVyX3R5cGU9bm9uZQotKyAgaWYgdGVzdCAiJGFtX2NvbXBpbGVyX2xpc3QiID0gIiI7IHRo ZW4KLSsgICAgIGFtX2NvbXBpbGVyX2xpc3Q9YHNlZCAtbiAncy9eIypcKFthLXpBLVowLTldKlwp KSQvXDEvcCcgPCAuL2RlcGNvbXBgCi0rICBmaQotKyAgZm9yIGRlcG1vZGUgaW4gJGFtX2NvbXBp bGVyX2xpc3Q7IGRvCi0rICAgICMgU2V0dXAgYSBzb3VyY2Ugd2l0aCBtYW55IGRlcGVuZGVuY2ll cywgYmVjYXVzZSBzb21lIGNvbXBpbGVycwotKyAgICAjIGxpa2UgdG8gd3JhcCBsYXJnZSBkZXBl bmRlbmN5IGxpc3RzIG9uIGNvbHVtbiA4MCAod2l0aCBcKSwgYW5kCi0rICAgICMgd2Ugc2hvdWxk IG5vdCBjaG9vc2UgYSBkZXBjb21wIG1vZGUgd2hpY2ggaXMgY29uZnVzZWQgYnkgdGhpcy4KLSsg ICAgIwotKyAgICAjIFdlIG5lZWQgdG8gcmVjcmVhdGUgdGhlc2UgZmlsZXMgZm9yIGVhY2ggdGVz dCwgYXMgdGhlIGNvbXBpbGVyIG1heQotKyAgICAjIG92ZXJ3cml0ZSBzb21lIG9mIHRoZW0gd2hl biB0ZXN0aW5nIHdpdGggb2JzY3VyZSBjb21tYW5kIGxpbmVzLgotKyAgICAjIFRoaXMgaGFwcGVu cyBhdCBsZWFzdCB3aXRoIHRoZSBBSVggQyBjb21waWxlci4KLSsgICAgOiA+IHN1Yi9jb25mdGVz dC5jCi0rICAgIGZvciBpIGluIDEgMiAzIDQgNSA2OyBkbwotKyAgICAgIGVjaG8gJyNpbmNsdWRl ICJjb25mdHN0JyRpJy5oIicgPj4gc3ViL2NvbmZ0ZXN0LmMKLSsgICAgICAjIFVzaW5nIGA6ID4g c3ViL2NvbmZ0c3QkaS5oJyBjcmVhdGVzIG9ubHkgc3ViL2NvbmZ0c3QxLmggd2l0aAotKyAgICAg ICMgU29sYXJpcyA4J3Mgey91c3IsfS9iaW4vc2guCi0rICAgICAgdG91Y2ggc3ViL2NvbmZ0c3Qk aS5oCi0rICAgIGRvbmUKLSsgICAgZWNobyAiJHthbV9faW5jbHVkZX0gJHthbV9fcXVvdGV9c3Vi L2NvbmZ0ZXN0LlBvJHthbV9fcXVvdGV9IiA+IGNvbmZtZgotKwotKyAgICBjYXNlICRkZXBtb2Rl IGluCi0rICAgIG5vc2lkZWVmZmVjdCkKLSsgICAgICAjIGFmdGVyIHRoaXMgdGFnLCBtZWNoYW5p c21zIGFyZSBub3QgYnkgc2lkZS1lZmZlY3QsIHNvIHRoZXknbGwKLSsgICAgICAjIG9ubHkgYmUg dXNlZCB3aGVuIGV4cGxpY2l0bHkgcmVxdWVzdGVkCi0rICAgICAgaWYgdGVzdCAieCRlbmFibGVf ZGVwZW5kZW5jeV90cmFja2luZyIgPSB4eWVzOyB0aGVuCi0rCWNvbnRpbnVlCi0rICAgICAgZWxz ZQotKwlicmVhawotKyAgICAgIGZpCi0rICAgICAgOzsKLSsgICAgbm9uZSkgYnJlYWsgOzsKLSsg ICAgZXNhYwotKyAgICAjIFdlIGNoZWNrIHdpdGggYC1jJyBhbmQgYC1vJyBmb3IgdGhlIHNha2Ug b2YgdGhlICJkYXNobXN0ZG91dCIKLSsgICAgIyBtb2RlLiAgSXQgdHVybnMgb3V0IHRoYXQgdGhl IFN1blBybyBDKysgY29tcGlsZXIgZG9lcyBub3QgcHJvcGVybHkKLSsgICAgIyBoYW5kbGUgYC1N IC1vJywgYW5kIHdlIG5lZWQgdG8gZGV0ZWN0IHRoaXMuCi0rICAgIGlmIGRlcG1vZGU9JGRlcG1v ZGUgXAotKyAgICAgICBzb3VyY2U9c3ViL2NvbmZ0ZXN0LmMgb2JqZWN0PXN1Yi9jb25mdGVzdC4k e09CSkVYVC1vfSBcCi0rICAgICAgIGRlcGZpbGU9c3ViL2NvbmZ0ZXN0LlBvIHRtcGRlcGZpbGU9 c3ViL2NvbmZ0ZXN0LlRQbyBcCi0rICAgICAgICRTSEVMTCAuL2RlcGNvbXAgJGRlcGNjIC1jIC1v IHN1Yi9jb25mdGVzdC4ke09CSkVYVC1vfSBzdWIvY29uZnRlc3QuYyBcCi0rICAgICAgICAgPi9k ZXYvbnVsbCAyPmNvbmZ0ZXN0LmVyciAmJgotKyAgICAgICBncmVwIHN1Yi9jb25mdHN0MS5oIHN1 Yi9jb25mdGVzdC5QbyA+IC9kZXYvbnVsbCAyPiYxICYmCi0rICAgICAgIGdyZXAgc3ViL2NvbmZ0 c3Q2Lmggc3ViL2NvbmZ0ZXN0LlBvID4gL2Rldi9udWxsIDI+JjEgJiYKLSsgICAgICAgZ3JlcCBz dWIvY29uZnRlc3QuJHtPQkpFWFQtb30gc3ViL2NvbmZ0ZXN0LlBvID4gL2Rldi9udWxsIDI+JjEg JiYKLSsgICAgICAgJHtNQUtFLW1ha2V9IC1zIC1mIGNvbmZtZiA+IC9kZXYvbnVsbCAyPiYxOyB0 aGVuCi0rICAgICAgIyBpY2MgZG9lc24ndCBjaG9rZSBvbiB1bmtub3duIG9wdGlvbnMsIGl0IHdp bGwganVzdCBpc3N1ZSB3YXJuaW5ncwotKyAgICAgICMgb3IgcmVtYXJrcyAoZXZlbiB3aXRoIC1X ZXJyb3IpLiAgU28gd2UgZ3JlcCBzdGRlcnIgZm9yIGFueSBtZXNzYWdlCi0rICAgICAgIyB0aGF0 IHNheXMgYW4gb3B0aW9uIHdhcyBpZ25vcmVkIG9yIG5vdCBzdXBwb3J0ZWQuCi0rICAgICAgIyBX aGVuIGdpdmVuIC1NUCwgaWNjIDcuMCBhbmQgNy4xIGNvbXBsYWluIHRodXNseToKLSsgICAgICAj ICAgaWNjOiBDb21tYW5kIGxpbmUgd2FybmluZzogaWdub3Jpbmcgb3B0aW9uICctTSc7IG5vIGFy Z3VtZW50IHJlcXVpcmVkCi0rICAgICAgIyBUaGUgZGlhZ25vc2lzIGNoYW5nZWQgaW4gaWNjIDgu MDoKLSsgICAgICAjICAgaWNjOiBDb21tYW5kIGxpbmUgcmVtYXJrOiBvcHRpb24gJy1NUCcgbm90 IHN1cHBvcnRlZAotKyAgICAgIGlmIChncmVwICdpZ25vcmluZyBvcHRpb24nIGNvbmZ0ZXN0LmVy ciB8fAotKyAgICAgICAgICBncmVwICdub3Qgc3VwcG9ydGVkJyBjb25mdGVzdC5lcnIpID4vZGV2 L251bGwgMj4mMTsgdGhlbiA6OyBlbHNlCi0rICAgICAgICBhbV9jdl9DWFhfZGVwZW5kZW5jaWVz X2NvbXBpbGVyX3R5cGU9JGRlcG1vZGUKLSsgICAgICAgIGJyZWFrCi0rICAgICAgZmkKLSsgICAg ZmkKLSsgIGRvbmUKLSsKLSsgIGNkIC4uCi0rICBybSAtcmYgY29uZnRlc3QuZGlyCi0rZWxzZQot KyAgYW1fY3ZfQ1hYX2RlcGVuZGVuY2llc19jb21waWxlcl90eXBlPW5vbmUKLStmaQotKwotK2Zp Ci0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFtX2N2X0NYWF9kZXBlbmRl bmNpZXNfY29tcGlsZXJfdHlwZSIgPiY1Ci0rJGFzX2VjaG8gIiRhbV9jdl9DWFhfZGVwZW5kZW5j aWVzX2NvbXBpbGVyX3R5cGUiID4mNjsgfQotK0NYWERFUE1PREU9ZGVwbW9kZT0kYW1fY3ZfQ1hY X2RlcGVuZGVuY2llc19jb21waWxlcl90eXBlCi0rCi0rIGlmCi0rICB0ZXN0ICJ4JGVuYWJsZV9k ZXBlbmRlbmN5X3RyYWNraW5nIiAhPSB4bm8gXAotKyAgJiYgdGVzdCAiJGFtX2N2X0NYWF9kZXBl bmRlbmNpZXNfY29tcGlsZXJfdHlwZSIgPSBnY2MzOyB0aGVuCi0rICBhbV9fZmFzdGRlcENYWF9U UlVFPQotKyAgYW1fX2Zhc3RkZXBDWFhfRkFMU0U9JyMnCi0rZWxzZQotKyAgYW1fX2Zhc3RkZXBD WFhfVFJVRT0nIycKLSsgIGFtX19mYXN0ZGVwQ1hYX0ZBTFNFPQotK2ZpCi0rCi0rCi0raWYgdGVz dCAtbiAiJENYWCIgJiYgKCB0ZXN0ICJYJENYWCIgIT0gIlhubyIgJiYKLSsgICAgKCAodGVzdCAi WCRDWFgiID0gIlhnKysiICYmIGBnKysgLXYgPi9kZXYvbnVsbCAyPiYxYCApIHx8Ci0rICAgICh0 ZXN0ICJYJENYWCIgIT0gIlhnKysiKSkpIDsgdGhlbgotKyAgYWNfZXh0PWNwcAotK2FjX2NwcD0n JENYWENQUCAkQ1BQRkxBR1MnCi0rYWNfY29tcGlsZT0nJENYWCAtYyAkQ1hYRkxBR1MgJENQUEZM QUdTIGNvbmZ0ZXN0LiRhY19leHQgPiY1JwotK2FjX2xpbms9JyRDWFggLW8gY29uZnRlc3QkYWNf ZXhlZXh0ICRDWFhGTEFHUyAkQ1BQRkxBR1MgJExERkxBR1MgY29uZnRlc3QuJGFjX2V4dCAkTElC UyA+JjUnCi0rYWNfY29tcGlsZXJfZ251PSRhY19jdl9jeHhfY29tcGlsZXJfZ251Ci0reyAkYXNf ZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGhvdyB0byBydW4gdGhlIEMrKyBwcmVwcm9j ZXNzb3IiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIGhvdyB0byBydW4gdGhlIEMrKyBwcmVw cm9jZXNzb3IuLi4gIiA+JjY7IH0KLStpZiB0ZXN0IC16ICIkQ1hYQ1BQIjsgdGhlbgotKyAgaWYg dGVzdCAiJHthY19jdl9wcm9nX0NYWENQUCtzZXR9IiA9IHNldDsgdGhlbgotKyAgJGFzX2VjaG9f biAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rICAgICAgIyBEb3VibGUgcXVvdGVzIGJlY2F1c2Ug Q1hYQ1BQIG5lZWRzIHRvIGJlIGV4cGFuZGVkCi0rICAgIGZvciBDWFhDUFAgaW4gIiRDWFggLUUi ICIvbGliL2NwcCIKLSsgICAgZG8KLSsgICAgICBhY19wcmVwcm9jX29rPWZhbHNlCi0rZm9yIGFj X2N4eF9wcmVwcm9jX3dhcm5fZmxhZyBpbiAnJyB5ZXMKLStkbwotKyAgIyBVc2UgYSBoZWFkZXIg ZmlsZSB0aGF0IGNvbWVzIHdpdGggZ2NjLCBzbyBjb25maWd1cmluZyBnbGliYwotKyAgIyB3aXRo IGEgZnJlc2ggY3Jvc3MtY29tcGlsZXIgd29ya3MuCi0rICAjIFByZWZlciA8bGltaXRzLmg+IHRv IDxhc3NlcnQuaD4gaWYgX19TVERDX18gaXMgZGVmaW5lZCwgc2luY2UKLSsgICMgPGxpbWl0cy5o PiBleGlzdHMgZXZlbiBvbiBmcmVlc3RhbmRpbmcgY29tcGlsZXJzLgotKyAgIyBPbiB0aGUgTmVY VCwgY2MgLUUgcnVucyB0aGUgY29kZSB0aHJvdWdoIHRoZSBjb21waWxlcidzIHBhcnNlciwKLSsg ICMgbm90IGp1c3QgdGhyb3VnaCBjcHAuICJTeW50YXggZXJyb3IiIGlzIGhlcmUgdG8gY2F0Y2gg dGhpcyBjYXNlLgotKyAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0rLyogY29uZmRl ZnMuaC4gICovCi0rX0FDRU9GCi0rY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Ci0r Y2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8K LSsjaWZkZWYgX19TVERDX18KLSsjIGluY2x1ZGUgPGxpbWl0cy5oPgotKyNlbHNlCi0rIyBpbmNs dWRlIDxhc3NlcnQuaD4KLSsjZW5kaWYKLSsJCSAgICAgU3ludGF4IGVycm9yCi0rX0FDRU9GCi0r aWYgeyAoYWNfdHJ5PSIkYWNfY3BwIGNvbmZ0ZXN0LiRhY19leHQiCi0rY2FzZSAiKCgkYWNfdHJ5 IiBpbgotKyAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7Ci0rICAq KSBhY190cnlfZWNobz0kYWNfdHJ5OzsKLStlc2FjCi0rZXZhbCBhY190cnlfZWNobz0iXCJcJGFz X21lOiRMSU5FTk86ICRhY190cnlfZWNob1wiIgotKyRhc19lY2hvICIkYWNfdHJ5X2VjaG8iKSA+ JjUKLSsgIChldmFsICIkYWNfY3BwIGNvbmZ0ZXN0LiRhY19leHQiKSAyPmNvbmZ0ZXN0LmVyMQot KyAgYWNfc3RhdHVzPSQ/Ci0rICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0 LmVycgotKyAgcm0gLWYgY29uZnRlc3QuZXIxCi0rICBjYXQgY29uZnRlc3QuZXJyID4mNQotKyAg JGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSsgIChleGl0 ICRhY19zdGF0dXMpOyB9ID4vZGV2L251bGwgJiYgewotKwkgdGVzdCAteiAiJGFjX2N4eF9wcmVw cm9jX3dhcm5fZmxhZyRhY19jeHhfd2Vycm9yX2ZsYWciIHx8Ci0rCSB0ZXN0ICEgLXMgY29uZnRl c3QuZXJyCi0rICAgICAgIH07IHRoZW4KLSsgIDoKLStlbHNlCi0rICAkYXNfZWNobyAiJGFzX21l OiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLStzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19l eHQgPiY1Ci0rCi0rICAjIEJyb2tlbjogZmFpbHMgb24gdmFsaWQgaW5wdXQuCi0rY29udGludWUK LStmaQotKwotK3JtIC1mIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfZXh0Ci0rCi0rICAjIE9L LCB3b3JrcyBvbiBzYW5lIGNhc2VzLiAgTm93IGNoZWNrIHdoZXRoZXIgbm9uZXhpc3RlbnQgaGVh ZGVycwotKyAgIyBjYW4gYmUgZGV0ZWN0ZWQgYW5kIGhvdy4KLSsgIGNhdCA+Y29uZnRlc3QuJGFj X2V4dCA8PF9BQ0VPRgotKy8qIGNvbmZkZWZzLmguICAqLwotK19BQ0VPRgotK2NhdCBjb25mZGVm cy5oID4+Y29uZnRlc3QuJGFjX2V4dAotK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YK LSsvKiBlbmQgY29uZmRlZnMuaC4gICovCi0rI2luY2x1ZGUgPGFjX25vbmV4aXN0ZW50Lmg+Ci0r X0FDRU9GCi0raWYgeyAoYWNfdHJ5PSIkYWNfY3BwIGNvbmZ0ZXN0LiRhY19leHQiCi0rY2FzZSAi KCgkYWNfdHJ5IiBpbgotKyAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3Ry eTs7Ci0rICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKLStlc2FjCi0rZXZhbCBhY190cnlfZWNo bz0iXCJcJGFzX21lOiRMSU5FTk86ICRhY190cnlfZWNob1wiIgotKyRhc19lY2hvICIkYWNfdHJ5 X2VjaG8iKSA+JjUKLSsgIChldmFsICIkYWNfY3BwIGNvbmZ0ZXN0LiRhY19leHQiKSAyPmNvbmZ0 ZXN0LmVyMQotKyAgYWNfc3RhdHVzPSQ/Ci0rICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEg PmNvbmZ0ZXN0LmVycgotKyAgcm0gLWYgY29uZnRlc3QuZXIxCi0rICBjYXQgY29uZnRlc3QuZXJy ID4mNQotKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUK LSsgIChleGl0ICRhY19zdGF0dXMpOyB9ID4vZGV2L251bGwgJiYgewotKwkgdGVzdCAteiAiJGFj X2N4eF9wcmVwcm9jX3dhcm5fZmxhZyRhY19jeHhfd2Vycm9yX2ZsYWciIHx8Ci0rCSB0ZXN0ICEg LXMgY29uZnRlc3QuZXJyCi0rICAgICAgIH07IHRoZW4KLSsgICMgQnJva2VuOiBzdWNjZXNzIG9u IGludmFsaWQgaW5wdXQuCi0rY29udGludWUKLStlbHNlCi0rICAkYXNfZWNobyAiJGFzX21lOiBm YWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLStzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQg PiY1Ci0rCi0rICAjIFBhc3NlcyBib3RoIHRlc3RzLgotK2FjX3ByZXByb2Nfb2s9OgotK2JyZWFr Ci0rZmkKLSsKLStybSAtZiBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX2V4dAotKwotK2RvbmUK LSsjIEJlY2F1c2Ugb2YgYGJyZWFrJywgX0FDX1BSRVBST0NfSUZFTFNFJ3MgY2xlYW5pbmcgY29k ZSB3YXMgc2tpcHBlZC4KLStybSAtZiBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX2V4dAotK2lm ICRhY19wcmVwcm9jX29rOyB0aGVuCi0rICBicmVhawotK2ZpCi0rCi0rICAgIGRvbmUKLSsgICAg YWNfY3ZfcHJvZ19DWFhDUFA9JENYWENQUAotKwotK2ZpCi0rICBDWFhDUFA9JGFjX2N2X3Byb2df Q1hYQ1BQCi0rZWxzZQotKyAgYWNfY3ZfcHJvZ19DWFhDUFA9JENYWENQUAotK2ZpCi0reyAkYXNf ZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJENYWENQUCIgPiY1Ci0rJGFzX2VjaG8gIiRD WFhDUFAiID4mNjsgfQotK2FjX3ByZXByb2Nfb2s9ZmFsc2UKLStmb3IgYWNfY3h4X3ByZXByb2Nf d2Fybl9mbGFnIGluICcnIHllcwotK2RvCi0rICAjIFVzZSBhIGhlYWRlciBmaWxlIHRoYXQgY29t ZXMgd2l0aCBnY2MsIHNvIGNvbmZpZ3VyaW5nIGdsaWJjCi0rICAjIHdpdGggYSBmcmVzaCBjcm9z cy1jb21waWxlciB3b3Jrcy4KLSsgICMgUHJlZmVyIDxsaW1pdHMuaD4gdG8gPGFzc2VydC5oPiBp ZiBfX1NURENfXyBpcyBkZWZpbmVkLCBzaW5jZQotKyAgIyA8bGltaXRzLmg+IGV4aXN0cyBldmVu IG9uIGZyZWVzdGFuZGluZyBjb21waWxlcnMuCi0rICAjIE9uIHRoZSBOZVhULCBjYyAtRSBydW5z IHRoZSBjb2RlIHRocm91Z2ggdGhlIGNvbXBpbGVyJ3MgcGFyc2VyLAotKyAgIyBub3QganVzdCB0 aHJvdWdoIGNwcC4gIlN5bnRheCBlcnJvciIgaXMgaGVyZSB0byBjYXRjaCB0aGlzIGNhc2UuCi0r ICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLSsvKiBjb25mZGVmcy5oLiAgKi8KLStf QUNFT0YKLStjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKLStjYXQgPj5jb25mdGVz dC4kYWNfZXh0IDw8X0FDRU9GCi0rLyogZW5kIGNvbmZkZWZzLmguICAqLwotKyNpZmRlZiBfX1NU RENfXwotKyMgaW5jbHVkZSA8bGltaXRzLmg+Ci0rI2Vsc2UKLSsjIGluY2x1ZGUgPGFzc2VydC5o PgotKyNlbmRpZgotKwkJICAgICBTeW50YXggZXJyb3IKLStfQUNFT0YKLStpZiB7IChhY190cnk9 IiRhY19jcHAgY29uZnRlc3QuJGFjX2V4dCIKLStjYXNlICIoKCRhY190cnkiIGluCi0rICAqXCIq IHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKLSsgICopIGFjX3RyeV9lY2hv PSRhY190cnk7OwotK2VzYWMKLStldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzog JGFjX3RyeV9lY2hvXCIiCi0rJGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4mNQotKyAgKGV2YWwg IiRhY19jcHAgY29uZnRlc3QuJGFjX2V4dCIpIDI+Y29uZnRlc3QuZXIxCi0rICBhY19zdGF0dXM9 JD8KLSsgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCi0rICBybSAt ZiBjb25mdGVzdC5lcjEKLSsgIGNhdCBjb25mdGVzdC5lcnIgPiY1Ci0rICAkYXNfZWNobyAiJGFz X21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotKyAgKGV4aXQgJGFjX3N0YXR1cyk7 IH0gPi9kZXYvbnVsbCAmJiB7Ci0rCSB0ZXN0IC16ICIkYWNfY3h4X3ByZXByb2Nfd2Fybl9mbGFn JGFjX2N4eF93ZXJyb3JfZmxhZyIgfHwKLSsJIHRlc3QgISAtcyBjb25mdGVzdC5lcnIKLSsgICAg ICAgfTsgdGhlbgotKyAgOgotK2Vsc2UKLSsgICRhc19lY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9n cmFtIHdhczoiID4mNQotK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKLSsKLSsg ICMgQnJva2VuOiBmYWlscyBvbiB2YWxpZCBpbnB1dC4KLStjb250aW51ZQotK2ZpCi0rCi0rcm0g LWYgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19leHQKLSsKLSsgICMgT0ssIHdvcmtzIG9uIHNh bmUgY2FzZXMuICBOb3cgY2hlY2sgd2hldGhlciBub25leGlzdGVudCBoZWFkZXJzCi0rICAjIGNh biBiZSBkZXRlY3RlZCBhbmQgaG93LgotKyAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9G Ci0rLyogY29uZmRlZnMuaC4gICovCi0rX0FDRU9GCi0rY2F0IGNvbmZkZWZzLmggPj5jb25mdGVz dC4kYWNfZXh0Ci0rY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotKy8qIGVuZCBjb25m ZGVmcy5oLiAgKi8KLSsjaW5jbHVkZSA8YWNfbm9uZXhpc3RlbnQuaD4KLStfQUNFT0YKLStpZiB7 IChhY190cnk9IiRhY19jcHAgY29uZnRlc3QuJGFjX2V4dCIKLStjYXNlICIoKCRhY190cnkiIGlu Ci0rICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKLSsgICopIGFj X3RyeV9lY2hvPSRhY190cnk7OwotK2VzYWMKLStldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6 JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCi0rJGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4mNQot KyAgKGV2YWwgIiRhY19jcHAgY29uZnRlc3QuJGFjX2V4dCIpIDI+Y29uZnRlc3QuZXIxCi0rICBh Y19zdGF0dXM9JD8KLSsgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJy Ci0rICBybSAtZiBjb25mdGVzdC5lcjEKLSsgIGNhdCBjb25mdGVzdC5lcnIgPiY1Ci0rICAkYXNf ZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotKyAgKGV4aXQgJGFj X3N0YXR1cyk7IH0gPi9kZXYvbnVsbCAmJiB7Ci0rCSB0ZXN0IC16ICIkYWNfY3h4X3ByZXByb2Nf d2Fybl9mbGFnJGFjX2N4eF93ZXJyb3JfZmxhZyIgfHwKLSsJIHRlc3QgISAtcyBjb25mdGVzdC5l cnIKLSsgICAgICAgfTsgdGhlbgotKyAgIyBCcm9rZW46IHN1Y2Nlc3Mgb24gaW52YWxpZCBpbnB1 dC4KLStjb250aW51ZQotK2Vsc2UKLSsgICRhc19lY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFt IHdhczoiID4mNQotK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKLSsKLSsgICMg UGFzc2VzIGJvdGggdGVzdHMuCi0rYWNfcHJlcHJvY19vaz06Ci0rYnJlYWsKLStmaQotKwotK3Jt IC1mIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfZXh0Ci0rCi0rZG9uZQotKyMgQmVjYXVzZSBv ZiBgYnJlYWsnLCBfQUNfUFJFUFJPQ19JRkVMU0UncyBjbGVhbmluZyBjb2RlIHdhcyBza2lwcGVk LgotK3JtIC1mIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfZXh0Ci0raWYgJGFjX3ByZXByb2Nf b2s7IHRoZW4KLSsgIDoKLStlbHNlCi0rICB7IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBl cnJvcjogaW4gXGAkYWNfcHdkJzoiID4mNQotKyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBpbiBc YCRhY19wd2QnOiIgPiYyO30KLStfbHRfY2F1Z2h0X0NYWF9lcnJvcj15ZXM7IH0KLStmaQotKwot K2FjX2V4dD1jCi0rYWNfY3BwPSckQ1BQICRDUFBGTEFHUycKLSthY19jb21waWxlPSckQ0MgLWMg JENGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUnCi0rYWNfbGluaz0nJENDIC1v IGNvbmZ0ZXN0JGFjX2V4ZWV4dCAkQ0ZMQUdTICRDUFBGTEFHUyAkTERGTEFHUyBjb25mdGVzdC4k YWNfZXh0ICRMSUJTID4mNScKLSthY19jb21waWxlcl9nbnU9JGFjX2N2X2NfY29tcGlsZXJfZ251 Ci0rCi0rZWxzZQotKyAgX2x0X2NhdWdodF9DWFhfZXJyb3I9eWVzCi0rZmkKLSsKLSsKLSsKLSsK LSsKLSsjIFNldCBvcHRpb25zCi0rCi0rCi0rCi0rICAgICAgICBlbmFibGVfZGxvcGVuPW5vCi0r Ci0rCi0rICBlbmFibGVfd2luMzJfZGxsPW5vCi0rCi0rCi0rCi0rCi0rCi0rIyBDaGVjayB3aGV0 aGVyIC0td2l0aC1waWMgd2FzIGdpdmVuLgotK2lmIHRlc3QgIiR7d2l0aF9waWMrc2V0fSIgPSBz ZXQ7IHRoZW4KLSsgIHdpdGh2YWw9JHdpdGhfcGljOyBwaWNfbW9kZT0iJHdpdGh2YWwiCi0rZWxz ZQotKyAgcGljX21vZGU9ZGVmYXVsdAotK2ZpCi0rCi0rCi0rdGVzdCAteiAiJHBpY19tb2RlIiAm JiBwaWNfbW9kZT1kZWZhdWx0Ci0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rICAjIENoZWNrIHdoZXRo ZXIgLS1lbmFibGUtZmFzdC1pbnN0YWxsIHdhcyBnaXZlbi4KLStpZiB0ZXN0ICIke2VuYWJsZV9m YXN0X2luc3RhbGwrc2V0fSIgPSBzZXQ7IHRoZW4KLSsgIGVuYWJsZXZhbD0kZW5hYmxlX2Zhc3Rf aW5zdGFsbDsgcD0ke1BBQ0tBR0UtZGVmYXVsdH0KLSsgICAgY2FzZSAkZW5hYmxldmFsIGluCi0r ICAgIHllcykgZW5hYmxlX2Zhc3RfaW5zdGFsbD15ZXMgOzsKLSsgICAgbm8pIGVuYWJsZV9mYXN0 X2luc3RhbGw9bm8gOzsKLSsgICAgKikKLSsgICAgICBlbmFibGVfZmFzdF9pbnN0YWxsPW5vCi0r ICAgICAgIyBMb29rIGF0IHRoZSBhcmd1bWVudCB3ZSBnb3QuICBXZSB1c2UgYWxsIHRoZSBjb21t b24gbGlzdCBzZXBhcmF0b3JzLgotKyAgICAgIGx0X3NhdmVfaWZzPSIkSUZTIjsgSUZTPSIke0lG U30kUEFUSF9TRVBBUkFUT1IsIgotKyAgICAgIGZvciBwa2cgaW4gJGVuYWJsZXZhbDsgZG8KLSsJ SUZTPSIkbHRfc2F2ZV9pZnMiCi0rCWlmIHRlc3QgIlgkcGtnIiA9ICJYJHAiOyB0aGVuCi0rCSAg ZW5hYmxlX2Zhc3RfaW5zdGFsbD15ZXMKLSsJZmkKLSsgICAgICBkb25lCi0rICAgICAgSUZTPSIk bHRfc2F2ZV9pZnMiCi0rICAgICAgOzsKLSsgICAgZXNhYwotK2Vsc2UKLSsgIGVuYWJsZV9mYXN0 X2luc3RhbGw9eWVzCi0rZmkKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsjIFRo aXMgY2FuIGJlIHVzZWQgdG8gcmVidWlsZCBsaWJ0b29sIHdoZW4gbmVlZGVkCi0rTElCVE9PTF9E RVBTPSIkbHRtYWluIgotKwotKyMgQWx3YXlzIHVzZSBvdXIgb3duIGxpYnRvb2wuCi0rTElCVE9P TD0nJChTSEVMTCkgJCh0b3BfYnVpbGRkaXIpL2xpYnRvb2wnCi0rCi0rCi0rCi0rCi0rCi0rCi0r Ci0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0r dGVzdCAteiAiJExOX1MiICYmIExOX1M9ImxuIC1zIgotKwotKwotKwotKwotKwotKwotKwotKwot KwotKwotKwotKwotKwotKwotK2lmIHRlc3QgLW4gIiR7WlNIX1ZFUlNJT04rc2V0fSIgOyB0aGVu Ci0rICAgc2V0b3B0IE5PX0dMT0JfU1VCU1QKLStmaQotKwotK3sgJGFzX2VjaG8gIiRhc19tZTok TElORU5POiBjaGVja2luZyBmb3Igb2JqZGlyIiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyBm b3Igb2JqZGlyLi4uICIgPiY2OyB9Ci0raWYgdGVzdCAiJHtsdF9jdl9vYmpkaXIrc2V0fSIgPSBz ZXQ7IHRoZW4KLSsgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci0rZWxzZQotKyAgcm0gLWYg LmxpYnMgMj4vZGV2L251bGwKLStta2RpciAubGlicyAyPi9kZXYvbnVsbAotK2lmIHRlc3QgLWQg LmxpYnM7IHRoZW4KLSsgIGx0X2N2X29iamRpcj0ubGlicwotK2Vsc2UKLSsgICMgTVMtRE9TIGRv ZXMgbm90IGFsbG93IGZpbGVuYW1lcyB0aGF0IGJlZ2luIHdpdGggYSBkb3QuCi0rICBsdF9jdl9v YmpkaXI9X2xpYnMKLStmaQotK3JtZGlyIC5saWJzIDI+L2Rldi9udWxsCi0rZmkKLSt7ICRhc19l Y2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkbHRfY3Zfb2JqZGlyIiA+JjUKLSskYXNfZWNo byAiJGx0X2N2X29iamRpciIgPiY2OyB9Ci0rb2JqZGlyPSRsdF9jdl9vYmpkaXIKLSsKLSsKLSsK LSsKLSsKLStjYXQgPj5jb25mZGVmcy5oIDw8X0FDRU9GCi0rI2RlZmluZSBMVF9PQkpESVIgIiRs dF9jdl9vYmpkaXIvIgotK19BQ0VPRgotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwot KwotKwotKwotKwotKwotKwotK2Nhc2UgJGhvc3Rfb3MgaW4KLSthaXgzKikKLSsgICMgQUlYIHNv bWV0aW1lcyBoYXMgcHJvYmxlbXMgd2l0aCB0aGUgR0NDIGNvbGxlY3QyIHByb2dyYW0uICBGb3Ig c29tZQotKyAgIyByZWFzb24sIGlmIHdlIHNldCB0aGUgQ09MTEVDVF9OQU1FUyBlbnZpcm9ubWVu dCB2YXJpYWJsZSwgdGhlIHByb2JsZW1zCi0rICAjIHZhbmlzaCBpbiBhIHB1ZmYgb2Ygc21va2Uu Ci0rICBpZiB0ZXN0ICJYJHtDT0xMRUNUX05BTUVTK3NldH0iICE9IFhzZXQ7IHRoZW4KLSsgICAg Q09MTEVDVF9OQU1FUz0KLSsgICAgZXhwb3J0IENPTExFQ1RfTkFNRVMKLSsgIGZpCi0rICA7Owot K2VzYWMKLSsKLSsjIFNlZCBzdWJzdGl0dXRpb24gdGhhdCBoZWxwcyB1cyBkbyByb2J1c3QgcXVv dGluZy4gIEl0IGJhY2tzbGFzaGlmaWVzCi0rIyBtZXRhY2hhcmFjdGVycyB0aGF0IGFyZSBzdGls bCBhY3RpdmUgd2l0aGluIGRvdWJsZS1xdW90ZWQgc3RyaW5ncy4KLStzZWRfcXVvdGVfc3Vic3Q9 J3MvXChbImAkXFxdXCkvXFxcMS9nJwotKwotKyMgU2FtZSBhcyBhYm92ZSwgYnV0IGRvIG5vdCBx dW90ZSB2YXJpYWJsZSByZWZlcmVuY2VzLgotK2RvdWJsZV9xdW90ZV9zdWJzdD0ncy9cKFsiYFxc XVwpL1xcXDEvZycKLSsKLSsjIFNlZCBzdWJzdGl0dXRpb24gdG8gZGVsYXkgZXhwYW5zaW9uIG9m IGFuIGVzY2FwZWQgc2hlbGwgdmFyaWFibGUgaW4gYQotKyMgZG91YmxlX3F1b3RlX3N1YnN0J2Vk IHN0cmluZy4KLStkZWxheV92YXJpYWJsZV9zdWJzdD0ncy9cXFxcXFxcXFxcXCQvXFxcXFxcJC9n JwotKwotKyMgU2VkIHN1YnN0aXR1dGlvbiB0byBkZWxheSBleHBhbnNpb24gb2YgYW4gZXNjYXBl ZCBzaW5nbGUgcXVvdGUuCi0rZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0PSdzLydcJycvJ1wnXFxc XFxcXCdcJycvZycKLSsKLSsjIFNlZCBzdWJzdGl0dXRpb24gdG8gYXZvaWQgYWNjaWRlbnRhbCBn bG9iYmluZyBpbiBldmFsZWQgZXhwcmVzc2lvbnMKLStub19nbG9iX3N1YnN0PSdzL1wqL1xcXCov ZycKLSsKLSsjIEdsb2JhbCB2YXJpYWJsZXM6Ci0rb2ZpbGU9bGlidG9vbAotK2Nhbl9idWlsZF9z aGFyZWQ9eWVzCi0rCi0rIyBBbGwga25vd24gbGlua2VycyByZXF1aXJlIGEgYC5hJyBhcmNoaXZl IGZvciBzdGF0aWMgbGlua2luZyAoZXhjZXB0IE1TVkMsCi0rIyB3aGljaCBuZWVkcyAnLmxpYicp LgotK2xpYmV4dD1hCi0rCi0rd2l0aF9nbnVfbGQ9IiRsdF9jdl9wcm9nX2dudV9sZCIKLSsKLStv bGRfQ0M9IiRDQyIKLStvbGRfQ0ZMQUdTPSIkQ0ZMQUdTIgotKwotKyMgU2V0IHNhbmUgZGVmYXVs dHMgZm9yIHZhcmlvdXMgdmFyaWFibGVzCi0rdGVzdCAteiAiJENDIiAmJiBDQz1jYwotK3Rlc3Qg LXogIiRMVENDIiAmJiBMVENDPSRDQwotK3Rlc3QgLXogIiRMVENGTEFHUyIgJiYgTFRDRkxBR1M9 JENGTEFHUwotK3Rlc3QgLXogIiRMRCIgJiYgTEQ9bGQKLSt0ZXN0IC16ICIkYWNfb2JqZXh0IiAm JiBhY19vYmpleHQ9bwotKwotK2ZvciBjY190ZW1wIGluICRjb21waWxlciIiOyBkbwotKyAgY2Fz ZSAkY2NfdGVtcCBpbgotKyAgICBjb21waWxlIHwgKltcXC9dY29tcGlsZSB8IGNjYWNoZSB8ICpb XFwvXWNjYWNoZSApIDs7Ci0rICAgIGRpc3RjYyB8ICpbXFwvXWRpc3RjYyB8IHB1cmlmeSB8ICpb XFwvXXB1cmlmeSApIDs7Ci0rICAgIFwtKikgOzsKLSsgICAgKikgYnJlYWs7OwotKyAgZXNhYwot K2RvbmUKLStjY19iYXNlbmFtZT1gJEVDSE8gIlgkY2NfdGVtcCIgfCAkWHNlZCAtZSAncyUuKi8l JScgLWUgInMlXiRob3N0X2FsaWFzLSUlImAKLSsKLSsKLSsjIE9ubHkgcGVyZm9ybSB0aGUgY2hl Y2sgZm9yIGZpbGUsIGlmIHRoZSBjaGVjayBtZXRob2QgcmVxdWlyZXMgaXQKLSt0ZXN0IC16ICIk TUFHSUNfQ01EIiAmJiBNQUdJQ19DTUQ9ZmlsZQotK2Nhc2UgJGRlcGxpYnNfY2hlY2tfbWV0aG9k IGluCi0rZmlsZV9tYWdpYyopCi0rICBpZiB0ZXN0ICIkZmlsZV9tYWdpY19jbWQiID0gJyRNQUdJ Q19DTUQnOyB0aGVuCi0rICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBm b3IgJHthY190b29sX3ByZWZpeH1maWxlIiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyBmb3Ig JHthY190b29sX3ByZWZpeH1maWxlLi4uICIgPiY2OyB9Ci0raWYgdGVzdCAiJHtsdF9jdl9wYXRo X01BR0lDX0NNRCtzZXR9IiA9IHNldDsgdGhlbgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+ JjYKLStlbHNlCi0rICBjYXNlICRNQUdJQ19DTUQgaW4KLStbXFwvKl0gfCAgPzpbXFwvXSopCi0r ICBsdF9jdl9wYXRoX01BR0lDX0NNRD0iJE1BR0lDX0NNRCIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJp ZGUgdGhlIHRlc3Qgd2l0aCBhIHBhdGguCi0rICA7OwotKyopCi0rICBsdF9zYXZlX01BR0lDX0NN RD0iJE1BR0lDX0NNRCIKLSsgIGx0X3NhdmVfaWZzPSIkSUZTIjsgSUZTPSRQQVRIX1NFUEFSQVRP UgotKyAgYWNfZHVtbXk9Ii91c3IvYmluJFBBVEhfU0VQQVJBVE9SJFBBVEgiCi0rICBmb3IgYWNf ZGlyIGluICRhY19kdW1teTsgZG8KLSsgICAgSUZTPSIkbHRfc2F2ZV9pZnMiCi0rICAgIHRlc3Qg LXogIiRhY19kaXIiICYmIGFjX2Rpcj0uCi0rICAgIGlmIHRlc3QgLWYgJGFjX2Rpci8ke2FjX3Rv b2xfcHJlZml4fWZpbGU7IHRoZW4KLSsgICAgICBsdF9jdl9wYXRoX01BR0lDX0NNRD0iJGFjX2Rp ci8ke2FjX3Rvb2xfcHJlZml4fWZpbGUiCi0rICAgICAgaWYgdGVzdCAtbiAiJGZpbGVfbWFnaWNf dGVzdF9maWxlIjsgdGhlbgotKwljYXNlICRkZXBsaWJzX2NoZWNrX21ldGhvZCBpbgotKwkiZmls ZV9tYWdpYyAiKikKLSsJICBmaWxlX21hZ2ljX3JlZ2V4PWBleHByICIkZGVwbGlic19jaGVja19t ZXRob2QiIDogImZpbGVfbWFnaWMgXCguKlwpImAKLSsJICBNQUdJQ19DTUQ9IiRsdF9jdl9wYXRo X01BR0lDX0NNRCIKLSsJICBpZiBldmFsICRmaWxlX21hZ2ljX2NtZCBcJGZpbGVfbWFnaWNfdGVz dF9maWxlIDI+IC9kZXYvbnVsbCB8Ci0rCSAgICAkRUdSRVAgIiRmaWxlX21hZ2ljX3JlZ2V4IiA+ IC9kZXYvbnVsbDsgdGhlbgotKwkgICAgOgotKwkgIGVsc2UKLSsJICAgIGNhdCA8PF9MVF9FT0Yg MT4mMgotKwotKyoqKiBXYXJuaW5nOiB0aGUgY29tbWFuZCBsaWJ0b29sIHVzZXMgdG8gZGV0ZWN0 IHNoYXJlZCBsaWJyYXJpZXMsCi0rKioqICRmaWxlX21hZ2ljX2NtZCwgcHJvZHVjZXMgb3V0cHV0 IHRoYXQgbGlidG9vbCBjYW5ub3QgcmVjb2duaXplLgotKyoqKiBUaGUgcmVzdWx0IGlzIHRoYXQg bGlidG9vbCBtYXkgZmFpbCB0byByZWNvZ25pemUgc2hhcmVkIGxpYnJhcmllcwotKyoqKiBhcyBz dWNoLiAgVGhpcyB3aWxsIGFmZmVjdCB0aGUgY3JlYXRpb24gb2YgbGlidG9vbCBsaWJyYXJpZXMg dGhhdAotKyoqKiBkZXBlbmQgb24gc2hhcmVkIGxpYnJhcmllcywgYnV0IHByb2dyYW1zIGxpbmtl ZCB3aXRoIHN1Y2ggbGlidG9vbAotKyoqKiBsaWJyYXJpZXMgd2lsbCB3b3JrIHJlZ2FyZGxlc3Mg b2YgdGhpcyBwcm9ibGVtLiAgTmV2ZXJ0aGVsZXNzLCB5b3UKLSsqKiogbWF5IHdhbnQgdG8gcmVw b3J0IHRoZSBwcm9ibGVtIHRvIHlvdXIgc3lzdGVtIG1hbmFnZXIgYW5kL29yIHRvCi0rKioqIGJ1 Zy1saWJ0b29sQGdudS5vcmcKLSsKLStfTFRfRU9GCi0rCSAgZmkgOzsKLSsJZXNhYwotKyAgICAg IGZpCi0rICAgICAgYnJlYWsKLSsgICAgZmkKLSsgIGRvbmUKLSsgIElGUz0iJGx0X3NhdmVfaWZz IgotKyAgTUFHSUNfQ01EPSIkbHRfc2F2ZV9NQUdJQ19DTUQiCi0rICA7OwotK2VzYWMKLStmaQot KwotK01BR0lDX0NNRD0iJGx0X2N2X3BhdGhfTUFHSUNfQ01EIgotK2lmIHRlc3QgLW4gIiRNQUdJ Q19DTUQiOyB0aGVuCi0rICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkTUFH SUNfQ01EIiA+JjUKLSskYXNfZWNobyAiJE1BR0lDX0NNRCIgPiY2OyB9Ci0rZWxzZQotKyAgeyAk YXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogbm8iID4mNQotKyRhc19lY2hvICJubyIg PiY2OyB9Ci0rZmkKLSsKLSsKLSsKLSsKLSsKLStpZiB0ZXN0IC16ICIkbHRfY3ZfcGF0aF9NQUdJ Q19DTUQiOyB0aGVuCi0rICBpZiB0ZXN0IC1uICIkYWNfdG9vbF9wcmVmaXgiOyB0aGVuCi0rICAg IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgZmlsZSIgPiY1Ci0rJGFz X2VjaG9fbiAiY2hlY2tpbmcgZm9yIGZpbGUuLi4gIiA+JjY7IH0KLStpZiB0ZXN0ICIke2x0X2N2 X3BhdGhfTUFHSUNfQ01EK3NldH0iID0gc2V0OyB0aGVuCi0rICAkYXNfZWNob19uICIoY2FjaGVk KSAiID4mNgotK2Vsc2UKLSsgIGNhc2UgJE1BR0lDX0NNRCBpbgotK1tcXC8qXSB8ICA/OltcXC9d KikKLSsgIGx0X2N2X3BhdGhfTUFHSUNfQ01EPSIkTUFHSUNfQ01EIiAjIExldCB0aGUgdXNlciBv dmVycmlkZSB0aGUgdGVzdCB3aXRoIGEgcGF0aC4KLSsgIDs7Ci0rKikKLSsgIGx0X3NhdmVfTUFH SUNfQ01EPSIkTUFHSUNfQ01EIgotKyAgbHRfc2F2ZV9pZnM9IiRJRlMiOyBJRlM9JFBBVEhfU0VQ QVJBVE9SCi0rICBhY19kdW1teT0iL3Vzci9iaW4kUEFUSF9TRVBBUkFUT1IkUEFUSCIKLSsgIGZv ciBhY19kaXIgaW4gJGFjX2R1bW15OyBkbwotKyAgICBJRlM9IiRsdF9zYXZlX2lmcyIKLSsgICAg dGVzdCAteiAiJGFjX2RpciIgJiYgYWNfZGlyPS4KLSsgICAgaWYgdGVzdCAtZiAkYWNfZGlyL2Zp bGU7IHRoZW4KLSsgICAgICBsdF9jdl9wYXRoX01BR0lDX0NNRD0iJGFjX2Rpci9maWxlIgotKyAg ICAgIGlmIHRlc3QgLW4gIiRmaWxlX21hZ2ljX3Rlc3RfZmlsZSI7IHRoZW4KLSsJY2FzZSAkZGVw bGlic19jaGVja19tZXRob2QgaW4KLSsJImZpbGVfbWFnaWMgIiopCi0rCSAgZmlsZV9tYWdpY19y ZWdleD1gZXhwciAiJGRlcGxpYnNfY2hlY2tfbWV0aG9kIiA6ICJmaWxlX21hZ2ljIFwoLipcKSJg Ci0rCSAgTUFHSUNfQ01EPSIkbHRfY3ZfcGF0aF9NQUdJQ19DTUQiCi0rCSAgaWYgZXZhbCAkZmls ZV9tYWdpY19jbWQgXCRmaWxlX21hZ2ljX3Rlc3RfZmlsZSAyPiAvZGV2L251bGwgfAotKwkgICAg JEVHUkVQICIkZmlsZV9tYWdpY19yZWdleCIgPiAvZGV2L251bGw7IHRoZW4KLSsJICAgIDoKLSsJ ICBlbHNlCi0rCSAgICBjYXQgPDxfTFRfRU9GIDE+JjIKLSsKLSsqKiogV2FybmluZzogdGhlIGNv bW1hbmQgbGlidG9vbCB1c2VzIHRvIGRldGVjdCBzaGFyZWQgbGlicmFyaWVzLAotKyoqKiAkZmls ZV9tYWdpY19jbWQsIHByb2R1Y2VzIG91dHB1dCB0aGF0IGxpYnRvb2wgY2Fubm90IHJlY29nbml6 ZS4KLSsqKiogVGhlIHJlc3VsdCBpcyB0aGF0IGxpYnRvb2wgbWF5IGZhaWwgdG8gcmVjb2duaXpl IHNoYXJlZCBsaWJyYXJpZXMKLSsqKiogYXMgc3VjaC4gIFRoaXMgd2lsbCBhZmZlY3QgdGhlIGNy ZWF0aW9uIG9mIGxpYnRvb2wgbGlicmFyaWVzIHRoYXQKLSsqKiogZGVwZW5kIG9uIHNoYXJlZCBs aWJyYXJpZXMsIGJ1dCBwcm9ncmFtcyBsaW5rZWQgd2l0aCBzdWNoIGxpYnRvb2wKLSsqKiogbGli cmFyaWVzIHdpbGwgd29yayByZWdhcmRsZXNzIG9mIHRoaXMgcHJvYmxlbS4gIE5ldmVydGhlbGVz cywgeW91Ci0rKioqIG1heSB3YW50IHRvIHJlcG9ydCB0aGUgcHJvYmxlbSB0byB5b3VyIHN5c3Rl bSBtYW5hZ2VyIGFuZC9vciB0bwotKyoqKiBidWctbGlidG9vbEBnbnUub3JnCi0rCi0rX0xUX0VP RgotKwkgIGZpIDs7Ci0rCWVzYWMKLSsgICAgICBmaQotKyAgICAgIGJyZWFrCi0rICAgIGZpCi0r ICBkb25lCi0rICBJRlM9IiRsdF9zYXZlX2lmcyIKLSsgIE1BR0lDX0NNRD0iJGx0X3NhdmVfTUFH SUNfQ01EIgotKyAgOzsKLStlc2FjCi0rZmkKLSsKLStNQUdJQ19DTUQ9IiRsdF9jdl9wYXRoX01B R0lDX0NNRCIKLStpZiB0ZXN0IC1uICIkTUFHSUNfQ01EIjsgdGhlbgotKyAgeyAkYXNfZWNobyAi JGFzX21lOiRMSU5FTk86IHJlc3VsdDogJE1BR0lDX0NNRCIgPiY1Ci0rJGFzX2VjaG8gIiRNQUdJ Q19DTUQiID4mNjsgfQotK2Vsc2UKLSsgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1 bHQ6IG5vIiA+JjUKLSskYXNfZWNobyAibm8iID4mNjsgfQotK2ZpCi0rCi0rCi0rICBlbHNlCi0r ICAgIE1BR0lDX0NNRD06Ci0rICBmaQotK2ZpCi0rCi0rICBmaQotKyAgOzsKLStlc2FjCi0rCi0r IyBVc2UgQyBmb3IgdGhlIGRlZmF1bHQgY29uZmlndXJhdGlvbiBpbiB0aGUgbGlidG9vbCBzY3Jp cHQKLSsKLStsdF9zYXZlX0NDPSIkQ0MiCi0rYWNfZXh0PWMKLSthY19jcHA9JyRDUFAgJENQUEZM QUdTJwotK2FjX2NvbXBpbGU9JyRDQyAtYyAkQ0ZMQUdTICRDUFBGTEFHUyBjb25mdGVzdC4kYWNf ZXh0ID4mNScKLSthY19saW5rPSckQ0MgLW8gY29uZnRlc3QkYWNfZXhlZXh0ICRDRkxBR1MgJENQ UEZMQUdTICRMREZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgJExJQlMgPiY1JwotK2FjX2NvbXBpbGVy X2dudT0kYWNfY3ZfY19jb21waWxlcl9nbnUKLSsKLSsKLSsjIFNvdXJjZSBmaWxlIGV4dGVuc2lv biBmb3IgQyB0ZXN0IHNvdXJjZXMuCi0rYWNfZXh0PWMKLSsKLSsjIE9iamVjdCBmaWxlIGV4dGVu c2lvbiBmb3IgY29tcGlsZWQgQyB0ZXN0IHNvdXJjZXMuCi0rb2JqZXh0PW8KLStvYmpleHQ9JG9i amV4dAotKwotKyMgQ29kZSB0byBiZSB1c2VkIGluIHNpbXBsZSBjb21waWxlIHRlc3RzCi0rbHRf c2ltcGxlX2NvbXBpbGVfdGVzdF9jb2RlPSJpbnQgc29tZV92YXJpYWJsZSA9IDA7IgotKwotKyMg Q29kZSB0byBiZSB1c2VkIGluIHNpbXBsZSBsaW5rIHRlc3RzCi0rbHRfc2ltcGxlX2xpbmtfdGVz dF9jb2RlPSdpbnQgbWFpbigpe3JldHVybigwKTt9JwotKwotKwotKwotKwotKwotKwotKwotKyMg SWYgbm8gQyBjb21waWxlciB3YXMgc3BlY2lmaWVkLCB1c2UgQ0MuCi0rTFRDQz0ke0xUQ0MtIiRD QyJ9Ci0rCi0rIyBJZiBubyBDIGNvbXBpbGVyIGZsYWdzIHdlcmUgc3BlY2lmaWVkLCB1c2UgQ0ZM QUdTLgotK0xUQ0ZMQUdTPSR7TFRDRkxBR1MtIiRDRkxBR1MifQotKwotKyMgQWxsb3cgQ0MgdG8g YmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmd1bWVudHMuCi0rY29tcGlsZXI9JENDCi0rCi0rIyBT YXZlIHRoZSBkZWZhdWx0IGNvbXBpbGVyLCBzaW5jZSBpdCBnZXRzIG92ZXJ3cml0dGVuIHdoZW4g dGhlIG90aGVyCi0rIyB0YWdzIGFyZSBiZWluZyB0ZXN0ZWQsIGFuZCBfTFRfVEFHVkFSKGNvbXBp bGVyLCBbXSkgaXMgYSBOT1AuCi0rY29tcGlsZXJfREVGQVVMVD0kQ0MKLSsKLSsjIHNhdmUgd2Fy bmluZ3MvYm9pbGVycGxhdGUgb2Ygc2ltcGxlIHRlc3QgY29kZQotK2FjX291dGZpbGU9Y29uZnRl c3QuJGFjX29iamV4dAotK2VjaG8gIiRsdF9zaW1wbGVfY29tcGlsZV90ZXN0X2NvZGUiID5jb25m dGVzdC4kYWNfZXh0Ci0rZXZhbCAiJGFjX2NvbXBpbGUiIDI+JjEgPi9kZXYvbnVsbCB8ICRTRUQg Jy9eJC9kOyAvXiAqKy9kJyA+Y29uZnRlc3QuZXJyCi0rX2x0X2NvbXBpbGVyX2JvaWxlcnBsYXRl PWBjYXQgY29uZnRlc3QuZXJyYAotKyRSTSBjb25mdGVzdCoKLSsKLSthY19vdXRmaWxlPWNvbmZ0 ZXN0LiRhY19vYmpleHQKLStlY2hvICIkbHRfc2ltcGxlX2xpbmtfdGVzdF9jb2RlIiA+Y29uZnRl c3QuJGFjX2V4dAotK2V2YWwgIiRhY19saW5rIiAyPiYxID4vZGV2L251bGwgfCAkU0VEICcvXiQv ZDsgL14gKisvZCcgPmNvbmZ0ZXN0LmVycgotK19sdF9saW5rZXJfYm9pbGVycGxhdGU9YGNhdCBj b25mdGVzdC5lcnJgCi0rJFJNIC1yIGNvbmZ0ZXN0KgotKwotKwotKyMjIENBVkVBVCBFTVBUT1I6 Ci0rIyMgVGhlcmUgaXMgbm8gZW5jYXBzdWxhdGlvbiB3aXRoaW4gdGhlIGZvbGxvd2luZyBtYWNy b3MsIGRvIG5vdCBjaGFuZ2UKLSsjIyB0aGUgcnVubmluZyBvcmRlciBvciBvdGhlcndpc2UgbW92 ZSB0aGVtIGFyb3VuZCB1bmxlc3MgeW91IGtub3cgZXhhY3RseQotKyMjIHdoYXQgeW91IGFyZSBk b2luZy4uLgotK2lmIHRlc3QgLW4gIiRjb21waWxlciI7IHRoZW4KLSsKLStsdF9wcm9nX2NvbXBp bGVyX25vX2J1aWx0aW5fZmxhZz0KLSsKLStpZiB0ZXN0ICIkR0NDIiA9IHllczsgdGhlbgotKyAg bHRfcHJvZ19jb21waWxlcl9ub19idWlsdGluX2ZsYWc9JyAtZm5vLWJ1aWx0aW4nCi0rCi0rICB7 ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgaWYgJGNvbXBpbGVyIHN1cHBvcnRz IC1mbm8tcnR0aSAtZm5vLWV4Y2VwdGlvbnMiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIGlm ICRjb21waWxlciBzdXBwb3J0cyAtZm5vLXJ0dGkgLWZuby1leGNlcHRpb25zLi4uICIgPiY2OyB9 Ci0raWYgdGVzdCAiJHtsdF9jdl9wcm9nX2NvbXBpbGVyX3J0dGlfZXhjZXB0aW9ucytzZXR9IiA9 IHNldDsgdGhlbgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rICBsdF9j dl9wcm9nX2NvbXBpbGVyX3J0dGlfZXhjZXB0aW9ucz1ubwotKyAgIGFjX291dGZpbGU9Y29uZnRl c3QuJGFjX29iamV4dAotKyAgIGVjaG8gIiRsdF9zaW1wbGVfY29tcGlsZV90ZXN0X2NvZGUiID4g Y29uZnRlc3QuJGFjX2V4dAotKyAgIGx0X2NvbXBpbGVyX2ZsYWc9Ii1mbm8tcnR0aSAtZm5vLWV4 Y2VwdGlvbnMiCi0rICAgIyBJbnNlcnQgdGhlIG9wdGlvbiBlaXRoZXIgKDEpIGFmdGVyIHRoZSBs YXN0ICpGTEFHUyB2YXJpYWJsZSwgb3IKLSsgICAjICgyKSBiZWZvcmUgYSB3b3JkIGNvbnRhaW5p bmcgImNvbmZ0ZXN0LiIsIG9yICgzKSBhdCB0aGUgZW5kLgotKyAgICMgTm90ZSB0aGF0ICRhY19j b21waWxlIGl0c2VsZiBkb2VzIG5vdCBjb250YWluIGJhY2tzbGFzaGVzIGFuZCBiZWdpbnMKLSsg ICAjIHdpdGggYSBkb2xsYXIgc2lnbiAobm90IGEgaHlwaGVuKSwgc28gdGhlIGVjaG8gc2hvdWxk IHdvcmsgY29ycmVjdGx5LgotKyAgICMgVGhlIG9wdGlvbiBpcyByZWZlcmVuY2VkIHZpYSBhIHZh cmlhYmxlIHRvIGF2b2lkIGNvbmZ1c2luZyBzZWQuCi0rICAgbHRfY29tcGlsZT1gZWNobyAiJGFj X2NvbXBpbGUiIHwgJFNFRCBcCi0rICAgLWUgJ3M6LipGTEFHU31cezAsMVx9IDomJGx0X2NvbXBp bGVyX2ZsYWcgOjsgdCcgXAotKyAgIC1lICdzOiBbXiBdKmNvbmZ0ZXN0XC46ICRsdF9jb21waWxl cl9mbGFnJjo7IHQnIFwKLSsgICAtZSAnczokOiAkbHRfY29tcGlsZXJfZmxhZzonYAotKyAgIChl dmFsIGVjaG8gIlwiXCRhc19tZTo5MjgyOiAkbHRfY29tcGlsZVwiIiA+JjUpCi0rICAgKGV2YWwg IiRsdF9jb21waWxlIiAyPmNvbmZ0ZXN0LmVycikKLSsgICBhY19zdGF0dXM9JD8KLSsgICBjYXQg Y29uZnRlc3QuZXJyID4mNQotKyAgIGVjaG8gIiRhc19tZTo5Mjg2OiBcJD8gPSAkYWNfc3RhdHVz IiA+JjUKLSsgICBpZiAoZXhpdCAkYWNfc3RhdHVzKSAmJiB0ZXN0IC1zICIkYWNfb3V0ZmlsZSI7 IHRoZW4KLSsgICAgICMgVGhlIGNvbXBpbGVyIGNhbiBvbmx5IHdhcm4gYW5kIGlnbm9yZSB0aGUg b3B0aW9uIGlmIG5vdCByZWNvZ25pemVkCi0rICAgICAjIFNvIHNheSBubyBpZiB0aGVyZSBhcmUg d2FybmluZ3Mgb3RoZXIgdGhhbiB0aGUgdXN1YWwgb3V0cHV0LgotKyAgICAgJEVDSE8gIlgkX2x0 X2NvbXBpbGVyX2JvaWxlcnBsYXRlIiB8ICRYc2VkIC1lICcvXiQvZCcgPmNvbmZ0ZXN0LmV4cAot KyAgICAgJFNFRCAnL14kL2Q7IC9eICorL2QnIGNvbmZ0ZXN0LmVyciA+Y29uZnRlc3QuZXIyCi0r ICAgICBpZiB0ZXN0ICEgLXMgY29uZnRlc3QuZXIyIHx8IGRpZmYgY29uZnRlc3QuZXhwIGNvbmZ0 ZXN0LmVyMiA+L2Rldi9udWxsOyB0aGVuCi0rICAgICAgIGx0X2N2X3Byb2dfY29tcGlsZXJfcnR0 aV9leGNlcHRpb25zPXllcwotKyAgICAgZmkKLSsgICBmaQotKyAgICRSTSBjb25mdGVzdCoKLSsK LStmaQotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRsdF9jdl9wcm9nX2Nv bXBpbGVyX3J0dGlfZXhjZXB0aW9ucyIgPiY1Ci0rJGFzX2VjaG8gIiRsdF9jdl9wcm9nX2NvbXBp bGVyX3J0dGlfZXhjZXB0aW9ucyIgPiY2OyB9Ci0rCi0raWYgdGVzdCB4IiRsdF9jdl9wcm9nX2Nv bXBpbGVyX3J0dGlfZXhjZXB0aW9ucyIgPSB4eWVzOyB0aGVuCi0rICAgIGx0X3Byb2dfY29tcGls ZXJfbm9fYnVpbHRpbl9mbGFnPSIkbHRfcHJvZ19jb21waWxlcl9ub19idWlsdGluX2ZsYWcgLWZu by1ydHRpIC1mbm8tZXhjZXB0aW9ucyIKLStlbHNlCi0rICAgIDoKLStmaQotKwotK2ZpCi0rCi0r Ci0rCi0rCi0rCi0rCi0rICBsdF9wcm9nX2NvbXBpbGVyX3dsPQotK2x0X3Byb2dfY29tcGlsZXJf cGljPQotK2x0X3Byb2dfY29tcGlsZXJfc3RhdGljPQotKwotK3sgJGFzX2VjaG8gIiRhc19tZTok TElORU5POiBjaGVja2luZyBmb3IgJGNvbXBpbGVyIG9wdGlvbiB0byBwcm9kdWNlIFBJQyIgPiY1 Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yICRjb21waWxlciBvcHRpb24gdG8gcHJvZHVjZSBQ SUMuLi4gIiA+JjY7IH0KLSsKLSsgIGlmIHRlc3QgIiRHQ0MiID0geWVzOyB0aGVuCi0rICAgIGx0 X3Byb2dfY29tcGlsZXJfd2w9Jy1XbCwnCi0rICAgIGx0X3Byb2dfY29tcGlsZXJfc3RhdGljPSct c3RhdGljJwotKwotKyAgICBjYXNlICRob3N0X29zIGluCi0rICAgICAgYWl4KikKLSsgICAgICAj IEFsbCBBSVggY29kZSBpcyBQSUMuCi0rICAgICAgaWYgdGVzdCAiJGhvc3RfY3B1IiA9IGlhNjQ7 IHRoZW4KLSsJIyBBSVggNSBub3cgc3VwcG9ydHMgSUE2NCBwcm9jZXNzb3IKLSsJbHRfcHJvZ19j b21waWxlcl9zdGF0aWM9Jy1Cc3RhdGljJwotKyAgICAgIGZpCi0rICAgICAgOzsKLSsKLSsgICAg YW1pZ2FvcyopCi0rICAgICAgY2FzZSAkaG9zdF9jcHUgaW4KLSsgICAgICBwb3dlcnBjKQotKyAg ICAgICAgICAgICMgc2VlIGNvbW1lbnQgYWJvdXQgQW1pZ2FPUzQgLnNvIHN1cHBvcnQKLSsgICAg ICAgICAgICBsdF9wcm9nX2NvbXBpbGVyX3BpYz0nLWZQSUMnCi0rICAgICAgICA7OwotKyAgICAg IG02OGspCi0rICAgICAgICAgICAgIyBGSVhNRTogd2UgbmVlZCBhdCBsZWFzdCA2ODAyMCBjb2Rl IHRvIGJ1aWxkIHNoYXJlZCBsaWJyYXJpZXMsIGJ1dAotKyAgICAgICAgICAgICMgYWRkaW5nIHRo ZSBgLW02ODAyMCcgZmxhZyB0byBHQ0MgcHJldmVudHMgYnVpbGRpbmcgYW55dGhpbmcgYmV0dGVy LAotKyAgICAgICAgICAgICMgbGlrZSBgLW02ODA0MCcuCi0rICAgICAgICAgICAgbHRfcHJvZ19j b21waWxlcl9waWM9Jy1tNjgwMjAgLXJlc2lkZW50MzIgLW1hbHdheXMtcmVzdG9yZS1hNCcKLSsg ICAgICAgIDs7Ci0rICAgICAgZXNhYwotKyAgICAgIDs7Ci0rCi0rICAgIGJlb3MqIHwgaXJpeDUq IHwgaXJpeDYqIHwgbm9uc3RvcHV4KiB8IG9zZjMqIHwgb3NmNCogfCBvc2Y1KikKLSsgICAgICAj IFBJQyBpcyB0aGUgZGVmYXVsdCBmb3IgdGhlc2UgT1Nlcy4KLSsgICAgICA7OwotKwotKyAgICBt aW5ndyogfCBjeWd3aW4qIHwgcHczMiogfCBvczIqIHwgY2VnY2MqKQotKyAgICAgICMgVGhpcyBo YWNrIGlzIHNvIHRoYXQgdGhlIHNvdXJjZSBmaWxlIGNhbiB0ZWxsIHdoZXRoZXIgaXQgaXMgYmVp bmcKLSsgICAgICAjIGJ1aWx0IGZvciBpbmNsdXNpb24gaW4gYSBkbGwgKGFuZCBzaG91bGQgZXhw b3J0IHN5bWJvbHMgZm9yIGV4YW1wbGUpLgotKyAgICAgICMgQWx0aG91Z2ggdGhlIGN5Z3dpbiBn Y2MgaWdub3JlcyAtZlBJQywgc3RpbGwgbmVlZCB0aGlzIGZvciBvbGQtc3R5bGUKLSsgICAgICAj ICgtLWRpc2FibGUtYXV0by1pbXBvcnQpIGxpYnJhcmllcwotKyAgICAgIGx0X3Byb2dfY29tcGls ZXJfcGljPSctRERMTF9FWFBPUlQnCi0rICAgICAgOzsKLSsKLSsgICAgZGFyd2luKiB8IHJoYXBz b2R5KikKLSsgICAgICAjIFBJQyBpcyB0aGUgZGVmYXVsdCBvbiB0aGlzIHBsYXRmb3JtCi0rICAg ICAgIyBDb21tb24gc3ltYm9scyBub3QgYWxsb3dlZCBpbiBNSF9EWUxJQiBmaWxlcwotKyAgICAg IGx0X3Byb2dfY29tcGlsZXJfcGljPSctZm5vLWNvbW1vbicKLSsgICAgICA7OwotKwotKyAgICBo cHV4KikKLSsgICAgICAjIFBJQyBpcyB0aGUgZGVmYXVsdCBmb3IgNjQtYml0IFBBIEhQLVVYLCBi dXQgbm90IGZvciAzMi1iaXQKLSsgICAgICAjIFBBIEhQLVVYLiAgT24gSUE2NCBIUC1VWCwgUElD IGlzIHRoZSBkZWZhdWx0IGJ1dCB0aGUgcGljIGZsYWcKLSsgICAgICAjIHNldHMgdGhlIGRlZmF1 bHQgVExTIG1vZGVsIGFuZCBhZmZlY3RzIGlubGluaW5nLgotKyAgICAgIGNhc2UgJGhvc3RfY3B1 IGluCi0rICAgICAgaHBwYSo2NCopCi0rCSMgK1ogdGhlIGRlZmF1bHQKLSsJOzsKLSsgICAgICAq KQotKwlsdF9wcm9nX2NvbXBpbGVyX3BpYz0nLWZQSUMnCi0rCTs7Ci0rICAgICAgZXNhYwotKyAg ICAgIDs7Ci0rCi0rICAgIGludGVyaXhbMy05XSopCi0rICAgICAgIyBJbnRlcml4IDMueCBnY2Mg LWZwaWMvLWZQSUMgb3B0aW9ucyBnZW5lcmF0ZSBicm9rZW4gY29kZS4KLSsgICAgICAjIEluc3Rl YWQsIHdlIHJlbG9jYXRlIHNoYXJlZCBsaWJyYXJpZXMgYXQgcnVudGltZS4KLSsgICAgICA7Owot KwotKyAgICBtc2Rvc2RqZ3BwKikKLSsgICAgICAjIEp1c3QgYmVjYXVzZSB3ZSB1c2UgR0NDIGRv ZXNuJ3QgbWVhbiB3ZSBzdWRkZW5seSBnZXQgc2hhcmVkIGxpYnJhcmllcwotKyAgICAgICMgb24g c3lzdGVtcyB0aGF0IGRvbid0IHN1cHBvcnQgdGhlbS4KLSsgICAgICBsdF9wcm9nX2NvbXBpbGVy X2Nhbl9idWlsZF9zaGFyZWQ9bm8KLSsgICAgICBlbmFibGVfc2hhcmVkPW5vCi0rICAgICAgOzsK LSsKLSsgICAgKm50byogfCAqcW54KikKLSsgICAgICAjIFFOWCB1c2VzIEdOVSBDKyssIGJ1dCBu ZWVkIHRvIGRlZmluZSAtc2hhcmVkIG9wdGlvbiB0b28sIG90aGVyd2lzZQotKyAgICAgICMgaXQg d2lsbCBjb3JlZHVtcC4KLSsgICAgICBsdF9wcm9nX2NvbXBpbGVyX3BpYz0nLWZQSUMgLXNoYXJl ZCcKLSsgICAgICA7OwotKwotKyAgICBzeXN2NCpNUCopCi0rICAgICAgaWYgdGVzdCAtZCAvdXNy L25lYzsgdGhlbgotKwlsdF9wcm9nX2NvbXBpbGVyX3BpYz0tS2NvbmZvcm1fcGljCi0rICAgICAg ZmkKLSsgICAgICA7OwotKwotKyAgICAqKQotKyAgICAgIGx0X3Byb2dfY29tcGlsZXJfcGljPSct ZlBJQycKLSsgICAgICA7OwotKyAgICBlc2FjCi0rICBlbHNlCi0rICAgICMgUE9SVE1FIENoZWNr IGZvciBmbGFnIHRvIHBhc3MgbGlua2VyIGZsYWdzIHRocm91Z2ggdGhlIHN5c3RlbSBjb21waWxl ci4KLSsgICAgY2FzZSAkaG9zdF9vcyBpbgotKyAgICBhaXgqKQotKyAgICAgIGx0X3Byb2dfY29t cGlsZXJfd2w9Jy1XbCwnCi0rICAgICAgaWYgdGVzdCAiJGhvc3RfY3B1IiA9IGlhNjQ7IHRoZW4K LSsJIyBBSVggNSBub3cgc3VwcG9ydHMgSUE2NCBwcm9jZXNzb3IKLSsJbHRfcHJvZ19jb21waWxl cl9zdGF0aWM9Jy1Cc3RhdGljJwotKyAgICAgIGVsc2UKLSsJbHRfcHJvZ19jb21waWxlcl9zdGF0 aWM9Jy1ibnNvIC1iSTovbGliL3N5c2NhbGxzLmV4cCcKLSsgICAgICBmaQotKyAgICAgIDs7Ci0r Ci0rICAgIG1pbmd3KiB8IGN5Z3dpbiogfCBwdzMyKiB8IG9zMiogfCBjZWdjYyopCi0rICAgICAg IyBUaGlzIGhhY2sgaXMgc28gdGhhdCB0aGUgc291cmNlIGZpbGUgY2FuIHRlbGwgd2hldGhlciBp dCBpcyBiZWluZwotKyAgICAgICMgYnVpbHQgZm9yIGluY2x1c2lvbiBpbiBhIGRsbCAoYW5kIHNo b3VsZCBleHBvcnQgc3ltYm9scyBmb3IgZXhhbXBsZSkuCi0rICAgICAgbHRfcHJvZ19jb21waWxl cl9waWM9Jy1ERExMX0VYUE9SVCcKLSsgICAgICA7OwotKwotKyAgICBocHV4OSogfCBocHV4MTAq IHwgaHB1eDExKikKLSsgICAgICBsdF9wcm9nX2NvbXBpbGVyX3dsPSctV2wsJwotKyAgICAgICMg UElDIGlzIHRoZSBkZWZhdWx0IGZvciBJQTY0IEhQLVVYIGFuZCA2NC1iaXQgSFAtVVgsIGJ1dAot KyAgICAgICMgbm90IGZvciBQQSBIUC1VWC4KLSsgICAgICBjYXNlICRob3N0X2NwdSBpbgotKyAg ICAgIGhwcGEqNjQqfGlhNjQqKQotKwkjICtaIHRoZSBkZWZhdWx0Ci0rCTs7Ci0rICAgICAgKikK LSsJbHRfcHJvZ19jb21waWxlcl9waWM9JytaJwotKwk7OwotKyAgICAgIGVzYWMKLSsgICAgICAj IElzIHRoZXJlIGEgYmV0dGVyIGx0X3Byb2dfY29tcGlsZXJfc3RhdGljIHRoYXQgd29ya3Mgd2l0 aCB0aGUgYnVuZGxlZCBDQz8KLSsgICAgICBsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYz0nJHt3bH0t YSAke3dsfWFyY2hpdmUnCi0rICAgICAgOzsKLSsKLSsgICAgaXJpeDUqIHwgaXJpeDYqIHwgbm9u c3RvcHV4KikKLSsgICAgICBsdF9wcm9nX2NvbXBpbGVyX3dsPSctV2wsJwotKyAgICAgICMgUElD ICh3aXRoIC1LUElDKSBpcyB0aGUgZGVmYXVsdC4KLSsgICAgICBsdF9wcm9nX2NvbXBpbGVyX3N0 YXRpYz0nLW5vbl9zaGFyZWQnCi0rICAgICAgOzsKLSsKLSsgICAgbGludXgqIHwgaypic2QqLWdu dSkKLSsgICAgICBjYXNlICRjY19iYXNlbmFtZSBpbgotKyAgICAgICMgb2xkIEludGVsIGZvciB4 ODZfNjQgd2hpY2ggc3RpbGwgc3VwcG9ydGVkIC1LUElDLgotKyAgICAgIGVjYyopCi0rCWx0X3By b2dfY29tcGlsZXJfd2w9Jy1XbCwnCi0rCWx0X3Byb2dfY29tcGlsZXJfcGljPSctS1BJQycKLSsJ bHRfcHJvZ19jb21waWxlcl9zdGF0aWM9Jy1zdGF0aWMnCi0rICAgICAgICA7OwotKyAgICAgICMg aWNjIHVzZWQgdG8gYmUgaW5jb21wYXRpYmxlIHdpdGggR0NDLgotKyAgICAgICMgSUNDIDEwIGRv ZXNuJ3QgYWNjZXB0IC1LUElDIGFueSBtb3JlLgotKyAgICAgIGljYyogfCBpZm9ydCopCi0rCWx0 X3Byb2dfY29tcGlsZXJfd2w9Jy1XbCwnCi0rCWx0X3Byb2dfY29tcGlsZXJfcGljPSctZlBJQycK LSsJbHRfcHJvZ19jb21waWxlcl9zdGF0aWM9Jy1zdGF0aWMnCi0rICAgICAgICA7OwotKyAgICAg ICMgTGFoZXkgRm9ydHJhbiA4LjEuCi0rICAgICAgbGY5NSopCi0rCWx0X3Byb2dfY29tcGlsZXJf d2w9Jy1XbCwnCi0rCWx0X3Byb2dfY29tcGlsZXJfcGljPSctLXNoYXJlZCcKLSsJbHRfcHJvZ19j b21waWxlcl9zdGF0aWM9Jy0tc3RhdGljJwotKwk7OwotKyAgICAgIHBnY2MqIHwgcGdmNzcqIHwg cGdmOTAqIHwgcGdmOTUqKQotKyAgICAgICAgIyBQb3J0bGFuZCBHcm91cCBjb21waWxlcnMgKCpu b3QqIHRoZSBQZW50aXVtIGdjYyBjb21waWxlciwKLSsJIyB3aGljaCBsb29rcyB0byBiZSBhIGRl YWQgcHJvamVjdCkKLSsJbHRfcHJvZ19jb21waWxlcl93bD0nLVdsLCcKLSsJbHRfcHJvZ19jb21w aWxlcl9waWM9Jy1mcGljJwotKwlsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYz0nLUJzdGF0aWMnCi0r ICAgICAgICA7OwotKyAgICAgIGNjYyopCi0rICAgICAgICBsdF9wcm9nX2NvbXBpbGVyX3dsPSct V2wsJwotKyAgICAgICAgIyBBbGwgQWxwaGEgY29kZSBpcyBQSUMuCi0rICAgICAgICBsdF9wcm9n X2NvbXBpbGVyX3N0YXRpYz0nLW5vbl9zaGFyZWQnCi0rICAgICAgICA7OwotKyAgICAgIHhsKikK LSsJIyBJQk0gWEwgQyA4LjAvRm9ydHJhbiAxMC4xIG9uIFBQQwotKwlsdF9wcm9nX2NvbXBpbGVy X3dsPSctV2wsJwotKwlsdF9wcm9nX2NvbXBpbGVyX3BpYz0nLXFwaWMnCi0rCWx0X3Byb2dfY29t cGlsZXJfc3RhdGljPSctcXN0YXRpY2xpbmsnCi0rCTs7Ci0rICAgICAgKikKLSsJY2FzZSBgJEND IC1WIDI+JjEgfCBzZWQgNXFgIGluCi0rCSpTdW5cIEMqKQotKwkgICMgU3VuIEMgNS45Ci0rCSAg bHRfcHJvZ19jb21waWxlcl9waWM9Jy1LUElDJwotKwkgIGx0X3Byb2dfY29tcGlsZXJfc3RhdGlj PSctQnN0YXRpYycKLSsJICBsdF9wcm9nX2NvbXBpbGVyX3dsPSctV2wsJwotKwkgIDs7Ci0rCSpT dW5cIEYqKQotKwkgICMgU3VuIEZvcnRyYW4gOC4zIHBhc3NlcyBhbGwgdW5yZWNvZ25pemVkIGZs YWdzIHRvIHRoZSBsaW5rZXIKLSsJICBsdF9wcm9nX2NvbXBpbGVyX3BpYz0nLUtQSUMnCi0rCSAg bHRfcHJvZ19jb21waWxlcl9zdGF0aWM9Jy1Cc3RhdGljJwotKwkgIGx0X3Byb2dfY29tcGlsZXJf d2w9JycKLSsJICA7OwotKwllc2FjCi0rCTs7Ci0rICAgICAgZXNhYwotKyAgICAgIDs7Ci0rCi0r ICAgIG5ld3NvczYpCi0rICAgICAgbHRfcHJvZ19jb21waWxlcl9waWM9Jy1LUElDJwotKyAgICAg IGx0X3Byb2dfY29tcGlsZXJfc3RhdGljPSctQnN0YXRpYycKLSsgICAgICA7OwotKwotKyAgICAq bnRvKiB8ICpxbngqKQotKyAgICAgICMgUU5YIHVzZXMgR05VIEMrKywgYnV0IG5lZWQgdG8gZGVm aW5lIC1zaGFyZWQgb3B0aW9uIHRvbywgb3RoZXJ3aXNlCi0rICAgICAgIyBpdCB3aWxsIGNvcmVk dW1wLgotKyAgICAgIGx0X3Byb2dfY29tcGlsZXJfcGljPSctZlBJQyAtc2hhcmVkJwotKyAgICAg IDs7Ci0rCi0rICAgIG9zZjMqIHwgb3NmNCogfCBvc2Y1KikKLSsgICAgICBsdF9wcm9nX2NvbXBp bGVyX3dsPSctV2wsJwotKyAgICAgICMgQWxsIE9TRi8xIGNvZGUgaXMgUElDLgotKyAgICAgIGx0 X3Byb2dfY29tcGlsZXJfc3RhdGljPSctbm9uX3NoYXJlZCcKLSsgICAgICA7OwotKwotKyAgICBy ZG9zKikKLSsgICAgICBsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYz0nLW5vbl9zaGFyZWQnCi0rICAg ICAgOzsKLSsKLSsgICAgc29sYXJpcyopCi0rICAgICAgbHRfcHJvZ19jb21waWxlcl9waWM9Jy1L UElDJwotKyAgICAgIGx0X3Byb2dfY29tcGlsZXJfc3RhdGljPSctQnN0YXRpYycKLSsgICAgICBj YXNlICRjY19iYXNlbmFtZSBpbgotKyAgICAgIGY3NyogfCBmOTAqIHwgZjk1KikKLSsJbHRfcHJv Z19jb21waWxlcl93bD0nLVFvcHRpb24gbGQgJzs7Ci0rICAgICAgKikKLSsJbHRfcHJvZ19jb21w aWxlcl93bD0nLVdsLCc7OwotKyAgICAgIGVzYWMKLSsgICAgICA7OwotKwotKyAgICBzdW5vczQq KQotKyAgICAgIGx0X3Byb2dfY29tcGlsZXJfd2w9Jy1Rb3B0aW9uIGxkICcKLSsgICAgICBsdF9w cm9nX2NvbXBpbGVyX3BpYz0nLVBJQycKLSsgICAgICBsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYz0n LUJzdGF0aWMnCi0rICAgICAgOzsKLSsKLSsgICAgc3lzdjQgfCBzeXN2NC4ydXcyKiB8IHN5c3Y0 LjMqKQotKyAgICAgIGx0X3Byb2dfY29tcGlsZXJfd2w9Jy1XbCwnCi0rICAgICAgbHRfcHJvZ19j b21waWxlcl9waWM9Jy1LUElDJwotKyAgICAgIGx0X3Byb2dfY29tcGlsZXJfc3RhdGljPSctQnN0 YXRpYycKLSsgICAgICA7OwotKwotKyAgICBzeXN2NCpNUCopCi0rICAgICAgaWYgdGVzdCAtZCAv dXNyL25lYyA7dGhlbgotKwlsdF9wcm9nX2NvbXBpbGVyX3BpYz0nLUtjb25mb3JtX3BpYycKLSsJ bHRfcHJvZ19jb21waWxlcl9zdGF0aWM9Jy1Cc3RhdGljJwotKyAgICAgIGZpCi0rICAgICAgOzsK LSsKLSsgICAgc3lzdjUqIHwgdW5peHdhcmUqIHwgc2NvMy4ydjUqIHwgc2NvNXY2KiB8IE9wZW5V TklYKikKLSsgICAgICBsdF9wcm9nX2NvbXBpbGVyX3dsPSctV2wsJwotKyAgICAgIGx0X3Byb2df Y29tcGlsZXJfcGljPSctS1BJQycKLSsgICAgICBsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYz0nLUJz dGF0aWMnCi0rICAgICAgOzsKLSsKLSsgICAgdW5pY29zKikKLSsgICAgICBsdF9wcm9nX2NvbXBp bGVyX3dsPSctV2wsJwotKyAgICAgIGx0X3Byb2dfY29tcGlsZXJfY2FuX2J1aWxkX3NoYXJlZD1u bwotKyAgICAgIDs7Ci0rCi0rICAgIHV0czQqKQotKyAgICAgIGx0X3Byb2dfY29tcGlsZXJfcGlj PSctcGljJwotKyAgICAgIGx0X3Byb2dfY29tcGlsZXJfc3RhdGljPSctQnN0YXRpYycKLSsgICAg ICA7OwotKwotKyAgICAqKQotKyAgICAgIGx0X3Byb2dfY29tcGlsZXJfY2FuX2J1aWxkX3NoYXJl ZD1ubwotKyAgICAgIDs7Ci0rICAgIGVzYWMKLSsgIGZpCi0rCi0rY2FzZSAkaG9zdF9vcyBpbgot KyAgIyBGb3IgcGxhdGZvcm1zIHdoaWNoIGRvIG5vdCBzdXBwb3J0IFBJQywgLURQSUMgaXMgbWVh bmluZ2xlc3M6Ci0rICAqZGpncHAqKQotKyAgICBsdF9wcm9nX2NvbXBpbGVyX3BpYz0KLSsgICAg OzsKLSsgICopCi0rICAgIGx0X3Byb2dfY29tcGlsZXJfcGljPSIkbHRfcHJvZ19jb21waWxlcl9w aWMgLURQSUMiCi0rICAgIDs7Ci0rZXNhYwotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBy ZXN1bHQ6ICRsdF9wcm9nX2NvbXBpbGVyX3BpYyIgPiY1Ci0rJGFzX2VjaG8gIiRsdF9wcm9nX2Nv bXBpbGVyX3BpYyIgPiY2OyB9Ci0rCi0rCi0rCi0rCi0rCi0rCi0rIwotKyMgQ2hlY2sgdG8gbWFr ZSBzdXJlIHRoZSBQSUMgZmxhZyBhY3R1YWxseSB3b3Jrcy4KLSsjCi0raWYgdGVzdCAtbiAiJGx0 X3Byb2dfY29tcGlsZXJfcGljIjsgdGhlbgotKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86 IGNoZWNraW5nIGlmICRjb21waWxlciBQSUMgZmxhZyAkbHRfcHJvZ19jb21waWxlcl9waWMgd29y a3MiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIGlmICRjb21waWxlciBQSUMgZmxhZyAkbHRf cHJvZ19jb21waWxlcl9waWMgd29ya3MuLi4gIiA+JjY7IH0KLStpZiB0ZXN0ICIke2x0X2N2X3By b2dfY29tcGlsZXJfcGljX3dvcmtzK3NldH0iID0gc2V0OyB0aGVuCi0rICAkYXNfZWNob19uICIo Y2FjaGVkKSAiID4mNgotK2Vsc2UKLSsgIGx0X2N2X3Byb2dfY29tcGlsZXJfcGljX3dvcmtzPW5v Ci0rICAgYWNfb3V0ZmlsZT1jb25mdGVzdC4kYWNfb2JqZXh0Ci0rICAgZWNobyAiJGx0X3NpbXBs ZV9jb21waWxlX3Rlc3RfY29kZSIgPiBjb25mdGVzdC4kYWNfZXh0Ci0rICAgbHRfY29tcGlsZXJf ZmxhZz0iJGx0X3Byb2dfY29tcGlsZXJfcGljIC1EUElDIgotKyAgICMgSW5zZXJ0IHRoZSBvcHRp b24gZWl0aGVyICgxKSBhZnRlciB0aGUgbGFzdCAqRkxBR1MgdmFyaWFibGUsIG9yCi0rICAgIyAo MikgYmVmb3JlIGEgd29yZCBjb250YWluaW5nICJjb25mdGVzdC4iLCBvciAoMykgYXQgdGhlIGVu ZC4KLSsgICAjIE5vdGUgdGhhdCAkYWNfY29tcGlsZSBpdHNlbGYgZG9lcyBub3QgY29udGFpbiBi YWNrc2xhc2hlcyBhbmQgYmVnaW5zCi0rICAgIyB3aXRoIGEgZG9sbGFyIHNpZ24gKG5vdCBhIGh5 cGhlbiksIHNvIHRoZSBlY2hvIHNob3VsZCB3b3JrIGNvcnJlY3RseS4KLSsgICAjIFRoZSBvcHRp b24gaXMgcmVmZXJlbmNlZCB2aWEgYSB2YXJpYWJsZSB0byBhdm9pZCBjb25mdXNpbmcgc2VkLgot KyAgIGx0X2NvbXBpbGU9YGVjaG8gIiRhY19jb21waWxlIiB8ICRTRUQgXAotKyAgIC1lICdzOi4q RkxBR1N9XHswLDFcfSA6JiRsdF9jb21waWxlcl9mbGFnIDo7IHQnIFwKLSsgICAtZSAnczogW14g XSpjb25mdGVzdFwuOiAkbHRfY29tcGlsZXJfZmxhZyY6OyB0JyBcCi0rICAgLWUgJ3M6JDogJGx0 X2NvbXBpbGVyX2ZsYWc6J2AKLSsgICAoZXZhbCBlY2hvICJcIlwkYXNfbWU6OTYyMTogJGx0X2Nv bXBpbGVcIiIgPiY1KQotKyAgIChldmFsICIkbHRfY29tcGlsZSIgMj5jb25mdGVzdC5lcnIpCi0r ICAgYWNfc3RhdHVzPSQ/Ci0rICAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKLSsgICBlY2hvICIkYXNf bWU6OTYyNTogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0rICAgaWYgKGV4aXQgJGFjX3N0YXR1cykg JiYgdGVzdCAtcyAiJGFjX291dGZpbGUiOyB0aGVuCi0rICAgICAjIFRoZSBjb21waWxlciBjYW4g b25seSB3YXJuIGFuZCBpZ25vcmUgdGhlIG9wdGlvbiBpZiBub3QgcmVjb2duaXplZAotKyAgICAg IyBTbyBzYXkgbm8gaWYgdGhlcmUgYXJlIHdhcm5pbmdzIG90aGVyIHRoYW4gdGhlIHVzdWFsIG91 dHB1dC4KLSsgICAgICRFQ0hPICJYJF9sdF9jb21waWxlcl9ib2lsZXJwbGF0ZSIgfCAkWHNlZCAt ZSAnL14kL2QnID5jb25mdGVzdC5leHAKLSsgICAgICRTRUQgJy9eJC9kOyAvXiAqKy9kJyBjb25m dGVzdC5lcnIgPmNvbmZ0ZXN0LmVyMgotKyAgICAgaWYgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVyMiB8 fCBkaWZmIGNvbmZ0ZXN0LmV4cCBjb25mdGVzdC5lcjIgPi9kZXYvbnVsbDsgdGhlbgotKyAgICAg ICBsdF9jdl9wcm9nX2NvbXBpbGVyX3BpY193b3Jrcz15ZXMKLSsgICAgIGZpCi0rICAgZmkKLSsg ICAkUk0gY29uZnRlc3QqCi0rCi0rZmkKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVz dWx0OiAkbHRfY3ZfcHJvZ19jb21waWxlcl9waWNfd29ya3MiID4mNQotKyRhc19lY2hvICIkbHRf Y3ZfcHJvZ19jb21waWxlcl9waWNfd29ya3MiID4mNjsgfQotKwotK2lmIHRlc3QgeCIkbHRfY3Zf cHJvZ19jb21waWxlcl9waWNfd29ya3MiID0geHllczsgdGhlbgotKyAgICBjYXNlICRsdF9wcm9n X2NvbXBpbGVyX3BpYyBpbgotKyAgICAgIiIgfCAiICIqKSA7OwotKyAgICAgKikgbHRfcHJvZ19j b21waWxlcl9waWM9IiAkbHRfcHJvZ19jb21waWxlcl9waWMiIDs7Ci0rICAgICBlc2FjCi0rZWxz ZQotKyAgICBsdF9wcm9nX2NvbXBpbGVyX3BpYz0KLSsgICAgIGx0X3Byb2dfY29tcGlsZXJfY2Fu X2J1aWxkX3NoYXJlZD1ubwotK2ZpCi0rCi0rZmkKLSsKLSsKLSsKLSsKLSsKLSsKLSsjCi0rIyBD aGVjayB0byBtYWtlIHN1cmUgdGhlIHN0YXRpYyBmbGFnIGFjdHVhbGx5IHdvcmtzLgotKyMKLSt3 bD0kbHRfcHJvZ19jb21waWxlcl93bCBldmFsIGx0X3RtcF9zdGF0aWNfZmxhZz1cIiRsdF9wcm9n X2NvbXBpbGVyX3N0YXRpY1wiCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5n IGlmICRjb21waWxlciBzdGF0aWMgZmxhZyAkbHRfdG1wX3N0YXRpY19mbGFnIHdvcmtzIiA+JjUK LSskYXNfZWNob19uICJjaGVja2luZyBpZiAkY29tcGlsZXIgc3RhdGljIGZsYWcgJGx0X3RtcF9z dGF0aWNfZmxhZyB3b3Jrcy4uLiAiID4mNjsgfQotK2lmIHRlc3QgIiR7bHRfY3ZfcHJvZ19jb21w aWxlcl9zdGF0aWNfd29ya3Mrc2V0fSIgPSBzZXQ7IHRoZW4KLSsgICRhc19lY2hvX24gIihjYWNo ZWQpICIgPiY2Ci0rZWxzZQotKyAgbHRfY3ZfcHJvZ19jb21waWxlcl9zdGF0aWNfd29ya3M9bm8K LSsgICBzYXZlX0xERkxBR1M9IiRMREZMQUdTIgotKyAgIExERkxBR1M9IiRMREZMQUdTICRsdF90 bXBfc3RhdGljX2ZsYWciCi0rICAgZWNobyAiJGx0X3NpbXBsZV9saW5rX3Rlc3RfY29kZSIgPiBj b25mdGVzdC4kYWNfZXh0Ci0rICAgaWYgKGV2YWwgJGFjX2xpbmsgMj5jb25mdGVzdC5lcnIpICYm IHRlc3QgLXMgY29uZnRlc3QkYWNfZXhlZXh0OyB0aGVuCi0rICAgICAjIFRoZSBsaW5rZXIgY2Fu IG9ubHkgd2FybiBhbmQgaWdub3JlIHRoZSBvcHRpb24gaWYgbm90IHJlY29nbml6ZWQKLSsgICAg ICMgU28gc2F5IG5vIGlmIHRoZXJlIGFyZSB3YXJuaW5ncwotKyAgICAgaWYgdGVzdCAtcyBjb25m dGVzdC5lcnI7IHRoZW4KLSsgICAgICAgIyBBcHBlbmQgYW55IGVycm9ycyB0byB0aGUgY29uZmln LmxvZy4KLSsgICAgICAgY2F0IGNvbmZ0ZXN0LmVyciAxPiY1Ci0rICAgICAgICRFQ0hPICJYJF9s dF9saW5rZXJfYm9pbGVycGxhdGUiIHwgJFhzZWQgLWUgJy9eJC9kJyA+IGNvbmZ0ZXN0LmV4cAot KyAgICAgICAkU0VEICcvXiQvZDsgL14gKisvZCcgY29uZnRlc3QuZXJyID5jb25mdGVzdC5lcjIK LSsgICAgICAgaWYgZGlmZiBjb25mdGVzdC5leHAgY29uZnRlc3QuZXIyID4vZGV2L251bGw7IHRo ZW4KLSsgICAgICAgICBsdF9jdl9wcm9nX2NvbXBpbGVyX3N0YXRpY193b3Jrcz15ZXMKLSsgICAg ICAgZmkKLSsgICAgIGVsc2UKLSsgICAgICAgbHRfY3ZfcHJvZ19jb21waWxlcl9zdGF0aWNfd29y a3M9eWVzCi0rICAgICBmaQotKyAgIGZpCi0rICAgJFJNIC1yIGNvbmZ0ZXN0KgotKyAgIExERkxB R1M9IiRzYXZlX0xERkxBR1MiCi0rCi0rZmkKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzog cmVzdWx0OiAkbHRfY3ZfcHJvZ19jb21waWxlcl9zdGF0aWNfd29ya3MiID4mNQotKyRhc19lY2hv ICIkbHRfY3ZfcHJvZ19jb21waWxlcl9zdGF0aWNfd29ya3MiID4mNjsgfQotKwotK2lmIHRlc3Qg eCIkbHRfY3ZfcHJvZ19jb21waWxlcl9zdGF0aWNfd29ya3MiID0geHllczsgdGhlbgotKyAgICA6 Ci0rZWxzZQotKyAgICBsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYz0KLStmaQotKwotKwotKwotKwot KwotKwotKwotKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGlmICRjb21w aWxlciBzdXBwb3J0cyAtYyAtbyBmaWxlLiRhY19vYmpleHQiID4mNQotKyRhc19lY2hvX24gImNo ZWNraW5nIGlmICRjb21waWxlciBzdXBwb3J0cyAtYyAtbyBmaWxlLiRhY19vYmpleHQuLi4gIiA+ JjY7IH0KLStpZiB0ZXN0ICIke2x0X2N2X3Byb2dfY29tcGlsZXJfY19vK3NldH0iID0gc2V0OyB0 aGVuCi0rICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsgIGx0X2N2X3Byb2df Y29tcGlsZXJfY19vPW5vCi0rICAgJFJNIC1yIGNvbmZ0ZXN0IDI+L2Rldi9udWxsCi0rICAgbWtk aXIgY29uZnRlc3QKLSsgICBjZCBjb25mdGVzdAotKyAgIG1rZGlyIG91dAotKyAgIGVjaG8gIiRs dF9zaW1wbGVfY29tcGlsZV90ZXN0X2NvZGUiID4gY29uZnRlc3QuJGFjX2V4dAotKwotKyAgIGx0 X2NvbXBpbGVyX2ZsYWc9Ii1vIG91dC9jb25mdGVzdDIuJGFjX29iamV4dCIKLSsgICAjIEluc2Vy dCB0aGUgb3B0aW9uIGVpdGhlciAoMSkgYWZ0ZXIgdGhlIGxhc3QgKkZMQUdTIHZhcmlhYmxlLCBv cgotKyAgICMgKDIpIGJlZm9yZSBhIHdvcmQgY29udGFpbmluZyAiY29uZnRlc3QuIiwgb3IgKDMp IGF0IHRoZSBlbmQuCi0rICAgIyBOb3RlIHRoYXQgJGFjX2NvbXBpbGUgaXRzZWxmIGRvZXMgbm90 IGNvbnRhaW4gYmFja3NsYXNoZXMgYW5kIGJlZ2lucwotKyAgICMgd2l0aCBhIGRvbGxhciBzaWdu IChub3QgYSBoeXBoZW4pLCBzbyB0aGUgZWNobyBzaG91bGQgd29yayBjb3JyZWN0bHkuCi0rICAg bHRfY29tcGlsZT1gZWNobyAiJGFjX2NvbXBpbGUiIHwgJFNFRCBcCi0rICAgLWUgJ3M6LipGTEFH U31cezAsMVx9IDomJGx0X2NvbXBpbGVyX2ZsYWcgOjsgdCcgXAotKyAgIC1lICdzOiBbXiBdKmNv bmZ0ZXN0XC46ICRsdF9jb21waWxlcl9mbGFnJjo7IHQnIFwKLSsgICAtZSAnczokOiAkbHRfY29t cGlsZXJfZmxhZzonYAotKyAgIChldmFsIGVjaG8gIlwiXCRhc19tZTo5NzI2OiAkbHRfY29tcGls ZVwiIiA+JjUpCi0rICAgKGV2YWwgIiRsdF9jb21waWxlIiAyPm91dC9jb25mdGVzdC5lcnIpCi0r ICAgYWNfc3RhdHVzPSQ/Ci0rICAgY2F0IG91dC9jb25mdGVzdC5lcnIgPiY1Ci0rICAgZWNobyAi JGFzX21lOjk3MzA6IFwkPyA9ICRhY19zdGF0dXMiID4mNQotKyAgIGlmIChleGl0ICRhY19zdGF0 dXMpICYmIHRlc3QgLXMgb3V0L2NvbmZ0ZXN0Mi4kYWNfb2JqZXh0Ci0rICAgdGhlbgotKyAgICAg IyBUaGUgY29tcGlsZXIgY2FuIG9ubHkgd2FybiBhbmQgaWdub3JlIHRoZSBvcHRpb24gaWYgbm90 IHJlY29nbml6ZWQKLSsgICAgICMgU28gc2F5IG5vIGlmIHRoZXJlIGFyZSB3YXJuaW5ncwotKyAg ICAgJEVDSE8gIlgkX2x0X2NvbXBpbGVyX2JvaWxlcnBsYXRlIiB8ICRYc2VkIC1lICcvXiQvZCcg PiBvdXQvY29uZnRlc3QuZXhwCi0rICAgICAkU0VEICcvXiQvZDsgL14gKisvZCcgb3V0L2NvbmZ0 ZXN0LmVyciA+b3V0L2NvbmZ0ZXN0LmVyMgotKyAgICAgaWYgdGVzdCAhIC1zIG91dC9jb25mdGVz dC5lcjIgfHwgZGlmZiBvdXQvY29uZnRlc3QuZXhwIG91dC9jb25mdGVzdC5lcjIgPi9kZXYvbnVs bDsgdGhlbgotKyAgICAgICBsdF9jdl9wcm9nX2NvbXBpbGVyX2Nfbz15ZXMKLSsgICAgIGZpCi0r ICAgZmkKLSsgICBjaG1vZCB1K3cgLiAyPiY1Ci0rICAgJFJNIGNvbmZ0ZXN0KgotKyAgICMgU0dJ IEMrKyBjb21waWxlciB3aWxsIGNyZWF0ZSBkaXJlY3Rvcnkgb3V0L2lpX2ZpbGVzLyBmb3IKLSsg ICAjIHRlbXBsYXRlIGluc3RhbnRpYXRpb24KLSsgICB0ZXN0IC1kIG91dC9paV9maWxlcyAmJiAk Uk0gb3V0L2lpX2ZpbGVzLyogJiYgcm1kaXIgb3V0L2lpX2ZpbGVzCi0rICAgJFJNIG91dC8qICYm IHJtZGlyIG91dAotKyAgIGNkIC4uCi0rICAgJFJNIC1yIGNvbmZ0ZXN0Ci0rICAgJFJNIGNvbmZ0 ZXN0KgotKwotK2ZpCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGx0X2N2 X3Byb2dfY29tcGlsZXJfY19vIiA+JjUKLSskYXNfZWNobyAiJGx0X2N2X3Byb2dfY29tcGlsZXJf Y19vIiA+JjY7IH0KLSsKLSsKLSsKLSsKLSsKLSsKLSsgIHsgJGFzX2VjaG8gIiRhc19tZTokTElO RU5POiBjaGVja2luZyBpZiAkY29tcGlsZXIgc3VwcG9ydHMgLWMgLW8gZmlsZS4kYWNfb2JqZXh0 IiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyBpZiAkY29tcGlsZXIgc3VwcG9ydHMgLWMgLW8g ZmlsZS4kYWNfb2JqZXh0Li4uICIgPiY2OyB9Ci0raWYgdGVzdCAiJHtsdF9jdl9wcm9nX2NvbXBp bGVyX2NfbytzZXR9IiA9IHNldDsgdGhlbgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYK LStlbHNlCi0rICBsdF9jdl9wcm9nX2NvbXBpbGVyX2Nfbz1ubwotKyAgICRSTSAtciBjb25mdGVz dCAyPi9kZXYvbnVsbAotKyAgIG1rZGlyIGNvbmZ0ZXN0Ci0rICAgY2QgY29uZnRlc3QKLSsgICBt a2RpciBvdXQKLSsgICBlY2hvICIkbHRfc2ltcGxlX2NvbXBpbGVfdGVzdF9jb2RlIiA+IGNvbmZ0 ZXN0LiRhY19leHQKLSsKLSsgICBsdF9jb21waWxlcl9mbGFnPSItbyBvdXQvY29uZnRlc3QyLiRh Y19vYmpleHQiCi0rICAgIyBJbnNlcnQgdGhlIG9wdGlvbiBlaXRoZXIgKDEpIGFmdGVyIHRoZSBs YXN0ICpGTEFHUyB2YXJpYWJsZSwgb3IKLSsgICAjICgyKSBiZWZvcmUgYSB3b3JkIGNvbnRhaW5p bmcgImNvbmZ0ZXN0LiIsIG9yICgzKSBhdCB0aGUgZW5kLgotKyAgICMgTm90ZSB0aGF0ICRhY19j b21waWxlIGl0c2VsZiBkb2VzIG5vdCBjb250YWluIGJhY2tzbGFzaGVzIGFuZCBiZWdpbnMKLSsg ICAjIHdpdGggYSBkb2xsYXIgc2lnbiAobm90IGEgaHlwaGVuKSwgc28gdGhlIGVjaG8gc2hvdWxk IHdvcmsgY29ycmVjdGx5LgotKyAgIGx0X2NvbXBpbGU9YGVjaG8gIiRhY19jb21waWxlIiB8ICRT RUQgXAotKyAgIC1lICdzOi4qRkxBR1N9XHswLDFcfSA6JiRsdF9jb21waWxlcl9mbGFnIDo7IHQn IFwKLSsgICAtZSAnczogW14gXSpjb25mdGVzdFwuOiAkbHRfY29tcGlsZXJfZmxhZyY6OyB0JyBc Ci0rICAgLWUgJ3M6JDogJGx0X2NvbXBpbGVyX2ZsYWc6J2AKLSsgICAoZXZhbCBlY2hvICJcIlwk YXNfbWU6OTc4MTogJGx0X2NvbXBpbGVcIiIgPiY1KQotKyAgIChldmFsICIkbHRfY29tcGlsZSIg Mj5vdXQvY29uZnRlc3QuZXJyKQotKyAgIGFjX3N0YXR1cz0kPwotKyAgIGNhdCBvdXQvY29uZnRl c3QuZXJyID4mNQotKyAgIGVjaG8gIiRhc19tZTo5Nzg1OiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUK LSsgICBpZiAoZXhpdCAkYWNfc3RhdHVzKSAmJiB0ZXN0IC1zIG91dC9jb25mdGVzdDIuJGFjX29i amV4dAotKyAgIHRoZW4KLSsgICAgICMgVGhlIGNvbXBpbGVyIGNhbiBvbmx5IHdhcm4gYW5kIGln bm9yZSB0aGUgb3B0aW9uIGlmIG5vdCByZWNvZ25pemVkCi0rICAgICAjIFNvIHNheSBubyBpZiB0 aGVyZSBhcmUgd2FybmluZ3MKLSsgICAgICRFQ0hPICJYJF9sdF9jb21waWxlcl9ib2lsZXJwbGF0 ZSIgfCAkWHNlZCAtZSAnL14kL2QnID4gb3V0L2NvbmZ0ZXN0LmV4cAotKyAgICAgJFNFRCAnL14k L2Q7IC9eICorL2QnIG91dC9jb25mdGVzdC5lcnIgPm91dC9jb25mdGVzdC5lcjIKLSsgICAgIGlm IHRlc3QgISAtcyBvdXQvY29uZnRlc3QuZXIyIHx8IGRpZmYgb3V0L2NvbmZ0ZXN0LmV4cCBvdXQv Y29uZnRlc3QuZXIyID4vZGV2L251bGw7IHRoZW4KLSsgICAgICAgbHRfY3ZfcHJvZ19jb21waWxl cl9jX289eWVzCi0rICAgICBmaQotKyAgIGZpCi0rICAgY2htb2QgdSt3IC4gMj4mNQotKyAgICRS TSBjb25mdGVzdCoKLSsgICAjIFNHSSBDKysgY29tcGlsZXIgd2lsbCBjcmVhdGUgZGlyZWN0b3J5 IG91dC9paV9maWxlcy8gZm9yCi0rICAgIyB0ZW1wbGF0ZSBpbnN0YW50aWF0aW9uCi0rICAgdGVz dCAtZCBvdXQvaWlfZmlsZXMgJiYgJFJNIG91dC9paV9maWxlcy8qICYmIHJtZGlyIG91dC9paV9m aWxlcwotKyAgICRSTSBvdXQvKiAmJiBybWRpciBvdXQKLSsgICBjZCAuLgotKyAgICRSTSAtciBj b25mdGVzdAotKyAgICRSTSBjb25mdGVzdCoKLSsKLStmaQotK3sgJGFzX2VjaG8gIiRhc19tZTok TElORU5POiByZXN1bHQ6ICRsdF9jdl9wcm9nX2NvbXBpbGVyX2NfbyIgPiY1Ci0rJGFzX2VjaG8g IiRsdF9jdl9wcm9nX2NvbXBpbGVyX2NfbyIgPiY2OyB9Ci0rCi0rCi0rCi0rCi0raGFyZF9saW5r cz0ibm90dGVzdGVkIgotK2lmIHRlc3QgIiRsdF9jdl9wcm9nX2NvbXBpbGVyX2NfbyIgPSBubyAm JiB0ZXN0ICIkbmVlZF9sb2NrcyIgIT0gbm87IHRoZW4KLSsgICMgZG8gbm90IG92ZXJ3cml0ZSB0 aGUgdmFsdWUgb2YgbmVlZF9sb2NrcyBwcm92aWRlZCBieSB0aGUgdXNlcgotKyAgeyAkYXNfZWNo byAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGlmIHdlIGNhbiBsb2NrIHdpdGggaGFyZCBsaW5r cyIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgaWYgd2UgY2FuIGxvY2sgd2l0aCBoYXJkIGxp bmtzLi4uICIgPiY2OyB9Ci0rICBoYXJkX2xpbmtzPXllcwotKyAgJFJNIGNvbmZ0ZXN0KgotKyAg bG4gY29uZnRlc3QuYSBjb25mdGVzdC5iIDI+L2Rldi9udWxsICYmIGhhcmRfbGlua3M9bm8KLSsg IHRvdWNoIGNvbmZ0ZXN0LmEKLSsgIGxuIGNvbmZ0ZXN0LmEgY29uZnRlc3QuYiAyPiY1IHx8IGhh cmRfbGlua3M9bm8KLSsgIGxuIGNvbmZ0ZXN0LmEgY29uZnRlc3QuYiAyPi9kZXYvbnVsbCAmJiBo YXJkX2xpbmtzPW5vCi0rICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkaGFy ZF9saW5rcyIgPiY1Ci0rJGFzX2VjaG8gIiRoYXJkX2xpbmtzIiA+JjY7IH0KLSsgIGlmIHRlc3Qg IiRoYXJkX2xpbmtzIiA9IG5vOyB0aGVuCi0rICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5P OiBXQVJOSU5HOiBcYCRDQycgZG9lcyBub3Qgc3VwcG9ydCBcYC1jIC1vJywgc28gXGBtYWtlIC1q JyBtYXkgYmUgdW5zYWZlIiA+JjUKLSskYXNfZWNobyAiJGFzX21lOiBXQVJOSU5HOiBcYCRDQycg ZG9lcyBub3Qgc3VwcG9ydCBcYC1jIC1vJywgc28gXGBtYWtlIC1qJyBtYXkgYmUgdW5zYWZlIiA+ JjI7fQotKyAgICBuZWVkX2xvY2tzPXdhcm4KLSsgIGZpCi0rZWxzZQotKyAgbmVlZF9sb2Nrcz1u bwotK2ZpCi0rCi0rCi0rCi0rCi0rCi0rCi0rICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzog Y2hlY2tpbmcgd2hldGhlciB0aGUgJGNvbXBpbGVyIGxpbmtlciAoJExEKSBzdXBwb3J0cyBzaGFy ZWQgbGlicmFyaWVzIiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyB3aGV0aGVyIHRoZSAkY29t cGlsZXIgbGlua2VyICgkTEQpIHN1cHBvcnRzIHNoYXJlZCBsaWJyYXJpZXMuLi4gIiA+JjY7IH0K LSsKLSsgIHJ1bnBhdGhfdmFyPQotKyAgYWxsb3dfdW5kZWZpbmVkX2ZsYWc9Ci0rICBhbHdheXNf ZXhwb3J0X3N5bWJvbHM9bm8KLSsgIGFyY2hpdmVfY21kcz0KLSsgIGFyY2hpdmVfZXhwc3ltX2Nt ZHM9Ci0rICBjb21waWxlcl9uZWVkc19vYmplY3Q9bm8KLSsgIGVuYWJsZV9zaGFyZWRfd2l0aF9z dGF0aWNfcnVudGltZXM9bm8KLSsgIGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlYz0KLSsgIGV4cG9y dF9zeW1ib2xzX2NtZHM9JyROTSAkbGlib2JqcyAkY29udmVuaWVuY2UgfCAkZ2xvYmFsX3N5bWJv bF9waXBlIHwgJFNFRCAnXCcncy8uKiAvLydcJycgfCBzb3J0IHwgdW5pcSA+ICRleHBvcnRfc3lt Ym9scycKLSsgIGhhcmRjb2RlX2F1dG9tYXRpYz1ubwotKyAgaGFyZGNvZGVfZGlyZWN0PW5vCi0r ICBoYXJkY29kZV9kaXJlY3RfYWJzb2x1dGU9bm8KLSsgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3Nw ZWM9Ci0rICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX2xkPQotKyAgaGFyZGNvZGVfbGliZGly X3NlcGFyYXRvcj0KLSsgIGhhcmRjb2RlX21pbnVzX0w9bm8KLSsgIGhhcmRjb2RlX3NobGlicGF0 aF92YXI9dW5zdXBwb3J0ZWQKLSsgIGluaGVyaXRfcnBhdGg9bm8KLSsgIGxpbmtfYWxsX2RlcGxp YnM9dW5rbm93bgotKyAgbW9kdWxlX2NtZHM9Ci0rICBtb2R1bGVfZXhwc3ltX2NtZHM9Ci0rICBv bGRfYXJjaGl2ZV9mcm9tX25ld19jbWRzPQotKyAgb2xkX2FyY2hpdmVfZnJvbV9leHBzeW1zX2Nt ZHM9Ci0rICB0aHJlYWRfc2FmZV9mbGFnX3NwZWM9Ci0rICB3aG9sZV9hcmNoaXZlX2ZsYWdfc3Bl Yz0KLSsgICMgaW5jbHVkZV9leHBzeW1zIHNob3VsZCBiZSBhIGxpc3Qgb2Ygc3BhY2Utc2VwYXJh dGVkIHN5bWJvbHMgdG8gYmUgKmFsd2F5cyoKLSsgICMgaW5jbHVkZWQgaW4gdGhlIHN5bWJvbCBs aXN0Ci0rICBpbmNsdWRlX2V4cHN5bXM9Ci0rICAjIGV4Y2x1ZGVfZXhwc3ltcyBjYW4gYmUgYW4g ZXh0ZW5kZWQgcmVnZXhwIG9mIHN5bWJvbHMgdG8gZXhjbHVkZQotKyAgIyBpdCB3aWxsIGJlIHdy YXBwZWQgYnkgYCAoJyBhbmQgYCkkJywgc28gb25lIG11c3Qgbm90IG1hdGNoIGJlZ2lubmluZyBv cgotKyAgIyBlbmQgb2YgbGluZS4gIEV4YW1wbGU6IGBhfGJjfC4qZC4qJyB3aWxsIGV4Y2x1ZGUg dGhlIHN5bWJvbHMgYGEnIGFuZCBgYmMnLAotKyAgIyBhcyB3ZWxsIGFzIGFueSBzeW1ib2wgdGhh dCBjb250YWlucyBgZCcuCi0rICBleGNsdWRlX2V4cHN5bXM9J19HTE9CQUxfT0ZGU0VUX1RBQkxF X3xfR0xPQkFMX19GW0lEXV8uKicKLSsgICMgQWx0aG91Z2ggX0dMT0JBTF9PRkZTRVRfVEFCTEVf IGlzIGEgdmFsaWQgc3ltYm9sIEMgbmFtZSwgbW9zdCBhLm91dAotKyAgIyBwbGF0Zm9ybXMgKGFi KXVzZSBpdCBpbiBQSUMgY29kZSwgYnV0IHRoZWlyIGxpbmtlcnMgZ2V0IGNvbmZ1c2VkIGlmCi0r ICAjIHRoZSBzeW1ib2wgaXMgZXhwbGljaXRseSByZWZlcmVuY2VkLiAgU2luY2UgcG9ydGFibGUg Y29kZSBjYW5ub3QKLSsgICMgcmVseSBvbiB0aGlzIHN5bWJvbCBuYW1lLCBpdCdzIHByb2JhYmx5 IGZpbmUgdG8gbmV2ZXIgaW5jbHVkZSBpdCBpbgotKyAgIyBwcmVsb2FkZWQgc3ltYm9sIHRhYmxl cy4KLSsgICMgRXhjbHVkZSBzaGFyZWQgbGlicmFyeSBpbml0aWFsaXphdGlvbi9maW5hbGl6YXRp b24gc3ltYm9scy4KLSsgIGV4dHJhY3RfZXhwc3ltc19jbWRzPQotKwotKyAgY2FzZSAkaG9zdF9v cyBpbgotKyAgY3lnd2luKiB8IG1pbmd3KiB8IHB3MzIqIHwgY2VnY2MqKQotKyAgICAjIEZJWE1F OiB0aGUgTVNWQysrIHBvcnQgaGFzbid0IGJlZW4gdGVzdGVkIGluIGEgbG9vb29uZyB0aW1lCi0r ICAgICMgV2hlbiBub3QgdXNpbmcgZ2NjLCB3ZSBjdXJyZW50bHkgYXNzdW1lIHRoYXQgd2UgYXJl IHVzaW5nCi0rICAgICMgTWljcm9zb2Z0IFZpc3VhbCBDKysuCi0rICAgIGlmIHRlc3QgIiRHQ0Mi ICE9IHllczsgdGhlbgotKyAgICAgIHdpdGhfZ251X2xkPW5vCi0rICAgIGZpCi0rICAgIDs7Ci0r ICBpbnRlcml4KikKLSsgICAgIyB3ZSBqdXN0IGhvcGUvYXNzdW1lIHRoaXMgaXMgZ2NjIGFuZCBu b3QgYzg5ICg9IE1TVkMrKykKLSsgICAgd2l0aF9nbnVfbGQ9eWVzCi0rICAgIDs7Ci0rICBvcGVu YnNkKikKLSsgICAgd2l0aF9nbnVfbGQ9bm8KLSsgICAgOzsKLSsgIGVzYWMKLSsKLSsgIGxkX3No bGlicz15ZXMKLSsgIGlmIHRlc3QgIiR3aXRoX2dudV9sZCIgPSB5ZXM7IHRoZW4KLSsgICAgIyBJ ZiBhcmNoaXZlX2NtZHMgcnVucyBMRCwgbm90IENDLCB3bGFyYyBzaG91bGQgYmUgZW1wdHkKLSsg ICAgd2xhcmM9JyR7d2x9JwotKwotKyAgICAjIFNldCBzb21lIGRlZmF1bHRzIGZvciBHTlUgbGQg d2l0aCBzaGFyZWQgbGlicmFyeSBzdXBwb3J0LiBUaGVzZQotKyAgICAjIGFyZSByZXNldCBsYXRl ciBpZiBzaGFyZWQgbGlicmFyaWVzIGFyZSBub3Qgc3VwcG9ydGVkLiBQdXR0aW5nIHRoZW0KLSsg ICAgIyBoZXJlIGFsbG93cyB0aGVtIHRvIGJlIG92ZXJyaWRkZW4gaWYgbmVjZXNzYXJ5LgotKyAg ICBydW5wYXRoX3Zhcj1MRF9SVU5fUEFUSAotKyAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVj PScke3dsfS1ycGF0aCAke3dsfSRsaWJkaXInCi0rICAgIGV4cG9ydF9keW5hbWljX2ZsYWdfc3Bl Yz0nJHt3bH0tLWV4cG9ydC1keW5hbWljJwotKyAgICAjIGFuY2llbnQgR05VIGxkIGRpZG4ndCBz dXBwb3J0IC0td2hvbGUtYXJjaGl2ZSBldC4gYWwuCi0rICAgIGlmICRMRCAtLWhlbHAgMj4mMSB8 ICRHUkVQICduby13aG9sZS1hcmNoaXZlJyA+IC9kZXYvbnVsbDsgdGhlbgotKyAgICAgIHdob2xl X2FyY2hpdmVfZmxhZ19zcGVjPSIkd2xhcmMiJy0td2hvbGUtYXJjaGl2ZSRjb252ZW5pZW5jZSAn IiR3bGFyYyInLS1uby13aG9sZS1hcmNoaXZlJwotKyAgICBlbHNlCi0rICAgICAgd2hvbGVfYXJj aGl2ZV9mbGFnX3NwZWM9Ci0rICAgIGZpCi0rICAgIHN1cHBvcnRzX2Fub25fdmVyc2lvbmluZz1u bwotKyAgICBjYXNlIGAkTEQgLXYgMj4mMWAgaW4KLSsgICAgICAqXCBbMDFdLiogfCAqXCAyLlsw LTldLiogfCAqXCAyLjEwLiopIDs7ICMgY2F0Y2ggdmVyc2lvbnMgPCAyLjExCi0rICAgICAgKlwg Mi4xMS45My4wLjJcICopIHN1cHBvcnRzX2Fub25fdmVyc2lvbmluZz15ZXMgOzsgIyBSSDcuMyAu Li4KLSsgICAgICAqXCAyLjExLjkyLjAuMTJcICopIHN1cHBvcnRzX2Fub25fdmVyc2lvbmluZz15 ZXMgOzsgIyBNYW5kcmFrZSA4LjIgLi4uCi0rICAgICAgKlwgMi4xMS4qKSA7OyAjIG90aGVyIDIu MTEgdmVyc2lvbnMKLSsgICAgICAqKSBzdXBwb3J0c19hbm9uX3ZlcnNpb25pbmc9eWVzIDs7Ci0r ICAgIGVzYWMKLSsKLSsgICAgIyBTZWUgaWYgR05VIGxkIHN1cHBvcnRzIHNoYXJlZCBsaWJyYXJp ZXMuCi0rICAgIGNhc2UgJGhvc3Rfb3MgaW4KLSsgICAgYWl4WzMtOV0qKQotKyAgICAgICMgT24g QUlYL1BQQywgdGhlIEdOVSBsaW5rZXIgaXMgdmVyeSBicm9rZW4KLSsgICAgICBpZiB0ZXN0ICIk aG9zdF9jcHUiICE9IGlhNjQ7IHRoZW4KLSsJbGRfc2hsaWJzPW5vCi0rCWNhdCA8PF9MVF9FT0Yg MT4mMgotKwotKyoqKiBXYXJuaW5nOiB0aGUgR05VIGxpbmtlciwgYXQgbGVhc3QgdXAgdG8gcmVs ZWFzZSAyLjkuMSwgaXMgcmVwb3J0ZWQKLSsqKiogdG8gYmUgdW5hYmxlIHRvIHJlbGlhYmx5IGNy ZWF0ZSBzaGFyZWQgbGlicmFyaWVzIG9uIEFJWC4KLSsqKiogVGhlcmVmb3JlLCBsaWJ0b29sIGlz IGRpc2FibGluZyBzaGFyZWQgbGlicmFyaWVzIHN1cHBvcnQuICBJZiB5b3UKLSsqKiogcmVhbGx5 IGNhcmUgZm9yIHNoYXJlZCBsaWJyYXJpZXMsIHlvdSBtYXkgd2FudCB0byBtb2RpZnkgeW91ciBQ QVRICi0rKioqIHNvIHRoYXQgYSBub24tR05VIGxpbmtlciBpcyBmb3VuZCwgYW5kIHRoZW4gcmVz dGFydC4KLSsKLStfTFRfRU9GCi0rICAgICAgZmkKLSsgICAgICA7OwotKwotKyAgICBhbWlnYW9z KikKLSsgICAgICBjYXNlICRob3N0X2NwdSBpbgotKyAgICAgIHBvd2VycGMpCi0rICAgICAgICAg ICAgIyBzZWUgY29tbWVudCBhYm91dCBBbWlnYU9TNCAuc28gc3VwcG9ydAotKyAgICAgICAgICAg IGFyY2hpdmVfY21kcz0nJENDIC1zaGFyZWQgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2Zs YWdzICR7d2x9LXNvbmFtZSAkd2wkc29uYW1lIC1vICRsaWInCi0rICAgICAgICAgICAgYXJjaGl2 ZV9leHBzeW1fY21kcz0nJwotKyAgICAgICAgOzsKLSsgICAgICBtNjhrKQotKyAgICAgICAgICAg IGFyY2hpdmVfY21kcz0nJFJNICRvdXRwdXRfb2JqZGlyL2EyaXhsaWJyYXJ5LmRhdGF+JEVDSE8g IiNkZWZpbmUgTkFNRSAkbGlibmFtZSIgPiAkb3V0cHV0X29iamRpci9hMml4bGlicmFyeS5kYXRh fiRFQ0hPICIjZGVmaW5lIExJQlJBUllfSUQgMSIgPj4gJG91dHB1dF9vYmpkaXIvYTJpeGxpYnJh cnkuZGF0YX4kRUNITyAiI2RlZmluZSBWRVJTSU9OICRtYWpvciIgPj4gJG91dHB1dF9vYmpkaXIv YTJpeGxpYnJhcnkuZGF0YX4kRUNITyAiI2RlZmluZSBSRVZJU0lPTiAkcmV2aXNpb24iID4+ICRv dXRwdXRfb2JqZGlyL2EyaXhsaWJyYXJ5LmRhdGF+JEFSICRBUl9GTEFHUyAkbGliICRsaWJvYmpz fiRSQU5MSUIgJGxpYn4oY2QgJG91dHB1dF9vYmpkaXIgJiYgYTJpeGxpYnJhcnkgLTMyKScKLSsg ICAgICAgICAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjPSctTCRsaWJkaXInCi0rICAgICAg ICAgICAgaGFyZGNvZGVfbWludXNfTD15ZXMKLSsgICAgICAgIDs7Ci0rICAgICAgZXNhYwotKyAg ICAgIDs7Ci0rCi0rICAgIGJlb3MqKQotKyAgICAgIGlmICRMRCAtLWhlbHAgMj4mMSB8ICRHUkVQ ICc6IHN1cHBvcnRlZCB0YXJnZXRzOi4qIGVsZicgPiAvZGV2L251bGw7IHRoZW4KLSsJYWxsb3df dW5kZWZpbmVkX2ZsYWc9dW5zdXBwb3J0ZWQKLSsJIyBKb3NlcGggQmVja2VuYmFjaCA8anJiM0Bi ZXN0LmNvbT4gc2F5cyBzb21lIHJlbGVhc2VzIG9mIGdjYwotKwkjIHN1cHBvcnQgLS11bmRlZmlu ZWQuICBUaGlzIGRlc2VydmVzIHNvbWUgaW52ZXN0aWdhdGlvbi4gIEZJWE1FCi0rCWFyY2hpdmVf Y21kcz0nJENDIC1ub3N0YXJ0ICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3ds fS1zb25hbWUgJHdsJHNvbmFtZSAtbyAkbGliJwotKyAgICAgIGVsc2UKLSsJbGRfc2hsaWJzPW5v Ci0rICAgICAgZmkKLSsgICAgICA7OwotKwotKyAgICBjeWd3aW4qIHwgbWluZ3cqIHwgcHczMiog fCBjZWdjYyopCi0rICAgICAgIyBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMs ICkgaXMgYWN0dWFsbHkgbWVhbmluZ2xlc3MsCi0rICAgICAgIyBhcyB0aGVyZSBpcyBubyBzZWFy Y2ggcGF0aCBmb3IgRExMcy4KLSsgICAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjPSctTCRs aWJkaXInCi0rICAgICAgYWxsb3dfdW5kZWZpbmVkX2ZsYWc9dW5zdXBwb3J0ZWQKLSsgICAgICBh bHdheXNfZXhwb3J0X3N5bWJvbHM9bm8KLSsgICAgICBlbmFibGVfc2hhcmVkX3dpdGhfc3RhdGlj X3J1bnRpbWVzPXllcwotKyAgICAgIGV4cG9ydF9zeW1ib2xzX2NtZHM9JyROTSAkbGlib2JqcyAk Y29udmVuaWVuY2UgfCAkZ2xvYmFsX3N5bWJvbF9waXBlIHwgJFNFRCAtZSAnXCcnL15bQkNER1JT XVsgXS9zLy4qWyBdXChbXiBdKlwpL1wxIERBVEEvJ1wnJyB8ICRTRUQgLWUgJ1wnJy9eW0FJVFdd WyBdL3MvLipbIF0vLydcJycgfCBzb3J0IHwgdW5pcSA+ICRleHBvcnRfc3ltYm9scycKLSsKLSsg ICAgICBpZiAkTEQgLS1oZWxwIDI+JjEgfCAkR1JFUCAnYXV0by1pbXBvcnQnID4gL2Rldi9udWxs OyB0aGVuCi0rICAgICAgICBhcmNoaXZlX2NtZHM9JyRDQyAtc2hhcmVkICRsaWJvYmpzICRkZXBs aWJzICRjb21waWxlcl9mbGFncyAtbyAkb3V0cHV0X29iamRpci8kc29uYW1lICR7d2x9LS1lbmFi bGUtYXV0by1pbWFnZS1iYXNlIC1YbGlua2VyIC0tb3V0LWltcGxpYiAtWGxpbmtlciAkbGliJwot KwkjIElmIHRoZSBleHBvcnQtc3ltYm9scyBmaWxlIGFscmVhZHkgaXMgYSAuZGVmIGZpbGUgKDFz dCBsaW5lCi0rCSMgaXMgRVhQT1JUUyksIHVzZSBpdCBhcyBpczsgb3RoZXJ3aXNlLCBwcmVwZW5k Li4uCi0rCWFyY2hpdmVfZXhwc3ltX2NtZHM9J2lmIHRlc3QgInhgJFNFRCAxcSAkZXhwb3J0X3N5 bWJvbHNgIiA9IHhFWFBPUlRTOyB0aGVuCi0rCSAgY3AgJGV4cG9ydF9zeW1ib2xzICRvdXRwdXRf b2JqZGlyLyRzb25hbWUuZGVmOwotKwllbHNlCi0rCSAgZWNobyBFWFBPUlRTID4gJG91dHB1dF9v YmpkaXIvJHNvbmFtZS5kZWY7Ci0rCSAgY2F0ICRleHBvcnRfc3ltYm9scyA+PiAkb3V0cHV0X29i amRpci8kc29uYW1lLmRlZjsKLSsJZml+Ci0rCSRDQyAtc2hhcmVkICRvdXRwdXRfb2JqZGlyLyRz b25hbWUuZGVmICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAtbyAkb3V0cHV0X29i amRpci8kc29uYW1lICR7d2x9LS1lbmFibGUtYXV0by1pbWFnZS1iYXNlIC1YbGlua2VyIC0tb3V0 LWltcGxpYiAtWGxpbmtlciAkbGliJwotKyAgICAgIGVsc2UKLSsJbGRfc2hsaWJzPW5vCi0rICAg ICAgZmkKLSsgICAgICA7OwotKwotKyAgICBpbnRlcml4WzMtOV0qKQotKyAgICAgIGhhcmRjb2Rl X2RpcmVjdD1ubwotKyAgICAgIGhhcmRjb2RlX3NobGlicGF0aF92YXI9bm8KLSsgICAgICBoYXJk Y29kZV9saWJkaXJfZmxhZ19zcGVjPScke3dsfS1ycGF0aCwkbGliZGlyJwotKyAgICAgIGV4cG9y dF9keW5hbWljX2ZsYWdfc3BlYz0nJHt3bH0tRScKLSsgICAgICAjIEhhY2s6IE9uIEludGVyaXgg My54LCB3ZSBjYW5ub3QgY29tcGlsZSBQSUMgYmVjYXVzZSBvZiBhIGJyb2tlbiBnY2MuCi0rICAg ICAgIyBJbnN0ZWFkLCBzaGFyZWQgbGlicmFyaWVzIGFyZSBsb2FkZWQgYXQgYW4gaW1hZ2UgYmFz ZSAoMHgxMDAwMDAwMCBieQotKyAgICAgICMgZGVmYXVsdCkgYW5kIHJlbG9jYXRlZCBpZiB0aGV5 IGNvbmZsaWN0LCB3aGljaCBpcyBhIHNsb3cgdmVyeSBtZW1vcnkKLSsgICAgICAjIGNvbnN1bWlu ZyBhbmQgZnJhZ21lbnRpbmcgcHJvY2Vzcy4gIFRvIGF2b2lkIHRoaXMsIHdlIHBpY2sgYSByYW5k b20sCi0rICAgICAgIyAyNTYgS2lCLWFsaWduZWQgaW1hZ2UgYmFzZSBiZXR3ZWVuIDB4NTAwMDAw MDAgYW5kIDB4NkZGQzAwMDAgYXQgbGluawotKyAgICAgICMgdGltZS4gIE1vdmluZyB1cCBmcm9t IDB4MTAwMDAwMDAgYWxzbyBhbGxvd3MgbW9yZSBzYnJrKDIpIHNwYWNlLgotKyAgICAgIGFyY2hp dmVfY21kcz0nJENDIC1zaGFyZWQgJHBpY19mbGFnICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxl cl9mbGFncyAke3dsfS1oLCRzb25hbWUgJHt3bH0tLWltYWdlLWJhc2UsYGV4cHIgJHtSQU5ET00t JCR9ICUgNDA5NiAvIDIgXCogMjYyMTQ0ICsgMTM0MjE3NzI4MGAgLW8gJGxpYicKLSsgICAgICBh cmNoaXZlX2V4cHN5bV9jbWRzPSdzZWQgInMsXixfLCIgJGV4cG9ydF9zeW1ib2xzID4kb3V0cHV0 X29iamRpci8kc29uYW1lLmV4cHN5bX4kQ0MgLXNoYXJlZCAkcGljX2ZsYWcgJGxpYm9ianMgJGRl cGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LWgsJHNvbmFtZSAke3dsfS0tcmV0YWluLXN5bWJv bHMtZmlsZSwkb3V0cHV0X29iamRpci8kc29uYW1lLmV4cHN5bSAke3dsfS0taW1hZ2UtYmFzZSxg ZXhwciAke1JBTkRPTS0kJH0gJSA0MDk2IC8gMiBcKiAyNjIxNDQgKyAxMzQyMTc3MjgwYCAtbyAk bGliJwotKyAgICAgIDs7Ci0rCi0rICAgIGdudSogfCBsaW51eCogfCB0cGYqIHwgaypic2QqLWdu dSkKLSsgICAgICB0bXBfZGlldD1ubwotKyAgICAgIGlmIHRlc3QgIiRob3N0X29zIiA9IGxpbnV4 LWRpZXRsaWJjOyB0aGVuCi0rCWNhc2UgJGNjX2Jhc2VuYW1lIGluCi0rCSAgZGlldFwgKikgdG1w X2RpZXQ9eWVzOzsJIyBsaW51eC1kaWV0bGliYyB3aXRoIHN0YXRpYyBsaW5raW5nICghZGlldC1k eW4pCi0rCWVzYWMKLSsgICAgICBmaQotKyAgICAgIGlmICRMRCAtLWhlbHAgMj4mMSB8ICRFR1JF UCAnOiBzdXBwb3J0ZWQgdGFyZ2V0czouKiBlbGYnID4gL2Rldi9udWxsIFwKLSsJICYmIHRlc3Qg IiR0bXBfZGlldCIgPSBubwotKyAgICAgIHRoZW4KLSsJdG1wX2FkZGZsYWc9Ci0rCXRtcF9zaGFy ZWRmbGFnPSctc2hhcmVkJwotKwljYXNlICRjY19iYXNlbmFtZSwkaG9zdF9jcHUgaW4KLSsgICAg ICAgIHBnY2MqKQkJCQkjIFBvcnRsYW5kIEdyb3VwIEMgY29tcGlsZXIKLSsJICB3aG9sZV9hcmNo aXZlX2ZsYWdfc3BlYz0nJHt3bH0tLXdob2xlLWFyY2hpdmVgZm9yIGNvbnYgaW4gJGNvbnZlbmll bmNlXCJcIjsgZG8gdGVzdCAgLW4gXCIkY29udlwiICYmIG5ld19jb252ZW5pZW5jZT1cIiRuZXdf Y29udmVuaWVuY2UsJGNvbnZcIjsgZG9uZTsgJEVDSE8gXCIkbmV3X2NvbnZlbmllbmNlXCJgICR7 d2x9LS1uby13aG9sZS1hcmNoaXZlJwotKwkgIHRtcF9hZGRmbGFnPScgJHBpY19mbGFnJwotKwkg IDs7Ci0rCXBnZjc3KiB8IHBnZjkwKiB8IHBnZjk1KikJIyBQb3J0bGFuZCBHcm91cCBmNzcgYW5k IGY5MCBjb21waWxlcnMKLSsJICB3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYz0nJHt3bH0tLXdob2xl LWFyY2hpdmVgZm9yIGNvbnYgaW4gJGNvbnZlbmllbmNlXCJcIjsgZG8gdGVzdCAgLW4gXCIkY29u dlwiICYmIG5ld19jb252ZW5pZW5jZT1cIiRuZXdfY29udmVuaWVuY2UsJGNvbnZcIjsgZG9uZTsg JEVDSE8gXCIkbmV3X2NvbnZlbmllbmNlXCJgICR7d2x9LS1uby13aG9sZS1hcmNoaXZlJwotKwkg IHRtcF9hZGRmbGFnPScgJHBpY19mbGFnIC1Nbm9tYWluJyA7OwotKwllY2MqLGlhNjQqIHwgaWNj KixpYTY0KikJIyBJbnRlbCBDIGNvbXBpbGVyIG9uIGlhNjQKLSsJICB0bXBfYWRkZmxhZz0nIC1p X2R5bmFtaWMnIDs7Ci0rCWVmYyosaWE2NCogfCBpZm9ydCosaWE2NCopCSMgSW50ZWwgRm9ydHJh biBjb21waWxlciBvbiBpYTY0Ci0rCSAgdG1wX2FkZGZsYWc9JyAtaV9keW5hbWljIC1ub2Zvcl9t YWluJyA7OwotKwlpZmMqIHwgaWZvcnQqKQkJCSMgSW50ZWwgRm9ydHJhbiBjb21waWxlcgotKwkg IHRtcF9hZGRmbGFnPScgLW5vZm9yX21haW4nIDs7Ci0rCWxmOTUqKQkJCQkjIExhaGV5IEZvcnRy YW4gOC4xCi0rCSAgd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWM9Ci0rCSAgdG1wX3NoYXJlZGZsYWc9 Jy0tc2hhcmVkJyA7OwotKwl4bFtjQ10qKQkJCSMgSUJNIFhMIEMgOC4wIG9uIFBQQyAoZGVhbCB3 aXRoIHhsZiBiZWxvdykKLSsJICB0bXBfc2hhcmVkZmxhZz0nLXFta3Nocm9iaicKLSsJICB0bXBf YWRkZmxhZz0gOzsKLSsJZXNhYwotKwljYXNlIGAkQ0MgLVYgMj4mMSB8IHNlZCA1cWAgaW4KLSsJ KlN1blwgQyopCQkJIyBTdW4gQyA1LjkKLSsJICB3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYz0nJHt3 bH0tLXdob2xlLWFyY2hpdmVgbmV3X2NvbnZlbmllbmNlPTsgZm9yIGNvbnYgaW4gJGNvbnZlbmll bmNlXCJcIjsgZG8gdGVzdCAteiBcIiRjb252XCIgfHwgbmV3X2NvbnZlbmllbmNlPVwiJG5ld19j b252ZW5pZW5jZSwkY29udlwiOyBkb25lOyAkRUNITyBcIiRuZXdfY29udmVuaWVuY2VcImAgJHt3 bH0tLW5vLXdob2xlLWFyY2hpdmUnCi0rCSAgY29tcGlsZXJfbmVlZHNfb2JqZWN0PXllcwotKwkg IHRtcF9zaGFyZWRmbGFnPSctRycgOzsKLSsJKlN1blwgRiopCQkJIyBTdW4gRm9ydHJhbiA4LjMK LSsJICB0bXBfc2hhcmVkZmxhZz0nLUcnIDs7Ci0rCWVzYWMKLSsJYXJjaGl2ZV9jbWRzPSckQ0Mg JyIkdG1wX3NoYXJlZGZsYWciIiR0bXBfYWRkZmxhZyInICRsaWJvYmpzICRkZXBsaWJzICRjb21w aWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAtbyAkbGliJwotKwotKyAgICAgICAg aWYgdGVzdCAieCRzdXBwb3J0c19hbm9uX3ZlcnNpb25pbmciID0geHllczsgdGhlbgotKyAgICAg ICAgICBhcmNoaXZlX2V4cHN5bV9jbWRzPSdlY2hvICJ7IGdsb2JhbDoiID4gJG91dHB1dF9vYmpk aXIvJGxpYm5hbWUudmVyfgotKwkgICAgY2F0ICRleHBvcnRfc3ltYm9scyB8IHNlZCAtZSAicy9c KC4qXCkvXDE7LyIgPj4gJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUudmVyfgotKwkgICAgZWNobyAi bG9jYWw6ICo7IH07IiA+PiAkb3V0cHV0X29iamRpci8kbGlibmFtZS52ZXJ+Ci0rCSAgICAkQ0Mg JyIkdG1wX3NoYXJlZGZsYWciIiR0bXBfYWRkZmxhZyInICRsaWJvYmpzICRkZXBsaWJzICRjb21w aWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAke3dsfS12ZXJzaW9uLXNjcmlwdCAk e3dsfSRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLnZlciAtbyAkbGliJwotKyAgICAgICAgZmkKLSsK LSsJY2FzZSAkY2NfYmFzZW5hbWUgaW4KLSsJeGxmKikKLSsJICAjIElCTSBYTCBGb3J0cmFuIDEw LjEgb24gUFBDIGNhbm5vdCBjcmVhdGUgc2hhcmVkIGxpYnMgaXRzZWxmCi0rCSAgd2hvbGVfYXJj aGl2ZV9mbGFnX3NwZWM9Jy0td2hvbGUtYXJjaGl2ZSRjb252ZW5pZW5jZSAtLW5vLXdob2xlLWFy Y2hpdmUnCi0rCSAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYz0KLSsJICBoYXJkY29kZV9saWJk aXJfZmxhZ19zcGVjX2xkPSctcnBhdGggJGxpYmRpcicKLSsJICBhcmNoaXZlX2NtZHM9JyRMRCAt c2hhcmVkICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAtc29uYW1lICRzb25hbWUg LW8gJGxpYicKLSsJICBpZiB0ZXN0ICJ4JHN1cHBvcnRzX2Fub25fdmVyc2lvbmluZyIgPSB4eWVz OyB0aGVuCi0rCSAgICBhcmNoaXZlX2V4cHN5bV9jbWRzPSdlY2hvICJ7IGdsb2JhbDoiID4gJG91 dHB1dF9vYmpkaXIvJGxpYm5hbWUudmVyfgotKwkgICAgICBjYXQgJGV4cG9ydF9zeW1ib2xzIHwg c2VkIC1lICJzL1woLipcKS9cMTsvIiA+PiAkb3V0cHV0X29iamRpci8kbGlibmFtZS52ZXJ+Ci0r CSAgICAgIGVjaG8gImxvY2FsOiAqOyB9OyIgPj4gJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUudmVy fgotKwkgICAgICAkTEQgLXNoYXJlZCAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3Mg LXNvbmFtZSAkc29uYW1lIC12ZXJzaW9uLXNjcmlwdCAkb3V0cHV0X29iamRpci8kbGlibmFtZS52 ZXIgLW8gJGxpYicKLSsJICBmaQotKwkgIDs7Ci0rCWVzYWMKLSsgICAgICBlbHNlCi0rICAgICAg ICBsZF9zaGxpYnM9bm8KLSsgICAgICBmaQotKyAgICAgIDs7Ci0rCi0rICAgIG5ldGJzZCopCi0r ICAgICAgaWYgZWNobyBfX0VMRl9fIHwgJENDIC1FIC0gfCAkR1JFUCBfX0VMRl9fID4vZGV2L251 bGw7IHRoZW4KLSsJYXJjaGl2ZV9jbWRzPSckTEQgLUJzaGFyZWFibGUgJGxpYm9ianMgJGRlcGxp YnMgJGxpbmtlcl9mbGFncyAtbyAkbGliJwotKwl3bGFyYz0KLSsgICAgICBlbHNlCi0rCWFyY2hp dmVfY21kcz0nJENDIC1zaGFyZWQgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7 d2x9LXNvbmFtZSAkd2wkc29uYW1lIC1vICRsaWInCi0rCWFyY2hpdmVfZXhwc3ltX2NtZHM9JyRD QyAtc2hhcmVkICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUg JHdsJHNvbmFtZSAke3dsfS1yZXRhaW4tc3ltYm9scy1maWxlICR3bCRleHBvcnRfc3ltYm9scyAt byAkbGliJwotKyAgICAgIGZpCi0rICAgICAgOzsKLSsKLSsgICAgc29sYXJpcyopCi0rICAgICAg aWYgJExEIC12IDI+JjEgfCAkR1JFUCAnQkZEIDJcLjgnID4gL2Rldi9udWxsOyB0aGVuCi0rCWxk X3NobGlicz1ubwotKwljYXQgPDxfTFRfRU9GIDE+JjIKLSsKLSsqKiogV2FybmluZzogVGhlIHJl bGVhc2VzIDIuOC4qIG9mIHRoZSBHTlUgbGlua2VyIGNhbm5vdCByZWxpYWJseQotKyoqKiBjcmVh dGUgc2hhcmVkIGxpYnJhcmllcyBvbiBTb2xhcmlzIHN5c3RlbXMuICBUaGVyZWZvcmUsIGxpYnRv b2wKLSsqKiogaXMgZGlzYWJsaW5nIHNoYXJlZCBsaWJyYXJpZXMgc3VwcG9ydC4gIFdlIHVyZ2Ug eW91IHRvIHVwZ3JhZGUgR05VCi0rKioqIGJpbnV0aWxzIHRvIHJlbGVhc2UgMi45LjEgb3IgbmV3 ZXIuICBBbm90aGVyIG9wdGlvbiBpcyB0byBtb2RpZnkKLSsqKiogeW91ciBQQVRIIG9yIGNvbXBp bGVyIGNvbmZpZ3VyYXRpb24gc28gdGhhdCB0aGUgbmF0aXZlIGxpbmtlciBpcwotKyoqKiB1c2Vk LCBhbmQgdGhlbiByZXN0YXJ0LgotKwotK19MVF9FT0YKLSsgICAgICBlbGlmICRMRCAtLWhlbHAg Mj4mMSB8ICRHUkVQICc6IHN1cHBvcnRlZCB0YXJnZXRzOi4qIGVsZicgPiAvZGV2L251bGw7IHRo ZW4KLSsJYXJjaGl2ZV9jbWRzPSckQ0MgLXNoYXJlZCAkbGlib2JqcyAkZGVwbGlicyAkY29tcGls ZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR3bCRzb25hbWUgLW8gJGxpYicKLSsJYXJjaGl2ZV9leHBz eW1fY21kcz0nJENDIC1zaGFyZWQgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7 d2x9LXNvbmFtZSAkd2wkc29uYW1lICR7d2x9LXJldGFpbi1zeW1ib2xzLWZpbGUgJHdsJGV4cG9y dF9zeW1ib2xzIC1vICRsaWInCi0rICAgICAgZWxzZQotKwlsZF9zaGxpYnM9bm8KLSsgICAgICBm aQotKyAgICAgIDs7Ci0rCi0rICAgIHN5c3Y1KiB8IHNjbzMuMnY1KiB8IHNjbzV2NiogfCB1bml4 d2FyZSogfCBPcGVuVU5JWCopCi0rICAgICAgY2FzZSBgJExEIC12IDI+JjFgIGluCi0rICAgICAg ICAqXCBbMDFdLiogfCAqXCAyLlswLTldLiogfCAqXCAyLjFbMC01XS4qKQotKwlsZF9zaGxpYnM9 bm8KLSsJY2F0IDw8X0xUX0VPRiAxPiYyCi0rCi0rKioqIFdhcm5pbmc6IFJlbGVhc2VzIG9mIHRo ZSBHTlUgbGlua2VyIHByaW9yIHRvIDIuMTYuOTEuMC4zIGNhbiBub3QKLSsqKiogcmVsaWFibHkg Y3JlYXRlIHNoYXJlZCBsaWJyYXJpZXMgb24gU0NPIHN5c3RlbXMuICBUaGVyZWZvcmUsIGxpYnRv b2wKLSsqKiogaXMgZGlzYWJsaW5nIHNoYXJlZCBsaWJyYXJpZXMgc3VwcG9ydC4gIFdlIHVyZ2Ug eW91IHRvIHVwZ3JhZGUgR05VCi0rKioqIGJpbnV0aWxzIHRvIHJlbGVhc2UgMi4xNi45MS4wLjMg b3IgbmV3ZXIuICBBbm90aGVyIG9wdGlvbiBpcyB0byBtb2RpZnkKLSsqKiogeW91ciBQQVRIIG9y IGNvbXBpbGVyIGNvbmZpZ3VyYXRpb24gc28gdGhhdCB0aGUgbmF0aXZlIGxpbmtlciBpcwotKyoq KiB1c2VkLCBhbmQgdGhlbiByZXN0YXJ0LgotKwotK19MVF9FT0YKLSsJOzsKLSsJKikKLSsJICAj IEZvciBzZWN1cml0eSByZWFzb25zLCBpdCBpcyBoaWdobHkgcmVjb21tZW5kZWQgdGhhdCB5b3Ug YWx3YXlzCi0rCSAgIyB1c2UgYWJzb2x1dGUgcGF0aHMgZm9yIG5hbWluZyBzaGFyZWQgbGlicmFy aWVzLCBhbmQgZXhjbHVkZSB0aGUKLSsJICAjIERUX1JVTlBBVEggdGFnIGZyb20gZXhlY3V0YWJs ZXMgYW5kIGxpYnJhcmllcy4gIEJ1dCBkb2luZyBzbwotKwkgICMgcmVxdWlyZXMgdGhhdCB5b3Ug Y29tcGlsZSBldmVyeXRoaW5nIHR3aWNlLCB3aGljaCBpcyBhIHBhaW4uCi0rCSAgaWYgJExEIC0t aGVscCAyPiYxIHwgJEdSRVAgJzogc3VwcG9ydGVkIHRhcmdldHM6LiogZWxmJyA+IC9kZXYvbnVs bDsgdGhlbgotKwkgICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYz0nJHt3bH0tcnBhdGggJHt3 bH0kbGliZGlyJwotKwkgICAgYXJjaGl2ZV9jbWRzPSckQ0MgLXNoYXJlZCAkbGlib2JqcyAkZGVw bGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR3bCRzb25hbWUgLW8gJGxpYicKLSsJ ICAgIGFyY2hpdmVfZXhwc3ltX2NtZHM9JyRDQyAtc2hhcmVkICRsaWJvYmpzICRkZXBsaWJzICRj b21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAke3dsfS1yZXRhaW4tc3ltYm9s cy1maWxlICR3bCRleHBvcnRfc3ltYm9scyAtbyAkbGliJwotKwkgIGVsc2UKLSsJICAgIGxkX3No bGlicz1ubwotKwkgIGZpCi0rCTs7Ci0rICAgICAgZXNhYwotKyAgICAgIDs7Ci0rCi0rICAgIHN1 bm9zNCopCi0rICAgICAgYXJjaGl2ZV9jbWRzPSckTEQgLWFzc2VydCBwdXJlLXRleHQgLUJzaGFy ZWFibGUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzJwotKyAgICAgIHds YXJjPQotKyAgICAgIGhhcmRjb2RlX2RpcmVjdD15ZXMKLSsgICAgICBoYXJkY29kZV9zaGxpYnBh dGhfdmFyPW5vCi0rICAgICAgOzsKLSsKLSsgICAgKikKLSsgICAgICBpZiAkTEQgLS1oZWxwIDI+ JjEgfCAkR1JFUCAnOiBzdXBwb3J0ZWQgdGFyZ2V0czouKiBlbGYnID4gL2Rldi9udWxsOyB0aGVu Ci0rCWFyY2hpdmVfY21kcz0nJENDIC1zaGFyZWQgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVy X2ZsYWdzICR7d2x9LXNvbmFtZSAkd2wkc29uYW1lIC1vICRsaWInCi0rCWFyY2hpdmVfZXhwc3lt X2NtZHM9JyRDQyAtc2hhcmVkICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3ds fS1zb25hbWUgJHdsJHNvbmFtZSAke3dsfS1yZXRhaW4tc3ltYm9scy1maWxlICR3bCRleHBvcnRf c3ltYm9scyAtbyAkbGliJwotKyAgICAgIGVsc2UKLSsJbGRfc2hsaWJzPW5vCi0rICAgICAgZmkK LSsgICAgICA7OwotKyAgICBlc2FjCi0rCi0rICAgIGlmIHRlc3QgIiRsZF9zaGxpYnMiID0gbm87 IHRoZW4KLSsgICAgICBydW5wYXRoX3Zhcj0KLSsgICAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19z cGVjPQotKyAgICAgIGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlYz0KLSsgICAgICB3aG9sZV9hcmNo aXZlX2ZsYWdfc3BlYz0KLSsgICAgZmkKLSsgIGVsc2UKLSsgICAgIyBQT1JUTUUgZmlsbCBpbiBh IGRlc2NyaXB0aW9uIG9mIHlvdXIgc3lzdGVtJ3MgbGlua2VyIChub3QgR05VIGxkKQotKyAgICBj YXNlICRob3N0X29zIGluCi0rICAgIGFpeDMqKQotKyAgICAgIGFsbG93X3VuZGVmaW5lZF9mbGFn PXVuc3VwcG9ydGVkCi0rICAgICAgYWx3YXlzX2V4cG9ydF9zeW1ib2xzPXllcwotKyAgICAgIGFy Y2hpdmVfZXhwc3ltX2NtZHM9JyRMRCAtbyAkb3V0cHV0X29iamRpci8kc29uYW1lICRsaWJvYmpz ICRkZXBsaWJzICRsaW5rZXJfZmxhZ3MgLWJFOiRleHBvcnRfc3ltYm9scyAtVDUxMiAtSDUxMiAt Yk06U1JFfiRBUiAkQVJfRkxBR1MgJGxpYiAkb3V0cHV0X29iamRpci8kc29uYW1lJwotKyAgICAg ICMgTm90ZTogdGhpcyBsaW5rZXIgaGFyZGNvZGVzIHRoZSBkaXJlY3RvcmllcyBpbiBMSUJQQVRI IGlmIHRoZXJlCi0rICAgICAgIyBhcmUgbm8gZGlyZWN0b3JpZXMgc3BlY2lmaWVkIGJ5IC1MLgot KyAgICAgIGhhcmRjb2RlX21pbnVzX0w9eWVzCi0rICAgICAgaWYgdGVzdCAiJEdDQyIgPSB5ZXMg JiYgdGVzdCAteiAiJGx0X3Byb2dfY29tcGlsZXJfc3RhdGljIjsgdGhlbgotKwkjIE5laXRoZXIg ZGlyZWN0IGhhcmRjb2Rpbmcgbm9yIHN0YXRpYyBsaW5raW5nIGlzIHN1cHBvcnRlZCB3aXRoIGEK LSsJIyBicm9rZW4gY29sbGVjdDIuCi0rCWhhcmRjb2RlX2RpcmVjdD11bnN1cHBvcnRlZAotKyAg ICAgIGZpCi0rICAgICAgOzsKLSsKLSsgICAgYWl4WzQtOV0qKQotKyAgICAgIGlmIHRlc3QgIiRo b3N0X2NwdSIgPSBpYTY0OyB0aGVuCi0rCSMgT24gSUE2NCwgdGhlIGxpbmtlciBkb2VzIHJ1biB0 aW1lIGxpbmtpbmcgYnkgZGVmYXVsdCwgc28gd2UgZG9uJ3QKLSsJIyBoYXZlIHRvIGRvIGFueXRo aW5nIHNwZWNpYWwuCi0rCWFpeF91c2VfcnVudGltZWxpbmtpbmc9bm8KLSsJZXhwX3N5bV9mbGFn PSctQmV4cG9ydCcKLSsJbm9fZW50cnlfZmxhZz0iIgotKyAgICAgIGVsc2UKLSsJIyBJZiB3ZSdy ZSB1c2luZyBHTlUgbm0sIHRoZW4gd2UgZG9uJ3Qgd2FudCB0aGUgIi1DIiBvcHRpb24uCi0rCSMg LUMgbWVhbnMgZGVtYW5nbGUgdG8gQUlYIG5tLCBidXQgbWVhbnMgZG9uJ3QgZGVtYW5nbGUgd2l0 aCBHTlUgbm0KLSsJaWYgJE5NIC1WIDI+JjEgfCAkR1JFUCAnR05VJyA+IC9kZXYvbnVsbDsgdGhl bgotKwkgIGV4cG9ydF9zeW1ib2xzX2NtZHM9JyROTSAtQnBnICRsaWJvYmpzICRjb252ZW5pZW5j ZSB8IGF3ayAnXCcneyBpZiAoKChcJCAyID09ICJUIikgfHwgKFwkIDIgPT0gIkQiKSB8fCAoXCQg MiA9PSAiQiIpKSAmJiAoc3Vic3RyKFwkIDMsMSwxKSAhPSAiLiIpKSB7IHByaW50IFwkIDMgfSB9 J1wnJyB8IHNvcnQgLXUgPiAkZXhwb3J0X3N5bWJvbHMnCi0rCWVsc2UKLSsJICBleHBvcnRfc3lt Ym9sc19jbWRzPSckTk0gLUJDcGcgJGxpYm9ianMgJGNvbnZlbmllbmNlIHwgYXdrICdcJyd7IGlm ICgoKFwkIDIgPT0gIlQiKSB8fCAoXCQgMiA9PSAiRCIpIHx8IChcJCAyID09ICJCIikpICYmIChz dWJzdHIoXCQgMywxLDEpICE9ICIuIikpIHsgcHJpbnQgXCQgMyB9IH0nXCcnIHwgc29ydCAtdSA+ ICRleHBvcnRfc3ltYm9scycKLSsJZmkKLSsJYWl4X3VzZV9ydW50aW1lbGlua2luZz1ubwotKwot KwkjIFRlc3QgaWYgd2UgYXJlIHRyeWluZyB0byB1c2UgcnVuIHRpbWUgbGlua2luZyBvciBub3Jt YWwKLSsJIyBBSVggc3R5bGUgbGlua2luZy4gSWYgLWJydGwgaXMgc29tZXdoZXJlIGluIExERkxB R1MsIHdlCi0rCSMgbmVlZCB0byBkbyBydW50aW1lIGxpbmtpbmcuCi0rCWNhc2UgJGhvc3Rfb3Mg aW4gYWl4NC5bMjNdfGFpeDQuWzIzXS4qfGFpeFs1LTldKikKLSsJICBmb3IgbGRfZmxhZyBpbiAk TERGTEFHUzsgZG8KLSsJICBpZiAodGVzdCAkbGRfZmxhZyA9ICItYnJ0bCIgfHwgdGVzdCAkbGRf ZmxhZyA9ICItV2wsLWJydGwiKTsgdGhlbgotKwkgICAgYWl4X3VzZV9ydW50aW1lbGlua2luZz15 ZXMKLSsJICAgIGJyZWFrCi0rCSAgZmkKLSsJICBkb25lCi0rCSAgOzsKLSsJZXNhYwotKwotKwll eHBfc3ltX2ZsYWc9Jy1iZXhwb3J0JwotKwlub19lbnRyeV9mbGFnPSctYm5vZW50cnknCi0rICAg ICAgZmkKLSsKLSsgICAgICAjIFdoZW4gbGFyZ2UgZXhlY3V0YWJsZXMgb3Igc2hhcmVkIG9iamVj dHMgYXJlIGJ1aWx0LCBBSVggbGQgY2FuCi0rICAgICAgIyBoYXZlIHByb2JsZW1zIGNyZWF0aW5n IHRoZSB0YWJsZSBvZiBjb250ZW50cy4gIElmIGxpbmtpbmcgYSBsaWJyYXJ5Ci0rICAgICAgIyBv ciBwcm9ncmFtIHJlc3VsdHMgaW4gImVycm9yIFRPQyBvdmVyZmxvdyIgYWRkIC1tbWluaW1hbC10 b2MgdG8KLSsgICAgICAjIENYWEZMQUdTL0NGTEFHUyBmb3IgZysrL2djYy4gIEluIHRoZSBjYXNl cyB3aGVyZSB0aGF0IGlzIG5vdAotKyAgICAgICMgZW5vdWdoIHRvIGZpeCB0aGUgcHJvYmxlbSwg YWRkIC1XbCwtYmJpZ3RvYyB0byBMREZMQUdTLgotKwotKyAgICAgIGFyY2hpdmVfY21kcz0nJwot KyAgICAgIGhhcmRjb2RlX2RpcmVjdD15ZXMKLSsgICAgICBoYXJkY29kZV9kaXJlY3RfYWJzb2x1 dGU9eWVzCi0rICAgICAgaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvcj0nOicKLSsgICAgICBsaW5r X2FsbF9kZXBsaWJzPXllcwotKyAgICAgIGZpbGVfbGlzdF9zcGVjPScke3dsfS1mLCcKLSsKLSsg ICAgICBpZiB0ZXN0ICIkR0NDIiA9IHllczsgdGhlbgotKwljYXNlICRob3N0X29zIGluIGFpeDQu WzAxMl18YWl4NC5bMDEyXS4qKQotKwkjIFdlIG9ubHkgd2FudCB0byBkbyB0aGlzIG9uIEFJWCA0 LjIgYW5kIGxvd2VyLCB0aGUgY2hlY2sKLSsJIyBiZWxvdyBmb3IgYnJva2VuIGNvbGxlY3QyIGRv ZXNuJ3Qgd29yayB1bmRlciA0LjMrCi0rCSAgY29sbGVjdDJuYW1lPWAke0NDfSAtcHJpbnQtcHJv Zy1uYW1lPWNvbGxlY3QyYAotKwkgIGlmIHRlc3QgLWYgIiRjb2xsZWN0Mm5hbWUiICYmCi0rCSAg IHN0cmluZ3MgIiRjb2xsZWN0Mm5hbWUiIHwgJEdSRVAgcmVzb2x2ZV9saWJfbmFtZSA+L2Rldi9u dWxsCi0rCSAgdGhlbgotKwkgICMgV2UgaGF2ZSByZXdvcmtlZCBjb2xsZWN0MgotKwkgIDoKLSsJ ICBlbHNlCi0rCSAgIyBXZSBoYXZlIG9sZCBjb2xsZWN0MgotKwkgIGhhcmRjb2RlX2RpcmVjdD11 bnN1cHBvcnRlZAotKwkgICMgSXQgZmFpbHMgdG8gZmluZCB1bmluc3RhbGxlZCBsaWJyYXJpZXMg d2hlbiB0aGUgdW5pbnN0YWxsZWQKLSsJICAjIHBhdGggaXMgbm90IGxpc3RlZCBpbiB0aGUgbGli cGF0aC4gIFNldHRpbmcgaGFyZGNvZGVfbWludXNfTAotKwkgICMgdG8gdW5zdXBwb3J0ZWQgZm9y Y2VzIHJlbGlua2luZwotKwkgIGhhcmRjb2RlX21pbnVzX0w9eWVzCi0rCSAgaGFyZGNvZGVfbGli ZGlyX2ZsYWdfc3BlYz0nLUwkbGliZGlyJwotKwkgIGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3I9 Ci0rCSAgZmkKLSsJICA7OwotKwllc2FjCi0rCXNoYXJlZF9mbGFnPSctc2hhcmVkJwotKwlpZiB0 ZXN0ICIkYWl4X3VzZV9ydW50aW1lbGlua2luZyIgPSB5ZXM7IHRoZW4KLSsJICBzaGFyZWRfZmxh Zz0iJHNoYXJlZF9mbGFnICInJHt3bH0tRycKLSsJZmkKLSsgICAgICBlbHNlCi0rCSMgbm90IHVz aW5nIGdjYwotKwlpZiB0ZXN0ICIkaG9zdF9jcHUiID0gaWE2NDsgdGhlbgotKwkjIFZpc3VhbEFn ZSBDKyssIFZlcnNpb24gNS41IGZvciBBSVggNUwgZm9yIElBLTY0LCBCZXRhIDMgUmVsZWFzZQot KwkjIGNob2tlcyBvbiAtV2wsLUcuIFRoZSBmb2xsb3dpbmcgbGluZSBpcyBjb3JyZWN0OgotKwkg IHNoYXJlZF9mbGFnPSctRycKLSsJZWxzZQotKwkgIGlmIHRlc3QgIiRhaXhfdXNlX3J1bnRpbWVs aW5raW5nIiA9IHllczsgdGhlbgotKwkgICAgc2hhcmVkX2ZsYWc9JyR7d2x9LUcnCi0rCSAgZWxz ZQotKwkgICAgc2hhcmVkX2ZsYWc9JyR7d2x9LWJNOlNSRScKLSsJICBmaQotKwlmaQotKyAgICAg IGZpCi0rCi0rICAgICAgZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjPScke3dsfS1iZXhwYWxsJwot KyAgICAgICMgSXQgc2VlbXMgdGhhdCAtYmV4cGFsbCBkb2VzIG5vdCBleHBvcnQgc3ltYm9scyBi ZWdpbm5pbmcgd2l0aAotKyAgICAgICMgdW5kZXJzY29yZSAoXyksIHNvIGl0IGlzIGJldHRlciB0 byBnZW5lcmF0ZSBhIGxpc3Qgb2Ygc3ltYm9scyB0byBleHBvcnQuCi0rICAgICAgYWx3YXlzX2V4 cG9ydF9zeW1ib2xzPXllcwotKyAgICAgIGlmIHRlc3QgIiRhaXhfdXNlX3J1bnRpbWVsaW5raW5n IiA9IHllczsgdGhlbgotKwkjIFdhcm5pbmcgLSB3aXRob3V0IHVzaW5nIHRoZSBvdGhlciBydW50 aW1lIGxvYWRpbmcgZmxhZ3MgKC1icnRsKSwKLSsJIyAtYmVyb2sgd2lsbCBsaW5rIHdpdGhvdXQg ZXJyb3IsIGJ1dCBtYXkgcHJvZHVjZSBhIGJyb2tlbiBsaWJyYXJ5LgotKwlhbGxvd191bmRlZmlu ZWRfZmxhZz0nLWJlcm9rJwotKyAgICAgICAgIyBEZXRlcm1pbmUgdGhlIGRlZmF1bHQgbGlicGF0 aCBmcm9tIHRoZSB2YWx1ZSBlbmNvZGVkIGluIGFuCi0rICAgICAgICAjIGVtcHR5IGV4ZWN1dGFi bGUuCi0rICAgICAgICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLSsvKiBjb25mZGVm cy5oLiAgKi8KLStfQUNFT0YKLStjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKLStj YXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0rLyogZW5kIGNvbmZkZWZzLmguICAqLwot KwotK2ludAotK21haW4gKCkKLSt7Ci0rCi0rICA7Ci0rICByZXR1cm4gMDsKLSt9Ci0rX0FDRU9G Ci0rcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdCRhY19leGVleHQKLStpZiB7IChh Y190cnk9IiRhY19saW5rIgotK2Nhc2UgIigoJGFjX3RyeSIgaW4KLSsgICpcIiogfCAqXGAqIHwg KlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OwotKyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7 Ci0rZXNhYwotK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5X2Vj aG9cIiIKLSskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1Ci0rICAoZXZhbCAiJGFjX2xpbmsi KSAyPmNvbmZ0ZXN0LmVyMQotKyAgYWNfc3RhdHVzPSQ/Ci0rICBncmVwIC12ICdeICorJyBjb25m dGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgotKyAgcm0gLWYgY29uZnRlc3QuZXIxCi0rICBjYXQgY29u ZnRlc3QuZXJyID4mNQotKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3Rh dHVzIiA+JjUKLSsgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmIHsKLSsJIHRlc3QgLXogIiRhY19j X3dlcnJvcl9mbGFnIiB8fAotKwkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgotKyAgICAgICB9ICYm IHRlc3QgLXMgY29uZnRlc3QkYWNfZXhlZXh0ICYmIHsKLSsJIHRlc3QgIiRjcm9zc19jb21waWxp bmciID0geWVzIHx8Ci0rCSAkYXNfdGVzdF94IGNvbmZ0ZXN0JGFjX2V4ZWV4dAotKyAgICAgICB9 OyB0aGVuCi0rCi0rbHRfYWl4X2xpYnBhdGhfc2VkPScKLSsgICAgL0ltcG9ydCBGaWxlIFN0cmlu Z3MvLC9eJC8gewotKwkvXjAvIHsKLSsJICAgIHMvXjAgICpcKC4qXCkkL1wxLwotKwkgICAgcAot Kwl9Ci0rICAgIH0nCi0rYWl4X2xpYnBhdGg9YGR1bXAgLUggY29uZnRlc3QkYWNfZXhlZXh0IDI+ L2Rldi9udWxsIHwgJFNFRCAtbiAtZSAiJGx0X2FpeF9saWJwYXRoX3NlZCJgCi0rIyBDaGVjayBm b3IgYSA2NC1iaXQgb2JqZWN0IGlmIHdlIGRpZG4ndCBmaW5kIGFueXRoaW5nLgotK2lmIHRlc3Qg LXogIiRhaXhfbGlicGF0aCI7IHRoZW4KLSsgIGFpeF9saWJwYXRoPWBkdW1wIC1IWDY0IGNvbmZ0 ZXN0JGFjX2V4ZWV4dCAyPi9kZXYvbnVsbCB8ICRTRUQgLW4gLWUgIiRsdF9haXhfbGlicGF0aF9z ZWQiYAotK2ZpCi0rZWxzZQotKyAgJGFzX2VjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2Fz OiIgPiY1Ci0rc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQotKwotKwotK2ZpCi0r Ci0rcm0gLXJmIGNvbmZ0ZXN0LmRTWU0KLStybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVz dC4kYWNfb2JqZXh0IGNvbmZ0ZXN0X2lwYThfY29uZnRlc3Qub28gXAotKyAgICAgIGNvbmZ0ZXN0 JGFjX2V4ZWV4dCBjb25mdGVzdC4kYWNfZXh0Ci0raWYgdGVzdCAteiAiJGFpeF9saWJwYXRoIjsg dGhlbiBhaXhfbGlicGF0aD0iL3Vzci9saWI6L2xpYiI7IGZpCi0rCi0rICAgICAgICBoYXJkY29k ZV9saWJkaXJfZmxhZ19zcGVjPScke3dsfS1ibGlicGF0aDokbGliZGlyOiciJGFpeF9saWJwYXRo IgotKyAgICAgICAgYXJjaGl2ZV9leHBzeW1fY21kcz0nJENDIC1vICRvdXRwdXRfb2JqZGlyLyRz b25hbWUgJGxpYm9ianMgJGRlcGxpYnMgJyJcJHt3bH0kbm9fZW50cnlfZmxhZyInICRjb21waWxl cl9mbGFncyBgaWYgdGVzdCAieCR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9IiAhPSAieCI7IHRoZW4g JEVDSE8gIlgke3dsfSR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9IiB8ICRYc2VkOyBlbHNlIDo7IGZp YCAnIlwke3dsfSRleHBfc3ltX2ZsYWc6XCRleHBvcnRfc3ltYm9scyAkc2hhcmVkX2ZsYWciCi0r ICAgICAgZWxzZQotKwlpZiB0ZXN0ICIkaG9zdF9jcHUiID0gaWE2NDsgdGhlbgotKwkgIGhhcmRj b2RlX2xpYmRpcl9mbGFnX3NwZWM9JyR7d2x9LVIgJGxpYmRpcjovdXNyL2xpYjovbGliJwotKwkg IGFsbG93X3VuZGVmaW5lZF9mbGFnPSIteiBub2RlZnMiCi0rCSAgYXJjaGl2ZV9leHBzeW1fY21k cz0iXCRDQyAkc2hhcmVkX2ZsYWciJyAtbyAkb3V0cHV0X29iamRpci8kc29uYW1lICRsaWJvYmpz ICRkZXBsaWJzICciXCR7d2x9JG5vX2VudHJ5X2ZsYWciJyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0k e2FsbG93X3VuZGVmaW5lZF9mbGFnfSAnIlwke3dsfSRleHBfc3ltX2ZsYWc6XCRleHBvcnRfc3lt Ym9scyIKLSsJZWxzZQotKwkgIyBEZXRlcm1pbmUgdGhlIGRlZmF1bHQgbGlicGF0aCBmcm9tIHRo ZSB2YWx1ZSBlbmNvZGVkIGluIGFuCi0rCSAjIGVtcHR5IGV4ZWN1dGFibGUuCi0rCSBjYXQgPmNv bmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLSsvKiBjb25mZGVmcy5oLiAgKi8KLStfQUNFT0YKLStj YXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKLStjYXQgPj5jb25mdGVzdC4kYWNfZXh0 IDw8X0FDRU9GCi0rLyogZW5kIGNvbmZkZWZzLmguICAqLwotKwotK2ludAotK21haW4gKCkKLSt7 Ci0rCi0rICA7Ci0rICByZXR1cm4gMDsKLSt9Ci0rX0FDRU9GCi0rcm0gLWYgY29uZnRlc3QuJGFj X29iamV4dCBjb25mdGVzdCRhY19leGVleHQKLStpZiB7IChhY190cnk9IiRhY19saW5rIgotK2Nh c2UgIigoJGFjX3RyeSIgaW4KLSsgICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRh Y190cnk7OwotKyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7Ci0rZXNhYwotK2V2YWwgYWNfdHJ5 X2VjaG89IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIKLSskYXNfZWNobyAiJGFj X3RyeV9lY2hvIikgPiY1Ci0rICAoZXZhbCAiJGFjX2xpbmsiKSAyPmNvbmZ0ZXN0LmVyMQotKyAg YWNfc3RhdHVzPSQ/Ci0rICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVy cgotKyAgcm0gLWYgY29uZnRlc3QuZXIxCi0rICBjYXQgY29uZnRlc3QuZXJyID4mNQotKyAgJGFz X2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSsgIChleGl0ICRh Y19zdGF0dXMpOyB9ICYmIHsKLSsJIHRlc3QgLXogIiRhY19jX3dlcnJvcl9mbGFnIiB8fAotKwkg dGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgotKyAgICAgICB9ICYmIHRlc3QgLXMgY29uZnRlc3QkYWNf ZXhlZXh0ICYmIHsKLSsJIHRlc3QgIiRjcm9zc19jb21waWxpbmciID0geWVzIHx8Ci0rCSAkYXNf dGVzdF94IGNvbmZ0ZXN0JGFjX2V4ZWV4dAotKyAgICAgICB9OyB0aGVuCi0rCi0rbHRfYWl4X2xp YnBhdGhfc2VkPScKLSsgICAgL0ltcG9ydCBGaWxlIFN0cmluZ3MvLC9eJC8gewotKwkvXjAvIHsK LSsJICAgIHMvXjAgICpcKC4qXCkkL1wxLwotKwkgICAgcAotKwl9Ci0rICAgIH0nCi0rYWl4X2xp YnBhdGg9YGR1bXAgLUggY29uZnRlc3QkYWNfZXhlZXh0IDI+L2Rldi9udWxsIHwgJFNFRCAtbiAt ZSAiJGx0X2FpeF9saWJwYXRoX3NlZCJgCi0rIyBDaGVjayBmb3IgYSA2NC1iaXQgb2JqZWN0IGlm IHdlIGRpZG4ndCBmaW5kIGFueXRoaW5nLgotK2lmIHRlc3QgLXogIiRhaXhfbGlicGF0aCI7IHRo ZW4KLSsgIGFpeF9saWJwYXRoPWBkdW1wIC1IWDY0IGNvbmZ0ZXN0JGFjX2V4ZWV4dCAyPi9kZXYv bnVsbCB8ICRTRUQgLW4gLWUgIiRsdF9haXhfbGlicGF0aF9zZWQiYAotK2ZpCi0rZWxzZQotKyAg JGFzX2VjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Ci0rc2VkICdzL14vfCAv JyBjb25mdGVzdC4kYWNfZXh0ID4mNQotKwotKwotK2ZpCi0rCi0rcm0gLXJmIGNvbmZ0ZXN0LmRT WU0KLStybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0 X2lwYThfY29uZnRlc3Qub28gXAotKyAgICAgIGNvbmZ0ZXN0JGFjX2V4ZWV4dCBjb25mdGVzdC4k YWNfZXh0Ci0raWYgdGVzdCAteiAiJGFpeF9saWJwYXRoIjsgdGhlbiBhaXhfbGlicGF0aD0iL3Vz ci9saWI6L2xpYiI7IGZpCi0rCi0rCSBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjPScke3dsfS1i bGlicGF0aDokbGliZGlyOiciJGFpeF9saWJwYXRoIgotKwkgICMgV2FybmluZyAtIHdpdGhvdXQg dXNpbmcgdGhlIG90aGVyIHJ1biB0aW1lIGxvYWRpbmcgZmxhZ3MsCi0rCSAgIyAtYmVyb2sgd2ls bCBsaW5rIHdpdGhvdXQgZXJyb3IsIGJ1dCBtYXkgcHJvZHVjZSBhIGJyb2tlbiBsaWJyYXJ5Lgot KwkgIG5vX3VuZGVmaW5lZF9mbGFnPScgJHt3bH0tYmVybm90b2snCi0rCSAgYWxsb3dfdW5kZWZp bmVkX2ZsYWc9JyAke3dsfS1iZXJvaycKLSsJICAjIEV4cG9ydGVkIHN5bWJvbHMgY2FuIGJlIHB1 bGxlZCBpbnRvIHNoYXJlZCBvYmplY3RzIGZyb20gYXJjaGl2ZXMKLSsJICB3aG9sZV9hcmNoaXZl X2ZsYWdfc3BlYz0nJGNvbnZlbmllbmNlJwotKwkgIGFyY2hpdmVfY21kc19uZWVkX2xjPXllcwot KwkgICMgVGhpcyBpcyBzaW1pbGFyIHRvIGhvdyBBSVggdHJhZGl0aW9uYWxseSBidWlsZHMgaXRz IHNoYXJlZCBsaWJyYXJpZXMuCi0rCSAgYXJjaGl2ZV9leHBzeW1fY21kcz0iXCRDQyAkc2hhcmVk X2ZsYWciJyAtbyAkb3V0cHV0X29iamRpci8kc29uYW1lICRsaWJvYmpzICRkZXBsaWJzICR7d2x9 LWJub2VudHJ5ICRjb21waWxlcl9mbGFncyAke3dsfS1iRTokZXhwb3J0X3N5bWJvbHMke2FsbG93 X3VuZGVmaW5lZF9mbGFnfX4kQVIgJEFSX0ZMQUdTICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lJHJl bGVhc2UuYSAkb3V0cHV0X29iamRpci8kc29uYW1lJwotKwlmaQotKyAgICAgIGZpCi0rICAgICAg OzsKLSsKLSsgICAgYW1pZ2FvcyopCi0rICAgICAgY2FzZSAkaG9zdF9jcHUgaW4KLSsgICAgICBw b3dlcnBjKQotKyAgICAgICAgICAgICMgc2VlIGNvbW1lbnQgYWJvdXQgQW1pZ2FPUzQgLnNvIHN1 cHBvcnQKLSsgICAgICAgICAgICBhcmNoaXZlX2NtZHM9JyRDQyAtc2hhcmVkICRsaWJvYmpzICRk ZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAtbyAkbGliJwot KyAgICAgICAgICAgIGFyY2hpdmVfZXhwc3ltX2NtZHM9JycKLSsgICAgICAgIDs7Ci0rICAgICAg bTY4aykKLSsgICAgICAgICAgICBhcmNoaXZlX2NtZHM9JyRSTSAkb3V0cHV0X29iamRpci9hMml4 bGlicmFyeS5kYXRhfiRFQ0hPICIjZGVmaW5lIE5BTUUgJGxpYm5hbWUiID4gJG91dHB1dF9vYmpk aXIvYTJpeGxpYnJhcnkuZGF0YX4kRUNITyAiI2RlZmluZSBMSUJSQVJZX0lEIDEiID4+ICRvdXRw dXRfb2JqZGlyL2EyaXhsaWJyYXJ5LmRhdGF+JEVDSE8gIiNkZWZpbmUgVkVSU0lPTiAkbWFqb3Ii ID4+ICRvdXRwdXRfb2JqZGlyL2EyaXhsaWJyYXJ5LmRhdGF+JEVDSE8gIiNkZWZpbmUgUkVWSVNJ T04gJHJldmlzaW9uIiA+PiAkb3V0cHV0X29iamRpci9hMml4bGlicmFyeS5kYXRhfiRBUiAkQVJf RkxBR1MgJGxpYiAkbGlib2Jqc34kUkFOTElCICRsaWJ+KGNkICRvdXRwdXRfb2JqZGlyICYmIGEy aXhsaWJyYXJ5IC0zMiknCi0rICAgICAgICAgICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYz0n LUwkbGliZGlyJwotKyAgICAgICAgICAgIGhhcmRjb2RlX21pbnVzX0w9eWVzCi0rICAgICAgICA7 OwotKyAgICAgIGVzYWMKLSsgICAgICA7OwotKwotKyAgICBic2RpWzQ1XSopCi0rICAgICAgZXhw b3J0X2R5bmFtaWNfZmxhZ19zcGVjPS1yZHluYW1pYwotKyAgICAgIDs7Ci0rCi0rICAgIGN5Z3dp biogfCBtaW5ndyogfCBwdzMyKiB8IGNlZ2NjKikKLSsgICAgICAjIFdoZW4gbm90IHVzaW5nIGdj Yywgd2UgY3VycmVudGx5IGFzc3VtZSB0aGF0IHdlIGFyZSB1c2luZwotKyAgICAgICMgTWljcm9z b2Z0IFZpc3VhbCBDKysuCi0rICAgICAgIyBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjIGlzIGFj dHVhbGx5IG1lYW5pbmdsZXNzLCBhcyB0aGVyZSBpcwotKyAgICAgICMgbm8gc2VhcmNoIHBhdGgg Zm9yIERMTHMuCi0rICAgICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYz0nICcKLSsgICAgICBh bGxvd191bmRlZmluZWRfZmxhZz11bnN1cHBvcnRlZAotKyAgICAgICMgVGVsbCBsdG1haW4gdG8g bWFrZSAubGliIGZpbGVzLCBub3QgLmEgZmlsZXMuCi0rICAgICAgbGliZXh0PWxpYgotKyAgICAg ICMgVGVsbCBsdG1haW4gdG8gbWFrZSAuZGxsIGZpbGVzLCBub3QgLnNvIGZpbGVzLgotKyAgICAg IHNocmV4dF9jbWRzPSIuZGxsIgotKyAgICAgICMgRklYTUU6IFNldHRpbmcgbGlua25hbWVzIGhl cmUgaXMgYSBiYWQgaGFjay4KLSsgICAgICBhcmNoaXZlX2NtZHM9JyRDQyAtbyAkbGliICRsaWJv YmpzICRjb21waWxlcl9mbGFncyBgJEVDSE8gIlgkZGVwbGlicyIgfCAkWHNlZCAtZSAnXCcncy8g LWxjJC8vJ1wnJ2AgLWxpbmsgLWRsbH5saW5rbmFtZXM9JwotKyAgICAgICMgVGhlIGxpbmtlciB3 aWxsIGF1dG9tYXRpY2FsbHkgYnVpbGQgYSAubGliIGZpbGUgaWYgd2UgYnVpbGQgYSBETEwuCi0r ICAgICAgb2xkX2FyY2hpdmVfZnJvbV9uZXdfY21kcz0ndHJ1ZScKLSsgICAgICAjIEZJWE1FOiBT aG91bGQgbGV0IHRoZSB1c2VyIHNwZWNpZnkgdGhlIGxpYiBwcm9ncmFtLgotKyAgICAgIG9sZF9h cmNoaXZlX2NtZHM9J2xpYiAtT1VUOiRvbGRsaWIkb2xkb2JqcyRvbGRfZGVwbGlicycKLSsgICAg ICBmaXhfc3JjZmlsZV9wYXRoPSdgY3lncGF0aCAtdyAiJHNyY2ZpbGUiYCcKLSsgICAgICBlbmFi bGVfc2hhcmVkX3dpdGhfc3RhdGljX3J1bnRpbWVzPXllcwotKyAgICAgIDs7Ci0rCi0rICAgIGRh cndpbiogfCByaGFwc29keSopCi0rCi0rCi0rICBhcmNoaXZlX2NtZHNfbmVlZF9sYz1ubwotKyAg aGFyZGNvZGVfZGlyZWN0PW5vCi0rICBoYXJkY29kZV9hdXRvbWF0aWM9eWVzCi0rICBoYXJkY29k ZV9zaGxpYnBhdGhfdmFyPXVuc3VwcG9ydGVkCi0rICB3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYz0n JwotKyAgbGlua19hbGxfZGVwbGlicz15ZXMKLSsgIGFsbG93X3VuZGVmaW5lZF9mbGFnPSIkX2x0 X2Rhcl9hbGxvd191bmRlZmluZWQiCi0rICBjYXNlICRjY19iYXNlbmFtZSBpbgotKyAgICAgaWZv cnQqKSBfbHRfZGFyX2Nhbl9zaGFyZWQ9eWVzIDs7Ci0rICAgICAqKSBfbHRfZGFyX2Nhbl9zaGFy ZWQ9JEdDQyA7OwotKyAgZXNhYwotKyAgaWYgdGVzdCAiJF9sdF9kYXJfY2FuX3NoYXJlZCIgPSAi eWVzIjsgdGhlbgotKyAgICBvdXRwdXRfdmVyYm9zZV9saW5rX2NtZD1lY2hvCi0rICAgIGFyY2hp dmVfY21kcz0iXCRDQyAtZHluYW1pY2xpYiBcJGFsbG93X3VuZGVmaW5lZF9mbGFnIC1vIFwkbGli IFwkbGlib2JqcyBcJGRlcGxpYnMgXCRjb21waWxlcl9mbGFncyAtaW5zdGFsbF9uYW1lIFwkcnBh dGgvXCRzb25hbWUgXCR2ZXJzdHJpbmcgJF9sdF9kYXJfc2luZ2xlX21vZCR7X2x0X2RzeW11dGls fSIKLSsgICAgbW9kdWxlX2NtZHM9IlwkQ0MgXCRhbGxvd191bmRlZmluZWRfZmxhZyAtbyBcJGxp YiAtYnVuZGxlIFwkbGlib2JqcyBcJGRlcGxpYnMgXCRjb21waWxlcl9mbGFncyR7X2x0X2RzeW11 dGlsfSIKLSsgICAgYXJjaGl2ZV9leHBzeW1fY21kcz0ic2VkICdzLF4sXywnIDwgXCRleHBvcnRf c3ltYm9scyA+IFwkb3V0cHV0X29iamRpci9cJHtsaWJuYW1lfS1zeW1ib2xzLmV4cHN5bX5cJEND IC1keW5hbWljbGliIFwkYWxsb3dfdW5kZWZpbmVkX2ZsYWcgLW8gXCRsaWIgXCRsaWJvYmpzIFwk ZGVwbGlicyBcJGNvbXBpbGVyX2ZsYWdzIC1pbnN0YWxsX25hbWUgXCRycGF0aC9cJHNvbmFtZSBc JHZlcnN0cmluZyAke19sdF9kYXJfc2luZ2xlX21vZH0ke19sdF9kYXJfZXhwb3J0X3N5bXN9JHtf bHRfZHN5bXV0aWx9IgotKyAgICBtb2R1bGVfZXhwc3ltX2NtZHM9InNlZCAtZSAncyxeLF8sJyA8 IFwkZXhwb3J0X3N5bWJvbHMgPiBcJG91dHB1dF9vYmpkaXIvXCR7bGlibmFtZX0tc3ltYm9scy5l eHBzeW1+XCRDQyBcJGFsbG93X3VuZGVmaW5lZF9mbGFnIC1vIFwkbGliIC1idW5kbGUgXCRsaWJv YmpzIFwkZGVwbGlicyBcJGNvbXBpbGVyX2ZsYWdzJHtfbHRfZGFyX2V4cG9ydF9zeW1zfSR7X2x0 X2RzeW11dGlsfSIKLSsKLSsgIGVsc2UKLSsgIGxkX3NobGlicz1ubwotKyAgZmkKLSsKLSsgICAg ICA7OwotKwotKyAgICBkZ3V4KikKLSsgICAgICBhcmNoaXZlX2NtZHM9JyRMRCAtRyAtaCAkc29u YW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGxpbmtlcl9mbGFncycKLSsgICAgICBoYXJk Y29kZV9saWJkaXJfZmxhZ19zcGVjPSctTCRsaWJkaXInCi0rICAgICAgaGFyZGNvZGVfc2hsaWJw YXRoX3Zhcj1ubwotKyAgICAgIDs7Ci0rCi0rICAgIGZyZWVic2QxKikKLSsgICAgICBsZF9zaGxp YnM9bm8KLSsgICAgICA7OwotKwotKyAgICAjIEZyZWVCU0QgMi4yLlswMTJdIGFsbG93cyB1cyB0 byBpbmNsdWRlIGMrK3J0MC5vIHRvIGdldCBDKysgY29uc3RydWN0b3IKLSsgICAgIyBzdXBwb3J0 LiAgRnV0dXJlIHZlcnNpb25zIGRvIHRoaXMgYXV0b21hdGljYWxseSwgYnV0IGFuIGV4cGxpY2l0 IGMrK3J0MC5vCi0rICAgICMgZG9lcyBub3QgYnJlYWsgYW55dGhpbmcsIGFuZCBoZWxwcyBzaWdu aWZpY2FudGx5IChhdCB0aGUgY29zdCBvZiBhIGxpdHRsZQotKyAgICAjIGV4dHJhIHNwYWNlKS4K LSsgICAgZnJlZWJzZDIuMiopCi0rICAgICAgYXJjaGl2ZV9jbWRzPSckTEQgLUJzaGFyZWFibGUg LW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzIC91c3IvbGliL2MrK3J0MC5v JwotKyAgICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWM9Jy1SJGxpYmRpcicKLSsgICAgICBo YXJkY29kZV9kaXJlY3Q9eWVzCi0rICAgICAgaGFyZGNvZGVfc2hsaWJwYXRoX3Zhcj1ubwotKyAg ICAgIDs7Ci0rCi0rICAgICMgVW5mb3J0dW5hdGVseSwgb2xkZXIgdmVyc2lvbnMgb2YgRnJlZUJT RCAyIGRvIG5vdCBoYXZlIHRoaXMgZmVhdHVyZS4KLSsgICAgZnJlZWJzZDIqKQotKyAgICAgIGFy Y2hpdmVfY21kcz0nJExEIC1Cc2hhcmVhYmxlIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGxp bmtlcl9mbGFncycKLSsgICAgICBoYXJkY29kZV9kaXJlY3Q9eWVzCi0rICAgICAgaGFyZGNvZGVf bWludXNfTD15ZXMKLSsgICAgICBoYXJkY29kZV9zaGxpYnBhdGhfdmFyPW5vCi0rICAgICAgOzsK LSsKLSsgICAgIyBGcmVlQlNEIDMgYW5kIGdyZWF0ZXIgdXNlcyBnY2MgLXNoYXJlZCB0byBkbyBz aGFyZWQgbGlicmFyaWVzLgotKyAgICBmcmVlYnNkKiB8IGRyYWdvbmZseSopCi0rICAgICAgYXJj aGl2ZV9jbWRzPSckQ0MgLXNoYXJlZCAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxl cl9mbGFncycKLSsgICAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjPSctUiRsaWJkaXInCi0r ICAgICAgaGFyZGNvZGVfZGlyZWN0PXllcwotKyAgICAgIGhhcmRjb2RlX3NobGlicGF0aF92YXI9 bm8KLSsgICAgICA7OwotKwotKyAgICBocHV4OSopCi0rICAgICAgaWYgdGVzdCAiJEdDQyIgPSB5 ZXM7IHRoZW4KLSsJYXJjaGl2ZV9jbWRzPSckUk0gJG91dHB1dF9vYmpkaXIvJHNvbmFtZX4kQ0Mg LXNoYXJlZCAtZlBJQyAke3dsfStiICR7d2x9JGluc3RhbGxfbGliZGlyIC1vICRvdXRwdXRfb2Jq ZGlyLyRzb25hbWUgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzfnRlc3QgJG91dHB1 dF9vYmpkaXIvJHNvbmFtZSA9ICRsaWIgfHwgbXYgJG91dHB1dF9vYmpkaXIvJHNvbmFtZSAkbGli JwotKyAgICAgIGVsc2UKLSsJYXJjaGl2ZV9jbWRzPSckUk0gJG91dHB1dF9vYmpkaXIvJHNvbmFt ZX4kTEQgLWIgK2IgJGluc3RhbGxfbGliZGlyIC1vICRvdXRwdXRfb2JqZGlyLyRzb25hbWUgJGxp Ym9ianMgJGRlcGxpYnMgJGxpbmtlcl9mbGFnc350ZXN0ICRvdXRwdXRfb2JqZGlyLyRzb25hbWUg PSAkbGliIHx8IG12ICRvdXRwdXRfb2JqZGlyLyRzb25hbWUgJGxpYicKLSsgICAgICBmaQotKyAg ICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWM9JyR7d2x9K2IgJHt3bH0kbGliZGlyJwotKyAg ICAgIGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3I9OgotKyAgICAgIGhhcmRjb2RlX2RpcmVjdD15 ZXMKLSsKLSsgICAgICAjIGhhcmRjb2RlX21pbnVzX0w6IE5vdCByZWFsbHkgaW4gdGhlIHNlYXJj aCBQQVRILAotKyAgICAgICMgYnV0IGFzIHRoZSBkZWZhdWx0IGxvY2F0aW9uIG9mIHRoZSBsaWJy YXJ5LgotKyAgICAgIGhhcmRjb2RlX21pbnVzX0w9eWVzCi0rICAgICAgZXhwb3J0X2R5bmFtaWNf ZmxhZ19zcGVjPScke3dsfS1FJwotKyAgICAgIDs7Ci0rCi0rICAgIGhwdXgxMCopCi0rICAgICAg aWYgdGVzdCAiJEdDQyIgPSB5ZXMgLWEgIiR3aXRoX2dudV9sZCIgPSBubzsgdGhlbgotKwlhcmNo aXZlX2NtZHM9JyRDQyAtc2hhcmVkIC1mUElDICR7d2x9K2ggJHt3bH0kc29uYW1lICR7d2x9K2Ig JHt3bH0kaW5zdGFsbF9saWJkaXIgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJf ZmxhZ3MnCi0rICAgICAgZWxzZQotKwlhcmNoaXZlX2NtZHM9JyRMRCAtYiAraCAkc29uYW1lICti ICRpbnN0YWxsX2xpYmRpciAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRsaW5rZXJfZmxhZ3Mn Ci0rICAgICAgZmkKLSsgICAgICBpZiB0ZXN0ICIkd2l0aF9nbnVfbGQiID0gbm87IHRoZW4KLSsJ aGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYz0nJHt3bH0rYiAke3dsfSRsaWJkaXInCi0rCWhhcmRj b2RlX2xpYmRpcl9mbGFnX3NwZWNfbGQ9JytiICRsaWJkaXInCi0rCWhhcmRjb2RlX2xpYmRpcl9z ZXBhcmF0b3I9OgotKwloYXJkY29kZV9kaXJlY3Q9eWVzCi0rCWhhcmRjb2RlX2RpcmVjdF9hYnNv bHV0ZT15ZXMKLSsJZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjPScke3dsfS1FJwotKwkjIGhhcmRj b2RlX21pbnVzX0w6IE5vdCByZWFsbHkgaW4gdGhlIHNlYXJjaCBQQVRILAotKwkjIGJ1dCBhcyB0 aGUgZGVmYXVsdCBsb2NhdGlvbiBvZiB0aGUgbGlicmFyeS4KLSsJaGFyZGNvZGVfbWludXNfTD15 ZXMKLSsgICAgICBmaQotKyAgICAgIDs7Ci0rCi0rICAgIGhwdXgxMSopCi0rICAgICAgaWYgdGVz dCAiJEdDQyIgPSB5ZXMgLWEgIiR3aXRoX2dudV9sZCIgPSBubzsgdGhlbgotKwljYXNlICRob3N0 X2NwdSBpbgotKwlocHBhKjY0KikKLSsJICBhcmNoaXZlX2NtZHM9JyRDQyAtc2hhcmVkICR7d2x9 K2ggJHt3bH0kc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdz JwotKwkgIDs7Ci0rCWlhNjQqKQotKwkgIGFyY2hpdmVfY21kcz0nJENDIC1zaGFyZWQgLWZQSUMg JHt3bH0raCAke3dsfSRzb25hbWUgJHt3bH0rbm9kZWZhdWx0cnBhdGggLW8gJGxpYiAkbGlib2Jq cyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCi0rCSAgOzsKLSsJKikKLSsJICBhcmNoaXZlX2Nt ZHM9JyRDQyAtc2hhcmVkIC1mUElDICR7d2x9K2ggJHt3bH0kc29uYW1lICR7d2x9K2IgJHt3bH0k aW5zdGFsbF9saWJkaXIgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3Mn Ci0rCSAgOzsKLSsJZXNhYwotKyAgICAgIGVsc2UKLSsJY2FzZSAkaG9zdF9jcHUgaW4KLSsJaHBw YSo2NCopCi0rCSAgYXJjaGl2ZV9jbWRzPSckQ0MgLWIgJHt3bH0raCAke3dsfSRzb25hbWUgLW8g JGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCi0rCSAgOzsKLSsJaWE2NCop Ci0rCSAgYXJjaGl2ZV9jbWRzPSckQ0MgLWIgJHt3bH0raCAke3dsfSRzb25hbWUgJHt3bH0rbm9k ZWZhdWx0cnBhdGggLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCi0r CSAgOzsKLSsJKikKLSsJICBhcmNoaXZlX2NtZHM9JyRDQyAtYiAke3dsfStoICR7d2x9JHNvbmFt ZSAke3dsfStiICR7d2x9JGluc3RhbGxfbGliZGlyIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMg JGNvbXBpbGVyX2ZsYWdzJwotKwkgIDs7Ci0rCWVzYWMKLSsgICAgICBmaQotKyAgICAgIGlmIHRl c3QgIiR3aXRoX2dudV9sZCIgPSBubzsgdGhlbgotKwloYXJkY29kZV9saWJkaXJfZmxhZ19zcGVj PScke3dsfStiICR7d2x9JGxpYmRpcicKLSsJaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvcj06Ci0r Ci0rCWNhc2UgJGhvc3RfY3B1IGluCi0rCWhwcGEqNjQqfGlhNjQqKQotKwkgIGhhcmRjb2RlX2Rp cmVjdD1ubwotKwkgIGhhcmRjb2RlX3NobGlicGF0aF92YXI9bm8KLSsJICA7OwotKwkqKQotKwkg IGhhcmRjb2RlX2RpcmVjdD15ZXMKLSsJICBoYXJkY29kZV9kaXJlY3RfYWJzb2x1dGU9eWVzCi0r CSAgZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjPScke3dsfS1FJwotKwotKwkgICMgaGFyZGNvZGVf bWludXNfTDogTm90IHJlYWxseSBpbiB0aGUgc2VhcmNoIFBBVEgsCi0rCSAgIyBidXQgYXMgdGhl IGRlZmF1bHQgbG9jYXRpb24gb2YgdGhlIGxpYnJhcnkuCi0rCSAgaGFyZGNvZGVfbWludXNfTD15 ZXMKLSsJICA7OwotKwllc2FjCi0rICAgICAgZmkKLSsgICAgICA7OwotKwotKyAgICBpcml4NSog fCBpcml4NiogfCBub25zdG9wdXgqKQotKyAgICAgIGlmIHRlc3QgIiRHQ0MiID0geWVzOyB0aGVu Ci0rCWFyY2hpdmVfY21kcz0nJENDIC1zaGFyZWQgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVy X2ZsYWdzICR7d2x9LXNvbmFtZSAke3dsfSRzb25hbWUgYHRlc3QgLW4gIiR2ZXJzdHJpbmciICYm ICRFQ0hPICJYJHt3bH0tc2V0X3ZlcnNpb24gJHt3bH0kdmVyc3RyaW5nIiB8ICRYc2VkYCAke3ds fS11cGRhdGVfcmVnaXN0cnkgJHt3bH0ke291dHB1dF9vYmpkaXJ9L3NvX2xvY2F0aW9ucyAtbyAk bGliJwotKwkjIFRyeSB0byB1c2UgdGhlIC1leHBvcnRlZF9zeW1ib2wgbGQgb3B0aW9uLCBpZiBp dCBkb2VzIG5vdAotKwkjIHdvcmssIGFzc3VtZSB0aGF0IC1leHBvcnRzX2ZpbGUgZG9lcyBub3Qg d29yayBlaXRoZXIgYW5kCi0rCSMgaW1wbGljaXRseSBleHBvcnQgYWxsIHN5bWJvbHMuCi0rICAg ICAgICBzYXZlX0xERkxBR1M9IiRMREZMQUdTIgotKyAgICAgICAgTERGTEFHUz0iJExERkxBR1Mg LXNoYXJlZCAke3dsfS1leHBvcnRlZF9zeW1ib2wgJHt3bH1mb28gJHt3bH0tdXBkYXRlX3JlZ2lz dHJ5ICR7d2x9L2Rldi9udWxsIgotKyAgICAgICAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FD RU9GCi0raW50IGZvbyh2b2lkKSB7fQotK19BQ0VPRgotK3JtIC1mIGNvbmZ0ZXN0LiRhY19vYmpl eHQgY29uZnRlc3QkYWNfZXhlZXh0Ci0raWYgeyAoYWNfdHJ5PSIkYWNfbGluayIKLStjYXNlICIo KCRhY190cnkiIGluCi0rICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5 OzsKLSsgICopIGFjX3RyeV9lY2hvPSRhY190cnk7OwotK2VzYWMKLStldmFsIGFjX3RyeV9lY2hv PSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCi0rJGFzX2VjaG8gIiRhY190cnlf ZWNobyIpID4mNQotKyAgKGV2YWwgIiRhY19saW5rIikgMj5jb25mdGVzdC5lcjEKLSsgIGFjX3N0 YXR1cz0kPwotKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKLSsg IHJtIC1mIGNvbmZ0ZXN0LmVyMQotKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKLSsgICRhc19lY2hv ICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0rICAoZXhpdCAkYWNfc3Rh dHVzKTsgfSAmJiB7Ci0rCSB0ZXN0IC16ICIkYWNfY193ZXJyb3JfZmxhZyIgfHwKLSsJIHRlc3Qg ISAtcyBjb25mdGVzdC5lcnIKLSsgICAgICAgfSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0JGFjX2V4ZWV4 dCAmJiB7Ci0rCSB0ZXN0ICIkY3Jvc3NfY29tcGlsaW5nIiA9IHllcyB8fAotKwkgJGFzX3Rlc3Rf eCBjb25mdGVzdCRhY19leGVleHQKLSsgICAgICAgfTsgdGhlbgotKyAgYXJjaGl2ZV9leHBzeW1f Y21kcz0nJENDIC1zaGFyZWQgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9 LXNvbmFtZSAke3dsfSRzb25hbWUgYHRlc3QgLW4gIiR2ZXJzdHJpbmciICYmICRFQ0hPICJYJHt3 bH0tc2V0X3ZlcnNpb24gJHt3bH0kdmVyc3RyaW5nIiB8ICRYc2VkYCAke3dsfS11cGRhdGVfcmVn aXN0cnkgJHt3bH0ke291dHB1dF9vYmpkaXJ9L3NvX2xvY2F0aW9ucyAke3dsfS1leHBvcnRzX2Zp bGUgJHt3bH0kZXhwb3J0X3N5bWJvbHMgLW8gJGxpYicKLSsKLStlbHNlCi0rICAkYXNfZWNobyAi JGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLStzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0 LiRhY19leHQgPiY1Ci0rCi0rCi0rZmkKLSsKLStybSAtcmYgY29uZnRlc3QuZFNZTQotK3JtIC1m IGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3RfaXBhOF9jb25m dGVzdC5vbyBcCi0rICAgICAgY29uZnRlc3QkYWNfZXhlZXh0IGNvbmZ0ZXN0LiRhY19leHQKLSsg ICAgICAgIExERkxBR1M9IiRzYXZlX0xERkxBR1MiCi0rICAgICAgZWxzZQotKwlhcmNoaXZlX2Nt ZHM9JyRDQyAtc2hhcmVkICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAtc29uYW1l ICRzb25hbWUgYHRlc3QgLW4gIiR2ZXJzdHJpbmciICYmICRFQ0hPICJYLXNldF92ZXJzaW9uICR2 ZXJzdHJpbmciIHwgJFhzZWRgIC11cGRhdGVfcmVnaXN0cnkgJHtvdXRwdXRfb2JqZGlyfS9zb19s b2NhdGlvbnMgLW8gJGxpYicKLSsJYXJjaGl2ZV9leHBzeW1fY21kcz0nJENDIC1zaGFyZWQgJGxp Ym9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzIC1zb25hbWUgJHNvbmFtZSBgdGVzdCAtbiAi JHZlcnN0cmluZyIgJiYgJEVDSE8gIlgtc2V0X3ZlcnNpb24gJHZlcnN0cmluZyIgfCAkWHNlZGAg LXVwZGF0ZV9yZWdpc3RyeSAke291dHB1dF9vYmpkaXJ9L3NvX2xvY2F0aW9ucyAtZXhwb3J0c19m aWxlICRleHBvcnRfc3ltYm9scyAtbyAkbGliJwotKyAgICAgIGZpCi0rICAgICAgYXJjaGl2ZV9j bWRzX25lZWRfbGM9J25vJwotKyAgICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWM9JyR7d2x9 LXJwYXRoICR7d2x9JGxpYmRpcicKLSsgICAgICBoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yPToK LSsgICAgICBpbmhlcml0X3JwYXRoPXllcwotKyAgICAgIGxpbmtfYWxsX2RlcGxpYnM9eWVzCi0r ICAgICAgOzsKLSsKLSsgICAgbmV0YnNkKikKLSsgICAgICBpZiBlY2hvIF9fRUxGX18gfCAkQ0Mg LUUgLSB8ICRHUkVQIF9fRUxGX18gPi9kZXYvbnVsbDsgdGhlbgotKwlhcmNoaXZlX2NtZHM9JyRM RCAtQnNoYXJlYWJsZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRsaW5rZXJfZmxhZ3MnICAj IGEub3V0Ci0rICAgICAgZWxzZQotKwlhcmNoaXZlX2NtZHM9JyRMRCAtc2hhcmVkIC1vICRsaWIg JGxpYm9ianMgJGRlcGxpYnMgJGxpbmtlcl9mbGFncycgICAgICAjIEVMRgotKyAgICAgIGZpCi0r ICAgICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYz0nLVIkbGliZGlyJwotKyAgICAgIGhhcmRj b2RlX2RpcmVjdD15ZXMKLSsgICAgICBoYXJkY29kZV9zaGxpYnBhdGhfdmFyPW5vCi0rICAgICAg OzsKLSsKLSsgICAgbmV3c29zNikKLSsgICAgICBhcmNoaXZlX2NtZHM9JyRMRCAtRyAtaCAkc29u YW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGxpbmtlcl9mbGFncycKLSsgICAgICBoYXJk Y29kZV9kaXJlY3Q9eWVzCi0rICAgICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYz0nJHt3bH0t cnBhdGggJHt3bH0kbGliZGlyJwotKyAgICAgIGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3I9Ogot KyAgICAgIGhhcmRjb2RlX3NobGlicGF0aF92YXI9bm8KLSsgICAgICA7OwotKwotKyAgICAqbnRv KiB8ICpxbngqKQotKyAgICAgIDs7Ci0rCi0rICAgIG9wZW5ic2QqKQotKyAgICAgIGlmIHRlc3Qg LWYgL3Vzci9saWJleGVjL2xkLnNvOyB0aGVuCi0rCWhhcmRjb2RlX2RpcmVjdD15ZXMKLSsJaGFy ZGNvZGVfc2hsaWJwYXRoX3Zhcj1ubwotKwloYXJkY29kZV9kaXJlY3RfYWJzb2x1dGU9eWVzCi0r CWlmIHRlc3QgLXogImBlY2hvIF9fRUxGX18gfCAkQ0MgLUUgLSB8ICRHUkVQIF9fRUxGX19gIiB8 fCB0ZXN0ICIkaG9zdF9vcy0kaG9zdF9jcHUiID0gIm9wZW5ic2QyLjgtcG93ZXJwYyI7IHRoZW4K LSsJICBhcmNoaXZlX2NtZHM9JyRDQyAtc2hhcmVkICRwaWNfZmxhZyAtbyAkbGliICRsaWJvYmpz ICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKLSsJICBhcmNoaXZlX2V4cHN5bV9jbWRzPSckQ0Mg LXNoYXJlZCAkcGljX2ZsYWcgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxh Z3MgJHt3bH0tcmV0YWluLXN5bWJvbHMtZmlsZSwkZXhwb3J0X3N5bWJvbHMnCi0rCSAgaGFyZGNv ZGVfbGliZGlyX2ZsYWdfc3BlYz0nJHt3bH0tcnBhdGgsJGxpYmRpcicKLSsJICBleHBvcnRfZHlu YW1pY19mbGFnX3NwZWM9JyR7d2x9LUUnCi0rCWVsc2UKLSsJICBjYXNlICRob3N0X29zIGluCi0r CSAgIG9wZW5ic2RbMDFdLiogfCBvcGVuYnNkMi5bMC03XSB8IG9wZW5ic2QyLlswLTddLiopCi0r CSAgICAgYXJjaGl2ZV9jbWRzPSckTEQgLUJzaGFyZWFibGUgLW8gJGxpYiAkbGlib2JqcyAkZGVw bGlicyAkbGlua2VyX2ZsYWdzJwotKwkgICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWM9Jy1S JGxpYmRpcicKLSsJICAgICA7OwotKwkgICAqKQotKwkgICAgIGFyY2hpdmVfY21kcz0nJENDIC1z aGFyZWQgJHBpY19mbGFnIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdz JwotKwkgICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWM9JyR7d2x9LXJwYXRoLCRsaWJkaXIn Ci0rCSAgICAgOzsKLSsJICBlc2FjCi0rCWZpCi0rICAgICAgZWxzZQotKwlsZF9zaGxpYnM9bm8K LSsgICAgICBmaQotKyAgICAgIDs7Ci0rCi0rICAgIG9zMiopCi0rICAgICAgaGFyZGNvZGVfbGli ZGlyX2ZsYWdfc3BlYz0nLUwkbGliZGlyJwotKyAgICAgIGhhcmRjb2RlX21pbnVzX0w9eWVzCi0r ICAgICAgYWxsb3dfdW5kZWZpbmVkX2ZsYWc9dW5zdXBwb3J0ZWQKLSsgICAgICBhcmNoaXZlX2Nt ZHM9JyRFQ0hPICJMSUJSQVJZICRsaWJuYW1lIElOSVRJTlNUQU5DRSIgPiAkb3V0cHV0X29iamRp ci8kbGlibmFtZS5kZWZ+JEVDSE8gIkRFU0NSSVBUSU9OIFwiJGxpYm5hbWVcIiIgPj4gJG91dHB1 dF9vYmpkaXIvJGxpYm5hbWUuZGVmfiRFQ0hPIERBVEEgPj4gJG91dHB1dF9vYmpkaXIvJGxpYm5h bWUuZGVmfiRFQ0hPICIgU0lOR0xFIE5PTlNIQVJFRCIgPj4gJG91dHB1dF9vYmpkaXIvJGxpYm5h bWUuZGVmfiRFQ0hPIEVYUE9SVFMgPj4gJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUuZGVmfmVteGV4 cCAkbGlib2JqcyA+PiAkb3V0cHV0X29iamRpci8kbGlibmFtZS5kZWZ+JENDIC1aZGxsIC1aY3J0 ZGxsIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICRvdXRwdXRfb2Jq ZGlyLyRsaWJuYW1lLmRlZicKLSsgICAgICBvbGRfYXJjaGl2ZV9mcm9tX25ld19jbWRzPSdlbXhp bXAgLW8gJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUuYSAkb3V0cHV0X29iamRpci8kbGlibmFtZS5k ZWYnCi0rICAgICAgOzsKLSsKLSsgICAgb3NmMyopCi0rICAgICAgaWYgdGVzdCAiJEdDQyIgPSB5 ZXM7IHRoZW4KLSsJYWxsb3dfdW5kZWZpbmVkX2ZsYWc9JyAke3dsfS1leHBlY3RfdW5yZXNvbHZl ZCAke3dsfVwqJwotKwlhcmNoaXZlX2NtZHM9JyRDQyAtc2hhcmVkJHthbGxvd191bmRlZmluZWRf ZmxhZ30gJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAke3ds fSRzb25hbWUgYHRlc3QgLW4gIiR2ZXJzdHJpbmciICYmICRFQ0hPICJYJHt3bH0tc2V0X3ZlcnNp b24gJHt3bH0kdmVyc3RyaW5nIiB8ICRYc2VkYCAke3dsfS11cGRhdGVfcmVnaXN0cnkgJHt3bH0k e291dHB1dF9vYmpkaXJ9L3NvX2xvY2F0aW9ucyAtbyAkbGliJwotKyAgICAgIGVsc2UKLSsJYWxs b3dfdW5kZWZpbmVkX2ZsYWc9JyAtZXhwZWN0X3VucmVzb2x2ZWQgXConCi0rCWFyY2hpdmVfY21k cz0nJENDIC1zaGFyZWQke2FsbG93X3VuZGVmaW5lZF9mbGFnfSAkbGlib2JqcyAkZGVwbGlicyAk Y29tcGlsZXJfZmxhZ3MgLXNvbmFtZSAkc29uYW1lIGB0ZXN0IC1uICIkdmVyc3RyaW5nIiAmJiAk RUNITyAiWC1zZXRfdmVyc2lvbiAkdmVyc3RyaW5nIiB8ICRYc2VkYCAtdXBkYXRlX3JlZ2lzdHJ5 ICR7b3V0cHV0X29iamRpcn0vc29fbG9jYXRpb25zIC1vICRsaWInCi0rICAgICAgZmkKLSsgICAg ICBhcmNoaXZlX2NtZHNfbmVlZF9sYz0nbm8nCi0rICAgICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdf c3BlYz0nJHt3bH0tcnBhdGggJHt3bH0kbGliZGlyJwotKyAgICAgIGhhcmRjb2RlX2xpYmRpcl9z ZXBhcmF0b3I9OgotKyAgICAgIDs7Ci0rCi0rICAgIG9zZjQqIHwgb3NmNSopCSMgYXMgb3NmMyog d2l0aCB0aGUgYWRkaXRpb24gb2YgLW1zeW0gZmxhZwotKyAgICAgIGlmIHRlc3QgIiRHQ0MiID0g eWVzOyB0aGVuCi0rCWFsbG93X3VuZGVmaW5lZF9mbGFnPScgJHt3bH0tZXhwZWN0X3VucmVzb2x2 ZWQgJHt3bH1cKicKLSsJYXJjaGl2ZV9jbWRzPSckQ0MgLXNoYXJlZCR7YWxsb3dfdW5kZWZpbmVk X2ZsYWd9ICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1tc3ltICR7d2x9 LXNvbmFtZSAke3dsfSRzb25hbWUgYHRlc3QgLW4gIiR2ZXJzdHJpbmciICYmICRFQ0hPICJYJHt3 bH0tc2V0X3ZlcnNpb24gJHt3bH0kdmVyc3RyaW5nIiB8ICRYc2VkYCAke3dsfS11cGRhdGVfcmVn aXN0cnkgJHt3bH0ke291dHB1dF9vYmpkaXJ9L3NvX2xvY2F0aW9ucyAtbyAkbGliJwotKwloYXJk Y29kZV9saWJkaXJfZmxhZ19zcGVjPScke3dsfS1ycGF0aCAke3dsfSRsaWJkaXInCi0rICAgICAg ZWxzZQotKwlhbGxvd191bmRlZmluZWRfZmxhZz0nIC1leHBlY3RfdW5yZXNvbHZlZCBcKicKLSsJ YXJjaGl2ZV9jbWRzPSckQ0MgLXNoYXJlZCR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9ICRsaWJvYmpz ICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAtbXN5bSAtc29uYW1lICRzb25hbWUgYHRlc3QgLW4g IiR2ZXJzdHJpbmciICYmICRFQ0hPICJYLXNldF92ZXJzaW9uICR2ZXJzdHJpbmciIHwgJFhzZWRg IC11cGRhdGVfcmVnaXN0cnkgJHtvdXRwdXRfb2JqZGlyfS9zb19sb2NhdGlvbnMgLW8gJGxpYicK LSsJYXJjaGl2ZV9leHBzeW1fY21kcz0nZm9yIGkgaW4gYGNhdCAkZXhwb3J0X3N5bWJvbHNgOyBk byBwcmludGYgIiVzICVzXFxuIiAtZXhwb3J0ZWRfc3ltYm9sICJcJGkiID4+ICRsaWIuZXhwOyBk b25lOyBwcmludGYgIiVzXFxuIiAiLWhpZGRlbiI+PiAkbGliLmV4cH4KLSsJJENDIC1zaGFyZWQk e2FsbG93X3VuZGVmaW5lZF9mbGFnfSAke3dsfS1pbnB1dCAke3dsfSRsaWIuZXhwICRjb21waWxl cl9mbGFncyAkbGlib2JqcyAkZGVwbGlicyAtc29uYW1lICRzb25hbWUgYHRlc3QgLW4gIiR2ZXJz dHJpbmciICYmICRFQ0hPICJYLXNldF92ZXJzaW9uICR2ZXJzdHJpbmciIHwgJFhzZWRgIC11cGRh dGVfcmVnaXN0cnkgJHtvdXRwdXRfb2JqZGlyfS9zb19sb2NhdGlvbnMgLW8gJGxpYn4kUk0gJGxp Yi5leHAnCi0rCi0rCSMgQm90aCBjIGFuZCBjeHggY29tcGlsZXIgc3VwcG9ydCAtcnBhdGggZGly ZWN0bHkKLSsJaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYz0nLXJwYXRoICRsaWJkaXInCi0rICAg ICAgZmkKLSsgICAgICBhcmNoaXZlX2NtZHNfbmVlZF9sYz0nbm8nCi0rICAgICAgaGFyZGNvZGVf bGliZGlyX3NlcGFyYXRvcj06Ci0rICAgICAgOzsKLSsKLSsgICAgc29sYXJpcyopCi0rICAgICAg bm9fdW5kZWZpbmVkX2ZsYWc9JyAteiBkZWZzJwotKyAgICAgIGlmIHRlc3QgIiRHQ0MiID0geWVz OyB0aGVuCi0rCXdsYXJjPScke3dsfScKLSsJYXJjaGl2ZV9jbWRzPSckQ0MgLXNoYXJlZCAke3ds fS16ICR7d2x9dGV4dCAke3dsfS1oICR7d2x9JHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBs aWJzICRjb21waWxlcl9mbGFncycKLSsJYXJjaGl2ZV9leHBzeW1fY21kcz0nZWNobyAieyBnbG9i YWw6IiA+ICRsaWIuZXhwfmNhdCAkZXhwb3J0X3N5bWJvbHMgfCAkU0VEIC1lICJzL1woLipcKS9c MTsvIiA+PiAkbGliLmV4cH5lY2hvICJsb2NhbDogKjsgfTsiID4+ICRsaWIuZXhwfgotKwkgICRD QyAtc2hhcmVkICR7d2x9LXogJHt3bH10ZXh0ICR7d2x9LU0gJHt3bH0kbGliLmV4cCAke3dsfS1o ICR7d2x9JHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFnc34k Uk0gJGxpYi5leHAnCi0rICAgICAgZWxzZQotKwljYXNlIGAkQ0MgLVYgMj4mMWAgaW4KLSsJKiJD b21waWxlcnMgNS4wIiopCi0rCSAgd2xhcmM9JycKLSsJICBhcmNoaXZlX2NtZHM9JyRMRCAtRyR7 YWxsb3dfdW5kZWZpbmVkX2ZsYWd9IC1oICRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGli cyAkbGlua2VyX2ZsYWdzJwotKwkgIGFyY2hpdmVfZXhwc3ltX2NtZHM9J2VjaG8gInsgZ2xvYmFs OiIgPiAkbGliLmV4cH5jYXQgJGV4cG9ydF9zeW1ib2xzIHwgJFNFRCAtZSAicy9cKC4qXCkvXDE7 LyIgPj4gJGxpYi5leHB+ZWNobyAibG9jYWw6ICo7IH07IiA+PiAkbGliLmV4cH4KLSsJICAkTEQg LUcke2FsbG93X3VuZGVmaW5lZF9mbGFnfSAtTSAkbGliLmV4cCAtaCAkc29uYW1lIC1vICRsaWIg JGxpYm9ianMgJGRlcGxpYnMgJGxpbmtlcl9mbGFnc34kUk0gJGxpYi5leHAnCi0rCSAgOzsKLSsJ KikKLSsJICB3bGFyYz0nJHt3bH0nCi0rCSAgYXJjaGl2ZV9jbWRzPSckQ0MgLUcke2FsbG93X3Vu ZGVmaW5lZF9mbGFnfSAtaCAkc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBp bGVyX2ZsYWdzJwotKwkgIGFyY2hpdmVfZXhwc3ltX2NtZHM9J2VjaG8gInsgZ2xvYmFsOiIgPiAk bGliLmV4cH5jYXQgJGV4cG9ydF9zeW1ib2xzIHwgJFNFRCAtZSAicy9cKC4qXCkvXDE7LyIgPj4g JGxpYi5leHB+ZWNobyAibG9jYWw6ICo7IH07IiA+PiAkbGliLmV4cH4KLSsJICAkQ0MgLUcke2Fs bG93X3VuZGVmaW5lZF9mbGFnfSAtTSAkbGliLmV4cCAtaCAkc29uYW1lIC1vICRsaWIgJGxpYm9i anMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzfiRSTSAkbGliLmV4cCcKLSsJICA7OwotKwllc2Fj Ci0rICAgICAgZmkKLSsgICAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjPSctUiRsaWJkaXIn Ci0rICAgICAgaGFyZGNvZGVfc2hsaWJwYXRoX3Zhcj1ubwotKyAgICAgIGNhc2UgJGhvc3Rfb3Mg aW4KLSsgICAgICBzb2xhcmlzMi5bMC01XSB8IHNvbGFyaXMyLlswLTVdLiopIDs7Ci0rICAgICAg KikKLSsJIyBUaGUgY29tcGlsZXIgZHJpdmVyIHdpbGwgY29tYmluZSBhbmQgcmVvcmRlciBsaW5r ZXIgb3B0aW9ucywKLSsJIyBidXQgdW5kZXJzdGFuZHMgYC16IGxpbmtlcl9mbGFnJy4gIEdDQyBk aXNjYXJkcyBpdCB3aXRob3V0IGAkd2wnLAotKwkjIGJ1dCBpcyBjYXJlZnVsIGVub3VnaCBub3Qg dG8gcmVvcmRlci4KLSsJIyBTdXBwb3J0ZWQgc2luY2UgU29sYXJpcyAyLjYgKG1heWJlIDIuNS4x PykKLSsJaWYgdGVzdCAiJEdDQyIgPSB5ZXM7IHRoZW4KLSsJICB3aG9sZV9hcmNoaXZlX2ZsYWdf c3BlYz0nJHt3bH0teiAke3dsfWFsbGV4dHJhY3QkY29udmVuaWVuY2UgJHt3bH0teiAke3dsfWRl ZmF1bHRleHRyYWN0JwotKwllbHNlCi0rCSAgd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWM9Jy16IGFs bGV4dHJhY3QkY29udmVuaWVuY2UgLXogZGVmYXVsdGV4dHJhY3QnCi0rCWZpCi0rCTs7Ci0rICAg ICAgZXNhYwotKyAgICAgIGxpbmtfYWxsX2RlcGxpYnM9eWVzCi0rICAgICAgOzsKLSsKLSsgICAg c3Vub3M0KikKLSsgICAgICBpZiB0ZXN0ICJ4JGhvc3RfdmVuZG9yIiA9IHhzZXF1ZW50OyB0aGVu Ci0rCSMgVXNlICRDQyB0byBsaW5rIHVuZGVyIHNlcXVlbnQsIGJlY2F1c2UgaXQgdGhyb3dzIGlu IHNvbWUgZXh0cmEgLm8KLSsJIyBmaWxlcyB0aGF0IG1ha2UgLmluaXQgYW5kIC5maW5pIHNlY3Rp b25zIHdvcmsuCi0rCWFyY2hpdmVfY21kcz0nJENDIC1HICR7d2x9LWggJHNvbmFtZSAtbyAkbGli ICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKLSsgICAgICBlbHNlCi0rCWFyY2hp dmVfY21kcz0nJExEIC1hc3NlcnQgcHVyZS10ZXh0IC1Cc3RhdGljIC1vICRsaWIgJGxpYm9ianMg JGRlcGxpYnMgJGxpbmtlcl9mbGFncycKLSsgICAgICBmaQotKyAgICAgIGhhcmRjb2RlX2xpYmRp cl9mbGFnX3NwZWM9Jy1MJGxpYmRpcicKLSsgICAgICBoYXJkY29kZV9kaXJlY3Q9eWVzCi0rICAg ICAgaGFyZGNvZGVfbWludXNfTD15ZXMKLSsgICAgICBoYXJkY29kZV9zaGxpYnBhdGhfdmFyPW5v Ci0rICAgICAgOzsKLSsKLSsgICAgc3lzdjQpCi0rICAgICAgY2FzZSAkaG9zdF92ZW5kb3IgaW4K LSsJc25pKQotKwkgIGFyY2hpdmVfY21kcz0nJExEIC1HIC1oICRzb25hbWUgLW8gJGxpYiAkbGli b2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzJwotKwkgIGhhcmRjb2RlX2RpcmVjdD15ZXMgIyBp cyB0aGlzIHJlYWxseSB0cnVlPz8/Ci0rCTs7Ci0rCXNpZW1lbnMpCi0rCSAgIyMgTEQgaXMgbGQg aXQgbWFrZXMgYSBQTEFNTElCCi0rCSAgIyMgQ0MganVzdCBtYWtlcyBhIEdyb3NzTW9kdWxlLgot KwkgIGFyY2hpdmVfY21kcz0nJExEIC1HIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGxpbmtl cl9mbGFncycKLSsJICByZWxvYWRfY21kcz0nJENDIC1yIC1vICRvdXRwdXQkcmVsb2FkX29ianMn Ci0rCSAgaGFyZGNvZGVfZGlyZWN0PW5vCi0rICAgICAgICA7OwotKwltb3Rvcm9sYSkKLSsJICBh cmNoaXZlX2NtZHM9JyRMRCAtRyAtaCAkc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMg JGxpbmtlcl9mbGFncycKLSsJICBoYXJkY29kZV9kaXJlY3Q9bm8gI01vdG9yb2xhIG1hbnVhbCBz YXlzIHllcywgYnV0IG15IHRlc3RzIHNheSB0aGV5IGxpZQotKwk7OwotKyAgICAgIGVzYWMKLSsg ICAgICBydW5wYXRoX3Zhcj0nTERfUlVOX1BBVEgnCi0rICAgICAgaGFyZGNvZGVfc2hsaWJwYXRo X3Zhcj1ubwotKyAgICAgIDs7Ci0rCi0rICAgIHN5c3Y0LjMqKQotKyAgICAgIGFyY2hpdmVfY21k cz0nJExEIC1HIC1oICRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkbGlua2VyX2Zs YWdzJwotKyAgICAgIGhhcmRjb2RlX3NobGlicGF0aF92YXI9bm8KLSsgICAgICBleHBvcnRfZHlu YW1pY19mbGFnX3NwZWM9Jy1CZXhwb3J0JwotKyAgICAgIDs7Ci0rCi0rICAgIHN5c3Y0Kk1QKikK LSsgICAgICBpZiB0ZXN0IC1kIC91c3IvbmVjOyB0aGVuCi0rCWFyY2hpdmVfY21kcz0nJExEIC1H IC1oICRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzJwotKwlo YXJkY29kZV9zaGxpYnBhdGhfdmFyPW5vCi0rCXJ1bnBhdGhfdmFyPUxEX1JVTl9QQVRICi0rCWhh cmRjb2RlX3J1bnBhdGhfdmFyPXllcwotKwlsZF9zaGxpYnM9eWVzCi0rICAgICAgZmkKLSsgICAg ICA7OwotKwotKyAgICBzeXN2NCp1dzIqIHwgc3lzdjVPcGVuVU5JWCogfCBzeXN2NVVuaXhXYXJl Ny5bMDFdLlsxMF0qIHwgdW5peHdhcmU3KiB8IHNjbzMuMnY1LjAuWzAyNF0qKQotKyAgICAgIG5v X3VuZGVmaW5lZF9mbGFnPScke3dsfS16LHRleHQnCi0rICAgICAgYXJjaGl2ZV9jbWRzX25lZWRf bGM9bm8KLSsgICAgICBoYXJkY29kZV9zaGxpYnBhdGhfdmFyPW5vCi0rICAgICAgcnVucGF0aF92 YXI9J0xEX1JVTl9QQVRIJwotKwotKyAgICAgIGlmIHRlc3QgIiRHQ0MiID0geWVzOyB0aGVuCi0r CWFyY2hpdmVfY21kcz0nJENDIC1zaGFyZWQgJHt3bH0taCwkc29uYW1lIC1vICRsaWIgJGxpYm9i anMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJwotKwlhcmNoaXZlX2V4cHN5bV9jbWRzPSckQ0Mg LXNoYXJlZCAke3dsfS1CZXhwb3J0OiRleHBvcnRfc3ltYm9scyAke3dsfS1oLCRzb25hbWUgLW8g JGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCi0rICAgICAgZWxzZQotKwlh cmNoaXZlX2NtZHM9JyRDQyAtRyAke3dsfS1oLCRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVw bGlicyAkY29tcGlsZXJfZmxhZ3MnCi0rCWFyY2hpdmVfZXhwc3ltX2NtZHM9JyRDQyAtRyAke3ds fS1CZXhwb3J0OiRleHBvcnRfc3ltYm9scyAke3dsfS1oLCRzb25hbWUgLW8gJGxpYiAkbGlib2Jq cyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCi0rICAgICAgZmkKLSsgICAgICA7OwotKwotKyAg ICBzeXN2NSogfCBzY28zLjJ2NSogfCBzY281djYqKQotKyAgICAgICMgTm90ZTogV2UgY2FuIE5P VCB1c2UgLXogZGVmcyBhcyB3ZSBtaWdodCBkZXNpcmUsIGJlY2F1c2Ugd2UgZG8gbm90Ci0rICAg ICAgIyBsaW5rIHdpdGggLWxjLCBhbmQgdGhhdCB3b3VsZCBjYXVzZSBhbnkgc3ltYm9scyB1c2Vk IGZyb20gbGliYyB0bwotKyAgICAgICMgYWx3YXlzIGJlIHVucmVzb2x2ZWQsIHdoaWNoIG1lYW5z IGp1c3QgYWJvdXQgbm8gbGlicmFyeSB3b3VsZAotKyAgICAgICMgZXZlciBsaW5rIGNvcnJlY3Rs eS4gIElmIHdlJ3JlIG5vdCB1c2luZyBHTlUgbGQgd2UgdXNlIC16IHRleHQKLSsgICAgICAjIHRo b3VnaCwgd2hpY2ggZG9lcyBjYXRjaCBzb21lIGJhZCBzeW1ib2xzIGJ1dCBpc24ndCBhcyBoZWF2 eS1oYW5kZWQKLSsgICAgICAjIGFzIC16IGRlZnMuCi0rICAgICAgbm9fdW5kZWZpbmVkX2ZsYWc9 JyR7d2x9LXosdGV4dCcKLSsgICAgICBhbGxvd191bmRlZmluZWRfZmxhZz0nJHt3bH0teixub2Rl ZnMnCi0rICAgICAgYXJjaGl2ZV9jbWRzX25lZWRfbGM9bm8KLSsgICAgICBoYXJkY29kZV9zaGxp YnBhdGhfdmFyPW5vCi0rICAgICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYz0nJHt3bH0tUiwk bGliZGlyJwotKyAgICAgIGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3I9JzonCi0rICAgICAgbGlu a19hbGxfZGVwbGlicz15ZXMKLSsgICAgICBleHBvcnRfZHluYW1pY19mbGFnX3NwZWM9JyR7d2x9 LUJleHBvcnQnCi0rICAgICAgcnVucGF0aF92YXI9J0xEX1JVTl9QQVRIJwotKwotKyAgICAgIGlm IHRlc3QgIiRHQ0MiID0geWVzOyB0aGVuCi0rCWFyY2hpdmVfY21kcz0nJENDIC1zaGFyZWQgJHt3 bH0taCwkc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJwot KwlhcmNoaXZlX2V4cHN5bV9jbWRzPSckQ0MgLXNoYXJlZCAke3dsfS1CZXhwb3J0OiRleHBvcnRf c3ltYm9scyAke3dsfS1oLCRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGls ZXJfZmxhZ3MnCi0rICAgICAgZWxzZQotKwlhcmNoaXZlX2NtZHM9JyRDQyAtRyAke3dsfS1oLCRz b25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCi0rCWFyY2hp dmVfZXhwc3ltX2NtZHM9JyRDQyAtRyAke3dsfS1CZXhwb3J0OiRleHBvcnRfc3ltYm9scyAke3ds fS1oLCRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCi0r ICAgICAgZmkKLSsgICAgICA7OwotKwotKyAgICB1dHM0KikKLSsgICAgICBhcmNoaXZlX2NtZHM9 JyRMRCAtRyAtaCAkc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGxpbmtlcl9mbGFn cycKLSsgICAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjPSctTCRsaWJkaXInCi0rICAgICAg aGFyZGNvZGVfc2hsaWJwYXRoX3Zhcj1ubwotKyAgICAgIDs7Ci0rCi0rICAgICopCi0rICAgICAg bGRfc2hsaWJzPW5vCi0rICAgICAgOzsKLSsgICAgZXNhYwotKwotKyAgICBpZiB0ZXN0IHgkaG9z dF92ZW5kb3IgPSB4c25pOyB0aGVuCi0rICAgICAgY2FzZSAkaG9zdCBpbgotKyAgICAgIHN5c3Y0 IHwgc3lzdjQuMnV3MiogfCBzeXN2NC4zKiB8IHN5c3Y1KikKLSsJZXhwb3J0X2R5bmFtaWNfZmxh Z19zcGVjPScke3dsfS1CbGFyZ2VkeW5zeW0nCi0rCTs7Ci0rICAgICAgZXNhYwotKyAgICBmaQot KyAgZmkKLSsKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkbGRfc2hsaWJz IiA+JjUKLSskYXNfZWNobyAiJGxkX3NobGlicyIgPiY2OyB9Ci0rdGVzdCAiJGxkX3NobGlicyIg PSBubyAmJiBjYW5fYnVpbGRfc2hhcmVkPW5vCi0rCi0rd2l0aF9nbnVfbGQ9JHdpdGhfZ251X2xk Ci0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rIwotKyMgRG8g d2UgbmVlZCB0byBleHBsaWNpdGx5IGxpbmsgbGliYz8KLSsjCi0rY2FzZSAieCRhcmNoaXZlX2Nt ZHNfbmVlZF9sYyIgaW4KLSt4fHh5ZXMpCi0rICAjIEFzc3VtZSAtbGMgc2hvdWxkIGJlIGFkZGVk Ci0rICBhcmNoaXZlX2NtZHNfbmVlZF9sYz15ZXMKLSsKLSsgIGlmIHRlc3QgIiRlbmFibGVfc2hh cmVkIiA9IHllcyAmJiB0ZXN0ICIkR0NDIiA9IHllczsgdGhlbgotKyAgICBjYXNlICRhcmNoaXZl X2NtZHMgaW4KLSsgICAgKid+JyopCi0rICAgICAgIyBGSVhNRTogd2UgbWF5IGhhdmUgdG8gZGVh bCB3aXRoIG11bHRpLWNvbW1hbmQgc2VxdWVuY2VzLgotKyAgICAgIDs7Ci0rICAgICckQ0MgJyop Ci0rICAgICAgIyBUZXN0IHdoZXRoZXIgdGhlIGNvbXBpbGVyIGltcGxpY2l0bHkgbGlua3Mgd2l0 aCAtbGMgc2luY2Ugb24gc29tZQotKyAgICAgICMgc3lzdGVtcywgLWxnY2MgaGFzIHRvIGNvbWUg YmVmb3JlIC1sYy4gSWYgZ2NjIGFscmVhZHkgcGFzc2VzIC1sYwotKyAgICAgICMgdG8gbGQsIGRv bid0IGFkZCAtbGMgYmVmb3JlIC1sZ2NjLgotKyAgICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElO RU5POiBjaGVja2luZyB3aGV0aGVyIC1sYyBzaG91bGQgYmUgZXhwbGljaXRseSBsaW5rZWQgaW4i ID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIHdoZXRoZXIgLWxjIHNob3VsZCBiZSBleHBsaWNp dGx5IGxpbmtlZCBpbi4uLiAiID4mNjsgfQotKyAgICAgICRSTSBjb25mdGVzdCoKLSsgICAgICBl Y2hvICIkbHRfc2ltcGxlX2NvbXBpbGVfdGVzdF9jb2RlIiA+IGNvbmZ0ZXN0LiRhY19leHQKLSsK LSsgICAgICBpZiB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY19jb21waWxlXCIi KSA+JjUKLSsgIChldmFsICRhY19jb21waWxlKSAyPiY1Ci0rICBhY19zdGF0dXM9JD8KLSsgICRh c19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0rICAoZXhpdCAk YWNfc3RhdHVzKTsgfSAyPmNvbmZ0ZXN0LmVycjsgdGhlbgotKyAgICAgICAgc29uYW1lPWNvbmZ0 ZXN0Ci0rICAgICAgICBsaWI9Y29uZnRlc3QKLSsgICAgICAgIGxpYm9ianM9Y29uZnRlc3QuJGFj X29iamV4dAotKyAgICAgICAgZGVwbGlicz0KLSsgICAgICAgIHdsPSRsdF9wcm9nX2NvbXBpbGVy X3dsCi0rCXBpY19mbGFnPSRsdF9wcm9nX2NvbXBpbGVyX3BpYwotKyAgICAgICAgY29tcGlsZXJf ZmxhZ3M9LXYKLSsgICAgICAgIGxpbmtlcl9mbGFncz0tdgotKyAgICAgICAgdmVyc3RyaW5nPQot KyAgICAgICAgb3V0cHV0X29iamRpcj0uCi0rICAgICAgICBsaWJuYW1lPWNvbmZ0ZXN0Ci0rICAg ICAgICBsdF9zYXZlX2FsbG93X3VuZGVmaW5lZF9mbGFnPSRhbGxvd191bmRlZmluZWRfZmxhZwot KyAgICAgICAgYWxsb3dfdW5kZWZpbmVkX2ZsYWc9Ci0rICAgICAgICBpZiB7IChldmFsIGVjaG8g IiRhc19tZTokTElORU5POiBcIiRhcmNoaXZlX2NtZHMgMlw+XCYxIFx8ICRHUkVQIFwiIC1sYyBc IiBcPi9kZXYvbnVsbCAyXD5cJjFcIiIpID4mNQotKyAgKGV2YWwgJGFyY2hpdmVfY21kcyAyXD5c JjEgXHwgJEdSRVAgXCIgLWxjIFwiIFw+L2Rldi9udWxsIDJcPlwmMSkgMj4mNQotKyAgYWNfc3Rh dHVzPSQ/Ci0rICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4m NQotKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0KLSsgICAgICAgIHRoZW4KLSsJICBhcmNoaXZlX2Nt ZHNfbmVlZF9sYz1ubwotKyAgICAgICAgZWxzZQotKwkgIGFyY2hpdmVfY21kc19uZWVkX2xjPXll cwotKyAgICAgICAgZmkKLSsgICAgICAgIGFsbG93X3VuZGVmaW5lZF9mbGFnPSRsdF9zYXZlX2Fs bG93X3VuZGVmaW5lZF9mbGFnCi0rICAgICAgZWxzZQotKyAgICAgICAgY2F0IGNvbmZ0ZXN0LmVy ciAxPiY1Ci0rICAgICAgZmkKLSsgICAgICAkUk0gY29uZnRlc3QqCi0rICAgICAgeyAkYXNfZWNo byAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFyY2hpdmVfY21kc19uZWVkX2xjIiA+JjUKLSsk YXNfZWNobyAiJGFyY2hpdmVfY21kc19uZWVkX2xjIiA+JjY7IH0KLSsgICAgICA7OwotKyAgICBl c2FjCi0rICBmaQotKyAgOzsKLStlc2FjCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0r Ci0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0r Ci0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0r Ci0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0r Ci0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0r Ci0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0r Ci0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0r Ci0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0r Ci0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rICB7ICRhc19lY2hvICIk YXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZHluYW1pYyBsaW5rZXIgY2hhcmFjdGVyaXN0aWNzIiA+ JjUKLSskYXNfZWNob19uICJjaGVja2luZyBkeW5hbWljIGxpbmtlciBjaGFyYWN0ZXJpc3RpY3Mu Li4gIiA+JjY7IH0KLSsKLStpZiB0ZXN0ICIkR0NDIiA9IHllczsgdGhlbgotKyAgY2FzZSAkaG9z dF9vcyBpbgotKyAgICBkYXJ3aW4qKSBsdF9hd2tfYXJnPSIvXmxpYnJhcmllczovLC9MUi8iIDs7 Ci0rICAgICopIGx0X2F3a19hcmc9Ii9ebGlicmFyaWVzOi8iIDs7Ci0rICBlc2FjCi0rICBsdF9z ZWFyY2hfcGF0aF9zcGVjPWAkQ0MgLXByaW50LXNlYXJjaC1kaXJzIHwgYXdrICRsdF9hd2tfYXJn IHwgJFNFRCAtZSAicy9ebGlicmFyaWVzOi8vIiAtZSAicyw9LywvLGciYAotKyAgaWYgJEVDSE8g IiRsdF9zZWFyY2hfcGF0aF9zcGVjIiB8ICRHUkVQICc7JyA+L2Rldi9udWxsIDsgdGhlbgotKyAg ICAjIGlmIHRoZSBwYXRoIGNvbnRhaW5zICI7IiB0aGVuIHdlIGFzc3VtZSBpdCB0byBiZSB0aGUg c2VwYXJhdG9yCi0rICAgICMgb3RoZXJ3aXNlIGRlZmF1bHQgdG8gdGhlIHN0YW5kYXJkIHBhdGgg c2VwYXJhdG9yIChpLmUuICI6IikgLSBpdCBpcwotKyAgICAjIGFzc3VtZWQgdGhhdCBubyBwYXJ0 IG9mIGEgbm9ybWFsIHBhdGhuYW1lIGNvbnRhaW5zICI7IiBidXQgdGhhdCBzaG91bGQKLSsgICAg IyBva2F5IGluIHRoZSByZWFsIHdvcmxkIHdoZXJlICI7IiBpbiBkaXJwYXRocyBpcyBpdHNlbGYg cHJvYmxlbWF0aWMuCi0rICAgIGx0X3NlYXJjaF9wYXRoX3NwZWM9YCRFQ0hPICIkbHRfc2VhcmNo X3BhdGhfc3BlYyIgfCAkU0VEIC1lICdzLzsvIC9nJ2AKLSsgIGVsc2UKLSsgICAgbHRfc2VhcmNo X3BhdGhfc3BlYz1gJEVDSE8gIiRsdF9zZWFyY2hfcGF0aF9zcGVjIiB8ICRTRUQgIC1lICJzLyRQ QVRIX1NFUEFSQVRPUi8gL2ciYAotKyAgZmkKLSsgICMgT2ssIG5vdyB3ZSBoYXZlIHRoZSBwYXRo LCBzZXBhcmF0ZWQgYnkgc3BhY2VzLCB3ZSBjYW4gc3RlcCB0aHJvdWdoIGl0Ci0rICAjIGFuZCBh ZGQgbXVsdGlsaWIgZGlyIGlmIG5lY2Vzc2FyeS4KLSsgIGx0X3RtcF9sdF9zZWFyY2hfcGF0aF9z cGVjPQotKyAgbHRfbXVsdGlfb3NfZGlyPWAkQ0MgJENQUEZMQUdTICRDRkxBR1MgJExERkxBR1Mg LXByaW50LW11bHRpLW9zLWRpcmVjdG9yeSAyPi9kZXYvbnVsbGAKLSsgIGZvciBsdF9zeXNfcGF0 aCBpbiAkbHRfc2VhcmNoX3BhdGhfc3BlYzsgZG8KLSsgICAgaWYgdGVzdCAtZCAiJGx0X3N5c19w YXRoLyRsdF9tdWx0aV9vc19kaXIiOyB0aGVuCi0rICAgICAgbHRfdG1wX2x0X3NlYXJjaF9wYXRo X3NwZWM9IiRsdF90bXBfbHRfc2VhcmNoX3BhdGhfc3BlYyAkbHRfc3lzX3BhdGgvJGx0X211bHRp X29zX2RpciIKLSsgICAgZWxzZQotKyAgICAgIHRlc3QgLWQgIiRsdF9zeXNfcGF0aCIgJiYgXAot KwlsdF90bXBfbHRfc2VhcmNoX3BhdGhfc3BlYz0iJGx0X3RtcF9sdF9zZWFyY2hfcGF0aF9zcGVj ICRsdF9zeXNfcGF0aCIKLSsgICAgZmkKLSsgIGRvbmUKLSsgIGx0X3NlYXJjaF9wYXRoX3NwZWM9 YCRFQ0hPICRsdF90bXBfbHRfc2VhcmNoX3BhdGhfc3BlYyB8IGF3ayAnCi0rQkVHSU4ge1JTPSIg IjsgRlM9Ii98XG4iO30gewotKyAgbHRfZm9vPSIiOwotKyAgbHRfY291bnQ9MDsKLSsgIGZvciAo bHRfaSA9IE5GOyBsdF9pID4gMDsgbHRfaS0tKSB7Ci0rICAgIGlmICgkbHRfaSAhPSAiIiAmJiAk bHRfaSAhPSAiLiIpIHsKLSsgICAgICBpZiAoJGx0X2kgPT0gIi4uIikgewotKyAgICAgICAgbHRf Y291bnQrKzsKLSsgICAgICB9IGVsc2UgewotKyAgICAgICAgaWYgKGx0X2NvdW50ID09IDApIHsK LSsgICAgICAgICAgbHRfZm9vPSIvIiAkbHRfaSBsdF9mb287Ci0rICAgICAgICB9IGVsc2Ugewot KyAgICAgICAgICBsdF9jb3VudC0tOwotKyAgICAgICAgfQotKyAgICAgIH0KLSsgICAgfQotKyAg fQotKyAgaWYgKGx0X2ZvbyAhPSAiIikgeyBsdF9mcmVxW2x0X2Zvb10rKzsgfQotKyAgaWYgKGx0 X2ZyZXFbbHRfZm9vXSA9PSAxKSB7IHByaW50IGx0X2ZvbzsgfQotK30nYAotKyAgc3lzX2xpYl9z ZWFyY2hfcGF0aF9zcGVjPWAkRUNITyAkbHRfc2VhcmNoX3BhdGhfc3BlY2AKLStlbHNlCi0rICBz eXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9Ii9saWIgL3Vzci9saWIgL3Vzci9sb2NhbC9saWIiCi0r ZmkKLStsaWJyYXJ5X25hbWVzX3NwZWM9Ci0rbGlibmFtZV9zcGVjPSdsaWIkbmFtZScKLStzb25h bWVfc3BlYz0KLStzaHJleHRfY21kcz0iLnNvIgotK3Bvc3RpbnN0YWxsX2NtZHM9Ci0rcG9zdHVu aW5zdGFsbF9jbWRzPQotK2ZpbmlzaF9jbWRzPQotK2ZpbmlzaF9ldmFsPQotK3NobGlicGF0aF92 YXI9Ci0rc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPXVua25vd24KLSt2ZXJzaW9uX3R5cGU9 bm9uZQotK2R5bmFtaWNfbGlua2VyPSIkaG9zdF9vcyBsZC5zbyIKLStzeXNfbGliX2Rsc2VhcmNo X3BhdGhfc3BlYz0iL2xpYiAvdXNyL2xpYiIKLStuZWVkX2xpYl9wcmVmaXg9dW5rbm93bgotK2hh cmRjb2RlX2ludG9fbGlicz1ubwotKwotKyMgd2hlbiB5b3Ugc2V0IG5lZWRfdmVyc2lvbiB0byBu bywgbWFrZSBzdXJlIGl0IGRvZXMgbm90IGNhdXNlIC1zZXRfdmVyc2lvbgotKyMgZmxhZ3MgdG8g YmUgbGVmdCB3aXRob3V0IGFyZ3VtZW50cwotK25lZWRfdmVyc2lvbj11bmtub3duCi0rCi0rY2Fz ZSAkaG9zdF9vcyBpbgotK2FpeDMqKQotKyAgdmVyc2lvbl90eXBlPWxpbnV4Ci0rICBsaWJyYXJ5 X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXgg JGxpYm5hbWUuYScKLSsgIHNobGlicGF0aF92YXI9TElCUEFUSAotKwotKyAgIyBBSVggMyBoYXMg bm8gdmVyc2lvbmluZyBzdXBwb3J0LCBzbyB3ZSBhcHBlbmQgYSBtYWpvciB2ZXJzaW9uIHRvIHRo ZSBuYW1lLgotKyAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0 fSRtYWpvcicKLSsgIDs7Ci0rCi0rYWl4WzQtOV0qKQotKyAgdmVyc2lvbl90eXBlPWxpbnV4Ci0r ICBuZWVkX2xpYl9wcmVmaXg9bm8KLSsgIG5lZWRfdmVyc2lvbj1ubwotKyAgaGFyZGNvZGVfaW50 b19saWJzPXllcwotKyAgaWYgdGVzdCAiJGhvc3RfY3B1IiA9IGlhNjQ7IHRoZW4KLSsgICAgIyBB SVggNSBzdXBwb3J0cyBJQTY0Ci0rICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7 cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRf ZXh0fSR2ZXJzdWZmaXggJGxpYm5hbWUke3NoYXJlZF9leHR9JwotKyAgICBzaGxpYnBhdGhfdmFy PUxEX0xJQlJBUllfUEFUSAotKyAgZWxzZQotKyAgICAjIFdpdGggR0NDIHVwIHRvIDIuOTUueCwg Y29sbGVjdDIgd291bGQgY3JlYXRlIGFuIGltcG9ydCBmaWxlCi0rICAgICMgZm9yIGRlcGVuZGVu Y2UgbGlicmFyaWVzLiAgVGhlIGltcG9ydCBmaWxlIHdvdWxkIHN0YXJ0IHdpdGgKLSsgICAgIyB0 aGUgbGluZSBgIyEgLicuICBUaGlzIHdvdWxkIGNhdXNlIHRoZSBnZW5lcmF0ZWQgbGlicmFyeSB0 bwotKyAgICAjIGRlcGVuZCBvbiBgLicsIGFsd2F5cyBhbiBpbnZhbGlkIGxpYnJhcnkuICBUaGlz IHdhcyBmaXhlZCBpbgotKyAgICAjIGRldmVsb3BtZW50IHNuYXBzaG90cyBvZiBHQ0MgcHJpb3Ig dG8gMy4wLgotKyAgICBjYXNlICRob3N0X29zIGluCi0rICAgICAgYWl4NCB8IGFpeDQuWzAxXSB8 IGFpeDQuWzAxXS4qKQotKyAgICAgIGlmIHsgZWNobyAnI2lmIF9fR05VQ19fID4gMiB8fCAoX19H TlVDX18gPT0gMiAmJiBfX0dOVUNfTUlOT1JfXyA+PSA5NyknCi0rCSAgIGVjaG8gJyB5ZXMgJwot KwkgICBlY2hvICcjZW5kaWYnOyB9IHwgJHtDQ30gLUUgLSB8ICRHUkVQIHllcyA+IC9kZXYvbnVs bDsgdGhlbgotKwk6Ci0rICAgICAgZWxzZQotKwljYW5fYnVpbGRfc2hhcmVkPW5vCi0rICAgICAg ZmkKLSsgICAgICA7OwotKyAgICBlc2FjCi0rICAgICMgQUlYIChvbiBQb3dlciopIGhhcyBubyB2 ZXJzaW9uaW5nIHN1cHBvcnQsIHNvIGN1cnJlbnRseSB3ZSBjYW4gbm90IGhhcmRjb2RlIGNvcnJl Y3QKLSsgICAgIyBzb25hbWUgaW50byBleGVjdXRhYmxlLiBQcm9iYWJseSB3ZSBjYW4gYWRkIHZl cnNpb25pbmcgc3VwcG9ydCB0bwotKyAgICAjIGNvbGxlY3QyLCBzbyBhZGRpdGlvbmFsIGxpbmtz IGNhbiBiZSB1c2VmdWwgaW4gZnV0dXJlLgotKyAgICBpZiB0ZXN0ICIkYWl4X3VzZV9ydW50aW1l bGlua2luZyIgPSB5ZXM7IHRoZW4KLSsgICAgICAjIElmIHVzaW5nIHJ1biB0aW1lIGxpbmtpbmcg KG9uIEFJWCA0LjIgb3IgbGF0ZXIpIHVzZSBsaWI8bmFtZT4uc28KLSsgICAgICAjIGluc3RlYWQg b2YgbGliPG5hbWU+LmEgdG8gbGV0IHBlb3BsZSBrbm93IHRoYXQgdGhlc2UgYXJlIG5vdAotKyAg ICAgICMgdHlwaWNhbCBBSVggc2hhcmVkIGxpYnJhcmllcy4KLSsgICAgICBsaWJyYXJ5X25hbWVz X3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJu YW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICRsaWJuYW1lJHtzaGFyZWRfZXh0fScK LSsgICAgZWxzZQotKyAgICAgICMgV2UgcHJlc2VydmUgLmEgYXMgZXh0ZW5zaW9uIGZvciBzaGFy ZWQgbGlicmFyaWVzIHRocm91Z2ggQUlYNC4yCi0rICAgICAgIyBhbmQgbGF0ZXIgd2hlbiB3ZSBh cmUgbm90IGRvaW5nIHJ1biB0aW1lIGxpbmtpbmcuCi0rICAgICAgbGlicmFyeV9uYW1lc19zcGVj PScke2xpYm5hbWV9JHtyZWxlYXNlfS5hICRsaWJuYW1lLmEnCi0rICAgICAgc29uYW1lX3NwZWM9 JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKLSsgICAgZmkKLSsgICAg c2hsaWJwYXRoX3Zhcj1MSUJQQVRICi0rICBmaQotKyAgOzsKLSsKLSthbWlnYW9zKikKLSsgIGNh c2UgJGhvc3RfY3B1IGluCi0rICBwb3dlcnBjKQotKyAgICAjIFNpbmNlIEp1bHkgMjAwNyBBbWln YU9TNCBvZmZpY2lhbGx5IHN1cHBvcnRzIC5zbyBsaWJyYXJpZXMuCi0rICAgICMgV2hlbiBjb21w aWxpbmcgdGhlIGV4ZWN1dGFibGUsIGFkZCAtdXNlLWR5bmxkIC1Mc29ianM6IHRvIHRoZSBjb21w aWxlbGluZS4KLSsgICAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7 c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRt YWpvciAkbGlibmFtZSR7c2hhcmVkX2V4dH0nCi0rICAgIDs7Ci0rICBtNjhrKQotKyAgICBsaWJy YXJ5X25hbWVzX3NwZWM9JyRsaWJuYW1lLml4bGlicmFyeSAkbGlibmFtZS5hJwotKyAgICAjIENy ZWF0ZSAke2xpYm5hbWV9X2l4bGlicmFyeS5hIGVudHJpZXMgaW4gL3N5cy9saWJzLgotKyAgICBm aW5pc2hfZXZhbD0nZm9yIGxpYiBpbiBgbHMgJGxpYmRpci8qLml4bGlicmFyeSAyPi9kZXYvbnVs bGA7IGRvIGxpYm5hbWU9YCRFQ0hPICJYJGxpYiIgfCAkWHNlZCAtZSAnXCcncyVeLiovXChbXi9d KlwpXC5peGxpYnJhcnkkJVwxJSdcJydgOyB0ZXN0ICRSTSAvc3lzL2xpYnMvJHtsaWJuYW1lfV9p eGxpYnJhcnkuYTsgJHNob3cgImNkIC9zeXMvbGlicyAmJiAkTE5fUyAkbGliICR7bGlibmFtZX1f aXhsaWJyYXJ5LmEiOyBjZCAvc3lzL2xpYnMgJiYgJExOX1MgJGxpYiAke2xpYm5hbWV9X2l4bGli cmFyeS5hIHx8IGV4aXQgMTsgZG9uZScKLSsgICAgOzsKLSsgIGVzYWMKLSsgIDs7Ci0rCi0rYmVv cyopCi0rICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3NoYXJlZF9leHR9JwotKyAg ZHluYW1pY19saW5rZXI9IiRob3N0X29zIGxkLnNvIgotKyAgc2hsaWJwYXRoX3Zhcj1MSUJSQVJZ X1BBVEgKLSsgIDs7Ci0rCi0rYnNkaVs0NV0qKQotKyAgdmVyc2lvbl90eXBlPWxpbnV4Ci0rICBu ZWVkX3ZlcnNpb249bm8KLSsgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFz ZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4 dH0kbWFqb3IgJGxpYm5hbWUke3NoYXJlZF9leHR9JwotKyAgc29uYW1lX3NwZWM9JyR7bGlibmFt ZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKLSsgIGZpbmlzaF9jbWRzPSdQQVRIPSJc JFBBVEg6L3NiaW4iIGxkY29uZmlnICRsaWJkaXInCi0rICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJB UllfUEFUSAotKyAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPSIvc2hsaWIgL3Vzci9saWIgL3Vz ci9YMTEvbGliIC91c3IvY29udHJpYi9saWIgL2xpYiAvdXNyL2xvY2FsL2xpYiIKLSsgIHN5c19s aWJfZGxzZWFyY2hfcGF0aF9zcGVjPSIvc2hsaWIgL3Vzci9saWIgL3Vzci9sb2NhbC9saWIiCi0r ICAjIHRoZSBkZWZhdWx0IGxkLnNvLmNvbmYgYWxzbyBjb250YWlucyAvdXNyL2NvbnRyaWIvbGli IGFuZAotKyAgIyAvdXNyL1gxMVI2L2xpYiAoL3Vzci9YMTEgaXMgYSBsaW5rIHRvIC91c3IvWDEx UjYpLCBidXQgbGV0IHVzIGFsbG93Ci0rICAjIGxpYnRvb2wgdG8gaGFyZC1jb2RlIHRoZXNlIGlu dG8gcHJvZ3JhbXMKLSsgIDs7Ci0rCi0rY3lnd2luKiB8IG1pbmd3KiB8IHB3MzIqIHwgY2VnY2Mq KQotKyAgdmVyc2lvbl90eXBlPXdpbmRvd3MKLSsgIHNocmV4dF9jbWRzPSIuZGxsIgotKyAgbmVl ZF92ZXJzaW9uPW5vCi0rICBuZWVkX2xpYl9wcmVmaXg9bm8KLSsKLSsgIGNhc2UgJEdDQywkaG9z dF9vcyBpbgotKyAgeWVzLGN5Z3dpbiogfCB5ZXMsbWluZ3cqIHwgeWVzLHB3MzIqIHwgeWVzLGNl Z2NjKikKLSsgICAgbGlicmFyeV9uYW1lc19zcGVjPSckbGlibmFtZS5kbGwuYScKLSsgICAgIyBE TEwgaXMgaW5zdGFsbGVkIHRvICQobGliZGlyKS8uLi9iaW4gYnkgcG9zdGluc3RhbGxfY21kcwot KyAgICBwb3N0aW5zdGFsbF9jbWRzPSdiYXNlX2ZpbGU9YGJhc2VuYW1lIFwke2ZpbGV9YH4KLSsg ICAgICBkbHBhdGg9YCRTSEVMTCAyPiYxIC1jICdcJycuICRkaXIvJ1wnJ1wke2Jhc2VfZmlsZX0n XCcnaTsgZWNobyBcJGRsbmFtZSdcJydgfgotKyAgICAgIGRsZGlyPSRkZXN0ZGlyL2BkaXJuYW1l IFwkZGxwYXRoYH4KLSsgICAgICB0ZXN0IC1kIFwkZGxkaXIgfHwgbWtkaXIgLXAgXCRkbGRpcn4K LSsgICAgICAkaW5zdGFsbF9wcm9nICRkaXIvJGRsbmFtZSBcJGRsZGlyLyRkbG5hbWV+Ci0rICAg ICAgY2htb2QgYSt4IFwkZGxkaXIvJGRsbmFtZX4KLSsgICAgICBpZiB0ZXN0IC1uICdcJyckc3Ry aXBtZSdcJycgJiYgdGVzdCAtbiAnXCcnJHN0cmlwbGliJ1wnJzsgdGhlbgotKyAgICAgICAgZXZh bCAnXCcnJHN0cmlwbGliIFwkZGxkaXIvJGRsbmFtZSdcJycgfHwgZXhpdCBcJD87Ci0rICAgICAg ZmknCi0rICAgIHBvc3R1bmluc3RhbGxfY21kcz0nZGxkbGw9YCRTSEVMTCAyPiYxIC1jICdcJycu ICRmaWxlOyBlY2hvIFwkZGxuYW1lJ1wnJ2B+Ci0rICAgICAgZGxwYXRoPSRkaXIvXCRkbGRsbH4K LSsgICAgICAgJFJNIFwkZGxwYXRoJwotKyAgICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9 eWVzCi0rCi0rICAgIGNhc2UgJGhvc3Rfb3MgaW4KLSsgICAgY3lnd2luKikKLSsgICAgICAjIEN5 Z3dpbiBETExzIHVzZSAnY3lnJyBwcmVmaXggcmF0aGVyIHRoYW4gJ2xpYicKLSsgICAgICBzb25h bWVfc3BlYz0nYGVjaG8gJHtsaWJuYW1lfSB8IHNlZCAtZSAncy9ebGliL2N5Zy8nYGBlY2hvICR7 cmVsZWFzZX0gfCAkU0VEIC1lICdzL1suXS8tL2cnYCR7dmVyc3VmZml4fSR7c2hhcmVkX2V4dH0n Ci0rICAgICAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPSIvdXNyL2xpYiAvbGliL3czMmFwaSAv bGliIC91c3IvbG9jYWwvbGliIgotKyAgICAgIDs7Ci0rICAgIG1pbmd3KiB8IGNlZ2NjKikKLSsg ICAgICAjIE1pbkdXIERMTHMgdXNlIHRyYWRpdGlvbmFsICdsaWInIHByZWZpeAotKyAgICAgIHNv bmFtZV9zcGVjPScke2xpYm5hbWV9YGVjaG8gJHtyZWxlYXNlfSB8ICRTRUQgLWUgJ3MvWy5dLy0v ZydgJHt2ZXJzdWZmaXh9JHtzaGFyZWRfZXh0fScKLSsgICAgICBzeXNfbGliX3NlYXJjaF9wYXRo X3NwZWM9YCRDQyAtcHJpbnQtc2VhcmNoLWRpcnMgfCAkR1JFUCAiXmxpYnJhcmllczoiIHwgJFNF RCAtZSAicy9ebGlicmFyaWVzOi8vIiAtZSAicyw9LywvLGciYAotKyAgICAgIGlmICRFQ0hPICIk c3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjIiB8ICRHUkVQICc7W2MtekMtWl06LycgPi9kZXYvbnVs bDsgdGhlbgotKyAgICAgICAgIyBJdCBpcyBtb3N0IHByb2JhYmx5IGEgV2luZG93cyBmb3JtYXQg UEFUSCBwcmludGVkIGJ5Ci0rICAgICAgICAjIG1pbmd3IGdjYywgYnV0IHdlIGFyZSBydW5uaW5n IG9uIEN5Z3dpbi4gR2NjIHByaW50cyBpdHMgc2VhcmNoCi0rICAgICAgICAjIHBhdGggd2l0aCA7 IHNlcGFyYXRvcnMsIGFuZCB3aXRoIGRyaXZlIGxldHRlcnMuIFdlIGNhbiBoYW5kbGUgdGhlCi0r ICAgICAgICAjIGRyaXZlIGxldHRlcnMgKGN5Z3dpbiBmaWxldXRpbHMgdW5kZXJzdGFuZHMgdGhl bSksIHNvIGxlYXZlIHRoZW0sCi0rICAgICAgICAjIGVzcGVjaWFsbHkgYXMgd2UgbWlnaHQgcGFz cyBmaWxlcyBmb3VuZCB0aGVyZSB0byBhIG1pbmd3IG9iamR1bXAsCi0rICAgICAgICAjIHdoaWNo IHdvdWxkbid0IHVuZGVyc3RhbmQgYSBjeWd3aW5pZmllZCBwYXRoLiBBaGguCi0rICAgICAgICBz eXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9YCRFQ0hPICIkc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVj IiB8ICRTRUQgLWUgJ3MvOy8gL2cnYAotKyAgICAgIGVsc2UKLSsgICAgICAgIHN5c19saWJfc2Vh cmNoX3BhdGhfc3BlYz1gJEVDSE8gIiRzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWMiIHwgJFNFRCAg LWUgInMvJFBBVEhfU0VQQVJBVE9SLyAvZyJgCi0rICAgICAgZmkKLSsgICAgICA7OwotKyAgICBw dzMyKikKLSsgICAgICAjIHB3MzIgRExMcyB1c2UgJ3B3JyBwcmVmaXggcmF0aGVyIHRoYW4gJ2xp YicKLSsgICAgICBsaWJyYXJ5X25hbWVzX3NwZWM9J2BlY2hvICR7bGlibmFtZX0gfCBzZWQgLWUg J3MvXmxpYi9wdy8nYGBlY2hvICR7cmVsZWFzZX0gfCAkU0VEIC1lICdzL1suXS8tL2cnYCR7dmVy c3VmZml4fSR7c2hhcmVkX2V4dH0nCi0rICAgICAgOzsKLSsgICAgZXNhYwotKyAgICA7OwotKwot KyAgKikKLSsgICAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9YGVjaG8gJHtyZWxlYXNl fSB8ICRTRUQgLWUgJ3MvWy5dLy0vZydgJHt2ZXJzdWZmaXh9JHtzaGFyZWRfZXh0fSAkbGlibmFt ZS5saWInCi0rICAgIDs7Ci0rICBlc2FjCi0rICBkeW5hbWljX2xpbmtlcj0nV2luMzIgbGQuZXhl JwotKyAgIyBGSVhNRTogZmlyc3Qgd2Ugc2hvdWxkIHNlYXJjaCAuIGFuZCB0aGUgZGlyZWN0b3J5 IHRoZSBleGVjdXRhYmxlIGlzIGluCi0rICBzaGxpYnBhdGhfdmFyPVBBVEgKLSsgIDs7Ci0rCi0r ZGFyd2luKiB8IHJoYXBzb2R5KikKLSsgIGR5bmFtaWNfbGlua2VyPSIkaG9zdF9vcyBkeWxkIgot KyAgdmVyc2lvbl90eXBlPWRhcndpbgotKyAgbmVlZF9saWJfcHJlZml4PW5vCi0rICBuZWVkX3Zl cnNpb249bm8KLSsgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke21h am9yfSRzaGFyZWRfZXh0ICR7bGlibmFtZX0kc2hhcmVkX2V4dCcKLSsgIHNvbmFtZV9zcGVjPSck e2xpYm5hbWV9JHtyZWxlYXNlfSR7bWFqb3J9JHNoYXJlZF9leHQnCi0rICBzaGxpYnBhdGhfb3Zl cnJpZGVzX3J1bnBhdGg9eWVzCi0rICBzaGxpYnBhdGhfdmFyPURZTERfTElCUkFSWV9QQVRICi0r ICBzaHJleHRfY21kcz0nYHRlc3QgLiRtb2R1bGUgPSAueWVzICYmIGVjaG8gLnNvIHx8IGVjaG8g LmR5bGliYCcKLSsKLSsgIHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYz0iJHN5c19saWJfc2VhcmNo X3BhdGhfc3BlYyAvdXNyL2xvY2FsL2xpYiIKLSsgIHN5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVj PScvdXNyL2xvY2FsL2xpYiAvbGliIC91c3IvbGliJwotKyAgOzsKLSsKLStkZ3V4KikKLSsgIHZl cnNpb25fdHlwZT1saW51eAotKyAgbmVlZF9saWJfcHJlZml4PW5vCi0rICBuZWVkX3ZlcnNpb249 bm8KLSsgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9l eHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJGxp Ym5hbWUkc2hhcmVkX2V4dCcKLSsgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7 c2hhcmVkX2V4dH0kbWFqb3InCi0rICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAotKyAg OzsKLSsKLStmcmVlYnNkMSopCi0rICBkeW5hbWljX2xpbmtlcj1ubwotKyAgOzsKLSsKLStmcmVl YnNkKiB8IGRyYWdvbmZseSopCi0rICAjIERyYWdvbkZseSBkb2VzIG5vdCBoYXZlIGFvdXQuICBX aGVuL2lmIHRoZXkgaW1wbGVtZW50IGEgbmV3Ci0rICAjIHZlcnNpb25pbmcgbWVjaGFuaXNtLCBh ZGp1c3QgdGhpcy4KLSsgIGlmIHRlc3QgLXggL3Vzci9iaW4vb2JqZm9ybWF0OyB0aGVuCi0rICAg IG9iamZvcm1hdD1gL3Vzci9iaW4vb2JqZm9ybWF0YAotKyAgZWxzZQotKyAgICBjYXNlICRob3N0 X29zIGluCi0rICAgIGZyZWVic2RbMTIzXSopIG9iamZvcm1hdD1hb3V0IDs7Ci0rICAgICopIG9i amZvcm1hdD1lbGYgOzsKLSsgICAgZXNhYwotKyAgZmkKLSsgIHZlcnNpb25fdHlwZT1mcmVlYnNk LSRvYmpmb3JtYXQKLSsgIGNhc2UgJHZlcnNpb25fdHlwZSBpbgotKyAgICBmcmVlYnNkLWVsZiop Ci0rICAgICAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVk X2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSAkbGlibmFt ZSR7c2hhcmVkX2V4dH0nCi0rICAgICAgbmVlZF92ZXJzaW9uPW5vCi0rICAgICAgbmVlZF9saWJf cHJlZml4PW5vCi0rICAgICAgOzsKLSsgICAgZnJlZWJzZC0qKQotKyAgICAgIGxpYnJhcnlfbmFt ZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAkbGli bmFtZSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4JwotKyAgICAgIG5lZWRfdmVyc2lvbj15ZXMKLSsg ICAgICA7OwotKyAgZXNhYwotKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKLSsgIGNh c2UgJGhvc3Rfb3MgaW4KLSsgIGZyZWVic2QyKikKLSsgICAgc2hsaWJwYXRoX292ZXJyaWRlc19y dW5wYXRoPXllcwotKyAgICA7OwotKyAgZnJlZWJzZDMuWzAxXSogfCBmcmVlYnNkZWxmMy5bMDFd KikKLSsgICAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPXllcwotKyAgICBoYXJkY29kZV9p bnRvX2xpYnM9eWVzCi0rICAgIDs7Ci0rICBmcmVlYnNkMy5bMi05XSogfCBmcmVlYnNkZWxmMy5b Mi05XSogfCBcCi0rICBmcmVlYnNkNC5bMC01XSB8IGZyZWVic2RlbGY0LlswLTVdIHwgZnJlZWJz ZDQuMS4xIHwgZnJlZWJzZGVsZjQuMS4xKQotKyAgICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBh dGg9bm8KLSsgICAgaGFyZGNvZGVfaW50b19saWJzPXllcwotKyAgICA7OwotKyAgKikgIyBmcm9t IDQuNiBvbiwgYW5kIERyYWdvbkZseQotKyAgICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9 eWVzCi0rICAgIGhhcmRjb2RlX2ludG9fbGlicz15ZXMKLSsgICAgOzsKLSsgIGVzYWMKLSsgIDs7 Ci0rCi0rZ251KikKLSsgIHZlcnNpb25fdHlwZT1saW51eAotKyAgbmVlZF9saWJfcHJlZml4PW5v Ci0rICBuZWVkX3ZlcnNpb249bm8KLSsgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7 cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hh cmVkX2V4dH0ke21ham9yfSAke2xpYm5hbWV9JHtzaGFyZWRfZXh0fScKLSsgIHNvbmFtZV9zcGVj PScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCi0rICBzaGxpYnBhdGhf dmFyPUxEX0xJQlJBUllfUEFUSAotKyAgaGFyZGNvZGVfaW50b19saWJzPXllcwotKyAgOzsKLSsK LStocHV4OSogfCBocHV4MTAqIHwgaHB1eDExKikKLSsgICMgR2l2ZSBhIHNvbmFtZSBjb3JyZXNw b25kaW5nIHRvIHRoZSBtYWpvciB2ZXJzaW9uIHNvIHRoYXQgZGxkLnNsIHJlZnVzZXMgdG8KLSsg ICMgbGluayBhZ2FpbnN0IG90aGVyIHZlcnNpb25zLgotKyAgdmVyc2lvbl90eXBlPXN1bm9zCi0r ICBuZWVkX2xpYl9wcmVmaXg9bm8KLSsgIG5lZWRfdmVyc2lvbj1ubwotKyAgY2FzZSAkaG9zdF9j cHUgaW4KLSsgIGlhNjQqKQotKyAgICBzaHJleHRfY21kcz0nLnNvJwotKyAgICBoYXJkY29kZV9p bnRvX2xpYnM9eWVzCi0rICAgIGR5bmFtaWNfbGlua2VyPSIkaG9zdF9vcyBkbGQuc28iCi0rICAg IHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRICi0rICAgIHNobGlicGF0aF9vdmVycmlkZXNf cnVucGF0aD15ZXMgIyBVbmxlc3MgK25vZW52dmFyIGlzIHNwZWNpZmllZC4KLSsgICAgbGlicmFy eV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4 ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAkbGlibmFtZSR7c2hhcmVk X2V4dH0nCi0rICAgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4 dH0kbWFqb3InCi0rICAgIGlmIHRlc3QgIlgkSFBVWF9JQTY0X01PREUiID0gWDMyOyB0aGVuCi0r ICAgICAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPSIvdXNyL2xpYi9ocHV4MzIgL3Vzci9sb2Nh bC9saWIvaHB1eDMyIC91c3IvbG9jYWwvbGliIgotKyAgICBlbHNlCi0rICAgICAgc3lzX2xpYl9z ZWFyY2hfcGF0aF9zcGVjPSIvdXNyL2xpYi9ocHV4NjQgL3Vzci9sb2NhbC9saWIvaHB1eDY0Igot KyAgICBmaQotKyAgICBzeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYz0kc3lzX2xpYl9zZWFyY2hf cGF0aF9zcGVjCi0rICAgIDs7Ci0rICBocHBhKjY0KikKLSsgICAgc2hyZXh0X2NtZHM9Jy5zbCcK LSsgICAgaGFyZGNvZGVfaW50b19saWJzPXllcwotKyAgICBkeW5hbWljX2xpbmtlcj0iJGhvc3Rf b3MgZGxkLnNsIgotKyAgICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSCAjIEhvdyBzaG91 bGQgd2UgaGFuZGxlIFNITElCX1BBVEgKLSsgICAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRo PXllcyAjIFVubGVzcyArbm9lbnZ2YXIgaXMgc3BlY2lmaWVkLgotKyAgICBsaWJyYXJ5X25hbWVz X3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJu YW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICRsaWJuYW1lJHtzaGFyZWRfZXh0fScK LSsgICAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpv cicKLSsgICAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPSIvdXNyL2xpYi9wYTIwXzY0IC91c3Iv Y2NzL2xpYi9wYTIwXzY0IgotKyAgICBzeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYz0kc3lzX2xp Yl9zZWFyY2hfcGF0aF9zcGVjCi0rICAgIDs7Ci0rICAqKQotKyAgICBzaHJleHRfY21kcz0nLnNs JwotKyAgICBkeW5hbWljX2xpbmtlcj0iJGhvc3Rfb3MgZGxkLnNsIgotKyAgICBzaGxpYnBhdGhf dmFyPVNITElCX1BBVEgKLSsgICAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPW5vICMgK3Mg aXMgcmVxdWlyZWQgdG8gZW5hYmxlIFNITElCX1BBVEgKLSsgICAgbGlicmFyeV9uYW1lc19zcGVj PScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0k e3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAkbGlibmFtZSR7c2hhcmVkX2V4dH0nCi0rICAg IHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCi0r ICAgIDs7Ci0rICBlc2FjCi0rICAjIEhQLVVYIHJ1bnMgKnJlYWxseSogc2xvd2x5IHVubGVzcyBz aGFyZWQgbGlicmFyaWVzIGFyZSBtb2RlIDU1NS4KLSsgIHBvc3RpbnN0YWxsX2NtZHM9J2NobW9k IDU1NSAkbGliJwotKyAgOzsKLSsKLStpbnRlcml4WzMtOV0qKQotKyAgdmVyc2lvbl90eXBlPWxp bnV4Ci0rICBuZWVkX2xpYl9wcmVmaXg9bm8KLSsgIG5lZWRfdmVyc2lvbj1ubwotKyAgbGlicmFy eV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4 ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAke2xpYm5hbWV9JHtzaGFy ZWRfZXh0fScKLSsgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4 dH0kbWFqb3InCi0rICBkeW5hbWljX2xpbmtlcj0nSW50ZXJpeCAzLnggbGQuc28uMSAoUEUsIGxp a2UgRUxGKScKLSsgIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRICi0rICBzaGxpYnBhdGhf b3ZlcnJpZGVzX3J1bnBhdGg9bm8KLSsgIGhhcmRjb2RlX2ludG9fbGlicz15ZXMKLSsgIDs7Ci0r Ci0raXJpeDUqIHwgaXJpeDYqIHwgbm9uc3RvcHV4KikKLSsgIGNhc2UgJGhvc3Rfb3MgaW4KLSsg ICAgbm9uc3RvcHV4KikgdmVyc2lvbl90eXBlPW5vbnN0b3B1eCA7OwotKyAgICAqKQotKwlpZiB0 ZXN0ICIkbHRfY3ZfcHJvZ19nbnVfbGQiID0geWVzOyB0aGVuCi0rCQl2ZXJzaW9uX3R5cGU9bGlu dXgKLSsJZWxzZQotKwkJdmVyc2lvbl90eXBlPWlyaXgKLSsJZmkgOzsKLSsgIGVzYWMKLSsgIG5l ZWRfbGliX3ByZWZpeD1ubwotKyAgbmVlZF92ZXJzaW9uPW5vCi0rICBzb25hbWVfc3BlYz0nJHts aWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yJwotKyAgbGlicmFyeV9uYW1lc19z cGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFt ZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hh cmVkX2V4dH0gJGxpYm5hbWUke3NoYXJlZF9leHR9JwotKyAgY2FzZSAkaG9zdF9vcyBpbgotKyAg aXJpeDUqIHwgbm9uc3RvcHV4KikKLSsgICAgbGlic3VmZj0gc2hsaWJzdWZmPQotKyAgICA7Owot KyAgKikKLSsgICAgY2FzZSAkTEQgaW4gIyBsaWJ0b29sLm00IHdpbGwgYWRkIG9uZSBvZiB0aGVz ZSBzd2l0Y2hlcyB0byBMRAotKyAgICAqLTMyfCoiLTMyICJ8Ki1tZWxmMzJic21pcHwqIi1tZWxm MzJic21pcCAiKQotKyAgICAgIGxpYnN1ZmY9IHNobGlic3VmZj0gbGlibWFnaWM9MzItYml0OzsK LSsgICAgKi1uMzJ8KiItbjMyICJ8Ki1tZWxmMzJibWlwbjMyfCoiLW1lbGYzMmJtaXBuMzIgIikK LSsgICAgICBsaWJzdWZmPTMyIHNobGlic3VmZj1OMzIgbGlibWFnaWM9TjMyOzsKLSsgICAgKi02 NHwqIi02NCAifCotbWVsZjY0Ym1pcHwqIi1tZWxmNjRibWlwICIpCi0rICAgICAgbGlic3VmZj02 NCBzaGxpYnN1ZmY9NjQgbGlibWFnaWM9NjQtYml0OzsKLSsgICAgKikgbGlic3VmZj0gc2hsaWJz dWZmPSBsaWJtYWdpYz1uZXZlci1tYXRjaDs7Ci0rICAgIGVzYWMKLSsgICAgOzsKLSsgIGVzYWMK LSsgIHNobGlicGF0aF92YXI9TERfTElCUkFSWSR7c2hsaWJzdWZmfV9QQVRICi0rICBzaGxpYnBh dGhfb3ZlcnJpZGVzX3J1bnBhdGg9bm8KLSsgIHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYz0iL3Vz ci9saWIke2xpYnN1ZmZ9IC9saWIke2xpYnN1ZmZ9IC91c3IvbG9jYWwvbGliJHtsaWJzdWZmfSIK LSsgIHN5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjPSIvdXNyL2xpYiR7bGlic3VmZn0gL2xpYiR7 bGlic3VmZn0iCi0rICBoYXJkY29kZV9pbnRvX2xpYnM9eWVzCi0rICA7OwotKwotKyMgTm8gc2hh cmVkIGxpYiBzdXBwb3J0IGZvciBMaW51eCBvbGRsZCwgYW91dCwgb3IgY29mZi4KLStsaW51eCpv bGRsZCogfCBsaW51eCphb3V0KiB8IGxpbnV4KmNvZmYqKQotKyAgZHluYW1pY19saW5rZXI9bm8K LSsgIDs7Ci0rCi0rIyBUaGlzIG11c3QgYmUgTGludXggRUxGLgotK2xpbnV4KiB8IGsqYnNkKi1n bnUpCi0rICB2ZXJzaW9uX3R5cGU9bGludXgKLSsgIG5lZWRfbGliX3ByZWZpeD1ubwotKyAgbmVl ZF92ZXJzaW9uPW5vCi0rICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9 JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9 JG1ham9yICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKLSsgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9 JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCi0rICBmaW5pc2hfY21kcz0nUEFUSD0iXCRQ QVRIOi9zYmluIiBsZGNvbmZpZyAtbiAkbGliZGlyJwotKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJS QVJZX1BBVEgKLSsgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD1ubwotKyAgIyBTb21lIGJp bnV0aWxzIGxkIGFyZSBwYXRjaGVkIHRvIHNldCBEVF9SVU5QQVRICi0rICBzYXZlX0xERkxBR1M9 JExERkxBR1MKLSsgIHNhdmVfbGliZGlyPSRsaWJkaXIKLSsgIGV2YWwgImxpYmRpcj0vZm9vOyB3 bD1cIiRsdF9wcm9nX2NvbXBpbGVyX3dsXCI7IFwKLSsgICAgICAgTERGTEFHUz1cIlwkTERGTEFH UyAkaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY1wiIgotKyAgY2F0ID5jb25mdGVzdC4kYWNfZXh0 IDw8X0FDRU9GCi0rLyogY29uZmRlZnMuaC4gICovCi0rX0FDRU9GCi0rY2F0IGNvbmZkZWZzLmgg Pj5jb25mdGVzdC4kYWNfZXh0Ci0rY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotKy8q IGVuZCBjb25mZGVmcy5oLiAgKi8KLSsKLStpbnQKLSttYWluICgpCi0rewotKwotKyAgOwotKyAg cmV0dXJuIDA7Ci0rfQotK19BQ0VPRgotK3JtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRl c3QkYWNfZXhlZXh0Ci0raWYgeyAoYWNfdHJ5PSIkYWNfbGluayIKLStjYXNlICIoKCRhY190cnki IGluCi0rICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKLSsgICop IGFjX3RyeV9lY2hvPSRhY190cnk7OwotK2VzYWMKLStldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNf bWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCi0rJGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4m NQotKyAgKGV2YWwgIiRhY19saW5rIikgMj5jb25mdGVzdC5lcjEKLSsgIGFjX3N0YXR1cz0kPwot KyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKLSsgIHJtIC1mIGNv bmZ0ZXN0LmVyMQotKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKLSsgICRhc19lY2hvICIkYXNfbWU6 JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0rICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAm JiB7Ci0rCSB0ZXN0IC16ICIkYWNfY193ZXJyb3JfZmxhZyIgfHwKLSsJIHRlc3QgISAtcyBjb25m dGVzdC5lcnIKLSsgICAgICAgfSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAmJiB7Ci0r CSB0ZXN0ICIkY3Jvc3NfY29tcGlsaW5nIiA9IHllcyB8fAotKwkgJGFzX3Rlc3RfeCBjb25mdGVz dCRhY19leGVleHQKLSsgICAgICAgfTsgdGhlbgotKyAgaWYgICgkT0JKRFVNUCAtcCBjb25mdGVz dCRhY19leGVleHQpIDI+L2Rldi9udWxsIHwgZ3JlcCAiUlVOUEFUSC4qJGxpYmRpciIgPi9kZXYv bnVsbDsgdGhlbgotKyAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPXllcwotK2ZpCi0rCi0r ZWxzZQotKyAgJGFzX2VjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Ci0rc2Vk ICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQotKwotKwotK2ZpCi0rCi0rcm0gLXJmIGNv bmZ0ZXN0LmRTWU0KLStybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0 IGNvbmZ0ZXN0X2lwYThfY29uZnRlc3Qub28gXAotKyAgICAgIGNvbmZ0ZXN0JGFjX2V4ZWV4dCBj b25mdGVzdC4kYWNfZXh0Ci0rICBMREZMQUdTPSRzYXZlX0xERkxBR1MKLSsgIGxpYmRpcj0kc2F2 ZV9saWJkaXIKLSsKLSsgICMgVGhpcyBpbXBsaWVzIG5vIGZhc3RfaW5zdGFsbCwgd2hpY2ggaXMg dW5hY2NlcHRhYmxlLgotKyAgIyBTb21lIHJld29yayB3aWxsIGJlIG5lZWRlZCB0byBhbGxvdyBm b3IgZmFzdF9pbnN0YWxsCi0rICAjIGJlZm9yZSB0aGlzIGNhbiBiZSBlbmFibGVkLgotKyAgaGFy ZGNvZGVfaW50b19saWJzPXllcwotKwotKyAgIyBBZGQgQUJJLXNwZWNpZmljIGRpcmVjdG9yaWVz IHRvIHRoZSBzeXN0ZW0gbGlicmFyeSBwYXRoLgotKyAgc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3Nw ZWM9Ii9saWI2NCAvdXNyL2xpYjY0IC9saWIgL3Vzci9saWIiCi0rCi0rICAjIEFwcGVuZCBsZC5z by5jb25mIGNvbnRlbnRzIHRvIHRoZSBzZWFyY2ggcGF0aAotKyAgaWYgdGVzdCAtZiAvZXRjL2xk LnNvLmNvbmY7IHRoZW4KLSsgICAgbHRfbGRfZXh0cmE9YGF3ayAnL15pbmNsdWRlIC8geyBzeXN0 ZW0oc3ByaW50ZigiY2QgL2V0YzsgY2F0ICVzIDI+L2Rldi9udWxsIiwgXCQyKSk7IHNraXAgPSAx OyB9IHsgaWYgKCFza2lwKSBwcmludCBcJDA7IHNraXAgPSAwOyB9JyA8IC9ldGMvbGQuc28uY29u ZiB8ICRTRUQgLWUgJ3MvIy4qLy87L15bCSBdKmh3Y2FwWwkgXS9kO3MvWzosCV0vIC9nO3MvPVte PV0qJC8vO3MvPVtePSBdKiAvIC9nOy9eJC9kJyB8IHRyICdcbicgJyAnYAotKyAgICBzeXNfbGli X2Rsc2VhcmNoX3BhdGhfc3BlYz0iJHN5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjICRsdF9sZF9l eHRyYSIKLSsgIGZpCi0rCi0rICAjIFdlIHVzZWQgdG8gdGVzdCBmb3IgL2xpYi9sZC5zby4xIGFu ZCBkaXNhYmxlIHNoYXJlZCBsaWJyYXJpZXMgb24KLSsgICMgcG93ZXJwYywgYmVjYXVzZSBNa0xp bnV4IG9ubHkgc3VwcG9ydGVkIHNoYXJlZCBsaWJyYXJpZXMgd2l0aCB0aGUKLSsgICMgR05VIGR5 bmFtaWMgbGlua2VyLiAgU2luY2UgdGhpcyB3YXMgYnJva2VuIHdpdGggY3Jvc3MgY29tcGlsZXJz LAotKyAgIyBtb3N0IHBvd2VycGMtbGludXggYm94ZXMgc3VwcG9ydCBkeW5hbWljIGxpbmtpbmcg dGhlc2UgZGF5cyBhbmQKLSsgICMgcGVvcGxlIGNhbiBhbHdheXMgLS1kaXNhYmxlLXNoYXJlZCwg dGhlIHRlc3Qgd2FzIHJlbW92ZWQsIGFuZCB3ZQotKyAgIyBhc3N1bWUgdGhlIEdOVS9MaW51eCBk eW5hbWljIGxpbmtlciBpcyBpbiB1c2UuCi0rICBkeW5hbWljX2xpbmtlcj0nR05VL0xpbnV4IGxk LnNvJwotKyAgOzsKLSsKLStuZXRic2QqKQotKyAgdmVyc2lvbl90eXBlPXN1bm9zCi0rICBuZWVk X2xpYl9wcmVmaXg9bm8KLSsgIG5lZWRfdmVyc2lvbj1ubwotKyAgaWYgZWNobyBfX0VMRl9fIHwg JENDIC1FIC0gfCAkR1JFUCBfX0VMRl9fID4vZGV2L251bGw7IHRoZW4KLSsgICAgbGlicmFyeV9u YW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7 bGlibmFtZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCcKLSsgICAgZmluaXNoX2NtZHM9J1BBVEg9 IlwkUEFUSDovc2JpbiIgbGRjb25maWcgLW0gJGxpYmRpcicKLSsgICAgZHluYW1pY19saW5rZXI9 J05ldEJTRCAoYS5vdXQpIGxkLnNvJwotKyAgZWxzZQotKyAgICBsaWJyYXJ5X25hbWVzX3NwZWM9 JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7 cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICR7bGlibmFtZX0ke3NoYXJlZF9leHR9JwotKyAg ICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yJwot KyAgICBkeW5hbWljX2xpbmtlcj0nTmV0QlNEIGxkLmVsZl9zbycKLSsgIGZpCi0rICBzaGxpYnBh dGhfdmFyPUxEX0xJQlJBUllfUEFUSAotKyAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPXll cwotKyAgaGFyZGNvZGVfaW50b19saWJzPXllcwotKyAgOzsKLSsKLStuZXdzb3M2KQotKyAgdmVy c2lvbl90eXBlPWxpbnV4Ci0rICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVh c2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9l eHR9JG1ham9yICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKLSsgIHNobGlicGF0aF92YXI9TERfTElC UkFSWV9QQVRICi0rICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9eWVzCi0rICA7OwotKwot KypudG8qIHwgKnFueCopCi0rICB2ZXJzaW9uX3R5cGU9cW54Ci0rICBuZWVkX2xpYl9wcmVmaXg9 bm8KLSsgIG5lZWRfdmVyc2lvbj1ubwotKyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9 JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtz aGFyZWRfZXh0fSRtYWpvciAkbGlibmFtZSR7c2hhcmVkX2V4dH0nCi0rICBzb25hbWVfc3BlYz0n JHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yJwotKyAgc2hsaWJwYXRoX3Zh cj1MRF9MSUJSQVJZX1BBVEgKLSsgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD1ubwotKyAg aGFyZGNvZGVfaW50b19saWJzPXllcwotKyAgZHluYW1pY19saW5rZXI9J2xkcW54LnNvJwotKyAg OzsKLSsKLStvcGVuYnNkKikKLSsgIHZlcnNpb25fdHlwZT1zdW5vcwotKyAgc3lzX2xpYl9kbHNl YXJjaF9wYXRoX3NwZWM9Ii91c3IvbGliIgotKyAgbmVlZF9saWJfcHJlZml4PW5vCi0rICAjIFNv bWUgb2xkZXIgdmVyc2lvbnMgb2YgT3BlbkJTRCAoMy4zIGF0IGxlYXN0KSAqZG8qIG5lZWQgdmVy c2lvbmVkIGxpYnMuCi0rICBjYXNlICRob3N0X29zIGluCi0rICAgIG9wZW5ic2QzLjMgfCBvcGVu YnNkMy4zLiopCW5lZWRfdmVyc2lvbj15ZXMgOzsKLSsgICAgKikJCQkJbmVlZF92ZXJzaW9uPW5v ICA7OwotKyAgZXNhYwotKyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNl fSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZp eCcKLSsgIGZpbmlzaF9jbWRzPSdQQVRIPSJcJFBBVEg6L3NiaW4iIGxkY29uZmlnIC1tICRsaWJk aXInCi0rICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAotKyAgaWYgdGVzdCAteiAiYGVj aG8gX19FTEZfXyB8ICRDQyAtRSAtIHwgJEdSRVAgX19FTEZfX2AiIHx8IHRlc3QgIiRob3N0X29z LSRob3N0X2NwdSIgPSAib3BlbmJzZDIuOC1wb3dlcnBjIjsgdGhlbgotKyAgICBjYXNlICRob3N0 X29zIGluCi0rICAgICAgb3BlbmJzZDIuWzg5XSB8IG9wZW5ic2QyLls4OV0uKikKLSsJc2hsaWJw YXRoX292ZXJyaWRlc19ydW5wYXRoPW5vCi0rCTs7Ci0rICAgICAgKikKLSsJc2hsaWJwYXRoX292 ZXJyaWRlc19ydW5wYXRoPXllcwotKwk7OwotKyAgICAgIGVzYWMKLSsgIGVsc2UKLSsgICAgc2hs aWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPXllcwotKyAgZmkKLSsgIDs7Ci0rCi0rb3MyKikKLSsg IGxpYm5hbWVfc3BlYz0nJG5hbWUnCi0rICBzaHJleHRfY21kcz0iLmRsbCIKLSsgIG5lZWRfbGli X3ByZWZpeD1ubwotKyAgbGlicmFyeV9uYW1lc19zcGVjPSckbGlibmFtZSR7c2hhcmVkX2V4dH0g JGxpYm5hbWUuYScKLSsgIGR5bmFtaWNfbGlua2VyPSdPUy8yIGxkLmV4ZScKLSsgIHNobGlicGF0 aF92YXI9TElCUEFUSAotKyAgOzsKLSsKLStvc2YzKiB8IG9zZjQqIHwgb3NmNSopCi0rICB2ZXJz aW9uX3R5cGU9b3NmCi0rICBuZWVkX2xpYl9wcmVmaXg9bm8KLSsgIG5lZWRfdmVyc2lvbj1ubwot KyAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicK LSsgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9 JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJGxpYm5h bWUke3NoYXJlZF9leHR9JwotKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKLSsgIHN5 c19saWJfc2VhcmNoX3BhdGhfc3BlYz0iL3Vzci9zaGxpYiAvdXNyL2Njcy9saWIgL3Vzci9saWIv Y21wbHJzL2NjIC91c3IvbGliIC91c3IvbG9jYWwvbGliIC92YXIvc2hsaWIiCi0rICBzeXNfbGli X2Rsc2VhcmNoX3BhdGhfc3BlYz0iJHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYyIKLSsgIDs7Ci0r Ci0rcmRvcyopCi0rICBkeW5hbWljX2xpbmtlcj1ubwotKyAgOzsKLSsKLStzb2xhcmlzKikKLSsg IHZlcnNpb25fdHlwZT1saW51eAotKyAgbmVlZF9saWJfcHJlZml4PW5vCi0rICBuZWVkX3ZlcnNp b249bm8KLSsgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJl ZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3Ig JGxpYm5hbWUke3NoYXJlZF9leHR9JwotKyAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVh c2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKLSsgIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRI Ci0rICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9eWVzCi0rICBoYXJkY29kZV9pbnRvX2xp YnM9eWVzCi0rICAjIGxkZCBjb21wbGFpbnMgdW5sZXNzIGxpYnJhcmllcyBhcmUgZXhlY3V0YWJs ZQotKyAgcG9zdGluc3RhbGxfY21kcz0nY2htb2QgK3ggJGxpYicKLSsgIDs7Ci0rCi0rc3Vub3M0 KikKLSsgIHZlcnNpb25fdHlwZT1zdW5vcwotKyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5h bWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3NoYXJlZF9l eHR9JHZlcnN1ZmZpeCcKLSsgIGZpbmlzaF9jbWRzPSdQQVRIPSJcJFBBVEg6L3Vzci9ldGMiIGxk Y29uZmlnICRsaWJkaXInCi0rICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAotKyAgc2hs aWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPXllcwotKyAgaWYgdGVzdCAiJHdpdGhfZ251X2xkIiA9 IHllczsgdGhlbgotKyAgICBuZWVkX2xpYl9wcmVmaXg9bm8KLSsgIGZpCi0rICBuZWVkX3ZlcnNp b249eWVzCi0rICA7OwotKwotK3N5c3Y0IHwgc3lzdjQuMyopCi0rICB2ZXJzaW9uX3R5cGU9bGlu dXgKLSsgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9l eHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJGxp Ym5hbWUke3NoYXJlZF9leHR9JwotKyAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9 JHtzaGFyZWRfZXh0fSRtYWpvcicKLSsgIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRICi0r ICBjYXNlICRob3N0X3ZlbmRvciBpbgotKyAgICBzbmkpCi0rICAgICAgc2hsaWJwYXRoX292ZXJy aWRlc19ydW5wYXRoPW5vCi0rICAgICAgbmVlZF9saWJfcHJlZml4PW5vCi0rICAgICAgcnVucGF0 aF92YXI9TERfUlVOX1BBVEgKLSsgICAgICA7OwotKyAgICBzaWVtZW5zKQotKyAgICAgIG5lZWRf bGliX3ByZWZpeD1ubwotKyAgICAgIDs7Ci0rICAgIG1vdG9yb2xhKQotKyAgICAgIG5lZWRfbGli X3ByZWZpeD1ubwotKyAgICAgIG5lZWRfdmVyc2lvbj1ubwotKyAgICAgIHNobGlicGF0aF9vdmVy cmlkZXNfcnVucGF0aD1ubwotKyAgICAgIHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYz0nL2xpYiAv dXNyL2xpYiAvdXNyL2Njcy9saWInCi0rICAgICAgOzsKLSsgIGVzYWMKLSsgIDs7Ci0rCi0rc3lz djQqTVAqKQotKyAgaWYgdGVzdCAtZCAvdXNyL25lYyA7dGhlbgotKyAgICB2ZXJzaW9uX3R5cGU9 bGludXgKLSsgICAgbGlicmFyeV9uYW1lc19zcGVjPSckbGlibmFtZSR7c2hhcmVkX2V4dH0uJHZl cnN1ZmZpeCAkbGlibmFtZSR7c2hhcmVkX2V4dH0uJG1ham9yICRsaWJuYW1lJHtzaGFyZWRfZXh0 fScKLSsgICAgc29uYW1lX3NwZWM9JyRsaWJuYW1lJHtzaGFyZWRfZXh0fS4kbWFqb3InCi0rICAg IHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRICi0rICBmaQotKyAgOzsKLSsKLStzeXN2NSog fCBzY28zLjJ2NSogfCBzY281djYqIHwgdW5peHdhcmUqIHwgT3BlblVOSVgqIHwgc3lzdjQqdXcy KikKLSsgIHZlcnNpb25fdHlwZT1mcmVlYnNkLWVsZgotKyAgbmVlZF9saWJfcHJlZml4PW5vCi0r ICBuZWVkX3ZlcnNpb249bm8KLSsgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVs ZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVk X2V4dH0gJGxpYm5hbWUke3NoYXJlZF9leHR9JwotKyAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0k e3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKLSsgIHNobGlicGF0aF92YXI9TERfTElCUkFS WV9QQVRICi0rICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9eWVzCi0rICBoYXJkY29kZV9p bnRvX2xpYnM9eWVzCi0rICBpZiB0ZXN0ICIkd2l0aF9nbnVfbGQiID0geWVzOyB0aGVuCi0rICAg IHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYz0nL3Vzci9sb2NhbC9saWIgL3Vzci9nbnUvbGliIC91 c3IvY2NzL2xpYiAvdXNyL2xpYiAvbGliJwotKyAgZWxzZQotKyAgICBzeXNfbGliX3NlYXJjaF9w YXRoX3NwZWM9Jy91c3IvY2NzL2xpYiAvdXNyL2xpYicKLSsgICAgY2FzZSAkaG9zdF9vcyBpbgot KyAgICAgIHNjbzMuMnY1KikKLSsgICAgICAgIHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYz0iJHN5 c19saWJfc2VhcmNoX3BhdGhfc3BlYyAvbGliIgotKwk7OwotKyAgICBlc2FjCi0rICBmaQotKyAg c3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWM9Jy91c3IvbGliJwotKyAgOzsKLSsKLSt0cGYqKQot KyAgIyBUUEYgaXMgYSBjcm9zcy10YXJnZXQgb25seS4gIFByZWZlcnJlZCBjcm9zcy1ob3N0ID0g R05VL0xpbnV4LgotKyAgdmVyc2lvbl90eXBlPWxpbnV4Ci0rICBuZWVkX2xpYl9wcmVmaXg9bm8K LSsgIG5lZWRfdmVyc2lvbj1ubwotKyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHty ZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFy ZWRfZXh0fSRtYWpvciAkbGlibmFtZSR7c2hhcmVkX2V4dH0nCi0rICBzaGxpYnBhdGhfdmFyPUxE X0xJQlJBUllfUEFUSAotKyAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPW5vCi0rICBoYXJk Y29kZV9pbnRvX2xpYnM9eWVzCi0rICA7OwotKwotK3V0czQqKQotKyAgdmVyc2lvbl90eXBlPWxp bnV4Ci0rICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRf ZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICRs aWJuYW1lJHtzaGFyZWRfZXh0fScKLSsgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNl fSR7c2hhcmVkX2V4dH0kbWFqb3InCi0rICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAot KyAgOzsKLSsKLSsqKQotKyAgZHluYW1pY19saW5rZXI9bm8KLSsgIDs7Ci0rZXNhYwotK3sgJGFz X2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRkeW5hbWljX2xpbmtlciIgPiY1Ci0rJGFz X2VjaG8gIiRkeW5hbWljX2xpbmtlciIgPiY2OyB9Ci0rdGVzdCAiJGR5bmFtaWNfbGlua2VyIiA9 IG5vICYmIGNhbl9idWlsZF9zaGFyZWQ9bm8KLSsKLSt2YXJpYWJsZXNfc2F2ZWRfZm9yX3JlbGlu az0iUEFUSCAkc2hsaWJwYXRoX3ZhciAkcnVucGF0aF92YXIiCi0raWYgdGVzdCAiJEdDQyIgPSB5 ZXM7IHRoZW4KLSsgIHZhcmlhYmxlc19zYXZlZF9mb3JfcmVsaW5rPSIkdmFyaWFibGVzX3NhdmVk X2Zvcl9yZWxpbmsgR0NDX0VYRUNfUFJFRklYIENPTVBJTEVSX1BBVEggTElCUkFSWV9QQVRIIgot K2ZpCi0rCi0raWYgdGVzdCAiJHtsdF9jdl9zeXNfbGliX3NlYXJjaF9wYXRoX3NwZWMrc2V0fSIg PSBzZXQ7IHRoZW4KLSsgIHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYz0iJGx0X2N2X3N5c19saWJf c2VhcmNoX3BhdGhfc3BlYyIKLStmaQotK2lmIHRlc3QgIiR7bHRfY3Zfc3lzX2xpYl9kbHNlYXJj aF9wYXRoX3NwZWMrc2V0fSIgPSBzZXQ7IHRoZW4KLSsgIHN5c19saWJfZGxzZWFyY2hfcGF0aF9z cGVjPSIkbHRfY3Zfc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWMiCi0rZmkKLSsKLSsKLSsKLSsK LSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsK LSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsK LSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsK LSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsK LSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVj a2luZyBob3cgdG8gaGFyZGNvZGUgbGlicmFyeSBwYXRocyBpbnRvIHByb2dyYW1zIiA+JjUKLSsk YXNfZWNob19uICJjaGVja2luZyBob3cgdG8gaGFyZGNvZGUgbGlicmFyeSBwYXRocyBpbnRvIHBy b2dyYW1zLi4uICIgPiY2OyB9Ci0raGFyZGNvZGVfYWN0aW9uPQotK2lmIHRlc3QgLW4gIiRoYXJk Y29kZV9saWJkaXJfZmxhZ19zcGVjIiB8fAotKyAgIHRlc3QgLW4gIiRydW5wYXRoX3ZhciIgfHwK LSsgICB0ZXN0ICJYJGhhcmRjb2RlX2F1dG9tYXRpYyIgPSAiWHllcyIgOyB0aGVuCi0rCi0rICAj IFdlIGNhbiBoYXJkY29kZSBub24tZXhpc3RlbnQgZGlyZWN0b3JpZXMuCi0rICBpZiB0ZXN0ICIk aGFyZGNvZGVfZGlyZWN0IiAhPSBubyAmJgotKyAgICAgIyBJZiB0aGUgb25seSBtZWNoYW5pc20g dG8gYXZvaWQgaGFyZGNvZGluZyBpcyBzaGxpYnBhdGhfdmFyLCB3ZQotKyAgICAgIyBoYXZlIHRv IHJlbGluaywgb3RoZXJ3aXNlIHdlIG1pZ2h0IGxpbmsgd2l0aCBhbiBpbnN0YWxsZWQgbGlicmFy eQotKyAgICAgIyB3aGVuIHdlIHNob3VsZCBiZSBsaW5raW5nIHdpdGggYSB5ZXQtdG8tYmUtaW5z dGFsbGVkIG9uZQotKyAgICAgIyMgdGVzdCAiJF9MVF9UQUdWQVIoaGFyZGNvZGVfc2hsaWJwYXRo X3ZhciwgKSIgIT0gbm8gJiYKLSsgICAgIHRlc3QgIiRoYXJkY29kZV9taW51c19MIiAhPSBubzsg dGhlbgotKyAgICAjIExpbmtpbmcgYWx3YXlzIGhhcmRjb2RlcyB0aGUgdGVtcG9yYXJ5IGxpYnJh cnkgZGlyZWN0b3J5LgotKyAgICBoYXJkY29kZV9hY3Rpb249cmVsaW5rCi0rICBlbHNlCi0rICAg ICMgV2UgY2FuIGxpbmsgd2l0aG91dCBoYXJkY29kaW5nLCBhbmQgd2UgY2FuIGhhcmRjb2RlIG5v bmV4aXN0aW5nIGRpcnMuCi0rICAgIGhhcmRjb2RlX2FjdGlvbj1pbW1lZGlhdGUKLSsgIGZpCi0r ZWxzZQotKyAgIyBXZSBjYW5ub3QgaGFyZGNvZGUgYW55dGhpbmcsIG9yIGVsc2Ugd2UgY2FuIG9u bHkgaGFyZGNvZGUgZXhpc3RpbmcKLSsgICMgZGlyZWN0b3JpZXMuCi0rICBoYXJkY29kZV9hY3Rp b249dW5zdXBwb3J0ZWQKLStmaQotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6 ICRoYXJkY29kZV9hY3Rpb24iID4mNQotKyRhc19lY2hvICIkaGFyZGNvZGVfYWN0aW9uIiA+JjY7 IH0KLSsKLStpZiB0ZXN0ICIkaGFyZGNvZGVfYWN0aW9uIiA9IHJlbGluayB8fAotKyAgIHRlc3Qg IiRpbmhlcml0X3JwYXRoIiA9IHllczsgdGhlbgotKyAgIyBGYXN0IGluc3RhbGxhdGlvbiBpcyBu b3Qgc3VwcG9ydGVkCi0rICBlbmFibGVfZmFzdF9pbnN0YWxsPW5vCi0rZWxpZiB0ZXN0ICIkc2hs aWJwYXRoX292ZXJyaWRlc19ydW5wYXRoIiA9IHllcyB8fAotKyAgICAgdGVzdCAiJGVuYWJsZV9z aGFyZWQiID0gbm87IHRoZW4KLSsgICMgRmFzdCBpbnN0YWxsYXRpb24gaXMgbm90IG5lY2Vzc2Fy eQotKyAgZW5hYmxlX2Zhc3RfaW5zdGFsbD1uZWVkbGVzcwotK2ZpCi0rCi0rCi0rCi0rCi0rCi0r Ci0rICBpZiB0ZXN0ICJ4JGVuYWJsZV9kbG9wZW4iICE9IHh5ZXM7IHRoZW4KLSsgIGVuYWJsZV9k bG9wZW49dW5rbm93bgotKyAgZW5hYmxlX2Rsb3Blbl9zZWxmPXVua25vd24KLSsgIGVuYWJsZV9k bG9wZW5fc2VsZl9zdGF0aWM9dW5rbm93bgotK2Vsc2UKLSsgIGx0X2N2X2Rsb3Blbj1ubwotKyAg bHRfY3ZfZGxvcGVuX2xpYnM9Ci0rCi0rICBjYXNlICRob3N0X29zIGluCi0rICBiZW9zKikKLSsg ICAgbHRfY3ZfZGxvcGVuPSJsb2FkX2FkZF9vbiIKLSsgICAgbHRfY3ZfZGxvcGVuX2xpYnM9Ci0r ICAgIGx0X2N2X2Rsb3Blbl9zZWxmPXllcwotKyAgICA7OwotKwotKyAgbWluZ3cqIHwgcHczMiog fCBjZWdjYyopCi0rICAgIGx0X2N2X2Rsb3Blbj0iTG9hZExpYnJhcnkiCi0rICAgIGx0X2N2X2Rs b3Blbl9saWJzPQotKyAgICA7OwotKwotKyAgY3lnd2luKikKLSsgICAgbHRfY3ZfZGxvcGVuPSJk bG9wZW4iCi0rICAgIGx0X2N2X2Rsb3Blbl9saWJzPQotKyAgICA7OwotKwotKyAgZGFyd2luKikK LSsgICMgaWYgbGliZGwgaXMgaW5zdGFsbGVkIHdlIG5lZWQgdG8gbGluayBhZ2FpbnN0IGl0Ci0r ICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgZGxvcGVuIGluIC1s ZGwiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIGZvciBkbG9wZW4gaW4gLWxkbC4uLiAiID4m NjsgfQotK2lmIHRlc3QgIiR7YWNfY3ZfbGliX2RsX2Rsb3BlbitzZXR9IiA9IHNldDsgdGhlbgot KyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rICBhY19jaGVja19saWJfc2F2 ZV9MSUJTPSRMSUJTCi0rTElCUz0iLWxkbCAgJExJQlMiCi0rY2F0ID5jb25mdGVzdC4kYWNfZXh0 IDw8X0FDRU9GCi0rLyogY29uZmRlZnMuaC4gICovCi0rX0FDRU9GCi0rY2F0IGNvbmZkZWZzLmgg Pj5jb25mdGVzdC4kYWNfZXh0Ci0rY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotKy8q IGVuZCBjb25mZGVmcy5oLiAgKi8KLSsKLSsvKiBPdmVycmlkZSBhbnkgR0NDIGludGVybmFsIHBy b3RvdHlwZSB0byBhdm9pZCBhbiBlcnJvci4KLSsgICBVc2UgY2hhciBiZWNhdXNlIGludCBtaWdo dCBtYXRjaCB0aGUgcmV0dXJuIHR5cGUgb2YgYSBHQ0MKLSsgICBidWlsdGluIGFuZCB0aGVuIGl0 cyBhcmd1bWVudCBwcm90b3R5cGUgd291bGQgc3RpbGwgYXBwbHkuICAqLwotKyNpZmRlZiBfX2Nw bHVzcGx1cwotK2V4dGVybiAiQyIKLSsjZW5kaWYKLStjaGFyIGRsb3BlbiAoKTsKLStpbnQKLStt YWluICgpCi0rewotK3JldHVybiBkbG9wZW4gKCk7Ci0rICA7Ci0rICByZXR1cm4gMDsKLSt9Ci0r X0FDRU9GCi0rcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdCRhY19leGVleHQKLStp ZiB7IChhY190cnk9IiRhY19saW5rIgotK2Nhc2UgIigoJGFjX3RyeSIgaW4KLSsgICpcIiogfCAq XGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OwotKyAgKikgYWNfdHJ5X2VjaG89JGFj X3RyeTs7Ci0rZXNhYwotK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5POiAkYWNf dHJ5X2VjaG9cIiIKLSskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1Ci0rICAoZXZhbCAiJGFj X2xpbmsiKSAyPmNvbmZ0ZXN0LmVyMQotKyAgYWNfc3RhdHVzPSQ/Ci0rICBncmVwIC12ICdeICor JyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgotKyAgcm0gLWYgY29uZnRlc3QuZXIxCi0rICBj YXQgY29uZnRlc3QuZXJyID4mNQotKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAk YWNfc3RhdHVzIiA+JjUKLSsgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmIHsKLSsJIHRlc3QgLXog IiRhY19jX3dlcnJvcl9mbGFnIiB8fAotKwkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgotKyAgICAg ICB9ICYmIHRlc3QgLXMgY29uZnRlc3QkYWNfZXhlZXh0ICYmIHsKLSsJIHRlc3QgIiRjcm9zc19j b21waWxpbmciID0geWVzIHx8Ci0rCSAkYXNfdGVzdF94IGNvbmZ0ZXN0JGFjX2V4ZWV4dAotKyAg ICAgICB9OyB0aGVuCi0rICBhY19jdl9saWJfZGxfZGxvcGVuPXllcwotK2Vsc2UKLSsgICRhc19l Y2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQotK3NlZCAncy9eL3wgLycgY29u ZnRlc3QuJGFjX2V4dCA+JjUKLSsKLSsJYWNfY3ZfbGliX2RsX2Rsb3Blbj1ubwotK2ZpCi0rCi0r cm0gLXJmIGNvbmZ0ZXN0LmRTWU0KLStybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4k YWNfb2JqZXh0IGNvbmZ0ZXN0X2lwYThfY29uZnRlc3Qub28gXAotKyAgICAgIGNvbmZ0ZXN0JGFj X2V4ZWV4dCBjb25mdGVzdC4kYWNfZXh0Ci0rTElCUz0kYWNfY2hlY2tfbGliX3NhdmVfTElCUwot K2ZpCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2N2X2xpYl9kbF9k bG9wZW4iID4mNQotKyRhc19lY2hvICIkYWNfY3ZfbGliX2RsX2Rsb3BlbiIgPiY2OyB9Ci0raWYg dGVzdCAieCRhY19jdl9saWJfZGxfZGxvcGVuIiA9IHgiInllczsgdGhlbgotKyAgbHRfY3ZfZGxv cGVuPSJkbG9wZW4iIGx0X2N2X2Rsb3Blbl9saWJzPSItbGRsIgotK2Vsc2UKLSsKLSsgICAgbHRf Y3ZfZGxvcGVuPSJkeWxkIgotKyAgICBsdF9jdl9kbG9wZW5fbGlicz0KLSsgICAgbHRfY3ZfZGxv cGVuX3NlbGY9eWVzCi0rCi0rZmkKLSsKLSsgICAgOzsKLSsKLSsgICopCi0rICAgIHsgJGFzX2Vj aG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3Igc2hsX2xvYWQiID4mNQotKyRhc19lY2hv X24gImNoZWNraW5nIGZvciBzaGxfbG9hZC4uLiAiID4mNjsgfQotK2lmIHRlc3QgIiR7YWNfY3Zf ZnVuY19zaGxfbG9hZCtzZXR9IiA9IHNldDsgdGhlbgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkg IiA+JjYKLStlbHNlCi0rICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLSsvKiBjb25m ZGVmcy5oLiAgKi8KLStfQUNFT0YKLStjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQK LStjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0rLyogZW5kIGNvbmZkZWZzLmguICAq LwotKy8qIERlZmluZSBzaGxfbG9hZCB0byBhbiBpbm5vY3VvdXMgdmFyaWFudCwgaW4gY2FzZSA8 bGltaXRzLmg+IGRlY2xhcmVzIHNobF9sb2FkLgotKyAgIEZvciBleGFtcGxlLCBIUC1VWCAxMWkg PGxpbWl0cy5oPiBkZWNsYXJlcyBnZXR0aW1lb2ZkYXkuICAqLwotKyNkZWZpbmUgc2hsX2xvYWQg aW5ub2N1b3VzX3NobF9sb2FkCi0rCi0rLyogU3lzdGVtIGhlYWRlciB0byBkZWZpbmUgX19zdHVi IG1hY3JvcyBhbmQgaG9wZWZ1bGx5IGZldyBwcm90b3R5cGVzLAotKyAgICB3aGljaCBjYW4gY29u ZmxpY3Qgd2l0aCBjaGFyIHNobF9sb2FkICgpOyBiZWxvdy4KLSsgICAgUHJlZmVyIDxsaW1pdHMu aD4gdG8gPGFzc2VydC5oPiBpZiBfX1NURENfXyBpcyBkZWZpbmVkLCBzaW5jZQotKyAgICA8bGlt aXRzLmg+IGV4aXN0cyBldmVuIG9uIGZyZWVzdGFuZGluZyBjb21waWxlcnMuICAqLwotKwotKyNp ZmRlZiBfX1NURENfXwotKyMgaW5jbHVkZSA8bGltaXRzLmg+Ci0rI2Vsc2UKLSsjIGluY2x1ZGUg PGFzc2VydC5oPgotKyNlbmRpZgotKwotKyN1bmRlZiBzaGxfbG9hZAotKwotKy8qIE92ZXJyaWRl IGFueSBHQ0MgaW50ZXJuYWwgcHJvdG90eXBlIHRvIGF2b2lkIGFuIGVycm9yLgotKyAgIFVzZSBj aGFyIGJlY2F1c2UgaW50IG1pZ2h0IG1hdGNoIHRoZSByZXR1cm4gdHlwZSBvZiBhIEdDQwotKyAg IGJ1aWx0aW4gYW5kIHRoZW4gaXRzIGFyZ3VtZW50IHByb3RvdHlwZSB3b3VsZCBzdGlsbCBhcHBs eS4gICovCi0rI2lmZGVmIF9fY3BsdXNwbHVzCi0rZXh0ZXJuICJDIgotKyNlbmRpZgotK2NoYXIg c2hsX2xvYWQgKCk7Ci0rLyogVGhlIEdOVSBDIGxpYnJhcnkgZGVmaW5lcyB0aGlzIGZvciBmdW5j dGlvbnMgd2hpY2ggaXQgaW1wbGVtZW50cwotKyAgICB0byBhbHdheXMgZmFpbCB3aXRoIEVOT1NZ Uy4gIFNvbWUgZnVuY3Rpb25zIGFyZSBhY3R1YWxseSBuYW1lZAotKyAgICBzb21ldGhpbmcgc3Rh cnRpbmcgd2l0aCBfXyBhbmQgdGhlIG5vcm1hbCBuYW1lIGlzIGFuIGFsaWFzLiAgKi8KLSsjaWYg ZGVmaW5lZCBfX3N0dWJfc2hsX2xvYWQgfHwgZGVmaW5lZCBfX3N0dWJfX19zaGxfbG9hZAotK2No b2tlIG1lCi0rI2VuZGlmCi0rCi0raW50Ci0rbWFpbiAoKQotK3sKLStyZXR1cm4gc2hsX2xvYWQg KCk7Ci0rICA7Ci0rICByZXR1cm4gMDsKLSt9Ci0rX0FDRU9GCi0rcm0gLWYgY29uZnRlc3QuJGFj X29iamV4dCBjb25mdGVzdCRhY19leGVleHQKLStpZiB7IChhY190cnk9IiRhY19saW5rIgotK2Nh c2UgIigoJGFjX3RyeSIgaW4KLSsgICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRh Y190cnk7OwotKyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7Ci0rZXNhYwotK2V2YWwgYWNfdHJ5 X2VjaG89IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIKLSskYXNfZWNobyAiJGFj X3RyeV9lY2hvIikgPiY1Ci0rICAoZXZhbCAiJGFjX2xpbmsiKSAyPmNvbmZ0ZXN0LmVyMQotKyAg YWNfc3RhdHVzPSQ/Ci0rICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVy cgotKyAgcm0gLWYgY29uZnRlc3QuZXIxCi0rICBjYXQgY29uZnRlc3QuZXJyID4mNQotKyAgJGFz X2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSsgIChleGl0ICRh Y19zdGF0dXMpOyB9ICYmIHsKLSsJIHRlc3QgLXogIiRhY19jX3dlcnJvcl9mbGFnIiB8fAotKwkg dGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgotKyAgICAgICB9ICYmIHRlc3QgLXMgY29uZnRlc3QkYWNf ZXhlZXh0ICYmIHsKLSsJIHRlc3QgIiRjcm9zc19jb21waWxpbmciID0geWVzIHx8Ci0rCSAkYXNf dGVzdF94IGNvbmZ0ZXN0JGFjX2V4ZWV4dAotKyAgICAgICB9OyB0aGVuCi0rICBhY19jdl9mdW5j X3NobF9sb2FkPXllcwotK2Vsc2UKLSsgICRhc19lY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFt IHdhczoiID4mNQotK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKLSsKLSsJYWNf Y3ZfZnVuY19zaGxfbG9hZD1ubwotK2ZpCi0rCi0rcm0gLXJmIGNvbmZ0ZXN0LmRTWU0KLStybSAt ZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0X2lwYThfY29u ZnRlc3Qub28gXAotKyAgICAgIGNvbmZ0ZXN0JGFjX2V4ZWV4dCBjb25mdGVzdC4kYWNfZXh0Ci0r ZmkKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3ZfZnVuY19zaGxf bG9hZCIgPiY1Ci0rJGFzX2VjaG8gIiRhY19jdl9mdW5jX3NobF9sb2FkIiA+JjY7IH0KLStpZiB0 ZXN0ICJ4JGFjX2N2X2Z1bmNfc2hsX2xvYWQiID0geCIieWVzOyB0aGVuCi0rICBsdF9jdl9kbG9w ZW49InNobF9sb2FkIgotK2Vsc2UKLSsgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVj a2luZyBmb3Igc2hsX2xvYWQgaW4gLWxkbGQiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIGZv ciBzaGxfbG9hZCBpbiAtbGRsZC4uLiAiID4mNjsgfQotK2lmIHRlc3QgIiR7YWNfY3ZfbGliX2Rs ZF9zaGxfbG9hZCtzZXR9IiA9IHNldDsgdGhlbgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+ JjYKLStlbHNlCi0rICBhY19jaGVja19saWJfc2F2ZV9MSUJTPSRMSUJTCi0rTElCUz0iLWxkbGQg ICRMSUJTIgotK2NhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotKy8qIGNvbmZkZWZzLmgu ICAqLwotK19BQ0VPRgotK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAotK2NhdCA+ PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLSsvKiBlbmQgY29uZmRlZnMuaC4gICovCi0rCi0r LyogT3ZlcnJpZGUgYW55IEdDQyBpbnRlcm5hbCBwcm90b3R5cGUgdG8gYXZvaWQgYW4gZXJyb3Iu Ci0rICAgVXNlIGNoYXIgYmVjYXVzZSBpbnQgbWlnaHQgbWF0Y2ggdGhlIHJldHVybiB0eXBlIG9m IGEgR0NDCi0rICAgYnVpbHRpbiBhbmQgdGhlbiBpdHMgYXJndW1lbnQgcHJvdG90eXBlIHdvdWxk IHN0aWxsIGFwcGx5LiAgKi8KLSsjaWZkZWYgX19jcGx1c3BsdXMKLStleHRlcm4gIkMiCi0rI2Vu ZGlmCi0rY2hhciBzaGxfbG9hZCAoKTsKLStpbnQKLSttYWluICgpCi0rewotK3JldHVybiBzaGxf bG9hZCAoKTsKLSsgIDsKLSsgIHJldHVybiAwOwotK30KLStfQUNFT0YKLStybSAtZiBjb25mdGVz dC4kYWNfb2JqZXh0IGNvbmZ0ZXN0JGFjX2V4ZWV4dAotK2lmIHsgKGFjX3RyeT0iJGFjX2xpbmsi Ci0rY2FzZSAiKCgkYWNfdHJ5IiBpbgotKyAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNo bz1cJGFjX3RyeTs7Ci0rICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKLStlc2FjCi0rZXZhbCBh Y190cnlfZWNobz0iXCJcJGFzX21lOiRMSU5FTk86ICRhY190cnlfZWNob1wiIgotKyRhc19lY2hv ICIkYWNfdHJ5X2VjaG8iKSA+JjUKLSsgIChldmFsICIkYWNfbGluayIpIDI+Y29uZnRlc3QuZXIx Ci0rICBhY19zdGF0dXM9JD8KLSsgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRl c3QuZXJyCi0rICBybSAtZiBjb25mdGVzdC5lcjEKLSsgIGNhdCBjb25mdGVzdC5lcnIgPiY1Ci0r ICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotKyAgKGV4 aXQgJGFjX3N0YXR1cyk7IH0gJiYgewotKwkgdGVzdCAteiAiJGFjX2Nfd2Vycm9yX2ZsYWciIHx8 Ci0rCSB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCi0rICAgICAgIH0gJiYgdGVzdCAtcyBjb25mdGVz dCRhY19leGVleHQgJiYgewotKwkgdGVzdCAiJGNyb3NzX2NvbXBpbGluZyIgPSB5ZXMgfHwKLSsJ ICRhc190ZXN0X3ggY29uZnRlc3QkYWNfZXhlZXh0Ci0rICAgICAgIH07IHRoZW4KLSsgIGFjX2N2 X2xpYl9kbGRfc2hsX2xvYWQ9eWVzCi0rZWxzZQotKyAgJGFzX2VjaG8gIiRhc19tZTogZmFpbGVk IHByb2dyYW0gd2FzOiIgPiY1Ci0rc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQot KwotKwlhY19jdl9saWJfZGxkX3NobF9sb2FkPW5vCi0rZmkKLSsKLStybSAtcmYgY29uZnRlc3Qu ZFNZTQotK3JtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRl c3RfaXBhOF9jb25mdGVzdC5vbyBcCi0rICAgICAgY29uZnRlc3QkYWNfZXhlZXh0IGNvbmZ0ZXN0 LiRhY19leHQKLStMSUJTPSRhY19jaGVja19saWJfc2F2ZV9MSUJTCi0rZmkKLSt7ICRhc19lY2hv ICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3ZfbGliX2RsZF9zaGxfbG9hZCIgPiY1Ci0r JGFzX2VjaG8gIiRhY19jdl9saWJfZGxkX3NobF9sb2FkIiA+JjY7IH0KLStpZiB0ZXN0ICJ4JGFj X2N2X2xpYl9kbGRfc2hsX2xvYWQiID0geCIieWVzOyB0aGVuCi0rICBsdF9jdl9kbG9wZW49InNo bF9sb2FkIiBsdF9jdl9kbG9wZW5fbGlicz0iLWxkbGQiCi0rZWxzZQotKyAgeyAkYXNfZWNobyAi JGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciBkbG9wZW4iID4mNQotKyRhc19lY2hvX24gImNo ZWNraW5nIGZvciBkbG9wZW4uLi4gIiA+JjY7IH0KLStpZiB0ZXN0ICIke2FjX2N2X2Z1bmNfZGxv cGVuK3NldH0iID0gc2V0OyB0aGVuCi0rICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vs c2UKLSsgIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotKy8qIGNvbmZkZWZzLmguICAq LwotK19BQ0VPRgotK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAotK2NhdCA+PmNv bmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLSsvKiBlbmQgY29uZmRlZnMuaC4gICovCi0rLyogRGVm aW5lIGRsb3BlbiB0byBhbiBpbm5vY3VvdXMgdmFyaWFudCwgaW4gY2FzZSA8bGltaXRzLmg+IGRl Y2xhcmVzIGRsb3Blbi4KLSsgICBGb3IgZXhhbXBsZSwgSFAtVVggMTFpIDxsaW1pdHMuaD4gZGVj bGFyZXMgZ2V0dGltZW9mZGF5LiAgKi8KLSsjZGVmaW5lIGRsb3BlbiBpbm5vY3VvdXNfZGxvcGVu Ci0rCi0rLyogU3lzdGVtIGhlYWRlciB0byBkZWZpbmUgX19zdHViIG1hY3JvcyBhbmQgaG9wZWZ1 bGx5IGZldyBwcm90b3R5cGVzLAotKyAgICB3aGljaCBjYW4gY29uZmxpY3Qgd2l0aCBjaGFyIGRs b3BlbiAoKTsgYmVsb3cuCi0rICAgIFByZWZlciA8bGltaXRzLmg+IHRvIDxhc3NlcnQuaD4gaWYg X19TVERDX18gaXMgZGVmaW5lZCwgc2luY2UKLSsgICAgPGxpbWl0cy5oPiBleGlzdHMgZXZlbiBv biBmcmVlc3RhbmRpbmcgY29tcGlsZXJzLiAgKi8KLSsKLSsjaWZkZWYgX19TVERDX18KLSsjIGlu Y2x1ZGUgPGxpbWl0cy5oPgotKyNlbHNlCi0rIyBpbmNsdWRlIDxhc3NlcnQuaD4KLSsjZW5kaWYK LSsKLSsjdW5kZWYgZGxvcGVuCi0rCi0rLyogT3ZlcnJpZGUgYW55IEdDQyBpbnRlcm5hbCBwcm90 b3R5cGUgdG8gYXZvaWQgYW4gZXJyb3IuCi0rICAgVXNlIGNoYXIgYmVjYXVzZSBpbnQgbWlnaHQg bWF0Y2ggdGhlIHJldHVybiB0eXBlIG9mIGEgR0NDCi0rICAgYnVpbHRpbiBhbmQgdGhlbiBpdHMg YXJndW1lbnQgcHJvdG90eXBlIHdvdWxkIHN0aWxsIGFwcGx5LiAgKi8KLSsjaWZkZWYgX19jcGx1 c3BsdXMKLStleHRlcm4gIkMiCi0rI2VuZGlmCi0rY2hhciBkbG9wZW4gKCk7Ci0rLyogVGhlIEdO VSBDIGxpYnJhcnkgZGVmaW5lcyB0aGlzIGZvciBmdW5jdGlvbnMgd2hpY2ggaXQgaW1wbGVtZW50 cwotKyAgICB0byBhbHdheXMgZmFpbCB3aXRoIEVOT1NZUy4gIFNvbWUgZnVuY3Rpb25zIGFyZSBh Y3R1YWxseSBuYW1lZAotKyAgICBzb21ldGhpbmcgc3RhcnRpbmcgd2l0aCBfXyBhbmQgdGhlIG5v cm1hbCBuYW1lIGlzIGFuIGFsaWFzLiAgKi8KLSsjaWYgZGVmaW5lZCBfX3N0dWJfZGxvcGVuIHx8 IGRlZmluZWQgX19zdHViX19fZGxvcGVuCi0rY2hva2UgbWUKLSsjZW5kaWYKLSsKLStpbnQKLStt YWluICgpCi0rewotK3JldHVybiBkbG9wZW4gKCk7Ci0rICA7Ci0rICByZXR1cm4gMDsKLSt9Ci0r X0FDRU9GCi0rcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdCRhY19leGVleHQKLStp ZiB7IChhY190cnk9IiRhY19saW5rIgotK2Nhc2UgIigoJGFjX3RyeSIgaW4KLSsgICpcIiogfCAq XGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OwotKyAgKikgYWNfdHJ5X2VjaG89JGFj X3RyeTs7Ci0rZXNhYwotK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5POiAkYWNf dHJ5X2VjaG9cIiIKLSskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1Ci0rICAoZXZhbCAiJGFj X2xpbmsiKSAyPmNvbmZ0ZXN0LmVyMQotKyAgYWNfc3RhdHVzPSQ/Ci0rICBncmVwIC12ICdeICor JyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgotKyAgcm0gLWYgY29uZnRlc3QuZXIxCi0rICBj YXQgY29uZnRlc3QuZXJyID4mNQotKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAk YWNfc3RhdHVzIiA+JjUKLSsgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmIHsKLSsJIHRlc3QgLXog IiRhY19jX3dlcnJvcl9mbGFnIiB8fAotKwkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgotKyAgICAg ICB9ICYmIHRlc3QgLXMgY29uZnRlc3QkYWNfZXhlZXh0ICYmIHsKLSsJIHRlc3QgIiRjcm9zc19j b21waWxpbmciID0geWVzIHx8Ci0rCSAkYXNfdGVzdF94IGNvbmZ0ZXN0JGFjX2V4ZWV4dAotKyAg ICAgICB9OyB0aGVuCi0rICBhY19jdl9mdW5jX2Rsb3Blbj15ZXMKLStlbHNlCi0rICAkYXNfZWNo byAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLStzZWQgJ3MvXi98IC8nIGNvbmZ0 ZXN0LiRhY19leHQgPiY1Ci0rCi0rCWFjX2N2X2Z1bmNfZGxvcGVuPW5vCi0rZmkKLSsKLStybSAt cmYgY29uZnRlc3QuZFNZTQotK3JtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19v YmpleHQgY29uZnRlc3RfaXBhOF9jb25mdGVzdC5vbyBcCi0rICAgICAgY29uZnRlc3QkYWNfZXhl ZXh0IGNvbmZ0ZXN0LiRhY19leHQKLStmaQotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBy ZXN1bHQ6ICRhY19jdl9mdW5jX2Rsb3BlbiIgPiY1Ci0rJGFzX2VjaG8gIiRhY19jdl9mdW5jX2Rs b3BlbiIgPiY2OyB9Ci0raWYgdGVzdCAieCRhY19jdl9mdW5jX2Rsb3BlbiIgPSB4IiJ5ZXM7IHRo ZW4KLSsgIGx0X2N2X2Rsb3Blbj0iZGxvcGVuIgotK2Vsc2UKLSsgIHsgJGFzX2VjaG8gIiRhc19t ZTokTElORU5POiBjaGVja2luZyBmb3IgZGxvcGVuIGluIC1sZGwiID4mNQotKyRhc19lY2hvX24g ImNoZWNraW5nIGZvciBkbG9wZW4gaW4gLWxkbC4uLiAiID4mNjsgfQotK2lmIHRlc3QgIiR7YWNf Y3ZfbGliX2RsX2Rsb3BlbitzZXR9IiA9IHNldDsgdGhlbgotKyAgJGFzX2VjaG9fbiAiKGNhY2hl ZCkgIiA+JjYKLStlbHNlCi0rICBhY19jaGVja19saWJfc2F2ZV9MSUJTPSRMSUJTCi0rTElCUz0i LWxkbCAgJExJQlMiCi0rY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0rLyogY29uZmRl ZnMuaC4gICovCi0rX0FDRU9GCi0rY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Ci0r Y2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8K LSsKLSsvKiBPdmVycmlkZSBhbnkgR0NDIGludGVybmFsIHByb3RvdHlwZSB0byBhdm9pZCBhbiBl cnJvci4KLSsgICBVc2UgY2hhciBiZWNhdXNlIGludCBtaWdodCBtYXRjaCB0aGUgcmV0dXJuIHR5 cGUgb2YgYSBHQ0MKLSsgICBidWlsdGluIGFuZCB0aGVuIGl0cyBhcmd1bWVudCBwcm90b3R5cGUg d291bGQgc3RpbGwgYXBwbHkuICAqLwotKyNpZmRlZiBfX2NwbHVzcGx1cwotK2V4dGVybiAiQyIK LSsjZW5kaWYKLStjaGFyIGRsb3BlbiAoKTsKLStpbnQKLSttYWluICgpCi0rewotK3JldHVybiBk bG9wZW4gKCk7Ci0rICA7Ci0rICByZXR1cm4gMDsKLSt9Ci0rX0FDRU9GCi0rcm0gLWYgY29uZnRl c3QuJGFjX29iamV4dCBjb25mdGVzdCRhY19leGVleHQKLStpZiB7IChhY190cnk9IiRhY19saW5r IgotK2Nhc2UgIigoJGFjX3RyeSIgaW4KLSsgICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2Vj aG89XCRhY190cnk7OwotKyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7Ci0rZXNhYwotK2V2YWwg YWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIKLSskYXNfZWNo byAiJGFjX3RyeV9lY2hvIikgPiY1Ci0rICAoZXZhbCAiJGFjX2xpbmsiKSAyPmNvbmZ0ZXN0LmVy MQotKyAgYWNfc3RhdHVzPSQ/Ci0rICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0 ZXN0LmVycgotKyAgcm0gLWYgY29uZnRlc3QuZXIxCi0rICBjYXQgY29uZnRlc3QuZXJyID4mNQot KyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSsgIChl eGl0ICRhY19zdGF0dXMpOyB9ICYmIHsKLSsJIHRlc3QgLXogIiRhY19jX3dlcnJvcl9mbGFnIiB8 fAotKwkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgotKyAgICAgICB9ICYmIHRlc3QgLXMgY29uZnRl c3QkYWNfZXhlZXh0ICYmIHsKLSsJIHRlc3QgIiRjcm9zc19jb21waWxpbmciID0geWVzIHx8Ci0r CSAkYXNfdGVzdF94IGNvbmZ0ZXN0JGFjX2V4ZWV4dAotKyAgICAgICB9OyB0aGVuCi0rICBhY19j dl9saWJfZGxfZGxvcGVuPXllcwotK2Vsc2UKLSsgICRhc19lY2hvICIkYXNfbWU6IGZhaWxlZCBw cm9ncmFtIHdhczoiID4mNQotK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKLSsK LSsJYWNfY3ZfbGliX2RsX2Rsb3Blbj1ubwotK2ZpCi0rCi0rcm0gLXJmIGNvbmZ0ZXN0LmRTWU0K LStybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0X2lw YThfY29uZnRlc3Qub28gXAotKyAgICAgIGNvbmZ0ZXN0JGFjX2V4ZWV4dCBjb25mdGVzdC4kYWNf ZXh0Ci0rTElCUz0kYWNfY2hlY2tfbGliX3NhdmVfTElCUwotK2ZpCi0reyAkYXNfZWNobyAiJGFz X21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2N2X2xpYl9kbF9kbG9wZW4iID4mNQotKyRhc19lY2hv ICIkYWNfY3ZfbGliX2RsX2Rsb3BlbiIgPiY2OyB9Ci0raWYgdGVzdCAieCRhY19jdl9saWJfZGxf ZGxvcGVuIiA9IHgiInllczsgdGhlbgotKyAgbHRfY3ZfZGxvcGVuPSJkbG9wZW4iIGx0X2N2X2Rs b3Blbl9saWJzPSItbGRsIgotK2Vsc2UKLSsgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBj aGVja2luZyBmb3IgZGxvcGVuIGluIC1sc3ZsZCIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcg Zm9yIGRsb3BlbiBpbiAtbHN2bGQuLi4gIiA+JjY7IH0KLStpZiB0ZXN0ICIke2FjX2N2X2xpYl9z dmxkX2Rsb3BlbitzZXR9IiA9IHNldDsgdGhlbgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+ JjYKLStlbHNlCi0rICBhY19jaGVja19saWJfc2F2ZV9MSUJTPSRMSUJTCi0rTElCUz0iLWxzdmxk ICAkTElCUyIKLStjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLSsvKiBjb25mZGVmcy5o LiAgKi8KLStfQUNFT0YKLStjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKLStjYXQg Pj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0rLyogZW5kIGNvbmZkZWZzLmguICAqLwotKwot Ky8qIE92ZXJyaWRlIGFueSBHQ0MgaW50ZXJuYWwgcHJvdG90eXBlIHRvIGF2b2lkIGFuIGVycm9y LgotKyAgIFVzZSBjaGFyIGJlY2F1c2UgaW50IG1pZ2h0IG1hdGNoIHRoZSByZXR1cm4gdHlwZSBv ZiBhIEdDQwotKyAgIGJ1aWx0aW4gYW5kIHRoZW4gaXRzIGFyZ3VtZW50IHByb3RvdHlwZSB3b3Vs ZCBzdGlsbCBhcHBseS4gICovCi0rI2lmZGVmIF9fY3BsdXNwbHVzCi0rZXh0ZXJuICJDIgotKyNl bmRpZgotK2NoYXIgZGxvcGVuICgpOwotK2ludAotK21haW4gKCkKLSt7Ci0rcmV0dXJuIGRsb3Bl biAoKTsKLSsgIDsKLSsgIHJldHVybiAwOwotK30KLStfQUNFT0YKLStybSAtZiBjb25mdGVzdC4k YWNfb2JqZXh0IGNvbmZ0ZXN0JGFjX2V4ZWV4dAotK2lmIHsgKGFjX3RyeT0iJGFjX2xpbmsiCi0r Y2FzZSAiKCgkYWNfdHJ5IiBpbgotKyAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1c JGFjX3RyeTs7Ci0rICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKLStlc2FjCi0rZXZhbCBhY190 cnlfZWNobz0iXCJcJGFzX21lOiRMSU5FTk86ICRhY190cnlfZWNob1wiIgotKyRhc19lY2hvICIk YWNfdHJ5X2VjaG8iKSA+JjUKLSsgIChldmFsICIkYWNfbGluayIpIDI+Y29uZnRlc3QuZXIxCi0r ICBhY19zdGF0dXM9JD8KLSsgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3Qu ZXJyCi0rICBybSAtZiBjb25mdGVzdC5lcjEKLSsgIGNhdCBjb25mdGVzdC5lcnIgPiY1Ci0rICAk YXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotKyAgKGV4aXQg JGFjX3N0YXR1cyk7IH0gJiYgewotKwkgdGVzdCAteiAiJGFjX2Nfd2Vycm9yX2ZsYWciIHx8Ci0r CSB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCi0rICAgICAgIH0gJiYgdGVzdCAtcyBjb25mdGVzdCRh Y19leGVleHQgJiYgewotKwkgdGVzdCAiJGNyb3NzX2NvbXBpbGluZyIgPSB5ZXMgfHwKLSsJICRh c190ZXN0X3ggY29uZnRlc3QkYWNfZXhlZXh0Ci0rICAgICAgIH07IHRoZW4KLSsgIGFjX2N2X2xp Yl9zdmxkX2Rsb3Blbj15ZXMKLStlbHNlCi0rICAkYXNfZWNobyAiJGFzX21lOiBmYWlsZWQgcHJv Z3JhbSB3YXM6IiA+JjUKLStzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1Ci0rCi0r CWFjX2N2X2xpYl9zdmxkX2Rsb3Blbj1ubwotK2ZpCi0rCi0rcm0gLXJmIGNvbmZ0ZXN0LmRTWU0K LStybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0X2lw YThfY29uZnRlc3Qub28gXAotKyAgICAgIGNvbmZ0ZXN0JGFjX2V4ZWV4dCBjb25mdGVzdC4kYWNf ZXh0Ci0rTElCUz0kYWNfY2hlY2tfbGliX3NhdmVfTElCUwotK2ZpCi0reyAkYXNfZWNobyAiJGFz X21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2N2X2xpYl9zdmxkX2Rsb3BlbiIgPiY1Ci0rJGFzX2Vj aG8gIiRhY19jdl9saWJfc3ZsZF9kbG9wZW4iID4mNjsgfQotK2lmIHRlc3QgIngkYWNfY3ZfbGli X3N2bGRfZGxvcGVuIiA9IHgiInllczsgdGhlbgotKyAgbHRfY3ZfZGxvcGVuPSJkbG9wZW4iIGx0 X2N2X2Rsb3Blbl9saWJzPSItbHN2bGQiCi0rZWxzZQotKyAgeyAkYXNfZWNobyAiJGFzX21lOiRM SU5FTk86IGNoZWNraW5nIGZvciBkbGRfbGluayBpbiAtbGRsZCIgPiY1Ci0rJGFzX2VjaG9fbiAi Y2hlY2tpbmcgZm9yIGRsZF9saW5rIGluIC1sZGxkLi4uICIgPiY2OyB9Ci0raWYgdGVzdCAiJHth Y19jdl9saWJfZGxkX2RsZF9saW5rK3NldH0iID0gc2V0OyB0aGVuCi0rICAkYXNfZWNob19uICIo Y2FjaGVkKSAiID4mNgotK2Vsc2UKLSsgIGFjX2NoZWNrX2xpYl9zYXZlX0xJQlM9JExJQlMKLStM SUJTPSItbGRsZCAgJExJQlMiCi0rY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0rLyog Y29uZmRlZnMuaC4gICovCi0rX0FDRU9GCi0rY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNf ZXh0Ci0rY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotKy8qIGVuZCBjb25mZGVmcy5o LiAgKi8KLSsKLSsvKiBPdmVycmlkZSBhbnkgR0NDIGludGVybmFsIHByb3RvdHlwZSB0byBhdm9p ZCBhbiBlcnJvci4KLSsgICBVc2UgY2hhciBiZWNhdXNlIGludCBtaWdodCBtYXRjaCB0aGUgcmV0 dXJuIHR5cGUgb2YgYSBHQ0MKLSsgICBidWlsdGluIGFuZCB0aGVuIGl0cyBhcmd1bWVudCBwcm90 b3R5cGUgd291bGQgc3RpbGwgYXBwbHkuICAqLwotKyNpZmRlZiBfX2NwbHVzcGx1cwotK2V4dGVy biAiQyIKLSsjZW5kaWYKLStjaGFyIGRsZF9saW5rICgpOwotK2ludAotK21haW4gKCkKLSt7Ci0r cmV0dXJuIGRsZF9saW5rICgpOwotKyAgOwotKyAgcmV0dXJuIDA7Ci0rfQotK19BQ0VPRgotK3Jt IC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QkYWNfZXhlZXh0Ci0raWYgeyAoYWNfdHJ5 PSIkYWNfbGluayIKLStjYXNlICIoKCRhY190cnkiIGluCi0rICAqXCIqIHwgKlxgKiB8ICpcXCop IGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKLSsgICopIGFjX3RyeV9lY2hvPSRhY190cnk7OwotK2Vz YWMKLStldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIi Ci0rJGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4mNQotKyAgKGV2YWwgIiRhY19saW5rIikgMj5j b25mdGVzdC5lcjEKLSsgIGFjX3N0YXR1cz0kPwotKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3Qu ZXIxID5jb25mdGVzdC5lcnIKLSsgIHJtIC1mIGNvbmZ0ZXN0LmVyMQotKyAgY2F0IGNvbmZ0ZXN0 LmVyciA+JjUKLSsgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIg PiY1Ci0rICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJiB7Ci0rCSB0ZXN0IC16ICIkYWNfY193ZXJy b3JfZmxhZyIgfHwKLSsJIHRlc3QgISAtcyBjb25mdGVzdC5lcnIKLSsgICAgICAgfSAmJiB0ZXN0 IC1zIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAmJiB7Ci0rCSB0ZXN0ICIkY3Jvc3NfY29tcGlsaW5nIiA9 IHllcyB8fAotKwkgJGFzX3Rlc3RfeCBjb25mdGVzdCRhY19leGVleHQKLSsgICAgICAgfTsgdGhl bgotKyAgYWNfY3ZfbGliX2RsZF9kbGRfbGluaz15ZXMKLStlbHNlCi0rICAkYXNfZWNobyAiJGFz X21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLStzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRh Y19leHQgPiY1Ci0rCi0rCWFjX2N2X2xpYl9kbGRfZGxkX2xpbms9bm8KLStmaQotKwotK3JtIC1y ZiBjb25mdGVzdC5kU1lNCi0rcm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29i amV4dCBjb25mdGVzdF9pcGE4X2NvbmZ0ZXN0Lm9vIFwKLSsgICAgICBjb25mdGVzdCRhY19leGVl eHQgY29uZnRlc3QuJGFjX2V4dAotK0xJQlM9JGFjX2NoZWNrX2xpYl9zYXZlX0xJQlMKLStmaQot K3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19jdl9saWJfZGxkX2RsZF9s aW5rIiA+JjUKLSskYXNfZWNobyAiJGFjX2N2X2xpYl9kbGRfZGxkX2xpbmsiID4mNjsgfQotK2lm IHRlc3QgIngkYWNfY3ZfbGliX2RsZF9kbGRfbGluayIgPSB4IiJ5ZXM7IHRoZW4KLSsgIGx0X2N2 X2Rsb3Blbj0iZGxkX2xpbmsiIGx0X2N2X2Rsb3Blbl9saWJzPSItbGRsZCIKLStmaQotKwotKwot K2ZpCi0rCi0rCi0rZmkKLSsKLSsKLStmaQotKwotKwotK2ZpCi0rCi0rCi0rZmkKLSsKLSsgICAg OzsKLSsgIGVzYWMKLSsKLSsgIGlmIHRlc3QgIngkbHRfY3ZfZGxvcGVuIiAhPSB4bm87IHRoZW4K LSsgICAgZW5hYmxlX2Rsb3Blbj15ZXMKLSsgIGVsc2UKLSsgICAgZW5hYmxlX2Rsb3Blbj1ubwot KyAgZmkKLSsKLSsgIGNhc2UgJGx0X2N2X2Rsb3BlbiBpbgotKyAgZGxvcGVuKQotKyAgICBzYXZl X0NQUEZMQUdTPSIkQ1BQRkxBR1MiCi0rICAgIHRlc3QgIngkYWNfY3ZfaGVhZGVyX2RsZmNuX2gi ID0geHllcyAmJiBDUFBGTEFHUz0iJENQUEZMQUdTIC1ESEFWRV9ETEZDTl9IIgotKwotKyAgICBz YXZlX0xERkxBR1M9IiRMREZMQUdTIgotKyAgICB3bD0kbHRfcHJvZ19jb21waWxlcl93bCBldmFs IExERkxBR1M9XCJcJExERkxBR1MgJGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlY1wiCi0rCi0rICAg IHNhdmVfTElCUz0iJExJQlMiCi0rICAgIExJQlM9IiRsdF9jdl9kbG9wZW5fbGlicyAkTElCUyIK LSsKLSsgICAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIHdoZXRoZXIgYSBw cm9ncmFtIGNhbiBkbG9wZW4gaXRzZWxmIiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyB3aGV0 aGVyIGEgcHJvZ3JhbSBjYW4gZGxvcGVuIGl0c2VsZi4uLiAiID4mNjsgfQotK2lmIHRlc3QgIiR7 bHRfY3ZfZGxvcGVuX3NlbGYrc2V0fSIgPSBzZXQ7IHRoZW4KLSsgICRhc19lY2hvX24gIihjYWNo ZWQpICIgPiY2Ci0rZWxzZQotKyAgCSAgaWYgdGVzdCAiJGNyb3NzX2NvbXBpbGluZyIgPSB5ZXM7 IHRoZW4gOgotKyAgbHRfY3ZfZGxvcGVuX3NlbGY9Y3Jvc3MKLStlbHNlCi0rICBsdF9kbHVua25v d249MDsgbHRfZGxub191c2NvcmU9MTsgbHRfZGxuZWVkX3VzY29yZT0yCi0rICBsdF9zdGF0dXM9 JGx0X2RsdW5rbm93bgotKyAgY2F0ID4gY29uZnRlc3QuJGFjX2V4dCA8PF9MVF9FT0YKLSsjbGlu ZSAxMjU4NCAiY29uZmlndXJlIgotKyNpbmNsdWRlICJjb25mZGVmcy5oIgotKwotKyNpZiBIQVZF X0RMRkNOX0gKLSsjaW5jbHVkZSA8ZGxmY24uaD4KLSsjZW5kaWYKLSsKLSsjaW5jbHVkZSA8c3Rk aW8uaD4KLSsKLSsjaWZkZWYgUlRMRF9HTE9CQUwKLSsjICBkZWZpbmUgTFRfRExHTE9CQUwJCVJU TERfR0xPQkFMCi0rI2Vsc2UKLSsjICBpZmRlZiBETF9HTE9CQUwKLSsjICAgIGRlZmluZSBMVF9E TEdMT0JBTAkJRExfR0xPQkFMCi0rIyAgZWxzZQotKyMgICAgZGVmaW5lIExUX0RMR0xPQkFMCQkw Ci0rIyAgZW5kaWYKLSsjZW5kaWYKLSsKLSsvKiBXZSBtYXkgaGF2ZSB0byBkZWZpbmUgTFRfRExM QVpZX09SX05PVyBpbiB0aGUgY29tbWFuZCBsaW5lIGlmIHdlCi0rICAgZmluZCBvdXQgaXQgZG9l cyBub3Qgd29yayBpbiBzb21lIHBsYXRmb3JtLiAqLwotKyNpZm5kZWYgTFRfRExMQVpZX09SX05P VwotKyMgIGlmZGVmIFJUTERfTEFaWQotKyMgICAgZGVmaW5lIExUX0RMTEFaWV9PUl9OT1cJCVJU TERfTEFaWQotKyMgIGVsc2UKLSsjICAgIGlmZGVmIERMX0xBWlkKLSsjICAgICAgZGVmaW5lIExU X0RMTEFaWV9PUl9OT1cJCURMX0xBWlkKLSsjICAgIGVsc2UKLSsjICAgICAgaWZkZWYgUlRMRF9O T1cKLSsjICAgICAgICBkZWZpbmUgTFRfRExMQVpZX09SX05PVwlSVExEX05PVwotKyMgICAgICBl bHNlCi0rIyAgICAgICAgaWZkZWYgRExfTk9XCi0rIyAgICAgICAgICBkZWZpbmUgTFRfRExMQVpZ X09SX05PVwlETF9OT1cKLSsjICAgICAgICBlbHNlCi0rIyAgICAgICAgICBkZWZpbmUgTFRfRExM QVpZX09SX05PVwkwCi0rIyAgICAgICAgZW5kaWYKLSsjICAgICAgZW5kaWYKLSsjICAgIGVuZGlm Ci0rIyAgZW5kaWYKLSsjZW5kaWYKLSsKLSt2b2lkIGZub3JkKCkgeyBpbnQgaT00Mjt9Ci0raW50 IG1haW4gKCkKLSt7Ci0rICB2b2lkICpzZWxmID0gZGxvcGVuICgwLCBMVF9ETEdMT0JBTHxMVF9E TExBWllfT1JfTk9XKTsKLSsgIGludCBzdGF0dXMgPSAkbHRfZGx1bmtub3duOwotKwotKyAgaWYg KHNlbGYpCi0rICAgIHsKLSsgICAgICBpZiAoZGxzeW0gKHNlbGYsImZub3JkIikpICAgICAgIHN0 YXR1cyA9ICRsdF9kbG5vX3VzY29yZTsKLSsgICAgICBlbHNlIGlmIChkbHN5bSggc2VsZiwiX2Zu b3JkIikpIHN0YXR1cyA9ICRsdF9kbG5lZWRfdXNjb3JlOwotKyAgICAgIC8qIGRsY2xvc2UgKHNl bGYpOyAqLwotKyAgICB9Ci0rICBlbHNlCi0rICAgIHB1dHMgKGRsZXJyb3IgKCkpOwotKwotKyAg cmV0dXJuIHN0YXR1czsKLSt9Ci0rX0xUX0VPRgotKyAgaWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6 JExJTkVOTzogXCIkYWNfbGlua1wiIikgPiY1Ci0rICAoZXZhbCAkYWNfbGluaykgMj4mNQotKyAg YWNfc3RhdHVzPSQ/Ci0rICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0 dXMiID4mNQotKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYgdGVzdCAtcyBjb25mdGVzdCR7YWNf ZXhlZXh0fSAyPi9kZXYvbnVsbDsgdGhlbgotKyAgICAoLi9jb25mdGVzdDsgZXhpdDsgKSA+JjUg Mj4vZGV2L251bGwKLSsgICAgbHRfc3RhdHVzPSQ/Ci0rICAgIGNhc2UgeCRsdF9zdGF0dXMgaW4K LSsgICAgICB4JGx0X2Rsbm9fdXNjb3JlKSBsdF9jdl9kbG9wZW5fc2VsZj15ZXMgOzsKLSsgICAg ICB4JGx0X2RsbmVlZF91c2NvcmUpIGx0X2N2X2Rsb3Blbl9zZWxmPXllcyA7OwotKyAgICAgIHgk bHRfZGx1bmtub3dufHgqKSBsdF9jdl9kbG9wZW5fc2VsZj1ubyA7OwotKyAgICBlc2FjCi0rICBl bHNlIDoKLSsgICAgIyBjb21waWxhdGlvbiBmYWlsZWQKLSsgICAgbHRfY3ZfZGxvcGVuX3NlbGY9 bm8KLSsgIGZpCi0rZmkKLStybSAtZnIgY29uZnRlc3QqCi0rCi0rCi0rZmkKLSt7ICRhc19lY2hv ICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkbHRfY3ZfZGxvcGVuX3NlbGYiID4mNQotKyRhc19l Y2hvICIkbHRfY3ZfZGxvcGVuX3NlbGYiID4mNjsgfQotKwotKyAgICBpZiB0ZXN0ICJ4JGx0X2N2 X2Rsb3Blbl9zZWxmIiA9IHh5ZXM7IHRoZW4KLSsgICAgICB3bD0kbHRfcHJvZ19jb21waWxlcl93 bCBldmFsIExERkxBR1M9XCJcJExERkxBR1MgJGx0X3Byb2dfY29tcGlsZXJfc3RhdGljXCIKLSsg ICAgICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgd2hldGhlciBhIHN0YXRp Y2FsbHkgbGlua2VkIHByb2dyYW0gY2FuIGRsb3BlbiBpdHNlbGYiID4mNQotKyRhc19lY2hvX24g ImNoZWNraW5nIHdoZXRoZXIgYSBzdGF0aWNhbGx5IGxpbmtlZCBwcm9ncmFtIGNhbiBkbG9wZW4g aXRzZWxmLi4uICIgPiY2OyB9Ci0raWYgdGVzdCAiJHtsdF9jdl9kbG9wZW5fc2VsZl9zdGF0aWMr c2V0fSIgPSBzZXQ7IHRoZW4KLSsgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci0rZWxzZQot KyAgCSAgaWYgdGVzdCAiJGNyb3NzX2NvbXBpbGluZyIgPSB5ZXM7IHRoZW4gOgotKyAgbHRfY3Zf ZGxvcGVuX3NlbGZfc3RhdGljPWNyb3NzCi0rZWxzZQotKyAgbHRfZGx1bmtub3duPTA7IGx0X2Rs bm9fdXNjb3JlPTE7IGx0X2RsbmVlZF91c2NvcmU9MgotKyAgbHRfc3RhdHVzPSRsdF9kbHVua25v d24KLSsgIGNhdCA+IGNvbmZ0ZXN0LiRhY19leHQgPDxfTFRfRU9GCi0rI2xpbmUgMTI2ODAgImNv bmZpZ3VyZSIKLSsjaW5jbHVkZSAiY29uZmRlZnMuaCIKLSsKLSsjaWYgSEFWRV9ETEZDTl9ICi0r I2luY2x1ZGUgPGRsZmNuLmg+Ci0rI2VuZGlmCi0rCi0rI2luY2x1ZGUgPHN0ZGlvLmg+Ci0rCi0r I2lmZGVmIFJUTERfR0xPQkFMCi0rIyAgZGVmaW5lIExUX0RMR0xPQkFMCQlSVExEX0dMT0JBTAot KyNlbHNlCi0rIyAgaWZkZWYgRExfR0xPQkFMCi0rIyAgICBkZWZpbmUgTFRfRExHTE9CQUwJCURM X0dMT0JBTAotKyMgIGVsc2UKLSsjICAgIGRlZmluZSBMVF9ETEdMT0JBTAkJMAotKyMgIGVuZGlm Ci0rI2VuZGlmCi0rCi0rLyogV2UgbWF5IGhhdmUgdG8gZGVmaW5lIExUX0RMTEFaWV9PUl9OT1cg aW4gdGhlIGNvbW1hbmQgbGluZSBpZiB3ZQotKyAgIGZpbmQgb3V0IGl0IGRvZXMgbm90IHdvcmsg aW4gc29tZSBwbGF0Zm9ybS4gKi8KLSsjaWZuZGVmIExUX0RMTEFaWV9PUl9OT1cKLSsjICBpZmRl ZiBSVExEX0xBWlkKLSsjICAgIGRlZmluZSBMVF9ETExBWllfT1JfTk9XCQlSVExEX0xBWlkKLSsj ICBlbHNlCi0rIyAgICBpZmRlZiBETF9MQVpZCi0rIyAgICAgIGRlZmluZSBMVF9ETExBWllfT1Jf Tk9XCQlETF9MQVpZCi0rIyAgICBlbHNlCi0rIyAgICAgIGlmZGVmIFJUTERfTk9XCi0rIyAgICAg ICAgZGVmaW5lIExUX0RMTEFaWV9PUl9OT1cJUlRMRF9OT1cKLSsjICAgICAgZWxzZQotKyMgICAg ICAgIGlmZGVmIERMX05PVwotKyMgICAgICAgICAgZGVmaW5lIExUX0RMTEFaWV9PUl9OT1cJRExf Tk9XCi0rIyAgICAgICAgZWxzZQotKyMgICAgICAgICAgZGVmaW5lIExUX0RMTEFaWV9PUl9OT1cJ MAotKyMgICAgICAgIGVuZGlmCi0rIyAgICAgIGVuZGlmCi0rIyAgICBlbmRpZgotKyMgIGVuZGlm Ci0rI2VuZGlmCi0rCi0rdm9pZCBmbm9yZCgpIHsgaW50IGk9NDI7fQotK2ludCBtYWluICgpCi0r ewotKyAgdm9pZCAqc2VsZiA9IGRsb3BlbiAoMCwgTFRfRExHTE9CQUx8TFRfRExMQVpZX09SX05P Vyk7Ci0rICBpbnQgc3RhdHVzID0gJGx0X2RsdW5rbm93bjsKLSsKLSsgIGlmIChzZWxmKQotKyAg ICB7Ci0rICAgICAgaWYgKGRsc3ltIChzZWxmLCJmbm9yZCIpKSAgICAgICBzdGF0dXMgPSAkbHRf ZGxub191c2NvcmU7Ci0rICAgICAgZWxzZSBpZiAoZGxzeW0oIHNlbGYsIl9mbm9yZCIpKSBzdGF0 dXMgPSAkbHRfZGxuZWVkX3VzY29yZTsKLSsgICAgICAvKiBkbGNsb3NlIChzZWxmKTsgKi8KLSsg ICAgfQotKyAgZWxzZQotKyAgICBwdXRzIChkbGVycm9yICgpKTsKLSsKLSsgIHJldHVybiBzdGF0 dXM7Ci0rfQotK19MVF9FT0YKLSsgIGlmIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwi JGFjX2xpbmtcIiIpID4mNQotKyAgKGV2YWwgJGFjX2xpbmspIDI+JjUKLSsgIGFjX3N0YXR1cz0k PwotKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSsg IChleGl0ICRhY19zdGF0dXMpOyB9ICYmIHRlc3QgLXMgY29uZnRlc3Qke2FjX2V4ZWV4dH0gMj4v ZGV2L251bGw7IHRoZW4KLSsgICAgKC4vY29uZnRlc3Q7IGV4aXQ7ICkgPiY1IDI+L2Rldi9udWxs Ci0rICAgIGx0X3N0YXR1cz0kPwotKyAgICBjYXNlIHgkbHRfc3RhdHVzIGluCi0rICAgICAgeCRs dF9kbG5vX3VzY29yZSkgbHRfY3ZfZGxvcGVuX3NlbGZfc3RhdGljPXllcyA7OwotKyAgICAgIHgk bHRfZGxuZWVkX3VzY29yZSkgbHRfY3ZfZGxvcGVuX3NlbGZfc3RhdGljPXllcyA7OwotKyAgICAg IHgkbHRfZGx1bmtub3dufHgqKSBsdF9jdl9kbG9wZW5fc2VsZl9zdGF0aWM9bm8gOzsKLSsgICAg ZXNhYwotKyAgZWxzZSA6Ci0rICAgICMgY29tcGlsYXRpb24gZmFpbGVkCi0rICAgIGx0X2N2X2Rs b3Blbl9zZWxmX3N0YXRpYz1ubwotKyAgZmkKLStmaQotK3JtIC1mciBjb25mdGVzdCoKLSsKLSsK LStmaQotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRsdF9jdl9kbG9wZW5f c2VsZl9zdGF0aWMiID4mNQotKyRhc19lY2hvICIkbHRfY3ZfZGxvcGVuX3NlbGZfc3RhdGljIiA+ JjY7IH0KLSsgICAgZmkKLSsKLSsgICAgQ1BQRkxBR1M9IiRzYXZlX0NQUEZMQUdTIgotKyAgICBM REZMQUdTPSIkc2F2ZV9MREZMQUdTIgotKyAgICBMSUJTPSIkc2F2ZV9MSUJTIgotKyAgICA7Owot KyAgZXNhYwotKwotKyAgY2FzZSAkbHRfY3ZfZGxvcGVuX3NlbGYgaW4KLSsgIHllc3xubykgZW5h YmxlX2Rsb3Blbl9zZWxmPSRsdF9jdl9kbG9wZW5fc2VsZiA7OwotKyAgKikgZW5hYmxlX2Rsb3Bl bl9zZWxmPXVua25vd24gOzsKLSsgIGVzYWMKLSsKLSsgIGNhc2UgJGx0X2N2X2Rsb3Blbl9zZWxm X3N0YXRpYyBpbgotKyAgeWVzfG5vKSBlbmFibGVfZGxvcGVuX3NlbGZfc3RhdGljPSRsdF9jdl9k bG9wZW5fc2VsZl9zdGF0aWMgOzsKLSsgICopIGVuYWJsZV9kbG9wZW5fc2VsZl9zdGF0aWM9dW5r bm93biA7OwotKyAgZXNhYwotK2ZpCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0r Ci0rCi0rCi0rCi0rCi0rCi0rc3RyaXBsaWI9Ci0rb2xkX3N0cmlwbGliPQotK3sgJGFzX2VjaG8g IiRhc19tZTokTElORU5POiBjaGVja2luZyB3aGV0aGVyIHN0cmlwcGluZyBsaWJyYXJpZXMgaXMg cG9zc2libGUiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIHdoZXRoZXIgc3RyaXBwaW5nIGxp YnJhcmllcyBpcyBwb3NzaWJsZS4uLiAiID4mNjsgfQotK2lmIHRlc3QgLW4gIiRTVFJJUCIgJiYg JFNUUklQIC1WIDI+JjEgfCAkR1JFUCAiR05VIHN0cmlwIiA+L2Rldi9udWxsOyB0aGVuCi0rICB0 ZXN0IC16ICIkb2xkX3N0cmlwbGliIiAmJiBvbGRfc3RyaXBsaWI9IiRTVFJJUCAtLXN0cmlwLWRl YnVnIgotKyAgdGVzdCAteiAiJHN0cmlwbGliIiAmJiBzdHJpcGxpYj0iJFNUUklQIC0tc3RyaXAt dW5uZWVkZWQiCi0rICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiB5ZXMiID4m NQotKyRhc19lY2hvICJ5ZXMiID4mNjsgfQotK2Vsc2UKLSsjIEZJWE1FIC0gaW5zZXJ0IHNvbWUg cmVhbCB0ZXN0cywgaG9zdF9vcyBpc24ndCByZWFsbHkgZ29vZCBlbm91Z2gKLSsgIGNhc2UgJGhv c3Rfb3MgaW4KLSsgIGRhcndpbiopCi0rICAgIGlmIHRlc3QgLW4gIiRTVFJJUCIgOyB0aGVuCi0r ICAgICAgc3RyaXBsaWI9IiRTVFJJUCAteCIKLSsgICAgICBvbGRfc3RyaXBsaWI9IiRTVFJJUCAt UyIKLSsgICAgICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiB5ZXMiID4mNQot KyRhc19lY2hvICJ5ZXMiID4mNjsgfQotKyAgICBlbHNlCi0rICAgICAgeyAkYXNfZWNobyAiJGFz X21lOiRMSU5FTk86IHJlc3VsdDogbm8iID4mNQotKyRhc19lY2hvICJubyIgPiY2OyB9Ci0rICAg IGZpCi0rICAgIDs7Ci0rICAqKQotKyAgICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVz dWx0OiBubyIgPiY1Ci0rJGFzX2VjaG8gIm5vIiA+JjY7IH0KLSsgICAgOzsKLSsgIGVzYWMKLStm aQotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKyAgIyBSZXBvcnQgd2hpY2gg bGlicmFyeSB0eXBlcyB3aWxsIGFjdHVhbGx5IGJlIGJ1aWx0Ci0rICB7ICRhc19lY2hvICIkYXNf bWU6JExJTkVOTzogY2hlY2tpbmcgaWYgbGlidG9vbCBzdXBwb3J0cyBzaGFyZWQgbGlicmFyaWVz IiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyBpZiBsaWJ0b29sIHN1cHBvcnRzIHNoYXJlZCBs aWJyYXJpZXMuLi4gIiA+JjY7IH0KLSsgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1 bHQ6ICRjYW5fYnVpbGRfc2hhcmVkIiA+JjUKLSskYXNfZWNobyAiJGNhbl9idWlsZF9zaGFyZWQi ID4mNjsgfQotKwotKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIHdoZXRo ZXIgdG8gYnVpbGQgc2hhcmVkIGxpYnJhcmllcyIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcg d2hldGhlciB0byBidWlsZCBzaGFyZWQgbGlicmFyaWVzLi4uICIgPiY2OyB9Ci0rICB0ZXN0ICIk Y2FuX2J1aWxkX3NoYXJlZCIgPSAibm8iICYmIGVuYWJsZV9zaGFyZWQ9bm8KLSsKLSsgICMgT24g QUlYLCBzaGFyZWQgbGlicmFyaWVzIGFuZCBzdGF0aWMgbGlicmFyaWVzIHVzZSB0aGUgc2FtZSBu YW1lc3BhY2UsIGFuZAotKyAgIyBhcmUgYWxsIGJ1aWx0IGZyb20gUElDLgotKyAgY2FzZSAkaG9z dF9vcyBpbgotKyAgYWl4MyopCi0rICAgIHRlc3QgIiRlbmFibGVfc2hhcmVkIiA9IHllcyAmJiBl bmFibGVfc3RhdGljPW5vCi0rICAgIGlmIHRlc3QgLW4gIiRSQU5MSUIiOyB0aGVuCi0rICAgICAg YXJjaGl2ZV9jbWRzPSIkYXJjaGl2ZV9jbWRzflwkUkFOTElCIFwkbGliIgotKyAgICAgIHBvc3Rp bnN0YWxsX2NtZHM9JyRSQU5MSUIgJGxpYicKLSsgICAgZmkKLSsgICAgOzsKLSsKLSsgIGFpeFs0 LTldKikKLSsgICAgaWYgdGVzdCAiJGhvc3RfY3B1IiAhPSBpYTY0ICYmIHRlc3QgIiRhaXhfdXNl X3J1bnRpbWVsaW5raW5nIiA9IG5vIDsgdGhlbgotKyAgICAgIHRlc3QgIiRlbmFibGVfc2hhcmVk IiA9IHllcyAmJiBlbmFibGVfc3RhdGljPW5vCi0rICAgIGZpCi0rICAgIDs7Ci0rICBlc2FjCi0r ICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkZW5hYmxlX3NoYXJlZCIgPiY1 Ci0rJGFzX2VjaG8gIiRlbmFibGVfc2hhcmVkIiA+JjY7IH0KLSsKLSsgIHsgJGFzX2VjaG8gIiRh c19tZTokTElORU5POiBjaGVja2luZyB3aGV0aGVyIHRvIGJ1aWxkIHN0YXRpYyBsaWJyYXJpZXMi ID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIHdoZXRoZXIgdG8gYnVpbGQgc3RhdGljIGxpYnJh cmllcy4uLiAiID4mNjsgfQotKyAgIyBNYWtlIHN1cmUgZWl0aGVyIGVuYWJsZV9zaGFyZWQgb3Ig ZW5hYmxlX3N0YXRpYyBpcyB5ZXMuCi0rICB0ZXN0ICIkZW5hYmxlX3NoYXJlZCIgPSB5ZXMgfHwg ZW5hYmxlX3N0YXRpYz15ZXMKLSsgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6 ICRlbmFibGVfc3RhdGljIiA+JjUKLSskYXNfZWNobyAiJGVuYWJsZV9zdGF0aWMiID4mNjsgfQot KwotKwotKwotKwotK2ZpCi0rYWNfZXh0PWMKLSthY19jcHA9JyRDUFAgJENQUEZMQUdTJwotK2Fj X2NvbXBpbGU9JyRDQyAtYyAkQ0ZMQUdTICRDUFBGTEFHUyBjb25mdGVzdC4kYWNfZXh0ID4mNScK LSthY19saW5rPSckQ0MgLW8gY29uZnRlc3QkYWNfZXhlZXh0ICRDRkxBR1MgJENQUEZMQUdTICRM REZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgJExJQlMgPiY1JwotK2FjX2NvbXBpbGVyX2dudT0kYWNf Y3ZfY19jb21waWxlcl9nbnUKLSsKLStDQz0iJGx0X3NhdmVfQ0MiCi0rCi0rCi0rYWNfZXh0PWNw cAotK2FjX2NwcD0nJENYWENQUCAkQ1BQRkxBR1MnCi0rYWNfY29tcGlsZT0nJENYWCAtYyAkQ1hY RkxBR1MgJENQUEZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgPiY1JwotK2FjX2xpbms9JyRDWFggLW8g Y29uZnRlc3QkYWNfZXhlZXh0ICRDWFhGTEFHUyAkQ1BQRkxBR1MgJExERkxBR1MgY29uZnRlc3Qu JGFjX2V4dCAkTElCUyA+JjUnCi0rYWNfY29tcGlsZXJfZ251PSRhY19jdl9jeHhfY29tcGlsZXJf Z251Ci0rCi0rYXJjaGl2ZV9jbWRzX25lZWRfbGNfQ1hYPW5vCi0rYWxsb3dfdW5kZWZpbmVkX2Zs YWdfQ1hYPQotK2Fsd2F5c19leHBvcnRfc3ltYm9sc19DWFg9bm8KLSthcmNoaXZlX2V4cHN5bV9j bWRzX0NYWD0KLStjb21waWxlcl9uZWVkc19vYmplY3RfQ1hYPW5vCi0rZXhwb3J0X2R5bmFtaWNf ZmxhZ19zcGVjX0NYWD0KLStoYXJkY29kZV9kaXJlY3RfQ1hYPW5vCi0raGFyZGNvZGVfZGlyZWN0 X2Fic29sdXRlX0NYWD1ubwotK2hhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfQ1hYPQotK2hhcmRj b2RlX2xpYmRpcl9mbGFnX3NwZWNfbGRfQ1hYPQotK2hhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3Jf Q1hYPQotK2hhcmRjb2RlX21pbnVzX0xfQ1hYPW5vCi0raGFyZGNvZGVfc2hsaWJwYXRoX3Zhcl9D WFg9dW5zdXBwb3J0ZWQKLStoYXJkY29kZV9hdXRvbWF0aWNfQ1hYPW5vCi0raW5oZXJpdF9ycGF0 aF9DWFg9bm8KLSttb2R1bGVfY21kc19DWFg9Ci0rbW9kdWxlX2V4cHN5bV9jbWRzX0NYWD0KLSts aW5rX2FsbF9kZXBsaWJzX0NYWD11bmtub3duCi0rb2xkX2FyY2hpdmVfY21kc19DWFg9JG9sZF9h cmNoaXZlX2NtZHMKLStub191bmRlZmluZWRfZmxhZ19DWFg9Ci0rd2hvbGVfYXJjaGl2ZV9mbGFn X3NwZWNfQ1hYPQotK2VuYWJsZV9zaGFyZWRfd2l0aF9zdGF0aWNfcnVudGltZXNfQ1hYPW5vCi0r Ci0rIyBTb3VyY2UgZmlsZSBleHRlbnNpb24gZm9yIEMrKyB0ZXN0IHNvdXJjZXMuCi0rYWNfZXh0 PWNwcAotKwotKyMgT2JqZWN0IGZpbGUgZXh0ZW5zaW9uIGZvciBjb21waWxlZCBDKysgdGVzdCBz b3VyY2VzLgotK29iamV4dD1vCi0rb2JqZXh0X0NYWD0kb2JqZXh0Ci0rCi0rIyBObyBzZW5zZSBp biBydW5uaW5nIGFsbCB0aGVzZSB0ZXN0cyBpZiB3ZSBhbHJlYWR5IGRldGVybWluZWQgdGhhdAot KyMgdGhlIENYWCBjb21waWxlciBpc24ndCB3b3JraW5nLiAgU29tZSB2YXJpYWJsZXMgKGxpa2Ug ZW5hYmxlX3NoYXJlZCkKLSsjIGFyZSBjdXJyZW50bHkgYXNzdW1lZCB0byBhcHBseSB0byBhbGwg Y29tcGlsZXJzIG9uIHRoaXMgcGxhdGZvcm0sCi0rIyBhbmQgd2lsbCBiZSBjb3JydXB0ZWQgYnkg c2V0dGluZyB0aGVtIGJhc2VkIG9uIGEgbm9uLXdvcmtpbmcgY29tcGlsZXIuCi0raWYgdGVzdCAi JF9sdF9jYXVnaHRfQ1hYX2Vycm9yIiAhPSB5ZXM7IHRoZW4KLSsgICMgQ29kZSB0byBiZSB1c2Vk IGluIHNpbXBsZSBjb21waWxlIHRlc3RzCi0rICBsdF9zaW1wbGVfY29tcGlsZV90ZXN0X2NvZGU9 ImludCBzb21lX3ZhcmlhYmxlID0gMDsiCi0rCi0rICAjIENvZGUgdG8gYmUgdXNlZCBpbiBzaW1w bGUgbGluayB0ZXN0cwotKyAgbHRfc2ltcGxlX2xpbmtfdGVzdF9jb2RlPSdpbnQgbWFpbihpbnQs IGNoYXIgKltdKSB7IHJldHVybigwKTsgfScKLSsKLSsgICMgbHRtYWluIG9ubHkgdXNlcyAkQ0Mg Zm9yIHRhZ2dlZCBjb25maWd1cmF0aW9ucyBzbyBtYWtlIHN1cmUgJENDIGlzIHNldC4KLSsKLSsK LSsKLSsKLSsKLSsKLSsjIElmIG5vIEMgY29tcGlsZXIgd2FzIHNwZWNpZmllZCwgdXNlIENDLgot K0xUQ0M9JHtMVENDLSIkQ0MifQotKwotKyMgSWYgbm8gQyBjb21waWxlciBmbGFncyB3ZXJlIHNw ZWNpZmllZCwgdXNlIENGTEFHUy4KLStMVENGTEFHUz0ke0xUQ0ZMQUdTLSIkQ0ZMQUdTIn0KLSsK LSsjIEFsbG93IENDIHRvIGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJndW1lbnRzLgotK2NvbXBp bGVyPSRDQwotKwotKwotKyAgIyBzYXZlIHdhcm5pbmdzL2JvaWxlcnBsYXRlIG9mIHNpbXBsZSB0 ZXN0IGNvZGUKLSsgIGFjX291dGZpbGU9Y29uZnRlc3QuJGFjX29iamV4dAotK2VjaG8gIiRsdF9z aW1wbGVfY29tcGlsZV90ZXN0X2NvZGUiID5jb25mdGVzdC4kYWNfZXh0Ci0rZXZhbCAiJGFjX2Nv bXBpbGUiIDI+JjEgPi9kZXYvbnVsbCB8ICRTRUQgJy9eJC9kOyAvXiAqKy9kJyA+Y29uZnRlc3Qu ZXJyCi0rX2x0X2NvbXBpbGVyX2JvaWxlcnBsYXRlPWBjYXQgY29uZnRlc3QuZXJyYAotKyRSTSBj b25mdGVzdCoKLSsKLSsgIGFjX291dGZpbGU9Y29uZnRlc3QuJGFjX29iamV4dAotK2VjaG8gIiRs dF9zaW1wbGVfbGlua190ZXN0X2NvZGUiID5jb25mdGVzdC4kYWNfZXh0Ci0rZXZhbCAiJGFjX2xp bmsiIDI+JjEgPi9kZXYvbnVsbCB8ICRTRUQgJy9eJC9kOyAvXiAqKy9kJyA+Y29uZnRlc3QuZXJy Ci0rX2x0X2xpbmtlcl9ib2lsZXJwbGF0ZT1gY2F0IGNvbmZ0ZXN0LmVycmAKLSskUk0gLXIgY29u ZnRlc3QqCi0rCi0rCi0rICAjIEFsbG93IENDIHRvIGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJn dW1lbnRzLgotKyAgbHRfc2F2ZV9DQz0kQ0MKLSsgIGx0X3NhdmVfTEQ9JExECi0rICBsdF9zYXZl X0dDQz0kR0NDCi0rICBHQ0M9JEdYWAotKyAgbHRfc2F2ZV93aXRoX2dudV9sZD0kd2l0aF9nbnVf bGQKLSsgIGx0X3NhdmVfcGF0aF9MRD0kbHRfY3ZfcGF0aF9MRAotKyAgaWYgdGVzdCAtbiAiJHts dF9jdl9wcm9nX2dudV9sZGN4eCtzZXR9IjsgdGhlbgotKyAgICBsdF9jdl9wcm9nX2dudV9sZD0k bHRfY3ZfcHJvZ19nbnVfbGRjeHgKLSsgIGVsc2UKLSsgICAgJGFzX3Vuc2V0IGx0X2N2X3Byb2df Z251X2xkCi0rICBmaQotKyAgaWYgdGVzdCAtbiAiJHtsdF9jdl9wYXRoX0xEQ1hYK3NldH0iOyB0 aGVuCi0rICAgIGx0X2N2X3BhdGhfTEQ9JGx0X2N2X3BhdGhfTERDWFgKLSsgIGVsc2UKLSsgICAg JGFzX3Vuc2V0IGx0X2N2X3BhdGhfTEQKLSsgIGZpCi0rICB0ZXN0IC16ICIke0xEQ1hYK3NldH0i IHx8IExEPSRMRENYWAotKyAgQ0M9JHtDWFgtImMrKyJ9Ci0rICBjb21waWxlcj0kQ0MKLSsgIGNv bXBpbGVyX0NYWD0kQ0MKLSsgIGZvciBjY190ZW1wIGluICRjb21waWxlciIiOyBkbwotKyAgY2Fz ZSAkY2NfdGVtcCBpbgotKyAgICBjb21waWxlIHwgKltcXC9dY29tcGlsZSB8IGNjYWNoZSB8ICpb XFwvXWNjYWNoZSApIDs7Ci0rICAgIGRpc3RjYyB8ICpbXFwvXWRpc3RjYyB8IHB1cmlmeSB8ICpb XFwvXXB1cmlmeSApIDs7Ci0rICAgIFwtKikgOzsKLSsgICAgKikgYnJlYWs7OwotKyAgZXNhYwot K2RvbmUKLStjY19iYXNlbmFtZT1gJEVDSE8gIlgkY2NfdGVtcCIgfCAkWHNlZCAtZSAncyUuKi8l JScgLWUgInMlXiRob3N0X2FsaWFzLSUlImAKLSsKLSsKLSsgIGlmIHRlc3QgLW4gIiRjb21waWxl ciI7IHRoZW4KLSsgICAgIyBXZSBkb24ndCB3YW50IC1mbm8tZXhjZXB0aW9uIHdoZW4gY29tcGls aW5nIEMrKyBjb2RlLCBzbyBzZXQgdGhlCi0rICAgICMgbm9fYnVpbHRpbl9mbGFnIHNlcGFyYXRl bHkKLSsgICAgaWYgdGVzdCAiJEdYWCIgPSB5ZXM7IHRoZW4KLSsgICAgICBsdF9wcm9nX2NvbXBp bGVyX25vX2J1aWx0aW5fZmxhZ19DWFg9JyAtZm5vLWJ1aWx0aW4nCi0rICAgIGVsc2UKLSsgICAg ICBsdF9wcm9nX2NvbXBpbGVyX25vX2J1aWx0aW5fZmxhZ19DWFg9Ci0rICAgIGZpCi0rCi0rICAg IGlmIHRlc3QgIiRHWFgiID0geWVzOyB0aGVuCi0rICAgICAgIyBTZXQgdXAgZGVmYXVsdCBHTlUg QysrIGNvbmZpZ3VyYXRpb24KLSsKLSsKLSsKLSsjIENoZWNrIHdoZXRoZXIgLS13aXRoLWdudS1s ZCB3YXMgZ2l2ZW4uCi0raWYgdGVzdCAiJHt3aXRoX2dudV9sZCtzZXR9IiA9IHNldDsgdGhlbgot KyAgd2l0aHZhbD0kd2l0aF9nbnVfbGQ7IHRlc3QgIiR3aXRodmFsIiA9IG5vIHx8IHdpdGhfZ251 X2xkPXllcwotK2Vsc2UKLSsgIHdpdGhfZ251X2xkPW5vCi0rZmkKLSsKLSthY19wcm9nPWxkCi0r aWYgdGVzdCAiJEdDQyIgPSB5ZXM7IHRoZW4KLSsgICMgQ2hlY2sgaWYgZ2NjIC1wcmludC1wcm9n LW5hbWU9bGQgZ2l2ZXMgYSBwYXRoLgotKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNo ZWNraW5nIGZvciBsZCB1c2VkIGJ5ICRDQyIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9y IGxkIHVzZWQgYnkgJENDLi4uICIgPiY2OyB9Ci0rICBjYXNlICRob3N0IGluCi0rICAqLSotbWlu Z3cqKQotKyAgICAjIGdjYyBsZWF2ZXMgYSB0cmFpbGluZyBjYXJyaWFnZSByZXR1cm4gd2hpY2gg dXBzZXRzIG1pbmd3Ci0rICAgIGFjX3Byb2c9YCgkQ0MgLXByaW50LXByb2ctbmFtZT1sZCkgMj4m NSB8IHRyIC1kICdcMDE1J2AgOzsKLSsgICopCi0rICAgIGFjX3Byb2c9YCgkQ0MgLXByaW50LXBy b2ctbmFtZT1sZCkgMj4mNWAgOzsKLSsgIGVzYWMKLSsgIGNhc2UgJGFjX3Byb2cgaW4KLSsgICAg IyBBY2NlcHQgYWJzb2x1dGUgcGF0aHMuCi0rICAgIFtcXC9dKiB8ID86W1xcL10qKQotKyAgICAg IHJlX2RpcmVsdD0nL1teL11bXi9dKi9cLlwuLycKLSsgICAgICAjIENhbm9uaWNhbGl6ZSB0aGUg cGF0aG5hbWUgb2YgbGQKLSsgICAgICBhY19wcm9nPWAkRUNITyAiJGFjX3Byb2cifCAkU0VEICdz JVxcXFwlLyVnJ2AKLSsgICAgICB3aGlsZSAkRUNITyAiJGFjX3Byb2ciIHwgJEdSRVAgIiRyZV9k aXJlbHQiID4gL2Rldi9udWxsIDI+JjE7IGRvCi0rCWFjX3Byb2c9YCRFQ0hPICRhY19wcm9nfCAk U0VEICJzJSRyZV9kaXJlbHQlLyUiYAotKyAgICAgIGRvbmUKLSsgICAgICB0ZXN0IC16ICIkTEQi ICYmIExEPSIkYWNfcHJvZyIKLSsgICAgICA7OwotKyAgIiIpCi0rICAgICMgSWYgaXQgZmFpbHMs IHRoZW4gcHJldGVuZCB3ZSBhcmVuJ3QgdXNpbmcgR0NDLgotKyAgICBhY19wcm9nPWxkCi0rICAg IDs7Ci0rICAqKQotKyAgICAjIElmIGl0IGlzIHJlbGF0aXZlLCB0aGVuIHNlYXJjaCBmb3IgdGhl IGZpcnN0IGxkIGluIFBBVEguCi0rICAgIHdpdGhfZ251X2xkPXVua25vd24KLSsgICAgOzsKLSsg IGVzYWMKLStlbGlmIHRlc3QgIiR3aXRoX2dudV9sZCIgPSB5ZXM7IHRoZW4KLSsgIHsgJGFzX2Vj aG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgR05VIGxkIiA+JjUKLSskYXNfZWNob19u ICJjaGVja2luZyBmb3IgR05VIGxkLi4uICIgPiY2OyB9Ci0rZWxzZQotKyAgeyAkYXNfZWNobyAi JGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciBub24tR05VIGxkIiA+JjUKLSskYXNfZWNob19u ICJjaGVja2luZyBmb3Igbm9uLUdOVSBsZC4uLiAiID4mNjsgfQotK2ZpCi0raWYgdGVzdCAiJHts dF9jdl9wYXRoX0xEK3NldH0iID0gc2V0OyB0aGVuCi0rICAkYXNfZWNob19uICIoY2FjaGVkKSAi ID4mNgotK2Vsc2UKLSsgIGlmIHRlc3QgLXogIiRMRCI7IHRoZW4KLSsgIGx0X3NhdmVfaWZzPSIk SUZTIjsgSUZTPSRQQVRIX1NFUEFSQVRPUgotKyAgZm9yIGFjX2RpciBpbiAkUEFUSDsgZG8KLSsg ICAgSUZTPSIkbHRfc2F2ZV9pZnMiCi0rICAgIHRlc3QgLXogIiRhY19kaXIiICYmIGFjX2Rpcj0u Ci0rICAgIGlmIHRlc3QgLWYgIiRhY19kaXIvJGFjX3Byb2ciIHx8IHRlc3QgLWYgIiRhY19kaXIv JGFjX3Byb2ckYWNfZXhlZXh0IjsgdGhlbgotKyAgICAgIGx0X2N2X3BhdGhfTEQ9IiRhY19kaXIv JGFjX3Byb2ciCi0rICAgICAgIyBDaGVjayB0byBzZWUgaWYgdGhlIHByb2dyYW0gaXMgR05VIGxk LiAgSSdkIHJhdGhlciB1c2UgLS12ZXJzaW9uLAotKyAgICAgICMgYnV0IGFwcGFyZW50bHkgc29t ZSB2YXJpYW50cyBvZiBHTlUgbGQgb25seSBhY2NlcHQgLXYuCi0rICAgICAgIyBCcmVhayBvbmx5 IGlmIGl0IHdhcyB0aGUgR05VL25vbi1HTlUgbGQgdGhhdCB3ZSBwcmVmZXIuCi0rICAgICAgY2Fz ZSBgIiRsdF9jdl9wYXRoX0xEIiAtdiAyPiYxIDwvZGV2L251bGxgIGluCi0rICAgICAgKkdOVSog fCAqJ3dpdGggQkZEJyopCi0rCXRlc3QgIiR3aXRoX2dudV9sZCIgIT0gbm8gJiYgYnJlYWsKLSsJ OzsKLSsgICAgICAqKQotKwl0ZXN0ICIkd2l0aF9nbnVfbGQiICE9IHllcyAmJiBicmVhawotKwk7 OwotKyAgICAgIGVzYWMKLSsgICAgZmkKLSsgIGRvbmUKLSsgIElGUz0iJGx0X3NhdmVfaWZzIgot K2Vsc2UKLSsgIGx0X2N2X3BhdGhfTEQ9IiRMRCIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhl IHRlc3Qgd2l0aCBhIHBhdGguCi0rZmkKLStmaQotKwotK0xEPSIkbHRfY3ZfcGF0aF9MRCIKLStp ZiB0ZXN0IC1uICIkTEQiOyB0aGVuCi0rICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVz dWx0OiAkTEQiID4mNQotKyRhc19lY2hvICIkTEQiID4mNjsgfQotK2Vsc2UKLSsgIHsgJGFzX2Vj aG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IG5vIiA+JjUKLSskYXNfZWNobyAibm8iID4mNjsg fQotK2ZpCi0rdGVzdCAteiAiJExEIiAmJiB7IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBl cnJvcjogbm8gYWNjZXB0YWJsZSBsZCBmb3VuZCBpbiBcJFBBVEgiID4mNQotKyRhc19lY2hvICIk YXNfbWU6IGVycm9yOiBubyBhY2NlcHRhYmxlIGxkIGZvdW5kIGluIFwkUEFUSCIgPiYyO30KLSsg ICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzog Y2hlY2tpbmcgaWYgdGhlIGxpbmtlciAoJExEKSBpcyBHTlUgbGQiID4mNQotKyRhc19lY2hvX24g ImNoZWNraW5nIGlmIHRoZSBsaW5rZXIgKCRMRCkgaXMgR05VIGxkLi4uICIgPiY2OyB9Ci0raWYg dGVzdCAiJHtsdF9jdl9wcm9nX2dudV9sZCtzZXR9IiA9IHNldDsgdGhlbgotKyAgJGFzX2VjaG9f biAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rICAjIEknZCByYXRoZXIgdXNlIC0tdmVyc2lvbiBo ZXJlLCBidXQgYXBwYXJlbnRseSBzb21lIEdOVSBsZHMgb25seSBhY2NlcHQgLXYuCi0rY2FzZSBg JExEIC12IDI+JjEgPC9kZXYvbnVsbGAgaW4KLSsqR05VKiB8ICond2l0aCBCRkQnKikKLSsgIGx0 X2N2X3Byb2dfZ251X2xkPXllcwotKyAgOzsKLSsqKQotKyAgbHRfY3ZfcHJvZ19nbnVfbGQ9bm8K LSsgIDs7Ci0rZXNhYwotK2ZpCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDog JGx0X2N2X3Byb2dfZ251X2xkIiA+JjUKLSskYXNfZWNobyAiJGx0X2N2X3Byb2dfZ251X2xkIiA+ JjY7IH0KLSt3aXRoX2dudV9sZD0kbHRfY3ZfcHJvZ19nbnVfbGQKLSsKLSsKLSsKLSsKLSsKLSsK LSsKLSsgICAgICAjIENoZWNrIGlmIEdOVSBDKysgdXNlcyBHTlUgbGQgYXMgdGhlIHVuZGVybHlp bmcgbGlua2VyLCBzaW5jZSB0aGUKLSsgICAgICAjIGFyY2hpdmluZyBjb21tYW5kcyBiZWxvdyBh c3N1bWUgdGhhdCBHTlUgbGQgaXMgYmVpbmcgdXNlZC4KLSsgICAgICBpZiB0ZXN0ICIkd2l0aF9n bnVfbGQiID0geWVzOyB0aGVuCi0rICAgICAgICBhcmNoaXZlX2NtZHNfQ1hYPSckQ0MgLXNoYXJl ZCAtbm9zdGRsaWIgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29i amVjdHMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAkd2wkc29uYW1lIC1vICRsaWInCi0r ICAgICAgICBhcmNoaXZlX2V4cHN5bV9jbWRzX0NYWD0nJENDIC1zaGFyZWQgLW5vc3RkbGliICRw cmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxl cl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAke3dsfS1yZXRhaW4tc3ltYm9scy1maWxl ICR3bCRleHBvcnRfc3ltYm9scyAtbyAkbGliJwotKwotKyAgICAgICAgaGFyZGNvZGVfbGliZGly X2ZsYWdfc3BlY19DWFg9JyR7d2x9LXJwYXRoICR7d2x9JGxpYmRpcicKLSsgICAgICAgIGV4cG9y dF9keW5hbWljX2ZsYWdfc3BlY19DWFg9JyR7d2x9LS1leHBvcnQtZHluYW1pYycKLSsKLSsgICAg ICAgICMgSWYgYXJjaGl2ZV9jbWRzIHJ1bnMgTEQsIG5vdCBDQywgd2xhcmMgc2hvdWxkIGJlIGVt cHR5Ci0rICAgICAgICAjIFhYWCBJIHRoaW5rIHdsYXJjIGNhbiBiZSBlbGltaW5hdGVkIGluIGx0 Y2YtY3h4LCBidXQgSSBuZWVkIHRvCi0rICAgICAgICAjICAgICBpbnZlc3RpZ2F0ZSBpdCBhIGxp dHRsZSBiaXQgbW9yZS4gKE1NKQotKyAgICAgICAgd2xhcmM9JyR7d2x9JwotKwotKyAgICAgICAg IyBhbmNpZW50IEdOVSBsZCBkaWRuJ3Qgc3VwcG9ydCAtLXdob2xlLWFyY2hpdmUgZXQuIGFsLgot KyAgICAgICAgaWYgZXZhbCAiYCRDQyAtcHJpbnQtcHJvZy1uYW1lPWxkYCAtLWhlbHAgMj4mMSIg fAotKwkgICRHUkVQICduby13aG9sZS1hcmNoaXZlJyA+IC9kZXYvbnVsbDsgdGhlbgotKyAgICAg ICAgICB3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlY19DWFg9IiR3bGFyYyInLS13aG9sZS1hcmNoaXZl JGNvbnZlbmllbmNlICciJHdsYXJjIictLW5vLXdob2xlLWFyY2hpdmUnCi0rICAgICAgICBlbHNl Ci0rICAgICAgICAgIHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjX0NYWD0KLSsgICAgICAgIGZpCi0r ICAgICAgZWxzZQotKyAgICAgICAgd2l0aF9nbnVfbGQ9bm8KLSsgICAgICAgIHdsYXJjPQotKwot KyAgICAgICAgIyBBIGdlbmVyaWMgYW5kIHZlcnkgc2ltcGxlIGRlZmF1bHQgc2hhcmVkIGxpYnJh cnkgY3JlYXRpb24KLSsgICAgICAgICMgY29tbWFuZCBmb3IgR05VIEMrKyBmb3IgdGhlIGNhc2Ug d2hlcmUgaXQgdXNlcyB0aGUgbmF0aXZlCi0rICAgICAgICAjIGxpbmtlciwgaW5zdGVhZCBvZiBH TlUgbGQuICBJZiBwb3NzaWJsZSwgdGhpcyBzZXR0aW5nIHNob3VsZAotKyAgICAgICAgIyBvdmVy cmlkZGVuIHRvIHRha2UgYWR2YW50YWdlIG9mIHRoZSBuYXRpdmUgbGlua2VyIGZlYXR1cmVzIG9u Ci0rICAgICAgICAjIHRoZSBwbGF0Zm9ybSBpdCBpcyBiZWluZyB1c2VkIG9uLgotKyAgICAgICAg YXJjaGl2ZV9jbWRzX0NYWD0nJENDIC1zaGFyZWQgLW5vc3RkbGliICRwcmVkZXBfb2JqZWN0cyAk bGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAtbyAkbGli JwotKyAgICAgIGZpCi0rCi0rICAgICAgIyBDb21tYW5kcyB0byBtYWtlIGNvbXBpbGVyIHByb2R1 Y2UgdmVyYm9zZSBvdXRwdXQgdGhhdCBsaXN0cwotKyAgICAgICMgd2hhdCAiaGlkZGVuIiBsaWJy YXJpZXMsIG9iamVjdCBmaWxlcyBhbmQgZmxhZ3MgYXJlIHVzZWQgd2hlbgotKyAgICAgICMgbGlu a2luZyBhIHNoYXJlZCBsaWJyYXJ5LgotKyAgICAgIG91dHB1dF92ZXJib3NlX2xpbmtfY21kPSck Q0MgLXNoYXJlZCAkQ0ZMQUdTIC12IGNvbmZ0ZXN0LiRvYmpleHQgMj4mMSB8ICRHUkVQICJcLUwi JwotKwotKyAgICBlbHNlCi0rICAgICAgR1hYPW5vCi0rICAgICAgd2l0aF9nbnVfbGQ9bm8KLSsg ICAgICB3bGFyYz0KLSsgICAgZmkKLSsKLSsgICAgIyBQT1JUTUU6IGZpbGwgaW4gYSBkZXNjcmlw dGlvbiBvZiB5b3VyIHN5c3RlbSdzIEMrKyBsaW5rIGNoYXJhY3RlcmlzdGljcwotKyAgICB7ICRh c19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgd2hldGhlciB0aGUgJGNvbXBpbGVyIGxp bmtlciAoJExEKSBzdXBwb3J0cyBzaGFyZWQgbGlicmFyaWVzIiA+JjUKLSskYXNfZWNob19uICJj aGVja2luZyB3aGV0aGVyIHRoZSAkY29tcGlsZXIgbGlua2VyICgkTEQpIHN1cHBvcnRzIHNoYXJl ZCBsaWJyYXJpZXMuLi4gIiA+JjY7IH0KLSsgICAgbGRfc2hsaWJzX0NYWD15ZXMKLSsgICAgY2Fz ZSAkaG9zdF9vcyBpbgotKyAgICAgIGFpeDMqKQotKyAgICAgICAgIyBGSVhNRTogaW5zZXJ0IHBy b3BlciBDKysgbGlicmFyeSBzdXBwb3J0Ci0rICAgICAgICBsZF9zaGxpYnNfQ1hYPW5vCi0rICAg ICAgICA7OwotKyAgICAgIGFpeFs0LTldKikKLSsgICAgICAgIGlmIHRlc3QgIiRob3N0X2NwdSIg PSBpYTY0OyB0aGVuCi0rICAgICAgICAgICMgT24gSUE2NCwgdGhlIGxpbmtlciBkb2VzIHJ1biB0 aW1lIGxpbmtpbmcgYnkgZGVmYXVsdCwgc28gd2UgZG9uJ3QKLSsgICAgICAgICAgIyBoYXZlIHRv IGRvIGFueXRoaW5nIHNwZWNpYWwuCi0rICAgICAgICAgIGFpeF91c2VfcnVudGltZWxpbmtpbmc9 bm8KLSsgICAgICAgICAgZXhwX3N5bV9mbGFnPSctQmV4cG9ydCcKLSsgICAgICAgICAgbm9fZW50 cnlfZmxhZz0iIgotKyAgICAgICAgZWxzZQotKyAgICAgICAgICBhaXhfdXNlX3J1bnRpbWVsaW5r aW5nPW5vCi0rCi0rICAgICAgICAgICMgVGVzdCBpZiB3ZSBhcmUgdHJ5aW5nIHRvIHVzZSBydW4g dGltZSBsaW5raW5nIG9yIG5vcm1hbAotKyAgICAgICAgICAjIEFJWCBzdHlsZSBsaW5raW5nLiBJ ZiAtYnJ0bCBpcyBzb21ld2hlcmUgaW4gTERGTEFHUywgd2UKLSsgICAgICAgICAgIyBuZWVkIHRv IGRvIHJ1bnRpbWUgbGlua2luZy4KLSsgICAgICAgICAgY2FzZSAkaG9zdF9vcyBpbiBhaXg0Llsy M118YWl4NC5bMjNdLip8YWl4WzUtOV0qKQotKwkgICAgZm9yIGxkX2ZsYWcgaW4gJExERkxBR1M7 IGRvCi0rCSAgICAgIGNhc2UgJGxkX2ZsYWcgaW4KLSsJICAgICAgKi1icnRsKikKLSsJICAgICAg ICBhaXhfdXNlX3J1bnRpbWVsaW5raW5nPXllcwotKwkgICAgICAgIGJyZWFrCi0rCSAgICAgICAg OzsKLSsJICAgICAgZXNhYwotKwkgICAgZG9uZQotKwkgICAgOzsKLSsgICAgICAgICAgZXNhYwot KwotKyAgICAgICAgICBleHBfc3ltX2ZsYWc9Jy1iZXhwb3J0JwotKyAgICAgICAgICBub19lbnRy eV9mbGFnPSctYm5vZW50cnknCi0rICAgICAgICBmaQotKwotKyAgICAgICAgIyBXaGVuIGxhcmdl IGV4ZWN1dGFibGVzIG9yIHNoYXJlZCBvYmplY3RzIGFyZSBidWlsdCwgQUlYIGxkIGNhbgotKyAg ICAgICAgIyBoYXZlIHByb2JsZW1zIGNyZWF0aW5nIHRoZSB0YWJsZSBvZiBjb250ZW50cy4gIElm IGxpbmtpbmcgYSBsaWJyYXJ5Ci0rICAgICAgICAjIG9yIHByb2dyYW0gcmVzdWx0cyBpbiAiZXJy b3IgVE9DIG92ZXJmbG93IiBhZGQgLW1taW5pbWFsLXRvYyB0bwotKyAgICAgICAgIyBDWFhGTEFH Uy9DRkxBR1MgZm9yIGcrKy9nY2MuICBJbiB0aGUgY2FzZXMgd2hlcmUgdGhhdCBpcyBub3QKLSsg ICAgICAgICMgZW5vdWdoIHRvIGZpeCB0aGUgcHJvYmxlbSwgYWRkIC1XbCwtYmJpZ3RvYyB0byBM REZMQUdTLgotKwotKyAgICAgICAgYXJjaGl2ZV9jbWRzX0NYWD0nJwotKyAgICAgICAgaGFyZGNv ZGVfZGlyZWN0X0NYWD15ZXMKLSsgICAgICAgIGhhcmRjb2RlX2RpcmVjdF9hYnNvbHV0ZV9DWFg9 eWVzCi0rICAgICAgICBoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yX0NYWD0nOicKLSsgICAgICAg IGxpbmtfYWxsX2RlcGxpYnNfQ1hYPXllcwotKyAgICAgICAgZmlsZV9saXN0X3NwZWNfQ1hYPSck e3dsfS1mLCcKLSsKLSsgICAgICAgIGlmIHRlc3QgIiRHWFgiID0geWVzOyB0aGVuCi0rICAgICAg ICAgIGNhc2UgJGhvc3Rfb3MgaW4gYWl4NC5bMDEyXXxhaXg0LlswMTJdLiopCi0rICAgICAgICAg ICMgV2Ugb25seSB3YW50IHRvIGRvIHRoaXMgb24gQUlYIDQuMiBhbmQgbG93ZXIsIHRoZSBjaGVj awotKyAgICAgICAgICAjIGJlbG93IGZvciBicm9rZW4gY29sbGVjdDIgZG9lc24ndCB3b3JrIHVu ZGVyIDQuMysKLSsJICBjb2xsZWN0Mm5hbWU9YCR7Q0N9IC1wcmludC1wcm9nLW5hbWU9Y29sbGVj dDJgCi0rCSAgaWYgdGVzdCAtZiAiJGNvbGxlY3QybmFtZSIgJiYKLSsJICAgICBzdHJpbmdzICIk Y29sbGVjdDJuYW1lIiB8ICRHUkVQIHJlc29sdmVfbGliX25hbWUgPi9kZXYvbnVsbAotKwkgIHRo ZW4KLSsJICAgICMgV2UgaGF2ZSByZXdvcmtlZCBjb2xsZWN0MgotKwkgICAgOgotKwkgIGVsc2UK LSsJICAgICMgV2UgaGF2ZSBvbGQgY29sbGVjdDIKLSsJICAgIGhhcmRjb2RlX2RpcmVjdF9DWFg9 dW5zdXBwb3J0ZWQKLSsJICAgICMgSXQgZmFpbHMgdG8gZmluZCB1bmluc3RhbGxlZCBsaWJyYXJp ZXMgd2hlbiB0aGUgdW5pbnN0YWxsZWQKLSsJICAgICMgcGF0aCBpcyBub3QgbGlzdGVkIGluIHRo ZSBsaWJwYXRoLiAgU2V0dGluZyBoYXJkY29kZV9taW51c19MCi0rCSAgICAjIHRvIHVuc3VwcG9y dGVkIGZvcmNlcyByZWxpbmtpbmcKLSsJICAgIGhhcmRjb2RlX21pbnVzX0xfQ1hYPXllcwotKwkg ICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19DWFg9Jy1MJGxpYmRpcicKLSsJICAgIGhhcmRj b2RlX2xpYmRpcl9zZXBhcmF0b3JfQ1hYPQotKwkgIGZpCi0rICAgICAgICAgIGVzYWMKLSsgICAg ICAgICAgc2hhcmVkX2ZsYWc9Jy1zaGFyZWQnCi0rCSAgaWYgdGVzdCAiJGFpeF91c2VfcnVudGlt ZWxpbmtpbmciID0geWVzOyB0aGVuCi0rCSAgICBzaGFyZWRfZmxhZz0iJHNoYXJlZF9mbGFnICIn JHt3bH0tRycKLSsJICBmaQotKyAgICAgICAgZWxzZQotKyAgICAgICAgICAjIG5vdCB1c2luZyBn Y2MKLSsgICAgICAgICAgaWYgdGVzdCAiJGhvc3RfY3B1IiA9IGlhNjQ7IHRoZW4KLSsJICAjIFZp c3VhbEFnZSBDKyssIFZlcnNpb24gNS41IGZvciBBSVggNUwgZm9yIElBLTY0LCBCZXRhIDMgUmVs ZWFzZQotKwkgICMgY2hva2VzIG9uIC1XbCwtRy4gVGhlIGZvbGxvd2luZyBsaW5lIGlzIGNvcnJl Y3Q6Ci0rCSAgc2hhcmVkX2ZsYWc9Jy1HJwotKyAgICAgICAgICBlbHNlCi0rCSAgICBpZiB0ZXN0 ICIkYWl4X3VzZV9ydW50aW1lbGlua2luZyIgPSB5ZXM7IHRoZW4KLSsJICAgICAgc2hhcmVkX2Zs YWc9JyR7d2x9LUcnCi0rCSAgICBlbHNlCi0rCSAgICAgIHNoYXJlZF9mbGFnPScke3dsfS1iTTpT UkUnCi0rCSAgICBmaQotKyAgICAgICAgICBmaQotKyAgICAgICAgZmkKLSsKLSsgICAgICAgIGV4 cG9ydF9keW5hbWljX2ZsYWdfc3BlY19DWFg9JyR7d2x9LWJleHBhbGwnCi0rICAgICAgICAjIEl0 IHNlZW1zIHRoYXQgLWJleHBhbGwgZG9lcyBub3QgZXhwb3J0IHN5bWJvbHMgYmVnaW5uaW5nIHdp dGgKLSsgICAgICAgICMgdW5kZXJzY29yZSAoXyksIHNvIGl0IGlzIGJldHRlciB0byBnZW5lcmF0 ZSBhIGxpc3Qgb2Ygc3ltYm9scyB0bwotKwkjIGV4cG9ydC4KLSsgICAgICAgIGFsd2F5c19leHBv cnRfc3ltYm9sc19DWFg9eWVzCi0rICAgICAgICBpZiB0ZXN0ICIkYWl4X3VzZV9ydW50aW1lbGlu a2luZyIgPSB5ZXM7IHRoZW4KLSsgICAgICAgICAgIyBXYXJuaW5nIC0gd2l0aG91dCB1c2luZyB0 aGUgb3RoZXIgcnVudGltZSBsb2FkaW5nIGZsYWdzICgtYnJ0bCksCi0rICAgICAgICAgICMgLWJl cm9rIHdpbGwgbGluayB3aXRob3V0IGVycm9yLCBidXQgbWF5IHByb2R1Y2UgYSBicm9rZW4gbGli cmFyeS4KLSsgICAgICAgICAgYWxsb3dfdW5kZWZpbmVkX2ZsYWdfQ1hYPSctYmVyb2snCi0rICAg ICAgICAgICMgRGV0ZXJtaW5lIHRoZSBkZWZhdWx0IGxpYnBhdGggZnJvbSB0aGUgdmFsdWUgZW5j b2RlZCBpbiBhbiBlbXB0eQotKyAgICAgICAgICAjIGV4ZWN1dGFibGUuCi0rICAgICAgICAgIGNh dCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotKy8qIGNvbmZkZWZzLmguICAqLwotK19BQ0VP RgotK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAotK2NhdCA+PmNvbmZ0ZXN0LiRh Y19leHQgPDxfQUNFT0YKLSsvKiBlbmQgY29uZmRlZnMuaC4gICovCi0rCi0raW50Ci0rbWFpbiAo KQotK3sKLSsKLSsgIDsKLSsgIHJldHVybiAwOwotK30KLStfQUNFT0YKLStybSAtZiBjb25mdGVz dC4kYWNfb2JqZXh0IGNvbmZ0ZXN0JGFjX2V4ZWV4dAotK2lmIHsgKGFjX3RyeT0iJGFjX2xpbmsi Ci0rY2FzZSAiKCgkYWNfdHJ5IiBpbgotKyAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNo bz1cJGFjX3RyeTs7Ci0rICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKLStlc2FjCi0rZXZhbCBh Y190cnlfZWNobz0iXCJcJGFzX21lOiRMSU5FTk86ICRhY190cnlfZWNob1wiIgotKyRhc19lY2hv ICIkYWNfdHJ5X2VjaG8iKSA+JjUKLSsgIChldmFsICIkYWNfbGluayIpIDI+Y29uZnRlc3QuZXIx Ci0rICBhY19zdGF0dXM9JD8KLSsgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRl c3QuZXJyCi0rICBybSAtZiBjb25mdGVzdC5lcjEKLSsgIGNhdCBjb25mdGVzdC5lcnIgPiY1Ci0r ICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotKyAgKGV4 aXQgJGFjX3N0YXR1cyk7IH0gJiYgewotKwkgdGVzdCAteiAiJGFjX2N4eF93ZXJyb3JfZmxhZyIg fHwKLSsJIHRlc3QgISAtcyBjb25mdGVzdC5lcnIKLSsgICAgICAgfSAmJiB0ZXN0IC1zIGNvbmZ0 ZXN0JGFjX2V4ZWV4dCAmJiB7Ci0rCSB0ZXN0ICIkY3Jvc3NfY29tcGlsaW5nIiA9IHllcyB8fAot KwkgJGFzX3Rlc3RfeCBjb25mdGVzdCRhY19leGVleHQKLSsgICAgICAgfTsgdGhlbgotKwotK2x0 X2FpeF9saWJwYXRoX3NlZD0nCi0rICAgIC9JbXBvcnQgRmlsZSBTdHJpbmdzLywvXiQvIHsKLSsJ L14wLyB7Ci0rCSAgICBzL14wICAqXCguKlwpJC9cMS8KLSsJICAgIHAKLSsJfQotKyAgICB9Jwot K2FpeF9saWJwYXRoPWBkdW1wIC1IIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAyPi9kZXYvbnVsbCB8ICRT RUQgLW4gLWUgIiRsdF9haXhfbGlicGF0aF9zZWQiYAotKyMgQ2hlY2sgZm9yIGEgNjQtYml0IG9i amVjdCBpZiB3ZSBkaWRuJ3QgZmluZCBhbnl0aGluZy4KLStpZiB0ZXN0IC16ICIkYWl4X2xpYnBh dGgiOyB0aGVuCi0rICBhaXhfbGlicGF0aD1gZHVtcCAtSFg2NCBjb25mdGVzdCRhY19leGVleHQg Mj4vZGV2L251bGwgfCAkU0VEIC1uIC1lICIkbHRfYWl4X2xpYnBhdGhfc2VkImAKLStmaQotK2Vs c2UKLSsgICRhc19lY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQotK3NlZCAn cy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKLSsKLSsKLStmaQotKwotK3JtIC1yZiBjb25m dGVzdC5kU1lNCi0rcm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBj b25mdGVzdF9pcGE4X2NvbmZ0ZXN0Lm9vIFwKLSsgICAgICBjb25mdGVzdCRhY19leGVleHQgY29u ZnRlc3QuJGFjX2V4dAotK2lmIHRlc3QgLXogIiRhaXhfbGlicGF0aCI7IHRoZW4gYWl4X2xpYnBh dGg9Ii91c3IvbGliOi9saWIiOyBmaQotKwotKyAgICAgICAgICBoYXJkY29kZV9saWJkaXJfZmxh Z19zcGVjX0NYWD0nJHt3bH0tYmxpYnBhdGg6JGxpYmRpcjonIiRhaXhfbGlicGF0aCIKLSsKLSsg ICAgICAgICAgYXJjaGl2ZV9leHBzeW1fY21kc19DWFg9JyRDQyAtbyAkb3V0cHV0X29iamRpci8k c29uYW1lICRsaWJvYmpzICRkZXBsaWJzICciXCR7d2x9JG5vX2VudHJ5X2ZsYWciJyAkY29tcGls ZXJfZmxhZ3MgYGlmIHRlc3QgIngke2FsbG93X3VuZGVmaW5lZF9mbGFnfSIgIT0gIngiOyB0aGVu ICRFQ0hPICJYJHt3bH0ke2FsbG93X3VuZGVmaW5lZF9mbGFnfSIgfCAkWHNlZDsgZWxzZSA6OyBm aWAgJyJcJHt3bH0kZXhwX3N5bV9mbGFnOlwkZXhwb3J0X3N5bWJvbHMgJHNoYXJlZF9mbGFnIgot KyAgICAgICAgZWxzZQotKyAgICAgICAgICBpZiB0ZXN0ICIkaG9zdF9jcHUiID0gaWE2NDsgdGhl bgotKwkgICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19DWFg9JyR7d2x9LVIgJGxpYmRpcjov dXNyL2xpYjovbGliJwotKwkgICAgYWxsb3dfdW5kZWZpbmVkX2ZsYWdfQ1hYPSIteiBub2RlZnMi Ci0rCSAgICBhcmNoaXZlX2V4cHN5bV9jbWRzX0NYWD0iXCRDQyAkc2hhcmVkX2ZsYWciJyAtbyAk b3V0cHV0X29iamRpci8kc29uYW1lICRsaWJvYmpzICRkZXBsaWJzICciXCR7d2x9JG5vX2VudHJ5 X2ZsYWciJyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0ke2FsbG93X3VuZGVmaW5lZF9mbGFnfSAnIlwk e3dsfSRleHBfc3ltX2ZsYWc6XCRleHBvcnRfc3ltYm9scyIKLSsgICAgICAgICAgZWxzZQotKwkg ICAgIyBEZXRlcm1pbmUgdGhlIGRlZmF1bHQgbGlicGF0aCBmcm9tIHRoZSB2YWx1ZSBlbmNvZGVk IGluIGFuCi0rCSAgICAjIGVtcHR5IGV4ZWN1dGFibGUuCi0rCSAgICBjYXQgPmNvbmZ0ZXN0LiRh Y19leHQgPDxfQUNFT0YKLSsvKiBjb25mZGVmcy5oLiAgKi8KLStfQUNFT0YKLStjYXQgY29uZmRl ZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKLStjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9G Ci0rLyogZW5kIGNvbmZkZWZzLmguICAqLwotKwotK2ludAotK21haW4gKCkKLSt7Ci0rCi0rICA7 Ci0rICByZXR1cm4gMDsKLSt9Ci0rX0FDRU9GCi0rcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dCBj b25mdGVzdCRhY19leGVleHQKLStpZiB7IChhY190cnk9IiRhY19saW5rIgotK2Nhc2UgIigoJGFj X3RyeSIgaW4KLSsgICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7Owot KyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7Ci0rZXNhYwotK2V2YWwgYWNfdHJ5X2VjaG89Ilwi XCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIKLSskYXNfZWNobyAiJGFjX3RyeV9lY2hv IikgPiY1Ci0rICAoZXZhbCAiJGFjX2xpbmsiKSAyPmNvbmZ0ZXN0LmVyMQotKyAgYWNfc3RhdHVz PSQ/Ci0rICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgotKyAgcm0g LWYgY29uZnRlc3QuZXIxCi0rICBjYXQgY29uZnRlc3QuZXJyID4mNQotKyAgJGFzX2VjaG8gIiRh c19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSsgIChleGl0ICRhY19zdGF0dXMp OyB9ICYmIHsKLSsJIHRlc3QgLXogIiRhY19jeHhfd2Vycm9yX2ZsYWciIHx8Ci0rCSB0ZXN0ICEg LXMgY29uZnRlc3QuZXJyCi0rICAgICAgIH0gJiYgdGVzdCAtcyBjb25mdGVzdCRhY19leGVleHQg JiYgewotKwkgdGVzdCAiJGNyb3NzX2NvbXBpbGluZyIgPSB5ZXMgfHwKLSsJICRhc190ZXN0X3gg Y29uZnRlc3QkYWNfZXhlZXh0Ci0rICAgICAgIH07IHRoZW4KLSsKLStsdF9haXhfbGlicGF0aF9z ZWQ9JwotKyAgICAvSW1wb3J0IEZpbGUgU3RyaW5ncy8sL14kLyB7Ci0rCS9eMC8gewotKwkgICAg cy9eMCAgKlwoLipcKSQvXDEvCi0rCSAgICBwCi0rCX0KLSsgICAgfScKLSthaXhfbGlicGF0aD1g ZHVtcCAtSCBjb25mdGVzdCRhY19leGVleHQgMj4vZGV2L251bGwgfCAkU0VEIC1uIC1lICIkbHRf YWl4X2xpYnBhdGhfc2VkImAKLSsjIENoZWNrIGZvciBhIDY0LWJpdCBvYmplY3QgaWYgd2UgZGlk bid0IGZpbmQgYW55dGhpbmcuCi0raWYgdGVzdCAteiAiJGFpeF9saWJwYXRoIjsgdGhlbgotKyAg YWl4X2xpYnBhdGg9YGR1bXAgLUhYNjQgY29uZnRlc3QkYWNfZXhlZXh0IDI+L2Rldi9udWxsIHwg JFNFRCAtbiAtZSAiJGx0X2FpeF9saWJwYXRoX3NlZCJgCi0rZmkKLStlbHNlCi0rICAkYXNfZWNo byAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLStzZWQgJ3MvXi98IC8nIGNvbmZ0 ZXN0LiRhY19leHQgPiY1Ci0rCi0rCi0rZmkKLSsKLStybSAtcmYgY29uZnRlc3QuZFNZTQotK3Jt IC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3RfaXBhOF9j b25mdGVzdC5vbyBcCi0rICAgICAgY29uZnRlc3QkYWNfZXhlZXh0IGNvbmZ0ZXN0LiRhY19leHQK LStpZiB0ZXN0IC16ICIkYWl4X2xpYnBhdGgiOyB0aGVuIGFpeF9saWJwYXRoPSIvdXNyL2xpYjov bGliIjsgZmkKLSsKLSsJICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfQ1hYPScke3dsfS1i bGlicGF0aDokbGliZGlyOiciJGFpeF9saWJwYXRoIgotKwkgICAgIyBXYXJuaW5nIC0gd2l0aG91 dCB1c2luZyB0aGUgb3RoZXIgcnVuIHRpbWUgbG9hZGluZyBmbGFncywKLSsJICAgICMgLWJlcm9r IHdpbGwgbGluayB3aXRob3V0IGVycm9yLCBidXQgbWF5IHByb2R1Y2UgYSBicm9rZW4gbGlicmFy eS4KLSsJICAgIG5vX3VuZGVmaW5lZF9mbGFnX0NYWD0nICR7d2x9LWJlcm5vdG9rJwotKwkgICAg YWxsb3dfdW5kZWZpbmVkX2ZsYWdfQ1hYPScgJHt3bH0tYmVyb2snCi0rCSAgICAjIEV4cG9ydGVk IHN5bWJvbHMgY2FuIGJlIHB1bGxlZCBpbnRvIHNoYXJlZCBvYmplY3RzIGZyb20gYXJjaGl2ZXMK LSsJICAgIHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjX0NYWD0nJGNvbnZlbmllbmNlJwotKwkgICAg YXJjaGl2ZV9jbWRzX25lZWRfbGNfQ1hYPXllcwotKwkgICAgIyBUaGlzIGlzIHNpbWlsYXIgdG8g aG93IEFJWCB0cmFkaXRpb25hbGx5IGJ1aWxkcyBpdHMgc2hhcmVkCi0rCSAgICAjIGxpYnJhcmll cy4KLSsJICAgIGFyY2hpdmVfZXhwc3ltX2NtZHNfQ1hYPSJcJENDICRzaGFyZWRfZmxhZyInIC1v ICRvdXRwdXRfb2JqZGlyLyRzb25hbWUgJGxpYm9ianMgJGRlcGxpYnMgJHt3bH0tYm5vZW50cnkg JGNvbXBpbGVyX2ZsYWdzICR7d2x9LWJFOiRleHBvcnRfc3ltYm9scyR7YWxsb3dfdW5kZWZpbmVk X2ZsYWd9fiRBUiAkQVJfRkxBR1MgJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUkcmVsZWFzZS5hICRv dXRwdXRfb2JqZGlyLyRzb25hbWUnCi0rICAgICAgICAgIGZpCi0rICAgICAgICBmaQotKyAgICAg ICAgOzsKLSsKLSsgICAgICBiZW9zKikKLSsJaWYgJExEIC0taGVscCAyPiYxIHwgJEdSRVAgJzog c3VwcG9ydGVkIHRhcmdldHM6LiogZWxmJyA+IC9kZXYvbnVsbDsgdGhlbgotKwkgIGFsbG93X3Vu ZGVmaW5lZF9mbGFnX0NYWD11bnN1cHBvcnRlZAotKwkgICMgSm9zZXBoIEJlY2tlbmJhY2ggPGpy YjNAYmVzdC5jb20+IHNheXMgc29tZSByZWxlYXNlcyBvZiBnY2MKLSsJICAjIHN1cHBvcnQgLS11 bmRlZmluZWQuICBUaGlzIGRlc2VydmVzIHNvbWUgaW52ZXN0aWdhdGlvbi4gIEZJWE1FCi0rCSAg YXJjaGl2ZV9jbWRzX0NYWD0nJENDIC1ub3N0YXJ0ICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxl cl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAtbyAkbGliJwotKwllbHNlCi0rCSAgbGRf c2hsaWJzX0NYWD1ubwotKwlmaQotKwk7OwotKwotKyAgICAgIGNob3J1cyopCi0rICAgICAgICBj YXNlICRjY19iYXNlbmFtZSBpbgotKyAgICAgICAgICAqKQotKwkgICMgRklYTUU6IGluc2VydCBw cm9wZXIgQysrIGxpYnJhcnkgc3VwcG9ydAotKwkgIGxkX3NobGlic19DWFg9bm8KLSsJICA7Owot KyAgICAgICAgZXNhYwotKyAgICAgICAgOzsKLSsKLSsgICAgICBjeWd3aW4qIHwgbWluZ3cqIHwg cHczMiogfCBjZWdjYyopCi0rICAgICAgICAjIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2Zs YWdfc3BlYywgQ1hYKSBpcyBhY3R1YWxseSBtZWFuaW5nbGVzcywKLSsgICAgICAgICMgYXMgdGhl cmUgaXMgbm8gc2VhcmNoIHBhdGggZm9yIERMTHMuCi0rICAgICAgICBoYXJkY29kZV9saWJkaXJf ZmxhZ19zcGVjX0NYWD0nLUwkbGliZGlyJwotKyAgICAgICAgYWxsb3dfdW5kZWZpbmVkX2ZsYWdf Q1hYPXVuc3VwcG9ydGVkCi0rICAgICAgICBhbHdheXNfZXhwb3J0X3N5bWJvbHNfQ1hYPW5vCi0r ICAgICAgICBlbmFibGVfc2hhcmVkX3dpdGhfc3RhdGljX3J1bnRpbWVzX0NYWD15ZXMKLSsKLSsg ICAgICAgIGlmICRMRCAtLWhlbHAgMj4mMSB8ICRHUkVQICdhdXRvLWltcG9ydCcgPiAvZGV2L251 bGw7IHRoZW4KLSsgICAgICAgICAgYXJjaGl2ZV9jbWRzX0NYWD0nJENDIC1zaGFyZWQgLW5vc3Rk bGliICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRj b21waWxlcl9mbGFncyAtbyAkb3V0cHV0X29iamRpci8kc29uYW1lICR7d2x9LS1lbmFibGUtYXV0 by1pbWFnZS1iYXNlIC1YbGlua2VyIC0tb3V0LWltcGxpYiAtWGxpbmtlciAkbGliJwotKyAgICAg ICAgICAjIElmIHRoZSBleHBvcnQtc3ltYm9scyBmaWxlIGFscmVhZHkgaXMgYSAuZGVmIGZpbGUg KDFzdCBsaW5lCi0rICAgICAgICAgICMgaXMgRVhQT1JUUyksIHVzZSBpdCBhcyBpczsgb3RoZXJ3 aXNlLCBwcmVwZW5kLi4uCi0rICAgICAgICAgIGFyY2hpdmVfZXhwc3ltX2NtZHNfQ1hYPSdpZiB0 ZXN0ICJ4YCRTRUQgMXEgJGV4cG9ydF9zeW1ib2xzYCIgPSB4RVhQT1JUUzsgdGhlbgotKwkgICAg Y3AgJGV4cG9ydF9zeW1ib2xzICRvdXRwdXRfb2JqZGlyLyRzb25hbWUuZGVmOwotKyAgICAgICAg ICBlbHNlCi0rCSAgICBlY2hvIEVYUE9SVFMgPiAkb3V0cHV0X29iamRpci8kc29uYW1lLmRlZjsK LSsJICAgIGNhdCAkZXhwb3J0X3N5bWJvbHMgPj4gJG91dHB1dF9vYmpkaXIvJHNvbmFtZS5kZWY7 Ci0rICAgICAgICAgIGZpfgotKyAgICAgICAgICAkQ0MgLXNoYXJlZCAtbm9zdGRsaWIgJG91dHB1 dF9vYmpkaXIvJHNvbmFtZS5kZWYgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRw b3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzIC1vICRvdXRwdXRfb2JqZGlyLyRzb25hbWUg JHt3bH0tLWVuYWJsZS1hdXRvLWltYWdlLWJhc2UgLVhsaW5rZXIgLS1vdXQtaW1wbGliIC1YbGlu a2VyICRsaWInCi0rICAgICAgICBlbHNlCi0rICAgICAgICAgIGxkX3NobGlic19DWFg9bm8KLSsg ICAgICAgIGZpCi0rICAgICAgICA7OwotKyAgICAgIGRhcndpbiogfCByaGFwc29keSopCi0rCi0r Ci0rICBhcmNoaXZlX2NtZHNfbmVlZF9sY19DWFg9bm8KLSsgIGhhcmRjb2RlX2RpcmVjdF9DWFg9 bm8KLSsgIGhhcmRjb2RlX2F1dG9tYXRpY19DWFg9eWVzCi0rICBoYXJkY29kZV9zaGxpYnBhdGhf dmFyX0NYWD11bnN1cHBvcnRlZAotKyAgd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWNfQ1hYPScnCi0r ICBsaW5rX2FsbF9kZXBsaWJzX0NYWD15ZXMKLSsgIGFsbG93X3VuZGVmaW5lZF9mbGFnX0NYWD0i JF9sdF9kYXJfYWxsb3dfdW5kZWZpbmVkIgotKyAgY2FzZSAkY2NfYmFzZW5hbWUgaW4KLSsgICAg IGlmb3J0KikgX2x0X2Rhcl9jYW5fc2hhcmVkPXllcyA7OwotKyAgICAgKikgX2x0X2Rhcl9jYW5f c2hhcmVkPSRHQ0MgOzsKLSsgIGVzYWMKLSsgIGlmIHRlc3QgIiRfbHRfZGFyX2Nhbl9zaGFyZWQi ID0gInllcyI7IHRoZW4KLSsgICAgb3V0cHV0X3ZlcmJvc2VfbGlua19jbWQ9ZWNobwotKyAgICBh cmNoaXZlX2NtZHNfQ1hYPSJcJENDIC1keW5hbWljbGliIFwkYWxsb3dfdW5kZWZpbmVkX2ZsYWcg LW8gXCRsaWIgXCRsaWJvYmpzIFwkZGVwbGlicyBcJGNvbXBpbGVyX2ZsYWdzIC1pbnN0YWxsX25h bWUgXCRycGF0aC9cJHNvbmFtZSBcJHZlcnN0cmluZyAkX2x0X2Rhcl9zaW5nbGVfbW9kJHtfbHRf ZHN5bXV0aWx9IgotKyAgICBtb2R1bGVfY21kc19DWFg9IlwkQ0MgXCRhbGxvd191bmRlZmluZWRf ZmxhZyAtbyBcJGxpYiAtYnVuZGxlIFwkbGlib2JqcyBcJGRlcGxpYnMgXCRjb21waWxlcl9mbGFn cyR7X2x0X2RzeW11dGlsfSIKLSsgICAgYXJjaGl2ZV9leHBzeW1fY21kc19DWFg9InNlZCAncyxe LF8sJyA8IFwkZXhwb3J0X3N5bWJvbHMgPiBcJG91dHB1dF9vYmpkaXIvXCR7bGlibmFtZX0tc3lt Ym9scy5leHBzeW1+XCRDQyAtZHluYW1pY2xpYiBcJGFsbG93X3VuZGVmaW5lZF9mbGFnIC1vIFwk bGliIFwkbGlib2JqcyBcJGRlcGxpYnMgXCRjb21waWxlcl9mbGFncyAtaW5zdGFsbF9uYW1lIFwk cnBhdGgvXCRzb25hbWUgXCR2ZXJzdHJpbmcgJHtfbHRfZGFyX3NpbmdsZV9tb2R9JHtfbHRfZGFy X2V4cG9ydF9zeW1zfSR7X2x0X2RzeW11dGlsfSIKLSsgICAgbW9kdWxlX2V4cHN5bV9jbWRzX0NY WD0ic2VkIC1lICdzLF4sXywnIDwgXCRleHBvcnRfc3ltYm9scyA+IFwkb3V0cHV0X29iamRpci9c JHtsaWJuYW1lfS1zeW1ib2xzLmV4cHN5bX5cJENDIFwkYWxsb3dfdW5kZWZpbmVkX2ZsYWcgLW8g XCRsaWIgLWJ1bmRsZSBcJGxpYm9ianMgXCRkZXBsaWJzIFwkY29tcGlsZXJfZmxhZ3Mke19sdF9k YXJfZXhwb3J0X3N5bXN9JHtfbHRfZHN5bXV0aWx9IgotKyAgICAgICBpZiB0ZXN0ICIkbHRfY3Zf YXBwbGVfY2Nfc2luZ2xlX21vZCIgIT0gInllcyI7IHRoZW4KLSsgICAgICBhcmNoaXZlX2NtZHNf Q1hYPSJcJENDIC1yIC1rZWVwX3ByaXZhdGVfZXh0ZXJucyAtbm9zdGRsaWIgLW8gXCR7bGlifS1t YXN0ZXIubyBcJGxpYm9ianN+XCRDQyAtZHluYW1pY2xpYiBcJGFsbG93X3VuZGVmaW5lZF9mbGFn IC1vIFwkbGliIFwke2xpYn0tbWFzdGVyLm8gXCRkZXBsaWJzIFwkY29tcGlsZXJfZmxhZ3MgLWlu c3RhbGxfbmFtZSBcJHJwYXRoL1wkc29uYW1lIFwkdmVyc3RyaW5nJHtfbHRfZHN5bXV0aWx9Igot KyAgICAgIGFyY2hpdmVfZXhwc3ltX2NtZHNfQ1hYPSJzZWQgJ3MsXixfLCcgPCBcJGV4cG9ydF9z eW1ib2xzID4gXCRvdXRwdXRfb2JqZGlyL1wke2xpYm5hbWV9LXN5bWJvbHMuZXhwc3ltflwkQ0Mg LXIgLWtlZXBfcHJpdmF0ZV9leHRlcm5zIC1ub3N0ZGxpYiAtbyBcJHtsaWJ9LW1hc3Rlci5vIFwk bGlib2Jqc35cJENDIC1keW5hbWljbGliIFwkYWxsb3dfdW5kZWZpbmVkX2ZsYWcgLW8gXCRsaWIg XCR7bGlifS1tYXN0ZXIubyBcJGRlcGxpYnMgXCRjb21waWxlcl9mbGFncyAtaW5zdGFsbF9uYW1l IFwkcnBhdGgvXCRzb25hbWUgXCR2ZXJzdHJpbmcke19sdF9kYXJfZXhwb3J0X3N5bXN9JHtfbHRf ZHN5bXV0aWx9IgotKyAgICBmaQotKwotKyAgZWxzZQotKyAgbGRfc2hsaWJzX0NYWD1ubwotKyAg ZmkKLSsKLSsJOzsKLSsKLSsgICAgICBkZ3V4KikKLSsgICAgICAgIGNhc2UgJGNjX2Jhc2VuYW1l IGluCi0rICAgICAgICAgIGVjKysqKQotKwkgICAgIyBGSVhNRTogaW5zZXJ0IHByb3BlciBDKysg bGlicmFyeSBzdXBwb3J0Ci0rCSAgICBsZF9zaGxpYnNfQ1hYPW5vCi0rCSAgICA7OwotKyAgICAg ICAgICBnaGN4KikKLSsJICAgICMgR3JlZW4gSGlsbHMgQysrIENvbXBpbGVyCi0rCSAgICAjIEZJ WE1FOiBpbnNlcnQgcHJvcGVyIEMrKyBsaWJyYXJ5IHN1cHBvcnQKLSsJICAgIGxkX3NobGlic19D WFg9bm8KLSsJICAgIDs7Ci0rICAgICAgICAgICopCi0rCSAgICAjIEZJWE1FOiBpbnNlcnQgcHJv cGVyIEMrKyBsaWJyYXJ5IHN1cHBvcnQKLSsJICAgIGxkX3NobGlic19DWFg9bm8KLSsJICAgIDs7 Ci0rICAgICAgICBlc2FjCi0rICAgICAgICA7OwotKwotKyAgICAgIGZyZWVic2RbMTJdKikKLSsg ICAgICAgICMgQysrIHNoYXJlZCBsaWJyYXJpZXMgcmVwb3J0ZWQgdG8gYmUgZmFpcmx5IGJyb2tl biBiZWZvcmUKLSsJIyBzd2l0Y2ggdG8gRUxGCi0rICAgICAgICBsZF9zaGxpYnNfQ1hYPW5vCi0r ICAgICAgICA7OwotKwotKyAgICAgIGZyZWVic2QtZWxmKikKLSsgICAgICAgIGFyY2hpdmVfY21k c19uZWVkX2xjX0NYWD1ubwotKyAgICAgICAgOzsKLSsKLSsgICAgICBmcmVlYnNkKiB8IGRyYWdv bmZseSopCi0rICAgICAgICAjIEZyZWVCU0QgMyBhbmQgbGF0ZXIgdXNlIEdOVSBDKysgYW5kIEdO VSBsZCB3aXRoIHN0YW5kYXJkIEVMRgotKyAgICAgICAgIyBjb252ZW50aW9ucwotKyAgICAgICAg bGRfc2hsaWJzX0NYWD15ZXMKLSsgICAgICAgIDs7Ci0rCi0rICAgICAgZ251KikKLSsgICAgICAg IDs7Ci0rCi0rICAgICAgaHB1eDkqKQotKyAgICAgICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3Bl Y19DWFg9JyR7d2x9K2IgJHt3bH0kbGliZGlyJwotKyAgICAgICAgaGFyZGNvZGVfbGliZGlyX3Nl cGFyYXRvcl9DWFg9OgotKyAgICAgICAgZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjX0NYWD0nJHt3 bH0tRScKLSsgICAgICAgIGhhcmRjb2RlX2RpcmVjdF9DWFg9eWVzCi0rICAgICAgICBoYXJkY29k ZV9taW51c19MX0NYWD15ZXMgIyBOb3QgaW4gdGhlIHNlYXJjaCBQQVRILAotKwkJCQkgICAgICAg ICAgICAgIyBidXQgYXMgdGhlIGRlZmF1bHQKLSsJCQkJICAgICAgICAgICAgICMgbG9jYXRpb24g b2YgdGhlIGxpYnJhcnkuCi0rCi0rICAgICAgICBjYXNlICRjY19iYXNlbmFtZSBpbgotKyAgICAg ICAgICBDQyopCi0rICAgICAgICAgICAgIyBGSVhNRTogaW5zZXJ0IHByb3BlciBDKysgbGlicmFy eSBzdXBwb3J0Ci0rICAgICAgICAgICAgbGRfc2hsaWJzX0NYWD1ubwotKyAgICAgICAgICAgIDs7 Ci0rICAgICAgICAgIGFDQyopCi0rICAgICAgICAgICAgYXJjaGl2ZV9jbWRzX0NYWD0nJFJNICRv dXRwdXRfb2JqZGlyLyRzb25hbWV+JENDIC1iICR7d2x9K2IgJHt3bH0kaW5zdGFsbF9saWJkaXIg LW8gJG91dHB1dF9vYmpkaXIvJHNvbmFtZSAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxp YnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3N+dGVzdCAkb3V0cHV0X29iamRpci8k c29uYW1lID0gJGxpYiB8fCBtdiAkb3V0cHV0X29iamRpci8kc29uYW1lICRsaWInCi0rICAgICAg ICAgICAgIyBDb21tYW5kcyB0byBtYWtlIGNvbXBpbGVyIHByb2R1Y2UgdmVyYm9zZSBvdXRwdXQg dGhhdCBsaXN0cwotKyAgICAgICAgICAgICMgd2hhdCAiaGlkZGVuIiBsaWJyYXJpZXMsIG9iamVj dCBmaWxlcyBhbmQgZmxhZ3MgYXJlIHVzZWQgd2hlbgotKyAgICAgICAgICAgICMgbGlua2luZyBh IHNoYXJlZCBsaWJyYXJ5LgotKyAgICAgICAgICAgICMKLSsgICAgICAgICAgICAjIFRoZXJlIGRv ZXNuJ3QgYXBwZWFyIHRvIGJlIGEgd2F5IHRvIHByZXZlbnQgdGhpcyBjb21waWxlciBmcm9tCi0r ICAgICAgICAgICAgIyBleHBsaWNpdGx5IGxpbmtpbmcgc3lzdGVtIG9iamVjdCBmaWxlcyBzbyB3 ZSBuZWVkIHRvIHN0cmlwIHRoZW0KLSsgICAgICAgICAgICAjIGZyb20gdGhlIG91dHB1dCBzbyB0 aGF0IHRoZXkgZG9uJ3QgZ2V0IGluY2x1ZGVkIGluIHRoZSBsaWJyYXJ5Ci0rICAgICAgICAgICAg IyBkZXBlbmRlbmNpZXMuCi0rICAgICAgICAgICAgb3V0cHV0X3ZlcmJvc2VfbGlua19jbWQ9J3Rl bXBsaXN0PWAoJENDIC1iICRDRkxBR1MgLXYgY29uZnRlc3QuJG9iamV4dCAyPiYxKSB8ICRFR1JF UCAiXC1MImA7IGxpc3Q9IiI7IGZvciB6IGluICR0ZW1wbGlzdDsgZG8gY2FzZSAkeiBpbiBjb25m dGVzdC4kb2JqZXh0KSBsaXN0PSIkbGlzdCAkeiI7OyAqLiRvYmpleHQpOzsgKikgbGlzdD0iJGxp c3QgJHoiOztlc2FjOyBkb25lOyAkRUNITyAiWCRsaXN0IiB8ICRYc2VkJwotKyAgICAgICAgICAg IDs7Ci0rICAgICAgICAgICopCi0rICAgICAgICAgICAgaWYgdGVzdCAiJEdYWCIgPSB5ZXM7IHRo ZW4KLSsgICAgICAgICAgICAgIGFyY2hpdmVfY21kc19DWFg9JyRSTSAkb3V0cHV0X29iamRpci8k c29uYW1lfiRDQyAtc2hhcmVkIC1ub3N0ZGxpYiAtZlBJQyAke3dsfStiICR7d2x9JGluc3RhbGxf bGliZGlyIC1vICRvdXRwdXRfb2JqZGlyLyRzb25hbWUgJHByZWRlcF9vYmplY3RzICRsaWJvYmpz ICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzfnRlc3QgJG91dHB1dF9v YmpkaXIvJHNvbmFtZSA9ICRsaWIgfHwgbXYgJG91dHB1dF9vYmpkaXIvJHNvbmFtZSAkbGliJwot KyAgICAgICAgICAgIGVsc2UKLSsgICAgICAgICAgICAgICMgRklYTUU6IGluc2VydCBwcm9wZXIg QysrIGxpYnJhcnkgc3VwcG9ydAotKyAgICAgICAgICAgICAgbGRfc2hsaWJzX0NYWD1ubwotKyAg ICAgICAgICAgIGZpCi0rICAgICAgICAgICAgOzsKLSsgICAgICAgIGVzYWMKLSsgICAgICAgIDs7 Ci0rCi0rICAgICAgaHB1eDEwKnxocHV4MTEqKQotKyAgICAgICAgaWYgdGVzdCAkd2l0aF9nbnVf bGQgPSBubzsgdGhlbgotKwkgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfQ1hYPScke3dsfSti ICR7d2x9JGxpYmRpcicKLSsJICBoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yX0NYWD06Ci0rCi0r ICAgICAgICAgIGNhc2UgJGhvc3RfY3B1IGluCi0rICAgICAgICAgICAgaHBwYSo2NCp8aWE2NCop Ci0rICAgICAgICAgICAgICA7OwotKyAgICAgICAgICAgICopCi0rCSAgICAgIGV4cG9ydF9keW5h bWljX2ZsYWdfc3BlY19DWFg9JyR7d2x9LUUnCi0rICAgICAgICAgICAgICA7OwotKyAgICAgICAg ICBlc2FjCi0rICAgICAgICBmaQotKyAgICAgICAgY2FzZSAkaG9zdF9jcHUgaW4KLSsgICAgICAg ICAgaHBwYSo2NCp8aWE2NCopCi0rICAgICAgICAgICAgaGFyZGNvZGVfZGlyZWN0X0NYWD1ubwot KyAgICAgICAgICAgIGhhcmRjb2RlX3NobGlicGF0aF92YXJfQ1hYPW5vCi0rICAgICAgICAgICAg OzsKLSsgICAgICAgICAgKikKLSsgICAgICAgICAgICBoYXJkY29kZV9kaXJlY3RfQ1hYPXllcwot KyAgICAgICAgICAgIGhhcmRjb2RlX2RpcmVjdF9hYnNvbHV0ZV9DWFg9eWVzCi0rICAgICAgICAg ICAgaGFyZGNvZGVfbWludXNfTF9DWFg9eWVzICMgTm90IGluIHRoZSBzZWFyY2ggUEFUSCwKLSsJ CQkJCSAgICAgICAgICMgYnV0IGFzIHRoZSBkZWZhdWx0Ci0rCQkJCQkgICAgICAgICAjIGxvY2F0 aW9uIG9mIHRoZSBsaWJyYXJ5LgotKyAgICAgICAgICAgIDs7Ci0rICAgICAgICBlc2FjCi0rCi0r ICAgICAgICBjYXNlICRjY19iYXNlbmFtZSBpbgotKyAgICAgICAgICBDQyopCi0rCSAgICAjIEZJ WE1FOiBpbnNlcnQgcHJvcGVyIEMrKyBsaWJyYXJ5IHN1cHBvcnQKLSsJICAgIGxkX3NobGlic19D WFg9bm8KLSsJICAgIDs7Ci0rICAgICAgICAgIGFDQyopCi0rCSAgICBjYXNlICRob3N0X2NwdSBp bgotKwkgICAgICBocHBhKjY0KikKLSsJICAgICAgICBhcmNoaXZlX2NtZHNfQ1hYPSckQ0MgLWIg JHt3bH0raCAke3dsfSRzb25hbWUgLW8gJGxpYiAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRl cGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MnCi0rCSAgICAgICAgOzsKLSsJ ICAgICAgaWE2NCopCi0rCSAgICAgICAgYXJjaGl2ZV9jbWRzX0NYWD0nJENDIC1iICR7d2x9K2gg JHt3bH0kc29uYW1lICR7d2x9K25vZGVmYXVsdHJwYXRoIC1vICRsaWIgJHByZWRlcF9vYmplY3Rz ICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzJwotKwkg ICAgICAgIDs7Ci0rCSAgICAgICopCi0rCSAgICAgICAgYXJjaGl2ZV9jbWRzX0NYWD0nJENDIC1i ICR7d2x9K2ggJHt3bH0kc29uYW1lICR7d2x9K2IgJHt3bH0kaW5zdGFsbF9saWJkaXIgLW8gJGxp YiAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29t cGlsZXJfZmxhZ3MnCi0rCSAgICAgICAgOzsKLSsJICAgIGVzYWMKLSsJICAgICMgQ29tbWFuZHMg dG8gbWFrZSBjb21waWxlciBwcm9kdWNlIHZlcmJvc2Ugb3V0cHV0IHRoYXQgbGlzdHMKLSsJICAg ICMgd2hhdCAiaGlkZGVuIiBsaWJyYXJpZXMsIG9iamVjdCBmaWxlcyBhbmQgZmxhZ3MgYXJlIHVz ZWQgd2hlbgotKwkgICAgIyBsaW5raW5nIGEgc2hhcmVkIGxpYnJhcnkuCi0rCSAgICAjCi0rCSAg ICAjIFRoZXJlIGRvZXNuJ3QgYXBwZWFyIHRvIGJlIGEgd2F5IHRvIHByZXZlbnQgdGhpcyBjb21w aWxlciBmcm9tCi0rCSAgICAjIGV4cGxpY2l0bHkgbGlua2luZyBzeXN0ZW0gb2JqZWN0IGZpbGVz IHNvIHdlIG5lZWQgdG8gc3RyaXAgdGhlbQotKwkgICAgIyBmcm9tIHRoZSBvdXRwdXQgc28gdGhh dCB0aGV5IGRvbid0IGdldCBpbmNsdWRlZCBpbiB0aGUgbGlicmFyeQotKwkgICAgIyBkZXBlbmRl bmNpZXMuCi0rCSAgICBvdXRwdXRfdmVyYm9zZV9saW5rX2NtZD0ndGVtcGxpc3Q9YCgkQ0MgLWIg JENGTEFHUyAtdiBjb25mdGVzdC4kb2JqZXh0IDI+JjEpIHwgJEdSRVAgIlwtTCJgOyBsaXN0PSIi OyBmb3IgeiBpbiAkdGVtcGxpc3Q7IGRvIGNhc2UgJHogaW4gY29uZnRlc3QuJG9iamV4dCkgbGlz dD0iJGxpc3QgJHoiOzsgKi4kb2JqZXh0KTs7ICopIGxpc3Q9IiRsaXN0ICR6Ijs7ZXNhYzsgZG9u ZTsgJEVDSE8gIlgkbGlzdCIgfCAkWHNlZCcKLSsJICAgIDs7Ci0rICAgICAgICAgICopCi0rCSAg ICBpZiB0ZXN0ICIkR1hYIiA9IHllczsgdGhlbgotKwkgICAgICBpZiB0ZXN0ICR3aXRoX2dudV9s ZCA9IG5vOyB0aGVuCi0rCSAgICAgICAgY2FzZSAkaG9zdF9jcHUgaW4KLSsJICAgICAgICAgIGhw cGEqNjQqKQotKwkgICAgICAgICAgICBhcmNoaXZlX2NtZHNfQ1hYPSckQ0MgLXNoYXJlZCAtbm9z dGRsaWIgLWZQSUMgJHt3bH0raCAke3dsfSRzb25hbWUgLW8gJGxpYiAkcHJlZGVwX29iamVjdHMg JGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MnCi0rCSAg ICAgICAgICAgIDs7Ci0rCSAgICAgICAgICBpYTY0KikKLSsJICAgICAgICAgICAgYXJjaGl2ZV9j bWRzX0NYWD0nJENDIC1zaGFyZWQgLW5vc3RkbGliIC1mUElDICR7d2x9K2ggJHt3bH0kc29uYW1l ICR7d2x9K25vZGVmYXVsdHJwYXRoIC1vICRsaWIgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRk ZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzJwotKwkgICAgICAgICAgICA7 OwotKwkgICAgICAgICAgKikKLSsJICAgICAgICAgICAgYXJjaGl2ZV9jbWRzX0NYWD0nJENDIC1z aGFyZWQgLW5vc3RkbGliIC1mUElDICR7d2x9K2ggJHt3bH0kc29uYW1lICR7d2x9K2IgJHt3bH0k aW5zdGFsbF9saWJkaXIgLW8gJGxpYiAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMg JHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MnCi0rCSAgICAgICAgICAgIDs7Ci0rCSAg ICAgICAgZXNhYwotKwkgICAgICBmaQotKwkgICAgZWxzZQotKwkgICAgICAjIEZJWE1FOiBpbnNl cnQgcHJvcGVyIEMrKyBsaWJyYXJ5IHN1cHBvcnQKLSsJICAgICAgbGRfc2hsaWJzX0NYWD1ubwot KwkgICAgZmkKLSsJICAgIDs7Ci0rICAgICAgICBlc2FjCi0rICAgICAgICA7OwotKwotKyAgICAg IGludGVyaXhbMy05XSopCi0rCWhhcmRjb2RlX2RpcmVjdF9DWFg9bm8KLSsJaGFyZGNvZGVfc2hs aWJwYXRoX3Zhcl9DWFg9bm8KLSsJaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19DWFg9JyR7d2x9 LXJwYXRoLCRsaWJkaXInCi0rCWV4cG9ydF9keW5hbWljX2ZsYWdfc3BlY19DWFg9JyR7d2x9LUUn Ci0rCSMgSGFjazogT24gSW50ZXJpeCAzLngsIHdlIGNhbm5vdCBjb21waWxlIFBJQyBiZWNhdXNl IG9mIGEgYnJva2VuIGdjYy4KLSsJIyBJbnN0ZWFkLCBzaGFyZWQgbGlicmFyaWVzIGFyZSBsb2Fk ZWQgYXQgYW4gaW1hZ2UgYmFzZSAoMHgxMDAwMDAwMCBieQotKwkjIGRlZmF1bHQpIGFuZCByZWxv Y2F0ZWQgaWYgdGhleSBjb25mbGljdCwgd2hpY2ggaXMgYSBzbG93IHZlcnkgbWVtb3J5Ci0rCSMg Y29uc3VtaW5nIGFuZCBmcmFnbWVudGluZyBwcm9jZXNzLiAgVG8gYXZvaWQgdGhpcywgd2UgcGlj ayBhIHJhbmRvbSwKLSsJIyAyNTYgS2lCLWFsaWduZWQgaW1hZ2UgYmFzZSBiZXR3ZWVuIDB4NTAw MDAwMDAgYW5kIDB4NkZGQzAwMDAgYXQgbGluawotKwkjIHRpbWUuICBNb3ZpbmcgdXAgZnJvbSAw eDEwMDAwMDAwIGFsc28gYWxsb3dzIG1vcmUgc2JyaygyKSBzcGFjZS4KLSsJYXJjaGl2ZV9jbWRz X0NYWD0nJENDIC1zaGFyZWQgJHBpY19mbGFnICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9m bGFncyAke3dsfS1oLCRzb25hbWUgJHt3bH0tLWltYWdlLWJhc2UsYGV4cHIgJHtSQU5ET00tJCR9 ICUgNDA5NiAvIDIgXCogMjYyMTQ0ICsgMTM0MjE3NzI4MGAgLW8gJGxpYicKLSsJYXJjaGl2ZV9l eHBzeW1fY21kc19DWFg9J3NlZCAicyxeLF8sIiAkZXhwb3J0X3N5bWJvbHMgPiRvdXRwdXRfb2Jq ZGlyLyRzb25hbWUuZXhwc3ltfiRDQyAtc2hhcmVkICRwaWNfZmxhZyAkbGlib2JqcyAkZGVwbGli cyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0taCwkc29uYW1lICR7d2x9LS1yZXRhaW4tc3ltYm9scy1m aWxlLCRvdXRwdXRfb2JqZGlyLyRzb25hbWUuZXhwc3ltICR7d2x9LS1pbWFnZS1iYXNlLGBleHBy ICR7UkFORE9NLSQkfSAlIDQwOTYgLyAyIFwqIDI2MjE0NCArIDEzNDIxNzcyODBgIC1vICRsaWIn Ci0rCTs7Ci0rICAgICAgaXJpeDUqIHwgaXJpeDYqKQotKyAgICAgICAgY2FzZSAkY2NfYmFzZW5h bWUgaW4KLSsgICAgICAgICAgQ0MqKQotKwkgICAgIyBTR0kgQysrCi0rCSAgICBhcmNoaXZlX2Nt ZHNfQ1hYPSckQ0MgLXNoYXJlZCAtYWxsIC1tdWx0aWdvdCAkcHJlZGVwX29iamVjdHMgJGxpYm9i anMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgLXNvbmFtZSAkc29u YW1lIGB0ZXN0IC1uICIkdmVyc3RyaW5nIiAmJiAkRUNITyAiWC1zZXRfdmVyc2lvbiAkdmVyc3Ry aW5nIiB8ICRYc2VkYCAtdXBkYXRlX3JlZ2lzdHJ5ICR7b3V0cHV0X29iamRpcn0vc29fbG9jYXRp b25zIC1vICRsaWInCi0rCi0rCSAgICAjIEFyY2hpdmVzIGNvbnRhaW5pbmcgQysrIG9iamVjdCBm aWxlcyBtdXN0IGJlIGNyZWF0ZWQgdXNpbmcKLSsJICAgICMgIkNDIC1hciIsIHdoZXJlICJDQyIg aXMgdGhlIElSSVggQysrIGNvbXBpbGVyLiAgVGhpcyBpcwotKwkgICAgIyBuZWNlc3NhcnkgdG8g bWFrZSBzdXJlIGluc3RhbnRpYXRlZCB0ZW1wbGF0ZXMgYXJlIGluY2x1ZGVkCi0rCSAgICAjIGlu IHRoZSBhcmNoaXZlLgotKwkgICAgb2xkX2FyY2hpdmVfY21kc19DWFg9JyRDQyAtYXIgLVdSLC11 IC1vICRvbGRsaWIgJG9sZG9ianMnCi0rCSAgICA7OwotKyAgICAgICAgICAqKQotKwkgICAgaWYg dGVzdCAiJEdYWCIgPSB5ZXM7IHRoZW4KLSsJICAgICAgaWYgdGVzdCAiJHdpdGhfZ251X2xkIiA9 IG5vOyB0aGVuCi0rCSAgICAgICAgYXJjaGl2ZV9jbWRzX0NYWD0nJENDIC1zaGFyZWQgLW5vc3Rk bGliICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRj b21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHt3bH0kc29uYW1lIGB0ZXN0IC1uICIkdmVyc3Ry aW5nIiAmJiAkRUNITyAiWCR7d2x9LXNldF92ZXJzaW9uICR7d2x9JHZlcnN0cmluZyIgfCAkWHNl ZGAgJHt3bH0tdXBkYXRlX3JlZ2lzdHJ5ICR7d2x9JHtvdXRwdXRfb2JqZGlyfS9zb19sb2NhdGlv bnMgLW8gJGxpYicKLSsJICAgICAgZWxzZQotKwkgICAgICAgIGFyY2hpdmVfY21kc19DWFg9JyRD QyAtc2hhcmVkIC1ub3N0ZGxpYiAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBv c3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR7d2x9JHNvbmFtZSBg dGVzdCAtbiAiJHZlcnN0cmluZyIgJiYgJEVDSE8gIlgke3dsfS1zZXRfdmVyc2lvbiAke3dsfSR2 ZXJzdHJpbmciIHwgJFhzZWRgIC1vICRsaWInCi0rCSAgICAgIGZpCi0rCSAgICBmaQotKwkgICAg bGlua19hbGxfZGVwbGlic19DWFg9eWVzCi0rCSAgICA7OwotKyAgICAgICAgZXNhYwotKyAgICAg ICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19DWFg9JyR7d2x9LXJwYXRoICR7d2x9JGxpYmRp cicKLSsgICAgICAgIGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3JfQ1hYPToKLSsgICAgICAgIGlu aGVyaXRfcnBhdGhfQ1hYPXllcwotKyAgICAgICAgOzsKLSsKLSsgICAgICBsaW51eCogfCBrKmJz ZCotZ251KQotKyAgICAgICAgY2FzZSAkY2NfYmFzZW5hbWUgaW4KLSsgICAgICAgICAgS0NDKikK LSsJICAgICMgS3VjayBhbmQgQXNzb2NpYXRlcywgSW5jLiAoS0FJKSBDKysgQ29tcGlsZXIKLSsK LSsJICAgICMgS0NDIHdpbGwgb25seSBjcmVhdGUgYSBzaGFyZWQgbGlicmFyeSBpZiB0aGUgb3V0 cHV0IGZpbGUKLSsJICAgICMgZW5kcyB3aXRoICIuc28iIChvciAiLnNsIiBmb3IgSFAtVVgpLCBz byByZW5hbWUgdGhlIGxpYnJhcnkKLSsJICAgICMgdG8gaXRzIHByb3BlciBuYW1lICh3aXRoIHZl cnNpb24pIGFmdGVyIGxpbmtpbmcuCi0rCSAgICBhcmNoaXZlX2NtZHNfQ1hYPSd0ZW1wZXh0PWBl Y2hvICRzaGFyZWRfZXh0IHwgJFNFRCAtZSAnXCcncy9cKFteKCkwLTlBLVphLXp7fV1cKS9cXFxc XDEvZydcJydgOyB0ZW1wbGliPWBlY2hvICRsaWIgfCAkU0VEIC1lICJzL1wke3RlbXBleHR9XC4u Ki8uc28vImA7ICRDQyAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBf b2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgLS1zb25hbWUgJHNvbmFtZSAtbyBcJHRlbXBsaWI7IG12 IFwkdGVtcGxpYiAkbGliJwotKwkgICAgYXJjaGl2ZV9leHBzeW1fY21kc19DWFg9J3RlbXBleHQ9 YGVjaG8gJHNoYXJlZF9leHQgfCAkU0VEIC1lICdcJydzL1woW14oKTAtOUEtWmEtent9XVwpL1xc XFxcMS9nJ1wnJ2A7IHRlbXBsaWI9YGVjaG8gJGxpYiB8ICRTRUQgLWUgInMvXCR7dGVtcGV4dH1c Li4qLy5zby8iYDsgJENDICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRl cF9vYmplY3RzICRjb21waWxlcl9mbGFncyAtLXNvbmFtZSAkc29uYW1lIC1vIFwkdGVtcGxpYiAk e3dsfS1yZXRhaW4tc3ltYm9scy1maWxlLCRleHBvcnRfc3ltYm9sczsgbXYgXCR0ZW1wbGliICRs aWInCi0rCSAgICAjIENvbW1hbmRzIHRvIG1ha2UgY29tcGlsZXIgcHJvZHVjZSB2ZXJib3NlIG91 dHB1dCB0aGF0IGxpc3RzCi0rCSAgICAjIHdoYXQgImhpZGRlbiIgbGlicmFyaWVzLCBvYmplY3Qg ZmlsZXMgYW5kIGZsYWdzIGFyZSB1c2VkIHdoZW4KLSsJICAgICMgbGlua2luZyBhIHNoYXJlZCBs aWJyYXJ5LgotKwkgICAgIwotKwkgICAgIyBUaGVyZSBkb2Vzbid0IGFwcGVhciB0byBiZSBhIHdh eSB0byBwcmV2ZW50IHRoaXMgY29tcGlsZXIgZnJvbQotKwkgICAgIyBleHBsaWNpdGx5IGxpbmtp bmcgc3lzdGVtIG9iamVjdCBmaWxlcyBzbyB3ZSBuZWVkIHRvIHN0cmlwIHRoZW0KLSsJICAgICMg ZnJvbSB0aGUgb3V0cHV0IHNvIHRoYXQgdGhleSBkb24ndCBnZXQgaW5jbHVkZWQgaW4gdGhlIGxp YnJhcnkKLSsJICAgICMgZGVwZW5kZW5jaWVzLgotKwkgICAgb3V0cHV0X3ZlcmJvc2VfbGlua19j bWQ9J3RlbXBsaXN0PWAkQ0MgJENGTEFHUyAtdiBjb25mdGVzdC4kb2JqZXh0IC1vIGxpYmNvbmZ0 ZXN0JHNoYXJlZF9leHQgMj4mMSB8ICRHUkVQICJsZCJgOyBybSAtZiBsaWJjb25mdGVzdCRzaGFy ZWRfZXh0OyBsaXN0PSIiOyBmb3IgeiBpbiAkdGVtcGxpc3Q7IGRvIGNhc2UgJHogaW4gY29uZnRl c3QuJG9iamV4dCkgbGlzdD0iJGxpc3QgJHoiOzsgKi4kb2JqZXh0KTs7ICopIGxpc3Q9IiRsaXN0 ICR6Ijs7ZXNhYzsgZG9uZTsgJEVDSE8gIlgkbGlzdCIgfCAkWHNlZCcKLSsKLSsJICAgIGhhcmRj b2RlX2xpYmRpcl9mbGFnX3NwZWNfQ1hYPScke3dsfS1ycGF0aCwkbGliZGlyJwotKwkgICAgZXhw b3J0X2R5bmFtaWNfZmxhZ19zcGVjX0NYWD0nJHt3bH0tLWV4cG9ydC1keW5hbWljJwotKwotKwkg ICAgIyBBcmNoaXZlcyBjb250YWluaW5nIEMrKyBvYmplY3QgZmlsZXMgbXVzdCBiZSBjcmVhdGVk IHVzaW5nCi0rCSAgICAjICJDQyAtQnN0YXRpYyIsIHdoZXJlICJDQyIgaXMgdGhlIEtBSSBDKysg Y29tcGlsZXIuCi0rCSAgICBvbGRfYXJjaGl2ZV9jbWRzX0NYWD0nJENDIC1Cc3RhdGljIC1vICRv bGRsaWIgJG9sZG9ianMnCi0rCSAgICA7OwotKwkgIGljcGMqIHwgZWNwYyogKQotKwkgICAgIyBJ bnRlbCBDKysKLSsJICAgIHdpdGhfZ251X2xkPXllcwotKwkgICAgIyB2ZXJzaW9uIDguMCBhbmQg YWJvdmUgb2YgaWNwYyBjaG9rZSBvbiBtdWx0aXBseSBkZWZpbmVkIHN5bWJvbHMKLSsJICAgICMg aWYgd2UgYWRkICRwcmVkZXBfb2JqZWN0cyBhbmQgJHBvc3RkZXBfb2JqZWN0cywgaG93ZXZlciA3 LjEgYW5kCi0rCSAgICAjIGVhcmxpZXIgZG8gbm90IGFkZCB0aGUgb2JqZWN0cyB0aGVtc2VsdmVz LgotKwkgICAgY2FzZSBgJENDIC1WIDI+JjFgIGluCi0rCSAgICAgICoiVmVyc2lvbiA3LiIqKQot KwkgICAgICAgIGFyY2hpdmVfY21kc19DWFg9JyRDQyAtc2hhcmVkICRwcmVkZXBfb2JqZWN0cyAk bGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAke3dsfS1z b25hbWUgJHdsJHNvbmFtZSAtbyAkbGliJwotKwkJYXJjaGl2ZV9leHBzeW1fY21kc19DWFg9JyRD QyAtc2hhcmVkICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmpl Y3RzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAke3dsfS1yZXRhaW4t c3ltYm9scy1maWxlICR3bCRleHBvcnRfc3ltYm9scyAtbyAkbGliJwotKwkJOzsKLSsJICAgICAg KikgICMgVmVyc2lvbiA4LjAgb3IgbmV3ZXIKLSsJICAgICAgICB0bXBfaWR5bj0KLSsJICAgICAg ICBjYXNlICRob3N0X2NwdSBpbgotKwkJICBpYTY0KikgdG1wX2lkeW49JyAtaV9keW5hbWljJzs7 Ci0rCQllc2FjCi0rCSAgICAgICAgYXJjaGl2ZV9jbWRzX0NYWD0nJENDIC1zaGFyZWQnIiR0bXBf aWR5biInICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHds JHNvbmFtZSAtbyAkbGliJwotKwkJYXJjaGl2ZV9leHBzeW1fY21kc19DWFg9JyRDQyAtc2hhcmVk JyIkdG1wX2lkeW4iJyAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29u YW1lICR3bCRzb25hbWUgJHt3bH0tcmV0YWluLXN5bWJvbHMtZmlsZSAkd2wkZXhwb3J0X3N5bWJv bHMgLW8gJGxpYicKLSsJCTs7Ci0rCSAgICBlc2FjCi0rCSAgICBhcmNoaXZlX2NtZHNfbmVlZF9s Y19DWFg9bm8KLSsJICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfQ1hYPScke3dsfS1ycGF0 aCwkbGliZGlyJwotKwkgICAgZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjX0NYWD0nJHt3bH0tLWV4 cG9ydC1keW5hbWljJwotKwkgICAgd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWNfQ1hYPScke3dsfS0t d2hvbGUtYXJjaGl2ZSRjb252ZW5pZW5jZSAke3dsfS0tbm8td2hvbGUtYXJjaGl2ZScKLSsJICAg IDs7Ci0rICAgICAgICAgIHBnQ0MqIHwgcGdjcHAqKQotKyAgICAgICAgICAgICMgUG9ydGxhbmQg R3JvdXAgQysrIGNvbXBpbGVyCi0rCSAgICBjYXNlIGAkQ0MgLVZgIGluCi0rCSAgICAqcGdDQ1wg WzEtNV0qIHwgKnBnY3BwXCBbMS01XSopCi0rCSAgICAgIHByZWxpbmtfY21kc19DWFg9J3RwbGRp cj1UZW1wbGF0ZS5kaXJ+Ci0rCQlybSAtcmYgJHRwbGRpcn4KLSsJCSRDQyAtLXByZWxpbmtfb2Jq ZWN0cyAtLWluc3RhbnRpYXRpb25fZGlyICR0cGxkaXIgJG9ianMgJGxpYm9ianMgJGNvbXBpbGVf ZGVwbGlic34KLSsJCWNvbXBpbGVfY29tbWFuZD0iJGNvbXBpbGVfY29tbWFuZCBgZmluZCAkdHBs ZGlyIC1uYW1lIFwqLm8gfCAkTkwyU1BgIicKLSsJICAgICAgb2xkX2FyY2hpdmVfY21kc19DWFg9 J3RwbGRpcj1UZW1wbGF0ZS5kaXJ+Ci0rCQlybSAtcmYgJHRwbGRpcn4KLSsJCSRDQyAtLXByZWxp bmtfb2JqZWN0cyAtLWluc3RhbnRpYXRpb25fZGlyICR0cGxkaXIgJG9sZG9ianMkb2xkX2RlcGxp YnN+Ci0rCQkkQVIgJEFSX0ZMQUdTICRvbGRsaWIkb2xkb2JqcyRvbGRfZGVwbGlicyBgZmluZCAk dHBsZGlyIC1uYW1lIFwqLm8gfCAkTkwyU1BgfgotKwkJJFJBTkxJQiAkb2xkbGliJwotKwkgICAg ICBhcmNoaXZlX2NtZHNfQ1hYPSd0cGxkaXI9VGVtcGxhdGUuZGlyfgotKwkJcm0gLXJmICR0cGxk aXJ+Ci0rCQkkQ0MgLS1wcmVsaW5rX29iamVjdHMgLS1pbnN0YW50aWF0aW9uX2RpciAkdHBsZGly ICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkY29udmVuaWVuY2UgJHBvc3RkZXBf b2JqZWN0c34KLSsJCSRDQyAtc2hhcmVkICRwaWNfZmxhZyAkcHJlZGVwX29iamVjdHMgJGxpYm9i anMgJGRlcGxpYnMgYGZpbmQgJHRwbGRpciAtbmFtZSBcKi5vIHwgJE5MMlNQYCAkcG9zdGRlcF9v YmplY3RzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHt3bH0kc29uYW1lIC1vICRsaWIn Ci0rCSAgICAgIGFyY2hpdmVfZXhwc3ltX2NtZHNfQ1hYPSd0cGxkaXI9VGVtcGxhdGUuZGlyfgot KwkJcm0gLXJmICR0cGxkaXJ+Ci0rCQkkQ0MgLS1wcmVsaW5rX29iamVjdHMgLS1pbnN0YW50aWF0 aW9uX2RpciAkdHBsZGlyICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkY29udmVu aWVuY2UgJHBvc3RkZXBfb2JqZWN0c34KLSsJCSRDQyAtc2hhcmVkICRwaWNfZmxhZyAkcHJlZGVw X29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgYGZpbmQgJHRwbGRpciAtbmFtZSBcKi5vIHwgJE5M MlNQYCAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHt3bH0k c29uYW1lICR7d2x9LXJldGFpbi1zeW1ib2xzLWZpbGUgJHt3bH0kZXhwb3J0X3N5bWJvbHMgLW8g JGxpYicKLSsJICAgICAgOzsKLSsJICAgICopICMgVmVyc2lvbiA2IHdpbGwgdXNlIHdlYWsgc3lt Ym9scwotKwkgICAgICBhcmNoaXZlX2NtZHNfQ1hYPSckQ0MgLXNoYXJlZCAkcGljX2ZsYWcgJHBy ZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVy X2ZsYWdzICR7d2x9LXNvbmFtZSAke3dsfSRzb25hbWUgLW8gJGxpYicKLSsJICAgICAgYXJjaGl2 ZV9leHBzeW1fY21kc19DWFg9JyRDQyAtc2hhcmVkICRwaWNfZmxhZyAkcHJlZGVwX29iamVjdHMg JGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0t c29uYW1lICR7d2x9JHNvbmFtZSAke3dsfS1yZXRhaW4tc3ltYm9scy1maWxlICR7d2x9JGV4cG9y dF9zeW1ib2xzIC1vICRsaWInCi0rCSAgICAgIDs7Ci0rCSAgICBlc2FjCi0rCi0rCSAgICBoYXJk Y29kZV9saWJkaXJfZmxhZ19zcGVjX0NYWD0nJHt3bH0tLXJwYXRoICR7d2x9JGxpYmRpcicKLSsJ ICAgIGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlY19DWFg9JyR7d2x9LS1leHBvcnQtZHluYW1pYycK LSsJICAgIHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjX0NYWD0nJHt3bH0tLXdob2xlLWFyY2hpdmVg Zm9yIGNvbnYgaW4gJGNvbnZlbmllbmNlXCJcIjsgZG8gdGVzdCAgLW4gXCIkY29udlwiICYmIG5l d19jb252ZW5pZW5jZT1cIiRuZXdfY29udmVuaWVuY2UsJGNvbnZcIjsgZG9uZTsgJEVDSE8gXCIk bmV3X2NvbnZlbmllbmNlXCJgICR7d2x9LS1uby13aG9sZS1hcmNoaXZlJwotKyAgICAgICAgICAg IDs7Ci0rCSAgY3h4KikKLSsJICAgICMgQ29tcGFxIEMrKwotKwkgICAgYXJjaGl2ZV9jbWRzX0NY WD0nJENDIC1zaGFyZWQgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVw X29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAkd2wkc29uYW1lIC1vICRsaWIn Ci0rCSAgICBhcmNoaXZlX2V4cHN5bV9jbWRzX0NYWD0nJENDIC1zaGFyZWQgJHByZWRlcF9vYmpl Y3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzICR7 d2x9LXNvbmFtZSAkd2wkc29uYW1lICAtbyAkbGliICR7d2x9LXJldGFpbi1zeW1ib2xzLWZpbGUg JHdsJGV4cG9ydF9zeW1ib2xzJwotKwotKwkgICAgcnVucGF0aF92YXI9TERfUlVOX1BBVEgKLSsJ ICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfQ1hYPSctcnBhdGggJGxpYmRpcicKLSsJICAg IGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3JfQ1hYPToKLSsKLSsJICAgICMgQ29tbWFuZHMgdG8g bWFrZSBjb21waWxlciBwcm9kdWNlIHZlcmJvc2Ugb3V0cHV0IHRoYXQgbGlzdHMKLSsJICAgICMg d2hhdCAiaGlkZGVuIiBsaWJyYXJpZXMsIG9iamVjdCBmaWxlcyBhbmQgZmxhZ3MgYXJlIHVzZWQg d2hlbgotKwkgICAgIyBsaW5raW5nIGEgc2hhcmVkIGxpYnJhcnkuCi0rCSAgICAjCi0rCSAgICAj IFRoZXJlIGRvZXNuJ3QgYXBwZWFyIHRvIGJlIGEgd2F5IHRvIHByZXZlbnQgdGhpcyBjb21waWxl ciBmcm9tCi0rCSAgICAjIGV4cGxpY2l0bHkgbGlua2luZyBzeXN0ZW0gb2JqZWN0IGZpbGVzIHNv IHdlIG5lZWQgdG8gc3RyaXAgdGhlbQotKwkgICAgIyBmcm9tIHRoZSBvdXRwdXQgc28gdGhhdCB0 aGV5IGRvbid0IGdldCBpbmNsdWRlZCBpbiB0aGUgbGlicmFyeQotKwkgICAgIyBkZXBlbmRlbmNp ZXMuCi0rCSAgICBvdXRwdXRfdmVyYm9zZV9saW5rX2NtZD0ndGVtcGxpc3Q9YCRDQyAtc2hhcmVk ICRDRkxBR1MgLXYgY29uZnRlc3QuJG9iamV4dCAyPiYxIHwgJEdSRVAgImxkImA7IHRlbXBsaXN0 PWAkRUNITyAiWCR0ZW1wbGlzdCIgfCAkWHNlZCAtZSAicy9cKF4uKmxkLipcKVwoIC4qbGQgLiok XCkvXDEvImA7IGxpc3Q9IiI7IGZvciB6IGluICR0ZW1wbGlzdDsgZG8gY2FzZSAkeiBpbiBjb25m dGVzdC4kb2JqZXh0KSBsaXN0PSIkbGlzdCAkeiI7OyAqLiRvYmpleHQpOzsgKikgbGlzdD0iJGxp c3QgJHoiOztlc2FjOyBkb25lOyAkRUNITyAiWCRsaXN0IiB8ICRYc2VkJwotKwkgICAgOzsKLSsJ ICB4bCopCi0rCSAgICAjIElCTSBYTCA4LjAgb24gUFBDLCB3aXRoIEdOVSBsZAotKwkgICAgaGFy ZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19DWFg9JyR7d2x9LXJwYXRoICR7d2x9JGxpYmRpcicKLSsJ ICAgIGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlY19DWFg9JyR7d2x9LS1leHBvcnQtZHluYW1pYycK LSsJICAgIGFyY2hpdmVfY21kc19DWFg9JyRDQyAtcW1rc2hyb2JqICRsaWJvYmpzICRkZXBsaWJz ICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAtbyAkbGliJwotKwkgICAg aWYgdGVzdCAieCRzdXBwb3J0c19hbm9uX3ZlcnNpb25pbmciID0geHllczsgdGhlbgotKwkgICAg ICBhcmNoaXZlX2V4cHN5bV9jbWRzX0NYWD0nZWNobyAieyBnbG9iYWw6IiA+ICRvdXRwdXRfb2Jq ZGlyLyRsaWJuYW1lLnZlcn4KLSsJCWNhdCAkZXhwb3J0X3N5bWJvbHMgfCBzZWQgLWUgInMvXCgu KlwpL1wxOy8iID4+ICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLnZlcn4KLSsJCWVjaG8gImxvY2Fs OiAqOyB9OyIgPj4gJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUudmVyfgotKwkJJENDIC1xbWtzaHJv YmogJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAkd2wkc29u YW1lICR7d2x9LXZlcnNpb24tc2NyaXB0ICR7d2x9JG91dHB1dF9vYmpkaXIvJGxpYm5hbWUudmVy IC1vICRsaWInCi0rCSAgICBmaQotKwkgICAgOzsKLSsJICAqKQotKwkgICAgY2FzZSBgJENDIC1W IDI+JjEgfCBzZWQgNXFgIGluCi0rCSAgICAqU3VuXCBDKikKLSsJICAgICAgIyBTdW4gQysrIDUu OQotKwkgICAgICBub191bmRlZmluZWRfZmxhZ19DWFg9JyAtemRlZnMnCi0rCSAgICAgIGFyY2hp dmVfY21kc19DWFg9JyRDQyAtRyR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9IC1oJHNvbmFtZSAtbyAk bGliICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRj b21waWxlcl9mbGFncycKLSsJICAgICAgYXJjaGl2ZV9leHBzeW1fY21kc19DWFg9JyRDQyAtRyR7 YWxsb3dfdW5kZWZpbmVkX2ZsYWd9IC1oJHNvbmFtZSAtbyAkbGliICRwcmVkZXBfb2JqZWN0cyAk bGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAke3dsfS1y ZXRhaW4tc3ltYm9scy1maWxlICR7d2x9JGV4cG9ydF9zeW1ib2xzJwotKwkgICAgICBoYXJkY29k ZV9saWJkaXJfZmxhZ19zcGVjX0NYWD0nLVIkbGliZGlyJwotKwkgICAgICB3aG9sZV9hcmNoaXZl X2ZsYWdfc3BlY19DWFg9JyR7d2x9LS13aG9sZS1hcmNoaXZlYG5ld19jb252ZW5pZW5jZT07IGZv ciBjb252IGluICRjb252ZW5pZW5jZVwiXCI7IGRvIHRlc3QgLXogXCIkY29udlwiIHx8IG5ld19j b252ZW5pZW5jZT1cIiRuZXdfY29udmVuaWVuY2UsJGNvbnZcIjsgZG9uZTsgJEVDSE8gXCIkbmV3 X2NvbnZlbmllbmNlXCJgICR7d2x9LS1uby13aG9sZS1hcmNoaXZlJwotKwkgICAgICBjb21waWxl cl9uZWVkc19vYmplY3RfQ1hYPXllcwotKwotKwkgICAgICAjIE5vdCBzdXJlIHdoZXRoZXIgc29t ZXRoaW5nIGJhc2VkIG9uCi0rCSAgICAgICMgJENDICRDRkxBR1MgLXYgY29uZnRlc3QuJG9iamV4 dCAtbyBsaWJjb25mdGVzdCRzaGFyZWRfZXh0IDI+JjEKLSsJICAgICAgIyB3b3VsZCBiZSBiZXR0 ZXIuCi0rCSAgICAgIG91dHB1dF92ZXJib3NlX2xpbmtfY21kPSdlY2hvJwotKwotKwkgICAgICAj IEFyY2hpdmVzIGNvbnRhaW5pbmcgQysrIG9iamVjdCBmaWxlcyBtdXN0IGJlIGNyZWF0ZWQgdXNp bmcKLSsJICAgICAgIyAiQ0MgLXhhciIsIHdoZXJlICJDQyIgaXMgdGhlIFN1biBDKysgY29tcGls ZXIuICBUaGlzIGlzCi0rCSAgICAgICMgbmVjZXNzYXJ5IHRvIG1ha2Ugc3VyZSBpbnN0YW50aWF0 ZWQgdGVtcGxhdGVzIGFyZSBpbmNsdWRlZAotKwkgICAgICAjIGluIHRoZSBhcmNoaXZlLgotKwkg ICAgICBvbGRfYXJjaGl2ZV9jbWRzX0NYWD0nJENDIC14YXIgLW8gJG9sZGxpYiAkb2xkb2JqcycK LSsJICAgICAgOzsKLSsJICAgIGVzYWMKLSsJICAgIDs7Ci0rCWVzYWMKLSsJOzsKLSsKLSsgICAg ICBseW54b3MqKQotKyAgICAgICAgIyBGSVhNRTogaW5zZXJ0IHByb3BlciBDKysgbGlicmFyeSBz dXBwb3J0Ci0rCWxkX3NobGlic19DWFg9bm8KLSsJOzsKLSsKLSsgICAgICBtODhrKikKLSsgICAg ICAgICMgRklYTUU6IGluc2VydCBwcm9wZXIgQysrIGxpYnJhcnkgc3VwcG9ydAotKyAgICAgICAg bGRfc2hsaWJzX0NYWD1ubwotKwk7OwotKwotKyAgICAgIG12cyopCi0rICAgICAgICBjYXNlICRj Y19iYXNlbmFtZSBpbgotKyAgICAgICAgICBjeHgqKQotKwkgICAgIyBGSVhNRTogaW5zZXJ0IHBy b3BlciBDKysgbGlicmFyeSBzdXBwb3J0Ci0rCSAgICBsZF9zaGxpYnNfQ1hYPW5vCi0rCSAgICA7 OwotKwkgICopCi0rCSAgICAjIEZJWE1FOiBpbnNlcnQgcHJvcGVyIEMrKyBsaWJyYXJ5IHN1cHBv cnQKLSsJICAgIGxkX3NobGlic19DWFg9bm8KLSsJICAgIDs7Ci0rCWVzYWMKLSsJOzsKLSsKLSsg ICAgICBuZXRic2QqKQotKyAgICAgICAgaWYgZWNobyBfX0VMRl9fIHwgJENDIC1FIC0gfCAkR1JF UCBfX0VMRl9fID4vZGV2L251bGw7IHRoZW4KLSsJICBhcmNoaXZlX2NtZHNfQ1hYPSckTEQgLUJz aGFyZWFibGUgIC1vICRsaWIgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0 ZGVwX29iamVjdHMgJGxpbmtlcl9mbGFncycKLSsJICB3bGFyYz0KLSsJICBoYXJkY29kZV9saWJk aXJfZmxhZ19zcGVjX0NYWD0nLVIkbGliZGlyJwotKwkgIGhhcmRjb2RlX2RpcmVjdF9DWFg9eWVz Ci0rCSAgaGFyZGNvZGVfc2hsaWJwYXRoX3Zhcl9DWFg9bm8KLSsJZmkKLSsJIyBXb3JrYXJvdW5k IHNvbWUgYnJva2VuIHByZS0xLjUgdG9vbGNoYWlucwotKwlvdXRwdXRfdmVyYm9zZV9saW5rX2Nt ZD0nJENDIC1zaGFyZWQgJENGTEFHUyAtdiBjb25mdGVzdC4kb2JqZXh0IDI+JjEgfCAkR1JFUCBj b25mdGVzdC4kb2JqZXh0IHwgJFNFRCAtZSAiczotbGdjYyAtbGMgLWxnY2M6OiInCi0rCTs7Ci0r Ci0rICAgICAgKm50byogfCAqcW54KikKLSsgICAgICAgIGxkX3NobGlic19DWFg9eWVzCi0rCTs7 Ci0rCi0rICAgICAgb3BlbmJzZDIqKQotKyAgICAgICAgIyBDKysgc2hhcmVkIGxpYnJhcmllcyBh cmUgZmFpcmx5IGJyb2tlbgotKwlsZF9zaGxpYnNfQ1hYPW5vCi0rCTs7Ci0rCi0rICAgICAgb3Bl bmJzZCopCi0rCWlmIHRlc3QgLWYgL3Vzci9saWJleGVjL2xkLnNvOyB0aGVuCi0rCSAgaGFyZGNv ZGVfZGlyZWN0X0NYWD15ZXMKLSsJICBoYXJkY29kZV9zaGxpYnBhdGhfdmFyX0NYWD1ubwotKwkg IGhhcmRjb2RlX2RpcmVjdF9hYnNvbHV0ZV9DWFg9eWVzCi0rCSAgYXJjaGl2ZV9jbWRzX0NYWD0n JENDIC1zaGFyZWQgJHBpY19mbGFnICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAk cG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAtbyAkbGliJwotKwkgIGhhcmRjb2RlX2xp YmRpcl9mbGFnX3NwZWNfQ1hYPScke3dsfS1ycGF0aCwkbGliZGlyJwotKwkgIGlmIHRlc3QgLXog ImBlY2hvIF9fRUxGX18gfCAkQ0MgLUUgLSB8IGdyZXAgX19FTEZfX2AiIHx8IHRlc3QgIiRob3N0 X29zLSRob3N0X2NwdSIgPSAib3BlbmJzZDIuOC1wb3dlcnBjIjsgdGhlbgotKwkgICAgYXJjaGl2 ZV9leHBzeW1fY21kc19DWFg9JyRDQyAtc2hhcmVkICRwaWNfZmxhZyAkcHJlZGVwX29iamVjdHMg JGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0t cmV0YWluLXN5bWJvbHMtZmlsZSwkZXhwb3J0X3N5bWJvbHMgLW8gJGxpYicKLSsJICAgIGV4cG9y dF9keW5hbWljX2ZsYWdfc3BlY19DWFg9JyR7d2x9LUUnCi0rCSAgICB3aG9sZV9hcmNoaXZlX2Zs YWdfc3BlY19DWFg9IiR3bGFyYyInLS13aG9sZS1hcmNoaXZlJGNvbnZlbmllbmNlICciJHdsYXJj IictLW5vLXdob2xlLWFyY2hpdmUnCi0rCSAgZmkKLSsJICBvdXRwdXRfdmVyYm9zZV9saW5rX2Nt ZD1lY2hvCi0rCWVsc2UKLSsJICBsZF9zaGxpYnNfQ1hYPW5vCi0rCWZpCi0rCTs7Ci0rCi0rICAg ICAgb3NmMyogfCBvc2Y0KiB8IG9zZjUqKQotKyAgICAgICAgY2FzZSAkY2NfYmFzZW5hbWUgaW4K LSsgICAgICAgICAgS0NDKikKLSsJICAgICMgS3VjayBhbmQgQXNzb2NpYXRlcywgSW5jLiAoS0FJ KSBDKysgQ29tcGlsZXIKLSsKLSsJICAgICMgS0NDIHdpbGwgb25seSBjcmVhdGUgYSBzaGFyZWQg bGlicmFyeSBpZiB0aGUgb3V0cHV0IGZpbGUKLSsJICAgICMgZW5kcyB3aXRoICIuc28iIChvciAi LnNsIiBmb3IgSFAtVVgpLCBzbyByZW5hbWUgdGhlIGxpYnJhcnkKLSsJICAgICMgdG8gaXRzIHBy b3BlciBuYW1lICh3aXRoIHZlcnNpb24pIGFmdGVyIGxpbmtpbmcuCi0rCSAgICBhcmNoaXZlX2Nt ZHNfQ1hYPSd0ZW1wZXh0PWBlY2hvICRzaGFyZWRfZXh0IHwgJFNFRCAtZSAnXCcncy9cKFteKCkw LTlBLVphLXp7fV1cKS9cXFxcXDEvZydcJydgOyB0ZW1wbGliPWBlY2hvICIkbGliIiB8ICRTRUQg LWUgInMvXCR7dGVtcGV4dH1cLi4qLy5zby8iYDsgJENDICRwcmVkZXBfb2JqZWN0cyAkbGlib2Jq cyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAtLXNvbmFtZSAkc29u YW1lIC1vIFwkdGVtcGxpYjsgbXYgXCR0ZW1wbGliICRsaWInCi0rCi0rCSAgICBoYXJkY29kZV9s aWJkaXJfZmxhZ19zcGVjX0NYWD0nJHt3bH0tcnBhdGgsJGxpYmRpcicKLSsJICAgIGhhcmRjb2Rl X2xpYmRpcl9zZXBhcmF0b3JfQ1hYPToKLSsKLSsJICAgICMgQXJjaGl2ZXMgY29udGFpbmluZyBD Kysgb2JqZWN0IGZpbGVzIG11c3QgYmUgY3JlYXRlZCB1c2luZwotKwkgICAgIyB0aGUgS0FJIEMr KyBjb21waWxlci4KLSsJICAgIGNhc2UgJGhvc3QgaW4KLSsJICAgICAgb3NmMyopIG9sZF9hcmNo aXZlX2NtZHNfQ1hYPSckQ0MgLUJzdGF0aWMgLW8gJG9sZGxpYiAkb2xkb2JqcycgOzsKLSsJICAg ICAgKikgb2xkX2FyY2hpdmVfY21kc19DWFg9JyRDQyAtbyAkb2xkbGliICRvbGRvYmpzJyA7Owot KwkgICAgZXNhYwotKwkgICAgOzsKLSsgICAgICAgICAgUkNDKikKLSsJICAgICMgUmF0aW9uYWwg QysrIDIuNC4xCi0rCSAgICAjIEZJWE1FOiBpbnNlcnQgcHJvcGVyIEMrKyBsaWJyYXJ5IHN1cHBv cnQKLSsJICAgIGxkX3NobGlic19DWFg9bm8KLSsJICAgIDs7Ci0rICAgICAgICAgIGN4eCopCi0r CSAgICBjYXNlICRob3N0IGluCi0rCSAgICAgIG9zZjMqKQotKwkgICAgICAgIGFsbG93X3VuZGVm aW5lZF9mbGFnX0NYWD0nICR7d2x9LWV4cGVjdF91bnJlc29sdmVkICR7d2x9XConCi0rCSAgICAg ICAgYXJjaGl2ZV9jbWRzX0NYWD0nJENDIC1zaGFyZWQke2FsbG93X3VuZGVmaW5lZF9mbGFnfSAk cHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGls ZXJfZmxhZ3MgJHt3bH0tc29uYW1lICRzb25hbWUgYHRlc3QgLW4gIiR2ZXJzdHJpbmciICYmICRF Q0hPICJYJHt3bH0tc2V0X3ZlcnNpb24gJHZlcnN0cmluZyIgfCAkWHNlZGAgLXVwZGF0ZV9yZWdp c3RyeSAke291dHB1dF9vYmpkaXJ9L3NvX2xvY2F0aW9ucyAtbyAkbGliJwotKwkgICAgICAgIGhh cmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfQ1hYPScke3dsfS1ycGF0aCAke3dsfSRsaWJkaXInCi0r CQk7OwotKwkgICAgICAqKQotKwkgICAgICAgIGFsbG93X3VuZGVmaW5lZF9mbGFnX0NYWD0nIC1l eHBlY3RfdW5yZXNvbHZlZCBcKicKLSsJICAgICAgICBhcmNoaXZlX2NtZHNfQ1hYPSckQ0MgLXNo YXJlZCR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9ICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVw bGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAtbXN5bSAtc29uYW1lICRzb25h bWUgYHRlc3QgLW4gIiR2ZXJzdHJpbmciICYmICRFQ0hPICJYLXNldF92ZXJzaW9uICR2ZXJzdHJp bmciIHwgJFhzZWRgIC11cGRhdGVfcmVnaXN0cnkgJHtvdXRwdXRfb2JqZGlyfS9zb19sb2NhdGlv bnMgLW8gJGxpYicKLSsJICAgICAgICBhcmNoaXZlX2V4cHN5bV9jbWRzX0NYWD0nZm9yIGkgaW4g YGNhdCAkZXhwb3J0X3N5bWJvbHNgOyBkbyBwcmludGYgIiVzICVzXFxuIiAtZXhwb3J0ZWRfc3lt Ym9sICJcJGkiID4+ICRsaWIuZXhwOyBkb25lfgotKwkgICAgICAgICAgZWNobyAiLWhpZGRlbiI+ PiAkbGliLmV4cH4KLSsJICAgICAgICAgICRDQyAtc2hhcmVkJGFsbG93X3VuZGVmaW5lZF9mbGFn ICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21w aWxlcl9mbGFncyAtbXN5bSAtc29uYW1lICRzb25hbWUgJHt3bH0taW5wdXQgJHt3bH0kbGliLmV4 cCAgYHRlc3QgLW4gIiR2ZXJzdHJpbmciICYmICRFQ0hPICJYLXNldF92ZXJzaW9uICR2ZXJzdHJp bmciIHwgJFhzZWRgIC11cGRhdGVfcmVnaXN0cnkgJHtvdXRwdXRfb2JqZGlyfS9zb19sb2NhdGlv bnMgLW8gJGxpYn4KLSsJICAgICAgICAgICRSTSAkbGliLmV4cCcKLSsJICAgICAgICBoYXJkY29k ZV9saWJkaXJfZmxhZ19zcGVjX0NYWD0nLXJwYXRoICRsaWJkaXInCi0rCQk7OwotKwkgICAgZXNh YwotKwotKwkgICAgaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvcl9DWFg9OgotKwotKwkgICAgIyBD b21tYW5kcyB0byBtYWtlIGNvbXBpbGVyIHByb2R1Y2UgdmVyYm9zZSBvdXRwdXQgdGhhdCBsaXN0 cwotKwkgICAgIyB3aGF0ICJoaWRkZW4iIGxpYnJhcmllcywgb2JqZWN0IGZpbGVzIGFuZCBmbGFn cyBhcmUgdXNlZCB3aGVuCi0rCSAgICAjIGxpbmtpbmcgYSBzaGFyZWQgbGlicmFyeS4KLSsJICAg ICMKLSsJICAgICMgVGhlcmUgZG9lc24ndCBhcHBlYXIgdG8gYmUgYSB3YXkgdG8gcHJldmVudCB0 aGlzIGNvbXBpbGVyIGZyb20KLSsJICAgICMgZXhwbGljaXRseSBsaW5raW5nIHN5c3RlbSBvYmpl Y3QgZmlsZXMgc28gd2UgbmVlZCB0byBzdHJpcCB0aGVtCi0rCSAgICAjIGZyb20gdGhlIG91dHB1 dCBzbyB0aGF0IHRoZXkgZG9uJ3QgZ2V0IGluY2x1ZGVkIGluIHRoZSBsaWJyYXJ5Ci0rCSAgICAj IGRlcGVuZGVuY2llcy4KLSsJICAgIG91dHB1dF92ZXJib3NlX2xpbmtfY21kPSd0ZW1wbGlzdD1g JENDIC1zaGFyZWQgJENGTEFHUyAtdiBjb25mdGVzdC4kb2JqZXh0IDI+JjEgfCAkR1JFUCAibGQi IHwgJEdSRVAgLXYgImxkOiJgOyB0ZW1wbGlzdD1gJEVDSE8gIlgkdGVtcGxpc3QiIHwgJFhzZWQg LWUgInMvXCheLipsZC4qXClcKCAuKmxkLiokXCkvXDEvImA7IGxpc3Q9IiI7IGZvciB6IGluICR0 ZW1wbGlzdDsgZG8gY2FzZSAkeiBpbiBjb25mdGVzdC4kb2JqZXh0KSBsaXN0PSIkbGlzdCAkeiI7 OyAqLiRvYmpleHQpOzsgKikgbGlzdD0iJGxpc3QgJHoiOztlc2FjOyBkb25lOyAkRUNITyAiWCRs aXN0IiB8ICRYc2VkJwotKwkgICAgOzsKLSsJICAqKQotKwkgICAgaWYgdGVzdCAiJEdYWCIgPSB5 ZXMgJiYgdGVzdCAiJHdpdGhfZ251X2xkIiA9IG5vOyB0aGVuCi0rCSAgICAgIGFsbG93X3VuZGVm aW5lZF9mbGFnX0NYWD0nICR7d2x9LWV4cGVjdF91bnJlc29sdmVkICR7d2x9XConCi0rCSAgICAg IGNhc2UgJGhvc3QgaW4KLSsJICAgICAgICBvc2YzKikKLSsJICAgICAgICAgIGFyY2hpdmVfY21k c19DWFg9JyRDQyAtc2hhcmVkIC1ub3N0ZGxpYiAke2FsbG93X3VuZGVmaW5lZF9mbGFnfSAkcHJl ZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJf ZmxhZ3MgJHt3bH0tc29uYW1lICR7d2x9JHNvbmFtZSBgdGVzdCAtbiAiJHZlcnN0cmluZyIgJiYg JEVDSE8gIlgke3dsfS1zZXRfdmVyc2lvbiAke3dsfSR2ZXJzdHJpbmciIHwgJFhzZWRgICR7d2x9 LXVwZGF0ZV9yZWdpc3RyeSAke3dsfSR7b3V0cHV0X29iamRpcn0vc29fbG9jYXRpb25zIC1vICRs aWInCi0rCQkgIDs7Ci0rCSAgICAgICAgKikKLSsJICAgICAgICAgIGFyY2hpdmVfY21kc19DWFg9 JyRDQyAtc2hhcmVkIC1ub3N0ZGxpYiAke2FsbG93X3VuZGVmaW5lZF9mbGFnfSAkcHJlZGVwX29i amVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3Mg JHt3bH0tbXN5bSAke3dsfS1zb25hbWUgJHt3bH0kc29uYW1lIGB0ZXN0IC1uICIkdmVyc3RyaW5n IiAmJiAkRUNITyAiJHt3bH0tc2V0X3ZlcnNpb24gJHt3bH0kdmVyc3RyaW5nIiB8ICRYc2VkYCAk e3dsfS11cGRhdGVfcmVnaXN0cnkgJHt3bH0ke291dHB1dF9vYmpkaXJ9L3NvX2xvY2F0aW9ucyAt byAkbGliJwotKwkJICA7OwotKwkgICAgICBlc2FjCi0rCi0rCSAgICAgIGhhcmRjb2RlX2xpYmRp cl9mbGFnX3NwZWNfQ1hYPScke3dsfS1ycGF0aCAke3dsfSRsaWJkaXInCi0rCSAgICAgIGhhcmRj b2RlX2xpYmRpcl9zZXBhcmF0b3JfQ1hYPToKLSsKLSsJICAgICAgIyBDb21tYW5kcyB0byBtYWtl IGNvbXBpbGVyIHByb2R1Y2UgdmVyYm9zZSBvdXRwdXQgdGhhdCBsaXN0cwotKwkgICAgICAjIHdo YXQgImhpZGRlbiIgbGlicmFyaWVzLCBvYmplY3QgZmlsZXMgYW5kIGZsYWdzIGFyZSB1c2VkIHdo ZW4KLSsJICAgICAgIyBsaW5raW5nIGEgc2hhcmVkIGxpYnJhcnkuCi0rCSAgICAgIG91dHB1dF92 ZXJib3NlX2xpbmtfY21kPSckQ0MgLXNoYXJlZCAkQ0ZMQUdTIC12IGNvbmZ0ZXN0LiRvYmpleHQg Mj4mMSB8ICRHUkVQICJcLUwiJwotKwotKwkgICAgZWxzZQotKwkgICAgICAjIEZJWE1FOiBpbnNl cnQgcHJvcGVyIEMrKyBsaWJyYXJ5IHN1cHBvcnQKLSsJICAgICAgbGRfc2hsaWJzX0NYWD1ubwot KwkgICAgZmkKLSsJICAgIDs7Ci0rICAgICAgICBlc2FjCi0rICAgICAgICA7OwotKwotKyAgICAg IHBzb3MqKQotKyAgICAgICAgIyBGSVhNRTogaW5zZXJ0IHByb3BlciBDKysgbGlicmFyeSBzdXBw b3J0Ci0rICAgICAgICBsZF9zaGxpYnNfQ1hYPW5vCi0rICAgICAgICA7OwotKwotKyAgICAgIHN1 bm9zNCopCi0rICAgICAgICBjYXNlICRjY19iYXNlbmFtZSBpbgotKyAgICAgICAgICBDQyopCi0r CSAgICAjIFN1biBDKysgNC54Ci0rCSAgICAjIEZJWE1FOiBpbnNlcnQgcHJvcGVyIEMrKyBsaWJy YXJ5IHN1cHBvcnQKLSsJICAgIGxkX3NobGlic19DWFg9bm8KLSsJICAgIDs7Ci0rICAgICAgICAg IGxjYyopCi0rCSAgICAjIEx1Y2lkCi0rCSAgICAjIEZJWE1FOiBpbnNlcnQgcHJvcGVyIEMrKyBs aWJyYXJ5IHN1cHBvcnQKLSsJICAgIGxkX3NobGlic19DWFg9bm8KLSsJICAgIDs7Ci0rICAgICAg ICAgICopCi0rCSAgICAjIEZJWE1FOiBpbnNlcnQgcHJvcGVyIEMrKyBsaWJyYXJ5IHN1cHBvcnQK LSsJICAgIGxkX3NobGlic19DWFg9bm8KLSsJICAgIDs7Ci0rICAgICAgICBlc2FjCi0rICAgICAg ICA7OwotKwotKyAgICAgIHNvbGFyaXMqKQotKyAgICAgICAgY2FzZSAkY2NfYmFzZW5hbWUgaW4K LSsgICAgICAgICAgQ0MqKQotKwkgICAgIyBTdW4gQysrIDQuMiwgNS54IGFuZCBDZW50ZXJsaW5l IEMrKwotKyAgICAgICAgICAgIGFyY2hpdmVfY21kc19uZWVkX2xjX0NYWD15ZXMKLSsJICAgIG5v X3VuZGVmaW5lZF9mbGFnX0NYWD0nIC16ZGVmcycKLSsJICAgIGFyY2hpdmVfY21kc19DWFg9JyRD QyAtRyR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9ICAtaCRzb25hbWUgLW8gJGxpYiAkcHJlZGVwX29i amVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3Mn Ci0rCSAgICBhcmNoaXZlX2V4cHN5bV9jbWRzX0NYWD0nZWNobyAieyBnbG9iYWw6IiA+ICRsaWIu ZXhwfmNhdCAkZXhwb3J0X3N5bWJvbHMgfCAkU0VEIC1lICJzL1woLipcKS9cMTsvIiA+PiAkbGli LmV4cH5lY2hvICJsb2NhbDogKjsgfTsiID4+ICRsaWIuZXhwfgotKwkgICAgICAkQ0MgLUcke2Fs bG93X3VuZGVmaW5lZF9mbGFnfSAke3dsfS1NICR7d2x9JGxpYi5leHAgLWgkc29uYW1lIC1vICRs aWIgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNv bXBpbGVyX2ZsYWdzfiRSTSAkbGliLmV4cCcKLSsKLSsJICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFn X3NwZWNfQ1hYPSctUiRsaWJkaXInCi0rCSAgICBoYXJkY29kZV9zaGxpYnBhdGhfdmFyX0NYWD1u bwotKwkgICAgY2FzZSAkaG9zdF9vcyBpbgotKwkgICAgICBzb2xhcmlzMi5bMC01XSB8IHNvbGFy aXMyLlswLTVdLiopIDs7Ci0rCSAgICAgICopCi0rCQkjIFRoZSBjb21waWxlciBkcml2ZXIgd2ls bCBjb21iaW5lIGFuZCByZW9yZGVyIGxpbmtlciBvcHRpb25zLAotKwkJIyBidXQgdW5kZXJzdGFu ZHMgYC16IGxpbmtlcl9mbGFnJy4KLSsJICAgICAgICAjIFN1cHBvcnRlZCBzaW5jZSBTb2xhcmlz IDIuNiAobWF5YmUgMi41LjE/KQotKwkJd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWNfQ1hYPScteiBh bGxleHRyYWN0JGNvbnZlbmllbmNlIC16IGRlZmF1bHRleHRyYWN0JwotKwkgICAgICAgIDs7Ci0r CSAgICBlc2FjCi0rCSAgICBsaW5rX2FsbF9kZXBsaWJzX0NYWD15ZXMKLSsKLSsJICAgIG91dHB1 dF92ZXJib3NlX2xpbmtfY21kPSdlY2hvJwotKwotKwkgICAgIyBBcmNoaXZlcyBjb250YWluaW5n IEMrKyBvYmplY3QgZmlsZXMgbXVzdCBiZSBjcmVhdGVkIHVzaW5nCi0rCSAgICAjICJDQyAteGFy Iiwgd2hlcmUgIkNDIiBpcyB0aGUgU3VuIEMrKyBjb21waWxlci4gIFRoaXMgaXMKLSsJICAgICMg bmVjZXNzYXJ5IHRvIG1ha2Ugc3VyZSBpbnN0YW50aWF0ZWQgdGVtcGxhdGVzIGFyZSBpbmNsdWRl ZAotKwkgICAgIyBpbiB0aGUgYXJjaGl2ZS4KLSsJICAgIG9sZF9hcmNoaXZlX2NtZHNfQ1hYPSck Q0MgLXhhciAtbyAkb2xkbGliICRvbGRvYmpzJwotKwkgICAgOzsKLSsgICAgICAgICAgZ2N4KikK LSsJICAgICMgR3JlZW4gSGlsbHMgQysrIENvbXBpbGVyCi0rCSAgICBhcmNoaXZlX2NtZHNfQ1hY PSckQ0MgLXNoYXJlZCAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBf b2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0taCAkd2wkc29uYW1lIC1vICRsaWInCi0rCi0r CSAgICAjIFRoZSBDKysgY29tcGlsZXIgbXVzdCBiZSB1c2VkIHRvIGNyZWF0ZSB0aGUgYXJjaGl2 ZS4KLSsJICAgIG9sZF9hcmNoaXZlX2NtZHNfQ1hYPSckQ0MgJExERkxBR1MgLWFyY2hpdmUgLW8g JG9sZGxpYiAkb2xkb2JqcycKLSsJICAgIDs7Ci0rICAgICAgICAgICopCi0rCSAgICAjIEdOVSBD KysgY29tcGlsZXIgd2l0aCBTb2xhcmlzIGxpbmtlcgotKwkgICAgaWYgdGVzdCAiJEdYWCIgPSB5 ZXMgJiYgdGVzdCAiJHdpdGhfZ251X2xkIiA9IG5vOyB0aGVuCi0rCSAgICAgIG5vX3VuZGVmaW5l ZF9mbGFnX0NYWD0nICR7d2x9LXogJHt3bH1kZWZzJwotKwkgICAgICBpZiAkQ0MgLS12ZXJzaW9u IHwgJEdSRVAgLXYgJ14yXC43JyA+IC9kZXYvbnVsbDsgdGhlbgotKwkgICAgICAgIGFyY2hpdmVf Y21kc19DWFg9JyRDQyAtc2hhcmVkIC1ub3N0ZGxpYiAkTERGTEFHUyAkcHJlZGVwX29iamVjdHMg JGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0t aCAkd2wkc29uYW1lIC1vICRsaWInCi0rCSAgICAgICAgYXJjaGl2ZV9leHBzeW1fY21kc19DWFg9 J2VjaG8gInsgZ2xvYmFsOiIgPiAkbGliLmV4cH5jYXQgJGV4cG9ydF9zeW1ib2xzIHwgJFNFRCAt ZSAicy9cKC4qXCkvXDE7LyIgPj4gJGxpYi5leHB+ZWNobyAibG9jYWw6ICo7IH07IiA+PiAkbGli LmV4cH4KLSsJCSAgJENDIC1zaGFyZWQgLW5vc3RkbGliICR7d2x9LU0gJHdsJGxpYi5leHAgLW8g JGxpYiAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAk Y29tcGlsZXJfZmxhZ3N+JFJNICRsaWIuZXhwJwotKwotKwkgICAgICAgICMgQ29tbWFuZHMgdG8g bWFrZSBjb21waWxlciBwcm9kdWNlIHZlcmJvc2Ugb3V0cHV0IHRoYXQgbGlzdHMKLSsJICAgICAg ICAjIHdoYXQgImhpZGRlbiIgbGlicmFyaWVzLCBvYmplY3QgZmlsZXMgYW5kIGZsYWdzIGFyZSB1 c2VkIHdoZW4KLSsJICAgICAgICAjIGxpbmtpbmcgYSBzaGFyZWQgbGlicmFyeS4KLSsJICAgICAg ICBvdXRwdXRfdmVyYm9zZV9saW5rX2NtZD0nJENDIC1zaGFyZWQgJENGTEFHUyAtdiBjb25mdGVz dC4kb2JqZXh0IDI+JjEgfCAkR1JFUCAiXC1MIicKLSsJICAgICAgZWxzZQotKwkgICAgICAgICMg ZysrIDIuNyBhcHBlYXJzIHRvIHJlcXVpcmUgYC1HJyBOT1QgYC1zaGFyZWQnIG9uIHRoaXMKLSsJ ICAgICAgICAjIHBsYXRmb3JtLgotKwkgICAgICAgIGFyY2hpdmVfY21kc19DWFg9JyRDQyAtRyAt bm9zdGRsaWIgJExERkxBR1MgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0 ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LWggJHdsJHNvbmFtZSAtbyAkbGliJwot KwkgICAgICAgIGFyY2hpdmVfZXhwc3ltX2NtZHNfQ1hYPSdlY2hvICJ7IGdsb2JhbDoiID4gJGxp Yi5leHB+Y2F0ICRleHBvcnRfc3ltYm9scyB8ICRTRUQgLWUgInMvXCguKlwpL1wxOy8iID4+ICRs aWIuZXhwfmVjaG8gImxvY2FsOiAqOyB9OyIgPj4gJGxpYi5leHB+Ci0rCQkgICRDQyAtRyAtbm9z dGRsaWIgJHt3bH0tTSAkd2wkbGliLmV4cCAtbyAkbGliICRwcmVkZXBfb2JqZWN0cyAkbGlib2Jq cyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFnc34kUk0gJGxpYi5leHAn Ci0rCi0rCSAgICAgICAgIyBDb21tYW5kcyB0byBtYWtlIGNvbXBpbGVyIHByb2R1Y2UgdmVyYm9z ZSBvdXRwdXQgdGhhdCBsaXN0cwotKwkgICAgICAgICMgd2hhdCAiaGlkZGVuIiBsaWJyYXJpZXMs IG9iamVjdCBmaWxlcyBhbmQgZmxhZ3MgYXJlIHVzZWQgd2hlbgotKwkgICAgICAgICMgbGlua2lu ZyBhIHNoYXJlZCBsaWJyYXJ5LgotKwkgICAgICAgIG91dHB1dF92ZXJib3NlX2xpbmtfY21kPSck Q0MgLUcgJENGTEFHUyAtdiBjb25mdGVzdC4kb2JqZXh0IDI+JjEgfCAkR1JFUCAiXC1MIicKLSsJ ICAgICAgZmkKLSsKLSsJICAgICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19DWFg9JyR7d2x9 LVIgJHdsJGxpYmRpcicKLSsJICAgICAgY2FzZSAkaG9zdF9vcyBpbgotKwkJc29sYXJpczIuWzAt NV0gfCBzb2xhcmlzMi5bMC01XS4qKSA7OwotKwkJKikKLSsJCSAgd2hvbGVfYXJjaGl2ZV9mbGFn X3NwZWNfQ1hYPScke3dsfS16ICR7d2x9YWxsZXh0cmFjdCRjb252ZW5pZW5jZSAke3dsfS16ICR7 d2x9ZGVmYXVsdGV4dHJhY3QnCi0rCQkgIDs7Ci0rCSAgICAgIGVzYWMKLSsJICAgIGZpCi0rCSAg ICA7OwotKyAgICAgICAgZXNhYwotKyAgICAgICAgOzsKLSsKLSsgICAgc3lzdjQqdXcyKiB8IHN5 c3Y1T3BlblVOSVgqIHwgc3lzdjVVbml4V2FyZTcuWzAxXS5bMTBdKiB8IHVuaXh3YXJlNyogfCBz Y28zLjJ2NS4wLlswMjRdKikKLSsgICAgICBub191bmRlZmluZWRfZmxhZ19DWFg9JyR7d2x9LXos dGV4dCcKLSsgICAgICBhcmNoaXZlX2NtZHNfbmVlZF9sY19DWFg9bm8KLSsgICAgICBoYXJkY29k ZV9zaGxpYnBhdGhfdmFyX0NYWD1ubwotKyAgICAgIHJ1bnBhdGhfdmFyPSdMRF9SVU5fUEFUSCcK LSsKLSsgICAgICBjYXNlICRjY19iYXNlbmFtZSBpbgotKyAgICAgICAgQ0MqKQotKwkgIGFyY2hp dmVfY21kc19DWFg9JyRDQyAtRyAke3dsfS1oLCRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVw bGlicyAkY29tcGlsZXJfZmxhZ3MnCi0rCSAgYXJjaGl2ZV9leHBzeW1fY21kc19DWFg9JyRDQyAt RyAke3dsfS1CZXhwb3J0OiRleHBvcnRfc3ltYm9scyAke3dsfS1oLCRzb25hbWUgLW8gJGxpYiAk bGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCi0rCSAgOzsKLSsJKikKLSsJICBhcmNo aXZlX2NtZHNfQ1hYPSckQ0MgLXNoYXJlZCAke3dsfS1oLCRzb25hbWUgLW8gJGxpYiAkbGlib2Jq cyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCi0rCSAgYXJjaGl2ZV9leHBzeW1fY21kc19DWFg9 JyRDQyAtc2hhcmVkICR7d2x9LUJleHBvcnQ6JGV4cG9ydF9zeW1ib2xzICR7d2x9LWgsJHNvbmFt ZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKLSsJICA7OwotKyAg ICAgIGVzYWMKLSsgICAgICA7OwotKwotKyAgICAgIHN5c3Y1KiB8IHNjbzMuMnY1KiB8IHNjbzV2 NiopCi0rCSMgTm90ZTogV2UgY2FuIE5PVCB1c2UgLXogZGVmcyBhcyB3ZSBtaWdodCBkZXNpcmUs IGJlY2F1c2Ugd2UgZG8gbm90Ci0rCSMgbGluayB3aXRoIC1sYywgYW5kIHRoYXQgd291bGQgY2F1 c2UgYW55IHN5bWJvbHMgdXNlZCBmcm9tIGxpYmMgdG8KLSsJIyBhbHdheXMgYmUgdW5yZXNvbHZl ZCwgd2hpY2ggbWVhbnMganVzdCBhYm91dCBubyBsaWJyYXJ5IHdvdWxkCi0rCSMgZXZlciBsaW5r IGNvcnJlY3RseS4gIElmIHdlJ3JlIG5vdCB1c2luZyBHTlUgbGQgd2UgdXNlIC16IHRleHQKLSsJ IyB0aG91Z2gsIHdoaWNoIGRvZXMgY2F0Y2ggc29tZSBiYWQgc3ltYm9scyBidXQgaXNuJ3QgYXMg aGVhdnktaGFuZGVkCi0rCSMgYXMgLXogZGVmcy4KLSsJbm9fdW5kZWZpbmVkX2ZsYWdfQ1hYPSck e3dsfS16LHRleHQnCi0rCWFsbG93X3VuZGVmaW5lZF9mbGFnX0NYWD0nJHt3bH0teixub2RlZnMn Ci0rCWFyY2hpdmVfY21kc19uZWVkX2xjX0NYWD1ubwotKwloYXJkY29kZV9zaGxpYnBhdGhfdmFy X0NYWD1ubwotKwloYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX0NYWD0nJHt3bH0tUiwkbGliZGly JwotKwloYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yX0NYWD0nOicKLSsJbGlua19hbGxfZGVwbGli c19DWFg9eWVzCi0rCWV4cG9ydF9keW5hbWljX2ZsYWdfc3BlY19DWFg9JyR7d2x9LUJleHBvcnQn Ci0rCXJ1bnBhdGhfdmFyPSdMRF9SVU5fUEFUSCcKLSsKLSsJY2FzZSAkY2NfYmFzZW5hbWUgaW4K LSsgICAgICAgICAgQ0MqKQotKwkgICAgYXJjaGl2ZV9jbWRzX0NYWD0nJENDIC1HICR7d2x9LWgs JHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKLSsJICAg IGFyY2hpdmVfZXhwc3ltX2NtZHNfQ1hYPSckQ0MgLUcgJHt3bH0tQmV4cG9ydDokZXhwb3J0X3N5 bWJvbHMgJHt3bH0taCwkc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVy X2ZsYWdzJwotKwkgICAgOzsKLSsJICAqKQotKwkgICAgYXJjaGl2ZV9jbWRzX0NYWD0nJENDIC1z aGFyZWQgJHt3bH0taCwkc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVy X2ZsYWdzJwotKwkgICAgYXJjaGl2ZV9leHBzeW1fY21kc19DWFg9JyRDQyAtc2hhcmVkICR7d2x9 LUJleHBvcnQ6JGV4cG9ydF9zeW1ib2xzICR7d2x9LWgsJHNvbmFtZSAtbyAkbGliICRsaWJvYmpz ICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKLSsJICAgIDs7Ci0rCWVzYWMKLSsgICAgICA7Owot KwotKyAgICAgIHRhbmRlbSopCi0rICAgICAgICBjYXNlICRjY19iYXNlbmFtZSBpbgotKyAgICAg ICAgICBOQ0MqKQotKwkgICAgIyBOb25TdG9wLVVYIE5DQyAzLjIwCi0rCSAgICAjIEZJWE1FOiBp bnNlcnQgcHJvcGVyIEMrKyBsaWJyYXJ5IHN1cHBvcnQKLSsJICAgIGxkX3NobGlic19DWFg9bm8K LSsJICAgIDs7Ci0rICAgICAgICAgICopCi0rCSAgICAjIEZJWE1FOiBpbnNlcnQgcHJvcGVyIEMr KyBsaWJyYXJ5IHN1cHBvcnQKLSsJICAgIGxkX3NobGlic19DWFg9bm8KLSsJICAgIDs7Ci0rICAg ICAgICBlc2FjCi0rICAgICAgICA7OwotKwotKyAgICAgIHZ4d29ya3MqKQotKyAgICAgICAgIyBG SVhNRTogaW5zZXJ0IHByb3BlciBDKysgbGlicmFyeSBzdXBwb3J0Ci0rICAgICAgICBsZF9zaGxp YnNfQ1hYPW5vCi0rICAgICAgICA7OwotKwotKyAgICAgICopCi0rICAgICAgICAjIEZJWE1FOiBp bnNlcnQgcHJvcGVyIEMrKyBsaWJyYXJ5IHN1cHBvcnQKLSsgICAgICAgIGxkX3NobGlic19DWFg9 bm8KLSsgICAgICAgIDs7Ci0rICAgIGVzYWMKLSsKLSsgICAgeyAkYXNfZWNobyAiJGFzX21lOiRM SU5FTk86IHJlc3VsdDogJGxkX3NobGlic19DWFgiID4mNQotKyRhc19lY2hvICIkbGRfc2hsaWJz X0NYWCIgPiY2OyB9Ci0rICAgIHRlc3QgIiRsZF9zaGxpYnNfQ1hYIiA9IG5vICYmIGNhbl9idWls ZF9zaGFyZWQ9bm8KLSsKLSsgICAgR0NDX0NYWD0iJEdYWCIKLSsgICAgTERfQ1hYPSIkTEQiCi0r Ci0rICAgICMjIENBVkVBVCBFTVBUT1I6Ci0rICAgICMjIFRoZXJlIGlzIG5vIGVuY2Fwc3VsYXRp b24gd2l0aGluIHRoZSBmb2xsb3dpbmcgbWFjcm9zLCBkbyBub3QgY2hhbmdlCi0rICAgICMjIHRo ZSBydW5uaW5nIG9yZGVyIG9yIG90aGVyd2lzZSBtb3ZlIHRoZW0gYXJvdW5kIHVubGVzcyB5b3Ug a25vdyBleGFjdGx5Ci0rICAgICMjIHdoYXQgeW91IGFyZSBkb2luZy4uLgotKyAgICAjIERlcGVu ZGVuY2llcyB0byBwbGFjZSBiZWZvcmUgYW5kIGFmdGVyIHRoZSBvYmplY3QgYmVpbmcgbGlua2Vk OgotK3ByZWRlcF9vYmplY3RzX0NYWD0KLStwb3N0ZGVwX29iamVjdHNfQ1hYPQotK3ByZWRlcHNf Q1hYPQotK3Bvc3RkZXBzX0NYWD0KLStjb21waWxlcl9saWJfc2VhcmNoX3BhdGhfQ1hYPQotKwot K2NhdCA+IGNvbmZ0ZXN0LiRhY19leHQgPDxfTFRfRU9GCi0rY2xhc3MgRm9vCi0rewotK3B1Ymxp YzoKLSsgIEZvbyAodm9pZCkgeyBhID0gMDsgfQotK3ByaXZhdGU6Ci0rICBpbnQgYTsKLSt9Owot K19MVF9FT0YKLSsKLStpZiB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY19jb21w aWxlXCIiKSA+JjUKLSsgIChldmFsICRhY19jb21waWxlKSAyPiY1Ci0rICBhY19zdGF0dXM9JD8K LSsgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0rICAo ZXhpdCAkYWNfc3RhdHVzKTsgfTsgdGhlbgotKyAgIyBQYXJzZSB0aGUgY29tcGlsZXIgb3V0cHV0 IGFuZCBleHRyYWN0IHRoZSBuZWNlc3NhcnkKLSsgICMgb2JqZWN0cywgbGlicmFyaWVzIGFuZCBs aWJyYXJ5IGZsYWdzLgotKwotKyAgIyBTZW50aW5lbCB1c2VkIHRvIGtlZXAgdHJhY2sgb2Ygd2hl dGhlciBvciBub3Qgd2UgYXJlIGJlZm9yZQotKyAgIyB0aGUgY29uZnRlc3Qgb2JqZWN0IGZpbGUu Ci0rICBwcmVfdGVzdF9vYmplY3RfZGVwc19kb25lPW5vCi0rCi0rICBmb3IgcCBpbiBgZXZhbCAi JG91dHB1dF92ZXJib3NlX2xpbmtfY21kImA7IGRvCi0rICAgIGNhc2UgJHAgaW4KLSsKLSsgICAg LUwqIHwgLVIqIHwgLWwqKQotKyAgICAgICAjIFNvbWUgY29tcGlsZXJzIHBsYWNlIHNwYWNlIGJl dHdlZW4gIi17TCxSfSIgYW5kIHRoZSBwYXRoLgotKyAgICAgICAjIFJlbW92ZSB0aGUgc3BhY2Uu Ci0rICAgICAgIGlmIHRlc3QgJHAgPSAiLUwiIHx8Ci0rICAgICAgICAgIHRlc3QgJHAgPSAiLVIi OyB0aGVuCi0rCSBwcmV2PSRwCi0rCSBjb250aW51ZQotKyAgICAgICBlbHNlCi0rCSBwcmV2PQot KyAgICAgICBmaQotKwotKyAgICAgICBpZiB0ZXN0ICIkcHJlX3Rlc3Rfb2JqZWN0X2RlcHNfZG9u ZSIgPSBubzsgdGhlbgotKwkgY2FzZSAkcCBpbgotKwkgLUwqIHwgLVIqKQotKwkgICAjIEludGVy bmFsIGNvbXBpbGVyIGxpYnJhcnkgcGF0aHMgc2hvdWxkIGNvbWUgYWZ0ZXIgdGhvc2UKLSsJICAg IyBwcm92aWRlZCB0aGUgdXNlci4gIFRoZSBwb3N0ZGVwcyBhbHJlYWR5IGNvbWUgYWZ0ZXIgdGhl Ci0rCSAgICMgdXNlciBzdXBwbGllZCBsaWJzIHNvIHRoZXJlIGlzIG5vIG5lZWQgdG8gcHJvY2Vz cyB0aGVtLgotKwkgICBpZiB0ZXN0IC16ICIkY29tcGlsZXJfbGliX3NlYXJjaF9wYXRoX0NYWCI7 IHRoZW4KLSsJICAgICBjb21waWxlcl9saWJfc2VhcmNoX3BhdGhfQ1hYPSIke3ByZXZ9JHtwfSIK LSsJICAgZWxzZQotKwkgICAgIGNvbXBpbGVyX2xpYl9zZWFyY2hfcGF0aF9DWFg9IiR7Y29tcGls ZXJfbGliX3NlYXJjaF9wYXRoX0NYWH0gJHtwcmV2fSR7cH0iCi0rCSAgIGZpCi0rCSAgIDs7Ci0r CSAjIFRoZSAiLWwiIGNhc2Ugd291bGQgbmV2ZXIgY29tZSBiZWZvcmUgdGhlIG9iamVjdCBiZWlu ZwotKwkgIyBsaW5rZWQsIHNvIGRvbid0IGJvdGhlciBoYW5kbGluZyB0aGlzIGNhc2UuCi0rCSBl c2FjCi0rICAgICAgIGVsc2UKLSsJIGlmIHRlc3QgLXogIiRwb3N0ZGVwc19DWFgiOyB0aGVuCi0r CSAgIHBvc3RkZXBzX0NYWD0iJHtwcmV2fSR7cH0iCi0rCSBlbHNlCi0rCSAgIHBvc3RkZXBzX0NY WD0iJHtwb3N0ZGVwc19DWFh9ICR7cHJldn0ke3B9IgotKwkgZmkKLSsgICAgICAgZmkKLSsgICAg ICAgOzsKLSsKLSsgICAgKi4kb2JqZXh0KQotKyAgICAgICAjIFRoaXMgYXNzdW1lcyB0aGF0IHRo ZSB0ZXN0IG9iamVjdCBmaWxlIG9ubHkgc2hvd3MgdXAKLSsgICAgICAgIyBvbmNlIGluIHRoZSBj b21waWxlciBvdXRwdXQuCi0rICAgICAgIGlmIHRlc3QgIiRwIiA9ICJjb25mdGVzdC4kb2JqZXh0 IjsgdGhlbgotKwkgcHJlX3Rlc3Rfb2JqZWN0X2RlcHNfZG9uZT15ZXMKLSsJIGNvbnRpbnVlCi0r ICAgICAgIGZpCi0rCi0rICAgICAgIGlmIHRlc3QgIiRwcmVfdGVzdF9vYmplY3RfZGVwc19kb25l IiA9IG5vOyB0aGVuCi0rCSBpZiB0ZXN0IC16ICIkcHJlZGVwX29iamVjdHNfQ1hYIjsgdGhlbgot KwkgICBwcmVkZXBfb2JqZWN0c19DWFg9IiRwIgotKwkgZWxzZQotKwkgICBwcmVkZXBfb2JqZWN0 c19DWFg9IiRwcmVkZXBfb2JqZWN0c19DWFggJHAiCi0rCSBmaQotKyAgICAgICBlbHNlCi0rCSBp ZiB0ZXN0IC16ICIkcG9zdGRlcF9vYmplY3RzX0NYWCI7IHRoZW4KLSsJICAgcG9zdGRlcF9vYmpl Y3RzX0NYWD0iJHAiCi0rCSBlbHNlCi0rCSAgIHBvc3RkZXBfb2JqZWN0c19DWFg9IiRwb3N0ZGVw X29iamVjdHNfQ1hYICRwIgotKwkgZmkKLSsgICAgICAgZmkKLSsgICAgICAgOzsKLSsKLSsgICAg KikgOzsgIyBJZ25vcmUgdGhlIHJlc3QuCi0rCi0rICAgIGVzYWMKLSsgIGRvbmUKLSsKLSsgICMg Q2xlYW4gdXAuCi0rICBybSAtZiBhLm91dCBhLmV4ZQotK2Vsc2UKLSsgIGVjaG8gImxpYnRvb2wu bTQ6IGVycm9yOiBwcm9ibGVtIGNvbXBpbGluZyBDWFggdGVzdCBwcm9ncmFtIgotK2ZpCi0rCi0r JFJNIC1mIGNvbmZlc3QuJG9iamV4dAotKwotKyMgUE9SVE1FOiBvdmVycmlkZSBhYm92ZSB0ZXN0 IG9uIHN5c3RlbXMgd2hlcmUgaXQgaXMgYnJva2VuCi0rY2FzZSAkaG9zdF9vcyBpbgotK2ludGVy aXhbMy05XSopCi0rICAjIEludGVyaXggMy41IGluc3RhbGxzIGNvbXBsZXRlbHkgaG9zZWQgLmxh IGZpbGVzIGZvciBDKyssIHNvIHJhdGhlciB0aGFuCi0rICAjIGhhY2sgYWxsIGFyb3VuZCBpdCwg bGV0J3MganVzdCB0cnVzdCAiZysrIiB0byBEVFJULgotKyAgcHJlZGVwX29iamVjdHNfQ1hYPQot KyAgcG9zdGRlcF9vYmplY3RzX0NYWD0KLSsgIHBvc3RkZXBzX0NYWD0KLSsgIDs7Ci0rCi0rbGlu dXgqKQotKyAgY2FzZSBgJENDIC1WIDI+JjEgfCBzZWQgNXFgIGluCi0rICAqU3VuXCBDKikKLSsg ICAgIyBTdW4gQysrIDUuOQotKwotKyAgICAjIFRoZSBtb3JlIHN0YW5kYXJkcy1jb25mb3JtaW5n IHN0bHBvcnQ0IGxpYnJhcnkgaXMKLSsgICAgIyBpbmNvbXBhdGlibGUgd2l0aCB0aGUgQ3N0ZCBs aWJyYXJ5LiBBdm9pZCBzcGVjaWZ5aW5nCi0rICAgICMgaXQgaWYgaXQncyBpbiBDWFhGTEFHUy4g SWdub3JlIGxpYkNydW4gYXMKLSsgICAgIyAtbGlicmFyeT1zdGxwb3J0NCBkZXBlbmRzIG9uIGl0 LgotKyAgICBjYXNlICIgJENYWCAkQ1hYRkxBR1MgIiBpbgotKyAgICAqIiAtbGlicmFyeT1zdGxw b3J0NCAiKikKLSsgICAgICBzb2xhcmlzX3VzZV9zdGxwb3J0ND15ZXMKLSsgICAgICA7OwotKyAg ICBlc2FjCi0rCi0rICAgIGlmIHRlc3QgIiRzb2xhcmlzX3VzZV9zdGxwb3J0NCIgIT0geWVzOyB0 aGVuCi0rICAgICAgcG9zdGRlcHNfQ1hYPSctbGlicmFyeT1Dc3RkIC1saWJyYXJ5PUNydW4nCi0r ICAgIGZpCi0rICAgIDs7Ci0rICBlc2FjCi0rICA7OwotKwotK3NvbGFyaXMqKQotKyAgY2FzZSAk Y2NfYmFzZW5hbWUgaW4KLSsgIENDKikKLSsgICAgIyBUaGUgbW9yZSBzdGFuZGFyZHMtY29uZm9y bWluZyBzdGxwb3J0NCBsaWJyYXJ5IGlzCi0rICAgICMgaW5jb21wYXRpYmxlIHdpdGggdGhlIENz dGQgbGlicmFyeS4gQXZvaWQgc3BlY2lmeWluZwotKyAgICAjIGl0IGlmIGl0J3MgaW4gQ1hYRkxB R1MuIElnbm9yZSBsaWJDcnVuIGFzCi0rICAgICMgLWxpYnJhcnk9c3RscG9ydDQgZGVwZW5kcyBv biBpdC4KLSsgICAgY2FzZSAiICRDWFggJENYWEZMQUdTICIgaW4KLSsgICAgKiIgLWxpYnJhcnk9 c3RscG9ydDQgIiopCi0rICAgICAgc29sYXJpc191c2Vfc3RscG9ydDQ9eWVzCi0rICAgICAgOzsK LSsgICAgZXNhYwotKwotKyAgICAjIEFkZGluZyB0aGlzIHJlcXVpcmVzIGEga25vd24tZ29vZCBz ZXR1cCBvZiBzaGFyZWQgbGlicmFyaWVzIGZvcgotKyAgICAjIFN1biBjb21waWxlciB2ZXJzaW9u cyBiZWZvcmUgNS42LCBlbHNlIFBJQyBvYmplY3RzIGZyb20gYW4gb2xkCi0rICAgICMgYXJjaGl2 ZSB3aWxsIGJlIGxpbmtlZCBpbnRvIHRoZSBvdXRwdXQsIGxlYWRpbmcgdG8gc3VidGxlIGJ1Z3Mu Ci0rICAgIGlmIHRlc3QgIiRzb2xhcmlzX3VzZV9zdGxwb3J0NCIgIT0geWVzOyB0aGVuCi0rICAg ICAgcG9zdGRlcHNfQ1hYPSctbGlicmFyeT1Dc3RkIC1saWJyYXJ5PUNydW4nCi0rICAgIGZpCi0r ICAgIDs7Ci0rICBlc2FjCi0rICA7OwotK2VzYWMKLSsKLSsKLStjYXNlICIgJHBvc3RkZXBzX0NY WCAiIGluCi0rKiIgLWxjICIqKSBhcmNoaXZlX2NtZHNfbmVlZF9sY19DWFg9bm8gOzsKLStlc2Fj Ci0rIGNvbXBpbGVyX2xpYl9zZWFyY2hfZGlyc19DWFg9Ci0raWYgdGVzdCAtbiAiJHtjb21waWxl cl9saWJfc2VhcmNoX3BhdGhfQ1hYfSI7IHRoZW4KLSsgY29tcGlsZXJfbGliX3NlYXJjaF9kaXJz X0NYWD1gZWNobyAiICR7Y29tcGlsZXJfbGliX3NlYXJjaF9wYXRoX0NYWH0iIHwgJHtTRUR9IC1l ICdzISAtTCEgIWcnIC1lICdzIV4gISEnYAotK2ZpCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0r Ci0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0r Ci0rCi0rCi0rCi0rICAgIGx0X3Byb2dfY29tcGlsZXJfd2xfQ1hYPQotK2x0X3Byb2dfY29tcGls ZXJfcGljX0NYWD0KLStsdF9wcm9nX2NvbXBpbGVyX3N0YXRpY19DWFg9Ci0rCi0reyAkYXNfZWNo byAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciAkY29tcGlsZXIgb3B0aW9uIHRvIHByb2R1 Y2UgUElDIiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyBmb3IgJGNvbXBpbGVyIG9wdGlvbiB0 byBwcm9kdWNlIFBJQy4uLiAiID4mNjsgfQotKwotKyAgIyBDKysgc3BlY2lmaWMgY2FzZXMgZm9y IHBpYywgc3RhdGljLCB3bCwgZXRjLgotKyAgaWYgdGVzdCAiJEdYWCIgPSB5ZXM7IHRoZW4KLSsg ICAgbHRfcHJvZ19jb21waWxlcl93bF9DWFg9Jy1XbCwnCi0rICAgIGx0X3Byb2dfY29tcGlsZXJf c3RhdGljX0NYWD0nLXN0YXRpYycKLSsKLSsgICAgY2FzZSAkaG9zdF9vcyBpbgotKyAgICBhaXgq KQotKyAgICAgICMgQWxsIEFJWCBjb2RlIGlzIFBJQy4KLSsgICAgICBpZiB0ZXN0ICIkaG9zdF9j cHUiID0gaWE2NDsgdGhlbgotKwkjIEFJWCA1IG5vdyBzdXBwb3J0cyBJQTY0IHByb2Nlc3Nvcgot KwlsdF9wcm9nX2NvbXBpbGVyX3N0YXRpY19DWFg9Jy1Cc3RhdGljJwotKyAgICAgIGZpCi0rICAg ICAgOzsKLSsKLSsgICAgYW1pZ2FvcyopCi0rICAgICAgY2FzZSAkaG9zdF9jcHUgaW4KLSsgICAg ICBwb3dlcnBjKQotKyAgICAgICAgICAgICMgc2VlIGNvbW1lbnQgYWJvdXQgQW1pZ2FPUzQgLnNv IHN1cHBvcnQKLSsgICAgICAgICAgICBsdF9wcm9nX2NvbXBpbGVyX3BpY19DWFg9Jy1mUElDJwot KyAgICAgICAgOzsKLSsgICAgICBtNjhrKQotKyAgICAgICAgICAgICMgRklYTUU6IHdlIG5lZWQg YXQgbGVhc3QgNjgwMjAgY29kZSB0byBidWlsZCBzaGFyZWQgbGlicmFyaWVzLCBidXQKLSsgICAg ICAgICAgICAjIGFkZGluZyB0aGUgYC1tNjgwMjAnIGZsYWcgdG8gR0NDIHByZXZlbnRzIGJ1aWxk aW5nIGFueXRoaW5nIGJldHRlciwKLSsgICAgICAgICAgICAjIGxpa2UgYC1tNjgwNDAnLgotKyAg ICAgICAgICAgIGx0X3Byb2dfY29tcGlsZXJfcGljX0NYWD0nLW02ODAyMCAtcmVzaWRlbnQzMiAt bWFsd2F5cy1yZXN0b3JlLWE0JwotKyAgICAgICAgOzsKLSsgICAgICBlc2FjCi0rICAgICAgOzsK LSsKLSsgICAgYmVvcyogfCBpcml4NSogfCBpcml4NiogfCBub25zdG9wdXgqIHwgb3NmMyogfCBv c2Y0KiB8IG9zZjUqKQotKyAgICAgICMgUElDIGlzIHRoZSBkZWZhdWx0IGZvciB0aGVzZSBPU2Vz LgotKyAgICAgIDs7Ci0rICAgIG1pbmd3KiB8IGN5Z3dpbiogfCBvczIqIHwgcHczMiogfCBjZWdj YyopCi0rICAgICAgIyBUaGlzIGhhY2sgaXMgc28gdGhhdCB0aGUgc291cmNlIGZpbGUgY2FuIHRl bGwgd2hldGhlciBpdCBpcyBiZWluZwotKyAgICAgICMgYnVpbHQgZm9yIGluY2x1c2lvbiBpbiBh IGRsbCAoYW5kIHNob3VsZCBleHBvcnQgc3ltYm9scyBmb3IgZXhhbXBsZSkuCi0rICAgICAgIyBB bHRob3VnaCB0aGUgY3lnd2luIGdjYyBpZ25vcmVzIC1mUElDLCBzdGlsbCBuZWVkIHRoaXMgZm9y IG9sZC1zdHlsZQotKyAgICAgICMgKC0tZGlzYWJsZS1hdXRvLWltcG9ydCkgbGlicmFyaWVzCi0r ICAgICAgbHRfcHJvZ19jb21waWxlcl9waWNfQ1hYPSctRERMTF9FWFBPUlQnCi0rICAgICAgOzsK LSsgICAgZGFyd2luKiB8IHJoYXBzb2R5KikKLSsgICAgICAjIFBJQyBpcyB0aGUgZGVmYXVsdCBv biB0aGlzIHBsYXRmb3JtCi0rICAgICAgIyBDb21tb24gc3ltYm9scyBub3QgYWxsb3dlZCBpbiBN SF9EWUxJQiBmaWxlcwotKyAgICAgIGx0X3Byb2dfY29tcGlsZXJfcGljX0NYWD0nLWZuby1jb21t b24nCi0rICAgICAgOzsKLSsgICAgKmRqZ3BwKikKLSsgICAgICAjIERKR1BQIGRvZXMgbm90IHN1 cHBvcnQgc2hhcmVkIGxpYnJhcmllcyBhdCBhbGwKLSsgICAgICBsdF9wcm9nX2NvbXBpbGVyX3Bp Y19DWFg9Ci0rICAgICAgOzsKLSsgICAgaW50ZXJpeFszLTldKikKLSsgICAgICAjIEludGVyaXgg My54IGdjYyAtZnBpYy8tZlBJQyBvcHRpb25zIGdlbmVyYXRlIGJyb2tlbiBjb2RlLgotKyAgICAg ICMgSW5zdGVhZCwgd2UgcmVsb2NhdGUgc2hhcmVkIGxpYnJhcmllcyBhdCBydW50aW1lLgotKyAg ICAgIDs7Ci0rICAgIHN5c3Y0Kk1QKikKLSsgICAgICBpZiB0ZXN0IC1kIC91c3IvbmVjOyB0aGVu Ci0rCWx0X3Byb2dfY29tcGlsZXJfcGljX0NYWD0tS2NvbmZvcm1fcGljCi0rICAgICAgZmkKLSsg ICAgICA7OwotKyAgICBocHV4KikKLSsgICAgICAjIFBJQyBpcyB0aGUgZGVmYXVsdCBmb3IgNjQt Yml0IFBBIEhQLVVYLCBidXQgbm90IGZvciAzMi1iaXQKLSsgICAgICAjIFBBIEhQLVVYLiAgT24g SUE2NCBIUC1VWCwgUElDIGlzIHRoZSBkZWZhdWx0IGJ1dCB0aGUgcGljIGZsYWcKLSsgICAgICAj IHNldHMgdGhlIGRlZmF1bHQgVExTIG1vZGVsIGFuZCBhZmZlY3RzIGlubGluaW5nLgotKyAgICAg IGNhc2UgJGhvc3RfY3B1IGluCi0rICAgICAgaHBwYSo2NCopCi0rCTs7Ci0rICAgICAgKikKLSsJ bHRfcHJvZ19jb21waWxlcl9waWNfQ1hYPSctZlBJQycKLSsJOzsKLSsgICAgICBlc2FjCi0rICAg ICAgOzsKLSsgICAgKnFueCogfCAqbnRvKikKLSsgICAgICAjIFFOWCB1c2VzIEdOVSBDKyssIGJ1 dCBuZWVkIHRvIGRlZmluZSAtc2hhcmVkIG9wdGlvbiB0b28sIG90aGVyd2lzZQotKyAgICAgICMg aXQgd2lsbCBjb3JlZHVtcC4KLSsgICAgICBsdF9wcm9nX2NvbXBpbGVyX3BpY19DWFg9Jy1mUElD IC1zaGFyZWQnCi0rICAgICAgOzsKLSsgICAgKikKLSsgICAgICBsdF9wcm9nX2NvbXBpbGVyX3Bp Y19DWFg9Jy1mUElDJwotKyAgICAgIDs7Ci0rICAgIGVzYWMKLSsgIGVsc2UKLSsgICAgY2FzZSAk aG9zdF9vcyBpbgotKyAgICAgIGFpeFs0LTldKikKLSsJIyBBbGwgQUlYIGNvZGUgaXMgUElDLgot KwlpZiB0ZXN0ICIkaG9zdF9jcHUiID0gaWE2NDsgdGhlbgotKwkgICMgQUlYIDUgbm93IHN1cHBv cnRzIElBNjQgcHJvY2Vzc29yCi0rCSAgbHRfcHJvZ19jb21waWxlcl9zdGF0aWNfQ1hYPSctQnN0 YXRpYycKLSsJZWxzZQotKwkgIGx0X3Byb2dfY29tcGlsZXJfc3RhdGljX0NYWD0nLWJuc28gLWJJ Oi9saWIvc3lzY2FsbHMuZXhwJwotKwlmaQotKwk7OwotKyAgICAgIGNob3J1cyopCi0rCWNhc2Ug JGNjX2Jhc2VuYW1lIGluCi0rCWN4Y2g2OCopCi0rCSAgIyBHcmVlbiBIaWxscyBDKysgQ29tcGls ZXIKLSsJICAjIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9zdGF0aWMsIENYWCk9Ii0tbm9f YXV0b19pbnN0YW50aWF0aW9uIC11IF9fbWFpbiAtdSBfX3ByZW1haW4gLXUgX2Fib3J0IC1yICRD T09MX0RJUi9saWIvbGliT3JiLmEgJE1WTUVfRElSL2xpYi9DQy9saWJDLmEgJE1WTUVfRElSL2xp Yi9jbGFzc2l4L2xpYmN4LnMuYSIKLSsJICA7OwotKwllc2FjCi0rCTs7Ci0rICAgICAgZGd1eCop Ci0rCWNhc2UgJGNjX2Jhc2VuYW1lIGluCi0rCSAgZWMrKyopCi0rCSAgICBsdF9wcm9nX2NvbXBp bGVyX3BpY19DWFg9Jy1LUElDJwotKwkgICAgOzsKLSsJICBnaGN4KikKLSsJICAgICMgR3JlZW4g SGlsbHMgQysrIENvbXBpbGVyCi0rCSAgICBsdF9wcm9nX2NvbXBpbGVyX3BpY19DWFg9Jy1waWMn Ci0rCSAgICA7OwotKwkgICopCi0rCSAgICA7OwotKwllc2FjCi0rCTs7Ci0rICAgICAgZnJlZWJz ZCogfCBkcmFnb25mbHkqKQotKwkjIEZyZWVCU0QgdXNlcyBHTlUgQysrCi0rCTs7Ci0rICAgICAg aHB1eDkqIHwgaHB1eDEwKiB8IGhwdXgxMSopCi0rCWNhc2UgJGNjX2Jhc2VuYW1lIGluCi0rCSAg Q0MqKQotKwkgICAgbHRfcHJvZ19jb21waWxlcl93bF9DWFg9Jy1XbCwnCi0rCSAgICBsdF9wcm9n X2NvbXBpbGVyX3N0YXRpY19DWFg9JyR7d2x9LWEgJHt3bH1hcmNoaXZlJwotKwkgICAgaWYgdGVz dCAiJGhvc3RfY3B1IiAhPSBpYTY0OyB0aGVuCi0rCSAgICAgIGx0X3Byb2dfY29tcGlsZXJfcGlj X0NYWD0nK1onCi0rCSAgICBmaQotKwkgICAgOzsKLSsJICBhQ0MqKQotKwkgICAgbHRfcHJvZ19j b21waWxlcl93bF9DWFg9Jy1XbCwnCi0rCSAgICBsdF9wcm9nX2NvbXBpbGVyX3N0YXRpY19DWFg9 JyR7d2x9LWEgJHt3bH1hcmNoaXZlJwotKwkgICAgY2FzZSAkaG9zdF9jcHUgaW4KLSsJICAgIGhw cGEqNjQqfGlhNjQqKQotKwkgICAgICAjICtaIHRoZSBkZWZhdWx0Ci0rCSAgICAgIDs7Ci0rCSAg ICAqKQotKwkgICAgICBsdF9wcm9nX2NvbXBpbGVyX3BpY19DWFg9JytaJwotKwkgICAgICA7Owot KwkgICAgZXNhYwotKwkgICAgOzsKLSsJICAqKQotKwkgICAgOzsKLSsJZXNhYwotKwk7OwotKyAg ICAgIGludGVyaXgqKQotKwkjIFRoaXMgaXMgYzg5LCB3aGljaCBpcyBNUyBWaXN1YWwgQysrIChu byBzaGFyZWQgbGlicykKLSsJIyBBbnlvbmUgd2FudHMgdG8gZG8gYSBwb3J0PwotKwk7OwotKyAg ICAgIGlyaXg1KiB8IGlyaXg2KiB8IG5vbnN0b3B1eCopCi0rCWNhc2UgJGNjX2Jhc2VuYW1lIGlu Ci0rCSAgQ0MqKQotKwkgICAgbHRfcHJvZ19jb21waWxlcl93bF9DWFg9Jy1XbCwnCi0rCSAgICBs dF9wcm9nX2NvbXBpbGVyX3N0YXRpY19DWFg9Jy1ub25fc2hhcmVkJwotKwkgICAgIyBDQyBwaWMg ZmxhZyAtS1BJQyBpcyB0aGUgZGVmYXVsdC4KLSsJICAgIDs7Ci0rCSAgKikKLSsJICAgIDs7Ci0r CWVzYWMKLSsJOzsKLSsgICAgICBsaW51eCogfCBrKmJzZCotZ251KQotKwljYXNlICRjY19iYXNl bmFtZSBpbgotKwkgIEtDQyopCi0rCSAgICAjIEtBSSBDKysgQ29tcGlsZXIKLSsJICAgIGx0X3By b2dfY29tcGlsZXJfd2xfQ1hYPSctLWJhY2tlbmQgLVdsLCcKLSsJICAgIGx0X3Byb2dfY29tcGls ZXJfcGljX0NYWD0nLWZQSUMnCi0rCSAgICA7OwotKwkgIGVjcGMqICkKLSsJICAgICMgb2xkIElu dGVsIEMrKyBmb3IgeDg2XzY0IHdoaWNoIHN0aWxsIHN1cHBvcnRlZCAtS1BJQy4KLSsJICAgIGx0 X3Byb2dfY29tcGlsZXJfd2xfQ1hYPSctV2wsJwotKwkgICAgbHRfcHJvZ19jb21waWxlcl9waWNf Q1hYPSctS1BJQycKLSsJICAgIGx0X3Byb2dfY29tcGlsZXJfc3RhdGljX0NYWD0nLXN0YXRpYycK LSsJICAgIDs7Ci0rCSAgaWNwYyogKQotKwkgICAgIyBJbnRlbCBDKyssIHVzZWQgdG8gYmUgaW5j b21wYXRpYmxlIHdpdGggR0NDLgotKwkgICAgIyBJQ0MgMTAgZG9lc24ndCBhY2NlcHQgLUtQSUMg YW55IG1vcmUuCi0rCSAgICBsdF9wcm9nX2NvbXBpbGVyX3dsX0NYWD0nLVdsLCcKLSsJICAgIGx0 X3Byb2dfY29tcGlsZXJfcGljX0NYWD0nLWZQSUMnCi0rCSAgICBsdF9wcm9nX2NvbXBpbGVyX3N0 YXRpY19DWFg9Jy1zdGF0aWMnCi0rCSAgICA7OwotKwkgIHBnQ0MqIHwgcGdjcHAqKQotKwkgICAg IyBQb3J0bGFuZCBHcm91cCBDKysgY29tcGlsZXIKLSsJICAgIGx0X3Byb2dfY29tcGlsZXJfd2xf Q1hYPSctV2wsJwotKwkgICAgbHRfcHJvZ19jb21waWxlcl9waWNfQ1hYPSctZnBpYycKLSsJICAg IGx0X3Byb2dfY29tcGlsZXJfc3RhdGljX0NYWD0nLUJzdGF0aWMnCi0rCSAgICA7OwotKwkgIGN4 eCopCi0rCSAgICAjIENvbXBhcSBDKysKLSsJICAgICMgTWFrZSBzdXJlIHRoZSBQSUMgZmxhZyBp cyBlbXB0eS4gIEl0IGFwcGVhcnMgdGhhdCBhbGwgQWxwaGEKLSsJICAgICMgTGludXggYW5kIENv bXBhcSBUcnU2NCBVbml4IG9iamVjdHMgYXJlIFBJQy4KLSsJICAgIGx0X3Byb2dfY29tcGlsZXJf cGljX0NYWD0KLSsJICAgIGx0X3Byb2dfY29tcGlsZXJfc3RhdGljX0NYWD0nLW5vbl9zaGFyZWQn Ci0rCSAgICA7OwotKwkgIHhsYyogfCB4bEMqKQotKwkgICAgIyBJQk0gWEwgOC4wIG9uIFBQQwot KwkgICAgbHRfcHJvZ19jb21waWxlcl93bF9DWFg9Jy1XbCwnCi0rCSAgICBsdF9wcm9nX2NvbXBp bGVyX3BpY19DWFg9Jy1xcGljJwotKwkgICAgbHRfcHJvZ19jb21waWxlcl9zdGF0aWNfQ1hYPSct cXN0YXRpY2xpbmsnCi0rCSAgICA7OwotKwkgICopCi0rCSAgICBjYXNlIGAkQ0MgLVYgMj4mMSB8 IHNlZCA1cWAgaW4KLSsJICAgICpTdW5cIEMqKQotKwkgICAgICAjIFN1biBDKysgNS45Ci0rCSAg ICAgIGx0X3Byb2dfY29tcGlsZXJfcGljX0NYWD0nLUtQSUMnCi0rCSAgICAgIGx0X3Byb2dfY29t cGlsZXJfc3RhdGljX0NYWD0nLUJzdGF0aWMnCi0rCSAgICAgIGx0X3Byb2dfY29tcGlsZXJfd2xf Q1hYPSctUW9wdGlvbiBsZCAnCi0rCSAgICAgIDs7Ci0rCSAgICBlc2FjCi0rCSAgICA7OwotKwll c2FjCi0rCTs7Ci0rICAgICAgbHlueG9zKikKLSsJOzsKLSsgICAgICBtODhrKikKLSsJOzsKLSsg ICAgICBtdnMqKQotKwljYXNlICRjY19iYXNlbmFtZSBpbgotKwkgIGN4eCopCi0rCSAgICBsdF9w cm9nX2NvbXBpbGVyX3BpY19DWFg9Jy1XIGMsZXhwb3J0YWxsJwotKwkgICAgOzsKLSsJICAqKQot KwkgICAgOzsKLSsJZXNhYwotKwk7OwotKyAgICAgIG5ldGJzZCopCi0rCTs7Ci0rICAgICAgKnFu eCogfCAqbnRvKikKLSsgICAgICAgICMgUU5YIHVzZXMgR05VIEMrKywgYnV0IG5lZWQgdG8gZGVm aW5lIC1zaGFyZWQgb3B0aW9uIHRvbywgb3RoZXJ3aXNlCi0rICAgICAgICAjIGl0IHdpbGwgY29y ZWR1bXAuCi0rICAgICAgICBsdF9wcm9nX2NvbXBpbGVyX3BpY19DWFg9Jy1mUElDIC1zaGFyZWQn Ci0rICAgICAgICA7OwotKyAgICAgIG9zZjMqIHwgb3NmNCogfCBvc2Y1KikKLSsJY2FzZSAkY2Nf YmFzZW5hbWUgaW4KLSsJICBLQ0MqKQotKwkgICAgbHRfcHJvZ19jb21waWxlcl93bF9DWFg9Jy0t YmFja2VuZCAtV2wsJwotKwkgICAgOzsKLSsJICBSQ0MqKQotKwkgICAgIyBSYXRpb25hbCBDKysg Mi40LjEKLSsJICAgIGx0X3Byb2dfY29tcGlsZXJfcGljX0NYWD0nLXBpYycKLSsJICAgIDs7Ci0r CSAgY3h4KikKLSsJICAgICMgRGlnaXRhbC9Db21wYXEgQysrCi0rCSAgICBsdF9wcm9nX2NvbXBp bGVyX3dsX0NYWD0nLVdsLCcKLSsJICAgICMgTWFrZSBzdXJlIHRoZSBQSUMgZmxhZyBpcyBlbXB0 eS4gIEl0IGFwcGVhcnMgdGhhdCBhbGwgQWxwaGEKLSsJICAgICMgTGludXggYW5kIENvbXBhcSBU cnU2NCBVbml4IG9iamVjdHMgYXJlIFBJQy4KLSsJICAgIGx0X3Byb2dfY29tcGlsZXJfcGljX0NY WD0KLSsJICAgIGx0X3Byb2dfY29tcGlsZXJfc3RhdGljX0NYWD0nLW5vbl9zaGFyZWQnCi0rCSAg ICA7OwotKwkgICopCi0rCSAgICA7OwotKwllc2FjCi0rCTs7Ci0rICAgICAgcHNvcyopCi0rCTs7 Ci0rICAgICAgc29sYXJpcyopCi0rCWNhc2UgJGNjX2Jhc2VuYW1lIGluCi0rCSAgQ0MqKQotKwkg ICAgIyBTdW4gQysrIDQuMiwgNS54IGFuZCBDZW50ZXJsaW5lIEMrKwotKwkgICAgbHRfcHJvZ19j b21waWxlcl9waWNfQ1hYPSctS1BJQycKLSsJICAgIGx0X3Byb2dfY29tcGlsZXJfc3RhdGljX0NY WD0nLUJzdGF0aWMnCi0rCSAgICBsdF9wcm9nX2NvbXBpbGVyX3dsX0NYWD0nLVFvcHRpb24gbGQg JwotKwkgICAgOzsKLSsJICBnY3gqKQotKwkgICAgIyBHcmVlbiBIaWxscyBDKysgQ29tcGlsZXIK LSsJICAgIGx0X3Byb2dfY29tcGlsZXJfcGljX0NYWD0nLVBJQycKLSsJICAgIDs7Ci0rCSAgKikK LSsJICAgIDs7Ci0rCWVzYWMKLSsJOzsKLSsgICAgICBzdW5vczQqKQotKwljYXNlICRjY19iYXNl bmFtZSBpbgotKwkgIENDKikKLSsJICAgICMgU3VuIEMrKyA0LngKLSsJICAgIGx0X3Byb2dfY29t cGlsZXJfcGljX0NYWD0nLXBpYycKLSsJICAgIGx0X3Byb2dfY29tcGlsZXJfc3RhdGljX0NYWD0n LUJzdGF0aWMnCi0rCSAgICA7OwotKwkgIGxjYyopCi0rCSAgICAjIEx1Y2lkCi0rCSAgICBsdF9w cm9nX2NvbXBpbGVyX3BpY19DWFg9Jy1waWMnCi0rCSAgICA7OwotKwkgICopCi0rCSAgICA7Owot Kwllc2FjCi0rCTs7Ci0rICAgICAgc3lzdjUqIHwgdW5peHdhcmUqIHwgc2NvMy4ydjUqIHwgc2Nv NXY2KiB8IE9wZW5VTklYKikKLSsJY2FzZSAkY2NfYmFzZW5hbWUgaW4KLSsJICBDQyopCi0rCSAg ICBsdF9wcm9nX2NvbXBpbGVyX3dsX0NYWD0nLVdsLCcKLSsJICAgIGx0X3Byb2dfY29tcGlsZXJf cGljX0NYWD0nLUtQSUMnCi0rCSAgICBsdF9wcm9nX2NvbXBpbGVyX3N0YXRpY19DWFg9Jy1Cc3Rh dGljJwotKwkgICAgOzsKLSsJZXNhYwotKwk7OwotKyAgICAgIHRhbmRlbSopCi0rCWNhc2UgJGNj X2Jhc2VuYW1lIGluCi0rCSAgTkNDKikKLSsJICAgICMgTm9uU3RvcC1VWCBOQ0MgMy4yMAotKwkg ICAgbHRfcHJvZ19jb21waWxlcl9waWNfQ1hYPSctS1BJQycKLSsJICAgIDs7Ci0rCSAgKikKLSsJ ICAgIDs7Ci0rCWVzYWMKLSsJOzsKLSsgICAgICB2eHdvcmtzKikKLSsJOzsKLSsgICAgICAqKQot KwlsdF9wcm9nX2NvbXBpbGVyX2Nhbl9idWlsZF9zaGFyZWRfQ1hYPW5vCi0rCTs7Ci0rICAgIGVz YWMKLSsgIGZpCi0rCi0rY2FzZSAkaG9zdF9vcyBpbgotKyAgIyBGb3IgcGxhdGZvcm1zIHdoaWNo IGRvIG5vdCBzdXBwb3J0IFBJQywgLURQSUMgaXMgbWVhbmluZ2xlc3M6Ci0rICAqZGpncHAqKQot KyAgICBsdF9wcm9nX2NvbXBpbGVyX3BpY19DWFg9Ci0rICAgIDs7Ci0rICAqKQotKyAgICBsdF9w cm9nX2NvbXBpbGVyX3BpY19DWFg9IiRsdF9wcm9nX2NvbXBpbGVyX3BpY19DWFggLURQSUMiCi0r ICAgIDs7Ci0rZXNhYwotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRsdF9w cm9nX2NvbXBpbGVyX3BpY19DWFgiID4mNQotKyRhc19lY2hvICIkbHRfcHJvZ19jb21waWxlcl9w aWNfQ1hYIiA+JjY7IH0KLSsKLSsKLSsKLSsjCi0rIyBDaGVjayB0byBtYWtlIHN1cmUgdGhlIFBJ QyBmbGFnIGFjdHVhbGx5IHdvcmtzLgotKyMKLStpZiB0ZXN0IC1uICIkbHRfcHJvZ19jb21waWxl cl9waWNfQ1hYIjsgdGhlbgotKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5n IGlmICRjb21waWxlciBQSUMgZmxhZyAkbHRfcHJvZ19jb21waWxlcl9waWNfQ1hYIHdvcmtzIiA+ JjUKLSskYXNfZWNob19uICJjaGVja2luZyBpZiAkY29tcGlsZXIgUElDIGZsYWcgJGx0X3Byb2df Y29tcGlsZXJfcGljX0NYWCB3b3Jrcy4uLiAiID4mNjsgfQotK2lmIHRlc3QgIiR7bHRfY3ZfcHJv Z19jb21waWxlcl9waWNfd29ya3NfQ1hYK3NldH0iID0gc2V0OyB0aGVuCi0rICAkYXNfZWNob19u ICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsgIGx0X2N2X3Byb2dfY29tcGlsZXJfcGljX3dvcmtz X0NYWD1ubwotKyAgIGFjX291dGZpbGU9Y29uZnRlc3QuJGFjX29iamV4dAotKyAgIGVjaG8gIiRs dF9zaW1wbGVfY29tcGlsZV90ZXN0X2NvZGUiID4gY29uZnRlc3QuJGFjX2V4dAotKyAgIGx0X2Nv bXBpbGVyX2ZsYWc9IiRsdF9wcm9nX2NvbXBpbGVyX3BpY19DWFggLURQSUMiCi0rICAgIyBJbnNl cnQgdGhlIG9wdGlvbiBlaXRoZXIgKDEpIGFmdGVyIHRoZSBsYXN0ICpGTEFHUyB2YXJpYWJsZSwg b3IKLSsgICAjICgyKSBiZWZvcmUgYSB3b3JkIGNvbnRhaW5pbmcgImNvbmZ0ZXN0LiIsIG9yICgz KSBhdCB0aGUgZW5kLgotKyAgICMgTm90ZSB0aGF0ICRhY19jb21waWxlIGl0c2VsZiBkb2VzIG5v dCBjb250YWluIGJhY2tzbGFzaGVzIGFuZCBiZWdpbnMKLSsgICAjIHdpdGggYSBkb2xsYXIgc2ln biAobm90IGEgaHlwaGVuKSwgc28gdGhlIGVjaG8gc2hvdWxkIHdvcmsgY29ycmVjdGx5LgotKyAg ICMgVGhlIG9wdGlvbiBpcyByZWZlcmVuY2VkIHZpYSBhIHZhcmlhYmxlIHRvIGF2b2lkIGNvbmZ1 c2luZyBzZWQuCi0rICAgbHRfY29tcGlsZT1gZWNobyAiJGFjX2NvbXBpbGUiIHwgJFNFRCBcCi0r ICAgLWUgJ3M6LipGTEFHU31cezAsMVx9IDomJGx0X2NvbXBpbGVyX2ZsYWcgOjsgdCcgXAotKyAg IC1lICdzOiBbXiBdKmNvbmZ0ZXN0XC46ICRsdF9jb21waWxlcl9mbGFnJjo7IHQnIFwKLSsgICAt ZSAnczokOiAkbHRfY29tcGlsZXJfZmxhZzonYAotKyAgIChldmFsIGVjaG8gIlwiXCRhc19tZTox NDcwMDogJGx0X2NvbXBpbGVcIiIgPiY1KQotKyAgIChldmFsICIkbHRfY29tcGlsZSIgMj5jb25m dGVzdC5lcnIpCi0rICAgYWNfc3RhdHVzPSQ/Ci0rICAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKLSsg ICBlY2hvICIkYXNfbWU6MTQ3MDQ6IFwkPyA9ICRhY19zdGF0dXMiID4mNQotKyAgIGlmIChleGl0 ICRhY19zdGF0dXMpICYmIHRlc3QgLXMgIiRhY19vdXRmaWxlIjsgdGhlbgotKyAgICAgIyBUaGUg Y29tcGlsZXIgY2FuIG9ubHkgd2FybiBhbmQgaWdub3JlIHRoZSBvcHRpb24gaWYgbm90IHJlY29n bml6ZWQKLSsgICAgICMgU28gc2F5IG5vIGlmIHRoZXJlIGFyZSB3YXJuaW5ncyBvdGhlciB0aGFu IHRoZSB1c3VhbCBvdXRwdXQuCi0rICAgICAkRUNITyAiWCRfbHRfY29tcGlsZXJfYm9pbGVycGxh dGUiIHwgJFhzZWQgLWUgJy9eJC9kJyA+Y29uZnRlc3QuZXhwCi0rICAgICAkU0VEICcvXiQvZDsg L14gKisvZCcgY29uZnRlc3QuZXJyID5jb25mdGVzdC5lcjIKLSsgICAgIGlmIHRlc3QgISAtcyBj b25mdGVzdC5lcjIgfHwgZGlmZiBjb25mdGVzdC5leHAgY29uZnRlc3QuZXIyID4vZGV2L251bGw7 IHRoZW4KLSsgICAgICAgbHRfY3ZfcHJvZ19jb21waWxlcl9waWNfd29ya3NfQ1hYPXllcwotKyAg ICAgZmkKLSsgICBmaQotKyAgICRSTSBjb25mdGVzdCoKLSsKLStmaQotK3sgJGFzX2VjaG8gIiRh c19tZTokTElORU5POiByZXN1bHQ6ICRsdF9jdl9wcm9nX2NvbXBpbGVyX3BpY193b3Jrc19DWFgi ID4mNQotKyRhc19lY2hvICIkbHRfY3ZfcHJvZ19jb21waWxlcl9waWNfd29ya3NfQ1hYIiA+JjY7 IH0KLSsKLStpZiB0ZXN0IHgiJGx0X2N2X3Byb2dfY29tcGlsZXJfcGljX3dvcmtzX0NYWCIgPSB4 eWVzOyB0aGVuCi0rICAgIGNhc2UgJGx0X3Byb2dfY29tcGlsZXJfcGljX0NYWCBpbgotKyAgICAg IiIgfCAiICIqKSA7OwotKyAgICAgKikgbHRfcHJvZ19jb21waWxlcl9waWNfQ1hYPSIgJGx0X3By b2dfY29tcGlsZXJfcGljX0NYWCIgOzsKLSsgICAgIGVzYWMKLStlbHNlCi0rICAgIGx0X3Byb2df Y29tcGlsZXJfcGljX0NYWD0KLSsgICAgIGx0X3Byb2dfY29tcGlsZXJfY2FuX2J1aWxkX3NoYXJl ZF9DWFg9bm8KLStmaQotKwotK2ZpCi0rCi0rCi0rCi0rIwotKyMgQ2hlY2sgdG8gbWFrZSBzdXJl IHRoZSBzdGF0aWMgZmxhZyBhY3R1YWxseSB3b3Jrcy4KLSsjCi0rd2w9JGx0X3Byb2dfY29tcGls ZXJfd2xfQ1hYIGV2YWwgbHRfdG1wX3N0YXRpY19mbGFnPVwiJGx0X3Byb2dfY29tcGlsZXJfc3Rh dGljX0NYWFwiCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGlmICRjb21w aWxlciBzdGF0aWMgZmxhZyAkbHRfdG1wX3N0YXRpY19mbGFnIHdvcmtzIiA+JjUKLSskYXNfZWNo b19uICJjaGVja2luZyBpZiAkY29tcGlsZXIgc3RhdGljIGZsYWcgJGx0X3RtcF9zdGF0aWNfZmxh ZyB3b3Jrcy4uLiAiID4mNjsgfQotK2lmIHRlc3QgIiR7bHRfY3ZfcHJvZ19jb21waWxlcl9zdGF0 aWNfd29ya3NfQ1hYK3NldH0iID0gc2V0OyB0aGVuCi0rICAkYXNfZWNob19uICIoY2FjaGVkKSAi ID4mNgotK2Vsc2UKLSsgIGx0X2N2X3Byb2dfY29tcGlsZXJfc3RhdGljX3dvcmtzX0NYWD1ubwot KyAgIHNhdmVfTERGTEFHUz0iJExERkxBR1MiCi0rICAgTERGTEFHUz0iJExERkxBR1MgJGx0X3Rt cF9zdGF0aWNfZmxhZyIKLSsgICBlY2hvICIkbHRfc2ltcGxlX2xpbmtfdGVzdF9jb2RlIiA+IGNv bmZ0ZXN0LiRhY19leHQKLSsgICBpZiAoZXZhbCAkYWNfbGluayAyPmNvbmZ0ZXN0LmVycikgJiYg dGVzdCAtcyBjb25mdGVzdCRhY19leGVleHQ7IHRoZW4KLSsgICAgICMgVGhlIGxpbmtlciBjYW4g b25seSB3YXJuIGFuZCBpZ25vcmUgdGhlIG9wdGlvbiBpZiBub3QgcmVjb2duaXplZAotKyAgICAg IyBTbyBzYXkgbm8gaWYgdGhlcmUgYXJlIHdhcm5pbmdzCi0rICAgICBpZiB0ZXN0IC1zIGNvbmZ0 ZXN0LmVycjsgdGhlbgotKyAgICAgICAjIEFwcGVuZCBhbnkgZXJyb3JzIHRvIHRoZSBjb25maWcu bG9nLgotKyAgICAgICBjYXQgY29uZnRlc3QuZXJyIDE+JjUKLSsgICAgICAgJEVDSE8gIlgkX2x0 X2xpbmtlcl9ib2lsZXJwbGF0ZSIgfCAkWHNlZCAtZSAnL14kL2QnID4gY29uZnRlc3QuZXhwCi0r ICAgICAgICRTRUQgJy9eJC9kOyAvXiAqKy9kJyBjb25mdGVzdC5lcnIgPmNvbmZ0ZXN0LmVyMgot KyAgICAgICBpZiBkaWZmIGNvbmZ0ZXN0LmV4cCBjb25mdGVzdC5lcjIgPi9kZXYvbnVsbDsgdGhl bgotKyAgICAgICAgIGx0X2N2X3Byb2dfY29tcGlsZXJfc3RhdGljX3dvcmtzX0NYWD15ZXMKLSsg ICAgICAgZmkKLSsgICAgIGVsc2UKLSsgICAgICAgbHRfY3ZfcHJvZ19jb21waWxlcl9zdGF0aWNf d29ya3NfQ1hYPXllcwotKyAgICAgZmkKLSsgICBmaQotKyAgICRSTSAtciBjb25mdGVzdCoKLSsg ICBMREZMQUdTPSIkc2F2ZV9MREZMQUdTIgotKwotK2ZpCi0reyAkYXNfZWNobyAiJGFzX21lOiRM SU5FTk86IHJlc3VsdDogJGx0X2N2X3Byb2dfY29tcGlsZXJfc3RhdGljX3dvcmtzX0NYWCIgPiY1 Ci0rJGFzX2VjaG8gIiRsdF9jdl9wcm9nX2NvbXBpbGVyX3N0YXRpY193b3Jrc19DWFgiID4mNjsg fQotKwotK2lmIHRlc3QgeCIkbHRfY3ZfcHJvZ19jb21waWxlcl9zdGF0aWNfd29ya3NfQ1hYIiA9 IHh5ZXM7IHRoZW4KLSsgICAgOgotK2Vsc2UKLSsgICAgbHRfcHJvZ19jb21waWxlcl9zdGF0aWNf Q1hYPQotK2ZpCi0rCi0rCi0rCi0rCi0rICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBj aGVja2luZyBpZiAkY29tcGlsZXIgc3VwcG9ydHMgLWMgLW8gZmlsZS4kYWNfb2JqZXh0IiA+JjUK LSskYXNfZWNob19uICJjaGVja2luZyBpZiAkY29tcGlsZXIgc3VwcG9ydHMgLWMgLW8gZmlsZS4k YWNfb2JqZXh0Li4uICIgPiY2OyB9Ci0raWYgdGVzdCAiJHtsdF9jdl9wcm9nX2NvbXBpbGVyX2Nf b19DWFgrc2V0fSIgPSBzZXQ7IHRoZW4KLSsgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci0r ZWxzZQotKyAgbHRfY3ZfcHJvZ19jb21waWxlcl9jX29fQ1hYPW5vCi0rICAgJFJNIC1yIGNvbmZ0 ZXN0IDI+L2Rldi9udWxsCi0rICAgbWtkaXIgY29uZnRlc3QKLSsgICBjZCBjb25mdGVzdAotKyAg IG1rZGlyIG91dAotKyAgIGVjaG8gIiRsdF9zaW1wbGVfY29tcGlsZV90ZXN0X2NvZGUiID4gY29u ZnRlc3QuJGFjX2V4dAotKwotKyAgIGx0X2NvbXBpbGVyX2ZsYWc9Ii1vIG91dC9jb25mdGVzdDIu JGFjX29iamV4dCIKLSsgICAjIEluc2VydCB0aGUgb3B0aW9uIGVpdGhlciAoMSkgYWZ0ZXIgdGhl IGxhc3QgKkZMQUdTIHZhcmlhYmxlLCBvcgotKyAgICMgKDIpIGJlZm9yZSBhIHdvcmQgY29udGFp bmluZyAiY29uZnRlc3QuIiwgb3IgKDMpIGF0IHRoZSBlbmQuCi0rICAgIyBOb3RlIHRoYXQgJGFj X2NvbXBpbGUgaXRzZWxmIGRvZXMgbm90IGNvbnRhaW4gYmFja3NsYXNoZXMgYW5kIGJlZ2lucwot KyAgICMgd2l0aCBhIGRvbGxhciBzaWduIChub3QgYSBoeXBoZW4pLCBzbyB0aGUgZWNobyBzaG91 bGQgd29yayBjb3JyZWN0bHkuCi0rICAgbHRfY29tcGlsZT1gZWNobyAiJGFjX2NvbXBpbGUiIHwg JFNFRCBcCi0rICAgLWUgJ3M6LipGTEFHU31cezAsMVx9IDomJGx0X2NvbXBpbGVyX2ZsYWcgOjsg dCcgXAotKyAgIC1lICdzOiBbXiBdKmNvbmZ0ZXN0XC46ICRsdF9jb21waWxlcl9mbGFnJjo7IHQn IFwKLSsgICAtZSAnczokOiAkbHRfY29tcGlsZXJfZmxhZzonYAotKyAgIChldmFsIGVjaG8gIlwi XCRhc19tZToxNDc5OTogJGx0X2NvbXBpbGVcIiIgPiY1KQotKyAgIChldmFsICIkbHRfY29tcGls ZSIgMj5vdXQvY29uZnRlc3QuZXJyKQotKyAgIGFjX3N0YXR1cz0kPwotKyAgIGNhdCBvdXQvY29u ZnRlc3QuZXJyID4mNQotKyAgIGVjaG8gIiRhc19tZToxNDgwMzogXCQ/ID0gJGFjX3N0YXR1cyIg PiY1Ci0rICAgaWYgKGV4aXQgJGFjX3N0YXR1cykgJiYgdGVzdCAtcyBvdXQvY29uZnRlc3QyLiRh Y19vYmpleHQKLSsgICB0aGVuCi0rICAgICAjIFRoZSBjb21waWxlciBjYW4gb25seSB3YXJuIGFu ZCBpZ25vcmUgdGhlIG9wdGlvbiBpZiBub3QgcmVjb2duaXplZAotKyAgICAgIyBTbyBzYXkgbm8g aWYgdGhlcmUgYXJlIHdhcm5pbmdzCi0rICAgICAkRUNITyAiWCRfbHRfY29tcGlsZXJfYm9pbGVy cGxhdGUiIHwgJFhzZWQgLWUgJy9eJC9kJyA+IG91dC9jb25mdGVzdC5leHAKLSsgICAgICRTRUQg Jy9eJC9kOyAvXiAqKy9kJyBvdXQvY29uZnRlc3QuZXJyID5vdXQvY29uZnRlc3QuZXIyCi0rICAg ICBpZiB0ZXN0ICEgLXMgb3V0L2NvbmZ0ZXN0LmVyMiB8fCBkaWZmIG91dC9jb25mdGVzdC5leHAg b3V0L2NvbmZ0ZXN0LmVyMiA+L2Rldi9udWxsOyB0aGVuCi0rICAgICAgIGx0X2N2X3Byb2dfY29t cGlsZXJfY19vX0NYWD15ZXMKLSsgICAgIGZpCi0rICAgZmkKLSsgICBjaG1vZCB1K3cgLiAyPiY1 Ci0rICAgJFJNIGNvbmZ0ZXN0KgotKyAgICMgU0dJIEMrKyBjb21waWxlciB3aWxsIGNyZWF0ZSBk aXJlY3Rvcnkgb3V0L2lpX2ZpbGVzLyBmb3IKLSsgICAjIHRlbXBsYXRlIGluc3RhbnRpYXRpb24K LSsgICB0ZXN0IC1kIG91dC9paV9maWxlcyAmJiAkUk0gb3V0L2lpX2ZpbGVzLyogJiYgcm1kaXIg b3V0L2lpX2ZpbGVzCi0rICAgJFJNIG91dC8qICYmIHJtZGlyIG91dAotKyAgIGNkIC4uCi0rICAg JFJNIC1yIGNvbmZ0ZXN0Ci0rICAgJFJNIGNvbmZ0ZXN0KgotKwotK2ZpCi0reyAkYXNfZWNobyAi JGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGx0X2N2X3Byb2dfY29tcGlsZXJfY19vX0NYWCIgPiY1 Ci0rJGFzX2VjaG8gIiRsdF9jdl9wcm9nX2NvbXBpbGVyX2Nfb19DWFgiID4mNjsgfQotKwotKwot KwotKyAgICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgaWYgJGNvbXBpbGVy IHN1cHBvcnRzIC1jIC1vIGZpbGUuJGFjX29iamV4dCIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tp bmcgaWYgJGNvbXBpbGVyIHN1cHBvcnRzIC1jIC1vIGZpbGUuJGFjX29iamV4dC4uLiAiID4mNjsg fQotK2lmIHRlc3QgIiR7bHRfY3ZfcHJvZ19jb21waWxlcl9jX29fQ1hYK3NldH0iID0gc2V0OyB0 aGVuCi0rICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsgIGx0X2N2X3Byb2df Y29tcGlsZXJfY19vX0NYWD1ubwotKyAgICRSTSAtciBjb25mdGVzdCAyPi9kZXYvbnVsbAotKyAg IG1rZGlyIGNvbmZ0ZXN0Ci0rICAgY2QgY29uZnRlc3QKLSsgICBta2RpciBvdXQKLSsgICBlY2hv ICIkbHRfc2ltcGxlX2NvbXBpbGVfdGVzdF9jb2RlIiA+IGNvbmZ0ZXN0LiRhY19leHQKLSsKLSsg ICBsdF9jb21waWxlcl9mbGFnPSItbyBvdXQvY29uZnRlc3QyLiRhY19vYmpleHQiCi0rICAgIyBJ bnNlcnQgdGhlIG9wdGlvbiBlaXRoZXIgKDEpIGFmdGVyIHRoZSBsYXN0ICpGTEFHUyB2YXJpYWJs ZSwgb3IKLSsgICAjICgyKSBiZWZvcmUgYSB3b3JkIGNvbnRhaW5pbmcgImNvbmZ0ZXN0LiIsIG9y ICgzKSBhdCB0aGUgZW5kLgotKyAgICMgTm90ZSB0aGF0ICRhY19jb21waWxlIGl0c2VsZiBkb2Vz IG5vdCBjb250YWluIGJhY2tzbGFzaGVzIGFuZCBiZWdpbnMKLSsgICAjIHdpdGggYSBkb2xsYXIg c2lnbiAobm90IGEgaHlwaGVuKSwgc28gdGhlIGVjaG8gc2hvdWxkIHdvcmsgY29ycmVjdGx5Lgot KyAgIGx0X2NvbXBpbGU9YGVjaG8gIiRhY19jb21waWxlIiB8ICRTRUQgXAotKyAgIC1lICdzOi4q RkxBR1N9XHswLDFcfSA6JiRsdF9jb21waWxlcl9mbGFnIDo7IHQnIFwKLSsgICAtZSAnczogW14g XSpjb25mdGVzdFwuOiAkbHRfY29tcGlsZXJfZmxhZyY6OyB0JyBcCi0rICAgLWUgJ3M6JDogJGx0 X2NvbXBpbGVyX2ZsYWc6J2AKLSsgICAoZXZhbCBlY2hvICJcIlwkYXNfbWU6MTQ4NTE6ICRsdF9j b21waWxlXCIiID4mNSkKLSsgICAoZXZhbCAiJGx0X2NvbXBpbGUiIDI+b3V0L2NvbmZ0ZXN0LmVy cikKLSsgICBhY19zdGF0dXM9JD8KLSsgICBjYXQgb3V0L2NvbmZ0ZXN0LmVyciA+JjUKLSsgICBl Y2hvICIkYXNfbWU6MTQ4NTU6IFwkPyA9ICRhY19zdGF0dXMiID4mNQotKyAgIGlmIChleGl0ICRh Y19zdGF0dXMpICYmIHRlc3QgLXMgb3V0L2NvbmZ0ZXN0Mi4kYWNfb2JqZXh0Ci0rICAgdGhlbgot KyAgICAgIyBUaGUgY29tcGlsZXIgY2FuIG9ubHkgd2FybiBhbmQgaWdub3JlIHRoZSBvcHRpb24g aWYgbm90IHJlY29nbml6ZWQKLSsgICAgICMgU28gc2F5IG5vIGlmIHRoZXJlIGFyZSB3YXJuaW5n cwotKyAgICAgJEVDSE8gIlgkX2x0X2NvbXBpbGVyX2JvaWxlcnBsYXRlIiB8ICRYc2VkIC1lICcv XiQvZCcgPiBvdXQvY29uZnRlc3QuZXhwCi0rICAgICAkU0VEICcvXiQvZDsgL14gKisvZCcgb3V0 L2NvbmZ0ZXN0LmVyciA+b3V0L2NvbmZ0ZXN0LmVyMgotKyAgICAgaWYgdGVzdCAhIC1zIG91dC9j b25mdGVzdC5lcjIgfHwgZGlmZiBvdXQvY29uZnRlc3QuZXhwIG91dC9jb25mdGVzdC5lcjIgPi9k ZXYvbnVsbDsgdGhlbgotKyAgICAgICBsdF9jdl9wcm9nX2NvbXBpbGVyX2Nfb19DWFg9eWVzCi0r ICAgICBmaQotKyAgIGZpCi0rICAgY2htb2QgdSt3IC4gMj4mNQotKyAgICRSTSBjb25mdGVzdCoK LSsgICAjIFNHSSBDKysgY29tcGlsZXIgd2lsbCBjcmVhdGUgZGlyZWN0b3J5IG91dC9paV9maWxl cy8gZm9yCi0rICAgIyB0ZW1wbGF0ZSBpbnN0YW50aWF0aW9uCi0rICAgdGVzdCAtZCBvdXQvaWlf ZmlsZXMgJiYgJFJNIG91dC9paV9maWxlcy8qICYmIHJtZGlyIG91dC9paV9maWxlcwotKyAgICRS TSBvdXQvKiAmJiBybWRpciBvdXQKLSsgICBjZCAuLgotKyAgICRSTSAtciBjb25mdGVzdAotKyAg ICRSTSBjb25mdGVzdCoKLSsKLStmaQotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1 bHQ6ICRsdF9jdl9wcm9nX2NvbXBpbGVyX2Nfb19DWFgiID4mNQotKyRhc19lY2hvICIkbHRfY3Zf cHJvZ19jb21waWxlcl9jX29fQ1hYIiA+JjY7IH0KLSsKLSsKLSsKLSsKLStoYXJkX2xpbmtzPSJu b3R0ZXN0ZWQiCi0raWYgdGVzdCAiJGx0X2N2X3Byb2dfY29tcGlsZXJfY19vX0NYWCIgPSBubyAm JiB0ZXN0ICIkbmVlZF9sb2NrcyIgIT0gbm87IHRoZW4KLSsgICMgZG8gbm90IG92ZXJ3cml0ZSB0 aGUgdmFsdWUgb2YgbmVlZF9sb2NrcyBwcm92aWRlZCBieSB0aGUgdXNlcgotKyAgeyAkYXNfZWNo byAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGlmIHdlIGNhbiBsb2NrIHdpdGggaGFyZCBsaW5r cyIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgaWYgd2UgY2FuIGxvY2sgd2l0aCBoYXJkIGxp bmtzLi4uICIgPiY2OyB9Ci0rICBoYXJkX2xpbmtzPXllcwotKyAgJFJNIGNvbmZ0ZXN0KgotKyAg bG4gY29uZnRlc3QuYSBjb25mdGVzdC5iIDI+L2Rldi9udWxsICYmIGhhcmRfbGlua3M9bm8KLSsg IHRvdWNoIGNvbmZ0ZXN0LmEKLSsgIGxuIGNvbmZ0ZXN0LmEgY29uZnRlc3QuYiAyPiY1IHx8IGhh cmRfbGlua3M9bm8KLSsgIGxuIGNvbmZ0ZXN0LmEgY29uZnRlc3QuYiAyPi9kZXYvbnVsbCAmJiBo YXJkX2xpbmtzPW5vCi0rICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkaGFy ZF9saW5rcyIgPiY1Ci0rJGFzX2VjaG8gIiRoYXJkX2xpbmtzIiA+JjY7IH0KLSsgIGlmIHRlc3Qg IiRoYXJkX2xpbmtzIiA9IG5vOyB0aGVuCi0rICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5P OiBXQVJOSU5HOiBcYCRDQycgZG9lcyBub3Qgc3VwcG9ydCBcYC1jIC1vJywgc28gXGBtYWtlIC1q JyBtYXkgYmUgdW5zYWZlIiA+JjUKLSskYXNfZWNobyAiJGFzX21lOiBXQVJOSU5HOiBcYCRDQycg ZG9lcyBub3Qgc3VwcG9ydCBcYC1jIC1vJywgc28gXGBtYWtlIC1qJyBtYXkgYmUgdW5zYWZlIiA+ JjI7fQotKyAgICBuZWVkX2xvY2tzPXdhcm4KLSsgIGZpCi0rZWxzZQotKyAgbmVlZF9sb2Nrcz1u bwotK2ZpCi0rCi0rCi0rCi0rICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2lu ZyB3aGV0aGVyIHRoZSAkY29tcGlsZXIgbGlua2VyICgkTEQpIHN1cHBvcnRzIHNoYXJlZCBsaWJy YXJpZXMiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIHdoZXRoZXIgdGhlICRjb21waWxlciBs aW5rZXIgKCRMRCkgc3VwcG9ydHMgc2hhcmVkIGxpYnJhcmllcy4uLiAiID4mNjsgfQotKwotKyAg ZXhwb3J0X3N5bWJvbHNfY21kc19DWFg9JyROTSAkbGlib2JqcyAkY29udmVuaWVuY2UgfCAkZ2xv YmFsX3N5bWJvbF9waXBlIHwgJFNFRCAnXCcncy8uKiAvLydcJycgfCBzb3J0IHwgdW5pcSA+ICRl eHBvcnRfc3ltYm9scycKLSsgIGNhc2UgJGhvc3Rfb3MgaW4KLSsgIGFpeFs0LTldKikKLSsgICAg IyBJZiB3ZSdyZSB1c2luZyBHTlUgbm0sIHRoZW4gd2UgZG9uJ3Qgd2FudCB0aGUgIi1DIiBvcHRp b24uCi0rICAgICMgLUMgbWVhbnMgZGVtYW5nbGUgdG8gQUlYIG5tLCBidXQgbWVhbnMgZG9uJ3Qg ZGVtYW5nbGUgd2l0aCBHTlUgbm0KLSsgICAgaWYgJE5NIC1WIDI+JjEgfCAkR1JFUCAnR05VJyA+ IC9kZXYvbnVsbDsgdGhlbgotKyAgICAgIGV4cG9ydF9zeW1ib2xzX2NtZHNfQ1hYPSckTk0gLUJw ZyAkbGlib2JqcyAkY29udmVuaWVuY2UgfCBhd2sgJ1wnJ3sgaWYgKCgoXCQgMiA9PSAiVCIpIHx8 IChcJCAyID09ICJEIikgfHwgKFwkIDIgPT0gIkIiKSkgJiYgKHN1YnN0cihcJCAzLDEsMSkgIT0g Ii4iKSkgeyBwcmludCBcJCAzIH0gfSdcJycgfCBzb3J0IC11ID4gJGV4cG9ydF9zeW1ib2xzJwot KyAgICBlbHNlCi0rICAgICAgZXhwb3J0X3N5bWJvbHNfY21kc19DWFg9JyROTSAtQkNwZyAkbGli b2JqcyAkY29udmVuaWVuY2UgfCBhd2sgJ1wnJ3sgaWYgKCgoXCQgMiA9PSAiVCIpIHx8IChcJCAy ID09ICJEIikgfHwgKFwkIDIgPT0gIkIiKSkgJiYgKHN1YnN0cihcJCAzLDEsMSkgIT0gIi4iKSkg eyBwcmludCBcJCAzIH0gfSdcJycgfCBzb3J0IC11ID4gJGV4cG9ydF9zeW1ib2xzJwotKyAgICBm aQotKyAgICA7OwotKyAgcHczMiopCi0rICAgIGV4cG9ydF9zeW1ib2xzX2NtZHNfQ1hYPSIkbHRk bGxfY21kcyIKLSsgIDs7Ci0rICBjeWd3aW4qIHwgbWluZ3cqIHwgY2VnY2MqKQotKyAgICBleHBv cnRfc3ltYm9sc19jbWRzX0NYWD0nJE5NICRsaWJvYmpzICRjb252ZW5pZW5jZSB8ICRnbG9iYWxf c3ltYm9sX3BpcGUgfCAkU0VEIC1lICdcJycvXltCQ0RHUlNdWyBdL3MvLipbIF1cKFteIF0qXCkv XDEgREFUQS87L14uKlsgXV9fbm1fXy9zL14uKlsgXV9fbm1fX1woW14gXSpcKVsgXVteIF0qL1wx IERBVEEvOy9eSVsgXS9kOy9eW0FJVFddWyBdL3MvLiogLy8nXCcnIHwgc29ydCB8IHVuaXEgPiAk ZXhwb3J0X3N5bWJvbHMnCi0rICA7OwotKyAgKikKLSsgICAgZXhwb3J0X3N5bWJvbHNfY21kc19D WFg9JyROTSAkbGlib2JqcyAkY29udmVuaWVuY2UgfCAkZ2xvYmFsX3N5bWJvbF9waXBlIHwgJFNF RCAnXCcncy8uKiAvLydcJycgfCBzb3J0IHwgdW5pcSA+ICRleHBvcnRfc3ltYm9scycKLSsgIDs7 Ci0rICBlc2FjCi0rICBleGNsdWRlX2V4cHN5bXNfQ1hYPSdfR0xPQkFMX09GRlNFVF9UQUJMRV98 X0dMT0JBTF9fRltJRF1fLionCi0rCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3Vs dDogJGxkX3NobGlic19DWFgiID4mNQotKyRhc19lY2hvICIkbGRfc2hsaWJzX0NYWCIgPiY2OyB9 Ci0rdGVzdCAiJGxkX3NobGlic19DWFgiID0gbm8gJiYgY2FuX2J1aWxkX3NoYXJlZD1ubwotKwot K3dpdGhfZ251X2xkX0NYWD0kd2l0aF9nbnVfbGQKLSsKLSsKLSsKLSsKLSsKLSsKLSsjCi0rIyBE byB3ZSBuZWVkIHRvIGV4cGxpY2l0bHkgbGluayBsaWJjPwotKyMKLStjYXNlICJ4JGFyY2hpdmVf Y21kc19uZWVkX2xjX0NYWCIgaW4KLSt4fHh5ZXMpCi0rICAjIEFzc3VtZSAtbGMgc2hvdWxkIGJl IGFkZGVkCi0rICBhcmNoaXZlX2NtZHNfbmVlZF9sY19DWFg9eWVzCi0rCi0rICBpZiB0ZXN0ICIk ZW5hYmxlX3NoYXJlZCIgPSB5ZXMgJiYgdGVzdCAiJEdDQyIgPSB5ZXM7IHRoZW4KLSsgICAgY2Fz ZSAkYXJjaGl2ZV9jbWRzX0NYWCBpbgotKyAgICAqJ34nKikKLSsgICAgICAjIEZJWE1FOiB3ZSBt YXkgaGF2ZSB0byBkZWFsIHdpdGggbXVsdGktY29tbWFuZCBzZXF1ZW5jZXMuCi0rICAgICAgOzsK LSsgICAgJyRDQyAnKikKLSsgICAgICAjIFRlc3Qgd2hldGhlciB0aGUgY29tcGlsZXIgaW1wbGlj aXRseSBsaW5rcyB3aXRoIC1sYyBzaW5jZSBvbiBzb21lCi0rICAgICAgIyBzeXN0ZW1zLCAtbGdj YyBoYXMgdG8gY29tZSBiZWZvcmUgLWxjLiBJZiBnY2MgYWxyZWFkeSBwYXNzZXMgLWxjCi0rICAg ICAgIyB0byBsZCwgZG9uJ3QgYWRkIC1sYyBiZWZvcmUgLWxnY2MuCi0rICAgICAgeyAkYXNfZWNo byAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIHdoZXRoZXIgLWxjIHNob3VsZCBiZSBleHBsaWNp dGx5IGxpbmtlZCBpbiIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgd2hldGhlciAtbGMgc2hv dWxkIGJlIGV4cGxpY2l0bHkgbGlua2VkIGluLi4uICIgPiY2OyB9Ci0rICAgICAgJFJNIGNvbmZ0 ZXN0KgotKyAgICAgIGVjaG8gIiRsdF9zaW1wbGVfY29tcGlsZV90ZXN0X2NvZGUiID4gY29uZnRl c3QuJGFjX2V4dAotKwotKyAgICAgIGlmIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwi JGFjX2NvbXBpbGVcIiIpID4mNQotKyAgKGV2YWwgJGFjX2NvbXBpbGUpIDI+JjUKLSsgIGFjX3N0 YXR1cz0kPwotKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+ JjUKLSsgIChleGl0ICRhY19zdGF0dXMpOyB9IDI+Y29uZnRlc3QuZXJyOyB0aGVuCi0rICAgICAg ICBzb25hbWU9Y29uZnRlc3QKLSsgICAgICAgIGxpYj1jb25mdGVzdAotKyAgICAgICAgbGlib2Jq cz1jb25mdGVzdC4kYWNfb2JqZXh0Ci0rICAgICAgICBkZXBsaWJzPQotKyAgICAgICAgd2w9JGx0 X3Byb2dfY29tcGlsZXJfd2xfQ1hYCi0rCXBpY19mbGFnPSRsdF9wcm9nX2NvbXBpbGVyX3BpY19D WFgKLSsgICAgICAgIGNvbXBpbGVyX2ZsYWdzPS12Ci0rICAgICAgICBsaW5rZXJfZmxhZ3M9LXYK LSsgICAgICAgIHZlcnN0cmluZz0KLSsgICAgICAgIG91dHB1dF9vYmpkaXI9LgotKyAgICAgICAg bGlibmFtZT1jb25mdGVzdAotKyAgICAgICAgbHRfc2F2ZV9hbGxvd191bmRlZmluZWRfZmxhZz0k YWxsb3dfdW5kZWZpbmVkX2ZsYWdfQ1hYCi0rICAgICAgICBhbGxvd191bmRlZmluZWRfZmxhZ19D WFg9Ci0rICAgICAgICBpZiB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhcmNoaXZl X2NtZHNfQ1hYIDJcPlwmMSBcfCAkR1JFUCBcIiAtbGMgXCIgXD4vZGV2L251bGwgMlw+XCYxXCIi KSA+JjUKLSsgIChldmFsICRhcmNoaXZlX2NtZHNfQ1hYIDJcPlwmMSBcfCAkR1JFUCBcIiAtbGMg XCIgXD4vZGV2L251bGwgMlw+XCYxKSAyPiY1Ci0rICBhY19zdGF0dXM9JD8KLSsgICRhc19lY2hv ICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0rICAoZXhpdCAkYWNfc3Rh dHVzKTsgfQotKyAgICAgICAgdGhlbgotKwkgIGFyY2hpdmVfY21kc19uZWVkX2xjX0NYWD1ubwot KyAgICAgICAgZWxzZQotKwkgIGFyY2hpdmVfY21kc19uZWVkX2xjX0NYWD15ZXMKLSsgICAgICAg IGZpCi0rICAgICAgICBhbGxvd191bmRlZmluZWRfZmxhZ19DWFg9JGx0X3NhdmVfYWxsb3dfdW5k ZWZpbmVkX2ZsYWcKLSsgICAgICBlbHNlCi0rICAgICAgICBjYXQgY29uZnRlc3QuZXJyIDE+JjUK LSsgICAgICBmaQotKyAgICAgICRSTSBjb25mdGVzdCoKLSsgICAgICB7ICRhc19lY2hvICIkYXNf bWU6JExJTkVOTzogcmVzdWx0OiAkYXJjaGl2ZV9jbWRzX25lZWRfbGNfQ1hYIiA+JjUKLSskYXNf ZWNobyAiJGFyY2hpdmVfY21kc19uZWVkX2xjX0NYWCIgPiY2OyB9Ci0rICAgICAgOzsKLSsgICAg ZXNhYwotKyAgZmkKLSsgIDs7Ci0rZXNhYwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwot KwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwot KwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwot KwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKyAgICB7ICRh c19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZHluYW1pYyBsaW5rZXIgY2hhcmFjdGVy aXN0aWNzIiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyBkeW5hbWljIGxpbmtlciBjaGFyYWN0 ZXJpc3RpY3MuLi4gIiA+JjY7IH0KLSsKLStsaWJyYXJ5X25hbWVzX3NwZWM9Ci0rbGlibmFtZV9z cGVjPSdsaWIkbmFtZScKLStzb25hbWVfc3BlYz0KLStzaHJleHRfY21kcz0iLnNvIgotK3Bvc3Rp bnN0YWxsX2NtZHM9Ci0rcG9zdHVuaW5zdGFsbF9jbWRzPQotK2ZpbmlzaF9jbWRzPQotK2Zpbmlz aF9ldmFsPQotK3NobGlicGF0aF92YXI9Ci0rc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPXVu a25vd24KLSt2ZXJzaW9uX3R5cGU9bm9uZQotK2R5bmFtaWNfbGlua2VyPSIkaG9zdF9vcyBsZC5z byIKLStzeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYz0iL2xpYiAvdXNyL2xpYiIKLStuZWVkX2xp Yl9wcmVmaXg9dW5rbm93bgotK2hhcmRjb2RlX2ludG9fbGlicz1ubwotKwotKyMgd2hlbiB5b3Ug c2V0IG5lZWRfdmVyc2lvbiB0byBubywgbWFrZSBzdXJlIGl0IGRvZXMgbm90IGNhdXNlIC1zZXRf dmVyc2lvbgotKyMgZmxhZ3MgdG8gYmUgbGVmdCB3aXRob3V0IGFyZ3VtZW50cwotK25lZWRfdmVy c2lvbj11bmtub3duCi0rCi0rY2FzZSAkaG9zdF9vcyBpbgotK2FpeDMqKQotKyAgdmVyc2lvbl90 eXBlPWxpbnV4Ci0rICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtz aGFyZWRfZXh0fSR2ZXJzdWZmaXggJGxpYm5hbWUuYScKLSsgIHNobGlicGF0aF92YXI9TElCUEFU SAotKwotKyAgIyBBSVggMyBoYXMgbm8gdmVyc2lvbmluZyBzdXBwb3J0LCBzbyB3ZSBhcHBlbmQg YSBtYWpvciB2ZXJzaW9uIHRvIHRoZSBuYW1lLgotKyAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0k e3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKLSsgIDs7Ci0rCi0rYWl4WzQtOV0qKQotKyAg dmVyc2lvbl90eXBlPWxpbnV4Ci0rICBuZWVkX2xpYl9wcmVmaXg9bm8KLSsgIG5lZWRfdmVyc2lv bj1ubwotKyAgaGFyZGNvZGVfaW50b19saWJzPXllcwotKyAgaWYgdGVzdCAiJGhvc3RfY3B1IiA9 IGlhNjQ7IHRoZW4KLSsgICAgIyBBSVggNSBzdXBwb3J0cyBJQTY0Ci0rICAgIGxpYnJhcnlfbmFt ZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICR7bGlibmFt ZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJGxpYm5hbWUke3NoYXJlZF9leHR9 JwotKyAgICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAotKyAgZWxzZQotKyAgICAjIFdp dGggR0NDIHVwIHRvIDIuOTUueCwgY29sbGVjdDIgd291bGQgY3JlYXRlIGFuIGltcG9ydCBmaWxl Ci0rICAgICMgZm9yIGRlcGVuZGVuY2UgbGlicmFyaWVzLiAgVGhlIGltcG9ydCBmaWxlIHdvdWxk IHN0YXJ0IHdpdGgKLSsgICAgIyB0aGUgbGluZSBgIyEgLicuICBUaGlzIHdvdWxkIGNhdXNlIHRo ZSBnZW5lcmF0ZWQgbGlicmFyeSB0bwotKyAgICAjIGRlcGVuZCBvbiBgLicsIGFsd2F5cyBhbiBp bnZhbGlkIGxpYnJhcnkuICBUaGlzIHdhcyBmaXhlZCBpbgotKyAgICAjIGRldmVsb3BtZW50IHNu YXBzaG90cyBvZiBHQ0MgcHJpb3IgdG8gMy4wLgotKyAgICBjYXNlICRob3N0X29zIGluCi0rICAg ICAgYWl4NCB8IGFpeDQuWzAxXSB8IGFpeDQuWzAxXS4qKQotKyAgICAgIGlmIHsgZWNobyAnI2lm IF9fR05VQ19fID4gMiB8fCAoX19HTlVDX18gPT0gMiAmJiBfX0dOVUNfTUlOT1JfXyA+PSA5Nykn Ci0rCSAgIGVjaG8gJyB5ZXMgJwotKwkgICBlY2hvICcjZW5kaWYnOyB9IHwgJHtDQ30gLUUgLSB8 ICRHUkVQIHllcyA+IC9kZXYvbnVsbDsgdGhlbgotKwk6Ci0rICAgICAgZWxzZQotKwljYW5fYnVp bGRfc2hhcmVkPW5vCi0rICAgICAgZmkKLSsgICAgICA7OwotKyAgICBlc2FjCi0rICAgICMgQUlY IChvbiBQb3dlciopIGhhcyBubyB2ZXJzaW9uaW5nIHN1cHBvcnQsIHNvIGN1cnJlbnRseSB3ZSBj YW4gbm90IGhhcmRjb2RlIGNvcnJlY3QKLSsgICAgIyBzb25hbWUgaW50byBleGVjdXRhYmxlLiBQ cm9iYWJseSB3ZSBjYW4gYWRkIHZlcnNpb25pbmcgc3VwcG9ydCB0bwotKyAgICAjIGNvbGxlY3Qy LCBzbyBhZGRpdGlvbmFsIGxpbmtzIGNhbiBiZSB1c2VmdWwgaW4gZnV0dXJlLgotKyAgICBpZiB0 ZXN0ICIkYWl4X3VzZV9ydW50aW1lbGlua2luZyIgPSB5ZXM7IHRoZW4KLSsgICAgICAjIElmIHVz aW5nIHJ1biB0aW1lIGxpbmtpbmcgKG9uIEFJWCA0LjIgb3IgbGF0ZXIpIHVzZSBsaWI8bmFtZT4u c28KLSsgICAgICAjIGluc3RlYWQgb2YgbGliPG5hbWU+LmEgdG8gbGV0IHBlb3BsZSBrbm93IHRo YXQgdGhlc2UgYXJlIG5vdAotKyAgICAgICMgdHlwaWNhbCBBSVggc2hhcmVkIGxpYnJhcmllcy4K LSsgICAgICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRf ZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICRs aWJuYW1lJHtzaGFyZWRfZXh0fScKLSsgICAgZWxzZQotKyAgICAgICMgV2UgcHJlc2VydmUgLmEg YXMgZXh0ZW5zaW9uIGZvciBzaGFyZWQgbGlicmFyaWVzIHRocm91Z2ggQUlYNC4yCi0rICAgICAg IyBhbmQgbGF0ZXIgd2hlbiB3ZSBhcmUgbm90IGRvaW5nIHJ1biB0aW1lIGxpbmtpbmcuCi0rICAg ICAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfS5hICRsaWJuYW1lLmEn Ci0rICAgICAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRt YWpvcicKLSsgICAgZmkKLSsgICAgc2hsaWJwYXRoX3Zhcj1MSUJQQVRICi0rICBmaQotKyAgOzsK LSsKLSthbWlnYW9zKikKLSsgIGNhc2UgJGhvc3RfY3B1IGluCi0rICBwb3dlcnBjKQotKyAgICAj IFNpbmNlIEp1bHkgMjAwNyBBbWlnYU9TNCBvZmZpY2lhbGx5IHN1cHBvcnRzIC5zbyBsaWJyYXJp ZXMuCi0rICAgICMgV2hlbiBjb21waWxpbmcgdGhlIGV4ZWN1dGFibGUsIGFkZCAtdXNlLWR5bmxk IC1Mc29ianM6IHRvIHRoZSBjb21waWxlbGluZS4KLSsgICAgbGlicmFyeV9uYW1lc19zcGVjPSck e2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3Jl bGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAkbGlibmFtZSR7c2hhcmVkX2V4dH0nCi0rICAgIDs7 Ci0rICBtNjhrKQotKyAgICBsaWJyYXJ5X25hbWVzX3NwZWM9JyRsaWJuYW1lLml4bGlicmFyeSAk bGlibmFtZS5hJwotKyAgICAjIENyZWF0ZSAke2xpYm5hbWV9X2l4bGlicmFyeS5hIGVudHJpZXMg aW4gL3N5cy9saWJzLgotKyAgICBmaW5pc2hfZXZhbD0nZm9yIGxpYiBpbiBgbHMgJGxpYmRpci8q Lml4bGlicmFyeSAyPi9kZXYvbnVsbGA7IGRvIGxpYm5hbWU9YCRFQ0hPICJYJGxpYiIgfCAkWHNl ZCAtZSAnXCcncyVeLiovXChbXi9dKlwpXC5peGxpYnJhcnkkJVwxJSdcJydgOyB0ZXN0ICRSTSAv c3lzL2xpYnMvJHtsaWJuYW1lfV9peGxpYnJhcnkuYTsgJHNob3cgImNkIC9zeXMvbGlicyAmJiAk TE5fUyAkbGliICR7bGlibmFtZX1faXhsaWJyYXJ5LmEiOyBjZCAvc3lzL2xpYnMgJiYgJExOX1Mg JGxpYiAke2xpYm5hbWV9X2l4bGlicmFyeS5hIHx8IGV4aXQgMTsgZG9uZScKLSsgICAgOzsKLSsg IGVzYWMKLSsgIDs7Ci0rCi0rYmVvcyopCi0rICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFt ZX0ke3NoYXJlZF9leHR9JwotKyAgZHluYW1pY19saW5rZXI9IiRob3N0X29zIGxkLnNvIgotKyAg c2hsaWJwYXRoX3Zhcj1MSUJSQVJZX1BBVEgKLSsgIDs7Ci0rCi0rYnNkaVs0NV0qKQotKyAgdmVy c2lvbl90eXBlPWxpbnV4Ci0rICBuZWVkX3ZlcnNpb249bm8KLSsgIGxpYnJhcnlfbmFtZXNfc3Bl Yz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9 JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJGxpYm5hbWUke3NoYXJlZF9leHR9JwotKyAg c29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKLSsg IGZpbmlzaF9jbWRzPSdQQVRIPSJcJFBBVEg6L3NiaW4iIGxkY29uZmlnICRsaWJkaXInCi0rICBz aGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAotKyAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVj PSIvc2hsaWIgL3Vzci9saWIgL3Vzci9YMTEvbGliIC91c3IvY29udHJpYi9saWIgL2xpYiAvdXNy L2xvY2FsL2xpYiIKLSsgIHN5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjPSIvc2hsaWIgL3Vzci9s aWIgL3Vzci9sb2NhbC9saWIiCi0rICAjIHRoZSBkZWZhdWx0IGxkLnNvLmNvbmYgYWxzbyBjb250 YWlucyAvdXNyL2NvbnRyaWIvbGliIGFuZAotKyAgIyAvdXNyL1gxMVI2L2xpYiAoL3Vzci9YMTEg aXMgYSBsaW5rIHRvIC91c3IvWDExUjYpLCBidXQgbGV0IHVzIGFsbG93Ci0rICAjIGxpYnRvb2wg dG8gaGFyZC1jb2RlIHRoZXNlIGludG8gcHJvZ3JhbXMKLSsgIDs7Ci0rCi0rY3lnd2luKiB8IG1p bmd3KiB8IHB3MzIqIHwgY2VnY2MqKQotKyAgdmVyc2lvbl90eXBlPXdpbmRvd3MKLSsgIHNocmV4 dF9jbWRzPSIuZGxsIgotKyAgbmVlZF92ZXJzaW9uPW5vCi0rICBuZWVkX2xpYl9wcmVmaXg9bm8K LSsKLSsgIGNhc2UgJEdDQywkaG9zdF9vcyBpbgotKyAgeWVzLGN5Z3dpbiogfCB5ZXMsbWluZ3cq IHwgeWVzLHB3MzIqIHwgeWVzLGNlZ2NjKikKLSsgICAgbGlicmFyeV9uYW1lc19zcGVjPSckbGli bmFtZS5kbGwuYScKLSsgICAgIyBETEwgaXMgaW5zdGFsbGVkIHRvICQobGliZGlyKS8uLi9iaW4g YnkgcG9zdGluc3RhbGxfY21kcwotKyAgICBwb3N0aW5zdGFsbF9jbWRzPSdiYXNlX2ZpbGU9YGJh c2VuYW1lIFwke2ZpbGV9YH4KLSsgICAgICBkbHBhdGg9YCRTSEVMTCAyPiYxIC1jICdcJycuICRk aXIvJ1wnJ1wke2Jhc2VfZmlsZX0nXCcnaTsgZWNobyBcJGRsbmFtZSdcJydgfgotKyAgICAgIGRs ZGlyPSRkZXN0ZGlyL2BkaXJuYW1lIFwkZGxwYXRoYH4KLSsgICAgICB0ZXN0IC1kIFwkZGxkaXIg fHwgbWtkaXIgLXAgXCRkbGRpcn4KLSsgICAgICAkaW5zdGFsbF9wcm9nICRkaXIvJGRsbmFtZSBc JGRsZGlyLyRkbG5hbWV+Ci0rICAgICAgY2htb2QgYSt4IFwkZGxkaXIvJGRsbmFtZX4KLSsgICAg ICBpZiB0ZXN0IC1uICdcJyckc3RyaXBtZSdcJycgJiYgdGVzdCAtbiAnXCcnJHN0cmlwbGliJ1wn JzsgdGhlbgotKyAgICAgICAgZXZhbCAnXCcnJHN0cmlwbGliIFwkZGxkaXIvJGRsbmFtZSdcJycg fHwgZXhpdCBcJD87Ci0rICAgICAgZmknCi0rICAgIHBvc3R1bmluc3RhbGxfY21kcz0nZGxkbGw9 YCRTSEVMTCAyPiYxIC1jICdcJycuICRmaWxlOyBlY2hvIFwkZGxuYW1lJ1wnJ2B+Ci0rICAgICAg ZGxwYXRoPSRkaXIvXCRkbGRsbH4KLSsgICAgICAgJFJNIFwkZGxwYXRoJwotKyAgICBzaGxpYnBh dGhfb3ZlcnJpZGVzX3J1bnBhdGg9eWVzCi0rCi0rICAgIGNhc2UgJGhvc3Rfb3MgaW4KLSsgICAg Y3lnd2luKikKLSsgICAgICAjIEN5Z3dpbiBETExzIHVzZSAnY3lnJyBwcmVmaXggcmF0aGVyIHRo YW4gJ2xpYicKLSsgICAgICBzb25hbWVfc3BlYz0nYGVjaG8gJHtsaWJuYW1lfSB8IHNlZCAtZSAn cy9ebGliL2N5Zy8nYGBlY2hvICR7cmVsZWFzZX0gfCAkU0VEIC1lICdzL1suXS8tL2cnYCR7dmVy c3VmZml4fSR7c2hhcmVkX2V4dH0nCi0rICAgICAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPSIv dXNyL2xpYiAvbGliL3czMmFwaSAvbGliIC91c3IvbG9jYWwvbGliIgotKyAgICAgIDs7Ci0rICAg IG1pbmd3KiB8IGNlZ2NjKikKLSsgICAgICAjIE1pbkdXIERMTHMgdXNlIHRyYWRpdGlvbmFsICds aWInIHByZWZpeAotKyAgICAgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9YGVjaG8gJHtyZWxlYXNl fSB8ICRTRUQgLWUgJ3MvWy5dLy0vZydgJHt2ZXJzdWZmaXh9JHtzaGFyZWRfZXh0fScKLSsgICAg ICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9YCRDQyAtcHJpbnQtc2VhcmNoLWRpcnMgfCAkR1JF UCAiXmxpYnJhcmllczoiIHwgJFNFRCAtZSAicy9ebGlicmFyaWVzOi8vIiAtZSAicyw9LywvLGci YAotKyAgICAgIGlmICRFQ0hPICIkc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjIiB8ICRHUkVQICc7 W2MtekMtWl06LycgPi9kZXYvbnVsbDsgdGhlbgotKyAgICAgICAgIyBJdCBpcyBtb3N0IHByb2Jh Ymx5IGEgV2luZG93cyBmb3JtYXQgUEFUSCBwcmludGVkIGJ5Ci0rICAgICAgICAjIG1pbmd3IGdj YywgYnV0IHdlIGFyZSBydW5uaW5nIG9uIEN5Z3dpbi4gR2NjIHByaW50cyBpdHMgc2VhcmNoCi0r ICAgICAgICAjIHBhdGggd2l0aCA7IHNlcGFyYXRvcnMsIGFuZCB3aXRoIGRyaXZlIGxldHRlcnMu IFdlIGNhbiBoYW5kbGUgdGhlCi0rICAgICAgICAjIGRyaXZlIGxldHRlcnMgKGN5Z3dpbiBmaWxl dXRpbHMgdW5kZXJzdGFuZHMgdGhlbSksIHNvIGxlYXZlIHRoZW0sCi0rICAgICAgICAjIGVzcGVj aWFsbHkgYXMgd2UgbWlnaHQgcGFzcyBmaWxlcyBmb3VuZCB0aGVyZSB0byBhIG1pbmd3IG9iamR1 bXAsCi0rICAgICAgICAjIHdoaWNoIHdvdWxkbid0IHVuZGVyc3RhbmQgYSBjeWd3aW5pZmllZCBw YXRoLiBBaGguCi0rICAgICAgICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9YCRFQ0hPICIkc3lz X2xpYl9zZWFyY2hfcGF0aF9zcGVjIiB8ICRTRUQgLWUgJ3MvOy8gL2cnYAotKyAgICAgIGVsc2UK LSsgICAgICAgIHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYz1gJEVDSE8gIiRzeXNfbGliX3NlYXJj aF9wYXRoX3NwZWMiIHwgJFNFRCAgLWUgInMvJFBBVEhfU0VQQVJBVE9SLyAvZyJgCi0rICAgICAg ZmkKLSsgICAgICA7OwotKyAgICBwdzMyKikKLSsgICAgICAjIHB3MzIgRExMcyB1c2UgJ3B3JyBw cmVmaXggcmF0aGVyIHRoYW4gJ2xpYicKLSsgICAgICBsaWJyYXJ5X25hbWVzX3NwZWM9J2BlY2hv ICR7bGlibmFtZX0gfCBzZWQgLWUgJ3MvXmxpYi9wdy8nYGBlY2hvICR7cmVsZWFzZX0gfCAkU0VE IC1lICdzL1suXS8tL2cnYCR7dmVyc3VmZml4fSR7c2hhcmVkX2V4dH0nCi0rICAgICAgOzsKLSsg ICAgZXNhYwotKyAgICA7OwotKwotKyAgKikKLSsgICAgbGlicmFyeV9uYW1lc19zcGVjPScke2xp Ym5hbWV9YGVjaG8gJHtyZWxlYXNlfSB8ICRTRUQgLWUgJ3MvWy5dLy0vZydgJHt2ZXJzdWZmaXh9 JHtzaGFyZWRfZXh0fSAkbGlibmFtZS5saWInCi0rICAgIDs7Ci0rICBlc2FjCi0rICBkeW5hbWlj X2xpbmtlcj0nV2luMzIgbGQuZXhlJwotKyAgIyBGSVhNRTogZmlyc3Qgd2Ugc2hvdWxkIHNlYXJj aCAuIGFuZCB0aGUgZGlyZWN0b3J5IHRoZSBleGVjdXRhYmxlIGlzIGluCi0rICBzaGxpYnBhdGhf dmFyPVBBVEgKLSsgIDs7Ci0rCi0rZGFyd2luKiB8IHJoYXBzb2R5KikKLSsgIGR5bmFtaWNfbGlu a2VyPSIkaG9zdF9vcyBkeWxkIgotKyAgdmVyc2lvbl90eXBlPWRhcndpbgotKyAgbmVlZF9saWJf cHJlZml4PW5vCi0rICBuZWVkX3ZlcnNpb249bm8KLSsgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHts aWJuYW1lfSR7cmVsZWFzZX0ke21ham9yfSRzaGFyZWRfZXh0ICR7bGlibmFtZX0kc2hhcmVkX2V4 dCcKLSsgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7bWFqb3J9JHNoYXJlZF9l eHQnCi0rICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9eWVzCi0rICBzaGxpYnBhdGhfdmFy PURZTERfTElCUkFSWV9QQVRICi0rICBzaHJleHRfY21kcz0nYHRlc3QgLiRtb2R1bGUgPSAueWVz ICYmIGVjaG8gLnNvIHx8IGVjaG8gLmR5bGliYCcKLSsKLSsgIHN5c19saWJfZGxzZWFyY2hfcGF0 aF9zcGVjPScvdXNyL2xvY2FsL2xpYiAvbGliIC91c3IvbGliJwotKyAgOzsKLSsKLStkZ3V4KikK LSsgIHZlcnNpb25fdHlwZT1saW51eAotKyAgbmVlZF9saWJfcHJlZml4PW5vCi0rICBuZWVkX3Zl cnNpb249bm8KLSsgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3No YXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFq b3IgJGxpYm5hbWUkc2hhcmVkX2V4dCcKLSsgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxl YXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCi0rICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFU SAotKyAgOzsKLSsKLStmcmVlYnNkMSopCi0rICBkeW5hbWljX2xpbmtlcj1ubwotKyAgOzsKLSsK LStmcmVlYnNkKiB8IGRyYWdvbmZseSopCi0rICAjIERyYWdvbkZseSBkb2VzIG5vdCBoYXZlIGFv dXQuICBXaGVuL2lmIHRoZXkgaW1wbGVtZW50IGEgbmV3Ci0rICAjIHZlcnNpb25pbmcgbWVjaGFu aXNtLCBhZGp1c3QgdGhpcy4KLSsgIGlmIHRlc3QgLXggL3Vzci9iaW4vb2JqZm9ybWF0OyB0aGVu Ci0rICAgIG9iamZvcm1hdD1gL3Vzci9iaW4vb2JqZm9ybWF0YAotKyAgZWxzZQotKyAgICBjYXNl ICRob3N0X29zIGluCi0rICAgIGZyZWVic2RbMTIzXSopIG9iamZvcm1hdD1hb3V0IDs7Ci0rICAg ICopIG9iamZvcm1hdD1lbGYgOzsKLSsgICAgZXNhYwotKyAgZmkKLSsgIHZlcnNpb25fdHlwZT1m cmVlYnNkLSRvYmpmb3JtYXQKLSsgIGNhc2UgJHZlcnNpb25fdHlwZSBpbgotKyAgICBmcmVlYnNk LWVsZiopCi0rICAgICAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7 c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSAk bGlibmFtZSR7c2hhcmVkX2V4dH0nCi0rICAgICAgbmVlZF92ZXJzaW9uPW5vCi0rICAgICAgbmVl ZF9saWJfcHJlZml4PW5vCi0rICAgICAgOzsKLSsgICAgZnJlZWJzZC0qKQotKyAgICAgIGxpYnJh cnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZp eCAkbGlibmFtZSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4JwotKyAgICAgIG5lZWRfdmVyc2lvbj15 ZXMKLSsgICAgICA7OwotKyAgZXNhYwotKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgK LSsgIGNhc2UgJGhvc3Rfb3MgaW4KLSsgIGZyZWVic2QyKikKLSsgICAgc2hsaWJwYXRoX292ZXJy aWRlc19ydW5wYXRoPXllcwotKyAgICA7OwotKyAgZnJlZWJzZDMuWzAxXSogfCBmcmVlYnNkZWxm My5bMDFdKikKLSsgICAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPXllcwotKyAgICBoYXJk Y29kZV9pbnRvX2xpYnM9eWVzCi0rICAgIDs7Ci0rICBmcmVlYnNkMy5bMi05XSogfCBmcmVlYnNk ZWxmMy5bMi05XSogfCBcCi0rICBmcmVlYnNkNC5bMC01XSB8IGZyZWVic2RlbGY0LlswLTVdIHwg ZnJlZWJzZDQuMS4xIHwgZnJlZWJzZGVsZjQuMS4xKQotKyAgICBzaGxpYnBhdGhfb3ZlcnJpZGVz X3J1bnBhdGg9bm8KLSsgICAgaGFyZGNvZGVfaW50b19saWJzPXllcwotKyAgICA7OwotKyAgKikg IyBmcm9tIDQuNiBvbiwgYW5kIERyYWdvbkZseQotKyAgICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1 bnBhdGg9eWVzCi0rICAgIGhhcmRjb2RlX2ludG9fbGlicz15ZXMKLSsgICAgOzsKLSsgIGVzYWMK LSsgIDs7Ci0rCi0rZ251KikKLSsgIHZlcnNpb25fdHlwZT1saW51eAotKyAgbmVlZF9saWJfcHJl Zml4PW5vCi0rICBuZWVkX3ZlcnNpb249bm8KLSsgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJu YW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNl fSR7c2hhcmVkX2V4dH0ke21ham9yfSAke2xpYm5hbWV9JHtzaGFyZWRfZXh0fScKLSsgIHNvbmFt ZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCi0rICBzaGxp YnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAotKyAgaGFyZGNvZGVfaW50b19saWJzPXllcwotKyAg OzsKLSsKLStocHV4OSogfCBocHV4MTAqIHwgaHB1eDExKikKLSsgICMgR2l2ZSBhIHNvbmFtZSBj b3JyZXNwb25kaW5nIHRvIHRoZSBtYWpvciB2ZXJzaW9uIHNvIHRoYXQgZGxkLnNsIHJlZnVzZXMg dG8KLSsgICMgbGluayBhZ2FpbnN0IG90aGVyIHZlcnNpb25zLgotKyAgdmVyc2lvbl90eXBlPXN1 bm9zCi0rICBuZWVkX2xpYl9wcmVmaXg9bm8KLSsgIG5lZWRfdmVyc2lvbj1ubwotKyAgY2FzZSAk aG9zdF9jcHUgaW4KLSsgIGlhNjQqKQotKyAgICBzaHJleHRfY21kcz0nLnNvJwotKyAgICBoYXJk Y29kZV9pbnRvX2xpYnM9eWVzCi0rICAgIGR5bmFtaWNfbGlua2VyPSIkaG9zdF9vcyBkbGQuc28i Ci0rICAgIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRICi0rICAgIHNobGlicGF0aF9vdmVy cmlkZXNfcnVucGF0aD15ZXMgIyBVbmxlc3MgK25vZW52dmFyIGlzIHNwZWNpZmllZC4KLSsgICAg bGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVy c3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAkbGlibmFtZSR7 c2hhcmVkX2V4dH0nCi0rICAgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hh cmVkX2V4dH0kbWFqb3InCi0rICAgIGlmIHRlc3QgIlgkSFBVWF9JQTY0X01PREUiID0gWDMyOyB0 aGVuCi0rICAgICAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPSIvdXNyL2xpYi9ocHV4MzIgL3Vz ci9sb2NhbC9saWIvaHB1eDMyIC91c3IvbG9jYWwvbGliIgotKyAgICBlbHNlCi0rICAgICAgc3lz X2xpYl9zZWFyY2hfcGF0aF9zcGVjPSIvdXNyL2xpYi9ocHV4NjQgL3Vzci9sb2NhbC9saWIvaHB1 eDY0IgotKyAgICBmaQotKyAgICBzeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYz0kc3lzX2xpYl9z ZWFyY2hfcGF0aF9zcGVjCi0rICAgIDs7Ci0rICBocHBhKjY0KikKLSsgICAgc2hyZXh0X2NtZHM9 Jy5zbCcKLSsgICAgaGFyZGNvZGVfaW50b19saWJzPXllcwotKyAgICBkeW5hbWljX2xpbmtlcj0i JGhvc3Rfb3MgZGxkLnNsIgotKyAgICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSCAjIEhv dyBzaG91bGQgd2UgaGFuZGxlIFNITElCX1BBVEgKLSsgICAgc2hsaWJwYXRoX292ZXJyaWRlc19y dW5wYXRoPXllcyAjIFVubGVzcyArbm9lbnZ2YXIgaXMgc3BlY2lmaWVkLgotKyAgICBsaWJyYXJ5 X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXgg JHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICRsaWJuYW1lJHtzaGFyZWRf ZXh0fScKLSsgICAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0 fSRtYWpvcicKLSsgICAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPSIvdXNyL2xpYi9wYTIwXzY0 IC91c3IvY2NzL2xpYi9wYTIwXzY0IgotKyAgICBzeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYz0k c3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjCi0rICAgIDs7Ci0rICAqKQotKyAgICBzaHJleHRfY21k cz0nLnNsJwotKyAgICBkeW5hbWljX2xpbmtlcj0iJGhvc3Rfb3MgZGxkLnNsIgotKyAgICBzaGxp YnBhdGhfdmFyPVNITElCX1BBVEgKLSsgICAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPW5v ICMgK3MgaXMgcmVxdWlyZWQgdG8gZW5hYmxlIFNITElCX1BBVEgKLSsgICAgbGlicmFyeV9uYW1l c19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGli bmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAkbGlibmFtZSR7c2hhcmVkX2V4dH0n Ci0rICAgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFq b3InCi0rICAgIDs7Ci0rICBlc2FjCi0rICAjIEhQLVVYIHJ1bnMgKnJlYWxseSogc2xvd2x5IHVu bGVzcyBzaGFyZWQgbGlicmFyaWVzIGFyZSBtb2RlIDU1NS4KLSsgIHBvc3RpbnN0YWxsX2NtZHM9 J2NobW9kIDU1NSAkbGliJwotKyAgOzsKLSsKLStpbnRlcml4WzMtOV0qKQotKyAgdmVyc2lvbl90 eXBlPWxpbnV4Ci0rICBuZWVkX2xpYl9wcmVmaXg9bm8KLSsgIG5lZWRfdmVyc2lvbj1ubwotKyAg bGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVy c3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAke2xpYm5hbWV9 JHtzaGFyZWRfZXh0fScKLSsgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hh cmVkX2V4dH0kbWFqb3InCi0rICBkeW5hbWljX2xpbmtlcj0nSW50ZXJpeCAzLnggbGQuc28uMSAo UEUsIGxpa2UgRUxGKScKLSsgIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRICi0rICBzaGxp YnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9bm8KLSsgIGhhcmRjb2RlX2ludG9fbGlicz15ZXMKLSsg IDs7Ci0rCi0raXJpeDUqIHwgaXJpeDYqIHwgbm9uc3RvcHV4KikKLSsgIGNhc2UgJGhvc3Rfb3Mg aW4KLSsgICAgbm9uc3RvcHV4KikgdmVyc2lvbl90eXBlPW5vbnN0b3B1eCA7OwotKyAgICAqKQot KwlpZiB0ZXN0ICIkbHRfY3ZfcHJvZ19nbnVfbGQiID0geWVzOyB0aGVuCi0rCQl2ZXJzaW9uX3R5 cGU9bGludXgKLSsJZWxzZQotKwkJdmVyc2lvbl90eXBlPWlyaXgKLSsJZmkgOzsKLSsgIGVzYWMK LSsgIG5lZWRfbGliX3ByZWZpeD1ubwotKyAgbmVlZF92ZXJzaW9uPW5vCi0rICBzb25hbWVfc3Bl Yz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yJwotKyAgbGlicmFyeV9u YW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7 bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAke2xpYm5hbWV9JHtyZWxlYXNl fSR7c2hhcmVkX2V4dH0gJGxpYm5hbWUke3NoYXJlZF9leHR9JwotKyAgY2FzZSAkaG9zdF9vcyBp bgotKyAgaXJpeDUqIHwgbm9uc3RvcHV4KikKLSsgICAgbGlic3VmZj0gc2hsaWJzdWZmPQotKyAg ICA7OwotKyAgKikKLSsgICAgY2FzZSAkTEQgaW4gIyBsaWJ0b29sLm00IHdpbGwgYWRkIG9uZSBv ZiB0aGVzZSBzd2l0Y2hlcyB0byBMRAotKyAgICAqLTMyfCoiLTMyICJ8Ki1tZWxmMzJic21pcHwq Ii1tZWxmMzJic21pcCAiKQotKyAgICAgIGxpYnN1ZmY9IHNobGlic3VmZj0gbGlibWFnaWM9MzIt Yml0OzsKLSsgICAgKi1uMzJ8KiItbjMyICJ8Ki1tZWxmMzJibWlwbjMyfCoiLW1lbGYzMmJtaXBu MzIgIikKLSsgICAgICBsaWJzdWZmPTMyIHNobGlic3VmZj1OMzIgbGlibWFnaWM9TjMyOzsKLSsg ICAgKi02NHwqIi02NCAifCotbWVsZjY0Ym1pcHwqIi1tZWxmNjRibWlwICIpCi0rICAgICAgbGli c3VmZj02NCBzaGxpYnN1ZmY9NjQgbGlibWFnaWM9NjQtYml0OzsKLSsgICAgKikgbGlic3VmZj0g c2hsaWJzdWZmPSBsaWJtYWdpYz1uZXZlci1tYXRjaDs7Ci0rICAgIGVzYWMKLSsgICAgOzsKLSsg IGVzYWMKLSsgIHNobGlicGF0aF92YXI9TERfTElCUkFSWSR7c2hsaWJzdWZmfV9QQVRICi0rICBz aGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9bm8KLSsgIHN5c19saWJfc2VhcmNoX3BhdGhfc3Bl Yz0iL3Vzci9saWIke2xpYnN1ZmZ9IC9saWIke2xpYnN1ZmZ9IC91c3IvbG9jYWwvbGliJHtsaWJz dWZmfSIKLSsgIHN5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjPSIvdXNyL2xpYiR7bGlic3VmZn0g L2xpYiR7bGlic3VmZn0iCi0rICBoYXJkY29kZV9pbnRvX2xpYnM9eWVzCi0rICA7OwotKwotKyMg Tm8gc2hhcmVkIGxpYiBzdXBwb3J0IGZvciBMaW51eCBvbGRsZCwgYW91dCwgb3IgY29mZi4KLSts aW51eCpvbGRsZCogfCBsaW51eCphb3V0KiB8IGxpbnV4KmNvZmYqKQotKyAgZHluYW1pY19saW5r ZXI9bm8KLSsgIDs7Ci0rCi0rIyBUaGlzIG11c3QgYmUgTGludXggRUxGLgotK2xpbnV4KiB8IGsq YnNkKi1nbnUpCi0rICB2ZXJzaW9uX3R5cGU9bGludXgKLSsgIG5lZWRfbGliX3ByZWZpeD1ubwot KyAgbmVlZF92ZXJzaW9uPW5vCi0rICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3Jl bGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJl ZF9leHR9JG1ham9yICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKLSsgIHNvbmFtZV9zcGVjPScke2xp Ym5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCi0rICBmaW5pc2hfY21kcz0nUEFU SD0iXCRQQVRIOi9zYmluIiBsZGNvbmZpZyAtbiAkbGliZGlyJwotKyAgc2hsaWJwYXRoX3Zhcj1M RF9MSUJSQVJZX1BBVEgKLSsgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD1ubwotKyAgIyBT b21lIGJpbnV0aWxzIGxkIGFyZSBwYXRjaGVkIHRvIHNldCBEVF9SVU5QQVRICi0rICBzYXZlX0xE RkxBR1M9JExERkxBR1MKLSsgIHNhdmVfbGliZGlyPSRsaWJkaXIKLSsgIGV2YWwgImxpYmRpcj0v Zm9vOyB3bD1cIiRsdF9wcm9nX2NvbXBpbGVyX3dsX0NYWFwiOyBcCi0rICAgICAgIExERkxBR1M9 XCJcJExERkxBR1MgJGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfQ1hYXCIiCi0rICBjYXQgPmNv bmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLSsvKiBjb25mZGVmcy5oLiAgKi8KLStfQUNFT0YKLStj YXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKLStjYXQgPj5jb25mdGVzdC4kYWNfZXh0 IDw8X0FDRU9GCi0rLyogZW5kIGNvbmZkZWZzLmguICAqLwotKwotK2ludAotK21haW4gKCkKLSt7 Ci0rCi0rICA7Ci0rICByZXR1cm4gMDsKLSt9Ci0rX0FDRU9GCi0rcm0gLWYgY29uZnRlc3QuJGFj X29iamV4dCBjb25mdGVzdCRhY19leGVleHQKLStpZiB7IChhY190cnk9IiRhY19saW5rIgotK2Nh c2UgIigoJGFjX3RyeSIgaW4KLSsgICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRh Y190cnk7OwotKyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7Ci0rZXNhYwotK2V2YWwgYWNfdHJ5 X2VjaG89IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIKLSskYXNfZWNobyAiJGFj X3RyeV9lY2hvIikgPiY1Ci0rICAoZXZhbCAiJGFjX2xpbmsiKSAyPmNvbmZ0ZXN0LmVyMQotKyAg YWNfc3RhdHVzPSQ/Ci0rICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVy cgotKyAgcm0gLWYgY29uZnRlc3QuZXIxCi0rICBjYXQgY29uZnRlc3QuZXJyID4mNQotKyAgJGFz X2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSsgIChleGl0ICRh Y19zdGF0dXMpOyB9ICYmIHsKLSsJIHRlc3QgLXogIiRhY19jeHhfd2Vycm9yX2ZsYWciIHx8Ci0r CSB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCi0rICAgICAgIH0gJiYgdGVzdCAtcyBjb25mdGVzdCRh Y19leGVleHQgJiYgewotKwkgdGVzdCAiJGNyb3NzX2NvbXBpbGluZyIgPSB5ZXMgfHwKLSsJICRh c190ZXN0X3ggY29uZnRlc3QkYWNfZXhlZXh0Ci0rICAgICAgIH07IHRoZW4KLSsgIGlmICAoJE9C SkRVTVAgLXAgY29uZnRlc3QkYWNfZXhlZXh0KSAyPi9kZXYvbnVsbCB8IGdyZXAgIlJVTlBBVEgu KiRsaWJkaXIiID4vZGV2L251bGw7IHRoZW4KLSsgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0 aD15ZXMKLStmaQotKwotK2Vsc2UKLSsgICRhc19lY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFt IHdhczoiID4mNQotK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKLSsKLSsKLStm aQotKwotK3JtIC1yZiBjb25mdGVzdC5kU1lNCi0rcm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29u ZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdF9pcGE4X2NvbmZ0ZXN0Lm9vIFwKLSsgICAgICBjb25m dGVzdCRhY19leGVleHQgY29uZnRlc3QuJGFjX2V4dAotKyAgTERGTEFHUz0kc2F2ZV9MREZMQUdT Ci0rICBsaWJkaXI9JHNhdmVfbGliZGlyCi0rCi0rICAjIFRoaXMgaW1wbGllcyBubyBmYXN0X2lu c3RhbGwsIHdoaWNoIGlzIHVuYWNjZXB0YWJsZS4KLSsgICMgU29tZSByZXdvcmsgd2lsbCBiZSBu ZWVkZWQgdG8gYWxsb3cgZm9yIGZhc3RfaW5zdGFsbAotKyAgIyBiZWZvcmUgdGhpcyBjYW4gYmUg ZW5hYmxlZC4KLSsgIGhhcmRjb2RlX2ludG9fbGlicz15ZXMKLSsKLSsgICMgQWRkIEFCSS1zcGVj aWZpYyBkaXJlY3RvcmllcyB0byB0aGUgc3lzdGVtIGxpYnJhcnkgcGF0aC4KLSsgIHN5c19saWJf ZGxzZWFyY2hfcGF0aF9zcGVjPSIvbGliNjQgL3Vzci9saWI2NCAvbGliIC91c3IvbGliIgotKwot KyAgIyBBcHBlbmQgbGQuc28uY29uZiBjb250ZW50cyB0byB0aGUgc2VhcmNoIHBhdGgKLSsgIGlm IHRlc3QgLWYgL2V0Yy9sZC5zby5jb25mOyB0aGVuCi0rICAgIGx0X2xkX2V4dHJhPWBhd2sgJy9e aW5jbHVkZSAvIHsgc3lzdGVtKHNwcmludGYoImNkIC9ldGM7IGNhdCAlcyAyPi9kZXYvbnVsbCIs IFwkMikpOyBza2lwID0gMTsgfSB7IGlmICghc2tpcCkgcHJpbnQgXCQwOyBza2lwID0gMDsgfScg PCAvZXRjL2xkLnNvLmNvbmYgfCAkU0VEIC1lICdzLyMuKi8vOy9eWwkgXSpod2NhcFsJIF0vZDtz L1s6LAldLyAvZztzLz1bXj1dKiQvLztzLz1bXj0gXSogLyAvZzsvXiQvZCcgfCB0ciAnXG4nICcg J2AKLSsgICAgc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWM9IiRzeXNfbGliX2Rsc2VhcmNoX3Bh dGhfc3BlYyAkbHRfbGRfZXh0cmEiCi0rICBmaQotKwotKyAgIyBXZSB1c2VkIHRvIHRlc3QgZm9y IC9saWIvbGQuc28uMSBhbmQgZGlzYWJsZSBzaGFyZWQgbGlicmFyaWVzIG9uCi0rICAjIHBvd2Vy cGMsIGJlY2F1c2UgTWtMaW51eCBvbmx5IHN1cHBvcnRlZCBzaGFyZWQgbGlicmFyaWVzIHdpdGgg dGhlCi0rICAjIEdOVSBkeW5hbWljIGxpbmtlci4gIFNpbmNlIHRoaXMgd2FzIGJyb2tlbiB3aXRo IGNyb3NzIGNvbXBpbGVycywKLSsgICMgbW9zdCBwb3dlcnBjLWxpbnV4IGJveGVzIHN1cHBvcnQg ZHluYW1pYyBsaW5raW5nIHRoZXNlIGRheXMgYW5kCi0rICAjIHBlb3BsZSBjYW4gYWx3YXlzIC0t ZGlzYWJsZS1zaGFyZWQsIHRoZSB0ZXN0IHdhcyByZW1vdmVkLCBhbmQgd2UKLSsgICMgYXNzdW1l IHRoZSBHTlUvTGludXggZHluYW1pYyBsaW5rZXIgaXMgaW4gdXNlLgotKyAgZHluYW1pY19saW5r ZXI9J0dOVS9MaW51eCBsZC5zbycKLSsgIDs7Ci0rCi0rbmV0YnNkKikKLSsgIHZlcnNpb25fdHlw ZT1zdW5vcwotKyAgbmVlZF9saWJfcHJlZml4PW5vCi0rICBuZWVkX3ZlcnNpb249bm8KLSsgIGlm IGVjaG8gX19FTEZfXyB8ICRDQyAtRSAtIHwgJEdSRVAgX19FTEZfXyA+L2Rldi9udWxsOyB0aGVu Ci0rICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9l eHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXgnCi0rICAgIGZp bmlzaF9jbWRzPSdQQVRIPSJcJFBBVEg6L3NiaW4iIGxkY29uZmlnIC1tICRsaWJkaXInCi0rICAg IGR5bmFtaWNfbGlua2VyPSdOZXRCU0QgKGEub3V0KSBsZC5zbycKLSsgIGVsc2UKLSsgICAgbGli cmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3Vm Zml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAke2xpYm5hbWV9JHtz aGFyZWRfZXh0fScKLSsgICAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFy ZWRfZXh0fSRtYWpvcicKLSsgICAgZHluYW1pY19saW5rZXI9J05ldEJTRCBsZC5lbGZfc28nCi0r ICBmaQotKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKLSsgIHNobGlicGF0aF9vdmVy cmlkZXNfcnVucGF0aD15ZXMKLSsgIGhhcmRjb2RlX2ludG9fbGlicz15ZXMKLSsgIDs7Ci0rCi0r bmV3c29zNikKLSsgIHZlcnNpb25fdHlwZT1saW51eAotKyAgbGlicmFyeV9uYW1lc19zcGVjPSck e2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3Jl bGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAkbGlibmFtZSR7c2hhcmVkX2V4dH0nCi0rICBzaGxp YnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAotKyAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRo PXllcwotKyAgOzsKLSsKLSsqbnRvKiB8ICpxbngqKQotKyAgdmVyc2lvbl90eXBlPXFueAotKyAg bmVlZF9saWJfcHJlZml4PW5vCi0rICBuZWVkX3ZlcnNpb249bm8KLSsgIGxpYnJhcnlfbmFtZXNf c3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5h bWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJGxpYm5hbWUke3NoYXJlZF9leHR9Jwot KyAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicK LSsgIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRICi0rICBzaGxpYnBhdGhfb3ZlcnJpZGVz X3J1bnBhdGg9bm8KLSsgIGhhcmRjb2RlX2ludG9fbGlicz15ZXMKLSsgIGR5bmFtaWNfbGlua2Vy PSdsZHFueC5zbycKLSsgIDs7Ci0rCi0rb3BlbmJzZCopCi0rICB2ZXJzaW9uX3R5cGU9c3Vub3MK LSsgIHN5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjPSIvdXNyL2xpYiIKLSsgIG5lZWRfbGliX3By ZWZpeD1ubwotKyAgIyBTb21lIG9sZGVyIHZlcnNpb25zIG9mIE9wZW5CU0QgKDMuMyBhdCBsZWFz dCkgKmRvKiBuZWVkIHZlcnNpb25lZCBsaWJzLgotKyAgY2FzZSAkaG9zdF9vcyBpbgotKyAgICBv cGVuYnNkMy4zIHwgb3BlbmJzZDMuMy4qKQluZWVkX3ZlcnNpb249eWVzIDs7Ci0rICAgICopCQkJ CW5lZWRfdmVyc2lvbj1ubyAgOzsKLSsgIGVzYWMKLSsgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHts aWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtzaGFy ZWRfZXh0fSR2ZXJzdWZmaXgnCi0rICBmaW5pc2hfY21kcz0nUEFUSD0iXCRQQVRIOi9zYmluIiBs ZGNvbmZpZyAtbSAkbGliZGlyJwotKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKLSsg IGlmIHRlc3QgLXogImBlY2hvIF9fRUxGX18gfCAkQ0MgLUUgLSB8ICRHUkVQIF9fRUxGX19gIiB8 fCB0ZXN0ICIkaG9zdF9vcy0kaG9zdF9jcHUiID0gIm9wZW5ic2QyLjgtcG93ZXJwYyI7IHRoZW4K LSsgICAgY2FzZSAkaG9zdF9vcyBpbgotKyAgICAgIG9wZW5ic2QyLls4OV0gfCBvcGVuYnNkMi5b ODldLiopCi0rCXNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD1ubwotKwk7OwotKyAgICAgICop Ci0rCXNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD15ZXMKLSsJOzsKLSsgICAgICBlc2FjCi0r ICBlbHNlCi0rICAgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD15ZXMKLSsgIGZpCi0rICA7 OwotKwotK29zMiopCi0rICBsaWJuYW1lX3NwZWM9JyRuYW1lJwotKyAgc2hyZXh0X2NtZHM9Ii5k bGwiCi0rICBuZWVkX2xpYl9wcmVmaXg9bm8KLSsgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJGxpYm5h bWUke3NoYXJlZF9leHR9ICRsaWJuYW1lLmEnCi0rICBkeW5hbWljX2xpbmtlcj0nT1MvMiBsZC5l eGUnCi0rICBzaGxpYnBhdGhfdmFyPUxJQlBBVEgKLSsgIDs7Ci0rCi0rb3NmMyogfCBvc2Y0KiB8 IG9zZjUqKQotKyAgdmVyc2lvbl90eXBlPW9zZgotKyAgbmVlZF9saWJfcHJlZml4PW5vCi0rICBu ZWVkX3ZlcnNpb249bm8KLSsgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hh cmVkX2V4dH0kbWFqb3InCi0rICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVh c2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9l eHR9JG1ham9yICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKLSsgIHNobGlicGF0aF92YXI9TERfTElC UkFSWV9QQVRICi0rICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9Ii91c3Ivc2hsaWIgL3Vzci9j Y3MvbGliIC91c3IvbGliL2NtcGxycy9jYyAvdXNyL2xpYiAvdXNyL2xvY2FsL2xpYiAvdmFyL3No bGliIgotKyAgc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWM9IiRzeXNfbGliX3NlYXJjaF9wYXRo X3NwZWMiCi0rICA7OwotKwotK3Jkb3MqKQotKyAgZHluYW1pY19saW5rZXI9bm8KLSsgIDs7Ci0r Ci0rc29sYXJpcyopCi0rICB2ZXJzaW9uX3R5cGU9bGludXgKLSsgIG5lZWRfbGliX3ByZWZpeD1u bwotKyAgbmVlZF92ZXJzaW9uPW5vCi0rICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0k e3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3No YXJlZF9leHR9JG1ham9yICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKLSsgIHNvbmFtZV9zcGVjPSck e2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCi0rICBzaGxpYnBhdGhfdmFy PUxEX0xJQlJBUllfUEFUSAotKyAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPXllcwotKyAg aGFyZGNvZGVfaW50b19saWJzPXllcwotKyAgIyBsZGQgY29tcGxhaW5zIHVubGVzcyBsaWJyYXJp ZXMgYXJlIGV4ZWN1dGFibGUKLSsgIHBvc3RpbnN0YWxsX2NtZHM9J2NobW9kICt4ICRsaWInCi0r ICA7OwotKwotK3N1bm9zNCopCi0rICB2ZXJzaW9uX3R5cGU9c3Vub3MKLSsgIGxpYnJhcnlfbmFt ZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xp Ym5hbWV9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXgnCi0rICBmaW5pc2hfY21kcz0nUEFUSD0iXCRQ QVRIOi91c3IvZXRjIiBsZGNvbmZpZyAkbGliZGlyJwotKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJS QVJZX1BBVEgKLSsgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD15ZXMKLSsgIGlmIHRlc3Qg IiR3aXRoX2dudV9sZCIgPSB5ZXM7IHRoZW4KLSsgICAgbmVlZF9saWJfcHJlZml4PW5vCi0rICBm aQotKyAgbmVlZF92ZXJzaW9uPXllcwotKyAgOzsKLSsKLStzeXN2NCB8IHN5c3Y0LjMqKQotKyAg dmVyc2lvbl90eXBlPWxpbnV4Ci0rICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3Jl bGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJl ZF9leHR9JG1ham9yICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKLSsgIHNvbmFtZV9zcGVjPScke2xp Ym5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCi0rICBzaGxpYnBhdGhfdmFyPUxE X0xJQlJBUllfUEFUSAotKyAgY2FzZSAkaG9zdF92ZW5kb3IgaW4KLSsgICAgc25pKQotKyAgICAg IHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD1ubwotKyAgICAgIG5lZWRfbGliX3ByZWZpeD1u bwotKyAgICAgIHJ1bnBhdGhfdmFyPUxEX1JVTl9QQVRICi0rICAgICAgOzsKLSsgICAgc2llbWVu cykKLSsgICAgICBuZWVkX2xpYl9wcmVmaXg9bm8KLSsgICAgICA7OwotKyAgICBtb3Rvcm9sYSkK LSsgICAgICBuZWVkX2xpYl9wcmVmaXg9bm8KLSsgICAgICBuZWVkX3ZlcnNpb249bm8KLSsgICAg ICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9bm8KLSsgICAgICBzeXNfbGliX3NlYXJjaF9w YXRoX3NwZWM9Jy9saWIgL3Vzci9saWIgL3Vzci9jY3MvbGliJwotKyAgICAgIDs7Ci0rICBlc2Fj Ci0rICA7OwotKwotK3N5c3Y0Kk1QKikKLSsgIGlmIHRlc3QgLWQgL3Vzci9uZWMgO3RoZW4KLSsg ICAgdmVyc2lvbl90eXBlPWxpbnV4Ci0rICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJGxpYm5hbWUk e3NoYXJlZF9leHR9LiR2ZXJzdWZmaXggJGxpYm5hbWUke3NoYXJlZF9leHR9LiRtYWpvciAkbGli bmFtZSR7c2hhcmVkX2V4dH0nCi0rICAgIHNvbmFtZV9zcGVjPSckbGlibmFtZSR7c2hhcmVkX2V4 dH0uJG1ham9yJwotKyAgICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAotKyAgZmkKLSsg IDs7Ci0rCi0rc3lzdjUqIHwgc2NvMy4ydjUqIHwgc2NvNXY2KiB8IHVuaXh3YXJlKiB8IE9wZW5V TklYKiB8IHN5c3Y0KnV3MiopCi0rICB2ZXJzaW9uX3R5cGU9ZnJlZWJzZC1lbGYKLSsgIG5lZWRf bGliX3ByZWZpeD1ubwotKyAgbmVlZF92ZXJzaW9uPW5vCi0rICBsaWJyYXJ5X25hbWVzX3NwZWM9 JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7 cmVsZWFzZX0ke3NoYXJlZF9leHR9ICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKLSsgIHNvbmFtZV9z cGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCi0rICBzaGxpYnBh dGhfdmFyPUxEX0xJQlJBUllfUEFUSAotKyAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPXll cwotKyAgaGFyZGNvZGVfaW50b19saWJzPXllcwotKyAgaWYgdGVzdCAiJHdpdGhfZ251X2xkIiA9 IHllczsgdGhlbgotKyAgICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9Jy91c3IvbG9jYWwvbGli IC91c3IvZ251L2xpYiAvdXNyL2Njcy9saWIgL3Vzci9saWIgL2xpYicKLSsgIGVsc2UKLSsgICAg c3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPScvdXNyL2Njcy9saWIgL3Vzci9saWInCi0rICAgIGNh c2UgJGhvc3Rfb3MgaW4KLSsgICAgICBzY28zLjJ2NSopCi0rICAgICAgICBzeXNfbGliX3NlYXJj aF9wYXRoX3NwZWM9IiRzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWMgL2xpYiIKLSsJOzsKLSsgICAg ZXNhYwotKyAgZmkKLSsgIHN5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjPScvdXNyL2xpYicKLSsg IDs7Ci0rCi0rdHBmKikKLSsgICMgVFBGIGlzIGEgY3Jvc3MtdGFyZ2V0IG9ubHkuICBQcmVmZXJy ZWQgY3Jvc3MtaG9zdCA9IEdOVS9MaW51eC4KLSsgIHZlcnNpb25fdHlwZT1saW51eAotKyAgbmVl ZF9saWJfcHJlZml4PW5vCi0rICBuZWVkX3ZlcnNpb249bm8KLSsgIGxpYnJhcnlfbmFtZXNfc3Bl Yz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9 JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJGxpYm5hbWUke3NoYXJlZF9leHR9JwotKyAg c2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKLSsgIHNobGlicGF0aF9vdmVycmlkZXNfcnVu cGF0aD1ubwotKyAgaGFyZGNvZGVfaW50b19saWJzPXllcwotKyAgOzsKLSsKLSt1dHM0KikKLSsg IHZlcnNpb25fdHlwZT1saW51eAotKyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHty ZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFy ZWRfZXh0fSRtYWpvciAkbGlibmFtZSR7c2hhcmVkX2V4dH0nCi0rICBzb25hbWVfc3BlYz0nJHts aWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yJwotKyAgc2hsaWJwYXRoX3Zhcj1M RF9MSUJSQVJZX1BBVEgKLSsgIDs7Ci0rCi0rKikKLSsgIGR5bmFtaWNfbGlua2VyPW5vCi0rICA7 OwotK2VzYWMKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkZHluYW1pY19s aW5rZXIiID4mNQotKyRhc19lY2hvICIkZHluYW1pY19saW5rZXIiID4mNjsgfQotK3Rlc3QgIiRk eW5hbWljX2xpbmtlciIgPSBubyAmJiBjYW5fYnVpbGRfc2hhcmVkPW5vCi0rCi0rdmFyaWFibGVz X3NhdmVkX2Zvcl9yZWxpbms9IlBBVEggJHNobGlicGF0aF92YXIgJHJ1bnBhdGhfdmFyIgotK2lm IHRlc3QgIiRHQ0MiID0geWVzOyB0aGVuCi0rICB2YXJpYWJsZXNfc2F2ZWRfZm9yX3JlbGluaz0i JHZhcmlhYmxlc19zYXZlZF9mb3JfcmVsaW5rIEdDQ19FWEVDX1BSRUZJWCBDT01QSUxFUl9QQVRI IExJQlJBUllfUEFUSCIKLStmaQotKwotK2lmIHRlc3QgIiR7bHRfY3Zfc3lzX2xpYl9zZWFyY2hf cGF0aF9zcGVjK3NldH0iID0gc2V0OyB0aGVuCi0rICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9 IiRsdF9jdl9zeXNfbGliX3NlYXJjaF9wYXRoX3NwZWMiCi0rZmkKLStpZiB0ZXN0ICIke2x0X2N2 X3N5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjK3NldH0iID0gc2V0OyB0aGVuCi0rICBzeXNfbGli X2Rsc2VhcmNoX3BhdGhfc3BlYz0iJGx0X2N2X3N5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjIgot K2ZpCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0r Ci0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0r ICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBob3cgdG8gaGFyZGNvZGUg bGlicmFyeSBwYXRocyBpbnRvIHByb2dyYW1zIiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyBo b3cgdG8gaGFyZGNvZGUgbGlicmFyeSBwYXRocyBpbnRvIHByb2dyYW1zLi4uICIgPiY2OyB9Ci0r aGFyZGNvZGVfYWN0aW9uX0NYWD0KLStpZiB0ZXN0IC1uICIkaGFyZGNvZGVfbGliZGlyX2ZsYWdf c3BlY19DWFgiIHx8Ci0rICAgdGVzdCAtbiAiJHJ1bnBhdGhfdmFyX0NYWCIgfHwKLSsgICB0ZXN0 ICJYJGhhcmRjb2RlX2F1dG9tYXRpY19DWFgiID0gIlh5ZXMiIDsgdGhlbgotKwotKyAgIyBXZSBj YW4gaGFyZGNvZGUgbm9uLWV4aXN0ZW50IGRpcmVjdG9yaWVzLgotKyAgaWYgdGVzdCAiJGhhcmRj b2RlX2RpcmVjdF9DWFgiICE9IG5vICYmCi0rICAgICAjIElmIHRoZSBvbmx5IG1lY2hhbmlzbSB0 byBhdm9pZCBoYXJkY29kaW5nIGlzIHNobGlicGF0aF92YXIsIHdlCi0rICAgICAjIGhhdmUgdG8g cmVsaW5rLCBvdGhlcndpc2Ugd2UgbWlnaHQgbGluayB3aXRoIGFuIGluc3RhbGxlZCBsaWJyYXJ5 Ci0rICAgICAjIHdoZW4gd2Ugc2hvdWxkIGJlIGxpbmtpbmcgd2l0aCBhIHlldC10by1iZS1pbnN0 YWxsZWQgb25lCi0rICAgICAjIyB0ZXN0ICIkX0xUX1RBR1ZBUihoYXJkY29kZV9zaGxpYnBhdGhf dmFyLCBDWFgpIiAhPSBubyAmJgotKyAgICAgdGVzdCAiJGhhcmRjb2RlX21pbnVzX0xfQ1hYIiAh PSBubzsgdGhlbgotKyAgICAjIExpbmtpbmcgYWx3YXlzIGhhcmRjb2RlcyB0aGUgdGVtcG9yYXJ5 IGxpYnJhcnkgZGlyZWN0b3J5LgotKyAgICBoYXJkY29kZV9hY3Rpb25fQ1hYPXJlbGluawotKyAg ZWxzZQotKyAgICAjIFdlIGNhbiBsaW5rIHdpdGhvdXQgaGFyZGNvZGluZywgYW5kIHdlIGNhbiBo YXJkY29kZSBub25leGlzdGluZyBkaXJzLgotKyAgICBoYXJkY29kZV9hY3Rpb25fQ1hYPWltbWVk aWF0ZQotKyAgZmkKLStlbHNlCi0rICAjIFdlIGNhbm5vdCBoYXJkY29kZSBhbnl0aGluZywgb3Ig ZWxzZSB3ZSBjYW4gb25seSBoYXJkY29kZSBleGlzdGluZwotKyAgIyBkaXJlY3Rvcmllcy4KLSsg IGhhcmRjb2RlX2FjdGlvbl9DWFg9dW5zdXBwb3J0ZWQKLStmaQotK3sgJGFzX2VjaG8gIiRhc19t ZTokTElORU5POiByZXN1bHQ6ICRoYXJkY29kZV9hY3Rpb25fQ1hYIiA+JjUKLSskYXNfZWNobyAi JGhhcmRjb2RlX2FjdGlvbl9DWFgiID4mNjsgfQotKwotK2lmIHRlc3QgIiRoYXJkY29kZV9hY3Rp b25fQ1hYIiA9IHJlbGluayB8fAotKyAgIHRlc3QgIiRpbmhlcml0X3JwYXRoX0NYWCIgPSB5ZXM7 IHRoZW4KLSsgICMgRmFzdCBpbnN0YWxsYXRpb24gaXMgbm90IHN1cHBvcnRlZAotKyAgZW5hYmxl X2Zhc3RfaW5zdGFsbD1ubwotK2VsaWYgdGVzdCAiJHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0 aCIgPSB5ZXMgfHwKLSsgICAgIHRlc3QgIiRlbmFibGVfc2hhcmVkIiA9IG5vOyB0aGVuCi0rICAj IEZhc3QgaW5zdGFsbGF0aW9uIGlzIG5vdCBuZWNlc3NhcnkKLSsgIGVuYWJsZV9mYXN0X2luc3Rh bGw9bmVlZGxlc3MKLStmaQotKwotKwotKwotKwotKwotKwotKwotKyAgZmkgIyB0ZXN0IC1uICIk Y29tcGlsZXIiCi0rCi0rICBDQz0kbHRfc2F2ZV9DQwotKyAgTERDWFg9JExECi0rICBMRD0kbHRf c2F2ZV9MRAotKyAgR0NDPSRsdF9zYXZlX0dDQwotKyAgd2l0aF9nbnVfbGQ9JGx0X3NhdmVfd2l0 aF9nbnVfbGQKLSsgIGx0X2N2X3BhdGhfTERDWFg9JGx0X2N2X3BhdGhfTEQKLSsgIGx0X2N2X3Bh dGhfTEQ9JGx0X3NhdmVfcGF0aF9MRAotKyAgbHRfY3ZfcHJvZ19nbnVfbGRjeHg9JGx0X2N2X3By b2dfZ251X2xkCi0rICBsdF9jdl9wcm9nX2dudV9sZD0kbHRfc2F2ZV93aXRoX2dudV9sZAotK2Zp ICMgdGVzdCAiJF9sdF9jYXVnaHRfQ1hYX2Vycm9yIiAhPSB5ZXMKLSsKLSthY19leHQ9YwotK2Fj X2NwcD0nJENQUCAkQ1BQRkxBR1MnCi0rYWNfY29tcGlsZT0nJENDIC1jICRDRkxBR1MgJENQUEZM QUdTIGNvbmZ0ZXN0LiRhY19leHQgPiY1JwotK2FjX2xpbms9JyRDQyAtbyBjb25mdGVzdCRhY19l eGVleHQgJENGTEFHUyAkQ1BQRkxBR1MgJExERkxBR1MgY29uZnRlc3QuJGFjX2V4dCAkTElCUyA+ JjUnCi0rYWNfY29tcGlsZXJfZ251PSRhY19jdl9jX2NvbXBpbGVyX2dudQotKwotKwotKwotKwot KwotKwotKwotKwotKwotKwotKwotKwotKwotKyAgICAgICAgYWNfY29uZmlnX2NvbW1hbmRzPSIk YWNfY29uZmlnX2NvbW1hbmRzIGxpYnRvb2wiCi0rCi0rCi0rCi0rCi0rIyBPbmx5IGV4cGFuZCBv bmNlOgotKwotKwotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyB3aGV0aGVy IGxuIC1zIHdvcmtzIiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyB3aGV0aGVyIGxuIC1zIHdv cmtzLi4uICIgPiY2OyB9Ci0rTE5fUz0kYXNfbG5fcwotK2lmIHRlc3QgIiRMTl9TIiA9ICJsbiAt cyI7IHRoZW4KLSsgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IHllcyIgPiY1 Ci0rJGFzX2VjaG8gInllcyIgPiY2OyB9Ci0rZWxzZQotKyAgeyAkYXNfZWNobyAiJGFzX21lOiRM SU5FTk86IHJlc3VsdDogbm8sIHVzaW5nICRMTl9TIiA+JjUKLSskYXNfZWNobyAibm8sIHVzaW5n ICRMTl9TIiA+JjY7IH0KLStmaQotKwotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVj a2luZyB3aGV0aGVyICR7TUFLRS1tYWtlfSBzZXRzIFwkKE1BS0UpIiA+JjUKLSskYXNfZWNob19u ICJjaGVja2luZyB3aGV0aGVyICR7TUFLRS1tYWtlfSBzZXRzIFwkKE1BS0UpLi4uICIgPiY2OyB9 Ci0rc2V0IHggJHtNQUtFLW1ha2V9Ci0rYWNfbWFrZT1gJGFzX2VjaG8gIiQyIiB8IHNlZCAncy8r L3AvZzsgcy9bXmEtekEtWjAtOV9dL18vZydgCi0raWYgeyBhc192YXI9YWNfY3ZfcHJvZ19tYWtl XyR7YWNfbWFrZX1fc2V0OyBldmFsICJ0ZXN0IFwiXCR7JGFzX3ZhcitzZXR9XCIgPSBzZXQiOyB9 OyB0aGVuCi0rICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsgIGNhdCA+Y29u ZnRlc3QubWFrZSA8PFxfQUNFT0YKLStTSEVMTCA9IC9iaW4vc2gKLSthbGw6Ci0rCUBlY2hvICdA QEAlJSU9JChNQUtFKT1AQEAlJSUnCi0rX0FDRU9GCi0rIyBHTlUgbWFrZSBzb21ldGltZXMgcHJp bnRzICJtYWtlWzFdOiBFbnRlcmluZy4uLiIsIHdoaWNoIHdvdWxkIGNvbmZ1c2UgdXMuCi0rY2Fz ZSBgJHtNQUtFLW1ha2V9IC1mIGNvbmZ0ZXN0Lm1ha2UgMj4vZGV2L251bGxgIGluCi0rICAqQEBA JSUlPT8qPUBAQCUlJSopCi0rICAgIGV2YWwgYWNfY3ZfcHJvZ19tYWtlXyR7YWNfbWFrZX1fc2V0 PXllczs7Ci0rICAqKQotKyAgICBldmFsIGFjX2N2X3Byb2dfbWFrZV8ke2FjX21ha2V9X3NldD1u bzs7Ci0rZXNhYwotK3JtIC1mIGNvbmZ0ZXN0Lm1ha2UKLStmaQotK2lmIGV2YWwgdGVzdCBcJGFj X2N2X3Byb2dfbWFrZV8ke2FjX21ha2V9X3NldCA9IHllczsgdGhlbgotKyAgeyAkYXNfZWNobyAi JGFzX21lOiRMSU5FTk86IHJlc3VsdDogeWVzIiA+JjUKLSskYXNfZWNobyAieWVzIiA+JjY7IH0K LSsgIFNFVF9NQUtFPQotK2Vsc2UKLSsgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1 bHQ6IG5vIiA+JjUKLSskYXNfZWNobyAibm8iID4mNjsgfQotKyAgU0VUX01BS0U9Ik1BS0U9JHtN QUtFLW1ha2V9IgotK2ZpCi0rCi0rCi0rIyBTZXQgZGVmYXVsdCBsYW5ndWFnZSB0byBDKysKLSth Y19leHQ9Y3BwCi0rYWNfY3BwPSckQ1hYQ1BQICRDUFBGTEFHUycKLSthY19jb21waWxlPSckQ1hY IC1jICRDWFhGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUnCi0rYWNfbGluaz0n JENYWCAtbyBjb25mdGVzdCRhY19leGVleHQgJENYWEZMQUdTICRDUFBGTEFHUyAkTERGTEFHUyBj b25mdGVzdC4kYWNfZXh0ICRMSUJTID4mNScKLSthY19jb21waWxlcl9nbnU9JGFjX2N2X2N4eF9j b21waWxlcl9nbnUKLSsKLSsKLSsjIENoZWNrIGZvciBleGNlcHRpb25zIHN3aXRjaAotKyMgQ2hl Y2sgd2hldGhlciAtLWVuYWJsZS1leGNlcHRpb25zIHdhcyBnaXZlbi4KLStpZiB0ZXN0ICIke2Vu YWJsZV9leGNlcHRpb25zK3NldH0iID0gc2V0OyB0aGVuCi0rICBlbmFibGV2YWw9JGVuYWJsZV9l eGNlcHRpb25zOwotK2NhdCA+PmNvbmZkZWZzLmggPDxcX0FDRU9GCi0rI2RlZmluZSBTT0NJX0VY Q0VQVElPTlMgMQotK19BQ0VPRgotKwotK2ZpCi0rCi0rdGVzdCAieCRlbmFibGVfZXhjZXB0aW9u cyIgIT0geG5vICYmIGVuYWJsZV9leGNlcHRpb25zPXllcwotK3Rlc3QgIngkYXhfY3ZfYm9vc3Rf ZGF0ZV90aW1lIiAhPSB4bm8gJiYgZW5hYmxlX2V4Y2VwdGlvbnM9eWVzCi0rCi0rIyBDaGVjayBm b3IgaW5mbyBwYWdlcwotKyMgQ2hlY2sgd2hldGhlciAtLWVuYWJsZS1pbmZvLWRvYyB3YXMgZ2l2 ZW4uCi0raWYgdGVzdCAiJHtlbmFibGVfaW5mb19kb2Mrc2V0fSIgPSBzZXQ7IHRoZW4KLSsgIGVu YWJsZXZhbD0kZW5hYmxlX2luZm9fZG9jOwotK2ZpCi0rCi0rdGVzdCAieCRlbmFibGVfaW5mb19k b2MiICE9IHhubyAmJiBlbmFibGVfaW5mb19kb2M9eWVzCi0rCi0rCi0rIyBDaGVjayBmb3IgaHRt bC1kb2Mgc3dpdGNoCi0rIyBDaGVjayB3aGV0aGVyIC0tZW5hYmxlLWh0bWwtZG9jIHdhcyBnaXZl bi4KLStpZiB0ZXN0ICIke2VuYWJsZV9odG1sX2RvYytzZXR9IiA9IHNldDsgdGhlbgotKyAgZW5h YmxldmFsPSRlbmFibGVfaHRtbF9kb2M7Ci0rZmkKLSsKLSt0ZXN0ICJ4JGVuYWJsZV9odG1sX2Rv YyIgIT0geG5vICYmIGVuYWJsZV9odG1sX2RvYz15ZXMKLSsKLSsKLSsjIFByb3ZpZGUgLS13aXRo LWRvY2RpcgotKwotKyMgQ2hlY2sgd2hldGhlciAtLXdpdGgtZG9jZGlyIHdhcyBnaXZlbi4KLStp ZiB0ZXN0ICIke3dpdGhfZG9jZGlyK3NldH0iID0gc2V0OyB0aGVuCi0rICB3aXRodmFsPSR3aXRo X2RvY2RpcjsgRE9DX0RJUj0iJHdpdGh2YWwiCi0rZWxzZQotKyAgRE9DX0RJUj0iIgotK2ZpCi0r Ci0raWYgdGVzdCAieCRET0NfRElSIiAhPSB4OyB0aGVuCi0rICBkb2NkaXI9IiRET0NfRElSIgot K2Vsc2UKLSsgIGRvY2Rpcj0iJHtkYXRhZGlyfS9kb2MvJFBBQ0tBR0UtJFZFUlNJT04iCi0rZmkK LSsKLSsKLSsKLSsjIENoZWNrIGZvciBidXJyaWVkIGhlYWRlciBmaWxlcyAoZm9yIFNPQ0kgaXRz ZWxmKQotKyMgQ2hlY2sgd2hldGhlciAtLWVuYWJsZS1idXJyaWVkLWhlYWRlcnMgd2FzIGdpdmVu LgotK2lmIHRlc3QgIiR7ZW5hYmxlX2J1cnJpZWRfaGVhZGVycytzZXR9IiA9IHNldDsgdGhlbgot KyAgZW5hYmxldmFsPSRlbmFibGVfYnVycmllZF9oZWFkZXJzOyAgaWYgdGVzdCAiJGVuYWJsZXZh bCIgPSBubzsgdGhlbgotKyAgICAgIGVuYWJsZV9idXJyaWVkX2hlYWRlcnM9bm8KLSsgICBlbHNl Ci0rICAgICAgZW5hYmxlX2J1cnJpZWRfaGVhZGVycz15ZXMKLSsgICBmaQotK2Vsc2UKLSsgICBl bmFibGVfYnVycmllZF9oZWFkZXJzPW5vCi0rZmkKLSsKLSsjIFRlbXBvcmFyeSwgZm9yIHRoZSBS UE0gcGFja2FnZXMgZ2VuZXJhdGlvbgotK2VuYWJsZV9idXJyaWVkX2hlYWRlcnM9eWVzCi0rIGlm IHRlc3QgIngkZW5hYmxlX2J1cnJpZWRfaGVhZGVycyIgPSB4eWVzOyB0aGVuCi0rICBTT0NJX0hF QURFUlNfQlVSSUVEX1RSVUU9Ci0rICBTT0NJX0hFQURFUlNfQlVSSUVEX0ZBTFNFPScjJwotK2Vs c2UKLSsgIFNPQ0lfSEVBREVSU19CVVJJRURfVFJVRT0nIycKLSsgIFNPQ0lfSEVBREVSU19CVVJJ RURfRkFMU0U9Ci0rZmkKLSsKLSsKLStpZiB0ZXN0ICJ4JGVuYWJsZV9idXJyaWVkX2hlYWRlcnMi ID0geHllczsgdGhlbgotKyAgIENQUEZMQUdTPSItRFNPQ0lfSEVBREVSU19CVVJJRUQgJENQUEZM QUdTIgotK2ZpCi0rCi0rIyBDaGVjayBmb3IgYnVycmllZCBoZWFkZXIgZmlsZXMgKGZvciBNeVNR TCBjbGllbnQpCi0rIyBDaGVjayB3aGV0aGVyIC0tZW5hYmxlLW15c3FsLWJ1cnJpZWQtaGVhZGVy cyB3YXMgZ2l2ZW4uCi0raWYgdGVzdCAiJHtlbmFibGVfbXlzcWxfYnVycmllZF9oZWFkZXJzK3Nl dH0iID0gc2V0OyB0aGVuCi0rICBlbmFibGV2YWw9JGVuYWJsZV9teXNxbF9idXJyaWVkX2hlYWRl cnM7ICBpZiB0ZXN0ICIkZW5hYmxldmFsIiA9IG5vOyB0aGVuCi0rCWVuYWJsZV9teXNxbF9idXJy aWVkX2hlYWRlcnM9bm8KLSsgICBlbHNlCi0rCWVuYWJsZV9teXNxbF9idXJyaWVkX2hlYWRlcnM9 eWVzCi0rICAgZmkKLStlbHNlCi0rICAgZW5hYmxlX215c3FsX2J1cnJpZWRfaGVhZGVycz1ubwot K2ZpCi0rCi0rIyBUZW1wb3JhcnksIGZvciB0aGUgUlBNIHBhY2thZ2VzIGdlbmVyYXRpb24KLStl bmFibGVfbXlzcWxfYnVycmllZF9oZWFkZXJzPXllcwotKyBpZiB0ZXN0ICJ4JGVuYWJsZV9teXNx bF9idXJyaWVkX2hlYWRlcnMiID0geHllczsgdGhlbgotKyAgU09DSV9NWVNRTF9IRUFERVJTX0JV UklFRF9UUlVFPQotKyAgU09DSV9NWVNRTF9IRUFERVJTX0JVUklFRF9GQUxTRT0nIycKLStlbHNl Ci0rICBTT0NJX01ZU1FMX0hFQURFUlNfQlVSSUVEX1RSVUU9JyMnCi0rICBTT0NJX01ZU1FMX0hF QURFUlNfQlVSSUVEX0ZBTFNFPQotK2ZpCi0rCi0rCi0raWYgdGVzdCAieCRlbmFibGVfbXlzcWxf YnVycmllZF9oZWFkZXJzIiA9IHh5ZXM7IHRoZW4KLSsgICBDUFBGTEFHUz0iLURTT0NJX01ZU1FM X0hFQURFUlNfQlVSSUVEICRDUFBGTEFHUyIKLStmaQotKwotKyMgQ2hlY2sgZm9yIGJ1cnJpZWQg aGVhZGVyIGZpbGVzIChmb3IgUG9zdEdyZVNRTCBjbGllbnQpCi0rIyBDaGVjayB3aGV0aGVyIC0t ZW5hYmxlLXBvc3RncmVzcWwtYnVycmllZC1oZWFkZXJzIHdhcyBnaXZlbi4KLStpZiB0ZXN0ICIk e2VuYWJsZV9wb3N0Z3Jlc3FsX2J1cnJpZWRfaGVhZGVycytzZXR9IiA9IHNldDsgdGhlbgotKyAg ZW5hYmxldmFsPSRlbmFibGVfcG9zdGdyZXNxbF9idXJyaWVkX2hlYWRlcnM7ICBpZiB0ZXN0ICIk ZW5hYmxldmFsIiA9IG5vOyB0aGVuCi0rCWVuYWJsZV9wb3N0Z3Jlc3FsX2J1cnJpZWRfaGVhZGVy cz1ubwotKyAgIGVsc2UKLSsJZW5hYmxlX3Bvc3RncmVzcWxfYnVycmllZF9oZWFkZXJzPXllcwot KyAgIGZpCi0rZWxzZQotKyAgIGVuYWJsZV9wb3N0Z3Jlc3FsX2J1cnJpZWRfaGVhZGVycz1ubwot K2ZpCi0rCi0rIyBUZW1wb3JhcnksIGZvciB0aGUgUlBNIHBhY2thZ2VzIGdlbmVyYXRpb24KLStl bmFibGVfcG9zdGdyZXNxbF9idXJyaWVkX2hlYWRlcnM9eWVzCi0rIGlmIHRlc3QgIngkZW5hYmxl X3Bvc3RncmVzcWxfYnVycmllZF9oZWFkZXJzIiA9IHh5ZXM7IHRoZW4KLSsgIFNPQ0lfUE9TVEdS RVNRTF9IRUFERVJTX0JVUklFRF9UUlVFPQotKyAgU09DSV9QT1NUR1JFU1FMX0hFQURFUlNfQlVS SUVEX0ZBTFNFPScjJwotK2Vsc2UKLSsgIFNPQ0lfUE9TVEdSRVNRTF9IRUFERVJTX0JVUklFRF9U UlVFPScjJwotKyAgU09DSV9QT1NUR1JFU1FMX0hFQURFUlNfQlVSSUVEX0ZBTFNFPQotK2ZpCi0r Ci0rCi0raWYgdGVzdCAieCRlbmFibGVfcG9zdGdyZXNxbF9idXJyaWVkX2hlYWRlcnMiID0geHll czsgdGhlbgotKyAgIENQUEZMQUdTPSItRFNPQ0lfUE9TVEdSRVNRTF9IRUFERVJTX0JVUklFRCAk Q1BQRkxBR1MiCi0rZmkKLSsKLSsKLSsjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0rIyBCb29zdCAoU1RMIEV4dGVuc2lvbnM6IGh0dHA6 Ly93d3cuYm9vc3Qub3JnKQotKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KLSsKLSsKLSsjIENoZWNrIHdoZXRoZXIgLS13aXRoLWJvb3N0 IHdhcyBnaXZlbi4KLStpZiB0ZXN0ICIke3dpdGhfYm9vc3Qrc2V0fSIgPSBzZXQ7IHRoZW4KLSsg IHdpdGh2YWw9JHdpdGhfYm9vc3Q7Ci0rICAgICAgICAgICAgICAgIGlmIHRlc3QgIiR3aXRodmFs IiA9ICJubyI7IHRoZW4KLSsJCSAgICAgICAgICAgIHdhbnRfYm9vc3Q9Im5vIgotKyAgICAgICAg ICAgICAgICBlbGlmIHRlc3QgIiR3aXRodmFsIiA9ICJ5ZXMiOyB0aGVuCi0rICAgICAgICAgICAg ICAgICAgICB3YW50X2Jvb3N0PSJ5ZXMiCi0rICAgICAgICAgICAgICAgICAgICBhY19ib29zdF9w YXRoPSIiCi0rICAgICAgICAgICAgICAgIGVsc2UKLSsJCQkgICAgICAgIHdhbnRfYm9vc3Q9Inll cyIKLSsgICAgICAgICAgICAJCWFjX2Jvb3N0X3BhdGg9IiR3aXRodmFsIgotKwkJICAgICAgICBm aQotKwotK2Vsc2UKLSsgIHdhbnRfYm9vc3Q9InllcyIKLStmaQotKwotKwotKyMgICAgQUNfQ0FO T05JQ0FMX0JVSUxECi0rQk9PU1RfTURXX1ZFUlNJT049IjEtMzMtMSIKLStCT09TVExJQl9NRFdf VkVSU0lPTj0iMV8zM18xIgotKwotKwlpZiB0ZXN0ICJ4JHdhbnRfYm9vc3QiID0gInh5ZXMiOyB0 aGVuCi0rCQlib29zdF9saWJfdmVyc2lvbl9yZXE9MS4zMwotKwkJYm9vc3RfbGliX3ZlcnNpb25f cmVxX3Nob3J0ZW49YGV4cHIgJGJvb3N0X2xpYl92ZXJzaW9uX3JlcSA6ICdcKFswLTldKlwuWzAt OV0qXCknYAotKwkJYm9vc3RfbGliX3ZlcnNpb25fcmVxX21ham9yPWBleHByICRib29zdF9saWJf dmVyc2lvbl9yZXEgOiAnXChbMC05XSpcKSdgCi0rCQlib29zdF9saWJfdmVyc2lvbl9yZXFfbWlu b3I9YGV4cHIgJGJvb3N0X2xpYl92ZXJzaW9uX3JlcSA6ICdbMC05XSpcLlwoWzAtOV0qXCknYAot KwkJYm9vc3RfbGliX3ZlcnNpb25fcmVxX3N1Yl9taW5vcj1gZXhwciAkYm9vc3RfbGliX3ZlcnNp b25fcmVxIDogJ1swLTldKlwuWzAtOV0qXC5cKFswLTldKlwpJ2AKLSsJCWlmIHRlc3QgIngkYm9v c3RfbGliX3ZlcnNpb25fcmVxX3N1Yl9taW5vciIgPSAieCIgOyB0aGVuCi0rCQkJYm9vc3RfbGli X3ZlcnNpb25fcmVxX3N1Yl9taW5vcj0iMCIKLSsgICAgCWZpCi0rCQlXQU5UX0JPT1NUX1ZFUlNJ T049YGV4cHIgJGJvb3N0X2xpYl92ZXJzaW9uX3JlcV9tYWpvciBcKiAxMDAwMDAgXCsgICRib29z dF9saWJfdmVyc2lvbl9yZXFfbWlub3IgXCogMTAwIFwrICRib29zdF9saWJfdmVyc2lvbl9yZXFf c3ViX21pbm9yYAotKwkJeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciBi b29zdGxpYiA+PSAkYm9vc3RfbGliX3ZlcnNpb25fcmVxIiA+JjUKLSskYXNfZWNob19uICJjaGVj a2luZyBmb3IgYm9vc3RsaWIgPj0gJGJvb3N0X2xpYl92ZXJzaW9uX3JlcS4uLiAiID4mNjsgfQot KwkJc3VjY2VlZGVkPW5vCi0rCi0rCQkJCQkJCQkJCWlmIHRlc3QgLWQgL2xpYjY0OyB0aGVuCi0r CQkJQk9PU1RfTElCRElSVFlQRT0ibGliNjQiCi0rCQllbHNlCi0rCQkJQk9PU1RfTElCRElSVFlQ RT0ibGliIgotKwkJZmkKLSsJCWlmIHRlc3QgIiRhY19ib29zdF9wYXRoIiAhPSAiIjsgdGhlbgot KwkJCWlmIHRlc3QgIiRCT09TVF9MSUJESVJUWVBFIiA9PSAibGliNjQiOyB0aGVuCi0rCQkJCWlm IHRlc3QgLWQgIiRhY19ib29zdF9wYXRoLyRCT09TVF9MSUJESVJUWVBFIiAmJiB0ZXN0IC1yICIk YWNfYm9vc3RfcGF0aC8kQk9PU1RfTElCRElSVFlQRSI7IHRoZW4KLSsJICAgICAgICAgICAgICAg IEJPT1NUX0xJQlM9Ii1MJGFjX2Jvb3N0X3BhdGgvJEJPT1NUX0xJQkRJUlRZUEUiCi0rCQkJCWVs c2UKLSsgICAgICAgICAgICAgICAgICAgIEJPT1NUX0xJQlM9Ii1MJGFjX2Jvb3N0X3BhdGgvbGli IgotKwkJCQlmaQotKwkJCWVsc2UKLSsJCQkJQk9PU1RfTElCUz0iLUwkYWNfYm9vc3RfcGF0aC9s aWIiCi0rCQkJZmkKLSsJCQlCT09TVF9DRkxBR1M9Ii1JJGFjX2Jvb3N0X3BhdGgvaW5jbHVkZSIK LSsJCWVsc2UKLSsJCQlmb3IgYWNfYm9vc3RfcGF0aF90bXAgaW4gL3VzciAvdXNyL2xvY2FsIC9v cHQgL25hc3Rvb2xzL2Jvb3N0IDsgZG8KLSsJCQkJaWYgdGVzdCAtZCAiJGFjX2Jvb3N0X3BhdGhf dG1wL2luY2x1ZGUvYm9vc3QiICYmIHRlc3QgLXIgIiRhY19ib29zdF9wYXRoX3RtcC9pbmNsdWRl L2Jvb3N0IjsgdGhlbgotKwkJCQkJQk9PU1RfTElCUz0iLUwkYWNfYm9vc3RfcGF0aF90bXAvJEJP T1NUX0xJQkRJUlRZUEUiCi0rCQkJCQlCT09TVF9DRkxBR1M9Ii1JJGFjX2Jvb3N0X3BhdGhfdG1w L2luY2x1ZGUiCi0rCQkJCQlicmVhazsKLSsJCQkJZmkKLSsJCQkJaWYgdGVzdCAtZCAiJGFjX2Jv b3N0X3BhdGhfdG1wL2luY2x1ZGUvYm9vc3QtJEJPT1NUX01EV19WRVJTSU9OL2Jvb3N0IiAmJiB0 ZXN0IC1yICIkYWNfYm9vc3RfcGF0aF90bXAvaW5jbHVkZS9ib29zdC0kQk9PU1RfTURXX1ZFUlNJ T04vYm9vc3QiOyB0aGVuCi0rCQkJCQlCT09TVF9MSUJTPSItTCRhY19ib29zdF9wYXRoX3RtcC8k Qk9PU1RfTElCRElSVFlQRSIKLSsJCQkJCUJPT1NUX0NGTEFHUz0iLUkkYWNfYm9vc3RfcGF0aF90 bXAvaW5jbHVkZS9ib29zdC0kQk9PU1RfTURXX1ZFUlNJT04iCi0rCi0rCQkJCQkJCQkJCWlmIHRl c3QgLWQgIiRhY19ib29zdF9wYXRoX3RtcC9saWIiICYmIHRlc3QgLXIgIiRhY19ib29zdF9wYXRo X3RtcC9saWIiICYmIHRlc3QgISAtZCAiJGFjX2Jvb3N0X3BhdGhfdG1wL2xpYjY0IjsgdGhlbgot KwkJCQkJCUJPT1NUX0xJQlM9Ii1MJGFjX2Jvb3N0X3BhdGhfdG1wL2xpYiIKLSsJCQkJCQllY2hv ICJIYWNrOiAkQk9PU1RfTElCUyIKLSsJCQkJCWZpCi0rCQkJCQlicmVhazsKLSsJCQkJZmkKLSsJ CQlkb25lCi0rCQlmaQotKwotKwkJQ1BQRkxBR1NfU0FWRUQ9IiRDUFBGTEFHUyIKLSsJCUNQUEZM QUdTPSIkQ1BQRkxBR1MgJEJPT1NUX0NGTEFHUyIKLSsJCWV4cG9ydCBDUFBGTEFHUwotKwotKwkJ TERGTEFHU19TQVZFRD0iJExERkxBR1MiCi0rCQlMREZMQUdTPSIkTERGTEFHUyAkQk9PU1RfTElC UyIKLSsJCWV4cG9ydCBMREZMQUdTCi0rCi0rICAgICAJY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8 X0FDRU9GCi0rLyogY29uZmRlZnMuaC4gICovCi0rX0FDRU9GCi0rY2F0IGNvbmZkZWZzLmggPj5j b25mdGVzdC4kYWNfZXh0Ci0rY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotKy8qIGVu ZCBjb25mZGVmcy5oLiAgKi8KLSsKLSsjaW5jbHVkZSA8Ym9vc3QvdmVyc2lvbi5ocHA+Ci0rCi0r aW50Ci0rbWFpbiAoKQotK3sKLSsKLSsjaWYgQk9PU1RfVkVSU0lPTiA+PSAkV0FOVF9CT09TVF9W RVJTSU9OCi0rLy8gRXZlcnl0aGluZyBpcyBva2F5Ci0rI2Vsc2UKLSsjICBlcnJvciBCb29zdCB2 ZXJzaW9uIGlzIHRvbyBvbGQKLSsjZW5kaWYKLSsKLSsKLSsgIDsKLSsgIHJldHVybiAwOwotK30K LStfQUNFT0YKLStybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0Ci0raWYgeyAoYWNfdHJ5PSIkYWNf Y29tcGlsZSIKLStjYXNlICIoKCRhY190cnkiIGluCi0rICAqXCIqIHwgKlxgKiB8ICpcXCopIGFj X3RyeV9lY2hvPVwkYWNfdHJ5OzsKLSsgICopIGFjX3RyeV9lY2hvPSRhY190cnk7OwotK2VzYWMK LStldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCi0r JGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4mNQotKyAgKGV2YWwgIiRhY19jb21waWxlIikgMj5j b25mdGVzdC5lcjEKLSsgIGFjX3N0YXR1cz0kPwotKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3Qu ZXIxID5jb25mdGVzdC5lcnIKLSsgIHJtIC1mIGNvbmZ0ZXN0LmVyMQotKyAgY2F0IGNvbmZ0ZXN0 LmVyciA+JjUKLSsgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIg PiY1Ci0rICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJiB7Ci0rCSB0ZXN0IC16ICIkYWNfY3h4X3dl cnJvcl9mbGFnIiB8fAotKwkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgotKyAgICAgICB9ICYmIHRl c3QgLXMgY29uZnRlc3QuJGFjX29iamV4dDsgdGhlbgotKwotKyAgICAgICAgIHsgJGFzX2VjaG8g IiRhc19tZTokTElORU5POiByZXN1bHQ6IHllcyIgPiY1Ci0rJGFzX2VjaG8gInllcyIgPiY2OyB9 Ci0rCQkgc3VjY2VlZGVkPXllcwotKwkJIGZvdW5kX3N5c3RlbT15ZXMKLSsgICAgICAgICA6Ci0r Ci0rZWxzZQotKyAgJGFzX2VjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Ci0r c2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQotKwotKwotKwotK2ZpCi0rCi0rcm0g LWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0 Ci0rCi0rCQkJCQkJaWYgdGVzdCAieCRzdWNjZWVkZWQiICE9ICJ4eWVzIjsgdGhlbgotKwkJCV92 ZXJzaW9uPTAKLSsJCQlpZiB0ZXN0ICIkYWNfYm9vc3RfcGF0aCIgIT0gIiI7IHRoZW4KLSsgICAg ICAgICAgICAgICAgQk9PU1RfTElCUz0iLUwkYWNfYm9vc3RfcGF0aC8kQk9PU1RfTElCRElSVFlQ RSIKLSsJCQkJaWYgdGVzdCAtZCAiJGFjX2Jvb3N0X3BhdGgiICYmIHRlc3QgLXIgIiRhY19ib29z dF9wYXRoIjsgdGhlbgotKwkJCQkJZm9yIGkgaW4gYGxzIC1kICRhY19ib29zdF9wYXRoL2luY2x1 ZGUvYm9vc3QtKiAyPi9kZXYvbnVsbGA7IGRvCi0rCQkJCQkJX3ZlcnNpb25fdG1wPWBlY2hvICRp IHwgc2VkICJzIyRhY19ib29zdF9wYXRoIyMiIHwgc2VkICdzL1wvaW5jbHVkZVwvYm9vc3QtLy8n IHwgc2VkICdzL18vLi8nYAotKwkJCQkJCVZfQ0hFQ0s9YGV4cHIgJF92ZXJzaW9uX3RtcCBcPiAk X3ZlcnNpb25gCi0rCQkJCQkJaWYgdGVzdCAiJFZfQ0hFQ0siID0gIjEiIDsgdGhlbgotKwkJCQkJ CQlfdmVyc2lvbj0kX3ZlcnNpb25fdG1wCi0rCQkJCQkJZmkKLSsJCQkJCQlWRVJTSU9OX1VOREVS U0NPUkU9YGVjaG8gJF92ZXJzaW9uIHwgc2VkICdzL1wuL18vJ2AKLSsJCQkJCQlCT09TVF9DRkxB R1M9Ii1JJGFjX2Jvb3N0X3BhdGgvaW5jbHVkZS9ib29zdC0kVkVSU0lPTl9VTkRFUlNDT1JFIgot KwkJCQkJZG9uZQotKwkJCQlmaQotKwkJCWVsc2UKLSsJCQkJZm9yIGFjX2Jvb3N0X3BhdGggaW4g L3VzciAvdXNyL2xvY2FsIC9vcHQgOyBkbwotKwkJCQkJaWYgdGVzdCAtZCAiJGFjX2Jvb3N0X3Bh dGgiICYmIHRlc3QgLXIgIiRhY19ib29zdF9wYXRoIjsgdGhlbgotKwkJCQkJCWZvciBpIGluIGBs cyAtZCAkYWNfYm9vc3RfcGF0aC9pbmNsdWRlL2Jvb3N0LSogMj4vZGV2L251bGxgOyBkbwotKwkJ CQkJCQlfdmVyc2lvbl90bXA9YGVjaG8gJGkgfCBzZWQgInMjJGFjX2Jvb3N0X3BhdGgjIyIgfCBz ZWQgJ3MvXC9pbmNsdWRlXC9ib29zdC0vLycgfCBzZWQgJ3MvXy8uLydgCi0rCQkJCQkJCVZfQ0hF Q0s9YGV4cHIgJF92ZXJzaW9uX3RtcCBcPiAkX3ZlcnNpb25gCi0rCQkJCQkJCWlmIHRlc3QgIiRW X0NIRUNLIiA9ICIxIiA7IHRoZW4KLSsJCQkJCQkJCV92ZXJzaW9uPSRfdmVyc2lvbl90bXAKLSsJ CQkJCQkJCWJlc3RfcGF0aD0kYWNfYm9vc3RfcGF0aAotKwkJCQkJCQlmaQotKwkJCQkJCWRvbmUK LSsJCQkJCWZpCi0rCQkJCWRvbmUKLSsKLSsJCQkJVkVSU0lPTl9VTkRFUlNDT1JFPWBlY2hvICRf dmVyc2lvbiB8IHNlZCAncy9cLi9fLydgCi0rCQkJCUJPT1NUX0NGTEFHUz0iLUkkYmVzdF9wYXRo L2luY2x1ZGUvYm9vc3QtJFZFUlNJT05fVU5ERVJTQ09SRSIKLSsJCQkJQk9PU1RfTElCUz0iLUwk YmVzdF9wYXRoLyRCT09TVF9MSUJESVJUWVBFIgotKwotKwkgICAgCQlpZiB0ZXN0ICJ4JEJPT1NU X1JPT1QiICE9ICJ4IjsgdGhlbgotKwkJCQkJaWYgdGVzdCAtZCAiJEJPT1NUX1JPT1QiICYmIHRl c3QgLXIgIiRCT09TVF9ST09UIjsgdGhlbgotKwkJCQkJCXZlcnNpb25fZGlyPWBleHByIC8vJEJP T1NUX1JPT1QgOiAnLiovXCguKlwpJ2AKLSsJCQkJCQlzdGFnZV92ZXJzaW9uPWBlY2hvICR2ZXJz aW9uX2RpciB8IHNlZCAncy9ib29zdF8vLycgfCBzZWQgJ3MvXy8uL2cnYAotKwkJCQkJCXN0YWdl X3ZlcnNpb25fc2hvcnRlbj1gZXhwciAkc3RhZ2VfdmVyc2lvbiA6ICdcKFswLTldKlwuWzAtOV0q XCknYAotKwkJCQkJCVZfQ0hFQ0s9YGV4cHIgJHN0YWdlX3ZlcnNpb25fc2hvcnRlbiBcPlw9ICRf dmVyc2lvbmAKLSsJCQkJCQlpZiB0ZXN0ICIkVl9DSEVDSyIgPSAiMSIgOyB0aGVuCi0rCQkJCQkJ CXsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBXZSB3aWxsIHVzZSBhIHN0YWdlZCBib29zdCBs aWJyYXJ5IGZyb20gJEJPT1NUX1JPT1QiID4mNQotKyRhc19lY2hvICIkYXNfbWU6IFdlIHdpbGwg dXNlIGEgc3RhZ2VkIGJvb3N0IGxpYnJhcnkgZnJvbSAkQk9PU1RfUk9PVCIgPiY2O30KLSsJCQkJ CQkJQk9PU1RfQ0ZMQUdTPSItSSRCT09TVF9ST09UIgotKwkJCQkJCQlCT09TVF9MSUJTPSItTCRC T09TVF9ST09UL3N0YWdlLyRCT09TVF9MSUJESVJUWVBFIgotKwkJCQkJCWZpCi0rCQkJCQlmaQot KwkgICAgCQlmaQotKwkJCWZpCi0rCi0rCQkJQ1BQRkxBR1M9IiRDUFBGTEFHUyAkQk9PU1RfQ0ZM QUdTIgotKwkJCWV4cG9ydCBDUFBGTEFHUwotKwkJCUxERkxBR1M9IiRMREZMQUdTICRCT09TVF9M SUJTIgotKwkJCWV4cG9ydCBMREZMQUdTCi0rCi0rICAgICAJCWNhdCA+Y29uZnRlc3QuJGFjX2V4 dCA8PF9BQ0VPRgotKy8qIGNvbmZkZWZzLmguICAqLwotK19BQ0VPRgotK2NhdCBjb25mZGVmcy5o ID4+Y29uZnRlc3QuJGFjX2V4dAotK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLSsv KiBlbmQgY29uZmRlZnMuaC4gICovCi0rCi0rI2luY2x1ZGUgPGJvb3N0L3ZlcnNpb24uaHBwPgot KwotK2ludAotK21haW4gKCkKLSt7Ci0rCi0rI2lmIEJPT1NUX1ZFUlNJT04gPj0gJFdBTlRfQk9P U1RfVkVSU0lPTgotKy8vIEV2ZXJ5dGhpbmcgaXMgb2theQotKyNlbHNlCi0rIyAgZXJyb3IgQm9v c3QgdmVyc2lvbiBpcyB0b28gb2xkCi0rI2VuZGlmCi0rCi0rCi0rICA7Ci0rICByZXR1cm4gMDsK LSt9Ci0rX0FDRU9GCi0rcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dAotK2lmIHsgKGFjX3RyeT0i JGFjX2NvbXBpbGUiCi0rY2FzZSAiKCgkYWNfdHJ5IiBpbgotKyAgKlwiKiB8ICpcYCogfCAqXFwq KSBhY190cnlfZWNobz1cJGFjX3RyeTs7Ci0rICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKLStl c2FjCi0rZXZhbCBhY190cnlfZWNobz0iXCJcJGFzX21lOiRMSU5FTk86ICRhY190cnlfZWNob1wi IgotKyRhc19lY2hvICIkYWNfdHJ5X2VjaG8iKSA+JjUKLSsgIChldmFsICIkYWNfY29tcGlsZSIp IDI+Y29uZnRlc3QuZXIxCi0rICBhY19zdGF0dXM9JD8KLSsgIGdyZXAgLXYgJ14gKisnIGNvbmZ0 ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCi0rICBybSAtZiBjb25mdGVzdC5lcjEKLSsgIGNhdCBjb25m dGVzdC5lcnIgPiY1Ci0rICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0 dXMiID4mNQotKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYgewotKwkgdGVzdCAteiAiJGFjX2N4 eF93ZXJyb3JfZmxhZyIgfHwKLSsJIHRlc3QgISAtcyBjb25mdGVzdC5lcnIKLSsgICAgICAgfSAm JiB0ZXN0IC1zIGNvbmZ0ZXN0LiRhY19vYmpleHQ7IHRoZW4KLSsKLSsgICAgICAgICB7ICRhc19l Y2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiB5ZXMgKCRfdmVyc2lvbikiID4mNQotKyRhc19l Y2hvICJ5ZXMgKCRfdmVyc2lvbikiID4mNjsgfQotKwkJIHN1Y2NlZWRlZD15ZXMKLSsgICAgICAg ICA6Ci0rCi0rZWxzZQotKyAgJGFzX2VjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIg PiY1Ci0rc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQotKwotKwotKyAgICAgICAg IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IG5vICgkX3ZlcnNpb24pIiA+JjUK LSskYXNfZWNobyAibm8gKCRfdmVyc2lvbikiID4mNjsgfQotKyAgICAgICAgIDoKLSsKLStmaQot KwotK3JtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3Qu JGFjX2V4dAotKwkJZmkKLSsKLSsJCWlmIHRlc3QgIiRzdWNjZWVkZWQiICE9ICJ5ZXMiIDsgdGhl bgotKwkJCWlmIHRlc3QgIiRfdmVyc2lvbiIgPSAiMCIgOyB0aGVuCi0rCQkJCXsgeyAkYXNfZWNo byAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBXZSBjb3VsZCBub3QgZGV0ZWN0IHRoZSBib29zdCBs aWJyYXJpZXMgKHZlcnNpb24gJGJvb3N0X2xpYl92ZXJzaW9uX3JlcV9zaG9ydGVuIG9yIGhpZ2hl cikuIElmIHlvdSBoYXZlIGEgc3RhZ2VkIGJvb3N0IGxpYnJhcnkgKHN0aWxsIG5vdCBpbnN0YWxs ZWQpIHBsZWFzZSBzcGVjaWZ5IFwkQk9PU1RfUk9PVCBpbiB5b3VyIGVudmlyb25tZW50IGFuZCBk byBub3QgZ2l2ZSBhIFBBVEggdG8gLS13aXRoLWJvb3N0IG9wdGlvbi4gIElmIHlvdSBhcmUgc3Vy ZSB5b3UgaGF2ZSBib29zdCBpbnN0YWxsZWQsIHRoZW4gY2hlY2sgeW91ciB2ZXJzaW9uIG51bWJl ciBsb29raW5nIGluIDxib29zdC92ZXJzaW9uLmhwcD4uIiA+JjUKLSskYXNfZWNobyAiJGFzX21l OiBlcnJvcjogV2UgY291bGQgbm90IGRldGVjdCB0aGUgYm9vc3QgbGlicmFyaWVzICh2ZXJzaW9u ICRib29zdF9saWJfdmVyc2lvbl9yZXFfc2hvcnRlbiBvciBoaWdoZXIpLiBJZiB5b3UgaGF2ZSBh IHN0YWdlZCBib29zdCBsaWJyYXJ5IChzdGlsbCBub3QgaW5zdGFsbGVkKSBwbGVhc2Ugc3BlY2lm eSBcJEJPT1NUX1JPT1QgaW4geW91ciBlbnZpcm9ubWVudCBhbmQgZG8gbm90IGdpdmUgYSBQQVRI IHRvIC0td2l0aC1ib29zdCBvcHRpb24uICBJZiB5b3UgYXJlIHN1cmUgeW91IGhhdmUgYm9vc3Qg aW5zdGFsbGVkLCB0aGVuIGNoZWNrIHlvdXIgdmVyc2lvbiBudW1iZXIgbG9va2luZyBpbiA8Ym9v c3QvdmVyc2lvbi5ocHA+LiIgPiYyO30KLSsgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KLSsJ CQllbHNlCi0rCQkJCXsgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiAnWW91ciBi b29zdCBsaWJyYXJpZXMgc2VlbXMgdG8gb2xkICh2ZXJzaW9uICRfdmVyc2lvbikuICBXZSBuZWVk IGF0IGxlYXN0ICRib29zdF9saWJfdmVyc2lvbl9zaG9ydGVuJyIgPiY1Ci0rJGFzX2VjaG8gIiRh c19tZTogZXJyb3I6ICdZb3VyIGJvb3N0IGxpYnJhcmllcyBzZWVtcyB0byBvbGQgKHZlcnNpb24g JF92ZXJzaW9uKS4gIFdlIG5lZWQgYXQgbGVhc3QgJGJvb3N0X2xpYl92ZXJzaW9uX3Nob3J0ZW4n IiA+JjI7fQotKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQotKwkJCWZpCi0rCQllbHNlCi0r Ci0rCi0rCi0rY2F0ID4+Y29uZmRlZnMuaCA8PFxfQUNFT0YKLSsjZGVmaW5lIEhBVkVfQk9PU1Qg LyoqLwotK19BQ0VPRgotKwotKwotKwkJCXsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVj a2luZyB3aGV0aGVyIHRoZSBCb29zdDo6RmlsZXN5c3RlbSBsaWJyYXJ5IGlzIGF2YWlsYWJsZSIg PiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgd2hldGhlciB0aGUgQm9vc3Q6OkZpbGVzeXN0ZW0g bGlicmFyeSBpcyBhdmFpbGFibGUuLi4gIiA+JjY7IH0KLStpZiB0ZXN0ICIke2F4X2N2X2Jvb3N0 X2ZpbGVzeXN0ZW0rc2V0fSIgPSBzZXQ7IHRoZW4KLSsgICRhc19lY2hvX24gIihjYWNoZWQpICIg PiY2Ci0rZWxzZQotKwotKwkJCSBhY19leHQ9Y3BwCi0rYWNfY3BwPSckQ1hYQ1BQICRDUFBGTEFH UycKLSthY19jb21waWxlPSckQ1hYIC1jICRDWFhGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFj X2V4dCA+JjUnCi0rYWNfbGluaz0nJENYWCAtbyBjb25mdGVzdCRhY19leGVleHQgJENYWEZMQUdT ICRDUFBGTEFHUyAkTERGTEFHUyBjb25mdGVzdC4kYWNfZXh0ICRMSUJTID4mNScKLSthY19jb21w aWxlcl9nbnU9JGFjX2N2X2N4eF9jb21waWxlcl9nbnUKLSsKLSsJCQkgY2F0ID5jb25mdGVzdC4k YWNfZXh0IDw8X0FDRU9GCi0rLyogY29uZmRlZnMuaC4gICovCi0rX0FDRU9GCi0rY2F0IGNvbmZk ZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Ci0rY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VP RgotKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLSsjaW5jbHVkZSA8Ym9vc3QvZmlsZXN5c3RlbS9w YXRoLmhwcD4KLStpbnQKLSttYWluICgpCi0rewotK3VzaW5nIG5hbWVzcGFjZSBib29zdDo6Zmls ZXN5c3RlbTsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhdGggbXlfcGF0 aCggImZvby9iYXIvZGF0YS50eHQiICk7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICByZXR1cm4gMDsKLSsgIDsKLSsgIHJldHVybiAwOwotK30KLStfQUNFT0YKLStybSAtZiBj b25mdGVzdC4kYWNfb2JqZXh0Ci0raWYgeyAoYWNfdHJ5PSIkYWNfY29tcGlsZSIKLStjYXNlICIo KCRhY190cnkiIGluCi0rICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5 OzsKLSsgICopIGFjX3RyeV9lY2hvPSRhY190cnk7OwotK2VzYWMKLStldmFsIGFjX3RyeV9lY2hv PSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCi0rJGFzX2VjaG8gIiRhY190cnlf ZWNobyIpID4mNQotKyAgKGV2YWwgIiRhY19jb21waWxlIikgMj5jb25mdGVzdC5lcjEKLSsgIGFj X3N0YXR1cz0kPwotKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIK LSsgIHJtIC1mIGNvbmZ0ZXN0LmVyMQotKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKLSsgICRhc19l Y2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0rICAoZXhpdCAkYWNf c3RhdHVzKTsgfSAmJiB7Ci0rCSB0ZXN0IC16ICIkYWNfY3h4X3dlcnJvcl9mbGFnIiB8fAotKwkg dGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgotKyAgICAgICB9ICYmIHRlc3QgLXMgY29uZnRlc3QuJGFj X29iamV4dDsgdGhlbgotKyAgYXhfY3ZfYm9vc3RfZmlsZXN5c3RlbT15ZXMKLStlbHNlCi0rICAk YXNfZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLStzZWQgJ3MvXi98IC8n IGNvbmZ0ZXN0LiRhY19leHQgPiY1Ci0rCi0rCWF4X2N2X2Jvb3N0X2ZpbGVzeXN0ZW09bm8KLStm aQotKwotK3JtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRl c3QuJGFjX2V4dAotKwkJIAkJICAgICAgICAJCQlhY19leHQ9Y3BwCi0rYWNfY3BwPSckQ1hYQ1BQ ICRDUFBGTEFHUycKLSthY19jb21waWxlPSckQ1hYIC1jICRDWFhGTEFHUyAkQ1BQRkxBR1MgY29u ZnRlc3QuJGFjX2V4dCA+JjUnCi0rYWNfbGluaz0nJENYWCAtbyBjb25mdGVzdCRhY19leGVleHQg JENYWEZMQUdTICRDUFBGTEFHUyAkTERGTEFHUyBjb25mdGVzdC4kYWNfZXh0ICRMSUJTID4mNScK LSthY19jb21waWxlcl9nbnU9JGFjX2N2X2N4eF9jb21waWxlcl9nbnUKLSsKLSsKLStmaQotK3sg JGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRheF9jdl9ib29zdF9maWxlc3lzdGVt IiA+JjUKLSskYXNfZWNobyAiJGF4X2N2X2Jvb3N0X2ZpbGVzeXN0ZW0iID4mNjsgfQotKwkJCWlm IHRlc3QgIiRheF9jdl9ib29zdF9maWxlc3lzdGVtIiA9ICJ5ZXMiOyB0aGVuCi0rCi0rY2F0ID4+ Y29uZmRlZnMuaCA8PFxfQUNFT0YKLSsjZGVmaW5lIEhBVkVfQk9PU1RfRklMRVNZU1RFTSAvKiov Ci0rX0FDRU9GCi0rCi0rCQkJCUJOPWJvb3N0X2ZpbGVzeXN0ZW0KLSsJCQkJZm9yIGF4X2xpYiBp biAkQk4gJEJOLSRDQyAkQk4tJENDLW10ICRCTi0kQ0MtbXQtcyAkQk4tJENDLXMgXAotKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGxpYiRCTiBsaWIkQk4tJENDIGxpYiRCTi0kQ0MtbXQg bGliJEJOLSRDQy1tdC1zIFwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWIkQk4t JENDLXMgJEJOLW1ndyAkQk4tbWd3LW10ICRCTi1tZ3ctbXQtcyBcCi0rICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgJEJOLW1ndy1zICRCTi0kQ0MtbXQtJEJPT1NUTElCX01EV19WRVJTSU9O IDsgZG8KLSsJCQkJICAgIGFzX2FjX0xpYj1gJGFzX2VjaG8gImFjX2N2X2xpYl8kYXhfbGliJydf bWFpbiIgfCAkYXNfdHJfc2hgCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5n IGZvciBtYWluIGluIC1sJGF4X2xpYiIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yIG1h aW4gaW4gLWwkYXhfbGliLi4uICIgPiY2OyB9Ci0raWYgeyBhc192YXI9JGFzX2FjX0xpYjsgZXZh bCAidGVzdCBcIlwkeyRhc192YXIrc2V0fVwiID0gc2V0IjsgfTsgdGhlbgotKyAgJGFzX2VjaG9f biAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rICBhY19jaGVja19saWJfc2F2ZV9MSUJTPSRMSUJT Ci0rTElCUz0iLWwkYXhfbGliICAkTElCUyIKLStjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNF T0YKLSsvKiBjb25mZGVmcy5oLiAgKi8KLStfQUNFT0YKLStjYXQgY29uZmRlZnMuaCA+PmNvbmZ0 ZXN0LiRhY19leHQKLStjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0rLyogZW5kIGNv bmZkZWZzLmguICAqLwotKwotKwotK2ludAotK21haW4gKCkKLSt7Ci0rcmV0dXJuIG1haW4gKCk7 Ci0rICA7Ci0rICByZXR1cm4gMDsKLSt9Ci0rX0FDRU9GCi0rcm0gLWYgY29uZnRlc3QuJGFjX29i amV4dCBjb25mdGVzdCRhY19leGVleHQKLStpZiB7IChhY190cnk9IiRhY19saW5rIgotK2Nhc2Ug IigoJGFjX3RyeSIgaW4KLSsgICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190 cnk7OwotKyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7Ci0rZXNhYwotK2V2YWwgYWNfdHJ5X2Vj aG89IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIKLSskYXNfZWNobyAiJGFjX3Ry eV9lY2hvIikgPiY1Ci0rICAoZXZhbCAiJGFjX2xpbmsiKSAyPmNvbmZ0ZXN0LmVyMQotKyAgYWNf c3RhdHVzPSQ/Ci0rICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgot KyAgcm0gLWYgY29uZnRlc3QuZXIxCi0rICBjYXQgY29uZnRlc3QuZXJyID4mNQotKyAgJGFzX2Vj aG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSsgIChleGl0ICRhY19z dGF0dXMpOyB9ICYmIHsKLSsJIHRlc3QgLXogIiRhY19jeHhfd2Vycm9yX2ZsYWciIHx8Ci0rCSB0 ZXN0ICEgLXMgY29uZnRlc3QuZXJyCi0rICAgICAgIH0gJiYgdGVzdCAtcyBjb25mdGVzdCRhY19l eGVleHQgJiYgewotKwkgdGVzdCAiJGNyb3NzX2NvbXBpbGluZyIgPSB5ZXMgfHwKLSsJICRhc190 ZXN0X3ggY29uZnRlc3QkYWNfZXhlZXh0Ci0rICAgICAgIH07IHRoZW4KLSsgIGV2YWwgIiRhc19h Y19MaWI9eWVzIgotK2Vsc2UKLSsgICRhc19lY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdh czoiID4mNQotK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKLSsKLSsJZXZhbCAi JGFzX2FjX0xpYj1ubyIKLStmaQotKwotK3JtIC1yZiBjb25mdGVzdC5kU1lNCi0rcm0gLWYgY29y ZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdF9pcGE4X2NvbmZ0ZXN0 Lm9vIFwKLSsgICAgICBjb25mdGVzdCRhY19leGVleHQgY29uZnRlc3QuJGFjX2V4dAotK0xJQlM9 JGFjX2NoZWNrX2xpYl9zYXZlX0xJQlMKLStmaQotK2FjX3Jlcz1gZXZhbCAnYXNfdmFsPSR7JyRh c19hY19MaWInfQotKwkJICRhc19lY2hvICIkYXNfdmFsIidgCi0rCSAgICAgICB7ICRhc19lY2hv ICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfcmVzIiA+JjUKLSskYXNfZWNobyAiJGFjX3Jl cyIgPiY2OyB9Ci0rYXNfdmFsPWBldmFsICdhc192YWw9JHsnJGFzX2FjX0xpYid9Ci0rCQkgJGFz X2VjaG8gIiRhc192YWwiJ2AKLSsgICBpZiB0ZXN0ICJ4JGFzX3ZhbCIgPSB4IiJ5ZXM7IHRoZW4K LSsgIEJPT1NUX0ZJTEVTWVNURU1fTElCPSItbCRheF9saWIiICBsaW5rX2ZpbGVzeXN0ZW09Inll cyIgYnJlYWsKLStlbHNlCi0rICBsaW5rX2ZpbGVzeXN0ZW09Im5vIgotK2ZpCi0rCi0rICAJCQkJ ZG9uZQotKwkJCQlpZiB0ZXN0ICJ4JGxpbmtfZmlsZXN5c3RlbSIgPSAieG5vIjsgdGhlbgotKwkJ CQkJeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IENvdWxkIG5vdCBsaW5rIGFnYWluc3QgJGF4 X2xpYiAhIiA+JjUKLSskYXNfZWNobyAiJGFzX21lOiBDb3VsZCBub3QgbGluayBhZ2FpbnN0ICRh eF9saWIgISIgPiY2O30KLSsJCQkJZmkKLSsJCQlmaQotKwotKwkJCXsgJGFzX2VjaG8gIiRhc19t ZTokTElORU5POiBjaGVja2luZyB3aGV0aGVyIHRoZSBCb29zdDo6UHJvZ3JhbV9PcHRpb25zIGxp YnJhcnkgaXMgYXZhaWxhYmxlIiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyB3aGV0aGVyIHRo ZSBCb29zdDo6UHJvZ3JhbV9PcHRpb25zIGxpYnJhcnkgaXMgYXZhaWxhYmxlLi4uICIgPiY2OyB9 Ci0raWYgdGVzdCAiJHtheF9jdl9ib29zdF9wcm9ncmFtX29wdGlvbnMrc2V0fSIgPSBzZXQ7IHRo ZW4KLSsgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci0rZWxzZQotKwotKyAgICAgICAgICAg ICAgICAgICAgICAgICAgIGFjX2V4dD1jcHAKLSthY19jcHA9JyRDWFhDUFAgJENQUEZMQUdTJwot K2FjX2NvbXBpbGU9JyRDWFggLWMgJENYWEZMQUdTICRDUFBGTEFHUyBjb25mdGVzdC4kYWNfZXh0 ID4mNScKLSthY19saW5rPSckQ1hYIC1vIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAkQ1hYRkxBR1MgJENQ UEZMQUdTICRMREZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgJExJQlMgPiY1JwotK2FjX2NvbXBpbGVy X2dudT0kYWNfY3ZfY3h4X2NvbXBpbGVyX2dudQotKwotKwkJCSAgICAgICAgICAgICAgIGNhdCA+ Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotKy8qIGNvbmZkZWZzLmguICAqLwotK19BQ0VPRgot K2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAotK2NhdCA+PmNvbmZ0ZXN0LiRhY19l eHQgPDxfQUNFT0YKLSsvKiBlbmQgY29uZmRlZnMuaC4gICovCi0rI2luY2x1ZGUgPGJvb3N0L3By b2dyYW1fb3B0aW9ucy5ocHA+Ci0raW50Ci0rbWFpbiAoKQotK3sKLStib29zdDo6cHJvZ3JhbV9v cHRpb25zOjpvcHRpb25zX2Rlc2NyaXB0aW9uIGdlbmVyaWMoIkdlbmVyaWMgb3B0aW9ucyIpOwot KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDA7Ci0rICA7Ci0rICBy ZXR1cm4gMDsKLSt9Ci0rX0FDRU9GCi0rcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dAotK2lmIHsg KGFjX3RyeT0iJGFjX2NvbXBpbGUiCi0rY2FzZSAiKCgkYWNfdHJ5IiBpbgotKyAgKlwiKiB8ICpc YCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7Ci0rICAqKSBhY190cnlfZWNobz0kYWNf dHJ5OzsKLStlc2FjCi0rZXZhbCBhY190cnlfZWNobz0iXCJcJGFzX21lOiRMSU5FTk86ICRhY190 cnlfZWNob1wiIgotKyRhc19lY2hvICIkYWNfdHJ5X2VjaG8iKSA+JjUKLSsgIChldmFsICIkYWNf Y29tcGlsZSIpIDI+Y29uZnRlc3QuZXIxCi0rICBhY19zdGF0dXM9JD8KLSsgIGdyZXAgLXYgJ14g KisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCi0rICBybSAtZiBjb25mdGVzdC5lcjEKLSsg IGNhdCBjb25mdGVzdC5lcnIgPiY1Ci0rICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9 ICRhY19zdGF0dXMiID4mNQotKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYgewotKwkgdGVzdCAt eiAiJGFjX2N4eF93ZXJyb3JfZmxhZyIgfHwKLSsJIHRlc3QgISAtcyBjb25mdGVzdC5lcnIKLSsg ICAgICAgfSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0LiRhY19vYmpleHQ7IHRoZW4KLSsgIGF4X2N2X2Jv b3N0X3Byb2dyYW1fb3B0aW9ucz15ZXMKLStlbHNlCi0rICAkYXNfZWNobyAiJGFzX21lOiBmYWls ZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLStzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1 Ci0rCi0rCWF4X2N2X2Jvb3N0X3Byb2dyYW1fb3B0aW9ucz1ubwotK2ZpCi0rCi0rcm0gLWYgY29y ZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0Ci0rCQkJ ICAgICAgICAgICAgICAgYWNfZXh0PWNwcAotK2FjX2NwcD0nJENYWENQUCAkQ1BQRkxBR1MnCi0r YWNfY29tcGlsZT0nJENYWCAtYyAkQ1hYRkxBR1MgJENQUEZMQUdTIGNvbmZ0ZXN0LiRhY19leHQg PiY1JwotK2FjX2xpbms9JyRDWFggLW8gY29uZnRlc3QkYWNfZXhlZXh0ICRDWFhGTEFHUyAkQ1BQ RkxBR1MgJExERkxBR1MgY29uZnRlc3QuJGFjX2V4dCAkTElCUyA+JjUnCi0rYWNfY29tcGlsZXJf Z251PSRhY19jdl9jeHhfY29tcGlsZXJfZ251Ci0rCi0rCi0rZmkKLSt7ICRhc19lY2hvICIkYXNf bWU6JExJTkVOTzogcmVzdWx0OiAkYXhfY3ZfYm9vc3RfcHJvZ3JhbV9vcHRpb25zIiA+JjUKLSsk YXNfZWNobyAiJGF4X2N2X2Jvb3N0X3Byb2dyYW1fb3B0aW9ucyIgPiY2OyB9Ci0rCQkJaWYgdGVz dCAiJGF4X2N2X2Jvb3N0X3Byb2dyYW1fb3B0aW9ucyIgPSB5ZXM7IHRoZW4KLSsKLStjYXQgPj5j b25mZGVmcy5oIDw8XF9BQ0VPRgotKyNkZWZpbmUgSEFWRV9CT09TVF9QUk9HUkFNX09QVElPTlMg LyoqLwotK19BQ0VPRgotKwotKwkJCQlCTj1ib29zdF9wcm9ncmFtX29wdGlvbnMKLSsJCQkJZm9y IGF4X2xpYiBpbiAkQk4gJEJOLSRDQyAkQk4tJENDLW10ICRCTi0kQ0MtbXQtcyAkQk4tJENDLXMg XAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpYiRCTiBsaWIkQk4tJENDIGxpYiRC Ti0kQ0MtbXQgbGliJEJOLSRDQy1tdC1zIFwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBsaWIkQk4tJENDLXMgJEJOLW1ndyAkQk4tbWd3LW10IFwKLSsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAkQk4tbWd3LW10LXMgJEJOLW1ndy1zIFwKLSsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAkQk4tJENDLW10LSRCT09TVExJQl9NRFdfVkVSU0lPTjsgZG8KLSsJCQkJICAg IGFzX2FjX0xpYj1gJGFzX2VjaG8gImFjX2N2X2xpYl8kYXhfbGliJydfbWFpbiIgfCAkYXNfdHJf c2hgCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciBtYWluIGluIC1s JGF4X2xpYiIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yIG1haW4gaW4gLWwkYXhfbGli Li4uICIgPiY2OyB9Ci0raWYgeyBhc192YXI9JGFzX2FjX0xpYjsgZXZhbCAidGVzdCBcIlwkeyRh c192YXIrc2V0fVwiID0gc2V0IjsgfTsgdGhlbgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+ JjYKLStlbHNlCi0rICBhY19jaGVja19saWJfc2F2ZV9MSUJTPSRMSUJTCi0rTElCUz0iLWwkYXhf bGliICAkTElCUyIKLStjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLSsvKiBjb25mZGVm cy5oLiAgKi8KLStfQUNFT0YKLStjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKLStj YXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0rLyogZW5kIGNvbmZkZWZzLmguICAqLwot KwotKwotK2ludAotK21haW4gKCkKLSt7Ci0rcmV0dXJuIG1haW4gKCk7Ci0rICA7Ci0rICByZXR1 cm4gMDsKLSt9Ci0rX0FDRU9GCi0rcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdCRh Y19leGVleHQKLStpZiB7IChhY190cnk9IiRhY19saW5rIgotK2Nhc2UgIigoJGFjX3RyeSIgaW4K LSsgICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OwotKyAgKikgYWNf dHJ5X2VjaG89JGFjX3RyeTs7Ci0rZXNhYwotK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTok TElORU5POiAkYWNfdHJ5X2VjaG9cIiIKLSskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1Ci0r ICAoZXZhbCAiJGFjX2xpbmsiKSAyPmNvbmZ0ZXN0LmVyMQotKyAgYWNfc3RhdHVzPSQ/Ci0rICBn cmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgotKyAgcm0gLWYgY29uZnRl c3QuZXIxCi0rICBjYXQgY29uZnRlc3QuZXJyID4mNQotKyAgJGFzX2VjaG8gIiRhc19tZTokTElO RU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSsgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmIHsK LSsJIHRlc3QgLXogIiRhY19jeHhfd2Vycm9yX2ZsYWciIHx8Ci0rCSB0ZXN0ICEgLXMgY29uZnRl c3QuZXJyCi0rICAgICAgIH0gJiYgdGVzdCAtcyBjb25mdGVzdCRhY19leGVleHQgJiYgewotKwkg dGVzdCAiJGNyb3NzX2NvbXBpbGluZyIgPSB5ZXMgfHwKLSsJICRhc190ZXN0X3ggY29uZnRlc3Qk YWNfZXhlZXh0Ci0rICAgICAgIH07IHRoZW4KLSsgIGV2YWwgIiRhc19hY19MaWI9eWVzIgotK2Vs c2UKLSsgICRhc19lY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQotK3NlZCAn cy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKLSsKLSsJZXZhbCAiJGFzX2FjX0xpYj1ubyIK LStmaQotKwotK3JtIC1yZiBjb25mdGVzdC5kU1lNCi0rcm0gLWYgY29yZSBjb25mdGVzdC5lcnIg Y29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdF9pcGE4X2NvbmZ0ZXN0Lm9vIFwKLSsgICAgICBj b25mdGVzdCRhY19leGVleHQgY29uZnRlc3QuJGFjX2V4dAotK0xJQlM9JGFjX2NoZWNrX2xpYl9z YXZlX0xJQlMKLStmaQotK2FjX3Jlcz1gZXZhbCAnYXNfdmFsPSR7JyRhc19hY19MaWInfQotKwkJ ICRhc19lY2hvICIkYXNfdmFsIidgCi0rCSAgICAgICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVO TzogcmVzdWx0OiAkYWNfcmVzIiA+JjUKLSskYXNfZWNobyAiJGFjX3JlcyIgPiY2OyB9Ci0rYXNf dmFsPWBldmFsICdhc192YWw9JHsnJGFzX2FjX0xpYid9Ci0rCQkgJGFzX2VjaG8gIiRhc192YWwi J2AKLSsgICBpZiB0ZXN0ICJ4JGFzX3ZhbCIgPSB4IiJ5ZXM7IHRoZW4KLSsgIEJPT1NUX1BST0dS QU1fT1BUSU9OU19MSUI9Ii1sJGF4X2xpYiIgIGxpbmtfcHJvZ3JhbV9vcHRpb25zPSJ5ZXMiIGJy ZWFrCi0rZWxzZQotKyAgbGlua19wcm9ncmFtX29wdGlvbnM9Im5vIgotK2ZpCi0rCi0rICAJCQkJ ZG9uZQotKwkJCQlpZiB0ZXN0ICJ4JGxpbmtfcHJvZ3JhbV9vcHRpb25zPSJubyIiID0gInhubyI7 IHRoZW4KLSsJCQkJCXsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBDb3VsZCBub3QgbGluayBh Z2FpbnN0ICRheF9saWIgISIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogQ291bGQgbm90IGxpbmsg YWdhaW5zdCAkYXhfbGliICEiID4mNjt9Ci0rCQkJCWZpCi0rCQkJZmkKLSsKLSsJCQl7ICRhc19l Y2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgd2hldGhlciB0aGUgQm9vc3Q6OlRocmVhZCBs aWJyYXJ5IGlzIGF2YWlsYWJsZSIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgd2hldGhlciB0 aGUgQm9vc3Q6OlRocmVhZCBsaWJyYXJ5IGlzIGF2YWlsYWJsZS4uLiAiID4mNjsgfQotK2lmIHRl c3QgIiR7YXhfY3ZfYm9vc3RfdGhyZWFkK3NldH0iID0gc2V0OyB0aGVuCi0rICAkYXNfZWNob19u ICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsKLSsJCQkgYWNfZXh0PWNwcAotK2FjX2NwcD0nJENY WENQUCAkQ1BQRkxBR1MnCi0rYWNfY29tcGlsZT0nJENYWCAtYyAkQ1hYRkxBR1MgJENQUEZMQUdT IGNvbmZ0ZXN0LiRhY19leHQgPiY1JwotK2FjX2xpbms9JyRDWFggLW8gY29uZnRlc3QkYWNfZXhl ZXh0ICRDWFhGTEFHUyAkQ1BQRkxBR1MgJExERkxBR1MgY29uZnRlc3QuJGFjX2V4dCAkTElCUyA+ JjUnCi0rYWNfY29tcGlsZXJfZ251PSRhY19jdl9jeHhfY29tcGlsZXJfZ251Ci0rCi0rCQkJIENY WEZMQUdTX1NBVkU9JENYWEZMQUdTCi0rCi0rCQkJIGlmIHRlc3QgIngkYnVpbGRfb3MiID0gInhz b2xhcmlzIiA7IHRoZW4KLSsgIAkJCQkgQ1hYRkxBR1M9Ii1wdGhyZWFkcyAkQ1hYRkxBR1MiCi0r CQkJIGVsaWYgdGVzdCAieCRidWlsZF9vcyIgPSAieG1pbmczMiIgOyB0aGVuCi0rCQkJCSBDWFhG TEFHUz0iLW10aHJlYWRzICRDWFhGTEFHUyIKLSsJCQkgZWxzZQotKwkJCQlDWFhGTEFHUz0iLXB0 aHJlYWQgJENYWEZMQUdTIgotKwkJCSBmaQotKwkJCSBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxf QUNFT0YKLSsvKiBjb25mZGVmcy5oLiAgKi8KLStfQUNFT0YKLStjYXQgY29uZmRlZnMuaCA+PmNv bmZ0ZXN0LiRhY19leHQKLStjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0rLyogZW5k IGNvbmZkZWZzLmguICAqLwotKyNpbmNsdWRlIDxib29zdC90aHJlYWQvdGhyZWFkLmhwcD4KLStp bnQKLSttYWluICgpCi0rewotK2Jvb3N0Ojp0aHJlYWRfZ3JvdXAgdGhyZHM7Ci0rICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gMDsKLSsgIDsKLSsgIHJldHVybiAwOwot K30KLStfQUNFT0YKLStybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0Ci0raWYgeyAoYWNfdHJ5PSIk YWNfY29tcGlsZSIKLStjYXNlICIoKCRhY190cnkiIGluCi0rICAqXCIqIHwgKlxgKiB8ICpcXCop IGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKLSsgICopIGFjX3RyeV9lY2hvPSRhY190cnk7OwotK2Vz YWMKLStldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIi Ci0rJGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4mNQotKyAgKGV2YWwgIiRhY19jb21waWxlIikg Mj5jb25mdGVzdC5lcjEKLSsgIGFjX3N0YXR1cz0kPwotKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRl c3QuZXIxID5jb25mdGVzdC5lcnIKLSsgIHJtIC1mIGNvbmZ0ZXN0LmVyMQotKyAgY2F0IGNvbmZ0 ZXN0LmVyciA+JjUKLSsgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1 cyIgPiY1Ci0rICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJiB7Ci0rCSB0ZXN0IC16ICIkYWNfY3h4 X3dlcnJvcl9mbGFnIiB8fAotKwkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgotKyAgICAgICB9ICYm IHRlc3QgLXMgY29uZnRlc3QuJGFjX29iamV4dDsgdGhlbgotKyAgYXhfY3ZfYm9vc3RfdGhyZWFk PXllcwotK2Vsc2UKLSsgICRhc19lY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4m NQotK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKLSsKLSsJYXhfY3ZfYm9vc3Rf dGhyZWFkPW5vCi0rZmkKLSsKLStybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNf b2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKLSsJCQkgQ1hYRkxBR1M9JENYWEZMQUdTX1NBVkUKLSsJ CQkgYWNfZXh0PWNwcAotK2FjX2NwcD0nJENYWENQUCAkQ1BQRkxBR1MnCi0rYWNfY29tcGlsZT0n JENYWCAtYyAkQ1hYRkxBR1MgJENQUEZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgPiY1JwotK2FjX2xp bms9JyRDWFggLW8gY29uZnRlc3QkYWNfZXhlZXh0ICRDWFhGTEFHUyAkQ1BQRkxBR1MgJExERkxB R1MgY29uZnRlc3QuJGFjX2V4dCAkTElCUyA+JjUnCi0rYWNfY29tcGlsZXJfZ251PSRhY19jdl9j eHhfY29tcGlsZXJfZ251Ci0rCi0rCi0rZmkKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzog cmVzdWx0OiAkYXhfY3ZfYm9vc3RfdGhyZWFkIiA+JjUKLSskYXNfZWNobyAiJGF4X2N2X2Jvb3N0 X3RocmVhZCIgPiY2OyB9Ci0rCQkJaWYgdGVzdCAieCRheF9jdl9ib29zdF90aHJlYWQiID0gInh5 ZXMiOyB0aGVuCi0rICAgICAgICAgICAgICAgaWYgdGVzdCAieCRidWlsZF9vcyIgPSAieHNvbGFy aXMiIDsgdGhlbgotKyAJCQkJICBCT09TVF9DRkxBR1M9Ii1wdGhyZWFkcyAkQk9PU1RfQ0ZMQUdT IgotKwkJCSAgIGVsaWYgdGVzdCAieCRidWlsZF9vcyIgPSAieG1pbmczMiIgOyB0aGVuCi0rIAkJ CQkgIEJPT1NUX0NGTEFHUz0iLW10aHJlYWRzICRCT09TVF9DRkxBR1MiCi0rCQkJICAgZWxzZQot KwkJCQkgIEJPT1NUX0NGTEFHUz0iLXB0aHJlYWQgJEJPT1NUX0NGTEFHUyIKLSsJCQkgICBmaQot KwotKwotKwotK2NhdCA+PmNvbmZkZWZzLmggPDxcX0FDRU9GCi0rI2RlZmluZSBIQVZFX0JPT1NU X1RIUkVBRCAvKiovCi0rX0FDRU9GCi0rCi0rCQkJCUJOPWJvb3N0X3RocmVhZAotKwkJCQlmb3Ig YXhfbGliIGluICRCTiAkQk4tJENDICRCTi0kQ0MtbXQgJEJOLSRDQy1tdC1zICRCTi0kQ0MtcyBc Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGliJEJOIGxpYiRCTi0kQ0MgbGliJEJO LSRDQy1tdCBsaWIkQk4tJENDLW10LXMgXAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGxpYiRCTi0kQ0MtcyAkQk4tbWd3ICRCTi1tZ3ctbXQgXAotKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICRCTi1tZ3ctbXQtcyAkQk4tbWd3LXMgIFwKLSsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAkQk4tJENDLW10LSRCT09TVExJQl9NRFdfVkVSU0lPTiA7IGRvCi0rCQkJCSAg ICBhc19hY19MaWI9YCRhc19lY2hvICJhY19jdl9saWJfJGF4X2xpYicnX21haW4iIHwgJGFzX3Ry X3NoYAotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgbWFpbiBpbiAt bCRheF9saWIiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIGZvciBtYWluIGluIC1sJGF4X2xp Yi4uLiAiID4mNjsgfQotK2lmIHsgYXNfdmFyPSRhc19hY19MaWI7IGV2YWwgInRlc3QgXCJcJHsk YXNfdmFyK3NldH1cIiA9IHNldCI7IH07IHRoZW4KLSsgICRhc19lY2hvX24gIihjYWNoZWQpICIg PiY2Ci0rZWxzZQotKyAgYWNfY2hlY2tfbGliX3NhdmVfTElCUz0kTElCUwotK0xJQlM9Ii1sJGF4 X2xpYiAgJExJQlMiCi0rY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0rLyogY29uZmRl ZnMuaC4gICovCi0rX0FDRU9GCi0rY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Ci0r Y2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8K LSsKLSsKLStpbnQKLSttYWluICgpCi0rewotK3JldHVybiBtYWluICgpOwotKyAgOwotKyAgcmV0 dXJuIDA7Ci0rfQotK19BQ0VPRgotK3JtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3Qk YWNfZXhlZXh0Ci0raWYgeyAoYWNfdHJ5PSIkYWNfbGluayIKLStjYXNlICIoKCRhY190cnkiIGlu Ci0rICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKLSsgICopIGFj X3RyeV9lY2hvPSRhY190cnk7OwotK2VzYWMKLStldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6 JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCi0rJGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4mNQot KyAgKGV2YWwgIiRhY19saW5rIikgMj5jb25mdGVzdC5lcjEKLSsgIGFjX3N0YXR1cz0kPwotKyAg Z3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKLSsgIHJtIC1mIGNvbmZ0 ZXN0LmVyMQotKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKLSsgICRhc19lY2hvICIkYXNfbWU6JExJ TkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0rICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJiB7 Ci0rCSB0ZXN0IC16ICIkYWNfY3h4X3dlcnJvcl9mbGFnIiB8fAotKwkgdGVzdCAhIC1zIGNvbmZ0 ZXN0LmVycgotKyAgICAgICB9ICYmIHRlc3QgLXMgY29uZnRlc3QkYWNfZXhlZXh0ICYmIHsKLSsJ IHRlc3QgIiRjcm9zc19jb21waWxpbmciID0geWVzIHx8Ci0rCSAkYXNfdGVzdF94IGNvbmZ0ZXN0 JGFjX2V4ZWV4dAotKyAgICAgICB9OyB0aGVuCi0rICBldmFsICIkYXNfYWNfTGliPXllcyIKLStl bHNlCi0rICAkYXNfZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLStzZWQg J3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1Ci0rCi0rCWV2YWwgIiRhc19hY19MaWI9bm8i Ci0rZmkKLSsKLStybSAtcmYgY29uZnRlc3QuZFNZTQotK3JtIC1mIGNvcmUgY29uZnRlc3QuZXJy IGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3RfaXBhOF9jb25mdGVzdC5vbyBcCi0rICAgICAg Y29uZnRlc3QkYWNfZXhlZXh0IGNvbmZ0ZXN0LiRhY19leHQKLStMSUJTPSRhY19jaGVja19saWJf c2F2ZV9MSUJTCi0rZmkKLSthY19yZXM9YGV2YWwgJ2FzX3ZhbD0keyckYXNfYWNfTGliJ30KLSsJ CSAkYXNfZWNobyAiJGFzX3ZhbCInYAotKwkgICAgICAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5F Tk86IHJlc3VsdDogJGFjX3JlcyIgPiY1Ci0rJGFzX2VjaG8gIiRhY19yZXMiID4mNjsgfQotK2Fz X3ZhbD1gZXZhbCAnYXNfdmFsPSR7JyRhc19hY19MaWInfQotKwkJICRhc19lY2hvICIkYXNfdmFs IidgCi0rICAgaWYgdGVzdCAieCRhc192YWwiID0geCIieWVzOyB0aGVuCi0rICBCT09TVF9USFJF QURfTElCPSItbCRheF9saWIiICBsaW5rX3RocmVhZD0ieWVzIiBicmVhawotK2Vsc2UKLSsgIGxp bmtfdGhyZWFkPSJubyIKLStmaQotKwotKyAgCQkJCWRvbmUKLSsJCQkJaWYgdGVzdCAieCRsaW5r X3RocmVhZCIgPSAieG5vIjsgdGhlbgotKwkJCQkJeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86 IENvdWxkIG5vdCBsaW5rIGFnYWluc3QgJGF4X2xpYiAhIiA+JjUKLSskYXNfZWNobyAiJGFzX21l OiBDb3VsZCBub3QgbGluayBhZ2FpbnN0ICRheF9saWIgISIgPiY2O30KLSsJCQkJZmkKLSsJCQlm aQotKwotKwkJCXsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyB3aGV0aGVyIHRo ZSBCb29zdDo6SU9TdHJlYW1zIGxpYnJhcnkgaXMgYXZhaWxhYmxlIiA+JjUKLSskYXNfZWNob19u ICJjaGVja2luZyB3aGV0aGVyIHRoZSBCb29zdDo6SU9TdHJlYW1zIGxpYnJhcnkgaXMgYXZhaWxh YmxlLi4uICIgPiY2OyB9Ci0raWYgdGVzdCAiJHtheF9jdl9ib29zdF9pb3N0cmVhbXMrc2V0fSIg PSBzZXQ7IHRoZW4KLSsgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci0rZWxzZQotKwotKwkJ CSBhY19leHQ9Y3BwCi0rYWNfY3BwPSckQ1hYQ1BQICRDUFBGTEFHUycKLSthY19jb21waWxlPSck Q1hYIC1jICRDWFhGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUnCi0rYWNfbGlu az0nJENYWCAtbyBjb25mdGVzdCRhY19leGVleHQgJENYWEZMQUdTICRDUFBGTEFHUyAkTERGTEFH UyBjb25mdGVzdC4kYWNfZXh0ICRMSUJTID4mNScKLSthY19jb21waWxlcl9nbnU9JGFjX2N2X2N4 eF9jb21waWxlcl9nbnUKLSsKLSsJCQkgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0r LyogY29uZmRlZnMuaC4gICovCi0rX0FDRU9GCi0rY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4k YWNfZXh0Ci0rY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotKy8qIGVuZCBjb25mZGVm cy5oLiAgKi8KLSsjaW5jbHVkZSA8Ym9vc3QvaW9zdHJlYW1zL2ZpbHRlcmluZ19zdHJlYW0uaHBw PgotKwkJCQkJCQkJCQkJCSAjaW5jbHVkZSA8Ym9vc3QvcmFuZ2UvaXRlcmF0b3JfcmFuZ2UuaHBw PgotKwotK2ludAotK21haW4gKCkKLSt7Ci0rc3RkOjpzdHJpbmcgIGlucHV0ID0gIkhlbGxvIFdv cmxkISI7Ci0rCQkJCQkJCQkJIG5hbWVzcGFjZSBpbyA9IGJvb3N0Ojppb3N0cmVhbXM7Ci0rCQkJ CQkJCQkJIGlvOjpmaWx0ZXJpbmdfaXN0cmVhbSAgaW4oYm9vc3Q6Om1ha2VfaXRlcmF0b3JfcmFu Z2UoaW5wdXQpKTsKLSsJCQkJCQkJCQkgcmV0dXJuIDA7Ci0rCi0rICA7Ci0rICByZXR1cm4gMDsK LSt9Ci0rX0FDRU9GCi0rcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dAotK2lmIHsgKGFjX3RyeT0i JGFjX2NvbXBpbGUiCi0rY2FzZSAiKCgkYWNfdHJ5IiBpbgotKyAgKlwiKiB8ICpcYCogfCAqXFwq KSBhY190cnlfZWNobz1cJGFjX3RyeTs7Ci0rICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKLStl c2FjCi0rZXZhbCBhY190cnlfZWNobz0iXCJcJGFzX21lOiRMSU5FTk86ICRhY190cnlfZWNob1wi IgotKyRhc19lY2hvICIkYWNfdHJ5X2VjaG8iKSA+JjUKLSsgIChldmFsICIkYWNfY29tcGlsZSIp IDI+Y29uZnRlc3QuZXIxCi0rICBhY19zdGF0dXM9JD8KLSsgIGdyZXAgLXYgJ14gKisnIGNvbmZ0 ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCi0rICBybSAtZiBjb25mdGVzdC5lcjEKLSsgIGNhdCBjb25m dGVzdC5lcnIgPiY1Ci0rICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0 dXMiID4mNQotKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYgewotKwkgdGVzdCAteiAiJGFjX2N4 eF93ZXJyb3JfZmxhZyIgfHwKLSsJIHRlc3QgISAtcyBjb25mdGVzdC5lcnIKLSsgICAgICAgfSAm JiB0ZXN0IC1zIGNvbmZ0ZXN0LiRhY19vYmpleHQ7IHRoZW4KLSsgIGF4X2N2X2Jvb3N0X2lvc3Ry ZWFtcz15ZXMKLStlbHNlCi0rICAkYXNfZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6 IiA+JjUKLStzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1Ci0rCi0rCWF4X2N2X2Jv b3N0X2lvc3RyZWFtcz1ubwotK2ZpCi0rCi0rcm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRl c3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0Ci0rCQkJIGFjX2V4dD1jcHAKLSthY19jcHA9 JyRDWFhDUFAgJENQUEZMQUdTJwotK2FjX2NvbXBpbGU9JyRDWFggLWMgJENYWEZMQUdTICRDUFBG TEFHUyBjb25mdGVzdC4kYWNfZXh0ID4mNScKLSthY19saW5rPSckQ1hYIC1vIGNvbmZ0ZXN0JGFj X2V4ZWV4dCAkQ1hYRkxBR1MgJENQUEZMQUdTICRMREZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgJExJ QlMgPiY1JwotK2FjX2NvbXBpbGVyX2dudT0kYWNfY3ZfY3h4X2NvbXBpbGVyX2dudQotKwotKwot K2ZpCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGF4X2N2X2Jvb3N0X2lv c3RyZWFtcyIgPiY1Ci0rJGFzX2VjaG8gIiRheF9jdl9ib29zdF9pb3N0cmVhbXMiID4mNjsgfQot KwkJCWlmIHRlc3QgIngkYXhfY3ZfYm9vc3RfaW9zdHJlYW1zIiA9ICJ4eWVzIjsgdGhlbgotKwot K2NhdCA+PmNvbmZkZWZzLmggPDxcX0FDRU9GCi0rI2RlZmluZSBIQVZFX0JPT1NUX0lPU1RSRUFN UyAvKiovCi0rX0FDRU9GCi0rCi0rCQkJCUJOPWJvb3N0X2lvc3RyZWFtcwotKwkJCQlmb3IgYXhf bGliIGluICRCTiAkQk4tJENDICRCTi0kQ0MtbXQgJEJOLSRDQy1tdC1zICRCTi0kQ0MtcyBcCi0r ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGliJEJOIGxpYiRCTi0kQ0MgbGliJEJOLSRD Qy1tdCBsaWIkQk4tJENDLW10LXMgXAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxp YiRCTi0kQ0MtcyAkQk4tbWd3ICRCTi1tZ3ctbXQgXAotKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICRCTi1tZ3ctbXQtcyAkQk4tbWd3LXMgIFwKLSsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAkQk4tJENDLW10LSRCT09TVExJQl9NRFdfVkVSU0lPTiA7IGRvCi0rCQkJCSAgICBh c19hY19MaWI9YCRhc19lY2hvICJhY19jdl9saWJfJGF4X2xpYicnX21haW4iIHwgJGFzX3RyX3No YAotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgbWFpbiBpbiAtbCRh eF9saWIiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIGZvciBtYWluIGluIC1sJGF4X2xpYi4u LiAiID4mNjsgfQotK2lmIHsgYXNfdmFyPSRhc19hY19MaWI7IGV2YWwgInRlc3QgXCJcJHskYXNf dmFyK3NldH1cIiA9IHNldCI7IH07IHRoZW4KLSsgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2 Ci0rZWxzZQotKyAgYWNfY2hlY2tfbGliX3NhdmVfTElCUz0kTElCUwotK0xJQlM9Ii1sJGF4X2xp YiAgJExJQlMiCi0rY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0rLyogY29uZmRlZnMu aC4gICovCi0rX0FDRU9GCi0rY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Ci0rY2F0 ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLSsK LSsKLStpbnQKLSttYWluICgpCi0rewotK3JldHVybiBtYWluICgpOwotKyAgOwotKyAgcmV0dXJu IDA7Ci0rfQotK19BQ0VPRgotK3JtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QkYWNf ZXhlZXh0Ci0raWYgeyAoYWNfdHJ5PSIkYWNfbGluayIKLStjYXNlICIoKCRhY190cnkiIGluCi0r ICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKLSsgICopIGFjX3Ry eV9lY2hvPSRhY190cnk7OwotK2VzYWMKLStldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJ TkVOTzogJGFjX3RyeV9lY2hvXCIiCi0rJGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4mNQotKyAg KGV2YWwgIiRhY19saW5rIikgMj5jb25mdGVzdC5lcjEKLSsgIGFjX3N0YXR1cz0kPwotKyAgZ3Jl cCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKLSsgIHJtIC1mIGNvbmZ0ZXN0 LmVyMQotKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKLSsgICRhc19lY2hvICIkYXNfbWU6JExJTkVO TzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0rICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJiB7Ci0r CSB0ZXN0IC16ICIkYWNfY3h4X3dlcnJvcl9mbGFnIiB8fAotKwkgdGVzdCAhIC1zIGNvbmZ0ZXN0 LmVycgotKyAgICAgICB9ICYmIHRlc3QgLXMgY29uZnRlc3QkYWNfZXhlZXh0ICYmIHsKLSsJIHRl c3QgIiRjcm9zc19jb21waWxpbmciID0geWVzIHx8Ci0rCSAkYXNfdGVzdF94IGNvbmZ0ZXN0JGFj X2V4ZWV4dAotKyAgICAgICB9OyB0aGVuCi0rICBldmFsICIkYXNfYWNfTGliPXllcyIKLStlbHNl Ci0rICAkYXNfZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLStzZWQgJ3Mv Xi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1Ci0rCi0rCWV2YWwgIiRhc19hY19MaWI9bm8iCi0r ZmkKLSsKLStybSAtcmYgY29uZnRlc3QuZFNZTQotK3JtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNv bmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3RfaXBhOF9jb25mdGVzdC5vbyBcCi0rICAgICAgY29u ZnRlc3QkYWNfZXhlZXh0IGNvbmZ0ZXN0LiRhY19leHQKLStMSUJTPSRhY19jaGVja19saWJfc2F2 ZV9MSUJTCi0rZmkKLSthY19yZXM9YGV2YWwgJ2FzX3ZhbD0keyckYXNfYWNfTGliJ30KLSsJCSAk YXNfZWNobyAiJGFzX3ZhbCInYAotKwkgICAgICAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86 IHJlc3VsdDogJGFjX3JlcyIgPiY1Ci0rJGFzX2VjaG8gIiRhY19yZXMiID4mNjsgfQotK2FzX3Zh bD1gZXZhbCAnYXNfdmFsPSR7JyRhc19hY19MaWInfQotKwkJICRhc19lY2hvICIkYXNfdmFsIidg Ci0rICAgaWYgdGVzdCAieCRhc192YWwiID0geCIieWVzOyB0aGVuCi0rICBCT09TVF9JT1NUUkVB TVNfTElCPSItbCRheF9saWIiICBsaW5rX3RocmVhZD0ieWVzIiBicmVhawotK2Vsc2UKLSsgIGxp bmtfdGhyZWFkPSJubyIKLStmaQotKwotKyAgCQkJCWRvbmUKLSsJCQkJaWYgdGVzdCAieCRsaW5r X3RocmVhZCIgPSAieG5vIjsgdGhlbgotKwkJCQkJeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86 IENvdWxkIG5vdCBsaW5rIGFnYWluc3QgJGF4X2xpYiAhIiA+JjUKLSskYXNfZWNobyAiJGFzX21l OiBDb3VsZCBub3QgbGluayBhZ2FpbnN0ICRheF9saWIgISIgPiY2O30KLSsJCQkJZmkKLSsJCQlm aQotKwotKwkJCXsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyB3aGV0aGVyIHRo ZSBCb29zdDo6U2VyaWFsaXphdGlvbiBsaWJyYXJ5IGlzIGF2YWlsYWJsZSIgPiY1Ci0rJGFzX2Vj aG9fbiAiY2hlY2tpbmcgd2hldGhlciB0aGUgQm9vc3Q6OlNlcmlhbGl6YXRpb24gbGlicmFyeSBp cyBhdmFpbGFibGUuLi4gIiA+JjY7IH0KLStpZiB0ZXN0ICIke2F4X2N2X2Jvb3N0X3NlcmlhbGl6 YXRpb24rc2V0fSIgPSBzZXQ7IHRoZW4KLSsgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci0r ZWxzZQotKwotKwkJCSBhY19leHQ9Y3BwCi0rYWNfY3BwPSckQ1hYQ1BQICRDUFBGTEFHUycKLSth Y19jb21waWxlPSckQ1hYIC1jICRDWFhGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+ JjUnCi0rYWNfbGluaz0nJENYWCAtbyBjb25mdGVzdCRhY19leGVleHQgJENYWEZMQUdTICRDUFBG TEFHUyAkTERGTEFHUyBjb25mdGVzdC4kYWNfZXh0ICRMSUJTID4mNScKLSthY19jb21waWxlcl9n bnU9JGFjX2N2X2N4eF9jb21waWxlcl9nbnUKLSsKLSsJCQkgY2F0ID5jb25mdGVzdC4kYWNfZXh0 IDw8X0FDRU9GCi0rLyogY29uZmRlZnMuaC4gICovCi0rX0FDRU9GCi0rY2F0IGNvbmZkZWZzLmgg Pj5jb25mdGVzdC4kYWNfZXh0Ci0rY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotKy8q IGVuZCBjb25mZGVmcy5oLiAgKi8KLSsjaW5jbHVkZSA8ZnN0cmVhbT4KLSsJCQkJCQkJCQkJCQkg I2luY2x1ZGUgPGJvb3N0L2FyY2hpdmUvdGV4dF9vYXJjaGl2ZS5ocHA+Ci0rICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICNpbmNsdWRlIDxib29zdC9hcmNo aXZlL3RleHRfaWFyY2hpdmUuaHBwPgotKwotK2ludAotK21haW4gKCkKLSt7Ci0rc3RkOjpvZnN0 cmVhbSBvZnMoImZpbGVuYW1lIik7Ci0rCQkJCQkJCQkJYm9vc3Q6OmFyY2hpdmU6OnRleHRfb2Fy Y2hpdmUgb2Eob2ZzKTsKLSsJCQkJCQkJCQkgcmV0dXJuIDA7Ci0rCi0rICA7Ci0rICByZXR1cm4g MDsKLSt9Ci0rX0FDRU9GCi0rcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dAotK2lmIHsgKGFjX3Ry eT0iJGFjX2NvbXBpbGUiCi0rY2FzZSAiKCgkYWNfdHJ5IiBpbgotKyAgKlwiKiB8ICpcYCogfCAq XFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7Ci0rICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsK LStlc2FjCi0rZXZhbCBhY190cnlfZWNobz0iXCJcJGFzX21lOiRMSU5FTk86ICRhY190cnlfZWNo b1wiIgotKyRhc19lY2hvICIkYWNfdHJ5X2VjaG8iKSA+JjUKLSsgIChldmFsICIkYWNfY29tcGls ZSIpIDI+Y29uZnRlc3QuZXIxCi0rICBhY19zdGF0dXM9JD8KLSsgIGdyZXAgLXYgJ14gKisnIGNv bmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCi0rICBybSAtZiBjb25mdGVzdC5lcjEKLSsgIGNhdCBj b25mdGVzdC5lcnIgPiY1Ci0rICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19z dGF0dXMiID4mNQotKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYgewotKwkgdGVzdCAteiAiJGFj X2N4eF93ZXJyb3JfZmxhZyIgfHwKLSsJIHRlc3QgISAtcyBjb25mdGVzdC5lcnIKLSsgICAgICAg fSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0LiRhY19vYmpleHQ7IHRoZW4KLSsgIGF4X2N2X2Jvb3N0X3Nl cmlhbGl6YXRpb249eWVzCi0rZWxzZQotKyAgJGFzX2VjaG8gIiRhc19tZTogZmFpbGVkIHByb2dy YW0gd2FzOiIgPiY1Ci0rc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQotKwotKwlh eF9jdl9ib29zdF9zZXJpYWxpemF0aW9uPW5vCi0rZmkKLSsKLStybSAtZiBjb3JlIGNvbmZ0ZXN0 LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKLSsJCQkgYWNfZXh0PWNw cAotK2FjX2NwcD0nJENYWENQUCAkQ1BQRkxBR1MnCi0rYWNfY29tcGlsZT0nJENYWCAtYyAkQ1hY RkxBR1MgJENQUEZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgPiY1JwotK2FjX2xpbms9JyRDWFggLW8g Y29uZnRlc3QkYWNfZXhlZXh0ICRDWFhGTEFHUyAkQ1BQRkxBR1MgJExERkxBR1MgY29uZnRlc3Qu JGFjX2V4dCAkTElCUyA+JjUnCi0rYWNfY29tcGlsZXJfZ251PSRhY19jdl9jeHhfY29tcGlsZXJf Z251Ci0rCi0rCi0rZmkKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYXhf Y3ZfYm9vc3Rfc2VyaWFsaXphdGlvbiIgPiY1Ci0rJGFzX2VjaG8gIiRheF9jdl9ib29zdF9zZXJp YWxpemF0aW9uIiA+JjY7IH0KLSsJCQlpZiB0ZXN0ICJ4JGF4X2N2X2Jvb3N0X3NlcmlhbGl6YXRp b24iID0gInh5ZXMiOyB0aGVuCi0rCi0rY2F0ID4+Y29uZmRlZnMuaCA8PFxfQUNFT0YKLSsjZGVm aW5lIEhBVkVfQk9PU1RfU0VSSUFMSVpBVElPTiAvKiovCi0rX0FDRU9GCi0rCi0rCQkJCUJOPWJv b3N0X3NlcmlhbGl6YXRpb24KLSsJCQkJZm9yIGF4X2xpYiBpbiAkQk4gJEJOLSRDQyAkQk4tJEND LW10ICRCTi0kQ0MtbXQtcyAkQk4tJENDLXMgXAotKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGxpYiRCTiBsaWIkQk4tJENDIGxpYiRCTi0kQ0MtbXQgbGliJEJOLSRDQy1tdC1zIFwKLSsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWIkQk4tJENDLXMgJEJOLW1ndyAkQk4tbWd3 LW10IFwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkQk4tbWd3LW10LXMgJEJOLW1n dy1zICBcCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJEJOLSRDQy1tdC0kQk9PU1RM SUJfTURXX1ZFUlNJT04gOyBkbwotKwkJCQkgICAgYXNfYWNfTGliPWAkYXNfZWNobyAiYWNfY3Zf bGliXyRheF9saWInJ19tYWluIiB8ICRhc190cl9zaGAKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJ TkVOTzogY2hlY2tpbmcgZm9yIG1haW4gaW4gLWwkYXhfbGliIiA+JjUKLSskYXNfZWNob19uICJj aGVja2luZyBmb3IgbWFpbiBpbiAtbCRheF9saWIuLi4gIiA+JjY7IH0KLStpZiB7IGFzX3Zhcj0k YXNfYWNfTGliOyBldmFsICJ0ZXN0IFwiXCR7JGFzX3ZhcitzZXR9XCIgPSBzZXQiOyB9OyB0aGVu Ci0rICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsgIGFjX2NoZWNrX2xpYl9z YXZlX0xJQlM9JExJQlMKLStMSUJTPSItbCRheF9saWIgICRMSUJTIgotK2NhdCA+Y29uZnRlc3Qu JGFjX2V4dCA8PF9BQ0VPRgotKy8qIGNvbmZkZWZzLmguICAqLwotK19BQ0VPRgotK2NhdCBjb25m ZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAotK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNF T0YKLSsvKiBlbmQgY29uZmRlZnMuaC4gICovCi0rCi0rCi0raW50Ci0rbWFpbiAoKQotK3sKLSty ZXR1cm4gbWFpbiAoKTsKLSsgIDsKLSsgIHJldHVybiAwOwotK30KLStfQUNFT0YKLStybSAtZiBj b25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0JGFjX2V4ZWV4dAotK2lmIHsgKGFjX3RyeT0iJGFj X2xpbmsiCi0rY2FzZSAiKCgkYWNfdHJ5IiBpbgotKyAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190 cnlfZWNobz1cJGFjX3RyeTs7Ci0rICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKLStlc2FjCi0r ZXZhbCBhY190cnlfZWNobz0iXCJcJGFzX21lOiRMSU5FTk86ICRhY190cnlfZWNob1wiIgotKyRh c19lY2hvICIkYWNfdHJ5X2VjaG8iKSA+JjUKLSsgIChldmFsICIkYWNfbGluayIpIDI+Y29uZnRl c3QuZXIxCi0rICBhY19zdGF0dXM9JD8KLSsgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+ Y29uZnRlc3QuZXJyCi0rICBybSAtZiBjb25mdGVzdC5lcjEKLSsgIGNhdCBjb25mdGVzdC5lcnIg PiY1Ci0rICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQot KyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYgewotKwkgdGVzdCAteiAiJGFjX2N4eF93ZXJyb3Jf ZmxhZyIgfHwKLSsJIHRlc3QgISAtcyBjb25mdGVzdC5lcnIKLSsgICAgICAgfSAmJiB0ZXN0IC1z IGNvbmZ0ZXN0JGFjX2V4ZWV4dCAmJiB7Ci0rCSB0ZXN0ICIkY3Jvc3NfY29tcGlsaW5nIiA9IHll cyB8fAotKwkgJGFzX3Rlc3RfeCBjb25mdGVzdCRhY19leGVleHQKLSsgICAgICAgfTsgdGhlbgot KyAgZXZhbCAiJGFzX2FjX0xpYj15ZXMiCi0rZWxzZQotKyAgJGFzX2VjaG8gIiRhc19tZTogZmFp bGVkIHByb2dyYW0gd2FzOiIgPiY1Ci0rc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4m NQotKwotKwlldmFsICIkYXNfYWNfTGliPW5vIgotK2ZpCi0rCi0rcm0gLXJmIGNvbmZ0ZXN0LmRT WU0KLStybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0 X2lwYThfY29uZnRlc3Qub28gXAotKyAgICAgIGNvbmZ0ZXN0JGFjX2V4ZWV4dCBjb25mdGVzdC4k YWNfZXh0Ci0rTElCUz0kYWNfY2hlY2tfbGliX3NhdmVfTElCUwotK2ZpCi0rYWNfcmVzPWBldmFs ICdhc192YWw9JHsnJGFzX2FjX0xpYid9Ci0rCQkgJGFzX2VjaG8gIiRhc192YWwiJ2AKLSsJICAg ICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19yZXMiID4mNQotKyRh c19lY2hvICIkYWNfcmVzIiA+JjY7IH0KLSthc192YWw9YGV2YWwgJ2FzX3ZhbD0keyckYXNfYWNf TGliJ30KLSsJCSAkYXNfZWNobyAiJGFzX3ZhbCInYAotKyAgIGlmIHRlc3QgIngkYXNfdmFsIiA9 IHgiInllczsgdGhlbgotKyAgQk9PU1RfU0VSSUFMSVpBVElPTl9MSUI9Ii1sJGF4X2xpYiIgIGxp bmtfdGhyZWFkPSJ5ZXMiIGJyZWFrCi0rZWxzZQotKyAgbGlua190aHJlYWQ9Im5vIgotK2ZpCi0r Ci0rICAJCQkJZG9uZQotKwkJCQlCTj1ib29zdF93c2VyaWFsaXphdGlvbgotKwkJCQlmb3IgYXhf bGliIGluICRCTiAkQk4tJENDICRCTi0kQ0MtbXQgJEJOLSRDQy1tdC1zICRCTi0kQ0MtcyBcCi0r ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGliJEJOIGxpYiRCTi0kQ0MgbGliJEJOLSRD Qy1tdCBsaWIkQk4tJENDLW10LXMgXAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxp YiRCTi0kQ0MtcyAkQk4tbWd3ICRCTi1tZ3ctbXQgXAotKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICRCTi1tZ3ctbXQtcyAkQk4tbWd3LXMgIFwKLSsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAkQk4tJENDLW10LSRCT09TVExJQl9NRFdfVkVSU0lPTiA7IGRvCi0rCQkJCSAgICBh c19hY19MaWI9YCRhc19lY2hvICJhY19jdl9saWJfJGF4X2xpYicnX21haW4iIHwgJGFzX3RyX3No YAotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgbWFpbiBpbiAtbCRh eF9saWIiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIGZvciBtYWluIGluIC1sJGF4X2xpYi4u LiAiID4mNjsgfQotK2lmIHsgYXNfdmFyPSRhc19hY19MaWI7IGV2YWwgInRlc3QgXCJcJHskYXNf dmFyK3NldH1cIiA9IHNldCI7IH07IHRoZW4KLSsgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2 Ci0rZWxzZQotKyAgYWNfY2hlY2tfbGliX3NhdmVfTElCUz0kTElCUwotK0xJQlM9Ii1sJGF4X2xp YiAgJExJQlMiCi0rY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0rLyogY29uZmRlZnMu aC4gICovCi0rX0FDRU9GCi0rY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Ci0rY2F0 ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLSsK LSsKLStpbnQKLSttYWluICgpCi0rewotK3JldHVybiBtYWluICgpOwotKyAgOwotKyAgcmV0dXJu IDA7Ci0rfQotK19BQ0VPRgotK3JtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QkYWNf ZXhlZXh0Ci0raWYgeyAoYWNfdHJ5PSIkYWNfbGluayIKLStjYXNlICIoKCRhY190cnkiIGluCi0r ICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKLSsgICopIGFjX3Ry eV9lY2hvPSRhY190cnk7OwotK2VzYWMKLStldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJ TkVOTzogJGFjX3RyeV9lY2hvXCIiCi0rJGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4mNQotKyAg KGV2YWwgIiRhY19saW5rIikgMj5jb25mdGVzdC5lcjEKLSsgIGFjX3N0YXR1cz0kPwotKyAgZ3Jl cCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKLSsgIHJtIC1mIGNvbmZ0ZXN0 LmVyMQotKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKLSsgICRhc19lY2hvICIkYXNfbWU6JExJTkVO TzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0rICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJiB7Ci0r CSB0ZXN0IC16ICIkYWNfY3h4X3dlcnJvcl9mbGFnIiB8fAotKwkgdGVzdCAhIC1zIGNvbmZ0ZXN0 LmVycgotKyAgICAgICB9ICYmIHRlc3QgLXMgY29uZnRlc3QkYWNfZXhlZXh0ICYmIHsKLSsJIHRl c3QgIiRjcm9zc19jb21waWxpbmciID0geWVzIHx8Ci0rCSAkYXNfdGVzdF94IGNvbmZ0ZXN0JGFj X2V4ZWV4dAotKyAgICAgICB9OyB0aGVuCi0rICBldmFsICIkYXNfYWNfTGliPXllcyIKLStlbHNl Ci0rICAkYXNfZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLStzZWQgJ3Mv Xi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1Ci0rCi0rCWV2YWwgIiRhc19hY19MaWI9bm8iCi0r ZmkKLSsKLStybSAtcmYgY29uZnRlc3QuZFNZTQotK3JtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNv bmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3RfaXBhOF9jb25mdGVzdC5vbyBcCi0rICAgICAgY29u ZnRlc3QkYWNfZXhlZXh0IGNvbmZ0ZXN0LiRhY19leHQKLStMSUJTPSRhY19jaGVja19saWJfc2F2 ZV9MSUJTCi0rZmkKLSthY19yZXM9YGV2YWwgJ2FzX3ZhbD0keyckYXNfYWNfTGliJ30KLSsJCSAk YXNfZWNobyAiJGFzX3ZhbCInYAotKwkgICAgICAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86 IHJlc3VsdDogJGFjX3JlcyIgPiY1Ci0rJGFzX2VjaG8gIiRhY19yZXMiID4mNjsgfQotK2FzX3Zh bD1gZXZhbCAnYXNfdmFsPSR7JyRhc19hY19MaWInfQotKwkJICRhc19lY2hvICIkYXNfdmFsIidg Ci0rICAgaWYgdGVzdCAieCRhc192YWwiID0geCIieWVzOyB0aGVuCi0rICBCT09TVF9XU0VSSUFM SVpBVElPTl9MSUI9Ii1sJGF4X2xpYiIgIGxpbmtfdGhyZWFkPSJ5ZXMiIGJyZWFrCi0rZWxzZQot KyAgbGlua190aHJlYWQ9Im5vIgotK2ZpCi0rCi0rICAJCQkJZG9uZQotKwkJCQlpZiB0ZXN0ICJ4 JGxpbmtfdGhyZWFkIiA9ICJ4bm8iOyB0aGVuCi0rCQkJCQl7ICRhc19lY2hvICIkYXNfbWU6JExJ TkVOTzogQ291bGQgbm90IGxpbmsgYWdhaW5zdCAkYXhfbGliICEiID4mNQotKyRhc19lY2hvICIk YXNfbWU6IENvdWxkIG5vdCBsaW5rIGFnYWluc3QgJGF4X2xpYiAhIiA+JjY7fQotKwkJCQlmaQot KwkJCWZpCi0rCi0rCQkJeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIHdoZXRo ZXIgdGhlIEJvb3N0OjpTaWduYWxzIGxpYnJhcnkgaXMgYXZhaWxhYmxlIiA+JjUKLSskYXNfZWNo b19uICJjaGVja2luZyB3aGV0aGVyIHRoZSBCb29zdDo6U2lnbmFscyBsaWJyYXJ5IGlzIGF2YWls YWJsZS4uLiAiID4mNjsgfQotK2lmIHRlc3QgIiR7YXhfY3ZfYm9vc3Rfc2lnbmFscytzZXR9IiA9 IHNldDsgdGhlbgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rCi0rCQkJ IGFjX2V4dD1jcHAKLSthY19jcHA9JyRDWFhDUFAgJENQUEZMQUdTJwotK2FjX2NvbXBpbGU9JyRD WFggLWMgJENYWEZMQUdTICRDUFBGTEFHUyBjb25mdGVzdC4kYWNfZXh0ID4mNScKLSthY19saW5r PSckQ1hYIC1vIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAkQ1hYRkxBR1MgJENQUEZMQUdTICRMREZMQUdT IGNvbmZ0ZXN0LiRhY19leHQgJExJQlMgPiY1JwotK2FjX2NvbXBpbGVyX2dudT0kYWNfY3ZfY3h4 X2NvbXBpbGVyX2dudQotKwotKwkJCSBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLSsv KiBjb25mZGVmcy5oLiAgKi8KLStfQUNFT0YKLStjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRh Y19leHQKLStjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0rLyogZW5kIGNvbmZkZWZz LmguICAqLwotKyNpbmNsdWRlIDxib29zdC9zaWduYWwuaHBwPgotKwotK2ludAotK21haW4gKCkK LSt7Ci0rYm9vc3Q6OnNpZ25hbDx2b2lkICgpPiBzaWc7Ci0rICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHJldHVybiAwOwotKwotKyAgOwotKyAgcmV0dXJuIDA7Ci0rfQotK19B Q0VPRgotK3JtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQKLStpZiB7IChhY190cnk9IiRhY19jb21w aWxlIgotK2Nhc2UgIigoJGFjX3RyeSIgaW4KLSsgICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5 X2VjaG89XCRhY190cnk7OwotKyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7Ci0rZXNhYwotK2V2 YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIKLSskYXNf ZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1Ci0rICAoZXZhbCAiJGFjX2NvbXBpbGUiKSAyPmNvbmZ0 ZXN0LmVyMQotKyAgYWNfc3RhdHVzPSQ/Ci0rICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEg PmNvbmZ0ZXN0LmVycgotKyAgcm0gLWYgY29uZnRlc3QuZXIxCi0rICBjYXQgY29uZnRlc3QuZXJy ID4mNQotKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUK LSsgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmIHsKLSsJIHRlc3QgLXogIiRhY19jeHhfd2Vycm9y X2ZsYWciIHx8Ci0rCSB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCi0rICAgICAgIH0gJiYgdGVzdCAt cyBjb25mdGVzdC4kYWNfb2JqZXh0OyB0aGVuCi0rICBheF9jdl9ib29zdF9zaWduYWxzPXllcwot K2Vsc2UKLSsgICRhc19lY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQotK3Nl ZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKLSsKLSsJYXhfY3ZfYm9vc3Rfc2lnbmFs cz1ubwotK2ZpCi0rCi0rcm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4 dCBjb25mdGVzdC4kYWNfZXh0Ci0rCQkJIGFjX2V4dD1jcHAKLSthY19jcHA9JyRDWFhDUFAgJENQ UEZMQUdTJwotK2FjX2NvbXBpbGU9JyRDWFggLWMgJENYWEZMQUdTICRDUFBGTEFHUyBjb25mdGVz dC4kYWNfZXh0ID4mNScKLSthY19saW5rPSckQ1hYIC1vIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAkQ1hY RkxBR1MgJENQUEZMQUdTICRMREZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgJExJQlMgPiY1JwotK2Fj X2NvbXBpbGVyX2dudT0kYWNfY3ZfY3h4X2NvbXBpbGVyX2dudQotKwotKwotK2ZpCi0reyAkYXNf ZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGF4X2N2X2Jvb3N0X3NpZ25hbHMiID4mNQot KyRhc19lY2hvICIkYXhfY3ZfYm9vc3Rfc2lnbmFscyIgPiY2OyB9Ci0rCQkJaWYgdGVzdCAieCRh eF9jdl9ib29zdF9zaWduYWxzIiA9ICJ4eWVzIjsgdGhlbgotKwotK2NhdCA+PmNvbmZkZWZzLmgg PDxcX0FDRU9GCi0rI2RlZmluZSBIQVZFX0JPT1NUX1NJR05BTFMgLyoqLwotK19BQ0VPRgotKwot KwkJCQlCTj1ib29zdF9zaWduYWxzCi0rCQkJCWZvciBheF9saWIgaW4gJEJOICRCTi0kQ0MgJEJO LSRDQy1tdCAkQk4tJENDLW10LXMgJEJOLSRDQy1zIFwKLSsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBsaWIkQk4gbGliJEJOLSRDQyBsaWIkQk4tJENDLW10IGxpYiRCTi0kQ0MtbXQtcyBc Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGliJEJOLSRDQy1zICRCTi1tZ3cgJEJO LW1ndy1tdCBcCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJEJOLW1ndy1tdC1zICRC Ti1tZ3ctcyAgXAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRCTi0kQ0MtbXQtJEJP T1NUTElCX01EV19WRVJTSU9OIDsgZG8KLSsJCQkJICAgIGFzX2FjX0xpYj1gJGFzX2VjaG8gImFj X2N2X2xpYl8kYXhfbGliJydfbWFpbiIgfCAkYXNfdHJfc2hgCi0reyAkYXNfZWNobyAiJGFzX21l OiRMSU5FTk86IGNoZWNraW5nIGZvciBtYWluIGluIC1sJGF4X2xpYiIgPiY1Ci0rJGFzX2VjaG9f biAiY2hlY2tpbmcgZm9yIG1haW4gaW4gLWwkYXhfbGliLi4uICIgPiY2OyB9Ci0raWYgeyBhc192 YXI9JGFzX2FjX0xpYjsgZXZhbCAidGVzdCBcIlwkeyRhc192YXIrc2V0fVwiID0gc2V0IjsgfTsg dGhlbgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rICBhY19jaGVja19s aWJfc2F2ZV9MSUJTPSRMSUJTCi0rTElCUz0iLWwkYXhfbGliICAkTElCUyIKLStjYXQgPmNvbmZ0 ZXN0LiRhY19leHQgPDxfQUNFT0YKLSsvKiBjb25mZGVmcy5oLiAgKi8KLStfQUNFT0YKLStjYXQg Y29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKLStjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8 X0FDRU9GCi0rLyogZW5kIGNvbmZkZWZzLmguICAqLwotKwotKwotK2ludAotK21haW4gKCkKLSt7 Ci0rcmV0dXJuIG1haW4gKCk7Ci0rICA7Ci0rICByZXR1cm4gMDsKLSt9Ci0rX0FDRU9GCi0rcm0g LWYgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdCRhY19leGVleHQKLStpZiB7IChhY190cnk9 IiRhY19saW5rIgotK2Nhc2UgIigoJGFjX3RyeSIgaW4KLSsgICpcIiogfCAqXGAqIHwgKlxcKikg YWNfdHJ5X2VjaG89XCRhY190cnk7OwotKyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7Ci0rZXNh YwotK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIK LSskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1Ci0rICAoZXZhbCAiJGFjX2xpbmsiKSAyPmNv bmZ0ZXN0LmVyMQotKyAgYWNfc3RhdHVzPSQ/Ci0rICBncmVwIC12ICdeICorJyBjb25mdGVzdC5l cjEgPmNvbmZ0ZXN0LmVycgotKyAgcm0gLWYgY29uZnRlc3QuZXIxCi0rICBjYXQgY29uZnRlc3Qu ZXJyID4mNQotKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+ JjUKLSsgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmIHsKLSsJIHRlc3QgLXogIiRhY19jeHhfd2Vy cm9yX2ZsYWciIHx8Ci0rCSB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCi0rICAgICAgIH0gJiYgdGVz dCAtcyBjb25mdGVzdCRhY19leGVleHQgJiYgewotKwkgdGVzdCAiJGNyb3NzX2NvbXBpbGluZyIg PSB5ZXMgfHwKLSsJICRhc190ZXN0X3ggY29uZnRlc3QkYWNfZXhlZXh0Ci0rICAgICAgIH07IHRo ZW4KLSsgIGV2YWwgIiRhc19hY19MaWI9eWVzIgotK2Vsc2UKLSsgICRhc19lY2hvICIkYXNfbWU6 IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQotK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4 dCA+JjUKLSsKLSsJZXZhbCAiJGFzX2FjX0xpYj1ubyIKLStmaQotKwotK3JtIC1yZiBjb25mdGVz dC5kU1lNCi0rcm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25m dGVzdF9pcGE4X2NvbmZ0ZXN0Lm9vIFwKLSsgICAgICBjb25mdGVzdCRhY19leGVleHQgY29uZnRl c3QuJGFjX2V4dAotK0xJQlM9JGFjX2NoZWNrX2xpYl9zYXZlX0xJQlMKLStmaQotK2FjX3Jlcz1g ZXZhbCAnYXNfdmFsPSR7JyRhc19hY19MaWInfQotKwkJICRhc19lY2hvICIkYXNfdmFsIidgCi0r CSAgICAgICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfcmVzIiA+JjUK LSskYXNfZWNobyAiJGFjX3JlcyIgPiY2OyB9Ci0rYXNfdmFsPWBldmFsICdhc192YWw9JHsnJGFz X2FjX0xpYid9Ci0rCQkgJGFzX2VjaG8gIiRhc192YWwiJ2AKLSsgICBpZiB0ZXN0ICJ4JGFzX3Zh bCIgPSB4IiJ5ZXM7IHRoZW4KLSsgIEJPT1NUX1NJR05BTFNfTElCPSItbCRheF9saWIiICBsaW5r X3RocmVhZD0ieWVzIiBicmVhawotK2Vsc2UKLSsgIGxpbmtfdGhyZWFkPSJubyIKLStmaQotKwot KyAgCQkJCWRvbmUKLSsJCQkJaWYgdGVzdCAieCRsaW5rX3RocmVhZCIgPSAieG5vIjsgdGhlbgot KwkJCQkJeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IENvdWxkIG5vdCBsaW5rIGFnYWluc3Qg JGF4X2xpYiAhIiA+JjUKLSskYXNfZWNobyAiJGFzX21lOiBDb3VsZCBub3QgbGluayBhZ2FpbnN0 ICRheF9saWIgISIgPiY2O30KLSsJCQkJZmkKLSsJCQlmaQotKwotKwkJCXsgJGFzX2VjaG8gIiRh c19tZTokTElORU5POiBjaGVja2luZyB3aGV0aGVyIHRoZSBCb29zdDo6RGF0ZV9UaW1lIGxpYnJh cnkgaXMgYXZhaWxhYmxlIiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyB3aGV0aGVyIHRoZSBC b29zdDo6RGF0ZV9UaW1lIGxpYnJhcnkgaXMgYXZhaWxhYmxlLi4uICIgPiY2OyB9Ci0raWYgdGVz dCAiJHtheF9jdl9ib29zdF9kYXRlX3RpbWUrc2V0fSIgPSBzZXQ7IHRoZW4KLSsgICRhc19lY2hv X24gIihjYWNoZWQpICIgPiY2Ci0rZWxzZQotKwotKwkJCSBhY19leHQ9Y3BwCi0rYWNfY3BwPSck Q1hYQ1BQICRDUFBGTEFHUycKLSthY19jb21waWxlPSckQ1hYIC1jICRDWFhGTEFHUyAkQ1BQRkxB R1MgY29uZnRlc3QuJGFjX2V4dCA+JjUnCi0rYWNfbGluaz0nJENYWCAtbyBjb25mdGVzdCRhY19l eGVleHQgJENYWEZMQUdTICRDUFBGTEFHUyAkTERGTEFHUyBjb25mdGVzdC4kYWNfZXh0ICRMSUJT ID4mNScKLSthY19jb21waWxlcl9nbnU9JGFjX2N2X2N4eF9jb21waWxlcl9nbnUKLSsKLSsJCQkg Y2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0rLyogY29uZmRlZnMuaC4gICovCi0rX0FD RU9GCi0rY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Ci0rY2F0ID4+Y29uZnRlc3Qu JGFjX2V4dCA8PF9BQ0VPRgotKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLSsjaW5jbHVkZSA8Ym9v c3QvZGF0ZV90aW1lL2dyZWdvcmlhbi9ncmVnb3JpYW5fdHlwZXMuaHBwPgotKwotK2ludAotK21h aW4gKCkKLSt7Ci0rdXNpbmcgbmFtZXNwYWNlIGJvb3N0OjpncmVnb3JpYW47IGRhdGUgZCgyMDAy LEphbiwxMCk7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAw OwotKwotKyAgOwotKyAgcmV0dXJuIDA7Ci0rfQotK19BQ0VPRgotK3JtIC1mIGNvbmZ0ZXN0LiRh Y19vYmpleHQKLStpZiB7IChhY190cnk9IiRhY19jb21waWxlIgotK2Nhc2UgIigoJGFjX3RyeSIg aW4KLSsgICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OwotKyAgKikg YWNfdHJ5X2VjaG89JGFjX3RyeTs7Ci0rZXNhYwotK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19t ZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIKLSskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1 Ci0rICAoZXZhbCAiJGFjX2NvbXBpbGUiKSAyPmNvbmZ0ZXN0LmVyMQotKyAgYWNfc3RhdHVzPSQ/ Ci0rICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgotKyAgcm0gLWYg Y29uZnRlc3QuZXIxCi0rICBjYXQgY29uZnRlc3QuZXJyID4mNQotKyAgJGFzX2VjaG8gIiRhc19t ZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSsgIChleGl0ICRhY19zdGF0dXMpOyB9 ICYmIHsKLSsJIHRlc3QgLXogIiRhY19jeHhfd2Vycm9yX2ZsYWciIHx8Ci0rCSB0ZXN0ICEgLXMg Y29uZnRlc3QuZXJyCi0rICAgICAgIH0gJiYgdGVzdCAtcyBjb25mdGVzdC4kYWNfb2JqZXh0OyB0 aGVuCi0rICBheF9jdl9ib29zdF9kYXRlX3RpbWU9eWVzCi0rZWxzZQotKyAgJGFzX2VjaG8gIiRh c19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Ci0rc2VkICdzL14vfCAvJyBjb25mdGVzdC4k YWNfZXh0ID4mNQotKwotKwlheF9jdl9ib29zdF9kYXRlX3RpbWU9bm8KLStmaQotKwotK3JtIC1m IGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAot KwkJCSBhY19leHQ9Y3BwCi0rYWNfY3BwPSckQ1hYQ1BQICRDUFBGTEFHUycKLSthY19jb21waWxl PSckQ1hYIC1jICRDWFhGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUnCi0rYWNf bGluaz0nJENYWCAtbyBjb25mdGVzdCRhY19leGVleHQgJENYWEZMQUdTICRDUFBGTEFHUyAkTERG TEFHUyBjb25mdGVzdC4kYWNfZXh0ICRMSUJTID4mNScKLSthY19jb21waWxlcl9nbnU9JGFjX2N2 X2N4eF9jb21waWxlcl9nbnUKLSsKLSsKLStmaQotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5P OiByZXN1bHQ6ICRheF9jdl9ib29zdF9kYXRlX3RpbWUiID4mNQotKyRhc19lY2hvICIkYXhfY3Zf Ym9vc3RfZGF0ZV90aW1lIiA+JjY7IH0KLSsJCQlpZiB0ZXN0ICJ4JGF4X2N2X2Jvb3N0X2RhdGVf dGltZSIgPSAieHllcyI7IHRoZW4KLSsKLStjYXQgPj5jb25mZGVmcy5oIDw8XF9BQ0VPRgotKyNk ZWZpbmUgSEFWRV9CT09TVF9EQVRFX1RJTUUgLyoqLwotK19BQ0VPRgotKwotKwkJCQlCTj1ib29z dF9kYXRlX3RpbWUKLSsJCQkJZm9yIGF4X2xpYiBpbiAkQk4gJEJOLSRDQyAkQk4tJENDLW10ICRC Ti0kQ0MtbXQtcyAkQk4tJENDLXMgXAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxp YiRCTiBsaWIkQk4tJENDIGxpYiRCTi0kQ0MtbXQgbGliJEJOLSRDQy1tdC1zIFwKLSsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBsaWIkQk4tJENDLXMgJEJOLW1ndyAkQk4tbWd3LW10IFwK LSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkQk4tbWd3LW10LXMgJEJOLW1ndy1zICBc Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJEJOLSRDQy1tdC0kQk9PU1RMSUJfTURX X1ZFUlNJT04gOyBkbwotKwkJCQkgICAgYXNfYWNfTGliPWAkYXNfZWNobyAiYWNfY3ZfbGliXyRh eF9saWInJ19tYWluIiB8ICRhc190cl9zaGAKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzog Y2hlY2tpbmcgZm9yIG1haW4gaW4gLWwkYXhfbGliIiA+JjUKLSskYXNfZWNob19uICJjaGVja2lu ZyBmb3IgbWFpbiBpbiAtbCRheF9saWIuLi4gIiA+JjY7IH0KLStpZiB7IGFzX3Zhcj0kYXNfYWNf TGliOyBldmFsICJ0ZXN0IFwiXCR7JGFzX3ZhcitzZXR9XCIgPSBzZXQiOyB9OyB0aGVuCi0rICAk YXNfZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsgIGFjX2NoZWNrX2xpYl9zYXZlX0xJ QlM9JExJQlMKLStMSUJTPSItbCRheF9saWIgICRMSUJTIgotK2NhdCA+Y29uZnRlc3QuJGFjX2V4 dCA8PF9BQ0VPRgotKy8qIGNvbmZkZWZzLmguICAqLwotK19BQ0VPRgotK2NhdCBjb25mZGVmcy5o ID4+Y29uZnRlc3QuJGFjX2V4dAotK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLSsv KiBlbmQgY29uZmRlZnMuaC4gICovCi0rCi0rCi0raW50Ci0rbWFpbiAoKQotK3sKLStyZXR1cm4g bWFpbiAoKTsKLSsgIDsKLSsgIHJldHVybiAwOwotK30KLStfQUNFT0YKLStybSAtZiBjb25mdGVz dC4kYWNfb2JqZXh0IGNvbmZ0ZXN0JGFjX2V4ZWV4dAotK2lmIHsgKGFjX3RyeT0iJGFjX2xpbmsi Ci0rY2FzZSAiKCgkYWNfdHJ5IiBpbgotKyAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNo bz1cJGFjX3RyeTs7Ci0rICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKLStlc2FjCi0rZXZhbCBh Y190cnlfZWNobz0iXCJcJGFzX21lOiRMSU5FTk86ICRhY190cnlfZWNob1wiIgotKyRhc19lY2hv ICIkYWNfdHJ5X2VjaG8iKSA+JjUKLSsgIChldmFsICIkYWNfbGluayIpIDI+Y29uZnRlc3QuZXIx Ci0rICBhY19zdGF0dXM9JD8KLSsgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRl c3QuZXJyCi0rICBybSAtZiBjb25mdGVzdC5lcjEKLSsgIGNhdCBjb25mdGVzdC5lcnIgPiY1Ci0r ICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotKyAgKGV4 aXQgJGFjX3N0YXR1cyk7IH0gJiYgewotKwkgdGVzdCAteiAiJGFjX2N4eF93ZXJyb3JfZmxhZyIg fHwKLSsJIHRlc3QgISAtcyBjb25mdGVzdC5lcnIKLSsgICAgICAgfSAmJiB0ZXN0IC1zIGNvbmZ0 ZXN0JGFjX2V4ZWV4dCAmJiB7Ci0rCSB0ZXN0ICIkY3Jvc3NfY29tcGlsaW5nIiA9IHllcyB8fAot KwkgJGFzX3Rlc3RfeCBjb25mdGVzdCRhY19leGVleHQKLSsgICAgICAgfTsgdGhlbgotKyAgZXZh bCAiJGFzX2FjX0xpYj15ZXMiCi0rZWxzZQotKyAgJGFzX2VjaG8gIiRhc19tZTogZmFpbGVkIHBy b2dyYW0gd2FzOiIgPiY1Ci0rc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQotKwot KwlldmFsICIkYXNfYWNfTGliPW5vIgotK2ZpCi0rCi0rcm0gLXJmIGNvbmZ0ZXN0LmRTWU0KLSty bSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0X2lwYThf Y29uZnRlc3Qub28gXAotKyAgICAgIGNvbmZ0ZXN0JGFjX2V4ZWV4dCBjb25mdGVzdC4kYWNfZXh0 Ci0rTElCUz0kYWNfY2hlY2tfbGliX3NhdmVfTElCUwotK2ZpCi0rYWNfcmVzPWBldmFsICdhc192 YWw9JHsnJGFzX2FjX0xpYid9Ci0rCQkgJGFzX2VjaG8gIiRhc192YWwiJ2AKLSsJICAgICAgIHsg JGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19yZXMiID4mNQotKyRhc19lY2hv ICIkYWNfcmVzIiA+JjY7IH0KLSthc192YWw9YGV2YWwgJ2FzX3ZhbD0keyckYXNfYWNfTGliJ30K LSsJCSAkYXNfZWNobyAiJGFzX3ZhbCInYAotKyAgIGlmIHRlc3QgIngkYXNfdmFsIiA9IHgiInll czsgdGhlbgotKyAgQk9PU1RfREFURV9USU1FX0xJQj0iLWwkYXhfbGliIiAgbGlua190aHJlYWQ9 InllcyIgYnJlYWsKLStlbHNlCi0rICBsaW5rX3RocmVhZD0ibm8iCi0rZmkKLSsKLSsgIAkJCQlk b25lCi0rCQkJCWlmIHRlc3QgIngkbGlua190aHJlYWQiPSJubyIgPSAieG5vIjsgdGhlbgotKwkJ CQkJeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IENvdWxkIG5vdCBsaW5rIGFnYWluc3QgJGF4 X2xpYiAhIiA+JjUKLSskYXNfZWNobyAiJGFzX21lOiBDb3VsZCBub3QgbGluayBhZ2FpbnN0ICRh eF9saWIgISIgPiY2O30KLSsJCQkJZmkKLSsJCQlmaQotKwotKwkJCXsgJGFzX2VjaG8gIiRhc19t ZTokTElORU5POiBjaGVja2luZyB3aGV0aGVyIHRoZSBCb29zdDo6UmVnZXggbGlicmFyeSBpcyBh dmFpbGFibGUiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIHdoZXRoZXIgdGhlIEJvb3N0OjpS ZWdleCBsaWJyYXJ5IGlzIGF2YWlsYWJsZS4uLiAiID4mNjsgfQotK2lmIHRlc3QgIiR7YXhfY3Zf Ym9vc3RfcmVnZXgrc2V0fSIgPSBzZXQ7IHRoZW4KLSsgICRhc19lY2hvX24gIihjYWNoZWQpICIg PiY2Ci0rZWxzZQotKwotKwkJCSBhY19leHQ9Y3BwCi0rYWNfY3BwPSckQ1hYQ1BQICRDUFBGTEFH UycKLSthY19jb21waWxlPSckQ1hYIC1jICRDWFhGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFj X2V4dCA+JjUnCi0rYWNfbGluaz0nJENYWCAtbyBjb25mdGVzdCRhY19leGVleHQgJENYWEZMQUdT ICRDUFBGTEFHUyAkTERGTEFHUyBjb25mdGVzdC4kYWNfZXh0ICRMSUJTID4mNScKLSthY19jb21w aWxlcl9nbnU9JGFjX2N2X2N4eF9jb21waWxlcl9nbnUKLSsKLSsJCQkgY2F0ID5jb25mdGVzdC4k YWNfZXh0IDw8X0FDRU9GCi0rLyogY29uZmRlZnMuaC4gICovCi0rX0FDRU9GCi0rY2F0IGNvbmZk ZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Ci0rY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VP RgotKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLSsjaW5jbHVkZSA8Ym9vc3QvcmVnZXguaHBwPgot KwotK2ludAotK21haW4gKCkKLSt7Ci0rYm9vc3Q6OnJlZ2V4IHIoKTsgcmV0dXJuIDA7Ci0rICA7 Ci0rICByZXR1cm4gMDsKLSt9Ci0rX0FDRU9GCi0rcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dAot K2lmIHsgKGFjX3RyeT0iJGFjX2NvbXBpbGUiCi0rY2FzZSAiKCgkYWNfdHJ5IiBpbgotKyAgKlwi KiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7Ci0rICAqKSBhY190cnlfZWNo bz0kYWNfdHJ5OzsKLStlc2FjCi0rZXZhbCBhY190cnlfZWNobz0iXCJcJGFzX21lOiRMSU5FTk86 ICRhY190cnlfZWNob1wiIgotKyRhc19lY2hvICIkYWNfdHJ5X2VjaG8iKSA+JjUKLSsgIChldmFs ICIkYWNfY29tcGlsZSIpIDI+Y29uZnRlc3QuZXIxCi0rICBhY19zdGF0dXM9JD8KLSsgIGdyZXAg LXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCi0rICBybSAtZiBjb25mdGVzdC5l cjEKLSsgIGNhdCBjb25mdGVzdC5lcnIgPiY1Ci0rICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86 IFwkPyA9ICRhY19zdGF0dXMiID4mNQotKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYgewotKwkg dGVzdCAteiAiJGFjX2N4eF93ZXJyb3JfZmxhZyIgfHwKLSsJIHRlc3QgISAtcyBjb25mdGVzdC5l cnIKLSsgICAgICAgfSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0LiRhY19vYmpleHQ7IHRoZW4KLSsgIGF4 X2N2X2Jvb3N0X3JlZ2V4PXllcwotK2Vsc2UKLSsgICRhc19lY2hvICIkYXNfbWU6IGZhaWxlZCBw cm9ncmFtIHdhczoiID4mNQotK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKLSsK LSsJYXhfY3ZfYm9vc3RfcmVnZXg9bm8KLStmaQotKwotK3JtIC1mIGNvcmUgY29uZnRlc3QuZXJy IGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAotKwkJCSBhY19leHQ9Y3BwCi0r YWNfY3BwPSckQ1hYQ1BQICRDUFBGTEFHUycKLSthY19jb21waWxlPSckQ1hYIC1jICRDWFhGTEFH UyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUnCi0rYWNfbGluaz0nJENYWCAtbyBjb25m dGVzdCRhY19leGVleHQgJENYWEZMQUdTICRDUFBGTEFHUyAkTERGTEFHUyBjb25mdGVzdC4kYWNf ZXh0ICRMSUJTID4mNScKLSthY19jb21waWxlcl9nbnU9JGFjX2N2X2N4eF9jb21waWxlcl9nbnUK LSsKLSsKLStmaQotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRheF9jdl9i b29zdF9yZWdleCIgPiY1Ci0rJGFzX2VjaG8gIiRheF9jdl9ib29zdF9yZWdleCIgPiY2OyB9Ci0r CQkJaWYgdGVzdCAieCRheF9jdl9ib29zdF9yZWdleCIgPSAieHllcyI7IHRoZW4KLSsKLStjYXQg Pj5jb25mZGVmcy5oIDw8XF9BQ0VPRgotKyNkZWZpbmUgSEFWRV9CT09TVF9SRUdFWCAvKiovCi0r X0FDRU9GCi0rCi0rCQkJCUJOPWJvb3N0X3JlZ2V4Ci0rCQkJCWZvciBheF9saWIgaW4gJEJOICRC Ti0kQ0MgJEJOLSRDQy1tdCAkQk4tJENDLW10LXMgJEJOLSRDQy1zIFwKLSsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBsaWIkQk4gbGliJEJOLSRDQyBsaWIkQk4tJENDLW10IGxpYiRCTi0k Q0MtbXQtcyBcCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGliJEJOLSRDQy1zICRC Ti1tZ3cgJEJOLW1ndy1tdCBcCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJEJOLW1n dy1tdC1zICRCTi1tZ3ctcyAgXAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRCTi0k Q0MtbXQtJEJPT1NUTElCX01EV19WRVJTSU9OIDsgZG8KLSsJCQkJICAgIGFzX2FjX0xpYj1gJGFz X2VjaG8gImFjX2N2X2xpYl8kYXhfbGliJydfbWFpbiIgfCAkYXNfdHJfc2hgCi0reyAkYXNfZWNo byAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciBtYWluIGluIC1sJGF4X2xpYiIgPiY1Ci0r JGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yIG1haW4gaW4gLWwkYXhfbGliLi4uICIgPiY2OyB9Ci0r aWYgeyBhc192YXI9JGFzX2FjX0xpYjsgZXZhbCAidGVzdCBcIlwkeyRhc192YXIrc2V0fVwiID0g c2V0IjsgfTsgdGhlbgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rICBh Y19jaGVja19saWJfc2F2ZV9MSUJTPSRMSUJTCi0rTElCUz0iLWwkYXhfbGliICAkTElCUyIKLStj YXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLSsvKiBjb25mZGVmcy5oLiAgKi8KLStfQUNF T0YKLStjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKLStjYXQgPj5jb25mdGVzdC4k YWNfZXh0IDw8X0FDRU9GCi0rLyogZW5kIGNvbmZkZWZzLmguICAqLwotKwotKwotK2ludAotK21h aW4gKCkKLSt7Ci0rcmV0dXJuIG1haW4gKCk7Ci0rICA7Ci0rICByZXR1cm4gMDsKLSt9Ci0rX0FD RU9GCi0rcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdCRhY19leGVleHQKLStpZiB7 IChhY190cnk9IiRhY19saW5rIgotK2Nhc2UgIigoJGFjX3RyeSIgaW4KLSsgICpcIiogfCAqXGAq IHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OwotKyAgKikgYWNfdHJ5X2VjaG89JGFjX3Ry eTs7Ci0rZXNhYwotK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5 X2VjaG9cIiIKLSskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1Ci0rICAoZXZhbCAiJGFjX2xp bmsiKSAyPmNvbmZ0ZXN0LmVyMQotKyAgYWNfc3RhdHVzPSQ/Ci0rICBncmVwIC12ICdeICorJyBj b25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgotKyAgcm0gLWYgY29uZnRlc3QuZXIxCi0rICBjYXQg Y29uZnRlc3QuZXJyID4mNQotKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNf c3RhdHVzIiA+JjUKLSsgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmIHsKLSsJIHRlc3QgLXogIiRh Y19jeHhfd2Vycm9yX2ZsYWciIHx8Ci0rCSB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCi0rICAgICAg IH0gJiYgdGVzdCAtcyBjb25mdGVzdCRhY19leGVleHQgJiYgewotKwkgdGVzdCAiJGNyb3NzX2Nv bXBpbGluZyIgPSB5ZXMgfHwKLSsJICRhc190ZXN0X3ggY29uZnRlc3QkYWNfZXhlZXh0Ci0rICAg ICAgIH07IHRoZW4KLSsgIGV2YWwgIiRhc19hY19MaWI9eWVzIgotK2Vsc2UKLSsgICRhc19lY2hv ICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQotK3NlZCAncy9eL3wgLycgY29uZnRl c3QuJGFjX2V4dCA+JjUKLSsKLSsJZXZhbCAiJGFzX2FjX0xpYj1ubyIKLStmaQotKwotK3JtIC1y ZiBjb25mdGVzdC5kU1lNCi0rcm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29i amV4dCBjb25mdGVzdF9pcGE4X2NvbmZ0ZXN0Lm9vIFwKLSsgICAgICBjb25mdGVzdCRhY19leGVl eHQgY29uZnRlc3QuJGFjX2V4dAotK0xJQlM9JGFjX2NoZWNrX2xpYl9zYXZlX0xJQlMKLStmaQot K2FjX3Jlcz1gZXZhbCAnYXNfdmFsPSR7JyRhc19hY19MaWInfQotKwkJICRhc19lY2hvICIkYXNf dmFsIidgCi0rCSAgICAgICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNf cmVzIiA+JjUKLSskYXNfZWNobyAiJGFjX3JlcyIgPiY2OyB9Ci0rYXNfdmFsPWBldmFsICdhc192 YWw9JHsnJGFzX2FjX0xpYid9Ci0rCQkgJGFzX2VjaG8gIiRhc192YWwiJ2AKLSsgICBpZiB0ZXN0 ICJ4JGFzX3ZhbCIgPSB4IiJ5ZXM7IHRoZW4KLSsgIEJPT1NUX1JFR0VYX0xJQj0iLWwkYXhfbGli IiAgbGlua190aHJlYWQ9InllcyIgYnJlYWsKLStlbHNlCi0rICBsaW5rX3RocmVhZD0ibm8iCi0r ZmkKLSsKLSsgIAkJCQlkb25lCi0rCQkJCWlmIHRlc3QgIngkbGlua190aHJlYWQiID0gInhubyI7 IHRoZW4KLSsJCQkJCXsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBDb3VsZCBub3QgbGluayBh Z2FpbnN0ICRheF9saWIgISIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogQ291bGQgbm90IGxpbmsg YWdhaW5zdCAkYXhfbGliICEiID4mNjt9Ci0rCQkJCWZpCi0rCQkJZmkKLSsKLSsJCQl7ICRhc19l Y2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgd2hldGhlciB0aGUgQm9vc3Q6OlVuaXRUZXN0 RnJhbWV3b3JrIGxpYnJhcnkgaXMgYXZhaWxhYmxlIiA+JjUKLSskYXNfZWNob19uICJjaGVja2lu ZyB3aGV0aGVyIHRoZSBCb29zdDo6VW5pdFRlc3RGcmFtZXdvcmsgbGlicmFyeSBpcyBhdmFpbGFi bGUuLi4gIiA+JjY7IH0KLStpZiB0ZXN0ICIke2F4X2N2X2Jvb3N0X3VuaXRfdGVzdF9mcmFtZXdv cmsrc2V0fSIgPSBzZXQ7IHRoZW4KLSsgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci0rZWxz ZQotKwotKwkJCSBhY19leHQ9Y3BwCi0rYWNfY3BwPSckQ1hYQ1BQICRDUFBGTEFHUycKLSthY19j b21waWxlPSckQ1hYIC1jICRDWFhGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUn Ci0rYWNfbGluaz0nJENYWCAtbyBjb25mdGVzdCRhY19leGVleHQgJENYWEZMQUdTICRDUFBGTEFH UyAkTERGTEFHUyBjb25mdGVzdC4kYWNfZXh0ICRMSUJTID4mNScKLSthY19jb21waWxlcl9nbnU9 JGFjX2N2X2N4eF9jb21waWxlcl9nbnUKLSsKLSsJCQkgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8 X0FDRU9GCi0rLyogY29uZmRlZnMuaC4gICovCi0rX0FDRU9GCi0rY2F0IGNvbmZkZWZzLmggPj5j b25mdGVzdC4kYWNfZXh0Ci0rY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotKy8qIGVu ZCBjb25mZGVmcy5oLiAgKi8KLSsjaW5jbHVkZSA8Ym9vc3QvdGVzdC91bml0X3Rlc3QuaHBwPgot K2ludAotK21haW4gKCkKLSt7Ci0rdXNpbmcgYm9vc3Q6OnVuaXRfdGVzdDo6dGVzdF9zdWl0ZTsK LSsJCQkJCSAgICAgICAgICAgICAgICAgdGVzdF9zdWl0ZSogdGVzdD0gQk9PU1RfVEVTVF9TVUlU RSggIlVuaXQgdGVzdCBleGFtcGxlIDEiICk7IHJldHVybiAwOwotKyAgOwotKyAgcmV0dXJuIDA7 Ci0rfQotK19BQ0VPRgotK3JtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQKLStpZiB7IChhY190cnk9 IiRhY19jb21waWxlIgotK2Nhc2UgIigoJGFjX3RyeSIgaW4KLSsgICpcIiogfCAqXGAqIHwgKlxc KikgYWNfdHJ5X2VjaG89XCRhY190cnk7OwotKyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7Ci0r ZXNhYwotK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9c IiIKLSskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1Ci0rICAoZXZhbCAiJGFjX2NvbXBpbGUi KSAyPmNvbmZ0ZXN0LmVyMQotKyAgYWNfc3RhdHVzPSQ/Ci0rICBncmVwIC12ICdeICorJyBjb25m dGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgotKyAgcm0gLWYgY29uZnRlc3QuZXIxCi0rICBjYXQgY29u ZnRlc3QuZXJyID4mNQotKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3Rh dHVzIiA+JjUKLSsgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmIHsKLSsJIHRlc3QgLXogIiRhY19j eHhfd2Vycm9yX2ZsYWciIHx8Ci0rCSB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCi0rICAgICAgIH0g JiYgdGVzdCAtcyBjb25mdGVzdC4kYWNfb2JqZXh0OyB0aGVuCi0rICBheF9jdl9ib29zdF91bml0 X3Rlc3RfZnJhbWV3b3JrPXllcwotK2Vsc2UKLSsgICRhc19lY2hvICIkYXNfbWU6IGZhaWxlZCBw cm9ncmFtIHdhczoiID4mNQotK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKLSsK LSsJYXhfY3ZfYm9vc3RfdW5pdF90ZXN0X2ZyYW1ld29yaz1ubwotK2ZpCi0rCi0rcm0gLWYgY29y ZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0Ci0rCQkJ IGFjX2V4dD1jcHAKLSthY19jcHA9JyRDWFhDUFAgJENQUEZMQUdTJwotK2FjX2NvbXBpbGU9JyRD WFggLWMgJENYWEZMQUdTICRDUFBGTEFHUyBjb25mdGVzdC4kYWNfZXh0ID4mNScKLSthY19saW5r PSckQ1hYIC1vIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAkQ1hYRkxBR1MgJENQUEZMQUdTICRMREZMQUdT IGNvbmZ0ZXN0LiRhY19leHQgJExJQlMgPiY1JwotK2FjX2NvbXBpbGVyX2dudT0kYWNfY3ZfY3h4 X2NvbXBpbGVyX2dudQotKwotKwotK2ZpCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJl c3VsdDogJGF4X2N2X2Jvb3N0X3VuaXRfdGVzdF9mcmFtZXdvcmsiID4mNQotKyRhc19lY2hvICIk YXhfY3ZfYm9vc3RfdW5pdF90ZXN0X2ZyYW1ld29yayIgPiY2OyB9Ci0rCQkJaWYgdGVzdCAieCRh eF9jdl9ib29zdF91bml0X3Rlc3RfZnJhbWV3b3JrIiA9ICJ4eWVzIjsgdGhlbgotKwotK2NhdCA+ PmNvbmZkZWZzLmggPDxcX0FDRU9GCi0rI2RlZmluZSBIQVZFX0JPT1NUX1VOSVRfVEVTVF9GUkFN RVdPUksgLyoqLwotK19BQ0VPRgotKwotKwkJCUJOPWJvb3N0X3VuaXRfdGVzdF9mcmFtZXdvcmsK LSsgICAgCQlzYXZlZF9sZGZsYWdzPSIke0xERkxBR1N9IgotKwkJCWZvciBheF9saWIgaW4gJEJO ICRCTi0kQ0MgJEJOLSRDQy1tdCAkQk4tJENDLW10LXMgJEJOLSRDQy1zIFwKLSsgICAgICAgICAg ICAgICAgICAgICAgICAgIGxpYiRCTiBsaWIkQk4tJENDIGxpYiRCTi0kQ0MtbXQgbGliJEJOLSRD Qy1tdC1zIFwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgIGxpYiRCTi0kQ0MtcyAkQk4tbWd3 ICRCTi1tZ3ctbXQgJEJOLW1ndy1tdC1zIFwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICRC Ti1tZ3ctcyAkQk4tJENDLW10LSRCT09TVExJQl9NRFdfVkVSU0lPTiA7IGRvCi0rICAgICAgICAg ICAgICAgIExERkxBR1M9IiR7TERGTEFHU30gLWwkYXhfbGliIgotKyAgICAJCQl7ICRhc19lY2hv ICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgdGhlIG5hbWUgb2YgdGhlIEJvb3N0OjpVbml0VGVz dEZyYW1ld29yayBsaWJyYXJ5IiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyB0aGUgbmFtZSBv ZiB0aGUgQm9vc3Q6OlVuaXRUZXN0RnJhbWV3b3JrIGxpYnJhcnkuLi4gIiA+JjY7IH0KLStpZiB0 ZXN0ICIke2F4X2N2X2Jvb3N0X3VuaXRfdGVzdF9mcmFtZXdvcmsrc2V0fSIgPSBzZXQ7IHRoZW4K LSsgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci0rZWxzZQotKwotKwkJCSBhY19leHQ9Y3Bw Ci0rYWNfY3BwPSckQ1hYQ1BQICRDUFBGTEFHUycKLSthY19jb21waWxlPSckQ1hYIC1jICRDWFhG TEFHUyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUnCi0rYWNfbGluaz0nJENYWCAtbyBj b25mdGVzdCRhY19leGVleHQgJENYWEZMQUdTICRDUFBGTEFHUyAkTERGTEFHUyBjb25mdGVzdC4k YWNfZXh0ICRMSUJTID4mNScKLSthY19jb21waWxlcl9nbnU9JGFjX2N2X2N4eF9jb21waWxlcl9n bnUKLSsKLSsgICAgICAgICAgICAgICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLSsv KiBjb25mZGVmcy5oLiAgKi8KLStfQUNFT0YKLStjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRh Y19leHQKLStjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0rLyogZW5kIGNvbmZkZWZz LmguICAqLwotKyNpbmNsdWRlIDxib29zdC90ZXN0L3VuaXRfdGVzdC5ocHA+Ci0raW50Ci0rbWFp biAoKQotK3sKLSt1c2luZyBib29zdDo6dW5pdF90ZXN0Ojp0ZXN0X3N1aXRlOwotKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X3N1aXRlKiB0ZXN0PSBCT09TVF9URVNUX1NVSVRF KCAiVW5pdCB0ZXN0IGV4YW1wbGUgMSIgKTsgcmV0dXJuIDA7Ci0rICA7Ci0rICByZXR1cm4gMDsK LSt9Ci0rX0FDRU9GCi0rcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdCRhY19leGVl eHQKLStpZiB7IChhY190cnk9IiRhY19saW5rIgotK2Nhc2UgIigoJGFjX3RyeSIgaW4KLSsgICpc IiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OwotKyAgKikgYWNfdHJ5X2Vj aG89JGFjX3RyeTs7Ci0rZXNhYwotK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5P OiAkYWNfdHJ5X2VjaG9cIiIKLSskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1Ci0rICAoZXZh bCAiJGFjX2xpbmsiKSAyPmNvbmZ0ZXN0LmVyMQotKyAgYWNfc3RhdHVzPSQ/Ci0rICBncmVwIC12 ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgotKyAgcm0gLWYgY29uZnRlc3QuZXIx Ci0rICBjYXQgY29uZnRlc3QuZXJyID4mNQotKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBc JD8gPSAkYWNfc3RhdHVzIiA+JjUKLSsgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmIHsKLSsJIHRl c3QgLXogIiRhY19jeHhfd2Vycm9yX2ZsYWciIHx8Ci0rCSB0ZXN0ICEgLXMgY29uZnRlc3QuZXJy Ci0rICAgICAgIH0gJiYgdGVzdCAtcyBjb25mdGVzdCRhY19leGVleHQgJiYgewotKwkgdGVzdCAi JGNyb3NzX2NvbXBpbGluZyIgPSB5ZXMgfHwKLSsJICRhc190ZXN0X3ggY29uZnRlc3QkYWNfZXhl ZXh0Ci0rICAgICAgIH07IHRoZW4KLSsgIGxpbmtfdGhyZWFkPSJ5ZXMiCi0rZWxzZQotKyAgJGFz X2VjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Ci0rc2VkICdzL14vfCAvJyBj b25mdGVzdC4kYWNfZXh0ID4mNQotKwotKwlsaW5rX3RocmVhZD0ibm8iCi0rZmkKLSsKLStybSAt cmYgY29uZnRlc3QuZFNZTQotK3JtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19v YmpleHQgY29uZnRlc3RfaXBhOF9jb25mdGVzdC5vbyBcCi0rICAgICAgY29uZnRlc3QkYWNfZXhl ZXh0IGNvbmZ0ZXN0LiRhY19leHQKLSsKLSsJCQkgYWNfZXh0PWNwcAotK2FjX2NwcD0nJENYWENQ UCAkQ1BQRkxBR1MnCi0rYWNfY29tcGlsZT0nJENYWCAtYyAkQ1hYRkxBR1MgJENQUEZMQUdTIGNv bmZ0ZXN0LiRhY19leHQgPiY1JwotK2FjX2xpbms9JyRDWFggLW8gY29uZnRlc3QkYWNfZXhlZXh0 ICRDWFhGTEFHUyAkQ1BQRkxBR1MgJExERkxBR1MgY29uZnRlc3QuJGFjX2V4dCAkTElCUyA+JjUn Ci0rYWNfY29tcGlsZXJfZ251PSRhY19jdl9jeHhfY29tcGlsZXJfZ251Ci0rCi0rCi0rZmkKLSt7 ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYXhfY3ZfYm9vc3RfdW5pdF90ZXN0 X2ZyYW1ld29yayIgPiY1Ci0rJGFzX2VjaG8gIiRheF9jdl9ib29zdF91bml0X3Rlc3RfZnJhbWV3 b3JrIiA+JjY7IH0KLSsgICAgICAgICAgICAgICAgTERGTEFHUz0iJHtzYXZlZF9sZGZsYWdzfSIK LSsJCQkgICAgaWYgdGVzdCAieCRsaW5rX3RocmVhZCIgPSAieHllcyI7IHRoZW4KLSsgICAgICAg ICAgICAgICAgICAgIEJPT1NUX1VOSVRfVEVTVF9GUkFNRVdPUktfTElCPSItbCRheF9saWIiCi0r Ci0rCQkJCQlicmVhawotKwkJCQlmaQotKyAgICAgICAgICAgICAgZG9uZQotKwkJCSAgICBpZiB0 ZXN0ICJ4JGxpbmtfdGhyZWFkIiA9ICJ4bm8iOyB0aGVuCi0rCQkJCSAgIHsgJGFzX2VjaG8gIiRh c19tZTokTElORU5POiBDb3VsZCBub3QgbGluayBhZ2FpbnN0ICRheF9saWIgISIgPiY1Ci0rJGFz X2VjaG8gIiRhc19tZTogQ291bGQgbm90IGxpbmsgYWdhaW5zdCAkYXhfbGliICEiID4mNjt9Ci0r CQkJCWZpCi0rCQkJZmkKLSsJCWZpCi0rICAgICAgICBDUFBGTEFHUz0iJENQUEZMQUdTX1NBVkVE IgotKyAgICAgICAgTERGTEFHUz0iJExERkxBR1NfU0FWRUQiCi0rCWZpCi0rCi0rCi0rCi0rCi0r Ci0rCi0rCi0rCi0rIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotKyMgU3VwcG9ydCBmb3IgTXlTUUwgYmFja2VuZCAo QyBjbGllbnQgQVBJKTogaHR0cDovL3d3dy5teXNxbC5vcmcKLSsjIC0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0rIyBD aGVjayB3aGV0aGVyIC0tZW5hYmxlLWJhY2tlbmQtbXlzcWwgd2FzIGdpdmVuLgotK2lmIHRlc3Qg IiR7ZW5hYmxlX2JhY2tlbmRfbXlzcWwrc2V0fSIgPSBzZXQ7IHRoZW4KLSsgIGVuYWJsZXZhbD0k ZW5hYmxlX2JhY2tlbmRfbXlzcWw7ICBpZiB0ZXN0ICIkZW5hYmxldmFsIiA9IG5vOyB0aGVuCi0r ICAgICAgCSBlbmFibGVfYmFja2VuZF9teXNxbD1ubwotKyAgICAgIGVsc2UKLSsJIGVuYWJsZV9i YWNrZW5kX215c3FsPXllcwotKyAgICAgIGZpCi0rZWxzZQotKyAgIGVuYWJsZV9iYWNrZW5kX215 c3FsPW5vCi0rCi0rZmkKLSsKLSsKLStpZiB0ZXN0ICJ4JGVuYWJsZV9iYWNrZW5kX215c3FsIiA9 ICJ4eWVzIjsgdGhlbgotKyAgIE1ZU1FMX0RJUlM9Im15c3FsIgotKyAgIE1ZU1FMX1JFUV9WRVJT SU9OPSIzLjAuMCIKLSsKLSsKLSsjIENoZWNrIHdoZXRoZXIgLS13aXRoLW15c3FsIHdhcyBnaXZl bi4KLStpZiB0ZXN0ICIke3dpdGhfbXlzcWwrc2V0fSIgPSBzZXQ7IHRoZW4KLSsgIHdpdGh2YWw9 JHdpdGhfbXlzcWw7Ci0rCU1ZU1FMX2luY19jaGVjaz0iJHdpdGhfbXlzcWwvaW5jbHVkZSIKLSsg ICAgICAgIGlmIHRlc3QgIiR3aXRodmFsIiA9ICJubyI7IHRoZW4KLSsgICAgICAgICAgICB3YW50 X215c3FsPSJubyIKLSsgICAgICAgIGVsaWYgdGVzdCAiJHdpdGh2YWwiID0gInllcyI7IHRoZW4K LSsgICAgICAgICAgICB3YW50X215c3FsPSJ5ZXMiCi0rICAgICAgICBlbHNlCi0rICAgICAgICAg ICAgd2FudF9teXNxbD0ieWVzIgotKyAgICAgICAgICAgIE1ZU1FMX0NPTkZJRz0iJHdpdGh2YWwi Ci0rICAgICAgICBmaQotKwotK2Vsc2UKLSsgIHdhbnRfbXlzcWw9InllcyIKLSsJTVlTUUxfaW5j X2NoZWNrPSIvdXNyL2luY2x1ZGUgL3Vzci9sb2NhbCAvb3B0IgotKwotK2ZpCi0rCi0rCi0rICAg IE1ZU1FMX0NGTEFHUz0iIgotKyAgICBNWVNRTF9MREZMQUdTPSIiCi0rICAgIE1ZU1FMX1ZFUlNJ T049IiIKLSsKLSsKLSsgICAgaWYgdGVzdCAiJHdhbnRfbXlzcWwiID0gInllcyI7IHRoZW4KLSsK LSsgICAgICAgIGlmIHRlc3QgLXogIiRNWVNRTF9DT05GSUciIC1vIHRlc3Q7IHRoZW4KLSsgICAg ICAgICAgICAjIEV4dHJhY3QgdGhlIGZpcnN0IHdvcmQgb2YgIm15c3FsX2NvbmZpZyIsIHNvIGl0 IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3MuCi0rc2V0IGR1bW15IG15c3FsX2NvbmZp ZzsgYWNfd29yZD0kMgotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3Ig JGFjX3dvcmQiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIGZvciAkYWNfd29yZC4uLiAiID4m NjsgfQotK2lmIHRlc3QgIiR7YWNfY3ZfcGF0aF9NWVNRTF9DT05GSUcrc2V0fSIgPSBzZXQ7IHRo ZW4KLSsgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci0rZWxzZQotKyAgY2FzZSAkTVlTUUxf Q09ORklHIGluCi0rICBbXFwvXSogfCA/OltcXC9dKikKLSsgIGFjX2N2X3BhdGhfTVlTUUxfQ09O RklHPSIkTVlTUUxfQ09ORklHIiAjIExldCB0aGUgdXNlciBvdmVycmlkZSB0aGUgdGVzdCB3aXRo IGEgcGF0aC4KLSsgIDs7Ci0rICAqKQotKyAgYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NF UEFSQVRPUgotK2ZvciBhc19kaXIgaW4gJFBBVEgKLStkbwotKyAgSUZTPSRhc19zYXZlX0lGUwot KyAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KLSsgIGZvciBhY19leGVjX2V4dCBpbiAn JyAkYWNfZXhlY3V0YWJsZV9leHRlbnNpb25zOyBkbwotKyAgaWYgeyB0ZXN0IC1mICIkYXNfZGly LyRhY193b3JkJGFjX2V4ZWNfZXh0IiAmJiAkYXNfdGVzdF94ICIkYXNfZGlyLyRhY193b3JkJGFj X2V4ZWNfZXh0IjsgfTsgdGhlbgotKyAgICBhY19jdl9wYXRoX01ZU1FMX0NPTkZJRz0iJGFzX2Rp ci8kYWNfd29yZCRhY19leGVjX2V4dCIKLSsgICAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBm b3VuZCAkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiA+JjUKLSsgICAgYnJlYWsgMgotKyAg ZmkKLStkb25lCi0rZG9uZQotK0lGUz0kYXNfc2F2ZV9JRlMKLSsKLSsgIDs7Ci0rZXNhYwotK2Zp Ci0rTVlTUUxfQ09ORklHPSRhY19jdl9wYXRoX01ZU1FMX0NPTkZJRwotK2lmIHRlc3QgLW4gIiRN WVNRTF9DT05GSUciOyB0aGVuCi0rICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0 OiAkTVlTUUxfQ09ORklHIiA+JjUKLSskYXNfZWNobyAiJE1ZU1FMX0NPTkZJRyIgPiY2OyB9Ci0r ZWxzZQotKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogbm8iID4mNQotKyRh c19lY2hvICJubyIgPiY2OyB9Ci0rZmkKLSsKLSsKLSsgICAgICAgIGZpCi0rCi0rICAgICAgICAg ICAgICAgIGlmIHRlc3QgISAteCAiJE1ZU1FMX0NPTkZJRyI7IHRoZW4KLSsgICAgICAgICAgICB7 IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogJE1ZU1FMX0NPTkZJRyBkb2VzIG5v dCBleGlzdCBvciBpdCBpcyBub3QgYW4gZXhlY3R1YWJsZSBmaWxlIiA+JjUKLSskYXNfZWNobyAi JGFzX21lOiBlcnJvcjogJE1ZU1FMX0NPTkZJRyBkb2VzIG5vdCBleGlzdCBvciBpdCBpcyBub3Qg YW4gZXhlY3R1YWJsZSBmaWxlIiA+JjI7fQotKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQot KyAgICAgICAgICAgIE1ZU1FMX0NPTkZJRz0ibm8iCi0rICAgICAgICAgICAgZm91bmRfbXlzcWw9 Im5vIgotKyAgICAgICAgZmkKLSsKLSsgICAgICAgIGlmIHRlc3QgIiRNWVNRTF9DT05GSUciICE9 ICJubyI7IHRoZW4KLSsgICAgICAgICAgICAjCi0rICAgICAgICAgICAgIyBMb29rIGZvciBNeVNR TCBDIEFQSSBoZWFkZXJzCi0rICAgICAgICAgICAgIwotKyAgICAgICAgICAgIHsgJGFzX2VjaG8g IiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgTXlTUUwgaW5jbHVkZSBkaXJlY3RvcnkiID4m NQotKyRhc19lY2hvX24gImNoZWNraW5nIGZvciBNeVNRTCBpbmNsdWRlIGRpcmVjdG9yeS4uLiAi ID4mNjsgfQotKyAgICAgICAgICAgIE1ZU1FMX2luY2Rpcj0KLSsgICAgICAgICAgICBmb3IgbXlz cWxfaW5jX2RpciBpbiAkTVlTUUxfaW5jX2NoZWNrCi0rICAgICAgICAgICAgZG8KLSsgICAgICAg ICAgICAgICAgaWYgdGVzdCAtZCAiJG15c3FsX2luY19kaXIiIFwKLSsgICAgICAgICAgICAgICAg JiYgdGVzdCAtZiAiJG15c3FsX2luY19kaXIvbXlzcWwvbXlzcWwuaCIKLSsgICAgICAgICAgICAg ICAgdGhlbgotKyAgICAgICAgICAgICAgICAgICAgTVlTUUxfaW5jZGlyPSRteXNxbF9pbmNfZGly Ci0rICAgICAgICAgICAgICAgICAgICBicmVhawotKyAgICAgICAgICAgICAgICBmaQotKyAgICAg ICAgICAgIGRvbmUKLSsKLSsgICAgICAgICAgICBpZiB0ZXN0IC16ICIkTVlTUUxfaW5jZGlyIgot KyAgICAgICAgICAgIHRoZW4KLSsgICAgICAgICAgICAgICAgeyB7ICRhc19lY2hvICIkYXNfbWU6 JExJTkVOTzogZXJyb3I6IERpZG4ndCBmaW5kIHRoZSBNeVNRTCBpbmNsdWRlIGRpciBpbiAnJE1Z U1FMX2luY19jaGVjayciID4mNQotKyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBEaWRuJ3QgZmlu ZCB0aGUgTXlTUUwgaW5jbHVkZSBkaXIgaW4gJyRNWVNRTF9pbmNfY2hlY2snIiA+JjI7fQotKyAg IHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQotKyAgICAgICAgICAgIGZpCi0rCi0rICAgICAgICAg ICAgY2FzZSAiJE1ZU1FMX2luY2RpciIgaW4KLSsgICAgICAgICAgICAgICAgLyogKSA7OwotKyAg ICAgICAgICAgICAgICAqICkgIHsgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBU aGUgTXlTUUwgaW5jbHVkZSBkaXJlY3RvcnkgKCRNWVNRTF9pbmNkaXIpIG11c3QgYmUgYW4gYWJz b2x1dGUgcGF0aC4iID4mNQotKyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBUaGUgTXlTUUwgaW5j bHVkZSBkaXJlY3RvcnkgKCRNWVNRTF9pbmNkaXIpIG11c3QgYmUgYW4gYWJzb2x1dGUgcGF0aC4i ID4mMjt9Ci0rICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9IDs7Ci0rICAgICAgICAgICAgZXNh YwotKwotKyAgICAgICAgICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRN WVNRTF9pbmNkaXIiID4mNQotKyRhc19lY2hvICIkTVlTUUxfaW5jZGlyIiA+JjY7IH0KLSsKLSsg ICAgICAgICAgICBpZiB0ZXN0ICIkTVlTUUxfaW5jZGlyIiA9ICIvdXNyL2luY2x1ZGUiOyB0aGVu Ci0rICAgICAgICAgICAgICBNWVNRTF9DRkxBR1M9IiIKLSsgICAgICAgICAgICBlbHNlCi0rICAg ICAgICAgICAgICBNWVNRTF9DRkxBR1M9Ii1JJHtNWVNRTF9pbmNkaXJ9IgotKyAgICAgICAgICAg IGZpCi0rCi0rICAgICAgICAgICAgTVlTUUxfTERGTEFHUz0iYCRNWVNRTF9DT05GSUcgLS1saWJz YCIKLSsKLSsgICAgICAgICAgICBNWVNRTF9WRVJTSU9OPWAkTVlTUUxfQ09ORklHIC0tdmVyc2lv bmAKLSsKLSsKLStjYXQgPj5jb25mZGVmcy5oIDw8XF9BQ0VPRgotKyNkZWZpbmUgSEFWRV9NWVNR TCAxCi0rX0FDRU9GCi0rCi0rCi0rICAgICAgICAgICAgZm91bmRfbXlzcWw9InllcyIKLSsgICAg ICAgIGVsc2UKLSsgICAgICAgICAgICBmb3VuZF9teXNxbD0ibm8iCi0rICAgICAgICBmaQotKyAg ICBmaQotKwotKwotKwotKyAgICBteXNxbF92ZXJzaW9uX3JlcT0kTVlTUUxfUkVRX1ZFUlNJT04K LSsKLSsgICAgaWYgdGVzdCAiJGZvdW5kX215c3FsIiA9ICJ5ZXMiIC1hIC1uICIkbXlzcWxfdmVy c2lvbl9yZXEiOyB0aGVuCi0rCi0rICAgICAgICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzog Y2hlY2tpbmcgaWYgTXlTUUwgdmVyc2lvbiBpcyA+PSAkbXlzcWxfdmVyc2lvbl9yZXEiID4mNQot KyRhc19lY2hvX24gImNoZWNraW5nIGlmIE15U1FMIHZlcnNpb24gaXMgPj0gJG15c3FsX3ZlcnNp b25fcmVxLi4uICIgPiY2OyB9Ci0rCi0rICAgICAgICAgICAgICAgICAgICAgICAgbXlzcWxfdmVy c2lvbl9yZXFfbWFqb3I9YGV4cHIgJG15c3FsX3ZlcnNpb25fcmVxIDogJ1woWzAtOV0qXCknYAot KyAgICAgICAgbXlzcWxfdmVyc2lvbl9yZXFfbWlub3I9YGV4cHIgJG15c3FsX3ZlcnNpb25fcmVx IDogJ1swLTldKlwuXChbMC05XSpcKSdgCi0rICAgICAgICBteXNxbF92ZXJzaW9uX3JlcV9taWNy bz1gZXhwciAkbXlzcWxfdmVyc2lvbl9yZXEgOiAnWzAtOV0qXC5bMC05XSpcLlwoWzAtOV0qXCkn YAotKyAgICAgICAgaWYgdGVzdCAieCRteXNxbF92ZXJzaW9uX3JlcV9taWNybyIgPSAieCI7IHRo ZW4KLSsgICAgICAgICAgICBteXNxbF92ZXJzaW9uX3JlcV9taWNybz0iMCIKLSsgICAgICAgIGZp Ci0rCi0rICAgICAgICBteXNxbF92ZXJzaW9uX3JlcV9udW1iZXI9YGV4cHIgJG15c3FsX3ZlcnNp b25fcmVxX21ham9yIFwqIDEwMDAwMDAgXAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgXCsgJG15c3FsX3ZlcnNpb25fcmVxX21pbm9yIFwqIDEwMDAgXAotKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXCsgJG15c3FsX3ZlcnNpb25fcmVxX21pY3JvYAotKwot KyAgICAgICAgICAgICAgICAgICAgICAgIG15c3FsX3ZlcnNpb25fbWFqb3I9YGV4cHIgJE1ZU1FM X1ZFUlNJT04gOiAnXChbMC05XSpcKSdgCi0rICAgICAgICBteXNxbF92ZXJzaW9uX21pbm9yPWBl eHByICRNWVNRTF9WRVJTSU9OIDogJ1swLTldKlwuXChbMC05XSpcKSdgCi0rICAgICAgICBteXNx bF92ZXJzaW9uX21pY3JvPWBleHByICRNWVNRTF9WRVJTSU9OIDogJ1swLTldKlwuWzAtOV0qXC5c KFswLTldKlwpJ2AKLSsgICAgICAgIGlmIHRlc3QgIngkbXlzcWxfdmVyc2lvbl9taWNybyIgPSAi eCI7IHRoZW4KLSsgICAgICAgICAgICBteXNxbF92ZXJzaW9uX21pY3JvPSIwIgotKyAgICAgICAg ZmkKLSsKLSsgICAgICAgIG15c3FsX3ZlcnNpb25fbnVtYmVyPWBleHByICRteXNxbF92ZXJzaW9u X21ham9yIFwqIDEwMDAwMDAgXAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg XCsgJG15c3FsX3ZlcnNpb25fbWlub3IgXCogMTAwMCBcCi0rICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBcKyAkbXlzcWxfdmVyc2lvbl9taWNyb2AKLSsKLSsgICAgICAgIG15c3Fs X3ZlcnNpb25fY2hlY2s9YGV4cHIgJG15c3FsX3ZlcnNpb25fbnVtYmVyIFw+XD0gJG15c3FsX3Zl cnNpb25fcmVxX251bWJlcmAKLSsgICAgICAgIGlmIHRlc3QgIiRteXNxbF92ZXJzaW9uX2NoZWNr IiA9ICIxIjsgdGhlbgotKyAgICAgICAgICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBy ZXN1bHQ6IHllcyIgPiY1Ci0rJGFzX2VjaG8gInllcyIgPiY2OyB9Ci0rICAgICAgICBlbHNlCi0r ICAgICAgICAgICAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogbm8iID4mNQot KyRhc19lY2hvICJubyIgPiY2OyB9Ci0rICAgICAgICBmaQotKyAgICBmaQotKwotKwotKwotKwot KwotK2ZpCi0rIGlmIHRlc3QgIngkZW5hYmxlX2JhY2tlbmRfbXlzcWwiID0geHllczsgdGhlbgot KyAgSEFWRV9NWVNRTF9UUlVFPQotKyAgSEFWRV9NWVNRTF9GQUxTRT0nIycKLStlbHNlCi0rICBI QVZFX01ZU1FMX1RSVUU9JyMnCi0rICBIQVZFX01ZU1FMX0ZBTFNFPQotK2ZpCi0rCi0rI01ZU1FM X0RJUlM9Im15c3FsIgotKwotKwotKwotKwotKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotKyMgU3VwcG9ydCBmb3Ig T3JhY2xlIGJhY2tlbmQKLSsjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSsjIENoZWNrIHdoZXRoZXIgLS1lbmFibGUt YmFja2VuZC1vcmFjbGUgd2FzIGdpdmVuLgotK2lmIHRlc3QgIiR7ZW5hYmxlX2JhY2tlbmRfb3Jh Y2xlK3NldH0iID0gc2V0OyB0aGVuCi0rICBlbmFibGV2YWw9JGVuYWJsZV9iYWNrZW5kX29yYWNs ZTsgIGlmIHRlc3QgIiRlbmFibGV2YWwiID0gbm87IHRoZW4KLSsgICAgICAJIGVuYWJsZV9iYWNr ZW5kX29yYWNsZT1ubwotKyAgICAgIGVsc2UKLSsJIGVuYWJsZV9iYWNrZW5kX29yYWNsZT15ZXMK LSsgICAgICBmaQotK2Vsc2UKLSsgICBlbmFibGVfYmFja2VuZF9vcmFjbGU9bm8KLSsKLStmaQot KwotKwotK2lmIHRlc3QgIngkZW5hYmxlX2JhY2tlbmRfb3JhY2xlIiA9ICJ4eWVzIjsgdGhlbgot KyAgIE9SQUNMRV9ESVJTPSJvcmFjbGUiCi0rICAgT1JBQ0xFX09DSV9SRVFfVkVSU0lPTj0iOS4w IgotKwotKwotKwotKyMgQ2hlY2sgd2hldGhlciAtLXdpdGgtb3JhY2xlIHdhcyBnaXZlbi4KLStp ZiB0ZXN0ICIke3dpdGhfb3JhY2xlK3NldH0iID0gc2V0OyB0aGVuCi0rICB3aXRodmFsPSR3aXRo X29yYWNsZTsKLSsgICAgICAgIGlmIHRlc3QgIiR3aXRodmFsIiA9ICJ5ZXMiOyB0aGVuCi0rICAg ICAgICAgICAgaWYgdGVzdCAtbiAiJE9SQUNMRV9IT01FIjsgdGhlbgotKyAgICAgICAgICAgICAg ICBvcmFjbGVfaG9tZV9kaXI9IiRPUkFDTEVfSE9NRSIKLSsgICAgICAgICAgICBlbHNlCi0rICAg ICAgICAgICAgICAgIG9yYWNsZV9ob21lX2Rpcj0iIgotKyAgICAgICAgICAgIGZpCi0rICAgICAg ICBmaQotKwotK2Vsc2UKLSsKLSsgICAgICAgIGlmIHRlc3QgLW4gIiRPUkFDTEVfSE9NRSI7IHRo ZW4KLSsgICAgICAgICAgICBvcmFjbGVfaG9tZV9kaXI9IiRPUkFDTEVfSE9NRSIKLSsgICAgICAg IGVsc2UKLSsgICAgICAgICAgICBvcmFjbGVfaG9tZV9kaXI9IiIKLSsgICAgICAgIGZpCi0rCi0r Ci0rZmkKLSsKLSsKLSsKLSsjIENoZWNrIHdoZXRoZXIgLS13aXRoLW9yYWNsZS1pbmNsdWRlIHdh cyBnaXZlbi4KLStpZiB0ZXN0ICIke3dpdGhfb3JhY2xlX2luY2x1ZGUrc2V0fSIgPSBzZXQ7IHRo ZW4KLSsgIHdpdGh2YWw9JHdpdGhfb3JhY2xlX2luY2x1ZGU7IG9yYWNsZV9ob21lX2luY2x1ZGVf ZGlyPSIkd2l0aHZhbCIKLStlbHNlCi0rICBvcmFjbGVfaG9tZV9pbmNsdWRlX2Rpcj0iIgotKwot K2ZpCi0rCi0rCi0rIyBDaGVjayB3aGV0aGVyIC0td2l0aC1vcmFjbGUtbGliIHdhcyBnaXZlbi4K LStpZiB0ZXN0ICIke3dpdGhfb3JhY2xlX2xpYitzZXR9IiA9IHNldDsgdGhlbgotKyAgd2l0aHZh bD0kd2l0aF9vcmFjbGVfbGliOyBvcmFjbGVfaG9tZV9saWJfZGlyPSIkd2l0aHZhbCIKLStlbHNl Ci0rICBvcmFjbGVfaG9tZV9saWJfZGlyPSIiCi0rCi0rZmkKLSsKLSsKLSsgICAgT1JBQ0xFX09D SV9DRkxBR1M9IiIKLSsgICAgT1JBQ0xFX09DSV9MREZMQUdTPSIiCi0rICAgIE9SQUNMRV9PQ0lf VkVSU0lPTj0iIgotKwotKyAgICAgICAgICAgICAgICB3YW50X29yYWNsZV9idXRfbm9fcGF0aD0i bm8iCi0rCi0rICAgIGlmIHRlc3QgLW4gIiRvcmFjbGVfaG9tZV9kaXIiOyB0aGVuCi0rCi0rICAg ICAgICBpZiB0ZXN0ICIkb3JhY2xlX2hvbWVfZGlyIiAhPSAibm8iIC1hICIkb3JhY2xlX2hvbWVf ZGlyIiAhPSAieWVzIjsgdGhlbgotKwotKyAgICAgICAgICAgICAgICAgICAgICAgIG9yYWNsZV9p bmNsdWRlX2Rpcj0iJG9yYWNsZV9ob21lX2Rpci9yZGJtcy9wdWJsaWMiCi0rCi0rICAgICAgICAg ICAgICAgICAgICAgICAgb3JhY2xlX2luY2x1ZGVfZGlyMj0iJG9yYWNsZV9ob21lX2Rpci9yZGJt cy9kZW1vIgotKwotKyAgICAgICAgICAgICAgICAgICAgICAgIG9yYWNsZV9saWJfZGlyPSIkb3Jh Y2xlX2hvbWVfZGlyL2xpYiIKLSsgICAgICAgIGVsaWYgdGVzdCAiJG9yYWNsZV9ob21lX2RpciIg PSAieWVzIjsgdGhlbgotKyAgICAgICAgICAgIHdhbnRfb3JhY2xlX2J1dF9ub19wYXRoPSJ5ZXMi Ci0rICAgICAgICBmaQotKwotKyAgICBlbGlmIHRlc3QgLW4gIiRvcmFjbGVfaG9tZV9pbmNsdWRl X2RpciIgLW8gLW4gIiRvcmFjbGVfaG9tZV9saWJfZGlyIjsgdGhlbgotKwotKyAgICAgICAgaWYg dGVzdCAiJG9yYWNsZV9ob21lX2luY2x1ZGVfZGlyIiAhPSAibm8iIC1hICIkb3JhY2xlX2hvbWVf aW5jbHVkZV9kaXIiICE9ICJ5ZXMiOyB0aGVuCi0rICAgICAgICAgICAgb3JhY2xlX2luY2x1ZGVf ZGlyPSIkb3JhY2xlX2hvbWVfaW5jbHVkZV9kaXIiCi0rICAgICAgICBlbGlmIHRlc3QgIiRvcmFj bGVfaG9tZV9pbmNsdWRlX2RpciIgPSAieWVzIjsgdGhlbgotKyAgICAgICAgICAgIHdhbnRfb3Jh Y2xlX2J1dF9ub19wYXRoPSJ5ZXMiCi0rICAgICAgICBmaQotKwotKyAgICAgICAgaWYgdGVzdCAi JG9yYWNsZV9ob21lX2xpYl9kaXIiICE9ICJubyIgLWEgIiRvcmFjbGVfaG9tZV9saWJfZGlyIiAh PSAieWVzIjsgdGhlbgotKyAgICAgICAgICAgIG9yYWNsZV9saWJfZGlyPSIkb3JhY2xlX2hvbWVf bGliX2RpciIKLSsgICAgICAgIGVsaWYgdGVzdCAiJG9yYWNsZV9ob21lX2xpYl9kaXIiID0gInll cyI7IHRoZW4KLSsgICAgICAgICAgICB3YW50X29yYWNsZV9idXRfbm9fcGF0aD0ieWVzIgotKyAg ICAgICAgZmkKLSsgICAgZmkKLSsKLSsgICAgaWYgdGVzdCAiJHdhbnRfb3JhY2xlX2J1dF9ub19w YXRoIiA9ICJ5ZXMiOyB0aGVuCi0rICAgICAgICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzog V0FSTklORzogT3JhY2xlIHN1cHBvcnQgaXMgcmVxdWVzdGVkIGJ1dCBubyBPcmFjbGUgcGF0aHMg aGF2ZSBiZWVuIHByb3ZpZGVkLiBcCi0rUGxlYXNlLCBsb2NhdGUgT3JhY2xlIGRpcmVjdG9yaWVz IHVzaW5nIC0td2l0aC1vcmFjbGUgb3IgXAotKy0td2l0aC1vcmFjbGUtaW5jbHVkZSBhbmQgLS13 aXRoLW9yYWNsZS1saWIgb3B0aW9ucy4iID4mNQotKyRhc19lY2hvICIkYXNfbWU6IFdBUk5JTkc6 IE9yYWNsZSBzdXBwb3J0IGlzIHJlcXVlc3RlZCBidXQgbm8gT3JhY2xlIHBhdGhzIGhhdmUgYmVl biBwcm92aWRlZC4gXAotK1BsZWFzZSwgbG9jYXRlIE9yYWNsZSBkaXJlY3RvcmllcyB1c2luZyAt LXdpdGgtb3JhY2xlIG9yIFwKLSstLXdpdGgtb3JhY2xlLWluY2x1ZGUgYW5kIC0td2l0aC1vcmFj bGUtbGliIG9wdGlvbnMuIiA+JjI7fQotKyAgICBmaQotKwotKyAgICAgICAgICAgICAgICBpZiB0 ZXN0IC1uICIkb3JhY2xlX2luY2x1ZGVfZGlyIiAtYSAtbiAiJG9yYWNsZV9saWJfZGlyIjsgdGhl bgotKwotKyAgICAgICAgc2F2ZWRfQ1BQRkxBR1M9IiRDUFBGTEFHUyIKLSsgICAgICAgIENQUEZM QUdTPSIkQ1BQRkxBR1MgLUkkb3JhY2xlX2luY2x1ZGVfZGlyIgotKwotKyAgICAgICAgICAgICAg ICBpZiB0ZXN0IC1uICIkb3JhY2xlX2luY2x1ZGVfZGlyMiI7IHRoZW4KLSsgICAgICAgICAgICBD UFBGTEFHUz0iJENQUEZMQUdTIC1JJG9yYWNsZV9pbmNsdWRlX2RpcjIiCi0rICAgICAgICBmaQot KwotKyAgICAgICAgIyBGaWd1cmUgb3V0IGlmIHdlIGFyZSBidWlsZGluZyBvbiB3aW4zMi4KLSsg ICAgICAgIGNhc2UgJGhvc3Rfb3MgaW4KLSsgICAgICAgICAgICAqbWluZ3czMiogKSBXSU4zMj15 ZXMgOzsKLSsgICAgICAgICAgICAqY3lnd2luKiApICBXSU4zMj15ZXMgOzsKLSsgICAgICAgICAg ICAqKSBXSU4zMj1ubyA7OwotKyAgICAgICAgZXNhYwotKwotKyAgICAgICAgaWYgdGVzdCAiJFdJ TjMyIiA9ICJubyIKLSsgICAgICAgIHRoZW4KLSsgICAgICAgICAgICBvY2lfbGlicz0iLWxjbG50 c2ggLWxubnoxMSIKLSsgICAgICAgIGVsc2UKLSsgICAgICAgICAgICBvY2lfbGlicz0iLWxvY2ki Ci0rICAgICAgICBmaQotKwotKyAgICAgICAgc2F2ZWRfTERGTEFHUz0iJExERkxBR1MiCi0rICAg ICAgICBzYXZlZF9MSUJTPSIkTElCUyIKLSsgICAgICAgIG9jaV9sZGZsYWdzPSItTCRvcmFjbGVf bGliX2RpciIKLSsgICAgICAgIExERkxBR1M9IiRMREZMQUdTICRvY2lfbGRmbGFncyIKLSsgICAg ICAgIExJQlM9IiRMSUJTICRvY2lfbGlicyIKLSsKLSsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgT3JhY2xlIE9D SSBoZWFkZXJzIGluICRvcmFjbGVfaW5jbHVkZV9kaXIiID4mNQotKyRhc19lY2hvX24gImNoZWNr aW5nIGZvciBPcmFjbGUgT0NJIGhlYWRlcnMgaW4gJG9yYWNsZV9pbmNsdWRlX2Rpci4uLiAiID4m NjsgfQotKwotKyAgICAgICAgYWNfZXh0PWNwcAotK2FjX2NwcD0nJENYWENQUCAkQ1BQRkxBR1Mn Ci0rYWNfY29tcGlsZT0nJENYWCAtYyAkQ1hYRkxBR1MgJENQUEZMQUdTIGNvbmZ0ZXN0LiRhY19l eHQgPiY1JwotK2FjX2xpbms9JyRDWFggLW8gY29uZnRlc3QkYWNfZXhlZXh0ICRDWFhGTEFHUyAk Q1BQRkxBR1MgJExERkxBR1MgY29uZnRlc3QuJGFjX2V4dCAkTElCUyA+JjUnCi0rYWNfY29tcGls ZXJfZ251PSRhY19jdl9jeHhfY29tcGlsZXJfZ251Ci0rCi0rICAgICAgICBjYXQgPmNvbmZ0ZXN0 LiRhY19leHQgPDxfQUNFT0YKLSsKLSsgICAgICAgICAgICAvKiBjb25mZGVmcy5oLiAgKi8KLStf QUNFT0YKLStjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKLStjYXQgPj5jb25mdGVz dC4kYWNfZXh0IDw8X0FDRU9GCi0rLyogZW5kIGNvbmZkZWZzLmguICAqLwotKyNpbmNsdWRlIDxv Y2kuaD4KLStpbnQKLSttYWluICgpCi0rewotKwotKyNpZiBkZWZpbmVkKE9DSV9NQUpPUl9WRVJT SU9OKQotKyNpZiBPQ0lfTUFKT1JfVkVSU0lPTiA9PSAxMCAmJiBPQ0lfTUlOT1JfVkVSU0lPTiA9 PSAyCi0rLy8gT3JhY2xlIDEwLjIgZGV0ZWN0ZWQKLSsjZW5kaWYKLSsjZWxpZiBkZWZpbmVkKE9D SV9WN19TWU5UQVgpCi0rLy8gT0ssIG9sZGVyIE9yYWNsZSBkZXRlY3RlZAotKy8vIFRPRE8gLSBt bG9za290OiBmaW5kIGJldHRlciBtYWNybyB0byBjaGVjayBmb3Igb2xkZXIgdmVyc2lvbnM7Ci0r I2Vsc2UKLSsjICBlcnJvciBPcmFjbGUgb2NpLmggaGVhZGVyIG5vdCBmb3VuZAotKyNlbmRpZgot KwotKwotKyAgOwotKyAgcmV0dXJuIDA7Ci0rfQotK19BQ0VPRgotK3JtIC1mIGNvbmZ0ZXN0LiRh Y19vYmpleHQKLStpZiB7IChhY190cnk9IiRhY19jb21waWxlIgotK2Nhc2UgIigoJGFjX3RyeSIg aW4KLSsgICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OwotKyAgKikg YWNfdHJ5X2VjaG89JGFjX3RyeTs7Ci0rZXNhYwotK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19t ZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIKLSskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1 Ci0rICAoZXZhbCAiJGFjX2NvbXBpbGUiKSAyPmNvbmZ0ZXN0LmVyMQotKyAgYWNfc3RhdHVzPSQ/ Ci0rICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgotKyAgcm0gLWYg Y29uZnRlc3QuZXIxCi0rICBjYXQgY29uZnRlc3QuZXJyID4mNQotKyAgJGFzX2VjaG8gIiRhc19t ZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSsgIChleGl0ICRhY19zdGF0dXMpOyB9 ICYmIHsKLSsJIHRlc3QgLXogIiRhY19jeHhfd2Vycm9yX2ZsYWciIHx8Ci0rCSB0ZXN0ICEgLXMg Y29uZnRlc3QuZXJyCi0rICAgICAgIH0gJiYgdGVzdCAtcyBjb25mdGVzdC4kYWNfb2JqZXh0OyB0 aGVuCi0rCi0rICAgICAgICAgICAgT1JBQ0xFX09DSV9DRkxBR1M9Ii1JJG9yYWNsZV9pbmNsdWRl X2RpciIKLSsKLSsgICAgICAgICAgICBpZiB0ZXN0IC1uICIkb3JhY2xlX2luY2x1ZGVfZGlyMiI7 IHRoZW4KLSsgICAgICAgICAgICAgICAgT1JBQ0xFX09DSV9DRkxBR1M9IiRPUkFDTEVfT0NJX0NG TEFHUyAtSSRvcmFjbGVfaW5jbHVkZV9kaXIyIgotKyAgICAgICAgICAgIGZpCi0rCi0rICAgICAg ICAgICAgb2NpX2hlYWRlcl9mb3VuZD0ieWVzIgotKyAgICAgICAgICAgIHsgJGFzX2VjaG8gIiRh c19tZTokTElORU5POiByZXN1bHQ6IHllcyIgPiY1Ci0rJGFzX2VjaG8gInllcyIgPiY2OyB9Ci0r Ci0rZWxzZQotKyAgJGFzX2VjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Ci0r c2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQotKwotKwotKyAgICAgICAgICAgIG9j aV9oZWFkZXJfZm91bmQ9Im5vIgotKyAgICAgICAgICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElO RU5POiByZXN1bHQ6IG5vdCBmb3VuZCIgPiY1Ci0rJGFzX2VjaG8gIm5vdCBmb3VuZCIgPiY2OyB9 Ci0rCi0rCi0rZmkKLSsKLStybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2Jq ZXh0IGNvbmZ0ZXN0LiRhY19leHQKLSsgICAgICAgIGFjX2V4dD1jcHAKLSthY19jcHA9JyRDWFhD UFAgJENQUEZMQUdTJwotK2FjX2NvbXBpbGU9JyRDWFggLWMgJENYWEZMQUdTICRDUFBGTEFHUyBj b25mdGVzdC4kYWNfZXh0ID4mNScKLSthY19saW5rPSckQ1hYIC1vIGNvbmZ0ZXN0JGFjX2V4ZWV4 dCAkQ1hYRkxBR1MgJENQUEZMQUdTICRMREZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgJExJQlMgPiY1 JwotK2FjX2NvbXBpbGVyX2dudT0kYWNfY3ZfY3h4X2NvbXBpbGVyX2dudQotKwotKwotKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgdGVzdCAiJG9jaV9oZWFkZXJfZm91bmQiID0g InllcyI7IHRoZW4KLSsKLSsgICAgICAgICAgICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzog Y2hlY2tpbmcgZm9yIE9yYWNsZSBPQ0kgbGlicmFyaWVzIGluICRvcmFjbGVfbGliX2RpciIgPiY1 Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yIE9yYWNsZSBPQ0kgbGlicmFyaWVzIGluICRvcmFj bGVfbGliX2Rpci4uLiAiID4mNjsgfQotKwotKyAgICAgICAgICAgIGFjX2V4dD1jcHAKLSthY19j cHA9JyRDWFhDUFAgJENQUEZMQUdTJwotK2FjX2NvbXBpbGU9JyRDWFggLWMgJENYWEZMQUdTICRD UFBGTEFHUyBjb25mdGVzdC4kYWNfZXh0ID4mNScKLSthY19saW5rPSckQ1hYIC1vIGNvbmZ0ZXN0 JGFjX2V4ZWV4dCAkQ1hYRkxBR1MgJENQUEZMQUdTICRMREZMQUdTIGNvbmZ0ZXN0LiRhY19leHQg JExJQlMgPiY1JwotK2FjX2NvbXBpbGVyX2dudT0kYWNfY3ZfY3h4X2NvbXBpbGVyX2dudQotKwot KyAgICAgICAgICAgIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotKwotKyAgICAgICAg ICAgICAgICAvKiBjb25mZGVmcy5oLiAgKi8KLStfQUNFT0YKLStjYXQgY29uZmRlZnMuaCA+PmNv bmZ0ZXN0LiRhY19leHQKLStjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0rLyogZW5k IGNvbmZkZWZzLmguICAqLwotKyNpbmNsdWRlIDxvY2kuaD4KLStpbnQKLSttYWluICgpCi0rewot KwotK09DSUVudiogZW52aCA9IDA7Ci0rT0NJRW52Q3JlYXRlKCZlbnZoLCBPQ0lfREVGQVVMVCwg MCwgMCwgMCwgMCwgMCwgMCk7Ci0raWYgKGVudmgpIE9DSUhhbmRsZUZyZWUoZW52aCwgT0NJX0hU WVBFX0VOVik7Ci0rCi0rCi0rICA7Ci0rICByZXR1cm4gMDsKLSt9Ci0rX0FDRU9GCi0rcm0gLWYg Y29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdCRhY19leGVleHQKLStpZiB7IChhY190cnk9IiRh Y19saW5rIgotK2Nhc2UgIigoJGFjX3RyeSIgaW4KLSsgICpcIiogfCAqXGAqIHwgKlxcKikgYWNf dHJ5X2VjaG89XCRhY190cnk7OwotKyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7Ci0rZXNhYwot K2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIKLSsk YXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1Ci0rICAoZXZhbCAiJGFjX2xpbmsiKSAyPmNvbmZ0 ZXN0LmVyMQotKyAgYWNfc3RhdHVzPSQ/Ci0rICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEg PmNvbmZ0ZXN0LmVycgotKyAgcm0gLWYgY29uZnRlc3QuZXIxCi0rICBjYXQgY29uZnRlc3QuZXJy ID4mNQotKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUK LSsgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmIHsKLSsJIHRlc3QgLXogIiRhY19jeHhfd2Vycm9y X2ZsYWciIHx8Ci0rCSB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCi0rICAgICAgIH0gJiYgdGVzdCAt cyBjb25mdGVzdCRhY19leGVleHQgJiYgewotKwkgdGVzdCAiJGNyb3NzX2NvbXBpbGluZyIgPSB5 ZXMgfHwKLSsJICRhc190ZXN0X3ggY29uZnRlc3QkYWNfZXhlZXh0Ci0rICAgICAgIH07IHRoZW4K LSsKLSsgICAgICAgICAgICAgICAgT1JBQ0xFX09DSV9MREZMQUdTPSIkb2NpX2xkZmxhZ3MgJG9j aV9saWJzIgotKyAgICAgICAgICAgICAgICBvY2lfbGliX2ZvdW5kPSJ5ZXMiCi0rICAgICAgICAg ICAgICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IHllcyIgPiY1Ci0rJGFz X2VjaG8gInllcyIgPiY2OyB9Ci0rCi0rZWxzZQotKyAgJGFzX2VjaG8gIiRhc19tZTogZmFpbGVk IHByb2dyYW0gd2FzOiIgPiY1Ci0rc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQot KwotKwotKyAgICAgICAgICAgICAgICBvY2lfbGliX2ZvdW5kPSJubyIKLSsgICAgICAgICAgICAg ICAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogbm90IGZvdW5kIiA+JjUKLSsk YXNfZWNobyAibm90IGZvdW5kIiA+JjY7IH0KLSsKLSsKLStmaQotKwotK3JtIC1yZiBjb25mdGVz dC5kU1lNCi0rcm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25m dGVzdF9pcGE4X2NvbmZ0ZXN0Lm9vIFwKLSsgICAgICBjb25mdGVzdCRhY19leGVleHQgY29uZnRl c3QuJGFjX2V4dAotKyAgICAgICAgICAgIGFjX2V4dD1jcHAKLSthY19jcHA9JyRDWFhDUFAgJENQ UEZMQUdTJwotK2FjX2NvbXBpbGU9JyRDWFggLWMgJENYWEZMQUdTICRDUFBGTEFHUyBjb25mdGVz dC4kYWNfZXh0ID4mNScKLSthY19saW5rPSckQ1hYIC1vIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAkQ1hY RkxBR1MgJENQUEZMQUdTICRMREZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgJExJQlMgPiY1JwotK2Fj X2NvbXBpbGVyX2dudT0kYWNfY3ZfY3h4X2NvbXBpbGVyX2dudQotKwotKyAgICAgICAgZmkKLSsK LSsgICAgICAgIENQUEZMQUdTPSIkc2F2ZWRfQ1BQRkxBR1MiCi0rICAgICAgICBMREZMQUdTPSIk c2F2ZWRfTERGTEFHUyIKLSsgICAgICAgIExJQlM9IiRzYXZlZF9MSUJTIgotKyAgICBmaQotKwot KyAgICAgICAgICAgICAgICBvcmFjbGVfdmVyc2lvbl9yZXE9JE9SQUNMRV9PQ0lfUkVRX1ZFUlNJ T04KLSsKLSsgICAgaWYgdGVzdCAiJG9jaV9oZWFkZXJfZm91bmQiID0gInllcyIgLWEgIiRvY2lf bGliX2ZvdW5kIiA9ICJ5ZXMiIC1hIFwKLSsgICAgICAgIC1uICIkb3JhY2xlX3ZlcnNpb25fcmVx IjsgdGhlbgotKwotKyAgICAgICAgb3JhY2xlX3ZlcnNpb25fbWFqb3I9YGNhdCAkb3JhY2xlX2lu Y2x1ZGVfZGlyL29jaS5oIFwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgZ3JlcCAn I2RlZmluZS4qT0NJX01BSk9SX1ZFUlNJT04uKicgXAotKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgfCBzZWQgLWUgJ3MvI2RlZmluZSBPQ0lfTUFKT1JfVkVSU0lPTiAgKi8vJyBcCi0rICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB8IHNlZCAtZSAncy8gICpcL1wqLipcKlwvLy8nYAot KwotKyAgICAgICAgb3JhY2xlX3ZlcnNpb25fbWlub3I9YGNhdCAkb3JhY2xlX2luY2x1ZGVfZGly L29jaS5oIFwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgZ3JlcCAnI2RlZmluZS4q T0NJX01JTk9SX1ZFUlNJT04uKicgXAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBz ZWQgLWUgJ3MvI2RlZmluZSBPQ0lfTUlOT1JfVkVSU0lPTiAgKi8vJyBcCi0rICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB8IHNlZCAtZSAncy8gICpcL1wqLipcKlwvLy8nYAotKwotKyAgICAg ICAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGlmIE9yYWNsZSBPQ0kgdmVy c2lvbiBpcyA+PSAkb3JhY2xlX3ZlcnNpb25fcmVxIiA+JjUKLSskYXNfZWNob19uICJjaGVja2lu ZyBpZiBPcmFjbGUgT0NJIHZlcnNpb24gaXMgPj0gJG9yYWNsZV92ZXJzaW9uX3JlcS4uLiAiID4m NjsgfQotKwotKyAgICAgICAgaWYgdGVzdCAtbiAiJG9yYWNsZV92ZXJzaW9uX21ham9yIiAtYSAt biAkIm9yYWNsZV92ZXJzaW9uX21pbm9yIjsgdGhlbgotKwotKyAgICAgICAgICAgIE9SQUNMRV9P Q0lfVkVSU0lPTj0iJG9yYWNsZV92ZXJzaW9uX21ham9yLiRvcmFjbGVfdmVyc2lvbl9taW5vciIK LSsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcmFjbGVfdmVyc2lvbl9y ZXFfbWFqb3I9YGV4cHIgJG9yYWNsZV92ZXJzaW9uX3JlcSA6ICdcKFswLTldKlwpJ2AKLSsgICAg ICAgICAgICBvcmFjbGVfdmVyc2lvbl9yZXFfbWlub3I9YGV4cHIgJG9yYWNsZV92ZXJzaW9uX3Jl cSA6ICdbMC05XSpcLlwoWzAtOV0qXCknYAotKwotKyAgICAgICAgICAgIG9yYWNsZV92ZXJzaW9u X3JlcV9udW1iZXI9YGV4cHIgJG9yYWNsZV92ZXJzaW9uX3JlcV9tYWpvciBcKiAxMDAwMDAwIFwK LSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcKyAkb3JhY2xlX3ZlcnNp b25fcmVxX21pbm9yIFwqIDEwMDBgCi0rCi0rICAgICAgICAgICAgICAgICAgICAgICAgb3JhY2xl X3ZlcnNpb25fbnVtYmVyPWBleHByICRvcmFjbGVfdmVyc2lvbl9tYWpvciBcKiAxMDAwMDAwIFwK LSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCsgJG9yYWNsZV92ZXJzaW9uX21p bm9yIFwqIDEwMDBgCi0rCi0rICAgICAgICAgICAgb3JhY2xlX3ZlcnNpb25fY2hlY2s9YGV4cHIg JG9yYWNsZV92ZXJzaW9uX251bWJlciBcPlw9ICRvcmFjbGVfdmVyc2lvbl9yZXFfbnVtYmVyYAot KyAgICAgICAgICAgIGlmIHRlc3QgIiRvcmFjbGVfdmVyc2lvbl9jaGVjayIgPSAiMSI7IHRoZW4K LSsgICAgICAgICAgICAgICAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogeWVz IiA+JjUKLSskYXNfZWNobyAieWVzIiA+JjY7IH0KLSsKLStjYXQgPj5jb25mZGVmcy5oIDw8XF9B Q0VPRgotKyNkZWZpbmUgSEFWRV9PUkFDTEUgMQotK19BQ0VPRgotKwotKyAgICAgICAgICAgIGVs c2UKLSsgICAgICAgICAgICAgICAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDog bm8iID4mNQotKyRhc19lY2hvICJubyIgPiY2OyB9Ci0rICAgICAgICAgICAgICAgIHsgeyAkYXNf ZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBPcmFjbGUgJE9SQUNMRV9PQ0lfVkVSU0lPTiBm b3VuZCwgYnV0IHJlcXVpcmVkIHZlcnNpb24gaXMgJG9yYWNsZV92ZXJzaW9uX3JlcSIgPiY1Ci0r JGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IE9yYWNsZSAkT1JBQ0xFX09DSV9WRVJTSU9OIGZvdW5k LCBidXQgcmVxdWlyZWQgdmVyc2lvbiBpcyAkb3JhY2xlX3ZlcnNpb25fcmVxIiA+JjI7fQotKyAg IHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQotKyAgICAgICAgICAgIGZpCi0rICAgICAgICBlbHNl Ci0rICAgICAgICAgICAgT1JBQ0xFX09DSV9WRVJTSU9OPSJVTktOT1dOIgotKyAgICAgICAgICAg IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IG5vIiA+JjUKLSskYXNfZWNobyAi bm8iID4mNjsgfQotKyAgICAgICAgICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBXQVJO SU5HOiBPcmFjbGUgdmVyc2lvbiB1bmtub3duLCBwcm9iYWJseSBPQ0kgb2xkZXIgdGhhbiAxMC4y IGlzIGF2YWlsYWJsZSIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogV0FSTklORzogT3JhY2xlIHZl cnNpb24gdW5rbm93biwgcHJvYmFibHkgT0NJIG9sZGVyIHRoYW4gMTAuMiBpcyBhdmFpbGFibGUi ID4mMjt9Ci0rICAgICAgICBmaQotKyAgICBmaQotKwotKwotKwotKwotKwotK2ZpCi0rIGlmIHRl c3QgIngkZW5hYmxlX2JhY2tlbmRfb3JhY2xlIiA9IHh5ZXM7IHRoZW4KLSsgIEhBVkVfT1JBQ0xF X1RSVUU9Ci0rICBIQVZFX09SQUNMRV9GQUxTRT0nIycKLStlbHNlCi0rICBIQVZFX09SQUNMRV9U UlVFPScjJwotKyAgSEFWRV9PUkFDTEVfRkFMU0U9Ci0rZmkKLSsKLSsjT1JBQ0xFX0RJUlM9Im9y YWNsZSIKLSsKLSsKLSsKLSsjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSsjIFN1cHBvcnQgZm9yIFBvc3RncmVTUUwg YmFja2VuZAotKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotKyMgQ2hlY2sgd2hldGhlciAtLWVuYWJsZS1iYWNrZW5k LXBvc3RncmVzcWwgd2FzIGdpdmVuLgotK2lmIHRlc3QgIiR7ZW5hYmxlX2JhY2tlbmRfcG9zdGdy ZXNxbCtzZXR9IiA9IHNldDsgdGhlbgotKyAgZW5hYmxldmFsPSRlbmFibGVfYmFja2VuZF9wb3N0 Z3Jlc3FsOyAgaWYgdGVzdCAiJGVuYWJsZXZhbCIgPSBubzsgdGhlbgotKyAgICAgIAkgZW5hYmxl X2JhY2tlbmRfcG9zdGdyZXNxbD1ubwotKyAgICAgIGVsc2UKLSsJIGVuYWJsZV9iYWNrZW5kX3Bv c3RncmVzcWw9eWVzCi0rICAgICAgZmkKLStlbHNlCi0rICAgZW5hYmxlX2JhY2tlbmRfcG9zdGdy ZXNxbD1ubwotKwotK2ZpCi0rCi0rCi0raWYgdGVzdCAieCRlbmFibGVfYmFja2VuZF9wb3N0Z3Jl c3FsIiA9ICJ4eWVzIjsgdGhlbgotKyAgIFBPU1RHUkVTUUxfRElSUz0icG9zdGdyZXNxbCIKLSsg ICBQT1NUR1JFU1FMX1JFUV9WRVJTSU9OPSI3LjEuNCIKLSsKLSsKLSsjIENoZWNrIHdoZXRoZXIg LS13aXRoLXBvc3RncmVzcWwgd2FzIGdpdmVuLgotK2lmIHRlc3QgIiR7d2l0aF9wb3N0Z3Jlc3Fs K3NldH0iID0gc2V0OyB0aGVuCi0rICB3aXRodmFsPSR3aXRoX3Bvc3RncmVzcWw7Ci0rCVBPU1RH UkVTUUxfaW5jX2NoZWNrPSIkd2l0aF9wb3N0Z3Jlc3FsL2luY2x1ZGUiCi0rICAgICAgICBpZiB0 ZXN0ICIkd2l0aHZhbCIgPSAibm8iOyB0aGVuCi0rICAgICAgICAgICAgd2FudF9wb3N0Z3Jlc3Fs PSJubyIKLSsgICAgICAgIGVsaWYgdGVzdCAiJHdpdGh2YWwiID0gInllcyI7IHRoZW4KLSsgICAg ICAgICAgICB3YW50X3Bvc3RncmVzcWw9InllcyIKLSsgICAgICAgIGVsc2UKLSsgICAgICAgICAg ICB3YW50X3Bvc3RncmVzcWw9InllcyIKLSsgICAgICAgICAgICBQR19DT05GSUc9IiR3aXRodmFs IgotKyAgICAgICAgZmkKLSsKLStlbHNlCi0rICB3YW50X3Bvc3RncmVzcWw9InllcyIKLSsJUE9T VEdSRVNRTF9pbmNfY2hlY2s9Ii91c3IvaW5jbHVkZSAvdXNyL2xvY2FsIC9vcHQiCi0rCi0rZmkK LSsKLSsKLSsgICAgUE9TVEdSRVNRTF9DRkxBR1M9IiIKLSsgICAgUE9TVEdSRVNRTF9MREZMQUdT PSIiCi0rICAgIFBPU1RHUkVTUUxfUE9TVEdSRVNRTD0iIgotKwotKwotKyAgICBpZiB0ZXN0ICIk d2FudF9wb3N0Z3Jlc3FsIiA9ICJ5ZXMiOyB0aGVuCi0rCi0rICAgICAgICBpZiB0ZXN0IC16ICIk UEdfQ09ORklHIiAtbyB0ZXN0OyB0aGVuCi0rICAgICAgICAgICAgIyBFeHRyYWN0IHRoZSBmaXJz dCB3b3JkIG9mICJwZ19jb25maWciLCBzbyBpdCBjYW4gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBh cmdzLgotK3NldCBkdW1teSBwZ19jb25maWc7IGFjX3dvcmQ9JDIKLSt7ICRhc19lY2hvICIkYXNf bWU6JExJTkVOTzogY2hlY2tpbmcgZm9yICRhY193b3JkIiA+JjUKLSskYXNfZWNob19uICJjaGVj a2luZyBmb3IgJGFjX3dvcmQuLi4gIiA+JjY7IH0KLStpZiB0ZXN0ICIke2FjX2N2X3BhdGhfUEdf Q09ORklHK3NldH0iID0gc2V0OyB0aGVuCi0rICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgot K2Vsc2UKLSsgIGNhc2UgJFBHX0NPTkZJRyBpbgotKyAgW1xcL10qIHwgPzpbXFwvXSopCi0rICBh Y19jdl9wYXRoX1BHX0NPTkZJRz0iJFBHX0NPTkZJRyIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUg dGhlIHRlc3Qgd2l0aCBhIHBhdGguCi0rICA7OwotKyAgKikKLSsgIGFzX3NhdmVfSUZTPSRJRlM7 IElGUz0kUEFUSF9TRVBBUkFUT1IKLStmb3IgYXNfZGlyIGluICRQQVRICi0rZG8KLSsgIElGUz0k YXNfc2F2ZV9JRlMKLSsgIHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCi0rICBmb3IgYWNf ZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1dGFibGVfZXh0ZW5zaW9uczsgZG8KLSsgIGlmIHsgdGVz dCAtZiAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgJiYgJGFzX3Rlc3RfeCAiJGFzX2Rp ci8kYWNfd29yZCRhY19leGVjX2V4dCI7IH07IHRoZW4KLSsgICAgYWNfY3ZfcGF0aF9QR19DT05G SUc9IiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiCi0rICAgICRhc19lY2hvICIkYXNfbWU6 JExJTkVOTzogZm91bmQgJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgPiY1Ci0rICAgIGJy ZWFrIDIKLSsgIGZpCi0rZG9uZQotK2RvbmUKLStJRlM9JGFzX3NhdmVfSUZTCi0rCi0rICA7Owot K2VzYWMKLStmaQotK1BHX0NPTkZJRz0kYWNfY3ZfcGF0aF9QR19DT05GSUcKLStpZiB0ZXN0IC1u ICIkUEdfQ09ORklHIjsgdGhlbgotKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3Vs dDogJFBHX0NPTkZJRyIgPiY1Ci0rJGFzX2VjaG8gIiRQR19DT05GSUciID4mNjsgfQotK2Vsc2UK LSsgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IG5vIiA+JjUKLSskYXNfZWNo byAibm8iID4mNjsgfQotK2ZpCi0rCi0rCi0rICAgICAgICBmaQotKwotKyAgICAgICAgaWYgdGVz dCAhIC14ICIkUEdfQ09ORklHIjsgdGhlbgotKyAgICAgICAgICAgIHsgeyAkYXNfZWNobyAiJGFz X21lOiRMSU5FTk86IGVycm9yOiAkUEdfQ09ORklHIGRvZXMgbm90IGV4aXN0IG9yIGl0IGlzIG5v dCBhbiBleGVjdHVhYmxlIGZpbGUiID4mNQotKyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiAkUEdf Q09ORklHIGRvZXMgbm90IGV4aXN0IG9yIGl0IGlzIG5vdCBhbiBleGVjdHVhYmxlIGZpbGUiID4m Mjt9Ci0rICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9Ci0rICAgICAgICAgICAgUEdfQ09ORklH PSJubyIKLSsgICAgICAgICAgICBmb3VuZF9wb3N0Z3Jlc3FsPSJubyIKLSsgICAgICAgIGZpCi0r Ci0rICAgICAgICBpZiB0ZXN0ICIkUEdfQ09ORklHIiAhPSAibm8iOyB0aGVuCi0rICAgICAgICAg ICAgIwotKyAgICAgICAgICAgICMgTG9vayBmb3IgUG9zdGdyZXNxbCBDIEFQSSBoZWFkZXJzCi0r ICAgICAgICAgICAgIwotKyAgICAgICAgICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBj aGVja2luZyBmb3IgUG9zdGdyZXNxbCBpbmNsdWRlIGRpcmVjdG9yeSIgPiY1Ci0rJGFzX2VjaG9f biAiY2hlY2tpbmcgZm9yIFBvc3RncmVzcWwgaW5jbHVkZSBkaXJlY3RvcnkuLi4gIiA+JjY7IH0K LSsgICAgICAgICAgICBQT1NUR1JFU1FMX2luY2Rpcj0KLSsgICAgICAgICAgICBmb3IgcG9zdGdy ZXNxbF9pbmNfZGlyIGluICRQT1NUR1JFU1FMX2luY19jaGVjawotKyAgICAgICAgICAgIGRvCi0r ICAgICAgICAgICAgICAgIGlmIHRlc3QgLWQgIiRwb3N0Z3Jlc3FsX2luY19kaXIiIFwKLSsgICAg ICAgICAgICAgICAgJiYgdGVzdCAtZiAiJHBvc3RncmVzcWxfaW5jX2Rpci9wb3N0Z3Jlc19leHQu aCIKLSsgICAgICAgICAgICAgICAgdGhlbgotKyAgICAgICAgICAgICAgICAgICAgUE9TVEdSRVNR TF9pbmNkaXI9JHBvc3RncmVzcWxfaW5jX2RpcgotKyAgICAgICAgICAgICAgICAgICAgYnJlYWsK LSsgICAgICAgICAgICAgICAgZmkKLSsgICAgICAgICAgICBkb25lCi0rCi0rICAgICAgICAgICAg aWYgdGVzdCAteiAiJFBPU1RHUkVTUUxfaW5jZGlyIgotKyAgICAgICAgICAgIHRoZW4KLSsgICAg ICAgICAgICAgICAgeyB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IERpZG4ndCBm aW5kIHRoZSBQb3N0Z3Jlc3FsIGluY2x1ZGUgZGlyIGluICckUE9TVEdSRVNRTF9pbmNfY2hlY2sn IiA+JjUKLSskYXNfZWNobyAiJGFzX21lOiBlcnJvcjogRGlkbid0IGZpbmQgdGhlIFBvc3RncmVz cWwgaW5jbHVkZSBkaXIgaW4gJyRQT1NUR1JFU1FMX2luY19jaGVjayciID4mMjt9Ci0rICAgeyAo ZXhpdCAxKTsgZXhpdCAxOyB9OyB9Ci0rICAgICAgICAgICAgZmkKLSsKLSsgICAgICAgICAgICBj YXNlICIkUE9TVEdSRVNRTF9pbmNkaXIiIGluCi0rICAgICAgICAgICAgICAgIC8qICkgOzsKLSsg ICAgICAgICAgICAgICAgKiApICB7IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjog VGhlIFBvc3RncmVzcWwgaW5jbHVkZSBkaXJlY3RvcnkgKCRQT1NUR1JFU1FMX2luY2RpcikgbXVz dCBiZSBhbiBhYnNvbHV0ZSBwYXRoLiIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IFRo ZSBQb3N0Z3Jlc3FsIGluY2x1ZGUgZGlyZWN0b3J5ICgkUE9TVEdSRVNRTF9pbmNkaXIpIG11c3Qg YmUgYW4gYWJzb2x1dGUgcGF0aC4iID4mMjt9Ci0rICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9 IDs7Ci0rICAgICAgICAgICAgZXNhYwotKwotKyAgICAgICAgICAgIHsgJGFzX2VjaG8gIiRhc19t ZTokTElORU5POiByZXN1bHQ6ICRQT1NUR1JFU1FMX2luY2RpciIgPiY1Ci0rJGFzX2VjaG8gIiRQ T1NUR1JFU1FMX2luY2RpciIgPiY2OyB9Ci0rCi0rICAgICAgICAgICAgaWYgdGVzdCAiJFBPU1RH UkVTUUxfaW5jZGlyIiA9ICIvdXNyL2luY2x1ZGUiOyB0aGVuCi0rICAgICAgICAgICAgICBQT1NU R1JFU1FMX0NGTEFHUz0iIgotKyAgICAgICAgICAgIGVsc2UKLSsgICAgICAgICAgICAgIFBPU1RH UkVTUUxfQ0ZMQUdTPSItSSR7UE9TVEdSRVNRTF9pbmNkaXJ9IgotKyAgICAgICAgICAgIGZpCi0r Ci0rICAgICAgICAgICAgUE9TVEdSRVNRTF9MREZMQUdTPSItTGAkUEdfQ09ORklHIC0tbGliZGly YCAtbHBxIgotKwotKyAgICAgICAgICAgIFBPU1RHUkVTUUxfVkVSU0lPTj1gJFBHX0NPTkZJRyAt LXZlcnNpb24gfCBzZWQgLWUgJ3MjUG9zdGdyZVNRTCAjIydgCi0rCi0rCi0rY2F0ID4+Y29uZmRl ZnMuaCA8PFxfQUNFT0YKLSsjZGVmaW5lIEhBVkVfUE9TVEdSRVNRTCAxCi0rX0FDRU9GCi0rCi0r Ci0rICAgICAgICAgICAgZm91bmRfcG9zdGdyZXNxbD0ieWVzIgotKyAgICAgICAgZWxzZQotKyAg ICAgICAgICAgIGZvdW5kX3Bvc3RncmVzcWw9Im5vIgotKyAgICAgICAgZmkKLSsgICAgZmkKLSsK LSsKLSsKLSsgICAgcG9zdGdyZXNxbF92ZXJzaW9uX3JlcT0kUE9TVEdSRVNRTF9SRVFfVkVSU0lP TgotKwotKyAgICBpZiB0ZXN0ICIkZm91bmRfcG9zdGdyZXNxbCIgPSAieWVzIiAtYSAtbiAiJHBv c3RncmVzcWxfdmVyc2lvbl9yZXEiOyB0aGVuCi0rCi0rICAgICAgICB7ICRhc19lY2hvICIkYXNf bWU6JExJTkVOTzogY2hlY2tpbmcgaWYgUG9zdGdyZVNRTCB2ZXJzaW9uIGlzID49ICRwb3N0Z3Jl c3FsX3ZlcnNpb25fcmVxIiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyBpZiBQb3N0Z3JlU1FM IHZlcnNpb24gaXMgPj0gJHBvc3RncmVzcWxfdmVyc2lvbl9yZXEuLi4gIiA+JjY7IH0KLSsKLSsg ICAgICAgICAgICAgICAgICAgICAgICBwb3N0Z3Jlc3FsX3ZlcnNpb25fcmVxX21ham9yPWBleHBy ICRwb3N0Z3Jlc3FsX3ZlcnNpb25fcmVxIDogJ1woWzAtOV0qXCknYAotKyAgICAgICAgcG9zdGdy ZXNxbF92ZXJzaW9uX3JlcV9taW5vcj1gZXhwciAkcG9zdGdyZXNxbF92ZXJzaW9uX3JlcSA6ICdb MC05XSpcLlwoWzAtOV0qXCknYAotKyAgICAgICAgcG9zdGdyZXNxbF92ZXJzaW9uX3JlcV9taWNy bz1gZXhwciAkcG9zdGdyZXNxbF92ZXJzaW9uX3JlcSA6ICdbMC05XSpcLlswLTldKlwuXChbMC05 XSpcKSdgCi0rICAgICAgICBpZiB0ZXN0ICJ4JHBvc3RncmVzcWxfdmVyc2lvbl9yZXFfbWljcm8i ID0gIngiOyB0aGVuCi0rICAgICAgICAgICAgcG9zdGdyZXNxbF92ZXJzaW9uX3JlcV9taWNybz0i MCIKLSsgICAgICAgIGZpCi0rCi0rICAgICAgICBwb3N0Z3Jlc3FsX3ZlcnNpb25fcmVxX251bWJl cj1gZXhwciAkcG9zdGdyZXNxbF92ZXJzaW9uX3JlcV9tYWpvciBcKiAxMDAwMDAwIFwKLSsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwrICRwb3N0Z3Jlc3FsX3ZlcnNpb25fcmVx X21pbm9yIFwqIDEwMDAgXAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCsg JHBvc3RncmVzcWxfdmVyc2lvbl9yZXFfbWljcm9gCi0rCi0rICAgICAgICAgICAgICAgICAgICAg ICAgcG9zdGdyZXNxbF92ZXJzaW9uX21ham9yPWBleHByICRQT1NUR1JFU1FMX1ZFUlNJT04gOiAn XChbMC05XSpcKSdgCi0rICAgICAgICBwb3N0Z3Jlc3FsX3ZlcnNpb25fbWlub3I9YGV4cHIgJFBP U1RHUkVTUUxfVkVSU0lPTiA6ICdbMC05XSpcLlwoWzAtOV0qXCknYAotKyAgICAgICAgcG9zdGdy ZXNxbF92ZXJzaW9uX21pY3JvPWBleHByICRQT1NUR1JFU1FMX1ZFUlNJT04gOiAnWzAtOV0qXC5b MC05XSpcLlwoWzAtOV0qXCknYAotKyAgICAgICAgaWYgdGVzdCAieCRwb3N0Z3Jlc3FsX3ZlcnNp b25fbWljcm8iID0gIngiOyB0aGVuCi0rICAgICAgICAgICAgcG9zdGdyZXNxbF92ZXJzaW9uX21p Y3JvPSIwIgotKyAgICAgICAgZmkKLSsKLSsgICAgICAgIHBvc3RncmVzcWxfdmVyc2lvbl9udW1i ZXI9YGV4cHIgJHBvc3RncmVzcWxfdmVyc2lvbl9tYWpvciBcKiAxMDAwMDAwIFwKLSsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwrICRwb3N0Z3Jlc3FsX3ZlcnNpb25fbWlub3Ig XCogMTAwMCBcCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcKyAkcG9zdGdy ZXNxbF92ZXJzaW9uX21pY3JvYAotKwotKyAgICAgICAgcG9zdGdyZXNxbF92ZXJzaW9uX2NoZWNr PWBleHByICRwb3N0Z3Jlc3FsX3ZlcnNpb25fbnVtYmVyIFw+XD0gJHBvc3RncmVzcWxfdmVyc2lv bl9yZXFfbnVtYmVyYAotKyAgICAgICAgaWYgdGVzdCAiJHBvc3RncmVzcWxfdmVyc2lvbl9jaGVj ayIgPSAiMSI7IHRoZW4KLSsgICAgICAgICAgICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzog cmVzdWx0OiB5ZXMiID4mNQotKyRhc19lY2hvICJ5ZXMiID4mNjsgfQotKyAgICAgICAgZWxzZQot KyAgICAgICAgICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IG5vIiA+JjUK LSskYXNfZWNobyAibm8iID4mNjsgfQotKyAgICAgICAgZmkKLSsgICAgZmkKLSsKLSsKLSsKLSsK LSsKLStmaQotKyBpZiB0ZXN0ICJ4JGVuYWJsZV9iYWNrZW5kX3Bvc3RncmVzcWwiID0geHllczsg dGhlbgotKyAgSEFWRV9QT1NUR1JFU1FMX1RSVUU9Ci0rICBIQVZFX1BPU1RHUkVTUUxfRkFMU0U9 JyMnCi0rZWxzZQotKyAgSEFWRV9QT1NUR1JFU1FMX1RSVUU9JyMnCi0rICBIQVZFX1BPU1RHUkVT UUxfRkFMU0U9Ci0rZmkKLSsKLSsjUE9TVEdSRVNRTF9ESVJTPSJwb3N0Z3Jlc3FsIgotKwotKwot KwotKwotKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQotKyMgU3VwcG9ydCBmb3IgZG9jdW1lbnRhdGlvbgotKyMgLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQotKyMgQ2hlY2tzIGZvciBkb2N1bWVudGF0aW9uIGJ1aWxkIHRvb2xzCi0rI0FDX0NI RUNLX1BST0coW3RleGluZm9fb2tdLCBbdGV4aW5mb10sIFt5ZXNdLCBbbm9dKQotKyNpZiB0ZXN0 ICJ4JGVuYWJsZV9pbmZvX2RvYyIgIT0geG5vOyB0aGVuCi0rIyAgdGVzdCAieCR0ZXhpbmZvX29r IiAhPSB4eWVzICYmIGVuYWJsZV9pbmZvX2RvYz1ubwotKyMgIEFDX1BBVEhfUFJPRyhbUEVSTF0s IFtwZXJsXSwgW10pCi0rI2ZpCi0rIGlmIHRlc3QgIngkZW5hYmxlX2luZm9fZG9jIiA9IHh5ZXM7 IHRoZW4KLSsgIElORk9fRE9DX1RSVUU9Ci0rICBJTkZPX0RPQ19GQUxTRT0nIycKLStlbHNlCi0r ICBJTkZPX0RPQ19UUlVFPScjJwotKyAgSU5GT19ET0NfRkFMU0U9Ci0rZmkKLSsKLSsKLSsjIENo ZWNrcyBmb3IgZG9jdW1lbnRhdGlvbiBidWlsZCB0b29scwotKyMgRXh0cmFjdCB0aGUgZmlyc3Qg d29yZCBvZiAiZG94eWdlbiIsIHNvIGl0IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3Mu Ci0rc2V0IGR1bW15IGRveHlnZW47IGFjX3dvcmQ9JDIKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJ TkVOTzogY2hlY2tpbmcgZm9yICRhY193b3JkIiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyBm b3IgJGFjX3dvcmQuLi4gIiA+JjY7IH0KLStpZiB0ZXN0ICIke2FjX2N2X3Byb2dfZG94eWdlbl9v aytzZXR9IiA9IHNldDsgdGhlbgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNl Ci0rICBpZiB0ZXN0IC1uICIkZG94eWdlbl9vayI7IHRoZW4KLSsgIGFjX2N2X3Byb2dfZG94eWdl bl9vaz0iJGRveHlnZW5fb2siICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0LgotK2Vs c2UKLSthc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCi0rZm9yIGFzX2RpciBp biAkUEFUSAotK2RvCi0rICBJRlM9JGFzX3NhdmVfSUZTCi0rICB0ZXN0IC16ICIkYXNfZGlyIiAm JiBhc19kaXI9LgotKyAgZm9yIGFjX2V4ZWNfZXh0IGluICcnICRhY19leGVjdXRhYmxlX2V4dGVu c2lvbnM7IGRvCi0rICBpZiB7IHRlc3QgLWYgIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQi ICYmICRhc190ZXN0X3ggIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiOyB9OyB0aGVuCi0r ICAgIGFjX2N2X3Byb2dfZG94eWdlbl9vaz0ieWVzIgotKyAgICAkYXNfZWNobyAiJGFzX21lOiRM SU5FTk86IGZvdW5kICRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiID4mNQotKyAgICBicmVh ayAyCi0rICBmaQotK2RvbmUKLStkb25lCi0rSUZTPSRhc19zYXZlX0lGUwotKwotKyAgdGVzdCAt eiAiJGFjX2N2X3Byb2dfZG94eWdlbl9vayIgJiYgYWNfY3ZfcHJvZ19kb3h5Z2VuX29rPSJubyIK LStmaQotK2ZpCi0rZG94eWdlbl9vaz0kYWNfY3ZfcHJvZ19kb3h5Z2VuX29rCi0raWYgdGVzdCAt biAiJGRveHlnZW5fb2siOyB0aGVuCi0rICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVz dWx0OiAkZG94eWdlbl9vayIgPiY1Ci0rJGFzX2VjaG8gIiRkb3h5Z2VuX29rIiA+JjY7IH0KLStl bHNlCi0rICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiBubyIgPiY1Ci0rJGFz X2VjaG8gIm5vIiA+JjY7IH0KLStmaQotKwotKwotKyMgRXh0cmFjdCB0aGUgZmlyc3Qgd29yZCBv ZiAibGF0ZXgiLCBzbyBpdCBjYW4gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmdzLgotK3NldCBk dW1teSBsYXRleDsgYWNfd29yZD0kMgotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVj a2luZyBmb3IgJGFjX3dvcmQiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIGZvciAkYWNfd29y ZC4uLiAiID4mNjsgfQotK2lmIHRlc3QgIiR7YWNfY3ZfcHJvZ19sYXRleF9vaytzZXR9IiA9IHNl dDsgdGhlbgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rICBpZiB0ZXN0 IC1uICIkbGF0ZXhfb2siOyB0aGVuCi0rICBhY19jdl9wcm9nX2xhdGV4X29rPSIkbGF0ZXhfb2si ICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0LgotK2Vsc2UKLSthc19zYXZlX0lGUz0k SUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCi0rZm9yIGFzX2RpciBpbiAkUEFUSAotK2RvCi0rICBJ RlM9JGFzX3NhdmVfSUZTCi0rICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgotKyAgZm9y IGFjX2V4ZWNfZXh0IGluICcnICRhY19leGVjdXRhYmxlX2V4dGVuc2lvbnM7IGRvCi0rICBpZiB7 IHRlc3QgLWYgIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiICYmICRhc190ZXN0X3ggIiRh c19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiOyB9OyB0aGVuCi0rICAgIGFjX2N2X3Byb2dfbGF0 ZXhfb2s9InllcyIKLSsgICAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBmb3VuZCAkYXNfZGly LyRhY193b3JkJGFjX2V4ZWNfZXh0IiA+JjUKLSsgICAgYnJlYWsgMgotKyAgZmkKLStkb25lCi0r ZG9uZQotK0lGUz0kYXNfc2F2ZV9JRlMKLSsKLSsgIHRlc3QgLXogIiRhY19jdl9wcm9nX2xhdGV4 X29rIiAmJiBhY19jdl9wcm9nX2xhdGV4X29rPSJubyIKLStmaQotK2ZpCi0rbGF0ZXhfb2s9JGFj X2N2X3Byb2dfbGF0ZXhfb2sKLStpZiB0ZXN0IC1uICIkbGF0ZXhfb2siOyB0aGVuCi0rICB7ICRh c19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkbGF0ZXhfb2siID4mNQotKyRhc19lY2hv ICIkbGF0ZXhfb2siID4mNjsgfQotK2Vsc2UKLSsgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5P OiByZXN1bHQ6IG5vIiA+JjUKLSskYXNfZWNobyAibm8iID4mNjsgfQotK2ZpCi0rCi0rCi0rIyBF eHRyYWN0IHRoZSBmaXJzdCB3b3JkIG9mICJkdmlwcyIsIHNvIGl0IGNhbiBiZSBhIHByb2dyYW0g bmFtZSB3aXRoIGFyZ3MuCi0rc2V0IGR1bW15IGR2aXBzOyBhY193b3JkPSQyCi0reyAkYXNfZWNo byAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciAkYWNfd29yZCIgPiY1Ci0rJGFzX2VjaG9f biAiY2hlY2tpbmcgZm9yICRhY193b3JkLi4uICIgPiY2OyB9Ci0raWYgdGVzdCAiJHthY19jdl9w cm9nX2R2aXBzX29rK3NldH0iID0gc2V0OyB0aGVuCi0rICAkYXNfZWNob19uICIoY2FjaGVkKSAi ID4mNgotK2Vsc2UKLSsgIGlmIHRlc3QgLW4gIiRkdmlwc19vayI7IHRoZW4KLSsgIGFjX2N2X3By b2dfZHZpcHNfb2s9IiRkdmlwc19vayIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3Qu Ci0rZWxzZQotK2FzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IKLStmb3IgYXNf ZGlyIGluICRQQVRICi0rZG8KLSsgIElGUz0kYXNfc2F2ZV9JRlMKLSsgIHRlc3QgLXogIiRhc19k aXIiICYmIGFzX2Rpcj0uCi0rICBmb3IgYWNfZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1dGFibGVf ZXh0ZW5zaW9uczsgZG8KLSsgIGlmIHsgdGVzdCAtZiAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVj X2V4dCIgJiYgJGFzX3Rlc3RfeCAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCI7IH07IHRo ZW4KLSsgICAgYWNfY3ZfcHJvZ19kdmlwc19vaz0ieWVzIgotKyAgICAkYXNfZWNobyAiJGFzX21l OiRMSU5FTk86IGZvdW5kICRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiID4mNQotKyAgICBi cmVhayAyCi0rICBmaQotK2RvbmUKLStkb25lCi0rSUZTPSRhc19zYXZlX0lGUwotKwotKyAgdGVz dCAteiAiJGFjX2N2X3Byb2dfZHZpcHNfb2siICYmIGFjX2N2X3Byb2dfZHZpcHNfb2s9Im5vIgot K2ZpCi0rZmkKLStkdmlwc19vaz0kYWNfY3ZfcHJvZ19kdmlwc19vawotK2lmIHRlc3QgLW4gIiRk dmlwc19vayI7IHRoZW4KLSsgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRk dmlwc19vayIgPiY1Ci0rJGFzX2VjaG8gIiRkdmlwc19vayIgPiY2OyB9Ci0rZWxzZQotKyAgeyAk YXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogbm8iID4mNQotKyRhc19lY2hvICJubyIg PiY2OyB9Ci0rZmkKLSsKLSsKLSsjIEV4dHJhY3QgdGhlIGZpcnN0IHdvcmQgb2YgImdzIiwgc28g aXQgY2FuIGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJncy4KLStzZXQgZHVtbXkgZ3M7IGFjX3dv cmQ9JDIKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yICRhY193b3Jk IiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyBmb3IgJGFjX3dvcmQuLi4gIiA+JjY7IH0KLStp ZiB0ZXN0ICIke2FjX2N2X3Byb2dfZ3Nfb2src2V0fSIgPSBzZXQ7IHRoZW4KLSsgICRhc19lY2hv X24gIihjYWNoZWQpICIgPiY2Ci0rZWxzZQotKyAgaWYgdGVzdCAtbiAiJGdzX29rIjsgdGhlbgot KyAgYWNfY3ZfcHJvZ19nc19vaz0iJGdzX29rIiAjIExldCB0aGUgdXNlciBvdmVycmlkZSB0aGUg dGVzdC4KLStlbHNlCi0rYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgotK2Zv ciBhc19kaXIgaW4gJFBBVEgKLStkbwotKyAgSUZTPSRhc19zYXZlX0lGUwotKyAgdGVzdCAteiAi JGFzX2RpciIgJiYgYXNfZGlyPS4KLSsgIGZvciBhY19leGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0 YWJsZV9leHRlbnNpb25zOyBkbwotKyAgaWYgeyB0ZXN0IC1mICIkYXNfZGlyLyRhY193b3JkJGFj X2V4ZWNfZXh0IiAmJiAkYXNfdGVzdF94ICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0Ijsg fTsgdGhlbgotKyAgICBhY19jdl9wcm9nX2dzX29rPSJ5ZXMiCi0rICAgICRhc19lY2hvICIkYXNf bWU6JExJTkVOTzogZm91bmQgJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgPiY1Ci0rICAg IGJyZWFrIDIKLSsgIGZpCi0rZG9uZQotK2RvbmUKLStJRlM9JGFzX3NhdmVfSUZTCi0rCi0rICB0 ZXN0IC16ICIkYWNfY3ZfcHJvZ19nc19vayIgJiYgYWNfY3ZfcHJvZ19nc19vaz0ibm8iCi0rZmkK LStmaQotK2dzX29rPSRhY19jdl9wcm9nX2dzX29rCi0raWYgdGVzdCAtbiAiJGdzX29rIjsgdGhl bgotKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGdzX29rIiA+JjUKLSsk YXNfZWNobyAiJGdzX29rIiA+JjY7IH0KLStlbHNlCi0rICB7ICRhc19lY2hvICIkYXNfbWU6JExJ TkVOTzogcmVzdWx0OiBubyIgPiY1Ci0rJGFzX2VjaG8gIm5vIiA+JjY7IH0KLStmaQotKwotKwot K2lmIHRlc3QgIngkZW5hYmxlX2h0bWxfZG9jIiAhPSB4bm87IHRoZW4KLSsgIHRlc3QgIngkZG94 eWdlbl9vayIgIT0geHllcyAmJiBlbmFibGVfaHRtbF9kb2M9bm8KLSsgIHRlc3QgIngkbGF0ZXhf b2siICE9IHh5ZXMgJiYgZW5hYmxlX2h0bWxfZG9jPW5vCi0rICB0ZXN0ICJ4JGR2aXBzX29rIiAh PSB4eWVzICYmIGVuYWJsZV9odG1sX2RvYz1ubwotKyAgdGVzdCAieCRnc19vayIgIT0geHllcyAm JiBlbmFibGVfaHRtbF9kb2M9bm8KLSsgICMgRXh0cmFjdCB0aGUgZmlyc3Qgd29yZCBvZiAicGVy bCIsIHNvIGl0IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3MuCi0rc2V0IGR1bW15IHBl cmw7IGFjX3dvcmQ9JDIKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9y ICRhY193b3JkIiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyBmb3IgJGFjX3dvcmQuLi4gIiA+ JjY7IH0KLStpZiB0ZXN0ICIke2FjX2N2X3BhdGhfUEVSTCtzZXR9IiA9IHNldDsgdGhlbgotKyAg JGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rICBjYXNlICRQRVJMIGluCi0rICBb XFwvXSogfCA/OltcXC9dKikKLSsgIGFjX2N2X3BhdGhfUEVSTD0iJFBFUkwiICMgTGV0IHRoZSB1 c2VyIG92ZXJyaWRlIHRoZSB0ZXN0IHdpdGggYSBwYXRoLgotKyAgOzsKLSsgICopCi0rICBhc19z YXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCi0rZm9yIGFzX2RpciBpbiAkUEFUSAot K2RvCi0rICBJRlM9JGFzX3NhdmVfSUZTCi0rICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9 LgotKyAgZm9yIGFjX2V4ZWNfZXh0IGluICcnICRhY19leGVjdXRhYmxlX2V4dGVuc2lvbnM7IGRv Ci0rICBpZiB7IHRlc3QgLWYgIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiICYmICRhc190 ZXN0X3ggIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiOyB9OyB0aGVuCi0rICAgIGFjX2N2 X3BhdGhfUEVSTD0iJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIKLSsgICAgJGFzX2VjaG8g IiRhc19tZTokTElORU5POiBmb3VuZCAkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiA+JjUK LSsgICAgYnJlYWsgMgotKyAgZmkKLStkb25lCi0rZG9uZQotK0lGUz0kYXNfc2F2ZV9JRlMKLSsK LSsgIDs7Ci0rZXNhYwotK2ZpCi0rUEVSTD0kYWNfY3ZfcGF0aF9QRVJMCi0raWYgdGVzdCAtbiAi JFBFUkwiOyB0aGVuCi0rICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkUEVS TCIgPiY1Ci0rJGFzX2VjaG8gIiRQRVJMIiA+JjY7IH0KLStlbHNlCi0rICB7ICRhc19lY2hvICIk YXNfbWU6JExJTkVOTzogcmVzdWx0OiBubyIgPiY1Ci0rJGFzX2VjaG8gIm5vIiA+JjY7IH0KLStm aQotKwotKwotK2ZpCi0rIGlmIHRlc3QgIngkZW5hYmxlX2h0bWxfZG9jIiA9IHh5ZXM7IHRoZW4K LSsgIEhUTUxfRE9DX1RSVUU9Ci0rICBIVE1MX0RPQ19GQUxTRT0nIycKLStlbHNlCi0rICBIVE1M X0RPQ19UUlVFPScjJwotKyAgSFRNTF9ET0NfRkFMU0U9Ci0rZmkKLSsKLSsKLSsKLSsjIENoZWNr IGZvciBkaWZmIHByb2dyYW0gdXNlZCBmb3IgdGVzdHMKLSsjIEV4dHJhY3QgdGhlIGZpcnN0IHdv cmQgb2YgImRpZmYiLCBzbyBpdCBjYW4gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmdzLgotK3Nl dCBkdW1teSBkaWZmOyBhY193b3JkPSQyCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNo ZWNraW5nIGZvciAkYWNfd29yZCIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yICRhY193 b3JkLi4uICIgPiY2OyB9Ci0raWYgdGVzdCAiJHthY19jdl9wcm9nX2RpZmZfb2src2V0fSIgPSBz ZXQ7IHRoZW4KLSsgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci0rZWxzZQotKyAgaWYgdGVz dCAtbiAiJGRpZmZfb2siOyB0aGVuCi0rICBhY19jdl9wcm9nX2RpZmZfb2s9IiRkaWZmX29rIiAj IExldCB0aGUgdXNlciBvdmVycmlkZSB0aGUgdGVzdC4KLStlbHNlCi0rYXNfc2F2ZV9JRlM9JElG UzsgSUZTPSRQQVRIX1NFUEFSQVRPUgotK2ZvciBhc19kaXIgaW4gJFBBVEgKLStkbwotKyAgSUZT PSRhc19zYXZlX0lGUwotKyAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KLSsgIGZvciBh Y19leGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9leHRlbnNpb25zOyBkbwotKyAgaWYgeyB0 ZXN0IC1mICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiAmJiAkYXNfdGVzdF94ICIkYXNf ZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IjsgfTsgdGhlbgotKyAgICBhY19jdl9wcm9nX2RpZmZf b2s9InllcyIKLSsgICAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBmb3VuZCAkYXNfZGlyLyRh Y193b3JkJGFjX2V4ZWNfZXh0IiA+JjUKLSsgICAgYnJlYWsgMgotKyAgZmkKLStkb25lCi0rZG9u ZQotK0lGUz0kYXNfc2F2ZV9JRlMKLSsKLSsgIHRlc3QgLXogIiRhY19jdl9wcm9nX2RpZmZfb2si ICYmIGFjX2N2X3Byb2dfZGlmZl9vaz0ibm8iCi0rZmkKLStmaQotK2RpZmZfb2s9JGFjX2N2X3By b2dfZGlmZl9vawotK2lmIHRlc3QgLW4gIiRkaWZmX29rIjsgdGhlbgotKyAgeyAkYXNfZWNobyAi JGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGRpZmZfb2siID4mNQotKyRhc19lY2hvICIkZGlmZl9v ayIgPiY2OyB9Ci0rZWxzZQotKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDog bm8iID4mNQotKyRhc19lY2hvICJubyIgPiY2OyB9Ci0rZmkKLSsKLSsKLSsjIEV4dHJhY3QgdGhl IGZpcnN0IHdvcmQgb2YgInNlZCIsIHNvIGl0IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFy Z3MuCi0rc2V0IGR1bW15IHNlZDsgYWNfd29yZD0kMgotK3sgJGFzX2VjaG8gIiRhc19tZTokTElO RU5POiBjaGVja2luZyBmb3IgJGFjX3dvcmQiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIGZv ciAkYWNfd29yZC4uLiAiID4mNjsgfQotK2lmIHRlc3QgIiR7YWNfY3ZfcHJvZ19zZWRfb2src2V0 fSIgPSBzZXQ7IHRoZW4KLSsgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci0rZWxzZQotKyAg aWYgdGVzdCAtbiAiJHNlZF9vayI7IHRoZW4KLSsgIGFjX2N2X3Byb2dfc2VkX29rPSIkc2VkX29r IiAjIExldCB0aGUgdXNlciBvdmVycmlkZSB0aGUgdGVzdC4KLStlbHNlCi0rYXNfc2F2ZV9JRlM9 JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgotK2ZvciBhc19kaXIgaW4gJFBBVEgKLStkbwotKyAg SUZTPSRhc19zYXZlX0lGUwotKyAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KLSsgIGZv ciBhY19leGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9leHRlbnNpb25zOyBkbwotKyAgaWYg eyB0ZXN0IC1mICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiAmJiAkYXNfdGVzdF94ICIk YXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IjsgfTsgdGhlbgotKyAgICBhY19jdl9wcm9nX3Nl ZF9vaz0ieWVzIgotKyAgICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGZvdW5kICRhc19kaXIv JGFjX3dvcmQkYWNfZXhlY19leHQiID4mNQotKyAgICBicmVhayAyCi0rICBmaQotK2RvbmUKLStk b25lCi0rSUZTPSRhc19zYXZlX0lGUwotKwotKyAgdGVzdCAteiAiJGFjX2N2X3Byb2dfc2VkX29r IiAmJiBhY19jdl9wcm9nX3NlZF9vaz0ibm8iCi0rZmkKLStmaQotK3NlZF9vaz0kYWNfY3ZfcHJv Z19zZWRfb2sKLStpZiB0ZXN0IC1uICIkc2VkX29rIjsgdGhlbgotKyAgeyAkYXNfZWNobyAiJGFz X21lOiRMSU5FTk86IHJlc3VsdDogJHNlZF9vayIgPiY1Ci0rJGFzX2VjaG8gIiRzZWRfb2siID4m NjsgfQotK2Vsc2UKLSsgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IG5vIiA+ JjUKLSskYXNfZWNobyAibm8iID4mNjsgfQotK2ZpCi0rCi0rCi0rZW5hYmxlX3Rlc3RzPXllcwot K3Rlc3QgIngkZGlmZl9vayIgIT0geHllcyAmJiBlbmFibGVfdGVzdHM9bm8KLSt0ZXN0ICJ4JHNl ZF9vayIgIT0geHllcyAmJiBlbmFibGVfdGVzdHM9bm8KLSsgaWYgdGVzdCAieCRlbmFibGVfdGVz dHMiID0geHllczsgdGhlbgotKyAgUlVOX1RFU1RTX1RSVUU9Ci0rICBSVU5fVEVTVFNfRkFMU0U9 JyMnCi0rZWxzZQotKyAgUlVOX1RFU1RTX1RSVUU9JyMnCi0rICBSVU5fVEVTVFNfRkFMU0U9Ci0r ZmkKLSsKLSsKLSsKLSsjIENoZWNrcyBmb3IgaGVhZGVyIGZpbGVzCi0rCi0reyAkYXNfZWNobyAi JGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciBBTlNJIEMgaGVhZGVyIGZpbGVzIiA+JjUKLSsk YXNfZWNob19uICJjaGVja2luZyBmb3IgQU5TSSBDIGhlYWRlciBmaWxlcy4uLiAiID4mNjsgfQot K2lmIHRlc3QgIiR7YWNfY3ZfaGVhZGVyX3N0ZGMrc2V0fSIgPSBzZXQ7IHRoZW4KLSsgICRhc19l Y2hvX24gIihjYWNoZWQpICIgPiY2Ci0rZWxzZQotKyAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8 X0FDRU9GCi0rLyogY29uZmRlZnMuaC4gICovCi0rX0FDRU9GCi0rY2F0IGNvbmZkZWZzLmggPj5j b25mdGVzdC4kYWNfZXh0Ci0rY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotKy8qIGVu ZCBjb25mZGVmcy5oLiAgKi8KLSsjaW5jbHVkZSA8c3RkbGliLmg+Ci0rI2luY2x1ZGUgPHN0ZGFy Zy5oPgotKyNpbmNsdWRlIDxzdHJpbmcuaD4KLSsjaW5jbHVkZSA8ZmxvYXQuaD4KLSsKLStpbnQK LSttYWluICgpCi0rewotKwotKyAgOwotKyAgcmV0dXJuIDA7Ci0rfQotK19BQ0VPRgotK3JtIC1m IGNvbmZ0ZXN0LiRhY19vYmpleHQKLStpZiB7IChhY190cnk9IiRhY19jb21waWxlIgotK2Nhc2Ug IigoJGFjX3RyeSIgaW4KLSsgICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190 cnk7OwotKyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7Ci0rZXNhYwotK2V2YWwgYWNfdHJ5X2Vj aG89IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIKLSskYXNfZWNobyAiJGFjX3Ry eV9lY2hvIikgPiY1Ci0rICAoZXZhbCAiJGFjX2NvbXBpbGUiKSAyPmNvbmZ0ZXN0LmVyMQotKyAg YWNfc3RhdHVzPSQ/Ci0rICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVy cgotKyAgcm0gLWYgY29uZnRlc3QuZXIxCi0rICBjYXQgY29uZnRlc3QuZXJyID4mNQotKyAgJGFz X2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSsgIChleGl0ICRh Y19zdGF0dXMpOyB9ICYmIHsKLSsJIHRlc3QgLXogIiRhY19jeHhfd2Vycm9yX2ZsYWciIHx8Ci0r CSB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCi0rICAgICAgIH0gJiYgdGVzdCAtcyBjb25mdGVzdC4k YWNfb2JqZXh0OyB0aGVuCi0rICBhY19jdl9oZWFkZXJfc3RkYz15ZXMKLStlbHNlCi0rICAkYXNf ZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLStzZWQgJ3MvXi98IC8nIGNv bmZ0ZXN0LiRhY19leHQgPiY1Ci0rCi0rCWFjX2N2X2hlYWRlcl9zdGRjPW5vCi0rZmkKLSsKLSty bSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19l eHQKLSsKLStpZiB0ZXN0ICRhY19jdl9oZWFkZXJfc3RkYyA9IHllczsgdGhlbgotKyAgIyBTdW5P UyA0Lnggc3RyaW5nLmggZG9lcyBub3QgZGVjbGFyZSBtZW0qLCBjb250cmFyeSB0byBBTlNJLgot KyAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0rLyogY29uZmRlZnMuaC4gICovCi0r X0FDRU9GCi0rY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Ci0rY2F0ID4+Y29uZnRl c3QuJGFjX2V4dCA8PF9BQ0VPRgotKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLSsjaW5jbHVkZSA8 c3RyaW5nLmg+Ci0rCi0rX0FDRU9GCi0raWYgKGV2YWwgIiRhY19jcHAgY29uZnRlc3QuJGFjX2V4 dCIpIDI+JjUgfAotKyAgJEVHUkVQICJtZW1jaHIiID4vZGV2L251bGwgMj4mMTsgdGhlbgotKyAg OgotK2Vsc2UKLSsgIGFjX2N2X2hlYWRlcl9zdGRjPW5vCi0rZmkKLStybSAtZiBjb25mdGVzdCoK LSsKLStmaQotKwotK2lmIHRlc3QgJGFjX2N2X2hlYWRlcl9zdGRjID0geWVzOyB0aGVuCi0rICAj IElTQyAyLjAuMiBzdGRsaWIuaCBkb2VzIG5vdCBkZWNsYXJlIGZyZWUsIGNvbnRyYXJ5IHRvIEFO U0kuCi0rICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLSsvKiBjb25mZGVmcy5oLiAg Ki8KLStfQUNFT0YKLStjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKLStjYXQgPj5j b25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0rLyogZW5kIGNvbmZkZWZzLmguICAqLwotKyNpbmNs dWRlIDxzdGRsaWIuaD4KLSsKLStfQUNFT0YKLStpZiAoZXZhbCAiJGFjX2NwcCBjb25mdGVzdC4k YWNfZXh0IikgMj4mNSB8Ci0rICAkRUdSRVAgImZyZWUiID4vZGV2L251bGwgMj4mMTsgdGhlbgot KyAgOgotK2Vsc2UKLSsgIGFjX2N2X2hlYWRlcl9zdGRjPW5vCi0rZmkKLStybSAtZiBjb25mdGVz dCoKLSsKLStmaQotKwotK2lmIHRlc3QgJGFjX2N2X2hlYWRlcl9zdGRjID0geWVzOyB0aGVuCi0r ICAjIC9iaW4vY2MgaW4gSXJpeC00LjAuNSBnZXRzIG5vbi1BTlNJIGN0eXBlIG1hY3JvcyB1bmxl c3MgdXNpbmcgLWFuc2kuCi0rICBpZiB0ZXN0ICIkY3Jvc3NfY29tcGlsaW5nIiA9IHllczsgdGhl bgotKyAgOgotK2Vsc2UKLSsgIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotKy8qIGNv bmZkZWZzLmguICAqLwotK19BQ0VPRgotK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4 dAotK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLSsvKiBlbmQgY29uZmRlZnMuaC4g ICovCi0rI2luY2x1ZGUgPGN0eXBlLmg+Ci0rI2luY2x1ZGUgPHN0ZGxpYi5oPgotKyNpZiAoKCcg JyAmIDB4MEZGKSA9PSAweDAyMCkKLSsjIGRlZmluZSBJU0xPV0VSKGMpICgnYScgPD0gKGMpICYm IChjKSA8PSAneicpCi0rIyBkZWZpbmUgVE9VUFBFUihjKSAoSVNMT1dFUihjKSA/ICdBJyArICgo YykgLSAnYScpIDogKGMpKQotKyNlbHNlCi0rIyBkZWZpbmUgSVNMT1dFUihjKSBcCi0rCQkgICAo KCdhJyA8PSAoYykgJiYgKGMpIDw9ICdpJykgXAotKwkJICAgICB8fCAoJ2onIDw9IChjKSAmJiAo YykgPD0gJ3InKSBcCi0rCQkgICAgIHx8ICgncycgPD0gKGMpICYmIChjKSA8PSAneicpKQotKyMg ZGVmaW5lIFRPVVBQRVIoYykgKElTTE9XRVIoYykgPyAoKGMpIHwgMHg0MCkgOiAoYykpCi0rI2Vu ZGlmCi0rCi0rI2RlZmluZSBYT1IoZSwgZikgKCgoZSkgJiYgIShmKSkgfHwgKCEoZSkgJiYgKGYp KSkKLStpbnQKLSttYWluICgpCi0rewotKyAgaW50IGk7Ci0rICBmb3IgKGkgPSAwOyBpIDwgMjU2 OyBpKyspCi0rICAgIGlmIChYT1IgKGlzbG93ZXIgKGkpLCBJU0xPV0VSIChpKSkKLSsJfHwgdG91 cHBlciAoaSkgIT0gVE9VUFBFUiAoaSkpCi0rICAgICAgcmV0dXJuIDI7Ci0rICByZXR1cm4gMDsK LSt9Ci0rX0FDRU9GCi0rcm0gLWYgY29uZnRlc3QkYWNfZXhlZXh0Ci0raWYgeyAoYWNfdHJ5PSIk YWNfbGluayIKLStjYXNlICIoKCRhY190cnkiIGluCi0rICAqXCIqIHwgKlxgKiB8ICpcXCopIGFj X3RyeV9lY2hvPVwkYWNfdHJ5OzsKLSsgICopIGFjX3RyeV9lY2hvPSRhY190cnk7OwotK2VzYWMK LStldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCi0r JGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4mNQotKyAgKGV2YWwgIiRhY19saW5rIikgMj4mNQot KyAgYWNfc3RhdHVzPSQ/Ci0rICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19z dGF0dXMiID4mNQotKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYgeyBhY190cnk9Jy4vY29uZnRl c3QkYWNfZXhlZXh0JwotKyAgeyAoY2FzZSAiKCgkYWNfdHJ5IiBpbgotKyAgKlwiKiB8ICpcYCog fCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7Ci0rICAqKSBhY190cnlfZWNobz0kYWNfdHJ5 OzsKLStlc2FjCi0rZXZhbCBhY190cnlfZWNobz0iXCJcJGFzX21lOiRMSU5FTk86ICRhY190cnlf ZWNob1wiIgotKyRhc19lY2hvICIkYWNfdHJ5X2VjaG8iKSA+JjUKLSsgIChldmFsICIkYWNfdHJ5 IikgMj4mNQotKyAgYWNfc3RhdHVzPSQ/Ci0rICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwk PyA9ICRhY19zdGF0dXMiID4mNQotKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH07IHRoZW4KLSsg IDoKLStlbHNlCi0rICAkYXNfZWNobyAiJGFzX21lOiBwcm9ncmFtIGV4aXRlZCB3aXRoIHN0YXR1 cyAkYWNfc3RhdHVzIiA+JjUKLSskYXNfZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6 IiA+JjUKLStzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1Ci0rCi0rKCBleGl0ICRh Y19zdGF0dXMgKQotK2FjX2N2X2hlYWRlcl9zdGRjPW5vCi0rZmkKLStybSAtcmYgY29uZnRlc3Qu ZFNZTQotK3JtIC1mIGNvcmUgKi5jb3JlIGNvcmUuY29uZnRlc3QuKiBnbW9uLm91dCBiYi5vdXQg Y29uZnRlc3QkYWNfZXhlZXh0IGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAot K2ZpCi0rCi0rCi0rZmkKLStmaQotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6 ICRhY19jdl9oZWFkZXJfc3RkYyIgPiY1Ci0rJGFzX2VjaG8gIiRhY19jdl9oZWFkZXJfc3RkYyIg PiY2OyB9Ci0raWYgdGVzdCAkYWNfY3ZfaGVhZGVyX3N0ZGMgPSB5ZXM7IHRoZW4KLSsKLStjYXQg Pj5jb25mZGVmcy5oIDw8XF9BQ0VPRgotKyNkZWZpbmUgU1REQ19IRUFERVJTIDEKLStfQUNFT0YK LSsKLStmaQotKwotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyB3aGV0aGVy IHRpbWUuaCBhbmQgc3lzL3RpbWUuaCBtYXkgYm90aCBiZSBpbmNsdWRlZCIgPiY1Ci0rJGFzX2Vj aG9fbiAiY2hlY2tpbmcgd2hldGhlciB0aW1lLmggYW5kIHN5cy90aW1lLmggbWF5IGJvdGggYmUg aW5jbHVkZWQuLi4gIiA+JjY7IH0KLStpZiB0ZXN0ICIke2FjX2N2X2hlYWRlcl90aW1lK3NldH0i ID0gc2V0OyB0aGVuCi0rICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsgIGNh dCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotKy8qIGNvbmZkZWZzLmguICAqLwotK19BQ0VP RgotK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAotK2NhdCA+PmNvbmZ0ZXN0LiRh Y19leHQgPDxfQUNFT0YKLSsvKiBlbmQgY29uZmRlZnMuaC4gICovCi0rI2luY2x1ZGUgPHN5cy90 eXBlcy5oPgotKyNpbmNsdWRlIDxzeXMvdGltZS5oPgotKyNpbmNsdWRlIDx0aW1lLmg+Ci0rCi0r aW50Ci0rbWFpbiAoKQotK3sKLStpZiAoKHN0cnVjdCB0bSAqKSAwKQotK3JldHVybiAwOwotKyAg OwotKyAgcmV0dXJuIDA7Ci0rfQotK19BQ0VPRgotK3JtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQK LStpZiB7IChhY190cnk9IiRhY19jb21waWxlIgotK2Nhc2UgIigoJGFjX3RyeSIgaW4KLSsgICpc IiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OwotKyAgKikgYWNfdHJ5X2Vj aG89JGFjX3RyeTs7Ci0rZXNhYwotK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5P OiAkYWNfdHJ5X2VjaG9cIiIKLSskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1Ci0rICAoZXZh bCAiJGFjX2NvbXBpbGUiKSAyPmNvbmZ0ZXN0LmVyMQotKyAgYWNfc3RhdHVzPSQ/Ci0rICBncmVw IC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgotKyAgcm0gLWYgY29uZnRlc3Qu ZXIxCi0rICBjYXQgY29uZnRlc3QuZXJyID4mNQotKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5P OiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSsgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmIHsKLSsJ IHRlc3QgLXogIiRhY19jeHhfd2Vycm9yX2ZsYWciIHx8Ci0rCSB0ZXN0ICEgLXMgY29uZnRlc3Qu ZXJyCi0rICAgICAgIH0gJiYgdGVzdCAtcyBjb25mdGVzdC4kYWNfb2JqZXh0OyB0aGVuCi0rICBh Y19jdl9oZWFkZXJfdGltZT15ZXMKLStlbHNlCi0rICAkYXNfZWNobyAiJGFzX21lOiBmYWlsZWQg cHJvZ3JhbSB3YXM6IiA+JjUKLStzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1Ci0r Ci0rCWFjX2N2X2hlYWRlcl90aW1lPW5vCi0rZmkKLSsKLStybSAtZiBjb3JlIGNvbmZ0ZXN0LmVy ciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKLStmaQotK3sgJGFzX2VjaG8g IiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19jdl9oZWFkZXJfdGltZSIgPiY1Ci0rJGFzX2Vj aG8gIiRhY19jdl9oZWFkZXJfdGltZSIgPiY2OyB9Ci0raWYgdGVzdCAkYWNfY3ZfaGVhZGVyX3Rp bWUgPSB5ZXM7IHRoZW4KLSsKLStjYXQgPj5jb25mZGVmcy5oIDw8XF9BQ0VPRgotKyNkZWZpbmUg VElNRV9XSVRIX1NZU19USU1FIDEKLStfQUNFT0YKLSsKLStmaQotKwotKwotKwotKwotKwotKwot KwotKwotKwotKwotKwotKwotKwotKwotKwotK2ZvciBhY19oZWFkZXIgaW4gY21hdGggXAotKyAg ZGVxdWUgXAotKyAgZnN0cmVhbSBcCi0rICBpb21hbmlwIFwKLSsgIGlvc3RyZWFtIFwKLSsgIHNz dHJlYW0gXAotKyAgbGltaXRzIFwKLSsgIGxpc3QgXAotKyAgc2V0IFwKLSsgIHZlY3RvciBcCi0r ICBtYXAgXAotKyAgcXVldWUgXAotKyAgc3RkZXhjZXB0IFwKLSsgIHN0cmluZwotK2RvCi0rYXNf YWNfSGVhZGVyPWAkYXNfZWNobyAiYWNfY3ZfaGVhZGVyXyRhY19oZWFkZXIiIHwgJGFzX3RyX3No YAotK2lmIHsgYXNfdmFyPSRhc19hY19IZWFkZXI7IGV2YWwgInRlc3QgXCJcJHskYXNfdmFyK3Nl dH1cIiA9IHNldCI7IH07IHRoZW4KLSsgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVj a2luZyBmb3IgJGFjX2hlYWRlciIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yICRhY19o ZWFkZXIuLi4gIiA+JjY7IH0KLStpZiB7IGFzX3Zhcj0kYXNfYWNfSGVhZGVyOyBldmFsICJ0ZXN0 IFwiXCR7JGFzX3ZhcitzZXR9XCIgPSBzZXQiOyB9OyB0aGVuCi0rICAkYXNfZWNob19uICIoY2Fj aGVkKSAiID4mNgotK2ZpCi0rYWNfcmVzPWBldmFsICdhc192YWw9JHsnJGFzX2FjX0hlYWRlcid9 Ci0rCQkgJGFzX2VjaG8gIiRhc192YWwiJ2AKLSsJICAgICAgIHsgJGFzX2VjaG8gIiRhc19tZTok TElORU5POiByZXN1bHQ6ICRhY19yZXMiID4mNQotKyRhc19lY2hvICIkYWNfcmVzIiA+JjY7IH0K LStlbHNlCi0rICAjIElzIHRoZSBoZWFkZXIgY29tcGlsYWJsZT8KLSt7ICRhc19lY2hvICIkYXNf bWU6JExJTkVOTzogY2hlY2tpbmcgJGFjX2hlYWRlciB1c2FiaWxpdHkiID4mNQotKyRhc19lY2hv X24gImNoZWNraW5nICRhY19oZWFkZXIgdXNhYmlsaXR5Li4uICIgPiY2OyB9Ci0rY2F0ID5jb25m dGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0rLyogY29uZmRlZnMuaC4gICovCi0rX0FDRU9GCi0rY2F0 IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Ci0rY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8 PF9BQ0VPRgotKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLSskYWNfaW5jbHVkZXNfZGVmYXVsdAot KyNpbmNsdWRlIDwkYWNfaGVhZGVyPgotK19BQ0VPRgotK3JtIC1mIGNvbmZ0ZXN0LiRhY19vYmpl eHQKLStpZiB7IChhY190cnk9IiRhY19jb21waWxlIgotK2Nhc2UgIigoJGFjX3RyeSIgaW4KLSsg ICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OwotKyAgKikgYWNfdHJ5 X2VjaG89JGFjX3RyeTs7Ci0rZXNhYwotK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElO RU5POiAkYWNfdHJ5X2VjaG9cIiIKLSskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1Ci0rICAo ZXZhbCAiJGFjX2NvbXBpbGUiKSAyPmNvbmZ0ZXN0LmVyMQotKyAgYWNfc3RhdHVzPSQ/Ci0rICBn cmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgotKyAgcm0gLWYgY29uZnRl c3QuZXIxCi0rICBjYXQgY29uZnRlc3QuZXJyID4mNQotKyAgJGFzX2VjaG8gIiRhc19tZTokTElO RU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSsgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmIHsK LSsJIHRlc3QgLXogIiRhY19jeHhfd2Vycm9yX2ZsYWciIHx8Ci0rCSB0ZXN0ICEgLXMgY29uZnRl c3QuZXJyCi0rICAgICAgIH0gJiYgdGVzdCAtcyBjb25mdGVzdC4kYWNfb2JqZXh0OyB0aGVuCi0r ICBhY19oZWFkZXJfY29tcGlsZXI9eWVzCi0rZWxzZQotKyAgJGFzX2VjaG8gIiRhc19tZTogZmFp bGVkIHByb2dyYW0gd2FzOiIgPiY1Ci0rc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4m NQotKwotKwlhY19oZWFkZXJfY29tcGlsZXI9bm8KLStmaQotKwotK3JtIC1mIGNvcmUgY29uZnRl c3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAotK3sgJGFzX2VjaG8g IiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19oZWFkZXJfY29tcGlsZXIiID4mNQotKyRhc19l Y2hvICIkYWNfaGVhZGVyX2NvbXBpbGVyIiA+JjY7IH0KLSsKLSsjIElzIHRoZSBoZWFkZXIgcHJl c2VudD8KLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgJGFjX2hlYWRlciBw cmVzZW5jZSIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgJGFjX2hlYWRlciBwcmVzZW5jZS4u LiAiID4mNjsgfQotK2NhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotKy8qIGNvbmZkZWZz LmguICAqLwotK19BQ0VPRgotK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAotK2Nh dCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLSsvKiBlbmQgY29uZmRlZnMuaC4gICovCi0r I2luY2x1ZGUgPCRhY19oZWFkZXI+Ci0rX0FDRU9GCi0raWYgeyAoYWNfdHJ5PSIkYWNfY3BwIGNv bmZ0ZXN0LiRhY19leHQiCi0rY2FzZSAiKCgkYWNfdHJ5IiBpbgotKyAgKlwiKiB8ICpcYCogfCAq XFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7Ci0rICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsK LStlc2FjCi0rZXZhbCBhY190cnlfZWNobz0iXCJcJGFzX21lOiRMSU5FTk86ICRhY190cnlfZWNo b1wiIgotKyRhc19lY2hvICIkYWNfdHJ5X2VjaG8iKSA+JjUKLSsgIChldmFsICIkYWNfY3BwIGNv bmZ0ZXN0LiRhY19leHQiKSAyPmNvbmZ0ZXN0LmVyMQotKyAgYWNfc3RhdHVzPSQ/Ci0rICBncmVw IC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgotKyAgcm0gLWYgY29uZnRlc3Qu ZXIxCi0rICBjYXQgY29uZnRlc3QuZXJyID4mNQotKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5P OiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSsgIChleGl0ICRhY19zdGF0dXMpOyB9ID4vZGV2L251 bGwgJiYgewotKwkgdGVzdCAteiAiJGFjX2N4eF9wcmVwcm9jX3dhcm5fZmxhZyRhY19jeHhfd2Vy cm9yX2ZsYWciIHx8Ci0rCSB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCi0rICAgICAgIH07IHRoZW4K LSsgIGFjX2hlYWRlcl9wcmVwcm9jPXllcwotK2Vsc2UKLSsgICRhc19lY2hvICIkYXNfbWU6IGZh aWxlZCBwcm9ncmFtIHdhczoiID4mNQotK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+ JjUKLSsKLSsgIGFjX2hlYWRlcl9wcmVwcm9jPW5vCi0rZmkKLSsKLStybSAtZiBjb25mdGVzdC5l cnIgY29uZnRlc3QuJGFjX2V4dAotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6 ICRhY19oZWFkZXJfcHJlcHJvYyIgPiY1Ci0rJGFzX2VjaG8gIiRhY19oZWFkZXJfcHJlcHJvYyIg PiY2OyB9Ci0rCi0rIyBTbz8gIFdoYXQgYWJvdXQgdGhpcyBoZWFkZXI/Ci0rY2FzZSAkYWNfaGVh ZGVyX2NvbXBpbGVyOiRhY19oZWFkZXJfcHJlcHJvYzokYWNfY3h4X3ByZXByb2Nfd2Fybl9mbGFn IGluCi0rICB5ZXM6bm86ICkKLSsgICAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5J Tkc6ICRhY19oZWFkZXI6IGFjY2VwdGVkIGJ5IHRoZSBjb21waWxlciwgcmVqZWN0ZWQgYnkgdGhl IHByZXByb2Nlc3NvciEiID4mNQotKyRhc19lY2hvICIkYXNfbWU6IFdBUk5JTkc6ICRhY19oZWFk ZXI6IGFjY2VwdGVkIGJ5IHRoZSBjb21waWxlciwgcmVqZWN0ZWQgYnkgdGhlIHByZXByb2Nlc3Nv ciEiID4mMjt9Ci0rICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBXQVJOSU5HOiAkYWNf aGVhZGVyOiBwcm9jZWVkaW5nIHdpdGggdGhlIGNvbXBpbGVyJ3MgcmVzdWx0IiA+JjUKLSskYXNf ZWNobyAiJGFzX21lOiBXQVJOSU5HOiAkYWNfaGVhZGVyOiBwcm9jZWVkaW5nIHdpdGggdGhlIGNv bXBpbGVyJ3MgcmVzdWx0IiA+JjI7fQotKyAgICBhY19oZWFkZXJfcHJlcHJvYz15ZXMKLSsgICAg OzsKLSsgIG5vOnllczoqICkKLSsgICAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5J Tkc6ICRhY19oZWFkZXI6IHByZXNlbnQgYnV0IGNhbm5vdCBiZSBjb21waWxlZCIgPiY1Ci0rJGFz X2VjaG8gIiRhc19tZTogV0FSTklORzogJGFjX2hlYWRlcjogcHJlc2VudCBidXQgY2Fubm90IGJl IGNvbXBpbGVkIiA+JjI7fQotKyAgICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogV0FSTklO RzogJGFjX2hlYWRlcjogICAgIGNoZWNrIGZvciBtaXNzaW5nIHByZXJlcXVpc2l0ZSBoZWFkZXJz PyIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogV0FSTklORzogJGFjX2hlYWRlcjogICAgIGNoZWNr IGZvciBtaXNzaW5nIHByZXJlcXVpc2l0ZSBoZWFkZXJzPyIgPiYyO30KLSsgICAgeyAkYXNfZWNo byAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6ICRhY19oZWFkZXI6IHNlZSB0aGUgQXV0b2NvbmYg ZG9jdW1lbnRhdGlvbiIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogV0FSTklORzogJGFjX2hlYWRl cjogc2VlIHRoZSBBdXRvY29uZiBkb2N1bWVudGF0aW9uIiA+JjI7fQotKyAgICB7ICRhc19lY2hv ICIkYXNfbWU6JExJTkVOTzogV0FSTklORzogJGFjX2hlYWRlcjogICAgIHNlY3Rpb24gXCJQcmVz ZW50IEJ1dCBDYW5ub3QgQmUgQ29tcGlsZWRcIiIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogV0FS TklORzogJGFjX2hlYWRlcjogICAgIHNlY3Rpb24gXCJQcmVzZW50IEJ1dCBDYW5ub3QgQmUgQ29t cGlsZWRcIiIgPiYyO30KLSsgICAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6 ICRhY19oZWFkZXI6IHByb2NlZWRpbmcgd2l0aCB0aGUgcHJlcHJvY2Vzc29yJ3MgcmVzdWx0IiA+ JjUKLSskYXNfZWNobyAiJGFzX21lOiBXQVJOSU5HOiAkYWNfaGVhZGVyOiBwcm9jZWVkaW5nIHdp dGggdGhlIHByZXByb2Nlc3NvcidzIHJlc3VsdCIgPiYyO30KLSsgICAgeyAkYXNfZWNobyAiJGFz X21lOiRMSU5FTk86IFdBUk5JTkc6ICRhY19oZWFkZXI6IGluIHRoZSBmdXR1cmUsIHRoZSBjb21w aWxlciB3aWxsIHRha2UgcHJlY2VkZW5jZSIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogV0FSTklO RzogJGFjX2hlYWRlcjogaW4gdGhlIGZ1dHVyZSwgdGhlIGNvbXBpbGVyIHdpbGwgdGFrZSBwcmVj ZWRlbmNlIiA+JjI7fQotKyAgICAoIGNhdCA8PFxfQVNCT1gKLSsjIyAtLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIyMKLSsjIyBSZXBvcnQgdGhpcyB0byBtc29i Y3pha0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQgIyMKLSsjIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIyMKLStfQVNCT1gKLSsgICAgICkgfCBzZWQgInMvXi8k YXNfbWU6IFdBUk5JTkc6ICAgICAvIiA+JjIKLSsgICAgOzsKLStlc2FjCi0reyAkYXNfZWNobyAi JGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciAkYWNfaGVhZGVyIiA+JjUKLSskYXNfZWNob19u ICJjaGVja2luZyBmb3IgJGFjX2hlYWRlci4uLiAiID4mNjsgfQotK2lmIHsgYXNfdmFyPSRhc19h Y19IZWFkZXI7IGV2YWwgInRlc3QgXCJcJHskYXNfdmFyK3NldH1cIiA9IHNldCI7IH07IHRoZW4K LSsgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci0rZWxzZQotKyAgZXZhbCAiJGFzX2FjX0hl YWRlcj1cJGFjX2hlYWRlcl9wcmVwcm9jIgotK2ZpCi0rYWNfcmVzPWBldmFsICdhc192YWw9JHsn JGFzX2FjX0hlYWRlcid9Ci0rCQkgJGFzX2VjaG8gIiRhc192YWwiJ2AKLSsJICAgICAgIHsgJGFz X2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19yZXMiID4mNQotKyRhc19lY2hvICIk YWNfcmVzIiA+JjY7IH0KLSsKLStmaQotK2FzX3ZhbD1gZXZhbCAnYXNfdmFsPSR7JyRhc19hY19I ZWFkZXInfQotKwkJICRhc19lY2hvICIkYXNfdmFsIidgCi0rICAgaWYgdGVzdCAieCRhc192YWwi ID0geCIieWVzOyB0aGVuCi0rICBjYXQgPj5jb25mZGVmcy5oIDw8X0FDRU9GCi0rI2RlZmluZSBg JGFzX2VjaG8gIkhBVkVfJGFjX2hlYWRlciIgfCAkYXNfdHJfY3BwYCAxCi0rX0FDRU9GCi0rCi0r ZmkKLSsKLStkb25lCi0rCi0rCi0rCi0rIyBEZWZpbmUgY29uZmlndXJlZCBmaWxlcwotK2FjX2Nv bmZpZ19maWxlcz0iJGFjX2NvbmZpZ19maWxlcyBNYWtlZmlsZSBzb2NpLWNvbmZpZyBzb2NpLnBj IHNvY2kuc3BlYyBzb2NpL01ha2VmaWxlIHNvY2kvY29yZS9NYWtlZmlsZSBzb2NpL2NvcmUvdGVz dC9NYWtlZmlsZSBzb2NpL2JhY2tlbmRzL01ha2VmaWxlIHNvY2kvYmFja2VuZHMvbXlzcWwvTWFr ZWZpbGUgc29jaS9iYWNrZW5kcy9teXNxbC90ZXN0L01ha2VmaWxlIHNvY2kvYmFja2VuZHMvcG9z dGdyZXNxbC9NYWtlZmlsZSBzb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvdGVzdC9NYWtlZmlsZSBz b2NpL2JhY2tlbmRzL29yYWNsZS9NYWtlZmlsZSBzb2NpL2JhY2tlbmRzL29yYWNsZS90ZXN0L01h a2VmaWxlIG1hbi9NYWtlZmlsZSBkb2MvTWFrZWZpbGUgZG9jL2JhY2tlbmRzL01ha2VmaWxlIGJ1 aWxkL01ha2VmaWxlIGJ1aWxkL3VuaXgvTWFrZWZpbGUgYnVpbGQvbXN2YzgwL01ha2VmaWxlIGJ1 aWxkL21zdmM4MC9kbGwvTWFrZWZpbGUgYnVpbGQvbXN2YzgwL2xpYi9NYWtlZmlsZSIKLSsKLSsK LStjYXQgPmNvbmZjYWNoZSA8PFxfQUNFT0YKLSsjIFRoaXMgZmlsZSBpcyBhIHNoZWxsIHNjcmlw dCB0aGF0IGNhY2hlcyB0aGUgcmVzdWx0cyBvZiBjb25maWd1cmUKLSsjIHRlc3RzIHJ1biBvbiB0 aGlzIHN5c3RlbSBzbyB0aGV5IGNhbiBiZSBzaGFyZWQgYmV0d2VlbiBjb25maWd1cmUKLSsjIHNj cmlwdHMgYW5kIGNvbmZpZ3VyZSBydW5zLCBzZWUgY29uZmlndXJlJ3Mgb3B0aW9uIC0tY29uZmln LWNhY2hlLgotKyMgSXQgaXMgbm90IHVzZWZ1bCBvbiBvdGhlciBzeXN0ZW1zLiAgSWYgaXQgY29u dGFpbnMgcmVzdWx0cyB5b3UgZG9uJ3QKLSsjIHdhbnQgdG8ga2VlcCwgeW91IG1heSByZW1vdmUg b3IgZWRpdCBpdC4KLSsjCi0rIyBjb25maWcuc3RhdHVzIG9ubHkgcGF5cyBhdHRlbnRpb24gdG8g dGhlIGNhY2hlIGZpbGUgaWYgeW91IGdpdmUgaXQKLSsjIHRoZSAtLXJlY2hlY2sgb3B0aW9uIHRv IHJlcnVuIGNvbmZpZ3VyZS4KLSsjCi0rIyBgYWNfY3ZfZW52X2ZvbycgdmFyaWFibGVzIChzZXQg b3IgdW5zZXQpIHdpbGwgYmUgb3ZlcnJpZGRlbiB3aGVuCi0rIyBsb2FkaW5nIHRoaXMgZmlsZSwg b3RoZXIgKnVuc2V0KiBgYWNfY3ZfZm9vJyB3aWxsIGJlIGFzc2lnbmVkIHRoZQotKyMgZm9sbG93 aW5nIHZhbHVlcy4KLSsKLStfQUNFT0YKLSsKLSsjIFRoZSBmb2xsb3dpbmcgd2F5IG9mIHdyaXRp bmcgdGhlIGNhY2hlIG1pc2hhbmRsZXMgbmV3bGluZXMgaW4gdmFsdWVzLAotKyMgYnV0IHdlIGtu b3cgb2Ygbm8gd29ya2Fyb3VuZCB0aGF0IGlzIHNpbXBsZSwgcG9ydGFibGUsIGFuZCBlZmZpY2ll bnQuCi0rIyBTbywgd2Uga2lsbCB2YXJpYWJsZXMgY29udGFpbmluZyBuZXdsaW5lcy4KLSsjIFVs dHJpeCBzaCBzZXQgd3JpdGVzIHRvIHN0ZGVyciBhbmQgY2FuJ3QgYmUgcmVkaXJlY3RlZCBkaXJl Y3RseSwKLSsjIGFuZCBzZXRzIHRoZSBoaWdoIGJpdCBpbiB0aGUgY2FjaGUgZmlsZSB1bmxlc3Mg d2UgYXNzaWduIHRvIHRoZSB2YXJzLgotKygKLSsgIGZvciBhY192YXIgaW4gYChzZXQpIDI+JjEg fCBzZWQgLW4gJ3MvXlwoW2EtekEtWl9dW2EtekEtWjAtOV9dKlwpPS4qL1wxL3AnYDsgZG8KLSsg ICAgZXZhbCBhY192YWw9XCQkYWNfdmFyCi0rICAgIGNhc2UgJGFjX3ZhbCBpbiAjKAotKyAgICAq JHthc19ubH0qKQotKyAgICAgIGNhc2UgJGFjX3ZhciBpbiAjKAotKyAgICAgICpfY3ZfKikgeyAk YXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6IGNhY2hlIHZhcmlhYmxlICRhY192YXIg Y29udGFpbnMgYSBuZXdsaW5lIiA+JjUKLSskYXNfZWNobyAiJGFzX21lOiBXQVJOSU5HOiBjYWNo ZSB2YXJpYWJsZSAkYWNfdmFyIGNvbnRhaW5zIGEgbmV3bGluZSIgPiYyO30gOzsKLSsgICAgICBl c2FjCi0rICAgICAgY2FzZSAkYWNfdmFyIGluICMoCi0rICAgICAgXyB8IElGUyB8IGFzX25sKSA7 OyAjKAotKyAgICAgIEJBU0hfQVJHViB8IEJBU0hfU09VUkNFKSBldmFsICRhY192YXI9IDs7ICMo Ci0rICAgICAgKikgJGFzX3Vuc2V0ICRhY192YXIgOzsKLSsgICAgICBlc2FjIDs7Ci0rICAgIGVz YWMKLSsgIGRvbmUKLSsKLSsgIChzZXQpIDI+JjEgfAotKyAgICBjYXNlICRhc19ubGAoYWNfc3Bh Y2U9JyAnOyBzZXQpIDI+JjFgIGluICMoCi0rICAgICoke2FzX25sfWFjX3NwYWNlPVwgKikKLSsg ICAgICAjIGBzZXQnIGRvZXMgbm90IHF1b3RlIGNvcnJlY3RseSwgc28gYWRkIHF1b3RlcyAoZG91 YmxlLXF1b3RlCi0rICAgICAgIyBzdWJzdGl0dXRpb24gdHVybnMgXFxcXCBpbnRvIFxcLCBhbmQg c2VkIHR1cm5zIFxcIGludG8gXCkuCi0rICAgICAgc2VkIC1uIFwKLSsJInMvJy8nXFxcXCcnL2c7 Ci0rCSAgcy9eXFwoW18kYXNfY3JfYWxudW1dKl9jdl9bXyRhc19jcl9hbG51bV0qXFwpPVxcKC4q XFwpL1xcMT0nXFwyJy9wIgotKyAgICAgIDs7ICMoCi0rICAgICopCi0rICAgICAgIyBgc2V0JyBx dW90ZXMgY29ycmVjdGx5IGFzIHJlcXVpcmVkIGJ5IFBPU0lYLCBzbyBkbyBub3QgYWRkIHF1b3Rl cy4KLSsgICAgICBzZWQgLW4gIi9eW18kYXNfY3JfYWxudW1dKl9jdl9bXyRhc19jcl9hbG51bV0q PS9wIgotKyAgICAgIDs7Ci0rICAgIGVzYWMgfAotKyAgICBzb3J0Ci0rKSB8Ci0rICBzZWQgJwot KyAgICAgL15hY19jdl9lbnZfL2IgZW5kCi0rICAgICB0IGNsZWFyCi0rICAgICA6Y2xlYXIKLSsg ICAgIHMvXlwoW149XSpcKT1cKC4qW3t9XS4qXCkkL3Rlc3QgIiR7XDErc2V0fSIgPSBzZXQgfHwg Ji8KLSsgICAgIHQgZW5kCi0rICAgICBzL15cKFtePV0qXCk9XCguKlwpJC9cMT0ke1wxPVwyfS8K LSsgICAgIDplbmQnID4+Y29uZmNhY2hlCi0raWYgZGlmZiAiJGNhY2hlX2ZpbGUiIGNvbmZjYWNo ZSA+L2Rldi9udWxsIDI+JjE7IHRoZW4gOjsgZWxzZQotKyAgaWYgdGVzdCAtdyAiJGNhY2hlX2Zp bGUiOyB0aGVuCi0rICAgIHRlc3QgIngkY2FjaGVfZmlsZSIgIT0gIngvZGV2L251bGwiICYmCi0r ICAgICAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHVwZGF0aW5nIGNhY2hlICRjYWNoZV9m aWxlIiA+JjUKLSskYXNfZWNobyAiJGFzX21lOiB1cGRhdGluZyBjYWNoZSAkY2FjaGVfZmlsZSIg PiY2O30KLSsgICAgY2F0IGNvbmZjYWNoZSA+JGNhY2hlX2ZpbGUKLSsgIGVsc2UKLSsgICAgeyAk YXNfZWNobyAiJGFzX21lOiRMSU5FTk86IG5vdCB1cGRhdGluZyB1bndyaXRhYmxlIGNhY2hlICRj YWNoZV9maWxlIiA+JjUKLSskYXNfZWNobyAiJGFzX21lOiBub3QgdXBkYXRpbmcgdW53cml0YWJs ZSBjYWNoZSAkY2FjaGVfZmlsZSIgPiY2O30KLSsgIGZpCi0rZmkKLStybSAtZiBjb25mY2FjaGUK LSsKLSt0ZXN0ICJ4JHByZWZpeCIgPSB4Tk9ORSAmJiBwcmVmaXg9JGFjX2RlZmF1bHRfcHJlZml4 Ci0rIyBMZXQgbWFrZSBleHBhbmQgZXhlY19wcmVmaXguCi0rdGVzdCAieCRleGVjX3ByZWZpeCIg PSB4Tk9ORSAmJiBleGVjX3ByZWZpeD0nJHtwcmVmaXh9JwotKwotK0RFRlM9LURIQVZFX0NPTkZJ R19ICi0rCi0rYWNfbGlib2Jqcz0KLSthY19sdGxpYm9ianM9Ci0rZm9yIGFjX2kgaW4gOiAkTElC T0JKUzsgZG8gdGVzdCAieCRhY19pIiA9IHg6ICYmIGNvbnRpbnVlCi0rICAjIDEuIFJlbW92ZSB0 aGUgZXh0ZW5zaW9uLCBhbmQgJFUgaWYgYWxyZWFkeSBpbnN0YWxsZWQuCi0rICBhY19zY3JpcHQ9 J3MvXCRVXC4vLi87cy9cLm8kLy87cy9cLm9iaiQvLycKLSsgIGFjX2k9YCRhc19lY2hvICIkYWNf aSIgfCBzZWQgIiRhY19zY3JpcHQiYAotKyAgIyAyLiBQcmVwZW5kIExJQk9CSkRJUi4gIFdoZW4g dXNlZCB3aXRoIGF1dG9tYWtlPj0xLjEwIExJQk9CSkRJUgotKyAgIyAgICB3aWxsIGJlIHNldCB0 byB0aGUgZGlyZWN0b3J5IHdoZXJlIExJQk9CSlMgb2JqZWN0cyBhcmUgYnVpbHQuCi0rICBhY19s aWJvYmpzPSIkYWNfbGlib2JqcyBcJHtMSUJPQkpESVJ9JGFjX2lcJFUuJGFjX29iamV4dCIKLSsg IGFjX2x0bGlib2Jqcz0iJGFjX2x0bGlib2JqcyBcJHtMSUJPQkpESVJ9JGFjX2kiJyRVLmxvJwot K2RvbmUKLStMSUJPQkpTPSRhY19saWJvYmpzCi0rCi0rTFRMSUJPQkpTPSRhY19sdGxpYm9ianMK LSsKLSsKLStpZiB0ZXN0IC16ICIke0hBVkVfQ1BQVU5JVF9UUlVFfSIgJiYgdGVzdCAteiAiJHtI QVZFX0NQUFVOSVRfRkFMU0V9IjsgdGhlbgotKyAgeyB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVO TzogZXJyb3I6IGNvbmRpdGlvbmFsIFwiSEFWRV9DUFBVTklUXCIgd2FzIG5ldmVyIGRlZmluZWQu Ci0rVXN1YWxseSB0aGlzIG1lYW5zIHRoZSBtYWNybyB3YXMgb25seSBpbnZva2VkIGNvbmRpdGlv bmFsbHkuIiA+JjUKLSskYXNfZWNobyAiJGFzX21lOiBlcnJvcjogY29uZGl0aW9uYWwgXCJIQVZF X0NQUFVOSVRcIiB3YXMgbmV2ZXIgZGVmaW5lZC4KLStVc3VhbGx5IHRoaXMgbWVhbnMgdGhlIG1h Y3JvIHdhcyBvbmx5IGludm9rZWQgY29uZGl0aW9uYWxseS4iID4mMjt9Ci0rICAgeyAoZXhpdCAx KTsgZXhpdCAxOyB9OyB9Ci0rZmkKLStpZiB0ZXN0IC16ICIke0FNREVQX1RSVUV9IiAmJiB0ZXN0 IC16ICIke0FNREVQX0ZBTFNFfSI7IHRoZW4KLSsgIHsgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5F Tk86IGVycm9yOiBjb25kaXRpb25hbCBcIkFNREVQXCIgd2FzIG5ldmVyIGRlZmluZWQuCi0rVXN1 YWxseSB0aGlzIG1lYW5zIHRoZSBtYWNybyB3YXMgb25seSBpbnZva2VkIGNvbmRpdGlvbmFsbHku IiA+JjUKLSskYXNfZWNobyAiJGFzX21lOiBlcnJvcjogY29uZGl0aW9uYWwgXCJBTURFUFwiIHdh cyBuZXZlciBkZWZpbmVkLgotK1VzdWFsbHkgdGhpcyBtZWFucyB0aGUgbWFjcm8gd2FzIG9ubHkg aW52b2tlZCBjb25kaXRpb25hbGx5LiIgPiYyO30KLSsgICB7IChleGl0IDEpOyBleGl0IDE7IH07 IH0KLStmaQotK2lmIHRlc3QgLXogIiR7YW1fX2Zhc3RkZXBDWFhfVFJVRX0iICYmIHRlc3QgLXog IiR7YW1fX2Zhc3RkZXBDWFhfRkFMU0V9IjsgdGhlbgotKyAgeyB7ICRhc19lY2hvICIkYXNfbWU6 JExJTkVOTzogZXJyb3I6IGNvbmRpdGlvbmFsIFwiYW1fX2Zhc3RkZXBDWFhcIiB3YXMgbmV2ZXIg ZGVmaW5lZC4KLStVc3VhbGx5IHRoaXMgbWVhbnMgdGhlIG1hY3JvIHdhcyBvbmx5IGludm9rZWQg Y29uZGl0aW9uYWxseS4iID4mNQotKyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBjb25kaXRpb25h bCBcImFtX19mYXN0ZGVwQ1hYXCIgd2FzIG5ldmVyIGRlZmluZWQuCi0rVXN1YWxseSB0aGlzIG1l YW5zIHRoZSBtYWNybyB3YXMgb25seSBpbnZva2VkIGNvbmRpdGlvbmFsbHkuIiA+JjI7fQotKyAg IHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQotK2ZpCi0raWYgdGVzdCAteiAiJHthbV9fZmFzdGRl cENDX1RSVUV9IiAmJiB0ZXN0IC16ICIke2FtX19mYXN0ZGVwQ0NfRkFMU0V9IjsgdGhlbgotKyAg eyB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IGNvbmRpdGlvbmFsIFwiYW1fX2Zh c3RkZXBDQ1wiIHdhcyBuZXZlciBkZWZpbmVkLgotK1VzdWFsbHkgdGhpcyBtZWFucyB0aGUgbWFj cm8gd2FzIG9ubHkgaW52b2tlZCBjb25kaXRpb25hbGx5LiIgPiY1Ci0rJGFzX2VjaG8gIiRhc19t ZTogZXJyb3I6IGNvbmRpdGlvbmFsIFwiYW1fX2Zhc3RkZXBDQ1wiIHdhcyBuZXZlciBkZWZpbmVk LgotK1VzdWFsbHkgdGhpcyBtZWFucyB0aGUgbWFjcm8gd2FzIG9ubHkgaW52b2tlZCBjb25kaXRp b25hbGx5LiIgPiYyO30KLSsgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KLStmaQotK2lmIHRl c3QgLXogIiR7YW1fX2Zhc3RkZXBDWFhfVFJVRX0iICYmIHRlc3QgLXogIiR7YW1fX2Zhc3RkZXBD WFhfRkFMU0V9IjsgdGhlbgotKyAgeyB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6 IGNvbmRpdGlvbmFsIFwiYW1fX2Zhc3RkZXBDWFhcIiB3YXMgbmV2ZXIgZGVmaW5lZC4KLStVc3Vh bGx5IHRoaXMgbWVhbnMgdGhlIG1hY3JvIHdhcyBvbmx5IGludm9rZWQgY29uZGl0aW9uYWxseS4i ID4mNQotKyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBjb25kaXRpb25hbCBcImFtX19mYXN0ZGVw Q1hYXCIgd2FzIG5ldmVyIGRlZmluZWQuCi0rVXN1YWxseSB0aGlzIG1lYW5zIHRoZSBtYWNybyB3 YXMgb25seSBpbnZva2VkIGNvbmRpdGlvbmFsbHkuIiA+JjI7fQotKyAgIHsgKGV4aXQgMSk7IGV4 aXQgMTsgfTsgfQotK2ZpCi0raWYgdGVzdCAteiAiJHtTT0NJX0hFQURFUlNfQlVSSUVEX1RSVUV9 IiAmJiB0ZXN0IC16ICIke1NPQ0lfSEVBREVSU19CVVJJRURfRkFMU0V9IjsgdGhlbgotKyAgeyB7 ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IGNvbmRpdGlvbmFsIFwiU09DSV9IRUFE RVJTX0JVUklFRFwiIHdhcyBuZXZlciBkZWZpbmVkLgotK1VzdWFsbHkgdGhpcyBtZWFucyB0aGUg bWFjcm8gd2FzIG9ubHkgaW52b2tlZCBjb25kaXRpb25hbGx5LiIgPiY1Ci0rJGFzX2VjaG8gIiRh c19tZTogZXJyb3I6IGNvbmRpdGlvbmFsIFwiU09DSV9IRUFERVJTX0JVUklFRFwiIHdhcyBuZXZl ciBkZWZpbmVkLgotK1VzdWFsbHkgdGhpcyBtZWFucyB0aGUgbWFjcm8gd2FzIG9ubHkgaW52b2tl ZCBjb25kaXRpb25hbGx5LiIgPiYyO30KLSsgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KLStm aQotK2lmIHRlc3QgLXogIiR7U09DSV9NWVNRTF9IRUFERVJTX0JVUklFRF9UUlVFfSIgJiYgdGVz dCAteiAiJHtTT0NJX01ZU1FMX0hFQURFUlNfQlVSSUVEX0ZBTFNFfSI7IHRoZW4KLSsgIHsgeyAk YXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBjb25kaXRpb25hbCBcIlNPQ0lfTVlTUUxf SEVBREVSU19CVVJJRURcIiB3YXMgbmV2ZXIgZGVmaW5lZC4KLStVc3VhbGx5IHRoaXMgbWVhbnMg dGhlIG1hY3JvIHdhcyBvbmx5IGludm9rZWQgY29uZGl0aW9uYWxseS4iID4mNQotKyRhc19lY2hv ICIkYXNfbWU6IGVycm9yOiBjb25kaXRpb25hbCBcIlNPQ0lfTVlTUUxfSEVBREVSU19CVVJJRURc IiB3YXMgbmV2ZXIgZGVmaW5lZC4KLStVc3VhbGx5IHRoaXMgbWVhbnMgdGhlIG1hY3JvIHdhcyBv bmx5IGludm9rZWQgY29uZGl0aW9uYWxseS4iID4mMjt9Ci0rICAgeyAoZXhpdCAxKTsgZXhpdCAx OyB9OyB9Ci0rZmkKLStpZiB0ZXN0IC16ICIke1NPQ0lfUE9TVEdSRVNRTF9IRUFERVJTX0JVUklF RF9UUlVFfSIgJiYgdGVzdCAteiAiJHtTT0NJX1BPU1RHUkVTUUxfSEVBREVSU19CVVJJRURfRkFM U0V9IjsgdGhlbgotKyAgeyB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IGNvbmRp dGlvbmFsIFwiU09DSV9QT1NUR1JFU1FMX0hFQURFUlNfQlVSSUVEXCIgd2FzIG5ldmVyIGRlZmlu ZWQuCi0rVXN1YWxseSB0aGlzIG1lYW5zIHRoZSBtYWNybyB3YXMgb25seSBpbnZva2VkIGNvbmRp dGlvbmFsbHkuIiA+JjUKLSskYXNfZWNobyAiJGFzX21lOiBlcnJvcjogY29uZGl0aW9uYWwgXCJT T0NJX1BPU1RHUkVTUUxfSEVBREVSU19CVVJJRURcIiB3YXMgbmV2ZXIgZGVmaW5lZC4KLStVc3Vh bGx5IHRoaXMgbWVhbnMgdGhlIG1hY3JvIHdhcyBvbmx5IGludm9rZWQgY29uZGl0aW9uYWxseS4i ID4mMjt9Ci0rICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9Ci0rZmkKLStpZiB0ZXN0IC16ICIk e0hBVkVfTVlTUUxfVFJVRX0iICYmIHRlc3QgLXogIiR7SEFWRV9NWVNRTF9GQUxTRX0iOyB0aGVu Ci0rICB7IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogY29uZGl0aW9uYWwgXCJI QVZFX01ZU1FMXCIgd2FzIG5ldmVyIGRlZmluZWQuCi0rVXN1YWxseSB0aGlzIG1lYW5zIHRoZSBt YWNybyB3YXMgb25seSBpbnZva2VkIGNvbmRpdGlvbmFsbHkuIiA+JjUKLSskYXNfZWNobyAiJGFz X21lOiBlcnJvcjogY29uZGl0aW9uYWwgXCJIQVZFX01ZU1FMXCIgd2FzIG5ldmVyIGRlZmluZWQu Ci0rVXN1YWxseSB0aGlzIG1lYW5zIHRoZSBtYWNybyB3YXMgb25seSBpbnZva2VkIGNvbmRpdGlv bmFsbHkuIiA+JjI7fQotKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQotK2ZpCi0raWYgdGVz dCAteiAiJHtIQVZFX09SQUNMRV9UUlVFfSIgJiYgdGVzdCAteiAiJHtIQVZFX09SQUNMRV9GQUxT RX0iOyB0aGVuCi0rICB7IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogY29uZGl0 aW9uYWwgXCJIQVZFX09SQUNMRVwiIHdhcyBuZXZlciBkZWZpbmVkLgotK1VzdWFsbHkgdGhpcyBt ZWFucyB0aGUgbWFjcm8gd2FzIG9ubHkgaW52b2tlZCBjb25kaXRpb25hbGx5LiIgPiY1Ci0rJGFz X2VjaG8gIiRhc19tZTogZXJyb3I6IGNvbmRpdGlvbmFsIFwiSEFWRV9PUkFDTEVcIiB3YXMgbmV2 ZXIgZGVmaW5lZC4KLStVc3VhbGx5IHRoaXMgbWVhbnMgdGhlIG1hY3JvIHdhcyBvbmx5IGludm9r ZWQgY29uZGl0aW9uYWxseS4iID4mMjt9Ci0rICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9Ci0r ZmkKLStpZiB0ZXN0IC16ICIke0hBVkVfUE9TVEdSRVNRTF9UUlVFfSIgJiYgdGVzdCAteiAiJHtI QVZFX1BPU1RHUkVTUUxfRkFMU0V9IjsgdGhlbgotKyAgeyB7ICRhc19lY2hvICIkYXNfbWU6JExJ TkVOTzogZXJyb3I6IGNvbmRpdGlvbmFsIFwiSEFWRV9QT1NUR1JFU1FMXCIgd2FzIG5ldmVyIGRl ZmluZWQuCi0rVXN1YWxseSB0aGlzIG1lYW5zIHRoZSBtYWNybyB3YXMgb25seSBpbnZva2VkIGNv bmRpdGlvbmFsbHkuIiA+JjUKLSskYXNfZWNobyAiJGFzX21lOiBlcnJvcjogY29uZGl0aW9uYWwg XCJIQVZFX1BPU1RHUkVTUUxcIiB3YXMgbmV2ZXIgZGVmaW5lZC4KLStVc3VhbGx5IHRoaXMgbWVh bnMgdGhlIG1hY3JvIHdhcyBvbmx5IGludm9rZWQgY29uZGl0aW9uYWxseS4iID4mMjt9Ci0rICAg eyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9Ci0rZmkKLStpZiB0ZXN0IC16ICIke0lORk9fRE9DX1RS VUV9IiAmJiB0ZXN0IC16ICIke0lORk9fRE9DX0ZBTFNFfSI7IHRoZW4KLSsgIHsgeyAkYXNfZWNo byAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBjb25kaXRpb25hbCBcIklORk9fRE9DXCIgd2FzIG5l dmVyIGRlZmluZWQuCi0rVXN1YWxseSB0aGlzIG1lYW5zIHRoZSBtYWNybyB3YXMgb25seSBpbnZv a2VkIGNvbmRpdGlvbmFsbHkuIiA+JjUKLSskYXNfZWNobyAiJGFzX21lOiBlcnJvcjogY29uZGl0 aW9uYWwgXCJJTkZPX0RPQ1wiIHdhcyBuZXZlciBkZWZpbmVkLgotK1VzdWFsbHkgdGhpcyBtZWFu cyB0aGUgbWFjcm8gd2FzIG9ubHkgaW52b2tlZCBjb25kaXRpb25hbGx5LiIgPiYyO30KLSsgICB7 IChleGl0IDEpOyBleGl0IDE7IH07IH0KLStmaQotK2lmIHRlc3QgLXogIiR7SFRNTF9ET0NfVFJV RX0iICYmIHRlc3QgLXogIiR7SFRNTF9ET0NfRkFMU0V9IjsgdGhlbgotKyAgeyB7ICRhc19lY2hv ICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IGNvbmRpdGlvbmFsIFwiSFRNTF9ET0NcIiB3YXMgbmV2 ZXIgZGVmaW5lZC4KLStVc3VhbGx5IHRoaXMgbWVhbnMgdGhlIG1hY3JvIHdhcyBvbmx5IGludm9r ZWQgY29uZGl0aW9uYWxseS4iID4mNQotKyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBjb25kaXRp b25hbCBcIkhUTUxfRE9DXCIgd2FzIG5ldmVyIGRlZmluZWQuCi0rVXN1YWxseSB0aGlzIG1lYW5z IHRoZSBtYWNybyB3YXMgb25seSBpbnZva2VkIGNvbmRpdGlvbmFsbHkuIiA+JjI7fQotKyAgIHsg KGV4aXQgMSk7IGV4aXQgMTsgfTsgfQotK2ZpCi0raWYgdGVzdCAteiAiJHtSVU5fVEVTVFNfVFJV RX0iICYmIHRlc3QgLXogIiR7UlVOX1RFU1RTX0ZBTFNFfSI7IHRoZW4KLSsgIHsgeyAkYXNfZWNo byAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBjb25kaXRpb25hbCBcIlJVTl9URVNUU1wiIHdhcyBu ZXZlciBkZWZpbmVkLgotK1VzdWFsbHkgdGhpcyBtZWFucyB0aGUgbWFjcm8gd2FzIG9ubHkgaW52 b2tlZCBjb25kaXRpb25hbGx5LiIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IGNvbmRp dGlvbmFsIFwiUlVOX1RFU1RTXCIgd2FzIG5ldmVyIGRlZmluZWQuCi0rVXN1YWxseSB0aGlzIG1l YW5zIHRoZSBtYWNybyB3YXMgb25seSBpbnZva2VkIGNvbmRpdGlvbmFsbHkuIiA+JjI7fQotKyAg IHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQotK2ZpCi0rCi0rOiAke0NPTkZJR19TVEFUVVM9Li9j b25maWcuc3RhdHVzfQotK2FjX3dyaXRlX2ZhaWw9MAotK2FjX2NsZWFuX2ZpbGVzX3NhdmU9JGFj X2NsZWFuX2ZpbGVzCi0rYWNfY2xlYW5fZmlsZXM9IiRhY19jbGVhbl9maWxlcyAkQ09ORklHX1NU QVRVUyIKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY3JlYXRpbmcgJENPTkZJR19TVEFU VVMiID4mNQotKyRhc19lY2hvICIkYXNfbWU6IGNyZWF0aW5nICRDT05GSUdfU1RBVFVTIiA+JjY7 fQotK2NhdCA+JENPTkZJR19TVEFUVVMgPDxfQUNFT0YgfHwgYWNfd3JpdGVfZmFpbD0xCi0rIyEg JFNIRUxMCi0rIyBHZW5lcmF0ZWQgYnkgJGFzX21lLgotKyMgUnVuIHRoaXMgZmlsZSB0byByZWNy ZWF0ZSB0aGUgY3VycmVudCBjb25maWd1cmF0aW9uLgotKyMgQ29tcGlsZXIgb3V0cHV0IHByb2R1 Y2VkIGJ5IGNvbmZpZ3VyZSwgdXNlZnVsIGZvciBkZWJ1Z2dpbmcKLSsjIGNvbmZpZ3VyZSwgaXMg aW4gY29uZmlnLmxvZyBpZiBpdCBleGlzdHMuCi0rCi0rZGVidWc9ZmFsc2UKLSthY19jc19yZWNo ZWNrPWZhbHNlCi0rYWNfY3Nfc2lsZW50PWZhbHNlCi0rU0hFTEw9XCR7Q09ORklHX1NIRUxMLSRT SEVMTH0KLStfQUNFT0YKLSsKLStjYXQgPj4kQ09ORklHX1NUQVRVUyA8PFxfQUNFT0YgfHwgYWNf d3JpdGVfZmFpbD0xCi0rIyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMjCi0rIyMgTTRzaCBJbml0 aWFsaXphdGlvbi4gICMjCi0rIyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMjCi0rCi0rIyBCZSBt b3JlIEJvdXJuZSBjb21wYXRpYmxlCi0rRFVBTENBU0U9MTsgZXhwb3J0IERVQUxDQVNFICMgZm9y IE1LUyBzaAotK2lmIHRlc3QgLW4gIiR7WlNIX1ZFUlNJT04rc2V0fSIgJiYgKGVtdWxhdGUgc2gp ID4vZGV2L251bGwgMj4mMTsgdGhlbgotKyAgZW11bGF0ZSBzaAotKyAgTlVMTENNRD06Ci0rICAj IFByZS00LjIgdmVyc2lvbnMgb2YgWnNoIGRvIHdvcmQgc3BsaXR0aW5nIG9uICR7MSsiJEAifSwg d2hpY2gKLSsgICMgaXMgY29udHJhcnkgdG8gb3VyIHVzYWdlLiAgRGlzYWJsZSB0aGlzIGZlYXR1 cmUuCi0rICBhbGlhcyAtZyAnJHsxKyIkQCJ9Jz0nIiRAIicKLSsgIHNldG9wdCBOT19HTE9CX1NV QlNUCi0rZWxzZQotKyAgY2FzZSBgKHNldCAtbykgMj4vZGV2L251bGxgIGluCi0rICAqcG9zaXgq KSBzZXQgLW8gcG9zaXggOzsKLStlc2FjCi0rCi0rZmkKLSsKLSsKLSsKLSsKLSsjIFBBVEggbmVl ZHMgQ1IKLSsjIEF2b2lkIGRlcGVuZGluZyB1cG9uIENoYXJhY3RlciBSYW5nZXMuCi0rYXNfY3Jf bGV0dGVycz0nYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXonCi0rYXNfY3JfTEVUVEVSUz0nQUJD REVGR0hJSktMTU5PUFFSU1RVVldYWVonCi0rYXNfY3JfTGV0dGVycz0kYXNfY3JfbGV0dGVycyRh c19jcl9MRVRURVJTCi0rYXNfY3JfZGlnaXRzPScwMTIzNDU2Nzg5JwotK2FzX2NyX2FsbnVtPSRh c19jcl9MZXR0ZXJzJGFzX2NyX2RpZ2l0cwotKwotK2FzX25sPScKLSsnCi0rZXhwb3J0IGFzX25s Ci0rIyBQcmludGluZyBhIGxvbmcgc3RyaW5nIGNyYXNoZXMgU29sYXJpcyA3IC91c3IvYmluL3By aW50Zi4KLSthc19lY2hvPSdcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxc XFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxc XFxcXFxcJwotK2FzX2VjaG89JGFzX2VjaG8kYXNfZWNobyRhc19lY2hvJGFzX2VjaG8kYXNfZWNo bwotK2FzX2VjaG89JGFzX2VjaG8kYXNfZWNobyRhc19lY2hvJGFzX2VjaG8kYXNfZWNobyRhc19l Y2hvCi0raWYgKHRlc3QgIlhgcHJpbnRmICVzICRhc19lY2hvYCIgPSAiWCRhc19lY2hvIikgMj4v ZGV2L251bGw7IHRoZW4KLSsgIGFzX2VjaG89J3ByaW50ZiAlc1xuJwotKyAgYXNfZWNob19uPSdw cmludGYgJXMnCi0rZWxzZQotKyAgaWYgdGVzdCAiWGAoL3Vzci91Y2IvZWNobyAtbiAtbiAkYXNf ZWNobykgMj4vZGV2L251bGxgIiA9ICJYLW4gJGFzX2VjaG8iOyB0aGVuCi0rICAgIGFzX2VjaG9f Ym9keT0nZXZhbCAvdXNyL3VjYi9lY2hvIC1uICIkMSRhc19ubCInCi0rICAgIGFzX2VjaG9fbj0n L3Vzci91Y2IvZWNobyAtbicKLSsgIGVsc2UKLSsgICAgYXNfZWNob19ib2R5PSdldmFsIGV4cHIg IlgkMSIgOiAiWFxcKC4qXFwpIicKLSsgICAgYXNfZWNob19uX2JvZHk9J2V2YWwKLSsgICAgICBh cmc9JDE7Ci0rICAgICAgY2FzZSAkYXJnIGluCi0rICAgICAgKiIkYXNfbmwiKikKLSsJZXhwciAi WCRhcmciIDogIlhcXCguKlxcKSRhc19ubCI7Ci0rCWFyZz1gZXhwciAiWCRhcmciIDogIi4qJGFz X25sXFwoLipcXCkiYDs7Ci0rICAgICAgZXNhYzsKLSsgICAgICBleHByICJYJGFyZyIgOiAiWFxc KC4qXFwpIiB8IHRyIC1kICIkYXNfbmwiCi0rICAgICcKLSsgICAgZXhwb3J0IGFzX2VjaG9fbl9i b2R5Ci0rICAgIGFzX2VjaG9fbj0nc2ggLWMgJGFzX2VjaG9fbl9ib2R5IGFzX2VjaG8nCi0rICBm aQotKyAgZXhwb3J0IGFzX2VjaG9fYm9keQotKyAgYXNfZWNobz0nc2ggLWMgJGFzX2VjaG9fYm9k eSBhc19lY2hvJwotK2ZpCi0rCi0rIyBUaGUgdXNlciBpcyBhbHdheXMgcmlnaHQuCi0raWYgdGVz dCAiJHtQQVRIX1NFUEFSQVRPUitzZXR9IiAhPSBzZXQ7IHRoZW4KLSsgIFBBVEhfU0VQQVJBVE9S PToKLSsgIChQQVRIPScvYmluOy9iaW4nOyBGUEFUSD0kUEFUSDsgc2ggLWMgOikgPi9kZXYvbnVs bCAyPiYxICYmIHsKLSsgICAgKFBBVEg9Jy9iaW46L2Jpbic7IEZQQVRIPSRQQVRIOyBzaCAtYyA6 KSA+L2Rldi9udWxsIDI+JjEgfHwKLSsgICAgICBQQVRIX1NFUEFSQVRPUj0nOycKLSsgIH0KLStm aQotKwotKyMgU3VwcG9ydCB1bnNldCB3aGVuIHBvc3NpYmxlLgotK2lmICggKE1BSUw9NjA7IHVu c2V0IE1BSUwpIHx8IGV4aXQpID4vZGV2L251bGwgMj4mMTsgdGhlbgotKyAgYXNfdW5zZXQ9dW5z ZXQKLStlbHNlCi0rICBhc191bnNldD1mYWxzZQotK2ZpCi0rCi0rCi0rIyBJRlMKLSsjIFdlIG5l ZWQgc3BhY2UsIHRhYiBhbmQgbmV3IGxpbmUsIGluIHByZWNpc2VseSB0aGF0IG9yZGVyLiAgUXVv dGluZyBpcwotKyMgdGhlcmUgdG8gcHJldmVudCBlZGl0b3JzIGZyb20gY29tcGxhaW5pbmcgYWJv dXQgc3BhY2UtdGFiLgotKyMgKElmIF9BU19QQVRIX1dBTEsgd2VyZSBjYWxsZWQgd2l0aCBJRlMg dW5zZXQsIGl0IHdvdWxkIGRpc2FibGUgd29yZAotKyMgc3BsaXR0aW5nIGJ5IHNldHRpbmcgSUZT IHRvIGVtcHR5IHZhbHVlLikKLStJRlM9IiAiIgkkYXNfbmwiCi0rCi0rIyBGaW5kIHdobyB3ZSBh cmUuICBMb29rIGluIHRoZSBwYXRoIGlmIHdlIGNvbnRhaW4gbm8gZGlyZWN0b3J5IHNlcGFyYXRv ci4KLStjYXNlICQwIGluCi0rICAqW1xcL10qICkgYXNfbXlzZWxmPSQwIDs7Ci0rICAqKSBhc19z YXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCi0rZm9yIGFzX2RpciBpbiAkUEFUSAot K2RvCi0rICBJRlM9JGFzX3NhdmVfSUZTCi0rICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9 LgotKyAgdGVzdCAtciAiJGFzX2Rpci8kMCIgJiYgYXNfbXlzZWxmPSRhc19kaXIvJDAgJiYgYnJl YWsKLStkb25lCi0rSUZTPSRhc19zYXZlX0lGUwotKwotKyAgICAgOzsKLStlc2FjCi0rIyBXZSBk aWQgbm90IGZpbmQgb3Vyc2VsdmVzLCBtb3N0IHByb2JhYmx5IHdlIHdlcmUgcnVuIGFzIGBzaCBD T01NQU5EJwotKyMgaW4gd2hpY2ggY2FzZSB3ZSBhcmUgbm90IHRvIGJlIGZvdW5kIGluIHRoZSBw YXRoLgotK2lmIHRlc3QgIngkYXNfbXlzZWxmIiA9IHg7IHRoZW4KLSsgIGFzX215c2VsZj0kMAot K2ZpCi0raWYgdGVzdCAhIC1mICIkYXNfbXlzZWxmIjsgdGhlbgotKyAgJGFzX2VjaG8gIiRhc19t eXNlbGY6IGVycm9yOiBjYW5ub3QgZmluZCBteXNlbGY7IHJlcnVuIHdpdGggYW4gYWJzb2x1dGUg ZmlsZSBuYW1lIiA+JjIKLSsgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfQotK2ZpCi0rCi0rIyBXb3Jr IGFyb3VuZCBidWdzIGluIHByZS0zLjAgVVdJTiBrc2guCi0rZm9yIGFzX3ZhciBpbiBFTlYgTUFJ TCBNQUlMUEFUSAotK2RvICgkYXNfdW5zZXQgJGFzX3ZhcikgPi9kZXYvbnVsbCAyPiYxICYmICRh c191bnNldCAkYXNfdmFyCi0rZG9uZQotK1BTMT0nJCAnCi0rUFMyPSc+ICcKLStQUzQ9JysgJwot KwotKyMgTkxTIG51aXNhbmNlcy4KLStMQ19BTEw9QwotK2V4cG9ydCBMQ19BTEwKLStMQU5HVUFH RT1DCi0rZXhwb3J0IExBTkdVQUdFCi0rCi0rIyBSZXF1aXJlZCB0byB1c2UgYmFzZW5hbWUuCi0r aWYgZXhwciBhIDogJ1woYVwpJyA+L2Rldi9udWxsIDI+JjEgJiYKLSsgICB0ZXN0ICJYYGV4cHIg MDAwMDEgOiAnLipcKC4uLlwpJ2AiID0gWDAwMTsgdGhlbgotKyAgYXNfZXhwcj1leHByCi0rZWxz ZQotKyAgYXNfZXhwcj1mYWxzZQotK2ZpCi0rCi0raWYgKGJhc2VuYW1lIC0tIC8pID4vZGV2L251 bGwgMj4mMSAmJiB0ZXN0ICJYYGJhc2VuYW1lIC0tIC8gMj4mMWAiID0gIlgvIjsgdGhlbgotKyAg YXNfYmFzZW5hbWU9YmFzZW5hbWUKLStlbHNlCi0rICBhc19iYXNlbmFtZT1mYWxzZQotK2ZpCi0r Ci0rCi0rIyBOYW1lIG9mIHRoZSBleGVjdXRhYmxlLgotK2FzX21lPWAkYXNfYmFzZW5hbWUgLS0g IiQwIiB8fAotKyRhc19leHByIFgvIiQwIiA6ICcuKi9cKFteL11bXi9dKlwpLyokJyBcfCBcCi0r CSBYIiQwIiA6ICdYXCgvL1wpJCcgXHwgXAotKwkgWCIkMCIgOiAnWFwoL1wpJyBcfCAuIDI+L2Rl di9udWxsIHx8Ci0rJGFzX2VjaG8gWC8iJDAiIHwKLSsgICAgc2VkICcvXi4qXC9cKFteL11bXi9d KlwpXC8qJC97Ci0rCSAgICBzLy9cMS8KLSsJICAgIHEKLSsJICB9Ci0rCSAgL15YXC9cKFwvXC9c KSQvewotKwkgICAgcy8vXDEvCi0rCSAgICBxCi0rCSAgfQotKwkgIC9eWFwvXChcL1wpLiovewot KwkgICAgcy8vXDEvCi0rCSAgICBxCi0rCSAgfQotKwkgIHMvLiovLi87IHEnYAotKwotKyMgQ0RQ QVRILgotKyRhc191bnNldCBDRFBBVEgKLSsKLSsKLSsKLSsgIGFzX2xpbmVub18xPSRMSU5FTk8K LSsgIGFzX2xpbmVub18yPSRMSU5FTk8KLSsgIHRlc3QgIngkYXNfbGluZW5vXzEiICE9ICJ4JGFz X2xpbmVub18yIiAmJgotKyAgdGVzdCAieGBleHByICRhc19saW5lbm9fMSArIDFgIiA9ICJ4JGFz X2xpbmVub18yIiB8fCB7Ci0rCi0rICAjIENyZWF0ZSAkYXNfbWUubGluZW5vIGFzIGEgY29weSBv ZiAkYXNfbXlzZWxmLCBidXQgd2l0aCAkTElORU5PCi0rICAjIHVuaWZvcm1seSByZXBsYWNlZCBi eSB0aGUgbGluZSBudW1iZXIuICBUaGUgZmlyc3QgJ3NlZCcgaW5zZXJ0cyBhCi0rICAjIGxpbmUt bnVtYmVyIGxpbmUgYWZ0ZXIgZWFjaCBsaW5lIHVzaW5nICRMSU5FTk87IHRoZSBzZWNvbmQgJ3Nl ZCcKLSsgICMgZG9lcyB0aGUgcmVhbCB3b3JrLiAgVGhlIHNlY29uZCBzY3JpcHQgdXNlcyAnTicg dG8gcGFpciBlYWNoCi0rICAjIGxpbmUtbnVtYmVyIGxpbmUgd2l0aCB0aGUgbGluZSBjb250YWlu aW5nICRMSU5FTk8sIGFuZCBhcHBlbmRzCi0rICAjIHRyYWlsaW5nICctJyBkdXJpbmcgc3Vic3Rp dHV0aW9uIHNvIHRoYXQgJExJTkVOTyBpcyBub3QgYSBzcGVjaWFsCi0rICAjIGNhc2UgYXQgbGlu ZSBlbmQuCi0rICAjIChSYWphIFIgSGFyaW5hdGggc3VnZ2VzdGVkIHNlZCAnPScsIGFuZCBQYXVs IEVnZ2VydCB3cm90ZSB0aGUKLSsgICMgc2NyaXB0cyB3aXRoIG9wdGltaXphdGlvbiBoZWxwIGZy b20gUGFvbG8gQm9uemluaS4gIEJsYW1lIExlZQotKyAgIyBFLiBNY01haG9uICgxOTMxLTE5ODkp IGZvciBzZWQncyBzeW50YXguICA6LSkKLSsgIHNlZCAtbiAnCi0rICAgIHAKLSsgICAgL1skXUxJ TkVOTy89Ci0rICAnIDwkYXNfbXlzZWxmIHwKLSsgICAgc2VkICcKLSsgICAgICBzL1skXUxJTkVO Ty4qLyYtLwotKyAgICAgIHQgbGluZW5vCi0rICAgICAgYgotKyAgICAgIDpsaW5lbm8KLSsgICAg ICBOCi0rICAgICAgOmxvb3AKLSsgICAgICBzL1skXUxJTkVOT1woW14nJGFzX2NyX2FsbnVtJ19d LipcblwpXCguKlwpL1wyXDFcMi8KLSsgICAgICB0IGxvb3AKLSsgICAgICBzLy1cbi4qLy8KLSsg ICAgJyA+JGFzX21lLmxpbmVubyAmJgotKyAgY2htb2QgK3ggIiRhc19tZS5saW5lbm8iIHx8Ci0r ICAgIHsgJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IGNhbm5vdCBjcmVhdGUgJGFzX21lLmxpbmVu bzsgcmVydW4gd2l0aCBhIFBPU0lYIHNoZWxsIiA+JjIKLSsgICB7IChleGl0IDEpOyBleGl0IDE7 IH07IH0KLSsKLSsgICMgRG9uJ3QgdHJ5IHRvIGV4ZWMgYXMgaXQgY2hhbmdlcyAkWzBdLCBjYXVz aW5nIGFsbCBzb3J0IG9mIHByb2JsZW1zCi0rICAjICh0aGUgZGlybmFtZSBvZiAkWzBdIGlzIG5v dCB0aGUgcGxhY2Ugd2hlcmUgd2UgbWlnaHQgZmluZCB0aGUKLSsgICMgb3JpZ2luYWwgYW5kIHNv IG9uLiAgQXV0b2NvbmYgaXMgZXNwZWNpYWxseSBzZW5zaXRpdmUgdG8gdGhpcykuCi0rICAuICIu LyRhc19tZS5saW5lbm8iCi0rICAjIEV4aXQgc3RhdHVzIGlzIHRoYXQgb2YgdGhlIGxhc3QgY29t bWFuZC4KLSsgIGV4aXQKLSt9Ci0rCi0rCi0raWYgKGFzX2Rpcj1gZGlybmFtZSAtLSAvYCAmJiB0 ZXN0ICJYJGFzX2RpciIgPSBYLykgPi9kZXYvbnVsbCAyPiYxOyB0aGVuCi0rICBhc19kaXJuYW1l PWRpcm5hbWUKLStlbHNlCi0rICBhc19kaXJuYW1lPWZhbHNlCi0rZmkKLSsKLStFQ0hPX0M9IEVD SE9fTj0gRUNIT19UPQotK2Nhc2UgYGVjaG8gLW4geGAgaW4KLSstbiopCi0rICBjYXNlIGBlY2hv ICd4XGMnYCBpbgotKyAgKmMqKSBFQ0hPX1Q9JwknOzsJIyBFQ0hPX1QgaXMgc2luZ2xlIHRhYiBj aGFyYWN0ZXIuCi0rICAqKSAgIEVDSE9fQz0nXGMnOzsKLSsgIGVzYWM7OwotKyopCi0rICBFQ0hP X049Jy1uJzs7Ci0rZXNhYwotK2lmIGV4cHIgYSA6ICdcKGFcKScgPi9kZXYvbnVsbCAyPiYxICYm Ci0rICAgdGVzdCAiWGBleHByIDAwMDAxIDogJy4qXCguLi5cKSdgIiA9IFgwMDE7IHRoZW4KLSsg IGFzX2V4cHI9ZXhwcgotK2Vsc2UKLSsgIGFzX2V4cHI9ZmFsc2UKLStmaQotKwotK3JtIC1mIGNv bmYkJCBjb25mJCQuZXhlIGNvbmYkJC5maWxlCi0raWYgdGVzdCAtZCBjb25mJCQuZGlyOyB0aGVu Ci0rICBybSAtZiBjb25mJCQuZGlyL2NvbmYkJC5maWxlCi0rZWxzZQotKyAgcm0gLWYgY29uZiQk LmRpcgotKyAgbWtkaXIgY29uZiQkLmRpciAyPi9kZXYvbnVsbAotK2ZpCi0raWYgKGVjaG8gPmNv bmYkJC5maWxlKSAyPi9kZXYvbnVsbDsgdGhlbgotKyAgaWYgbG4gLXMgY29uZiQkLmZpbGUgY29u ZiQkIDI+L2Rldi9udWxsOyB0aGVuCi0rICAgIGFzX2xuX3M9J2xuIC1zJwotKyAgICAjIC4uLiBi dXQgdGhlcmUgYXJlIHR3byBnb3RjaGFzOgotKyAgICAjIDEpIE9uIE1TWVMsIGJvdGggYGxuIC1z IGZpbGUgZGlyJyBhbmQgYGxuIGZpbGUgZGlyJyBmYWlsLgotKyAgICAjIDIpIERKR1BQIDwgMi4w NCBoYXMgbm8gc3ltbGlua3M7IGBsbiAtcycgY3JlYXRlcyBhIHdyYXBwZXIgZXhlY3V0YWJsZS4K LSsgICAgIyBJbiBib3RoIGNhc2VzLCB3ZSBoYXZlIHRvIGRlZmF1bHQgdG8gYGNwIC1wJy4KLSsg ICAgbG4gLXMgY29uZiQkLmZpbGUgY29uZiQkLmRpciAyPi9kZXYvbnVsbCAmJiB0ZXN0ICEgLWYg Y29uZiQkLmV4ZSB8fAotKyAgICAgIGFzX2xuX3M9J2NwIC1wJwotKyAgZWxpZiBsbiBjb25mJCQu ZmlsZSBjb25mJCQgMj4vZGV2L251bGw7IHRoZW4KLSsgICAgYXNfbG5fcz1sbgotKyAgZWxzZQot KyAgICBhc19sbl9zPSdjcCAtcCcKLSsgIGZpCi0rZWxzZQotKyAgYXNfbG5fcz0nY3AgLXAnCi0r ZmkKLStybSAtZiBjb25mJCQgY29uZiQkLmV4ZSBjb25mJCQuZGlyL2NvbmYkJC5maWxlIGNvbmYk JC5maWxlCi0rcm1kaXIgY29uZiQkLmRpciAyPi9kZXYvbnVsbAotKwotK2lmIG1rZGlyIC1wIC4g Mj4vZGV2L251bGw7IHRoZW4KLSsgIGFzX21rZGlyX3A9OgotK2Vsc2UKLSsgIHRlc3QgLWQgLi8t cCAmJiBybWRpciAuLy1wCi0rICBhc19ta2Rpcl9wPWZhbHNlCi0rZmkKLSsKLStpZiB0ZXN0IC14 IC8gPi9kZXYvbnVsbCAyPiYxOyB0aGVuCi0rICBhc190ZXN0X3g9J3Rlc3QgLXgnCi0rZWxzZQot KyAgaWYgbHMgLWRMIC8gPi9kZXYvbnVsbCAyPiYxOyB0aGVuCi0rICAgIGFzX2xzX0xfb3B0aW9u PUwKLSsgIGVsc2UKLSsgICAgYXNfbHNfTF9vcHRpb249Ci0rICBmaQotKyAgYXNfdGVzdF94PScK LSsgICAgZXZhbCBzaCAtYyAnXCcnCi0rICAgICAgaWYgdGVzdCAtZCAiJDEiOyB0aGVuCi0rCXRl c3QgLWQgIiQxLy4iOwotKyAgICAgIGVsc2UKLSsJY2FzZSAkMSBpbgotKwktKilzZXQgIi4vJDEi OzsKLSsJZXNhYzsKLSsJY2FzZSBgbHMgLWxkJyRhc19sc19MX29wdGlvbicgIiQxIiAyPi9kZXYv bnVsbGAgaW4KLSsJPz8/W3N4XSopOjs7KilmYWxzZTs7ZXNhYztmaQotKyAgICAnXCcnIHNoCi0r ICAnCi0rZmkKLSthc19leGVjdXRhYmxlX3A9JGFzX3Rlc3RfeAotKwotKyMgU2VkIGV4cHJlc3Np b24gdG8gbWFwIGEgc3RyaW5nIG9udG8gYSB2YWxpZCBDUFAgbmFtZS4KLSthc190cl9jcHA9ImV2 YWwgc2VkICd5JSokYXNfY3JfbGV0dGVycyVQJGFzX2NyX0xFVFRFUlMlO3MlW15fJGFzX2NyX2Fs bnVtXSVfJWcnIgotKwotKyMgU2VkIGV4cHJlc3Npb24gdG8gbWFwIGEgc3RyaW5nIG9udG8gYSB2 YWxpZCB2YXJpYWJsZSBuYW1lLgotK2FzX3RyX3NoPSJldmFsIHNlZCAneSUqKyVwcCU7cyVbXl8k YXNfY3JfYWxudW1dJV8lZyciCi0rCi0rCi0rZXhlYyA2PiYxCi0rCi0rIyBTYXZlIHRoZSBsb2cg bWVzc2FnZSwgdG8ga2VlcCAkWzBdIGFuZCBzbyBvbiBtZWFuaW5nZnVsLCBhbmQgdG8KLSsjIHJl cG9ydCBhY3R1YWwgaW5wdXQgdmFsdWVzIG9mIENPTkZJR19GSUxFUyBldGMuIGluc3RlYWQgb2Yg dGhlaXIKLSsjIHZhbHVlcyBhZnRlciBvcHRpb25zIGhhbmRsaW5nLgotK2FjX2xvZz0iCi0rVGhp cyBmaWxlIHdhcyBleHRlbmRlZCBieSBTT0NJICRhc19tZSAzLjAuMCwgd2hpY2ggd2FzCi0rZ2Vu ZXJhdGVkIGJ5IEdOVSBBdXRvY29uZiAyLjYzLiAgSW52b2NhdGlvbiBjb21tYW5kIGxpbmUgd2Fz Ci0rCi0rICBDT05GSUdfRklMRVMgICAgPSAkQ09ORklHX0ZJTEVTCi0rICBDT05GSUdfSEVBREVS UyAgPSAkQ09ORklHX0hFQURFUlMKLSsgIENPTkZJR19MSU5LUyAgICA9ICRDT05GSUdfTElOS1MK LSsgIENPTkZJR19DT01NQU5EUyA9ICRDT05GSUdfQ09NTUFORFMKLSsgICQgJDAgJEAKLSsKLStv biBgKGhvc3RuYW1lIHx8IHVuYW1lIC1uKSAyPi9kZXYvbnVsbCB8IHNlZCAxcWAKLSsiCi0rCi0r X0FDRU9GCi0rCi0rY2FzZSAkYWNfY29uZmlnX2ZpbGVzIGluICoiCi0rIiopIHNldCB4ICRhY19j b25maWdfZmlsZXM7IHNoaWZ0OyBhY19jb25maWdfZmlsZXM9JCo7OwotK2VzYWMKLSsKLStjYXNl ICRhY19jb25maWdfaGVhZGVycyBpbiAqIgotKyIqKSBzZXQgeCAkYWNfY29uZmlnX2hlYWRlcnM7 IHNoaWZ0OyBhY19jb25maWdfaGVhZGVycz0kKjs7Ci0rZXNhYwotKwotKwotK2NhdCA+PiRDT05G SUdfU1RBVFVTIDw8X0FDRU9GIHx8IGFjX3dyaXRlX2ZhaWw9MQotKyMgRmlsZXMgdGhhdCBjb25m aWcuc3RhdHVzIHdhcyBtYWRlIGZvci4KLStjb25maWdfZmlsZXM9IiRhY19jb25maWdfZmlsZXMi Ci0rY29uZmlnX2hlYWRlcnM9IiRhY19jb25maWdfaGVhZGVycyIKLStjb25maWdfY29tbWFuZHM9 IiRhY19jb25maWdfY29tbWFuZHMiCi0rCi0rX0FDRU9GCi0rCi0rY2F0ID4+JENPTkZJR19TVEFU VVMgPDxcX0FDRU9GIHx8IGFjX3dyaXRlX2ZhaWw9MQotK2FjX2NzX3VzYWdlPSJcCi0rXGAkYXNf bWUnIGluc3RhbnRpYXRlcyBmaWxlcyBmcm9tIHRlbXBsYXRlcyBhY2NvcmRpbmcgdG8gdGhlCi0r Y3VycmVudCBjb25maWd1cmF0aW9uLgotKwotK1VzYWdlOiAkMCBbT1BUSU9OXS4uLiBbRklMRV0u Li4KLSsKLSsgIC1oLCAtLWhlbHAgICAgICAgcHJpbnQgdGhpcyBoZWxwLCB0aGVuIGV4aXQKLSsg IC1WLCAtLXZlcnNpb24gICAgcHJpbnQgdmVyc2lvbiBudW1iZXIgYW5kIGNvbmZpZ3VyYXRpb24g c2V0dGluZ3MsIHRoZW4gZXhpdAotKyAgLXEsIC0tcXVpZXQsIC0tc2lsZW50Ci0rICAgICAgICAg ICAgICAgICAgIGRvIG5vdCBwcmludCBwcm9ncmVzcyBtZXNzYWdlcwotKyAgLWQsIC0tZGVidWcg ICAgICBkb24ndCByZW1vdmUgdGVtcG9yYXJ5IGZpbGVzCi0rICAgICAgLS1yZWNoZWNrICAgIHVw ZGF0ZSAkYXNfbWUgYnkgcmVjb25maWd1cmluZyBpbiB0aGUgc2FtZSBjb25kaXRpb25zCi0rICAg ICAgLS1maWxlPUZJTEVbOlRFTVBMQVRFXQotKyAgICAgICAgICAgICAgICAgICBpbnN0YW50aWF0 ZSB0aGUgY29uZmlndXJhdGlvbiBmaWxlIEZJTEUKLSsgICAgICAtLWhlYWRlcj1GSUxFWzpURU1Q TEFURV0KLSsgICAgICAgICAgICAgICAgICAgaW5zdGFudGlhdGUgdGhlIGNvbmZpZ3VyYXRpb24g aGVhZGVyIEZJTEUKLSsKLStDb25maWd1cmF0aW9uIGZpbGVzOgotKyRjb25maWdfZmlsZXMKLSsK LStDb25maWd1cmF0aW9uIGhlYWRlcnM6Ci0rJGNvbmZpZ19oZWFkZXJzCi0rCi0rQ29uZmlndXJh dGlvbiBjb21tYW5kczoKLSskY29uZmlnX2NvbW1hbmRzCi0rCi0rUmVwb3J0IGJ1Z3MgdG8gPGJ1 Zy1hdXRvY29uZkBnbnUub3JnPi4iCi0rCi0rX0FDRU9GCi0rY2F0ID4+JENPTkZJR19TVEFUVVMg PDxfQUNFT0YgfHwgYWNfd3JpdGVfZmFpbD0xCi0rYWNfY3NfdmVyc2lvbj0iXFwKLStTT0NJIGNv bmZpZy5zdGF0dXMgMy4wLjAKLStjb25maWd1cmVkIGJ5ICQwLCBnZW5lcmF0ZWQgYnkgR05VIEF1 dG9jb25mIDIuNjMsCi0rICB3aXRoIG9wdGlvbnMgXFwiYCRhc19lY2hvICIkYWNfY29uZmlndXJl X2FyZ3MiIHwgc2VkICdzL14gLy87IHMvW1xcIiJcYFwkXS9cXFxcJi9nJ2BcXCIKLSsKLStDb3B5 cmlnaHQgKEMpIDIwMDggRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCi0rVGhpcyBjb25m aWcuc3RhdHVzIHNjcmlwdCBpcyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3Vu ZGF0aW9uCi0rZ2l2ZXMgdW5saW1pdGVkIHBlcm1pc3Npb24gdG8gY29weSwgZGlzdHJpYnV0ZSBh bmQgbW9kaWZ5IGl0LiIKLSsKLSthY19wd2Q9JyRhY19wd2QnCi0rc3JjZGlyPSckc3JjZGlyJwot K0lOU1RBTEw9JyRJTlNUQUxMJwotK01LRElSX1A9JyRNS0RJUl9QJwotK0FXSz0nJEFXSycKLSt0 ZXN0IC1uICJcJEFXSyIgfHwgQVdLPWF3awotK19BQ0VPRgotKwotK2NhdCA+PiRDT05GSUdfU1RB VFVTIDw8XF9BQ0VPRiB8fCBhY193cml0ZV9mYWlsPTEKLSsjIFRoZSBkZWZhdWx0IGxpc3RzIGFw cGx5IGlmIHRoZSB1c2VyIGRvZXMgbm90IHNwZWNpZnkgYW55IGZpbGUuCi0rYWNfbmVlZF9kZWZh dWx0cz06Ci0rd2hpbGUgdGVzdCAkIyAhPSAwCi0rZG8KLSsgIGNhc2UgJDEgaW4KLSsgIC0tKj0q KQotKyAgICBhY19vcHRpb249YGV4cHIgIlgkMSIgOiAnWFwoW149XSpcKT0nYAotKyAgICBhY19v cHRhcmc9YGV4cHIgIlgkMSIgOiAnWFtePV0qPVwoLipcKSdgCi0rICAgIGFjX3NoaWZ0PToKLSsg ICAgOzsKLSsgICopCi0rICAgIGFjX29wdGlvbj0kMQotKyAgICBhY19vcHRhcmc9JDIKLSsgICAg YWNfc2hpZnQ9c2hpZnQKLSsgICAgOzsKLSsgIGVzYWMKLSsKLSsgIGNhc2UgJGFjX29wdGlvbiBp bgotKyAgIyBIYW5kbGluZyBvZiB0aGUgb3B0aW9ucy4KLSsgIC1yZWNoZWNrIHwgLS1yZWNoZWNr IHwgLS1yZWNoZWMgfCAtLXJlY2hlIHwgLS1yZWNoIHwgLS1yZWMgfCAtLXJlIHwgLS1yKQotKyAg ICBhY19jc19yZWNoZWNrPTogOzsKLSsgIC0tdmVyc2lvbiB8IC0tdmVyc2lvIHwgLS12ZXJzaSB8 IC0tdmVycyB8IC0tdmVyIHwgLS12ZSB8IC0tdiB8IC1WICkKLSsgICAgJGFzX2VjaG8gIiRhY19j c192ZXJzaW9uIjsgZXhpdCA7OwotKyAgLS1kZWJ1ZyB8IC0tZGVidSB8IC0tZGViIHwgLS1kZSB8 IC0tZCB8IC1kICkKLSsgICAgZGVidWc9OiA7OwotKyAgLS1maWxlIHwgLS1maWwgfCAtLWZpIHwg LS1mICkKLSsgICAgJGFjX3NoaWZ0Ci0rICAgIGNhc2UgJGFjX29wdGFyZyBpbgotKyAgICAqXCcq KSBhY19vcHRhcmc9YCRhc19lY2hvICIkYWNfb3B0YXJnIiB8IHNlZCAicy8nLydcXFxcXFxcXCcn L2ciYCA7OwotKyAgICBlc2FjCi0rICAgIENPTkZJR19GSUxFUz0iJENPTkZJR19GSUxFUyAnJGFj X29wdGFyZyciCi0rICAgIGFjX25lZWRfZGVmYXVsdHM9ZmFsc2U7OwotKyAgLS1oZWFkZXIgfCAt LWhlYWRlIHwgLS1oZWFkIHwgLS1oZWEgKQotKyAgICAkYWNfc2hpZnQKLSsgICAgY2FzZSAkYWNf b3B0YXJnIGluCi0rICAgICpcJyopIGFjX29wdGFyZz1gJGFzX2VjaG8gIiRhY19vcHRhcmciIHwg c2VkICJzLycvJ1xcXFxcXFxcJycvZyJgIDs7Ci0rICAgIGVzYWMKLSsgICAgQ09ORklHX0hFQURF UlM9IiRDT05GSUdfSEVBREVSUyAnJGFjX29wdGFyZyciCi0rICAgIGFjX25lZWRfZGVmYXVsdHM9 ZmFsc2U7OwotKyAgLS1oZSB8IC0taCkKLSsgICAgIyBDb25mbGljdCBiZXR3ZWVuIC0taGVscCBh bmQgLS1oZWFkZXIKLSsgICAgeyAkYXNfZWNobyAiJGFzX21lOiBlcnJvcjogYW1iaWd1b3VzIG9w dGlvbjogJDEKLStUcnkgXGAkMCAtLWhlbHAnIGZvciBtb3JlIGluZm9ybWF0aW9uLiIgPiYyCi0r ICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9OzsKLSsgIC0taGVscCB8IC0taGVsIHwgLWggKQot KyAgICAkYXNfZWNobyAiJGFjX2NzX3VzYWdlIjsgZXhpdCA7OwotKyAgLXEgfCAtcXVpZXQgfCAt LXF1aWV0IHwgLS1xdWllIHwgLS1xdWkgfCAtLXF1IHwgLS1xIFwKLSsgIHwgLXNpbGVudCB8IC0t c2lsZW50IHwgLS1zaWxlbiB8IC0tc2lsZSB8IC0tc2lsIHwgLS1zaSB8IC0tcykKLSsgICAgYWNf Y3Nfc2lsZW50PTogOzsKLSsKLSsgICMgVGhpcyBpcyBhbiBlcnJvci4KLSsgIC0qKSB7ICRhc19l Y2hvICIkYXNfbWU6IGVycm9yOiB1bnJlY29nbml6ZWQgb3B0aW9uOiAkMQotK1RyeSBcYCQwIC0t aGVscCcgZm9yIG1vcmUgaW5mb3JtYXRpb24uIiA+JjIKLSsgICB7IChleGl0IDEpOyBleGl0IDE7 IH07IH0gOzsKLSsKLSsgICopIGFjX2NvbmZpZ190YXJnZXRzPSIkYWNfY29uZmlnX3RhcmdldHMg JDEiCi0rICAgICBhY19uZWVkX2RlZmF1bHRzPWZhbHNlIDs7Ci0rCi0rICBlc2FjCi0rICBzaGlm dAotK2RvbmUKLSsKLSthY19jb25maWd1cmVfZXh0cmFfYXJncz0KLSsKLStpZiAkYWNfY3Nfc2ls ZW50OyB0aGVuCi0rICBleGVjIDY+L2Rldi9udWxsCi0rICBhY19jb25maWd1cmVfZXh0cmFfYXJn cz0iJGFjX2NvbmZpZ3VyZV9leHRyYV9hcmdzIC0tc2lsZW50IgotK2ZpCi0rCi0rX0FDRU9GCi0r Y2F0ID4+JENPTkZJR19TVEFUVVMgPDxfQUNFT0YgfHwgYWNfd3JpdGVfZmFpbD0xCi0raWYgXCRh Y19jc19yZWNoZWNrOyB0aGVuCi0rICBzZXQgWCAnJFNIRUxMJyAnJDAnICRhY19jb25maWd1cmVf YXJncyBcJGFjX2NvbmZpZ3VyZV9leHRyYV9hcmdzIC0tbm8tY3JlYXRlIC0tbm8tcmVjdXJzaW9u Ci0rICBzaGlmdAotKyAgXCRhc19lY2hvICJydW5uaW5nIENPTkZJR19TSEVMTD0kU0hFTEwgXCQq IiA+JjYKLSsgIENPTkZJR19TSEVMTD0nJFNIRUxMJwotKyAgZXhwb3J0IENPTkZJR19TSEVMTAot KyAgZXhlYyAiXCRAIgotK2ZpCi0rCi0rX0FDRU9GCi0rY2F0ID4+JENPTkZJR19TVEFUVVMgPDxc X0FDRU9GIHx8IGFjX3dyaXRlX2ZhaWw9MQotK2V4ZWMgNT4+Y29uZmlnLmxvZwotK3sKLSsgIGVj aG8KLSsgIHNlZCAnaDtzLy4vLS9nO3MvXi4uLi8jIyAvO3MvLi4uJC8gIyMvO3A7eDtwO3gnIDw8 X0FTQk9YCi0rIyMgUnVubmluZyAkYXNfbWUuICMjCi0rX0FTQk9YCi0rICAkYXNfZWNobyAiJGFj X2xvZyIKLSt9ID4mNQotKwotK19BQ0VPRgotK2NhdCA+PiRDT05GSUdfU1RBVFVTIDw8X0FDRU9G IHx8IGFjX3dyaXRlX2ZhaWw9MQotKyMKLSsjIElOSVQtQ09NTUFORFMKLSsjCi0rQU1ERVBfVFJV RT0iJEFNREVQX1RSVUUiIGFjX2F1eF9kaXI9IiRhY19hdXhfZGlyIgotKwotKwotKyMgVGhlIEhQ LVVYIGtzaCBhbmQgUE9TSVggc2hlbGwgcHJpbnQgdGhlIHRhcmdldCBkaXJlY3RvcnkgdG8gc3Rk b3V0Ci0rIyBpZiBDRFBBVEggaXMgc2V0LgotKyh1bnNldCBDRFBBVEgpID4vZGV2L251bGwgMj4m MSAmJiB1bnNldCBDRFBBVEgKLSsKLStzZWRfcXVvdGVfc3Vic3Q9JyRzZWRfcXVvdGVfc3Vic3Qn Ci0rZG91YmxlX3F1b3RlX3N1YnN0PSckZG91YmxlX3F1b3RlX3N1YnN0JwotK2RlbGF5X3Zhcmlh YmxlX3N1YnN0PSckZGVsYXlfdmFyaWFibGVfc3Vic3QnCi0rZW5hYmxlX3NoYXJlZD0nYCRFQ0hP ICJYJGVuYWJsZV9zaGFyZWQiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3Qi YCcKLStlbmFibGVfc3RhdGljPSdgJEVDSE8gIlgkZW5hYmxlX3N0YXRpYyIgfCAkWHNlZCAtZSAi JGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotK21hY3JvX3ZlcnNpb249J2AkRUNITyAiWCRt YWNyb192ZXJzaW9uIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0r bWFjcm9fcmV2aXNpb249J2AkRUNITyAiWCRtYWNyb19yZXZpc2lvbiIgfCAkWHNlZCAtZSAiJGRl bGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotK3BpY19tb2RlPSdgJEVDSE8gIlgkcGljX21vZGUi IHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLStlbmFibGVfZmFzdF9p bnN0YWxsPSdgJEVDSE8gIlgkZW5hYmxlX2Zhc3RfaW5zdGFsbCIgfCAkWHNlZCAtZSAiJGRlbGF5 X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotK2hvc3RfYWxpYXM9J2AkRUNITyAiWCRob3N0X2FsaWFz IiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0raG9zdD0nYCRFQ0hP ICJYJGhvc3QiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLStob3N0 X29zPSdgJEVDSE8gIlgkaG9zdF9vcyIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9z dWJzdCJgJwotK2J1aWxkX2FsaWFzPSdgJEVDSE8gIlgkYnVpbGRfYWxpYXMiIHwgJFhzZWQgLWUg IiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLStidWlsZD0nYCRFQ0hPICJYJGJ1aWxkIiB8 ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0rYnVpbGRfb3M9J2AkRUNI TyAiWCRidWlsZF9vcyIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwot K1NFRD0nYCRFQ0hPICJYJFNFRCIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJz dCJgJwotK1hzZWQ9J2AkRUNITyAiWCRYc2VkIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1 b3RlX3N1YnN0ImAnCi0rR1JFUD0nYCRFQ0hPICJYJEdSRVAiIHwgJFhzZWQgLWUgIiRkZWxheV9z aW5nbGVfcXVvdGVfc3Vic3QiYCcKLStFR1JFUD0nYCRFQ0hPICJYJEVHUkVQIiB8ICRYc2VkIC1l ICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0rRkdSRVA9J2AkRUNITyAiWCRGR1JFUCIg fCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotK0xEPSdgJEVDSE8gIlgk TEQiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLStOTT0nYCRFQ0hP ICJYJE5NIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0rTE5fUz0n YCRFQ0hPICJYJExOX1MiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcK LSttYXhfY21kX2xlbj0nYCRFQ0hPICJYJG1heF9jbWRfbGVuIiB8ICRYc2VkIC1lICIkZGVsYXlf c2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0rYWNfb2JqZXh0PSdgJEVDSE8gIlgkYWNfb2JqZXh0IiB8 ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0rZXhlZXh0PSdgJEVDSE8g IlgkZXhlZXh0IiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0rbHRf dW5zZXQ9J2AkRUNITyAiWCRsdF91bnNldCIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90 ZV9zdWJzdCJgJwotK2x0X1NQMk5MPSdgJEVDSE8gIlgkbHRfU1AyTkwiIHwgJFhzZWQgLWUgIiRk ZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLStsdF9OTDJTUD0nYCRFQ0hPICJYJGx0X05MMlNQ IiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0rcmVsb2FkX2ZsYWc9 J2AkRUNITyAiWCRyZWxvYWRfZmxhZyIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9z dWJzdCJgJwotK3JlbG9hZF9jbWRzPSdgJEVDSE8gIlgkcmVsb2FkX2NtZHMiIHwgJFhzZWQgLWUg IiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLStPQkpEVU1QPSdgJEVDSE8gIlgkT0JKRFVN UCIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotK2RlcGxpYnNfY2hl Y2tfbWV0aG9kPSdgJEVDSE8gIlgkZGVwbGlic19jaGVja19tZXRob2QiIHwgJFhzZWQgLWUgIiRk ZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLStmaWxlX21hZ2ljX2NtZD0nYCRFQ0hPICJYJGZp bGVfbWFnaWNfY21kIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0r QVI9J2AkRUNITyAiWCRBUiIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJg JwotK0FSX0ZMQUdTPSdgJEVDSE8gIlgkQVJfRkxBR1MiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5n bGVfcXVvdGVfc3Vic3QiYCcKLStTVFJJUD0nYCRFQ0hPICJYJFNUUklQIiB8ICRYc2VkIC1lICIk ZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0rUkFOTElCPSdgJEVDSE8gIlgkUkFOTElCIiB8 ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0rb2xkX3Bvc3RpbnN0YWxs X2NtZHM9J2AkRUNITyAiWCRvbGRfcG9zdGluc3RhbGxfY21kcyIgfCAkWHNlZCAtZSAiJGRlbGF5 X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotK29sZF9wb3N0dW5pbnN0YWxsX2NtZHM9J2AkRUNITyAi WCRvbGRfcG9zdHVuaW5zdGFsbF9jbWRzIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3Rl X3N1YnN0ImAnCi0rb2xkX2FyY2hpdmVfY21kcz0nYCRFQ0hPICJYJG9sZF9hcmNoaXZlX2NtZHMi IHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLStDQz0nYCRFQ0hPICJY JENDIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0rQ0ZMQUdTPSdg JEVDSE8gIlgkQ0ZMQUdTIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAn Ci0rY29tcGlsZXI9J2AkRUNITyAiWCRjb21waWxlciIgfCAkWHNlZCAtZSAiJGRlbGF5X3Npbmds ZV9xdW90ZV9zdWJzdCJgJwotK0dDQz0nYCRFQ0hPICJYJEdDQyIgfCAkWHNlZCAtZSAiJGRlbGF5 X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotK2x0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3BpcGU9J2Ak RUNITyAiWCRsdF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF9waXBlIiB8ICRYc2VkIC1lICIkZGVsYXlf c2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0rbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfdG9fY2RlY2w9 J2AkRUNITyAiWCRsdF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF90b19jZGVjbCIgfCAkWHNlZCAtZSAi JGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotK2x0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3Rv X2NfbmFtZV9hZGRyZXNzPSdgJEVDSE8gIlgkbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfdG9fY19u YW1lX2FkZHJlc3MiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLSts dF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF90b19jX25hbWVfYWRkcmVzc19saWJfcHJlZml4PSdgJEVD SE8gIlgkbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfdG9fY19uYW1lX2FkZHJlc3NfbGliX3ByZWZp eCIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotK29iamRpcj0nYCRF Q0hPICJYJG9iamRpciIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwot K1NIRUxMPSdgJEVDSE8gIlgkU0hFTEwiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVf c3Vic3QiYCcKLStFQ0hPPSdgJEVDSE8gIlgkRUNITyIgfCAkWHNlZCAtZSAiJGRlbGF5X3Npbmds ZV9xdW90ZV9zdWJzdCJgJwotK01BR0lDX0NNRD0nYCRFQ0hPICJYJE1BR0lDX0NNRCIgfCAkWHNl ZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotK2x0X3Byb2dfY29tcGlsZXJfbm9f YnVpbHRpbl9mbGFnPSdgJEVDSE8gIlgkbHRfcHJvZ19jb21waWxlcl9ub19idWlsdGluX2ZsYWci IHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLStsdF9wcm9nX2NvbXBp bGVyX3dsPSdgJEVDSE8gIlgkbHRfcHJvZ19jb21waWxlcl93bCIgfCAkWHNlZCAtZSAiJGRlbGF5 X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotK2x0X3Byb2dfY29tcGlsZXJfcGljPSdgJEVDSE8gIlgk bHRfcHJvZ19jb21waWxlcl9waWMiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vi c3QiYCcKLStsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYz0nYCRFQ0hPICJYJGx0X3Byb2dfY29tcGls ZXJfc3RhdGljIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0rbHRf Y3ZfcHJvZ19jb21waWxlcl9jX289J2AkRUNITyAiWCRsdF9jdl9wcm9nX2NvbXBpbGVyX2NfbyIg fCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotK25lZWRfbG9ja3M9J2Ak RUNITyAiWCRuZWVkX2xvY2tzIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0 ImAnCi0rRFNZTVVUSUw9J2AkRUNITyAiWCREU1lNVVRJTCIgfCAkWHNlZCAtZSAiJGRlbGF5X3Np bmdsZV9xdW90ZV9zdWJzdCJgJwotK05NRURJVD0nYCRFQ0hPICJYJE5NRURJVCIgfCAkWHNlZCAt ZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotK0xJUE89J2AkRUNITyAiWCRMSVBPIiB8 ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0rT1RPT0w9J2AkRUNITyAi WCRPVE9PTCIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotK09UT09M NjQ9J2AkRUNITyAiWCRPVE9PTDY0IiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1 YnN0ImAnCi0rbGliZXh0PSdgJEVDSE8gIlgkbGliZXh0IiB8ICRYc2VkIC1lICIkZGVsYXlfc2lu Z2xlX3F1b3RlX3N1YnN0ImAnCi0rc2hyZXh0X2NtZHM9J2AkRUNITyAiWCRzaHJleHRfY21kcyIg fCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotK2V4dHJhY3RfZXhwc3lt c19jbWRzPSdgJEVDSE8gIlgkZXh0cmFjdF9leHBzeW1zX2NtZHMiIHwgJFhzZWQgLWUgIiRkZWxh eV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLSthcmNoaXZlX2NtZHNfbmVlZF9sYz0nYCRFQ0hPICJY JGFyY2hpdmVfY21kc19uZWVkX2xjIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1 YnN0ImAnCi0rZW5hYmxlX3NoYXJlZF93aXRoX3N0YXRpY19ydW50aW1lcz0nYCRFQ0hPICJYJGVu YWJsZV9zaGFyZWRfd2l0aF9zdGF0aWNfcnVudGltZXMiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5n bGVfcXVvdGVfc3Vic3QiYCcKLStleHBvcnRfZHluYW1pY19mbGFnX3NwZWM9J2AkRUNITyAiWCRl eHBvcnRfZHluYW1pY19mbGFnX3NwZWMiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVf c3Vic3QiYCcKLSt3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYz0nYCRFQ0hPICJYJHdob2xlX2FyY2hp dmVfZmxhZ19zcGVjIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0r Y29tcGlsZXJfbmVlZHNfb2JqZWN0PSdgJEVDSE8gIlgkY29tcGlsZXJfbmVlZHNfb2JqZWN0IiB8 ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0rb2xkX2FyY2hpdmVfZnJv bV9uZXdfY21kcz0nYCRFQ0hPICJYJG9sZF9hcmNoaXZlX2Zyb21fbmV3X2NtZHMiIHwgJFhzZWQg LWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLStvbGRfYXJjaGl2ZV9mcm9tX2V4cHN5 bXNfY21kcz0nYCRFQ0hPICJYJG9sZF9hcmNoaXZlX2Zyb21fZXhwc3ltc19jbWRzIiB8ICRYc2Vk IC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0rYXJjaGl2ZV9jbWRzPSdgJEVDSE8g IlgkYXJjaGl2ZV9jbWRzIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAn Ci0rYXJjaGl2ZV9leHBzeW1fY21kcz0nYCRFQ0hPICJYJGFyY2hpdmVfZXhwc3ltX2NtZHMiIHwg JFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLSttb2R1bGVfY21kcz0nYCRF Q0hPICJYJG1vZHVsZV9jbWRzIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0 ImAnCi0rbW9kdWxlX2V4cHN5bV9jbWRzPSdgJEVDSE8gIlgkbW9kdWxlX2V4cHN5bV9jbWRzIiB8 ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0rd2l0aF9nbnVfbGQ9J2Ak RUNITyAiWCR3aXRoX2dudV9sZCIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJz dCJgJwotK2FsbG93X3VuZGVmaW5lZF9mbGFnPSdgJEVDSE8gIlgkYWxsb3dfdW5kZWZpbmVkX2Zs YWciIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLStub191bmRlZmlu ZWRfZmxhZz0nYCRFQ0hPICJYJG5vX3VuZGVmaW5lZF9mbGFnIiB8ICRYc2VkIC1lICIkZGVsYXlf c2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0raGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYz0nYCRFQ0hP ICJYJGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVf cXVvdGVfc3Vic3QiYCcKLStoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX2xkPSdgJEVDSE8gIlgk aGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19sZCIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9x dW90ZV9zdWJzdCJgJwotK2hhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3I9J2AkRUNITyAiWCRoYXJk Y29kZV9saWJkaXJfc2VwYXJhdG9yIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1 YnN0ImAnCi0raGFyZGNvZGVfZGlyZWN0PSdgJEVDSE8gIlgkaGFyZGNvZGVfZGlyZWN0IiB8ICRY c2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0raGFyZGNvZGVfZGlyZWN0X2Fi c29sdXRlPSdgJEVDSE8gIlgkaGFyZGNvZGVfZGlyZWN0X2Fic29sdXRlIiB8ICRYc2VkIC1lICIk ZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0raGFyZGNvZGVfbWludXNfTD0nYCRFQ0hPICJY JGhhcmRjb2RlX21pbnVzX0wiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3Qi YCcKLStoYXJkY29kZV9zaGxpYnBhdGhfdmFyPSdgJEVDSE8gIlgkaGFyZGNvZGVfc2hsaWJwYXRo X3ZhciIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotK2hhcmRjb2Rl X2F1dG9tYXRpYz0nYCRFQ0hPICJYJGhhcmRjb2RlX2F1dG9tYXRpYyIgfCAkWHNlZCAtZSAiJGRl bGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotK2luaGVyaXRfcnBhdGg9J2AkRUNITyAiWCRpbmhl cml0X3JwYXRoIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0rbGlu a19hbGxfZGVwbGlicz0nYCRFQ0hPICJYJGxpbmtfYWxsX2RlcGxpYnMiIHwgJFhzZWQgLWUgIiRk ZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLStmaXhfc3JjZmlsZV9wYXRoPSdgJEVDSE8gIlgk Zml4X3NyY2ZpbGVfcGF0aCIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJg JwotK2Fsd2F5c19leHBvcnRfc3ltYm9scz0nYCRFQ0hPICJYJGFsd2F5c19leHBvcnRfc3ltYm9s cyIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotK2V4cG9ydF9zeW1i b2xzX2NtZHM9J2AkRUNITyAiWCRleHBvcnRfc3ltYm9sc19jbWRzIiB8ICRYc2VkIC1lICIkZGVs YXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0rZXhjbHVkZV9leHBzeW1zPSdgJEVDSE8gIlgkZXhj bHVkZV9leHBzeW1zIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0r aW5jbHVkZV9leHBzeW1zPSdgJEVDSE8gIlgkaW5jbHVkZV9leHBzeW1zIiB8ICRYc2VkIC1lICIk ZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0rcHJlbGlua19jbWRzPSdgJEVDSE8gIlgkcHJl bGlua19jbWRzIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0rZmls ZV9saXN0X3NwZWM9J2AkRUNITyAiWCRmaWxlX2xpc3Rfc3BlYyIgfCAkWHNlZCAtZSAiJGRlbGF5 X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotK3ZhcmlhYmxlc19zYXZlZF9mb3JfcmVsaW5rPSdgJEVD SE8gIlgkdmFyaWFibGVzX3NhdmVkX2Zvcl9yZWxpbmsiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5n bGVfcXVvdGVfc3Vic3QiYCcKLStuZWVkX2xpYl9wcmVmaXg9J2AkRUNITyAiWCRuZWVkX2xpYl9w cmVmaXgiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLStuZWVkX3Zl cnNpb249J2AkRUNITyAiWCRuZWVkX3ZlcnNpb24iIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVf cXVvdGVfc3Vic3QiYCcKLSt2ZXJzaW9uX3R5cGU9J2AkRUNITyAiWCR2ZXJzaW9uX3R5cGUiIHwg JFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLStydW5wYXRoX3Zhcj0nYCRF Q0hPICJYJHJ1bnBhdGhfdmFyIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0 ImAnCi0rc2hsaWJwYXRoX3Zhcj0nYCRFQ0hPICJYJHNobGlicGF0aF92YXIiIHwgJFhzZWQgLWUg IiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLStzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBh dGg9J2AkRUNITyAiWCRzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGgiIHwgJFhzZWQgLWUgIiRk ZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLStsaWJuYW1lX3NwZWM9J2AkRUNITyAiWCRsaWJu YW1lX3NwZWMiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLStsaWJy YXJ5X25hbWVzX3NwZWM9J2AkRUNITyAiWCRsaWJyYXJ5X25hbWVzX3NwZWMiIHwgJFhzZWQgLWUg IiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLStzb25hbWVfc3BlYz0nYCRFQ0hPICJYJHNv bmFtZV9zcGVjIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0rcG9z dGluc3RhbGxfY21kcz0nYCRFQ0hPICJYJHBvc3RpbnN0YWxsX2NtZHMiIHwgJFhzZWQgLWUgIiRk ZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLStwb3N0dW5pbnN0YWxsX2NtZHM9J2AkRUNITyAi WCRwb3N0dW5pbnN0YWxsX2NtZHMiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vi c3QiYCcKLStmaW5pc2hfY21kcz0nYCRFQ0hPICJYJGZpbmlzaF9jbWRzIiB8ICRYc2VkIC1lICIk ZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0rZmluaXNoX2V2YWw9J2AkRUNITyAiWCRmaW5p c2hfZXZhbCIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotK2hhcmRj b2RlX2ludG9fbGlicz0nYCRFQ0hPICJYJGhhcmRjb2RlX2ludG9fbGlicyIgfCAkWHNlZCAtZSAi JGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotK3N5c19saWJfc2VhcmNoX3BhdGhfc3BlYz0n YCRFQ0hPICJYJHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYyIgfCAkWHNlZCAtZSAiJGRlbGF5X3Np bmdsZV9xdW90ZV9zdWJzdCJgJwotK3N5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjPSdgJEVDSE8g Ilgkc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWMiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVf cXVvdGVfc3Vic3QiYCcKLStoYXJkY29kZV9hY3Rpb249J2AkRUNITyAiWCRoYXJkY29kZV9hY3Rp b24iIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLStlbmFibGVfZGxv cGVuPSdgJEVDSE8gIlgkZW5hYmxlX2Rsb3BlbiIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9x dW90ZV9zdWJzdCJgJwotK2VuYWJsZV9kbG9wZW5fc2VsZj0nYCRFQ0hPICJYJGVuYWJsZV9kbG9w ZW5fc2VsZiIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotK2VuYWJs ZV9kbG9wZW5fc2VsZl9zdGF0aWM9J2AkRUNITyAiWCRlbmFibGVfZGxvcGVuX3NlbGZfc3RhdGlj IiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0rb2xkX3N0cmlwbGli PSdgJEVDSE8gIlgkb2xkX3N0cmlwbGliIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3Rl X3N1YnN0ImAnCi0rc3RyaXBsaWI9J2AkRUNITyAiWCRzdHJpcGxpYiIgfCAkWHNlZCAtZSAiJGRl bGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotK2NvbXBpbGVyX2xpYl9zZWFyY2hfZGlycz0nYCRF Q0hPICJYJGNvbXBpbGVyX2xpYl9zZWFyY2hfZGlycyIgfCAkWHNlZCAtZSAiJGRlbGF5X3Npbmds ZV9xdW90ZV9zdWJzdCJgJwotK3ByZWRlcF9vYmplY3RzPSdgJEVDSE8gIlgkcHJlZGVwX29iamVj dHMiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLStwb3N0ZGVwX29i amVjdHM9J2AkRUNITyAiWCRwb3N0ZGVwX29iamVjdHMiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5n bGVfcXVvdGVfc3Vic3QiYCcKLStwcmVkZXBzPSdgJEVDSE8gIlgkcHJlZGVwcyIgfCAkWHNlZCAt ZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotK3Bvc3RkZXBzPSdgJEVDSE8gIlgkcG9z dGRlcHMiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLStjb21waWxl cl9saWJfc2VhcmNoX3BhdGg9J2AkRUNITyAiWCRjb21waWxlcl9saWJfc2VhcmNoX3BhdGgiIHwg JFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLStMRF9DWFg9J2AkRUNITyAi WCRMRF9DWFgiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLStvbGRf YXJjaGl2ZV9jbWRzX0NYWD0nYCRFQ0hPICJYJG9sZF9hcmNoaXZlX2NtZHNfQ1hYIiB8ICRYc2Vk IC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0rY29tcGlsZXJfQ1hYPSdgJEVDSE8g IlgkY29tcGlsZXJfQ1hYIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAn Ci0rR0NDX0NYWD0nYCRFQ0hPICJYJEdDQ19DWFgiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVf cXVvdGVfc3Vic3QiYCcKLStsdF9wcm9nX2NvbXBpbGVyX25vX2J1aWx0aW5fZmxhZ19DWFg9J2Ak RUNITyAiWCRsdF9wcm9nX2NvbXBpbGVyX25vX2J1aWx0aW5fZmxhZ19DWFgiIHwgJFhzZWQgLWUg IiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLStsdF9wcm9nX2NvbXBpbGVyX3dsX0NYWD0n YCRFQ0hPICJYJGx0X3Byb2dfY29tcGlsZXJfd2xfQ1hYIiB8ICRYc2VkIC1lICIkZGVsYXlfc2lu Z2xlX3F1b3RlX3N1YnN0ImAnCi0rbHRfcHJvZ19jb21waWxlcl9waWNfQ1hYPSdgJEVDSE8gIlgk bHRfcHJvZ19jb21waWxlcl9waWNfQ1hYIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3Rl X3N1YnN0ImAnCi0rbHRfcHJvZ19jb21waWxlcl9zdGF0aWNfQ1hYPSdgJEVDSE8gIlgkbHRfcHJv Z19jb21waWxlcl9zdGF0aWNfQ1hYIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1 YnN0ImAnCi0rbHRfY3ZfcHJvZ19jb21waWxlcl9jX29fQ1hYPSdgJEVDSE8gIlgkbHRfY3ZfcHJv Z19jb21waWxlcl9jX29fQ1hYIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0 ImAnCi0rYXJjaGl2ZV9jbWRzX25lZWRfbGNfQ1hYPSdgJEVDSE8gIlgkYXJjaGl2ZV9jbWRzX25l ZWRfbGNfQ1hYIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0rZW5h YmxlX3NoYXJlZF93aXRoX3N0YXRpY19ydW50aW1lc19DWFg9J2AkRUNITyAiWCRlbmFibGVfc2hh cmVkX3dpdGhfc3RhdGljX3J1bnRpbWVzX0NYWCIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9x dW90ZV9zdWJzdCJgJwotK2V4cG9ydF9keW5hbWljX2ZsYWdfc3BlY19DWFg9J2AkRUNITyAiWCRl eHBvcnRfZHluYW1pY19mbGFnX3NwZWNfQ1hYIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1 b3RlX3N1YnN0ImAnCi0rd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWNfQ1hYPSdgJEVDSE8gIlgkd2hv bGVfYXJjaGl2ZV9mbGFnX3NwZWNfQ1hYIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3Rl X3N1YnN0ImAnCi0rY29tcGlsZXJfbmVlZHNfb2JqZWN0X0NYWD0nYCRFQ0hPICJYJGNvbXBpbGVy X25lZWRzX29iamVjdF9DWFgiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3Qi YCcKLStvbGRfYXJjaGl2ZV9mcm9tX25ld19jbWRzX0NYWD0nYCRFQ0hPICJYJG9sZF9hcmNoaXZl X2Zyb21fbmV3X2NtZHNfQ1hYIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0 ImAnCi0rb2xkX2FyY2hpdmVfZnJvbV9leHBzeW1zX2NtZHNfQ1hYPSdgJEVDSE8gIlgkb2xkX2Fy Y2hpdmVfZnJvbV9leHBzeW1zX2NtZHNfQ1hYIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1 b3RlX3N1YnN0ImAnCi0rYXJjaGl2ZV9jbWRzX0NYWD0nYCRFQ0hPICJYJGFyY2hpdmVfY21kc19D WFgiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLSthcmNoaXZlX2V4 cHN5bV9jbWRzX0NYWD0nYCRFQ0hPICJYJGFyY2hpdmVfZXhwc3ltX2NtZHNfQ1hYIiB8ICRYc2Vk IC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0rbW9kdWxlX2NtZHNfQ1hYPSdgJEVD SE8gIlgkbW9kdWxlX2NtZHNfQ1hYIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1 YnN0ImAnCi0rbW9kdWxlX2V4cHN5bV9jbWRzX0NYWD0nYCRFQ0hPICJYJG1vZHVsZV9leHBzeW1f Y21kc19DWFgiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLSt3aXRo X2dudV9sZF9DWFg9J2AkRUNITyAiWCR3aXRoX2dudV9sZF9DWFgiIHwgJFhzZWQgLWUgIiRkZWxh eV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLSthbGxvd191bmRlZmluZWRfZmxhZ19DWFg9J2AkRUNI TyAiWCRhbGxvd191bmRlZmluZWRfZmxhZ19DWFgiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVf cXVvdGVfc3Vic3QiYCcKLStub191bmRlZmluZWRfZmxhZ19DWFg9J2AkRUNITyAiWCRub191bmRl ZmluZWRfZmxhZ19DWFgiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcK LStoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX0NYWD0nYCRFQ0hPICJYJGhhcmRjb2RlX2xpYmRp cl9mbGFnX3NwZWNfQ1hYIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAn Ci0raGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19sZF9DWFg9J2AkRUNITyAiWCRoYXJkY29kZV9s aWJkaXJfZmxhZ19zcGVjX2xkX0NYWCIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9z dWJzdCJgJwotK2hhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3JfQ1hYPSdgJEVDSE8gIlgkaGFyZGNv ZGVfbGliZGlyX3NlcGFyYXRvcl9DWFgiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVf c3Vic3QiYCcKLStoYXJkY29kZV9kaXJlY3RfQ1hYPSdgJEVDSE8gIlgkaGFyZGNvZGVfZGlyZWN0 X0NYWCIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotK2hhcmRjb2Rl X2RpcmVjdF9hYnNvbHV0ZV9DWFg9J2AkRUNITyAiWCRoYXJkY29kZV9kaXJlY3RfYWJzb2x1dGVf Q1hYIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0raGFyZGNvZGVf bWludXNfTF9DWFg9J2AkRUNITyAiWCRoYXJkY29kZV9taW51c19MX0NYWCIgfCAkWHNlZCAtZSAi JGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotK2hhcmRjb2RlX3NobGlicGF0aF92YXJfQ1hY PSdgJEVDSE8gIlgkaGFyZGNvZGVfc2hsaWJwYXRoX3Zhcl9DWFgiIHwgJFhzZWQgLWUgIiRkZWxh eV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLStoYXJkY29kZV9hdXRvbWF0aWNfQ1hYPSdgJEVDSE8g IlgkaGFyZGNvZGVfYXV0b21hdGljX0NYWCIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90 ZV9zdWJzdCJgJwotK2luaGVyaXRfcnBhdGhfQ1hYPSdgJEVDSE8gIlgkaW5oZXJpdF9ycGF0aF9D WFgiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLStsaW5rX2FsbF9k ZXBsaWJzX0NYWD0nYCRFQ0hPICJYJGxpbmtfYWxsX2RlcGxpYnNfQ1hYIiB8ICRYc2VkIC1lICIk ZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0rZml4X3NyY2ZpbGVfcGF0aF9DWFg9J2AkRUNI TyAiWCRmaXhfc3JjZmlsZV9wYXRoX0NYWCIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90 ZV9zdWJzdCJgJwotK2Fsd2F5c19leHBvcnRfc3ltYm9sc19DWFg9J2AkRUNITyAiWCRhbHdheXNf ZXhwb3J0X3N5bWJvbHNfQ1hYIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0 ImAnCi0rZXhwb3J0X3N5bWJvbHNfY21kc19DWFg9J2AkRUNITyAiWCRleHBvcnRfc3ltYm9sc19j bWRzX0NYWCIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotK2V4Y2x1 ZGVfZXhwc3ltc19DWFg9J2AkRUNITyAiWCRleGNsdWRlX2V4cHN5bXNfQ1hYIiB8ICRYc2VkIC1l ICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0raW5jbHVkZV9leHBzeW1zX0NYWD0nYCRF Q0hPICJYJGluY2x1ZGVfZXhwc3ltc19DWFgiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVv dGVfc3Vic3QiYCcKLStwcmVsaW5rX2NtZHNfQ1hYPSdgJEVDSE8gIlgkcHJlbGlua19jbWRzX0NY WCIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotK2ZpbGVfbGlzdF9z cGVjX0NYWD0nYCRFQ0hPICJYJGZpbGVfbGlzdF9zcGVjX0NYWCIgfCAkWHNlZCAtZSAiJGRlbGF5 X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotK2hhcmRjb2RlX2FjdGlvbl9DWFg9J2AkRUNITyAiWCRo YXJkY29kZV9hY3Rpb25fQ1hYIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0 ImAnCi0rY29tcGlsZXJfbGliX3NlYXJjaF9kaXJzX0NYWD0nYCRFQ0hPICJYJGNvbXBpbGVyX2xp Yl9zZWFyY2hfZGlyc19DWFgiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3Qi YCcKLStwcmVkZXBfb2JqZWN0c19DWFg9J2AkRUNITyAiWCRwcmVkZXBfb2JqZWN0c19DWFgiIHwg JFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLStwb3N0ZGVwX29iamVjdHNf Q1hYPSdgJEVDSE8gIlgkcG9zdGRlcF9vYmplY3RzX0NYWCIgfCAkWHNlZCAtZSAiJGRlbGF5X3Np bmdsZV9xdW90ZV9zdWJzdCJgJwotK3ByZWRlcHNfQ1hYPSdgJEVDSE8gIlgkcHJlZGVwc19DWFgi IHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLStwb3N0ZGVwc19DWFg9 J2AkRUNITyAiWCRwb3N0ZGVwc19DWFgiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVf c3Vic3QiYCcKLStjb21waWxlcl9saWJfc2VhcmNoX3BhdGhfQ1hYPSdgJEVDSE8gIlgkY29tcGls ZXJfbGliX3NlYXJjaF9wYXRoX0NYWCIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9z dWJzdCJgJwotKwotK0xUQ0M9JyRMVENDJwotK0xUQ0ZMQUdTPSckTFRDRkxBR1MnCi0rY29tcGls ZXI9JyRjb21waWxlcl9ERUZBVUxUJwotKwotKyMgUXVvdGUgZXZhbGVkIHN0cmluZ3MuCi0rZm9y IHZhciBpbiBTRUQgXAotK0dSRVAgXAotK0VHUkVQIFwKLStGR1JFUCBcCi0rTEQgXAotK05NIFwK LStMTl9TIFwKLStsdF9TUDJOTCBcCi0rbHRfTkwyU1AgXAotK3JlbG9hZF9mbGFnIFwKLStPQkpE VU1QIFwKLStkZXBsaWJzX2NoZWNrX21ldGhvZCBcCi0rZmlsZV9tYWdpY19jbWQgXAotK0FSIFwK LStBUl9GTEFHUyBcCi0rU1RSSVAgXAotK1JBTkxJQiBcCi0rQ0MgXAotK0NGTEFHUyBcCi0rY29t cGlsZXIgXAotK2x0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3BpcGUgXAotK2x0X2N2X3N5c19nbG9i YWxfc3ltYm9sX3RvX2NkZWNsIFwKLStsdF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF90b19jX25hbWVf YWRkcmVzcyBcCi0rbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfdG9fY19uYW1lX2FkZHJlc3NfbGli X3ByZWZpeCBcCi0rU0hFTEwgXAotK0VDSE8gXAotK2x0X3Byb2dfY29tcGlsZXJfbm9fYnVpbHRp bl9mbGFnIFwKLStsdF9wcm9nX2NvbXBpbGVyX3dsIFwKLStsdF9wcm9nX2NvbXBpbGVyX3BpYyBc Ci0rbHRfcHJvZ19jb21waWxlcl9zdGF0aWMgXAotK2x0X2N2X3Byb2dfY29tcGlsZXJfY19vIFwK LStuZWVkX2xvY2tzIFwKLStEU1lNVVRJTCBcCi0rTk1FRElUIFwKLStMSVBPIFwKLStPVE9PTCBc Ci0rT1RPT0w2NCBcCi0rc2hyZXh0X2NtZHMgXAotK2V4cG9ydF9keW5hbWljX2ZsYWdfc3BlYyBc Ci0rd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWMgXAotK2NvbXBpbGVyX25lZWRzX29iamVjdCBcCi0r d2l0aF9nbnVfbGQgXAotK2FsbG93X3VuZGVmaW5lZF9mbGFnIFwKLStub191bmRlZmluZWRfZmxh ZyBcCi0raGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYyBcCi0raGFyZGNvZGVfbGliZGlyX2ZsYWdf c3BlY19sZCBcCi0raGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciBcCi0rZml4X3NyY2ZpbGVfcGF0 aCBcCi0rZXhjbHVkZV9leHBzeW1zIFwKLStpbmNsdWRlX2V4cHN5bXMgXAotK2ZpbGVfbGlzdF9z cGVjIFwKLSt2YXJpYWJsZXNfc2F2ZWRfZm9yX3JlbGluayBcCi0rbGlibmFtZV9zcGVjIFwKLSts aWJyYXJ5X25hbWVzX3NwZWMgXAotK3NvbmFtZV9zcGVjIFwKLStmaW5pc2hfZXZhbCBcCi0rb2xk X3N0cmlwbGliIFwKLStzdHJpcGxpYiBcCi0rY29tcGlsZXJfbGliX3NlYXJjaF9kaXJzIFwKLStw cmVkZXBfb2JqZWN0cyBcCi0rcG9zdGRlcF9vYmplY3RzIFwKLStwcmVkZXBzIFwKLStwb3N0ZGVw cyBcCi0rY29tcGlsZXJfbGliX3NlYXJjaF9wYXRoIFwKLStMRF9DWFggXAotK2NvbXBpbGVyX0NY WCBcCi0rbHRfcHJvZ19jb21waWxlcl9ub19idWlsdGluX2ZsYWdfQ1hYIFwKLStsdF9wcm9nX2Nv bXBpbGVyX3dsX0NYWCBcCi0rbHRfcHJvZ19jb21waWxlcl9waWNfQ1hYIFwKLStsdF9wcm9nX2Nv bXBpbGVyX3N0YXRpY19DWFggXAotK2x0X2N2X3Byb2dfY29tcGlsZXJfY19vX0NYWCBcCi0rZXhw b3J0X2R5bmFtaWNfZmxhZ19zcGVjX0NYWCBcCi0rd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWNfQ1hY IFwKLStjb21waWxlcl9uZWVkc19vYmplY3RfQ1hYIFwKLSt3aXRoX2dudV9sZF9DWFggXAotK2Fs bG93X3VuZGVmaW5lZF9mbGFnX0NYWCBcCi0rbm9fdW5kZWZpbmVkX2ZsYWdfQ1hYIFwKLStoYXJk Y29kZV9saWJkaXJfZmxhZ19zcGVjX0NYWCBcCi0raGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19s ZF9DWFggXAotK2hhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3JfQ1hYIFwKLStmaXhfc3JjZmlsZV9w YXRoX0NYWCBcCi0rZXhjbHVkZV9leHBzeW1zX0NYWCBcCi0raW5jbHVkZV9leHBzeW1zX0NYWCBc Ci0rZmlsZV9saXN0X3NwZWNfQ1hYIFwKLStjb21waWxlcl9saWJfc2VhcmNoX2RpcnNfQ1hYIFwK LStwcmVkZXBfb2JqZWN0c19DWFggXAotK3Bvc3RkZXBfb2JqZWN0c19DWFggXAotK3ByZWRlcHNf Q1hYIFwKLStwb3N0ZGVwc19DWFggXAotK2NvbXBpbGVyX2xpYl9zZWFyY2hfcGF0aF9DWFg7IGRv Ci0rICAgIGNhc2UgXGBldmFsIFxcXFxcJEVDSE8gIlhcXFxcXCRcJHZhciJcYCBpbgotKyAgICAq W1xcXFxcXFxgXFwiXFxcJF0qKQotKyAgICAgIGV2YWwgImx0X1wkdmFyPVxcXFxcXCJcXFxgXFxc JEVDSE8gXFwiWFxcXCRcJHZhclxcIiB8IFxcXCRYc2VkIC1lIFxcIlxcXCRzZWRfcXVvdGVfc3Vi c3RcXCJcXFxgXFxcXFxcIiIKLSsgICAgICA7OwotKyAgICAqKQotKyAgICAgIGV2YWwgImx0X1wk dmFyPVxcXFxcXCJcXFwkXCR2YXJcXFxcXFwiIgotKyAgICAgIDs7Ci0rICAgIGVzYWMKLStkb25l Ci0rCi0rIyBEb3VibGUtcXVvdGUgZG91YmxlLWV2YWxlZCBzdHJpbmdzLgotK2ZvciB2YXIgaW4g cmVsb2FkX2NtZHMgXAotK29sZF9wb3N0aW5zdGFsbF9jbWRzIFwKLStvbGRfcG9zdHVuaW5zdGFs bF9jbWRzIFwKLStvbGRfYXJjaGl2ZV9jbWRzIFwKLStleHRyYWN0X2V4cHN5bXNfY21kcyBcCi0r b2xkX2FyY2hpdmVfZnJvbV9uZXdfY21kcyBcCi0rb2xkX2FyY2hpdmVfZnJvbV9leHBzeW1zX2Nt ZHMgXAotK2FyY2hpdmVfY21kcyBcCi0rYXJjaGl2ZV9leHBzeW1fY21kcyBcCi0rbW9kdWxlX2Nt ZHMgXAotK21vZHVsZV9leHBzeW1fY21kcyBcCi0rZXhwb3J0X3N5bWJvbHNfY21kcyBcCi0rcHJl bGlua19jbWRzIFwKLStwb3N0aW5zdGFsbF9jbWRzIFwKLStwb3N0dW5pbnN0YWxsX2NtZHMgXAot K2ZpbmlzaF9jbWRzIFwKLStzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWMgXAotK3N5c19saWJfZGxz ZWFyY2hfcGF0aF9zcGVjIFwKLStvbGRfYXJjaGl2ZV9jbWRzX0NYWCBcCi0rb2xkX2FyY2hpdmVf ZnJvbV9uZXdfY21kc19DWFggXAotK29sZF9hcmNoaXZlX2Zyb21fZXhwc3ltc19jbWRzX0NYWCBc Ci0rYXJjaGl2ZV9jbWRzX0NYWCBcCi0rYXJjaGl2ZV9leHBzeW1fY21kc19DWFggXAotK21vZHVs ZV9jbWRzX0NYWCBcCi0rbW9kdWxlX2V4cHN5bV9jbWRzX0NYWCBcCi0rZXhwb3J0X3N5bWJvbHNf Y21kc19DWFggXAotK3ByZWxpbmtfY21kc19DWFg7IGRvCi0rICAgIGNhc2UgXGBldmFsIFxcXFxc JEVDSE8gIlhcXFxcXCRcJHZhciJcYCBpbgotKyAgICAqW1xcXFxcXFxgXFwiXFxcJF0qKQotKyAg ICAgIGV2YWwgImx0X1wkdmFyPVxcXFxcXCJcXFxgXFxcJEVDSE8gXFwiWFxcXCRcJHZhclxcIiB8 IFxcXCRYc2VkIC1lIFxcIlxcXCRkb3VibGVfcXVvdGVfc3Vic3RcXCIgLWUgXFwiXFxcJHNlZF9x dW90ZV9zdWJzdFxcIiAtZSBcXCJcXFwkZGVsYXlfdmFyaWFibGVfc3Vic3RcXCJcXFxgXFxcXFxc IiIKLSsgICAgICA7OwotKyAgICAqKQotKyAgICAgIGV2YWwgImx0X1wkdmFyPVxcXFxcXCJcXFwk XCR2YXJcXFxcXFwiIgotKyAgICAgIDs7Ci0rICAgIGVzYWMKLStkb25lCi0rCi0rIyBGaXgtdXAg ZmFsbGJhY2sgZWNobyBpZiBpdCB3YXMgbWFuZ2xlZCBieSB0aGUgYWJvdmUgcXVvdGluZyBydWxl cy4KLStjYXNlIFwkbHRfRUNITyBpbgotKyonXFxcJDAgLS1mYWxsYmFjay1lY2hvIicpICBsdF9F Q0hPPVxgXCRFQ0hPICJYXCRsdF9FQ0hPIiB8IFwkWHNlZCAtZSAncy9cXFxcXFxcXFxcXFxcXFwk MCAtLWZhbGxiYWNrLWVjaG8iXCQvXCQwIC0tZmFsbGJhY2stZWNobyIvJ1xgCi0rICA7OwotK2Vz YWMKLSsKLSthY19hdXhfZGlyPSckYWNfYXV4X2RpcicKLSt4c2lfc2hlbGw9JyR4c2lfc2hlbGwn Ci0rbHRfc2hlbGxfYXBwZW5kPSckbHRfc2hlbGxfYXBwZW5kJwotKwotKyMgU2VlIGlmIHdlIGFy ZSBydW5uaW5nIG9uIHpzaCwgYW5kIHNldCB0aGUgb3B0aW9ucyB3aGljaCBhbGxvdyBvdXIKLSsj IGNvbW1hbmRzIHRocm91Z2ggd2l0aG91dCByZW1vdmFsIG9mIFwgZXNjYXBlcyBJTklULgotK2lm IHRlc3QgLW4gIlwke1pTSF9WRVJTSU9OK3NldH0iIDsgdGhlbgotKyAgIHNldG9wdCBOT19HTE9C X1NVQlNUCi0rZmkKLSsKLSsKLSsgICAgUEFDS0FHRT0nJFBBQ0tBR0UnCi0rICAgIFZFUlNJT049 JyRWRVJTSU9OJwotKyAgICBUSU1FU1RBTVA9JyRUSU1FU1RBTVAnCi0rICAgIFJNPSckUk0nCi0r ICAgIG9maWxlPSckb2ZpbGUnCi0rCi0rCi0rCi0rCi0rCi0rCi0rX0FDRU9GCi0rCi0rY2F0ID4+ JENPTkZJR19TVEFUVVMgPDxcX0FDRU9GIHx8IGFjX3dyaXRlX2ZhaWw9MQotKwotKyMgSGFuZGxp bmcgb2YgYXJndW1lbnRzLgotK2ZvciBhY19jb25maWdfdGFyZ2V0IGluICRhY19jb25maWdfdGFy Z2V0cwotK2RvCi0rICBjYXNlICRhY19jb25maWdfdGFyZ2V0IGluCi0rICAgICJzb2NpL2NvbmZp Zy5oIikgQ09ORklHX0hFQURFUlM9IiRDT05GSUdfSEVBREVSUyBzb2NpL2NvbmZpZy5oIiA7Owot KyAgICAiZGVwZmlsZXMiKSBDT05GSUdfQ09NTUFORFM9IiRDT05GSUdfQ09NTUFORFMgZGVwZmls ZXMiIDs7Ci0rICAgICJsaWJ0b29sIikgQ09ORklHX0NPTU1BTkRTPSIkQ09ORklHX0NPTU1BTkRT IGxpYnRvb2wiIDs7Ci0rICAgICJNYWtlZmlsZSIpIENPTkZJR19GSUxFUz0iJENPTkZJR19GSUxF UyBNYWtlZmlsZSIgOzsKLSsgICAgInNvY2ktY29uZmlnIikgQ09ORklHX0ZJTEVTPSIkQ09ORklH X0ZJTEVTIHNvY2ktY29uZmlnIiA7OwotKyAgICAic29jaS5wYyIpIENPTkZJR19GSUxFUz0iJENP TkZJR19GSUxFUyBzb2NpLnBjIiA7OwotKyAgICAic29jaS5zcGVjIikgQ09ORklHX0ZJTEVTPSIk Q09ORklHX0ZJTEVTIHNvY2kuc3BlYyIgOzsKLSsgICAgInNvY2kvTWFrZWZpbGUiKSBDT05GSUdf RklMRVM9IiRDT05GSUdfRklMRVMgc29jaS9NYWtlZmlsZSIgOzsKLSsgICAgInNvY2kvY29yZS9N YWtlZmlsZSIpIENPTkZJR19GSUxFUz0iJENPTkZJR19GSUxFUyBzb2NpL2NvcmUvTWFrZWZpbGUi IDs7Ci0rICAgICJzb2NpL2NvcmUvdGVzdC9NYWtlZmlsZSIpIENPTkZJR19GSUxFUz0iJENPTkZJ R19GSUxFUyBzb2NpL2NvcmUvdGVzdC9NYWtlZmlsZSIgOzsKLSsgICAgInNvY2kvYmFja2VuZHMv TWFrZWZpbGUiKSBDT05GSUdfRklMRVM9IiRDT05GSUdfRklMRVMgc29jaS9iYWNrZW5kcy9NYWtl ZmlsZSIgOzsKLSsgICAgInNvY2kvYmFja2VuZHMvbXlzcWwvTWFrZWZpbGUiKSBDT05GSUdfRklM RVM9IiRDT05GSUdfRklMRVMgc29jaS9iYWNrZW5kcy9teXNxbC9NYWtlZmlsZSIgOzsKLSsgICAg InNvY2kvYmFja2VuZHMvbXlzcWwvdGVzdC9NYWtlZmlsZSIpIENPTkZJR19GSUxFUz0iJENPTkZJ R19GSUxFUyBzb2NpL2JhY2tlbmRzL215c3FsL3Rlc3QvTWFrZWZpbGUiIDs7Ci0rICAgICJzb2Np L2JhY2tlbmRzL3Bvc3RncmVzcWwvTWFrZWZpbGUiKSBDT05GSUdfRklMRVM9IiRDT05GSUdfRklM RVMgc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL01ha2VmaWxlIiA7OwotKyAgICAic29jaS9iYWNr ZW5kcy9wb3N0Z3Jlc3FsL3Rlc3QvTWFrZWZpbGUiKSBDT05GSUdfRklMRVM9IiRDT05GSUdfRklM RVMgc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Rlc3QvTWFrZWZpbGUiIDs7Ci0rICAgICJzb2Np L2JhY2tlbmRzL29yYWNsZS9NYWtlZmlsZSIpIENPTkZJR19GSUxFUz0iJENPTkZJR19GSUxFUyBz b2NpL2JhY2tlbmRzL29yYWNsZS9NYWtlZmlsZSIgOzsKLSsgICAgInNvY2kvYmFja2VuZHMvb3Jh Y2xlL3Rlc3QvTWFrZWZpbGUiKSBDT05GSUdfRklMRVM9IiRDT05GSUdfRklMRVMgc29jaS9iYWNr ZW5kcy9vcmFjbGUvdGVzdC9NYWtlZmlsZSIgOzsKLSsgICAgIm1hbi9NYWtlZmlsZSIpIENPTkZJ R19GSUxFUz0iJENPTkZJR19GSUxFUyBtYW4vTWFrZWZpbGUiIDs7Ci0rICAgICJkb2MvTWFrZWZp bGUiKSBDT05GSUdfRklMRVM9IiRDT05GSUdfRklMRVMgZG9jL01ha2VmaWxlIiA7OwotKyAgICAi ZG9jL2JhY2tlbmRzL01ha2VmaWxlIikgQ09ORklHX0ZJTEVTPSIkQ09ORklHX0ZJTEVTIGRvYy9i YWNrZW5kcy9NYWtlZmlsZSIgOzsKLSsgICAgImJ1aWxkL01ha2VmaWxlIikgQ09ORklHX0ZJTEVT PSIkQ09ORklHX0ZJTEVTIGJ1aWxkL01ha2VmaWxlIiA7OwotKyAgICAiYnVpbGQvdW5peC9NYWtl ZmlsZSIpIENPTkZJR19GSUxFUz0iJENPTkZJR19GSUxFUyBidWlsZC91bml4L01ha2VmaWxlIiA7 OwotKyAgICAiYnVpbGQvbXN2YzgwL01ha2VmaWxlIikgQ09ORklHX0ZJTEVTPSIkQ09ORklHX0ZJ TEVTIGJ1aWxkL21zdmM4MC9NYWtlZmlsZSIgOzsKLSsgICAgImJ1aWxkL21zdmM4MC9kbGwvTWFr ZWZpbGUiKSBDT05GSUdfRklMRVM9IiRDT05GSUdfRklMRVMgYnVpbGQvbXN2YzgwL2RsbC9NYWtl ZmlsZSIgOzsKLSsgICAgImJ1aWxkL21zdmM4MC9saWIvTWFrZWZpbGUiKSBDT05GSUdfRklMRVM9 IiRDT05GSUdfRklMRVMgYnVpbGQvbXN2YzgwL2xpYi9NYWtlZmlsZSIgOzsKLSsKLSsgICopIHsg eyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBpbnZhbGlkIGFyZ3VtZW50OiAkYWNf Y29uZmlnX3RhcmdldCIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IGludmFsaWQgYXJn dW1lbnQ6ICRhY19jb25maWdfdGFyZ2V0IiA+JjI7fQotKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsg fTsgfTs7Ci0rICBlc2FjCi0rZG9uZQotKwotKwotKyMgSWYgdGhlIHVzZXIgZGlkIG5vdCB1c2Ug dGhlIGFyZ3VtZW50cyB0byBzcGVjaWZ5IHRoZSBpdGVtcyB0byBpbnN0YW50aWF0ZSwKLSsjIHRo ZW4gdGhlIGVudnZhciBpbnRlcmZhY2UgaXMgdXNlZC4gIFNldCBvbmx5IHRob3NlIHRoYXQgYXJl IG5vdC4KLSsjIFdlIHVzZSB0aGUgbG9uZyBmb3JtIGZvciB0aGUgZGVmYXVsdCBhc3NpZ25tZW50 IGJlY2F1c2Ugb2YgYW4gZXh0cmVtZWx5Ci0rIyBiaXphcnJlIGJ1ZyBvbiBTdW5PUyA0LjEuMy4K LStpZiAkYWNfbmVlZF9kZWZhdWx0czsgdGhlbgotKyAgdGVzdCAiJHtDT05GSUdfRklMRVMrc2V0 fSIgPSBzZXQgfHwgQ09ORklHX0ZJTEVTPSRjb25maWdfZmlsZXMKLSsgIHRlc3QgIiR7Q09ORklH X0hFQURFUlMrc2V0fSIgPSBzZXQgfHwgQ09ORklHX0hFQURFUlM9JGNvbmZpZ19oZWFkZXJzCi0r ICB0ZXN0ICIke0NPTkZJR19DT01NQU5EUytzZXR9IiA9IHNldCB8fCBDT05GSUdfQ09NTUFORFM9 JGNvbmZpZ19jb21tYW5kcwotK2ZpCi0rCi0rIyBIYXZlIGEgdGVtcG9yYXJ5IGRpcmVjdG9yeSBm b3IgY29udmVuaWVuY2UuICBNYWtlIGl0IGluIHRoZSBidWlsZCB0cmVlCi0rIyBzaW1wbHkgYmVj YXVzZSB0aGVyZSBpcyBubyByZWFzb24gYWdhaW5zdCBoYXZpbmcgaXQgaGVyZSwgYW5kIGluIGFk ZGl0aW9uLAotKyMgY3JlYXRpbmcgYW5kIG1vdmluZyBmaWxlcyBmcm9tIC90bXAgY2FuIHNvbWV0 aW1lcyBjYXVzZSBwcm9ibGVtcy4KLSsjIEhvb2sgZm9yIGl0cyByZW1vdmFsIHVubGVzcyBkZWJ1 Z2dpbmcuCi0rIyBOb3RlIHRoYXQgdGhlcmUgaXMgYSBzbWFsbCB3aW5kb3cgaW4gd2hpY2ggdGhl IGRpcmVjdG9yeSB3aWxsIG5vdCBiZSBjbGVhbmVkOgotKyMgYWZ0ZXIgaXRzIGNyZWF0aW9uIGJ1 dCBiZWZvcmUgaXRzIG5hbWUgaGFzIGJlZW4gYXNzaWduZWQgdG8gYCR0bXAnLgotKyRkZWJ1ZyB8 fAotK3sKLSsgIHRtcD0KLSsgIHRyYXAgJ2V4aXRfc3RhdHVzPSQ/Ci0rICB7IHRlc3QgLXogIiR0 bXAiIHx8IHRlc3QgISAtZCAiJHRtcCIgfHwgcm0gLWZyICIkdG1wIjsgfSAmJiBleGl0ICRleGl0 X3N0YXR1cwotKycgMAotKyAgdHJhcCAneyAoZXhpdCAxKTsgZXhpdCAxOyB9JyAxIDIgMTMgMTUK LSt9Ci0rIyBDcmVhdGUgYSAoc2VjdXJlKSB0bXAgZGlyZWN0b3J5IGZvciB0bXAgZmlsZXMuCi0r Ci0rewotKyAgdG1wPWAodW1hc2sgMDc3ICYmIG1rdGVtcCAtZCAiLi9jb25mWFhYWFhYIikgMj4v ZGV2L251bGxgICYmCi0rICB0ZXN0IC1uICIkdG1wIiAmJiB0ZXN0IC1kICIkdG1wIgotK30gIHx8 Ci0rewotKyAgdG1wPS4vY29uZiQkLSRSQU5ET00KLSsgICh1bWFzayAwNzcgJiYgbWtkaXIgIiR0 bXAiKQotK30gfHwKLSt7Ci0rICAgJGFzX2VjaG8gIiRhc19tZTogY2Fubm90IGNyZWF0ZSBhIHRl bXBvcmFyeSBkaXJlY3RvcnkgaW4gLiIgPiYyCi0rICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9Ci0r fQotKwotKyMgU2V0IHVwIHRoZSBzY3JpcHRzIGZvciBDT05GSUdfRklMRVMgc2VjdGlvbi4KLSsj IE5vIG5lZWQgdG8gZ2VuZXJhdGUgdGhlbSBpZiB0aGVyZSBhcmUgbm8gQ09ORklHX0ZJTEVTLgot KyMgVGhpcyBoYXBwZW5zIGZvciBpbnN0YW5jZSB3aXRoIGAuL2NvbmZpZy5zdGF0dXMgY29uZmln LmgnLgotK2lmIHRlc3QgLW4gIiRDT05GSUdfRklMRVMiOyB0aGVuCi0rCi0rCi0rYWNfY3I9Jw0n Ci0rYWNfY3NfYXdrX2NyPWAkQVdLICdCRUdJTiB7IHByaW50ICJhXHJiIiB9JyA8L2Rldi9udWxs IDI+L2Rldi9udWxsYAotK2lmIHRlc3QgIiRhY19jc19hd2tfY3IiID0gImEke2FjX2NyfWIiOyB0 aGVuCi0rICBhY19jc19hd2tfY3I9J1xccicKLStlbHNlCi0rICBhY19jc19hd2tfY3I9JGFjX2Ny Ci0rZmkKLSsKLStlY2hvICdCRUdJTiB7JyA+IiR0bXAvc3ViczEuYXdrIiAmJgotK19BQ0VPRgot KwotKwotK3sKLSsgIGVjaG8gImNhdCA+Y29uZiQkc3Vicy5hd2sgPDxfQUNFT0YiICYmCi0rICBl Y2hvICIkYWNfc3Vic3RfdmFycyIgfCBzZWQgJ3MvLiovJiEkJiRhY19kZWxpbS8nICYmCi0rICBl Y2hvICJfQUNFT0YiCi0rfSA+Y29uZiQkc3Vicy5zaCB8fAotKyAgeyB7ICRhc19lY2hvICIkYXNf bWU6JExJTkVOTzogZXJyb3I6IGNvdWxkIG5vdCBtYWtlICRDT05GSUdfU1RBVFVTIiA+JjUKLSsk YXNfZWNobyAiJGFzX21lOiBlcnJvcjogY291bGQgbm90IG1ha2UgJENPTkZJR19TVEFUVVMiID4m Mjt9Ci0rICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9Ci0rYWNfZGVsaW1fbnVtPWBlY2hvICIk YWNfc3Vic3RfdmFycyIgfCBncmVwIC1jICckJ2AKLSthY19kZWxpbT0nJSFfISMgJwotK2ZvciBh Y19sYXN0X3RyeSBpbiBmYWxzZSBmYWxzZSBmYWxzZSBmYWxzZSBmYWxzZSA6OyBkbwotKyAgLiAu L2NvbmYkJHN1YnMuc2ggfHwKLSsgICAgeyB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZXJy b3I6IGNvdWxkIG5vdCBtYWtlICRDT05GSUdfU1RBVFVTIiA+JjUKLSskYXNfZWNobyAiJGFzX21l OiBlcnJvcjogY291bGQgbm90IG1ha2UgJENPTkZJR19TVEFUVVMiID4mMjt9Ci0rICAgeyAoZXhp dCAxKTsgZXhpdCAxOyB9OyB9Ci0rCi0rICBhY19kZWxpbV9uPWBzZWQgLW4gInMvLiokYWNfZGVs aW1cJC9YL3AiIGNvbmYkJHN1YnMuYXdrIHwgZ3JlcCAtYyBYYAotKyAgaWYgdGVzdCAkYWNfZGVs aW1fbiA9ICRhY19kZWxpbV9udW07IHRoZW4KLSsgICAgYnJlYWsKLSsgIGVsaWYgJGFjX2xhc3Rf dHJ5OyB0aGVuCi0rICAgIHsgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBjb3Vs ZCBub3QgbWFrZSAkQ09ORklHX1NUQVRVUyIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6 IGNvdWxkIG5vdCBtYWtlICRDT05GSUdfU1RBVFVTIiA+JjI7fQotKyAgIHsgKGV4aXQgMSk7IGV4 aXQgMTsgfTsgfQotKyAgZWxzZQotKyAgICBhY19kZWxpbT0iJGFjX2RlbGltISRhY19kZWxpbSBf JGFjX2RlbGltISEgIgotKyAgZmkKLStkb25lCi0rcm0gLWYgY29uZiQkc3Vicy5zaAotKwotK2Nh dCA+PiRDT05GSUdfU1RBVFVTIDw8X0FDRU9GIHx8IGFjX3dyaXRlX2ZhaWw9MQotK2NhdCA+PiJc JHRtcC9zdWJzMS5hd2siIDw8XFxfQUNBV0sgJiYKLStfQUNFT0YKLStzZWQgLW4gJwotK2gKLStz L14vU1siLzsgcy8hLiovIl09LwotK3AKLStnCi0rcy9eW14hXSohLy8KLSs6cmVwbAotK3QgcmVw bAotK3MvJyIkYWNfZGVsaW0iJyQvLwotK3QgZGVsaW0KLSs6bmwKLStoCi0rcy9cKC5cezE0OFx9 XCkuKi9cMS8KLSt0IG1vcmUxCi0rcy9bIlxcXS9cXCYvZzsgcy9eLyIvOyBzLyQvXFxuIlxcLwot K3AKLStuCi0rYiByZXBsCi0rOm1vcmUxCi0rcy9bIlxcXS9cXCYvZzsgcy9eLyIvOyBzLyQvIlxc LwotK3AKLStnCi0rcy8uXHsxNDhcfS8vCi0rdCBubAotKzpkZWxpbQotK2gKLStzL1woLlx7MTQ4 XH1cKS4qL1wxLwotK3QgbW9yZTIKLStzL1siXFxdL1xcJi9nOyBzL14vIi87IHMvJC8iLwotK3AK LStiCi0rOm1vcmUyCi0rcy9bIlxcXS9cXCYvZzsgcy9eLyIvOyBzLyQvIlxcLwotK3AKLStnCi0r cy8uXHsxNDhcfS8vCi0rdCBkZWxpbQotKycgPGNvbmYkJHN1YnMuYXdrIHwgc2VkICcKLSsvXlte IiJdL3sKLSsgIE4KLSsgIHMvXG4vLwotK30KLSsnID4+JENPTkZJR19TVEFUVVMgfHwgYWNfd3Jp dGVfZmFpbD0xCi0rcm0gLWYgY29uZiQkc3Vicy5hd2sKLStjYXQgPj4kQ09ORklHX1NUQVRVUyA8 PF9BQ0VPRiB8fCBhY193cml0ZV9mYWlsPTEKLStfQUNBV0sKLStjYXQgPj4iXCR0bXAvc3ViczEu YXdrIiA8PF9BQ0FXSyAmJgotKyAgZm9yIChrZXkgaW4gUykgU19pc19zZXRba2V5XSA9IDEKLSsg IEZTID0gIgciCi0rCi0rfQotK3sKLSsgIGxpbmUgPSAkIDAKLSsgIG5maWVsZHMgPSBzcGxpdChs aW5lLCBmaWVsZCwgIkAiKQotKyAgc3Vic3RlZCA9IDAKLSsgIGxlbiA9IGxlbmd0aChmaWVsZFsx XSkKLSsgIGZvciAoaSA9IDI7IGkgPCBuZmllbGRzOyBpKyspIHsKLSsgICAga2V5ID0gZmllbGRb aV0KLSsgICAga2V5bGVuID0gbGVuZ3RoKGtleSkKLSsgICAgaWYgKFNfaXNfc2V0W2tleV0pIHsK LSsgICAgICB2YWx1ZSA9IFNba2V5XQotKyAgICAgIGxpbmUgPSBzdWJzdHIobGluZSwgMSwgbGVu KSAiIiB2YWx1ZSAiIiBzdWJzdHIobGluZSwgbGVuICsga2V5bGVuICsgMykKLSsgICAgICBsZW4g Kz0gbGVuZ3RoKHZhbHVlKSArIGxlbmd0aChmaWVsZFsrK2ldKQotKyAgICAgIHN1YnN0ZWQgPSAx Ci0rICAgIH0gZWxzZQotKyAgICAgIGxlbiArPSAxICsga2V5bGVuCi0rICB9Ci0rCi0rICBwcmlu dCBsaW5lCi0rfQotKwotK19BQ0FXSwotK19BQ0VPRgotK2NhdCA+PiRDT05GSUdfU1RBVFVTIDw8 XF9BQ0VPRiB8fCBhY193cml0ZV9mYWlsPTEKLStpZiBzZWQgInMvJGFjX2NyLy8iIDwgL2Rldi9u dWxsID4gL2Rldi9udWxsIDI+JjE7IHRoZW4KLSsgIHNlZCAicy8kYWNfY3JcJC8vOyBzLyRhY19j ci8kYWNfY3NfYXdrX2NyL2ciCi0rZWxzZQotKyAgY2F0Ci0rZmkgPCAiJHRtcC9zdWJzMS5hd2si ID4gIiR0bXAvc3Vicy5hd2siIFwKLSsgIHx8IHsgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86 IGVycm9yOiBjb3VsZCBub3Qgc2V0dXAgY29uZmlnIGZpbGVzIG1hY2hpbmVyeSIgPiY1Ci0rJGFz X2VjaG8gIiRhc19tZTogZXJyb3I6IGNvdWxkIG5vdCBzZXR1cCBjb25maWcgZmlsZXMgbWFjaGlu ZXJ5IiA+JjI7fQotKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQotK19BQ0VPRgotKwotKyMg VlBBVEggbWF5IGNhdXNlIHRyb3VibGUgd2l0aCBzb21lIG1ha2VzLCBzbyB3ZSByZW1vdmUgJChz cmNkaXIpLAotKyMgJHtzcmNkaXJ9IGFuZCBAc3JjZGlyQCBmcm9tIFZQQVRIIGlmIHNyY2RpciBp cyAiLiIsIHN0cmlwIGxlYWRpbmcgYW5kCi0rIyB0cmFpbGluZyBjb2xvbnMgYW5kIHRoZW4gcmVt b3ZlIHRoZSB3aG9sZSBsaW5lIGlmIFZQQVRIIGJlY29tZXMgZW1wdHkKLSsjIChhY3R1YWxseSB3 ZSBsZWF2ZSBhbiBlbXB0eSBsaW5lIHRvIHByZXNlcnZlIGxpbmUgbnVtYmVycykuCi0raWYgdGVz dCAieCRzcmNkaXIiID0geC47IHRoZW4KLSsgIGFjX3Zwc3ViPScvXlsJIF0qVlBBVEhbCSBdKj0v ewotK3MvOipcJChzcmNkaXIpOiovOi8KLStzLzoqXCR7c3JjZGlyfToqLzovCi0rcy86KkBzcmNk aXJAOiovOi8KLStzL15cKFtePV0qPVsJIF0qXCk6Ki9cMS8KLStzLzoqJC8vCi0rcy9eW149XSo9 WwkgXSokLy8KLSt9JwotK2ZpCi0rCi0rY2F0ID4+JENPTkZJR19TVEFUVVMgPDxcX0FDRU9GIHx8 IGFjX3dyaXRlX2ZhaWw9MQotK2ZpICMgdGVzdCAtbiAiJENPTkZJR19GSUxFUyIKLSsKLSsjIFNl dCB1cCB0aGUgc2NyaXB0cyBmb3IgQ09ORklHX0hFQURFUlMgc2VjdGlvbi4KLSsjIE5vIG5lZWQg dG8gZ2VuZXJhdGUgdGhlbSBpZiB0aGVyZSBhcmUgbm8gQ09ORklHX0hFQURFUlMuCi0rIyBUaGlz IGhhcHBlbnMgZm9yIGluc3RhbmNlIHdpdGggYC4vY29uZmlnLnN0YXR1cyBNYWtlZmlsZScuCi0r aWYgdGVzdCAtbiAiJENPTkZJR19IRUFERVJTIjsgdGhlbgotK2NhdCA+IiR0bXAvZGVmaW5lcy5h d2siIDw8XF9BQ0FXSyB8fAotK0JFR0lOIHsKLStfQUNFT0YKLSsKLSsjIFRyYW5zZm9ybSBjb25m ZGVmcy5oIGludG8gYW4gYXdrIHNjcmlwdCBgZGVmaW5lcy5hd2snLCBlbWJlZGRlZCBhcwotKyMg aGVyZS1kb2N1bWVudCBpbiBjb25maWcuc3RhdHVzLCB0aGF0IHN1YnN0aXR1dGVzIHRoZSBwcm9w ZXIgdmFsdWVzIGludG8KLSsjIGNvbmZpZy5oLmluIHRvIHByb2R1Y2UgY29uZmlnLmguCi0rCi0r IyBDcmVhdGUgYSBkZWxpbWl0ZXIgc3RyaW5nIHRoYXQgZG9lcyBub3QgZXhpc3QgaW4gY29uZmRl ZnMuaCwgdG8gZWFzZQotKyMgaGFuZGxpbmcgb2YgbG9uZyBsaW5lcy4KLSthY19kZWxpbT0nJSFf ISMgJwotK2ZvciBhY19sYXN0X3RyeSBpbiBmYWxzZSBmYWxzZSA6OyBkbwotKyAgYWNfdD1gc2Vk IC1uICIvJGFjX2RlbGltL3AiIGNvbmZkZWZzLmhgCi0rICBpZiB0ZXN0IC16ICIkYWNfdCI7IHRo ZW4KLSsgICAgYnJlYWsKLSsgIGVsaWYgJGFjX2xhc3RfdHJ5OyB0aGVuCi0rICAgIHsgeyAkYXNf ZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBjb3VsZCBub3QgbWFrZSAkQ09ORklHX0hFQURF UlMiID4mNQotKyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBjb3VsZCBub3QgbWFrZSAkQ09ORklH X0hFQURFUlMiID4mMjt9Ci0rICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9Ci0rICBlbHNlCi0r ICAgIGFjX2RlbGltPSIkYWNfZGVsaW0hJGFjX2RlbGltIF8kYWNfZGVsaW0hISAiCi0rICBmaQot K2RvbmUKLSsKLSsjIEZvciB0aGUgYXdrIHNjcmlwdCwgRCBpcyBhbiBhcnJheSBvZiBtYWNybyB2 YWx1ZXMga2V5ZWQgYnkgbmFtZSwKLSsjIGxpa2V3aXNlIFAgY29udGFpbnMgbWFjcm8gcGFyYW1l dGVycyBpZiBhbnkuICBQcmVzZXJ2ZSBiYWNrc2xhc2gKLSsjIG5ld2xpbmUgc2VxdWVuY2VzLgot KwotK2FjX3dvcmRfcmU9W18kYXNfY3JfTGV0dGVyc11bXyRhc19jcl9hbG51bV0qCi0rc2VkIC1u ICcKLStzLy5cezE0OFx9LyYnIiRhY19kZWxpbSInL2cKLSt0IHJzZXQKLSs6cnNldAotK3MvXlsJ IF0qI1sJIF0qZGVmaW5lWwkgXVsJIF0qLyAvCi0rdCBkZWYKLStkCi0rOmRlZgotK3MvXFwkLy8K LSt0IGJzbmwKLStzL1siXFxdL1xcJi9nCi0rcy9eIFwoJyIkYWNfd29yZF9yZSInXClcKChbXigp XSopXClbCSBdKlwoLipcKS9QWyJcMSJdPSJcMiJcCi0rRFsiXDEiXT0iIFwzIi9wCi0rcy9eIFwo JyIkYWNfd29yZF9yZSInXClbCSBdKlwoLipcKS9EWyJcMSJdPSIgXDIiL3AKLStkCi0rOmJzbmwK LStzL1siXFxdL1xcJi9nCi0rcy9eIFwoJyIkYWNfd29yZF9yZSInXClcKChbXigpXSopXClbCSBd KlwoLipcKS9QWyJcMSJdPSJcMiJcCi0rRFsiXDEiXT0iIFwzXFxcXFxcbiJcXC9wCi0rdCBjb250 Ci0rcy9eIFwoJyIkYWNfd29yZF9yZSInXClbCSBdKlwoLipcKS9EWyJcMSJdPSIgXDJcXFxcXFxu IlxcL3AKLSt0IGNvbnQKLStkCi0rOmNvbnQKLStuCi0rcy8uXHsxNDhcfS8mJyIkYWNfZGVsaW0i Jy9nCi0rdCBjbGVhcgotKzpjbGVhcgotK3MvXFwkLy8KLSt0IGJzbmxjCi0rcy9bIlxcXS9cXCYv Zzsgcy9eLyIvOyBzLyQvIi9wCi0rZAotKzpic25sYwotK3MvWyJcXF0vXFwmL2c7IHMvXi8iLzsg cy8kL1xcXFxcXG4iXFwvcAotK2IgY29udAotKycgPGNvbmZkZWZzLmggfCBzZWQgJwotK3MvJyIk YWNfZGVsaW0iJy8iXFxcCi0rIi9nJyA+PiRDT05GSUdfU1RBVFVTIHx8IGFjX3dyaXRlX2ZhaWw9 MQotKwotK2NhdCA+PiRDT05GSUdfU1RBVFVTIDw8X0FDRU9GIHx8IGFjX3dyaXRlX2ZhaWw9MQot KyAgZm9yIChrZXkgaW4gRCkgRF9pc19zZXRba2V5XSA9IDEKLSsgIEZTID0gIgciCi0rfQotKy9e W1x0IF0qI1tcdCBdKihkZWZpbmV8dW5kZWYpW1x0IF0rJGFjX3dvcmRfcmUoW1x0IChdfFwkKS8g ewotKyAgbGluZSA9IFwkIDAKLSsgIHNwbGl0KGxpbmUsIGFyZywgIiAiKQotKyAgaWYgKGFyZ1sx XSA9PSAiIyIpIHsKLSsgICAgZGVmdW5kZWYgPSBhcmdbMl0KLSsgICAgbWFjMSA9IGFyZ1szXQot KyAgfSBlbHNlIHsKLSsgICAgZGVmdW5kZWYgPSBzdWJzdHIoYXJnWzFdLCAyKQotKyAgICBtYWMx ID0gYXJnWzJdCi0rICB9Ci0rICBzcGxpdChtYWMxLCBtYWMyLCAiKCIpICMpCi0rICBtYWNybyA9 IG1hYzJbMV0KLSsgIHByZWZpeCA9IHN1YnN0cihsaW5lLCAxLCBpbmRleChsaW5lLCBkZWZ1bmRl ZikgLSAxKQotKyAgaWYgKERfaXNfc2V0W21hY3JvXSkgewotKyAgICAjIFByZXNlcnZlIHRoZSB3 aGl0ZSBzcGFjZSBzdXJyb3VuZGluZyB0aGUgIiMiLgotKyAgICBwcmludCBwcmVmaXggImRlZmlu ZSIsIG1hY3JvIFBbbWFjcm9dIERbbWFjcm9dCi0rICAgIG5leHQKLSsgIH0gZWxzZSB7Ci0rICAg ICMgUmVwbGFjZSAjdW5kZWYgd2l0aCBjb21tZW50cy4gIFRoaXMgaXMgbmVjZXNzYXJ5LCBmb3Ig ZXhhbXBsZSwKLSsgICAgIyBpbiB0aGUgY2FzZSBvZiBfUE9TSVhfU09VUkNFLCB3aGljaCBpcyBw cmVkZWZpbmVkIGFuZCByZXF1aXJlZAotKyAgICAjIG9uIHNvbWUgc3lzdGVtcyB3aGVyZSBjb25m aWd1cmUgd2lsbCBub3QgZGVjaWRlIHRvIGRlZmluZSBpdC4KLSsgICAgaWYgKGRlZnVuZGVmID09 ICJ1bmRlZiIpIHsKLSsgICAgICBwcmludCAiLyoiLCBwcmVmaXggZGVmdW5kZWYsIG1hY3JvLCAi Ki8iCi0rICAgICAgbmV4dAotKyAgICB9Ci0rICB9Ci0rfQotK3sgcHJpbnQgfQotK19BQ0FXSwot K19BQ0VPRgotK2NhdCA+PiRDT05GSUdfU1RBVFVTIDw8XF9BQ0VPRiB8fCBhY193cml0ZV9mYWls PTEKLSsgIHsgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBjb3VsZCBub3Qgc2V0 dXAgY29uZmlnIGhlYWRlcnMgbWFjaGluZXJ5IiA+JjUKLSskYXNfZWNobyAiJGFzX21lOiBlcnJv cjogY291bGQgbm90IHNldHVwIGNvbmZpZyBoZWFkZXJzIG1hY2hpbmVyeSIgPiYyO30KLSsgICB7 IChleGl0IDEpOyBleGl0IDE7IH07IH0KLStmaSAjIHRlc3QgLW4gIiRDT05GSUdfSEVBREVSUyIK LSsKLSsKLStldmFsIHNldCBYICIgIDpGICRDT05GSUdfRklMRVMgIDpIICRDT05GSUdfSEVBREVS UyAgICA6QyAkQ09ORklHX0NPTU1BTkRTIgotK3NoaWZ0Ci0rZm9yIGFjX3RhZwotK2RvCi0rICBj YXNlICRhY190YWcgaW4KLSsgIDpbRkhMQ10pIGFjX21vZGU9JGFjX3RhZzsgY29udGludWU7Owot KyAgZXNhYwotKyAgY2FzZSAkYWNfbW9kZSRhY190YWcgaW4KLSsgIDpbRkhMXSo6Kik7OwotKyAg OkwqIHwgOkMqOiopIHsgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBpbnZhbGlk IHRhZyAkYWNfdGFnIiA+JjUKLSskYXNfZWNobyAiJGFzX21lOiBlcnJvcjogaW52YWxpZCB0YWcg JGFjX3RhZyIgPiYyO30KLSsgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH07OwotKyAgOltGSF0t KSBhY190YWc9LTotOzsKLSsgIDpbRkhdKikgYWNfdGFnPSRhY190YWc6JGFjX3RhZy5pbjs7Ci0r ICBlc2FjCi0rICBhY19zYXZlX0lGUz0kSUZTCi0rICBJRlM9OgotKyAgc2V0IHggJGFjX3RhZwot KyAgSUZTPSRhY19zYXZlX0lGUwotKyAgc2hpZnQKLSsgIGFjX2ZpbGU9JDEKLSsgIHNoaWZ0Ci0r Ci0rICBjYXNlICRhY19tb2RlIGluCi0rICA6TCkgYWNfc291cmNlPSQxOzsKLSsgIDpbRkhdKQot KyAgICBhY19maWxlX2lucHV0cz0KLSsgICAgZm9yIGFjX2YKLSsgICAgZG8KLSsgICAgICBjYXNl ICRhY19mIGluCi0rICAgICAgLSkgYWNfZj0iJHRtcC9zdGRpbiI7OwotKyAgICAgICopICMgTG9v ayBmb3IgdGhlIGZpbGUgZmlyc3QgaW4gdGhlIGJ1aWxkIHRyZWUsIHRoZW4gaW4gdGhlIHNvdXJj ZSB0cmVlCi0rCSAjIChpZiB0aGUgcGF0aCBpcyBub3QgYWJzb2x1dGUpLiAgVGhlIGFic29sdXRl IHBhdGggY2Fubm90IGJlIERPUy1zdHlsZSwKLSsJICMgYmVjYXVzZSAkYWNfZiBjYW5ub3QgY29u dGFpbiBgOicuCi0rCSB0ZXN0IC1mICIkYWNfZiIgfHwKLSsJICAgY2FzZSAkYWNfZiBpbgotKwkg ICBbXFwvJF0qKSBmYWxzZTs7Ci0rCSAgICopIHRlc3QgLWYgIiRzcmNkaXIvJGFjX2YiICYmIGFj X2Y9IiRzcmNkaXIvJGFjX2YiOzsKLSsJICAgZXNhYyB8fAotKwkgICB7IHsgJGFzX2VjaG8gIiRh c19tZTokTElORU5POiBlcnJvcjogY2Fubm90IGZpbmQgaW5wdXQgZmlsZTogJGFjX2YiID4mNQot KyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBjYW5ub3QgZmluZCBpbnB1dCBmaWxlOiAkYWNfZiIg PiYyO30KLSsgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH07OwotKyAgICAgIGVzYWMKLSsgICAg ICBjYXNlICRhY19mIGluICpcJyopIGFjX2Y9YCRhc19lY2hvICIkYWNfZiIgfCBzZWQgInMvJy8n XFxcXFxcXFwnJy9nImA7OyBlc2FjCi0rICAgICAgYWNfZmlsZV9pbnB1dHM9IiRhY19maWxlX2lu cHV0cyAnJGFjX2YnIgotKyAgICBkb25lCi0rCi0rICAgICMgTGV0J3Mgc3RpbGwgcHJldGVuZCBp dCBpcyBgY29uZmlndXJlJyB3aGljaCBpbnN0YW50aWF0ZXMgKGkuZS4sIGRvbid0Ci0rICAgICMg dXNlICRhc19tZSksIHBlb3BsZSB3b3VsZCBiZSBzdXJwcmlzZWQgdG8gcmVhZDoKLSsgICAgIyAg ICAvKiBjb25maWcuaC4gIEdlbmVyYXRlZCBieSBjb25maWcuc3RhdHVzLiAgKi8KLSsgICAgY29u ZmlndXJlX2lucHV0PSdHZW5lcmF0ZWQgZnJvbSAnYAotKwkgICRhc19lY2hvICIkKiIgfCBzZWQg J3N8XlteOl0qL3x8O3N8OlteOl0qL3wsIHxnJwotKwlgJyBieSBjb25maWd1cmUuJwotKyAgICBp ZiB0ZXN0IHgiJGFjX2ZpbGUiICE9IHgtOyB0aGVuCi0rICAgICAgY29uZmlndXJlX2lucHV0PSIk YWNfZmlsZS4gICRjb25maWd1cmVfaW5wdXQiCi0rICAgICAgeyAkYXNfZWNobyAiJGFzX21lOiRM SU5FTk86IGNyZWF0aW5nICRhY19maWxlIiA+JjUKLSskYXNfZWNobyAiJGFzX21lOiBjcmVhdGlu ZyAkYWNfZmlsZSIgPiY2O30KLSsgICAgZmkKLSsgICAgIyBOZXV0cmFsaXplIHNwZWNpYWwgY2hh cmFjdGVycyBpbnRlcnByZXRlZCBieSBzZWQgaW4gcmVwbGFjZW1lbnQgc3RyaW5ncy4KLSsgICAg Y2FzZSAkY29uZmlndXJlX2lucHV0IGluICMoCi0rICAgICpcJiogfCAqXHwqIHwgKlxcKiApCi0r ICAgICAgIGFjX3NlZF9jb25mX2lucHV0PWAkYXNfZWNobyAiJGNvbmZpZ3VyZV9pbnB1dCIgfAot KyAgICAgICBzZWQgJ3MvW1xcXFwmfF0vXFxcXCYvZydgOzsgIygKLSsgICAgKikgYWNfc2VkX2Nv bmZfaW5wdXQ9JGNvbmZpZ3VyZV9pbnB1dDs7Ci0rICAgIGVzYWMKLSsKLSsgICAgY2FzZSAkYWNf dGFnIGluCi0rICAgICo6LToqIHwgKjotKSBjYXQgPiIkdG1wL3N0ZGluIiBcCi0rICAgICAgfHwg eyB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IGNvdWxkIG5vdCBjcmVhdGUgJGFj X2ZpbGUiID4mNQotKyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBjb3VsZCBub3QgY3JlYXRlICRh Y19maWxlIiA+JjI7fQotKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfSA7OwotKyAgICBlc2Fj Ci0rICAgIDs7Ci0rICBlc2FjCi0rCi0rICBhY19kaXI9YCRhc19kaXJuYW1lIC0tICIkYWNfZmls ZSIgfHwKLSskYXNfZXhwciBYIiRhY19maWxlIiA6ICdYXCguKlteL11cKS8vKlteL11bXi9dKi8q JCcgXHwgXAotKwkgWCIkYWNfZmlsZSIgOiAnWFwoLy9cKVteL10nIFx8IFwKLSsJIFgiJGFjX2Zp bGUiIDogJ1hcKC8vXCkkJyBcfCBcCi0rCSBYIiRhY19maWxlIiA6ICdYXCgvXCknIFx8IC4gMj4v ZGV2L251bGwgfHwKLSskYXNfZWNobyBYIiRhY19maWxlIiB8Ci0rICAgIHNlZCAnL15YXCguKlte L11cKVwvXC8qW14vXVteL10qXC8qJC97Ci0rCSAgICBzLy9cMS8KLSsJICAgIHEKLSsJICB9Ci0r CSAgL15YXChcL1wvXClbXi9dLiovewotKwkgICAgcy8vXDEvCi0rCSAgICBxCi0rCSAgfQotKwkg IC9eWFwoXC9cL1wpJC97Ci0rCSAgICBzLy9cMS8KLSsJICAgIHEKLSsJICB9Ci0rCSAgL15YXChc L1wpLiovewotKwkgICAgcy8vXDEvCi0rCSAgICBxCi0rCSAgfQotKwkgIHMvLiovLi87IHEnYAot KyAgeyBhc19kaXI9IiRhY19kaXIiCi0rICBjYXNlICRhc19kaXIgaW4gIygKLSsgIC0qKSBhc19k aXI9Li8kYXNfZGlyOzsKLSsgIGVzYWMKLSsgIHRlc3QgLWQgIiRhc19kaXIiIHx8IHsgJGFzX21r ZGlyX3AgJiYgbWtkaXIgLXAgIiRhc19kaXIiOyB9IHx8IHsKLSsgICAgYXNfZGlycz0KLSsgICAg d2hpbGUgOjsgZG8KLSsgICAgICBjYXNlICRhc19kaXIgaW4gIygKLSsgICAgICAqXCcqKSBhc19x ZGlyPWAkYXNfZWNobyAiJGFzX2RpciIgfCBzZWQgInMvJy8nXFxcXFxcXFwnJy9nImA7OyAjJygK LSsgICAgICAqKSBhc19xZGlyPSRhc19kaXI7OwotKyAgICAgIGVzYWMKLSsgICAgICBhc19kaXJz PSInJGFzX3FkaXInICRhc19kaXJzIgotKyAgICAgIGFzX2Rpcj1gJGFzX2Rpcm5hbWUgLS0gIiRh c19kaXIiIHx8Ci0rJGFzX2V4cHIgWCIkYXNfZGlyIiA6ICdYXCguKlteL11cKS8vKlteL11bXi9d Ki8qJCcgXHwgXAotKwkgWCIkYXNfZGlyIiA6ICdYXCgvL1wpW14vXScgXHwgXAotKwkgWCIkYXNf ZGlyIiA6ICdYXCgvL1wpJCcgXHwgXAotKwkgWCIkYXNfZGlyIiA6ICdYXCgvXCknIFx8IC4gMj4v ZGV2L251bGwgfHwKLSskYXNfZWNobyBYIiRhc19kaXIiIHwKLSsgICAgc2VkICcvXlhcKC4qW14v XVwpXC9cLypbXi9dW14vXSpcLyokL3sKLSsJICAgIHMvL1wxLwotKwkgICAgcQotKwkgIH0KLSsJ ICAvXlhcKFwvXC9cKVteL10uKi97Ci0rCSAgICBzLy9cMS8KLSsJICAgIHEKLSsJICB9Ci0rCSAg L15YXChcL1wvXCkkL3sKLSsJICAgIHMvL1wxLwotKwkgICAgcQotKwkgIH0KLSsJICAvXlhcKFwv XCkuKi97Ci0rCSAgICBzLy9cMS8KLSsJICAgIHEKLSsJICB9Ci0rCSAgcy8uKi8uLzsgcSdgCi0r ICAgICAgdGVzdCAtZCAiJGFzX2RpciIgJiYgYnJlYWsKLSsgICAgZG9uZQotKyAgICB0ZXN0IC16 ICIkYXNfZGlycyIgfHwgZXZhbCAibWtkaXIgJGFzX2RpcnMiCi0rICB9IHx8IHRlc3QgLWQgIiRh c19kaXIiIHx8IHsgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBjYW5ub3QgY3Jl YXRlIGRpcmVjdG9yeSAkYXNfZGlyIiA+JjUKLSskYXNfZWNobyAiJGFzX21lOiBlcnJvcjogY2Fu bm90IGNyZWF0ZSBkaXJlY3RvcnkgJGFzX2RpciIgPiYyO30KLSsgICB7IChleGl0IDEpOyBleGl0 IDE7IH07IH07IH0KLSsgIGFjX2J1aWxkZGlyPS4KLSsKLStjYXNlICIkYWNfZGlyIiBpbgotKy4p IGFjX2Rpcl9zdWZmaXg9IGFjX3RvcF9idWlsZGRpcl9zdWI9LiBhY190b3BfYnVpbGRfcHJlZml4 PSA7OwotKyopCi0rICBhY19kaXJfc3VmZml4PS9gJGFzX2VjaG8gIiRhY19kaXIiIHwgc2VkICdz fF5cLltcXC9dfHwnYAotKyAgIyBBICIuLiIgZm9yIGVhY2ggZGlyZWN0b3J5IGluICRhY19kaXJf c3VmZml4LgotKyAgYWNfdG9wX2J1aWxkZGlyX3N1Yj1gJGFzX2VjaG8gIiRhY19kaXJfc3VmZml4 IiB8IHNlZCAnc3wvW15cXC9dKnwvLi58ZztzfC98fCdgCi0rICBjYXNlICRhY190b3BfYnVpbGRk aXJfc3ViIGluCi0rICAiIikgYWNfdG9wX2J1aWxkZGlyX3N1Yj0uIGFjX3RvcF9idWlsZF9wcmVm aXg9IDs7Ci0rICAqKSAgYWNfdG9wX2J1aWxkX3ByZWZpeD0kYWNfdG9wX2J1aWxkZGlyX3N1Yi8g OzsKLSsgIGVzYWMgOzsKLStlc2FjCi0rYWNfYWJzX3RvcF9idWlsZGRpcj0kYWNfcHdkCi0rYWNf YWJzX2J1aWxkZGlyPSRhY19wd2QkYWNfZGlyX3N1ZmZpeAotKyMgZm9yIGJhY2t3YXJkIGNvbXBh dGliaWxpdHk6Ci0rYWNfdG9wX2J1aWxkZGlyPSRhY190b3BfYnVpbGRfcHJlZml4Ci0rCi0rY2Fz ZSAkc3JjZGlyIGluCi0rICAuKSAgIyBXZSBhcmUgYnVpbGRpbmcgaW4gcGxhY2UuCi0rICAgIGFj X3NyY2Rpcj0uCi0rICAgIGFjX3RvcF9zcmNkaXI9JGFjX3RvcF9idWlsZGRpcl9zdWIKLSsgICAg YWNfYWJzX3RvcF9zcmNkaXI9JGFjX3B3ZCA7OwotKyAgW1xcL10qIHwgPzpbXFwvXSogKSAgIyBB YnNvbHV0ZSBuYW1lLgotKyAgICBhY19zcmNkaXI9JHNyY2RpciRhY19kaXJfc3VmZml4OwotKyAg ICBhY190b3Bfc3JjZGlyPSRzcmNkaXIKLSsgICAgYWNfYWJzX3RvcF9zcmNkaXI9JHNyY2RpciA7 OwotKyAgKikgIyBSZWxhdGl2ZSBuYW1lLgotKyAgICBhY19zcmNkaXI9JGFjX3RvcF9idWlsZF9w cmVmaXgkc3JjZGlyJGFjX2Rpcl9zdWZmaXgKLSsgICAgYWNfdG9wX3NyY2Rpcj0kYWNfdG9wX2J1 aWxkX3ByZWZpeCRzcmNkaXIKLSsgICAgYWNfYWJzX3RvcF9zcmNkaXI9JGFjX3B3ZC8kc3JjZGly IDs7Ci0rZXNhYwotK2FjX2Fic19zcmNkaXI9JGFjX2Fic190b3Bfc3JjZGlyJGFjX2Rpcl9zdWZm aXgKLSsKLSsKLSsgIGNhc2UgJGFjX21vZGUgaW4KLSsgIDpGKQotKyAgIwotKyAgIyBDT05GSUdf RklMRQotKyAgIwotKwotKyAgY2FzZSAkSU5TVEFMTCBpbgotKyAgW1xcLyRdKiB8ID86W1xcL10q ICkgYWNfSU5TVEFMTD0kSU5TVEFMTCA7OwotKyAgKikgYWNfSU5TVEFMTD0kYWNfdG9wX2J1aWxk X3ByZWZpeCRJTlNUQUxMIDs7Ci0rICBlc2FjCi0rICBhY19NS0RJUl9QPSRNS0RJUl9QCi0rICBj YXNlICRNS0RJUl9QIGluCi0rICBbXFwvJF0qIHwgPzpbXFwvXSogKSA7OwotKyAgKi8qKSBhY19N S0RJUl9QPSRhY190b3BfYnVpbGRfcHJlZml4JE1LRElSX1AgOzsKLSsgIGVzYWMKLStfQUNFT0YK LSsKLStjYXQgPj4kQ09ORklHX1NUQVRVUyA8PFxfQUNFT0YgfHwgYWNfd3JpdGVfZmFpbD0xCi0r IyBJZiB0aGUgdGVtcGxhdGUgZG9lcyBub3Qga25vdyBhYm91dCBkYXRhcm9vdGRpciwgZXhwYW5k IGl0LgotKyMgRklYTUU6IFRoaXMgaGFjayBzaG91bGQgYmUgcmVtb3ZlZCBhIGZldyB5ZWFycyBh ZnRlciAyLjYwLgotK2FjX2RhdGFyb290ZGlyX2hhY2s9OyBhY19kYXRhcm9vdGRpcl9zZWVuPQot KwotK2FjX3NlZF9kYXRhcm9vdD0nCi0rL2RhdGFyb290ZGlyLyB7Ci0rICBwCi0rICBxCi0rfQot Ky9AZGF0YWRpckAvcAotKy9AZG9jZGlyQC9wCi0rL0BpbmZvZGlyQC9wCi0rL0Bsb2NhbGVkaXJA L3AKLSsvQG1hbmRpckAvcAotKycKLStjYXNlIGBldmFsICJzZWQgLW4gXCJcJGFjX3NlZF9kYXRh cm9vdFwiICRhY19maWxlX2lucHV0cyJgIGluCi0rKmRhdGFyb290ZGlyKikgYWNfZGF0YXJvb3Rk aXJfc2Vlbj15ZXM7OwotKypAZGF0YWRpckAqfCpAZG9jZGlyQCp8KkBpbmZvZGlyQCp8KkBsb2Nh bGVkaXJAKnwqQG1hbmRpckAqKQotKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5J Tkc6ICRhY19maWxlX2lucHV0cyBzZWVtcyB0byBpZ25vcmUgdGhlIC0tZGF0YXJvb3RkaXIgc2V0 dGluZyIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogV0FSTklORzogJGFjX2ZpbGVfaW5wdXRzIHNl ZW1zIHRvIGlnbm9yZSB0aGUgLS1kYXRhcm9vdGRpciBzZXR0aW5nIiA+JjI7fQotK19BQ0VPRgot K2NhdCA+PiRDT05GSUdfU1RBVFVTIDw8X0FDRU9GIHx8IGFjX3dyaXRlX2ZhaWw9MQotKyAgYWNf ZGF0YXJvb3RkaXJfaGFjaz0nCi0rICBzJkBkYXRhZGlyQCYkZGF0YWRpciZnCi0rICBzJkBkb2Nk aXJAJiRkb2NkaXImZwotKyAgcyZAaW5mb2RpckAmJGluZm9kaXImZwotKyAgcyZAbG9jYWxlZGly QCYkbG9jYWxlZGlyJmcKLSsgIHMmQG1hbmRpckAmJG1hbmRpciZnCi0rICAgIHMmXFxcJHtkYXRh cm9vdGRpcn0mJGRhdGFyb290ZGlyJmcnIDs7Ci0rZXNhYwotK19BQ0VPRgotKwotKyMgTmV1dHJh bGl6ZSBWUEFUSCB3aGVuIGAkc3JjZGlyJyA9IGAuJy4KLSsjIFNoZWxsIGNvZGUgaW4gY29uZmln dXJlLmFjIG1pZ2h0IHNldCBleHRyYXN1Yi4KLSsjIEZJWE1FOiBkbyB3ZSByZWFsbHkgd2FudCB0 byBtYWludGFpbiB0aGlzIGZlYXR1cmU/Ci0rY2F0ID4+JENPTkZJR19TVEFUVVMgPDxfQUNFT0Yg fHwgYWNfd3JpdGVfZmFpbD0xCi0rYWNfc2VkX2V4dHJhPSIkYWNfdnBzdWIKLSskZXh0cmFzdWIK LStfQUNFT0YKLStjYXQgPj4kQ09ORklHX1NUQVRVUyA8PFxfQUNFT0YgfHwgYWNfd3JpdGVfZmFp bD0xCi0rOnQKLSsvQFthLXpBLVpfXVthLXpBLVpfMC05XSpALyFiCi0rc3xAY29uZmlndXJlX2lu cHV0QHwkYWNfc2VkX2NvbmZfaW5wdXR8O3QgdAotK3MmQHRvcF9idWlsZGRpckAmJGFjX3RvcF9i dWlsZGRpcl9zdWImO3QgdAotK3MmQHRvcF9idWlsZF9wcmVmaXhAJiRhY190b3BfYnVpbGRfcHJl Zml4Jjt0IHQKLStzJkBzcmNkaXJAJiRhY19zcmNkaXImO3QgdAotK3MmQGFic19zcmNkaXJAJiRh Y19hYnNfc3JjZGlyJjt0IHQKLStzJkB0b3Bfc3JjZGlyQCYkYWNfdG9wX3NyY2RpciY7dCB0Ci0r cyZAYWJzX3RvcF9zcmNkaXJAJiRhY19hYnNfdG9wX3NyY2RpciY7dCB0Ci0rcyZAYnVpbGRkaXJA JiRhY19idWlsZGRpciY7dCB0Ci0rcyZAYWJzX2J1aWxkZGlyQCYkYWNfYWJzX2J1aWxkZGlyJjt0 IHQKLStzJkBhYnNfdG9wX2J1aWxkZGlyQCYkYWNfYWJzX3RvcF9idWlsZGRpciY7dCB0Ci0rcyZA SU5TVEFMTEAmJGFjX0lOU1RBTEwmO3QgdAotK3MmQE1LRElSX1BAJiRhY19NS0RJUl9QJjt0IHQK LSskYWNfZGF0YXJvb3RkaXJfaGFjawotKyIKLStldmFsIHNlZCBcIlwkYWNfc2VkX2V4dHJhXCIg IiRhY19maWxlX2lucHV0cyIgfCAkQVdLIC1mICIkdG1wL3N1YnMuYXdrIiA+JHRtcC9vdXQgXAot KyAgfHwgeyB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IGNvdWxkIG5vdCBjcmVh dGUgJGFjX2ZpbGUiID4mNQotKyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBjb3VsZCBub3QgY3Jl YXRlICRhY19maWxlIiA+JjI7fQotKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQotKwotK3Rl c3QgLXogIiRhY19kYXRhcm9vdGRpcl9oYWNrJGFjX2RhdGFyb290ZGlyX3NlZW4iICYmCi0rICB7 IGFjX291dD1gc2VkIC1uICcvXCR7ZGF0YXJvb3RkaXJ9L3AnICIkdG1wL291dCJgOyB0ZXN0IC1u ICIkYWNfb3V0IjsgfSAmJgotKyAgeyBhY19vdXQ9YHNlZCAtbiAnL15bCSBdKmRhdGFyb290ZGly WwkgXSo6Kj0vcCcgIiR0bXAvb3V0ImA7IHRlc3QgLXogIiRhY19vdXQiOyB9ICYmCi0rICB7ICRh c19lY2hvICIkYXNfbWU6JExJTkVOTzogV0FSTklORzogJGFjX2ZpbGUgY29udGFpbnMgYSByZWZl cmVuY2UgdG8gdGhlIHZhcmlhYmxlIFxgZGF0YXJvb3RkaXInCi0rd2hpY2ggc2VlbXMgdG8gYmUg dW5kZWZpbmVkLiAgUGxlYXNlIG1ha2Ugc3VyZSBpdCBpcyBkZWZpbmVkLiIgPiY1Ci0rJGFzX2Vj aG8gIiRhc19tZTogV0FSTklORzogJGFjX2ZpbGUgY29udGFpbnMgYSByZWZlcmVuY2UgdG8gdGhl IHZhcmlhYmxlIFxgZGF0YXJvb3RkaXInCi0rd2hpY2ggc2VlbXMgdG8gYmUgdW5kZWZpbmVkLiAg UGxlYXNlIG1ha2Ugc3VyZSBpdCBpcyBkZWZpbmVkLiIgPiYyO30KLSsKLSsgIHJtIC1mICIkdG1w L3N0ZGluIgotKyAgY2FzZSAkYWNfZmlsZSBpbgotKyAgLSkgY2F0ICIkdG1wL291dCIgJiYgcm0g LWYgIiR0bXAvb3V0Ijs7Ci0rICAqKSBybSAtZiAiJGFjX2ZpbGUiICYmIG12ICIkdG1wL291dCIg IiRhY19maWxlIjs7Ci0rICBlc2FjIFwKLSsgIHx8IHsgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5F Tk86IGVycm9yOiBjb3VsZCBub3QgY3JlYXRlICRhY19maWxlIiA+JjUKLSskYXNfZWNobyAiJGFz X21lOiBlcnJvcjogY291bGQgbm90IGNyZWF0ZSAkYWNfZmlsZSIgPiYyO30KLSsgICB7IChleGl0 IDEpOyBleGl0IDE7IH07IH0KLSsgOzsKLSsgIDpIKQotKyAgIwotKyAgIyBDT05GSUdfSEVBREVS Ci0rICAjCi0rICBpZiB0ZXN0IHgiJGFjX2ZpbGUiICE9IHgtOyB0aGVuCi0rICAgIHsKLSsgICAg ICAkYXNfZWNobyAiLyogJGNvbmZpZ3VyZV9pbnB1dCAgKi8iIFwKLSsgICAgICAmJiBldmFsICck QVdLIC1mICIkdG1wL2RlZmluZXMuYXdrIicgIiRhY19maWxlX2lucHV0cyIKLSsgICAgfSA+IiR0 bXAvY29uZmlnLmgiIFwKLSsgICAgICB8fCB7IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBl cnJvcjogY291bGQgbm90IGNyZWF0ZSAkYWNfZmlsZSIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTog ZXJyb3I6IGNvdWxkIG5vdCBjcmVhdGUgJGFjX2ZpbGUiID4mMjt9Ci0rICAgeyAoZXhpdCAxKTsg ZXhpdCAxOyB9OyB9Ci0rICAgIGlmIGRpZmYgIiRhY19maWxlIiAiJHRtcC9jb25maWcuaCIgPi9k ZXYvbnVsbCAyPiYxOyB0aGVuCi0rICAgICAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86ICRh Y19maWxlIGlzIHVuY2hhbmdlZCIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogJGFjX2ZpbGUgaXMg dW5jaGFuZ2VkIiA+JjY7fQotKyAgICBlbHNlCi0rICAgICAgcm0gLWYgIiRhY19maWxlIgotKyAg ICAgIG12ICIkdG1wL2NvbmZpZy5oIiAiJGFjX2ZpbGUiIFwKLSsJfHwgeyB7ICRhc19lY2hvICIk YXNfbWU6JExJTkVOTzogZXJyb3I6IGNvdWxkIG5vdCBjcmVhdGUgJGFjX2ZpbGUiID4mNQotKyRh c19lY2hvICIkYXNfbWU6IGVycm9yOiBjb3VsZCBub3QgY3JlYXRlICRhY19maWxlIiA+JjI7fQot KyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQotKyAgICBmaQotKyAgZWxzZQotKyAgICAkYXNf ZWNobyAiLyogJGNvbmZpZ3VyZV9pbnB1dCAgKi8iIFwKLSsgICAgICAmJiBldmFsICckQVdLIC1m ICIkdG1wL2RlZmluZXMuYXdrIicgIiRhY19maWxlX2lucHV0cyIgXAotKyAgICAgIHx8IHsgeyAk YXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBjb3VsZCBub3QgY3JlYXRlIC0iID4mNQot KyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBjb3VsZCBub3QgY3JlYXRlIC0iID4mMjt9Ci0rICAg eyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9Ci0rICBmaQotKyMgQ29tcHV0ZSAiJGFjX2ZpbGUiJ3Mg aW5kZXggaW4gJGNvbmZpZ19oZWFkZXJzLgotK19hbV9hcmc9IiRhY19maWxlIgotK19hbV9zdGFt cF9jb3VudD0xCi0rZm9yIF9hbV9oZWFkZXIgaW4gJGNvbmZpZ19oZWFkZXJzIDo7IGRvCi0rICBj YXNlICRfYW1faGVhZGVyIGluCi0rICAgICRfYW1fYXJnIHwgJF9hbV9hcmc6KiApCi0rICAgICAg YnJlYWsgOzsKLSsgICAgKiApCi0rICAgICAgX2FtX3N0YW1wX2NvdW50PWBleHByICRfYW1fc3Rh bXBfY291bnQgKyAxYCA7OwotKyAgZXNhYwotK2RvbmUKLStlY2hvICJ0aW1lc3RhbXAgZm9yICRf YW1fYXJnIiA+YCRhc19kaXJuYW1lIC0tICIkX2FtX2FyZyIgfHwKLSskYXNfZXhwciBYIiRfYW1f YXJnIiA6ICdYXCguKlteL11cKS8vKlteL11bXi9dKi8qJCcgXHwgXAotKwkgWCIkX2FtX2FyZyIg OiAnWFwoLy9cKVteL10nIFx8IFwKLSsJIFgiJF9hbV9hcmciIDogJ1hcKC8vXCkkJyBcfCBcCi0r CSBYIiRfYW1fYXJnIiA6ICdYXCgvXCknIFx8IC4gMj4vZGV2L251bGwgfHwKLSskYXNfZWNobyBY IiRfYW1fYXJnIiB8Ci0rICAgIHNlZCAnL15YXCguKlteL11cKVwvXC8qW14vXVteL10qXC8qJC97 Ci0rCSAgICBzLy9cMS8KLSsJICAgIHEKLSsJICB9Ci0rCSAgL15YXChcL1wvXClbXi9dLiovewot KwkgICAgcy8vXDEvCi0rCSAgICBxCi0rCSAgfQotKwkgIC9eWFwoXC9cL1wpJC97Ci0rCSAgICBz Ly9cMS8KLSsJICAgIHEKLSsJICB9Ci0rCSAgL15YXChcL1wpLiovewotKwkgICAgcy8vXDEvCi0r CSAgICBxCi0rCSAgfQotKwkgIHMvLiovLi87IHEnYC9zdGFtcC1oJF9hbV9zdGFtcF9jb3VudAot KyA7OwotKwotKyAgOkMpICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZXhlY3V0aW5nICRh Y19maWxlIGNvbW1hbmRzIiA+JjUKLSskYXNfZWNobyAiJGFzX21lOiBleGVjdXRpbmcgJGFjX2Zp bGUgY29tbWFuZHMiID4mNjt9Ci0rIDs7Ci0rICBlc2FjCi0rCi0rCi0rICBjYXNlICRhY19maWxl JGFjX21vZGUgaW4KLSsgICAgImRlcGZpbGVzIjpDKSB0ZXN0IHgiJEFNREVQX1RSVUUiICE9IHgi IiB8fCAjIEF1dG9jb25mIDIuNjIgcXVvdGVzIC0tZmlsZSBhcmd1bWVudHMgZm9yIGV2YWwsIGJ1 dCBub3Qgd2hlbiBmaWxlcwotKyMgYXJlIGxpc3RlZCB3aXRob3V0IC0tZmlsZS4gIExldCdzIHBs YXkgc2FmZSBhbmQgb25seSBlbmFibGUgdGhlIGV2YWwKLSsjIGlmIHdlIGRldGVjdCB0aGUgcXVv dGluZy4KLStjYXNlICRDT05GSUdfRklMRVMgaW4KLSsqXCcqKSBldmFsIHNldCB4ICIkQ09ORklH X0ZJTEVTIiA7OwotKyopICAgc2V0IHggJENPTkZJR19GSUxFUyA7OwotK2VzYWMKLStzaGlmdAot K2ZvciBtZgotK2RvCi0rICAjIFN0cmlwIE1GIHNvIHdlIGVuZCB1cCB3aXRoIHRoZSBuYW1lIG9m IHRoZSBmaWxlLgotKyAgbWY9YGVjaG8gIiRtZiIgfCBzZWQgLWUgJ3MvOi4qJC8vJ2AKLSsgICMg Q2hlY2sgd2hldGhlciB0aGlzIGlzIGFuIEF1dG9tYWtlIGdlbmVyYXRlZCBNYWtlZmlsZSBvciBu b3QuCi0rICAjIFdlIHVzZWQgdG8gbWF0Y2ggb25seSB0aGUgZmlsZXMgbmFtZWQgYE1ha2VmaWxl LmluJywgYnV0Ci0rICAjIHNvbWUgcGVvcGxlIHJlbmFtZSB0aGVtOyBzbyBpbnN0ZWFkIHdlIGxv b2sgYXQgdGhlIGZpbGUgY29udGVudC4KLSsgICMgR3JlcCdpbmcgdGhlIGZpcnN0IGxpbmUgaXMg bm90IGVub3VnaDogc29tZSBwZW9wbGUgcG9zdC1wcm9jZXNzCi0rICAjIGVhY2ggTWFrZWZpbGUu aW4gYW5kIGFkZCBhIG5ldyBsaW5lIG9uIHRvcCBvZiBlYWNoIGZpbGUgdG8gc2F5IHNvLgotKyAg IyBHcmVwJ2luZyB0aGUgd2hvbGUgZmlsZSBpcyBub3QgZ29vZCBlaXRoZXI6IEFJWCBncmVwIGhh cyBhIGxpbmUKLSsgICMgbGltaXQgb2YgMjA0OCwgYnV0IGFsbCBzZWQncyB3ZSBrbm93IGhhdmUg dW5kZXJzdGFuZCBhdCBsZWFzdCA0MDAwLgotKyAgaWYgc2VkIC1uICdzLF4jLipnZW5lcmF0ZWQg YnkgYXV0b21ha2UuKixYLHAnICIkbWYiIHwgZ3JlcCBYID4vZGV2L251bGwgMj4mMTsgdGhlbgot KyAgICBkaXJwYXJ0PWAkYXNfZGlybmFtZSAtLSAiJG1mIiB8fAotKyRhc19leHByIFgiJG1mIiA6 ICdYXCguKlteL11cKS8vKlteL11bXi9dKi8qJCcgXHwgXAotKwkgWCIkbWYiIDogJ1hcKC8vXClb Xi9dJyBcfCBcCi0rCSBYIiRtZiIgOiAnWFwoLy9cKSQnIFx8IFwKLSsJIFgiJG1mIiA6ICdYXCgv XCknIFx8IC4gMj4vZGV2L251bGwgfHwKLSskYXNfZWNobyBYIiRtZiIgfAotKyAgICBzZWQgJy9e WFwoLipbXi9dXClcL1wvKlteL11bXi9dKlwvKiQvewotKwkgICAgcy8vXDEvCi0rCSAgICBxCi0r CSAgfQotKwkgIC9eWFwoXC9cL1wpW14vXS4qL3sKLSsJICAgIHMvL1wxLwotKwkgICAgcQotKwkg IH0KLSsJICAvXlhcKFwvXC9cKSQvewotKwkgICAgcy8vXDEvCi0rCSAgICBxCi0rCSAgfQotKwkg IC9eWFwoXC9cKS4qL3sKLSsJICAgIHMvL1wxLwotKwkgICAgcQotKwkgIH0KLSsJICBzLy4qLy4v OyBxJ2AKLSsgIGVsc2UKLSsgICAgY29udGludWUKLSsgIGZpCi0rICAjIEV4dHJhY3QgdGhlIGRl ZmluaXRpb24gb2YgREVQRElSLCBhbV9faW5jbHVkZSwgYW5kIGFtX19xdW90ZQotKyAgIyBmcm9t IHRoZSBNYWtlZmlsZSB3aXRob3V0IHJ1bm5pbmcgYG1ha2UnLgotKyAgREVQRElSPWBzZWQgLW4g J3MvXkRFUERJUiA9IC8vcCcgPCAiJG1mImAKLSsgIHRlc3QgLXogIiRERVBESVIiICYmIGNvbnRp bnVlCi0rICBhbV9faW5jbHVkZT1gc2VkIC1uICdzL15hbV9faW5jbHVkZSA9IC8vcCcgPCAiJG1m ImAKLSsgIHRlc3QgLXogImFtX19pbmNsdWRlIiAmJiBjb250aW51ZQotKyAgYW1fX3F1b3RlPWBz ZWQgLW4gJ3MvXmFtX19xdW90ZSA9IC8vcCcgPCAiJG1mImAKLSsgICMgV2hlbiB1c2luZyBhbnNp MmtuciwgVSBtYXkgYmUgZW1wdHkgb3IgYW4gdW5kZXJzY29yZTsgZXhwYW5kIGl0Ci0rICBVPWBz ZWQgLW4gJ3MvXlUgPSAvL3AnIDwgIiRtZiJgCi0rICAjIEZpbmQgYWxsIGRlcGVuZGVuY3kgb3V0 cHV0IGZpbGVzLCB0aGV5IGFyZSBpbmNsdWRlZCBmaWxlcyB3aXRoCi0rICAjICQoREVQRElSKSBp biB0aGVpciBuYW1lcy4gIFdlIGludm9rZSBzZWQgdHdpY2UgYmVjYXVzZSBpdCBpcyB0aGUKLSsg ICMgc2ltcGxlc3QgYXBwcm9hY2ggdG8gY2hhbmdpbmcgJChERVBESVIpIHRvIGl0cyBhY3R1YWwg dmFsdWUgaW4gdGhlCi0rICAjIGV4cGFuc2lvbi4KLSsgIGZvciBmaWxlIGluIGBzZWQgLW4gIgot KyAgICBzL14kYW1fX2luY2x1ZGUgJGFtX19xdW90ZVwoLiooREVQRElSKS4qXCkkYW1fX3F1b3Rl IickL1wxL3AnIDwiJG1mIiB8IFwKLSsgICAgICAgc2VkIC1lICdzL1wkKERFUERJUikvJyIkREVQ RElSIicvZycgLWUgJ3MvXCRVLyciJFUiJy9nJ2A7IGRvCi0rICAgICMgTWFrZSBzdXJlIHRoZSBk aXJlY3RvcnkgZXhpc3RzLgotKyAgICB0ZXN0IC1mICIkZGlycGFydC8kZmlsZSIgJiYgY29udGlu dWUKLSsgICAgZmRpcj1gJGFzX2Rpcm5hbWUgLS0gIiRmaWxlIiB8fAotKyRhc19leHByIFgiJGZp bGUiIDogJ1hcKC4qW14vXVwpLy8qW14vXVteL10qLyokJyBcfCBcCi0rCSBYIiRmaWxlIiA6ICdY XCgvL1wpW14vXScgXHwgXAotKwkgWCIkZmlsZSIgOiAnWFwoLy9cKSQnIFx8IFwKLSsJIFgiJGZp bGUiIDogJ1hcKC9cKScgXHwgLiAyPi9kZXYvbnVsbCB8fAotKyRhc19lY2hvIFgiJGZpbGUiIHwK LSsgICAgc2VkICcvXlhcKC4qW14vXVwpXC9cLypbXi9dW14vXSpcLyokL3sKLSsJICAgIHMvL1wx LwotKwkgICAgcQotKwkgIH0KLSsJICAvXlhcKFwvXC9cKVteL10uKi97Ci0rCSAgICBzLy9cMS8K LSsJICAgIHEKLSsJICB9Ci0rCSAgL15YXChcL1wvXCkkL3sKLSsJICAgIHMvL1wxLwotKwkgICAg cQotKwkgIH0KLSsJICAvXlhcKFwvXCkuKi97Ci0rCSAgICBzLy9cMS8KLSsJICAgIHEKLSsJICB9 Ci0rCSAgcy8uKi8uLzsgcSdgCi0rICAgIHsgYXNfZGlyPSRkaXJwYXJ0LyRmZGlyCi0rICBjYXNl ICRhc19kaXIgaW4gIygKLSsgIC0qKSBhc19kaXI9Li8kYXNfZGlyOzsKLSsgIGVzYWMKLSsgIHRl c3QgLWQgIiRhc19kaXIiIHx8IHsgJGFzX21rZGlyX3AgJiYgbWtkaXIgLXAgIiRhc19kaXIiOyB9 IHx8IHsKLSsgICAgYXNfZGlycz0KLSsgICAgd2hpbGUgOjsgZG8KLSsgICAgICBjYXNlICRhc19k aXIgaW4gIygKLSsgICAgICAqXCcqKSBhc19xZGlyPWAkYXNfZWNobyAiJGFzX2RpciIgfCBzZWQg InMvJy8nXFxcXFxcXFwnJy9nImA7OyAjJygKLSsgICAgICAqKSBhc19xZGlyPSRhc19kaXI7Owot KyAgICAgIGVzYWMKLSsgICAgICBhc19kaXJzPSInJGFzX3FkaXInICRhc19kaXJzIgotKyAgICAg IGFzX2Rpcj1gJGFzX2Rpcm5hbWUgLS0gIiRhc19kaXIiIHx8Ci0rJGFzX2V4cHIgWCIkYXNfZGly IiA6ICdYXCguKlteL11cKS8vKlteL11bXi9dKi8qJCcgXHwgXAotKwkgWCIkYXNfZGlyIiA6ICdY XCgvL1wpW14vXScgXHwgXAotKwkgWCIkYXNfZGlyIiA6ICdYXCgvL1wpJCcgXHwgXAotKwkgWCIk YXNfZGlyIiA6ICdYXCgvXCknIFx8IC4gMj4vZGV2L251bGwgfHwKLSskYXNfZWNobyBYIiRhc19k aXIiIHwKLSsgICAgc2VkICcvXlhcKC4qW14vXVwpXC9cLypbXi9dW14vXSpcLyokL3sKLSsJICAg IHMvL1wxLwotKwkgICAgcQotKwkgIH0KLSsJICAvXlhcKFwvXC9cKVteL10uKi97Ci0rCSAgICBz Ly9cMS8KLSsJICAgIHEKLSsJICB9Ci0rCSAgL15YXChcL1wvXCkkL3sKLSsJICAgIHMvL1wxLwot KwkgICAgcQotKwkgIH0KLSsJICAvXlhcKFwvXCkuKi97Ci0rCSAgICBzLy9cMS8KLSsJICAgIHEK LSsJICB9Ci0rCSAgcy8uKi8uLzsgcSdgCi0rICAgICAgdGVzdCAtZCAiJGFzX2RpciIgJiYgYnJl YWsKLSsgICAgZG9uZQotKyAgICB0ZXN0IC16ICIkYXNfZGlycyIgfHwgZXZhbCAibWtkaXIgJGFz X2RpcnMiCi0rICB9IHx8IHRlc3QgLWQgIiRhc19kaXIiIHx8IHsgeyAkYXNfZWNobyAiJGFzX21l OiRMSU5FTk86IGVycm9yOiBjYW5ub3QgY3JlYXRlIGRpcmVjdG9yeSAkYXNfZGlyIiA+JjUKLSsk YXNfZWNobyAiJGFzX21lOiBlcnJvcjogY2Fubm90IGNyZWF0ZSBkaXJlY3RvcnkgJGFzX2RpciIg PiYyO30KLSsgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH07IH0KLSsgICAgIyBlY2hvICJjcmVh dGluZyAkZGlycGFydC8kZmlsZSIKLSsgICAgZWNobyAnIyBkdW1teScgPiAiJGRpcnBhcnQvJGZp bGUiCi0rICBkb25lCi0rZG9uZQotKyA7OwotKyAgICAibGlidG9vbCI6QykKLSsKLSsgICAgIyBT ZWUgaWYgd2UgYXJlIHJ1bm5pbmcgb24genNoLCBhbmQgc2V0IHRoZSBvcHRpb25zIHdoaWNoIGFs bG93IG91cgotKyAgICAjIGNvbW1hbmRzIHRocm91Z2ggd2l0aG91dCByZW1vdmFsIG9mIFwgZXNj YXBlcy4KLSsgICAgaWYgdGVzdCAtbiAiJHtaU0hfVkVSU0lPTitzZXR9IiA7IHRoZW4KLSsgICAg ICBzZXRvcHQgTk9fR0xPQl9TVUJTVAotKyAgICBmaQotKwotKyAgICBjZmdmaWxlPSIke29maWxl fVQiCi0rICAgIHRyYXAgIiRSTSBcIiRjZmdmaWxlXCI7IGV4aXQgMSIgMSAyIDE1Ci0rICAgICRS TSAiJGNmZ2ZpbGUiCi0rCi0rICAgIGNhdCA8PF9MVF9FT0YgPj4gIiRjZmdmaWxlIgotKyMhICRT SEVMTAotKwotKyMgYCRFQ0hPICIkb2ZpbGUiIHwgc2VkICdzJV4uKi8lJSdgIC0gUHJvdmlkZSBn ZW5lcmFsaXplZCBsaWJyYXJ5LWJ1aWxkaW5nIHN1cHBvcnQgc2VydmljZXMuCi0rIyBHZW5lcmF0 ZWQgYXV0b21hdGljYWxseSBieSAkYXNfbWUgKCRQQUNLQUdFJFRJTUVTVEFNUCkgJFZFUlNJT04K LSsjIExpYnRvb2wgd2FzIGNvbmZpZ3VyZWQgb24gaG9zdCBgKGhvc3RuYW1lIHx8IHVuYW1lIC1u KSAyPi9kZXYvbnVsbCB8IHNlZCAxcWA6Ci0rIyBOT1RFOiBDaGFuZ2VzIG1hZGUgdG8gdGhpcyBm aWxlIHdpbGwgYmUgbG9zdDogbG9vayBhdCBsdG1haW4uc2guCi0rIwotKyMgICBDb3B5cmlnaHQg KEMpIDE5OTYsIDE5OTcsIDE5OTgsIDE5OTksIDIwMDAsIDIwMDEsIDIwMDMsIDIwMDQsIDIwMDUs Ci0rIyAgICAgICAgICAgICAgICAgMjAwNiwgMjAwNywgMjAwOCBGcmVlIFNvZnR3YXJlIEZvdW5k YXRpb24sIEluYy4KLSsjICAgV3JpdHRlbiBieSBHb3Jkb24gTWF0emlna2VpdCwgMTk5NgotKyMK LSsjICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgR05VIExpYnRvb2wuCi0rIwotKyMgR05VIExpYnRv b2wgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0rIyBt b2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5z ZSBhcwotKyMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhl ciB2ZXJzaW9uIDIgb2YKLSsjIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBs YXRlciB2ZXJzaW9uLgotKyMKLSsjIEFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdOVSBH ZW5lcmFsIFB1YmxpYyBMaWNlbnNlLAotKyMgaWYgeW91IGRpc3RyaWJ1dGUgdGhpcyBmaWxlIGFz IHBhcnQgb2YgYSBwcm9ncmFtIG9yIGxpYnJhcnkgdGhhdAotKyMgaXMgYnVpbHQgdXNpbmcgR05V IExpYnRvb2wsIHlvdSBtYXkgaW5jbHVkZSB0aGlzIGZpbGUgdW5kZXIgdGhlCi0rIyBzYW1lIGRp c3RyaWJ1dGlvbiB0ZXJtcyB0aGF0IHlvdSB1c2UgZm9yIHRoZSByZXN0IG9mIHRoYXQgcHJvZ3Jh bS4KLSsjCi0rIyBHTlUgTGlidG9vbCBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0 IHdpbGwgYmUgdXNlZnVsLAotKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2 ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSsjIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNT IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKLSsjIEdOVSBHZW5lcmFsIFB1Ymxp YyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0rIwotKyMgWW91IHNob3VsZCBoYXZlIHJlY2Vp dmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSsjIGFsb25nIHdp dGggR05VIExpYnRvb2w7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLiAgSWYgbm90LCBhIGNvcHkKLSsj IGNhbiBiZSBkb3dubG9hZGVkIGZyb20gaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC5o dG1sLCBvcgotKyMgb2J0YWluZWQgYnkgd3JpdGluZyB0byB0aGUgRnJlZSBTb2Z0d2FyZSBGb3Vu ZGF0aW9uLCBJbmMuLAotKyMgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9u LCBNQSAwMjExMC0xMzAxLCBVU0EuCi0rCi0rCi0rIyBUaGUgbmFtZXMgb2YgdGhlIHRhZ2dlZCBj b25maWd1cmF0aW9ucyBzdXBwb3J0ZWQgYnkgdGhpcyBzY3JpcHQuCi0rYXZhaWxhYmxlX3RhZ3M9 IkNYWCAiCi0rCi0rIyAjIyMgQkVHSU4gTElCVE9PTCBDT05GSUcKLSsKLSsjIFdoZXRoZXIgb3Ig bm90IHRvIGJ1aWxkIHNoYXJlZCBsaWJyYXJpZXMuCi0rYnVpbGRfbGlidG9vbF9saWJzPSRlbmFi bGVfc2hhcmVkCi0rCi0rIyBXaGV0aGVyIG9yIG5vdCB0byBidWlsZCBzdGF0aWMgbGlicmFyaWVz LgotK2J1aWxkX29sZF9saWJzPSRlbmFibGVfc3RhdGljCi0rCi0rIyBXaGljaCByZWxlYXNlIG9m IGxpYnRvb2wubTQgd2FzIHVzZWQ/Ci0rbWFjcm9fdmVyc2lvbj0kbWFjcm9fdmVyc2lvbgotK21h Y3JvX3JldmlzaW9uPSRtYWNyb19yZXZpc2lvbgotKwotKyMgV2hhdCB0eXBlIG9mIG9iamVjdHMg dG8gYnVpbGQuCi0rcGljX21vZGU9JHBpY19tb2RlCi0rCi0rIyBXaGV0aGVyIG9yIG5vdCB0byBv cHRpbWl6ZSBmb3IgZmFzdCBpbnN0YWxsYXRpb24uCi0rZmFzdF9pbnN0YWxsPSRlbmFibGVfZmFz dF9pbnN0YWxsCi0rCi0rIyBUaGUgaG9zdCBzeXN0ZW0uCi0raG9zdF9hbGlhcz0kaG9zdF9hbGlh cwotK2hvc3Q9JGhvc3QKLStob3N0X29zPSRob3N0X29zCi0rCi0rIyBUaGUgYnVpbGQgc3lzdGVt LgotK2J1aWxkX2FsaWFzPSRidWlsZF9hbGlhcwotK2J1aWxkPSRidWlsZAotK2J1aWxkX29zPSRi dWlsZF9vcwotKwotKyMgQSBzZWQgcHJvZ3JhbSB0aGF0IGRvZXMgbm90IHRydW5jYXRlIG91dHB1 dC4KLStTRUQ9JGx0X1NFRAotKwotKyMgU2VkIHRoYXQgaGVscHMgdXMgYXZvaWQgYWNjaWRlbnRh bGx5IHRyaWdnZXJpbmcgZWNobygxKSBvcHRpb25zIGxpa2UgLW4uCi0rWHNlZD0iXCRTRUQgLWUg MXMvXlgvLyIKLSsKLSsjIEEgZ3JlcCBwcm9ncmFtIHRoYXQgaGFuZGxlcyBsb25nIGxpbmVzLgot K0dSRVA9JGx0X0dSRVAKLSsKLSsjIEFuIEVSRSBtYXRjaGVyLgotK0VHUkVQPSRsdF9FR1JFUAot KwotKyMgQSBsaXRlcmFsIHN0cmluZyBtYXRjaGVyLgotK0ZHUkVQPSRsdF9GR1JFUAotKwotKyMg QSBCU0QtIG9yIE1TLWNvbXBhdGlibGUgbmFtZSBsaXN0ZXIuCi0rTk09JGx0X05NCi0rCi0rIyBX aGV0aGVyIHdlIG5lZWQgc29mdCBvciBoYXJkIGxpbmtzLgotK0xOX1M9JGx0X0xOX1MKLSsKLSsj IFdoYXQgaXMgdGhlIG1heGltdW0gbGVuZ3RoIG9mIGEgY29tbWFuZD8KLSttYXhfY21kX2xlbj0k bWF4X2NtZF9sZW4KLSsKLSsjIE9iamVjdCBmaWxlIHN1ZmZpeCAobm9ybWFsbHkgIm8iKS4KLStv YmpleHQ9JGFjX29iamV4dAotKwotKyMgRXhlY3V0YWJsZSBmaWxlIHN1ZmZpeCAobm9ybWFsbHkg IiIpLgotK2V4ZWV4dD0kZXhlZXh0Ci0rCi0rIyB3aGV0aGVyIHRoZSBzaGVsbCB1bmRlcnN0YW5k cyAidW5zZXQiLgotK2x0X3Vuc2V0PSRsdF91bnNldAotKwotKyMgdHVybiBzcGFjZXMgaW50byBu ZXdsaW5lcy4KLStTUDJOTD0kbHRfbHRfU1AyTkwKLSsKLSsjIHR1cm4gbmV3bGluZXMgaW50byBz cGFjZXMuCi0rTkwyU1A9JGx0X2x0X05MMlNQCi0rCi0rIyBIb3cgdG8gY3JlYXRlIHJlbG9hZGFi bGUgb2JqZWN0IGZpbGVzLgotK3JlbG9hZF9mbGFnPSRsdF9yZWxvYWRfZmxhZwotK3JlbG9hZF9j bWRzPSRsdF9yZWxvYWRfY21kcwotKwotKyMgQW4gb2JqZWN0IHN5bWJvbCBkdW1wZXIuCi0rT0JK RFVNUD0kbHRfT0JKRFVNUAotKwotKyMgTWV0aG9kIHRvIGNoZWNrIHdoZXRoZXIgZGVwZW5kZW50 IGxpYnJhcmllcyBhcmUgc2hhcmVkIG9iamVjdHMuCi0rZGVwbGlic19jaGVja19tZXRob2Q9JGx0 X2RlcGxpYnNfY2hlY2tfbWV0aG9kCi0rCi0rIyBDb21tYW5kIHRvIHVzZSB3aGVuIGRlcGxpYnNf Y2hlY2tfbWV0aG9kID09ICJmaWxlX21hZ2ljIi4KLStmaWxlX21hZ2ljX2NtZD0kbHRfZmlsZV9t YWdpY19jbWQKLSsKLSsjIFRoZSBhcmNoaXZlci4KLStBUj0kbHRfQVIKLStBUl9GTEFHUz0kbHRf QVJfRkxBR1MKLSsKLSsjIEEgc3ltYm9sIHN0cmlwcGluZyBwcm9ncmFtLgotK1NUUklQPSRsdF9T VFJJUAotKwotKyMgQ29tbWFuZHMgdXNlZCB0byBpbnN0YWxsIGFuIG9sZC1zdHlsZSBhcmNoaXZl LgotK1JBTkxJQj0kbHRfUkFOTElCCi0rb2xkX3Bvc3RpbnN0YWxsX2NtZHM9JGx0X29sZF9wb3N0 aW5zdGFsbF9jbWRzCi0rb2xkX3Bvc3R1bmluc3RhbGxfY21kcz0kbHRfb2xkX3Bvc3R1bmluc3Rh bGxfY21kcwotKwotKyMgQSBDIGNvbXBpbGVyLgotK0xUQ0M9JGx0X0NDCi0rCi0rIyBMVENDIGNv bXBpbGVyIGZsYWdzLgotK0xUQ0ZMQUdTPSRsdF9DRkxBR1MKLSsKLSsjIFRha2UgdGhlIG91dHB1 dCBvZiBubSBhbmQgcHJvZHVjZSBhIGxpc3Rpbmcgb2YgcmF3IHN5bWJvbHMgYW5kIEMgbmFtZXMu Ci0rZ2xvYmFsX3N5bWJvbF9waXBlPSRsdF9sdF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF9waXBlCi0r Ci0rIyBUcmFuc2Zvcm0gdGhlIG91dHB1dCBvZiBubSBpbiBhIHByb3BlciBDIGRlY2xhcmF0aW9u LgotK2dsb2JhbF9zeW1ib2xfdG9fY2RlY2w9JGx0X2x0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3Rv X2NkZWNsCi0rCi0rIyBUcmFuc2Zvcm0gdGhlIG91dHB1dCBvZiBubSBpbiBhIEMgbmFtZSBhZGRy ZXNzIHBhaXIuCi0rZ2xvYmFsX3N5bWJvbF90b19jX25hbWVfYWRkcmVzcz0kbHRfbHRfY3Zfc3lz X2dsb2JhbF9zeW1ib2xfdG9fY19uYW1lX2FkZHJlc3MKLSsKLSsjIFRyYW5zZm9ybSB0aGUgb3V0 cHV0IG9mIG5tIGluIGEgQyBuYW1lIGFkZHJlc3MgcGFpciB3aGVuIGxpYiBwcmVmaXggaXMgbmVl ZGVkLgotK2dsb2JhbF9zeW1ib2xfdG9fY19uYW1lX2FkZHJlc3NfbGliX3ByZWZpeD0kbHRfbHRf Y3Zfc3lzX2dsb2JhbF9zeW1ib2xfdG9fY19uYW1lX2FkZHJlc3NfbGliX3ByZWZpeAotKwotKyMg VGhlIG5hbWUgb2YgdGhlIGRpcmVjdG9yeSB0aGF0IGNvbnRhaW5zIHRlbXBvcmFyeSBsaWJ0b29s IGZpbGVzLgotK29iamRpcj0kb2JqZGlyCi0rCi0rIyBTaGVsbCB0byB1c2Ugd2hlbiBpbnZva2lu ZyBzaGVsbCBzY3JpcHRzLgotK1NIRUxMPSRsdF9TSEVMTAotKwotKyMgQW4gZWNobyBwcm9ncmFt IHRoYXQgZG9lcyBub3QgaW50ZXJwcmV0IGJhY2tzbGFzaGVzLgotK0VDSE89JGx0X0VDSE8KLSsK LSsjIFVzZWQgdG8gZXhhbWluZSBsaWJyYXJpZXMgd2hlbiBmaWxlX21hZ2ljX2NtZCBiZWdpbnMg d2l0aCAiZmlsZSIuCi0rTUFHSUNfQ01EPSRNQUdJQ19DTUQKLSsKLSsjIE11c3Qgd2UgbG9jayBm aWxlcyB3aGVuIGRvaW5nIGNvbXBpbGF0aW9uPwotK25lZWRfbG9ja3M9JGx0X25lZWRfbG9ja3MK LSsKLSsjIFRvb2wgdG8gbWFuaXB1bGF0ZSBhcmNoaXZlZCBEV0FSRiBkZWJ1ZyBzeW1ib2wgZmls ZXMgb24gTWFjIE9TIFguCi0rRFNZTVVUSUw9JGx0X0RTWU1VVElMCi0rCi0rIyBUb29sIHRvIGNo YW5nZSBnbG9iYWwgdG8gbG9jYWwgc3ltYm9scyBvbiBNYWMgT1MgWC4KLStOTUVESVQ9JGx0X05N RURJVAotKwotKyMgVG9vbCB0byBtYW5pcHVsYXRlIGZhdCBvYmplY3RzIGFuZCBhcmNoaXZlcyBv biBNYWMgT1MgWC4KLStMSVBPPSRsdF9MSVBPCi0rCi0rIyBsZGQvcmVhZGVsZiBsaWtlIHRvb2wg Zm9yIE1hY2gtTyBiaW5hcmllcyBvbiBNYWMgT1MgWC4KLStPVE9PTD0kbHRfT1RPT0wKLSsKLSsj IGxkZC9yZWFkZWxmIGxpa2UgdG9vbCBmb3IgNjQgYml0IE1hY2gtTyBiaW5hcmllcyBvbiBNYWMg T1MgWCAxMC40LgotK09UT09MNjQ9JGx0X09UT09MNjQKLSsKLSsjIE9sZCBhcmNoaXZlIHN1ZmZp eCAobm9ybWFsbHkgImEiKS4KLStsaWJleHQ9JGxpYmV4dAotKwotKyMgU2hhcmVkIGxpYnJhcnkg c3VmZml4IChub3JtYWxseSAiLnNvIikuCi0rc2hyZXh0X2NtZHM9JGx0X3NocmV4dF9jbWRzCi0r Ci0rIyBUaGUgY29tbWFuZHMgdG8gZXh0cmFjdCB0aGUgZXhwb3J0ZWQgc3ltYm9sIGxpc3QgZnJv bSBhIHNoYXJlZCBhcmNoaXZlLgotK2V4dHJhY3RfZXhwc3ltc19jbWRzPSRsdF9leHRyYWN0X2V4 cHN5bXNfY21kcwotKwotKyMgVmFyaWFibGVzIHdob3NlIHZhbHVlcyBzaG91bGQgYmUgc2F2ZWQg aW4gbGlidG9vbCB3cmFwcGVyIHNjcmlwdHMgYW5kCi0rIyByZXN0b3JlZCBhdCBsaW5rIHRpbWUu Ci0rdmFyaWFibGVzX3NhdmVkX2Zvcl9yZWxpbms9JGx0X3ZhcmlhYmxlc19zYXZlZF9mb3JfcmVs aW5rCi0rCi0rIyBEbyB3ZSBuZWVkIHRoZSAibGliIiBwcmVmaXggZm9yIG1vZHVsZXM/Ci0rbmVl ZF9saWJfcHJlZml4PSRuZWVkX2xpYl9wcmVmaXgKLSsKLSsjIERvIHdlIG5lZWQgYSB2ZXJzaW9u IGZvciBsaWJyYXJpZXM/Ci0rbmVlZF92ZXJzaW9uPSRuZWVkX3ZlcnNpb24KLSsKLSsjIExpYnJh cnkgdmVyc2lvbmluZyB0eXBlLgotK3ZlcnNpb25fdHlwZT0kdmVyc2lvbl90eXBlCi0rCi0rIyBT aGFyZWQgbGlicmFyeSBydW50aW1lIHBhdGggdmFyaWFibGUuCi0rcnVucGF0aF92YXI9JHJ1bnBh dGhfdmFyCi0rCi0rIyBTaGFyZWQgbGlicmFyeSBwYXRoIHZhcmlhYmxlLgotK3NobGlicGF0aF92 YXI9JHNobGlicGF0aF92YXIKLSsKLSsjIElzIHNobGlicGF0aCBzZWFyY2hlZCBiZWZvcmUgdGhl IGhhcmQtY29kZWQgbGlicmFyeSBzZWFyY2ggcGF0aD8KLStzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1 bnBhdGg9JHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aAotKwotKyMgRm9ybWF0IG9mIGxpYnJh cnkgbmFtZSBwcmVmaXguCi0rbGlibmFtZV9zcGVjPSRsdF9saWJuYW1lX3NwZWMKLSsKLSsjIExp c3Qgb2YgYXJjaGl2ZSBuYW1lcy4gIEZpcnN0IG5hbWUgaXMgdGhlIHJlYWwgb25lLCB0aGUgcmVz dCBhcmUgbGlua3MuCi0rIyBUaGUgbGFzdCBuYW1lIGlzIHRoZSBvbmUgdGhhdCB0aGUgbGlua2Vy IGZpbmRzIHdpdGggLWxOQU1FCi0rbGlicmFyeV9uYW1lc19zcGVjPSRsdF9saWJyYXJ5X25hbWVz X3NwZWMKLSsKLSsjIFRoZSBjb2RlZCBuYW1lIG9mIHRoZSBsaWJyYXJ5LCBpZiBkaWZmZXJlbnQg ZnJvbSB0aGUgcmVhbCBuYW1lLgotK3NvbmFtZV9zcGVjPSRsdF9zb25hbWVfc3BlYwotKwotKyMg Q29tbWFuZCB0byB1c2UgYWZ0ZXIgaW5zdGFsbGF0aW9uIG9mIGEgc2hhcmVkIGFyY2hpdmUuCi0r cG9zdGluc3RhbGxfY21kcz0kbHRfcG9zdGluc3RhbGxfY21kcwotKwotKyMgQ29tbWFuZCB0byB1 c2UgYWZ0ZXIgdW5pbnN0YWxsYXRpb24gb2YgYSBzaGFyZWQgYXJjaGl2ZS4KLStwb3N0dW5pbnN0 YWxsX2NtZHM9JGx0X3Bvc3R1bmluc3RhbGxfY21kcwotKwotKyMgQ29tbWFuZHMgdXNlZCB0byBm aW5pc2ggYSBsaWJ0b29sIGxpYnJhcnkgaW5zdGFsbGF0aW9uIGluIGEgZGlyZWN0b3J5LgotK2Zp bmlzaF9jbWRzPSRsdF9maW5pc2hfY21kcwotKwotKyMgQXMgImZpbmlzaF9jbWRzIiwgZXhjZXB0 IGEgc2luZ2xlIHNjcmlwdCBmcmFnbWVudCB0byBiZSBldmFsZWQgYnV0Ci0rIyBub3Qgc2hvd24u Ci0rZmluaXNoX2V2YWw9JGx0X2ZpbmlzaF9ldmFsCi0rCi0rIyBXaGV0aGVyIHdlIHNob3VsZCBo YXJkY29kZSBsaWJyYXJ5IHBhdGhzIGludG8gbGlicmFyaWVzLgotK2hhcmRjb2RlX2ludG9fbGli cz0kaGFyZGNvZGVfaW50b19saWJzCi0rCi0rIyBDb21waWxlLXRpbWUgc3lzdGVtIHNlYXJjaCBw YXRoIGZvciBsaWJyYXJpZXMuCi0rc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPSRsdF9zeXNfbGli X3NlYXJjaF9wYXRoX3NwZWMKLSsKLSsjIFJ1bi10aW1lIHN5c3RlbSBzZWFyY2ggcGF0aCBmb3Ig bGlicmFyaWVzLgotK3N5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjPSRsdF9zeXNfbGliX2Rsc2Vh cmNoX3BhdGhfc3BlYwotKwotKyMgV2hldGhlciBkbG9wZW4gaXMgc3VwcG9ydGVkLgotK2Rsb3Bl bl9zdXBwb3J0PSRlbmFibGVfZGxvcGVuCi0rCi0rIyBXaGV0aGVyIGRsb3BlbiBvZiBwcm9ncmFt cyBpcyBzdXBwb3J0ZWQuCi0rZGxvcGVuX3NlbGY9JGVuYWJsZV9kbG9wZW5fc2VsZgotKwotKyMg V2hldGhlciBkbG9wZW4gb2Ygc3RhdGljYWxseSBsaW5rZWQgcHJvZ3JhbXMgaXMgc3VwcG9ydGVk LgotK2Rsb3Blbl9zZWxmX3N0YXRpYz0kZW5hYmxlX2Rsb3Blbl9zZWxmX3N0YXRpYwotKwotKyMg Q29tbWFuZHMgdG8gc3RyaXAgbGlicmFyaWVzLgotK29sZF9zdHJpcGxpYj0kbHRfb2xkX3N0cmlw bGliCi0rc3RyaXBsaWI9JGx0X3N0cmlwbGliCi0rCi0rCi0rIyBUaGUgbGlua2VyIHVzZWQgdG8g YnVpbGQgbGlicmFyaWVzLgotK0xEPSRsdF9MRAotKwotKyMgQ29tbWFuZHMgdXNlZCB0byBidWls ZCBhbiBvbGQtc3R5bGUgYXJjaGl2ZS4KLStvbGRfYXJjaGl2ZV9jbWRzPSRsdF9vbGRfYXJjaGl2 ZV9jbWRzCi0rCi0rIyBBIGxhbmd1YWdlIHNwZWNpZmljIGNvbXBpbGVyLgotK0NDPSRsdF9jb21w aWxlcgotKwotKyMgSXMgdGhlIGNvbXBpbGVyIHRoZSBHTlUgY29tcGlsZXI/Ci0rd2l0aF9nY2M9 JEdDQwotKwotKyMgQ29tcGlsZXIgZmxhZyB0byB0dXJuIG9mZiBidWlsdGluIGZ1bmN0aW9ucy4K LStub19idWlsdGluX2ZsYWc9JGx0X2x0X3Byb2dfY29tcGlsZXJfbm9fYnVpbHRpbl9mbGFnCi0r Ci0rIyBIb3cgdG8gcGFzcyBhIGxpbmtlciBmbGFnIHRocm91Z2ggdGhlIGNvbXBpbGVyLgotK3ds PSRsdF9sdF9wcm9nX2NvbXBpbGVyX3dsCi0rCi0rIyBBZGRpdGlvbmFsIGNvbXBpbGVyIGZsYWdz IGZvciBidWlsZGluZyBsaWJyYXJ5IG9iamVjdHMuCi0rcGljX2ZsYWc9JGx0X2x0X3Byb2dfY29t cGlsZXJfcGljCi0rCi0rIyBDb21waWxlciBmbGFnIHRvIHByZXZlbnQgZHluYW1pYyBsaW5raW5n LgotK2xpbmtfc3RhdGljX2ZsYWc9JGx0X2x0X3Byb2dfY29tcGlsZXJfc3RhdGljCi0rCi0rIyBE b2VzIGNvbXBpbGVyIHNpbXVsdGFuZW91c2x5IHN1cHBvcnQgLWMgYW5kIC1vIG9wdGlvbnM/Ci0r Y29tcGlsZXJfY19vPSRsdF9sdF9jdl9wcm9nX2NvbXBpbGVyX2NfbwotKwotKyMgV2hldGhlciBv ciBub3QgdG8gYWRkIC1sYyBmb3IgYnVpbGRpbmcgc2hhcmVkIGxpYnJhcmllcy4KLStidWlsZF9s aWJ0b29sX25lZWRfbGM9JGFyY2hpdmVfY21kc19uZWVkX2xjCi0rCi0rIyBXaGV0aGVyIG9yIG5v dCB0byBkaXNhbGxvdyBzaGFyZWQgbGlicyB3aGVuIHJ1bnRpbWUgbGlicyBhcmUgc3RhdGljLgot K2FsbG93X2xpYnRvb2xfbGlic193aXRoX3N0YXRpY19ydW50aW1lcz0kZW5hYmxlX3NoYXJlZF93 aXRoX3N0YXRpY19ydW50aW1lcwotKwotKyMgQ29tcGlsZXIgZmxhZyB0byBhbGxvdyByZWZsZXhp dmUgZGxvcGVucy4KLStleHBvcnRfZHluYW1pY19mbGFnX3NwZWM9JGx0X2V4cG9ydF9keW5hbWlj X2ZsYWdfc3BlYwotKwotKyMgQ29tcGlsZXIgZmxhZyB0byBnZW5lcmF0ZSBzaGFyZWQgb2JqZWN0 cyBkaXJlY3RseSBmcm9tIGFyY2hpdmVzLgotK3dob2xlX2FyY2hpdmVfZmxhZ19zcGVjPSRsdF93 aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYwotKwotKyMgV2hldGhlciB0aGUgY29tcGlsZXIgY29wZXMg d2l0aCBwYXNzaW5nIG5vIG9iamVjdHMgZGlyZWN0bHkuCi0rY29tcGlsZXJfbmVlZHNfb2JqZWN0 PSRsdF9jb21waWxlcl9uZWVkc19vYmplY3QKLSsKLSsjIENyZWF0ZSBhbiBvbGQtc3R5bGUgYXJj aGl2ZSBmcm9tIGEgc2hhcmVkIGFyY2hpdmUuCi0rb2xkX2FyY2hpdmVfZnJvbV9uZXdfY21kcz0k bHRfb2xkX2FyY2hpdmVfZnJvbV9uZXdfY21kcwotKwotKyMgQ3JlYXRlIGEgdGVtcG9yYXJ5IG9s ZC1zdHlsZSBhcmNoaXZlIHRvIGxpbmsgaW5zdGVhZCBvZiBhIHNoYXJlZCBhcmNoaXZlLgotK29s ZF9hcmNoaXZlX2Zyb21fZXhwc3ltc19jbWRzPSRsdF9vbGRfYXJjaGl2ZV9mcm9tX2V4cHN5bXNf Y21kcwotKwotKyMgQ29tbWFuZHMgdXNlZCB0byBidWlsZCBhIHNoYXJlZCBhcmNoaXZlLgotK2Fy Y2hpdmVfY21kcz0kbHRfYXJjaGl2ZV9jbWRzCi0rYXJjaGl2ZV9leHBzeW1fY21kcz0kbHRfYXJj aGl2ZV9leHBzeW1fY21kcwotKwotKyMgQ29tbWFuZHMgdXNlZCB0byBidWlsZCBhIGxvYWRhYmxl IG1vZHVsZSBpZiBkaWZmZXJlbnQgZnJvbSBidWlsZGluZwotKyMgYSBzaGFyZWQgYXJjaGl2ZS4K LSttb2R1bGVfY21kcz0kbHRfbW9kdWxlX2NtZHMKLSttb2R1bGVfZXhwc3ltX2NtZHM9JGx0X21v ZHVsZV9leHBzeW1fY21kcwotKwotKyMgV2hldGhlciB3ZSBhcmUgYnVpbGRpbmcgd2l0aCBHTlUg bGQgb3Igbm90LgotK3dpdGhfZ251X2xkPSRsdF93aXRoX2dudV9sZAotKwotKyMgRmxhZyB0aGF0 IGFsbG93cyBzaGFyZWQgbGlicmFyaWVzIHdpdGggdW5kZWZpbmVkIHN5bWJvbHMgdG8gYmUgYnVp bHQuCi0rYWxsb3dfdW5kZWZpbmVkX2ZsYWc9JGx0X2FsbG93X3VuZGVmaW5lZF9mbGFnCi0rCi0r IyBGbGFnIHRoYXQgZW5mb3JjZXMgbm8gdW5kZWZpbmVkIHN5bWJvbHMuCi0rbm9fdW5kZWZpbmVk X2ZsYWc9JGx0X25vX3VuZGVmaW5lZF9mbGFnCi0rCi0rIyBGbGFnIHRvIGhhcmRjb2RlIFwkbGli ZGlyIGludG8gYSBiaW5hcnkgZHVyaW5nIGxpbmtpbmcuCi0rIyBUaGlzIG11c3Qgd29yayBldmVu IGlmIFwkbGliZGlyIGRvZXMgbm90IGV4aXN0Ci0raGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYz0k bHRfaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYwotKwotKyMgSWYgbGQgaXMgdXNlZCB3aGVuIGxp bmtpbmcsIGZsYWcgdG8gaGFyZGNvZGUgXCRsaWJkaXIgaW50byBhIGJpbmFyeQotKyMgZHVyaW5n IGxpbmtpbmcuICBUaGlzIG11c3Qgd29yayBldmVuIGlmIFwkbGliZGlyIGRvZXMgbm90IGV4aXN0 LgotK2hhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfbGQ9JGx0X2hhcmRjb2RlX2xpYmRpcl9mbGFn X3NwZWNfbGQKLSsKLSsjIFdoZXRoZXIgd2UgbmVlZCBhIHNpbmdsZSAiLXJwYXRoIiBmbGFnIHdp dGggYSBzZXBhcmF0ZWQgYXJndW1lbnQuCi0raGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvcj0kbHRf aGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvcgotKwotKyMgU2V0IHRvICJ5ZXMiIGlmIHVzaW5nIERJ Ui9saWJOQU1FXCR7c2hhcmVkX2V4dH0gZHVyaW5nIGxpbmtpbmcgaGFyZGNvZGVzCi0rIyBESVIg aW50byB0aGUgcmVzdWx0aW5nIGJpbmFyeS4KLStoYXJkY29kZV9kaXJlY3Q9JGhhcmRjb2RlX2Rp cmVjdAotKwotKyMgU2V0IHRvICJ5ZXMiIGlmIHVzaW5nIERJUi9saWJOQU1FXCR7c2hhcmVkX2V4 dH0gZHVyaW5nIGxpbmtpbmcgaGFyZGNvZGVzCi0rIyBESVIgaW50byB0aGUgcmVzdWx0aW5nIGJp bmFyeSBhbmQgdGhlIHJlc3VsdGluZyBsaWJyYXJ5IGRlcGVuZGVuY3kgaXMKLSsjICJhYnNvbHV0 ZSIsaS5lIGltcG9zc2libGUgdG8gY2hhbmdlIGJ5IHNldHRpbmcgXCR7c2hsaWJwYXRoX3Zhcn0g aWYgdGhlCi0rIyBsaWJyYXJ5IGlzIHJlbG9jYXRlZC4KLStoYXJkY29kZV9kaXJlY3RfYWJzb2x1 dGU9JGhhcmRjb2RlX2RpcmVjdF9hYnNvbHV0ZQotKwotKyMgU2V0IHRvICJ5ZXMiIGlmIHVzaW5n IHRoZSAtTERJUiBmbGFnIGR1cmluZyBsaW5raW5nIGhhcmRjb2RlcyBESVIKLSsjIGludG8gdGhl IHJlc3VsdGluZyBiaW5hcnkuCi0raGFyZGNvZGVfbWludXNfTD0kaGFyZGNvZGVfbWludXNfTAot KwotKyMgU2V0IHRvICJ5ZXMiIGlmIHVzaW5nIFNITElCUEFUSF9WQVI9RElSIGR1cmluZyBsaW5r aW5nIGhhcmRjb2RlcyBESVIKLSsjIGludG8gdGhlIHJlc3VsdGluZyBiaW5hcnkuCi0raGFyZGNv ZGVfc2hsaWJwYXRoX3Zhcj0kaGFyZGNvZGVfc2hsaWJwYXRoX3ZhcgotKwotKyMgU2V0IHRvICJ5 ZXMiIGlmIGJ1aWxkaW5nIGEgc2hhcmVkIGxpYnJhcnkgYXV0b21hdGljYWxseSBoYXJkY29kZXMg RElSCi0rIyBpbnRvIHRoZSBsaWJyYXJ5IGFuZCBhbGwgc3Vic2VxdWVudCBsaWJyYXJpZXMgYW5k IGV4ZWN1dGFibGVzIGxpbmtlZAotKyMgYWdhaW5zdCBpdC4KLStoYXJkY29kZV9hdXRvbWF0aWM9 JGhhcmRjb2RlX2F1dG9tYXRpYwotKwotKyMgU2V0IHRvIHllcyBpZiBsaW5rZXIgYWRkcyBydW50 aW1lIHBhdGhzIG9mIGRlcGVuZGVudCBsaWJyYXJpZXMKLSsjIHRvIHJ1bnRpbWUgcGF0aCBsaXN0 LgotK2luaGVyaXRfcnBhdGg9JGluaGVyaXRfcnBhdGgKLSsKLSsjIFdoZXRoZXIgbGlidG9vbCBt dXN0IGxpbmsgYSBwcm9ncmFtIGFnYWluc3QgYWxsIGl0cyBkZXBlbmRlbmN5IGxpYnJhcmllcy4K LStsaW5rX2FsbF9kZXBsaWJzPSRsaW5rX2FsbF9kZXBsaWJzCi0rCi0rIyBGaXggdGhlIHNoZWxs IHZhcmlhYmxlIFwkc3JjZmlsZSBmb3IgdGhlIGNvbXBpbGVyLgotK2ZpeF9zcmNmaWxlX3BhdGg9 JGx0X2ZpeF9zcmNmaWxlX3BhdGgKLSsKLSsjIFNldCB0byAieWVzIiBpZiBleHBvcnRlZCBzeW1i b2xzIGFyZSByZXF1aXJlZC4KLSthbHdheXNfZXhwb3J0X3N5bWJvbHM9JGFsd2F5c19leHBvcnRf c3ltYm9scwotKwotKyMgVGhlIGNvbW1hbmRzIHRvIGxpc3QgZXhwb3J0ZWQgc3ltYm9scy4KLStl eHBvcnRfc3ltYm9sc19jbWRzPSRsdF9leHBvcnRfc3ltYm9sc19jbWRzCi0rCi0rIyBTeW1ib2xz IHRoYXQgc2hvdWxkIG5vdCBiZSBsaXN0ZWQgaW4gdGhlIHByZWxvYWRlZCBzeW1ib2xzLgotK2V4 Y2x1ZGVfZXhwc3ltcz0kbHRfZXhjbHVkZV9leHBzeW1zCi0rCi0rIyBTeW1ib2xzIHRoYXQgbXVz dCBhbHdheXMgYmUgZXhwb3J0ZWQuCi0raW5jbHVkZV9leHBzeW1zPSRsdF9pbmNsdWRlX2V4cHN5 bXMKLSsKLSsjIENvbW1hbmRzIG5lY2Vzc2FyeSBmb3IgbGlua2luZyBwcm9ncmFtcyAoYWdhaW5z dCBsaWJyYXJpZXMpIHdpdGggdGVtcGxhdGVzLgotK3ByZWxpbmtfY21kcz0kbHRfcHJlbGlua19j bWRzCi0rCi0rIyBTcGVjaWZ5IGZpbGVuYW1lIGNvbnRhaW5pbmcgaW5wdXQgZmlsZXMuCi0rZmls ZV9saXN0X3NwZWM9JGx0X2ZpbGVfbGlzdF9zcGVjCi0rCi0rIyBIb3cgdG8gaGFyZGNvZGUgYSBz aGFyZWQgbGlicmFyeSBwYXRoIGludG8gYW4gZXhlY3V0YWJsZS4KLStoYXJkY29kZV9hY3Rpb249 JGhhcmRjb2RlX2FjdGlvbgotKwotKyMgVGhlIGRpcmVjdG9yaWVzIHNlYXJjaGVkIGJ5IHRoaXMg Y29tcGlsZXIgd2hlbiBjcmVhdGluZyBhIHNoYXJlZCBsaWJyYXJ5LgotK2NvbXBpbGVyX2xpYl9z ZWFyY2hfZGlycz0kbHRfY29tcGlsZXJfbGliX3NlYXJjaF9kaXJzCi0rCi0rIyBEZXBlbmRlbmNp ZXMgdG8gcGxhY2UgYmVmb3JlIGFuZCBhZnRlciB0aGUgb2JqZWN0cyBiZWluZyBsaW5rZWQgdG8K LSsjIGNyZWF0ZSBhIHNoYXJlZCBsaWJyYXJ5LgotK3ByZWRlcF9vYmplY3RzPSRsdF9wcmVkZXBf b2JqZWN0cwotK3Bvc3RkZXBfb2JqZWN0cz0kbHRfcG9zdGRlcF9vYmplY3RzCi0rcHJlZGVwcz0k bHRfcHJlZGVwcwotK3Bvc3RkZXBzPSRsdF9wb3N0ZGVwcwotKwotKyMgVGhlIGxpYnJhcnkgc2Vh cmNoIHBhdGggdXNlZCBpbnRlcm5hbGx5IGJ5IHRoZSBjb21waWxlciB3aGVuIGxpbmtpbmcKLSsj IGEgc2hhcmVkIGxpYnJhcnkuCi0rY29tcGlsZXJfbGliX3NlYXJjaF9wYXRoPSRsdF9jb21waWxl cl9saWJfc2VhcmNoX3BhdGgKLSsKLSsjICMjIyBFTkQgTElCVE9PTCBDT05GSUcKLSsKLStfTFRf RU9GCi0rCi0rICBjYXNlICRob3N0X29zIGluCi0rICBhaXgzKikKLSsgICAgY2F0IDw8XF9MVF9F T0YgPj4gIiRjZmdmaWxlIgotKyMgQUlYIHNvbWV0aW1lcyBoYXMgcHJvYmxlbXMgd2l0aCB0aGUg R0NDIGNvbGxlY3QyIHByb2dyYW0uICBGb3Igc29tZQotKyMgcmVhc29uLCBpZiB3ZSBzZXQgdGhl IENPTExFQ1RfTkFNRVMgZW52aXJvbm1lbnQgdmFyaWFibGUsIHRoZSBwcm9ibGVtcwotKyMgdmFu aXNoIGluIGEgcHVmZiBvZiBzbW9rZS4KLStpZiB0ZXN0ICJYJHtDT0xMRUNUX05BTUVTK3NldH0i ICE9IFhzZXQ7IHRoZW4KLSsgIENPTExFQ1RfTkFNRVM9Ci0rICBleHBvcnQgQ09MTEVDVF9OQU1F UwotK2ZpCi0rX0xUX0VPRgotKyAgICA7OwotKyAgZXNhYwotKwotKwotK2x0bWFpbj0iJGFjX2F1 eF9kaXIvbHRtYWluLnNoIgotKwotKwotKyAgIyBXZSB1c2Ugc2VkIGluc3RlYWQgb2YgY2F0IGJl Y2F1c2UgYmFzaCBvbiBESkdQUCBnZXRzIGNvbmZ1c2VkIGlmCi0rICAjIGlmIGZpbmRzIG1peGVk IENSL0xGIGFuZCBMRi1vbmx5IGxpbmVzLiAgU2luY2Ugc2VkIG9wZXJhdGVzIGluCi0rICAjIHRl eHQgbW9kZSwgaXQgcHJvcGVybHkgY29udmVydHMgbGluZXMgdG8gQ1IvTEYuICBUaGlzIGJhc2gg cHJvYmxlbQotKyAgIyBpcyByZXBvcnRlZGx5IGZpeGVkLCBidXQgd2h5IG5vdCBydW4gb24gb2xk IHZlcnNpb25zIHRvbz8KLSsgIHNlZCAnL14jIEdlbmVyYXRlZCBzaGVsbCBmdW5jdGlvbnMgaW5z ZXJ0ZWQgaGVyZS9xJyAiJGx0bWFpbiIgPj4gIiRjZmdmaWxlIiBcCi0rICAgIHx8IChybSAtZiAi JGNmZ2ZpbGUiOyBleGl0IDEpCi0rCi0rICBjYXNlICR4c2lfc2hlbGwgaW4KLSsgIHllcykKLSsg ICAgY2F0IDw8IFxfTFRfRU9GID4+ICIkY2ZnZmlsZSIKLSsKLSsjIGZ1bmNfZGlybmFtZSBmaWxl IGFwcGVuZCBub25kaXJfcmVwbGFjZW1lbnQKLSsjIENvbXB1dGUgdGhlIGRpcm5hbWUgb2YgRklM RS4gIElmIG5vbmVtcHR5LCBhZGQgQVBQRU5EIHRvIHRoZSByZXN1bHQsCi0rIyBvdGhlcndpc2Ug c2V0IHJlc3VsdCB0byBOT05ESVJfUkVQTEFDRU1FTlQuCi0rZnVuY19kaXJuYW1lICgpCi0rewot KyAgY2FzZSAkezF9IGluCi0rICAgICovKikgZnVuY19kaXJuYW1lX3Jlc3VsdD0iJHsxJS8qfSR7 Mn0iIDs7Ci0rICAgICogICkgZnVuY19kaXJuYW1lX3Jlc3VsdD0iJHszfSIgOzsKLSsgIGVzYWMK LSt9Ci0rCi0rIyBmdW5jX2Jhc2VuYW1lIGZpbGUKLStmdW5jX2Jhc2VuYW1lICgpCi0rewotKyAg ZnVuY19iYXNlbmFtZV9yZXN1bHQ9IiR7MSMjKi99IgotK30KLSsKLSsjIGZ1bmNfZGlybmFtZV9h bmRfYmFzZW5hbWUgZmlsZSBhcHBlbmQgbm9uZGlyX3JlcGxhY2VtZW50Ci0rIyBwZXJmb3JtIGZ1 bmNfYmFzZW5hbWUgYW5kIGZ1bmNfZGlybmFtZSBpbiBhIHNpbmdsZSBmdW5jdGlvbgotKyMgY2Fs bDoKLSsjICAgZGlybmFtZTogIENvbXB1dGUgdGhlIGRpcm5hbWUgb2YgRklMRS4gIElmIG5vbmVt cHR5LAotKyMgICAgICAgICAgICAgYWRkIEFQUEVORCB0byB0aGUgcmVzdWx0LCBvdGhlcndpc2Ug c2V0IHJlc3VsdAotKyMgICAgICAgICAgICAgdG8gTk9ORElSX1JFUExBQ0VNRU5ULgotKyMgICAg ICAgICAgICAgdmFsdWUgcmV0dXJuZWQgaW4gIiRmdW5jX2Rpcm5hbWVfcmVzdWx0IgotKyMgICBi YXNlbmFtZTogQ29tcHV0ZSBmaWxlbmFtZSBvZiBGSUxFLgotKyMgICAgICAgICAgICAgdmFsdWUg cmV0dW5lZCBpbiAiJGZ1bmNfYmFzZW5hbWVfcmVzdWx0IgotKyMgSW1wbGVtZW50YXRpb24gbXVz dCBiZSBrZXB0IHN5bmNocm9uaXplZCB3aXRoIGZ1bmNfZGlybmFtZQotKyMgYW5kIGZ1bmNfYmFz ZW5hbWUuIEZvciBlZmZpY2llbmN5LCB3ZSBkbyBub3QgZGVsZWdhdGUgdG8KLSsjIHRob3NlIGZ1 bmN0aW9ucyBidXQgaW5zdGVhZCBkdXBsaWNhdGUgdGhlIGZ1bmN0aW9uYWxpdHkgaGVyZS4KLStm dW5jX2Rpcm5hbWVfYW5kX2Jhc2VuYW1lICgpCi0rewotKyAgY2FzZSAkezF9IGluCi0rICAgICov KikgZnVuY19kaXJuYW1lX3Jlc3VsdD0iJHsxJS8qfSR7Mn0iIDs7Ci0rICAgICogICkgZnVuY19k aXJuYW1lX3Jlc3VsdD0iJHszfSIgOzsKLSsgIGVzYWMKLSsgIGZ1bmNfYmFzZW5hbWVfcmVzdWx0 PSIkezEjIyovfSIKLSt9Ci0rCi0rIyBmdW5jX3N0cmlwbmFtZSBwcmVmaXggc3VmZml4IG5hbWUK LSsjIHN0cmlwIFBSRUZJWCBhbmQgU1VGRklYIG9mZiBvZiBOQU1FLgotKyMgUFJFRklYIGFuZCBT VUZGSVggbXVzdCBub3QgY29udGFpbiBnbG9iYmluZyBvciByZWdleCBzcGVjaWFsCi0rIyBjaGFy YWN0ZXJzLCBoYXNoZXMsIHBlcmNlbnQgc2lnbnMsIGJ1dCBTVUZGSVggbWF5IGNvbnRhaW4gYSBs ZWFkaW5nCi0rIyBkb3QgKGluIHdoaWNoIGNhc2UgdGhhdCBtYXRjaGVzIG9ubHkgYSBkb3QpLgot K2Z1bmNfc3RyaXBuYW1lICgpCi0rewotKyAgIyBwZGtzaCA1LjIuMTQgZG9lcyBub3QgZG8gJHtY JSRZfSBjb3JyZWN0bHkgaWYgYm90aCBYIGFuZCBZIGFyZQotKyAgIyBwb3NpdGlvbmFsIHBhcmFt ZXRlcnMsIHNvIGFzc2lnbiBvbmUgdG8gb3JkaW5hcnkgcGFyYW1ldGVyIGZpcnN0LgotKyAgZnVu Y19zdHJpcG5hbWVfcmVzdWx0PSR7M30KLSsgIGZ1bmNfc3RyaXBuYW1lX3Jlc3VsdD0ke2Z1bmNf c3RyaXBuYW1lX3Jlc3VsdCMiJHsxfSJ9Ci0rICBmdW5jX3N0cmlwbmFtZV9yZXN1bHQ9JHtmdW5j X3N0cmlwbmFtZV9yZXN1bHQlIiR7Mn0ifQotK30KLSsKLSsjIGZ1bmNfb3B0X3NwbGl0Ci0rZnVu Y19vcHRfc3BsaXQgKCkKLSt7Ci0rICBmdW5jX29wdF9zcGxpdF9vcHQ9JHsxJSU9Kn0KLSsgIGZ1 bmNfb3B0X3NwbGl0X2FyZz0kezEjKj19Ci0rfQotKwotKyMgZnVuY19sbzJvIG9iamVjdAotK2Z1 bmNfbG8ybyAoKQotK3sKLSsgIGNhc2UgJHsxfSBpbgotKyAgICAqLmxvKSBmdW5jX2xvMm9fcmVz dWx0PSR7MSUubG99LiR7b2JqZXh0fSA7OwotKyAgICAqKSAgICBmdW5jX2xvMm9fcmVzdWx0PSR7 MX0gOzsKLSsgIGVzYWMKLSt9Ci0rCi0rIyBmdW5jX3hmb3JtIGxpYm9iai1vci1zb3VyY2UKLStm dW5jX3hmb3JtICgpCi0rewotKyAgZnVuY194Zm9ybV9yZXN1bHQ9JHsxJS4qfS5sbwotK30KLSsK LSsjIGZ1bmNfYXJpdGggYXJpdGhtZXRpYy10ZXJtLi4uCi0rZnVuY19hcml0aCAoKQotK3sKLSsg IGZ1bmNfYXJpdGhfcmVzdWx0PSQoKCAkKiApKQotK30KLSsKLSsjIGZ1bmNfbGVuIHN0cmluZwot KyMgU1RSSU5HIG1heSBub3Qgc3RhcnQgd2l0aCBhIGh5cGhlbi4KLStmdW5jX2xlbiAoKQotK3sK LSsgIGZ1bmNfbGVuX3Jlc3VsdD0keyMxfQotK30KLSsKLStfTFRfRU9GCi0rICAgIDs7Ci0rICAq KSAjIEJvdXJuZSBjb21wYXRpYmxlIGZ1bmN0aW9ucy4KLSsgICAgY2F0IDw8IFxfTFRfRU9GID4+ ICIkY2ZnZmlsZSIKLSsKLSsjIGZ1bmNfZGlybmFtZSBmaWxlIGFwcGVuZCBub25kaXJfcmVwbGFj ZW1lbnQKLSsjIENvbXB1dGUgdGhlIGRpcm5hbWUgb2YgRklMRS4gIElmIG5vbmVtcHR5LCBhZGQg QVBQRU5EIHRvIHRoZSByZXN1bHQsCi0rIyBvdGhlcndpc2Ugc2V0IHJlc3VsdCB0byBOT05ESVJf UkVQTEFDRU1FTlQuCi0rZnVuY19kaXJuYW1lICgpCi0rewotKyAgIyBFeHRyYWN0IHN1YmRpcmVj dG9yeSBmcm9tIHRoZSBhcmd1bWVudC4KLSsgIGZ1bmNfZGlybmFtZV9yZXN1bHQ9YCRFQ0hPICJY JHsxfSIgfCAkWHNlZCAtZSAiJGRpcm5hbWUiYAotKyAgaWYgdGVzdCAiWCRmdW5jX2Rpcm5hbWVf cmVzdWx0IiA9ICJYJHsxfSI7IHRoZW4KLSsgICAgZnVuY19kaXJuYW1lX3Jlc3VsdD0iJHszfSIK LSsgIGVsc2UKLSsgICAgZnVuY19kaXJuYW1lX3Jlc3VsdD0iJGZ1bmNfZGlybmFtZV9yZXN1bHQk ezJ9IgotKyAgZmkKLSt9Ci0rCi0rIyBmdW5jX2Jhc2VuYW1lIGZpbGUKLStmdW5jX2Jhc2VuYW1l ICgpCi0rewotKyAgZnVuY19iYXNlbmFtZV9yZXN1bHQ9YCRFQ0hPICJYJHsxfSIgfCAkWHNlZCAt ZSAiJGJhc2VuYW1lImAKLSt9Ci0rCi0rCi0rIyBmdW5jX3N0cmlwbmFtZSBwcmVmaXggc3VmZml4 IG5hbWUKLSsjIHN0cmlwIFBSRUZJWCBhbmQgU1VGRklYIG9mZiBvZiBOQU1FLgotKyMgUFJFRklY IGFuZCBTVUZGSVggbXVzdCBub3QgY29udGFpbiBnbG9iYmluZyBvciByZWdleCBzcGVjaWFsCi0r IyBjaGFyYWN0ZXJzLCBoYXNoZXMsIHBlcmNlbnQgc2lnbnMsIGJ1dCBTVUZGSVggbWF5IGNvbnRh aW4gYSBsZWFkaW5nCi0rIyBkb3QgKGluIHdoaWNoIGNhc2UgdGhhdCBtYXRjaGVzIG9ubHkgYSBk b3QpLgotKyMgZnVuY19zdHJpcF9zdWZmaXggcHJlZml4IG5hbWUKLStmdW5jX3N0cmlwbmFtZSAo KQotK3sKLSsgIGNhc2UgJHsyfSBpbgotKyAgICAuKikgZnVuY19zdHJpcG5hbWVfcmVzdWx0PWAk RUNITyAiWCR7M30iIFwKLSsgICAgICAgICAgIHwgJFhzZWQgLWUgInMlXiR7MX0lJSIgLWUgInMl XFxcXCR7Mn1cJCUlImA7OwotKyAgICAqKSAgZnVuY19zdHJpcG5hbWVfcmVzdWx0PWAkRUNITyAi WCR7M30iIFwKLSsgICAgICAgICAgIHwgJFhzZWQgLWUgInMlXiR7MX0lJSIgLWUgInMlJHsyfVwk JSUiYDs7Ci0rICBlc2FjCi0rfQotKwotKyMgc2VkIHNjcmlwdHM6Ci0rbXlfc2VkX2xvbmdfb3B0 PScxcy9eXCgtW149XSpcKT0uKi9cMS87cScKLStteV9zZWRfbG9uZ19hcmc9JzFzL14tW149XSo9 Ly8nCi0rCi0rIyBmdW5jX29wdF9zcGxpdAotK2Z1bmNfb3B0X3NwbGl0ICgpCi0rewotKyAgZnVu Y19vcHRfc3BsaXRfb3B0PWAkRUNITyAiWCR7MX0iIHwgJFhzZWQgLWUgIiRteV9zZWRfbG9uZ19v cHQiYAotKyAgZnVuY19vcHRfc3BsaXRfYXJnPWAkRUNITyAiWCR7MX0iIHwgJFhzZWQgLWUgIiRt eV9zZWRfbG9uZ19hcmciYAotK30KLSsKLSsjIGZ1bmNfbG8ybyBvYmplY3QKLStmdW5jX2xvMm8g KCkKLSt7Ci0rICBmdW5jX2xvMm9fcmVzdWx0PWAkRUNITyAiWCR7MX0iIHwgJFhzZWQgLWUgIiRs bzJvImAKLSt9Ci0rCi0rIyBmdW5jX3hmb3JtIGxpYm9iai1vci1zb3VyY2UKLStmdW5jX3hmb3Jt ICgpCi0rewotKyAgZnVuY194Zm9ybV9yZXN1bHQ9YCRFQ0hPICJYJHsxfSIgfCAkWHNlZCAtZSAn cy9cLlteLl0qJC8ubG8vJ2AKLSt9Ci0rCi0rIyBmdW5jX2FyaXRoIGFyaXRobWV0aWMtdGVybS4u LgotK2Z1bmNfYXJpdGggKCkKLSt7Ci0rICBmdW5jX2FyaXRoX3Jlc3VsdD1gZXhwciAiJEAiYAot K30KLSsKLSsjIGZ1bmNfbGVuIHN0cmluZwotKyMgU1RSSU5HIG1heSBub3Qgc3RhcnQgd2l0aCBh IGh5cGhlbi4KLStmdW5jX2xlbiAoKQotK3sKLSsgIGZ1bmNfbGVuX3Jlc3VsdD1gZXhwciAiJDEi IDogIi4qIiAyPi9kZXYvbnVsbCB8fCBlY2hvICRtYXhfY21kX2xlbmAKLSt9Ci0rCi0rX0xUX0VP RgotK2VzYWMKLSsKLStjYXNlICRsdF9zaGVsbF9hcHBlbmQgaW4KLSsgIHllcykKLSsgICAgY2F0 IDw8IFxfTFRfRU9GID4+ICIkY2ZnZmlsZSIKLSsKLSsjIGZ1bmNfYXBwZW5kIHZhciB2YWx1ZQot KyMgQXBwZW5kIFZBTFVFIHRvIHRoZSBlbmQgb2Ygc2hlbGwgdmFyaWFibGUgVkFSLgotK2Z1bmNf YXBwZW5kICgpCi0rewotKyAgZXZhbCAiJDErPVwkMiIKLSt9Ci0rX0xUX0VPRgotKyAgICA7Owot KyAgKikKLSsgICAgY2F0IDw8IFxfTFRfRU9GID4+ICIkY2ZnZmlsZSIKLSsKLSsjIGZ1bmNfYXBw ZW5kIHZhciB2YWx1ZQotKyMgQXBwZW5kIFZBTFVFIHRvIHRoZSBlbmQgb2Ygc2hlbGwgdmFyaWFi bGUgVkFSLgotK2Z1bmNfYXBwZW5kICgpCi0rewotKyAgZXZhbCAiJDE9XCQkMVwkMiIKLSt9Ci0r Ci0rX0xUX0VPRgotKyAgICA7OwotKyAgZXNhYwotKwotKwotKyAgc2VkIC1uICcvXiMgR2VuZXJh dGVkIHNoZWxsIGZ1bmN0aW9ucyBpbnNlcnRlZCBoZXJlLywkcCcgIiRsdG1haW4iID4+ICIkY2Zn ZmlsZSIgXAotKyAgICB8fCAocm0gLWYgIiRjZmdmaWxlIjsgZXhpdCAxKQotKwotKyAgbXYgLWYg IiRjZmdmaWxlIiAiJG9maWxlIiB8fAotKyAgICAocm0gLWYgIiRvZmlsZSIgJiYgY3AgIiRjZmdm aWxlIiAiJG9maWxlIiAmJiBybSAtZiAiJGNmZ2ZpbGUiKQotKyAgY2htb2QgK3ggIiRvZmlsZSIK LSsKLSsKLSsgICAgY2F0IDw8X0xUX0VPRiA+PiAiJG9maWxlIgotKwotKyMgIyMjIEJFR0lOIExJ QlRPT0wgVEFHIENPTkZJRzogQ1hYCi0rCi0rIyBUaGUgbGlua2VyIHVzZWQgdG8gYnVpbGQgbGli cmFyaWVzLgotK0xEPSRsdF9MRF9DWFgKLSsKLSsjIENvbW1hbmRzIHVzZWQgdG8gYnVpbGQgYW4g b2xkLXN0eWxlIGFyY2hpdmUuCi0rb2xkX2FyY2hpdmVfY21kcz0kbHRfb2xkX2FyY2hpdmVfY21k c19DWFgKLSsKLSsjIEEgbGFuZ3VhZ2Ugc3BlY2lmaWMgY29tcGlsZXIuCi0rQ0M9JGx0X2NvbXBp bGVyX0NYWAotKwotKyMgSXMgdGhlIGNvbXBpbGVyIHRoZSBHTlUgY29tcGlsZXI/Ci0rd2l0aF9n Y2M9JEdDQ19DWFgKLSsKLSsjIENvbXBpbGVyIGZsYWcgdG8gdHVybiBvZmYgYnVpbHRpbiBmdW5j dGlvbnMuCi0rbm9fYnVpbHRpbl9mbGFnPSRsdF9sdF9wcm9nX2NvbXBpbGVyX25vX2J1aWx0aW5f ZmxhZ19DWFgKLSsKLSsjIEhvdyB0byBwYXNzIGEgbGlua2VyIGZsYWcgdGhyb3VnaCB0aGUgY29t cGlsZXIuCi0rd2w9JGx0X2x0X3Byb2dfY29tcGlsZXJfd2xfQ1hYCi0rCi0rIyBBZGRpdGlvbmFs IGNvbXBpbGVyIGZsYWdzIGZvciBidWlsZGluZyBsaWJyYXJ5IG9iamVjdHMuCi0rcGljX2ZsYWc9 JGx0X2x0X3Byb2dfY29tcGlsZXJfcGljX0NYWAotKwotKyMgQ29tcGlsZXIgZmxhZyB0byBwcmV2 ZW50IGR5bmFtaWMgbGlua2luZy4KLStsaW5rX3N0YXRpY19mbGFnPSRsdF9sdF9wcm9nX2NvbXBp bGVyX3N0YXRpY19DWFgKLSsKLSsjIERvZXMgY29tcGlsZXIgc2ltdWx0YW5lb3VzbHkgc3VwcG9y dCAtYyBhbmQgLW8gb3B0aW9ucz8KLStjb21waWxlcl9jX289JGx0X2x0X2N2X3Byb2dfY29tcGls ZXJfY19vX0NYWAotKwotKyMgV2hldGhlciBvciBub3QgdG8gYWRkIC1sYyBmb3IgYnVpbGRpbmcg c2hhcmVkIGxpYnJhcmllcy4KLStidWlsZF9saWJ0b29sX25lZWRfbGM9JGFyY2hpdmVfY21kc19u ZWVkX2xjX0NYWAotKwotKyMgV2hldGhlciBvciBub3QgdG8gZGlzYWxsb3cgc2hhcmVkIGxpYnMg d2hlbiBydW50aW1lIGxpYnMgYXJlIHN0YXRpYy4KLSthbGxvd19saWJ0b29sX2xpYnNfd2l0aF9z dGF0aWNfcnVudGltZXM9JGVuYWJsZV9zaGFyZWRfd2l0aF9zdGF0aWNfcnVudGltZXNfQ1hYCi0r Ci0rIyBDb21waWxlciBmbGFnIHRvIGFsbG93IHJlZmxleGl2ZSBkbG9wZW5zLgotK2V4cG9ydF9k eW5hbWljX2ZsYWdfc3BlYz0kbHRfZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjX0NYWAotKwotKyMg Q29tcGlsZXIgZmxhZyB0byBnZW5lcmF0ZSBzaGFyZWQgb2JqZWN0cyBkaXJlY3RseSBmcm9tIGFy Y2hpdmVzLgotK3dob2xlX2FyY2hpdmVfZmxhZ19zcGVjPSRsdF93aG9sZV9hcmNoaXZlX2ZsYWdf c3BlY19DWFgKLSsKLSsjIFdoZXRoZXIgdGhlIGNvbXBpbGVyIGNvcGVzIHdpdGggcGFzc2luZyBu byBvYmplY3RzIGRpcmVjdGx5LgotK2NvbXBpbGVyX25lZWRzX29iamVjdD0kbHRfY29tcGlsZXJf bmVlZHNfb2JqZWN0X0NYWAotKwotKyMgQ3JlYXRlIGFuIG9sZC1zdHlsZSBhcmNoaXZlIGZyb20g YSBzaGFyZWQgYXJjaGl2ZS4KLStvbGRfYXJjaGl2ZV9mcm9tX25ld19jbWRzPSRsdF9vbGRfYXJj aGl2ZV9mcm9tX25ld19jbWRzX0NYWAotKwotKyMgQ3JlYXRlIGEgdGVtcG9yYXJ5IG9sZC1zdHls ZSBhcmNoaXZlIHRvIGxpbmsgaW5zdGVhZCBvZiBhIHNoYXJlZCBhcmNoaXZlLgotK29sZF9hcmNo aXZlX2Zyb21fZXhwc3ltc19jbWRzPSRsdF9vbGRfYXJjaGl2ZV9mcm9tX2V4cHN5bXNfY21kc19D WFgKLSsKLSsjIENvbW1hbmRzIHVzZWQgdG8gYnVpbGQgYSBzaGFyZWQgYXJjaGl2ZS4KLSthcmNo aXZlX2NtZHM9JGx0X2FyY2hpdmVfY21kc19DWFgKLSthcmNoaXZlX2V4cHN5bV9jbWRzPSRsdF9h cmNoaXZlX2V4cHN5bV9jbWRzX0NYWAotKwotKyMgQ29tbWFuZHMgdXNlZCB0byBidWlsZCBhIGxv YWRhYmxlIG1vZHVsZSBpZiBkaWZmZXJlbnQgZnJvbSBidWlsZGluZwotKyMgYSBzaGFyZWQgYXJj aGl2ZS4KLSttb2R1bGVfY21kcz0kbHRfbW9kdWxlX2NtZHNfQ1hYCi0rbW9kdWxlX2V4cHN5bV9j bWRzPSRsdF9tb2R1bGVfZXhwc3ltX2NtZHNfQ1hYCi0rCi0rIyBXaGV0aGVyIHdlIGFyZSBidWls ZGluZyB3aXRoIEdOVSBsZCBvciBub3QuCi0rd2l0aF9nbnVfbGQ9JGx0X3dpdGhfZ251X2xkX0NY WAotKwotKyMgRmxhZyB0aGF0IGFsbG93cyBzaGFyZWQgbGlicmFyaWVzIHdpdGggdW5kZWZpbmVk IHN5bWJvbHMgdG8gYmUgYnVpbHQuCi0rYWxsb3dfdW5kZWZpbmVkX2ZsYWc9JGx0X2FsbG93X3Vu ZGVmaW5lZF9mbGFnX0NYWAotKwotKyMgRmxhZyB0aGF0IGVuZm9yY2VzIG5vIHVuZGVmaW5lZCBz eW1ib2xzLgotK25vX3VuZGVmaW5lZF9mbGFnPSRsdF9ub191bmRlZmluZWRfZmxhZ19DWFgKLSsK LSsjIEZsYWcgdG8gaGFyZGNvZGUgXCRsaWJkaXIgaW50byBhIGJpbmFyeSBkdXJpbmcgbGlua2lu Zy4KLSsjIFRoaXMgbXVzdCB3b3JrIGV2ZW4gaWYgXCRsaWJkaXIgZG9lcyBub3QgZXhpc3QKLSto YXJkY29kZV9saWJkaXJfZmxhZ19zcGVjPSRsdF9oYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX0NY WAotKwotKyMgSWYgbGQgaXMgdXNlZCB3aGVuIGxpbmtpbmcsIGZsYWcgdG8gaGFyZGNvZGUgXCRs aWJkaXIgaW50byBhIGJpbmFyeQotKyMgZHVyaW5nIGxpbmtpbmcuICBUaGlzIG11c3Qgd29yayBl dmVuIGlmIFwkbGliZGlyIGRvZXMgbm90IGV4aXN0LgotK2hhcmRjb2RlX2xpYmRpcl9mbGFnX3Nw ZWNfbGQ9JGx0X2hhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfbGRfQ1hYCi0rCi0rIyBXaGV0aGVy IHdlIG5lZWQgYSBzaW5nbGUgIi1ycGF0aCIgZmxhZyB3aXRoIGEgc2VwYXJhdGVkIGFyZ3VtZW50 LgotK2hhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3I9JGx0X2hhcmRjb2RlX2xpYmRpcl9zZXBhcmF0 b3JfQ1hYCi0rCi0rIyBTZXQgdG8gInllcyIgaWYgdXNpbmcgRElSL2xpYk5BTUVcJHtzaGFyZWRf ZXh0fSBkdXJpbmcgbGlua2luZyBoYXJkY29kZXMKLSsjIERJUiBpbnRvIHRoZSByZXN1bHRpbmcg YmluYXJ5LgotK2hhcmRjb2RlX2RpcmVjdD0kaGFyZGNvZGVfZGlyZWN0X0NYWAotKwotKyMgU2V0 IHRvICJ5ZXMiIGlmIHVzaW5nIERJUi9saWJOQU1FXCR7c2hhcmVkX2V4dH0gZHVyaW5nIGxpbmtp bmcgaGFyZGNvZGVzCi0rIyBESVIgaW50byB0aGUgcmVzdWx0aW5nIGJpbmFyeSBhbmQgdGhlIHJl c3VsdGluZyBsaWJyYXJ5IGRlcGVuZGVuY3kgaXMKLSsjICJhYnNvbHV0ZSIsaS5lIGltcG9zc2li bGUgdG8gY2hhbmdlIGJ5IHNldHRpbmcgXCR7c2hsaWJwYXRoX3Zhcn0gaWYgdGhlCi0rIyBsaWJy YXJ5IGlzIHJlbG9jYXRlZC4KLStoYXJkY29kZV9kaXJlY3RfYWJzb2x1dGU9JGhhcmRjb2RlX2Rp cmVjdF9hYnNvbHV0ZV9DWFgKLSsKLSsjIFNldCB0byAieWVzIiBpZiB1c2luZyB0aGUgLUxESVIg ZmxhZyBkdXJpbmcgbGlua2luZyBoYXJkY29kZXMgRElSCi0rIyBpbnRvIHRoZSByZXN1bHRpbmcg YmluYXJ5LgotK2hhcmRjb2RlX21pbnVzX0w9JGhhcmRjb2RlX21pbnVzX0xfQ1hYCi0rCi0rIyBT ZXQgdG8gInllcyIgaWYgdXNpbmcgU0hMSUJQQVRIX1ZBUj1ESVIgZHVyaW5nIGxpbmtpbmcgaGFy ZGNvZGVzIERJUgotKyMgaW50byB0aGUgcmVzdWx0aW5nIGJpbmFyeS4KLStoYXJkY29kZV9zaGxp YnBhdGhfdmFyPSRoYXJkY29kZV9zaGxpYnBhdGhfdmFyX0NYWAotKwotKyMgU2V0IHRvICJ5ZXMi IGlmIGJ1aWxkaW5nIGEgc2hhcmVkIGxpYnJhcnkgYXV0b21hdGljYWxseSBoYXJkY29kZXMgRElS Ci0rIyBpbnRvIHRoZSBsaWJyYXJ5IGFuZCBhbGwgc3Vic2VxdWVudCBsaWJyYXJpZXMgYW5kIGV4 ZWN1dGFibGVzIGxpbmtlZAotKyMgYWdhaW5zdCBpdC4KLStoYXJkY29kZV9hdXRvbWF0aWM9JGhh cmRjb2RlX2F1dG9tYXRpY19DWFgKLSsKLSsjIFNldCB0byB5ZXMgaWYgbGlua2VyIGFkZHMgcnVu dGltZSBwYXRocyBvZiBkZXBlbmRlbnQgbGlicmFyaWVzCi0rIyB0byBydW50aW1lIHBhdGggbGlz dC4KLStpbmhlcml0X3JwYXRoPSRpbmhlcml0X3JwYXRoX0NYWAotKwotKyMgV2hldGhlciBsaWJ0 b29sIG11c3QgbGluayBhIHByb2dyYW0gYWdhaW5zdCBhbGwgaXRzIGRlcGVuZGVuY3kgbGlicmFy aWVzLgotK2xpbmtfYWxsX2RlcGxpYnM9JGxpbmtfYWxsX2RlcGxpYnNfQ1hYCi0rCi0rIyBGaXgg dGhlIHNoZWxsIHZhcmlhYmxlIFwkc3JjZmlsZSBmb3IgdGhlIGNvbXBpbGVyLgotK2ZpeF9zcmNm aWxlX3BhdGg9JGx0X2ZpeF9zcmNmaWxlX3BhdGhfQ1hYCi0rCi0rIyBTZXQgdG8gInllcyIgaWYg ZXhwb3J0ZWQgc3ltYm9scyBhcmUgcmVxdWlyZWQuCi0rYWx3YXlzX2V4cG9ydF9zeW1ib2xzPSRh bHdheXNfZXhwb3J0X3N5bWJvbHNfQ1hYCi0rCi0rIyBUaGUgY29tbWFuZHMgdG8gbGlzdCBleHBv cnRlZCBzeW1ib2xzLgotK2V4cG9ydF9zeW1ib2xzX2NtZHM9JGx0X2V4cG9ydF9zeW1ib2xzX2Nt ZHNfQ1hYCi0rCi0rIyBTeW1ib2xzIHRoYXQgc2hvdWxkIG5vdCBiZSBsaXN0ZWQgaW4gdGhlIHBy ZWxvYWRlZCBzeW1ib2xzLgotK2V4Y2x1ZGVfZXhwc3ltcz0kbHRfZXhjbHVkZV9leHBzeW1zX0NY WAotKwotKyMgU3ltYm9scyB0aGF0IG11c3QgYWx3YXlzIGJlIGV4cG9ydGVkLgotK2luY2x1ZGVf ZXhwc3ltcz0kbHRfaW5jbHVkZV9leHBzeW1zX0NYWAotKwotKyMgQ29tbWFuZHMgbmVjZXNzYXJ5 IGZvciBsaW5raW5nIHByb2dyYW1zIChhZ2FpbnN0IGxpYnJhcmllcykgd2l0aCB0ZW1wbGF0ZXMu Ci0rcHJlbGlua19jbWRzPSRsdF9wcmVsaW5rX2NtZHNfQ1hYCi0rCi0rIyBTcGVjaWZ5IGZpbGVu YW1lIGNvbnRhaW5pbmcgaW5wdXQgZmlsZXMuCi0rZmlsZV9saXN0X3NwZWM9JGx0X2ZpbGVfbGlz dF9zcGVjX0NYWAotKwotKyMgSG93IHRvIGhhcmRjb2RlIGEgc2hhcmVkIGxpYnJhcnkgcGF0aCBp bnRvIGFuIGV4ZWN1dGFibGUuCi0raGFyZGNvZGVfYWN0aW9uPSRoYXJkY29kZV9hY3Rpb25fQ1hY Ci0rCi0rIyBUaGUgZGlyZWN0b3JpZXMgc2VhcmNoZWQgYnkgdGhpcyBjb21waWxlciB3aGVuIGNy ZWF0aW5nIGEgc2hhcmVkIGxpYnJhcnkuCi0rY29tcGlsZXJfbGliX3NlYXJjaF9kaXJzPSRsdF9j b21waWxlcl9saWJfc2VhcmNoX2RpcnNfQ1hYCi0rCi0rIyBEZXBlbmRlbmNpZXMgdG8gcGxhY2Ug YmVmb3JlIGFuZCBhZnRlciB0aGUgb2JqZWN0cyBiZWluZyBsaW5rZWQgdG8KLSsjIGNyZWF0ZSBh IHNoYXJlZCBsaWJyYXJ5LgotK3ByZWRlcF9vYmplY3RzPSRsdF9wcmVkZXBfb2JqZWN0c19DWFgK LStwb3N0ZGVwX29iamVjdHM9JGx0X3Bvc3RkZXBfb2JqZWN0c19DWFgKLStwcmVkZXBzPSRsdF9w cmVkZXBzX0NYWAotK3Bvc3RkZXBzPSRsdF9wb3N0ZGVwc19DWFgKLSsKLSsjIFRoZSBsaWJyYXJ5 IHNlYXJjaCBwYXRoIHVzZWQgaW50ZXJuYWxseSBieSB0aGUgY29tcGlsZXIgd2hlbiBsaW5raW5n Ci0rIyBhIHNoYXJlZCBsaWJyYXJ5LgotK2NvbXBpbGVyX2xpYl9zZWFyY2hfcGF0aD0kbHRfY29t cGlsZXJfbGliX3NlYXJjaF9wYXRoX0NYWAotKwotKyMgIyMjIEVORCBMSUJUT09MIFRBRyBDT05G SUc6IENYWAotK19MVF9FT0YKLSsKLSsgOzsKLSsKLSsgIGVzYWMKLStkb25lICMgZm9yIGFjX3Rh ZwotKwotKwotK3sgKGV4aXQgMCk7IGV4aXQgMDsgfQotK19BQ0VPRgotK2NobW9kICt4ICRDT05G SUdfU1RBVFVTCi0rYWNfY2xlYW5fZmlsZXM9JGFjX2NsZWFuX2ZpbGVzX3NhdmUKLSsKLSt0ZXN0 ICRhY193cml0ZV9mYWlsID0gMCB8fAotKyAgeyB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzog ZXJyb3I6IHdyaXRlIGZhaWx1cmUgY3JlYXRpbmcgJENPTkZJR19TVEFUVVMiID4mNQotKyRhc19l Y2hvICIkYXNfbWU6IGVycm9yOiB3cml0ZSBmYWlsdXJlIGNyZWF0aW5nICRDT05GSUdfU1RBVFVT IiA+JjI7fQotKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQotKwotKwotKyMgY29uZmlndXJl IGlzIHdyaXRpbmcgdG8gY29uZmlnLmxvZywgYW5kIHRoZW4gY2FsbHMgY29uZmlnLnN0YXR1cy4K LSsjIGNvbmZpZy5zdGF0dXMgZG9lcyBpdHMgb3duIHJlZGlyZWN0aW9uLCBhcHBlbmRpbmcgdG8g Y29uZmlnLmxvZy4KLSsjIFVuZm9ydHVuYXRlbHksIG9uIERPUyB0aGlzIGZhaWxzLCBhcyBjb25m aWcubG9nIGlzIHN0aWxsIGtlcHQgb3BlbgotKyMgYnkgY29uZmlndXJlLCBzbyBjb25maWcuc3Rh dHVzIHdvbid0IGJlIGFibGUgdG8gd3JpdGUgdG8gaXQ7IGl0cwotKyMgb3V0cHV0IGlzIHNpbXBs eSBkaXNjYXJkZWQuICBTbyB3ZSBleGVjIHRoZSBGRCB0byAvZGV2L251bGwsCi0rIyBlZmZlY3Rp dmVseSBjbG9zaW5nIGNvbmZpZy5sb2csIHNvIGl0IGNhbiBiZSBwcm9wZXJseSAocmUpb3BlbmVk IGFuZAotKyMgYXBwZW5kZWQgdG8gYnkgY29uZmlnLnN0YXR1cy4gIFdoZW4gY29taW5nIGJhY2sg dG8gY29uZmlndXJlLCB3ZQotKyMgbmVlZCB0byBtYWtlIHRoZSBGRCBhdmFpbGFibGUgYWdhaW4u Ci0raWYgdGVzdCAiJG5vX2NyZWF0ZSIgIT0geWVzOyB0aGVuCi0rICBhY19jc19zdWNjZXNzPToK LSsgIGFjX2NvbmZpZ19zdGF0dXNfYXJncz0KLSsgIHRlc3QgIiRzaWxlbnQiID0geWVzICYmCi0r ICAgIGFjX2NvbmZpZ19zdGF0dXNfYXJncz0iJGFjX2NvbmZpZ19zdGF0dXNfYXJncyAtLXF1aWV0 IgotKyAgZXhlYyA1Pi9kZXYvbnVsbAotKyAgJFNIRUxMICRDT05GSUdfU1RBVFVTICRhY19jb25m aWdfc3RhdHVzX2FyZ3MgfHwgYWNfY3Nfc3VjY2Vzcz1mYWxzZQotKyAgZXhlYyA1Pj5jb25maWcu bG9nCi0rICAjIFVzZSB8fCwgbm90ICYmLCB0byBhdm9pZCBleGl0aW5nIGZyb20gdGhlIGlmIHdp dGggJD8gPSAxLCB3aGljaAotKyAgIyB3b3VsZCBtYWtlIGNvbmZpZ3VyZSBmYWlsIGlmIHRoaXMg aXMgdGhlIGxhc3QgaW5zdHJ1Y3Rpb24uCi0rICAkYWNfY3Nfc3VjY2VzcyB8fCB7IChleGl0IDEp OyBleGl0IDE7IH0KLStmaQotK2lmIHRlc3QgLW4gIiRhY191bnJlY29nbml6ZWRfb3B0cyIgJiYg dGVzdCAiJGVuYWJsZV9vcHRpb25fY2hlY2tpbmciICE9IG5vOyB0aGVuCi0rICB7ICRhc19lY2hv ICIkYXNfbWU6JExJTkVOTzogV0FSTklORzogdW5yZWNvZ25pemVkIG9wdGlvbnM6ICRhY191bnJl Y29nbml6ZWRfb3B0cyIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogV0FSTklORzogdW5yZWNvZ25p emVkIG9wdGlvbnM6ICRhY191bnJlY29nbml6ZWRfb3B0cyIgPiYyO30KLStmaQotKwotKwotK2Vj aG8gIgotKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotKyRQQUNLQUdFLSRWRVJTSU9OIGxpYnJhcnkg Y29uZmlndXJhdGlvbjoKLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSsKLStEaXJlY3RvcmllczoK LSsgIC0gcHJlZml4IC4uLi4uLi4uLi4uLi4uLiA6ICR7cHJlZml4fQotKyAgLSBleGVjX3ByZWZp eCAuLi4uLi4uLi4uIDogJHtleGVjX3ByZWZpeH0KLSsgIC0gaW5jbHVkZWRpciAuLi4uLi4uLi4u LiA6ICR7aW5jbHVkZWRpcn0KLSsgIC0gbGliZGlyIC4uLi4uLi4uLi4uLi4uLiA6ICR7bGliZGly fQotKyAgLSBkb2NkaXIgLi4uLi4uLi4uLi4uLi4uIDogJHtkb2NkaXJ9Ci0rICAtIG1hbmRpciAu Li4uLi4uLi4uLi4uLi4gOiAke21hbmRpcn0KLSsgIC0gaW5mb2RpciAuLi4uLi4uLi4uLi4uLiA6 ICR7aW5mb2Rpcn0KLSsKLStTd2l0Y2hlczoKLSsgIC0gZXhjZXB0aW9ucyAuLi4uLi4uLi4uLiA6 ICR7ZW5hYmxlX2V4Y2VwdGlvbnN9Ci0rICAtIGluZm8tZG9jIC4uLi4uLi4uLi4uLi4gOiAke2Vu YWJsZV9pbmZvX2RvY30KLSsgIC0gaHRtbC1kb2MgLi4uLi4uLi4uLi4uLiA6ICR7ZW5hYmxlX2h0 bWxfZG9jfQotKyAgLSBzaGFyZWQgLi4uLi4uLi4uLi4uLi4uIDogJHtlbmFibGVfc2hhcmVkfQot KyAgLSBzdGF0aWMgLi4uLi4uLi4uLi4uLi4uIDogJHtlbmFibGVfc3RhdGljfQotKwotK0RvY3Vt ZW50YXRpb24gdG9vbHM6Ci0rICAtIHRleGluZm8gLi4uLi4uLi4uLi4uLi4gOiAke3RleGluZm9f b2t9Ci0rICAtIGRveHlnZW4gLi4uLi4uLi4uLi4uLi4gOiAke2RveHlnZW5fb2t9Ci0rICAtIGxh dGV4IC4uLi4uLi4uLi4uLi4uLi4gOiAke2xhdGV4X29rfQotKyAgLSBkdmlwcyAuLi4uLi4uLi4u Li4uLi4uIDogJHtkdmlwc19va30KLSsgIC0gZ2hvc3RzY3JpcHQgLi4uLi4uLi4uLiA6ICR7Z3Nf b2t9Ci0rCi0rVGVzdGluZyB0b29sczoKLSsgIC0gZGlmZiAuLi4uLi4uLi4uLi4uLi4uLiA6ICR7 ZGlmZl9va30KLSsgIC0gc2VkIC4uLi4uLi4uLi4uLi4uLi4uLiA6ICR7c2VkX29rfQotKwotK0Nv bXBpbGVyL2xpbmtlciBmbGFncy9saWJzL2RlZnM6Ci0rICAtIENYWCAuLi4uLi4uLi4uLi4uLi4u Li4gOiAke0NYWH0KLSsgIC0gQ1hYRkxBR1MgLi4uLi4uLi4uLi4uLiA6ICR7Q1hYRkxBR1N9Ci0r ICAtIENQUEZMQUdTIC4uLi4uLi4uLi4uLi4gOiAke0NQUEZMQUdTfQotKyAgLSBMREZMQUdTIC4u Li4uLi4uLi4uLi4uIDogJHtMREZMQUdTfQotKyAgLSBMSUJTIC4uLi4uLi4uLi4uLi4uLi4uIDog JHtMSUJTfQotKwotK0J1cnJpZWQgaGVhZGVyIGZpbGVzOgotKyAgLSBTT0NJX0hFQURFUlNfQlVS SUVEIC4uLi4uLi4gOiAke2VuYWJsZV9idXJyaWVkX2hlYWRlcnN9Ci0rICAtIE1ZU1FMX0hFQURF UlNfQlVSSUVEIC4uLi4uLiA6ICR7ZW5hYmxlX215c3FsX2J1cnJpZWRfaGVhZGVyc30KLSsgIC0g UE9TVEdSRVNRTF9IRUFERVJTX0JVUklFRCAuIDogJHtlbmFibGVfcG9zdGdyZXNxbF9idXJyaWVk X2hlYWRlcnN9Ci0rCi0rRXh0ZXJuYWwgbGlicmFyaWVzOgotKyAgLSBCb29zdCAuLi4uLi4uLi4u Li4uLi4uIDoKLSsgICAgbyBCT09TVF9WRVJTSU9OIC4uLi4uLiA6ICR7Qk9PU1RfVkVSU0lPTn0K LSsgICAgbyBCT09TVF9DRkxBR1MgLi4uLi4uLiA6ICR7Qk9PU1RfQ0ZMQUdTfQotKyAgICBvIEJP T1NUX0xJQlMgLi4uLi4uLi4uIDogJHtCT09TVF9MSUJTfQotKyAgICBvIEJPT1NUX0RUX0xJQiAu Li4uLi4uIDogJHtCT09TVF9EQVRFX1RJTUVfTElCfQotKyAgICBvIEJPT1NUX1BPX0xJQiAuLi4u Li4uIDogJHtCT09TVF9QUk9HUkFNX09QVElPTlNfTElCfQotKwotKyAgLSBNeVNRTCBzdXBwb3J0 IC4uLi4uLi4uIDogJHtlbmFibGVfYmFja2VuZF9teXNxbH0KLSsgICAgbyBNWVNRTF9WRVJTSU9O IC4uLi4uLiA6ICR7TVlTUUxfVkVSU0lPTn0KLSsgICAgbyBNWVNRTF9DRkxBR1MgLi4uLi4uLiA6 ICR7TVlTUUxfQ0ZMQUdTfQotKyAgICBvIE1ZU1FMX0xERkxBR1MgLi4uLi4uIDogJHtNWVNRTF9M REZMQUdTfQotKwotKyAgLSBQb3N0R3JlU1FMIHN1cHBvcnQgLi4uIDogJHtlbmFibGVfYmFja2Vu ZF9wb3N0Z3Jlc3FsfQotKyAgICBvIFBPU1RHUkVTUUxfVkVSU0lPTiAuIDogJHtQT1NUR1JFU1FM X1ZFUlNJT059Ci0rICAgIG8gUE9TVEdSRVNRTF9DRkxBR1MgLi4gOiAke1BPU1RHUkVTUUxfQ0ZM QUdTfQotKyAgICBvIFBPU1RHUkVTUUxfTERGTEFHUyAuIDogJHtQT1NUR1JFU1FMX0xERkxBR1N9 Ci0rCi0rICAtIE9yYWNsZSBzdXBwb3J0IC4uLi4uLi4gOiAke2VuYWJsZV9iYWNrZW5kX29yYWNs ZX0KLSsgICAgbyBPUkFDTEVfVkVSU0lPTiAuLi4uLiA6ICR7T1JBQ0xFX09DSV9WRVJTSU9OfQot KyAgICBvIE9SQUNMRV9DRkxBR1MgLi4uLi4uIDogJHtPUkFDTEVfT0NJX0NGTEFHU30KLSsgICAg byBPUkFDTEVfTERGTEFHUyAuLi4uLiA6ICR7T1JBQ0xFX09DSV9MREZMQUdTfQotKwotKyAgLSBD UFBVbml0IC4uLi4uLi4uLi4uLi4uIDoKLSsgICAgbyBDUFBVTklUX1ZFUlNJT04gLi4uLiA6ICR7 Q1BQVU5JVF9WRVJTSU9OfQotKyAgICBvIENQUFVOSVRfQ0ZMQUdTIC4uLi4uIDogJHtDUFBVTklU X0NGTEFHU30KLSsgICAgbyBDUFBVTklUX0xJQlMgLi4uLi4uLiA6ICR7Q1BQVU5JVF9MSUJTfQot IAotLWVjaG8gJycKLS1jZCBidWlsZC91bml4OyBgY2F0IGxvY2FsL3RjbGAgcGFyc2UtcGFyYW1l dGVycy50Y2wKLS0KLS1lY2hvICcnCi0tZWNobyAnQ29uZmlndXJlIGRvbmUuJwotLWVjaG8gJ1ll cywgaXQgd2FzIHNob3J0LicKLS1lY2hvICcnCi0tZWNobyAnWW91IGNhbiBub3cgcnVuIG1ha2Uu JwotKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotK05vdyB0eXBlICdtYWtlICYmIG1ha2UgaW5zdGFs bCcgdG8gYnVpbGQgYW5kIGluc3RhbGwgJFBBQ0tBR0UtJFZFUlNJT04gbGlicmFyeQotKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQotKyIKLWRpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9jb25maWd1 cmUuYWMgc29jaS0zLjAuMF90cmVwMzAwL2NvbmZpZ3VyZS5hYwotLS0tIHNvY2ktMy4wLjBfNC1w YWNrL2NvbmZpZ3VyZS5hYwkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAotKysr IHNvY2ktMy4wLjBfdHJlcDMwMC9jb25maWd1cmUuYWMJMjAwOS0wNS0yMiAyMjo1NDoyMi4wMDAw MDAwMDAgKzAyMDAKLUBAIC0wLDAgKzEsNDAwIEBACi0rIyBQcm9jZXNzIHRoaXMgZmlsZSB3aXRo IGF1dG9jb25mIHRvIHByb2R1Y2UgYSBjb25maWd1cmUgc2NyaXB0Ci0rIy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLStB Q19QUkVSRVEoMi41OSkKLStBQ19DT1BZUklHSFQoW0NvcHlyaWdodCAoQykgMjAwNC0yMDA5IE1h Y2llaiBTb2JjemFrIDxtc29iY3pha0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+XSkKLStBQ19JTklU KFtTT0NJXSxbMy4wLjBdLFttc29iY3pha0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXRdLFtzb2NpXSkK LStBQ19DT05GSUdfSEVBREVSKFtzb2NpL2NvbmZpZy5oXSkKLStBQ19DT05GSUdfU1JDRElSKFtz b2NpL2NvcmUvZXJyb3IuY3BwXSkKLStBQ19DT05GSUdfQVVYX0RJUihbY29uZmlnXSkKLStBTV9J TklUX0FVVE9NQUtFCi0rQU1fUEFUSF9DUFBVTklUKDEuMTApCi0rQU1fQ09ORElUSU9OQUwoW0hB VkVfQ1BQVU5JVF0sIFt0ZXN0ICJ4JENQUFVOSVRfTElCUyIgIT0geF0pCi0rCi0rIyBSUE0gcmVs ZWFzZSBudW1iZXIKLStSUE1fUkVMRUFTRT0iMTMiCi0rQUNfU1VCU1QoUlBNX1JFTEVBU0UpCi0r Ci0rIyBTaGFyZWQgbGlicmFyeSB2ZXJzaW9uaW5nCi0rR0VORVJJQ19MSUJSQVJZX1ZFUlNJT049 IjM6MDowIgotKyMgICAgICAgICAgICAgICAgICAgICAgICB8IHwgfAotKyMgICAgICAgICAgICAg ICAgICstLS0tLS0rIHwgKy0tLSsKLSsjICAgICAgICAgICAgICAgICB8ICAgICAgICB8ICAgICB8 Ci0rIyAgICAgICAgICAgICAgY3VycmVudDpyZXZpc2lvbjphZ2UKLSsjICAgICAgICAgICAgICAg ICB8ICAgICAgICB8ICAgICB8Ci0rIyAgICAgICAgICAgICAgICAgfCAgICAgICAgfCAgICAgKy0g aW5jcmVtZW50IGlmIGludGVyZmFjZXMgaGF2ZSBiZWVuIGFkZGVkOwotKyMgICAgICAgICAgICAg ICAgIHwgICAgICAgIHwgICAgICAgIHNldCB0byB6ZXJvIGlmIGludGVyZmFjZXMgaGF2ZSBiZWVu IAotKyMgICAgICAgICAgICAgICAgIHwgICAgICAgIHwgICAgICAgIHJlbW92ZWQgb3IgY2hhbmdl ZAotKyMgICAgICAgICAgICAgICAgIHwgICAgICAgICstIGluY3JlbWVudCBpZiBzb3VyY2UgY29k ZSBoYXMgY2hhbmdlZDsKLSsjICAgICAgICAgICAgICAgICB8ICAgICAgICAgICBzZXQgdG8gemVy byBpZiBjdXJyZW50IGlzIGluY3JlbWVudGVkCi0rIyAgICAgICAgICAgICAgICAgKy0gaW5jcmVt ZW50IGlmIGludGVyZmFjZXMgaGF2ZSBiZWVuIGFkZGVkLCByZW1vdmVkCi0rIyAgICAgICAgICAg ICAgICAgICAgb3IgY2hhbmdlZAotK0FDX1NVQlNUKEdFTkVSSUNfTElCUkFSWV9WRVJTSU9OKQot KwotKyMgVXBsb2FkIGNvbW1hbmQgZm9yIFNvdXJjZUZvcmdlCi0rVVBMT0FEX0NPTU1BTkQ9Im5j ZnRwcHV0IC12IHVwbG9hZC5zb3VyY2Vmb3JnZS5uZXQgL2luY29taW5nIgotK0FDX1NVQlNUKFVQ TE9BRF9DT01NQU5EKQotKwotKyMgQ2hlY2sgZm9yIGhvc3QgYW5kIGRpc2FibGUgYnVpbGRpbmcg YSBzaGFyZWQgbGlicmFyeSBpbiBXaW5kb3dzCi0rQUNfQ0FOT05JQ0FMX0hPU1QKLStjYXNlICRo b3N0IGluCi0rICAqLSotbXNkb3MqIHwgKi0qLWdvMzIqIHwgKi0qLW1pbmd3MzIqIHwgKi0qLWN5 Z3dpbiogfCAqLSotd2luZG93cyopIAotKyAgICBBQ19ESVNBQkxFX1NIQVJFRAotKyAgICBBQ19F TkFCTEVfU1RBVElDCi0rICAgIDs7Ci0rICAqKSAgCi0rICAgIEFDX0VOQUJMRV9TSEFSRUQKLSsg ICAgQUNfRElTQUJMRV9TVEFUSUMKLSsgICAgOzsKLStlc2FjCi0rCi0rIyBDaGVja3MgZm9yIHBy b2dyYW1zCi0rc2F2ZV9DWFhGTEFHUz0iJENYWEZMQUdTIgotK0FDX1BST0dfQ1hYCi0rQUNfUFJP R19DWFhDUFAKLStDWFhGTEFHUz0iJHNhdmVfQ1hYRkxBR1MiCi0rQUNfUFJPR19JTlNUQUxMCi0r QUNfUFJPR19MSUJUT09MCi0rQUNfUFJPR19MTl9TCi0rQUNfUFJPR19NQUtFX1NFVAotKwotKyMg U2V0IGRlZmF1bHQgbGFuZ3VhZ2UgdG8gQysrCi0rQUNfTEFORyhbQysrXSkKLSsKLSsjIENoZWNr IGZvciBleGNlcHRpb25zIHN3aXRjaAotK0FDX0FSR19FTkFCTEUoZXhjZXB0aW9ucywKLSsgICAg ICAgICAgICAgIFtBU19IRUxQX1NUUklORyhbLS1lbmFibGUtZXhjZXB0aW9uc10sCi0rICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgW2VuYWJsZSBleGNlcHRpb25zIGhhbmRsaW5nIG1lY2hh bmlzbV0pXSwKLSsgICAgICAgICAgICAgIFtBQ19ERUZJTkUoW1NPQ0lfRVhDRVBUSU9OU10sIFsx XSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgW0RlZmluZSBpZiB5b3Ugd2FudCBleGNlcHRp b25zIGhhbmRsaW5nXSldKQotK3Rlc3QgIngkZW5hYmxlX2V4Y2VwdGlvbnMiICE9IHhubyAmJiBl bmFibGVfZXhjZXB0aW9ucz15ZXMKLSt0ZXN0ICJ4JGF4X2N2X2Jvb3N0X2RhdGVfdGltZSIgIT0g eG5vICYmIGVuYWJsZV9leGNlcHRpb25zPXllcwotKwotKyMgQ2hlY2sgZm9yIGluZm8gcGFnZXMK LStBQ19BUkdfRU5BQkxFKGluZm8tZG9jLCAKLSsgICAgICAgICAgICAgIFtBU19IRUxQX1NUUklO RyhbLS1kaXNhYmxlLWluZm8tZG9jXSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBb ZG8gbm90IGdlbmVyYXRlIEluZm8gZG9jdW1lbnRhdGlvbl0pXSkKLSt0ZXN0ICJ4JGVuYWJsZV9p bmZvX2RvYyIgIT0geG5vICYmIGVuYWJsZV9pbmZvX2RvYz15ZXMKLSsKLSsKLSsjIENoZWNrIGZv ciBodG1sLWRvYyBzd2l0Y2gKLStBQ19BUkdfRU5BQkxFKGh0bWwtZG9jLCAKLSsgICAgICAgICAg ICAgIFtBU19IRUxQX1NUUklORyhbLS1kaXNhYmxlLWh0bWwtZG9jXSwKLSsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBbZG8gbm90IGdlbmVyYXRlIEhUTUwgZG9jdW1lbnRhdGlvbl0pXSkK LSt0ZXN0ICJ4JGVuYWJsZV9odG1sX2RvYyIgIT0geG5vICYmIGVuYWJsZV9odG1sX2RvYz15ZXMK LSsKLSsKLSsjIFByb3ZpZGUgLS13aXRoLWRvY2RpcgotK0FDX0FSR19XSVRIKGRvY2RpciwKLSsg ICAgICAgICAgICBbQVNfSEVMUF9TVFJJTkcoWy0td2l0aC1kb2NkaXI9RElSXSwKLSsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgW3NldCBkb2N1bWVudGF0aW9uIGRpcmVjdG9yeSB0byBESVJd KV0sCi0rICAgICAgICAgICAgW0RPQ19ESVI9IiR3aXRodmFsIl0sCi0rICAgICAgICAgICAgW0RP Q19ESVI9IiJdKQotK2lmIHRlc3QgIngkRE9DX0RJUiIgIT0geDsgdGhlbgotKyAgZG9jZGlyPSIk RE9DX0RJUiIKLStlbHNlCi0rICBkb2NkaXI9IiR7ZGF0YWRpcn0vZG9jLyRQQUNLQUdFLSRWRVJT SU9OIgotK2ZpCi0rQUNfU1VCU1QoZG9jZGlyKQotKwotKwotKyMgQ2hlY2sgZm9yIGJ1cnJpZWQg aGVhZGVyIGZpbGVzIChmb3IgU09DSSBpdHNlbGYpCi0rQUNfQVJHX0VOQUJMRShidXJyaWVkLWhl YWRlcnMsIAotKyBBU19IRUxQX1NUUklORyhbLS1lbmFibGUtYnVycmllZC1oZWFkZXJzXSwKLSsJ CVtpbmNsdWRlIGhlYWRlciBmaWxlcyBmcm9tIGEgZGlyZWN0b3J5IHN0cnVjdHVyZV0pLAotKyBb IGlmIHRlc3QgIiRlbmFibGV2YWwiID0gbm87IHRoZW4KLSsgICAgICBlbmFibGVfYnVycmllZF9o ZWFkZXJzPW5vCi0rICAgZWxzZQotKyAgICAgIGVuYWJsZV9idXJyaWVkX2hlYWRlcnM9eWVzCi0r ICAgZmkgXSwKLSsgWyBlbmFibGVfYnVycmllZF9oZWFkZXJzPW5vIF0pCi0rIyBUZW1wb3Jhcnks IGZvciB0aGUgUlBNIHBhY2thZ2VzIGdlbmVyYXRpb24KLStlbmFibGVfYnVycmllZF9oZWFkZXJz PXllcwotK0FNX0NPTkRJVElPTkFMKFtTT0NJX0hFQURFUlNfQlVSSUVEXSwgW3Rlc3QgIngkZW5h YmxlX2J1cnJpZWRfaGVhZGVycyIgPSB4eWVzXSkKLStBQ19TVUJTVChTT0NJX0hFQURFUlNfQlVS SUVEKQotK2lmIHRlc3QgIngkZW5hYmxlX2J1cnJpZWRfaGVhZGVycyIgPSB4eWVzOyB0aGVuCi0r ICAgQ1BQRkxBR1M9Ii1EU09DSV9IRUFERVJTX0JVUklFRCAkQ1BQRkxBR1MiCi0rZmkKLSsKLSsj IENoZWNrIGZvciBidXJyaWVkIGhlYWRlciBmaWxlcyAoZm9yIE15U1FMIGNsaWVudCkKLStBQ19B UkdfRU5BQkxFKG15c3FsLWJ1cnJpZWQtaGVhZGVycywgCi0rIEFTX0hFTFBfU1RSSU5HKFstLWVu YWJsZS1teXNxbC1idXJyaWVkLWhlYWRlcnNdLAotKwkJW2luY2x1ZGUgTXlTUUwgaGVhZGVyIGZp bGVzIGZyb20gYSBkaXJlY3Rvcnkgc3RydWN0dXJlXSksCi0rIFsgaWYgdGVzdCAiJGVuYWJsZXZh bCIgPSBubzsgdGhlbgotKwllbmFibGVfbXlzcWxfYnVycmllZF9oZWFkZXJzPW5vCi0rICAgZWxz ZQotKwllbmFibGVfbXlzcWxfYnVycmllZF9oZWFkZXJzPXllcwotKyAgIGZpIF0sCi0rIFsgZW5h YmxlX215c3FsX2J1cnJpZWRfaGVhZGVycz1ubyBdKQotKyMgVGVtcG9yYXJ5LCBmb3IgdGhlIFJQ TSBwYWNrYWdlcyBnZW5lcmF0aW9uCi0rZW5hYmxlX215c3FsX2J1cnJpZWRfaGVhZGVycz15ZXMK LStBTV9DT05ESVRJT05BTChbU09DSV9NWVNRTF9IRUFERVJTX0JVUklFRF0sCi0rICAgICAgICAg ICAgICAgW3Rlc3QgIngkZW5hYmxlX215c3FsX2J1cnJpZWRfaGVhZGVycyIgPSB4eWVzXSkKLStB Q19TVUJTVChTT0NJX01ZU1FMX0hFQURFUlNfQlVSSUVEKQotK2lmIHRlc3QgIngkZW5hYmxlX215 c3FsX2J1cnJpZWRfaGVhZGVycyIgPSB4eWVzOyB0aGVuCi0rICAgQ1BQRkxBR1M9Ii1EU09DSV9N WVNRTF9IRUFERVJTX0JVUklFRCAkQ1BQRkxBR1MiCi0rZmkKLSsKLSsjIENoZWNrIGZvciBidXJy aWVkIGhlYWRlciBmaWxlcyAoZm9yIFBvc3RHcmVTUUwgY2xpZW50KQotK0FDX0FSR19FTkFCTEUo cG9zdGdyZXNxbC1idXJyaWVkLWhlYWRlcnMsIAotKyBBU19IRUxQX1NUUklORyhbLS1lbmFibGUt cG9zdGdyZXNxbC1idXJyaWVkLWhlYWRlcnNdLAotKwkJW2luY2x1ZGUgUG9zdEdyZVNRTCBoZWFk ZXIgZmlsZXMgZnJvbSBhIGRpcmVjdG9yeSBzdHJ1Y3R1cmVdKSwKLSsgWyBpZiB0ZXN0ICIkZW5h YmxldmFsIiA9IG5vOyB0aGVuCi0rCWVuYWJsZV9wb3N0Z3Jlc3FsX2J1cnJpZWRfaGVhZGVycz1u bwotKyAgIGVsc2UKLSsJZW5hYmxlX3Bvc3RncmVzcWxfYnVycmllZF9oZWFkZXJzPXllcwotKyAg IGZpIF0sCi0rIFsgZW5hYmxlX3Bvc3RncmVzcWxfYnVycmllZF9oZWFkZXJzPW5vIF0pCi0rIyBU ZW1wb3JhcnksIGZvciB0aGUgUlBNIHBhY2thZ2VzIGdlbmVyYXRpb24KLStlbmFibGVfcG9zdGdy ZXNxbF9idXJyaWVkX2hlYWRlcnM9eWVzCi0rQU1fQ09ORElUSU9OQUwoW1NPQ0lfUE9TVEdSRVNR TF9IRUFERVJTX0JVUklFRF0sCi0rICAgICAgICAgICAgICAgW3Rlc3QgIngkZW5hYmxlX3Bvc3Rn cmVzcWxfYnVycmllZF9oZWFkZXJzIiA9IHh5ZXNdKQotK0FDX1NVQlNUKFNPQ0lfUE9TVEdSRVNR TF9IRUFERVJTX0JVUklFRCkKLStpZiB0ZXN0ICJ4JGVuYWJsZV9wb3N0Z3Jlc3FsX2J1cnJpZWRf aGVhZGVycyIgPSB4eWVzOyB0aGVuCi0rICAgQ1BQRkxBR1M9Ii1EU09DSV9QT1NUR1JFU1FMX0hF QURFUlNfQlVSSUVEICRDUFBGTEFHUyIKLStmaQotKwotKwotKyMgLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSsjIEJvb3N0IChTVEwgRXh0 ZW5zaW9uczogaHR0cDovL3d3dy5ib29zdC5vcmcpCi0rIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotK0FYX0JPT1NUKFsxLjMzXSkKLStB Q19TVUJTVChCT09TVF9WRVJTSU9OKQotK0FDX1NVQlNUKEJPT1NUX0NGTEFHUykKLStBQ19TVUJT VChCT09TVF9MSUJTKQotK0FDX1NVQlNUKEJPT1NUX0RBVEVfVElNRV9MSUIpCi0rQUNfU1VCU1Qo Qk9PU1RfUFJPR1JBTV9PUFRJT05TX0xJQikKLSsKLSsKLSsjIC0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0rIyBTdXBw b3J0IGZvciBNeVNRTCBiYWNrZW5kIChDIGNsaWVudCBBUEkpOiBodHRwOi8vd3d3Lm15c3FsLm9y ZwotKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KLStBQ19BUkdfRU5BQkxFKFtiYWNrZW5kLW15c3FsXSwKLSsgICAg QUNfSEVMUF9TVFJJTkcoWy0tZW5hYmxlLWJhY2tlbmQtbXlzcWxdLAotKyAgICAgICAgW2J1aWxk LWluIE15U1FMIGJhY2tlbmQgc3VwcG9ydCBAPDpAZGVmYXVsdD1ub0A6PkBdCi0rICAgICksCi0r ICAgIFsgaWYgdGVzdCAiJGVuYWJsZXZhbCIgPSBubzsgdGhlbgotKyAgICAgIAkgZW5hYmxlX2Jh Y2tlbmRfbXlzcWw9bm8KLSsgICAgICBlbHNlCi0rCSBlbmFibGVfYmFja2VuZF9teXNxbD15ZXMK LSsgICAgICBmaSBdLAotKyAgICBbIGVuYWJsZV9iYWNrZW5kX215c3FsPW5vIF0KLSspCi0rCi0r aWYgdGVzdCAieCRlbmFibGVfYmFja2VuZF9teXNxbCIgPSAieHllcyI7IHRoZW4KLSsgICBNWVNR TF9ESVJTPSJteXNxbCIKLSsgICBNWVNRTF9SRVFfVkVSU0lPTj0iMy4wLjAiCi0rICAgQVhfTElC X01ZU1FMKFskTVlTUUxfUkVRX1ZFUlNJT05dKQotK2ZpCi0rQU1fQ09ORElUSU9OQUwoW0hBVkVf TVlTUUxdLCBbdGVzdCAieCRlbmFibGVfYmFja2VuZF9teXNxbCIgPSB4eWVzXSkKLSsjTVlTUUxf RElSUz0ibXlzcWwiCi0rCi0rQUNfU1VCU1QoW01ZU1FMX0RJUlNdKQotKwotKwotKyMgLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQotKyMgU3VwcG9ydCBmb3IgT3JhY2xlIGJhY2tlbmQKLSsjIC0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLStBQ19B UkdfRU5BQkxFKFtiYWNrZW5kLW9yYWNsZV0sCi0rICAgIEFDX0hFTFBfU1RSSU5HKFstLWVuYWJs ZS1iYWNrZW5kLW9yYWNsZV0sCi0rCQkgICBbYnVpbGQtaW4gT1JBQ0xFIGJhY2tlbmQgc3VwcG9y dCBAPDpAZGVmYXVsdD1ub0A6PkBdKSwKLSsgICAgWyBpZiB0ZXN0ICIkZW5hYmxldmFsIiA9IG5v OyB0aGVuCi0rICAgICAgCSBlbmFibGVfYmFja2VuZF9vcmFjbGU9bm8KLSsgICAgICBlbHNlCi0r CSBlbmFibGVfYmFja2VuZF9vcmFjbGU9eWVzCi0rICAgICAgZmkgXSwKLSsgICAgWyBlbmFibGVf YmFja2VuZF9vcmFjbGU9bm8gXQotKykKLSsKLStpZiB0ZXN0ICJ4JGVuYWJsZV9iYWNrZW5kX29y YWNsZSIgPSAieHllcyI7IHRoZW4KLSsgICBPUkFDTEVfRElSUz0ib3JhY2xlIgotKyAgIE9SQUNM RV9PQ0lfUkVRX1ZFUlNJT049IjkuMCIKLSsgICBBWF9MSUJfT1JBQ0xFX09DSSgkT1JBQ0xFX09D SV9SRVFfVkVSU0lPTikKLStmaQotK0FNX0NPTkRJVElPTkFMKFtIQVZFX09SQUNMRV0sIFt0ZXN0 ICJ4JGVuYWJsZV9iYWNrZW5kX29yYWNsZSIgPSB4eWVzXSkKLSsjT1JBQ0xFX0RJUlM9Im9yYWNs ZSIKLSsKLStBQ19TVUJTVChbT1JBQ0xFX0RJUlNdKQotKwotKyMgLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotKyMgU3Vw cG9ydCBmb3IgUG9zdGdyZVNRTCBiYWNrZW5kCi0rIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0rQUNfQVJHX0VOQUJM RShbYmFja2VuZC1wb3N0Z3Jlc3FsXSwKLSsgICAgQUNfSEVMUF9TVFJJTkcoWy0tZW5hYmxlLWJh Y2tlbmQtcG9zdGdyZXNxbF0sCi0rICAgICAgICBbYnVpbGQtaW4gUG9zdGdyZVNRTCBiYWNrZW5k IHN1cHBvcnQgQDw6QGRlZmF1bHQ9bm9AOj5AXQotKyAgICApLAotKyAgICBbIGlmIHRlc3QgIiRl bmFibGV2YWwiID0gbm87IHRoZW4KLSsgICAgICAJIGVuYWJsZV9iYWNrZW5kX3Bvc3RncmVzcWw9 bm8KLSsgICAgICBlbHNlCi0rCSBlbmFibGVfYmFja2VuZF9wb3N0Z3Jlc3FsPXllcwotKyAgICAg IGZpIF0sCi0rICAgIFsgZW5hYmxlX2JhY2tlbmRfcG9zdGdyZXNxbD1ubyBdCi0rKQotKwotK2lm IHRlc3QgIngkZW5hYmxlX2JhY2tlbmRfcG9zdGdyZXNxbCIgPSAieHllcyI7IHRoZW4KLSsgICBQ T1NUR1JFU1FMX0RJUlM9InBvc3RncmVzcWwiCi0rICAgUE9TVEdSRVNRTF9SRVFfVkVSU0lPTj0i Ny4xLjQiCi0rICAgQVhfTElCX1BPU1RHUkVTUUwoJFBPU1RHUkVTUUxfUkVRX1ZFUlNJT04pCi0r ZmkKLStBTV9DT05ESVRJT05BTChbSEFWRV9QT1NUR1JFU1FMXSwgW3Rlc3QgIngkZW5hYmxlX2Jh Y2tlbmRfcG9zdGdyZXNxbCIgPSB4eWVzXSkKLSsjUE9TVEdSRVNRTF9ESVJTPSJwb3N0Z3Jlc3Fs IgotKwotK0FDX1NVQlNUKFtQT1NUR1JFU1FMX0RJUlNdKQotKwotKwotKyMgLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQot KyMgU3VwcG9ydCBmb3IgZG9jdW1lbnRhdGlvbgotKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotKyMgQ2hlY2tzIGZv ciBkb2N1bWVudGF0aW9uIGJ1aWxkIHRvb2xzCi0rI0FDX0NIRUNLX1BST0coW3RleGluZm9fb2td LCBbdGV4aW5mb10sIFt5ZXNdLCBbbm9dKQotKyNpZiB0ZXN0ICJ4JGVuYWJsZV9pbmZvX2RvYyIg IT0geG5vOyB0aGVuCi0rIyAgdGVzdCAieCR0ZXhpbmZvX29rIiAhPSB4eWVzICYmIGVuYWJsZV9p bmZvX2RvYz1ubwotKyMgIEFDX1BBVEhfUFJPRyhbUEVSTF0sIFtwZXJsXSwgW10pCi0rI2ZpCi0r QU1fQ09ORElUSU9OQUwoW0lORk9fRE9DXSwgW3Rlc3QgIngkZW5hYmxlX2luZm9fZG9jIiA9IHh5 ZXNdKQotKwotKyMgQ2hlY2tzIGZvciBkb2N1bWVudGF0aW9uIGJ1aWxkIHRvb2xzCi0rQUNfQ0hF Q0tfUFJPRyhbZG94eWdlbl9va10sIFtkb3h5Z2VuXSwgW3llc10sIFtub10pCi0rQUNfQ0hFQ0tf UFJPRyhbbGF0ZXhfb2tdLCBbbGF0ZXhdLCBbeWVzXSwgW25vXSkKLStBQ19DSEVDS19QUk9HKFtk dmlwc19va10sIFtkdmlwc10sIFt5ZXNdLCBbbm9dKQotK0FDX0NIRUNLX1BST0coW2dzX29rXSwg W2dzXSwgW3llc10sIFtub10pCi0raWYgdGVzdCAieCRlbmFibGVfaHRtbF9kb2MiICE9IHhubzsg dGhlbgotKyAgdGVzdCAieCRkb3h5Z2VuX29rIiAhPSB4eWVzICYmIGVuYWJsZV9odG1sX2RvYz1u bwotKyAgdGVzdCAieCRsYXRleF9vayIgIT0geHllcyAmJiBlbmFibGVfaHRtbF9kb2M9bm8KLSsg IHRlc3QgIngkZHZpcHNfb2siICE9IHh5ZXMgJiYgZW5hYmxlX2h0bWxfZG9jPW5vCi0rICB0ZXN0 ICJ4JGdzX29rIiAhPSB4eWVzICYmIGVuYWJsZV9odG1sX2RvYz1ubwotKyAgQUNfUEFUSF9QUk9H KFtQRVJMXSwgW3BlcmxdLCBbXSkKLStmaQotK0FNX0NPTkRJVElPTkFMKFtIVE1MX0RPQ10sIFt0 ZXN0ICJ4JGVuYWJsZV9odG1sX2RvYyIgPSB4eWVzXSkKLSsKLSsKLSsjIENoZWNrIGZvciBkaWZm IHByb2dyYW0gdXNlZCBmb3IgdGVzdHMKLStBQ19DSEVDS19QUk9HKFtkaWZmX29rXSwgW2RpZmZd LCBbeWVzXSwgW25vXSkKLStBQ19DSEVDS19QUk9HKFtzZWRfb2tdLCBbc2VkXSwgW3llc10sIFtu b10pCi0rZW5hYmxlX3Rlc3RzPXllcwotK3Rlc3QgIngkZGlmZl9vayIgIT0geHllcyAmJiBlbmFi bGVfdGVzdHM9bm8KLSt0ZXN0ICJ4JHNlZF9vayIgIT0geHllcyAmJiBlbmFibGVfdGVzdHM9bm8K LStBTV9DT05ESVRJT05BTChbUlVOX1RFU1RTXSwgW3Rlc3QgIngkZW5hYmxlX3Rlc3RzIiA9IHh5 ZXNdKQotKwotKwotKyMgQ2hlY2tzIGZvciBoZWFkZXIgZmlsZXMKLStBQ19IRUFERVJfU1REQwot K0FDX0hFQURFUl9USU1FCi0rQUNfQ0hFQ0tfSEVBREVSUyhbY21hdGggXAotKyAgZGVxdWUgXAot KyAgZnN0cmVhbSBcCi0rICBpb21hbmlwIFwKLSsgIGlvc3RyZWFtIFwKLSsgIHNzdHJlYW0gXAot KyAgbGltaXRzIFwKLSsgIGxpc3QgXAotKyAgc2V0IFwKLSsgIHZlY3RvciBcCi0rICBtYXAgXAot KyAgcXVldWUgXAotKyAgc3RkZXhjZXB0IFwKLSsgIHN0cmluZ10pCi0rCi0rCi0rIyBEZWZpbmUg Y29uZmlndXJlZCBmaWxlcwotK0FDX0NPTkZJR19GSUxFUygKLSsJTWFrZWZpbGUKLSsJc29jaS1j b25maWcKLSsJc29jaS5wYwotKwlzb2NpLnNwZWMKLSsJc29jaS9NYWtlZmlsZQotKwlzb2NpL2Nv cmUvTWFrZWZpbGUKLSsJc29jaS9jb3JlL3Rlc3QvTWFrZWZpbGUKLSsJc29jaS9iYWNrZW5kcy9N YWtlZmlsZQotKwlzb2NpL2JhY2tlbmRzL215c3FsL01ha2VmaWxlCi0rCXNvY2kvYmFja2VuZHMv bXlzcWwvdGVzdC9NYWtlZmlsZQotKwlzb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvTWFrZWZpbGUK LSsJc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Rlc3QvTWFrZWZpbGUKLSsJc29jaS9iYWNrZW5k cy9vcmFjbGUvTWFrZWZpbGUKLSsJc29jaS9iYWNrZW5kcy9vcmFjbGUvdGVzdC9NYWtlZmlsZQot KwltYW4vTWFrZWZpbGUKLSsgICAgICAgIGRvYy9NYWtlZmlsZQotKyAgICAgICAgZG9jL2JhY2tl bmRzL01ha2VmaWxlCi0rCWJ1aWxkL01ha2VmaWxlCi0rCWJ1aWxkL3VuaXgvTWFrZWZpbGUKLSsJ YnVpbGQvbXN2YzgwL01ha2VmaWxlCi0rCWJ1aWxkL21zdmM4MC9kbGwvTWFrZWZpbGUKLSsJYnVp bGQvbXN2YzgwL2xpYi9NYWtlZmlsZSkKLSsKLStBQ19PVVRQVVQKLSsKLStlY2hvICIKLSstLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KLSskUEFDS0FHRS0kVkVSU0lPTiBsaWJyYXJ5IGNvbmZpZ3VyYXRp b246Ci0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0rCi0rRGlyZWN0b3JpZXM6Ci0rICAtIHByZWZp eCAuLi4uLi4uLi4uLi4uLi4gOiAke3ByZWZpeH0KLSsgIC0gZXhlY19wcmVmaXggLi4uLi4uLi4u LiA6ICR7ZXhlY19wcmVmaXh9Ci0rICAtIGluY2x1ZGVkaXIgLi4uLi4uLi4uLi4gOiAke2luY2x1 ZGVkaXJ9Ci0rICAtIGxpYmRpciAuLi4uLi4uLi4uLi4uLi4gOiAke2xpYmRpcn0KLSsgIC0gZG9j ZGlyIC4uLi4uLi4uLi4uLi4uLiA6ICR7ZG9jZGlyfQotKyAgLSBtYW5kaXIgLi4uLi4uLi4uLi4u Li4uIDogJHttYW5kaXJ9Ci0rICAtIGluZm9kaXIgLi4uLi4uLi4uLi4uLi4gOiAke2luZm9kaXJ9 Ci0rCi0rU3dpdGNoZXM6Ci0rICAtIGV4Y2VwdGlvbnMgLi4uLi4uLi4uLi4gOiAke2VuYWJsZV9l eGNlcHRpb25zfQotKyAgLSBpbmZvLWRvYyAuLi4uLi4uLi4uLi4uIDogJHtlbmFibGVfaW5mb19k b2N9Ci0rICAtIGh0bWwtZG9jIC4uLi4uLi4uLi4uLi4gOiAke2VuYWJsZV9odG1sX2RvY30KLSsg IC0gc2hhcmVkIC4uLi4uLi4uLi4uLi4uLiA6ICR7ZW5hYmxlX3NoYXJlZH0KLSsgIC0gc3RhdGlj IC4uLi4uLi4uLi4uLi4uLiA6ICR7ZW5hYmxlX3N0YXRpY30KLSsKLStEb2N1bWVudGF0aW9uIHRv b2xzOgotKyAgLSB0ZXhpbmZvIC4uLi4uLi4uLi4uLi4uIDogJHt0ZXhpbmZvX29rfQotKyAgLSBk b3h5Z2VuIC4uLi4uLi4uLi4uLi4uIDogJHtkb3h5Z2VuX29rfQotKyAgLSBsYXRleCAuLi4uLi4u Li4uLi4uLi4uIDogJHtsYXRleF9va30KLSsgIC0gZHZpcHMgLi4uLi4uLi4uLi4uLi4uLiA6ICR7 ZHZpcHNfb2t9Ci0rICAtIGdob3N0c2NyaXB0IC4uLi4uLi4uLi4gOiAke2dzX29rfQotKwotK1Rl c3RpbmcgdG9vbHM6Ci0rICAtIGRpZmYgLi4uLi4uLi4uLi4uLi4uLi4gOiAke2RpZmZfb2t9Ci0r ICAtIHNlZCAuLi4uLi4uLi4uLi4uLi4uLi4gOiAke3NlZF9va30KLSsKLStDb21waWxlci9saW5r ZXIgZmxhZ3MvbGlicy9kZWZzOgotKyAgLSBDWFggLi4uLi4uLi4uLi4uLi4uLi4uIDogJHtDWFh9 Ci0rICAtIENYWEZMQUdTIC4uLi4uLi4uLi4uLi4gOiAke0NYWEZMQUdTfQotKyAgLSBDUFBGTEFH UyAuLi4uLi4uLi4uLi4uIDogJHtDUFBGTEFHU30KLSsgIC0gTERGTEFHUyAuLi4uLi4uLi4uLi4u LiA6ICR7TERGTEFHU30KLSsgIC0gTElCUyAuLi4uLi4uLi4uLi4uLi4uLiA6ICR7TElCU30KLSsK LStCdXJyaWVkIGhlYWRlciBmaWxlczoKLSsgIC0gU09DSV9IRUFERVJTX0JVUklFRCAuLi4uLi4u IDogJHtlbmFibGVfYnVycmllZF9oZWFkZXJzfQotKyAgLSBNWVNRTF9IRUFERVJTX0JVUklFRCAu Li4uLi4gOiAke2VuYWJsZV9teXNxbF9idXJyaWVkX2hlYWRlcnN9Ci0rICAtIFBPU1RHUkVTUUxf SEVBREVSU19CVVJJRUQgLiA6ICR7ZW5hYmxlX3Bvc3RncmVzcWxfYnVycmllZF9oZWFkZXJzfQot KwotK0V4dGVybmFsIGxpYnJhcmllczoKLSsgIC0gQm9vc3QgLi4uLi4uLi4uLi4uLi4uLiA6Ci0r ICAgIG8gQk9PU1RfVkVSU0lPTiAuLi4uLi4gOiAke0JPT1NUX1ZFUlNJT059Ci0rICAgIG8gQk9P U1RfQ0ZMQUdTIC4uLi4uLi4gOiAke0JPT1NUX0NGTEFHU30KLSsgICAgbyBCT09TVF9MSUJTIC4u Li4uLi4uLiA6ICR7Qk9PU1RfTElCU30KLSsgICAgbyBCT09TVF9EVF9MSUIgLi4uLi4uLiA6ICR7 Qk9PU1RfREFURV9USU1FX0xJQn0KLSsgICAgbyBCT09TVF9QT19MSUIgLi4uLi4uLiA6ICR7Qk9P U1RfUFJPR1JBTV9PUFRJT05TX0xJQn0KLSsKLSsgIC0gTXlTUUwgc3VwcG9ydCAuLi4uLi4uLiA6 ICR7ZW5hYmxlX2JhY2tlbmRfbXlzcWx9Ci0rICAgIG8gTVlTUUxfVkVSU0lPTiAuLi4uLi4gOiAk e01ZU1FMX1ZFUlNJT059Ci0rICAgIG8gTVlTUUxfQ0ZMQUdTIC4uLi4uLi4gOiAke01ZU1FMX0NG TEFHU30KLSsgICAgbyBNWVNRTF9MREZMQUdTIC4uLi4uLiA6ICR7TVlTUUxfTERGTEFHU30KLSsK LSsgIC0gUG9zdEdyZVNRTCBzdXBwb3J0IC4uLiA6ICR7ZW5hYmxlX2JhY2tlbmRfcG9zdGdyZXNx bH0KLSsgICAgbyBQT1NUR1JFU1FMX1ZFUlNJT04gLiA6ICR7UE9TVEdSRVNRTF9WRVJTSU9OfQot KyAgICBvIFBPU1RHUkVTUUxfQ0ZMQUdTIC4uIDogJHtQT1NUR1JFU1FMX0NGTEFHU30KLSsgICAg byBQT1NUR1JFU1FMX0xERkxBR1MgLiA6ICR7UE9TVEdSRVNRTF9MREZMQUdTfSAKLSsKLSsgIC0g T3JhY2xlIHN1cHBvcnQgLi4uLi4uLiA6ICR7ZW5hYmxlX2JhY2tlbmRfb3JhY2xlfQotKyAgICBv IE9SQUNMRV9WRVJTSU9OIC4uLi4uIDogJHtPUkFDTEVfT0NJX1ZFUlNJT059Ci0rICAgIG8gT1JB Q0xFX0NGTEFHUyAuLi4uLi4gOiAke09SQUNMRV9PQ0lfQ0ZMQUdTfQotKyAgICBvIE9SQUNMRV9M REZMQUdTIC4uLi4uIDogJHtPUkFDTEVfT0NJX0xERkxBR1N9IAotKwotKyAgLSBDUFBVbml0IC4u Li4uLi4uLi4uLi4uIDoKLSsgICAgbyBDUFBVTklUX1ZFUlNJT04gLi4uLiA6ICR7Q1BQVU5JVF9W RVJTSU9OfQotKyAgICBvIENQUFVOSVRfQ0ZMQUdTIC4uLi4uIDogJHtDUFBVTklUX0NGTEFHU30K LSsgICAgbyBDUFBVTklUX0xJQlMgLi4uLi4uLiA6ICR7Q1BQVU5JVF9MSUJTfQotKwotKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQotK05vdyB0eXBlICdtYWtlICYmIG1ha2UgaW5zdGFsbCcgdG8gYnVp bGQgYW5kIGluc3RhbGwgJFBBQ0tBR0UtJFZFUlNJT04gbGlicmFyeQotKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQotKyIKLWRpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9DT1BZSU5HIHNvY2ktMy4w LjBfdHJlcDMwMC9DT1BZSU5HCi0tLS0gc29jaS0zLjAuMF80LXBhY2svQ09QWUlORwkyMDA5LTA1 LTIzIDEzOjM3OjA5LjAwMDAwMDAwMCArMDIwMAotKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9DT1BZ SU5HCTIwMDktMDUtMjIgMjI6NTQ6MjIuMDAwMDAwMDAwICswMjAwCi1AQCAtMjEsMyArMjEsNCBA QAotIEZPUiBBTlkgREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB Q1QsIFRPUlQgT1IgT1RIRVJXSVNFLAotIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5F Q1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUgotIERFQUxJTkdTIElO IFRIRSBTT0ZUV0FSRS4KLSsKLWRpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9kb2MvYmFja2Vu ZHMvTWFrZWZpbGUuYW0gc29jaS0zLjAuMF90cmVwMzAwL2RvYy9iYWNrZW5kcy9NYWtlZmlsZS5h bQotLS0tIHNvY2ktMy4wLjBfNC1wYWNrL2RvYy9iYWNrZW5kcy9NYWtlZmlsZS5hbQkxOTcwLTAx LTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAotKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9kb2Mv YmFja2VuZHMvTWFrZWZpbGUuYW0JMjAwOS0wNS0yMiAyMjo1NDoyMi4wMDAwMDAwMDAgKzAyMDAK LUBAIC0wLDAgKzEsMTYgQEAKLSsjIyBkb2MvYmFja2VuZHMgc3ViLWRpcmVjdG9yeQotK2luY2x1 ZGUgJCh0b3Bfc3JjZGlyKS9NYWtlZmlsZS5jb21tb24KLStpbmNsdWRlICQoc3JjZGlyKS9zb3Vy Y2VzLm1rCi0rCi0rIyMgU291cmNlIGRpcmVjdG9yeQotKwotK01BSU5UQUlORVJDTEVBTkZJTEVT ID0gTWFrZWZpbGUuaW4KLSsKLStTVUJESVJTID0KLSsKLStFWFRSQV9ESVNUX0ZPUl9TT0NJX0NP TVBBVElCSUxJVFkgPSAkKGh0bWxfYmNrX3NvdXJjZXMpCi0rI2ZpcmViaXJkLmh0bWwgaW5kZXgu aHRtbCBteXNxbC5odG1sIG9kYmMuaHRtbCBvcmFjbGUuaHRtbCBwb3N0Z3Jlc3FsLmh0bWwgc3Fs aXRlMy5odG1sCi0rCi0rRVhUUkFfRElTVCA9ICQoRVhUUkFfRElTVF9GT1JfU09DSV9DT01QQVRJ QklMSVRZKQotKwotKyNwa2dkYXRhZGlyID0gJChodG1sX2Jja19zb3VyY2VzKQotZGlmZiAtTnVy IHNvY2ktMy4wLjBfNC1wYWNrL2RvYy9iYWNrZW5kcy9NYWtlZmlsZS5pbiBzb2NpLTMuMC4wX3Ry ZXAzMDAvZG9jL2JhY2tlbmRzL01ha2VmaWxlLmluCi0tLS0gc29jaS0zLjAuMF80LXBhY2svZG9j L2JhY2tlbmRzL01ha2VmaWxlLmluCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAw Ci0rKysgc29jaS0zLjAuMF90cmVwMzAwL2RvYy9iYWNrZW5kcy9NYWtlZmlsZS5pbgkyMDA5LTA1 LTIzIDEwOjAyOjAyLjAwMDAwMDAwMCArMDIwMAotQEAgLTAsMCArMSw1NTkgQEAKLSsjIE1ha2Vm aWxlLmluIGdlbmVyYXRlZCBieSBhdXRvbWFrZSAxLjEwLjIgZnJvbSBNYWtlZmlsZS5hbS4KLSsj IEBjb25maWd1cmVfaW5wdXRACi0rCi0rIyBDb3B5cmlnaHQgKEMpIDE5OTQsIDE5OTUsIDE5OTYs IDE5OTcsIDE5OTgsIDE5OTksIDIwMDAsIDIwMDEsIDIwMDIsCi0rIyAyMDAzLCAyMDA0LCAyMDA1 LCAyMDA2LCAyMDA3LCAyMDA4ICBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KLSsjIFRo aXMgTWFrZWZpbGUuaW4gaXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRh dGlvbgotKyMgZ2l2ZXMgdW5saW1pdGVkIHBlcm1pc3Npb24gdG8gY29weSBhbmQvb3IgZGlzdHJp YnV0ZSBpdCwKLSsjIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb25zLCBhcyBsb25nIGFzIHRo aXMgbm90aWNlIGlzIHByZXNlcnZlZC4KLSsKLSsjIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRl ZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotKyMgYnV0IFdJVEhPVVQgQU5Z IFdBUlJBTlRZLCB0byB0aGUgZXh0ZW50IHBlcm1pdHRlZCBieSBsYXc7IHdpdGhvdXQKLSsjIGV2 ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9S IEEKLSsjIFBBUlRJQ1VMQVIgUFVSUE9TRS4KLSsKLStAU0VUX01BS0VACi0rVlBBVEggPSBAc3Jj ZGlyQAotK3BrZ2RhdGFkaXIgPSAkKGRhdGFkaXIpL0BQQUNLQUdFQAotK3BrZ2xpYmRpciA9ICQo bGliZGlyKS9AUEFDS0FHRUAKLStwa2dpbmNsdWRlZGlyID0gJChpbmNsdWRlZGlyKS9AUEFDS0FH RUAKLSthbV9fY2QgPSBDRFBBVEg9IiQke1pTSF9WRVJTSU9OKy59JChQQVRIX1NFUEFSQVRPUiki ICYmIGNkCi0raW5zdGFsbF9zaF9EQVRBID0gJChpbnN0YWxsX3NoKSAtYyAtbSA2NDQKLStpbnN0 YWxsX3NoX1BST0dSQU0gPSAkKGluc3RhbGxfc2gpIC1jCi0raW5zdGFsbF9zaF9TQ1JJUFQgPSAk KGluc3RhbGxfc2gpIC1jCi0rSU5TVEFMTF9IRUFERVIgPSAkKElOU1RBTExfREFUQSkKLSt0cmFu c2Zvcm0gPSAkKHByb2dyYW1fdHJhbnNmb3JtX25hbWUpCi0rTk9STUFMX0lOU1RBTEwgPSA6Ci0r UFJFX0lOU1RBTEwgPSA6Ci0rUE9TVF9JTlNUQUxMID0gOgotK05PUk1BTF9VTklOU1RBTEwgPSA6 Ci0rUFJFX1VOSU5TVEFMTCA9IDoKLStQT1NUX1VOSU5TVEFMTCA9IDoKLStidWlsZF90cmlwbGV0 ID0gQGJ1aWxkQAotK2hvc3RfdHJpcGxldCA9IEBob3N0QAotK0RJU1RfQ09NTU9OID0gJChzcmNk aXIpL01ha2VmaWxlLmFtICQoc3JjZGlyKS9NYWtlZmlsZS5pbiBcCi0rCSQoc3JjZGlyKS9zb3Vy Y2VzLm1rICQodG9wX3NyY2RpcikvTWFrZWZpbGUuY29tbW9uCi0rc3ViZGlyID0gZG9jL2JhY2tl bmRzCi0rQUNMT0NBTF9NNCA9ICQodG9wX3NyY2RpcikvYWNsb2NhbC5tNAotK2FtX19hY2xvY2Fs X200X2RlcHMgPSAkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9ib29zdC5tNCBcCi0rCSQodG9wX3Ny Y2RpcikvY29uZmlnL2F4X215c3FsLm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfb3Jh Y2xlX29jaS5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmlnL2F4X3Bvc3RncmVzcWwubTQgXAot KwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9jcHB1bml0Lm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25m aWcvbGlidG9vbC5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmlnL2x0b3B0aW9ucy5tNCBcCi0r CSQodG9wX3NyY2RpcikvY29uZmlnL2x0c3VnYXIubTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZp Zy9sdHZlcnNpb24ubTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9sdH5vYnNvbGV0ZS5tNCAk KHRvcF9zcmNkaXIpL2NvbmZpZ3VyZS5hYwotK2FtX19jb25maWd1cmVfZGVwcyA9ICQoYW1fX2Fj bG9jYWxfbTRfZGVwcykgJChDT05GSUdVUkVfREVQRU5ERU5DSUVTKSBcCi0rCSQoQUNMT0NBTF9N NCkKLStta2luc3RhbGxkaXJzID0gJChpbnN0YWxsX3NoKSAtZAotK0NPTkZJR19IRUFERVIgPSAk KHRvcF9idWlsZGRpcikvc29jaS9jb25maWcuaAotK0NPTkZJR19DTEVBTl9GSUxFUyA9Ci0rU09V UkNFUyA9Ci0rRElTVF9TT1VSQ0VTID0KLStSRUNVUlNJVkVfVEFSR0VUUyA9IGFsbC1yZWN1cnNp dmUgY2hlY2stcmVjdXJzaXZlIGR2aS1yZWN1cnNpdmUgXAotKwlodG1sLXJlY3Vyc2l2ZSBpbmZv LXJlY3Vyc2l2ZSBpbnN0YWxsLWRhdGEtcmVjdXJzaXZlIFwKLSsJaW5zdGFsbC1kdmktcmVjdXJz aXZlIGluc3RhbGwtZXhlYy1yZWN1cnNpdmUgXAotKwlpbnN0YWxsLWh0bWwtcmVjdXJzaXZlIGlu c3RhbGwtaW5mby1yZWN1cnNpdmUgXAotKwlpbnN0YWxsLXBkZi1yZWN1cnNpdmUgaW5zdGFsbC1w cy1yZWN1cnNpdmUgaW5zdGFsbC1yZWN1cnNpdmUgXAotKwlpbnN0YWxsY2hlY2stcmVjdXJzaXZl IGluc3RhbGxkaXJzLXJlY3Vyc2l2ZSBwZGYtcmVjdXJzaXZlIFwKLSsJcHMtcmVjdXJzaXZlIHVu aW5zdGFsbC1yZWN1cnNpdmUKLStSRUNVUlNJVkVfQ0xFQU5fVEFSR0VUUyA9IG1vc3RseWNsZWFu LXJlY3Vyc2l2ZSBjbGVhbi1yZWN1cnNpdmUJXAotKyAgZGlzdGNsZWFuLXJlY3Vyc2l2ZSBtYWlu dGFpbmVyLWNsZWFuLXJlY3Vyc2l2ZQotK0VUQUdTID0gZXRhZ3MKLStDVEFHUyA9IGN0YWdzCi0r RElTVF9TVUJESVJTID0gJChTVUJESVJTKQotK0RJU1RGSUxFUyA9ICQoRElTVF9DT01NT04pICQo RElTVF9TT1VSQ0VTKSAkKFRFWElORk9TKSAkKEVYVFJBX0RJU1QpCi0rQUNMT0NBTCA9IEBBQ0xP Q0FMQAotK0FNVEFSID0gQEFNVEFSQAotK0FSID0gQEFSQAotK0FVVE9DT05GID0gQEFVVE9DT05G QAotK0FVVE9IRUFERVIgPSBAQVVUT0hFQURFUkAKLStBVVRPTUFLRSA9IEBBVVRPTUFLRUAKLStB V0sgPSBAQVdLQAotK0JPT1NUX0NGTEFHUyA9IEBCT09TVF9DRkxBR1NACi0rQk9PU1RfREFURV9U SU1FX0xJQiA9IEBCT09TVF9EQVRFX1RJTUVfTElCQAotK0JPT1NUX0ZJTEVTWVNURU1fTElCID0g QEJPT1NUX0ZJTEVTWVNURU1fTElCQAotK0JPT1NUX0lPU1RSRUFNU19MSUIgPSBAQk9PU1RfSU9T VFJFQU1TX0xJQkAKLStCT09TVF9MSUJTID0gQEJPT1NUX0xJQlNACi0rQk9PU1RfUFJPR1JBTV9P UFRJT05TX0xJQiA9IEBCT09TVF9QUk9HUkFNX09QVElPTlNfTElCQAotK0JPT1NUX1JFR0VYX0xJ QiA9IEBCT09TVF9SRUdFWF9MSUJACi0rQk9PU1RfU0VSSUFMSVpBVElPTl9MSUIgPSBAQk9PU1Rf U0VSSUFMSVpBVElPTl9MSUJACi0rQk9PU1RfU0lHTkFMU19MSUIgPSBAQk9PU1RfU0lHTkFMU19M SUJACi0rQk9PU1RfVEhSRUFEX0xJQiA9IEBCT09TVF9USFJFQURfTElCQAotK0JPT1NUX1VOSVRf VEVTVF9GUkFNRVdPUktfTElCID0gQEJPT1NUX1VOSVRfVEVTVF9GUkFNRVdPUktfTElCQAotK0JP T1NUX1ZFUlNJT04gPSBAQk9PU1RfVkVSU0lPTkAKLStCT09TVF9XU0VSSUFMSVpBVElPTl9MSUIg PSBAQk9PU1RfV1NFUklBTElaQVRJT05fTElCQAotK0NDID0gQENDQAotK0NDREVQTU9ERSA9IEBD Q0RFUE1PREVACi0rQ0ZMQUdTID0gQENGTEFHU0AKLStDUFAgPSBAQ1BQQAotK0NQUEZMQUdTID0g QENQUEZMQUdTQAotK0NQUFVOSVRfQ0ZMQUdTID0gQENQUFVOSVRfQ0ZMQUdTQAotK0NQUFVOSVRf Q09ORklHID0gQENQUFVOSVRfQ09ORklHQAotK0NQUFVOSVRfTElCUyA9IEBDUFBVTklUX0xJQlNA Ci0rQ1BQVU5JVF9WRVJTSU9OID0gQENQUFVOSVRfVkVSU0lPTkAKLStDWFggPSBAQ1hYQAotK0NY WENQUCA9IEBDWFhDUFBACi0rQ1hYREVQTU9ERSA9IEBDWFhERVBNT0RFQAotK0NYWEZMQUdTID0g QENYWEZMQUdTQAotK0NZR1BBVEhfVyA9IEBDWUdQQVRIX1dACi0rREVGUyA9IEBERUZTQAotK0RF UERJUiA9IEBERVBESVJACi0rRFNZTVVUSUwgPSBARFNZTVVUSUxACi0rRFVNUEJJTiA9IEBEVU1Q QklOQAotK0VDSE9fQyA9IEBFQ0hPX0NACi0rRUNIT19OID0gQEVDSE9fTkAKLStFQ0hPX1QgPSBA RUNIT19UQAotK0VHUkVQID0gQEVHUkVQQAotK0VYRUVYVCA9IEBFWEVFWFRACi0rRkdSRVAgPSBA RkdSRVBACi0rR0VORVJJQ19MSUJSQVJZX1ZFUlNJT04gPSBAR0VORVJJQ19MSUJSQVJZX1ZFUlNJ T05ACi0rR1JFUCA9IEBHUkVQQAotK0lOU1RBTEwgPSBASU5TVEFMTEAKLStJTlNUQUxMX0RBVEEg PSBASU5TVEFMTF9EQVRBQAotK0lOU1RBTExfUFJPR1JBTSA9IEBJTlNUQUxMX1BST0dSQU1ACi0r SU5TVEFMTF9TQ1JJUFQgPSBASU5TVEFMTF9TQ1JJUFRACi0rSU5TVEFMTF9TVFJJUF9QUk9HUkFN ID0gQElOU1RBTExfU1RSSVBfUFJPR1JBTUAKLStMRCA9IEBMREAKLStMREZMQUdTID0gQExERkxB R1NACi0rTElCT0JKUyA9IEBMSUJPQkpTQAotK0xJQlMgPSBATElCU0AKLStMSUJUT09MID0gQExJ QlRPT0xACi0rTElQTyA9IEBMSVBPQAotK0xOX1MgPSBATE5fU0AKLStMVExJQk9CSlMgPSBATFRM SUJPQkpTQAotK01BS0VJTkZPID0gQE1BS0VJTkZPQAotK01LRElSX1AgPSBATUtESVJfUEAKLStN WVNRTF9DRkxBR1MgPSBATVlTUUxfQ0ZMQUdTQAotK01ZU1FMX0NPTkZJRyA9IEBNWVNRTF9DT05G SUdACi0rTVlTUUxfRElSUyA9IEBNWVNRTF9ESVJTQAotK01ZU1FMX0xERkxBR1MgPSBATVlTUUxf TERGTEFHU0AKLStNWVNRTF9WRVJTSU9OID0gQE1ZU1FMX1ZFUlNJT05ACi0rTk0gPSBATk1ACi0r Tk1FRElUID0gQE5NRURJVEAKLStPQkpEVU1QID0gQE9CSkRVTVBACi0rT0JKRVhUID0gQE9CSkVY VEAKLStPUkFDTEVfRElSUyA9IEBPUkFDTEVfRElSU0AKLStPUkFDTEVfT0NJX0NGTEFHUyA9IEBP UkFDTEVfT0NJX0NGTEFHU0AKLStPUkFDTEVfT0NJX0xERkxBR1MgPSBAT1JBQ0xFX09DSV9MREZM QUdTQAotK09SQUNMRV9PQ0lfVkVSU0lPTiA9IEBPUkFDTEVfT0NJX1ZFUlNJT05ACi0rT1RPT0wg PSBAT1RPT0xACi0rT1RPT0w2NCA9IEBPVE9PTDY0QAotK1BBQ0tBR0UgPSBAUEFDS0FHRUAKLStQ QUNLQUdFX0JVR1JFUE9SVCA9IEBQQUNLQUdFX0JVR1JFUE9SVEAKLStQQUNLQUdFX05BTUUgPSBA UEFDS0FHRV9OQU1FQAotK1BBQ0tBR0VfU1RSSU5HID0gQFBBQ0tBR0VfU1RSSU5HQAotK1BBQ0tB R0VfVEFSTkFNRSA9IEBQQUNLQUdFX1RBUk5BTUVACi0rUEFDS0FHRV9WRVJTSU9OID0gQFBBQ0tB R0VfVkVSU0lPTkAKLStQQVRIX1NFUEFSQVRPUiA9IEBQQVRIX1NFUEFSQVRPUkAKLStQRVJMID0g QFBFUkxACi0rUEdfQ09ORklHID0gQFBHX0NPTkZJR0AKLStQT1NUR1JFU1FMX0NGTEFHUyA9IEBQ T1NUR1JFU1FMX0NGTEFHU0AKLStQT1NUR1JFU1FMX0RJUlMgPSBAUE9TVEdSRVNRTF9ESVJTQAot K1BPU1RHUkVTUUxfTERGTEFHUyA9IEBQT1NUR1JFU1FMX0xERkxBR1NACi0rUE9TVEdSRVNRTF9W RVJTSU9OID0gQFBPU1RHUkVTUUxfVkVSU0lPTkAKLStSQU5MSUIgPSBAUkFOTElCQAotK1JQTV9S RUxFQVNFID0gQFJQTV9SRUxFQVNFQAotK1NFRCA9IEBTRURACi0rU0VUX01BS0UgPSBAU0VUX01B S0VACi0rU0hFTEwgPSBAU0hFTExACi0rU09DSV9IRUFERVJTX0JVUklFRCA9IEBTT0NJX0hFQURF UlNfQlVSSUVEQAotK1NPQ0lfTVlTUUxfSEVBREVSU19CVVJJRUQgPSBAU09DSV9NWVNRTF9IRUFE RVJTX0JVUklFREAKLStTT0NJX1BPU1RHUkVTUUxfSEVBREVSU19CVVJJRUQgPSBAU09DSV9QT1NU R1JFU1FMX0hFQURFUlNfQlVSSUVEQAotK1NUUklQID0gQFNUUklQQAotK1VQTE9BRF9DT01NQU5E ID0gQFVQTE9BRF9DT01NQU5EQAotK1ZFUlNJT04gPSBAVkVSU0lPTkAKLSthYnNfYnVpbGRkaXIg PSBAYWJzX2J1aWxkZGlyQAotK2Fic19zcmNkaXIgPSBAYWJzX3NyY2RpckAKLSthYnNfdG9wX2J1 aWxkZGlyID0gQGFic190b3BfYnVpbGRkaXJACi0rYWJzX3RvcF9zcmNkaXIgPSBAYWJzX3RvcF9z cmNkaXJACi0rYWNfY3RfQ0MgPSBAYWNfY3RfQ0NACi0rYWNfY3RfQ1hYID0gQGFjX2N0X0NYWEAK LSthY19jdF9EVU1QQklOID0gQGFjX2N0X0RVTVBCSU5ACi0rYW1fX2luY2x1ZGUgPSBAYW1fX2lu Y2x1ZGVACi0rYW1fX2xlYWRpbmdfZG90ID0gQGFtX19sZWFkaW5nX2RvdEAKLSthbV9fcXVvdGUg PSBAYW1fX3F1b3RlQAotK2FtX190YXIgPSBAYW1fX3RhckAKLSthbV9fdW50YXIgPSBAYW1fX3Vu dGFyQAotK2JpbmRpciA9IEBiaW5kaXJACi0rYnVpbGQgPSBAYnVpbGRACi0rYnVpbGRfYWxpYXMg PSBAYnVpbGRfYWxpYXNACi0rYnVpbGRfY3B1ID0gQGJ1aWxkX2NwdUAKLStidWlsZF9vcyA9IEBi dWlsZF9vc0AKLStidWlsZF92ZW5kb3IgPSBAYnVpbGRfdmVuZG9yQAotK2J1aWxkZGlyID0gQGJ1 aWxkZGlyQAotK2RhdGFkaXIgPSBAZGF0YWRpckAKLStkYXRhcm9vdGRpciA9IEBkYXRhcm9vdGRp ckAKLStkaWZmX29rID0gQGRpZmZfb2tACi0rZG9jZGlyID0gQGRvY2RpckAKLStkb3h5Z2VuX29r ID0gQGRveHlnZW5fb2tACi0rZHZpZGlyID0gQGR2aWRpckAKLStkdmlwc19vayA9IEBkdmlwc19v a0AKLStleGVjX3ByZWZpeCA9IEBleGVjX3ByZWZpeEAKLStnc19vayA9IEBnc19va0AKLStob3N0 ID0gQGhvc3RACi0raG9zdF9hbGlhcyA9IEBob3N0X2FsaWFzQAotK2hvc3RfY3B1ID0gQGhvc3Rf Y3B1QAotK2hvc3Rfb3MgPSBAaG9zdF9vc0AKLStob3N0X3ZlbmRvciA9IEBob3N0X3ZlbmRvckAK LStodG1sZGlyID0gQGh0bWxkaXJACi0raW5jbHVkZWRpciA9IEBpbmNsdWRlZGlyQAotK2luZm9k aXIgPSBAaW5mb2RpckAKLStpbnN0YWxsX3NoID0gQGluc3RhbGxfc2hACi0rbGF0ZXhfb2sgPSBA bGF0ZXhfb2tACi0rbGliZGlyID0gQGxpYmRpckAKLStsaWJleGVjZGlyID0gQGxpYmV4ZWNkaXJA Ci0rbG9jYWxlZGlyID0gQGxvY2FsZWRpckAKLStsb2NhbHN0YXRlZGlyID0gQGxvY2Fsc3RhdGVk aXJACi0rbHRfRUNITyA9IEBsdF9FQ0hPQAotK21hbmRpciA9IEBtYW5kaXJACi0rbWtkaXJfcCA9 IEBta2Rpcl9wQAotK29sZGluY2x1ZGVkaXIgPSBAb2xkaW5jbHVkZWRpckAKLStwZGZkaXIgPSBA cGRmZGlyQAotK3ByZWZpeCA9IEBwcmVmaXhACi0rcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZSA9IEBw cm9ncmFtX3RyYW5zZm9ybV9uYW1lQAotK3BzZGlyID0gQHBzZGlyQAotK3NiaW5kaXIgPSBAc2Jp bmRpckAKLStzZWRfb2sgPSBAc2VkX29rQAotK3NoYXJlZHN0YXRlZGlyID0gQHNoYXJlZHN0YXRl ZGlyQAotK3NyY2RpciA9IEBzcmNkaXJACi0rc3lzY29uZmRpciA9IEBzeXNjb25mZGlyQAotK3Rh cmdldF9hbGlhcyA9IEB0YXJnZXRfYWxpYXNACi0rdG9wX2J1aWxkX3ByZWZpeCA9IEB0b3BfYnVp bGRfcHJlZml4QAotK3RvcF9idWlsZGRpciA9IEB0b3BfYnVpbGRkaXJACi0rdG9wX3NyY2RpciA9 IEB0b3Bfc3JjZGlyQAotK0FNX0NQUEZMQUdTID0gLUkkKHRvcF9idWlsZGRpcikgLUkkKHRvcF9z cmNkaXIpCi0raHRtbF9iY2tfc291cmNlcyA9ICQodG9wX3NyY2RpcikvZG9jL2JhY2tlbmRzL2lu ZGV4Lmh0bWwgXAotKwkkKHRvcF9zcmNkaXIpL2RvYy9iYWNrZW5kcy9maXJlYmlyZC5odG1sIFwK LSsJJCh0b3Bfc3JjZGlyKS9kb2MvYmFja2VuZHMvbXlzcWwuaHRtbCBcCi0rCSQodG9wX3NyY2Rp cikvZG9jL2JhY2tlbmRzL29kYmMuaHRtbCBcCi0rCSQodG9wX3NyY2RpcikvZG9jL2JhY2tlbmRz L29yYWNsZS5odG1sIFwKLSsJJCh0b3Bfc3JjZGlyKS9kb2MvYmFja2VuZHMvcG9zdGdyZXNxbC5o dG1sIFwKLSsJJCh0b3Bfc3JjZGlyKS9kb2MvYmFja2VuZHMvc3FsaXRlMy5odG1sCi0rCi0rTUFJ TlRBSU5FUkNMRUFORklMRVMgPSBNYWtlZmlsZS5pbgotK1NVQkRJUlMgPSAKLStFWFRSQV9ESVNU X0ZPUl9TT0NJX0NPTVBBVElCSUxJVFkgPSAkKGh0bWxfYmNrX3NvdXJjZXMpCi0rI2ZpcmViaXJk Lmh0bWwgaW5kZXguaHRtbCBteXNxbC5odG1sIG9kYmMuaHRtbCBvcmFjbGUuaHRtbCBwb3N0Z3Jl c3FsLmh0bWwgc3FsaXRlMy5odG1sCi0rRVhUUkFfRElTVCA9ICQoRVhUUkFfRElTVF9GT1JfU09D SV9DT01QQVRJQklMSVRZKQotK2FsbDogYWxsLXJlY3Vyc2l2ZQotKwotKy5TVUZGSVhFUzoKLSsk KHNyY2RpcikvTWFrZWZpbGUuaW46ICAkKHNyY2RpcikvTWFrZWZpbGUuYW0gJCh0b3Bfc3JjZGly KS9NYWtlZmlsZS5jb21tb24gJChzcmNkaXIpL3NvdXJjZXMubWsgJChhbV9fY29uZmlndXJlX2Rl cHMpCi0rCUBmb3IgZGVwIGluICQ/OyBkbyBcCi0rCSAgY2FzZSAnJChhbV9fY29uZmlndXJlX2Rl cHMpJyBpbiBcCi0rCSAgICAqJCRkZXAqKSBcCi0rCSAgICAgICggY2QgJCh0b3BfYnVpbGRkaXIp ICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoICkgXAotKwkgICAgICAgICYm IHsgaWYgdGVzdCAtZiAkQDsgdGhlbiBleGl0IDA7IGVsc2UgYnJlYWs7IGZpOyB9OyBcCi0rCSAg ICAgIGV4aXQgMTs7IFwKLSsJICBlc2FjOyBcCi0rCWRvbmU7IFwKLSsJZWNobyAnIGNkICQodG9w X3NyY2RpcikgJiYgJChBVVRPTUFLRSkgLS1nbnUgIGRvYy9iYWNrZW5kcy9NYWtlZmlsZSc7IFwK LSsJY2QgJCh0b3Bfc3JjZGlyKSAmJiBcCi0rCSAgJChBVVRPTUFLRSkgLS1nbnUgIGRvYy9iYWNr ZW5kcy9NYWtlZmlsZQotKy5QUkVDSU9VUzogTWFrZWZpbGUKLStNYWtlZmlsZTogJChzcmNkaXIp L01ha2VmaWxlLmluICQodG9wX2J1aWxkZGlyKS9jb25maWcuc3RhdHVzCi0rCUBjYXNlICckPycg aW4gXAotKwkgICpjb25maWcuc3RhdHVzKikgXAotKwkgICAgY2QgJCh0b3BfYnVpbGRkaXIpICYm ICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoOzsgXAotKwkgICopIFwKLSsJICAg IGVjaG8gJyBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChTSEVMTCkgLi9jb25maWcuc3RhdHVzICQo c3ViZGlyKS8kQCAkKGFtX19kZXBmaWxlc19tYXliZSknOyBcCi0rCSAgICBjZCAkKHRvcF9idWls ZGRpcikgJiYgJChTSEVMTCkgLi9jb25maWcuc3RhdHVzICQoc3ViZGlyKS8kQCAkKGFtX19kZXBm aWxlc19tYXliZSk7OyBcCi0rCWVzYWM7Ci0rCi0rJCh0b3BfYnVpbGRkaXIpL2NvbmZpZy5zdGF0 dXM6ICQodG9wX3NyY2RpcikvY29uZmlndXJlICQoQ09ORklHX1NUQVRVU19ERVBFTkRFTkNJRVMp Ci0rCWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVm cmVzaAotKwotKyQodG9wX3NyY2RpcikvY29uZmlndXJlOiAgJChhbV9fY29uZmlndXJlX2RlcHMp Ci0rCWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVm cmVzaAotKyQoQUNMT0NBTF9NNCk6ICAkKGFtX19hY2xvY2FsX200X2RlcHMpCi0rCWNkICQodG9w X2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaAotKwotK21v c3RseWNsZWFuLWxpYnRvb2w6Ci0rCS1ybSAtZiAqLmxvCi0rCi0rY2xlYW4tbGlidG9vbDoKLSsJ LXJtIC1yZiAubGlicyBfbGlicwotKwotKyMgVGhpcyBkaXJlY3RvcnkncyBzdWJkaXJlY3Rvcmll cyBhcmUgbW9zdGx5IGluZGVwZW5kZW50OyB5b3UgY2FuIGNkCi0rIyBpbnRvIHRoZW0gYW5kIHJ1 biBgbWFrZScgd2l0aG91dCBnb2luZyB0aHJvdWdoIHRoaXMgTWFrZWZpbGUuCi0rIyBUbyBjaGFu Z2UgdGhlIHZhbHVlcyBvZiBgbWFrZScgdmFyaWFibGVzOiBpbnN0ZWFkIG9mIGVkaXRpbmcgTWFr ZWZpbGVzLAotKyMgKDEpIGlmIHRoZSB2YXJpYWJsZSBpcyBzZXQgaW4gYGNvbmZpZy5zdGF0dXMn LCBlZGl0IGBjb25maWcuc3RhdHVzJwotKyMgICAgICh3aGljaCB3aWxsIGNhdXNlIHRoZSBNYWtl ZmlsZXMgdG8gYmUgcmVnZW5lcmF0ZWQgd2hlbiB5b3UgcnVuIGBtYWtlJyk7Ci0rIyAoMikgb3Ro ZXJ3aXNlLCBwYXNzIHRoZSBkZXNpcmVkIHZhbHVlcyBvbiB0aGUgYG1ha2UnIGNvbW1hbmQgbGlu ZS4KLSskKFJFQ1VSU0lWRV9UQVJHRVRTKToKLSsJQGZhaWxjb209J2V4aXQgMSc7IFwKLSsJZm9y IGYgaW4geCAkJE1BS0VGTEFHUzsgZG8gXAotKwkgIGNhc2UgJCRmIGluIFwKLSsJICAgICo9KiB8 IC0tWyFrXSopOzsgXAotKwkgICAgKmsqKSBmYWlsY29tPSdmYWlsPXllcyc7OyBcCi0rCSAgZXNh YzsgXAotKwlkb25lOyBcCi0rCWRvdF9zZWVuPW5vOyBcCi0rCXRhcmdldD1gZWNobyAkQCB8IHNl ZCBzLy1yZWN1cnNpdmUvL2A7IFwKLSsJbGlzdD0nJChTVUJESVJTKSc7IGZvciBzdWJkaXIgaW4g JCRsaXN0OyBkbyBcCi0rCSAgZWNobyAiTWFraW5nICQkdGFyZ2V0IGluICQkc3ViZGlyIjsgXAot KwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9ICIuIjsgdGhlbiBcCi0rCSAgICBkb3Rfc2Vlbj15ZXM7 IFwKLSsJICAgIGxvY2FsX3RhcmdldD0iJCR0YXJnZXQtYW0iOyBcCi0rCSAgZWxzZSBcCi0rCSAg ICBsb2NhbF90YXJnZXQ9IiQkdGFyZ2V0IjsgXAotKwkgIGZpOyBcCi0rCSAgKGNkICQkc3ViZGly ICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpICQkbG9jYWxfdGFyZ2V0KSBcCi0rCSAgfHwgZXZh bCAkJGZhaWxjb207IFwKLSsJZG9uZTsgXAotKwlpZiB0ZXN0ICIkJGRvdF9zZWVuIiA9ICJubyI7 IHRoZW4gXAotKwkgICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpICIkJHRhcmdldC1hbSIgfHwgZXhp dCAxOyBcCi0rCWZpOyB0ZXN0IC16ICIkJGZhaWwiCi0rCi0rJChSRUNVUlNJVkVfQ0xFQU5fVEFS R0VUUyk6Ci0rCUBmYWlsY29tPSdleGl0IDEnOyBcCi0rCWZvciBmIGluIHggJCRNQUtFRkxBR1M7 IGRvIFwKLSsJICBjYXNlICQkZiBpbiBcCi0rCSAgICAqPSogfCAtLVsha10qKTs7IFwKLSsJICAg ICprKikgZmFpbGNvbT0nZmFpbD15ZXMnOzsgXAotKwkgIGVzYWM7IFwKLSsJZG9uZTsgXAotKwlk b3Rfc2Vlbj1ubzsgXAotKwljYXNlICIkQCIgaW4gXAotKwkgIGRpc3RjbGVhbi0qIHwgbWFpbnRh aW5lci1jbGVhbi0qKSBsaXN0PSckKERJU1RfU1VCRElSUyknIDs7IFwKLSsJICAqKSBsaXN0PSck KFNVQkRJUlMpJyA7OyBcCi0rCWVzYWM7IFwKLSsJcmV2PScnOyBmb3Igc3ViZGlyIGluICQkbGlz dDsgZG8gXAotKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9ICIuIjsgdGhlbiA6OyBlbHNlIFwKLSsJ ICAgIHJldj0iJCRzdWJkaXIgJCRyZXYiOyBcCi0rCSAgZmk7IFwKLSsJZG9uZTsgXAotKwlyZXY9 IiQkcmV2IC4iOyBcCi0rCXRhcmdldD1gZWNobyAkQCB8IHNlZCBzLy1yZWN1cnNpdmUvL2A7IFwK LSsJZm9yIHN1YmRpciBpbiAkJHJldjsgZG8gXAotKwkgIGVjaG8gIk1ha2luZyAkJHRhcmdldCBp biAkJHN1YmRpciI7IFwKLSsJICBpZiB0ZXN0ICIkJHN1YmRpciIgPSAiLiI7IHRoZW4gXAotKwkg ICAgbG9jYWxfdGFyZ2V0PSIkJHRhcmdldC1hbSI7IFwKLSsJICBlbHNlIFwKLSsJICAgIGxvY2Fs X3RhcmdldD0iJCR0YXJnZXQiOyBcCi0rCSAgZmk7IFwKLSsJICAoY2QgJCRzdWJkaXIgJiYgJChN QUtFKSAkKEFNX01BS0VGTEFHUykgJCRsb2NhbF90YXJnZXQpIFwKLSsJICB8fCBldmFsICQkZmFp bGNvbTsgXAotKwlkb25lICYmIHRlc3QgLXogIiQkZmFpbCIKLSt0YWdzLXJlY3Vyc2l2ZToKLSsJ bGlzdD0nJChTVUJESVJTKSc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCi0rCSAgdGVzdCAi JCRzdWJkaXIiID0gLiB8fCAoY2QgJCRzdWJkaXIgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykg dGFncyk7IFwKLSsJZG9uZQotK2N0YWdzLXJlY3Vyc2l2ZToKLSsJbGlzdD0nJChTVUJESVJTKSc7 IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCi0rCSAgdGVzdCAiJCRzdWJkaXIiID0gLiB8fCAo Y2QgJCRzdWJkaXIgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgY3RhZ3MpOyBcCi0rCWRvbmUK LSsKLStJRDogJChIRUFERVJTKSAkKFNPVVJDRVMpICQoTElTUCkgJChUQUdTX0ZJTEVTKQotKwls aXN0PSckKFNPVVJDRVMpICQoSEVBREVSUykgJChMSVNQKSAkKFRBR1NfRklMRVMpJzsgXAotKwl1 bmlxdWU9YGZvciBpIGluICQkbGlzdDsgZG8gXAotKwkgICAgaWYgdGVzdCAtZiAiJCRpIjsgdGhl biBlY2hvICQkaTsgZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7IGZpOyBcCi0rCSAgZG9uZSB8IFwK LSsJICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9IDE7IG5vbmVtcHR5ID0gMTsgfSBcCi0rCSAgICAg IEVORCB7IGlmIChub25lbXB0eSkgeyBmb3IgKGkgaW4gZmlsZXMpIHByaW50IGk7IH07IH0nYDsg XAotKwlta2lkIC1mSUQgJCR1bmlxdWUKLSt0YWdzOiBUQUdTCi0rCi0rVEFHUzogdGFncy1yZWN1 cnNpdmUgJChIRUFERVJTKSAkKFNPVVJDRVMpICAkKFRBR1NfREVQRU5ERU5DSUVTKSBcCi0rCQkk KFRBR1NfRklMRVMpICQoTElTUCkKLSsJdGFncz07IFwKLSsJaGVyZT1gcHdkYDsgXAotKwlpZiAo JChFVEFHUykgLS1ldGFncy1pbmNsdWRlIC0tdmVyc2lvbikgPi9kZXYvbnVsbCAyPiYxOyB0aGVu IFwKLSsJICBpbmNsdWRlX29wdGlvbj0tLWV0YWdzLWluY2x1ZGU7IFwKLSsJICBlbXB0eV9maXg9 LjsgXAotKwllbHNlIFwKLSsJICBpbmNsdWRlX29wdGlvbj0tLWluY2x1ZGU7IFwKLSsJICBlbXB0 eV9maXg9OyBcCi0rCWZpOyBcCi0rCWxpc3Q9JyQoU1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQk bGlzdDsgZG8gXAotKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9IC47IHRoZW4gOjsgZWxzZSBcCi0r CSAgICB0ZXN0ICEgLWYgJCRzdWJkaXIvVEFHUyB8fCBcCi0rCSAgICAgIHRhZ3M9IiQkdGFncyAk JGluY2x1ZGVfb3B0aW9uPSQkaGVyZS8kJHN1YmRpci9UQUdTIjsgXAotKwkgIGZpOyBcCi0rCWRv bmU7IFwKLSsJbGlzdD0nJChTT1VSQ0VTKSAkKEhFQURFUlMpICAkKExJU1ApICQoVEFHU19GSUxF UyknOyBcCi0rCXVuaXF1ZT1gZm9yIGkgaW4gJCRsaXN0OyBkbyBcCi0rCSAgICBpZiB0ZXN0IC1m ICIkJGkiOyB0aGVuIGVjaG8gJCRpOyBlbHNlIGVjaG8gJChzcmNkaXIpLyQkaTsgZmk7IFwKLSsJ ICBkb25lIHwgXAotKwkgICQoQVdLKSAneyBmaWxlc1skJDBdID0gMTsgbm9uZW1wdHkgPSAxOyB9 IFwKLSsJICAgICAgRU5EIHsgaWYgKG5vbmVtcHR5KSB7IGZvciAoaSBpbiBmaWxlcykgcHJpbnQg aTsgfTsgfSdgOyBcCi0rCWlmIHRlc3QgLXogIiQoRVRBR1NfQVJHUykkJHRhZ3MkJHVuaXF1ZSI7 IHRoZW4gOjsgZWxzZSBcCi0rCSAgdGVzdCAtbiAiJCR1bmlxdWUiIHx8IHVuaXF1ZT0kJGVtcHR5 X2ZpeDsgXAotKwkgICQoRVRBR1MpICQoRVRBR1NGTEFHUykgJChBTV9FVEFHU0ZMQUdTKSAkKEVU QUdTX0FSR1MpIFwKLSsJICAgICQkdGFncyAkJHVuaXF1ZTsgXAotKwlmaQotK2N0YWdzOiBDVEFH UwotK0NUQUdTOiBjdGFncy1yZWN1cnNpdmUgJChIRUFERVJTKSAkKFNPVVJDRVMpICAkKFRBR1Nf REVQRU5ERU5DSUVTKSBcCi0rCQkkKFRBR1NfRklMRVMpICQoTElTUCkKLSsJdGFncz07IFwKLSsJ bGlzdD0nJChTT1VSQ0VTKSAkKEhFQURFUlMpICAkKExJU1ApICQoVEFHU19GSUxFUyknOyBcCi0r CXVuaXF1ZT1gZm9yIGkgaW4gJCRsaXN0OyBkbyBcCi0rCSAgICBpZiB0ZXN0IC1mICIkJGkiOyB0 aGVuIGVjaG8gJCRpOyBlbHNlIGVjaG8gJChzcmNkaXIpLyQkaTsgZmk7IFwKLSsJICBkb25lIHwg XAotKwkgICQoQVdLKSAneyBmaWxlc1skJDBdID0gMTsgbm9uZW1wdHkgPSAxOyB9IFwKLSsJICAg ICAgRU5EIHsgaWYgKG5vbmVtcHR5KSB7IGZvciAoaSBpbiBmaWxlcykgcHJpbnQgaTsgfTsgfSdg OyBcCi0rCXRlc3QgLXogIiQoQ1RBR1NfQVJHUykkJHRhZ3MkJHVuaXF1ZSIgXAotKwkgIHx8ICQo Q1RBR1MpICQoQ1RBR1NGTEFHUykgJChBTV9DVEFHU0ZMQUdTKSAkKENUQUdTX0FSR1MpIFwKLSsJ ICAgICAkJHRhZ3MgJCR1bmlxdWUKLSsKLStHVEFHUzoKLSsJaGVyZT1gJChhbV9fY2QpICQodG9w X2J1aWxkZGlyKSAmJiBwd2RgIFwKLSsJICAmJiBjZCAkKHRvcF9zcmNkaXIpIFwKLSsJICAmJiBn dGFncyAtaSAkKEdUQUdTX0FSR1MpICQkaGVyZQotKwotK2Rpc3RjbGVhbi10YWdzOgotKwktcm0g LWYgVEFHUyBJRCBHVEFHUyBHUlRBR1MgR1NZTVMgR1BBVEggdGFncwotKwotK2Rpc3RkaXI6ICQo RElTVEZJTEVTKQotKwlAc3JjZGlyc3RyaXA9YGVjaG8gIiQoc3JjZGlyKSIgfCBzZWQgJ3MvW10u W14kJFxcKl0vXFxcXCYvZydgOyBcCi0rCXRvcHNyY2RpcnN0cmlwPWBlY2hvICIkKHRvcF9zcmNk aXIpIiB8IHNlZCAncy9bXS5bXiQkXFwqXS9cXFxcJi9nJ2A7IFwKLSsJbGlzdD0nJChESVNURklM RVMpJzsgXAotKwkgIGRpc3RfZmlsZXM9YGZvciBmaWxlIGluICQkbGlzdDsgZG8gZWNobyAkJGZp bGU7IGRvbmUgfCBcCi0rCSAgc2VkIC1lICJzfF4kJHNyY2RpcnN0cmlwL3x8O3QiIFwKLSsJICAg ICAgLWUgInN8XiQkdG9wc3JjZGlyc3RyaXAvfCQodG9wX2J1aWxkZGlyKS98O3QiYDsgXAotKwlj YXNlICQkZGlzdF9maWxlcyBpbiBcCi0rCSAgKi8qKSAkKE1LRElSX1ApIGBlY2hvICIkJGRpc3Rf ZmlsZXMiIHwgXAotKwkJCSAgIHNlZCAnL1wvLyFkO3N8XnwkKGRpc3RkaXIpL3w7cywvW14vXSok JCwsJyB8IFwKLSsJCQkgICBzb3J0IC11YCA7OyBcCi0rCWVzYWM7IFwKLSsJZm9yIGZpbGUgaW4g JCRkaXN0X2ZpbGVzOyBkbyBcCi0rCSAgaWYgdGVzdCAtZiAkJGZpbGUgfHwgdGVzdCAtZCAkJGZp bGU7IHRoZW4gZD0uOyBlbHNlIGQ9JChzcmNkaXIpOyBmaTsgXAotKwkgIGlmIHRlc3QgLWQgJCRk LyQkZmlsZTsgdGhlbiBcCi0rCSAgICBkaXI9YGVjaG8gIi8kJGZpbGUiIHwgc2VkIC1lICdzLC9b Xi9dKiQkLCwnYDsgXAotKwkgICAgaWYgdGVzdCAtZCAkKHNyY2RpcikvJCRmaWxlICYmIHRlc3Qg JCRkICE9ICQoc3JjZGlyKTsgdGhlbiBcCi0rCSAgICAgIGNwIC1wUiAkKHNyY2RpcikvJCRmaWxl ICQoZGlzdGRpcikkJGRpciB8fCBleGl0IDE7IFwKLSsJICAgIGZpOyBcCi0rCSAgICBjcCAtcFIg JCRkLyQkZmlsZSAkKGRpc3RkaXIpJCRkaXIgfHwgZXhpdCAxOyBcCi0rCSAgZWxzZSBcCi0rCSAg ICB0ZXN0IC1mICQoZGlzdGRpcikvJCRmaWxlIFwKLSsJICAgIHx8IGNwIC1wICQkZC8kJGZpbGUg JChkaXN0ZGlyKS8kJGZpbGUgXAotKwkgICAgfHwgZXhpdCAxOyBcCi0rCSAgZmk7IFwKLSsJZG9u ZQotKwlsaXN0PSckKERJU1RfU1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAot KwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9IC47IHRoZW4gOjsgZWxzZSBcCi0rCSAgICB0ZXN0IC1k ICIkKGRpc3RkaXIpLyQkc3ViZGlyIiBcCi0rCSAgICB8fCAkKE1LRElSX1ApICIkKGRpc3RkaXIp LyQkc3ViZGlyIiBcCi0rCSAgICB8fCBleGl0IDE7IFwKLSsJICAgIGRpc3RkaXI9YCQoYW1fX2Nk KSAkKGRpc3RkaXIpICYmIHB3ZGA7IFwKLSsJICAgIHRvcF9kaXN0ZGlyPWAkKGFtX19jZCkgJCh0 b3BfZGlzdGRpcikgJiYgcHdkYDsgXAotKwkgICAgKGNkICQkc3ViZGlyICYmIFwKLSsJICAgICAg JChNQUtFKSAkKEFNX01BS0VGTEFHUykgXAotKwkgICAgICAgIHRvcF9kaXN0ZGlyPSIkJHRvcF9k aXN0ZGlyIiBcCi0rCSAgICAgICAgZGlzdGRpcj0iJCRkaXN0ZGlyLyQkc3ViZGlyIiBcCi0rCQlh bV9fcmVtb3ZlX2Rpc3RkaXI9OiBcCi0rCQlhbV9fc2tpcF9sZW5ndGhfY2hlY2s9OiBcCi0rCSAg ICAgICAgZGlzdGRpcikgXAotKwkgICAgICB8fCBleGl0IDE7IFwKLSsJICBmaTsgXAotKwlkb25l Ci0rY2hlY2stYW06IGFsbC1hbQotK2NoZWNrOiBjaGVjay1yZWN1cnNpdmUKLSthbGwtYW06IE1h a2VmaWxlCi0raW5zdGFsbGRpcnM6IGluc3RhbGxkaXJzLXJlY3Vyc2l2ZQotK2luc3RhbGxkaXJz LWFtOgotK2luc3RhbGw6IGluc3RhbGwtcmVjdXJzaXZlCi0raW5zdGFsbC1leGVjOiBpbnN0YWxs LWV4ZWMtcmVjdXJzaXZlCi0raW5zdGFsbC1kYXRhOiBpbnN0YWxsLWRhdGEtcmVjdXJzaXZlCi0r dW5pbnN0YWxsOiB1bmluc3RhbGwtcmVjdXJzaXZlCi0rCi0raW5zdGFsbC1hbTogYWxsLWFtCi0r CUAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBpbnN0YWxsLWV4ZWMtYW0gaW5zdGFsbC1kYXRhLWFt Ci0rCi0raW5zdGFsbGNoZWNrOiBpbnN0YWxsY2hlY2stcmVjdXJzaXZlCi0raW5zdGFsbC1zdHJp cDoKLSsJJChNQUtFKSAkKEFNX01BS0VGTEFHUykgSU5TVEFMTF9QUk9HUkFNPSIkKElOU1RBTExf U1RSSVBfUFJPR1JBTSkiIFwKLSsJICBpbnN0YWxsX3NoX1BST0dSQU09IiQoSU5TVEFMTF9TVFJJ UF9QUk9HUkFNKSIgSU5TVEFMTF9TVFJJUF9GTEFHPS1zIFwKLSsJICBgdGVzdCAteiAnJChTVFJJ UCknIHx8IFwKLSsJICAgIGVjaG8gIklOU1RBTExfUFJPR1JBTV9FTlY9U1RSSVBQUk9HPSckKFNU UklQKSciYCBpbnN0YWxsCi0rbW9zdGx5Y2xlYW4tZ2VuZXJpYzoKLSsKLStjbGVhbi1nZW5lcmlj OgotKwotK2Rpc3RjbGVhbi1nZW5lcmljOgotKwktdGVzdCAteiAiJChDT05GSUdfQ0xFQU5fRklM RVMpIiB8fCBybSAtZiAkKENPTkZJR19DTEVBTl9GSUxFUykKLSsKLSttYWludGFpbmVyLWNsZWFu LWdlbmVyaWM6Ci0rCUBlY2hvICJUaGlzIGNvbW1hbmQgaXMgaW50ZW5kZWQgZm9yIG1haW50YWlu ZXJzIHRvIHVzZSIKLSsJQGVjaG8gIml0IGRlbGV0ZXMgZmlsZXMgdGhhdCBtYXkgcmVxdWlyZSBz cGVjaWFsIHRvb2xzIHRvIHJlYnVpbGQuIgotKwktdGVzdCAteiAiJChNQUlOVEFJTkVSQ0xFQU5G SUxFUykiIHx8IHJtIC1mICQoTUFJTlRBSU5FUkNMRUFORklMRVMpCi0rY2xlYW46IGNsZWFuLXJl Y3Vyc2l2ZQotKwotK2NsZWFuLWFtOiBjbGVhbi1nZW5lcmljIGNsZWFuLWxpYnRvb2wgbW9zdGx5 Y2xlYW4tYW0KLSsKLStkaXN0Y2xlYW46IGRpc3RjbGVhbi1yZWN1cnNpdmUKLSsJLXJtIC1mIE1h a2VmaWxlCi0rZGlzdGNsZWFuLWFtOiBjbGVhbi1hbSBkaXN0Y2xlYW4tZ2VuZXJpYyBkaXN0Y2xl YW4tdGFncwotKwotK2R2aTogZHZpLXJlY3Vyc2l2ZQotKwotK2R2aS1hbToKLSsKLStodG1sOiBo dG1sLXJlY3Vyc2l2ZQotKwotK2luZm86IGluZm8tcmVjdXJzaXZlCi0rCi0raW5mby1hbToKLSsK LStpbnN0YWxsLWRhdGEtYW06Ci0rCi0raW5zdGFsbC1kdmk6IGluc3RhbGwtZHZpLXJlY3Vyc2l2 ZQotKwotK2luc3RhbGwtZXhlYy1hbToKLSsKLStpbnN0YWxsLWh0bWw6IGluc3RhbGwtaHRtbC1y ZWN1cnNpdmUKLSsKLStpbnN0YWxsLWluZm86IGluc3RhbGwtaW5mby1yZWN1cnNpdmUKLSsKLStp bnN0YWxsLW1hbjoKLSsKLStpbnN0YWxsLXBkZjogaW5zdGFsbC1wZGYtcmVjdXJzaXZlCi0rCi0r aW5zdGFsbC1wczogaW5zdGFsbC1wcy1yZWN1cnNpdmUKLSsKLStpbnN0YWxsY2hlY2stYW06Ci0r Ci0rbWFpbnRhaW5lci1jbGVhbjogbWFpbnRhaW5lci1jbGVhbi1yZWN1cnNpdmUKLSsJLXJtIC1m IE1ha2VmaWxlCi0rbWFpbnRhaW5lci1jbGVhbi1hbTogZGlzdGNsZWFuLWFtIG1haW50YWluZXIt Y2xlYW4tZ2VuZXJpYwotKwotK21vc3RseWNsZWFuOiBtb3N0bHljbGVhbi1yZWN1cnNpdmUKLSsK LSttb3N0bHljbGVhbi1hbTogbW9zdGx5Y2xlYW4tZ2VuZXJpYyBtb3N0bHljbGVhbi1saWJ0b29s Ci0rCi0rcGRmOiBwZGYtcmVjdXJzaXZlCi0rCi0rcGRmLWFtOgotKwotK3BzOiBwcy1yZWN1cnNp dmUKLSsKLStwcy1hbToKLSsKLSt1bmluc3RhbGwtYW06Ci0rCi0rLk1BS0U6ICQoUkVDVVJTSVZF X0NMRUFOX1RBUkdFVFMpICQoUkVDVVJTSVZFX1RBUkdFVFMpIGluc3RhbGwtYW0gXAotKwlpbnN0 YWxsLXN0cmlwCi0rCi0rLlBIT05ZOiAkKFJFQ1VSU0lWRV9DTEVBTl9UQVJHRVRTKSAkKFJFQ1VS U0lWRV9UQVJHRVRTKSBDVEFHUyBHVEFHUyBcCi0rCWFsbCBhbGwtYW0gY2hlY2sgY2hlY2stYW0g Y2xlYW4gY2xlYW4tZ2VuZXJpYyBjbGVhbi1saWJ0b29sIFwKLSsJY3RhZ3MgY3RhZ3MtcmVjdXJz aXZlIGRpc3RjbGVhbiBkaXN0Y2xlYW4tZ2VuZXJpYyBcCi0rCWRpc3RjbGVhbi1saWJ0b29sIGRp c3RjbGVhbi10YWdzIGRpc3RkaXIgZHZpIGR2aS1hbSBodG1sIFwKLSsJaHRtbC1hbSBpbmZvIGlu Zm8tYW0gaW5zdGFsbCBpbnN0YWxsLWFtIGluc3RhbGwtZGF0YSBcCi0rCWluc3RhbGwtZGF0YS1h bSBpbnN0YWxsLWR2aSBpbnN0YWxsLWR2aS1hbSBpbnN0YWxsLWV4ZWMgXAotKwlpbnN0YWxsLWV4 ZWMtYW0gaW5zdGFsbC1odG1sIGluc3RhbGwtaHRtbC1hbSBpbnN0YWxsLWluZm8gXAotKwlpbnN0 YWxsLWluZm8tYW0gaW5zdGFsbC1tYW4gaW5zdGFsbC1wZGYgaW5zdGFsbC1wZGYtYW0gXAotKwlp bnN0YWxsLXBzIGluc3RhbGwtcHMtYW0gaW5zdGFsbC1zdHJpcCBpbnN0YWxsY2hlY2sgXAotKwlp bnN0YWxsY2hlY2stYW0gaW5zdGFsbGRpcnMgaW5zdGFsbGRpcnMtYW0gbWFpbnRhaW5lci1jbGVh biBcCi0rCW1haW50YWluZXItY2xlYW4tZ2VuZXJpYyBtb3N0bHljbGVhbiBtb3N0bHljbGVhbi1n ZW5lcmljIFwKLSsJbW9zdGx5Y2xlYW4tbGlidG9vbCBwZGYgcGRmLWFtIHBzIHBzLWFtIHRhZ3Mg dGFncy1yZWN1cnNpdmUgXAotKwl1bmluc3RhbGwgdW5pbnN0YWxsLWFtCi0rCi0rQFNFVF9NQUtF QAotKwotKyNwa2dkYXRhZGlyID0gJChodG1sX2Jja19zb3VyY2VzKQotKyMgVGVsbCB2ZXJzaW9u cyBbMy41OSwzLjYzKSBvZiBHTlUgbWFrZSB0byBub3QgZXhwb3J0IGFsbCB2YXJpYWJsZXMuCi0r IyBPdGhlcndpc2UgYSBzeXN0ZW0gbGltaXQgKGZvciBTeXNWIGF0IGxlYXN0KSBtYXkgYmUgZXhj ZWVkZWQuCi0rLk5PRVhQT1JUOgotZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL2RvYy9iYWNr ZW5kcy9zb3VyY2VzLm1rIHNvY2ktMy4wLjBfdHJlcDMwMC9kb2MvYmFja2VuZHMvc291cmNlcy5t awotLS0tIHNvY2ktMy4wLjBfNC1wYWNrL2RvYy9iYWNrZW5kcy9zb3VyY2VzLm1rCTE5NzAtMDEt MDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCi0rKysgc29jaS0zLjAuMF90cmVwMzAwL2RvYy9i YWNrZW5kcy9zb3VyY2VzLm1rCTIwMDktMDUtMjIgMjI6NTQ6MjIuMDAwMDAwMDAwICswMjAwCi1A QCAtMCwwICsxLDcgQEAKLStodG1sX2Jja19zb3VyY2VzID0gJCh0b3Bfc3JjZGlyKS9kb2MvYmFj a2VuZHMvaW5kZXguaHRtbCBcCi0rCSQodG9wX3NyY2RpcikvZG9jL2JhY2tlbmRzL2ZpcmViaXJk Lmh0bWwgXAotKwkkKHRvcF9zcmNkaXIpL2RvYy9iYWNrZW5kcy9teXNxbC5odG1sIFwKLSsJJCh0 b3Bfc3JjZGlyKS9kb2MvYmFja2VuZHMvb2RiYy5odG1sIFwKLSsJJCh0b3Bfc3JjZGlyKS9kb2Mv YmFja2VuZHMvb3JhY2xlLmh0bWwgXAotKwkkKHRvcF9zcmNkaXIpL2RvYy9iYWNrZW5kcy9wb3N0 Z3Jlc3FsLmh0bWwgXAotKwkkKHRvcF9zcmNkaXIpL2RvYy9iYWNrZW5kcy9zcWxpdGUzLmh0bWwK LWRpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9kb2MvTWFrZWZpbGUuYW0gc29jaS0zLjAuMF90 cmVwMzAwL2RvYy9NYWtlZmlsZS5hbQotLS0tIHNvY2ktMy4wLjBfNC1wYWNrL2RvYy9NYWtlZmls ZS5hbQkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAotKysrIHNvY2ktMy4wLjBf dHJlcDMwMC9kb2MvTWFrZWZpbGUuYW0JMjAwOS0wNS0yMyAxMDowNjo1MC4wMDAwMDAwMDAgKzAy MDAKLUBAIC0wLDAgKzEsOCBAQAotK2luY2x1ZGUgJCh0b3Bfc3JjZGlyKS9kb2Mvc291cmNlcy5t awotKwotK1NVQkRJUlMgPSBiYWNrZW5kcwotKwotK0VYVFJBX0RJU1RfRk9SX1NPQ0lfQ09NUEFU SUJJTElUWSA9ICQoaHRtbF9sb2NhbF9zb3VyY2VzKSBcCi0rCSQoY3NzX2xvY2FsX3NvdXJjZXMp ICQoaW1nX2xvY2FsX3NvdXJjZXMpCi0rCi0rRVhUUkFfRElTVCA9ICQoRVhUUkFfRElTVF9GT1Jf U09DSV9DT01QQVRJQklMSVRZKQotZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL2RvYy9NYWtl ZmlsZS5pbiBzb2NpLTMuMC4wX3RyZXAzMDAvZG9jL01ha2VmaWxlLmluCi0tLS0gc29jaS0zLjAu MF80LXBhY2svZG9jL01ha2VmaWxlLmluCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICsw MTAwCi0rKysgc29jaS0zLjAuMF90cmVwMzAwL2RvYy9NYWtlZmlsZS5pbgkyMDA5LTA1LTIzIDEw OjA2OjU1LjAwMDAwMDAwMCArMDIwMAotQEAgLTAsMCArMSw1NjIgQEAKLSsjIE1ha2VmaWxlLmlu IGdlbmVyYXRlZCBieSBhdXRvbWFrZSAxLjEwLjIgZnJvbSBNYWtlZmlsZS5hbS4KLSsjIEBjb25m aWd1cmVfaW5wdXRACi0rCi0rIyBDb3B5cmlnaHQgKEMpIDE5OTQsIDE5OTUsIDE5OTYsIDE5OTcs IDE5OTgsIDE5OTksIDIwMDAsIDIwMDEsIDIwMDIsCi0rIyAyMDAzLCAyMDA0LCAyMDA1LCAyMDA2 LCAyMDA3LCAyMDA4ICBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KLSsjIFRoaXMgTWFr ZWZpbGUuaW4gaXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbgot KyMgZ2l2ZXMgdW5saW1pdGVkIHBlcm1pc3Npb24gdG8gY29weSBhbmQvb3IgZGlzdHJpYnV0ZSBp dCwKLSsjIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb25zLCBhcyBsb25nIGFzIHRoaXMgbm90 aWNlIGlzIHByZXNlcnZlZC4KLSsKLSsjIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0 aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJB TlRZLCB0byB0aGUgZXh0ZW50IHBlcm1pdHRlZCBieSBsYXc7IHdpdGhvdXQKLSsjIGV2ZW4gdGhl IGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEKLSsj IFBBUlRJQ1VMQVIgUFVSUE9TRS4KLSsKLStAU0VUX01BS0VACi0rVlBBVEggPSBAc3JjZGlyQAot K3BrZ2RhdGFkaXIgPSAkKGRhdGFkaXIpL0BQQUNLQUdFQAotK3BrZ2xpYmRpciA9ICQobGliZGly KS9AUEFDS0FHRUAKLStwa2dpbmNsdWRlZGlyID0gJChpbmNsdWRlZGlyKS9AUEFDS0FHRUAKLSth bV9fY2QgPSBDRFBBVEg9IiQke1pTSF9WRVJTSU9OKy59JChQQVRIX1NFUEFSQVRPUikiICYmIGNk Ci0raW5zdGFsbF9zaF9EQVRBID0gJChpbnN0YWxsX3NoKSAtYyAtbSA2NDQKLStpbnN0YWxsX3No X1BST0dSQU0gPSAkKGluc3RhbGxfc2gpIC1jCi0raW5zdGFsbF9zaF9TQ1JJUFQgPSAkKGluc3Rh bGxfc2gpIC1jCi0rSU5TVEFMTF9IRUFERVIgPSAkKElOU1RBTExfREFUQSkKLSt0cmFuc2Zvcm0g PSAkKHByb2dyYW1fdHJhbnNmb3JtX25hbWUpCi0rTk9STUFMX0lOU1RBTEwgPSA6Ci0rUFJFX0lO U1RBTEwgPSA6Ci0rUE9TVF9JTlNUQUxMID0gOgotK05PUk1BTF9VTklOU1RBTEwgPSA6Ci0rUFJF X1VOSU5TVEFMTCA9IDoKLStQT1NUX1VOSU5TVEFMTCA9IDoKLStidWlsZF90cmlwbGV0ID0gQGJ1 aWxkQAotK2hvc3RfdHJpcGxldCA9IEBob3N0QAotK0RJU1RfQ09NTU9OID0gJChzcmNkaXIpL01h a2VmaWxlLmFtICQoc3JjZGlyKS9NYWtlZmlsZS5pbiBcCi0rCSQodG9wX3NyY2RpcikvZG9jL3Nv dXJjZXMubWsKLStzdWJkaXIgPSBkb2MKLStBQ0xPQ0FMX000ID0gJCh0b3Bfc3JjZGlyKS9hY2xv Y2FsLm00Ci0rYW1fX2FjbG9jYWxfbTRfZGVwcyA9ICQodG9wX3NyY2RpcikvY29uZmlnL2F4X2Jv b3N0Lm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfbXlzcWwubTQgXAotKwkkKHRvcF9z cmNkaXIpL2NvbmZpZy9heF9vcmFjbGVfb2NpLm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcv YXhfcG9zdGdyZXNxbC5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmlnL2NwcHVuaXQubTQgXAot KwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9saWJ0b29sLm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25m aWcvbHRvcHRpb25zLm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvbHRzdWdhci5tNCBcCi0r CSQodG9wX3NyY2RpcikvY29uZmlnL2x0dmVyc2lvbi5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29u ZmlnL2x0fm9ic29sZXRlLm00ICQodG9wX3NyY2RpcikvY29uZmlndXJlLmFjCi0rYW1fX2NvbmZp Z3VyZV9kZXBzID0gJChhbV9fYWNsb2NhbF9tNF9kZXBzKSAkKENPTkZJR1VSRV9ERVBFTkRFTkNJ RVMpIFwKLSsJJChBQ0xPQ0FMX000KQotK21raW5zdGFsbGRpcnMgPSAkKGluc3RhbGxfc2gpIC1k Ci0rQ09ORklHX0hFQURFUiA9ICQodG9wX2J1aWxkZGlyKS9zb2NpL2NvbmZpZy5oCi0rQ09ORklH X0NMRUFOX0ZJTEVTID0KLStTT1VSQ0VTID0KLStESVNUX1NPVVJDRVMgPQotK1JFQ1VSU0lWRV9U QVJHRVRTID0gYWxsLXJlY3Vyc2l2ZSBjaGVjay1yZWN1cnNpdmUgZHZpLXJlY3Vyc2l2ZSBcCi0r CWh0bWwtcmVjdXJzaXZlIGluZm8tcmVjdXJzaXZlIGluc3RhbGwtZGF0YS1yZWN1cnNpdmUgXAot KwlpbnN0YWxsLWR2aS1yZWN1cnNpdmUgaW5zdGFsbC1leGVjLXJlY3Vyc2l2ZSBcCi0rCWluc3Rh bGwtaHRtbC1yZWN1cnNpdmUgaW5zdGFsbC1pbmZvLXJlY3Vyc2l2ZSBcCi0rCWluc3RhbGwtcGRm LXJlY3Vyc2l2ZSBpbnN0YWxsLXBzLXJlY3Vyc2l2ZSBpbnN0YWxsLXJlY3Vyc2l2ZSBcCi0rCWlu c3RhbGxjaGVjay1yZWN1cnNpdmUgaW5zdGFsbGRpcnMtcmVjdXJzaXZlIHBkZi1yZWN1cnNpdmUg XAotKwlwcy1yZWN1cnNpdmUgdW5pbnN0YWxsLXJlY3Vyc2l2ZQotK1JFQ1VSU0lWRV9DTEVBTl9U QVJHRVRTID0gbW9zdGx5Y2xlYW4tcmVjdXJzaXZlIGNsZWFuLXJlY3Vyc2l2ZQlcCi0rICBkaXN0 Y2xlYW4tcmVjdXJzaXZlIG1haW50YWluZXItY2xlYW4tcmVjdXJzaXZlCi0rRVRBR1MgPSBldGFn cwotK0NUQUdTID0gY3RhZ3MKLStESVNUX1NVQkRJUlMgPSAkKFNVQkRJUlMpCi0rRElTVEZJTEVT ID0gJChESVNUX0NPTU1PTikgJChESVNUX1NPVVJDRVMpICQoVEVYSU5GT1MpICQoRVhUUkFfRElT VCkKLStBQ0xPQ0FMID0gQEFDTE9DQUxACi0rQU1UQVIgPSBAQU1UQVJACi0rQVIgPSBAQVJACi0r QVVUT0NPTkYgPSBAQVVUT0NPTkZACi0rQVVUT0hFQURFUiA9IEBBVVRPSEVBREVSQAotK0FVVE9N QUtFID0gQEFVVE9NQUtFQAotK0FXSyA9IEBBV0tACi0rQk9PU1RfQ0ZMQUdTID0gQEJPT1NUX0NG TEFHU0AKLStCT09TVF9EQVRFX1RJTUVfTElCID0gQEJPT1NUX0RBVEVfVElNRV9MSUJACi0rQk9P U1RfRklMRVNZU1RFTV9MSUIgPSBAQk9PU1RfRklMRVNZU1RFTV9MSUJACi0rQk9PU1RfSU9TVFJF QU1TX0xJQiA9IEBCT09TVF9JT1NUUkVBTVNfTElCQAotK0JPT1NUX0xJQlMgPSBAQk9PU1RfTElC U0AKLStCT09TVF9QUk9HUkFNX09QVElPTlNfTElCID0gQEJPT1NUX1BST0dSQU1fT1BUSU9OU19M SUJACi0rQk9PU1RfUkVHRVhfTElCID0gQEJPT1NUX1JFR0VYX0xJQkAKLStCT09TVF9TRVJJQUxJ WkFUSU9OX0xJQiA9IEBCT09TVF9TRVJJQUxJWkFUSU9OX0xJQkAKLStCT09TVF9TSUdOQUxTX0xJ QiA9IEBCT09TVF9TSUdOQUxTX0xJQkAKLStCT09TVF9USFJFQURfTElCID0gQEJPT1NUX1RIUkVB RF9MSUJACi0rQk9PU1RfVU5JVF9URVNUX0ZSQU1FV09SS19MSUIgPSBAQk9PU1RfVU5JVF9URVNU X0ZSQU1FV09SS19MSUJACi0rQk9PU1RfVkVSU0lPTiA9IEBCT09TVF9WRVJTSU9OQAotK0JPT1NU X1dTRVJJQUxJWkFUSU9OX0xJQiA9IEBCT09TVF9XU0VSSUFMSVpBVElPTl9MSUJACi0rQ0MgPSBA Q0NACi0rQ0NERVBNT0RFID0gQENDREVQTU9ERUAKLStDRkxBR1MgPSBAQ0ZMQUdTQAotK0NQUCA9 IEBDUFBACi0rQ1BQRkxBR1MgPSBAQ1BQRkxBR1NACi0rQ1BQVU5JVF9DRkxBR1MgPSBAQ1BQVU5J VF9DRkxBR1NACi0rQ1BQVU5JVF9DT05GSUcgPSBAQ1BQVU5JVF9DT05GSUdACi0rQ1BQVU5JVF9M SUJTID0gQENQUFVOSVRfTElCU0AKLStDUFBVTklUX1ZFUlNJT04gPSBAQ1BQVU5JVF9WRVJTSU9O QAotK0NYWCA9IEBDWFhACi0rQ1hYQ1BQID0gQENYWENQUEAKLStDWFhERVBNT0RFID0gQENYWERF UE1PREVACi0rQ1hYRkxBR1MgPSBAQ1hYRkxBR1NACi0rQ1lHUEFUSF9XID0gQENZR1BBVEhfV0AK LStERUZTID0gQERFRlNACi0rREVQRElSID0gQERFUERJUkAKLStEU1lNVVRJTCA9IEBEU1lNVVRJ TEAKLStEVU1QQklOID0gQERVTVBCSU5ACi0rRUNIT19DID0gQEVDSE9fQ0AKLStFQ0hPX04gPSBA RUNIT19OQAotK0VDSE9fVCA9IEBFQ0hPX1RACi0rRUdSRVAgPSBARUdSRVBACi0rRVhFRVhUID0g QEVYRUVYVEAKLStGR1JFUCA9IEBGR1JFUEAKLStHRU5FUklDX0xJQlJBUllfVkVSU0lPTiA9IEBH RU5FUklDX0xJQlJBUllfVkVSU0lPTkAKLStHUkVQID0gQEdSRVBACi0rSU5TVEFMTCA9IEBJTlNU QUxMQAotK0lOU1RBTExfREFUQSA9IEBJTlNUQUxMX0RBVEFACi0rSU5TVEFMTF9QUk9HUkFNID0g QElOU1RBTExfUFJPR1JBTUAKLStJTlNUQUxMX1NDUklQVCA9IEBJTlNUQUxMX1NDUklQVEAKLStJ TlNUQUxMX1NUUklQX1BST0dSQU0gPSBASU5TVEFMTF9TVFJJUF9QUk9HUkFNQAotK0xEID0gQExE QAotK0xERkxBR1MgPSBATERGTEFHU0AKLStMSUJPQkpTID0gQExJQk9CSlNACi0rTElCUyA9IEBM SUJTQAotK0xJQlRPT0wgPSBATElCVE9PTEAKLStMSVBPID0gQExJUE9ACi0rTE5fUyA9IEBMTl9T QAotK0xUTElCT0JKUyA9IEBMVExJQk9CSlNACi0rTUFLRUlORk8gPSBATUFLRUlORk9ACi0rTUtE SVJfUCA9IEBNS0RJUl9QQAotK01ZU1FMX0NGTEFHUyA9IEBNWVNRTF9DRkxBR1NACi0rTVlTUUxf Q09ORklHID0gQE1ZU1FMX0NPTkZJR0AKLStNWVNRTF9ESVJTID0gQE1ZU1FMX0RJUlNACi0rTVlT UUxfTERGTEFHUyA9IEBNWVNRTF9MREZMQUdTQAotK01ZU1FMX1ZFUlNJT04gPSBATVlTUUxfVkVS U0lPTkAKLStOTSA9IEBOTUAKLStOTUVESVQgPSBATk1FRElUQAotK09CSkRVTVAgPSBAT0JKRFVN UEAKLStPQkpFWFQgPSBAT0JKRVhUQAotK09SQUNMRV9ESVJTID0gQE9SQUNMRV9ESVJTQAotK09S QUNMRV9PQ0lfQ0ZMQUdTID0gQE9SQUNMRV9PQ0lfQ0ZMQUdTQAotK09SQUNMRV9PQ0lfTERGTEFH UyA9IEBPUkFDTEVfT0NJX0xERkxBR1NACi0rT1JBQ0xFX09DSV9WRVJTSU9OID0gQE9SQUNMRV9P Q0lfVkVSU0lPTkAKLStPVE9PTCA9IEBPVE9PTEAKLStPVE9PTDY0ID0gQE9UT09MNjRACi0rUEFD S0FHRSA9IEBQQUNLQUdFQAotK1BBQ0tBR0VfQlVHUkVQT1JUID0gQFBBQ0tBR0VfQlVHUkVQT1JU QAotK1BBQ0tBR0VfTkFNRSA9IEBQQUNLQUdFX05BTUVACi0rUEFDS0FHRV9TVFJJTkcgPSBAUEFD S0FHRV9TVFJJTkdACi0rUEFDS0FHRV9UQVJOQU1FID0gQFBBQ0tBR0VfVEFSTkFNRUAKLStQQUNL QUdFX1ZFUlNJT04gPSBAUEFDS0FHRV9WRVJTSU9OQAotK1BBVEhfU0VQQVJBVE9SID0gQFBBVEhf U0VQQVJBVE9SQAotK1BFUkwgPSBAUEVSTEAKLStQR19DT05GSUcgPSBAUEdfQ09ORklHQAotK1BP U1RHUkVTUUxfQ0ZMQUdTID0gQFBPU1RHUkVTUUxfQ0ZMQUdTQAotK1BPU1RHUkVTUUxfRElSUyA9 IEBQT1NUR1JFU1FMX0RJUlNACi0rUE9TVEdSRVNRTF9MREZMQUdTID0gQFBPU1RHUkVTUUxfTERG TEFHU0AKLStQT1NUR1JFU1FMX1ZFUlNJT04gPSBAUE9TVEdSRVNRTF9WRVJTSU9OQAotK1JBTkxJ QiA9IEBSQU5MSUJACi0rUlBNX1JFTEVBU0UgPSBAUlBNX1JFTEVBU0VACi0rU0VEID0gQFNFREAK LStTRVRfTUFLRSA9IEBTRVRfTUFLRUAKLStTSEVMTCA9IEBTSEVMTEAKLStTT0NJX0hFQURFUlNf QlVSSUVEID0gQFNPQ0lfSEVBREVSU19CVVJJRURACi0rU09DSV9NWVNRTF9IRUFERVJTX0JVUklF RCA9IEBTT0NJX01ZU1FMX0hFQURFUlNfQlVSSUVEQAotK1NPQ0lfUE9TVEdSRVNRTF9IRUFERVJT X0JVUklFRCA9IEBTT0NJX1BPU1RHUkVTUUxfSEVBREVSU19CVVJJRURACi0rU1RSSVAgPSBAU1RS SVBACi0rVVBMT0FEX0NPTU1BTkQgPSBAVVBMT0FEX0NPTU1BTkRACi0rVkVSU0lPTiA9IEBWRVJT SU9OQAotK2Fic19idWlsZGRpciA9IEBhYnNfYnVpbGRkaXJACi0rYWJzX3NyY2RpciA9IEBhYnNf c3JjZGlyQAotK2Fic190b3BfYnVpbGRkaXIgPSBAYWJzX3RvcF9idWlsZGRpckAKLSthYnNfdG9w X3NyY2RpciA9IEBhYnNfdG9wX3NyY2RpckAKLSthY19jdF9DQyA9IEBhY19jdF9DQ0AKLSthY19j dF9DWFggPSBAYWNfY3RfQ1hYQAotK2FjX2N0X0RVTVBCSU4gPSBAYWNfY3RfRFVNUEJJTkAKLSth bV9faW5jbHVkZSA9IEBhbV9faW5jbHVkZUAKLSthbV9fbGVhZGluZ19kb3QgPSBAYW1fX2xlYWRp bmdfZG90QAotK2FtX19xdW90ZSA9IEBhbV9fcXVvdGVACi0rYW1fX3RhciA9IEBhbV9fdGFyQAot K2FtX191bnRhciA9IEBhbV9fdW50YXJACi0rYmluZGlyID0gQGJpbmRpckAKLStidWlsZCA9IEBi dWlsZEAKLStidWlsZF9hbGlhcyA9IEBidWlsZF9hbGlhc0AKLStidWlsZF9jcHUgPSBAYnVpbGRf Y3B1QAotK2J1aWxkX29zID0gQGJ1aWxkX29zQAotK2J1aWxkX3ZlbmRvciA9IEBidWlsZF92ZW5k b3JACi0rYnVpbGRkaXIgPSBAYnVpbGRkaXJACi0rZGF0YWRpciA9IEBkYXRhZGlyQAotK2RhdGFy b290ZGlyID0gQGRhdGFyb290ZGlyQAotK2RpZmZfb2sgPSBAZGlmZl9va0AKLStkb2NkaXIgPSBA ZG9jZGlyQAotK2RveHlnZW5fb2sgPSBAZG94eWdlbl9va0AKLStkdmlkaXIgPSBAZHZpZGlyQAot K2R2aXBzX29rID0gQGR2aXBzX29rQAotK2V4ZWNfcHJlZml4ID0gQGV4ZWNfcHJlZml4QAotK2dz X29rID0gQGdzX29rQAotK2hvc3QgPSBAaG9zdEAKLStob3N0X2FsaWFzID0gQGhvc3RfYWxpYXNA Ci0raG9zdF9jcHUgPSBAaG9zdF9jcHVACi0raG9zdF9vcyA9IEBob3N0X29zQAotK2hvc3RfdmVu ZG9yID0gQGhvc3RfdmVuZG9yQAotK2h0bWxkaXIgPSBAaHRtbGRpckAKLStpbmNsdWRlZGlyID0g QGluY2x1ZGVkaXJACi0raW5mb2RpciA9IEBpbmZvZGlyQAotK2luc3RhbGxfc2ggPSBAaW5zdGFs bF9zaEAKLStsYXRleF9vayA9IEBsYXRleF9va0AKLStsaWJkaXIgPSBAbGliZGlyQAotK2xpYmV4 ZWNkaXIgPSBAbGliZXhlY2RpckAKLStsb2NhbGVkaXIgPSBAbG9jYWxlZGlyQAotK2xvY2Fsc3Rh dGVkaXIgPSBAbG9jYWxzdGF0ZWRpckAKLStsdF9FQ0hPID0gQGx0X0VDSE9ACi0rbWFuZGlyID0g QG1hbmRpckAKLStta2Rpcl9wID0gQG1rZGlyX3BACi0rb2xkaW5jbHVkZWRpciA9IEBvbGRpbmNs dWRlZGlyQAotK3BkZmRpciA9IEBwZGZkaXJACi0rcHJlZml4ID0gQHByZWZpeEAKLStwcm9ncmFt X3RyYW5zZm9ybV9uYW1lID0gQHByb2dyYW1fdHJhbnNmb3JtX25hbWVACi0rcHNkaXIgPSBAcHNk aXJACi0rc2JpbmRpciA9IEBzYmluZGlyQAotK3NlZF9vayA9IEBzZWRfb2tACi0rc2hhcmVkc3Rh dGVkaXIgPSBAc2hhcmVkc3RhdGVkaXJACi0rc3JjZGlyID0gQHNyY2RpckAKLStzeXNjb25mZGly ID0gQHN5c2NvbmZkaXJACi0rdGFyZ2V0X2FsaWFzID0gQHRhcmdldF9hbGlhc0AKLSt0b3BfYnVp bGRfcHJlZml4ID0gQHRvcF9idWlsZF9wcmVmaXhACi0rdG9wX2J1aWxkZGlyID0gQHRvcF9idWls ZGRpckAKLSt0b3Bfc3JjZGlyID0gQHRvcF9zcmNkaXJACi0raHRtbF9sb2NhbF9zb3VyY2VzID0g JCh0b3Bfc3JjZGlyKS9kb2MvYmFja2VuZHMuaHRtbCBcCi0rCSQodG9wX3NyY2RpcikvZG9jL2Jh c2ljcy5odG1sIFwKLSsJJCh0b3Bfc3JjZGlyKS9kb2MvYmV5b25kLmh0bWwgXAotKwkkKHRvcF9z cmNkaXIpL2RvYy9ib29zdC5odG1sIFwKLSsJJCh0b3Bfc3JjZGlyKS9kb2MvZXJyb3JzLmh0bWwg XAotKwkkKHRvcF9zcmNkaXIpL2RvYy9leGNoYW5nZS5odG1sIFwKLSsJJCh0b3Bfc3JjZGlyKS9k b2MvaW5kZXguaHRtbCBcCi0rCSQodG9wX3NyY2RpcikvZG9jL2ludGVyZmFjZXMuaHRtbCBcCi0r CSQodG9wX3NyY2RpcikvZG9jL211bHRpdGhyZWFkaW5nLmh0bWwgXAotKwkkKHRvcF9zcmNkaXIp L2RvYy9yYXRpb25hbGUuaHRtbCBcCi0rCSQodG9wX3NyY2RpcikvZG9jL3JlZmVyZW5jZS5odG1s IFwKLSsJJCh0b3Bfc3JjZGlyKS9kb2Mvc3RhdGVtZW50cy5odG1sIFwKLSsJJCh0b3Bfc3JjZGly KS9kb2Mvc3RydWN0dXJlLmh0bWwKLSsKLStjc3NfbG9jYWxfc291cmNlcyA9ICQodG9wX3NyY2Rp cikvZG9jL3N0eWxlLmNzcwotK2ltZ19sb2NhbF9zb3VyY2VzID0gJCh0b3Bfc3JjZGlyKS9kb2Mv c3RydWN0dXJlLnBuZwotK1NVQkRJUlMgPSBiYWNrZW5kcwotK0VYVFJBX0RJU1RfRk9SX1NPQ0lf Q09NUEFUSUJJTElUWSA9ICQoaHRtbF9sb2NhbF9zb3VyY2VzKSBcCi0rCSQoY3NzX2xvY2FsX3Nv dXJjZXMpICQoaW1nX2xvY2FsX3NvdXJjZXMpCi0rCi0rRVhUUkFfRElTVCA9ICQoRVhUUkFfRElT VF9GT1JfU09DSV9DT01QQVRJQklMSVRZKQotK2FsbDogYWxsLXJlY3Vyc2l2ZQotKwotKy5TVUZG SVhFUzoKLSskKHNyY2RpcikvTWFrZWZpbGUuaW46ICAkKHNyY2RpcikvTWFrZWZpbGUuYW0gJCh0 b3Bfc3JjZGlyKS9kb2Mvc291cmNlcy5tayAkKGFtX19jb25maWd1cmVfZGVwcykKLSsJQGZvciBk ZXAgaW4gJD87IGRvIFwKLSsJICBjYXNlICckKGFtX19jb25maWd1cmVfZGVwcyknIGluIFwKLSsJ ICAgICokJGRlcCopIFwKLSsJICAgICAgKCBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAk KEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2ggKSBcCi0rCSAgICAgICAgJiYgeyBpZiB0ZXN0IC1m ICRAOyB0aGVuIGV4aXQgMDsgZWxzZSBicmVhazsgZmk7IH07IFwKLSsJICAgICAgZXhpdCAxOzsg XAotKwkgIGVzYWM7IFwKLSsJZG9uZTsgXAotKwllY2hvICcgY2QgJCh0b3Bfc3JjZGlyKSAmJiAk KEFVVE9NQUtFKSAtLWdudSAgZG9jL01ha2VmaWxlJzsgXAotKwljZCAkKHRvcF9zcmNkaXIpICYm IFwKLSsJICAkKEFVVE9NQUtFKSAtLWdudSAgZG9jL01ha2VmaWxlCi0rLlBSRUNJT1VTOiBNYWtl ZmlsZQotK01ha2VmaWxlOiAkKHNyY2RpcikvTWFrZWZpbGUuaW4gJCh0b3BfYnVpbGRkaXIpL2Nv bmZpZy5zdGF0dXMKLSsJQGNhc2UgJyQ/JyBpbiBcCi0rCSAgKmNvbmZpZy5zdGF0dXMqKSBcCi0r CSAgICBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJl ZnJlc2g7OyBcCi0rCSAgKikgXAotKwkgICAgZWNobyAnIGNkICQodG9wX2J1aWxkZGlyKSAmJiAk KFNIRUxMKSAuL2NvbmZpZy5zdGF0dXMgJChzdWJkaXIpLyRAICQoYW1fX2RlcGZpbGVzX21heWJl KSc7IFwKLSsJICAgIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKFNIRUxMKSAuL2NvbmZpZy5zdGF0 dXMgJChzdWJkaXIpLyRAICQoYW1fX2RlcGZpbGVzX21heWJlKTs7IFwKLSsJZXNhYzsKLSsKLSsk KHRvcF9idWlsZGRpcikvY29uZmlnLnN0YXR1czogJCh0b3Bfc3JjZGlyKS9jb25maWd1cmUgJChD T05GSUdfU1RBVFVTX0RFUEVOREVOQ0lFUykKLSsJY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFL RSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCi0rCi0rJCh0b3Bfc3JjZGlyKS9jb25maWd1 cmU6ICAkKGFtX19jb25maWd1cmVfZGVwcykKLSsJY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFL RSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCi0rJChBQ0xPQ0FMX000KTogICQoYW1fX2Fj bG9jYWxfbTRfZGVwcykKLSsJY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtF RkxBR1MpIGFtLS1yZWZyZXNoCi0rCi0rbW9zdGx5Y2xlYW4tbGlidG9vbDoKLSsJLXJtIC1mICou bG8KLSsKLStjbGVhbi1saWJ0b29sOgotKwktcm0gLXJmIC5saWJzIF9saWJzCi0rCi0rIyBUaGlz IGRpcmVjdG9yeSdzIHN1YmRpcmVjdG9yaWVzIGFyZSBtb3N0bHkgaW5kZXBlbmRlbnQ7IHlvdSBj YW4gY2QKLSsjIGludG8gdGhlbSBhbmQgcnVuIGBtYWtlJyB3aXRob3V0IGdvaW5nIHRocm91Z2gg dGhpcyBNYWtlZmlsZS4KLSsjIFRvIGNoYW5nZSB0aGUgdmFsdWVzIG9mIGBtYWtlJyB2YXJpYWJs ZXM6IGluc3RlYWQgb2YgZWRpdGluZyBNYWtlZmlsZXMsCi0rIyAoMSkgaWYgdGhlIHZhcmlhYmxl IGlzIHNldCBpbiBgY29uZmlnLnN0YXR1cycsIGVkaXQgYGNvbmZpZy5zdGF0dXMnCi0rIyAgICAg KHdoaWNoIHdpbGwgY2F1c2UgdGhlIE1ha2VmaWxlcyB0byBiZSByZWdlbmVyYXRlZCB3aGVuIHlv dSBydW4gYG1ha2UnKTsKLSsjICgyKSBvdGhlcndpc2UsIHBhc3MgdGhlIGRlc2lyZWQgdmFsdWVz IG9uIHRoZSBgbWFrZScgY29tbWFuZCBsaW5lLgotKyQoUkVDVVJTSVZFX1RBUkdFVFMpOgotKwlA ZmFpbGNvbT0nZXhpdCAxJzsgXAotKwlmb3IgZiBpbiB4ICQkTUFLRUZMQUdTOyBkbyBcCi0rCSAg Y2FzZSAkJGYgaW4gXAotKwkgICAgKj0qIHwgLS1bIWtdKik7OyBcCi0rCSAgICAqayopIGZhaWxj b209J2ZhaWw9eWVzJzs7IFwKLSsJICBlc2FjOyBcCi0rCWRvbmU7IFwKLSsJZG90X3NlZW49bm87 IFwKLSsJdGFyZ2V0PWBlY2hvICRAIHwgc2VkIHMvLXJlY3Vyc2l2ZS8vYDsgXAotKwlsaXN0PSck KFNVQkRJUlMpJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKLSsJICBlY2hvICJNYWtpbmcg JCR0YXJnZXQgaW4gJCRzdWJkaXIiOyBcCi0rCSAgaWYgdGVzdCAiJCRzdWJkaXIiID0gIi4iOyB0 aGVuIFwKLSsJICAgIGRvdF9zZWVuPXllczsgXAotKwkgICAgbG9jYWxfdGFyZ2V0PSIkJHRhcmdl dC1hbSI7IFwKLSsJICBlbHNlIFwKLSsJICAgIGxvY2FsX3RhcmdldD0iJCR0YXJnZXQiOyBcCi0r CSAgZmk7IFwKLSsJICAoY2QgJCRzdWJkaXIgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgJCRs b2NhbF90YXJnZXQpIFwKLSsJICB8fCBldmFsICQkZmFpbGNvbTsgXAotKwlkb25lOyBcCi0rCWlm IHRlc3QgIiQkZG90X3NlZW4iID0gIm5vIjsgdGhlbiBcCi0rCSAgJChNQUtFKSAkKEFNX01BS0VG TEFHUykgIiQkdGFyZ2V0LWFtIiB8fCBleGl0IDE7IFwKLSsJZmk7IHRlc3QgLXogIiQkZmFpbCIK LSsKLSskKFJFQ1VSU0lWRV9DTEVBTl9UQVJHRVRTKToKLSsJQGZhaWxjb209J2V4aXQgMSc7IFwK LSsJZm9yIGYgaW4geCAkJE1BS0VGTEFHUzsgZG8gXAotKwkgIGNhc2UgJCRmIGluIFwKLSsJICAg ICo9KiB8IC0tWyFrXSopOzsgXAotKwkgICAgKmsqKSBmYWlsY29tPSdmYWlsPXllcyc7OyBcCi0r CSAgZXNhYzsgXAotKwlkb25lOyBcCi0rCWRvdF9zZWVuPW5vOyBcCi0rCWNhc2UgIiRAIiBpbiBc Ci0rCSAgZGlzdGNsZWFuLSogfCBtYWludGFpbmVyLWNsZWFuLSopIGxpc3Q9JyQoRElTVF9TVUJE SVJTKScgOzsgXAotKwkgICopIGxpc3Q9JyQoU1VCRElSUyknIDs7IFwKLSsJZXNhYzsgXAotKwly ZXY9Jyc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCi0rCSAgaWYgdGVzdCAiJCRzdWJkaXIi ID0gIi4iOyB0aGVuIDo7IGVsc2UgXAotKwkgICAgcmV2PSIkJHN1YmRpciAkJHJldiI7IFwKLSsJ ICBmaTsgXAotKwlkb25lOyBcCi0rCXJldj0iJCRyZXYgLiI7IFwKLSsJdGFyZ2V0PWBlY2hvICRA IHwgc2VkIHMvLXJlY3Vyc2l2ZS8vYDsgXAotKwlmb3Igc3ViZGlyIGluICQkcmV2OyBkbyBcCi0r CSAgZWNobyAiTWFraW5nICQkdGFyZ2V0IGluICQkc3ViZGlyIjsgXAotKwkgIGlmIHRlc3QgIiQk c3ViZGlyIiA9ICIuIjsgdGhlbiBcCi0rCSAgICBsb2NhbF90YXJnZXQ9IiQkdGFyZ2V0LWFtIjsg XAotKwkgIGVsc2UgXAotKwkgICAgbG9jYWxfdGFyZ2V0PSIkJHRhcmdldCI7IFwKLSsJICBmaTsg XAotKwkgIChjZCAkJHN1YmRpciAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSAkJGxvY2FsX3Rh cmdldCkgXAotKwkgIHx8IGV2YWwgJCRmYWlsY29tOyBcCi0rCWRvbmUgJiYgdGVzdCAteiAiJCRm YWlsIgotK3RhZ3MtcmVjdXJzaXZlOgotKwlsaXN0PSckKFNVQkRJUlMpJzsgZm9yIHN1YmRpciBp biAkJGxpc3Q7IGRvIFwKLSsJICB0ZXN0ICIkJHN1YmRpciIgPSAuIHx8IChjZCAkJHN1YmRpciAm JiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSB0YWdzKTsgXAotKwlkb25lCi0rY3RhZ3MtcmVjdXJz aXZlOgotKwlsaXN0PSckKFNVQkRJUlMpJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKLSsJ ICB0ZXN0ICIkJHN1YmRpciIgPSAuIHx8IChjZCAkJHN1YmRpciAmJiAkKE1BS0UpICQoQU1fTUFL RUZMQUdTKSBjdGFncyk7IFwKLSsJZG9uZQotKwotK0lEOiAkKEhFQURFUlMpICQoU09VUkNFUykg JChMSVNQKSAkKFRBR1NfRklMRVMpCi0rCWxpc3Q9JyQoU09VUkNFUykgJChIRUFERVJTKSAkKExJ U1ApICQoVEFHU19GSUxFUyknOyBcCi0rCXVuaXF1ZT1gZm9yIGkgaW4gJCRsaXN0OyBkbyBcCi0r CSAgICBpZiB0ZXN0IC1mICIkJGkiOyB0aGVuIGVjaG8gJCRpOyBlbHNlIGVjaG8gJChzcmNkaXIp LyQkaTsgZmk7IFwKLSsJICBkb25lIHwgXAotKwkgICQoQVdLKSAneyBmaWxlc1skJDBdID0gMTsg bm9uZW1wdHkgPSAxOyB9IFwKLSsJICAgICAgRU5EIHsgaWYgKG5vbmVtcHR5KSB7IGZvciAoaSBp biBmaWxlcykgcHJpbnQgaTsgfTsgfSdgOyBcCi0rCW1raWQgLWZJRCAkJHVuaXF1ZQotK3RhZ3M6 IFRBR1MKLSsKLStUQUdTOiB0YWdzLXJlY3Vyc2l2ZSAkKEhFQURFUlMpICQoU09VUkNFUykgICQo VEFHU19ERVBFTkRFTkNJRVMpIFwKLSsJCSQoVEFHU19GSUxFUykgJChMSVNQKQotKwl0YWdzPTsg XAotKwloZXJlPWBwd2RgOyBcCi0rCWlmICgkKEVUQUdTKSAtLWV0YWdzLWluY2x1ZGUgLS12ZXJz aW9uKSA+L2Rldi9udWxsIDI+JjE7IHRoZW4gXAotKwkgIGluY2x1ZGVfb3B0aW9uPS0tZXRhZ3Mt aW5jbHVkZTsgXAotKwkgIGVtcHR5X2ZpeD0uOyBcCi0rCWVsc2UgXAotKwkgIGluY2x1ZGVfb3B0 aW9uPS0taW5jbHVkZTsgXAotKwkgIGVtcHR5X2ZpeD07IFwKLSsJZmk7IFwKLSsJbGlzdD0nJChT VUJESVJTKSc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCi0rCSAgaWYgdGVzdCAiJCRzdWJk aXIiID0gLjsgdGhlbiA6OyBlbHNlIFwKLSsJICAgIHRlc3QgISAtZiAkJHN1YmRpci9UQUdTIHx8 IFwKLSsJICAgICAgdGFncz0iJCR0YWdzICQkaW5jbHVkZV9vcHRpb249JCRoZXJlLyQkc3ViZGly L1RBR1MiOyBcCi0rCSAgZmk7IFwKLSsJZG9uZTsgXAotKwlsaXN0PSckKFNPVVJDRVMpICQoSEVB REVSUykgICQoTElTUCkgJChUQUdTX0ZJTEVTKSc7IFwKLSsJdW5pcXVlPWBmb3IgaSBpbiAkJGxp c3Q7IGRvIFwKLSsJICAgIGlmIHRlc3QgLWYgIiQkaSI7IHRoZW4gZWNobyAkJGk7IGVsc2UgZWNo byAkKHNyY2RpcikvJCRpOyBmaTsgXAotKwkgIGRvbmUgfCBcCi0rCSAgJChBV0spICd7IGZpbGVz WyQkMF0gPSAxOyBub25lbXB0eSA9IDE7IH0gXAotKwkgICAgICBFTkQgeyBpZiAobm9uZW1wdHkp IHsgZm9yIChpIGluIGZpbGVzKSBwcmludCBpOyB9OyB9J2A7IFwKLSsJaWYgdGVzdCAteiAiJChF VEFHU19BUkdTKSQkdGFncyQkdW5pcXVlIjsgdGhlbiA6OyBlbHNlIFwKLSsJICB0ZXN0IC1uICIk JHVuaXF1ZSIgfHwgdW5pcXVlPSQkZW1wdHlfZml4OyBcCi0rCSAgJChFVEFHUykgJChFVEFHU0ZM QUdTKSAkKEFNX0VUQUdTRkxBR1MpICQoRVRBR1NfQVJHUykgXAotKwkgICAgJCR0YWdzICQkdW5p cXVlOyBcCi0rCWZpCi0rY3RhZ3M6IENUQUdTCi0rQ1RBR1M6IGN0YWdzLXJlY3Vyc2l2ZSAkKEhF QURFUlMpICQoU09VUkNFUykgICQoVEFHU19ERVBFTkRFTkNJRVMpIFwKLSsJCSQoVEFHU19GSUxF UykgJChMSVNQKQotKwl0YWdzPTsgXAotKwlsaXN0PSckKFNPVVJDRVMpICQoSEVBREVSUykgICQo TElTUCkgJChUQUdTX0ZJTEVTKSc7IFwKLSsJdW5pcXVlPWBmb3IgaSBpbiAkJGxpc3Q7IGRvIFwK LSsJICAgIGlmIHRlc3QgLWYgIiQkaSI7IHRoZW4gZWNobyAkJGk7IGVsc2UgZWNobyAkKHNyY2Rp cikvJCRpOyBmaTsgXAotKwkgIGRvbmUgfCBcCi0rCSAgJChBV0spICd7IGZpbGVzWyQkMF0gPSAx OyBub25lbXB0eSA9IDE7IH0gXAotKwkgICAgICBFTkQgeyBpZiAobm9uZW1wdHkpIHsgZm9yIChp IGluIGZpbGVzKSBwcmludCBpOyB9OyB9J2A7IFwKLSsJdGVzdCAteiAiJChDVEFHU19BUkdTKSQk dGFncyQkdW5pcXVlIiBcCi0rCSAgfHwgJChDVEFHUykgJChDVEFHU0ZMQUdTKSAkKEFNX0NUQUdT RkxBR1MpICQoQ1RBR1NfQVJHUykgXAotKwkgICAgICQkdGFncyAkJHVuaXF1ZQotKwotK0dUQUdT OgotKwloZXJlPWAkKGFtX19jZCkgJCh0b3BfYnVpbGRkaXIpICYmIHB3ZGAgXAotKwkgICYmIGNk ICQodG9wX3NyY2RpcikgXAotKwkgICYmIGd0YWdzIC1pICQoR1RBR1NfQVJHUykgJCRoZXJlCi0r Ci0rZGlzdGNsZWFuLXRhZ3M6Ci0rCS1ybSAtZiBUQUdTIElEIEdUQUdTIEdSVEFHUyBHU1lNUyBH UEFUSCB0YWdzCi0rCi0rZGlzdGRpcjogJChESVNURklMRVMpCi0rCUBzcmNkaXJzdHJpcD1gZWNo byAiJChzcmNkaXIpIiB8IHNlZCAncy9bXS5bXiQkXFwqXS9cXFxcJi9nJ2A7IFwKLSsJdG9wc3Jj ZGlyc3RyaXA9YGVjaG8gIiQodG9wX3NyY2RpcikiIHwgc2VkICdzL1tdLlteJCRcXCpdL1xcXFwm L2cnYDsgXAotKwlsaXN0PSckKERJU1RGSUxFUyknOyBcCi0rCSAgZGlzdF9maWxlcz1gZm9yIGZp bGUgaW4gJCRsaXN0OyBkbyBlY2hvICQkZmlsZTsgZG9uZSB8IFwKLSsJICBzZWQgLWUgInN8XiQk c3JjZGlyc3RyaXAvfHw7dCIgXAotKwkgICAgICAtZSAic3xeJCR0b3BzcmNkaXJzdHJpcC98JCh0 b3BfYnVpbGRkaXIpL3w7dCJgOyBcCi0rCWNhc2UgJCRkaXN0X2ZpbGVzIGluIFwKLSsJICAqLyop ICQoTUtESVJfUCkgYGVjaG8gIiQkZGlzdF9maWxlcyIgfCBcCi0rCQkJICAgc2VkICcvXC8vIWQ7 c3xefCQoZGlzdGRpcikvfDtzLC9bXi9dKiQkLCwnIHwgXAotKwkJCSAgIHNvcnQgLXVgIDs7IFwK LSsJZXNhYzsgXAotKwlmb3IgZmlsZSBpbiAkJGRpc3RfZmlsZXM7IGRvIFwKLSsJICBpZiB0ZXN0 IC1mICQkZmlsZSB8fCB0ZXN0IC1kICQkZmlsZTsgdGhlbiBkPS47IGVsc2UgZD0kKHNyY2Rpcik7 IGZpOyBcCi0rCSAgaWYgdGVzdCAtZCAkJGQvJCRmaWxlOyB0aGVuIFwKLSsJICAgIGRpcj1gZWNo byAiLyQkZmlsZSIgfCBzZWQgLWUgJ3MsL1teL10qJCQsLCdgOyBcCi0rCSAgICBpZiB0ZXN0IC1k ICQoc3JjZGlyKS8kJGZpbGUgJiYgdGVzdCAkJGQgIT0gJChzcmNkaXIpOyB0aGVuIFwKLSsJICAg ICAgY3AgLXBSICQoc3JjZGlyKS8kJGZpbGUgJChkaXN0ZGlyKSQkZGlyIHx8IGV4aXQgMTsgXAot KwkgICAgZmk7IFwKLSsJICAgIGNwIC1wUiAkJGQvJCRmaWxlICQoZGlzdGRpcikkJGRpciB8fCBl eGl0IDE7IFwKLSsJICBlbHNlIFwKLSsJICAgIHRlc3QgLWYgJChkaXN0ZGlyKS8kJGZpbGUgXAot KwkgICAgfHwgY3AgLXAgJCRkLyQkZmlsZSAkKGRpc3RkaXIpLyQkZmlsZSBcCi0rCSAgICB8fCBl eGl0IDE7IFwKLSsJICBmaTsgXAotKwlkb25lCi0rCWxpc3Q9JyQoRElTVF9TVUJESVJTKSc7IGZv ciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCi0rCSAgaWYgdGVzdCAiJCRzdWJkaXIiID0gLjsgdGhl biA6OyBlbHNlIFwKLSsJICAgIHRlc3QgLWQgIiQoZGlzdGRpcikvJCRzdWJkaXIiIFwKLSsJICAg IHx8ICQoTUtESVJfUCkgIiQoZGlzdGRpcikvJCRzdWJkaXIiIFwKLSsJICAgIHx8IGV4aXQgMTsg XAotKwkgICAgZGlzdGRpcj1gJChhbV9fY2QpICQoZGlzdGRpcikgJiYgcHdkYDsgXAotKwkgICAg dG9wX2Rpc3RkaXI9YCQoYW1fX2NkKSAkKHRvcF9kaXN0ZGlyKSAmJiBwd2RgOyBcCi0rCSAgICAo Y2QgJCRzdWJkaXIgJiYgXAotKwkgICAgICAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBcCi0rCSAg ICAgICAgdG9wX2Rpc3RkaXI9IiQkdG9wX2Rpc3RkaXIiIFwKLSsJICAgICAgICBkaXN0ZGlyPSIk JGRpc3RkaXIvJCRzdWJkaXIiIFwKLSsJCWFtX19yZW1vdmVfZGlzdGRpcj06IFwKLSsJCWFtX19z a2lwX2xlbmd0aF9jaGVjaz06IFwKLSsJICAgICAgICBkaXN0ZGlyKSBcCi0rCSAgICAgIHx8IGV4 aXQgMTsgXAotKwkgIGZpOyBcCi0rCWRvbmUKLStjaGVjay1hbTogYWxsLWFtCi0rY2hlY2s6IGNo ZWNrLXJlY3Vyc2l2ZQotK2FsbC1hbTogTWFrZWZpbGUKLStpbnN0YWxsZGlyczogaW5zdGFsbGRp cnMtcmVjdXJzaXZlCi0raW5zdGFsbGRpcnMtYW06Ci0raW5zdGFsbDogaW5zdGFsbC1yZWN1cnNp dmUKLStpbnN0YWxsLWV4ZWM6IGluc3RhbGwtZXhlYy1yZWN1cnNpdmUKLStpbnN0YWxsLWRhdGE6 IGluc3RhbGwtZGF0YS1yZWN1cnNpdmUKLSt1bmluc3RhbGw6IHVuaW5zdGFsbC1yZWN1cnNpdmUK LSsKLStpbnN0YWxsLWFtOiBhbGwtYW0KLSsJQCQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGluc3Rh bGwtZXhlYy1hbSBpbnN0YWxsLWRhdGEtYW0KLSsKLStpbnN0YWxsY2hlY2s6IGluc3RhbGxjaGVj ay1yZWN1cnNpdmUKLStpbnN0YWxsLXN0cmlwOgotKwkkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBJ TlNUQUxMX1BST0dSQU09IiQoSU5TVEFMTF9TVFJJUF9QUk9HUkFNKSIgXAotKwkgIGluc3RhbGxf c2hfUFJPR1JBTT0iJChJTlNUQUxMX1NUUklQX1BST0dSQU0pIiBJTlNUQUxMX1NUUklQX0ZMQUc9 LXMgXAotKwkgIGB0ZXN0IC16ICckKFNUUklQKScgfHwgXAotKwkgICAgZWNobyAiSU5TVEFMTF9Q Uk9HUkFNX0VOVj1TVFJJUFBST0c9JyQoU1RSSVApJyJgIGluc3RhbGwKLSttb3N0bHljbGVhbi1n ZW5lcmljOgotKwotK2NsZWFuLWdlbmVyaWM6Ci0rCi0rZGlzdGNsZWFuLWdlbmVyaWM6Ci0rCS10 ZXN0IC16ICIkKENPTkZJR19DTEVBTl9GSUxFUykiIHx8IHJtIC1mICQoQ09ORklHX0NMRUFOX0ZJ TEVTKQotKwotK21haW50YWluZXItY2xlYW4tZ2VuZXJpYzoKLSsJQGVjaG8gIlRoaXMgY29tbWFu ZCBpcyBpbnRlbmRlZCBmb3IgbWFpbnRhaW5lcnMgdG8gdXNlIgotKwlAZWNobyAiaXQgZGVsZXRl cyBmaWxlcyB0aGF0IG1heSByZXF1aXJlIHNwZWNpYWwgdG9vbHMgdG8gcmVidWlsZC4iCi0rY2xl YW46IGNsZWFuLXJlY3Vyc2l2ZQotKwotK2NsZWFuLWFtOiBjbGVhbi1nZW5lcmljIGNsZWFuLWxp YnRvb2wgbW9zdGx5Y2xlYW4tYW0KLSsKLStkaXN0Y2xlYW46IGRpc3RjbGVhbi1yZWN1cnNpdmUK LSsJLXJtIC1mIE1ha2VmaWxlCi0rZGlzdGNsZWFuLWFtOiBjbGVhbi1hbSBkaXN0Y2xlYW4tZ2Vu ZXJpYyBkaXN0Y2xlYW4tdGFncwotKwotK2R2aTogZHZpLXJlY3Vyc2l2ZQotKwotK2R2aS1hbToK LSsKLStodG1sOiBodG1sLXJlY3Vyc2l2ZQotKwotK2luZm86IGluZm8tcmVjdXJzaXZlCi0rCi0r aW5mby1hbToKLSsKLStpbnN0YWxsLWRhdGEtYW06Ci0rCi0raW5zdGFsbC1kdmk6IGluc3RhbGwt ZHZpLXJlY3Vyc2l2ZQotKwotK2luc3RhbGwtZXhlYy1hbToKLSsKLStpbnN0YWxsLWh0bWw6IGlu c3RhbGwtaHRtbC1yZWN1cnNpdmUKLSsKLStpbnN0YWxsLWluZm86IGluc3RhbGwtaW5mby1yZWN1 cnNpdmUKLSsKLStpbnN0YWxsLW1hbjoKLSsKLStpbnN0YWxsLXBkZjogaW5zdGFsbC1wZGYtcmVj dXJzaXZlCi0rCi0raW5zdGFsbC1wczogaW5zdGFsbC1wcy1yZWN1cnNpdmUKLSsKLStpbnN0YWxs Y2hlY2stYW06Ci0rCi0rbWFpbnRhaW5lci1jbGVhbjogbWFpbnRhaW5lci1jbGVhbi1yZWN1cnNp dmUKLSsJLXJtIC1mIE1ha2VmaWxlCi0rbWFpbnRhaW5lci1jbGVhbi1hbTogZGlzdGNsZWFuLWFt IG1haW50YWluZXItY2xlYW4tZ2VuZXJpYwotKwotK21vc3RseWNsZWFuOiBtb3N0bHljbGVhbi1y ZWN1cnNpdmUKLSsKLSttb3N0bHljbGVhbi1hbTogbW9zdGx5Y2xlYW4tZ2VuZXJpYyBtb3N0bHlj bGVhbi1saWJ0b29sCi0rCi0rcGRmOiBwZGYtcmVjdXJzaXZlCi0rCi0rcGRmLWFtOgotKwotK3Bz OiBwcy1yZWN1cnNpdmUKLSsKLStwcy1hbToKLSsKLSt1bmluc3RhbGwtYW06Ci0rCi0rLk1BS0U6 ICQoUkVDVVJTSVZFX0NMRUFOX1RBUkdFVFMpICQoUkVDVVJTSVZFX1RBUkdFVFMpIGluc3RhbGwt YW0gXAotKwlpbnN0YWxsLXN0cmlwCi0rCi0rLlBIT05ZOiAkKFJFQ1VSU0lWRV9DTEVBTl9UQVJH RVRTKSAkKFJFQ1VSU0lWRV9UQVJHRVRTKSBDVEFHUyBHVEFHUyBcCi0rCWFsbCBhbGwtYW0gY2hl Y2sgY2hlY2stYW0gY2xlYW4gY2xlYW4tZ2VuZXJpYyBjbGVhbi1saWJ0b29sIFwKLSsJY3RhZ3Mg Y3RhZ3MtcmVjdXJzaXZlIGRpc3RjbGVhbiBkaXN0Y2xlYW4tZ2VuZXJpYyBcCi0rCWRpc3RjbGVh bi1saWJ0b29sIGRpc3RjbGVhbi10YWdzIGRpc3RkaXIgZHZpIGR2aS1hbSBodG1sIFwKLSsJaHRt bC1hbSBpbmZvIGluZm8tYW0gaW5zdGFsbCBpbnN0YWxsLWFtIGluc3RhbGwtZGF0YSBcCi0rCWlu c3RhbGwtZGF0YS1hbSBpbnN0YWxsLWR2aSBpbnN0YWxsLWR2aS1hbSBpbnN0YWxsLWV4ZWMgXAot KwlpbnN0YWxsLWV4ZWMtYW0gaW5zdGFsbC1odG1sIGluc3RhbGwtaHRtbC1hbSBpbnN0YWxsLWlu Zm8gXAotKwlpbnN0YWxsLWluZm8tYW0gaW5zdGFsbC1tYW4gaW5zdGFsbC1wZGYgaW5zdGFsbC1w ZGYtYW0gXAotKwlpbnN0YWxsLXBzIGluc3RhbGwtcHMtYW0gaW5zdGFsbC1zdHJpcCBpbnN0YWxs Y2hlY2sgXAotKwlpbnN0YWxsY2hlY2stYW0gaW5zdGFsbGRpcnMgaW5zdGFsbGRpcnMtYW0gbWFp bnRhaW5lci1jbGVhbiBcCi0rCW1haW50YWluZXItY2xlYW4tZ2VuZXJpYyBtb3N0bHljbGVhbiBt b3N0bHljbGVhbi1nZW5lcmljIFwKLSsJbW9zdGx5Y2xlYW4tbGlidG9vbCBwZGYgcGRmLWFtIHBz IHBzLWFtIHRhZ3MgdGFncy1yZWN1cnNpdmUgXAotKwl1bmluc3RhbGwgdW5pbnN0YWxsLWFtCi0r Ci0rIyBUZWxsIHZlcnNpb25zIFszLjU5LDMuNjMpIG9mIEdOVSBtYWtlIHRvIG5vdCBleHBvcnQg YWxsIHZhcmlhYmxlcy4KLSsjIE90aGVyd2lzZSBhIHN5c3RlbSBsaW1pdCAoZm9yIFN5c1YgYXQg bGVhc3QpIG1heSBiZSBleGNlZWRlZC4KLSsuTk9FWFBPUlQ6Ci1kaWZmIC1OdXIgc29jaS0zLjAu MF80LXBhY2svZG9jL3NvdXJjZXMubWsgc29jaS0zLjAuMF90cmVwMzAwL2RvYy9zb3VyY2VzLm1r Ci0tLS0gc29jaS0zLjAuMF80LXBhY2svZG9jL3NvdXJjZXMubWsJMTk3MC0wMS0wMSAwMTowMDow MC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBzb2NpLTMuMC4wX3RyZXAzMDAvZG9jL3NvdXJjZXMubWsJ MjAwOS0wNS0yMyAxMDowNjo0Ni4wMDAwMDAwMDAgKzAyMDAKLUBAIC0wLDAgKzEsMTggQEAKLSto dG1sX2xvY2FsX3NvdXJjZXMgPSAkKHRvcF9zcmNkaXIpL2RvYy9iYWNrZW5kcy5odG1sIFwKLSsJ JCh0b3Bfc3JjZGlyKS9kb2MvYmFzaWNzLmh0bWwgXAotKwkkKHRvcF9zcmNkaXIpL2RvYy9iZXlv bmQuaHRtbCBcCi0rCSQodG9wX3NyY2RpcikvZG9jL2Jvb3N0Lmh0bWwgXAotKwkkKHRvcF9zcmNk aXIpL2RvYy9lcnJvcnMuaHRtbCBcCi0rCSQodG9wX3NyY2RpcikvZG9jL2V4Y2hhbmdlLmh0bWwg XAotKwkkKHRvcF9zcmNkaXIpL2RvYy9pbmRleC5odG1sIFwKLSsJJCh0b3Bfc3JjZGlyKS9kb2Mv aW50ZXJmYWNlcy5odG1sIFwKLSsJJCh0b3Bfc3JjZGlyKS9kb2MvbXVsdGl0aHJlYWRpbmcuaHRt bCBcCi0rCSQodG9wX3NyY2RpcikvZG9jL3JhdGlvbmFsZS5odG1sIFwKLSsJJCh0b3Bfc3JjZGly KS9kb2MvcmVmZXJlbmNlLmh0bWwgXAotKwkkKHRvcF9zcmNkaXIpL2RvYy9zdGF0ZW1lbnRzLmh0 bWwgXAotKwkkKHRvcF9zcmNkaXIpL2RvYy9zdHJ1Y3R1cmUuaHRtbAotKwotK2Nzc19sb2NhbF9z b3VyY2VzID0gJCh0b3Bfc3JjZGlyKS9kb2Mvc3R5bGUuY3NzCi0rCi0raW1nX2xvY2FsX3NvdXJj ZXMgPSAkKHRvcF9zcmNkaXIpL2RvYy9zdHJ1Y3R1cmUucG5nCi0rCi1kaWZmIC1OdXIgc29jaS0z LjAuMF80LXBhY2svSU5TVEFMTCBzb2NpLTMuMC4wX3RyZXAzMDAvSU5TVEFMTAotLS0tIHNvY2kt My4wLjBfNC1wYWNrL0lOU1RBTEwJMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAK LSsrKyBzb2NpLTMuMC4wX3RyZXAzMDAvSU5TVEFMTAkyMDA5LTA1LTIzIDEwOjAyOjAzLjAwMDAw MDAwMCArMDIwMAotQEAgLTAsMCArMSwyOTEgQEAKLStJbnN0YWxsYXRpb24gSW5zdHJ1Y3Rpb25z Ci0rKioqKioqKioqKioqKioqKioqKioqKioqKgotKwotK0NvcHlyaWdodCAoQykgMTk5NCwgMTk5 NSwgMTk5NiwgMTk5OSwgMjAwMCwgMjAwMSwgMjAwMiwgMjAwNCwgMjAwNSwKLSsyMDA2LCAyMDA3 LCAyMDA4IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgotKwotKyAgIFRoaXMgZmlsZSBp cyBmcmVlIGRvY3VtZW50YXRpb247IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24gZ2l2ZXMK LSt1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5LCBkaXN0cmlidXRlIGFuZCBtb2RpZnkgaXQu Ci0rCi0rQmFzaWMgSW5zdGFsbGF0aW9uCi0rPT09PT09PT09PT09PT09PT09Ci0rCi0rICAgQnJp ZWZseSwgdGhlIHNoZWxsIGNvbW1hbmRzIGAuL2NvbmZpZ3VyZTsgbWFrZTsgbWFrZSBpbnN0YWxs JyBzaG91bGQKLStjb25maWd1cmUsIGJ1aWxkLCBhbmQgaW5zdGFsbCB0aGlzIHBhY2thZ2UuICBU aGUgZm9sbG93aW5nCi0rbW9yZS1kZXRhaWxlZCBpbnN0cnVjdGlvbnMgYXJlIGdlbmVyaWM7IHNl ZSB0aGUgYFJFQURNRScgZmlsZSBmb3IKLStpbnN0cnVjdGlvbnMgc3BlY2lmaWMgdG8gdGhpcyBw YWNrYWdlLgotKwotKyAgIFRoZSBgY29uZmlndXJlJyBzaGVsbCBzY3JpcHQgYXR0ZW1wdHMgdG8g Z3Vlc3MgY29ycmVjdCB2YWx1ZXMgZm9yCi0rdmFyaW91cyBzeXN0ZW0tZGVwZW5kZW50IHZhcmlh YmxlcyB1c2VkIGR1cmluZyBjb21waWxhdGlvbi4gIEl0IHVzZXMKLSt0aG9zZSB2YWx1ZXMgdG8g Y3JlYXRlIGEgYE1ha2VmaWxlJyBpbiBlYWNoIGRpcmVjdG9yeSBvZiB0aGUgcGFja2FnZS4KLStJ dCBtYXkgYWxzbyBjcmVhdGUgb25lIG9yIG1vcmUgYC5oJyBmaWxlcyBjb250YWluaW5nIHN5c3Rl bS1kZXBlbmRlbnQKLStkZWZpbml0aW9ucy4gIEZpbmFsbHksIGl0IGNyZWF0ZXMgYSBzaGVsbCBz Y3JpcHQgYGNvbmZpZy5zdGF0dXMnIHRoYXQKLSt5b3UgY2FuIHJ1biBpbiB0aGUgZnV0dXJlIHRv IHJlY3JlYXRlIHRoZSBjdXJyZW50IGNvbmZpZ3VyYXRpb24sIGFuZCBhCi0rZmlsZSBgY29uZmln LmxvZycgY29udGFpbmluZyBjb21waWxlciBvdXRwdXQgKHVzZWZ1bCBtYWlubHkgZm9yCi0rZGVi dWdnaW5nIGBjb25maWd1cmUnKS4KLSsKLSsgICBJdCBjYW4gYWxzbyB1c2UgYW4gb3B0aW9uYWwg ZmlsZSAodHlwaWNhbGx5IGNhbGxlZCBgY29uZmlnLmNhY2hlJwotK2FuZCBlbmFibGVkIHdpdGgg YC0tY2FjaGUtZmlsZT1jb25maWcuY2FjaGUnIG9yIHNpbXBseSBgLUMnKSB0aGF0IHNhdmVzCi0r dGhlIHJlc3VsdHMgb2YgaXRzIHRlc3RzIHRvIHNwZWVkIHVwIHJlY29uZmlndXJpbmcuICBDYWNo aW5nIGlzCi0rZGlzYWJsZWQgYnkgZGVmYXVsdCB0byBwcmV2ZW50IHByb2JsZW1zIHdpdGggYWNj aWRlbnRhbCB1c2Ugb2Ygc3RhbGUKLStjYWNoZSBmaWxlcy4KLSsKLSsgICBJZiB5b3UgbmVlZCB0 byBkbyB1bnVzdWFsIHRoaW5ncyB0byBjb21waWxlIHRoZSBwYWNrYWdlLCBwbGVhc2UgdHJ5Ci0r dG8gZmlndXJlIG91dCBob3cgYGNvbmZpZ3VyZScgY291bGQgY2hlY2sgd2hldGhlciB0byBkbyB0 aGVtLCBhbmQgbWFpbAotK2RpZmZzIG9yIGluc3RydWN0aW9ucyB0byB0aGUgYWRkcmVzcyBnaXZl biBpbiB0aGUgYFJFQURNRScgc28gdGhleSBjYW4KLStiZSBjb25zaWRlcmVkIGZvciB0aGUgbmV4 dCByZWxlYXNlLiAgSWYgeW91IGFyZSB1c2luZyB0aGUgY2FjaGUsIGFuZCBhdAotK3NvbWUgcG9p bnQgYGNvbmZpZy5jYWNoZScgY29udGFpbnMgcmVzdWx0cyB5b3UgZG9uJ3Qgd2FudCB0byBrZWVw LCB5b3UKLSttYXkgcmVtb3ZlIG9yIGVkaXQgaXQuCi0rCi0rICAgVGhlIGZpbGUgYGNvbmZpZ3Vy ZS5hYycgKG9yIGBjb25maWd1cmUuaW4nKSBpcyB1c2VkIHRvIGNyZWF0ZQotK2Bjb25maWd1cmUn IGJ5IGEgcHJvZ3JhbSBjYWxsZWQgYGF1dG9jb25mJy4gIFlvdSBuZWVkIGBjb25maWd1cmUuYWMn IGlmCi0reW91IHdhbnQgdG8gY2hhbmdlIGl0IG9yIHJlZ2VuZXJhdGUgYGNvbmZpZ3VyZScgdXNp bmcgYSBuZXdlciB2ZXJzaW9uCi0rb2YgYGF1dG9jb25mJy4KLSsKLStUaGUgc2ltcGxlc3Qgd2F5 IHRvIGNvbXBpbGUgdGhpcyBwYWNrYWdlIGlzOgotKwotKyAgMS4gYGNkJyB0byB0aGUgZGlyZWN0 b3J5IGNvbnRhaW5pbmcgdGhlIHBhY2thZ2UncyBzb3VyY2UgY29kZSBhbmQgdHlwZQotKyAgICAg YC4vY29uZmlndXJlJyB0byBjb25maWd1cmUgdGhlIHBhY2thZ2UgZm9yIHlvdXIgc3lzdGVtLgot KwotKyAgICAgUnVubmluZyBgY29uZmlndXJlJyBtaWdodCB0YWtlIGEgd2hpbGUuICBXaGlsZSBy dW5uaW5nLCBpdCBwcmludHMKLSsgICAgIHNvbWUgbWVzc2FnZXMgdGVsbGluZyB3aGljaCBmZWF0 dXJlcyBpdCBpcyBjaGVja2luZyBmb3IuCi0rCi0rICAyLiBUeXBlIGBtYWtlJyB0byBjb21waWxl IHRoZSBwYWNrYWdlLgotKwotKyAgMy4gT3B0aW9uYWxseSwgdHlwZSBgbWFrZSBjaGVjaycgdG8g cnVuIGFueSBzZWxmLXRlc3RzIHRoYXQgY29tZSB3aXRoCi0rICAgICB0aGUgcGFja2FnZS4KLSsK LSsgIDQuIFR5cGUgYG1ha2UgaW5zdGFsbCcgdG8gaW5zdGFsbCB0aGUgcHJvZ3JhbXMgYW5kIGFu eSBkYXRhIGZpbGVzIGFuZAotKyAgICAgZG9jdW1lbnRhdGlvbi4KLSsKLSsgIDUuIFlvdSBjYW4g cmVtb3ZlIHRoZSBwcm9ncmFtIGJpbmFyaWVzIGFuZCBvYmplY3QgZmlsZXMgZnJvbSB0aGUKLSsg ICAgIHNvdXJjZSBjb2RlIGRpcmVjdG9yeSBieSB0eXBpbmcgYG1ha2UgY2xlYW4nLiAgVG8gYWxz byByZW1vdmUgdGhlCi0rICAgICBmaWxlcyB0aGF0IGBjb25maWd1cmUnIGNyZWF0ZWQgKHNvIHlv dSBjYW4gY29tcGlsZSB0aGUgcGFja2FnZSBmb3IKLSsgICAgIGEgZGlmZmVyZW50IGtpbmQgb2Yg Y29tcHV0ZXIpLCB0eXBlIGBtYWtlIGRpc3RjbGVhbicuICBUaGVyZSBpcwotKyAgICAgYWxzbyBh IGBtYWtlIG1haW50YWluZXItY2xlYW4nIHRhcmdldCwgYnV0IHRoYXQgaXMgaW50ZW5kZWQgbWFp bmx5Ci0rICAgICBmb3IgdGhlIHBhY2thZ2UncyBkZXZlbG9wZXJzLiAgSWYgeW91IHVzZSBpdCwg eW91IG1heSBoYXZlIHRvIGdldAotKyAgICAgYWxsIHNvcnRzIG9mIG90aGVyIHByb2dyYW1zIGlu IG9yZGVyIHRvIHJlZ2VuZXJhdGUgZmlsZXMgdGhhdCBjYW1lCi0rICAgICB3aXRoIHRoZSBkaXN0 cmlidXRpb24uCi0rCi0rICA2LiBPZnRlbiwgeW91IGNhbiBhbHNvIHR5cGUgYG1ha2UgdW5pbnN0 YWxsJyB0byByZW1vdmUgdGhlIGluc3RhbGxlZAotKyAgICAgZmlsZXMgYWdhaW4uCi0rCi0rQ29t cGlsZXJzIGFuZCBPcHRpb25zCi0rPT09PT09PT09PT09PT09PT09PT09Ci0rCi0rICAgU29tZSBz eXN0ZW1zIHJlcXVpcmUgdW51c3VhbCBvcHRpb25zIGZvciBjb21waWxhdGlvbiBvciBsaW5raW5n IHRoYXQKLSt0aGUgYGNvbmZpZ3VyZScgc2NyaXB0IGRvZXMgbm90IGtub3cgYWJvdXQuICBSdW4g YC4vY29uZmlndXJlIC0taGVscCcKLStmb3IgZGV0YWlscyBvbiBzb21lIG9mIHRoZSBwZXJ0aW5l bnQgZW52aXJvbm1lbnQgdmFyaWFibGVzLgotKwotKyAgIFlvdSBjYW4gZ2l2ZSBgY29uZmlndXJl JyBpbml0aWFsIHZhbHVlcyBmb3IgY29uZmlndXJhdGlvbiBwYXJhbWV0ZXJzCi0rYnkgc2V0dGlu ZyB2YXJpYWJsZXMgaW4gdGhlIGNvbW1hbmQgbGluZSBvciBpbiB0aGUgZW52aXJvbm1lbnQuICBI ZXJlCi0raXMgYW4gZXhhbXBsZToKLSsKLSsgICAgIC4vY29uZmlndXJlIENDPWM5OSBDRkxBR1M9 LWcgTElCUz0tbHBvc2l4Ci0rCi0rICAgKk5vdGUgRGVmaW5pbmcgVmFyaWFibGVzOjosIGZvciBt b3JlIGRldGFpbHMuCi0rCi0rQ29tcGlsaW5nIEZvciBNdWx0aXBsZSBBcmNoaXRlY3R1cmVzCi0r PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0rCi0rICAgWW91IGNhbiBjb21w aWxlIHRoZSBwYWNrYWdlIGZvciBtb3JlIHRoYW4gb25lIGtpbmQgb2YgY29tcHV0ZXIgYXQgdGhl Ci0rc2FtZSB0aW1lLCBieSBwbGFjaW5nIHRoZSBvYmplY3QgZmlsZXMgZm9yIGVhY2ggYXJjaGl0 ZWN0dXJlIGluIHRoZWlyCi0rb3duIGRpcmVjdG9yeS4gIFRvIGRvIHRoaXMsIHlvdSBjYW4gdXNl IEdOVSBgbWFrZScuICBgY2QnIHRvIHRoZQotK2RpcmVjdG9yeSB3aGVyZSB5b3Ugd2FudCB0aGUg b2JqZWN0IGZpbGVzIGFuZCBleGVjdXRhYmxlcyB0byBnbyBhbmQgcnVuCi0rdGhlIGBjb25maWd1 cmUnIHNjcmlwdC4gIGBjb25maWd1cmUnIGF1dG9tYXRpY2FsbHkgY2hlY2tzIGZvciB0aGUKLStz b3VyY2UgY29kZSBpbiB0aGUgZGlyZWN0b3J5IHRoYXQgYGNvbmZpZ3VyZScgaXMgaW4gYW5kIGlu IGAuLicuCi0rCi0rICAgV2l0aCBhIG5vbi1HTlUgYG1ha2UnLCBpdCBpcyBzYWZlciB0byBjb21w aWxlIHRoZSBwYWNrYWdlIGZvciBvbmUKLSthcmNoaXRlY3R1cmUgYXQgYSB0aW1lIGluIHRoZSBz b3VyY2UgY29kZSBkaXJlY3RvcnkuICBBZnRlciB5b3UgaGF2ZQotK2luc3RhbGxlZCB0aGUgcGFj a2FnZSBmb3Igb25lIGFyY2hpdGVjdHVyZSwgdXNlIGBtYWtlIGRpc3RjbGVhbicgYmVmb3JlCi0r cmVjb25maWd1cmluZyBmb3IgYW5vdGhlciBhcmNoaXRlY3R1cmUuCi0rCi0rICAgT24gTWFjT1Mg WCAxMC41IGFuZCBsYXRlciBzeXN0ZW1zLCB5b3UgY2FuIGNyZWF0ZSBsaWJyYXJpZXMgYW5kCi0r ZXhlY3V0YWJsZXMgdGhhdCB3b3JrIG9uIG11bHRpcGxlIHN5c3RlbSB0eXBlcy0ta25vd24gYXMg ImZhdCIgb3IKLSsidW5pdmVyc2FsIiBiaW5hcmllcy0tYnkgc3BlY2lmeWluZyBtdWx0aXBsZSBg LWFyY2gnIG9wdGlvbnMgdG8gdGhlCi0rY29tcGlsZXIgYnV0IG9ubHkgYSBzaW5nbGUgYC1hcmNo JyBvcHRpb24gdG8gdGhlIHByZXByb2Nlc3Nvci4gIExpa2UKLSt0aGlzOgotKwotKyAgICAgLi9j b25maWd1cmUgQ0M9ImdjYyAtYXJjaCBpMzg2IC1hcmNoIHg4Nl82NCAtYXJjaCBwcGMgLWFyY2gg cHBjNjQiIFwKLSsgICAgICAgICAgICAgICAgIENYWD0iZysrIC1hcmNoIGkzODYgLWFyY2ggeDg2 XzY0IC1hcmNoIHBwYyAtYXJjaCBwcGM2NCIgXAotKyAgICAgICAgICAgICAgICAgQ1BQPSJnY2Mg LUUiIENYWENQUD0iZysrIC1FIgotKwotKyAgIFRoaXMgaXMgbm90IGd1YXJhbnRlZWQgdG8gcHJv ZHVjZSB3b3JraW5nIG91dHB1dCBpbiBhbGwgY2FzZXMsIHlvdQotK21heSBoYXZlIHRvIGJ1aWxk IG9uZSBhcmNoaXRlY3R1cmUgYXQgYSB0aW1lIGFuZCBjb21iaW5lIHRoZSByZXN1bHRzCi0rdXNp bmcgdGhlIGBsaXBvJyB0b29sIGlmIHlvdSBoYXZlIHByb2JsZW1zLgotKwotK0luc3RhbGxhdGlv biBOYW1lcwotKz09PT09PT09PT09PT09PT09PQotKwotKyAgIEJ5IGRlZmF1bHQsIGBtYWtlIGlu c3RhbGwnIGluc3RhbGxzIHRoZSBwYWNrYWdlJ3MgY29tbWFuZHMgdW5kZXIKLStgL3Vzci9sb2Nh bC9iaW4nLCBpbmNsdWRlIGZpbGVzIHVuZGVyIGAvdXNyL2xvY2FsL2luY2x1ZGUnLCBldGMuICBZ b3UKLStjYW4gc3BlY2lmeSBhbiBpbnN0YWxsYXRpb24gcHJlZml4IG90aGVyIHRoYW4gYC91c3Iv bG9jYWwnIGJ5IGdpdmluZwotK2Bjb25maWd1cmUnIHRoZSBvcHRpb24gYC0tcHJlZml4PVBSRUZJ WCcuCi0rCi0rICAgWW91IGNhbiBzcGVjaWZ5IHNlcGFyYXRlIGluc3RhbGxhdGlvbiBwcmVmaXhl cyBmb3IKLSthcmNoaXRlY3R1cmUtc3BlY2lmaWMgZmlsZXMgYW5kIGFyY2hpdGVjdHVyZS1pbmRl cGVuZGVudCBmaWxlcy4gIElmIHlvdQotK3Bhc3MgdGhlIG9wdGlvbiBgLS1leGVjLXByZWZpeD1Q UkVGSVgnIHRvIGBjb25maWd1cmUnLCB0aGUgcGFja2FnZSB1c2VzCi0rUFJFRklYIGFzIHRoZSBw cmVmaXggZm9yIGluc3RhbGxpbmcgcHJvZ3JhbXMgYW5kIGxpYnJhcmllcy4KLStEb2N1bWVudGF0 aW9uIGFuZCBvdGhlciBkYXRhIGZpbGVzIHN0aWxsIHVzZSB0aGUgcmVndWxhciBwcmVmaXguCi0r Ci0rICAgSW4gYWRkaXRpb24sIGlmIHlvdSB1c2UgYW4gdW51c3VhbCBkaXJlY3RvcnkgbGF5b3V0 IHlvdSBjYW4gZ2l2ZQotK29wdGlvbnMgbGlrZSBgLS1iaW5kaXI9RElSJyB0byBzcGVjaWZ5IGRp ZmZlcmVudCB2YWx1ZXMgZm9yIHBhcnRpY3VsYXIKLStraW5kcyBvZiBmaWxlcy4gIFJ1biBgY29u ZmlndXJlIC0taGVscCcgZm9yIGEgbGlzdCBvZiB0aGUgZGlyZWN0b3JpZXMKLSt5b3UgY2FuIHNl dCBhbmQgd2hhdCBraW5kcyBvZiBmaWxlcyBnbyBpbiB0aGVtLgotKwotKyAgIElmIHRoZSBwYWNr YWdlIHN1cHBvcnRzIGl0LCB5b3UgY2FuIGNhdXNlIHByb2dyYW1zIHRvIGJlIGluc3RhbGxlZAot K3dpdGggYW4gZXh0cmEgcHJlZml4IG9yIHN1ZmZpeCBvbiB0aGVpciBuYW1lcyBieSBnaXZpbmcg YGNvbmZpZ3VyZScgdGhlCi0rb3B0aW9uIGAtLXByb2dyYW0tcHJlZml4PVBSRUZJWCcgb3IgYC0t cHJvZ3JhbS1zdWZmaXg9U1VGRklYJy4KLSsKLStPcHRpb25hbCBGZWF0dXJlcwotKz09PT09PT09 PT09PT09PT09Ci0rCi0rICAgU29tZSBwYWNrYWdlcyBwYXkgYXR0ZW50aW9uIHRvIGAtLWVuYWJs ZS1GRUFUVVJFJyBvcHRpb25zIHRvCi0rYGNvbmZpZ3VyZScsIHdoZXJlIEZFQVRVUkUgaW5kaWNh dGVzIGFuIG9wdGlvbmFsIHBhcnQgb2YgdGhlIHBhY2thZ2UuCi0rVGhleSBtYXkgYWxzbyBwYXkg YXR0ZW50aW9uIHRvIGAtLXdpdGgtUEFDS0FHRScgb3B0aW9ucywgd2hlcmUgUEFDS0FHRQotK2lz IHNvbWV0aGluZyBsaWtlIGBnbnUtYXMnIG9yIGB4JyAoZm9yIHRoZSBYIFdpbmRvdyBTeXN0ZW0p LiAgVGhlCi0rYFJFQURNRScgc2hvdWxkIG1lbnRpb24gYW55IGAtLWVuYWJsZS0nIGFuZCBgLS13 aXRoLScgb3B0aW9ucyB0aGF0IHRoZQotK3BhY2thZ2UgcmVjb2duaXplcy4KLSsKLSsgICBGb3Ig cGFja2FnZXMgdGhhdCB1c2UgdGhlIFggV2luZG93IFN5c3RlbSwgYGNvbmZpZ3VyZScgY2FuIHVz dWFsbHkKLStmaW5kIHRoZSBYIGluY2x1ZGUgYW5kIGxpYnJhcnkgZmlsZXMgYXV0b21hdGljYWxs eSwgYnV0IGlmIGl0IGRvZXNuJ3QsCi0reW91IGNhbiB1c2UgdGhlIGBjb25maWd1cmUnIG9wdGlv bnMgYC0teC1pbmNsdWRlcz1ESVInIGFuZAotK2AtLXgtbGlicmFyaWVzPURJUicgdG8gc3BlY2lm eSB0aGVpciBsb2NhdGlvbnMuCi0rCi0rUGFydGljdWxhciBzeXN0ZW1zCi0rPT09PT09PT09PT09 PT09PT09Ci0rCi0rICAgT24gSFAtVVgsIHRoZSBkZWZhdWx0IEMgY29tcGlsZXIgaXMgbm90IEFO U0kgQyBjb21wYXRpYmxlLiAgSWYgR05VCi0rQ0MgaXMgbm90IGluc3RhbGxlZCwgaXQgaXMgcmVj b21tZW5kZWQgdG8gdXNlIHRoZSBmb2xsb3dpbmcgb3B0aW9ucyBpbgotK29yZGVyIHRvIHVzZSBh biBBTlNJIEMgY29tcGlsZXI6Ci0rCi0rICAgICAuL2NvbmZpZ3VyZSBDQz0iY2MgLUFlIgotKwot K2FuZCBpZiB0aGF0IGRvZXNuJ3Qgd29yaywgaW5zdGFsbCBwcmUtYnVpbHQgYmluYXJpZXMgb2Yg R0NDIGZvciBIUC1VWC4KLSsKLSsgICBPbiBPU0YvMSBhLmsuYS4gVHJ1NjQsIHNvbWUgdmVyc2lv bnMgb2YgdGhlIGRlZmF1bHQgQyBjb21waWxlciBjYW5ub3QKLStwYXJzZSBpdHMgYDx3Y2hhci5o PicgaGVhZGVyIGZpbGUuICBUaGUgb3B0aW9uIGAtbm9kdGsnIGNhbiBiZSB1c2VkIGFzCi0rYSB3 b3JrYXJvdW5kLiAgSWYgR05VIENDIGlzIG5vdCBpbnN0YWxsZWQsIGl0IGlzIHRoZXJlZm9yZSBy ZWNvbW1lbmRlZAotK3RvIHRyeQotKwotKyAgICAgLi9jb25maWd1cmUgQ0M9ImNjIgotKwotK2Fu ZCBpZiB0aGF0IGRvZXNuJ3Qgd29yaywgdHJ5Ci0rCi0rICAgICAuL2NvbmZpZ3VyZSBDQz0iY2Mg LW5vZHRrIgotKwotK1NwZWNpZnlpbmcgdGhlIFN5c3RlbSBUeXBlCi0rPT09PT09PT09PT09PT09 PT09PT09PT09PT0KLSsKLSsgICBUaGVyZSBtYXkgYmUgc29tZSBmZWF0dXJlcyBgY29uZmlndXJl JyBjYW5ub3QgZmlndXJlIG91dAotK2F1dG9tYXRpY2FsbHksIGJ1dCBuZWVkcyB0byBkZXRlcm1p bmUgYnkgdGhlIHR5cGUgb2YgbWFjaGluZSB0aGUgcGFja2FnZQotK3dpbGwgcnVuIG9uLiAgVXN1 YWxseSwgYXNzdW1pbmcgdGhlIHBhY2thZ2UgaXMgYnVpbHQgdG8gYmUgcnVuIG9uIHRoZQotK19z YW1lXyBhcmNoaXRlY3R1cmVzLCBgY29uZmlndXJlJyBjYW4gZmlndXJlIHRoYXQgb3V0LCBidXQg aWYgaXQgcHJpbnRzCi0rYSBtZXNzYWdlIHNheWluZyBpdCBjYW5ub3QgZ3Vlc3MgdGhlIG1hY2hp bmUgdHlwZSwgZ2l2ZSBpdCB0aGUKLStgLS1idWlsZD1UWVBFJyBvcHRpb24uICBUWVBFIGNhbiBl aXRoZXIgYmUgYSBzaG9ydCBuYW1lIGZvciB0aGUgc3lzdGVtCi0rdHlwZSwgc3VjaCBhcyBgc3Vu NCcsIG9yIGEgY2Fub25pY2FsIG5hbWUgd2hpY2ggaGFzIHRoZSBmb3JtOgotKwotKyAgICAgQ1BV LUNPTVBBTlktU1lTVEVNCi0rCi0rd2hlcmUgU1lTVEVNIGNhbiBoYXZlIG9uZSBvZiB0aGVzZSBm b3JtczoKLSsKLSsgICAgIE9TIEtFUk5FTC1PUwotKwotKyAgIFNlZSB0aGUgZmlsZSBgY29uZmln LnN1YicgZm9yIHRoZSBwb3NzaWJsZSB2YWx1ZXMgb2YgZWFjaCBmaWVsZC4gIElmCi0rYGNvbmZp Zy5zdWInIGlzbid0IGluY2x1ZGVkIGluIHRoaXMgcGFja2FnZSwgdGhlbiB0aGlzIHBhY2thZ2Ug ZG9lc24ndAotK25lZWQgdG8ga25vdyB0aGUgbWFjaGluZSB0eXBlLgotKwotKyAgIElmIHlvdSBh cmUgX2J1aWxkaW5nXyBjb21waWxlciB0b29scyBmb3IgY3Jvc3MtY29tcGlsaW5nLCB5b3Ugc2hv dWxkCi0rdXNlIHRoZSBvcHRpb24gYC0tdGFyZ2V0PVRZUEUnIHRvIHNlbGVjdCB0aGUgdHlwZSBv ZiBzeXN0ZW0gdGhleSB3aWxsCi0rcHJvZHVjZSBjb2RlIGZvci4KLSsKLSsgICBJZiB5b3Ugd2Fu dCB0byBfdXNlXyBhIGNyb3NzIGNvbXBpbGVyLCB0aGF0IGdlbmVyYXRlcyBjb2RlIGZvciBhCi0r cGxhdGZvcm0gZGlmZmVyZW50IGZyb20gdGhlIGJ1aWxkIHBsYXRmb3JtLCB5b3Ugc2hvdWxkIHNw ZWNpZnkgdGhlCi0rImhvc3QiIHBsYXRmb3JtIChpLmUuLCB0aGF0IG9uIHdoaWNoIHRoZSBnZW5l cmF0ZWQgcHJvZ3JhbXMgd2lsbAotK2V2ZW50dWFsbHkgYmUgcnVuKSB3aXRoIGAtLWhvc3Q9VFlQ RScuCi0rCi0rU2hhcmluZyBEZWZhdWx0cwotKz09PT09PT09PT09PT09PT0KLSsKLSsgICBJZiB5 b3Ugd2FudCB0byBzZXQgZGVmYXVsdCB2YWx1ZXMgZm9yIGBjb25maWd1cmUnIHNjcmlwdHMgdG8g c2hhcmUsCi0reW91IGNhbiBjcmVhdGUgYSBzaXRlIHNoZWxsIHNjcmlwdCBjYWxsZWQgYGNvbmZp Zy5zaXRlJyB0aGF0IGdpdmVzCi0rZGVmYXVsdCB2YWx1ZXMgZm9yIHZhcmlhYmxlcyBsaWtlIGBD QycsIGBjYWNoZV9maWxlJywgYW5kIGBwcmVmaXgnLgotK2Bjb25maWd1cmUnIGxvb2tzIGZvciBg UFJFRklYL3NoYXJlL2NvbmZpZy5zaXRlJyBpZiBpdCBleGlzdHMsIHRoZW4KLStgUFJFRklYL2V0 Yy9jb25maWcuc2l0ZScgaWYgaXQgZXhpc3RzLiAgT3IsIHlvdSBjYW4gc2V0IHRoZQotK2BDT05G SUdfU0lURScgZW52aXJvbm1lbnQgdmFyaWFibGUgdG8gdGhlIGxvY2F0aW9uIG9mIHRoZSBzaXRl IHNjcmlwdC4KLStBIHdhcm5pbmc6IG5vdCBhbGwgYGNvbmZpZ3VyZScgc2NyaXB0cyBsb29rIGZv ciBhIHNpdGUgc2NyaXB0LgotKwotK0RlZmluaW5nIFZhcmlhYmxlcwotKz09PT09PT09PT09PT09 PT09PQotKwotKyAgIFZhcmlhYmxlcyBub3QgZGVmaW5lZCBpbiBhIHNpdGUgc2hlbGwgc2NyaXB0 IGNhbiBiZSBzZXQgaW4gdGhlCi0rZW52aXJvbm1lbnQgcGFzc2VkIHRvIGBjb25maWd1cmUnLiAg SG93ZXZlciwgc29tZSBwYWNrYWdlcyBtYXkgcnVuCi0rY29uZmlndXJlIGFnYWluIGR1cmluZyB0 aGUgYnVpbGQsIGFuZCB0aGUgY3VzdG9taXplZCB2YWx1ZXMgb2YgdGhlc2UKLSt2YXJpYWJsZXMg bWF5IGJlIGxvc3QuICBJbiBvcmRlciB0byBhdm9pZCB0aGlzIHByb2JsZW0sIHlvdSBzaG91bGQg c2V0Ci0rdGhlbSBpbiB0aGUgYGNvbmZpZ3VyZScgY29tbWFuZCBsaW5lLCB1c2luZyBgVkFSPXZh bHVlJy4gIEZvciBleGFtcGxlOgotKwotKyAgICAgLi9jb25maWd1cmUgQ0M9L3Vzci9sb2NhbDIv YmluL2djYwotKwotK2NhdXNlcyB0aGUgc3BlY2lmaWVkIGBnY2MnIHRvIGJlIHVzZWQgYXMgdGhl IEMgY29tcGlsZXIgKHVubGVzcyBpdCBpcwotK292ZXJyaWRkZW4gaW4gdGhlIHNpdGUgc2hlbGwg c2NyaXB0KS4KLSsKLStVbmZvcnR1bmF0ZWx5LCB0aGlzIHRlY2huaXF1ZSBkb2VzIG5vdCB3b3Jr IGZvciBgQ09ORklHX1NIRUxMJyBkdWUgdG8KLSthbiBBdXRvY29uZiBidWcuICBVbnRpbCB0aGUg YnVnIGlzIGZpeGVkIHlvdSBjYW4gdXNlIHRoaXMgd29ya2Fyb3VuZDoKLSsKLSsgICAgIENPTkZJ R19TSEVMTD0vYmluL2Jhc2ggL2Jpbi9iYXNoIC4vY29uZmlndXJlIENPTkZJR19TSEVMTD0vYmlu L2Jhc2gKLSsKLStgY29uZmlndXJlJyBJbnZvY2F0aW9uCi0rPT09PT09PT09PT09PT09PT09PT09 PQotKwotKyAgIGBjb25maWd1cmUnIHJlY29nbml6ZXMgdGhlIGZvbGxvd2luZyBvcHRpb25zIHRv IGNvbnRyb2wgaG93IGl0Ci0rb3BlcmF0ZXMuCi0rCi0rYC0taGVscCcKLStgLWgnCi0rICAgICBQ cmludCBhIHN1bW1hcnkgb2YgYWxsIG9mIHRoZSBvcHRpb25zIHRvIGBjb25maWd1cmUnLCBhbmQg ZXhpdC4KLSsKLStgLS1oZWxwPXNob3J0JwotK2AtLWhlbHA9cmVjdXJzaXZlJwotKyAgICAgUHJp bnQgYSBzdW1tYXJ5IG9mIHRoZSBvcHRpb25zIHVuaXF1ZSB0byB0aGlzIHBhY2thZ2UncwotKyAg ICAgYGNvbmZpZ3VyZScsIGFuZCBleGl0LiAgVGhlIGBzaG9ydCcgdmFyaWFudCBsaXN0cyBvcHRp b25zIHVzZWQKLSsgICAgIG9ubHkgaW4gdGhlIHRvcCBsZXZlbCwgd2hpbGUgdGhlIGByZWN1cnNp dmUnIHZhcmlhbnQgbGlzdHMgb3B0aW9ucwotKyAgICAgYWxzbyBwcmVzZW50IGluIGFueSBuZXN0 ZWQgcGFja2FnZXMuCi0rCi0rYC0tdmVyc2lvbicKLStgLVYnCi0rICAgICBQcmludCB0aGUgdmVy c2lvbiBvZiBBdXRvY29uZiB1c2VkIHRvIGdlbmVyYXRlIHRoZSBgY29uZmlndXJlJwotKyAgICAg c2NyaXB0LCBhbmQgZXhpdC4KLSsKLStgLS1jYWNoZS1maWxlPUZJTEUnCi0rICAgICBFbmFibGUg dGhlIGNhY2hlOiB1c2UgYW5kIHNhdmUgdGhlIHJlc3VsdHMgb2YgdGhlIHRlc3RzIGluIEZJTEUs Ci0rICAgICB0cmFkaXRpb25hbGx5IGBjb25maWcuY2FjaGUnLiAgRklMRSBkZWZhdWx0cyB0byBg L2Rldi9udWxsJyB0bwotKyAgICAgZGlzYWJsZSBjYWNoaW5nLgotKwotK2AtLWNvbmZpZy1jYWNo ZScKLStgLUMnCi0rICAgICBBbGlhcyBmb3IgYC0tY2FjaGUtZmlsZT1jb25maWcuY2FjaGUnLgot KwotK2AtLXF1aWV0JwotK2AtLXNpbGVudCcKLStgLXEnCi0rICAgICBEbyBub3QgcHJpbnQgbWVz c2FnZXMgc2F5aW5nIHdoaWNoIGNoZWNrcyBhcmUgYmVpbmcgbWFkZS4gIFRvCi0rICAgICBzdXBw cmVzcyBhbGwgbm9ybWFsIG91dHB1dCwgcmVkaXJlY3QgaXQgdG8gYC9kZXYvbnVsbCcgKGFueSBl cnJvcgotKyAgICAgbWVzc2FnZXMgd2lsbCBzdGlsbCBiZSBzaG93bikuCi0rCi0rYC0tc3JjZGly PURJUicKLSsgICAgIExvb2sgZm9yIHRoZSBwYWNrYWdlJ3Mgc291cmNlIGNvZGUgaW4gZGlyZWN0 b3J5IERJUi4gIFVzdWFsbHkKLSsgICAgIGBjb25maWd1cmUnIGNhbiBkZXRlcm1pbmUgdGhhdCBk aXJlY3RvcnkgYXV0b21hdGljYWxseS4KLSsKLStgLS1wcmVmaXg9RElSJwotKyAgICAgVXNlIERJ UiBhcyB0aGUgaW5zdGFsbGF0aW9uIHByZWZpeC4gICpOb3RlIEluc3RhbGxhdGlvbiBOYW1lczo6 Ci0rICAgICBmb3IgbW9yZSBkZXRhaWxzLCBpbmNsdWRpbmcgb3RoZXIgb3B0aW9ucyBhdmFpbGFi bGUgZm9yIGZpbmUtdHVuaW5nCi0rICAgICB0aGUgaW5zdGFsbGF0aW9uIGxvY2F0aW9ucy4KLSsK LStgLS1uby1jcmVhdGUnCi0rYC1uJwotKyAgICAgUnVuIHRoZSBjb25maWd1cmUgY2hlY2tzLCBi dXQgc3RvcCBiZWZvcmUgY3JlYXRpbmcgYW55IG91dHB1dAotKyAgICAgZmlsZXMuCi0rCi0rYGNv bmZpZ3VyZScgYWxzbyBhY2NlcHRzIHNvbWUgb3RoZXIsIG5vdCB3aWRlbHkgdXNlZnVsLCBvcHRp b25zLiAgUnVuCi0rYGNvbmZpZ3VyZSAtLWhlbHAnIGZvciBtb3JlIGRldGFpbHMuCi0rCi1kaWZm IC1OdXIgc29jaS0zLjAuMF80LXBhY2svTWFrZWZpbGUgc29jaS0zLjAuMF90cmVwMzAwL01ha2Vm aWxlCi0tLS0gc29jaS0zLjAuMF80LXBhY2svTWFrZWZpbGUJMjAwOS0wNS0yMyAxMzozNzowOS4w MDAwMDAwMDAgKzAyMDAKLSsrKyBzb2NpLTMuMC4wX3RyZXAzMDAvTWFrZWZpbGUJMTk3MC0wMS0w MSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKLUBAIC0xLDIwICswLDAgQEAKLS1idWlsZF9saWJz IDoKLS0JY2QgYnVpbGQvdW5peDsgYGNhdCBsb2NhbC90Y2xgIGJ1aWxkLnRjbCBjb3JlIGNvcmUt c28gbXlzcWwgbXlzcWwtc28gcG9zdGdyZXNxbCBwb3N0Z3Jlc3FsLXNvIG9yYWNsZSBvcmFjbGUt c28KLS0KLS10ZXN0cyA6Ci0tCWNkIGJ1aWxkL3VuaXg7IGBjYXQgbG9jYWwvdGNsYCBidWlsZC50 Y2wgbXlzcWwtdGVzdCBvcmFjbGUtdGVzdCBwb3N0Z3Jlc3FsLXRlc3QKLS0KLS1pbnN0YWxsIDoK LS0JY2QgYnVpbGQvdW5peDsgYGNhdCBsb2NhbC90Y2xgIGluc3RhbGwudGNsCi0tCi0tdW5pbnN0 YWxsIDoKLS0JY2QgYnVpbGQvdW5peC9sb2NhbDsgL2Jpbi9zaCB1bmluc3RhbGwuc2gKLS0KLS1j bGVhbiA6Ci0tCWZpbmQgLiAtbmFtZSAnKi5vJyB8IHhhcmdzIHJtCi0tCWZpbmQgLiAtbmFtZSAn Ki5hJyB8IHhhcmdzIHJtCi0tCWZpbmQgLiAtbmFtZSAnKi5zbycgfCB4YXJncyBybQotLQlybSAt ZiBzcmMvYmFja2VuZHMvbXlzcWwvdGVzdC90ZXN0LW15c3FsCi0tCXJtIC1mIHNyYy9iYWNrZW5k cy9vcmFjbGUvdGVzdC90ZXN0LW9yYWNsZQotLQlybSAtZiBzcmMvYmFja2VuZHMvcG9zdGdyZXNx bC90ZXN0L3Rlc3QtcG9zdGdyZXNxbAotLQlybSAtcmYgYnVpbGQvdW5peC9pbmNsdWRlIGJ1aWxk L3VuaXgvbGliIGJ1aWxkL3VuaXgvdGVzdHMKLWRpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9N YWtlZmlsZS5hbSBzb2NpLTMuMC4wX3RyZXAzMDAvTWFrZWZpbGUuYW0KLS0tLSBzb2NpLTMuMC4w XzQtcGFjay9NYWtlZmlsZS5hbQkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAot KysrIHNvY2ktMy4wLjBfdHJlcDMwMC9NYWtlZmlsZS5hbQkyMDA5LTA1LTIyIDIyOjU0OjIyLjAw MDAwMDAwMCArMDIwMAotQEAgLTAsMCArMSw2MiBAQAotKyMjIHRvcCBkaXJlY3RvcnkKLStpbmNs dWRlICQodG9wX3NyY2RpcikvTWFrZWZpbGUuY29tbW9uCi0rCi0rQUNMT0NBTF9BTUZMQUdTID0g LUkgY29uZmlnCi0rCi0rQVVUT01BS0VfT1BUSU9OUyA9IGRpc3QtYnppcDIKLSsKLStpZiBSVU5f VEVTVFMKLSsjICBURVNUX0RJUiA9IHRlc3QKLStlbmRpZgotKwotK01BTl9ET0NfRElSID0gbWFu Ci0rCi0rIyBNYWludGFpbmFuY2UgZmlsZXMKLStNQUlOVEFJTkVSQ0xFQU5GSUxFUyA9IE1ha2Vm aWxlLmluIGFjbG9jYWwubTQgY29uZmlndXJlIFwKLSsJCQljb25maWctaC5pbiBzaWMvc3RhbXAt aC5pbiBhdXRvZ2VuLnNoIGJvb3RzdHJhcAotKwotKyNFWFRSQV9ESVNUX0ZPUl9TT0NJX0NPTVBB VElCSUxJVFkgPSAuX2NvbmZpZ3VyZSAuX01ha2VmaWxlIGNvbnRyaWIKLStFWFRSQV9ESVNUX0ZP Ul9TT0NJX0NPTVBBVElCSUxJVFkgPSBjb250cmliCi0rCi0rRVhUUkFfRElTVCA9IE1ha2VmaWxl LmNvbW1vbiAkKEVYVFJBX0RJU1RfRk9SX1NPQ0lfQ09NUEFUSUJJTElUWSkgQFBBQ0tBR0VALm00 Ci0rCi0rIyBCdWlsZCBpbiB0aGVzZSBkaXJlY3RvcmllczoKLStTVUJESVJTID0gYnVpbGQgQFBB Q0tBR0VAICQoTUFOX0RPQ19ESVIpIGRvYyAkKFRFU1RfRElSKQotKwotKwotKyMgQ29uZmlndXJh dGlvbiBoZWxwZXJzCi0rYmluX1NDUklQVFMgPSBAUEFDS0FHRUAtY29uZmlnCi0rCi0rcGtnY29u ZmlnZGlyID0gJChsaWJkaXIpL3BrZ2NvbmZpZwotK3BrZ2NvbmZpZ19EQVRBID0gQFBBQ0tBR0VA LnBjCi0rCi0rbTRkYXRhZGlyID0gJChkYXRhZGlyKS9hY2xvY2FsCi0rbTRkYXRhX0RBVEEgPSBA UEFDS0FHRUAubTQKLSsKLSsjIFRhcmdldHMKLSt1bmluc3RhbGwtbG9jYWw6Ci0rCXJtIC1yZiAk KERFU1RESVIpJChpbmNsdWRlZGlyKS9AUEFDS0FHRUAKLSsKLStkaXN0LWh0bWw6Ci0rCSQoTUFL RSkgLUMgZG9jIGRpc3QtaHRtbAotKwotKwotK3NuYXBzaG90OiBzbmFwc2hvdC1zcmMgc25hcHNo b3QtaHRtbAotKwotKwotK3NuYXBzaG90LXNyYzoKLSsgICAgICAgICQoTUFLRSkgZGlzdCBkaXN0 ZGlyPUBQQUNLQUdFX1RBUk5BTUVALWBkYXRlICsiJVklbSVkImAKLSsKLStzbmFwc2hvdC1odG1s OgotKwkkKE1BS0UpIC1DIGRvYyBkaXN0LWh0bWwgaHRtbF90YXJuYW1lPUBQQUNLQUdFX1RBUk5B TUVALWh0bWwtZG9jLWBkYXRlICsiJVklbSVkImAKLSsKLSt1cGxvYWQ6IHVwbG9hZC1zcmMgdXBs b2FkLWh0bWwKLSsKLSt1cGxvYWQtc3JjOiBkaXN0Ci0rCUBVUExPQURfQ09NTUFOREAgQFBBQ0tB R0VfVEFSTkFNRUAtQFZFUlNJT05ALnRhci5neiBcCi0rCUBQQUNLQUdFX1RBUk5BTUVALUBWRVJT SU9OQC50YXIuYnoyCi0rCi0rdXBsb2FkLWh0bWw6IGRpc3QtaHRtbAotKwlAVVBMT0FEX0NPTU1B TkRAIEBQQUNLQUdFX1RBUk5BTUVALWh0bWwtZG9jLUBWRVJTSU9OQC50YXIuZ3ogXAotKwlAUEFD S0FHRV9UQVJOQU1FQC1odG1sLWRvYy1AVkVSU0lPTkAudGFyLmJ6MgotKwotZGlmZiAtTnVyIHNv Y2ktMy4wLjBfNC1wYWNrL01ha2VmaWxlLmNvbW1vbiBzb2NpLTMuMC4wX3RyZXAzMDAvTWFrZWZp bGUuY29tbW9uCi0tLS0gc29jaS0zLjAuMF80LXBhY2svTWFrZWZpbGUuY29tbW9uCTE5NzAtMDEt MDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCi0rKysgc29jaS0zLjAuMF90cmVwMzAwL01ha2Vm aWxlLmNvbW1vbgkyMDA5LTA1LTIyIDIyOjU0OjIyLjAwMDAwMDAwMCArMDIwMAotQEAgLTAsMCAr MSwyIEBACi0rQFNFVF9NQUtFQAotK0FNX0NQUEZMQUdTID0gLUkkKHRvcF9idWlsZGRpcikgLUkk KHRvcF9zcmNkaXIpCi1kaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svTWFrZWZpbGUuaW4gc29j aS0zLjAuMF90cmVwMzAwL01ha2VmaWxlLmluCi0tLS0gc29jaS0zLjAuMF80LXBhY2svTWFrZWZp bGUuaW4JMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBzb2NpLTMuMC4w X3RyZXAzMDAvTWFrZWZpbGUuaW4JMjAwOS0wNS0yMyAxMDowMjowMy4wMDAwMDAwMDAgKzAyMDAK LUBAIC0wLDAgKzEsODA4IEBACi0rIyBNYWtlZmlsZS5pbiBnZW5lcmF0ZWQgYnkgYXV0b21ha2Ug MS4xMC4yIGZyb20gTWFrZWZpbGUuYW0uCi0rIyBAY29uZmlndXJlX2lucHV0QAotKwotKyMgQ29w eXJpZ2h0IChDKSAxOTk0LCAxOTk1LCAxOTk2LCAxOTk3LCAxOTk4LCAxOTk5LCAyMDAwLCAyMDAx LCAyMDAyLAotKyMgMjAwMywgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCAgRnJlZSBTb2Z0 d2FyZSBGb3VuZGF0aW9uLCBJbmMuCi0rIyBUaGlzIE1ha2VmaWxlLmluIGlzIGZyZWUgc29mdHdh cmU7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24KLSsjIGdpdmVzIHVubGltaXRlZCBwZXJt aXNzaW9uIHRvIGNvcHkgYW5kL29yIGRpc3RyaWJ1dGUgaXQsCi0rIyB3aXRoIG9yIHdpdGhvdXQg bW9kaWZpY2F0aW9ucywgYXMgbG9uZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCi0rCi0r IyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJl IHVzZWZ1bCwKLSsjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWSwgdG8gdGhlIGV4dGVudCBwZXJt aXR0ZWQgYnkgbGF3OyB3aXRob3V0Ci0rIyBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1F UkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBCi0rIyBQQVJUSUNVTEFSIFBVUlBPU0UuCi0r Ci0rQFNFVF9NQUtFQAotKwotKwotK1ZQQVRIID0gQHNyY2RpckAKLStwa2dkYXRhZGlyID0gJChk YXRhZGlyKS9AUEFDS0FHRUAKLStwa2dsaWJkaXIgPSAkKGxpYmRpcikvQFBBQ0tBR0VACi0rcGtn aW5jbHVkZWRpciA9ICQoaW5jbHVkZWRpcikvQFBBQ0tBR0VACi0rYW1fX2NkID0gQ0RQQVRIPSIk JHtaU0hfVkVSU0lPTisufSQoUEFUSF9TRVBBUkFUT1IpIiAmJiBjZAotK2luc3RhbGxfc2hfREFU QSA9ICQoaW5zdGFsbF9zaCkgLWMgLW0gNjQ0Ci0raW5zdGFsbF9zaF9QUk9HUkFNID0gJChpbnN0 YWxsX3NoKSAtYwotK2luc3RhbGxfc2hfU0NSSVBUID0gJChpbnN0YWxsX3NoKSAtYwotK0lOU1RB TExfSEVBREVSID0gJChJTlNUQUxMX0RBVEEpCi0rdHJhbnNmb3JtID0gJChwcm9ncmFtX3RyYW5z Zm9ybV9uYW1lKQotK05PUk1BTF9JTlNUQUxMID0gOgotK1BSRV9JTlNUQUxMID0gOgotK1BPU1Rf SU5TVEFMTCA9IDoKLStOT1JNQUxfVU5JTlNUQUxMID0gOgotK1BSRV9VTklOU1RBTEwgPSA6Ci0r UE9TVF9VTklOU1RBTEwgPSA6Ci0rYnVpbGRfdHJpcGxldCA9IEBidWlsZEAKLStob3N0X3RyaXBs ZXQgPSBAaG9zdEAKLStESVNUX0NPTU1PTiA9IFJFQURNRSAkKGFtX19jb25maWd1cmVfZGVwcykg JChzcmNkaXIpL01ha2VmaWxlLmFtIFwKLSsJJChzcmNkaXIpL01ha2VmaWxlLmluICQoc3JjZGly KS9zb2NpLWNvbmZpZy5pbiBcCi0rCSQoc3JjZGlyKS9zb2NpLnBjLmluICQoc3JjZGlyKS9zb2Np LnNwZWMuaW4gXAotKwkkKHRvcF9zcmNkaXIpL01ha2VmaWxlLmNvbW1vbiAkKHRvcF9zcmNkaXIp L2NvbmZpZ3VyZSBBVVRIT1JTIFwKLSsJQ09QWUlORyBDaGFuZ2VMb2cgSU5TVEFMTCBORVdTIGNv bmZpZy9jb25maWcuZ3Vlc3MgXAotKwljb25maWcvY29uZmlnLnN1YiBjb25maWcvZGVwY29tcCBj b25maWcvaW5zdGFsbC1zaCBcCi0rCWNvbmZpZy9sdG1haW4uc2ggY29uZmlnL21pc3NpbmcKLStz dWJkaXIgPSAuCi0rQUNMT0NBTF9NNCA9ICQodG9wX3NyY2RpcikvYWNsb2NhbC5tNAotK2FtX19h Y2xvY2FsX200X2RlcHMgPSAkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9ib29zdC5tNCBcCi0rCSQo dG9wX3NyY2RpcikvY29uZmlnL2F4X215c3FsLm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcv YXhfb3JhY2xlX29jaS5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmlnL2F4X3Bvc3RncmVzcWwu bTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9jcHB1bml0Lm00IFwKLSsJJCh0b3Bfc3JjZGly KS9jb25maWcvbGlidG9vbC5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmlnL2x0b3B0aW9ucy5t NCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmlnL2x0c3VnYXIubTQgXAotKwkkKHRvcF9zcmNkaXIp L2NvbmZpZy9sdHZlcnNpb24ubTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9sdH5vYnNvbGV0 ZS5tNCAkKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZS5hYwotK2FtX19jb25maWd1cmVfZGVwcyA9ICQo YW1fX2FjbG9jYWxfbTRfZGVwcykgJChDT05GSUdVUkVfREVQRU5ERU5DSUVTKSBcCi0rCSQoQUNM T0NBTF9NNCkKLSthbV9fQ09ORklHX0RJU1RDTEVBTl9GSUxFUyA9IGNvbmZpZy5zdGF0dXMgY29u ZmlnLmNhY2hlIGNvbmZpZy5sb2cgXAotKyBjb25maWd1cmUubGluZW5vIGNvbmZpZy5zdGF0dXMu bGluZW5vCi0rbWtpbnN0YWxsZGlycyA9ICQoaW5zdGFsbF9zaCkgLWQKLStDT05GSUdfSEVBREVS ID0gJCh0b3BfYnVpbGRkaXIpL3NvY2kvY29uZmlnLmgKLStDT05GSUdfQ0xFQU5fRklMRVMgPSBz b2NpLWNvbmZpZyBzb2NpLnBjIHNvY2kuc3BlYwotK2FtX19pbnN0YWxsZGlycyA9ICIkKERFU1RE SVIpJChiaW5kaXIpIiAiJChERVNURElSKSQobTRkYXRhZGlyKSIgXAotKwkiJChERVNURElSKSQo cGtnY29uZmlnZGlyKSIKLStiaW5TQ1JJUFRfSU5TVEFMTCA9ICQoSU5TVEFMTF9TQ1JJUFQpCi0r U0NSSVBUUyA9ICQoYmluX1NDUklQVFMpCi0rU09VUkNFUyA9Ci0rRElTVF9TT1VSQ0VTID0KLStS RUNVUlNJVkVfVEFSR0VUUyA9IGFsbC1yZWN1cnNpdmUgY2hlY2stcmVjdXJzaXZlIGR2aS1yZWN1 cnNpdmUgXAotKwlodG1sLXJlY3Vyc2l2ZSBpbmZvLXJlY3Vyc2l2ZSBpbnN0YWxsLWRhdGEtcmVj dXJzaXZlIFwKLSsJaW5zdGFsbC1kdmktcmVjdXJzaXZlIGluc3RhbGwtZXhlYy1yZWN1cnNpdmUg XAotKwlpbnN0YWxsLWh0bWwtcmVjdXJzaXZlIGluc3RhbGwtaW5mby1yZWN1cnNpdmUgXAotKwlp bnN0YWxsLXBkZi1yZWN1cnNpdmUgaW5zdGFsbC1wcy1yZWN1cnNpdmUgaW5zdGFsbC1yZWN1cnNp dmUgXAotKwlpbnN0YWxsY2hlY2stcmVjdXJzaXZlIGluc3RhbGxkaXJzLXJlY3Vyc2l2ZSBwZGYt cmVjdXJzaXZlIFwKLSsJcHMtcmVjdXJzaXZlIHVuaW5zdGFsbC1yZWN1cnNpdmUKLSthbV9fdnBh dGhfYWRqX3NldHVwID0gc3JjZGlyc3RyaXA9YGVjaG8gIiQoc3JjZGlyKSIgfCBzZWQgJ3N8Lnwu fGcnYDsKLSthbV9fdnBhdGhfYWRqID0gY2FzZSAkJHAgaW4gXAotKyAgICAkKHNyY2RpcikvKikg Zj1gZWNobyAiJCRwIiB8IHNlZCAic3xeJCRzcmNkaXJzdHJpcC98fCJgOzsgXAotKyAgICAqKSBm PSQkcDs7IFwKLSsgIGVzYWM7Ci0rYW1fX3N0cmlwX2RpciA9IGBlY2hvICQkcCB8IHNlZCAtZSAn c3xeLiovfHwnYDsKLSttNGRhdGFEQVRBX0lOU1RBTEwgPSAkKElOU1RBTExfREFUQSkKLStwa2dj b25maWdEQVRBX0lOU1RBTEwgPSAkKElOU1RBTExfREFUQSkKLStEQVRBID0gJChtNGRhdGFfREFU QSkgJChwa2djb25maWdfREFUQSkKLStSRUNVUlNJVkVfQ0xFQU5fVEFSR0VUUyA9IG1vc3RseWNs ZWFuLXJlY3Vyc2l2ZSBjbGVhbi1yZWN1cnNpdmUJXAotKyAgZGlzdGNsZWFuLXJlY3Vyc2l2ZSBt YWludGFpbmVyLWNsZWFuLXJlY3Vyc2l2ZQotK0VUQUdTID0gZXRhZ3MKLStDVEFHUyA9IGN0YWdz Ci0rRElTVF9TVUJESVJTID0gJChTVUJESVJTKQotK0RJU1RGSUxFUyA9ICQoRElTVF9DT01NT04p ICQoRElTVF9TT1VSQ0VTKSAkKFRFWElORk9TKSAkKEVYVFJBX0RJU1QpCi0rZGlzdGRpciA9ICQo UEFDS0FHRSktJChWRVJTSU9OKQotK3RvcF9kaXN0ZGlyID0gJChkaXN0ZGlyKQotK2FtX19yZW1v dmVfZGlzdGRpciA9IFwKLSsgIHsgdGVzdCAhIC1kICQoZGlzdGRpcikgXAotKyAgICB8fCB7IGZp bmQgJChkaXN0ZGlyKSAtdHlwZSBkICEgLXBlcm0gLTIwMCAtZXhlYyBjaG1vZCB1K3cge30gJzsn IFwKLSsgICAgICAgICAmJiBybSAtZnIgJChkaXN0ZGlyKTsgfTsgfQotK0RJU1RfQVJDSElWRVMg PSAkKGRpc3RkaXIpLnRhci5neiAkKGRpc3RkaXIpLnRhci5iejIKLStHWklQX0VOViA9IC0tYmVz dAotK2Rpc3R1bmluc3RhbGxjaGVja19saXN0ZmlsZXMgPSBmaW5kIC4gLXR5cGUgZiAtcHJpbnQK LStkaXN0Y2xlYW5jaGVja19saXN0ZmlsZXMgPSBmaW5kIC4gLXR5cGUgZiAtcHJpbnQKLStBQ0xP Q0FMID0gQEFDTE9DQUxACi0rQU1UQVIgPSBAQU1UQVJACi0rQVIgPSBAQVJACi0rQVVUT0NPTkYg PSBAQVVUT0NPTkZACi0rQVVUT0hFQURFUiA9IEBBVVRPSEVBREVSQAotK0FVVE9NQUtFID0gQEFV VE9NQUtFQAotK0FXSyA9IEBBV0tACi0rQk9PU1RfQ0ZMQUdTID0gQEJPT1NUX0NGTEFHU0AKLStC T09TVF9EQVRFX1RJTUVfTElCID0gQEJPT1NUX0RBVEVfVElNRV9MSUJACi0rQk9PU1RfRklMRVNZ U1RFTV9MSUIgPSBAQk9PU1RfRklMRVNZU1RFTV9MSUJACi0rQk9PU1RfSU9TVFJFQU1TX0xJQiA9 IEBCT09TVF9JT1NUUkVBTVNfTElCQAotK0JPT1NUX0xJQlMgPSBAQk9PU1RfTElCU0AKLStCT09T VF9QUk9HUkFNX09QVElPTlNfTElCID0gQEJPT1NUX1BST0dSQU1fT1BUSU9OU19MSUJACi0rQk9P U1RfUkVHRVhfTElCID0gQEJPT1NUX1JFR0VYX0xJQkAKLStCT09TVF9TRVJJQUxJWkFUSU9OX0xJ QiA9IEBCT09TVF9TRVJJQUxJWkFUSU9OX0xJQkAKLStCT09TVF9TSUdOQUxTX0xJQiA9IEBCT09T VF9TSUdOQUxTX0xJQkAKLStCT09TVF9USFJFQURfTElCID0gQEJPT1NUX1RIUkVBRF9MSUJACi0r Qk9PU1RfVU5JVF9URVNUX0ZSQU1FV09SS19MSUIgPSBAQk9PU1RfVU5JVF9URVNUX0ZSQU1FV09S S19MSUJACi0rQk9PU1RfVkVSU0lPTiA9IEBCT09TVF9WRVJTSU9OQAotK0JPT1NUX1dTRVJJQUxJ WkFUSU9OX0xJQiA9IEBCT09TVF9XU0VSSUFMSVpBVElPTl9MSUJACi0rQ0MgPSBAQ0NACi0rQ0NE RVBNT0RFID0gQENDREVQTU9ERUAKLStDRkxBR1MgPSBAQ0ZMQUdTQAotK0NQUCA9IEBDUFBACi0r Q1BQRkxBR1MgPSBAQ1BQRkxBR1NACi0rQ1BQVU5JVF9DRkxBR1MgPSBAQ1BQVU5JVF9DRkxBR1NA Ci0rQ1BQVU5JVF9DT05GSUcgPSBAQ1BQVU5JVF9DT05GSUdACi0rQ1BQVU5JVF9MSUJTID0gQENQ UFVOSVRfTElCU0AKLStDUFBVTklUX1ZFUlNJT04gPSBAQ1BQVU5JVF9WRVJTSU9OQAotK0NYWCA9 IEBDWFhACi0rQ1hYQ1BQID0gQENYWENQUEAKLStDWFhERVBNT0RFID0gQENYWERFUE1PREVACi0r Q1hYRkxBR1MgPSBAQ1hYRkxBR1NACi0rQ1lHUEFUSF9XID0gQENZR1BBVEhfV0AKLStERUZTID0g QERFRlNACi0rREVQRElSID0gQERFUERJUkAKLStEU1lNVVRJTCA9IEBEU1lNVVRJTEAKLStEVU1Q QklOID0gQERVTVBCSU5ACi0rRUNIT19DID0gQEVDSE9fQ0AKLStFQ0hPX04gPSBARUNIT19OQAot K0VDSE9fVCA9IEBFQ0hPX1RACi0rRUdSRVAgPSBARUdSRVBACi0rRVhFRVhUID0gQEVYRUVYVEAK LStGR1JFUCA9IEBGR1JFUEAKLStHRU5FUklDX0xJQlJBUllfVkVSU0lPTiA9IEBHRU5FUklDX0xJ QlJBUllfVkVSU0lPTkAKLStHUkVQID0gQEdSRVBACi0rSU5TVEFMTCA9IEBJTlNUQUxMQAotK0lO U1RBTExfREFUQSA9IEBJTlNUQUxMX0RBVEFACi0rSU5TVEFMTF9QUk9HUkFNID0gQElOU1RBTExf UFJPR1JBTUAKLStJTlNUQUxMX1NDUklQVCA9IEBJTlNUQUxMX1NDUklQVEAKLStJTlNUQUxMX1NU UklQX1BST0dSQU0gPSBASU5TVEFMTF9TVFJJUF9QUk9HUkFNQAotK0xEID0gQExEQAotK0xERkxB R1MgPSBATERGTEFHU0AKLStMSUJPQkpTID0gQExJQk9CSlNACi0rTElCUyA9IEBMSUJTQAotK0xJ QlRPT0wgPSBATElCVE9PTEAKLStMSVBPID0gQExJUE9ACi0rTE5fUyA9IEBMTl9TQAotK0xUTElC T0JKUyA9IEBMVExJQk9CSlNACi0rTUFLRUlORk8gPSBATUFLRUlORk9ACi0rTUtESVJfUCA9IEBN S0RJUl9QQAotK01ZU1FMX0NGTEFHUyA9IEBNWVNRTF9DRkxBR1NACi0rTVlTUUxfQ09ORklHID0g QE1ZU1FMX0NPTkZJR0AKLStNWVNRTF9ESVJTID0gQE1ZU1FMX0RJUlNACi0rTVlTUUxfTERGTEFH UyA9IEBNWVNRTF9MREZMQUdTQAotK01ZU1FMX1ZFUlNJT04gPSBATVlTUUxfVkVSU0lPTkAKLStO TSA9IEBOTUAKLStOTUVESVQgPSBATk1FRElUQAotK09CSkRVTVAgPSBAT0JKRFVNUEAKLStPQkpF WFQgPSBAT0JKRVhUQAotK09SQUNMRV9ESVJTID0gQE9SQUNMRV9ESVJTQAotK09SQUNMRV9PQ0lf Q0ZMQUdTID0gQE9SQUNMRV9PQ0lfQ0ZMQUdTQAotK09SQUNMRV9PQ0lfTERGTEFHUyA9IEBPUkFD TEVfT0NJX0xERkxBR1NACi0rT1JBQ0xFX09DSV9WRVJTSU9OID0gQE9SQUNMRV9PQ0lfVkVSU0lP TkAKLStPVE9PTCA9IEBPVE9PTEAKLStPVE9PTDY0ID0gQE9UT09MNjRACi0rUEFDS0FHRSA9IEBQ QUNLQUdFQAotK1BBQ0tBR0VfQlVHUkVQT1JUID0gQFBBQ0tBR0VfQlVHUkVQT1JUQAotK1BBQ0tB R0VfTkFNRSA9IEBQQUNLQUdFX05BTUVACi0rUEFDS0FHRV9TVFJJTkcgPSBAUEFDS0FHRV9TVFJJ TkdACi0rUEFDS0FHRV9UQVJOQU1FID0gQFBBQ0tBR0VfVEFSTkFNRUAKLStQQUNLQUdFX1ZFUlNJ T04gPSBAUEFDS0FHRV9WRVJTSU9OQAotK1BBVEhfU0VQQVJBVE9SID0gQFBBVEhfU0VQQVJBVE9S QAotK1BFUkwgPSBAUEVSTEAKLStQR19DT05GSUcgPSBAUEdfQ09ORklHQAotK1BPU1RHUkVTUUxf Q0ZMQUdTID0gQFBPU1RHUkVTUUxfQ0ZMQUdTQAotK1BPU1RHUkVTUUxfRElSUyA9IEBQT1NUR1JF U1FMX0RJUlNACi0rUE9TVEdSRVNRTF9MREZMQUdTID0gQFBPU1RHUkVTUUxfTERGTEFHU0AKLStQ T1NUR1JFU1FMX1ZFUlNJT04gPSBAUE9TVEdSRVNRTF9WRVJTSU9OQAotK1JBTkxJQiA9IEBSQU5M SUJACi0rUlBNX1JFTEVBU0UgPSBAUlBNX1JFTEVBU0VACi0rU0VEID0gQFNFREAKLStTRVRfTUFL RSA9IEBTRVRfTUFLRUAKLStTSEVMTCA9IEBTSEVMTEAKLStTT0NJX0hFQURFUlNfQlVSSUVEID0g QFNPQ0lfSEVBREVSU19CVVJJRURACi0rU09DSV9NWVNRTF9IRUFERVJTX0JVUklFRCA9IEBTT0NJ X01ZU1FMX0hFQURFUlNfQlVSSUVEQAotK1NPQ0lfUE9TVEdSRVNRTF9IRUFERVJTX0JVUklFRCA9 IEBTT0NJX1BPU1RHUkVTUUxfSEVBREVSU19CVVJJRURACi0rU1RSSVAgPSBAU1RSSVBACi0rVVBM T0FEX0NPTU1BTkQgPSBAVVBMT0FEX0NPTU1BTkRACi0rVkVSU0lPTiA9IEBWRVJTSU9OQAotK2Fi c19idWlsZGRpciA9IEBhYnNfYnVpbGRkaXJACi0rYWJzX3NyY2RpciA9IEBhYnNfc3JjZGlyQAot K2Fic190b3BfYnVpbGRkaXIgPSBAYWJzX3RvcF9idWlsZGRpckAKLSthYnNfdG9wX3NyY2RpciA9 IEBhYnNfdG9wX3NyY2RpckAKLSthY19jdF9DQyA9IEBhY19jdF9DQ0AKLSthY19jdF9DWFggPSBA YWNfY3RfQ1hYQAotK2FjX2N0X0RVTVBCSU4gPSBAYWNfY3RfRFVNUEJJTkAKLSthbV9faW5jbHVk ZSA9IEBhbV9faW5jbHVkZUAKLSthbV9fbGVhZGluZ19kb3QgPSBAYW1fX2xlYWRpbmdfZG90QAot K2FtX19xdW90ZSA9IEBhbV9fcXVvdGVACi0rYW1fX3RhciA9IEBhbV9fdGFyQAotK2FtX191bnRh ciA9IEBhbV9fdW50YXJACi0rYmluZGlyID0gQGJpbmRpckAKLStidWlsZCA9IEBidWlsZEAKLSti dWlsZF9hbGlhcyA9IEBidWlsZF9hbGlhc0AKLStidWlsZF9jcHUgPSBAYnVpbGRfY3B1QAotK2J1 aWxkX29zID0gQGJ1aWxkX29zQAotK2J1aWxkX3ZlbmRvciA9IEBidWlsZF92ZW5kb3JACi0rYnVp bGRkaXIgPSBAYnVpbGRkaXJACi0rZGF0YWRpciA9IEBkYXRhZGlyQAotK2RhdGFyb290ZGlyID0g QGRhdGFyb290ZGlyQAotK2RpZmZfb2sgPSBAZGlmZl9va0AKLStkb2NkaXIgPSBAZG9jZGlyQAot K2RveHlnZW5fb2sgPSBAZG94eWdlbl9va0AKLStkdmlkaXIgPSBAZHZpZGlyQAotK2R2aXBzX29r ID0gQGR2aXBzX29rQAotK2V4ZWNfcHJlZml4ID0gQGV4ZWNfcHJlZml4QAotK2dzX29rID0gQGdz X29rQAotK2hvc3QgPSBAaG9zdEAKLStob3N0X2FsaWFzID0gQGhvc3RfYWxpYXNACi0raG9zdF9j cHUgPSBAaG9zdF9jcHVACi0raG9zdF9vcyA9IEBob3N0X29zQAotK2hvc3RfdmVuZG9yID0gQGhv c3RfdmVuZG9yQAotK2h0bWxkaXIgPSBAaHRtbGRpckAKLStpbmNsdWRlZGlyID0gQGluY2x1ZGVk aXJACi0raW5mb2RpciA9IEBpbmZvZGlyQAotK2luc3RhbGxfc2ggPSBAaW5zdGFsbF9zaEAKLSts YXRleF9vayA9IEBsYXRleF9va0AKLStsaWJkaXIgPSBAbGliZGlyQAotK2xpYmV4ZWNkaXIgPSBA bGliZXhlY2RpckAKLStsb2NhbGVkaXIgPSBAbG9jYWxlZGlyQAotK2xvY2Fsc3RhdGVkaXIgPSBA bG9jYWxzdGF0ZWRpckAKLStsdF9FQ0hPID0gQGx0X0VDSE9ACi0rbWFuZGlyID0gQG1hbmRpckAK LStta2Rpcl9wID0gQG1rZGlyX3BACi0rb2xkaW5jbHVkZWRpciA9IEBvbGRpbmNsdWRlZGlyQAot K3BkZmRpciA9IEBwZGZkaXJACi0rcHJlZml4ID0gQHByZWZpeEAKLStwcm9ncmFtX3RyYW5zZm9y bV9uYW1lID0gQHByb2dyYW1fdHJhbnNmb3JtX25hbWVACi0rcHNkaXIgPSBAcHNkaXJACi0rc2Jp bmRpciA9IEBzYmluZGlyQAotK3NlZF9vayA9IEBzZWRfb2tACi0rc2hhcmVkc3RhdGVkaXIgPSBA c2hhcmVkc3RhdGVkaXJACi0rc3JjZGlyID0gQHNyY2RpckAKLStzeXNjb25mZGlyID0gQHN5c2Nv bmZkaXJACi0rdGFyZ2V0X2FsaWFzID0gQHRhcmdldF9hbGlhc0AKLSt0b3BfYnVpbGRfcHJlZml4 ID0gQHRvcF9idWlsZF9wcmVmaXhACi0rdG9wX2J1aWxkZGlyID0gQHRvcF9idWlsZGRpckAKLSt0 b3Bfc3JjZGlyID0gQHRvcF9zcmNkaXJACi0rQU1fQ1BQRkxBR1MgPSAtSSQodG9wX2J1aWxkZGly KSAtSSQodG9wX3NyY2RpcikKLStBQ0xPQ0FMX0FNRkxBR1MgPSAtSSBjb25maWcKLStBVVRPTUFL RV9PUFRJT05TID0gZGlzdC1iemlwMgotKwotKyMgIFRFU1RfRElSID0gdGVzdAotK01BTl9ET0Nf RElSID0gbWFuCi0rCi0rIyBNYWludGFpbmFuY2UgZmlsZXMKLStNQUlOVEFJTkVSQ0xFQU5GSUxF UyA9IE1ha2VmaWxlLmluIGFjbG9jYWwubTQgY29uZmlndXJlIFwKLSsJCQljb25maWctaC5pbiBz aWMvc3RhbXAtaC5pbiBhdXRvZ2VuLnNoIGJvb3RzdHJhcAotKwotKwotKyNFWFRSQV9ESVNUX0ZP Ul9TT0NJX0NPTVBBVElCSUxJVFkgPSAuX2NvbmZpZ3VyZSAuX01ha2VmaWxlIGNvbnRyaWIKLStF WFRSQV9ESVNUX0ZPUl9TT0NJX0NPTVBBVElCSUxJVFkgPSBjb250cmliCi0rRVhUUkFfRElTVCA9 IE1ha2VmaWxlLmNvbW1vbiAkKEVYVFJBX0RJU1RfRk9SX1NPQ0lfQ09NUEFUSUJJTElUWSkgQFBB Q0tBR0VALm00Ci0rCi0rIyBCdWlsZCBpbiB0aGVzZSBkaXJlY3RvcmllczoKLStTVUJESVJTID0g YnVpbGQgQFBBQ0tBR0VAICQoTUFOX0RPQ19ESVIpIGRvYyAkKFRFU1RfRElSKQotKwotKyMgQ29u ZmlndXJhdGlvbiBoZWxwZXJzCi0rYmluX1NDUklQVFMgPSBAUEFDS0FHRUAtY29uZmlnCi0rcGtn Y29uZmlnZGlyID0gJChsaWJkaXIpL3BrZ2NvbmZpZwotK3BrZ2NvbmZpZ19EQVRBID0gQFBBQ0tB R0VALnBjCi0rbTRkYXRhZGlyID0gJChkYXRhZGlyKS9hY2xvY2FsCi0rbTRkYXRhX0RBVEEgPSBA UEFDS0FHRUAubTQKLSthbGw6IGFsbC1yZWN1cnNpdmUKLSsKLSsuU1VGRklYRVM6Ci0rYW0tLXJl ZnJlc2g6Ci0rCUA6Ci0rJChzcmNkaXIpL01ha2VmaWxlLmluOiAgJChzcmNkaXIpL01ha2VmaWxl LmFtICQodG9wX3NyY2RpcikvTWFrZWZpbGUuY29tbW9uICQoYW1fX2NvbmZpZ3VyZV9kZXBzKQot KwlAZm9yIGRlcCBpbiAkPzsgZG8gXAotKwkgIGNhc2UgJyQoYW1fX2NvbmZpZ3VyZV9kZXBzKScg aW4gXAotKwkgICAgKiQkZGVwKikgXAotKwkgICAgICBlY2hvICcgY2QgJChzcmNkaXIpICYmICQo QVVUT01BS0UpIC0tZ251ICc7IFwKLSsJICAgICAgY2QgJChzcmNkaXIpICYmICQoQVVUT01BS0Up IC0tZ251ICBcCi0rCQkmJiBleGl0IDA7IFwKLSsJICAgICAgZXhpdCAxOzsgXAotKwkgIGVzYWM7 IFwKLSsJZG9uZTsgXAotKwllY2hvICcgY2QgJCh0b3Bfc3JjZGlyKSAmJiAkKEFVVE9NQUtFKSAt LWdudSAgTWFrZWZpbGUnOyBcCi0rCWNkICQodG9wX3NyY2RpcikgJiYgXAotKwkgICQoQVVUT01B S0UpIC0tZ251ICBNYWtlZmlsZQotKy5QUkVDSU9VUzogTWFrZWZpbGUKLStNYWtlZmlsZTogJChz cmNkaXIpL01ha2VmaWxlLmluICQodG9wX2J1aWxkZGlyKS9jb25maWcuc3RhdHVzCi0rCUBjYXNl ICckPycgaW4gXAotKwkgICpjb25maWcuc3RhdHVzKikgXAotKwkgICAgZWNobyAnICQoU0hFTEwp IC4vY29uZmlnLnN0YXR1cyc7IFwKLSsJICAgICQoU0hFTEwpIC4vY29uZmlnLnN0YXR1czs7IFwK LSsJICAqKSBcCi0rCSAgICBlY2hvICcgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoU0hFTEwpIC4v Y29uZmlnLnN0YXR1cyAkQCAkKGFtX19kZXBmaWxlc19tYXliZSknOyBcCi0rCSAgICBjZCAkKHRv cF9idWlsZGRpcikgJiYgJChTSEVMTCkgLi9jb25maWcuc3RhdHVzICRAICQoYW1fX2RlcGZpbGVz X21heWJlKTs7IFwKLSsJZXNhYzsKLSsKLSskKHRvcF9idWlsZGRpcikvY29uZmlnLnN0YXR1czog JCh0b3Bfc3JjZGlyKS9jb25maWd1cmUgJChDT05GSUdfU1RBVFVTX0RFUEVOREVOQ0lFUykKLSsJ JChTSEVMTCkgLi9jb25maWcuc3RhdHVzIC0tcmVjaGVjawotKwotKyQodG9wX3NyY2RpcikvY29u ZmlndXJlOiAgJChhbV9fY29uZmlndXJlX2RlcHMpCi0rCWNkICQoc3JjZGlyKSAmJiAkKEFVVE9D T05GKQotKyQoQUNMT0NBTF9NNCk6ICAkKGFtX19hY2xvY2FsX200X2RlcHMpCi0rCWNkICQoc3Jj ZGlyKSAmJiAkKEFDTE9DQUwpICQoQUNMT0NBTF9BTUZMQUdTKQotK3NvY2ktY29uZmlnOiAkKHRv cF9idWlsZGRpcikvY29uZmlnLnN0YXR1cyAkKHNyY2Rpcikvc29jaS1jb25maWcuaW4KLSsJY2Qg JCh0b3BfYnVpbGRkaXIpICYmICQoU0hFTEwpIC4vY29uZmlnLnN0YXR1cyAkQAotK3NvY2kucGM6 ICQodG9wX2J1aWxkZGlyKS9jb25maWcuc3RhdHVzICQoc3JjZGlyKS9zb2NpLnBjLmluCi0rCWNk ICQodG9wX2J1aWxkZGlyKSAmJiAkKFNIRUxMKSAuL2NvbmZpZy5zdGF0dXMgJEAKLStzb2NpLnNw ZWM6ICQodG9wX2J1aWxkZGlyKS9jb25maWcuc3RhdHVzICQoc3JjZGlyKS9zb2NpLnNwZWMuaW4K LSsJY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoU0hFTEwpIC4vY29uZmlnLnN0YXR1cyAkQAotK2lu c3RhbGwtYmluU0NSSVBUUzogJChiaW5fU0NSSVBUUykKLSsJQCQoTk9STUFMX0lOU1RBTEwpCi0r CXRlc3QgLXogIiQoYmluZGlyKSIgfHwgJChNS0RJUl9QKSAiJChERVNURElSKSQoYmluZGlyKSIK LSsJQGxpc3Q9JyQoYmluX1NDUklQVFMpJzsgZm9yIHAgaW4gJCRsaXN0OyBkbyBcCi0rCSAgaWYg dGVzdCAtZiAiJCRwIjsgdGhlbiBkPTsgZWxzZSBkPSIkKHNyY2RpcikvIjsgZmk7IFwKLSsJICBp ZiB0ZXN0IC1mICQkZCQkcDsgdGhlbiBcCi0rCSAgICBmPWBlY2hvICIkJHAiIHwgc2VkICdzfF4u Ki98fDskKHRyYW5zZm9ybSknYDsgXAotKwkgICAgZWNobyAiICQoYmluU0NSSVBUX0lOU1RBTEwp ICckJGQkJHAnICckKERFU1RESVIpJChiaW5kaXIpLyQkZiciOyBcCi0rCSAgICAkKGJpblNDUklQ VF9JTlNUQUxMKSAiJCRkJCRwIiAiJChERVNURElSKSQoYmluZGlyKS8kJGYiOyBcCi0rCSAgZWxz ZSA6OyBmaTsgXAotKwlkb25lCi0rCi0rdW5pbnN0YWxsLWJpblNDUklQVFM6Ci0rCUAkKE5PUk1B TF9VTklOU1RBTEwpCi0rCUBsaXN0PSckKGJpbl9TQ1JJUFRTKSc7IGZvciBwIGluICQkbGlzdDsg ZG8gXAotKwkgIGY9YGVjaG8gIiQkcCIgfCBzZWQgJ3N8Xi4qL3x8OyQodHJhbnNmb3JtKSdgOyBc Ci0rCSAgZWNobyAiIHJtIC1mICckKERFU1RESVIpJChiaW5kaXIpLyQkZiciOyBcCi0rCSAgcm0g LWYgIiQoREVTVERJUikkKGJpbmRpcikvJCRmIjsgXAotKwlkb25lCi0rCi0rbW9zdGx5Y2xlYW4t bGlidG9vbDoKLSsJLXJtIC1mICoubG8KLSsKLStjbGVhbi1saWJ0b29sOgotKwktcm0gLXJmIC5s aWJzIF9saWJzCi0rCi0rZGlzdGNsZWFuLWxpYnRvb2w6Ci0rCS1ybSAtZiBsaWJ0b29sIGNvbmZp Zy5sdAotK2luc3RhbGwtbTRkYXRhREFUQTogJChtNGRhdGFfREFUQSkKLSsJQCQoTk9STUFMX0lO U1RBTEwpCi0rCXRlc3QgLXogIiQobTRkYXRhZGlyKSIgfHwgJChNS0RJUl9QKSAiJChERVNURElS KSQobTRkYXRhZGlyKSIKLSsJQGxpc3Q9JyQobTRkYXRhX0RBVEEpJzsgZm9yIHAgaW4gJCRsaXN0 OyBkbyBcCi0rCSAgaWYgdGVzdCAtZiAiJCRwIjsgdGhlbiBkPTsgZWxzZSBkPSIkKHNyY2Rpcikv IjsgZmk7IFwKLSsJICBmPSQoYW1fX3N0cmlwX2RpcikgXAotKwkgIGVjaG8gIiAkKG00ZGF0YURB VEFfSU5TVEFMTCkgJyQkZCQkcCcgJyQoREVTVERJUikkKG00ZGF0YWRpcikvJCRmJyI7IFwKLSsJ ICAkKG00ZGF0YURBVEFfSU5TVEFMTCkgIiQkZCQkcCIgIiQoREVTVERJUikkKG00ZGF0YWRpcikv JCRmIjsgXAotKwlkb25lCi0rCi0rdW5pbnN0YWxsLW00ZGF0YURBVEE6Ci0rCUAkKE5PUk1BTF9V TklOU1RBTEwpCi0rCUBsaXN0PSckKG00ZGF0YV9EQVRBKSc7IGZvciBwIGluICQkbGlzdDsgZG8g XAotKwkgIGY9JChhbV9fc3RyaXBfZGlyKSBcCi0rCSAgZWNobyAiIHJtIC1mICckKERFU1RESVIp JChtNGRhdGFkaXIpLyQkZiciOyBcCi0rCSAgcm0gLWYgIiQoREVTVERJUikkKG00ZGF0YWRpcikv JCRmIjsgXAotKwlkb25lCi0raW5zdGFsbC1wa2djb25maWdEQVRBOiAkKHBrZ2NvbmZpZ19EQVRB KQotKwlAJChOT1JNQUxfSU5TVEFMTCkKLSsJdGVzdCAteiAiJChwa2djb25maWdkaXIpIiB8fCAk KE1LRElSX1ApICIkKERFU1RESVIpJChwa2djb25maWdkaXIpIgotKwlAbGlzdD0nJChwa2djb25m aWdfREFUQSknOyBmb3IgcCBpbiAkJGxpc3Q7IGRvIFwKLSsJICBpZiB0ZXN0IC1mICIkJHAiOyB0 aGVuIGQ9OyBlbHNlIGQ9IiQoc3JjZGlyKS8iOyBmaTsgXAotKwkgIGY9JChhbV9fc3RyaXBfZGly KSBcCi0rCSAgZWNobyAiICQocGtnY29uZmlnREFUQV9JTlNUQUxMKSAnJCRkJCRwJyAnJChERVNU RElSKSQocGtnY29uZmlnZGlyKS8kJGYnIjsgXAotKwkgICQocGtnY29uZmlnREFUQV9JTlNUQUxM KSAiJCRkJCRwIiAiJChERVNURElSKSQocGtnY29uZmlnZGlyKS8kJGYiOyBcCi0rCWRvbmUKLSsK LSt1bmluc3RhbGwtcGtnY29uZmlnREFUQToKLSsJQCQoTk9STUFMX1VOSU5TVEFMTCkKLSsJQGxp c3Q9JyQocGtnY29uZmlnX0RBVEEpJzsgZm9yIHAgaW4gJCRsaXN0OyBkbyBcCi0rCSAgZj0kKGFt X19zdHJpcF9kaXIpIFwKLSsJICBlY2hvICIgcm0gLWYgJyQoREVTVERJUikkKHBrZ2NvbmZpZ2Rp cikvJCRmJyI7IFwKLSsJICBybSAtZiAiJChERVNURElSKSQocGtnY29uZmlnZGlyKS8kJGYiOyBc Ci0rCWRvbmUKLSsKLSsjIFRoaXMgZGlyZWN0b3J5J3Mgc3ViZGlyZWN0b3JpZXMgYXJlIG1vc3Rs eSBpbmRlcGVuZGVudDsgeW91IGNhbiBjZAotKyMgaW50byB0aGVtIGFuZCBydW4gYG1ha2UnIHdp dGhvdXQgZ29pbmcgdGhyb3VnaCB0aGlzIE1ha2VmaWxlLgotKyMgVG8gY2hhbmdlIHRoZSB2YWx1 ZXMgb2YgYG1ha2UnIHZhcmlhYmxlczogaW5zdGVhZCBvZiBlZGl0aW5nIE1ha2VmaWxlcywKLSsj ICgxKSBpZiB0aGUgdmFyaWFibGUgaXMgc2V0IGluIGBjb25maWcuc3RhdHVzJywgZWRpdCBgY29u ZmlnLnN0YXR1cycKLSsjICAgICAod2hpY2ggd2lsbCBjYXVzZSB0aGUgTWFrZWZpbGVzIHRvIGJl IHJlZ2VuZXJhdGVkIHdoZW4geW91IHJ1biBgbWFrZScpOwotKyMgKDIpIG90aGVyd2lzZSwgcGFz cyB0aGUgZGVzaXJlZCB2YWx1ZXMgb24gdGhlIGBtYWtlJyBjb21tYW5kIGxpbmUuCi0rJChSRUNV UlNJVkVfVEFSR0VUUyk6Ci0rCUBmYWlsY29tPSdleGl0IDEnOyBcCi0rCWZvciBmIGluIHggJCRN QUtFRkxBR1M7IGRvIFwKLSsJICBjYXNlICQkZiBpbiBcCi0rCSAgICAqPSogfCAtLVsha10qKTs7 IFwKLSsJICAgICprKikgZmFpbGNvbT0nZmFpbD15ZXMnOzsgXAotKwkgIGVzYWM7IFwKLSsJZG9u ZTsgXAotKwlkb3Rfc2Vlbj1ubzsgXAotKwl0YXJnZXQ9YGVjaG8gJEAgfCBzZWQgcy8tcmVjdXJz aXZlLy9gOyBcCi0rCWxpc3Q9JyQoU1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8g XAotKwkgIGVjaG8gIk1ha2luZyAkJHRhcmdldCBpbiAkJHN1YmRpciI7IFwKLSsJICBpZiB0ZXN0 ICIkJHN1YmRpciIgPSAiLiI7IHRoZW4gXAotKwkgICAgZG90X3NlZW49eWVzOyBcCi0rCSAgICBs b2NhbF90YXJnZXQ9IiQkdGFyZ2V0LWFtIjsgXAotKwkgIGVsc2UgXAotKwkgICAgbG9jYWxfdGFy Z2V0PSIkJHRhcmdldCI7IFwKLSsJICBmaTsgXAotKwkgIChjZCAkJHN1YmRpciAmJiAkKE1BS0Up ICQoQU1fTUFLRUZMQUdTKSAkJGxvY2FsX3RhcmdldCkgXAotKwkgIHx8IGV2YWwgJCRmYWlsY29t OyBcCi0rCWRvbmU7IFwKLSsJaWYgdGVzdCAiJCRkb3Rfc2VlbiIgPSAibm8iOyB0aGVuIFwKLSsJ ICAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSAiJCR0YXJnZXQtYW0iIHx8IGV4aXQgMTsgXAotKwlm aTsgdGVzdCAteiAiJCRmYWlsIgotKwotKyQoUkVDVVJTSVZFX0NMRUFOX1RBUkdFVFMpOgotKwlA ZmFpbGNvbT0nZXhpdCAxJzsgXAotKwlmb3IgZiBpbiB4ICQkTUFLRUZMQUdTOyBkbyBcCi0rCSAg Y2FzZSAkJGYgaW4gXAotKwkgICAgKj0qIHwgLS1bIWtdKik7OyBcCi0rCSAgICAqayopIGZhaWxj b209J2ZhaWw9eWVzJzs7IFwKLSsJICBlc2FjOyBcCi0rCWRvbmU7IFwKLSsJZG90X3NlZW49bm87 IFwKLSsJY2FzZSAiJEAiIGluIFwKLSsJICBkaXN0Y2xlYW4tKiB8IG1haW50YWluZXItY2xlYW4t KikgbGlzdD0nJChESVNUX1NVQkRJUlMpJyA7OyBcCi0rCSAgKikgbGlzdD0nJChTVUJESVJTKScg OzsgXAotKwllc2FjOyBcCi0rCXJldj0nJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKLSsJ ICBpZiB0ZXN0ICIkJHN1YmRpciIgPSAiLiI7IHRoZW4gOjsgZWxzZSBcCi0rCSAgICByZXY9IiQk c3ViZGlyICQkcmV2IjsgXAotKwkgIGZpOyBcCi0rCWRvbmU7IFwKLSsJcmV2PSIkJHJldiAuIjsg XAotKwl0YXJnZXQ9YGVjaG8gJEAgfCBzZWQgcy8tcmVjdXJzaXZlLy9gOyBcCi0rCWZvciBzdWJk aXIgaW4gJCRyZXY7IGRvIFwKLSsJICBlY2hvICJNYWtpbmcgJCR0YXJnZXQgaW4gJCRzdWJkaXIi OyBcCi0rCSAgaWYgdGVzdCAiJCRzdWJkaXIiID0gIi4iOyB0aGVuIFwKLSsJICAgIGxvY2FsX3Rh cmdldD0iJCR0YXJnZXQtYW0iOyBcCi0rCSAgZWxzZSBcCi0rCSAgICBsb2NhbF90YXJnZXQ9IiQk dGFyZ2V0IjsgXAotKwkgIGZpOyBcCi0rCSAgKGNkICQkc3ViZGlyICYmICQoTUFLRSkgJChBTV9N QUtFRkxBR1MpICQkbG9jYWxfdGFyZ2V0KSBcCi0rCSAgfHwgZXZhbCAkJGZhaWxjb207IFwKLSsJ ZG9uZSAmJiB0ZXN0IC16ICIkJGZhaWwiCi0rdGFncy1yZWN1cnNpdmU6Ci0rCWxpc3Q9JyQoU1VC RElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAotKwkgIHRlc3QgIiQkc3ViZGlyIiA9 IC4gfHwgKGNkICQkc3ViZGlyICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIHRhZ3MpOyBcCi0r CWRvbmUKLStjdGFncy1yZWN1cnNpdmU6Ci0rCWxpc3Q9JyQoU1VCRElSUyknOyBmb3Igc3ViZGly IGluICQkbGlzdDsgZG8gXAotKwkgIHRlc3QgIiQkc3ViZGlyIiA9IC4gfHwgKGNkICQkc3ViZGly ICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGN0YWdzKTsgXAotKwlkb25lCi0rCi0rSUQ6ICQo SEVBREVSUykgJChTT1VSQ0VTKSAkKExJU1ApICQoVEFHU19GSUxFUykKLSsJbGlzdD0nJChTT1VS Q0VTKSAkKEhFQURFUlMpICQoTElTUCkgJChUQUdTX0ZJTEVTKSc7IFwKLSsJdW5pcXVlPWBmb3Ig aSBpbiAkJGxpc3Q7IGRvIFwKLSsJICAgIGlmIHRlc3QgLWYgIiQkaSI7IHRoZW4gZWNobyAkJGk7 IGVsc2UgZWNobyAkKHNyY2RpcikvJCRpOyBmaTsgXAotKwkgIGRvbmUgfCBcCi0rCSAgJChBV0sp ICd7IGZpbGVzWyQkMF0gPSAxOyBub25lbXB0eSA9IDE7IH0gXAotKwkgICAgICBFTkQgeyBpZiAo bm9uZW1wdHkpIHsgZm9yIChpIGluIGZpbGVzKSBwcmludCBpOyB9OyB9J2A7IFwKLSsJbWtpZCAt ZklEICQkdW5pcXVlCi0rdGFnczogVEFHUwotKwotK1RBR1M6IHRhZ3MtcmVjdXJzaXZlICQoSEVB REVSUykgJChTT1VSQ0VTKSAgJChUQUdTX0RFUEVOREVOQ0lFUykgXAotKwkJJChUQUdTX0ZJTEVT KSAkKExJU1ApCi0rCXRhZ3M9OyBcCi0rCWhlcmU9YHB3ZGA7IFwKLSsJaWYgKCQoRVRBR1MpIC0t ZXRhZ3MtaW5jbHVkZSAtLXZlcnNpb24pID4vZGV2L251bGwgMj4mMTsgdGhlbiBcCi0rCSAgaW5j bHVkZV9vcHRpb249LS1ldGFncy1pbmNsdWRlOyBcCi0rCSAgZW1wdHlfZml4PS47IFwKLSsJZWxz ZSBcCi0rCSAgaW5jbHVkZV9vcHRpb249LS1pbmNsdWRlOyBcCi0rCSAgZW1wdHlfZml4PTsgXAot KwlmaTsgXAotKwlsaXN0PSckKFNVQkRJUlMpJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwK LSsJICBpZiB0ZXN0ICIkJHN1YmRpciIgPSAuOyB0aGVuIDo7IGVsc2UgXAotKwkgICAgdGVzdCAh IC1mICQkc3ViZGlyL1RBR1MgfHwgXAotKwkgICAgICB0YWdzPSIkJHRhZ3MgJCRpbmNsdWRlX29w dGlvbj0kJGhlcmUvJCRzdWJkaXIvVEFHUyI7IFwKLSsJICBmaTsgXAotKwlkb25lOyBcCi0rCWxp c3Q9JyQoU09VUkNFUykgJChIRUFERVJTKSAgJChMSVNQKSAkKFRBR1NfRklMRVMpJzsgXAotKwl1 bmlxdWU9YGZvciBpIGluICQkbGlzdDsgZG8gXAotKwkgICAgaWYgdGVzdCAtZiAiJCRpIjsgdGhl biBlY2hvICQkaTsgZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7IGZpOyBcCi0rCSAgZG9uZSB8IFwK LSsJICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9IDE7IG5vbmVtcHR5ID0gMTsgfSBcCi0rCSAgICAg IEVORCB7IGlmIChub25lbXB0eSkgeyBmb3IgKGkgaW4gZmlsZXMpIHByaW50IGk7IH07IH0nYDsg XAotKwlpZiB0ZXN0IC16ICIkKEVUQUdTX0FSR1MpJCR0YWdzJCR1bmlxdWUiOyB0aGVuIDo7IGVs c2UgXAotKwkgIHRlc3QgLW4gIiQkdW5pcXVlIiB8fCB1bmlxdWU9JCRlbXB0eV9maXg7IFwKLSsJ ICAkKEVUQUdTKSAkKEVUQUdTRkxBR1MpICQoQU1fRVRBR1NGTEFHUykgJChFVEFHU19BUkdTKSBc Ci0rCSAgICAkJHRhZ3MgJCR1bmlxdWU7IFwKLSsJZmkKLStjdGFnczogQ1RBR1MKLStDVEFHUzog Y3RhZ3MtcmVjdXJzaXZlICQoSEVBREVSUykgJChTT1VSQ0VTKSAgJChUQUdTX0RFUEVOREVOQ0lF UykgXAotKwkJJChUQUdTX0ZJTEVTKSAkKExJU1ApCi0rCXRhZ3M9OyBcCi0rCWxpc3Q9JyQoU09V UkNFUykgJChIRUFERVJTKSAgJChMSVNQKSAkKFRBR1NfRklMRVMpJzsgXAotKwl1bmlxdWU9YGZv ciBpIGluICQkbGlzdDsgZG8gXAotKwkgICAgaWYgdGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hvICQk aTsgZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7IGZpOyBcCi0rCSAgZG9uZSB8IFwKLSsJICAkKEFX SykgJ3sgZmlsZXNbJCQwXSA9IDE7IG5vbmVtcHR5ID0gMTsgfSBcCi0rCSAgICAgIEVORCB7IGlm IChub25lbXB0eSkgeyBmb3IgKGkgaW4gZmlsZXMpIHByaW50IGk7IH07IH0nYDsgXAotKwl0ZXN0 IC16ICIkKENUQUdTX0FSR1MpJCR0YWdzJCR1bmlxdWUiIFwKLSsJICB8fCAkKENUQUdTKSAkKENU QUdTRkxBR1MpICQoQU1fQ1RBR1NGTEFHUykgJChDVEFHU19BUkdTKSBcCi0rCSAgICAgJCR0YWdz ICQkdW5pcXVlCi0rCi0rR1RBR1M6Ci0rCWhlcmU9YCQoYW1fX2NkKSAkKHRvcF9idWlsZGRpcikg JiYgcHdkYCBcCi0rCSAgJiYgY2QgJCh0b3Bfc3JjZGlyKSBcCi0rCSAgJiYgZ3RhZ3MgLWkgJChH VEFHU19BUkdTKSAkJGhlcmUKLSsKLStkaXN0Y2xlYW4tdGFnczoKLSsJLXJtIC1mIFRBR1MgSUQg R1RBR1MgR1JUQUdTIEdTWU1TIEdQQVRIIHRhZ3MKLSsKLStkaXN0ZGlyOiAkKERJU1RGSUxFUykK LSsJJChhbV9fcmVtb3ZlX2Rpc3RkaXIpCi0rCXRlc3QgLWQgJChkaXN0ZGlyKSB8fCBta2RpciAk KGRpc3RkaXIpCi0rCUBzcmNkaXJzdHJpcD1gZWNobyAiJChzcmNkaXIpIiB8IHNlZCAncy9bXS5b XiQkXFwqXS9cXFxcJi9nJ2A7IFwKLSsJdG9wc3JjZGlyc3RyaXA9YGVjaG8gIiQodG9wX3NyY2Rp cikiIHwgc2VkICdzL1tdLlteJCRcXCpdL1xcXFwmL2cnYDsgXAotKwlsaXN0PSckKERJU1RGSUxF UyknOyBcCi0rCSAgZGlzdF9maWxlcz1gZm9yIGZpbGUgaW4gJCRsaXN0OyBkbyBlY2hvICQkZmls ZTsgZG9uZSB8IFwKLSsJICBzZWQgLWUgInN8XiQkc3JjZGlyc3RyaXAvfHw7dCIgXAotKwkgICAg ICAtZSAic3xeJCR0b3BzcmNkaXJzdHJpcC98JCh0b3BfYnVpbGRkaXIpL3w7dCJgOyBcCi0rCWNh c2UgJCRkaXN0X2ZpbGVzIGluIFwKLSsJICAqLyopICQoTUtESVJfUCkgYGVjaG8gIiQkZGlzdF9m aWxlcyIgfCBcCi0rCQkJICAgc2VkICcvXC8vIWQ7c3xefCQoZGlzdGRpcikvfDtzLC9bXi9dKiQk LCwnIHwgXAotKwkJCSAgIHNvcnQgLXVgIDs7IFwKLSsJZXNhYzsgXAotKwlmb3IgZmlsZSBpbiAk JGRpc3RfZmlsZXM7IGRvIFwKLSsJICBpZiB0ZXN0IC1mICQkZmlsZSB8fCB0ZXN0IC1kICQkZmls ZTsgdGhlbiBkPS47IGVsc2UgZD0kKHNyY2Rpcik7IGZpOyBcCi0rCSAgaWYgdGVzdCAtZCAkJGQv JCRmaWxlOyB0aGVuIFwKLSsJICAgIGRpcj1gZWNobyAiLyQkZmlsZSIgfCBzZWQgLWUgJ3MsL1te L10qJCQsLCdgOyBcCi0rCSAgICBpZiB0ZXN0IC1kICQoc3JjZGlyKS8kJGZpbGUgJiYgdGVzdCAk JGQgIT0gJChzcmNkaXIpOyB0aGVuIFwKLSsJICAgICAgY3AgLXBSICQoc3JjZGlyKS8kJGZpbGUg JChkaXN0ZGlyKSQkZGlyIHx8IGV4aXQgMTsgXAotKwkgICAgZmk7IFwKLSsJICAgIGNwIC1wUiAk JGQvJCRmaWxlICQoZGlzdGRpcikkJGRpciB8fCBleGl0IDE7IFwKLSsJICBlbHNlIFwKLSsJICAg IHRlc3QgLWYgJChkaXN0ZGlyKS8kJGZpbGUgXAotKwkgICAgfHwgY3AgLXAgJCRkLyQkZmlsZSAk KGRpc3RkaXIpLyQkZmlsZSBcCi0rCSAgICB8fCBleGl0IDE7IFwKLSsJICBmaTsgXAotKwlkb25l Ci0rCWxpc3Q9JyQoRElTVF9TVUJESVJTKSc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCi0r CSAgaWYgdGVzdCAiJCRzdWJkaXIiID0gLjsgdGhlbiA6OyBlbHNlIFwKLSsJICAgIHRlc3QgLWQg IiQoZGlzdGRpcikvJCRzdWJkaXIiIFwKLSsJICAgIHx8ICQoTUtESVJfUCkgIiQoZGlzdGRpcikv JCRzdWJkaXIiIFwKLSsJICAgIHx8IGV4aXQgMTsgXAotKwkgICAgZGlzdGRpcj1gJChhbV9fY2Qp ICQoZGlzdGRpcikgJiYgcHdkYDsgXAotKwkgICAgdG9wX2Rpc3RkaXI9YCQoYW1fX2NkKSAkKHRv cF9kaXN0ZGlyKSAmJiBwd2RgOyBcCi0rCSAgICAoY2QgJCRzdWJkaXIgJiYgXAotKwkgICAgICAk KE1BS0UpICQoQU1fTUFLRUZMQUdTKSBcCi0rCSAgICAgICAgdG9wX2Rpc3RkaXI9IiQkdG9wX2Rp c3RkaXIiIFwKLSsJICAgICAgICBkaXN0ZGlyPSIkJGRpc3RkaXIvJCRzdWJkaXIiIFwKLSsJCWFt X19yZW1vdmVfZGlzdGRpcj06IFwKLSsJCWFtX19za2lwX2xlbmd0aF9jaGVjaz06IFwKLSsJICAg ICAgICBkaXN0ZGlyKSBcCi0rCSAgICAgIHx8IGV4aXQgMTsgXAotKwkgIGZpOyBcCi0rCWRvbmUK LSsJLWZpbmQgJChkaXN0ZGlyKSAtdHlwZSBkICEgLXBlcm0gLTc3NyAtZXhlYyBjaG1vZCBhK3J3 eCB7fSBcOyAtbyBcCi0rCSAgISAtdHlwZSBkICEgLXBlcm0gLTQ0NCAtbGlua3MgMSAtZXhlYyBj aG1vZCBhK3Ige30gXDsgLW8gXAotKwkgICEgLXR5cGUgZCAhIC1wZXJtIC00MDAgLWV4ZWMgY2ht b2QgYStyIHt9IFw7IC1vIFwKLSsJICAhIC10eXBlIGQgISAtcGVybSAtNDQ0IC1leGVjICQoaW5z dGFsbF9zaCkgLWMgLW0gYStyIHt9IHt9IFw7IFwKLSsJfHwgY2htb2QgLVIgYStyICQoZGlzdGRp cikKLStkaXN0LWd6aXA6IGRpc3RkaXIKLSsJdGFyZGlyPSQoZGlzdGRpcikgJiYgJChhbV9fdGFy KSB8IEdaSVA9JChHWklQX0VOVikgZ3ppcCAtYyA+JChkaXN0ZGlyKS50YXIuZ3oKLSsJJChhbV9f cmVtb3ZlX2Rpc3RkaXIpCi0rZGlzdC1iemlwMjogZGlzdGRpcgotKwl0YXJkaXI9JChkaXN0ZGly KSAmJiAkKGFtX190YXIpIHwgYnppcDIgLTkgLWMgPiQoZGlzdGRpcikudGFyLmJ6MgotKwkkKGFt X19yZW1vdmVfZGlzdGRpcikKLSsKLStkaXN0LWx6bWE6IGRpc3RkaXIKLSsJdGFyZGlyPSQoZGlz dGRpcikgJiYgJChhbV9fdGFyKSB8IGx6bWEgLTkgLWMgPiQoZGlzdGRpcikudGFyLmx6bWEKLSsJ JChhbV9fcmVtb3ZlX2Rpc3RkaXIpCi0rCi0rZGlzdC10YXJaOiBkaXN0ZGlyCi0rCXRhcmRpcj0k KGRpc3RkaXIpICYmICQoYW1fX3RhcikgfCBjb21wcmVzcyAtYyA+JChkaXN0ZGlyKS50YXIuWgot KwkkKGFtX19yZW1vdmVfZGlzdGRpcikKLSsKLStkaXN0LXNoYXI6IGRpc3RkaXIKLSsJc2hhciAk KGRpc3RkaXIpIHwgR1pJUD0kKEdaSVBfRU5WKSBnemlwIC1jID4kKGRpc3RkaXIpLnNoYXIuZ3oK LSsJJChhbV9fcmVtb3ZlX2Rpc3RkaXIpCi0rCi0rZGlzdC16aXA6IGRpc3RkaXIKLSsJLXJtIC1m ICQoZGlzdGRpcikuemlwCi0rCXppcCAtcnEgJChkaXN0ZGlyKS56aXAgJChkaXN0ZGlyKQotKwkk KGFtX19yZW1vdmVfZGlzdGRpcikKLSsKLStkaXN0IGRpc3QtYWxsOiBkaXN0ZGlyCi0rCXRhcmRp cj0kKGRpc3RkaXIpICYmICQoYW1fX3RhcikgfCBHWklQPSQoR1pJUF9FTlYpIGd6aXAgLWMgPiQo ZGlzdGRpcikudGFyLmd6Ci0rCXRhcmRpcj0kKGRpc3RkaXIpICYmICQoYW1fX3RhcikgfCBiemlw MiAtOSAtYyA+JChkaXN0ZGlyKS50YXIuYnoyCi0rCSQoYW1fX3JlbW92ZV9kaXN0ZGlyKQotKwot KyMgVGhpcyB0YXJnZXQgdW50YXJzIHRoZSBkaXN0IGZpbGUgYW5kIHRyaWVzIGEgVlBBVEggY29u ZmlndXJhdGlvbi4gIFRoZW4KLSsjIGl0IGd1YXJhbnRlZXMgdGhhdCB0aGUgZGlzdHJpYnV0aW9u IGlzIHNlbGYtY29udGFpbmVkIGJ5IG1ha2luZyBhbm90aGVyCi0rIyB0YXJmaWxlLgotK2Rpc3Rj aGVjazogZGlzdAotKwljYXNlICckKERJU1RfQVJDSElWRVMpJyBpbiBcCi0rCSoudGFyLmd6Kikg XAotKwkgIEdaSVA9JChHWklQX0VOVikgZ3VuemlwIC1jICQoZGlzdGRpcikudGFyLmd6IHwgJChh bV9fdW50YXIpIDs7XAotKwkqLnRhci5iejIqKSBcCi0rCSAgYnVuemlwMiAtYyAkKGRpc3RkaXIp LnRhci5iejIgfCAkKGFtX191bnRhcikgOztcCi0rCSoudGFyLmx6bWEqKSBcCi0rCSAgdW5sem1h IC1jICQoZGlzdGRpcikudGFyLmx6bWEgfCAkKGFtX191bnRhcikgOztcCi0rCSoudGFyLloqKSBc Ci0rCSAgdW5jb21wcmVzcyAtYyAkKGRpc3RkaXIpLnRhci5aIHwgJChhbV9fdW50YXIpIDs7XAot KwkqLnNoYXIuZ3oqKSBcCi0rCSAgR1pJUD0kKEdaSVBfRU5WKSBndW56aXAgLWMgJChkaXN0ZGly KS5zaGFyLmd6IHwgdW5zaGFyIDs7XAotKwkqLnppcCopIFwKLSsJICB1bnppcCAkKGRpc3RkaXIp LnppcCA7O1wKLSsJZXNhYwotKwljaG1vZCAtUiBhLXcgJChkaXN0ZGlyKTsgY2htb2QgYSt3ICQo ZGlzdGRpcikKLSsJbWtkaXIgJChkaXN0ZGlyKS9fYnVpbGQKLSsJbWtkaXIgJChkaXN0ZGlyKS9f aW5zdAotKwljaG1vZCBhLXcgJChkaXN0ZGlyKQotKwlkY19pbnN0YWxsX2Jhc2U9YCQoYW1fX2Nk KSAkKGRpc3RkaXIpL19pbnN0ICYmIHB3ZCB8IHNlZCAtZSAncyxeW146XFwvXTpbXFwvXSwvLCdg IFwKLSsJICAmJiBkY19kZXN0ZGlyPSIkJHtUTVBESVItL3RtcH0vYW0tZGMtJCQkJC8iIFwKLSsJ ICAmJiBjZCAkKGRpc3RkaXIpL19idWlsZCBcCi0rCSAgJiYgLi4vY29uZmlndXJlIC0tc3JjZGly PS4uIC0tcHJlZml4PSIkJGRjX2luc3RhbGxfYmFzZSIgXAotKwkgICAgJChESVNUQ0hFQ0tfQ09O RklHVVJFX0ZMQUdTKSBcCi0rCSAgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgXAotKwkgICYm ICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGR2aSBcCi0rCSAgJiYgJChNQUtFKSAkKEFNX01BS0VG TEFHUykgY2hlY2sgXAotKwkgICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGluc3RhbGwgXAot KwkgICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGluc3RhbGxjaGVjayBcCi0rCSAgJiYgJChN QUtFKSAkKEFNX01BS0VGTEFHUykgdW5pbnN0YWxsIFwKLSsJICAmJiAkKE1BS0UpICQoQU1fTUFL RUZMQUdTKSBkaXN0dW5pbnN0YWxsY2hlY2tfZGlyPSIkJGRjX2luc3RhbGxfYmFzZSIgXAotKwkg ICAgICAgIGRpc3R1bmluc3RhbGxjaGVjayBcCi0rCSAgJiYgY2htb2QgLVIgYS13ICIkJGRjX2lu c3RhbGxfYmFzZSIgXAotKwkgICYmICh7IFwKLSsJICAgICAgIChjZCAuLi8uLiAmJiB1bWFzayAw NzcgJiYgbWtkaXIgIiQkZGNfZGVzdGRpciIpIFwKLSsJICAgICAgICYmICQoTUFLRSkgJChBTV9N QUtFRkxBR1MpIERFU1RESVI9IiQkZGNfZGVzdGRpciIgaW5zdGFsbCBcCi0rCSAgICAgICAmJiAk KE1BS0UpICQoQU1fTUFLRUZMQUdTKSBERVNURElSPSIkJGRjX2Rlc3RkaXIiIHVuaW5zdGFsbCBc Ci0rCSAgICAgICAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBERVNURElSPSIkJGRjX2Rlc3Rk aXIiIFwKLSsJICAgICAgICAgICAgZGlzdHVuaW5zdGFsbGNoZWNrX2Rpcj0iJCRkY19kZXN0ZGly IiBkaXN0dW5pbnN0YWxsY2hlY2s7IFwKLSsJICAgICAgfSB8fCB7IHJtIC1yZiAiJCRkY19kZXN0 ZGlyIjsgZXhpdCAxOyB9KSBcCi0rCSAgJiYgcm0gLXJmICIkJGRjX2Rlc3RkaXIiIFwKLSsJICAm JiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBkaXN0IFwKLSsJICAmJiBybSAtcmYgJChESVNUX0FS Q0hJVkVTKSBcCi0rCSAgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgZGlzdGNsZWFuY2hlY2sK LSsJJChhbV9fcmVtb3ZlX2Rpc3RkaXIpCi0rCUAoZWNobyAiJChkaXN0ZGlyKSBhcmNoaXZlcyBy ZWFkeSBmb3IgZGlzdHJpYnV0aW9uOiAiOyBcCi0rCSAgbGlzdD0nJChESVNUX0FSQ0hJVkVTKSc7 IGZvciBpIGluICQkbGlzdDsgZG8gZWNobyAkJGk7IGRvbmUpIHwgXAotKwkgIHNlZCAtZSAxaCAt ZSAxcy8uLz0vZyAtZSAxcCAtZSAxeCAtZSAnJCRwJyAtZSAnJCR4JwotK2Rpc3R1bmluc3RhbGxj aGVjazoKLSsJQGNkICQoZGlzdHVuaW5zdGFsbGNoZWNrX2RpcikgXAotKwkmJiB0ZXN0IGAkKGRp c3R1bmluc3RhbGxjaGVja19saXN0ZmlsZXMpIHwgd2MgLWxgIC1sZSAxIFwKLSsJICAgfHwgeyBl Y2hvICJFUlJPUjogZmlsZXMgbGVmdCBhZnRlciB1bmluc3RhbGw6IiA7IFwKLSsJICAgICAgICBp ZiB0ZXN0IC1uICIkKERFU1RESVIpIjsgdGhlbiBcCi0rCSAgICAgICAgICBlY2hvICIgIChjaGVj ayBERVNURElSIHN1cHBvcnQpIjsgXAotKwkgICAgICAgIGZpIDsgXAotKwkgICAgICAgICQoZGlz dHVuaW5zdGFsbGNoZWNrX2xpc3RmaWxlcykgOyBcCi0rCSAgICAgICAgZXhpdCAxOyB9ID4mMgot K2Rpc3RjbGVhbmNoZWNrOiBkaXN0Y2xlYW4KLSsJQGlmIHRlc3QgJyQoc3JjZGlyKScgPSAuIDsg dGhlbiBcCi0rCSAgZWNobyAiRVJST1I6IGRpc3RjbGVhbmNoZWNrIGNhbiBvbmx5IHJ1biBmcm9t IGEgVlBBVEggYnVpbGQiIDsgXAotKwkgIGV4aXQgMSA7IFwKLSsJZmkKLSsJQHRlc3QgYCQoZGlz dGNsZWFuY2hlY2tfbGlzdGZpbGVzKSB8IHdjIC1sYCAtZXEgMCBcCi0rCSAgfHwgeyBlY2hvICJF UlJPUjogZmlsZXMgbGVmdCBpbiBidWlsZCBkaXJlY3RvcnkgYWZ0ZXIgZGlzdGNsZWFuOiIgOyBc Ci0rCSAgICAgICAkKGRpc3RjbGVhbmNoZWNrX2xpc3RmaWxlcykgOyBcCi0rCSAgICAgICBleGl0 IDE7IH0gPiYyCi0rY2hlY2stYW06IGFsbC1hbQotK2NoZWNrOiBjaGVjay1yZWN1cnNpdmUKLSth bGwtYW06IE1ha2VmaWxlICQoU0NSSVBUUykgJChEQVRBKQotK2luc3RhbGxkaXJzOiBpbnN0YWxs ZGlycy1yZWN1cnNpdmUKLStpbnN0YWxsZGlycy1hbToKLSsJZm9yIGRpciBpbiAiJChERVNURElS KSQoYmluZGlyKSIgIiQoREVTVERJUikkKG00ZGF0YWRpcikiICIkKERFU1RESVIpJChwa2djb25m aWdkaXIpIjsgZG8gXAotKwkgIHRlc3QgLXogIiQkZGlyIiB8fCAkKE1LRElSX1ApICIkJGRpciI7 IFwKLSsJZG9uZQotK2luc3RhbGw6IGluc3RhbGwtcmVjdXJzaXZlCi0raW5zdGFsbC1leGVjOiBp bnN0YWxsLWV4ZWMtcmVjdXJzaXZlCi0raW5zdGFsbC1kYXRhOiBpbnN0YWxsLWRhdGEtcmVjdXJz aXZlCi0rdW5pbnN0YWxsOiB1bmluc3RhbGwtcmVjdXJzaXZlCi0rCi0raW5zdGFsbC1hbTogYWxs LWFtCi0rCUAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBpbnN0YWxsLWV4ZWMtYW0gaW5zdGFsbC1k YXRhLWFtCi0rCi0raW5zdGFsbGNoZWNrOiBpbnN0YWxsY2hlY2stcmVjdXJzaXZlCi0raW5zdGFs bC1zdHJpcDoKLSsJJChNQUtFKSAkKEFNX01BS0VGTEFHUykgSU5TVEFMTF9QUk9HUkFNPSIkKElO U1RBTExfU1RSSVBfUFJPR1JBTSkiIFwKLSsJICBpbnN0YWxsX3NoX1BST0dSQU09IiQoSU5TVEFM TF9TVFJJUF9QUk9HUkFNKSIgSU5TVEFMTF9TVFJJUF9GTEFHPS1zIFwKLSsJICBgdGVzdCAteiAn JChTVFJJUCknIHx8IFwKLSsJICAgIGVjaG8gIklOU1RBTExfUFJPR1JBTV9FTlY9U1RSSVBQUk9H PSckKFNUUklQKSciYCBpbnN0YWxsCi0rbW9zdGx5Y2xlYW4tZ2VuZXJpYzoKLSsKLStjbGVhbi1n ZW5lcmljOgotKwotK2Rpc3RjbGVhbi1nZW5lcmljOgotKwktdGVzdCAteiAiJChDT05GSUdfQ0xF QU5fRklMRVMpIiB8fCBybSAtZiAkKENPTkZJR19DTEVBTl9GSUxFUykKLSsKLSttYWludGFpbmVy LWNsZWFuLWdlbmVyaWM6Ci0rCUBlY2hvICJUaGlzIGNvbW1hbmQgaXMgaW50ZW5kZWQgZm9yIG1h aW50YWluZXJzIHRvIHVzZSIKLSsJQGVjaG8gIml0IGRlbGV0ZXMgZmlsZXMgdGhhdCBtYXkgcmVx dWlyZSBzcGVjaWFsIHRvb2xzIHRvIHJlYnVpbGQuIgotKwktdGVzdCAteiAiJChNQUlOVEFJTkVS Q0xFQU5GSUxFUykiIHx8IHJtIC1mICQoTUFJTlRBSU5FUkNMRUFORklMRVMpCi0rY2xlYW46IGNs ZWFuLXJlY3Vyc2l2ZQotKwotK2NsZWFuLWFtOiBjbGVhbi1nZW5lcmljIGNsZWFuLWxpYnRvb2wg bW9zdGx5Y2xlYW4tYW0KLSsKLStkaXN0Y2xlYW46IGRpc3RjbGVhbi1yZWN1cnNpdmUKLSsJLXJt IC1mICQoYW1fX0NPTkZJR19ESVNUQ0xFQU5fRklMRVMpCi0rCS1ybSAtZiBNYWtlZmlsZQotK2Rp c3RjbGVhbi1hbTogY2xlYW4tYW0gZGlzdGNsZWFuLWdlbmVyaWMgZGlzdGNsZWFuLWxpYnRvb2wg XAotKwlkaXN0Y2xlYW4tdGFncwotKwotK2R2aTogZHZpLXJlY3Vyc2l2ZQotKwotK2R2aS1hbToK LSsKLStodG1sOiBodG1sLXJlY3Vyc2l2ZQotKwotK2luZm86IGluZm8tcmVjdXJzaXZlCi0rCi0r aW5mby1hbToKLSsKLStpbnN0YWxsLWRhdGEtYW06IGluc3RhbGwtbTRkYXRhREFUQSBpbnN0YWxs LXBrZ2NvbmZpZ0RBVEEKLSsKLStpbnN0YWxsLWR2aTogaW5zdGFsbC1kdmktcmVjdXJzaXZlCi0r Ci0raW5zdGFsbC1leGVjLWFtOiBpbnN0YWxsLWJpblNDUklQVFMKLSsKLStpbnN0YWxsLWh0bWw6 IGluc3RhbGwtaHRtbC1yZWN1cnNpdmUKLSsKLStpbnN0YWxsLWluZm86IGluc3RhbGwtaW5mby1y ZWN1cnNpdmUKLSsKLStpbnN0YWxsLW1hbjoKLSsKLStpbnN0YWxsLXBkZjogaW5zdGFsbC1wZGYt cmVjdXJzaXZlCi0rCi0raW5zdGFsbC1wczogaW5zdGFsbC1wcy1yZWN1cnNpdmUKLSsKLStpbnN0 YWxsY2hlY2stYW06Ci0rCi0rbWFpbnRhaW5lci1jbGVhbjogbWFpbnRhaW5lci1jbGVhbi1yZWN1 cnNpdmUKLSsJLXJtIC1mICQoYW1fX0NPTkZJR19ESVNUQ0xFQU5fRklMRVMpCi0rCS1ybSAtcmYg JCh0b3Bfc3JjZGlyKS9hdXRvbTR0ZS5jYWNoZQotKwktcm0gLWYgTWFrZWZpbGUKLSttYWludGFp bmVyLWNsZWFuLWFtOiBkaXN0Y2xlYW4tYW0gbWFpbnRhaW5lci1jbGVhbi1nZW5lcmljCi0rCi0r bW9zdGx5Y2xlYW46IG1vc3RseWNsZWFuLXJlY3Vyc2l2ZQotKwotK21vc3RseWNsZWFuLWFtOiBt b3N0bHljbGVhbi1nZW5lcmljIG1vc3RseWNsZWFuLWxpYnRvb2wKLSsKLStwZGY6IHBkZi1yZWN1 cnNpdmUKLSsKLStwZGYtYW06Ci0rCi0rcHM6IHBzLXJlY3Vyc2l2ZQotKwotK3BzLWFtOgotKwot K3VuaW5zdGFsbC1hbTogdW5pbnN0YWxsLWJpblNDUklQVFMgdW5pbnN0YWxsLWxvY2FsIFwKLSsJ dW5pbnN0YWxsLW00ZGF0YURBVEEgdW5pbnN0YWxsLXBrZ2NvbmZpZ0RBVEEKLSsKLSsuTUFLRTog JChSRUNVUlNJVkVfQ0xFQU5fVEFSR0VUUykgJChSRUNVUlNJVkVfVEFSR0VUUykgaW5zdGFsbC1h bSBcCi0rCWluc3RhbGwtc3RyaXAKLSsKLSsuUEhPTlk6ICQoUkVDVVJTSVZFX0NMRUFOX1RBUkdF VFMpICQoUkVDVVJTSVZFX1RBUkdFVFMpIENUQUdTIEdUQUdTIFwKLSsJYWxsIGFsbC1hbSBhbS0t cmVmcmVzaCBjaGVjayBjaGVjay1hbSBjbGVhbiBjbGVhbi1nZW5lcmljIFwKLSsJY2xlYW4tbGli dG9vbCBjdGFncyBjdGFncy1yZWN1cnNpdmUgZGlzdCBkaXN0LWFsbCBkaXN0LWJ6aXAyIFwKLSsJ ZGlzdC1nemlwIGRpc3QtbHptYSBkaXN0LXNoYXIgZGlzdC10YXJaIGRpc3QtemlwIGRpc3RjaGVj ayBcCi0rCWRpc3RjbGVhbiBkaXN0Y2xlYW4tZ2VuZXJpYyBkaXN0Y2xlYW4tbGlidG9vbCBkaXN0 Y2xlYW4tdGFncyBcCi0rCWRpc3RjbGVhbmNoZWNrIGRpc3RkaXIgZGlzdHVuaW5zdGFsbGNoZWNr IGR2aSBkdmktYW0gaHRtbCBcCi0rCWh0bWwtYW0gaW5mbyBpbmZvLWFtIGluc3RhbGwgaW5zdGFs bC1hbSBpbnN0YWxsLWJpblNDUklQVFMgXAotKwlpbnN0YWxsLWRhdGEgaW5zdGFsbC1kYXRhLWFt IGluc3RhbGwtZHZpIGluc3RhbGwtZHZpLWFtIFwKLSsJaW5zdGFsbC1leGVjIGluc3RhbGwtZXhl Yy1hbSBpbnN0YWxsLWh0bWwgaW5zdGFsbC1odG1sLWFtIFwKLSsJaW5zdGFsbC1pbmZvIGluc3Rh bGwtaW5mby1hbSBpbnN0YWxsLW00ZGF0YURBVEEgaW5zdGFsbC1tYW4gXAotKwlpbnN0YWxsLXBk ZiBpbnN0YWxsLXBkZi1hbSBpbnN0YWxsLXBrZ2NvbmZpZ0RBVEEgaW5zdGFsbC1wcyBcCi0rCWlu c3RhbGwtcHMtYW0gaW5zdGFsbC1zdHJpcCBpbnN0YWxsY2hlY2sgaW5zdGFsbGNoZWNrLWFtIFwK LSsJaW5zdGFsbGRpcnMgaW5zdGFsbGRpcnMtYW0gbWFpbnRhaW5lci1jbGVhbiBcCi0rCW1haW50 YWluZXItY2xlYW4tZ2VuZXJpYyBtb3N0bHljbGVhbiBtb3N0bHljbGVhbi1nZW5lcmljIFwKLSsJ bW9zdGx5Y2xlYW4tbGlidG9vbCBwZGYgcGRmLWFtIHBzIHBzLWFtIHRhZ3MgdGFncy1yZWN1cnNp dmUgXAotKwl1bmluc3RhbGwgdW5pbnN0YWxsLWFtIHVuaW5zdGFsbC1iaW5TQ1JJUFRTIHVuaW5z dGFsbC1sb2NhbCBcCi0rCXVuaW5zdGFsbC1tNGRhdGFEQVRBIHVuaW5zdGFsbC1wa2djb25maWdE QVRBCi0rCi0rQFNFVF9NQUtFQAotKwotKyMgVGFyZ2V0cwotK3VuaW5zdGFsbC1sb2NhbDoKLSsJ cm0gLXJmICQoREVTVERJUikkKGluY2x1ZGVkaXIpL0BQQUNLQUdFQAotKwotK2Rpc3QtaHRtbDoK LSsJJChNQUtFKSAtQyBkb2MgZGlzdC1odG1sCi0rCi0rc25hcHNob3Q6IHNuYXBzaG90LXNyYyBz bmFwc2hvdC1odG1sCi0rCi0rc25hcHNob3Qtc3JjOgotKyAgICAgICAgJChNQUtFKSBkaXN0IGRp c3RkaXI9QFBBQ0tBR0VfVEFSTkFNRUAtYGRhdGUgKyIlWSVtJWQiYAotKwotK3NuYXBzaG90LWh0 bWw6Ci0rCSQoTUFLRSkgLUMgZG9jIGRpc3QtaHRtbCBodG1sX3Rhcm5hbWU9QFBBQ0tBR0VfVEFS TkFNRUAtaHRtbC1kb2MtYGRhdGUgKyIlWSVtJWQiYAotKwotK3VwbG9hZDogdXBsb2FkLXNyYyB1 cGxvYWQtaHRtbAotKwotK3VwbG9hZC1zcmM6IGRpc3QKLSsJQFVQTE9BRF9DT01NQU5EQCBAUEFD S0FHRV9UQVJOQU1FQC1AVkVSU0lPTkAudGFyLmd6IFwKLSsJQFBBQ0tBR0VfVEFSTkFNRUAtQFZF UlNJT05ALnRhci5iejIKLSsKLSt1cGxvYWQtaHRtbDogZGlzdC1odG1sCi0rCUBVUExPQURfQ09N TUFOREAgQFBBQ0tBR0VfVEFSTkFNRUAtaHRtbC1kb2MtQFZFUlNJT05ALnRhci5neiBcCi0rCUBQ QUNLQUdFX1RBUk5BTUVALWh0bWwtZG9jLUBWRVJTSU9OQC50YXIuYnoyCi0rIyBUZWxsIHZlcnNp b25zIFszLjU5LDMuNjMpIG9mIEdOVSBtYWtlIHRvIG5vdCBleHBvcnQgYWxsIHZhcmlhYmxlcy4K LSsjIE90aGVyd2lzZSBhIHN5c3RlbSBsaW1pdCAoZm9yIFN5c1YgYXQgbGVhc3QpIG1heSBiZSBl eGNlZWRlZC4KLSsuTk9FWFBPUlQ6Ci1kaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svbWFuL01h a2VmaWxlLmFtIHNvY2ktMy4wLjBfdHJlcDMwMC9tYW4vTWFrZWZpbGUuYW0KLS0tLSBzb2NpLTMu MC4wXzQtcGFjay9tYW4vTWFrZWZpbGUuYW0JMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAg KzAxMDAKLSsrKyBzb2NpLTMuMC4wX3RyZXAzMDAvbWFuL01ha2VmaWxlLmFtCTIwMDktMDUtMjIg MjI6NTQ6MjIuMDAwMDAwMDAwICswMjAwCi1AQCAtMCwwICsxLDQgQEAKLSsjIE1hbiBwYWdlcwot K21hbl9NQU5TID0gc29jaS1jb25maWcuMQotKwotK0VYVFJBX0RJU1QgPSAkKG1hbl9NQU5TKQot ZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL21hbi9NYWtlZmlsZS5pbiBzb2NpLTMuMC4wX3Ry ZXAzMDAvbWFuL01ha2VmaWxlLmluCi0tLS0gc29jaS0zLjAuMF80LXBhY2svbWFuL01ha2VmaWxl LmluCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCi0rKysgc29jaS0zLjAuMF90 cmVwMzAwL21hbi9NYWtlZmlsZS5pbgkyMDA5LTA1LTIzIDEwOjAyOjAyLjAwMDAwMDAwMCArMDIw MAotQEAgLTAsMCArMSw0NDEgQEAKLSsjIE1ha2VmaWxlLmluIGdlbmVyYXRlZCBieSBhdXRvbWFr ZSAxLjEwLjIgZnJvbSBNYWtlZmlsZS5hbS4KLSsjIEBjb25maWd1cmVfaW5wdXRACi0rCi0rIyBD b3B5cmlnaHQgKEMpIDE5OTQsIDE5OTUsIDE5OTYsIDE5OTcsIDE5OTgsIDE5OTksIDIwMDAsIDIw MDEsIDIwMDIsCi0rIyAyMDAzLCAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4ICBGcmVlIFNv ZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KLSsjIFRoaXMgTWFrZWZpbGUuaW4gaXMgZnJlZSBzb2Z0 d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbgotKyMgZ2l2ZXMgdW5saW1pdGVkIHBl cm1pc3Npb24gdG8gY29weSBhbmQvb3IgZGlzdHJpYnV0ZSBpdCwKLSsjIHdpdGggb3Igd2l0aG91 dCBtb2RpZmljYXRpb25zLCBhcyBsb25nIGFzIHRoaXMgbm90aWNlIGlzIHByZXNlcnZlZC4KLSsK LSsjIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwg YmUgdXNlZnVsLAotKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZLCB0byB0aGUgZXh0ZW50IHBl cm1pdHRlZCBieSBsYXc7IHdpdGhvdXQKLSsjIGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2Yg TUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEKLSsjIFBBUlRJQ1VMQVIgUFVSUE9TRS4K LSsKLStAU0VUX01BS0VACi0rVlBBVEggPSBAc3JjZGlyQAotK3BrZ2RhdGFkaXIgPSAkKGRhdGFk aXIpL0BQQUNLQUdFQAotK3BrZ2xpYmRpciA9ICQobGliZGlyKS9AUEFDS0FHRUAKLStwa2dpbmNs dWRlZGlyID0gJChpbmNsdWRlZGlyKS9AUEFDS0FHRUAKLSthbV9fY2QgPSBDRFBBVEg9IiQke1pT SF9WRVJTSU9OKy59JChQQVRIX1NFUEFSQVRPUikiICYmIGNkCi0raW5zdGFsbF9zaF9EQVRBID0g JChpbnN0YWxsX3NoKSAtYyAtbSA2NDQKLStpbnN0YWxsX3NoX1BST0dSQU0gPSAkKGluc3RhbGxf c2gpIC1jCi0raW5zdGFsbF9zaF9TQ1JJUFQgPSAkKGluc3RhbGxfc2gpIC1jCi0rSU5TVEFMTF9I RUFERVIgPSAkKElOU1RBTExfREFUQSkKLSt0cmFuc2Zvcm0gPSAkKHByb2dyYW1fdHJhbnNmb3Jt X25hbWUpCi0rTk9STUFMX0lOU1RBTEwgPSA6Ci0rUFJFX0lOU1RBTEwgPSA6Ci0rUE9TVF9JTlNU QUxMID0gOgotK05PUk1BTF9VTklOU1RBTEwgPSA6Ci0rUFJFX1VOSU5TVEFMTCA9IDoKLStQT1NU X1VOSU5TVEFMTCA9IDoKLStidWlsZF90cmlwbGV0ID0gQGJ1aWxkQAotK2hvc3RfdHJpcGxldCA9 IEBob3N0QAotK3N1YmRpciA9IG1hbgotK0RJU1RfQ09NTU9OID0gJChzcmNkaXIpL01ha2VmaWxl LmFtICQoc3JjZGlyKS9NYWtlZmlsZS5pbgotK0FDTE9DQUxfTTQgPSAkKHRvcF9zcmNkaXIpL2Fj bG9jYWwubTQKLSthbV9fYWNsb2NhbF9tNF9kZXBzID0gJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhf Ym9vc3QubTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9teXNxbC5tNCBcCi0rCSQodG9w X3NyY2RpcikvY29uZmlnL2F4X29yYWNsZV9vY2kubTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZp Zy9heF9wb3N0Z3Jlc3FsLm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvY3BwdW5pdC5tNCBc Ci0rCSQodG9wX3NyY2RpcikvY29uZmlnL2xpYnRvb2wubTQgXAotKwkkKHRvcF9zcmNkaXIpL2Nv bmZpZy9sdG9wdGlvbnMubTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9sdHN1Z2FyLm00IFwK LSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvbHR2ZXJzaW9uLm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9j b25maWcvbHR+b2Jzb2xldGUubTQgJCh0b3Bfc3JjZGlyKS9jb25maWd1cmUuYWMKLSthbV9fY29u ZmlndXJlX2RlcHMgPSAkKGFtX19hY2xvY2FsX200X2RlcHMpICQoQ09ORklHVVJFX0RFUEVOREVO Q0lFUykgXAotKwkkKEFDTE9DQUxfTTQpCi0rbWtpbnN0YWxsZGlycyA9ICQoaW5zdGFsbF9zaCkg LWQKLStDT05GSUdfSEVBREVSID0gJCh0b3BfYnVpbGRkaXIpL3NvY2kvY29uZmlnLmgKLStDT05G SUdfQ0xFQU5fRklMRVMgPQotK1NPVVJDRVMgPQotK0RJU1RfU09VUkNFUyA9Ci0rbWFuMWRpciA9 ICQobWFuZGlyKS9tYW4xCi0rYW1fX2luc3RhbGxkaXJzID0gIiQoREVTVERJUikkKG1hbjFkaXIp IgotK05ST0ZGID0gbnJvZmYKLStNQU5TID0gJChtYW5fTUFOUykKLStESVNURklMRVMgPSAkKERJ U1RfQ09NTU9OKSAkKERJU1RfU09VUkNFUykgJChURVhJTkZPUykgJChFWFRSQV9ESVNUKQotK0FD TE9DQUwgPSBAQUNMT0NBTEAKLStBTVRBUiA9IEBBTVRBUkAKLStBUiA9IEBBUkAKLStBVVRPQ09O RiA9IEBBVVRPQ09ORkAKLStBVVRPSEVBREVSID0gQEFVVE9IRUFERVJACi0rQVVUT01BS0UgPSBA QVVUT01BS0VACi0rQVdLID0gQEFXS0AKLStCT09TVF9DRkxBR1MgPSBAQk9PU1RfQ0ZMQUdTQAot K0JPT1NUX0RBVEVfVElNRV9MSUIgPSBAQk9PU1RfREFURV9USU1FX0xJQkAKLStCT09TVF9GSUxF U1lTVEVNX0xJQiA9IEBCT09TVF9GSUxFU1lTVEVNX0xJQkAKLStCT09TVF9JT1NUUkVBTVNfTElC ID0gQEJPT1NUX0lPU1RSRUFNU19MSUJACi0rQk9PU1RfTElCUyA9IEBCT09TVF9MSUJTQAotK0JP T1NUX1BST0dSQU1fT1BUSU9OU19MSUIgPSBAQk9PU1RfUFJPR1JBTV9PUFRJT05TX0xJQkAKLStC T09TVF9SRUdFWF9MSUIgPSBAQk9PU1RfUkVHRVhfTElCQAotK0JPT1NUX1NFUklBTElaQVRJT05f TElCID0gQEJPT1NUX1NFUklBTElaQVRJT05fTElCQAotK0JPT1NUX1NJR05BTFNfTElCID0gQEJP T1NUX1NJR05BTFNfTElCQAotK0JPT1NUX1RIUkVBRF9MSUIgPSBAQk9PU1RfVEhSRUFEX0xJQkAK LStCT09TVF9VTklUX1RFU1RfRlJBTUVXT1JLX0xJQiA9IEBCT09TVF9VTklUX1RFU1RfRlJBTUVX T1JLX0xJQkAKLStCT09TVF9WRVJTSU9OID0gQEJPT1NUX1ZFUlNJT05ACi0rQk9PU1RfV1NFUklB TElaQVRJT05fTElCID0gQEJPT1NUX1dTRVJJQUxJWkFUSU9OX0xJQkAKLStDQyA9IEBDQ0AKLStD Q0RFUE1PREUgPSBAQ0NERVBNT0RFQAotK0NGTEFHUyA9IEBDRkxBR1NACi0rQ1BQID0gQENQUEAK LStDUFBGTEFHUyA9IEBDUFBGTEFHU0AKLStDUFBVTklUX0NGTEFHUyA9IEBDUFBVTklUX0NGTEFH U0AKLStDUFBVTklUX0NPTkZJRyA9IEBDUFBVTklUX0NPTkZJR0AKLStDUFBVTklUX0xJQlMgPSBA Q1BQVU5JVF9MSUJTQAotK0NQUFVOSVRfVkVSU0lPTiA9IEBDUFBVTklUX1ZFUlNJT05ACi0rQ1hY ID0gQENYWEAKLStDWFhDUFAgPSBAQ1hYQ1BQQAotK0NYWERFUE1PREUgPSBAQ1hYREVQTU9ERUAK LStDWFhGTEFHUyA9IEBDWFhGTEFHU0AKLStDWUdQQVRIX1cgPSBAQ1lHUEFUSF9XQAotK0RFRlMg PSBAREVGU0AKLStERVBESVIgPSBAREVQRElSQAotK0RTWU1VVElMID0gQERTWU1VVElMQAotK0RV TVBCSU4gPSBARFVNUEJJTkAKLStFQ0hPX0MgPSBARUNIT19DQAotK0VDSE9fTiA9IEBFQ0hPX05A Ci0rRUNIT19UID0gQEVDSE9fVEAKLStFR1JFUCA9IEBFR1JFUEAKLStFWEVFWFQgPSBARVhFRVhU QAotK0ZHUkVQID0gQEZHUkVQQAotK0dFTkVSSUNfTElCUkFSWV9WRVJTSU9OID0gQEdFTkVSSUNf TElCUkFSWV9WRVJTSU9OQAotK0dSRVAgPSBAR1JFUEAKLStJTlNUQUxMID0gQElOU1RBTExACi0r SU5TVEFMTF9EQVRBID0gQElOU1RBTExfREFUQUAKLStJTlNUQUxMX1BST0dSQU0gPSBASU5TVEFM TF9QUk9HUkFNQAotK0lOU1RBTExfU0NSSVBUID0gQElOU1RBTExfU0NSSVBUQAotK0lOU1RBTExf U1RSSVBfUFJPR1JBTSA9IEBJTlNUQUxMX1NUUklQX1BST0dSQU1ACi0rTEQgPSBATERACi0rTERG TEFHUyA9IEBMREZMQUdTQAotK0xJQk9CSlMgPSBATElCT0JKU0AKLStMSUJTID0gQExJQlNACi0r TElCVE9PTCA9IEBMSUJUT09MQAotK0xJUE8gPSBATElQT0AKLStMTl9TID0gQExOX1NACi0rTFRM SUJPQkpTID0gQExUTElCT0JKU0AKLStNQUtFSU5GTyA9IEBNQUtFSU5GT0AKLStNS0RJUl9QID0g QE1LRElSX1BACi0rTVlTUUxfQ0ZMQUdTID0gQE1ZU1FMX0NGTEFHU0AKLStNWVNRTF9DT05GSUcg PSBATVlTUUxfQ09ORklHQAotK01ZU1FMX0RJUlMgPSBATVlTUUxfRElSU0AKLStNWVNRTF9MREZM QUdTID0gQE1ZU1FMX0xERkxBR1NACi0rTVlTUUxfVkVSU0lPTiA9IEBNWVNRTF9WRVJTSU9OQAot K05NID0gQE5NQAotK05NRURJVCA9IEBOTUVESVRACi0rT0JKRFVNUCA9IEBPQkpEVU1QQAotK09C SkVYVCA9IEBPQkpFWFRACi0rT1JBQ0xFX0RJUlMgPSBAT1JBQ0xFX0RJUlNACi0rT1JBQ0xFX09D SV9DRkxBR1MgPSBAT1JBQ0xFX09DSV9DRkxBR1NACi0rT1JBQ0xFX09DSV9MREZMQUdTID0gQE9S QUNMRV9PQ0lfTERGTEFHU0AKLStPUkFDTEVfT0NJX1ZFUlNJT04gPSBAT1JBQ0xFX09DSV9WRVJT SU9OQAotK09UT09MID0gQE9UT09MQAotK09UT09MNjQgPSBAT1RPT0w2NEAKLStQQUNLQUdFID0g QFBBQ0tBR0VACi0rUEFDS0FHRV9CVUdSRVBPUlQgPSBAUEFDS0FHRV9CVUdSRVBPUlRACi0rUEFD S0FHRV9OQU1FID0gQFBBQ0tBR0VfTkFNRUAKLStQQUNLQUdFX1NUUklORyA9IEBQQUNLQUdFX1NU UklOR0AKLStQQUNLQUdFX1RBUk5BTUUgPSBAUEFDS0FHRV9UQVJOQU1FQAotK1BBQ0tBR0VfVkVS U0lPTiA9IEBQQUNLQUdFX1ZFUlNJT05ACi0rUEFUSF9TRVBBUkFUT1IgPSBAUEFUSF9TRVBBUkFU T1JACi0rUEVSTCA9IEBQRVJMQAotK1BHX0NPTkZJRyA9IEBQR19DT05GSUdACi0rUE9TVEdSRVNR TF9DRkxBR1MgPSBAUE9TVEdSRVNRTF9DRkxBR1NACi0rUE9TVEdSRVNRTF9ESVJTID0gQFBPU1RH UkVTUUxfRElSU0AKLStQT1NUR1JFU1FMX0xERkxBR1MgPSBAUE9TVEdSRVNRTF9MREZMQUdTQAot K1BPU1RHUkVTUUxfVkVSU0lPTiA9IEBQT1NUR1JFU1FMX1ZFUlNJT05ACi0rUkFOTElCID0gQFJB TkxJQkAKLStSUE1fUkVMRUFTRSA9IEBSUE1fUkVMRUFTRUAKLStTRUQgPSBAU0VEQAotK1NFVF9N QUtFID0gQFNFVF9NQUtFQAotK1NIRUxMID0gQFNIRUxMQAotK1NPQ0lfSEVBREVSU19CVVJJRUQg PSBAU09DSV9IRUFERVJTX0JVUklFREAKLStTT0NJX01ZU1FMX0hFQURFUlNfQlVSSUVEID0gQFNP Q0lfTVlTUUxfSEVBREVSU19CVVJJRURACi0rU09DSV9QT1NUR1JFU1FMX0hFQURFUlNfQlVSSUVE ID0gQFNPQ0lfUE9TVEdSRVNRTF9IRUFERVJTX0JVUklFREAKLStTVFJJUCA9IEBTVFJJUEAKLStV UExPQURfQ09NTUFORCA9IEBVUExPQURfQ09NTUFOREAKLStWRVJTSU9OID0gQFZFUlNJT05ACi0r YWJzX2J1aWxkZGlyID0gQGFic19idWlsZGRpckAKLSthYnNfc3JjZGlyID0gQGFic19zcmNkaXJA Ci0rYWJzX3RvcF9idWlsZGRpciA9IEBhYnNfdG9wX2J1aWxkZGlyQAotK2Fic190b3Bfc3JjZGly ID0gQGFic190b3Bfc3JjZGlyQAotK2FjX2N0X0NDID0gQGFjX2N0X0NDQAotK2FjX2N0X0NYWCA9 IEBhY19jdF9DWFhACi0rYWNfY3RfRFVNUEJJTiA9IEBhY19jdF9EVU1QQklOQAotK2FtX19pbmNs dWRlID0gQGFtX19pbmNsdWRlQAotK2FtX19sZWFkaW5nX2RvdCA9IEBhbV9fbGVhZGluZ19kb3RA Ci0rYW1fX3F1b3RlID0gQGFtX19xdW90ZUAKLSthbV9fdGFyID0gQGFtX190YXJACi0rYW1fX3Vu dGFyID0gQGFtX191bnRhckAKLStiaW5kaXIgPSBAYmluZGlyQAotK2J1aWxkID0gQGJ1aWxkQAot K2J1aWxkX2FsaWFzID0gQGJ1aWxkX2FsaWFzQAotK2J1aWxkX2NwdSA9IEBidWlsZF9jcHVACi0r YnVpbGRfb3MgPSBAYnVpbGRfb3NACi0rYnVpbGRfdmVuZG9yID0gQGJ1aWxkX3ZlbmRvckAKLSti dWlsZGRpciA9IEBidWlsZGRpckAKLStkYXRhZGlyID0gQGRhdGFkaXJACi0rZGF0YXJvb3RkaXIg PSBAZGF0YXJvb3RkaXJACi0rZGlmZl9vayA9IEBkaWZmX29rQAotK2RvY2RpciA9IEBkb2NkaXJA Ci0rZG94eWdlbl9vayA9IEBkb3h5Z2VuX29rQAotK2R2aWRpciA9IEBkdmlkaXJACi0rZHZpcHNf b2sgPSBAZHZpcHNfb2tACi0rZXhlY19wcmVmaXggPSBAZXhlY19wcmVmaXhACi0rZ3Nfb2sgPSBA Z3Nfb2tACi0raG9zdCA9IEBob3N0QAotK2hvc3RfYWxpYXMgPSBAaG9zdF9hbGlhc0AKLStob3N0 X2NwdSA9IEBob3N0X2NwdUAKLStob3N0X29zID0gQGhvc3Rfb3NACi0raG9zdF92ZW5kb3IgPSBA aG9zdF92ZW5kb3JACi0raHRtbGRpciA9IEBodG1sZGlyQAotK2luY2x1ZGVkaXIgPSBAaW5jbHVk ZWRpckAKLStpbmZvZGlyID0gQGluZm9kaXJACi0raW5zdGFsbF9zaCA9IEBpbnN0YWxsX3NoQAot K2xhdGV4X29rID0gQGxhdGV4X29rQAotK2xpYmRpciA9IEBsaWJkaXJACi0rbGliZXhlY2RpciA9 IEBsaWJleGVjZGlyQAotK2xvY2FsZWRpciA9IEBsb2NhbGVkaXJACi0rbG9jYWxzdGF0ZWRpciA9 IEBsb2NhbHN0YXRlZGlyQAotK2x0X0VDSE8gPSBAbHRfRUNIT0AKLSttYW5kaXIgPSBAbWFuZGly QAotK21rZGlyX3AgPSBAbWtkaXJfcEAKLStvbGRpbmNsdWRlZGlyID0gQG9sZGluY2x1ZGVkaXJA Ci0rcGRmZGlyID0gQHBkZmRpckAKLStwcmVmaXggPSBAcHJlZml4QAotK3Byb2dyYW1fdHJhbnNm b3JtX25hbWUgPSBAcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZUAKLStwc2RpciA9IEBwc2RpckAKLStz YmluZGlyID0gQHNiaW5kaXJACi0rc2VkX29rID0gQHNlZF9va0AKLStzaGFyZWRzdGF0ZWRpciA9 IEBzaGFyZWRzdGF0ZWRpckAKLStzcmNkaXIgPSBAc3JjZGlyQAotK3N5c2NvbmZkaXIgPSBAc3lz Y29uZmRpckAKLSt0YXJnZXRfYWxpYXMgPSBAdGFyZ2V0X2FsaWFzQAotK3RvcF9idWlsZF9wcmVm aXggPSBAdG9wX2J1aWxkX3ByZWZpeEAKLSt0b3BfYnVpbGRkaXIgPSBAdG9wX2J1aWxkZGlyQAot K3RvcF9zcmNkaXIgPSBAdG9wX3NyY2RpckAKLSsKLSsjIE1hbiBwYWdlcwotK21hbl9NQU5TID0g c29jaS1jb25maWcuMQotK0VYVFJBX0RJU1QgPSAkKG1hbl9NQU5TKQotK2FsbDogYWxsLWFtCi0r Ci0rLlNVRkZJWEVTOgotKyQoc3JjZGlyKS9NYWtlZmlsZS5pbjogICQoc3JjZGlyKS9NYWtlZmls ZS5hbSAgJChhbV9fY29uZmlndXJlX2RlcHMpCi0rCUBmb3IgZGVwIGluICQ/OyBkbyBcCi0rCSAg Y2FzZSAnJChhbV9fY29uZmlndXJlX2RlcHMpJyBpbiBcCi0rCSAgICAqJCRkZXAqKSBcCi0rCSAg ICAgICggY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1y ZWZyZXNoICkgXAotKwkgICAgICAgICYmIHsgaWYgdGVzdCAtZiAkQDsgdGhlbiBleGl0IDA7IGVs c2UgYnJlYWs7IGZpOyB9OyBcCi0rCSAgICAgIGV4aXQgMTs7IFwKLSsJICBlc2FjOyBcCi0rCWRv bmU7IFwKLSsJZWNobyAnIGNkICQodG9wX3NyY2RpcikgJiYgJChBVVRPTUFLRSkgLS1nbnUgIG1h bi9NYWtlZmlsZSc7IFwKLSsJY2QgJCh0b3Bfc3JjZGlyKSAmJiBcCi0rCSAgJChBVVRPTUFLRSkg LS1nbnUgIG1hbi9NYWtlZmlsZQotKy5QUkVDSU9VUzogTWFrZWZpbGUKLStNYWtlZmlsZTogJChz cmNkaXIpL01ha2VmaWxlLmluICQodG9wX2J1aWxkZGlyKS9jb25maWcuc3RhdHVzCi0rCUBjYXNl ICckPycgaW4gXAotKwkgICpjb25maWcuc3RhdHVzKikgXAotKwkgICAgY2QgJCh0b3BfYnVpbGRk aXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoOzsgXAotKwkgICopIFwK LSsJICAgIGVjaG8gJyBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChTSEVMTCkgLi9jb25maWcuc3Rh dHVzICQoc3ViZGlyKS8kQCAkKGFtX19kZXBmaWxlc19tYXliZSknOyBcCi0rCSAgICBjZCAkKHRv cF9idWlsZGRpcikgJiYgJChTSEVMTCkgLi9jb25maWcuc3RhdHVzICQoc3ViZGlyKS8kQCAkKGFt X19kZXBmaWxlc19tYXliZSk7OyBcCi0rCWVzYWM7Ci0rCi0rJCh0b3BfYnVpbGRkaXIpL2NvbmZp Zy5zdGF0dXM6ICQodG9wX3NyY2RpcikvY29uZmlndXJlICQoQ09ORklHX1NUQVRVU19ERVBFTkRF TkNJRVMpCi0rCWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBh bS0tcmVmcmVzaAotKwotKyQodG9wX3NyY2RpcikvY29uZmlndXJlOiAgJChhbV9fY29uZmlndXJl X2RlcHMpCi0rCWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBh bS0tcmVmcmVzaAotKyQoQUNMT0NBTF9NNCk6ICAkKGFtX19hY2xvY2FsX200X2RlcHMpCi0rCWNk ICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaAot KwotK21vc3RseWNsZWFuLWxpYnRvb2w6Ci0rCS1ybSAtZiAqLmxvCi0rCi0rY2xlYW4tbGlidG9v bDoKLSsJLXJtIC1yZiAubGlicyBfbGlicwotK2luc3RhbGwtbWFuMTogJChtYW4xX01BTlMpICQo bWFuX01BTlMpCi0rCUAkKE5PUk1BTF9JTlNUQUxMKQotKwl0ZXN0IC16ICIkKG1hbjFkaXIpIiB8 fCAkKE1LRElSX1ApICIkKERFU1RESVIpJChtYW4xZGlyKSIKLSsJQGxpc3Q9JyQobWFuMV9NQU5T KSAkKGRpc3RfbWFuMV9NQU5TKSAkKG5vZGlzdF9tYW4xX01BTlMpJzsgXAotKwlsMj0nJChtYW5f TUFOUykgJChkaXN0X21hbl9NQU5TKSAkKG5vZGlzdF9tYW5fTUFOUyknOyBcCi0rCWZvciBpIGlu ICQkbDI7IGRvIFwKLSsJICBjYXNlICIkJGkiIGluIFwKLSsJICAgICouMSopIGxpc3Q9IiQkbGlz dCAkJGkiIDs7IFwKLSsJICBlc2FjOyBcCi0rCWRvbmU7IFwKLSsJZm9yIGkgaW4gJCRsaXN0OyBk byBcCi0rCSAgaWYgdGVzdCAtZiAkJGk7IHRoZW4gZmlsZT0kJGk7IFwKLSsJICBlbHNlIGZpbGU9 JChzcmNkaXIpLyQkaTsgZmk7IFwKLSsJICBleHQ9YGVjaG8gJCRpIHwgc2VkIC1lICdzL14uKlxc Li8vJ2A7IFwKLSsJICBjYXNlICIkJGV4dCIgaW4gXAotKwkgICAgMSopIDs7IFwKLSsJICAgICop IGV4dD0nMScgOzsgXAotKwkgIGVzYWM7IFwKLSsJICBpbnN0PWBlY2hvICQkaSB8IHNlZCAtZSAn cy9cXC5bMC05YS16XSokJC8vJ2A7IFwKLSsJICBpbnN0PWBlY2hvICQkaW5zdCB8IHNlZCAtZSAn cy9eLipcLy8vJ2A7IFwKLSsJICBpbnN0PWBlY2hvICQkaW5zdCB8IHNlZCAnJCh0cmFuc2Zvcm0p J2AuJCRleHQ7IFwKLSsJICBlY2hvICIgJChJTlNUQUxMX0RBVEEpICckJGZpbGUnICckKERFU1RE SVIpJChtYW4xZGlyKS8kJGluc3QnIjsgXAotKwkgICQoSU5TVEFMTF9EQVRBKSAiJCRmaWxlIiAi JChERVNURElSKSQobWFuMWRpcikvJCRpbnN0IjsgXAotKwlkb25lCi0rdW5pbnN0YWxsLW1hbjE6 Ci0rCUAkKE5PUk1BTF9VTklOU1RBTEwpCi0rCUBsaXN0PSckKG1hbjFfTUFOUykgJChkaXN0X21h bjFfTUFOUykgJChub2Rpc3RfbWFuMV9NQU5TKSc7IFwKLSsJbDI9JyQobWFuX01BTlMpICQoZGlz dF9tYW5fTUFOUykgJChub2Rpc3RfbWFuX01BTlMpJzsgXAotKwlmb3IgaSBpbiAkJGwyOyBkbyBc Ci0rCSAgY2FzZSAiJCRpIiBpbiBcCi0rCSAgICAqLjEqKSBsaXN0PSIkJGxpc3QgJCRpIiA7OyBc Ci0rCSAgZXNhYzsgXAotKwlkb25lOyBcCi0rCWZvciBpIGluICQkbGlzdDsgZG8gXAotKwkgIGV4 dD1gZWNobyAkJGkgfCBzZWQgLWUgJ3MvXi4qXFwuLy8nYDsgXAotKwkgIGNhc2UgIiQkZXh0IiBp biBcCi0rCSAgICAxKikgOzsgXAotKwkgICAgKikgZXh0PScxJyA7OyBcCi0rCSAgZXNhYzsgXAot KwkgIGluc3Q9YGVjaG8gJCRpIHwgc2VkIC1lICdzL1xcLlswLTlhLXpdKiQkLy8nYDsgXAotKwkg IGluc3Q9YGVjaG8gJCRpbnN0IHwgc2VkIC1lICdzL14uKlwvLy8nYDsgXAotKwkgIGluc3Q9YGVj aG8gJCRpbnN0IHwgc2VkICckKHRyYW5zZm9ybSknYC4kJGV4dDsgXAotKwkgIGVjaG8gIiBybSAt ZiAnJChERVNURElSKSQobWFuMWRpcikvJCRpbnN0JyI7IFwKLSsJICBybSAtZiAiJChERVNURElS KSQobWFuMWRpcikvJCRpbnN0IjsgXAotKwlkb25lCi0rdGFnczogVEFHUwotK1RBR1M6Ci0rCi0r Y3RhZ3M6IENUQUdTCi0rQ1RBR1M6Ci0rCi0rCi0rZGlzdGRpcjogJChESVNURklMRVMpCi0rCUBz cmNkaXJzdHJpcD1gZWNobyAiJChzcmNkaXIpIiB8IHNlZCAncy9bXS5bXiQkXFwqXS9cXFxcJi9n J2A7IFwKLSsJdG9wc3JjZGlyc3RyaXA9YGVjaG8gIiQodG9wX3NyY2RpcikiIHwgc2VkICdzL1td LlteJCRcXCpdL1xcXFwmL2cnYDsgXAotKwlsaXN0PSckKERJU1RGSUxFUyknOyBcCi0rCSAgZGlz dF9maWxlcz1gZm9yIGZpbGUgaW4gJCRsaXN0OyBkbyBlY2hvICQkZmlsZTsgZG9uZSB8IFwKLSsJ ICBzZWQgLWUgInN8XiQkc3JjZGlyc3RyaXAvfHw7dCIgXAotKwkgICAgICAtZSAic3xeJCR0b3Bz cmNkaXJzdHJpcC98JCh0b3BfYnVpbGRkaXIpL3w7dCJgOyBcCi0rCWNhc2UgJCRkaXN0X2ZpbGVz IGluIFwKLSsJICAqLyopICQoTUtESVJfUCkgYGVjaG8gIiQkZGlzdF9maWxlcyIgfCBcCi0rCQkJ ICAgc2VkICcvXC8vIWQ7c3xefCQoZGlzdGRpcikvfDtzLC9bXi9dKiQkLCwnIHwgXAotKwkJCSAg IHNvcnQgLXVgIDs7IFwKLSsJZXNhYzsgXAotKwlmb3IgZmlsZSBpbiAkJGRpc3RfZmlsZXM7IGRv IFwKLSsJICBpZiB0ZXN0IC1mICQkZmlsZSB8fCB0ZXN0IC1kICQkZmlsZTsgdGhlbiBkPS47IGVs c2UgZD0kKHNyY2Rpcik7IGZpOyBcCi0rCSAgaWYgdGVzdCAtZCAkJGQvJCRmaWxlOyB0aGVuIFwK LSsJICAgIGRpcj1gZWNobyAiLyQkZmlsZSIgfCBzZWQgLWUgJ3MsL1teL10qJCQsLCdgOyBcCi0r CSAgICBpZiB0ZXN0IC1kICQoc3JjZGlyKS8kJGZpbGUgJiYgdGVzdCAkJGQgIT0gJChzcmNkaXIp OyB0aGVuIFwKLSsJICAgICAgY3AgLXBSICQoc3JjZGlyKS8kJGZpbGUgJChkaXN0ZGlyKSQkZGly IHx8IGV4aXQgMTsgXAotKwkgICAgZmk7IFwKLSsJICAgIGNwIC1wUiAkJGQvJCRmaWxlICQoZGlz dGRpcikkJGRpciB8fCBleGl0IDE7IFwKLSsJICBlbHNlIFwKLSsJICAgIHRlc3QgLWYgJChkaXN0 ZGlyKS8kJGZpbGUgXAotKwkgICAgfHwgY3AgLXAgJCRkLyQkZmlsZSAkKGRpc3RkaXIpLyQkZmls ZSBcCi0rCSAgICB8fCBleGl0IDE7IFwKLSsJICBmaTsgXAotKwlkb25lCi0rY2hlY2stYW06IGFs bC1hbQotK2NoZWNrOiBjaGVjay1hbQotK2FsbC1hbTogTWFrZWZpbGUgJChNQU5TKQotK2luc3Rh bGxkaXJzOgotKwlmb3IgZGlyIGluICIkKERFU1RESVIpJChtYW4xZGlyKSI7IGRvIFwKLSsJICB0 ZXN0IC16ICIkJGRpciIgfHwgJChNS0RJUl9QKSAiJCRkaXIiOyBcCi0rCWRvbmUKLStpbnN0YWxs OiBpbnN0YWxsLWFtCi0raW5zdGFsbC1leGVjOiBpbnN0YWxsLWV4ZWMtYW0KLStpbnN0YWxsLWRh dGE6IGluc3RhbGwtZGF0YS1hbQotK3VuaW5zdGFsbDogdW5pbnN0YWxsLWFtCi0rCi0raW5zdGFs bC1hbTogYWxsLWFtCi0rCUAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBpbnN0YWxsLWV4ZWMtYW0g aW5zdGFsbC1kYXRhLWFtCi0rCi0raW5zdGFsbGNoZWNrOiBpbnN0YWxsY2hlY2stYW0KLStpbnN0 YWxsLXN0cmlwOgotKwkkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBJTlNUQUxMX1BST0dSQU09IiQo SU5TVEFMTF9TVFJJUF9QUk9HUkFNKSIgXAotKwkgIGluc3RhbGxfc2hfUFJPR1JBTT0iJChJTlNU QUxMX1NUUklQX1BST0dSQU0pIiBJTlNUQUxMX1NUUklQX0ZMQUc9LXMgXAotKwkgIGB0ZXN0IC16 ICckKFNUUklQKScgfHwgXAotKwkgICAgZWNobyAiSU5TVEFMTF9QUk9HUkFNX0VOVj1TVFJJUFBS T0c9JyQoU1RSSVApJyJgIGluc3RhbGwKLSttb3N0bHljbGVhbi1nZW5lcmljOgotKwotK2NsZWFu LWdlbmVyaWM6Ci0rCi0rZGlzdGNsZWFuLWdlbmVyaWM6Ci0rCS10ZXN0IC16ICIkKENPTkZJR19D TEVBTl9GSUxFUykiIHx8IHJtIC1mICQoQ09ORklHX0NMRUFOX0ZJTEVTKQotKwotK21haW50YWlu ZXItY2xlYW4tZ2VuZXJpYzoKLSsJQGVjaG8gIlRoaXMgY29tbWFuZCBpcyBpbnRlbmRlZCBmb3Ig bWFpbnRhaW5lcnMgdG8gdXNlIgotKwlAZWNobyAiaXQgZGVsZXRlcyBmaWxlcyB0aGF0IG1heSBy ZXF1aXJlIHNwZWNpYWwgdG9vbHMgdG8gcmVidWlsZC4iCi0rY2xlYW46IGNsZWFuLWFtCi0rCi0r Y2xlYW4tYW06IGNsZWFuLWdlbmVyaWMgY2xlYW4tbGlidG9vbCBtb3N0bHljbGVhbi1hbQotKwot K2Rpc3RjbGVhbjogZGlzdGNsZWFuLWFtCi0rCS1ybSAtZiBNYWtlZmlsZQotK2Rpc3RjbGVhbi1h bTogY2xlYW4tYW0gZGlzdGNsZWFuLWdlbmVyaWMKLSsKLStkdmk6IGR2aS1hbQotKwotK2R2aS1h bToKLSsKLStodG1sOiBodG1sLWFtCi0rCi0raW5mbzogaW5mby1hbQotKwotK2luZm8tYW06Ci0r Ci0raW5zdGFsbC1kYXRhLWFtOiBpbnN0YWxsLW1hbgotKwotK2luc3RhbGwtZHZpOiBpbnN0YWxs LWR2aS1hbQotKwotK2luc3RhbGwtZXhlYy1hbToKLSsKLStpbnN0YWxsLWh0bWw6IGluc3RhbGwt aHRtbC1hbQotKwotK2luc3RhbGwtaW5mbzogaW5zdGFsbC1pbmZvLWFtCi0rCi0raW5zdGFsbC1t YW46IGluc3RhbGwtbWFuMQotKwotK2luc3RhbGwtcGRmOiBpbnN0YWxsLXBkZi1hbQotKwotK2lu c3RhbGwtcHM6IGluc3RhbGwtcHMtYW0KLSsKLStpbnN0YWxsY2hlY2stYW06Ci0rCi0rbWFpbnRh aW5lci1jbGVhbjogbWFpbnRhaW5lci1jbGVhbi1hbQotKwktcm0gLWYgTWFrZWZpbGUKLSttYWlu dGFpbmVyLWNsZWFuLWFtOiBkaXN0Y2xlYW4tYW0gbWFpbnRhaW5lci1jbGVhbi1nZW5lcmljCi0r Ci0rbW9zdGx5Y2xlYW46IG1vc3RseWNsZWFuLWFtCi0rCi0rbW9zdGx5Y2xlYW4tYW06IG1vc3Rs eWNsZWFuLWdlbmVyaWMgbW9zdGx5Y2xlYW4tbGlidG9vbAotKwotK3BkZjogcGRmLWFtCi0rCi0r cGRmLWFtOgotKwotK3BzOiBwcy1hbQotKwotK3BzLWFtOgotKwotK3VuaW5zdGFsbC1hbTogdW5p bnN0YWxsLW1hbgotKwotK3VuaW5zdGFsbC1tYW46IHVuaW5zdGFsbC1tYW4xCi0rCi0rLk1BS0U6 IGluc3RhbGwtYW0gaW5zdGFsbC1zdHJpcAotKwotKy5QSE9OWTogYWxsIGFsbC1hbSBjaGVjayBj aGVjay1hbSBjbGVhbiBjbGVhbi1nZW5lcmljIGNsZWFuLWxpYnRvb2wgXAotKwlkaXN0Y2xlYW4g ZGlzdGNsZWFuLWdlbmVyaWMgZGlzdGNsZWFuLWxpYnRvb2wgZGlzdGRpciBkdmkgXAotKwlkdmkt YW0gaHRtbCBodG1sLWFtIGluZm8gaW5mby1hbSBpbnN0YWxsIGluc3RhbGwtYW0gXAotKwlpbnN0 YWxsLWRhdGEgaW5zdGFsbC1kYXRhLWFtIGluc3RhbGwtZHZpIGluc3RhbGwtZHZpLWFtIFwKLSsJ aW5zdGFsbC1leGVjIGluc3RhbGwtZXhlYy1hbSBpbnN0YWxsLWh0bWwgaW5zdGFsbC1odG1sLWFt IFwKLSsJaW5zdGFsbC1pbmZvIGluc3RhbGwtaW5mby1hbSBpbnN0YWxsLW1hbiBpbnN0YWxsLW1h bjEgXAotKwlpbnN0YWxsLXBkZiBpbnN0YWxsLXBkZi1hbSBpbnN0YWxsLXBzIGluc3RhbGwtcHMt YW0gXAotKwlpbnN0YWxsLXN0cmlwIGluc3RhbGxjaGVjayBpbnN0YWxsY2hlY2stYW0gaW5zdGFs bGRpcnMgXAotKwltYWludGFpbmVyLWNsZWFuIG1haW50YWluZXItY2xlYW4tZ2VuZXJpYyBtb3N0 bHljbGVhbiBcCi0rCW1vc3RseWNsZWFuLWdlbmVyaWMgbW9zdGx5Y2xlYW4tbGlidG9vbCBwZGYg cGRmLWFtIHBzIHBzLWFtIFwKLSsJdW5pbnN0YWxsIHVuaW5zdGFsbC1hbSB1bmluc3RhbGwtbWFu IHVuaW5zdGFsbC1tYW4xCi0rCi0rIyBUZWxsIHZlcnNpb25zIFszLjU5LDMuNjMpIG9mIEdOVSBt YWtlIHRvIG5vdCBleHBvcnQgYWxsIHZhcmlhYmxlcy4KLSsjIE90aGVyd2lzZSBhIHN5c3RlbSBs aW1pdCAoZm9yIFN5c1YgYXQgbGVhc3QpIG1heSBiZSBleGNlZWRlZC4KLSsuTk9FWFBPUlQ6Ci1k aWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svbWFuL3NvY2ktY29uZmlnLjEgc29jaS0zLjAuMF90 cmVwMzAwL21hbi9zb2NpLWNvbmZpZy4xCi0tLS0gc29jaS0zLjAuMF80LXBhY2svbWFuL3NvY2kt Y29uZmlnLjEJMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBzb2NpLTMu MC4wX3RyZXAzMDAvbWFuL3NvY2ktY29uZmlnLjEJMjAwOS0wNS0yMiAyMjo1NDoyMi4wMDAwMDAw MDAgKzAyMDAKLUBAIC0wLDAgKzEsMzkgQEAKLSsuVEggU09DSSAxICIyOCBNYXJjaCAyMDA5Igot Ky5TSCBOQU1FCi0rc29jaS1jb25maWcgLSBzY3JpcHQgdG8gZ2V0IHZlcnNpb24gbnVtYmVyIGFu ZCBjb21waWxlciBmbGFncyBvZiB0aGUgaW5zdGFsbGVkIFNPQ0kgbGlicmFyeQotKy5TSCBTWU5P UFNJUwotKy5CIHNvY2ktY29uZmlnCi0rW1wtXC1wcmVmaXhdICBbXC1cLXZlcnNpb25dIFtcLVwt bGlic10gW1wtXC1jZmxhZ3NdCi0rLlNIIERFU0NSSVBUSU9OCi0rLlBQCi0rXGZJc29jaS1jb25m aWdcZlAgaXMgYSB0b29sIHRoYXQgaXMgdXNlZCB0byBjb25maWd1cmUgdG8gZGV0ZXJtaW5lCi0r dGhlIGNvbXBpbGVyIGFuZCBsaW5rZXIgZmxhZ3MgdGhhdCBzaG91bGQgYmUgdXNlZCB0byBjb21w aWxlCi0rYW5kIGxpbmsgcHJvZ3JhbXMgdGhhdCB1c2UgXGZJU09DSVxmUC4gSXQgaXMgYWxzbyB1 c2VkIGludGVybmFsbHkKLSt0byB0aGUgLm00IG1hY3JvcyBmb3IgR05VIGF1dG9jb25mIHRoYXQg YXJlIGluY2x1ZGVkIHdpdGggXGZJU09DSVxmUC4KLSsuCi0rLlNIIE9QVElPTlMKLSsubAotK1xm SXNvY2ktY29uZmlnXGZQIGFjY2VwdHMgdGhlIGZvbGxvd2luZyBvcHRpb25zOgotKy5UUCA4Ci0r LkIgIFwtXC12ZXJzaW9uCi0rUHJpbnQgdGhlIGN1cnJlbnRseSBpbnN0YWxsZWQgdmVyc2lvbiBv ZiBcZklTT0NJXGZQIG9uIHRoZSBzdGFuZGFyZCBvdXRwdXQuCi0rLlRQIDgKLSsuQiAgXC1cLWxp YnMKLStQcmludCB0aGUgbGlua2VyIGZsYWdzIHRoYXQgYXJlIG5lY2Vzc2FyeSB0byBsaW5rIGEg XGZJU09DSVxmUCBwcm9ncmFtLCB3aXRoIGNibGFzCi0rLlRQIDgKLSsuQiAgXC1cLWNmbGFncwot K1ByaW50IHRoZSBjb21waWxlciBmbGFncyB0aGF0IGFyZSBuZWNlc3NhcnkgdG8gY29tcGlsZSBh IFxmSVNPQ0lcZlAgcHJvZ3JhbS4KLSsuVFAgOAotKy5CICBcLVwtcHJlZml4Ci0rU2hvdyB0aGUg U09DSSBpbnN0YWxsYXRpb24gcHJlZml4LgotKy5TSCBTRUUgQUxTTwotKy5CUiBndGstY29uZmln ICgxKSwKLSsuQlIgZ25vbWUtY29uZmlnICgxKQotKy5TSCBDT1BZUklHSFQKLStDb3B5cmlnaHQg XChjbyAgMjAwOSBEZW5pcyBBcm5hdWQKLSsKLStQZXJtaXNzaW9uIHRvIHVzZSwgY29weSwgbW9k aWZ5LCBhbmQgZGlzdHJpYnV0ZSB0aGlzIHNvZnR3YXJlIGFuZCBpdHMKLStkb2N1bWVudGF0aW9u IGZvciBhbnkgcHVycG9zZSBhbmQgd2l0aG91dCBmZWUgaXMgaGVyZWJ5IGdyYW50ZWQsCi0rcHJv dmlkZWQgdGhhdCB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhcHBlYXIgaW4gYWxsIGNvcGll cyBhbmQgdGhhdAotK2JvdGggdGhhdCBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Np b24gbm90aWNlIGFwcGVhciBpbgotK3N1cHBvcnRpbmcgZG9jdW1lbnRhdGlvbi4KLWRpZmYgLU51 ciBzb2NpLTMuMC4wXzQtcGFjay9ORVdTIHNvY2ktMy4wLjBfdHJlcDMwMC9ORVdTCi0tLS0gc29j aS0zLjAuMF80LXBhY2svTkVXUwkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAot KysrIHNvY2ktMy4wLjBfdHJlcDMwMC9ORVdTCTIwMDktMDUtMjIgMjI6NTQ6MjIuMDAwMDAwMDAw ICswMjAwCi1AQCAtMCwwICsxLDMgQEAKLSsKLSsqIFdlZCBNYXIgMjYgMjAwOSBSUE0gcmVsZWFz ZSBmb3IgdmVyc2lvbiAzLjAuMAotKwotZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kv YmFja2VuZHMvTWFrZWZpbGUuYW0gc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvTWFr ZWZpbGUuYW0KLS0tLSBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL01ha2VmaWxlLmFt CTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCi0rKysgc29jaS0zLjAuMF90cmVw MzAwL3NvY2kvYmFja2VuZHMvTWFrZWZpbGUuYW0JMjAwOS0wNS0yMiAyMjo1NDoxOS4wMDAwMDAw MDAgKzAyMDAKLUBAIC0wLDAgKzEsOSBAQAotK2luY2x1ZGUgJCh0b3Bfc3JjZGlyKS9NYWtlZmls ZS5jb21tb24KLSsKLSsjIyBTb3VyY2UgZGlyZWN0b3J5Ci0rCi0rTUFJTlRBSU5FUkNMRUFORklM RVMgPSBNYWtlZmlsZS5pbgotKwotK1NVQkRJUlMgPSBATVlTUUxfRElSU0AgQFBPU1RHUkVTUUxf RElSU0AgQE9SQUNMRV9ESVJTQAotKwotK0VYVFJBX0RJU1QgPQotZGlmZiAtTnVyIHNvY2ktMy4w LjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvTWFrZWZpbGUuaW4gc29jaS0zLjAuMF90cmVwMzAwL3Nv Y2kvYmFja2VuZHMvTWFrZWZpbGUuaW4KLS0tLSBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tl bmRzL01ha2VmaWxlLmluCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCi0rKysg c29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvTWFrZWZpbGUuaW4JMjAwOS0wNS0yMyAx MDowMjowMi4wMDAwMDAwMDAgKzAyMDAKLUBAIC0wLDAgKzEsNTQ3IEBACi0rIyBNYWtlZmlsZS5p biBnZW5lcmF0ZWQgYnkgYXV0b21ha2UgMS4xMC4yIGZyb20gTWFrZWZpbGUuYW0uCi0rIyBAY29u ZmlndXJlX2lucHV0QAotKwotKyMgQ29weXJpZ2h0IChDKSAxOTk0LCAxOTk1LCAxOTk2LCAxOTk3 LCAxOTk4LCAxOTk5LCAyMDAwLCAyMDAxLCAyMDAyLAotKyMgMjAwMywgMjAwNCwgMjAwNSwgMjAw NiwgMjAwNywgMjAwOCAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCi0rIyBUaGlzIE1h a2VmaWxlLmluIGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24K LSsjIGdpdmVzIHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNvcHkgYW5kL29yIGRpc3RyaWJ1dGUg aXQsCi0rIyB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9ucywgYXMgbG9uZyBhcyB0aGlzIG5v dGljZSBpcyBwcmVzZXJ2ZWQuCi0rCi0rIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4g dGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSsjIGJ1dCBXSVRIT1VUIEFOWSBXQVJS QU5UWSwgdG8gdGhlIGV4dGVudCBwZXJtaXR0ZWQgYnkgbGF3OyB3aXRob3V0Ci0rIyBldmVuIHRo ZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBCi0r IyBQQVJUSUNVTEFSIFBVUlBPU0UuCi0rCi0rQFNFVF9NQUtFQAotK1ZQQVRIID0gQHNyY2RpckAK LStwa2dkYXRhZGlyID0gJChkYXRhZGlyKS9AUEFDS0FHRUAKLStwa2dsaWJkaXIgPSAkKGxpYmRp cikvQFBBQ0tBR0VACi0rcGtnaW5jbHVkZWRpciA9ICQoaW5jbHVkZWRpcikvQFBBQ0tBR0VACi0r YW1fX2NkID0gQ0RQQVRIPSIkJHtaU0hfVkVSU0lPTisufSQoUEFUSF9TRVBBUkFUT1IpIiAmJiBj ZAotK2luc3RhbGxfc2hfREFUQSA9ICQoaW5zdGFsbF9zaCkgLWMgLW0gNjQ0Ci0raW5zdGFsbF9z aF9QUk9HUkFNID0gJChpbnN0YWxsX3NoKSAtYwotK2luc3RhbGxfc2hfU0NSSVBUID0gJChpbnN0 YWxsX3NoKSAtYwotK0lOU1RBTExfSEVBREVSID0gJChJTlNUQUxMX0RBVEEpCi0rdHJhbnNmb3Jt ID0gJChwcm9ncmFtX3RyYW5zZm9ybV9uYW1lKQotK05PUk1BTF9JTlNUQUxMID0gOgotK1BSRV9J TlNUQUxMID0gOgotK1BPU1RfSU5TVEFMTCA9IDoKLStOT1JNQUxfVU5JTlNUQUxMID0gOgotK1BS RV9VTklOU1RBTEwgPSA6Ci0rUE9TVF9VTklOU1RBTEwgPSA6Ci0rYnVpbGRfdHJpcGxldCA9IEBi dWlsZEAKLStob3N0X3RyaXBsZXQgPSBAaG9zdEAKLStESVNUX0NPTU1PTiA9ICQoc3JjZGlyKS9N YWtlZmlsZS5hbSAkKHNyY2RpcikvTWFrZWZpbGUuaW4gXAotKwkkKHRvcF9zcmNkaXIpL01ha2Vm aWxlLmNvbW1vbgotK3N1YmRpciA9IHNvY2kvYmFja2VuZHMKLStBQ0xPQ0FMX000ID0gJCh0b3Bf c3JjZGlyKS9hY2xvY2FsLm00Ci0rYW1fX2FjbG9jYWxfbTRfZGVwcyA9ICQodG9wX3NyY2Rpcikv Y29uZmlnL2F4X2Jvb3N0Lm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfbXlzcWwubTQg XAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9vcmFjbGVfb2NpLm00IFwKLSsJJCh0b3Bfc3Jj ZGlyKS9jb25maWcvYXhfcG9zdGdyZXNxbC5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmlnL2Nw cHVuaXQubTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9saWJ0b29sLm00IFwKLSsJJCh0b3Bf c3JjZGlyKS9jb25maWcvbHRvcHRpb25zLm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvbHRz dWdhci5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmlnL2x0dmVyc2lvbi5tNCBcCi0rCSQodG9w X3NyY2RpcikvY29uZmlnL2x0fm9ic29sZXRlLm00ICQodG9wX3NyY2RpcikvY29uZmlndXJlLmFj Ci0rYW1fX2NvbmZpZ3VyZV9kZXBzID0gJChhbV9fYWNsb2NhbF9tNF9kZXBzKSAkKENPTkZJR1VS RV9ERVBFTkRFTkNJRVMpIFwKLSsJJChBQ0xPQ0FMX000KQotK21raW5zdGFsbGRpcnMgPSAkKGlu c3RhbGxfc2gpIC1kCi0rQ09ORklHX0hFQURFUiA9ICQodG9wX2J1aWxkZGlyKS9zb2NpL2NvbmZp Zy5oCi0rQ09ORklHX0NMRUFOX0ZJTEVTID0KLStTT1VSQ0VTID0KLStESVNUX1NPVVJDRVMgPQot K1JFQ1VSU0lWRV9UQVJHRVRTID0gYWxsLXJlY3Vyc2l2ZSBjaGVjay1yZWN1cnNpdmUgZHZpLXJl Y3Vyc2l2ZSBcCi0rCWh0bWwtcmVjdXJzaXZlIGluZm8tcmVjdXJzaXZlIGluc3RhbGwtZGF0YS1y ZWN1cnNpdmUgXAotKwlpbnN0YWxsLWR2aS1yZWN1cnNpdmUgaW5zdGFsbC1leGVjLXJlY3Vyc2l2 ZSBcCi0rCWluc3RhbGwtaHRtbC1yZWN1cnNpdmUgaW5zdGFsbC1pbmZvLXJlY3Vyc2l2ZSBcCi0r CWluc3RhbGwtcGRmLXJlY3Vyc2l2ZSBpbnN0YWxsLXBzLXJlY3Vyc2l2ZSBpbnN0YWxsLXJlY3Vy c2l2ZSBcCi0rCWluc3RhbGxjaGVjay1yZWN1cnNpdmUgaW5zdGFsbGRpcnMtcmVjdXJzaXZlIHBk Zi1yZWN1cnNpdmUgXAotKwlwcy1yZWN1cnNpdmUgdW5pbnN0YWxsLXJlY3Vyc2l2ZQotK1JFQ1VS U0lWRV9DTEVBTl9UQVJHRVRTID0gbW9zdGx5Y2xlYW4tcmVjdXJzaXZlIGNsZWFuLXJlY3Vyc2l2 ZQlcCi0rICBkaXN0Y2xlYW4tcmVjdXJzaXZlIG1haW50YWluZXItY2xlYW4tcmVjdXJzaXZlCi0r RVRBR1MgPSBldGFncwotK0NUQUdTID0gY3RhZ3MKLStESVNUX1NVQkRJUlMgPSAkKFNVQkRJUlMp Ci0rRElTVEZJTEVTID0gJChESVNUX0NPTU1PTikgJChESVNUX1NPVVJDRVMpICQoVEVYSU5GT1Mp ICQoRVhUUkFfRElTVCkKLStBQ0xPQ0FMID0gQEFDTE9DQUxACi0rQU1UQVIgPSBAQU1UQVJACi0r QVIgPSBAQVJACi0rQVVUT0NPTkYgPSBAQVVUT0NPTkZACi0rQVVUT0hFQURFUiA9IEBBVVRPSEVB REVSQAotK0FVVE9NQUtFID0gQEFVVE9NQUtFQAotK0FXSyA9IEBBV0tACi0rQk9PU1RfQ0ZMQUdT ID0gQEJPT1NUX0NGTEFHU0AKLStCT09TVF9EQVRFX1RJTUVfTElCID0gQEJPT1NUX0RBVEVfVElN RV9MSUJACi0rQk9PU1RfRklMRVNZU1RFTV9MSUIgPSBAQk9PU1RfRklMRVNZU1RFTV9MSUJACi0r Qk9PU1RfSU9TVFJFQU1TX0xJQiA9IEBCT09TVF9JT1NUUkVBTVNfTElCQAotK0JPT1NUX0xJQlMg PSBAQk9PU1RfTElCU0AKLStCT09TVF9QUk9HUkFNX09QVElPTlNfTElCID0gQEJPT1NUX1BST0dS QU1fT1BUSU9OU19MSUJACi0rQk9PU1RfUkVHRVhfTElCID0gQEJPT1NUX1JFR0VYX0xJQkAKLStC T09TVF9TRVJJQUxJWkFUSU9OX0xJQiA9IEBCT09TVF9TRVJJQUxJWkFUSU9OX0xJQkAKLStCT09T VF9TSUdOQUxTX0xJQiA9IEBCT09TVF9TSUdOQUxTX0xJQkAKLStCT09TVF9USFJFQURfTElCID0g QEJPT1NUX1RIUkVBRF9MSUJACi0rQk9PU1RfVU5JVF9URVNUX0ZSQU1FV09SS19MSUIgPSBAQk9P U1RfVU5JVF9URVNUX0ZSQU1FV09SS19MSUJACi0rQk9PU1RfVkVSU0lPTiA9IEBCT09TVF9WRVJT SU9OQAotK0JPT1NUX1dTRVJJQUxJWkFUSU9OX0xJQiA9IEBCT09TVF9XU0VSSUFMSVpBVElPTl9M SUJACi0rQ0MgPSBAQ0NACi0rQ0NERVBNT0RFID0gQENDREVQTU9ERUAKLStDRkxBR1MgPSBAQ0ZM QUdTQAotK0NQUCA9IEBDUFBACi0rQ1BQRkxBR1MgPSBAQ1BQRkxBR1NACi0rQ1BQVU5JVF9DRkxB R1MgPSBAQ1BQVU5JVF9DRkxBR1NACi0rQ1BQVU5JVF9DT05GSUcgPSBAQ1BQVU5JVF9DT05GSUdA Ci0rQ1BQVU5JVF9MSUJTID0gQENQUFVOSVRfTElCU0AKLStDUFBVTklUX1ZFUlNJT04gPSBAQ1BQ VU5JVF9WRVJTSU9OQAotK0NYWCA9IEBDWFhACi0rQ1hYQ1BQID0gQENYWENQUEAKLStDWFhERVBN T0RFID0gQENYWERFUE1PREVACi0rQ1hYRkxBR1MgPSBAQ1hYRkxBR1NACi0rQ1lHUEFUSF9XID0g QENZR1BBVEhfV0AKLStERUZTID0gQERFRlNACi0rREVQRElSID0gQERFUERJUkAKLStEU1lNVVRJ TCA9IEBEU1lNVVRJTEAKLStEVU1QQklOID0gQERVTVBCSU5ACi0rRUNIT19DID0gQEVDSE9fQ0AK LStFQ0hPX04gPSBARUNIT19OQAotK0VDSE9fVCA9IEBFQ0hPX1RACi0rRUdSRVAgPSBARUdSRVBA Ci0rRVhFRVhUID0gQEVYRUVYVEAKLStGR1JFUCA9IEBGR1JFUEAKLStHRU5FUklDX0xJQlJBUllf VkVSU0lPTiA9IEBHRU5FUklDX0xJQlJBUllfVkVSU0lPTkAKLStHUkVQID0gQEdSRVBACi0rSU5T VEFMTCA9IEBJTlNUQUxMQAotK0lOU1RBTExfREFUQSA9IEBJTlNUQUxMX0RBVEFACi0rSU5TVEFM TF9QUk9HUkFNID0gQElOU1RBTExfUFJPR1JBTUAKLStJTlNUQUxMX1NDUklQVCA9IEBJTlNUQUxM X1NDUklQVEAKLStJTlNUQUxMX1NUUklQX1BST0dSQU0gPSBASU5TVEFMTF9TVFJJUF9QUk9HUkFN QAotK0xEID0gQExEQAotK0xERkxBR1MgPSBATERGTEFHU0AKLStMSUJPQkpTID0gQExJQk9CSlNA Ci0rTElCUyA9IEBMSUJTQAotK0xJQlRPT0wgPSBATElCVE9PTEAKLStMSVBPID0gQExJUE9ACi0r TE5fUyA9IEBMTl9TQAotK0xUTElCT0JKUyA9IEBMVExJQk9CSlNACi0rTUFLRUlORk8gPSBATUFL RUlORk9ACi0rTUtESVJfUCA9IEBNS0RJUl9QQAotK01ZU1FMX0NGTEFHUyA9IEBNWVNRTF9DRkxB R1NACi0rTVlTUUxfQ09ORklHID0gQE1ZU1FMX0NPTkZJR0AKLStNWVNRTF9ESVJTID0gQE1ZU1FM X0RJUlNACi0rTVlTUUxfTERGTEFHUyA9IEBNWVNRTF9MREZMQUdTQAotK01ZU1FMX1ZFUlNJT04g PSBATVlTUUxfVkVSU0lPTkAKLStOTSA9IEBOTUAKLStOTUVESVQgPSBATk1FRElUQAotK09CSkRV TVAgPSBAT0JKRFVNUEAKLStPQkpFWFQgPSBAT0JKRVhUQAotK09SQUNMRV9ESVJTID0gQE9SQUNM RV9ESVJTQAotK09SQUNMRV9PQ0lfQ0ZMQUdTID0gQE9SQUNMRV9PQ0lfQ0ZMQUdTQAotK09SQUNM RV9PQ0lfTERGTEFHUyA9IEBPUkFDTEVfT0NJX0xERkxBR1NACi0rT1JBQ0xFX09DSV9WRVJTSU9O ID0gQE9SQUNMRV9PQ0lfVkVSU0lPTkAKLStPVE9PTCA9IEBPVE9PTEAKLStPVE9PTDY0ID0gQE9U T09MNjRACi0rUEFDS0FHRSA9IEBQQUNLQUdFQAotK1BBQ0tBR0VfQlVHUkVQT1JUID0gQFBBQ0tB R0VfQlVHUkVQT1JUQAotK1BBQ0tBR0VfTkFNRSA9IEBQQUNLQUdFX05BTUVACi0rUEFDS0FHRV9T VFJJTkcgPSBAUEFDS0FHRV9TVFJJTkdACi0rUEFDS0FHRV9UQVJOQU1FID0gQFBBQ0tBR0VfVEFS TkFNRUAKLStQQUNLQUdFX1ZFUlNJT04gPSBAUEFDS0FHRV9WRVJTSU9OQAotK1BBVEhfU0VQQVJB VE9SID0gQFBBVEhfU0VQQVJBVE9SQAotK1BFUkwgPSBAUEVSTEAKLStQR19DT05GSUcgPSBAUEdf Q09ORklHQAotK1BPU1RHUkVTUUxfQ0ZMQUdTID0gQFBPU1RHUkVTUUxfQ0ZMQUdTQAotK1BPU1RH UkVTUUxfRElSUyA9IEBQT1NUR1JFU1FMX0RJUlNACi0rUE9TVEdSRVNRTF9MREZMQUdTID0gQFBP U1RHUkVTUUxfTERGTEFHU0AKLStQT1NUR1JFU1FMX1ZFUlNJT04gPSBAUE9TVEdSRVNRTF9WRVJT SU9OQAotK1JBTkxJQiA9IEBSQU5MSUJACi0rUlBNX1JFTEVBU0UgPSBAUlBNX1JFTEVBU0VACi0r U0VEID0gQFNFREAKLStTRVRfTUFLRSA9IEBTRVRfTUFLRUAKLStTSEVMTCA9IEBTSEVMTEAKLStT T0NJX0hFQURFUlNfQlVSSUVEID0gQFNPQ0lfSEVBREVSU19CVVJJRURACi0rU09DSV9NWVNRTF9I RUFERVJTX0JVUklFRCA9IEBTT0NJX01ZU1FMX0hFQURFUlNfQlVSSUVEQAotK1NPQ0lfUE9TVEdS RVNRTF9IRUFERVJTX0JVUklFRCA9IEBTT0NJX1BPU1RHUkVTUUxfSEVBREVSU19CVVJJRURACi0r U1RSSVAgPSBAU1RSSVBACi0rVVBMT0FEX0NPTU1BTkQgPSBAVVBMT0FEX0NPTU1BTkRACi0rVkVS U0lPTiA9IEBWRVJTSU9OQAotK2Fic19idWlsZGRpciA9IEBhYnNfYnVpbGRkaXJACi0rYWJzX3Ny Y2RpciA9IEBhYnNfc3JjZGlyQAotK2Fic190b3BfYnVpbGRkaXIgPSBAYWJzX3RvcF9idWlsZGRp ckAKLSthYnNfdG9wX3NyY2RpciA9IEBhYnNfdG9wX3NyY2RpckAKLSthY19jdF9DQyA9IEBhY19j dF9DQ0AKLSthY19jdF9DWFggPSBAYWNfY3RfQ1hYQAotK2FjX2N0X0RVTVBCSU4gPSBAYWNfY3Rf RFVNUEJJTkAKLSthbV9faW5jbHVkZSA9IEBhbV9faW5jbHVkZUAKLSthbV9fbGVhZGluZ19kb3Qg PSBAYW1fX2xlYWRpbmdfZG90QAotK2FtX19xdW90ZSA9IEBhbV9fcXVvdGVACi0rYW1fX3RhciA9 IEBhbV9fdGFyQAotK2FtX191bnRhciA9IEBhbV9fdW50YXJACi0rYmluZGlyID0gQGJpbmRpckAK LStidWlsZCA9IEBidWlsZEAKLStidWlsZF9hbGlhcyA9IEBidWlsZF9hbGlhc0AKLStidWlsZF9j cHUgPSBAYnVpbGRfY3B1QAotK2J1aWxkX29zID0gQGJ1aWxkX29zQAotK2J1aWxkX3ZlbmRvciA9 IEBidWlsZF92ZW5kb3JACi0rYnVpbGRkaXIgPSBAYnVpbGRkaXJACi0rZGF0YWRpciA9IEBkYXRh ZGlyQAotK2RhdGFyb290ZGlyID0gQGRhdGFyb290ZGlyQAotK2RpZmZfb2sgPSBAZGlmZl9va0AK LStkb2NkaXIgPSBAZG9jZGlyQAotK2RveHlnZW5fb2sgPSBAZG94eWdlbl9va0AKLStkdmlkaXIg PSBAZHZpZGlyQAotK2R2aXBzX29rID0gQGR2aXBzX29rQAotK2V4ZWNfcHJlZml4ID0gQGV4ZWNf cHJlZml4QAotK2dzX29rID0gQGdzX29rQAotK2hvc3QgPSBAaG9zdEAKLStob3N0X2FsaWFzID0g QGhvc3RfYWxpYXNACi0raG9zdF9jcHUgPSBAaG9zdF9jcHVACi0raG9zdF9vcyA9IEBob3N0X29z QAotK2hvc3RfdmVuZG9yID0gQGhvc3RfdmVuZG9yQAotK2h0bWxkaXIgPSBAaHRtbGRpckAKLStp bmNsdWRlZGlyID0gQGluY2x1ZGVkaXJACi0raW5mb2RpciA9IEBpbmZvZGlyQAotK2luc3RhbGxf c2ggPSBAaW5zdGFsbF9zaEAKLStsYXRleF9vayA9IEBsYXRleF9va0AKLStsaWJkaXIgPSBAbGli ZGlyQAotK2xpYmV4ZWNkaXIgPSBAbGliZXhlY2RpckAKLStsb2NhbGVkaXIgPSBAbG9jYWxlZGly QAotK2xvY2Fsc3RhdGVkaXIgPSBAbG9jYWxzdGF0ZWRpckAKLStsdF9FQ0hPID0gQGx0X0VDSE9A Ci0rbWFuZGlyID0gQG1hbmRpckAKLStta2Rpcl9wID0gQG1rZGlyX3BACi0rb2xkaW5jbHVkZWRp ciA9IEBvbGRpbmNsdWRlZGlyQAotK3BkZmRpciA9IEBwZGZkaXJACi0rcHJlZml4ID0gQHByZWZp eEAKLStwcm9ncmFtX3RyYW5zZm9ybV9uYW1lID0gQHByb2dyYW1fdHJhbnNmb3JtX25hbWVACi0r cHNkaXIgPSBAcHNkaXJACi0rc2JpbmRpciA9IEBzYmluZGlyQAotK3NlZF9vayA9IEBzZWRfb2tA Ci0rc2hhcmVkc3RhdGVkaXIgPSBAc2hhcmVkc3RhdGVkaXJACi0rc3JjZGlyID0gQHNyY2RpckAK LStzeXNjb25mZGlyID0gQHN5c2NvbmZkaXJACi0rdGFyZ2V0X2FsaWFzID0gQHRhcmdldF9hbGlh c0AKLSt0b3BfYnVpbGRfcHJlZml4ID0gQHRvcF9idWlsZF9wcmVmaXhACi0rdG9wX2J1aWxkZGly ID0gQHRvcF9idWlsZGRpckAKLSt0b3Bfc3JjZGlyID0gQHRvcF9zcmNkaXJACi0rQU1fQ1BQRkxB R1MgPSAtSSQodG9wX2J1aWxkZGlyKSAtSSQodG9wX3NyY2RpcikKLStNQUlOVEFJTkVSQ0xFQU5G SUxFUyA9IE1ha2VmaWxlLmluCi0rU1VCRElSUyA9IEBNWVNRTF9ESVJTQCBAUE9TVEdSRVNRTF9E SVJTQCBAT1JBQ0xFX0RJUlNACi0rRVhUUkFfRElTVCA9IAotK2FsbDogYWxsLXJlY3Vyc2l2ZQot KwotKy5TVUZGSVhFUzoKLSskKHNyY2RpcikvTWFrZWZpbGUuaW46ICAkKHNyY2RpcikvTWFrZWZp bGUuYW0gJCh0b3Bfc3JjZGlyKS9NYWtlZmlsZS5jb21tb24gJChhbV9fY29uZmlndXJlX2RlcHMp Ci0rCUBmb3IgZGVwIGluICQ/OyBkbyBcCi0rCSAgY2FzZSAnJChhbV9fY29uZmlndXJlX2RlcHMp JyBpbiBcCi0rCSAgICAqJCRkZXAqKSBcCi0rCSAgICAgICggY2QgJCh0b3BfYnVpbGRkaXIpICYm ICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoICkgXAotKwkgICAgICAgICYmIHsg aWYgdGVzdCAtZiAkQDsgdGhlbiBleGl0IDA7IGVsc2UgYnJlYWs7IGZpOyB9OyBcCi0rCSAgICAg IGV4aXQgMTs7IFwKLSsJICBlc2FjOyBcCi0rCWRvbmU7IFwKLSsJZWNobyAnIGNkICQodG9wX3Ny Y2RpcikgJiYgJChBVVRPTUFLRSkgLS1nbnUgIHNvY2kvYmFja2VuZHMvTWFrZWZpbGUnOyBcCi0r CWNkICQodG9wX3NyY2RpcikgJiYgXAotKwkgICQoQVVUT01BS0UpIC0tZ251ICBzb2NpL2JhY2tl bmRzL01ha2VmaWxlCi0rLlBSRUNJT1VTOiBNYWtlZmlsZQotK01ha2VmaWxlOiAkKHNyY2Rpcikv TWFrZWZpbGUuaW4gJCh0b3BfYnVpbGRkaXIpL2NvbmZpZy5zdGF0dXMKLSsJQGNhc2UgJyQ/JyBp biBcCi0rCSAgKmNvbmZpZy5zdGF0dXMqKSBcCi0rCSAgICBjZCAkKHRvcF9idWlsZGRpcikgJiYg JChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2g7OyBcCi0rCSAgKikgXAotKwkgICAg ZWNobyAnIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKFNIRUxMKSAuL2NvbmZpZy5zdGF0dXMgJChz dWJkaXIpLyRAICQoYW1fX2RlcGZpbGVzX21heWJlKSc7IFwKLSsJICAgIGNkICQodG9wX2J1aWxk ZGlyKSAmJiAkKFNIRUxMKSAuL2NvbmZpZy5zdGF0dXMgJChzdWJkaXIpLyRAICQoYW1fX2RlcGZp bGVzX21heWJlKTs7IFwKLSsJZXNhYzsKLSsKLSskKHRvcF9idWlsZGRpcikvY29uZmlnLnN0YXR1 czogJCh0b3Bfc3JjZGlyKS9jb25maWd1cmUgJChDT05GSUdfU1RBVFVTX0RFUEVOREVOQ0lFUykK LSsJY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZy ZXNoCi0rCi0rJCh0b3Bfc3JjZGlyKS9jb25maWd1cmU6ICAkKGFtX19jb25maWd1cmVfZGVwcykK LSsJY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZy ZXNoCi0rJChBQ0xPQ0FMX000KTogICQoYW1fX2FjbG9jYWxfbTRfZGVwcykKLSsJY2QgJCh0b3Bf YnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCi0rCi0rbW9z dGx5Y2xlYW4tbGlidG9vbDoKLSsJLXJtIC1mICoubG8KLSsKLStjbGVhbi1saWJ0b29sOgotKwkt cm0gLXJmIC5saWJzIF9saWJzCi0rCi0rIyBUaGlzIGRpcmVjdG9yeSdzIHN1YmRpcmVjdG9yaWVz IGFyZSBtb3N0bHkgaW5kZXBlbmRlbnQ7IHlvdSBjYW4gY2QKLSsjIGludG8gdGhlbSBhbmQgcnVu IGBtYWtlJyB3aXRob3V0IGdvaW5nIHRocm91Z2ggdGhpcyBNYWtlZmlsZS4KLSsjIFRvIGNoYW5n ZSB0aGUgdmFsdWVzIG9mIGBtYWtlJyB2YXJpYWJsZXM6IGluc3RlYWQgb2YgZWRpdGluZyBNYWtl ZmlsZXMsCi0rIyAoMSkgaWYgdGhlIHZhcmlhYmxlIGlzIHNldCBpbiBgY29uZmlnLnN0YXR1cycs IGVkaXQgYGNvbmZpZy5zdGF0dXMnCi0rIyAgICAgKHdoaWNoIHdpbGwgY2F1c2UgdGhlIE1ha2Vm aWxlcyB0byBiZSByZWdlbmVyYXRlZCB3aGVuIHlvdSBydW4gYG1ha2UnKTsKLSsjICgyKSBvdGhl cndpc2UsIHBhc3MgdGhlIGRlc2lyZWQgdmFsdWVzIG9uIHRoZSBgbWFrZScgY29tbWFuZCBsaW5l LgotKyQoUkVDVVJTSVZFX1RBUkdFVFMpOgotKwlAZmFpbGNvbT0nZXhpdCAxJzsgXAotKwlmb3Ig ZiBpbiB4ICQkTUFLRUZMQUdTOyBkbyBcCi0rCSAgY2FzZSAkJGYgaW4gXAotKwkgICAgKj0qIHwg LS1bIWtdKik7OyBcCi0rCSAgICAqayopIGZhaWxjb209J2ZhaWw9eWVzJzs7IFwKLSsJICBlc2Fj OyBcCi0rCWRvbmU7IFwKLSsJZG90X3NlZW49bm87IFwKLSsJdGFyZ2V0PWBlY2hvICRAIHwgc2Vk IHMvLXJlY3Vyc2l2ZS8vYDsgXAotKwlsaXN0PSckKFNVQkRJUlMpJzsgZm9yIHN1YmRpciBpbiAk JGxpc3Q7IGRvIFwKLSsJICBlY2hvICJNYWtpbmcgJCR0YXJnZXQgaW4gJCRzdWJkaXIiOyBcCi0r CSAgaWYgdGVzdCAiJCRzdWJkaXIiID0gIi4iOyB0aGVuIFwKLSsJICAgIGRvdF9zZWVuPXllczsg XAotKwkgICAgbG9jYWxfdGFyZ2V0PSIkJHRhcmdldC1hbSI7IFwKLSsJICBlbHNlIFwKLSsJICAg IGxvY2FsX3RhcmdldD0iJCR0YXJnZXQiOyBcCi0rCSAgZmk7IFwKLSsJICAoY2QgJCRzdWJkaXIg JiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgJCRsb2NhbF90YXJnZXQpIFwKLSsJICB8fCBldmFs ICQkZmFpbGNvbTsgXAotKwlkb25lOyBcCi0rCWlmIHRlc3QgIiQkZG90X3NlZW4iID0gIm5vIjsg dGhlbiBcCi0rCSAgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgIiQkdGFyZ2V0LWFtIiB8fCBleGl0 IDE7IFwKLSsJZmk7IHRlc3QgLXogIiQkZmFpbCIKLSsKLSskKFJFQ1VSU0lWRV9DTEVBTl9UQVJH RVRTKToKLSsJQGZhaWxjb209J2V4aXQgMSc7IFwKLSsJZm9yIGYgaW4geCAkJE1BS0VGTEFHUzsg ZG8gXAotKwkgIGNhc2UgJCRmIGluIFwKLSsJICAgICo9KiB8IC0tWyFrXSopOzsgXAotKwkgICAg KmsqKSBmYWlsY29tPSdmYWlsPXllcyc7OyBcCi0rCSAgZXNhYzsgXAotKwlkb25lOyBcCi0rCWRv dF9zZWVuPW5vOyBcCi0rCWNhc2UgIiRAIiBpbiBcCi0rCSAgZGlzdGNsZWFuLSogfCBtYWludGFp bmVyLWNsZWFuLSopIGxpc3Q9JyQoRElTVF9TVUJESVJTKScgOzsgXAotKwkgICopIGxpc3Q9JyQo U1VCRElSUyknIDs7IFwKLSsJZXNhYzsgXAotKwlyZXY9Jyc7IGZvciBzdWJkaXIgaW4gJCRsaXN0 OyBkbyBcCi0rCSAgaWYgdGVzdCAiJCRzdWJkaXIiID0gIi4iOyB0aGVuIDo7IGVsc2UgXAotKwkg ICAgcmV2PSIkJHN1YmRpciAkJHJldiI7IFwKLSsJICBmaTsgXAotKwlkb25lOyBcCi0rCXJldj0i JCRyZXYgLiI7IFwKLSsJdGFyZ2V0PWBlY2hvICRAIHwgc2VkIHMvLXJlY3Vyc2l2ZS8vYDsgXAot Kwlmb3Igc3ViZGlyIGluICQkcmV2OyBkbyBcCi0rCSAgZWNobyAiTWFraW5nICQkdGFyZ2V0IGlu ICQkc3ViZGlyIjsgXAotKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9ICIuIjsgdGhlbiBcCi0rCSAg ICBsb2NhbF90YXJnZXQ9IiQkdGFyZ2V0LWFtIjsgXAotKwkgIGVsc2UgXAotKwkgICAgbG9jYWxf dGFyZ2V0PSIkJHRhcmdldCI7IFwKLSsJICBmaTsgXAotKwkgIChjZCAkJHN1YmRpciAmJiAkKE1B S0UpICQoQU1fTUFLRUZMQUdTKSAkJGxvY2FsX3RhcmdldCkgXAotKwkgIHx8IGV2YWwgJCRmYWls Y29tOyBcCi0rCWRvbmUgJiYgdGVzdCAteiAiJCRmYWlsIgotK3RhZ3MtcmVjdXJzaXZlOgotKwls aXN0PSckKFNVQkRJUlMpJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKLSsJICB0ZXN0ICIk JHN1YmRpciIgPSAuIHx8IChjZCAkJHN1YmRpciAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSB0 YWdzKTsgXAotKwlkb25lCi0rY3RhZ3MtcmVjdXJzaXZlOgotKwlsaXN0PSckKFNVQkRJUlMpJzsg Zm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKLSsJICB0ZXN0ICIkJHN1YmRpciIgPSAuIHx8IChj ZCAkJHN1YmRpciAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBjdGFncyk7IFwKLSsJZG9uZQot KwotK0lEOiAkKEhFQURFUlMpICQoU09VUkNFUykgJChMSVNQKSAkKFRBR1NfRklMRVMpCi0rCWxp c3Q9JyQoU09VUkNFUykgJChIRUFERVJTKSAkKExJU1ApICQoVEFHU19GSUxFUyknOyBcCi0rCXVu aXF1ZT1gZm9yIGkgaW4gJCRsaXN0OyBkbyBcCi0rCSAgICBpZiB0ZXN0IC1mICIkJGkiOyB0aGVu IGVjaG8gJCRpOyBlbHNlIGVjaG8gJChzcmNkaXIpLyQkaTsgZmk7IFwKLSsJICBkb25lIHwgXAot KwkgICQoQVdLKSAneyBmaWxlc1skJDBdID0gMTsgbm9uZW1wdHkgPSAxOyB9IFwKLSsJICAgICAg RU5EIHsgaWYgKG5vbmVtcHR5KSB7IGZvciAoaSBpbiBmaWxlcykgcHJpbnQgaTsgfTsgfSdgOyBc Ci0rCW1raWQgLWZJRCAkJHVuaXF1ZQotK3RhZ3M6IFRBR1MKLSsKLStUQUdTOiB0YWdzLXJlY3Vy c2l2ZSAkKEhFQURFUlMpICQoU09VUkNFUykgICQoVEFHU19ERVBFTkRFTkNJRVMpIFwKLSsJCSQo VEFHU19GSUxFUykgJChMSVNQKQotKwl0YWdzPTsgXAotKwloZXJlPWBwd2RgOyBcCi0rCWlmICgk KEVUQUdTKSAtLWV0YWdzLWluY2x1ZGUgLS12ZXJzaW9uKSA+L2Rldi9udWxsIDI+JjE7IHRoZW4g XAotKwkgIGluY2x1ZGVfb3B0aW9uPS0tZXRhZ3MtaW5jbHVkZTsgXAotKwkgIGVtcHR5X2ZpeD0u OyBcCi0rCWVsc2UgXAotKwkgIGluY2x1ZGVfb3B0aW9uPS0taW5jbHVkZTsgXAotKwkgIGVtcHR5 X2ZpeD07IFwKLSsJZmk7IFwKLSsJbGlzdD0nJChTVUJESVJTKSc7IGZvciBzdWJkaXIgaW4gJCRs aXN0OyBkbyBcCi0rCSAgaWYgdGVzdCAiJCRzdWJkaXIiID0gLjsgdGhlbiA6OyBlbHNlIFwKLSsJ ICAgIHRlc3QgISAtZiAkJHN1YmRpci9UQUdTIHx8IFwKLSsJICAgICAgdGFncz0iJCR0YWdzICQk aW5jbHVkZV9vcHRpb249JCRoZXJlLyQkc3ViZGlyL1RBR1MiOyBcCi0rCSAgZmk7IFwKLSsJZG9u ZTsgXAotKwlsaXN0PSckKFNPVVJDRVMpICQoSEVBREVSUykgICQoTElTUCkgJChUQUdTX0ZJTEVT KSc7IFwKLSsJdW5pcXVlPWBmb3IgaSBpbiAkJGxpc3Q7IGRvIFwKLSsJICAgIGlmIHRlc3QgLWYg IiQkaSI7IHRoZW4gZWNobyAkJGk7IGVsc2UgZWNobyAkKHNyY2RpcikvJCRpOyBmaTsgXAotKwkg IGRvbmUgfCBcCi0rCSAgJChBV0spICd7IGZpbGVzWyQkMF0gPSAxOyBub25lbXB0eSA9IDE7IH0g XAotKwkgICAgICBFTkQgeyBpZiAobm9uZW1wdHkpIHsgZm9yIChpIGluIGZpbGVzKSBwcmludCBp OyB9OyB9J2A7IFwKLSsJaWYgdGVzdCAteiAiJChFVEFHU19BUkdTKSQkdGFncyQkdW5pcXVlIjsg dGhlbiA6OyBlbHNlIFwKLSsJICB0ZXN0IC1uICIkJHVuaXF1ZSIgfHwgdW5pcXVlPSQkZW1wdHlf Zml4OyBcCi0rCSAgJChFVEFHUykgJChFVEFHU0ZMQUdTKSAkKEFNX0VUQUdTRkxBR1MpICQoRVRB R1NfQVJHUykgXAotKwkgICAgJCR0YWdzICQkdW5pcXVlOyBcCi0rCWZpCi0rY3RhZ3M6IENUQUdT Ci0rQ1RBR1M6IGN0YWdzLXJlY3Vyc2l2ZSAkKEhFQURFUlMpICQoU09VUkNFUykgICQoVEFHU19E RVBFTkRFTkNJRVMpIFwKLSsJCSQoVEFHU19GSUxFUykgJChMSVNQKQotKwl0YWdzPTsgXAotKwls aXN0PSckKFNPVVJDRVMpICQoSEVBREVSUykgICQoTElTUCkgJChUQUdTX0ZJTEVTKSc7IFwKLSsJ dW5pcXVlPWBmb3IgaSBpbiAkJGxpc3Q7IGRvIFwKLSsJICAgIGlmIHRlc3QgLWYgIiQkaSI7IHRo ZW4gZWNobyAkJGk7IGVsc2UgZWNobyAkKHNyY2RpcikvJCRpOyBmaTsgXAotKwkgIGRvbmUgfCBc Ci0rCSAgJChBV0spICd7IGZpbGVzWyQkMF0gPSAxOyBub25lbXB0eSA9IDE7IH0gXAotKwkgICAg ICBFTkQgeyBpZiAobm9uZW1wdHkpIHsgZm9yIChpIGluIGZpbGVzKSBwcmludCBpOyB9OyB9J2A7 IFwKLSsJdGVzdCAteiAiJChDVEFHU19BUkdTKSQkdGFncyQkdW5pcXVlIiBcCi0rCSAgfHwgJChD VEFHUykgJChDVEFHU0ZMQUdTKSAkKEFNX0NUQUdTRkxBR1MpICQoQ1RBR1NfQVJHUykgXAotKwkg ICAgICQkdGFncyAkJHVuaXF1ZQotKwotK0dUQUdTOgotKwloZXJlPWAkKGFtX19jZCkgJCh0b3Bf YnVpbGRkaXIpICYmIHB3ZGAgXAotKwkgICYmIGNkICQodG9wX3NyY2RpcikgXAotKwkgICYmIGd0 YWdzIC1pICQoR1RBR1NfQVJHUykgJCRoZXJlCi0rCi0rZGlzdGNsZWFuLXRhZ3M6Ci0rCS1ybSAt ZiBUQUdTIElEIEdUQUdTIEdSVEFHUyBHU1lNUyBHUEFUSCB0YWdzCi0rCi0rZGlzdGRpcjogJChE SVNURklMRVMpCi0rCUBzcmNkaXJzdHJpcD1gZWNobyAiJChzcmNkaXIpIiB8IHNlZCAncy9bXS5b XiQkXFwqXS9cXFxcJi9nJ2A7IFwKLSsJdG9wc3JjZGlyc3RyaXA9YGVjaG8gIiQodG9wX3NyY2Rp cikiIHwgc2VkICdzL1tdLlteJCRcXCpdL1xcXFwmL2cnYDsgXAotKwlsaXN0PSckKERJU1RGSUxF UyknOyBcCi0rCSAgZGlzdF9maWxlcz1gZm9yIGZpbGUgaW4gJCRsaXN0OyBkbyBlY2hvICQkZmls ZTsgZG9uZSB8IFwKLSsJICBzZWQgLWUgInN8XiQkc3JjZGlyc3RyaXAvfHw7dCIgXAotKwkgICAg ICAtZSAic3xeJCR0b3BzcmNkaXJzdHJpcC98JCh0b3BfYnVpbGRkaXIpL3w7dCJgOyBcCi0rCWNh c2UgJCRkaXN0X2ZpbGVzIGluIFwKLSsJICAqLyopICQoTUtESVJfUCkgYGVjaG8gIiQkZGlzdF9m aWxlcyIgfCBcCi0rCQkJICAgc2VkICcvXC8vIWQ7c3xefCQoZGlzdGRpcikvfDtzLC9bXi9dKiQk LCwnIHwgXAotKwkJCSAgIHNvcnQgLXVgIDs7IFwKLSsJZXNhYzsgXAotKwlmb3IgZmlsZSBpbiAk JGRpc3RfZmlsZXM7IGRvIFwKLSsJICBpZiB0ZXN0IC1mICQkZmlsZSB8fCB0ZXN0IC1kICQkZmls ZTsgdGhlbiBkPS47IGVsc2UgZD0kKHNyY2Rpcik7IGZpOyBcCi0rCSAgaWYgdGVzdCAtZCAkJGQv JCRmaWxlOyB0aGVuIFwKLSsJICAgIGRpcj1gZWNobyAiLyQkZmlsZSIgfCBzZWQgLWUgJ3MsL1te L10qJCQsLCdgOyBcCi0rCSAgICBpZiB0ZXN0IC1kICQoc3JjZGlyKS8kJGZpbGUgJiYgdGVzdCAk JGQgIT0gJChzcmNkaXIpOyB0aGVuIFwKLSsJICAgICAgY3AgLXBSICQoc3JjZGlyKS8kJGZpbGUg JChkaXN0ZGlyKSQkZGlyIHx8IGV4aXQgMTsgXAotKwkgICAgZmk7IFwKLSsJICAgIGNwIC1wUiAk JGQvJCRmaWxlICQoZGlzdGRpcikkJGRpciB8fCBleGl0IDE7IFwKLSsJICBlbHNlIFwKLSsJICAg IHRlc3QgLWYgJChkaXN0ZGlyKS8kJGZpbGUgXAotKwkgICAgfHwgY3AgLXAgJCRkLyQkZmlsZSAk KGRpc3RkaXIpLyQkZmlsZSBcCi0rCSAgICB8fCBleGl0IDE7IFwKLSsJICBmaTsgXAotKwlkb25l Ci0rCWxpc3Q9JyQoRElTVF9TVUJESVJTKSc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCi0r CSAgaWYgdGVzdCAiJCRzdWJkaXIiID0gLjsgdGhlbiA6OyBlbHNlIFwKLSsJICAgIHRlc3QgLWQg IiQoZGlzdGRpcikvJCRzdWJkaXIiIFwKLSsJICAgIHx8ICQoTUtESVJfUCkgIiQoZGlzdGRpcikv JCRzdWJkaXIiIFwKLSsJICAgIHx8IGV4aXQgMTsgXAotKwkgICAgZGlzdGRpcj1gJChhbV9fY2Qp ICQoZGlzdGRpcikgJiYgcHdkYDsgXAotKwkgICAgdG9wX2Rpc3RkaXI9YCQoYW1fX2NkKSAkKHRv cF9kaXN0ZGlyKSAmJiBwd2RgOyBcCi0rCSAgICAoY2QgJCRzdWJkaXIgJiYgXAotKwkgICAgICAk KE1BS0UpICQoQU1fTUFLRUZMQUdTKSBcCi0rCSAgICAgICAgdG9wX2Rpc3RkaXI9IiQkdG9wX2Rp c3RkaXIiIFwKLSsJICAgICAgICBkaXN0ZGlyPSIkJGRpc3RkaXIvJCRzdWJkaXIiIFwKLSsJCWFt X19yZW1vdmVfZGlzdGRpcj06IFwKLSsJCWFtX19za2lwX2xlbmd0aF9jaGVjaz06IFwKLSsJICAg ICAgICBkaXN0ZGlyKSBcCi0rCSAgICAgIHx8IGV4aXQgMTsgXAotKwkgIGZpOyBcCi0rCWRvbmUK LStjaGVjay1hbTogYWxsLWFtCi0rY2hlY2s6IGNoZWNrLXJlY3Vyc2l2ZQotK2FsbC1hbTogTWFr ZWZpbGUKLStpbnN0YWxsZGlyczogaW5zdGFsbGRpcnMtcmVjdXJzaXZlCi0raW5zdGFsbGRpcnMt YW06Ci0raW5zdGFsbDogaW5zdGFsbC1yZWN1cnNpdmUKLStpbnN0YWxsLWV4ZWM6IGluc3RhbGwt ZXhlYy1yZWN1cnNpdmUKLStpbnN0YWxsLWRhdGE6IGluc3RhbGwtZGF0YS1yZWN1cnNpdmUKLSt1 bmluc3RhbGw6IHVuaW5zdGFsbC1yZWN1cnNpdmUKLSsKLStpbnN0YWxsLWFtOiBhbGwtYW0KLSsJ QCQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGluc3RhbGwtZXhlYy1hbSBpbnN0YWxsLWRhdGEtYW0K LSsKLStpbnN0YWxsY2hlY2s6IGluc3RhbGxjaGVjay1yZWN1cnNpdmUKLStpbnN0YWxsLXN0cmlw OgotKwkkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBJTlNUQUxMX1BST0dSQU09IiQoSU5TVEFMTF9T VFJJUF9QUk9HUkFNKSIgXAotKwkgIGluc3RhbGxfc2hfUFJPR1JBTT0iJChJTlNUQUxMX1NUUklQ X1BST0dSQU0pIiBJTlNUQUxMX1NUUklQX0ZMQUc9LXMgXAotKwkgIGB0ZXN0IC16ICckKFNUUklQ KScgfHwgXAotKwkgICAgZWNobyAiSU5TVEFMTF9QUk9HUkFNX0VOVj1TVFJJUFBST0c9JyQoU1RS SVApJyJgIGluc3RhbGwKLSttb3N0bHljbGVhbi1nZW5lcmljOgotKwotK2NsZWFuLWdlbmVyaWM6 Ci0rCi0rZGlzdGNsZWFuLWdlbmVyaWM6Ci0rCS10ZXN0IC16ICIkKENPTkZJR19DTEVBTl9GSUxF UykiIHx8IHJtIC1mICQoQ09ORklHX0NMRUFOX0ZJTEVTKQotKwotK21haW50YWluZXItY2xlYW4t Z2VuZXJpYzoKLSsJQGVjaG8gIlRoaXMgY29tbWFuZCBpcyBpbnRlbmRlZCBmb3IgbWFpbnRhaW5l cnMgdG8gdXNlIgotKwlAZWNobyAiaXQgZGVsZXRlcyBmaWxlcyB0aGF0IG1heSByZXF1aXJlIHNw ZWNpYWwgdG9vbHMgdG8gcmVidWlsZC4iCi0rCS10ZXN0IC16ICIkKE1BSU5UQUlORVJDTEVBTkZJ TEVTKSIgfHwgcm0gLWYgJChNQUlOVEFJTkVSQ0xFQU5GSUxFUykKLStjbGVhbjogY2xlYW4tcmVj dXJzaXZlCi0rCi0rY2xlYW4tYW06IGNsZWFuLWdlbmVyaWMgY2xlYW4tbGlidG9vbCBtb3N0bHlj bGVhbi1hbQotKwotK2Rpc3RjbGVhbjogZGlzdGNsZWFuLXJlY3Vyc2l2ZQotKwktcm0gLWYgTWFr ZWZpbGUKLStkaXN0Y2xlYW4tYW06IGNsZWFuLWFtIGRpc3RjbGVhbi1nZW5lcmljIGRpc3RjbGVh bi10YWdzCi0rCi0rZHZpOiBkdmktcmVjdXJzaXZlCi0rCi0rZHZpLWFtOgotKwotK2h0bWw6IGh0 bWwtcmVjdXJzaXZlCi0rCi0raW5mbzogaW5mby1yZWN1cnNpdmUKLSsKLStpbmZvLWFtOgotKwot K2luc3RhbGwtZGF0YS1hbToKLSsKLStpbnN0YWxsLWR2aTogaW5zdGFsbC1kdmktcmVjdXJzaXZl Ci0rCi0raW5zdGFsbC1leGVjLWFtOgotKwotK2luc3RhbGwtaHRtbDogaW5zdGFsbC1odG1sLXJl Y3Vyc2l2ZQotKwotK2luc3RhbGwtaW5mbzogaW5zdGFsbC1pbmZvLXJlY3Vyc2l2ZQotKwotK2lu c3RhbGwtbWFuOgotKwotK2luc3RhbGwtcGRmOiBpbnN0YWxsLXBkZi1yZWN1cnNpdmUKLSsKLStp bnN0YWxsLXBzOiBpbnN0YWxsLXBzLXJlY3Vyc2l2ZQotKwotK2luc3RhbGxjaGVjay1hbToKLSsK LSttYWludGFpbmVyLWNsZWFuOiBtYWludGFpbmVyLWNsZWFuLXJlY3Vyc2l2ZQotKwktcm0gLWYg TWFrZWZpbGUKLSttYWludGFpbmVyLWNsZWFuLWFtOiBkaXN0Y2xlYW4tYW0gbWFpbnRhaW5lci1j bGVhbi1nZW5lcmljCi0rCi0rbW9zdGx5Y2xlYW46IG1vc3RseWNsZWFuLXJlY3Vyc2l2ZQotKwot K21vc3RseWNsZWFuLWFtOiBtb3N0bHljbGVhbi1nZW5lcmljIG1vc3RseWNsZWFuLWxpYnRvb2wK LSsKLStwZGY6IHBkZi1yZWN1cnNpdmUKLSsKLStwZGYtYW06Ci0rCi0rcHM6IHBzLXJlY3Vyc2l2 ZQotKwotK3BzLWFtOgotKwotK3VuaW5zdGFsbC1hbToKLSsKLSsuTUFLRTogJChSRUNVUlNJVkVf Q0xFQU5fVEFSR0VUUykgJChSRUNVUlNJVkVfVEFSR0VUUykgaW5zdGFsbC1hbSBcCi0rCWluc3Rh bGwtc3RyaXAKLSsKLSsuUEhPTlk6ICQoUkVDVVJTSVZFX0NMRUFOX1RBUkdFVFMpICQoUkVDVVJT SVZFX1RBUkdFVFMpIENUQUdTIEdUQUdTIFwKLSsJYWxsIGFsbC1hbSBjaGVjayBjaGVjay1hbSBj bGVhbiBjbGVhbi1nZW5lcmljIGNsZWFuLWxpYnRvb2wgXAotKwljdGFncyBjdGFncy1yZWN1cnNp dmUgZGlzdGNsZWFuIGRpc3RjbGVhbi1nZW5lcmljIFwKLSsJZGlzdGNsZWFuLWxpYnRvb2wgZGlz dGNsZWFuLXRhZ3MgZGlzdGRpciBkdmkgZHZpLWFtIGh0bWwgXAotKwlodG1sLWFtIGluZm8gaW5m by1hbSBpbnN0YWxsIGluc3RhbGwtYW0gaW5zdGFsbC1kYXRhIFwKLSsJaW5zdGFsbC1kYXRhLWFt IGluc3RhbGwtZHZpIGluc3RhbGwtZHZpLWFtIGluc3RhbGwtZXhlYyBcCi0rCWluc3RhbGwtZXhl Yy1hbSBpbnN0YWxsLWh0bWwgaW5zdGFsbC1odG1sLWFtIGluc3RhbGwtaW5mbyBcCi0rCWluc3Rh bGwtaW5mby1hbSBpbnN0YWxsLW1hbiBpbnN0YWxsLXBkZiBpbnN0YWxsLXBkZi1hbSBcCi0rCWlu c3RhbGwtcHMgaW5zdGFsbC1wcy1hbSBpbnN0YWxsLXN0cmlwIGluc3RhbGxjaGVjayBcCi0rCWlu c3RhbGxjaGVjay1hbSBpbnN0YWxsZGlycyBpbnN0YWxsZGlycy1hbSBtYWludGFpbmVyLWNsZWFu IFwKLSsJbWFpbnRhaW5lci1jbGVhbi1nZW5lcmljIG1vc3RseWNsZWFuIG1vc3RseWNsZWFuLWdl bmVyaWMgXAotKwltb3N0bHljbGVhbi1saWJ0b29sIHBkZiBwZGYtYW0gcHMgcHMtYW0gdGFncyB0 YWdzLXJlY3Vyc2l2ZSBcCi0rCXVuaW5zdGFsbCB1bmluc3RhbGwtYW0KLSsKLStAU0VUX01BS0VA Ci0rIyBUZWxsIHZlcnNpb25zIFszLjU5LDMuNjMpIG9mIEdOVSBtYWtlIHRvIG5vdCBleHBvcnQg YWxsIHZhcmlhYmxlcy4KLSsjIE90aGVyd2lzZSBhIHN5c3RlbSBsaW1pdCAoZm9yIFN5c1YgYXQg bGVhc3QpIG1heSBiZSBleGNlZWRlZC4KLSsuTk9FWFBPUlQ6Ci1kaWZmIC1OdXIgc29jaS0zLjAu MF80LXBhY2svc29jaS9iYWNrZW5kcy9teXNxbC9jb21tb24uY3BwIHNvY2ktMy4wLjBfdHJlcDMw MC9zb2NpL2JhY2tlbmRzL215c3FsL2NvbW1vbi5jcHAKLS0tLSBzb2NpLTMuMC4wXzQtcGFjay9z b2NpL2JhY2tlbmRzL215c3FsL2NvbW1vbi5jcHAJMjAwOS0wNS0yMyAxMzozNzowOS4wMDAwMDAw MDAgKzAyMDAKLSsrKyBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9teXNxbC9jb21t b24uY3BwCTIwMDktMDUtMjIgMjI6NTQ6MTkuMDAwMDAwMDAwICswMjAwCi1AQCAtNiw3ICs2LDEz IEBACi0gLy8KLSAKLSAjaW5jbHVkZSAiY29tbW9uLmgiCi0tI2luY2x1ZGUgInNvY2ktYmFja2Vu ZC5oIgotKy8vCi0rI2lmIGRlZmluZWQoU09DSV9IRUFERVJTX0JVUklFRCkKLSsjICAgICAgIGlu Y2x1ZGUgPHNvY2kvY29yZS9zb2NpLWJhY2tlbmQuaD4KLSsjZWxzZQotKyMJaW5jbHVkZSA8c29j aS1iYWNrZW5kLmg+Ci0rI2VuZGlmCi0rLy8KLSAjaW5jbHVkZSA8Y2lzbzY0Nj4KLSAjaW5jbHVk ZSA8Y3N0ZGxpYj4KLSAjaW5jbHVkZSA8Y3RpbWU+Ci1kaWZmIC1OdXIgc29jaS0zLjAuMF80LXBh Y2svc29jaS9iYWNrZW5kcy9teXNxbC9NYWtlZmlsZS5hbSBzb2NpLTMuMC4wX3RyZXAzMDAvc29j aS9iYWNrZW5kcy9teXNxbC9NYWtlZmlsZS5hbQotLS0tIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kv YmFja2VuZHMvbXlzcWwvTWFrZWZpbGUuYW0JMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAg KzAxMDAKLSsrKyBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9teXNxbC9NYWtlZmls ZS5hbQkyMDA5LTA1LTIyIDIyOjU0OjE5LjAwMDAwMDAwMCArMDIwMAotQEAgLTAsMCArMSwyNiBA QAotKyMjIGJhY2tlbmRzL215c3FsIHN1Yi1kaXJlY3RvcnkKLStpbmNsdWRlICQodG9wX3NyY2Rp cikvTWFrZWZpbGUuY29tbW9uCi0raW5jbHVkZSAkKHNyY2Rpcikvc291cmNlcy5tawotKwotK01B SU5UQUlORVJDTEVBTkZJTEVTID0gTWFrZWZpbGUuaW4KLSsKLStTVUJESVJTID0gLiB0ZXN0Ci0r Ci0raWYgSEFWRV9NWVNRTAotK2xpYl9MVExJQlJBUklFUz0gbGlic29jaV9teXNxbC5sYQotKwot K2xpYnNvY2lfbXlzcWxfbGFfU09VUkNFUz0gJChiY2tfbXlzcWxfaF9zb3VyY2VzKSAkKGJja19t eXNxbF9jY19zb3VyY2VzKSAKLStsaWJzb2NpX215c3FsX2xhX0NYWEZMQUdTID0gJChNWVNRTF9D RkxBR1MpCi0rbGlic29jaV9teXNxbF9sYV9MSUJBREQgPQotK2xpYnNvY2lfbXlzcWxfbGFfTERG TEFHUyA9IFwKLSsJJChCT09TVF9MSUJTKSAkKEJPT1NUX0RBVEVfVElNRV9MSUIpICQoQk9PU1Rf UFJPR1JBTV9PUFRJT05TX0xJQikgXAotKwktdmVyc2lvbi1pbmZvICQoR0VORVJJQ19MSUJSQVJZ X1ZFUlNJT04pCi0rCi0rcGtnaW5jbHVkZV9IRUFERVJTID0gJCh0b3Bfc3JjZGlyKS9zb2NpL2Jh Y2tlbmRzL215c3FsL3NvY2ktbXlzcWwuaAotK2VuZGlmCi0raWYgU09DSV9IRUFERVJTX0JVUklF RAotK3NvY2lfaW5jbHVkZV9kaXIgPSAkKGluY2x1ZGVkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwK LStlbHNlCi0rc29jaV9pbmNsdWRlX2RpciA9ICQoaW5jbHVkZWRpcikKLStlbmRpZgotK3BrZ2lu Y2x1ZGVkaXIgPSAkKHNvY2lfaW5jbHVkZV9kaXIpCi1kaWZmIC1OdXIgc29jaS0zLjAuMF80LXBh Y2svc29jaS9iYWNrZW5kcy9teXNxbC9NYWtlZmlsZS5iYXNpYyBzb2NpLTMuMC4wX3RyZXAzMDAv c29jaS9iYWNrZW5kcy9teXNxbC9NYWtlZmlsZS5iYXNpYwotLS0tIHNvY2ktMy4wLjBfNC1wYWNr L3NvY2kvYmFja2VuZHMvbXlzcWwvTWFrZWZpbGUuYmFzaWMJMjAwOS0wNS0yMyAxMzozNzowOS4w MDAwMDAwMDAgKzAyMDAKLSsrKyBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9teXNx bC9NYWtlZmlsZS5iYXNpYwkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAotQEAg LTEsOTcgKzAsMCBAQAotLSMgVGhlIGZvbGxvd2luZyB2YXJpYWJsZXMgYXJlIHNwZWNpZmljIHRv IHRoaXMgYmFja2VuZCBhbmQgdGhlaXIgY29ycmVjdAotLSMgdmFsdWVzIG1pZ2h0IGRlcGVuZCBv biB5b3VyIGVudmlyb25tZW50IC0gZmVlbCBmcmVlIHRvIHNldCBpdCBhY2NvcmRpbmdseS4KLS0K LS1NWVNRTExJQkRJUiA9IC1ML3Vzci9saWIvbXlzcWwKLS1NWVNRTExJQlMgPSAtbG15c3FsY2xp ZW50IC1segotLU1ZU1FMSU5DTFVERURJUiA9IC1JL3Vzci9pbmNsdWRlL215c3FsCi0tCi0tIyBU aGUgcmVzdCBvZiB0aGUgTWFrZWZpbGUgaXMgaW5kZXBlbmRlbnQgb2YgdGhlIHRhcmdldCBlbnZp cm9ubWVudC4KLS0KLS1DT01QSUxFUiA9IGcrKwotLUNYWEZMQUdTID0gLVdhbGwgLXBlZGFudGlj IC1Xbm8tbG9uZy1sb25nCi0tQ1hYRkxBR1NTTyA9ICR7Q1hYRkxBR1N9IC1mUElDCi0tSU5DTFVE RURJUlMgPSAtSS4uLy4uL2NvcmUgJHtNWVNRTElOQ0xVREVESVJ9Ci0tCi0tCi0tT0JKRUNUUyA9 IGJsb2IubyBmYWN0b3J5Lm8gcm93LWlkLm8gc2Vzc2lvbi5vIHN0YW5kYXJkLWludG8tdHlwZS5v IFwKLS0Jc3RhbmRhcmQtdXNlLXR5cGUubyBzdGF0ZW1lbnQubyB2ZWN0b3ItaW50by10eXBlLm8g dmVjdG9yLXVzZS10eXBlLm8gXAotLQljb21tb24ubwotLQotLQotLU9CSkVDVFNTTyA9IGJsb2It cy5vIGZhY3Rvcnktcy5vIHJvdy1pZC1zLm8gc2Vzc2lvbi1zLm8gXAotLQlzdGFuZGFyZC1pbnRv LXR5cGUtcy5vIHN0YW5kYXJkLXVzZS10eXBlLXMubyBzdGF0ZW1lbnQtcy5vIFwKLS0JdmVjdG9y LWludG8tdHlwZS1zLm8gdmVjdG9yLXVzZS10eXBlLXMubyBjb21tb24tcy5vCi0tCi0tCi0tbGli c29jaV9teXNxbC5hIDogJHtPQkpFQ1RTfQotLQlhciBydiAkQCAkPwotLQlybSAqLm8KLS0KLS0K LS1ibG9iLm8gOiBibG9iLmNwcAotLQkke0NPTVBJTEVSfSAtYyAkPyAke0NYWEZMQUdTfSAke0lO Q0xVREVESVJTfQotLQotLWNvbW1vbi5vIDogY29tbW9uLmNwcAotLQkke0NPTVBJTEVSfSAtYyAk PyAke0NYWEZMQUdTfSAke0lOQ0xVREVESVJTfQotLQotLWZhY3RvcnkubyA6IGZhY3RvcnkuY3Bw Ci0tCSR7Q09NUElMRVJ9IC1jICQ/ICR7Q1hYRkxBR1N9ICR7SU5DTFVERURJUlN9Ci0tCi0tcm93 LWlkLm8gOiByb3ctaWQuY3BwCi0tCSR7Q09NUElMRVJ9IC1jICQ/ICR7Q1hYRkxBR1N9ICR7SU5D TFVERURJUlN9Ci0tCi0tc2Vzc2lvbi5vIDogc2Vzc2lvbi5jcHAKLS0JJHtDT01QSUxFUn0gLWMg JD8gJHtDWFhGTEFHU30gJHtJTkNMVURFRElSU30KLS0KLS1zdGFuZGFyZC1pbnRvLXR5cGUubyA6 IHN0YW5kYXJkLWludG8tdHlwZS5jcHAKLS0JJHtDT01QSUxFUn0gLWMgJD8gJHtDWFhGTEFHU30g JHtJTkNMVURFRElSU30KLS0KLS1zdGFuZGFyZC11c2UtdHlwZS5vIDogc3RhbmRhcmQtdXNlLXR5 cGUuY3BwCi0tCSR7Q09NUElMRVJ9IC1jICQ/ICR7Q1hYRkxBR1N9ICR7SU5DTFVERURJUlN9Ci0t Ci0tc3RhdGVtZW50Lm8gOiBzdGF0ZW1lbnQuY3BwCi0tCSR7Q09NUElMRVJ9IC1jICQ/ICR7Q1hY RkxBR1N9ICR7SU5DTFVERURJUlN9Ci0tCi0tdmVjdG9yLWludG8tdHlwZS5vIDogdmVjdG9yLWlu dG8tdHlwZS5jcHAKLS0JJHtDT01QSUxFUn0gLWMgJD8gJHtDWFhGTEFHU30gJHtJTkNMVURFRElS U30KLS0KLS12ZWN0b3ItdXNlLXR5cGUubyA6IHZlY3Rvci11c2UtdHlwZS5jcHAKLS0JJHtDT01Q SUxFUn0gLWMgJD8gJHtDWFhGTEFHU30gJHtJTkNMVURFRElSU30KLS0KLS1zaGFyZWQgOiAke09C SkVDVFNTT30KLS0JJHtDT01QSUxFUn0gLXNoYXJlZCAtbyBsaWJzb2NpX215c3FsLnNvICR7T0JK RUNUU1NPfQotLQlybSAqLm8KLS0KLS1ibG9iLXMubyA6IGJsb2IuY3BwCi0tCSR7Q09NUElMRVJ9 IC1jIC1vICRAICQ/ICR7Q1hYRkxBR1NTT30gJHtJTkNMVURFRElSU30KLS0KLS1jb21tb24tcy5v IDogY29tbW9uLmNwcAotLQkke0NPTVBJTEVSfSAtYyAtbyAkQCAkPyAke0NYWEZMQUdTU099ICR7 SU5DTFVERURJUlN9Ci0tCi0tZmFjdG9yeS1zLm8gOiBmYWN0b3J5LmNwcAotLQkke0NPTVBJTEVS fSAtYyAtbyAkQCAkPyAke0NYWEZMQUdTU099ICR7SU5DTFVERURJUlN9Ci0tCi0tcm93LWlkLXMu byA6IHJvdy1pZC5jcHAKLS0JJHtDT01QSUxFUn0gLWMgLW8gJEAgJD8gJHtDWFhGTEFHU1NPfSAk e0lOQ0xVREVESVJTfQotLQotLXNlc3Npb24tcy5vIDogc2Vzc2lvbi5jcHAKLS0JJHtDT01QSUxF Un0gLWMgLW8gJEAgJD8gJHtDWFhGTEFHU1NPfSAke0lOQ0xVREVESVJTfQotLQotLXN0YW5kYXJk LWludG8tdHlwZS1zLm8gOiBzdGFuZGFyZC1pbnRvLXR5cGUuY3BwCi0tCSR7Q09NUElMRVJ9IC1j IC1vICRAICQ/ICR7Q1hYRkxBR1NTT30gJHtJTkNMVURFRElSU30KLS0KLS1zdGFuZGFyZC11c2Ut dHlwZS1zLm8gOiBzdGFuZGFyZC11c2UtdHlwZS5jcHAKLS0JJHtDT01QSUxFUn0gLWMgLW8gJEAg JD8gJHtDWFhGTEFHU1NPfSAke0lOQ0xVREVESVJTfQotLQotLXN0YXRlbWVudC1zLm8gOiBzdGF0 ZW1lbnQuY3BwCi0tCSR7Q09NUElMRVJ9IC1jIC1vICRAICQ/ICR7Q1hYRkxBR1NTT30gJHtJTkNM VURFRElSU30KLS0KLS12ZWN0b3ItaW50by10eXBlLXMubyA6IHZlY3Rvci1pbnRvLXR5cGUuY3Bw Ci0tCSR7Q09NUElMRVJ9IC1jIC1vICRAICQ/ICR7Q1hYRkxBR1NTT30gJHtJTkNMVURFRElSU30K LS0KLS12ZWN0b3ItdXNlLXR5cGUtcy5vIDogdmVjdG9yLXVzZS10eXBlLmNwcAotLQkke0NPTVBJ TEVSfSAtYyAtbyAkQCAkPyAke0NYWEZMQUdTU099ICR7SU5DTFVERURJUlN9Ci0tCi0tCi0tY2xl YW4gOgotLQlybSAtZiBsaWJzb2NpX215c3FsLmEgbGlic29jaV9teXNxbC5zbwotZGlmZiAtTnVy IHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvbXlzcWwvTWFrZWZpbGUuaW4gc29jaS0z LjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvbXlzcWwvTWFrZWZpbGUuaW4KLS0tLSBzb2NpLTMu MC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL215c3FsL01ha2VmaWxlLmluCTE5NzAtMDEtMDEgMDE6 MDA6MDAuMDAwMDAwMDAwICswMTAwCi0rKysgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2Vu ZHMvbXlzcWwvTWFrZWZpbGUuaW4JMjAwOS0wNS0yMyAxMDowMjowMi4wMDAwMDAwMDAgKzAyMDAK LUBAIC0wLDAgKzEsODA3IEBACi0rIyBNYWtlZmlsZS5pbiBnZW5lcmF0ZWQgYnkgYXV0b21ha2Ug MS4xMC4yIGZyb20gTWFrZWZpbGUuYW0uCi0rIyBAY29uZmlndXJlX2lucHV0QAotKwotKyMgQ29w eXJpZ2h0IChDKSAxOTk0LCAxOTk1LCAxOTk2LCAxOTk3LCAxOTk4LCAxOTk5LCAyMDAwLCAyMDAx LCAyMDAyLAotKyMgMjAwMywgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCAgRnJlZSBTb2Z0 d2FyZSBGb3VuZGF0aW9uLCBJbmMuCi0rIyBUaGlzIE1ha2VmaWxlLmluIGlzIGZyZWUgc29mdHdh cmU7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24KLSsjIGdpdmVzIHVubGltaXRlZCBwZXJt aXNzaW9uIHRvIGNvcHkgYW5kL29yIGRpc3RyaWJ1dGUgaXQsCi0rIyB3aXRoIG9yIHdpdGhvdXQg bW9kaWZpY2F0aW9ucywgYXMgbG9uZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCi0rCi0r IyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJl IHVzZWZ1bCwKLSsjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWSwgdG8gdGhlIGV4dGVudCBwZXJt aXR0ZWQgYnkgbGF3OyB3aXRob3V0Ci0rIyBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1F UkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBCi0rIyBQQVJUSUNVTEFSIFBVUlBPU0UuCi0r Ci0rQFNFVF9NQUtFQAotKwotKwotK1ZQQVRIID0gQHNyY2RpckAKLStwa2dkYXRhZGlyID0gJChk YXRhZGlyKS9AUEFDS0FHRUAKLStwa2dsaWJkaXIgPSAkKGxpYmRpcikvQFBBQ0tBR0VACi0rYW1f X2NkID0gQ0RQQVRIPSIkJHtaU0hfVkVSU0lPTisufSQoUEFUSF9TRVBBUkFUT1IpIiAmJiBjZAot K2luc3RhbGxfc2hfREFUQSA9ICQoaW5zdGFsbF9zaCkgLWMgLW0gNjQ0Ci0raW5zdGFsbF9zaF9Q Uk9HUkFNID0gJChpbnN0YWxsX3NoKSAtYwotK2luc3RhbGxfc2hfU0NSSVBUID0gJChpbnN0YWxs X3NoKSAtYwotK0lOU1RBTExfSEVBREVSID0gJChJTlNUQUxMX0RBVEEpCi0rdHJhbnNmb3JtID0g JChwcm9ncmFtX3RyYW5zZm9ybV9uYW1lKQotK05PUk1BTF9JTlNUQUxMID0gOgotK1BSRV9JTlNU QUxMID0gOgotK1BPU1RfSU5TVEFMTCA9IDoKLStOT1JNQUxfVU5JTlNUQUxMID0gOgotK1BSRV9V TklOU1RBTEwgPSA6Ci0rUE9TVF9VTklOU1RBTEwgPSA6Ci0rYnVpbGRfdHJpcGxldCA9IEBidWls ZEAKLStob3N0X3RyaXBsZXQgPSBAaG9zdEAKLStESVNUX0NPTU1PTiA9ICQoYW1fX3BrZ2luY2x1 ZGVfSEVBREVSU19ESVNUKSAkKHNyY2RpcikvTWFrZWZpbGUuYW0gXAotKwkkKHNyY2RpcikvTWFr ZWZpbGUuaW4gJChzcmNkaXIpL3NvdXJjZXMubWsgXAotKwkkKHRvcF9zcmNkaXIpL01ha2VmaWxl LmNvbW1vbgotK3N1YmRpciA9IHNvY2kvYmFja2VuZHMvbXlzcWwKLStBQ0xPQ0FMX000ID0gJCh0 b3Bfc3JjZGlyKS9hY2xvY2FsLm00Ci0rYW1fX2FjbG9jYWxfbTRfZGVwcyA9ICQodG9wX3NyY2Rp cikvY29uZmlnL2F4X2Jvb3N0Lm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfbXlzcWwu bTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9vcmFjbGVfb2NpLm00IFwKLSsJJCh0b3Bf c3JjZGlyKS9jb25maWcvYXhfcG9zdGdyZXNxbC5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmln L2NwcHVuaXQubTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9saWJ0b29sLm00IFwKLSsJJCh0 b3Bfc3JjZGlyKS9jb25maWcvbHRvcHRpb25zLm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcv bHRzdWdhci5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmlnL2x0dmVyc2lvbi5tNCBcCi0rCSQo dG9wX3NyY2RpcikvY29uZmlnL2x0fm9ic29sZXRlLm00ICQodG9wX3NyY2RpcikvY29uZmlndXJl LmFjCi0rYW1fX2NvbmZpZ3VyZV9kZXBzID0gJChhbV9fYWNsb2NhbF9tNF9kZXBzKSAkKENPTkZJ R1VSRV9ERVBFTkRFTkNJRVMpIFwKLSsJJChBQ0xPQ0FMX000KQotK21raW5zdGFsbGRpcnMgPSAk KGluc3RhbGxfc2gpIC1kCi0rQ09ORklHX0hFQURFUiA9ICQodG9wX2J1aWxkZGlyKS9zb2NpL2Nv bmZpZy5oCi0rQ09ORklHX0NMRUFOX0ZJTEVTID0KLSthbV9fdnBhdGhfYWRqX3NldHVwID0gc3Jj ZGlyc3RyaXA9YGVjaG8gIiQoc3JjZGlyKSIgfCBzZWQgJ3N8LnwufGcnYDsKLSthbV9fdnBhdGhf YWRqID0gY2FzZSAkJHAgaW4gXAotKyAgICAkKHNyY2RpcikvKikgZj1gZWNobyAiJCRwIiB8IHNl ZCAic3xeJCRzcmNkaXJzdHJpcC98fCJgOzsgXAotKyAgICAqKSBmPSQkcDs7IFwKLSsgIGVzYWM7 Ci0rYW1fX3N0cmlwX2RpciA9IGBlY2hvICQkcCB8IHNlZCAtZSAnc3xeLiovfHwnYDsKLSthbV9f aW5zdGFsbGRpcnMgPSAiJChERVNURElSKSQobGliZGlyKSIgIiQoREVTVERJUikkKHBrZ2luY2x1 ZGVkaXIpIgotK2xpYkxUTElCUkFSSUVTX0lOU1RBTEwgPSAkKElOU1RBTEwpCi0rTFRMSUJSQVJJ RVMgPSAkKGxpYl9MVExJQlJBUklFUykKLStsaWJzb2NpX215c3FsX2xhX0RFUEVOREVOQ0lFUyA9 Ci0rYW1fX2xpYnNvY2lfbXlzcWxfbGFfU09VUkNFU19ESVNUID0gIFwKLSsJJCh0b3Bfc3JjZGly KS9zb2NpL2JhY2tlbmRzL215c3FsL2NvbW1vbi5oIFwKLSsJJCh0b3Bfc3JjZGlyKS9zb2NpL2Jh Y2tlbmRzL215c3FsL3NvY2ktbXlzcWwuaCBcCi0rCSQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5k cy9teXNxbC9ibG9iLmNwcCBcCi0rCSQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9j b21tb24uY3BwIFwKLSsJJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL2ZhY3Rvcnku Y3BwIFwKLSsJJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3Jvdy1pZC5jcHAgXAot KwkkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvc2Vzc2lvbi5jcHAgXAotKwkkKHRv cF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvc3RhbmRhcmQtaW50by10eXBlLmNwcCBcCi0r CSQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9zdGFuZGFyZC11c2UtdHlwZS5jcHAg XAotKwkkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvc3RhdGVtZW50LmNwcCBcCi0r CSQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC92ZWN0b3ItaW50by10eXBlLmNwcCBc Ci0rCSQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC92ZWN0b3ItdXNlLXR5cGUuY3Bw Ci0rYW1fX29iamVjdHNfMSA9Ci0rYW1fX29iamVjdHNfMiA9IGxpYnNvY2lfbXlzcWxfbGEtYmxv Yi5sbyBsaWJzb2NpX215c3FsX2xhLWNvbW1vbi5sbyBcCi0rCWxpYnNvY2lfbXlzcWxfbGEtZmFj dG9yeS5sbyBsaWJzb2NpX215c3FsX2xhLXJvdy1pZC5sbyBcCi0rCWxpYnNvY2lfbXlzcWxfbGEt c2Vzc2lvbi5sbyBcCi0rCWxpYnNvY2lfbXlzcWxfbGEtc3RhbmRhcmQtaW50by10eXBlLmxvIFwK LSsJbGlic29jaV9teXNxbF9sYS1zdGFuZGFyZC11c2UtdHlwZS5sbyBcCi0rCWxpYnNvY2lfbXlz cWxfbGEtc3RhdGVtZW50LmxvIFwKLSsJbGlic29jaV9teXNxbF9sYS12ZWN0b3ItaW50by10eXBl LmxvIFwKLSsJbGlic29jaV9teXNxbF9sYS12ZWN0b3ItdXNlLXR5cGUubG8KLStASEFWRV9NWVNR TF9UUlVFQGFtX2xpYnNvY2lfbXlzcWxfbGFfT0JKRUNUUyA9ICQoYW1fX29iamVjdHNfMSkgXAot K0BIQVZFX01ZU1FMX1RSVUVACSQoYW1fX29iamVjdHNfMikKLStsaWJzb2NpX215c3FsX2xhX09C SkVDVFMgPSAkKGFtX2xpYnNvY2lfbXlzcWxfbGFfT0JKRUNUUykKLStsaWJzb2NpX215c3FsX2xh X0xJTksgPSAkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgXAotKwkkKExJ QlRPT0xGTEFHUykgLS1tb2RlPWxpbmsgJChDWFhMRCkgXAotKwkkKGxpYnNvY2lfbXlzcWxfbGFf Q1hYRkxBR1MpICQoQ1hYRkxBR1MpIFwKLSsJJChsaWJzb2NpX215c3FsX2xhX0xERkxBR1MpICQo TERGTEFHUykgLW8gJEAKLStASEFWRV9NWVNRTF9UUlVFQGFtX2xpYnNvY2lfbXlzcWxfbGFfcnBh dGggPSAtcnBhdGggJChsaWJkaXIpCi0rREVGQVVMVF9JTkNMVURFUyA9IC1JLkBhbV9faXNyY0Ag LUkkKHRvcF9idWlsZGRpcikvc29jaQotK2RlcGNvbXAgPSAkKFNIRUxMKSAkKHRvcF9zcmNkaXIp L2NvbmZpZy9kZXBjb21wCi0rYW1fX2RlcGZpbGVzX21heWJlID0gZGVwZmlsZXMKLStDWFhDT01Q SUxFID0gJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSBcCi0r CSQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQoQU1fQ1hYRkxBR1MpICQoQ1hYRkxBR1MpCi0r TFRDWFhDT01QSUxFID0gJChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQo TElCVE9PTEZMQUdTKSBcCi0rCS0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVM VF9JTkNMVURFUykgJChJTkNMVURFUykgXAotKwkkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAk KEFNX0NYWEZMQUdTKSAkKENYWEZMQUdTKQotK0NYWExEID0gJChDWFgpCi0rQ1hYTElOSyA9ICQo TElCVE9PTCkgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgXAot KwktLW1vZGU9bGluayAkKENYWExEKSAkKEFNX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAkKEFNX0xE RkxBR1MpIFwKLSsJJChMREZMQUdTKSAtbyAkQAotK0NPTVBJTEUgPSAkKENDKSAkKERFRlMpICQo REVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgXAotKwkkKENQUEZM QUdTKSAkKEFNX0NGTEFHUykgJChDRkxBR1MpCi0rTFRDT01QSUxFID0gJChMSUJUT09MKSAtLXRh Zz1DQyAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIFwKLSsJLS1tb2RlPWNvbXBp bGUgJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpIFwKLSsJJChB TV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChBTV9DRkxBR1MpICQoQ0ZMQUdTKQotK0NDTEQgPSAk KENDKQotK0xJTksgPSAkKExJQlRPT0wpIC0tdGFnPUNDICQoQU1fTElCVE9PTEZMQUdTKSAkKExJ QlRPT0xGTEFHUykgXAotKwktLW1vZGU9bGluayAkKENDTEQpICQoQU1fQ0ZMQUdTKSAkKENGTEFH UykgJChBTV9MREZMQUdTKSBcCi0rCSQoTERGTEFHUykgLW8gJEAKLStTT1VSQ0VTID0gJChsaWJz b2NpX215c3FsX2xhX1NPVVJDRVMpCi0rRElTVF9TT1VSQ0VTID0gJChhbV9fbGlic29jaV9teXNx bF9sYV9TT1VSQ0VTX0RJU1QpCi0rUkVDVVJTSVZFX1RBUkdFVFMgPSBhbGwtcmVjdXJzaXZlIGNo ZWNrLXJlY3Vyc2l2ZSBkdmktcmVjdXJzaXZlIFwKLSsJaHRtbC1yZWN1cnNpdmUgaW5mby1yZWN1 cnNpdmUgaW5zdGFsbC1kYXRhLXJlY3Vyc2l2ZSBcCi0rCWluc3RhbGwtZHZpLXJlY3Vyc2l2ZSBp bnN0YWxsLWV4ZWMtcmVjdXJzaXZlIFwKLSsJaW5zdGFsbC1odG1sLXJlY3Vyc2l2ZSBpbnN0YWxs LWluZm8tcmVjdXJzaXZlIFwKLSsJaW5zdGFsbC1wZGYtcmVjdXJzaXZlIGluc3RhbGwtcHMtcmVj dXJzaXZlIGluc3RhbGwtcmVjdXJzaXZlIFwKLSsJaW5zdGFsbGNoZWNrLXJlY3Vyc2l2ZSBpbnN0 YWxsZGlycy1yZWN1cnNpdmUgcGRmLXJlY3Vyc2l2ZSBcCi0rCXBzLXJlY3Vyc2l2ZSB1bmluc3Rh bGwtcmVjdXJzaXZlCi0rYW1fX3BrZ2luY2x1ZGVfSEVBREVSU19ESVNUID0gIFwKLSsJJCh0b3Bf c3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3NvY2ktbXlzcWwuaAotK3BrZ2luY2x1ZGVIRUFE RVJTX0lOU1RBTEwgPSAkKElOU1RBTExfSEVBREVSKQotK0hFQURFUlMgPSAkKHBrZ2luY2x1ZGVf SEVBREVSUykKLStSRUNVUlNJVkVfQ0xFQU5fVEFSR0VUUyA9IG1vc3RseWNsZWFuLXJlY3Vyc2l2 ZSBjbGVhbi1yZWN1cnNpdmUJXAotKyAgZGlzdGNsZWFuLXJlY3Vyc2l2ZSBtYWludGFpbmVyLWNs ZWFuLXJlY3Vyc2l2ZQotK0VUQUdTID0gZXRhZ3MKLStDVEFHUyA9IGN0YWdzCi0rRElTVF9TVUJE SVJTID0gJChTVUJESVJTKQotK0RJU1RGSUxFUyA9ICQoRElTVF9DT01NT04pICQoRElTVF9TT1VS Q0VTKSAkKFRFWElORk9TKSAkKEVYVFJBX0RJU1QpCi0rcGtnaW5jbHVkZWRpciA9ICQoc29jaV9p bmNsdWRlX2RpcikKLStBQ0xPQ0FMID0gQEFDTE9DQUxACi0rQU1UQVIgPSBAQU1UQVJACi0rQVIg PSBAQVJACi0rQVVUT0NPTkYgPSBAQVVUT0NPTkZACi0rQVVUT0hFQURFUiA9IEBBVVRPSEVBREVS QAotK0FVVE9NQUtFID0gQEFVVE9NQUtFQAotK0FXSyA9IEBBV0tACi0rQk9PU1RfQ0ZMQUdTID0g QEJPT1NUX0NGTEFHU0AKLStCT09TVF9EQVRFX1RJTUVfTElCID0gQEJPT1NUX0RBVEVfVElNRV9M SUJACi0rQk9PU1RfRklMRVNZU1RFTV9MSUIgPSBAQk9PU1RfRklMRVNZU1RFTV9MSUJACi0rQk9P U1RfSU9TVFJFQU1TX0xJQiA9IEBCT09TVF9JT1NUUkVBTVNfTElCQAotK0JPT1NUX0xJQlMgPSBA Qk9PU1RfTElCU0AKLStCT09TVF9QUk9HUkFNX09QVElPTlNfTElCID0gQEJPT1NUX1BST0dSQU1f T1BUSU9OU19MSUJACi0rQk9PU1RfUkVHRVhfTElCID0gQEJPT1NUX1JFR0VYX0xJQkAKLStCT09T VF9TRVJJQUxJWkFUSU9OX0xJQiA9IEBCT09TVF9TRVJJQUxJWkFUSU9OX0xJQkAKLStCT09TVF9T SUdOQUxTX0xJQiA9IEBCT09TVF9TSUdOQUxTX0xJQkAKLStCT09TVF9USFJFQURfTElCID0gQEJP T1NUX1RIUkVBRF9MSUJACi0rQk9PU1RfVU5JVF9URVNUX0ZSQU1FV09SS19MSUIgPSBAQk9PU1Rf VU5JVF9URVNUX0ZSQU1FV09SS19MSUJACi0rQk9PU1RfVkVSU0lPTiA9IEBCT09TVF9WRVJTSU9O QAotK0JPT1NUX1dTRVJJQUxJWkFUSU9OX0xJQiA9IEBCT09TVF9XU0VSSUFMSVpBVElPTl9MSUJA Ci0rQ0MgPSBAQ0NACi0rQ0NERVBNT0RFID0gQENDREVQTU9ERUAKLStDRkxBR1MgPSBAQ0ZMQUdT QAotK0NQUCA9IEBDUFBACi0rQ1BQRkxBR1MgPSBAQ1BQRkxBR1NACi0rQ1BQVU5JVF9DRkxBR1Mg PSBAQ1BQVU5JVF9DRkxBR1NACi0rQ1BQVU5JVF9DT05GSUcgPSBAQ1BQVU5JVF9DT05GSUdACi0r Q1BQVU5JVF9MSUJTID0gQENQUFVOSVRfTElCU0AKLStDUFBVTklUX1ZFUlNJT04gPSBAQ1BQVU5J VF9WRVJTSU9OQAotK0NYWCA9IEBDWFhACi0rQ1hYQ1BQID0gQENYWENQUEAKLStDWFhERVBNT0RF ID0gQENYWERFUE1PREVACi0rQ1hYRkxBR1MgPSBAQ1hYRkxBR1NACi0rQ1lHUEFUSF9XID0gQENZ R1BBVEhfV0AKLStERUZTID0gQERFRlNACi0rREVQRElSID0gQERFUERJUkAKLStEU1lNVVRJTCA9 IEBEU1lNVVRJTEAKLStEVU1QQklOID0gQERVTVBCSU5ACi0rRUNIT19DID0gQEVDSE9fQ0AKLStF Q0hPX04gPSBARUNIT19OQAotK0VDSE9fVCA9IEBFQ0hPX1RACi0rRUdSRVAgPSBARUdSRVBACi0r RVhFRVhUID0gQEVYRUVYVEAKLStGR1JFUCA9IEBGR1JFUEAKLStHRU5FUklDX0xJQlJBUllfVkVS U0lPTiA9IEBHRU5FUklDX0xJQlJBUllfVkVSU0lPTkAKLStHUkVQID0gQEdSRVBACi0rSU5TVEFM TCA9IEBJTlNUQUxMQAotK0lOU1RBTExfREFUQSA9IEBJTlNUQUxMX0RBVEFACi0rSU5TVEFMTF9Q Uk9HUkFNID0gQElOU1RBTExfUFJPR1JBTUAKLStJTlNUQUxMX1NDUklQVCA9IEBJTlNUQUxMX1ND UklQVEAKLStJTlNUQUxMX1NUUklQX1BST0dSQU0gPSBASU5TVEFMTF9TVFJJUF9QUk9HUkFNQAot K0xEID0gQExEQAotK0xERkxBR1MgPSBATERGTEFHU0AKLStMSUJPQkpTID0gQExJQk9CSlNACi0r TElCUyA9IEBMSUJTQAotK0xJQlRPT0wgPSBATElCVE9PTEAKLStMSVBPID0gQExJUE9ACi0rTE5f UyA9IEBMTl9TQAotK0xUTElCT0JKUyA9IEBMVExJQk9CSlNACi0rTUFLRUlORk8gPSBATUFLRUlO Rk9ACi0rTUtESVJfUCA9IEBNS0RJUl9QQAotK01ZU1FMX0NGTEFHUyA9IEBNWVNRTF9DRkxBR1NA Ci0rTVlTUUxfQ09ORklHID0gQE1ZU1FMX0NPTkZJR0AKLStNWVNRTF9ESVJTID0gQE1ZU1FMX0RJ UlNACi0rTVlTUUxfTERGTEFHUyA9IEBNWVNRTF9MREZMQUdTQAotK01ZU1FMX1ZFUlNJT04gPSBA TVlTUUxfVkVSU0lPTkAKLStOTSA9IEBOTUAKLStOTUVESVQgPSBATk1FRElUQAotK09CSkRVTVAg PSBAT0JKRFVNUEAKLStPQkpFWFQgPSBAT0JKRVhUQAotK09SQUNMRV9ESVJTID0gQE9SQUNMRV9E SVJTQAotK09SQUNMRV9PQ0lfQ0ZMQUdTID0gQE9SQUNMRV9PQ0lfQ0ZMQUdTQAotK09SQUNMRV9P Q0lfTERGTEFHUyA9IEBPUkFDTEVfT0NJX0xERkxBR1NACi0rT1JBQ0xFX09DSV9WRVJTSU9OID0g QE9SQUNMRV9PQ0lfVkVSU0lPTkAKLStPVE9PTCA9IEBPVE9PTEAKLStPVE9PTDY0ID0gQE9UT09M NjRACi0rUEFDS0FHRSA9IEBQQUNLQUdFQAotK1BBQ0tBR0VfQlVHUkVQT1JUID0gQFBBQ0tBR0Vf QlVHUkVQT1JUQAotK1BBQ0tBR0VfTkFNRSA9IEBQQUNLQUdFX05BTUVACi0rUEFDS0FHRV9TVFJJ TkcgPSBAUEFDS0FHRV9TVFJJTkdACi0rUEFDS0FHRV9UQVJOQU1FID0gQFBBQ0tBR0VfVEFSTkFN RUAKLStQQUNLQUdFX1ZFUlNJT04gPSBAUEFDS0FHRV9WRVJTSU9OQAotK1BBVEhfU0VQQVJBVE9S ID0gQFBBVEhfU0VQQVJBVE9SQAotK1BFUkwgPSBAUEVSTEAKLStQR19DT05GSUcgPSBAUEdfQ09O RklHQAotK1BPU1RHUkVTUUxfQ0ZMQUdTID0gQFBPU1RHUkVTUUxfQ0ZMQUdTQAotK1BPU1RHUkVT UUxfRElSUyA9IEBQT1NUR1JFU1FMX0RJUlNACi0rUE9TVEdSRVNRTF9MREZMQUdTID0gQFBPU1RH UkVTUUxfTERGTEFHU0AKLStQT1NUR1JFU1FMX1ZFUlNJT04gPSBAUE9TVEdSRVNRTF9WRVJTSU9O QAotK1JBTkxJQiA9IEBSQU5MSUJACi0rUlBNX1JFTEVBU0UgPSBAUlBNX1JFTEVBU0VACi0rU0VE ID0gQFNFREAKLStTRVRfTUFLRSA9IEBTRVRfTUFLRUAKLStTSEVMTCA9IEBTSEVMTEAKLStTT0NJ X0hFQURFUlNfQlVSSUVEID0gQFNPQ0lfSEVBREVSU19CVVJJRURACi0rU09DSV9NWVNRTF9IRUFE RVJTX0JVUklFRCA9IEBTT0NJX01ZU1FMX0hFQURFUlNfQlVSSUVEQAotK1NPQ0lfUE9TVEdSRVNR TF9IRUFERVJTX0JVUklFRCA9IEBTT0NJX1BPU1RHUkVTUUxfSEVBREVSU19CVVJJRURACi0rU1RS SVAgPSBAU1RSSVBACi0rVVBMT0FEX0NPTU1BTkQgPSBAVVBMT0FEX0NPTU1BTkRACi0rVkVSU0lP TiA9IEBWRVJTSU9OQAotK2Fic19idWlsZGRpciA9IEBhYnNfYnVpbGRkaXJACi0rYWJzX3NyY2Rp ciA9IEBhYnNfc3JjZGlyQAotK2Fic190b3BfYnVpbGRkaXIgPSBAYWJzX3RvcF9idWlsZGRpckAK LSthYnNfdG9wX3NyY2RpciA9IEBhYnNfdG9wX3NyY2RpckAKLSthY19jdF9DQyA9IEBhY19jdF9D Q0AKLSthY19jdF9DWFggPSBAYWNfY3RfQ1hYQAotK2FjX2N0X0RVTVBCSU4gPSBAYWNfY3RfRFVN UEJJTkAKLSthbV9faW5jbHVkZSA9IEBhbV9faW5jbHVkZUAKLSthbV9fbGVhZGluZ19kb3QgPSBA YW1fX2xlYWRpbmdfZG90QAotK2FtX19xdW90ZSA9IEBhbV9fcXVvdGVACi0rYW1fX3RhciA9IEBh bV9fdGFyQAotK2FtX191bnRhciA9IEBhbV9fdW50YXJACi0rYmluZGlyID0gQGJpbmRpckAKLSti dWlsZCA9IEBidWlsZEAKLStidWlsZF9hbGlhcyA9IEBidWlsZF9hbGlhc0AKLStidWlsZF9jcHUg PSBAYnVpbGRfY3B1QAotK2J1aWxkX29zID0gQGJ1aWxkX29zQAotK2J1aWxkX3ZlbmRvciA9IEBi dWlsZF92ZW5kb3JACi0rYnVpbGRkaXIgPSBAYnVpbGRkaXJACi0rZGF0YWRpciA9IEBkYXRhZGly QAotK2RhdGFyb290ZGlyID0gQGRhdGFyb290ZGlyQAotK2RpZmZfb2sgPSBAZGlmZl9va0AKLStk b2NkaXIgPSBAZG9jZGlyQAotK2RveHlnZW5fb2sgPSBAZG94eWdlbl9va0AKLStkdmlkaXIgPSBA ZHZpZGlyQAotK2R2aXBzX29rID0gQGR2aXBzX29rQAotK2V4ZWNfcHJlZml4ID0gQGV4ZWNfcHJl Zml4QAotK2dzX29rID0gQGdzX29rQAotK2hvc3QgPSBAaG9zdEAKLStob3N0X2FsaWFzID0gQGhv c3RfYWxpYXNACi0raG9zdF9jcHUgPSBAaG9zdF9jcHVACi0raG9zdF9vcyA9IEBob3N0X29zQAot K2hvc3RfdmVuZG9yID0gQGhvc3RfdmVuZG9yQAotK2h0bWxkaXIgPSBAaHRtbGRpckAKLStpbmNs dWRlZGlyID0gQGluY2x1ZGVkaXJACi0raW5mb2RpciA9IEBpbmZvZGlyQAotK2luc3RhbGxfc2gg PSBAaW5zdGFsbF9zaEAKLStsYXRleF9vayA9IEBsYXRleF9va0AKLStsaWJkaXIgPSBAbGliZGly QAotK2xpYmV4ZWNkaXIgPSBAbGliZXhlY2RpckAKLStsb2NhbGVkaXIgPSBAbG9jYWxlZGlyQAot K2xvY2Fsc3RhdGVkaXIgPSBAbG9jYWxzdGF0ZWRpckAKLStsdF9FQ0hPID0gQGx0X0VDSE9ACi0r bWFuZGlyID0gQG1hbmRpckAKLStta2Rpcl9wID0gQG1rZGlyX3BACi0rb2xkaW5jbHVkZWRpciA9 IEBvbGRpbmNsdWRlZGlyQAotK3BkZmRpciA9IEBwZGZkaXJACi0rcHJlZml4ID0gQHByZWZpeEAK LStwcm9ncmFtX3RyYW5zZm9ybV9uYW1lID0gQHByb2dyYW1fdHJhbnNmb3JtX25hbWVACi0rcHNk aXIgPSBAcHNkaXJACi0rc2JpbmRpciA9IEBzYmluZGlyQAotK3NlZF9vayA9IEBzZWRfb2tACi0r c2hhcmVkc3RhdGVkaXIgPSBAc2hhcmVkc3RhdGVkaXJACi0rc3JjZGlyID0gQHNyY2RpckAKLStz eXNjb25mZGlyID0gQHN5c2NvbmZkaXJACi0rdGFyZ2V0X2FsaWFzID0gQHRhcmdldF9hbGlhc0AK LSt0b3BfYnVpbGRfcHJlZml4ID0gQHRvcF9idWlsZF9wcmVmaXhACi0rdG9wX2J1aWxkZGlyID0g QHRvcF9idWlsZGRpckAKLSt0b3Bfc3JjZGlyID0gQHRvcF9zcmNkaXJACi0rQU1fQ1BQRkxBR1Mg PSAtSSQodG9wX2J1aWxkZGlyKSAtSSQodG9wX3NyY2RpcikKLStiY2tfbXlzcWxfaF9zb3VyY2Vz ID0gXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL2NvbW1vbi5o IFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9zb2NpLW15c3Fs LmgKLSsKLStiY2tfbXlzcWxfY2Nfc291cmNlcyA9IFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikv c29jaS9iYWNrZW5kcy9teXNxbC9ibG9iLmNwcCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3Nv Y2kvYmFja2VuZHMvbXlzcWwvY29tbW9uLmNwcCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3Nv Y2kvYmFja2VuZHMvbXlzcWwvZmFjdG9yeS5jcHAgXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9z b2NpL2JhY2tlbmRzL215c3FsL3Jvdy1pZC5jcHAgXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9z b2NpL2JhY2tlbmRzL215c3FsL3Nlc3Npb24uY3BwIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikv c29jaS9iYWNrZW5kcy9teXNxbC9zdGFuZGFyZC1pbnRvLXR5cGUuY3BwIFwKLSsgICAgICAgICQo dG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9zdGFuZGFyZC11c2UtdHlwZS5jcHAgXAot KyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3N0YXRlbWVudC5jcHAg XAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3ZlY3Rvci1pbnRv LXR5cGUuY3BwIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC92 ZWN0b3ItdXNlLXR5cGUuY3BwCi0rCi0rTUFJTlRBSU5FUkNMRUFORklMRVMgPSBNYWtlZmlsZS5p bgotK1NVQkRJUlMgPSAuIHRlc3QKLStASEFWRV9NWVNRTF9UUlVFQGxpYl9MVExJQlJBUklFUyA9 IGxpYnNvY2lfbXlzcWwubGEKLStASEFWRV9NWVNRTF9UUlVFQGxpYnNvY2lfbXlzcWxfbGFfU09V UkNFUyA9ICQoYmNrX215c3FsX2hfc291cmNlcykgJChiY2tfbXlzcWxfY2Nfc291cmNlcykgCi0r QEhBVkVfTVlTUUxfVFJVRUBsaWJzb2NpX215c3FsX2xhX0NYWEZMQUdTID0gJChNWVNRTF9DRkxB R1MpCi0rQEhBVkVfTVlTUUxfVFJVRUBsaWJzb2NpX215c3FsX2xhX0xJQkFERCA9IAotK0BIQVZF X01ZU1FMX1RSVUVAbGlic29jaV9teXNxbF9sYV9MREZMQUdTID0gXAotK0BIQVZFX01ZU1FMX1RS VUVACSQoQk9PU1RfTElCUykgJChCT09TVF9EQVRFX1RJTUVfTElCKSAkKEJPT1NUX1BST0dSQU1f T1BUSU9OU19MSUIpIFwKLStASEFWRV9NWVNRTF9UUlVFQAktdmVyc2lvbi1pbmZvICQoR0VORVJJ Q19MSUJSQVJZX1ZFUlNJT04pCi0rCi0rQEhBVkVfTVlTUUxfVFJVRUBwa2dpbmNsdWRlX0hFQURF UlMgPSAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvc29jaS1teXNxbC5oCi0rQFNP Q0lfSEVBREVSU19CVVJJRURfRkFMU0VAc29jaV9pbmNsdWRlX2RpciA9ICQoaW5jbHVkZWRpcikK LStAU09DSV9IRUFERVJTX0JVUklFRF9UUlVFQHNvY2lfaW5jbHVkZV9kaXIgPSAkKGluY2x1ZGVk aXIpL3NvY2kvYmFja2VuZHMvbXlzcWwKLSthbGw6IGFsbC1yZWN1cnNpdmUKLSsKLSsuU1VGRklY RVM6Ci0rLlNVRkZJWEVTOiAuY3BwIC5sbyAubyAub2JqCi0rJChzcmNkaXIpL01ha2VmaWxlLmlu OiAgJChzcmNkaXIpL01ha2VmaWxlLmFtICQodG9wX3NyY2RpcikvTWFrZWZpbGUuY29tbW9uICQo c3JjZGlyKS9zb3VyY2VzLm1rICQoYW1fX2NvbmZpZ3VyZV9kZXBzKQotKwlAZm9yIGRlcCBpbiAk PzsgZG8gXAotKwkgIGNhc2UgJyQoYW1fX2NvbmZpZ3VyZV9kZXBzKScgaW4gXAotKwkgICAgKiQk ZGVwKikgXAotKwkgICAgICAoIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFL RUZMQUdTKSBhbS0tcmVmcmVzaCApIFwKLSsJICAgICAgICAmJiB7IGlmIHRlc3QgLWYgJEA7IHRo ZW4gZXhpdCAwOyBlbHNlIGJyZWFrOyBmaTsgfTsgXAotKwkgICAgICBleGl0IDE7OyBcCi0rCSAg ZXNhYzsgXAotKwlkb25lOyBcCi0rCWVjaG8gJyBjZCAkKHRvcF9zcmNkaXIpICYmICQoQVVUT01B S0UpIC0tZ251ICBzb2NpL2JhY2tlbmRzL215c3FsL01ha2VmaWxlJzsgXAotKwljZCAkKHRvcF9z cmNkaXIpICYmIFwKLSsJICAkKEFVVE9NQUtFKSAtLWdudSAgc29jaS9iYWNrZW5kcy9teXNxbC9N YWtlZmlsZQotKy5QUkVDSU9VUzogTWFrZWZpbGUKLStNYWtlZmlsZTogJChzcmNkaXIpL01ha2Vm aWxlLmluICQodG9wX2J1aWxkZGlyKS9jb25maWcuc3RhdHVzCi0rCUBjYXNlICckPycgaW4gXAot KwkgICpjb25maWcuc3RhdHVzKikgXAotKwkgICAgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFL RSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoOzsgXAotKwkgICopIFwKLSsJICAgIGVjaG8g JyBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChTSEVMTCkgLi9jb25maWcuc3RhdHVzICQoc3ViZGly KS8kQCAkKGFtX19kZXBmaWxlc19tYXliZSknOyBcCi0rCSAgICBjZCAkKHRvcF9idWlsZGRpcikg JiYgJChTSEVMTCkgLi9jb25maWcuc3RhdHVzICQoc3ViZGlyKS8kQCAkKGFtX19kZXBmaWxlc19t YXliZSk7OyBcCi0rCWVzYWM7Ci0rCi0rJCh0b3BfYnVpbGRkaXIpL2NvbmZpZy5zdGF0dXM6ICQo dG9wX3NyY2RpcikvY29uZmlndXJlICQoQ09ORklHX1NUQVRVU19ERVBFTkRFTkNJRVMpCi0rCWNk ICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaAot KwotKyQodG9wX3NyY2RpcikvY29uZmlndXJlOiAgJChhbV9fY29uZmlndXJlX2RlcHMpCi0rCWNk ICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaAot KyQoQUNMT0NBTF9NNCk6ICAkKGFtX19hY2xvY2FsX200X2RlcHMpCi0rCWNkICQodG9wX2J1aWxk ZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaAotK2luc3RhbGwtbGli TFRMSUJSQVJJRVM6ICQobGliX0xUTElCUkFSSUVTKQotKwlAJChOT1JNQUxfSU5TVEFMTCkKLSsJ dGVzdCAteiAiJChsaWJkaXIpIiB8fCAkKE1LRElSX1ApICIkKERFU1RESVIpJChsaWJkaXIpIgot KwlAbGlzdD0nJChsaWJfTFRMSUJSQVJJRVMpJzsgZm9yIHAgaW4gJCRsaXN0OyBkbyBcCi0rCSAg aWYgdGVzdCAtZiAkJHA7IHRoZW4gXAotKwkgICAgZj0kKGFtX19zdHJpcF9kaXIpIFwKLSsJICAg IGVjaG8gIiAkKExJQlRPT0wpICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1t b2RlPWluc3RhbGwgJChsaWJMVExJQlJBUklFU19JTlNUQUxMKSAkKElOU1RBTExfU1RSSVBfRkxB RykgJyQkcCcgJyQoREVTVERJUikkKGxpYmRpcikvJCRmJyI7IFwKLSsJICAgICQoTElCVE9PTCkg JChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9aW5zdGFsbCAkKGxpYkxU TElCUkFSSUVTX0lOU1RBTEwpICQoSU5TVEFMTF9TVFJJUF9GTEFHKSAiJCRwIiAiJChERVNURElS KSQobGliZGlyKS8kJGYiOyBcCi0rCSAgZWxzZSA6OyBmaTsgXAotKwlkb25lCi0rCi0rdW5pbnN0 YWxsLWxpYkxUTElCUkFSSUVTOgotKwlAJChOT1JNQUxfVU5JTlNUQUxMKQotKwlAbGlzdD0nJChs aWJfTFRMSUJSQVJJRVMpJzsgZm9yIHAgaW4gJCRsaXN0OyBkbyBcCi0rCSAgcD0kKGFtX19zdHJp cF9kaXIpIFwKLSsJICBlY2hvICIgJChMSUJUT09MKSAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJU T09MRkxBR1MpIC0tbW9kZT11bmluc3RhbGwgcm0gLWYgJyQoREVTVERJUikkKGxpYmRpcikvJCRw JyI7IFwKLSsJICAkKExJQlRPT0wpICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykg LS1tb2RlPXVuaW5zdGFsbCBybSAtZiAiJChERVNURElSKSQobGliZGlyKS8kJHAiOyBcCi0rCWRv bmUKLSsKLStjbGVhbi1saWJMVExJQlJBUklFUzoKLSsJLXRlc3QgLXogIiQobGliX0xUTElCUkFS SUVTKSIgfHwgcm0gLWYgJChsaWJfTFRMSUJSQVJJRVMpCi0rCUBsaXN0PSckKGxpYl9MVExJQlJB UklFUyknOyBmb3IgcCBpbiAkJGxpc3Q7IGRvIFwKLSsJICBkaXI9ImBlY2hvICQkcCB8IHNlZCAt ZSAnc3wvW14vXSokJHx8J2AiOyBcCi0rCSAgdGVzdCAiJCRkaXIiICE9ICIkJHAiIHx8IGRpcj0u OyBcCi0rCSAgZWNobyAicm0gLWYgXCIkJHtkaXJ9L3NvX2xvY2F0aW9uc1wiIjsgXAotKwkgIHJt IC1mICIkJHtkaXJ9L3NvX2xvY2F0aW9ucyI7IFwKLSsJZG9uZQotK2xpYnNvY2lfbXlzcWwubGE6 ICQobGlic29jaV9teXNxbF9sYV9PQkpFQ1RTKSAkKGxpYnNvY2lfbXlzcWxfbGFfREVQRU5ERU5D SUVTKSAKLSsJJChsaWJzb2NpX215c3FsX2xhX0xJTkspICQoYW1fbGlic29jaV9teXNxbF9sYV9y cGF0aCkgJChsaWJzb2NpX215c3FsX2xhX09CSkVDVFMpICQobGlic29jaV9teXNxbF9sYV9MSUJB REQpICQoTElCUykKLSsKLSttb3N0bHljbGVhbi1jb21waWxlOgotKwktcm0gLWYgKi4kKE9CSkVY VCkKLSsKLStkaXN0Y2xlYW4tY29tcGlsZToKLSsJLXJtIC1mICoudGFiLmMKLSsKLStAQU1ERVBf VFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvbGlic29jaV9teXNxbF9s YS1ibG9iLlBsb0BhbV9fcXVvdGVACi0rQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1 b3RlQC4vJChERVBESVIpL2xpYnNvY2lfbXlzcWxfbGEtY29tbW9uLlBsb0BhbV9fcXVvdGVACi0r QEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL2xpYnNvY2lf bXlzcWxfbGEtZmFjdG9yeS5QbG9AYW1fX3F1b3RlQAotK0BBTURFUF9UUlVFQEBhbV9faW5jbHVk ZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9saWJzb2NpX215c3FsX2xhLXJvdy1pZC5QbG9AYW1f X3F1b3RlQAotK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElS KS9saWJzb2NpX215c3FsX2xhLXNlc3Npb24uUGxvQGFtX19xdW90ZUAKLStAQU1ERVBfVFJVRUBA YW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvbGlic29jaV9teXNxbF9sYS1zdGFu ZGFyZC1pbnRvLXR5cGUuUGxvQGFtX19xdW90ZUAKLStAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVA IEBhbV9fcXVvdGVALi8kKERFUERJUikvbGlic29jaV9teXNxbF9sYS1zdGFuZGFyZC11c2UtdHlw ZS5QbG9AYW1fX3F1b3RlQAotK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAu LyQoREVQRElSKS9saWJzb2NpX215c3FsX2xhLXN0YXRlbWVudC5QbG9AYW1fX3F1b3RlQAotK0BB TURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9saWJzb2NpX215 c3FsX2xhLXZlY3Rvci1pbnRvLXR5cGUuUGxvQGFtX19xdW90ZUAKLStAQU1ERVBfVFJVRUBAYW1f X2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvbGlic29jaV9teXNxbF9sYS12ZWN0b3It dXNlLXR5cGUuUGxvQGFtX19xdW90ZUAKLSsKLSsuY3BwLm86Ci0rQGFtX19mYXN0ZGVwQ1hYX1RS VUVACSQoQ1hYQ09NUElMRSkgLU1UICRAIC1NRCAtTVAgLU1GICQoREVQRElSKS8kKi5UcG8gLWMg LW8gJEAgJDwKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJbXYgLWYgJChERVBESVIpLyQqLlRwbyAk KERFUERJUikvJCouUG8KLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJj ZT0nJDwnIG9iamVjdD0nJEAnIGxpYnRvb2w9bm8gQEFNREVQQkFDS1NMQVNIQAotK0BBTURFUF9U UlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENYWERFUE1PREUp ICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAotK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChD WFhDT01QSUxFKSAtYyAtbyAkQCAkPAotKwotKy5jcHAub2JqOgotK0BhbV9fZmFzdGRlcENYWF9U UlVFQAkkKENYWENPTVBJTEUpIC1NVCAkQCAtTUQgLU1QIC1NRiAkKERFUERJUikvJCouVHBvIC1j IC1vICRAIGAkKENZR1BBVEhfVykgJyQ8J2AKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJbXYgLWYg JChERVBESVIpLyQqLlRwbyAkKERFUERJUikvJCouUG8KLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3Rk ZXBDWFhfRkFMU0VACXNvdXJjZT0nJDwnIG9iamVjdD0nJEAnIGxpYnRvb2w9bm8gQEFNREVQQkFD S1NMQVNIQAotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQ RElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAotK0BhbV9fZmFz dGRlcENYWF9GQUxTRUAJJChDWFhDT01QSUxFKSAtYyAtbyAkQCBgJChDWUdQQVRIX1cpICckPCdg Ci0rCi0rLmNwcC5sbzoKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChMVENYWENPTVBJTEUpIC1N VCAkQCAtTUQgLU1QIC1NRiAkKERFUERJUikvJCouVHBvIC1jIC1vICRAICQ8Ci0rQGFtX19mYXN0 ZGVwQ1hYX1RSVUVACW12IC1mICQoREVQRElSKS8kKi5UcG8gJChERVBESVIpLyQqLlBsbwotK0BB TURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSckPCcgb2JqZWN0PSckQCcg bGlidG9vbD15ZXMgQEFNREVQQkFDS1NMQVNIQAotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENY WF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQ QkFDS1NMQVNIQAotK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChMVENYWENPTVBJTEUpIC1jIC1v ICRAICQ8Ci0rCi0rbGlic29jaV9teXNxbF9sYS1ibG9iLmxvOiAkKHRvcF9zcmNkaXIpL3NvY2kv YmFja2VuZHMvbXlzcWwvYmxvYi5jcHAKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChMSUJUT09M KSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29t cGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1f Q1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9teXNxbF9sYV9DWFhGTEFHUykgJChDWFhG TEFHUykgLU1UIGxpYnNvY2lfbXlzcWxfbGEtYmxvYi5sbyAtTUQgLU1QIC1NRiAkKERFUERJUikv bGlic29jaV9teXNxbF9sYS1ibG9iLlRwbyAtYyAtbyBsaWJzb2NpX215c3FsX2xhLWJsb2IubG8g YHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9ibG9iLmNwcCcgfHwg ZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL2Jsb2Iu Y3BwCi0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACW12IC1mICQoREVQRElSKS9saWJzb2NpX215c3Fs X2xhLWJsb2IuVHBvICQoREVQRElSKS9saWJzb2NpX215c3FsX2xhLWJsb2IuUGxvCi0rQEFNREVQ X1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQodG9wX3NyY2Rpcikvc29jaS9i YWNrZW5kcy9teXNxbC9ibG9iLmNwcCcgb2JqZWN0PSdsaWJzb2NpX215c3FsX2xhLWJsb2IubG8n IGxpYnRvb2w9eWVzIEBBTURFUEJBQ0tTTEFTSEAKLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBD WFhfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURF UEJBQ0tTTEFTSEAKLStAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQoTElCVE9PTCkgLS10YWc9Q1hY ICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgp ICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAk KENQUEZMQUdTKSAkKGxpYnNvY2lfbXlzcWxfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1jIC1v IGxpYnNvY2lfbXlzcWxfbGEtYmxvYi5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2Jh Y2tlbmRzL215c3FsL2Jsb2IuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIp L3NvY2kvYmFja2VuZHMvbXlzcWwvYmxvYi5jcHAKLSsKLStsaWJzb2NpX215c3FsX2xhLWNvbW1v bi5sbzogJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL2NvbW1vbi5jcHAKLStAYW1f X2Zhc3RkZXBDWFhfVFJVRUAJJChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1Mp ICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRf SU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29j aV9teXNxbF9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLU1UIGxpYnNvY2lfbXlzcWxfbGEtY29t bW9uLmxvIC1NRCAtTVAgLU1GICQoREVQRElSKS9saWJzb2NpX215c3FsX2xhLWNvbW1vbi5UcG8g LWMgLW8gbGlic29jaV9teXNxbF9sYS1jb21tb24ubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikv c29jaS9iYWNrZW5kcy9teXNxbC9jb21tb24uY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRv cF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvY29tbW9uLmNwcAotK0BhbV9fZmFzdGRlcENY WF9UUlVFQAltdiAtZiAkKERFUERJUikvbGlic29jaV9teXNxbF9sYS1jb21tb24uVHBvICQoREVQ RElSKS9saWJzb2NpX215c3FsX2xhLWNvbW1vbi5QbG8KLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3Rk ZXBDWFhfRkFMU0VACXNvdXJjZT0nJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL2Nv bW1vbi5jcHAnIG9iamVjdD0nbGlic29jaV9teXNxbF9sYS1jb21tb24ubG8nIGxpYnRvb2w9eWVz IEBBTURFUEJBQ0tTTEFTSEAKLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURF UERJUj0kKERFUERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAK LStAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQoTElCVE9PTCkgLS10YWc9Q1hYICQoQU1fTElCVE9P TEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChE RUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAk KGxpYnNvY2lfbXlzcWxfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1jIC1vIGxpYnNvY2lfbXlz cWxfbGEtY29tbW9uLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlz cWwvY29tbW9uLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2Jh Y2tlbmRzL215c3FsL2NvbW1vbi5jcHAKLSsKLStsaWJzb2NpX215c3FsX2xhLWZhY3RvcnkubG86 ICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9mYWN0b3J5LmNwcAotK0BhbV9fZmFz dGRlcENYWF9UUlVFQAkkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChM SUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNM VURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX215 c3FsX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtTVQgbGlic29jaV9teXNxbF9sYS1mYWN0b3J5 LmxvIC1NRCAtTVAgLU1GICQoREVQRElSKS9saWJzb2NpX215c3FsX2xhLWZhY3RvcnkuVHBvIC1j IC1vIGxpYnNvY2lfbXlzcWxfbGEtZmFjdG9yeS5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9z b2NpL2JhY2tlbmRzL215c3FsL2ZhY3RvcnkuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRv cF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvZmFjdG9yeS5jcHAKLStAYW1fX2Zhc3RkZXBD WFhfVFJVRUAJbXYgLWYgJChERVBESVIpL2xpYnNvY2lfbXlzcWxfbGEtZmFjdG9yeS5UcG8gJChE RVBESVIpL2xpYnNvY2lfbXlzcWxfbGEtZmFjdG9yeS5QbG8KLStAQU1ERVBfVFJVRUBAYW1fX2Zh c3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3Fs L2ZhY3RvcnkuY3BwJyBvYmplY3Q9J2xpYnNvY2lfbXlzcWxfbGEtZmFjdG9yeS5sbycgbGlidG9v bD15ZXMgQEFNREVQQkFDS1NMQVNIQAotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxT RUAJREVQRElSPSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NM QVNIQAotK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9M SUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZT KSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxB R1MpICQobGlic29jaV9teXNxbF9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLWMgLW8gbGlic29j aV9teXNxbF9sYS1mYWN0b3J5LmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2Vu ZHMvbXlzcWwvZmFjdG9yeS5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikv c29jaS9iYWNrZW5kcy9teXNxbC9mYWN0b3J5LmNwcAotKwotK2xpYnNvY2lfbXlzcWxfbGEtcm93 LWlkLmxvOiAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvcm93LWlkLmNwcAotK0Bh bV9fZmFzdGRlcENYWF9UUlVFQAkkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFH UykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVM VF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJz b2NpX215c3FsX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtTVQgbGlic29jaV9teXNxbF9sYS1y b3ctaWQubG8gLU1EIC1NUCAtTUYgJChERVBESVIpL2xpYnNvY2lfbXlzcWxfbGEtcm93LWlkLlRw byAtYyAtbyBsaWJzb2NpX215c3FsX2xhLXJvdy1pZC5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGly KS9zb2NpL2JhY2tlbmRzL215c3FsL3Jvdy1pZC5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQo dG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9yb3ctaWQuY3BwCi0rQGFtX19mYXN0ZGVw Q1hYX1RSVUVACW12IC1mICQoREVQRElSKS9saWJzb2NpX215c3FsX2xhLXJvdy1pZC5UcG8gJChE RVBESVIpL2xpYnNvY2lfbXlzcWxfbGEtcm93LWlkLlBsbwotK0BBTURFUF9UUlVFQEBhbV9fZmFz dGRlcENYWF9GQUxTRUAJc291cmNlPSckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwv cm93LWlkLmNwcCcgb2JqZWN0PSdsaWJzb2NpX215c3FsX2xhLXJvdy1pZC5sbycgbGlidG9vbD15 ZXMgQEFNREVQQkFDS1NMQVNIQAotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJ REVQRElSPSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNI QAotK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJU T09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAk KERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1Mp ICQobGlic29jaV9teXNxbF9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLWMgLW8gbGlic29jaV9t eXNxbF9sYS1yb3ctaWQubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9t eXNxbC9yb3ctaWQuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kv YmFja2VuZHMvbXlzcWwvcm93LWlkLmNwcAotKwotK2xpYnNvY2lfbXlzcWxfbGEtc2Vzc2lvbi5s bzogJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3Nlc3Npb24uY3BwCi0rQGFtX19m YXN0ZGVwQ1hYX1RSVUVACSQoTElCVE9PTCkgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAk KExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lO Q0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lf bXlzcWxfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1NVCBsaWJzb2NpX215c3FsX2xhLXNlc3Np b24ubG8gLU1EIC1NUCAtTUYgJChERVBESVIpL2xpYnNvY2lfbXlzcWxfbGEtc2Vzc2lvbi5UcG8g LWMgLW8gbGlic29jaV9teXNxbF9sYS1zZXNzaW9uLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIp L3NvY2kvYmFja2VuZHMvbXlzcWwvc2Vzc2lvbi5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQo dG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9zZXNzaW9uLmNwcAotK0BhbV9fZmFzdGRl cENYWF9UUlVFQAltdiAtZiAkKERFUERJUikvbGlic29jaV9teXNxbF9sYS1zZXNzaW9uLlRwbyAk KERFUERJUikvbGlic29jaV9teXNxbF9sYS1zZXNzaW9uLlBsbwotK0BBTURFUF9UUlVFQEBhbV9f ZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlz cWwvc2Vzc2lvbi5jcHAnIG9iamVjdD0nbGlic29jaV9teXNxbF9sYS1zZXNzaW9uLmxvJyBsaWJ0 b29sPXllcyBAQU1ERVBCQUNLU0xBU0hACi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZB TFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNL U0xBU0hACi0rQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFN X0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERF RlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBG TEFHUykgJChsaWJzb2NpX215c3FsX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtYyAtbyBsaWJz b2NpX215c3FsX2xhLXNlc3Npb24ubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNr ZW5kcy9teXNxbC9zZXNzaW9uLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGly KS9zb2NpL2JhY2tlbmRzL215c3FsL3Nlc3Npb24uY3BwCi0rCi0rbGlic29jaV9teXNxbF9sYS1z dGFuZGFyZC1pbnRvLXR5cGUubG86ICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9z dGFuZGFyZC1pbnRvLXR5cGUuY3BwCi0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoTElCVE9PTCkg LS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBp bGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQ UEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfbXlzcWxfbGFfQ1hYRkxBR1MpICQoQ1hYRkxB R1MpIC1NVCBsaWJzb2NpX215c3FsX2xhLXN0YW5kYXJkLWludG8tdHlwZS5sbyAtTUQgLU1QIC1N RiAkKERFUERJUikvbGlic29jaV9teXNxbF9sYS1zdGFuZGFyZC1pbnRvLXR5cGUuVHBvIC1jIC1v IGxpYnNvY2lfbXlzcWxfbGEtc3RhbmRhcmQtaW50by10eXBlLmxvIGB0ZXN0IC1mICckKHRvcF9z cmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvc3RhbmRhcmQtaW50by10eXBlLmNwcCcgfHwgZWNo byAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3N0YW5kYXJk LWludG8tdHlwZS5jcHAKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJbXYgLWYgJChERVBESVIpL2xp YnNvY2lfbXlzcWxfbGEtc3RhbmRhcmQtaW50by10eXBlLlRwbyAkKERFUERJUikvbGlic29jaV9t eXNxbF9sYS1zdGFuZGFyZC1pbnRvLXR5cGUuUGxvCi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVw Q1hYX0ZBTFNFQAlzb3VyY2U9JyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9zdGFu ZGFyZC1pbnRvLXR5cGUuY3BwJyBvYmplY3Q9J2xpYnNvY2lfbXlzcWxfbGEtc3RhbmRhcmQtaW50 by10eXBlLmxvJyBsaWJ0b29sPXllcyBAQU1ERVBCQUNLU0xBU0hACi0rQEFNREVQX1RSVUVAQGFt X19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBj b21wKSBAQU1ERVBCQUNLU0xBU0hACi0rQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKExJQlRPT0wp IC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21w aWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9D UFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX215c3FsX2xhX0NYWEZMQUdTKSAkKENYWEZM QUdTKSAtYyAtbyBsaWJzb2NpX215c3FsX2xhLXN0YW5kYXJkLWludG8tdHlwZS5sbyBgdGVzdCAt ZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3N0YW5kYXJkLWludG8tdHlwZS5j cHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNx bC9zdGFuZGFyZC1pbnRvLXR5cGUuY3BwCi0rCi0rbGlic29jaV9teXNxbF9sYS1zdGFuZGFyZC11 c2UtdHlwZS5sbzogJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3N0YW5kYXJkLXVz ZS10eXBlLmNwcAotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKExJQlRPT0wpIC0tdGFnPUNYWCAk KEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAk KERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChD UFBGTEFHUykgJChsaWJzb2NpX215c3FsX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtTVQgbGli c29jaV9teXNxbF9sYS1zdGFuZGFyZC11c2UtdHlwZS5sbyAtTUQgLU1QIC1NRiAkKERFUERJUikv bGlic29jaV9teXNxbF9sYS1zdGFuZGFyZC11c2UtdHlwZS5UcG8gLWMgLW8gbGlic29jaV9teXNx bF9sYS1zdGFuZGFyZC11c2UtdHlwZS5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2Jh Y2tlbmRzL215c3FsL3N0YW5kYXJkLXVzZS10eXBlLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydg JCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3N0YW5kYXJkLXVzZS10eXBlLmNwcAot K0BhbV9fZmFzdGRlcENYWF9UUlVFQAltdiAtZiAkKERFUERJUikvbGlic29jaV9teXNxbF9sYS1z dGFuZGFyZC11c2UtdHlwZS5UcG8gJChERVBESVIpL2xpYnNvY2lfbXlzcWxfbGEtc3RhbmRhcmQt dXNlLXR5cGUuUGxvCi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9 JyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9zdGFuZGFyZC11c2UtdHlwZS5jcHAn IG9iamVjdD0nbGlic29jaV9teXNxbF9sYS1zdGFuZGFyZC11c2UtdHlwZS5sbycgbGlidG9vbD15 ZXMgQEFNREVQQkFDS1NMQVNIQAotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJ REVQRElSPSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNI QAotK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJU T09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAk KERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1Mp ICQobGlic29jaV9teXNxbF9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLWMgLW8gbGlic29jaV9t eXNxbF9sYS1zdGFuZGFyZC11c2UtdHlwZS5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2Np L2JhY2tlbmRzL215c3FsL3N0YW5kYXJkLXVzZS10eXBlLmNwcCcgfHwgZWNobyAnJChzcmNkaXIp LydgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3N0YW5kYXJkLXVzZS10eXBlLmNw cAotKwotK2xpYnNvY2lfbXlzcWxfbGEtc3RhdGVtZW50LmxvOiAkKHRvcF9zcmNkaXIpL3NvY2kv YmFja2VuZHMvbXlzcWwvc3RhdGVtZW50LmNwcAotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKExJ QlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9k ZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykg JChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX215c3FsX2xhX0NYWEZMQUdTKSAk KENYWEZMQUdTKSAtTVQgbGlic29jaV9teXNxbF9sYS1zdGF0ZW1lbnQubG8gLU1EIC1NUCAtTUYg JChERVBESVIpL2xpYnNvY2lfbXlzcWxfbGEtc3RhdGVtZW50LlRwbyAtYyAtbyBsaWJzb2NpX215 c3FsX2xhLXN0YXRlbWVudC5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRz L215c3FsL3N0YXRlbWVudC5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikv c29jaS9iYWNrZW5kcy9teXNxbC9zdGF0ZW1lbnQuY3BwCi0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVA CW12IC1mICQoREVQRElSKS9saWJzb2NpX215c3FsX2xhLXN0YXRlbWVudC5UcG8gJChERVBESVIp L2xpYnNvY2lfbXlzcWxfbGEtc3RhdGVtZW50LlBsbwotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRl cENYWF9GQUxTRUAJc291cmNlPSckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvc3Rh dGVtZW50LmNwcCcgb2JqZWN0PSdsaWJzb2NpX215c3FsX2xhLXN0YXRlbWVudC5sbycgbGlidG9v bD15ZXMgQEFNREVQQkFDS1NMQVNIQAotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxT RUAJREVQRElSPSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NM QVNIQAotK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9M SUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZT KSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxB R1MpICQobGlic29jaV9teXNxbF9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLWMgLW8gbGlic29j aV9teXNxbF9sYS1zdGF0ZW1lbnQubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNr ZW5kcy9teXNxbC9zdGF0ZW1lbnQuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNk aXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvc3RhdGVtZW50LmNwcAotKwotK2xpYnNvY2lfbXlzcWxf bGEtdmVjdG9yLWludG8tdHlwZS5sbzogJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3Fs L3ZlY3Rvci1pbnRvLXR5cGUuY3BwCi0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoTElCVE9PTCkg LS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBp bGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQ UEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfbXlzcWxfbGFfQ1hYRkxBR1MpICQoQ1hYRkxB R1MpIC1NVCBsaWJzb2NpX215c3FsX2xhLXZlY3Rvci1pbnRvLXR5cGUubG8gLU1EIC1NUCAtTUYg JChERVBESVIpL2xpYnNvY2lfbXlzcWxfbGEtdmVjdG9yLWludG8tdHlwZS5UcG8gLWMgLW8gbGli c29jaV9teXNxbF9sYS12ZWN0b3ItaW50by10eXBlLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIp L3NvY2kvYmFja2VuZHMvbXlzcWwvdmVjdG9yLWludG8tdHlwZS5jcHAnIHx8IGVjaG8gJyQoc3Jj ZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC92ZWN0b3ItaW50by10eXBl LmNwcAotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAltdiAtZiAkKERFUERJUikvbGlic29jaV9teXNx bF9sYS12ZWN0b3ItaW50by10eXBlLlRwbyAkKERFUERJUikvbGlic29jaV9teXNxbF9sYS12ZWN0 b3ItaW50by10eXBlLlBsbwotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291 cmNlPSckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvdmVjdG9yLWludG8tdHlwZS5j cHAnIG9iamVjdD0nbGlic29jaV9teXNxbF9sYS12ZWN0b3ItaW50by10eXBlLmxvJyBsaWJ0b29s PXllcyBAQU1ERVBCQUNLU0xBU0hACi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNF QAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xB U0hACi0rQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJ QlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMp ICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFH UykgJChsaWJzb2NpX215c3FsX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtYyAtbyBsaWJzb2Np X215c3FsX2xhLXZlY3Rvci1pbnRvLXR5cGUubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29j aS9iYWNrZW5kcy9teXNxbC92ZWN0b3ItaW50by10eXBlLmNwcCcgfHwgZWNobyAnJChzcmNkaXIp LydgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3ZlY3Rvci1pbnRvLXR5cGUuY3Bw Ci0rCi0rbGlic29jaV9teXNxbF9sYS12ZWN0b3ItdXNlLXR5cGUubG86ICQodG9wX3NyY2Rpcikv c29jaS9iYWNrZW5kcy9teXNxbC92ZWN0b3ItdXNlLXR5cGUuY3BwCi0rQGFtX19mYXN0ZGVwQ1hY X1RSVUVACSQoTElCVE9PTCkgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xG TEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAk KElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfbXlzcWxfbGFf Q1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1NVCBsaWJzb2NpX215c3FsX2xhLXZlY3Rvci11c2UtdHlw ZS5sbyAtTUQgLU1QIC1NRiAkKERFUERJUikvbGlic29jaV9teXNxbF9sYS12ZWN0b3ItdXNlLXR5 cGUuVHBvIC1jIC1vIGxpYnNvY2lfbXlzcWxfbGEtdmVjdG9yLXVzZS10eXBlLmxvIGB0ZXN0IC1m ICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvdmVjdG9yLXVzZS10eXBlLmNwcCcg fHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3Zl Y3Rvci11c2UtdHlwZS5jcHAKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJbXYgLWYgJChERVBESVIp L2xpYnNvY2lfbXlzcWxfbGEtdmVjdG9yLXVzZS10eXBlLlRwbyAkKERFUERJUikvbGlic29jaV9t eXNxbF9sYS12ZWN0b3ItdXNlLXR5cGUuUGxvCi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hY X0ZBTFNFQAlzb3VyY2U9JyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC92ZWN0b3It dXNlLXR5cGUuY3BwJyBvYmplY3Q9J2xpYnNvY2lfbXlzcWxfbGEtdmVjdG9yLXVzZS10eXBlLmxv JyBsaWJ0b29sPXllcyBAQU1ERVBCQUNLU0xBU0hACi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVw Q1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1E RVBCQUNLU0xBU0hACi0rQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKExJQlRPT0wpIC0tdGFnPUNY WCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hY KSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykg JChDUFBGTEFHUykgJChsaWJzb2NpX215c3FsX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtYyAt byBsaWJzb2NpX215c3FsX2xhLXZlY3Rvci11c2UtdHlwZS5sbyBgdGVzdCAtZiAnJCh0b3Bfc3Jj ZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3ZlY3Rvci11c2UtdHlwZS5jcHAnIHx8IGVjaG8gJyQo c3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC92ZWN0b3ItdXNlLXR5 cGUuY3BwCi0rCi0rbW9zdGx5Y2xlYW4tbGlidG9vbDoKLSsJLXJtIC1mICoubG8KLSsKLStjbGVh bi1saWJ0b29sOgotKwktcm0gLXJmIC5saWJzIF9saWJzCi0raW5zdGFsbC1wa2dpbmNsdWRlSEVB REVSUzogJChwa2dpbmNsdWRlX0hFQURFUlMpCi0rCUAkKE5PUk1BTF9JTlNUQUxMKQotKwl0ZXN0 IC16ICIkKHBrZ2luY2x1ZGVkaXIpIiB8fCAkKE1LRElSX1ApICIkKERFU1RESVIpJChwa2dpbmNs dWRlZGlyKSIKLSsJQGxpc3Q9JyQocGtnaW5jbHVkZV9IRUFERVJTKSc7IGZvciBwIGluICQkbGlz dDsgZG8gXAotKwkgIGlmIHRlc3QgLWYgIiQkcCI7IHRoZW4gZD07IGVsc2UgZD0iJChzcmNkaXIp LyI7IGZpOyBcCi0rCSAgZj0kKGFtX19zdHJpcF9kaXIpIFwKLSsJICBlY2hvICIgJChwa2dpbmNs dWRlSEVBREVSU19JTlNUQUxMKSAnJCRkJCRwJyAnJChERVNURElSKSQocGtnaW5jbHVkZWRpcikv JCRmJyI7IFwKLSsJICAkKHBrZ2luY2x1ZGVIRUFERVJTX0lOU1RBTEwpICIkJGQkJHAiICIkKERF U1RESVIpJChwa2dpbmNsdWRlZGlyKS8kJGYiOyBcCi0rCWRvbmUKLSsKLSt1bmluc3RhbGwtcGtn aW5jbHVkZUhFQURFUlM6Ci0rCUAkKE5PUk1BTF9VTklOU1RBTEwpCi0rCUBsaXN0PSckKHBrZ2lu Y2x1ZGVfSEVBREVSUyknOyBmb3IgcCBpbiAkJGxpc3Q7IGRvIFwKLSsJICBmPSQoYW1fX3N0cmlw X2RpcikgXAotKwkgIGVjaG8gIiBybSAtZiAnJChERVNURElSKSQocGtnaW5jbHVkZWRpcikvJCRm JyI7IFwKLSsJICBybSAtZiAiJChERVNURElSKSQocGtnaW5jbHVkZWRpcikvJCRmIjsgXAotKwlk b25lCi0rCi0rIyBUaGlzIGRpcmVjdG9yeSdzIHN1YmRpcmVjdG9yaWVzIGFyZSBtb3N0bHkgaW5k ZXBlbmRlbnQ7IHlvdSBjYW4gY2QKLSsjIGludG8gdGhlbSBhbmQgcnVuIGBtYWtlJyB3aXRob3V0 IGdvaW5nIHRocm91Z2ggdGhpcyBNYWtlZmlsZS4KLSsjIFRvIGNoYW5nZSB0aGUgdmFsdWVzIG9m IGBtYWtlJyB2YXJpYWJsZXM6IGluc3RlYWQgb2YgZWRpdGluZyBNYWtlZmlsZXMsCi0rIyAoMSkg aWYgdGhlIHZhcmlhYmxlIGlzIHNldCBpbiBgY29uZmlnLnN0YXR1cycsIGVkaXQgYGNvbmZpZy5z dGF0dXMnCi0rIyAgICAgKHdoaWNoIHdpbGwgY2F1c2UgdGhlIE1ha2VmaWxlcyB0byBiZSByZWdl bmVyYXRlZCB3aGVuIHlvdSBydW4gYG1ha2UnKTsKLSsjICgyKSBvdGhlcndpc2UsIHBhc3MgdGhl IGRlc2lyZWQgdmFsdWVzIG9uIHRoZSBgbWFrZScgY29tbWFuZCBsaW5lLgotKyQoUkVDVVJTSVZF X1RBUkdFVFMpOgotKwlAZmFpbGNvbT0nZXhpdCAxJzsgXAotKwlmb3IgZiBpbiB4ICQkTUFLRUZM QUdTOyBkbyBcCi0rCSAgY2FzZSAkJGYgaW4gXAotKwkgICAgKj0qIHwgLS1bIWtdKik7OyBcCi0r CSAgICAqayopIGZhaWxjb209J2ZhaWw9eWVzJzs7IFwKLSsJICBlc2FjOyBcCi0rCWRvbmU7IFwK LSsJZG90X3NlZW49bm87IFwKLSsJdGFyZ2V0PWBlY2hvICRAIHwgc2VkIHMvLXJlY3Vyc2l2ZS8v YDsgXAotKwlsaXN0PSckKFNVQkRJUlMpJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKLSsJ ICBlY2hvICJNYWtpbmcgJCR0YXJnZXQgaW4gJCRzdWJkaXIiOyBcCi0rCSAgaWYgdGVzdCAiJCRz dWJkaXIiID0gIi4iOyB0aGVuIFwKLSsJICAgIGRvdF9zZWVuPXllczsgXAotKwkgICAgbG9jYWxf dGFyZ2V0PSIkJHRhcmdldC1hbSI7IFwKLSsJICBlbHNlIFwKLSsJICAgIGxvY2FsX3RhcmdldD0i JCR0YXJnZXQiOyBcCi0rCSAgZmk7IFwKLSsJICAoY2QgJCRzdWJkaXIgJiYgJChNQUtFKSAkKEFN X01BS0VGTEFHUykgJCRsb2NhbF90YXJnZXQpIFwKLSsJICB8fCBldmFsICQkZmFpbGNvbTsgXAot Kwlkb25lOyBcCi0rCWlmIHRlc3QgIiQkZG90X3NlZW4iID0gIm5vIjsgdGhlbiBcCi0rCSAgJChN QUtFKSAkKEFNX01BS0VGTEFHUykgIiQkdGFyZ2V0LWFtIiB8fCBleGl0IDE7IFwKLSsJZmk7IHRl c3QgLXogIiQkZmFpbCIKLSsKLSskKFJFQ1VSU0lWRV9DTEVBTl9UQVJHRVRTKToKLSsJQGZhaWxj b209J2V4aXQgMSc7IFwKLSsJZm9yIGYgaW4geCAkJE1BS0VGTEFHUzsgZG8gXAotKwkgIGNhc2Ug JCRmIGluIFwKLSsJICAgICo9KiB8IC0tWyFrXSopOzsgXAotKwkgICAgKmsqKSBmYWlsY29tPSdm YWlsPXllcyc7OyBcCi0rCSAgZXNhYzsgXAotKwlkb25lOyBcCi0rCWRvdF9zZWVuPW5vOyBcCi0r CWNhc2UgIiRAIiBpbiBcCi0rCSAgZGlzdGNsZWFuLSogfCBtYWludGFpbmVyLWNsZWFuLSopIGxp c3Q9JyQoRElTVF9TVUJESVJTKScgOzsgXAotKwkgICopIGxpc3Q9JyQoU1VCRElSUyknIDs7IFwK LSsJZXNhYzsgXAotKwlyZXY9Jyc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCi0rCSAgaWYg dGVzdCAiJCRzdWJkaXIiID0gIi4iOyB0aGVuIDo7IGVsc2UgXAotKwkgICAgcmV2PSIkJHN1YmRp ciAkJHJldiI7IFwKLSsJICBmaTsgXAotKwlkb25lOyBcCi0rCXJldj0iJCRyZXYgLiI7IFwKLSsJ dGFyZ2V0PWBlY2hvICRAIHwgc2VkIHMvLXJlY3Vyc2l2ZS8vYDsgXAotKwlmb3Igc3ViZGlyIGlu ICQkcmV2OyBkbyBcCi0rCSAgZWNobyAiTWFraW5nICQkdGFyZ2V0IGluICQkc3ViZGlyIjsgXAot KwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9ICIuIjsgdGhlbiBcCi0rCSAgICBsb2NhbF90YXJnZXQ9 IiQkdGFyZ2V0LWFtIjsgXAotKwkgIGVsc2UgXAotKwkgICAgbG9jYWxfdGFyZ2V0PSIkJHRhcmdl dCI7IFwKLSsJICBmaTsgXAotKwkgIChjZCAkJHN1YmRpciAmJiAkKE1BS0UpICQoQU1fTUFLRUZM QUdTKSAkJGxvY2FsX3RhcmdldCkgXAotKwkgIHx8IGV2YWwgJCRmYWlsY29tOyBcCi0rCWRvbmUg JiYgdGVzdCAteiAiJCRmYWlsIgotK3RhZ3MtcmVjdXJzaXZlOgotKwlsaXN0PSckKFNVQkRJUlMp JzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKLSsJICB0ZXN0ICIkJHN1YmRpciIgPSAuIHx8 IChjZCAkJHN1YmRpciAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSB0YWdzKTsgXAotKwlkb25l Ci0rY3RhZ3MtcmVjdXJzaXZlOgotKwlsaXN0PSckKFNVQkRJUlMpJzsgZm9yIHN1YmRpciBpbiAk JGxpc3Q7IGRvIFwKLSsJICB0ZXN0ICIkJHN1YmRpciIgPSAuIHx8IChjZCAkJHN1YmRpciAmJiAk KE1BS0UpICQoQU1fTUFLRUZMQUdTKSBjdGFncyk7IFwKLSsJZG9uZQotKwotK0lEOiAkKEhFQURF UlMpICQoU09VUkNFUykgJChMSVNQKSAkKFRBR1NfRklMRVMpCi0rCWxpc3Q9JyQoU09VUkNFUykg JChIRUFERVJTKSAkKExJU1ApICQoVEFHU19GSUxFUyknOyBcCi0rCXVuaXF1ZT1gZm9yIGkgaW4g JCRsaXN0OyBkbyBcCi0rCSAgICBpZiB0ZXN0IC1mICIkJGkiOyB0aGVuIGVjaG8gJCRpOyBlbHNl IGVjaG8gJChzcmNkaXIpLyQkaTsgZmk7IFwKLSsJICBkb25lIHwgXAotKwkgICQoQVdLKSAneyBm aWxlc1skJDBdID0gMTsgbm9uZW1wdHkgPSAxOyB9IFwKLSsJICAgICAgRU5EIHsgaWYgKG5vbmVt cHR5KSB7IGZvciAoaSBpbiBmaWxlcykgcHJpbnQgaTsgfTsgfSdgOyBcCi0rCW1raWQgLWZJRCAk JHVuaXF1ZQotK3RhZ3M6IFRBR1MKLSsKLStUQUdTOiB0YWdzLXJlY3Vyc2l2ZSAkKEhFQURFUlMp ICQoU09VUkNFUykgICQoVEFHU19ERVBFTkRFTkNJRVMpIFwKLSsJCSQoVEFHU19GSUxFUykgJChM SVNQKQotKwl0YWdzPTsgXAotKwloZXJlPWBwd2RgOyBcCi0rCWlmICgkKEVUQUdTKSAtLWV0YWdz LWluY2x1ZGUgLS12ZXJzaW9uKSA+L2Rldi9udWxsIDI+JjE7IHRoZW4gXAotKwkgIGluY2x1ZGVf b3B0aW9uPS0tZXRhZ3MtaW5jbHVkZTsgXAotKwkgIGVtcHR5X2ZpeD0uOyBcCi0rCWVsc2UgXAot KwkgIGluY2x1ZGVfb3B0aW9uPS0taW5jbHVkZTsgXAotKwkgIGVtcHR5X2ZpeD07IFwKLSsJZmk7 IFwKLSsJbGlzdD0nJChTVUJESVJTKSc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCi0rCSAg aWYgdGVzdCAiJCRzdWJkaXIiID0gLjsgdGhlbiA6OyBlbHNlIFwKLSsJICAgIHRlc3QgISAtZiAk JHN1YmRpci9UQUdTIHx8IFwKLSsJICAgICAgdGFncz0iJCR0YWdzICQkaW5jbHVkZV9vcHRpb249 JCRoZXJlLyQkc3ViZGlyL1RBR1MiOyBcCi0rCSAgZmk7IFwKLSsJZG9uZTsgXAotKwlsaXN0PSck KFNPVVJDRVMpICQoSEVBREVSUykgICQoTElTUCkgJChUQUdTX0ZJTEVTKSc7IFwKLSsJdW5pcXVl PWBmb3IgaSBpbiAkJGxpc3Q7IGRvIFwKLSsJICAgIGlmIHRlc3QgLWYgIiQkaSI7IHRoZW4gZWNo byAkJGk7IGVsc2UgZWNobyAkKHNyY2RpcikvJCRpOyBmaTsgXAotKwkgIGRvbmUgfCBcCi0rCSAg JChBV0spICd7IGZpbGVzWyQkMF0gPSAxOyBub25lbXB0eSA9IDE7IH0gXAotKwkgICAgICBFTkQg eyBpZiAobm9uZW1wdHkpIHsgZm9yIChpIGluIGZpbGVzKSBwcmludCBpOyB9OyB9J2A7IFwKLSsJ aWYgdGVzdCAteiAiJChFVEFHU19BUkdTKSQkdGFncyQkdW5pcXVlIjsgdGhlbiA6OyBlbHNlIFwK LSsJICB0ZXN0IC1uICIkJHVuaXF1ZSIgfHwgdW5pcXVlPSQkZW1wdHlfZml4OyBcCi0rCSAgJChF VEFHUykgJChFVEFHU0ZMQUdTKSAkKEFNX0VUQUdTRkxBR1MpICQoRVRBR1NfQVJHUykgXAotKwkg ICAgJCR0YWdzICQkdW5pcXVlOyBcCi0rCWZpCi0rY3RhZ3M6IENUQUdTCi0rQ1RBR1M6IGN0YWdz LXJlY3Vyc2l2ZSAkKEhFQURFUlMpICQoU09VUkNFUykgICQoVEFHU19ERVBFTkRFTkNJRVMpIFwK LSsJCSQoVEFHU19GSUxFUykgJChMSVNQKQotKwl0YWdzPTsgXAotKwlsaXN0PSckKFNPVVJDRVMp ICQoSEVBREVSUykgICQoTElTUCkgJChUQUdTX0ZJTEVTKSc7IFwKLSsJdW5pcXVlPWBmb3IgaSBp biAkJGxpc3Q7IGRvIFwKLSsJICAgIGlmIHRlc3QgLWYgIiQkaSI7IHRoZW4gZWNobyAkJGk7IGVs c2UgZWNobyAkKHNyY2RpcikvJCRpOyBmaTsgXAotKwkgIGRvbmUgfCBcCi0rCSAgJChBV0spICd7 IGZpbGVzWyQkMF0gPSAxOyBub25lbXB0eSA9IDE7IH0gXAotKwkgICAgICBFTkQgeyBpZiAobm9u ZW1wdHkpIHsgZm9yIChpIGluIGZpbGVzKSBwcmludCBpOyB9OyB9J2A7IFwKLSsJdGVzdCAteiAi JChDVEFHU19BUkdTKSQkdGFncyQkdW5pcXVlIiBcCi0rCSAgfHwgJChDVEFHUykgJChDVEFHU0ZM QUdTKSAkKEFNX0NUQUdTRkxBR1MpICQoQ1RBR1NfQVJHUykgXAotKwkgICAgICQkdGFncyAkJHVu aXF1ZQotKwotK0dUQUdTOgotKwloZXJlPWAkKGFtX19jZCkgJCh0b3BfYnVpbGRkaXIpICYmIHB3 ZGAgXAotKwkgICYmIGNkICQodG9wX3NyY2RpcikgXAotKwkgICYmIGd0YWdzIC1pICQoR1RBR1Nf QVJHUykgJCRoZXJlCi0rCi0rZGlzdGNsZWFuLXRhZ3M6Ci0rCS1ybSAtZiBUQUdTIElEIEdUQUdT IEdSVEFHUyBHU1lNUyBHUEFUSCB0YWdzCi0rCi0rZGlzdGRpcjogJChESVNURklMRVMpCi0rCUBz cmNkaXJzdHJpcD1gZWNobyAiJChzcmNkaXIpIiB8IHNlZCAncy9bXS5bXiQkXFwqXS9cXFxcJi9n J2A7IFwKLSsJdG9wc3JjZGlyc3RyaXA9YGVjaG8gIiQodG9wX3NyY2RpcikiIHwgc2VkICdzL1td LlteJCRcXCpdL1xcXFwmL2cnYDsgXAotKwlsaXN0PSckKERJU1RGSUxFUyknOyBcCi0rCSAgZGlz dF9maWxlcz1gZm9yIGZpbGUgaW4gJCRsaXN0OyBkbyBlY2hvICQkZmlsZTsgZG9uZSB8IFwKLSsJ ICBzZWQgLWUgInN8XiQkc3JjZGlyc3RyaXAvfHw7dCIgXAotKwkgICAgICAtZSAic3xeJCR0b3Bz cmNkaXJzdHJpcC98JCh0b3BfYnVpbGRkaXIpL3w7dCJgOyBcCi0rCWNhc2UgJCRkaXN0X2ZpbGVz IGluIFwKLSsJICAqLyopICQoTUtESVJfUCkgYGVjaG8gIiQkZGlzdF9maWxlcyIgfCBcCi0rCQkJ ICAgc2VkICcvXC8vIWQ7c3xefCQoZGlzdGRpcikvfDtzLC9bXi9dKiQkLCwnIHwgXAotKwkJCSAg IHNvcnQgLXVgIDs7IFwKLSsJZXNhYzsgXAotKwlmb3IgZmlsZSBpbiAkJGRpc3RfZmlsZXM7IGRv IFwKLSsJICBpZiB0ZXN0IC1mICQkZmlsZSB8fCB0ZXN0IC1kICQkZmlsZTsgdGhlbiBkPS47IGVs c2UgZD0kKHNyY2Rpcik7IGZpOyBcCi0rCSAgaWYgdGVzdCAtZCAkJGQvJCRmaWxlOyB0aGVuIFwK LSsJICAgIGRpcj1gZWNobyAiLyQkZmlsZSIgfCBzZWQgLWUgJ3MsL1teL10qJCQsLCdgOyBcCi0r CSAgICBpZiB0ZXN0IC1kICQoc3JjZGlyKS8kJGZpbGUgJiYgdGVzdCAkJGQgIT0gJChzcmNkaXIp OyB0aGVuIFwKLSsJICAgICAgY3AgLXBSICQoc3JjZGlyKS8kJGZpbGUgJChkaXN0ZGlyKSQkZGly IHx8IGV4aXQgMTsgXAotKwkgICAgZmk7IFwKLSsJICAgIGNwIC1wUiAkJGQvJCRmaWxlICQoZGlz dGRpcikkJGRpciB8fCBleGl0IDE7IFwKLSsJICBlbHNlIFwKLSsJICAgIHRlc3QgLWYgJChkaXN0 ZGlyKS8kJGZpbGUgXAotKwkgICAgfHwgY3AgLXAgJCRkLyQkZmlsZSAkKGRpc3RkaXIpLyQkZmls ZSBcCi0rCSAgICB8fCBleGl0IDE7IFwKLSsJICBmaTsgXAotKwlkb25lCi0rCWxpc3Q9JyQoRElT VF9TVUJESVJTKSc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCi0rCSAgaWYgdGVzdCAiJCRz dWJkaXIiID0gLjsgdGhlbiA6OyBlbHNlIFwKLSsJICAgIHRlc3QgLWQgIiQoZGlzdGRpcikvJCRz dWJkaXIiIFwKLSsJICAgIHx8ICQoTUtESVJfUCkgIiQoZGlzdGRpcikvJCRzdWJkaXIiIFwKLSsJ ICAgIHx8IGV4aXQgMTsgXAotKwkgICAgZGlzdGRpcj1gJChhbV9fY2QpICQoZGlzdGRpcikgJiYg cHdkYDsgXAotKwkgICAgdG9wX2Rpc3RkaXI9YCQoYW1fX2NkKSAkKHRvcF9kaXN0ZGlyKSAmJiBw d2RgOyBcCi0rCSAgICAoY2QgJCRzdWJkaXIgJiYgXAotKwkgICAgICAkKE1BS0UpICQoQU1fTUFL RUZMQUdTKSBcCi0rCSAgICAgICAgdG9wX2Rpc3RkaXI9IiQkdG9wX2Rpc3RkaXIiIFwKLSsJICAg ICAgICBkaXN0ZGlyPSIkJGRpc3RkaXIvJCRzdWJkaXIiIFwKLSsJCWFtX19yZW1vdmVfZGlzdGRp cj06IFwKLSsJCWFtX19za2lwX2xlbmd0aF9jaGVjaz06IFwKLSsJICAgICAgICBkaXN0ZGlyKSBc Ci0rCSAgICAgIHx8IGV4aXQgMTsgXAotKwkgIGZpOyBcCi0rCWRvbmUKLStjaGVjay1hbTogYWxs LWFtCi0rY2hlY2s6IGNoZWNrLXJlY3Vyc2l2ZQotK2FsbC1hbTogTWFrZWZpbGUgJChMVExJQlJB UklFUykgJChIRUFERVJTKQotK2luc3RhbGxkaXJzOiBpbnN0YWxsZGlycy1yZWN1cnNpdmUKLStp bnN0YWxsZGlycy1hbToKLSsJZm9yIGRpciBpbiAiJChERVNURElSKSQobGliZGlyKSIgIiQoREVT VERJUikkKHBrZ2luY2x1ZGVkaXIpIjsgZG8gXAotKwkgIHRlc3QgLXogIiQkZGlyIiB8fCAkKE1L RElSX1ApICIkJGRpciI7IFwKLSsJZG9uZQotK2luc3RhbGw6IGluc3RhbGwtcmVjdXJzaXZlCi0r aW5zdGFsbC1leGVjOiBpbnN0YWxsLWV4ZWMtcmVjdXJzaXZlCi0raW5zdGFsbC1kYXRhOiBpbnN0 YWxsLWRhdGEtcmVjdXJzaXZlCi0rdW5pbnN0YWxsOiB1bmluc3RhbGwtcmVjdXJzaXZlCi0rCi0r aW5zdGFsbC1hbTogYWxsLWFtCi0rCUAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBpbnN0YWxsLWV4 ZWMtYW0gaW5zdGFsbC1kYXRhLWFtCi0rCi0raW5zdGFsbGNoZWNrOiBpbnN0YWxsY2hlY2stcmVj dXJzaXZlCi0raW5zdGFsbC1zdHJpcDoKLSsJJChNQUtFKSAkKEFNX01BS0VGTEFHUykgSU5TVEFM TF9QUk9HUkFNPSIkKElOU1RBTExfU1RSSVBfUFJPR1JBTSkiIFwKLSsJICBpbnN0YWxsX3NoX1BS T0dSQU09IiQoSU5TVEFMTF9TVFJJUF9QUk9HUkFNKSIgSU5TVEFMTF9TVFJJUF9GTEFHPS1zIFwK LSsJICBgdGVzdCAteiAnJChTVFJJUCknIHx8IFwKLSsJICAgIGVjaG8gIklOU1RBTExfUFJPR1JB TV9FTlY9U1RSSVBQUk9HPSckKFNUUklQKSciYCBpbnN0YWxsCi0rbW9zdGx5Y2xlYW4tZ2VuZXJp YzoKLSsKLStjbGVhbi1nZW5lcmljOgotKwotK2Rpc3RjbGVhbi1nZW5lcmljOgotKwktdGVzdCAt eiAiJChDT05GSUdfQ0xFQU5fRklMRVMpIiB8fCBybSAtZiAkKENPTkZJR19DTEVBTl9GSUxFUykK LSsKLSttYWludGFpbmVyLWNsZWFuLWdlbmVyaWM6Ci0rCUBlY2hvICJUaGlzIGNvbW1hbmQgaXMg aW50ZW5kZWQgZm9yIG1haW50YWluZXJzIHRvIHVzZSIKLSsJQGVjaG8gIml0IGRlbGV0ZXMgZmls ZXMgdGhhdCBtYXkgcmVxdWlyZSBzcGVjaWFsIHRvb2xzIHRvIHJlYnVpbGQuIgotKwktdGVzdCAt eiAiJChNQUlOVEFJTkVSQ0xFQU5GSUxFUykiIHx8IHJtIC1mICQoTUFJTlRBSU5FUkNMRUFORklM RVMpCi0rY2xlYW46IGNsZWFuLXJlY3Vyc2l2ZQotKwotK2NsZWFuLWFtOiBjbGVhbi1nZW5lcmlj IGNsZWFuLWxpYkxUTElCUkFSSUVTIGNsZWFuLWxpYnRvb2wgXAotKwltb3N0bHljbGVhbi1hbQot KwotK2Rpc3RjbGVhbjogZGlzdGNsZWFuLXJlY3Vyc2l2ZQotKwktcm0gLXJmIC4vJChERVBESVIp Ci0rCS1ybSAtZiBNYWtlZmlsZQotK2Rpc3RjbGVhbi1hbTogY2xlYW4tYW0gZGlzdGNsZWFuLWNv bXBpbGUgZGlzdGNsZWFuLWdlbmVyaWMgXAotKwlkaXN0Y2xlYW4tdGFncwotKwotK2R2aTogZHZp LXJlY3Vyc2l2ZQotKwotK2R2aS1hbToKLSsKLStodG1sOiBodG1sLXJlY3Vyc2l2ZQotKwotK2lu Zm86IGluZm8tcmVjdXJzaXZlCi0rCi0raW5mby1hbToKLSsKLStpbnN0YWxsLWRhdGEtYW06IGlu c3RhbGwtcGtnaW5jbHVkZUhFQURFUlMKLSsKLStpbnN0YWxsLWR2aTogaW5zdGFsbC1kdmktcmVj dXJzaXZlCi0rCi0raW5zdGFsbC1leGVjLWFtOiBpbnN0YWxsLWxpYkxUTElCUkFSSUVTCi0rCi0r aW5zdGFsbC1odG1sOiBpbnN0YWxsLWh0bWwtcmVjdXJzaXZlCi0rCi0raW5zdGFsbC1pbmZvOiBp bnN0YWxsLWluZm8tcmVjdXJzaXZlCi0rCi0raW5zdGFsbC1tYW46Ci0rCi0raW5zdGFsbC1wZGY6 IGluc3RhbGwtcGRmLXJlY3Vyc2l2ZQotKwotK2luc3RhbGwtcHM6IGluc3RhbGwtcHMtcmVjdXJz aXZlCi0rCi0raW5zdGFsbGNoZWNrLWFtOgotKwotK21haW50YWluZXItY2xlYW46IG1haW50YWlu ZXItY2xlYW4tcmVjdXJzaXZlCi0rCS1ybSAtcmYgLi8kKERFUERJUikKLSsJLXJtIC1mIE1ha2Vm aWxlCi0rbWFpbnRhaW5lci1jbGVhbi1hbTogZGlzdGNsZWFuLWFtIG1haW50YWluZXItY2xlYW4t Z2VuZXJpYwotKwotK21vc3RseWNsZWFuOiBtb3N0bHljbGVhbi1yZWN1cnNpdmUKLSsKLSttb3N0 bHljbGVhbi1hbTogbW9zdGx5Y2xlYW4tY29tcGlsZSBtb3N0bHljbGVhbi1nZW5lcmljIFwKLSsJ bW9zdGx5Y2xlYW4tbGlidG9vbAotKwotK3BkZjogcGRmLXJlY3Vyc2l2ZQotKwotK3BkZi1hbToK LSsKLStwczogcHMtcmVjdXJzaXZlCi0rCi0rcHMtYW06Ci0rCi0rdW5pbnN0YWxsLWFtOiB1bmlu c3RhbGwtbGliTFRMSUJSQVJJRVMgdW5pbnN0YWxsLXBrZ2luY2x1ZGVIRUFERVJTCi0rCi0rLk1B S0U6ICQoUkVDVVJTSVZFX0NMRUFOX1RBUkdFVFMpICQoUkVDVVJTSVZFX1RBUkdFVFMpIGluc3Rh bGwtYW0gXAotKwlpbnN0YWxsLXN0cmlwCi0rCi0rLlBIT05ZOiAkKFJFQ1VSU0lWRV9DTEVBTl9U QVJHRVRTKSAkKFJFQ1VSU0lWRV9UQVJHRVRTKSBDVEFHUyBHVEFHUyBcCi0rCWFsbCBhbGwtYW0g Y2hlY2sgY2hlY2stYW0gY2xlYW4gY2xlYW4tZ2VuZXJpYyBcCi0rCWNsZWFuLWxpYkxUTElCUkFS SUVTIGNsZWFuLWxpYnRvb2wgY3RhZ3MgY3RhZ3MtcmVjdXJzaXZlIFwKLSsJZGlzdGNsZWFuIGRp c3RjbGVhbi1jb21waWxlIGRpc3RjbGVhbi1nZW5lcmljIFwKLSsJZGlzdGNsZWFuLWxpYnRvb2wg ZGlzdGNsZWFuLXRhZ3MgZGlzdGRpciBkdmkgZHZpLWFtIGh0bWwgXAotKwlodG1sLWFtIGluZm8g aW5mby1hbSBpbnN0YWxsIGluc3RhbGwtYW0gaW5zdGFsbC1kYXRhIFwKLSsJaW5zdGFsbC1kYXRh LWFtIGluc3RhbGwtZHZpIGluc3RhbGwtZHZpLWFtIGluc3RhbGwtZXhlYyBcCi0rCWluc3RhbGwt ZXhlYy1hbSBpbnN0YWxsLWh0bWwgaW5zdGFsbC1odG1sLWFtIGluc3RhbGwtaW5mbyBcCi0rCWlu c3RhbGwtaW5mby1hbSBpbnN0YWxsLWxpYkxUTElCUkFSSUVTIGluc3RhbGwtbWFuIGluc3RhbGwt cGRmIFwKLSsJaW5zdGFsbC1wZGYtYW0gaW5zdGFsbC1wa2dpbmNsdWRlSEVBREVSUyBpbnN0YWxs LXBzIFwKLSsJaW5zdGFsbC1wcy1hbSBpbnN0YWxsLXN0cmlwIGluc3RhbGxjaGVjayBpbnN0YWxs Y2hlY2stYW0gXAotKwlpbnN0YWxsZGlycyBpbnN0YWxsZGlycy1hbSBtYWludGFpbmVyLWNsZWFu IFwKLSsJbWFpbnRhaW5lci1jbGVhbi1nZW5lcmljIG1vc3RseWNsZWFuIG1vc3RseWNsZWFuLWNv bXBpbGUgXAotKwltb3N0bHljbGVhbi1nZW5lcmljIG1vc3RseWNsZWFuLWxpYnRvb2wgcGRmIHBk Zi1hbSBwcyBwcy1hbSBcCi0rCXRhZ3MgdGFncy1yZWN1cnNpdmUgdW5pbnN0YWxsIHVuaW5zdGFs bC1hbSBcCi0rCXVuaW5zdGFsbC1saWJMVExJQlJBUklFUyB1bmluc3RhbGwtcGtnaW5jbHVkZUhF QURFUlMKLSsKLStAU0VUX01BS0VACi0rIyBUZWxsIHZlcnNpb25zIFszLjU5LDMuNjMpIG9mIEdO VSBtYWtlIHRvIG5vdCBleHBvcnQgYWxsIHZhcmlhYmxlcy4KLSsjIE90aGVyd2lzZSBhIHN5c3Rl bSBsaW1pdCAoZm9yIFN5c1YgYXQgbGVhc3QpIG1heSBiZSBleGNlZWRlZC4KLSsuTk9FWFBPUlQ6 Ci1kaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9teXNxbC9zb2NpLW15 c3FsLmggc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvbXlzcWwvc29jaS1teXNxbC5o Ci0tLS0gc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9teXNxbC9zb2NpLW15c3FsLmgJ MjAwOS0wNS0yMyAxMzozNzowOS4wMDAwMDAwMDAgKzAyMDAKLSsrKyBzb2NpLTMuMC4wX3RyZXAz MDAvc29jaS9iYWNrZW5kcy9teXNxbC9zb2NpLW15c3FsLmgJMjAwOS0wNS0yMiAyMjo1NDoxOS4w MDAwMDAwMDAgKzAyMDAKLUBAIC0yMywxMiArMjMsMjMgQEAKLSAjaWZuZGVmIFNPQ0lfTVlTUUxf REVDTAotICMgZGVmaW5lIFNPQ0lfTVlTUUxfREVDTAotICNlbmRpZgotLQotLSNpbmNsdWRlICJz b2NpLWJhY2tlbmQuaCIKLSsvLwotKyNpZiBkZWZpbmVkKFNPQ0lfSEVBREVSU19CVVJJRUQpCi0r IyAgICAgICBpbmNsdWRlIDxzb2NpL2NvcmUvc29jaS1iYWNrZW5kLmg+Ci0rI2Vsc2UKLSsjCWlu Y2x1ZGUgPHNvY2ktYmFja2VuZC5oPgotKyNlbmRpZgotKy8vCi0gI2lmZGVmIF9XSU4zMgotICNp bmNsdWRlIDx3aW5zb2NrLmg+IC8vIFNPQ0tFVAotICNlbmRpZiAvLyBfV0lOMzIKLS0jaW5jbHVk ZSA8bXlzcWwuaD4gLy8gTXlTUUwgQ2xpZW50Ci0rLy8KLSsvLyBNeVNRTCBDbGllbnQKLSsjaWYg ZGVmaW5lZChTT0NJX01ZU1FMX0hFQURFUlNfQlVSSUVEKQotKyMgICAgICAgaW5jbHVkZSA8bXlz cWwvbXlzcWwuaD4KLSsjZWxzZQotKyMJaW5jbHVkZSA8bXlzcWwuaD4KLSsjZW5kaWYKLSAjaW5j bHVkZSA8dmVjdG9yPgotIAotIAotZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFj a2VuZHMvbXlzcWwvc291cmNlcy5tayBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9t eXNxbC9zb3VyY2VzLm1rCi0tLS0gc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9teXNx bC9zb3VyY2VzLm1rCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCi0rKysgc29j aS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvbXlzcWwvc291cmNlcy5tawkyMDA5LTA1LTIy IDIyOjU0OjE5LjAwMDAwMDAwMCArMDIwMAotQEAgLTAsMCArMSwxNCBAQAotK2Jja19teXNxbF9o X3NvdXJjZXMgPSBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwv Y29tbW9uLmggXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3Nv Y2ktbXlzcWwuaAotK2Jja19teXNxbF9jY19zb3VyY2VzID0gXAotKyAgICAgICAgJCh0b3Bfc3Jj ZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL2Jsb2IuY3BwIFwKLSsgICAgICAgICQodG9wX3NyY2Rp cikvc29jaS9iYWNrZW5kcy9teXNxbC9jb21tb24uY3BwIFwKLSsgICAgICAgICQodG9wX3NyY2Rp cikvc29jaS9iYWNrZW5kcy9teXNxbC9mYWN0b3J5LmNwcCBcCi0rICAgICAgICAkKHRvcF9zcmNk aXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvcm93LWlkLmNwcCBcCi0rICAgICAgICAkKHRvcF9zcmNk aXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvc2Vzc2lvbi5jcHAgXAotKyAgICAgICAgJCh0b3Bfc3Jj ZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3N0YW5kYXJkLWludG8tdHlwZS5jcHAgXAotKyAgICAg ICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3N0YW5kYXJkLXVzZS10eXBlLmNw cCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvc3RhdGVtZW50 LmNwcCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvdmVjdG9y LWludG8tdHlwZS5jcHAgXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215 c3FsL3ZlY3Rvci11c2UtdHlwZS5jcHAKLWRpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9zb2Np L2JhY2tlbmRzL215c3FsL3N0YW5kYXJkLWludG8tdHlwZS5jcHAgc29jaS0zLjAuMF90cmVwMzAw L3NvY2kvYmFja2VuZHMvbXlzcWwvc3RhbmRhcmQtaW50by10eXBlLmNwcAotLS0tIHNvY2ktMy4w LjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvbXlzcWwvc3RhbmRhcmQtaW50by10eXBlLmNwcAkyMDA5 LTA1LTIzIDEzOjM3OjA5LjAwMDAwMDAwMCArMDIwMAotKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9z b2NpL2JhY2tlbmRzL215c3FsL3N0YW5kYXJkLWludG8tdHlwZS5jcHAJMjAwOS0wNS0yMiAyMjo1 NDoxOS4wMDAwMDAwMDAgKzAyMDAKLUBAIC04LDggKzgsMTQgQEAKLSAKLSAjZGVmaW5lIFNPQ0lf TVlTUUxfU09VUkNFCi0gI2luY2x1ZGUgInNvY2ktbXlzcWwuaCIKLS0jaW5jbHVkZSA8c29jaS1w bGF0Zm9ybS5oPgotICNpbmNsdWRlICJjb21tb24uaCIKLSsvLwotKyNpZiBkZWZpbmVkKFNPQ0lf SEVBREVSU19CVVJJRUQpCi0rIyAgICAgICBpbmNsdWRlIDxzb2NpL2NvcmUvc29jaS1wbGF0Zm9y bS5oPgotKyNlbHNlCi0rIwlpbmNsdWRlIDxzb2NpLXBsYXRmb3JtLmg+Ci0rI2VuZGlmCi0rLy8K LSAjaW5jbHVkZSA8Y2lzbzY0Nj4KLSAjaW5jbHVkZSA8Y2Fzc2VydD4KLSAjaW5jbHVkZSA8Y3Rp bWU+Ci1kaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9teXNxbC9zdGFu ZGFyZC11c2UtdHlwZS5jcHAgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvbXlzcWwv c3RhbmRhcmQtdXNlLXR5cGUuY3BwCi0tLS0gc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5k cy9teXNxbC9zdGFuZGFyZC11c2UtdHlwZS5jcHAJMjAwOS0wNS0yMyAxMzozNzowOS4wMDAwMDAw MDAgKzAyMDAKLSsrKyBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9teXNxbC9zdGFu ZGFyZC11c2UtdHlwZS5jcHAJMjAwOS0wNS0yMiAyMjo1NDoxOS4wMDAwMDAwMDAgKzAyMDAKLUBA IC05LDcgKzksMTIgQEAKLSAjZGVmaW5lIFNPQ0lfTVlTUUxfU09VUkNFCi0gI2luY2x1ZGUgInNv Y2ktbXlzcWwuaCIKLSAjaW5jbHVkZSAiY29tbW9uLmgiCi0tI2luY2x1ZGUgPHNvY2ktcGxhdGZv cm0uaD4KLSsvLwotKyNpZiBkZWZpbmVkKFNPQ0lfSEVBREVSU19CVVJJRUQpCi0rIyAgICAgICBp bmNsdWRlIDxzb2NpL2NvcmUvc29jaS1wbGF0Zm9ybS5oPgotKyNlbHNlCi0rIwlpbmNsdWRlIDxz b2NpLXBsYXRmb3JtLmg+Ci0rI2VuZGlmCi0gLy8KLSAjaW5jbHVkZSA8Y2lzbzY0Nj4KLSAjaW5j bHVkZSA8bGltaXRzPgotZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMv bXlzcWwvdGVzdC9NYWtlZmlsZS5hbSBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9t eXNxbC90ZXN0L01ha2VmaWxlLmFtCi0tLS0gc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5k cy9teXNxbC90ZXN0L01ha2VmaWxlLmFtCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICsw MTAwCi0rKysgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvbXlzcWwvdGVzdC9NYWtl ZmlsZS5hbQkyMDA5LTA1LTIyIDIyOjU0OjE5LjAwMDAwMDAwMCArMDIwMAotQEAgLTAsMCArMSwx OCBAQAotKyMjIGJhY2tlbmQvbXlzcWwvdGVzdCBzdWItZGlyZWN0b3J5Ci0raW5jbHVkZSAkKHRv cF9zcmNkaXIpL01ha2VmaWxlLmNvbW1vbgotK2luY2x1ZGUgJChzcmNkaXIpL3NvdXJjZXMubWsK LSsKLStNQUlOVEFJTkVSQ0xFQU5GSUxFUyA9IE1ha2VmaWxlLmluCi0rCi0raWYgUlVOX1RFU1RT Ci0rICBub2luc3RfUFJPR1JBTVMgPSB0ZXN0X215c3FsCi0rZW5kaWYKLSsKLSt0ZXN0X215c3Fs X1NPVVJDRVMgPSAkKG15c3FsX3Rlc3RfY2Nfc291cmNlcykKLSt0ZXN0X215c3FsX0NYWEZMQUdT ID0gJChCT09TVF9DRkxBR1MpCi0rdGVzdF9teXNxbF9MREFERCA9Ci0rdGVzdF9teXNxbF9MREZM QUdTID0gJCh0b3BfYnVpbGRkaXIpL3NvY2kvY29yZS9saWJzb2NpX2NvcmUubGEgLWxkbCBcCi0r CQkkKHRvcF9idWlsZGRpcikvc29jaS9iYWNrZW5kcy9teXNxbC9saWJzb2NpX215c3FsLmxhIFwK LSsJCSQoTVlTUUxfTERGTEFHUykKLSsKLSsjbm9kaXN0X3BrZ2luY2x1ZGVfSEVBREVSUyA9ICQo bXlzcWxfdGVzdF9oX3NvdXJjZXMpCi1kaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svc29jaS9i YWNrZW5kcy9teXNxbC90ZXN0L01ha2VmaWxlLmJhc2ljIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2Np L2JhY2tlbmRzL215c3FsL3Rlc3QvTWFrZWZpbGUuYmFzaWMKLS0tLSBzb2NpLTMuMC4wXzQtcGFj ay9zb2NpL2JhY2tlbmRzL215c3FsL3Rlc3QvTWFrZWZpbGUuYmFzaWMJMjAwOS0wNS0yMyAxMzoz NzowOS4wMDAwMDAwMDAgKzAyMDAKLSsrKyBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5k cy9teXNxbC90ZXN0L01ha2VmaWxlLmJhc2ljCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAw ICswMTAwCi1AQCAtMSwyMiArMCwwIEBACi0tIyBUaGUgZm9sbG93aW5nIHZhcmlhYmxlcyBhcmUg c3BlY2lmaWMgdG8gdGhpcyBiYWNrZW5kIGFuZCB0aGVpciBjb3JyZWN0Ci0tIyB2YWx1ZXMgbWln aHQgZGVwZW5kIG9uIHlvdXIgZW52aXJvbm1lbnQgLSBmZWVsIGZyZWUgdG8gc2V0IGl0IGFjY29y ZGluZ2x5LgotLQotLU1ZU1FMTElCRElSID0gLUwvdXNyL2xpYi9teXNxbAotLU1ZU1FMTElCUyA9 IC1sbXlzcWxjbGllbnQgLWx6Ci0tTVlTUUxJTkNMVURFRElSID0gLUkvdXNyL2luY2x1ZGUvbXlz cWwKLS0KLS0jIFRoZSByZXN0IG9mIHRoZSBNYWtlZmlsZSBpcyBpbmRlcGVuZGVudCBvZiB0aGUg dGFyZ2V0IGVudmlyb25tZW50LgotLQotLUNPTVBJTEVSID0gZysrCi0tQ1hYRkxBR1MgPSAtV2Fs bCAtcGVkYW50aWMgLVduby1sb25nLWxvbmcKLS1JTkNMVURFRElSUyA9IC1JLi4gLUkuLi8uLi8u Li9jb3JlICR7TVlTUUxJTkNMVURFRElSfQotLUxJQkRJUlMgPSAtTC4uIC1MLi4vLi4vLi4vY29y ZSAke01ZU1FMTElCRElSfQotLUxJQlMgPSAtbHNvY2lfY29yZSAtbHNvY2lfbXlzcWwgLWxkbCAk e01ZU1FMTElCU30KLS0KLS0KLS10ZXN0LW15c3FsIDogdGVzdC1teXNxbC5jcHAKLS0JJHtDT01Q SUxFUn0gLW8gJEAgJD8gJHtDWFhGTEFHU30gJHtJTkNMVURFRElSU30gJHtMSUJESVJTfSAke0xJ QlN9Ci0tCi0tCi0tY2xlYW4gOgotLQlybSAtZiB0ZXN0LW15c3FsCi1kaWZmIC1OdXIgc29jaS0z LjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9teXNxbC90ZXN0L01ha2VmaWxlLmluIHNvY2ktMy4w LjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL215c3FsL3Rlc3QvTWFrZWZpbGUuaW4KLS0tLSBzb2Np LTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL215c3FsL3Rlc3QvTWFrZWZpbGUuaW4JMTk3MC0w MS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBzb2NpLTMuMC4wX3RyZXAzMDAvc29j aS9iYWNrZW5kcy9teXNxbC90ZXN0L01ha2VmaWxlLmluCTIwMDktMDUtMjMgMTA6MDI6MDIuMDAw MDAwMDAwICswMjAwCi1AQCAtMCwwICsxLDUyNCBAQAotKyMgTWFrZWZpbGUuaW4gZ2VuZXJhdGVk IGJ5IGF1dG9tYWtlIDEuMTAuMiBmcm9tIE1ha2VmaWxlLmFtLgotKyMgQGNvbmZpZ3VyZV9pbnB1 dEAKLSsKLSsjIENvcHlyaWdodCAoQykgMTk5NCwgMTk5NSwgMTk5NiwgMTk5NywgMTk5OCwgMTk5 OSwgMjAwMCwgMjAwMSwgMjAwMiwKLSsjIDIwMDMsIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIw MDggIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgotKyMgVGhpcyBNYWtlZmlsZS5pbiBp cyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCi0rIyBnaXZlcyB1 bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5IGFuZC9vciBkaXN0cmlidXRlIGl0LAotKyMgd2l0 aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbnMsIGFzIGxvbmcgYXMgdGhpcyBub3RpY2UgaXMgcHJl c2VydmVkLgotKwotKyMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRo YXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0rIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFksIHRvIHRo ZSBleHRlbnQgcGVybWl0dGVkIGJ5IGxhdzsgd2l0aG91dAotKyMgZXZlbiB0aGUgaW1wbGllZCB3 YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQQotKyMgUEFSVElDVUxB UiBQVVJQT1NFLgotKwotK0BTRVRfTUFLRUAKLSsKLStWUEFUSCA9IEBzcmNkaXJACi0rcGtnZGF0 YWRpciA9ICQoZGF0YWRpcikvQFBBQ0tBR0VACi0rcGtnbGliZGlyID0gJChsaWJkaXIpL0BQQUNL QUdFQAotK3BrZ2luY2x1ZGVkaXIgPSAkKGluY2x1ZGVkaXIpL0BQQUNLQUdFQAotK2FtX19jZCA9 IENEUEFUSD0iJCR7WlNIX1ZFUlNJT04rLn0kKFBBVEhfU0VQQVJBVE9SKSIgJiYgY2QKLStpbnN0 YWxsX3NoX0RBVEEgPSAkKGluc3RhbGxfc2gpIC1jIC1tIDY0NAotK2luc3RhbGxfc2hfUFJPR1JB TSA9ICQoaW5zdGFsbF9zaCkgLWMKLStpbnN0YWxsX3NoX1NDUklQVCA9ICQoaW5zdGFsbF9zaCkg LWMKLStJTlNUQUxMX0hFQURFUiA9ICQoSU5TVEFMTF9EQVRBKQotK3RyYW5zZm9ybSA9ICQocHJv Z3JhbV90cmFuc2Zvcm1fbmFtZSkKLStOT1JNQUxfSU5TVEFMTCA9IDoKLStQUkVfSU5TVEFMTCA9 IDoKLStQT1NUX0lOU1RBTEwgPSA6Ci0rTk9STUFMX1VOSU5TVEFMTCA9IDoKLStQUkVfVU5JTlNU QUxMID0gOgotK1BPU1RfVU5JTlNUQUxMID0gOgotK2J1aWxkX3RyaXBsZXQgPSBAYnVpbGRACi0r aG9zdF90cmlwbGV0ID0gQGhvc3RACi0rRElTVF9DT01NT04gPSAkKHNyY2RpcikvTWFrZWZpbGUu YW0gJChzcmNkaXIpL01ha2VmaWxlLmluIFwKLSsJJChzcmNkaXIpL3NvdXJjZXMubWsgJCh0b3Bf c3JjZGlyKS9NYWtlZmlsZS5jb21tb24KLStAUlVOX1RFU1RTX1RSVUVAbm9pbnN0X1BST0dSQU1T ID0gdGVzdF9teXNxbCQoRVhFRVhUKQotK3N1YmRpciA9IHNvY2kvYmFja2VuZHMvbXlzcWwvdGVz dAotK0FDTE9DQUxfTTQgPSAkKHRvcF9zcmNkaXIpL2FjbG9jYWwubTQKLSthbV9fYWNsb2NhbF9t NF9kZXBzID0gJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfYm9vc3QubTQgXAotKwkkKHRvcF9zcmNk aXIpL2NvbmZpZy9heF9teXNxbC5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmlnL2F4X29yYWNs ZV9vY2kubTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9wb3N0Z3Jlc3FsLm00IFwKLSsJ JCh0b3Bfc3JjZGlyKS9jb25maWcvY3BwdW5pdC5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmln L2xpYnRvb2wubTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9sdG9wdGlvbnMubTQgXAotKwkk KHRvcF9zcmNkaXIpL2NvbmZpZy9sdHN1Z2FyLm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcv bHR2ZXJzaW9uLm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvbHR+b2Jzb2xldGUubTQgJCh0 b3Bfc3JjZGlyKS9jb25maWd1cmUuYWMKLSthbV9fY29uZmlndXJlX2RlcHMgPSAkKGFtX19hY2xv Y2FsX200X2RlcHMpICQoQ09ORklHVVJFX0RFUEVOREVOQ0lFUykgXAotKwkkKEFDTE9DQUxfTTQp Ci0rbWtpbnN0YWxsZGlycyA9ICQoaW5zdGFsbF9zaCkgLWQKLStDT05GSUdfSEVBREVSID0gJCh0 b3BfYnVpbGRkaXIpL3NvY2kvY29uZmlnLmgKLStDT05GSUdfQ0xFQU5fRklMRVMgPQotK1BST0dS QU1TID0gJChub2luc3RfUFJPR1JBTVMpCi0rYW1fX29iamVjdHNfMSA9IHRlc3RfbXlzcWwtdGVz dC1teXNxbC4kKE9CSkVYVCkKLSthbV90ZXN0X215c3FsX09CSkVDVFMgPSAkKGFtX19vYmplY3Rz XzEpCi0rdGVzdF9teXNxbF9PQkpFQ1RTID0gJChhbV90ZXN0X215c3FsX09CSkVDVFMpCi0rdGVz dF9teXNxbF9ERVBFTkRFTkNJRVMgPQotK3Rlc3RfbXlzcWxfTElOSyA9ICQoTElCVE9PTCkgLS10 YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSBcCi0rCSQoTElCVE9PTEZMQUdTKSAtLW1vZGU9bGlu ayAkKENYWExEKSAkKHRlc3RfbXlzcWxfQ1hYRkxBR1MpIFwKLSsJJChDWFhGTEFHUykgJCh0ZXN0 X215c3FsX0xERkxBR1MpICQoTERGTEFHUykgLW8gJEAKLStERUZBVUxUX0lOQ0xVREVTID0gLUku QGFtX19pc3JjQCAtSSQodG9wX2J1aWxkZGlyKS9zb2NpCi0rZGVwY29tcCA9ICQoU0hFTEwpICQo dG9wX3NyY2RpcikvY29uZmlnL2RlcGNvbXAKLSthbV9fZGVwZmlsZXNfbWF5YmUgPSBkZXBmaWxl cwotK0NYWENPTVBJTEUgPSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5D TFVERVMpIFwKLSsJJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChBTV9DWFhGTEFHUykgJChD WFhGTEFHUykKLStMVENYWENPTVBJTEUgPSAkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRP T0xGTEFHUykgJChMSUJUT09MRkxBR1MpIFwKLSsJLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVG UykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSBcCi0rCSQoQU1fQ1BQRkxBR1MpICQo Q1BQRkxBR1MpICQoQU1fQ1hYRkxBR1MpICQoQ1hYRkxBR1MpCi0rQ1hYTEQgPSAkKENYWCkKLStD WFhMSU5LID0gJChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9P TEZMQUdTKSBcCi0rCS0tbW9kZT1saW5rICQoQ1hYTEQpICQoQU1fQ1hYRkxBR1MpICQoQ1hYRkxB R1MpICQoQU1fTERGTEFHUykgXAotKwkkKExERkxBR1MpIC1vICRACi0rU09VUkNFUyA9ICQodGVz dF9teXNxbF9TT1VSQ0VTKQotK0RJU1RfU09VUkNFUyA9ICQodGVzdF9teXNxbF9TT1VSQ0VTKQot K0VUQUdTID0gZXRhZ3MKLStDVEFHUyA9IGN0YWdzCi0rRElTVEZJTEVTID0gJChESVNUX0NPTU1P TikgJChESVNUX1NPVVJDRVMpICQoVEVYSU5GT1MpICQoRVhUUkFfRElTVCkKLStBQ0xPQ0FMID0g QEFDTE9DQUxACi0rQU1UQVIgPSBAQU1UQVJACi0rQVIgPSBAQVJACi0rQVVUT0NPTkYgPSBAQVVU T0NPTkZACi0rQVVUT0hFQURFUiA9IEBBVVRPSEVBREVSQAotK0FVVE9NQUtFID0gQEFVVE9NQUtF QAotK0FXSyA9IEBBV0tACi0rQk9PU1RfQ0ZMQUdTID0gQEJPT1NUX0NGTEFHU0AKLStCT09TVF9E QVRFX1RJTUVfTElCID0gQEJPT1NUX0RBVEVfVElNRV9MSUJACi0rQk9PU1RfRklMRVNZU1RFTV9M SUIgPSBAQk9PU1RfRklMRVNZU1RFTV9MSUJACi0rQk9PU1RfSU9TVFJFQU1TX0xJQiA9IEBCT09T VF9JT1NUUkVBTVNfTElCQAotK0JPT1NUX0xJQlMgPSBAQk9PU1RfTElCU0AKLStCT09TVF9QUk9H UkFNX09QVElPTlNfTElCID0gQEJPT1NUX1BST0dSQU1fT1BUSU9OU19MSUJACi0rQk9PU1RfUkVH RVhfTElCID0gQEJPT1NUX1JFR0VYX0xJQkAKLStCT09TVF9TRVJJQUxJWkFUSU9OX0xJQiA9IEBC T09TVF9TRVJJQUxJWkFUSU9OX0xJQkAKLStCT09TVF9TSUdOQUxTX0xJQiA9IEBCT09TVF9TSUdO QUxTX0xJQkAKLStCT09TVF9USFJFQURfTElCID0gQEJPT1NUX1RIUkVBRF9MSUJACi0rQk9PU1Rf VU5JVF9URVNUX0ZSQU1FV09SS19MSUIgPSBAQk9PU1RfVU5JVF9URVNUX0ZSQU1FV09SS19MSUJA Ci0rQk9PU1RfVkVSU0lPTiA9IEBCT09TVF9WRVJTSU9OQAotK0JPT1NUX1dTRVJJQUxJWkFUSU9O X0xJQiA9IEBCT09TVF9XU0VSSUFMSVpBVElPTl9MSUJACi0rQ0MgPSBAQ0NACi0rQ0NERVBNT0RF ID0gQENDREVQTU9ERUAKLStDRkxBR1MgPSBAQ0ZMQUdTQAotK0NQUCA9IEBDUFBACi0rQ1BQRkxB R1MgPSBAQ1BQRkxBR1NACi0rQ1BQVU5JVF9DRkxBR1MgPSBAQ1BQVU5JVF9DRkxBR1NACi0rQ1BQ VU5JVF9DT05GSUcgPSBAQ1BQVU5JVF9DT05GSUdACi0rQ1BQVU5JVF9MSUJTID0gQENQUFVOSVRf TElCU0AKLStDUFBVTklUX1ZFUlNJT04gPSBAQ1BQVU5JVF9WRVJTSU9OQAotK0NYWCA9IEBDWFhA Ci0rQ1hYQ1BQID0gQENYWENQUEAKLStDWFhERVBNT0RFID0gQENYWERFUE1PREVACi0rQ1hYRkxB R1MgPSBAQ1hYRkxBR1NACi0rQ1lHUEFUSF9XID0gQENZR1BBVEhfV0AKLStERUZTID0gQERFRlNA Ci0rREVQRElSID0gQERFUERJUkAKLStEU1lNVVRJTCA9IEBEU1lNVVRJTEAKLStEVU1QQklOID0g QERVTVBCSU5ACi0rRUNIT19DID0gQEVDSE9fQ0AKLStFQ0hPX04gPSBARUNIT19OQAotK0VDSE9f VCA9IEBFQ0hPX1RACi0rRUdSRVAgPSBARUdSRVBACi0rRVhFRVhUID0gQEVYRUVYVEAKLStGR1JF UCA9IEBGR1JFUEAKLStHRU5FUklDX0xJQlJBUllfVkVSU0lPTiA9IEBHRU5FUklDX0xJQlJBUllf VkVSU0lPTkAKLStHUkVQID0gQEdSRVBACi0rSU5TVEFMTCA9IEBJTlNUQUxMQAotK0lOU1RBTExf REFUQSA9IEBJTlNUQUxMX0RBVEFACi0rSU5TVEFMTF9QUk9HUkFNID0gQElOU1RBTExfUFJPR1JB TUAKLStJTlNUQUxMX1NDUklQVCA9IEBJTlNUQUxMX1NDUklQVEAKLStJTlNUQUxMX1NUUklQX1BS T0dSQU0gPSBASU5TVEFMTF9TVFJJUF9QUk9HUkFNQAotK0xEID0gQExEQAotK0xERkxBR1MgPSBA TERGTEFHU0AKLStMSUJPQkpTID0gQExJQk9CSlNACi0rTElCUyA9IEBMSUJTQAotK0xJQlRPT0wg PSBATElCVE9PTEAKLStMSVBPID0gQExJUE9ACi0rTE5fUyA9IEBMTl9TQAotK0xUTElCT0JKUyA9 IEBMVExJQk9CSlNACi0rTUFLRUlORk8gPSBATUFLRUlORk9ACi0rTUtESVJfUCA9IEBNS0RJUl9Q QAotK01ZU1FMX0NGTEFHUyA9IEBNWVNRTF9DRkxBR1NACi0rTVlTUUxfQ09ORklHID0gQE1ZU1FM X0NPTkZJR0AKLStNWVNRTF9ESVJTID0gQE1ZU1FMX0RJUlNACi0rTVlTUUxfTERGTEFHUyA9IEBN WVNRTF9MREZMQUdTQAotK01ZU1FMX1ZFUlNJT04gPSBATVlTUUxfVkVSU0lPTkAKLStOTSA9IEBO TUAKLStOTUVESVQgPSBATk1FRElUQAotK09CSkRVTVAgPSBAT0JKRFVNUEAKLStPQkpFWFQgPSBA T0JKRVhUQAotK09SQUNMRV9ESVJTID0gQE9SQUNMRV9ESVJTQAotK09SQUNMRV9PQ0lfQ0ZMQUdT ID0gQE9SQUNMRV9PQ0lfQ0ZMQUdTQAotK09SQUNMRV9PQ0lfTERGTEFHUyA9IEBPUkFDTEVfT0NJ X0xERkxBR1NACi0rT1JBQ0xFX09DSV9WRVJTSU9OID0gQE9SQUNMRV9PQ0lfVkVSU0lPTkAKLStP VE9PTCA9IEBPVE9PTEAKLStPVE9PTDY0ID0gQE9UT09MNjRACi0rUEFDS0FHRSA9IEBQQUNLQUdF QAotK1BBQ0tBR0VfQlVHUkVQT1JUID0gQFBBQ0tBR0VfQlVHUkVQT1JUQAotK1BBQ0tBR0VfTkFN RSA9IEBQQUNLQUdFX05BTUVACi0rUEFDS0FHRV9TVFJJTkcgPSBAUEFDS0FHRV9TVFJJTkdACi0r UEFDS0FHRV9UQVJOQU1FID0gQFBBQ0tBR0VfVEFSTkFNRUAKLStQQUNLQUdFX1ZFUlNJT04gPSBA UEFDS0FHRV9WRVJTSU9OQAotK1BBVEhfU0VQQVJBVE9SID0gQFBBVEhfU0VQQVJBVE9SQAotK1BF UkwgPSBAUEVSTEAKLStQR19DT05GSUcgPSBAUEdfQ09ORklHQAotK1BPU1RHUkVTUUxfQ0ZMQUdT ID0gQFBPU1RHUkVTUUxfQ0ZMQUdTQAotK1BPU1RHUkVTUUxfRElSUyA9IEBQT1NUR1JFU1FMX0RJ UlNACi0rUE9TVEdSRVNRTF9MREZMQUdTID0gQFBPU1RHUkVTUUxfTERGTEFHU0AKLStQT1NUR1JF U1FMX1ZFUlNJT04gPSBAUE9TVEdSRVNRTF9WRVJTSU9OQAotK1JBTkxJQiA9IEBSQU5MSUJACi0r UlBNX1JFTEVBU0UgPSBAUlBNX1JFTEVBU0VACi0rU0VEID0gQFNFREAKLStTRVRfTUFLRSA9IEBT RVRfTUFLRUAKLStTSEVMTCA9IEBTSEVMTEAKLStTT0NJX0hFQURFUlNfQlVSSUVEID0gQFNPQ0lf SEVBREVSU19CVVJJRURACi0rU09DSV9NWVNRTF9IRUFERVJTX0JVUklFRCA9IEBTT0NJX01ZU1FM X0hFQURFUlNfQlVSSUVEQAotK1NPQ0lfUE9TVEdSRVNRTF9IRUFERVJTX0JVUklFRCA9IEBTT0NJ X1BPU1RHUkVTUUxfSEVBREVSU19CVVJJRURACi0rU1RSSVAgPSBAU1RSSVBACi0rVVBMT0FEX0NP TU1BTkQgPSBAVVBMT0FEX0NPTU1BTkRACi0rVkVSU0lPTiA9IEBWRVJTSU9OQAotK2Fic19idWls ZGRpciA9IEBhYnNfYnVpbGRkaXJACi0rYWJzX3NyY2RpciA9IEBhYnNfc3JjZGlyQAotK2Fic190 b3BfYnVpbGRkaXIgPSBAYWJzX3RvcF9idWlsZGRpckAKLSthYnNfdG9wX3NyY2RpciA9IEBhYnNf dG9wX3NyY2RpckAKLSthY19jdF9DQyA9IEBhY19jdF9DQ0AKLSthY19jdF9DWFggPSBAYWNfY3Rf Q1hYQAotK2FjX2N0X0RVTVBCSU4gPSBAYWNfY3RfRFVNUEJJTkAKLSthbV9faW5jbHVkZSA9IEBh bV9faW5jbHVkZUAKLSthbV9fbGVhZGluZ19kb3QgPSBAYW1fX2xlYWRpbmdfZG90QAotK2FtX19x dW90ZSA9IEBhbV9fcXVvdGVACi0rYW1fX3RhciA9IEBhbV9fdGFyQAotK2FtX191bnRhciA9IEBh bV9fdW50YXJACi0rYmluZGlyID0gQGJpbmRpckAKLStidWlsZCA9IEBidWlsZEAKLStidWlsZF9h bGlhcyA9IEBidWlsZF9hbGlhc0AKLStidWlsZF9jcHUgPSBAYnVpbGRfY3B1QAotK2J1aWxkX29z ID0gQGJ1aWxkX29zQAotK2J1aWxkX3ZlbmRvciA9IEBidWlsZF92ZW5kb3JACi0rYnVpbGRkaXIg PSBAYnVpbGRkaXJACi0rZGF0YWRpciA9IEBkYXRhZGlyQAotK2RhdGFyb290ZGlyID0gQGRhdGFy b290ZGlyQAotK2RpZmZfb2sgPSBAZGlmZl9va0AKLStkb2NkaXIgPSBAZG9jZGlyQAotK2RveHln ZW5fb2sgPSBAZG94eWdlbl9va0AKLStkdmlkaXIgPSBAZHZpZGlyQAotK2R2aXBzX29rID0gQGR2 aXBzX29rQAotK2V4ZWNfcHJlZml4ID0gQGV4ZWNfcHJlZml4QAotK2dzX29rID0gQGdzX29rQAot K2hvc3QgPSBAaG9zdEAKLStob3N0X2FsaWFzID0gQGhvc3RfYWxpYXNACi0raG9zdF9jcHUgPSBA aG9zdF9jcHVACi0raG9zdF9vcyA9IEBob3N0X29zQAotK2hvc3RfdmVuZG9yID0gQGhvc3RfdmVu ZG9yQAotK2h0bWxkaXIgPSBAaHRtbGRpckAKLStpbmNsdWRlZGlyID0gQGluY2x1ZGVkaXJACi0r aW5mb2RpciA9IEBpbmZvZGlyQAotK2luc3RhbGxfc2ggPSBAaW5zdGFsbF9zaEAKLStsYXRleF9v ayA9IEBsYXRleF9va0AKLStsaWJkaXIgPSBAbGliZGlyQAotK2xpYmV4ZWNkaXIgPSBAbGliZXhl Y2RpckAKLStsb2NhbGVkaXIgPSBAbG9jYWxlZGlyQAotK2xvY2Fsc3RhdGVkaXIgPSBAbG9jYWxz dGF0ZWRpckAKLStsdF9FQ0hPID0gQGx0X0VDSE9ACi0rbWFuZGlyID0gQG1hbmRpckAKLStta2Rp cl9wID0gQG1rZGlyX3BACi0rb2xkaW5jbHVkZWRpciA9IEBvbGRpbmNsdWRlZGlyQAotK3BkZmRp ciA9IEBwZGZkaXJACi0rcHJlZml4ID0gQHByZWZpeEAKLStwcm9ncmFtX3RyYW5zZm9ybV9uYW1l ID0gQHByb2dyYW1fdHJhbnNmb3JtX25hbWVACi0rcHNkaXIgPSBAcHNkaXJACi0rc2JpbmRpciA9 IEBzYmluZGlyQAotK3NlZF9vayA9IEBzZWRfb2tACi0rc2hhcmVkc3RhdGVkaXIgPSBAc2hhcmVk c3RhdGVkaXJACi0rc3JjZGlyID0gQHNyY2RpckAKLStzeXNjb25mZGlyID0gQHN5c2NvbmZkaXJA Ci0rdGFyZ2V0X2FsaWFzID0gQHRhcmdldF9hbGlhc0AKLSt0b3BfYnVpbGRfcHJlZml4ID0gQHRv cF9idWlsZF9wcmVmaXhACi0rdG9wX2J1aWxkZGlyID0gQHRvcF9idWlsZGRpckAKLSt0b3Bfc3Jj ZGlyID0gQHRvcF9zcmNkaXJACi0rQU1fQ1BQRkxBR1MgPSAtSSQodG9wX2J1aWxkZGlyKSAtSSQo dG9wX3NyY2RpcikKLStteXNxbF90ZXN0X2hfc291cmNlcyA9IAotK215c3FsX3Rlc3RfY2Nfc291 cmNlcyA9ICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC90ZXN0L3Rlc3QtbXlzcWwu Y3BwCi0rTUFJTlRBSU5FUkNMRUFORklMRVMgPSBNYWtlZmlsZS5pbgotK3Rlc3RfbXlzcWxfU09V UkNFUyA9ICQobXlzcWxfdGVzdF9jY19zb3VyY2VzKQotK3Rlc3RfbXlzcWxfQ1hYRkxBR1MgPSAk KEJPT1NUX0NGTEFHUykKLSt0ZXN0X215c3FsX0xEQUREID0gCi0rdGVzdF9teXNxbF9MREZMQUdT ID0gJCh0b3BfYnVpbGRkaXIpL3NvY2kvY29yZS9saWJzb2NpX2NvcmUubGEgLWxkbCBcCi0rCQkk KHRvcF9idWlsZGRpcikvc29jaS9iYWNrZW5kcy9teXNxbC9saWJzb2NpX215c3FsLmxhIFwKLSsJ CSQoTVlTUUxfTERGTEFHUykKLSsKLSthbGw6IGFsbC1hbQotKwotKy5TVUZGSVhFUzoKLSsuU1VG RklYRVM6IC5jcHAgLmxvIC5vIC5vYmoKLSskKHNyY2RpcikvTWFrZWZpbGUuaW46ICAkKHNyY2Rp cikvTWFrZWZpbGUuYW0gJCh0b3Bfc3JjZGlyKS9NYWtlZmlsZS5jb21tb24gJChzcmNkaXIpL3Nv dXJjZXMubWsgJChhbV9fY29uZmlndXJlX2RlcHMpCi0rCUBmb3IgZGVwIGluICQ/OyBkbyBcCi0r CSAgY2FzZSAnJChhbV9fY29uZmlndXJlX2RlcHMpJyBpbiBcCi0rCSAgICAqJCRkZXAqKSBcCi0r CSAgICAgICggY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFt LS1yZWZyZXNoICkgXAotKwkgICAgICAgICYmIHsgaWYgdGVzdCAtZiAkQDsgdGhlbiBleGl0IDA7 IGVsc2UgYnJlYWs7IGZpOyB9OyBcCi0rCSAgICAgIGV4aXQgMTs7IFwKLSsJICBlc2FjOyBcCi0r CWRvbmU7IFwKLSsJZWNobyAnIGNkICQodG9wX3NyY2RpcikgJiYgJChBVVRPTUFLRSkgLS1nbnUg IHNvY2kvYmFja2VuZHMvbXlzcWwvdGVzdC9NYWtlZmlsZSc7IFwKLSsJY2QgJCh0b3Bfc3JjZGly KSAmJiBcCi0rCSAgJChBVVRPTUFLRSkgLS1nbnUgIHNvY2kvYmFja2VuZHMvbXlzcWwvdGVzdC9N YWtlZmlsZQotKy5QUkVDSU9VUzogTWFrZWZpbGUKLStNYWtlZmlsZTogJChzcmNkaXIpL01ha2Vm aWxlLmluICQodG9wX2J1aWxkZGlyKS9jb25maWcuc3RhdHVzCi0rCUBjYXNlICckPycgaW4gXAot KwkgICpjb25maWcuc3RhdHVzKikgXAotKwkgICAgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFL RSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoOzsgXAotKwkgICopIFwKLSsJICAgIGVjaG8g JyBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChTSEVMTCkgLi9jb25maWcuc3RhdHVzICQoc3ViZGly KS8kQCAkKGFtX19kZXBmaWxlc19tYXliZSknOyBcCi0rCSAgICBjZCAkKHRvcF9idWlsZGRpcikg JiYgJChTSEVMTCkgLi9jb25maWcuc3RhdHVzICQoc3ViZGlyKS8kQCAkKGFtX19kZXBmaWxlc19t YXliZSk7OyBcCi0rCWVzYWM7Ci0rCi0rJCh0b3BfYnVpbGRkaXIpL2NvbmZpZy5zdGF0dXM6ICQo dG9wX3NyY2RpcikvY29uZmlndXJlICQoQ09ORklHX1NUQVRVU19ERVBFTkRFTkNJRVMpCi0rCWNk ICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaAot KwotKyQodG9wX3NyY2RpcikvY29uZmlndXJlOiAgJChhbV9fY29uZmlndXJlX2RlcHMpCi0rCWNk ICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaAot KyQoQUNMT0NBTF9NNCk6ICAkKGFtX19hY2xvY2FsX200X2RlcHMpCi0rCWNkICQodG9wX2J1aWxk ZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaAotKwotK2NsZWFuLW5v aW5zdFBST0dSQU1TOgotKwlAbGlzdD0nJChub2luc3RfUFJPR1JBTVMpJzsgZm9yIHAgaW4gJCRs aXN0OyBkbyBcCi0rCSAgZj1gZWNobyAkJHB8c2VkICdzLyQoRVhFRVhUKSQkLy8nYDsgXAotKwkg IGVjaG8gIiBybSAtZiAkJHAgJCRmIjsgXAotKwkgIHJtIC1mICQkcCAkJGYgOyBcCi0rCWRvbmUK LSt0ZXN0X215c3FsJChFWEVFWFQpOiAkKHRlc3RfbXlzcWxfT0JKRUNUUykgJCh0ZXN0X215c3Fs X0RFUEVOREVOQ0lFUykgCi0rCUBybSAtZiB0ZXN0X215c3FsJChFWEVFWFQpCi0rCSQodGVzdF9t eXNxbF9MSU5LKSAkKHRlc3RfbXlzcWxfT0JKRUNUUykgJCh0ZXN0X215c3FsX0xEQUREKSAkKExJ QlMpCi0rCi0rbW9zdGx5Y2xlYW4tY29tcGlsZToKLSsJLXJtIC1mICouJChPQkpFWFQpCi0rCi0r ZGlzdGNsZWFuLWNvbXBpbGU6Ci0rCS1ybSAtZiAqLnRhYi5jCi0rCi0rQEFNREVQX1RSVUVAQGFt X19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL3Rlc3RfbXlzcWwtdGVzdC1teXNxbC5Q b0BhbV9fcXVvdGVACi0rCi0rLmNwcC5vOgotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKENYWENP TVBJTEUpIC1NVCAkQCAtTUQgLU1QIC1NRiAkKERFUERJUikvJCouVHBvIC1jIC1vICRAICQ8Ci0r QGFtX19mYXN0ZGVwQ1hYX1RSVUVACW12IC1mICQoREVQRElSKS8kKi5UcG8gJChERVBESVIpLyQq LlBvCi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQ8JyBvYmpl Y3Q9JyRAJyBsaWJ0b29sPW5vIEBBTURFUEJBQ0tTTEFTSEAKLStAQU1ERVBfVFJVRUBAYW1fX2Zh c3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXAp IEBBTURFUEJBQ0tTTEFTSEAKLStAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQoQ1hYQ09NUElMRSkg LWMgLW8gJEAgJDwKLSsKLSsuY3BwLm9iajoKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChDWFhD T01QSUxFKSAtTVQgJEAgLU1EIC1NUCAtTUYgJChERVBESVIpLyQqLlRwbyAtYyAtbyAkQCBgJChD WUdQQVRIX1cpICckPCdgCi0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACW12IC1mICQoREVQRElSKS8k Ki5UcG8gJChERVBESVIpLyQqLlBvCi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNF QAlzb3VyY2U9JyQ8JyBvYmplY3Q9JyRAJyBsaWJ0b29sPW5vIEBBTURFUEJBQ0tTTEFTSEAKLStA QU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDWFhE RVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKLStAYW1fX2Zhc3RkZXBDWFhfRkFM U0VACSQoQ1hYQ09NUElMRSkgLWMgLW8gJEAgYCQoQ1lHUEFUSF9XKSAnJDwnYAotKwotKy5jcHAu bG86Ci0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoTFRDWFhDT01QSUxFKSAtTVQgJEAgLU1EIC1N UCAtTUYgJChERVBESVIpLyQqLlRwbyAtYyAtbyAkQCAkPAotK0BhbV9fZmFzdGRlcENYWF9UUlVF QAltdiAtZiAkKERFUERJUikvJCouVHBvICQoREVQRElSKS8kKi5QbG8KLStAQU1ERVBfVFJVRUBA YW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJDwnIG9iamVjdD0nJEAnIGxpYnRvb2w9eWVz IEBBTURFUEJBQ0tTTEFTSEAKLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURF UERJUj0kKERFUERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAK LStAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQoTFRDWFhDT01QSUxFKSAtYyAtbyAkQCAkPAotKwot K3Rlc3RfbXlzcWwtdGVzdC1teXNxbC5vOiAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlz cWwvdGVzdC90ZXN0LW15c3FsLmNwcAotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKENYWCkgJChE RUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQ RkxBR1MpICQodGVzdF9teXNxbF9DWFhGTEFHUykgJChDWFhGTEFHUykgLU1UIHRlc3RfbXlzcWwt dGVzdC1teXNxbC5vIC1NRCAtTVAgLU1GICQoREVQRElSKS90ZXN0X215c3FsLXRlc3QtbXlzcWwu VHBvIC1jIC1vIHRlc3RfbXlzcWwtdGVzdC1teXNxbC5vIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIp L3NvY2kvYmFja2VuZHMvbXlzcWwvdGVzdC90ZXN0LW15c3FsLmNwcCcgfHwgZWNobyAnJChzcmNk aXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3Rlc3QvdGVzdC1teXNxbC5j cHAKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJbXYgLWYgJChERVBESVIpL3Rlc3RfbXlzcWwtdGVz dC1teXNxbC5UcG8gJChERVBESVIpL3Rlc3RfbXlzcWwtdGVzdC1teXNxbC5QbwotK0BBTURFUF9U UlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSckKHRvcF9zcmNkaXIpL3NvY2kvYmFj a2VuZHMvbXlzcWwvdGVzdC90ZXN0LW15c3FsLmNwcCcgb2JqZWN0PSd0ZXN0X215c3FsLXRlc3Qt bXlzcWwubycgbGlidG9vbD1ubyBAQU1ERVBCQUNLU0xBU0hACi0rQEFNREVQX1RSVUVAQGFtX19m YXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21w KSBAQU1ERVBCQUNLU0xBU0hACi0rQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKENYWCkgJChERUZT KSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxB R1MpICQodGVzdF9teXNxbF9DWFhGTEFHUykgJChDWFhGTEFHUykgLWMgLW8gdGVzdF9teXNxbC10 ZXN0LW15c3FsLm8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC90 ZXN0L3Rlc3QtbXlzcWwuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3Nv Y2kvYmFja2VuZHMvbXlzcWwvdGVzdC90ZXN0LW15c3FsLmNwcAotKwotK3Rlc3RfbXlzcWwtdGVz dC1teXNxbC5vYmo6ICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC90ZXN0L3Rlc3Qt bXlzcWwuY3BwCi0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoQ1hYKSAkKERFRlMpICQoREVGQVVM VF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJCh0ZXN0 X215c3FsX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtTVQgdGVzdF9teXNxbC10ZXN0LW15c3FsLm9i aiAtTUQgLU1QIC1NRiAkKERFUERJUikvdGVzdF9teXNxbC10ZXN0LW15c3FsLlRwbyAtYyAtbyB0 ZXN0X215c3FsLXRlc3QtbXlzcWwub2JqIGBpZiB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kv YmFja2VuZHMvbXlzcWwvdGVzdC90ZXN0LW15c3FsLmNwcCc7IHRoZW4gJChDWUdQQVRIX1cpICck KHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvdGVzdC90ZXN0LW15c3FsLmNwcCc7IGVs c2UgJChDWUdQQVRIX1cpICckKHNyY2RpcikvJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215 c3FsL3Rlc3QvdGVzdC1teXNxbC5jcHAnOyBmaWAKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJbXYg LWYgJChERVBESVIpL3Rlc3RfbXlzcWwtdGVzdC1teXNxbC5UcG8gJChERVBESVIpL3Rlc3RfbXlz cWwtdGVzdC1teXNxbC5QbwotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291 cmNlPSckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvdGVzdC90ZXN0LW15c3FsLmNw cCcgb2JqZWN0PSd0ZXN0X215c3FsLXRlc3QtbXlzcWwub2JqJyBsaWJ0b29sPW5vIEBBTURFUEJB Q0tTTEFTSEAKLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERF UERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKLStAYW1fX2Zh c3RkZXBDWFhfRkFMU0VACSQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNM VURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJCh0ZXN0X215c3FsX0NYWEZMQUdTKSAk KENYWEZMQUdTKSAtYyAtbyB0ZXN0X215c3FsLXRlc3QtbXlzcWwub2JqIGBpZiB0ZXN0IC1mICck KHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvdGVzdC90ZXN0LW15c3FsLmNwcCc7IHRo ZW4gJChDWUdQQVRIX1cpICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvdGVzdC90 ZXN0LW15c3FsLmNwcCc7IGVsc2UgJChDWUdQQVRIX1cpICckKHNyY2RpcikvJCh0b3Bfc3JjZGly KS9zb2NpL2JhY2tlbmRzL215c3FsL3Rlc3QvdGVzdC1teXNxbC5jcHAnOyBmaWAKLSsKLSttb3N0 bHljbGVhbi1saWJ0b29sOgotKwktcm0gLWYgKi5sbwotKwotK2NsZWFuLWxpYnRvb2w6Ci0rCS1y bSAtcmYgLmxpYnMgX2xpYnMKLSsKLStJRDogJChIRUFERVJTKSAkKFNPVVJDRVMpICQoTElTUCkg JChUQUdTX0ZJTEVTKQotKwlsaXN0PSckKFNPVVJDRVMpICQoSEVBREVSUykgJChMSVNQKSAkKFRB R1NfRklMRVMpJzsgXAotKwl1bmlxdWU9YGZvciBpIGluICQkbGlzdDsgZG8gXAotKwkgICAgaWYg dGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsgZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7IGZp OyBcCi0rCSAgZG9uZSB8IFwKLSsJICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9IDE7IG5vbmVtcHR5 ID0gMTsgfSBcCi0rCSAgICAgIEVORCB7IGlmIChub25lbXB0eSkgeyBmb3IgKGkgaW4gZmlsZXMp IHByaW50IGk7IH07IH0nYDsgXAotKwlta2lkIC1mSUQgJCR1bmlxdWUKLSt0YWdzOiBUQUdTCi0r Ci0rVEFHUzogICQoSEVBREVSUykgJChTT1VSQ0VTKSAgJChUQUdTX0RFUEVOREVOQ0lFUykgXAot KwkJJChUQUdTX0ZJTEVTKSAkKExJU1ApCi0rCXRhZ3M9OyBcCi0rCWhlcmU9YHB3ZGA7IFwKLSsJ bGlzdD0nJChTT1VSQ0VTKSAkKEhFQURFUlMpICAkKExJU1ApICQoVEFHU19GSUxFUyknOyBcCi0r CXVuaXF1ZT1gZm9yIGkgaW4gJCRsaXN0OyBkbyBcCi0rCSAgICBpZiB0ZXN0IC1mICIkJGkiOyB0 aGVuIGVjaG8gJCRpOyBlbHNlIGVjaG8gJChzcmNkaXIpLyQkaTsgZmk7IFwKLSsJICBkb25lIHwg XAotKwkgICQoQVdLKSAneyBmaWxlc1skJDBdID0gMTsgbm9uZW1wdHkgPSAxOyB9IFwKLSsJICAg ICAgRU5EIHsgaWYgKG5vbmVtcHR5KSB7IGZvciAoaSBpbiBmaWxlcykgcHJpbnQgaTsgfTsgfSdg OyBcCi0rCWlmIHRlc3QgLXogIiQoRVRBR1NfQVJHUykkJHRhZ3MkJHVuaXF1ZSI7IHRoZW4gOjsg ZWxzZSBcCi0rCSAgdGVzdCAtbiAiJCR1bmlxdWUiIHx8IHVuaXF1ZT0kJGVtcHR5X2ZpeDsgXAot KwkgICQoRVRBR1MpICQoRVRBR1NGTEFHUykgJChBTV9FVEFHU0ZMQUdTKSAkKEVUQUdTX0FSR1Mp IFwKLSsJICAgICQkdGFncyAkJHVuaXF1ZTsgXAotKwlmaQotK2N0YWdzOiBDVEFHUwotK0NUQUdT OiAgJChIRUFERVJTKSAkKFNPVVJDRVMpICAkKFRBR1NfREVQRU5ERU5DSUVTKSBcCi0rCQkkKFRB R1NfRklMRVMpICQoTElTUCkKLSsJdGFncz07IFwKLSsJbGlzdD0nJChTT1VSQ0VTKSAkKEhFQURF UlMpICAkKExJU1ApICQoVEFHU19GSUxFUyknOyBcCi0rCXVuaXF1ZT1gZm9yIGkgaW4gJCRsaXN0 OyBkbyBcCi0rCSAgICBpZiB0ZXN0IC1mICIkJGkiOyB0aGVuIGVjaG8gJCRpOyBlbHNlIGVjaG8g JChzcmNkaXIpLyQkaTsgZmk7IFwKLSsJICBkb25lIHwgXAotKwkgICQoQVdLKSAneyBmaWxlc1sk JDBdID0gMTsgbm9uZW1wdHkgPSAxOyB9IFwKLSsJICAgICAgRU5EIHsgaWYgKG5vbmVtcHR5KSB7 IGZvciAoaSBpbiBmaWxlcykgcHJpbnQgaTsgfTsgfSdgOyBcCi0rCXRlc3QgLXogIiQoQ1RBR1Nf QVJHUykkJHRhZ3MkJHVuaXF1ZSIgXAotKwkgIHx8ICQoQ1RBR1MpICQoQ1RBR1NGTEFHUykgJChB TV9DVEFHU0ZMQUdTKSAkKENUQUdTX0FSR1MpIFwKLSsJICAgICAkJHRhZ3MgJCR1bmlxdWUKLSsK LStHVEFHUzoKLSsJaGVyZT1gJChhbV9fY2QpICQodG9wX2J1aWxkZGlyKSAmJiBwd2RgIFwKLSsJ ICAmJiBjZCAkKHRvcF9zcmNkaXIpIFwKLSsJICAmJiBndGFncyAtaSAkKEdUQUdTX0FSR1MpICQk aGVyZQotKwotK2Rpc3RjbGVhbi10YWdzOgotKwktcm0gLWYgVEFHUyBJRCBHVEFHUyBHUlRBR1Mg R1NZTVMgR1BBVEggdGFncwotKwotK2Rpc3RkaXI6ICQoRElTVEZJTEVTKQotKwlAc3JjZGlyc3Ry aXA9YGVjaG8gIiQoc3JjZGlyKSIgfCBzZWQgJ3MvW10uW14kJFxcKl0vXFxcXCYvZydgOyBcCi0r CXRvcHNyY2RpcnN0cmlwPWBlY2hvICIkKHRvcF9zcmNkaXIpIiB8IHNlZCAncy9bXS5bXiQkXFwq XS9cXFxcJi9nJ2A7IFwKLSsJbGlzdD0nJChESVNURklMRVMpJzsgXAotKwkgIGRpc3RfZmlsZXM9 YGZvciBmaWxlIGluICQkbGlzdDsgZG8gZWNobyAkJGZpbGU7IGRvbmUgfCBcCi0rCSAgc2VkIC1l ICJzfF4kJHNyY2RpcnN0cmlwL3x8O3QiIFwKLSsJICAgICAgLWUgInN8XiQkdG9wc3JjZGlyc3Ry aXAvfCQodG9wX2J1aWxkZGlyKS98O3QiYDsgXAotKwljYXNlICQkZGlzdF9maWxlcyBpbiBcCi0r CSAgKi8qKSAkKE1LRElSX1ApIGBlY2hvICIkJGRpc3RfZmlsZXMiIHwgXAotKwkJCSAgIHNlZCAn L1wvLyFkO3N8XnwkKGRpc3RkaXIpL3w7cywvW14vXSokJCwsJyB8IFwKLSsJCQkgICBzb3J0IC11 YCA7OyBcCi0rCWVzYWM7IFwKLSsJZm9yIGZpbGUgaW4gJCRkaXN0X2ZpbGVzOyBkbyBcCi0rCSAg aWYgdGVzdCAtZiAkJGZpbGUgfHwgdGVzdCAtZCAkJGZpbGU7IHRoZW4gZD0uOyBlbHNlIGQ9JChz cmNkaXIpOyBmaTsgXAotKwkgIGlmIHRlc3QgLWQgJCRkLyQkZmlsZTsgdGhlbiBcCi0rCSAgICBk aXI9YGVjaG8gIi8kJGZpbGUiIHwgc2VkIC1lICdzLC9bXi9dKiQkLCwnYDsgXAotKwkgICAgaWYg dGVzdCAtZCAkKHNyY2RpcikvJCRmaWxlICYmIHRlc3QgJCRkICE9ICQoc3JjZGlyKTsgdGhlbiBc Ci0rCSAgICAgIGNwIC1wUiAkKHNyY2RpcikvJCRmaWxlICQoZGlzdGRpcikkJGRpciB8fCBleGl0 IDE7IFwKLSsJICAgIGZpOyBcCi0rCSAgICBjcCAtcFIgJCRkLyQkZmlsZSAkKGRpc3RkaXIpJCRk aXIgfHwgZXhpdCAxOyBcCi0rCSAgZWxzZSBcCi0rCSAgICB0ZXN0IC1mICQoZGlzdGRpcikvJCRm aWxlIFwKLSsJICAgIHx8IGNwIC1wICQkZC8kJGZpbGUgJChkaXN0ZGlyKS8kJGZpbGUgXAotKwkg ICAgfHwgZXhpdCAxOyBcCi0rCSAgZmk7IFwKLSsJZG9uZQotK2NoZWNrLWFtOiBhbGwtYW0KLStj aGVjazogY2hlY2stYW0KLSthbGwtYW06IE1ha2VmaWxlICQoUFJPR1JBTVMpCi0raW5zdGFsbGRp cnM6Ci0raW5zdGFsbDogaW5zdGFsbC1hbQotK2luc3RhbGwtZXhlYzogaW5zdGFsbC1leGVjLWFt Ci0raW5zdGFsbC1kYXRhOiBpbnN0YWxsLWRhdGEtYW0KLSt1bmluc3RhbGw6IHVuaW5zdGFsbC1h bQotKwotK2luc3RhbGwtYW06IGFsbC1hbQotKwlAJChNQUtFKSAkKEFNX01BS0VGTEFHUykgaW5z dGFsbC1leGVjLWFtIGluc3RhbGwtZGF0YS1hbQotKwotK2luc3RhbGxjaGVjazogaW5zdGFsbGNo ZWNrLWFtCi0raW5zdGFsbC1zdHJpcDoKLSsJJChNQUtFKSAkKEFNX01BS0VGTEFHUykgSU5TVEFM TF9QUk9HUkFNPSIkKElOU1RBTExfU1RSSVBfUFJPR1JBTSkiIFwKLSsJICBpbnN0YWxsX3NoX1BS T0dSQU09IiQoSU5TVEFMTF9TVFJJUF9QUk9HUkFNKSIgSU5TVEFMTF9TVFJJUF9GTEFHPS1zIFwK LSsJICBgdGVzdCAteiAnJChTVFJJUCknIHx8IFwKLSsJICAgIGVjaG8gIklOU1RBTExfUFJPR1JB TV9FTlY9U1RSSVBQUk9HPSckKFNUUklQKSciYCBpbnN0YWxsCi0rbW9zdGx5Y2xlYW4tZ2VuZXJp YzoKLSsKLStjbGVhbi1nZW5lcmljOgotKwotK2Rpc3RjbGVhbi1nZW5lcmljOgotKwktdGVzdCAt eiAiJChDT05GSUdfQ0xFQU5fRklMRVMpIiB8fCBybSAtZiAkKENPTkZJR19DTEVBTl9GSUxFUykK LSsKLSttYWludGFpbmVyLWNsZWFuLWdlbmVyaWM6Ci0rCUBlY2hvICJUaGlzIGNvbW1hbmQgaXMg aW50ZW5kZWQgZm9yIG1haW50YWluZXJzIHRvIHVzZSIKLSsJQGVjaG8gIml0IGRlbGV0ZXMgZmls ZXMgdGhhdCBtYXkgcmVxdWlyZSBzcGVjaWFsIHRvb2xzIHRvIHJlYnVpbGQuIgotKwktdGVzdCAt eiAiJChNQUlOVEFJTkVSQ0xFQU5GSUxFUykiIHx8IHJtIC1mICQoTUFJTlRBSU5FUkNMRUFORklM RVMpCi0rY2xlYW46IGNsZWFuLWFtCi0rCi0rY2xlYW4tYW06IGNsZWFuLWdlbmVyaWMgY2xlYW4t bGlidG9vbCBjbGVhbi1ub2luc3RQUk9HUkFNUyBcCi0rCW1vc3RseWNsZWFuLWFtCi0rCi0rZGlz dGNsZWFuOiBkaXN0Y2xlYW4tYW0KLSsJLXJtIC1yZiAuLyQoREVQRElSKQotKwktcm0gLWYgTWFr ZWZpbGUKLStkaXN0Y2xlYW4tYW06IGNsZWFuLWFtIGRpc3RjbGVhbi1jb21waWxlIGRpc3RjbGVh bi1nZW5lcmljIFwKLSsJZGlzdGNsZWFuLXRhZ3MKLSsKLStkdmk6IGR2aS1hbQotKwotK2R2aS1h bToKLSsKLStodG1sOiBodG1sLWFtCi0rCi0raW5mbzogaW5mby1hbQotKwotK2luZm8tYW06Ci0r Ci0raW5zdGFsbC1kYXRhLWFtOgotKwotK2luc3RhbGwtZHZpOiBpbnN0YWxsLWR2aS1hbQotKwot K2luc3RhbGwtZXhlYy1hbToKLSsKLStpbnN0YWxsLWh0bWw6IGluc3RhbGwtaHRtbC1hbQotKwot K2luc3RhbGwtaW5mbzogaW5zdGFsbC1pbmZvLWFtCi0rCi0raW5zdGFsbC1tYW46Ci0rCi0raW5z dGFsbC1wZGY6IGluc3RhbGwtcGRmLWFtCi0rCi0raW5zdGFsbC1wczogaW5zdGFsbC1wcy1hbQot KwotK2luc3RhbGxjaGVjay1hbToKLSsKLSttYWludGFpbmVyLWNsZWFuOiBtYWludGFpbmVyLWNs ZWFuLWFtCi0rCS1ybSAtcmYgLi8kKERFUERJUikKLSsJLXJtIC1mIE1ha2VmaWxlCi0rbWFpbnRh aW5lci1jbGVhbi1hbTogZGlzdGNsZWFuLWFtIG1haW50YWluZXItY2xlYW4tZ2VuZXJpYwotKwot K21vc3RseWNsZWFuOiBtb3N0bHljbGVhbi1hbQotKwotK21vc3RseWNsZWFuLWFtOiBtb3N0bHlj bGVhbi1jb21waWxlIG1vc3RseWNsZWFuLWdlbmVyaWMgXAotKwltb3N0bHljbGVhbi1saWJ0b29s Ci0rCi0rcGRmOiBwZGYtYW0KLSsKLStwZGYtYW06Ci0rCi0rcHM6IHBzLWFtCi0rCi0rcHMtYW06 Ci0rCi0rdW5pbnN0YWxsLWFtOgotKwotKy5NQUtFOiBpbnN0YWxsLWFtIGluc3RhbGwtc3RyaXAK LSsKLSsuUEhPTlk6IENUQUdTIEdUQUdTIGFsbCBhbGwtYW0gY2hlY2sgY2hlY2stYW0gY2xlYW4g Y2xlYW4tZ2VuZXJpYyBcCi0rCWNsZWFuLWxpYnRvb2wgY2xlYW4tbm9pbnN0UFJPR1JBTVMgY3Rh Z3MgZGlzdGNsZWFuIFwKLSsJZGlzdGNsZWFuLWNvbXBpbGUgZGlzdGNsZWFuLWdlbmVyaWMgZGlz dGNsZWFuLWxpYnRvb2wgXAotKwlkaXN0Y2xlYW4tdGFncyBkaXN0ZGlyIGR2aSBkdmktYW0gaHRt bCBodG1sLWFtIGluZm8gaW5mby1hbSBcCi0rCWluc3RhbGwgaW5zdGFsbC1hbSBpbnN0YWxsLWRh dGEgaW5zdGFsbC1kYXRhLWFtIGluc3RhbGwtZHZpIFwKLSsJaW5zdGFsbC1kdmktYW0gaW5zdGFs bC1leGVjIGluc3RhbGwtZXhlYy1hbSBpbnN0YWxsLWh0bWwgXAotKwlpbnN0YWxsLWh0bWwtYW0g aW5zdGFsbC1pbmZvIGluc3RhbGwtaW5mby1hbSBpbnN0YWxsLW1hbiBcCi0rCWluc3RhbGwtcGRm IGluc3RhbGwtcGRmLWFtIGluc3RhbGwtcHMgaW5zdGFsbC1wcy1hbSBcCi0rCWluc3RhbGwtc3Ry aXAgaW5zdGFsbGNoZWNrIGluc3RhbGxjaGVjay1hbSBpbnN0YWxsZGlycyBcCi0rCW1haW50YWlu ZXItY2xlYW4gbWFpbnRhaW5lci1jbGVhbi1nZW5lcmljIG1vc3RseWNsZWFuIFwKLSsJbW9zdGx5 Y2xlYW4tY29tcGlsZSBtb3N0bHljbGVhbi1nZW5lcmljIG1vc3RseWNsZWFuLWxpYnRvb2wgXAot KwlwZGYgcGRmLWFtIHBzIHBzLWFtIHRhZ3MgdW5pbnN0YWxsIHVuaW5zdGFsbC1hbQotKwotK0BT RVRfTUFLRUAKLSsKLSsjbm9kaXN0X3BrZ2luY2x1ZGVfSEVBREVSUyA9ICQobXlzcWxfdGVzdF9o X3NvdXJjZXMpCi0rIyBUZWxsIHZlcnNpb25zIFszLjU5LDMuNjMpIG9mIEdOVSBtYWtlIHRvIG5v dCBleHBvcnQgYWxsIHZhcmlhYmxlcy4KLSsjIE90aGVyd2lzZSBhIHN5c3RlbSBsaW1pdCAoZm9y IFN5c1YgYXQgbGVhc3QpIG1heSBiZSBleGNlZWRlZC4KLSsuTk9FWFBPUlQ6Ci1kaWZmIC1OdXIg c29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9teXNxbC90ZXN0L3NvdXJjZXMubWsgc29j aS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvbXlzcWwvdGVzdC9zb3VyY2VzLm1rCi0tLS0g c29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9teXNxbC90ZXN0L3NvdXJjZXMubWsJMTk3 MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBzb2NpLTMuMC4wX3RyZXAzMDAv c29jaS9iYWNrZW5kcy9teXNxbC90ZXN0L3NvdXJjZXMubWsJMjAwOS0wNS0yMiAyMjo1NDoxOS4w MDAwMDAwMDAgKzAyMDAKLUBAIC0wLDAgKzEsMiBAQAotK215c3FsX3Rlc3RfaF9zb3VyY2VzID0K LStteXNxbF90ZXN0X2NjX3NvdXJjZXMgPSAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlz cWwvdGVzdC90ZXN0LW15c3FsLmNwcAotZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kv YmFja2VuZHMvbXlzcWwvdGVzdC90ZXN0LW15c3FsLmNwcCBzb2NpLTMuMC4wX3RyZXAzMDAvc29j aS9iYWNrZW5kcy9teXNxbC90ZXN0L3Rlc3QtbXlzcWwuY3BwCi0tLS0gc29jaS0zLjAuMF80LXBh Y2svc29jaS9iYWNrZW5kcy9teXNxbC90ZXN0L3Rlc3QtbXlzcWwuY3BwCTIwMDktMDUtMjMgMTM6 Mzc6MDkuMDAwMDAwMDAwICswMjAwCi0rKysgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2Vu ZHMvbXlzcWwvdGVzdC90ZXN0LW15c3FsLmNwcAkyMDA5LTA1LTIyIDIyOjU0OjE5LjAwMDAwMDAw MCArMDIwMAotQEAgLTYsOSArNiwxNyBAQAotIC8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VO U0VfMV8wLnR4dCkKLSAvLwotIAotLSNpbmNsdWRlICJzb2NpLmgiCi0tI2luY2x1ZGUgInNvY2kt bXlzcWwuaCIKLS0jaW5jbHVkZSAidGVzdC9jb21tb24tdGVzdHMuaCIKLSsvLwotKyNpZiBkZWZp bmVkKFNPQ0lfSEVBREVSU19CVVJJRUQpCi0rIyAgICAgICBpbmNsdWRlIDxzb2NpL2NvcmUvc29j aS5oPgotKyMgICAgICAgaW5jbHVkZSA8c29jaS9iYWNrZW5kcy9teXNxbC9zb2NpLW15c3FsLmg+ Ci0rIyAgICAgICBpbmNsdWRlIDxzb2NpL2NvcmUvdGVzdC9jb21tb24tdGVzdHMuaD4KLSsjZWxz ZQotKyMJaW5jbHVkZSA8c29jaS5oPgotKyMJaW5jbHVkZSA8c29jaS1teXNxbC5oPgotKyMgICAg ICAgaW5jbHVkZSA8dGVzdC9jb21tb24tdGVzdHMuaD4KLSsjZW5kaWYKLSsvLwotICNpbmNsdWRl IDxpb3N0cmVhbT4KLSAjaW5jbHVkZSA8c3N0cmVhbT4KLSAjaW5jbHVkZSA8c3RyaW5nPgotQEAg LTE4LDggKzI2LDE0IEBACi0gI2luY2x1ZGUgPGN0aW1lPgotICNpbmNsdWRlIDxjaXNvNjQ2Pgot ICNpbmNsdWRlIDxjc3RkbGliPgotLSNpbmNsdWRlIDxteXNxbGRfZXJyb3IuaD4KLS0jaW5jbHVk ZSA8ZXJybXNnLmg+Ci0rLy8gTXlTUUwgQ2xpZW50Ci0rI2lmIGRlZmluZWQoU09DSV9NWVNRTF9I RUFERVJTX0JVUklFRCkKLSsjICAgICAgIGluY2x1ZGUgPG15c3FsL215c3FsZF9lcnJvci5oPgot KyMgICAgICAgaW5jbHVkZSA8bXlzcWwvZXJybXNnLmg+Ci0rI2Vsc2UKLSsjICAgICAgIGluY2x1 ZGUgPG15c3FsZF9lcnJvci5oPgotKyMgICAgICAgaW5jbHVkZSA8ZXJybXNnLmg+Ci0rI2VuZGlm Ci0gCi0gdXNpbmcgbmFtZXNwYWNlIHNvY2k7Ci0gdXNpbmcgbmFtZXNwYWNlIHNvY2k6OnRlc3Rz OwotZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvbXlzcWwvdmVjdG9y LWludG8tdHlwZS5jcHAgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvbXlzcWwvdmVj dG9yLWludG8tdHlwZS5jcHAKLS0tLSBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL215 c3FsL3ZlY3Rvci1pbnRvLXR5cGUuY3BwCTIwMDktMDUtMjMgMTM6Mzc6MDkuMDAwMDAwMDAwICsw MjAwCi0rKysgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvbXlzcWwvdmVjdG9yLWlu dG8tdHlwZS5jcHAJMjAwOS0wNS0yMiAyMjo1NDoxOS4wMDAwMDAwMDAgKzAyMDAKLUBAIC05LDcg KzksMTMgQEAKLSAjZGVmaW5lIFNPQ0lfTVlTUUxfU09VUkNFCi0gI2luY2x1ZGUgInNvY2ktbXlz cWwuaCIKLSAjaW5jbHVkZSAiY29tbW9uLmgiCi0tI2luY2x1ZGUgPHNvY2ktcGxhdGZvcm0uaD4K LSsvLwotKyNpZiBkZWZpbmVkKFNPQ0lfSEVBREVSU19CVVJJRUQpCi0rIyAgICAgICBpbmNsdWRl IDxzb2NpL2NvcmUvc29jaS1wbGF0Zm9ybS5oPgotKyNlbHNlCi0rIwlpbmNsdWRlIDxzb2NpLXBs YXRmb3JtLmg+Ci0rI2VuZGlmCi0rLy8KLSAjaW5jbHVkZSA8Y2lzbzY0Nj4KLSAKLSAjaWZkZWYg X01TQ19WRVIKLWRpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL215c3Fs L3ZlY3Rvci11c2UtdHlwZS5jcHAgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvbXlz cWwvdmVjdG9yLXVzZS10eXBlLmNwcAotLS0tIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2Vu ZHMvbXlzcWwvdmVjdG9yLXVzZS10eXBlLmNwcAkyMDA5LTA1LTIzIDEzOjM3OjA5LjAwMDAwMDAw MCArMDIwMAotKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL215c3FsL3ZlY3Rv ci11c2UtdHlwZS5jcHAJMjAwOS0wNS0yMiAyMjo1NDoxOS4wMDAwMDAwMDAgKzAyMDAKLUBAIC05 LDcgKzksMTIgQEAKLSAjZGVmaW5lIFNPQ0lfTVlTUUxfU09VUkNFCi0gI2luY2x1ZGUgInNvY2kt bXlzcWwuaCIKLSAjaW5jbHVkZSAiY29tbW9uLmgiCi0tI2luY2x1ZGUgPHNvY2ktcGxhdGZvcm0u aD4KLSsvLwotKyNpZiBkZWZpbmVkKFNPQ0lfSEVBREVSU19CVVJJRUQpCi0rIyAgICAgICBpbmNs dWRlIDxzb2NpL2NvcmUvc29jaS1wbGF0Zm9ybS5oPgotKyNlbHNlCi0rIwlpbmNsdWRlIDxzb2Np LXBsYXRmb3JtLmg+Ci0rI2VuZGlmCi0gLy8KLSAjaW5jbHVkZSA8Y2lzbzY0Nj4KLSAjaW5jbHVk ZSA8bGltaXRzPgotZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvb3Jh Y2xlL2Jsb2IuY3BwIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL29yYWNsZS9ibG9i LmNwcAotLS0tIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvb3JhY2xlL2Jsb2IuY3Bw CTIwMDktMDUtMjMgMTM6Mzc6MDkuMDAwMDAwMDAwICswMjAwCi0rKysgc29jaS0zLjAuMF90cmVw MzAwL3NvY2kvYmFja2VuZHMvb3JhY2xlL2Jsb2IuY3BwCTIwMDktMDUtMjIgMjI6NTQ6MTkuMDAw MDAwMDAwICswMjAwCi1AQCAtNyw3ICs3LDEzIEBACi0gCi0gI2luY2x1ZGUgInNvY2ktb3JhY2xl LmgiCi0gI2luY2x1ZGUgImVycm9yLmgiCi0tI2luY2x1ZGUgInN0YXRlbWVudC5oIgotKy8vCi0r I2lmIGRlZmluZWQoU09DSV9IRUFERVJTX0JVUklFRCkKLSsjICAgICAgIGluY2x1ZGUgPHNvY2kv Y29yZS9zdGF0ZW1lbnQuaD4KLSsjZWxzZQotKyMJaW5jbHVkZSA8c3RhdGVtZW50Lmg+Ci0rI2Vu ZGlmCi0rLy8KLSAjaW5jbHVkZSA8Y3N0cmluZz4KLSAjaW5jbHVkZSA8c3N0cmVhbT4KLSAjaW5j bHVkZSA8Y3N0ZGlvPgotZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMv b3JhY2xlL01ha2VmaWxlLmFtIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL29yYWNs ZS9NYWtlZmlsZS5hbQotLS0tIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvb3JhY2xl L01ha2VmaWxlLmFtCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCi0rKysgc29j aS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvb3JhY2xlL01ha2VmaWxlLmFtCTIwMDktMDUt MjIgMjI6NTQ6MTkuMDAwMDAwMDAwICswMjAwCi1AQCAtMCwwICsxLDI3IEBACi0rIyMgYmFja2Vu ZHMvb3JhY2xlIHN1Yi1kaXJlY3RvcnkKLStpbmNsdWRlICQodG9wX3NyY2RpcikvTWFrZWZpbGUu Y29tbW9uCi0raW5jbHVkZSAkKHNyY2Rpcikvc291cmNlcy5tawotKwotK01BSU5UQUlORVJDTEVB TkZJTEVTID0gTWFrZWZpbGUuaW4KLSsKLStTVUJESVJTID0gLiB0ZXN0Ci0rCi0raWYgSEFWRV9P UkFDTEUKLStsaWJfTFRMSUJSQVJJRVM9IGxpYnNvY2lfb3JhY2xlLmxhCi0rCi0rbGlic29jaV9v cmFjbGVfbGFfU09VUkNFUz0gJChiY2tfb3JhY2xlX2hfc291cmNlcykgJChiY2tfb3JhY2xlX2Nj X3NvdXJjZXMpIAotK2xpYnNvY2lfb3JhY2xlX2xhX0NYWEZMQUdTID0gJChPUkFDTEVfT0NJX0NG TEFHUykKLStsaWJzb2NpX29yYWNsZV9sYV9MSUJBREQgPQotK2xpYnNvY2lfb3JhY2xlX2xhX0xE RkxBR1MgPSBcCi0rCSQoQk9PU1RfTElCUykgJChCT09TVF9EQVRFX1RJTUVfTElCKSAkKEJPT1NU X1BST0dSQU1fT1BUSU9OU19MSUIpIFwKLSsJJChPUkFDTEVfT0NJX0xERkxBR1MpIFwKLSsJLXZl cnNpb24taW5mbyAkKEdFTkVSSUNfTElCUkFSWV9WRVJTSU9OKQotKwotK25vYmFzZV9wa2dpbmNs dWRlX0hFQURFUlMgPSAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3NvY2ktb3Jh Y2xlLmgKLStlbmRpZgotK2lmIFNPQ0lfSEVBREVSU19CVVJJRUQKLStzb2NpX2luY2x1ZGVfZGly ID0gJChpbmNsdWRlZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZQotK2Vsc2UKLStzb2NpX2luY2x1 ZGVfZGlyID0gJChpbmNsdWRlZGlyKQotK2VuZGlmCi0rcGtnaW5jbHVkZWRpciA9ICQoc29jaV9p bmNsdWRlX2RpcikKLWRpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL29y YWNsZS9NYWtlZmlsZS5iYXNpYyBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9vcmFj bGUvTWFrZWZpbGUuYmFzaWMKLS0tLSBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL29y YWNsZS9NYWtlZmlsZS5iYXNpYwkyMDA5LTA1LTIzIDEzOjM3OjA5LjAwMDAwMDAwMCArMDIwMAot KysrIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL29yYWNsZS9NYWtlZmlsZS5iYXNp YwkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAotQEAgLTEsOTUgKzAsMCBAQAot LSMgVGhlIGZvbGxvd2luZyB2YXJpYWJsZSBpcyBzcGVjaWZpYyB0byB0aGlzIGJhY2tlbmQgYW5k IGl0cyBjb3JyZWN0Ci0tIyB2YWx1ZXMgbWlnaHQgZGVwZW5kIG9uIHlvdXIgZW52aXJvbm1lbnQg LSBmZWVsIGZyZWUgdG8gc2V0IGl0IGFjY29yZGluZ2x5LgotLQotLU9SQUNMRUlOQ0xVREVESVIg PSAtSS91c3IvbGliL29yYWNsZS94ZS9hcHAvb3JhY2xlL3Byb2R1Y3QvMTAuMi4wL3NlcnZlci9y ZGJtcy9wdWJsaWMKLS0KLS0jIFRoZSByZXN0IG9mIHRoZSBNYWtlZmlsZSBpcyBpbmRlcGVudGVu dCBvZiB0aGUgdGFyZ2V0IGVudmlyb25tZW50LgotLQotLUNPTVBJTEVSID0gZysrCi0tQ1hYRkxB R1MgPSAtV2FsbCAtcGVkYW50aWMgLVduby1sb25nLWxvbmcKLS1DWFhGTEFHU1NPID0gJHtDWFhG TEFHU30gLWZQSUMKLS1JTkNMVURFRElSUyA9IC1JLi4vLi4vY29yZSAke09SQUNMRUlOQ0xVREVE SVJ9Ci0tCi0tT0JKRUNUUyA9IGJsb2IubyBmYWN0b3J5Lm8gcm93LWlkLm8gc2Vzc2lvbi5vIHN0 YW5kYXJkLWludG8tdHlwZS5vIFwKLS0Jc3RhbmRhcmQtdXNlLXR5cGUubyBzdGF0ZW1lbnQubyB2 ZWN0b3ItaW50by10eXBlLm8gdmVjdG9yLXVzZS10eXBlLm8gXAotLQllcnJvci5vCi0tCi0tT0JK RUNUU1NPID0gYmxvYi1zLm8gZmFjdG9yeS1zLm8gcm93LWlkLXMubyBzZXNzaW9uLXMubyBcCi0t CXN0YW5kYXJkLWludG8tdHlwZS1zLm8gc3RhbmRhcmQtdXNlLXR5cGUtcy5vIHN0YXRlbWVudC1z Lm8gXAotLQl2ZWN0b3ItaW50by10eXBlLXMubyB2ZWN0b3ItdXNlLXR5cGUtcy5vIGVycm9yLXMu bwotLQotLWxpYnNvY2lfb3JhY2xlLmEgOiAke09CSkVDVFN9Ci0tCWFyIHJ2ICRAICQ/Ci0tCXJt ICoubwotLQotLXNvY2ktb3JhY2xlLm8gOiBzb2NpLW9yYWNsZS5jcHAgCi0tCSR7Q09NUElMRVJ9 IC1jICQ/ICR7Q1hYRkxBR1N9ICR7SU5DTFVERURJUlN9Ci0tCQotLWJsb2IubyA6IGJsb2IuY3Bw Ci0tCSR7Q09NUElMRVJ9IC1jICQ/ICR7Q1hYRkxBR1N9ICR7SU5DTFVERURJUlN9Ci0tCi0tZXJy b3IubyA6IGVycm9yLmNwcAotLQkke0NPTVBJTEVSfSAtYyAkPyAke0NYWEZMQUdTfSAke0lOQ0xV REVESVJTfQotLQotLWZhY3RvcnkubyA6IGZhY3RvcnkuY3BwCi0tCSR7Q09NUElMRVJ9IC1jICQ/ ICR7Q1hYRkxBR1N9ICR7SU5DTFVERURJUlN9Ci0tCi0tcm93LWlkLm8gOiByb3ctaWQuY3BwCi0t CSR7Q09NUElMRVJ9IC1jICQ/ICR7Q1hYRkxBR1N9ICR7SU5DTFVERURJUlN9Ci0tCi0tc2Vzc2lv bi5vIDogc2Vzc2lvbi5jcHAKLS0JJHtDT01QSUxFUn0gLWMgJD8gJHtDWFhGTEFHU30gJHtJTkNM VURFRElSU30KLS0KLS1zdGFuZGFyZC1pbnRvLXR5cGUubyA6IHN0YW5kYXJkLWludG8tdHlwZS5j cHAKLS0JJHtDT01QSUxFUn0gLWMgJD8gJHtDWFhGTEFHU30gJHtJTkNMVURFRElSU30KLS0KLS1z dGFuZGFyZC11c2UtdHlwZS5vIDogc3RhbmRhcmQtdXNlLXR5cGUuY3BwCi0tCSR7Q09NUElMRVJ9 IC1jICQ/ICR7Q1hYRkxBR1N9ICR7SU5DTFVERURJUlN9Ci0tCi0tc3RhdGVtZW50Lm8gOiBzdGF0 ZW1lbnQuY3BwCi0tCSR7Q09NUElMRVJ9IC1jICQ/ICR7Q1hYRkxBR1N9ICR7SU5DTFVERURJUlN9 Ci0tCi0tdmVjdG9yLWludG8tdHlwZS5vIDogdmVjdG9yLWludG8tdHlwZS5jcHAKLS0JJHtDT01Q SUxFUn0gLWMgJD8gJHtDWFhGTEFHU30gJHtJTkNMVURFRElSU30KLS0KLS12ZWN0b3ItdXNlLXR5 cGUubyA6IHZlY3Rvci11c2UtdHlwZS5jcHAKLS0JJHtDT01QSUxFUn0gLWMgJD8gJHtDWFhGTEFH U30gJHtJTkNMVURFRElSU30KLS0KLS0KLS1zaGFyZWQgOiAke09CSkVDVFNTT30KLS0JJHtDT01Q SUxFUn0gLXNoYXJlZCAtbyBsaWJzb2NpX29yYWNsZS5zbyAke09CSkVDVFNTT30KLS0Jcm0gKi5v Ci0tCi0tYmxvYi1zLm8gOiBibG9iLmNwcAotLQkke0NPTVBJTEVSfSAtYyAtbyAkQCAkPyAke0NY WEZMQUdTU099ICR7SU5DTFVERURJUlN9Ci0tCi0tZXJyb3Itcy5vIDogZXJyb3IuY3BwCi0tCSR7 Q09NUElMRVJ9IC1jIC1vICRAICQ/ICR7Q1hYRkxBR1NTT30gJHtJTkNMVURFRElSU30KLS0KLS1m YWN0b3J5LXMubyA6IGZhY3RvcnkuY3BwCi0tCSR7Q09NUElMRVJ9IC1jIC1vICRAICQ/ICR7Q1hY RkxBR1NTT30gJHtJTkNMVURFRElSU30KLS0KLS1yb3ctaWQtcy5vIDogcm93LWlkLmNwcAotLQkk e0NPTVBJTEVSfSAtYyAtbyAkQCAkPyAke0NYWEZMQUdTU099ICR7SU5DTFVERURJUlN9Ci0tCi0t c2Vzc2lvbi1zLm8gOiBzZXNzaW9uLmNwcAotLQkke0NPTVBJTEVSfSAtYyAtbyAkQCAkPyAke0NY WEZMQUdTU099ICR7SU5DTFVERURJUlN9Ci0tCi0tc3RhbmRhcmQtaW50by10eXBlLXMubyA6IHN0 YW5kYXJkLWludG8tdHlwZS5jcHAKLS0JJHtDT01QSUxFUn0gLWMgLW8gJEAgJD8gJHtDWFhGTEFH U1NPfSAke0lOQ0xVREVESVJTfQotLQotLXN0YW5kYXJkLXVzZS10eXBlLXMubyA6IHN0YW5kYXJk LXVzZS10eXBlLmNwcAotLQkke0NPTVBJTEVSfSAtYyAtbyAkQCAkPyAke0NYWEZMQUdTU099ICR7 SU5DTFVERURJUlN9Ci0tCi0tc3RhdGVtZW50LXMubyA6IHN0YXRlbWVudC5jcHAKLS0JJHtDT01Q SUxFUn0gLWMgLW8gJEAgJD8gJHtDWFhGTEFHU1NPfSAke0lOQ0xVREVESVJTfQotLQotLXZlY3Rv ci1pbnRvLXR5cGUtcy5vIDogdmVjdG9yLWludG8tdHlwZS5jcHAKLS0JJHtDT01QSUxFUn0gLWMg LW8gJEAgJD8gJHtDWFhGTEFHU1NPfSAke0lOQ0xVREVESVJTfQotLQotLXZlY3Rvci11c2UtdHlw ZS1zLm8gOiB2ZWN0b3ItdXNlLXR5cGUuY3BwCi0tCSR7Q09NUElMRVJ9IC1jIC1vICRAICQ/ICR7 Q1hYRkxBR1NTT30gJHtJTkNMVURFRElSU30KLS0KLS0KLS1jbGVhbiA6Ci0tCXJtIC1mICoubyBs aWJzb2NpX29yYWNsZS5hIGxpYnNvY2lfb3JhY2xlLnNvCi1kaWZmIC1OdXIgc29jaS0zLjAuMF80 LXBhY2svc29jaS9iYWNrZW5kcy9vcmFjbGUvTWFrZWZpbGUuaW4gc29jaS0zLjAuMF90cmVwMzAw L3NvY2kvYmFja2VuZHMvb3JhY2xlL01ha2VmaWxlLmluCi0tLS0gc29jaS0zLjAuMF80LXBhY2sv c29jaS9iYWNrZW5kcy9vcmFjbGUvTWFrZWZpbGUuaW4JMTk3MC0wMS0wMSAwMTowMDowMC4wMDAw MDAwMDAgKzAxMDAKLSsrKyBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9vcmFjbGUv TWFrZWZpbGUuaW4JMjAwOS0wNS0yMyAxMDowMjowMi4wMDAwMDAwMDAgKzAyMDAKLUBAIC0wLDAg KzEsODExIEBACi0rIyBNYWtlZmlsZS5pbiBnZW5lcmF0ZWQgYnkgYXV0b21ha2UgMS4xMC4yIGZy b20gTWFrZWZpbGUuYW0uCi0rIyBAY29uZmlndXJlX2lucHV0QAotKwotKyMgQ29weXJpZ2h0IChD KSAxOTk0LCAxOTk1LCAxOTk2LCAxOTk3LCAxOTk4LCAxOTk5LCAyMDAwLCAyMDAxLCAyMDAyLAot KyMgMjAwMywgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCAgRnJlZSBTb2Z0d2FyZSBGb3Vu ZGF0aW9uLCBJbmMuCi0rIyBUaGlzIE1ha2VmaWxlLmluIGlzIGZyZWUgc29mdHdhcmU7IHRoZSBG cmVlIFNvZnR3YXJlIEZvdW5kYXRpb24KLSsjIGdpdmVzIHVubGltaXRlZCBwZXJtaXNzaW9uIHRv IGNvcHkgYW5kL29yIGRpc3RyaWJ1dGUgaXQsCi0rIyB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0 aW9ucywgYXMgbG9uZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCi0rCi0rIyBUaGlzIHBy b2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwK LSsjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWSwgdG8gdGhlIGV4dGVudCBwZXJtaXR0ZWQgYnkg bGF3OyB3aXRob3V0Ci0rIyBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJ TElUWSBvciBGSVRORVNTIEZPUiBBCi0rIyBQQVJUSUNVTEFSIFBVUlBPU0UuCi0rCi0rQFNFVF9N QUtFQAotKwotKwotK1ZQQVRIID0gQHNyY2RpckAKLStwa2dkYXRhZGlyID0gJChkYXRhZGlyKS9A UEFDS0FHRUAKLStwa2dsaWJkaXIgPSAkKGxpYmRpcikvQFBBQ0tBR0VACi0rYW1fX2NkID0gQ0RQ QVRIPSIkJHtaU0hfVkVSU0lPTisufSQoUEFUSF9TRVBBUkFUT1IpIiAmJiBjZAotK2luc3RhbGxf c2hfREFUQSA9ICQoaW5zdGFsbF9zaCkgLWMgLW0gNjQ0Ci0raW5zdGFsbF9zaF9QUk9HUkFNID0g JChpbnN0YWxsX3NoKSAtYwotK2luc3RhbGxfc2hfU0NSSVBUID0gJChpbnN0YWxsX3NoKSAtYwot K0lOU1RBTExfSEVBREVSID0gJChJTlNUQUxMX0RBVEEpCi0rdHJhbnNmb3JtID0gJChwcm9ncmFt X3RyYW5zZm9ybV9uYW1lKQotK05PUk1BTF9JTlNUQUxMID0gOgotK1BSRV9JTlNUQUxMID0gOgot K1BPU1RfSU5TVEFMTCA9IDoKLStOT1JNQUxfVU5JTlNUQUxMID0gOgotK1BSRV9VTklOU1RBTEwg PSA6Ci0rUE9TVF9VTklOU1RBTEwgPSA6Ci0rYnVpbGRfdHJpcGxldCA9IEBidWlsZEAKLStob3N0 X3RyaXBsZXQgPSBAaG9zdEAKLStESVNUX0NPTU1PTiA9ICQoYW1fX25vYmFzZV9wa2dpbmNsdWRl X0hFQURFUlNfRElTVCkgXAotKwkkKHNyY2RpcikvTWFrZWZpbGUuYW0gJChzcmNkaXIpL01ha2Vm aWxlLmluIFwKLSsJJChzcmNkaXIpL3NvdXJjZXMubWsgJCh0b3Bfc3JjZGlyKS9NYWtlZmlsZS5j b21tb24KLStzdWJkaXIgPSBzb2NpL2JhY2tlbmRzL29yYWNsZQotK0FDTE9DQUxfTTQgPSAkKHRv cF9zcmNkaXIpL2FjbG9jYWwubTQKLSthbV9fYWNsb2NhbF9tNF9kZXBzID0gJCh0b3Bfc3JjZGly KS9jb25maWcvYXhfYm9vc3QubTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9teXNxbC5t NCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmlnL2F4X29yYWNsZV9vY2kubTQgXAotKwkkKHRvcF9z cmNkaXIpL2NvbmZpZy9heF9wb3N0Z3Jlc3FsLm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcv Y3BwdW5pdC5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmlnL2xpYnRvb2wubTQgXAotKwkkKHRv cF9zcmNkaXIpL2NvbmZpZy9sdG9wdGlvbnMubTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9s dHN1Z2FyLm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvbHR2ZXJzaW9uLm00IFwKLSsJJCh0 b3Bfc3JjZGlyKS9jb25maWcvbHR+b2Jzb2xldGUubTQgJCh0b3Bfc3JjZGlyKS9jb25maWd1cmUu YWMKLSthbV9fY29uZmlndXJlX2RlcHMgPSAkKGFtX19hY2xvY2FsX200X2RlcHMpICQoQ09ORklH VVJFX0RFUEVOREVOQ0lFUykgXAotKwkkKEFDTE9DQUxfTTQpCi0rbWtpbnN0YWxsZGlycyA9ICQo aW5zdGFsbF9zaCkgLWQKLStDT05GSUdfSEVBREVSID0gJCh0b3BfYnVpbGRkaXIpL3NvY2kvY29u ZmlnLmgKLStDT05GSUdfQ0xFQU5fRklMRVMgPQotK2FtX192cGF0aF9hZGpfc2V0dXAgPSBzcmNk aXJzdHJpcD1gZWNobyAiJChzcmNkaXIpIiB8IHNlZCAnc3wufC58ZydgOwotK2FtX192cGF0aF9h ZGogPSBjYXNlICQkcCBpbiBcCi0rICAgICQoc3JjZGlyKS8qKSBmPWBlY2hvICIkJHAiIHwgc2Vk ICJzfF4kJHNyY2RpcnN0cmlwL3x8ImA7OyBcCi0rICAgICopIGY9JCRwOzsgXAotKyAgZXNhYzsK LSthbV9fc3RyaXBfZGlyID0gYGVjaG8gJCRwIHwgc2VkIC1lICdzfF4uKi98fCdgOwotK2FtX19p bnN0YWxsZGlycyA9ICIkKERFU1RESVIpJChsaWJkaXIpIiAiJChERVNURElSKSQocGtnaW5jbHVk ZWRpcikiCi0rbGliTFRMSUJSQVJJRVNfSU5TVEFMTCA9ICQoSU5TVEFMTCkKLStMVExJQlJBUklF UyA9ICQobGliX0xUTElCUkFSSUVTKQotK2xpYnNvY2lfb3JhY2xlX2xhX0RFUEVOREVOQ0lFUyA9 Ci0rYW1fX2xpYnNvY2lfb3JhY2xlX2xhX1NPVVJDRVNfRElTVCA9ICBcCi0rCSQodG9wX3NyY2Rp cikvc29jaS9iYWNrZW5kcy9vcmFjbGUvZXJyb3IuaCBcCi0rCSQodG9wX3NyY2Rpcikvc29jaS9i YWNrZW5kcy9vcmFjbGUvc29jaS1vcmFjbGUuaCBcCi0rCSQodG9wX3NyY2Rpcikvc29jaS9iYWNr ZW5kcy9vcmFjbGUvYmxvYi5jcHAgXAotKwkkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3Jh Y2xlL2Vycm9yLmNwcCBcCi0rCSQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvZmFj dG9yeS5jcHAgXAotKwkkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3Jvdy1pZC5j cHAgXAotKwkkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3Nlc3Npb24uY3BwIFwK LSsJJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9zdGFuZGFyZC1pbnRvLXR5cGUu Y3BwIFwKLSsJJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9zdGFuZGFyZC11c2Ut dHlwZS5jcHAgXAotKwkkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3N0YXRlbWVu dC5jcHAgXAotKwkkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3ZlY3Rvci1pbnRv LXR5cGUuY3BwIFwKLSsJJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS92ZWN0b3It dXNlLXR5cGUuY3BwCi0rYW1fX29iamVjdHNfMSA9Ci0rYW1fX29iamVjdHNfMiA9IGxpYnNvY2lf b3JhY2xlX2xhLWJsb2IubG8gbGlic29jaV9vcmFjbGVfbGEtZXJyb3IubG8gXAotKwlsaWJzb2Np X29yYWNsZV9sYS1mYWN0b3J5LmxvIGxpYnNvY2lfb3JhY2xlX2xhLXJvdy1pZC5sbyBcCi0rCWxp YnNvY2lfb3JhY2xlX2xhLXNlc3Npb24ubG8gXAotKwlsaWJzb2NpX29yYWNsZV9sYS1zdGFuZGFy ZC1pbnRvLXR5cGUubG8gXAotKwlsaWJzb2NpX29yYWNsZV9sYS1zdGFuZGFyZC11c2UtdHlwZS5s byBcCi0rCWxpYnNvY2lfb3JhY2xlX2xhLXN0YXRlbWVudC5sbyBcCi0rCWxpYnNvY2lfb3JhY2xl X2xhLXZlY3Rvci1pbnRvLXR5cGUubG8gXAotKwlsaWJzb2NpX29yYWNsZV9sYS12ZWN0b3ItdXNl LXR5cGUubG8KLStASEFWRV9PUkFDTEVfVFJVRUBhbV9saWJzb2NpX29yYWNsZV9sYV9PQkpFQ1RT ID0gJChhbV9fb2JqZWN0c18xKSBcCi0rQEhBVkVfT1JBQ0xFX1RSVUVACSQoYW1fX29iamVjdHNf MikKLStsaWJzb2NpX29yYWNsZV9sYV9PQkpFQ1RTID0gJChhbV9saWJzb2NpX29yYWNsZV9sYV9P QkpFQ1RTKQotK2xpYnNvY2lfb3JhY2xlX2xhX0xJTksgPSAkKExJQlRPT0wpIC0tdGFnPUNYWCAk KEFNX0xJQlRPT0xGTEFHUykgXAotKwkkKExJQlRPT0xGTEFHUykgLS1tb2RlPWxpbmsgJChDWFhM RCkgXAotKwkkKGxpYnNvY2lfb3JhY2xlX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSBcCi0rCSQo bGlic29jaV9vcmFjbGVfbGFfTERGTEFHUykgJChMREZMQUdTKSAtbyAkQAotK0BIQVZFX09SQUNM RV9UUlVFQGFtX2xpYnNvY2lfb3JhY2xlX2xhX3JwYXRoID0gLXJwYXRoICQobGliZGlyKQotK0RF RkFVTFRfSU5DTFVERVMgPSAtSS5AYW1fX2lzcmNAIC1JJCh0b3BfYnVpbGRkaXIpL3NvY2kKLStk ZXBjb21wID0gJChTSEVMTCkgJCh0b3Bfc3JjZGlyKS9jb25maWcvZGVwY29tcAotK2FtX19kZXBm aWxlc19tYXliZSA9IGRlcGZpbGVzCi0rQ1hYQ09NUElMRSA9ICQoQ1hYKSAkKERFRlMpICQoREVG QVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgXAotKwkkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdT KSAkKEFNX0NYWEZMQUdTKSAkKENYWEZMQUdTKQotK0xUQ1hYQ09NUElMRSA9ICQoTElCVE9PTCkg LS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgXAotKwktLW1vZGU9 Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpIFwK LSsJJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChBTV9DWFhGTEFHUykgJChDWFhGTEFHUykK LStDWFhMRCA9ICQoQ1hYKQotK0NYWExJTksgPSAkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJ QlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIFwKLSsJLS1tb2RlPWxpbmsgJChDWFhMRCkgJChB TV9DWFhGTEFHUykgJChDWFhGTEFHUykgJChBTV9MREZMQUdTKSBcCi0rCSQoTERGTEFHUykgLW8g JEAKLStDT01QSUxFID0gJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVE RVMpICQoQU1fQ1BQRkxBR1MpIFwKLSsJJChDUFBGTEFHUykgJChBTV9DRkxBR1MpICQoQ0ZMQUdT KQotK0xUQ09NUElMRSA9ICQoTElCVE9PTCkgLS10YWc9Q0MgJChBTV9MSUJUT09MRkxBR1MpICQo TElCVE9PTEZMQUdTKSBcCi0rCS0tbW9kZT1jb21waWxlICQoQ0MpICQoREVGUykgJChERUZBVUxU X0lOQ0xVREVTKSAkKElOQ0xVREVTKSBcCi0rCSQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQo QU1fQ0ZMQUdTKSAkKENGTEFHUykKLStDQ0xEID0gJChDQykKLStMSU5LID0gJChMSUJUT09MKSAt LXRhZz1DQyAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIFwKLSsJLS1tb2RlPWxp bmsgJChDQ0xEKSAkKEFNX0NGTEFHUykgJChDRkxBR1MpICQoQU1fTERGTEFHUykgXAotKwkkKExE RkxBR1MpIC1vICRACi0rU09VUkNFUyA9ICQobGlic29jaV9vcmFjbGVfbGFfU09VUkNFUykKLStE SVNUX1NPVVJDRVMgPSAkKGFtX19saWJzb2NpX29yYWNsZV9sYV9TT1VSQ0VTX0RJU1QpCi0rUkVD VVJTSVZFX1RBUkdFVFMgPSBhbGwtcmVjdXJzaXZlIGNoZWNrLXJlY3Vyc2l2ZSBkdmktcmVjdXJz aXZlIFwKLSsJaHRtbC1yZWN1cnNpdmUgaW5mby1yZWN1cnNpdmUgaW5zdGFsbC1kYXRhLXJlY3Vy c2l2ZSBcCi0rCWluc3RhbGwtZHZpLXJlY3Vyc2l2ZSBpbnN0YWxsLWV4ZWMtcmVjdXJzaXZlIFwK LSsJaW5zdGFsbC1odG1sLXJlY3Vyc2l2ZSBpbnN0YWxsLWluZm8tcmVjdXJzaXZlIFwKLSsJaW5z dGFsbC1wZGYtcmVjdXJzaXZlIGluc3RhbGwtcHMtcmVjdXJzaXZlIGluc3RhbGwtcmVjdXJzaXZl IFwKLSsJaW5zdGFsbGNoZWNrLXJlY3Vyc2l2ZSBpbnN0YWxsZGlycy1yZWN1cnNpdmUgcGRmLXJl Y3Vyc2l2ZSBcCi0rCXBzLXJlY3Vyc2l2ZSB1bmluc3RhbGwtcmVjdXJzaXZlCi0rYW1fX25vYmFz ZV9wa2dpbmNsdWRlX0hFQURFUlNfRElTVCA9ICBcCi0rCSQodG9wX3NyY2Rpcikvc29jaS9iYWNr ZW5kcy9vcmFjbGUvc29jaS1vcmFjbGUuaAotK25vYmFzZV9wa2dpbmNsdWRlSEVBREVSU19JTlNU QUxMID0gJChpbnN0YWxsX3NoX0RBVEEpCi0rSEVBREVSUyA9ICQobm9iYXNlX3BrZ2luY2x1ZGVf SEVBREVSUykKLStSRUNVUlNJVkVfQ0xFQU5fVEFSR0VUUyA9IG1vc3RseWNsZWFuLXJlY3Vyc2l2 ZSBjbGVhbi1yZWN1cnNpdmUJXAotKyAgZGlzdGNsZWFuLXJlY3Vyc2l2ZSBtYWludGFpbmVyLWNs ZWFuLXJlY3Vyc2l2ZQotK0VUQUdTID0gZXRhZ3MKLStDVEFHUyA9IGN0YWdzCi0rRElTVF9TVUJE SVJTID0gJChTVUJESVJTKQotK0RJU1RGSUxFUyA9ICQoRElTVF9DT01NT04pICQoRElTVF9TT1VS Q0VTKSAkKFRFWElORk9TKSAkKEVYVFJBX0RJU1QpCi0rcGtnaW5jbHVkZWRpciA9ICQoc29jaV9p bmNsdWRlX2RpcikKLStBQ0xPQ0FMID0gQEFDTE9DQUxACi0rQU1UQVIgPSBAQU1UQVJACi0rQVIg PSBAQVJACi0rQVVUT0NPTkYgPSBAQVVUT0NPTkZACi0rQVVUT0hFQURFUiA9IEBBVVRPSEVBREVS QAotK0FVVE9NQUtFID0gQEFVVE9NQUtFQAotK0FXSyA9IEBBV0tACi0rQk9PU1RfQ0ZMQUdTID0g QEJPT1NUX0NGTEFHU0AKLStCT09TVF9EQVRFX1RJTUVfTElCID0gQEJPT1NUX0RBVEVfVElNRV9M SUJACi0rQk9PU1RfRklMRVNZU1RFTV9MSUIgPSBAQk9PU1RfRklMRVNZU1RFTV9MSUJACi0rQk9P U1RfSU9TVFJFQU1TX0xJQiA9IEBCT09TVF9JT1NUUkVBTVNfTElCQAotK0JPT1NUX0xJQlMgPSBA Qk9PU1RfTElCU0AKLStCT09TVF9QUk9HUkFNX09QVElPTlNfTElCID0gQEJPT1NUX1BST0dSQU1f T1BUSU9OU19MSUJACi0rQk9PU1RfUkVHRVhfTElCID0gQEJPT1NUX1JFR0VYX0xJQkAKLStCT09T VF9TRVJJQUxJWkFUSU9OX0xJQiA9IEBCT09TVF9TRVJJQUxJWkFUSU9OX0xJQkAKLStCT09TVF9T SUdOQUxTX0xJQiA9IEBCT09TVF9TSUdOQUxTX0xJQkAKLStCT09TVF9USFJFQURfTElCID0gQEJP T1NUX1RIUkVBRF9MSUJACi0rQk9PU1RfVU5JVF9URVNUX0ZSQU1FV09SS19MSUIgPSBAQk9PU1Rf VU5JVF9URVNUX0ZSQU1FV09SS19MSUJACi0rQk9PU1RfVkVSU0lPTiA9IEBCT09TVF9WRVJTSU9O QAotK0JPT1NUX1dTRVJJQUxJWkFUSU9OX0xJQiA9IEBCT09TVF9XU0VSSUFMSVpBVElPTl9MSUJA Ci0rQ0MgPSBAQ0NACi0rQ0NERVBNT0RFID0gQENDREVQTU9ERUAKLStDRkxBR1MgPSBAQ0ZMQUdT QAotK0NQUCA9IEBDUFBACi0rQ1BQRkxBR1MgPSBAQ1BQRkxBR1NACi0rQ1BQVU5JVF9DRkxBR1Mg PSBAQ1BQVU5JVF9DRkxBR1NACi0rQ1BQVU5JVF9DT05GSUcgPSBAQ1BQVU5JVF9DT05GSUdACi0r Q1BQVU5JVF9MSUJTID0gQENQUFVOSVRfTElCU0AKLStDUFBVTklUX1ZFUlNJT04gPSBAQ1BQVU5J VF9WRVJTSU9OQAotK0NYWCA9IEBDWFhACi0rQ1hYQ1BQID0gQENYWENQUEAKLStDWFhERVBNT0RF ID0gQENYWERFUE1PREVACi0rQ1hYRkxBR1MgPSBAQ1hYRkxBR1NACi0rQ1lHUEFUSF9XID0gQENZ R1BBVEhfV0AKLStERUZTID0gQERFRlNACi0rREVQRElSID0gQERFUERJUkAKLStEU1lNVVRJTCA9 IEBEU1lNVVRJTEAKLStEVU1QQklOID0gQERVTVBCSU5ACi0rRUNIT19DID0gQEVDSE9fQ0AKLStF Q0hPX04gPSBARUNIT19OQAotK0VDSE9fVCA9IEBFQ0hPX1RACi0rRUdSRVAgPSBARUdSRVBACi0r RVhFRVhUID0gQEVYRUVYVEAKLStGR1JFUCA9IEBGR1JFUEAKLStHRU5FUklDX0xJQlJBUllfVkVS U0lPTiA9IEBHRU5FUklDX0xJQlJBUllfVkVSU0lPTkAKLStHUkVQID0gQEdSRVBACi0rSU5TVEFM TCA9IEBJTlNUQUxMQAotK0lOU1RBTExfREFUQSA9IEBJTlNUQUxMX0RBVEFACi0rSU5TVEFMTF9Q Uk9HUkFNID0gQElOU1RBTExfUFJPR1JBTUAKLStJTlNUQUxMX1NDUklQVCA9IEBJTlNUQUxMX1ND UklQVEAKLStJTlNUQUxMX1NUUklQX1BST0dSQU0gPSBASU5TVEFMTF9TVFJJUF9QUk9HUkFNQAot K0xEID0gQExEQAotK0xERkxBR1MgPSBATERGTEFHU0AKLStMSUJPQkpTID0gQExJQk9CSlNACi0r TElCUyA9IEBMSUJTQAotK0xJQlRPT0wgPSBATElCVE9PTEAKLStMSVBPID0gQExJUE9ACi0rTE5f UyA9IEBMTl9TQAotK0xUTElCT0JKUyA9IEBMVExJQk9CSlNACi0rTUFLRUlORk8gPSBATUFLRUlO Rk9ACi0rTUtESVJfUCA9IEBNS0RJUl9QQAotK01ZU1FMX0NGTEFHUyA9IEBNWVNRTF9DRkxBR1NA Ci0rTVlTUUxfQ09ORklHID0gQE1ZU1FMX0NPTkZJR0AKLStNWVNRTF9ESVJTID0gQE1ZU1FMX0RJ UlNACi0rTVlTUUxfTERGTEFHUyA9IEBNWVNRTF9MREZMQUdTQAotK01ZU1FMX1ZFUlNJT04gPSBA TVlTUUxfVkVSU0lPTkAKLStOTSA9IEBOTUAKLStOTUVESVQgPSBATk1FRElUQAotK09CSkRVTVAg PSBAT0JKRFVNUEAKLStPQkpFWFQgPSBAT0JKRVhUQAotK09SQUNMRV9ESVJTID0gQE9SQUNMRV9E SVJTQAotK09SQUNMRV9PQ0lfQ0ZMQUdTID0gQE9SQUNMRV9PQ0lfQ0ZMQUdTQAotK09SQUNMRV9P Q0lfTERGTEFHUyA9IEBPUkFDTEVfT0NJX0xERkxBR1NACi0rT1JBQ0xFX09DSV9WRVJTSU9OID0g QE9SQUNMRV9PQ0lfVkVSU0lPTkAKLStPVE9PTCA9IEBPVE9PTEAKLStPVE9PTDY0ID0gQE9UT09M NjRACi0rUEFDS0FHRSA9IEBQQUNLQUdFQAotK1BBQ0tBR0VfQlVHUkVQT1JUID0gQFBBQ0tBR0Vf QlVHUkVQT1JUQAotK1BBQ0tBR0VfTkFNRSA9IEBQQUNLQUdFX05BTUVACi0rUEFDS0FHRV9TVFJJ TkcgPSBAUEFDS0FHRV9TVFJJTkdACi0rUEFDS0FHRV9UQVJOQU1FID0gQFBBQ0tBR0VfVEFSTkFN RUAKLStQQUNLQUdFX1ZFUlNJT04gPSBAUEFDS0FHRV9WRVJTSU9OQAotK1BBVEhfU0VQQVJBVE9S ID0gQFBBVEhfU0VQQVJBVE9SQAotK1BFUkwgPSBAUEVSTEAKLStQR19DT05GSUcgPSBAUEdfQ09O RklHQAotK1BPU1RHUkVTUUxfQ0ZMQUdTID0gQFBPU1RHUkVTUUxfQ0ZMQUdTQAotK1BPU1RHUkVT UUxfRElSUyA9IEBQT1NUR1JFU1FMX0RJUlNACi0rUE9TVEdSRVNRTF9MREZMQUdTID0gQFBPU1RH UkVTUUxfTERGTEFHU0AKLStQT1NUR1JFU1FMX1ZFUlNJT04gPSBAUE9TVEdSRVNRTF9WRVJTSU9O QAotK1JBTkxJQiA9IEBSQU5MSUJACi0rUlBNX1JFTEVBU0UgPSBAUlBNX1JFTEVBU0VACi0rU0VE ID0gQFNFREAKLStTRVRfTUFLRSA9IEBTRVRfTUFLRUAKLStTSEVMTCA9IEBTSEVMTEAKLStTT0NJ X0hFQURFUlNfQlVSSUVEID0gQFNPQ0lfSEVBREVSU19CVVJJRURACi0rU09DSV9NWVNRTF9IRUFE RVJTX0JVUklFRCA9IEBTT0NJX01ZU1FMX0hFQURFUlNfQlVSSUVEQAotK1NPQ0lfUE9TVEdSRVNR TF9IRUFERVJTX0JVUklFRCA9IEBTT0NJX1BPU1RHUkVTUUxfSEVBREVSU19CVVJJRURACi0rU1RS SVAgPSBAU1RSSVBACi0rVVBMT0FEX0NPTU1BTkQgPSBAVVBMT0FEX0NPTU1BTkRACi0rVkVSU0lP TiA9IEBWRVJTSU9OQAotK2Fic19idWlsZGRpciA9IEBhYnNfYnVpbGRkaXJACi0rYWJzX3NyY2Rp ciA9IEBhYnNfc3JjZGlyQAotK2Fic190b3BfYnVpbGRkaXIgPSBAYWJzX3RvcF9idWlsZGRpckAK LSthYnNfdG9wX3NyY2RpciA9IEBhYnNfdG9wX3NyY2RpckAKLSthY19jdF9DQyA9IEBhY19jdF9D Q0AKLSthY19jdF9DWFggPSBAYWNfY3RfQ1hYQAotK2FjX2N0X0RVTVBCSU4gPSBAYWNfY3RfRFVN UEJJTkAKLSthbV9faW5jbHVkZSA9IEBhbV9faW5jbHVkZUAKLSthbV9fbGVhZGluZ19kb3QgPSBA YW1fX2xlYWRpbmdfZG90QAotK2FtX19xdW90ZSA9IEBhbV9fcXVvdGVACi0rYW1fX3RhciA9IEBh bV9fdGFyQAotK2FtX191bnRhciA9IEBhbV9fdW50YXJACi0rYmluZGlyID0gQGJpbmRpckAKLSti dWlsZCA9IEBidWlsZEAKLStidWlsZF9hbGlhcyA9IEBidWlsZF9hbGlhc0AKLStidWlsZF9jcHUg PSBAYnVpbGRfY3B1QAotK2J1aWxkX29zID0gQGJ1aWxkX29zQAotK2J1aWxkX3ZlbmRvciA9IEBi dWlsZF92ZW5kb3JACi0rYnVpbGRkaXIgPSBAYnVpbGRkaXJACi0rZGF0YWRpciA9IEBkYXRhZGly QAotK2RhdGFyb290ZGlyID0gQGRhdGFyb290ZGlyQAotK2RpZmZfb2sgPSBAZGlmZl9va0AKLStk b2NkaXIgPSBAZG9jZGlyQAotK2RveHlnZW5fb2sgPSBAZG94eWdlbl9va0AKLStkdmlkaXIgPSBA ZHZpZGlyQAotK2R2aXBzX29rID0gQGR2aXBzX29rQAotK2V4ZWNfcHJlZml4ID0gQGV4ZWNfcHJl Zml4QAotK2dzX29rID0gQGdzX29rQAotK2hvc3QgPSBAaG9zdEAKLStob3N0X2FsaWFzID0gQGhv c3RfYWxpYXNACi0raG9zdF9jcHUgPSBAaG9zdF9jcHVACi0raG9zdF9vcyA9IEBob3N0X29zQAot K2hvc3RfdmVuZG9yID0gQGhvc3RfdmVuZG9yQAotK2h0bWxkaXIgPSBAaHRtbGRpckAKLStpbmNs dWRlZGlyID0gQGluY2x1ZGVkaXJACi0raW5mb2RpciA9IEBpbmZvZGlyQAotK2luc3RhbGxfc2gg PSBAaW5zdGFsbF9zaEAKLStsYXRleF9vayA9IEBsYXRleF9va0AKLStsaWJkaXIgPSBAbGliZGly QAotK2xpYmV4ZWNkaXIgPSBAbGliZXhlY2RpckAKLStsb2NhbGVkaXIgPSBAbG9jYWxlZGlyQAot K2xvY2Fsc3RhdGVkaXIgPSBAbG9jYWxzdGF0ZWRpckAKLStsdF9FQ0hPID0gQGx0X0VDSE9ACi0r bWFuZGlyID0gQG1hbmRpckAKLStta2Rpcl9wID0gQG1rZGlyX3BACi0rb2xkaW5jbHVkZWRpciA9 IEBvbGRpbmNsdWRlZGlyQAotK3BkZmRpciA9IEBwZGZkaXJACi0rcHJlZml4ID0gQHByZWZpeEAK LStwcm9ncmFtX3RyYW5zZm9ybV9uYW1lID0gQHByb2dyYW1fdHJhbnNmb3JtX25hbWVACi0rcHNk aXIgPSBAcHNkaXJACi0rc2JpbmRpciA9IEBzYmluZGlyQAotK3NlZF9vayA9IEBzZWRfb2tACi0r c2hhcmVkc3RhdGVkaXIgPSBAc2hhcmVkc3RhdGVkaXJACi0rc3JjZGlyID0gQHNyY2RpckAKLStz eXNjb25mZGlyID0gQHN5c2NvbmZkaXJACi0rdGFyZ2V0X2FsaWFzID0gQHRhcmdldF9hbGlhc0AK LSt0b3BfYnVpbGRfcHJlZml4ID0gQHRvcF9idWlsZF9wcmVmaXhACi0rdG9wX2J1aWxkZGlyID0g QHRvcF9idWlsZGRpckAKLSt0b3Bfc3JjZGlyID0gQHRvcF9zcmNkaXJACi0rQU1fQ1BQRkxBR1Mg PSAtSSQodG9wX2J1aWxkZGlyKSAtSSQodG9wX3NyY2RpcikKLStiY2tfb3JhY2xlX2hfc291cmNl cyA9IFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvZXJyb3Iu aCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3NvY2ktb3Jh Y2xlLmgKLSsKLStiY2tfb3JhY2xlX2NjX3NvdXJjZXMgPSBcCi0rICAgICAgICAkKHRvcF9zcmNk aXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL2Jsb2IuY3BwIFwKLSsgICAgICAgICQodG9wX3NyY2Rp cikvc29jaS9iYWNrZW5kcy9vcmFjbGUvZXJyb3IuY3BwIFwKLSsgICAgICAgICQodG9wX3NyY2Rp cikvc29jaS9iYWNrZW5kcy9vcmFjbGUvZmFjdG9yeS5jcHAgXAotKyAgICAgICAgJCh0b3Bfc3Jj ZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9yb3ctaWQuY3BwIFwKLSsgICAgICAgICQodG9wX3Ny Y2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvc2Vzc2lvbi5jcHAgXAotKyAgICAgICAgJCh0b3Bf c3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9zdGFuZGFyZC1pbnRvLXR5cGUuY3BwIFwKLSsg ICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvc3RhbmRhcmQtdXNlLXR5 cGUuY3BwIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvc3Rh dGVtZW50LmNwcCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xl L3ZlY3Rvci1pbnRvLXR5cGUuY3BwIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNr ZW5kcy9vcmFjbGUvdmVjdG9yLXVzZS10eXBlLmNwcAotKwotK01BSU5UQUlORVJDTEVBTkZJTEVT ID0gTWFrZWZpbGUuaW4KLStTVUJESVJTID0gLiB0ZXN0Ci0rQEhBVkVfT1JBQ0xFX1RSVUVAbGli X0xUTElCUkFSSUVTID0gbGlic29jaV9vcmFjbGUubGEKLStASEFWRV9PUkFDTEVfVFJVRUBsaWJz b2NpX29yYWNsZV9sYV9TT1VSQ0VTID0gJChiY2tfb3JhY2xlX2hfc291cmNlcykgJChiY2tfb3Jh Y2xlX2NjX3NvdXJjZXMpIAotK0BIQVZFX09SQUNMRV9UUlVFQGxpYnNvY2lfb3JhY2xlX2xhX0NY WEZMQUdTID0gJChPUkFDTEVfT0NJX0NGTEFHUykKLStASEFWRV9PUkFDTEVfVFJVRUBsaWJzb2Np X29yYWNsZV9sYV9MSUJBREQgPSAKLStASEFWRV9PUkFDTEVfVFJVRUBsaWJzb2NpX29yYWNsZV9s YV9MREZMQUdTID0gXAotK0BIQVZFX09SQUNMRV9UUlVFQAkkKEJPT1NUX0xJQlMpICQoQk9PU1Rf REFURV9USU1FX0xJQikgJChCT09TVF9QUk9HUkFNX09QVElPTlNfTElCKSBcCi0rQEhBVkVfT1JB Q0xFX1RSVUVACSQoT1JBQ0xFX09DSV9MREZMQUdTKSBcCi0rQEhBVkVfT1JBQ0xFX1RSVUVACS12 ZXJzaW9uLWluZm8gJChHRU5FUklDX0xJQlJBUllfVkVSU0lPTikKLSsKLStASEFWRV9PUkFDTEVf VFJVRUBub2Jhc2VfcGtnaW5jbHVkZV9IRUFERVJTID0gJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tl bmRzL29yYWNsZS9zb2NpLW9yYWNsZS5oCi0rQFNPQ0lfSEVBREVSU19CVVJJRURfRkFMU0VAc29j aV9pbmNsdWRlX2RpciA9ICQoaW5jbHVkZWRpcikKLStAU09DSV9IRUFERVJTX0JVUklFRF9UUlVF QHNvY2lfaW5jbHVkZV9kaXIgPSAkKGluY2x1ZGVkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlCi0r YWxsOiBhbGwtcmVjdXJzaXZlCi0rCi0rLlNVRkZJWEVTOgotKy5TVUZGSVhFUzogLmNwcCAubG8g Lm8gLm9iagotKyQoc3JjZGlyKS9NYWtlZmlsZS5pbjogICQoc3JjZGlyKS9NYWtlZmlsZS5hbSAk KHRvcF9zcmNkaXIpL01ha2VmaWxlLmNvbW1vbiAkKHNyY2Rpcikvc291cmNlcy5tayAkKGFtX19j b25maWd1cmVfZGVwcykKLSsJQGZvciBkZXAgaW4gJD87IGRvIFwKLSsJICBjYXNlICckKGFtX19j b25maWd1cmVfZGVwcyknIGluIFwKLSsJICAgICokJGRlcCopIFwKLSsJICAgICAgKCBjZCAkKHRv cF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2ggKSBcCi0r CSAgICAgICAgJiYgeyBpZiB0ZXN0IC1mICRAOyB0aGVuIGV4aXQgMDsgZWxzZSBicmVhazsgZmk7 IH07IFwKLSsJICAgICAgZXhpdCAxOzsgXAotKwkgIGVzYWM7IFwKLSsJZG9uZTsgXAotKwllY2hv ICcgY2QgJCh0b3Bfc3JjZGlyKSAmJiAkKEFVVE9NQUtFKSAtLWdudSAgc29jaS9iYWNrZW5kcy9v cmFjbGUvTWFrZWZpbGUnOyBcCi0rCWNkICQodG9wX3NyY2RpcikgJiYgXAotKwkgICQoQVVUT01B S0UpIC0tZ251ICBzb2NpL2JhY2tlbmRzL29yYWNsZS9NYWtlZmlsZQotKy5QUkVDSU9VUzogTWFr ZWZpbGUKLStNYWtlZmlsZTogJChzcmNkaXIpL01ha2VmaWxlLmluICQodG9wX2J1aWxkZGlyKS9j b25maWcuc3RhdHVzCi0rCUBjYXNlICckPycgaW4gXAotKwkgICpjb25maWcuc3RhdHVzKikgXAot KwkgICAgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1y ZWZyZXNoOzsgXAotKwkgICopIFwKLSsJICAgIGVjaG8gJyBjZCAkKHRvcF9idWlsZGRpcikgJiYg JChTSEVMTCkgLi9jb25maWcuc3RhdHVzICQoc3ViZGlyKS8kQCAkKGFtX19kZXBmaWxlc19tYXli ZSknOyBcCi0rCSAgICBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChTSEVMTCkgLi9jb25maWcuc3Rh dHVzICQoc3ViZGlyKS8kQCAkKGFtX19kZXBmaWxlc19tYXliZSk7OyBcCi0rCWVzYWM7Ci0rCi0r JCh0b3BfYnVpbGRkaXIpL2NvbmZpZy5zdGF0dXM6ICQodG9wX3NyY2RpcikvY29uZmlndXJlICQo Q09ORklHX1NUQVRVU19ERVBFTkRFTkNJRVMpCi0rCWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1B S0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaAotKwotKyQodG9wX3NyY2RpcikvY29uZmln dXJlOiAgJChhbV9fY29uZmlndXJlX2RlcHMpCi0rCWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1B S0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaAotKyQoQUNMT0NBTF9NNCk6ICAkKGFtX19h Y2xvY2FsX200X2RlcHMpCi0rCWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFL RUZMQUdTKSBhbS0tcmVmcmVzaAotK2luc3RhbGwtbGliTFRMSUJSQVJJRVM6ICQobGliX0xUTElC UkFSSUVTKQotKwlAJChOT1JNQUxfSU5TVEFMTCkKLSsJdGVzdCAteiAiJChsaWJkaXIpIiB8fCAk KE1LRElSX1ApICIkKERFU1RESVIpJChsaWJkaXIpIgotKwlAbGlzdD0nJChsaWJfTFRMSUJSQVJJ RVMpJzsgZm9yIHAgaW4gJCRsaXN0OyBkbyBcCi0rCSAgaWYgdGVzdCAtZiAkJHA7IHRoZW4gXAot KwkgICAgZj0kKGFtX19zdHJpcF9kaXIpIFwKLSsJICAgIGVjaG8gIiAkKExJQlRPT0wpICQoQU1f TElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWluc3RhbGwgJChsaWJMVExJQlJB UklFU19JTlNUQUxMKSAkKElOU1RBTExfU1RSSVBfRkxBRykgJyQkcCcgJyQoREVTVERJUikkKGxp YmRpcikvJCRmJyI7IFwKLSsJICAgICQoTElCVE9PTCkgJChBTV9MSUJUT09MRkxBR1MpICQoTElC VE9PTEZMQUdTKSAtLW1vZGU9aW5zdGFsbCAkKGxpYkxUTElCUkFSSUVTX0lOU1RBTEwpICQoSU5T VEFMTF9TVFJJUF9GTEFHKSAiJCRwIiAiJChERVNURElSKSQobGliZGlyKS8kJGYiOyBcCi0rCSAg ZWxzZSA6OyBmaTsgXAotKwlkb25lCi0rCi0rdW5pbnN0YWxsLWxpYkxUTElCUkFSSUVTOgotKwlA JChOT1JNQUxfVU5JTlNUQUxMKQotKwlAbGlzdD0nJChsaWJfTFRMSUJSQVJJRVMpJzsgZm9yIHAg aW4gJCRsaXN0OyBkbyBcCi0rCSAgcD0kKGFtX19zdHJpcF9kaXIpIFwKLSsJICBlY2hvICIgJChM SUJUT09MKSAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT11bmluc3Rh bGwgcm0gLWYgJyQoREVTVERJUikkKGxpYmRpcikvJCRwJyI7IFwKLSsJICAkKExJQlRPT0wpICQo QU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPXVuaW5zdGFsbCBybSAtZiAi JChERVNURElSKSQobGliZGlyKS8kJHAiOyBcCi0rCWRvbmUKLSsKLStjbGVhbi1saWJMVExJQlJB UklFUzoKLSsJLXRlc3QgLXogIiQobGliX0xUTElCUkFSSUVTKSIgfHwgcm0gLWYgJChsaWJfTFRM SUJSQVJJRVMpCi0rCUBsaXN0PSckKGxpYl9MVExJQlJBUklFUyknOyBmb3IgcCBpbiAkJGxpc3Q7 IGRvIFwKLSsJICBkaXI9ImBlY2hvICQkcCB8IHNlZCAtZSAnc3wvW14vXSokJHx8J2AiOyBcCi0r CSAgdGVzdCAiJCRkaXIiICE9ICIkJHAiIHx8IGRpcj0uOyBcCi0rCSAgZWNobyAicm0gLWYgXCIk JHtkaXJ9L3NvX2xvY2F0aW9uc1wiIjsgXAotKwkgIHJtIC1mICIkJHtkaXJ9L3NvX2xvY2F0aW9u cyI7IFwKLSsJZG9uZQotK2xpYnNvY2lfb3JhY2xlLmxhOiAkKGxpYnNvY2lfb3JhY2xlX2xhX09C SkVDVFMpICQobGlic29jaV9vcmFjbGVfbGFfREVQRU5ERU5DSUVTKSAKLSsJJChsaWJzb2NpX29y YWNsZV9sYV9MSU5LKSAkKGFtX2xpYnNvY2lfb3JhY2xlX2xhX3JwYXRoKSAkKGxpYnNvY2lfb3Jh Y2xlX2xhX09CSkVDVFMpICQobGlic29jaV9vcmFjbGVfbGFfTElCQUREKSAkKExJQlMpCi0rCi0r bW9zdGx5Y2xlYW4tY29tcGlsZToKLSsJLXJtIC1mICouJChPQkpFWFQpCi0rCi0rZGlzdGNsZWFu LWNvbXBpbGU6Ci0rCS1ybSAtZiAqLnRhYi5jCi0rCi0rQEFNREVQX1RSVUVAQGFtX19pbmNsdWRl QCBAYW1fX3F1b3RlQC4vJChERVBESVIpL2xpYnNvY2lfb3JhY2xlX2xhLWJsb2IuUGxvQGFtX19x dW90ZUAKLStAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikv bGlic29jaV9vcmFjbGVfbGEtZXJyb3IuUGxvQGFtX19xdW90ZUAKLStAQU1ERVBfVFJVRUBAYW1f X2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvbGlic29jaV9vcmFjbGVfbGEtZmFjdG9y eS5QbG9AYW1fX3F1b3RlQAotK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAu LyQoREVQRElSKS9saWJzb2NpX29yYWNsZV9sYS1yb3ctaWQuUGxvQGFtX19xdW90ZUAKLStAQU1E RVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvbGlic29jaV9vcmFj bGVfbGEtc2Vzc2lvbi5QbG9AYW1fX3F1b3RlQAotK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAg QGFtX19xdW90ZUAuLyQoREVQRElSKS9saWJzb2NpX29yYWNsZV9sYS1zdGFuZGFyZC1pbnRvLXR5 cGUuUGxvQGFtX19xdW90ZUAKLStAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVA Li8kKERFUERJUikvbGlic29jaV9vcmFjbGVfbGEtc3RhbmRhcmQtdXNlLXR5cGUuUGxvQGFtX19x dW90ZUAKLStAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikv bGlic29jaV9vcmFjbGVfbGEtc3RhdGVtZW50LlBsb0BhbV9fcXVvdGVACi0rQEFNREVQX1RSVUVA QGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL2xpYnNvY2lfb3JhY2xlX2xhLXZl Y3Rvci1pbnRvLXR5cGUuUGxvQGFtX19xdW90ZUAKLStAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVA IEBhbV9fcXVvdGVALi8kKERFUERJUikvbGlic29jaV9vcmFjbGVfbGEtdmVjdG9yLXVzZS10eXBl LlBsb0BhbV9fcXVvdGVACi0rCi0rLmNwcC5vOgotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKENY WENPTVBJTEUpIC1NVCAkQCAtTUQgLU1QIC1NRiAkKERFUERJUikvJCouVHBvIC1jIC1vICRAICQ8 Ci0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACW12IC1mICQoREVQRElSKS8kKi5UcG8gJChERVBESVIp LyQqLlBvCi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQ8JyBv YmplY3Q9JyRAJyBsaWJ0b29sPW5vIEBBTURFUEJBQ0tTTEFTSEAKLStAQU1ERVBfVFJVRUBAYW1f X2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNv bXApIEBBTURFUEJBQ0tTTEFTSEAKLStAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQoQ1hYQ09NUElM RSkgLWMgLW8gJEAgJDwKLSsKLSsuY3BwLm9iajoKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChD WFhDT01QSUxFKSAtTVQgJEAgLU1EIC1NUCAtTUYgJChERVBESVIpLyQqLlRwbyAtYyAtbyAkQCBg JChDWUdQQVRIX1cpICckPCdgCi0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACW12IC1mICQoREVQRElS KS8kKi5UcG8gJChERVBESVIpLyQqLlBvCi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZB TFNFQAlzb3VyY2U9JyQ8JyBvYmplY3Q9JyRAJyBsaWJ0b29sPW5vIEBBTURFUEJBQ0tTTEFTSEAK LStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJUikgJChD WFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKLStAYW1fX2Zhc3RkZXBDWFhf RkFMU0VACSQoQ1hYQ09NUElMRSkgLWMgLW8gJEAgYCQoQ1lHUEFUSF9XKSAnJDwnYAotKwotKy5j cHAubG86Ci0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoTFRDWFhDT01QSUxFKSAtTVQgJEAgLU1E IC1NUCAtTUYgJChERVBESVIpLyQqLlRwbyAtYyAtbyAkQCAkPAotK0BhbV9fZmFzdGRlcENYWF9U UlVFQAltdiAtZiAkKERFUERJUikvJCouVHBvICQoREVQRElSKS8kKi5QbG8KLStAQU1ERVBfVFJV RUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJDwnIG9iamVjdD0nJEAnIGxpYnRvb2w9 eWVzIEBBTURFUEJBQ0tTTEFTSEAKLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VA CURFUERJUj0kKERFUERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFT SEAKLStAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQoTFRDWFhDT01QSUxFKSAtYyAtbyAkQCAkPAot KwotK2xpYnNvY2lfb3JhY2xlX2xhLWJsb2IubG86ICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5k cy9vcmFjbGUvYmxvYi5jcHAKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChMSUJUT09MKSAtLXRh Zz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAk KENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxB R1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9vcmFjbGVfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1Mp IC1NVCBsaWJzb2NpX29yYWNsZV9sYS1ibG9iLmxvIC1NRCAtTVAgLU1GICQoREVQRElSKS9saWJz b2NpX29yYWNsZV9sYS1ibG9iLlRwbyAtYyAtbyBsaWJzb2NpX29yYWNsZV9sYS1ibG9iLmxvIGB0 ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL2Jsb2IuY3BwJyB8fCBl Y2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL2Jsb2Iu Y3BwCi0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACW12IC1mICQoREVQRElSKS9saWJzb2NpX29yYWNs ZV9sYS1ibG9iLlRwbyAkKERFUERJUikvbGlic29jaV9vcmFjbGVfbGEtYmxvYi5QbG8KLStAQU1E RVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJCh0b3Bfc3JjZGlyKS9zb2Np L2JhY2tlbmRzL29yYWNsZS9ibG9iLmNwcCcgb2JqZWN0PSdsaWJzb2NpX29yYWNsZV9sYS1ibG9i LmxvJyBsaWJ0b29sPXllcyBAQU1ERVBCQUNLU0xBU0hACi0rQEFNREVQX1RSVUVAQGFtX19mYXN0 ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBA QU1ERVBCQUNLU0xBU0hACi0rQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKExJQlRPT0wpIC0tdGFn PUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQo Q1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFH UykgJChDUFBGTEFHUykgJChsaWJzb2NpX29yYWNsZV9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykg LWMgLW8gbGlic29jaV9vcmFjbGVfbGEtYmxvYi5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9z b2NpL2JhY2tlbmRzL29yYWNsZS9ibG9iLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bf c3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9ibG9iLmNwcAotKwotK2xpYnNvY2lfb3JhY2xl X2xhLWVycm9yLmxvOiAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL2Vycm9yLmNw cAotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRP T0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQo REVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykg JChsaWJzb2NpX29yYWNsZV9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLU1UIGxpYnNvY2lfb3Jh Y2xlX2xhLWVycm9yLmxvIC1NRCAtTVAgLU1GICQoREVQRElSKS9saWJzb2NpX29yYWNsZV9sYS1l cnJvci5UcG8gLWMgLW8gbGlic29jaV9vcmFjbGVfbGEtZXJyb3IubG8gYHRlc3QgLWYgJyQodG9w X3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvZXJyb3IuY3BwJyB8fCBlY2hvICckKHNyY2Rp cikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL2Vycm9yLmNwcAotK0BhbV9f ZmFzdGRlcENYWF9UUlVFQAltdiAtZiAkKERFUERJUikvbGlic29jaV9vcmFjbGVfbGEtZXJyb3Iu VHBvICQoREVQRElSKS9saWJzb2NpX29yYWNsZV9sYS1lcnJvci5QbG8KLStAQU1ERVBfVFJVRUBA YW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRz L29yYWNsZS9lcnJvci5jcHAnIG9iamVjdD0nbGlic29jaV9vcmFjbGVfbGEtZXJyb3IubG8nIGxp YnRvb2w9eWVzIEBBTURFUEJBQ0tTTEFTSEAKLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhf RkFMU0VACURFUERJUj0kKERFUERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJB Q0tTTEFTSEAKLStAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQoTElCVE9PTCkgLS10YWc9Q1hYICQo QU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQo REVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQ UEZMQUdTKSAkKGxpYnNvY2lfb3JhY2xlX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtYyAtbyBs aWJzb2NpX29yYWNsZV9sYS1lcnJvci5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2Jh Y2tlbmRzL29yYWNsZS9lcnJvci5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rp cikvc29jaS9iYWNrZW5kcy9vcmFjbGUvZXJyb3IuY3BwCi0rCi0rbGlic29jaV9vcmFjbGVfbGEt ZmFjdG9yeS5sbzogJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9mYWN0b3J5LmNw cAotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRP T0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQo REVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykg JChsaWJzb2NpX29yYWNsZV9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLU1UIGxpYnNvY2lfb3Jh Y2xlX2xhLWZhY3RvcnkubG8gLU1EIC1NUCAtTUYgJChERVBESVIpL2xpYnNvY2lfb3JhY2xlX2xh LWZhY3RvcnkuVHBvIC1jIC1vIGxpYnNvY2lfb3JhY2xlX2xhLWZhY3RvcnkubG8gYHRlc3QgLWYg JyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvZmFjdG9yeS5jcHAnIHx8IGVjaG8g JyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvZmFjdG9yeS5j cHAKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJbXYgLWYgJChERVBESVIpL2xpYnNvY2lfb3JhY2xl X2xhLWZhY3RvcnkuVHBvICQoREVQRElSKS9saWJzb2NpX29yYWNsZV9sYS1mYWN0b3J5LlBsbwot K0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSckKHRvcF9zcmNkaXIp L3NvY2kvYmFja2VuZHMvb3JhY2xlL2ZhY3RvcnkuY3BwJyBvYmplY3Q9J2xpYnNvY2lfb3JhY2xl X2xhLWZhY3RvcnkubG8nIGxpYnRvb2w9eWVzIEBBTURFUEJBQ0tTTEFTSEAKLStAQU1ERVBfVFJV RUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDWFhERVBNT0RFKSAk KGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKLStAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQoTElC VE9PTCkgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2Rl PWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAk KEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfb3JhY2xlX2xhX0NYWEZMQUdTKSAk KENYWEZMQUdTKSAtYyAtbyBsaWJzb2NpX29yYWNsZV9sYS1mYWN0b3J5LmxvIGB0ZXN0IC1mICck KHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL2ZhY3RvcnkuY3BwJyB8fCBlY2hvICck KHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL2ZhY3RvcnkuY3Bw Ci0rCi0rbGlic29jaV9vcmFjbGVfbGEtcm93LWlkLmxvOiAkKHRvcF9zcmNkaXIpL3NvY2kvYmFj a2VuZHMvb3JhY2xlL3Jvdy1pZC5jcHAKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChMSUJUT09M KSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29t cGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1f Q1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9vcmFjbGVfbGFfQ1hYRkxBR1MpICQoQ1hY RkxBR1MpIC1NVCBsaWJzb2NpX29yYWNsZV9sYS1yb3ctaWQubG8gLU1EIC1NUCAtTUYgJChERVBE SVIpL2xpYnNvY2lfb3JhY2xlX2xhLXJvdy1pZC5UcG8gLWMgLW8gbGlic29jaV9vcmFjbGVfbGEt cm93LWlkLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3Jv dy1pZC5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5k cy9vcmFjbGUvcm93LWlkLmNwcAotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAltdiAtZiAkKERFUERJ UikvbGlic29jaV9vcmFjbGVfbGEtcm93LWlkLlRwbyAkKERFUERJUikvbGlic29jaV9vcmFjbGVf bGEtcm93LWlkLlBsbwotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNl PSckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3Jvdy1pZC5jcHAnIG9iamVjdD0n bGlic29jaV9vcmFjbGVfbGEtcm93LWlkLmxvJyBsaWJ0b29sPXllcyBAQU1ERVBCQUNLU0xBU0hA Ci0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQo Q1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACi0rQGFtX19mYXN0ZGVwQ1hY X0ZBTFNFQAkkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09M RkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykg JChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX29yYWNsZV9s YV9DWFhGTEFHUykgJChDWFhGTEFHUykgLWMgLW8gbGlic29jaV9vcmFjbGVfbGEtcm93LWlkLmxv IGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3Jvdy1pZC5jcHAn IHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUv cm93LWlkLmNwcAotKwotK2xpYnNvY2lfb3JhY2xlX2xhLXNlc3Npb24ubG86ICQodG9wX3NyY2Rp cikvc29jaS9iYWNrZW5kcy9vcmFjbGUvc2Vzc2lvbi5jcHAKLStAYW1fX2Zhc3RkZXBDWFhfVFJV RUAJJChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdT KSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5D TFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9vcmFjbGVfbGFfQ1hY RkxBR1MpICQoQ1hYRkxBR1MpIC1NVCBsaWJzb2NpX29yYWNsZV9sYS1zZXNzaW9uLmxvIC1NRCAt TVAgLU1GICQoREVQRElSKS9saWJzb2NpX29yYWNsZV9sYS1zZXNzaW9uLlRwbyAtYyAtbyBsaWJz b2NpX29yYWNsZV9sYS1zZXNzaW9uLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFj a2VuZHMvb3JhY2xlL3Nlc3Npb24uY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNk aXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3Nlc3Npb24uY3BwCi0rQGFtX19mYXN0ZGVwQ1hYX1RS VUVACW12IC1mICQoREVQRElSKS9saWJzb2NpX29yYWNsZV9sYS1zZXNzaW9uLlRwbyAkKERFUERJ UikvbGlic29jaV9vcmFjbGVfbGEtc2Vzc2lvbi5QbG8KLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3Rk ZXBDWFhfRkFMU0VACXNvdXJjZT0nJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9z ZXNzaW9uLmNwcCcgb2JqZWN0PSdsaWJzb2NpX29yYWNsZV9sYS1zZXNzaW9uLmxvJyBsaWJ0b29s PXllcyBAQU1ERVBCQUNLU0xBU0hACi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNF QAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xB U0hACi0rQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJ QlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMp ICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFH UykgJChsaWJzb2NpX29yYWNsZV9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLWMgLW8gbGlic29j aV9vcmFjbGVfbGEtc2Vzc2lvbi5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tl bmRzL29yYWNsZS9zZXNzaW9uLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGly KS9zb2NpL2JhY2tlbmRzL29yYWNsZS9zZXNzaW9uLmNwcAotKwotK2xpYnNvY2lfb3JhY2xlX2xh LXN0YW5kYXJkLWludG8tdHlwZS5sbzogJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNs ZS9zdGFuZGFyZC1pbnRvLXR5cGUuY3BwCi0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoTElCVE9P TCkgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNv bXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFN X0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfb3JhY2xlX2xhX0NYWEZMQUdTKSAkKENY WEZMQUdTKSAtTVQgbGlic29jaV9vcmFjbGVfbGEtc3RhbmRhcmQtaW50by10eXBlLmxvIC1NRCAt TVAgLU1GICQoREVQRElSKS9saWJzb2NpX29yYWNsZV9sYS1zdGFuZGFyZC1pbnRvLXR5cGUuVHBv IC1jIC1vIGxpYnNvY2lfb3JhY2xlX2xhLXN0YW5kYXJkLWludG8tdHlwZS5sbyBgdGVzdCAtZiAn JCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9zdGFuZGFyZC1pbnRvLXR5cGUuY3Bw JyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xl L3N0YW5kYXJkLWludG8tdHlwZS5jcHAKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJbXYgLWYgJChE RVBESVIpL2xpYnNvY2lfb3JhY2xlX2xhLXN0YW5kYXJkLWludG8tdHlwZS5UcG8gJChERVBESVIp L2xpYnNvY2lfb3JhY2xlX2xhLXN0YW5kYXJkLWludG8tdHlwZS5QbG8KLStAQU1ERVBfVFJVRUBA YW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRz L29yYWNsZS9zdGFuZGFyZC1pbnRvLXR5cGUuY3BwJyBvYmplY3Q9J2xpYnNvY2lfb3JhY2xlX2xh LXN0YW5kYXJkLWludG8tdHlwZS5sbycgbGlidG9vbD15ZXMgQEFNREVQQkFDS1NMQVNIQAotK0BB TURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENYWERF UE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAotK0BhbV9fZmFzdGRlcENYWF9GQUxT RUAJJChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdT KSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5D TFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9vcmFjbGVfbGFfQ1hY RkxBR1MpICQoQ1hYRkxBR1MpIC1jIC1vIGxpYnNvY2lfb3JhY2xlX2xhLXN0YW5kYXJkLWludG8t dHlwZS5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9zdGFu ZGFyZC1pbnRvLXR5cGUuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3Nv Y2kvYmFja2VuZHMvb3JhY2xlL3N0YW5kYXJkLWludG8tdHlwZS5jcHAKLSsKLStsaWJzb2NpX29y YWNsZV9sYS1zdGFuZGFyZC11c2UtdHlwZS5sbzogJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRz L29yYWNsZS9zdGFuZGFyZC11c2UtdHlwZS5jcHAKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChM SUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1v ZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMp ICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9vcmFjbGVfbGFfQ1hYRkxBR1Mp ICQoQ1hYRkxBR1MpIC1NVCBsaWJzb2NpX29yYWNsZV9sYS1zdGFuZGFyZC11c2UtdHlwZS5sbyAt TUQgLU1QIC1NRiAkKERFUERJUikvbGlic29jaV9vcmFjbGVfbGEtc3RhbmRhcmQtdXNlLXR5cGUu VHBvIC1jIC1vIGxpYnNvY2lfb3JhY2xlX2xhLXN0YW5kYXJkLXVzZS10eXBlLmxvIGB0ZXN0IC1m ICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3N0YW5kYXJkLXVzZS10eXBlLmNw cCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNs ZS9zdGFuZGFyZC11c2UtdHlwZS5jcHAKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJbXYgLWYgJChE RVBESVIpL2xpYnNvY2lfb3JhY2xlX2xhLXN0YW5kYXJkLXVzZS10eXBlLlRwbyAkKERFUERJUikv bGlic29jaV9vcmFjbGVfbGEtc3RhbmRhcmQtdXNlLXR5cGUuUGxvCi0rQEFNREVQX1RSVUVAQGFt X19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9v cmFjbGUvc3RhbmRhcmQtdXNlLXR5cGUuY3BwJyBvYmplY3Q9J2xpYnNvY2lfb3JhY2xlX2xhLXN0 YW5kYXJkLXVzZS10eXBlLmxvJyBsaWJ0b29sPXllcyBAQU1ERVBCQUNLU0xBU0hACi0rQEFNREVQ X1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9E RSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACi0rQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkk KExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0t bW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURF UykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX29yYWNsZV9sYV9DWFhGTEFH UykgJChDWFhGTEFHUykgLWMgLW8gbGlic29jaV9vcmFjbGVfbGEtc3RhbmRhcmQtdXNlLXR5cGUu bG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvc3RhbmRhcmQt dXNlLXR5cGUuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvYmFj a2VuZHMvb3JhY2xlL3N0YW5kYXJkLXVzZS10eXBlLmNwcAotKwotK2xpYnNvY2lfb3JhY2xlX2xh LXN0YXRlbWVudC5sbzogJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9zdGF0ZW1l bnQuY3BwCi0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoTElCVE9PTCkgLS10YWc9Q1hYICQoQU1f TElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVG UykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZM QUdTKSAkKGxpYnNvY2lfb3JhY2xlX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtTVQgbGlic29j aV9vcmFjbGVfbGEtc3RhdGVtZW50LmxvIC1NRCAtTVAgLU1GICQoREVQRElSKS9saWJzb2NpX29y YWNsZV9sYS1zdGF0ZW1lbnQuVHBvIC1jIC1vIGxpYnNvY2lfb3JhY2xlX2xhLXN0YXRlbWVudC5s byBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9zdGF0ZW1lbnQu Y3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3Jh Y2xlL3N0YXRlbWVudC5jcHAKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJbXYgLWYgJChERVBESVIp L2xpYnNvY2lfb3JhY2xlX2xhLXN0YXRlbWVudC5UcG8gJChERVBESVIpL2xpYnNvY2lfb3JhY2xl X2xhLXN0YXRlbWVudC5QbG8KLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNv dXJjZT0nJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9zdGF0ZW1lbnQuY3BwJyBv YmplY3Q9J2xpYnNvY2lfb3JhY2xlX2xhLXN0YXRlbWVudC5sbycgbGlidG9vbD15ZXMgQEFNREVQ QkFDS1NMQVNIQAotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQo REVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAotK0BhbV9f ZmFzdGRlcENYWF9GQUxTRUAJJChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1Mp ICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRf SU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29j aV9vcmFjbGVfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1jIC1vIGxpYnNvY2lfb3JhY2xlX2xh LXN0YXRlbWVudC5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNs ZS9zdGF0ZW1lbnQuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kv YmFja2VuZHMvb3JhY2xlL3N0YXRlbWVudC5jcHAKLSsKLStsaWJzb2NpX29yYWNsZV9sYS12ZWN0 b3ItaW50by10eXBlLmxvOiAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3ZlY3Rv ci1pbnRvLXR5cGUuY3BwCi0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoTElCVE9PTCkgLS10YWc9 Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChD WFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdT KSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfb3JhY2xlX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAt TVQgbGlic29jaV9vcmFjbGVfbGEtdmVjdG9yLWludG8tdHlwZS5sbyAtTUQgLU1QIC1NRiAkKERF UERJUikvbGlic29jaV9vcmFjbGVfbGEtdmVjdG9yLWludG8tdHlwZS5UcG8gLWMgLW8gbGlic29j aV9vcmFjbGVfbGEtdmVjdG9yLWludG8tdHlwZS5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9z b2NpL2JhY2tlbmRzL29yYWNsZS92ZWN0b3ItaW50by10eXBlLmNwcCcgfHwgZWNobyAnJChzcmNk aXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS92ZWN0b3ItaW50by10eXBl LmNwcAotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAltdiAtZiAkKERFUERJUikvbGlic29jaV9vcmFj bGVfbGEtdmVjdG9yLWludG8tdHlwZS5UcG8gJChERVBESVIpL2xpYnNvY2lfb3JhY2xlX2xhLXZl Y3Rvci1pbnRvLXR5cGUuUGxvCi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlz b3VyY2U9JyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvdmVjdG9yLWludG8tdHlw ZS5jcHAnIG9iamVjdD0nbGlic29jaV9vcmFjbGVfbGEtdmVjdG9yLWludG8tdHlwZS5sbycgbGli dG9vbD15ZXMgQEFNREVQQkFDS1NMQVNIQAotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9G QUxTRUAJREVQRElSPSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFD S1NMQVNIQAotK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChMSUJUT09MKSAtLXRhZz1DWFggJChB TV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChE RUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQ RkxBR1MpICQobGlic29jaV9vcmFjbGVfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1jIC1vIGxp YnNvY2lfb3JhY2xlX2xhLXZlY3Rvci1pbnRvLXR5cGUubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rp cikvc29jaS9iYWNrZW5kcy9vcmFjbGUvdmVjdG9yLWludG8tdHlwZS5jcHAnIHx8IGVjaG8gJyQo c3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvdmVjdG9yLWludG8t dHlwZS5jcHAKLSsKLStsaWJzb2NpX29yYWNsZV9sYS12ZWN0b3ItdXNlLXR5cGUubG86ICQodG9w X3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvdmVjdG9yLXVzZS10eXBlLmNwcAotK0BhbV9f ZmFzdGRlcENYWF9UUlVFQAkkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykg JChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9J TkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2Np X29yYWNsZV9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLU1UIGxpYnNvY2lfb3JhY2xlX2xhLXZl Y3Rvci11c2UtdHlwZS5sbyAtTUQgLU1QIC1NRiAkKERFUERJUikvbGlic29jaV9vcmFjbGVfbGEt dmVjdG9yLXVzZS10eXBlLlRwbyAtYyAtbyBsaWJzb2NpX29yYWNsZV9sYS12ZWN0b3ItdXNlLXR5 cGUubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvdmVjdG9y LXVzZS10eXBlLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2Jh Y2tlbmRzL29yYWNsZS92ZWN0b3ItdXNlLXR5cGUuY3BwCi0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVA CW12IC1mICQoREVQRElSKS9saWJzb2NpX29yYWNsZV9sYS12ZWN0b3ItdXNlLXR5cGUuVHBvICQo REVQRElSKS9saWJzb2NpX29yYWNsZV9sYS12ZWN0b3ItdXNlLXR5cGUuUGxvCi0rQEFNREVQX1RS VUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQodG9wX3NyY2Rpcikvc29jaS9iYWNr ZW5kcy9vcmFjbGUvdmVjdG9yLXVzZS10eXBlLmNwcCcgb2JqZWN0PSdsaWJzb2NpX29yYWNsZV9s YS12ZWN0b3ItdXNlLXR5cGUubG8nIGxpYnRvb2w9eWVzIEBBTURFUEJBQ0tTTEFTSEAKLStAQU1E RVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDWFhERVBN T0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKLStAYW1fX2Zhc3RkZXBDWFhfRkFMU0VA CSQoTElCVE9PTCkgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykg LS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xV REVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfb3JhY2xlX2xhX0NYWEZM QUdTKSAkKENYWEZMQUdTKSAtYyAtbyBsaWJzb2NpX29yYWNsZV9sYS12ZWN0b3ItdXNlLXR5cGUu bG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvdmVjdG9yLXVz ZS10eXBlLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tl bmRzL29yYWNsZS92ZWN0b3ItdXNlLXR5cGUuY3BwCi0rCi0rbW9zdGx5Y2xlYW4tbGlidG9vbDoK LSsJLXJtIC1mICoubG8KLSsKLStjbGVhbi1saWJ0b29sOgotKwktcm0gLXJmIC5saWJzIF9saWJz Ci0raW5zdGFsbC1ub2Jhc2VfcGtnaW5jbHVkZUhFQURFUlM6ICQobm9iYXNlX3BrZ2luY2x1ZGVf SEVBREVSUykKLSsJQCQoTk9STUFMX0lOU1RBTEwpCi0rCXRlc3QgLXogIiQocGtnaW5jbHVkZWRp cikiIHx8ICQoTUtESVJfUCkgIiQoREVTVERJUikkKHBrZ2luY2x1ZGVkaXIpIgotKwlAJChhbV9f dnBhdGhfYWRqX3NldHVwKSBcCi0rCWxpc3Q9JyQobm9iYXNlX3BrZ2luY2x1ZGVfSEVBREVSUykn OyBmb3IgcCBpbiAkJGxpc3Q7IGRvIFwKLSsJICBpZiB0ZXN0IC1mICIkJHAiOyB0aGVuIGQ9OyBl bHNlIGQ9IiQoc3JjZGlyKS8iOyBmaTsgXAotKwkgICQoYW1fX3ZwYXRoX2FkaikgXAotKwkgIGVj aG8gIiAkKG5vYmFzZV9wa2dpbmNsdWRlSEVBREVSU19JTlNUQUxMKSAnJCRkJCRwJyAnJChERVNU RElSKSQocGtnaW5jbHVkZWRpcikvJCRmJyI7IFwKLSsJICAkKG5vYmFzZV9wa2dpbmNsdWRlSEVB REVSU19JTlNUQUxMKSAiJCRkJCRwIiAiJChERVNURElSKSQocGtnaW5jbHVkZWRpcikvJCRmIjsg XAotKwlkb25lCi0rCi0rdW5pbnN0YWxsLW5vYmFzZV9wa2dpbmNsdWRlSEVBREVSUzoKLSsJQCQo Tk9STUFMX1VOSU5TVEFMTCkKLSsJQCQoYW1fX3ZwYXRoX2Fkal9zZXR1cCkgXAotKwlsaXN0PSck KG5vYmFzZV9wa2dpbmNsdWRlX0hFQURFUlMpJzsgZm9yIHAgaW4gJCRsaXN0OyBkbyBcCi0rCSAg JChhbV9fdnBhdGhfYWRqKSBcCi0rCSAgZWNobyAiIHJtIC1mICckKERFU1RESVIpJChwa2dpbmNs dWRlZGlyKS8kJGYnIjsgXAotKwkgIHJtIC1mICIkKERFU1RESVIpJChwa2dpbmNsdWRlZGlyKS8k JGYiOyBcCi0rCWRvbmUKLSsKLSsjIFRoaXMgZGlyZWN0b3J5J3Mgc3ViZGlyZWN0b3JpZXMgYXJl IG1vc3RseSBpbmRlcGVuZGVudDsgeW91IGNhbiBjZAotKyMgaW50byB0aGVtIGFuZCBydW4gYG1h a2UnIHdpdGhvdXQgZ29pbmcgdGhyb3VnaCB0aGlzIE1ha2VmaWxlLgotKyMgVG8gY2hhbmdlIHRo ZSB2YWx1ZXMgb2YgYG1ha2UnIHZhcmlhYmxlczogaW5zdGVhZCBvZiBlZGl0aW5nIE1ha2VmaWxl cywKLSsjICgxKSBpZiB0aGUgdmFyaWFibGUgaXMgc2V0IGluIGBjb25maWcuc3RhdHVzJywgZWRp dCBgY29uZmlnLnN0YXR1cycKLSsjICAgICAod2hpY2ggd2lsbCBjYXVzZSB0aGUgTWFrZWZpbGVz IHRvIGJlIHJlZ2VuZXJhdGVkIHdoZW4geW91IHJ1biBgbWFrZScpOwotKyMgKDIpIG90aGVyd2lz ZSwgcGFzcyB0aGUgZGVzaXJlZCB2YWx1ZXMgb24gdGhlIGBtYWtlJyBjb21tYW5kIGxpbmUuCi0r JChSRUNVUlNJVkVfVEFSR0VUUyk6Ci0rCUBmYWlsY29tPSdleGl0IDEnOyBcCi0rCWZvciBmIGlu IHggJCRNQUtFRkxBR1M7IGRvIFwKLSsJICBjYXNlICQkZiBpbiBcCi0rCSAgICAqPSogfCAtLVsh a10qKTs7IFwKLSsJICAgICprKikgZmFpbGNvbT0nZmFpbD15ZXMnOzsgXAotKwkgIGVzYWM7IFwK LSsJZG9uZTsgXAotKwlkb3Rfc2Vlbj1ubzsgXAotKwl0YXJnZXQ9YGVjaG8gJEAgfCBzZWQgcy8t cmVjdXJzaXZlLy9gOyBcCi0rCWxpc3Q9JyQoU1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlz dDsgZG8gXAotKwkgIGVjaG8gIk1ha2luZyAkJHRhcmdldCBpbiAkJHN1YmRpciI7IFwKLSsJICBp ZiB0ZXN0ICIkJHN1YmRpciIgPSAiLiI7IHRoZW4gXAotKwkgICAgZG90X3NlZW49eWVzOyBcCi0r CSAgICBsb2NhbF90YXJnZXQ9IiQkdGFyZ2V0LWFtIjsgXAotKwkgIGVsc2UgXAotKwkgICAgbG9j YWxfdGFyZ2V0PSIkJHRhcmdldCI7IFwKLSsJICBmaTsgXAotKwkgIChjZCAkJHN1YmRpciAmJiAk KE1BS0UpICQoQU1fTUFLRUZMQUdTKSAkJGxvY2FsX3RhcmdldCkgXAotKwkgIHx8IGV2YWwgJCRm YWlsY29tOyBcCi0rCWRvbmU7IFwKLSsJaWYgdGVzdCAiJCRkb3Rfc2VlbiIgPSAibm8iOyB0aGVu IFwKLSsJICAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSAiJCR0YXJnZXQtYW0iIHx8IGV4aXQgMTsg XAotKwlmaTsgdGVzdCAteiAiJCRmYWlsIgotKwotKyQoUkVDVVJTSVZFX0NMRUFOX1RBUkdFVFMp OgotKwlAZmFpbGNvbT0nZXhpdCAxJzsgXAotKwlmb3IgZiBpbiB4ICQkTUFLRUZMQUdTOyBkbyBc Ci0rCSAgY2FzZSAkJGYgaW4gXAotKwkgICAgKj0qIHwgLS1bIWtdKik7OyBcCi0rCSAgICAqayop IGZhaWxjb209J2ZhaWw9eWVzJzs7IFwKLSsJICBlc2FjOyBcCi0rCWRvbmU7IFwKLSsJZG90X3Nl ZW49bm87IFwKLSsJY2FzZSAiJEAiIGluIFwKLSsJICBkaXN0Y2xlYW4tKiB8IG1haW50YWluZXIt Y2xlYW4tKikgbGlzdD0nJChESVNUX1NVQkRJUlMpJyA7OyBcCi0rCSAgKikgbGlzdD0nJChTVUJE SVJTKScgOzsgXAotKwllc2FjOyBcCi0rCXJldj0nJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRv IFwKLSsJICBpZiB0ZXN0ICIkJHN1YmRpciIgPSAiLiI7IHRoZW4gOjsgZWxzZSBcCi0rCSAgICBy ZXY9IiQkc3ViZGlyICQkcmV2IjsgXAotKwkgIGZpOyBcCi0rCWRvbmU7IFwKLSsJcmV2PSIkJHJl diAuIjsgXAotKwl0YXJnZXQ9YGVjaG8gJEAgfCBzZWQgcy8tcmVjdXJzaXZlLy9gOyBcCi0rCWZv ciBzdWJkaXIgaW4gJCRyZXY7IGRvIFwKLSsJICBlY2hvICJNYWtpbmcgJCR0YXJnZXQgaW4gJCRz dWJkaXIiOyBcCi0rCSAgaWYgdGVzdCAiJCRzdWJkaXIiID0gIi4iOyB0aGVuIFwKLSsJICAgIGxv Y2FsX3RhcmdldD0iJCR0YXJnZXQtYW0iOyBcCi0rCSAgZWxzZSBcCi0rCSAgICBsb2NhbF90YXJn ZXQ9IiQkdGFyZ2V0IjsgXAotKwkgIGZpOyBcCi0rCSAgKGNkICQkc3ViZGlyICYmICQoTUFLRSkg JChBTV9NQUtFRkxBR1MpICQkbG9jYWxfdGFyZ2V0KSBcCi0rCSAgfHwgZXZhbCAkJGZhaWxjb207 IFwKLSsJZG9uZSAmJiB0ZXN0IC16ICIkJGZhaWwiCi0rdGFncy1yZWN1cnNpdmU6Ci0rCWxpc3Q9 JyQoU1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAotKwkgIHRlc3QgIiQkc3Vi ZGlyIiA9IC4gfHwgKGNkICQkc3ViZGlyICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIHRhZ3Mp OyBcCi0rCWRvbmUKLStjdGFncy1yZWN1cnNpdmU6Ci0rCWxpc3Q9JyQoU1VCRElSUyknOyBmb3Ig c3ViZGlyIGluICQkbGlzdDsgZG8gXAotKwkgIHRlc3QgIiQkc3ViZGlyIiA9IC4gfHwgKGNkICQk c3ViZGlyICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGN0YWdzKTsgXAotKwlkb25lCi0rCi0r SUQ6ICQoSEVBREVSUykgJChTT1VSQ0VTKSAkKExJU1ApICQoVEFHU19GSUxFUykKLSsJbGlzdD0n JChTT1VSQ0VTKSAkKEhFQURFUlMpICQoTElTUCkgJChUQUdTX0ZJTEVTKSc7IFwKLSsJdW5pcXVl PWBmb3IgaSBpbiAkJGxpc3Q7IGRvIFwKLSsJICAgIGlmIHRlc3QgLWYgIiQkaSI7IHRoZW4gZWNo byAkJGk7IGVsc2UgZWNobyAkKHNyY2RpcikvJCRpOyBmaTsgXAotKwkgIGRvbmUgfCBcCi0rCSAg JChBV0spICd7IGZpbGVzWyQkMF0gPSAxOyBub25lbXB0eSA9IDE7IH0gXAotKwkgICAgICBFTkQg eyBpZiAobm9uZW1wdHkpIHsgZm9yIChpIGluIGZpbGVzKSBwcmludCBpOyB9OyB9J2A7IFwKLSsJ bWtpZCAtZklEICQkdW5pcXVlCi0rdGFnczogVEFHUwotKwotK1RBR1M6IHRhZ3MtcmVjdXJzaXZl ICQoSEVBREVSUykgJChTT1VSQ0VTKSAgJChUQUdTX0RFUEVOREVOQ0lFUykgXAotKwkJJChUQUdT X0ZJTEVTKSAkKExJU1ApCi0rCXRhZ3M9OyBcCi0rCWhlcmU9YHB3ZGA7IFwKLSsJaWYgKCQoRVRB R1MpIC0tZXRhZ3MtaW5jbHVkZSAtLXZlcnNpb24pID4vZGV2L251bGwgMj4mMTsgdGhlbiBcCi0r CSAgaW5jbHVkZV9vcHRpb249LS1ldGFncy1pbmNsdWRlOyBcCi0rCSAgZW1wdHlfZml4PS47IFwK LSsJZWxzZSBcCi0rCSAgaW5jbHVkZV9vcHRpb249LS1pbmNsdWRlOyBcCi0rCSAgZW1wdHlfZml4 PTsgXAotKwlmaTsgXAotKwlsaXN0PSckKFNVQkRJUlMpJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7 IGRvIFwKLSsJICBpZiB0ZXN0ICIkJHN1YmRpciIgPSAuOyB0aGVuIDo7IGVsc2UgXAotKwkgICAg dGVzdCAhIC1mICQkc3ViZGlyL1RBR1MgfHwgXAotKwkgICAgICB0YWdzPSIkJHRhZ3MgJCRpbmNs dWRlX29wdGlvbj0kJGhlcmUvJCRzdWJkaXIvVEFHUyI7IFwKLSsJICBmaTsgXAotKwlkb25lOyBc Ci0rCWxpc3Q9JyQoU09VUkNFUykgJChIRUFERVJTKSAgJChMSVNQKSAkKFRBR1NfRklMRVMpJzsg XAotKwl1bmlxdWU9YGZvciBpIGluICQkbGlzdDsgZG8gXAotKwkgICAgaWYgdGVzdCAtZiAiJCRp IjsgdGhlbiBlY2hvICQkaTsgZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7IGZpOyBcCi0rCSAgZG9u ZSB8IFwKLSsJICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9IDE7IG5vbmVtcHR5ID0gMTsgfSBcCi0r CSAgICAgIEVORCB7IGlmIChub25lbXB0eSkgeyBmb3IgKGkgaW4gZmlsZXMpIHByaW50IGk7IH07 IH0nYDsgXAotKwlpZiB0ZXN0IC16ICIkKEVUQUdTX0FSR1MpJCR0YWdzJCR1bmlxdWUiOyB0aGVu IDo7IGVsc2UgXAotKwkgIHRlc3QgLW4gIiQkdW5pcXVlIiB8fCB1bmlxdWU9JCRlbXB0eV9maXg7 IFwKLSsJICAkKEVUQUdTKSAkKEVUQUdTRkxBR1MpICQoQU1fRVRBR1NGTEFHUykgJChFVEFHU19B UkdTKSBcCi0rCSAgICAkJHRhZ3MgJCR1bmlxdWU7IFwKLSsJZmkKLStjdGFnczogQ1RBR1MKLStD VEFHUzogY3RhZ3MtcmVjdXJzaXZlICQoSEVBREVSUykgJChTT1VSQ0VTKSAgJChUQUdTX0RFUEVO REVOQ0lFUykgXAotKwkJJChUQUdTX0ZJTEVTKSAkKExJU1ApCi0rCXRhZ3M9OyBcCi0rCWxpc3Q9 JyQoU09VUkNFUykgJChIRUFERVJTKSAgJChMSVNQKSAkKFRBR1NfRklMRVMpJzsgXAotKwl1bmlx dWU9YGZvciBpIGluICQkbGlzdDsgZG8gXAotKwkgICAgaWYgdGVzdCAtZiAiJCRpIjsgdGhlbiBl Y2hvICQkaTsgZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7IGZpOyBcCi0rCSAgZG9uZSB8IFwKLSsJ ICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9IDE7IG5vbmVtcHR5ID0gMTsgfSBcCi0rCSAgICAgIEVO RCB7IGlmIChub25lbXB0eSkgeyBmb3IgKGkgaW4gZmlsZXMpIHByaW50IGk7IH07IH0nYDsgXAot Kwl0ZXN0IC16ICIkKENUQUdTX0FSR1MpJCR0YWdzJCR1bmlxdWUiIFwKLSsJICB8fCAkKENUQUdT KSAkKENUQUdTRkxBR1MpICQoQU1fQ1RBR1NGTEFHUykgJChDVEFHU19BUkdTKSBcCi0rCSAgICAg JCR0YWdzICQkdW5pcXVlCi0rCi0rR1RBR1M6Ci0rCWhlcmU9YCQoYW1fX2NkKSAkKHRvcF9idWls ZGRpcikgJiYgcHdkYCBcCi0rCSAgJiYgY2QgJCh0b3Bfc3JjZGlyKSBcCi0rCSAgJiYgZ3RhZ3Mg LWkgJChHVEFHU19BUkdTKSAkJGhlcmUKLSsKLStkaXN0Y2xlYW4tdGFnczoKLSsJLXJtIC1mIFRB R1MgSUQgR1RBR1MgR1JUQUdTIEdTWU1TIEdQQVRIIHRhZ3MKLSsKLStkaXN0ZGlyOiAkKERJU1RG SUxFUykKLSsJQHNyY2RpcnN0cmlwPWBlY2hvICIkKHNyY2RpcikiIHwgc2VkICdzL1tdLlteJCRc XCpdL1xcXFwmL2cnYDsgXAotKwl0b3BzcmNkaXJzdHJpcD1gZWNobyAiJCh0b3Bfc3JjZGlyKSIg fCBzZWQgJ3MvW10uW14kJFxcKl0vXFxcXCYvZydgOyBcCi0rCWxpc3Q9JyQoRElTVEZJTEVTKSc7 IFwKLSsJICBkaXN0X2ZpbGVzPWBmb3IgZmlsZSBpbiAkJGxpc3Q7IGRvIGVjaG8gJCRmaWxlOyBk b25lIHwgXAotKwkgIHNlZCAtZSAic3xeJCRzcmNkaXJzdHJpcC98fDt0IiBcCi0rCSAgICAgIC1l ICJzfF4kJHRvcHNyY2RpcnN0cmlwL3wkKHRvcF9idWlsZGRpcikvfDt0ImA7IFwKLSsJY2FzZSAk JGRpc3RfZmlsZXMgaW4gXAotKwkgICovKikgJChNS0RJUl9QKSBgZWNobyAiJCRkaXN0X2ZpbGVz IiB8IFwKLSsJCQkgICBzZWQgJy9cLy8hZDtzfF58JChkaXN0ZGlyKS98O3MsL1teL10qJCQsLCcg fCBcCi0rCQkJICAgc29ydCAtdWAgOzsgXAotKwllc2FjOyBcCi0rCWZvciBmaWxlIGluICQkZGlz dF9maWxlczsgZG8gXAotKwkgIGlmIHRlc3QgLWYgJCRmaWxlIHx8IHRlc3QgLWQgJCRmaWxlOyB0 aGVuIGQ9LjsgZWxzZSBkPSQoc3JjZGlyKTsgZmk7IFwKLSsJICBpZiB0ZXN0IC1kICQkZC8kJGZp bGU7IHRoZW4gXAotKwkgICAgZGlyPWBlY2hvICIvJCRmaWxlIiB8IHNlZCAtZSAncywvW14vXSok JCwsJ2A7IFwKLSsJICAgIGlmIHRlc3QgLWQgJChzcmNkaXIpLyQkZmlsZSAmJiB0ZXN0ICQkZCAh PSAkKHNyY2Rpcik7IHRoZW4gXAotKwkgICAgICBjcCAtcFIgJChzcmNkaXIpLyQkZmlsZSAkKGRp c3RkaXIpJCRkaXIgfHwgZXhpdCAxOyBcCi0rCSAgICBmaTsgXAotKwkgICAgY3AgLXBSICQkZC8k JGZpbGUgJChkaXN0ZGlyKSQkZGlyIHx8IGV4aXQgMTsgXAotKwkgIGVsc2UgXAotKwkgICAgdGVz dCAtZiAkKGRpc3RkaXIpLyQkZmlsZSBcCi0rCSAgICB8fCBjcCAtcCAkJGQvJCRmaWxlICQoZGlz dGRpcikvJCRmaWxlIFwKLSsJICAgIHx8IGV4aXQgMTsgXAotKwkgIGZpOyBcCi0rCWRvbmUKLSsJ bGlzdD0nJChESVNUX1NVQkRJUlMpJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKLSsJICBp ZiB0ZXN0ICIkJHN1YmRpciIgPSAuOyB0aGVuIDo7IGVsc2UgXAotKwkgICAgdGVzdCAtZCAiJChk aXN0ZGlyKS8kJHN1YmRpciIgXAotKwkgICAgfHwgJChNS0RJUl9QKSAiJChkaXN0ZGlyKS8kJHN1 YmRpciIgXAotKwkgICAgfHwgZXhpdCAxOyBcCi0rCSAgICBkaXN0ZGlyPWAkKGFtX19jZCkgJChk aXN0ZGlyKSAmJiBwd2RgOyBcCi0rCSAgICB0b3BfZGlzdGRpcj1gJChhbV9fY2QpICQodG9wX2Rp c3RkaXIpICYmIHB3ZGA7IFwKLSsJICAgIChjZCAkJHN1YmRpciAmJiBcCi0rCSAgICAgICQoTUFL RSkgJChBTV9NQUtFRkxBR1MpIFwKLSsJICAgICAgICB0b3BfZGlzdGRpcj0iJCR0b3BfZGlzdGRp ciIgXAotKwkgICAgICAgIGRpc3RkaXI9IiQkZGlzdGRpci8kJHN1YmRpciIgXAotKwkJYW1fX3Jl bW92ZV9kaXN0ZGlyPTogXAotKwkJYW1fX3NraXBfbGVuZ3RoX2NoZWNrPTogXAotKwkgICAgICAg IGRpc3RkaXIpIFwKLSsJICAgICAgfHwgZXhpdCAxOyBcCi0rCSAgZmk7IFwKLSsJZG9uZQotK2No ZWNrLWFtOiBhbGwtYW0KLStjaGVjazogY2hlY2stcmVjdXJzaXZlCi0rYWxsLWFtOiBNYWtlZmls ZSAkKExUTElCUkFSSUVTKSAkKEhFQURFUlMpCi0raW5zdGFsbGRpcnM6IGluc3RhbGxkaXJzLXJl Y3Vyc2l2ZQotK2luc3RhbGxkaXJzLWFtOgotKwlmb3IgZGlyIGluICIkKERFU1RESVIpJChsaWJk aXIpIiAiJChERVNURElSKSQocGtnaW5jbHVkZWRpcikiOyBkbyBcCi0rCSAgdGVzdCAteiAiJCRk aXIiIHx8ICQoTUtESVJfUCkgIiQkZGlyIjsgXAotKwlkb25lCi0raW5zdGFsbDogaW5zdGFsbC1y ZWN1cnNpdmUKLStpbnN0YWxsLWV4ZWM6IGluc3RhbGwtZXhlYy1yZWN1cnNpdmUKLStpbnN0YWxs LWRhdGE6IGluc3RhbGwtZGF0YS1yZWN1cnNpdmUKLSt1bmluc3RhbGw6IHVuaW5zdGFsbC1yZWN1 cnNpdmUKLSsKLStpbnN0YWxsLWFtOiBhbGwtYW0KLSsJQCQoTUFLRSkgJChBTV9NQUtFRkxBR1Mp IGluc3RhbGwtZXhlYy1hbSBpbnN0YWxsLWRhdGEtYW0KLSsKLStpbnN0YWxsY2hlY2s6IGluc3Rh bGxjaGVjay1yZWN1cnNpdmUKLStpbnN0YWxsLXN0cmlwOgotKwkkKE1BS0UpICQoQU1fTUFLRUZM QUdTKSBJTlNUQUxMX1BST0dSQU09IiQoSU5TVEFMTF9TVFJJUF9QUk9HUkFNKSIgXAotKwkgIGlu c3RhbGxfc2hfUFJPR1JBTT0iJChJTlNUQUxMX1NUUklQX1BST0dSQU0pIiBJTlNUQUxMX1NUUklQ X0ZMQUc9LXMgXAotKwkgIGB0ZXN0IC16ICckKFNUUklQKScgfHwgXAotKwkgICAgZWNobyAiSU5T VEFMTF9QUk9HUkFNX0VOVj1TVFJJUFBST0c9JyQoU1RSSVApJyJgIGluc3RhbGwKLSttb3N0bHlj bGVhbi1nZW5lcmljOgotKwotK2NsZWFuLWdlbmVyaWM6Ci0rCi0rZGlzdGNsZWFuLWdlbmVyaWM6 Ci0rCS10ZXN0IC16ICIkKENPTkZJR19DTEVBTl9GSUxFUykiIHx8IHJtIC1mICQoQ09ORklHX0NM RUFOX0ZJTEVTKQotKwotK21haW50YWluZXItY2xlYW4tZ2VuZXJpYzoKLSsJQGVjaG8gIlRoaXMg Y29tbWFuZCBpcyBpbnRlbmRlZCBmb3IgbWFpbnRhaW5lcnMgdG8gdXNlIgotKwlAZWNobyAiaXQg ZGVsZXRlcyBmaWxlcyB0aGF0IG1heSByZXF1aXJlIHNwZWNpYWwgdG9vbHMgdG8gcmVidWlsZC4i Ci0rCS10ZXN0IC16ICIkKE1BSU5UQUlORVJDTEVBTkZJTEVTKSIgfHwgcm0gLWYgJChNQUlOVEFJ TkVSQ0xFQU5GSUxFUykKLStjbGVhbjogY2xlYW4tcmVjdXJzaXZlCi0rCi0rY2xlYW4tYW06IGNs ZWFuLWdlbmVyaWMgY2xlYW4tbGliTFRMSUJSQVJJRVMgY2xlYW4tbGlidG9vbCBcCi0rCW1vc3Rs eWNsZWFuLWFtCi0rCi0rZGlzdGNsZWFuOiBkaXN0Y2xlYW4tcmVjdXJzaXZlCi0rCS1ybSAtcmYg Li8kKERFUERJUikKLSsJLXJtIC1mIE1ha2VmaWxlCi0rZGlzdGNsZWFuLWFtOiBjbGVhbi1hbSBk aXN0Y2xlYW4tY29tcGlsZSBkaXN0Y2xlYW4tZ2VuZXJpYyBcCi0rCWRpc3RjbGVhbi10YWdzCi0r Ci0rZHZpOiBkdmktcmVjdXJzaXZlCi0rCi0rZHZpLWFtOgotKwotK2h0bWw6IGh0bWwtcmVjdXJz aXZlCi0rCi0raW5mbzogaW5mby1yZWN1cnNpdmUKLSsKLStpbmZvLWFtOgotKwotK2luc3RhbGwt ZGF0YS1hbTogaW5zdGFsbC1ub2Jhc2VfcGtnaW5jbHVkZUhFQURFUlMKLSsKLStpbnN0YWxsLWR2 aTogaW5zdGFsbC1kdmktcmVjdXJzaXZlCi0rCi0raW5zdGFsbC1leGVjLWFtOiBpbnN0YWxsLWxp YkxUTElCUkFSSUVTCi0rCi0raW5zdGFsbC1odG1sOiBpbnN0YWxsLWh0bWwtcmVjdXJzaXZlCi0r Ci0raW5zdGFsbC1pbmZvOiBpbnN0YWxsLWluZm8tcmVjdXJzaXZlCi0rCi0raW5zdGFsbC1tYW46 Ci0rCi0raW5zdGFsbC1wZGY6IGluc3RhbGwtcGRmLXJlY3Vyc2l2ZQotKwotK2luc3RhbGwtcHM6 IGluc3RhbGwtcHMtcmVjdXJzaXZlCi0rCi0raW5zdGFsbGNoZWNrLWFtOgotKwotK21haW50YWlu ZXItY2xlYW46IG1haW50YWluZXItY2xlYW4tcmVjdXJzaXZlCi0rCS1ybSAtcmYgLi8kKERFUERJ UikKLSsJLXJtIC1mIE1ha2VmaWxlCi0rbWFpbnRhaW5lci1jbGVhbi1hbTogZGlzdGNsZWFuLWFt IG1haW50YWluZXItY2xlYW4tZ2VuZXJpYwotKwotK21vc3RseWNsZWFuOiBtb3N0bHljbGVhbi1y ZWN1cnNpdmUKLSsKLSttb3N0bHljbGVhbi1hbTogbW9zdGx5Y2xlYW4tY29tcGlsZSBtb3N0bHlj bGVhbi1nZW5lcmljIFwKLSsJbW9zdGx5Y2xlYW4tbGlidG9vbAotKwotK3BkZjogcGRmLXJlY3Vy c2l2ZQotKwotK3BkZi1hbToKLSsKLStwczogcHMtcmVjdXJzaXZlCi0rCi0rcHMtYW06Ci0rCi0r dW5pbnN0YWxsLWFtOiB1bmluc3RhbGwtbGliTFRMSUJSQVJJRVMgXAotKwl1bmluc3RhbGwtbm9i YXNlX3BrZ2luY2x1ZGVIRUFERVJTCi0rCi0rLk1BS0U6ICQoUkVDVVJTSVZFX0NMRUFOX1RBUkdF VFMpICQoUkVDVVJTSVZFX1RBUkdFVFMpIGluc3RhbGwtYW0gXAotKwlpbnN0YWxsLXN0cmlwCi0r Ci0rLlBIT05ZOiAkKFJFQ1VSU0lWRV9DTEVBTl9UQVJHRVRTKSAkKFJFQ1VSU0lWRV9UQVJHRVRT KSBDVEFHUyBHVEFHUyBcCi0rCWFsbCBhbGwtYW0gY2hlY2sgY2hlY2stYW0gY2xlYW4gY2xlYW4t Z2VuZXJpYyBcCi0rCWNsZWFuLWxpYkxUTElCUkFSSUVTIGNsZWFuLWxpYnRvb2wgY3RhZ3MgY3Rh Z3MtcmVjdXJzaXZlIFwKLSsJZGlzdGNsZWFuIGRpc3RjbGVhbi1jb21waWxlIGRpc3RjbGVhbi1n ZW5lcmljIFwKLSsJZGlzdGNsZWFuLWxpYnRvb2wgZGlzdGNsZWFuLXRhZ3MgZGlzdGRpciBkdmkg ZHZpLWFtIGh0bWwgXAotKwlodG1sLWFtIGluZm8gaW5mby1hbSBpbnN0YWxsIGluc3RhbGwtYW0g aW5zdGFsbC1kYXRhIFwKLSsJaW5zdGFsbC1kYXRhLWFtIGluc3RhbGwtZHZpIGluc3RhbGwtZHZp LWFtIGluc3RhbGwtZXhlYyBcCi0rCWluc3RhbGwtZXhlYy1hbSBpbnN0YWxsLWh0bWwgaW5zdGFs bC1odG1sLWFtIGluc3RhbGwtaW5mbyBcCi0rCWluc3RhbGwtaW5mby1hbSBpbnN0YWxsLWxpYkxU TElCUkFSSUVTIGluc3RhbGwtbWFuIFwKLSsJaW5zdGFsbC1ub2Jhc2VfcGtnaW5jbHVkZUhFQURF UlMgaW5zdGFsbC1wZGYgaW5zdGFsbC1wZGYtYW0gXAotKwlpbnN0YWxsLXBzIGluc3RhbGwtcHMt YW0gaW5zdGFsbC1zdHJpcCBpbnN0YWxsY2hlY2sgXAotKwlpbnN0YWxsY2hlY2stYW0gaW5zdGFs bGRpcnMgaW5zdGFsbGRpcnMtYW0gbWFpbnRhaW5lci1jbGVhbiBcCi0rCW1haW50YWluZXItY2xl YW4tZ2VuZXJpYyBtb3N0bHljbGVhbiBtb3N0bHljbGVhbi1jb21waWxlIFwKLSsJbW9zdGx5Y2xl YW4tZ2VuZXJpYyBtb3N0bHljbGVhbi1saWJ0b29sIHBkZiBwZGYtYW0gcHMgcHMtYW0gXAotKwl0 YWdzIHRhZ3MtcmVjdXJzaXZlIHVuaW5zdGFsbCB1bmluc3RhbGwtYW0gXAotKwl1bmluc3RhbGwt bGliTFRMSUJSQVJJRVMgdW5pbnN0YWxsLW5vYmFzZV9wa2dpbmNsdWRlSEVBREVSUwotKwotK0BT RVRfTUFLRUAKLSsjIFRlbGwgdmVyc2lvbnMgWzMuNTksMy42Mykgb2YgR05VIG1ha2UgdG8gbm90 IGV4cG9ydCBhbGwgdmFyaWFibGVzLgotKyMgT3RoZXJ3aXNlIGEgc3lzdGVtIGxpbWl0IChmb3Ig U3lzViBhdCBsZWFzdCkgbWF5IGJlIGV4Y2VlZGVkLgotKy5OT0VYUE9SVDoKLWRpZmYgLU51ciBz b2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL29yYWNsZS9zb2NpLW9yYWNsZS5oIHNvY2kt My4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL29yYWNsZS9zb2NpLW9yYWNsZS5oCi0tLS0gc29j aS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9vcmFjbGUvc29jaS1vcmFjbGUuaAkyMDA5LTA1 LTIzIDEzOjM3OjA5LjAwMDAwMDAwMCArMDIwMAotKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2Np L2JhY2tlbmRzL29yYWNsZS9zb2NpLW9yYWNsZS5oCTIwMDktMDUtMjIgMjI6NTQ6MTkuMDAwMDAw MDAwICswMjAwCi1AQCAtMjIsOSArMjIsMTQgQEAKLSAjaWZuZGVmIFNPQ0lfT1JBQ0xFX0RFQ0wK LSAjIGRlZmluZSBTT0NJX09SQUNMRV9ERUNMCi0gI2VuZGlmCi0tCi0tI2luY2x1ZGUgPHNvY2kt YmFja2VuZC5oPgotLSNpbmNsdWRlIDxvY2kuaD4gLy8gT0NJCi0rLy8KLSsjaWYgZGVmaW5lZChT T0NJX0hFQURFUlNfQlVSSUVEKQotKyMgICAgICAgaW5jbHVkZSA8c29jaS9jb3JlL3NvY2ktYmFj a2VuZC5oPgotKyNlbHNlCi0rIwlpbmNsdWRlIDxzb2NpLWJhY2tlbmQuaD4KLSsjZW5kaWYKLSsv LwotKyNpbmNsdWRlIDxvY2kuaD4gLy8gT0NJIChPcmFjbGUgY2xpZW50KQotICNpbmNsdWRlIDx2 ZWN0b3I+Ci0gCi0gI2lmZGVmIF9NU0NfVkVSCi1kaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2sv c29jaS9iYWNrZW5kcy9vcmFjbGUvc291cmNlcy5tayBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9i YWNrZW5kcy9vcmFjbGUvc291cmNlcy5tawotLS0tIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFj a2VuZHMvb3JhY2xlL3NvdXJjZXMubWsJMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAx MDAKLSsrKyBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9vcmFjbGUvc291cmNlcy5t awkyMDA5LTA1LTIyIDIyOjU0OjE5LjAwMDAwMDAwMCArMDIwMAotQEAgLTAsMCArMSwxNCBAQAot K2Jja19vcmFjbGVfaF9zb3VyY2VzID0gXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2Jh Y2tlbmRzL29yYWNsZS9lcnJvci5oIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNr ZW5kcy9vcmFjbGUvc29jaS1vcmFjbGUuaAotK2Jja19vcmFjbGVfY2Nfc291cmNlcyA9IFwKLSsg ICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvYmxvYi5jcHAgXAotKyAg ICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9lcnJvci5jcHAgXAotKyAg ICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9mYWN0b3J5LmNwcCBcCi0r ICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3Jvdy1pZC5jcHAgXAot KyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9zZXNzaW9uLmNwcCBc Ci0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3N0YW5kYXJkLWlu dG8tdHlwZS5jcHAgXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNs ZS9zdGFuZGFyZC11c2UtdHlwZS5jcHAgXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2Jh Y2tlbmRzL29yYWNsZS9zdGF0ZW1lbnQuY3BwIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29j aS9iYWNrZW5kcy9vcmFjbGUvdmVjdG9yLWludG8tdHlwZS5jcHAgXAotKyAgICAgICAgJCh0b3Bf c3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS92ZWN0b3ItdXNlLXR5cGUuY3BwCi1kaWZmIC1O dXIgc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9vcmFjbGUvc3RhbmRhcmQtaW50by10 eXBlLmNwcCBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9vcmFjbGUvc3RhbmRhcmQt aW50by10eXBlLmNwcAotLS0tIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvb3JhY2xl L3N0YW5kYXJkLWludG8tdHlwZS5jcHAJMjAwOS0wNS0yMyAxMzozNzowOS4wMDAwMDAwMDAgKzAy MDAKLSsrKyBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9vcmFjbGUvc3RhbmRhcmQt aW50by10eXBlLmNwcAkyMDA5LTA1LTIyIDIyOjU0OjE5LjAwMDAwMDAwMCArMDIwMAotQEAgLTcs MTAgKzcsMTggQEAKLSAKLSAjZGVmaW5lIFNPQ0lfT1JBQ0xFX1NPVVJDRQotICNpbmNsdWRlICJz b2NpLW9yYWNsZS5oIgotLSNpbmNsdWRlICJibG9iLmgiCi0gI2luY2x1ZGUgImVycm9yLmgiCi0t I2luY2x1ZGUgInJvd2lkLmgiCi0tI2luY2x1ZGUgInN0YXRlbWVudC5oIgotKy8vCi0rI2lmIGRl ZmluZWQoU09DSV9IRUFERVJTX0JVUklFRCkKLSsjICAgICAgIGluY2x1ZGUgPHNvY2kvY29yZS9i bG9iLmg+Ci0rIyAgICAgICBpbmNsdWRlIDxzb2NpL2NvcmUvcm93aWQuaD4KLSsjICAgICAgIGlu Y2x1ZGUgPHNvY2kvY29yZS9zdGF0ZW1lbnQuaD4KLSsjZWxzZQotKyMgICAgICAgaW5jbHVkZSA8 YmxvYi5oPgotKyMgICAgICAgaW5jbHVkZSA8cm93aWQuaD4KLSsjICAgICAgIGluY2x1ZGUgPHN0 YXRlbWVudC5oPgotKyNlbmRpZgotKy8vCi0gI2luY2x1ZGUgPGNjdHlwZT4KLSAjaW5jbHVkZSA8 Y3N0ZGlvPgotICNpbmNsdWRlIDxjc3RyaW5nPgotZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNr L3NvY2kvYmFja2VuZHMvb3JhY2xlL3N0YW5kYXJkLXVzZS10eXBlLmNwcCBzb2NpLTMuMC4wX3Ry ZXAzMDAvc29jaS9iYWNrZW5kcy9vcmFjbGUvc3RhbmRhcmQtdXNlLXR5cGUuY3BwCi0tLS0gc29j aS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9vcmFjbGUvc3RhbmRhcmQtdXNlLXR5cGUuY3Bw CTIwMDktMDUtMjMgMTM6Mzc6MDkuMDAwMDAwMDAwICswMjAwCi0rKysgc29jaS0zLjAuMF90cmVw MzAwL3NvY2kvYmFja2VuZHMvb3JhY2xlL3N0YW5kYXJkLXVzZS10eXBlLmNwcAkyMDA5LTA1LTIy IDIyOjU0OjE5LjAwMDAwMDAwMCArMDIwMAotQEAgLTcsMTAgKzcsMTggQEAKLSAKLSAjZGVmaW5l IHNvY2lfT1JBQ0xFX1NPVVJDRQotICNpbmNsdWRlICJzb2NpLW9yYWNsZS5oIgotLSNpbmNsdWRl ICJibG9iLmgiCi0gI2luY2x1ZGUgImVycm9yLmgiCi0tI2luY2x1ZGUgInJvd2lkLmgiCi0tI2lu Y2x1ZGUgInN0YXRlbWVudC5oIgotKy8vCi0rI2lmIGRlZmluZWQoU09DSV9IRUFERVJTX0JVUklF RCkKLSsjICAgICAgIGluY2x1ZGUgPHNvY2kvY29yZS9ibG9iLmg+Ci0rIyAgICAgICBpbmNsdWRl IDxzb2NpL2NvcmUvcm93aWQuaD4KLSsjICAgICAgIGluY2x1ZGUgPHNvY2kvY29yZS9zdGF0ZW1l bnQuaD4KLSsjZWxzZQotKyMgICAgICAgaW5jbHVkZSA8YmxvYi5oPgotKyMgICAgICAgaW5jbHVk ZSA8cm93aWQuaD4KLSsjICAgICAgIGluY2x1ZGUgPHN0YXRlbWVudC5oPgotKyNlbmRpZgotKy8v Ci0gI2luY2x1ZGUgPGNjdHlwZT4KLSAjaW5jbHVkZSA8Y3N0ZGlvPgotICNpbmNsdWRlIDxjc3Ry aW5nPgotZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvb3JhY2xlL3N0 YXRlbWVudC5jcHAgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvb3JhY2xlL3N0YXRl bWVudC5jcHAKLS0tLSBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL29yYWNsZS9zdGF0 ZW1lbnQuY3BwCTIwMDktMDUtMjMgMTM6Mzc6MDkuMDAwMDAwMDAwICswMjAwCi0rKysgc29jaS0z LjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvb3JhY2xlL3N0YXRlbWVudC5jcHAJMjAwOS0wNS0y MiAyMjo1NDoxOS4wMDAwMDAwMDAgKzAyMDAKLUBAIC05LDcgKzksMTMgQEAKLSAKLSAjaW5jbHVk ZSAic29jaS1vcmFjbGUuaCIKLSAjaW5jbHVkZSAiZXJyb3IuaCIKLS0jaW5jbHVkZSA8c29jaS1i YWNrZW5kLmg+Ci0rLy8KLSsjaWYgZGVmaW5lZChTT0NJX0hFQURFUlNfQlVSSUVEKQotKyMgICAg ICAgaW5jbHVkZSA8c29jaS9jb3JlL3NvY2ktYmFja2VuZC5oPgotKyNlbHNlCi0rIwlpbmNsdWRl IDxzb2NpLWJhY2tlbmQuaD4KLSsjZW5kaWYKLSsvLwotICNpbmNsdWRlIDxjY3R5cGU+Ci0gI2lu Y2x1ZGUgPGNzdGRpbz4KLSAjaW5jbHVkZSA8Y3N0cmluZz4KLWRpZmYgLU51ciBzb2NpLTMuMC4w XzQtcGFjay9zb2NpL2JhY2tlbmRzL29yYWNsZS90ZXN0L01ha2VmaWxlLmFtIHNvY2ktMy4wLjBf dHJlcDMwMC9zb2NpL2JhY2tlbmRzL29yYWNsZS90ZXN0L01ha2VmaWxlLmFtCi0tLS0gc29jaS0z LjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9vcmFjbGUvdGVzdC9NYWtlZmlsZS5hbQkxOTcwLTAx LTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAotKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2Np L2JhY2tlbmRzL29yYWNsZS90ZXN0L01ha2VmaWxlLmFtCTIwMDktMDUtMjIgMjI6NTQ6MTkuMDAw MDAwMDAwICswMjAwCi1AQCAtMCwwICsxLDIyIEBACi0rIyMgY29yZSBzdWItZGlyZWN0b3J5Ci0r aW5jbHVkZSAkKHRvcF9zcmNkaXIpL01ha2VmaWxlLmNvbW1vbgotK2luY2x1ZGUgJChzcmNkaXIp L3NvdXJjZXMubWsKLSsKLStNQUlOVEFJTkVSQ0xFQU5GSUxFUyA9IE1ha2VmaWxlLmluCi0rCi0r aWYgSEFWRV9PUkFDTEUKLSsgIFRFU1RfT1JBQ0xFID0gdGVzdF9vcmFjbGUKLSsKLStpZiBSVU5f VEVTVFMKLSsgIG5vaW5zdF9QUk9HUkFNUyA9ICQoVEVTVF9PUkFDTEUpCi0rZW5kaWYKLSsKLSt0 ZXN0X29yYWNsZV9TT1VSQ0VTID0gJChvcmFjbGVfdGVzdF9jY19zb3VyY2VzKQotK3Rlc3Rfb3Jh Y2xlX0NYWEZMQUdTID0gJChCT09TVF9DRkxBR1MpICQoT1JBQ0xFX09DSV9DRkxBR1MpCi0rdGVz dF9vcmFjbGVfTERBREQgPQotK3Rlc3Rfb3JhY2xlX0xERkxBR1MgPSAkKHRvcF9idWlsZGRpcikv c29jaS9jb3JlL2xpYnNvY2lfY29yZS5sYSAtbGRsIFwKLSsJCSQodG9wX2J1aWxkZGlyKS9zb2Np L2JhY2tlbmRzL29yYWNsZS9saWJzb2NpX29yYWNsZS5sYSBcCi0rCQkkKE9SQUNMRV9PQ0lfTERG TEFHUykKLStlbmRpZgotKwotKyNub2Rpc3RfcGtnaW5jbHVkZV9IRUFERVJTID0gJChvcmFjbGVf dGVzdF9oX3NvdXJjZXMpCi1kaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5k cy9vcmFjbGUvdGVzdC9NYWtlZmlsZS5iYXNpYyBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNr ZW5kcy9vcmFjbGUvdGVzdC9NYWtlZmlsZS5iYXNpYwotLS0tIHNvY2ktMy4wLjBfNC1wYWNrL3Nv Y2kvYmFja2VuZHMvb3JhY2xlL3Rlc3QvTWFrZWZpbGUuYmFzaWMJMjAwOS0wNS0yMyAxMzozNzow OS4wMDAwMDAwMDAgKzAyMDAKLSsrKyBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9v cmFjbGUvdGVzdC9NYWtlZmlsZS5iYXNpYwkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCAr MDEwMAotQEAgLTEsMjMgKzAsMCBAQAotLSMgVGhlIGZvbGxvd2luZyB2YXJpYWJsZSBpcyBzcGVj aWZpYyB0byB0aGlzIGJhY2tlbmQgYW5kIGl0cyBjb3JyZWN0Ci0tIyB2YWx1ZXMgbWlnaHQgZGVw ZW5kIG9uIHlvdXIgZW52aXJvbm1lbnQgLSBmZWVsIGZyZWUgdG8gc2V0IGl0IGFjY29yZGluZ2x5 LgotLQotLU9SQUNMRUlOQ0xVREVESVIgPSAtSS91c3IvbGliL29yYWNsZS94ZS9hcHAvb3JhY2xl L3Byb2R1Y3QvMTAuMi4wL3NlcnZlci9yZGJtcy9wdWJsaWMgCi0tT1JBQ0xFTElCRElSID0gLUwv dXNyL2xpYi9vcmFjbGUveGUvYXBwL29yYWNsZS9wcm9kdWN0LzEwLjIuMC9zZXJ2ZXIvbGliIAot LU9SQUNMRUxJQlMgPSAtbGNsbnRzaCAtbG5uejEwCi0tCi0tIyBUaGUgcmVzdCBvZiB0aGUgTWFr ZWZpbGUgaXMgaW5kZXBlbnRlbnQgb2YgdGhlIHRhcmdldCBlbnZpcm9ubWVudC4KLS0KLS1DT01Q SUxFUiA9IGcrKwotLUNYWEZMQUdTID0gLVdhbGwgLXBlZGFudGljIC1Xbm8tbG9uZy1sb25nCi0t SU5DTFVERURJUlMgPSAtSS4uIC1JLi4vLi4vLi4vY29yZSAtSS4uLy4uLy4uL2NvcmUvdGVzdCAk e09SQUNMRUlOQ0xVREVESVJ9Ci0tTElCRElSUyA9IC1MLi4gLUwuLi8uLi8uLi9jb3JlICR7T1JB Q0xFTElCRElSfQotLUxJQlMgPSAtbHNvY2lfY29yZSAtbHNvY2lfb3JhY2xlIC1sZGwgLWxib29z dF9kYXRlX3RpbWUgJHtPUkFDTEVMSUJTfQotLQotLQotLXRlc3Qtb3JhY2xlIDogdGVzdC1vcmFj bGUuY3BwIAotLSMuLi8uLi8uLi9jb3JlL3Rlc3QvY29tbW9uLXRlc3RzLmgKLS0JJHtDT01QSUxF Un0gLW8gJEAgJD8gJHtDWFhGTEFHU30gJHtJTkNMVURFRElSU30gJHtMSUJESVJTfSAke0xJQlN9 Ci0tCi0tCi0tY2xlYW4gOgotLQlybSAtZiAqLm8gdGVzdC1vcmFjbGUKLWRpZmYgLU51ciBzb2Np LTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL29yYWNsZS90ZXN0L01ha2VmaWxlLmluIHNvY2kt My4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL29yYWNsZS90ZXN0L01ha2VmaWxlLmluCi0tLS0g c29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9vcmFjbGUvdGVzdC9NYWtlZmlsZS5pbgkx OTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAotKysrIHNvY2ktMy4wLjBfdHJlcDMw MC9zb2NpL2JhY2tlbmRzL29yYWNsZS90ZXN0L01ha2VmaWxlLmluCTIwMDktMDUtMjMgMTA6MDI6 MDIuMDAwMDAwMDAwICswMjAwCi1AQCAtMCwwICsxLDUyOCBAQAotKyMgTWFrZWZpbGUuaW4gZ2Vu ZXJhdGVkIGJ5IGF1dG9tYWtlIDEuMTAuMiBmcm9tIE1ha2VmaWxlLmFtLgotKyMgQGNvbmZpZ3Vy ZV9pbnB1dEAKLSsKLSsjIENvcHlyaWdodCAoQykgMTk5NCwgMTk5NSwgMTk5NiwgMTk5NywgMTk5 OCwgMTk5OSwgMjAwMCwgMjAwMSwgMjAwMiwKLSsjIDIwMDMsIDIwMDQsIDIwMDUsIDIwMDYsIDIw MDcsIDIwMDggIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgotKyMgVGhpcyBNYWtlZmls ZS5pbiBpcyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCi0rIyBn aXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5IGFuZC9vciBkaXN0cmlidXRlIGl0LAot KyMgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbnMsIGFzIGxvbmcgYXMgdGhpcyBub3RpY2Ug aXMgcHJlc2VydmVkLgotKwotKyMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBo b3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0rIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFks IHRvIHRoZSBleHRlbnQgcGVybWl0dGVkIGJ5IGxhdzsgd2l0aG91dAotKyMgZXZlbiB0aGUgaW1w bGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQQotKyMgUEFS VElDVUxBUiBQVVJQT1NFLgotKwotK0BTRVRfTUFLRUAKLSsKLStWUEFUSCA9IEBzcmNkaXJACi0r cGtnZGF0YWRpciA9ICQoZGF0YWRpcikvQFBBQ0tBR0VACi0rcGtnbGliZGlyID0gJChsaWJkaXIp L0BQQUNLQUdFQAotK3BrZ2luY2x1ZGVkaXIgPSAkKGluY2x1ZGVkaXIpL0BQQUNLQUdFQAotK2Ft X19jZCA9IENEUEFUSD0iJCR7WlNIX1ZFUlNJT04rLn0kKFBBVEhfU0VQQVJBVE9SKSIgJiYgY2QK LStpbnN0YWxsX3NoX0RBVEEgPSAkKGluc3RhbGxfc2gpIC1jIC1tIDY0NAotK2luc3RhbGxfc2hf UFJPR1JBTSA9ICQoaW5zdGFsbF9zaCkgLWMKLStpbnN0YWxsX3NoX1NDUklQVCA9ICQoaW5zdGFs bF9zaCkgLWMKLStJTlNUQUxMX0hFQURFUiA9ICQoSU5TVEFMTF9EQVRBKQotK3RyYW5zZm9ybSA9 ICQocHJvZ3JhbV90cmFuc2Zvcm1fbmFtZSkKLStOT1JNQUxfSU5TVEFMTCA9IDoKLStQUkVfSU5T VEFMTCA9IDoKLStQT1NUX0lOU1RBTEwgPSA6Ci0rTk9STUFMX1VOSU5TVEFMTCA9IDoKLStQUkVf VU5JTlNUQUxMID0gOgotK1BPU1RfVU5JTlNUQUxMID0gOgotK2J1aWxkX3RyaXBsZXQgPSBAYnVp bGRACi0raG9zdF90cmlwbGV0ID0gQGhvc3RACi0rRElTVF9DT01NT04gPSAkKHNyY2RpcikvTWFr ZWZpbGUuYW0gJChzcmNkaXIpL01ha2VmaWxlLmluIFwKLSsJJChzcmNkaXIpL3NvdXJjZXMubWsg JCh0b3Bfc3JjZGlyKS9NYWtlZmlsZS5jb21tb24KLStASEFWRV9PUkFDTEVfVFJVRUBAUlVOX1RF U1RTX1RSVUVAbm9pbnN0X1BST0dSQU1TID0gJChhbV9fRVhFRVhUXzEpCi0rc3ViZGlyID0gc29j aS9iYWNrZW5kcy9vcmFjbGUvdGVzdAotK0FDTE9DQUxfTTQgPSAkKHRvcF9zcmNkaXIpL2FjbG9j YWwubTQKLSthbV9fYWNsb2NhbF9tNF9kZXBzID0gJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfYm9v c3QubTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9teXNxbC5tNCBcCi0rCSQodG9wX3Ny Y2RpcikvY29uZmlnL2F4X29yYWNsZV9vY2kubTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9h eF9wb3N0Z3Jlc3FsLm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvY3BwdW5pdC5tNCBcCi0r CSQodG9wX3NyY2RpcikvY29uZmlnL2xpYnRvb2wubTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZp Zy9sdG9wdGlvbnMubTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9sdHN1Z2FyLm00IFwKLSsJ JCh0b3Bfc3JjZGlyKS9jb25maWcvbHR2ZXJzaW9uLm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25m aWcvbHR+b2Jzb2xldGUubTQgJCh0b3Bfc3JjZGlyKS9jb25maWd1cmUuYWMKLSthbV9fY29uZmln dXJlX2RlcHMgPSAkKGFtX19hY2xvY2FsX200X2RlcHMpICQoQ09ORklHVVJFX0RFUEVOREVOQ0lF UykgXAotKwkkKEFDTE9DQUxfTTQpCi0rbWtpbnN0YWxsZGlycyA9ICQoaW5zdGFsbF9zaCkgLWQK LStDT05GSUdfSEVBREVSID0gJCh0b3BfYnVpbGRkaXIpL3NvY2kvY29uZmlnLmgKLStDT05GSUdf Q0xFQU5fRklMRVMgPQotK0BIQVZFX09SQUNMRV9UUlVFQGFtX19FWEVFWFRfMSA9IHRlc3Rfb3Jh Y2xlJChFWEVFWFQpCi0rUFJPR1JBTVMgPSAkKG5vaW5zdF9QUk9HUkFNUykKLSthbV9fdGVzdF9v cmFjbGVfU09VUkNFU19ESVNUID0gIFwKLSsJJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29y YWNsZS90ZXN0L3Rlc3Qtb3JhY2xlLmNwcAotK2FtX19vYmplY3RzXzEgPSB0ZXN0X29yYWNsZS10 ZXN0LW9yYWNsZS4kKE9CSkVYVCkKLStASEFWRV9PUkFDTEVfVFJVRUBhbV90ZXN0X29yYWNsZV9P QkpFQ1RTID0gJChhbV9fb2JqZWN0c18xKQotK3Rlc3Rfb3JhY2xlX09CSkVDVFMgPSAkKGFtX3Rl c3Rfb3JhY2xlX09CSkVDVFMpCi0rdGVzdF9vcmFjbGVfREVQRU5ERU5DSUVTID0KLSt0ZXN0X29y YWNsZV9MSU5LID0gJChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpIFwKLSsJ JChMSUJUT09MRkxBR1MpIC0tbW9kZT1saW5rICQoQ1hYTEQpICQodGVzdF9vcmFjbGVfQ1hYRkxB R1MpIFwKLSsJJChDWFhGTEFHUykgJCh0ZXN0X29yYWNsZV9MREZMQUdTKSAkKExERkxBR1MpIC1v ICRACi0rREVGQVVMVF9JTkNMVURFUyA9IC1JLkBhbV9faXNyY0AgLUkkKHRvcF9idWlsZGRpcikv c29jaQotK2RlcGNvbXAgPSAkKFNIRUxMKSAkKHRvcF9zcmNkaXIpL2NvbmZpZy9kZXBjb21wCi0r YW1fX2RlcGZpbGVzX21heWJlID0gZGVwZmlsZXMKLStDWFhDT01QSUxFID0gJChDWFgpICQoREVG UykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSBcCi0rCSQoQU1fQ1BQRkxBR1MpICQo Q1BQRkxBR1MpICQoQU1fQ1hYRkxBR1MpICQoQ1hYRkxBR1MpCi0rTFRDWFhDT01QSUxFID0gJChM SUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSBcCi0r CS0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNM VURFUykgXAotKwkkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKEFNX0NYWEZMQUdTKSAkKENY WEZMQUdTKQotK0NYWExEID0gJChDWFgpCi0rQ1hYTElOSyA9ICQoTElCVE9PTCkgLS10YWc9Q1hY ICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgXAotKwktLW1vZGU9bGluayAkKENY WExEKSAkKEFNX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAkKEFNX0xERkxBR1MpIFwKLSsJJChMREZM QUdTKSAtbyAkQAotK1NPVVJDRVMgPSAkKHRlc3Rfb3JhY2xlX1NPVVJDRVMpCi0rRElTVF9TT1VS Q0VTID0gJChhbV9fdGVzdF9vcmFjbGVfU09VUkNFU19ESVNUKQotK0VUQUdTID0gZXRhZ3MKLStD VEFHUyA9IGN0YWdzCi0rRElTVEZJTEVTID0gJChESVNUX0NPTU1PTikgJChESVNUX1NPVVJDRVMp ICQoVEVYSU5GT1MpICQoRVhUUkFfRElTVCkKLStBQ0xPQ0FMID0gQEFDTE9DQUxACi0rQU1UQVIg PSBAQU1UQVJACi0rQVIgPSBAQVJACi0rQVVUT0NPTkYgPSBAQVVUT0NPTkZACi0rQVVUT0hFQURF UiA9IEBBVVRPSEVBREVSQAotK0FVVE9NQUtFID0gQEFVVE9NQUtFQAotK0FXSyA9IEBBV0tACi0r Qk9PU1RfQ0ZMQUdTID0gQEJPT1NUX0NGTEFHU0AKLStCT09TVF9EQVRFX1RJTUVfTElCID0gQEJP T1NUX0RBVEVfVElNRV9MSUJACi0rQk9PU1RfRklMRVNZU1RFTV9MSUIgPSBAQk9PU1RfRklMRVNZ U1RFTV9MSUJACi0rQk9PU1RfSU9TVFJFQU1TX0xJQiA9IEBCT09TVF9JT1NUUkVBTVNfTElCQAot K0JPT1NUX0xJQlMgPSBAQk9PU1RfTElCU0AKLStCT09TVF9QUk9HUkFNX09QVElPTlNfTElCID0g QEJPT1NUX1BST0dSQU1fT1BUSU9OU19MSUJACi0rQk9PU1RfUkVHRVhfTElCID0gQEJPT1NUX1JF R0VYX0xJQkAKLStCT09TVF9TRVJJQUxJWkFUSU9OX0xJQiA9IEBCT09TVF9TRVJJQUxJWkFUSU9O X0xJQkAKLStCT09TVF9TSUdOQUxTX0xJQiA9IEBCT09TVF9TSUdOQUxTX0xJQkAKLStCT09TVF9U SFJFQURfTElCID0gQEJPT1NUX1RIUkVBRF9MSUJACi0rQk9PU1RfVU5JVF9URVNUX0ZSQU1FV09S S19MSUIgPSBAQk9PU1RfVU5JVF9URVNUX0ZSQU1FV09SS19MSUJACi0rQk9PU1RfVkVSU0lPTiA9 IEBCT09TVF9WRVJTSU9OQAotK0JPT1NUX1dTRVJJQUxJWkFUSU9OX0xJQiA9IEBCT09TVF9XU0VS SUFMSVpBVElPTl9MSUJACi0rQ0MgPSBAQ0NACi0rQ0NERVBNT0RFID0gQENDREVQTU9ERUAKLStD RkxBR1MgPSBAQ0ZMQUdTQAotK0NQUCA9IEBDUFBACi0rQ1BQRkxBR1MgPSBAQ1BQRkxBR1NACi0r Q1BQVU5JVF9DRkxBR1MgPSBAQ1BQVU5JVF9DRkxBR1NACi0rQ1BQVU5JVF9DT05GSUcgPSBAQ1BQ VU5JVF9DT05GSUdACi0rQ1BQVU5JVF9MSUJTID0gQENQUFVOSVRfTElCU0AKLStDUFBVTklUX1ZF UlNJT04gPSBAQ1BQVU5JVF9WRVJTSU9OQAotK0NYWCA9IEBDWFhACi0rQ1hYQ1BQID0gQENYWENQ UEAKLStDWFhERVBNT0RFID0gQENYWERFUE1PREVACi0rQ1hYRkxBR1MgPSBAQ1hYRkxBR1NACi0r Q1lHUEFUSF9XID0gQENZR1BBVEhfV0AKLStERUZTID0gQERFRlNACi0rREVQRElSID0gQERFUERJ UkAKLStEU1lNVVRJTCA9IEBEU1lNVVRJTEAKLStEVU1QQklOID0gQERVTVBCSU5ACi0rRUNIT19D ID0gQEVDSE9fQ0AKLStFQ0hPX04gPSBARUNIT19OQAotK0VDSE9fVCA9IEBFQ0hPX1RACi0rRUdS RVAgPSBARUdSRVBACi0rRVhFRVhUID0gQEVYRUVYVEAKLStGR1JFUCA9IEBGR1JFUEAKLStHRU5F UklDX0xJQlJBUllfVkVSU0lPTiA9IEBHRU5FUklDX0xJQlJBUllfVkVSU0lPTkAKLStHUkVQID0g QEdSRVBACi0rSU5TVEFMTCA9IEBJTlNUQUxMQAotK0lOU1RBTExfREFUQSA9IEBJTlNUQUxMX0RB VEFACi0rSU5TVEFMTF9QUk9HUkFNID0gQElOU1RBTExfUFJPR1JBTUAKLStJTlNUQUxMX1NDUklQ VCA9IEBJTlNUQUxMX1NDUklQVEAKLStJTlNUQUxMX1NUUklQX1BST0dSQU0gPSBASU5TVEFMTF9T VFJJUF9QUk9HUkFNQAotK0xEID0gQExEQAotK0xERkxBR1MgPSBATERGTEFHU0AKLStMSUJPQkpT ID0gQExJQk9CSlNACi0rTElCUyA9IEBMSUJTQAotK0xJQlRPT0wgPSBATElCVE9PTEAKLStMSVBP ID0gQExJUE9ACi0rTE5fUyA9IEBMTl9TQAotK0xUTElCT0JKUyA9IEBMVExJQk9CSlNACi0rTUFL RUlORk8gPSBATUFLRUlORk9ACi0rTUtESVJfUCA9IEBNS0RJUl9QQAotK01ZU1FMX0NGTEFHUyA9 IEBNWVNRTF9DRkxBR1NACi0rTVlTUUxfQ09ORklHID0gQE1ZU1FMX0NPTkZJR0AKLStNWVNRTF9E SVJTID0gQE1ZU1FMX0RJUlNACi0rTVlTUUxfTERGTEFHUyA9IEBNWVNRTF9MREZMQUdTQAotK01Z U1FMX1ZFUlNJT04gPSBATVlTUUxfVkVSU0lPTkAKLStOTSA9IEBOTUAKLStOTUVESVQgPSBATk1F RElUQAotK09CSkRVTVAgPSBAT0JKRFVNUEAKLStPQkpFWFQgPSBAT0JKRVhUQAotK09SQUNMRV9E SVJTID0gQE9SQUNMRV9ESVJTQAotK09SQUNMRV9PQ0lfQ0ZMQUdTID0gQE9SQUNMRV9PQ0lfQ0ZM QUdTQAotK09SQUNMRV9PQ0lfTERGTEFHUyA9IEBPUkFDTEVfT0NJX0xERkxBR1NACi0rT1JBQ0xF X09DSV9WRVJTSU9OID0gQE9SQUNMRV9PQ0lfVkVSU0lPTkAKLStPVE9PTCA9IEBPVE9PTEAKLStP VE9PTDY0ID0gQE9UT09MNjRACi0rUEFDS0FHRSA9IEBQQUNLQUdFQAotK1BBQ0tBR0VfQlVHUkVQ T1JUID0gQFBBQ0tBR0VfQlVHUkVQT1JUQAotK1BBQ0tBR0VfTkFNRSA9IEBQQUNLQUdFX05BTUVA Ci0rUEFDS0FHRV9TVFJJTkcgPSBAUEFDS0FHRV9TVFJJTkdACi0rUEFDS0FHRV9UQVJOQU1FID0g QFBBQ0tBR0VfVEFSTkFNRUAKLStQQUNLQUdFX1ZFUlNJT04gPSBAUEFDS0FHRV9WRVJTSU9OQAot K1BBVEhfU0VQQVJBVE9SID0gQFBBVEhfU0VQQVJBVE9SQAotK1BFUkwgPSBAUEVSTEAKLStQR19D T05GSUcgPSBAUEdfQ09ORklHQAotK1BPU1RHUkVTUUxfQ0ZMQUdTID0gQFBPU1RHUkVTUUxfQ0ZM QUdTQAotK1BPU1RHUkVTUUxfRElSUyA9IEBQT1NUR1JFU1FMX0RJUlNACi0rUE9TVEdSRVNRTF9M REZMQUdTID0gQFBPU1RHUkVTUUxfTERGTEFHU0AKLStQT1NUR1JFU1FMX1ZFUlNJT04gPSBAUE9T VEdSRVNRTF9WRVJTSU9OQAotK1JBTkxJQiA9IEBSQU5MSUJACi0rUlBNX1JFTEVBU0UgPSBAUlBN X1JFTEVBU0VACi0rU0VEID0gQFNFREAKLStTRVRfTUFLRSA9IEBTRVRfTUFLRUAKLStTSEVMTCA9 IEBTSEVMTEAKLStTT0NJX0hFQURFUlNfQlVSSUVEID0gQFNPQ0lfSEVBREVSU19CVVJJRURACi0r U09DSV9NWVNRTF9IRUFERVJTX0JVUklFRCA9IEBTT0NJX01ZU1FMX0hFQURFUlNfQlVSSUVEQAot K1NPQ0lfUE9TVEdSRVNRTF9IRUFERVJTX0JVUklFRCA9IEBTT0NJX1BPU1RHUkVTUUxfSEVBREVS U19CVVJJRURACi0rU1RSSVAgPSBAU1RSSVBACi0rVVBMT0FEX0NPTU1BTkQgPSBAVVBMT0FEX0NP TU1BTkRACi0rVkVSU0lPTiA9IEBWRVJTSU9OQAotK2Fic19idWlsZGRpciA9IEBhYnNfYnVpbGRk aXJACi0rYWJzX3NyY2RpciA9IEBhYnNfc3JjZGlyQAotK2Fic190b3BfYnVpbGRkaXIgPSBAYWJz X3RvcF9idWlsZGRpckAKLSthYnNfdG9wX3NyY2RpciA9IEBhYnNfdG9wX3NyY2RpckAKLSthY19j dF9DQyA9IEBhY19jdF9DQ0AKLSthY19jdF9DWFggPSBAYWNfY3RfQ1hYQAotK2FjX2N0X0RVTVBC SU4gPSBAYWNfY3RfRFVNUEJJTkAKLSthbV9faW5jbHVkZSA9IEBhbV9faW5jbHVkZUAKLSthbV9f bGVhZGluZ19kb3QgPSBAYW1fX2xlYWRpbmdfZG90QAotK2FtX19xdW90ZSA9IEBhbV9fcXVvdGVA Ci0rYW1fX3RhciA9IEBhbV9fdGFyQAotK2FtX191bnRhciA9IEBhbV9fdW50YXJACi0rYmluZGly ID0gQGJpbmRpckAKLStidWlsZCA9IEBidWlsZEAKLStidWlsZF9hbGlhcyA9IEBidWlsZF9hbGlh c0AKLStidWlsZF9jcHUgPSBAYnVpbGRfY3B1QAotK2J1aWxkX29zID0gQGJ1aWxkX29zQAotK2J1 aWxkX3ZlbmRvciA9IEBidWlsZF92ZW5kb3JACi0rYnVpbGRkaXIgPSBAYnVpbGRkaXJACi0rZGF0 YWRpciA9IEBkYXRhZGlyQAotK2RhdGFyb290ZGlyID0gQGRhdGFyb290ZGlyQAotK2RpZmZfb2sg PSBAZGlmZl9va0AKLStkb2NkaXIgPSBAZG9jZGlyQAotK2RveHlnZW5fb2sgPSBAZG94eWdlbl9v a0AKLStkdmlkaXIgPSBAZHZpZGlyQAotK2R2aXBzX29rID0gQGR2aXBzX29rQAotK2V4ZWNfcHJl Zml4ID0gQGV4ZWNfcHJlZml4QAotK2dzX29rID0gQGdzX29rQAotK2hvc3QgPSBAaG9zdEAKLSto b3N0X2FsaWFzID0gQGhvc3RfYWxpYXNACi0raG9zdF9jcHUgPSBAaG9zdF9jcHVACi0raG9zdF9v cyA9IEBob3N0X29zQAotK2hvc3RfdmVuZG9yID0gQGhvc3RfdmVuZG9yQAotK2h0bWxkaXIgPSBA aHRtbGRpckAKLStpbmNsdWRlZGlyID0gQGluY2x1ZGVkaXJACi0raW5mb2RpciA9IEBpbmZvZGly QAotK2luc3RhbGxfc2ggPSBAaW5zdGFsbF9zaEAKLStsYXRleF9vayA9IEBsYXRleF9va0AKLSts aWJkaXIgPSBAbGliZGlyQAotK2xpYmV4ZWNkaXIgPSBAbGliZXhlY2RpckAKLStsb2NhbGVkaXIg PSBAbG9jYWxlZGlyQAotK2xvY2Fsc3RhdGVkaXIgPSBAbG9jYWxzdGF0ZWRpckAKLStsdF9FQ0hP ID0gQGx0X0VDSE9ACi0rbWFuZGlyID0gQG1hbmRpckAKLStta2Rpcl9wID0gQG1rZGlyX3BACi0r b2xkaW5jbHVkZWRpciA9IEBvbGRpbmNsdWRlZGlyQAotK3BkZmRpciA9IEBwZGZkaXJACi0rcHJl Zml4ID0gQHByZWZpeEAKLStwcm9ncmFtX3RyYW5zZm9ybV9uYW1lID0gQHByb2dyYW1fdHJhbnNm b3JtX25hbWVACi0rcHNkaXIgPSBAcHNkaXJACi0rc2JpbmRpciA9IEBzYmluZGlyQAotK3NlZF9v ayA9IEBzZWRfb2tACi0rc2hhcmVkc3RhdGVkaXIgPSBAc2hhcmVkc3RhdGVkaXJACi0rc3JjZGly ID0gQHNyY2RpckAKLStzeXNjb25mZGlyID0gQHN5c2NvbmZkaXJACi0rdGFyZ2V0X2FsaWFzID0g QHRhcmdldF9hbGlhc0AKLSt0b3BfYnVpbGRfcHJlZml4ID0gQHRvcF9idWlsZF9wcmVmaXhACi0r dG9wX2J1aWxkZGlyID0gQHRvcF9idWlsZGRpckAKLSt0b3Bfc3JjZGlyID0gQHRvcF9zcmNkaXJA Ci0rQU1fQ1BQRkxBR1MgPSAtSSQodG9wX2J1aWxkZGlyKSAtSSQodG9wX3NyY2RpcikKLStvcmFj bGVfdGVzdF9oX3NvdXJjZXMgPSAKLStvcmFjbGVfdGVzdF9jY19zb3VyY2VzID0gJCh0b3Bfc3Jj ZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS90ZXN0L3Rlc3Qtb3JhY2xlLmNwcAotK01BSU5UQUlO RVJDTEVBTkZJTEVTID0gTWFrZWZpbGUuaW4KLStASEFWRV9PUkFDTEVfVFJVRUBURVNUX09SQUNM RSA9IHRlc3Rfb3JhY2xlCi0rQEhBVkVfT1JBQ0xFX1RSVUVAdGVzdF9vcmFjbGVfU09VUkNFUyA9 ICQob3JhY2xlX3Rlc3RfY2Nfc291cmNlcykKLStASEFWRV9PUkFDTEVfVFJVRUB0ZXN0X29yYWNs ZV9DWFhGTEFHUyA9ICQoQk9PU1RfQ0ZMQUdTKSAkKE9SQUNMRV9PQ0lfQ0ZMQUdTKQotK0BIQVZF X09SQUNMRV9UUlVFQHRlc3Rfb3JhY2xlX0xEQUREID0gCi0rQEhBVkVfT1JBQ0xFX1RSVUVAdGVz dF9vcmFjbGVfTERGTEFHUyA9ICQodG9wX2J1aWxkZGlyKS9zb2NpL2NvcmUvbGlic29jaV9jb3Jl LmxhIC1sZGwgXAotK0BIQVZFX09SQUNMRV9UUlVFQAkJJCh0b3BfYnVpbGRkaXIpL3NvY2kvYmFj a2VuZHMvb3JhY2xlL2xpYnNvY2lfb3JhY2xlLmxhIFwKLStASEFWRV9PUkFDTEVfVFJVRUAJCSQo T1JBQ0xFX09DSV9MREZMQUdTKQotKwotK2FsbDogYWxsLWFtCi0rCi0rLlNVRkZJWEVTOgotKy5T VUZGSVhFUzogLmNwcCAubG8gLm8gLm9iagotKyQoc3JjZGlyKS9NYWtlZmlsZS5pbjogICQoc3Jj ZGlyKS9NYWtlZmlsZS5hbSAkKHRvcF9zcmNkaXIpL01ha2VmaWxlLmNvbW1vbiAkKHNyY2Rpcikv c291cmNlcy5tayAkKGFtX19jb25maWd1cmVfZGVwcykKLSsJQGZvciBkZXAgaW4gJD87IGRvIFwK LSsJICBjYXNlICckKGFtX19jb25maWd1cmVfZGVwcyknIGluIFwKLSsJICAgICokJGRlcCopIFwK LSsJICAgICAgKCBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykg YW0tLXJlZnJlc2ggKSBcCi0rCSAgICAgICAgJiYgeyBpZiB0ZXN0IC1mICRAOyB0aGVuIGV4aXQg MDsgZWxzZSBicmVhazsgZmk7IH07IFwKLSsJICAgICAgZXhpdCAxOzsgXAotKwkgIGVzYWM7IFwK LSsJZG9uZTsgXAotKwllY2hvICcgY2QgJCh0b3Bfc3JjZGlyKSAmJiAkKEFVVE9NQUtFKSAtLWdu dSAgc29jaS9iYWNrZW5kcy9vcmFjbGUvdGVzdC9NYWtlZmlsZSc7IFwKLSsJY2QgJCh0b3Bfc3Jj ZGlyKSAmJiBcCi0rCSAgJChBVVRPTUFLRSkgLS1nbnUgIHNvY2kvYmFja2VuZHMvb3JhY2xlL3Rl c3QvTWFrZWZpbGUKLSsuUFJFQ0lPVVM6IE1ha2VmaWxlCi0rTWFrZWZpbGU6ICQoc3JjZGlyKS9N YWtlZmlsZS5pbiAkKHRvcF9idWlsZGRpcikvY29uZmlnLnN0YXR1cwotKwlAY2FzZSAnJD8nIGlu IFwKLSsJICAqY29uZmlnLnN0YXR1cyopIFwKLSsJICAgIGNkICQodG9wX2J1aWxkZGlyKSAmJiAk KE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaDs7IFwKLSsJICAqKSBcCi0rCSAgICBl Y2hvICcgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoU0hFTEwpIC4vY29uZmlnLnN0YXR1cyAkKHN1 YmRpcikvJEAgJChhbV9fZGVwZmlsZXNfbWF5YmUpJzsgXAotKwkgICAgY2QgJCh0b3BfYnVpbGRk aXIpICYmICQoU0hFTEwpIC4vY29uZmlnLnN0YXR1cyAkKHN1YmRpcikvJEAgJChhbV9fZGVwZmls ZXNfbWF5YmUpOzsgXAotKwllc2FjOwotKwotKyQodG9wX2J1aWxkZGlyKS9jb25maWcuc3RhdHVz OiAkKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZSAkKENPTkZJR19TVEFUVVNfREVQRU5ERU5DSUVTKQot KwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJl c2gKLSsKLSskKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZTogICQoYW1fX2NvbmZpZ3VyZV9kZXBzKQot KwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJl c2gKLSskKEFDTE9DQUxfTTQpOiAgJChhbV9fYWNsb2NhbF9tNF9kZXBzKQotKwljZCAkKHRvcF9i dWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gKLSsKLStjbGVh bi1ub2luc3RQUk9HUkFNUzoKLSsJQGxpc3Q9JyQobm9pbnN0X1BST0dSQU1TKSc7IGZvciBwIGlu ICQkbGlzdDsgZG8gXAotKwkgIGY9YGVjaG8gJCRwfHNlZCAncy8kKEVYRUVYVCkkJC8vJ2A7IFwK LSsJICBlY2hvICIgcm0gLWYgJCRwICQkZiI7IFwKLSsJICBybSAtZiAkJHAgJCRmIDsgXAotKwlk b25lCi0rdGVzdF9vcmFjbGUkKEVYRUVYVCk6ICQodGVzdF9vcmFjbGVfT0JKRUNUUykgJCh0ZXN0 X29yYWNsZV9ERVBFTkRFTkNJRVMpIAotKwlAcm0gLWYgdGVzdF9vcmFjbGUkKEVYRUVYVCkKLSsJ JCh0ZXN0X29yYWNsZV9MSU5LKSAkKHRlc3Rfb3JhY2xlX09CSkVDVFMpICQodGVzdF9vcmFjbGVf TERBREQpICQoTElCUykKLSsKLSttb3N0bHljbGVhbi1jb21waWxlOgotKwktcm0gLWYgKi4kKE9C SkVYVCkKLSsKLStkaXN0Y2xlYW4tY29tcGlsZToKLSsJLXJtIC1mICoudGFiLmMKLSsKLStAQU1E RVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvdGVzdF9vcmFjbGUt dGVzdC1vcmFjbGUuUG9AYW1fX3F1b3RlQAotKwotKy5jcHAubzoKLStAYW1fX2Zhc3RkZXBDWFhf VFJVRUAJJChDWFhDT01QSUxFKSAtTVQgJEAgLU1EIC1NUCAtTUYgJChERVBESVIpLyQqLlRwbyAt YyAtbyAkQCAkPAotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAltdiAtZiAkKERFUERJUikvJCouVHBv ICQoREVQRElSKS8kKi5QbwotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291 cmNlPSckPCcgb2JqZWN0PSckQCcgbGlidG9vbD1ubyBAQU1ERVBCQUNLU0xBU0hACi0rQEFNREVQ X1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9E RSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACi0rQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkk KENYWENPTVBJTEUpIC1jIC1vICRAICQ8Ci0rCi0rLmNwcC5vYmo6Ci0rQGFtX19mYXN0ZGVwQ1hY X1RSVUVACSQoQ1hYQ09NUElMRSkgLU1UICRAIC1NRCAtTVAgLU1GICQoREVQRElSKS8kKi5UcG8g LWMgLW8gJEAgYCQoQ1lHUEFUSF9XKSAnJDwnYAotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAltdiAt ZiAkKERFUERJUikvJCouVHBvICQoREVQRElSKS8kKi5QbwotK0BBTURFUF9UUlVFQEBhbV9fZmFz dGRlcENYWF9GQUxTRUAJc291cmNlPSckPCcgb2JqZWN0PSckQCcgbGlidG9vbD1ubyBAQU1ERVBC QUNLU0xBU0hACi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChE RVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACi0rQGFtX19m YXN0ZGVwQ1hYX0ZBTFNFQAkkKENYWENPTVBJTEUpIC1jIC1vICRAIGAkKENZR1BBVEhfVykgJyQ8 J2AKLSsKLSsuY3BwLmxvOgotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKExUQ1hYQ09NUElMRSkg LU1UICRAIC1NRCAtTVAgLU1GICQoREVQRElSKS8kKi5UcG8gLWMgLW8gJEAgJDwKLStAYW1fX2Zh c3RkZXBDWFhfVFJVRUAJbXYgLWYgJChERVBESVIpLyQqLlRwbyAkKERFUERJUikvJCouUGxvCi0r QEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQ8JyBvYmplY3Q9JyRA JyBsaWJ0b29sPXllcyBAQU1ERVBCQUNLU0xBU0hACi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVw Q1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1E RVBCQUNLU0xBU0hACi0rQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKExUQ1hYQ09NUElMRSkgLWMg LW8gJEAgJDwKLSsKLSt0ZXN0X29yYWNsZS10ZXN0LW9yYWNsZS5vOiAkKHRvcF9zcmNkaXIpL3Nv Y2kvYmFja2VuZHMvb3JhY2xlL3Rlc3QvdGVzdC1vcmFjbGUuY3BwCi0rQGFtX19mYXN0ZGVwQ1hY X1RSVUVACSQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChB TV9DUFBGTEFHUykgJChDUFBGTEFHUykgJCh0ZXN0X29yYWNsZV9DWFhGTEFHUykgJChDWFhGTEFH UykgLU1UIHRlc3Rfb3JhY2xlLXRlc3Qtb3JhY2xlLm8gLU1EIC1NUCAtTUYgJChERVBESVIpL3Rl c3Rfb3JhY2xlLXRlc3Qtb3JhY2xlLlRwbyAtYyAtbyB0ZXN0X29yYWNsZS10ZXN0LW9yYWNsZS5v IGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3Rlc3QvdGVzdC1v cmFjbGUuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2Vu ZHMvb3JhY2xlL3Rlc3QvdGVzdC1vcmFjbGUuY3BwCi0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACW12 IC1mICQoREVQRElSKS90ZXN0X29yYWNsZS10ZXN0LW9yYWNsZS5UcG8gJChERVBESVIpL3Rlc3Rf b3JhY2xlLXRlc3Qtb3JhY2xlLlBvCi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNF QAlzb3VyY2U9JyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvdGVzdC90ZXN0LW9y YWNsZS5jcHAnIG9iamVjdD0ndGVzdF9vcmFjbGUtdGVzdC1vcmFjbGUubycgbGlidG9vbD1ubyBA QU1ERVBCQUNLU0xBU0hACi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBE SVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACi0r QGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMp ICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQodGVzdF9vcmFjbGVfQ1hY RkxBR1MpICQoQ1hYRkxBR1MpIC1jIC1vIHRlc3Rfb3JhY2xlLXRlc3Qtb3JhY2xlLm8gYHRlc3Qg LWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvdGVzdC90ZXN0LW9yYWNsZS5j cHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFj bGUvdGVzdC90ZXN0LW9yYWNsZS5jcHAKLSsKLSt0ZXN0X29yYWNsZS10ZXN0LW9yYWNsZS5vYmo6 ICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvdGVzdC90ZXN0LW9yYWNsZS5jcHAK LStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVT KSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKHRlc3Rfb3JhY2xlX0NY WEZMQUdTKSAkKENYWEZMQUdTKSAtTVQgdGVzdF9vcmFjbGUtdGVzdC1vcmFjbGUub2JqIC1NRCAt TVAgLU1GICQoREVQRElSKS90ZXN0X29yYWNsZS10ZXN0LW9yYWNsZS5UcG8gLWMgLW8gdGVzdF9v cmFjbGUtdGVzdC1vcmFjbGUub2JqIGBpZiB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFj a2VuZHMvb3JhY2xlL3Rlc3QvdGVzdC1vcmFjbGUuY3BwJzsgdGhlbiAkKENZR1BBVEhfVykgJyQo dG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvdGVzdC90ZXN0LW9yYWNsZS5jcHAnOyBl bHNlICQoQ1lHUEFUSF9XKSAnJChzcmNkaXIpLyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9v cmFjbGUvdGVzdC90ZXN0LW9yYWNsZS5jcHAnOyBmaWAKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJ bXYgLWYgJChERVBESVIpL3Rlc3Rfb3JhY2xlLXRlc3Qtb3JhY2xlLlRwbyAkKERFUERJUikvdGVz dF9vcmFjbGUtdGVzdC1vcmFjbGUuUG8KLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFM U0VACXNvdXJjZT0nJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS90ZXN0L3Rlc3Qt b3JhY2xlLmNwcCcgb2JqZWN0PSd0ZXN0X29yYWNsZS10ZXN0LW9yYWNsZS5vYmonIGxpYnRvb2w9 bm8gQEFNREVQQkFDS1NMQVNIQAotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJ REVQRElSPSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNI QAotK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xV REVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKHRlc3Rfb3JhY2xl X0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtYyAtbyB0ZXN0X29yYWNsZS10ZXN0LW9yYWNsZS5vYmog YGlmIHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvdGVzdC90ZXN0 LW9yYWNsZS5jcHAnOyB0aGVuICQoQ1lHUEFUSF9XKSAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tl bmRzL29yYWNsZS90ZXN0L3Rlc3Qtb3JhY2xlLmNwcCc7IGVsc2UgJChDWUdQQVRIX1cpICckKHNy Y2RpcikvJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS90ZXN0L3Rlc3Qtb3JhY2xl LmNwcCc7IGZpYAotKwotK21vc3RseWNsZWFuLWxpYnRvb2w6Ci0rCS1ybSAtZiAqLmxvCi0rCi0r Y2xlYW4tbGlidG9vbDoKLSsJLXJtIC1yZiAubGlicyBfbGlicwotKwotK0lEOiAkKEhFQURFUlMp ICQoU09VUkNFUykgJChMSVNQKSAkKFRBR1NfRklMRVMpCi0rCWxpc3Q9JyQoU09VUkNFUykgJChI RUFERVJTKSAkKExJU1ApICQoVEFHU19GSUxFUyknOyBcCi0rCXVuaXF1ZT1gZm9yIGkgaW4gJCRs aXN0OyBkbyBcCi0rCSAgICBpZiB0ZXN0IC1mICIkJGkiOyB0aGVuIGVjaG8gJCRpOyBlbHNlIGVj aG8gJChzcmNkaXIpLyQkaTsgZmk7IFwKLSsJICBkb25lIHwgXAotKwkgICQoQVdLKSAneyBmaWxl c1skJDBdID0gMTsgbm9uZW1wdHkgPSAxOyB9IFwKLSsJICAgICAgRU5EIHsgaWYgKG5vbmVtcHR5 KSB7IGZvciAoaSBpbiBmaWxlcykgcHJpbnQgaTsgfTsgfSdgOyBcCi0rCW1raWQgLWZJRCAkJHVu aXF1ZQotK3RhZ3M6IFRBR1MKLSsKLStUQUdTOiAgJChIRUFERVJTKSAkKFNPVVJDRVMpICAkKFRB R1NfREVQRU5ERU5DSUVTKSBcCi0rCQkkKFRBR1NfRklMRVMpICQoTElTUCkKLSsJdGFncz07IFwK LSsJaGVyZT1gcHdkYDsgXAotKwlsaXN0PSckKFNPVVJDRVMpICQoSEVBREVSUykgICQoTElTUCkg JChUQUdTX0ZJTEVTKSc7IFwKLSsJdW5pcXVlPWBmb3IgaSBpbiAkJGxpc3Q7IGRvIFwKLSsJICAg IGlmIHRlc3QgLWYgIiQkaSI7IHRoZW4gZWNobyAkJGk7IGVsc2UgZWNobyAkKHNyY2RpcikvJCRp OyBmaTsgXAotKwkgIGRvbmUgfCBcCi0rCSAgJChBV0spICd7IGZpbGVzWyQkMF0gPSAxOyBub25l bXB0eSA9IDE7IH0gXAotKwkgICAgICBFTkQgeyBpZiAobm9uZW1wdHkpIHsgZm9yIChpIGluIGZp bGVzKSBwcmludCBpOyB9OyB9J2A7IFwKLSsJaWYgdGVzdCAteiAiJChFVEFHU19BUkdTKSQkdGFn cyQkdW5pcXVlIjsgdGhlbiA6OyBlbHNlIFwKLSsJICB0ZXN0IC1uICIkJHVuaXF1ZSIgfHwgdW5p cXVlPSQkZW1wdHlfZml4OyBcCi0rCSAgJChFVEFHUykgJChFVEFHU0ZMQUdTKSAkKEFNX0VUQUdT RkxBR1MpICQoRVRBR1NfQVJHUykgXAotKwkgICAgJCR0YWdzICQkdW5pcXVlOyBcCi0rCWZpCi0r Y3RhZ3M6IENUQUdTCi0rQ1RBR1M6ICAkKEhFQURFUlMpICQoU09VUkNFUykgICQoVEFHU19ERVBF TkRFTkNJRVMpIFwKLSsJCSQoVEFHU19GSUxFUykgJChMSVNQKQotKwl0YWdzPTsgXAotKwlsaXN0 PSckKFNPVVJDRVMpICQoSEVBREVSUykgICQoTElTUCkgJChUQUdTX0ZJTEVTKSc7IFwKLSsJdW5p cXVlPWBmb3IgaSBpbiAkJGxpc3Q7IGRvIFwKLSsJICAgIGlmIHRlc3QgLWYgIiQkaSI7IHRoZW4g ZWNobyAkJGk7IGVsc2UgZWNobyAkKHNyY2RpcikvJCRpOyBmaTsgXAotKwkgIGRvbmUgfCBcCi0r CSAgJChBV0spICd7IGZpbGVzWyQkMF0gPSAxOyBub25lbXB0eSA9IDE7IH0gXAotKwkgICAgICBF TkQgeyBpZiAobm9uZW1wdHkpIHsgZm9yIChpIGluIGZpbGVzKSBwcmludCBpOyB9OyB9J2A7IFwK LSsJdGVzdCAteiAiJChDVEFHU19BUkdTKSQkdGFncyQkdW5pcXVlIiBcCi0rCSAgfHwgJChDVEFH UykgJChDVEFHU0ZMQUdTKSAkKEFNX0NUQUdTRkxBR1MpICQoQ1RBR1NfQVJHUykgXAotKwkgICAg ICQkdGFncyAkJHVuaXF1ZQotKwotK0dUQUdTOgotKwloZXJlPWAkKGFtX19jZCkgJCh0b3BfYnVp bGRkaXIpICYmIHB3ZGAgXAotKwkgICYmIGNkICQodG9wX3NyY2RpcikgXAotKwkgICYmIGd0YWdz IC1pICQoR1RBR1NfQVJHUykgJCRoZXJlCi0rCi0rZGlzdGNsZWFuLXRhZ3M6Ci0rCS1ybSAtZiBU QUdTIElEIEdUQUdTIEdSVEFHUyBHU1lNUyBHUEFUSCB0YWdzCi0rCi0rZGlzdGRpcjogJChESVNU RklMRVMpCi0rCUBzcmNkaXJzdHJpcD1gZWNobyAiJChzcmNkaXIpIiB8IHNlZCAncy9bXS5bXiQk XFwqXS9cXFxcJi9nJ2A7IFwKLSsJdG9wc3JjZGlyc3RyaXA9YGVjaG8gIiQodG9wX3NyY2Rpciki IHwgc2VkICdzL1tdLlteJCRcXCpdL1xcXFwmL2cnYDsgXAotKwlsaXN0PSckKERJU1RGSUxFUykn OyBcCi0rCSAgZGlzdF9maWxlcz1gZm9yIGZpbGUgaW4gJCRsaXN0OyBkbyBlY2hvICQkZmlsZTsg ZG9uZSB8IFwKLSsJICBzZWQgLWUgInN8XiQkc3JjZGlyc3RyaXAvfHw7dCIgXAotKwkgICAgICAt ZSAic3xeJCR0b3BzcmNkaXJzdHJpcC98JCh0b3BfYnVpbGRkaXIpL3w7dCJgOyBcCi0rCWNhc2Ug JCRkaXN0X2ZpbGVzIGluIFwKLSsJICAqLyopICQoTUtESVJfUCkgYGVjaG8gIiQkZGlzdF9maWxl cyIgfCBcCi0rCQkJICAgc2VkICcvXC8vIWQ7c3xefCQoZGlzdGRpcikvfDtzLC9bXi9dKiQkLCwn IHwgXAotKwkJCSAgIHNvcnQgLXVgIDs7IFwKLSsJZXNhYzsgXAotKwlmb3IgZmlsZSBpbiAkJGRp c3RfZmlsZXM7IGRvIFwKLSsJICBpZiB0ZXN0IC1mICQkZmlsZSB8fCB0ZXN0IC1kICQkZmlsZTsg dGhlbiBkPS47IGVsc2UgZD0kKHNyY2Rpcik7IGZpOyBcCi0rCSAgaWYgdGVzdCAtZCAkJGQvJCRm aWxlOyB0aGVuIFwKLSsJICAgIGRpcj1gZWNobyAiLyQkZmlsZSIgfCBzZWQgLWUgJ3MsL1teL10q JCQsLCdgOyBcCi0rCSAgICBpZiB0ZXN0IC1kICQoc3JjZGlyKS8kJGZpbGUgJiYgdGVzdCAkJGQg IT0gJChzcmNkaXIpOyB0aGVuIFwKLSsJICAgICAgY3AgLXBSICQoc3JjZGlyKS8kJGZpbGUgJChk aXN0ZGlyKSQkZGlyIHx8IGV4aXQgMTsgXAotKwkgICAgZmk7IFwKLSsJICAgIGNwIC1wUiAkJGQv JCRmaWxlICQoZGlzdGRpcikkJGRpciB8fCBleGl0IDE7IFwKLSsJICBlbHNlIFwKLSsJICAgIHRl c3QgLWYgJChkaXN0ZGlyKS8kJGZpbGUgXAotKwkgICAgfHwgY3AgLXAgJCRkLyQkZmlsZSAkKGRp c3RkaXIpLyQkZmlsZSBcCi0rCSAgICB8fCBleGl0IDE7IFwKLSsJICBmaTsgXAotKwlkb25lCi0r Y2hlY2stYW06IGFsbC1hbQotK2NoZWNrOiBjaGVjay1hbQotK2FsbC1hbTogTWFrZWZpbGUgJChQ Uk9HUkFNUykKLStpbnN0YWxsZGlyczoKLStpbnN0YWxsOiBpbnN0YWxsLWFtCi0raW5zdGFsbC1l eGVjOiBpbnN0YWxsLWV4ZWMtYW0KLStpbnN0YWxsLWRhdGE6IGluc3RhbGwtZGF0YS1hbQotK3Vu aW5zdGFsbDogdW5pbnN0YWxsLWFtCi0rCi0raW5zdGFsbC1hbTogYWxsLWFtCi0rCUAkKE1BS0Up ICQoQU1fTUFLRUZMQUdTKSBpbnN0YWxsLWV4ZWMtYW0gaW5zdGFsbC1kYXRhLWFtCi0rCi0raW5z dGFsbGNoZWNrOiBpbnN0YWxsY2hlY2stYW0KLStpbnN0YWxsLXN0cmlwOgotKwkkKE1BS0UpICQo QU1fTUFLRUZMQUdTKSBJTlNUQUxMX1BST0dSQU09IiQoSU5TVEFMTF9TVFJJUF9QUk9HUkFNKSIg XAotKwkgIGluc3RhbGxfc2hfUFJPR1JBTT0iJChJTlNUQUxMX1NUUklQX1BST0dSQU0pIiBJTlNU QUxMX1NUUklQX0ZMQUc9LXMgXAotKwkgIGB0ZXN0IC16ICckKFNUUklQKScgfHwgXAotKwkgICAg ZWNobyAiSU5TVEFMTF9QUk9HUkFNX0VOVj1TVFJJUFBST0c9JyQoU1RSSVApJyJgIGluc3RhbGwK LSttb3N0bHljbGVhbi1nZW5lcmljOgotKwotK2NsZWFuLWdlbmVyaWM6Ci0rCi0rZGlzdGNsZWFu LWdlbmVyaWM6Ci0rCS10ZXN0IC16ICIkKENPTkZJR19DTEVBTl9GSUxFUykiIHx8IHJtIC1mICQo Q09ORklHX0NMRUFOX0ZJTEVTKQotKwotK21haW50YWluZXItY2xlYW4tZ2VuZXJpYzoKLSsJQGVj aG8gIlRoaXMgY29tbWFuZCBpcyBpbnRlbmRlZCBmb3IgbWFpbnRhaW5lcnMgdG8gdXNlIgotKwlA ZWNobyAiaXQgZGVsZXRlcyBmaWxlcyB0aGF0IG1heSByZXF1aXJlIHNwZWNpYWwgdG9vbHMgdG8g cmVidWlsZC4iCi0rCS10ZXN0IC16ICIkKE1BSU5UQUlORVJDTEVBTkZJTEVTKSIgfHwgcm0gLWYg JChNQUlOVEFJTkVSQ0xFQU5GSUxFUykKLStjbGVhbjogY2xlYW4tYW0KLSsKLStjbGVhbi1hbTog Y2xlYW4tZ2VuZXJpYyBjbGVhbi1saWJ0b29sIGNsZWFuLW5vaW5zdFBST0dSQU1TIFwKLSsJbW9z dGx5Y2xlYW4tYW0KLSsKLStkaXN0Y2xlYW46IGRpc3RjbGVhbi1hbQotKwktcm0gLXJmIC4vJChE RVBESVIpCi0rCS1ybSAtZiBNYWtlZmlsZQotK2Rpc3RjbGVhbi1hbTogY2xlYW4tYW0gZGlzdGNs ZWFuLWNvbXBpbGUgZGlzdGNsZWFuLWdlbmVyaWMgXAotKwlkaXN0Y2xlYW4tdGFncwotKwotK2R2 aTogZHZpLWFtCi0rCi0rZHZpLWFtOgotKwotK2h0bWw6IGh0bWwtYW0KLSsKLStpbmZvOiBpbmZv LWFtCi0rCi0raW5mby1hbToKLSsKLStpbnN0YWxsLWRhdGEtYW06Ci0rCi0raW5zdGFsbC1kdmk6 IGluc3RhbGwtZHZpLWFtCi0rCi0raW5zdGFsbC1leGVjLWFtOgotKwotK2luc3RhbGwtaHRtbDog aW5zdGFsbC1odG1sLWFtCi0rCi0raW5zdGFsbC1pbmZvOiBpbnN0YWxsLWluZm8tYW0KLSsKLStp bnN0YWxsLW1hbjoKLSsKLStpbnN0YWxsLXBkZjogaW5zdGFsbC1wZGYtYW0KLSsKLStpbnN0YWxs LXBzOiBpbnN0YWxsLXBzLWFtCi0rCi0raW5zdGFsbGNoZWNrLWFtOgotKwotK21haW50YWluZXIt Y2xlYW46IG1haW50YWluZXItY2xlYW4tYW0KLSsJLXJtIC1yZiAuLyQoREVQRElSKQotKwktcm0g LWYgTWFrZWZpbGUKLSttYWludGFpbmVyLWNsZWFuLWFtOiBkaXN0Y2xlYW4tYW0gbWFpbnRhaW5l ci1jbGVhbi1nZW5lcmljCi0rCi0rbW9zdGx5Y2xlYW46IG1vc3RseWNsZWFuLWFtCi0rCi0rbW9z dGx5Y2xlYW4tYW06IG1vc3RseWNsZWFuLWNvbXBpbGUgbW9zdGx5Y2xlYW4tZ2VuZXJpYyBcCi0r CW1vc3RseWNsZWFuLWxpYnRvb2wKLSsKLStwZGY6IHBkZi1hbQotKwotK3BkZi1hbToKLSsKLStw czogcHMtYW0KLSsKLStwcy1hbToKLSsKLSt1bmluc3RhbGwtYW06Ci0rCi0rLk1BS0U6IGluc3Rh bGwtYW0gaW5zdGFsbC1zdHJpcAotKwotKy5QSE9OWTogQ1RBR1MgR1RBR1MgYWxsIGFsbC1hbSBj aGVjayBjaGVjay1hbSBjbGVhbiBjbGVhbi1nZW5lcmljIFwKLSsJY2xlYW4tbGlidG9vbCBjbGVh bi1ub2luc3RQUk9HUkFNUyBjdGFncyBkaXN0Y2xlYW4gXAotKwlkaXN0Y2xlYW4tY29tcGlsZSBk aXN0Y2xlYW4tZ2VuZXJpYyBkaXN0Y2xlYW4tbGlidG9vbCBcCi0rCWRpc3RjbGVhbi10YWdzIGRp c3RkaXIgZHZpIGR2aS1hbSBodG1sIGh0bWwtYW0gaW5mbyBpbmZvLWFtIFwKLSsJaW5zdGFsbCBp bnN0YWxsLWFtIGluc3RhbGwtZGF0YSBpbnN0YWxsLWRhdGEtYW0gaW5zdGFsbC1kdmkgXAotKwlp bnN0YWxsLWR2aS1hbSBpbnN0YWxsLWV4ZWMgaW5zdGFsbC1leGVjLWFtIGluc3RhbGwtaHRtbCBc Ci0rCWluc3RhbGwtaHRtbC1hbSBpbnN0YWxsLWluZm8gaW5zdGFsbC1pbmZvLWFtIGluc3RhbGwt bWFuIFwKLSsJaW5zdGFsbC1wZGYgaW5zdGFsbC1wZGYtYW0gaW5zdGFsbC1wcyBpbnN0YWxsLXBz LWFtIFwKLSsJaW5zdGFsbC1zdHJpcCBpbnN0YWxsY2hlY2sgaW5zdGFsbGNoZWNrLWFtIGluc3Rh bGxkaXJzIFwKLSsJbWFpbnRhaW5lci1jbGVhbiBtYWludGFpbmVyLWNsZWFuLWdlbmVyaWMgbW9z dGx5Y2xlYW4gXAotKwltb3N0bHljbGVhbi1jb21waWxlIG1vc3RseWNsZWFuLWdlbmVyaWMgbW9z dGx5Y2xlYW4tbGlidG9vbCBcCi0rCXBkZiBwZGYtYW0gcHMgcHMtYW0gdGFncyB1bmluc3RhbGwg dW5pbnN0YWxsLWFtCi0rCi0rQFNFVF9NQUtFQAotKwotKyNub2Rpc3RfcGtnaW5jbHVkZV9IRUFE RVJTID0gJChvcmFjbGVfdGVzdF9oX3NvdXJjZXMpCi0rIyBUZWxsIHZlcnNpb25zIFszLjU5LDMu NjMpIG9mIEdOVSBtYWtlIHRvIG5vdCBleHBvcnQgYWxsIHZhcmlhYmxlcy4KLSsjIE90aGVyd2lz ZSBhIHN5c3RlbSBsaW1pdCAoZm9yIFN5c1YgYXQgbGVhc3QpIG1heSBiZSBleGNlZWRlZC4KLSsu Tk9FWFBPUlQ6Ci1kaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9vcmFj bGUvdGVzdC9zb3VyY2VzLm1rIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL29yYWNs ZS90ZXN0L3NvdXJjZXMubWsKLS0tLSBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL29y YWNsZS90ZXN0L3NvdXJjZXMubWsJMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAK LSsrKyBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9vcmFjbGUvdGVzdC9zb3VyY2Vz Lm1rCTIwMDktMDUtMjIgMjI6NTQ6MTkuMDAwMDAwMDAwICswMjAwCi1AQCAtMCwwICsxLDIgQEAK LStvcmFjbGVfdGVzdF9oX3NvdXJjZXMgPQotK29yYWNsZV90ZXN0X2NjX3NvdXJjZXMgPSAkKHRv cF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3Rlc3QvdGVzdC1vcmFjbGUuY3BwCi1kaWZm IC1OdXIgc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9vcmFjbGUvdGVzdC90ZXN0LW9y YWNsZS5jcHAgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvb3JhY2xlL3Rlc3QvdGVz dC1vcmFjbGUuY3BwCi0tLS0gc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9vcmFjbGUv dGVzdC90ZXN0LW9yYWNsZS5jcHAJMjAwOS0wNS0yMyAxMzozNzowOS4wMDAwMDAwMDAgKzAyMDAK LSsrKyBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9vcmFjbGUvdGVzdC90ZXN0LW9y YWNsZS5jcHAJMjAwOS0wNS0yMiAyMjo1NDoxOS4wMDAwMDAwMDAgKzAyMDAKLUBAIC01LDkgKzUs MTcgQEAKLSAvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCi0gLy8KLSAK LS0jaW5jbHVkZSAic29jaS5oIgotLSNpbmNsdWRlICJzb2NpLW9yYWNsZS5oIgotLSNpbmNsdWRl ICJjb21tb24tdGVzdHMuaCIKLSsvLwotKyNpZiBkZWZpbmVkKFNPQ0lfSEVBREVSU19CVVJJRUQp Ci0rIyAgICAgICBpbmNsdWRlIDxzb2NpL2NvcmUvc29jaS5oPgotKyMgICAgICAgaW5jbHVkZSA8 c29jaS9iYWNrZW5kcy9vcmFjbGUvc29jaS1vcmFjbGUuaD4KLSsjICAgICAgIGluY2x1ZGUgPHNv Y2kvY29yZS90ZXN0L2NvbW1vbi10ZXN0cy5oPgotKyNlbHNlCi0rIwlpbmNsdWRlIDxzb2NpLmg+ Ci0rIwlpbmNsdWRlIDxzb2NpLW9yYWNsZS5oPgotKyMgICAgICAgaW5jbHVkZSA8dGVzdC9jb21t b24tdGVzdHMuaD4KLSsjZW5kaWYKLSsvLwotICNpbmNsdWRlIDxpb3N0cmVhbT4KLSAjaW5jbHVk ZSA8c3RyaW5nPgotICNpbmNsdWRlIDxjYXNzZXJ0PgotZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1w YWNrL3NvY2kvYmFja2VuZHMvb3JhY2xlL3ZlY3Rvci1pbnRvLXR5cGUuY3BwIHNvY2ktMy4wLjBf dHJlcDMwMC9zb2NpL2JhY2tlbmRzL29yYWNsZS92ZWN0b3ItaW50by10eXBlLmNwcAotLS0tIHNv Y2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvb3JhY2xlL3ZlY3Rvci1pbnRvLXR5cGUuY3Bw CTIwMDktMDUtMjMgMTM6Mzc6MDkuMDAwMDAwMDAwICswMjAwCi0rKysgc29jaS0zLjAuMF90cmVw MzAwL3NvY2kvYmFja2VuZHMvb3JhY2xlL3ZlY3Rvci1pbnRvLXR5cGUuY3BwCTIwMDktMDUtMjIg MjI6NTQ6MTkuMDAwMDAwMDAwICswMjAwCi1AQCAtNyw4ICs3LDE0IEBACi0gCi0gI2RlZmluZSBz b2NpX09SQUNMRV9TT1VSQ0UKLSAjaW5jbHVkZSAic29jaS1vcmFjbGUuaCIKLS0jaW5jbHVkZSAi c3RhdGVtZW50LmgiCi0gI2luY2x1ZGUgImVycm9yLmgiCi0rLy8KLSsjaWYgZGVmaW5lZChTT0NJ X0hFQURFUlNfQlVSSUVEKQotKyMgICAgICAgaW5jbHVkZSA8c29jaS9jb3JlL3N0YXRlbWVudC5o PgotKyNlbHNlCi0rIwlpbmNsdWRlIDxzdGF0ZW1lbnQuaD4KLSsjZW5kaWYKLSsvLwotICNpbmNs dWRlIDxjY3R5cGU+Ci0gI2luY2x1ZGUgPGNzdGRpbz4KLSAjaW5jbHVkZSA8Y3N0cmluZz4KLWRp ZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvY29tbW9u LmNwcCBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL2NvbW1vbi5j cHAKLS0tLSBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvY29tbW9u LmNwcAkyMDA5LTA1LTIzIDEzOjM3OjA5LjAwMDAwMDAwMCArMDIwMAotKysrIHNvY2ktMy4wLjBf dHJlcDMwMC9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvY29tbW9uLmNwcAkyMDA5LTA1LTIyIDIy OjU0OjE4LjAwMDAwMDAwMCArMDIwMAotQEAgLTYsNyArNiwxMiBAQAotIC8vCi0gCi0gI2luY2x1 ZGUgImNvbW1vbi5oIgotLSNpbmNsdWRlIDxzb2NpLWJhY2tlbmQuaD4KLSsvLwotKyNpZiBkZWZp bmVkKFNPQ0lfSEVBREVSU19CVVJJRUQpCi0rIyAgICAgICBpbmNsdWRlIDxzb2NpL2NvcmUvc29j aS1iYWNrZW5kLmg+Ci0rI2Vsc2UKLSsjCWluY2x1ZGUgPHNvY2ktYmFja2VuZC5oPgotKyNlbmRp ZgotIC8vCi0gI2luY2x1ZGUgPGNzdGRsaWI+Ci0gI2luY2x1ZGUgPGNzdGRpbz4KLWRpZmYgLU51 ciBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvTWFrZWZpbGUuYW0g c29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9NYWtlZmlsZS5hbQot LS0tIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9NYWtlZmlsZS5h bQkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAotKysrIHNvY2ktMy4wLjBfdHJl cDMwMC9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvTWFrZWZpbGUuYW0JMjAwOS0wNS0yMiAyMjo1 NDoxOC4wMDAwMDAwMDAgKzAyMDAKLUBAIC0wLDAgKzEsMzAgQEAKLSsjIyBiYWNrZW5kcy9wb3N0 Z3Jlc3FsIHN1Yi1kaXJlY3RvcnkKLStpbmNsdWRlICQodG9wX3NyY2RpcikvTWFrZWZpbGUuY29t bW9uCi0raW5jbHVkZSAkKHNyY2Rpcikvc291cmNlcy5tawotKwotK01BSU5UQUlORVJDTEVBTkZJ TEVTID0gTWFrZWZpbGUuaW4KLSsKLStTVUJESVJTID0gLiB0ZXN0Ci0rCi0rI0VYVFJBX0RJU1Rf Rk9SX1NPQ0lfQ09NUEFUSUJJTElUWSA9IC5fY29tbW9uLmgKLSsKLStFWFRSQV9ESVNUID0gJChF WFRSQV9ESVNUX0ZPUl9TT0NJX0NPTVBBVElCSUxJVFkpCi0rCi0raWYgSEFWRV9QT1NUR1JFU1FM Ci0rbGliX0xUTElCUkFSSUVTPSBsaWJzb2NpX3Bvc3RncmVzcWwubGEKLSsKLStsaWJzb2NpX3Bv c3RncmVzcWxfbGFfU09VUkNFUz0gJChiY2tfcG9zdGdyZXNxbF9oX3NvdXJjZXMpICQoYmNrX3Bv c3RncmVzcWxfY2Nfc291cmNlcykgCi0rbGlic29jaV9wb3N0Z3Jlc3FsX2xhX0NYWEZMQUdTID0g JChQT1NUR1JFU1FMX0NGTEFHUykKLStsaWJzb2NpX3Bvc3RncmVzcWxfbGFfTElCQUREID0KLSts aWJzb2NpX3Bvc3RncmVzcWxfbGFfTERGTEFHUyA9IFwKLSsJJChCT09TVF9MSUJTKSAkKEJPT1NU X0RBVEVfVElNRV9MSUIpICQoQk9PU1RfUFJPR1JBTV9PUFRJT05TX0xJQikgXAotKwktdmVyc2lv bi1pbmZvICQoR0VORVJJQ19MSUJSQVJZX1ZFUlNJT04pCi0rCi0rcGtnaW5jbHVkZV9IRUFERVJT ID0gJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvc29jaS1wb3N0Z3Jlc3Fs LmgKLStlbmRpZgotK2lmIFNPQ0lfSEVBREVSU19CVVJJRUQKLStzb2NpX2luY2x1ZGVfZGlyID0g JChpbmNsdWRlZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwKLStlbHNlCi0rc29jaV9pbmNs dWRlX2RpciA9ICQoaW5jbHVkZWRpcikKLStlbmRpZgotK3BrZ2luY2x1ZGVkaXIgPSAkKHNvY2lf aW5jbHVkZV9kaXIpCi1kaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9w b3N0Z3Jlc3FsL01ha2VmaWxlLmJhc2ljIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRz L3Bvc3RncmVzcWwvTWFrZWZpbGUuYmFzaWMKLS0tLSBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2Jh Y2tlbmRzL3Bvc3RncmVzcWwvTWFrZWZpbGUuYmFzaWMJMjAwOS0wNS0yMyAxMzozNzowOS4wMDAw MDAwMDAgKzAyMDAKLSsrKyBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9wb3N0Z3Jl c3FsL01ha2VmaWxlLmJhc2ljCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCi1A QCAtMSw5NSArMCwwIEBACi0tIyBUaGUgZm9sbG93aW5nIHZhcmlhYmxlIGlzIHNwZWNpZmljIHRv IHRoaXMgYmFja2VuZCBhbmQgaXRzIGNvcnJlY3QKLS0jIHZhbHVlcyBtaWdodCBkZXBlbmQgb24g eW91ciBlbnZpcm9ubWVudCAtIGZlZWwgZnJlZSB0byBzZXQgaXQgYWNjb3JkaW5nbHkuCi0tCi0t UEdTUUxJTkNMVURFRElSID0gLUkvdXNyL2luY2x1ZGUKLS0KLS0jIFRoZSByZXN0IG9mIHRoZSBN YWtlZmlsZSBpcyBpbmRlcGVudGVudCBvZiB0aGUgdGFyZ2V0IGVudmlyb25tZW50LgotLQotLUNP TVBJTEVSID0gZysrCi0tQ1hYRkxBR1MgPSAtV2FsbCAtcGVkYW50aWMgLVduby1sb25nLWxvbmcK LS1DWFhGTEFHU1NPID0gJHtDWFhGTEFHU30gLWZQSUMKLS1JTkNMVURFRElSUyA9IC1JLi4vLi4v Y29yZSAke1BHU1FMSU5DTFVERURJUn0KLS0KLS0KLS1PQkpFQ1RTID0gYmxvYi5vIGZhY3Rvcnku byByb3ctaWQubyBzZXNzaW9uLm8gc3RhbmRhcmQtaW50by10eXBlLm8gXAotLQlzdGFuZGFyZC11 c2UtdHlwZS5vIHN0YXRlbWVudC5vIHZlY3Rvci1pbnRvLXR5cGUubyB2ZWN0b3ItdXNlLXR5cGUu byBcCi0tCWNvbW1vbi5vCi0tCi0tT0JKRUNUU1NPID0gYmxvYi1zLm8gZmFjdG9yeS1zLm8gcm93 LWlkLXMubyBzZXNzaW9uLXMubyBcCi0tCXN0YW5kYXJkLWludG8tdHlwZS1zLm8gc3RhbmRhcmQt dXNlLXR5cGUtcy5vIHN0YXRlbWVudC1zLm8gXAotLQl2ZWN0b3ItaW50by10eXBlLXMubyB2ZWN0 b3ItdXNlLXR5cGUtcy5vIGNvbW1vbi1zLm8KLS0KLS0KLS1saWJzb2NpX3Bvc3RncmVzcWwuYSA6 ICR7T0JKRUNUU30KLS0JYXIgcnYgJEAgJD8KLS0Jcm0gKi5vCi0tCi0tCi0tYmxvYi5vIDogYmxv Yi5jcHAKLS0JJHtDT01QSUxFUn0gLWMgJD8gJHtDWFhGTEFHU30gJHtJTkNMVURFRElSU30KLS0K LS1jb21tb24ubyA6IGNvbW1vbi5jcHAKLS0JJHtDT01QSUxFUn0gLWMgJD8gJHtDWFhGTEFHU30g JHtJTkNMVURFRElSU30KLS0KLS1mYWN0b3J5Lm8gOiBmYWN0b3J5LmNwcAotLQkke0NPTVBJTEVS fSAtYyAkPyAke0NYWEZMQUdTfSAke0lOQ0xVREVESVJTfQotLQotLXJvdy1pZC5vIDogcm93LWlk LmNwcAotLQkke0NPTVBJTEVSfSAtYyAkPyAke0NYWEZMQUdTfSAke0lOQ0xVREVESVJTfQotLQot LXNlc3Npb24ubyA6IHNlc3Npb24uY3BwCi0tCSR7Q09NUElMRVJ9IC1jICQ/ICR7Q1hYRkxBR1N9 ICR7SU5DTFVERURJUlN9Ci0tCi0tc3RhbmRhcmQtaW50by10eXBlLm8gOiBzdGFuZGFyZC1pbnRv LXR5cGUuY3BwCi0tCSR7Q09NUElMRVJ9IC1jICQ/ICR7Q1hYRkxBR1N9ICR7SU5DTFVERURJUlN9 Ci0tCi0tc3RhbmRhcmQtdXNlLXR5cGUubyA6IHN0YW5kYXJkLXVzZS10eXBlLmNwcAotLQkke0NP TVBJTEVSfSAtYyAkPyAke0NYWEZMQUdTfSAke0lOQ0xVREVESVJTfQotLQotLXN0YXRlbWVudC5v IDogc3RhdGVtZW50LmNwcAotLQkke0NPTVBJTEVSfSAtYyAkPyAke0NYWEZMQUdTfSAke0lOQ0xV REVESVJTfQotLQotLXZlY3Rvci1pbnRvLXR5cGUubyA6IHZlY3Rvci1pbnRvLXR5cGUuY3BwCi0t CSR7Q09NUElMRVJ9IC1jICQ/ICR7Q1hYRkxBR1N9ICR7SU5DTFVERURJUlN9Ci0tCi0tdmVjdG9y LXVzZS10eXBlLm8gOiB2ZWN0b3ItdXNlLXR5cGUuY3BwCi0tCSR7Q09NUElMRVJ9IC1jICQ/ICR7 Q1hYRkxBR1N9ICR7SU5DTFVERURJUlN9Ci0tCi0tCi0tc2hhcmVkIDogJHtPQkpFQ1RTU099Ci0t CSR7Q09NUElMRVJ9IC1zaGFyZWQgLW8gbGlic29jaV9wb3N0Z3Jlc3FsLnNvICR7T0JKRUNUU1NP fQotLQlybSAqLm8KLS0KLS1ibG9iLXMubyA6IGJsb2IuY3BwCi0tCSR7Q09NUElMRVJ9IC1jIC1v ICRAICQ/ICR7Q1hYRkxBR1NTT30gJHtJTkNMVURFRElSU30KLS0KLS1jb21tb24tcy5vIDogY29t bW9uLmNwcAotLQkke0NPTVBJTEVSfSAtYyAtbyAkQCAkPyAke0NYWEZMQUdTU099ICR7SU5DTFVE RURJUlN9Ci0tCi0tZmFjdG9yeS1zLm8gOiBmYWN0b3J5LmNwcAotLQkke0NPTVBJTEVSfSAtYyAt byAkQCAkPyAke0NYWEZMQUdTU099ICR7SU5DTFVERURJUlN9Ci0tCi0tcm93LWlkLXMubyA6IHJv dy1pZC5jcHAKLS0JJHtDT01QSUxFUn0gLWMgLW8gJEAgJD8gJHtDWFhGTEFHU1NPfSAke0lOQ0xV REVESVJTfQotLQotLXNlc3Npb24tcy5vIDogc2Vzc2lvbi5jcHAKLS0JJHtDT01QSUxFUn0gLWMg LW8gJEAgJD8gJHtDWFhGTEFHU1NPfSAke0lOQ0xVREVESVJTfQotLQotLXN0YW5kYXJkLWludG8t dHlwZS1zLm8gOiBzdGFuZGFyZC1pbnRvLXR5cGUuY3BwCi0tCSR7Q09NUElMRVJ9IC1jIC1vICRA ICQ/ICR7Q1hYRkxBR1NTT30gJHtJTkNMVURFRElSU30KLS0KLS1zdGFuZGFyZC11c2UtdHlwZS1z Lm8gOiBzdGFuZGFyZC11c2UtdHlwZS5jcHAKLS0JJHtDT01QSUxFUn0gLWMgLW8gJEAgJD8gJHtD WFhGTEFHU1NPfSAke0lOQ0xVREVESVJTfQotLQotLXN0YXRlbWVudC1zLm8gOiBzdGF0ZW1lbnQu Y3BwCi0tCSR7Q09NUElMRVJ9IC1jIC1vICRAICQ/ICR7Q1hYRkxBR1NTT30gJHtJTkNMVURFRElS U30KLS0KLS12ZWN0b3ItaW50by10eXBlLXMubyA6IHZlY3Rvci1pbnRvLXR5cGUuY3BwCi0tCSR7 Q09NUElMRVJ9IC1jIC1vICRAICQ/ICR7Q1hYRkxBR1NTT30gJHtJTkNMVURFRElSU30KLS0KLS12 ZWN0b3ItdXNlLXR5cGUtcy5vIDogdmVjdG9yLXVzZS10eXBlLmNwcAotLQkke0NPTVBJTEVSfSAt YyAtbyAkQCAkPyAke0NYWEZMQUdTU099ICR7SU5DTFVERURJUlN9Ci0tCi0tCi0tY2xlYW4gOgot LQlybSAtZiBsaWJzb2NpX3Bvc3RncmVzcWwuYSBsaWJzb2NpX3Bvc3RncmVzcWwuc28KLWRpZmYg LU51ciBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvTWFrZWZpbGUu aW4gc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9NYWtlZmlsZS5p bgotLS0tIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9NYWtlZmls ZS5pbgkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAotKysrIHNvY2ktMy4wLjBf dHJlcDMwMC9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvTWFrZWZpbGUuaW4JMjAwOS0wNS0yMyAx MDowMjowMi4wMDAwMDAwMDAgKzAyMDAKLUBAIC0wLDAgKzEsODEzIEBACi0rIyBNYWtlZmlsZS5p biBnZW5lcmF0ZWQgYnkgYXV0b21ha2UgMS4xMC4yIGZyb20gTWFrZWZpbGUuYW0uCi0rIyBAY29u ZmlndXJlX2lucHV0QAotKwotKyMgQ29weXJpZ2h0IChDKSAxOTk0LCAxOTk1LCAxOTk2LCAxOTk3 LCAxOTk4LCAxOTk5LCAyMDAwLCAyMDAxLCAyMDAyLAotKyMgMjAwMywgMjAwNCwgMjAwNSwgMjAw NiwgMjAwNywgMjAwOCAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCi0rIyBUaGlzIE1h a2VmaWxlLmluIGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24K LSsjIGdpdmVzIHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNvcHkgYW5kL29yIGRpc3RyaWJ1dGUg aXQsCi0rIyB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9ucywgYXMgbG9uZyBhcyB0aGlzIG5v dGljZSBpcyBwcmVzZXJ2ZWQuCi0rCi0rIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4g dGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSsjIGJ1dCBXSVRIT1VUIEFOWSBXQVJS QU5UWSwgdG8gdGhlIGV4dGVudCBwZXJtaXR0ZWQgYnkgbGF3OyB3aXRob3V0Ci0rIyBldmVuIHRo ZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBCi0r IyBQQVJUSUNVTEFSIFBVUlBPU0UuCi0rCi0rQFNFVF9NQUtFQAotKwotKwotK1ZQQVRIID0gQHNy Y2RpckAKLStwa2dkYXRhZGlyID0gJChkYXRhZGlyKS9AUEFDS0FHRUAKLStwa2dsaWJkaXIgPSAk KGxpYmRpcikvQFBBQ0tBR0VACi0rYW1fX2NkID0gQ0RQQVRIPSIkJHtaU0hfVkVSU0lPTisufSQo UEFUSF9TRVBBUkFUT1IpIiAmJiBjZAotK2luc3RhbGxfc2hfREFUQSA9ICQoaW5zdGFsbF9zaCkg LWMgLW0gNjQ0Ci0raW5zdGFsbF9zaF9QUk9HUkFNID0gJChpbnN0YWxsX3NoKSAtYwotK2luc3Rh bGxfc2hfU0NSSVBUID0gJChpbnN0YWxsX3NoKSAtYwotK0lOU1RBTExfSEVBREVSID0gJChJTlNU QUxMX0RBVEEpCi0rdHJhbnNmb3JtID0gJChwcm9ncmFtX3RyYW5zZm9ybV9uYW1lKQotK05PUk1B TF9JTlNUQUxMID0gOgotK1BSRV9JTlNUQUxMID0gOgotK1BPU1RfSU5TVEFMTCA9IDoKLStOT1JN QUxfVU5JTlNUQUxMID0gOgotK1BSRV9VTklOU1RBTEwgPSA6Ci0rUE9TVF9VTklOU1RBTEwgPSA6 Ci0rYnVpbGRfdHJpcGxldCA9IEBidWlsZEAKLStob3N0X3RyaXBsZXQgPSBAaG9zdEAKLStESVNU X0NPTU1PTiA9ICQoYW1fX3BrZ2luY2x1ZGVfSEVBREVSU19ESVNUKSAkKHNyY2RpcikvTWFrZWZp bGUuYW0gXAotKwkkKHNyY2RpcikvTWFrZWZpbGUuaW4gJChzcmNkaXIpL3NvdXJjZXMubWsgXAot KwkkKHRvcF9zcmNkaXIpL01ha2VmaWxlLmNvbW1vbgotK3N1YmRpciA9IHNvY2kvYmFja2VuZHMv cG9zdGdyZXNxbAotK0FDTE9DQUxfTTQgPSAkKHRvcF9zcmNkaXIpL2FjbG9jYWwubTQKLSthbV9f YWNsb2NhbF9tNF9kZXBzID0gJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfYm9vc3QubTQgXAotKwkk KHRvcF9zcmNkaXIpL2NvbmZpZy9heF9teXNxbC5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmln L2F4X29yYWNsZV9vY2kubTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9wb3N0Z3Jlc3Fs Lm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvY3BwdW5pdC5tNCBcCi0rCSQodG9wX3NyY2Rp cikvY29uZmlnL2xpYnRvb2wubTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9sdG9wdGlvbnMu bTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9sdHN1Z2FyLm00IFwKLSsJJCh0b3Bfc3JjZGly KS9jb25maWcvbHR2ZXJzaW9uLm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvbHR+b2Jzb2xl dGUubTQgJCh0b3Bfc3JjZGlyKS9jb25maWd1cmUuYWMKLSthbV9fY29uZmlndXJlX2RlcHMgPSAk KGFtX19hY2xvY2FsX200X2RlcHMpICQoQ09ORklHVVJFX0RFUEVOREVOQ0lFUykgXAotKwkkKEFD TE9DQUxfTTQpCi0rbWtpbnN0YWxsZGlycyA9ICQoaW5zdGFsbF9zaCkgLWQKLStDT05GSUdfSEVB REVSID0gJCh0b3BfYnVpbGRkaXIpL3NvY2kvY29uZmlnLmgKLStDT05GSUdfQ0xFQU5fRklMRVMg PQotK2FtX192cGF0aF9hZGpfc2V0dXAgPSBzcmNkaXJzdHJpcD1gZWNobyAiJChzcmNkaXIpIiB8 IHNlZCAnc3wufC58ZydgOwotK2FtX192cGF0aF9hZGogPSBjYXNlICQkcCBpbiBcCi0rICAgICQo c3JjZGlyKS8qKSBmPWBlY2hvICIkJHAiIHwgc2VkICJzfF4kJHNyY2RpcnN0cmlwL3x8ImA7OyBc Ci0rICAgICopIGY9JCRwOzsgXAotKyAgZXNhYzsKLSthbV9fc3RyaXBfZGlyID0gYGVjaG8gJCRw IHwgc2VkIC1lICdzfF4uKi98fCdgOwotK2FtX19pbnN0YWxsZGlycyA9ICIkKERFU1RESVIpJChs aWJkaXIpIiAiJChERVNURElSKSQocGtnaW5jbHVkZWRpcikiCi0rbGliTFRMSUJSQVJJRVNfSU5T VEFMTCA9ICQoSU5TVEFMTCkKLStMVExJQlJBUklFUyA9ICQobGliX0xUTElCUkFSSUVTKQotK2xp YnNvY2lfcG9zdGdyZXNxbF9sYV9ERVBFTkRFTkNJRVMgPQotK2FtX19saWJzb2NpX3Bvc3RncmVz cWxfbGFfU09VUkNFU19ESVNUID0gIFwKLSsJJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bv c3RncmVzcWwvY29tbW9uLmggXAotKwkkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdy ZXNxbC9zb2NpLXBvc3RncmVzcWwuaCBcCi0rCSQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9w b3N0Z3Jlc3FsL2Jsb2IuY3BwIFwKLSsJJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3Rn cmVzcWwvY29tbW9uLmNwcCBcCi0rCSQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jl c3FsL2ZhY3RvcnkuY3BwIFwKLSsJJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVz cWwvcm93LWlkLmNwcCBcCi0rCSQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3Fs L3Nlc3Npb24uY3BwIFwKLSsJJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwv c3RhbmRhcmQtaW50by10eXBlLmNwcCBcCi0rCSQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9w b3N0Z3Jlc3FsL3N0YW5kYXJkLXVzZS10eXBlLmNwcCBcCi0rCSQodG9wX3NyY2Rpcikvc29jaS9i YWNrZW5kcy9wb3N0Z3Jlc3FsL3N0YXRlbWVudC5jcHAgXAotKwkkKHRvcF9zcmNkaXIpL3NvY2kv YmFja2VuZHMvcG9zdGdyZXNxbC92ZWN0b3ItaW50by10eXBlLmNwcCBcCi0rCSQodG9wX3NyY2Rp cikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3ZlY3Rvci11c2UtdHlwZS5jcHAKLSthbV9fb2Jq ZWN0c18xID0KLSthbV9fb2JqZWN0c18yID0gbGlic29jaV9wb3N0Z3Jlc3FsX2xhLWJsb2IubG8g XAotKwlsaWJzb2NpX3Bvc3RncmVzcWxfbGEtY29tbW9uLmxvIFwKLSsJbGlic29jaV9wb3N0Z3Jl c3FsX2xhLWZhY3RvcnkubG8gXAotKwlsaWJzb2NpX3Bvc3RncmVzcWxfbGEtcm93LWlkLmxvIFwK LSsJbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXNlc3Npb24ubG8gXAotKwlsaWJzb2NpX3Bvc3RncmVz cWxfbGEtc3RhbmRhcmQtaW50by10eXBlLmxvIFwKLSsJbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXN0 YW5kYXJkLXVzZS10eXBlLmxvIFwKLSsJbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXN0YXRlbWVudC5s byBcCi0rCWxpYnNvY2lfcG9zdGdyZXNxbF9sYS12ZWN0b3ItaW50by10eXBlLmxvIFwKLSsJbGli c29jaV9wb3N0Z3Jlc3FsX2xhLXZlY3Rvci11c2UtdHlwZS5sbwotK0BIQVZFX1BPU1RHUkVTUUxf VFJVRUBhbV9saWJzb2NpX3Bvc3RncmVzcWxfbGFfT0JKRUNUUyA9ICBcCi0rQEhBVkVfUE9TVEdS RVNRTF9UUlVFQAkkKGFtX19vYmplY3RzXzEpICQoYW1fX29iamVjdHNfMikKLStsaWJzb2NpX3Bv c3RncmVzcWxfbGFfT0JKRUNUUyA9ICQoYW1fbGlic29jaV9wb3N0Z3Jlc3FsX2xhX09CSkVDVFMp Ci0rbGlic29jaV9wb3N0Z3Jlc3FsX2xhX0xJTksgPSAkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFN X0xJQlRPT0xGTEFHUykgXAotKwkkKExJQlRPT0xGTEFHUykgLS1tb2RlPWxpbmsgJChDWFhMRCkg XAotKwkkKGxpYnNvY2lfcG9zdGdyZXNxbF9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgXAotKwkk KGxpYnNvY2lfcG9zdGdyZXNxbF9sYV9MREZMQUdTKSAkKExERkxBR1MpIC1vICRACi0rQEhBVkVf UE9TVEdSRVNRTF9UUlVFQGFtX2xpYnNvY2lfcG9zdGdyZXNxbF9sYV9ycGF0aCA9IC1ycGF0aCBc Ci0rQEhBVkVfUE9TVEdSRVNRTF9UUlVFQAkkKGxpYmRpcikKLStERUZBVUxUX0lOQ0xVREVTID0g LUkuQGFtX19pc3JjQCAtSSQodG9wX2J1aWxkZGlyKS9zb2NpCi0rZGVwY29tcCA9ICQoU0hFTEwp ICQodG9wX3NyY2RpcikvY29uZmlnL2RlcGNvbXAKLSthbV9fZGVwZmlsZXNfbWF5YmUgPSBkZXBm aWxlcwotK0NYWENPTVBJTEUgPSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQo SU5DTFVERVMpIFwKLSsJJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChBTV9DWFhGTEFHUykg JChDWFhGTEFHUykKLStMVENYWENPTVBJTEUgPSAkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJ QlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIFwKLSsJLS1tb2RlPWNvbXBpbGUgJChDWFgpICQo REVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSBcCi0rCSQoQU1fQ1BQRkxBR1Mp ICQoQ1BQRkxBR1MpICQoQU1fQ1hYRkxBR1MpICQoQ1hYRkxBR1MpCi0rQ1hYTEQgPSAkKENYWCkK LStDWFhMSU5LID0gJChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElC VE9PTEZMQUdTKSBcCi0rCS0tbW9kZT1saW5rICQoQ1hYTEQpICQoQU1fQ1hYRkxBR1MpICQoQ1hY RkxBR1MpICQoQU1fTERGTEFHUykgXAotKwkkKExERkxBR1MpIC1vICRACi0rQ09NUElMRSA9ICQo Q0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdT KSBcCi0rCSQoQ1BQRkxBR1MpICQoQU1fQ0ZMQUdTKSAkKENGTEFHUykKLStMVENPTVBJTEUgPSAk KExJQlRPT0wpIC0tdGFnPUNDICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgXAot KwktLW1vZGU9Y29tcGlsZSAkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNM VURFUykgXAotKwkkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKEFNX0NGTEFHUykgJChDRkxB R1MpCi0rQ0NMRCA9ICQoQ0MpCi0rTElOSyA9ICQoTElCVE9PTCkgLS10YWc9Q0MgJChBTV9MSUJU T09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSBcCi0rCS0tbW9kZT1saW5rICQoQ0NMRCkgJChBTV9D RkxBR1MpICQoQ0ZMQUdTKSAkKEFNX0xERkxBR1MpIFwKLSsJJChMREZMQUdTKSAtbyAkQAotK1NP VVJDRVMgPSAkKGxpYnNvY2lfcG9zdGdyZXNxbF9sYV9TT1VSQ0VTKQotK0RJU1RfU09VUkNFUyA9 ICQoYW1fX2xpYnNvY2lfcG9zdGdyZXNxbF9sYV9TT1VSQ0VTX0RJU1QpCi0rUkVDVVJTSVZFX1RB UkdFVFMgPSBhbGwtcmVjdXJzaXZlIGNoZWNrLXJlY3Vyc2l2ZSBkdmktcmVjdXJzaXZlIFwKLSsJ aHRtbC1yZWN1cnNpdmUgaW5mby1yZWN1cnNpdmUgaW5zdGFsbC1kYXRhLXJlY3Vyc2l2ZSBcCi0r CWluc3RhbGwtZHZpLXJlY3Vyc2l2ZSBpbnN0YWxsLWV4ZWMtcmVjdXJzaXZlIFwKLSsJaW5zdGFs bC1odG1sLXJlY3Vyc2l2ZSBpbnN0YWxsLWluZm8tcmVjdXJzaXZlIFwKLSsJaW5zdGFsbC1wZGYt cmVjdXJzaXZlIGluc3RhbGwtcHMtcmVjdXJzaXZlIGluc3RhbGwtcmVjdXJzaXZlIFwKLSsJaW5z dGFsbGNoZWNrLXJlY3Vyc2l2ZSBpbnN0YWxsZGlycy1yZWN1cnNpdmUgcGRmLXJlY3Vyc2l2ZSBc Ci0rCXBzLXJlY3Vyc2l2ZSB1bmluc3RhbGwtcmVjdXJzaXZlCi0rYW1fX3BrZ2luY2x1ZGVfSEVB REVSU19ESVNUID0gIFwKLSsJJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwv c29jaS1wb3N0Z3Jlc3FsLmgKLStwa2dpbmNsdWRlSEVBREVSU19JTlNUQUxMID0gJChJTlNUQUxM X0hFQURFUikKLStIRUFERVJTID0gJChwa2dpbmNsdWRlX0hFQURFUlMpCi0rUkVDVVJTSVZFX0NM RUFOX1RBUkdFVFMgPSBtb3N0bHljbGVhbi1yZWN1cnNpdmUgY2xlYW4tcmVjdXJzaXZlCVwKLSsg IGRpc3RjbGVhbi1yZWN1cnNpdmUgbWFpbnRhaW5lci1jbGVhbi1yZWN1cnNpdmUKLStFVEFHUyA9 IGV0YWdzCi0rQ1RBR1MgPSBjdGFncwotK0RJU1RfU1VCRElSUyA9ICQoU1VCRElSUykKLStESVNU RklMRVMgPSAkKERJU1RfQ09NTU9OKSAkKERJU1RfU09VUkNFUykgJChURVhJTkZPUykgJChFWFRS QV9ESVNUKQotK3BrZ2luY2x1ZGVkaXIgPSAkKHNvY2lfaW5jbHVkZV9kaXIpCi0rQUNMT0NBTCA9 IEBBQ0xPQ0FMQAotK0FNVEFSID0gQEFNVEFSQAotK0FSID0gQEFSQAotK0FVVE9DT05GID0gQEFV VE9DT05GQAotK0FVVE9IRUFERVIgPSBAQVVUT0hFQURFUkAKLStBVVRPTUFLRSA9IEBBVVRPTUFL RUAKLStBV0sgPSBAQVdLQAotK0JPT1NUX0NGTEFHUyA9IEBCT09TVF9DRkxBR1NACi0rQk9PU1Rf REFURV9USU1FX0xJQiA9IEBCT09TVF9EQVRFX1RJTUVfTElCQAotK0JPT1NUX0ZJTEVTWVNURU1f TElCID0gQEJPT1NUX0ZJTEVTWVNURU1fTElCQAotK0JPT1NUX0lPU1RSRUFNU19MSUIgPSBAQk9P U1RfSU9TVFJFQU1TX0xJQkAKLStCT09TVF9MSUJTID0gQEJPT1NUX0xJQlNACi0rQk9PU1RfUFJP R1JBTV9PUFRJT05TX0xJQiA9IEBCT09TVF9QUk9HUkFNX09QVElPTlNfTElCQAotK0JPT1NUX1JF R0VYX0xJQiA9IEBCT09TVF9SRUdFWF9MSUJACi0rQk9PU1RfU0VSSUFMSVpBVElPTl9MSUIgPSBA Qk9PU1RfU0VSSUFMSVpBVElPTl9MSUJACi0rQk9PU1RfU0lHTkFMU19MSUIgPSBAQk9PU1RfU0lH TkFMU19MSUJACi0rQk9PU1RfVEhSRUFEX0xJQiA9IEBCT09TVF9USFJFQURfTElCQAotK0JPT1NU X1VOSVRfVEVTVF9GUkFNRVdPUktfTElCID0gQEJPT1NUX1VOSVRfVEVTVF9GUkFNRVdPUktfTElC QAotK0JPT1NUX1ZFUlNJT04gPSBAQk9PU1RfVkVSU0lPTkAKLStCT09TVF9XU0VSSUFMSVpBVElP Tl9MSUIgPSBAQk9PU1RfV1NFUklBTElaQVRJT05fTElCQAotK0NDID0gQENDQAotK0NDREVQTU9E RSA9IEBDQ0RFUE1PREVACi0rQ0ZMQUdTID0gQENGTEFHU0AKLStDUFAgPSBAQ1BQQAotK0NQUEZM QUdTID0gQENQUEZMQUdTQAotK0NQUFVOSVRfQ0ZMQUdTID0gQENQUFVOSVRfQ0ZMQUdTQAotK0NQ UFVOSVRfQ09ORklHID0gQENQUFVOSVRfQ09ORklHQAotK0NQUFVOSVRfTElCUyA9IEBDUFBVTklU X0xJQlNACi0rQ1BQVU5JVF9WRVJTSU9OID0gQENQUFVOSVRfVkVSU0lPTkAKLStDWFggPSBAQ1hY QAotK0NYWENQUCA9IEBDWFhDUFBACi0rQ1hYREVQTU9ERSA9IEBDWFhERVBNT0RFQAotK0NYWEZM QUdTID0gQENYWEZMQUdTQAotK0NZR1BBVEhfVyA9IEBDWUdQQVRIX1dACi0rREVGUyA9IEBERUZT QAotK0RFUERJUiA9IEBERVBESVJACi0rRFNZTVVUSUwgPSBARFNZTVVUSUxACi0rRFVNUEJJTiA9 IEBEVU1QQklOQAotK0VDSE9fQyA9IEBFQ0hPX0NACi0rRUNIT19OID0gQEVDSE9fTkAKLStFQ0hP X1QgPSBARUNIT19UQAotK0VHUkVQID0gQEVHUkVQQAotK0VYRUVYVCA9IEBFWEVFWFRACi0rRkdS RVAgPSBARkdSRVBACi0rR0VORVJJQ19MSUJSQVJZX1ZFUlNJT04gPSBAR0VORVJJQ19MSUJSQVJZ X1ZFUlNJT05ACi0rR1JFUCA9IEBHUkVQQAotK0lOU1RBTEwgPSBASU5TVEFMTEAKLStJTlNUQUxM X0RBVEEgPSBASU5TVEFMTF9EQVRBQAotK0lOU1RBTExfUFJPR1JBTSA9IEBJTlNUQUxMX1BST0dS QU1ACi0rSU5TVEFMTF9TQ1JJUFQgPSBASU5TVEFMTF9TQ1JJUFRACi0rSU5TVEFMTF9TVFJJUF9Q Uk9HUkFNID0gQElOU1RBTExfU1RSSVBfUFJPR1JBTUAKLStMRCA9IEBMREAKLStMREZMQUdTID0g QExERkxBR1NACi0rTElCT0JKUyA9IEBMSUJPQkpTQAotK0xJQlMgPSBATElCU0AKLStMSUJUT09M ID0gQExJQlRPT0xACi0rTElQTyA9IEBMSVBPQAotK0xOX1MgPSBATE5fU0AKLStMVExJQk9CSlMg PSBATFRMSUJPQkpTQAotK01BS0VJTkZPID0gQE1BS0VJTkZPQAotK01LRElSX1AgPSBATUtESVJf UEAKLStNWVNRTF9DRkxBR1MgPSBATVlTUUxfQ0ZMQUdTQAotK01ZU1FMX0NPTkZJRyA9IEBNWVNR TF9DT05GSUdACi0rTVlTUUxfRElSUyA9IEBNWVNRTF9ESVJTQAotK01ZU1FMX0xERkxBR1MgPSBA TVlTUUxfTERGTEFHU0AKLStNWVNRTF9WRVJTSU9OID0gQE1ZU1FMX1ZFUlNJT05ACi0rTk0gPSBA Tk1ACi0rTk1FRElUID0gQE5NRURJVEAKLStPQkpEVU1QID0gQE9CSkRVTVBACi0rT0JKRVhUID0g QE9CSkVYVEAKLStPUkFDTEVfRElSUyA9IEBPUkFDTEVfRElSU0AKLStPUkFDTEVfT0NJX0NGTEFH UyA9IEBPUkFDTEVfT0NJX0NGTEFHU0AKLStPUkFDTEVfT0NJX0xERkxBR1MgPSBAT1JBQ0xFX09D SV9MREZMQUdTQAotK09SQUNMRV9PQ0lfVkVSU0lPTiA9IEBPUkFDTEVfT0NJX1ZFUlNJT05ACi0r T1RPT0wgPSBAT1RPT0xACi0rT1RPT0w2NCA9IEBPVE9PTDY0QAotK1BBQ0tBR0UgPSBAUEFDS0FH RUAKLStQQUNLQUdFX0JVR1JFUE9SVCA9IEBQQUNLQUdFX0JVR1JFUE9SVEAKLStQQUNLQUdFX05B TUUgPSBAUEFDS0FHRV9OQU1FQAotK1BBQ0tBR0VfU1RSSU5HID0gQFBBQ0tBR0VfU1RSSU5HQAot K1BBQ0tBR0VfVEFSTkFNRSA9IEBQQUNLQUdFX1RBUk5BTUVACi0rUEFDS0FHRV9WRVJTSU9OID0g QFBBQ0tBR0VfVkVSU0lPTkAKLStQQVRIX1NFUEFSQVRPUiA9IEBQQVRIX1NFUEFSQVRPUkAKLStQ RVJMID0gQFBFUkxACi0rUEdfQ09ORklHID0gQFBHX0NPTkZJR0AKLStQT1NUR1JFU1FMX0NGTEFH UyA9IEBQT1NUR1JFU1FMX0NGTEFHU0AKLStQT1NUR1JFU1FMX0RJUlMgPSBAUE9TVEdSRVNRTF9E SVJTQAotK1BPU1RHUkVTUUxfTERGTEFHUyA9IEBQT1NUR1JFU1FMX0xERkxBR1NACi0rUE9TVEdS RVNRTF9WRVJTSU9OID0gQFBPU1RHUkVTUUxfVkVSU0lPTkAKLStSQU5MSUIgPSBAUkFOTElCQAot K1JQTV9SRUxFQVNFID0gQFJQTV9SRUxFQVNFQAotK1NFRCA9IEBTRURACi0rU0VUX01BS0UgPSBA U0VUX01BS0VACi0rU0hFTEwgPSBAU0hFTExACi0rU09DSV9IRUFERVJTX0JVUklFRCA9IEBTT0NJ X0hFQURFUlNfQlVSSUVEQAotK1NPQ0lfTVlTUUxfSEVBREVSU19CVVJJRUQgPSBAU09DSV9NWVNR TF9IRUFERVJTX0JVUklFREAKLStTT0NJX1BPU1RHUkVTUUxfSEVBREVSU19CVVJJRUQgPSBAU09D SV9QT1NUR1JFU1FMX0hFQURFUlNfQlVSSUVEQAotK1NUUklQID0gQFNUUklQQAotK1VQTE9BRF9D T01NQU5EID0gQFVQTE9BRF9DT01NQU5EQAotK1ZFUlNJT04gPSBAVkVSU0lPTkAKLSthYnNfYnVp bGRkaXIgPSBAYWJzX2J1aWxkZGlyQAotK2Fic19zcmNkaXIgPSBAYWJzX3NyY2RpckAKLSthYnNf dG9wX2J1aWxkZGlyID0gQGFic190b3BfYnVpbGRkaXJACi0rYWJzX3RvcF9zcmNkaXIgPSBAYWJz X3RvcF9zcmNkaXJACi0rYWNfY3RfQ0MgPSBAYWNfY3RfQ0NACi0rYWNfY3RfQ1hYID0gQGFjX2N0 X0NYWEAKLSthY19jdF9EVU1QQklOID0gQGFjX2N0X0RVTVBCSU5ACi0rYW1fX2luY2x1ZGUgPSBA YW1fX2luY2x1ZGVACi0rYW1fX2xlYWRpbmdfZG90ID0gQGFtX19sZWFkaW5nX2RvdEAKLSthbV9f cXVvdGUgPSBAYW1fX3F1b3RlQAotK2FtX190YXIgPSBAYW1fX3RhckAKLSthbV9fdW50YXIgPSBA YW1fX3VudGFyQAotK2JpbmRpciA9IEBiaW5kaXJACi0rYnVpbGQgPSBAYnVpbGRACi0rYnVpbGRf YWxpYXMgPSBAYnVpbGRfYWxpYXNACi0rYnVpbGRfY3B1ID0gQGJ1aWxkX2NwdUAKLStidWlsZF9v cyA9IEBidWlsZF9vc0AKLStidWlsZF92ZW5kb3IgPSBAYnVpbGRfdmVuZG9yQAotK2J1aWxkZGly ID0gQGJ1aWxkZGlyQAotK2RhdGFkaXIgPSBAZGF0YWRpckAKLStkYXRhcm9vdGRpciA9IEBkYXRh cm9vdGRpckAKLStkaWZmX29rID0gQGRpZmZfb2tACi0rZG9jZGlyID0gQGRvY2RpckAKLStkb3h5 Z2VuX29rID0gQGRveHlnZW5fb2tACi0rZHZpZGlyID0gQGR2aWRpckAKLStkdmlwc19vayA9IEBk dmlwc19va0AKLStleGVjX3ByZWZpeCA9IEBleGVjX3ByZWZpeEAKLStnc19vayA9IEBnc19va0AK LStob3N0ID0gQGhvc3RACi0raG9zdF9hbGlhcyA9IEBob3N0X2FsaWFzQAotK2hvc3RfY3B1ID0g QGhvc3RfY3B1QAotK2hvc3Rfb3MgPSBAaG9zdF9vc0AKLStob3N0X3ZlbmRvciA9IEBob3N0X3Zl bmRvckAKLStodG1sZGlyID0gQGh0bWxkaXJACi0raW5jbHVkZWRpciA9IEBpbmNsdWRlZGlyQAot K2luZm9kaXIgPSBAaW5mb2RpckAKLStpbnN0YWxsX3NoID0gQGluc3RhbGxfc2hACi0rbGF0ZXhf b2sgPSBAbGF0ZXhfb2tACi0rbGliZGlyID0gQGxpYmRpckAKLStsaWJleGVjZGlyID0gQGxpYmV4 ZWNkaXJACi0rbG9jYWxlZGlyID0gQGxvY2FsZWRpckAKLStsb2NhbHN0YXRlZGlyID0gQGxvY2Fs c3RhdGVkaXJACi0rbHRfRUNITyA9IEBsdF9FQ0hPQAotK21hbmRpciA9IEBtYW5kaXJACi0rbWtk aXJfcCA9IEBta2Rpcl9wQAotK29sZGluY2x1ZGVkaXIgPSBAb2xkaW5jbHVkZWRpckAKLStwZGZk aXIgPSBAcGRmZGlyQAotK3ByZWZpeCA9IEBwcmVmaXhACi0rcHJvZ3JhbV90cmFuc2Zvcm1fbmFt ZSA9IEBwcm9ncmFtX3RyYW5zZm9ybV9uYW1lQAotK3BzZGlyID0gQHBzZGlyQAotK3NiaW5kaXIg PSBAc2JpbmRpckAKLStzZWRfb2sgPSBAc2VkX29rQAotK3NoYXJlZHN0YXRlZGlyID0gQHNoYXJl ZHN0YXRlZGlyQAotK3NyY2RpciA9IEBzcmNkaXJACi0rc3lzY29uZmRpciA9IEBzeXNjb25mZGly QAotK3RhcmdldF9hbGlhcyA9IEB0YXJnZXRfYWxpYXNACi0rdG9wX2J1aWxkX3ByZWZpeCA9IEB0 b3BfYnVpbGRfcHJlZml4QAotK3RvcF9idWlsZGRpciA9IEB0b3BfYnVpbGRkaXJACi0rdG9wX3Ny Y2RpciA9IEB0b3Bfc3JjZGlyQAotK0FNX0NQUEZMQUdTID0gLUkkKHRvcF9idWlsZGRpcikgLUkk KHRvcF9zcmNkaXIpCi0rYmNrX3Bvc3RncmVzcWxfaF9zb3VyY2VzID0gXAotKyAgICAgICAgJCh0 b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvY29tbW9uLmggXAotKyAgICAgICAg JCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvc29jaS1wb3N0Z3Jlc3FsLmgK LSsKLStiY2tfcG9zdGdyZXNxbF9jY19zb3VyY2VzID0gXAotKyAgICAgICAgJCh0b3Bfc3JjZGly KS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvYmxvYi5jcHAgXAotKyAgICAgICAgJCh0b3Bfc3Jj ZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvY29tbW9uLmNwcCBcCi0rICAgICAgICAkKHRv cF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9mYWN0b3J5LmNwcCBcCi0rICAgICAg ICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9yb3ctaWQuY3BwIFwKLSsg ICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Nlc3Npb24uY3Bw IFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3N0YW5k YXJkLWludG8tdHlwZS5jcHAgXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRz L3Bvc3RncmVzcWwvc3RhbmRhcmQtdXNlLXR5cGUuY3BwIFwKLSsgICAgICAgICQodG9wX3NyY2Rp cikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3N0YXRlbWVudC5jcHAgXAotKyAgICAgICAgJCh0 b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvdmVjdG9yLWludG8tdHlwZS5jcHAg XAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvdmVjdG9y LXVzZS10eXBlLmNwcAotKwotK01BSU5UQUlORVJDTEVBTkZJTEVTID0gTWFrZWZpbGUuaW4KLStT VUJESVJTID0gLiB0ZXN0Ci0rCi0rI0VYVFJBX0RJU1RfRk9SX1NPQ0lfQ09NUEFUSUJJTElUWSA9 IC5fY29tbW9uLmgKLStFWFRSQV9ESVNUID0gJChFWFRSQV9ESVNUX0ZPUl9TT0NJX0NPTVBBVElC SUxJVFkpCi0rQEhBVkVfUE9TVEdSRVNRTF9UUlVFQGxpYl9MVExJQlJBUklFUyA9IGxpYnNvY2lf cG9zdGdyZXNxbC5sYQotK0BIQVZFX1BPU1RHUkVTUUxfVFJVRUBsaWJzb2NpX3Bvc3RncmVzcWxf bGFfU09VUkNFUyA9ICQoYmNrX3Bvc3RncmVzcWxfaF9zb3VyY2VzKSAkKGJja19wb3N0Z3Jlc3Fs X2NjX3NvdXJjZXMpIAotK0BIQVZFX1BPU1RHUkVTUUxfVFJVRUBsaWJzb2NpX3Bvc3RncmVzcWxf bGFfQ1hYRkxBR1MgPSAkKFBPU1RHUkVTUUxfQ0ZMQUdTKQotK0BIQVZFX1BPU1RHUkVTUUxfVFJV RUBsaWJzb2NpX3Bvc3RncmVzcWxfbGFfTElCQUREID0gCi0rQEhBVkVfUE9TVEdSRVNRTF9UUlVF QGxpYnNvY2lfcG9zdGdyZXNxbF9sYV9MREZMQUdTID0gXAotK0BIQVZFX1BPU1RHUkVTUUxfVFJV RUAJJChCT09TVF9MSUJTKSAkKEJPT1NUX0RBVEVfVElNRV9MSUIpICQoQk9PU1RfUFJPR1JBTV9P UFRJT05TX0xJQikgXAotK0BIQVZFX1BPU1RHUkVTUUxfVFJVRUAJLXZlcnNpb24taW5mbyAkKEdF TkVSSUNfTElCUkFSWV9WRVJTSU9OKQotKwotK0BIQVZFX1BPU1RHUkVTUUxfVFJVRUBwa2dpbmNs dWRlX0hFQURFUlMgPSAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9zb2Np LXBvc3RncmVzcWwuaAotK0BTT0NJX0hFQURFUlNfQlVSSUVEX0ZBTFNFQHNvY2lfaW5jbHVkZV9k aXIgPSAkKGluY2x1ZGVkaXIpCi0rQFNPQ0lfSEVBREVSU19CVVJJRURfVFJVRUBzb2NpX2luY2x1 ZGVfZGlyID0gJChpbmNsdWRlZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwKLSthbGw6IGFs bC1yZWN1cnNpdmUKLSsKLSsuU1VGRklYRVM6Ci0rLlNVRkZJWEVTOiAuY3BwIC5sbyAubyAub2Jq Ci0rJChzcmNkaXIpL01ha2VmaWxlLmluOiAgJChzcmNkaXIpL01ha2VmaWxlLmFtICQodG9wX3Ny Y2RpcikvTWFrZWZpbGUuY29tbW9uICQoc3JjZGlyKS9zb3VyY2VzLm1rICQoYW1fX2NvbmZpZ3Vy ZV9kZXBzKQotKwlAZm9yIGRlcCBpbiAkPzsgZG8gXAotKwkgIGNhc2UgJyQoYW1fX2NvbmZpZ3Vy ZV9kZXBzKScgaW4gXAotKwkgICAgKiQkZGVwKikgXAotKwkgICAgICAoIGNkICQodG9wX2J1aWxk ZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaCApIFwKLSsJICAgICAg ICAmJiB7IGlmIHRlc3QgLWYgJEA7IHRoZW4gZXhpdCAwOyBlbHNlIGJyZWFrOyBmaTsgfTsgXAot KwkgICAgICBleGl0IDE7OyBcCi0rCSAgZXNhYzsgXAotKwlkb25lOyBcCi0rCWVjaG8gJyBjZCAk KHRvcF9zcmNkaXIpICYmICQoQVVUT01BS0UpIC0tZ251ICBzb2NpL2JhY2tlbmRzL3Bvc3RncmVz cWwvTWFrZWZpbGUnOyBcCi0rCWNkICQodG9wX3NyY2RpcikgJiYgXAotKwkgICQoQVVUT01BS0Up IC0tZ251ICBzb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvTWFrZWZpbGUKLSsuUFJFQ0lPVVM6IE1h a2VmaWxlCi0rTWFrZWZpbGU6ICQoc3JjZGlyKS9NYWtlZmlsZS5pbiAkKHRvcF9idWlsZGRpcikv Y29uZmlnLnN0YXR1cwotKwlAY2FzZSAnJD8nIGluIFwKLSsJICAqY29uZmlnLnN0YXR1cyopIFwK LSsJICAgIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0t cmVmcmVzaDs7IFwKLSsJICAqKSBcCi0rCSAgICBlY2hvICcgY2QgJCh0b3BfYnVpbGRkaXIpICYm ICQoU0hFTEwpIC4vY29uZmlnLnN0YXR1cyAkKHN1YmRpcikvJEAgJChhbV9fZGVwZmlsZXNfbWF5 YmUpJzsgXAotKwkgICAgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoU0hFTEwpIC4vY29uZmlnLnN0 YXR1cyAkKHN1YmRpcikvJEAgJChhbV9fZGVwZmlsZXNfbWF5YmUpOzsgXAotKwllc2FjOwotKwot KyQodG9wX2J1aWxkZGlyKS9jb25maWcuc3RhdHVzOiAkKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZSAk KENPTkZJR19TVEFUVVNfREVQRU5ERU5DSUVTKQotKwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChN QUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gKLSsKLSskKHRvcF9zcmNkaXIpL2NvbmZp Z3VyZTogICQoYW1fX2NvbmZpZ3VyZV9kZXBzKQotKwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChN QUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gKLSskKEFDTE9DQUxfTTQpOiAgJChhbV9f YWNsb2NhbF9tNF9kZXBzKQotKwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01B S0VGTEFHUykgYW0tLXJlZnJlc2gKLStpbnN0YWxsLWxpYkxUTElCUkFSSUVTOiAkKGxpYl9MVExJ QlJBUklFUykKLSsJQCQoTk9STUFMX0lOU1RBTEwpCi0rCXRlc3QgLXogIiQobGliZGlyKSIgfHwg JChNS0RJUl9QKSAiJChERVNURElSKSQobGliZGlyKSIKLSsJQGxpc3Q9JyQobGliX0xUTElCUkFS SUVTKSc7IGZvciBwIGluICQkbGlzdDsgZG8gXAotKwkgIGlmIHRlc3QgLWYgJCRwOyB0aGVuIFwK LSsJICAgIGY9JChhbV9fc3RyaXBfZGlyKSBcCi0rCSAgICBlY2hvICIgJChMSUJUT09MKSAkKEFN X0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1pbnN0YWxsICQobGliTFRMSUJS QVJJRVNfSU5TVEFMTCkgJChJTlNUQUxMX1NUUklQX0ZMQUcpICckJHAnICckKERFU1RESVIpJChs aWJkaXIpLyQkZiciOyBcCi0rCSAgICAkKExJQlRPT0wpICQoQU1fTElCVE9PTEZMQUdTKSAkKExJ QlRPT0xGTEFHUykgLS1tb2RlPWluc3RhbGwgJChsaWJMVExJQlJBUklFU19JTlNUQUxMKSAkKElO U1RBTExfU1RSSVBfRkxBRykgIiQkcCIgIiQoREVTVERJUikkKGxpYmRpcikvJCRmIjsgXAotKwkg IGVsc2UgOjsgZmk7IFwKLSsJZG9uZQotKwotK3VuaW5zdGFsbC1saWJMVExJQlJBUklFUzoKLSsJ QCQoTk9STUFMX1VOSU5TVEFMTCkKLSsJQGxpc3Q9JyQobGliX0xUTElCUkFSSUVTKSc7IGZvciBw IGluICQkbGlzdDsgZG8gXAotKwkgIHA9JChhbV9fc3RyaXBfZGlyKSBcCi0rCSAgZWNobyAiICQo TElCVE9PTCkgJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9dW5pbnN0 YWxsIHJtIC1mICckKERFU1RESVIpJChsaWJkaXIpLyQkcCciOyBcCi0rCSAgJChMSUJUT09MKSAk KEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT11bmluc3RhbGwgcm0gLWYg IiQoREVTVERJUikkKGxpYmRpcikvJCRwIjsgXAotKwlkb25lCi0rCi0rY2xlYW4tbGliTFRMSUJS QVJJRVM6Ci0rCS10ZXN0IC16ICIkKGxpYl9MVExJQlJBUklFUykiIHx8IHJtIC1mICQobGliX0xU TElCUkFSSUVTKQotKwlAbGlzdD0nJChsaWJfTFRMSUJSQVJJRVMpJzsgZm9yIHAgaW4gJCRsaXN0 OyBkbyBcCi0rCSAgZGlyPSJgZWNobyAkJHAgfCBzZWQgLWUgJ3N8L1teL10qJCR8fCdgIjsgXAot KwkgIHRlc3QgIiQkZGlyIiAhPSAiJCRwIiB8fCBkaXI9LjsgXAotKwkgIGVjaG8gInJtIC1mIFwi JCR7ZGlyfS9zb19sb2NhdGlvbnNcIiI7IFwKLSsJICBybSAtZiAiJCR7ZGlyfS9zb19sb2NhdGlv bnMiOyBcCi0rCWRvbmUKLStsaWJzb2NpX3Bvc3RncmVzcWwubGE6ICQobGlic29jaV9wb3N0Z3Jl c3FsX2xhX09CSkVDVFMpICQobGlic29jaV9wb3N0Z3Jlc3FsX2xhX0RFUEVOREVOQ0lFUykgCi0r CSQobGlic29jaV9wb3N0Z3Jlc3FsX2xhX0xJTkspICQoYW1fbGlic29jaV9wb3N0Z3Jlc3FsX2xh X3JwYXRoKSAkKGxpYnNvY2lfcG9zdGdyZXNxbF9sYV9PQkpFQ1RTKSAkKGxpYnNvY2lfcG9zdGdy ZXNxbF9sYV9MSUJBREQpICQoTElCUykKLSsKLSttb3N0bHljbGVhbi1jb21waWxlOgotKwktcm0g LWYgKi4kKE9CSkVYVCkKLSsKLStkaXN0Y2xlYW4tY29tcGlsZToKLSsJLXJtIC1mICoudGFiLmMK LSsKLStAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvbGli c29jaV9wb3N0Z3Jlc3FsX2xhLWJsb2IuUGxvQGFtX19xdW90ZUAKLStAQU1ERVBfVFJVRUBAYW1f X2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvbGlic29jaV9wb3N0Z3Jlc3FsX2xhLWNv bW1vbi5QbG9AYW1fX3F1b3RlQAotK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90 ZUAuLyQoREVQRElSKS9saWJzb2NpX3Bvc3RncmVzcWxfbGEtZmFjdG9yeS5QbG9AYW1fX3F1b3Rl QAotK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9saWJz b2NpX3Bvc3RncmVzcWxfbGEtcm93LWlkLlBsb0BhbV9fcXVvdGVACi0rQEFNREVQX1RSVUVAQGFt X19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL2xpYnNvY2lfcG9zdGdyZXNxbF9sYS1z ZXNzaW9uLlBsb0BhbV9fcXVvdGVACi0rQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1 b3RlQC4vJChERVBESVIpL2xpYnNvY2lfcG9zdGdyZXNxbF9sYS1zdGFuZGFyZC1pbnRvLXR5cGUu UGxvQGFtX19xdW90ZUAKLStAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8k KERFUERJUikvbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXN0YW5kYXJkLXVzZS10eXBlLlBsb0BhbV9f cXVvdGVACi0rQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIp L2xpYnNvY2lfcG9zdGdyZXNxbF9sYS1zdGF0ZW1lbnQuUGxvQGFtX19xdW90ZUAKLStAQU1ERVBf VFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvbGlic29jaV9wb3N0Z3Jl c3FsX2xhLXZlY3Rvci1pbnRvLXR5cGUuUGxvQGFtX19xdW90ZUAKLStAQU1ERVBfVFJVRUBAYW1f X2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXZl Y3Rvci11c2UtdHlwZS5QbG9AYW1fX3F1b3RlQAotKwotKy5jcHAubzoKLStAYW1fX2Zhc3RkZXBD WFhfVFJVRUAJJChDWFhDT01QSUxFKSAtTVQgJEAgLU1EIC1NUCAtTUYgJChERVBESVIpLyQqLlRw byAtYyAtbyAkQCAkPAotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAltdiAtZiAkKERFUERJUikvJCou VHBvICQoREVQRElSKS8kKi5QbwotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJ c291cmNlPSckPCcgb2JqZWN0PSckQCcgbGlidG9vbD1ubyBAQU1ERVBCQUNLU0xBU0hACi0rQEFN REVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQ TU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACi0rQGFtX19mYXN0ZGVwQ1hYX0ZBTFNF QAkkKENYWENPTVBJTEUpIC1jIC1vICRAICQ8Ci0rCi0rLmNwcC5vYmo6Ci0rQGFtX19mYXN0ZGVw Q1hYX1RSVUVACSQoQ1hYQ09NUElMRSkgLU1UICRAIC1NRCAtTVAgLU1GICQoREVQRElSKS8kKi5U cG8gLWMgLW8gJEAgYCQoQ1lHUEFUSF9XKSAnJDwnYAotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAlt diAtZiAkKERFUERJUikvJCouVHBvICQoREVQRElSKS8kKi5QbwotK0BBTURFUF9UUlVFQEBhbV9f ZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSckPCcgb2JqZWN0PSckQCcgbGlidG9vbD1ubyBAQU1E RVBCQUNLU0xBU0hACi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9 JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACi0rQGFt X19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKENYWENPTVBJTEUpIC1jIC1vICRAIGAkKENZR1BBVEhfVykg JyQ8J2AKLSsKLSsuY3BwLmxvOgotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKExUQ1hYQ09NUElM RSkgLU1UICRAIC1NRCAtTVAgLU1GICQoREVQRElSKS8kKi5UcG8gLWMgLW8gJEAgJDwKLStAYW1f X2Zhc3RkZXBDWFhfVFJVRUAJbXYgLWYgJChERVBESVIpLyQqLlRwbyAkKERFUERJUikvJCouUGxv Ci0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQ8JyBvYmplY3Q9 JyRAJyBsaWJ0b29sPXllcyBAQU1ERVBCQUNLU0xBU0hACi0rQEFNREVQX1RSVUVAQGFtX19mYXN0 ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBA QU1ERVBCQUNLU0xBU0hACi0rQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKExUQ1hYQ09NUElMRSkg LWMgLW8gJEAgJDwKLSsKLStsaWJzb2NpX3Bvc3RncmVzcWxfbGEtYmxvYi5sbzogJCh0b3Bfc3Jj ZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvYmxvYi5jcHAKLStAYW1fX2Zhc3RkZXBDWFhf VFJVRUAJJChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZM QUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQo SU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9wb3N0Z3Jlc3Fs X2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtTVQgbGlic29jaV9wb3N0Z3Jlc3FsX2xhLWJsb2Iu bG8gLU1EIC1NUCAtTUYgJChERVBESVIpL2xpYnNvY2lfcG9zdGdyZXNxbF9sYS1ibG9iLlRwbyAt YyAtbyBsaWJzb2NpX3Bvc3RncmVzcWxfbGEtYmxvYi5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGly KS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvYmxvYi5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8n YCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL2Jsb2IuY3BwCi0rQGFtX19m YXN0ZGVwQ1hYX1RSVUVACW12IC1mICQoREVQRElSKS9saWJzb2NpX3Bvc3RncmVzcWxfbGEtYmxv Yi5UcG8gJChERVBESVIpL2xpYnNvY2lfcG9zdGdyZXNxbF9sYS1ibG9iLlBsbwotK0BBTURFUF9U UlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSckKHRvcF9zcmNkaXIpL3NvY2kvYmFj a2VuZHMvcG9zdGdyZXNxbC9ibG9iLmNwcCcgb2JqZWN0PSdsaWJzb2NpX3Bvc3RncmVzcWxfbGEt YmxvYi5sbycgbGlidG9vbD15ZXMgQEFNREVQQkFDS1NMQVNIQAotK0BBTURFUF9UUlVFQEBhbV9f ZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29t cCkgQEFNREVQQkFDS1NMQVNIQAotK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChMSUJUT09MKSAt LXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGls ZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQ RkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9wb3N0Z3Jlc3FsX2xhX0NYWEZMQUdTKSAkKENY WEZMQUdTKSAtYyAtbyBsaWJzb2NpX3Bvc3RncmVzcWxfbGEtYmxvYi5sbyBgdGVzdCAtZiAnJCh0 b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvYmxvYi5jcHAnIHx8IGVjaG8gJyQo c3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL2Jsb2IuY3Bw Ci0rCi0rbGlic29jaV9wb3N0Z3Jlc3FsX2xhLWNvbW1vbi5sbzogJCh0b3Bfc3JjZGlyKS9zb2Np L2JhY2tlbmRzL3Bvc3RncmVzcWwvY29tbW9uLmNwcAotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkk KExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0t bW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURF UykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX3Bvc3RncmVzcWxfbGFfQ1hY RkxBR1MpICQoQ1hYRkxBR1MpIC1NVCBsaWJzb2NpX3Bvc3RncmVzcWxfbGEtY29tbW9uLmxvIC1N RCAtTVAgLU1GICQoREVQRElSKS9saWJzb2NpX3Bvc3RncmVzcWxfbGEtY29tbW9uLlRwbyAtYyAt byBsaWJzb2NpX3Bvc3RncmVzcWxfbGEtY29tbW9uLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIp L3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9jb21tb24uY3BwJyB8fCBlY2hvICckKHNyY2Rpcikv J2AkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9jb21tb24uY3BwCi0rQGFt X19mYXN0ZGVwQ1hYX1RSVUVACW12IC1mICQoREVQRElSKS9saWJzb2NpX3Bvc3RncmVzcWxfbGEt Y29tbW9uLlRwbyAkKERFUERJUikvbGlic29jaV9wb3N0Z3Jlc3FsX2xhLWNvbW1vbi5QbG8KLStA QU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJCh0b3Bfc3JjZGlyKS9z b2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvY29tbW9uLmNwcCcgb2JqZWN0PSdsaWJzb2NpX3Bvc3Rn cmVzcWxfbGEtY29tbW9uLmxvJyBsaWJ0b29sPXllcyBAQU1ERVBCQUNLU0xBU0hACi0rQEFNREVQ X1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9E RSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACi0rQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkk KExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0t bW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURF UykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX3Bvc3RncmVzcWxfbGFfQ1hY RkxBR1MpICQoQ1hYRkxBR1MpIC1jIC1vIGxpYnNvY2lfcG9zdGdyZXNxbF9sYS1jb21tb24ubG8g YHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL2NvbW1vbi5j cHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0 Z3Jlc3FsL2NvbW1vbi5jcHAKLSsKLStsaWJzb2NpX3Bvc3RncmVzcWxfbGEtZmFjdG9yeS5sbzog JCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvZmFjdG9yeS5jcHAKLStAYW1f X2Zhc3RkZXBDWFhfVFJVRUAJJChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1Mp ICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRf SU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29j aV9wb3N0Z3Jlc3FsX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtTVQgbGlic29jaV9wb3N0Z3Jl c3FsX2xhLWZhY3RvcnkubG8gLU1EIC1NUCAtTUYgJChERVBESVIpL2xpYnNvY2lfcG9zdGdyZXNx bF9sYS1mYWN0b3J5LlRwbyAtYyAtbyBsaWJzb2NpX3Bvc3RncmVzcWxfbGEtZmFjdG9yeS5sbyBg dGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvZmFjdG9yeS5j cHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0 Z3Jlc3FsL2ZhY3RvcnkuY3BwCi0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACW12IC1mICQoREVQRElS KS9saWJzb2NpX3Bvc3RncmVzcWxfbGEtZmFjdG9yeS5UcG8gJChERVBESVIpL2xpYnNvY2lfcG9z dGdyZXNxbF9sYS1mYWN0b3J5LlBsbwotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxT RUAJc291cmNlPSckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9mYWN0b3J5 LmNwcCcgb2JqZWN0PSdsaWJzb2NpX3Bvc3RncmVzcWxfbGEtZmFjdG9yeS5sbycgbGlidG9vbD15 ZXMgQEFNREVQQkFDS1NMQVNIQAotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJ REVQRElSPSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNI QAotK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJU T09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAk KERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1Mp ICQobGlic29jaV9wb3N0Z3Jlc3FsX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtYyAtbyBsaWJz b2NpX3Bvc3RncmVzcWxfbGEtZmFjdG9yeS5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2Np L2JhY2tlbmRzL3Bvc3RncmVzcWwvZmFjdG9yeS5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQo dG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL2ZhY3RvcnkuY3BwCi0rCi0rbGli c29jaV9wb3N0Z3Jlc3FsX2xhLXJvdy1pZC5sbzogJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRz L3Bvc3RncmVzcWwvcm93LWlkLmNwcAotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKExJQlRPT0wp IC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21w aWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9D UFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX3Bvc3RncmVzcWxfbGFfQ1hYRkxBR1MpICQo Q1hYRkxBR1MpIC1NVCBsaWJzb2NpX3Bvc3RncmVzcWxfbGEtcm93LWlkLmxvIC1NRCAtTVAgLU1G ICQoREVQRElSKS9saWJzb2NpX3Bvc3RncmVzcWxfbGEtcm93LWlkLlRwbyAtYyAtbyBsaWJzb2Np X3Bvc3RncmVzcWxfbGEtcm93LWlkLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFj a2VuZHMvcG9zdGdyZXNxbC9yb3ctaWQuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9z cmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9yb3ctaWQuY3BwCi0rQGFtX19mYXN0ZGVw Q1hYX1RSVUVACW12IC1mICQoREVQRElSKS9saWJzb2NpX3Bvc3RncmVzcWxfbGEtcm93LWlkLlRw byAkKERFUERJUikvbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXJvdy1pZC5QbG8KLStAQU1ERVBfVFJV RUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tl bmRzL3Bvc3RncmVzcWwvcm93LWlkLmNwcCcgb2JqZWN0PSdsaWJzb2NpX3Bvc3RncmVzcWxfbGEt cm93LWlkLmxvJyBsaWJ0b29sPXllcyBAQU1ERVBCQUNLU0xBU0hACi0rQEFNREVQX1RSVUVAQGFt X19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBj b21wKSBAQU1ERVBCQUNLU0xBU0hACi0rQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKExJQlRPT0wp IC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21w aWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9D UFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX3Bvc3RncmVzcWxfbGFfQ1hYRkxBR1MpICQo Q1hYRkxBR1MpIC1jIC1vIGxpYnNvY2lfcG9zdGdyZXNxbF9sYS1yb3ctaWQubG8gYHRlc3QgLWYg JyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Jvdy1pZC5jcHAnIHx8IGVj aG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Jv dy1pZC5jcHAKLSsKLStsaWJzb2NpX3Bvc3RncmVzcWxfbGEtc2Vzc2lvbi5sbzogJCh0b3Bfc3Jj ZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvc2Vzc2lvbi5jcHAKLStAYW1fX2Zhc3RkZXBD WFhfVFJVRUAJJChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9P TEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMp ICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9wb3N0Z3Jl c3FsX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtTVQgbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXNl c3Npb24ubG8gLU1EIC1NUCAtTUYgJChERVBESVIpL2xpYnNvY2lfcG9zdGdyZXNxbF9sYS1zZXNz aW9uLlRwbyAtYyAtbyBsaWJzb2NpX3Bvc3RncmVzcWxfbGEtc2Vzc2lvbi5sbyBgdGVzdCAtZiAn JCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvc2Vzc2lvbi5jcHAnIHx8IGVj aG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Nl c3Npb24uY3BwCi0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACW12IC1mICQoREVQRElSKS9saWJzb2Np X3Bvc3RncmVzcWxfbGEtc2Vzc2lvbi5UcG8gJChERVBESVIpL2xpYnNvY2lfcG9zdGdyZXNxbF9s YS1zZXNzaW9uLlBsbwotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNl PSckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9zZXNzaW9uLmNwcCcgb2Jq ZWN0PSdsaWJzb2NpX3Bvc3RncmVzcWxfbGEtc2Vzc2lvbi5sbycgbGlidG9vbD15ZXMgQEFNREVQ QkFDS1NMQVNIQAotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQo REVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAotK0BhbV9f ZmFzdGRlcENYWF9GQUxTRUAJJChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1Mp ICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRf SU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29j aV9wb3N0Z3Jlc3FsX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtYyAtbyBsaWJzb2NpX3Bvc3Rn cmVzcWxfbGEtc2Vzc2lvbi5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRz L3Bvc3RncmVzcWwvc2Vzc2lvbi5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rp cikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Nlc3Npb24uY3BwCi0rCi0rbGlic29jaV9wb3N0 Z3Jlc3FsX2xhLXN0YW5kYXJkLWludG8tdHlwZS5sbzogJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tl bmRzL3Bvc3RncmVzcWwvc3RhbmRhcmQtaW50by10eXBlLmNwcAotK0BhbV9fZmFzdGRlcENYWF9U UlVFQAkkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxB R1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJ TkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX3Bvc3RncmVzcWxf bGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1NVCBsaWJzb2NpX3Bvc3RncmVzcWxfbGEtc3RhbmRh cmQtaW50by10eXBlLmxvIC1NRCAtTVAgLU1GICQoREVQRElSKS9saWJzb2NpX3Bvc3RncmVzcWxf bGEtc3RhbmRhcmQtaW50by10eXBlLlRwbyAtYyAtbyBsaWJzb2NpX3Bvc3RncmVzcWxfbGEtc3Rh bmRhcmQtaW50by10eXBlLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMv cG9zdGdyZXNxbC9zdGFuZGFyZC1pbnRvLXR5cGUuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2Ak KHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9zdGFuZGFyZC1pbnRvLXR5cGUu Y3BwCi0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACW12IC1mICQoREVQRElSKS9saWJzb2NpX3Bvc3Rn cmVzcWxfbGEtc3RhbmRhcmQtaW50by10eXBlLlRwbyAkKERFUERJUikvbGlic29jaV9wb3N0Z3Jl c3FsX2xhLXN0YW5kYXJkLWludG8tdHlwZS5QbG8KLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBD WFhfRkFMU0VACXNvdXJjZT0nJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwv c3RhbmRhcmQtaW50by10eXBlLmNwcCcgb2JqZWN0PSdsaWJzb2NpX3Bvc3RncmVzcWxfbGEtc3Rh bmRhcmQtaW50by10eXBlLmxvJyBsaWJ0b29sPXllcyBAQU1ERVBCQUNLU0xBU0hACi0rQEFNREVQ X1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9E RSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACi0rQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkk KExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0t bW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURF UykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX3Bvc3RncmVzcWxfbGFfQ1hY RkxBR1MpICQoQ1hYRkxBR1MpIC1jIC1vIGxpYnNvY2lfcG9zdGdyZXNxbF9sYS1zdGFuZGFyZC1p bnRvLXR5cGUubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jl c3FsL3N0YW5kYXJkLWludG8tdHlwZS5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3Ny Y2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3N0YW5kYXJkLWludG8tdHlwZS5jcHAKLSsK LStsaWJzb2NpX3Bvc3RncmVzcWxfbGEtc3RhbmRhcmQtdXNlLXR5cGUubG86ICQodG9wX3NyY2Rp cikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3N0YW5kYXJkLXVzZS10eXBlLmNwcAotK0BhbV9f ZmFzdGRlcENYWF9UUlVFQAkkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykg JChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9J TkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2Np X3Bvc3RncmVzcWxfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1NVCBsaWJzb2NpX3Bvc3RncmVz cWxfbGEtc3RhbmRhcmQtdXNlLXR5cGUubG8gLU1EIC1NUCAtTUYgJChERVBESVIpL2xpYnNvY2lf cG9zdGdyZXNxbF9sYS1zdGFuZGFyZC11c2UtdHlwZS5UcG8gLWMgLW8gbGlic29jaV9wb3N0Z3Jl c3FsX2xhLXN0YW5kYXJkLXVzZS10eXBlLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kv YmFja2VuZHMvcG9zdGdyZXNxbC9zdGFuZGFyZC11c2UtdHlwZS5jcHAnIHx8IGVjaG8gJyQoc3Jj ZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3N0YW5kYXJkLXVz ZS10eXBlLmNwcAotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAltdiAtZiAkKERFUERJUikvbGlic29j aV9wb3N0Z3Jlc3FsX2xhLXN0YW5kYXJkLXVzZS10eXBlLlRwbyAkKERFUERJUikvbGlic29jaV9w b3N0Z3Jlc3FsX2xhLXN0YW5kYXJkLXVzZS10eXBlLlBsbwotK0BBTURFUF9UUlVFQEBhbV9fZmFz dGRlcENYWF9GQUxTRUAJc291cmNlPSckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdy ZXNxbC9zdGFuZGFyZC11c2UtdHlwZS5jcHAnIG9iamVjdD0nbGlic29jaV9wb3N0Z3Jlc3FsX2xh LXN0YW5kYXJkLXVzZS10eXBlLmxvJyBsaWJ0b29sPXllcyBAQU1ERVBCQUNLU0xBU0hACi0rQEFN REVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQ TU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACi0rQGFtX19mYXN0ZGVwQ1hYX0ZBTFNF QAkkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1Mp IC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNM VURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX3Bvc3RncmVzcWxfbGFf Q1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1jIC1vIGxpYnNvY2lfcG9zdGdyZXNxbF9sYS1zdGFuZGFy ZC11c2UtdHlwZS5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3Rn cmVzcWwvc3RhbmRhcmQtdXNlLXR5cGUuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9z cmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9zdGFuZGFyZC11c2UtdHlwZS5jcHAKLSsK LStsaWJzb2NpX3Bvc3RncmVzcWxfbGEtc3RhdGVtZW50LmxvOiAkKHRvcF9zcmNkaXIpL3NvY2kv YmFja2VuZHMvcG9zdGdyZXNxbC9zdGF0ZW1lbnQuY3BwCi0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVA CSQoTElCVE9PTCkgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykg LS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xV REVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfcG9zdGdyZXNxbF9sYV9D WFhGTEFHUykgJChDWFhGTEFHUykgLU1UIGxpYnNvY2lfcG9zdGdyZXNxbF9sYS1zdGF0ZW1lbnQu bG8gLU1EIC1NUCAtTUYgJChERVBESVIpL2xpYnNvY2lfcG9zdGdyZXNxbF9sYS1zdGF0ZW1lbnQu VHBvIC1jIC1vIGxpYnNvY2lfcG9zdGdyZXNxbF9sYS1zdGF0ZW1lbnQubG8gYHRlc3QgLWYgJyQo dG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3N0YXRlbWVudC5jcHAnIHx8IGVj aG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3N0 YXRlbWVudC5jcHAKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJbXYgLWYgJChERVBESVIpL2xpYnNv Y2lfcG9zdGdyZXNxbF9sYS1zdGF0ZW1lbnQuVHBvICQoREVQRElSKS9saWJzb2NpX3Bvc3RncmVz cWxfbGEtc3RhdGVtZW50LlBsbwotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJ c291cmNlPSckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9zdGF0ZW1lbnQu Y3BwJyBvYmplY3Q9J2xpYnNvY2lfcG9zdGdyZXNxbF9sYS1zdGF0ZW1lbnQubG8nIGxpYnRvb2w9 eWVzIEBBTURFUEJBQ0tTTEFTSEAKLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VA CURFUERJUj0kKERFUERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFT SEAKLStAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQoTElCVE9PTCkgLS10YWc9Q1hYICQoQU1fTElC VE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykg JChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdT KSAkKGxpYnNvY2lfcG9zdGdyZXNxbF9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLWMgLW8gbGli c29jaV9wb3N0Z3Jlc3FsX2xhLXN0YXRlbWVudC5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9z b2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvc3RhdGVtZW50LmNwcCcgfHwgZWNobyAnJChzcmNkaXIp LydgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvc3RhdGVtZW50LmNwcAot KwotK2xpYnNvY2lfcG9zdGdyZXNxbF9sYS12ZWN0b3ItaW50by10eXBlLmxvOiAkKHRvcF9zcmNk aXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC92ZWN0b3ItaW50by10eXBlLmNwcAotK0BhbV9f ZmFzdGRlcENYWF9UUlVFQAkkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykg JChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9J TkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2Np X3Bvc3RncmVzcWxfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1NVCBsaWJzb2NpX3Bvc3RncmVz cWxfbGEtdmVjdG9yLWludG8tdHlwZS5sbyAtTUQgLU1QIC1NRiAkKERFUERJUikvbGlic29jaV9w b3N0Z3Jlc3FsX2xhLXZlY3Rvci1pbnRvLXR5cGUuVHBvIC1jIC1vIGxpYnNvY2lfcG9zdGdyZXNx bF9sYS12ZWN0b3ItaW50by10eXBlLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFj a2VuZHMvcG9zdGdyZXNxbC92ZWN0b3ItaW50by10eXBlLmNwcCcgfHwgZWNobyAnJChzcmNkaXIp LydgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvdmVjdG9yLWludG8tdHlw ZS5jcHAKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJbXYgLWYgJChERVBESVIpL2xpYnNvY2lfcG9z dGdyZXNxbF9sYS12ZWN0b3ItaW50by10eXBlLlRwbyAkKERFUERJUikvbGlic29jaV9wb3N0Z3Jl c3FsX2xhLXZlY3Rvci1pbnRvLXR5cGUuUGxvCi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hY X0ZBTFNFQAlzb3VyY2U9JyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Zl Y3Rvci1pbnRvLXR5cGUuY3BwJyBvYmplY3Q9J2xpYnNvY2lfcG9zdGdyZXNxbF9sYS12ZWN0b3It aW50by10eXBlLmxvJyBsaWJ0b29sPXllcyBAQU1ERVBCQUNLU0xBU0hACi0rQEFNREVQX1RSVUVA QGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChk ZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACi0rQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKExJQlRP T0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1j b21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChB TV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX3Bvc3RncmVzcWxfbGFfQ1hYRkxBR1Mp ICQoQ1hYRkxBR1MpIC1jIC1vIGxpYnNvY2lfcG9zdGdyZXNxbF9sYS12ZWN0b3ItaW50by10eXBl LmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC92ZWN0 b3ItaW50by10eXBlLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2Np L2JhY2tlbmRzL3Bvc3RncmVzcWwvdmVjdG9yLWludG8tdHlwZS5jcHAKLSsKLStsaWJzb2NpX3Bv c3RncmVzcWxfbGEtdmVjdG9yLXVzZS10eXBlLmxvOiAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2Vu ZHMvcG9zdGdyZXNxbC92ZWN0b3ItdXNlLXR5cGUuY3BwCi0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVA CSQoTElCVE9PTCkgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykg LS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xV REVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfcG9zdGdyZXNxbF9sYV9D WFhGTEFHUykgJChDWFhGTEFHUykgLU1UIGxpYnNvY2lfcG9zdGdyZXNxbF9sYS12ZWN0b3ItdXNl LXR5cGUubG8gLU1EIC1NUCAtTUYgJChERVBESVIpL2xpYnNvY2lfcG9zdGdyZXNxbF9sYS12ZWN0 b3ItdXNlLXR5cGUuVHBvIC1jIC1vIGxpYnNvY2lfcG9zdGdyZXNxbF9sYS12ZWN0b3ItdXNlLXR5 cGUubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Zl Y3Rvci11c2UtdHlwZS5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29j aS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3ZlY3Rvci11c2UtdHlwZS5jcHAKLStAYW1fX2Zhc3RkZXBD WFhfVFJVRUAJbXYgLWYgJChERVBESVIpL2xpYnNvY2lfcG9zdGdyZXNxbF9sYS12ZWN0b3ItdXNl LXR5cGUuVHBvICQoREVQRElSKS9saWJzb2NpX3Bvc3RncmVzcWxfbGEtdmVjdG9yLXVzZS10eXBl LlBsbwotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSckKHRvcF9z cmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC92ZWN0b3ItdXNlLXR5cGUuY3BwJyBvYmpl Y3Q9J2xpYnNvY2lfcG9zdGdyZXNxbF9sYS12ZWN0b3ItdXNlLXR5cGUubG8nIGxpYnRvb2w9eWVz IEBBTURFUEJBQ0tTTEFTSEAKLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURF UERJUj0kKERFUERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAK LStAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQoTElCVE9PTCkgLS10YWc9Q1hYICQoQU1fTElCVE9P TEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChE RUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAk KGxpYnNvY2lfcG9zdGdyZXNxbF9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLWMgLW8gbGlic29j aV9wb3N0Z3Jlc3FsX2xhLXZlY3Rvci11c2UtdHlwZS5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGly KS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvdmVjdG9yLXVzZS10eXBlLmNwcCcgfHwgZWNobyAn JChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvdmVjdG9y LXVzZS10eXBlLmNwcAotKwotK21vc3RseWNsZWFuLWxpYnRvb2w6Ci0rCS1ybSAtZiAqLmxvCi0r Ci0rY2xlYW4tbGlidG9vbDoKLSsJLXJtIC1yZiAubGlicyBfbGlicwotK2luc3RhbGwtcGtnaW5j bHVkZUhFQURFUlM6ICQocGtnaW5jbHVkZV9IRUFERVJTKQotKwlAJChOT1JNQUxfSU5TVEFMTCkK LSsJdGVzdCAteiAiJChwa2dpbmNsdWRlZGlyKSIgfHwgJChNS0RJUl9QKSAiJChERVNURElSKSQo cGtnaW5jbHVkZWRpcikiCi0rCUBsaXN0PSckKHBrZ2luY2x1ZGVfSEVBREVSUyknOyBmb3IgcCBp biAkJGxpc3Q7IGRvIFwKLSsJICBpZiB0ZXN0IC1mICIkJHAiOyB0aGVuIGQ9OyBlbHNlIGQ9IiQo c3JjZGlyKS8iOyBmaTsgXAotKwkgIGY9JChhbV9fc3RyaXBfZGlyKSBcCi0rCSAgZWNobyAiICQo cGtnaW5jbHVkZUhFQURFUlNfSU5TVEFMTCkgJyQkZCQkcCcgJyQoREVTVERJUikkKHBrZ2luY2x1 ZGVkaXIpLyQkZiciOyBcCi0rCSAgJChwa2dpbmNsdWRlSEVBREVSU19JTlNUQUxMKSAiJCRkJCRw IiAiJChERVNURElSKSQocGtnaW5jbHVkZWRpcikvJCRmIjsgXAotKwlkb25lCi0rCi0rdW5pbnN0 YWxsLXBrZ2luY2x1ZGVIRUFERVJTOgotKwlAJChOT1JNQUxfVU5JTlNUQUxMKQotKwlAbGlzdD0n JChwa2dpbmNsdWRlX0hFQURFUlMpJzsgZm9yIHAgaW4gJCRsaXN0OyBkbyBcCi0rCSAgZj0kKGFt X19zdHJpcF9kaXIpIFwKLSsJICBlY2hvICIgcm0gLWYgJyQoREVTVERJUikkKHBrZ2luY2x1ZGVk aXIpLyQkZiciOyBcCi0rCSAgcm0gLWYgIiQoREVTVERJUikkKHBrZ2luY2x1ZGVkaXIpLyQkZiI7 IFwKLSsJZG9uZQotKwotKyMgVGhpcyBkaXJlY3RvcnkncyBzdWJkaXJlY3RvcmllcyBhcmUgbW9z dGx5IGluZGVwZW5kZW50OyB5b3UgY2FuIGNkCi0rIyBpbnRvIHRoZW0gYW5kIHJ1biBgbWFrZScg d2l0aG91dCBnb2luZyB0aHJvdWdoIHRoaXMgTWFrZWZpbGUuCi0rIyBUbyBjaGFuZ2UgdGhlIHZh bHVlcyBvZiBgbWFrZScgdmFyaWFibGVzOiBpbnN0ZWFkIG9mIGVkaXRpbmcgTWFrZWZpbGVzLAot KyMgKDEpIGlmIHRoZSB2YXJpYWJsZSBpcyBzZXQgaW4gYGNvbmZpZy5zdGF0dXMnLCBlZGl0IGBj b25maWcuc3RhdHVzJwotKyMgICAgICh3aGljaCB3aWxsIGNhdXNlIHRoZSBNYWtlZmlsZXMgdG8g YmUgcmVnZW5lcmF0ZWQgd2hlbiB5b3UgcnVuIGBtYWtlJyk7Ci0rIyAoMikgb3RoZXJ3aXNlLCBw YXNzIHRoZSBkZXNpcmVkIHZhbHVlcyBvbiB0aGUgYG1ha2UnIGNvbW1hbmQgbGluZS4KLSskKFJF Q1VSU0lWRV9UQVJHRVRTKToKLSsJQGZhaWxjb209J2V4aXQgMSc7IFwKLSsJZm9yIGYgaW4geCAk JE1BS0VGTEFHUzsgZG8gXAotKwkgIGNhc2UgJCRmIGluIFwKLSsJICAgICo9KiB8IC0tWyFrXSop OzsgXAotKwkgICAgKmsqKSBmYWlsY29tPSdmYWlsPXllcyc7OyBcCi0rCSAgZXNhYzsgXAotKwlk b25lOyBcCi0rCWRvdF9zZWVuPW5vOyBcCi0rCXRhcmdldD1gZWNobyAkQCB8IHNlZCBzLy1yZWN1 cnNpdmUvL2A7IFwKLSsJbGlzdD0nJChTVUJESVJTKSc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBk byBcCi0rCSAgZWNobyAiTWFraW5nICQkdGFyZ2V0IGluICQkc3ViZGlyIjsgXAotKwkgIGlmIHRl c3QgIiQkc3ViZGlyIiA9ICIuIjsgdGhlbiBcCi0rCSAgICBkb3Rfc2Vlbj15ZXM7IFwKLSsJICAg IGxvY2FsX3RhcmdldD0iJCR0YXJnZXQtYW0iOyBcCi0rCSAgZWxzZSBcCi0rCSAgICBsb2NhbF90 YXJnZXQ9IiQkdGFyZ2V0IjsgXAotKwkgIGZpOyBcCi0rCSAgKGNkICQkc3ViZGlyICYmICQoTUFL RSkgJChBTV9NQUtFRkxBR1MpICQkbG9jYWxfdGFyZ2V0KSBcCi0rCSAgfHwgZXZhbCAkJGZhaWxj b207IFwKLSsJZG9uZTsgXAotKwlpZiB0ZXN0ICIkJGRvdF9zZWVuIiA9ICJubyI7IHRoZW4gXAot KwkgICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpICIkJHRhcmdldC1hbSIgfHwgZXhpdCAxOyBcCi0r CWZpOyB0ZXN0IC16ICIkJGZhaWwiCi0rCi0rJChSRUNVUlNJVkVfQ0xFQU5fVEFSR0VUUyk6Ci0r CUBmYWlsY29tPSdleGl0IDEnOyBcCi0rCWZvciBmIGluIHggJCRNQUtFRkxBR1M7IGRvIFwKLSsJ ICBjYXNlICQkZiBpbiBcCi0rCSAgICAqPSogfCAtLVsha10qKTs7IFwKLSsJICAgICprKikgZmFp bGNvbT0nZmFpbD15ZXMnOzsgXAotKwkgIGVzYWM7IFwKLSsJZG9uZTsgXAotKwlkb3Rfc2Vlbj1u bzsgXAotKwljYXNlICIkQCIgaW4gXAotKwkgIGRpc3RjbGVhbi0qIHwgbWFpbnRhaW5lci1jbGVh bi0qKSBsaXN0PSckKERJU1RfU1VCRElSUyknIDs7IFwKLSsJICAqKSBsaXN0PSckKFNVQkRJUlMp JyA7OyBcCi0rCWVzYWM7IFwKLSsJcmV2PScnOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAot KwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9ICIuIjsgdGhlbiA6OyBlbHNlIFwKLSsJICAgIHJldj0i JCRzdWJkaXIgJCRyZXYiOyBcCi0rCSAgZmk7IFwKLSsJZG9uZTsgXAotKwlyZXY9IiQkcmV2IC4i OyBcCi0rCXRhcmdldD1gZWNobyAkQCB8IHNlZCBzLy1yZWN1cnNpdmUvL2A7IFwKLSsJZm9yIHN1 YmRpciBpbiAkJHJldjsgZG8gXAotKwkgIGVjaG8gIk1ha2luZyAkJHRhcmdldCBpbiAkJHN1YmRp ciI7IFwKLSsJICBpZiB0ZXN0ICIkJHN1YmRpciIgPSAiLiI7IHRoZW4gXAotKwkgICAgbG9jYWxf dGFyZ2V0PSIkJHRhcmdldC1hbSI7IFwKLSsJICBlbHNlIFwKLSsJICAgIGxvY2FsX3RhcmdldD0i JCR0YXJnZXQiOyBcCi0rCSAgZmk7IFwKLSsJICAoY2QgJCRzdWJkaXIgJiYgJChNQUtFKSAkKEFN X01BS0VGTEFHUykgJCRsb2NhbF90YXJnZXQpIFwKLSsJICB8fCBldmFsICQkZmFpbGNvbTsgXAot Kwlkb25lICYmIHRlc3QgLXogIiQkZmFpbCIKLSt0YWdzLXJlY3Vyc2l2ZToKLSsJbGlzdD0nJChT VUJESVJTKSc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCi0rCSAgdGVzdCAiJCRzdWJkaXIi ID0gLiB8fCAoY2QgJCRzdWJkaXIgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgdGFncyk7IFwK LSsJZG9uZQotK2N0YWdzLXJlY3Vyc2l2ZToKLSsJbGlzdD0nJChTVUJESVJTKSc7IGZvciBzdWJk aXIgaW4gJCRsaXN0OyBkbyBcCi0rCSAgdGVzdCAiJCRzdWJkaXIiID0gLiB8fCAoY2QgJCRzdWJk aXIgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgY3RhZ3MpOyBcCi0rCWRvbmUKLSsKLStJRDog JChIRUFERVJTKSAkKFNPVVJDRVMpICQoTElTUCkgJChUQUdTX0ZJTEVTKQotKwlsaXN0PSckKFNP VVJDRVMpICQoSEVBREVSUykgJChMSVNQKSAkKFRBR1NfRklMRVMpJzsgXAotKwl1bmlxdWU9YGZv ciBpIGluICQkbGlzdDsgZG8gXAotKwkgICAgaWYgdGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hvICQk aTsgZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7IGZpOyBcCi0rCSAgZG9uZSB8IFwKLSsJICAkKEFX SykgJ3sgZmlsZXNbJCQwXSA9IDE7IG5vbmVtcHR5ID0gMTsgfSBcCi0rCSAgICAgIEVORCB7IGlm IChub25lbXB0eSkgeyBmb3IgKGkgaW4gZmlsZXMpIHByaW50IGk7IH07IH0nYDsgXAotKwlta2lk IC1mSUQgJCR1bmlxdWUKLSt0YWdzOiBUQUdTCi0rCi0rVEFHUzogdGFncy1yZWN1cnNpdmUgJChI RUFERVJTKSAkKFNPVVJDRVMpICAkKFRBR1NfREVQRU5ERU5DSUVTKSBcCi0rCQkkKFRBR1NfRklM RVMpICQoTElTUCkKLSsJdGFncz07IFwKLSsJaGVyZT1gcHdkYDsgXAotKwlpZiAoJChFVEFHUykg LS1ldGFncy1pbmNsdWRlIC0tdmVyc2lvbikgPi9kZXYvbnVsbCAyPiYxOyB0aGVuIFwKLSsJICBp bmNsdWRlX29wdGlvbj0tLWV0YWdzLWluY2x1ZGU7IFwKLSsJICBlbXB0eV9maXg9LjsgXAotKwll bHNlIFwKLSsJICBpbmNsdWRlX29wdGlvbj0tLWluY2x1ZGU7IFwKLSsJICBlbXB0eV9maXg9OyBc Ci0rCWZpOyBcCi0rCWxpc3Q9JyQoU1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8g XAotKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9IC47IHRoZW4gOjsgZWxzZSBcCi0rCSAgICB0ZXN0 ICEgLWYgJCRzdWJkaXIvVEFHUyB8fCBcCi0rCSAgICAgIHRhZ3M9IiQkdGFncyAkJGluY2x1ZGVf b3B0aW9uPSQkaGVyZS8kJHN1YmRpci9UQUdTIjsgXAotKwkgIGZpOyBcCi0rCWRvbmU7IFwKLSsJ bGlzdD0nJChTT1VSQ0VTKSAkKEhFQURFUlMpICAkKExJU1ApICQoVEFHU19GSUxFUyknOyBcCi0r CXVuaXF1ZT1gZm9yIGkgaW4gJCRsaXN0OyBkbyBcCi0rCSAgICBpZiB0ZXN0IC1mICIkJGkiOyB0 aGVuIGVjaG8gJCRpOyBlbHNlIGVjaG8gJChzcmNkaXIpLyQkaTsgZmk7IFwKLSsJICBkb25lIHwg XAotKwkgICQoQVdLKSAneyBmaWxlc1skJDBdID0gMTsgbm9uZW1wdHkgPSAxOyB9IFwKLSsJICAg ICAgRU5EIHsgaWYgKG5vbmVtcHR5KSB7IGZvciAoaSBpbiBmaWxlcykgcHJpbnQgaTsgfTsgfSdg OyBcCi0rCWlmIHRlc3QgLXogIiQoRVRBR1NfQVJHUykkJHRhZ3MkJHVuaXF1ZSI7IHRoZW4gOjsg ZWxzZSBcCi0rCSAgdGVzdCAtbiAiJCR1bmlxdWUiIHx8IHVuaXF1ZT0kJGVtcHR5X2ZpeDsgXAot KwkgICQoRVRBR1MpICQoRVRBR1NGTEFHUykgJChBTV9FVEFHU0ZMQUdTKSAkKEVUQUdTX0FSR1Mp IFwKLSsJICAgICQkdGFncyAkJHVuaXF1ZTsgXAotKwlmaQotK2N0YWdzOiBDVEFHUwotK0NUQUdT OiBjdGFncy1yZWN1cnNpdmUgJChIRUFERVJTKSAkKFNPVVJDRVMpICAkKFRBR1NfREVQRU5ERU5D SUVTKSBcCi0rCQkkKFRBR1NfRklMRVMpICQoTElTUCkKLSsJdGFncz07IFwKLSsJbGlzdD0nJChT T1VSQ0VTKSAkKEhFQURFUlMpICAkKExJU1ApICQoVEFHU19GSUxFUyknOyBcCi0rCXVuaXF1ZT1g Zm9yIGkgaW4gJCRsaXN0OyBkbyBcCi0rCSAgICBpZiB0ZXN0IC1mICIkJGkiOyB0aGVuIGVjaG8g JCRpOyBlbHNlIGVjaG8gJChzcmNkaXIpLyQkaTsgZmk7IFwKLSsJICBkb25lIHwgXAotKwkgICQo QVdLKSAneyBmaWxlc1skJDBdID0gMTsgbm9uZW1wdHkgPSAxOyB9IFwKLSsJICAgICAgRU5EIHsg aWYgKG5vbmVtcHR5KSB7IGZvciAoaSBpbiBmaWxlcykgcHJpbnQgaTsgfTsgfSdgOyBcCi0rCXRl c3QgLXogIiQoQ1RBR1NfQVJHUykkJHRhZ3MkJHVuaXF1ZSIgXAotKwkgIHx8ICQoQ1RBR1MpICQo Q1RBR1NGTEFHUykgJChBTV9DVEFHU0ZMQUdTKSAkKENUQUdTX0FSR1MpIFwKLSsJICAgICAkJHRh Z3MgJCR1bmlxdWUKLSsKLStHVEFHUzoKLSsJaGVyZT1gJChhbV9fY2QpICQodG9wX2J1aWxkZGly KSAmJiBwd2RgIFwKLSsJICAmJiBjZCAkKHRvcF9zcmNkaXIpIFwKLSsJICAmJiBndGFncyAtaSAk KEdUQUdTX0FSR1MpICQkaGVyZQotKwotK2Rpc3RjbGVhbi10YWdzOgotKwktcm0gLWYgVEFHUyBJ RCBHVEFHUyBHUlRBR1MgR1NZTVMgR1BBVEggdGFncwotKwotK2Rpc3RkaXI6ICQoRElTVEZJTEVT KQotKwlAc3JjZGlyc3RyaXA9YGVjaG8gIiQoc3JjZGlyKSIgfCBzZWQgJ3MvW10uW14kJFxcKl0v XFxcXCYvZydgOyBcCi0rCXRvcHNyY2RpcnN0cmlwPWBlY2hvICIkKHRvcF9zcmNkaXIpIiB8IHNl ZCAncy9bXS5bXiQkXFwqXS9cXFxcJi9nJ2A7IFwKLSsJbGlzdD0nJChESVNURklMRVMpJzsgXAot KwkgIGRpc3RfZmlsZXM9YGZvciBmaWxlIGluICQkbGlzdDsgZG8gZWNobyAkJGZpbGU7IGRvbmUg fCBcCi0rCSAgc2VkIC1lICJzfF4kJHNyY2RpcnN0cmlwL3x8O3QiIFwKLSsJICAgICAgLWUgInN8 XiQkdG9wc3JjZGlyc3RyaXAvfCQodG9wX2J1aWxkZGlyKS98O3QiYDsgXAotKwljYXNlICQkZGlz dF9maWxlcyBpbiBcCi0rCSAgKi8qKSAkKE1LRElSX1ApIGBlY2hvICIkJGRpc3RfZmlsZXMiIHwg XAotKwkJCSAgIHNlZCAnL1wvLyFkO3N8XnwkKGRpc3RkaXIpL3w7cywvW14vXSokJCwsJyB8IFwK LSsJCQkgICBzb3J0IC11YCA7OyBcCi0rCWVzYWM7IFwKLSsJZm9yIGZpbGUgaW4gJCRkaXN0X2Zp bGVzOyBkbyBcCi0rCSAgaWYgdGVzdCAtZiAkJGZpbGUgfHwgdGVzdCAtZCAkJGZpbGU7IHRoZW4g ZD0uOyBlbHNlIGQ9JChzcmNkaXIpOyBmaTsgXAotKwkgIGlmIHRlc3QgLWQgJCRkLyQkZmlsZTsg dGhlbiBcCi0rCSAgICBkaXI9YGVjaG8gIi8kJGZpbGUiIHwgc2VkIC1lICdzLC9bXi9dKiQkLCwn YDsgXAotKwkgICAgaWYgdGVzdCAtZCAkKHNyY2RpcikvJCRmaWxlICYmIHRlc3QgJCRkICE9ICQo c3JjZGlyKTsgdGhlbiBcCi0rCSAgICAgIGNwIC1wUiAkKHNyY2RpcikvJCRmaWxlICQoZGlzdGRp cikkJGRpciB8fCBleGl0IDE7IFwKLSsJICAgIGZpOyBcCi0rCSAgICBjcCAtcFIgJCRkLyQkZmls ZSAkKGRpc3RkaXIpJCRkaXIgfHwgZXhpdCAxOyBcCi0rCSAgZWxzZSBcCi0rCSAgICB0ZXN0IC1m ICQoZGlzdGRpcikvJCRmaWxlIFwKLSsJICAgIHx8IGNwIC1wICQkZC8kJGZpbGUgJChkaXN0ZGly KS8kJGZpbGUgXAotKwkgICAgfHwgZXhpdCAxOyBcCi0rCSAgZmk7IFwKLSsJZG9uZQotKwlsaXN0 PSckKERJU1RfU1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAotKwkgIGlmIHRl c3QgIiQkc3ViZGlyIiA9IC47IHRoZW4gOjsgZWxzZSBcCi0rCSAgICB0ZXN0IC1kICIkKGRpc3Rk aXIpLyQkc3ViZGlyIiBcCi0rCSAgICB8fCAkKE1LRElSX1ApICIkKGRpc3RkaXIpLyQkc3ViZGly IiBcCi0rCSAgICB8fCBleGl0IDE7IFwKLSsJICAgIGRpc3RkaXI9YCQoYW1fX2NkKSAkKGRpc3Rk aXIpICYmIHB3ZGA7IFwKLSsJICAgIHRvcF9kaXN0ZGlyPWAkKGFtX19jZCkgJCh0b3BfZGlzdGRp cikgJiYgcHdkYDsgXAotKwkgICAgKGNkICQkc3ViZGlyICYmIFwKLSsJICAgICAgJChNQUtFKSAk KEFNX01BS0VGTEFHUykgXAotKwkgICAgICAgIHRvcF9kaXN0ZGlyPSIkJHRvcF9kaXN0ZGlyIiBc Ci0rCSAgICAgICAgZGlzdGRpcj0iJCRkaXN0ZGlyLyQkc3ViZGlyIiBcCi0rCQlhbV9fcmVtb3Zl X2Rpc3RkaXI9OiBcCi0rCQlhbV9fc2tpcF9sZW5ndGhfY2hlY2s9OiBcCi0rCSAgICAgICAgZGlz dGRpcikgXAotKwkgICAgICB8fCBleGl0IDE7IFwKLSsJICBmaTsgXAotKwlkb25lCi0rY2hlY2st YW06IGFsbC1hbQotK2NoZWNrOiBjaGVjay1yZWN1cnNpdmUKLSthbGwtYW06IE1ha2VmaWxlICQo TFRMSUJSQVJJRVMpICQoSEVBREVSUykKLStpbnN0YWxsZGlyczogaW5zdGFsbGRpcnMtcmVjdXJz aXZlCi0raW5zdGFsbGRpcnMtYW06Ci0rCWZvciBkaXIgaW4gIiQoREVTVERJUikkKGxpYmRpciki ICIkKERFU1RESVIpJChwa2dpbmNsdWRlZGlyKSI7IGRvIFwKLSsJICB0ZXN0IC16ICIkJGRpciIg fHwgJChNS0RJUl9QKSAiJCRkaXIiOyBcCi0rCWRvbmUKLStpbnN0YWxsOiBpbnN0YWxsLXJlY3Vy c2l2ZQotK2luc3RhbGwtZXhlYzogaW5zdGFsbC1leGVjLXJlY3Vyc2l2ZQotK2luc3RhbGwtZGF0 YTogaW5zdGFsbC1kYXRhLXJlY3Vyc2l2ZQotK3VuaW5zdGFsbDogdW5pbnN0YWxsLXJlY3Vyc2l2 ZQotKwotK2luc3RhbGwtYW06IGFsbC1hbQotKwlAJChNQUtFKSAkKEFNX01BS0VGTEFHUykgaW5z dGFsbC1leGVjLWFtIGluc3RhbGwtZGF0YS1hbQotKwotK2luc3RhbGxjaGVjazogaW5zdGFsbGNo ZWNrLXJlY3Vyc2l2ZQotK2luc3RhbGwtc3RyaXA6Ci0rCSQoTUFLRSkgJChBTV9NQUtFRkxBR1Mp IElOU1RBTExfUFJPR1JBTT0iJChJTlNUQUxMX1NUUklQX1BST0dSQU0pIiBcCi0rCSAgaW5zdGFs bF9zaF9QUk9HUkFNPSIkKElOU1RBTExfU1RSSVBfUFJPR1JBTSkiIElOU1RBTExfU1RSSVBfRkxB Rz0tcyBcCi0rCSAgYHRlc3QgLXogJyQoU1RSSVApJyB8fCBcCi0rCSAgICBlY2hvICJJTlNUQUxM X1BST0dSQU1fRU5WPVNUUklQUFJPRz0nJChTVFJJUCknImAgaW5zdGFsbAotK21vc3RseWNsZWFu LWdlbmVyaWM6Ci0rCi0rY2xlYW4tZ2VuZXJpYzoKLSsKLStkaXN0Y2xlYW4tZ2VuZXJpYzoKLSsJ LXRlc3QgLXogIiQoQ09ORklHX0NMRUFOX0ZJTEVTKSIgfHwgcm0gLWYgJChDT05GSUdfQ0xFQU5f RklMRVMpCi0rCi0rbWFpbnRhaW5lci1jbGVhbi1nZW5lcmljOgotKwlAZWNobyAiVGhpcyBjb21t YW5kIGlzIGludGVuZGVkIGZvciBtYWludGFpbmVycyB0byB1c2UiCi0rCUBlY2hvICJpdCBkZWxl dGVzIGZpbGVzIHRoYXQgbWF5IHJlcXVpcmUgc3BlY2lhbCB0b29scyB0byByZWJ1aWxkLiIKLSsJ LXRlc3QgLXogIiQoTUFJTlRBSU5FUkNMRUFORklMRVMpIiB8fCBybSAtZiAkKE1BSU5UQUlORVJD TEVBTkZJTEVTKQotK2NsZWFuOiBjbGVhbi1yZWN1cnNpdmUKLSsKLStjbGVhbi1hbTogY2xlYW4t Z2VuZXJpYyBjbGVhbi1saWJMVExJQlJBUklFUyBjbGVhbi1saWJ0b29sIFwKLSsJbW9zdGx5Y2xl YW4tYW0KLSsKLStkaXN0Y2xlYW46IGRpc3RjbGVhbi1yZWN1cnNpdmUKLSsJLXJtIC1yZiAuLyQo REVQRElSKQotKwktcm0gLWYgTWFrZWZpbGUKLStkaXN0Y2xlYW4tYW06IGNsZWFuLWFtIGRpc3Rj bGVhbi1jb21waWxlIGRpc3RjbGVhbi1nZW5lcmljIFwKLSsJZGlzdGNsZWFuLXRhZ3MKLSsKLStk dmk6IGR2aS1yZWN1cnNpdmUKLSsKLStkdmktYW06Ci0rCi0raHRtbDogaHRtbC1yZWN1cnNpdmUK LSsKLStpbmZvOiBpbmZvLXJlY3Vyc2l2ZQotKwotK2luZm8tYW06Ci0rCi0raW5zdGFsbC1kYXRh LWFtOiBpbnN0YWxsLXBrZ2luY2x1ZGVIRUFERVJTCi0rCi0raW5zdGFsbC1kdmk6IGluc3RhbGwt ZHZpLXJlY3Vyc2l2ZQotKwotK2luc3RhbGwtZXhlYy1hbTogaW5zdGFsbC1saWJMVExJQlJBUklF UwotKwotK2luc3RhbGwtaHRtbDogaW5zdGFsbC1odG1sLXJlY3Vyc2l2ZQotKwotK2luc3RhbGwt aW5mbzogaW5zdGFsbC1pbmZvLXJlY3Vyc2l2ZQotKwotK2luc3RhbGwtbWFuOgotKwotK2luc3Rh bGwtcGRmOiBpbnN0YWxsLXBkZi1yZWN1cnNpdmUKLSsKLStpbnN0YWxsLXBzOiBpbnN0YWxsLXBz LXJlY3Vyc2l2ZQotKwotK2luc3RhbGxjaGVjay1hbToKLSsKLSttYWludGFpbmVyLWNsZWFuOiBt YWludGFpbmVyLWNsZWFuLXJlY3Vyc2l2ZQotKwktcm0gLXJmIC4vJChERVBESVIpCi0rCS1ybSAt ZiBNYWtlZmlsZQotK21haW50YWluZXItY2xlYW4tYW06IGRpc3RjbGVhbi1hbSBtYWludGFpbmVy LWNsZWFuLWdlbmVyaWMKLSsKLSttb3N0bHljbGVhbjogbW9zdGx5Y2xlYW4tcmVjdXJzaXZlCi0r Ci0rbW9zdGx5Y2xlYW4tYW06IG1vc3RseWNsZWFuLWNvbXBpbGUgbW9zdGx5Y2xlYW4tZ2VuZXJp YyBcCi0rCW1vc3RseWNsZWFuLWxpYnRvb2wKLSsKLStwZGY6IHBkZi1yZWN1cnNpdmUKLSsKLStw ZGYtYW06Ci0rCi0rcHM6IHBzLXJlY3Vyc2l2ZQotKwotK3BzLWFtOgotKwotK3VuaW5zdGFsbC1h bTogdW5pbnN0YWxsLWxpYkxUTElCUkFSSUVTIHVuaW5zdGFsbC1wa2dpbmNsdWRlSEVBREVSUwot KwotKy5NQUtFOiAkKFJFQ1VSU0lWRV9DTEVBTl9UQVJHRVRTKSAkKFJFQ1VSU0lWRV9UQVJHRVRT KSBpbnN0YWxsLWFtIFwKLSsJaW5zdGFsbC1zdHJpcAotKwotKy5QSE9OWTogJChSRUNVUlNJVkVf Q0xFQU5fVEFSR0VUUykgJChSRUNVUlNJVkVfVEFSR0VUUykgQ1RBR1MgR1RBR1MgXAotKwlhbGwg YWxsLWFtIGNoZWNrIGNoZWNrLWFtIGNsZWFuIGNsZWFuLWdlbmVyaWMgXAotKwljbGVhbi1saWJM VExJQlJBUklFUyBjbGVhbi1saWJ0b29sIGN0YWdzIGN0YWdzLXJlY3Vyc2l2ZSBcCi0rCWRpc3Rj bGVhbiBkaXN0Y2xlYW4tY29tcGlsZSBkaXN0Y2xlYW4tZ2VuZXJpYyBcCi0rCWRpc3RjbGVhbi1s aWJ0b29sIGRpc3RjbGVhbi10YWdzIGRpc3RkaXIgZHZpIGR2aS1hbSBodG1sIFwKLSsJaHRtbC1h bSBpbmZvIGluZm8tYW0gaW5zdGFsbCBpbnN0YWxsLWFtIGluc3RhbGwtZGF0YSBcCi0rCWluc3Rh bGwtZGF0YS1hbSBpbnN0YWxsLWR2aSBpbnN0YWxsLWR2aS1hbSBpbnN0YWxsLWV4ZWMgXAotKwlp bnN0YWxsLWV4ZWMtYW0gaW5zdGFsbC1odG1sIGluc3RhbGwtaHRtbC1hbSBpbnN0YWxsLWluZm8g XAotKwlpbnN0YWxsLWluZm8tYW0gaW5zdGFsbC1saWJMVExJQlJBUklFUyBpbnN0YWxsLW1hbiBp bnN0YWxsLXBkZiBcCi0rCWluc3RhbGwtcGRmLWFtIGluc3RhbGwtcGtnaW5jbHVkZUhFQURFUlMg aW5zdGFsbC1wcyBcCi0rCWluc3RhbGwtcHMtYW0gaW5zdGFsbC1zdHJpcCBpbnN0YWxsY2hlY2sg aW5zdGFsbGNoZWNrLWFtIFwKLSsJaW5zdGFsbGRpcnMgaW5zdGFsbGRpcnMtYW0gbWFpbnRhaW5l ci1jbGVhbiBcCi0rCW1haW50YWluZXItY2xlYW4tZ2VuZXJpYyBtb3N0bHljbGVhbiBtb3N0bHlj bGVhbi1jb21waWxlIFwKLSsJbW9zdGx5Y2xlYW4tZ2VuZXJpYyBtb3N0bHljbGVhbi1saWJ0b29s IHBkZiBwZGYtYW0gcHMgcHMtYW0gXAotKwl0YWdzIHRhZ3MtcmVjdXJzaXZlIHVuaW5zdGFsbCB1 bmluc3RhbGwtYW0gXAotKwl1bmluc3RhbGwtbGliTFRMSUJSQVJJRVMgdW5pbnN0YWxsLXBrZ2lu Y2x1ZGVIRUFERVJTCi0rCi0rQFNFVF9NQUtFQAotKyMgVGVsbCB2ZXJzaW9ucyBbMy41OSwzLjYz KSBvZiBHTlUgbWFrZSB0byBub3QgZXhwb3J0IGFsbCB2YXJpYWJsZXMuCi0rIyBPdGhlcndpc2Ug YSBzeXN0ZW0gbGltaXQgKGZvciBTeXNWIGF0IGxlYXN0KSBtYXkgYmUgZXhjZWVkZWQuCi0rLk5P RVhQT1JUOgotZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvcG9zdGdy ZXNxbC9zb2NpLXBvc3RncmVzcWwuaCBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9w b3N0Z3Jlc3FsL3NvY2ktcG9zdGdyZXNxbC5oCi0tLS0gc29jaS0zLjAuMF80LXBhY2svc29jaS9i YWNrZW5kcy9wb3N0Z3Jlc3FsL3NvY2ktcG9zdGdyZXNxbC5oCTIwMDktMDUtMjMgMTM6Mzc6MDku MDAwMDAwMDAwICswMjAwCi0rKysgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvcG9z dGdyZXNxbC9zb2NpLXBvc3RncmVzcWwuaAkyMDA5LTA1LTIyIDIyOjU0OjE4LjAwMDAwMDAwMCAr MDIwMAotQEAgLTIyLDkgKzIyLDE0IEBACi0gI2lmbmRlZiBTT0NJX1BPU1RHUkVTUUxfREVDTAot ICMgZGVmaW5lIFNPQ0lfUE9TVEdSRVNRTF9ERUNMCi0gI2VuZGlmCi0tCi0tI2luY2x1ZGUgPHNv Y2ktYmFja2VuZC5oPgotLSNpbmNsdWRlIDxsaWJwcS1mZS5oPgotKy8vCi0rI2lmIGRlZmluZWQo U09DSV9IRUFERVJTX0JVUklFRCkKLSsjICAgICAgIGluY2x1ZGUgPHNvY2kvY29yZS9zb2NpLWJh Y2tlbmQuaD4KLSsjZWxzZQotKyMJaW5jbHVkZSA8c29jaS1iYWNrZW5kLmg+Ci0rI2VuZGlmCi0r Ly8KLSsjaW5jbHVkZSA8bGlicHEtZmUuaD4gLy8gUG9zdEdyZVNRTCBjbGllbnQKLSAjaW5jbHVk ZSA8dmVjdG9yPgotIAotICNpZmRlZiBfTVNDX1ZFUgotZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1w YWNrL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9zb3VyY2VzLm1rIHNvY2ktMy4wLjBfdHJlcDMw MC9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvc291cmNlcy5tawotLS0tIHNvY2ktMy4wLjBfNC1w YWNrL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9zb3VyY2VzLm1rCTE5NzAtMDEtMDEgMDE6MDA6 MDAuMDAwMDAwMDAwICswMTAwCi0rKysgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMv cG9zdGdyZXNxbC9zb3VyY2VzLm1rCTIwMDktMDUtMjIgMjI6NTQ6MTguMDAwMDAwMDAwICswMjAw Ci1AQCAtMCwwICsxLDE0IEBACi0rYmNrX3Bvc3RncmVzcWxfaF9zb3VyY2VzID0gXAotKyAgICAg ICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvY29tbW9uLmggXAotKyAg ICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvc29jaS1wb3N0Z3Jl c3FsLmgKLStiY2tfcG9zdGdyZXNxbF9jY19zb3VyY2VzID0gXAotKyAgICAgICAgJCh0b3Bfc3Jj ZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvYmxvYi5jcHAgXAotKyAgICAgICAgJCh0b3Bf c3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvY29tbW9uLmNwcCBcCi0rICAgICAgICAk KHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9mYWN0b3J5LmNwcCBcCi0rICAg ICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9yb3ctaWQuY3BwIFwK LSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Nlc3Npb24u Y3BwIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3N0 YW5kYXJkLWludG8tdHlwZS5jcHAgXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tl bmRzL3Bvc3RncmVzcWwvc3RhbmRhcmQtdXNlLXR5cGUuY3BwIFwKLSsgICAgICAgICQodG9wX3Ny Y2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3N0YXRlbWVudC5jcHAgXAotKyAgICAgICAg JCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvdmVjdG9yLWludG8tdHlwZS5j cHAgXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvdmVj dG9yLXVzZS10eXBlLmNwcAotZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2Vu ZHMvcG9zdGdyZXNxbC9zdGFuZGFyZC1pbnRvLXR5cGUuY3BwIHNvY2ktMy4wLjBfdHJlcDMwMC9z b2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvc3RhbmRhcmQtaW50by10eXBlLmNwcAotLS0tIHNvY2kt My4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9zdGFuZGFyZC1pbnRvLXR5cGUu Y3BwCTIwMDktMDUtMjMgMTM6Mzc6MDkuMDAwMDAwMDAwICswMjAwCi0rKysgc29jaS0zLjAuMF90 cmVwMzAwL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9zdGFuZGFyZC1pbnRvLXR5cGUuY3BwCTIw MDktMDUtMjIgMjI6NTQ6MTguMDAwMDAwMDAwICswMjAwCi1AQCAtOCw5ICs4LDE2IEBACi0gI2Rl ZmluZSBTT0NJX1BPU1RHUkVTUUxfU09VUkNFCi0gI2luY2x1ZGUgInNvY2ktcG9zdGdyZXNxbC5o IgotICNpbmNsdWRlICJjb21tb24uaCIKLS0jaW5jbHVkZSAicm93aWQuaCIKLS0jaW5jbHVkZSAi YmxvYi5oIgotLSNpbmNsdWRlIDxsaWJwcS9saWJwcS1mcy5oPiAvLyBsaWJwcQotKy8vCi0rI2lm IGRlZmluZWQoU09DSV9IRUFERVJTX0JVUklFRCkKLSsjICAgICAgIGluY2x1ZGUgPHNvY2kvY29y ZS9ibG9iLmg+Ci0rIyAgICAgICBpbmNsdWRlIDxzb2NpL2NvcmUvcm93aWQuaD4KLSsjZWxzZQot KyMgICAgICAgaW5jbHVkZSA8YmxvYi5oPgotKyMgICAgICAgaW5jbHVkZSA8cm93aWQuaD4KLSsj ZW5kaWYKLSsvLwotKyNpbmNsdWRlIDxsaWJwcS9saWJwcS1mcy5oPiAvLyBsaWJwcSAoUG9zdEdy ZVNRTCBjbGllbnQpCi0gI2luY2x1ZGUgPGNjdHlwZT4KLSAjaW5jbHVkZSA8Y3N0ZGlvPgotICNp bmNsdWRlIDxjc3RyaW5nPgotZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2Vu ZHMvcG9zdGdyZXNxbC9zdGFuZGFyZC11c2UtdHlwZS5jcHAgc29jaS0zLjAuMF90cmVwMzAwL3Nv Y2kvYmFja2VuZHMvcG9zdGdyZXNxbC9zdGFuZGFyZC11c2UtdHlwZS5jcHAKLS0tLSBzb2NpLTMu MC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvc3RhbmRhcmQtdXNlLXR5cGUuY3Bw CTIwMDktMDUtMjMgMTM6Mzc6MDkuMDAwMDAwMDAwICswMjAwCi0rKysgc29jaS0zLjAuMF90cmVw MzAwL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9zdGFuZGFyZC11c2UtdHlwZS5jcHAJMjAwOS0w NS0yMiAyMjo1NDoxOC4wMDAwMDAwMDAgKzAyMDAKLUBAIC03LDggKzcsMTQgQEAKLSAKLSAjZGVm aW5lIFNPQ0lfUE9TVEdSRVNRTF9TT1VSQ0UKLSAjaW5jbHVkZSAic29jaS1wb3N0Z3Jlc3FsLmgi Ci0tI2luY2x1ZGUgInJvd2lkLmgiCi0tI2luY2x1ZGUgPGxpYnBxL2xpYnBxLWZzLmg+IC8vIGxp YnBxCi0rLy8KLSsjaWYgZGVmaW5lZChTT0NJX0hFQURFUlNfQlVSSUVEKQotKyMgICAgICAgaW5j bHVkZSA8c29jaS9jb3JlL3Jvd2lkLmg+Ci0rI2Vsc2UKLSsjICAgICAgIGluY2x1ZGUgPHJvd2lk Lmg+Ci0rI2VuZGlmCi0rLy8KLSsjaW5jbHVkZSA8bGlicHEvbGlicHEtZnMuaD4gLy8gbGlicHEg KFBvc3RHcmVTUUwgY2xpZW50KQotICNpbmNsdWRlIDxjY3R5cGU+Ci0gI2luY2x1ZGUgPGNzdGRp bz4KLSAjaW5jbHVkZSA8Y3N0cmluZz4KLWRpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9zb2Np L2JhY2tlbmRzL3Bvc3RncmVzcWwvdGVzdC9NYWtlZmlsZS5hbSBzb2NpLTMuMC4wX3RyZXAzMDAv c29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Rlc3QvTWFrZWZpbGUuYW0KLS0tLSBzb2NpLTMuMC4w XzQtcGFjay9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvdGVzdC9NYWtlZmlsZS5hbQkxOTcwLTAx LTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAotKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2Np L2JhY2tlbmRzL3Bvc3RncmVzcWwvdGVzdC9NYWtlZmlsZS5hbQkyMDA5LTA1LTIyIDIyOjU0OjE4 LjAwMDAwMDAwMCArMDIwMAotQEAgLTAsMCArMSwxOCBAQAotKyMjIGNvcmUgc3ViLWRpcmVjdG9y eQotK2luY2x1ZGUgJCh0b3Bfc3JjZGlyKS9NYWtlZmlsZS5jb21tb24KLStpbmNsdWRlICQoc3Jj ZGlyKS9zb3VyY2VzLm1rCi0rCi0rTUFJTlRBSU5FUkNMRUFORklMRVMgPSBNYWtlZmlsZS5pbgot KwotK2lmIFJVTl9URVNUUwotKyAgbm9pbnN0X1BST0dSQU1TID0gdGVzdF9wb3N0Z3Jlc3FsCi0r ZW5kaWYKLSsKLSt0ZXN0X3Bvc3RncmVzcWxfU09VUkNFUyA9ICQocG9zdGdyZXNxbF90ZXN0X2Nj X3NvdXJjZXMpCi0rdGVzdF9wb3N0Z3Jlc3FsX0NYWEZMQUdTID0gJChCT09TVF9DRkxBR1MpCi0r dGVzdF9wb3N0Z3Jlc3FsX0xEQUREID0KLSt0ZXN0X3Bvc3RncmVzcWxfTERGTEFHUyA9ICQodG9w X2J1aWxkZGlyKS9zb2NpL2NvcmUvbGlic29jaV9jb3JlLmxhIC1sZGwgXAotKwkJJCh0b3BfYnVp bGRkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9saWJzb2NpX3Bvc3RncmVzcWwubGEgXAot KwkJJChQT1NUR1JFU1FMX0xERkxBR1MpCi0rCi0rI25vZGlzdF9wa2dpbmNsdWRlX0hFQURFUlMg PSAkKHBvc3RncmVzcWxfdGVzdF9oX3NvdXJjZXMpCi1kaWZmIC1OdXIgc29jaS0zLjAuMF80LXBh Y2svc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Rlc3QvTWFrZWZpbGUuYmFzaWMgc29jaS0zLjAu MF90cmVwMzAwL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC90ZXN0L01ha2VmaWxlLmJhc2ljCi0t LS0gc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Rlc3QvTWFrZWZp bGUuYmFzaWMJMjAwOS0wNS0yMyAxMzozNzowOS4wMDAwMDAwMDAgKzAyMDAKLSsrKyBzb2NpLTMu MC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Rlc3QvTWFrZWZpbGUuYmFzaWMJ MTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKLUBAIC0xLDIyICswLDAgQEAKLS0j IFRoZSBmb2xsb3dpbmcgdmFyaWFibGUgaXMgc3BlY2lmaWMgdG8gdGhpcyBiYWNrZW5kIGFuZCBp dHMgY29ycmVjdAotLSMgdmFsdWVzIG1pZ2h0IGRlcGVuZCBvbiB5b3VyIGVudmlyb25tZW50IC0g ZmVlbCBmcmVlIHRvIHNldCBpdCBhY2NvcmRpbmdseS4KLS0KLS1QR1NRTElOQ0xVREVESVIgPSAt SS91c3IvaW5jbHVkZQotLVBHU1FMTElCRElSID0gLUwvdXNyL2xpYgotLVBHU1FMTElCUyA9IC1s cHEKLS0KLS0jIFRoZSByZXN0IG9mIHRoZSBNYWtlZmlsZSBpcyBpbmRlcGVudGVudCBvZiB0aGUg dGFyZ2V0IGVudmlyb25tZW50LgotLQotLUNPTVBJTEVSID0gZysrCi0tQ1hYRkxBR1MgPSAtV2Fs bCAtcGVkYW50aWMgLVduby1sb25nLWxvbmcKLS1JTkNMVURFRElSUyA9IC1JLi4gLUkuLi8uLi8u Li9jb3JlL3Rlc3QgLUkuLi8uLi8uLi9jb3JlICR7UEdTUUxJTkNMVURFRElSfQotLUxJQkRJUlMg PSAtTC4uIC1MLi4vLi4vLi4vY29yZSAke1BHU1FMTElCRElSfQotLUxJQlMgPSAtbHNvY2lfY29y ZSAtbHNvY2lfcG9zdGdyZXNxbCAtbGRsICR7UEdTUUxMSUJTfQotLQotLQotLXRlc3QtcG9zdGdy ZXNxbCA6IHRlc3QtcG9zdGdyZXNxbC5jcHAKLS0JJHtDT01QSUxFUn0gLW8gJEAgJD8gJHtDWFhG TEFHU30gJHtJTkNMVURFRElSU30gJHtMSUJESVJTfSAke0xJQlN9Ci0tCi0tCi0tY2xlYW4gOgot LQlybSAtZiB0ZXN0LXBvc3RncmVzcWwKLWRpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9zb2Np L2JhY2tlbmRzL3Bvc3RncmVzcWwvdGVzdC9NYWtlZmlsZS5pbiBzb2NpLTMuMC4wX3RyZXAzMDAv c29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Rlc3QvTWFrZWZpbGUuaW4KLS0tLSBzb2NpLTMuMC4w XzQtcGFjay9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvdGVzdC9NYWtlZmlsZS5pbgkxOTcwLTAx LTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAotKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2Np L2JhY2tlbmRzL3Bvc3RncmVzcWwvdGVzdC9NYWtlZmlsZS5pbgkyMDA5LTA1LTIzIDEwOjAyOjAy LjAwMDAwMDAwMCArMDIwMAotQEAgLTAsMCArMSw1MjUgQEAKLSsjIE1ha2VmaWxlLmluIGdlbmVy YXRlZCBieSBhdXRvbWFrZSAxLjEwLjIgZnJvbSBNYWtlZmlsZS5hbS4KLSsjIEBjb25maWd1cmVf aW5wdXRACi0rCi0rIyBDb3B5cmlnaHQgKEMpIDE5OTQsIDE5OTUsIDE5OTYsIDE5OTcsIDE5OTgs IDE5OTksIDIwMDAsIDIwMDEsIDIwMDIsCi0rIyAyMDAzLCAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3 LCAyMDA4ICBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KLSsjIFRoaXMgTWFrZWZpbGUu aW4gaXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbgotKyMgZ2l2 ZXMgdW5saW1pdGVkIHBlcm1pc3Npb24gdG8gY29weSBhbmQvb3IgZGlzdHJpYnV0ZSBpdCwKLSsj IHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb25zLCBhcyBsb25nIGFzIHRoaXMgbm90aWNlIGlz IHByZXNlcnZlZC4KLSsKLSsjIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9w ZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZLCB0 byB0aGUgZXh0ZW50IHBlcm1pdHRlZCBieSBsYXc7IHdpdGhvdXQKLSsjIGV2ZW4gdGhlIGltcGxp ZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEKLSsjIFBBUlRJ Q1VMQVIgUFVSUE9TRS4KLSsKLStAU0VUX01BS0VACi0rCi0rVlBBVEggPSBAc3JjZGlyQAotK3Br Z2RhdGFkaXIgPSAkKGRhdGFkaXIpL0BQQUNLQUdFQAotK3BrZ2xpYmRpciA9ICQobGliZGlyKS9A UEFDS0FHRUAKLStwa2dpbmNsdWRlZGlyID0gJChpbmNsdWRlZGlyKS9AUEFDS0FHRUAKLSthbV9f Y2QgPSBDRFBBVEg9IiQke1pTSF9WRVJTSU9OKy59JChQQVRIX1NFUEFSQVRPUikiICYmIGNkCi0r aW5zdGFsbF9zaF9EQVRBID0gJChpbnN0YWxsX3NoKSAtYyAtbSA2NDQKLStpbnN0YWxsX3NoX1BS T0dSQU0gPSAkKGluc3RhbGxfc2gpIC1jCi0raW5zdGFsbF9zaF9TQ1JJUFQgPSAkKGluc3RhbGxf c2gpIC1jCi0rSU5TVEFMTF9IRUFERVIgPSAkKElOU1RBTExfREFUQSkKLSt0cmFuc2Zvcm0gPSAk KHByb2dyYW1fdHJhbnNmb3JtX25hbWUpCi0rTk9STUFMX0lOU1RBTEwgPSA6Ci0rUFJFX0lOU1RB TEwgPSA6Ci0rUE9TVF9JTlNUQUxMID0gOgotK05PUk1BTF9VTklOU1RBTEwgPSA6Ci0rUFJFX1VO SU5TVEFMTCA9IDoKLStQT1NUX1VOSU5TVEFMTCA9IDoKLStidWlsZF90cmlwbGV0ID0gQGJ1aWxk QAotK2hvc3RfdHJpcGxldCA9IEBob3N0QAotK0RJU1RfQ09NTU9OID0gJChzcmNkaXIpL01ha2Vm aWxlLmFtICQoc3JjZGlyKS9NYWtlZmlsZS5pbiBcCi0rCSQoc3JjZGlyKS9zb3VyY2VzLm1rICQo dG9wX3NyY2RpcikvTWFrZWZpbGUuY29tbW9uCi0rQFJVTl9URVNUU19UUlVFQG5vaW5zdF9QUk9H UkFNUyA9IHRlc3RfcG9zdGdyZXNxbCQoRVhFRVhUKQotK3N1YmRpciA9IHNvY2kvYmFja2VuZHMv cG9zdGdyZXNxbC90ZXN0Ci0rQUNMT0NBTF9NNCA9ICQodG9wX3NyY2RpcikvYWNsb2NhbC5tNAot K2FtX19hY2xvY2FsX200X2RlcHMgPSAkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9ib29zdC5tNCBc Ci0rCSQodG9wX3NyY2RpcikvY29uZmlnL2F4X215c3FsLm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9j b25maWcvYXhfb3JhY2xlX29jaS5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmlnL2F4X3Bvc3Rn cmVzcWwubTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9jcHB1bml0Lm00IFwKLSsJJCh0b3Bf c3JjZGlyKS9jb25maWcvbGlidG9vbC5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmlnL2x0b3B0 aW9ucy5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmlnL2x0c3VnYXIubTQgXAotKwkkKHRvcF9z cmNkaXIpL2NvbmZpZy9sdHZlcnNpb24ubTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9sdH5v YnNvbGV0ZS5tNCAkKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZS5hYwotK2FtX19jb25maWd1cmVfZGVw cyA9ICQoYW1fX2FjbG9jYWxfbTRfZGVwcykgJChDT05GSUdVUkVfREVQRU5ERU5DSUVTKSBcCi0r CSQoQUNMT0NBTF9NNCkKLStta2luc3RhbGxkaXJzID0gJChpbnN0YWxsX3NoKSAtZAotK0NPTkZJ R19IRUFERVIgPSAkKHRvcF9idWlsZGRpcikvc29jaS9jb25maWcuaAotK0NPTkZJR19DTEVBTl9G SUxFUyA9Ci0rUFJPR1JBTVMgPSAkKG5vaW5zdF9QUk9HUkFNUykKLSthbV9fb2JqZWN0c18xID0g dGVzdF9wb3N0Z3Jlc3FsLXRlc3QtcG9zdGdyZXNxbC4kKE9CSkVYVCkKLSthbV90ZXN0X3Bvc3Rn cmVzcWxfT0JKRUNUUyA9ICQoYW1fX29iamVjdHNfMSkKLSt0ZXN0X3Bvc3RncmVzcWxfT0JKRUNU UyA9ICQoYW1fdGVzdF9wb3N0Z3Jlc3FsX09CSkVDVFMpCi0rdGVzdF9wb3N0Z3Jlc3FsX0RFUEVO REVOQ0lFUyA9Ci0rdGVzdF9wb3N0Z3Jlc3FsX0xJTksgPSAkKExJQlRPT0wpIC0tdGFnPUNYWCAk KEFNX0xJQlRPT0xGTEFHUykgXAotKwkkKExJQlRPT0xGTEFHUykgLS1tb2RlPWxpbmsgJChDWFhM RCkgXAotKwkkKHRlc3RfcG9zdGdyZXNxbF9DWFhGTEFHUykgJChDWFhGTEFHUykgXAotKwkkKHRl c3RfcG9zdGdyZXNxbF9MREZMQUdTKSAkKExERkxBR1MpIC1vICRACi0rREVGQVVMVF9JTkNMVURF UyA9IC1JLkBhbV9faXNyY0AgLUkkKHRvcF9idWlsZGRpcikvc29jaQotK2RlcGNvbXAgPSAkKFNI RUxMKSAkKHRvcF9zcmNkaXIpL2NvbmZpZy9kZXBjb21wCi0rYW1fX2RlcGZpbGVzX21heWJlID0g ZGVwZmlsZXMKLStDWFhDT01QSUxFID0gJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVT KSAkKElOQ0xVREVTKSBcCi0rCSQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQoQU1fQ1hYRkxB R1MpICQoQ1hYRkxBR1MpCi0rTFRDWFhDT01QSUxFID0gJChMSUJUT09MKSAtLXRhZz1DWFggJChB TV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSBcCi0rCS0tbW9kZT1jb21waWxlICQoQ1hY KSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgXAotKwkkKEFNX0NQUEZM QUdTKSAkKENQUEZMQUdTKSAkKEFNX0NYWEZMQUdTKSAkKENYWEZMQUdTKQotK0NYWExEID0gJChD WFgpCi0rQ1hYTElOSyA9ICQoTElCVE9PTCkgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAk KExJQlRPT0xGTEFHUykgXAotKwktLW1vZGU9bGluayAkKENYWExEKSAkKEFNX0NYWEZMQUdTKSAk KENYWEZMQUdTKSAkKEFNX0xERkxBR1MpIFwKLSsJJChMREZMQUdTKSAtbyAkQAotK1NPVVJDRVMg PSAkKHRlc3RfcG9zdGdyZXNxbF9TT1VSQ0VTKQotK0RJU1RfU09VUkNFUyA9ICQodGVzdF9wb3N0 Z3Jlc3FsX1NPVVJDRVMpCi0rRVRBR1MgPSBldGFncwotK0NUQUdTID0gY3RhZ3MKLStESVNURklM RVMgPSAkKERJU1RfQ09NTU9OKSAkKERJU1RfU09VUkNFUykgJChURVhJTkZPUykgJChFWFRSQV9E SVNUKQotK0FDTE9DQUwgPSBAQUNMT0NBTEAKLStBTVRBUiA9IEBBTVRBUkAKLStBUiA9IEBBUkAK LStBVVRPQ09ORiA9IEBBVVRPQ09ORkAKLStBVVRPSEVBREVSID0gQEFVVE9IRUFERVJACi0rQVVU T01BS0UgPSBAQVVUT01BS0VACi0rQVdLID0gQEFXS0AKLStCT09TVF9DRkxBR1MgPSBAQk9PU1Rf Q0ZMQUdTQAotK0JPT1NUX0RBVEVfVElNRV9MSUIgPSBAQk9PU1RfREFURV9USU1FX0xJQkAKLStC T09TVF9GSUxFU1lTVEVNX0xJQiA9IEBCT09TVF9GSUxFU1lTVEVNX0xJQkAKLStCT09TVF9JT1NU UkVBTVNfTElCID0gQEJPT1NUX0lPU1RSRUFNU19MSUJACi0rQk9PU1RfTElCUyA9IEBCT09TVF9M SUJTQAotK0JPT1NUX1BST0dSQU1fT1BUSU9OU19MSUIgPSBAQk9PU1RfUFJPR1JBTV9PUFRJT05T X0xJQkAKLStCT09TVF9SRUdFWF9MSUIgPSBAQk9PU1RfUkVHRVhfTElCQAotK0JPT1NUX1NFUklB TElaQVRJT05fTElCID0gQEJPT1NUX1NFUklBTElaQVRJT05fTElCQAotK0JPT1NUX1NJR05BTFNf TElCID0gQEJPT1NUX1NJR05BTFNfTElCQAotK0JPT1NUX1RIUkVBRF9MSUIgPSBAQk9PU1RfVEhS RUFEX0xJQkAKLStCT09TVF9VTklUX1RFU1RfRlJBTUVXT1JLX0xJQiA9IEBCT09TVF9VTklUX1RF U1RfRlJBTUVXT1JLX0xJQkAKLStCT09TVF9WRVJTSU9OID0gQEJPT1NUX1ZFUlNJT05ACi0rQk9P U1RfV1NFUklBTElaQVRJT05fTElCID0gQEJPT1NUX1dTRVJJQUxJWkFUSU9OX0xJQkAKLStDQyA9 IEBDQ0AKLStDQ0RFUE1PREUgPSBAQ0NERVBNT0RFQAotK0NGTEFHUyA9IEBDRkxBR1NACi0rQ1BQ ID0gQENQUEAKLStDUFBGTEFHUyA9IEBDUFBGTEFHU0AKLStDUFBVTklUX0NGTEFHUyA9IEBDUFBV TklUX0NGTEFHU0AKLStDUFBVTklUX0NPTkZJRyA9IEBDUFBVTklUX0NPTkZJR0AKLStDUFBVTklU X0xJQlMgPSBAQ1BQVU5JVF9MSUJTQAotK0NQUFVOSVRfVkVSU0lPTiA9IEBDUFBVTklUX1ZFUlNJ T05ACi0rQ1hYID0gQENYWEAKLStDWFhDUFAgPSBAQ1hYQ1BQQAotK0NYWERFUE1PREUgPSBAQ1hY REVQTU9ERUAKLStDWFhGTEFHUyA9IEBDWFhGTEFHU0AKLStDWUdQQVRIX1cgPSBAQ1lHUEFUSF9X QAotK0RFRlMgPSBAREVGU0AKLStERVBESVIgPSBAREVQRElSQAotK0RTWU1VVElMID0gQERTWU1V VElMQAotK0RVTVBCSU4gPSBARFVNUEJJTkAKLStFQ0hPX0MgPSBARUNIT19DQAotK0VDSE9fTiA9 IEBFQ0hPX05ACi0rRUNIT19UID0gQEVDSE9fVEAKLStFR1JFUCA9IEBFR1JFUEAKLStFWEVFWFQg PSBARVhFRVhUQAotK0ZHUkVQID0gQEZHUkVQQAotK0dFTkVSSUNfTElCUkFSWV9WRVJTSU9OID0g QEdFTkVSSUNfTElCUkFSWV9WRVJTSU9OQAotK0dSRVAgPSBAR1JFUEAKLStJTlNUQUxMID0gQElO U1RBTExACi0rSU5TVEFMTF9EQVRBID0gQElOU1RBTExfREFUQUAKLStJTlNUQUxMX1BST0dSQU0g PSBASU5TVEFMTF9QUk9HUkFNQAotK0lOU1RBTExfU0NSSVBUID0gQElOU1RBTExfU0NSSVBUQAot K0lOU1RBTExfU1RSSVBfUFJPR1JBTSA9IEBJTlNUQUxMX1NUUklQX1BST0dSQU1ACi0rTEQgPSBA TERACi0rTERGTEFHUyA9IEBMREZMQUdTQAotK0xJQk9CSlMgPSBATElCT0JKU0AKLStMSUJTID0g QExJQlNACi0rTElCVE9PTCA9IEBMSUJUT09MQAotK0xJUE8gPSBATElQT0AKLStMTl9TID0gQExO X1NACi0rTFRMSUJPQkpTID0gQExUTElCT0JKU0AKLStNQUtFSU5GTyA9IEBNQUtFSU5GT0AKLStN S0RJUl9QID0gQE1LRElSX1BACi0rTVlTUUxfQ0ZMQUdTID0gQE1ZU1FMX0NGTEFHU0AKLStNWVNR TF9DT05GSUcgPSBATVlTUUxfQ09ORklHQAotK01ZU1FMX0RJUlMgPSBATVlTUUxfRElSU0AKLStN WVNRTF9MREZMQUdTID0gQE1ZU1FMX0xERkxBR1NACi0rTVlTUUxfVkVSU0lPTiA9IEBNWVNRTF9W RVJTSU9OQAotK05NID0gQE5NQAotK05NRURJVCA9IEBOTUVESVRACi0rT0JKRFVNUCA9IEBPQkpE VU1QQAotK09CSkVYVCA9IEBPQkpFWFRACi0rT1JBQ0xFX0RJUlMgPSBAT1JBQ0xFX0RJUlNACi0r T1JBQ0xFX09DSV9DRkxBR1MgPSBAT1JBQ0xFX09DSV9DRkxBR1NACi0rT1JBQ0xFX09DSV9MREZM QUdTID0gQE9SQUNMRV9PQ0lfTERGTEFHU0AKLStPUkFDTEVfT0NJX1ZFUlNJT04gPSBAT1JBQ0xF X09DSV9WRVJTSU9OQAotK09UT09MID0gQE9UT09MQAotK09UT09MNjQgPSBAT1RPT0w2NEAKLStQ QUNLQUdFID0gQFBBQ0tBR0VACi0rUEFDS0FHRV9CVUdSRVBPUlQgPSBAUEFDS0FHRV9CVUdSRVBP UlRACi0rUEFDS0FHRV9OQU1FID0gQFBBQ0tBR0VfTkFNRUAKLStQQUNLQUdFX1NUUklORyA9IEBQ QUNLQUdFX1NUUklOR0AKLStQQUNLQUdFX1RBUk5BTUUgPSBAUEFDS0FHRV9UQVJOQU1FQAotK1BB Q0tBR0VfVkVSU0lPTiA9IEBQQUNLQUdFX1ZFUlNJT05ACi0rUEFUSF9TRVBBUkFUT1IgPSBAUEFU SF9TRVBBUkFUT1JACi0rUEVSTCA9IEBQRVJMQAotK1BHX0NPTkZJRyA9IEBQR19DT05GSUdACi0r UE9TVEdSRVNRTF9DRkxBR1MgPSBAUE9TVEdSRVNRTF9DRkxBR1NACi0rUE9TVEdSRVNRTF9ESVJT ID0gQFBPU1RHUkVTUUxfRElSU0AKLStQT1NUR1JFU1FMX0xERkxBR1MgPSBAUE9TVEdSRVNRTF9M REZMQUdTQAotK1BPU1RHUkVTUUxfVkVSU0lPTiA9IEBQT1NUR1JFU1FMX1ZFUlNJT05ACi0rUkFO TElCID0gQFJBTkxJQkAKLStSUE1fUkVMRUFTRSA9IEBSUE1fUkVMRUFTRUAKLStTRUQgPSBAU0VE QAotK1NFVF9NQUtFID0gQFNFVF9NQUtFQAotK1NIRUxMID0gQFNIRUxMQAotK1NPQ0lfSEVBREVS U19CVVJJRUQgPSBAU09DSV9IRUFERVJTX0JVUklFREAKLStTT0NJX01ZU1FMX0hFQURFUlNfQlVS SUVEID0gQFNPQ0lfTVlTUUxfSEVBREVSU19CVVJJRURACi0rU09DSV9QT1NUR1JFU1FMX0hFQURF UlNfQlVSSUVEID0gQFNPQ0lfUE9TVEdSRVNRTF9IRUFERVJTX0JVUklFREAKLStTVFJJUCA9IEBT VFJJUEAKLStVUExPQURfQ09NTUFORCA9IEBVUExPQURfQ09NTUFOREAKLStWRVJTSU9OID0gQFZF UlNJT05ACi0rYWJzX2J1aWxkZGlyID0gQGFic19idWlsZGRpckAKLSthYnNfc3JjZGlyID0gQGFi c19zcmNkaXJACi0rYWJzX3RvcF9idWlsZGRpciA9IEBhYnNfdG9wX2J1aWxkZGlyQAotK2Fic190 b3Bfc3JjZGlyID0gQGFic190b3Bfc3JjZGlyQAotK2FjX2N0X0NDID0gQGFjX2N0X0NDQAotK2Fj X2N0X0NYWCA9IEBhY19jdF9DWFhACi0rYWNfY3RfRFVNUEJJTiA9IEBhY19jdF9EVU1QQklOQAot K2FtX19pbmNsdWRlID0gQGFtX19pbmNsdWRlQAotK2FtX19sZWFkaW5nX2RvdCA9IEBhbV9fbGVh ZGluZ19kb3RACi0rYW1fX3F1b3RlID0gQGFtX19xdW90ZUAKLSthbV9fdGFyID0gQGFtX190YXJA Ci0rYW1fX3VudGFyID0gQGFtX191bnRhckAKLStiaW5kaXIgPSBAYmluZGlyQAotK2J1aWxkID0g QGJ1aWxkQAotK2J1aWxkX2FsaWFzID0gQGJ1aWxkX2FsaWFzQAotK2J1aWxkX2NwdSA9IEBidWls ZF9jcHVACi0rYnVpbGRfb3MgPSBAYnVpbGRfb3NACi0rYnVpbGRfdmVuZG9yID0gQGJ1aWxkX3Zl bmRvckAKLStidWlsZGRpciA9IEBidWlsZGRpckAKLStkYXRhZGlyID0gQGRhdGFkaXJACi0rZGF0 YXJvb3RkaXIgPSBAZGF0YXJvb3RkaXJACi0rZGlmZl9vayA9IEBkaWZmX29rQAotK2RvY2RpciA9 IEBkb2NkaXJACi0rZG94eWdlbl9vayA9IEBkb3h5Z2VuX29rQAotK2R2aWRpciA9IEBkdmlkaXJA Ci0rZHZpcHNfb2sgPSBAZHZpcHNfb2tACi0rZXhlY19wcmVmaXggPSBAZXhlY19wcmVmaXhACi0r Z3Nfb2sgPSBAZ3Nfb2tACi0raG9zdCA9IEBob3N0QAotK2hvc3RfYWxpYXMgPSBAaG9zdF9hbGlh c0AKLStob3N0X2NwdSA9IEBob3N0X2NwdUAKLStob3N0X29zID0gQGhvc3Rfb3NACi0raG9zdF92 ZW5kb3IgPSBAaG9zdF92ZW5kb3JACi0raHRtbGRpciA9IEBodG1sZGlyQAotK2luY2x1ZGVkaXIg PSBAaW5jbHVkZWRpckAKLStpbmZvZGlyID0gQGluZm9kaXJACi0raW5zdGFsbF9zaCA9IEBpbnN0 YWxsX3NoQAotK2xhdGV4X29rID0gQGxhdGV4X29rQAotK2xpYmRpciA9IEBsaWJkaXJACi0rbGli ZXhlY2RpciA9IEBsaWJleGVjZGlyQAotK2xvY2FsZWRpciA9IEBsb2NhbGVkaXJACi0rbG9jYWxz dGF0ZWRpciA9IEBsb2NhbHN0YXRlZGlyQAotK2x0X0VDSE8gPSBAbHRfRUNIT0AKLSttYW5kaXIg PSBAbWFuZGlyQAotK21rZGlyX3AgPSBAbWtkaXJfcEAKLStvbGRpbmNsdWRlZGlyID0gQG9sZGlu Y2x1ZGVkaXJACi0rcGRmZGlyID0gQHBkZmRpckAKLStwcmVmaXggPSBAcHJlZml4QAotK3Byb2dy YW1fdHJhbnNmb3JtX25hbWUgPSBAcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZUAKLStwc2RpciA9IEBw c2RpckAKLStzYmluZGlyID0gQHNiaW5kaXJACi0rc2VkX29rID0gQHNlZF9va0AKLStzaGFyZWRz dGF0ZWRpciA9IEBzaGFyZWRzdGF0ZWRpckAKLStzcmNkaXIgPSBAc3JjZGlyQAotK3N5c2NvbmZk aXIgPSBAc3lzY29uZmRpckAKLSt0YXJnZXRfYWxpYXMgPSBAdGFyZ2V0X2FsaWFzQAotK3RvcF9i dWlsZF9wcmVmaXggPSBAdG9wX2J1aWxkX3ByZWZpeEAKLSt0b3BfYnVpbGRkaXIgPSBAdG9wX2J1 aWxkZGlyQAotK3RvcF9zcmNkaXIgPSBAdG9wX3NyY2RpckAKLStBTV9DUFBGTEFHUyA9IC1JJCh0 b3BfYnVpbGRkaXIpIC1JJCh0b3Bfc3JjZGlyKQotK3Bvc3RncmVzcWxfdGVzdF9oX3NvdXJjZXMg PSAKLStwb3N0Z3Jlc3FsX3Rlc3RfY2Nfc291cmNlcyA9ICQodG9wX3NyY2Rpcikvc29jaS9iYWNr ZW5kcy9wb3N0Z3Jlc3FsL3Rlc3QvdGVzdC1wb3N0Z3Jlc3FsLmNwcAotK01BSU5UQUlORVJDTEVB TkZJTEVTID0gTWFrZWZpbGUuaW4KLSt0ZXN0X3Bvc3RncmVzcWxfU09VUkNFUyA9ICQocG9zdGdy ZXNxbF90ZXN0X2NjX3NvdXJjZXMpCi0rdGVzdF9wb3N0Z3Jlc3FsX0NYWEZMQUdTID0gJChCT09T VF9DRkxBR1MpCi0rdGVzdF9wb3N0Z3Jlc3FsX0xEQUREID0gCi0rdGVzdF9wb3N0Z3Jlc3FsX0xE RkxBR1MgPSAkKHRvcF9idWlsZGRpcikvc29jaS9jb3JlL2xpYnNvY2lfY29yZS5sYSAtbGRsIFwK LSsJCSQodG9wX2J1aWxkZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvbGlic29jaV9wb3N0 Z3Jlc3FsLmxhIFwKLSsJCSQoUE9TVEdSRVNRTF9MREZMQUdTKQotKwotK2FsbDogYWxsLWFtCi0r Ci0rLlNVRkZJWEVTOgotKy5TVUZGSVhFUzogLmNwcCAubG8gLm8gLm9iagotKyQoc3JjZGlyKS9N YWtlZmlsZS5pbjogICQoc3JjZGlyKS9NYWtlZmlsZS5hbSAkKHRvcF9zcmNkaXIpL01ha2VmaWxl LmNvbW1vbiAkKHNyY2Rpcikvc291cmNlcy5tayAkKGFtX19jb25maWd1cmVfZGVwcykKLSsJQGZv ciBkZXAgaW4gJD87IGRvIFwKLSsJICBjYXNlICckKGFtX19jb25maWd1cmVfZGVwcyknIGluIFwK LSsJICAgICokJGRlcCopIFwKLSsJICAgICAgKCBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtF KSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2ggKSBcCi0rCSAgICAgICAgJiYgeyBpZiB0ZXN0 IC1mICRAOyB0aGVuIGV4aXQgMDsgZWxzZSBicmVhazsgZmk7IH07IFwKLSsJICAgICAgZXhpdCAx OzsgXAotKwkgIGVzYWM7IFwKLSsJZG9uZTsgXAotKwllY2hvICcgY2QgJCh0b3Bfc3JjZGlyKSAm JiAkKEFVVE9NQUtFKSAtLWdudSAgc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Rlc3QvTWFrZWZp bGUnOyBcCi0rCWNkICQodG9wX3NyY2RpcikgJiYgXAotKwkgICQoQVVUT01BS0UpIC0tZ251ICBz b2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvdGVzdC9NYWtlZmlsZQotKy5QUkVDSU9VUzogTWFrZWZp bGUKLStNYWtlZmlsZTogJChzcmNkaXIpL01ha2VmaWxlLmluICQodG9wX2J1aWxkZGlyKS9jb25m aWcuc3RhdHVzCi0rCUBjYXNlICckPycgaW4gXAotKwkgICpjb25maWcuc3RhdHVzKikgXAotKwkg ICAgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZy ZXNoOzsgXAotKwkgICopIFwKLSsJICAgIGVjaG8gJyBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChT SEVMTCkgLi9jb25maWcuc3RhdHVzICQoc3ViZGlyKS8kQCAkKGFtX19kZXBmaWxlc19tYXliZSkn OyBcCi0rCSAgICBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChTSEVMTCkgLi9jb25maWcuc3RhdHVz ICQoc3ViZGlyKS8kQCAkKGFtX19kZXBmaWxlc19tYXliZSk7OyBcCi0rCWVzYWM7Ci0rCi0rJCh0 b3BfYnVpbGRkaXIpL2NvbmZpZy5zdGF0dXM6ICQodG9wX3NyY2RpcikvY29uZmlndXJlICQoQ09O RklHX1NUQVRVU19ERVBFTkRFTkNJRVMpCi0rCWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0Up ICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaAotKwotKyQodG9wX3NyY2RpcikvY29uZmlndXJl OiAgJChhbV9fY29uZmlndXJlX2RlcHMpCi0rCWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0Up ICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaAotKyQoQUNMT0NBTF9NNCk6ICAkKGFtX19hY2xv Y2FsX200X2RlcHMpCi0rCWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZM QUdTKSBhbS0tcmVmcmVzaAotKwotK2NsZWFuLW5vaW5zdFBST0dSQU1TOgotKwlAbGlzdD0nJChu b2luc3RfUFJPR1JBTVMpJzsgZm9yIHAgaW4gJCRsaXN0OyBkbyBcCi0rCSAgZj1gZWNobyAkJHB8 c2VkICdzLyQoRVhFRVhUKSQkLy8nYDsgXAotKwkgIGVjaG8gIiBybSAtZiAkJHAgJCRmIjsgXAot KwkgIHJtIC1mICQkcCAkJGYgOyBcCi0rCWRvbmUKLSt0ZXN0X3Bvc3RncmVzcWwkKEVYRUVYVCk6 ICQodGVzdF9wb3N0Z3Jlc3FsX09CSkVDVFMpICQodGVzdF9wb3N0Z3Jlc3FsX0RFUEVOREVOQ0lF UykgCi0rCUBybSAtZiB0ZXN0X3Bvc3RncmVzcWwkKEVYRUVYVCkKLSsJJCh0ZXN0X3Bvc3RncmVz cWxfTElOSykgJCh0ZXN0X3Bvc3RncmVzcWxfT0JKRUNUUykgJCh0ZXN0X3Bvc3RncmVzcWxfTERB REQpICQoTElCUykKLSsKLSttb3N0bHljbGVhbi1jb21waWxlOgotKwktcm0gLWYgKi4kKE9CSkVY VCkKLSsKLStkaXN0Y2xlYW4tY29tcGlsZToKLSsJLXJtIC1mICoudGFiLmMKLSsKLStAQU1ERVBf VFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvdGVzdF9wb3N0Z3Jlc3Fs LXRlc3QtcG9zdGdyZXNxbC5Qb0BhbV9fcXVvdGVACi0rCi0rLmNwcC5vOgotK0BhbV9fZmFzdGRl cENYWF9UUlVFQAkkKENYWENPTVBJTEUpIC1NVCAkQCAtTUQgLU1QIC1NRiAkKERFUERJUikvJCou VHBvIC1jIC1vICRAICQ8Ci0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACW12IC1mICQoREVQRElSKS8k Ki5UcG8gJChERVBESVIpLyQqLlBvCi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNF QAlzb3VyY2U9JyQ8JyBvYmplY3Q9JyRAJyBsaWJ0b29sPW5vIEBBTURFUEJBQ0tTTEFTSEAKLStA QU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDWFhE RVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKLStAYW1fX2Zhc3RkZXBDWFhfRkFM U0VACSQoQ1hYQ09NUElMRSkgLWMgLW8gJEAgJDwKLSsKLSsuY3BwLm9iajoKLStAYW1fX2Zhc3Rk ZXBDWFhfVFJVRUAJJChDWFhDT01QSUxFKSAtTVQgJEAgLU1EIC1NUCAtTUYgJChERVBESVIpLyQq LlRwbyAtYyAtbyAkQCBgJChDWUdQQVRIX1cpICckPCdgCi0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVA CW12IC1mICQoREVQRElSKS8kKi5UcG8gJChERVBESVIpLyQqLlBvCi0rQEFNREVQX1RSVUVAQGFt X19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQ8JyBvYmplY3Q9JyRAJyBsaWJ0b29sPW5vIEBB TURFUEJBQ0tTTEFTSEAKLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJ Uj0kKERFUERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKLStA YW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQoQ1hYQ09NUElMRSkgLWMgLW8gJEAgYCQoQ1lHUEFUSF9X KSAnJDwnYAotKwotKy5jcHAubG86Ci0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoTFRDWFhDT01Q SUxFKSAtTVQgJEAgLU1EIC1NUCAtTUYgJChERVBESVIpLyQqLlRwbyAtYyAtbyAkQCAkPAotK0Bh bV9fZmFzdGRlcENYWF9UUlVFQAltdiAtZiAkKERFUERJUikvJCouVHBvICQoREVQRElSKS8kKi5Q bG8KLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJDwnIG9iamVj dD0nJEAnIGxpYnRvb2w9eWVzIEBBTURFUEJBQ0tTTEFTSEAKLStAQU1ERVBfVFJVRUBAYW1fX2Zh c3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXAp IEBBTURFUEJBQ0tTTEFTSEAKLStAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQoTFRDWFhDT01QSUxF KSAtYyAtbyAkQCAkPAotKwotK3Rlc3RfcG9zdGdyZXNxbC10ZXN0LXBvc3RncmVzcWwubzogJCh0 b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvdGVzdC90ZXN0LXBvc3RncmVzcWwu Y3BwCi0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNM VURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJCh0ZXN0X3Bvc3Rn cmVzcWxfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1NVCB0ZXN0X3Bvc3RncmVzcWwtdGVzdC1wb3N0 Z3Jlc3FsLm8gLU1EIC1NUCAtTUYgJChERVBESVIpL3Rlc3RfcG9zdGdyZXNxbC10ZXN0LXBvc3Rn cmVzcWwuVHBvIC1jIC1vIHRlc3RfcG9zdGdyZXNxbC10ZXN0LXBvc3RncmVzcWwubyBgdGVzdCAt ZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvdGVzdC90ZXN0LXBvc3Rn cmVzcWwuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2Vu ZHMvcG9zdGdyZXNxbC90ZXN0L3Rlc3QtcG9zdGdyZXNxbC5jcHAKLStAYW1fX2Zhc3RkZXBDWFhf VFJVRUAJbXYgLWYgJChERVBESVIpL3Rlc3RfcG9zdGdyZXNxbC10ZXN0LXBvc3RncmVzcWwuVHBv ICQoREVQRElSKS90ZXN0X3Bvc3RncmVzcWwtdGVzdC1wb3N0Z3Jlc3FsLlBvCi0rQEFNREVQX1RS VUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQodG9wX3NyY2Rpcikvc29jaS9iYWNr ZW5kcy9wb3N0Z3Jlc3FsL3Rlc3QvdGVzdC1wb3N0Z3Jlc3FsLmNwcCcgb2JqZWN0PSd0ZXN0X3Bv c3RncmVzcWwtdGVzdC1wb3N0Z3Jlc3FsLm8nIGxpYnRvb2w9bm8gQEFNREVQQkFDS1NMQVNIQAot K0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENY WERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAotK0BhbV9fZmFzdGRlcENYWF9G QUxTRUAJJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFN X0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKHRlc3RfcG9zdGdyZXNxbF9DWFhGTEFHUykgJChDWFhG TEFHUykgLWMgLW8gdGVzdF9wb3N0Z3Jlc3FsLXRlc3QtcG9zdGdyZXNxbC5vIGB0ZXN0IC1mICck KHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC90ZXN0L3Rlc3QtcG9zdGdyZXNx bC5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9w b3N0Z3Jlc3FsL3Rlc3QvdGVzdC1wb3N0Z3Jlc3FsLmNwcAotKwotK3Rlc3RfcG9zdGdyZXNxbC10 ZXN0LXBvc3RncmVzcWwub2JqOiAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNx bC90ZXN0L3Rlc3QtcG9zdGdyZXNxbC5jcHAKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChDWFgp ICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAk KENQUEZMQUdTKSAkKHRlc3RfcG9zdGdyZXNxbF9DWFhGTEFHUykgJChDWFhGTEFHUykgLU1UIHRl c3RfcG9zdGdyZXNxbC10ZXN0LXBvc3RncmVzcWwub2JqIC1NRCAtTVAgLU1GICQoREVQRElSKS90 ZXN0X3Bvc3RncmVzcWwtdGVzdC1wb3N0Z3Jlc3FsLlRwbyAtYyAtbyB0ZXN0X3Bvc3RncmVzcWwt dGVzdC1wb3N0Z3Jlc3FsLm9iaiBgaWYgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tl bmRzL3Bvc3RncmVzcWwvdGVzdC90ZXN0LXBvc3RncmVzcWwuY3BwJzsgdGhlbiAkKENZR1BBVEhf VykgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Rlc3QvdGVzdC1wb3N0 Z3Jlc3FsLmNwcCc7IGVsc2UgJChDWUdQQVRIX1cpICckKHNyY2RpcikvJCh0b3Bfc3JjZGlyKS9z b2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvdGVzdC90ZXN0LXBvc3RncmVzcWwuY3BwJzsgZmlgCi0r QGFtX19mYXN0ZGVwQ1hYX1RSVUVACW12IC1mICQoREVQRElSKS90ZXN0X3Bvc3RncmVzcWwtdGVz dC1wb3N0Z3Jlc3FsLlRwbyAkKERFUERJUikvdGVzdF9wb3N0Z3Jlc3FsLXRlc3QtcG9zdGdyZXNx bC5QbwotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSckKHRvcF9z cmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC90ZXN0L3Rlc3QtcG9zdGdyZXNxbC5jcHAn IG9iamVjdD0ndGVzdF9wb3N0Z3Jlc3FsLXRlc3QtcG9zdGdyZXNxbC5vYmonIGxpYnRvb2w9bm8g QEFNREVQQkFDS1NMQVNIQAotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQ RElSPSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAot K0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVT KSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKHRlc3RfcG9zdGdyZXNx bF9DWFhGTEFHUykgJChDWFhGTEFHUykgLWMgLW8gdGVzdF9wb3N0Z3Jlc3FsLXRlc3QtcG9zdGdy ZXNxbC5vYmogYGlmIHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jl c3FsL3Rlc3QvdGVzdC1wb3N0Z3Jlc3FsLmNwcCc7IHRoZW4gJChDWUdQQVRIX1cpICckKHRvcF9z cmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC90ZXN0L3Rlc3QtcG9zdGdyZXNxbC5jcHAn OyBlbHNlICQoQ1lHUEFUSF9XKSAnJChzcmNkaXIpLyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5k cy9wb3N0Z3Jlc3FsL3Rlc3QvdGVzdC1wb3N0Z3Jlc3FsLmNwcCc7IGZpYAotKwotK21vc3RseWNs ZWFuLWxpYnRvb2w6Ci0rCS1ybSAtZiAqLmxvCi0rCi0rY2xlYW4tbGlidG9vbDoKLSsJLXJtIC1y ZiAubGlicyBfbGlicwotKwotK0lEOiAkKEhFQURFUlMpICQoU09VUkNFUykgJChMSVNQKSAkKFRB R1NfRklMRVMpCi0rCWxpc3Q9JyQoU09VUkNFUykgJChIRUFERVJTKSAkKExJU1ApICQoVEFHU19G SUxFUyknOyBcCi0rCXVuaXF1ZT1gZm9yIGkgaW4gJCRsaXN0OyBkbyBcCi0rCSAgICBpZiB0ZXN0 IC1mICIkJGkiOyB0aGVuIGVjaG8gJCRpOyBlbHNlIGVjaG8gJChzcmNkaXIpLyQkaTsgZmk7IFwK LSsJICBkb25lIHwgXAotKwkgICQoQVdLKSAneyBmaWxlc1skJDBdID0gMTsgbm9uZW1wdHkgPSAx OyB9IFwKLSsJICAgICAgRU5EIHsgaWYgKG5vbmVtcHR5KSB7IGZvciAoaSBpbiBmaWxlcykgcHJp bnQgaTsgfTsgfSdgOyBcCi0rCW1raWQgLWZJRCAkJHVuaXF1ZQotK3RhZ3M6IFRBR1MKLSsKLStU QUdTOiAgJChIRUFERVJTKSAkKFNPVVJDRVMpICAkKFRBR1NfREVQRU5ERU5DSUVTKSBcCi0rCQkk KFRBR1NfRklMRVMpICQoTElTUCkKLSsJdGFncz07IFwKLSsJaGVyZT1gcHdkYDsgXAotKwlsaXN0 PSckKFNPVVJDRVMpICQoSEVBREVSUykgICQoTElTUCkgJChUQUdTX0ZJTEVTKSc7IFwKLSsJdW5p cXVlPWBmb3IgaSBpbiAkJGxpc3Q7IGRvIFwKLSsJICAgIGlmIHRlc3QgLWYgIiQkaSI7IHRoZW4g ZWNobyAkJGk7IGVsc2UgZWNobyAkKHNyY2RpcikvJCRpOyBmaTsgXAotKwkgIGRvbmUgfCBcCi0r CSAgJChBV0spICd7IGZpbGVzWyQkMF0gPSAxOyBub25lbXB0eSA9IDE7IH0gXAotKwkgICAgICBF TkQgeyBpZiAobm9uZW1wdHkpIHsgZm9yIChpIGluIGZpbGVzKSBwcmludCBpOyB9OyB9J2A7IFwK LSsJaWYgdGVzdCAteiAiJChFVEFHU19BUkdTKSQkdGFncyQkdW5pcXVlIjsgdGhlbiA6OyBlbHNl IFwKLSsJICB0ZXN0IC1uICIkJHVuaXF1ZSIgfHwgdW5pcXVlPSQkZW1wdHlfZml4OyBcCi0rCSAg JChFVEFHUykgJChFVEFHU0ZMQUdTKSAkKEFNX0VUQUdTRkxBR1MpICQoRVRBR1NfQVJHUykgXAot KwkgICAgJCR0YWdzICQkdW5pcXVlOyBcCi0rCWZpCi0rY3RhZ3M6IENUQUdTCi0rQ1RBR1M6ICAk KEhFQURFUlMpICQoU09VUkNFUykgICQoVEFHU19ERVBFTkRFTkNJRVMpIFwKLSsJCSQoVEFHU19G SUxFUykgJChMSVNQKQotKwl0YWdzPTsgXAotKwlsaXN0PSckKFNPVVJDRVMpICQoSEVBREVSUykg ICQoTElTUCkgJChUQUdTX0ZJTEVTKSc7IFwKLSsJdW5pcXVlPWBmb3IgaSBpbiAkJGxpc3Q7IGRv IFwKLSsJICAgIGlmIHRlc3QgLWYgIiQkaSI7IHRoZW4gZWNobyAkJGk7IGVsc2UgZWNobyAkKHNy Y2RpcikvJCRpOyBmaTsgXAotKwkgIGRvbmUgfCBcCi0rCSAgJChBV0spICd7IGZpbGVzWyQkMF0g PSAxOyBub25lbXB0eSA9IDE7IH0gXAotKwkgICAgICBFTkQgeyBpZiAobm9uZW1wdHkpIHsgZm9y IChpIGluIGZpbGVzKSBwcmludCBpOyB9OyB9J2A7IFwKLSsJdGVzdCAteiAiJChDVEFHU19BUkdT KSQkdGFncyQkdW5pcXVlIiBcCi0rCSAgfHwgJChDVEFHUykgJChDVEFHU0ZMQUdTKSAkKEFNX0NU QUdTRkxBR1MpICQoQ1RBR1NfQVJHUykgXAotKwkgICAgICQkdGFncyAkJHVuaXF1ZQotKwotK0dU QUdTOgotKwloZXJlPWAkKGFtX19jZCkgJCh0b3BfYnVpbGRkaXIpICYmIHB3ZGAgXAotKwkgICYm IGNkICQodG9wX3NyY2RpcikgXAotKwkgICYmIGd0YWdzIC1pICQoR1RBR1NfQVJHUykgJCRoZXJl Ci0rCi0rZGlzdGNsZWFuLXRhZ3M6Ci0rCS1ybSAtZiBUQUdTIElEIEdUQUdTIEdSVEFHUyBHU1lN UyBHUEFUSCB0YWdzCi0rCi0rZGlzdGRpcjogJChESVNURklMRVMpCi0rCUBzcmNkaXJzdHJpcD1g ZWNobyAiJChzcmNkaXIpIiB8IHNlZCAncy9bXS5bXiQkXFwqXS9cXFxcJi9nJ2A7IFwKLSsJdG9w c3JjZGlyc3RyaXA9YGVjaG8gIiQodG9wX3NyY2RpcikiIHwgc2VkICdzL1tdLlteJCRcXCpdL1xc XFwmL2cnYDsgXAotKwlsaXN0PSckKERJU1RGSUxFUyknOyBcCi0rCSAgZGlzdF9maWxlcz1gZm9y IGZpbGUgaW4gJCRsaXN0OyBkbyBlY2hvICQkZmlsZTsgZG9uZSB8IFwKLSsJICBzZWQgLWUgInN8 XiQkc3JjZGlyc3RyaXAvfHw7dCIgXAotKwkgICAgICAtZSAic3xeJCR0b3BzcmNkaXJzdHJpcC98 JCh0b3BfYnVpbGRkaXIpL3w7dCJgOyBcCi0rCWNhc2UgJCRkaXN0X2ZpbGVzIGluIFwKLSsJICAq LyopICQoTUtESVJfUCkgYGVjaG8gIiQkZGlzdF9maWxlcyIgfCBcCi0rCQkJICAgc2VkICcvXC8v IWQ7c3xefCQoZGlzdGRpcikvfDtzLC9bXi9dKiQkLCwnIHwgXAotKwkJCSAgIHNvcnQgLXVgIDs7 IFwKLSsJZXNhYzsgXAotKwlmb3IgZmlsZSBpbiAkJGRpc3RfZmlsZXM7IGRvIFwKLSsJICBpZiB0 ZXN0IC1mICQkZmlsZSB8fCB0ZXN0IC1kICQkZmlsZTsgdGhlbiBkPS47IGVsc2UgZD0kKHNyY2Rp cik7IGZpOyBcCi0rCSAgaWYgdGVzdCAtZCAkJGQvJCRmaWxlOyB0aGVuIFwKLSsJICAgIGRpcj1g ZWNobyAiLyQkZmlsZSIgfCBzZWQgLWUgJ3MsL1teL10qJCQsLCdgOyBcCi0rCSAgICBpZiB0ZXN0 IC1kICQoc3JjZGlyKS8kJGZpbGUgJiYgdGVzdCAkJGQgIT0gJChzcmNkaXIpOyB0aGVuIFwKLSsJ ICAgICAgY3AgLXBSICQoc3JjZGlyKS8kJGZpbGUgJChkaXN0ZGlyKSQkZGlyIHx8IGV4aXQgMTsg XAotKwkgICAgZmk7IFwKLSsJICAgIGNwIC1wUiAkJGQvJCRmaWxlICQoZGlzdGRpcikkJGRpciB8 fCBleGl0IDE7IFwKLSsJICBlbHNlIFwKLSsJICAgIHRlc3QgLWYgJChkaXN0ZGlyKS8kJGZpbGUg XAotKwkgICAgfHwgY3AgLXAgJCRkLyQkZmlsZSAkKGRpc3RkaXIpLyQkZmlsZSBcCi0rCSAgICB8 fCBleGl0IDE7IFwKLSsJICBmaTsgXAotKwlkb25lCi0rY2hlY2stYW06IGFsbC1hbQotK2NoZWNr OiBjaGVjay1hbQotK2FsbC1hbTogTWFrZWZpbGUgJChQUk9HUkFNUykKLStpbnN0YWxsZGlyczoK LStpbnN0YWxsOiBpbnN0YWxsLWFtCi0raW5zdGFsbC1leGVjOiBpbnN0YWxsLWV4ZWMtYW0KLStp bnN0YWxsLWRhdGE6IGluc3RhbGwtZGF0YS1hbQotK3VuaW5zdGFsbDogdW5pbnN0YWxsLWFtCi0r Ci0raW5zdGFsbC1hbTogYWxsLWFtCi0rCUAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBpbnN0YWxs LWV4ZWMtYW0gaW5zdGFsbC1kYXRhLWFtCi0rCi0raW5zdGFsbGNoZWNrOiBpbnN0YWxsY2hlY2st YW0KLStpbnN0YWxsLXN0cmlwOgotKwkkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBJTlNUQUxMX1BS T0dSQU09IiQoSU5TVEFMTF9TVFJJUF9QUk9HUkFNKSIgXAotKwkgIGluc3RhbGxfc2hfUFJPR1JB TT0iJChJTlNUQUxMX1NUUklQX1BST0dSQU0pIiBJTlNUQUxMX1NUUklQX0ZMQUc9LXMgXAotKwkg IGB0ZXN0IC16ICckKFNUUklQKScgfHwgXAotKwkgICAgZWNobyAiSU5TVEFMTF9QUk9HUkFNX0VO Vj1TVFJJUFBST0c9JyQoU1RSSVApJyJgIGluc3RhbGwKLSttb3N0bHljbGVhbi1nZW5lcmljOgot KwotK2NsZWFuLWdlbmVyaWM6Ci0rCi0rZGlzdGNsZWFuLWdlbmVyaWM6Ci0rCS10ZXN0IC16ICIk KENPTkZJR19DTEVBTl9GSUxFUykiIHx8IHJtIC1mICQoQ09ORklHX0NMRUFOX0ZJTEVTKQotKwot K21haW50YWluZXItY2xlYW4tZ2VuZXJpYzoKLSsJQGVjaG8gIlRoaXMgY29tbWFuZCBpcyBpbnRl bmRlZCBmb3IgbWFpbnRhaW5lcnMgdG8gdXNlIgotKwlAZWNobyAiaXQgZGVsZXRlcyBmaWxlcyB0 aGF0IG1heSByZXF1aXJlIHNwZWNpYWwgdG9vbHMgdG8gcmVidWlsZC4iCi0rCS10ZXN0IC16ICIk KE1BSU5UQUlORVJDTEVBTkZJTEVTKSIgfHwgcm0gLWYgJChNQUlOVEFJTkVSQ0xFQU5GSUxFUykK LStjbGVhbjogY2xlYW4tYW0KLSsKLStjbGVhbi1hbTogY2xlYW4tZ2VuZXJpYyBjbGVhbi1saWJ0 b29sIGNsZWFuLW5vaW5zdFBST0dSQU1TIFwKLSsJbW9zdGx5Y2xlYW4tYW0KLSsKLStkaXN0Y2xl YW46IGRpc3RjbGVhbi1hbQotKwktcm0gLXJmIC4vJChERVBESVIpCi0rCS1ybSAtZiBNYWtlZmls ZQotK2Rpc3RjbGVhbi1hbTogY2xlYW4tYW0gZGlzdGNsZWFuLWNvbXBpbGUgZGlzdGNsZWFuLWdl bmVyaWMgXAotKwlkaXN0Y2xlYW4tdGFncwotKwotK2R2aTogZHZpLWFtCi0rCi0rZHZpLWFtOgot KwotK2h0bWw6IGh0bWwtYW0KLSsKLStpbmZvOiBpbmZvLWFtCi0rCi0raW5mby1hbToKLSsKLStp bnN0YWxsLWRhdGEtYW06Ci0rCi0raW5zdGFsbC1kdmk6IGluc3RhbGwtZHZpLWFtCi0rCi0raW5z dGFsbC1leGVjLWFtOgotKwotK2luc3RhbGwtaHRtbDogaW5zdGFsbC1odG1sLWFtCi0rCi0raW5z dGFsbC1pbmZvOiBpbnN0YWxsLWluZm8tYW0KLSsKLStpbnN0YWxsLW1hbjoKLSsKLStpbnN0YWxs LXBkZjogaW5zdGFsbC1wZGYtYW0KLSsKLStpbnN0YWxsLXBzOiBpbnN0YWxsLXBzLWFtCi0rCi0r aW5zdGFsbGNoZWNrLWFtOgotKwotK21haW50YWluZXItY2xlYW46IG1haW50YWluZXItY2xlYW4t YW0KLSsJLXJtIC1yZiAuLyQoREVQRElSKQotKwktcm0gLWYgTWFrZWZpbGUKLSttYWludGFpbmVy LWNsZWFuLWFtOiBkaXN0Y2xlYW4tYW0gbWFpbnRhaW5lci1jbGVhbi1nZW5lcmljCi0rCi0rbW9z dGx5Y2xlYW46IG1vc3RseWNsZWFuLWFtCi0rCi0rbW9zdGx5Y2xlYW4tYW06IG1vc3RseWNsZWFu LWNvbXBpbGUgbW9zdGx5Y2xlYW4tZ2VuZXJpYyBcCi0rCW1vc3RseWNsZWFuLWxpYnRvb2wKLSsK LStwZGY6IHBkZi1hbQotKwotK3BkZi1hbToKLSsKLStwczogcHMtYW0KLSsKLStwcy1hbToKLSsK LSt1bmluc3RhbGwtYW06Ci0rCi0rLk1BS0U6IGluc3RhbGwtYW0gaW5zdGFsbC1zdHJpcAotKwot Ky5QSE9OWTogQ1RBR1MgR1RBR1MgYWxsIGFsbC1hbSBjaGVjayBjaGVjay1hbSBjbGVhbiBjbGVh bi1nZW5lcmljIFwKLSsJY2xlYW4tbGlidG9vbCBjbGVhbi1ub2luc3RQUk9HUkFNUyBjdGFncyBk aXN0Y2xlYW4gXAotKwlkaXN0Y2xlYW4tY29tcGlsZSBkaXN0Y2xlYW4tZ2VuZXJpYyBkaXN0Y2xl YW4tbGlidG9vbCBcCi0rCWRpc3RjbGVhbi10YWdzIGRpc3RkaXIgZHZpIGR2aS1hbSBodG1sIGh0 bWwtYW0gaW5mbyBpbmZvLWFtIFwKLSsJaW5zdGFsbCBpbnN0YWxsLWFtIGluc3RhbGwtZGF0YSBp bnN0YWxsLWRhdGEtYW0gaW5zdGFsbC1kdmkgXAotKwlpbnN0YWxsLWR2aS1hbSBpbnN0YWxsLWV4 ZWMgaW5zdGFsbC1leGVjLWFtIGluc3RhbGwtaHRtbCBcCi0rCWluc3RhbGwtaHRtbC1hbSBpbnN0 YWxsLWluZm8gaW5zdGFsbC1pbmZvLWFtIGluc3RhbGwtbWFuIFwKLSsJaW5zdGFsbC1wZGYgaW5z dGFsbC1wZGYtYW0gaW5zdGFsbC1wcyBpbnN0YWxsLXBzLWFtIFwKLSsJaW5zdGFsbC1zdHJpcCBp bnN0YWxsY2hlY2sgaW5zdGFsbGNoZWNrLWFtIGluc3RhbGxkaXJzIFwKLSsJbWFpbnRhaW5lci1j bGVhbiBtYWludGFpbmVyLWNsZWFuLWdlbmVyaWMgbW9zdGx5Y2xlYW4gXAotKwltb3N0bHljbGVh bi1jb21waWxlIG1vc3RseWNsZWFuLWdlbmVyaWMgbW9zdGx5Y2xlYW4tbGlidG9vbCBcCi0rCXBk ZiBwZGYtYW0gcHMgcHMtYW0gdGFncyB1bmluc3RhbGwgdW5pbnN0YWxsLWFtCi0rCi0rQFNFVF9N QUtFQAotKwotKyNub2Rpc3RfcGtnaW5jbHVkZV9IRUFERVJTID0gJChwb3N0Z3Jlc3FsX3Rlc3Rf aF9zb3VyY2VzKQotKyMgVGVsbCB2ZXJzaW9ucyBbMy41OSwzLjYzKSBvZiBHTlUgbWFrZSB0byBu b3QgZXhwb3J0IGFsbCB2YXJpYWJsZXMuCi0rIyBPdGhlcndpc2UgYSBzeXN0ZW0gbGltaXQgKGZv ciBTeXNWIGF0IGxlYXN0KSBtYXkgYmUgZXhjZWVkZWQuCi0rLk5PRVhQT1JUOgotZGlmZiAtTnVy IHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC90ZXN0L3NvdXJjZXMu bWsgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC90ZXN0L3NvdXJj ZXMubWsKLS0tLSBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvdGVz dC9zb3VyY2VzLm1rCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCi0rKysgc29j aS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC90ZXN0L3NvdXJjZXMubWsJ MjAwOS0wNS0yMiAyMjo1NDoxOC4wMDAwMDAwMDAgKzAyMDAKLUBAIC0wLDAgKzEsMiBAQAotK3Bv c3RncmVzcWxfdGVzdF9oX3NvdXJjZXMgPQotK3Bvc3RncmVzcWxfdGVzdF9jY19zb3VyY2VzID0g JCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvdGVzdC90ZXN0LXBvc3RncmVz cWwuY3BwCi1kaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9wb3N0Z3Jl c3FsL3Rlc3QvdGVzdC1wb3N0Z3Jlc3FsLmNwcCBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNr ZW5kcy9wb3N0Z3Jlc3FsL3Rlc3QvdGVzdC1wb3N0Z3Jlc3FsLmNwcAotLS0tIHNvY2ktMy4wLjBf NC1wYWNrL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC90ZXN0L3Rlc3QtcG9zdGdyZXNxbC5jcHAJ MjAwOS0wNS0yMyAxMzozNzowOS4wMDAwMDAwMDAgKzAyMDAKLSsrKyBzb2NpLTMuMC4wX3RyZXAz MDAvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Rlc3QvdGVzdC1wb3N0Z3Jlc3FsLmNwcAkyMDA5 LTA1LTIyIDIyOjU0OjE4LjAwMDAwMDAwMCArMDIwMAotQEAgLTUsOSArNSwxNyBAQAotIC8vIGh0 dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKLSAvLwotIAotLSNpbmNsdWRlICJz b2NpLmgiCi0tI2luY2x1ZGUgInNvY2ktcG9zdGdyZXNxbC5oIgotLSNpbmNsdWRlICJjb21tb24t dGVzdHMuaCIKLSsvLwotKyNpZiBkZWZpbmVkKFNPQ0lfSEVBREVSU19CVVJJRUQpCi0rIyAgICAg ICBpbmNsdWRlIDxzb2NpL2NvcmUvc29jaS5oPgotKyMgICAgICAgaW5jbHVkZSA8c29jaS9iYWNr ZW5kcy9wb3N0Z3Jlc3FsL3NvY2ktcG9zdGdyZXNxbC5oPgotKyMgICAgICAgaW5jbHVkZSA8c29j aS9jb3JlL3Rlc3QvY29tbW9uLXRlc3RzLmg+Ci0rI2Vsc2UKLSsjCWluY2x1ZGUgPHNvY2kuaD4K LSsjCWluY2x1ZGUgPHNvY2ktcG9zdGdyZXNxbC5oPgotKyMgICAgICAgaW5jbHVkZSA8dGVzdC9j b21tb24tdGVzdHMuaD4KLSsjZW5kaWYKLSsvLwotICNpbmNsdWRlIDxpb3N0cmVhbT4KLSAjaW5j bHVkZSA8c3N0cmVhbT4KLSAjaW5jbHVkZSA8c3RyaW5nPgotZGlmZiAtTnVyIHNvY2ktMy4wLjBf NC1wYWNrL3NvY2kvY29uZmlnLmguaW4gc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvY29uZmlnLmgu aW4KLS0tLSBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2NvbmZpZy5oLmluCTE5NzAtMDEtMDEgMDE6 MDA6MDAuMDAwMDAwMDAwICswMTAwCi0rKysgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvY29uZmln LmguaW4JMjAwOS0wNS0yMyAxMDowMjowMS4wMDAwMDAwMDAgKzAyMDAKLUBAIC0wLDAgKzEsMTQ2 IEBACi0rLyogc29jaS9jb25maWcuaC5pbi4gIEdlbmVyYXRlZCBmcm9tIGNvbmZpZ3VyZS5hYyBi eSBhdXRvaGVhZGVyLiAgKi8KLSsKLSsvKiBkZWZpbmUgaWYgdGhlIEJvb3N0IGxpYnJhcnkgaXMg YXZhaWxhYmxlICovCi0rI3VuZGVmIEhBVkVfQk9PU1QKLSsKLSsvKiBkZWZpbmUgaWYgdGhlIEJv b3N0OjpEYXRlX1RpbWUgbGlicmFyeSBpcyBhdmFpbGFibGUgKi8KLSsjdW5kZWYgSEFWRV9CT09T VF9EQVRFX1RJTUUKLSsKLSsvKiBkZWZpbmUgaWYgdGhlIEJvb3N0OjpGSUxFU1lTVEVNIGxpYnJh cnkgaXMgYXZhaWxhYmxlICovCi0rI3VuZGVmIEhBVkVfQk9PU1RfRklMRVNZU1RFTQotKwotKy8q IGRlZmluZSBpZiB0aGUgQm9vc3Q6OklPU3RyZWFtcyBsaWJyYXJ5IGlzIGF2YWlsYWJsZSAqLwot KyN1bmRlZiBIQVZFX0JPT1NUX0lPU1RSRUFNUwotKwotKy8qIGRlZmluZSBpZiB0aGUgQm9vc3Q6 OlBST0dSQU1fT1BUSU9OUyBsaWJyYXJ5IGlzIGF2YWlsYWJsZSAqLwotKyN1bmRlZiBIQVZFX0JP T1NUX1BST0dSQU1fT1BUSU9OUwotKwotKy8qIGRlZmluZSBpZiB0aGUgQm9vc3Q6OlJlZ2V4IGxp YnJhcnkgaXMgYXZhaWxhYmxlICovCi0rI3VuZGVmIEhBVkVfQk9PU1RfUkVHRVgKLSsKLSsvKiBk ZWZpbmUgaWYgdGhlIEJvb3N0OjpTZXJpYWxpemF0aW9uIGxpYnJhcnkgaXMgYXZhaWxhYmxlICov Ci0rI3VuZGVmIEhBVkVfQk9PU1RfU0VSSUFMSVpBVElPTgotKwotKy8qIGRlZmluZSBpZiB0aGUg Qm9vc3Q6OlNpZ25hbHMgbGlicmFyeSBpcyBhdmFpbGFibGUgKi8KLSsjdW5kZWYgSEFWRV9CT09T VF9TSUdOQUxTCi0rCi0rLyogZGVmaW5lIGlmIHRoZSBCb29zdDo6VEhSRUFEIGxpYnJhcnkgaXMg YXZhaWxhYmxlICovCi0rI3VuZGVmIEhBVkVfQk9PU1RfVEhSRUFECi0rCi0rLyogZGVmaW5lIGlm IHRoZSBCb29zdDo6VW5pdF90ZXN0X2ZyYW1ld29yayBsaWJyYXJ5IGlzIGF2YWlsYWJsZSAqLwot KyN1bmRlZiBIQVZFX0JPT1NUX1VOSVRfVEVTVF9GUkFNRVdPUksKLSsKLSsvKiBEZWZpbmUgdG8g MSBpZiB5b3UgaGF2ZSB0aGUgPGNtYXRoPiBoZWFkZXIgZmlsZS4gKi8KLSsjdW5kZWYgSEFWRV9D TUFUSAotKwotKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8ZGVxdWU+IGhlYWRlciBm aWxlLiAqLwotKyN1bmRlZiBIQVZFX0RFUVVFCi0rCi0rLyogRGVmaW5lIHRvIDEgaWYgeW91IGhh dmUgdGhlIDxkbGZjbi5oPiBoZWFkZXIgZmlsZS4gKi8KLSsjdW5kZWYgSEFWRV9ETEZDTl9ICi0r Ci0rLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxmc3RyZWFtPiBoZWFkZXIgZmlsZS4g Ki8KLSsjdW5kZWYgSEFWRV9GU1RSRUFNCi0rCi0rLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUg dGhlIDxpbnR0eXBlcy5oPiBoZWFkZXIgZmlsZS4gKi8KLSsjdW5kZWYgSEFWRV9JTlRUWVBFU19I Ci0rCi0rLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxpb21hbmlwPiBoZWFkZXIgZmls ZS4gKi8KLSsjdW5kZWYgSEFWRV9JT01BTklQCi0rCi0rLyogRGVmaW5lIHRvIDEgaWYgeW91IGhh dmUgdGhlIDxpb3N0cmVhbT4gaGVhZGVyIGZpbGUuICovCi0rI3VuZGVmIEhBVkVfSU9TVFJFQU0K LSsKLSsvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPGxpbWl0cz4gaGVhZGVyIGZpbGUu ICovCi0rI3VuZGVmIEhBVkVfTElNSVRTCi0rCi0rLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUg dGhlIDxsaXN0PiBoZWFkZXIgZmlsZS4gKi8KLSsjdW5kZWYgSEFWRV9MSVNUCi0rCi0rLyogRGVm aW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxtYXA+IGhlYWRlciBmaWxlLiAqLwotKyN1bmRlZiBI QVZFX01BUAotKwotKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8bWVtb3J5Lmg+IGhl YWRlciBmaWxlLiAqLwotKyN1bmRlZiBIQVZFX01FTU9SWV9ICi0rCi0rLyogRGVmaW5lIHRvIDEg aWYgTXlTUUwgbGlicmFyaWVzIGFyZSBhdmFpbGFibGUgKi8KLSsjdW5kZWYgSEFWRV9NWVNRTAot KwotKy8qIERlZmluZSB0byAxIGlmIHRoZSBPcmFjbGUgT0NJIGxpYnJhcnkgaXMgYXZhaWxhYmxl ICovCi0rI3VuZGVmIEhBVkVfT1JBQ0xFCi0rCi0rLyogRGVmaW5lIHRvIDEgaWYgUG9zdGdyZVNR TCBsaWJyYXJpZXMgYXJlIGF2YWlsYWJsZSAqLwotKyN1bmRlZiBIQVZFX1BPU1RHUkVTUUwKLSsK LSsvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHF1ZXVlPiBoZWFkZXIgZmlsZS4gKi8K LSsjdW5kZWYgSEFWRV9RVUVVRQotKwotKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8 c2V0PiBoZWFkZXIgZmlsZS4gKi8KLSsjdW5kZWYgSEFWRV9TRVQKLSsKLSsvKiBEZWZpbmUgdG8g MSBpZiB5b3UgaGF2ZSB0aGUgPHNzdHJlYW0+IGhlYWRlciBmaWxlLiAqLwotKyN1bmRlZiBIQVZF X1NTVFJFQU0KLSsKLSsvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN0ZGV4Y2VwdD4g aGVhZGVyIGZpbGUuICovCi0rI3VuZGVmIEhBVkVfU1RERVhDRVBUCi0rCi0rLyogRGVmaW5lIHRv IDEgaWYgeW91IGhhdmUgdGhlIDxzdGRpbnQuaD4gaGVhZGVyIGZpbGUuICovCi0rI3VuZGVmIEhB VkVfU1RESU5UX0gKLSsKLSsvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN0ZGxpYi5o PiBoZWFkZXIgZmlsZS4gKi8KLSsjdW5kZWYgSEFWRV9TVERMSUJfSAotKwotKy8qIERlZmluZSB0 byAxIGlmIHlvdSBoYXZlIHRoZSA8c3RyaW5nPiBoZWFkZXIgZmlsZS4gKi8KLSsjdW5kZWYgSEFW RV9TVFJJTkcKLSsKLSsvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN0cmluZ3MuaD4g aGVhZGVyIGZpbGUuICovCi0rI3VuZGVmIEhBVkVfU1RSSU5HU19ICi0rCi0rLyogRGVmaW5lIHRv IDEgaWYgeW91IGhhdmUgdGhlIDxzdHJpbmcuaD4gaGVhZGVyIGZpbGUuICovCi0rI3VuZGVmIEhB VkVfU1RSSU5HX0gKLSsKLSsvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy9zdGF0 Lmg+IGhlYWRlciBmaWxlLiAqLwotKyN1bmRlZiBIQVZFX1NZU19TVEFUX0gKLSsKLSsvKiBEZWZp bmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy90eXBlcy5oPiBoZWFkZXIgZmlsZS4gKi8KLSsj dW5kZWYgSEFWRV9TWVNfVFlQRVNfSAotKwotKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRo ZSA8dW5pc3RkLmg+IGhlYWRlciBmaWxlLiAqLwotKyN1bmRlZiBIQVZFX1VOSVNURF9ICi0rCi0r LyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDx2ZWN0b3I+IGhlYWRlciBmaWxlLiAqLwot KyN1bmRlZiBIQVZFX1ZFQ1RPUgotKwotKy8qIERlZmluZSB0byB0aGUgc3ViLWRpcmVjdG9yeSBp biB3aGljaCBsaWJ0b29sIHN0b3JlcyB1bmluc3RhbGxlZCBsaWJyYXJpZXMuCi0rICAgKi8KLSsj dW5kZWYgTFRfT0JKRElSCi0rCi0rLyogTmFtZSBvZiBwYWNrYWdlICovCi0rI3VuZGVmIFBBQ0tB R0UKLSsKLSsvKiBEZWZpbmUgdG8gdGhlIGFkZHJlc3Mgd2hlcmUgYnVnIHJlcG9ydHMgZm9yIHRo aXMgcGFja2FnZSBzaG91bGQgYmUgc2VudC4gKi8KLSsjdW5kZWYgUEFDS0FHRV9CVUdSRVBPUlQK LSsKLSsvKiBEZWZpbmUgdG8gdGhlIGZ1bGwgbmFtZSBvZiB0aGlzIHBhY2thZ2UuICovCi0rI3Vu ZGVmIFBBQ0tBR0VfTkFNRQotKwotKy8qIERlZmluZSB0byB0aGUgZnVsbCBuYW1lIGFuZCB2ZXJz aW9uIG9mIHRoaXMgcGFja2FnZS4gKi8KLSsjdW5kZWYgUEFDS0FHRV9TVFJJTkcKLSsKLSsvKiBE ZWZpbmUgdG8gdGhlIG9uZSBzeW1ib2wgc2hvcnQgbmFtZSBvZiB0aGlzIHBhY2thZ2UuICovCi0r I3VuZGVmIFBBQ0tBR0VfVEFSTkFNRQotKwotKy8qIERlZmluZSB0byB0aGUgdmVyc2lvbiBvZiB0 aGlzIHBhY2thZ2UuICovCi0rI3VuZGVmIFBBQ0tBR0VfVkVSU0lPTgotKwotKy8qIERlZmluZSBp ZiB5b3Ugd2FudCBleGNlcHRpb25zIGhhbmRsaW5nICovCi0rI3VuZGVmIFNPQ0lfRVhDRVBUSU9O UwotKwotKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBBTlNJIEMgaGVhZGVyIGZpbGVz LiAqLwotKyN1bmRlZiBTVERDX0hFQURFUlMKLSsKLSsvKiBEZWZpbmUgdG8gMSBpZiB5b3UgY2Fu IHNhZmVseSBpbmNsdWRlIGJvdGggPHN5cy90aW1lLmg+IGFuZCA8dGltZS5oPi4gKi8KLSsjdW5k ZWYgVElNRV9XSVRIX1NZU19USU1FCi0rCi0rLyogVmVyc2lvbiBudW1iZXIgb2YgcGFja2FnZSAq LwotKyN1bmRlZiBWRVJTSU9OCi1kaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svc29jaS9jb3Jl L01ha2VmaWxlLmFtIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2NvcmUvTWFrZWZpbGUuYW0KLS0t LSBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2NvcmUvTWFrZWZpbGUuYW0JMTk3MC0wMS0wMSAwMTow MDowMC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9jb3JlL01h a2VmaWxlLmFtCTIwMDktMDUtMjIgMjI6NTQ6MTguMDAwMDAwMDAwICswMjAwCi1AQCAtMCwwICsx LDI5IEBACi0rIyMgY29yZSBzdWItZGlyZWN0b3J5Ci0raW5jbHVkZSAkKHRvcF9zcmNkaXIpL01h a2VmaWxlLmNvbW1vbgotK2luY2x1ZGUgJChzcmNkaXIpL3NvdXJjZXMubWsKLSsKLStNQUlOVEFJ TkVSQ0xFQU5GSUxFUyA9IE1ha2VmaWxlLmluCi0rCi0rU1VCRElSUyA9IC4gdGVzdAotKwotKyNF WFRSQV9ESVNUX0ZPUl9TT0NJX0NPTVBBVElCSUxJVFkgPSAuX3Jvdy5jcHAgLl9zb2NpLXNpbXBs ZS5jcHAgLl9zb2NpLXNpbXBsZS5oIC5fdmFsdWVzLWV4Y2hhbmdlLmgKLSsKLStFWFRSQV9ESVNU ID0gJChFWFRSQV9ESVNUX0ZPUl9TT0NJX0NPTVBBVElCSUxJVFkpCi0rCi0rbGliX0xUTElCUkFS SUVTPSBsaWJzb2NpX2NvcmUubGEKLSsKLStsaWJzb2NpX2NvcmVfbGFfU09VUkNFUz0gJChjb3Jl X2hfc291cmNlcykgJChjb3JlX2NjX3NvdXJjZXMpIAotK2xpYnNvY2lfY29yZV9sYV9DWFhGTEFH UyA9Ci0rbGlic29jaV9jb3JlX2xhX0xJQkFERCA9Ci0rbGlic29jaV9jb3JlX2xhX0xERkxBR1Mg PSBcCi0rCSQoQk9PU1RfTElCUykgJChCT09TVF9EQVRFX1RJTUVfTElCKSAkKEJPT1NUX1BST0dS QU1fT1BUSU9OU19MSUIpIFwKLSsJLXZlcnNpb24taW5mbyAkKEdFTkVSSUNfTElCUkFSWV9WRVJT SU9OKQotKwotK3BrZ2luY2x1ZGVfSEVBREVSUyA9ICQoY29yZV9oX3NvdXJjZXMpCi0raWYgU09D SV9IRUFERVJTX0JVUklFRAotK3NvY2lfaW5jbHVkZV9kaXIgPSAkKGluY2x1ZGVkaXIpL3NvY2kv Y29yZQotK2Vsc2UKLStzb2NpX2luY2x1ZGVfZGlyID0gJChpbmNsdWRlZGlyKQotK2VuZGlmCi0r cGtnaW5jbHVkZWRpciA9ICQoc29jaV9pbmNsdWRlX2RpcikKLSsKLWRpZmYgLU51ciBzb2NpLTMu MC4wXzQtcGFjay9zb2NpL2NvcmUvTWFrZWZpbGUuYmFzaWMgc29jaS0zLjAuMF90cmVwMzAwL3Nv Y2kvY29yZS9NYWtlZmlsZS5iYXNpYwotLS0tIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvY29yZS9N YWtlZmlsZS5iYXNpYwkyMDA5LTA1LTIzIDEzOjM3OjA5LjAwMDAwMDAwMCArMDIwMAotKysrIHNv Y2ktMy4wLjBfdHJlcDMwMC9zb2NpL2NvcmUvTWFrZWZpbGUuYmFzaWMJMTk3MC0wMS0wMSAwMTow MDowMC4wMDAwMDAwMDAgKzAxMDAKLUBAIC0xLDc2ICswLDAgQEAKLS1DT01QSUxFUiA9IGcrKwot LUNYWEZMQUdTID0gLVdhbGwgLXBlZGFudGljIC1Xbm8tbG9uZy1sb25nCi0tSU5DTFVERURJUlMg PSAKLS1PQkpTID0gIHNlc3Npb24ubyBzdGF0ZW1lbnQubyByb3cubyB2YWx1ZXMubyBcCi0tCWlu dG8tdHlwZS5vIHVzZS10eXBlLm8gXAotLQlibG9iLm8gcm93aWQubyBwcm9jZWR1cmUubyByZWYt Y291bnRlZC1wcmVwYXJlLWluZm8ubyByZWYtY291bnRlZC1zdGF0ZW1lbnQubyBcCi0tCW9uY2Ut dGVtcC10eXBlLm8gcHJlcGFyZS10ZW1wLXR5cGUubyBlcnJvci5vIHRyYW5zYWN0aW9uLm8gYmFj a2VuZC1sb2FkZXIubyBcCi0tCWNvbm5lY3Rpb24tcG9vbC5vIHNvY2ktc2ltcGxlLm8KLS0KLS0K LS1saWJzb2NpX2NvcmUuYSA6ICR7T0JKU30gCi0tCWFyIHJ2ICRAICQ/Ci0tCXJtICoubwotLQot LXNoYXJlZCA6ICR7T0JKU30gCi0tCSR7Q09NUElMRVJ9IC1mUElDIC1jICQ/ICR7Q1hYRkxBR1N9 ICR7SU5DTFVERURJUlN9Ci0tCSR7Q09NUElMRVJ9IC1zaGFyZWQgLW8gbGlic29jaV9jb3JlLnNv ICR7T0JKU30gCi0tCXJtICoubwotLQotLXNlc3Npb24ubyA6IHNlc3Npb24uY3BwCi0tCSR7Q09N UElMRVJ9IC1jICQ/ICR7Q1hYRkxBR1N9ICR7SU5DTFVERURJUlN9Ci0tCi0tc3RhdGVtZW50Lm8g OiBzdGF0ZW1lbnQuY3BwCi0tCSR7Q09NUElMRVJ9IC1jICQ/ICR7Q1hYRkxBR1N9ICR7SU5DTFVE RURJUlN9Ci0tCi0tcm93Lm8gOiByb3cuY3BwCi0tCSR7Q09NUElMRVJ9IC1jICQ/ICR7Q1hYRkxB R1N9ICR7SU5DTFVERURJUlN9Ci0tCi0tdmFsdWVzLm8gOiB2YWx1ZXMuY3BwCi0tCSR7Q09NUElM RVJ9IC1jICQ/ICR7Q1hYRkxBR1N9ICR7SU5DTFVERURJUlN9Ci0tCi0taW50by10eXBlLm8gOiBp bnRvLXR5cGUuY3BwCi0tCSR7Q09NUElMRVJ9IC1jICQ/ICR7Q1hYRkxBR1N9ICR7SU5DTFVERURJ UlN9Ci0tCi0tdXNlLXR5cGUubyA6IHVzZS10eXBlLmNwcAotLQkke0NPTVBJTEVSfSAtYyAkPyAk e0NYWEZMQUdTfSAke0lOQ0xVREVESVJTfQotLQkKLS1ibG9iLm8gOiBibG9iLmNwcAotLQkke0NP TVBJTEVSfSAtYyAkPyAke0NYWEZMQUdTfSAke0lOQ0xVREVESVJTfQotLQotLWVycm9yLm8gOiBl cnJvci5jcHAKLS0JJHtDT01QSUxFUn0gLWMgJD8gJHtDWFhGTEFHU30gJHtJTkNMVURFRElSU30K LS0KLS1yb3dpZC5vIDogcm93aWQuY3BwCi0tCSR7Q09NUElMRVJ9IC1jICQ/ICR7Q1hYRkxBR1N9 ICR7SU5DTFVERURJUlN9Ci0tCi0tcHJvY2VkdXJlLm8gOiBwcm9jZWR1cmUuY3BwCi0tCSR7Q09N UElMRVJ9IC1jICQ/ICR7Q1hYRkxBR1N9ICR7SU5DTFVERURJUlN9Ci0tCi0tcmVmLWNvdW50ZWQt cHJlcGFyZS1pbmZvLm8gOiByZWYtY291bnRlZC1wcmVwYXJlLWluZm8uY3BwCi0tCSR7Q09NUElM RVJ9IC1jICQ/ICR7Q1hYRkxBR1N9ICR7SU5DTFVERURJUlN9Ci0tCi0tcmVmLWNvdW50ZWQtc3Rh dGVtZW50Lm8gOiByZWYtY291bnRlZC1zdGF0ZW1lbnQuY3BwCi0tCSR7Q09NUElMRVJ9IC1jICQ/ ICR7Q1hYRkxBR1N9ICR7SU5DTFVERURJUlN9Ci0tCi0tb25jZS10ZW1wLXR5cGUubyA6IG9uY2Ut dGVtcC10eXBlLmNwcAotLQkke0NPTVBJTEVSfSAtYyAkPyAke0NYWEZMQUdTfSAke0lOQ0xVREVE SVJTfQotLQotLXByZXBhcmUtdGVtcC10eXBlLm8gOiBwcmVwYXJlLXRlbXAtdHlwZS5jcHAKLS0J JHtDT01QSUxFUn0gLWMgJD8gJHtDWFhGTEFHU30gJHtJTkNMVURFRElSU30KLS0KLS10cmFuc2Fj dGlvbi5vIDogdHJhbnNhY3Rpb24uY3BwCi0tCSR7Q09NUElMRVJ9IC1jICQ/ICR7Q1hYRkxBR1N9 ICR7SU5DTFVERURJUlN9Ci0tCi0tYmFja2VuZC1sb2FkZXIubyA6IGJhY2tlbmQtbG9hZGVyLmNw cAotLQkke0NPTVBJTEVSfSAtYyAkPyAke0NYWEZMQUdTfSAke0lOQ0xVREVESVJTfQotLQotLWNv bm5lY3Rpb24tcG9vbC5vIDogY29ubmVjdGlvbi1wb29sLmNwcAotLQkke0NPTVBJTEVSfSAtYyAk PyAke0NYWEZMQUdTfSAke0lOQ0xVREVESVJTfQotLQotLXNvY2ktc2ltcGxlLm8gOiBzb2NpLXNp bXBsZS5jcHAKLS0JJHtDT01QSUxFUn0gLWMgJD8gJHtDWFhGTEFHU30gJHtJTkNMVURFRElSU30K LS0KLS0KLS1jbGVhbiA6Ci0tCXJtIC1mIGxpYnNvY2lfY29yZS5hIGxpYnNvY2lfY29yZS5zbwot ZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvY29yZS9NYWtlZmlsZS5pbiBzb2NpLTMu MC4wX3RyZXAzMDAvc29jaS9jb3JlL01ha2VmaWxlLmluCi0tLS0gc29jaS0zLjAuMF80LXBhY2sv c29jaS9jb3JlL01ha2VmaWxlLmluCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAw Ci0rKysgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvY29yZS9NYWtlZmlsZS5pbgkyMDA5LTA1LTIz IDEwOjAyOjAzLjAwMDAwMDAwMCArMDIwMAotQEAgLTAsMCArMSw5MDUgQEAKLSsjIE1ha2VmaWxl LmluIGdlbmVyYXRlZCBieSBhdXRvbWFrZSAxLjEwLjIgZnJvbSBNYWtlZmlsZS5hbS4KLSsjIEBj b25maWd1cmVfaW5wdXRACi0rCi0rIyBDb3B5cmlnaHQgKEMpIDE5OTQsIDE5OTUsIDE5OTYsIDE5 OTcsIDE5OTgsIDE5OTksIDIwMDAsIDIwMDEsIDIwMDIsCi0rIyAyMDAzLCAyMDA0LCAyMDA1LCAy MDA2LCAyMDA3LCAyMDA4ICBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KLSsjIFRoaXMg TWFrZWZpbGUuaW4gaXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv bgotKyMgZ2l2ZXMgdW5saW1pdGVkIHBlcm1pc3Npb24gdG8gY29weSBhbmQvb3IgZGlzdHJpYnV0 ZSBpdCwKLSsjIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb25zLCBhcyBsb25nIGFzIHRoaXMg bm90aWNlIGlzIHByZXNlcnZlZC4KLSsKLSsjIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBp biB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotKyMgYnV0IFdJVEhPVVQgQU5ZIFdB UlJBTlRZLCB0byB0aGUgZXh0ZW50IHBlcm1pdHRlZCBieSBsYXc7IHdpdGhvdXQKLSsjIGV2ZW4g dGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEK LSsjIFBBUlRJQ1VMQVIgUFVSUE9TRS4KLSsKLStAU0VUX01BS0VACi0rCi0rCi0rVlBBVEggPSBA c3JjZGlyQAotK3BrZ2RhdGFkaXIgPSAkKGRhdGFkaXIpL0BQQUNLQUdFQAotK3BrZ2xpYmRpciA9 ICQobGliZGlyKS9AUEFDS0FHRUAKLSthbV9fY2QgPSBDRFBBVEg9IiQke1pTSF9WRVJTSU9OKy59 JChQQVRIX1NFUEFSQVRPUikiICYmIGNkCi0raW5zdGFsbF9zaF9EQVRBID0gJChpbnN0YWxsX3No KSAtYyAtbSA2NDQKLStpbnN0YWxsX3NoX1BST0dSQU0gPSAkKGluc3RhbGxfc2gpIC1jCi0raW5z dGFsbF9zaF9TQ1JJUFQgPSAkKGluc3RhbGxfc2gpIC1jCi0rSU5TVEFMTF9IRUFERVIgPSAkKElO U1RBTExfREFUQSkKLSt0cmFuc2Zvcm0gPSAkKHByb2dyYW1fdHJhbnNmb3JtX25hbWUpCi0rTk9S TUFMX0lOU1RBTEwgPSA6Ci0rUFJFX0lOU1RBTEwgPSA6Ci0rUE9TVF9JTlNUQUxMID0gOgotK05P Uk1BTF9VTklOU1RBTEwgPSA6Ci0rUFJFX1VOSU5TVEFMTCA9IDoKLStQT1NUX1VOSU5TVEFMTCA9 IDoKLStidWlsZF90cmlwbGV0ID0gQGJ1aWxkQAotK2hvc3RfdHJpcGxldCA9IEBob3N0QAotK0RJ U1RfQ09NTU9OID0gJChwa2dpbmNsdWRlX0hFQURFUlMpICQoc3JjZGlyKS9NYWtlZmlsZS5hbSBc Ci0rCSQoc3JjZGlyKS9NYWtlZmlsZS5pbiAkKHNyY2Rpcikvc291cmNlcy5tayBcCi0rCSQodG9w X3NyY2RpcikvTWFrZWZpbGUuY29tbW9uCi0rc3ViZGlyID0gc29jaS9jb3JlCi0rQUNMT0NBTF9N NCA9ICQodG9wX3NyY2RpcikvYWNsb2NhbC5tNAotK2FtX19hY2xvY2FsX200X2RlcHMgPSAkKHRv cF9zcmNkaXIpL2NvbmZpZy9heF9ib29zdC5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmlnL2F4 X215c3FsLm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfb3JhY2xlX29jaS5tNCBcCi0r CSQodG9wX3NyY2RpcikvY29uZmlnL2F4X3Bvc3RncmVzcWwubTQgXAotKwkkKHRvcF9zcmNkaXIp L2NvbmZpZy9jcHB1bml0Lm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvbGlidG9vbC5tNCBc Ci0rCSQodG9wX3NyY2RpcikvY29uZmlnL2x0b3B0aW9ucy5tNCBcCi0rCSQodG9wX3NyY2Rpcikv Y29uZmlnL2x0c3VnYXIubTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9sdHZlcnNpb24ubTQg XAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9sdH5vYnNvbGV0ZS5tNCAkKHRvcF9zcmNkaXIpL2Nv bmZpZ3VyZS5hYwotK2FtX19jb25maWd1cmVfZGVwcyA9ICQoYW1fX2FjbG9jYWxfbTRfZGVwcykg JChDT05GSUdVUkVfREVQRU5ERU5DSUVTKSBcCi0rCSQoQUNMT0NBTF9NNCkKLStta2luc3RhbGxk aXJzID0gJChpbnN0YWxsX3NoKSAtZAotK0NPTkZJR19IRUFERVIgPSAkKHRvcF9idWlsZGRpcikv c29jaS9jb25maWcuaAotK0NPTkZJR19DTEVBTl9GSUxFUyA9Ci0rYW1fX3ZwYXRoX2Fkal9zZXR1 cCA9IHNyY2RpcnN0cmlwPWBlY2hvICIkKHNyY2RpcikiIHwgc2VkICdzfC58LnxnJ2A7Ci0rYW1f X3ZwYXRoX2FkaiA9IGNhc2UgJCRwIGluIFwKLSsgICAgJChzcmNkaXIpLyopIGY9YGVjaG8gIiQk cCIgfCBzZWQgInN8XiQkc3JjZGlyc3RyaXAvfHwiYDs7IFwKLSsgICAgKikgZj0kJHA7OyBcCi0r ICBlc2FjOwotK2FtX19zdHJpcF9kaXIgPSBgZWNobyAkJHAgfCBzZWQgLWUgJ3N8Xi4qL3x8J2A7 Ci0rYW1fX2luc3RhbGxkaXJzID0gIiQoREVTVERJUikkKGxpYmRpcikiICIkKERFU1RESVIpJChw a2dpbmNsdWRlZGlyKSIKLStsaWJMVExJQlJBUklFU19JTlNUQUxMID0gJChJTlNUQUxMKQotK0xU TElCUkFSSUVTID0gJChsaWJfTFRMSUJSQVJJRVMpCi0rbGlic29jaV9jb3JlX2xhX0RFUEVOREVO Q0lFUyA9Ci0rYW1fX29iamVjdHNfMSA9Ci0rYW1fX29iamVjdHNfMiA9IGxpYnNvY2lfY29yZV9s YS1iYWNrZW5kLWxvYWRlci5sbyBcCi0rCWxpYnNvY2lfY29yZV9sYS1ibG9iLmxvIGxpYnNvY2lf Y29yZV9sYS1jb25uZWN0aW9uLXBvb2wubG8gXAotKwlsaWJzb2NpX2NvcmVfbGEtZXJyb3IubG8g bGlic29jaV9jb3JlX2xhLWludG8tdHlwZS5sbyBcCi0rCWxpYnNvY2lfY29yZV9sYS1vbmNlLXRl bXAtdHlwZS5sbyBcCi0rCWxpYnNvY2lfY29yZV9sYS1wcmVwYXJlLXRlbXAtdHlwZS5sbyBcCi0r CWxpYnNvY2lfY29yZV9sYS1wcm9jZWR1cmUubG8gXAotKwlsaWJzb2NpX2NvcmVfbGEtcmVmLWNv dW50ZWQtcHJlcGFyZS1pbmZvLmxvIFwKLSsJbGlic29jaV9jb3JlX2xhLXJlZi1jb3VudGVkLXN0 YXRlbWVudC5sbyBcCi0rCWxpYnNvY2lfY29yZV9sYS1yb3cubG8gbGlic29jaV9jb3JlX2xhLXJv d2lkLmxvIFwKLSsJbGlic29jaV9jb3JlX2xhLXNlc3Npb24ubG8gbGlic29jaV9jb3JlX2xhLXNv Y2ktc2ltcGxlLmxvIFwKLSsJbGlic29jaV9jb3JlX2xhLXN0YXRlbWVudC5sbyBsaWJzb2NpX2Nv cmVfbGEtdHJhbnNhY3Rpb24ubG8gXAotKwlsaWJzb2NpX2NvcmVfbGEtdXNlLXR5cGUubG8gbGli c29jaV9jb3JlX2xhLXZhbHVlcy5sbwotK2FtX2xpYnNvY2lfY29yZV9sYV9PQkpFQ1RTID0gJChh bV9fb2JqZWN0c18xKSAkKGFtX19vYmplY3RzXzIpCi0rbGlic29jaV9jb3JlX2xhX09CSkVDVFMg PSAkKGFtX2xpYnNvY2lfY29yZV9sYV9PQkpFQ1RTKQotK2xpYnNvY2lfY29yZV9sYV9MSU5LID0g JChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpIFwKLSsJJChMSUJUT09MRkxB R1MpIC0tbW9kZT1saW5rICQoQ1hYTEQpIFwKLSsJJChsaWJzb2NpX2NvcmVfbGFfQ1hYRkxBR1Mp ICQoQ1hYRkxBR1MpIFwKLSsJJChsaWJzb2NpX2NvcmVfbGFfTERGTEFHUykgJChMREZMQUdTKSAt byAkQAotK0RFRkFVTFRfSU5DTFVERVMgPSAtSS5AYW1fX2lzcmNAIC1JJCh0b3BfYnVpbGRkaXIp L3NvY2kKLStkZXBjb21wID0gJChTSEVMTCkgJCh0b3Bfc3JjZGlyKS9jb25maWcvZGVwY29tcAot K2FtX19kZXBmaWxlc19tYXliZSA9IGRlcGZpbGVzCi0rQ1hYQ09NUElMRSA9ICQoQ1hYKSAkKERF RlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgXAotKwkkKEFNX0NQUEZMQUdTKSAk KENQUEZMQUdTKSAkKEFNX0NYWEZMQUdTKSAkKENYWEZMQUdTKQotK0xUQ1hYQ09NUElMRSA9ICQo TElCVE9PTCkgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgXAot KwktLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5D TFVERVMpIFwKLSsJJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChBTV9DWFhGTEFHUykgJChD WFhGTEFHUykKLStDWFhMRCA9ICQoQ1hYKQotK0NYWExJTksgPSAkKExJQlRPT0wpIC0tdGFnPUNY WCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIFwKLSsJLS1tb2RlPWxpbmsgJChD WFhMRCkgJChBTV9DWFhGTEFHUykgJChDWFhGTEFHUykgJChBTV9MREZMQUdTKSBcCi0rCSQoTERG TEFHUykgLW8gJEAKLStDT01QSUxFID0gJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMp ICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpIFwKLSsJJChDUFBGTEFHUykgJChBTV9DRkxBR1Mp ICQoQ0ZMQUdTKQotK0xUQ09NUElMRSA9ICQoTElCVE9PTCkgLS10YWc9Q0MgJChBTV9MSUJUT09M RkxBR1MpICQoTElCVE9PTEZMQUdTKSBcCi0rCS0tbW9kZT1jb21waWxlICQoQ0MpICQoREVGUykg JChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSBcCi0rCSQoQU1fQ1BQRkxBR1MpICQoQ1BQ RkxBR1MpICQoQU1fQ0ZMQUdTKSAkKENGTEFHUykKLStDQ0xEID0gJChDQykKLStMSU5LID0gJChM SUJUT09MKSAtLXRhZz1DQyAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIFwKLSsJ LS1tb2RlPWxpbmsgJChDQ0xEKSAkKEFNX0NGTEFHUykgJChDRkxBR1MpICQoQU1fTERGTEFHUykg XAotKwkkKExERkxBR1MpIC1vICRACi0rU09VUkNFUyA9ICQobGlic29jaV9jb3JlX2xhX1NPVVJD RVMpCi0rRElTVF9TT1VSQ0VTID0gJChsaWJzb2NpX2NvcmVfbGFfU09VUkNFUykKLStSRUNVUlNJ VkVfVEFSR0VUUyA9IGFsbC1yZWN1cnNpdmUgY2hlY2stcmVjdXJzaXZlIGR2aS1yZWN1cnNpdmUg XAotKwlodG1sLXJlY3Vyc2l2ZSBpbmZvLXJlY3Vyc2l2ZSBpbnN0YWxsLWRhdGEtcmVjdXJzaXZl IFwKLSsJaW5zdGFsbC1kdmktcmVjdXJzaXZlIGluc3RhbGwtZXhlYy1yZWN1cnNpdmUgXAotKwlp bnN0YWxsLWh0bWwtcmVjdXJzaXZlIGluc3RhbGwtaW5mby1yZWN1cnNpdmUgXAotKwlpbnN0YWxs LXBkZi1yZWN1cnNpdmUgaW5zdGFsbC1wcy1yZWN1cnNpdmUgaW5zdGFsbC1yZWN1cnNpdmUgXAot KwlpbnN0YWxsY2hlY2stcmVjdXJzaXZlIGluc3RhbGxkaXJzLXJlY3Vyc2l2ZSBwZGYtcmVjdXJz aXZlIFwKLSsJcHMtcmVjdXJzaXZlIHVuaW5zdGFsbC1yZWN1cnNpdmUKLStwa2dpbmNsdWRlSEVB REVSU19JTlNUQUxMID0gJChJTlNUQUxMX0hFQURFUikKLStIRUFERVJTID0gJChwa2dpbmNsdWRl X0hFQURFUlMpCi0rUkVDVVJTSVZFX0NMRUFOX1RBUkdFVFMgPSBtb3N0bHljbGVhbi1yZWN1cnNp dmUgY2xlYW4tcmVjdXJzaXZlCVwKLSsgIGRpc3RjbGVhbi1yZWN1cnNpdmUgbWFpbnRhaW5lci1j bGVhbi1yZWN1cnNpdmUKLStFVEFHUyA9IGV0YWdzCi0rQ1RBR1MgPSBjdGFncwotK0RJU1RfU1VC RElSUyA9ICQoU1VCRElSUykKLStESVNURklMRVMgPSAkKERJU1RfQ09NTU9OKSAkKERJU1RfU09V UkNFUykgJChURVhJTkZPUykgJChFWFRSQV9ESVNUKQotK3BrZ2luY2x1ZGVkaXIgPSAkKHNvY2lf aW5jbHVkZV9kaXIpCi0rQUNMT0NBTCA9IEBBQ0xPQ0FMQAotK0FNVEFSID0gQEFNVEFSQAotK0FS ID0gQEFSQAotK0FVVE9DT05GID0gQEFVVE9DT05GQAotK0FVVE9IRUFERVIgPSBAQVVUT0hFQURF UkAKLStBVVRPTUFLRSA9IEBBVVRPTUFLRUAKLStBV0sgPSBAQVdLQAotK0JPT1NUX0NGTEFHUyA9 IEBCT09TVF9DRkxBR1NACi0rQk9PU1RfREFURV9USU1FX0xJQiA9IEBCT09TVF9EQVRFX1RJTUVf TElCQAotK0JPT1NUX0ZJTEVTWVNURU1fTElCID0gQEJPT1NUX0ZJTEVTWVNURU1fTElCQAotK0JP T1NUX0lPU1RSRUFNU19MSUIgPSBAQk9PU1RfSU9TVFJFQU1TX0xJQkAKLStCT09TVF9MSUJTID0g QEJPT1NUX0xJQlNACi0rQk9PU1RfUFJPR1JBTV9PUFRJT05TX0xJQiA9IEBCT09TVF9QUk9HUkFN X09QVElPTlNfTElCQAotK0JPT1NUX1JFR0VYX0xJQiA9IEBCT09TVF9SRUdFWF9MSUJACi0rQk9P U1RfU0VSSUFMSVpBVElPTl9MSUIgPSBAQk9PU1RfU0VSSUFMSVpBVElPTl9MSUJACi0rQk9PU1Rf U0lHTkFMU19MSUIgPSBAQk9PU1RfU0lHTkFMU19MSUJACi0rQk9PU1RfVEhSRUFEX0xJQiA9IEBC T09TVF9USFJFQURfTElCQAotK0JPT1NUX1VOSVRfVEVTVF9GUkFNRVdPUktfTElCID0gQEJPT1NU X1VOSVRfVEVTVF9GUkFNRVdPUktfTElCQAotK0JPT1NUX1ZFUlNJT04gPSBAQk9PU1RfVkVSU0lP TkAKLStCT09TVF9XU0VSSUFMSVpBVElPTl9MSUIgPSBAQk9PU1RfV1NFUklBTElaQVRJT05fTElC QAotK0NDID0gQENDQAotK0NDREVQTU9ERSA9IEBDQ0RFUE1PREVACi0rQ0ZMQUdTID0gQENGTEFH U0AKLStDUFAgPSBAQ1BQQAotK0NQUEZMQUdTID0gQENQUEZMQUdTQAotK0NQUFVOSVRfQ0ZMQUdT ID0gQENQUFVOSVRfQ0ZMQUdTQAotK0NQUFVOSVRfQ09ORklHID0gQENQUFVOSVRfQ09ORklHQAot K0NQUFVOSVRfTElCUyA9IEBDUFBVTklUX0xJQlNACi0rQ1BQVU5JVF9WRVJTSU9OID0gQENQUFVO SVRfVkVSU0lPTkAKLStDWFggPSBAQ1hYQAotK0NYWENQUCA9IEBDWFhDUFBACi0rQ1hYREVQTU9E RSA9IEBDWFhERVBNT0RFQAotK0NYWEZMQUdTID0gQENYWEZMQUdTQAotK0NZR1BBVEhfVyA9IEBD WUdQQVRIX1dACi0rREVGUyA9IEBERUZTQAotK0RFUERJUiA9IEBERVBESVJACi0rRFNZTVVUSUwg PSBARFNZTVVUSUxACi0rRFVNUEJJTiA9IEBEVU1QQklOQAotK0VDSE9fQyA9IEBFQ0hPX0NACi0r RUNIT19OID0gQEVDSE9fTkAKLStFQ0hPX1QgPSBARUNIT19UQAotK0VHUkVQID0gQEVHUkVQQAot K0VYRUVYVCA9IEBFWEVFWFRACi0rRkdSRVAgPSBARkdSRVBACi0rR0VORVJJQ19MSUJSQVJZX1ZF UlNJT04gPSBAR0VORVJJQ19MSUJSQVJZX1ZFUlNJT05ACi0rR1JFUCA9IEBHUkVQQAotK0lOU1RB TEwgPSBASU5TVEFMTEAKLStJTlNUQUxMX0RBVEEgPSBASU5TVEFMTF9EQVRBQAotK0lOU1RBTExf UFJPR1JBTSA9IEBJTlNUQUxMX1BST0dSQU1ACi0rSU5TVEFMTF9TQ1JJUFQgPSBASU5TVEFMTF9T Q1JJUFRACi0rSU5TVEFMTF9TVFJJUF9QUk9HUkFNID0gQElOU1RBTExfU1RSSVBfUFJPR1JBTUAK LStMRCA9IEBMREAKLStMREZMQUdTID0gQExERkxBR1NACi0rTElCT0JKUyA9IEBMSUJPQkpTQAot K0xJQlMgPSBATElCU0AKLStMSUJUT09MID0gQExJQlRPT0xACi0rTElQTyA9IEBMSVBPQAotK0xO X1MgPSBATE5fU0AKLStMVExJQk9CSlMgPSBATFRMSUJPQkpTQAotK01BS0VJTkZPID0gQE1BS0VJ TkZPQAotK01LRElSX1AgPSBATUtESVJfUEAKLStNWVNRTF9DRkxBR1MgPSBATVlTUUxfQ0ZMQUdT QAotK01ZU1FMX0NPTkZJRyA9IEBNWVNRTF9DT05GSUdACi0rTVlTUUxfRElSUyA9IEBNWVNRTF9E SVJTQAotK01ZU1FMX0xERkxBR1MgPSBATVlTUUxfTERGTEFHU0AKLStNWVNRTF9WRVJTSU9OID0g QE1ZU1FMX1ZFUlNJT05ACi0rTk0gPSBATk1ACi0rTk1FRElUID0gQE5NRURJVEAKLStPQkpEVU1Q ID0gQE9CSkRVTVBACi0rT0JKRVhUID0gQE9CSkVYVEAKLStPUkFDTEVfRElSUyA9IEBPUkFDTEVf RElSU0AKLStPUkFDTEVfT0NJX0NGTEFHUyA9IEBPUkFDTEVfT0NJX0NGTEFHU0AKLStPUkFDTEVf T0NJX0xERkxBR1MgPSBAT1JBQ0xFX09DSV9MREZMQUdTQAotK09SQUNMRV9PQ0lfVkVSU0lPTiA9 IEBPUkFDTEVfT0NJX1ZFUlNJT05ACi0rT1RPT0wgPSBAT1RPT0xACi0rT1RPT0w2NCA9IEBPVE9P TDY0QAotK1BBQ0tBR0UgPSBAUEFDS0FHRUAKLStQQUNLQUdFX0JVR1JFUE9SVCA9IEBQQUNLQUdF X0JVR1JFUE9SVEAKLStQQUNLQUdFX05BTUUgPSBAUEFDS0FHRV9OQU1FQAotK1BBQ0tBR0VfU1RS SU5HID0gQFBBQ0tBR0VfU1RSSU5HQAotK1BBQ0tBR0VfVEFSTkFNRSA9IEBQQUNLQUdFX1RBUk5B TUVACi0rUEFDS0FHRV9WRVJTSU9OID0gQFBBQ0tBR0VfVkVSU0lPTkAKLStQQVRIX1NFUEFSQVRP UiA9IEBQQVRIX1NFUEFSQVRPUkAKLStQRVJMID0gQFBFUkxACi0rUEdfQ09ORklHID0gQFBHX0NP TkZJR0AKLStQT1NUR1JFU1FMX0NGTEFHUyA9IEBQT1NUR1JFU1FMX0NGTEFHU0AKLStQT1NUR1JF U1FMX0RJUlMgPSBAUE9TVEdSRVNRTF9ESVJTQAotK1BPU1RHUkVTUUxfTERGTEFHUyA9IEBQT1NU R1JFU1FMX0xERkxBR1NACi0rUE9TVEdSRVNRTF9WRVJTSU9OID0gQFBPU1RHUkVTUUxfVkVSU0lP TkAKLStSQU5MSUIgPSBAUkFOTElCQAotK1JQTV9SRUxFQVNFID0gQFJQTV9SRUxFQVNFQAotK1NF RCA9IEBTRURACi0rU0VUX01BS0UgPSBAU0VUX01BS0VACi0rU0hFTEwgPSBAU0hFTExACi0rU09D SV9IRUFERVJTX0JVUklFRCA9IEBTT0NJX0hFQURFUlNfQlVSSUVEQAotK1NPQ0lfTVlTUUxfSEVB REVSU19CVVJJRUQgPSBAU09DSV9NWVNRTF9IRUFERVJTX0JVUklFREAKLStTT0NJX1BPU1RHUkVT UUxfSEVBREVSU19CVVJJRUQgPSBAU09DSV9QT1NUR1JFU1FMX0hFQURFUlNfQlVSSUVEQAotK1NU UklQID0gQFNUUklQQAotK1VQTE9BRF9DT01NQU5EID0gQFVQTE9BRF9DT01NQU5EQAotK1ZFUlNJ T04gPSBAVkVSU0lPTkAKLSthYnNfYnVpbGRkaXIgPSBAYWJzX2J1aWxkZGlyQAotK2Fic19zcmNk aXIgPSBAYWJzX3NyY2RpckAKLSthYnNfdG9wX2J1aWxkZGlyID0gQGFic190b3BfYnVpbGRkaXJA Ci0rYWJzX3RvcF9zcmNkaXIgPSBAYWJzX3RvcF9zcmNkaXJACi0rYWNfY3RfQ0MgPSBAYWNfY3Rf Q0NACi0rYWNfY3RfQ1hYID0gQGFjX2N0X0NYWEAKLSthY19jdF9EVU1QQklOID0gQGFjX2N0X0RV TVBCSU5ACi0rYW1fX2luY2x1ZGUgPSBAYW1fX2luY2x1ZGVACi0rYW1fX2xlYWRpbmdfZG90ID0g QGFtX19sZWFkaW5nX2RvdEAKLSthbV9fcXVvdGUgPSBAYW1fX3F1b3RlQAotK2FtX190YXIgPSBA YW1fX3RhckAKLSthbV9fdW50YXIgPSBAYW1fX3VudGFyQAotK2JpbmRpciA9IEBiaW5kaXJACi0r YnVpbGQgPSBAYnVpbGRACi0rYnVpbGRfYWxpYXMgPSBAYnVpbGRfYWxpYXNACi0rYnVpbGRfY3B1 ID0gQGJ1aWxkX2NwdUAKLStidWlsZF9vcyA9IEBidWlsZF9vc0AKLStidWlsZF92ZW5kb3IgPSBA YnVpbGRfdmVuZG9yQAotK2J1aWxkZGlyID0gQGJ1aWxkZGlyQAotK2RhdGFkaXIgPSBAZGF0YWRp ckAKLStkYXRhcm9vdGRpciA9IEBkYXRhcm9vdGRpckAKLStkaWZmX29rID0gQGRpZmZfb2tACi0r ZG9jZGlyID0gQGRvY2RpckAKLStkb3h5Z2VuX29rID0gQGRveHlnZW5fb2tACi0rZHZpZGlyID0g QGR2aWRpckAKLStkdmlwc19vayA9IEBkdmlwc19va0AKLStleGVjX3ByZWZpeCA9IEBleGVjX3By ZWZpeEAKLStnc19vayA9IEBnc19va0AKLStob3N0ID0gQGhvc3RACi0raG9zdF9hbGlhcyA9IEBo b3N0X2FsaWFzQAotK2hvc3RfY3B1ID0gQGhvc3RfY3B1QAotK2hvc3Rfb3MgPSBAaG9zdF9vc0AK LStob3N0X3ZlbmRvciA9IEBob3N0X3ZlbmRvckAKLStodG1sZGlyID0gQGh0bWxkaXJACi0raW5j bHVkZWRpciA9IEBpbmNsdWRlZGlyQAotK2luZm9kaXIgPSBAaW5mb2RpckAKLStpbnN0YWxsX3No ID0gQGluc3RhbGxfc2hACi0rbGF0ZXhfb2sgPSBAbGF0ZXhfb2tACi0rbGliZGlyID0gQGxpYmRp ckAKLStsaWJleGVjZGlyID0gQGxpYmV4ZWNkaXJACi0rbG9jYWxlZGlyID0gQGxvY2FsZWRpckAK LStsb2NhbHN0YXRlZGlyID0gQGxvY2Fsc3RhdGVkaXJACi0rbHRfRUNITyA9IEBsdF9FQ0hPQAot K21hbmRpciA9IEBtYW5kaXJACi0rbWtkaXJfcCA9IEBta2Rpcl9wQAotK29sZGluY2x1ZGVkaXIg PSBAb2xkaW5jbHVkZWRpckAKLStwZGZkaXIgPSBAcGRmZGlyQAotK3ByZWZpeCA9IEBwcmVmaXhA Ci0rcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZSA9IEBwcm9ncmFtX3RyYW5zZm9ybV9uYW1lQAotK3Bz ZGlyID0gQHBzZGlyQAotK3NiaW5kaXIgPSBAc2JpbmRpckAKLStzZWRfb2sgPSBAc2VkX29rQAot K3NoYXJlZHN0YXRlZGlyID0gQHNoYXJlZHN0YXRlZGlyQAotK3NyY2RpciA9IEBzcmNkaXJACi0r c3lzY29uZmRpciA9IEBzeXNjb25mZGlyQAotK3RhcmdldF9hbGlhcyA9IEB0YXJnZXRfYWxpYXNA Ci0rdG9wX2J1aWxkX3ByZWZpeCA9IEB0b3BfYnVpbGRfcHJlZml4QAotK3RvcF9idWlsZGRpciA9 IEB0b3BfYnVpbGRkaXJACi0rdG9wX3NyY2RpciA9IEB0b3Bfc3JjZGlyQAotK0FNX0NQUEZMQUdT ID0gLUkkKHRvcF9idWlsZGRpcikgLUkkKHRvcF9zcmNkaXIpCi0rY29yZV9oX3NvdXJjZXMgPSBc Ci0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9iYWNrZW5kLWxvYWRlci5oIFwKLSsg ICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL2Jsb2IuaCBcCi0rICAgICAgICAkKHRvcF9z cmNkaXIpL3NvY2kvY29yZS9ibG9iLWV4Y2hhbmdlLmggXAotKyAgICAgICAgJCh0b3Bfc3JjZGly KS9zb2NpL2NvcmUvYm9vc3QtZ3JlZ29yaWFuLWRhdGUuaCBcCi0rICAgICAgICAkKHRvcF9zcmNk aXIpL3NvY2kvY29yZS9ib29zdC1mdXNpb24uaCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3Nv Y2kvY29yZS9ib29zdC1vcHRpb25hbC5oIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9j b3JlL2Jvb3N0LXR1cGxlLmggXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvY29u bmVjdGlvbi1wb29sLmggXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvZXJyb3Iu aCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9leGNoYW5nZS10cmFpdHMuaCBc Ci0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9pbnRvLmggXAotKyAgICAgICAgJCh0 b3Bfc3JjZGlyKS9zb2NpL2NvcmUvaW50by10eXBlLmggXAotKyAgICAgICAgJCh0b3Bfc3JjZGly KS9zb2NpL2NvcmUvb25jZS10ZW1wLXR5cGUuaCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3Nv Y2kvY29yZS9wcmVwYXJlLXRlbXAtdHlwZS5oIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29j aS9jb3JlL3Byb2NlZHVyZS5oIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3Jl Zi1jb3VudGVkLXByZXBhcmUtaW5mby5oIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9j b3JlL3JlZi1jb3VudGVkLXN0YXRlbWVudC5oIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29j aS9jb3JlL3Jvdy5oIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3Jvdy1leGNo YW5nZS5oIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3Jvd2lkLmggXAotKyAg ICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcm93aWQtZXhjaGFuZ2UuaCBcCi0rICAgICAg ICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9yb3dzZXQuaCBcCi0rICAgICAgICAkKHRvcF9zcmNk aXIpL3NvY2kvY29yZS9zZXNzaW9uLmggXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2Nv cmUvc29jaS1iYWNrZW5kLmggXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvc29j aS1jb25maWcuaCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9zb2NpLXBsYXRm b3JtLmggXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvc29jaS1zaW1wbGUuaCBc Ci0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9zb2NpLmggXAotKyAgICAgICAgJCh0 b3Bfc3JjZGlyKS9zb2NpL2NvcmUvc3RhdGVtZW50LmggXAotKyAgICAgICAgJCh0b3Bfc3JjZGly KS9zb2NpL2NvcmUvdHJhbnNhY3Rpb24uaCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kv Y29yZS90eXBlLWNvbnZlcnNpb24uaCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29y ZS90eXBlLWNvbnZlcnNpb24tdHJhaXRzLmggXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2Np L2NvcmUvdHlwZS1ob2xkZXIuaCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS90 eXBlLXB0ci5oIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3VzZS5oIFwKLSsg ICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3VzZS10eXBlLmggXAotKyAgICAgICAgJCh0 b3Bfc3JjZGlyKS9zb2NpL2NvcmUvdmFsdWVzLmggXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9z b2NpL2NvcmUvdmFsdWVzLWV4Y2hhbmdlLmgKLSsKLStjb3JlX2NjX3NvdXJjZXMgPSBcCi0rICAg ICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9iYWNrZW5kLWxvYWRlci5jcHAgXAotKyAgICAg ICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvYmxvYi5jcHAgXAotKyAgICAgICAgJCh0b3Bfc3Jj ZGlyKS9zb2NpL2NvcmUvY29ubmVjdGlvbi1wb29sLmNwcCBcCi0rICAgICAgICAkKHRvcF9zcmNk aXIpL3NvY2kvY29yZS9lcnJvci5jcHAgXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2Nv cmUvaW50by10eXBlLmNwcCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9vbmNl LXRlbXAtdHlwZS5jcHAgXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcHJlcGFy ZS10ZW1wLXR5cGUuY3BwIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3Byb2Nl ZHVyZS5jcHAgXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcmVmLWNvdW50ZWQt cHJlcGFyZS1pbmZvLmNwcCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9yZWYt Y291bnRlZC1zdGF0ZW1lbnQuY3BwIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3Jl L3Jvdy5jcHAgXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcm93aWQuY3BwIFwK LSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3Nlc3Npb24uY3BwIFwKLSsgICAgICAg ICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3NvY2ktc2ltcGxlLmNwcCBcCi0rICAgICAgICAkKHRv cF9zcmNkaXIpL3NvY2kvY29yZS9zdGF0ZW1lbnQuY3BwIFwKLSsgICAgICAgICQodG9wX3NyY2Rp cikvc29jaS9jb3JlL3RyYW5zYWN0aW9uLmNwcCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3Nv Y2kvY29yZS91c2UtdHlwZS5jcHAgXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUv dmFsdWVzLmNwcAotKwotK01BSU5UQUlORVJDTEVBTkZJTEVTID0gTWFrZWZpbGUuaW4KLStTVUJE SVJTID0gLiB0ZXN0Ci0rCi0rI0VYVFJBX0RJU1RfRk9SX1NPQ0lfQ09NUEFUSUJJTElUWSA9IC5f cm93LmNwcCAuX3NvY2ktc2ltcGxlLmNwcCAuX3NvY2ktc2ltcGxlLmggLl92YWx1ZXMtZXhjaGFu Z2UuaAotK0VYVFJBX0RJU1QgPSAkKEVYVFJBX0RJU1RfRk9SX1NPQ0lfQ09NUEFUSUJJTElUWSkK LStsaWJfTFRMSUJSQVJJRVMgPSBsaWJzb2NpX2NvcmUubGEKLStsaWJzb2NpX2NvcmVfbGFfU09V UkNFUyA9ICQoY29yZV9oX3NvdXJjZXMpICQoY29yZV9jY19zb3VyY2VzKSAKLStsaWJzb2NpX2Nv cmVfbGFfQ1hYRkxBR1MgPSAKLStsaWJzb2NpX2NvcmVfbGFfTElCQUREID0gCi0rbGlic29jaV9j b3JlX2xhX0xERkxBR1MgPSBcCi0rCSQoQk9PU1RfTElCUykgJChCT09TVF9EQVRFX1RJTUVfTElC KSAkKEJPT1NUX1BST0dSQU1fT1BUSU9OU19MSUIpIFwKLSsJLXZlcnNpb24taW5mbyAkKEdFTkVS SUNfTElCUkFSWV9WRVJTSU9OKQotKwotK3BrZ2luY2x1ZGVfSEVBREVSUyA9ICQoY29yZV9oX3Nv dXJjZXMpCi0rQFNPQ0lfSEVBREVSU19CVVJJRURfRkFMU0VAc29jaV9pbmNsdWRlX2RpciA9ICQo aW5jbHVkZWRpcikKLStAU09DSV9IRUFERVJTX0JVUklFRF9UUlVFQHNvY2lfaW5jbHVkZV9kaXIg PSAkKGluY2x1ZGVkaXIpL3NvY2kvY29yZQotK2FsbDogYWxsLXJlY3Vyc2l2ZQotKwotKy5TVUZG SVhFUzoKLSsuU1VGRklYRVM6IC5jcHAgLmxvIC5vIC5vYmoKLSskKHNyY2RpcikvTWFrZWZpbGUu aW46ICAkKHNyY2RpcikvTWFrZWZpbGUuYW0gJCh0b3Bfc3JjZGlyKS9NYWtlZmlsZS5jb21tb24g JChzcmNkaXIpL3NvdXJjZXMubWsgJChhbV9fY29uZmlndXJlX2RlcHMpCi0rCUBmb3IgZGVwIGlu ICQ/OyBkbyBcCi0rCSAgY2FzZSAnJChhbV9fY29uZmlndXJlX2RlcHMpJyBpbiBcCi0rCSAgICAq JCRkZXAqKSBcCi0rCSAgICAgICggY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9N QUtFRkxBR1MpIGFtLS1yZWZyZXNoICkgXAotKwkgICAgICAgICYmIHsgaWYgdGVzdCAtZiAkQDsg dGhlbiBleGl0IDA7IGVsc2UgYnJlYWs7IGZpOyB9OyBcCi0rCSAgICAgIGV4aXQgMTs7IFwKLSsJ ICBlc2FjOyBcCi0rCWRvbmU7IFwKLSsJZWNobyAnIGNkICQodG9wX3NyY2RpcikgJiYgJChBVVRP TUFLRSkgLS1nbnUgIHNvY2kvY29yZS9NYWtlZmlsZSc7IFwKLSsJY2QgJCh0b3Bfc3JjZGlyKSAm JiBcCi0rCSAgJChBVVRPTUFLRSkgLS1nbnUgIHNvY2kvY29yZS9NYWtlZmlsZQotKy5QUkVDSU9V UzogTWFrZWZpbGUKLStNYWtlZmlsZTogJChzcmNkaXIpL01ha2VmaWxlLmluICQodG9wX2J1aWxk ZGlyKS9jb25maWcuc3RhdHVzCi0rCUBjYXNlICckPycgaW4gXAotKwkgICpjb25maWcuc3RhdHVz KikgXAotKwkgICAgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1Mp IGFtLS1yZWZyZXNoOzsgXAotKwkgICopIFwKLSsJICAgIGVjaG8gJyBjZCAkKHRvcF9idWlsZGRp cikgJiYgJChTSEVMTCkgLi9jb25maWcuc3RhdHVzICQoc3ViZGlyKS8kQCAkKGFtX19kZXBmaWxl c19tYXliZSknOyBcCi0rCSAgICBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChTSEVMTCkgLi9jb25m aWcuc3RhdHVzICQoc3ViZGlyKS8kQCAkKGFtX19kZXBmaWxlc19tYXliZSk7OyBcCi0rCWVzYWM7 Ci0rCi0rJCh0b3BfYnVpbGRkaXIpL2NvbmZpZy5zdGF0dXM6ICQodG9wX3NyY2RpcikvY29uZmln dXJlICQoQ09ORklHX1NUQVRVU19ERVBFTkRFTkNJRVMpCi0rCWNkICQodG9wX2J1aWxkZGlyKSAm JiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaAotKwotKyQodG9wX3NyY2Rpcikv Y29uZmlndXJlOiAgJChhbV9fY29uZmlndXJlX2RlcHMpCi0rCWNkICQodG9wX2J1aWxkZGlyKSAm JiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaAotKyQoQUNMT0NBTF9NNCk6ICAk KGFtX19hY2xvY2FsX200X2RlcHMpCi0rCWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQo QU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaAotK2luc3RhbGwtbGliTFRMSUJSQVJJRVM6ICQobGli X0xUTElCUkFSSUVTKQotKwlAJChOT1JNQUxfSU5TVEFMTCkKLSsJdGVzdCAteiAiJChsaWJkaXIp IiB8fCAkKE1LRElSX1ApICIkKERFU1RESVIpJChsaWJkaXIpIgotKwlAbGlzdD0nJChsaWJfTFRM SUJSQVJJRVMpJzsgZm9yIHAgaW4gJCRsaXN0OyBkbyBcCi0rCSAgaWYgdGVzdCAtZiAkJHA7IHRo ZW4gXAotKwkgICAgZj0kKGFtX19zdHJpcF9kaXIpIFwKLSsJICAgIGVjaG8gIiAkKExJQlRPT0wp ICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWluc3RhbGwgJChsaWJM VExJQlJBUklFU19JTlNUQUxMKSAkKElOU1RBTExfU1RSSVBfRkxBRykgJyQkcCcgJyQoREVTVERJ UikkKGxpYmRpcikvJCRmJyI7IFwKLSsJICAgICQoTElCVE9PTCkgJChBTV9MSUJUT09MRkxBR1Mp ICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9aW5zdGFsbCAkKGxpYkxUTElCUkFSSUVTX0lOU1RBTEwp ICQoSU5TVEFMTF9TVFJJUF9GTEFHKSAiJCRwIiAiJChERVNURElSKSQobGliZGlyKS8kJGYiOyBc Ci0rCSAgZWxzZSA6OyBmaTsgXAotKwlkb25lCi0rCi0rdW5pbnN0YWxsLWxpYkxUTElCUkFSSUVT OgotKwlAJChOT1JNQUxfVU5JTlNUQUxMKQotKwlAbGlzdD0nJChsaWJfTFRMSUJSQVJJRVMpJzsg Zm9yIHAgaW4gJCRsaXN0OyBkbyBcCi0rCSAgcD0kKGFtX19zdHJpcF9kaXIpIFwKLSsJICBlY2hv ICIgJChMSUJUT09MKSAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT11 bmluc3RhbGwgcm0gLWYgJyQoREVTVERJUikkKGxpYmRpcikvJCRwJyI7IFwKLSsJICAkKExJQlRP T0wpICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPXVuaW5zdGFsbCBy bSAtZiAiJChERVNURElSKSQobGliZGlyKS8kJHAiOyBcCi0rCWRvbmUKLSsKLStjbGVhbi1saWJM VExJQlJBUklFUzoKLSsJLXRlc3QgLXogIiQobGliX0xUTElCUkFSSUVTKSIgfHwgcm0gLWYgJChs aWJfTFRMSUJSQVJJRVMpCi0rCUBsaXN0PSckKGxpYl9MVExJQlJBUklFUyknOyBmb3IgcCBpbiAk JGxpc3Q7IGRvIFwKLSsJICBkaXI9ImBlY2hvICQkcCB8IHNlZCAtZSAnc3wvW14vXSokJHx8J2Ai OyBcCi0rCSAgdGVzdCAiJCRkaXIiICE9ICIkJHAiIHx8IGRpcj0uOyBcCi0rCSAgZWNobyAicm0g LWYgXCIkJHtkaXJ9L3NvX2xvY2F0aW9uc1wiIjsgXAotKwkgIHJtIC1mICIkJHtkaXJ9L3NvX2xv Y2F0aW9ucyI7IFwKLSsJZG9uZQotK2xpYnNvY2lfY29yZS5sYTogJChsaWJzb2NpX2NvcmVfbGFf T0JKRUNUUykgJChsaWJzb2NpX2NvcmVfbGFfREVQRU5ERU5DSUVTKSAKLSsJJChsaWJzb2NpX2Nv cmVfbGFfTElOSykgLXJwYXRoICQobGliZGlyKSAkKGxpYnNvY2lfY29yZV9sYV9PQkpFQ1RTKSAk KGxpYnNvY2lfY29yZV9sYV9MSUJBREQpICQoTElCUykKLSsKLSttb3N0bHljbGVhbi1jb21waWxl OgotKwktcm0gLWYgKi4kKE9CSkVYVCkKLSsKLStkaXN0Y2xlYW4tY29tcGlsZToKLSsJLXJtIC1m ICoudGFiLmMKLSsKLStAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERF UERJUikvbGlic29jaV9jb3JlX2xhLWJhY2tlbmQtbG9hZGVyLlBsb0BhbV9fcXVvdGVACi0rQEFN REVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL2xpYnNvY2lfY29y ZV9sYS1ibG9iLlBsb0BhbV9fcXVvdGVACi0rQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1f X3F1b3RlQC4vJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS1jb25uZWN0aW9uLXBvb2wuUGxvQGFt X19xdW90ZUAKLStAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJ UikvbGlic29jaV9jb3JlX2xhLWVycm9yLlBsb0BhbV9fcXVvdGVACi0rQEFNREVQX1RSVUVAQGFt X19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS1pbnRvLXR5 cGUuUGxvQGFtX19xdW90ZUAKLStAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVA Li8kKERFUERJUikvbGlic29jaV9jb3JlX2xhLW9uY2UtdGVtcC10eXBlLlBsb0BhbV9fcXVvdGVA Ci0rQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL2xpYnNv Y2lfY29yZV9sYS1wcmVwYXJlLXRlbXAtdHlwZS5QbG9AYW1fX3F1b3RlQAotK0BBTURFUF9UUlVF QEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEtcHJv Y2VkdXJlLlBsb0BhbV9fcXVvdGVACi0rQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1 b3RlQC4vJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS1yZWYtY291bnRlZC1wcmVwYXJlLWluZm8u UGxvQGFtX19xdW90ZUAKLStAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8k KERFUERJUikvbGlic29jaV9jb3JlX2xhLXJlZi1jb3VudGVkLXN0YXRlbWVudC5QbG9AYW1fX3F1 b3RlQAotK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9s aWJzb2NpX2NvcmVfbGEtcm93LlBsb0BhbV9fcXVvdGVACi0rQEFNREVQX1RSVUVAQGFtX19pbmNs dWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS1yb3dpZC5QbG9AYW1f X3F1b3RlQAotK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElS KS9saWJzb2NpX2NvcmVfbGEtc2Vzc2lvbi5QbG9AYW1fX3F1b3RlQAotK0BBTURFUF9UUlVFQEBh bV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEtc29jaS1z aW1wbGUuUGxvQGFtX19xdW90ZUAKLStAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVv dGVALi8kKERFUERJUikvbGlic29jaV9jb3JlX2xhLXN0YXRlbWVudC5QbG9AYW1fX3F1b3RlQAot K0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9saWJzb2Np X2NvcmVfbGEtdHJhbnNhY3Rpb24uUGxvQGFtX19xdW90ZUAKLStAQU1ERVBfVFJVRUBAYW1fX2lu Y2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvbGlic29jaV9jb3JlX2xhLXVzZS10eXBlLlBs b0BhbV9fcXVvdGVACi0rQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChE RVBESVIpL2xpYnNvY2lfY29yZV9sYS12YWx1ZXMuUGxvQGFtX19xdW90ZUAKLSsKLSsuY3BwLm86 Ci0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoQ1hYQ09NUElMRSkgLU1UICRAIC1NRCAtTVAgLU1G ICQoREVQRElSKS8kKi5UcG8gLWMgLW8gJEAgJDwKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJbXYg LWYgJChERVBESVIpLyQqLlRwbyAkKERFUERJUikvJCouUG8KLStAQU1ERVBfVFJVRUBAYW1fX2Zh c3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJDwnIG9iamVjdD0nJEAnIGxpYnRvb2w9bm8gQEFNREVQ QkFDS1NMQVNIQAotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQo REVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAotK0BhbV9f ZmFzdGRlcENYWF9GQUxTRUAJJChDWFhDT01QSUxFKSAtYyAtbyAkQCAkPAotKwotKy5jcHAub2Jq OgotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKENYWENPTVBJTEUpIC1NVCAkQCAtTUQgLU1QIC1N RiAkKERFUERJUikvJCouVHBvIC1jIC1vICRAIGAkKENZR1BBVEhfVykgJyQ8J2AKLStAYW1fX2Zh c3RkZXBDWFhfVFJVRUAJbXYgLWYgJChERVBESVIpLyQqLlRwbyAkKERFUERJUikvJCouUG8KLStA QU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJDwnIG9iamVjdD0nJEAn IGxpYnRvb2w9bm8gQEFNREVQQkFDS1NMQVNIQAotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENY WF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQ QkFDS1NMQVNIQAotK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChDWFhDT01QSUxFKSAtYyAtbyAk QCBgJChDWUdQQVRIX1cpICckPCdgCi0rCi0rLmNwcC5sbzoKLStAYW1fX2Zhc3RkZXBDWFhfVFJV RUAJJChMVENYWENPTVBJTEUpIC1NVCAkQCAtTUQgLU1QIC1NRiAkKERFUERJUikvJCouVHBvIC1j IC1vICRAICQ8Ci0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACW12IC1mICQoREVQRElSKS8kKi5UcG8g JChERVBESVIpLyQqLlBsbwotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291 cmNlPSckPCcgb2JqZWN0PSckQCcgbGlidG9vbD15ZXMgQEFNREVQQkFDS1NMQVNIQAotK0BBTURF UF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENYWERFUE1P REUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAotK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJ JChMVENYWENPTVBJTEUpIC1jIC1vICRAICQ8Ci0rCi0rbGlic29jaV9jb3JlX2xhLWJhY2tlbmQt bG9hZGVyLmxvOiAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9iYWNrZW5kLWxvYWRlci5jcHAKLStA YW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxB R1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFV TFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGli c29jaV9jb3JlX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtTVQgbGlic29jaV9jb3JlX2xhLWJh Y2tlbmQtbG9hZGVyLmxvIC1NRCAtTVAgLU1GICQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEtYmFj a2VuZC1sb2FkZXIuVHBvIC1jIC1vIGxpYnNvY2lfY29yZV9sYS1iYWNrZW5kLWxvYWRlci5sbyBg dGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvYmFja2VuZC1sb2FkZXIuY3BwJyB8fCBl Y2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9iYWNrZW5kLWxvYWRlci5j cHAKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJbXYgLWYgJChERVBESVIpL2xpYnNvY2lfY29yZV9s YS1iYWNrZW5kLWxvYWRlci5UcG8gJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS1iYWNrZW5kLWxv YWRlci5QbG8KLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJCh0 b3Bfc3JjZGlyKS9zb2NpL2NvcmUvYmFja2VuZC1sb2FkZXIuY3BwJyBvYmplY3Q9J2xpYnNvY2lf Y29yZV9sYS1iYWNrZW5kLWxvYWRlci5sbycgbGlidG9vbD15ZXMgQEFNREVQQkFDS1NMQVNIQAot K0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENY WERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAotK0BhbV9fZmFzdGRlcENYWF9G QUxTRUAJJChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZM QUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQo SU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9jb3JlX2xhX0NY WEZMQUdTKSAkKENYWEZMQUdTKSAtYyAtbyBsaWJzb2NpX2NvcmVfbGEtYmFja2VuZC1sb2FkZXIu bG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9jb3JlL2JhY2tlbmQtbG9hZGVyLmNwcCcg fHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvYmFja2VuZC1sb2Fk ZXIuY3BwCi0rCi0rbGlic29jaV9jb3JlX2xhLWJsb2IubG86ICQodG9wX3NyY2Rpcikvc29jaS9j b3JlL2Jsb2IuY3BwCi0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoTElCVE9PTCkgLS10YWc9Q1hY ICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgp ICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAk KENQUEZMQUdTKSAkKGxpYnNvY2lfY29yZV9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLU1UIGxp YnNvY2lfY29yZV9sYS1ibG9iLmxvIC1NRCAtTVAgLU1GICQoREVQRElSKS9saWJzb2NpX2NvcmVf bGEtYmxvYi5UcG8gLWMgLW8gbGlic29jaV9jb3JlX2xhLWJsb2IubG8gYHRlc3QgLWYgJyQodG9w X3NyY2Rpcikvc29jaS9jb3JlL2Jsb2IuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9z cmNkaXIpL3NvY2kvY29yZS9ibG9iLmNwcAotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAltdiAtZiAk KERFUERJUikvbGlic29jaV9jb3JlX2xhLWJsb2IuVHBvICQoREVQRElSKS9saWJzb2NpX2NvcmVf bGEtYmxvYi5QbG8KLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0n JCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvYmxvYi5jcHAnIG9iamVjdD0nbGlic29jaV9jb3JlX2xh LWJsb2IubG8nIGxpYnRvb2w9eWVzIEBBTURFUEJBQ0tTTEFTSEAKLStAQU1ERVBfVFJVRUBAYW1f X2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNv bXApIEBBTURFUEJBQ0tTTEFTSEAKLStAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQoTElCVE9PTCkg LS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBp bGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQ UEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfY29yZV9sYV9DWFhGTEFHUykgJChDWFhGTEFH UykgLWMgLW8gbGlic29jaV9jb3JlX2xhLWJsb2IubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikv c29jaS9jb3JlL2Jsb2IuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3Nv Y2kvY29yZS9ibG9iLmNwcAotKwotK2xpYnNvY2lfY29yZV9sYS1jb25uZWN0aW9uLXBvb2wubG86 ICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL2Nvbm5lY3Rpb24tcG9vbC5jcHAKLStAYW1fX2Zhc3Rk ZXBDWFhfVFJVRUAJJChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElC VE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVE RVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9jb3Jl X2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtTVQgbGlic29jaV9jb3JlX2xhLWNvbm5lY3Rpb24t cG9vbC5sbyAtTUQgLU1QIC1NRiAkKERFUERJUikvbGlic29jaV9jb3JlX2xhLWNvbm5lY3Rpb24t cG9vbC5UcG8gLWMgLW8gbGlic29jaV9jb3JlX2xhLWNvbm5lY3Rpb24tcG9vbC5sbyBgdGVzdCAt ZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvY29ubmVjdGlvbi1wb29sLmNwcCcgfHwgZWNobyAn JChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvY29ubmVjdGlvbi1wb29sLmNwcAot K0BhbV9fZmFzdGRlcENYWF9UUlVFQAltdiAtZiAkKERFUERJUikvbGlic29jaV9jb3JlX2xhLWNv bm5lY3Rpb24tcG9vbC5UcG8gJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS1jb25uZWN0aW9uLXBv b2wuUGxvCi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQodG9w X3NyY2Rpcikvc29jaS9jb3JlL2Nvbm5lY3Rpb24tcG9vbC5jcHAnIG9iamVjdD0nbGlic29jaV9j b3JlX2xhLWNvbm5lY3Rpb24tcG9vbC5sbycgbGlidG9vbD15ZXMgQEFNREVQQkFDS1NMQVNIQAot K0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENY WERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAotK0BhbV9fZmFzdGRlcENYWF9G QUxTRUAJJChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZM QUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQo SU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9jb3JlX2xhX0NY WEZMQUdTKSAkKENYWEZMQUdTKSAtYyAtbyBsaWJzb2NpX2NvcmVfbGEtY29ubmVjdGlvbi1wb29s LmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9jb25uZWN0aW9uLXBvb2wuY3Bw JyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9jb25uZWN0aW9u LXBvb2wuY3BwCi0rCi0rbGlic29jaV9jb3JlX2xhLWVycm9yLmxvOiAkKHRvcF9zcmNkaXIpL3Nv Y2kvY29yZS9lcnJvci5jcHAKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChMSUJUT09MKSAtLXRh Zz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAk KENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxB R1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9jb3JlX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAt TVQgbGlic29jaV9jb3JlX2xhLWVycm9yLmxvIC1NRCAtTVAgLU1GICQoREVQRElSKS9saWJzb2Np X2NvcmVfbGEtZXJyb3IuVHBvIC1jIC1vIGxpYnNvY2lfY29yZV9sYS1lcnJvci5sbyBgdGVzdCAt ZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvZXJyb3IuY3BwJyB8fCBlY2hvICckKHNyY2Rpcikv J2AkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9lcnJvci5jcHAKLStAYW1fX2Zhc3RkZXBDWFhfVFJV RUAJbXYgLWYgJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS1lcnJvci5UcG8gJChERVBESVIpL2xp YnNvY2lfY29yZV9sYS1lcnJvci5QbG8KLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFM U0VACXNvdXJjZT0nJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvZXJyb3IuY3BwJyBvYmplY3Q9J2xp YnNvY2lfY29yZV9sYS1lcnJvci5sbycgbGlidG9vbD15ZXMgQEFNREVQQkFDS1NMQVNIQAotK0BB TURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENYWERF UE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAotK0BhbV9fZmFzdGRlcENYWF9GQUxT RUAJJChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdT KSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5D TFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9jb3JlX2xhX0NYWEZM QUdTKSAkKENYWEZMQUdTKSAtYyAtbyBsaWJzb2NpX2NvcmVfbGEtZXJyb3IubG8gYHRlc3QgLWYg JyQodG9wX3NyY2Rpcikvc29jaS9jb3JlL2Vycm9yLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydg JCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvZXJyb3IuY3BwCi0rCi0rbGlic29jaV9jb3JlX2xhLWlu dG8tdHlwZS5sbzogJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvaW50by10eXBlLmNwcAotK0BhbV9f ZmFzdGRlcENYWF9UUlVFQAkkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykg JChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9J TkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2Np X2NvcmVfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1NVCBsaWJzb2NpX2NvcmVfbGEtaW50by10 eXBlLmxvIC1NRCAtTVAgLU1GICQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEtaW50by10eXBlLlRw byAtYyAtbyBsaWJzb2NpX2NvcmVfbGEtaW50by10eXBlLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNk aXIpL3NvY2kvY29yZS9pbnRvLXR5cGUuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9z cmNkaXIpL3NvY2kvY29yZS9pbnRvLXR5cGUuY3BwCi0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACW12 IC1mICQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEtaW50by10eXBlLlRwbyAkKERFUERJUikvbGli c29jaV9jb3JlX2xhLWludG8tdHlwZS5QbG8KLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhf RkFMU0VACXNvdXJjZT0nJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvaW50by10eXBlLmNwcCcgb2Jq ZWN0PSdsaWJzb2NpX2NvcmVfbGEtaW50by10eXBlLmxvJyBsaWJ0b29sPXllcyBAQU1ERVBCQUNL U0xBU0hACi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBE SVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACi0rQGFtX19mYXN0 ZGVwQ1hYX0ZBTFNFQAkkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChM SUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNM VURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX2Nv cmVfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1jIC1vIGxpYnNvY2lfY29yZV9sYS1pbnRvLXR5 cGUubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9jb3JlL2ludG8tdHlwZS5jcHAnIHx8 IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9jb3JlL2ludG8tdHlwZS5jcHAK LSsKLStsaWJzb2NpX2NvcmVfbGEtb25jZS10ZW1wLXR5cGUubG86ICQodG9wX3NyY2Rpcikvc29j aS9jb3JlL29uY2UtdGVtcC10eXBlLmNwcAotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKExJQlRP T0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1j b21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChB TV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX2NvcmVfbGFfQ1hYRkxBR1MpICQoQ1hY RkxBR1MpIC1NVCBsaWJzb2NpX2NvcmVfbGEtb25jZS10ZW1wLXR5cGUubG8gLU1EIC1NUCAtTUYg JChERVBESVIpL2xpYnNvY2lfY29yZV9sYS1vbmNlLXRlbXAtdHlwZS5UcG8gLWMgLW8gbGlic29j aV9jb3JlX2xhLW9uY2UtdGVtcC10eXBlLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kv Y29yZS9vbmNlLXRlbXAtdHlwZS5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rp cikvc29jaS9jb3JlL29uY2UtdGVtcC10eXBlLmNwcAotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAlt diAtZiAkKERFUERJUikvbGlic29jaV9jb3JlX2xhLW9uY2UtdGVtcC10eXBlLlRwbyAkKERFUERJ UikvbGlic29jaV9jb3JlX2xhLW9uY2UtdGVtcC10eXBlLlBsbwotK0BBTURFUF9UUlVFQEBhbV9f ZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSckKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9vbmNlLXRl bXAtdHlwZS5jcHAnIG9iamVjdD0nbGlic29jaV9jb3JlX2xhLW9uY2UtdGVtcC10eXBlLmxvJyBs aWJ0b29sPXllcyBAQU1ERVBCQUNLU0xBU0hACi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hY X0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBC QUNLU0xBU0hACi0rQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKExJQlRPT0wpIC0tdGFnPUNYWCAk KEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAk KERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChD UFBGTEFHUykgJChsaWJzb2NpX2NvcmVfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1jIC1vIGxp YnNvY2lfY29yZV9sYS1vbmNlLXRlbXAtdHlwZS5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9z b2NpL2NvcmUvb25jZS10ZW1wLXR5cGUuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9z cmNkaXIpL3NvY2kvY29yZS9vbmNlLXRlbXAtdHlwZS5jcHAKLSsKLStsaWJzb2NpX2NvcmVfbGEt cHJlcGFyZS10ZW1wLXR5cGUubG86ICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3ByZXBhcmUtdGVt cC10eXBlLmNwcAotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKExJQlRPT0wpIC0tdGFnPUNYWCAk KEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAk KERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChD UFBGTEFHUykgJChsaWJzb2NpX2NvcmVfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1NVCBsaWJz b2NpX2NvcmVfbGEtcHJlcGFyZS10ZW1wLXR5cGUubG8gLU1EIC1NUCAtTUYgJChERVBESVIpL2xp YnNvY2lfY29yZV9sYS1wcmVwYXJlLXRlbXAtdHlwZS5UcG8gLWMgLW8gbGlic29jaV9jb3JlX2xh LXByZXBhcmUtdGVtcC10eXBlLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9w cmVwYXJlLXRlbXAtdHlwZS5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikv c29jaS9jb3JlL3ByZXBhcmUtdGVtcC10eXBlLmNwcAotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAlt diAtZiAkKERFUERJUikvbGlic29jaV9jb3JlX2xhLXByZXBhcmUtdGVtcC10eXBlLlRwbyAkKERF UERJUikvbGlic29jaV9jb3JlX2xhLXByZXBhcmUtdGVtcC10eXBlLlBsbwotK0BBTURFUF9UUlVF QEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSckKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9w cmVwYXJlLXRlbXAtdHlwZS5jcHAnIG9iamVjdD0nbGlic29jaV9jb3JlX2xhLXByZXBhcmUtdGVt cC10eXBlLmxvJyBsaWJ0b29sPXllcyBAQU1ERVBCQUNLU0xBU0hACi0rQEFNREVQX1RSVUVAQGFt X19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBj b21wKSBAQU1ERVBCQUNLU0xBU0hACi0rQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKExJQlRPT0wp IC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21w aWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9D UFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX2NvcmVfbGFfQ1hYRkxBR1MpICQoQ1hYRkxB R1MpIC1jIC1vIGxpYnNvY2lfY29yZV9sYS1wcmVwYXJlLXRlbXAtdHlwZS5sbyBgdGVzdCAtZiAn JCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcHJlcGFyZS10ZW1wLXR5cGUuY3BwJyB8fCBlY2hvICck KHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9wcmVwYXJlLXRlbXAtdHlwZS5jcHAK LSsKLStsaWJzb2NpX2NvcmVfbGEtcHJvY2VkdXJlLmxvOiAkKHRvcF9zcmNkaXIpL3NvY2kvY29y ZS9wcm9jZWR1cmUuY3BwCi0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoTElCVE9PTCkgLS10YWc9 Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChD WFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdT KSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfY29yZV9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLU1U IGxpYnNvY2lfY29yZV9sYS1wcm9jZWR1cmUubG8gLU1EIC1NUCAtTUYgJChERVBESVIpL2xpYnNv Y2lfY29yZV9sYS1wcm9jZWR1cmUuVHBvIC1jIC1vIGxpYnNvY2lfY29yZV9sYS1wcm9jZWR1cmUu bG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3Byb2NlZHVyZS5jcHAnIHx8IGVj aG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3Byb2NlZHVyZS5jcHAKLStA YW1fX2Zhc3RkZXBDWFhfVFJVRUAJbXYgLWYgJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS1wcm9j ZWR1cmUuVHBvICQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEtcHJvY2VkdXJlLlBsbwotK0BBTURF UF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSckKHRvcF9zcmNkaXIpL3NvY2kv Y29yZS9wcm9jZWR1cmUuY3BwJyBvYmplY3Q9J2xpYnNvY2lfY29yZV9sYS1wcm9jZWR1cmUubG8n IGxpYnRvb2w9eWVzIEBBTURFUEJBQ0tTTEFTSEAKLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBD WFhfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURF UEJBQ0tTTEFTSEAKLStAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQoTElCVE9PTCkgLS10YWc9Q1hY ICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgp ICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAk KENQUEZMQUdTKSAkKGxpYnNvY2lfY29yZV9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLWMgLW8g bGlic29jaV9jb3JlX2xhLXByb2NlZHVyZS5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2Np L2NvcmUvcHJvY2VkdXJlLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9z b2NpL2NvcmUvcHJvY2VkdXJlLmNwcAotKwotK2xpYnNvY2lfY29yZV9sYS1yZWYtY291bnRlZC1w cmVwYXJlLWluZm8ubG86ICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3JlZi1jb3VudGVkLXByZXBh cmUtaW5mby5jcHAKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChMSUJUT09MKSAtLXRhZz1DWFgg JChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkg JChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQo Q1BQRkxBR1MpICQobGlic29jaV9jb3JlX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtTVQgbGli c29jaV9jb3JlX2xhLXJlZi1jb3VudGVkLXByZXBhcmUtaW5mby5sbyAtTUQgLU1QIC1NRiAkKERF UERJUikvbGlic29jaV9jb3JlX2xhLXJlZi1jb3VudGVkLXByZXBhcmUtaW5mby5UcG8gLWMgLW8g bGlic29jaV9jb3JlX2xhLXJlZi1jb3VudGVkLXByZXBhcmUtaW5mby5sbyBgdGVzdCAtZiAnJCh0 b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcmVmLWNvdW50ZWQtcHJlcGFyZS1pbmZvLmNwcCcgfHwgZWNo byAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcmVmLWNvdW50ZWQtcHJlcGFy ZS1pbmZvLmNwcAotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAltdiAtZiAkKERFUERJUikvbGlic29j aV9jb3JlX2xhLXJlZi1jb3VudGVkLXByZXBhcmUtaW5mby5UcG8gJChERVBESVIpL2xpYnNvY2lf Y29yZV9sYS1yZWYtY291bnRlZC1wcmVwYXJlLWluZm8uUGxvCi0rQEFNREVQX1RSVUVAQGFtX19m YXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3JlZi1jb3Vu dGVkLXByZXBhcmUtaW5mby5jcHAnIG9iamVjdD0nbGlic29jaV9jb3JlX2xhLXJlZi1jb3VudGVk LXByZXBhcmUtaW5mby5sbycgbGlidG9vbD15ZXMgQEFNREVQQkFDS1NMQVNIQAotK0BBTURFUF9U UlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENYWERFUE1PREUp ICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAotK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChM SUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1v ZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMp ICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9jb3JlX2xhX0NYWEZMQUdTKSAk KENYWEZMQUdTKSAtYyAtbyBsaWJzb2NpX2NvcmVfbGEtcmVmLWNvdW50ZWQtcHJlcGFyZS1pbmZv LmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9yZWYtY291bnRlZC1wcmVwYXJl LWluZm8uY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9y ZWYtY291bnRlZC1wcmVwYXJlLWluZm8uY3BwCi0rCi0rbGlic29jaV9jb3JlX2xhLXJlZi1jb3Vu dGVkLXN0YXRlbWVudC5sbzogJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcmVmLWNvdW50ZWQtc3Rh dGVtZW50LmNwcAotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKExJQlRPT0wpIC0tdGFnPUNYWCAk KEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAk KERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChD UFBGTEFHUykgJChsaWJzb2NpX2NvcmVfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1NVCBsaWJz b2NpX2NvcmVfbGEtcmVmLWNvdW50ZWQtc3RhdGVtZW50LmxvIC1NRCAtTVAgLU1GICQoREVQRElS KS9saWJzb2NpX2NvcmVfbGEtcmVmLWNvdW50ZWQtc3RhdGVtZW50LlRwbyAtYyAtbyBsaWJzb2Np X2NvcmVfbGEtcmVmLWNvdW50ZWQtc3RhdGVtZW50LmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIp L3NvY2kvY29yZS9yZWYtY291bnRlZC1zdGF0ZW1lbnQuY3BwJyB8fCBlY2hvICckKHNyY2Rpcikv J2AkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9yZWYtY291bnRlZC1zdGF0ZW1lbnQuY3BwCi0rQGFt X19mYXN0ZGVwQ1hYX1RSVUVACW12IC1mICQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEtcmVmLWNv dW50ZWQtc3RhdGVtZW50LlRwbyAkKERFUERJUikvbGlic29jaV9jb3JlX2xhLXJlZi1jb3VudGVk LXN0YXRlbWVudC5QbG8KLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJj ZT0nJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcmVmLWNvdW50ZWQtc3RhdGVtZW50LmNwcCcgb2Jq ZWN0PSdsaWJzb2NpX2NvcmVfbGEtcmVmLWNvdW50ZWQtc3RhdGVtZW50LmxvJyBsaWJ0b29sPXll cyBAQU1ERVBCQUNLU0xBU0hACi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlE RVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hA Ci0rQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRP T0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQo REVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykg JChsaWJzb2NpX2NvcmVfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1jIC1vIGxpYnNvY2lfY29y ZV9sYS1yZWYtY291bnRlZC1zdGF0ZW1lbnQubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29j aS9jb3JlL3JlZi1jb3VudGVkLXN0YXRlbWVudC5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQo dG9wX3NyY2Rpcikvc29jaS9jb3JlL3JlZi1jb3VudGVkLXN0YXRlbWVudC5jcHAKLSsKLStsaWJz b2NpX2NvcmVfbGEtcm93LmxvOiAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9yb3cuY3BwCi0rQGFt X19mYXN0ZGVwQ1hYX1RSVUVACSQoTElCVE9PTCkgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdT KSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxU X0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNv Y2lfY29yZV9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLU1UIGxpYnNvY2lfY29yZV9sYS1yb3cu bG8gLU1EIC1NUCAtTUYgJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS1yb3cuVHBvIC1jIC1vIGxp YnNvY2lfY29yZV9sYS1yb3cubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3Jv dy5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3Jvdy5j cHAKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJbXYgLWYgJChERVBESVIpL2xpYnNvY2lfY29yZV9s YS1yb3cuVHBvICQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEtcm93LlBsbwotK0BBTURFUF9UUlVF QEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSckKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9y b3cuY3BwJyBvYmplY3Q9J2xpYnNvY2lfY29yZV9sYS1yb3cubG8nIGxpYnRvb2w9eWVzIEBBTURF UEJBQ0tTTEFTSEAKLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0k KERFUERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKLStAYW1f X2Zhc3RkZXBDWFhfRkFMU0VACSQoTElCVE9PTCkgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdT KSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxU X0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNv Y2lfY29yZV9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLWMgLW8gbGlic29jaV9jb3JlX2xhLXJv dy5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcm93LmNwcCcgfHwgZWNobyAn JChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcm93LmNwcAotKwotK2xpYnNvY2lf Y29yZV9sYS1yb3dpZC5sbzogJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcm93aWQuY3BwCi0rQGFt X19mYXN0ZGVwQ1hYX1RSVUVACSQoTElCVE9PTCkgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdT KSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxU X0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNv Y2lfY29yZV9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLU1UIGxpYnNvY2lfY29yZV9sYS1yb3dp ZC5sbyAtTUQgLU1QIC1NRiAkKERFUERJUikvbGlic29jaV9jb3JlX2xhLXJvd2lkLlRwbyAtYyAt byBsaWJzb2NpX2NvcmVfbGEtcm93aWQubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9j b3JlL3Jvd2lkLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2Nv cmUvcm93aWQuY3BwCi0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACW12IC1mICQoREVQRElSKS9saWJz b2NpX2NvcmVfbGEtcm93aWQuVHBvICQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEtcm93aWQuUGxv Ci0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQodG9wX3NyY2Rp cikvc29jaS9jb3JlL3Jvd2lkLmNwcCcgb2JqZWN0PSdsaWJzb2NpX2NvcmVfbGEtcm93aWQubG8n IGxpYnRvb2w9eWVzIEBBTURFUEJBQ0tTTEFTSEAKLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBD WFhfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURF UEJBQ0tTTEFTSEAKLStAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQoTElCVE9PTCkgLS10YWc9Q1hY ICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgp ICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAk KENQUEZMQUdTKSAkKGxpYnNvY2lfY29yZV9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLWMgLW8g bGlic29jaV9jb3JlX2xhLXJvd2lkLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvY29y ZS9yb3dpZC5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9jb3Jl L3Jvd2lkLmNwcAotKwotK2xpYnNvY2lfY29yZV9sYS1zZXNzaW9uLmxvOiAkKHRvcF9zcmNkaXIp L3NvY2kvY29yZS9zZXNzaW9uLmNwcAotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKExJQlRPT0wp IC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21w aWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9D UFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX2NvcmVfbGFfQ1hYRkxBR1MpICQoQ1hYRkxB R1MpIC1NVCBsaWJzb2NpX2NvcmVfbGEtc2Vzc2lvbi5sbyAtTUQgLU1QIC1NRiAkKERFUERJUikv bGlic29jaV9jb3JlX2xhLXNlc3Npb24uVHBvIC1jIC1vIGxpYnNvY2lfY29yZV9sYS1zZXNzaW9u LmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9zZXNzaW9uLmNwcCcgfHwgZWNo byAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvc2Vzc2lvbi5jcHAKLStAYW1f X2Zhc3RkZXBDWFhfVFJVRUAJbXYgLWYgJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS1zZXNzaW9u LlRwbyAkKERFUERJUikvbGlic29jaV9jb3JlX2xhLXNlc3Npb24uUGxvCi0rQEFNREVQX1RSVUVA QGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3Nl c3Npb24uY3BwJyBvYmplY3Q9J2xpYnNvY2lfY29yZV9sYS1zZXNzaW9uLmxvJyBsaWJ0b29sPXll cyBAQU1ERVBCQUNLU0xBU0hACi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlE RVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hA Ci0rQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRP T0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQo REVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykg JChsaWJzb2NpX2NvcmVfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1jIC1vIGxpYnNvY2lfY29y ZV9sYS1zZXNzaW9uLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9zZXNzaW9u LmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvc2Vzc2lv bi5jcHAKLSsKLStsaWJzb2NpX2NvcmVfbGEtc29jaS1zaW1wbGUubG86ICQodG9wX3NyY2Rpcikv c29jaS9jb3JlL3NvY2ktc2ltcGxlLmNwcAotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKExJQlRP T0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1j b21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChB TV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX2NvcmVfbGFfQ1hYRkxBR1MpICQoQ1hY RkxBR1MpIC1NVCBsaWJzb2NpX2NvcmVfbGEtc29jaS1zaW1wbGUubG8gLU1EIC1NUCAtTUYgJChE RVBESVIpL2xpYnNvY2lfY29yZV9sYS1zb2NpLXNpbXBsZS5UcG8gLWMgLW8gbGlic29jaV9jb3Jl X2xhLXNvY2ktc2ltcGxlLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9zb2Np LXNpbXBsZS5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9jb3Jl L3NvY2ktc2ltcGxlLmNwcAotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAltdiAtZiAkKERFUERJUikv bGlic29jaV9jb3JlX2xhLXNvY2ktc2ltcGxlLlRwbyAkKERFUERJUikvbGlic29jaV9jb3JlX2xh LXNvY2ktc2ltcGxlLlBsbwotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291 cmNlPSckKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9zb2NpLXNpbXBsZS5jcHAnIG9iamVjdD0nbGli c29jaV9jb3JlX2xhLXNvY2ktc2ltcGxlLmxvJyBsaWJ0b29sPXllcyBAQU1ERVBCQUNLU0xBU0hA Ci0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQo Q1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACi0rQGFtX19mYXN0ZGVwQ1hY X0ZBTFNFQAkkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09M RkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykg JChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX2NvcmVfbGFf Q1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1jIC1vIGxpYnNvY2lfY29yZV9sYS1zb2NpLXNpbXBsZS5s byBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvc29jaS1zaW1wbGUuY3BwJyB8fCBl Y2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9zb2NpLXNpbXBsZS5jcHAK LSsKLStsaWJzb2NpX2NvcmVfbGEtc3RhdGVtZW50LmxvOiAkKHRvcF9zcmNkaXIpL3NvY2kvY29y ZS9zdGF0ZW1lbnQuY3BwCi0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoTElCVE9PTCkgLS10YWc9 Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChD WFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdT KSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfY29yZV9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLU1U IGxpYnNvY2lfY29yZV9sYS1zdGF0ZW1lbnQubG8gLU1EIC1NUCAtTUYgJChERVBESVIpL2xpYnNv Y2lfY29yZV9sYS1zdGF0ZW1lbnQuVHBvIC1jIC1vIGxpYnNvY2lfY29yZV9sYS1zdGF0ZW1lbnQu bG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3N0YXRlbWVudC5jcHAnIHx8IGVj aG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3N0YXRlbWVudC5jcHAKLStA YW1fX2Zhc3RkZXBDWFhfVFJVRUAJbXYgLWYgJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS1zdGF0 ZW1lbnQuVHBvICQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEtc3RhdGVtZW50LlBsbwotK0BBTURF UF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSckKHRvcF9zcmNkaXIpL3NvY2kv Y29yZS9zdGF0ZW1lbnQuY3BwJyBvYmplY3Q9J2xpYnNvY2lfY29yZV9sYS1zdGF0ZW1lbnQubG8n IGxpYnRvb2w9eWVzIEBBTURFUEJBQ0tTTEFTSEAKLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBD WFhfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURF UEJBQ0tTTEFTSEAKLStAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQoTElCVE9PTCkgLS10YWc9Q1hY ICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgp ICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAk KENQUEZMQUdTKSAkKGxpYnNvY2lfY29yZV9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLWMgLW8g bGlic29jaV9jb3JlX2xhLXN0YXRlbWVudC5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2Np L2NvcmUvc3RhdGVtZW50LmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9z b2NpL2NvcmUvc3RhdGVtZW50LmNwcAotKwotK2xpYnNvY2lfY29yZV9sYS10cmFuc2FjdGlvbi5s bzogJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvdHJhbnNhY3Rpb24uY3BwCi0rQGFtX19mYXN0ZGVw Q1hYX1RSVUVACSQoTElCVE9PTCkgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRP T0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVT KSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfY29yZV9s YV9DWFhGTEFHUykgJChDWFhGTEFHUykgLU1UIGxpYnNvY2lfY29yZV9sYS10cmFuc2FjdGlvbi5s byAtTUQgLU1QIC1NRiAkKERFUERJUikvbGlic29jaV9jb3JlX2xhLXRyYW5zYWN0aW9uLlRwbyAt YyAtbyBsaWJzb2NpX2NvcmVfbGEtdHJhbnNhY3Rpb24ubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rp cikvc29jaS9jb3JlL3RyYW5zYWN0aW9uLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bf c3JjZGlyKS9zb2NpL2NvcmUvdHJhbnNhY3Rpb24uY3BwCi0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVA CW12IC1mICQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEtdHJhbnNhY3Rpb24uVHBvICQoREVQRElS KS9saWJzb2NpX2NvcmVfbGEtdHJhbnNhY3Rpb24uUGxvCi0rQEFNREVQX1RSVUVAQGFtX19mYXN0 ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3RyYW5zYWN0aW9u LmNwcCcgb2JqZWN0PSdsaWJzb2NpX2NvcmVfbGEtdHJhbnNhY3Rpb24ubG8nIGxpYnRvb2w9eWVz IEBBTURFUEJBQ0tTTEFTSEAKLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURF UERJUj0kKERFUERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAK LStAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQoTElCVE9PTCkgLS10YWc9Q1hYICQoQU1fTElCVE9P TEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChE RUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAk KGxpYnNvY2lfY29yZV9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLWMgLW8gbGlic29jaV9jb3Jl X2xhLXRyYW5zYWN0aW9uLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvY29yZS90cmFu c2FjdGlvbi5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9jb3Jl L3RyYW5zYWN0aW9uLmNwcAotKwotK2xpYnNvY2lfY29yZV9sYS11c2UtdHlwZS5sbzogJCh0b3Bf c3JjZGlyKS9zb2NpL2NvcmUvdXNlLXR5cGUuY3BwCi0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQo TElCVE9PTCkgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1t b2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVT KSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfY29yZV9sYV9DWFhGTEFHUykg JChDWFhGTEFHUykgLU1UIGxpYnNvY2lfY29yZV9sYS11c2UtdHlwZS5sbyAtTUQgLU1QIC1NRiAk KERFUERJUikvbGlic29jaV9jb3JlX2xhLXVzZS10eXBlLlRwbyAtYyAtbyBsaWJzb2NpX2NvcmVf bGEtdXNlLXR5cGUubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3VzZS10eXBl LmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvdXNlLXR5 cGUuY3BwCi0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACW12IC1mICQoREVQRElSKS9saWJzb2NpX2Nv cmVfbGEtdXNlLXR5cGUuVHBvICQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEtdXNlLXR5cGUuUGxv Ci0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQodG9wX3NyY2Rp cikvc29jaS9jb3JlL3VzZS10eXBlLmNwcCcgb2JqZWN0PSdsaWJzb2NpX2NvcmVfbGEtdXNlLXR5 cGUubG8nIGxpYnRvb2w9eWVzIEBBTURFUEJBQ0tTTEFTSEAKLStAQU1ERVBfVFJVRUBAYW1fX2Zh c3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXAp IEBBTURFUEJBQ0tTTEFTSEAKLStAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQoTElCVE9PTCkgLS10 YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUg JChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZM QUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfY29yZV9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykg LWMgLW8gbGlic29jaV9jb3JlX2xhLXVzZS10eXBlLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIp L3NvY2kvY29yZS91c2UtdHlwZS5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rp cikvc29jaS9jb3JlL3VzZS10eXBlLmNwcAotKwotK2xpYnNvY2lfY29yZV9sYS12YWx1ZXMubG86 ICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3ZhbHVlcy5jcHAKLStAYW1fX2Zhc3RkZXBDWFhfVFJV RUAJJChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdT KSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5D TFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9jb3JlX2xhX0NYWEZM QUdTKSAkKENYWEZMQUdTKSAtTVQgbGlic29jaV9jb3JlX2xhLXZhbHVlcy5sbyAtTUQgLU1QIC1N RiAkKERFUERJUikvbGlic29jaV9jb3JlX2xhLXZhbHVlcy5UcG8gLWMgLW8gbGlic29jaV9jb3Jl X2xhLXZhbHVlcy5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvdmFsdWVzLmNw cCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvdmFsdWVzLmNw cAotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAltdiAtZiAkKERFUERJUikvbGlic29jaV9jb3JlX2xh LXZhbHVlcy5UcG8gJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS12YWx1ZXMuUGxvCi0rQEFNREVQ X1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQodG9wX3NyY2Rpcikvc29jaS9j b3JlL3ZhbHVlcy5jcHAnIG9iamVjdD0nbGlic29jaV9jb3JlX2xhLXZhbHVlcy5sbycgbGlidG9v bD15ZXMgQEFNREVQQkFDS1NMQVNIQAotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxT RUAJREVQRElSPSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NM QVNIQAotK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9M SUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZT KSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxB R1MpICQobGlic29jaV9jb3JlX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtYyAtbyBsaWJzb2Np X2NvcmVfbGEtdmFsdWVzLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvY29yZS92YWx1 ZXMuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS92YWx1 ZXMuY3BwCi0rCi0rbW9zdGx5Y2xlYW4tbGlidG9vbDoKLSsJLXJtIC1mICoubG8KLSsKLStjbGVh bi1saWJ0b29sOgotKwktcm0gLXJmIC5saWJzIF9saWJzCi0raW5zdGFsbC1wa2dpbmNsdWRlSEVB REVSUzogJChwa2dpbmNsdWRlX0hFQURFUlMpCi0rCUAkKE5PUk1BTF9JTlNUQUxMKQotKwl0ZXN0 IC16ICIkKHBrZ2luY2x1ZGVkaXIpIiB8fCAkKE1LRElSX1ApICIkKERFU1RESVIpJChwa2dpbmNs dWRlZGlyKSIKLSsJQGxpc3Q9JyQocGtnaW5jbHVkZV9IRUFERVJTKSc7IGZvciBwIGluICQkbGlz dDsgZG8gXAotKwkgIGlmIHRlc3QgLWYgIiQkcCI7IHRoZW4gZD07IGVsc2UgZD0iJChzcmNkaXIp LyI7IGZpOyBcCi0rCSAgZj0kKGFtX19zdHJpcF9kaXIpIFwKLSsJICBlY2hvICIgJChwa2dpbmNs dWRlSEVBREVSU19JTlNUQUxMKSAnJCRkJCRwJyAnJChERVNURElSKSQocGtnaW5jbHVkZWRpcikv JCRmJyI7IFwKLSsJICAkKHBrZ2luY2x1ZGVIRUFERVJTX0lOU1RBTEwpICIkJGQkJHAiICIkKERF U1RESVIpJChwa2dpbmNsdWRlZGlyKS8kJGYiOyBcCi0rCWRvbmUKLSsKLSt1bmluc3RhbGwtcGtn aW5jbHVkZUhFQURFUlM6Ci0rCUAkKE5PUk1BTF9VTklOU1RBTEwpCi0rCUBsaXN0PSckKHBrZ2lu Y2x1ZGVfSEVBREVSUyknOyBmb3IgcCBpbiAkJGxpc3Q7IGRvIFwKLSsJICBmPSQoYW1fX3N0cmlw X2RpcikgXAotKwkgIGVjaG8gIiBybSAtZiAnJChERVNURElSKSQocGtnaW5jbHVkZWRpcikvJCRm JyI7IFwKLSsJICBybSAtZiAiJChERVNURElSKSQocGtnaW5jbHVkZWRpcikvJCRmIjsgXAotKwlk b25lCi0rCi0rIyBUaGlzIGRpcmVjdG9yeSdzIHN1YmRpcmVjdG9yaWVzIGFyZSBtb3N0bHkgaW5k ZXBlbmRlbnQ7IHlvdSBjYW4gY2QKLSsjIGludG8gdGhlbSBhbmQgcnVuIGBtYWtlJyB3aXRob3V0 IGdvaW5nIHRocm91Z2ggdGhpcyBNYWtlZmlsZS4KLSsjIFRvIGNoYW5nZSB0aGUgdmFsdWVzIG9m IGBtYWtlJyB2YXJpYWJsZXM6IGluc3RlYWQgb2YgZWRpdGluZyBNYWtlZmlsZXMsCi0rIyAoMSkg aWYgdGhlIHZhcmlhYmxlIGlzIHNldCBpbiBgY29uZmlnLnN0YXR1cycsIGVkaXQgYGNvbmZpZy5z dGF0dXMnCi0rIyAgICAgKHdoaWNoIHdpbGwgY2F1c2UgdGhlIE1ha2VmaWxlcyB0byBiZSByZWdl bmVyYXRlZCB3aGVuIHlvdSBydW4gYG1ha2UnKTsKLSsjICgyKSBvdGhlcndpc2UsIHBhc3MgdGhl IGRlc2lyZWQgdmFsdWVzIG9uIHRoZSBgbWFrZScgY29tbWFuZCBsaW5lLgotKyQoUkVDVVJTSVZF X1RBUkdFVFMpOgotKwlAZmFpbGNvbT0nZXhpdCAxJzsgXAotKwlmb3IgZiBpbiB4ICQkTUFLRUZM QUdTOyBkbyBcCi0rCSAgY2FzZSAkJGYgaW4gXAotKwkgICAgKj0qIHwgLS1bIWtdKik7OyBcCi0r CSAgICAqayopIGZhaWxjb209J2ZhaWw9eWVzJzs7IFwKLSsJICBlc2FjOyBcCi0rCWRvbmU7IFwK LSsJZG90X3NlZW49bm87IFwKLSsJdGFyZ2V0PWBlY2hvICRAIHwgc2VkIHMvLXJlY3Vyc2l2ZS8v YDsgXAotKwlsaXN0PSckKFNVQkRJUlMpJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKLSsJ ICBlY2hvICJNYWtpbmcgJCR0YXJnZXQgaW4gJCRzdWJkaXIiOyBcCi0rCSAgaWYgdGVzdCAiJCRz dWJkaXIiID0gIi4iOyB0aGVuIFwKLSsJICAgIGRvdF9zZWVuPXllczsgXAotKwkgICAgbG9jYWxf dGFyZ2V0PSIkJHRhcmdldC1hbSI7IFwKLSsJICBlbHNlIFwKLSsJICAgIGxvY2FsX3RhcmdldD0i JCR0YXJnZXQiOyBcCi0rCSAgZmk7IFwKLSsJICAoY2QgJCRzdWJkaXIgJiYgJChNQUtFKSAkKEFN X01BS0VGTEFHUykgJCRsb2NhbF90YXJnZXQpIFwKLSsJICB8fCBldmFsICQkZmFpbGNvbTsgXAot Kwlkb25lOyBcCi0rCWlmIHRlc3QgIiQkZG90X3NlZW4iID0gIm5vIjsgdGhlbiBcCi0rCSAgJChN QUtFKSAkKEFNX01BS0VGTEFHUykgIiQkdGFyZ2V0LWFtIiB8fCBleGl0IDE7IFwKLSsJZmk7IHRl c3QgLXogIiQkZmFpbCIKLSsKLSskKFJFQ1VSU0lWRV9DTEVBTl9UQVJHRVRTKToKLSsJQGZhaWxj b209J2V4aXQgMSc7IFwKLSsJZm9yIGYgaW4geCAkJE1BS0VGTEFHUzsgZG8gXAotKwkgIGNhc2Ug JCRmIGluIFwKLSsJICAgICo9KiB8IC0tWyFrXSopOzsgXAotKwkgICAgKmsqKSBmYWlsY29tPSdm YWlsPXllcyc7OyBcCi0rCSAgZXNhYzsgXAotKwlkb25lOyBcCi0rCWRvdF9zZWVuPW5vOyBcCi0r CWNhc2UgIiRAIiBpbiBcCi0rCSAgZGlzdGNsZWFuLSogfCBtYWludGFpbmVyLWNsZWFuLSopIGxp c3Q9JyQoRElTVF9TVUJESVJTKScgOzsgXAotKwkgICopIGxpc3Q9JyQoU1VCRElSUyknIDs7IFwK LSsJZXNhYzsgXAotKwlyZXY9Jyc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCi0rCSAgaWYg dGVzdCAiJCRzdWJkaXIiID0gIi4iOyB0aGVuIDo7IGVsc2UgXAotKwkgICAgcmV2PSIkJHN1YmRp ciAkJHJldiI7IFwKLSsJICBmaTsgXAotKwlkb25lOyBcCi0rCXJldj0iJCRyZXYgLiI7IFwKLSsJ dGFyZ2V0PWBlY2hvICRAIHwgc2VkIHMvLXJlY3Vyc2l2ZS8vYDsgXAotKwlmb3Igc3ViZGlyIGlu ICQkcmV2OyBkbyBcCi0rCSAgZWNobyAiTWFraW5nICQkdGFyZ2V0IGluICQkc3ViZGlyIjsgXAot KwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9ICIuIjsgdGhlbiBcCi0rCSAgICBsb2NhbF90YXJnZXQ9 IiQkdGFyZ2V0LWFtIjsgXAotKwkgIGVsc2UgXAotKwkgICAgbG9jYWxfdGFyZ2V0PSIkJHRhcmdl dCI7IFwKLSsJICBmaTsgXAotKwkgIChjZCAkJHN1YmRpciAmJiAkKE1BS0UpICQoQU1fTUFLRUZM QUdTKSAkJGxvY2FsX3RhcmdldCkgXAotKwkgIHx8IGV2YWwgJCRmYWlsY29tOyBcCi0rCWRvbmUg JiYgdGVzdCAteiAiJCRmYWlsIgotK3RhZ3MtcmVjdXJzaXZlOgotKwlsaXN0PSckKFNVQkRJUlMp JzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKLSsJICB0ZXN0ICIkJHN1YmRpciIgPSAuIHx8 IChjZCAkJHN1YmRpciAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSB0YWdzKTsgXAotKwlkb25l Ci0rY3RhZ3MtcmVjdXJzaXZlOgotKwlsaXN0PSckKFNVQkRJUlMpJzsgZm9yIHN1YmRpciBpbiAk JGxpc3Q7IGRvIFwKLSsJICB0ZXN0ICIkJHN1YmRpciIgPSAuIHx8IChjZCAkJHN1YmRpciAmJiAk KE1BS0UpICQoQU1fTUFLRUZMQUdTKSBjdGFncyk7IFwKLSsJZG9uZQotKwotK0lEOiAkKEhFQURF UlMpICQoU09VUkNFUykgJChMSVNQKSAkKFRBR1NfRklMRVMpCi0rCWxpc3Q9JyQoU09VUkNFUykg JChIRUFERVJTKSAkKExJU1ApICQoVEFHU19GSUxFUyknOyBcCi0rCXVuaXF1ZT1gZm9yIGkgaW4g JCRsaXN0OyBkbyBcCi0rCSAgICBpZiB0ZXN0IC1mICIkJGkiOyB0aGVuIGVjaG8gJCRpOyBlbHNl IGVjaG8gJChzcmNkaXIpLyQkaTsgZmk7IFwKLSsJICBkb25lIHwgXAotKwkgICQoQVdLKSAneyBm aWxlc1skJDBdID0gMTsgbm9uZW1wdHkgPSAxOyB9IFwKLSsJICAgICAgRU5EIHsgaWYgKG5vbmVt cHR5KSB7IGZvciAoaSBpbiBmaWxlcykgcHJpbnQgaTsgfTsgfSdgOyBcCi0rCW1raWQgLWZJRCAk JHVuaXF1ZQotK3RhZ3M6IFRBR1MKLSsKLStUQUdTOiB0YWdzLXJlY3Vyc2l2ZSAkKEhFQURFUlMp ICQoU09VUkNFUykgICQoVEFHU19ERVBFTkRFTkNJRVMpIFwKLSsJCSQoVEFHU19GSUxFUykgJChM SVNQKQotKwl0YWdzPTsgXAotKwloZXJlPWBwd2RgOyBcCi0rCWlmICgkKEVUQUdTKSAtLWV0YWdz LWluY2x1ZGUgLS12ZXJzaW9uKSA+L2Rldi9udWxsIDI+JjE7IHRoZW4gXAotKwkgIGluY2x1ZGVf b3B0aW9uPS0tZXRhZ3MtaW5jbHVkZTsgXAotKwkgIGVtcHR5X2ZpeD0uOyBcCi0rCWVsc2UgXAot KwkgIGluY2x1ZGVfb3B0aW9uPS0taW5jbHVkZTsgXAotKwkgIGVtcHR5X2ZpeD07IFwKLSsJZmk7 IFwKLSsJbGlzdD0nJChTVUJESVJTKSc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCi0rCSAg aWYgdGVzdCAiJCRzdWJkaXIiID0gLjsgdGhlbiA6OyBlbHNlIFwKLSsJICAgIHRlc3QgISAtZiAk JHN1YmRpci9UQUdTIHx8IFwKLSsJICAgICAgdGFncz0iJCR0YWdzICQkaW5jbHVkZV9vcHRpb249 JCRoZXJlLyQkc3ViZGlyL1RBR1MiOyBcCi0rCSAgZmk7IFwKLSsJZG9uZTsgXAotKwlsaXN0PSck KFNPVVJDRVMpICQoSEVBREVSUykgICQoTElTUCkgJChUQUdTX0ZJTEVTKSc7IFwKLSsJdW5pcXVl PWBmb3IgaSBpbiAkJGxpc3Q7IGRvIFwKLSsJICAgIGlmIHRlc3QgLWYgIiQkaSI7IHRoZW4gZWNo byAkJGk7IGVsc2UgZWNobyAkKHNyY2RpcikvJCRpOyBmaTsgXAotKwkgIGRvbmUgfCBcCi0rCSAg JChBV0spICd7IGZpbGVzWyQkMF0gPSAxOyBub25lbXB0eSA9IDE7IH0gXAotKwkgICAgICBFTkQg eyBpZiAobm9uZW1wdHkpIHsgZm9yIChpIGluIGZpbGVzKSBwcmludCBpOyB9OyB9J2A7IFwKLSsJ aWYgdGVzdCAteiAiJChFVEFHU19BUkdTKSQkdGFncyQkdW5pcXVlIjsgdGhlbiA6OyBlbHNlIFwK LSsJICB0ZXN0IC1uICIkJHVuaXF1ZSIgfHwgdW5pcXVlPSQkZW1wdHlfZml4OyBcCi0rCSAgJChF VEFHUykgJChFVEFHU0ZMQUdTKSAkKEFNX0VUQUdTRkxBR1MpICQoRVRBR1NfQVJHUykgXAotKwkg ICAgJCR0YWdzICQkdW5pcXVlOyBcCi0rCWZpCi0rY3RhZ3M6IENUQUdTCi0rQ1RBR1M6IGN0YWdz LXJlY3Vyc2l2ZSAkKEhFQURFUlMpICQoU09VUkNFUykgICQoVEFHU19ERVBFTkRFTkNJRVMpIFwK LSsJCSQoVEFHU19GSUxFUykgJChMSVNQKQotKwl0YWdzPTsgXAotKwlsaXN0PSckKFNPVVJDRVMp ICQoSEVBREVSUykgICQoTElTUCkgJChUQUdTX0ZJTEVTKSc7IFwKLSsJdW5pcXVlPWBmb3IgaSBp biAkJGxpc3Q7IGRvIFwKLSsJICAgIGlmIHRlc3QgLWYgIiQkaSI7IHRoZW4gZWNobyAkJGk7IGVs c2UgZWNobyAkKHNyY2RpcikvJCRpOyBmaTsgXAotKwkgIGRvbmUgfCBcCi0rCSAgJChBV0spICd7 IGZpbGVzWyQkMF0gPSAxOyBub25lbXB0eSA9IDE7IH0gXAotKwkgICAgICBFTkQgeyBpZiAobm9u ZW1wdHkpIHsgZm9yIChpIGluIGZpbGVzKSBwcmludCBpOyB9OyB9J2A7IFwKLSsJdGVzdCAteiAi JChDVEFHU19BUkdTKSQkdGFncyQkdW5pcXVlIiBcCi0rCSAgfHwgJChDVEFHUykgJChDVEFHU0ZM QUdTKSAkKEFNX0NUQUdTRkxBR1MpICQoQ1RBR1NfQVJHUykgXAotKwkgICAgICQkdGFncyAkJHVu aXF1ZQotKwotK0dUQUdTOgotKwloZXJlPWAkKGFtX19jZCkgJCh0b3BfYnVpbGRkaXIpICYmIHB3 ZGAgXAotKwkgICYmIGNkICQodG9wX3NyY2RpcikgXAotKwkgICYmIGd0YWdzIC1pICQoR1RBR1Nf QVJHUykgJCRoZXJlCi0rCi0rZGlzdGNsZWFuLXRhZ3M6Ci0rCS1ybSAtZiBUQUdTIElEIEdUQUdT IEdSVEFHUyBHU1lNUyBHUEFUSCB0YWdzCi0rCi0rZGlzdGRpcjogJChESVNURklMRVMpCi0rCUBz cmNkaXJzdHJpcD1gZWNobyAiJChzcmNkaXIpIiB8IHNlZCAncy9bXS5bXiQkXFwqXS9cXFxcJi9n J2A7IFwKLSsJdG9wc3JjZGlyc3RyaXA9YGVjaG8gIiQodG9wX3NyY2RpcikiIHwgc2VkICdzL1td LlteJCRcXCpdL1xcXFwmL2cnYDsgXAotKwlsaXN0PSckKERJU1RGSUxFUyknOyBcCi0rCSAgZGlz dF9maWxlcz1gZm9yIGZpbGUgaW4gJCRsaXN0OyBkbyBlY2hvICQkZmlsZTsgZG9uZSB8IFwKLSsJ ICBzZWQgLWUgInN8XiQkc3JjZGlyc3RyaXAvfHw7dCIgXAotKwkgICAgICAtZSAic3xeJCR0b3Bz cmNkaXJzdHJpcC98JCh0b3BfYnVpbGRkaXIpL3w7dCJgOyBcCi0rCWNhc2UgJCRkaXN0X2ZpbGVz IGluIFwKLSsJICAqLyopICQoTUtESVJfUCkgYGVjaG8gIiQkZGlzdF9maWxlcyIgfCBcCi0rCQkJ ICAgc2VkICcvXC8vIWQ7c3xefCQoZGlzdGRpcikvfDtzLC9bXi9dKiQkLCwnIHwgXAotKwkJCSAg IHNvcnQgLXVgIDs7IFwKLSsJZXNhYzsgXAotKwlmb3IgZmlsZSBpbiAkJGRpc3RfZmlsZXM7IGRv IFwKLSsJICBpZiB0ZXN0IC1mICQkZmlsZSB8fCB0ZXN0IC1kICQkZmlsZTsgdGhlbiBkPS47IGVs c2UgZD0kKHNyY2Rpcik7IGZpOyBcCi0rCSAgaWYgdGVzdCAtZCAkJGQvJCRmaWxlOyB0aGVuIFwK LSsJICAgIGRpcj1gZWNobyAiLyQkZmlsZSIgfCBzZWQgLWUgJ3MsL1teL10qJCQsLCdgOyBcCi0r CSAgICBpZiB0ZXN0IC1kICQoc3JjZGlyKS8kJGZpbGUgJiYgdGVzdCAkJGQgIT0gJChzcmNkaXIp OyB0aGVuIFwKLSsJICAgICAgY3AgLXBSICQoc3JjZGlyKS8kJGZpbGUgJChkaXN0ZGlyKSQkZGly IHx8IGV4aXQgMTsgXAotKwkgICAgZmk7IFwKLSsJICAgIGNwIC1wUiAkJGQvJCRmaWxlICQoZGlz dGRpcikkJGRpciB8fCBleGl0IDE7IFwKLSsJICBlbHNlIFwKLSsJICAgIHRlc3QgLWYgJChkaXN0 ZGlyKS8kJGZpbGUgXAotKwkgICAgfHwgY3AgLXAgJCRkLyQkZmlsZSAkKGRpc3RkaXIpLyQkZmls ZSBcCi0rCSAgICB8fCBleGl0IDE7IFwKLSsJICBmaTsgXAotKwlkb25lCi0rCWxpc3Q9JyQoRElT VF9TVUJESVJTKSc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCi0rCSAgaWYgdGVzdCAiJCRz dWJkaXIiID0gLjsgdGhlbiA6OyBlbHNlIFwKLSsJICAgIHRlc3QgLWQgIiQoZGlzdGRpcikvJCRz dWJkaXIiIFwKLSsJICAgIHx8ICQoTUtESVJfUCkgIiQoZGlzdGRpcikvJCRzdWJkaXIiIFwKLSsJ ICAgIHx8IGV4aXQgMTsgXAotKwkgICAgZGlzdGRpcj1gJChhbV9fY2QpICQoZGlzdGRpcikgJiYg cHdkYDsgXAotKwkgICAgdG9wX2Rpc3RkaXI9YCQoYW1fX2NkKSAkKHRvcF9kaXN0ZGlyKSAmJiBw d2RgOyBcCi0rCSAgICAoY2QgJCRzdWJkaXIgJiYgXAotKwkgICAgICAkKE1BS0UpICQoQU1fTUFL RUZMQUdTKSBcCi0rCSAgICAgICAgdG9wX2Rpc3RkaXI9IiQkdG9wX2Rpc3RkaXIiIFwKLSsJICAg ICAgICBkaXN0ZGlyPSIkJGRpc3RkaXIvJCRzdWJkaXIiIFwKLSsJCWFtX19yZW1vdmVfZGlzdGRp cj06IFwKLSsJCWFtX19za2lwX2xlbmd0aF9jaGVjaz06IFwKLSsJICAgICAgICBkaXN0ZGlyKSBc Ci0rCSAgICAgIHx8IGV4aXQgMTsgXAotKwkgIGZpOyBcCi0rCWRvbmUKLStjaGVjay1hbTogYWxs LWFtCi0rY2hlY2s6IGNoZWNrLXJlY3Vyc2l2ZQotK2FsbC1hbTogTWFrZWZpbGUgJChMVExJQlJB UklFUykgJChIRUFERVJTKQotK2luc3RhbGxkaXJzOiBpbnN0YWxsZGlycy1yZWN1cnNpdmUKLStp bnN0YWxsZGlycy1hbToKLSsJZm9yIGRpciBpbiAiJChERVNURElSKSQobGliZGlyKSIgIiQoREVT VERJUikkKHBrZ2luY2x1ZGVkaXIpIjsgZG8gXAotKwkgIHRlc3QgLXogIiQkZGlyIiB8fCAkKE1L RElSX1ApICIkJGRpciI7IFwKLSsJZG9uZQotK2luc3RhbGw6IGluc3RhbGwtcmVjdXJzaXZlCi0r aW5zdGFsbC1leGVjOiBpbnN0YWxsLWV4ZWMtcmVjdXJzaXZlCi0raW5zdGFsbC1kYXRhOiBpbnN0 YWxsLWRhdGEtcmVjdXJzaXZlCi0rdW5pbnN0YWxsOiB1bmluc3RhbGwtcmVjdXJzaXZlCi0rCi0r aW5zdGFsbC1hbTogYWxsLWFtCi0rCUAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBpbnN0YWxsLWV4 ZWMtYW0gaW5zdGFsbC1kYXRhLWFtCi0rCi0raW5zdGFsbGNoZWNrOiBpbnN0YWxsY2hlY2stcmVj dXJzaXZlCi0raW5zdGFsbC1zdHJpcDoKLSsJJChNQUtFKSAkKEFNX01BS0VGTEFHUykgSU5TVEFM TF9QUk9HUkFNPSIkKElOU1RBTExfU1RSSVBfUFJPR1JBTSkiIFwKLSsJICBpbnN0YWxsX3NoX1BS T0dSQU09IiQoSU5TVEFMTF9TVFJJUF9QUk9HUkFNKSIgSU5TVEFMTF9TVFJJUF9GTEFHPS1zIFwK LSsJICBgdGVzdCAteiAnJChTVFJJUCknIHx8IFwKLSsJICAgIGVjaG8gIklOU1RBTExfUFJPR1JB TV9FTlY9U1RSSVBQUk9HPSckKFNUUklQKSciYCBpbnN0YWxsCi0rbW9zdGx5Y2xlYW4tZ2VuZXJp YzoKLSsKLStjbGVhbi1nZW5lcmljOgotKwotK2Rpc3RjbGVhbi1nZW5lcmljOgotKwktdGVzdCAt eiAiJChDT05GSUdfQ0xFQU5fRklMRVMpIiB8fCBybSAtZiAkKENPTkZJR19DTEVBTl9GSUxFUykK LSsKLSttYWludGFpbmVyLWNsZWFuLWdlbmVyaWM6Ci0rCUBlY2hvICJUaGlzIGNvbW1hbmQgaXMg aW50ZW5kZWQgZm9yIG1haW50YWluZXJzIHRvIHVzZSIKLSsJQGVjaG8gIml0IGRlbGV0ZXMgZmls ZXMgdGhhdCBtYXkgcmVxdWlyZSBzcGVjaWFsIHRvb2xzIHRvIHJlYnVpbGQuIgotKwktdGVzdCAt eiAiJChNQUlOVEFJTkVSQ0xFQU5GSUxFUykiIHx8IHJtIC1mICQoTUFJTlRBSU5FUkNMRUFORklM RVMpCi0rY2xlYW46IGNsZWFuLXJlY3Vyc2l2ZQotKwotK2NsZWFuLWFtOiBjbGVhbi1nZW5lcmlj IGNsZWFuLWxpYkxUTElCUkFSSUVTIGNsZWFuLWxpYnRvb2wgXAotKwltb3N0bHljbGVhbi1hbQot KwotK2Rpc3RjbGVhbjogZGlzdGNsZWFuLXJlY3Vyc2l2ZQotKwktcm0gLXJmIC4vJChERVBESVIp Ci0rCS1ybSAtZiBNYWtlZmlsZQotK2Rpc3RjbGVhbi1hbTogY2xlYW4tYW0gZGlzdGNsZWFuLWNv bXBpbGUgZGlzdGNsZWFuLWdlbmVyaWMgXAotKwlkaXN0Y2xlYW4tdGFncwotKwotK2R2aTogZHZp LXJlY3Vyc2l2ZQotKwotK2R2aS1hbToKLSsKLStodG1sOiBodG1sLXJlY3Vyc2l2ZQotKwotK2lu Zm86IGluZm8tcmVjdXJzaXZlCi0rCi0raW5mby1hbToKLSsKLStpbnN0YWxsLWRhdGEtYW06IGlu c3RhbGwtcGtnaW5jbHVkZUhFQURFUlMKLSsKLStpbnN0YWxsLWR2aTogaW5zdGFsbC1kdmktcmVj dXJzaXZlCi0rCi0raW5zdGFsbC1leGVjLWFtOiBpbnN0YWxsLWxpYkxUTElCUkFSSUVTCi0rCi0r aW5zdGFsbC1odG1sOiBpbnN0YWxsLWh0bWwtcmVjdXJzaXZlCi0rCi0raW5zdGFsbC1pbmZvOiBp bnN0YWxsLWluZm8tcmVjdXJzaXZlCi0rCi0raW5zdGFsbC1tYW46Ci0rCi0raW5zdGFsbC1wZGY6 IGluc3RhbGwtcGRmLXJlY3Vyc2l2ZQotKwotK2luc3RhbGwtcHM6IGluc3RhbGwtcHMtcmVjdXJz aXZlCi0rCi0raW5zdGFsbGNoZWNrLWFtOgotKwotK21haW50YWluZXItY2xlYW46IG1haW50YWlu ZXItY2xlYW4tcmVjdXJzaXZlCi0rCS1ybSAtcmYgLi8kKERFUERJUikKLSsJLXJtIC1mIE1ha2Vm aWxlCi0rbWFpbnRhaW5lci1jbGVhbi1hbTogZGlzdGNsZWFuLWFtIG1haW50YWluZXItY2xlYW4t Z2VuZXJpYwotKwotK21vc3RseWNsZWFuOiBtb3N0bHljbGVhbi1yZWN1cnNpdmUKLSsKLSttb3N0 bHljbGVhbi1hbTogbW9zdGx5Y2xlYW4tY29tcGlsZSBtb3N0bHljbGVhbi1nZW5lcmljIFwKLSsJ bW9zdGx5Y2xlYW4tbGlidG9vbAotKwotK3BkZjogcGRmLXJlY3Vyc2l2ZQotKwotK3BkZi1hbToK LSsKLStwczogcHMtcmVjdXJzaXZlCi0rCi0rcHMtYW06Ci0rCi0rdW5pbnN0YWxsLWFtOiB1bmlu c3RhbGwtbGliTFRMSUJSQVJJRVMgdW5pbnN0YWxsLXBrZ2luY2x1ZGVIRUFERVJTCi0rCi0rLk1B S0U6ICQoUkVDVVJTSVZFX0NMRUFOX1RBUkdFVFMpICQoUkVDVVJTSVZFX1RBUkdFVFMpIGluc3Rh bGwtYW0gXAotKwlpbnN0YWxsLXN0cmlwCi0rCi0rLlBIT05ZOiAkKFJFQ1VSU0lWRV9DTEVBTl9U QVJHRVRTKSAkKFJFQ1VSU0lWRV9UQVJHRVRTKSBDVEFHUyBHVEFHUyBcCi0rCWFsbCBhbGwtYW0g Y2hlY2sgY2hlY2stYW0gY2xlYW4gY2xlYW4tZ2VuZXJpYyBcCi0rCWNsZWFuLWxpYkxUTElCUkFS SUVTIGNsZWFuLWxpYnRvb2wgY3RhZ3MgY3RhZ3MtcmVjdXJzaXZlIFwKLSsJZGlzdGNsZWFuIGRp c3RjbGVhbi1jb21waWxlIGRpc3RjbGVhbi1nZW5lcmljIFwKLSsJZGlzdGNsZWFuLWxpYnRvb2wg ZGlzdGNsZWFuLXRhZ3MgZGlzdGRpciBkdmkgZHZpLWFtIGh0bWwgXAotKwlodG1sLWFtIGluZm8g aW5mby1hbSBpbnN0YWxsIGluc3RhbGwtYW0gaW5zdGFsbC1kYXRhIFwKLSsJaW5zdGFsbC1kYXRh LWFtIGluc3RhbGwtZHZpIGluc3RhbGwtZHZpLWFtIGluc3RhbGwtZXhlYyBcCi0rCWluc3RhbGwt ZXhlYy1hbSBpbnN0YWxsLWh0bWwgaW5zdGFsbC1odG1sLWFtIGluc3RhbGwtaW5mbyBcCi0rCWlu c3RhbGwtaW5mby1hbSBpbnN0YWxsLWxpYkxUTElCUkFSSUVTIGluc3RhbGwtbWFuIGluc3RhbGwt cGRmIFwKLSsJaW5zdGFsbC1wZGYtYW0gaW5zdGFsbC1wa2dpbmNsdWRlSEVBREVSUyBpbnN0YWxs LXBzIFwKLSsJaW5zdGFsbC1wcy1hbSBpbnN0YWxsLXN0cmlwIGluc3RhbGxjaGVjayBpbnN0YWxs Y2hlY2stYW0gXAotKwlpbnN0YWxsZGlycyBpbnN0YWxsZGlycy1hbSBtYWludGFpbmVyLWNsZWFu IFwKLSsJbWFpbnRhaW5lci1jbGVhbi1nZW5lcmljIG1vc3RseWNsZWFuIG1vc3RseWNsZWFuLWNv bXBpbGUgXAotKwltb3N0bHljbGVhbi1nZW5lcmljIG1vc3RseWNsZWFuLWxpYnRvb2wgcGRmIHBk Zi1hbSBwcyBwcy1hbSBcCi0rCXRhZ3MgdGFncy1yZWN1cnNpdmUgdW5pbnN0YWxsIHVuaW5zdGFs bC1hbSBcCi0rCXVuaW5zdGFsbC1saWJMVExJQlJBUklFUyB1bmluc3RhbGwtcGtnaW5jbHVkZUhF QURFUlMKLSsKLStAU0VUX01BS0VACi0rIyBUZWxsIHZlcnNpb25zIFszLjU5LDMuNjMpIG9mIEdO VSBtYWtlIHRvIG5vdCBleHBvcnQgYWxsIHZhcmlhYmxlcy4KLSsjIE90aGVyd2lzZSBhIHN5c3Rl bSBsaW1pdCAoZm9yIFN5c1YgYXQgbGVhc3QpIG1heSBiZSBleGNlZWRlZC4KLSsuTk9FWFBPUlQ6 Ci1kaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svc29jaS9jb3JlL3NvdXJjZXMubWsgc29jaS0z LjAuMF90cmVwMzAwL3NvY2kvY29yZS9zb3VyY2VzLm1rCi0tLS0gc29jaS0zLjAuMF80LXBhY2sv c29jaS9jb3JlL3NvdXJjZXMubWsJMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAK LSsrKyBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9jb3JlL3NvdXJjZXMubWsJMjAwOS0wNS0yMiAy Mjo1NDoxOC4wMDAwMDAwMDAgKzAyMDAKLUBAIC0wLDAgKzEsNTggQEAKLStjb3JlX2hfc291cmNl cyA9IFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL2JhY2tlbmQtbG9hZGVyLmgg XAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvYmxvYi5oIFwKLSsgICAgICAgICQo dG9wX3NyY2Rpcikvc29jaS9jb3JlL2Jsb2ItZXhjaGFuZ2UuaCBcCi0rICAgICAgICAkKHRvcF9z cmNkaXIpL3NvY2kvY29yZS9ib29zdC1ncmVnb3JpYW4tZGF0ZS5oIFwKLSsgICAgICAgICQodG9w X3NyY2Rpcikvc29jaS9jb3JlL2Jvb3N0LWZ1c2lvbi5oIFwKLSsgICAgICAgICQodG9wX3NyY2Rp cikvc29jaS9jb3JlL2Jvb3N0LW9wdGlvbmFsLmggXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9z b2NpL2NvcmUvYm9vc3QtdHVwbGUuaCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29y ZS9jb25uZWN0aW9uLXBvb2wuaCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9l cnJvci5oIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL2V4Y2hhbmdlLXRyYWl0 cy5oIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL2ludG8uaCBcCi0rICAgICAg ICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9pbnRvLXR5cGUuaCBcCi0rICAgICAgICAkKHRvcF9z cmNkaXIpL3NvY2kvY29yZS9vbmNlLXRlbXAtdHlwZS5oIFwKLSsgICAgICAgICQodG9wX3NyY2Rp cikvc29jaS9jb3JlL3ByZXBhcmUtdGVtcC10eXBlLmggXAotKyAgICAgICAgJCh0b3Bfc3JjZGly KS9zb2NpL2NvcmUvcHJvY2VkdXJlLmggXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2Nv cmUvcmVmLWNvdW50ZWQtcHJlcGFyZS1pbmZvLmggXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9z b2NpL2NvcmUvcmVmLWNvdW50ZWQtc3RhdGVtZW50LmggXAotKyAgICAgICAgJCh0b3Bfc3JjZGly KS9zb2NpL2NvcmUvcm93LmggXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcm93 LWV4Y2hhbmdlLmggXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcm93aWQuaCBc Ci0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9yb3dpZC1leGNoYW5nZS5oIFwKLSsg ICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3Jvd3NldC5oIFwKLSsgICAgICAgICQodG9w X3NyY2Rpcikvc29jaS9jb3JlL3Nlc3Npb24uaCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3Nv Y2kvY29yZS9zb2NpLWJhY2tlbmQuaCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29y ZS9zb2NpLWNvbmZpZy5oIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3NvY2kt cGxhdGZvcm0uaCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9zb2NpLXNpbXBs ZS5oIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3NvY2kuaCBcCi0rICAgICAg ICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9zdGF0ZW1lbnQuaCBcCi0rICAgICAgICAkKHRvcF9z cmNkaXIpL3NvY2kvY29yZS90cmFuc2FjdGlvbi5oIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikv c29jaS9jb3JlL3R5cGUtY29udmVyc2lvbi5oIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29j aS9jb3JlL3R5cGUtY29udmVyc2lvbi10cmFpdHMuaCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIp L3NvY2kvY29yZS90eXBlLWhvbGRlci5oIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9j b3JlL3R5cGUtcHRyLmggXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvdXNlLmgg XAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvdXNlLXR5cGUuaCBcCi0rICAgICAg ICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS92YWx1ZXMuaCBcCi0rICAgICAgICAkKHRvcF9zcmNk aXIpL3NvY2kvY29yZS92YWx1ZXMtZXhjaGFuZ2UuaAotK2NvcmVfY2Nfc291cmNlcyA9IFwKLSsg ICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL2JhY2tlbmQtbG9hZGVyLmNwcCBcCi0rICAg ICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9ibG9iLmNwcCBcCi0rICAgICAgICAkKHRvcF9z cmNkaXIpL3NvY2kvY29yZS9jb25uZWN0aW9uLXBvb2wuY3BwIFwKLSsgICAgICAgICQodG9wX3Ny Y2Rpcikvc29jaS9jb3JlL2Vycm9yLmNwcCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kv Y29yZS9pbnRvLXR5cGUuY3BwIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL29u Y2UtdGVtcC10eXBlLmNwcCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9wcmVw YXJlLXRlbXAtdHlwZS5jcHAgXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcHJv Y2VkdXJlLmNwcCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9yZWYtY291bnRl ZC1wcmVwYXJlLWluZm8uY3BwIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3Jl Zi1jb3VudGVkLXN0YXRlbWVudC5jcHAgXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2Nv cmUvcm93LmNwcCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9yb3dpZC5jcHAg XAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvc2Vzc2lvbi5jcHAgXAotKyAgICAg ICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvc29jaS1zaW1wbGUuY3BwIFwKLSsgICAgICAgICQo dG9wX3NyY2Rpcikvc29jaS9jb3JlL3N0YXRlbWVudC5jcHAgXAotKyAgICAgICAgJCh0b3Bfc3Jj ZGlyKS9zb2NpL2NvcmUvdHJhbnNhY3Rpb24uY3BwIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikv c29jaS9jb3JlL3VzZS10eXBlLmNwcCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29y ZS92YWx1ZXMuY3BwCi1kaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svc29jaS9jb3JlL3Rlc3Qv Y29tbW9uLXRlc3RzLmggc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvY29yZS90ZXN0L2NvbW1vbi10 ZXN0cy5oCi0tLS0gc29jaS0zLjAuMF80LXBhY2svc29jaS9jb3JlL3Rlc3QvY29tbW9uLXRlc3Rz LmgJMjAwOS0wNS0yMyAxMzozNzowOS4wMDAwMDAwMDAgKzAyMDAKLSsrKyBzb2NpLTMuMC4wX3Ry ZXAzMDAvc29jaS9jb3JlL3Rlc3QvY29tbW9uLXRlc3RzLmgJMjAwOS0wNS0yMiAyMjo1NDoxNy4w MDAwMDAwMDAgKzAyMDAKLUBAIC04LDE2ICs4LDMwIEBACi0gI2lmbmRlZiBTT0NJX0NPTU1PTl9U RVNUU19IX0lOQ0xVREVECi0gI2RlZmluZSBTT0NJX0NPTU1PTl9URVNUU19IX0lOQ0xVREVECi0g Ci0tI2luY2x1ZGUgInNvY2kuaCIKLS0jaW5jbHVkZSAic29jaS1jb25maWcuaCIKLSsvLwotKyNp ZiBkZWZpbmVkKFNPQ0lfSEVBREVSU19CVVJJRUQpCi0rIyAgICAgICBpbmNsdWRlIDxzb2NpL2Nv cmUvc29jaS5oPgotKyMgICAgICAgaW5jbHVkZSA8c29jaS9jb3JlL3NvY2ktY29uZmlnLmg+Ci0r IyAgICAgICBpbmNsdWRlIDxzb2NpL2NvcmUvYm9vc3Qtb3B0aW9uYWwuaD4KLSsjICAgICAgIGlu Y2x1ZGUgPHNvY2kvY29yZS9ib29zdC10dXBsZS5oPgotKyMgICAgICAgaW5jbHVkZSA8c29jaS9j b3JlL2Jvb3N0LWdyZWdvcmlhbi1kYXRlLmg+Ci0rI2Vsc2UKLSsjCWluY2x1ZGUgPHNvY2kuaD4K LSsjICAgICAgIGluY2x1ZGUgPHNvY2ktY29uZmlnLmg+Ci0rIyAgICAgICBpbmNsdWRlIDxib29z dC1vcHRpb25hbC5oPgotKyMgICAgICAgaW5jbHVkZSA8Ym9vc3QtdHVwbGUuaD4KLSsjICAgICAg IGluY2x1ZGUgPGJvb3N0LWdyZWdvcmlhbi1kYXRlLmg+Ci0rI2VuZGlmCi0rLy8KLSAKLSAvLyBl eHBsaWNpdGx5IHB1bGwgY29udmVyc2lvbnMgZm9yIEJvb3N0J3Mgb3B0aW9uYWwsIHR1cGxlIGFu ZCBmdXNpb246Ci0gI2luY2x1ZGUgPGJvb3N0L3ZlcnNpb24uaHBwPgotLSNpbmNsdWRlIDxib29z dC1vcHRpb25hbC5oPgotLSNpbmNsdWRlIDxib29zdC10dXBsZS5oPgotLSNpbmNsdWRlIDxib29z dC1ncmVnb3JpYW4tZGF0ZS5oPgotICNpZiBkZWZpbmVkKEJPT1NUX1ZFUlNJT04pICYmIEJPT1NU X1ZFUlNJT04gPj0gMTAzNTAwCi0rI2lmIGRlZmluZWQoU09DSV9IRUFERVJTX0JVUklFRCkKLSsj aW5jbHVkZSA8c29jaS9jb3JlL2Jvb3N0LWZ1c2lvbi5oPgotKyNlbHNlCi0gI2luY2x1ZGUgPGJv b3N0LWZ1c2lvbi5oPgotKyNlbmRpZgotICNlbmRpZiAvLyBCT09TVF9WRVJTSU9OCi0gCi0gI2lu Y2x1ZGUgPGFsZ29yaXRobT4KLWRpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2NvcmUv dGVzdC9NYWtlZmlsZS5hbSBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9jb3JlL3Rlc3QvTWFrZWZp bGUuYW0KLS0tLSBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2NvcmUvdGVzdC9NYWtlZmlsZS5hbQkx OTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAotKysrIHNvY2ktMy4wLjBfdHJlcDMw MC9zb2NpL2NvcmUvdGVzdC9NYWtlZmlsZS5hbQkyMDA5LTA1LTIyIDIyOjU0OjE3LjAwMDAwMDAw MCArMDIwMAotQEAgLTAsMCArMSwyNiBAQAotKyMjIGNvcmUgc3ViLWRpcmVjdG9yeQotK2luY2x1 ZGUgJCh0b3Bfc3JjZGlyKS9NYWtlZmlsZS5jb21tb24KLStpbmNsdWRlICQoc3JjZGlyKS9zb3Vy Y2VzLm1rCi0rCi0rTUFJTlRBSU5FUkNMRUFORklMRVMgPSBNYWtlZmlsZS5pbgotKwotK0VYVFJB X0RJU1RfRk9SX1NPQ0lfQ09NUEFUSUJJTElUWSA9Ci0rCi0rRVhUUkFfRElTVCA9ICQoRVhUUkFf RElTVF9GT1JfU09DSV9DT01QQVRJQklMSVRZKQotKwotK25vaW5zdF9MVExJQlJBUklFUz0gbGli c29jaV9jb3JlX3Rlc3QubGEKLSsKLStsaWJzb2NpX2NvcmVfdGVzdF9sYV9TT1VSQ0VTPSAkKGNv cmVfdGVzdF9oX3NvdXJjZXMpCi0rbGlic29jaV9jb3JlX3Rlc3RfbGFfQ1hYRkxBR1MgPQotK2xp YnNvY2lfY29yZV90ZXN0X2xhX0xJQkFERCA9Ci0rI2xpYnNvY2lfY29yZV90ZXN0X2xhX0xERkxB R1MgPSAtdmVyc2lvbi1pbmZvICQoR0VORVJJQ19MSUJSQVJZX1ZFUlNJT04pCi0rbGlic29jaV9j b3JlX3Rlc3RfbGFfTERGTEFHUyA9Ci0rCi0rcGtnaW5jbHVkZV9IRUFERVJTID0gJChjb3JlX3Rl c3RfaF9zb3VyY2VzKQotK2lmIFNPQ0lfSEVBREVSU19CVVJJRUQKLStzb2NpX2luY2x1ZGVfZGly ID0gJChpbmNsdWRlZGlyKS9zb2NpL2NvcmUvdGVzdAotK2Vsc2UKLStzb2NpX2luY2x1ZGVfZGly ID0gJChpbmNsdWRlZGlyKQotK2VuZGlmCi0rcGtnaW5jbHVkZWRpciA9ICQoc29jaV9pbmNsdWRl X2RpcikKLSsKLWRpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2NvcmUvdGVzdC9NYWtl ZmlsZS5pbiBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9jb3JlL3Rlc3QvTWFrZWZpbGUuaW4KLS0t LSBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2NvcmUvdGVzdC9NYWtlZmlsZS5pbgkxOTcwLTAxLTAx IDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAotKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2Nv cmUvdGVzdC9NYWtlZmlsZS5pbgkyMDA5LTA1LTIzIDEwOjAyOjAzLjAwMDAwMDAwMCArMDIwMAot QEAgLTAsMCArMSw1MTYgQEAKLSsjIE1ha2VmaWxlLmluIGdlbmVyYXRlZCBieSBhdXRvbWFrZSAx LjEwLjIgZnJvbSBNYWtlZmlsZS5hbS4KLSsjIEBjb25maWd1cmVfaW5wdXRACi0rCi0rIyBDb3B5 cmlnaHQgKEMpIDE5OTQsIDE5OTUsIDE5OTYsIDE5OTcsIDE5OTgsIDE5OTksIDIwMDAsIDIwMDEs IDIwMDIsCi0rIyAyMDAzLCAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4ICBGcmVlIFNvZnR3 YXJlIEZvdW5kYXRpb24sIEluYy4KLSsjIFRoaXMgTWFrZWZpbGUuaW4gaXMgZnJlZSBzb2Z0d2Fy ZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbgotKyMgZ2l2ZXMgdW5saW1pdGVkIHBlcm1p c3Npb24gdG8gY29weSBhbmQvb3IgZGlzdHJpYnV0ZSBpdCwKLSsjIHdpdGggb3Igd2l0aG91dCBt b2RpZmljYXRpb25zLCBhcyBsb25nIGFzIHRoaXMgbm90aWNlIGlzIHByZXNlcnZlZC4KLSsKLSsj IFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUg dXNlZnVsLAotKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZLCB0byB0aGUgZXh0ZW50IHBlcm1p dHRlZCBieSBsYXc7IHdpdGhvdXQKLSsjIGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVS Q0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEKLSsjIFBBUlRJQ1VMQVIgUFVSUE9TRS4KLSsK LStAU0VUX01BS0VACi0rCi0rCi0rVlBBVEggPSBAc3JjZGlyQAotK3BrZ2RhdGFkaXIgPSAkKGRh dGFkaXIpL0BQQUNLQUdFQAotK3BrZ2xpYmRpciA9ICQobGliZGlyKS9AUEFDS0FHRUAKLSthbV9f Y2QgPSBDRFBBVEg9IiQke1pTSF9WRVJTSU9OKy59JChQQVRIX1NFUEFSQVRPUikiICYmIGNkCi0r aW5zdGFsbF9zaF9EQVRBID0gJChpbnN0YWxsX3NoKSAtYyAtbSA2NDQKLStpbnN0YWxsX3NoX1BS T0dSQU0gPSAkKGluc3RhbGxfc2gpIC1jCi0raW5zdGFsbF9zaF9TQ1JJUFQgPSAkKGluc3RhbGxf c2gpIC1jCi0rSU5TVEFMTF9IRUFERVIgPSAkKElOU1RBTExfREFUQSkKLSt0cmFuc2Zvcm0gPSAk KHByb2dyYW1fdHJhbnNmb3JtX25hbWUpCi0rTk9STUFMX0lOU1RBTEwgPSA6Ci0rUFJFX0lOU1RB TEwgPSA6Ci0rUE9TVF9JTlNUQUxMID0gOgotK05PUk1BTF9VTklOU1RBTEwgPSA6Ci0rUFJFX1VO SU5TVEFMTCA9IDoKLStQT1NUX1VOSU5TVEFMTCA9IDoKLStidWlsZF90cmlwbGV0ID0gQGJ1aWxk QAotK2hvc3RfdHJpcGxldCA9IEBob3N0QAotK0RJU1RfQ09NTU9OID0gJChwa2dpbmNsdWRlX0hF QURFUlMpICQoc3JjZGlyKS9NYWtlZmlsZS5hbSBcCi0rCSQoc3JjZGlyKS9NYWtlZmlsZS5pbiAk KHNyY2Rpcikvc291cmNlcy5tayBcCi0rCSQodG9wX3NyY2RpcikvTWFrZWZpbGUuY29tbW9uCi0r c3ViZGlyID0gc29jaS9jb3JlL3Rlc3QKLStBQ0xPQ0FMX000ID0gJCh0b3Bfc3JjZGlyKS9hY2xv Y2FsLm00Ci0rYW1fX2FjbG9jYWxfbTRfZGVwcyA9ICQodG9wX3NyY2RpcikvY29uZmlnL2F4X2Jv b3N0Lm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfbXlzcWwubTQgXAotKwkkKHRvcF9z cmNkaXIpL2NvbmZpZy9heF9vcmFjbGVfb2NpLm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcv YXhfcG9zdGdyZXNxbC5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmlnL2NwcHVuaXQubTQgXAot KwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9saWJ0b29sLm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25m aWcvbHRvcHRpb25zLm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvbHRzdWdhci5tNCBcCi0r CSQodG9wX3NyY2RpcikvY29uZmlnL2x0dmVyc2lvbi5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29u ZmlnL2x0fm9ic29sZXRlLm00ICQodG9wX3NyY2RpcikvY29uZmlndXJlLmFjCi0rYW1fX2NvbmZp Z3VyZV9kZXBzID0gJChhbV9fYWNsb2NhbF9tNF9kZXBzKSAkKENPTkZJR1VSRV9ERVBFTkRFTkNJ RVMpIFwKLSsJJChBQ0xPQ0FMX000KQotK21raW5zdGFsbGRpcnMgPSAkKGluc3RhbGxfc2gpIC1k Ci0rQ09ORklHX0hFQURFUiA9ICQodG9wX2J1aWxkZGlyKS9zb2NpL2NvbmZpZy5oCi0rQ09ORklH X0NMRUFOX0ZJTEVTID0KLStMVExJQlJBUklFUyA9ICQobm9pbnN0X0xUTElCUkFSSUVTKQotK2xp YnNvY2lfY29yZV90ZXN0X2xhX0RFUEVOREVOQ0lFUyA9Ci0rYW1fX29iamVjdHNfMSA9Ci0rYW1f bGlic29jaV9jb3JlX3Rlc3RfbGFfT0JKRUNUUyA9ICQoYW1fX29iamVjdHNfMSkKLStsaWJzb2Np X2NvcmVfdGVzdF9sYV9PQkpFQ1RTID0gJChhbV9saWJzb2NpX2NvcmVfdGVzdF9sYV9PQkpFQ1RT KQotK2xpYnNvY2lfY29yZV90ZXN0X2xhX0xJTksgPSAkKExJQlRPT0wpIC0tdGFnPUNDICQoQU1f TElCVE9PTEZMQUdTKSBcCi0rCSQoTElCVE9PTEZMQUdTKSAtLW1vZGU9bGluayAkKENDTEQpICQo QU1fQ0ZMQUdTKSAkKENGTEFHUykgXAotKwkkKGxpYnNvY2lfY29yZV90ZXN0X2xhX0xERkxBR1Mp ICQoTERGTEFHUykgLW8gJEAKLStERUZBVUxUX0lOQ0xVREVTID0gLUkuQGFtX19pc3JjQCAtSSQo dG9wX2J1aWxkZGlyKS9zb2NpCi0rQ09NUElMRSA9ICQoQ0MpICQoREVGUykgJChERUZBVUxUX0lO Q0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSBcCi0rCSQoQ1BQRkxBR1MpICQoQU1f Q0ZMQUdTKSAkKENGTEFHUykKLStMVENPTVBJTEUgPSAkKExJQlRPT0wpIC0tdGFnPUNDICQoQU1f TElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgXAotKwktLW1vZGU9Y29tcGlsZSAkKENDKSAk KERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgXAotKwkkKEFNX0NQUEZMQUdT KSAkKENQUEZMQUdTKSAkKEFNX0NGTEFHUykgJChDRkxBR1MpCi0rQ0NMRCA9ICQoQ0MpCi0rTElO SyA9ICQoTElCVE9PTCkgLS10YWc9Q0MgJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdT KSBcCi0rCS0tbW9kZT1saW5rICQoQ0NMRCkgJChBTV9DRkxBR1MpICQoQ0ZMQUdTKSAkKEFNX0xE RkxBR1MpIFwKLSsJJChMREZMQUdTKSAtbyAkQAotK1NPVVJDRVMgPSAkKGxpYnNvY2lfY29yZV90 ZXN0X2xhX1NPVVJDRVMpCi0rRElTVF9TT1VSQ0VTID0gJChsaWJzb2NpX2NvcmVfdGVzdF9sYV9T T1VSQ0VTKQotK2FtX192cGF0aF9hZGpfc2V0dXAgPSBzcmNkaXJzdHJpcD1gZWNobyAiJChzcmNk aXIpIiB8IHNlZCAnc3wufC58ZydgOwotK2FtX192cGF0aF9hZGogPSBjYXNlICQkcCBpbiBcCi0r ICAgICQoc3JjZGlyKS8qKSBmPWBlY2hvICIkJHAiIHwgc2VkICJzfF4kJHNyY2RpcnN0cmlwL3x8 ImA7OyBcCi0rICAgICopIGY9JCRwOzsgXAotKyAgZXNhYzsKLSthbV9fc3RyaXBfZGlyID0gYGVj aG8gJCRwIHwgc2VkIC1lICdzfF4uKi98fCdgOwotK2FtX19pbnN0YWxsZGlycyA9ICIkKERFU1RE SVIpJChwa2dpbmNsdWRlZGlyKSIKLStwa2dpbmNsdWRlSEVBREVSU19JTlNUQUxMID0gJChJTlNU QUxMX0hFQURFUikKLStIRUFERVJTID0gJChwa2dpbmNsdWRlX0hFQURFUlMpCi0rRVRBR1MgPSBl dGFncwotK0NUQUdTID0gY3RhZ3MKLStESVNURklMRVMgPSAkKERJU1RfQ09NTU9OKSAkKERJU1Rf U09VUkNFUykgJChURVhJTkZPUykgJChFWFRSQV9ESVNUKQotK3BrZ2luY2x1ZGVkaXIgPSAkKHNv Y2lfaW5jbHVkZV9kaXIpCi0rQUNMT0NBTCA9IEBBQ0xPQ0FMQAotK0FNVEFSID0gQEFNVEFSQAot K0FSID0gQEFSQAotK0FVVE9DT05GID0gQEFVVE9DT05GQAotK0FVVE9IRUFERVIgPSBAQVVUT0hF QURFUkAKLStBVVRPTUFLRSA9IEBBVVRPTUFLRUAKLStBV0sgPSBAQVdLQAotK0JPT1NUX0NGTEFH UyA9IEBCT09TVF9DRkxBR1NACi0rQk9PU1RfREFURV9USU1FX0xJQiA9IEBCT09TVF9EQVRFX1RJ TUVfTElCQAotK0JPT1NUX0ZJTEVTWVNURU1fTElCID0gQEJPT1NUX0ZJTEVTWVNURU1fTElCQAot K0JPT1NUX0lPU1RSRUFNU19MSUIgPSBAQk9PU1RfSU9TVFJFQU1TX0xJQkAKLStCT09TVF9MSUJT ID0gQEJPT1NUX0xJQlNACi0rQk9PU1RfUFJPR1JBTV9PUFRJT05TX0xJQiA9IEBCT09TVF9QUk9H UkFNX09QVElPTlNfTElCQAotK0JPT1NUX1JFR0VYX0xJQiA9IEBCT09TVF9SRUdFWF9MSUJACi0r Qk9PU1RfU0VSSUFMSVpBVElPTl9MSUIgPSBAQk9PU1RfU0VSSUFMSVpBVElPTl9MSUJACi0rQk9P U1RfU0lHTkFMU19MSUIgPSBAQk9PU1RfU0lHTkFMU19MSUJACi0rQk9PU1RfVEhSRUFEX0xJQiA9 IEBCT09TVF9USFJFQURfTElCQAotK0JPT1NUX1VOSVRfVEVTVF9GUkFNRVdPUktfTElCID0gQEJP T1NUX1VOSVRfVEVTVF9GUkFNRVdPUktfTElCQAotK0JPT1NUX1ZFUlNJT04gPSBAQk9PU1RfVkVS U0lPTkAKLStCT09TVF9XU0VSSUFMSVpBVElPTl9MSUIgPSBAQk9PU1RfV1NFUklBTElaQVRJT05f TElCQAotK0NDID0gQENDQAotK0NDREVQTU9ERSA9IEBDQ0RFUE1PREVACi0rQ0ZMQUdTID0gQENG TEFHU0AKLStDUFAgPSBAQ1BQQAotK0NQUEZMQUdTID0gQENQUEZMQUdTQAotK0NQUFVOSVRfQ0ZM QUdTID0gQENQUFVOSVRfQ0ZMQUdTQAotK0NQUFVOSVRfQ09ORklHID0gQENQUFVOSVRfQ09ORklH QAotK0NQUFVOSVRfTElCUyA9IEBDUFBVTklUX0xJQlNACi0rQ1BQVU5JVF9WRVJTSU9OID0gQENQ UFVOSVRfVkVSU0lPTkAKLStDWFggPSBAQ1hYQAotK0NYWENQUCA9IEBDWFhDUFBACi0rQ1hYREVQ TU9ERSA9IEBDWFhERVBNT0RFQAotK0NYWEZMQUdTID0gQENYWEZMQUdTQAotK0NZR1BBVEhfVyA9 IEBDWUdQQVRIX1dACi0rREVGUyA9IEBERUZTQAotK0RFUERJUiA9IEBERVBESVJACi0rRFNZTVVU SUwgPSBARFNZTVVUSUxACi0rRFVNUEJJTiA9IEBEVU1QQklOQAotK0VDSE9fQyA9IEBFQ0hPX0NA Ci0rRUNIT19OID0gQEVDSE9fTkAKLStFQ0hPX1QgPSBARUNIT19UQAotK0VHUkVQID0gQEVHUkVQ QAotK0VYRUVYVCA9IEBFWEVFWFRACi0rRkdSRVAgPSBARkdSRVBACi0rR0VORVJJQ19MSUJSQVJZ X1ZFUlNJT04gPSBAR0VORVJJQ19MSUJSQVJZX1ZFUlNJT05ACi0rR1JFUCA9IEBHUkVQQAotK0lO U1RBTEwgPSBASU5TVEFMTEAKLStJTlNUQUxMX0RBVEEgPSBASU5TVEFMTF9EQVRBQAotK0lOU1RB TExfUFJPR1JBTSA9IEBJTlNUQUxMX1BST0dSQU1ACi0rSU5TVEFMTF9TQ1JJUFQgPSBASU5TVEFM TF9TQ1JJUFRACi0rSU5TVEFMTF9TVFJJUF9QUk9HUkFNID0gQElOU1RBTExfU1RSSVBfUFJPR1JB TUAKLStMRCA9IEBMREAKLStMREZMQUdTID0gQExERkxBR1NACi0rTElCT0JKUyA9IEBMSUJPQkpT QAotK0xJQlMgPSBATElCU0AKLStMSUJUT09MID0gQExJQlRPT0xACi0rTElQTyA9IEBMSVBPQAot K0xOX1MgPSBATE5fU0AKLStMVExJQk9CSlMgPSBATFRMSUJPQkpTQAotK01BS0VJTkZPID0gQE1B S0VJTkZPQAotK01LRElSX1AgPSBATUtESVJfUEAKLStNWVNRTF9DRkxBR1MgPSBATVlTUUxfQ0ZM QUdTQAotK01ZU1FMX0NPTkZJRyA9IEBNWVNRTF9DT05GSUdACi0rTVlTUUxfRElSUyA9IEBNWVNR TF9ESVJTQAotK01ZU1FMX0xERkxBR1MgPSBATVlTUUxfTERGTEFHU0AKLStNWVNRTF9WRVJTSU9O ID0gQE1ZU1FMX1ZFUlNJT05ACi0rTk0gPSBATk1ACi0rTk1FRElUID0gQE5NRURJVEAKLStPQkpE VU1QID0gQE9CSkRVTVBACi0rT0JKRVhUID0gQE9CSkVYVEAKLStPUkFDTEVfRElSUyA9IEBPUkFD TEVfRElSU0AKLStPUkFDTEVfT0NJX0NGTEFHUyA9IEBPUkFDTEVfT0NJX0NGTEFHU0AKLStPUkFD TEVfT0NJX0xERkxBR1MgPSBAT1JBQ0xFX09DSV9MREZMQUdTQAotK09SQUNMRV9PQ0lfVkVSU0lP TiA9IEBPUkFDTEVfT0NJX1ZFUlNJT05ACi0rT1RPT0wgPSBAT1RPT0xACi0rT1RPT0w2NCA9IEBP VE9PTDY0QAotK1BBQ0tBR0UgPSBAUEFDS0FHRUAKLStQQUNLQUdFX0JVR1JFUE9SVCA9IEBQQUNL QUdFX0JVR1JFUE9SVEAKLStQQUNLQUdFX05BTUUgPSBAUEFDS0FHRV9OQU1FQAotK1BBQ0tBR0Vf U1RSSU5HID0gQFBBQ0tBR0VfU1RSSU5HQAotK1BBQ0tBR0VfVEFSTkFNRSA9IEBQQUNLQUdFX1RB Uk5BTUVACi0rUEFDS0FHRV9WRVJTSU9OID0gQFBBQ0tBR0VfVkVSU0lPTkAKLStQQVRIX1NFUEFS QVRPUiA9IEBQQVRIX1NFUEFSQVRPUkAKLStQRVJMID0gQFBFUkxACi0rUEdfQ09ORklHID0gQFBH X0NPTkZJR0AKLStQT1NUR1JFU1FMX0NGTEFHUyA9IEBQT1NUR1JFU1FMX0NGTEFHU0AKLStQT1NU R1JFU1FMX0RJUlMgPSBAUE9TVEdSRVNRTF9ESVJTQAotK1BPU1RHUkVTUUxfTERGTEFHUyA9IEBQ T1NUR1JFU1FMX0xERkxBR1NACi0rUE9TVEdSRVNRTF9WRVJTSU9OID0gQFBPU1RHUkVTUUxfVkVS U0lPTkAKLStSQU5MSUIgPSBAUkFOTElCQAotK1JQTV9SRUxFQVNFID0gQFJQTV9SRUxFQVNFQAot K1NFRCA9IEBTRURACi0rU0VUX01BS0UgPSBAU0VUX01BS0VACi0rU0hFTEwgPSBAU0hFTExACi0r U09DSV9IRUFERVJTX0JVUklFRCA9IEBTT0NJX0hFQURFUlNfQlVSSUVEQAotK1NPQ0lfTVlTUUxf SEVBREVSU19CVVJJRUQgPSBAU09DSV9NWVNRTF9IRUFERVJTX0JVUklFREAKLStTT0NJX1BPU1RH UkVTUUxfSEVBREVSU19CVVJJRUQgPSBAU09DSV9QT1NUR1JFU1FMX0hFQURFUlNfQlVSSUVEQAot K1NUUklQID0gQFNUUklQQAotK1VQTE9BRF9DT01NQU5EID0gQFVQTE9BRF9DT01NQU5EQAotK1ZF UlNJT04gPSBAVkVSU0lPTkAKLSthYnNfYnVpbGRkaXIgPSBAYWJzX2J1aWxkZGlyQAotK2Fic19z cmNkaXIgPSBAYWJzX3NyY2RpckAKLSthYnNfdG9wX2J1aWxkZGlyID0gQGFic190b3BfYnVpbGRk aXJACi0rYWJzX3RvcF9zcmNkaXIgPSBAYWJzX3RvcF9zcmNkaXJACi0rYWNfY3RfQ0MgPSBAYWNf Y3RfQ0NACi0rYWNfY3RfQ1hYID0gQGFjX2N0X0NYWEAKLSthY19jdF9EVU1QQklOID0gQGFjX2N0 X0RVTVBCSU5ACi0rYW1fX2luY2x1ZGUgPSBAYW1fX2luY2x1ZGVACi0rYW1fX2xlYWRpbmdfZG90 ID0gQGFtX19sZWFkaW5nX2RvdEAKLSthbV9fcXVvdGUgPSBAYW1fX3F1b3RlQAotK2FtX190YXIg PSBAYW1fX3RhckAKLSthbV9fdW50YXIgPSBAYW1fX3VudGFyQAotK2JpbmRpciA9IEBiaW5kaXJA Ci0rYnVpbGQgPSBAYnVpbGRACi0rYnVpbGRfYWxpYXMgPSBAYnVpbGRfYWxpYXNACi0rYnVpbGRf Y3B1ID0gQGJ1aWxkX2NwdUAKLStidWlsZF9vcyA9IEBidWlsZF9vc0AKLStidWlsZF92ZW5kb3Ig PSBAYnVpbGRfdmVuZG9yQAotK2J1aWxkZGlyID0gQGJ1aWxkZGlyQAotK2RhdGFkaXIgPSBAZGF0 YWRpckAKLStkYXRhcm9vdGRpciA9IEBkYXRhcm9vdGRpckAKLStkaWZmX29rID0gQGRpZmZfb2tA Ci0rZG9jZGlyID0gQGRvY2RpckAKLStkb3h5Z2VuX29rID0gQGRveHlnZW5fb2tACi0rZHZpZGly ID0gQGR2aWRpckAKLStkdmlwc19vayA9IEBkdmlwc19va0AKLStleGVjX3ByZWZpeCA9IEBleGVj X3ByZWZpeEAKLStnc19vayA9IEBnc19va0AKLStob3N0ID0gQGhvc3RACi0raG9zdF9hbGlhcyA9 IEBob3N0X2FsaWFzQAotK2hvc3RfY3B1ID0gQGhvc3RfY3B1QAotK2hvc3Rfb3MgPSBAaG9zdF9v c0AKLStob3N0X3ZlbmRvciA9IEBob3N0X3ZlbmRvckAKLStodG1sZGlyID0gQGh0bWxkaXJACi0r aW5jbHVkZWRpciA9IEBpbmNsdWRlZGlyQAotK2luZm9kaXIgPSBAaW5mb2RpckAKLStpbnN0YWxs X3NoID0gQGluc3RhbGxfc2hACi0rbGF0ZXhfb2sgPSBAbGF0ZXhfb2tACi0rbGliZGlyID0gQGxp YmRpckAKLStsaWJleGVjZGlyID0gQGxpYmV4ZWNkaXJACi0rbG9jYWxlZGlyID0gQGxvY2FsZWRp ckAKLStsb2NhbHN0YXRlZGlyID0gQGxvY2Fsc3RhdGVkaXJACi0rbHRfRUNITyA9IEBsdF9FQ0hP QAotK21hbmRpciA9IEBtYW5kaXJACi0rbWtkaXJfcCA9IEBta2Rpcl9wQAotK29sZGluY2x1ZGVk aXIgPSBAb2xkaW5jbHVkZWRpckAKLStwZGZkaXIgPSBAcGRmZGlyQAotK3ByZWZpeCA9IEBwcmVm aXhACi0rcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZSA9IEBwcm9ncmFtX3RyYW5zZm9ybV9uYW1lQAot K3BzZGlyID0gQHBzZGlyQAotK3NiaW5kaXIgPSBAc2JpbmRpckAKLStzZWRfb2sgPSBAc2VkX29r QAotK3NoYXJlZHN0YXRlZGlyID0gQHNoYXJlZHN0YXRlZGlyQAotK3NyY2RpciA9IEBzcmNkaXJA Ci0rc3lzY29uZmRpciA9IEBzeXNjb25mZGlyQAotK3RhcmdldF9hbGlhcyA9IEB0YXJnZXRfYWxp YXNACi0rdG9wX2J1aWxkX3ByZWZpeCA9IEB0b3BfYnVpbGRfcHJlZml4QAotK3RvcF9idWlsZGRp ciA9IEB0b3BfYnVpbGRkaXJACi0rdG9wX3NyY2RpciA9IEB0b3Bfc3JjZGlyQAotK0FNX0NQUEZM QUdTID0gLUkkKHRvcF9idWlsZGRpcikgLUkkKHRvcF9zcmNkaXIpCi0rY29yZV90ZXN0X2hfc291 cmNlcyA9ICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3Rlc3QvY29tbW9uLXRlc3RzLmgKLStjb3Jl X3Rlc3RfY2Nfc291cmNlcyA9IAotK01BSU5UQUlORVJDTEVBTkZJTEVTID0gTWFrZWZpbGUuaW4K LStFWFRSQV9ESVNUX0ZPUl9TT0NJX0NPTVBBVElCSUxJVFkgPSAKLStFWFRSQV9ESVNUID0gJChF WFRSQV9ESVNUX0ZPUl9TT0NJX0NPTVBBVElCSUxJVFkpCi0rbm9pbnN0X0xUTElCUkFSSUVTID0g bGlic29jaV9jb3JlX3Rlc3QubGEKLStsaWJzb2NpX2NvcmVfdGVzdF9sYV9TT1VSQ0VTID0gJChj b3JlX3Rlc3RfaF9zb3VyY2VzKQotK2xpYnNvY2lfY29yZV90ZXN0X2xhX0NYWEZMQUdTID0gCi0r bGlic29jaV9jb3JlX3Rlc3RfbGFfTElCQUREID0gCi0rI2xpYnNvY2lfY29yZV90ZXN0X2xhX0xE RkxBR1MgPSAtdmVyc2lvbi1pbmZvICQoR0VORVJJQ19MSUJSQVJZX1ZFUlNJT04pCi0rbGlic29j aV9jb3JlX3Rlc3RfbGFfTERGTEFHUyA9IAotK3BrZ2luY2x1ZGVfSEVBREVSUyA9ICQoY29yZV90 ZXN0X2hfc291cmNlcykKLStAU09DSV9IRUFERVJTX0JVUklFRF9GQUxTRUBzb2NpX2luY2x1ZGVf ZGlyID0gJChpbmNsdWRlZGlyKQotK0BTT0NJX0hFQURFUlNfQlVSSUVEX1RSVUVAc29jaV9pbmNs dWRlX2RpciA9ICQoaW5jbHVkZWRpcikvc29jaS9jb3JlL3Rlc3QKLSthbGw6IGFsbC1hbQotKwot Ky5TVUZGSVhFUzoKLSskKHNyY2RpcikvTWFrZWZpbGUuaW46ICAkKHNyY2RpcikvTWFrZWZpbGUu YW0gJCh0b3Bfc3JjZGlyKS9NYWtlZmlsZS5jb21tb24gJChzcmNkaXIpL3NvdXJjZXMubWsgJChh bV9fY29uZmlndXJlX2RlcHMpCi0rCUBmb3IgZGVwIGluICQ/OyBkbyBcCi0rCSAgY2FzZSAnJChh bV9fY29uZmlndXJlX2RlcHMpJyBpbiBcCi0rCSAgICAqJCRkZXAqKSBcCi0rCSAgICAgICggY2Qg JCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoICkg XAotKwkgICAgICAgICYmIHsgaWYgdGVzdCAtZiAkQDsgdGhlbiBleGl0IDA7IGVsc2UgYnJlYWs7 IGZpOyB9OyBcCi0rCSAgICAgIGV4aXQgMTs7IFwKLSsJICBlc2FjOyBcCi0rCWRvbmU7IFwKLSsJ ZWNobyAnIGNkICQodG9wX3NyY2RpcikgJiYgJChBVVRPTUFLRSkgLS1nbnUgIHNvY2kvY29yZS90 ZXN0L01ha2VmaWxlJzsgXAotKwljZCAkKHRvcF9zcmNkaXIpICYmIFwKLSsJICAkKEFVVE9NQUtF KSAtLWdudSAgc29jaS9jb3JlL3Rlc3QvTWFrZWZpbGUKLSsuUFJFQ0lPVVM6IE1ha2VmaWxlCi0r TWFrZWZpbGU6ICQoc3JjZGlyKS9NYWtlZmlsZS5pbiAkKHRvcF9idWlsZGRpcikvY29uZmlnLnN0 YXR1cwotKwlAY2FzZSAnJD8nIGluIFwKLSsJICAqY29uZmlnLnN0YXR1cyopIFwKLSsJICAgIGNk ICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaDs7 IFwKLSsJICAqKSBcCi0rCSAgICBlY2hvICcgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoU0hFTEwp IC4vY29uZmlnLnN0YXR1cyAkKHN1YmRpcikvJEAgJChhbV9fZGVwZmlsZXNfbWF5YmUpJzsgXAot KwkgICAgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoU0hFTEwpIC4vY29uZmlnLnN0YXR1cyAkKHN1 YmRpcikvJEAgJChhbV9fZGVwZmlsZXNfbWF5YmUpOzsgXAotKwllc2FjOwotKwotKyQodG9wX2J1 aWxkZGlyKS9jb25maWcuc3RhdHVzOiAkKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZSAkKENPTkZJR19T VEFUVVNfREVQRU5ERU5DSUVTKQotKwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFN X01BS0VGTEFHUykgYW0tLXJlZnJlc2gKLSsKLSskKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZTogICQo YW1fX2NvbmZpZ3VyZV9kZXBzKQotKwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFN X01BS0VGTEFHUykgYW0tLXJlZnJlc2gKLSskKEFDTE9DQUxfTTQpOiAgJChhbV9fYWNsb2NhbF9t NF9kZXBzKQotKwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykg YW0tLXJlZnJlc2gKLSsKLStjbGVhbi1ub2luc3RMVExJQlJBUklFUzoKLSsJLXRlc3QgLXogIiQo bm9pbnN0X0xUTElCUkFSSUVTKSIgfHwgcm0gLWYgJChub2luc3RfTFRMSUJSQVJJRVMpCi0rCUBs aXN0PSckKG5vaW5zdF9MVExJQlJBUklFUyknOyBmb3IgcCBpbiAkJGxpc3Q7IGRvIFwKLSsJICBk aXI9ImBlY2hvICQkcCB8IHNlZCAtZSAnc3wvW14vXSokJHx8J2AiOyBcCi0rCSAgdGVzdCAiJCRk aXIiICE9ICIkJHAiIHx8IGRpcj0uOyBcCi0rCSAgZWNobyAicm0gLWYgXCIkJHtkaXJ9L3NvX2xv Y2F0aW9uc1wiIjsgXAotKwkgIHJtIC1mICIkJHtkaXJ9L3NvX2xvY2F0aW9ucyI7IFwKLSsJZG9u ZQotK2xpYnNvY2lfY29yZV90ZXN0LmxhOiAkKGxpYnNvY2lfY29yZV90ZXN0X2xhX09CSkVDVFMp ICQobGlic29jaV9jb3JlX3Rlc3RfbGFfREVQRU5ERU5DSUVTKSAKLSsJJChsaWJzb2NpX2NvcmVf dGVzdF9sYV9MSU5LKSAgJChsaWJzb2NpX2NvcmVfdGVzdF9sYV9PQkpFQ1RTKSAkKGxpYnNvY2lf Y29yZV90ZXN0X2xhX0xJQkFERCkgJChMSUJTKQotKwotK21vc3RseWNsZWFuLWNvbXBpbGU6Ci0r CS1ybSAtZiAqLiQoT0JKRVhUKQotKwotK2Rpc3RjbGVhbi1jb21waWxlOgotKwktcm0gLWYgKi50 YWIuYwotKwotK21vc3RseWNsZWFuLWxpYnRvb2w6Ci0rCS1ybSAtZiAqLmxvCi0rCi0rY2xlYW4t bGlidG9vbDoKLSsJLXJtIC1yZiAubGlicyBfbGlicwotK2luc3RhbGwtcGtnaW5jbHVkZUhFQURF UlM6ICQocGtnaW5jbHVkZV9IRUFERVJTKQotKwlAJChOT1JNQUxfSU5TVEFMTCkKLSsJdGVzdCAt eiAiJChwa2dpbmNsdWRlZGlyKSIgfHwgJChNS0RJUl9QKSAiJChERVNURElSKSQocGtnaW5jbHVk ZWRpcikiCi0rCUBsaXN0PSckKHBrZ2luY2x1ZGVfSEVBREVSUyknOyBmb3IgcCBpbiAkJGxpc3Q7 IGRvIFwKLSsJICBpZiB0ZXN0IC1mICIkJHAiOyB0aGVuIGQ9OyBlbHNlIGQ9IiQoc3JjZGlyKS8i OyBmaTsgXAotKwkgIGY9JChhbV9fc3RyaXBfZGlyKSBcCi0rCSAgZWNobyAiICQocGtnaW5jbHVk ZUhFQURFUlNfSU5TVEFMTCkgJyQkZCQkcCcgJyQoREVTVERJUikkKHBrZ2luY2x1ZGVkaXIpLyQk ZiciOyBcCi0rCSAgJChwa2dpbmNsdWRlSEVBREVSU19JTlNUQUxMKSAiJCRkJCRwIiAiJChERVNU RElSKSQocGtnaW5jbHVkZWRpcikvJCRmIjsgXAotKwlkb25lCi0rCi0rdW5pbnN0YWxsLXBrZ2lu Y2x1ZGVIRUFERVJTOgotKwlAJChOT1JNQUxfVU5JTlNUQUxMKQotKwlAbGlzdD0nJChwa2dpbmNs dWRlX0hFQURFUlMpJzsgZm9yIHAgaW4gJCRsaXN0OyBkbyBcCi0rCSAgZj0kKGFtX19zdHJpcF9k aXIpIFwKLSsJICBlY2hvICIgcm0gLWYgJyQoREVTVERJUikkKHBrZ2luY2x1ZGVkaXIpLyQkZici OyBcCi0rCSAgcm0gLWYgIiQoREVTVERJUikkKHBrZ2luY2x1ZGVkaXIpLyQkZiI7IFwKLSsJZG9u ZQotKwotK0lEOiAkKEhFQURFUlMpICQoU09VUkNFUykgJChMSVNQKSAkKFRBR1NfRklMRVMpCi0r CWxpc3Q9JyQoU09VUkNFUykgJChIRUFERVJTKSAkKExJU1ApICQoVEFHU19GSUxFUyknOyBcCi0r CXVuaXF1ZT1gZm9yIGkgaW4gJCRsaXN0OyBkbyBcCi0rCSAgICBpZiB0ZXN0IC1mICIkJGkiOyB0 aGVuIGVjaG8gJCRpOyBlbHNlIGVjaG8gJChzcmNkaXIpLyQkaTsgZmk7IFwKLSsJICBkb25lIHwg XAotKwkgICQoQVdLKSAneyBmaWxlc1skJDBdID0gMTsgbm9uZW1wdHkgPSAxOyB9IFwKLSsJICAg ICAgRU5EIHsgaWYgKG5vbmVtcHR5KSB7IGZvciAoaSBpbiBmaWxlcykgcHJpbnQgaTsgfTsgfSdg OyBcCi0rCW1raWQgLWZJRCAkJHVuaXF1ZQotK3RhZ3M6IFRBR1MKLSsKLStUQUdTOiAgJChIRUFE RVJTKSAkKFNPVVJDRVMpICAkKFRBR1NfREVQRU5ERU5DSUVTKSBcCi0rCQkkKFRBR1NfRklMRVMp ICQoTElTUCkKLSsJdGFncz07IFwKLSsJaGVyZT1gcHdkYDsgXAotKwlsaXN0PSckKFNPVVJDRVMp ICQoSEVBREVSUykgICQoTElTUCkgJChUQUdTX0ZJTEVTKSc7IFwKLSsJdW5pcXVlPWBmb3IgaSBp biAkJGxpc3Q7IGRvIFwKLSsJICAgIGlmIHRlc3QgLWYgIiQkaSI7IHRoZW4gZWNobyAkJGk7IGVs c2UgZWNobyAkKHNyY2RpcikvJCRpOyBmaTsgXAotKwkgIGRvbmUgfCBcCi0rCSAgJChBV0spICd7 IGZpbGVzWyQkMF0gPSAxOyBub25lbXB0eSA9IDE7IH0gXAotKwkgICAgICBFTkQgeyBpZiAobm9u ZW1wdHkpIHsgZm9yIChpIGluIGZpbGVzKSBwcmludCBpOyB9OyB9J2A7IFwKLSsJaWYgdGVzdCAt eiAiJChFVEFHU19BUkdTKSQkdGFncyQkdW5pcXVlIjsgdGhlbiA6OyBlbHNlIFwKLSsJICB0ZXN0 IC1uICIkJHVuaXF1ZSIgfHwgdW5pcXVlPSQkZW1wdHlfZml4OyBcCi0rCSAgJChFVEFHUykgJChF VEFHU0ZMQUdTKSAkKEFNX0VUQUdTRkxBR1MpICQoRVRBR1NfQVJHUykgXAotKwkgICAgJCR0YWdz ICQkdW5pcXVlOyBcCi0rCWZpCi0rY3RhZ3M6IENUQUdTCi0rQ1RBR1M6ICAkKEhFQURFUlMpICQo U09VUkNFUykgICQoVEFHU19ERVBFTkRFTkNJRVMpIFwKLSsJCSQoVEFHU19GSUxFUykgJChMSVNQ KQotKwl0YWdzPTsgXAotKwlsaXN0PSckKFNPVVJDRVMpICQoSEVBREVSUykgICQoTElTUCkgJChU QUdTX0ZJTEVTKSc7IFwKLSsJdW5pcXVlPWBmb3IgaSBpbiAkJGxpc3Q7IGRvIFwKLSsJICAgIGlm IHRlc3QgLWYgIiQkaSI7IHRoZW4gZWNobyAkJGk7IGVsc2UgZWNobyAkKHNyY2RpcikvJCRpOyBm aTsgXAotKwkgIGRvbmUgfCBcCi0rCSAgJChBV0spICd7IGZpbGVzWyQkMF0gPSAxOyBub25lbXB0 eSA9IDE7IH0gXAotKwkgICAgICBFTkQgeyBpZiAobm9uZW1wdHkpIHsgZm9yIChpIGluIGZpbGVz KSBwcmludCBpOyB9OyB9J2A7IFwKLSsJdGVzdCAteiAiJChDVEFHU19BUkdTKSQkdGFncyQkdW5p cXVlIiBcCi0rCSAgfHwgJChDVEFHUykgJChDVEFHU0ZMQUdTKSAkKEFNX0NUQUdTRkxBR1MpICQo Q1RBR1NfQVJHUykgXAotKwkgICAgICQkdGFncyAkJHVuaXF1ZQotKwotK0dUQUdTOgotKwloZXJl PWAkKGFtX19jZCkgJCh0b3BfYnVpbGRkaXIpICYmIHB3ZGAgXAotKwkgICYmIGNkICQodG9wX3Ny Y2RpcikgXAotKwkgICYmIGd0YWdzIC1pICQoR1RBR1NfQVJHUykgJCRoZXJlCi0rCi0rZGlzdGNs ZWFuLXRhZ3M6Ci0rCS1ybSAtZiBUQUdTIElEIEdUQUdTIEdSVEFHUyBHU1lNUyBHUEFUSCB0YWdz Ci0rCi0rZGlzdGRpcjogJChESVNURklMRVMpCi0rCUBzcmNkaXJzdHJpcD1gZWNobyAiJChzcmNk aXIpIiB8IHNlZCAncy9bXS5bXiQkXFwqXS9cXFxcJi9nJ2A7IFwKLSsJdG9wc3JjZGlyc3RyaXA9 YGVjaG8gIiQodG9wX3NyY2RpcikiIHwgc2VkICdzL1tdLlteJCRcXCpdL1xcXFwmL2cnYDsgXAot KwlsaXN0PSckKERJU1RGSUxFUyknOyBcCi0rCSAgZGlzdF9maWxlcz1gZm9yIGZpbGUgaW4gJCRs aXN0OyBkbyBlY2hvICQkZmlsZTsgZG9uZSB8IFwKLSsJICBzZWQgLWUgInN8XiQkc3JjZGlyc3Ry aXAvfHw7dCIgXAotKwkgICAgICAtZSAic3xeJCR0b3BzcmNkaXJzdHJpcC98JCh0b3BfYnVpbGRk aXIpL3w7dCJgOyBcCi0rCWNhc2UgJCRkaXN0X2ZpbGVzIGluIFwKLSsJICAqLyopICQoTUtESVJf UCkgYGVjaG8gIiQkZGlzdF9maWxlcyIgfCBcCi0rCQkJICAgc2VkICcvXC8vIWQ7c3xefCQoZGlz dGRpcikvfDtzLC9bXi9dKiQkLCwnIHwgXAotKwkJCSAgIHNvcnQgLXVgIDs7IFwKLSsJZXNhYzsg XAotKwlmb3IgZmlsZSBpbiAkJGRpc3RfZmlsZXM7IGRvIFwKLSsJICBpZiB0ZXN0IC1mICQkZmls ZSB8fCB0ZXN0IC1kICQkZmlsZTsgdGhlbiBkPS47IGVsc2UgZD0kKHNyY2Rpcik7IGZpOyBcCi0r CSAgaWYgdGVzdCAtZCAkJGQvJCRmaWxlOyB0aGVuIFwKLSsJICAgIGRpcj1gZWNobyAiLyQkZmls ZSIgfCBzZWQgLWUgJ3MsL1teL10qJCQsLCdgOyBcCi0rCSAgICBpZiB0ZXN0IC1kICQoc3JjZGly KS8kJGZpbGUgJiYgdGVzdCAkJGQgIT0gJChzcmNkaXIpOyB0aGVuIFwKLSsJICAgICAgY3AgLXBS ICQoc3JjZGlyKS8kJGZpbGUgJChkaXN0ZGlyKSQkZGlyIHx8IGV4aXQgMTsgXAotKwkgICAgZmk7 IFwKLSsJICAgIGNwIC1wUiAkJGQvJCRmaWxlICQoZGlzdGRpcikkJGRpciB8fCBleGl0IDE7IFwK LSsJICBlbHNlIFwKLSsJICAgIHRlc3QgLWYgJChkaXN0ZGlyKS8kJGZpbGUgXAotKwkgICAgfHwg Y3AgLXAgJCRkLyQkZmlsZSAkKGRpc3RkaXIpLyQkZmlsZSBcCi0rCSAgICB8fCBleGl0IDE7IFwK LSsJICBmaTsgXAotKwlkb25lCi0rY2hlY2stYW06IGFsbC1hbQotK2NoZWNrOiBjaGVjay1hbQot K2FsbC1hbTogTWFrZWZpbGUgJChMVExJQlJBUklFUykgJChIRUFERVJTKQotK2luc3RhbGxkaXJz OgotKwlmb3IgZGlyIGluICIkKERFU1RESVIpJChwa2dpbmNsdWRlZGlyKSI7IGRvIFwKLSsJICB0 ZXN0IC16ICIkJGRpciIgfHwgJChNS0RJUl9QKSAiJCRkaXIiOyBcCi0rCWRvbmUKLStpbnN0YWxs OiBpbnN0YWxsLWFtCi0raW5zdGFsbC1leGVjOiBpbnN0YWxsLWV4ZWMtYW0KLStpbnN0YWxsLWRh dGE6IGluc3RhbGwtZGF0YS1hbQotK3VuaW5zdGFsbDogdW5pbnN0YWxsLWFtCi0rCi0raW5zdGFs bC1hbTogYWxsLWFtCi0rCUAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBpbnN0YWxsLWV4ZWMtYW0g aW5zdGFsbC1kYXRhLWFtCi0rCi0raW5zdGFsbGNoZWNrOiBpbnN0YWxsY2hlY2stYW0KLStpbnN0 YWxsLXN0cmlwOgotKwkkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBJTlNUQUxMX1BST0dSQU09IiQo SU5TVEFMTF9TVFJJUF9QUk9HUkFNKSIgXAotKwkgIGluc3RhbGxfc2hfUFJPR1JBTT0iJChJTlNU QUxMX1NUUklQX1BST0dSQU0pIiBJTlNUQUxMX1NUUklQX0ZMQUc9LXMgXAotKwkgIGB0ZXN0IC16 ICckKFNUUklQKScgfHwgXAotKwkgICAgZWNobyAiSU5TVEFMTF9QUk9HUkFNX0VOVj1TVFJJUFBS T0c9JyQoU1RSSVApJyJgIGluc3RhbGwKLSttb3N0bHljbGVhbi1nZW5lcmljOgotKwotK2NsZWFu LWdlbmVyaWM6Ci0rCi0rZGlzdGNsZWFuLWdlbmVyaWM6Ci0rCS10ZXN0IC16ICIkKENPTkZJR19D TEVBTl9GSUxFUykiIHx8IHJtIC1mICQoQ09ORklHX0NMRUFOX0ZJTEVTKQotKwotK21haW50YWlu ZXItY2xlYW4tZ2VuZXJpYzoKLSsJQGVjaG8gIlRoaXMgY29tbWFuZCBpcyBpbnRlbmRlZCBmb3Ig bWFpbnRhaW5lcnMgdG8gdXNlIgotKwlAZWNobyAiaXQgZGVsZXRlcyBmaWxlcyB0aGF0IG1heSBy ZXF1aXJlIHNwZWNpYWwgdG9vbHMgdG8gcmVidWlsZC4iCi0rCS10ZXN0IC16ICIkKE1BSU5UQUlO RVJDTEVBTkZJTEVTKSIgfHwgcm0gLWYgJChNQUlOVEFJTkVSQ0xFQU5GSUxFUykKLStjbGVhbjog Y2xlYW4tYW0KLSsKLStjbGVhbi1hbTogY2xlYW4tZ2VuZXJpYyBjbGVhbi1saWJ0b29sIGNsZWFu LW5vaW5zdExUTElCUkFSSUVTIFwKLSsJbW9zdGx5Y2xlYW4tYW0KLSsKLStkaXN0Y2xlYW46IGRp c3RjbGVhbi1hbQotKwktcm0gLWYgTWFrZWZpbGUKLStkaXN0Y2xlYW4tYW06IGNsZWFuLWFtIGRp c3RjbGVhbi1jb21waWxlIGRpc3RjbGVhbi1nZW5lcmljIFwKLSsJZGlzdGNsZWFuLXRhZ3MKLSsK LStkdmk6IGR2aS1hbQotKwotK2R2aS1hbToKLSsKLStodG1sOiBodG1sLWFtCi0rCi0raW5mbzog aW5mby1hbQotKwotK2luZm8tYW06Ci0rCi0raW5zdGFsbC1kYXRhLWFtOiBpbnN0YWxsLXBrZ2lu Y2x1ZGVIRUFERVJTCi0rCi0raW5zdGFsbC1kdmk6IGluc3RhbGwtZHZpLWFtCi0rCi0raW5zdGFs bC1leGVjLWFtOgotKwotK2luc3RhbGwtaHRtbDogaW5zdGFsbC1odG1sLWFtCi0rCi0raW5zdGFs bC1pbmZvOiBpbnN0YWxsLWluZm8tYW0KLSsKLStpbnN0YWxsLW1hbjoKLSsKLStpbnN0YWxsLXBk ZjogaW5zdGFsbC1wZGYtYW0KLSsKLStpbnN0YWxsLXBzOiBpbnN0YWxsLXBzLWFtCi0rCi0raW5z dGFsbGNoZWNrLWFtOgotKwotK21haW50YWluZXItY2xlYW46IG1haW50YWluZXItY2xlYW4tYW0K LSsJLXJtIC1mIE1ha2VmaWxlCi0rbWFpbnRhaW5lci1jbGVhbi1hbTogZGlzdGNsZWFuLWFtIG1h aW50YWluZXItY2xlYW4tZ2VuZXJpYwotKwotK21vc3RseWNsZWFuOiBtb3N0bHljbGVhbi1hbQot KwotK21vc3RseWNsZWFuLWFtOiBtb3N0bHljbGVhbi1jb21waWxlIG1vc3RseWNsZWFuLWdlbmVy aWMgXAotKwltb3N0bHljbGVhbi1saWJ0b29sCi0rCi0rcGRmOiBwZGYtYW0KLSsKLStwZGYtYW06 Ci0rCi0rcHM6IHBzLWFtCi0rCi0rcHMtYW06Ci0rCi0rdW5pbnN0YWxsLWFtOiB1bmluc3RhbGwt cGtnaW5jbHVkZUhFQURFUlMKLSsKLSsuTUFLRTogaW5zdGFsbC1hbSBpbnN0YWxsLXN0cmlwCi0r Ci0rLlBIT05ZOiBDVEFHUyBHVEFHUyBhbGwgYWxsLWFtIGNoZWNrIGNoZWNrLWFtIGNsZWFuIGNs ZWFuLWdlbmVyaWMgXAotKwljbGVhbi1saWJ0b29sIGNsZWFuLW5vaW5zdExUTElCUkFSSUVTIGN0 YWdzIGRpc3RjbGVhbiBcCi0rCWRpc3RjbGVhbi1jb21waWxlIGRpc3RjbGVhbi1nZW5lcmljIGRp c3RjbGVhbi1saWJ0b29sIFwKLSsJZGlzdGNsZWFuLXRhZ3MgZGlzdGRpciBkdmkgZHZpLWFtIGh0 bWwgaHRtbC1hbSBpbmZvIGluZm8tYW0gXAotKwlpbnN0YWxsIGluc3RhbGwtYW0gaW5zdGFsbC1k YXRhIGluc3RhbGwtZGF0YS1hbSBpbnN0YWxsLWR2aSBcCi0rCWluc3RhbGwtZHZpLWFtIGluc3Rh bGwtZXhlYyBpbnN0YWxsLWV4ZWMtYW0gaW5zdGFsbC1odG1sIFwKLSsJaW5zdGFsbC1odG1sLWFt IGluc3RhbGwtaW5mbyBpbnN0YWxsLWluZm8tYW0gaW5zdGFsbC1tYW4gXAotKwlpbnN0YWxsLXBk ZiBpbnN0YWxsLXBkZi1hbSBpbnN0YWxsLXBrZ2luY2x1ZGVIRUFERVJTIFwKLSsJaW5zdGFsbC1w cyBpbnN0YWxsLXBzLWFtIGluc3RhbGwtc3RyaXAgaW5zdGFsbGNoZWNrIFwKLSsJaW5zdGFsbGNo ZWNrLWFtIGluc3RhbGxkaXJzIG1haW50YWluZXItY2xlYW4gXAotKwltYWludGFpbmVyLWNsZWFu LWdlbmVyaWMgbW9zdGx5Y2xlYW4gbW9zdGx5Y2xlYW4tY29tcGlsZSBcCi0rCW1vc3RseWNsZWFu LWdlbmVyaWMgbW9zdGx5Y2xlYW4tbGlidG9vbCBwZGYgcGRmLWFtIHBzIHBzLWFtIFwKLSsJdGFn cyB1bmluc3RhbGwgdW5pbnN0YWxsLWFtIHVuaW5zdGFsbC1wa2dpbmNsdWRlSEVBREVSUwotKwot K0BTRVRfTUFLRUAKLSsjIFRlbGwgdmVyc2lvbnMgWzMuNTksMy42Mykgb2YgR05VIG1ha2UgdG8g bm90IGV4cG9ydCBhbGwgdmFyaWFibGVzLgotKyMgT3RoZXJ3aXNlIGEgc3lzdGVtIGxpbWl0IChm b3IgU3lzViBhdCBsZWFzdCkgbWF5IGJlIGV4Y2VlZGVkLgotKy5OT0VYUE9SVDoKLWRpZmYgLU51 ciBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2NvcmUvdGVzdC9zb3VyY2VzLm1rIHNvY2ktMy4wLjBf dHJlcDMwMC9zb2NpL2NvcmUvdGVzdC9zb3VyY2VzLm1rCi0tLS0gc29jaS0zLjAuMF80LXBhY2sv c29jaS9jb3JlL3Rlc3Qvc291cmNlcy5tawkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCAr MDEwMAotKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2NvcmUvdGVzdC9zb3VyY2VzLm1rCTIw MDktMDUtMjIgMjI6NTQ6MTcuMDAwMDAwMDAwICswMjAwCi1AQCAtMCwwICsxLDIgQEAKLStjb3Jl X3Rlc3RfaF9zb3VyY2VzID0gJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvdGVzdC9jb21tb24tdGVz dHMuaAotK2NvcmVfdGVzdF9jY19zb3VyY2VzID0KLWRpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFj ay9zb2NpL01ha2VmaWxlLmFtIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL01ha2VmaWxlLmFtCi0t LS0gc29jaS0zLjAuMF80LXBhY2svc29jaS9NYWtlZmlsZS5hbQkxOTcwLTAxLTAxIDAxOjAwOjAw LjAwMDAwMDAwMCArMDEwMAotKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL01ha2VmaWxlLmFt CTIwMDktMDUtMjIgMjI6NTQ6MTkuMDAwMDAwMDAwICswMjAwCi1AQCAtMCwwICsxLDkgQEAKLStp bmNsdWRlICQodG9wX3NyY2RpcikvTWFrZWZpbGUuY29tbW9uCi0rCi0rIyMgU291cmNlIGRpcmVj dG9yeQotKwotK01BSU5UQUlORVJDTEVBTkZJTEVTID0gTWFrZWZpbGUuaW4KLSsKLStTVUJESVJT ID0gY29yZSBiYWNrZW5kcwotKwotK0VYVFJBX0RJU1QgPQotZGlmZiAtTnVyIHNvY2ktMy4wLjBf NC1wYWNrL3NvY2kvTWFrZWZpbGUuaW4gc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvTWFrZWZpbGUu aW4KLS0tLSBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL01ha2VmaWxlLmluCTE5NzAtMDEtMDEgMDE6 MDA6MDAuMDAwMDAwMDAwICswMTAwCi0rKysgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvTWFrZWZp bGUuaW4JMjAwOS0wNS0yMyAxMDowMjowMi4wMDAwMDAwMDAgKzAyMDAKLUBAIC0wLDAgKzEsNTY1 IEBACi0rIyBNYWtlZmlsZS5pbiBnZW5lcmF0ZWQgYnkgYXV0b21ha2UgMS4xMC4yIGZyb20gTWFr ZWZpbGUuYW0uCi0rIyBAY29uZmlndXJlX2lucHV0QAotKwotKyMgQ29weXJpZ2h0IChDKSAxOTk0 LCAxOTk1LCAxOTk2LCAxOTk3LCAxOTk4LCAxOTk5LCAyMDAwLCAyMDAxLCAyMDAyLAotKyMgMjAw MywgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u LCBJbmMuCi0rIyBUaGlzIE1ha2VmaWxlLmluIGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNv ZnR3YXJlIEZvdW5kYXRpb24KLSsjIGdpdmVzIHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNvcHkg YW5kL29yIGRpc3RyaWJ1dGUgaXQsCi0rIyB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9ucywg YXMgbG9uZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCi0rCi0rIyBUaGlzIHByb2dyYW0g aXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSsjIGJ1 dCBXSVRIT1VUIEFOWSBXQVJSQU5UWSwgdG8gdGhlIGV4dGVudCBwZXJtaXR0ZWQgYnkgbGF3OyB3 aXRob3V0Ci0rIyBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBv ciBGSVRORVNTIEZPUiBBCi0rIyBQQVJUSUNVTEFSIFBVUlBPU0UuCi0rCi0rQFNFVF9NQUtFQAot K1ZQQVRIID0gQHNyY2RpckAKLStwa2dkYXRhZGlyID0gJChkYXRhZGlyKS9AUEFDS0FHRUAKLStw a2dsaWJkaXIgPSAkKGxpYmRpcikvQFBBQ0tBR0VACi0rcGtnaW5jbHVkZWRpciA9ICQoaW5jbHVk ZWRpcikvQFBBQ0tBR0VACi0rYW1fX2NkID0gQ0RQQVRIPSIkJHtaU0hfVkVSU0lPTisufSQoUEFU SF9TRVBBUkFUT1IpIiAmJiBjZAotK2luc3RhbGxfc2hfREFUQSA9ICQoaW5zdGFsbF9zaCkgLWMg LW0gNjQ0Ci0raW5zdGFsbF9zaF9QUk9HUkFNID0gJChpbnN0YWxsX3NoKSAtYwotK2luc3RhbGxf c2hfU0NSSVBUID0gJChpbnN0YWxsX3NoKSAtYwotK0lOU1RBTExfSEVBREVSID0gJChJTlNUQUxM X0RBVEEpCi0rdHJhbnNmb3JtID0gJChwcm9ncmFtX3RyYW5zZm9ybV9uYW1lKQotK05PUk1BTF9J TlNUQUxMID0gOgotK1BSRV9JTlNUQUxMID0gOgotK1BPU1RfSU5TVEFMTCA9IDoKLStOT1JNQUxf VU5JTlNUQUxMID0gOgotK1BSRV9VTklOU1RBTEwgPSA6Ci0rUE9TVF9VTklOU1RBTEwgPSA6Ci0r YnVpbGRfdHJpcGxldCA9IEBidWlsZEAKLStob3N0X3RyaXBsZXQgPSBAaG9zdEAKLStESVNUX0NP TU1PTiA9ICQoc3JjZGlyKS9NYWtlZmlsZS5hbSAkKHNyY2RpcikvTWFrZWZpbGUuaW4gXAotKwkk KHNyY2RpcikvY29uZmlnLmguaW4gJCh0b3Bfc3JjZGlyKS9NYWtlZmlsZS5jb21tb24KLStzdWJk aXIgPSBzb2NpCi0rQUNMT0NBTF9NNCA9ICQodG9wX3NyY2RpcikvYWNsb2NhbC5tNAotK2FtX19h Y2xvY2FsX200X2RlcHMgPSAkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9ib29zdC5tNCBcCi0rCSQo dG9wX3NyY2RpcikvY29uZmlnL2F4X215c3FsLm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcv YXhfb3JhY2xlX29jaS5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmlnL2F4X3Bvc3RncmVzcWwu bTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9jcHB1bml0Lm00IFwKLSsJJCh0b3Bfc3JjZGly KS9jb25maWcvbGlidG9vbC5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmlnL2x0b3B0aW9ucy5t NCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmlnL2x0c3VnYXIubTQgXAotKwkkKHRvcF9zcmNkaXIp L2NvbmZpZy9sdHZlcnNpb24ubTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9sdH5vYnNvbGV0 ZS5tNCAkKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZS5hYwotK2FtX19jb25maWd1cmVfZGVwcyA9ICQo YW1fX2FjbG9jYWxfbTRfZGVwcykgJChDT05GSUdVUkVfREVQRU5ERU5DSUVTKSBcCi0rCSQoQUNM T0NBTF9NNCkKLStta2luc3RhbGxkaXJzID0gJChpbnN0YWxsX3NoKSAtZAotK0NPTkZJR19IRUFE RVIgPSBjb25maWcuaAotK0NPTkZJR19DTEVBTl9GSUxFUyA9Ci0rU09VUkNFUyA9Ci0rRElTVF9T T1VSQ0VTID0KLStSRUNVUlNJVkVfVEFSR0VUUyA9IGFsbC1yZWN1cnNpdmUgY2hlY2stcmVjdXJz aXZlIGR2aS1yZWN1cnNpdmUgXAotKwlodG1sLXJlY3Vyc2l2ZSBpbmZvLXJlY3Vyc2l2ZSBpbnN0 YWxsLWRhdGEtcmVjdXJzaXZlIFwKLSsJaW5zdGFsbC1kdmktcmVjdXJzaXZlIGluc3RhbGwtZXhl Yy1yZWN1cnNpdmUgXAotKwlpbnN0YWxsLWh0bWwtcmVjdXJzaXZlIGluc3RhbGwtaW5mby1yZWN1 cnNpdmUgXAotKwlpbnN0YWxsLXBkZi1yZWN1cnNpdmUgaW5zdGFsbC1wcy1yZWN1cnNpdmUgaW5z dGFsbC1yZWN1cnNpdmUgXAotKwlpbnN0YWxsY2hlY2stcmVjdXJzaXZlIGluc3RhbGxkaXJzLXJl Y3Vyc2l2ZSBwZGYtcmVjdXJzaXZlIFwKLSsJcHMtcmVjdXJzaXZlIHVuaW5zdGFsbC1yZWN1cnNp dmUKLStSRUNVUlNJVkVfQ0xFQU5fVEFSR0VUUyA9IG1vc3RseWNsZWFuLXJlY3Vyc2l2ZSBjbGVh bi1yZWN1cnNpdmUJXAotKyAgZGlzdGNsZWFuLXJlY3Vyc2l2ZSBtYWludGFpbmVyLWNsZWFuLXJl Y3Vyc2l2ZQotK0VUQUdTID0gZXRhZ3MKLStDVEFHUyA9IGN0YWdzCi0rRElTVF9TVUJESVJTID0g JChTVUJESVJTKQotK0RJU1RGSUxFUyA9ICQoRElTVF9DT01NT04pICQoRElTVF9TT1VSQ0VTKSAk KFRFWElORk9TKSAkKEVYVFJBX0RJU1QpCi0rQUNMT0NBTCA9IEBBQ0xPQ0FMQAotK0FNVEFSID0g QEFNVEFSQAotK0FSID0gQEFSQAotK0FVVE9DT05GID0gQEFVVE9DT05GQAotK0FVVE9IRUFERVIg PSBAQVVUT0hFQURFUkAKLStBVVRPTUFLRSA9IEBBVVRPTUFLRUAKLStBV0sgPSBAQVdLQAotK0JP T1NUX0NGTEFHUyA9IEBCT09TVF9DRkxBR1NACi0rQk9PU1RfREFURV9USU1FX0xJQiA9IEBCT09T VF9EQVRFX1RJTUVfTElCQAotK0JPT1NUX0ZJTEVTWVNURU1fTElCID0gQEJPT1NUX0ZJTEVTWVNU RU1fTElCQAotK0JPT1NUX0lPU1RSRUFNU19MSUIgPSBAQk9PU1RfSU9TVFJFQU1TX0xJQkAKLStC T09TVF9MSUJTID0gQEJPT1NUX0xJQlNACi0rQk9PU1RfUFJPR1JBTV9PUFRJT05TX0xJQiA9IEBC T09TVF9QUk9HUkFNX09QVElPTlNfTElCQAotK0JPT1NUX1JFR0VYX0xJQiA9IEBCT09TVF9SRUdF WF9MSUJACi0rQk9PU1RfU0VSSUFMSVpBVElPTl9MSUIgPSBAQk9PU1RfU0VSSUFMSVpBVElPTl9M SUJACi0rQk9PU1RfU0lHTkFMU19MSUIgPSBAQk9PU1RfU0lHTkFMU19MSUJACi0rQk9PU1RfVEhS RUFEX0xJQiA9IEBCT09TVF9USFJFQURfTElCQAotK0JPT1NUX1VOSVRfVEVTVF9GUkFNRVdPUktf TElCID0gQEJPT1NUX1VOSVRfVEVTVF9GUkFNRVdPUktfTElCQAotK0JPT1NUX1ZFUlNJT04gPSBA Qk9PU1RfVkVSU0lPTkAKLStCT09TVF9XU0VSSUFMSVpBVElPTl9MSUIgPSBAQk9PU1RfV1NFUklB TElaQVRJT05fTElCQAotK0NDID0gQENDQAotK0NDREVQTU9ERSA9IEBDQ0RFUE1PREVACi0rQ0ZM QUdTID0gQENGTEFHU0AKLStDUFAgPSBAQ1BQQAotK0NQUEZMQUdTID0gQENQUEZMQUdTQAotK0NQ UFVOSVRfQ0ZMQUdTID0gQENQUFVOSVRfQ0ZMQUdTQAotK0NQUFVOSVRfQ09ORklHID0gQENQUFVO SVRfQ09ORklHQAotK0NQUFVOSVRfTElCUyA9IEBDUFBVTklUX0xJQlNACi0rQ1BQVU5JVF9WRVJT SU9OID0gQENQUFVOSVRfVkVSU0lPTkAKLStDWFggPSBAQ1hYQAotK0NYWENQUCA9IEBDWFhDUFBA Ci0rQ1hYREVQTU9ERSA9IEBDWFhERVBNT0RFQAotK0NYWEZMQUdTID0gQENYWEZMQUdTQAotK0NZ R1BBVEhfVyA9IEBDWUdQQVRIX1dACi0rREVGUyA9IEBERUZTQAotK0RFUERJUiA9IEBERVBESVJA Ci0rRFNZTVVUSUwgPSBARFNZTVVUSUxACi0rRFVNUEJJTiA9IEBEVU1QQklOQAotK0VDSE9fQyA9 IEBFQ0hPX0NACi0rRUNIT19OID0gQEVDSE9fTkAKLStFQ0hPX1QgPSBARUNIT19UQAotK0VHUkVQ ID0gQEVHUkVQQAotK0VYRUVYVCA9IEBFWEVFWFRACi0rRkdSRVAgPSBARkdSRVBACi0rR0VORVJJ Q19MSUJSQVJZX1ZFUlNJT04gPSBAR0VORVJJQ19MSUJSQVJZX1ZFUlNJT05ACi0rR1JFUCA9IEBH UkVQQAotK0lOU1RBTEwgPSBASU5TVEFMTEAKLStJTlNUQUxMX0RBVEEgPSBASU5TVEFMTF9EQVRB QAotK0lOU1RBTExfUFJPR1JBTSA9IEBJTlNUQUxMX1BST0dSQU1ACi0rSU5TVEFMTF9TQ1JJUFQg PSBASU5TVEFMTF9TQ1JJUFRACi0rSU5TVEFMTF9TVFJJUF9QUk9HUkFNID0gQElOU1RBTExfU1RS SVBfUFJPR1JBTUAKLStMRCA9IEBMREAKLStMREZMQUdTID0gQExERkxBR1NACi0rTElCT0JKUyA9 IEBMSUJPQkpTQAotK0xJQlMgPSBATElCU0AKLStMSUJUT09MID0gQExJQlRPT0xACi0rTElQTyA9 IEBMSVBPQAotK0xOX1MgPSBATE5fU0AKLStMVExJQk9CSlMgPSBATFRMSUJPQkpTQAotK01BS0VJ TkZPID0gQE1BS0VJTkZPQAotK01LRElSX1AgPSBATUtESVJfUEAKLStNWVNRTF9DRkxBR1MgPSBA TVlTUUxfQ0ZMQUdTQAotK01ZU1FMX0NPTkZJRyA9IEBNWVNRTF9DT05GSUdACi0rTVlTUUxfRElS UyA9IEBNWVNRTF9ESVJTQAotK01ZU1FMX0xERkxBR1MgPSBATVlTUUxfTERGTEFHU0AKLStNWVNR TF9WRVJTSU9OID0gQE1ZU1FMX1ZFUlNJT05ACi0rTk0gPSBATk1ACi0rTk1FRElUID0gQE5NRURJ VEAKLStPQkpEVU1QID0gQE9CSkRVTVBACi0rT0JKRVhUID0gQE9CSkVYVEAKLStPUkFDTEVfRElS UyA9IEBPUkFDTEVfRElSU0AKLStPUkFDTEVfT0NJX0NGTEFHUyA9IEBPUkFDTEVfT0NJX0NGTEFH U0AKLStPUkFDTEVfT0NJX0xERkxBR1MgPSBAT1JBQ0xFX09DSV9MREZMQUdTQAotK09SQUNMRV9P Q0lfVkVSU0lPTiA9IEBPUkFDTEVfT0NJX1ZFUlNJT05ACi0rT1RPT0wgPSBAT1RPT0xACi0rT1RP T0w2NCA9IEBPVE9PTDY0QAotK1BBQ0tBR0UgPSBAUEFDS0FHRUAKLStQQUNLQUdFX0JVR1JFUE9S VCA9IEBQQUNLQUdFX0JVR1JFUE9SVEAKLStQQUNLQUdFX05BTUUgPSBAUEFDS0FHRV9OQU1FQAot K1BBQ0tBR0VfU1RSSU5HID0gQFBBQ0tBR0VfU1RSSU5HQAotK1BBQ0tBR0VfVEFSTkFNRSA9IEBQ QUNLQUdFX1RBUk5BTUVACi0rUEFDS0FHRV9WRVJTSU9OID0gQFBBQ0tBR0VfVkVSU0lPTkAKLStQ QVRIX1NFUEFSQVRPUiA9IEBQQVRIX1NFUEFSQVRPUkAKLStQRVJMID0gQFBFUkxACi0rUEdfQ09O RklHID0gQFBHX0NPTkZJR0AKLStQT1NUR1JFU1FMX0NGTEFHUyA9IEBQT1NUR1JFU1FMX0NGTEFH U0AKLStQT1NUR1JFU1FMX0RJUlMgPSBAUE9TVEdSRVNRTF9ESVJTQAotK1BPU1RHUkVTUUxfTERG TEFHUyA9IEBQT1NUR1JFU1FMX0xERkxBR1NACi0rUE9TVEdSRVNRTF9WRVJTSU9OID0gQFBPU1RH UkVTUUxfVkVSU0lPTkAKLStSQU5MSUIgPSBAUkFOTElCQAotK1JQTV9SRUxFQVNFID0gQFJQTV9S RUxFQVNFQAotK1NFRCA9IEBTRURACi0rU0VUX01BS0UgPSBAU0VUX01BS0VACi0rU0hFTEwgPSBA U0hFTExACi0rU09DSV9IRUFERVJTX0JVUklFRCA9IEBTT0NJX0hFQURFUlNfQlVSSUVEQAotK1NP Q0lfTVlTUUxfSEVBREVSU19CVVJJRUQgPSBAU09DSV9NWVNRTF9IRUFERVJTX0JVUklFREAKLStT T0NJX1BPU1RHUkVTUUxfSEVBREVSU19CVVJJRUQgPSBAU09DSV9QT1NUR1JFU1FMX0hFQURFUlNf QlVSSUVEQAotK1NUUklQID0gQFNUUklQQAotK1VQTE9BRF9DT01NQU5EID0gQFVQTE9BRF9DT01N QU5EQAotK1ZFUlNJT04gPSBAVkVSU0lPTkAKLSthYnNfYnVpbGRkaXIgPSBAYWJzX2J1aWxkZGly QAotK2Fic19zcmNkaXIgPSBAYWJzX3NyY2RpckAKLSthYnNfdG9wX2J1aWxkZGlyID0gQGFic190 b3BfYnVpbGRkaXJACi0rYWJzX3RvcF9zcmNkaXIgPSBAYWJzX3RvcF9zcmNkaXJACi0rYWNfY3Rf Q0MgPSBAYWNfY3RfQ0NACi0rYWNfY3RfQ1hYID0gQGFjX2N0X0NYWEAKLSthY19jdF9EVU1QQklO ID0gQGFjX2N0X0RVTVBCSU5ACi0rYW1fX2luY2x1ZGUgPSBAYW1fX2luY2x1ZGVACi0rYW1fX2xl YWRpbmdfZG90ID0gQGFtX19sZWFkaW5nX2RvdEAKLSthbV9fcXVvdGUgPSBAYW1fX3F1b3RlQAot K2FtX190YXIgPSBAYW1fX3RhckAKLSthbV9fdW50YXIgPSBAYW1fX3VudGFyQAotK2JpbmRpciA9 IEBiaW5kaXJACi0rYnVpbGQgPSBAYnVpbGRACi0rYnVpbGRfYWxpYXMgPSBAYnVpbGRfYWxpYXNA Ci0rYnVpbGRfY3B1ID0gQGJ1aWxkX2NwdUAKLStidWlsZF9vcyA9IEBidWlsZF9vc0AKLStidWls ZF92ZW5kb3IgPSBAYnVpbGRfdmVuZG9yQAotK2J1aWxkZGlyID0gQGJ1aWxkZGlyQAotK2RhdGFk aXIgPSBAZGF0YWRpckAKLStkYXRhcm9vdGRpciA9IEBkYXRhcm9vdGRpckAKLStkaWZmX29rID0g QGRpZmZfb2tACi0rZG9jZGlyID0gQGRvY2RpckAKLStkb3h5Z2VuX29rID0gQGRveHlnZW5fb2tA Ci0rZHZpZGlyID0gQGR2aWRpckAKLStkdmlwc19vayA9IEBkdmlwc19va0AKLStleGVjX3ByZWZp eCA9IEBleGVjX3ByZWZpeEAKLStnc19vayA9IEBnc19va0AKLStob3N0ID0gQGhvc3RACi0raG9z dF9hbGlhcyA9IEBob3N0X2FsaWFzQAotK2hvc3RfY3B1ID0gQGhvc3RfY3B1QAotK2hvc3Rfb3Mg PSBAaG9zdF9vc0AKLStob3N0X3ZlbmRvciA9IEBob3N0X3ZlbmRvckAKLStodG1sZGlyID0gQGh0 bWxkaXJACi0raW5jbHVkZWRpciA9IEBpbmNsdWRlZGlyQAotK2luZm9kaXIgPSBAaW5mb2RpckAK LStpbnN0YWxsX3NoID0gQGluc3RhbGxfc2hACi0rbGF0ZXhfb2sgPSBAbGF0ZXhfb2tACi0rbGli ZGlyID0gQGxpYmRpckAKLStsaWJleGVjZGlyID0gQGxpYmV4ZWNkaXJACi0rbG9jYWxlZGlyID0g QGxvY2FsZWRpckAKLStsb2NhbHN0YXRlZGlyID0gQGxvY2Fsc3RhdGVkaXJACi0rbHRfRUNITyA9 IEBsdF9FQ0hPQAotK21hbmRpciA9IEBtYW5kaXJACi0rbWtkaXJfcCA9IEBta2Rpcl9wQAotK29s ZGluY2x1ZGVkaXIgPSBAb2xkaW5jbHVkZWRpckAKLStwZGZkaXIgPSBAcGRmZGlyQAotK3ByZWZp eCA9IEBwcmVmaXhACi0rcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZSA9IEBwcm9ncmFtX3RyYW5zZm9y bV9uYW1lQAotK3BzZGlyID0gQHBzZGlyQAotK3NiaW5kaXIgPSBAc2JpbmRpckAKLStzZWRfb2sg PSBAc2VkX29rQAotK3NoYXJlZHN0YXRlZGlyID0gQHNoYXJlZHN0YXRlZGlyQAotK3NyY2RpciA9 IEBzcmNkaXJACi0rc3lzY29uZmRpciA9IEBzeXNjb25mZGlyQAotK3RhcmdldF9hbGlhcyA9IEB0 YXJnZXRfYWxpYXNACi0rdG9wX2J1aWxkX3ByZWZpeCA9IEB0b3BfYnVpbGRfcHJlZml4QAotK3Rv cF9idWlsZGRpciA9IEB0b3BfYnVpbGRkaXJACi0rdG9wX3NyY2RpciA9IEB0b3Bfc3JjZGlyQAot K0FNX0NQUEZMQUdTID0gLUkkKHRvcF9idWlsZGRpcikgLUkkKHRvcF9zcmNkaXIpCi0rTUFJTlRB SU5FUkNMRUFORklMRVMgPSBNYWtlZmlsZS5pbgotK1NVQkRJUlMgPSBjb3JlIGJhY2tlbmRzCi0r RVhUUkFfRElTVCA9IAotK2FsbDogY29uZmlnLmgKLSsJJChNQUtFKSAkKEFNX01BS0VGTEFHUykg YWxsLXJlY3Vyc2l2ZQotKwotKy5TVUZGSVhFUzoKLSskKHNyY2RpcikvTWFrZWZpbGUuaW46ICAk KHNyY2RpcikvTWFrZWZpbGUuYW0gJCh0b3Bfc3JjZGlyKS9NYWtlZmlsZS5jb21tb24gJChhbV9f Y29uZmlndXJlX2RlcHMpCi0rCUBmb3IgZGVwIGluICQ/OyBkbyBcCi0rCSAgY2FzZSAnJChhbV9f Y29uZmlndXJlX2RlcHMpJyBpbiBcCi0rCSAgICAqJCRkZXAqKSBcCi0rCSAgICAgICggY2QgJCh0 b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoICkgXAot KwkgICAgICAgICYmIHsgaWYgdGVzdCAtZiAkQDsgdGhlbiBleGl0IDA7IGVsc2UgYnJlYWs7IGZp OyB9OyBcCi0rCSAgICAgIGV4aXQgMTs7IFwKLSsJICBlc2FjOyBcCi0rCWRvbmU7IFwKLSsJZWNo byAnIGNkICQodG9wX3NyY2RpcikgJiYgJChBVVRPTUFLRSkgLS1nbnUgIHNvY2kvTWFrZWZpbGUn OyBcCi0rCWNkICQodG9wX3NyY2RpcikgJiYgXAotKwkgICQoQVVUT01BS0UpIC0tZ251ICBzb2Np L01ha2VmaWxlCi0rLlBSRUNJT1VTOiBNYWtlZmlsZQotK01ha2VmaWxlOiAkKHNyY2RpcikvTWFr ZWZpbGUuaW4gJCh0b3BfYnVpbGRkaXIpL2NvbmZpZy5zdGF0dXMKLSsJQGNhc2UgJyQ/JyBpbiBc Ci0rCSAgKmNvbmZpZy5zdGF0dXMqKSBcCi0rCSAgICBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChN QUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2g7OyBcCi0rCSAgKikgXAotKwkgICAgZWNo byAnIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKFNIRUxMKSAuL2NvbmZpZy5zdGF0dXMgJChzdWJk aXIpLyRAICQoYW1fX2RlcGZpbGVzX21heWJlKSc7IFwKLSsJICAgIGNkICQodG9wX2J1aWxkZGly KSAmJiAkKFNIRUxMKSAuL2NvbmZpZy5zdGF0dXMgJChzdWJkaXIpLyRAICQoYW1fX2RlcGZpbGVz X21heWJlKTs7IFwKLSsJZXNhYzsKLSsKLSskKHRvcF9idWlsZGRpcikvY29uZmlnLnN0YXR1czog JCh0b3Bfc3JjZGlyKS9jb25maWd1cmUgJChDT05GSUdfU1RBVFVTX0RFUEVOREVOQ0lFUykKLSsJ Y2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNo Ci0rCi0rJCh0b3Bfc3JjZGlyKS9jb25maWd1cmU6ICAkKGFtX19jb25maWd1cmVfZGVwcykKLSsJ Y2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNo Ci0rJChBQ0xPQ0FMX000KTogICQoYW1fX2FjbG9jYWxfbTRfZGVwcykKLSsJY2QgJCh0b3BfYnVp bGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCi0rCi0rY29uZmln Lmg6IHN0YW1wLWgxCi0rCUBpZiB0ZXN0ICEgLWYgJEA7IHRoZW4gXAotKwkgIHJtIC1mIHN0YW1w LWgxOyBcCi0rCSAgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgc3RhbXAtaDE7IFwKLSsJZWxzZSA6 OyBmaQotKwotK3N0YW1wLWgxOiAkKHNyY2RpcikvY29uZmlnLmguaW4gJCh0b3BfYnVpbGRkaXIp L2NvbmZpZy5zdGF0dXMKLSsJQHJtIC1mIHN0YW1wLWgxCi0rCWNkICQodG9wX2J1aWxkZGlyKSAm JiAkKFNIRUxMKSAuL2NvbmZpZy5zdGF0dXMgc29jaS9jb25maWcuaAotKyQoc3JjZGlyKS9jb25m aWcuaC5pbjogICQoYW1fX2NvbmZpZ3VyZV9kZXBzKSAKLSsJY2QgJCh0b3Bfc3JjZGlyKSAmJiAk KEFVVE9IRUFERVIpCi0rCXJtIC1mIHN0YW1wLWgxCi0rCXRvdWNoICRACi0rCi0rZGlzdGNsZWFu LWhkcjoKLSsJLXJtIC1mIGNvbmZpZy5oIHN0YW1wLWgxCi0rCi0rbW9zdGx5Y2xlYW4tbGlidG9v bDoKLSsJLXJtIC1mICoubG8KLSsKLStjbGVhbi1saWJ0b29sOgotKwktcm0gLXJmIC5saWJzIF9s aWJzCi0rCi0rIyBUaGlzIGRpcmVjdG9yeSdzIHN1YmRpcmVjdG9yaWVzIGFyZSBtb3N0bHkgaW5k ZXBlbmRlbnQ7IHlvdSBjYW4gY2QKLSsjIGludG8gdGhlbSBhbmQgcnVuIGBtYWtlJyB3aXRob3V0 IGdvaW5nIHRocm91Z2ggdGhpcyBNYWtlZmlsZS4KLSsjIFRvIGNoYW5nZSB0aGUgdmFsdWVzIG9m IGBtYWtlJyB2YXJpYWJsZXM6IGluc3RlYWQgb2YgZWRpdGluZyBNYWtlZmlsZXMsCi0rIyAoMSkg aWYgdGhlIHZhcmlhYmxlIGlzIHNldCBpbiBgY29uZmlnLnN0YXR1cycsIGVkaXQgYGNvbmZpZy5z dGF0dXMnCi0rIyAgICAgKHdoaWNoIHdpbGwgY2F1c2UgdGhlIE1ha2VmaWxlcyB0byBiZSByZWdl bmVyYXRlZCB3aGVuIHlvdSBydW4gYG1ha2UnKTsKLSsjICgyKSBvdGhlcndpc2UsIHBhc3MgdGhl IGRlc2lyZWQgdmFsdWVzIG9uIHRoZSBgbWFrZScgY29tbWFuZCBsaW5lLgotKyQoUkVDVVJTSVZF X1RBUkdFVFMpOgotKwlAZmFpbGNvbT0nZXhpdCAxJzsgXAotKwlmb3IgZiBpbiB4ICQkTUFLRUZM QUdTOyBkbyBcCi0rCSAgY2FzZSAkJGYgaW4gXAotKwkgICAgKj0qIHwgLS1bIWtdKik7OyBcCi0r CSAgICAqayopIGZhaWxjb209J2ZhaWw9eWVzJzs7IFwKLSsJICBlc2FjOyBcCi0rCWRvbmU7IFwK LSsJZG90X3NlZW49bm87IFwKLSsJdGFyZ2V0PWBlY2hvICRAIHwgc2VkIHMvLXJlY3Vyc2l2ZS8v YDsgXAotKwlsaXN0PSckKFNVQkRJUlMpJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKLSsJ ICBlY2hvICJNYWtpbmcgJCR0YXJnZXQgaW4gJCRzdWJkaXIiOyBcCi0rCSAgaWYgdGVzdCAiJCRz dWJkaXIiID0gIi4iOyB0aGVuIFwKLSsJICAgIGRvdF9zZWVuPXllczsgXAotKwkgICAgbG9jYWxf dGFyZ2V0PSIkJHRhcmdldC1hbSI7IFwKLSsJICBlbHNlIFwKLSsJICAgIGxvY2FsX3RhcmdldD0i JCR0YXJnZXQiOyBcCi0rCSAgZmk7IFwKLSsJICAoY2QgJCRzdWJkaXIgJiYgJChNQUtFKSAkKEFN X01BS0VGTEFHUykgJCRsb2NhbF90YXJnZXQpIFwKLSsJICB8fCBldmFsICQkZmFpbGNvbTsgXAot Kwlkb25lOyBcCi0rCWlmIHRlc3QgIiQkZG90X3NlZW4iID0gIm5vIjsgdGhlbiBcCi0rCSAgJChN QUtFKSAkKEFNX01BS0VGTEFHUykgIiQkdGFyZ2V0LWFtIiB8fCBleGl0IDE7IFwKLSsJZmk7IHRl c3QgLXogIiQkZmFpbCIKLSsKLSskKFJFQ1VSU0lWRV9DTEVBTl9UQVJHRVRTKToKLSsJQGZhaWxj b209J2V4aXQgMSc7IFwKLSsJZm9yIGYgaW4geCAkJE1BS0VGTEFHUzsgZG8gXAotKwkgIGNhc2Ug JCRmIGluIFwKLSsJICAgICo9KiB8IC0tWyFrXSopOzsgXAotKwkgICAgKmsqKSBmYWlsY29tPSdm YWlsPXllcyc7OyBcCi0rCSAgZXNhYzsgXAotKwlkb25lOyBcCi0rCWRvdF9zZWVuPW5vOyBcCi0r CWNhc2UgIiRAIiBpbiBcCi0rCSAgZGlzdGNsZWFuLSogfCBtYWludGFpbmVyLWNsZWFuLSopIGxp c3Q9JyQoRElTVF9TVUJESVJTKScgOzsgXAotKwkgICopIGxpc3Q9JyQoU1VCRElSUyknIDs7IFwK LSsJZXNhYzsgXAotKwlyZXY9Jyc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCi0rCSAgaWYg dGVzdCAiJCRzdWJkaXIiID0gIi4iOyB0aGVuIDo7IGVsc2UgXAotKwkgICAgcmV2PSIkJHN1YmRp ciAkJHJldiI7IFwKLSsJICBmaTsgXAotKwlkb25lOyBcCi0rCXJldj0iJCRyZXYgLiI7IFwKLSsJ dGFyZ2V0PWBlY2hvICRAIHwgc2VkIHMvLXJlY3Vyc2l2ZS8vYDsgXAotKwlmb3Igc3ViZGlyIGlu ICQkcmV2OyBkbyBcCi0rCSAgZWNobyAiTWFraW5nICQkdGFyZ2V0IGluICQkc3ViZGlyIjsgXAot KwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9ICIuIjsgdGhlbiBcCi0rCSAgICBsb2NhbF90YXJnZXQ9 IiQkdGFyZ2V0LWFtIjsgXAotKwkgIGVsc2UgXAotKwkgICAgbG9jYWxfdGFyZ2V0PSIkJHRhcmdl dCI7IFwKLSsJICBmaTsgXAotKwkgIChjZCAkJHN1YmRpciAmJiAkKE1BS0UpICQoQU1fTUFLRUZM QUdTKSAkJGxvY2FsX3RhcmdldCkgXAotKwkgIHx8IGV2YWwgJCRmYWlsY29tOyBcCi0rCWRvbmUg JiYgdGVzdCAteiAiJCRmYWlsIgotK3RhZ3MtcmVjdXJzaXZlOgotKwlsaXN0PSckKFNVQkRJUlMp JzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKLSsJICB0ZXN0ICIkJHN1YmRpciIgPSAuIHx8 IChjZCAkJHN1YmRpciAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSB0YWdzKTsgXAotKwlkb25l Ci0rY3RhZ3MtcmVjdXJzaXZlOgotKwlsaXN0PSckKFNVQkRJUlMpJzsgZm9yIHN1YmRpciBpbiAk JGxpc3Q7IGRvIFwKLSsJICB0ZXN0ICIkJHN1YmRpciIgPSAuIHx8IChjZCAkJHN1YmRpciAmJiAk KE1BS0UpICQoQU1fTUFLRUZMQUdTKSBjdGFncyk7IFwKLSsJZG9uZQotKwotK0lEOiAkKEhFQURF UlMpICQoU09VUkNFUykgJChMSVNQKSAkKFRBR1NfRklMRVMpCi0rCWxpc3Q9JyQoU09VUkNFUykg JChIRUFERVJTKSAkKExJU1ApICQoVEFHU19GSUxFUyknOyBcCi0rCXVuaXF1ZT1gZm9yIGkgaW4g JCRsaXN0OyBkbyBcCi0rCSAgICBpZiB0ZXN0IC1mICIkJGkiOyB0aGVuIGVjaG8gJCRpOyBlbHNl IGVjaG8gJChzcmNkaXIpLyQkaTsgZmk7IFwKLSsJICBkb25lIHwgXAotKwkgICQoQVdLKSAneyBm aWxlc1skJDBdID0gMTsgbm9uZW1wdHkgPSAxOyB9IFwKLSsJICAgICAgRU5EIHsgaWYgKG5vbmVt cHR5KSB7IGZvciAoaSBpbiBmaWxlcykgcHJpbnQgaTsgfTsgfSdgOyBcCi0rCW1raWQgLWZJRCAk JHVuaXF1ZQotK3RhZ3M6IFRBR1MKLSsKLStUQUdTOiB0YWdzLXJlY3Vyc2l2ZSAkKEhFQURFUlMp ICQoU09VUkNFUykgY29uZmlnLmguaW4gJChUQUdTX0RFUEVOREVOQ0lFUykgXAotKwkJJChUQUdT X0ZJTEVTKSAkKExJU1ApCi0rCXRhZ3M9OyBcCi0rCWhlcmU9YHB3ZGA7IFwKLSsJaWYgKCQoRVRB R1MpIC0tZXRhZ3MtaW5jbHVkZSAtLXZlcnNpb24pID4vZGV2L251bGwgMj4mMTsgdGhlbiBcCi0r CSAgaW5jbHVkZV9vcHRpb249LS1ldGFncy1pbmNsdWRlOyBcCi0rCSAgZW1wdHlfZml4PS47IFwK LSsJZWxzZSBcCi0rCSAgaW5jbHVkZV9vcHRpb249LS1pbmNsdWRlOyBcCi0rCSAgZW1wdHlfZml4 PTsgXAotKwlmaTsgXAotKwlsaXN0PSckKFNVQkRJUlMpJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7 IGRvIFwKLSsJICBpZiB0ZXN0ICIkJHN1YmRpciIgPSAuOyB0aGVuIDo7IGVsc2UgXAotKwkgICAg dGVzdCAhIC1mICQkc3ViZGlyL1RBR1MgfHwgXAotKwkgICAgICB0YWdzPSIkJHRhZ3MgJCRpbmNs dWRlX29wdGlvbj0kJGhlcmUvJCRzdWJkaXIvVEFHUyI7IFwKLSsJICBmaTsgXAotKwlkb25lOyBc Ci0rCWxpc3Q9JyQoU09VUkNFUykgJChIRUFERVJTKSBjb25maWcuaC5pbiAkKExJU1ApICQoVEFH U19GSUxFUyknOyBcCi0rCXVuaXF1ZT1gZm9yIGkgaW4gJCRsaXN0OyBkbyBcCi0rCSAgICBpZiB0 ZXN0IC1mICIkJGkiOyB0aGVuIGVjaG8gJCRpOyBlbHNlIGVjaG8gJChzcmNkaXIpLyQkaTsgZmk7 IFwKLSsJICBkb25lIHwgXAotKwkgICQoQVdLKSAneyBmaWxlc1skJDBdID0gMTsgbm9uZW1wdHkg PSAxOyB9IFwKLSsJICAgICAgRU5EIHsgaWYgKG5vbmVtcHR5KSB7IGZvciAoaSBpbiBmaWxlcykg cHJpbnQgaTsgfTsgfSdgOyBcCi0rCWlmIHRlc3QgLXogIiQoRVRBR1NfQVJHUykkJHRhZ3MkJHVu aXF1ZSI7IHRoZW4gOjsgZWxzZSBcCi0rCSAgdGVzdCAtbiAiJCR1bmlxdWUiIHx8IHVuaXF1ZT0k JGVtcHR5X2ZpeDsgXAotKwkgICQoRVRBR1MpICQoRVRBR1NGTEFHUykgJChBTV9FVEFHU0ZMQUdT KSAkKEVUQUdTX0FSR1MpIFwKLSsJICAgICQkdGFncyAkJHVuaXF1ZTsgXAotKwlmaQotK2N0YWdz OiBDVEFHUwotK0NUQUdTOiBjdGFncy1yZWN1cnNpdmUgJChIRUFERVJTKSAkKFNPVVJDRVMpIGNv bmZpZy5oLmluICQoVEFHU19ERVBFTkRFTkNJRVMpIFwKLSsJCSQoVEFHU19GSUxFUykgJChMSVNQ KQotKwl0YWdzPTsgXAotKwlsaXN0PSckKFNPVVJDRVMpICQoSEVBREVSUykgY29uZmlnLmguaW4g JChMSVNQKSAkKFRBR1NfRklMRVMpJzsgXAotKwl1bmlxdWU9YGZvciBpIGluICQkbGlzdDsgZG8g XAotKwkgICAgaWYgdGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsgZWxzZSBlY2hvICQoc3Jj ZGlyKS8kJGk7IGZpOyBcCi0rCSAgZG9uZSB8IFwKLSsJICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9 IDE7IG5vbmVtcHR5ID0gMTsgfSBcCi0rCSAgICAgIEVORCB7IGlmIChub25lbXB0eSkgeyBmb3Ig KGkgaW4gZmlsZXMpIHByaW50IGk7IH07IH0nYDsgXAotKwl0ZXN0IC16ICIkKENUQUdTX0FSR1Mp JCR0YWdzJCR1bmlxdWUiIFwKLSsJICB8fCAkKENUQUdTKSAkKENUQUdTRkxBR1MpICQoQU1fQ1RB R1NGTEFHUykgJChDVEFHU19BUkdTKSBcCi0rCSAgICAgJCR0YWdzICQkdW5pcXVlCi0rCi0rR1RB R1M6Ci0rCWhlcmU9YCQoYW1fX2NkKSAkKHRvcF9idWlsZGRpcikgJiYgcHdkYCBcCi0rCSAgJiYg Y2QgJCh0b3Bfc3JjZGlyKSBcCi0rCSAgJiYgZ3RhZ3MgLWkgJChHVEFHU19BUkdTKSAkJGhlcmUK LSsKLStkaXN0Y2xlYW4tdGFnczoKLSsJLXJtIC1mIFRBR1MgSUQgR1RBR1MgR1JUQUdTIEdTWU1T IEdQQVRIIHRhZ3MKLSsKLStkaXN0ZGlyOiAkKERJU1RGSUxFUykKLSsJQHNyY2RpcnN0cmlwPWBl Y2hvICIkKHNyY2RpcikiIHwgc2VkICdzL1tdLlteJCRcXCpdL1xcXFwmL2cnYDsgXAotKwl0b3Bz cmNkaXJzdHJpcD1gZWNobyAiJCh0b3Bfc3JjZGlyKSIgfCBzZWQgJ3MvW10uW14kJFxcKl0vXFxc XCYvZydgOyBcCi0rCWxpc3Q9JyQoRElTVEZJTEVTKSc7IFwKLSsJICBkaXN0X2ZpbGVzPWBmb3Ig ZmlsZSBpbiAkJGxpc3Q7IGRvIGVjaG8gJCRmaWxlOyBkb25lIHwgXAotKwkgIHNlZCAtZSAic3xe JCRzcmNkaXJzdHJpcC98fDt0IiBcCi0rCSAgICAgIC1lICJzfF4kJHRvcHNyY2RpcnN0cmlwL3wk KHRvcF9idWlsZGRpcikvfDt0ImA7IFwKLSsJY2FzZSAkJGRpc3RfZmlsZXMgaW4gXAotKwkgICov KikgJChNS0RJUl9QKSBgZWNobyAiJCRkaXN0X2ZpbGVzIiB8IFwKLSsJCQkgICBzZWQgJy9cLy8h ZDtzfF58JChkaXN0ZGlyKS98O3MsL1teL10qJCQsLCcgfCBcCi0rCQkJICAgc29ydCAtdWAgOzsg XAotKwllc2FjOyBcCi0rCWZvciBmaWxlIGluICQkZGlzdF9maWxlczsgZG8gXAotKwkgIGlmIHRl c3QgLWYgJCRmaWxlIHx8IHRlc3QgLWQgJCRmaWxlOyB0aGVuIGQ9LjsgZWxzZSBkPSQoc3JjZGly KTsgZmk7IFwKLSsJICBpZiB0ZXN0IC1kICQkZC8kJGZpbGU7IHRoZW4gXAotKwkgICAgZGlyPWBl Y2hvICIvJCRmaWxlIiB8IHNlZCAtZSAncywvW14vXSokJCwsJ2A7IFwKLSsJICAgIGlmIHRlc3Qg LWQgJChzcmNkaXIpLyQkZmlsZSAmJiB0ZXN0ICQkZCAhPSAkKHNyY2Rpcik7IHRoZW4gXAotKwkg ICAgICBjcCAtcFIgJChzcmNkaXIpLyQkZmlsZSAkKGRpc3RkaXIpJCRkaXIgfHwgZXhpdCAxOyBc Ci0rCSAgICBmaTsgXAotKwkgICAgY3AgLXBSICQkZC8kJGZpbGUgJChkaXN0ZGlyKSQkZGlyIHx8 IGV4aXQgMTsgXAotKwkgIGVsc2UgXAotKwkgICAgdGVzdCAtZiAkKGRpc3RkaXIpLyQkZmlsZSBc Ci0rCSAgICB8fCBjcCAtcCAkJGQvJCRmaWxlICQoZGlzdGRpcikvJCRmaWxlIFwKLSsJICAgIHx8 IGV4aXQgMTsgXAotKwkgIGZpOyBcCi0rCWRvbmUKLSsJbGlzdD0nJChESVNUX1NVQkRJUlMpJzsg Zm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKLSsJICBpZiB0ZXN0ICIkJHN1YmRpciIgPSAuOyB0 aGVuIDo7IGVsc2UgXAotKwkgICAgdGVzdCAtZCAiJChkaXN0ZGlyKS8kJHN1YmRpciIgXAotKwkg ICAgfHwgJChNS0RJUl9QKSAiJChkaXN0ZGlyKS8kJHN1YmRpciIgXAotKwkgICAgfHwgZXhpdCAx OyBcCi0rCSAgICBkaXN0ZGlyPWAkKGFtX19jZCkgJChkaXN0ZGlyKSAmJiBwd2RgOyBcCi0rCSAg ICB0b3BfZGlzdGRpcj1gJChhbV9fY2QpICQodG9wX2Rpc3RkaXIpICYmIHB3ZGA7IFwKLSsJICAg IChjZCAkJHN1YmRpciAmJiBcCi0rCSAgICAgICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIFwKLSsJ ICAgICAgICB0b3BfZGlzdGRpcj0iJCR0b3BfZGlzdGRpciIgXAotKwkgICAgICAgIGRpc3RkaXI9 IiQkZGlzdGRpci8kJHN1YmRpciIgXAotKwkJYW1fX3JlbW92ZV9kaXN0ZGlyPTogXAotKwkJYW1f X3NraXBfbGVuZ3RoX2NoZWNrPTogXAotKwkgICAgICAgIGRpc3RkaXIpIFwKLSsJICAgICAgfHwg ZXhpdCAxOyBcCi0rCSAgZmk7IFwKLSsJZG9uZQotK2NoZWNrLWFtOiBhbGwtYW0KLStjaGVjazog Y2hlY2stcmVjdXJzaXZlCi0rYWxsLWFtOiBNYWtlZmlsZSBjb25maWcuaAotK2luc3RhbGxkaXJz OiBpbnN0YWxsZGlycy1yZWN1cnNpdmUKLStpbnN0YWxsZGlycy1hbToKLStpbnN0YWxsOiBpbnN0 YWxsLXJlY3Vyc2l2ZQotK2luc3RhbGwtZXhlYzogaW5zdGFsbC1leGVjLXJlY3Vyc2l2ZQotK2lu c3RhbGwtZGF0YTogaW5zdGFsbC1kYXRhLXJlY3Vyc2l2ZQotK3VuaW5zdGFsbDogdW5pbnN0YWxs LXJlY3Vyc2l2ZQotKwotK2luc3RhbGwtYW06IGFsbC1hbQotKwlAJChNQUtFKSAkKEFNX01BS0VG TEFHUykgaW5zdGFsbC1leGVjLWFtIGluc3RhbGwtZGF0YS1hbQotKwotK2luc3RhbGxjaGVjazog aW5zdGFsbGNoZWNrLXJlY3Vyc2l2ZQotK2luc3RhbGwtc3RyaXA6Ci0rCSQoTUFLRSkgJChBTV9N QUtFRkxBR1MpIElOU1RBTExfUFJPR1JBTT0iJChJTlNUQUxMX1NUUklQX1BST0dSQU0pIiBcCi0r CSAgaW5zdGFsbF9zaF9QUk9HUkFNPSIkKElOU1RBTExfU1RSSVBfUFJPR1JBTSkiIElOU1RBTExf U1RSSVBfRkxBRz0tcyBcCi0rCSAgYHRlc3QgLXogJyQoU1RSSVApJyB8fCBcCi0rCSAgICBlY2hv ICJJTlNUQUxMX1BST0dSQU1fRU5WPVNUUklQUFJPRz0nJChTVFJJUCknImAgaW5zdGFsbAotK21v c3RseWNsZWFuLWdlbmVyaWM6Ci0rCi0rY2xlYW4tZ2VuZXJpYzoKLSsKLStkaXN0Y2xlYW4tZ2Vu ZXJpYzoKLSsJLXRlc3QgLXogIiQoQ09ORklHX0NMRUFOX0ZJTEVTKSIgfHwgcm0gLWYgJChDT05G SUdfQ0xFQU5fRklMRVMpCi0rCi0rbWFpbnRhaW5lci1jbGVhbi1nZW5lcmljOgotKwlAZWNobyAi VGhpcyBjb21tYW5kIGlzIGludGVuZGVkIGZvciBtYWludGFpbmVycyB0byB1c2UiCi0rCUBlY2hv ICJpdCBkZWxldGVzIGZpbGVzIHRoYXQgbWF5IHJlcXVpcmUgc3BlY2lhbCB0b29scyB0byByZWJ1 aWxkLiIKLSsJLXRlc3QgLXogIiQoTUFJTlRBSU5FUkNMRUFORklMRVMpIiB8fCBybSAtZiAkKE1B SU5UQUlORVJDTEVBTkZJTEVTKQotK2NsZWFuOiBjbGVhbi1yZWN1cnNpdmUKLSsKLStjbGVhbi1h bTogY2xlYW4tZ2VuZXJpYyBjbGVhbi1saWJ0b29sIG1vc3RseWNsZWFuLWFtCi0rCi0rZGlzdGNs ZWFuOiBkaXN0Y2xlYW4tcmVjdXJzaXZlCi0rCS1ybSAtZiBNYWtlZmlsZQotK2Rpc3RjbGVhbi1h bTogY2xlYW4tYW0gZGlzdGNsZWFuLWdlbmVyaWMgZGlzdGNsZWFuLWhkciBkaXN0Y2xlYW4tdGFn cwotKwotK2R2aTogZHZpLXJlY3Vyc2l2ZQotKwotK2R2aS1hbToKLSsKLStodG1sOiBodG1sLXJl Y3Vyc2l2ZQotKwotK2luZm86IGluZm8tcmVjdXJzaXZlCi0rCi0raW5mby1hbToKLSsKLStpbnN0 YWxsLWRhdGEtYW06Ci0rCi0raW5zdGFsbC1kdmk6IGluc3RhbGwtZHZpLXJlY3Vyc2l2ZQotKwot K2luc3RhbGwtZXhlYy1hbToKLSsKLStpbnN0YWxsLWh0bWw6IGluc3RhbGwtaHRtbC1yZWN1cnNp dmUKLSsKLStpbnN0YWxsLWluZm86IGluc3RhbGwtaW5mby1yZWN1cnNpdmUKLSsKLStpbnN0YWxs LW1hbjoKLSsKLStpbnN0YWxsLXBkZjogaW5zdGFsbC1wZGYtcmVjdXJzaXZlCi0rCi0raW5zdGFs bC1wczogaW5zdGFsbC1wcy1yZWN1cnNpdmUKLSsKLStpbnN0YWxsY2hlY2stYW06Ci0rCi0rbWFp bnRhaW5lci1jbGVhbjogbWFpbnRhaW5lci1jbGVhbi1yZWN1cnNpdmUKLSsJLXJtIC1mIE1ha2Vm aWxlCi0rbWFpbnRhaW5lci1jbGVhbi1hbTogZGlzdGNsZWFuLWFtIG1haW50YWluZXItY2xlYW4t Z2VuZXJpYwotKwotK21vc3RseWNsZWFuOiBtb3N0bHljbGVhbi1yZWN1cnNpdmUKLSsKLSttb3N0 bHljbGVhbi1hbTogbW9zdGx5Y2xlYW4tZ2VuZXJpYyBtb3N0bHljbGVhbi1saWJ0b29sCi0rCi0r cGRmOiBwZGYtcmVjdXJzaXZlCi0rCi0rcGRmLWFtOgotKwotK3BzOiBwcy1yZWN1cnNpdmUKLSsK LStwcy1hbToKLSsKLSt1bmluc3RhbGwtYW06Ci0rCi0rLk1BS0U6ICQoUkVDVVJTSVZFX0NMRUFO X1RBUkdFVFMpICQoUkVDVVJTSVZFX1RBUkdFVFMpIGluc3RhbGwtYW0gXAotKwlpbnN0YWxsLXN0 cmlwCi0rCi0rLlBIT05ZOiAkKFJFQ1VSU0lWRV9DTEVBTl9UQVJHRVRTKSAkKFJFQ1VSU0lWRV9U QVJHRVRTKSBDVEFHUyBHVEFHUyBcCi0rCWFsbCBhbGwtYW0gY2hlY2sgY2hlY2stYW0gY2xlYW4g Y2xlYW4tZ2VuZXJpYyBjbGVhbi1saWJ0b29sIFwKLSsJY3RhZ3MgY3RhZ3MtcmVjdXJzaXZlIGRp c3RjbGVhbiBkaXN0Y2xlYW4tZ2VuZXJpYyBcCi0rCWRpc3RjbGVhbi1oZHIgZGlzdGNsZWFuLWxp YnRvb2wgZGlzdGNsZWFuLXRhZ3MgZGlzdGRpciBkdmkgXAotKwlkdmktYW0gaHRtbCBodG1sLWFt IGluZm8gaW5mby1hbSBpbnN0YWxsIGluc3RhbGwtYW0gXAotKwlpbnN0YWxsLWRhdGEgaW5zdGFs bC1kYXRhLWFtIGluc3RhbGwtZHZpIGluc3RhbGwtZHZpLWFtIFwKLSsJaW5zdGFsbC1leGVjIGlu c3RhbGwtZXhlYy1hbSBpbnN0YWxsLWh0bWwgaW5zdGFsbC1odG1sLWFtIFwKLSsJaW5zdGFsbC1p bmZvIGluc3RhbGwtaW5mby1hbSBpbnN0YWxsLW1hbiBpbnN0YWxsLXBkZiBcCi0rCWluc3RhbGwt cGRmLWFtIGluc3RhbGwtcHMgaW5zdGFsbC1wcy1hbSBpbnN0YWxsLXN0cmlwIFwKLSsJaW5zdGFs bGNoZWNrIGluc3RhbGxjaGVjay1hbSBpbnN0YWxsZGlycyBpbnN0YWxsZGlycy1hbSBcCi0rCW1h aW50YWluZXItY2xlYW4gbWFpbnRhaW5lci1jbGVhbi1nZW5lcmljIG1vc3RseWNsZWFuIFwKLSsJ bW9zdGx5Y2xlYW4tZ2VuZXJpYyBtb3N0bHljbGVhbi1saWJ0b29sIHBkZiBwZGYtYW0gcHMgcHMt YW0gXAotKwl0YWdzIHRhZ3MtcmVjdXJzaXZlIHVuaW5zdGFsbCB1bmluc3RhbGwtYW0KLSsKLStA U0VUX01BS0VACi0rIyBUZWxsIHZlcnNpb25zIFszLjU5LDMuNjMpIG9mIEdOVSBtYWtlIHRvIG5v dCBleHBvcnQgYWxsIHZhcmlhYmxlcy4KLSsjIE90aGVyd2lzZSBhIHN5c3RlbSBsaW1pdCAoZm9y IFN5c1YgYXQgbGVhc3QpIG1heSBiZSBleGNlZWRlZC4KLSsuTk9FWFBPUlQ6Ci1kaWZmIC1OdXIg c29jaS0zLjAuMF80LXBhY2svc29jaS1jb25maWcuaW4gc29jaS0zLjAuMF90cmVwMzAwL3NvY2kt Y29uZmlnLmluCi0tLS0gc29jaS0zLjAuMF80LXBhY2svc29jaS1jb25maWcuaW4JMTk3MC0wMS0w MSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS1j b25maWcuaW4JMjAwOS0wNS0yMiAyMjo1NDoyMi4wMDAwMDAwMDAgKzAyMDAKLUBAIC0wLDAgKzEs NzYgQEAKLSsjIS9iaW4vc2gKLSsKLStwcmVmaXg9QHByZWZpeEAKLStleGVjX3ByZWZpeD0ke3By ZWZpeH0KLStsaWJkaXI9QGxpYmRpckAKLStpbmNsdWRlZGlyPUBpbmNsdWRlZGlyQAotKwotK3Vz YWdlKCkKLSt7Ci0rICBjYXQgPDxFT0YKLStVc2FnZTogQFBBQ0tBR0VALWNvbmZpZyBbT1BUSU9O XQotKwotK0tub3duIHZhbHVlcyBmb3IgT1BUSU9OIGFyZToKLSsKLSsgIC0tcHJlZml4ICAgICAg ICBwcmludCBAUEFDS0FHRV9OQU1FQCBpbnN0YWxsYXRpb24gcHJlZml4Ci0rICAtLWxpYnMgICAg ICAgICAgcHJpbnQgbGlicmFyeSBsaW5raW5nIGluZm9ybWF0aW9uCi0rICAtLWNmbGFncyAgICAg ICAgcHJpbnQgcHJlLXByb2Nlc3NvciBhbmQgY29tcGlsZXIgZmxhZ3MKLSsgIC0taGVscCAgICAg ICAgICBkaXNwbGF5IHRoaXMgaGVscCBhbmQgZXhpdAotKyAgLS12ZXJzaW9uICAgICAgIG91dHB1 dCB2ZXJzaW9uIGluZm9ybWF0aW9uCi0rRU9GCi0rICBleGl0ICQxCi0rfQotKwotK2lmIHRlc3Qg JCMgLWVxIDA7IHRoZW4KLSsgIHVzYWdlIDEKLStmaQotKwotK2NmbGFncz1mYWxzZQotK2xpYnM9 ZmFsc2UKLSsKLSt3aGlsZSB0ZXN0ICQjIC1ndCAwOyBkbwotKyAgY2FzZSAiJDEiIGluCi0rICAt Kj0qKSBvcHRhcmc9YGVjaG8gIiQxIiB8IHNlZCAncy9bLV9hLXpBLVowLTldKj0vLydgIDs7Ci0r ICAqKSBvcHRhcmc9IDs7Ci0rICBlc2FjCi0rCi0rICBjYXNlICQxIGluCi0rICAgIC0tcHJlZml4 PSopCi0rICAgICAgcHJlZml4PSRvcHRhcmcKLSsgICAgICA7OwotKwotKyAgICAtLXByZWZpeCkK LSsgICAgICBlY2hvICRwcmVmaXgKLSsgICAgICA7OwotKwotKyAgICAtLXZlcnNpb24pCi0rICAg ICAgZWNobyBAVkVSU0lPTkAKLSsgICAgICA7OwotKwotKyAgICAtLWhlbHApCi0rICAgICAgdXNh Z2UgMAotKyAgICAgIDs7Ci0rCi0rICAgIC0tY2ZsYWdzKQotKyAgICAgIGlmIFsgIiR7cHJlZml4 fSIgIT0gIi91c3IiIF07IHRoZW4KLSsgICAgICAgIGVjaG8gLUkke2luY2x1ZGVkaXJ9Ci0rICAg ICAgZWxzZQotKyAgICAgICAgZWNobwotKyAgICAgIGZpCi0rICAgICAgOzsKLSsKLSsgICAgLS1s aWJzKQotKyAgICAgIGlmIFsgIiR7cHJlZml4fSIgIT0gIi91c3IiIF07IHRoZW4KLSsgICAgICAg IGVjaG8gLUwke2xpYmRpcn0gLWxAUEFDS0FHRUAKLSsgICAgICBlbHNlCi0rICAgICAgICBlY2hv IC1sQFBBQ0tBR0VACi0rICAgICAgZmkKLSsgICAgICA7OwotKwotKyAgICAqKQotKyAgICAgIHVz YWdlCi0rICAgICAgZXhpdCAxCi0rICAgICAgOzsKLSsgIGVzYWMKLSsgIHNoaWZ0Ci0rZG9uZQot ZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kubTQgc29jaS0zLjAuMF90cmVwMzAwL3Nv Y2kubTQKLS0tLSBzb2NpLTMuMC4wXzQtcGFjay9zb2NpLm00CTE5NzAtMDEtMDEgMDE6MDA6MDAu MDAwMDAwMDAwICswMTAwCi0rKysgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kubTQJMjAwOS0wNS0y MiAyMjo1NDoyMi4wMDAwMDAwMDAgKzAyMDAKLUBAIC0wLDAgKzEsMTE4IEBACi0rZG5sIEBzeW5v cHNpcyBBWF9TT0NJCi0rZG5sIAotK2RubCBUaGlzIG1hY3JvIHRyaWVzIHRvIGZpbmQgU29jaSBD IEFQSSBoZWFkZXIgYW5kIGxpYnJhcnkgbG9jYXRpb25zLgotK2RubAotK2RubCBXZSBkZWZpbmUg dGhlIGZvbGxvd2luZyBjb25maWd1cmUgc2NyaXB0IGZsYWdzOgotK2RubAotK2RubAktLXdpdGgt c29jaTogR2l2ZSBwcmVmaXggZm9yIGJvdGggbGlicmFyeSBhbmQgaGVhZGVycywgYW5kIHRyeQot K2RubAkJICAgICB0byBndWVzcyBzdWJkaXJlY3RvcnkgbmFtZXMgZm9yIGVhY2guICAoZS5nLiBh ZGQgL2xpYiBhbmQKLStkbmwJCSAgICAgL2luY2x1ZGUgb250byBnaXZlbiBkaXIgbmFtZXMsIGFu ZCBvdGhlciBjb21tb24gc2NoZW1lcy4pCi0rZG5sCi0rZG5sIEB2ZXJzaW9uIDEuMywgMjAwOS8w NS8wMgotK2RubCBAYXV0aG9yIERlbmlzIEFybmF1ZCA8ZGVuaXNfYXJuYXVkQHVzZXJzLnNvdXJj ZWZvcmdlLm5ldD4KLStkbmwKLStkbmwgQHZlcnNpb24gMS4yLCAyMDA3LzAyLzIwCi0rZG5sIEBh dXRob3IgV2FycmVuIFlvdW5nIDxzb2NpcHBAZXRyLXVzYS5jb20+Ci0rCi0rQUNfREVGVU4oW0FY X1NPQ0ldLAotK1sKLSsjCi0rIyBTZXQgdXAgY29uZmlndXJlIHNjcmlwdCBtYWNyb3MKLSsjCi0r QUNfQVJHX1dJVEgoc29jaSwKLSsJWy0td2l0aC1zb2NpPTxwYXRoPiAgICAgcm9vdCBkaXJlY3Rv cnkgcGF0aCBvZiBTb2NpIGluc3RhbGxhdGlvbl0sCi0rCVtTT0NJX2xpYl9jaGVjaz0iJHdpdGhf c29jaS9saWI2NC9zb2NpICR3aXRoX3NvY2kvbGliL3NvY2kgJHdpdGhfc29jaS9saWI2NCAkd2l0 aF9zb2NpL2xpYiIKLSsJU09DSV9pbmNfY2hlY2s9IiR3aXRoX3NvY2kvaW5jbHVkZSAkd2l0aF9z b2NpL2luY2x1ZGUvc29jaSJdLAotKwlbU09DSV9saWJfY2hlY2s9Ii91c3IvbGliNjQgL3Vzci9s aWIgL3Vzci9saWI2NC9zb2NpIC91c3IvbGliL3NvY2kgL3Vzci9sb2NhbC9saWI2NCAvdXNyL2xv Y2FsL2xpYiAvb3B0L3NvY2kvbGliNjQgL29wdC9zb2NpL2xpYiAvdXNyL2xvY2FsL2xpYjY0L3Nv Y2kgL3Vzci9sb2NhbC9saWIvc29jaSAvdXNyL2xvY2FsL3NvY2kvbGliNjQgL3Vzci9sb2NhbC9z b2NpL2xpYiAvb3B0L3NvY2kvbGliNjQvc29jaSAvb3B0L3NvY2kvbGliL3NvY2kiCi0rCVNPQ0lf aW5jX2NoZWNrPSIvdXNyL2luY2x1ZGUgL3Vzci9pbmNsdWRlL3NvY2kgL3Vzci9sb2NhbC9pbmNs dWRlIC9vcHQvc29jaS9pbmNsdWRlIC91c3IvbG9jYWwvaW5jbHVkZS9zb2NpIC91c3IvbG9jYWwv c29jaS9pbmNsdWRlIC91c3IvbG9jYWwvc29jaS9pbmNsdWRlL3NvY2kgL29wdC9zb2NpL2luY2x1 ZGUvc29jaSJdKQotKwotKyMgU09DSSBsaWJyYXJ5Ci0rU09DSV9DT1JFX0xJQj1zb2NpX2NvcmUK LStTT0NJX01ZU1FMX0xJQj1zb2NpX215c3FsCi0rCi0rIwotKyMgTG9vayBmb3IgU29jaSBDb3Jl IEFQSSBsaWJyYXJ5Ci0rIwotK0FDX01TR19DSEVDS0lORyhbZm9yIFNvY2kgbGlicmFyeSBkaXJl Y3RvcnldKQotK1NPQ0lfbGliZGlyPQotK2ZvciBtIGluICRTT0NJX2xpYl9jaGVjawotK2RvCi0r CWlmIHRlc3QgLWQgIiRtIiAmJiBcCi0rCQkodGVzdCAtZiAiJG0vbGliJFNPQ0lfQ09SRV9MSUIu c28iIHx8IHRlc3QgLWYgIiRtL2xpYiRTT0NJX0NPUkVfTElCLmEiKQotKwl0aGVuCi0rCQlTT0NJ X2xpYmRpcj0kbQotKwkJYnJlYWsKLSsJZmkKLStkb25lCi0rCi0raWYgdGVzdCAteiAiJFNPQ0lf bGliZGlyIgotK3RoZW4KLSsJQUNfTVNHX0VSUk9SKFtEaWRuJ3QgZmluZCAkU09DSV9DT1JFX0xJ QiBsaWJyYXJ5IGluICckU09DSV9saWJfY2hlY2snXSkKLStmaQotKwotK2Nhc2UgIiRTT0NJX2xp YmRpciIgaW4KLSsJLyogKSA7OwotKwkqICkgIEFDX01TR19FUlJPUihbVGhlIFNvY2kgbGlicmFy eSBkaXJlY3RvcnkgKCRTT0NJX2xpYmRpcikgbXVzdCBiZSBhbiBhYnNvbHV0ZSBwYXRoLl0pIDs7 Ci0rZXNhYwotKwotK0FDX01TR19SRVNVTFQoWyRTT0NJX2xpYmRpcl0pCi0rCi0rY2FzZSAiJFNP Q0lfbGliZGlyIiBpbgotKyAgL3Vzci9saWI2NCkgOzsKLSsgIC91c3IvbGliKSA7OwotKyAgKikg U09DSV9MSUJTPSItTCR7U09DSV9saWJkaXJ9IiA7OwotK2VzYWMKLStMREZMQUdTPSIkTERGTEFH UyAke1NPQ0lfTElCU30iCi0rCi0rCi0rIwotKyMgTG9vayBmb3IgU29jaSBDb3JlIEFQSSBoZWFk ZXJzCi0rIwotK0FDX01TR19DSEVDS0lORyhbZm9yIFNvY2kgaW5jbHVkZSBkaXJlY3RvcnldKQot K1NPQ0lfaW5jZGlyPQotK2ZvciBtIGluICRTT0NJX2luY19jaGVjawotK2RvCi0rCWlmIHRlc3Qg LWQgIiRtIiAmJiB0ZXN0IC1mICIkbS9zb2NpL2NvcmUvc29jaS5oIgotKwl0aGVuCi0rCQlTT0NJ X2luY2Rpcj0kbQotKwkJYnJlYWsKLSsJZmkKLStkb25lCi0rCi0raWYgdGVzdCAteiAiJFNPQ0lf aW5jZGlyIgotK3RoZW4KLSsJQUNfTVNHX0VSUk9SKFtEaWRuJ3QgZmluZCB0aGUgU29jaSBpbmNs dWRlIGRpciBpbiAnJFNPQ0lfaW5jX2NoZWNrJ10pCi0rZmkKLSsKLStjYXNlICIkU09DSV9pbmNk aXIiIGluCi0rCS8qICkgOzsKLSsJKiApICBBQ19NU0dfRVJST1IoW1RoZSBTb2NpIGluY2x1ZGUg ZGlyZWN0b3J5ICgkU09DSV9pbmNkaXIpIG11c3QgYmUgYW4gYWJzb2x1dGUgcGF0aC5dKSA7Owot K2VzYWMKLSsKLStBQ19NU0dfUkVTVUxUKFskU09DSV9pbmNkaXJdKQotKwotK2Nhc2UgIiRTT0NJ X2luY2RpciIgaW4KLSsgIC91c3IvaW5jbHVkZSkgOzsKLSsgICopIFNPQ0lfQ0ZMQUdTPSItSSR7 U09DSV9pbmNkaXJ9IiA7OwotK2VzYWMKLSsKLStTT0NJX0xJQlM9IiR7U09DSV9MSUJTfSAtbCR7 U09DSV9DT1JFX0xJQn0gLWwke1NPQ0lfTVlTUUxfTElCfSAtbGRsIgotKwotK0FDX1NVQlNUKFNP Q0lfQ0ZMQUdTKQotK0FDX1NVQlNUKFNPQ0lfTElCUykKLSsKLSsjIFRlc3QgbGlua2luZyB3aXRo IHNvY2kgKG5vdGUgdGhhdCBpdCBuZWVkcyBNeVNRTCBjbGllbnQgdG8gaGF2ZSBiZWVuIGRlZmlu ZWQKLSsjIGJlZm9yZSkKLStzYXZlX0xJQlM9IiRMSUJTIgotK2lmIHRlc3QgLXogIiRNWVNRTF9M SUJTIgotK3RoZW4KLSsJTVlTUUxfTElCUz0iLUwvdXNyL2xpYjY0L215c3FsIC1ML3Vzci9saWIv bXlzcWwgLWxteXNxbGNsaWVudCIKLStmaQotK0xJQlM9IiRMSUJTICRNWVNRTF9MSUJTICRTT0NJ X0xJQlMiCi0rQUNfQ0hFQ0tfTElCKCRTT0NJX0NPUkVfTElCLCBzb2NpX2JlZ2luLAotKwkgICAg IFtdLCAKLSsgICAgICAgICAgICAgW0FDX01TR19FUlJPUihbQ291bGQgbm90IGZpbmQgd29ya2lu ZyBTb2NpIGNsaWVudCBsaWJyYXJ5IV0pXQotKwkgICAgICkKLStMSUJTPSIkc2F2ZV9MSUJTIgot K0FDX1NVQlNUKFNPQ0lfQ09SRV9MSUIpCi0rXSkgZG5sIEFYX1NPQ0kKLWRpZmYgLU51ciBzb2Np LTMuMC4wXzQtcGFjay9zb2NpLnBjLmluIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpLnBjLmluCi0t LS0gc29jaS0zLjAuMF80LXBhY2svc29jaS5wYy5pbgkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAw MDAwMCArMDEwMAotKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpLnBjLmluCTIwMDktMDUtMjIg MjI6NTQ6MjIuMDAwMDAwMDAwICswMjAwCi1AQCAtMCwwICsxLDExIEBACi0rcHJlZml4PUBwcmVm aXhACi0rZXhlY19wcmVmaXg9QGV4ZWNfcHJlZml4QAotK2xpYmRpcj1AbGliZGlyQAotK2luY2x1 ZGVkaXI9QGluY2x1ZGVkaXJACi0rCi0rTmFtZTogQFBBQ0tBR0VfTkFNRUAKLStEZXNjcmlwdGlv bjogVGhlIGRhdGFiYXNlIGFjY2VzcyBsaWJyYXJ5IGZvciBDKysgcHJvZ3JhbW1lcnMKLStWZXJz aW9uOiBAUEFDS0FHRV9WRVJTSU9OQAotK1VSTDogaHR0cDovL0BQQUNLQUdFQC5zb3VyY2Vmb3Jn ZS5uZXQKLStMaWJzOiAtTCR7bGliZGlyfSAtbEBQQUNLQUdFQF9jb3JlIEBMREZMQUdTQCBATElC U0AKLStDZmxhZ3M6IC1JJHtpbmNsdWRlZGlyfQotZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNr L3NvY2kuc3BlYy5pbiBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS5zcGVjLmluCi0tLS0gc29jaS0z LjAuMF80LXBhY2svc29jaS5zcGVjLmluCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICsw MTAwCi0rKysgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kuc3BlYy5pbgkyMDA5LTA1LTIzIDA5OjU4 OjM4LjAwMDAwMDAwMCArMDIwMAotQEAgLTAsMCArMSwzMjcgQEAKLSsjCi0rIyMKLSsjIERlZmF1 bHQgdmFsdWVzIGFyZSAtLXdpdGggbXlzcWwgLS13aXRoIHBvc3RncmVzcWwgLS13aXRob3V0IG9y YWNsZSAKLSsjIE5vdGUgdGhhdCwgZm9yIE9yYWNsZSwgd2hlbiBlbmFibGVkLCB0aGUgZm9sbG93 aW5nIG9wdGlvbnMgc2hvdWxkCi0rIyBhbHNvIGJlIGdpdmVuOgotKyMgLS13aXRoLW9yYWNsZS1p bmNsdWRlPS9vcHQvb3JhY2xlL2FwcC9vcmFjbGUvcHJvZHVjdC8xMS4xLjAvZGJfMS9yZGJtcy9w dWJsaWMKLSsjIC0td2l0aC1vcmFjbGUtbGliPS9vcHQvb3JhY2xlL2FwcC9vcmFjbGUvcHJvZHVj dC8xMS4xLjAvZGJfMS9saWIKLSsjIElmIHRoZSBtYWNyb3MgYXJlIGRlZmluZWQsIHJlZGVmaW5l IHRoZW0gd2l0aCB0aGUgY29ycmVjdCBjb21waWxhdGlvbiBmbGFncy4KLSslYmNvbmRfd2l0aG91 dCBteXNxbAotKyViY29uZF93aXRob3V0IHBvc3RncmVzcWwKLSslYmNvbmRfd2l0aCBvcmFjbGUK LSsKLSslZGVmaW5lIF9kZWZhdWx0X29yYWNsZV9kaXIgL29wdC9vcmFjbGUvYXBwL29yYWNsZS9w cm9kdWN0LzExLjEuMC9kYl8xCi0rJXshP193aXRoX29yYWNsZV9pbmNkaXI6ICVkZWZpbmUgX3dp dGhfb3JhY2xlX2luY2RpciAtLXdpdGgtb3JhY2xlLWluY2x1ZGU9JXtfZGVmYXVsdF9vcmFjbGVf ZGlyfS9yZGJtcy9wdWJsaWN9Ci0rJXshP193aXRoX29yYWNsZV9saWJkaXI6ICVkZWZpbmUgX3dp dGhfb3JhY2xlX2xpYmRpciAtLXdpdGgtb3JhY2xlLWxpYj0le19kZWZhdWx0X29yYWNsZV9kaXJ9 L2xpYn0KLSsjCi0rIyMKLSsjCi0rTmFtZTogICAgICAgICAgIEBQQUNLQUdFQAotK1ZlcnNpb246 ICAgICAgICBAVkVSU0lPTkAKLStSZWxlYXNlOiAgICAgICAgQFJQTV9SRUxFQVNFQCV7P2Rpc3R9 Ci0rCi0rU3VtbWFyeTogICAgICAgIFRoZSBkYXRhYmFzZSBhY2Nlc3MgbGlicmFyeSBmb3IgQysr IHByb2dyYW1tZXJzCi0rCi0rR3JvdXA6ICAgICAgICAgIFN5c3RlbSBFbnZpcm9ubWVudC9MaWJy YXJpZXMKLStMaWNlbnNlOiAgICAgICAgQm9vc3QKLStVUkw6ICAgICAgICAgICAgaHR0cDovLyV7 bmFtZX0uc291cmNlZm9yZ2UubmV0Ci0rU291cmNlMDogICAgICAgIGh0dHA6Ly9kb3dubG9hZHMu c291cmNlZm9yZ2UubmV0L3NvY2kvJXtuYW1lfS0le3ZlcnNpb259LnRhci5negotKyMgVGhhdCBw YXRjaCB3aWxsIGJlIHN1Ym1pdHRlZCB1cHN0cmVhbQotK1BhdGNoMDogICAgICAgICAle25hbWV9 LSV7dmVyc2lvbn0tZml4LWdjYzQzLWNvbXBhdGliaWxpdHkucGF0Y2gKLSsjIFRoYXQgcGF0Y2gg d2lsbCBiZSBzdWJtaXR0ZWQgdXBzdHJlYW0KLStQYXRjaDE6ICAgICAgICAgJXtuYW1lfS0le3Zl cnNpb259LWZpeC1nbnUtYXV0b3Rvb2xzLWNvbXBhdGliaWxpdHkucGF0Y2gKLStCdWlsZFJvb3Q6 ICAgICAgJXtfdG1wcGF0aH0vJXtuYW1lfS0le3ZlcnNpb259LSV7cmVsZWFzZX0tcm9vdC0lKCV7 X19pZF91fSAtbikKLSsKLStCdWlsZFJlcXVpcmVzOiAgYm9vc3QtZGV2ZWwKLSsjQnVpbGRSZXF1 aXJlczogIGNwcHVuaXQtZGV2ZWwgPj0gMS4xMAotK0J1aWxkUmVxdWlyZXM6ICBsaWJ0b29sCi0r I1JlcXVpcmVzOiAgICAgICAKLSsKLSslZGVzY3JpcHRpb24KLStAUEFDS0FHRV9OQU1FQCBpcyBh IEMrKyBkYXRhYmFzZSBhY2Nlc3MgbGlicmFyeSB0aGF0IHByb3ZpZGVzIHRoZQotK2lsbHVzaW9u IG9mIGVtYmVkZGluZyBTUUwgaW4gcmVndWxhciBDKysgY29kZSwgc3RheWluZyBlbnRpcmVseSB3 aXRoaW4KLSt0aGUgQysrIHN0YW5kYXJkLgotKwotKwotKyV7P3dpdGhfbXlzcWw6JXBhY2thZ2Ug ICAgICAgIG15c3FsCi0rU3VtbWFyeTogICAgICAgIE15U1FMIGJhY2tlbmQgZm9yICV7bmFtZX0K LStHcm91cDogICAgICAgICAgU3lzdGVtIEVudmlyb25tZW50L0xpYnJhcmllcwotK1JlcXVpcmVz OiAgICAgICAle25hbWV9ID0gJXt2ZXJzaW9ufS0le3JlbGVhc2V9Ci0rQnVpbGRSZXF1aXJlczog IG15c3FsLWRldmVsID49IDUuMAotKwotKyVkZXNjcmlwdGlvbiAgICBteXNxbAotK1RoaXMgcGFj a2FnZSBjb250YWlucyB0aGUgTXlTUUwgYmFja2VuZCBmb3IgQFBBQ0tBR0VfTkFNRUAsIGkuZS4s Ci0rZHluYW1pYyBsaWJyYXJ5IHNwZWNpZmljIHRvIHRoZSBNeVNRTCBkYXRhYmFzZS4gSWYgeW91 IHdvdWxkIGxpa2UgdG8KLSt1c2UgQFBBQ0tBR0VfTkFNRUAgaW4geW91ciBwcm9ncmFtcyB3aXRo IE15U1FMLCB5b3Ugd2lsbCBuZWVkIHRvCi0raW5zdGFsbCAle25hbWV9LW15c3FsLn0KLSsKLSsl ez93aXRoX3Bvc3RncmVzcWw6JXBhY2thZ2UgICAgICAgIHBvc3RncmVzcWwKLStTdW1tYXJ5OiAg ICAgICAgUG9zdEdyZVNRTCBiYWNrZW5kIGZvciAle25hbWV9Ci0rR3JvdXA6ICAgICAgICAgIFN5 c3RlbSBFbnZpcm9ubWVudC9MaWJyYXJpZXMKLStSZXF1aXJlczogICAgICAgJXtuYW1lfSA9ICV7 dmVyc2lvbn0tJXtyZWxlYXNlfQotK0J1aWxkUmVxdWlyZXM6ICBwb3N0Z3Jlc3FsLWRldmVsID49 IDcuMQotKwotKyVkZXNjcmlwdGlvbiAgICBwb3N0Z3Jlc3FsCi0rVGhpcyBwYWNrYWdlIGNvbnRh aW5zIHRoZSBQb3N0R3JlU1FMIGJhY2tlbmQgZm9yIEBQQUNLQUdFX05BTUVALCBpLmUuLAotK2R5 bmFtaWMgbGlicmFyeSBzcGVjaWZpYyB0byB0aGUgUG9zdEdyZVNRTCBkYXRhYmFzZS4gSWYgeW91 IHdvdWxkIGxpa2UKLSt0byB1c2UgQFBBQ0tBR0VfTkFNRUAgaW4geW91ciBwcm9ncmFtcyB3aXRo IFBvc3RHcmVTUUwsIHlvdSB3aWxsIG5lZWQgdG8KLStpbnN0YWxsICV7bmFtZX0tcG9zdGdyZXNx bC59Ci0rCi0rJXs/d2l0aF9vcmFjbGU6JXBhY2thZ2UgICAgICAgIG9yYWNsZQotK1N1bW1hcnk6 ICAgICAgICBPcmFjbGUgYmFja2VuZCBmb3IgJXtuYW1lfQotK0dyb3VwOiAgICAgICAgICBTeXN0 ZW0gRW52aXJvbm1lbnQvTGlicmFyaWVzCi0rUmVxdWlyZXM6ICAgICAgICV7bmFtZX0gPSAle3Zl cnNpb259LSV7cmVsZWFzZX0KLSsKLSslZGVzY3JpcHRpb24gICAgb3JhY2xlCi0rVGhpcyBwYWNr YWdlIGNvbnRhaW5zIHRoZSBPcmFjbGUgYmFja2VuZCBmb3IgQFBBQ0tBR0VfTkFNRUAsIGkuZS4s Ci0rZHluYW1pYyBsaWJyYXJ5IHNwZWNpZmljIHRvIHRoZSBPcmFjbGUgZGF0YWJhc2UuIElmIHlv dSB3b3VsZCBsaWtlIHRvCi0rdXNlIEBQQUNLQUdFX05BTUVAIGluIHlvdXIgcHJvZ3JhbXMgd2l0 aCBPcmFjbGUsIHlvdSB3aWxsIG5lZWQgdG8gaW5zdGFsbAotKyV7bmFtZX0tb3JhY2xlLn0KLSsK LSsKLSslcGFja2FnZSAgICAgICAgZGV2ZWwKLStTdW1tYXJ5OiAgICAgICAgSGVhZGVyIGZpbGVz LCBsaWJyYXJpZXMgYW5kIGRldmVsb3BtZW50IGRvY3VtZW50YXRpb24gZm9yICV7bmFtZX0KLStH cm91cDogICAgICAgICAgRGV2ZWxvcG1lbnQvTGlicmFyaWVzCi0rUmVxdWlyZXM6ICAgICAgICV7 bmFtZX0gPSAle3ZlcnNpb259LSV7cmVsZWFzZX0KLStSZXF1aXJlczogICAgICAgcGtnY29uZmln Ci0rCi0rJWRlc2NyaXB0aW9uICAgIGRldmVsCi0rVGhpcyBwYWNrYWdlIGNvbnRhaW5zIHRoZSBo ZWFkZXIgZmlsZXMsIGR5bmFtaWMgbGlicmFyaWVzIGFuZAotK2RldmVsb3BtZW50IGRvY3VtZW50 YXRpb24gZm9yICV7bmFtZX0uIElmIHlvdSB3b3VsZCBsaWtlIHRvIGRldmVsb3AKLStwcm9ncmFt cyB1c2luZyAle25hbWV9LCB5b3Ugd2lsbCBuZWVkIHRvIGluc3RhbGwgJXtuYW1lfS1kZXZlbC4K LSsKLSslez93aXRoX215c3FsOiVwYWNrYWdlICAgICAgICBteXNxbC1kZXZlbAotK1N1bW1hcnk6 ICAgICAgICBNeVNRTCBiYWNrZW5kIGZvciAle25hbWV9Ci0rR3JvdXA6ICAgICAgICAgIERldmVs b3BtZW50L0xpYnJhcmllcwotK1JlcXVpcmVzOiAgICAgICAle25hbWV9LWRldmVsID0gJXt2ZXJz aW9ufS0le3JlbGVhc2V9Ci0rUmVxdWlyZXM6ICAgICAgICV7bmFtZX0tbXlzcWwgPSAle3ZlcnNp b259LSV7cmVsZWFzZX0KLStSZXF1aXJlczogICAgICAgbXlzcWwtZGV2ZWwgPj0gNS4wCi0rCi0r JWRlc2NyaXB0aW9uICAgIG15c3FsLWRldmVsCi0rVGhpcyBwYWNrYWdlIGNvbnRhaW5zIHRoZSBN eVNRTCBiYWNrZW5kIGZvciAle25hbWV9LCBpLmUuLCBoZWFkZXIKLStmaWxlcyBhbmQgZHluYW1p YyBsaWJyYXJpZXMgc3BlY2lmaWMgdG8gdGhlIE15U1FMIGRhdGFiYXNlLiBJZiB5b3UKLSt3b3Vs ZCBsaWtlIHRvIGRldmVsb3AgcHJvZ3JhbXMgdXNpbmcgJXtuYW1lfSBhbmQgTXlTUUwsIHlvdSB3 aWxsIG5lZWQKLSt0byBpbnN0YWxsICV7bmFtZX0tbXlzcWwufQotKwotKyV7P3dpdGhfcG9zdGdy ZXNxbDolcGFja2FnZSAgICAgICAgcG9zdGdyZXNxbC1kZXZlbAotK1N1bW1hcnk6ICAgICAgICBQ b3N0R3JlU1FMIGJhY2tlbmQgZm9yICV7bmFtZX0KLStHcm91cDogICAgICAgICAgRGV2ZWxvcG1l bnQvTGlicmFyaWVzCi0rUmVxdWlyZXM6ICAgICAgICV7bmFtZX0tZGV2ZWwgPSAle3ZlcnNpb259 LSV7cmVsZWFzZX0KLStSZXF1aXJlczogICAgICAgJXtuYW1lfS1wb3N0Z3Jlc3FsID0gJXt2ZXJz aW9ufS0le3JlbGVhc2V9Ci0rUmVxdWlyZXM6ICAgICAgIHBvc3RncmVzcWwtZGV2ZWwgPj0gNy4x Ci0rCi0rJWRlc2NyaXB0aW9uICAgIHBvc3RncmVzcWwtZGV2ZWwKLStUaGlzIHBhY2thZ2UgY29u dGFpbnMgdGhlIFBvc3RHcmVTUUwgYmFja2VuZCBmb3IgJXtuYW1lfSwgaS5lLiwgaGVhZGVyCi0r ZmlsZXMgYW5kIGR5bmFtaWMgbGlicmFyaWVzIHNwZWNpZmljIHRvIHRoZSBQb3N0R3JlU1FMIGRh dGFiYXNlLiBJZgotK3lvdSB3b3VsZCBsaWtlIHRvIGRldmVsb3AgcHJvZ3JhbXMgdXNpbmcgJXtu YW1lfSBhbmQgUG9zdEdyZVNRTCwgeW91Ci0rd2lsbCBuZWVkIHRvIGluc3RhbGwgJXtuYW1lfS1w b3N0Z3Jlc3FsLn0KLSsKLSslez93aXRoX29yYWNsZTolcGFja2FnZSAgICAgICAgb3JhY2xlLWRl dmVsCi0rU3VtbWFyeTogICAgICAgIE9yYWNsZSBiYWNrZW5kIGZvciAle25hbWV9Ci0rR3JvdXA6 ICAgICAgICAgIERldmVsb3BtZW50L0xpYnJhcmllcwotK1JlcXVpcmVzOiAgICAgICAle25hbWV9 LWRldmVsID0gJXt2ZXJzaW9ufS0le3JlbGVhc2V9Ci0rUmVxdWlyZXM6ICAgICAgICV7bmFtZX0t b3JhY2xlID0gJXt2ZXJzaW9ufS0le3JlbGVhc2V9Ci0rCi0rJWRlc2NyaXB0aW9uICAgIG9yYWNs ZS1kZXZlbAotK1RoaXMgcGFja2FnZSBjb250YWlucyB0aGUgT3JhY2xlIGJhY2tlbmQgZm9yICV7 bmFtZX0sIGkuZS4sIGhlYWRlcgotK2ZpbGVzIGFuZCBkeW5hbWljIGxpYnJhcmllcyBzcGVjaWZp YyB0byB0aGUgT3JhY2xlIGRhdGFiYXNlLiBJZiB5b3UKLSt3b3VsZCBsaWtlIHRvIGRldmVsb3Ag cHJvZ3JhbXMgdXNpbmcgJXtuYW1lfSBhbmQgT3JhY2xlLCB5b3Ugd2lsbCBuZWVkCi0rdG8gaW5z dGFsbCAle25hbWV9LW9yYWNsZS59Ci0rCi0rCi0rJXBhY2thZ2UgZG9jCi0rU3VtbWFyeTogICAg ICAgIEhUTUwgZG9jdW1lbnRhdGlvbiBmb3IgdGhlIEBQQUNLQUdFX05BTUVAIGxpYnJhcnkKLStH cm91cDogICAgICAgICAgRG9jdW1lbnRhdGlvbgotKyVpZiAwJXs/ZmVkb3JhfSA+PSAxMAotK0J1 aWxkQXJjaDogICAgICBub2FyY2gKLSsjQnVpbGRSZXF1aXJlczogIHRleGxpdmUtbGF0ZXgsIHRl eGxpdmUtZHZpcHMKLSslZW5kaWYKLSsjQnVpbGRSZXF1aXJlczogIHRldGV4LWxhdGV4LCB0ZXRl eC1kdmlwcwotKyNCdWlsZFJlcXVpcmVzOiAgZG94eWdlbiwgZ2hvc3RzY3JpcHQKLSsKLSslZGVz Y3JpcHRpb24gZG9jCi0rVGhpcyBwYWNrYWdlIGNvbnRhaW5zIHRoZSBkb2N1bWVudGF0aW9uIGlu IHRoZSBIVE1MIGZvcm1hdCBvZiB0aGUgQFBBQ0tBR0VfTkFNRUAKLStsaWJyYXJ5LiBUaGUgZG9j dW1lbnRhdGlvbiBpcyB0aGUgc2FtZSBhcyBhdCB0aGUgQFBBQ0tBR0VfTkFNRUAgd2ViIHBhZ2Uu Ci0rCi0rCi0rJXByZXAKLSslc2V0dXAgLXEKLSsKLSsjIEFwcGx5IHRoZSBnKysgNC4zIGNvbXBh dGliaWxpdHkgcGF0Y2gKLSslcGF0Y2gwIC1wMQotKwotKyMgUmVuYW1lIGNoYW5nZS1sb2cgYW5k IGxpY2Vuc2UgZmlsZSwgc28gdGhhdCB0aGV5IGNvbXBseSB3aXRoCi0rIyBwYWNrYWdpbmcgc3Rh bmRhcmQKLSttdiBDSEFOR0VTIENoYW5nZUxvZwotK212IExJQ0VOU0VfMV8wLnR4dCBDT1BZSU5H Ci0rcm0gLWYgSU5TVEFMTAotKwotKyMgUmVtb3ZlIE1hY09TWCBjb21wYXRpYmlsaXR5IGJ1aWxk aW5nIGZpbGVzCi0rcm0gLWYgYnVpbGQvdW5peC8uXyoudGNsCi0rcm0gLWYgLl9NYWtlZmlsZSAu X2NvbmZpZ3VyZQotK3JtIC1mIHNyYy9jb3JlLy5fKi5oIHNyYy9jb3JlLy5fKi5jcHAKLStybSAt ZiBzcmMvYmFja2VuZHMvcG9zdGdyZXNxbC8uXyouaAotK3JtIC1mIGRvYy8uXyouaHRtbAotKwot KyMgUmVuYW1lIHRoZSBzb3VyY2UgY29kZSBkaXJlY3RvcnksIHNvIHRoYXQgdGhlIGZpbGVzIChl LmcsIGhlYWRlcgotKyMgZmlsZXMpIGNhbiBiZSBleHBvcnRlZCBjb3JyZWN0bHkgaW50byB7X3N0 YW5kYXJkX2Rpcn0vJXtuYW1lfQotK212IHNyYyAle25hbWV9Ci0rCi0rIyBBcHBseSB0aGUgR05V IEF1dG90b29scyBjb21wYXRpYmlsaXR5IHBhdGNoCi0rJXBhdGNoMSAtcDEKLSsKLSsjIEZpeCBz b21lIHBlcm1pc3Npb25zIGFuZCBmb3JtYXRzCi0rZmluZCAuL2RvYyAtdHlwZSBmIC1wZXJtIDc1 NSAtZXhlYyBjaG1vZCA2NDQge30gXDsKLStjaG1vZCAteCBBVVRIT1JTIENoYW5nZUxvZyBDT1BZ SU5HIE5FV1MgUkVBRE1FCi0rIyBmaW5kIC4gLXR5cGUgZiAtbmFtZSAnKi5baGNdcHAnIC1leGVj IGNobW9kIDY0NCB7fSBcOwotKwotKwotKyVidWlsZAotKyVjb25maWd1cmUgLS1kaXNhYmxlLXN0 YXRpYyBcCi0rJXs/d2l0aF9teXNxbDotLWVuYWJsZS1iYWNrZW5kLW15c3FsfSBcCi0rJXs/d2l0 aF9wb3N0Z3Jlc3FsOi0tZW5hYmxlLWJhY2tlbmQtcG9zdGdyZXNxbH0gXAotKyV7P3dpdGhfb3Jh Y2xlOi0tZW5hYmxlLWJhY2tlbmQtb3JhY2xlICV7P193aXRoX29yYWNsZV9pbmNkaXJ9ICV7P193 aXRoX29yYWNsZV9saWJkaXJ9fQotK21ha2UgJXs/X3NtcF9tZmxhZ3N9Ci0rCi0rJWluc3RhbGwK LStybSAtcmYgJFJQTV9CVUlMRF9ST09UCi0rbWFrZSBpbnN0YWxsIERFU1RESVI9JFJQTV9CVUlM RF9ST09UCi0rIyMKLSsjICBSZW1vdmUgdW5wYWNrYWdlZCBmaWxlcyBmcm9tIHRoZSBidWlsZHJv b3QKLStybSAtZiAkUlBNX0JVSUxEX1JPT1Qle19pbmNsdWRlZGlyfS8le25hbWV9L2NvbmZpZy5o Ci0rcm0gLWYgJFJQTV9CVUlMRF9ST09UJXtfbGliZGlyfS9saWIle25hbWV9XyoubGEKLSsjIwot KyMjCi0rIyAgRHVwbGljYXRlIHRoZSBoZWFkZXIgZmlsZXMsIHNvIGFzIHRvIGtlZXAgdGhlIGNv bXBhdGliaWxpdHksIGZvcgotKyMgIGRldmVsb3BlcnMgdXNpbmcgdGhlIFNPQ0kgbGlicmFyeSwg d2l0aCB0aGUgbm9uLXBhY2thZ2VkIHZlcnNpb24gb2YKLSsjICB0aGF0IGxpYnJhcnkuCi0rZm9y IGhlYWRlcl9maWxlIGluICRSUE1fQlVJTERfUk9PVCV7X2luY2x1ZGVkaXJ9LyV7bmFtZX0vY29y ZS8qLmg7IGRvCi0rICBjcCAke2hlYWRlcl9maWxlfSAkUlBNX0JVSUxEX1JPT1Qle19pbmNsdWRl ZGlyfS8le25hbWV9Ci0rZG9uZQotKyV7P3dpdGhfbXlzcWw6Y3AgJFJQTV9CVUlMRF9ST09UJXtf aW5jbHVkZWRpcn0vJXtuYW1lfS9iYWNrZW5kcy9teXNxbC9zb2NpLW15c3FsLmggJFJQTV9CVUlM RF9ST09UJXtfaW5jbHVkZWRpcn0vJXtuYW1lfX0KLSslez93aXRoX3Bvc3RncmVzcWw6Y3AgJFJQ TV9CVUlMRF9ST09UJXtfaW5jbHVkZWRpcn0vJXtuYW1lfS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Nv Y2ktcG9zdGdyZXNxbC5oICRSUE1fQlVJTERfUk9PVCV7X2luY2x1ZGVkaXJ9LyV7bmFtZX19Ci0r JXs/d2l0aF9vcmFjbGU6Y3AgJFJQTV9CVUlMRF9ST09UJXtfaW5jbHVkZWRpcn0vJXtuYW1lfS9i YWNrZW5kcy9vcmFjbGUvc29jaS1vcmFjbGUuaCAkUlBNX0JVSUxEX1JPT1Qle19pbmNsdWRlZGly fS8le25hbWV9fQotKwotKwotKyVjbGVhbgotK3JtIC1yZiAkUlBNX0JVSUxEX1JPT1QKLSsKLSsl cG9zdCAtcCAvc2Jpbi9sZGNvbmZpZwotKwotKyVwb3N0dW4gLXAgL3NiaW4vbGRjb25maWcKLSsK LSslez93aXRoX215c3FsOiVwb3N0IG15c3FsIC1wIC9zYmluL2xkY29uZmlnCi0rCi0rJXBvc3R1 biBteXNxbCAtcCAvc2Jpbi9sZGNvbmZpZ30KLSsKLSslez93aXRoX3Bvc3RncmVzcWw6JXBvc3Qg cG9zdGdyZXNxbCAtcCAvc2Jpbi9sZGNvbmZpZwotKwotKyVwb3N0dW4gcG9zdGdyZXNxbCAtcCAv c2Jpbi9sZGNvbmZpZ30KLSsKLSslez93aXRoX29yYWNsZTolcG9zdCBvcmFjbGUgLXAgL3NiaW4v bGRjb25maWcKLSsKLSslcG9zdHVuIG9yYWNsZSAtcCAvc2Jpbi9sZGNvbmZpZ30KLSsKLSsKLSsK LSslZmlsZXMKLSslZGVmYXR0cigtLHJvb3Qscm9vdCwtKQotKyVkb2MgQVVUSE9SUyBDaGFuZ2VM b2cgQ09QWUlORyBORVdTIFJFQURNRQotKyV7X2xpYmRpcn0vbGliJXtuYW1lfV9jb3JlLnNvLioK LSsKLSslez93aXRoX215c3FsOiVmaWxlcyBteXNxbAotKyVkZWZhdHRyKC0scm9vdCxyb290LC0p Ci0rJWRvYyBBVVRIT1JTIENoYW5nZUxvZyBDT1BZSU5HIE5FV1MgUkVBRE1FCi0rJXtfbGliZGly fS9saWIle25hbWV9X215c3FsLnNvLip9Ci0rCi0rJXs/d2l0aF9wb3N0Z3Jlc3FsOiVmaWxlcyBw b3N0Z3Jlc3FsCi0rJWRlZmF0dHIoLSxyb290LHJvb3QsLSkKLSslZG9jIEFVVEhPUlMgQ2hhbmdl TG9nIENPUFlJTkcgTkVXUyBSRUFETUUKLSsle19saWJkaXJ9L2xpYiV7bmFtZX1fcG9zdGdyZXNx bC5zby4qfQotKwotKyV7P3dpdGhfb3JhY2xlOiVmaWxlcyBvcmFjbGUKLSslZGVmYXR0cigtLHJv b3Qscm9vdCwtKQotKyVkb2MgQVVUSE9SUyBDaGFuZ2VMb2cgQ09QWUlORyBORVdTIFJFQURNRQot KyV7X2xpYmRpcn0vbGliJXtuYW1lfV9vcmFjbGUuc28uKn0KLSsKLSsKLSslZmlsZXMgZGV2ZWwK LSslZGVmYXR0cigtLHJvb3Qscm9vdCwtKQotKyVkb2MgQVVUSE9SUyBDaGFuZ2VMb2cgQ09QWUlO RyBORVdTIFJFQURNRQotKyVkaXIgJXtfaW5jbHVkZWRpcn0vJXtuYW1lfQotKyVkaXIgJXtfaW5j bHVkZWRpcn0vJXtuYW1lfS9jb3JlCi0rJXtfaW5jbHVkZWRpcn0vJXtuYW1lfS8qLmgKLSsle19p bmNsdWRlZGlyfS8le25hbWV9L2NvcmUvKi5oCi0rJXtfaW5jbHVkZWRpcn0vJXtuYW1lfS9jb3Jl L3Rlc3QKLSsle19iaW5kaXJ9LyV7bmFtZX0tY29uZmlnCi0rJXtfbGliZGlyfS9saWIle25hbWV9 X2NvcmUuc28KLSsle19saWJkaXJ9L3BrZ2NvbmZpZy8le25hbWV9LnBjCi0rJXtfZGF0YWRpcn0v YWNsb2NhbC8le25hbWV9Lm00Ci0rJXtfbWFuZGlyfS9tYW4xLyV7bmFtZX0tY29uZmlnLjEuKgot KwotKyV7P3dpdGhfbXlzcWw6JWZpbGVzIG15c3FsLWRldmVsCi0rJWRlZmF0dHIoLSxyb290LHJv b3QsLSkKLSslZG9jIEFVVEhPUlMgQ2hhbmdlTG9nIENPUFlJTkcgTkVXUyBSRUFETUUKLSslZGly ICV7X2luY2x1ZGVkaXJ9LyV7bmFtZX0KLSsle19pbmNsdWRlZGlyfS8le25hbWV9L2JhY2tlbmRz L215c3FsCi0rJXtfbGliZGlyfS9saWIle25hbWV9X215c3FsLnNvfQotKwotKyV7P3dpdGhfcG9z dGdyZXNxbDolZmlsZXMgcG9zdGdyZXNxbC1kZXZlbAotKyVkZWZhdHRyKC0scm9vdCxyb290LC0p Ci0rJWRvYyBBVVRIT1JTIENoYW5nZUxvZyBDT1BZSU5HIE5FV1MgUkVBRE1FCi0rJWRpciAle19p bmNsdWRlZGlyfS8le25hbWV9Ci0rJXtfaW5jbHVkZWRpcn0vJXtuYW1lfS9iYWNrZW5kcy9wb3N0 Z3Jlc3FsCi0rJXtfbGliZGlyfS9saWIle25hbWV9X3Bvc3RncmVzcWwuc299Ci0rCi0rJXs/d2l0 aF9vcmFjbGU6JWZpbGVzIG9yYWNsZS1kZXZlbAotKyVkZWZhdHRyKC0scm9vdCxyb290LC0pCi0r JWRvYyBBVVRIT1JTIENoYW5nZUxvZyBDT1BZSU5HIE5FV1MgUkVBRE1FCi0rJWRpciAle19pbmNs dWRlZGlyfS8le25hbWV9Ci0rJXtfaW5jbHVkZWRpcn0vJXtuYW1lfS9iYWNrZW5kcy9vcmFjbGUK LSsle19saWJkaXJ9L2xpYiV7bmFtZX1fb3JhY2xlLnNvfQotKwotKwotKyVmaWxlcyBkb2MKLSsl ZGVmYXR0cigtLHJvb3Qscm9vdCwtKQotKyVkb2MgQVVUSE9SUyBDaGFuZ2VMb2cgQ09QWUlORyBO RVdTIFJFQURNRSBkb2MKLSsKLSsKLSslY2hhbmdlbG9nCi0rKiBTYXQgTWF5IDA5IDIwMDkgRGVu aXMgQXJuYXVkIDxkZW5pcy5hcm5hdWRfZmVkb3JhQG00eC5vcmc+IDMuMC4wLTEzCi0rLSBJbnRy b2R1Y2VkIGRpc3RpbmN0IGRlcGVuZGVuY2llcyBmb3IgZGlmZmVyZW50IGRpc3RyaWJ1dGlvbnMK LSsKLSsqIFR1ZSBNYXkgMDUgMjAwOSBEZW5pcyBBcm5hdWQgPGRlbmlzLmFybmF1ZF9mZWRvcmFA bTR4Lm9yZz4gMy4wLjAtMTIKLSstIFJlbW92ZWQgdGhlIGRlcGVuZGVuY3kgb24gdGhlIHZlcnNp b24gb2YgQm9vc3QsIGFuZCBvbiBDUFBVbml0Ci0rCi0rKiBUdWUgTWF5IDA1IDIwMDkgRGVuaXMg QXJuYXVkIDxkZW5pcy5hcm5hdWRfZmVkb3JhQG00eC5vcmc+IDMuMC4wLTExCi0rLSBSZW1vdmVk IHRoZSBkZXBlbmRlbmN5IG9uIExhdGV4IGZvciBkb2N1bWVudGF0aW9uIGRlbGl2ZXJ5Ci0rCi0r KiBUdWUgTWF5IDA1IDIwMDkgRGVuaXMgQXJuYXVkIDxkZW5pcy5hcm5hdWRfZmVkb3JhQG00eC5v cmc+IDMuMC4wLTEwCi0rLSBCdXJyaWVkIHRoZSBCb29zdCBGdXNpb24gaGVhZGVyIGluY2x1ZGUg Zm9yIGNvcmUvdGVzdC9jb21tb24tdGVzdHMuaAotKwotKyogVHVlIE1heSAwNSAyMDA5IERlbmlz IEFybmF1ZCA8ZGVuaXMuYXJuYXVkX2ZlZG9yYUBtNHgub3JnPiAzLjAuMC05Ci0rLSBBZGRlZCBh IG1pc3NpbmcgY3N0ZGlvIGhlYWRlciBpbmNsdWRlIGZvciBnKystNC40IGNvbXBhdGliaWxpdHkK LSsKLSsqIFR1ZSBNYXkgMDUgMjAwOSBEZW5pcyBBcm5hdWQgPGRlbmlzLmFybmF1ZF9mZWRvcmFA bTR4Lm9yZz4gMy4wLjAtOAotKy0gQWRkZWQgbWlzc2luZyBjc3RkaW8gaGVhZGVyIGluY2x1ZGVz IGZvciBnKystNC40IGNvbXBhdGliaWxpdHkKLSsKLSsqIFR1ZSBNYXkgMDUgMjAwOSBEZW5pcyBB cm5hdWQgPGRlbmlzLmFybmF1ZF9mZWRvcmFAbTR4Lm9yZz4gMy4wLjAtNwotKy0gQWRkZWQgYSBt aXNzaW5nIGNzdGRpbyBoZWFkZXIgaW5jbHVkZSBmb3IgZysrLTQuNCBjb21wYXRpYmlsaXR5Ci0r Ci0rKiBTYXQgTWF5IDAyIDIwMDkgRGVuaXMgQXJuYXVkIDxkZW5pcy5hcm5hdWRfZmVkb3JhQG00 eC5vcmc+IDMuMC4wLTYKLSstIFJlbW92ZWQgdGhlIHVudXNlZCBidWlsZCBjb25kaXRpb25hbHMK LSsKLSsqIFR1ZSBBcHIgMjggMjAwOSBEZW5pcyBBcm5hdWQgPGRlbmlzLmFybmF1ZF9mZWRvcmFA bTR4Lm9yZz4gMy4wLjAtNQotKy0gU2ltcGxpZmllZCB0aGUgY29uZGl0aW9uYWwgYnVpbGQgcnVs ZXMgd2l0aGluIHRoZSBSUE0gc3BlY2lmaWNhdGlvbiBmaWxlCi0rCi0rKiBTYXQgQXByIDE4IDIw MDkgRGVuaXMgQXJuYXVkIDxkZW5pcy5hcm5hdWRfZmVkb3JhQG00eC5vcmc+IDMuMC4wLTQKLSst IEZpeGVkIGFuIGlzc3VlIGFib3V0IE9QVEZMQUdTIGNvbXBpbGF0aW9uCi0rCi0rKiBUdWUgQXBy IDE0IDIwMDkgRGVuaXMgQXJuYXVkIDxkZW5pcy5hcm5hdWRfZmVkb3JhQG00eC5vcmc+IDMuMC4w LTMKLSstIFJlc3RhcnRlZCBmcm9tIHByaXN0aW5lIHZlcnNpb24gMy4wLjAgb2YgdXBzdHJlYW0g KFNPQ0kpIHByb2plY3QKLSsKLSsqIFNhdCBBcHIgIDQgMjAwOSBEZW5pcyBBcm5hdWQgPGRlbmlz LmFybmF1ZF9mZWRvcmFAbTR4Lm9yZz4gMy4wLjAtMgotKy0gU3BlY2lmaWMgUlBNIGZvciBlYWNo IGJhY2tlbmQKLSsKLSsqIEZyaSBNYXIgMjcgMjAwOSBEZW5pcyBBcm5hdWQgPGRlbmlzLmFybmF1 ZF9mZWRvcmFAbTR4Lm9yZz4gMy4wLjAtMQotKy0gRmlyc3QgUlBNIHJlbGVhc2UKCmRpZmYgLS1n aXQgYS9zb2NpLTMuMC4wLTE2LWZpeC1nY2M0NC1jb21wYXRpYmlsaXR5LnBhdGNoIGIvc29jaS0z LjAuMC0xNi1maXgtZ2NjNDQtY29tcGF0aWJpbGl0eS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwLi5jOGUxYzU1Ci0tLSAvZGV2L251bGwKKysrIGIvc29jaS0zLjAuMC0x Ni1maXgtZ2NjNDQtY29tcGF0aWJpbGl0eS5wYXRjaApAQCAtMCwwICsxLDYyMyBAQAorZGlmZiAt TnVyIHNvY2ktMy4wLjAvc3JjL2JhY2tlbmRzL215c3FsL2NvbW1vbi5oIHNvY2ktMy4wLjBfNC1w YWNrL3NyYy9iYWNrZW5kcy9teXNxbC9jb21tb24uaAorLS0tIHNvY2ktMy4wLjAvc3JjL2JhY2tl bmRzL215c3FsL2NvbW1vbi5oCTIwMDgtMDctMDMgMDk6MjI6NTcuMDAwMDAwMDAwICswMjAwCisr Kysgc29jaS0zLjAuMF80LXBhY2svc3JjL2JhY2tlbmRzL215c3FsL2NvbW1vbi5oCTIwMTAtMDEt MjMgMTM6MTc6MjguMDAwMDAwMDAwICswMTAwCitAQCAtMTAsNiArMTAsNyBAQAorIAorICNpbmNs dWRlIDxzc3RyZWFtPgorICNpbmNsdWRlICJzb2NpLW15c3FsLmgiCisrI2luY2x1ZGUgPGN0aW1l PgorIAorIG5hbWVzcGFjZSBzb2NpCisgeworZGlmZiAtTnVyIHNvY2ktMy4wLjAvc3JjL2JhY2tl bmRzL215c3FsL3Nlc3Npb24uY3BwIHNvY2ktMy4wLjBfNC1wYWNrL3NyYy9iYWNrZW5kcy9teXNx bC9zZXNzaW9uLmNwcAorLS0tIHNvY2ktMy4wLjAvc3JjL2JhY2tlbmRzL215c3FsL3Nlc3Npb24u Y3BwCTIwMDgtMDUtMTUgMTU6NTg6MzguMDAwMDAwMDAwICswMjAwCisrKysgc29jaS0zLjAuMF80 LXBhY2svc3JjL2JhY2tlbmRzL215c3FsL3Nlc3Npb24uY3BwCTIwMTAtMDEtMjMgMTM6MTc6Mjgu MDAwMDAwMDAwICswMTAwCitAQCAtMTEsNyArMTEsOCBAQAorICNpbmNsdWRlIDxjY3R5cGU+Cisg I2luY2x1ZGUgPGNlcnJubz4KKyAjaW5jbHVkZSA8Y2lzbzY0Nj4KKy0KKysjaW5jbHVkZSA8Y3N0 ZGxpYj4KKysjaW5jbHVkZSA8Y2xpbWl0cz4KKyAKKyAjaWZkZWYgX01TQ19WRVIKKyAjcHJhZ21h IHdhcm5pbmcoZGlzYWJsZTo0MzU1KQorZGlmZiAtTnVyIHNvY2ktMy4wLjAvc3JjL2JhY2tlbmRz L215c3FsL3N0YW5kYXJkLWludG8tdHlwZS5jcHAgc29jaS0zLjAuMF80LXBhY2svc3JjL2JhY2tl bmRzL215c3FsL3N0YW5kYXJkLWludG8tdHlwZS5jcHAKKy0tLSBzb2NpLTMuMC4wL3NyYy9iYWNr ZW5kcy9teXNxbC9zdGFuZGFyZC1pbnRvLXR5cGUuY3BwCTIwMDgtMDUtMzAgMTM6MzM6NDUuMDAw MDAwMDAwICswMjAwCisrKysgc29jaS0zLjAuMF80LXBhY2svc3JjL2JhY2tlbmRzL215c3FsL3N0 YW5kYXJkLWludG8tdHlwZS5jcHAJMjAxMC0wMS0yMyAxMzoxNzoyOC4wMDAwMDAwMDAgKzAxMDAK K0BAIC0xMiw2ICsxMiw4IEBACisgI2luY2x1ZGUgImNvbW1vbi5oIgorICNpbmNsdWRlIDxjaXNv NjQ2PgorICNpbmNsdWRlIDxjYXNzZXJ0PgorKyNpbmNsdWRlIDxjdGltZT4KKysjaW5jbHVkZSA8 Y3N0cmluZz4KKyAKKyAjaWZkZWYgX01TQ19WRVIKKyAjcHJhZ21hIHdhcm5pbmcoZGlzYWJsZTo0 MzU1KQorZGlmZiAtTnVyIHNvY2ktMy4wLjAvc3JjL2JhY2tlbmRzL215c3FsL3N0YW5kYXJkLXVz ZS10eXBlLmNwcCBzb2NpLTMuMC4wXzQtcGFjay9zcmMvYmFja2VuZHMvbXlzcWwvc3RhbmRhcmQt dXNlLXR5cGUuY3BwCistLS0gc29jaS0zLjAuMC9zcmMvYmFja2VuZHMvbXlzcWwvc3RhbmRhcmQt dXNlLXR5cGUuY3BwCTIwMDgtMDUtMTUgMTU6NTg6MzguMDAwMDAwMDAwICswMjAwCisrKysgc29j aS0zLjAuMF80LXBhY2svc3JjL2JhY2tlbmRzL215c3FsL3N0YW5kYXJkLXVzZS10eXBlLmNwcAky MDEwLTAxLTIzIDEzOjE3OjI4LjAwMDAwMDAwMCArMDEwMAorQEAgLTEwLDggKzEwLDEwIEBACisg I2luY2x1ZGUgInNvY2ktbXlzcWwuaCIKKyAjaW5jbHVkZSAiY29tbW9uLmgiCisgI2luY2x1ZGUg PHNvY2ktcGxhdGZvcm0uaD4KKysvLworICNpbmNsdWRlIDxjaXNvNjQ2PgorICNpbmNsdWRlIDxs aW1pdHM+CisrI2luY2x1ZGUgPGNzdGRpbz4KKyAjaW5jbHVkZSA8Y3N0cmluZz4KKyAKKyAjaWZk ZWYgX01TQ19WRVIKK2RpZmYgLU51ciBzb2NpLTMuMC4wL3NyYy9iYWNrZW5kcy9teXNxbC92ZWN0 b3ItdXNlLXR5cGUuY3BwIHNvY2ktMy4wLjBfNC1wYWNrL3NyYy9iYWNrZW5kcy9teXNxbC92ZWN0 b3ItdXNlLXR5cGUuY3BwCistLS0gc29jaS0zLjAuMC9zcmMvYmFja2VuZHMvbXlzcWwvdmVjdG9y LXVzZS10eXBlLmNwcAkyMDA4LTA1LTE1IDE1OjU4OjM4LjAwMDAwMDAwMCArMDIwMAorKysrIHNv Y2ktMy4wLjBfNC1wYWNrL3NyYy9iYWNrZW5kcy9teXNxbC92ZWN0b3ItdXNlLXR5cGUuY3BwCTIw MTAtMDEtMjMgMTM6MTc6MjguMDAwMDAwMDAwICswMTAwCitAQCAtMTAsOSArMTAsMTIgQEAKKyAj aW5jbHVkZSAic29jaS1teXNxbC5oIgorICNpbmNsdWRlICJjb21tb24uaCIKKyAjaW5jbHVkZSA8 c29jaS1wbGF0Zm9ybS5oPgorKy8vCisgI2luY2x1ZGUgPGNpc282NDY+CisgI2luY2x1ZGUgPGxp bWl0cz4KKysjaW5jbHVkZSA8Y3N0ZGlvPgorICNpbmNsdWRlIDxjc3RyaW5nPgorKyNpbmNsdWRl IDxjdGltZT4KKyAKKyAjaWZkZWYgX01TQ19WRVIKKyAjcHJhZ21hIHdhcm5pbmcoZGlzYWJsZTo0 MzU1KQorZGlmZiAtTnVyIHNvY2ktMy4wLjAvc3JjL2JhY2tlbmRzL3Bvc3RncmVzcWwvY29tbW9u LmNwcCBzb2NpLTMuMC4wXzQtcGFjay9zcmMvYmFja2VuZHMvcG9zdGdyZXNxbC9jb21tb24uY3Bw CistLS0gc29jaS0zLjAuMC9zcmMvYmFja2VuZHMvcG9zdGdyZXNxbC9jb21tb24uY3BwCTIwMDgt MDYtMjcgMTY6Mzg6MDUuMDAwMDAwMDAwICswMjAwCisrKysgc29jaS0zLjAuMF80LXBhY2svc3Jj L2JhY2tlbmRzL3Bvc3RncmVzcWwvY29tbW9uLmNwcAkyMDEwLTAxLTIzIDEzOjE3OjI4LjAwMDAw MDAwMCArMDEwMAorQEAgLTcsNyArNyw5IEBACisgCisgI2luY2x1ZGUgImNvbW1vbi5oIgorICNp bmNsdWRlIDxzb2NpLWJhY2tlbmQuaD4KKysvLworICNpbmNsdWRlIDxjc3RkbGliPgorKyNpbmNs dWRlIDxjc3RkaW8+CisgI2luY2x1ZGUgPGN0aW1lPgorIAorIAorZGlmZiAtTnVyIHNvY2ktMy4w LjAvc3JjL2JhY2tlbmRzL3Bvc3RncmVzcWwvdGVzdC90ZXN0LXBvc3RncmVzcWwuY3BwIHNvY2kt My4wLjBfNC1wYWNrL3NyYy9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Rlc3QvdGVzdC1wb3N0Z3Jlc3Fs LmNwcAorLS0tIHNvY2ktMy4wLjAvc3JjL2JhY2tlbmRzL3Bvc3RncmVzcWwvdGVzdC90ZXN0LXBv c3RncmVzcWwuY3BwCTIwMDgtMDYtMDUgMjI6NDE6NTguMDAwMDAwMDAwICswMjAwCisrKysgc29j aS0zLjAuMF80LXBhY2svc3JjL2JhY2tlbmRzL3Bvc3RncmVzcWwvdGVzdC90ZXN0LXBvc3RncmVz cWwuY3BwCTIwMTAtMDEtMjMgMTM6MTc6MjguMDAwMDAwMDAwICswMTAwCitAQCAtMTUsNiArMTUs NyBAQAorICNpbmNsdWRlIDxjbWF0aD4KKyAjaW5jbHVkZSA8Y3RpbWU+CisgI2luY2x1ZGUgPGNz dGRsaWI+CisrI2luY2x1ZGUgPGNzdHJpbmc+CisgCisgdXNpbmcgbmFtZXNwYWNlIHNvY2k7Cisg dXNpbmcgbmFtZXNwYWNlIHNvY2k6OnRlc3RzOworZGlmZiAtTnVyIHNvY2ktMy4wLjAvc3JjL2Jh Y2tlbmRzL3Bvc3RncmVzcWwvdGVzdC90ZXN0LXBvc3RncmVzcWwuY3BwLm9yaWcgc29jaS0zLjAu MF80LXBhY2svc3JjL2JhY2tlbmRzL3Bvc3RncmVzcWwvdGVzdC90ZXN0LXBvc3RncmVzcWwuY3Bw Lm9yaWcKKy0tLSBzb2NpLTMuMC4wL3NyYy9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Rlc3QvdGVzdC1w b3N0Z3Jlc3FsLmNwcC5vcmlnCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCisr Kysgc29jaS0zLjAuMF80LXBhY2svc3JjL2JhY2tlbmRzL3Bvc3RncmVzcWwvdGVzdC90ZXN0LXBv c3RncmVzcWwuY3BwLm9yaWcJMjAxMC0wMS0yMyAxMzoxNzoyOC4wMDAwMDAwMDAgKzAxMDAKK0BA IC0wLDAgKzEsNTE3IEBACisrLy8KKysvLyBDb3B5cmlnaHQgKEMpIDIwMDQtMjAwOCBNYWNpZWog U29iY3phaywgU3RlcGhlbiBIdXR0b24KKysvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3Qg U29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuCisrLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmls ZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJ Q0VOU0VfMV8wLnR4dCkKKysvLworKworKyNpbmNsdWRlICJzb2NpLmgiCisrI2luY2x1ZGUgInNv Y2ktcG9zdGdyZXNxbC5oIgorKyNpbmNsdWRlICJjb21tb24tdGVzdHMuaCIKKysjaW5jbHVkZSA8 aW9zdHJlYW0+CisrI2luY2x1ZGUgPHNzdHJlYW0+CisrI2luY2x1ZGUgPHN0cmluZz4KKysjaW5j bHVkZSA8Y2Fzc2VydD4KKysjaW5jbHVkZSA8Y21hdGg+CisrI2luY2x1ZGUgPGN0aW1lPgorKyNp bmNsdWRlIDxjc3RkbGliPgorKworK3VzaW5nIG5hbWVzcGFjZSBzb2NpOworK3VzaW5nIG5hbWVz cGFjZSBzb2NpOjp0ZXN0czsKKysKKytzdGQ6OnN0cmluZyBjb25uZWN0U3RyaW5nOworK2JhY2tl bmRfZmFjdG9yeSBjb25zdCAmYmFja0VuZCA9IHBvc3RncmVzcWw7CisrCisrLy8gUG9zdGdyZXMt c3BlY2lmaWMgdGVzdHMKKysKKytzdHJ1Y3Qgb2lkX3RhYmxlX2NyZWF0b3IgOiBwdWJsaWMgdGFi bGVfY3JlYXRvcl9iYXNlCisreworKyAgICBvaWRfdGFibGVfY3JlYXRvcihzZXNzaW9uJiBzcWwp CisrICAgIDogdGFibGVfY3JlYXRvcl9iYXNlKHNxbCkKKysgICAgeworKyAgICAgICAgc3FsIDw8 ICJjcmVhdGUgdGFibGUgc29jaV90ZXN0ICgiCisrICAgICAgICAgICAgICAgICIgaWQgaW50ZWdl ciwiCisrICAgICAgICAgICAgICAgICIgbmFtZSB2YXJjaGFyKDEwMCkiCisrICAgICAgICAgICAg ICAgICIpIHdpdGggb2lkcyI7CisrICAgIH0KKyt9OworKworKy8vIFJPV0lEIHRlc3QKKysvLyBO b3RlOiBpbiBQb3N0Z3JlU1FMLCB0aGVyZSBpcyBubyBST1dJRCwgdGhlcmUgaXMgT0lELgorKy8v IEl0IGlzIHN0aWxsIHByb3ZpZGVkIGFzIGEgc2VwYXJhdGUgdHlwZSBmb3IgInBvcnRhYmlsaXR5 IiwKKysvLyB3aGF0ZXZlciB0aGF0IG1lYW5zLgorK3ZvaWQgdGVzdDEoKQorK3sKKysgICAgewor KyAgICAgICAgc2Vzc2lvbiBzcWwoYmFja0VuZCwgY29ubmVjdFN0cmluZyk7CisrCisrICAgICAg ICBvaWRfdGFibGVfY3JlYXRvciB0YWJsZUNyZWF0b3Ioc3FsKTsKKysKKysgICAgICAgIHNxbCA8 PCAiaW5zZXJ0IGludG8gc29jaV90ZXN0KGlkLCBuYW1lKSB2YWx1ZXMoNywgXCdKb2huXCcpIjsK KysKKysgICAgICAgIHJvd2lkIHJpZChzcWwpOworKyAgICAgICAgc3FsIDw8ICJzZWxlY3Qgb2lk IGZyb20gc29jaV90ZXN0IHdoZXJlIGlkID0gNyIsIGludG8ocmlkKTsKKysKKysgICAgICAgIGlu dCBpZDsKKysgICAgICAgIHN0ZDo6c3RyaW5nIG5hbWU7CisrCisrI2lmbmRlZiBTT0NJX1BHU1FM X05PUEFSQU1TCisrCisrICAgICAgICBzcWwgPDwgInNlbGVjdCBpZCwgbmFtZSBmcm9tIHNvY2lf dGVzdCB3aGVyZSBvaWQgPSA6cmlkIiwKKysgICAgICAgICAgICBpbnRvKGlkKSwgaW50byhuYW1l KSwgdXNlKHJpZCk7CisrCisrI2Vsc2UKKysgICAgICAgIC8vIE9sZGVyIFBvc3RncmVTUUwgZG9l cyBub3Qgc3VwcG9ydCB1c2UgZWxlbWVudHMuCisrCisrICAgICAgICBwb3N0Z3Jlc3FsX3Jvd2lk X2JhY2tlbmQgKnJiZQorKyAgICAgICAgICAgID0gc3RhdGljX2Nhc3Q8cG9zdGdyZXNxbF9yb3dp ZF9iYWNrZW5kICo+KHJpZC5nZXRfYmFja2VuZCgpKTsKKysKKysgICAgICAgIHVuc2lnbmVkIGxv bmcgb2lkID0gcmJlLT52YWx1ZV87CisrCisrICAgICAgICBzcWwgPDwgInNlbGVjdCBpZCwgbmFt ZSBmcm9tIHNvY2lfdGVzdCB3aGVyZSBvaWQgPSAiIDw8IG9pZCwKKysgICAgICAgICAgICBpbnRv KGlkKSwgaW50byhuYW1lKTsKKysKKysjZW5kaWYgLy8gU09DSV9QR1NRTF9OT1BBUkFNUworKwor KyAgICAgICAgYXNzZXJ0KGlkID09IDcpOworKyAgICAgICAgYXNzZXJ0KG5hbWUgPT0gIkpvaG4i KTsKKysgICAgfQorKworKyAgICBzdGQ6OmNvdXQgPDwgInRlc3QgMSBwYXNzZWQiIDw8IHN0ZDo6 ZW5kbDsKKyt9CisrCisrLy8gZnVuY3Rpb24gY2FsbCB0ZXN0CisrY2xhc3MgZnVuY3Rpb25fY3Jl YXRvciA6IGZ1bmN0aW9uX2NyZWF0b3JfYmFzZQorK3sKKytwdWJsaWM6CisrCisrICAgIGZ1bmN0 aW9uX2NyZWF0b3Ioc2Vzc2lvbiYgc2Vzc2lvbikKKysgICAgOiBmdW5jdGlvbl9jcmVhdG9yX2Jh c2Uoc2Vzc2lvbikKKysgICAgeworKyAgICAgICAgLy8gYmVmb3JlIGEgbGFuZ3VhZ2UgY2FuIGJl IHVzZWQgaXQgbXVzdCBiZSBkZWZpbmVkCisrICAgICAgICAvLyBpZiBpdCBoYXMgYWxyZWFkeSBi ZWVuIGRlZmluZWQgdGhlbiBhbiBlcnJvciB3aWxsIG9jY3VyCisrICAgICAgICB0cnkgeyBzZXNz aW9uIDw8ICJjcmVhdGUgbGFuZ3VhZ2UgcGxwZ3NxbCI7IH0KKysgICAgICAgIGNhdGNoIChzb2Np X2Vycm9yIGNvbnN0ICYpIHt9IC8vIGlnbm9yZSBpZiBlcnJvcgorKworKyNpZm5kZWYgU09DSV9Q R1NRTF9OT1BBUkFNUworKworKyAgICAgICAgc2Vzc2lvbiAgPDwKKysgICAgICAgICAgICAiY3Jl YXRlIG9yIHJlcGxhY2UgZnVuY3Rpb24gc29jaV90ZXN0KG1zZyB2YXJjaGFyKSAiCisrICAgICAg ICAgICAgInJldHVybnMgdmFyY2hhciBhcyAkJCAiCisrICAgICAgICAgICAgImJlZ2luICIKKysg ICAgICAgICAgICAiICByZXR1cm4gbXNnOyAiCisrICAgICAgICAgICAgImVuZCAkJCBsYW5ndWFn ZSBwbHBnc3FsIjsKKysjZWxzZQorKworKyAgICAgICBzZXNzaW9uIDw8CisrICAgICAgICAgICAg ImNyZWF0ZSBvciByZXBsYWNlIGZ1bmN0aW9uIHNvY2lfdGVzdCh2YXJjaGFyKSAiCisrICAgICAg ICAgICAgInJldHVybnMgdmFyY2hhciBhcyBcJyAiCisrICAgICAgICAgICAgImJlZ2luICIKKysg ICAgICAgICAgICAiICByZXR1cm4gJDE7ICIKKysgICAgICAgICAgICAiZW5kIFwnIGxhbmd1YWdl IHBscGdzcWwiOworKyNlbmRpZgorKyAgICB9CisrCisrcHJvdGVjdGVkOgorKworKyAgICBzdGQ6 OnN0cmluZyBkcm9wX3N0YXRlbWVudCgpCisrICAgIHsKKysgICAgICAgIHJldHVybiAiZHJvcCBm dW5jdGlvbiBzb2NpX3Rlc3QodmFyY2hhcikiOworKyAgICB9CisrfTsKKysKKyt2b2lkIHRlc3Qy KCkKKyt7CisrICAgIHsKKysgICAgICAgIHNlc3Npb24gc3FsKGJhY2tFbmQsIGNvbm5lY3RTdHJp bmcpOworKworKyAgICAgICAgZnVuY3Rpb25fY3JlYXRvciBmdW5jdGlvbkNyZWF0b3Ioc3FsKTsK KysKKysgICAgICAgIHN0ZDo6c3RyaW5nIGluKCJteSBtZXNzYWdlIik7CisrICAgICAgICBzdGQ6 OnN0cmluZyBvdXQ7CisrCisrI2lmbmRlZiBTT0NJX1BHU1FMX05PUEFSQU1TCisrCisrICAgICAg ICBzdGF0ZW1lbnQgc3QgPSAoc3FsLnByZXBhcmUgPDwKKysgICAgICAgICAgICAic2VsZWN0IHNv Y2lfdGVzdCg6aW5wdXQpIiwKKysgICAgICAgICAgICBpbnRvKG91dCksCisrICAgICAgICAgICAg dXNlKGluLCAiaW5wdXQiKSk7CisrCisrI2Vsc2UKKysgICAgICAgIC8vIE9sZGVyIFBvc3RncmVT UUwgZG9lcyBub3Qgc3VwcG9ydCB1c2UgZWxlbWVudHMuCisrCisrICAgICAgICBzdGF0ZW1lbnQg c3QgPSAoc3FsLnByZXBhcmUgPDwKKysgICAgICAgICAgICAic2VsZWN0IHNvY2lfdGVzdChcJyIg PDwgaW4gPDwgIlwnKSIsCisrICAgICAgICAgICAgaW50byhvdXQpKTsKKysKKysjZW5kaWYgLy8g U09DSV9QR1NRTF9OT1BBUkFNUworKworKyAgICAgICAgc3QuZXhlY3V0ZSh0cnVlKTsKKysgICAg ICAgIGFzc2VydChvdXQgPT0gaW4pOworKworKyAgICAgICAgLy8gZXhwbGljaXQgcHJvY2VkdXJl IHN5bnRheAorKyAgICAgICAgeworKyAgICAgICAgICAgIHN0ZDo6c3RyaW5nIGluKCJteSBtZXNz YWdlMiIpOworKyAgICAgICAgICAgIHN0ZDo6c3RyaW5nIG91dDsKKysKKysjaWZuZGVmIFNPQ0lf UEdTUUxfTk9QQVJBTVMKKysKKysgICAgICAgICAgICBwcm9jZWR1cmUgcHJvYyA9IChzcWwucHJl cGFyZSA8PAorKyAgICAgICAgICAgICAgICAic29jaV90ZXN0KDppbnB1dCkiLAorKyAgICAgICAg ICAgICAgICBpbnRvKG91dCksIHVzZShpbiwgImlucHV0IikpOworKworKyNlbHNlCisrICAgICAg ICAvLyBPbGRlciBQb3N0Z3JlU1FMIGRvZXMgbm90IHN1cHBvcnQgdXNlIGVsZW1lbnRzLgorKwor KyAgICAgICAgICAgIHByb2NlZHVyZSBwcm9jID0gKHNxbC5wcmVwYXJlIDw8CisrICAgICAgICAg ICAgICAgICJzb2NpX3Rlc3QoXCciIDw8IGluIDw8ICJcJykiLCBpbnRvKG91dCkpOworKworKyNl bmRpZiAvLyBTT0NJX1BHU1FMX05PUEFSQU1TCisrCisrICAgICAgICAgICAgcHJvYy5leGVjdXRl KHRydWUpOworKyAgICAgICAgICAgIGFzc2VydChvdXQgPT0gaW4pOworKyAgICAgICAgfQorKyAg ICB9CisrCisrICAgIHN0ZDo6Y291dCA8PCAidGVzdCAyIHBhc3NlZCIgPDwgc3RkOjplbmRsOwor K30KKysKKysvLyBCTE9CIHRlc3QKKytzdHJ1Y3QgYmxvYl90YWJsZV9jcmVhdG9yIDogcHVibGlj IHRhYmxlX2NyZWF0b3JfYmFzZQorK3sKKysgICAgYmxvYl90YWJsZV9jcmVhdG9yKHNlc3Npb24m IHNlc3Npb24pCisrICAgIDogdGFibGVfY3JlYXRvcl9iYXNlKHNlc3Npb24pCisrICAgIHsKKysg ICAgICAgIHNlc3Npb24gPDwKKysgICAgICAgICAgICAgImNyZWF0ZSB0YWJsZSBzb2NpX3Rlc3Qg KCIKKysgICAgICAgICAgICAgIiAgICBpZCBpbnRlZ2VyLCIKKysgICAgICAgICAgICAgIiAgICBp bWcgb2lkIgorKyAgICAgICAgICAgICAiKSI7CisrICAgIH0KKyt9OworKworK3ZvaWQgdGVzdDMo KQorK3sKKysgICAgeworKyAgICAgICAgc2Vzc2lvbiBzcWwoYmFja0VuZCwgY29ubmVjdFN0cmlu Zyk7CisrCisrICAgICAgICBibG9iX3RhYmxlX2NyZWF0b3IgdGFibGVDcmVhdG9yKHNxbCk7Cisr ICAgICAgICAKKysgICAgICAgIGNoYXIgYnVmW10gPSAiYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4 eXoiOworKworKyAgICAgICAgc3FsIDw8ICJpbnNlcnQgaW50byBzb2NpX3Rlc3QoaWQsIGltZykg dmFsdWVzKDcsIGxvX2NyZWF0KC0xKSkiOworKworKyAgICAgICAgLy8gaW4gUG9zdGdyZVNRTCwg QkxPQiBvcGVyYXRpb25zIG11c3QgYmUgd2l0aGluIHRyYW5zYWN0aW9uIGJsb2NrCisrICAgICAg ICB0cmFuc2FjdGlvbiB0cihzcWwpOworKworKyAgICAgICAgeworKyAgICAgICAgICAgIGJsb2Ig YihzcWwpOworKworKyAgICAgICAgICAgIHNxbCA8PCAic2VsZWN0IGltZyBmcm9tIHNvY2lfdGVz dCB3aGVyZSBpZCA9IDciLCBpbnRvKGIpOworKyAgICAgICAgICAgIGFzc2VydChiLmdldF9sZW4o KSA9PSAwKTsKKysKKysgICAgICAgICAgICBiLndyaXRlKDAsIGJ1Ziwgc2l6ZW9mKGJ1ZikpOwor KyAgICAgICAgICAgIGFzc2VydChiLmdldF9sZW4oKSA9PSBzaXplb2YoYnVmKSk7CisrCisrICAg ICAgICAgICAgYi5hcHBlbmQoYnVmLCBzaXplb2YoYnVmKSk7CisrICAgICAgICAgICAgYXNzZXJ0 KGIuZ2V0X2xlbigpID09IDIgKiBzaXplb2YoYnVmKSk7CisrICAgICAgICB9CisrICAgICAgICB7 CisrICAgICAgICAgICAgYmxvYiBiKHNxbCk7CisrICAgICAgICAgICAgc3FsIDw8ICJzZWxlY3Qg aW1nIGZyb20gc29jaV90ZXN0IHdoZXJlIGlkID0gNyIsIGludG8oYik7CisrICAgICAgICAgICAg YXNzZXJ0KGIuZ2V0X2xlbigpID09IDIgKiBzaXplb2YoYnVmKSk7CisrICAgICAgICAgICAgY2hh ciBidWYyWzEwMF07CisrICAgICAgICAgICAgYi5yZWFkKDAsIGJ1ZjIsIDEwKTsKKysgICAgICAg ICAgICBhc3NlcnQoc3RybmNtcChidWYyLCAiYWJjZGVmZ2hpaiIsIDEwKSA9PSAwKTsKKysgICAg ICAgIH0KKysKKysgICAgICAgIHVuc2lnbmVkIGxvbmcgb2lkOworKyAgICAgICAgc3FsIDw8ICJz ZWxlY3QgaW1nIGZyb20gc29jaV90ZXN0IHdoZXJlIGlkID0gNyIsIGludG8ob2lkKTsKKysgICAg ICAgIHNxbCA8PCAic2VsZWN0IGxvX3VubGluaygiIDw8IG9pZCA8PCAiKSI7CisrICAgIH0KKysK KysgICAgc3RkOjpjb3V0IDw8ICJ0ZXN0IDMgcGFzc2VkIiA8PCBzdGQ6OmVuZGw7CisrfQorKwor K3N0cnVjdCBsb25nbG9uZ190YWJsZV9jcmVhdG9yIDogdGFibGVfY3JlYXRvcl9iYXNlCisrewor KyAgICBsb25nbG9uZ190YWJsZV9jcmVhdG9yKHNlc3Npb24gJiBzcWwpCisrICAgICAgICA6IHRh YmxlX2NyZWF0b3JfYmFzZShzcWwpCisrICAgIHsKKysgICAgICAgIHNxbCA8PCAiY3JlYXRlIHRh YmxlIHNvY2lfdGVzdCh2YWwgaW50OCkiOworKyAgICB9CisrfTsKKysKKysvLyBsb25nIGxvbmcg dGVzdAorK3ZvaWQgdGVzdDQoKQorK3sKKysgICAgeworKyAgICAgICAgc2Vzc2lvbiBzcWwoYmFj a0VuZCwgY29ubmVjdFN0cmluZyk7CisrCisrICAgICAgICBsb25nbG9uZ190YWJsZV9jcmVhdG9y IHRhYmxlQ3JlYXRvcihzcWwpOworKworKyAgICAgICAgbG9uZyBsb25nIHYxID0gMTAwMDAwMDAw MDAwMExMOworKyAgICAgICAgYXNzZXJ0KHYxIC8gMTAwMDAwMCA9PSAxMDAwMDAwKTsKKysKKysg ICAgICAgIHNxbCA8PCAiaW5zZXJ0IGludG8gc29jaV90ZXN0KHZhbCkgdmFsdWVzKDp2YWwpIiwg dXNlKHYxKTsKKysKKysgICAgICAgIGxvbmcgbG9uZyB2MiA9IDBMTDsKKysgICAgICAgIHNxbCA8 PCAic2VsZWN0IHZhbCBmcm9tIHNvY2lfdGVzdCIsIGludG8odjIpOworKworKyAgICAgICAgYXNz ZXJ0KHYyID09IHYxKTsKKysgICAgfQorKworKyAgICAvLyB2ZWN0b3I8bG9uZyBsb25nPgorKyAg ICB7CisrICAgICAgICBzZXNzaW9uIHNxbChiYWNrRW5kLCBjb25uZWN0U3RyaW5nKTsKKysKKysg ICAgICAgIGxvbmdsb25nX3RhYmxlX2NyZWF0b3IgdGFibGVDcmVhdG9yKHNxbCk7CisrCisrICAg ICAgICBzdGQ6OnZlY3Rvcjxsb25nIGxvbmc+IHYxOworKyAgICAgICAgdjEucHVzaF9iYWNrKDEw MDAwMDAwMDAwMDBMTCk7CisrICAgICAgICB2MS5wdXNoX2JhY2soMTAwMDAwMDAwMDAwMUxMKTsK KysgICAgICAgIHYxLnB1c2hfYmFjaygxMDAwMDAwMDAwMDAyTEwpOworKyAgICAgICAgdjEucHVz aF9iYWNrKDEwMDAwMDAwMDAwMDNMTCk7CisrICAgICAgICB2MS5wdXNoX2JhY2soMTAwMDAwMDAw MDAwNExMKTsKKysKKysgICAgICAgIHNxbCA8PCAiaW5zZXJ0IGludG8gc29jaV90ZXN0KHZhbCkg dmFsdWVzKDp2YWwpIiwgdXNlKHYxKTsKKysKKysgICAgICAgIHN0ZDo6dmVjdG9yPGxvbmcgbG9u Zz4gdjIoMTApOworKyAgICAgICAgc3FsIDw8ICJzZWxlY3QgdmFsIGZyb20gc29jaV90ZXN0IG9y ZGVyIGJ5IHZhbCBkZXNjIiwgaW50byh2Mik7CisrCisrICAgICAgICBhc3NlcnQodjIuc2l6ZSgp ID09IDUpOworKyAgICAgICAgYXNzZXJ0KHYyWzBdID09IDEwMDAwMDAwMDAwMDRMTCk7CisrICAg ICAgICBhc3NlcnQodjJbMV0gPT0gMTAwMDAwMDAwMDAwM0xMKTsKKysgICAgICAgIGFzc2VydCh2 MlsyXSA9PSAxMDAwMDAwMDAwMDAyTEwpOworKyAgICAgICAgYXNzZXJ0KHYyWzNdID09IDEwMDAw MDAwMDAwMDFMTCk7CisrICAgICAgICBhc3NlcnQodjJbNF0gPT0gMTAwMDAwMDAwMDAwMExMKTsK KysgICAgfQorKworKyAgICBzdGQ6OmNvdXQgPDwgInRlc3QgNCBwYXNzZWQiIDw8IHN0ZDo6ZW5k bDsKKyt9CisrCisrc3RydWN0IGJvb2xlYW5fdGFibGVfY3JlYXRvciA6IHRhYmxlX2NyZWF0b3Jf YmFzZQorK3sKKysgICAgYm9vbGVhbl90YWJsZV9jcmVhdG9yKHNlc3Npb24gJiBzcWwpCisrICAg ICAgICA6IHRhYmxlX2NyZWF0b3JfYmFzZShzcWwpCisrICAgIHsKKysgICAgICAgIHNxbCA8PCAi Y3JlYXRlIHRhYmxlIHNvY2lfdGVzdCh2YWwgYm9vbGVhbikiOworKyAgICB9CisrfTsKKysKKyt2 b2lkIHRlc3Q1KCkKKyt7CisrICAgIHsKKysgICAgICAgIHNlc3Npb24gc3FsKGJhY2tFbmQsIGNv bm5lY3RTdHJpbmcpOworKworKyAgICAgICAgYm9vbGVhbl90YWJsZV9jcmVhdG9yIHRhYmxlQ3Jl YXRvcihzcWwpOworKworKyAgICAgICAgaW50IGkxID0gMDsKKysKKysgICAgICAgIHNxbCA8PCAi aW5zZXJ0IGludG8gc29jaV90ZXN0KHZhbCkgdmFsdWVzKDp2YWwpIiwgdXNlKGkxKTsKKysKKysg ICAgICAgIGludCBpMiA9IDc7CisrICAgICAgICBzcWwgPDwgInNlbGVjdCB2YWwgZnJvbSBzb2Np X3Rlc3QiLCBpbnRvKGkyKTsKKysKKysgICAgICAgIGFzc2VydChpMiA9PSBpMSk7CisrCisrICAg ICAgICBzcWwgPDwgInVwZGF0ZSBzb2NpX3Rlc3Qgc2V0IHZhbCA9IHRydWUiOworKyAgICAgICAg c3FsIDw8ICJzZWxlY3QgdmFsIGZyb20gc29jaV90ZXN0IiwgaW50byhpMik7CisrICAgICAgICBh c3NlcnQoaTIgPT0gMSk7CisrICAgIH0KKysKKysgICAgc3RkOjpjb3V0IDw8ICJ0ZXN0IDUgcGFz c2VkIiA8PCBzdGQ6OmVuZGw7CisrfQorKworKy8vIGR5bmFtaWMgYmFja2VuZCB0ZXN0Cisrdm9p ZCB0ZXN0NigpCisreworKyAgICB0cnkKKysgICAgeworKyAgICAgICAgc2Vzc2lvbiBzcWwoIm5v c3VjaGJhY2tlbmQ6Ly8iICsgY29ubmVjdFN0cmluZyk7CisrICAgICAgICBhc3NlcnQoZmFsc2Up OworKyAgICB9CisrICAgIGNhdGNoIChzb2NpX2Vycm9yIGNvbnN0ICYgZSkKKysgICAgeworKyAg ICAgICAgYXNzZXJ0KGUud2hhdCgpID09IHN0ZDo6c3RyaW5nKCJGYWlsZWQgdG8gb3BlbjogbGli c29jaV9ub3N1Y2hiYWNrZW5kLnNvIikpOworKyAgICB9CisrCisrICAgIHsKKysgICAgICAgIGR5 bmFtaWNfYmFja2VuZHM6OnJlZ2lzdGVyX2JhY2tlbmQoInBnc3FsIiwgYmFja0VuZCk7CisrCisr ICAgICAgICBzdGQ6OnZlY3RvcjxzdGQ6OnN0cmluZz4gYmFja2VuZHMgPSBkeW5hbWljX2JhY2tl bmRzOjpsaXN0X2FsbCgpOworKyAgICAgICAgYXNzZXJ0KGJhY2tlbmRzLnNpemUoKSA9PSAxKTsK KysgICAgICAgIGFzc2VydChiYWNrZW5kc1swXSA9PSAicGdzcWwiKTsKKysKKysgICAgICAgIHsK KysgICAgICAgICAgICBzZXNzaW9uIHNxbCgicGdzcWw6Ly8iICsgY29ubmVjdFN0cmluZyk7Cisr ICAgICAgICB9CisrCisrICAgICAgICBkeW5hbWljX2JhY2tlbmRzOjp1bmxvYWQoInBnc3FsIik7 CisrCisrICAgICAgICBiYWNrZW5kcyA9IGR5bmFtaWNfYmFja2VuZHM6Omxpc3RfYWxsKCk7Cisr ICAgICAgICBhc3NlcnQoYmFja2VuZHMuZW1wdHkoKSk7CisrICAgIH0KKysKKysgICAgeworKyAg ICAgICAgc2Vzc2lvbiBzcWwoInBvc3RncmVzcWw6Ly8iICsgY29ubmVjdFN0cmluZyk7CisrICAg IH0KKysKKysgICAgc3RkOjpjb3V0IDw8ICJ0ZXN0IDYgcGFzc2VkIiA8PCBzdGQ6OmVuZGw7Cisr fQorKworK3ZvaWQgdGVzdDcoKQorK3sKKysgICAgeworKyAgICAgICAgc2Vzc2lvbiBzcWwoYmFj a0VuZCwgY29ubmVjdFN0cmluZyk7CisrCisrICAgICAgICBpbnQgaTsKKysgICAgICAgIHNxbCA8 PCAic2VsZWN0IDEyMyIsIGludG8oaSk7CisrICAgICAgICBhc3NlcnQoaSA9PSAxMjMpOworKwor KyAgICAgICAgdHJ5CisrICAgICAgICB7CisrICAgICAgICAgICAgc3FsIDw8ICJzZWxlY3QgJ0FC QyciLCBpbnRvIChpKTsKKysgICAgICAgICAgICBhc3NlcnQoZmFsc2UpOworKyAgICAgICAgfQor KyAgICAgICAgY2F0Y2ggKHNvY2lfZXJyb3IgY29uc3QgJiBlKQorKyAgICAgICAgeworKyAgICAg ICAgICAgIGFzc2VydChlLndoYXQoKSA9PSBzdGQ6OnN0cmluZygiQ2Fubm90IGNvbnZlcnQgZGF0 YS4iKSk7CisrICAgICAgICB9CisrICAgIH0KKysKKysgICAgc3RkOjpjb3V0IDw8ICJ0ZXN0IDcg cGFzc2VkIiA8PCBzdGQ6OmVuZGw7CisrfQorKworK3ZvaWQgdGVzdDgoKQorK3sKKysgICAgewor KyAgICAgICAgc2Vzc2lvbiBzcWwoYmFja0VuZCwgY29ubmVjdFN0cmluZyk7CisrCisrICAgICAg ICBhc3NlcnQoc3FsLmdldF9iYWNrZW5kX25hbWUoKSA9PSAicG9zdGdyZXNxbCIpOworKyAgICB9 CisrCisrICAgIHN0ZDo6Y291dCA8PCAidGVzdCA4IHBhc3NlZCIgPDwgc3RkOjplbmRsOworK30K KysKKysvLyBEREwgQ3JlYXRpb24gb2JqZWN0cyBmb3IgY29tbW9uIHRlc3RzCisrc3RydWN0IHRh YmxlX2NyZWF0b3Jfb25lIDogcHVibGljIHRhYmxlX2NyZWF0b3JfYmFzZQorK3sKKysgICAgdGFi bGVfY3JlYXRvcl9vbmUoc2Vzc2lvbiYgc2Vzc2lvbikKKysgICAgICAgIDogdGFibGVfY3JlYXRv cl9iYXNlKHNlc3Npb24pCisrICAgIHsKKysgICAgICAgIHNlc3Npb24gPDwgImNyZWF0ZSB0YWJs ZSBzb2NpX3Rlc3QoaWQgaW50ZWdlciwgdmFsIGludGVnZXIsIGMgY2hhciwgIgorKyAgICAgICAg ICAgICAgICAgInN0ciB2YXJjaGFyKDIwKSwgc2ggaW50MiwgdWwgbnVtZXJpYygyMCksIGQgZmxv YXQ4LCAiCisrICAgICAgICAgICAgICAgICAidG0gdGltZXN0YW1wLCBpMSBpbnRlZ2VyLCBpMiBp bnRlZ2VyLCBpMyBpbnRlZ2VyLCAiCisrICAgICAgICAgICAgICAgICAibmFtZSB2YXJjaGFyKDIw KSkiOworKyAgICB9CisrfTsKKysKKytzdHJ1Y3QgdGFibGVfY3JlYXRvcl90d28gOiBwdWJsaWMg dGFibGVfY3JlYXRvcl9iYXNlCisreworKyAgICB0YWJsZV9jcmVhdG9yX3R3byhzZXNzaW9uJiBz ZXNzaW9uKQorKyAgICAgICAgOiB0YWJsZV9jcmVhdG9yX2Jhc2Uoc2Vzc2lvbikKKysgICAgewor KyAgICAgICAgc2Vzc2lvbiAgPDwgImNyZWF0ZSB0YWJsZSBzb2NpX3Rlc3QobnVtX2Zsb2F0IGZs b2F0OCwgbnVtX2ludCBpbnRlZ2VyLCIKKysgICAgICAgICAgICAgICAgICAgICAiIG5hbWUgdmFy Y2hhcigyMCksIHNvbWV0aW1lIHRpbWVzdGFtcCwgY2hyIGNoYXIpIjsKKysgICAgfQorK307Cisr Cisrc3RydWN0IHRhYmxlX2NyZWF0b3JfdGhyZWUgOiBwdWJsaWMgdGFibGVfY3JlYXRvcl9iYXNl CisreworKyAgICB0YWJsZV9jcmVhdG9yX3RocmVlKHNlc3Npb24mIHNlc3Npb24pCisrICAgICAg ICA6IHRhYmxlX2NyZWF0b3JfYmFzZShzZXNzaW9uKQorKyAgICB7CisrICAgICAgICBzZXNzaW9u IDw8ICJjcmVhdGUgdGFibGUgc29jaV90ZXN0KG5hbWUgdmFyY2hhcigxMDApIG5vdCBudWxsLCAi CisrICAgICAgICAgICAgInBob25lIHZhcmNoYXIoMTUpKSI7CisrICAgIH0KKyt9OworKworKy8v CisrLy8gU3VwcG9ydCBmb3Igc29jaSBDb21tb24gVGVzdHMKKysvLworKworK2NsYXNzIHRlc3Rf Y29udGV4dCA6IHB1YmxpYyB0ZXN0X2NvbnRleHRfYmFzZQorK3sKKytwdWJsaWM6CisrICAgIHRl c3RfY29udGV4dChiYWNrZW5kX2ZhY3RvcnkgY29uc3QgJmJhY2tFbmQsCisrICAgICAgICAgICAg ICAgIHN0ZDo6c3RyaW5nIGNvbnN0ICZjb25uZWN0U3RyaW5nKQorKyAgICAgICAgOiB0ZXN0X2Nv bnRleHRfYmFzZShiYWNrRW5kLCBjb25uZWN0U3RyaW5nKSB7fQorKworKyAgICB0YWJsZV9jcmVh dG9yX2Jhc2UqIHRhYmxlX2NyZWF0b3JfMShzZXNzaW9uJiBzKSBjb25zdAorKyAgICB7CisrICAg ICAgICByZXR1cm4gbmV3IHRhYmxlX2NyZWF0b3Jfb25lKHMpOworKyAgICB9CisrCisrICAgIHRh YmxlX2NyZWF0b3JfYmFzZSogdGFibGVfY3JlYXRvcl8yKHNlc3Npb24mIHMpIGNvbnN0CisrICAg IHsKKysgICAgICAgIHJldHVybiBuZXcgdGFibGVfY3JlYXRvcl90d28ocyk7CisrICAgIH0KKysK KysgICAgdGFibGVfY3JlYXRvcl9iYXNlKiB0YWJsZV9jcmVhdG9yXzMoc2Vzc2lvbiYgcykgY29u c3QKKysgICAgeworKyAgICAgICAgcmV0dXJuIG5ldyB0YWJsZV9jcmVhdG9yX3RocmVlKHMpOwor KyAgICB9CisrCisrICAgIHN0ZDo6c3RyaW5nIHRvX2RhdGVfdGltZShzdGQ6OnN0cmluZyBjb25z dCAmZGF0ZHRfc3RyaW5nKSBjb25zdAorKyAgICB7CisrICAgICAgICByZXR1cm4gInRpbWVzdGFt cHR6KFwnIiArIGRhdGR0X3N0cmluZyArICJcJykiOworKyAgICB9CisrCisrfTsKKysKKysKKytp bnQgbWFpbihpbnQgYXJnYywgY2hhcioqIGFyZ3YpCisreworKworKyNpZmRlZiBfTVNDX1ZFUgor KyAgICAvLyBSZWRpcmVjdCBlcnJvcnMsIHVucmVjb3ZlcmFibGUgcHJvYmxlbXMsIGFuZCBhc3Nl cnQoKSBmYWlsdXJlcyB0byBTVERFUlIsCisrICAgIC8vIGluc3RlYWQgb2YgZGVidWcgbWVzc2Fn ZSB3aW5kb3cuCisrICAgIC8vIFRoaXMgaGFjayBpcyByZXF1aXJlZCB0byBydW4gYXNzZXIoKS1k cml2ZW4gdGVzdHMgYnkgQnVpbGRib3QuCisrICAgIC8vIE5PVEU6IENvbW1lbnQgdGhpcyAyIGxp bmVzIGZvciBkZWJ1Z2dpbmcgd2l0aCBWaXN1YWwgQysrIGRlYnVnZ2VyIHRvIGNhdGNoIGFzc2Vy dGlvbnMgaW5zaWRlLgorKyAgICBfQ3J0U2V0UmVwb3J0TW9kZShfQ1JUX0VSUk9SLCBfQ1JUREJH X01PREVfRklMRSk7CisrICAgIF9DcnRTZXRSZXBvcnRGaWxlKF9DUlRfRVJST1IsIF9DUlREQkdf RklMRV9TVERFUlIpOworKyNlbmRpZiAvL19NU0NfVkVSCisrCisrICAgIGlmIChhcmdjID09IDIp CisrICAgIHsKKysgICAgICAgIGNvbm5lY3RTdHJpbmcgPSBhcmd2WzFdOworKyAgICB9CisrICAg IGVsc2UKKysgICAgeworKyAgICAgICAgc3RkOjpjb3V0IDw8ICJ1c2FnZTogIiA8PCBhcmd2WzBd CisrICAgICAgICAgICAgPDwgIiBjb25uZWN0c3RyaW5nXG4iCisrICAgICAgICAgICAgPDwgImV4 YW1wbGU6ICIgPDwgYXJndlswXQorKyAgICAgICAgICAgIDw8ICIgXCdjb25uZWN0X3N0cmluZ19m b3JfUG9zdGdyZVNRTFwnXG4iOworKyAgICAgICAgcmV0dXJuIEVYSVRfRkFJTFVSRTsKKysgICAg fQorKworKyAgICB0cnkKKysgICAgeworKyAgICAgICAgdGVzdF9jb250ZXh0IHRjKGJhY2tFbmQs IGNvbm5lY3RTdHJpbmcpOworKyAgICAgICAgY29tbW9uX3Rlc3RzIHRlc3RzKHRjKTsKKysgICAg ICAgIHRlc3RzLnJ1bigpOworKworKyAgICAgICAgc3RkOjpjb3V0IDw8ICJcblNPQ0kgUG9zdGdy ZXMgVGVzdHM6XG5cbiI7CisrCisrICAgICAgICB0ZXN0MSgpOworKyAgICAgICAgdGVzdDIoKTsK KysgICAgICAgIHRlc3QzKCk7CisrICAgICAgICB0ZXN0NCgpOworKyAgICAgICAgdGVzdDUoKTsK KysKKysvLyAgICAgICAgIHRlc3Q2KCk7CisrICAgICAgICBzdGQ6OmNvdXQgPDwgInRlc3QgNiBz a2lwcGVkIChkeW5hbWljIGJhY2tlbmQpXG4iOworKworKyAgICAgICAgdGVzdDcoKTsKKysgICAg ICAgIHRlc3Q4KCk7CisrCisrICAgICAgICBzdGQ6OmNvdXQgPDwgIlxuT0ssIGFsbCB0ZXN0cyBw YXNzZWQuXG5cbiI7CisrICAgICAgICByZXR1cm4gRVhJVF9TVUNDRVNTOworKyAgICB9CisrICAg IGNhdGNoIChzdGQ6OmV4Y2VwdGlvbiBjb25zdCAmIGUpCisrICAgIHsKKysgICAgICAgIHN0ZDo6 Y291dCA8PCBlLndoYXQoKSA8PCAnXG4nOworKyAgICAgICAgcmV0dXJuIEVYSVRfRkFJTFVSRTsK KysgICAgfQorK30KK2RpZmYgLU51ciBzb2NpLTMuMC4wL3NyYy9jb3JlL3NvY2ktc2ltcGxlLmNw cCBzb2NpLTMuMC4wXzQtcGFjay9zcmMvY29yZS9zb2NpLXNpbXBsZS5jcHAKKy0tLSBzb2NpLTMu MC4wL3NyYy9jb3JlL3NvY2ktc2ltcGxlLmNwcAkyMDA4LTA3LTAxIDA5OjQyOjI1LjAwMDAwMDAw MCArMDIwMAorKysrIHNvY2ktMy4wLjBfNC1wYWNrL3NyYy9jb3JlL3NvY2ktc2ltcGxlLmNwcAky MDEwLTAxLTIzIDEzOjE3OjI4LjAwMDAwMDAwMCArMDEwMAorQEAgLTksNiArOSw4IEBACisgCisg I2luY2x1ZGUgInNvY2ktc2ltcGxlLmgiCisgI2luY2x1ZGUgInNvY2kuaCIKKysvLworKyNpbmNs dWRlIDxjc3RkaW8+CisgCisgdXNpbmcgbmFtZXNwYWNlIHNvY2k7CisgCgpkaWZmIC0tZ2l0IGEv c29jaS0zLjAuMC0xNi1maXgtZ251LWF1dG90b29scy1jb21wYXRpYmlsaXR5LnBhdGNoIGIvc29j aS0zLjAuMC0xNi1maXgtZ251LWF1dG90b29scy1jb21wYXRpYmlsaXR5LnBhdGNoCm5ldyBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjkyZjlmM2YKLS0tIC9kZXYvbnVsbAorKysgYi9z b2NpLTMuMC4wLTE2LWZpeC1nbnUtYXV0b3Rvb2xzLWNvbXBhdGliaWxpdHkucGF0Y2gKQEAgLTAs MCArMSw2MjMzOSBAQAorZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL2FjbG9jYWwubTQgc29j aS0zLjAuMF90cmVwMzAwL2FjbG9jYWwubTQKKy0tLSBzb2NpLTMuMC4wXzQtcGFjay9hY2xvY2Fs Lm00CTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCisrKysgc29jaS0zLjAuMF90 cmVwMzAwL2FjbG9jYWwubTQJMjAxMC0wMS0yMyAxNDo0NDo0Ny4wMDAwMDAwMDAgKzAxMDAKK0BA IC0wLDAgKzEsOTYxIEBACisrIyBnZW5lcmF0ZWQgYXV0b21hdGljYWxseSBieSBhY2xvY2FsIDEu MTEuMSAtKi0gQXV0b2NvbmYgLSotCisrCisrIyBDb3B5cmlnaHQgKEMpIDE5OTYsIDE5OTcsIDE5 OTgsIDE5OTksIDIwMDAsIDIwMDEsIDIwMDIsIDIwMDMsIDIwMDQsCisrIyAyMDA1LCAyMDA2LCAy MDA3LCAyMDA4LCAyMDA5ICBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKysjIFRoaXMg ZmlsZSBpcyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCisrIyBn aXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5IGFuZC9vciBkaXN0cmlidXRlIGl0LAor KyMgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbnMsIGFzIGxvbmcgYXMgdGhpcyBub3RpY2Ug aXMgcHJlc2VydmVkLgorKworKyMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBo b3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisrIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFks IHRvIHRoZSBleHRlbnQgcGVybWl0dGVkIGJ5IGxhdzsgd2l0aG91dAorKyMgZXZlbiB0aGUgaW1w bGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQQorKyMgUEFS VElDVUxBUiBQVVJQT1NFLgorKworK200X2lmbmRlZihbQUNfQVVUT0NPTkZfVkVSU0lPTl0sCisr ICBbbTRfY29weShbbTRfUEFDS0FHRV9WRVJTSU9OXSwgW0FDX0FVVE9DT05GX1ZFUlNJT05dKV0p ZG5sCisrbTRfaWYobTRfZGVmbihbQUNfQVVUT0NPTkZfVkVSU0lPTl0pLCBbMi42M10sLAorK1tt NF93YXJuaW5nKFt0aGlzIGZpbGUgd2FzIGdlbmVyYXRlZCBmb3IgYXV0b2NvbmYgMi42My4KKytZ b3UgaGF2ZSBhbm90aGVyIHZlcnNpb24gb2YgYXV0b2NvbmYuICBJdCBtYXkgd29yaywgYnV0IGlz IG5vdCBndWFyYW50ZWVkIHRvLgorK0lmIHlvdSBoYXZlIHByb2JsZW1zLCB5b3UgbWF5IG5lZWQg dG8gcmVnZW5lcmF0ZSB0aGUgYnVpbGQgc3lzdGVtIGVudGlyZWx5LgorK1RvIGRvIHNvLCB1c2Ug dGhlIHByb2NlZHVyZSBkb2N1bWVudGVkIGJ5IHRoZSBwYWNrYWdlLCB0eXBpY2FsbHkgYGF1dG9y ZWNvbmYnLl0pXSkKKysKKysjIENvcHlyaWdodCAoQykgMjAwMiwgMjAwMywgMjAwNSwgMjAwNiwg MjAwNywgMjAwOCAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisrIworKyMgVGhpcyBm aWxlIGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24KKysjIGdp dmVzIHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNvcHkgYW5kL29yIGRpc3RyaWJ1dGUgaXQsCisr IyB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9ucywgYXMgbG9uZyBhcyB0aGlzIG5vdGljZSBp cyBwcmVzZXJ2ZWQuCisrCisrIyBBTV9BVVRPTUFLRV9WRVJTSU9OKFZFUlNJT04pCisrIyAtLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrIyBBdXRvbWFrZSBYLlkgdHJhY2VzIHRoaXMgbWFj cm8gdG8gZW5zdXJlIGFjbG9jYWwubTQgaGFzIGJlZW4KKysjIGdlbmVyYXRlZCBmcm9tIHRoZSBt NCBmaWxlcyBhY2NvbXBhbnlpbmcgQXV0b21ha2UgWC5ZLgorKyMgKFRoaXMgcHJpdmF0ZSBtYWNy byBzaG91bGQgbm90IGJlIGNhbGxlZCBvdXRzaWRlIHRoaXMgZmlsZS4pCisrQUNfREVGVU4oW0FN X0FVVE9NQUtFX1ZFUlNJT05dLAorK1thbV9fYXBpX3ZlcnNpb249JzEuMTEnCisrZG5sIFNvbWUg dXNlcnMgZmluZCBBTV9BVVRPTUFLRV9WRVJTSU9OIGFuZCBtaXN0YWtlIGl0IGZvciBhIHdheSB0 bworK2RubCByZXF1aXJlIHNvbWUgbWluaW11bSB2ZXJzaW9uLiAgUG9pbnQgdGhlbSB0byB0aGUg cmlnaHQgbWFjcm8uCisrbTRfaWYoWyQxXSwgWzEuMTEuMV0sIFtdLAorKyAgICAgIFtBQ19GQVRB TChbRG8gbm90IGNhbGwgJDAsIHVzZSBBTV9JTklUX0FVVE9NQUtFKFskMV0pLl0pXSlkbmwKKytd KQorKworKyMgX0FNX0FVVE9DT05GX1ZFUlNJT04oVkVSU0lPTikKKysjIC0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCisrIyBhY2xvY2FsIHRyYWNlcyB0aGlzIG1hY3JvIHRvIGZpbmQgdGhl IEF1dG9jb25mIHZlcnNpb24uCisrIyBUaGlzIGlzIGEgcHJpdmF0ZSBtYWNybyB0b28uICBVc2lu ZyBtNF9kZWZpbmUgc2ltcGxpZmllcworKyMgdGhlIGxvZ2ljIGluIGFjbG9jYWwsIHdoaWNoIGNh biBzaW1wbHkgaWdub3JlIHRoaXMgZGVmaW5pdGlvbi4KKyttNF9kZWZpbmUoW19BTV9BVVRPQ09O Rl9WRVJTSU9OXSwgW10pCisrCisrIyBBTV9TRVRfQ1VSUkVOVF9BVVRPTUFLRV9WRVJTSU9OCisr IyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrIyBDYWxsIEFNX0FVVE9NQUtFX1ZF UlNJT04gYW5kIEFNX0FVVE9NQUtFX1ZFUlNJT04gc28gdGhleSBjYW4gYmUgdHJhY2VkLgorKyMg VGhpcyBmdW5jdGlvbiBpcyBBQ19SRVFVSVJFZCBieSBBTV9JTklUX0FVVE9NQUtFLgorK0FDX0RF RlVOKFtBTV9TRVRfQ1VSUkVOVF9BVVRPTUFLRV9WRVJTSU9OXSwKKytbQU1fQVVUT01BS0VfVkVS U0lPTihbMS4xMS4xXSlkbmwKKyttNF9pZm5kZWYoW0FDX0FVVE9DT05GX1ZFUlNJT05dLAorKyAg W200X2NvcHkoW200X1BBQ0tBR0VfVkVSU0lPTl0sIFtBQ19BVVRPQ09ORl9WRVJTSU9OXSldKWRu bAorK19BTV9BVVRPQ09ORl9WRVJTSU9OKG00X2RlZm4oW0FDX0FVVE9DT05GX1ZFUlNJT05dKSld KQorKworKyMgQU1fQVVYX0RJUl9FWFBBTkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIC0qLSBBdXRvY29uZiAtKi0KKysKKysjIENvcHlyaWdodCAoQykgMjAwMSwgMjAw MywgMjAwNSAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisrIworKyMgVGhpcyBmaWxl IGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24KKysjIGdpdmVz IHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNvcHkgYW5kL29yIGRpc3RyaWJ1dGUgaXQsCisrIyB3 aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9ucywgYXMgbG9uZyBhcyB0aGlzIG5vdGljZSBpcyBw cmVzZXJ2ZWQuCisrCisrIyBGb3IgcHJvamVjdHMgdXNpbmcgQUNfQ09ORklHX0FVWF9ESVIoW2Zv b10pLCBBdXRvY29uZiBzZXRzCisrIyAkYWNfYXV4X2RpciB0byBgJHNyY2Rpci9mb28nLiAgSW4g b3RoZXIgcHJvamVjdHMsIGl0IGlzIHNldCB0bworKyMgYCRzcmNkaXInLCBgJHNyY2Rpci8uLics IG9yIGAkc3JjZGlyLy4uLy4uJy4KKysjCisrIyBPZiBjb3Vyc2UsIEF1dG9tYWtlIG11c3QgaG9u b3IgdGhpcyB2YXJpYWJsZSB3aGVuZXZlciBpdCBjYWxscyBhCisrIyB0b29sIGZyb20gdGhlIGF1 eGlsaWFyeSBkaXJlY3RvcnkuICBUaGUgcHJvYmxlbSBpcyB0aGF0ICRzcmNkaXIgKGFuZAorKyMg dGhlcmVmb3JlICRhY19hdXhfZGlyIGFzIHdlbGwpIGNhbiBiZSBlaXRoZXIgYWJzb2x1dGUgb3Ig cmVsYXRpdmUsCisrIyBkZXBlbmRpbmcgb24gaG93IGNvbmZpZ3VyZSBpcyBydW4uICBUaGlzIGlz IHByZXR0eSBhbm5veWluZywgc2luY2UKKysjIGl0IG1ha2VzICRhY19hdXhfZGlyIHF1aXRlIHVu dXNhYmxlIGluIHN1YmRpcmVjdG9yaWVzOiBpbiB0aGUgdG9wCisrIyBzb3VyY2UgZGlyZWN0b3J5 LCBhbnkgZm9ybSB3aWxsIHdvcmsgZmluZSwgYnV0IGluIHN1YmRpcmVjdG9yaWVzIGEKKysjIHJl bGF0aXZlIHBhdGggbmVlZHMgdG8gYmUgYWRqdXN0ZWQgZmlyc3QuCisrIworKyMgJGFjX2F1eF9k aXIvbWlzc2luZworKyMgICAgZmFpbHMgd2hlbiBjYWxsZWQgZnJvbSBhIHN1YmRpcmVjdG9yeSBp ZiAkYWNfYXV4X2RpciBpcyByZWxhdGl2ZQorKyMgJHRvcF9zcmNkaXIvJGFjX2F1eF9kaXIvbWlz c2luZworKyMgICAgZmFpbHMgaWYgJGFjX2F1eF9kaXIgaXMgYWJzb2x1dGUsCisrIyAgICBmYWls cyB3aGVuIGNhbGxlZCBmcm9tIGEgc3ViZGlyZWN0b3J5IGluIGEgVlBBVEggYnVpbGQgd2l0aAor KyMgICAgICAgICAgYSByZWxhdGl2ZSAkYWNfYXV4X2RpcgorKyMKKysjIFRoZSByZWFzb24gb2Yg dGhlIGxhdHRlciBmYWlsdXJlIGlzIHRoYXQgJHRvcF9zcmNkaXIgYW5kICRhY19hdXhfZGlyCisr IyBhcmUgYm90aCBwcmVmaXhlZCBieSAkc3JjZGlyLiAgSW4gYW4gaW4tc291cmNlIGJ1aWxkIHRo aXMgaXMgdXN1YWxseQorKyMgaGFybWxlc3MgYmVjYXVzZSAkc3JjZGlyIGlzIGAuJywgYnV0IHRo aW5ncyB3aWxsIGJyb2tlIHdoZW4geW91CisrIyBzdGFydCBhIFZQQVRIIGJ1aWxkIG9yIHVzZSBh biBhYnNvbHV0ZSAkc3JjZGlyLgorKyMKKysjIFNvIHdlIGNvdWxkIHVzZSBzb21ldGhpbmcgc2lt aWxhciB0byAkdG9wX3NyY2Rpci8kYWNfYXV4X2Rpci9taXNzaW5nLAorKyMgaWZmIHdlIHN0cmlw IHRoZSBsZWFkaW5nICRzcmNkaXIgZnJvbSAkYWNfYXV4X2Rpci4gIFRoYXQgd291bGQgYmU6Cisr IyAgIGFtX2F1eF9kaXI9J1wkKHRvcF9zcmNkaXIpLydgZXhwciAiJGFjX2F1eF9kaXIiIDogIiRz cmNkaXIvLypcKC4qXCkiYAorKyMgYW5kIHRoZW4gd2Ugd291bGQgZGVmaW5lICRNSVNTSU5HIGFz CisrIyAgIE1JU1NJTkc9Ilwke1NIRUxMfSAkYW1fYXV4X2Rpci9taXNzaW5nIgorKyMgVGhpcyB3 aWxsIHdvcmsgYXMgbG9uZyBhcyBNSVNTSU5HIGlzIG5vdCBjYWxsZWQgZnJvbSBjb25maWd1cmUs IGJlY2F1c2UKKysjIHVuZm9ydHVuYXRlbHkgJCh0b3Bfc3JjZGlyKSBoYXMgbm8gbWVhbmluZyBp biBjb25maWd1cmUuCisrIyBIb3dldmVyIHRoZXJlIGFyZSBvdGhlciB2YXJpYWJsZXMsIGxpa2Ug Q0MsIHdoaWNoIGFyZSBvZnRlbiB1c2VkIGluCisrIyBjb25maWd1cmUsIGFuZCBjb3VsZCB0aGVy ZWZvcmUgbm90IHVzZSB0aGlzICJmaXhlZCIgJGFjX2F1eF9kaXIuCisrIworKyMgQW5vdGhlciBz b2x1dGlvbiwgdXNlZCBoZXJlLCBpcyB0byBhbHdheXMgZXhwYW5kICRhY19hdXhfZGlyIHRvIGFu CisrIyBhYnNvbHV0ZSBQQVRILiAgVGhlIGRyYXdiYWNrIGlzIHRoYXQgdXNpbmcgYWJzb2x1dGUg cGF0aHMgcHJldmVudCBhCisrIyBjb25maWd1cmVkIHRyZWUgdG8gYmUgbW92ZWQgd2l0aG91dCBy ZWNvbmZpZ3VyYXRpb24uCisrCisrQUNfREVGVU4oW0FNX0FVWF9ESVJfRVhQQU5EXSwKKytbZG5s IFJlbHkgb24gYXV0b2NvbmYgdG8gc2V0IHVwIENEUEFUSCBwcm9wZXJseS4KKytBQ19QUkVSRVEo WzIuNTBdKWRubAorKyMgZXhwYW5kICRhY19hdXhfZGlyIHRvIGFuIGFic29sdXRlIHBhdGgKKyth bV9hdXhfZGlyPWBjZCAkYWNfYXV4X2RpciAmJiBwd2RgCisrXSkKKysKKysjIEFNX0NPTkRJVElP TkFMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtKi0gQXV0b2Nv bmYgLSotCisrCisrIyBDb3B5cmlnaHQgKEMpIDE5OTcsIDIwMDAsIDIwMDEsIDIwMDMsIDIwMDQs IDIwMDUsIDIwMDYsIDIwMDgKKysjIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorKyMK KysjIFRoaXMgZmlsZSBpcyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0 aW9uCisrIyBnaXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5IGFuZC9vciBkaXN0cmli dXRlIGl0LAorKyMgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbnMsIGFzIGxvbmcgYXMgdGhp cyBub3RpY2UgaXMgcHJlc2VydmVkLgorKworKyMgc2VyaWFsIDkKKysKKysjIEFNX0NPTkRJVElP TkFMKE5BTUUsIFNIRUxMLUNPTkRJVElPTikKKysjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KKysjIERlZmluZSBhIGNvbmRpdGlvbmFsLgorK0FDX0RFRlVOKFtBTV9DT05E SVRJT05BTF0sCisrW0FDX1BSRVJFUSgyLjUyKWRubAorKyBpZmVsc2UoWyQxXSwgW1RSVUVdLCAg W0FDX0ZBVEFMKFskMDogaW52YWxpZCBjb25kaXRpb246ICQxXSldLAorKwlbJDFdLCBbRkFMU0Vd LCBbQUNfRkFUQUwoWyQwOiBpbnZhbGlkIGNvbmRpdGlvbjogJDFdKV0pZG5sCisrQUNfU1VCU1Qo WyQxX1RSVUVdKWRubAorK0FDX1NVQlNUKFskMV9GQUxTRV0pZG5sCisrX0FNX1NVQlNUX05PVE1B S0UoWyQxX1RSVUVdKWRubAorK19BTV9TVUJTVF9OT1RNQUtFKFskMV9GQUxTRV0pZG5sCisrbTRf ZGVmaW5lKFtfQU1fQ09ORF9WQUxVRV8kMV0sIFskMl0pZG5sCisraWYgJDI7IHRoZW4KKysgICQx X1RSVUU9CisrICAkMV9GQUxTRT0nIycKKytlbHNlCisrICAkMV9UUlVFPScjJworKyAgJDFfRkFM U0U9CisrZmkKKytBQ19DT05GSUdfQ09NTUFORFNfUFJFKAorK1tpZiB0ZXN0IC16ICIkeyQxX1RS VUV9IiAmJiB0ZXN0IC16ICIkeyQxX0ZBTFNFfSI7IHRoZW4KKysgIEFDX01TR19FUlJPUihbW2Nv bmRpdGlvbmFsICIkMSIgd2FzIG5ldmVyIGRlZmluZWQuCisrVXN1YWxseSB0aGlzIG1lYW5zIHRo ZSBtYWNybyB3YXMgb25seSBpbnZva2VkIGNvbmRpdGlvbmFsbHkuXV0pCisrZmldKV0pCisrCisr IyBDb3B5cmlnaHQgKEMpIDE5OTksIDIwMDAsIDIwMDEsIDIwMDIsIDIwMDMsIDIwMDQsIDIwMDUs IDIwMDYsIDIwMDkKKysjIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorKyMKKysjIFRo aXMgZmlsZSBpcyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCisr IyBnaXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5IGFuZC9vciBkaXN0cmlidXRlIGl0 LAorKyMgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbnMsIGFzIGxvbmcgYXMgdGhpcyBub3Rp Y2UgaXMgcHJlc2VydmVkLgorKworKyMgc2VyaWFsIDEwCisrCisrIyBUaGVyZSBhcmUgYSBmZXcg ZGlydHkgaGFja3MgYmVsb3cgdG8gYXZvaWQgbGV0dGluZyBgQUNfUFJPR19DQycgYmUKKysjIHdy aXR0ZW4gaW4gY2xlYXIsIGluIHdoaWNoIGNhc2UgYXV0b21ha2UsIHdoZW4gcmVhZGluZyBhY2xv Y2FsLm00LAorKyMgd2lsbCB0aGluayBpdCBzZWVzIGEgKnVzZSosIGFuZCB0aGVyZWZvcmUgd2ls bCB0cmlnZ2VyIGFsbCBpdCdzCisrIyBDIHN1cHBvcnQgbWFjaGluZXJ5LiAgQWxzbyBub3RlIHRo YXQgaXQgbWVhbnMgdGhhdCBhdXRvc2Nhbiwgc2VlaW5nCisrIyBDQyBldGMuIGluIHRoZSBNYWtl ZmlsZSwgd2lsbCBhc2sgZm9yIGFuIEFDX1BST0dfQ0MgdXNlLi4uCisrCisrCisrIyBfQU1fREVQ RU5ERU5DSUVTKE5BTUUpCisrIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrIyBTZWUgaG93IHRo ZSBjb21waWxlciBpbXBsZW1lbnRzIGRlcGVuZGVuY3kgY2hlY2tpbmcuCisrIyBOQU1FIGlzICJD QyIsICJDWFgiLCAiR0NKIiwgb3IgIk9CSkMiLgorKyMgV2UgdHJ5IGEgZmV3IHRlY2huaXF1ZXMg YW5kIHVzZSB0aGF0IHRvIHNldCBhIHNpbmdsZSBjYWNoZSB2YXJpYWJsZS4KKysjCisrIyBXZSBk b24ndCBBQ19SRVFVSVJFIHRoZSBjb3JyZXNwb25kaW5nIEFDX1BST0dfQ0Mgc2luY2UgdGhlIGxh dHRlciB3YXMKKysjIG1vZGlmaWVkIHRvIGludm9rZSBfQU1fREVQRU5ERU5DSUVTKENDKTsgd2Ug d291bGQgaGF2ZSBhIGNpcmN1bGFyCisrIyBkZXBlbmRlbmN5LCBhbmQgZ2l2ZW4gdGhhdCB0aGUg dXNlciBpcyBub3QgZXhwZWN0ZWQgdG8gcnVuIHRoaXMgbWFjcm8sCisrIyBqdXN0IHJlbHkgb24g QUNfUFJPR19DQy4KKytBQ19ERUZVTihbX0FNX0RFUEVOREVOQ0lFU10sCisrW0FDX1JFUVVJUkUo W0FNX1NFVF9ERVBESVJdKWRubAorK0FDX1JFUVVJUkUoW0FNX09VVFBVVF9ERVBFTkRFTkNZX0NP TU1BTkRTXSlkbmwKKytBQ19SRVFVSVJFKFtBTV9NQUtFX0lOQ0xVREVdKWRubAorK0FDX1JFUVVJ UkUoW0FNX0RFUF9UUkFDS10pZG5sCisrCisraWZlbHNlKFskMV0sIENDLCAgIFtkZXBjYz0iJEND IiAgIGFtX2NvbXBpbGVyX2xpc3Q9XSwKKysgICAgICAgWyQxXSwgQ1hYLCAgW2RlcGNjPSIkQ1hY IiAgYW1fY29tcGlsZXJfbGlzdD1dLAorKyAgICAgICBbJDFdLCBPQkpDLCBbZGVwY2M9IiRPQkpD IiBhbV9jb21waWxlcl9saXN0PSdnY2MzIGdjYyddLAorKyAgICAgICBbJDFdLCBVUEMsICBbZGVw Y2M9IiRVUEMiICBhbV9jb21waWxlcl9saXN0PV0sCisrICAgICAgIFskMV0sIEdDSiwgIFtkZXBj Yz0iJEdDSiIgIGFtX2NvbXBpbGVyX2xpc3Q9J2djYzMgZ2NjJ10sCisrICAgICAgICAgICAgICAg ICAgIFtkZXBjYz0iJCQxIiAgIGFtX2NvbXBpbGVyX2xpc3Q9XSkKKysKKytBQ19DQUNIRV9DSEVD SyhbZGVwZW5kZW5jeSBzdHlsZSBvZiAkZGVwY2NdLAorKyAgICAgICAgICAgICAgIFthbV9jdl8k MV9kZXBlbmRlbmNpZXNfY29tcGlsZXJfdHlwZV0sCisrW2lmIHRlc3QgLXogIiRBTURFUF9UUlVF IiAmJiB0ZXN0IC1mICIkYW1fZGVwY29tcCI7IHRoZW4KKysgICMgV2UgbWFrZSBhIHN1YmRpciBh bmQgZG8gdGhlIHRlc3RzIHRoZXJlLiAgT3RoZXJ3aXNlIHdlIGNhbiBlbmQgdXAKKysgICMgbWFr aW5nIGJvZ3VzIGZpbGVzIHRoYXQgd2UgZG9uJ3Qga25vdyBhYm91dCBhbmQgbmV2ZXIgcmVtb3Zl LiAgRm9yCisrICAjIGluc3RhbmNlIGl0IHdhcyByZXBvcnRlZCB0aGF0IG9uIEhQLVVYIHRoZSBn Y2MgdGVzdCB3aWxsIGVuZCB1cAorKyAgIyBtYWtpbmcgYSBkdW1teSBmaWxlIG5hbWVkIGBEJyAt LSBiZWNhdXNlIGAtTUQnIG1lYW5zIGBwdXQgdGhlIG91dHB1dAorKyAgIyBpbiBEJy4KKysgIG1r ZGlyIGNvbmZ0ZXN0LmRpcgorKyAgIyBDb3B5IGRlcGNvbXAgdG8gc3ViZGlyIGJlY2F1c2Ugb3Ro ZXJ3aXNlIHdlIHdvbid0IGZpbmQgaXQgaWYgd2UncmUKKysgICMgdXNpbmcgYSByZWxhdGl2ZSBk aXJlY3RvcnkuCisrICBjcCAiJGFtX2RlcGNvbXAiIGNvbmZ0ZXN0LmRpcgorKyAgY2QgY29uZnRl c3QuZGlyCisrICAjIFdlIHdpbGwgYnVpbGQgb2JqZWN0cyBhbmQgZGVwZW5kZW5jaWVzIGluIGEg c3ViZGlyZWN0b3J5IGJlY2F1c2UKKysgICMgaXQgaGVscHMgdG8gZGV0ZWN0IGluYXBwbGljYWJs ZSBkZXBlbmRlbmN5IG1vZGVzLiAgRm9yIGluc3RhbmNlCisrICAjIGJvdGggVHJ1NjQncyBjYyBh bmQgSUNDIHN1cHBvcnQgLU1EIHRvIG91dHB1dCBkZXBlbmRlbmNpZXMgYXMgYQorKyAgIyBzaWRl IGVmZmVjdCBvZiBjb21waWxhdGlvbiwgYnV0IElDQyB3aWxsIHB1dCB0aGUgZGVwZW5kZW5jaWVz IGluCisrICAjIHRoZSBjdXJyZW50IGRpcmVjdG9yeSB3aGlsZSBUcnU2NCB3aWxsIHB1dCB0aGVt IGluIHRoZSBvYmplY3QKKysgICMgZGlyZWN0b3J5LgorKyAgbWtkaXIgc3ViCisrCisrICBhbV9j dl8kMV9kZXBlbmRlbmNpZXNfY29tcGlsZXJfdHlwZT1ub25lCisrICBpZiB0ZXN0ICIkYW1fY29t cGlsZXJfbGlzdCIgPSAiIjsgdGhlbgorKyAgICAgYW1fY29tcGlsZXJfbGlzdD1gc2VkIC1uIFsn cy9eIypcKFthLXpBLVowLTldKlwpKSQvXDEvcCddIDwgLi9kZXBjb21wYAorKyAgZmkKKysgIGFt X191bml2ZXJzYWw9ZmFsc2UKKysgIG00X2Nhc2UoWyQxXSwgW0NDXSwKKysgICAgW2Nhc2UgIiAk ZGVwY2MgIiBpbiAjKAorKyAgICAgKlwgLWFyY2hcICpcIC1hcmNoXCAqKSBhbV9fdW5pdmVyc2Fs PXRydWUgOzsKKysgICAgIGVzYWNdLAorKyAgICBbQ1hYXSwKKysgICAgW2Nhc2UgIiAkZGVwY2Mg IiBpbiAjKAorKyAgICAgKlwgLWFyY2hcICpcIC1hcmNoXCAqKSBhbV9fdW5pdmVyc2FsPXRydWUg OzsKKysgICAgIGVzYWNdKQorKworKyAgZm9yIGRlcG1vZGUgaW4gJGFtX2NvbXBpbGVyX2xpc3Q7 IGRvCisrICAgICMgU2V0dXAgYSBzb3VyY2Ugd2l0aCBtYW55IGRlcGVuZGVuY2llcywgYmVjYXVz ZSBzb21lIGNvbXBpbGVycworKyAgICAjIGxpa2UgdG8gd3JhcCBsYXJnZSBkZXBlbmRlbmN5IGxp c3RzIG9uIGNvbHVtbiA4MCAod2l0aCBcKSwgYW5kCisrICAgICMgd2Ugc2hvdWxkIG5vdCBjaG9v c2UgYSBkZXBjb21wIG1vZGUgd2hpY2ggaXMgY29uZnVzZWQgYnkgdGhpcy4KKysgICAgIworKyAg ICAjIFdlIG5lZWQgdG8gcmVjcmVhdGUgdGhlc2UgZmlsZXMgZm9yIGVhY2ggdGVzdCwgYXMgdGhl IGNvbXBpbGVyIG1heQorKyAgICAjIG92ZXJ3cml0ZSBzb21lIG9mIHRoZW0gd2hlbiB0ZXN0aW5n IHdpdGggb2JzY3VyZSBjb21tYW5kIGxpbmVzLgorKyAgICAjIFRoaXMgaGFwcGVucyBhdCBsZWFz dCB3aXRoIHRoZSBBSVggQyBjb21waWxlci4KKysgICAgOiA+IHN1Yi9jb25mdGVzdC5jCisrICAg IGZvciBpIGluIDEgMiAzIDQgNSA2OyBkbworKyAgICAgIGVjaG8gJyNpbmNsdWRlICJjb25mdHN0 JyRpJy5oIicgPj4gc3ViL2NvbmZ0ZXN0LmMKKysgICAgICAjIFVzaW5nIGA6ID4gc3ViL2NvbmZ0 c3QkaS5oJyBjcmVhdGVzIG9ubHkgc3ViL2NvbmZ0c3QxLmggd2l0aAorKyAgICAgICMgU29sYXJp cyA4J3Mgey91c3IsfS9iaW4vc2guCisrICAgICAgdG91Y2ggc3ViL2NvbmZ0c3QkaS5oCisrICAg IGRvbmUKKysgICAgZWNobyAiJHthbV9faW5jbHVkZX0gJHthbV9fcXVvdGV9c3ViL2NvbmZ0ZXN0 LlBvJHthbV9fcXVvdGV9IiA+IGNvbmZtZgorKworKyAgICAjIFdlIGNoZWNrIHdpdGggYC1jJyBh bmQgYC1vJyBmb3IgdGhlIHNha2Ugb2YgdGhlICJkYXNobXN0ZG91dCIKKysgICAgIyBtb2RlLiAg SXQgdHVybnMgb3V0IHRoYXQgdGhlIFN1blBybyBDKysgY29tcGlsZXIgZG9lcyBub3QgcHJvcGVy bHkKKysgICAgIyBoYW5kbGUgYC1NIC1vJywgYW5kIHdlIG5lZWQgdG8gZGV0ZWN0IHRoaXMuICBB bHNvLCBzb21lIEludGVsCisrICAgICMgdmVyc2lvbnMgaGFkIHRyb3VibGUgd2l0aCBvdXRwdXQg aW4gc3ViZGlycworKyAgICBhbV9fb2JqPXN1Yi9jb25mdGVzdC4ke09CSkVYVC1vfQorKyAgICBh bV9fbWludXNfb2JqPSItbyAkYW1fX29iaiIKKysgICAgY2FzZSAkZGVwbW9kZSBpbgorKyAgICBn Y2MpCisrICAgICAgIyBUaGlzIGRlcG1vZGUgY2F1c2VzIGEgY29tcGlsZXIgcmFjZSBpbiB1bml2 ZXJzYWwgbW9kZS4KKysgICAgICB0ZXN0ICIkYW1fX3VuaXZlcnNhbCIgPSBmYWxzZSB8fCBjb250 aW51ZQorKyAgICAgIDs7CisrICAgIG5vc2lkZWVmZmVjdCkKKysgICAgICAjIGFmdGVyIHRoaXMg dGFnLCBtZWNoYW5pc21zIGFyZSBub3QgYnkgc2lkZS1lZmZlY3QsIHNvIHRoZXknbGwKKysgICAg ICAjIG9ubHkgYmUgdXNlZCB3aGVuIGV4cGxpY2l0bHkgcmVxdWVzdGVkCisrICAgICAgaWYgdGVz dCAieCRlbmFibGVfZGVwZW5kZW5jeV90cmFja2luZyIgPSB4eWVzOyB0aGVuCisrCWNvbnRpbnVl CisrICAgICAgZWxzZQorKwlicmVhaworKyAgICAgIGZpCisrICAgICAgOzsKKysgICAgbXN2aXN1 YWxjcHAgfCBtc3ZjbXN5cykKKysgICAgICAjIFRoaXMgY29tcGlsZXIgd29uJ3QgZ3JvayBgLWMg LW8nLCBidXQgYWxzbywgdGhlIG1pbnVzbyB0ZXN0IGhhcworKyAgICAgICMgbm90IHJ1biB5ZXQu ICBUaGVzZSBkZXBtb2RlcyBhcmUgbGF0ZSBlbm91Z2ggaW4gdGhlIGdhbWUsIGFuZAorKyAgICAg ICMgc28gd2VhayB0aGF0IHRoZWlyIGZ1bmN0aW9uaW5nIHNob3VsZCBub3QgYmUgaW1wYWN0ZWQu CisrICAgICAgYW1fX29iaj1jb25mdGVzdC4ke09CSkVYVC1vfQorKyAgICAgIGFtX19taW51c19v Ymo9CisrICAgICAgOzsKKysgICAgbm9uZSkgYnJlYWsgOzsKKysgICAgZXNhYworKyAgICBpZiBk ZXBtb2RlPSRkZXBtb2RlIFwKKysgICAgICAgc291cmNlPXN1Yi9jb25mdGVzdC5jIG9iamVjdD0k YW1fX29iaiBcCisrICAgICAgIGRlcGZpbGU9c3ViL2NvbmZ0ZXN0LlBvIHRtcGRlcGZpbGU9c3Vi L2NvbmZ0ZXN0LlRQbyBcCisrICAgICAgICRTSEVMTCAuL2RlcGNvbXAgJGRlcGNjIC1jICRhbV9f bWludXNfb2JqIHN1Yi9jb25mdGVzdC5jIFwKKysgICAgICAgICA+L2Rldi9udWxsIDI+Y29uZnRl c3QuZXJyICYmCisrICAgICAgIGdyZXAgc3ViL2NvbmZ0c3QxLmggc3ViL2NvbmZ0ZXN0LlBvID4g L2Rldi9udWxsIDI+JjEgJiYKKysgICAgICAgZ3JlcCBzdWIvY29uZnRzdDYuaCBzdWIvY29uZnRl c3QuUG8gPiAvZGV2L251bGwgMj4mMSAmJgorKyAgICAgICBncmVwICRhbV9fb2JqIHN1Yi9jb25m dGVzdC5QbyA+IC9kZXYvbnVsbCAyPiYxICYmCisrICAgICAgICR7TUFLRS1tYWtlfSAtcyAtZiBj b25mbWYgPiAvZGV2L251bGwgMj4mMTsgdGhlbgorKyAgICAgICMgaWNjIGRvZXNuJ3QgY2hva2Ug b24gdW5rbm93biBvcHRpb25zLCBpdCB3aWxsIGp1c3QgaXNzdWUgd2FybmluZ3MKKysgICAgICAj IG9yIHJlbWFya3MgKGV2ZW4gd2l0aCAtV2Vycm9yKS4gIFNvIHdlIGdyZXAgc3RkZXJyIGZvciBh bnkgbWVzc2FnZQorKyAgICAgICMgdGhhdCBzYXlzIGFuIG9wdGlvbiB3YXMgaWdub3JlZCBvciBu b3Qgc3VwcG9ydGVkLgorKyAgICAgICMgV2hlbiBnaXZlbiAtTVAsIGljYyA3LjAgYW5kIDcuMSBj b21wbGFpbiB0aHVzbHk6CisrICAgICAgIyAgIGljYzogQ29tbWFuZCBsaW5lIHdhcm5pbmc6IGln bm9yaW5nIG9wdGlvbiAnLU0nOyBubyBhcmd1bWVudCByZXF1aXJlZAorKyAgICAgICMgVGhlIGRp YWdub3NpcyBjaGFuZ2VkIGluIGljYyA4LjA6CisrICAgICAgIyAgIGljYzogQ29tbWFuZCBsaW5l IHJlbWFyazogb3B0aW9uICctTVAnIG5vdCBzdXBwb3J0ZWQKKysgICAgICBpZiAoZ3JlcCAnaWdu b3Jpbmcgb3B0aW9uJyBjb25mdGVzdC5lcnIgfHwKKysgICAgICAgICAgZ3JlcCAnbm90IHN1cHBv cnRlZCcgY29uZnRlc3QuZXJyKSA+L2Rldi9udWxsIDI+JjE7IHRoZW4gOjsgZWxzZQorKyAgICAg ICAgYW1fY3ZfJDFfZGVwZW5kZW5jaWVzX2NvbXBpbGVyX3R5cGU9JGRlcG1vZGUKKysgICAgICAg IGJyZWFrCisrICAgICAgZmkKKysgICAgZmkKKysgIGRvbmUKKysKKysgIGNkIC4uCisrICBybSAt cmYgY29uZnRlc3QuZGlyCisrZWxzZQorKyAgYW1fY3ZfJDFfZGVwZW5kZW5jaWVzX2NvbXBpbGVy X3R5cGU9bm9uZQorK2ZpCisrXSkKKytBQ19TVUJTVChbJDFERVBNT0RFXSwgW2RlcG1vZGU9JGFt X2N2XyQxX2RlcGVuZGVuY2llc19jb21waWxlcl90eXBlXSkKKytBTV9DT05ESVRJT05BTChbYW1f X2Zhc3RkZXAkMV0sIFsKKysgIHRlc3QgIngkZW5hYmxlX2RlcGVuZGVuY3lfdHJhY2tpbmciICE9 IHhubyBcCisrICAmJiB0ZXN0ICIkYW1fY3ZfJDFfZGVwZW5kZW5jaWVzX2NvbXBpbGVyX3R5cGUi ID0gZ2NjM10pCisrXSkKKysKKysKKysjIEFNX1NFVF9ERVBESVIKKysjIC0tLS0tLS0tLS0tLS0K KysjIENob29zZSBhIGRpcmVjdG9yeSBuYW1lIGZvciBkZXBlbmRlbmN5IGZpbGVzLgorKyMgVGhp cyBtYWNybyBpcyBBQ19SRVFVSVJFZCBpbiBfQU1fREVQRU5ERU5DSUVTCisrQUNfREVGVU4oW0FN X1NFVF9ERVBESVJdLAorK1tBQ19SRVFVSVJFKFtBTV9TRVRfTEVBRElOR19ET1RdKWRubAorK0FD X1NVQlNUKFtERVBESVJdLCBbIiR7YW1fX2xlYWRpbmdfZG90fWRlcHMiXSlkbmwKKytdKQorKwor KworKyMgQU1fREVQX1RSQUNLCisrIyAtLS0tLS0tLS0tLS0KKytBQ19ERUZVTihbQU1fREVQX1RS QUNLXSwKKytbQUNfQVJHX0VOQUJMRShkZXBlbmRlbmN5LXRyYWNraW5nLAorK1sgIC0tZGlzYWJs ZS1kZXBlbmRlbmN5LXRyYWNraW5nICBzcGVlZHMgdXAgb25lLXRpbWUgYnVpbGQKKysgIC0tZW5h YmxlLWRlcGVuZGVuY3ktdHJhY2tpbmcgICBkbyBub3QgcmVqZWN0IHNsb3cgZGVwZW5kZW5jeSBl eHRyYWN0b3JzXSkKKytpZiB0ZXN0ICJ4JGVuYWJsZV9kZXBlbmRlbmN5X3RyYWNraW5nIiAhPSB4 bm87IHRoZW4KKysgIGFtX2RlcGNvbXA9IiRhY19hdXhfZGlyL2RlcGNvbXAiCisrICBBTURFUEJB Q0tTTEFTSD0nXCcKKytmaQorK0FNX0NPTkRJVElPTkFMKFtBTURFUF0sIFt0ZXN0ICJ4JGVuYWJs ZV9kZXBlbmRlbmN5X3RyYWNraW5nIiAhPSB4bm9dKQorK0FDX1NVQlNUKFtBTURFUEJBQ0tTTEFT SF0pZG5sCisrX0FNX1NVQlNUX05PVE1BS0UoW0FNREVQQkFDS1NMQVNIXSlkbmwKKytdKQorKwor KyMgR2VuZXJhdGUgY29kZSB0byBzZXQgdXAgZGVwZW5kZW5jeSB0cmFja2luZy4gICAgICAgICAg ICAgIC0qLSBBdXRvY29uZiAtKi0KKysKKysjIENvcHlyaWdodCAoQykgMTk5OSwgMjAwMCwgMjAw MSwgMjAwMiwgMjAwMywgMjAwNCwgMjAwNSwgMjAwOAorKyMgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0 aW9uLCBJbmMuCisrIworKyMgVGhpcyBmaWxlIGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNv ZnR3YXJlIEZvdW5kYXRpb24KKysjIGdpdmVzIHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNvcHkg YW5kL29yIGRpc3RyaWJ1dGUgaXQsCisrIyB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9ucywg YXMgbG9uZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCisrCisrI3NlcmlhbCA1CisrCisr IyBfQU1fT1VUUFVUX0RFUEVOREVOQ1lfQ09NTUFORFMKKysjIC0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQorK0FDX0RFRlVOKFtfQU1fT1VUUFVUX0RFUEVOREVOQ1lfQ09NTUFORFNdLAor K1t7CisrICAjIEF1dG9jb25mIDIuNjIgcXVvdGVzIC0tZmlsZSBhcmd1bWVudHMgZm9yIGV2YWws IGJ1dCBub3Qgd2hlbiBmaWxlcworKyAgIyBhcmUgbGlzdGVkIHdpdGhvdXQgLS1maWxlLiAgTGV0 J3MgcGxheSBzYWZlIGFuZCBvbmx5IGVuYWJsZSB0aGUgZXZhbAorKyAgIyBpZiB3ZSBkZXRlY3Qg dGhlIHF1b3RpbmcuCisrICBjYXNlICRDT05GSUdfRklMRVMgaW4KKysgICpcJyopIGV2YWwgc2V0 IHggIiRDT05GSUdfRklMRVMiIDs7CisrICAqKSAgIHNldCB4ICRDT05GSUdfRklMRVMgOzsKKysg IGVzYWMKKysgIHNoaWZ0CisrICBmb3IgbWYKKysgIGRvCisrICAgICMgU3RyaXAgTUYgc28gd2Ug ZW5kIHVwIHdpdGggdGhlIG5hbWUgb2YgdGhlIGZpbGUuCisrICAgIG1mPWBlY2hvICIkbWYiIHwg c2VkIC1lICdzLzouKiQvLydgCisrICAgICMgQ2hlY2sgd2hldGhlciB0aGlzIGlzIGFuIEF1dG9t YWtlIGdlbmVyYXRlZCBNYWtlZmlsZSBvciBub3QuCisrICAgICMgV2UgdXNlZCB0byBtYXRjaCBv bmx5IHRoZSBmaWxlcyBuYW1lZCBgTWFrZWZpbGUuaW4nLCBidXQKKysgICAgIyBzb21lIHBlb3Bs ZSByZW5hbWUgdGhlbTsgc28gaW5zdGVhZCB3ZSBsb29rIGF0IHRoZSBmaWxlIGNvbnRlbnQuCisr ICAgICMgR3JlcCdpbmcgdGhlIGZpcnN0IGxpbmUgaXMgbm90IGVub3VnaDogc29tZSBwZW9wbGUg cG9zdC1wcm9jZXNzCisrICAgICMgZWFjaCBNYWtlZmlsZS5pbiBhbmQgYWRkIGEgbmV3IGxpbmUg b24gdG9wIG9mIGVhY2ggZmlsZSB0byBzYXkgc28uCisrICAgICMgR3JlcCdpbmcgdGhlIHdob2xl IGZpbGUgaXMgbm90IGdvb2QgZWl0aGVyOiBBSVggZ3JlcCBoYXMgYSBsaW5lCisrICAgICMgbGlt aXQgb2YgMjA0OCwgYnV0IGFsbCBzZWQncyB3ZSBrbm93IGhhdmUgdW5kZXJzdGFuZCBhdCBsZWFz dCA0MDAwLgorKyAgICBpZiBzZWQgLW4gJ3MsXiMuKmdlbmVyYXRlZCBieSBhdXRvbWFrZS4qLFgs cCcgIiRtZiIgfCBncmVwIFggPi9kZXYvbnVsbCAyPiYxOyB0aGVuCisrICAgICAgZGlycGFydD1g QVNfRElSTkFNRSgiJG1mIilgCisrICAgIGVsc2UKKysgICAgICBjb250aW51ZQorKyAgICBmaQor KyAgICAjIEV4dHJhY3QgdGhlIGRlZmluaXRpb24gb2YgREVQRElSLCBhbV9faW5jbHVkZSwgYW5k IGFtX19xdW90ZQorKyAgICAjIGZyb20gdGhlIE1ha2VmaWxlIHdpdGhvdXQgcnVubmluZyBgbWFr ZScuCisrICAgIERFUERJUj1gc2VkIC1uICdzL15ERVBESVIgPSAvL3AnIDwgIiRtZiJgCisrICAg IHRlc3QgLXogIiRERVBESVIiICYmIGNvbnRpbnVlCisrICAgIGFtX19pbmNsdWRlPWBzZWQgLW4g J3MvXmFtX19pbmNsdWRlID0gLy9wJyA8ICIkbWYiYAorKyAgICB0ZXN0IC16ICJhbV9faW5jbHVk ZSIgJiYgY29udGludWUKKysgICAgYW1fX3F1b3RlPWBzZWQgLW4gJ3MvXmFtX19xdW90ZSA9IC8v cCcgPCAiJG1mImAKKysgICAgIyBXaGVuIHVzaW5nIGFuc2kya25yLCBVIG1heSBiZSBlbXB0eSBv ciBhbiB1bmRlcnNjb3JlOyBleHBhbmQgaXQKKysgICAgVT1gc2VkIC1uICdzL15VID0gLy9wJyA8 ICIkbWYiYAorKyAgICAjIEZpbmQgYWxsIGRlcGVuZGVuY3kgb3V0cHV0IGZpbGVzLCB0aGV5IGFy ZSBpbmNsdWRlZCBmaWxlcyB3aXRoCisrICAgICMgJChERVBESVIpIGluIHRoZWlyIG5hbWVzLiAg V2UgaW52b2tlIHNlZCB0d2ljZSBiZWNhdXNlIGl0IGlzIHRoZQorKyAgICAjIHNpbXBsZXN0IGFw cHJvYWNoIHRvIGNoYW5naW5nICQoREVQRElSKSB0byBpdHMgYWN0dWFsIHZhbHVlIGluIHRoZQor KyAgICAjIGV4cGFuc2lvbi4KKysgICAgZm9yIGZpbGUgaW4gYHNlZCAtbiAiCisrICAgICAgcy9e JGFtX19pbmNsdWRlICRhbV9fcXVvdGVcKC4qKERFUERJUikuKlwpJGFtX19xdW90ZSInJC9cMS9w JyA8IiRtZiIgfCBcCisrCSBzZWQgLWUgJ3MvXCQoREVQRElSKS8nIiRERVBESVIiJy9nJyAtZSAn cy9cJFUvJyIkVSInL2cnYDsgZG8KKysgICAgICAjIE1ha2Ugc3VyZSB0aGUgZGlyZWN0b3J5IGV4 aXN0cy4KKysgICAgICB0ZXN0IC1mICIkZGlycGFydC8kZmlsZSIgJiYgY29udGludWUKKysgICAg ICBmZGlyPWBBU19ESVJOQU1FKFsiJGZpbGUiXSlgCisrICAgICAgQVNfTUtESVJfUChbJGRpcnBh cnQvJGZkaXJdKQorKyAgICAgICMgZWNobyAiY3JlYXRpbmcgJGRpcnBhcnQvJGZpbGUiCisrICAg ICAgZWNobyAnIyBkdW1teScgPiAiJGRpcnBhcnQvJGZpbGUiCisrICAgIGRvbmUKKysgIGRvbmUK Kyt9CisrXSkjIF9BTV9PVVRQVVRfREVQRU5ERU5DWV9DT01NQU5EUworKworKworKyMgQU1fT1VU UFVUX0RFUEVOREVOQ1lfQ09NTUFORFMKKysjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CisrIyBUaGlzIG1hY3JvIHNob3VsZCBvbmx5IGJlIGludm9rZWQgb25jZSAtLSB1c2UgdmlhIEFD X1JFUVVJUkUuCisrIworKyMgVGhpcyBjb2RlIGlzIG9ubHkgcmVxdWlyZWQgd2hlbiBhdXRvbWF0 aWMgZGVwZW5kZW5jeSB0cmFja2luZworKyMgaXMgZW5hYmxlZC4gIEZJWE1FLiAgVGhpcyBjcmVh dGVzIGVhY2ggYC5QJyBmaWxlIHRoYXQgd2Ugd2lsbAorKyMgbmVlZCBpbiBvcmRlciB0byBib290 c3RyYXAgdGhlIGRlcGVuZGVuY3kgaGFuZGxpbmcgY29kZS4KKytBQ19ERUZVTihbQU1fT1VUUFVU X0RFUEVOREVOQ1lfQ09NTUFORFNdLAorK1tBQ19DT05GSUdfQ09NTUFORFMoW2RlcGZpbGVzXSwK KysgICAgIFt0ZXN0IHgiJEFNREVQX1RSVUUiICE9IHgiIiB8fCBfQU1fT1VUUFVUX0RFUEVOREVO Q1lfQ09NTUFORFNdLAorKyAgICAgW0FNREVQX1RSVUU9IiRBTURFUF9UUlVFIiBhY19hdXhfZGly PSIkYWNfYXV4X2RpciJdKQorK10pCisrCisrIyBEbyBhbGwgdGhlIHdvcmsgZm9yIEF1dG9tYWtl LiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLSotIEF1dG9jb25mIC0qLQorKworKyMgQ29w eXJpZ2h0IChDKSAxOTk2LCAxOTk3LCAxOTk4LCAxOTk5LCAyMDAwLCAyMDAxLCAyMDAyLCAyMDAz LCAyMDA0LAorKyMgMjAwNSwgMjAwNiwgMjAwOCwgMjAwOSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp b24sIEluYy4KKysjCisrIyBUaGlzIGZpbGUgaXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29m dHdhcmUgRm91bmRhdGlvbgorKyMgZ2l2ZXMgdW5saW1pdGVkIHBlcm1pc3Npb24gdG8gY29weSBh bmQvb3IgZGlzdHJpYnV0ZSBpdCwKKysjIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb25zLCBh cyBsb25nIGFzIHRoaXMgbm90aWNlIGlzIHByZXNlcnZlZC4KKysKKysjIHNlcmlhbCAxNgorKwor KyMgVGhpcyBtYWNybyBhY3R1YWxseSBkb2VzIHRvbyBtdWNoLiAgU29tZSBjaGVja3MgYXJlIG9u bHkgbmVlZGVkIGlmCisrIyB5b3VyIHBhY2thZ2UgZG9lcyBjZXJ0YWluIHRoaW5ncy4gIEJ1dCB0 aGlzIGlzbid0IHJlYWxseSBhIGJpZyBkZWFsLgorKworKyMgQU1fSU5JVF9BVVRPTUFLRShQQUNL QUdFLCBWRVJTSU9OLCBbTk8tREVGSU5FXSkKKysjIEFNX0lOSVRfQVVUT01BS0UoW09QVElPTlNd KQorKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKysj IFRoZSBjYWxsIHdpdGggUEFDS0FHRSBhbmQgVkVSU0lPTiBhcmd1bWVudHMgaXMgdGhlIG9sZCBz dHlsZQorKyMgY2FsbCAocHJlIGF1dG9jb25mLTIuNTApLCB3aGljaCBpcyBiZWluZyBwaGFzZWQg b3V0LiAgUEFDS0FHRQorKyMgYW5kIFZFUlNJT04gc2hvdWxkIG5vdyBiZSBwYXNzZWQgdG8gQUNf SU5JVCBhbmQgcmVtb3ZlZCBmcm9tCisrIyB0aGUgY2FsbCB0byBBTV9JTklUX0FVVE9NQUtFLgor KyMgV2Ugc3VwcG9ydCBib3RoIGNhbGwgc3R5bGVzIGZvciB0aGUgdHJhbnNpdGlvbi4gIEFmdGVy CisrIyB0aGUgbmV4dCBBdXRvbWFrZSByZWxlYXNlLCBBdXRvY29uZiBjYW4gbWFrZSB0aGUgQUNf SU5JVAorKyMgYXJndW1lbnRzIG1hbmRhdG9yeSwgYW5kIHRoZW4gd2UgY2FuIGRlcGVuZCBvbiBh IG5ldyBBdXRvY29uZgorKyMgcmVsZWFzZSBhbmQgZHJvcCB0aGUgb2xkIGNhbGwgc3VwcG9ydC4K KytBQ19ERUZVTihbQU1fSU5JVF9BVVRPTUFLRV0sCisrW0FDX1BSRVJFUShbMi42Ml0pZG5sCisr ZG5sIEF1dG9jb25mIHdhbnRzIHRvIGRpc2FsbG93IEFNXyBuYW1lcy4gIFdlIGV4cGxpY2l0bHkg YWxsb3cKKytkbmwgdGhlIG9uZXMgd2UgY2FyZSBhYm91dC4KKyttNF9wYXR0ZXJuX2FsbG93KFte QU1fW0EtWl0rRkxBR1MkXSlkbmwKKytBQ19SRVFVSVJFKFtBTV9TRVRfQ1VSUkVOVF9BVVRPTUFL RV9WRVJTSU9OXSlkbmwKKytBQ19SRVFVSVJFKFtBQ19QUk9HX0lOU1RBTExdKWRubAorK2lmIHRl c3QgImBjZCAkc3JjZGlyICYmIHB3ZGAiICE9ICJgcHdkYCI7IHRoZW4KKysgICMgVXNlIC1JJChz cmNkaXIpIG9ubHkgd2hlbiAkKHNyY2RpcikgIT0gLiwgc28gdGhhdCBtYWtlJ3Mgb3V0cHV0Cisr ICAjIGlzIG5vdCBwb2xsdXRlZCB3aXRoIHJlcGVhdGVkICItSS4iCisrICBBQ19TVUJTVChbYW1f X2lzcmNdLCBbJyAtSSQoc3JjZGlyKSddKV9BTV9TVUJTVF9OT1RNQUtFKFthbV9faXNyY10pZG5s CisrICAjIHRlc3QgdG8gc2VlIGlmIHNyY2RpciBhbHJlYWR5IGNvbmZpZ3VyZWQKKysgIGlmIHRl c3QgLWYgJHNyY2Rpci9jb25maWcuc3RhdHVzOyB0aGVuCisrICAgIEFDX01TR19FUlJPUihbc291 cmNlIGRpcmVjdG9yeSBhbHJlYWR5IGNvbmZpZ3VyZWQ7IHJ1biAibWFrZSBkaXN0Y2xlYW4iIHRo ZXJlIGZpcnN0XSkKKysgIGZpCisrZmkKKysKKysjIHRlc3Qgd2hldGhlciB3ZSBoYXZlIGN5Z3Bh dGgKKytpZiB0ZXN0IC16ICIkQ1lHUEFUSF9XIjsgdGhlbgorKyAgaWYgKGN5Z3BhdGggLS12ZXJz aW9uKSA+L2Rldi9udWxsIDI+L2Rldi9udWxsOyB0aGVuCisrICAgIENZR1BBVEhfVz0nY3lncGF0 aCAtdycKKysgIGVsc2UKKysgICAgQ1lHUEFUSF9XPWVjaG8KKysgIGZpCisrZmkKKytBQ19TVUJT VChbQ1lHUEFUSF9XXSkKKysKKysjIERlZmluZSB0aGUgaWRlbnRpdHkgb2YgdGhlIHBhY2thZ2Uu CisrZG5sIERpc3Rpbmd1aXNoIGJldHdlZW4gb2xkLXN0eWxlIGFuZCBuZXctc3R5bGUgY2FsbHMu CisrbTRfaWZ2YWwoWyQyXSwKKytbbTRfaWZ2YWwoWyQzXSwgW19BTV9TRVRfT1BUSU9OKFtuby1k ZWZpbmVdKV0pZG5sCisrIEFDX1NVQlNUKFtQQUNLQUdFXSwgWyQxXSlkbmwKKysgQUNfU1VCU1Qo W1ZFUlNJT05dLCBbJDJdKV0sCisrW19BTV9TRVRfT1BUSU9OUyhbJDFdKWRubAorK2RubCBEaWFn bm9zZSBvbGQtc3R5bGUgQUNfSU5JVCB3aXRoIG5ldy1zdHlsZSBBTV9BVVRPTUFLRV9JTklULgor K200X2lmKG00X2lmZGVmKFtBQ19QQUNLQUdFX05BTUVdLCAxKW00X2lmZGVmKFtBQ19QQUNLQUdF X1ZFUlNJT05dLCAxKSwgMTEsLAorKyAgW200X2ZhdGFsKFtBQ19JTklUIHNob3VsZCBiZSBjYWxs ZWQgd2l0aCBwYWNrYWdlIGFuZCB2ZXJzaW9uIGFyZ3VtZW50c10pXSlkbmwKKysgQUNfU1VCU1Qo W1BBQ0tBR0VdLCBbJ0FDX1BBQ0tBR0VfVEFSTkFNRSddKWRubAorKyBBQ19TVUJTVChbVkVSU0lP Tl0sIFsnQUNfUEFDS0FHRV9WRVJTSU9OJ10pXSlkbmwKKysKKytfQU1fSUZfT1BUSU9OKFtuby1k ZWZpbmVdLCwKKytbQUNfREVGSU5FX1VOUVVPVEVEKFBBQ0tBR0UsICIkUEFDS0FHRSIsIFtOYW1l IG9mIHBhY2thZ2VdKQorKyBBQ19ERUZJTkVfVU5RVU9URUQoVkVSU0lPTiwgIiRWRVJTSU9OIiwg W1ZlcnNpb24gbnVtYmVyIG9mIHBhY2thZ2VdKV0pZG5sCisrCisrIyBTb21lIHRvb2xzIEF1dG9t YWtlIG5lZWRzLgorK0FDX1JFUVVJUkUoW0FNX1NBTklUWV9DSEVDS10pZG5sCisrQUNfUkVRVUlS RShbQUNfQVJHX1BST0dSQU1dKWRubAorK0FNX01JU1NJTkdfUFJPRyhBQ0xPQ0FMLCBhY2xvY2Fs LSR7YW1fX2FwaV92ZXJzaW9ufSkKKytBTV9NSVNTSU5HX1BST0coQVVUT0NPTkYsIGF1dG9jb25m KQorK0FNX01JU1NJTkdfUFJPRyhBVVRPTUFLRSwgYXV0b21ha2UtJHthbV9fYXBpX3ZlcnNpb259 KQorK0FNX01JU1NJTkdfUFJPRyhBVVRPSEVBREVSLCBhdXRvaGVhZGVyKQorK0FNX01JU1NJTkdf UFJPRyhNQUtFSU5GTywgbWFrZWluZm8pCisrQUNfUkVRVUlSRShbQU1fUFJPR19JTlNUQUxMX1NI XSlkbmwKKytBQ19SRVFVSVJFKFtBTV9QUk9HX0lOU1RBTExfU1RSSVBdKWRubAorK0FDX1JFUVVJ UkUoW0FNX1BST0dfTUtESVJfUF0pZG5sCisrIyBXZSBuZWVkIGF3ayBmb3IgdGhlICJjaGVjayIg dGFyZ2V0LiAgVGhlIHN5c3RlbSAiYXdrIiBpcyBiYWQgb24KKysjIHNvbWUgcGxhdGZvcm1zLgor K0FDX1JFUVVJUkUoW0FDX1BST0dfQVdLXSlkbmwKKytBQ19SRVFVSVJFKFtBQ19QUk9HX01BS0Vf U0VUXSlkbmwKKytBQ19SRVFVSVJFKFtBTV9TRVRfTEVBRElOR19ET1RdKWRubAorK19BTV9JRl9P UFRJT04oW3Rhci11c3Rhcl0sIFtfQU1fUFJPR19UQVIoW3VzdGFyXSldLAorKwkgICAgICBbX0FN X0lGX09QVElPTihbdGFyLXBheF0sIFtfQU1fUFJPR19UQVIoW3BheF0pXSwKKysJCQkgICAgIFtf QU1fUFJPR19UQVIoW3Y3XSldKV0pCisrX0FNX0lGX09QVElPTihbbm8tZGVwZW5kZW5jaWVzXSws CisrW0FDX1BST1ZJREVfSUZFTFNFKFtBQ19QUk9HX0NDXSwKKysJCSAgW19BTV9ERVBFTkRFTkNJ RVMoQ0MpXSwKKysJCSAgW2RlZmluZShbQUNfUFJPR19DQ10sCisrCQkJICBkZWZuKFtBQ19QUk9H X0NDXSlbX0FNX0RFUEVOREVOQ0lFUyhDQyldKV0pZG5sCisrQUNfUFJPVklERV9JRkVMU0UoW0FD X1BST0dfQ1hYXSwKKysJCSAgW19BTV9ERVBFTkRFTkNJRVMoQ1hYKV0sCisrCQkgIFtkZWZpbmUo W0FDX1BST0dfQ1hYXSwKKysJCQkgIGRlZm4oW0FDX1BST0dfQ1hYXSlbX0FNX0RFUEVOREVOQ0lF UyhDWFgpXSldKWRubAorK0FDX1BST1ZJREVfSUZFTFNFKFtBQ19QUk9HX09CSkNdLAorKwkJICBb X0FNX0RFUEVOREVOQ0lFUyhPQkpDKV0sCisrCQkgIFtkZWZpbmUoW0FDX1BST0dfT0JKQ10sCisr CQkJICBkZWZuKFtBQ19QUk9HX09CSkNdKVtfQU1fREVQRU5ERU5DSUVTKE9CSkMpXSldKWRubAor K10pCisrX0FNX0lGX09QVElPTihbc2lsZW50LXJ1bGVzXSwgW0FDX1JFUVVJUkUoW0FNX1NJTEVO VF9SVUxFU10pXSlkbmwKKytkbmwgVGhlIGBwYXJhbGxlbC10ZXN0cycgZHJpdmVyIG1heSBuZWVk IHRvIGtub3cgYWJvdXQgRVhFRVhULCBzbyBhZGQgdGhlCisrZG5sIGBhbV9fRVhFRVhUJyBjb25k aXRpb25hbCBpZiBfQU1fQ09NUElMRVJfRVhFRVhUIHdhcyBzZWVuLiAgVGhpcyBtYWNybworK2Ru bCBpcyBob29rZWQgb250byBfQUNfQ09NUElMRVJfRVhFRVhUIGVhcmx5LCBzZWUgYmVsb3cuCisr QUNfQ09ORklHX0NPTU1BTkRTX1BSRShkbmwKKytbbTRfcHJvdmlkZV9pZihbX0FNX0NPTVBJTEVS X0VYRUVYVF0sCisrICBbQU1fQ09ORElUSU9OQUwoW2FtX19FWEVFWFRdLCBbdGVzdCAtbiAiJEVY RUVYVCJdKV0pXSlkbmwKKytdKQorKworK2RubCBIb29rIGludG8gYF9BQ19DT01QSUxFUl9FWEVF WFQnIGVhcmx5IHRvIGxlYXJuIGl0cyBleHBhbnNpb24uICBEbyBub3QKKytkbmwgYWRkIHRoZSBj b25kaXRpb25hbCByaWdodCBoZXJlLCBhcyBfQUNfQ09NUElMRVJfRVhFRVhUIG1heSBiZSBmdXJ0 aGVyCisrZG5sIG1hbmdsZWQgYnkgQXV0b2NvbmYgYW5kIHJ1biBpbiBhIHNoZWxsIGNvbmRpdGlv bmFsIHN0YXRlbWVudC4KKyttNF9kZWZpbmUoW19BQ19DT01QSUxFUl9FWEVFWFRdLAorK200X2Rl Zm4oW19BQ19DT01QSUxFUl9FWEVFWFRdKVttNF9wcm92aWRlKFtfQU1fQ09NUElMRVJfRVhFRVhU XSldKQorKworKworKyMgV2hlbiBjb25maWcuc3RhdHVzIGdlbmVyYXRlcyBhIGhlYWRlciwgd2Ug bXVzdCB1cGRhdGUgdGhlIHN0YW1wLWggZmlsZS4KKysjIFRoaXMgZmlsZSByZXNpZGVzIGluIHRo ZSBzYW1lIGRpcmVjdG9yeSBhcyB0aGUgY29uZmlnIGhlYWRlcgorKyMgdGhhdCBpcyBnZW5lcmF0 ZWQuICBUaGUgc3RhbXAgZmlsZXMgYXJlIG51bWJlcmVkIHRvIGhhdmUgZGlmZmVyZW50IG5hbWVz LgorKworKyMgQXV0b2NvbmYgY2FsbHMgX0FDX0FNX0NPTkZJR19IRUFERVJfSE9PSyAod2hlbiBk ZWZpbmVkKSBpbiB0aGUKKysjIGxvb3Agd2hlcmUgY29uZmlnLnN0YXR1cyBjcmVhdGVzIHRoZSBo ZWFkZXJzLCBzbyB3ZSBjYW4gZ2VuZXJhdGUKKysjIG91ciBzdGFtcCBmaWxlcyB0aGVyZS4KKytB Q19ERUZVTihbX0FDX0FNX0NPTkZJR19IRUFERVJfSE9PS10sCisrWyMgQ29tcHV0ZSAkMSdzIGlu ZGV4IGluICRjb25maWdfaGVhZGVycy4KKytfYW1fYXJnPSQxCisrX2FtX3N0YW1wX2NvdW50PTEK Kytmb3IgX2FtX2hlYWRlciBpbiAkY29uZmlnX2hlYWRlcnMgOjsgZG8KKysgIGNhc2UgJF9hbV9o ZWFkZXIgaW4KKysgICAgJF9hbV9hcmcgfCAkX2FtX2FyZzoqICkKKysgICAgICBicmVhayA7Owor KyAgICAqICkKKysgICAgICBfYW1fc3RhbXBfY291bnQ9YGV4cHIgJF9hbV9zdGFtcF9jb3VudCAr IDFgIDs7CisrICBlc2FjCisrZG9uZQorK2VjaG8gInRpbWVzdGFtcCBmb3IgJF9hbV9hcmciID5g QVNfRElSTkFNRShbIiRfYW1fYXJnIl0pYC9zdGFtcC1oW10kX2FtX3N0YW1wX2NvdW50XSkKKysK KysjIENvcHlyaWdodCAoQykgMjAwMSwgMjAwMywgMjAwNSwgMjAwOCAgRnJlZSBTb2Z0d2FyZSBG b3VuZGF0aW9uLCBJbmMuCisrIworKyMgVGhpcyBmaWxlIGlzIGZyZWUgc29mdHdhcmU7IHRoZSBG cmVlIFNvZnR3YXJlIEZvdW5kYXRpb24KKysjIGdpdmVzIHVubGltaXRlZCBwZXJtaXNzaW9uIHRv IGNvcHkgYW5kL29yIGRpc3RyaWJ1dGUgaXQsCisrIyB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0 aW9ucywgYXMgbG9uZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCisrCisrIyBBTV9QUk9H X0lOU1RBTExfU0gKKysjIC0tLS0tLS0tLS0tLS0tLS0tLQorKyMgRGVmaW5lICRpbnN0YWxsX3No LgorK0FDX0RFRlVOKFtBTV9QUk9HX0lOU1RBTExfU0hdLAorK1tBQ19SRVFVSVJFKFtBTV9BVVhf RElSX0VYUEFORF0pZG5sCisraWYgdGVzdCB4IiR7aW5zdGFsbF9zaH0iICE9IHhzZXQ7IHRoZW4K KysgIGNhc2UgJGFtX2F1eF9kaXIgaW4KKysgICpcICogfCAqXAkqKQorKyAgICBpbnN0YWxsX3No PSJcJHtTSEVMTH0gJyRhbV9hdXhfZGlyL2luc3RhbGwtc2gnIiA7OworKyAgKikKKysgICAgaW5z dGFsbF9zaD0iXCR7U0hFTEx9ICRhbV9hdXhfZGlyL2luc3RhbGwtc2giCisrICBlc2FjCisrZmkK KytBQ19TVUJTVChpbnN0YWxsX3NoKV0pCisrCisrIyBDb3B5cmlnaHQgKEMpIDIwMDMsIDIwMDUg IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorKyMKKysjIFRoaXMgZmlsZSBpcyBmcmVl IHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCisrIyBnaXZlcyB1bmxpbWl0 ZWQgcGVybWlzc2lvbiB0byBjb3B5IGFuZC9vciBkaXN0cmlidXRlIGl0LAorKyMgd2l0aCBvciB3 aXRob3V0IG1vZGlmaWNhdGlvbnMsIGFzIGxvbmcgYXMgdGhpcyBub3RpY2UgaXMgcHJlc2VydmVk LgorKworKyMgc2VyaWFsIDIKKysKKysjIENoZWNrIHdoZXRoZXIgdGhlIHVuZGVybHlpbmcgZmls ZS1zeXN0ZW0gc3VwcG9ydHMgZmlsZW5hbWVzCisrIyB3aXRoIGEgbGVhZGluZyBkb3QuICBGb3Ig aW5zdGFuY2UgTVMtRE9TIGRvZXNuJ3QuCisrQUNfREVGVU4oW0FNX1NFVF9MRUFESU5HX0RPVF0s CisrW3JtIC1yZiAudHN0IDI+L2Rldi9udWxsCisrbWtkaXIgLnRzdCAyPi9kZXYvbnVsbAorK2lm IHRlc3QgLWQgLnRzdDsgdGhlbgorKyAgYW1fX2xlYWRpbmdfZG90PS4KKytlbHNlCisrICBhbV9f bGVhZGluZ19kb3Q9XworK2ZpCisrcm1kaXIgLnRzdCAyPi9kZXYvbnVsbAorK0FDX1NVQlNUKFth bV9fbGVhZGluZ19kb3RdKV0pCisrCisrIyBDaGVjayB0byBzZWUgaG93ICdtYWtlJyB0cmVhdHMg aW5jbHVkZXMuCSAgICAgICAgICAgIC0qLSBBdXRvY29uZiAtKi0KKysKKysjIENvcHlyaWdodCAo QykgMjAwMSwgMjAwMiwgMjAwMywgMjAwNSwgMjAwOSAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u LCBJbmMuCisrIworKyMgVGhpcyBmaWxlIGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3 YXJlIEZvdW5kYXRpb24KKysjIGdpdmVzIHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNvcHkgYW5k L29yIGRpc3RyaWJ1dGUgaXQsCisrIyB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9ucywgYXMg bG9uZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCisrCisrIyBzZXJpYWwgNAorKworKyMg QU1fTUFLRV9JTkNMVURFKCkKKysjIC0tLS0tLS0tLS0tLS0tLS0tCisrIyBDaGVjayB0byBzZWUg aG93IG1ha2UgdHJlYXRzIGluY2x1ZGVzLgorK0FDX0RFRlVOKFtBTV9NQUtFX0lOQ0xVREVdLAor K1thbV9tYWtlPSR7TUFLRS1tYWtlfQorK2NhdCA+IGNvbmZpbmMgPDwgJ0VORCcKKythbV9fZG9p dDoKKysJQGVjaG8gdGhpcyBpcyB0aGUgYW1fX2RvaXQgdGFyZ2V0CisrLlBIT05ZOiBhbV9fZG9p dAorK0VORAorKyMgSWYgd2UgZG9uJ3QgZmluZCBhbiBpbmNsdWRlIGRpcmVjdGl2ZSwganVzdCBj b21tZW50IG91dCB0aGUgY29kZS4KKytBQ19NU0dfQ0hFQ0tJTkcoW2ZvciBzdHlsZSBvZiBpbmNs dWRlIHVzZWQgYnkgJGFtX21ha2VdKQorK2FtX19pbmNsdWRlPSIjIgorK2FtX19xdW90ZT0KKytf YW1fcmVzdWx0PW5vbmUKKysjIEZpcnN0IHRyeSBHTlUgbWFrZSBzdHlsZSBpbmNsdWRlLgorK2Vj aG8gImluY2x1ZGUgY29uZmluYyIgPiBjb25mbWYKKysjIElnbm9yZSBhbGwga2luZHMgb2YgYWRk aXRpb25hbCBvdXRwdXQgZnJvbSBgbWFrZScuCisrY2FzZSBgJGFtX21ha2UgLXMgLWYgY29uZm1m IDI+IC9kZXYvbnVsbGAgaW4gIygKKysqdGhlXCBhbV9fZG9pdFwgdGFyZ2V0KikKKysgIGFtX19p bmNsdWRlPWluY2x1ZGUKKysgIGFtX19xdW90ZT0KKysgIF9hbV9yZXN1bHQ9R05VCisrICA7Owor K2VzYWMKKysjIE5vdyB0cnkgQlNEIG1ha2Ugc3R5bGUgaW5jbHVkZS4KKytpZiB0ZXN0ICIkYW1f X2luY2x1ZGUiID0gIiMiOyB0aGVuCisrICAgZWNobyAnLmluY2x1ZGUgImNvbmZpbmMiJyA+IGNv bmZtZgorKyAgIGNhc2UgYCRhbV9tYWtlIC1zIC1mIGNvbmZtZiAyPiAvZGV2L251bGxgIGluICMo CisrICAgKnRoZVwgYW1fX2RvaXRcIHRhcmdldCopCisrICAgICBhbV9faW5jbHVkZT0uaW5jbHVk ZQorKyAgICAgYW1fX3F1b3RlPSJcIiIKKysgICAgIF9hbV9yZXN1bHQ9QlNECisrICAgICA7Owor KyAgIGVzYWMKKytmaQorK0FDX1NVQlNUKFthbV9faW5jbHVkZV0pCisrQUNfU1VCU1QoW2FtX19x dW90ZV0pCisrQUNfTVNHX1JFU1VMVChbJF9hbV9yZXN1bHRdKQorK3JtIC1mIGNvbmZpbmMgY29u Zm1mCisrXSkKKysKKysjIEZha2UgdGhlIGV4aXN0ZW5jZSBvZiBwcm9ncmFtcyB0aGF0IEdOVSBt YWludGFpbmVycyB1c2UuICAtKi0gQXV0b2NvbmYgLSotCisrCisrIyBDb3B5cmlnaHQgKEMpIDE5 OTcsIDE5OTksIDIwMDAsIDIwMDEsIDIwMDMsIDIwMDQsIDIwMDUsIDIwMDgKKysjIEZyZWUgU29m dHdhcmUgRm91bmRhdGlvbiwgSW5jLgorKyMKKysjIFRoaXMgZmlsZSBpcyBmcmVlIHNvZnR3YXJl OyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCisrIyBnaXZlcyB1bmxpbWl0ZWQgcGVybWlz c2lvbiB0byBjb3B5IGFuZC9vciBkaXN0cmlidXRlIGl0LAorKyMgd2l0aCBvciB3aXRob3V0IG1v ZGlmaWNhdGlvbnMsIGFzIGxvbmcgYXMgdGhpcyBub3RpY2UgaXMgcHJlc2VydmVkLgorKworKyMg c2VyaWFsIDYKKysKKysjIEFNX01JU1NJTkdfUFJPRyhOQU1FLCBQUk9HUkFNKQorKyMgLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrQUNfREVGVU4oW0FNX01JU1NJTkdfUFJPR10sCisr W0FDX1JFUVVJUkUoW0FNX01JU1NJTkdfSEFTX1JVTl0pCisrJDE9JHskMS0iJHthbV9taXNzaW5n X3J1bn0kMiJ9CisrQUNfU1VCU1QoJDEpXSkKKysKKysKKysjIEFNX01JU1NJTkdfSEFTX1JVTgor KyMgLS0tLS0tLS0tLS0tLS0tLS0tCisrIyBEZWZpbmUgTUlTU0lORyBpZiBub3QgZGVmaW5lZCBz byBmYXIgYW5kIHRlc3QgaWYgaXQgc3VwcG9ydHMgLS1ydW4uCisrIyBJZiBpdCBkb2VzLCBzZXQg YW1fbWlzc2luZ19ydW4gdG8gdXNlIGl0LCBvdGhlcndpc2UsIHRvIG5vdGhpbmcuCisrQUNfREVG VU4oW0FNX01JU1NJTkdfSEFTX1JVTl0sCisrW0FDX1JFUVVJUkUoW0FNX0FVWF9ESVJfRVhQQU5E XSlkbmwKKytBQ19SRVFVSVJFX0FVWF9GSUxFKFttaXNzaW5nXSlkbmwKKytpZiB0ZXN0IHgiJHtN SVNTSU5HK3NldH0iICE9IHhzZXQ7IHRoZW4KKysgIGNhc2UgJGFtX2F1eF9kaXIgaW4KKysgICpc ICogfCAqXAkqKQorKyAgICBNSVNTSU5HPSJcJHtTSEVMTH0gXCIkYW1fYXV4X2Rpci9taXNzaW5n XCIiIDs7CisrICAqKQorKyAgICBNSVNTSU5HPSJcJHtTSEVMTH0gJGFtX2F1eF9kaXIvbWlzc2lu ZyIgOzsKKysgIGVzYWMKKytmaQorKyMgVXNlIGV2YWwgdG8gZXhwYW5kICRTSEVMTAorK2lmIGV2 YWwgIiRNSVNTSU5HIC0tcnVuIHRydWUiOyB0aGVuCisrICBhbV9taXNzaW5nX3J1bj0iJE1JU1NJ TkcgLS1ydW4gIgorK2Vsc2UKKysgIGFtX21pc3NpbmdfcnVuPQorKyAgQUNfTVNHX1dBUk4oW2Bt aXNzaW5nJyBzY3JpcHQgaXMgdG9vIG9sZCBvciBtaXNzaW5nXSkKKytmaQorK10pCisrCisrIyBD b3B5cmlnaHQgKEMpIDIwMDMsIDIwMDQsIDIwMDUsIDIwMDYgIEZyZWUgU29mdHdhcmUgRm91bmRh dGlvbiwgSW5jLgorKyMKKysjIFRoaXMgZmlsZSBpcyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBT b2Z0d2FyZSBGb3VuZGF0aW9uCisrIyBnaXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5 IGFuZC9vciBkaXN0cmlidXRlIGl0LAorKyMgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbnMs IGFzIGxvbmcgYXMgdGhpcyBub3RpY2UgaXMgcHJlc2VydmVkLgorKworKyMgQU1fUFJPR19NS0RJ Ul9QCisrIyAtLS0tLS0tLS0tLS0tLS0KKysjIENoZWNrIGZvciBgbWtkaXIgLXAnLgorK0FDX0RF RlVOKFtBTV9QUk9HX01LRElSX1BdLAorK1tBQ19QUkVSRVEoWzIuNjBdKWRubAorK0FDX1JFUVVJ UkUoW0FDX1BST0dfTUtESVJfUF0pZG5sCisrZG5sIEF1dG9tYWtlIDEuOCB0byAxLjkuNiB1c2Vk IHRvIGRlZmluZSBta2Rpcl9wLiAgV2Ugbm93IHVzZSBNS0RJUl9QLAorK2RubCB3aGlsZSBrZWVw aW5nIGEgZGVmaW5pdGlvbiBvZiBta2Rpcl9wIGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5Lgor K2RubCBATUtESVJfUEAgaXMgbWFnaWM6IEFDX09VVFBVVCBhZGp1c3RzIGl0cyB2YWx1ZSBmb3Ig ZWFjaCBNYWtlZmlsZS4KKytkbmwgSG93ZXZlciB3ZSBjYW5ub3QgZGVmaW5lIG1rZGlyX3AgYXMg JChNS0RJUl9QKSBmb3IgdGhlIHNha2Ugb2YKKytkbmwgTWFrZWZpbGUuaW5zIHRoYXQgZG8gbm90 IGRlZmluZSBNS0RJUl9QLCBzbyB3ZSBkbyBvdXIgb3duCisrZG5sIGFkanVzdG1lbnQgdXNpbmcg dG9wX2J1aWxkZGlyICh3aGljaCBpcyBkZWZpbmVkIG1vcmUgb2Z0ZW4gdGhhbgorK2RubCBNS0RJ Ul9QKS4KKytBQ19TVUJTVChbbWtkaXJfcF0sIFsiJE1LRElSX1AiXSlkbmwKKytjYXNlICRta2Rp cl9wIGluCisrICBbW1xcLyRdXSogfCA/OltbXFwvXV0qKSA7OworKyAgKi8qKSBta2Rpcl9wPSJc JCh0b3BfYnVpbGRkaXIpLyRta2Rpcl9wIiA7OworK2VzYWMKKytdKQorKworKyMgSGVscGVyIGZ1 bmN0aW9ucyBmb3Igb3B0aW9uIGhhbmRsaW5nLiAgICAgICAgICAgICAgICAgICAgIC0qLSBBdXRv Y29uZiAtKi0KKysKKysjIENvcHlyaWdodCAoQykgMjAwMSwgMjAwMiwgMjAwMywgMjAwNSwgMjAw OCAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisrIworKyMgVGhpcyBmaWxlIGlzIGZy ZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24KKysjIGdpdmVzIHVubGlt aXRlZCBwZXJtaXNzaW9uIHRvIGNvcHkgYW5kL29yIGRpc3RyaWJ1dGUgaXQsCisrIyB3aXRoIG9y IHdpdGhvdXQgbW9kaWZpY2F0aW9ucywgYXMgbG9uZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2 ZWQuCisrCisrIyBzZXJpYWwgNAorKworKyMgX0FNX01BTkdMRV9PUFRJT04oTkFNRSkKKysjIC0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrQUNfREVGVU4oW19BTV9NQU5HTEVfT1BUSU9OXSwKKytb W19BTV9PUFRJT05fXW00X2JwYXRzdWJzdCgkMSwgW1teYS16QS1aMC05X11dLCBbX10pXSkKKysK KysjIF9BTV9TRVRfT1BUSU9OKE5BTUUpCisrIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KKysjIFNldCBvcHRpb24gTkFNRS4gIFByZXNlbnRseSB0aGF0IG9ubHkgbWVhbnMgZGVmaW5p bmcgYSBmbGFnIGZvciB0aGlzIG9wdGlvbi4KKytBQ19ERUZVTihbX0FNX1NFVF9PUFRJT05dLAor K1ttNF9kZWZpbmUoX0FNX01BTkdMRV9PUFRJT04oWyQxXSksIDEpXSkKKysKKysjIF9BTV9TRVRf T1BUSU9OUyhPUFRJT05TKQorKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor KyMgT1BUSU9OUyBpcyBhIHNwYWNlLXNlcGFyYXRlZCBsaXN0IG9mIEF1dG9tYWtlIG9wdGlvbnMu CisrQUNfREVGVU4oW19BTV9TRVRfT1BUSU9OU10sCisrW200X2ZvcmVhY2hfdyhbX0FNX09wdGlv bl0sIFskMV0sIFtfQU1fU0VUX09QVElPTihfQU1fT3B0aW9uKV0pXSkKKysKKysjIF9BTV9JRl9P UFRJT04oT1BUSU9OLCBJRi1TRVQsIFtJRi1OT1QtU0VUXSkKKysjIC0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKysjIEV4ZWN1dGUgSUYtU0VUIGlmIE9QVElPTiBp cyBzZXQsIElGLU5PVC1TRVQgb3RoZXJ3aXNlLgorK0FDX0RFRlVOKFtfQU1fSUZfT1BUSU9OXSwK KytbbTRfaWZzZXQoX0FNX01BTkdMRV9PUFRJT04oWyQxXSksIFskMl0sIFskM10pXSkKKysKKysj IENoZWNrIHRvIG1ha2Ugc3VyZSB0aGF0IHRoZSBidWlsZCBlbnZpcm9ubWVudCBpcyBzYW5lLiAg ICAtKi0gQXV0b2NvbmYgLSotCisrCisrIyBDb3B5cmlnaHQgKEMpIDE5OTYsIDE5OTcsIDIwMDAs IDIwMDEsIDIwMDMsIDIwMDUsIDIwMDgKKysjIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5j LgorKyMKKysjIFRoaXMgZmlsZSBpcyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBG b3VuZGF0aW9uCisrIyBnaXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5IGFuZC9vciBk aXN0cmlidXRlIGl0LAorKyMgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbnMsIGFzIGxvbmcg YXMgdGhpcyBub3RpY2UgaXMgcHJlc2VydmVkLgorKworKyMgc2VyaWFsIDUKKysKKysjIEFNX1NB TklUWV9DSEVDSworKyMgLS0tLS0tLS0tLS0tLS0tCisrQUNfREVGVU4oW0FNX1NBTklUWV9DSEVD S10sCisrW0FDX01TR19DSEVDS0lORyhbd2hldGhlciBidWlsZCBlbnZpcm9ubWVudCBpcyBzYW5l XSkKKysjIEp1c3QgaW4gY2FzZQorK3NsZWVwIDEKKytlY2hvIHRpbWVzdGFtcCA+IGNvbmZ0ZXN0 LmZpbGUKKysjIFJlamVjdCB1bnNhZmUgY2hhcmFjdGVycyBpbiAkc3JjZGlyIG9yIHRoZSBhYnNv bHV0ZSB3b3JraW5nIGRpcmVjdG9yeQorKyMgbmFtZS4gIEFjY2VwdCBzcGFjZSBhbmQgdGFiIG9u bHkgaW4gdGhlIGxhdHRlci4KKythbV9sZj0nCisrJworK2Nhc2UgYHB3ZGAgaW4KKysgICpbW1xc XCJcI1wkXCZcJ1xgJGFtX2xmXV0qKQorKyAgICBBQ19NU0dfRVJST1IoW3Vuc2FmZSBhYnNvbHV0 ZSB3b3JraW5nIGRpcmVjdG9yeSBuYW1lXSk7OworK2VzYWMKKytjYXNlICRzcmNkaXIgaW4KKysg ICpbW1xcXCJcI1wkXCZcJ1xgJGFtX2xmXCBcCV1dKikKKysgICAgQUNfTVNHX0VSUk9SKFt1bnNh ZmUgc3JjZGlyIHZhbHVlOiBgJHNyY2RpciddKTs7CisrZXNhYworKworKyMgRG8gYHNldCcgaW4g YSBzdWJzaGVsbCBzbyB3ZSBkb24ndCBjbG9iYmVyIHRoZSBjdXJyZW50IHNoZWxsJ3MKKysjIGFy Z3VtZW50cy4gIE11c3QgdHJ5IC1MIGZpcnN0IGluIGNhc2UgY29uZmlndXJlIGlzIGFjdHVhbGx5 IGEKKysjIHN5bWxpbms7IHNvbWUgc3lzdGVtcyBwbGF5IHdlaXJkIGdhbWVzIHdpdGggdGhlIG1v ZCB0aW1lIG9mIHN5bWxpbmtzCisrIyAoZWcgRnJlZUJTRCByZXR1cm5zIHRoZSBtb2QgdGltZSBv ZiB0aGUgc3ltbGluaydzIGNvbnRhaW5pbmcKKysjIGRpcmVjdG9yeSkuCisraWYgKAorKyAgIHNl dCBYIGBscyAtTHQgIiRzcmNkaXIvY29uZmlndXJlIiBjb25mdGVzdC5maWxlIDI+IC9kZXYvbnVs bGAKKysgICBpZiB0ZXN0ICIkWypdIiA9ICJYIjsgdGhlbgorKyAgICAgICMgLUwgZGlkbid0IHdv cmsuCisrICAgICAgc2V0IFggYGxzIC10ICIkc3JjZGlyL2NvbmZpZ3VyZSIgY29uZnRlc3QuZmls ZWAKKysgICBmaQorKyAgIHJtIC1mIGNvbmZ0ZXN0LmZpbGUKKysgICBpZiB0ZXN0ICIkWypdIiAh PSAiWCAkc3JjZGlyL2NvbmZpZ3VyZSBjb25mdGVzdC5maWxlIiBcCisrICAgICAgJiYgdGVzdCAi JFsqXSIgIT0gIlggY29uZnRlc3QuZmlsZSAkc3JjZGlyL2NvbmZpZ3VyZSI7IHRoZW4KKysKKysg ICAgICAjIElmIG5laXRoZXIgbWF0Y2hlZCwgdGhlbiB3ZSBoYXZlIGEgYnJva2VuIGxzLiAgVGhp cyBjYW4gaGFwcGVuCisrICAgICAgIyBpZiwgZm9yIGluc3RhbmNlLCBDT05GSUdfU0hFTEwgaXMg YmFzaCBhbmQgaXQgaW5oZXJpdHMgYQorKyAgICAgICMgYnJva2VuIGxzIGFsaWFzIGZyb20gdGhl IGVudmlyb25tZW50LiAgVGhpcyBoYXMgYWN0dWFsbHkKKysgICAgICAjIGhhcHBlbmVkLiAgU3Vj aCBhIHN5c3RlbSBjb3VsZCBub3QgYmUgY29uc2lkZXJlZCAic2FuZSIuCisrICAgICAgQUNfTVNH X0VSUk9SKFtscyAtdCBhcHBlYXJzIHRvIGZhaWwuICBNYWtlIHN1cmUgdGhlcmUgaXMgbm90IGEg YnJva2VuCisrYWxpYXMgaW4geW91ciBlbnZpcm9ubWVudF0pCisrICAgZmkKKysKKysgICB0ZXN0 ICIkWzJdIiA9IGNvbmZ0ZXN0LmZpbGUKKysgICApCisrdGhlbgorKyAgICMgT2suCisrICAgOgor K2Vsc2UKKysgICBBQ19NU0dfRVJST1IoW25ld2x5IGNyZWF0ZWQgZmlsZSBpcyBvbGRlciB0aGFu IGRpc3RyaWJ1dGVkIGZpbGVzIQorK0NoZWNrIHlvdXIgc3lzdGVtIGNsb2NrXSkKKytmaQorK0FD X01TR19SRVNVTFQoeWVzKV0pCisrCisrIyBDb3B5cmlnaHQgKEMpIDIwMDEsIDIwMDMsIDIwMDUg IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorKyMKKysjIFRoaXMgZmlsZSBpcyBmcmVl IHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCisrIyBnaXZlcyB1bmxpbWl0 ZWQgcGVybWlzc2lvbiB0byBjb3B5IGFuZC9vciBkaXN0cmlidXRlIGl0LAorKyMgd2l0aCBvciB3 aXRob3V0IG1vZGlmaWNhdGlvbnMsIGFzIGxvbmcgYXMgdGhpcyBub3RpY2UgaXMgcHJlc2VydmVk LgorKworKyMgQU1fUFJPR19JTlNUQUxMX1NUUklQCisrIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0K KysjIE9uZSBpc3N1ZSB3aXRoIHZlbmRvciBgaW5zdGFsbCcgKGV2ZW4gR05VKSBpcyB0aGF0IHlv dSBjYW4ndAorKyMgc3BlY2lmeSB0aGUgcHJvZ3JhbSB1c2VkIHRvIHN0cmlwIGJpbmFyaWVzLiAg VGhpcyBpcyBlc3BlY2lhbGx5CisrIyBhbm5veWluZyBpbiBjcm9zcy1jb21waWxpbmcgZW52aXJv bm1lbnRzLCB3aGVyZSB0aGUgYnVpbGQncyBzdHJpcAorKyMgaXMgdW5saWtlbHkgdG8gaGFuZGxl IHRoZSBob3N0J3MgYmluYXJpZXMuCisrIyBGb3J0dW5hdGVseSBpbnN0YWxsLXNoIHdpbGwgaG9u b3IgYSBTVFJJUFBST0cgdmFyaWFibGUsIHNvIHdlCisrIyBhbHdheXMgdXNlIGluc3RhbGwtc2gg aW4gYG1ha2UgaW5zdGFsbC1zdHJpcCcsIGFuZCBpbml0aWFsaXplCisrIyBTVFJJUFBST0cgd2l0 aCB0aGUgdmFsdWUgb2YgdGhlIFNUUklQIHZhcmlhYmxlIChzZXQgYnkgdGhlIHVzZXIpLgorK0FD X0RFRlVOKFtBTV9QUk9HX0lOU1RBTExfU1RSSVBdLAorK1tBQ19SRVFVSVJFKFtBTV9QUk9HX0lO U1RBTExfU0hdKWRubAorKyMgSW5zdGFsbGVkIGJpbmFyaWVzIGFyZSB1c3VhbGx5IHN0cmlwcGVk IHVzaW5nIGBzdHJpcCcgd2hlbiB0aGUgdXNlcgorKyMgcnVuIGBtYWtlIGluc3RhbGwtc3RyaXAn LiAgSG93ZXZlciBgc3RyaXAnIG1pZ2h0IG5vdCBiZSB0aGUgcmlnaHQKKysjIHRvb2wgdG8gdXNl IGluIGNyb3NzLWNvbXBpbGF0aW9uIGVudmlyb25tZW50cywgdGhlcmVmb3JlIEF1dG9tYWtlCisr IyB3aWxsIGhvbm9yIHRoZSBgU1RSSVAnIGVudmlyb25tZW50IHZhcmlhYmxlIHRvIG92ZXJydWxl IHRoaXMgcHJvZ3JhbS4KKytkbmwgRG9uJ3QgdGVzdCBmb3IgJGNyb3NzX2NvbXBpbGluZyA9IHll cywgYmVjYXVzZSBpdCBtaWdodCBiZSBgbWF5YmUnLgorK2lmIHRlc3QgIiRjcm9zc19jb21waWxp bmciICE9IG5vOyB0aGVuCisrICBBQ19DSEVDS19UT09MKFtTVFJJUF0sIFtzdHJpcF0sIDopCisr ZmkKKytJTlNUQUxMX1NUUklQX1BST0dSQU09IlwkKGluc3RhbGxfc2gpIC1jIC1zIgorK0FDX1NV QlNUKFtJTlNUQUxMX1NUUklQX1BST0dSQU1dKV0pCisrCisrIyBDb3B5cmlnaHQgKEMpIDIwMDYs IDIwMDggIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorKyMKKysjIFRoaXMgZmlsZSBp cyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCisrIyBnaXZlcyB1 bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5IGFuZC9vciBkaXN0cmlidXRlIGl0LAorKyMgd2l0 aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbnMsIGFzIGxvbmcgYXMgdGhpcyBub3RpY2UgaXMgcHJl c2VydmVkLgorKworKyMgc2VyaWFsIDIKKysKKysjIF9BTV9TVUJTVF9OT1RNQUtFKFZBUklBQkxF KQorKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrIyBQcmV2ZW50IEF1dG9tYWtlIGZy b20gb3V0cHV0dGluZyBWQVJJQUJMRSA9IEBWQVJJQUJMRUAgaW4gTWFrZWZpbGUuaW4uCisrIyBU aGlzIG1hY3JvIGlzIHRyYWNlZCBieSBBdXRvbWFrZS4KKytBQ19ERUZVTihbX0FNX1NVQlNUX05P VE1BS0VdKQorKworKyMgQU1fU1VCU1RfTk9UTUFLRShWQVJJQUJMRSkKKysjIC0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQorKyMgUHVibGljIHNpc3RlciBvZiBfQU1fU1VCU1RfTk9UTUFLRS4K KytBQ19ERUZVTihbQU1fU1VCU1RfTk9UTUFLRV0sIFtfQU1fU1VCU1RfTk9UTUFLRSgkQCldKQor KworKyMgQ2hlY2sgaG93IHRvIGNyZWF0ZSBhIHRhcmJhbGwuICAgICAgICAgICAgICAgICAgICAg ICAgICAgIC0qLSBBdXRvY29uZiAtKi0KKysKKysjIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSAg RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisrIworKyMgVGhpcyBmaWxlIGlzIGZyZWUg c29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24KKysjIGdpdmVzIHVubGltaXRl ZCBwZXJtaXNzaW9uIHRvIGNvcHkgYW5kL29yIGRpc3RyaWJ1dGUgaXQsCisrIyB3aXRoIG9yIHdp dGhvdXQgbW9kaWZpY2F0aW9ucywgYXMgbG9uZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQu CisrCisrIyBzZXJpYWwgMgorKworKyMgX0FNX1BST0dfVEFSKEZPUk1BVCkKKysjIC0tLS0tLS0t LS0tLS0tLS0tLS0tCisrIyBDaGVjayBob3cgdG8gY3JlYXRlIGEgdGFyYmFsbCBpbiBmb3JtYXQg Rk9STUFULgorKyMgRk9STUFUIHNob3VsZCBiZSBvbmUgb2YgYHY3JywgYHVzdGFyJywgb3IgYHBh eCcuCisrIworKyMgU3Vic3RpdHV0ZSBhIHZhcmlhYmxlICQoYW1fX3RhcikgdGhhdCBpcyBhIGNv bW1hbmQKKysjIHdyaXRpbmcgdG8gc3Rkb3V0IGEgRk9STUFULXRhcmJhbGwgY29udGFpbmluZyB0 aGUgZGlyZWN0b3J5CisrIyAkdGFyZGlyLgorKyMgICAgIHRhcmRpcj1kaXJlY3RvcnkgJiYgJChh bV9fdGFyKSA+IHJlc3VsdC50YXIKKysjCisrIyBTdWJzdGl0dXRlIGEgdmFyaWFibGUgJChhbV9f dW50YXIpIHRoYXQgZXh0cmFjdCBzdWNoCisrIyBhIHRhcmJhbGwgcmVhZCBmcm9tIHN0ZGluLgor KyMgICAgICQoYW1fX3VudGFyKSA8IHJlc3VsdC50YXIKKytBQ19ERUZVTihbX0FNX1BST0dfVEFS XSwKKytbIyBBbHdheXMgZGVmaW5lIEFNVEFSIGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5Lgor K0FNX01JU1NJTkdfUFJPRyhbQU1UQVJdLCBbdGFyXSkKKyttNF9pZihbJDFdLCBbdjddLAorKyAg ICAgW2FtX190YXI9JyR7QU1UQVJ9IGNob2YgLSAiJCR0YXJkaXIiJzsgYW1fX3VudGFyPScke0FN VEFSfSB4ZiAtJ10sCisrICAgICBbbTRfY2FzZShbJDFdLCBbdXN0YXJdLCwgW3BheF0sLAorKyAg ICAgICAgICAgICAgW200X2ZhdGFsKFtVbmtub3duIHRhciBmb3JtYXRdKV0pCisrQUNfTVNHX0NI RUNLSU5HKFtob3cgdG8gY3JlYXRlIGEgJDEgdGFyIGFyY2hpdmVdKQorKyMgTG9vcCBvdmVyIGFs bCBrbm93biBtZXRob2RzIHRvIGNyZWF0ZSBhIHRhciBhcmNoaXZlIHVudGlsIG9uZSB3b3Jrcy4K KytfYW1fdG9vbHM9J2dudXRhciBtNF9pZihbJDFdLCBbdXN0YXJdLCBbcGxhaW50YXJdKSBwYXgg Y3BpbyBub25lJworK19hbV90b29scz0ke2FtX2N2X3Byb2dfdGFyXyQxLSRfYW1fdG9vbHN9Cisr IyBEbyBub3QgZm9sZCB0aGUgYWJvdmUgdHdvIGxpbmUgaW50byBvbmUsIGJlY2F1c2UgVHJ1NjQg c2ggYW5kCisrIyBTb2xhcmlzIHNoIHdpbGwgbm90IGdyb2sgc3BhY2VzIGluIHRoZSByaHMgb2Yg YC0nLgorK2ZvciBfYW1fdG9vbCBpbiAkX2FtX3Rvb2xzCisrZG8KKysgIGNhc2UgJF9hbV90b29s IGluCisrICBnbnV0YXIpCisrICAgIGZvciBfYW1fdGFyIGluIHRhciBnbnV0YXIgZ3RhcjsKKysg ICAgZG8KKysgICAgICBBTV9SVU5fTE9HKFskX2FtX3RhciAtLXZlcnNpb25dKSAmJiBicmVhawor KyAgICBkb25lCisrICAgIGFtX190YXI9IiRfYW1fdGFyIC0tZm9ybWF0PW00X2lmKFskMV0sIFtw YXhdLCBbcG9zaXhdLCBbJDFdKSAtY2hmIC0gIiciJCR0YXJkaXIiJworKyAgICBhbV9fdGFyXz0i JF9hbV90YXIgLS1mb3JtYXQ9bTRfaWYoWyQxXSwgW3BheF0sIFtwb3NpeF0sIFskMV0pIC1jaGYg LSAiJyIkdGFyZGlyIicKKysgICAgYW1fX3VudGFyPSIkX2FtX3RhciAteGYgLSIKKysgICAgOzsK KysgIHBsYWludGFyKQorKyAgICAjIE11c3Qgc2tpcCBHTlUgdGFyOiBpZiBpdCBkb2VzIG5vdCBz dXBwb3J0IC0tZm9ybWF0PSBpdCBkb2Vzbid0IGNyZWF0ZQorKyAgICAjIHVzdGFyIHRhcmJhbGwg ZWl0aGVyLgorKyAgICAodGFyIC0tdmVyc2lvbikgPi9kZXYvbnVsbCAyPiYxICYmIGNvbnRpbnVl CisrICAgIGFtX190YXI9J3RhciBjaGYgLSAiJCR0YXJkaXIiJworKyAgICBhbV9fdGFyXz0ndGFy IGNoZiAtICIkdGFyZGlyIicKKysgICAgYW1fX3VudGFyPSd0YXIgeGYgLScKKysgICAgOzsKKysg IHBheCkKKysgICAgYW1fX3Rhcj0ncGF4IC1MIC14ICQxIC13ICIkJHRhcmRpciInCisrICAgIGFt X190YXJfPSdwYXggLUwgLXggJDEgLXcgIiR0YXJkaXIiJworKyAgICBhbV9fdW50YXI9J3BheCAt cicKKysgICAgOzsKKysgIGNwaW8pCisrICAgIGFtX190YXI9J2ZpbmQgIiQkdGFyZGlyIiAtcHJp bnQgfCBjcGlvIC1vIC1IICQxIC1MJworKyAgICBhbV9fdGFyXz0nZmluZCAiJHRhcmRpciIgLXBy aW50IHwgY3BpbyAtbyAtSCAkMSAtTCcKKysgICAgYW1fX3VudGFyPSdjcGlvIC1pIC1IICQxIC1k JworKyAgICA7OworKyAgbm9uZSkKKysgICAgYW1fX3Rhcj1mYWxzZQorKyAgICBhbV9fdGFyXz1m YWxzZQorKyAgICBhbV9fdW50YXI9ZmFsc2UKKysgICAgOzsKKysgIGVzYWMKKysKKysgICMgSWYg dGhlIHZhbHVlIHdhcyBjYWNoZWQsIHN0b3Agbm93LiAgV2UganVzdCB3YW50ZWQgdG8gaGF2ZSBh bV9fdGFyCisrICAjIGFuZCBhbV9fdW50YXIgc2V0LgorKyAgdGVzdCAtbiAiJHthbV9jdl9wcm9n X3Rhcl8kMX0iICYmIGJyZWFrCisrCisrICAjIHRhci91bnRhciBhIGR1bW15IGRpcmVjdG9yeSwg YW5kIHN0b3AgaWYgdGhlIGNvbW1hbmQgd29ya3MKKysgIHJtIC1yZiBjb25mdGVzdC5kaXIKKysg IG1rZGlyIGNvbmZ0ZXN0LmRpcgorKyAgZWNobyBHcmVwTWUgPiBjb25mdGVzdC5kaXIvZmlsZQor KyAgQU1fUlVOX0xPRyhbdGFyZGlyPWNvbmZ0ZXN0LmRpciAmJiBldmFsICRhbV9fdGFyXyA+Y29u ZnRlc3QudGFyXSkKKysgIHJtIC1yZiBjb25mdGVzdC5kaXIKKysgIGlmIHRlc3QgLXMgY29uZnRl c3QudGFyOyB0aGVuCisrICAgIEFNX1JVTl9MT0coWyRhbV9fdW50YXIgPGNvbmZ0ZXN0LnRhcl0p CisrICAgIGdyZXAgR3JlcE1lIGNvbmZ0ZXN0LmRpci9maWxlID4vZGV2L251bGwgMj4mMSAmJiBi cmVhaworKyAgZmkKKytkb25lCisrcm0gLXJmIGNvbmZ0ZXN0LmRpcgorKworK0FDX0NBQ0hFX1ZB TChbYW1fY3ZfcHJvZ190YXJfJDFdLCBbYW1fY3ZfcHJvZ190YXJfJDE9JF9hbV90b29sXSkKKytB Q19NU0dfUkVTVUxUKFskYW1fY3ZfcHJvZ190YXJfJDFdKV0pCisrQUNfU1VCU1QoW2FtX190YXJd KQorK0FDX1NVQlNUKFthbV9fdW50YXJdKQorK10pICMgX0FNX1BST0dfVEFSCisrCisrbTRfaW5j bHVkZShbY29uZmlnL2F4X2Jvb3N0Lm00XSkKKyttNF9pbmNsdWRlKFtjb25maWcvYXhfbXlzcWwu bTRdKQorK200X2luY2x1ZGUoW2NvbmZpZy9heF9vcmFjbGVfb2NpLm00XSkKKyttNF9pbmNsdWRl KFtjb25maWcvYXhfcG9zdGdyZXNxbC5tNF0pCisrbTRfaW5jbHVkZShbY29uZmlnL2NwcHVuaXQu bTRdKQorK200X2luY2x1ZGUoW2NvbmZpZy9saWJ0b29sLm00XSkKKyttNF9pbmNsdWRlKFtjb25m aWcvbHRvcHRpb25zLm00XSkKKyttNF9pbmNsdWRlKFtjb25maWcvbHRzdWdhci5tNF0pCisrbTRf aW5jbHVkZShbY29uZmlnL2x0dmVyc2lvbi5tNF0pCisrbTRfaW5jbHVkZShbY29uZmlnL2x0fm9i c29sZXRlLm00XSkKK2RpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9BVVRIT1JTIHNvY2ktMy4w LjBfdHJlcDMwMC9BVVRIT1JTCistLS0gc29jaS0zLjAuMF80LXBhY2svQVVUSE9SUwkxOTcwLTAx LTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAorKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9BVVRI T1JTCTIwMDktMDQtMTYgMTk6Mzc6MTAuMDAwMDAwMDAwICswMjAwCitAQCAtMCwwICsxLDkgQEAK KysKKytEYXZpZCBDb3VydG5leSwgRGV2ZWxvcGVyLCBkYWNvdXJ0bmV5IGF0IHVzZXJzLnNvdXJj ZWZvcmdlLm5ldAorK01hdGV1c3ogTG9za290LCBEZXZlbG9wZXIsIG1sb3Nrb3QgYXQgdXNlcnMu c291cmNlZm9yZ2UubmV0CisrTWFjaWVqIFNvYmN6YWssIEFkbWluIFByb2plY3QgTWFuYWdlciwg bXNvYmN6YWsgYXQgdXNlcnMuc291cmNlZm9yZ2UubmV0CisrUGF3ZWwgQWxla3NhbmRlciBGZWRv cnluc2tpLCBEZXZlbG9wZXIsIHBmZWRvciBhdCB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQKKytSYWZh bCBCb2Jyb3dza2ksIERldmVsb3BlciwgcmJvYnJvIGF0IHVzZXJzLnNvdXJjZWZvcmdlLm5ldAor K0plYW4tTWFyYywgRGV2ZWxvcGVyLCBzaWRqdGFsIGF0IHVzZXJzLnNvdXJjZWZvcmdlLm5ldAor K1N0ZXBoZW4gSHV0dG9uLCBEZXZlbG9wZXIsIHN0ZXBoZW5odXR0b24gYXQgdXNlcnMuc291cmNl Zm9yZ2UubmV0CisrCitkaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svYnVpbGQvTWFrZWZpbGUu YW0gc29jaS0zLjAuMF90cmVwMzAwL2J1aWxkL01ha2VmaWxlLmFtCistLS0gc29jaS0zLjAuMF80 LXBhY2svYnVpbGQvTWFrZWZpbGUuYW0JMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAx MDAKKysrKyBzb2NpLTMuMC4wX3RyZXAzMDAvYnVpbGQvTWFrZWZpbGUuYW0JMjAwOS0wNC0xNiAx OTozNzowOC4wMDAwMDAwMDAgKzAyMDAKK0BAIC0wLDAgKzEsNyBAQAorKyMjIGJ1aWxkIHN1Yi1k aXJlY3RvcnkKKytpbmNsdWRlICQodG9wX3NyY2RpcikvTWFrZWZpbGUuY29tbW9uCisrCisrTUFJ TlRBSU5FUkNMRUFORklMRVMgPSBNYWtlZmlsZS5pbgorKworK1NVQkRJUlMgPSB1bml4IG1zdmM4 MAorKworZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL2J1aWxkL01ha2VmaWxlLmluIHNvY2kt My4wLjBfdHJlcDMwMC9idWlsZC9NYWtlZmlsZS5pbgorLS0tIHNvY2ktMy4wLjBfNC1wYWNrL2J1 aWxkL01ha2VmaWxlLmluCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCisrKysg c29jaS0zLjAuMF90cmVwMzAwL2J1aWxkL01ha2VmaWxlLmluCTIwMTAtMDEtMjMgMTQ6NDQ6NTEu MDAwMDAwMDAwICswMTAwCitAQCAtMCwwICsxLDYxNiBAQAorKyMgTWFrZWZpbGUuaW4gZ2VuZXJh dGVkIGJ5IGF1dG9tYWtlIDEuMTEuMSBmcm9tIE1ha2VmaWxlLmFtLgorKyMgQGNvbmZpZ3VyZV9p bnB1dEAKKysKKysjIENvcHlyaWdodCAoQykgMTk5NCwgMTk5NSwgMTk5NiwgMTk5NywgMTk5OCwg MTk5OSwgMjAwMCwgMjAwMSwgMjAwMiwKKysjIDIwMDMsIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcs IDIwMDgsIDIwMDkgIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwKKysjIEluYy4KKysjIFRoaXMg TWFrZWZpbGUuaW4gaXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv bgorKyMgZ2l2ZXMgdW5saW1pdGVkIHBlcm1pc3Npb24gdG8gY29weSBhbmQvb3IgZGlzdHJpYnV0 ZSBpdCwKKysjIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb25zLCBhcyBsb25nIGFzIHRoaXMg bm90aWNlIGlzIHByZXNlcnZlZC4KKysKKysjIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBp biB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorKyMgYnV0IFdJVEhPVVQgQU5ZIFdB UlJBTlRZLCB0byB0aGUgZXh0ZW50IHBlcm1pdHRlZCBieSBsYXc7IHdpdGhvdXQKKysjIGV2ZW4g dGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEK KysjIFBBUlRJQ1VMQVIgUFVSUE9TRS4KKysKKytAU0VUX01BS0VACisrVlBBVEggPSBAc3JjZGly QAorK3BrZ2RhdGFkaXIgPSAkKGRhdGFkaXIpL0BQQUNLQUdFQAorK3BrZ2luY2x1ZGVkaXIgPSAk KGluY2x1ZGVkaXIpL0BQQUNLQUdFQAorK3BrZ2xpYmRpciA9ICQobGliZGlyKS9AUEFDS0FHRUAK Kytwa2dsaWJleGVjZGlyID0gJChsaWJleGVjZGlyKS9AUEFDS0FHRUAKKythbV9fY2QgPSBDRFBB VEg9IiQke1pTSF9WRVJTSU9OKy59JChQQVRIX1NFUEFSQVRPUikiICYmIGNkCisraW5zdGFsbF9z aF9EQVRBID0gJChpbnN0YWxsX3NoKSAtYyAtbSA2NDQKKytpbnN0YWxsX3NoX1BST0dSQU0gPSAk KGluc3RhbGxfc2gpIC1jCisraW5zdGFsbF9zaF9TQ1JJUFQgPSAkKGluc3RhbGxfc2gpIC1jCisr SU5TVEFMTF9IRUFERVIgPSAkKElOU1RBTExfREFUQSkKKyt0cmFuc2Zvcm0gPSAkKHByb2dyYW1f dHJhbnNmb3JtX25hbWUpCisrTk9STUFMX0lOU1RBTEwgPSA6CisrUFJFX0lOU1RBTEwgPSA6Cisr UE9TVF9JTlNUQUxMID0gOgorK05PUk1BTF9VTklOU1RBTEwgPSA6CisrUFJFX1VOSU5TVEFMTCA9 IDoKKytQT1NUX1VOSU5TVEFMTCA9IDoKKytidWlsZF90cmlwbGV0ID0gQGJ1aWxkQAorK2hvc3Rf dHJpcGxldCA9IEBob3N0QAorK0RJU1RfQ09NTU9OID0gUkVBRE1FICQoc3JjZGlyKS9NYWtlZmls ZS5hbSAkKHNyY2RpcikvTWFrZWZpbGUuaW4gXAorKwkkKHRvcF9zcmNkaXIpL01ha2VmaWxlLmNv bW1vbgorK3N1YmRpciA9IGJ1aWxkCisrQUNMT0NBTF9NNCA9ICQodG9wX3NyY2RpcikvYWNsb2Nh bC5tNAorK2FtX19hY2xvY2FsX200X2RlcHMgPSAkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9ib29z dC5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2F4X215c3FsLm00IFwKKysJJCh0b3Bfc3Jj ZGlyKS9jb25maWcvYXhfb3JhY2xlX29jaS5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2F4 X3Bvc3RncmVzcWwubTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9jcHB1bml0Lm00IFwKKysJ JCh0b3Bfc3JjZGlyKS9jb25maWcvbGlidG9vbC5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmln L2x0b3B0aW9ucy5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2x0c3VnYXIubTQgXAorKwkk KHRvcF9zcmNkaXIpL2NvbmZpZy9sdHZlcnNpb24ubTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZp Zy9sdH5vYnNvbGV0ZS5tNCAkKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZS5hYworK2FtX19jb25maWd1 cmVfZGVwcyA9ICQoYW1fX2FjbG9jYWxfbTRfZGVwcykgJChDT05GSUdVUkVfREVQRU5ERU5DSUVT KSBcCisrCSQoQUNMT0NBTF9NNCkKKytta2luc3RhbGxkaXJzID0gJChpbnN0YWxsX3NoKSAtZAor K0NPTkZJR19IRUFERVIgPSAkKHRvcF9idWlsZGRpcikvc29jaS9jb25maWcuaAorK0NPTkZJR19D TEVBTl9GSUxFUyA9CisrQ09ORklHX0NMRUFOX1ZQQVRIX0ZJTEVTID0KKytTT1VSQ0VTID0KKytE SVNUX1NPVVJDRVMgPQorK1JFQ1VSU0lWRV9UQVJHRVRTID0gYWxsLXJlY3Vyc2l2ZSBjaGVjay1y ZWN1cnNpdmUgZHZpLXJlY3Vyc2l2ZSBcCisrCWh0bWwtcmVjdXJzaXZlIGluZm8tcmVjdXJzaXZl IGluc3RhbGwtZGF0YS1yZWN1cnNpdmUgXAorKwlpbnN0YWxsLWR2aS1yZWN1cnNpdmUgaW5zdGFs bC1leGVjLXJlY3Vyc2l2ZSBcCisrCWluc3RhbGwtaHRtbC1yZWN1cnNpdmUgaW5zdGFsbC1pbmZv LXJlY3Vyc2l2ZSBcCisrCWluc3RhbGwtcGRmLXJlY3Vyc2l2ZSBpbnN0YWxsLXBzLXJlY3Vyc2l2 ZSBpbnN0YWxsLXJlY3Vyc2l2ZSBcCisrCWluc3RhbGxjaGVjay1yZWN1cnNpdmUgaW5zdGFsbGRp cnMtcmVjdXJzaXZlIHBkZi1yZWN1cnNpdmUgXAorKwlwcy1yZWN1cnNpdmUgdW5pbnN0YWxsLXJl Y3Vyc2l2ZQorK1JFQ1VSU0lWRV9DTEVBTl9UQVJHRVRTID0gbW9zdGx5Y2xlYW4tcmVjdXJzaXZl IGNsZWFuLXJlY3Vyc2l2ZQlcCisrICBkaXN0Y2xlYW4tcmVjdXJzaXZlIG1haW50YWluZXItY2xl YW4tcmVjdXJzaXZlCisrQU1fUkVDVVJTSVZFX1RBUkdFVFMgPSAkKFJFQ1VSU0lWRV9UQVJHRVRT Oi1yZWN1cnNpdmU9KSBcCisrCSQoUkVDVVJTSVZFX0NMRUFOX1RBUkdFVFM6LXJlY3Vyc2l2ZT0p IHRhZ3MgVEFHUyBjdGFncyBDVEFHUyBcCisrCWRpc3RkaXIKKytFVEFHUyA9IGV0YWdzCisrQ1RB R1MgPSBjdGFncworK0RJU1RfU1VCRElSUyA9ICQoU1VCRElSUykKKytESVNURklMRVMgPSAkKERJ U1RfQ09NTU9OKSAkKERJU1RfU09VUkNFUykgJChURVhJTkZPUykgJChFWFRSQV9ESVNUKQorK2Ft X19yZWxhdGl2aXplID0gXAorKyAgZGlyMD1gcHdkYDsgXAorKyAgc2VkX2ZpcnN0PSdzLF5cKFte L10qXCkvLiokJCxcMSwnOyBcCisrICBzZWRfcmVzdD0ncyxeW14vXSovKiwsJzsgXAorKyAgc2Vk X2xhc3Q9J3MsXi4qL1woW14vXSpcKSQkLFwxLCc7IFwKKysgIHNlZF9idXRsYXN0PSdzLC8qW14v XSokJCwsJzsgXAorKyAgd2hpbGUgdGVzdCAtbiAiJCRkaXIxIjsgZG8gXAorKyAgICBmaXJzdD1g ZWNobyAiJCRkaXIxIiB8IHNlZCAtZSAiJCRzZWRfZmlyc3QiYDsgXAorKyAgICBpZiB0ZXN0ICIk JGZpcnN0IiAhPSAiLiI7IHRoZW4gXAorKyAgICAgIGlmIHRlc3QgIiQkZmlyc3QiID0gIi4uIjsg dGhlbiBcCisrICAgICAgICBkaXIyPWBlY2hvICIkJGRpcjAiIHwgc2VkIC1lICIkJHNlZF9sYXN0 ImAvIiQkZGlyMiI7IFwKKysgICAgICAgIGRpcjA9YGVjaG8gIiQkZGlyMCIgfCBzZWQgLWUgIiQk c2VkX2J1dGxhc3QiYDsgXAorKyAgICAgIGVsc2UgXAorKyAgICAgICAgZmlyc3QyPWBlY2hvICIk JGRpcjIiIHwgc2VkIC1lICIkJHNlZF9maXJzdCJgOyBcCisrICAgICAgICBpZiB0ZXN0ICIkJGZp cnN0MiIgPSAiJCRmaXJzdCI7IHRoZW4gXAorKyAgICAgICAgICBkaXIyPWBlY2hvICIkJGRpcjIi IHwgc2VkIC1lICIkJHNlZF9yZXN0ImA7IFwKKysgICAgICAgIGVsc2UgXAorKyAgICAgICAgICBk aXIyPSIuLi8kJGRpcjIiOyBcCisrICAgICAgICBmaTsgXAorKyAgICAgICAgZGlyMD0iJCRkaXIw Ii8iJCRmaXJzdCI7IFwKKysgICAgICBmaTsgXAorKyAgICBmaTsgXAorKyAgICBkaXIxPWBlY2hv ICIkJGRpcjEiIHwgc2VkIC1lICIkJHNlZF9yZXN0ImA7IFwKKysgIGRvbmU7IFwKKysgIHJlbGRp cj0iJCRkaXIyIgorK0FDTE9DQUwgPSBAQUNMT0NBTEAKKytBTVRBUiA9IEBBTVRBUkAKKytBUiA9 IEBBUkAKKytBVVRPQ09ORiA9IEBBVVRPQ09ORkAKKytBVVRPSEVBREVSID0gQEFVVE9IRUFERVJA CisrQVVUT01BS0UgPSBAQVVUT01BS0VACisrQVdLID0gQEFXS0AKKytCT09TVF9DRkxBR1MgPSBA Qk9PU1RfQ0ZMQUdTQAorK0JPT1NUX0RBVEVfVElNRV9MSUIgPSBAQk9PU1RfREFURV9USU1FX0xJ QkAKKytCT09TVF9GSUxFU1lTVEVNX0xJQiA9IEBCT09TVF9GSUxFU1lTVEVNX0xJQkAKKytCT09T VF9JT1NUUkVBTVNfTElCID0gQEJPT1NUX0lPU1RSRUFNU19MSUJACisrQk9PU1RfTElCUyA9IEBC T09TVF9MSUJTQAorK0JPT1NUX01QSV9MSUIgPSBAQk9PU1RfTVBJX0xJQkAKKytCT09TVF9NUElf UFlUSE9OX0xJQiA9IEBCT09TVF9NUElfUFlUSE9OX0xJQkAKKytCT09TVF9QUk9HUkFNX09QVElP TlNfTElCID0gQEJPT1NUX1BST0dSQU1fT1BUSU9OU19MSUJACisrQk9PU1RfUFlUSE9OX0xJQiA9 IEBCT09TVF9QWVRIT05fTElCQAorK0JPT1NUX1JFR0VYX0xJQiA9IEBCT09TVF9SRUdFWF9MSUJA CisrQk9PU1RfU0VSSUFMSVpBVElPTl9MSUIgPSBAQk9PU1RfU0VSSUFMSVpBVElPTl9MSUJACisr Qk9PU1RfU0lHTkFMU19MSUIgPSBAQk9PU1RfU0lHTkFMU19MSUJACisrQk9PU1RfU1lTVEVNX0xJ QiA9IEBCT09TVF9TWVNURU1fTElCQAorK0JPT1NUX1RIUkVBRF9MSUIgPSBAQk9PU1RfVEhSRUFE X0xJQkAKKytCT09TVF9VTklUX1RFU1RfRlJBTUVXT1JLX0xJQiA9IEBCT09TVF9VTklUX1RFU1Rf RlJBTUVXT1JLX0xJQkAKKytCT09TVF9WRVJTSU9OID0gQEJPT1NUX1ZFUlNJT05ACisrQk9PU1Rf V1NFUklBTElaQVRJT05fTElCID0gQEJPT1NUX1dTRVJJQUxJWkFUSU9OX0xJQkAKKytDQyA9IEBD Q0AKKytDQ0RFUE1PREUgPSBAQ0NERVBNT0RFQAorK0NGTEFHUyA9IEBDRkxBR1NACisrQ1BQID0g QENQUEAKKytDUFBGTEFHUyA9IEBDUFBGTEFHU0AKKytDUFBVTklUX0NGTEFHUyA9IEBDUFBVTklU X0NGTEFHU0AKKytDUFBVTklUX0NPTkZJRyA9IEBDUFBVTklUX0NPTkZJR0AKKytDUFBVTklUX0xJ QlMgPSBAQ1BQVU5JVF9MSUJTQAorK0NQUFVOSVRfVkVSU0lPTiA9IEBDUFBVTklUX1ZFUlNJT05A CisrQ1hYID0gQENYWEAKKytDWFhDUFAgPSBAQ1hYQ1BQQAorK0NYWERFUE1PREUgPSBAQ1hYREVQ TU9ERUAKKytDWFhGTEFHUyA9IEBDWFhGTEFHU0AKKytDWUdQQVRIX1cgPSBAQ1lHUEFUSF9XQAor K0RFRlMgPSBAREVGU0AKKytERVBESVIgPSBAREVQRElSQAorK0RTWU1VVElMID0gQERTWU1VVElM QAorK0RVTVBCSU4gPSBARFVNUEJJTkAKKytFQ0hPX0MgPSBARUNIT19DQAorK0VDSE9fTiA9IEBF Q0hPX05ACisrRUNIT19UID0gQEVDSE9fVEAKKytFR1JFUCA9IEBFR1JFUEAKKytFWEVFWFQgPSBA RVhFRVhUQAorK0ZHUkVQID0gQEZHUkVQQAorK0dFTkVSSUNfTElCUkFSWV9WRVJTSU9OID0gQEdF TkVSSUNfTElCUkFSWV9WRVJTSU9OQAorK0dSRVAgPSBAR1JFUEAKKytJTlNUQUxMID0gQElOU1RB TExACisrSU5TVEFMTF9EQVRBID0gQElOU1RBTExfREFUQUAKKytJTlNUQUxMX1BST0dSQU0gPSBA SU5TVEFMTF9QUk9HUkFNQAorK0lOU1RBTExfU0NSSVBUID0gQElOU1RBTExfU0NSSVBUQAorK0lO U1RBTExfU1RSSVBfUFJPR1JBTSA9IEBJTlNUQUxMX1NUUklQX1BST0dSQU1ACisrTEQgPSBATERA CisrTERGTEFHUyA9IEBMREZMQUdTQAorK0xJQk9CSlMgPSBATElCT0JKU0AKKytMSUJTID0gQExJ QlNACisrTElCVE9PTCA9IEBMSUJUT09MQAorK0xJUE8gPSBATElQT0AKKytMTl9TID0gQExOX1NA CisrTFRMSUJPQkpTID0gQExUTElCT0JKU0AKKytNQUtFSU5GTyA9IEBNQUtFSU5GT0AKKytNS0RJ Ul9QID0gQE1LRElSX1BACisrTVlTUUxfQ0ZMQUdTID0gQE1ZU1FMX0NGTEFHU0AKKytNWVNRTF9D X0xJQiA9IEBNWVNRTF9DX0xJQkAKKytNWVNRTF9ESVJTID0gQE1ZU1FMX0RJUlNACisrTVlTUUxf TElCUyA9IEBNWVNRTF9MSUJTQAorK01ZU1FMX1ZFUlNJT04gPSBATVlTUUxfVkVSU0lPTkAKKytO TSA9IEBOTUAKKytOTUVESVQgPSBATk1FRElUQAorK09CSkRVTVAgPSBAT0JKRFVNUEAKKytPQkpF WFQgPSBAT0JKRVhUQAorK09SQUNMRV9ESVJTID0gQE9SQUNMRV9ESVJTQAorK09SQUNMRV9PQ0lf Q0ZMQUdTID0gQE9SQUNMRV9PQ0lfQ0ZMQUdTQAorK09SQUNMRV9PQ0lfTERGTEFHUyA9IEBPUkFD TEVfT0NJX0xERkxBR1NACisrT1JBQ0xFX09DSV9WRVJTSU9OID0gQE9SQUNMRV9PQ0lfVkVSU0lP TkAKKytPVE9PTCA9IEBPVE9PTEAKKytPVE9PTDY0ID0gQE9UT09MNjRACisrUEFDS0FHRSA9IEBQ QUNLQUdFQAorK1BBQ0tBR0VfQlVHUkVQT1JUID0gQFBBQ0tBR0VfQlVHUkVQT1JUQAorK1BBQ0tB R0VfTkFNRSA9IEBQQUNLQUdFX05BTUVACisrUEFDS0FHRV9TVFJJTkcgPSBAUEFDS0FHRV9TVFJJ TkdACisrUEFDS0FHRV9UQVJOQU1FID0gQFBBQ0tBR0VfVEFSTkFNRUAKKytQQUNLQUdFX1ZFUlNJ T04gPSBAUEFDS0FHRV9WRVJTSU9OQAorK1BBVEhfU0VQQVJBVE9SID0gQFBBVEhfU0VQQVJBVE9S QAorK1BFUkwgPSBAUEVSTEAKKytQR19DT05GSUcgPSBAUEdfQ09ORklHQAorK1BPU1RHUkVTUUxf Q0ZMQUdTID0gQFBPU1RHUkVTUUxfQ0ZMQUdTQAorK1BPU1RHUkVTUUxfRElSUyA9IEBQT1NUR1JF U1FMX0RJUlNACisrUE9TVEdSRVNRTF9MREZMQUdTID0gQFBPU1RHUkVTUUxfTERGTEFHU0AKKytQ T1NUR1JFU1FMX1ZFUlNJT04gPSBAUE9TVEdSRVNRTF9WRVJTSU9OQAorK1JBTkxJQiA9IEBSQU5M SUJACisrUlBNX1JFTEVBU0UgPSBAUlBNX1JFTEVBU0VACisrU0VEID0gQFNFREAKKytTRVRfTUFL RSA9IEBTRVRfTUFLRUAKKytTSEVMTCA9IEBTSEVMTEAKKytTT0NJX0hFQURFUlNfQlVSSUVEID0g QFNPQ0lfSEVBREVSU19CVVJJRURACisrU09DSV9NWVNRTF9IRUFERVJTX0JVUklFRCA9IEBTT0NJ X01ZU1FMX0hFQURFUlNfQlVSSUVEQAorK1NPQ0lfUE9TVEdSRVNRTF9IRUFERVJTX0JVUklFRCA9 IEBTT0NJX1BPU1RHUkVTUUxfSEVBREVSU19CVVJJRURACisrU1RSSVAgPSBAU1RSSVBACisrVVBM T0FEX0NPTU1BTkQgPSBAVVBMT0FEX0NPTU1BTkRACisrVkVSU0lPTiA9IEBWRVJTSU9OQAorK2Fi c19idWlsZGRpciA9IEBhYnNfYnVpbGRkaXJACisrYWJzX3NyY2RpciA9IEBhYnNfc3JjZGlyQAor K2Fic190b3BfYnVpbGRkaXIgPSBAYWJzX3RvcF9idWlsZGRpckAKKythYnNfdG9wX3NyY2RpciA9 IEBhYnNfdG9wX3NyY2RpckAKKythY19jdF9DQyA9IEBhY19jdF9DQ0AKKythY19jdF9DWFggPSBA YWNfY3RfQ1hYQAorK2FjX2N0X0RVTVBCSU4gPSBAYWNfY3RfRFVNUEJJTkAKKythbV9faW5jbHVk ZSA9IEBhbV9faW5jbHVkZUAKKythbV9fbGVhZGluZ19kb3QgPSBAYW1fX2xlYWRpbmdfZG90QAor K2FtX19xdW90ZSA9IEBhbV9fcXVvdGVACisrYW1fX3RhciA9IEBhbV9fdGFyQAorK2FtX191bnRh ciA9IEBhbV9fdW50YXJACisrYmluZGlyID0gQGJpbmRpckAKKytidWlsZCA9IEBidWlsZEAKKyti dWlsZF9hbGlhcyA9IEBidWlsZF9hbGlhc0AKKytidWlsZF9jcHUgPSBAYnVpbGRfY3B1QAorK2J1 aWxkX29zID0gQGJ1aWxkX29zQAorK2J1aWxkX3ZlbmRvciA9IEBidWlsZF92ZW5kb3JACisrYnVp bGRkaXIgPSBAYnVpbGRkaXJACisrZGF0YWRpciA9IEBkYXRhZGlyQAorK2RhdGFyb290ZGlyID0g QGRhdGFyb290ZGlyQAorK2RpZmZfb2sgPSBAZGlmZl9va0AKKytkb2NkaXIgPSBAZG9jZGlyQAor K2RveHlnZW5fb2sgPSBAZG94eWdlbl9va0AKKytkdmlkaXIgPSBAZHZpZGlyQAorK2R2aXBzX29r ID0gQGR2aXBzX29rQAorK2V4ZWNfcHJlZml4ID0gQGV4ZWNfcHJlZml4QAorK2dzX29rID0gQGdz X29rQAorK2hvc3QgPSBAaG9zdEAKKytob3N0X2FsaWFzID0gQGhvc3RfYWxpYXNACisraG9zdF9j cHUgPSBAaG9zdF9jcHVACisraG9zdF9vcyA9IEBob3N0X29zQAorK2hvc3RfdmVuZG9yID0gQGhv c3RfdmVuZG9yQAorK2h0bWxkaXIgPSBAaHRtbGRpckAKKytpbmNsdWRlZGlyID0gQGluY2x1ZGVk aXJACisraW5mb2RpciA9IEBpbmZvZGlyQAorK2luc3RhbGxfc2ggPSBAaW5zdGFsbF9zaEAKKyts YXRleF9vayA9IEBsYXRleF9va0AKKytsaWJkaXIgPSBAbGliZGlyQAorK2xpYmV4ZWNkaXIgPSBA bGliZXhlY2RpckAKKytsb2NhbGVkaXIgPSBAbG9jYWxlZGlyQAorK2xvY2Fsc3RhdGVkaXIgPSBA bG9jYWxzdGF0ZWRpckAKKytsdF9FQ0hPID0gQGx0X0VDSE9ACisrbWFuZGlyID0gQG1hbmRpckAK Kytta2Rpcl9wID0gQG1rZGlyX3BACisrb2xkaW5jbHVkZWRpciA9IEBvbGRpbmNsdWRlZGlyQAor K3BkZmRpciA9IEBwZGZkaXJACisrcHJlZml4ID0gQHByZWZpeEAKKytwcm9ncmFtX3RyYW5zZm9y bV9uYW1lID0gQHByb2dyYW1fdHJhbnNmb3JtX25hbWVACisrcHNkaXIgPSBAcHNkaXJACisrc2Jp bmRpciA9IEBzYmluZGlyQAorK3NlZF9vayA9IEBzZWRfb2tACisrc2hhcmVkc3RhdGVkaXIgPSBA c2hhcmVkc3RhdGVkaXJACisrc3JjZGlyID0gQHNyY2RpckAKKytzeXNjb25mZGlyID0gQHN5c2Nv bmZkaXJACisrdGFyZ2V0X2FsaWFzID0gQHRhcmdldF9hbGlhc0AKKyt0b3BfYnVpbGRfcHJlZml4 ID0gQHRvcF9idWlsZF9wcmVmaXhACisrdG9wX2J1aWxkZGlyID0gQHRvcF9idWlsZGRpckAKKyt0 b3Bfc3JjZGlyID0gQHRvcF9zcmNkaXJACisrQU1fQ1BQRkxBR1MgPSAtSSQodG9wX2J1aWxkZGly KSAtSSQodG9wX3NyY2RpcikKKytNQUlOVEFJTkVSQ0xFQU5GSUxFUyA9IE1ha2VmaWxlLmluCisr U1VCRElSUyA9IHVuaXggbXN2YzgwCisrYWxsOiBhbGwtcmVjdXJzaXZlCisrCisrLlNVRkZJWEVT OgorKyQoc3JjZGlyKS9NYWtlZmlsZS5pbjogICQoc3JjZGlyKS9NYWtlZmlsZS5hbSAkKHRvcF9z cmNkaXIpL01ha2VmaWxlLmNvbW1vbiAkKGFtX19jb25maWd1cmVfZGVwcykKKysJQGZvciBkZXAg aW4gJD87IGRvIFwKKysJICBjYXNlICckKGFtX19jb25maWd1cmVfZGVwcyknIGluIFwKKysJICAg ICokJGRlcCopIFwKKysJICAgICAgKCBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFN X01BS0VGTEFHUykgYW0tLXJlZnJlc2ggKSBcCisrCSAgICAgICAgJiYgeyBpZiB0ZXN0IC1mICRA OyB0aGVuIGV4aXQgMDsgZWxzZSBicmVhazsgZmk7IH07IFwKKysJICAgICAgZXhpdCAxOzsgXAor KwkgIGVzYWM7IFwKKysJZG9uZTsgXAorKwllY2hvICcgY2QgJCh0b3Bfc3JjZGlyKSAmJiAkKEFV VE9NQUtFKSAtLWdudSBidWlsZC9NYWtlZmlsZSc7IFwKKysJJChhbV9fY2QpICQodG9wX3NyY2Rp cikgJiYgXAorKwkgICQoQVVUT01BS0UpIC0tZ251IGJ1aWxkL01ha2VmaWxlCisrLlBSRUNJT1VT OiBNYWtlZmlsZQorK01ha2VmaWxlOiAkKHNyY2RpcikvTWFrZWZpbGUuaW4gJCh0b3BfYnVpbGRk aXIpL2NvbmZpZy5zdGF0dXMKKysJQGNhc2UgJyQ/JyBpbiBcCisrCSAgKmNvbmZpZy5zdGF0dXMq KSBcCisrCSAgICBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykg YW0tLXJlZnJlc2g7OyBcCisrCSAgKikgXAorKwkgICAgZWNobyAnIGNkICQodG9wX2J1aWxkZGly KSAmJiAkKFNIRUxMKSAuL2NvbmZpZy5zdGF0dXMgJChzdWJkaXIpLyRAICQoYW1fX2RlcGZpbGVz X21heWJlKSc7IFwKKysJICAgIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKFNIRUxMKSAuL2NvbmZp Zy5zdGF0dXMgJChzdWJkaXIpLyRAICQoYW1fX2RlcGZpbGVzX21heWJlKTs7IFwKKysJZXNhYzsK KysKKyskKHRvcF9idWlsZGRpcikvY29uZmlnLnN0YXR1czogJCh0b3Bfc3JjZGlyKS9jb25maWd1 cmUgJChDT05GSUdfU1RBVFVTX0RFUEVOREVOQ0lFUykKKysJY2QgJCh0b3BfYnVpbGRkaXIpICYm ICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCisrCisrJCh0b3Bfc3JjZGlyKS9j b25maWd1cmU6ICAkKGFtX19jb25maWd1cmVfZGVwcykKKysJY2QgJCh0b3BfYnVpbGRkaXIpICYm ICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCisrJChBQ0xPQ0FMX000KTogICQo YW1fX2FjbG9jYWxfbTRfZGVwcykKKysJY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChB TV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCisrJChhbV9fYWNsb2NhbF9tNF9kZXBzKToKKysKKytt b3N0bHljbGVhbi1saWJ0b29sOgorKwktcm0gLWYgKi5sbworKworK2NsZWFuLWxpYnRvb2w6Cisr CS1ybSAtcmYgLmxpYnMgX2xpYnMKKysKKysjIFRoaXMgZGlyZWN0b3J5J3Mgc3ViZGlyZWN0b3Jp ZXMgYXJlIG1vc3RseSBpbmRlcGVuZGVudDsgeW91IGNhbiBjZAorKyMgaW50byB0aGVtIGFuZCBy dW4gYG1ha2UnIHdpdGhvdXQgZ29pbmcgdGhyb3VnaCB0aGlzIE1ha2VmaWxlLgorKyMgVG8gY2hh bmdlIHRoZSB2YWx1ZXMgb2YgYG1ha2UnIHZhcmlhYmxlczogaW5zdGVhZCBvZiBlZGl0aW5nIE1h a2VmaWxlcywKKysjICgxKSBpZiB0aGUgdmFyaWFibGUgaXMgc2V0IGluIGBjb25maWcuc3RhdHVz JywgZWRpdCBgY29uZmlnLnN0YXR1cycKKysjICAgICAod2hpY2ggd2lsbCBjYXVzZSB0aGUgTWFr ZWZpbGVzIHRvIGJlIHJlZ2VuZXJhdGVkIHdoZW4geW91IHJ1biBgbWFrZScpOworKyMgKDIpIG90 aGVyd2lzZSwgcGFzcyB0aGUgZGVzaXJlZCB2YWx1ZXMgb24gdGhlIGBtYWtlJyBjb21tYW5kIGxp bmUuCisrJChSRUNVUlNJVkVfVEFSR0VUUyk6CisrCUBmYWlsPSBmYWlsY29tPSdleGl0IDEnOyBc CisrCWZvciBmIGluIHggJCRNQUtFRkxBR1M7IGRvIFwKKysJICBjYXNlICQkZiBpbiBcCisrCSAg ICAqPSogfCAtLVsha10qKTs7IFwKKysJICAgICprKikgZmFpbGNvbT0nZmFpbD15ZXMnOzsgXAor KwkgIGVzYWM7IFwKKysJZG9uZTsgXAorKwlkb3Rfc2Vlbj1ubzsgXAorKwl0YXJnZXQ9YGVjaG8g JEAgfCBzZWQgcy8tcmVjdXJzaXZlLy9gOyBcCisrCWxpc3Q9JyQoU1VCRElSUyknOyBmb3Igc3Vi ZGlyIGluICQkbGlzdDsgZG8gXAorKwkgIGVjaG8gIk1ha2luZyAkJHRhcmdldCBpbiAkJHN1YmRp ciI7IFwKKysJICBpZiB0ZXN0ICIkJHN1YmRpciIgPSAiLiI7IHRoZW4gXAorKwkgICAgZG90X3Nl ZW49eWVzOyBcCisrCSAgICBsb2NhbF90YXJnZXQ9IiQkdGFyZ2V0LWFtIjsgXAorKwkgIGVsc2Ug XAorKwkgICAgbG9jYWxfdGFyZ2V0PSIkJHRhcmdldCI7IFwKKysJICBmaTsgXAorKwkgICgkKGFt X19jZCkgJCRzdWJkaXIgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgJCRsb2NhbF90YXJnZXQp IFwKKysJICB8fCBldmFsICQkZmFpbGNvbTsgXAorKwlkb25lOyBcCisrCWlmIHRlc3QgIiQkZG90 X3NlZW4iID0gIm5vIjsgdGhlbiBcCisrCSAgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgIiQkdGFy Z2V0LWFtIiB8fCBleGl0IDE7IFwKKysJZmk7IHRlc3QgLXogIiQkZmFpbCIKKysKKyskKFJFQ1VS U0lWRV9DTEVBTl9UQVJHRVRTKToKKysJQGZhaWw9IGZhaWxjb209J2V4aXQgMSc7IFwKKysJZm9y IGYgaW4geCAkJE1BS0VGTEFHUzsgZG8gXAorKwkgIGNhc2UgJCRmIGluIFwKKysJICAgICo9KiB8 IC0tWyFrXSopOzsgXAorKwkgICAgKmsqKSBmYWlsY29tPSdmYWlsPXllcyc7OyBcCisrCSAgZXNh YzsgXAorKwlkb25lOyBcCisrCWRvdF9zZWVuPW5vOyBcCisrCWNhc2UgIiRAIiBpbiBcCisrCSAg ZGlzdGNsZWFuLSogfCBtYWludGFpbmVyLWNsZWFuLSopIGxpc3Q9JyQoRElTVF9TVUJESVJTKScg OzsgXAorKwkgICopIGxpc3Q9JyQoU1VCRElSUyknIDs7IFwKKysJZXNhYzsgXAorKwlyZXY9Jyc7 IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCisrCSAgaWYgdGVzdCAiJCRzdWJkaXIiID0gIi4i OyB0aGVuIDo7IGVsc2UgXAorKwkgICAgcmV2PSIkJHN1YmRpciAkJHJldiI7IFwKKysJICBmaTsg XAorKwlkb25lOyBcCisrCXJldj0iJCRyZXYgLiI7IFwKKysJdGFyZ2V0PWBlY2hvICRAIHwgc2Vk IHMvLXJlY3Vyc2l2ZS8vYDsgXAorKwlmb3Igc3ViZGlyIGluICQkcmV2OyBkbyBcCisrCSAgZWNo byAiTWFraW5nICQkdGFyZ2V0IGluICQkc3ViZGlyIjsgXAorKwkgIGlmIHRlc3QgIiQkc3ViZGly IiA9ICIuIjsgdGhlbiBcCisrCSAgICBsb2NhbF90YXJnZXQ9IiQkdGFyZ2V0LWFtIjsgXAorKwkg IGVsc2UgXAorKwkgICAgbG9jYWxfdGFyZ2V0PSIkJHRhcmdldCI7IFwKKysJICBmaTsgXAorKwkg ICgkKGFtX19jZCkgJCRzdWJkaXIgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgJCRsb2NhbF90 YXJnZXQpIFwKKysJICB8fCBldmFsICQkZmFpbGNvbTsgXAorKwlkb25lICYmIHRlc3QgLXogIiQk ZmFpbCIKKyt0YWdzLXJlY3Vyc2l2ZToKKysJbGlzdD0nJChTVUJESVJTKSc7IGZvciBzdWJkaXIg aW4gJCRsaXN0OyBkbyBcCisrCSAgdGVzdCAiJCRzdWJkaXIiID0gLiB8fCAoJChhbV9fY2QpICQk c3ViZGlyICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIHRhZ3MpOyBcCisrCWRvbmUKKytjdGFn cy1yZWN1cnNpdmU6CisrCWxpc3Q9JyQoU1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsg ZG8gXAorKwkgIHRlc3QgIiQkc3ViZGlyIiA9IC4gfHwgKCQoYW1fX2NkKSAkJHN1YmRpciAmJiAk KE1BS0UpICQoQU1fTUFLRUZMQUdTKSBjdGFncyk7IFwKKysJZG9uZQorKworK0lEOiAkKEhFQURF UlMpICQoU09VUkNFUykgJChMSVNQKSAkKFRBR1NfRklMRVMpCisrCWxpc3Q9JyQoU09VUkNFUykg JChIRUFERVJTKSAkKExJU1ApICQoVEFHU19GSUxFUyknOyBcCisrCXVuaXF1ZT1gZm9yIGkgaW4g JCRsaXN0OyBkbyBcCisrCSAgICBpZiB0ZXN0IC1mICIkJGkiOyB0aGVuIGVjaG8gJCRpOyBlbHNl IGVjaG8gJChzcmNkaXIpLyQkaTsgZmk7IFwKKysJICBkb25lIHwgXAorKwkgICQoQVdLKSAneyBm aWxlc1skJDBdID0gMTsgbm9uZW1wdHkgPSAxOyB9IFwKKysJICAgICAgRU5EIHsgaWYgKG5vbmVt cHR5KSB7IGZvciAoaSBpbiBmaWxlcykgcHJpbnQgaTsgfTsgfSdgOyBcCisrCW1raWQgLWZJRCAk JHVuaXF1ZQorK3RhZ3M6IFRBR1MKKysKKytUQUdTOiB0YWdzLXJlY3Vyc2l2ZSAkKEhFQURFUlMp ICQoU09VUkNFUykgICQoVEFHU19ERVBFTkRFTkNJRVMpIFwKKysJCSQoVEFHU19GSUxFUykgJChM SVNQKQorKwlzZXQgeDsgXAorKwloZXJlPWBwd2RgOyBcCisrCWlmICgkKEVUQUdTKSAtLWV0YWdz LWluY2x1ZGUgLS12ZXJzaW9uKSA+L2Rldi9udWxsIDI+JjE7IHRoZW4gXAorKwkgIGluY2x1ZGVf b3B0aW9uPS0tZXRhZ3MtaW5jbHVkZTsgXAorKwkgIGVtcHR5X2ZpeD0uOyBcCisrCWVsc2UgXAor KwkgIGluY2x1ZGVfb3B0aW9uPS0taW5jbHVkZTsgXAorKwkgIGVtcHR5X2ZpeD07IFwKKysJZmk7 IFwKKysJbGlzdD0nJChTVUJESVJTKSc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCisrCSAg aWYgdGVzdCAiJCRzdWJkaXIiID0gLjsgdGhlbiA6OyBlbHNlIFwKKysJICAgIHRlc3QgISAtZiAk JHN1YmRpci9UQUdTIHx8IFwKKysJICAgICAgc2V0ICIkJEAiICIkJGluY2x1ZGVfb3B0aW9uPSQk aGVyZS8kJHN1YmRpci9UQUdTIjsgXAorKwkgIGZpOyBcCisrCWRvbmU7IFwKKysJbGlzdD0nJChT T1VSQ0VTKSAkKEhFQURFUlMpICAkKExJU1ApICQoVEFHU19GSUxFUyknOyBcCisrCXVuaXF1ZT1g Zm9yIGkgaW4gJCRsaXN0OyBkbyBcCisrCSAgICBpZiB0ZXN0IC1mICIkJGkiOyB0aGVuIGVjaG8g JCRpOyBlbHNlIGVjaG8gJChzcmNkaXIpLyQkaTsgZmk7IFwKKysJICBkb25lIHwgXAorKwkgICQo QVdLKSAneyBmaWxlc1skJDBdID0gMTsgbm9uZW1wdHkgPSAxOyB9IFwKKysJICAgICAgRU5EIHsg aWYgKG5vbmVtcHR5KSB7IGZvciAoaSBpbiBmaWxlcykgcHJpbnQgaTsgfTsgfSdgOyBcCisrCXNo aWZ0OyBcCisrCWlmIHRlc3QgLXogIiQoRVRBR1NfQVJHUykkJCokJHVuaXF1ZSI7IHRoZW4gOjsg ZWxzZSBcCisrCSAgdGVzdCAtbiAiJCR1bmlxdWUiIHx8IHVuaXF1ZT0kJGVtcHR5X2ZpeDsgXAor KwkgIGlmIHRlc3QgJCQjIC1ndCAwOyB0aGVuIFwKKysJICAgICQoRVRBR1MpICQoRVRBR1NGTEFH UykgJChBTV9FVEFHU0ZMQUdTKSAkKEVUQUdTX0FSR1MpIFwKKysJICAgICAgIiQkQCIgJCR1bmlx dWU7IFwKKysJICBlbHNlIFwKKysJICAgICQoRVRBR1MpICQoRVRBR1NGTEFHUykgJChBTV9FVEFH U0ZMQUdTKSAkKEVUQUdTX0FSR1MpIFwKKysJICAgICAgJCR1bmlxdWU7IFwKKysJICBmaTsgXAor KwlmaQorK2N0YWdzOiBDVEFHUworK0NUQUdTOiBjdGFncy1yZWN1cnNpdmUgJChIRUFERVJTKSAk KFNPVVJDRVMpICAkKFRBR1NfREVQRU5ERU5DSUVTKSBcCisrCQkkKFRBR1NfRklMRVMpICQoTElT UCkKKysJbGlzdD0nJChTT1VSQ0VTKSAkKEhFQURFUlMpICAkKExJU1ApICQoVEFHU19GSUxFUykn OyBcCisrCXVuaXF1ZT1gZm9yIGkgaW4gJCRsaXN0OyBkbyBcCisrCSAgICBpZiB0ZXN0IC1mICIk JGkiOyB0aGVuIGVjaG8gJCRpOyBlbHNlIGVjaG8gJChzcmNkaXIpLyQkaTsgZmk7IFwKKysJICBk b25lIHwgXAorKwkgICQoQVdLKSAneyBmaWxlc1skJDBdID0gMTsgbm9uZW1wdHkgPSAxOyB9IFwK KysJICAgICAgRU5EIHsgaWYgKG5vbmVtcHR5KSB7IGZvciAoaSBpbiBmaWxlcykgcHJpbnQgaTsg fTsgfSdgOyBcCisrCXRlc3QgLXogIiQoQ1RBR1NfQVJHUykkJHVuaXF1ZSIgXAorKwkgIHx8ICQo Q1RBR1MpICQoQ1RBR1NGTEFHUykgJChBTV9DVEFHU0ZMQUdTKSAkKENUQUdTX0FSR1MpIFwKKysJ ICAgICAkJHVuaXF1ZQorKworK0dUQUdTOgorKwloZXJlPWAkKGFtX19jZCkgJCh0b3BfYnVpbGRk aXIpICYmIHB3ZGAgXAorKwkgICYmICQoYW1fX2NkKSAkKHRvcF9zcmNkaXIpIFwKKysJICAmJiBn dGFncyAtaSAkKEdUQUdTX0FSR1MpICIkJGhlcmUiCisrCisrZGlzdGNsZWFuLXRhZ3M6CisrCS1y bSAtZiBUQUdTIElEIEdUQUdTIEdSVEFHUyBHU1lNUyBHUEFUSCB0YWdzCisrCisrZGlzdGRpcjog JChESVNURklMRVMpCisrCUBzcmNkaXJzdHJpcD1gZWNobyAiJChzcmNkaXIpIiB8IHNlZCAncy9b XS5bXiQkXFwqXS9cXFxcJi9nJ2A7IFwKKysJdG9wc3JjZGlyc3RyaXA9YGVjaG8gIiQodG9wX3Ny Y2RpcikiIHwgc2VkICdzL1tdLlteJCRcXCpdL1xcXFwmL2cnYDsgXAorKwlsaXN0PSckKERJU1RG SUxFUyknOyBcCisrCSAgZGlzdF9maWxlcz1gZm9yIGZpbGUgaW4gJCRsaXN0OyBkbyBlY2hvICQk ZmlsZTsgZG9uZSB8IFwKKysJICBzZWQgLWUgInN8XiQkc3JjZGlyc3RyaXAvfHw7dCIgXAorKwkg ICAgICAtZSAic3xeJCR0b3BzcmNkaXJzdHJpcC98JCh0b3BfYnVpbGRkaXIpL3w7dCJgOyBcCisr CWNhc2UgJCRkaXN0X2ZpbGVzIGluIFwKKysJICAqLyopICQoTUtESVJfUCkgYGVjaG8gIiQkZGlz dF9maWxlcyIgfCBcCisrCQkJICAgc2VkICcvXC8vIWQ7c3xefCQoZGlzdGRpcikvfDtzLC9bXi9d KiQkLCwnIHwgXAorKwkJCSAgIHNvcnQgLXVgIDs7IFwKKysJZXNhYzsgXAorKwlmb3IgZmlsZSBp biAkJGRpc3RfZmlsZXM7IGRvIFwKKysJICBpZiB0ZXN0IC1mICQkZmlsZSB8fCB0ZXN0IC1kICQk ZmlsZTsgdGhlbiBkPS47IGVsc2UgZD0kKHNyY2Rpcik7IGZpOyBcCisrCSAgaWYgdGVzdCAtZCAk JGQvJCRmaWxlOyB0aGVuIFwKKysJICAgIGRpcj1gZWNobyAiLyQkZmlsZSIgfCBzZWQgLWUgJ3Ms L1teL10qJCQsLCdgOyBcCisrCSAgICBpZiB0ZXN0IC1kICIkKGRpc3RkaXIpLyQkZmlsZSI7IHRo ZW4gXAorKwkgICAgICBmaW5kICIkKGRpc3RkaXIpLyQkZmlsZSIgLXR5cGUgZCAhIC1wZXJtIC03 MDAgLWV4ZWMgY2htb2QgdStyd3gge30gXDs7IFwKKysJICAgIGZpOyBcCisrCSAgICBpZiB0ZXN0 IC1kICQoc3JjZGlyKS8kJGZpbGUgJiYgdGVzdCAkJGQgIT0gJChzcmNkaXIpOyB0aGVuIFwKKysJ ICAgICAgY3AgLWZwUiAkKHNyY2RpcikvJCRmaWxlICIkKGRpc3RkaXIpJCRkaXIiIHx8IGV4aXQg MTsgXAorKwkgICAgICBmaW5kICIkKGRpc3RkaXIpLyQkZmlsZSIgLXR5cGUgZCAhIC1wZXJtIC03 MDAgLWV4ZWMgY2htb2QgdStyd3gge30gXDs7IFwKKysJICAgIGZpOyBcCisrCSAgICBjcCAtZnBS ICQkZC8kJGZpbGUgIiQoZGlzdGRpcikkJGRpciIgfHwgZXhpdCAxOyBcCisrCSAgZWxzZSBcCisr CSAgICB0ZXN0IC1mICIkKGRpc3RkaXIpLyQkZmlsZSIgXAorKwkgICAgfHwgY3AgLXAgJCRkLyQk ZmlsZSAiJChkaXN0ZGlyKS8kJGZpbGUiIFwKKysJICAgIHx8IGV4aXQgMTsgXAorKwkgIGZpOyBc CisrCWRvbmUKKysJQGxpc3Q9JyQoRElTVF9TVUJESVJTKSc7IGZvciBzdWJkaXIgaW4gJCRsaXN0 OyBkbyBcCisrCSAgaWYgdGVzdCAiJCRzdWJkaXIiID0gLjsgdGhlbiA6OyBlbHNlIFwKKysJICAg IHRlc3QgLWQgIiQoZGlzdGRpcikvJCRzdWJkaXIiIFwKKysJICAgIHx8ICQoTUtESVJfUCkgIiQo ZGlzdGRpcikvJCRzdWJkaXIiIFwKKysJICAgIHx8IGV4aXQgMTsgXAorKwkgIGZpOyBcCisrCWRv bmUKKysJQGxpc3Q9JyQoRElTVF9TVUJESVJTKSc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBc CisrCSAgaWYgdGVzdCAiJCRzdWJkaXIiID0gLjsgdGhlbiA6OyBlbHNlIFwKKysJICAgIGRpcjE9 JCRzdWJkaXI7IGRpcjI9IiQoZGlzdGRpcikvJCRzdWJkaXIiOyBcCisrCSAgICAkKGFtX19yZWxh dGl2aXplKTsgXAorKwkgICAgbmV3X2Rpc3RkaXI9JCRyZWxkaXI7IFwKKysJICAgIGRpcjE9JCRz dWJkaXI7IGRpcjI9IiQodG9wX2Rpc3RkaXIpIjsgXAorKwkgICAgJChhbV9fcmVsYXRpdml6ZSk7 IFwKKysJICAgIG5ld190b3BfZGlzdGRpcj0kJHJlbGRpcjsgXAorKwkgICAgZWNobyAiIChjZCAk JHN1YmRpciAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSB0b3BfZGlzdGRpcj0iJCRuZXdfdG9w X2Rpc3RkaXIiIGRpc3RkaXI9IiQkbmV3X2Rpc3RkaXIiIFxcIjsgXAorKwkgICAgZWNobyAiICAg ICBhbV9fcmVtb3ZlX2Rpc3RkaXI9OiBhbV9fc2tpcF9sZW5ndGhfY2hlY2s9OiBhbV9fc2tpcF9t b2RlX2ZpeD06IGRpc3RkaXIpIjsgXAorKwkgICAgKCQoYW1fX2NkKSAkJHN1YmRpciAmJiBcCisr CSAgICAgICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIFwKKysJICAgICAgICB0b3BfZGlzdGRpcj0i JCRuZXdfdG9wX2Rpc3RkaXIiIFwKKysJICAgICAgICBkaXN0ZGlyPSIkJG5ld19kaXN0ZGlyIiBc CisrCQlhbV9fcmVtb3ZlX2Rpc3RkaXI9OiBcCisrCQlhbV9fc2tpcF9sZW5ndGhfY2hlY2s9OiBc CisrCQlhbV9fc2tpcF9tb2RlX2ZpeD06IFwKKysJICAgICAgICBkaXN0ZGlyKSBcCisrCSAgICAg IHx8IGV4aXQgMTsgXAorKwkgIGZpOyBcCisrCWRvbmUKKytjaGVjay1hbTogYWxsLWFtCisrY2hl Y2s6IGNoZWNrLXJlY3Vyc2l2ZQorK2FsbC1hbTogTWFrZWZpbGUKKytpbnN0YWxsZGlyczogaW5z dGFsbGRpcnMtcmVjdXJzaXZlCisraW5zdGFsbGRpcnMtYW06CisraW5zdGFsbDogaW5zdGFsbC1y ZWN1cnNpdmUKKytpbnN0YWxsLWV4ZWM6IGluc3RhbGwtZXhlYy1yZWN1cnNpdmUKKytpbnN0YWxs LWRhdGE6IGluc3RhbGwtZGF0YS1yZWN1cnNpdmUKKyt1bmluc3RhbGw6IHVuaW5zdGFsbC1yZWN1 cnNpdmUKKysKKytpbnN0YWxsLWFtOiBhbGwtYW0KKysJQCQoTUFLRSkgJChBTV9NQUtFRkxBR1Mp IGluc3RhbGwtZXhlYy1hbSBpbnN0YWxsLWRhdGEtYW0KKysKKytpbnN0YWxsY2hlY2s6IGluc3Rh bGxjaGVjay1yZWN1cnNpdmUKKytpbnN0YWxsLXN0cmlwOgorKwkkKE1BS0UpICQoQU1fTUFLRUZM QUdTKSBJTlNUQUxMX1BST0dSQU09IiQoSU5TVEFMTF9TVFJJUF9QUk9HUkFNKSIgXAorKwkgIGlu c3RhbGxfc2hfUFJPR1JBTT0iJChJTlNUQUxMX1NUUklQX1BST0dSQU0pIiBJTlNUQUxMX1NUUklQ X0ZMQUc9LXMgXAorKwkgIGB0ZXN0IC16ICckKFNUUklQKScgfHwgXAorKwkgICAgZWNobyAiSU5T VEFMTF9QUk9HUkFNX0VOVj1TVFJJUFBST0c9JyQoU1RSSVApJyJgIGluc3RhbGwKKyttb3N0bHlj bGVhbi1nZW5lcmljOgorKworK2NsZWFuLWdlbmVyaWM6CisrCisrZGlzdGNsZWFuLWdlbmVyaWM6 CisrCS10ZXN0IC16ICIkKENPTkZJR19DTEVBTl9GSUxFUykiIHx8IHJtIC1mICQoQ09ORklHX0NM RUFOX0ZJTEVTKQorKwktdGVzdCAuID0gIiQoc3JjZGlyKSIgfHwgdGVzdCAteiAiJChDT05GSUdf Q0xFQU5fVlBBVEhfRklMRVMpIiB8fCBybSAtZiAkKENPTkZJR19DTEVBTl9WUEFUSF9GSUxFUykK KysKKyttYWludGFpbmVyLWNsZWFuLWdlbmVyaWM6CisrCUBlY2hvICJUaGlzIGNvbW1hbmQgaXMg aW50ZW5kZWQgZm9yIG1haW50YWluZXJzIHRvIHVzZSIKKysJQGVjaG8gIml0IGRlbGV0ZXMgZmls ZXMgdGhhdCBtYXkgcmVxdWlyZSBzcGVjaWFsIHRvb2xzIHRvIHJlYnVpbGQuIgorKwktdGVzdCAt eiAiJChNQUlOVEFJTkVSQ0xFQU5GSUxFUykiIHx8IHJtIC1mICQoTUFJTlRBSU5FUkNMRUFORklM RVMpCisrY2xlYW46IGNsZWFuLXJlY3Vyc2l2ZQorKworK2NsZWFuLWFtOiBjbGVhbi1nZW5lcmlj IGNsZWFuLWxpYnRvb2wgbW9zdGx5Y2xlYW4tYW0KKysKKytkaXN0Y2xlYW46IGRpc3RjbGVhbi1y ZWN1cnNpdmUKKysJLXJtIC1mIE1ha2VmaWxlCisrZGlzdGNsZWFuLWFtOiBjbGVhbi1hbSBkaXN0 Y2xlYW4tZ2VuZXJpYyBkaXN0Y2xlYW4tdGFncworKworK2R2aTogZHZpLXJlY3Vyc2l2ZQorKwor K2R2aS1hbToKKysKKytodG1sOiBodG1sLXJlY3Vyc2l2ZQorKworK2h0bWwtYW06CisrCisraW5m bzogaW5mby1yZWN1cnNpdmUKKysKKytpbmZvLWFtOgorKworK2luc3RhbGwtZGF0YS1hbToKKysK KytpbnN0YWxsLWR2aTogaW5zdGFsbC1kdmktcmVjdXJzaXZlCisrCisraW5zdGFsbC1kdmktYW06 CisrCisraW5zdGFsbC1leGVjLWFtOgorKworK2luc3RhbGwtaHRtbDogaW5zdGFsbC1odG1sLXJl Y3Vyc2l2ZQorKworK2luc3RhbGwtaHRtbC1hbToKKysKKytpbnN0YWxsLWluZm86IGluc3RhbGwt aW5mby1yZWN1cnNpdmUKKysKKytpbnN0YWxsLWluZm8tYW06CisrCisraW5zdGFsbC1tYW46Cisr CisraW5zdGFsbC1wZGY6IGluc3RhbGwtcGRmLXJlY3Vyc2l2ZQorKworK2luc3RhbGwtcGRmLWFt OgorKworK2luc3RhbGwtcHM6IGluc3RhbGwtcHMtcmVjdXJzaXZlCisrCisraW5zdGFsbC1wcy1h bToKKysKKytpbnN0YWxsY2hlY2stYW06CisrCisrbWFpbnRhaW5lci1jbGVhbjogbWFpbnRhaW5l ci1jbGVhbi1yZWN1cnNpdmUKKysJLXJtIC1mIE1ha2VmaWxlCisrbWFpbnRhaW5lci1jbGVhbi1h bTogZGlzdGNsZWFuLWFtIG1haW50YWluZXItY2xlYW4tZ2VuZXJpYworKworK21vc3RseWNsZWFu OiBtb3N0bHljbGVhbi1yZWN1cnNpdmUKKysKKyttb3N0bHljbGVhbi1hbTogbW9zdGx5Y2xlYW4t Z2VuZXJpYyBtb3N0bHljbGVhbi1saWJ0b29sCisrCisrcGRmOiBwZGYtcmVjdXJzaXZlCisrCisr cGRmLWFtOgorKworK3BzOiBwcy1yZWN1cnNpdmUKKysKKytwcy1hbToKKysKKyt1bmluc3RhbGwt YW06CisrCisrLk1BS0U6ICQoUkVDVVJTSVZFX0NMRUFOX1RBUkdFVFMpICQoUkVDVVJTSVZFX1RB UkdFVFMpIGN0YWdzLXJlY3Vyc2l2ZSBcCisrCWluc3RhbGwtYW0gaW5zdGFsbC1zdHJpcCB0YWdz LXJlY3Vyc2l2ZQorKworKy5QSE9OWTogJChSRUNVUlNJVkVfQ0xFQU5fVEFSR0VUUykgJChSRUNV UlNJVkVfVEFSR0VUUykgQ1RBR1MgR1RBR1MgXAorKwlhbGwgYWxsLWFtIGNoZWNrIGNoZWNrLWFt IGNsZWFuIGNsZWFuLWdlbmVyaWMgY2xlYW4tbGlidG9vbCBcCisrCWN0YWdzIGN0YWdzLXJlY3Vy c2l2ZSBkaXN0Y2xlYW4gZGlzdGNsZWFuLWdlbmVyaWMgXAorKwlkaXN0Y2xlYW4tbGlidG9vbCBk aXN0Y2xlYW4tdGFncyBkaXN0ZGlyIGR2aSBkdmktYW0gaHRtbCBcCisrCWh0bWwtYW0gaW5mbyBp bmZvLWFtIGluc3RhbGwgaW5zdGFsbC1hbSBpbnN0YWxsLWRhdGEgXAorKwlpbnN0YWxsLWRhdGEt YW0gaW5zdGFsbC1kdmkgaW5zdGFsbC1kdmktYW0gaW5zdGFsbC1leGVjIFwKKysJaW5zdGFsbC1l eGVjLWFtIGluc3RhbGwtaHRtbCBpbnN0YWxsLWh0bWwtYW0gaW5zdGFsbC1pbmZvIFwKKysJaW5z dGFsbC1pbmZvLWFtIGluc3RhbGwtbWFuIGluc3RhbGwtcGRmIGluc3RhbGwtcGRmLWFtIFwKKysJ aW5zdGFsbC1wcyBpbnN0YWxsLXBzLWFtIGluc3RhbGwtc3RyaXAgaW5zdGFsbGNoZWNrIFwKKysJ aW5zdGFsbGNoZWNrLWFtIGluc3RhbGxkaXJzIGluc3RhbGxkaXJzLWFtIG1haW50YWluZXItY2xl YW4gXAorKwltYWludGFpbmVyLWNsZWFuLWdlbmVyaWMgbW9zdGx5Y2xlYW4gbW9zdGx5Y2xlYW4t Z2VuZXJpYyBcCisrCW1vc3RseWNsZWFuLWxpYnRvb2wgcGRmIHBkZi1hbSBwcyBwcy1hbSB0YWdz IHRhZ3MtcmVjdXJzaXZlIFwKKysJdW5pbnN0YWxsIHVuaW5zdGFsbC1hbQorKworK0BTRVRfTUFL RUAKKysKKysjIFRlbGwgdmVyc2lvbnMgWzMuNTksMy42Mykgb2YgR05VIG1ha2UgdG8gbm90IGV4 cG9ydCBhbGwgdmFyaWFibGVzLgorKyMgT3RoZXJ3aXNlIGEgc3lzdGVtIGxpbWl0IChmb3IgU3lz ViBhdCBsZWFzdCkgbWF5IGJlIGV4Y2VlZGVkLgorKy5OT0VYUE9SVDoKK2RpZmYgLU51ciBzb2Np LTMuMC4wXzQtcGFjay9idWlsZC9tc3ZjODAvZGxsL01ha2VmaWxlLmFtIHNvY2ktMy4wLjBfdHJl cDMwMC9idWlsZC9tc3ZjODAvZGxsL01ha2VmaWxlLmFtCistLS0gc29jaS0zLjAuMF80LXBhY2sv YnVpbGQvbXN2YzgwL2RsbC9NYWtlZmlsZS5hbQkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAw MCArMDEwMAorKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9idWlsZC9tc3ZjODAvZGxsL01ha2VmaWxl LmFtCTIwMDktMDQtMTYgMTk6Mzc6MDguMDAwMDAwMDAwICswMjAwCitAQCAtMCwwICsxLDExIEBA CisrIyMgYnVpbGQvbXN2YzgwL2RsbCBzdWItZGlyZWN0b3J5CisraW5jbHVkZSAkKHRvcF9zcmNk aXIpL01ha2VmaWxlLmNvbW1vbgorKworK01BSU5UQUlORVJDTEVBTkZJTEVTID0gTWFrZWZpbGUu aW4KKysKKytFWFRSQV9ESVNUID0gYnVpbGQuYmF0IGVtcHR5LnZjcHJvaiBtYWtldGVzdC5tYWsg b2RiY190ZXN0X3Bvc3RncmVzcWwudmNwcm9qIFwKKysJcG9zdGdyZXNxbF90ZXN0LnZjcHJvaiBz cWxpdGUzX3Rlc3QudmNwcm9qIGNsZWFuLmJhdCBcCisrCWZpcmViaXJkX3Rlc3QudmNwcm9qIG9k YmNfdGVzdF9hY2Nlc3MudmNwcm9qIG9kYmMudmNwcm9qIFwKKysJcG9zdGdyZXNxbC52Y3Byb2og c3FsaXRlMy52Y3Byb2ogY29yZS52Y3Byb2ogZmlyZWJpcmQudmNwcm9qIFwKKysJb2RiY190ZXN0 X21zc3FsLnZjcHJvaiBvcmFjbGVfdGVzdC52Y3Byb2ogc29jaV9kbGwuc2xuIFwKKysJZW1wdHlf dGVzdC52Y3Byb2ogb2RiY190ZXN0X215c3FsLnZjcHJvaiBvcmFjbGUudmNwcm9qIHNvY2lfZGxs LnZzcHJvcHMKK2RpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9idWlsZC9tc3ZjODAvZGxsL01h a2VmaWxlLmluIHNvY2ktMy4wLjBfdHJlcDMwMC9idWlsZC9tc3ZjODAvZGxsL01ha2VmaWxlLmlu CistLS0gc29jaS0zLjAuMF80LXBhY2svYnVpbGQvbXN2YzgwL2RsbC9NYWtlZmlsZS5pbgkxOTcw LTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAorKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9i dWlsZC9tc3ZjODAvZGxsL01ha2VmaWxlLmluCTIwMTAtMDEtMjMgMTQ6NDQ6NTEuMDAwMDAwMDAw ICswMTAwCitAQCAtMCwwICsxLDQyMCBAQAorKyMgTWFrZWZpbGUuaW4gZ2VuZXJhdGVkIGJ5IGF1 dG9tYWtlIDEuMTEuMSBmcm9tIE1ha2VmaWxlLmFtLgorKyMgQGNvbmZpZ3VyZV9pbnB1dEAKKysK KysjIENvcHlyaWdodCAoQykgMTk5NCwgMTk5NSwgMTk5NiwgMTk5NywgMTk5OCwgMTk5OSwgMjAw MCwgMjAwMSwgMjAwMiwKKysjIDIwMDMsIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDgsIDIw MDkgIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwKKysjIEluYy4KKysjIFRoaXMgTWFrZWZpbGUu aW4gaXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbgorKyMgZ2l2 ZXMgdW5saW1pdGVkIHBlcm1pc3Npb24gdG8gY29weSBhbmQvb3IgZGlzdHJpYnV0ZSBpdCwKKysj IHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb25zLCBhcyBsb25nIGFzIHRoaXMgbm90aWNlIGlz IHByZXNlcnZlZC4KKysKKysjIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9w ZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZLCB0 byB0aGUgZXh0ZW50IHBlcm1pdHRlZCBieSBsYXc7IHdpdGhvdXQKKysjIGV2ZW4gdGhlIGltcGxp ZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEKKysjIFBBUlRJ Q1VMQVIgUFVSUE9TRS4KKysKKytAU0VUX01BS0VACisrVlBBVEggPSBAc3JjZGlyQAorK3BrZ2Rh dGFkaXIgPSAkKGRhdGFkaXIpL0BQQUNLQUdFQAorK3BrZ2luY2x1ZGVkaXIgPSAkKGluY2x1ZGVk aXIpL0BQQUNLQUdFQAorK3BrZ2xpYmRpciA9ICQobGliZGlyKS9AUEFDS0FHRUAKKytwa2dsaWJl eGVjZGlyID0gJChsaWJleGVjZGlyKS9AUEFDS0FHRUAKKythbV9fY2QgPSBDRFBBVEg9IiQke1pT SF9WRVJTSU9OKy59JChQQVRIX1NFUEFSQVRPUikiICYmIGNkCisraW5zdGFsbF9zaF9EQVRBID0g JChpbnN0YWxsX3NoKSAtYyAtbSA2NDQKKytpbnN0YWxsX3NoX1BST0dSQU0gPSAkKGluc3RhbGxf c2gpIC1jCisraW5zdGFsbF9zaF9TQ1JJUFQgPSAkKGluc3RhbGxfc2gpIC1jCisrSU5TVEFMTF9I RUFERVIgPSAkKElOU1RBTExfREFUQSkKKyt0cmFuc2Zvcm0gPSAkKHByb2dyYW1fdHJhbnNmb3Jt X25hbWUpCisrTk9STUFMX0lOU1RBTEwgPSA6CisrUFJFX0lOU1RBTEwgPSA6CisrUE9TVF9JTlNU QUxMID0gOgorK05PUk1BTF9VTklOU1RBTEwgPSA6CisrUFJFX1VOSU5TVEFMTCA9IDoKKytQT1NU X1VOSU5TVEFMTCA9IDoKKytidWlsZF90cmlwbGV0ID0gQGJ1aWxkQAorK2hvc3RfdHJpcGxldCA9 IEBob3N0QAorK0RJU1RfQ09NTU9OID0gJChzcmNkaXIpL01ha2VmaWxlLmFtICQoc3JjZGlyKS9N YWtlZmlsZS5pbiBcCisrCSQodG9wX3NyY2RpcikvTWFrZWZpbGUuY29tbW9uCisrc3ViZGlyID0g YnVpbGQvbXN2YzgwL2RsbAorK0FDTE9DQUxfTTQgPSAkKHRvcF9zcmNkaXIpL2FjbG9jYWwubTQK KythbV9fYWNsb2NhbF9tNF9kZXBzID0gJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfYm9vc3QubTQg XAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9teXNxbC5tNCBcCisrCSQodG9wX3NyY2Rpcikv Y29uZmlnL2F4X29yYWNsZV9vY2kubTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9wb3N0 Z3Jlc3FsLm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcvY3BwdW5pdC5tNCBcCisrCSQodG9w X3NyY2RpcikvY29uZmlnL2xpYnRvb2wubTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9sdG9w dGlvbnMubTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9sdHN1Z2FyLm00IFwKKysJJCh0b3Bf c3JjZGlyKS9jb25maWcvbHR2ZXJzaW9uLm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcvbHR+ b2Jzb2xldGUubTQgJCh0b3Bfc3JjZGlyKS9jb25maWd1cmUuYWMKKythbV9fY29uZmlndXJlX2Rl cHMgPSAkKGFtX19hY2xvY2FsX200X2RlcHMpICQoQ09ORklHVVJFX0RFUEVOREVOQ0lFUykgXAor KwkkKEFDTE9DQUxfTTQpCisrbWtpbnN0YWxsZGlycyA9ICQoaW5zdGFsbF9zaCkgLWQKKytDT05G SUdfSEVBREVSID0gJCh0b3BfYnVpbGRkaXIpL3NvY2kvY29uZmlnLmgKKytDT05GSUdfQ0xFQU5f RklMRVMgPQorK0NPTkZJR19DTEVBTl9WUEFUSF9GSUxFUyA9CisrU09VUkNFUyA9CisrRElTVF9T T1VSQ0VTID0KKytESVNURklMRVMgPSAkKERJU1RfQ09NTU9OKSAkKERJU1RfU09VUkNFUykgJChU RVhJTkZPUykgJChFWFRSQV9ESVNUKQorK0FDTE9DQUwgPSBAQUNMT0NBTEAKKytBTVRBUiA9IEBB TVRBUkAKKytBUiA9IEBBUkAKKytBVVRPQ09ORiA9IEBBVVRPQ09ORkAKKytBVVRPSEVBREVSID0g QEFVVE9IRUFERVJACisrQVVUT01BS0UgPSBAQVVUT01BS0VACisrQVdLID0gQEFXS0AKKytCT09T VF9DRkxBR1MgPSBAQk9PU1RfQ0ZMQUdTQAorK0JPT1NUX0RBVEVfVElNRV9MSUIgPSBAQk9PU1Rf REFURV9USU1FX0xJQkAKKytCT09TVF9GSUxFU1lTVEVNX0xJQiA9IEBCT09TVF9GSUxFU1lTVEVN X0xJQkAKKytCT09TVF9JT1NUUkVBTVNfTElCID0gQEJPT1NUX0lPU1RSRUFNU19MSUJACisrQk9P U1RfTElCUyA9IEBCT09TVF9MSUJTQAorK0JPT1NUX01QSV9MSUIgPSBAQk9PU1RfTVBJX0xJQkAK KytCT09TVF9NUElfUFlUSE9OX0xJQiA9IEBCT09TVF9NUElfUFlUSE9OX0xJQkAKKytCT09TVF9Q Uk9HUkFNX09QVElPTlNfTElCID0gQEJPT1NUX1BST0dSQU1fT1BUSU9OU19MSUJACisrQk9PU1Rf UFlUSE9OX0xJQiA9IEBCT09TVF9QWVRIT05fTElCQAorK0JPT1NUX1JFR0VYX0xJQiA9IEBCT09T VF9SRUdFWF9MSUJACisrQk9PU1RfU0VSSUFMSVpBVElPTl9MSUIgPSBAQk9PU1RfU0VSSUFMSVpB VElPTl9MSUJACisrQk9PU1RfU0lHTkFMU19MSUIgPSBAQk9PU1RfU0lHTkFMU19MSUJACisrQk9P U1RfU1lTVEVNX0xJQiA9IEBCT09TVF9TWVNURU1fTElCQAorK0JPT1NUX1RIUkVBRF9MSUIgPSBA Qk9PU1RfVEhSRUFEX0xJQkAKKytCT09TVF9VTklUX1RFU1RfRlJBTUVXT1JLX0xJQiA9IEBCT09T VF9VTklUX1RFU1RfRlJBTUVXT1JLX0xJQkAKKytCT09TVF9WRVJTSU9OID0gQEJPT1NUX1ZFUlNJ T05ACisrQk9PU1RfV1NFUklBTElaQVRJT05fTElCID0gQEJPT1NUX1dTRVJJQUxJWkFUSU9OX0xJ QkAKKytDQyA9IEBDQ0AKKytDQ0RFUE1PREUgPSBAQ0NERVBNT0RFQAorK0NGTEFHUyA9IEBDRkxB R1NACisrQ1BQID0gQENQUEAKKytDUFBGTEFHUyA9IEBDUFBGTEFHU0AKKytDUFBVTklUX0NGTEFH UyA9IEBDUFBVTklUX0NGTEFHU0AKKytDUFBVTklUX0NPTkZJRyA9IEBDUFBVTklUX0NPTkZJR0AK KytDUFBVTklUX0xJQlMgPSBAQ1BQVU5JVF9MSUJTQAorK0NQUFVOSVRfVkVSU0lPTiA9IEBDUFBV TklUX1ZFUlNJT05ACisrQ1hYID0gQENYWEAKKytDWFhDUFAgPSBAQ1hYQ1BQQAorK0NYWERFUE1P REUgPSBAQ1hYREVQTU9ERUAKKytDWFhGTEFHUyA9IEBDWFhGTEFHU0AKKytDWUdQQVRIX1cgPSBA Q1lHUEFUSF9XQAorK0RFRlMgPSBAREVGU0AKKytERVBESVIgPSBAREVQRElSQAorK0RTWU1VVElM ID0gQERTWU1VVElMQAorK0RVTVBCSU4gPSBARFVNUEJJTkAKKytFQ0hPX0MgPSBARUNIT19DQAor K0VDSE9fTiA9IEBFQ0hPX05ACisrRUNIT19UID0gQEVDSE9fVEAKKytFR1JFUCA9IEBFR1JFUEAK KytFWEVFWFQgPSBARVhFRVhUQAorK0ZHUkVQID0gQEZHUkVQQAorK0dFTkVSSUNfTElCUkFSWV9W RVJTSU9OID0gQEdFTkVSSUNfTElCUkFSWV9WRVJTSU9OQAorK0dSRVAgPSBAR1JFUEAKKytJTlNU QUxMID0gQElOU1RBTExACisrSU5TVEFMTF9EQVRBID0gQElOU1RBTExfREFUQUAKKytJTlNUQUxM X1BST0dSQU0gPSBASU5TVEFMTF9QUk9HUkFNQAorK0lOU1RBTExfU0NSSVBUID0gQElOU1RBTExf U0NSSVBUQAorK0lOU1RBTExfU1RSSVBfUFJPR1JBTSA9IEBJTlNUQUxMX1NUUklQX1BST0dSQU1A CisrTEQgPSBATERACisrTERGTEFHUyA9IEBMREZMQUdTQAorK0xJQk9CSlMgPSBATElCT0JKU0AK KytMSUJTID0gQExJQlNACisrTElCVE9PTCA9IEBMSUJUT09MQAorK0xJUE8gPSBATElQT0AKKytM Tl9TID0gQExOX1NACisrTFRMSUJPQkpTID0gQExUTElCT0JKU0AKKytNQUtFSU5GTyA9IEBNQUtF SU5GT0AKKytNS0RJUl9QID0gQE1LRElSX1BACisrTVlTUUxfQ0ZMQUdTID0gQE1ZU1FMX0NGTEFH U0AKKytNWVNRTF9DX0xJQiA9IEBNWVNRTF9DX0xJQkAKKytNWVNRTF9ESVJTID0gQE1ZU1FMX0RJ UlNACisrTVlTUUxfTElCUyA9IEBNWVNRTF9MSUJTQAorK01ZU1FMX1ZFUlNJT04gPSBATVlTUUxf VkVSU0lPTkAKKytOTSA9IEBOTUAKKytOTUVESVQgPSBATk1FRElUQAorK09CSkRVTVAgPSBAT0JK RFVNUEAKKytPQkpFWFQgPSBAT0JKRVhUQAorK09SQUNMRV9ESVJTID0gQE9SQUNMRV9ESVJTQAor K09SQUNMRV9PQ0lfQ0ZMQUdTID0gQE9SQUNMRV9PQ0lfQ0ZMQUdTQAorK09SQUNMRV9PQ0lfTERG TEFHUyA9IEBPUkFDTEVfT0NJX0xERkxBR1NACisrT1JBQ0xFX09DSV9WRVJTSU9OID0gQE9SQUNM RV9PQ0lfVkVSU0lPTkAKKytPVE9PTCA9IEBPVE9PTEAKKytPVE9PTDY0ID0gQE9UT09MNjRACisr UEFDS0FHRSA9IEBQQUNLQUdFQAorK1BBQ0tBR0VfQlVHUkVQT1JUID0gQFBBQ0tBR0VfQlVHUkVQ T1JUQAorK1BBQ0tBR0VfTkFNRSA9IEBQQUNLQUdFX05BTUVACisrUEFDS0FHRV9TVFJJTkcgPSBA UEFDS0FHRV9TVFJJTkdACisrUEFDS0FHRV9UQVJOQU1FID0gQFBBQ0tBR0VfVEFSTkFNRUAKKytQ QUNLQUdFX1ZFUlNJT04gPSBAUEFDS0FHRV9WRVJTSU9OQAorK1BBVEhfU0VQQVJBVE9SID0gQFBB VEhfU0VQQVJBVE9SQAorK1BFUkwgPSBAUEVSTEAKKytQR19DT05GSUcgPSBAUEdfQ09ORklHQAor K1BPU1RHUkVTUUxfQ0ZMQUdTID0gQFBPU1RHUkVTUUxfQ0ZMQUdTQAorK1BPU1RHUkVTUUxfRElS UyA9IEBQT1NUR1JFU1FMX0RJUlNACisrUE9TVEdSRVNRTF9MREZMQUdTID0gQFBPU1RHUkVTUUxf TERGTEFHU0AKKytQT1NUR1JFU1FMX1ZFUlNJT04gPSBAUE9TVEdSRVNRTF9WRVJTSU9OQAorK1JB TkxJQiA9IEBSQU5MSUJACisrUlBNX1JFTEVBU0UgPSBAUlBNX1JFTEVBU0VACisrU0VEID0gQFNF REAKKytTRVRfTUFLRSA9IEBTRVRfTUFLRUAKKytTSEVMTCA9IEBTSEVMTEAKKytTT0NJX0hFQURF UlNfQlVSSUVEID0gQFNPQ0lfSEVBREVSU19CVVJJRURACisrU09DSV9NWVNRTF9IRUFERVJTX0JV UklFRCA9IEBTT0NJX01ZU1FMX0hFQURFUlNfQlVSSUVEQAorK1NPQ0lfUE9TVEdSRVNRTF9IRUFE RVJTX0JVUklFRCA9IEBTT0NJX1BPU1RHUkVTUUxfSEVBREVSU19CVVJJRURACisrU1RSSVAgPSBA U1RSSVBACisrVVBMT0FEX0NPTU1BTkQgPSBAVVBMT0FEX0NPTU1BTkRACisrVkVSU0lPTiA9IEBW RVJTSU9OQAorK2Fic19idWlsZGRpciA9IEBhYnNfYnVpbGRkaXJACisrYWJzX3NyY2RpciA9IEBh YnNfc3JjZGlyQAorK2Fic190b3BfYnVpbGRkaXIgPSBAYWJzX3RvcF9idWlsZGRpckAKKythYnNf dG9wX3NyY2RpciA9IEBhYnNfdG9wX3NyY2RpckAKKythY19jdF9DQyA9IEBhY19jdF9DQ0AKKyth Y19jdF9DWFggPSBAYWNfY3RfQ1hYQAorK2FjX2N0X0RVTVBCSU4gPSBAYWNfY3RfRFVNUEJJTkAK KythbV9faW5jbHVkZSA9IEBhbV9faW5jbHVkZUAKKythbV9fbGVhZGluZ19kb3QgPSBAYW1fX2xl YWRpbmdfZG90QAorK2FtX19xdW90ZSA9IEBhbV9fcXVvdGVACisrYW1fX3RhciA9IEBhbV9fdGFy QAorK2FtX191bnRhciA9IEBhbV9fdW50YXJACisrYmluZGlyID0gQGJpbmRpckAKKytidWlsZCA9 IEBidWlsZEAKKytidWlsZF9hbGlhcyA9IEBidWlsZF9hbGlhc0AKKytidWlsZF9jcHUgPSBAYnVp bGRfY3B1QAorK2J1aWxkX29zID0gQGJ1aWxkX29zQAorK2J1aWxkX3ZlbmRvciA9IEBidWlsZF92 ZW5kb3JACisrYnVpbGRkaXIgPSBAYnVpbGRkaXJACisrZGF0YWRpciA9IEBkYXRhZGlyQAorK2Rh dGFyb290ZGlyID0gQGRhdGFyb290ZGlyQAorK2RpZmZfb2sgPSBAZGlmZl9va0AKKytkb2NkaXIg PSBAZG9jZGlyQAorK2RveHlnZW5fb2sgPSBAZG94eWdlbl9va0AKKytkdmlkaXIgPSBAZHZpZGly QAorK2R2aXBzX29rID0gQGR2aXBzX29rQAorK2V4ZWNfcHJlZml4ID0gQGV4ZWNfcHJlZml4QAor K2dzX29rID0gQGdzX29rQAorK2hvc3QgPSBAaG9zdEAKKytob3N0X2FsaWFzID0gQGhvc3RfYWxp YXNACisraG9zdF9jcHUgPSBAaG9zdF9jcHVACisraG9zdF9vcyA9IEBob3N0X29zQAorK2hvc3Rf dmVuZG9yID0gQGhvc3RfdmVuZG9yQAorK2h0bWxkaXIgPSBAaHRtbGRpckAKKytpbmNsdWRlZGly ID0gQGluY2x1ZGVkaXJACisraW5mb2RpciA9IEBpbmZvZGlyQAorK2luc3RhbGxfc2ggPSBAaW5z dGFsbF9zaEAKKytsYXRleF9vayA9IEBsYXRleF9va0AKKytsaWJkaXIgPSBAbGliZGlyQAorK2xp YmV4ZWNkaXIgPSBAbGliZXhlY2RpckAKKytsb2NhbGVkaXIgPSBAbG9jYWxlZGlyQAorK2xvY2Fs c3RhdGVkaXIgPSBAbG9jYWxzdGF0ZWRpckAKKytsdF9FQ0hPID0gQGx0X0VDSE9ACisrbWFuZGly ID0gQG1hbmRpckAKKytta2Rpcl9wID0gQG1rZGlyX3BACisrb2xkaW5jbHVkZWRpciA9IEBvbGRp bmNsdWRlZGlyQAorK3BkZmRpciA9IEBwZGZkaXJACisrcHJlZml4ID0gQHByZWZpeEAKKytwcm9n cmFtX3RyYW5zZm9ybV9uYW1lID0gQHByb2dyYW1fdHJhbnNmb3JtX25hbWVACisrcHNkaXIgPSBA cHNkaXJACisrc2JpbmRpciA9IEBzYmluZGlyQAorK3NlZF9vayA9IEBzZWRfb2tACisrc2hhcmVk c3RhdGVkaXIgPSBAc2hhcmVkc3RhdGVkaXJACisrc3JjZGlyID0gQHNyY2RpckAKKytzeXNjb25m ZGlyID0gQHN5c2NvbmZkaXJACisrdGFyZ2V0X2FsaWFzID0gQHRhcmdldF9hbGlhc0AKKyt0b3Bf YnVpbGRfcHJlZml4ID0gQHRvcF9idWlsZF9wcmVmaXhACisrdG9wX2J1aWxkZGlyID0gQHRvcF9i dWlsZGRpckAKKyt0b3Bfc3JjZGlyID0gQHRvcF9zcmNkaXJACisrQU1fQ1BQRkxBR1MgPSAtSSQo dG9wX2J1aWxkZGlyKSAtSSQodG9wX3NyY2RpcikKKytNQUlOVEFJTkVSQ0xFQU5GSUxFUyA9IE1h a2VmaWxlLmluCisrRVhUUkFfRElTVCA9IGJ1aWxkLmJhdCBlbXB0eS52Y3Byb2ogbWFrZXRlc3Qu bWFrIG9kYmNfdGVzdF9wb3N0Z3Jlc3FsLnZjcHJvaiBcCisrCXBvc3RncmVzcWxfdGVzdC52Y3By b2ogc3FsaXRlM190ZXN0LnZjcHJvaiBjbGVhbi5iYXQgXAorKwlmaXJlYmlyZF90ZXN0LnZjcHJv aiBvZGJjX3Rlc3RfYWNjZXNzLnZjcHJvaiBvZGJjLnZjcHJvaiBcCisrCXBvc3RncmVzcWwudmNw cm9qIHNxbGl0ZTMudmNwcm9qIGNvcmUudmNwcm9qIGZpcmViaXJkLnZjcHJvaiBcCisrCW9kYmNf dGVzdF9tc3NxbC52Y3Byb2ogb3JhY2xlX3Rlc3QudmNwcm9qIHNvY2lfZGxsLnNsbiBcCisrCWVt cHR5X3Rlc3QudmNwcm9qIG9kYmNfdGVzdF9teXNxbC52Y3Byb2ogb3JhY2xlLnZjcHJvaiBzb2Np X2RsbC52c3Byb3BzCisrCisrYWxsOiBhbGwtYW0KKysKKysuU1VGRklYRVM6CisrJChzcmNkaXIp L01ha2VmaWxlLmluOiAgJChzcmNkaXIpL01ha2VmaWxlLmFtICQodG9wX3NyY2RpcikvTWFrZWZp bGUuY29tbW9uICQoYW1fX2NvbmZpZ3VyZV9kZXBzKQorKwlAZm9yIGRlcCBpbiAkPzsgZG8gXAor KwkgIGNhc2UgJyQoYW1fX2NvbmZpZ3VyZV9kZXBzKScgaW4gXAorKwkgICAgKiQkZGVwKikgXAor KwkgICAgICAoIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBh bS0tcmVmcmVzaCApIFwKKysJICAgICAgICAmJiB7IGlmIHRlc3QgLWYgJEA7IHRoZW4gZXhpdCAw OyBlbHNlIGJyZWFrOyBmaTsgfTsgXAorKwkgICAgICBleGl0IDE7OyBcCisrCSAgZXNhYzsgXAor Kwlkb25lOyBcCisrCWVjaG8gJyBjZCAkKHRvcF9zcmNkaXIpICYmICQoQVVUT01BS0UpIC0tZ251 IGJ1aWxkL21zdmM4MC9kbGwvTWFrZWZpbGUnOyBcCisrCSQoYW1fX2NkKSAkKHRvcF9zcmNkaXIp ICYmIFwKKysJICAkKEFVVE9NQUtFKSAtLWdudSBidWlsZC9tc3ZjODAvZGxsL01ha2VmaWxlCisr LlBSRUNJT1VTOiBNYWtlZmlsZQorK01ha2VmaWxlOiAkKHNyY2RpcikvTWFrZWZpbGUuaW4gJCh0 b3BfYnVpbGRkaXIpL2NvbmZpZy5zdGF0dXMKKysJQGNhc2UgJyQ/JyBpbiBcCisrCSAgKmNvbmZp Zy5zdGF0dXMqKSBcCisrCSAgICBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01B S0VGTEFHUykgYW0tLXJlZnJlc2g7OyBcCisrCSAgKikgXAorKwkgICAgZWNobyAnIGNkICQodG9w X2J1aWxkZGlyKSAmJiAkKFNIRUxMKSAuL2NvbmZpZy5zdGF0dXMgJChzdWJkaXIpLyRAICQoYW1f X2RlcGZpbGVzX21heWJlKSc7IFwKKysJICAgIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKFNIRUxM KSAuL2NvbmZpZy5zdGF0dXMgJChzdWJkaXIpLyRAICQoYW1fX2RlcGZpbGVzX21heWJlKTs7IFwK KysJZXNhYzsKKysKKyskKHRvcF9idWlsZGRpcikvY29uZmlnLnN0YXR1czogJCh0b3Bfc3JjZGly KS9jb25maWd1cmUgJChDT05GSUdfU1RBVFVTX0RFUEVOREVOQ0lFUykKKysJY2QgJCh0b3BfYnVp bGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCisrCisrJCh0b3Bf c3JjZGlyKS9jb25maWd1cmU6ICAkKGFtX19jb25maWd1cmVfZGVwcykKKysJY2QgJCh0b3BfYnVp bGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCisrJChBQ0xPQ0FM X000KTogICQoYW1fX2FjbG9jYWxfbTRfZGVwcykKKysJY2QgJCh0b3BfYnVpbGRkaXIpICYmICQo TUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCisrJChhbV9fYWNsb2NhbF9tNF9kZXBz KToKKysKKyttb3N0bHljbGVhbi1saWJ0b29sOgorKwktcm0gLWYgKi5sbworKworK2NsZWFuLWxp YnRvb2w6CisrCS1ybSAtcmYgLmxpYnMgX2xpYnMKKyt0YWdzOiBUQUdTCisrVEFHUzoKKysKKytj dGFnczogQ1RBR1MKKytDVEFHUzoKKysKKysKKytkaXN0ZGlyOiAkKERJU1RGSUxFUykKKysJQHNy Y2RpcnN0cmlwPWBlY2hvICIkKHNyY2RpcikiIHwgc2VkICdzL1tdLlteJCRcXCpdL1xcXFwmL2cn YDsgXAorKwl0b3BzcmNkaXJzdHJpcD1gZWNobyAiJCh0b3Bfc3JjZGlyKSIgfCBzZWQgJ3MvW10u W14kJFxcKl0vXFxcXCYvZydgOyBcCisrCWxpc3Q9JyQoRElTVEZJTEVTKSc7IFwKKysJICBkaXN0 X2ZpbGVzPWBmb3IgZmlsZSBpbiAkJGxpc3Q7IGRvIGVjaG8gJCRmaWxlOyBkb25lIHwgXAorKwkg IHNlZCAtZSAic3xeJCRzcmNkaXJzdHJpcC98fDt0IiBcCisrCSAgICAgIC1lICJzfF4kJHRvcHNy Y2RpcnN0cmlwL3wkKHRvcF9idWlsZGRpcikvfDt0ImA7IFwKKysJY2FzZSAkJGRpc3RfZmlsZXMg aW4gXAorKwkgICovKikgJChNS0RJUl9QKSBgZWNobyAiJCRkaXN0X2ZpbGVzIiB8IFwKKysJCQkg ICBzZWQgJy9cLy8hZDtzfF58JChkaXN0ZGlyKS98O3MsL1teL10qJCQsLCcgfCBcCisrCQkJICAg c29ydCAtdWAgOzsgXAorKwllc2FjOyBcCisrCWZvciBmaWxlIGluICQkZGlzdF9maWxlczsgZG8g XAorKwkgIGlmIHRlc3QgLWYgJCRmaWxlIHx8IHRlc3QgLWQgJCRmaWxlOyB0aGVuIGQ9LjsgZWxz ZSBkPSQoc3JjZGlyKTsgZmk7IFwKKysJICBpZiB0ZXN0IC1kICQkZC8kJGZpbGU7IHRoZW4gXAor KwkgICAgZGlyPWBlY2hvICIvJCRmaWxlIiB8IHNlZCAtZSAncywvW14vXSokJCwsJ2A7IFwKKysJ ICAgIGlmIHRlc3QgLWQgIiQoZGlzdGRpcikvJCRmaWxlIjsgdGhlbiBcCisrCSAgICAgIGZpbmQg IiQoZGlzdGRpcikvJCRmaWxlIiAtdHlwZSBkICEgLXBlcm0gLTcwMCAtZXhlYyBjaG1vZCB1K3J3 eCB7fSBcOzsgXAorKwkgICAgZmk7IFwKKysJICAgIGlmIHRlc3QgLWQgJChzcmNkaXIpLyQkZmls ZSAmJiB0ZXN0ICQkZCAhPSAkKHNyY2Rpcik7IHRoZW4gXAorKwkgICAgICBjcCAtZnBSICQoc3Jj ZGlyKS8kJGZpbGUgIiQoZGlzdGRpcikkJGRpciIgfHwgZXhpdCAxOyBcCisrCSAgICAgIGZpbmQg IiQoZGlzdGRpcikvJCRmaWxlIiAtdHlwZSBkICEgLXBlcm0gLTcwMCAtZXhlYyBjaG1vZCB1K3J3 eCB7fSBcOzsgXAorKwkgICAgZmk7IFwKKysJICAgIGNwIC1mcFIgJCRkLyQkZmlsZSAiJChkaXN0 ZGlyKSQkZGlyIiB8fCBleGl0IDE7IFwKKysJICBlbHNlIFwKKysJICAgIHRlc3QgLWYgIiQoZGlz dGRpcikvJCRmaWxlIiBcCisrCSAgICB8fCBjcCAtcCAkJGQvJCRmaWxlICIkKGRpc3RkaXIpLyQk ZmlsZSIgXAorKwkgICAgfHwgZXhpdCAxOyBcCisrCSAgZmk7IFwKKysJZG9uZQorK2NoZWNrLWFt OiBhbGwtYW0KKytjaGVjazogY2hlY2stYW0KKythbGwtYW06IE1ha2VmaWxlCisraW5zdGFsbGRp cnM6CisraW5zdGFsbDogaW5zdGFsbC1hbQorK2luc3RhbGwtZXhlYzogaW5zdGFsbC1leGVjLWFt CisraW5zdGFsbC1kYXRhOiBpbnN0YWxsLWRhdGEtYW0KKyt1bmluc3RhbGw6IHVuaW5zdGFsbC1h bQorKworK2luc3RhbGwtYW06IGFsbC1hbQorKwlAJChNQUtFKSAkKEFNX01BS0VGTEFHUykgaW5z dGFsbC1leGVjLWFtIGluc3RhbGwtZGF0YS1hbQorKworK2luc3RhbGxjaGVjazogaW5zdGFsbGNo ZWNrLWFtCisraW5zdGFsbC1zdHJpcDoKKysJJChNQUtFKSAkKEFNX01BS0VGTEFHUykgSU5TVEFM TF9QUk9HUkFNPSIkKElOU1RBTExfU1RSSVBfUFJPR1JBTSkiIFwKKysJICBpbnN0YWxsX3NoX1BS T0dSQU09IiQoSU5TVEFMTF9TVFJJUF9QUk9HUkFNKSIgSU5TVEFMTF9TVFJJUF9GTEFHPS1zIFwK KysJICBgdGVzdCAteiAnJChTVFJJUCknIHx8IFwKKysJICAgIGVjaG8gIklOU1RBTExfUFJPR1JB TV9FTlY9U1RSSVBQUk9HPSckKFNUUklQKSciYCBpbnN0YWxsCisrbW9zdGx5Y2xlYW4tZ2VuZXJp YzoKKysKKytjbGVhbi1nZW5lcmljOgorKworK2Rpc3RjbGVhbi1nZW5lcmljOgorKwktdGVzdCAt eiAiJChDT05GSUdfQ0xFQU5fRklMRVMpIiB8fCBybSAtZiAkKENPTkZJR19DTEVBTl9GSUxFUykK KysJLXRlc3QgLiA9ICIkKHNyY2RpcikiIHx8IHRlc3QgLXogIiQoQ09ORklHX0NMRUFOX1ZQQVRI X0ZJTEVTKSIgfHwgcm0gLWYgJChDT05GSUdfQ0xFQU5fVlBBVEhfRklMRVMpCisrCisrbWFpbnRh aW5lci1jbGVhbi1nZW5lcmljOgorKwlAZWNobyAiVGhpcyBjb21tYW5kIGlzIGludGVuZGVkIGZv ciBtYWludGFpbmVycyB0byB1c2UiCisrCUBlY2hvICJpdCBkZWxldGVzIGZpbGVzIHRoYXQgbWF5 IHJlcXVpcmUgc3BlY2lhbCB0b29scyB0byByZWJ1aWxkLiIKKysJLXRlc3QgLXogIiQoTUFJTlRB SU5FUkNMRUFORklMRVMpIiB8fCBybSAtZiAkKE1BSU5UQUlORVJDTEVBTkZJTEVTKQorK2NsZWFu OiBjbGVhbi1hbQorKworK2NsZWFuLWFtOiBjbGVhbi1nZW5lcmljIGNsZWFuLWxpYnRvb2wgbW9z dGx5Y2xlYW4tYW0KKysKKytkaXN0Y2xlYW46IGRpc3RjbGVhbi1hbQorKwktcm0gLWYgTWFrZWZp bGUKKytkaXN0Y2xlYW4tYW06IGNsZWFuLWFtIGRpc3RjbGVhbi1nZW5lcmljCisrCisrZHZpOiBk dmktYW0KKysKKytkdmktYW06CisrCisraHRtbDogaHRtbC1hbQorKworK2h0bWwtYW06CisrCisr aW5mbzogaW5mby1hbQorKworK2luZm8tYW06CisrCisraW5zdGFsbC1kYXRhLWFtOgorKworK2lu c3RhbGwtZHZpOiBpbnN0YWxsLWR2aS1hbQorKworK2luc3RhbGwtZHZpLWFtOgorKworK2luc3Rh bGwtZXhlYy1hbToKKysKKytpbnN0YWxsLWh0bWw6IGluc3RhbGwtaHRtbC1hbQorKworK2luc3Rh bGwtaHRtbC1hbToKKysKKytpbnN0YWxsLWluZm86IGluc3RhbGwtaW5mby1hbQorKworK2luc3Rh bGwtaW5mby1hbToKKysKKytpbnN0YWxsLW1hbjoKKysKKytpbnN0YWxsLXBkZjogaW5zdGFsbC1w ZGYtYW0KKysKKytpbnN0YWxsLXBkZi1hbToKKysKKytpbnN0YWxsLXBzOiBpbnN0YWxsLXBzLWFt CisrCisraW5zdGFsbC1wcy1hbToKKysKKytpbnN0YWxsY2hlY2stYW06CisrCisrbWFpbnRhaW5l ci1jbGVhbjogbWFpbnRhaW5lci1jbGVhbi1hbQorKwktcm0gLWYgTWFrZWZpbGUKKyttYWludGFp bmVyLWNsZWFuLWFtOiBkaXN0Y2xlYW4tYW0gbWFpbnRhaW5lci1jbGVhbi1nZW5lcmljCisrCisr bW9zdGx5Y2xlYW46IG1vc3RseWNsZWFuLWFtCisrCisrbW9zdGx5Y2xlYW4tYW06IG1vc3RseWNs ZWFuLWdlbmVyaWMgbW9zdGx5Y2xlYW4tbGlidG9vbAorKworK3BkZjogcGRmLWFtCisrCisrcGRm LWFtOgorKworK3BzOiBwcy1hbQorKworK3BzLWFtOgorKworK3VuaW5zdGFsbC1hbToKKysKKysu TUFLRTogaW5zdGFsbC1hbSBpbnN0YWxsLXN0cmlwCisrCisrLlBIT05ZOiBhbGwgYWxsLWFtIGNo ZWNrIGNoZWNrLWFtIGNsZWFuIGNsZWFuLWdlbmVyaWMgY2xlYW4tbGlidG9vbCBcCisrCWRpc3Rj bGVhbiBkaXN0Y2xlYW4tZ2VuZXJpYyBkaXN0Y2xlYW4tbGlidG9vbCBkaXN0ZGlyIGR2aSBcCisr CWR2aS1hbSBodG1sIGh0bWwtYW0gaW5mbyBpbmZvLWFtIGluc3RhbGwgaW5zdGFsbC1hbSBcCisr CWluc3RhbGwtZGF0YSBpbnN0YWxsLWRhdGEtYW0gaW5zdGFsbC1kdmkgaW5zdGFsbC1kdmktYW0g XAorKwlpbnN0YWxsLWV4ZWMgaW5zdGFsbC1leGVjLWFtIGluc3RhbGwtaHRtbCBpbnN0YWxsLWh0 bWwtYW0gXAorKwlpbnN0YWxsLWluZm8gaW5zdGFsbC1pbmZvLWFtIGluc3RhbGwtbWFuIGluc3Rh bGwtcGRmIFwKKysJaW5zdGFsbC1wZGYtYW0gaW5zdGFsbC1wcyBpbnN0YWxsLXBzLWFtIGluc3Rh bGwtc3RyaXAgXAorKwlpbnN0YWxsY2hlY2sgaW5zdGFsbGNoZWNrLWFtIGluc3RhbGxkaXJzIG1h aW50YWluZXItY2xlYW4gXAorKwltYWludGFpbmVyLWNsZWFuLWdlbmVyaWMgbW9zdGx5Y2xlYW4g bW9zdGx5Y2xlYW4tZ2VuZXJpYyBcCisrCW1vc3RseWNsZWFuLWxpYnRvb2wgcGRmIHBkZi1hbSBw cyBwcy1hbSB1bmluc3RhbGwgdW5pbnN0YWxsLWFtCisrCisrQFNFVF9NQUtFQAorKworKyMgVGVs bCB2ZXJzaW9ucyBbMy41OSwzLjYzKSBvZiBHTlUgbWFrZSB0byBub3QgZXhwb3J0IGFsbCB2YXJp YWJsZXMuCisrIyBPdGhlcndpc2UgYSBzeXN0ZW0gbGltaXQgKGZvciBTeXNWIGF0IGxlYXN0KSBt YXkgYmUgZXhjZWVkZWQuCisrLk5PRVhQT1JUOgorZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNr L2J1aWxkL21zdmM4MC9saWIvTWFrZWZpbGUuYW0gc29jaS0zLjAuMF90cmVwMzAwL2J1aWxkL21z dmM4MC9saWIvTWFrZWZpbGUuYW0KKy0tLSBzb2NpLTMuMC4wXzQtcGFjay9idWlsZC9tc3ZjODAv bGliL01ha2VmaWxlLmFtCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCisrKysg c29jaS0zLjAuMF90cmVwMzAwL2J1aWxkL21zdmM4MC9saWIvTWFrZWZpbGUuYW0JMjAwOS0wNC0x NiAxOTozNzowNy4wMDAwMDAwMDAgKzAyMDAKK0BAIC0wLDAgKzEsMTEgQEAKKysjIyBidWlsZC9t c3ZjODAvbGliIHN1Yi1kaXJlY3RvcnkKKytpbmNsdWRlICQodG9wX3NyY2RpcikvTWFrZWZpbGUu Y29tbW9uCisrCisrTUFJTlRBSU5FUkNMRUFORklMRVMgPSBNYWtlZmlsZS5pbgorKworK0VYVFJB X0RJU1QgPSBidWlsZC5iYXQgZW1wdHkudmNwcm9qIG1ha2V0ZXN0Lm1hayBvZGJjX3Rlc3RfcG9z dGdyZXNxbC52Y3Byb2ogXAorKwlwb3N0Z3Jlc3FsX3Rlc3QudmNwcm9qIHNxbGl0ZTNfdGVzdC52 Y3Byb2ogY2xlYW4uYmF0IFwKKysJZmlyZWJpcmRfdGVzdC52Y3Byb2ogb2RiY190ZXN0X2FjY2Vz cy52Y3Byb2ogb2RiYy52Y3Byb2ogXAorKwlwb3N0Z3Jlc3FsLnZjcHJvaiBzcWxpdGUzLnZjcHJv aiBjb3JlLnZjcHJvaiBmaXJlYmlyZC52Y3Byb2ogXAorKwlvZGJjX3Rlc3RfbXNzcWwudmNwcm9q IG9yYWNsZV90ZXN0LnZjcHJvaiBzb2NpX2xpYi5zbG4gXAorKwllbXB0eV90ZXN0LnZjcHJvaiBv ZGJjX3Rlc3RfbXlzcWwudmNwcm9qIG9yYWNsZS52Y3Byb2ogc29jaV9saWIudnNwcm9wcworZGlm ZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL2J1aWxkL21zdmM4MC9saWIvTWFrZWZpbGUuaW4gc29j aS0zLjAuMF90cmVwMzAwL2J1aWxkL21zdmM4MC9saWIvTWFrZWZpbGUuaW4KKy0tLSBzb2NpLTMu MC4wXzQtcGFjay9idWlsZC9tc3ZjODAvbGliL01ha2VmaWxlLmluCTE5NzAtMDEtMDEgMDE6MDA6 MDAuMDAwMDAwMDAwICswMTAwCisrKysgc29jaS0zLjAuMF90cmVwMzAwL2J1aWxkL21zdmM4MC9s aWIvTWFrZWZpbGUuaW4JMjAxMC0wMS0yMyAxNDo0NDo1MS4wMDAwMDAwMDAgKzAxMDAKK0BAIC0w LDAgKzEsNDIwIEBACisrIyBNYWtlZmlsZS5pbiBnZW5lcmF0ZWQgYnkgYXV0b21ha2UgMS4xMS4x IGZyb20gTWFrZWZpbGUuYW0uCisrIyBAY29uZmlndXJlX2lucHV0QAorKworKyMgQ29weXJpZ2h0 IChDKSAxOTk0LCAxOTk1LCAxOTk2LCAxOTk3LCAxOTk4LCAxOTk5LCAyMDAwLCAyMDAxLCAyMDAy LAorKyMgMjAwMywgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSAgRnJlZSBTb2Z0 d2FyZSBGb3VuZGF0aW9uLAorKyMgSW5jLgorKyMgVGhpcyBNYWtlZmlsZS5pbiBpcyBmcmVlIHNv ZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCisrIyBnaXZlcyB1bmxpbWl0ZWQg cGVybWlzc2lvbiB0byBjb3B5IGFuZC9vciBkaXN0cmlidXRlIGl0LAorKyMgd2l0aCBvciB3aXRo b3V0IG1vZGlmaWNhdGlvbnMsIGFzIGxvbmcgYXMgdGhpcyBub3RpY2UgaXMgcHJlc2VydmVkLgor KworKyMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2ls bCBiZSB1c2VmdWwsCisrIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFksIHRvIHRoZSBleHRlbnQg cGVybWl0dGVkIGJ5IGxhdzsgd2l0aG91dAorKyMgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBv ZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQQorKyMgUEFSVElDVUxBUiBQVVJQT1NF LgorKworK0BTRVRfTUFLRUAKKytWUEFUSCA9IEBzcmNkaXJACisrcGtnZGF0YWRpciA9ICQoZGF0 YWRpcikvQFBBQ0tBR0VACisrcGtnaW5jbHVkZWRpciA9ICQoaW5jbHVkZWRpcikvQFBBQ0tBR0VA CisrcGtnbGliZGlyID0gJChsaWJkaXIpL0BQQUNLQUdFQAorK3BrZ2xpYmV4ZWNkaXIgPSAkKGxp YmV4ZWNkaXIpL0BQQUNLQUdFQAorK2FtX19jZCA9IENEUEFUSD0iJCR7WlNIX1ZFUlNJT04rLn0k KFBBVEhfU0VQQVJBVE9SKSIgJiYgY2QKKytpbnN0YWxsX3NoX0RBVEEgPSAkKGluc3RhbGxfc2gp IC1jIC1tIDY0NAorK2luc3RhbGxfc2hfUFJPR1JBTSA9ICQoaW5zdGFsbF9zaCkgLWMKKytpbnN0 YWxsX3NoX1NDUklQVCA9ICQoaW5zdGFsbF9zaCkgLWMKKytJTlNUQUxMX0hFQURFUiA9ICQoSU5T VEFMTF9EQVRBKQorK3RyYW5zZm9ybSA9ICQocHJvZ3JhbV90cmFuc2Zvcm1fbmFtZSkKKytOT1JN QUxfSU5TVEFMTCA9IDoKKytQUkVfSU5TVEFMTCA9IDoKKytQT1NUX0lOU1RBTEwgPSA6CisrTk9S TUFMX1VOSU5TVEFMTCA9IDoKKytQUkVfVU5JTlNUQUxMID0gOgorK1BPU1RfVU5JTlNUQUxMID0g OgorK2J1aWxkX3RyaXBsZXQgPSBAYnVpbGRACisraG9zdF90cmlwbGV0ID0gQGhvc3RACisrRElT VF9DT01NT04gPSAkKHNyY2RpcikvTWFrZWZpbGUuYW0gJChzcmNkaXIpL01ha2VmaWxlLmluIFwK KysJJCh0b3Bfc3JjZGlyKS9NYWtlZmlsZS5jb21tb24KKytzdWJkaXIgPSBidWlsZC9tc3ZjODAv bGliCisrQUNMT0NBTF9NNCA9ICQodG9wX3NyY2RpcikvYWNsb2NhbC5tNAorK2FtX19hY2xvY2Fs X200X2RlcHMgPSAkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9ib29zdC5tNCBcCisrCSQodG9wX3Ny Y2RpcikvY29uZmlnL2F4X215c3FsLm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfb3Jh Y2xlX29jaS5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2F4X3Bvc3RncmVzcWwubTQgXAor KwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9jcHB1bml0Lm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25m aWcvbGlidG9vbC5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2x0b3B0aW9ucy5tNCBcCisr CSQodG9wX3NyY2RpcikvY29uZmlnL2x0c3VnYXIubTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZp Zy9sdHZlcnNpb24ubTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9sdH5vYnNvbGV0ZS5tNCAk KHRvcF9zcmNkaXIpL2NvbmZpZ3VyZS5hYworK2FtX19jb25maWd1cmVfZGVwcyA9ICQoYW1fX2Fj bG9jYWxfbTRfZGVwcykgJChDT05GSUdVUkVfREVQRU5ERU5DSUVTKSBcCisrCSQoQUNMT0NBTF9N NCkKKytta2luc3RhbGxkaXJzID0gJChpbnN0YWxsX3NoKSAtZAorK0NPTkZJR19IRUFERVIgPSAk KHRvcF9idWlsZGRpcikvc29jaS9jb25maWcuaAorK0NPTkZJR19DTEVBTl9GSUxFUyA9CisrQ09O RklHX0NMRUFOX1ZQQVRIX0ZJTEVTID0KKytTT1VSQ0VTID0KKytESVNUX1NPVVJDRVMgPQorK0RJ U1RGSUxFUyA9ICQoRElTVF9DT01NT04pICQoRElTVF9TT1VSQ0VTKSAkKFRFWElORk9TKSAkKEVY VFJBX0RJU1QpCisrQUNMT0NBTCA9IEBBQ0xPQ0FMQAorK0FNVEFSID0gQEFNVEFSQAorK0FSID0g QEFSQAorK0FVVE9DT05GID0gQEFVVE9DT05GQAorK0FVVE9IRUFERVIgPSBAQVVUT0hFQURFUkAK KytBVVRPTUFLRSA9IEBBVVRPTUFLRUAKKytBV0sgPSBAQVdLQAorK0JPT1NUX0NGTEFHUyA9IEBC T09TVF9DRkxBR1NACisrQk9PU1RfREFURV9USU1FX0xJQiA9IEBCT09TVF9EQVRFX1RJTUVfTElC QAorK0JPT1NUX0ZJTEVTWVNURU1fTElCID0gQEJPT1NUX0ZJTEVTWVNURU1fTElCQAorK0JPT1NU X0lPU1RSRUFNU19MSUIgPSBAQk9PU1RfSU9TVFJFQU1TX0xJQkAKKytCT09TVF9MSUJTID0gQEJP T1NUX0xJQlNACisrQk9PU1RfTVBJX0xJQiA9IEBCT09TVF9NUElfTElCQAorK0JPT1NUX01QSV9Q WVRIT05fTElCID0gQEJPT1NUX01QSV9QWVRIT05fTElCQAorK0JPT1NUX1BST0dSQU1fT1BUSU9O U19MSUIgPSBAQk9PU1RfUFJPR1JBTV9PUFRJT05TX0xJQkAKKytCT09TVF9QWVRIT05fTElCID0g QEJPT1NUX1BZVEhPTl9MSUJACisrQk9PU1RfUkVHRVhfTElCID0gQEJPT1NUX1JFR0VYX0xJQkAK KytCT09TVF9TRVJJQUxJWkFUSU9OX0xJQiA9IEBCT09TVF9TRVJJQUxJWkFUSU9OX0xJQkAKKytC T09TVF9TSUdOQUxTX0xJQiA9IEBCT09TVF9TSUdOQUxTX0xJQkAKKytCT09TVF9TWVNURU1fTElC ID0gQEJPT1NUX1NZU1RFTV9MSUJACisrQk9PU1RfVEhSRUFEX0xJQiA9IEBCT09TVF9USFJFQURf TElCQAorK0JPT1NUX1VOSVRfVEVTVF9GUkFNRVdPUktfTElCID0gQEJPT1NUX1VOSVRfVEVTVF9G UkFNRVdPUktfTElCQAorK0JPT1NUX1ZFUlNJT04gPSBAQk9PU1RfVkVSU0lPTkAKKytCT09TVF9X U0VSSUFMSVpBVElPTl9MSUIgPSBAQk9PU1RfV1NFUklBTElaQVRJT05fTElCQAorK0NDID0gQEND QAorK0NDREVQTU9ERSA9IEBDQ0RFUE1PREVACisrQ0ZMQUdTID0gQENGTEFHU0AKKytDUFAgPSBA Q1BQQAorK0NQUEZMQUdTID0gQENQUEZMQUdTQAorK0NQUFVOSVRfQ0ZMQUdTID0gQENQUFVOSVRf Q0ZMQUdTQAorK0NQUFVOSVRfQ09ORklHID0gQENQUFVOSVRfQ09ORklHQAorK0NQUFVOSVRfTElC UyA9IEBDUFBVTklUX0xJQlNACisrQ1BQVU5JVF9WRVJTSU9OID0gQENQUFVOSVRfVkVSU0lPTkAK KytDWFggPSBAQ1hYQAorK0NYWENQUCA9IEBDWFhDUFBACisrQ1hYREVQTU9ERSA9IEBDWFhERVBN T0RFQAorK0NYWEZMQUdTID0gQENYWEZMQUdTQAorK0NZR1BBVEhfVyA9IEBDWUdQQVRIX1dACisr REVGUyA9IEBERUZTQAorK0RFUERJUiA9IEBERVBESVJACisrRFNZTVVUSUwgPSBARFNZTVVUSUxA CisrRFVNUEJJTiA9IEBEVU1QQklOQAorK0VDSE9fQyA9IEBFQ0hPX0NACisrRUNIT19OID0gQEVD SE9fTkAKKytFQ0hPX1QgPSBARUNIT19UQAorK0VHUkVQID0gQEVHUkVQQAorK0VYRUVYVCA9IEBF WEVFWFRACisrRkdSRVAgPSBARkdSRVBACisrR0VORVJJQ19MSUJSQVJZX1ZFUlNJT04gPSBAR0VO RVJJQ19MSUJSQVJZX1ZFUlNJT05ACisrR1JFUCA9IEBHUkVQQAorK0lOU1RBTEwgPSBASU5TVEFM TEAKKytJTlNUQUxMX0RBVEEgPSBASU5TVEFMTF9EQVRBQAorK0lOU1RBTExfUFJPR1JBTSA9IEBJ TlNUQUxMX1BST0dSQU1ACisrSU5TVEFMTF9TQ1JJUFQgPSBASU5TVEFMTF9TQ1JJUFRACisrSU5T VEFMTF9TVFJJUF9QUk9HUkFNID0gQElOU1RBTExfU1RSSVBfUFJPR1JBTUAKKytMRCA9IEBMREAK KytMREZMQUdTID0gQExERkxBR1NACisrTElCT0JKUyA9IEBMSUJPQkpTQAorK0xJQlMgPSBATElC U0AKKytMSUJUT09MID0gQExJQlRPT0xACisrTElQTyA9IEBMSVBPQAorK0xOX1MgPSBATE5fU0AK KytMVExJQk9CSlMgPSBATFRMSUJPQkpTQAorK01BS0VJTkZPID0gQE1BS0VJTkZPQAorK01LRElS X1AgPSBATUtESVJfUEAKKytNWVNRTF9DRkxBR1MgPSBATVlTUUxfQ0ZMQUdTQAorK01ZU1FMX0Nf TElCID0gQE1ZU1FMX0NfTElCQAorK01ZU1FMX0RJUlMgPSBATVlTUUxfRElSU0AKKytNWVNRTF9M SUJTID0gQE1ZU1FMX0xJQlNACisrTVlTUUxfVkVSU0lPTiA9IEBNWVNRTF9WRVJTSU9OQAorK05N ID0gQE5NQAorK05NRURJVCA9IEBOTUVESVRACisrT0JKRFVNUCA9IEBPQkpEVU1QQAorK09CSkVY VCA9IEBPQkpFWFRACisrT1JBQ0xFX0RJUlMgPSBAT1JBQ0xFX0RJUlNACisrT1JBQ0xFX09DSV9D RkxBR1MgPSBAT1JBQ0xFX09DSV9DRkxBR1NACisrT1JBQ0xFX09DSV9MREZMQUdTID0gQE9SQUNM RV9PQ0lfTERGTEFHU0AKKytPUkFDTEVfT0NJX1ZFUlNJT04gPSBAT1JBQ0xFX09DSV9WRVJTSU9O QAorK09UT09MID0gQE9UT09MQAorK09UT09MNjQgPSBAT1RPT0w2NEAKKytQQUNLQUdFID0gQFBB Q0tBR0VACisrUEFDS0FHRV9CVUdSRVBPUlQgPSBAUEFDS0FHRV9CVUdSRVBPUlRACisrUEFDS0FH RV9OQU1FID0gQFBBQ0tBR0VfTkFNRUAKKytQQUNLQUdFX1NUUklORyA9IEBQQUNLQUdFX1NUUklO R0AKKytQQUNLQUdFX1RBUk5BTUUgPSBAUEFDS0FHRV9UQVJOQU1FQAorK1BBQ0tBR0VfVkVSU0lP TiA9IEBQQUNLQUdFX1ZFUlNJT05ACisrUEFUSF9TRVBBUkFUT1IgPSBAUEFUSF9TRVBBUkFUT1JA CisrUEVSTCA9IEBQRVJMQAorK1BHX0NPTkZJRyA9IEBQR19DT05GSUdACisrUE9TVEdSRVNRTF9D RkxBR1MgPSBAUE9TVEdSRVNRTF9DRkxBR1NACisrUE9TVEdSRVNRTF9ESVJTID0gQFBPU1RHUkVT UUxfRElSU0AKKytQT1NUR1JFU1FMX0xERkxBR1MgPSBAUE9TVEdSRVNRTF9MREZMQUdTQAorK1BP U1RHUkVTUUxfVkVSU0lPTiA9IEBQT1NUR1JFU1FMX1ZFUlNJT05ACisrUkFOTElCID0gQFJBTkxJ QkAKKytSUE1fUkVMRUFTRSA9IEBSUE1fUkVMRUFTRUAKKytTRUQgPSBAU0VEQAorK1NFVF9NQUtF ID0gQFNFVF9NQUtFQAorK1NIRUxMID0gQFNIRUxMQAorK1NPQ0lfSEVBREVSU19CVVJJRUQgPSBA U09DSV9IRUFERVJTX0JVUklFREAKKytTT0NJX01ZU1FMX0hFQURFUlNfQlVSSUVEID0gQFNPQ0lf TVlTUUxfSEVBREVSU19CVVJJRURACisrU09DSV9QT1NUR1JFU1FMX0hFQURFUlNfQlVSSUVEID0g QFNPQ0lfUE9TVEdSRVNRTF9IRUFERVJTX0JVUklFREAKKytTVFJJUCA9IEBTVFJJUEAKKytVUExP QURfQ09NTUFORCA9IEBVUExPQURfQ09NTUFOREAKKytWRVJTSU9OID0gQFZFUlNJT05ACisrYWJz X2J1aWxkZGlyID0gQGFic19idWlsZGRpckAKKythYnNfc3JjZGlyID0gQGFic19zcmNkaXJACisr YWJzX3RvcF9idWlsZGRpciA9IEBhYnNfdG9wX2J1aWxkZGlyQAorK2Fic190b3Bfc3JjZGlyID0g QGFic190b3Bfc3JjZGlyQAorK2FjX2N0X0NDID0gQGFjX2N0X0NDQAorK2FjX2N0X0NYWCA9IEBh Y19jdF9DWFhACisrYWNfY3RfRFVNUEJJTiA9IEBhY19jdF9EVU1QQklOQAorK2FtX19pbmNsdWRl ID0gQGFtX19pbmNsdWRlQAorK2FtX19sZWFkaW5nX2RvdCA9IEBhbV9fbGVhZGluZ19kb3RACisr YW1fX3F1b3RlID0gQGFtX19xdW90ZUAKKythbV9fdGFyID0gQGFtX190YXJACisrYW1fX3VudGFy ID0gQGFtX191bnRhckAKKytiaW5kaXIgPSBAYmluZGlyQAorK2J1aWxkID0gQGJ1aWxkQAorK2J1 aWxkX2FsaWFzID0gQGJ1aWxkX2FsaWFzQAorK2J1aWxkX2NwdSA9IEBidWlsZF9jcHVACisrYnVp bGRfb3MgPSBAYnVpbGRfb3NACisrYnVpbGRfdmVuZG9yID0gQGJ1aWxkX3ZlbmRvckAKKytidWls ZGRpciA9IEBidWlsZGRpckAKKytkYXRhZGlyID0gQGRhdGFkaXJACisrZGF0YXJvb3RkaXIgPSBA ZGF0YXJvb3RkaXJACisrZGlmZl9vayA9IEBkaWZmX29rQAorK2RvY2RpciA9IEBkb2NkaXJACisr ZG94eWdlbl9vayA9IEBkb3h5Z2VuX29rQAorK2R2aWRpciA9IEBkdmlkaXJACisrZHZpcHNfb2sg PSBAZHZpcHNfb2tACisrZXhlY19wcmVmaXggPSBAZXhlY19wcmVmaXhACisrZ3Nfb2sgPSBAZ3Nf b2tACisraG9zdCA9IEBob3N0QAorK2hvc3RfYWxpYXMgPSBAaG9zdF9hbGlhc0AKKytob3N0X2Nw dSA9IEBob3N0X2NwdUAKKytob3N0X29zID0gQGhvc3Rfb3NACisraG9zdF92ZW5kb3IgPSBAaG9z dF92ZW5kb3JACisraHRtbGRpciA9IEBodG1sZGlyQAorK2luY2x1ZGVkaXIgPSBAaW5jbHVkZWRp ckAKKytpbmZvZGlyID0gQGluZm9kaXJACisraW5zdGFsbF9zaCA9IEBpbnN0YWxsX3NoQAorK2xh dGV4X29rID0gQGxhdGV4X29rQAorK2xpYmRpciA9IEBsaWJkaXJACisrbGliZXhlY2RpciA9IEBs aWJleGVjZGlyQAorK2xvY2FsZWRpciA9IEBsb2NhbGVkaXJACisrbG9jYWxzdGF0ZWRpciA9IEBs b2NhbHN0YXRlZGlyQAorK2x0X0VDSE8gPSBAbHRfRUNIT0AKKyttYW5kaXIgPSBAbWFuZGlyQAor K21rZGlyX3AgPSBAbWtkaXJfcEAKKytvbGRpbmNsdWRlZGlyID0gQG9sZGluY2x1ZGVkaXJACisr cGRmZGlyID0gQHBkZmRpckAKKytwcmVmaXggPSBAcHJlZml4QAorK3Byb2dyYW1fdHJhbnNmb3Jt X25hbWUgPSBAcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZUAKKytwc2RpciA9IEBwc2RpckAKKytzYmlu ZGlyID0gQHNiaW5kaXJACisrc2VkX29rID0gQHNlZF9va0AKKytzaGFyZWRzdGF0ZWRpciA9IEBz aGFyZWRzdGF0ZWRpckAKKytzcmNkaXIgPSBAc3JjZGlyQAorK3N5c2NvbmZkaXIgPSBAc3lzY29u ZmRpckAKKyt0YXJnZXRfYWxpYXMgPSBAdGFyZ2V0X2FsaWFzQAorK3RvcF9idWlsZF9wcmVmaXgg PSBAdG9wX2J1aWxkX3ByZWZpeEAKKyt0b3BfYnVpbGRkaXIgPSBAdG9wX2J1aWxkZGlyQAorK3Rv cF9zcmNkaXIgPSBAdG9wX3NyY2RpckAKKytBTV9DUFBGTEFHUyA9IC1JJCh0b3BfYnVpbGRkaXIp IC1JJCh0b3Bfc3JjZGlyKQorK01BSU5UQUlORVJDTEVBTkZJTEVTID0gTWFrZWZpbGUuaW4KKytF WFRSQV9ESVNUID0gYnVpbGQuYmF0IGVtcHR5LnZjcHJvaiBtYWtldGVzdC5tYWsgb2RiY190ZXN0 X3Bvc3RncmVzcWwudmNwcm9qIFwKKysJcG9zdGdyZXNxbF90ZXN0LnZjcHJvaiBzcWxpdGUzX3Rl c3QudmNwcm9qIGNsZWFuLmJhdCBcCisrCWZpcmViaXJkX3Rlc3QudmNwcm9qIG9kYmNfdGVzdF9h Y2Nlc3MudmNwcm9qIG9kYmMudmNwcm9qIFwKKysJcG9zdGdyZXNxbC52Y3Byb2ogc3FsaXRlMy52 Y3Byb2ogY29yZS52Y3Byb2ogZmlyZWJpcmQudmNwcm9qIFwKKysJb2RiY190ZXN0X21zc3FsLnZj cHJvaiBvcmFjbGVfdGVzdC52Y3Byb2ogc29jaV9saWIuc2xuIFwKKysJZW1wdHlfdGVzdC52Y3By b2ogb2RiY190ZXN0X215c3FsLnZjcHJvaiBvcmFjbGUudmNwcm9qIHNvY2lfbGliLnZzcHJvcHMK KysKKythbGw6IGFsbC1hbQorKworKy5TVUZGSVhFUzoKKyskKHNyY2RpcikvTWFrZWZpbGUuaW46 ICAkKHNyY2RpcikvTWFrZWZpbGUuYW0gJCh0b3Bfc3JjZGlyKS9NYWtlZmlsZS5jb21tb24gJChh bV9fY29uZmlndXJlX2RlcHMpCisrCUBmb3IgZGVwIGluICQ/OyBkbyBcCisrCSAgY2FzZSAnJChh bV9fY29uZmlndXJlX2RlcHMpJyBpbiBcCisrCSAgICAqJCRkZXAqKSBcCisrCSAgICAgICggY2Qg JCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoICkg XAorKwkgICAgICAgICYmIHsgaWYgdGVzdCAtZiAkQDsgdGhlbiBleGl0IDA7IGVsc2UgYnJlYWs7 IGZpOyB9OyBcCisrCSAgICAgIGV4aXQgMTs7IFwKKysJICBlc2FjOyBcCisrCWRvbmU7IFwKKysJ ZWNobyAnIGNkICQodG9wX3NyY2RpcikgJiYgJChBVVRPTUFLRSkgLS1nbnUgYnVpbGQvbXN2Yzgw L2xpYi9NYWtlZmlsZSc7IFwKKysJJChhbV9fY2QpICQodG9wX3NyY2RpcikgJiYgXAorKwkgICQo QVVUT01BS0UpIC0tZ251IGJ1aWxkL21zdmM4MC9saWIvTWFrZWZpbGUKKysuUFJFQ0lPVVM6IE1h a2VmaWxlCisrTWFrZWZpbGU6ICQoc3JjZGlyKS9NYWtlZmlsZS5pbiAkKHRvcF9idWlsZGRpcikv Y29uZmlnLnN0YXR1cworKwlAY2FzZSAnJD8nIGluIFwKKysJICAqY29uZmlnLnN0YXR1cyopIFwK KysJICAgIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0t cmVmcmVzaDs7IFwKKysJICAqKSBcCisrCSAgICBlY2hvICcgY2QgJCh0b3BfYnVpbGRkaXIpICYm ICQoU0hFTEwpIC4vY29uZmlnLnN0YXR1cyAkKHN1YmRpcikvJEAgJChhbV9fZGVwZmlsZXNfbWF5 YmUpJzsgXAorKwkgICAgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoU0hFTEwpIC4vY29uZmlnLnN0 YXR1cyAkKHN1YmRpcikvJEAgJChhbV9fZGVwZmlsZXNfbWF5YmUpOzsgXAorKwllc2FjOworKwor KyQodG9wX2J1aWxkZGlyKS9jb25maWcuc3RhdHVzOiAkKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZSAk KENPTkZJR19TVEFUVVNfREVQRU5ERU5DSUVTKQorKwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChN QUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gKKysKKyskKHRvcF9zcmNkaXIpL2NvbmZp Z3VyZTogICQoYW1fX2NvbmZpZ3VyZV9kZXBzKQorKwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChN QUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gKKyskKEFDTE9DQUxfTTQpOiAgJChhbV9f YWNsb2NhbF9tNF9kZXBzKQorKwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01B S0VGTEFHUykgYW0tLXJlZnJlc2gKKyskKGFtX19hY2xvY2FsX200X2RlcHMpOgorKworK21vc3Rs eWNsZWFuLWxpYnRvb2w6CisrCS1ybSAtZiAqLmxvCisrCisrY2xlYW4tbGlidG9vbDoKKysJLXJt IC1yZiAubGlicyBfbGlicworK3RhZ3M6IFRBR1MKKytUQUdTOgorKworK2N0YWdzOiBDVEFHUwor K0NUQUdTOgorKworKworK2Rpc3RkaXI6ICQoRElTVEZJTEVTKQorKwlAc3JjZGlyc3RyaXA9YGVj aG8gIiQoc3JjZGlyKSIgfCBzZWQgJ3MvW10uW14kJFxcKl0vXFxcXCYvZydgOyBcCisrCXRvcHNy Y2RpcnN0cmlwPWBlY2hvICIkKHRvcF9zcmNkaXIpIiB8IHNlZCAncy9bXS5bXiQkXFwqXS9cXFxc Ji9nJ2A7IFwKKysJbGlzdD0nJChESVNURklMRVMpJzsgXAorKwkgIGRpc3RfZmlsZXM9YGZvciBm aWxlIGluICQkbGlzdDsgZG8gZWNobyAkJGZpbGU7IGRvbmUgfCBcCisrCSAgc2VkIC1lICJzfF4k JHNyY2RpcnN0cmlwL3x8O3QiIFwKKysJICAgICAgLWUgInN8XiQkdG9wc3JjZGlyc3RyaXAvfCQo dG9wX2J1aWxkZGlyKS98O3QiYDsgXAorKwljYXNlICQkZGlzdF9maWxlcyBpbiBcCisrCSAgKi8q KSAkKE1LRElSX1ApIGBlY2hvICIkJGRpc3RfZmlsZXMiIHwgXAorKwkJCSAgIHNlZCAnL1wvLyFk O3N8XnwkKGRpc3RkaXIpL3w7cywvW14vXSokJCwsJyB8IFwKKysJCQkgICBzb3J0IC11YCA7OyBc CisrCWVzYWM7IFwKKysJZm9yIGZpbGUgaW4gJCRkaXN0X2ZpbGVzOyBkbyBcCisrCSAgaWYgdGVz dCAtZiAkJGZpbGUgfHwgdGVzdCAtZCAkJGZpbGU7IHRoZW4gZD0uOyBlbHNlIGQ9JChzcmNkaXIp OyBmaTsgXAorKwkgIGlmIHRlc3QgLWQgJCRkLyQkZmlsZTsgdGhlbiBcCisrCSAgICBkaXI9YGVj aG8gIi8kJGZpbGUiIHwgc2VkIC1lICdzLC9bXi9dKiQkLCwnYDsgXAorKwkgICAgaWYgdGVzdCAt ZCAiJChkaXN0ZGlyKS8kJGZpbGUiOyB0aGVuIFwKKysJICAgICAgZmluZCAiJChkaXN0ZGlyKS8k JGZpbGUiIC10eXBlIGQgISAtcGVybSAtNzAwIC1leGVjIGNobW9kIHUrcnd4IHt9IFw7OyBcCisr CSAgICBmaTsgXAorKwkgICAgaWYgdGVzdCAtZCAkKHNyY2RpcikvJCRmaWxlICYmIHRlc3QgJCRk ICE9ICQoc3JjZGlyKTsgdGhlbiBcCisrCSAgICAgIGNwIC1mcFIgJChzcmNkaXIpLyQkZmlsZSAi JChkaXN0ZGlyKSQkZGlyIiB8fCBleGl0IDE7IFwKKysJICAgICAgZmluZCAiJChkaXN0ZGlyKS8k JGZpbGUiIC10eXBlIGQgISAtcGVybSAtNzAwIC1leGVjIGNobW9kIHUrcnd4IHt9IFw7OyBcCisr CSAgICBmaTsgXAorKwkgICAgY3AgLWZwUiAkJGQvJCRmaWxlICIkKGRpc3RkaXIpJCRkaXIiIHx8 IGV4aXQgMTsgXAorKwkgIGVsc2UgXAorKwkgICAgdGVzdCAtZiAiJChkaXN0ZGlyKS8kJGZpbGUi IFwKKysJICAgIHx8IGNwIC1wICQkZC8kJGZpbGUgIiQoZGlzdGRpcikvJCRmaWxlIiBcCisrCSAg ICB8fCBleGl0IDE7IFwKKysJICBmaTsgXAorKwlkb25lCisrY2hlY2stYW06IGFsbC1hbQorK2No ZWNrOiBjaGVjay1hbQorK2FsbC1hbTogTWFrZWZpbGUKKytpbnN0YWxsZGlyczoKKytpbnN0YWxs OiBpbnN0YWxsLWFtCisraW5zdGFsbC1leGVjOiBpbnN0YWxsLWV4ZWMtYW0KKytpbnN0YWxsLWRh dGE6IGluc3RhbGwtZGF0YS1hbQorK3VuaW5zdGFsbDogdW5pbnN0YWxsLWFtCisrCisraW5zdGFs bC1hbTogYWxsLWFtCisrCUAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBpbnN0YWxsLWV4ZWMtYW0g aW5zdGFsbC1kYXRhLWFtCisrCisraW5zdGFsbGNoZWNrOiBpbnN0YWxsY2hlY2stYW0KKytpbnN0 YWxsLXN0cmlwOgorKwkkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBJTlNUQUxMX1BST0dSQU09IiQo SU5TVEFMTF9TVFJJUF9QUk9HUkFNKSIgXAorKwkgIGluc3RhbGxfc2hfUFJPR1JBTT0iJChJTlNU QUxMX1NUUklQX1BST0dSQU0pIiBJTlNUQUxMX1NUUklQX0ZMQUc9LXMgXAorKwkgIGB0ZXN0IC16 ICckKFNUUklQKScgfHwgXAorKwkgICAgZWNobyAiSU5TVEFMTF9QUk9HUkFNX0VOVj1TVFJJUFBS T0c9JyQoU1RSSVApJyJgIGluc3RhbGwKKyttb3N0bHljbGVhbi1nZW5lcmljOgorKworK2NsZWFu LWdlbmVyaWM6CisrCisrZGlzdGNsZWFuLWdlbmVyaWM6CisrCS10ZXN0IC16ICIkKENPTkZJR19D TEVBTl9GSUxFUykiIHx8IHJtIC1mICQoQ09ORklHX0NMRUFOX0ZJTEVTKQorKwktdGVzdCAuID0g IiQoc3JjZGlyKSIgfHwgdGVzdCAteiAiJChDT05GSUdfQ0xFQU5fVlBBVEhfRklMRVMpIiB8fCBy bSAtZiAkKENPTkZJR19DTEVBTl9WUEFUSF9GSUxFUykKKysKKyttYWludGFpbmVyLWNsZWFuLWdl bmVyaWM6CisrCUBlY2hvICJUaGlzIGNvbW1hbmQgaXMgaW50ZW5kZWQgZm9yIG1haW50YWluZXJz IHRvIHVzZSIKKysJQGVjaG8gIml0IGRlbGV0ZXMgZmlsZXMgdGhhdCBtYXkgcmVxdWlyZSBzcGVj aWFsIHRvb2xzIHRvIHJlYnVpbGQuIgorKwktdGVzdCAteiAiJChNQUlOVEFJTkVSQ0xFQU5GSUxF UykiIHx8IHJtIC1mICQoTUFJTlRBSU5FUkNMRUFORklMRVMpCisrY2xlYW46IGNsZWFuLWFtCisr CisrY2xlYW4tYW06IGNsZWFuLWdlbmVyaWMgY2xlYW4tbGlidG9vbCBtb3N0bHljbGVhbi1hbQor KworK2Rpc3RjbGVhbjogZGlzdGNsZWFuLWFtCisrCS1ybSAtZiBNYWtlZmlsZQorK2Rpc3RjbGVh bi1hbTogY2xlYW4tYW0gZGlzdGNsZWFuLWdlbmVyaWMKKysKKytkdmk6IGR2aS1hbQorKworK2R2 aS1hbToKKysKKytodG1sOiBodG1sLWFtCisrCisraHRtbC1hbToKKysKKytpbmZvOiBpbmZvLWFt CisrCisraW5mby1hbToKKysKKytpbnN0YWxsLWRhdGEtYW06CisrCisraW5zdGFsbC1kdmk6IGlu c3RhbGwtZHZpLWFtCisrCisraW5zdGFsbC1kdmktYW06CisrCisraW5zdGFsbC1leGVjLWFtOgor KworK2luc3RhbGwtaHRtbDogaW5zdGFsbC1odG1sLWFtCisrCisraW5zdGFsbC1odG1sLWFtOgor KworK2luc3RhbGwtaW5mbzogaW5zdGFsbC1pbmZvLWFtCisrCisraW5zdGFsbC1pbmZvLWFtOgor KworK2luc3RhbGwtbWFuOgorKworK2luc3RhbGwtcGRmOiBpbnN0YWxsLXBkZi1hbQorKworK2lu c3RhbGwtcGRmLWFtOgorKworK2luc3RhbGwtcHM6IGluc3RhbGwtcHMtYW0KKysKKytpbnN0YWxs LXBzLWFtOgorKworK2luc3RhbGxjaGVjay1hbToKKysKKyttYWludGFpbmVyLWNsZWFuOiBtYWlu dGFpbmVyLWNsZWFuLWFtCisrCS1ybSAtZiBNYWtlZmlsZQorK21haW50YWluZXItY2xlYW4tYW06 IGRpc3RjbGVhbi1hbSBtYWludGFpbmVyLWNsZWFuLWdlbmVyaWMKKysKKyttb3N0bHljbGVhbjog bW9zdGx5Y2xlYW4tYW0KKysKKyttb3N0bHljbGVhbi1hbTogbW9zdGx5Y2xlYW4tZ2VuZXJpYyBt b3N0bHljbGVhbi1saWJ0b29sCisrCisrcGRmOiBwZGYtYW0KKysKKytwZGYtYW06CisrCisrcHM6 IHBzLWFtCisrCisrcHMtYW06CisrCisrdW5pbnN0YWxsLWFtOgorKworKy5NQUtFOiBpbnN0YWxs LWFtIGluc3RhbGwtc3RyaXAKKysKKysuUEhPTlk6IGFsbCBhbGwtYW0gY2hlY2sgY2hlY2stYW0g Y2xlYW4gY2xlYW4tZ2VuZXJpYyBjbGVhbi1saWJ0b29sIFwKKysJZGlzdGNsZWFuIGRpc3RjbGVh bi1nZW5lcmljIGRpc3RjbGVhbi1saWJ0b29sIGRpc3RkaXIgZHZpIFwKKysJZHZpLWFtIGh0bWwg aHRtbC1hbSBpbmZvIGluZm8tYW0gaW5zdGFsbCBpbnN0YWxsLWFtIFwKKysJaW5zdGFsbC1kYXRh IGluc3RhbGwtZGF0YS1hbSBpbnN0YWxsLWR2aSBpbnN0YWxsLWR2aS1hbSBcCisrCWluc3RhbGwt ZXhlYyBpbnN0YWxsLWV4ZWMtYW0gaW5zdGFsbC1odG1sIGluc3RhbGwtaHRtbC1hbSBcCisrCWlu c3RhbGwtaW5mbyBpbnN0YWxsLWluZm8tYW0gaW5zdGFsbC1tYW4gaW5zdGFsbC1wZGYgXAorKwlp bnN0YWxsLXBkZi1hbSBpbnN0YWxsLXBzIGluc3RhbGwtcHMtYW0gaW5zdGFsbC1zdHJpcCBcCisr CWluc3RhbGxjaGVjayBpbnN0YWxsY2hlY2stYW0gaW5zdGFsbGRpcnMgbWFpbnRhaW5lci1jbGVh biBcCisrCW1haW50YWluZXItY2xlYW4tZ2VuZXJpYyBtb3N0bHljbGVhbiBtb3N0bHljbGVhbi1n ZW5lcmljIFwKKysJbW9zdGx5Y2xlYW4tbGlidG9vbCBwZGYgcGRmLWFtIHBzIHBzLWFtIHVuaW5z dGFsbCB1bmluc3RhbGwtYW0KKysKKytAU0VUX01BS0VACisrCisrIyBUZWxsIHZlcnNpb25zIFsz LjU5LDMuNjMpIG9mIEdOVSBtYWtlIHRvIG5vdCBleHBvcnQgYWxsIHZhcmlhYmxlcy4KKysjIE90 aGVyd2lzZSBhIHN5c3RlbSBsaW1pdCAoZm9yIFN5c1YgYXQgbGVhc3QpIG1heSBiZSBleGNlZWRl ZC4KKysuTk9FWFBPUlQ6CitkaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svYnVpbGQvbXN2Yzgw L01ha2VmaWxlLmFtIHNvY2ktMy4wLjBfdHJlcDMwMC9idWlsZC9tc3ZjODAvTWFrZWZpbGUuYW0K Ky0tLSBzb2NpLTMuMC4wXzQtcGFjay9idWlsZC9tc3ZjODAvTWFrZWZpbGUuYW0JMTk3MC0wMS0w MSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKKysrKyBzb2NpLTMuMC4wX3RyZXAzMDAvYnVpbGQv bXN2YzgwL01ha2VmaWxlLmFtCTIwMDktMDQtMTYgMTk6Mzc6MDguMDAwMDAwMDAwICswMjAwCitA QCAtMCwwICsxLDggQEAKKysjIyBidWlsZC9tc3ZjODAgc3ViLWRpcmVjdG9yeQorK2luY2x1ZGUg JCh0b3Bfc3JjZGlyKS9NYWtlZmlsZS5jb21tb24KKysKKytNQUlOVEFJTkVSQ0xFQU5GSUxFUyA9 IE1ha2VmaWxlLmluCisrCisrRVhUUkFfRElTVCA9IFJFQURNRS50eHQgc29jaS52c3Byb3BzCisr CisrU1VCRElSUyA9IGRsbCBsaWIKK2RpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9idWlsZC9t c3ZjODAvTWFrZWZpbGUuaW4gc29jaS0zLjAuMF90cmVwMzAwL2J1aWxkL21zdmM4MC9NYWtlZmls ZS5pbgorLS0tIHNvY2ktMy4wLjBfNC1wYWNrL2J1aWxkL21zdmM4MC9NYWtlZmlsZS5pbgkxOTcw LTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAorKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9i dWlsZC9tc3ZjODAvTWFrZWZpbGUuaW4JMjAxMC0wMS0yMyAxNDo0NDo1MS4wMDAwMDAwMDAgKzAx MDAKK0BAIC0wLDAgKzEsNjE3IEBACisrIyBNYWtlZmlsZS5pbiBnZW5lcmF0ZWQgYnkgYXV0b21h a2UgMS4xMS4xIGZyb20gTWFrZWZpbGUuYW0uCisrIyBAY29uZmlndXJlX2lucHV0QAorKworKyMg Q29weXJpZ2h0IChDKSAxOTk0LCAxOTk1LCAxOTk2LCAxOTk3LCAxOTk4LCAxOTk5LCAyMDAwLCAy MDAxLCAyMDAyLAorKyMgMjAwMywgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSAg RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLAorKyMgSW5jLgorKyMgVGhpcyBNYWtlZmlsZS5pbiBp cyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCisrIyBnaXZlcyB1 bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5IGFuZC9vciBkaXN0cmlidXRlIGl0LAorKyMgd2l0 aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbnMsIGFzIGxvbmcgYXMgdGhpcyBub3RpY2UgaXMgcHJl c2VydmVkLgorKworKyMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRo YXQgaXQgd2lsbCBiZSB1c2VmdWwsCisrIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFksIHRvIHRo ZSBleHRlbnQgcGVybWl0dGVkIGJ5IGxhdzsgd2l0aG91dAorKyMgZXZlbiB0aGUgaW1wbGllZCB3 YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQQorKyMgUEFSVElDVUxB UiBQVVJQT1NFLgorKworK0BTRVRfTUFLRUAKKytWUEFUSCA9IEBzcmNkaXJACisrcGtnZGF0YWRp ciA9ICQoZGF0YWRpcikvQFBBQ0tBR0VACisrcGtnaW5jbHVkZWRpciA9ICQoaW5jbHVkZWRpcikv QFBBQ0tBR0VACisrcGtnbGliZGlyID0gJChsaWJkaXIpL0BQQUNLQUdFQAorK3BrZ2xpYmV4ZWNk aXIgPSAkKGxpYmV4ZWNkaXIpL0BQQUNLQUdFQAorK2FtX19jZCA9IENEUEFUSD0iJCR7WlNIX1ZF UlNJT04rLn0kKFBBVEhfU0VQQVJBVE9SKSIgJiYgY2QKKytpbnN0YWxsX3NoX0RBVEEgPSAkKGlu c3RhbGxfc2gpIC1jIC1tIDY0NAorK2luc3RhbGxfc2hfUFJPR1JBTSA9ICQoaW5zdGFsbF9zaCkg LWMKKytpbnN0YWxsX3NoX1NDUklQVCA9ICQoaW5zdGFsbF9zaCkgLWMKKytJTlNUQUxMX0hFQURF UiA9ICQoSU5TVEFMTF9EQVRBKQorK3RyYW5zZm9ybSA9ICQocHJvZ3JhbV90cmFuc2Zvcm1fbmFt ZSkKKytOT1JNQUxfSU5TVEFMTCA9IDoKKytQUkVfSU5TVEFMTCA9IDoKKytQT1NUX0lOU1RBTEwg PSA6CisrTk9STUFMX1VOSU5TVEFMTCA9IDoKKytQUkVfVU5JTlNUQUxMID0gOgorK1BPU1RfVU5J TlNUQUxMID0gOgorK2J1aWxkX3RyaXBsZXQgPSBAYnVpbGRACisraG9zdF90cmlwbGV0ID0gQGhv c3RACisrRElTVF9DT01NT04gPSAkKHNyY2RpcikvTWFrZWZpbGUuYW0gJChzcmNkaXIpL01ha2Vm aWxlLmluIFwKKysJJCh0b3Bfc3JjZGlyKS9NYWtlZmlsZS5jb21tb24KKytzdWJkaXIgPSBidWls ZC9tc3ZjODAKKytBQ0xPQ0FMX000ID0gJCh0b3Bfc3JjZGlyKS9hY2xvY2FsLm00CisrYW1fX2Fj bG9jYWxfbTRfZGVwcyA9ICQodG9wX3NyY2RpcikvY29uZmlnL2F4X2Jvb3N0Lm00IFwKKysJJCh0 b3Bfc3JjZGlyKS9jb25maWcvYXhfbXlzcWwubTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9h eF9vcmFjbGVfb2NpLm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfcG9zdGdyZXNxbC5t NCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2NwcHVuaXQubTQgXAorKwkkKHRvcF9zcmNkaXIp L2NvbmZpZy9saWJ0b29sLm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcvbHRvcHRpb25zLm00 IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcvbHRzdWdhci5tNCBcCisrCSQodG9wX3NyY2Rpcikv Y29uZmlnL2x0dmVyc2lvbi5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2x0fm9ic29sZXRl Lm00ICQodG9wX3NyY2RpcikvY29uZmlndXJlLmFjCisrYW1fX2NvbmZpZ3VyZV9kZXBzID0gJChh bV9fYWNsb2NhbF9tNF9kZXBzKSAkKENPTkZJR1VSRV9ERVBFTkRFTkNJRVMpIFwKKysJJChBQ0xP Q0FMX000KQorK21raW5zdGFsbGRpcnMgPSAkKGluc3RhbGxfc2gpIC1kCisrQ09ORklHX0hFQURF UiA9ICQodG9wX2J1aWxkZGlyKS9zb2NpL2NvbmZpZy5oCisrQ09ORklHX0NMRUFOX0ZJTEVTID0K KytDT05GSUdfQ0xFQU5fVlBBVEhfRklMRVMgPQorK1NPVVJDRVMgPQorK0RJU1RfU09VUkNFUyA9 CisrUkVDVVJTSVZFX1RBUkdFVFMgPSBhbGwtcmVjdXJzaXZlIGNoZWNrLXJlY3Vyc2l2ZSBkdmkt cmVjdXJzaXZlIFwKKysJaHRtbC1yZWN1cnNpdmUgaW5mby1yZWN1cnNpdmUgaW5zdGFsbC1kYXRh LXJlY3Vyc2l2ZSBcCisrCWluc3RhbGwtZHZpLXJlY3Vyc2l2ZSBpbnN0YWxsLWV4ZWMtcmVjdXJz aXZlIFwKKysJaW5zdGFsbC1odG1sLXJlY3Vyc2l2ZSBpbnN0YWxsLWluZm8tcmVjdXJzaXZlIFwK KysJaW5zdGFsbC1wZGYtcmVjdXJzaXZlIGluc3RhbGwtcHMtcmVjdXJzaXZlIGluc3RhbGwtcmVj dXJzaXZlIFwKKysJaW5zdGFsbGNoZWNrLXJlY3Vyc2l2ZSBpbnN0YWxsZGlycy1yZWN1cnNpdmUg cGRmLXJlY3Vyc2l2ZSBcCisrCXBzLXJlY3Vyc2l2ZSB1bmluc3RhbGwtcmVjdXJzaXZlCisrUkVD VVJTSVZFX0NMRUFOX1RBUkdFVFMgPSBtb3N0bHljbGVhbi1yZWN1cnNpdmUgY2xlYW4tcmVjdXJz aXZlCVwKKysgIGRpc3RjbGVhbi1yZWN1cnNpdmUgbWFpbnRhaW5lci1jbGVhbi1yZWN1cnNpdmUK KytBTV9SRUNVUlNJVkVfVEFSR0VUUyA9ICQoUkVDVVJTSVZFX1RBUkdFVFM6LXJlY3Vyc2l2ZT0p IFwKKysJJChSRUNVUlNJVkVfQ0xFQU5fVEFSR0VUUzotcmVjdXJzaXZlPSkgdGFncyBUQUdTIGN0 YWdzIENUQUdTIFwKKysJZGlzdGRpcgorK0VUQUdTID0gZXRhZ3MKKytDVEFHUyA9IGN0YWdzCisr RElTVF9TVUJESVJTID0gJChTVUJESVJTKQorK0RJU1RGSUxFUyA9ICQoRElTVF9DT01NT04pICQo RElTVF9TT1VSQ0VTKSAkKFRFWElORk9TKSAkKEVYVFJBX0RJU1QpCisrYW1fX3JlbGF0aXZpemUg PSBcCisrICBkaXIwPWBwd2RgOyBcCisrICBzZWRfZmlyc3Q9J3MsXlwoW14vXSpcKS8uKiQkLFwx LCc7IFwKKysgIHNlZF9yZXN0PSdzLF5bXi9dKi8qLCwnOyBcCisrICBzZWRfbGFzdD0ncyxeLiov XChbXi9dKlwpJCQsXDEsJzsgXAorKyAgc2VkX2J1dGxhc3Q9J3MsLypbXi9dKiQkLCwnOyBcCisr ICB3aGlsZSB0ZXN0IC1uICIkJGRpcjEiOyBkbyBcCisrICAgIGZpcnN0PWBlY2hvICIkJGRpcjEi IHwgc2VkIC1lICIkJHNlZF9maXJzdCJgOyBcCisrICAgIGlmIHRlc3QgIiQkZmlyc3QiICE9ICIu IjsgdGhlbiBcCisrICAgICAgaWYgdGVzdCAiJCRmaXJzdCIgPSAiLi4iOyB0aGVuIFwKKysgICAg ICAgIGRpcjI9YGVjaG8gIiQkZGlyMCIgfCBzZWQgLWUgIiQkc2VkX2xhc3QiYC8iJCRkaXIyIjsg XAorKyAgICAgICAgZGlyMD1gZWNobyAiJCRkaXIwIiB8IHNlZCAtZSAiJCRzZWRfYnV0bGFzdCJg OyBcCisrICAgICAgZWxzZSBcCisrICAgICAgICBmaXJzdDI9YGVjaG8gIiQkZGlyMiIgfCBzZWQg LWUgIiQkc2VkX2ZpcnN0ImA7IFwKKysgICAgICAgIGlmIHRlc3QgIiQkZmlyc3QyIiA9ICIkJGZp cnN0IjsgdGhlbiBcCisrICAgICAgICAgIGRpcjI9YGVjaG8gIiQkZGlyMiIgfCBzZWQgLWUgIiQk c2VkX3Jlc3QiYDsgXAorKyAgICAgICAgZWxzZSBcCisrICAgICAgICAgIGRpcjI9Ii4uLyQkZGly MiI7IFwKKysgICAgICAgIGZpOyBcCisrICAgICAgICBkaXIwPSIkJGRpcjAiLyIkJGZpcnN0Ijsg XAorKyAgICAgIGZpOyBcCisrICAgIGZpOyBcCisrICAgIGRpcjE9YGVjaG8gIiQkZGlyMSIgfCBz ZWQgLWUgIiQkc2VkX3Jlc3QiYDsgXAorKyAgZG9uZTsgXAorKyAgcmVsZGlyPSIkJGRpcjIiCisr QUNMT0NBTCA9IEBBQ0xPQ0FMQAorK0FNVEFSID0gQEFNVEFSQAorK0FSID0gQEFSQAorK0FVVE9D T05GID0gQEFVVE9DT05GQAorK0FVVE9IRUFERVIgPSBAQVVUT0hFQURFUkAKKytBVVRPTUFLRSA9 IEBBVVRPTUFLRUAKKytBV0sgPSBAQVdLQAorK0JPT1NUX0NGTEFHUyA9IEBCT09TVF9DRkxBR1NA CisrQk9PU1RfREFURV9USU1FX0xJQiA9IEBCT09TVF9EQVRFX1RJTUVfTElCQAorK0JPT1NUX0ZJ TEVTWVNURU1fTElCID0gQEJPT1NUX0ZJTEVTWVNURU1fTElCQAorK0JPT1NUX0lPU1RSRUFNU19M SUIgPSBAQk9PU1RfSU9TVFJFQU1TX0xJQkAKKytCT09TVF9MSUJTID0gQEJPT1NUX0xJQlNACisr Qk9PU1RfTVBJX0xJQiA9IEBCT09TVF9NUElfTElCQAorK0JPT1NUX01QSV9QWVRIT05fTElCID0g QEJPT1NUX01QSV9QWVRIT05fTElCQAorK0JPT1NUX1BST0dSQU1fT1BUSU9OU19MSUIgPSBAQk9P U1RfUFJPR1JBTV9PUFRJT05TX0xJQkAKKytCT09TVF9QWVRIT05fTElCID0gQEJPT1NUX1BZVEhP Tl9MSUJACisrQk9PU1RfUkVHRVhfTElCID0gQEJPT1NUX1JFR0VYX0xJQkAKKytCT09TVF9TRVJJ QUxJWkFUSU9OX0xJQiA9IEBCT09TVF9TRVJJQUxJWkFUSU9OX0xJQkAKKytCT09TVF9TSUdOQUxT X0xJQiA9IEBCT09TVF9TSUdOQUxTX0xJQkAKKytCT09TVF9TWVNURU1fTElCID0gQEJPT1NUX1NZ U1RFTV9MSUJACisrQk9PU1RfVEhSRUFEX0xJQiA9IEBCT09TVF9USFJFQURfTElCQAorK0JPT1NU X1VOSVRfVEVTVF9GUkFNRVdPUktfTElCID0gQEJPT1NUX1VOSVRfVEVTVF9GUkFNRVdPUktfTElC QAorK0JPT1NUX1ZFUlNJT04gPSBAQk9PU1RfVkVSU0lPTkAKKytCT09TVF9XU0VSSUFMSVpBVElP Tl9MSUIgPSBAQk9PU1RfV1NFUklBTElaQVRJT05fTElCQAorK0NDID0gQENDQAorK0NDREVQTU9E RSA9IEBDQ0RFUE1PREVACisrQ0ZMQUdTID0gQENGTEFHU0AKKytDUFAgPSBAQ1BQQAorK0NQUEZM QUdTID0gQENQUEZMQUdTQAorK0NQUFVOSVRfQ0ZMQUdTID0gQENQUFVOSVRfQ0ZMQUdTQAorK0NQ UFVOSVRfQ09ORklHID0gQENQUFVOSVRfQ09ORklHQAorK0NQUFVOSVRfTElCUyA9IEBDUFBVTklU X0xJQlNACisrQ1BQVU5JVF9WRVJTSU9OID0gQENQUFVOSVRfVkVSU0lPTkAKKytDWFggPSBAQ1hY QAorK0NYWENQUCA9IEBDWFhDUFBACisrQ1hYREVQTU9ERSA9IEBDWFhERVBNT0RFQAorK0NYWEZM QUdTID0gQENYWEZMQUdTQAorK0NZR1BBVEhfVyA9IEBDWUdQQVRIX1dACisrREVGUyA9IEBERUZT QAorK0RFUERJUiA9IEBERVBESVJACisrRFNZTVVUSUwgPSBARFNZTVVUSUxACisrRFVNUEJJTiA9 IEBEVU1QQklOQAorK0VDSE9fQyA9IEBFQ0hPX0NACisrRUNIT19OID0gQEVDSE9fTkAKKytFQ0hP X1QgPSBARUNIT19UQAorK0VHUkVQID0gQEVHUkVQQAorK0VYRUVYVCA9IEBFWEVFWFRACisrRkdS RVAgPSBARkdSRVBACisrR0VORVJJQ19MSUJSQVJZX1ZFUlNJT04gPSBAR0VORVJJQ19MSUJSQVJZ X1ZFUlNJT05ACisrR1JFUCA9IEBHUkVQQAorK0lOU1RBTEwgPSBASU5TVEFMTEAKKytJTlNUQUxM X0RBVEEgPSBASU5TVEFMTF9EQVRBQAorK0lOU1RBTExfUFJPR1JBTSA9IEBJTlNUQUxMX1BST0dS QU1ACisrSU5TVEFMTF9TQ1JJUFQgPSBASU5TVEFMTF9TQ1JJUFRACisrSU5TVEFMTF9TVFJJUF9Q Uk9HUkFNID0gQElOU1RBTExfU1RSSVBfUFJPR1JBTUAKKytMRCA9IEBMREAKKytMREZMQUdTID0g QExERkxBR1NACisrTElCT0JKUyA9IEBMSUJPQkpTQAorK0xJQlMgPSBATElCU0AKKytMSUJUT09M ID0gQExJQlRPT0xACisrTElQTyA9IEBMSVBPQAorK0xOX1MgPSBATE5fU0AKKytMVExJQk9CSlMg PSBATFRMSUJPQkpTQAorK01BS0VJTkZPID0gQE1BS0VJTkZPQAorK01LRElSX1AgPSBATUtESVJf UEAKKytNWVNRTF9DRkxBR1MgPSBATVlTUUxfQ0ZMQUdTQAorK01ZU1FMX0NfTElCID0gQE1ZU1FM X0NfTElCQAorK01ZU1FMX0RJUlMgPSBATVlTUUxfRElSU0AKKytNWVNRTF9MSUJTID0gQE1ZU1FM X0xJQlNACisrTVlTUUxfVkVSU0lPTiA9IEBNWVNRTF9WRVJTSU9OQAorK05NID0gQE5NQAorK05N RURJVCA9IEBOTUVESVRACisrT0JKRFVNUCA9IEBPQkpEVU1QQAorK09CSkVYVCA9IEBPQkpFWFRA CisrT1JBQ0xFX0RJUlMgPSBAT1JBQ0xFX0RJUlNACisrT1JBQ0xFX09DSV9DRkxBR1MgPSBAT1JB Q0xFX09DSV9DRkxBR1NACisrT1JBQ0xFX09DSV9MREZMQUdTID0gQE9SQUNMRV9PQ0lfTERGTEFH U0AKKytPUkFDTEVfT0NJX1ZFUlNJT04gPSBAT1JBQ0xFX09DSV9WRVJTSU9OQAorK09UT09MID0g QE9UT09MQAorK09UT09MNjQgPSBAT1RPT0w2NEAKKytQQUNLQUdFID0gQFBBQ0tBR0VACisrUEFD S0FHRV9CVUdSRVBPUlQgPSBAUEFDS0FHRV9CVUdSRVBPUlRACisrUEFDS0FHRV9OQU1FID0gQFBB Q0tBR0VfTkFNRUAKKytQQUNLQUdFX1NUUklORyA9IEBQQUNLQUdFX1NUUklOR0AKKytQQUNLQUdF X1RBUk5BTUUgPSBAUEFDS0FHRV9UQVJOQU1FQAorK1BBQ0tBR0VfVkVSU0lPTiA9IEBQQUNLQUdF X1ZFUlNJT05ACisrUEFUSF9TRVBBUkFUT1IgPSBAUEFUSF9TRVBBUkFUT1JACisrUEVSTCA9IEBQ RVJMQAorK1BHX0NPTkZJRyA9IEBQR19DT05GSUdACisrUE9TVEdSRVNRTF9DRkxBR1MgPSBAUE9T VEdSRVNRTF9DRkxBR1NACisrUE9TVEdSRVNRTF9ESVJTID0gQFBPU1RHUkVTUUxfRElSU0AKKytQ T1NUR1JFU1FMX0xERkxBR1MgPSBAUE9TVEdSRVNRTF9MREZMQUdTQAorK1BPU1RHUkVTUUxfVkVS U0lPTiA9IEBQT1NUR1JFU1FMX1ZFUlNJT05ACisrUkFOTElCID0gQFJBTkxJQkAKKytSUE1fUkVM RUFTRSA9IEBSUE1fUkVMRUFTRUAKKytTRUQgPSBAU0VEQAorK1NFVF9NQUtFID0gQFNFVF9NQUtF QAorK1NIRUxMID0gQFNIRUxMQAorK1NPQ0lfSEVBREVSU19CVVJJRUQgPSBAU09DSV9IRUFERVJT X0JVUklFREAKKytTT0NJX01ZU1FMX0hFQURFUlNfQlVSSUVEID0gQFNPQ0lfTVlTUUxfSEVBREVS U19CVVJJRURACisrU09DSV9QT1NUR1JFU1FMX0hFQURFUlNfQlVSSUVEID0gQFNPQ0lfUE9TVEdS RVNRTF9IRUFERVJTX0JVUklFREAKKytTVFJJUCA9IEBTVFJJUEAKKytVUExPQURfQ09NTUFORCA9 IEBVUExPQURfQ09NTUFOREAKKytWRVJTSU9OID0gQFZFUlNJT05ACisrYWJzX2J1aWxkZGlyID0g QGFic19idWlsZGRpckAKKythYnNfc3JjZGlyID0gQGFic19zcmNkaXJACisrYWJzX3RvcF9idWls ZGRpciA9IEBhYnNfdG9wX2J1aWxkZGlyQAorK2Fic190b3Bfc3JjZGlyID0gQGFic190b3Bfc3Jj ZGlyQAorK2FjX2N0X0NDID0gQGFjX2N0X0NDQAorK2FjX2N0X0NYWCA9IEBhY19jdF9DWFhACisr YWNfY3RfRFVNUEJJTiA9IEBhY19jdF9EVU1QQklOQAorK2FtX19pbmNsdWRlID0gQGFtX19pbmNs dWRlQAorK2FtX19sZWFkaW5nX2RvdCA9IEBhbV9fbGVhZGluZ19kb3RACisrYW1fX3F1b3RlID0g QGFtX19xdW90ZUAKKythbV9fdGFyID0gQGFtX190YXJACisrYW1fX3VudGFyID0gQGFtX191bnRh ckAKKytiaW5kaXIgPSBAYmluZGlyQAorK2J1aWxkID0gQGJ1aWxkQAorK2J1aWxkX2FsaWFzID0g QGJ1aWxkX2FsaWFzQAorK2J1aWxkX2NwdSA9IEBidWlsZF9jcHVACisrYnVpbGRfb3MgPSBAYnVp bGRfb3NACisrYnVpbGRfdmVuZG9yID0gQGJ1aWxkX3ZlbmRvckAKKytidWlsZGRpciA9IEBidWls ZGRpckAKKytkYXRhZGlyID0gQGRhdGFkaXJACisrZGF0YXJvb3RkaXIgPSBAZGF0YXJvb3RkaXJA CisrZGlmZl9vayA9IEBkaWZmX29rQAorK2RvY2RpciA9IEBkb2NkaXJACisrZG94eWdlbl9vayA9 IEBkb3h5Z2VuX29rQAorK2R2aWRpciA9IEBkdmlkaXJACisrZHZpcHNfb2sgPSBAZHZpcHNfb2tA CisrZXhlY19wcmVmaXggPSBAZXhlY19wcmVmaXhACisrZ3Nfb2sgPSBAZ3Nfb2tACisraG9zdCA9 IEBob3N0QAorK2hvc3RfYWxpYXMgPSBAaG9zdF9hbGlhc0AKKytob3N0X2NwdSA9IEBob3N0X2Nw dUAKKytob3N0X29zID0gQGhvc3Rfb3NACisraG9zdF92ZW5kb3IgPSBAaG9zdF92ZW5kb3JACisr aHRtbGRpciA9IEBodG1sZGlyQAorK2luY2x1ZGVkaXIgPSBAaW5jbHVkZWRpckAKKytpbmZvZGly ID0gQGluZm9kaXJACisraW5zdGFsbF9zaCA9IEBpbnN0YWxsX3NoQAorK2xhdGV4X29rID0gQGxh dGV4X29rQAorK2xpYmRpciA9IEBsaWJkaXJACisrbGliZXhlY2RpciA9IEBsaWJleGVjZGlyQAor K2xvY2FsZWRpciA9IEBsb2NhbGVkaXJACisrbG9jYWxzdGF0ZWRpciA9IEBsb2NhbHN0YXRlZGly QAorK2x0X0VDSE8gPSBAbHRfRUNIT0AKKyttYW5kaXIgPSBAbWFuZGlyQAorK21rZGlyX3AgPSBA bWtkaXJfcEAKKytvbGRpbmNsdWRlZGlyID0gQG9sZGluY2x1ZGVkaXJACisrcGRmZGlyID0gQHBk ZmRpckAKKytwcmVmaXggPSBAcHJlZml4QAorK3Byb2dyYW1fdHJhbnNmb3JtX25hbWUgPSBAcHJv Z3JhbV90cmFuc2Zvcm1fbmFtZUAKKytwc2RpciA9IEBwc2RpckAKKytzYmluZGlyID0gQHNiaW5k aXJACisrc2VkX29rID0gQHNlZF9va0AKKytzaGFyZWRzdGF0ZWRpciA9IEBzaGFyZWRzdGF0ZWRp ckAKKytzcmNkaXIgPSBAc3JjZGlyQAorK3N5c2NvbmZkaXIgPSBAc3lzY29uZmRpckAKKyt0YXJn ZXRfYWxpYXMgPSBAdGFyZ2V0X2FsaWFzQAorK3RvcF9idWlsZF9wcmVmaXggPSBAdG9wX2J1aWxk X3ByZWZpeEAKKyt0b3BfYnVpbGRkaXIgPSBAdG9wX2J1aWxkZGlyQAorK3RvcF9zcmNkaXIgPSBA dG9wX3NyY2RpckAKKytBTV9DUFBGTEFHUyA9IC1JJCh0b3BfYnVpbGRkaXIpIC1JJCh0b3Bfc3Jj ZGlyKQorK01BSU5UQUlORVJDTEVBTkZJTEVTID0gTWFrZWZpbGUuaW4KKytFWFRSQV9ESVNUID0g UkVBRE1FLnR4dCBzb2NpLnZzcHJvcHMKKytTVUJESVJTID0gZGxsIGxpYgorK2FsbDogYWxsLXJl Y3Vyc2l2ZQorKworKy5TVUZGSVhFUzoKKyskKHNyY2RpcikvTWFrZWZpbGUuaW46ICAkKHNyY2Rp cikvTWFrZWZpbGUuYW0gJCh0b3Bfc3JjZGlyKS9NYWtlZmlsZS5jb21tb24gJChhbV9fY29uZmln dXJlX2RlcHMpCisrCUBmb3IgZGVwIGluICQ/OyBkbyBcCisrCSAgY2FzZSAnJChhbV9fY29uZmln dXJlX2RlcHMpJyBpbiBcCisrCSAgICAqJCRkZXAqKSBcCisrCSAgICAgICggY2QgJCh0b3BfYnVp bGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoICkgXAorKwkgICAg ICAgICYmIHsgaWYgdGVzdCAtZiAkQDsgdGhlbiBleGl0IDA7IGVsc2UgYnJlYWs7IGZpOyB9OyBc CisrCSAgICAgIGV4aXQgMTs7IFwKKysJICBlc2FjOyBcCisrCWRvbmU7IFwKKysJZWNobyAnIGNk ICQodG9wX3NyY2RpcikgJiYgJChBVVRPTUFLRSkgLS1nbnUgYnVpbGQvbXN2YzgwL01ha2VmaWxl JzsgXAorKwkkKGFtX19jZCkgJCh0b3Bfc3JjZGlyKSAmJiBcCisrCSAgJChBVVRPTUFLRSkgLS1n bnUgYnVpbGQvbXN2YzgwL01ha2VmaWxlCisrLlBSRUNJT1VTOiBNYWtlZmlsZQorK01ha2VmaWxl OiAkKHNyY2RpcikvTWFrZWZpbGUuaW4gJCh0b3BfYnVpbGRkaXIpL2NvbmZpZy5zdGF0dXMKKysJ QGNhc2UgJyQ/JyBpbiBcCisrCSAgKmNvbmZpZy5zdGF0dXMqKSBcCisrCSAgICBjZCAkKHRvcF9i dWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2g7OyBcCisrCSAg KikgXAorKwkgICAgZWNobyAnIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKFNIRUxMKSAuL2NvbmZp Zy5zdGF0dXMgJChzdWJkaXIpLyRAICQoYW1fX2RlcGZpbGVzX21heWJlKSc7IFwKKysJICAgIGNk ICQodG9wX2J1aWxkZGlyKSAmJiAkKFNIRUxMKSAuL2NvbmZpZy5zdGF0dXMgJChzdWJkaXIpLyRA ICQoYW1fX2RlcGZpbGVzX21heWJlKTs7IFwKKysJZXNhYzsKKysKKyskKHRvcF9idWlsZGRpcikv Y29uZmlnLnN0YXR1czogJCh0b3Bfc3JjZGlyKS9jb25maWd1cmUgJChDT05GSUdfU1RBVFVTX0RF UEVOREVOQ0lFUykKKysJY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxB R1MpIGFtLS1yZWZyZXNoCisrCisrJCh0b3Bfc3JjZGlyKS9jb25maWd1cmU6ICAkKGFtX19jb25m aWd1cmVfZGVwcykKKysJY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxB R1MpIGFtLS1yZWZyZXNoCisrJChBQ0xPQ0FMX000KTogICQoYW1fX2FjbG9jYWxfbTRfZGVwcykK KysJY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZy ZXNoCisrJChhbV9fYWNsb2NhbF9tNF9kZXBzKToKKysKKyttb3N0bHljbGVhbi1saWJ0b29sOgor Kwktcm0gLWYgKi5sbworKworK2NsZWFuLWxpYnRvb2w6CisrCS1ybSAtcmYgLmxpYnMgX2xpYnMK KysKKysjIFRoaXMgZGlyZWN0b3J5J3Mgc3ViZGlyZWN0b3JpZXMgYXJlIG1vc3RseSBpbmRlcGVu ZGVudDsgeW91IGNhbiBjZAorKyMgaW50byB0aGVtIGFuZCBydW4gYG1ha2UnIHdpdGhvdXQgZ29p bmcgdGhyb3VnaCB0aGlzIE1ha2VmaWxlLgorKyMgVG8gY2hhbmdlIHRoZSB2YWx1ZXMgb2YgYG1h a2UnIHZhcmlhYmxlczogaW5zdGVhZCBvZiBlZGl0aW5nIE1ha2VmaWxlcywKKysjICgxKSBpZiB0 aGUgdmFyaWFibGUgaXMgc2V0IGluIGBjb25maWcuc3RhdHVzJywgZWRpdCBgY29uZmlnLnN0YXR1 cycKKysjICAgICAod2hpY2ggd2lsbCBjYXVzZSB0aGUgTWFrZWZpbGVzIHRvIGJlIHJlZ2VuZXJh dGVkIHdoZW4geW91IHJ1biBgbWFrZScpOworKyMgKDIpIG90aGVyd2lzZSwgcGFzcyB0aGUgZGVz aXJlZCB2YWx1ZXMgb24gdGhlIGBtYWtlJyBjb21tYW5kIGxpbmUuCisrJChSRUNVUlNJVkVfVEFS R0VUUyk6CisrCUBmYWlsPSBmYWlsY29tPSdleGl0IDEnOyBcCisrCWZvciBmIGluIHggJCRNQUtF RkxBR1M7IGRvIFwKKysJICBjYXNlICQkZiBpbiBcCisrCSAgICAqPSogfCAtLVsha10qKTs7IFwK KysJICAgICprKikgZmFpbGNvbT0nZmFpbD15ZXMnOzsgXAorKwkgIGVzYWM7IFwKKysJZG9uZTsg XAorKwlkb3Rfc2Vlbj1ubzsgXAorKwl0YXJnZXQ9YGVjaG8gJEAgfCBzZWQgcy8tcmVjdXJzaXZl Ly9gOyBcCisrCWxpc3Q9JyQoU1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAor KwkgIGVjaG8gIk1ha2luZyAkJHRhcmdldCBpbiAkJHN1YmRpciI7IFwKKysJICBpZiB0ZXN0ICIk JHN1YmRpciIgPSAiLiI7IHRoZW4gXAorKwkgICAgZG90X3NlZW49eWVzOyBcCisrCSAgICBsb2Nh bF90YXJnZXQ9IiQkdGFyZ2V0LWFtIjsgXAorKwkgIGVsc2UgXAorKwkgICAgbG9jYWxfdGFyZ2V0 PSIkJHRhcmdldCI7IFwKKysJICBmaTsgXAorKwkgICgkKGFtX19jZCkgJCRzdWJkaXIgJiYgJChN QUtFKSAkKEFNX01BS0VGTEFHUykgJCRsb2NhbF90YXJnZXQpIFwKKysJICB8fCBldmFsICQkZmFp bGNvbTsgXAorKwlkb25lOyBcCisrCWlmIHRlc3QgIiQkZG90X3NlZW4iID0gIm5vIjsgdGhlbiBc CisrCSAgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgIiQkdGFyZ2V0LWFtIiB8fCBleGl0IDE7IFwK KysJZmk7IHRlc3QgLXogIiQkZmFpbCIKKysKKyskKFJFQ1VSU0lWRV9DTEVBTl9UQVJHRVRTKToK KysJQGZhaWw9IGZhaWxjb209J2V4aXQgMSc7IFwKKysJZm9yIGYgaW4geCAkJE1BS0VGTEFHUzsg ZG8gXAorKwkgIGNhc2UgJCRmIGluIFwKKysJICAgICo9KiB8IC0tWyFrXSopOzsgXAorKwkgICAg KmsqKSBmYWlsY29tPSdmYWlsPXllcyc7OyBcCisrCSAgZXNhYzsgXAorKwlkb25lOyBcCisrCWRv dF9zZWVuPW5vOyBcCisrCWNhc2UgIiRAIiBpbiBcCisrCSAgZGlzdGNsZWFuLSogfCBtYWludGFp bmVyLWNsZWFuLSopIGxpc3Q9JyQoRElTVF9TVUJESVJTKScgOzsgXAorKwkgICopIGxpc3Q9JyQo U1VCRElSUyknIDs7IFwKKysJZXNhYzsgXAorKwlyZXY9Jyc7IGZvciBzdWJkaXIgaW4gJCRsaXN0 OyBkbyBcCisrCSAgaWYgdGVzdCAiJCRzdWJkaXIiID0gIi4iOyB0aGVuIDo7IGVsc2UgXAorKwkg ICAgcmV2PSIkJHN1YmRpciAkJHJldiI7IFwKKysJICBmaTsgXAorKwlkb25lOyBcCisrCXJldj0i JCRyZXYgLiI7IFwKKysJdGFyZ2V0PWBlY2hvICRAIHwgc2VkIHMvLXJlY3Vyc2l2ZS8vYDsgXAor Kwlmb3Igc3ViZGlyIGluICQkcmV2OyBkbyBcCisrCSAgZWNobyAiTWFraW5nICQkdGFyZ2V0IGlu ICQkc3ViZGlyIjsgXAorKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9ICIuIjsgdGhlbiBcCisrCSAg ICBsb2NhbF90YXJnZXQ9IiQkdGFyZ2V0LWFtIjsgXAorKwkgIGVsc2UgXAorKwkgICAgbG9jYWxf dGFyZ2V0PSIkJHRhcmdldCI7IFwKKysJICBmaTsgXAorKwkgICgkKGFtX19jZCkgJCRzdWJkaXIg JiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgJCRsb2NhbF90YXJnZXQpIFwKKysJICB8fCBldmFs ICQkZmFpbGNvbTsgXAorKwlkb25lICYmIHRlc3QgLXogIiQkZmFpbCIKKyt0YWdzLXJlY3Vyc2l2 ZToKKysJbGlzdD0nJChTVUJESVJTKSc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCisrCSAg dGVzdCAiJCRzdWJkaXIiID0gLiB8fCAoJChhbV9fY2QpICQkc3ViZGlyICYmICQoTUFLRSkgJChB TV9NQUtFRkxBR1MpIHRhZ3MpOyBcCisrCWRvbmUKKytjdGFncy1yZWN1cnNpdmU6CisrCWxpc3Q9 JyQoU1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAorKwkgIHRlc3QgIiQkc3Vi ZGlyIiA9IC4gfHwgKCQoYW1fX2NkKSAkJHN1YmRpciAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdT KSBjdGFncyk7IFwKKysJZG9uZQorKworK0lEOiAkKEhFQURFUlMpICQoU09VUkNFUykgJChMSVNQ KSAkKFRBR1NfRklMRVMpCisrCWxpc3Q9JyQoU09VUkNFUykgJChIRUFERVJTKSAkKExJU1ApICQo VEFHU19GSUxFUyknOyBcCisrCXVuaXF1ZT1gZm9yIGkgaW4gJCRsaXN0OyBkbyBcCisrCSAgICBp ZiB0ZXN0IC1mICIkJGkiOyB0aGVuIGVjaG8gJCRpOyBlbHNlIGVjaG8gJChzcmNkaXIpLyQkaTsg Zmk7IFwKKysJICBkb25lIHwgXAorKwkgICQoQVdLKSAneyBmaWxlc1skJDBdID0gMTsgbm9uZW1w dHkgPSAxOyB9IFwKKysJICAgICAgRU5EIHsgaWYgKG5vbmVtcHR5KSB7IGZvciAoaSBpbiBmaWxl cykgcHJpbnQgaTsgfTsgfSdgOyBcCisrCW1raWQgLWZJRCAkJHVuaXF1ZQorK3RhZ3M6IFRBR1MK KysKKytUQUdTOiB0YWdzLXJlY3Vyc2l2ZSAkKEhFQURFUlMpICQoU09VUkNFUykgICQoVEFHU19E RVBFTkRFTkNJRVMpIFwKKysJCSQoVEFHU19GSUxFUykgJChMSVNQKQorKwlzZXQgeDsgXAorKwlo ZXJlPWBwd2RgOyBcCisrCWlmICgkKEVUQUdTKSAtLWV0YWdzLWluY2x1ZGUgLS12ZXJzaW9uKSA+ L2Rldi9udWxsIDI+JjE7IHRoZW4gXAorKwkgIGluY2x1ZGVfb3B0aW9uPS0tZXRhZ3MtaW5jbHVk ZTsgXAorKwkgIGVtcHR5X2ZpeD0uOyBcCisrCWVsc2UgXAorKwkgIGluY2x1ZGVfb3B0aW9uPS0t aW5jbHVkZTsgXAorKwkgIGVtcHR5X2ZpeD07IFwKKysJZmk7IFwKKysJbGlzdD0nJChTVUJESVJT KSc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCisrCSAgaWYgdGVzdCAiJCRzdWJkaXIiID0g LjsgdGhlbiA6OyBlbHNlIFwKKysJICAgIHRlc3QgISAtZiAkJHN1YmRpci9UQUdTIHx8IFwKKysJ ICAgICAgc2V0ICIkJEAiICIkJGluY2x1ZGVfb3B0aW9uPSQkaGVyZS8kJHN1YmRpci9UQUdTIjsg XAorKwkgIGZpOyBcCisrCWRvbmU7IFwKKysJbGlzdD0nJChTT1VSQ0VTKSAkKEhFQURFUlMpICAk KExJU1ApICQoVEFHU19GSUxFUyknOyBcCisrCXVuaXF1ZT1gZm9yIGkgaW4gJCRsaXN0OyBkbyBc CisrCSAgICBpZiB0ZXN0IC1mICIkJGkiOyB0aGVuIGVjaG8gJCRpOyBlbHNlIGVjaG8gJChzcmNk aXIpLyQkaTsgZmk7IFwKKysJICBkb25lIHwgXAorKwkgICQoQVdLKSAneyBmaWxlc1skJDBdID0g MTsgbm9uZW1wdHkgPSAxOyB9IFwKKysJICAgICAgRU5EIHsgaWYgKG5vbmVtcHR5KSB7IGZvciAo aSBpbiBmaWxlcykgcHJpbnQgaTsgfTsgfSdgOyBcCisrCXNoaWZ0OyBcCisrCWlmIHRlc3QgLXog IiQoRVRBR1NfQVJHUykkJCokJHVuaXF1ZSI7IHRoZW4gOjsgZWxzZSBcCisrCSAgdGVzdCAtbiAi JCR1bmlxdWUiIHx8IHVuaXF1ZT0kJGVtcHR5X2ZpeDsgXAorKwkgIGlmIHRlc3QgJCQjIC1ndCAw OyB0aGVuIFwKKysJICAgICQoRVRBR1MpICQoRVRBR1NGTEFHUykgJChBTV9FVEFHU0ZMQUdTKSAk KEVUQUdTX0FSR1MpIFwKKysJICAgICAgIiQkQCIgJCR1bmlxdWU7IFwKKysJICBlbHNlIFwKKysJ ICAgICQoRVRBR1MpICQoRVRBR1NGTEFHUykgJChBTV9FVEFHU0ZMQUdTKSAkKEVUQUdTX0FSR1Mp IFwKKysJICAgICAgJCR1bmlxdWU7IFwKKysJICBmaTsgXAorKwlmaQorK2N0YWdzOiBDVEFHUwor K0NUQUdTOiBjdGFncy1yZWN1cnNpdmUgJChIRUFERVJTKSAkKFNPVVJDRVMpICAkKFRBR1NfREVQ RU5ERU5DSUVTKSBcCisrCQkkKFRBR1NfRklMRVMpICQoTElTUCkKKysJbGlzdD0nJChTT1VSQ0VT KSAkKEhFQURFUlMpICAkKExJU1ApICQoVEFHU19GSUxFUyknOyBcCisrCXVuaXF1ZT1gZm9yIGkg aW4gJCRsaXN0OyBkbyBcCisrCSAgICBpZiB0ZXN0IC1mICIkJGkiOyB0aGVuIGVjaG8gJCRpOyBl bHNlIGVjaG8gJChzcmNkaXIpLyQkaTsgZmk7IFwKKysJICBkb25lIHwgXAorKwkgICQoQVdLKSAn eyBmaWxlc1skJDBdID0gMTsgbm9uZW1wdHkgPSAxOyB9IFwKKysJICAgICAgRU5EIHsgaWYgKG5v bmVtcHR5KSB7IGZvciAoaSBpbiBmaWxlcykgcHJpbnQgaTsgfTsgfSdgOyBcCisrCXRlc3QgLXog IiQoQ1RBR1NfQVJHUykkJHVuaXF1ZSIgXAorKwkgIHx8ICQoQ1RBR1MpICQoQ1RBR1NGTEFHUykg JChBTV9DVEFHU0ZMQUdTKSAkKENUQUdTX0FSR1MpIFwKKysJICAgICAkJHVuaXF1ZQorKworK0dU QUdTOgorKwloZXJlPWAkKGFtX19jZCkgJCh0b3BfYnVpbGRkaXIpICYmIHB3ZGAgXAorKwkgICYm ICQoYW1fX2NkKSAkKHRvcF9zcmNkaXIpIFwKKysJICAmJiBndGFncyAtaSAkKEdUQUdTX0FSR1Mp ICIkJGhlcmUiCisrCisrZGlzdGNsZWFuLXRhZ3M6CisrCS1ybSAtZiBUQUdTIElEIEdUQUdTIEdS VEFHUyBHU1lNUyBHUEFUSCB0YWdzCisrCisrZGlzdGRpcjogJChESVNURklMRVMpCisrCUBzcmNk aXJzdHJpcD1gZWNobyAiJChzcmNkaXIpIiB8IHNlZCAncy9bXS5bXiQkXFwqXS9cXFxcJi9nJ2A7 IFwKKysJdG9wc3JjZGlyc3RyaXA9YGVjaG8gIiQodG9wX3NyY2RpcikiIHwgc2VkICdzL1tdLlte JCRcXCpdL1xcXFwmL2cnYDsgXAorKwlsaXN0PSckKERJU1RGSUxFUyknOyBcCisrCSAgZGlzdF9m aWxlcz1gZm9yIGZpbGUgaW4gJCRsaXN0OyBkbyBlY2hvICQkZmlsZTsgZG9uZSB8IFwKKysJICBz ZWQgLWUgInN8XiQkc3JjZGlyc3RyaXAvfHw7dCIgXAorKwkgICAgICAtZSAic3xeJCR0b3BzcmNk aXJzdHJpcC98JCh0b3BfYnVpbGRkaXIpL3w7dCJgOyBcCisrCWNhc2UgJCRkaXN0X2ZpbGVzIGlu IFwKKysJICAqLyopICQoTUtESVJfUCkgYGVjaG8gIiQkZGlzdF9maWxlcyIgfCBcCisrCQkJICAg c2VkICcvXC8vIWQ7c3xefCQoZGlzdGRpcikvfDtzLC9bXi9dKiQkLCwnIHwgXAorKwkJCSAgIHNv cnQgLXVgIDs7IFwKKysJZXNhYzsgXAorKwlmb3IgZmlsZSBpbiAkJGRpc3RfZmlsZXM7IGRvIFwK KysJICBpZiB0ZXN0IC1mICQkZmlsZSB8fCB0ZXN0IC1kICQkZmlsZTsgdGhlbiBkPS47IGVsc2Ug ZD0kKHNyY2Rpcik7IGZpOyBcCisrCSAgaWYgdGVzdCAtZCAkJGQvJCRmaWxlOyB0aGVuIFwKKysJ ICAgIGRpcj1gZWNobyAiLyQkZmlsZSIgfCBzZWQgLWUgJ3MsL1teL10qJCQsLCdgOyBcCisrCSAg ICBpZiB0ZXN0IC1kICIkKGRpc3RkaXIpLyQkZmlsZSI7IHRoZW4gXAorKwkgICAgICBmaW5kICIk KGRpc3RkaXIpLyQkZmlsZSIgLXR5cGUgZCAhIC1wZXJtIC03MDAgLWV4ZWMgY2htb2QgdStyd3gg e30gXDs7IFwKKysJICAgIGZpOyBcCisrCSAgICBpZiB0ZXN0IC1kICQoc3JjZGlyKS8kJGZpbGUg JiYgdGVzdCAkJGQgIT0gJChzcmNkaXIpOyB0aGVuIFwKKysJICAgICAgY3AgLWZwUiAkKHNyY2Rp cikvJCRmaWxlICIkKGRpc3RkaXIpJCRkaXIiIHx8IGV4aXQgMTsgXAorKwkgICAgICBmaW5kICIk KGRpc3RkaXIpLyQkZmlsZSIgLXR5cGUgZCAhIC1wZXJtIC03MDAgLWV4ZWMgY2htb2QgdStyd3gg e30gXDs7IFwKKysJICAgIGZpOyBcCisrCSAgICBjcCAtZnBSICQkZC8kJGZpbGUgIiQoZGlzdGRp cikkJGRpciIgfHwgZXhpdCAxOyBcCisrCSAgZWxzZSBcCisrCSAgICB0ZXN0IC1mICIkKGRpc3Rk aXIpLyQkZmlsZSIgXAorKwkgICAgfHwgY3AgLXAgJCRkLyQkZmlsZSAiJChkaXN0ZGlyKS8kJGZp bGUiIFwKKysJICAgIHx8IGV4aXQgMTsgXAorKwkgIGZpOyBcCisrCWRvbmUKKysJQGxpc3Q9JyQo RElTVF9TVUJESVJTKSc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCisrCSAgaWYgdGVzdCAi JCRzdWJkaXIiID0gLjsgdGhlbiA6OyBlbHNlIFwKKysJICAgIHRlc3QgLWQgIiQoZGlzdGRpcikv JCRzdWJkaXIiIFwKKysJICAgIHx8ICQoTUtESVJfUCkgIiQoZGlzdGRpcikvJCRzdWJkaXIiIFwK KysJICAgIHx8IGV4aXQgMTsgXAorKwkgIGZpOyBcCisrCWRvbmUKKysJQGxpc3Q9JyQoRElTVF9T VUJESVJTKSc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCisrCSAgaWYgdGVzdCAiJCRzdWJk aXIiID0gLjsgdGhlbiA6OyBlbHNlIFwKKysJICAgIGRpcjE9JCRzdWJkaXI7IGRpcjI9IiQoZGlz dGRpcikvJCRzdWJkaXIiOyBcCisrCSAgICAkKGFtX19yZWxhdGl2aXplKTsgXAorKwkgICAgbmV3 X2Rpc3RkaXI9JCRyZWxkaXI7IFwKKysJICAgIGRpcjE9JCRzdWJkaXI7IGRpcjI9IiQodG9wX2Rp c3RkaXIpIjsgXAorKwkgICAgJChhbV9fcmVsYXRpdml6ZSk7IFwKKysJICAgIG5ld190b3BfZGlz dGRpcj0kJHJlbGRpcjsgXAorKwkgICAgZWNobyAiIChjZCAkJHN1YmRpciAmJiAkKE1BS0UpICQo QU1fTUFLRUZMQUdTKSB0b3BfZGlzdGRpcj0iJCRuZXdfdG9wX2Rpc3RkaXIiIGRpc3RkaXI9IiQk bmV3X2Rpc3RkaXIiIFxcIjsgXAorKwkgICAgZWNobyAiICAgICBhbV9fcmVtb3ZlX2Rpc3RkaXI9 OiBhbV9fc2tpcF9sZW5ndGhfY2hlY2s9OiBhbV9fc2tpcF9tb2RlX2ZpeD06IGRpc3RkaXIpIjsg XAorKwkgICAgKCQoYW1fX2NkKSAkJHN1YmRpciAmJiBcCisrCSAgICAgICQoTUFLRSkgJChBTV9N QUtFRkxBR1MpIFwKKysJICAgICAgICB0b3BfZGlzdGRpcj0iJCRuZXdfdG9wX2Rpc3RkaXIiIFwK KysJICAgICAgICBkaXN0ZGlyPSIkJG5ld19kaXN0ZGlyIiBcCisrCQlhbV9fcmVtb3ZlX2Rpc3Rk aXI9OiBcCisrCQlhbV9fc2tpcF9sZW5ndGhfY2hlY2s9OiBcCisrCQlhbV9fc2tpcF9tb2RlX2Zp eD06IFwKKysJICAgICAgICBkaXN0ZGlyKSBcCisrCSAgICAgIHx8IGV4aXQgMTsgXAorKwkgIGZp OyBcCisrCWRvbmUKKytjaGVjay1hbTogYWxsLWFtCisrY2hlY2s6IGNoZWNrLXJlY3Vyc2l2ZQor K2FsbC1hbTogTWFrZWZpbGUKKytpbnN0YWxsZGlyczogaW5zdGFsbGRpcnMtcmVjdXJzaXZlCisr aW5zdGFsbGRpcnMtYW06CisraW5zdGFsbDogaW5zdGFsbC1yZWN1cnNpdmUKKytpbnN0YWxsLWV4 ZWM6IGluc3RhbGwtZXhlYy1yZWN1cnNpdmUKKytpbnN0YWxsLWRhdGE6IGluc3RhbGwtZGF0YS1y ZWN1cnNpdmUKKyt1bmluc3RhbGw6IHVuaW5zdGFsbC1yZWN1cnNpdmUKKysKKytpbnN0YWxsLWFt OiBhbGwtYW0KKysJQCQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGluc3RhbGwtZXhlYy1hbSBpbnN0 YWxsLWRhdGEtYW0KKysKKytpbnN0YWxsY2hlY2s6IGluc3RhbGxjaGVjay1yZWN1cnNpdmUKKytp bnN0YWxsLXN0cmlwOgorKwkkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBJTlNUQUxMX1BST0dSQU09 IiQoSU5TVEFMTF9TVFJJUF9QUk9HUkFNKSIgXAorKwkgIGluc3RhbGxfc2hfUFJPR1JBTT0iJChJ TlNUQUxMX1NUUklQX1BST0dSQU0pIiBJTlNUQUxMX1NUUklQX0ZMQUc9LXMgXAorKwkgIGB0ZXN0 IC16ICckKFNUUklQKScgfHwgXAorKwkgICAgZWNobyAiSU5TVEFMTF9QUk9HUkFNX0VOVj1TVFJJ UFBST0c9JyQoU1RSSVApJyJgIGluc3RhbGwKKyttb3N0bHljbGVhbi1nZW5lcmljOgorKworK2Ns ZWFuLWdlbmVyaWM6CisrCisrZGlzdGNsZWFuLWdlbmVyaWM6CisrCS10ZXN0IC16ICIkKENPTkZJ R19DTEVBTl9GSUxFUykiIHx8IHJtIC1mICQoQ09ORklHX0NMRUFOX0ZJTEVTKQorKwktdGVzdCAu ID0gIiQoc3JjZGlyKSIgfHwgdGVzdCAteiAiJChDT05GSUdfQ0xFQU5fVlBBVEhfRklMRVMpIiB8 fCBybSAtZiAkKENPTkZJR19DTEVBTl9WUEFUSF9GSUxFUykKKysKKyttYWludGFpbmVyLWNsZWFu LWdlbmVyaWM6CisrCUBlY2hvICJUaGlzIGNvbW1hbmQgaXMgaW50ZW5kZWQgZm9yIG1haW50YWlu ZXJzIHRvIHVzZSIKKysJQGVjaG8gIml0IGRlbGV0ZXMgZmlsZXMgdGhhdCBtYXkgcmVxdWlyZSBz cGVjaWFsIHRvb2xzIHRvIHJlYnVpbGQuIgorKwktdGVzdCAteiAiJChNQUlOVEFJTkVSQ0xFQU5G SUxFUykiIHx8IHJtIC1mICQoTUFJTlRBSU5FUkNMRUFORklMRVMpCisrY2xlYW46IGNsZWFuLXJl Y3Vyc2l2ZQorKworK2NsZWFuLWFtOiBjbGVhbi1nZW5lcmljIGNsZWFuLWxpYnRvb2wgbW9zdGx5 Y2xlYW4tYW0KKysKKytkaXN0Y2xlYW46IGRpc3RjbGVhbi1yZWN1cnNpdmUKKysJLXJtIC1mIE1h a2VmaWxlCisrZGlzdGNsZWFuLWFtOiBjbGVhbi1hbSBkaXN0Y2xlYW4tZ2VuZXJpYyBkaXN0Y2xl YW4tdGFncworKworK2R2aTogZHZpLXJlY3Vyc2l2ZQorKworK2R2aS1hbToKKysKKytodG1sOiBo dG1sLXJlY3Vyc2l2ZQorKworK2h0bWwtYW06CisrCisraW5mbzogaW5mby1yZWN1cnNpdmUKKysK KytpbmZvLWFtOgorKworK2luc3RhbGwtZGF0YS1hbToKKysKKytpbnN0YWxsLWR2aTogaW5zdGFs bC1kdmktcmVjdXJzaXZlCisrCisraW5zdGFsbC1kdmktYW06CisrCisraW5zdGFsbC1leGVjLWFt OgorKworK2luc3RhbGwtaHRtbDogaW5zdGFsbC1odG1sLXJlY3Vyc2l2ZQorKworK2luc3RhbGwt aHRtbC1hbToKKysKKytpbnN0YWxsLWluZm86IGluc3RhbGwtaW5mby1yZWN1cnNpdmUKKysKKytp bnN0YWxsLWluZm8tYW06CisrCisraW5zdGFsbC1tYW46CisrCisraW5zdGFsbC1wZGY6IGluc3Rh bGwtcGRmLXJlY3Vyc2l2ZQorKworK2luc3RhbGwtcGRmLWFtOgorKworK2luc3RhbGwtcHM6IGlu c3RhbGwtcHMtcmVjdXJzaXZlCisrCisraW5zdGFsbC1wcy1hbToKKysKKytpbnN0YWxsY2hlY2st YW06CisrCisrbWFpbnRhaW5lci1jbGVhbjogbWFpbnRhaW5lci1jbGVhbi1yZWN1cnNpdmUKKysJ LXJtIC1mIE1ha2VmaWxlCisrbWFpbnRhaW5lci1jbGVhbi1hbTogZGlzdGNsZWFuLWFtIG1haW50 YWluZXItY2xlYW4tZ2VuZXJpYworKworK21vc3RseWNsZWFuOiBtb3N0bHljbGVhbi1yZWN1cnNp dmUKKysKKyttb3N0bHljbGVhbi1hbTogbW9zdGx5Y2xlYW4tZ2VuZXJpYyBtb3N0bHljbGVhbi1s aWJ0b29sCisrCisrcGRmOiBwZGYtcmVjdXJzaXZlCisrCisrcGRmLWFtOgorKworK3BzOiBwcy1y ZWN1cnNpdmUKKysKKytwcy1hbToKKysKKyt1bmluc3RhbGwtYW06CisrCisrLk1BS0U6ICQoUkVD VVJTSVZFX0NMRUFOX1RBUkdFVFMpICQoUkVDVVJTSVZFX1RBUkdFVFMpIGN0YWdzLXJlY3Vyc2l2 ZSBcCisrCWluc3RhbGwtYW0gaW5zdGFsbC1zdHJpcCB0YWdzLXJlY3Vyc2l2ZQorKworKy5QSE9O WTogJChSRUNVUlNJVkVfQ0xFQU5fVEFSR0VUUykgJChSRUNVUlNJVkVfVEFSR0VUUykgQ1RBR1Mg R1RBR1MgXAorKwlhbGwgYWxsLWFtIGNoZWNrIGNoZWNrLWFtIGNsZWFuIGNsZWFuLWdlbmVyaWMg Y2xlYW4tbGlidG9vbCBcCisrCWN0YWdzIGN0YWdzLXJlY3Vyc2l2ZSBkaXN0Y2xlYW4gZGlzdGNs ZWFuLWdlbmVyaWMgXAorKwlkaXN0Y2xlYW4tbGlidG9vbCBkaXN0Y2xlYW4tdGFncyBkaXN0ZGly IGR2aSBkdmktYW0gaHRtbCBcCisrCWh0bWwtYW0gaW5mbyBpbmZvLWFtIGluc3RhbGwgaW5zdGFs bC1hbSBpbnN0YWxsLWRhdGEgXAorKwlpbnN0YWxsLWRhdGEtYW0gaW5zdGFsbC1kdmkgaW5zdGFs bC1kdmktYW0gaW5zdGFsbC1leGVjIFwKKysJaW5zdGFsbC1leGVjLWFtIGluc3RhbGwtaHRtbCBp bnN0YWxsLWh0bWwtYW0gaW5zdGFsbC1pbmZvIFwKKysJaW5zdGFsbC1pbmZvLWFtIGluc3RhbGwt bWFuIGluc3RhbGwtcGRmIGluc3RhbGwtcGRmLWFtIFwKKysJaW5zdGFsbC1wcyBpbnN0YWxsLXBz LWFtIGluc3RhbGwtc3RyaXAgaW5zdGFsbGNoZWNrIFwKKysJaW5zdGFsbGNoZWNrLWFtIGluc3Rh bGxkaXJzIGluc3RhbGxkaXJzLWFtIG1haW50YWluZXItY2xlYW4gXAorKwltYWludGFpbmVyLWNs ZWFuLWdlbmVyaWMgbW9zdGx5Y2xlYW4gbW9zdGx5Y2xlYW4tZ2VuZXJpYyBcCisrCW1vc3RseWNs ZWFuLWxpYnRvb2wgcGRmIHBkZi1hbSBwcyBwcy1hbSB0YWdzIHRhZ3MtcmVjdXJzaXZlIFwKKysJ dW5pbnN0YWxsIHVuaW5zdGFsbC1hbQorKworK0BTRVRfTUFLRUAKKysKKysjIFRlbGwgdmVyc2lv bnMgWzMuNTksMy42Mykgb2YgR05VIG1ha2UgdG8gbm90IGV4cG9ydCBhbGwgdmFyaWFibGVzLgor KyMgT3RoZXJ3aXNlIGEgc3lzdGVtIGxpbWl0IChmb3IgU3lzViBhdCBsZWFzdCkgbWF5IGJlIGV4 Y2VlZGVkLgorKy5OT0VYUE9SVDoKK2RpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9idWlsZC91 bml4L01ha2VmaWxlLmFtIHNvY2ktMy4wLjBfdHJlcDMwMC9idWlsZC91bml4L01ha2VmaWxlLmFt CistLS0gc29jaS0zLjAuMF80LXBhY2svYnVpbGQvdW5peC9NYWtlZmlsZS5hbQkxOTcwLTAxLTAx IDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAorKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9idWlsZC91 bml4L01ha2VmaWxlLmFtCTIwMDktMDQtMTYgMTk6Mzc6MDguMDAwMDAwMDAwICswMjAwCitAQCAt MCwwICsxLDExIEBACisrIyMgYnVpbGQvdW5peCBzdWItZGlyZWN0b3J5CisraW5jbHVkZSAkKHRv cF9zcmNkaXIpL01ha2VmaWxlLmNvbW1vbgorKworK01BSU5UQUlORVJDTEVBTkZJTEVTID0gTWFr ZWZpbGUuaW4KKysKKysjRVhUUkFfRElTVF9GT1JfU09DSV9DT01QQVRJQklMSVRZID0gIC5fZmlu ZC1ib29zdC50Y2wgLl9idWlsZC1teXNxbC50Y2wgLl9idWlsZC1wb3N0Z3Jlc3FsLnRjbCAuX2V4 ZWN1dGUudGNsIC5fYnVpbGQtY29yZS50Y2wgLl9pbnN0YWxsLnRjbCAuX3BhcnNlLXBhcmFtZXRl cnMudGNsCisrCisrRVhUUkFfRElTVCA9IGJ1aWxkLWNvcmUudGNsIGJ1aWxkLW9yYWNsZS50Y2wg YnVpbGQudGNsIGluc3RhbGwudGNsIFwKKysJcGFyc2UtcGFyYW1ldGVycy50Y2wgZmluZC1ib29z dC50Y2wgYnVpbGQtbXlzcWwudGNsIFwKKysJYnVpbGQtcG9zdGdyZXNxbC50Y2wgZXhlY3V0ZS50 Y2wgXAorKwkkKEVYVFJBX0RJU1RfRk9SX1NPQ0lfQ09NUEFUSUJJTElUWSkKK2RpZmYgLU51ciBz b2NpLTMuMC4wXzQtcGFjay9idWlsZC91bml4L01ha2VmaWxlLmluIHNvY2ktMy4wLjBfdHJlcDMw MC9idWlsZC91bml4L01ha2VmaWxlLmluCistLS0gc29jaS0zLjAuMF80LXBhY2svYnVpbGQvdW5p eC9NYWtlZmlsZS5pbgkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAorKysrIHNv Y2ktMy4wLjBfdHJlcDMwMC9idWlsZC91bml4L01ha2VmaWxlLmluCTIwMTAtMDEtMjMgMTQ6NDQ6 NTEuMDAwMDAwMDAwICswMTAwCitAQCAtMCwwICsxLDQyMCBAQAorKyMgTWFrZWZpbGUuaW4gZ2Vu ZXJhdGVkIGJ5IGF1dG9tYWtlIDEuMTEuMSBmcm9tIE1ha2VmaWxlLmFtLgorKyMgQGNvbmZpZ3Vy ZV9pbnB1dEAKKysKKysjIENvcHlyaWdodCAoQykgMTk5NCwgMTk5NSwgMTk5NiwgMTk5NywgMTk5 OCwgMTk5OSwgMjAwMCwgMjAwMSwgMjAwMiwKKysjIDIwMDMsIDIwMDQsIDIwMDUsIDIwMDYsIDIw MDcsIDIwMDgsIDIwMDkgIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwKKysjIEluYy4KKysjIFRo aXMgTWFrZWZpbGUuaW4gaXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRh dGlvbgorKyMgZ2l2ZXMgdW5saW1pdGVkIHBlcm1pc3Npb24gdG8gY29weSBhbmQvb3IgZGlzdHJp YnV0ZSBpdCwKKysjIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb25zLCBhcyBsb25nIGFzIHRo aXMgbm90aWNlIGlzIHByZXNlcnZlZC4KKysKKysjIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRl ZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorKyMgYnV0IFdJVEhPVVQgQU5Z IFdBUlJBTlRZLCB0byB0aGUgZXh0ZW50IHBlcm1pdHRlZCBieSBsYXc7IHdpdGhvdXQKKysjIGV2 ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9S IEEKKysjIFBBUlRJQ1VMQVIgUFVSUE9TRS4KKysKKytAU0VUX01BS0VACisrVlBBVEggPSBAc3Jj ZGlyQAorK3BrZ2RhdGFkaXIgPSAkKGRhdGFkaXIpL0BQQUNLQUdFQAorK3BrZ2luY2x1ZGVkaXIg PSAkKGluY2x1ZGVkaXIpL0BQQUNLQUdFQAorK3BrZ2xpYmRpciA9ICQobGliZGlyKS9AUEFDS0FH RUAKKytwa2dsaWJleGVjZGlyID0gJChsaWJleGVjZGlyKS9AUEFDS0FHRUAKKythbV9fY2QgPSBD RFBBVEg9IiQke1pTSF9WRVJTSU9OKy59JChQQVRIX1NFUEFSQVRPUikiICYmIGNkCisraW5zdGFs bF9zaF9EQVRBID0gJChpbnN0YWxsX3NoKSAtYyAtbSA2NDQKKytpbnN0YWxsX3NoX1BST0dSQU0g PSAkKGluc3RhbGxfc2gpIC1jCisraW5zdGFsbF9zaF9TQ1JJUFQgPSAkKGluc3RhbGxfc2gpIC1j CisrSU5TVEFMTF9IRUFERVIgPSAkKElOU1RBTExfREFUQSkKKyt0cmFuc2Zvcm0gPSAkKHByb2dy YW1fdHJhbnNmb3JtX25hbWUpCisrTk9STUFMX0lOU1RBTEwgPSA6CisrUFJFX0lOU1RBTEwgPSA6 CisrUE9TVF9JTlNUQUxMID0gOgorK05PUk1BTF9VTklOU1RBTEwgPSA6CisrUFJFX1VOSU5TVEFM TCA9IDoKKytQT1NUX1VOSU5TVEFMTCA9IDoKKytidWlsZF90cmlwbGV0ID0gQGJ1aWxkQAorK2hv c3RfdHJpcGxldCA9IEBob3N0QAorK0RJU1RfQ09NTU9OID0gJChzcmNkaXIpL01ha2VmaWxlLmFt ICQoc3JjZGlyKS9NYWtlZmlsZS5pbiBcCisrCSQodG9wX3NyY2RpcikvTWFrZWZpbGUuY29tbW9u Cisrc3ViZGlyID0gYnVpbGQvdW5peAorK0FDTE9DQUxfTTQgPSAkKHRvcF9zcmNkaXIpL2FjbG9j YWwubTQKKythbV9fYWNsb2NhbF9tNF9kZXBzID0gJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfYm9v c3QubTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9teXNxbC5tNCBcCisrCSQodG9wX3Ny Y2RpcikvY29uZmlnL2F4X29yYWNsZV9vY2kubTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9h eF9wb3N0Z3Jlc3FsLm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcvY3BwdW5pdC5tNCBcCisr CSQodG9wX3NyY2RpcikvY29uZmlnL2xpYnRvb2wubTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZp Zy9sdG9wdGlvbnMubTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9sdHN1Z2FyLm00IFwKKysJ JCh0b3Bfc3JjZGlyKS9jb25maWcvbHR2ZXJzaW9uLm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25m aWcvbHR+b2Jzb2xldGUubTQgJCh0b3Bfc3JjZGlyKS9jb25maWd1cmUuYWMKKythbV9fY29uZmln dXJlX2RlcHMgPSAkKGFtX19hY2xvY2FsX200X2RlcHMpICQoQ09ORklHVVJFX0RFUEVOREVOQ0lF UykgXAorKwkkKEFDTE9DQUxfTTQpCisrbWtpbnN0YWxsZGlycyA9ICQoaW5zdGFsbF9zaCkgLWQK KytDT05GSUdfSEVBREVSID0gJCh0b3BfYnVpbGRkaXIpL3NvY2kvY29uZmlnLmgKKytDT05GSUdf Q0xFQU5fRklMRVMgPQorK0NPTkZJR19DTEVBTl9WUEFUSF9GSUxFUyA9CisrU09VUkNFUyA9Cisr RElTVF9TT1VSQ0VTID0KKytESVNURklMRVMgPSAkKERJU1RfQ09NTU9OKSAkKERJU1RfU09VUkNF UykgJChURVhJTkZPUykgJChFWFRSQV9ESVNUKQorK0FDTE9DQUwgPSBAQUNMT0NBTEAKKytBTVRB UiA9IEBBTVRBUkAKKytBUiA9IEBBUkAKKytBVVRPQ09ORiA9IEBBVVRPQ09ORkAKKytBVVRPSEVB REVSID0gQEFVVE9IRUFERVJACisrQVVUT01BS0UgPSBAQVVUT01BS0VACisrQVdLID0gQEFXS0AK KytCT09TVF9DRkxBR1MgPSBAQk9PU1RfQ0ZMQUdTQAorK0JPT1NUX0RBVEVfVElNRV9MSUIgPSBA Qk9PU1RfREFURV9USU1FX0xJQkAKKytCT09TVF9GSUxFU1lTVEVNX0xJQiA9IEBCT09TVF9GSUxF U1lTVEVNX0xJQkAKKytCT09TVF9JT1NUUkVBTVNfTElCID0gQEJPT1NUX0lPU1RSRUFNU19MSUJA CisrQk9PU1RfTElCUyA9IEBCT09TVF9MSUJTQAorK0JPT1NUX01QSV9MSUIgPSBAQk9PU1RfTVBJ X0xJQkAKKytCT09TVF9NUElfUFlUSE9OX0xJQiA9IEBCT09TVF9NUElfUFlUSE9OX0xJQkAKKytC T09TVF9QUk9HUkFNX09QVElPTlNfTElCID0gQEJPT1NUX1BST0dSQU1fT1BUSU9OU19MSUJACisr Qk9PU1RfUFlUSE9OX0xJQiA9IEBCT09TVF9QWVRIT05fTElCQAorK0JPT1NUX1JFR0VYX0xJQiA9 IEBCT09TVF9SRUdFWF9MSUJACisrQk9PU1RfU0VSSUFMSVpBVElPTl9MSUIgPSBAQk9PU1RfU0VS SUFMSVpBVElPTl9MSUJACisrQk9PU1RfU0lHTkFMU19MSUIgPSBAQk9PU1RfU0lHTkFMU19MSUJA CisrQk9PU1RfU1lTVEVNX0xJQiA9IEBCT09TVF9TWVNURU1fTElCQAorK0JPT1NUX1RIUkVBRF9M SUIgPSBAQk9PU1RfVEhSRUFEX0xJQkAKKytCT09TVF9VTklUX1RFU1RfRlJBTUVXT1JLX0xJQiA9 IEBCT09TVF9VTklUX1RFU1RfRlJBTUVXT1JLX0xJQkAKKytCT09TVF9WRVJTSU9OID0gQEJPT1NU X1ZFUlNJT05ACisrQk9PU1RfV1NFUklBTElaQVRJT05fTElCID0gQEJPT1NUX1dTRVJJQUxJWkFU SU9OX0xJQkAKKytDQyA9IEBDQ0AKKytDQ0RFUE1PREUgPSBAQ0NERVBNT0RFQAorK0NGTEFHUyA9 IEBDRkxBR1NACisrQ1BQID0gQENQUEAKKytDUFBGTEFHUyA9IEBDUFBGTEFHU0AKKytDUFBVTklU X0NGTEFHUyA9IEBDUFBVTklUX0NGTEFHU0AKKytDUFBVTklUX0NPTkZJRyA9IEBDUFBVTklUX0NP TkZJR0AKKytDUFBVTklUX0xJQlMgPSBAQ1BQVU5JVF9MSUJTQAorK0NQUFVOSVRfVkVSU0lPTiA9 IEBDUFBVTklUX1ZFUlNJT05ACisrQ1hYID0gQENYWEAKKytDWFhDUFAgPSBAQ1hYQ1BQQAorK0NY WERFUE1PREUgPSBAQ1hYREVQTU9ERUAKKytDWFhGTEFHUyA9IEBDWFhGTEFHU0AKKytDWUdQQVRI X1cgPSBAQ1lHUEFUSF9XQAorK0RFRlMgPSBAREVGU0AKKytERVBESVIgPSBAREVQRElSQAorK0RT WU1VVElMID0gQERTWU1VVElMQAorK0RVTVBCSU4gPSBARFVNUEJJTkAKKytFQ0hPX0MgPSBARUNI T19DQAorK0VDSE9fTiA9IEBFQ0hPX05ACisrRUNIT19UID0gQEVDSE9fVEAKKytFR1JFUCA9IEBF R1JFUEAKKytFWEVFWFQgPSBARVhFRVhUQAorK0ZHUkVQID0gQEZHUkVQQAorK0dFTkVSSUNfTElC UkFSWV9WRVJTSU9OID0gQEdFTkVSSUNfTElCUkFSWV9WRVJTSU9OQAorK0dSRVAgPSBAR1JFUEAK KytJTlNUQUxMID0gQElOU1RBTExACisrSU5TVEFMTF9EQVRBID0gQElOU1RBTExfREFUQUAKKytJ TlNUQUxMX1BST0dSQU0gPSBASU5TVEFMTF9QUk9HUkFNQAorK0lOU1RBTExfU0NSSVBUID0gQElO U1RBTExfU0NSSVBUQAorK0lOU1RBTExfU1RSSVBfUFJPR1JBTSA9IEBJTlNUQUxMX1NUUklQX1BS T0dSQU1ACisrTEQgPSBATERACisrTERGTEFHUyA9IEBMREZMQUdTQAorK0xJQk9CSlMgPSBATElC T0JKU0AKKytMSUJTID0gQExJQlNACisrTElCVE9PTCA9IEBMSUJUT09MQAorK0xJUE8gPSBATElQ T0AKKytMTl9TID0gQExOX1NACisrTFRMSUJPQkpTID0gQExUTElCT0JKU0AKKytNQUtFSU5GTyA9 IEBNQUtFSU5GT0AKKytNS0RJUl9QID0gQE1LRElSX1BACisrTVlTUUxfQ0ZMQUdTID0gQE1ZU1FM X0NGTEFHU0AKKytNWVNRTF9DX0xJQiA9IEBNWVNRTF9DX0xJQkAKKytNWVNRTF9ESVJTID0gQE1Z U1FMX0RJUlNACisrTVlTUUxfTElCUyA9IEBNWVNRTF9MSUJTQAorK01ZU1FMX1ZFUlNJT04gPSBA TVlTUUxfVkVSU0lPTkAKKytOTSA9IEBOTUAKKytOTUVESVQgPSBATk1FRElUQAorK09CSkRVTVAg PSBAT0JKRFVNUEAKKytPQkpFWFQgPSBAT0JKRVhUQAorK09SQUNMRV9ESVJTID0gQE9SQUNMRV9E SVJTQAorK09SQUNMRV9PQ0lfQ0ZMQUdTID0gQE9SQUNMRV9PQ0lfQ0ZMQUdTQAorK09SQUNMRV9P Q0lfTERGTEFHUyA9IEBPUkFDTEVfT0NJX0xERkxBR1NACisrT1JBQ0xFX09DSV9WRVJTSU9OID0g QE9SQUNMRV9PQ0lfVkVSU0lPTkAKKytPVE9PTCA9IEBPVE9PTEAKKytPVE9PTDY0ID0gQE9UT09M NjRACisrUEFDS0FHRSA9IEBQQUNLQUdFQAorK1BBQ0tBR0VfQlVHUkVQT1JUID0gQFBBQ0tBR0Vf QlVHUkVQT1JUQAorK1BBQ0tBR0VfTkFNRSA9IEBQQUNLQUdFX05BTUVACisrUEFDS0FHRV9TVFJJ TkcgPSBAUEFDS0FHRV9TVFJJTkdACisrUEFDS0FHRV9UQVJOQU1FID0gQFBBQ0tBR0VfVEFSTkFN RUAKKytQQUNLQUdFX1ZFUlNJT04gPSBAUEFDS0FHRV9WRVJTSU9OQAorK1BBVEhfU0VQQVJBVE9S ID0gQFBBVEhfU0VQQVJBVE9SQAorK1BFUkwgPSBAUEVSTEAKKytQR19DT05GSUcgPSBAUEdfQ09O RklHQAorK1BPU1RHUkVTUUxfQ0ZMQUdTID0gQFBPU1RHUkVTUUxfQ0ZMQUdTQAorK1BPU1RHUkVT UUxfRElSUyA9IEBQT1NUR1JFU1FMX0RJUlNACisrUE9TVEdSRVNRTF9MREZMQUdTID0gQFBPU1RH UkVTUUxfTERGTEFHU0AKKytQT1NUR1JFU1FMX1ZFUlNJT04gPSBAUE9TVEdSRVNRTF9WRVJTSU9O QAorK1JBTkxJQiA9IEBSQU5MSUJACisrUlBNX1JFTEVBU0UgPSBAUlBNX1JFTEVBU0VACisrU0VE ID0gQFNFREAKKytTRVRfTUFLRSA9IEBTRVRfTUFLRUAKKytTSEVMTCA9IEBTSEVMTEAKKytTT0NJ X0hFQURFUlNfQlVSSUVEID0gQFNPQ0lfSEVBREVSU19CVVJJRURACisrU09DSV9NWVNRTF9IRUFE RVJTX0JVUklFRCA9IEBTT0NJX01ZU1FMX0hFQURFUlNfQlVSSUVEQAorK1NPQ0lfUE9TVEdSRVNR TF9IRUFERVJTX0JVUklFRCA9IEBTT0NJX1BPU1RHUkVTUUxfSEVBREVSU19CVVJJRURACisrU1RS SVAgPSBAU1RSSVBACisrVVBMT0FEX0NPTU1BTkQgPSBAVVBMT0FEX0NPTU1BTkRACisrVkVSU0lP TiA9IEBWRVJTSU9OQAorK2Fic19idWlsZGRpciA9IEBhYnNfYnVpbGRkaXJACisrYWJzX3NyY2Rp ciA9IEBhYnNfc3JjZGlyQAorK2Fic190b3BfYnVpbGRkaXIgPSBAYWJzX3RvcF9idWlsZGRpckAK KythYnNfdG9wX3NyY2RpciA9IEBhYnNfdG9wX3NyY2RpckAKKythY19jdF9DQyA9IEBhY19jdF9D Q0AKKythY19jdF9DWFggPSBAYWNfY3RfQ1hYQAorK2FjX2N0X0RVTVBCSU4gPSBAYWNfY3RfRFVN UEJJTkAKKythbV9faW5jbHVkZSA9IEBhbV9faW5jbHVkZUAKKythbV9fbGVhZGluZ19kb3QgPSBA YW1fX2xlYWRpbmdfZG90QAorK2FtX19xdW90ZSA9IEBhbV9fcXVvdGVACisrYW1fX3RhciA9IEBh bV9fdGFyQAorK2FtX191bnRhciA9IEBhbV9fdW50YXJACisrYmluZGlyID0gQGJpbmRpckAKKyti dWlsZCA9IEBidWlsZEAKKytidWlsZF9hbGlhcyA9IEBidWlsZF9hbGlhc0AKKytidWlsZF9jcHUg PSBAYnVpbGRfY3B1QAorK2J1aWxkX29zID0gQGJ1aWxkX29zQAorK2J1aWxkX3ZlbmRvciA9IEBi dWlsZF92ZW5kb3JACisrYnVpbGRkaXIgPSBAYnVpbGRkaXJACisrZGF0YWRpciA9IEBkYXRhZGly QAorK2RhdGFyb290ZGlyID0gQGRhdGFyb290ZGlyQAorK2RpZmZfb2sgPSBAZGlmZl9va0AKKytk b2NkaXIgPSBAZG9jZGlyQAorK2RveHlnZW5fb2sgPSBAZG94eWdlbl9va0AKKytkdmlkaXIgPSBA ZHZpZGlyQAorK2R2aXBzX29rID0gQGR2aXBzX29rQAorK2V4ZWNfcHJlZml4ID0gQGV4ZWNfcHJl Zml4QAorK2dzX29rID0gQGdzX29rQAorK2hvc3QgPSBAaG9zdEAKKytob3N0X2FsaWFzID0gQGhv c3RfYWxpYXNACisraG9zdF9jcHUgPSBAaG9zdF9jcHVACisraG9zdF9vcyA9IEBob3N0X29zQAor K2hvc3RfdmVuZG9yID0gQGhvc3RfdmVuZG9yQAorK2h0bWxkaXIgPSBAaHRtbGRpckAKKytpbmNs dWRlZGlyID0gQGluY2x1ZGVkaXJACisraW5mb2RpciA9IEBpbmZvZGlyQAorK2luc3RhbGxfc2gg PSBAaW5zdGFsbF9zaEAKKytsYXRleF9vayA9IEBsYXRleF9va0AKKytsaWJkaXIgPSBAbGliZGly QAorK2xpYmV4ZWNkaXIgPSBAbGliZXhlY2RpckAKKytsb2NhbGVkaXIgPSBAbG9jYWxlZGlyQAor K2xvY2Fsc3RhdGVkaXIgPSBAbG9jYWxzdGF0ZWRpckAKKytsdF9FQ0hPID0gQGx0X0VDSE9ACisr bWFuZGlyID0gQG1hbmRpckAKKytta2Rpcl9wID0gQG1rZGlyX3BACisrb2xkaW5jbHVkZWRpciA9 IEBvbGRpbmNsdWRlZGlyQAorK3BkZmRpciA9IEBwZGZkaXJACisrcHJlZml4ID0gQHByZWZpeEAK Kytwcm9ncmFtX3RyYW5zZm9ybV9uYW1lID0gQHByb2dyYW1fdHJhbnNmb3JtX25hbWVACisrcHNk aXIgPSBAcHNkaXJACisrc2JpbmRpciA9IEBzYmluZGlyQAorK3NlZF9vayA9IEBzZWRfb2tACisr c2hhcmVkc3RhdGVkaXIgPSBAc2hhcmVkc3RhdGVkaXJACisrc3JjZGlyID0gQHNyY2RpckAKKytz eXNjb25mZGlyID0gQHN5c2NvbmZkaXJACisrdGFyZ2V0X2FsaWFzID0gQHRhcmdldF9hbGlhc0AK Kyt0b3BfYnVpbGRfcHJlZml4ID0gQHRvcF9idWlsZF9wcmVmaXhACisrdG9wX2J1aWxkZGlyID0g QHRvcF9idWlsZGRpckAKKyt0b3Bfc3JjZGlyID0gQHRvcF9zcmNkaXJACisrQU1fQ1BQRkxBR1Mg PSAtSSQodG9wX2J1aWxkZGlyKSAtSSQodG9wX3NyY2RpcikKKytNQUlOVEFJTkVSQ0xFQU5GSUxF UyA9IE1ha2VmaWxlLmluCisrCisrI0VYVFJBX0RJU1RfRk9SX1NPQ0lfQ09NUEFUSUJJTElUWSA9 ICAuX2ZpbmQtYm9vc3QudGNsIC5fYnVpbGQtbXlzcWwudGNsIC5fYnVpbGQtcG9zdGdyZXNxbC50 Y2wgLl9leGVjdXRlLnRjbCAuX2J1aWxkLWNvcmUudGNsIC5faW5zdGFsbC50Y2wgLl9wYXJzZS1w YXJhbWV0ZXJzLnRjbAorK0VYVFJBX0RJU1QgPSBidWlsZC1jb3JlLnRjbCBidWlsZC1vcmFjbGUu dGNsIGJ1aWxkLnRjbCBpbnN0YWxsLnRjbCBcCisrCXBhcnNlLXBhcmFtZXRlcnMudGNsIGZpbmQt Ym9vc3QudGNsIGJ1aWxkLW15c3FsLnRjbCBcCisrCWJ1aWxkLXBvc3RncmVzcWwudGNsIGV4ZWN1 dGUudGNsIFwKKysJJChFWFRSQV9ESVNUX0ZPUl9TT0NJX0NPTVBBVElCSUxJVFkpCisrCisrYWxs OiBhbGwtYW0KKysKKysuU1VGRklYRVM6CisrJChzcmNkaXIpL01ha2VmaWxlLmluOiAgJChzcmNk aXIpL01ha2VmaWxlLmFtICQodG9wX3NyY2RpcikvTWFrZWZpbGUuY29tbW9uICQoYW1fX2NvbmZp Z3VyZV9kZXBzKQorKwlAZm9yIGRlcCBpbiAkPzsgZG8gXAorKwkgIGNhc2UgJyQoYW1fX2NvbmZp Z3VyZV9kZXBzKScgaW4gXAorKwkgICAgKiQkZGVwKikgXAorKwkgICAgICAoIGNkICQodG9wX2J1 aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaCApIFwKKysJICAg ICAgICAmJiB7IGlmIHRlc3QgLWYgJEA7IHRoZW4gZXhpdCAwOyBlbHNlIGJyZWFrOyBmaTsgfTsg XAorKwkgICAgICBleGl0IDE7OyBcCisrCSAgZXNhYzsgXAorKwlkb25lOyBcCisrCWVjaG8gJyBj ZCAkKHRvcF9zcmNkaXIpICYmICQoQVVUT01BS0UpIC0tZ251IGJ1aWxkL3VuaXgvTWFrZWZpbGUn OyBcCisrCSQoYW1fX2NkKSAkKHRvcF9zcmNkaXIpICYmIFwKKysJICAkKEFVVE9NQUtFKSAtLWdu dSBidWlsZC91bml4L01ha2VmaWxlCisrLlBSRUNJT1VTOiBNYWtlZmlsZQorK01ha2VmaWxlOiAk KHNyY2RpcikvTWFrZWZpbGUuaW4gJCh0b3BfYnVpbGRkaXIpL2NvbmZpZy5zdGF0dXMKKysJQGNh c2UgJyQ/JyBpbiBcCisrCSAgKmNvbmZpZy5zdGF0dXMqKSBcCisrCSAgICBjZCAkKHRvcF9idWls ZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2g7OyBcCisrCSAgKikg XAorKwkgICAgZWNobyAnIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKFNIRUxMKSAuL2NvbmZpZy5z dGF0dXMgJChzdWJkaXIpLyRAICQoYW1fX2RlcGZpbGVzX21heWJlKSc7IFwKKysJICAgIGNkICQo dG9wX2J1aWxkZGlyKSAmJiAkKFNIRUxMKSAuL2NvbmZpZy5zdGF0dXMgJChzdWJkaXIpLyRAICQo YW1fX2RlcGZpbGVzX21heWJlKTs7IFwKKysJZXNhYzsKKysKKyskKHRvcF9idWlsZGRpcikvY29u ZmlnLnN0YXR1czogJCh0b3Bfc3JjZGlyKS9jb25maWd1cmUgJChDT05GSUdfU1RBVFVTX0RFUEVO REVOQ0lFUykKKysJY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1Mp IGFtLS1yZWZyZXNoCisrCisrJCh0b3Bfc3JjZGlyKS9jb25maWd1cmU6ICAkKGFtX19jb25maWd1 cmVfZGVwcykKKysJY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1Mp IGFtLS1yZWZyZXNoCisrJChBQ0xPQ0FMX000KTogICQoYW1fX2FjbG9jYWxfbTRfZGVwcykKKysJ Y2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNo CisrJChhbV9fYWNsb2NhbF9tNF9kZXBzKToKKysKKyttb3N0bHljbGVhbi1saWJ0b29sOgorKwkt cm0gLWYgKi5sbworKworK2NsZWFuLWxpYnRvb2w6CisrCS1ybSAtcmYgLmxpYnMgX2xpYnMKKyt0 YWdzOiBUQUdTCisrVEFHUzoKKysKKytjdGFnczogQ1RBR1MKKytDVEFHUzoKKysKKysKKytkaXN0 ZGlyOiAkKERJU1RGSUxFUykKKysJQHNyY2RpcnN0cmlwPWBlY2hvICIkKHNyY2RpcikiIHwgc2Vk ICdzL1tdLlteJCRcXCpdL1xcXFwmL2cnYDsgXAorKwl0b3BzcmNkaXJzdHJpcD1gZWNobyAiJCh0 b3Bfc3JjZGlyKSIgfCBzZWQgJ3MvW10uW14kJFxcKl0vXFxcXCYvZydgOyBcCisrCWxpc3Q9JyQo RElTVEZJTEVTKSc7IFwKKysJICBkaXN0X2ZpbGVzPWBmb3IgZmlsZSBpbiAkJGxpc3Q7IGRvIGVj aG8gJCRmaWxlOyBkb25lIHwgXAorKwkgIHNlZCAtZSAic3xeJCRzcmNkaXJzdHJpcC98fDt0IiBc CisrCSAgICAgIC1lICJzfF4kJHRvcHNyY2RpcnN0cmlwL3wkKHRvcF9idWlsZGRpcikvfDt0ImA7 IFwKKysJY2FzZSAkJGRpc3RfZmlsZXMgaW4gXAorKwkgICovKikgJChNS0RJUl9QKSBgZWNobyAi JCRkaXN0X2ZpbGVzIiB8IFwKKysJCQkgICBzZWQgJy9cLy8hZDtzfF58JChkaXN0ZGlyKS98O3Ms L1teL10qJCQsLCcgfCBcCisrCQkJICAgc29ydCAtdWAgOzsgXAorKwllc2FjOyBcCisrCWZvciBm aWxlIGluICQkZGlzdF9maWxlczsgZG8gXAorKwkgIGlmIHRlc3QgLWYgJCRmaWxlIHx8IHRlc3Qg LWQgJCRmaWxlOyB0aGVuIGQ9LjsgZWxzZSBkPSQoc3JjZGlyKTsgZmk7IFwKKysJICBpZiB0ZXN0 IC1kICQkZC8kJGZpbGU7IHRoZW4gXAorKwkgICAgZGlyPWBlY2hvICIvJCRmaWxlIiB8IHNlZCAt ZSAncywvW14vXSokJCwsJ2A7IFwKKysJICAgIGlmIHRlc3QgLWQgIiQoZGlzdGRpcikvJCRmaWxl IjsgdGhlbiBcCisrCSAgICAgIGZpbmQgIiQoZGlzdGRpcikvJCRmaWxlIiAtdHlwZSBkICEgLXBl cm0gLTcwMCAtZXhlYyBjaG1vZCB1K3J3eCB7fSBcOzsgXAorKwkgICAgZmk7IFwKKysJICAgIGlm IHRlc3QgLWQgJChzcmNkaXIpLyQkZmlsZSAmJiB0ZXN0ICQkZCAhPSAkKHNyY2Rpcik7IHRoZW4g XAorKwkgICAgICBjcCAtZnBSICQoc3JjZGlyKS8kJGZpbGUgIiQoZGlzdGRpcikkJGRpciIgfHwg ZXhpdCAxOyBcCisrCSAgICAgIGZpbmQgIiQoZGlzdGRpcikvJCRmaWxlIiAtdHlwZSBkICEgLXBl cm0gLTcwMCAtZXhlYyBjaG1vZCB1K3J3eCB7fSBcOzsgXAorKwkgICAgZmk7IFwKKysJICAgIGNw IC1mcFIgJCRkLyQkZmlsZSAiJChkaXN0ZGlyKSQkZGlyIiB8fCBleGl0IDE7IFwKKysJICBlbHNl IFwKKysJICAgIHRlc3QgLWYgIiQoZGlzdGRpcikvJCRmaWxlIiBcCisrCSAgICB8fCBjcCAtcCAk JGQvJCRmaWxlICIkKGRpc3RkaXIpLyQkZmlsZSIgXAorKwkgICAgfHwgZXhpdCAxOyBcCisrCSAg Zmk7IFwKKysJZG9uZQorK2NoZWNrLWFtOiBhbGwtYW0KKytjaGVjazogY2hlY2stYW0KKythbGwt YW06IE1ha2VmaWxlCisraW5zdGFsbGRpcnM6CisraW5zdGFsbDogaW5zdGFsbC1hbQorK2luc3Rh bGwtZXhlYzogaW5zdGFsbC1leGVjLWFtCisraW5zdGFsbC1kYXRhOiBpbnN0YWxsLWRhdGEtYW0K Kyt1bmluc3RhbGw6IHVuaW5zdGFsbC1hbQorKworK2luc3RhbGwtYW06IGFsbC1hbQorKwlAJChN QUtFKSAkKEFNX01BS0VGTEFHUykgaW5zdGFsbC1leGVjLWFtIGluc3RhbGwtZGF0YS1hbQorKwor K2luc3RhbGxjaGVjazogaW5zdGFsbGNoZWNrLWFtCisraW5zdGFsbC1zdHJpcDoKKysJJChNQUtF KSAkKEFNX01BS0VGTEFHUykgSU5TVEFMTF9QUk9HUkFNPSIkKElOU1RBTExfU1RSSVBfUFJPR1JB TSkiIFwKKysJICBpbnN0YWxsX3NoX1BST0dSQU09IiQoSU5TVEFMTF9TVFJJUF9QUk9HUkFNKSIg SU5TVEFMTF9TVFJJUF9GTEFHPS1zIFwKKysJICBgdGVzdCAteiAnJChTVFJJUCknIHx8IFwKKysJ ICAgIGVjaG8gIklOU1RBTExfUFJPR1JBTV9FTlY9U1RSSVBQUk9HPSckKFNUUklQKSciYCBpbnN0 YWxsCisrbW9zdGx5Y2xlYW4tZ2VuZXJpYzoKKysKKytjbGVhbi1nZW5lcmljOgorKworK2Rpc3Rj bGVhbi1nZW5lcmljOgorKwktdGVzdCAteiAiJChDT05GSUdfQ0xFQU5fRklMRVMpIiB8fCBybSAt ZiAkKENPTkZJR19DTEVBTl9GSUxFUykKKysJLXRlc3QgLiA9ICIkKHNyY2RpcikiIHx8IHRlc3Qg LXogIiQoQ09ORklHX0NMRUFOX1ZQQVRIX0ZJTEVTKSIgfHwgcm0gLWYgJChDT05GSUdfQ0xFQU5f VlBBVEhfRklMRVMpCisrCisrbWFpbnRhaW5lci1jbGVhbi1nZW5lcmljOgorKwlAZWNobyAiVGhp cyBjb21tYW5kIGlzIGludGVuZGVkIGZvciBtYWludGFpbmVycyB0byB1c2UiCisrCUBlY2hvICJp dCBkZWxldGVzIGZpbGVzIHRoYXQgbWF5IHJlcXVpcmUgc3BlY2lhbCB0b29scyB0byByZWJ1aWxk LiIKKysJLXRlc3QgLXogIiQoTUFJTlRBSU5FUkNMRUFORklMRVMpIiB8fCBybSAtZiAkKE1BSU5U QUlORVJDTEVBTkZJTEVTKQorK2NsZWFuOiBjbGVhbi1hbQorKworK2NsZWFuLWFtOiBjbGVhbi1n ZW5lcmljIGNsZWFuLWxpYnRvb2wgbW9zdGx5Y2xlYW4tYW0KKysKKytkaXN0Y2xlYW46IGRpc3Rj bGVhbi1hbQorKwktcm0gLWYgTWFrZWZpbGUKKytkaXN0Y2xlYW4tYW06IGNsZWFuLWFtIGRpc3Rj bGVhbi1nZW5lcmljCisrCisrZHZpOiBkdmktYW0KKysKKytkdmktYW06CisrCisraHRtbDogaHRt bC1hbQorKworK2h0bWwtYW06CisrCisraW5mbzogaW5mby1hbQorKworK2luZm8tYW06CisrCisr aW5zdGFsbC1kYXRhLWFtOgorKworK2luc3RhbGwtZHZpOiBpbnN0YWxsLWR2aS1hbQorKworK2lu c3RhbGwtZHZpLWFtOgorKworK2luc3RhbGwtZXhlYy1hbToKKysKKytpbnN0YWxsLWh0bWw6IGlu c3RhbGwtaHRtbC1hbQorKworK2luc3RhbGwtaHRtbC1hbToKKysKKytpbnN0YWxsLWluZm86IGlu c3RhbGwtaW5mby1hbQorKworK2luc3RhbGwtaW5mby1hbToKKysKKytpbnN0YWxsLW1hbjoKKysK KytpbnN0YWxsLXBkZjogaW5zdGFsbC1wZGYtYW0KKysKKytpbnN0YWxsLXBkZi1hbToKKysKKytp bnN0YWxsLXBzOiBpbnN0YWxsLXBzLWFtCisrCisraW5zdGFsbC1wcy1hbToKKysKKytpbnN0YWxs Y2hlY2stYW06CisrCisrbWFpbnRhaW5lci1jbGVhbjogbWFpbnRhaW5lci1jbGVhbi1hbQorKwkt cm0gLWYgTWFrZWZpbGUKKyttYWludGFpbmVyLWNsZWFuLWFtOiBkaXN0Y2xlYW4tYW0gbWFpbnRh aW5lci1jbGVhbi1nZW5lcmljCisrCisrbW9zdGx5Y2xlYW46IG1vc3RseWNsZWFuLWFtCisrCisr bW9zdGx5Y2xlYW4tYW06IG1vc3RseWNsZWFuLWdlbmVyaWMgbW9zdGx5Y2xlYW4tbGlidG9vbAor KworK3BkZjogcGRmLWFtCisrCisrcGRmLWFtOgorKworK3BzOiBwcy1hbQorKworK3BzLWFtOgor KworK3VuaW5zdGFsbC1hbToKKysKKysuTUFLRTogaW5zdGFsbC1hbSBpbnN0YWxsLXN0cmlwCisr CisrLlBIT05ZOiBhbGwgYWxsLWFtIGNoZWNrIGNoZWNrLWFtIGNsZWFuIGNsZWFuLWdlbmVyaWMg Y2xlYW4tbGlidG9vbCBcCisrCWRpc3RjbGVhbiBkaXN0Y2xlYW4tZ2VuZXJpYyBkaXN0Y2xlYW4t bGlidG9vbCBkaXN0ZGlyIGR2aSBcCisrCWR2aS1hbSBodG1sIGh0bWwtYW0gaW5mbyBpbmZvLWFt IGluc3RhbGwgaW5zdGFsbC1hbSBcCisrCWluc3RhbGwtZGF0YSBpbnN0YWxsLWRhdGEtYW0gaW5z dGFsbC1kdmkgaW5zdGFsbC1kdmktYW0gXAorKwlpbnN0YWxsLWV4ZWMgaW5zdGFsbC1leGVjLWFt IGluc3RhbGwtaHRtbCBpbnN0YWxsLWh0bWwtYW0gXAorKwlpbnN0YWxsLWluZm8gaW5zdGFsbC1p bmZvLWFtIGluc3RhbGwtbWFuIGluc3RhbGwtcGRmIFwKKysJaW5zdGFsbC1wZGYtYW0gaW5zdGFs bC1wcyBpbnN0YWxsLXBzLWFtIGluc3RhbGwtc3RyaXAgXAorKwlpbnN0YWxsY2hlY2sgaW5zdGFs bGNoZWNrLWFtIGluc3RhbGxkaXJzIG1haW50YWluZXItY2xlYW4gXAorKwltYWludGFpbmVyLWNs ZWFuLWdlbmVyaWMgbW9zdGx5Y2xlYW4gbW9zdGx5Y2xlYW4tZ2VuZXJpYyBcCisrCW1vc3RseWNs ZWFuLWxpYnRvb2wgcGRmIHBkZi1hbSBwcyBwcy1hbSB1bmluc3RhbGwgdW5pbnN0YWxsLWFtCisr CisrQFNFVF9NQUtFQAorKworKyMgVGVsbCB2ZXJzaW9ucyBbMy41OSwzLjYzKSBvZiBHTlUgbWFr ZSB0byBub3QgZXhwb3J0IGFsbCB2YXJpYWJsZXMuCisrIyBPdGhlcndpc2UgYSBzeXN0ZW0gbGlt aXQgKGZvciBTeXNWIGF0IGxlYXN0KSBtYXkgYmUgZXhjZWVkZWQuCisrLk5PRVhQT1JUOgorZGlm ZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL2NvbmZpZy9heF9ib29zdC5tNCBzb2NpLTMuMC4wX3Ry ZXAzMDAvY29uZmlnL2F4X2Jvb3N0Lm00CistLS0gc29jaS0zLjAuMF80LXBhY2svY29uZmlnL2F4 X2Jvb3N0Lm00CTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCisrKysgc29jaS0z LjAuMF90cmVwMzAwL2NvbmZpZy9heF9ib29zdC5tNAkyMDEwLTAxLTIzIDEzOjI3OjA0LjAwMDAw MDAwMCArMDEwMAorQEAgLTAsMCArMSw3NTQgQEAKKytkbmwgQHN5bm9wc2lzIEFYX0JPT1NUKFtN SU5JTVVNLVZFUlNJT05dLCBbQUNUSU9OLUlGLUZPVU5EXSwgW0FDVElPTi1JRi1OT1QtRk9VTkRd KQorK2RubAorK2RubCBUZXN0IGZvciB0aGUgQm9vc3QgQysrIGxpYnJhcmllcyBvZiBhIHBhcnRp Y3VsYXIgdmVyc2lvbiAob3IgbmV3ZXIpCisrZG5sCisrZG5sIElmIG5vIHBhdGggdG8gdGhlIGlu c3RhbGxlZCBib29zdCBsaWJyYXJ5IGlzIGdpdmVuIHRoZSBtYWNybworK2RubCBzZWFyY2hzIHVu ZGVyIC91c3IsIC91c3IvbG9jYWwsIGFuZCAvb3B0LCBhbmQgZXZhbHVhdGVzIHRoZQorK2RubCAk Qk9PU1RfUk9PVCBlbnZpcm9ubWVudCB2YXJpYWJsZS4KKytkbmwKKytkbmwgVGhpcyBtYWNybyBj YWxsczoKKytkbmwKKytkbmwgICBBQ19TVUJTVChCT09TVF9DRkxBR1MpIC8gQUNfU1VCU1QoQk9P U1RfTElCUykKKytkbmwgICBBQ19TVUJTVChCT09TVF9GSUxFU1lTVEVNX0xJQikKKytkbmwgICBB Q19TVUJTVChCT09TVF9TWVNURU1fTElCKQorK2RubCAgIEFDX1NVQlNUKEJPT1NUX1BST0dSQU1f T1BUSU9OU19MSUIpCisrZG5sICAgQUNfU1VCU1QoQk9PU1RfVEhSRUFEX0xJQikKKytkbmwgICBB Q19TVUJTVChCT09TVF9JT1NUUkVBTVNfTElCKQorK2RubCAgIEFDX1NVQlNUKEJPT1NUX1NFUklB TElaQVRJT05fTElCKQorK2RubCAgIEFDX1NVQlNUKEJPT1NUX1dTRVJJQUxJWkFUSU9OX0xJQikK KytkbmwgICBBQ19TVUJTVChCT09TVF9TSUdOQUxTX0xJQikKKytkbmwgICBBQ19TVUJTVChCT09T VF9EQVRFX1RJTUVfTElCKQorK2RubCAgIEFDX1NVQlNUKEJPT1NUX1JFR0VYX0xJQikKKytkbmwg ICBBQ19TVUJTVChCT09TVF9QWVRIT05fTElCKQorK2RubCAgIEFDX1NVQlNUKEJPT1NUX0FTSU9f TElCKQorK2RubCAgIEFDX1NVQlNUKEJPT1NUX01QSV9MSUIpCisrZG5sICAgQUNfU1VCU1QoQk9P U1RfTVBJX1BZVEhPTl9MSUIpCisrZG5sICAgQUNfU1VCU1QoQk9PU1RfVU5JVF9URVNUX0ZSQU1F V09SS19MSUIpCisrZG5sCisrZG5sIEFuZCBzZXRzOgorK2RubAorK2RubCAgIEhBVkVfQk9PU1QK KytkbmwgICBIQVZFX0JPT1NUX0ZJTEVTWVNURU0KKytkbmwgICBIQVZFX0JPT1NUX1NZU1RFTQor K2RubCAgIEhBVkVfQk9PU1RfUFJPR1JBTV9PUFRJT05TCisrZG5sICAgSEFWRV9CT09TVF9USFJF QUQKKytkbmwgICBIQVZFX0JPT1NUX0lPU1RSRUFNUworK2RubCAgIEhBVkVfQk9PU1RfU0VSSUFM SVpBVElPTgorK2RubCAgIEhBVkVfQk9PU1RfU0lHTkFMUworK2RubCAgIEhBVkVfQk9PU1RfREFU RV9USU1FCisrZG5sICAgSEFWRV9CT09TVF9SRUdFWAorK2RubCAgIEhBVkVfQk9PU1RfUFlUSE9O CisrZG5sICAgSEFWRV9CT09TVF9BU0lPCisrZG5sICAgSEFWRV9CT09TVF9NUEkKKytkbmwgICBI QVZFX0JPT1NUX01QSV9QWVRIT04KKytkbmwgICBIQVZFX0JPT1NUX1VOSVRfVEVTVF9GUkFNRVdP UksKKytkbmwKKytkbmwgQGNhdGVnb3J5IEluc3RhbGxlZFBhY2thZ2VzCisrZG5sIEBhdXRob3Ig VGhvbWFzIFBvcnNjaGJlcmcgPHRob21hc0ByYW5kc3ByaW5nZXIuZGU+CisrZG5sIEB2ZXJzaW9u IDIwMDYtMDEtMDIKKytkbmwgQGxpY2Vuc2UgQWxsUGVybWlzc2l2ZQorKworK0FDX0RFRlVOKFtB WF9CT09TVF0sCisrWworKyAgICBBQ19BUkdfV0lUSChbYm9vc3RdLAorKyAgICAgICAgICAgICAg ICBBQ19IRUxQX1NUUklORyhbLS13aXRoLWJvb3N0PURJUl0sCisrICAgICAgICAgICAgICAgIFt1 c2UgYm9vc3QgKGRlZmF1bHQgaXMgTk8pICwgc3BlY2lmeSB0aGUgcm9vdCBkaXJlY3RvcnkgZm9y IGJvb3N0IGxpYnJhcnkgKG9wdGlvbmFsKV0pLAorKyAgICAgICAgICAgICAgICBbCisrICAgICAg ICAgICAgICAgIGlmIHRlc3QgIiR3aXRodmFsIiA9ICJubyI7IHRoZW4KKysJCSAgICAgICAgICAg IHdhbnRfYm9vc3Q9Im5vIgorKyAgICAgICAgICAgICAgICBlbGlmIHRlc3QgIiR3aXRodmFsIiA9 ICJ5ZXMiOyB0aGVuCisrICAgICAgICAgICAgICAgICAgICB3YW50X2Jvb3N0PSJ5ZXMiCisrICAg ICAgICAgICAgICAgICAgICBhY19ib29zdF9wYXRoPSIiCisrICAgICAgICAgICAgICAgIGVsc2UK KysJCQkgICAgICAgIHdhbnRfYm9vc3Q9InllcyIKKysgICAgICAgICAgICAJCWFjX2Jvb3N0X3Bh dGg9IiR3aXRodmFsIgorKwkJICAgICAgICBmaQorKyAgICAgICAgICAgIAldLAorKyAgICAgICAg ICAgICAgICBbd2FudF9ib29zdD0ieWVzIl0pCisrCisrIyAgICBBQ19DQU5PTklDQUxfQlVJTEQK KytCT09TVF9NRFdfVkVSU0lPTj0iMS0zMy0xIgorK0JPT1NUTElCX01EV19WRVJTSU9OPSIxXzMz XzEiCisrQk9PU1RfdmVyc2lvbl9oZWFkZXI9ImJvb3N0L3ZlcnNpb24uaHBwIgorKworKwlpZiB0 ZXN0ICJ4JHdhbnRfYm9vc3QiID0gInh5ZXMiOyB0aGVuCisrCQlib29zdF9saWJfdmVyc2lvbl9y ZXE9aWZlbHNlKFskMV0sICwxLjIwLjAsJDEpCisrCQlib29zdF9saWJfdmVyc2lvbl9yZXFfc2hv cnRlbj1gZXhwciAkYm9vc3RfbGliX3ZlcnNpb25fcmVxIDogJ1woW1swLTldXSpcLltbMC05XV0q XCknYAorKwkJYm9vc3RfbGliX3ZlcnNpb25fcmVxX21ham9yPWBleHByICRib29zdF9saWJfdmVy c2lvbl9yZXEgOiAnXChbWzAtOV1dKlwpJ2AKKysJCWJvb3N0X2xpYl92ZXJzaW9uX3JlcV9taW5v cj1gZXhwciAkYm9vc3RfbGliX3ZlcnNpb25fcmVxIDogJ1tbMC05XV0qXC5cKFtbMC05XV0qXCkn YAorKwkJYm9vc3RfbGliX3ZlcnNpb25fcmVxX3N1Yl9taW5vcj1gZXhwciAkYm9vc3RfbGliX3Zl cnNpb25fcmVxIDogJ1tbMC05XV0qXC5bWzAtOV1dKlwuXChbWzAtOV1dKlwpJ2AKKysJCWlmIHRl c3QgIngkYm9vc3RfbGliX3ZlcnNpb25fcmVxX3N1Yl9taW5vciIgPSAieCIgOyB0aGVuCisrCQkJ Ym9vc3RfbGliX3ZlcnNpb25fcmVxX3N1Yl9taW5vcj0iMCIKKysgICAgCWZpCisrCQlXQU5UX0JP T1NUX1ZFUlNJT049YGV4cHIgJGJvb3N0X2xpYl92ZXJzaW9uX3JlcV9tYWpvciBcKiAxMDAwMDAg XCsgICRib29zdF9saWJfdmVyc2lvbl9yZXFfbWlub3IgXCogMTAwIFwrICRib29zdF9saWJfdmVy c2lvbl9yZXFfc3ViX21pbm9yYAorKwkJQUNfTVNHX0NIRUNLSU5HKGZvciBib29zdGxpYiA+PSAk Ym9vc3RfbGliX3ZlcnNpb25fcmVxKQorKwkJc3VjY2VlZGVkPW5vCisrCisrCQlkbmwgZmlyc3Qg d2UgY2hlY2sgdGhlIHN5c3RlbSBsb2NhdGlvbiBmb3IgYm9vc3QgbGlicmFyaWVzCisrCQlkbmwg dGhpcyBsb2NhdGlvbiBpcyBjaG9zZW4gaWYgYm9vc3QgbGlicmFyaWVzIGFyZSBpbnN0YWxsZWQg CisrCQlkbmwgd2l0aCB0aGUgLS1sYXlvdXQ9c3lzdGVtIG9wdGlvbgorKwkJZG5sIG9yIGlmIHlv dSBpbnN0YWxsIGJvb3N0IHdpdGggUlBNCisrCQlpZiB0ZXN0IC1kIC9saWI2NAorKwkJdGhlbgor KwkJCUJPT1NUX0xJQkRJUlRZUEU9ImxpYjY0IgorKwkJZWxzZQorKwkJCUJPT1NUX0xJQkRJUlRZ UEU9ImxpYiIKKysJCWZpCisrCQlpZiB0ZXN0ICIkYWNfYm9vc3RfcGF0aCIgIT0gIiIKKysJCXRo ZW4KKysJCQlpZiB0ZXN0ICIkQk9PU1RfTElCRElSVFlQRSIgPT0gImxpYjY0IgorKwkJCXRoZW4K KysJCQkJaWYgdGVzdCAtZCAiJGFjX2Jvb3N0X3BhdGgvJEJPT1NUX0xJQkRJUlRZUEUiICYmIHRl c3QgLXIgIiRhY19ib29zdF9wYXRoLyRCT09TVF9MSUJESVJUWVBFIgorKwkJCQl0aGVuCisrCSAg ICAgICAgICAgICAgICBCT09TVF9MSUJTPSItTCRhY19ib29zdF9wYXRoLyRCT09TVF9MSUJESVJU WVBFIgorKwkJCQllbHNlCisrICAgICAgICAgICAgICAgICAgICBCT09TVF9MSUJTPSItTCRhY19i b29zdF9wYXRoL2xpYiIKKysJCQkJZmkKKysJCQllbHNlCisrCQkJCUJPT1NUX0xJQlM9Ii1MJGFj X2Jvb3N0X3BhdGgvbGliIgorKwkJCWZpCisrCQkJQk9PU1RfQ0ZMQUdTPSItSSRhY19ib29zdF9w YXRoL2luY2x1ZGUiCisrCQkJQk9PU1RfVkVSU0lPTj1gZ3JlcCAiZGVmaW5lIEJPT1NUX0xJQl9W RVJTSU9OIiAkYWNfYm9vc3RfcGF0aC9pbmNsdWRlLyR7Qk9PU1RfdmVyc2lvbl9oZWFkZXJ9IHwg Y3V0IC1kJyAnIC1mMyB8IGN1dCAtZFwiIC1mMmAKKysJCWVsc2UKKysJCQlmb3IgYWNfYm9vc3Rf cGF0aF90bXAgaW4gL3VzciAvdXNyL2xvY2FsIC9vcHQgL25hc3Rvb2xzL2Jvb3N0CisrCQkJZG8K KysJCQkJaWYgdGVzdCAtZCAiJGFjX2Jvb3N0X3BhdGhfdG1wL2luY2x1ZGUvYm9vc3QiICYmIHRl c3QgLXIgIiRhY19ib29zdF9wYXRoX3RtcC9pbmNsdWRlL2Jvb3N0IgorKwkJCQl0aGVuCisrCQkJ CQlCT09TVF9MSUJTPSItTCRhY19ib29zdF9wYXRoX3RtcC8kQk9PU1RfTElCRElSVFlQRSIKKysJ CQkJCUJPT1NUX0NGTEFHUz0iLUkkYWNfYm9vc3RfcGF0aF90bXAvaW5jbHVkZSIKKysJCQkJCUJP T1NUX1ZFUlNJT049YGdyZXAgImRlZmluZSBCT09TVF9MSUJfVkVSU0lPTiIgJGFjX2Jvb3N0X3Bh dGhfdG1wL2luY2x1ZGUvJHtCT09TVF92ZXJzaW9uX2hlYWRlcn0gfCBjdXQgLWQnICcgLWYzIHwg Y3V0IC1kXCIgLWYyYAorKwkJCQkJYnJlYWs7CisrCQkJCWZpCisrCQkJCWlmIHRlc3QgLWQgIiRh Y19ib29zdF9wYXRoX3RtcC9pbmNsdWRlL2Jvb3N0LSRCT09TVF9NRFdfVkVSU0lPTi9ib29zdCIg JiYgdGVzdCAtciAiJGFjX2Jvb3N0X3BhdGhfdG1wL2luY2x1ZGUvYm9vc3QtJEJPT1NUX01EV19W RVJTSU9OL2Jvb3N0IgorKwkJCQl0aGVuCisrCQkJCQlCT09TVF9MSUJTPSItTCRhY19ib29zdF9w YXRoX3RtcC8kQk9PU1RfTElCRElSVFlQRSIKKysJCQkJCUJPT1NUX0NGTEFHUz0iLUkkYWNfYm9v c3RfcGF0aF90bXAvaW5jbHVkZS9ib29zdC0kQk9PU1RfTURXX1ZFUlNJT04iCisrCQkJCQlCT09T VF9WRVJTSU9OPWBncmVwICJkZWZpbmUgQk9PU1RfTElCX1ZFUlNJT04iICRhY19ib29zdF9wYXRo X3RtcC9pbmNsdWRlL2Jvb3N0LSRCT09TVF9NRFdfVkVSU0lPTi8ke0JPT1NUX3ZlcnNpb25faGVh ZGVyfSB8IGN1dCAtZCcgJyAtZjMgfCBjdXQgLWRcIiAtZjJgCisrCQkJCisrCQkJCQlkbmwgSGFj ayBmb3Igd3JvbmdseSBpbnN0YWxsZWQgQm9vc3QgbGlicmFyaWVzIChBTUQ2NCBsaWJyYXJpZXMg aW5zdGFsbGVkIGluIGJvb3N0L2xpYiBkaXJlY3RvcnkpCisrCQkJCQlpZiB0ZXN0IC1kICIkYWNf Ym9vc3RfcGF0aF90bXAvbGliIiBcCisrCQkJCQkmJiB0ZXN0IC1yICIkYWNfYm9vc3RfcGF0aF90 bXAvbGliIiBcCisrCQkJCQkmJiB0ZXN0ICEgLWQgIiRhY19ib29zdF9wYXRoX3RtcC9saWI2NCIK KysJCQkJCXRoZW4KKysJCQkJCQlCT09TVF9MSUJTPSItTCRhY19ib29zdF9wYXRoX3RtcC9saWIi CisrCQkJCQkJZWNobyAiSGFjazogJEJPT1NUX0xJQlMiCisrCQkJCQlmaQorKwkJCQkJYnJlYWs7 CisrCQkJCWZpCisrCQkJZG9uZQorKwkJZmkKKysKKysJCUNQUEZMQUdTX1NBVkVEPSIkQ1BQRkxB R1MiCisrCQlDUFBGTEFHUz0iJENQUEZMQUdTICRCT09TVF9DRkxBR1MiCisrCQlleHBvcnQgQ1BQ RkxBR1MKKysKKysJCUxERkxBR1NfU0FWRUQ9IiRMREZMQUdTIgorKwkJTERGTEFHUz0iJExERkxB R1MgJEJPT1NUX0xJQlMiCisrCQlleHBvcnQgTERGTEFHUworKworKyAgICAgCUFDX1RSWV9DT01Q SUxFKAorKyAgICAgICAJWworK0AlOkBpbmNsdWRlIDxib29zdC92ZXJzaW9uLmhwcD4KKytdLAor KyAgICAgICBbCisrI2lmIEJPT1NUX1ZFUlNJT04gPj0gJFdBTlRfQk9PU1RfVkVSU0lPTgorKy8v IEV2ZXJ5dGhpbmcgaXMgb2theQorKyNlbHNlCisrIyAgZXJyb3IgQm9vc3QgdmVyc2lvbiBpcyB0 b28gb2xkCisrI2VuZGlmCisrCisrCQldLAorKyAgICAJWworKyAgICAgICAgIEFDX01TR19SRVNV TFQoeWVzKQorKwkJIHN1Y2NlZWRlZD15ZXMKKysJCSBmb3VuZF9zeXN0ZW09eWVzCisrICAgICAg ICAgaWZlbHNlKFskMl0sICwgOiwgWyQyXSkKKysgICAgICAgXSwKKysgICAgICAgWworKyAgICAg ICBdKQorKworKwkJZG5sIGlmIHdlIGZvdW5kIG5vIGJvb3N0IHdpdGggc3lzdGVtIGxheW91dCB3 ZSBzZWFyY2ggZm9yIGJvb3N0IGxpYnJhcmllcworKwkJZG5sIGJ1aWx0IGFuZCBpbnN0YWxsZWQg d2l0aG91dCB0aGUgLS1sYXlvdXQ9c3lzdGVtIG9wdGlvbiBvciBmb3IgYSBzdGFnZWQobm90IGlu c3RhbGxlZCkgdmVyc2lvbgorKwkJaWYgdGVzdCAieCRzdWNjZWVkZWQiICE9ICJ4eWVzIjsgdGhl bgorKwkJCV92ZXJzaW9uPTAKKysJCQlpZiB0ZXN0ICIkYWNfYm9vc3RfcGF0aCIgIT0gIiI7IHRo ZW4KKysgICAgICAgICAgICAgICAgQk9PU1RfTElCUz0iLUwkYWNfYm9vc3RfcGF0aC8kQk9PU1Rf TElCRElSVFlQRSIKKysJCQkJaWYgdGVzdCAtZCAiJGFjX2Jvb3N0X3BhdGgiICYmIHRlc3QgLXIg IiRhY19ib29zdF9wYXRoIjsgdGhlbgorKwkJCQkJZm9yIGkgaW4gYGxzIC1kICRhY19ib29zdF9w YXRoL2luY2x1ZGUvYm9vc3QtKiAyPi9kZXYvbnVsbGA7IGRvCisrCQkJCQkJX3ZlcnNpb25fdG1w PWBlY2hvICRpIHwgc2VkICJzIyRhY19ib29zdF9wYXRoIyMiIHwgc2VkICdzL1wvaW5jbHVkZVwv Ym9vc3QtLy8nIHwgc2VkICdzL18vLi8nYAorKwkJCQkJCVZfQ0hFQ0s9YGV4cHIgJF92ZXJzaW9u X3RtcCBcPiAkX3ZlcnNpb25gCisrCQkJCQkJaWYgdGVzdCAiJFZfQ0hFQ0siID0gIjEiIDsgdGhl bgorKwkJCQkJCQlfdmVyc2lvbj0kX3ZlcnNpb25fdG1wCisrCQkJCQkJZmkKKysJCQkJCQlWRVJT SU9OX1VOREVSU0NPUkU9YGVjaG8gJF92ZXJzaW9uIHwgc2VkICdzL1wuL18vJ2AKKysJCQkJCQlC T09TVF9DRkxBR1M9Ii1JJGFjX2Jvb3N0X3BhdGgvaW5jbHVkZS9ib29zdC0kVkVSU0lPTl9VTkRF UlNDT1JFIgorKwkJCQkJZG9uZQorKwkJCQlmaQorKwkJCWVsc2UKKysJCQkJZm9yIGFjX2Jvb3N0 X3BhdGggaW4gL3VzciAvdXNyL2xvY2FsIC9vcHQgOyBkbworKwkJCQkJaWYgdGVzdCAtZCAiJGFj X2Jvb3N0X3BhdGgiICYmIHRlc3QgLXIgIiRhY19ib29zdF9wYXRoIjsgdGhlbgorKwkJCQkJCWZv ciBpIGluIGBscyAtZCAkYWNfYm9vc3RfcGF0aC9pbmNsdWRlL2Jvb3N0LSogMj4vZGV2L251bGxg OyBkbworKwkJCQkJCQlfdmVyc2lvbl90bXA9YGVjaG8gJGkgfCBzZWQgInMjJGFjX2Jvb3N0X3Bh dGgjIyIgfCBzZWQgJ3MvXC9pbmNsdWRlXC9ib29zdC0vLycgfCBzZWQgJ3MvXy8uLydgCisrCQkJ CQkJCVZfQ0hFQ0s9YGV4cHIgJF92ZXJzaW9uX3RtcCBcPiAkX3ZlcnNpb25gCisrCQkJCQkJCWlm IHRlc3QgIiRWX0NIRUNLIiA9ICIxIiA7IHRoZW4KKysJCQkJCQkJCV92ZXJzaW9uPSRfdmVyc2lv bl90bXAKKysJCQkJCQkJCWJlc3RfcGF0aD0kYWNfYm9vc3RfcGF0aAorKwkJCQkJCQlmaQorKwkJ CQkJCWRvbmUKKysJCQkJCWZpCisrCQkJCWRvbmUKKysKKysJCQkJVkVSU0lPTl9VTkRFUlNDT1JF PWBlY2hvICRfdmVyc2lvbiB8IHNlZCAncy9cLi9fLydgCisrCQkJCUJPT1NUX0NGTEFHUz0iLUkk YmVzdF9wYXRoL2luY2x1ZGUvYm9vc3QtJFZFUlNJT05fVU5ERVJTQ09SRSIKKysJCQkJQk9PU1Rf TElCUz0iLUwkYmVzdF9wYXRoLyRCT09TVF9MSUJESVJUWVBFIgorKworKwkgICAgCQlpZiB0ZXN0 ICJ4JEJPT1NUX1JPT1QiICE9ICJ4IjsgdGhlbgorKwkJCQkJaWYgdGVzdCAtZCAiJEJPT1NUX1JP T1QiICYmIHRlc3QgLXIgIiRCT09TVF9ST09UIjsgdGhlbgorKwkJCQkJCXZlcnNpb25fZGlyPWBl eHByIC8vJEJPT1NUX1JPT1QgOiAnLiovXCguKlwpJ2AKKysJCQkJCQlzdGFnZV92ZXJzaW9uPWBl Y2hvICR2ZXJzaW9uX2RpciB8IHNlZCAncy9ib29zdF8vLycgfCBzZWQgJ3MvXy8uL2cnYAorKwkJ CQkJCXN0YWdlX3ZlcnNpb25fc2hvcnRlbj1gZXhwciAkc3RhZ2VfdmVyc2lvbiA6ICdcKFtbMC05 XV0qXC5bWzAtOV1dKlwpJ2AKKysJCQkJCQlWX0NIRUNLPWBleHByICRzdGFnZV92ZXJzaW9uX3No b3J0ZW4gXD5cPSAkX3ZlcnNpb25gCisrCQkJCQkJaWYgdGVzdCAiJFZfQ0hFQ0siID0gIjEiIDsg dGhlbgorKwkJCQkJCQlBQ19NU0dfTk9USUNFKFdlIHdpbGwgdXNlIGEgc3RhZ2VkIGJvb3N0IGxp YnJhcnkgZnJvbSAkQk9PU1RfUk9PVCkKKysJCQkJCQkJQk9PU1RfQ0ZMQUdTPSItSSRCT09TVF9S T09UIgorKwkJCQkJCQlCT09TVF9MSUJTPSItTCRCT09TVF9ST09UL3N0YWdlLyRCT09TVF9MSUJE SVJUWVBFIgorKwkJCQkJCWZpCisrCQkJCQlmaQorKwkgICAgCQlmaQorKwkJCWZpCisrCisrCQkJ Q1BQRkxBR1M9IiRDUFBGTEFHUyAkQk9PU1RfQ0ZMQUdTIgorKwkJCWV4cG9ydCBDUFBGTEFHUwor KwkJCUxERkxBR1M9IiRMREZMQUdTICRCT09TVF9MSUJTIgorKwkJCWV4cG9ydCBMREZMQUdTCisr CisrICAgICAJCUFDX1RSWV9DT01QSUxFKAorKyAgICAgICAJCVsKKytAJTpAaW5jbHVkZSA8Ym9v c3QvdmVyc2lvbi5ocHA+CisrXSwKKysgICAgICAgWworKyNpZiBCT09TVF9WRVJTSU9OID49ICRX QU5UX0JPT1NUX1ZFUlNJT04KKysvLyBFdmVyeXRoaW5nIGlzIG9rYXkKKysjZWxzZQorKyMgIGVy cm9yIEJvb3N0IHZlcnNpb24gaXMgdG9vIG9sZAorKyNlbmRpZgorKworKwkJXSwKKysgICAgCVsK KysgICAgICAgICBBQ19NU0dfUkVTVUxUKHllcyAoJF92ZXJzaW9uKSkKKysJCSBzdWNjZWVkZWQ9 eWVzCisrICAgICAgICAgaWZlbHNlKFskMl0sICwgOiwgWyQyXSkKKysgICAgICAgXSwKKysgICAg ICAgWworKyAgICAgICAgIEFDX01TR19SRVNVTFQobm8gKCRfdmVyc2lvbikpCisrICAgICAgICAg aWZlbHNlKFskM10sICwgOiwgWyQzXSkKKysgICAgICAgXSkKKysJCWZpCisrCisrCQlpZiB0ZXN0 ICIkc3VjY2VlZGVkIiAhPSAieWVzIiA7IHRoZW4KKysJCQlpZiB0ZXN0ICIkX3ZlcnNpb24iID0g IjAiIDsgdGhlbgorKwkJCQlBQ19NU0dfRVJST1IoW1tXZSBjb3VsZCBub3QgZGV0ZWN0IHRoZSBi b29zdCBsaWJyYXJpZXMgKHZlcnNpb24gJGJvb3N0X2xpYl92ZXJzaW9uX3JlcV9zaG9ydGVuIG9y IGhpZ2hlcikuIElmIHlvdSBoYXZlIGEgc3RhZ2VkIGJvb3N0IGxpYnJhcnkgKHN0aWxsIG5vdCBp bnN0YWxsZWQpIHBsZWFzZSBzcGVjaWZ5IFwkQk9PU1RfUk9PVCBpbiB5b3VyIGVudmlyb25tZW50 IGFuZCBkbyBub3QgZ2l2ZSBhIFBBVEggdG8gLS13aXRoLWJvb3N0IG9wdGlvbi4gIElmIHlvdSBh cmUgc3VyZSB5b3UgaGF2ZSBib29zdCBpbnN0YWxsZWQsIHRoZW4gY2hlY2sgeW91ciB2ZXJzaW9u IG51bWJlciBsb29raW5nIGluIDxib29zdC92ZXJzaW9uLmhwcD4uXV0pCisrCQkJZWxzZQorKwkJ CQlBQ19NU0dfRVJST1IoJ1lvdXIgYm9vc3QgbGlicmFyaWVzIHNlZW1zIHRvIG9sZCAodmVyc2lv biAkX3ZlcnNpb24pLiAgV2UgbmVlZCBhdCBsZWFzdCAkYm9vc3RfbGliX3ZlcnNpb25fc2hvcnRl bicpCisrCQkJZmkKKysJCWVsc2UKKysJCQlBQ19TVUJTVChCT09TVF9DRkxBR1MpCisrCQkJQUNf U1VCU1QoQk9PU1RfTElCUykKKysJCQlBQ19ERUZJTkUoSEFWRV9CT09TVCwsW2RlZmluZSBpZiB0 aGUgQm9vc3QgbGlicmFyeSBpcyBhdmFpbGFibGVdKQorKworKyMKKysjIEJvb3N0OjpGaWxlc3lz dGVtCisrIworKwkJCUFDX0NBQ0hFX0NIRUNLKFt3aGV0aGVyIHRoZSBCb29zdDo6RmlsZXN5c3Rl bSBsaWJyYXJ5IGlzIGF2YWlsYWJsZV0sCisrCQkJCQkJICAgYXhfY3ZfYm9vc3RfZmlsZXN5c3Rl bSwKKysJCQkJCQlbQUNfTEFOR19TQVZFCisrCQkJIEFDX0xBTkdfQ1BMVVNQTFVTCisrCQkJIEFD X0NPTVBJTEVfSUZFTFNFKEFDX0xBTkdfUFJPR1JBTShbW0AlOkBpbmNsdWRlIDxib29zdC9maWxl c3lzdGVtL3BhdGguaHBwPl1dLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg W1t1c2luZyBuYW1lc3BhY2UgYm9vc3Q6OmZpbGVzeXN0ZW07CisrICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBwYXRoIG15X3BhdGgoICJmb28vYmFyL2RhdGEudHh0IiApOworKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDA7XV0pLAorKyAgICAgICAg ICAgIAkJCQkgICAgICAgYXhfY3ZfYm9vc3RfZmlsZXN5c3RlbT15ZXMsIGF4X2N2X2Jvb3N0X2Zp bGVzeXN0ZW09bm8pCisrCQkgCQkgICAgICAgIAkJCUFDX0xBTkdfUkVTVE9SRQorKwkJCV0pCisr CQkJaWYgdGVzdCAiJGF4X2N2X2Jvb3N0X2ZpbGVzeXN0ZW0iID0gInllcyI7IHRoZW4KKysJCQkJ QUNfREVGSU5FKEhBVkVfQk9PU1RfRklMRVNZU1RFTSwsW2RlZmluZSBpZiB0aGUgQm9vc3Q6OkZJ TEVTWVNURU0gbGlicmFyeSBpcyBhdmFpbGFibGVdKQorKwkJCQlCTj1ib29zdF9maWxlc3lzdGVt CisrCQkJCWZvciBheF9saWIgaW4gJEJOICRCTi0kQ0MgJEJOLSRDQy1tdCAkQk4tJENDLW10LXMg JEJOLSRDQy1zIFwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWIkQk4gbGliJEJO LSRDQyBsaWIkQk4tJENDLW10IGxpYiRCTi0kQ0MtbXQtcyBcCisrICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgbGliJEJOLSRDQy1zICRCTi1tZ3cgJEJOLW1ndy1tdCAkQk4tbWd3LW10LXMg XAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRCTi1tZ3ctcyAkQk4tJENDLW10LSRC T09TVExJQl9NRFdfVkVSU0lPTiA7IGRvCisrCQkJCSAgICBBQ19DSEVDS19MSUIoJGF4X2xpYiwg bWFpbiwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbQk9PU1RfRklMRVNZU1RF TV9MSUI9Ii1sJGF4X2xpYiIgQUNfU1VCU1QoQk9PU1RfRklMRVNZU1RFTV9MSUIpIGxpbmtfZmls ZXN5c3RlbT0ieWVzIiBicmVha10sCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg W2xpbmtfZmlsZXN5c3RlbT0ibm8iXSkKKysgIAkJCQlkb25lCisrCQkJCWlmIHRlc3QgIngkbGlu a19maWxlc3lzdGVtIiA9ICJ4bm8iOyB0aGVuCisrCQkJCQlBQ19NU0dfTk9USUNFKENvdWxkIG5v dCBsaW5rIGFnYWluc3QgJGF4X2xpYiAhKQorKwkJCQlmaQorKwkJCWZpCisrCisrIworKyMgQm9v c3Q6OlN5c3RlbQorKyMKKysgICAgICAgICAgICBBQ19DQUNIRV9DSEVDSyhbd2hldGhlciB0aGUg Qm9vc3Q6OlN5c3RlbSBsaWJyYXJ5IGlzIGF2YWlsYWJsZV0sCisrICAgICAgICAgICAgICAgICAg ICAgICAgICAgYXhfY3ZfYm9vc3Rfc3lzdGVtLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAg IFtBQ19MQU5HX1NBVkUKKysgICAgICAgICAgICBBQ19MQU5HX0NQTFVTUExVUworKyAgICAgICAg ICAgIEFDX0NPTVBJTEVfSUZFTFNFKEFDX0xBTkdfUFJPR1JBTShbW0AlOkBpbmNsdWRlIDxib29z dC9zeXN0ZW0vZXJyb3JfY29kZS5ocHA+XV0sCisrICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBbW3VzaW5nIG5hbWVzcGFjZSBib29zdDo6c3lzdGVtOworKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgZXJyb3JfY29kZSBteUVycm9yQ29kZSgpOworKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDA7XV0pLAorKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgYXhfY3ZfYm9vc3Rfc3lzdGVtPXllcywgYXhfY3ZfYm9vc3Rf c3lzdGVtPW5vKQorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFDX0xBTkdf UkVTVE9SRQorKyAgICAgICAgICAgIF0pCisrICAgICAgICAgICAgaWYgdGVzdCAiJGF4X2N2X2Jv b3N0X3N5c3RlbSIgPSAieWVzIjsgdGhlbgorKyAgICAgICAgICAgICAgICAgQUNfREVGSU5FKEhB VkVfQk9PU1RfU1lTVEVNLCxbZGVmaW5lIGlmIHRoZSBCb29zdDo6U1lTVEVNIGxpYnJhcnkgaXMg YXZhaWxhYmxlXSkKKysgICAgICAgICAgICAgICAgIEJOPWJvb3N0X3N5c3RlbQorKyAgICAgICAg ICAgICAgICAgZm9yIGF4X2xpYiBpbiAkQk4gJEJOLSRDQyAkQk4tJENDLW10ICRCTi0kQ0MtbXQt cyAkQk4tJENDLXMgXAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpYiRCTiBsaWIk Qk4tJENDIGxpYiRCTi0kQ0MtbXQgbGliJEJOLSRDQy1tdC1zIGxpYiRCTi0kQ0MtcyBcCisrICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgJEJOLW1ndyAkQk4tbWd3ICRCTi1tZ3ctbXQgJEJO LW1ndy1tdC1zICRCTi1tZ3ctcyA7IGRvCisrICAgICAgICAgICAgICAgICAgICAgQUNfQ0hFQ0tf TElCKCRheF9saWIsIG1haW4sCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW0JP T1NUX1NZU1RFTV9MSUI9Ii1sJGF4X2xpYiIgQUNfU1VCU1QoQk9PU1RfU1lTVEVNX0xJQikgbGlu a19zeXN0ZW09InllcyIgYnJlYWtdLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFtsaW5rX3N5c3RlbT0ibm8iXSkKKysgICAgICAgICAgICAgICAgIGRvbmUKKysgICAgICAgICAg ICAgICAgIGlmIHRlc3QgIngkbGlua19zeXN0ZW0iID0gInhubyI7IHRoZW4KKysgICAgICAgICAg ICAgICAgICAgICBBQ19NU0dfTk9USUNFKENvdWxkIG5vdCBsaW5rIGFnYWluc3QgJGF4X2xpYiAh KQorKyAgICAgICAgICAgICAgICAgZmkKKysgICAgICAgICAgICBmaQorKworKyMKKysjIEJvb3N0 OjpQcm9ncmFtX09wdGlvbnMKKysjCisrCQkJQUNfQ0FDSEVfQ0hFQ0soW3doZXRoZXIgdGhlIEJv b3N0OjpQcm9ncmFtX09wdGlvbnMgbGlicmFyeSBpcyBhdmFpbGFibGVdLAorKwkJCQkJCSAgIGF4 X2N2X2Jvb3N0X3Byb2dyYW1fb3B0aW9ucywKKysJCQkJCQkgICBbQUNfTEFOR19TQVZFCisrICAg ICAgICAgICAgICAgICAgICAgICAgICAgQUNfTEFOR19DUExVU1BMVVMKKysJCQkgICAgICAgICAg ICAgICBBQ19DT01QSUxFX0lGRUxTRShBQ19MQU5HX1BST0dSQU0oW1tAJTpAaW5jbHVkZSA8Ym9v c3QvcHJvZ3JhbV9vcHRpb25zLmhwcD5dXSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFtbYm9vc3Q6OnByb2dyYW1fb3B0aW9uczo6b3B0aW9uc19kZXNjcmlwdGlvbiBnZW5l cmljKCJHZW5lcmljIG9wdGlvbnMiKTsKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHJldHVybiAwO11dKSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICBheF9jdl9ib29z dF9wcm9ncmFtX29wdGlvbnM9eWVzLCBheF9jdl9ib29zdF9wcm9ncmFtX29wdGlvbnM9bm8pCisr CQkJICAgICAgICAgICAgICAgQUNfTEFOR19SRVNUT1JFCisrCQkJXSkKKysJCQlpZiB0ZXN0ICIk YXhfY3ZfYm9vc3RfcHJvZ3JhbV9vcHRpb25zIiA9IHllczsgdGhlbgorKwkJCQlBQ19ERUZJTkUo SEFWRV9CT09TVF9QUk9HUkFNX09QVElPTlMsLFtkZWZpbmUgaWYgdGhlIEJvb3N0OjpQUk9HUkFN X09QVElPTlMgbGlicmFyeSBpcyBhdmFpbGFibGVdKQorKwkJCQlCTj1ib29zdF9wcm9ncmFtX29w dGlvbnMKKysJCQkJZm9yIGF4X2xpYiBpbiAkQk4gJEJOLSRDQyAkQk4tJENDLW10ICRCTi0kQ0Mt bXQtcyAkQk4tJENDLXMgXAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpYiRCTiBs aWIkQk4tJENDIGxpYiRCTi0kQ0MtbXQgbGliJEJOLSRDQy1tdC1zIFwKKysgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBsaWIkQk4tJENDLXMgJEJOLW1ndyAkQk4tbWd3LW10IFwKKysgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAkQk4tbWd3LW10LXMgJEJOLW1ndy1zIFwKKysgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAkQk4tJENDLW10LSRCT09TVExJQl9NRFdfVkVSU0lP TjsgZG8KKysJCQkJICAgIEFDX0NIRUNLX0xJQigkYXhfbGliLCBtYWluLAorKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFtCT09TVF9QUk9HUkFNX09QVElPTlNfTElCPSItbCRheF9s aWIiIEFDX1NVQlNUKEJPT1NUX1BST0dSQU1fT1BUSU9OU19MSUIpIGxpbmtfcHJvZ3JhbV9vcHRp b25zPSJ5ZXMiIGJyZWFrXSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbGlu a19wcm9ncmFtX29wdGlvbnM9Im5vIl0pCisrICAJCQkJZG9uZQorKwkJCQlpZiB0ZXN0ICJ4JGxp bmtfcHJvZ3JhbV9vcHRpb25zPSJubyIiID0gInhubyI7IHRoZW4KKysJCQkJCUFDX01TR19OT1RJ Q0UoQ291bGQgbm90IGxpbmsgYWdhaW5zdCAkYXhfbGliICEpCisrCQkJCWZpCisrCQkJZmkKKysK KysjCisrIyBCb29zdDo6VGhyZWFkcworKyMKKysJCQlBQ19DQUNIRV9DSEVDSyh3aGV0aGVyIHRo ZSBCb29zdDo6VGhyZWFkIGxpYnJhcnkgaXMgYXZhaWxhYmxlLAorKwkJCQkJCSAgIGF4X2N2X2Jv b3N0X3RocmVhZCwKKysJCQkJCQlbQUNfTEFOR19TQVZFCisrCQkJIEFDX0xBTkdfQ1BMVVNQTFVT CisrCQkJIENYWEZMQUdTX1NBVkU9JENYWEZMQUdTCisrCisrCQkJIGlmIHRlc3QgIngkYnVpbGRf b3MiID0gInhzb2xhcmlzIiA7IHRoZW4KKysgIAkJCQkgQ1hYRkxBR1M9Ii1wdGhyZWFkcyAkQ1hY RkxBR1MiCisrCQkJIGVsaWYgdGVzdCAieCRidWlsZF9vcyIgPSAieG1pbmczMiIgOyB0aGVuCisr CQkJCSBDWFhGTEFHUz0iLW10aHJlYWRzICRDWFhGTEFHUyIKKysJCQkgZWxzZQorKwkJCQlDWFhG TEFHUz0iLXB0aHJlYWQgJENYWEZMQUdTIgorKwkJCSBmaQorKwkJCSBBQ19DT01QSUxFX0lGRUxT RShBQ19MQU5HX1BST0dSQU0oW1tAJTpAaW5jbHVkZSA8Ym9vc3QvdGhyZWFkL3RocmVhZC5ocHA+ XV0sCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbW2Jvb3N0Ojp0aHJlYWRf Z3JvdXAgdGhyZHM7CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4g MDtdXSksCisrICAgICAgICAgICAgICAgICAgIGF4X2N2X2Jvb3N0X3RocmVhZD15ZXMsIGF4X2N2 X2Jvb3N0X3RocmVhZD1ubykKKysJCQkgQ1hYRkxBR1M9JENYWEZMQUdTX1NBVkUKKysJCQkgQUNf TEFOR19SRVNUT1JFCisrCQkJXSkKKysJCQlpZiB0ZXN0ICJ4JGF4X2N2X2Jvb3N0X3RocmVhZCIg PSAieHllcyI7IHRoZW4KKysgICAgICAgICAgICAgICBpZiB0ZXN0ICJ4JGJ1aWxkX29zIiA9ICJ4 c29sYXJpcyIgOyB0aGVuCisrIAkJCQkgIEJPT1NUX0NGTEFHUz0iLXB0aHJlYWRzICRCT09TVF9D RkxBR1MiCisrCQkJICAgZWxpZiB0ZXN0ICJ4JGJ1aWxkX29zIiA9ICJ4bWluZzMyIiA7IHRoZW4K KysgCQkJCSAgQk9PU1RfQ0ZMQUdTPSItbXRocmVhZHMgJEJPT1NUX0NGTEFHUyIKKysJCQkgICBl bHNlCisrCQkJCSAgQk9PU1RfQ0ZMQUdTPSItcHRocmVhZCAkQk9PU1RfQ0ZMQUdTIgorKwkJCSAg IGZpCisrCisrCQkJCUFDX1NVQlNUKEJPT1NUX0NGTEFHUykKKysJCQkJQUNfREVGSU5FKEhBVkVf Qk9PU1RfVEhSRUFELCxbZGVmaW5lIGlmIHRoZSBCb29zdDo6VEhSRUFEIGxpYnJhcnkgaXMgYXZh aWxhYmxlXSkKKysJCQkJQk49Ym9vc3RfdGhyZWFkCisrCQkJCWZvciBheF9saWIgaW4gJEJOICRC Ti1tdCAkQk4tJENDICRCTi0kQ0MtbXQgXAorKwkJCQkJCSAgIAkgICRCTi0kQ0MtbXQtcyAkQk4t JENDLXMgXAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpYiRCTiBsaWIkQk4tJEND IGxpYiRCTi0kQ0MtbXQgbGliJEJOLSRDQy1tdC1zIFwKKysgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBsaWIkQk4tJENDLXMgJEJOLW1ndyAkQk4tbWd3LW10IFwKKysgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAkQk4tbWd3LW10LXMgJEJOLW1ndy1zICBcCisrICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgJEJOLSRDQy1tdC0kQk9PU1RMSUJfTURXX1ZFUlNJT04gOyBkbwor KwkJCQkgICAgQUNfQ0hFQ0tfTElCKCRheF9saWIsIG1haW4sIFtCT09TVF9USFJFQURfTElCPSIt bCRheF9saWIiIEFDX1NVQlNUKEJPT1NUX1RIUkVBRF9MSUIpIGxpbmtfdGhyZWFkPSJ5ZXMiIGJy ZWFrXSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbGlua190aHJlYWQ9Im5v Il0pCisrICAJCQkJZG9uZQorKwkJCQlpZiB0ZXN0ICJ4JGxpbmtfdGhyZWFkIiA9ICJ4bm8iOyB0 aGVuCisrCQkJCQlBQ19NU0dfTk9USUNFKENvdWxkIG5vdCBsaW5rIGFnYWluc3QgJGF4X2xpYiAh KQorKwkJCQlmaQorKwkJCWZpCisrCisrIworKyMgQm9vc3Q6OklPU3RyZWFtcworKyMKKysJCQlB Q19DQUNIRV9DSEVDSyh3aGV0aGVyIHRoZSBCb29zdDo6SU9TdHJlYW1zIGxpYnJhcnkgaXMgYXZh aWxhYmxlLAorKwkJCQkJCSAgIGF4X2N2X2Jvb3N0X2lvc3RyZWFtcywKKysJCQkJCQlbQUNfTEFO R19TQVZFCisrCQkJIEFDX0xBTkdfQ1BMVVNQTFVTCisrCQkJIEFDX0NPTVBJTEVfSUZFTFNFKEFD X0xBTkdfUFJPR1JBTShbW0AlOkBpbmNsdWRlIDxib29zdC9pb3N0cmVhbXMvZmlsdGVyaW5nX3N0 cmVhbS5ocHA+CisrCQkJCQkJCQkJCQkJIEAlOkBpbmNsdWRlIDxib29zdC9yYW5nZS9pdGVyYXRv cl9yYW5nZS5ocHA+CisrCQkJCQkJCQkJCQkJXV0sCisrICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBbW3N0ZDo6c3RyaW5nICBpbnB1dCA9ICJIZWxsbyBXb3JsZCEiOworKwkJCQkJ CQkJCSBuYW1lc3BhY2UgaW8gPSBib29zdDo6aW9zdHJlYW1zOworKwkJCQkJCQkJCSBpbzo6Zmls dGVyaW5nX2lzdHJlYW0gIGluKGJvb3N0OjptYWtlX2l0ZXJhdG9yX3JhbmdlKGlucHV0KSk7Cisr CQkJCQkJCQkJIHJldHVybiAwOworKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg XV0pLAorKyAgICAgICAgICAgICAgICAgICBheF9jdl9ib29zdF9pb3N0cmVhbXM9eWVzLCBheF9j dl9ib29zdF9pb3N0cmVhbXM9bm8pCisrCQkJIEFDX0xBTkdfUkVTVE9SRQorKwkJCV0pCisrCQkJ aWYgdGVzdCAieCRheF9jdl9ib29zdF9pb3N0cmVhbXMiID0gInh5ZXMiOyB0aGVuCisrCQkJCUFD X0RFRklORShIQVZFX0JPT1NUX0lPU1RSRUFNUywsW2RlZmluZSBpZiB0aGUgQm9vc3Q6OklPU3Ry ZWFtcyBsaWJyYXJ5IGlzIGF2YWlsYWJsZV0pCisrCQkJCUJOPWJvb3N0X2lvc3RyZWFtcworKwkJ CQlmb3IgYXhfbGliIGluICRCTiAkQk4tJENDICRCTi0kQ0MtbXQgJEJOLSRDQy1tdC1zICRCTi0k Q0MtcyBcCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGliJEJOIGxpYiRCTi0kQ0Mg bGliJEJOLSRDQy1tdCBsaWIkQk4tJENDLW10LXMgXAorKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGxpYiRCTi0kQ0MtcyAkQk4tbWd3ICRCTi1tZ3ctbXQgXAorKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICRCTi1tZ3ctbXQtcyAkQk4tbWd3LXMgIFwKKysgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAkQk4tJENDLW10LSRCT09TVExJQl9NRFdfVkVSU0lPTiA7IGRvCisr CQkJCSAgICBBQ19DSEVDS19MSUIoJGF4X2xpYiwgbWFpbiwgW0JPT1NUX0lPU1RSRUFNU19MSUI9 Ii1sJGF4X2xpYiIgQUNfU1VCU1QoQk9PU1RfSU9TVFJFQU1TX0xJQikgbGlua190aHJlYWQ9Inll cyIgYnJlYWtdLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsaW5rX3RocmVh ZD0ibm8iXSkKKysgIAkJCQlkb25lCisrCQkJCWlmIHRlc3QgIngkbGlua190aHJlYWQiID0gInhu byI7IHRoZW4KKysJCQkJCUFDX01TR19OT1RJQ0UoQ291bGQgbm90IGxpbmsgYWdhaW5zdCAkYXhf bGliICEpCisrCQkJCWZpCisrCQkJZmkKKysKKysjCisrIyBCb29zdDo6U2VyaWFsaXphdGlvbgor KyMKKysJCQlBQ19DQUNIRV9DSEVDSyh3aGV0aGVyIHRoZSBCb29zdDo6U2VyaWFsaXphdGlvbiBs aWJyYXJ5IGlzIGF2YWlsYWJsZSwKKysJCQkJCQkgICBheF9jdl9ib29zdF9zZXJpYWxpemF0aW9u LAorKwkJCQkJCVtBQ19MQU5HX1NBVkUKKysJCQkgQUNfTEFOR19DUExVU1BMVVMKKysJCQkgQUNf Q09NUElMRV9JRkVMU0UoQUNfTEFOR19QUk9HUkFNKFtbQCU6QGluY2x1ZGUgPGZzdHJlYW0+Cisr CQkJCQkJCQkJCQkJIEAlOkBpbmNsdWRlIDxib29zdC9hcmNoaXZlL3RleHRfb2FyY2hpdmUuaHBw PgorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAJTpA aW5jbHVkZSA8Ym9vc3QvYXJjaGl2ZS90ZXh0X2lhcmNoaXZlLmhwcD4KKysJCQkJCQkJCQkJCQld XSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtbc3RkOjpvZnN0cmVhbSBv ZnMoImZpbGVuYW1lIik7CisrCQkJCQkJCQkJYm9vc3Q6OmFyY2hpdmU6OnRleHRfb2FyY2hpdmUg b2Eob2ZzKTsKKysJCQkJCQkJCQkgcmV0dXJuIDA7CisrICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBdXSksCisrICAgICAgICAgICAgICAgICAgIGF4X2N2X2Jvb3N0X3NlcmlhbGl6 YXRpb249eWVzLCBheF9jdl9ib29zdF9zZXJpYWxpemF0aW9uPW5vKQorKwkJCSBBQ19MQU5HX1JF U1RPUkUKKysJCQldKQorKwkJCWlmIHRlc3QgIngkYXhfY3ZfYm9vc3Rfc2VyaWFsaXphdGlvbiIg PSAieHllcyI7IHRoZW4KKysJCQkJQUNfREVGSU5FKEhBVkVfQk9PU1RfU0VSSUFMSVpBVElPTiws W2RlZmluZSBpZiB0aGUgQm9vc3Q6OlNlcmlhbGl6YXRpb24gbGlicmFyeSBpcyBhdmFpbGFibGVd KQorKwkJCQlCTj1ib29zdF9zZXJpYWxpemF0aW9uCisrCQkJCWZvciBheF9saWIgaW4gJEJOICRC Ti0kQ0MgJEJOLSRDQy1tdCAkQk4tJENDLW10LXMgJEJOLSRDQy1zIFwKKysgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBsaWIkQk4gbGliJEJOLSRDQyBsaWIkQk4tJENDLW10IGxpYiRCTi0k Q0MtbXQtcyBcCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGliJEJOLSRDQy1zICRC Ti1tZ3cgJEJOLW1ndy1tdCBcCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJEJOLW1n dy1tdC1zICRCTi1tZ3ctcyAgXAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRCTi0k Q0MtbXQtJEJPT1NUTElCX01EV19WRVJTSU9OIDsgZG8KKysJCQkJICAgIEFDX0NIRUNLX0xJQigk YXhfbGliLCBtYWluLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtCT09TVF9T RVJJQUxJWkFUSU9OX0xJQj0iLWwkYXhfbGliIiBBQ19TVUJTVChCT09TVF9TRVJJQUxJWkFUSU9O X0xJQikgbGlua190aHJlYWQ9InllcyIgYnJlYWtdLAorKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFtsaW5rX3RocmVhZD0ibm8iXSkKKysgIAkJCQlkb25lCisrCQkJCUJOPWJvb3N0 X3dzZXJpYWxpemF0aW9uCisrCQkJCWZvciBheF9saWIgaW4gJEJOICRCTi0kQ0MgJEJOLSRDQy1t dCAkQk4tJENDLW10LXMgJEJOLSRDQy1zIFwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBsaWIkQk4gbGliJEJOLSRDQyBsaWIkQk4tJENDLW10IGxpYiRCTi0kQ0MtbXQtcyBcCisrICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgbGliJEJOLSRDQy1zICRCTi1tZ3cgJEJOLW1ndy1t dCBcCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJEJOLW1ndy1tdC1zICRCTi1tZ3ct cyAgXAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRCTi0kQ0MtbXQtJEJPT1NUTElC X01EV19WRVJTSU9OIDsgZG8KKysJCQkJICAgIEFDX0NIRUNLX0xJQigkYXhfbGliLCBtYWluLAor KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtCT09TVF9XU0VSSUFMSVpBVElPTl9M SUI9Ii1sJGF4X2xpYiIgQUNfU1VCU1QoQk9PU1RfV1NFUklBTElaQVRJT05fTElCKSBsaW5rX3Ro cmVhZD0ieWVzIiBicmVha10sCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xp bmtfdGhyZWFkPSJubyJdKQorKyAgCQkJCWRvbmUKKysJCQkJaWYgdGVzdCAieCRsaW5rX3RocmVh ZCIgPSAieG5vIjsgdGhlbgorKwkJCQkJQUNfTVNHX05PVElDRShDb3VsZCBub3QgbGluayBhZ2Fp bnN0ICRheF9saWIgISkKKysJCQkJZmkKKysJCQlmaQorKworKyMKKysjIEJvb3N0OjpTaWduYWxz CisrIworKwkJCUFDX0NBQ0hFX0NIRUNLKHdoZXRoZXIgdGhlIEJvb3N0OjpTaWduYWxzIGxpYnJh cnkgaXMgYXZhaWxhYmxlLAorKwkJCQkJCSAgIGF4X2N2X2Jvb3N0X3NpZ25hbHMsCisrCQkJCQkJ W0FDX0xBTkdfU0FWRQorKwkJCSBBQ19MQU5HX0NQTFVTUExVUworKwkJCSBBQ19DT01QSUxFX0lG RUxTRShBQ19MQU5HX1BST0dSQU0oW1tAJTpAaW5jbHVkZSA8Ym9vc3Qvc2lnbmFsLmhwcD4KKysJ CQkJCQkJCQkJCQldXSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtbYm9v c3Q6OnNpZ25hbDx2b2lkICgpPiBzaWc7CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHJldHVybiAwOworKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXV0p LAorKyAgICAgICAgICAgICAgICAgICBheF9jdl9ib29zdF9zaWduYWxzPXllcywgYXhfY3ZfYm9v c3Rfc2lnbmFscz1ubykKKysJCQkgQUNfTEFOR19SRVNUT1JFCisrCQkJXSkKKysJCQlpZiB0ZXN0 ICJ4JGF4X2N2X2Jvb3N0X3NpZ25hbHMiID0gInh5ZXMiOyB0aGVuCisrCQkJCUFDX0RFRklORShI QVZFX0JPT1NUX1NJR05BTFMsLFtkZWZpbmUgaWYgdGhlIEJvb3N0OjpTaWduYWxzIGxpYnJhcnkg aXMgYXZhaWxhYmxlXSkKKysJCQkJQk49Ym9vc3Rfc2lnbmFscworKwkJCQlmb3IgYXhfbGliIGlu ICRCTiAkQk4tJENDICRCTi0kQ0MtbXQgJEJOLSRDQy1tdC1zICRCTi0kQ0MtcyBcCisrICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgbGliJEJOIGxpYiRCTi0kQ0MgbGliJEJOLSRDQy1tdCBs aWIkQk4tJENDLW10LXMgXAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpYiRCTi0k Q0MtcyAkQk4tbWd3ICRCTi1tZ3ctbXQgXAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICRCTi1tZ3ctbXQtcyAkQk4tbWd3LXMgIFwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAkQk4tJENDLW10LSRCT09TVExJQl9NRFdfVkVSU0lPTiA7IGRvCisrCQkJCSAgICBBQ19DSEVD S19MSUIoJGF4X2xpYiwgbWFpbiwgW0JPT1NUX1NJR05BTFNfTElCPSItbCRheF9saWIiIEFDX1NV QlNUKEJPT1NUX1NJR05BTFNfTElCKSBsaW5rX3NpZ25hbHM9InllcyIgYnJlYWtdLAorKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsaW5rX3NpZ25hbHM9Im5vIl0pCisrICAJCQkJ ZG9uZQorKwkJCQlpZiB0ZXN0ICJ4JGxpbmtfc2lnbmFscyIgPSAieG5vIjsgdGhlbgorKwkJCQkJ QUNfTVNHX05PVElDRShDb3VsZCBub3QgbGluayBhZ2FpbnN0ICRheF9saWIgISkKKysJCQkJZmkK KysJCQlmaQorKworKyMKKysjIEJvb3N0OjpEYXRlX1RpbWUKKysjCisrCQkJQUNfQ0FDSEVfQ0hF Q0sod2hldGhlciB0aGUgQm9vc3Q6OkRhdGVfVGltZSBsaWJyYXJ5IGlzIGF2YWlsYWJsZSwKKysJ CQkJCQkgICBheF9jdl9ib29zdF9kYXRlX3RpbWUsCisrCQkJCQkJW0FDX0xBTkdfU0FWRQorKwkJ CSBBQ19MQU5HX0NQTFVTUExVUworKwkJCSBBQ19DT01QSUxFX0lGRUxTRShBQ19MQU5HX1BST0dS QU0oW1tAJTpAaW5jbHVkZSA8Ym9vc3QvZGF0ZV90aW1lL2dyZWdvcmlhbi9ncmVnb3JpYW5fdHlw ZXMuaHBwPgorKwkJCQkJCQkJCQkJCV1dLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgW1t1c2luZyBuYW1lc3BhY2UgYm9vc3Q6OmdyZWdvcmlhbjsgZGF0ZSBkKDIwMDIsSmFu LDEwKTsKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDA7Cisr ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdXSksCisrICAgICAgICAgICAgICAg ICAgIGF4X2N2X2Jvb3N0X2RhdGVfdGltZT15ZXMsIGF4X2N2X2Jvb3N0X2RhdGVfdGltZT1ubykK KysJCQkgQUNfTEFOR19SRVNUT1JFCisrCQkJXSkKKysJCQlpZiB0ZXN0ICJ4JGF4X2N2X2Jvb3N0 X2RhdGVfdGltZSIgPSAieHllcyI7IHRoZW4KKysJCQkJQUNfREVGSU5FKEhBVkVfQk9PU1RfREFU RV9USU1FLCxbZGVmaW5lIGlmIHRoZSBCb29zdDo6RGF0ZV9UaW1lIGxpYnJhcnkgaXMgYXZhaWxh YmxlXSkKKysJCQkJQk49Ym9vc3RfZGF0ZV90aW1lCisrCQkJCWZvciBheF9saWIgaW4gJEJOICRC Ti0kQ0MgJEJOLSRDQy1tdCAkQk4tJENDLW10LXMgJEJOLSRDQy1zIFwKKysgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBsaWIkQk4gbGliJEJOLSRDQyBsaWIkQk4tJENDLW10IGxpYiRCTi0k Q0MtbXQtcyBcCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGliJEJOLSRDQy1zICRC Ti1tZ3cgJEJOLW1ndy1tdCBcCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJEJOLW1n dy1tdC1zICRCTi1tZ3ctcyAgXAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRCTi0k Q0MtbXQtJEJPT1NUTElCX01EV19WRVJTSU9OIDsgZG8KKysJCQkJICAgIEFDX0NIRUNLX0xJQigk YXhfbGliLCBtYWluLCBbQk9PU1RfREFURV9USU1FX0xJQj0iLWwkYXhfbGliIiBBQ19TVUJTVChC T09TVF9EQVRFX1RJTUVfTElCKSBsaW5rX2RhdGVfdGltZT0ieWVzIiBicmVha10sCisrICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xpbmtfZGF0ZV90aW1lPSJubyJdKQorKyAgCQkJ CWRvbmUKKysJCQkJaWYgdGVzdCAieCRsaW5rX2RhdGVfdGltZSI9Im5vIiA9ICJ4bm8iOyB0aGVu CisrCQkJCQlBQ19NU0dfTk9USUNFKENvdWxkIG5vdCBsaW5rIGFnYWluc3QgJGF4X2xpYiAhKQor KwkJCQlmaQorKwkJCWZpCisrCisrIworKyMgQm9vc3Q6OlJlZ2V4CisrIworKwkJCUFDX0NBQ0hF X0NIRUNLKHdoZXRoZXIgdGhlIEJvb3N0OjpSZWdleCBsaWJyYXJ5IGlzIGF2YWlsYWJsZSwKKysJ CQkJCQkgICBheF9jdl9ib29zdF9yZWdleCwKKysJCQkJCQlbQUNfTEFOR19TQVZFCisrCQkJIEFD X0xBTkdfQ1BMVVNQTFVTCisrCQkJIEFDX0NPTVBJTEVfSUZFTFNFKEFDX0xBTkdfUFJPR1JBTShb W0AlOkBpbmNsdWRlIDxib29zdC9yZWdleC5ocHA+CisrCQkJCQkJCQkJCQkJXV0sCisrICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbW2Jvb3N0OjpyZWdleCByKCk7IHJldHVybiAw O11dKSwKKysgICAgICAgICAgICAgICAgICAgYXhfY3ZfYm9vc3RfcmVnZXg9eWVzLCBheF9jdl9i b29zdF9yZWdleD1ubykKKysJCQkgQUNfTEFOR19SRVNUT1JFCisrCQkJXSkKKysJCQlpZiB0ZXN0 ICJ4JGF4X2N2X2Jvb3N0X3JlZ2V4IiA9ICJ4eWVzIjsgdGhlbgorKwkJCQlBQ19ERUZJTkUoSEFW RV9CT09TVF9SRUdFWCwsW2RlZmluZSBpZiB0aGUgQm9vc3Q6OlJlZ2V4IGxpYnJhcnkgaXMgYXZh aWxhYmxlXSkKKysJCQkJQk49Ym9vc3RfcmVnZXgKKysJCQkJZm9yIGF4X2xpYiBpbiAkQk4gJEJO LSRDQyAkQk4tJENDLW10ICRCTi0kQ0MtbXQtcyAkQk4tJENDLXMgXAorKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGxpYiRCTiBsaWIkQk4tJENDIGxpYiRCTi0kQ0MtbXQgbGliJEJOLSRD Qy1tdC1zIFwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWIkQk4tJENDLXMgJEJO LW1ndyAkQk4tbWd3LW10IFwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkQk4tbWd3 LW10LXMgJEJOLW1ndy1zICBcCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJEJOLSRD Qy1tdC0kQk9PU1RMSUJfTURXX1ZFUlNJT04gOyBkbworKwkJCQkgICAgQUNfQ0hFQ0tfTElCKCRh eF9saWIsIG1haW4sIFtCT09TVF9SRUdFWF9MSUI9Ii1sJGF4X2xpYiIgQUNfU1VCU1QoQk9PU1Rf UkVHRVhfTElCKSBsaW5rX3RocmVhZD0ieWVzIiBicmVha10sCisrICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgW2xpbmtfdGhyZWFkPSJubyJdKQorKyAgCQkJCWRvbmUKKysJCQkJaWYg dGVzdCAieCRsaW5rX3RocmVhZCIgPSAieG5vIjsgdGhlbgorKwkJCQkJQUNfTVNHX05PVElDRShD b3VsZCBub3QgbGluayBhZ2FpbnN0ICRheF9saWIgISkKKysJCQkJZmkKKysJCQlmaQorKworKyMK KysjIEJvb3N0OjpBU0lPOiBpdCBuZWVkcyBCb29zdC5TeXN0ZW0sIEJvb3N0LlJlZ2V4LCBCb29z dC5UaHJlYWQgYW5kIAorKyMgQm9vc3QuRGF0ZVRpbWUsIGJ1dCBkb2VzIG5vdCBwcm9kdWNlIGFu eSAob3RoZXIpIGxpYnJhcnkuCisrIworKwkJCUFDX0NBQ0hFX0NIRUNLKHdoZXRoZXIgdGhlIEJv b3N0OjpBc2lvIGxpYnJhcnkgaXMgYXZhaWxhYmxlLAorKwkJCQkJCSAgIGF4X2N2X2Jvb3N0X2Fz aW8sCisrCQkJCQkJW0FDX0xBTkdfU0FWRQorKwkJCSBBQ19MQU5HX0NQTFVTUExVUworKwkJCSBB Q19DT01QSUxFX0lGRUxTRShBQ19MQU5HX1BST0dSQU0oW1tAJTpAaW5jbHVkZSA8Ym9vc3QvYXNp by5ocHA+XV0sCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbW2Jvb3N0Ojph c2lvOjppb19zZXJ2aWNlIGlvOworKwkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBi b29zdDo6c3lzdGVtOjplcnJvcl9jb2RlIHRpbWVyX3Jlc3VsdDsKKysJICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgYm9vc3Q6OmFzaW86OmRlYWRsaW5lX3RpbWVyIHQoaW8pOworKwkg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0LmNhbmNlbCgpOworKwkgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBpby5ydW5fb25lKCk7CisrCSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHJldHVybiAwOworKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgXV0pLAorKyAgICAgICAgICAgICAgICAgICBheF9jdl9ib29zdF9hc2lvPXllcywgYXhf Y3ZfYm9vc3RfYXNpbz1ubykKKysJCQkgQUNfTEFOR19SRVNUT1JFCisrCQkJXSkKKysJCQlpZiB0 ZXN0ICJ4JGF4X2N2X2Jvb3N0X2FzaW8iID0gInh5ZXMiOyB0aGVuCisrCQkJICAgQUNfREVGSU5F KEhBVkVfQk9PU1RfQVNJTywsW2RlZmluZSBpZiB0aGUgQm9vc3Q6OkFzaW8gbGlicmFyeSBpcyBh dmFpbGFibGVdKQorKwkJCSAgIEJPT1NUX0FTSU9fTElCPSIke0JPT1NUX1NZU1RFTV9MSUJ9ICR7 Qk9PU1RfVEhSRUFEX0xJQn0iCisrCQkJICAgQk9PU1RfQVNJT19MSUI9IiR7Qk9PU1RfQVNJT19M SUJ9ICR7Qk9PU1RfREFURV9USU1FX0xJQn0iCisrCQkJICAgQk9PU1RfQVNJT19MSUI9IiR7Qk9P U1RfQVNJT19MSUJ9ICR7Qk9PU1RfUkVHRVhfTElCfSIKKysJCQkgICBCT09TVF9BU0lPX0xJQj0i JHtCT09TVF9BU0lPX0xJQn0gJHtCT09TVF9TRVJJQUxJWkFUSU9OX0xJQn0iCisrCQkJZmkKKysK KysjCisrIyBTdXBwb3J0IGZvciBQeXRob24gYW5kIE1QSSAoTVBJQ0gyLCBCb29zdDo6TVBJLCBC b29zdDo6UHl0aG9uLCAKKysjIEJvb3N0OjpTZXJpYWxpemF0aW9uLCBCb29zdDo6TVBJX1B5dGhv bikKKysjIE5vdGU6IG9uIHNvbWUgZGlzdHJpYnV0aW9ucyAoZS5nLiwgRGViaWFuKSwgQm9vc3Qu TVBJIHVzZXMgT3Blbk1QSSByYXRoZXIgCisrIyAgICAgICB0aGFuIE1QSUNIMgorKyMKKysJCQlD UFBGTEFHU19PUklHPSIke0NQUEZMQUdTfSIKKysJCQlDUFBGTEFHUz0iJHtDUFBGTEFHU30gJHtQ WVRIT05fQ0ZMQUdTfSAke01QSUdFTl9DRkxBR1N9IgorKyMJCQlDUFBGTEFHUz0iJHtDUFBGTEFH U30gJHtQWVRIT05fQ0ZMQUdTfSAke01QSUNIMl9DRkxBR1N9IgorKyMJCQlDUFBGTEFHUz0iJHtD UFBGTEFHU30gJHtQWVRIT05fQ0ZMQUdTfSAke09QRU5NUElfQ0ZMQUdTfSIKKysJCQlMREZMQUdT X09SSUc9IiR7TERGTEFHU30iCisrCQkJTERGTEFHUz0iJHtMREZMQUdTfSAke1BZVEhPTl9MSUJT fSAke1BZVEhPTl9BRERfTElCU30gJHtNUElHRU5fTElCU30iCisrIwkJCUxERkxBR1M9IiR7TERG TEFHU30gJHtQWVRIT05fTElCU30gJHtQWVRIT05fQUREX0xJQlN9ICR7TVBJQ0gyX0xJQlN9Igor KyMJCQlMREZMQUdTPSIke0xERkxBR1N9ICR7UFlUSE9OX0xJQlN9ICR7UFlUSE9OX0FERF9MSUJT fSAke09QRU5NUElfTElCU30iCisrCisrIworKyMgQm9vc3Q6OlB5dGhvbgorKyMKKysJCQlBQ19D QUNIRV9DSEVDSyh3aGV0aGVyIHRoZSBCb29zdDo6UHl0aG9uIGxpYnJhcnkgaXMgYXZhaWxhYmxl LAorKwkJCQkJCSAgIGF4X2N2X2Jvb3N0X3B5dGhvbiwKKysJCQlbQUNfTEFOR19TQVZFCisrCQkJ QUNfTEFOR19DUExVU1BMVVMKKysKKysJCSAgICBBQ19DT01QSUxFX0lGRUxTRShBQ19MQU5HX1BS T0dSQU0oW1tAJTpAaW5jbHVkZSA8Ym9vc3QvcHl0aG9uLmhwcD4KKysJCQljaGFyIGNvbnN0KiBn cmVldCgpIHsgcmV0dXJuICJoZWxsbyI7IH0gCisrCQkJQk9PU1RfUFlUSE9OX01PRFVMRShoZWxs b19leHQpIHsgYm9vc3Q6OnB5dGhvbjo6ZGVmKCJncmVldCIsIGdyZWV0KTt9CisrCQkJCQkJCQkJ CSAgIF1dKSwKKysgICAgICAgICAgICAgICAgICAgYXhfY3ZfYm9vc3RfcHl0aG9uPXllcywgYXhf Y3ZfYm9vc3RfcHl0aG9uPW5vKQorKwkJCSBBQ19MQU5HX1JFU1RPUkUKKysJCQldKQorKworKwkJ CUJPT1NUX1BZVEhPTl9MSUI9Ii1sYm9vc3RfcHl0aG9uICR7UFlUSE9OX0xJQlN9ICR7UFlUSE9O X0FERF9MSUJTfSIKKysJCQlBQ19TVUJTVChCT09TVF9QWVRIT05fTElCKQorKworKyMKKysjIEJv b3N0OjpNUEkKKysjCisrCQkJQUNfQ0FDSEVfQ0hFQ0sod2hldGhlciB0aGUgQm9vc3Q6Ok1waSBs aWJyYXJ5IGlzIGF2YWlsYWJsZSwKKysJCQkJCQkgICBheF9jdl9ib29zdF9tcGksCisrCQkJCQkJ W0FDX0xBTkdfU0FWRQorKwkJCSBBQ19MQU5HX0NQTFVTUExVUworKwkJCSBBQ19DT01QSUxFX0lG RUxTRShBQ19MQU5HX1BST0dSQU0oW1tAJTpAaW5jbHVkZSA8Ym9vc3QvbXBpLmhwcD5dXSwKKysg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtbCisrCSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHJldHVybiAwOworKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgXV0pLAorKyAgICAgICAgICAgICAgICAgICBheF9jdl9ib29zdF9tcGk9eWVzLCBheF9j dl9ib29zdF9tcGk9bm8pCisrCQkJIEFDX0xBTkdfUkVTVE9SRQorKwkJCV0pCisrCQkJaWYgdGVz dCAieCRheF9jdl9ib29zdF9tcGkiID0gInh5ZXMiOyB0aGVuCisrCQkJCUFDX0RFRklORShIQVZF X0JPT1NUX01QSSwsW2RlZmluZSBpZiB0aGUgQm9vc3Q6Ok1waSBsaWJyYXJ5IGlzIGF2YWlsYWJs ZV0pCisrCQkJCUJOPWJvb3N0X21waQorKwkJCQlmb3IgYXhfbGliIGluICRCTiAkQk4tJENDICRC Ti0kQ0MtbXQgJEJOLSRDQy1tdC1zICRCTi0kQ0MtcyBcCisrICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgbGliJEJOIGxpYiRCTi0kQ0MgbGliJEJOLSRDQy1tdCBsaWIkQk4tJENDLW10LXMg XAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpYiRCTi0kQ0MtcyAkQk4tbWd3ICRC Ti1tZ3ctbXQgJEJOLW1ndy1tdC1zIFwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAk Qk4tbWd3LXMgJEJOLSRDQy1tdC0kQk9PU1RMSUJfTURXX1ZFUlNJT04gOyBkbworKworKwkJCQkg ICAgQUNfQ0hFQ0tfTElCKCRheF9saWIsIG1haW4sIFtCT09TVF9NUElfTElCPSItbCRheF9saWIi IEFDX1NVQlNUKEJPT1NUX01QSV9MSUIpIGxpbmtfbXBpPSJ5ZXMiIGJyZWFrXSwKKysgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBbbGlua19tcGk9Im5vIl0pCisrICAJCQkJZG9uZQor KwkJCQlpZiB0ZXN0ICJ4JGxpbmtfbXBpIiA9ICJ4bm8iOyB0aGVuCisrCQkJCQlBQ19NU0dfTk9U SUNFKENvdWxkIG5vdCBsaW5rIGFnYWluc3QgJGF4X2xpYiAhKQorKwkJCQllbHNlCisrCQkJCQlC T09TVF9NUElfTElCPSIke0JPT1NUX01QSV9MSUJ9ICR7Qk9PU1RfU0VSSUFMSVpBVElPTl9MSUJ9 ICR7TVBJR0VOX0xJQlN9IgorKwkJCQlmaQorKwkJCWZpCisrCisrIworKyMgQm9vc3Q6Ok1QSV9Q eXRob24KKysjCisrCQkJQUNfQ0FDSEVfQ0hFQ0sod2hldGhlciB0aGUgQm9vc3Q6Ok1waV9QeXRo b24gbGlicmFyeSBpcyBhdmFpbGFibGUsCisrCQkJCQkJICAgYXhfY3ZfYm9vc3RfbXBpX3B5dGhv biwKKysJCQkJCQlbQUNfTEFOR19TQVZFCisrCQkJIEFDX0xBTkdfQ1BMVVNQTFVTCisrCQkJIEFD X0NPTVBJTEVfSUZFTFNFKEFDX0xBTkdfUFJPR1JBTShbW0AlOkBpbmNsdWRlIDxib29zdC9tcGkv cHl0aG9uL3NlcmlhbGl6ZS5ocHA+CisrCQkJIAkJCQkJCQkJICAgXV0sCisrICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBbWworKwkgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICByZXR1cm4gMDsKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF1dKSwK KysgICAgICAgICAgICAgICAgICAgYXhfY3ZfYm9vc3RfbXBpX3B5dGhvbj15ZXMsIGF4X2N2X2Jv b3N0X21waV9weXRob249bm8pCisrCQkJIEFDX0xBTkdfUkVTVE9SRQorKwkJCV0pCisrCQkJaWYg dGVzdCAieCRheF9jdl9ib29zdF9tcGlfcHl0aG9uIiA9ICJ4eWVzIjsgdGhlbgorKwkJCQlBQ19E RUZJTkUoSEFWRV9CT09TVF9NUElfUFlUSE9OLCxbZGVmaW5lIGlmIHRoZSBCb29zdDo6TXBpX1B5 dGhvbiBsaWJyYXJ5IGlzIGF2YWlsYWJsZV0pCisrCQkJCUJOPWJvb3N0X21waV9weXRob24KKysj CQkJCUJOPWJvb3N0X21waV9weXRob24tcHkyNQorKwkJCQlmb3IgYXhfbGliIGluICRCTiAkQk4t JENDICRCTi0kQ0MtbXQgJEJOLSRDQy1tdC1zICRCTi0kQ0MtcyBcCisrICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgbGliJEJOIGxpYiRCTi0kQ0MgbGliJEJOLSRDQy1tdCBsaWIkQk4tJEND LW10LXMgXAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpYiRCTi0kQ0MtcyAkQk4t bWd3ICRCTi1tZ3ctbXQgJEJOLW1ndy1tdC1zIFwKKysgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAkQk4tbWd3LXMgJEJOLSRDQy1tdC0kQk9PU1RMSUJfTURXX1ZFUlNJT04gOyBkbworKwkJ CQkgICAgQUNfQ0hFQ0tfTElCKCRheF9saWIsIG1haW4sIFtCT09TVF9NUElfUFlUSE9OX0xJQj0i LWwkYXhfbGliIiBBQ19TVUJTVChCT09TVF9NUElfUFlUSE9OX0xJQikgbGlua19tcGlfcHl0aG9u PSJ5ZXMiIGJyZWFrXSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbGlua19t cGlfcHl0aG9uPSJubyJdKQorKyAgCQkJCWRvbmUKKysJCQkJaWYgdGVzdCAieCRsaW5rX21waV9w eXRob24iID0gInhubyI7IHRoZW4KKysJCQkJCUFDX01TR19OT1RJQ0UoQ291bGQgbm90IGxpbmsg YWdhaW5zdCAkYXhfbGliICEpCisrCQkJCWVsc2UKKysJCQkJCUJPT1NUX01QSV9QWVRIT05fTElC PSIke0JPT1NUX01QSV9QWVRIT05fTElCfSAke0JPT1NUX1NFUklBTElaQVRJT05fTElCfSIKKysJ CQkJCUJPT1NUX01QSV9QWVRIT05fTElCPSIke0JPT1NUX01QSV9QWVRIT05fTElCfSAke0JPT1NU X1BZVEhPTl9MSUJ9IgorKwkJCQkJQk9PU1RfTVBJX1BZVEhPTl9MSUI9IiR7Qk9PU1RfTVBJX1BZ VEhPTl9MSUJ9ICR7Qk9PU1RfTVBJX0xJQn0iCisrCQkJCQlCT09TVF9NUElfUFlUSE9OX0xJQj0i JHtCT09TVF9NUElfUFlUSE9OX0xJQn0gJHtNUElHRU5fTElCU30iCisrCQkJCWZpCisrCQkJZmkK KysKKysjCisrIyBFbmQgb2Ygc2VjdGlvbiBvbiBzdXBwb3J0IGZvciBNUEkKKysjCisrCQkJQ1BQ RkxBR1M9IiR7Q1BQRkxBR1NfT1JJR30iCisrCQkJTERGTEFHUz0iJHtMREZMQUdTX09SSUd9Igor KworKyMKKysjIEJvb3N0OjpVbml0VGVzdEZyYW1ld29yaworKyMKKysJCQlBQ19DQUNIRV9DSEVD Syh3aGV0aGVyIHRoZSBCb29zdDo6VW5pdFRlc3RGcmFtZXdvcmsgbGlicmFyeSBpcyBhdmFpbGFi bGUsCisrCQkJCQkJICAgYXhfY3ZfYm9vc3RfdW5pdF90ZXN0X2ZyYW1ld29yaywKKysJCQkJCQlb QUNfTEFOR19TQVZFCisrCQkJIEFDX0xBTkdfQ1BMVVNQTFVTCisrCQkJIEFDX0NPTVBJTEVfSUZF TFNFKEFDX0xBTkdfUFJPR1JBTShbW0AlOkBpbmNsdWRlIDxib29zdC90ZXN0L3VuaXRfdGVzdC5o cHA+XV0sCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1t1c2luZyBib29z dDo6dW5pdF90ZXN0Ojp0ZXN0X3N1aXRlOworKwkJCQkJICAgICAgICAgICAgICAgICB0ZXN0X3N1 aXRlKiB0ZXN0PSBCT09TVF9URVNUX1NVSVRFKCAiVW5pdCB0ZXN0IGV4YW1wbGUgMSIgKTsgcmV0 dXJuIDA7XV0pLAorKyAgICAgICAgICAgICAgICAgICBheF9jdl9ib29zdF91bml0X3Rlc3RfZnJh bWV3b3JrPXllcywgYXhfY3ZfYm9vc3RfdW5pdF90ZXN0X2ZyYW1ld29yaz1ubykKKysJCQkgQUNf TEFOR19SRVNUT1JFCisrCQkJXSkKKysJCQlpZiB0ZXN0ICJ4JGF4X2N2X2Jvb3N0X3VuaXRfdGVz dF9mcmFtZXdvcmsiID0gInh5ZXMiOyB0aGVuCisrICAgIAkJQUNfREVGSU5FKEhBVkVfQk9PU1Rf VU5JVF9URVNUX0ZSQU1FV09SSywsW2RlZmluZSBpZiB0aGUgQm9vc3Q6OlVuaXRfdGVzdF9mcmFt ZXdvcmsgbGlicmFyeSBpcyBhdmFpbGFibGVdKQorKwkJCUJOPWJvb3N0X3VuaXRfdGVzdF9mcmFt ZXdvcmsKKysgICAgCQlzYXZlZF9sZGZsYWdzPSIke0xERkxBR1N9IgorKwkJCWZvciBheF9saWIg aW4gJEJOICRCTi0kQ0MgJEJOLSRDQy1tdCAkQk4tJENDLW10LXMgJEJOLSRDQy1zIFwKKysgICAg ICAgICAgICAgICAgICAgICAgICAgIGxpYiRCTiBsaWIkQk4tJENDIGxpYiRCTi0kQ0MtbXQgbGli JEJOLSRDQy1tdC1zIFwKKysgICAgICAgICAgICAgICAgICAgICAgICAgIGxpYiRCTi0kQ0MtcyAk Qk4tbWd3ICRCTi1tZ3ctbXQgJEJOLW1ndy1tdC1zIFwKKysgICAgICAgICAgICAgICAgICAgICAg ICAgICRCTi1tZ3ctcyAkQk4tJENDLW10LSRCT09TVExJQl9NRFdfVkVSU0lPTiA7IGRvCisrICAg ICAgICAgICAgICAgIExERkxBR1M9IiR7TERGTEFHU30gLWwkYXhfbGliIgorKyAgICAJCQlBQ19D QUNIRV9DSEVDSyh0aGUgbmFtZSBvZiB0aGUgQm9vc3Q6OlVuaXRUZXN0RnJhbWV3b3JrIGxpYnJh cnksCisrCSAgICAgIAkJCQkJICAgYXhfY3ZfYm9vc3RfdW5pdF90ZXN0X2ZyYW1ld29yaywKKysJ CQkJCQlbQUNfTEFOR19TQVZFCisrCQkJIEFDX0xBTkdfQ1BMVVNQTFVTCisrICAgICAgICAgICAg ICAgQUNfTElOS19JRkVMU0UoW0FDX0xBTkdfUFJPR1JBTShbW0AlOkBpbmNsdWRlIDxib29zdC90 ZXN0L3VuaXRfdGVzdC5ocHA+XV0sCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtb dXNpbmcgYm9vc3Q6OnVuaXRfdGVzdDo6dGVzdF9zdWl0ZTsKKysgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgdGVzdF9zdWl0ZSogdGVzdD0gQk9PU1RfVEVTVF9TVUlURSggIlVuaXQgdGVz dCBleGFtcGxlIDEiICk7IHJldHVybiAwO11dKV0sCisrICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFtsaW5rX3RocmVhZD0ieWVzIl0sW2xpbmtfdGhyZWFkPSJubyJdKQorKworKwkJCSBB Q19MQU5HX1JFU1RPUkUKKysgICAgICAgICAgICAgICBdKQorKyAgICAgICAgICAgICAgICBMREZM QUdTPSIke3NhdmVkX2xkZmxhZ3N9IgorKwkJCSAgICBpZiB0ZXN0ICJ4JGxpbmtfdGhyZWFkIiA9 ICJ4eWVzIjsgdGhlbgorKyAgICAgICAgICAgICAgICAgICAgQk9PU1RfVU5JVF9URVNUX0ZSQU1F V09SS19MSUI9Ii1sJGF4X2xpYiIKKysgICAgICAgICAgICAgICAgICAgIEFDX1NVQlNUKEJPT1NU X1VOSVRfVEVTVF9GUkFNRVdPUktfTElCKQorKwkJCQkJYnJlYWsKKysJCQkJZmkKKysgICAgICAg ICAgICAgIGRvbmUKKysJCQkgICAgaWYgdGVzdCAieCRsaW5rX3RocmVhZCIgPSAieG5vIjsgdGhl bgorKwkJCQkgICBBQ19NU0dfTk9USUNFKENvdWxkIG5vdCBsaW5rIGFnYWluc3QgJGF4X2xpYiAh KQorKwkJCQlmaQorKwkJCWZpCisrCisrCisrCQlmaSBkbmwgZW5kaWYgdGVzdCAiJHN1Y2NlZWRl ZCIKKysKKysgICAgICAgIENQUEZMQUdTPSIkQ1BQRkxBR1NfU0FWRUQiCisrICAgICAgICBMREZM QUdTPSIkTERGTEFHU19TQVZFRCIKKysKKysJZmkgZG5sIGVuZGlmIHRlc3QgIngkd2FudF9ib29z dCIKKytdKQorZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL2NvbmZpZy9heF9teXNxbC5tNCBz b2NpLTMuMC4wX3RyZXAzMDAvY29uZmlnL2F4X215c3FsLm00CistLS0gc29jaS0zLjAuMF80LXBh Y2svY29uZmlnL2F4X215c3FsLm00CTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAw CisrKysgc29jaS0zLjAuMF90cmVwMzAwL2NvbmZpZy9heF9teXNxbC5tNAkyMDEwLTAxLTIzIDEz OjI3OjA0LjAwMDAwMDAwMCArMDEwMAorQEAgLTAsMCArMSwxNjQgQEAKKytkbmwgQHN5bm9wc2lz IEFYX01ZU1FMCisrZG5sIAorK2RubCBUaGlzIG1hY3JvIHRyaWVzIHRvIGZpbmQgTXlTUUwgQyBB UEkgaGVhZGVyIGFuZCBsaWJyYXJ5IGxvY2F0aW9ucy4KKytkbmwKKytkbmwgV2UgZGVmaW5lIHRo ZSBmb2xsb3dpbmcgY29uZmlndXJlIHNjcmlwdCBmbGFnczoKKytkbmwKKytkbmwJCS0td2l0aC1t eXNxbDogR2l2ZSBwcmVmaXggZm9yIGJvdGggbGlicmFyeSBhbmQgaGVhZGVycywgYW5kIHRyeQor K2RubAkJCXRvIGd1ZXNzIHN1YmRpcmVjdG9yeSBuYW1lcyBmb3IgZWFjaC4gIChlLmcuIFRhY2sg L2xpYiBhbmQKKytkbmwJCQkvaW5jbHVkZSBvbnRvIGdpdmVuIGRpciBuYW1lLCBhbmQgb3RoZXIg Y29tbW9uIHNjaGVtZXMuKQorK2RubAkJLS13aXRoLW15c3FsLWxpYjogU2ltaWxhciB0byAtLXdp dGgtbXlzcWwsIGJ1dCBmb3IgbGlicmFyeSBvbmx5LgorK2RubAkJLS13aXRoLW15c3FsLWluY2x1 ZGU6IFNpbWlsYXIgdG8gLS13aXRoLW15c3FsLCBidXQgZm9yIGhlYWRlcnMKKytkbmwJCQlvbmx5 LgorK2RubAorK2RubCBAdmVyc2lvbiAxLjIsIDIwMDcvMDIvMjAKKytkbmwgQGF1dGhvciBXYXJy ZW4gWW91bmcgPG15c3FscHBAZXRyLXVzYS5jb20+CisrCisrQUNfREVGVU4oW0FYX01ZU1FMXSwK KytbCisrCSMKKysJIyBTZXQgdXAgY29uZmlndXJlIHNjcmlwdCBtYWNyb3MKKysJIworKwlBQ19B UkdfV0lUSChteXNxbCwKKysJCVsgIC0td2l0aC1teXNxbD08cGF0aD4gICAgIHJvb3QgZGlyZWN0 b3J5IHBhdGggb2YgTXlTUUwgaW5zdGFsbGF0aW9uXSwKKysJCVtNWVNRTF9saWJfY2hlY2s9IiR3 aXRoX215c3FsL2xpYjY0L215c3FsICR3aXRoX215c3FsL2xpYi9teXNxbCAkd2l0aF9teXNxbC9s aWI2NCAkd2l0aF9teXNxbC9saWIiCisrCQlNWVNRTF9pbmNfY2hlY2s9IiR3aXRoX215c3FsL2lu Y2x1ZGUgJHdpdGhfbXlzcWwvaW5jbHVkZS9teXNxbCIKKysJCU1ZU1FMX2Jpbl9jaGVjaz0iJHdp dGhfbXlzcWwvYmluIl0sCisrCQlbTVlTUUxfbGliX2NoZWNrPSIvdXNyL2xpYjY0IC91c3IvbGli IC91c3IvbGliNjQvbXlzcWwgL3Vzci9saWIvbXlzcWwgL3Vzci9sb2NhbC9saWI2NCAvdXNyL2xv Y2FsL2xpYiAvdXNyL2xvY2FsL2xpYi9teXNxbCAvdXNyL2xvY2FsL215c3FsL2xpYiAvdXNyL2xv Y2FsL215c3FsL2xpYi9teXNxbCAvb3B0L215c3FsL2xpYiAvb3B0L215c3FsL2xpYi9teXNxbCIK KysJCU1ZU1FMX2luY19jaGVjaz0iL3Vzci9pbmNsdWRlL215c3FsIC91c3IvbG9jYWwvaW5jbHVk ZS9teXNxbCAvdXNyL2xvY2FsL215c3FsL2luY2x1ZGUgL3Vzci9sb2NhbC9teXNxbC9pbmNsdWRl L215c3FsIC9vcHQvbXlzcWwvaW5jbHVkZS9teXNxbCIKKysJCU1ZU1FMX2Jpbl9jaGVjaz0iL3Vz ci9iaW4gL3Vzci9sb2NhbC9iaW4gL3Vzci9sb2NhbC9teXNxbC9iaW4iXSkKKysKKysJQUNfQVJH X1dJVEgobXlzcWwtbGliLAorKwkJWyAgLS13aXRoLW15c3FsLWxpYj08cGF0aD4gZGlyZWN0b3J5 IHBhdGggb2YgTXlTUUwgbGlicmFyeSBpbnN0YWxsYXRpb25dLAorKwkJW01ZU1FMX2xpYl9jaGVj az0iJHdpdGhfbXlzcWxfbGliICR3aXRoX215c3FsX2xpYi9saWI2NCAkd2l0aF9teXNxbF9saWIv bGliICR3aXRoX215c3FsX2xpYi9saWI2NC9teXNxbCAkd2l0aF9teXNxbF9saWIvbGliL215c3Fs Il0pCisrCisrCUFDX0FSR19XSVRIKG15c3FsLWluY2x1ZGUsCisrCQlbICAtLXdpdGgtbXlzcWwt aW5jbHVkZT08cGF0aD4gZGlyZWN0b3J5IHBhdGggb2YgTXlTUUwgaGVhZGVyIGluc3RhbGxhdGlv bl0sCisrCQlbTVlTUUxfaW5jX2NoZWNrPSIkd2l0aF9teXNxbF9pbmNsdWRlICR3aXRoX215c3Fs X2luY2x1ZGUvaW5jbHVkZSAkd2l0aF9teXNxbF9pbmNsdWRlL2luY2x1ZGUvbXlzcWwiXSkKKysK KysKKysgICAgIworKwkjIExvb2sgZm9yIE15U1FMIENvbmZpZ3VyYXRpb24gU2NyaXB0CisrCSMK KysJQUNfTVNHX0NIRUNLSU5HKFtmb3IgTXlTUUwgY29uZmlndXJhdGlvbiBzY3JpcHRdKQorKwlN WVNRTF9DT05GSUc9CisrCU1ZU1FMX2JpbmRpcj0KKysJZm9yIG0gaW4gJE1ZU1FMX2Jpbl9jaGVj aworKwkJZG8KKysJCQlpZiB0ZXN0IC1kICIkbSIgJiYgdGVzdCAtZiAiJG0vbXlzcWxfY29uZmln IgorKwkJCXRoZW4KKysJCQkJTVlTUUxfQ09ORklHPSRtL215c3FsX2NvbmZpZworKwkJCQlNWVNR TF9iaW5kaXI9JG0KKysJCQlicmVhaworKwkJZmkKKysJZG9uZQorKworKwlpZiB0ZXN0IC16ICIk TVlTUUxfYmluZGlyIgorKwl0aGVuCisrCQlBQ19NU0dfRVJST1IoW0RpZG4ndCBmaW5kICRNWVNR TF9DT05GSUcgYmluYXJ5IGluICckTVlTUUxfYmluX2NoZWNrJ10pCisrCWZpCisrCisrCWNhc2Ug IiRNWVNRTF9iaW5kaXIiIGluCisrCQkvKiApIDs7CisrCQkqICkgIEFDX01TR19FUlJPUihbVGhl IE15U1FMIGJpbmFyeSBkaXJlY3RvcnkgKCRNWVNRTF9iaW5kaXIpIG11c3QgYmUgYW4gYWJzb2x1 dGUgcGF0aC5dKSA7OworKwllc2FjCisrCisrCUFDX01TR19SRVNVTFQoWyRNWVNRTF9DT05GSUdd KQorKworKyMJQUNfUEFUSF9QUk9HKE1ZU1FMX0NPTkZJRywgbXlzcWxfY29uZmlnLCAkTVlTUUxf YmluZGlyKQorKworKwkjCisrCSMgRGVjaWRlIHdoaWNoIEMgQVBJIGxpYnJhcnkgdG8gdXNlLCBi YXNlZCBvbiB0aHJlYWQgc3VwcG9ydAorKwkjCisrCWlmIHRlc3QgIngkYWN4X3B0aHJlYWRfb2si ID0geHllcworKwl0aGVuCisrCQlNWVNRTF9DX0xJQj1teXNxbGNsaWVudF9yCisrCQlNWVNRTF9M SUJfT1BUSU9OPWxpYnNfcgorKwllbHNlCisrCQlNWVNRTF9DX0xJQj1teXNxbGNsaWVudAorKwkJ TVlTUUxfTElCX09QVElPTj1saWJzCisrCWZpCisrCisrCWlmIHRlc3QgIngke01ZU1FMX0NPTkZJ R30xIiA9ICJ4MSIKKysJdGhlbgorKwkJTVlTUUxfVkVSU0lPTj1gJHtNWVNRTF9DT05GSUd9IC0t dmVyc2lvbmAKKysJCU1ZU1FMX0NGTEFHUz1gJHtNWVNRTF9DT05GSUd9IC0tY2ZsYWdzYAorKwkJ TVlTUUxfTElCUz1gJHtNWVNRTF9DT05GSUd9IC0tJHtNWVNRTF9MSUJfT1BUSU9OfWAKKysJZWxz ZQorKwkJIworKwkJIyBMb29rIGZvciBNeVNRTCBDIEFQSSBsaWJyYXJ5CisrCQkjCisrCQlBQ19N U0dfQ0hFQ0tJTkcoW2ZvciBNeVNRTCBsaWJyYXJ5IGRpcmVjdG9yeV0pCisrCQlNWVNRTF9saWJk aXI9CisrCQlmb3IgbSBpbiAkTVlTUUxfbGliX2NoZWNrCisrCQlkbworKwkJCWlmIHRlc3QgLWQg IiRtIiAmJiBcCisrCQkJCSh0ZXN0IC1mICIkbS9saWIkTVlTUUxfQ19MSUIuc28iIFwKKysJCQkJ fHwgdGVzdCAtZiAiJG0vbGliJE1ZU1FMX0NfTElCLmEiKQorKwkJCXRoZW4KKysJCQkJTVlTUUxf bGliZGlyPSRtCisrCQkJCWJyZWFrCisrCQkJZmkKKysJCWRvbmUKKysKKysJCWlmIHRlc3QgLXog IiRNWVNRTF9saWJkaXIiCisrCQl0aGVuCisrCQkJQUNfTVNHX0VSUk9SKFtEaWRuJ3QgZmluZCAk TVlTUUxfQ19MSUIgbGlicmFyeSBpbiAnJE1ZU1FMX2xpYl9jaGVjayddKQorKwkJZmkKKysKKysJ CWNhc2UgIiRNWVNRTF9saWJkaXIiIGluCisrCQkJLyogKSA7OworKwkJCSogKSAgQUNfTVNHX0VS Uk9SKFtUaGUgTXlTUUwgbGlicmFyeSBkaXJlY3RvcnkgKCRNWVNRTF9saWJkaXIpIG11c3QgYmUg YW4gYWJzb2x1dGUgcGF0aC5dKSA7OworKwkJZXNhYworKworKwkJQUNfTVNHX1JFU1VMVChbJE1Z U1FMX2xpYmRpcl0pCisrCisrIwkJY2FzZSAiJE1ZU1FMX2xpYmRpciIgaW4KKysjCQkgIC91c3Iv bGliKSA7OworKyMJCSAgKikgTERGTEFHUz0iJExERkxBR1MgLUwke01ZU1FMX2xpYmRpcn0iIDs7 CisrIwkJZXNhYworKworKwkJIworKwkJIyBMb29rIGZvciBNeVNRTCBDIEFQSSBoZWFkZXJzCisr CQkjCisrCQlBQ19NU0dfQ0hFQ0tJTkcoW2ZvciBNeVNRTCBpbmNsdWRlIGRpcmVjdG9yeV0pCisr CQlNWVNRTF9pbmNkaXI9CisrCQlmb3IgbSBpbiAkTVlTUUxfaW5jX2NoZWNrCisrCQlkbworKwkJ CWlmIHRlc3QgLWQgIiRtIiAmJiB0ZXN0IC1mICIkbS9teXNxbC5oIgorKwkJCXRoZW4KKysJCQkJ TVlTUUxfaW5jZGlyPSRtCisrCQkJCWJyZWFrCisrCQkJZmkKKysJCWRvbmUKKysKKysJCWlmIHRl c3QgLXogIiRNWVNRTF9pbmNkaXIiCisrCQl0aGVuCisrCQkJQUNfTVNHX0VSUk9SKFtEaWRuJ3Qg ZmluZCB0aGUgTXlTUUwgaW5jbHVkZSBkaXIgaW4gJyRNWVNRTF9pbmNfY2hlY2snXSkKKysJCWZp CisrCisrCQljYXNlICIkTVlTUUxfaW5jZGlyIiBpbgorKwkJCSAvKiApIDs7CisrCQkJICogKSAg QUNfTVNHX0VSUk9SKFtUaGUgTXlTUUwgaW5jbHVkZSBkaXJlY3RvcnkgKCRNWVNRTF9pbmNkaXIp IG11c3QgYmUgYW4gYWJzb2x1dGUgcGF0aC5dKSA7OworKwkJZXNhYworKworKwkJQUNfTVNHX1JF U1VMVChbJE1ZU1FMX2luY2Rpcl0pCisrCisrCQlNWVNRTF9WRVJTSU9OPWBncmVwICJkZWZpbmUg TVlTUUxfU0VSVkVSX1ZFUlNJT04iICRNWVNRTF9pbmNkaXIvbXlzcWxfdmVyc2lvbi5oIHwgY3V0 IC1kXCIgLWYyYAorKwkJTVlTUUxfQ0ZMQUdTPSItSSR7TVlTUUxfaW5jZGlyfSIKKysJCU1ZU1FM X0xJQlM9Ii1MJHtNWVNRTF9saWJkaXJ9IC1sJHtNWVNRTF9DX0xJQn0iCisrCWZpCisrCisrCUFD X1NVQlNUKE1ZU1FMX1ZFUlNJT04pCisrCUFDX1NVQlNUKE1ZU1FMX0NGTEFHUykKKysJQUNfU1VC U1QoTVlTUUxfTElCUykKKysKKysJc2F2ZV9MSUJTPSIkTElCUyIKKysJTElCUz0iJExJQlMgJE1Z U1FMX0xJQlMiCisrCUFDX0NIRUNLX0xJQigkTVlTUUxfQ19MSUIsIG15c3FsX3N0b3JlX3Jlc3Vs dCwKKysgICAgICAgCQkJW10sIAorKyAgICAgICAgICAgICAgIAlbQUNfTVNHX0VSUk9SKFtDb3Vs ZCBub3QgZmluZCB3b3JraW5nIE15U1FMIGNsaWVudCBsaWJyYXJ5IV0pXQorKyAgICAgICAgICAg ICAgIAkpCisrCUFDX1NVQlNUKE1ZU1FMX0NfTElCKQorKwlMSUJTPSIkc2F2ZV9MSUJTIgorK10p IGRubCBBWF9NWVNRTAorZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL2NvbmZpZy9heF9vcmFj bGVfb2NpLm00IHNvY2ktMy4wLjBfdHJlcDMwMC9jb25maWcvYXhfb3JhY2xlX29jaS5tNAorLS0t IHNvY2ktMy4wLjBfNC1wYWNrL2NvbmZpZy9heF9vcmFjbGVfb2NpLm00CTE5NzAtMDEtMDEgMDE6 MDA6MDAuMDAwMDAwMDAwICswMTAwCisrKysgc29jaS0zLjAuMF90cmVwMzAwL2NvbmZpZy9heF9v cmFjbGVfb2NpLm00CTIwMTAtMDEtMjMgMTM6Mjc6MDQuMDAwMDAwMDAwICswMTAwCitAQCAtMCww ICsxLDI4NiBAQAorK2RubCAkSWQ6IHNvY2ktMy4wLjAtMTYtZml4LWdudS1hdXRvdG9vbHMtY29t cGF0aWJpbGl0eS5wYXRjaCx2IDEuMSAyMDEwLzAxLzIzIDE1OjE2OjQ5IGRlbmlzYXJuYXVkIEV4 cCAkCisrZG5sCisrZG5sIEBzeW5vcHNpcyBBWF9MSUJfT1JBQ0xFX09DSShbTUlOSU1VTS1WRVJT SU9OXSkKKytkbmwKKytkbmwgVGhpcyBtYWNybyBwcm92aWRlcyB0ZXN0cyBvZiBhdmFpbGFiaWxp dHkgb2YgT3JhY2xlIE9DSSBBUEkKKytkbmwgb2YgcGFydGljdWxhciB2ZXJzaW9uIG9yIG5ld2Vy LgorK2RubCBUaGlzIG1hY3JvcyBjaGVja3MgZm9yIE9yYWNsZSBPQ0kgaGVhZGVycyBhbmQgbGli cmFyaWVzIAorK2RubCBhbmQgZGVmaW5lcyBjb21waWxhdGlvbiBmbGFncworK2RubCAKKytkbmwg TWFjcm8gc3VwcG9ydHMgZm9sbG93aW5nIG9wdGlvbnMgYW5kIHRoZWlyIHZhbHVlczoKKytkbmwg MSkgU2luZ2xlLW9wdGlvbiB1c2FnZToKKytkbmwgLS13aXRoLW9yYWNsZSAtIHBhdGggdG8gT1JB Q0xFX0hPTUUgZGlyZWN0b3J5CisrZG5sIDIpIFR3by1vcHRpb25zIHVzYWdlIChib3RoIG9wdGlv bnMgYXJlIHJlcXVpcmVkKToKKytkbmwgLS13aXRoLW9yYWNsZS1pbmNsdWRlIC0gcGF0aCB0byBk aXJlY3Rvcnkgd2l0aCBPQ0kgaGVhZGVycworK2RubCAtLXdpdGgtb3JhY2xlLWxpYiAtIHBhdGgg dG8gZGlyZWN0b3J5IHdpdGggT0NJIGxpYnJhcmllcyAKKytkbmwKKytkbmwgTk9URTogVGhlc2Ug b3B0aW9ucyBkZXNjcmliZWQgYWJvdmUgZG9lcyBub3QgdGFrZSB5ZXN8bm8gdmFsdWVzLgorK2Ru bCBJZiAneWVzJyB2YWx1ZSBpcyBwYXNzZWQsIHRoZW4gV0FSTklORyBtZXNzYWdlIHdpbGwgYmUg ZGlzcGxheWVkLAorK2RubCAnbm8nIHZhbHVlLCBhcyB3ZWxsIGFzIHRoZSAtLXdpdGhvdXQtb3Jh Y2xlKiB2YXJpYXRpb25zIHdpbGwgY2F1c2UKKytkbmwgdGhlIG1hY3JvIHdvbid0IGNoZWNrIGVu eXRoaW5nLgorK2RubAorK2RubCBUaGlzIG1hY3JvIGNhbGxzOgorK2RubAorK2RubCAgIEFDX1NV QlNUKE9SQUNMRV9PQ0lfQ0ZMQUdTKQorK2RubCAgIEFDX1NVQlNUKE9SQUNMRV9PQ0lfTERGTEFH UykKKytkbmwgICBBQ19TVUJTVChPUkFDTEVfT0NJX1ZFUlNJT04pCisrZG5sCisrZG5sIEFuZCBz ZXRzOgorK2RubAorK2RubCAgIEhBVkVfT1JBQ0xFCisrZG5sCisrZG5sIEBjYXRlZ29yeSBJbnN0 YWxsZWRQYWNrYWdlcworK2RubCBAY2F0ZWdvcnkgQ3h4CisrZG5sIEBhdXRob3IgTWF0ZXVzeiBM b3Nrb3QgPG1hdGV1c3pAbG9za290Lm5ldD4KKytkbmwgQHZlcnNpb24gJERhdGU6IDIwMTAvMDEv MjMgMTU6MTY6NDkgJAorK2RubCBAbGljZW5zZSBBbGxQZXJtaXNzaXZlCisrZG5sCisrZG5sICRJ ZDogc29jaS0zLjAuMC0xNi1maXgtZ251LWF1dG90b29scy1jb21wYXRpYmlsaXR5LnBhdGNoLHYg MS4xIDIwMTAvMDEvMjMgMTU6MTY6NDkgZGVuaXNhcm5hdWQgRXhwICQKKytkbmwKKytBQ19ERUZV TihbQVhfTElCX09SQUNMRV9PQ0ldLAorK1sKKysgICAgQUNfUkVRVUlSRShbQUNfQ0FOT05JQ0FM X0hPU1RdKQorKyAgICBBQ19BUkdfV0lUSChbb3JhY2xlXSwKKysgICAgICAgIEFDX0hFTFBfU1RS SU5HKFstLXdpdGgtb3JhY2xlPUA8OkBESVJAOj5AXSwKKysgICAgICAgICAgICBbdXNlIE9yYWNs ZSBPQ0kgQVBJIGZyb20gZ2l2ZW4gcGF0aCB0byBPcmFjbGUgaG9tZSBkaXJlY3RvcnldCisrICAg ICAgICApLAorKyAgICAgICAgWworKyAgICAgICAgaWYgdGVzdCAiJHdpdGh2YWwiID0gInllcyI7 IHRoZW4KKysgICAgICAgICAgICBpZiB0ZXN0IC1uICIkT1JBQ0xFX0hPTUUiOyB0aGVuCisrICAg ICAgICAgICAgICAgIG9yYWNsZV9ob21lX2Rpcj0iJE9SQUNMRV9IT01FIgorKyAgICAgICAgICAg IGVsc2UKKysgICAgICAgICAgICAgICAgb3JhY2xlX2hvbWVfZGlyPSIiCisrICAgICAgICAgICAg ZmkgCisrICAgICAgICBmaQorKyAgICAgICAgXSwKKysgICAgICAgIFsKKysgICAgICAgIGlmIHRl c3QgLW4gIiRPUkFDTEVfSE9NRSI7IHRoZW4KKysgICAgICAgICAgICBvcmFjbGVfaG9tZV9kaXI9 IiRPUkFDTEVfSE9NRSIKKysgICAgICAgIGVsc2UKKysgICAgICAgICAgICBvcmFjbGVfaG9tZV9k aXI9IiIKKysgICAgICAgIGZpIAorKyAgICAgICAgXQorKyAgICApCisrCisrICAgIEFDX0FSR19X SVRIKFtvcmFjbGUtaW5jbHVkZV0sCisrICAgICAgICBBQ19IRUxQX1NUUklORyhbLS13aXRoLW9y YWNsZS1pbmNsdWRlPUA8OkBESVJAOj5AXSwKKysgICAgICAgICAgICBbdXNlIE9yYWNsZSBPQ0kg QVBJIGhlYWRlcnMgZnJvbSBnaXZlbiBwYXRoXQorKyAgICAgICAgKSwKKysgICAgICAgIFtvcmFj bGVfaG9tZV9pbmNsdWRlX2Rpcj0iJHdpdGh2YWwiXSwKKysgICAgICAgIFtvcmFjbGVfaG9tZV9p bmNsdWRlX2Rpcj0iIl0KKysgICAgKQorKyAgICBBQ19BUkdfV0lUSChbb3JhY2xlLWxpYl0sCisr ICAgICAgICBBQ19IRUxQX1NUUklORyhbLS13aXRoLW9yYWNsZS1saWI9QDw6QERJUkA6PkBdLAor KyAgICAgICAgICAgIFt1c2UgT3JhY2xlIE9DSSBBUEkgbGlicmFyaWVzIGZyb20gZ2l2ZW4gcGF0 aF0KKysgICAgICAgICksCisrICAgICAgICBbb3JhY2xlX2hvbWVfbGliX2Rpcj0iJHdpdGh2YWwi XSwKKysgICAgICAgIFtvcmFjbGVfaG9tZV9saWJfZGlyPSIiXQorKyAgICApCisrCisrICAgIE9S QUNMRV9PQ0lfQ0ZMQUdTPSIiCisrICAgIE9SQUNMRV9PQ0lfTERGTEFHUz0iIgorKyAgICBPUkFD TEVfT0NJX1ZFUlNJT049IiIKKysKKysgICAgZG5sCisrICAgIGRubCBDb2xsZWN0IGluY2x1ZGUv bGliIHBhdGhzCisrICAgIGRubCAKKysgICAgd2FudF9vcmFjbGVfYnV0X25vX3BhdGg9Im5vIgor KworKyAgICBpZiB0ZXN0IC1uICIkb3JhY2xlX2hvbWVfZGlyIjsgdGhlbgorKworKyAgICAgICAg aWYgdGVzdCAiJG9yYWNsZV9ob21lX2RpciIgIT0gIm5vIiAtYSAiJG9yYWNsZV9ob21lX2RpciIg IT0gInllcyI7IHRoZW4KKysgICAgICAgICAgICBkbmwgT1JBQ0xFX0hPTUUgcGF0aCBwcm92aWRl ZAorKyAgICAgICAgICAgIAorKyAgICAgICAgICAgIGRubCBQcmltYXJ5IHBhdGggdG8gT0NJIGhl YWRlcnMsIGF2YWlsYWJsZSBpbiBPcmFjbGU+PTEwCisrICAgICAgICAgICAgb3JhY2xlX2luY2x1 ZGVfZGlyPSIkb3JhY2xlX2hvbWVfZGlyL3JkYm1zL3B1YmxpYyIKKysgICAgICAgICAgICAKKysg ICAgICAgICAgICBkbmwgU2Vjb25kYXJ5IHBhdGggdG8gT0NJIGhlYWRlcnMgdXNlZCBieSBvbGRl ciB2ZXJzaW9ucworKyAgICAgICAgICAgIG9yYWNsZV9pbmNsdWRlX2RpcjI9IiRvcmFjbGVfaG9t ZV9kaXIvcmRibXMvZGVtbyIKKysKKysgICAgICAgICAgICBkbmwgTGlicmFyeSBwYXRoCisrICAg ICAgICAgICAgb3JhY2xlX2xpYl9kaXI9IiRvcmFjbGVfaG9tZV9kaXIvbGliIgorKyAgICAgICAg ZWxpZiB0ZXN0ICIkb3JhY2xlX2hvbWVfZGlyIiA9ICJ5ZXMiOyB0aGVuCisrICAgICAgICAgICAg d2FudF9vcmFjbGVfYnV0X25vX3BhdGg9InllcyIKKysgICAgICAgIGZpCisrCisrICAgIGVsaWYg dGVzdCAtbiAiJG9yYWNsZV9ob21lX2luY2x1ZGVfZGlyIiAtbyAtbiAiJG9yYWNsZV9ob21lX2xp Yl9kaXIiOyB0aGVuCisrCisrICAgICAgICBpZiB0ZXN0ICIkb3JhY2xlX2hvbWVfaW5jbHVkZV9k aXIiICE9ICJubyIgLWEgIiRvcmFjbGVfaG9tZV9pbmNsdWRlX2RpciIgIT0gInllcyI7IHRoZW4K KysgICAgICAgICAgICBvcmFjbGVfaW5jbHVkZV9kaXI9IiRvcmFjbGVfaG9tZV9pbmNsdWRlX2Rp ciIKKysgICAgICAgIGVsaWYgdGVzdCAiJG9yYWNsZV9ob21lX2luY2x1ZGVfZGlyIiA9ICJ5ZXMi OyB0aGVuCisrICAgICAgICAgICAgd2FudF9vcmFjbGVfYnV0X25vX3BhdGg9InllcyIKKysgICAg ICAgIGZpCisrCisrICAgICAgICBpZiB0ZXN0ICIkb3JhY2xlX2hvbWVfbGliX2RpciIgIT0gIm5v IiAtYSAiJG9yYWNsZV9ob21lX2xpYl9kaXIiICE9ICJ5ZXMiOyB0aGVuCisrICAgICAgICAgICAg b3JhY2xlX2xpYl9kaXI9IiRvcmFjbGVfaG9tZV9saWJfZGlyIgorKyAgICAgICAgZWxpZiB0ZXN0 ICIkb3JhY2xlX2hvbWVfbGliX2RpciIgPSAieWVzIjsgdGhlbgorKyAgICAgICAgICAgIHdhbnRf b3JhY2xlX2J1dF9ub19wYXRoPSJ5ZXMiCisrICAgICAgICBmaQorKyAgICBmaQorKworKyAgICBp ZiB0ZXN0ICIkd2FudF9vcmFjbGVfYnV0X25vX3BhdGgiID0gInllcyI7IHRoZW4KKysgICAgICAg IEFDX01TR19XQVJOKFtPcmFjbGUgc3VwcG9ydCBpcyByZXF1ZXN0ZWQgYnV0IG5vIE9yYWNsZSBw YXRocyBoYXZlIGJlZW4gcHJvdmlkZWQuIFwKKytQbGVhc2UsIGxvY2F0ZSBPcmFjbGUgZGlyZWN0 b3JpZXMgdXNpbmcgLS13aXRoLW9yYWNsZSBvciBcCisrLS13aXRoLW9yYWNsZS1pbmNsdWRlIGFu ZCAtLXdpdGgtb3JhY2xlLWxpYiBvcHRpb25zLl0pCisrICAgIGZpCisrCisrICAgIGRubAorKyAg ICBkbmwgQ2hlY2sgT0NJIGZpbGVzCisrICAgIGRubAorKyAgICBpZiB0ZXN0IC1uICIkb3JhY2xl X2luY2x1ZGVfZGlyIiAtYSAtbiAiJG9yYWNsZV9saWJfZGlyIjsgdGhlbgorKworKyAgICAgICAg c2F2ZWRfQ1BQRkxBR1M9IiRDUFBGTEFHUyIKKysgICAgICAgIENQUEZMQUdTPSIkQ1BQRkxBR1Mg LUkkb3JhY2xlX2luY2x1ZGVfZGlyIgorKworKyAgICAgICAgZG5sIEFkZGl0aW9uYWwgcGF0aCBm b3Igb2xkZXIgT3JhY2xlIGluc3RhbGxhdGlvbnMgCisrICAgICAgICBpZiB0ZXN0IC1uICIkb3Jh Y2xlX2luY2x1ZGVfZGlyMiI7IHRoZW4KKysgICAgICAgICAgICBDUFBGTEFHUz0iJENQUEZMQUdT IC1JJG9yYWNsZV9pbmNsdWRlX2RpcjIiCisrICAgICAgICBmaQorKworKyAgICAgICAgIyBGaWd1 cmUgb3V0IGlmIHdlIGFyZSBidWlsZGluZyBvbiB3aW4zMi4KKysgICAgICAgIGNhc2UgJGhvc3Rf b3MgaW4KKysgICAgICAgICAgICAqbWluZ3czMiogKSBXSU4zMj15ZXMgOzsKKysgICAgICAgICAg ICAqY3lnd2luKiApICBXSU4zMj15ZXMgOzsKKysgICAgICAgICAgICAqKSBXSU4zMj1ubyA7Owor KyAgICAgICAgZXNhYworKworKyAgICAgICAgaWYgdGVzdCAiJFdJTjMyIiA9ICJubyIKKysgICAg ICAgIHRoZW4KKysgICAgICAgICAgICBvY2lfbGlicz0iLWxjbG50c2ggLWxubnoxMSIKKysgICAg ICAgIGVsc2UKKysgICAgICAgICAgICBvY2lfbGlicz0iLWxvY2kiCisrICAgICAgICBmaQorKwor KyAgICAgICAgc2F2ZWRfTERGTEFHUz0iJExERkxBR1MiCisrICAgICAgICBzYXZlZF9MSUJTPSIk TElCUyIKKysgICAgICAgIG9jaV9sZGZsYWdzPSItTCRvcmFjbGVfbGliX2RpciIKKysgICAgICAg IExERkxBR1M9IiRMREZMQUdTICRvY2lfbGRmbGFncyIKKysgICAgICAgIExJQlM9IiRMSUJTICRv Y2lfbGlicyIKKysKKysgICAgICAgIGRubAorKyAgICAgICAgZG5sIENoZWNrIE9DSSBoZWFkZXJz CisrICAgICAgICBkbmwKKysgICAgICAgIEFDX01TR19DSEVDS0lORyhbZm9yIE9yYWNsZSBPQ0kg aGVhZGVycyBpbiAkb3JhY2xlX2luY2x1ZGVfZGlyXSkKKysKKysgICAgICAgIEFDX0xBTkdfUFVT SChDKyspCisrICAgICAgICBBQ19DT01QSUxFX0lGRUxTRShbCisrICAgICAgICAgICAgQUNfTEFO R19QUk9HUkFNKFtbQCU6QGluY2x1ZGUgPG9jaS5oPl1dLAorKyAgICAgICAgICAgICAgICBbWwor KyNpZiBkZWZpbmVkKE9DSV9NQUpPUl9WRVJTSU9OKQorKyNpZiBPQ0lfTUFKT1JfVkVSU0lPTiA9 PSAxMCAmJiBPQ0lfTUlOT1JfVkVSU0lPTiA9PSAyCisrLy8gT3JhY2xlIDEwLjIgZGV0ZWN0ZWQK KysjZW5kaWYKKysjZWxpZiBkZWZpbmVkKE9DSV9WN19TWU5UQVgpCisrLy8gT0ssIG9sZGVyIE9y YWNsZSBkZXRlY3RlZAorKy8vIFRPRE8gLSBtbG9za290OiBmaW5kIGJldHRlciBtYWNybyB0byBj aGVjayBmb3Igb2xkZXIgdmVyc2lvbnM7IAorKyNlbHNlCisrIyAgZXJyb3IgT3JhY2xlIG9jaS5o IGhlYWRlciBub3QgZm91bmQKKysjZW5kaWYKKysgICAgICAgICAgICAgICAgXV0KKysgICAgICAg ICAgICApXSwKKysgICAgICAgICAgICBbCisrICAgICAgICAgICAgT1JBQ0xFX09DSV9DRkxBR1M9 Ii1JJG9yYWNsZV9pbmNsdWRlX2RpciIKKysKKysgICAgICAgICAgICBpZiB0ZXN0IC1uICIkb3Jh Y2xlX2luY2x1ZGVfZGlyMiI7IHRoZW4KKysgICAgICAgICAgICAgICAgT1JBQ0xFX09DSV9DRkxB R1M9IiRPUkFDTEVfT0NJX0NGTEFHUyAtSSRvcmFjbGVfaW5jbHVkZV9kaXIyIgorKyAgICAgICAg ICAgIGZpCisrCisrICAgICAgICAgICAgb2NpX2hlYWRlcl9mb3VuZD0ieWVzIgorKyAgICAgICAg ICAgIEFDX01TR19SRVNVTFQoW3llc10pCisrICAgICAgICAgICAgXSwKKysgICAgICAgICAgICBb CisrICAgICAgICAgICAgb2NpX2hlYWRlcl9mb3VuZD0ibm8iCisrICAgICAgICAgICAgQUNfTVNH X1JFU1VMVChbbm90IGZvdW5kXSkKKysgICAgICAgICAgICBdCisrICAgICAgICApCisrICAgICAg ICBBQ19MQU5HX1BPUChbQysrXSkKKysgICAgICAgIAorKyAgICAgICAgZG5sCisrICAgICAgICBk bmwgQ2hlY2sgT0NJIGxpYnJhcmllcworKyAgICAgICAgZG5sCisrICAgICAgICBpZiB0ZXN0ICIk b2NpX2hlYWRlcl9mb3VuZCIgPSAieWVzIjsgdGhlbgorKworKyAgICAgICAgICAgIEFDX01TR19D SEVDS0lORyhbZm9yIE9yYWNsZSBPQ0kgbGlicmFyaWVzIGluICRvcmFjbGVfbGliX2Rpcl0pCisr CisrICAgICAgICAgICAgQUNfTEFOR19QVVNIKEMrKykKKysgICAgICAgICAgICBBQ19MSU5LX0lG RUxTRShbCisrICAgICAgICAgICAgICAgIEFDX0xBTkdfUFJPR1JBTShbW0AlOkBpbmNsdWRlIDxv Y2kuaD5dXSwKKysgICAgICAgICAgICAgICAgICAgIFtbCisrT0NJRW52KiBlbnZoID0gMDsKKytP Q0lFbnZDcmVhdGUoJmVudmgsIE9DSV9ERUZBVUxULCAwLCAwLCAwLCAwLCAwLCAwKTsKKytpZiAo ZW52aCkgT0NJSGFuZGxlRnJlZShlbnZoLCBPQ0lfSFRZUEVfRU5WKTsKKysgICAgICAgICAgICAg ICAgICAgIF1dCisrICAgICAgICAgICAgICAgICldLAorKyAgICAgICAgICAgICAgICBbCisrICAg ICAgICAgICAgICAgIE9SQUNMRV9PQ0lfTERGTEFHUz0iJG9jaV9sZGZsYWdzICRvY2lfbGlicyIK KysgICAgICAgICAgICAgICAgb2NpX2xpYl9mb3VuZD0ieWVzIgorKyAgICAgICAgICAgICAgICBB Q19NU0dfUkVTVUxUKFt5ZXNdKQorKyAgICAgICAgICAgICAgICBdLAorKyAgICAgICAgICAgICAg ICBbCisrICAgICAgICAgICAgICAgIG9jaV9saWJfZm91bmQ9Im5vIgorKyAgICAgICAgICAgICAg ICBBQ19NU0dfUkVTVUxUKFtub3QgZm91bmRdKQorKyAgICAgICAgICAgICAgICBdCisrICAgICAg ICAgICAgKQorKyAgICAgICAgICAgIEFDX0xBTkdfUE9QKFtDKytdKQorKyAgICAgICAgZmkKKysK KysgICAgICAgIENQUEZMQUdTPSIkc2F2ZWRfQ1BQRkxBR1MiCisrICAgICAgICBMREZMQUdTPSIk c2F2ZWRfTERGTEFHUyIKKysgICAgICAgIExJQlM9IiRzYXZlZF9MSUJTIgorKyAgICBmaQorKwor KyAgICBkbmwKKysgICAgZG5sIENoZWNrIHJlcXVpcmVkIHZlcnNpb24gb2YgT3JhY2xlIGlzIGF2 YWlsYWJsZQorKyAgICBkbmwKKysgICAgb3JhY2xlX3ZlcnNpb25fcmVxPWlmZWxzZShbJDFdLCBb XSwgW10sIFskMV0pCisrCisrICAgIGlmIHRlc3QgIiRvY2lfaGVhZGVyX2ZvdW5kIiA9ICJ5ZXMi IC1hICIkb2NpX2xpYl9mb3VuZCIgPSAieWVzIiAtYSBcCisrICAgICAgICAtbiAiJG9yYWNsZV92 ZXJzaW9uX3JlcSI7IHRoZW4KKysKKysgICAgICAgIG9yYWNsZV92ZXJzaW9uX21ham9yPWBjYXQg JG9yYWNsZV9pbmNsdWRlX2Rpci9vY2kuaCBcCisrICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB8IGdyZXAgJyNkZWZpbmUuKk9DSV9NQUpPUl9WRVJTSU9OLionIFwKKysgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHwgc2VkIC1lICdzLyNkZWZpbmUgT0NJX01BSk9SX1ZFUlNJT04gICov LycgXAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBzZWQgLWUgJ3MvICAqXC9cKi4q XCpcLy8vJ2AKKysKKysgICAgICAgIG9yYWNsZV92ZXJzaW9uX21pbm9yPWBjYXQgJG9yYWNsZV9p bmNsdWRlX2Rpci9vY2kuaCBcCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGdyZXAg JyNkZWZpbmUuKk9DSV9NSU5PUl9WRVJTSU9OLionIFwKKysgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHwgc2VkIC1lICdzLyNkZWZpbmUgT0NJX01JTk9SX1ZFUlNJT04gICovLycgXAorKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBzZWQgLWUgJ3MvICAqXC9cKi4qXCpcLy8vJ2AK KysKKysgICAgICAgIEFDX01TR19DSEVDS0lORyhbaWYgT3JhY2xlIE9DSSB2ZXJzaW9uIGlzID49 ICRvcmFjbGVfdmVyc2lvbl9yZXFdKQorKworKyAgICAgICAgaWYgdGVzdCAtbiAiJG9yYWNsZV92 ZXJzaW9uX21ham9yIiAtYSAtbiAkIm9yYWNsZV92ZXJzaW9uX21pbm9yIjsgdGhlbgorKworKyAg ICAgICAgICAgIE9SQUNMRV9PQ0lfVkVSU0lPTj0iJG9yYWNsZV92ZXJzaW9uX21ham9yLiRvcmFj bGVfdmVyc2lvbl9taW5vciIKKysKKysgICAgICAgICAgICBkbmwgRGVjb21wb3NlIHJlcXVpcmVk IHZlcnNpb24gc3RyaW5nIG9mIE9yYWNsZQorKyAgICAgICAgICAgIGRubCBhbmQgY2FsY3VsYXRl IGl0cyBudW1iZXIgcmVwcmVzZW50YXRpb24KKysgICAgICAgICAgICBvcmFjbGVfdmVyc2lvbl9y ZXFfbWFqb3I9YGV4cHIgJG9yYWNsZV92ZXJzaW9uX3JlcSA6ICdcKFtbMC05XV0qXCknYAorKyAg ICAgICAgICAgIG9yYWNsZV92ZXJzaW9uX3JlcV9taW5vcj1gZXhwciAkb3JhY2xlX3ZlcnNpb25f cmVxIDogJ1tbMC05XV0qXC5cKFtbMC05XV0qXCknYAorKworKyAgICAgICAgICAgIG9yYWNsZV92 ZXJzaW9uX3JlcV9udW1iZXI9YGV4cHIgJG9yYWNsZV92ZXJzaW9uX3JlcV9tYWpvciBcKiAxMDAw MDAwIFwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcKyAkb3JhY2xl X3ZlcnNpb25fcmVxX21pbm9yIFwqIDEwMDBgCisrCisrICAgICAgICAgICAgZG5sIENhbGN1bGF0 ZSBpdHMgbnVtYmVyIHJlcHJlc2VudGF0aW9uIAorKyAgICAgICAgICAgIG9yYWNsZV92ZXJzaW9u X251bWJlcj1gZXhwciAkb3JhY2xlX3ZlcnNpb25fbWFqb3IgXCogMTAwMDAwMCBcCisrICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwrICRvcmFjbGVfdmVyc2lvbl9taW5vciBcKiAx MDAwYAorKworKyAgICAgICAgICAgIG9yYWNsZV92ZXJzaW9uX2NoZWNrPWBleHByICRvcmFjbGVf dmVyc2lvbl9udW1iZXIgXD5cPSAkb3JhY2xlX3ZlcnNpb25fcmVxX251bWJlcmAKKysgICAgICAg ICAgICBpZiB0ZXN0ICIkb3JhY2xlX3ZlcnNpb25fY2hlY2siID0gIjEiOyB0aGVuCisrICAgICAg ICAgICAgICAgIEFDX01TR19SRVNVTFQoW3llc10pCisrICAgICAgICAgICAgICAgIEFDX0RFRklO RShIQVZFX09SQUNMRSwgWzFdLCBbRGVmaW5lIHRvIDEgaWYgdGhlIE9yYWNsZSBPQ0kgbGlicmFy eSBpcyBhdmFpbGFibGVdKQorKyAgICAgICAgICAgIGVsc2UKKysgICAgICAgICAgICAgICAgQUNf TVNHX1JFU1VMVChbbm9dKQorKyAgICAgICAgICAgICAgICBBQ19NU0dfRVJST1IoW09yYWNsZSAk T1JBQ0xFX09DSV9WRVJTSU9OIGZvdW5kLCBidXQgcmVxdWlyZWQgdmVyc2lvbiBpcyAkb3JhY2xl X3ZlcnNpb25fcmVxXSkKKysgICAgICAgICAgICBmaQorKyAgICAgICAgZWxzZQorKyAgICAgICAg ICAgIE9SQUNMRV9PQ0lfVkVSU0lPTj0iVU5LTk9XTiIKKysgICAgICAgICAgICBBQ19NU0dfUkVT VUxUKFtub10pCisrICAgICAgICAgICAgQUNfTVNHX1dBUk4oW09yYWNsZSB2ZXJzaW9uIHVua25v d24sIHByb2JhYmx5IE9DSSBvbGRlciB0aGFuIDEwLjIgaXMgYXZhaWxhYmxlXSkKKysgICAgICAg IGZpCisrICAgIGZpCisrCisrICAgIEFDX1NVQlNUKFtPUkFDTEVfT0NJX1ZFUlNJT05dKQorKyAg ICBBQ19TVUJTVChbT1JBQ0xFX09DSV9DRkxBR1NdKQorKyAgICBBQ19TVUJTVChbT1JBQ0xFX09D SV9MREZMQUdTXSkKKytdKQorZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL2NvbmZpZy9heF9w b3N0Z3Jlc3FsLm00IHNvY2ktMy4wLjBfdHJlcDMwMC9jb25maWcvYXhfcG9zdGdyZXNxbC5tNAor LS0tIHNvY2ktMy4wLjBfNC1wYWNrL2NvbmZpZy9heF9wb3N0Z3Jlc3FsLm00CTE5NzAtMDEtMDEg MDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCisrKysgc29jaS0zLjAuMF90cmVwMzAwL2NvbmZpZy9h eF9wb3N0Z3Jlc3FsLm00CTIwMTAtMDEtMjMgMTM6Mjc6MDQuMDAwMDAwMDAwICswMTAwCitAQCAt MCwwICsxLDE3MSBAQAorK2RubCAkSWQ6IHNvY2ktMy4wLjAtMTYtZml4LWdudS1hdXRvdG9vbHMt Y29tcGF0aWJpbGl0eS5wYXRjaCx2IDEuMSAyMDEwLzAxLzIzIDE1OjE2OjQ5IGRlbmlzYXJuYXVk IEV4cCAkCisrZG5sCisrZG5sIEBzeW5vcHNpcyBBWF9MSUJfUE9TVEdSRVNRTChbTUlOSU1VTS1W RVJTSU9OXSkKKytkbmwKKytkbmwgVGhpcyBtYWNybyBwcm92aWRlcyB0ZXN0cyBvZiBhdmFpbGFi aWxpdHkgb2YgUG9zdGdyZVNRTCAnbGlicHEnIGxpYnJhcnkKKytkbmwgb2YgcGFydGljdWxhciB2 ZXJzaW9uIG9yIG5ld2VyLgorK2RubCAKKytkbmwgQVhfTElCX1BPU1RHUkVTUUwgbWFjcm8gdGFr ZXMgb25seSBvbmUgYXJndW1lbnQgd2hpY2ggaXMgb3B0aW9uYWwuIElmIHRoZXJlIGlzIG5vIAor K2RubCByZXF1aXJlZCB2ZXJzaW9uIHBhc3NlZCwgdGhlbiBtYWNybyBkb2VzIG5vdCBydW4gdmVy c2lvbiB0ZXN0LgorK2RubAorK2RubCBUaGUgLS13aXRoLXBvc3RncmVzcWwgb3B0aW9uIHRha2Vz IG9uZSBvZiB0aHJlZSBwb3NzaWJsZSB2YWx1ZXM6CisrZG5sIG5vICAgLSBkbyBub3QgY2hlY2sg Zm9yIFBvc3RncmVTUUwgY2xpZW50IGxpYnJhcnkKKytkbmwgeWVzICAtIGRvIGNoZWNrIGZvciBQ b3N0Z3JlU1FMIGxpYnJhcnkgaW4gc3RhbmRhcmQgbG9jYXRpb25zCisrZG5sICAgICAgICAocGdf Y29uZmlnIHNob3VsZCBiZSBpbiB0aGUgUEFUSCkKKytkbmwgcGF0aCAtIGNvbXBsZXRlIHBhdGgg dG8gcGdfY29uZmlnIHV0aWxpdHksIHVzZSB0aGlzIG9wdGlvbgorK2RubCAgICAgICAgaWYgcGdf Y29uZmlnIGNhbid0IGJlIGZvdW5kIGluIHRoZSBQQVRICisrZG5sCisrZG5sIFRoaXMgbWFjcm8g Y2FsbHM6CisrZG5sCisrZG5sICAgQUNfU1VCU1QoUE9TVEdSRVNRTF9DRkxBR1MpCisrZG5sICAg QUNfU1VCU1QoUE9TVEdSRVNRTF9MREZMQUdTKQorK2RubCAgIEFDX1NVQlNUKFBPU1RHUkVTUUxf VkVSU0lPTikKKytkbmwKKytkbmwgQW5kIHNldHM6CisrZG5sCisrZG5sICAgSEFWRV9QT1NUR1JF U1FMCisrZG5sCisrZG5sIEBjYXRlZ29yeSBJbnN0YWxsZWRQYWNrYWdlcworK2RubCBAY2F0ZWdv cnkgQ3h4CisrZG5sIEBhdXRob3IgTWF0ZXVzeiBMb3Nrb3QgPG1hdGV1c3pAbG9za290Lm5ldD4K KytkbmwgQHZlcnNpb24gJERhdGU6IDIwMTAvMDEvMjMgMTU6MTY6NDkgJAorK2RubCBAbGljZW5z ZSBBbGxQZXJtaXNzaXZlCisrZG5sCisrZG5sICRJZDogc29jaS0zLjAuMC0xNi1maXgtZ251LWF1 dG90b29scy1jb21wYXRpYmlsaXR5LnBhdGNoLHYgMS4xIDIwMTAvMDEvMjMgMTU6MTY6NDkgZGVu aXNhcm5hdWQgRXhwICQKKytkbmwKKytBQ19ERUZVTihbQVhfTElCX1BPU1RHUkVTUUxdLAorK1sK KysgICAgQUNfQVJHX1dJVEgoW3Bvc3RncmVzcWxdLAorKyAgICAgICAgQUNfSEVMUF9TVFJJTkco Wy0td2l0aC1wb3N0Z3Jlc3FsPUA8OkBBUkdAOj5AXSwKKysgICAgICAgICAgICBbdXNlIFBvc3Rn cmVTUUwgbGlicmFyeSBAPDpAZGVmYXVsdD15ZXNAOj5ALCBvcHRpb25hbGx5IHNwZWNpZnkgcGF0 aCB0byBwZ19jb25maWddCisrICAgICAgICApLAorKyAgICAgICAgWworKwlQT1NUR1JFU1FMX2lu Y19jaGVjaz0iJHdpdGhfcG9zdGdyZXNxbC9pbmNsdWRlIgorKyAgICAgICAgaWYgdGVzdCAiJHdp dGh2YWwiID0gIm5vIjsgdGhlbgorKyAgICAgICAgICAgIHdhbnRfcG9zdGdyZXNxbD0ibm8iCisr ICAgICAgICBlbGlmIHRlc3QgIiR3aXRodmFsIiA9ICJ5ZXMiOyB0aGVuCisrICAgICAgICAgICAg d2FudF9wb3N0Z3Jlc3FsPSJ5ZXMiCisrICAgICAgICBlbHNlCisrICAgICAgICAgICAgd2FudF9w b3N0Z3Jlc3FsPSJ5ZXMiCisrICAgICAgICAgICAgUEdfQ09ORklHPSIkd2l0aHZhbCIKKysgICAg ICAgIGZpCisrICAgICAgICBdLAorKyAgICAgICAgW3dhbnRfcG9zdGdyZXNxbD0ieWVzIgorKwlQ T1NUR1JFU1FMX2luY19jaGVjaz0iL3Vzci9pbmNsdWRlIC91c3IvbG9jYWwgL29wdCJdCisrICAg ICkKKysKKysgICAgUE9TVEdSRVNRTF9DRkxBR1M9IiIKKysgICAgUE9TVEdSRVNRTF9MREZMQUdT PSIiCisrICAgIFBPU1RHUkVTUUxfUE9TVEdSRVNRTD0iIgorKworKyAgICBkbmwKKysgICAgZG5s IENoZWNrIFBvc3RncmVTUUwgbGlicmFyaWVzIChsaWJwcSkKKysgICAgZG5sCisrICAgIAorKyAg ICBpZiB0ZXN0ICIkd2FudF9wb3N0Z3Jlc3FsIiA9ICJ5ZXMiOyB0aGVuCisrCisrICAgICAgICBp ZiB0ZXN0IC16ICIkUEdfQ09ORklHIiAtbyB0ZXN0OyB0aGVuCisrICAgICAgICAgICAgQUNfUEFU SF9QUk9HKFtQR19DT05GSUddLCBbcGdfY29uZmlnXSwgW10pCisrICAgICAgICBmaQorKworKyAg ICAgICAgaWYgdGVzdCAhIC14ICIkUEdfQ09ORklHIjsgdGhlbgorKyAgICAgICAgICAgIEFDX01T R19FUlJPUihbJFBHX0NPTkZJRyBkb2VzIG5vdCBleGlzdCBvciBpdCBpcyBub3QgYW4gZXhlY3R1 YWJsZSBmaWxlXSkKKysgICAgICAgICAgICBQR19DT05GSUc9Im5vIgorKyAgICAgICAgICAgIGZv dW5kX3Bvc3RncmVzcWw9Im5vIgorKyAgICAgICAgZmkKKysKKysgICAgICAgIGlmIHRlc3QgIiRQ R19DT05GSUciICE9ICJubyI7IHRoZW4KKysgICAgICAgICAgICAjCisrICAgICAgICAgICAgIyBM b29rIGZvciBQb3N0Z3Jlc3FsIEMgQVBJIGhlYWRlcnMKKysgICAgICAgICAgICAjCisrICAgICAg ICAgICAgQUNfTVNHX0NIRUNLSU5HKFtmb3IgUG9zdGdyZXNxbCBpbmNsdWRlIGRpcmVjdG9yeV0p CisrICAgICAgICAgICAgUE9TVEdSRVNRTF9pbmNkaXI9CisrICAgICAgICAgICAgZm9yIHBvc3Rn cmVzcWxfaW5jX2RpciBpbiAkUE9TVEdSRVNRTF9pbmNfY2hlY2sKKysgICAgICAgICAgICBkbwor KyAgICAgICAgICAgICAgICBpZiB0ZXN0IC1kICIkcG9zdGdyZXNxbF9pbmNfZGlyIiBcCisrICAg ICAgICAgICAgICAgICYmIHRlc3QgLWYgIiRwb3N0Z3Jlc3FsX2luY19kaXIvcG9zdGdyZXNfZXh0 LmgiCisrICAgICAgICAgICAgICAgIHRoZW4KKysgICAgICAgICAgICAgICAgICAgIFBPU1RHUkVT UUxfaW5jZGlyPSRwb3N0Z3Jlc3FsX2luY19kaXIKKysgICAgICAgICAgICAgICAgICAgIGJyZWFr CisrICAgICAgICAgICAgICAgIGZpCisrICAgICAgICAgICAgZG9uZQorKworKyAgICAgICAgICAg IGlmIHRlc3QgLXogIiRQT1NUR1JFU1FMX2luY2RpciIKKysgICAgICAgICAgICB0aGVuCisrICAg ICAgICAgICAgICAgIEFDX01TR19FUlJPUihbRGlkbid0IGZpbmQgdGhlIFBvc3RncmVzcWwgaW5j bHVkZSBkaXIgaW4gJyRQT1NUR1JFU1FMX2luY19jaGVjayddKQorKyAgICAgICAgICAgIGZpCisr CisrICAgICAgICAgICAgY2FzZSAiJFBPU1RHUkVTUUxfaW5jZGlyIiBpbgorKyAgICAgICAgICAg ICAgICAvKiApIDs7CisrICAgICAgICAgICAgICAgICogKSAgQUNfTVNHX0VSUk9SKFtUaGUgUG9z dGdyZXNxbCBpbmNsdWRlIGRpcmVjdG9yeSAoJFBPU1RHUkVTUUxfaW5jZGlyKSBtdXN0IGJlIGFu IGFic29sdXRlIHBhdGguXSkgOzsKKysgICAgICAgICAgICBlc2FjCisrCisrICAgICAgICAgICAg QUNfTVNHX1JFU1VMVChbJFBPU1RHUkVTUUxfaW5jZGlyXSkKKysKKysgICAgICAgICAgICBpZiB0 ZXN0ICIkUE9TVEdSRVNRTF9pbmNkaXIiID0gIi91c3IvaW5jbHVkZSI7IHRoZW4KKysgICAgICAg ICAgICAgIFBPU1RHUkVTUUxfQ0ZMQUdTPSIiCisrICAgICAgICAgICAgZWxzZQorKyAgICAgICAg ICAgICAgUE9TVEdSRVNRTF9DRkxBR1M9Ii1JJHtQT1NUR1JFU1FMX2luY2Rpcn0iCisrICAgICAg ICAgICAgZmkKKysKKysgICAgICAgICAgICBQT1NUR1JFU1FMX0xERkxBR1M9Ii1MYCRQR19DT05G SUcgLS1saWJkaXJgIC1scHEiCisrCisrICAgICAgICAgICAgUE9TVEdSRVNRTF9WRVJTSU9OPWAk UEdfQ09ORklHIC0tdmVyc2lvbiB8IHNlZCAtZSAncyNQb3N0Z3JlU1FMICMjJ2AKKysKKysgICAg ICAgICAgICBBQ19ERUZJTkUoW0hBVkVfUE9TVEdSRVNRTF0sIFsxXSwgW0RlZmluZSB0byAxIGlm IFBvc3RncmVTUUwgbGlicmFyaWVzIGFyZSBhdmFpbGFibGVdKQorKyAgICAgICAgICAgIAorKyAg ICAgICAgICAgIGZvdW5kX3Bvc3RncmVzcWw9InllcyIKKysgICAgICAgIGVsc2UKKysgICAgICAg ICAgICBmb3VuZF9wb3N0Z3Jlc3FsPSJubyIKKysgICAgICAgIGZpCisrICAgIGZpCisrCisrICAg IGRubAorKyAgICBkbmwgQ2hlY2sgaWYgcmVxdWlyZWQgdmVyc2lvbiBvZiBQb3N0Z3JlU1FMIGlz IGF2YWlsYWJsZQorKyAgICBkbmwKKysgICAgCisrCisrICAgIHBvc3RncmVzcWxfdmVyc2lvbl9y ZXE9aWZlbHNlKFskMV0sIFtdLCBbXSwgWyQxXSkKKysKKysgICAgaWYgdGVzdCAiJGZvdW5kX3Bv c3RncmVzcWwiID0gInllcyIgLWEgLW4gIiRwb3N0Z3Jlc3FsX3ZlcnNpb25fcmVxIjsgdGhlbgor KworKyAgICAgICAgQUNfTVNHX0NIRUNLSU5HKFtpZiBQb3N0Z3JlU1FMIHZlcnNpb24gaXMgPj0g JHBvc3RncmVzcWxfdmVyc2lvbl9yZXFdKQorKworKyAgICAgICAgZG5sIERlY29tcG9zZSByZXF1 aXJlZCB2ZXJzaW9uIHN0cmluZyBvZiBQb3N0Z3JlU1FMCisrICAgICAgICBkbmwgYW5kIGNhbGN1 bGF0ZSBpdHMgbnVtYmVyIHJlcHJlc2VudGF0aW9uCisrICAgICAgICBwb3N0Z3Jlc3FsX3ZlcnNp b25fcmVxX21ham9yPWBleHByICRwb3N0Z3Jlc3FsX3ZlcnNpb25fcmVxIDogJ1woW1swLTldXSpc KSdgCisrICAgICAgICBwb3N0Z3Jlc3FsX3ZlcnNpb25fcmVxX21pbm9yPWBleHByICRwb3N0Z3Jl c3FsX3ZlcnNpb25fcmVxIDogJ1tbMC05XV0qXC5cKFtbMC05XV0qXCknYAorKyAgICAgICAgcG9z dGdyZXNxbF92ZXJzaW9uX3JlcV9taWNybz1gZXhwciAkcG9zdGdyZXNxbF92ZXJzaW9uX3JlcSA6 ICdbWzAtOV1dKlwuW1swLTldXSpcLlwoW1swLTldXSpcKSdgCisrICAgICAgICBpZiB0ZXN0ICJ4 JHBvc3RncmVzcWxfdmVyc2lvbl9yZXFfbWljcm8iID0gIngiOyB0aGVuCisrICAgICAgICAgICAg cG9zdGdyZXNxbF92ZXJzaW9uX3JlcV9taWNybz0iMCIKKysgICAgICAgIGZpCisrCisrICAgICAg ICBwb3N0Z3Jlc3FsX3ZlcnNpb25fcmVxX251bWJlcj1gZXhwciAkcG9zdGdyZXNxbF92ZXJzaW9u X3JlcV9tYWpvciBcKiAxMDAwMDAwIFwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFwrICRwb3N0Z3Jlc3FsX3ZlcnNpb25fcmVxX21pbm9yIFwqIDEwMDAgXAorKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgXCsgJHBvc3RncmVzcWxfdmVyc2lvbl9yZXFfbWlj cm9gCisrCisrICAgICAgICBkbmwgRGVjb21wb3NlIHZlcnNpb24gc3RyaW5nIG9mIGluc3RhbGxl ZCBQb3N0Z3JlU1FMCisrICAgICAgICBkbmwgYW5kIGNhbGN1bGF0ZSBpdHMgbnVtYmVyIHJlcHJl c2VudGF0aW9uCisrICAgICAgICBwb3N0Z3Jlc3FsX3ZlcnNpb25fbWFqb3I9YGV4cHIgJFBPU1RH UkVTUUxfVkVSU0lPTiA6ICdcKFtbMC05XV0qXCknYAorKyAgICAgICAgcG9zdGdyZXNxbF92ZXJz aW9uX21pbm9yPWBleHByICRQT1NUR1JFU1FMX1ZFUlNJT04gOiAnW1swLTldXSpcLlwoW1swLTld XSpcKSdgCisrICAgICAgICBwb3N0Z3Jlc3FsX3ZlcnNpb25fbWljcm89YGV4cHIgJFBPU1RHUkVT UUxfVkVSU0lPTiA6ICdbWzAtOV1dKlwuW1swLTldXSpcLlwoW1swLTldXSpcKSdgCisrICAgICAg ICBpZiB0ZXN0ICJ4JHBvc3RncmVzcWxfdmVyc2lvbl9taWNybyIgPSAieCI7IHRoZW4KKysgICAg ICAgICAgICBwb3N0Z3Jlc3FsX3ZlcnNpb25fbWljcm89IjAiCisrICAgICAgICBmaQorKworKyAg ICAgICAgcG9zdGdyZXNxbF92ZXJzaW9uX251bWJlcj1gZXhwciAkcG9zdGdyZXNxbF92ZXJzaW9u X21ham9yIFwqIDEwMDAwMDAgXAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg XCsgJHBvc3RncmVzcWxfdmVyc2lvbl9taW5vciBcKiAxMDAwIFwKKysgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFwrICRwb3N0Z3Jlc3FsX3ZlcnNpb25fbWljcm9gCisrCisrICAg ICAgICBwb3N0Z3Jlc3FsX3ZlcnNpb25fY2hlY2s9YGV4cHIgJHBvc3RncmVzcWxfdmVyc2lvbl9u dW1iZXIgXD5cPSAkcG9zdGdyZXNxbF92ZXJzaW9uX3JlcV9udW1iZXJgCisrICAgICAgICBpZiB0 ZXN0ICIkcG9zdGdyZXNxbF92ZXJzaW9uX2NoZWNrIiA9ICIxIjsgdGhlbgorKyAgICAgICAgICAg IEFDX01TR19SRVNVTFQoW3llc10pCisrICAgICAgICBlbHNlCisrICAgICAgICAgICAgQUNfTVNH X1JFU1VMVChbbm9dKQorKyAgICAgICAgZmkKKysgICAgZmkKKysKKysgICAgQUNfU1VCU1QoW1BP U1RHUkVTUUxfVkVSU0lPTl0pCisrICAgIEFDX1NVQlNUKFtQT1NUR1JFU1FMX0NGTEFHU10pCisr ICAgIEFDX1NVQlNUKFtQT1NUR1JFU1FMX0xERkxBR1NdKQorK10pCitkaWZmIC1OdXIgc29jaS0z LjAuMF80LXBhY2svY29uZmlnL2NvbmZpZy5ndWVzcyBzb2NpLTMuMC4wX3RyZXAzMDAvY29uZmln L2NvbmZpZy5ndWVzcworLS0tIHNvY2ktMy4wLjBfNC1wYWNrL2NvbmZpZy9jb25maWcuZ3Vlc3MJ MTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKKysrKyBzb2NpLTMuMC4wX3RyZXAz MDAvY29uZmlnL2NvbmZpZy5ndWVzcwkyMDEwLTAxLTIzIDE0OjQ0OjUwLjAwMDAwMDAwMCArMDEw MAorQEAgLTAsMCArMSwxNTAxIEBACisrIyEgL2Jpbi9zaAorKyMgQXR0ZW1wdCB0byBndWVzcyBh IGNhbm9uaWNhbCBzeXN0ZW0gbmFtZS4KKysjICAgQ29weXJpZ2h0IChDKSAxOTkyLCAxOTkzLCAx OTk0LCAxOTk1LCAxOTk2LCAxOTk3LCAxOTk4LCAxOTk5LAorKyMgICAyMDAwLCAyMDAxLCAyMDAy LCAyMDAzLCAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5CisrIyAgIEZyZWUgU29m dHdhcmUgRm91bmRhdGlvbiwgSW5jLgorKworK3RpbWVzdGFtcD0nMjAwOS0xMS0yMCcKKysKKysj IFRoaXMgZmlsZSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQv b3IgbW9kaWZ5IGl0CisrIyB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1Ymxp YyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorKyMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv bjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKKysjIChhdCB5b3VyIG9wdGlv bikgYW55IGxhdGVyIHZlcnNpb24uCisrIworKyMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVk IGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dAorKyMgV0lUSE9VVCBBTlkg V0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorKyMgTUVSQ0hB TlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBH TlUKKysjIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKysjCisrIyBZ b3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMg TGljZW5zZQorKyMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhl IEZyZWUgU29mdHdhcmUKKysjIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCAt IEZpZnRoIEZsb29yLCBCb3N0b24sIE1BCisrIyAwMjExMC0xMzAxLCBVU0EuCisrIworKyMgQXMg YSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UsIGlm IHlvdQorKyMgZGlzdHJpYnV0ZSB0aGlzIGZpbGUgYXMgcGFydCBvZiBhIHByb2dyYW0gdGhhdCBj b250YWlucyBhCisrIyBjb25maWd1cmF0aW9uIHNjcmlwdCBnZW5lcmF0ZWQgYnkgQXV0b2NvbmYs IHlvdSBtYXkgaW5jbHVkZSBpdCB1bmRlcgorKyMgdGhlIHNhbWUgZGlzdHJpYnV0aW9uIHRlcm1z IHRoYXQgeW91IHVzZSBmb3IgdGhlIHJlc3Qgb2YgdGhhdCBwcm9ncmFtLgorKworKworKyMgT3Jp Z2luYWxseSB3cml0dGVuIGJ5IFBlciBCb3RobmVyLiAgUGxlYXNlIHNlbmQgcGF0Y2hlcyAoY29u dGV4dAorKyMgZGlmZiBmb3JtYXQpIHRvIDxjb25maWctcGF0Y2hlc0BnbnUub3JnPiBhbmQgaW5j bHVkZSBhIENoYW5nZUxvZworKyMgZW50cnkuCisrIworKyMgVGhpcyBzY3JpcHQgYXR0ZW1wdHMg dG8gZ3Vlc3MgYSBjYW5vbmljYWwgc3lzdGVtIG5hbWUgc2ltaWxhciB0bworKyMgY29uZmlnLnN1 Yi4gIElmIGl0IHN1Y2NlZWRzLCBpdCBwcmludHMgdGhlIHN5c3RlbSBuYW1lIG9uIHN0ZG91dCwg YW5kCisrIyBleGl0cyB3aXRoIDAuICBPdGhlcndpc2UsIGl0IGV4aXRzIHdpdGggMS4KKysjCisr IyBZb3UgY2FuIGdldCB0aGUgbGF0ZXN0IHZlcnNpb24gb2YgdGhpcyBzY3JpcHQgZnJvbToKKysj IGh0dHA6Ly9naXQuc2F2YW5uYWguZ251Lm9yZy9naXR3ZWIvP3A9Y29uZmlnLmdpdDthPWJsb2Jf cGxhaW47Zj1jb25maWcuZ3Vlc3M7aGI9SEVBRAorKworK21lPWBlY2hvICIkMCIgfCBzZWQgLWUg J3MsLiovLCwnYAorKworK3VzYWdlPSJcCisrVXNhZ2U6ICQwIFtPUFRJT05dCisrCisrT3V0cHV0 IHRoZSBjb25maWd1cmF0aW9uIG5hbWUgb2YgdGhlIHN5c3RlbSBcYCRtZScgaXMgcnVuIG9uLgor KworK09wZXJhdGlvbiBtb2RlczoKKysgIC1oLCAtLWhlbHAgICAgICAgICBwcmludCB0aGlzIGhl bHAsIHRoZW4gZXhpdAorKyAgLXQsIC0tdGltZS1zdGFtcCAgIHByaW50IGRhdGUgb2YgbGFzdCBt b2RpZmljYXRpb24sIHRoZW4gZXhpdAorKyAgLXYsIC0tdmVyc2lvbiAgICAgIHByaW50IHZlcnNp b24gbnVtYmVyLCB0aGVuIGV4aXQKKysKKytSZXBvcnQgYnVncyBhbmQgcGF0Y2hlcyB0byA8Y29u ZmlnLXBhdGNoZXNAZ251Lm9yZz4uIgorKworK3ZlcnNpb249IlwKKytHTlUgY29uZmlnLmd1ZXNz ICgkdGltZXN0YW1wKQorKworK09yaWdpbmFsbHkgd3JpdHRlbiBieSBQZXIgQm90aG5lci4KKytD b3B5cmlnaHQgKEMpIDE5OTIsIDE5OTMsIDE5OTQsIDE5OTUsIDE5OTYsIDE5OTcsIDE5OTgsIDE5 OTksIDIwMDAsIDIwMDEsCisrMjAwMiwgMjAwMywgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNywgMjAw OCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKysKKytUaGlzIGlzIGZyZWUgc29mdHdh cmU7IHNlZSB0aGUgc291cmNlIGZvciBjb3B5aW5nIGNvbmRpdGlvbnMuICBUaGVyZSBpcyBOTwor K3dhcnJhbnR5OyBub3QgZXZlbiBmb3IgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEg UEFSVElDVUxBUiBQVVJQT1NFLiIKKysKKytoZWxwPSIKKytUcnkgXGAkbWUgLS1oZWxwJyBmb3Ig bW9yZSBpbmZvcm1hdGlvbi4iCisrCisrIyBQYXJzZSBjb21tYW5kIGxpbmUKKyt3aGlsZSB0ZXN0 ICQjIC1ndCAwIDsgZG8KKysgIGNhc2UgJDEgaW4KKysgICAgLS10aW1lLXN0YW1wIHwgLS10aW1l KiB8IC10ICkKKysgICAgICAgZWNobyAiJHRpbWVzdGFtcCIgOyBleGl0IDs7CisrICAgIC0tdmVy c2lvbiB8IC12ICkKKysgICAgICAgZWNobyAiJHZlcnNpb24iIDsgZXhpdCA7OworKyAgICAtLWhl bHAgfCAtLWgqIHwgLWggKQorKyAgICAgICBlY2hvICIkdXNhZ2UiOyBleGl0IDs7CisrICAgIC0t ICkgICAgICMgU3RvcCBvcHRpb24gcHJvY2Vzc2luZworKyAgICAgICBzaGlmdDsgYnJlYWsgOzsK KysgICAgLSApCSMgVXNlIHN0ZGluIGFzIGlucHV0LgorKyAgICAgICBicmVhayA7OworKyAgICAt KiApCisrICAgICAgIGVjaG8gIiRtZTogaW52YWxpZCBvcHRpb24gJDEkaGVscCIgPiYyCisrICAg ICAgIGV4aXQgMSA7OworKyAgICAqICkKKysgICAgICAgYnJlYWsgOzsKKysgIGVzYWMKKytkb25l CisrCisraWYgdGVzdCAkIyAhPSAwOyB0aGVuCisrICBlY2hvICIkbWU6IHRvbyBtYW55IGFyZ3Vt ZW50cyRoZWxwIiA+JjIKKysgIGV4aXQgMQorK2ZpCisrCisrdHJhcCAnZXhpdCAxJyAxIDIgMTUK KysKKysjIENDX0ZPUl9CVUlMRCAtLSBjb21waWxlciB1c2VkIGJ5IHRoaXMgc2NyaXB0LiBOb3Rl IHRoYXQgdGhlIHVzZSBvZiBhCisrIyBjb21waWxlciB0byBhaWQgaW4gc3lzdGVtIGRldGVjdGlv biBpcyBkaXNjb3VyYWdlZCBhcyBpdCByZXF1aXJlcworKyMgdGVtcG9yYXJ5IGZpbGVzIHRvIGJl IGNyZWF0ZWQgYW5kLCBhcyB5b3UgY2FuIHNlZSBiZWxvdywgaXQgaXMgYQorKyMgaGVhZGFjaGUg dG8gZGVhbCB3aXRoIGluIGEgcG9ydGFibGUgZmFzaGlvbi4KKysKKysjIEhpc3RvcmljYWxseSwg YENDX0ZPUl9CVUlMRCcgdXNlZCB0byBiZSBuYW1lZCBgSE9TVF9DQycuIFdlIHN0aWxsCisrIyB1 c2UgYEhPU1RfQ0MnIGlmIGRlZmluZWQsIGJ1dCBpdCBpcyBkZXByZWNhdGVkLgorKworKyMgUG9y dGFibGUgdG1wIGRpcmVjdG9yeSBjcmVhdGlvbiBpbnNwaXJlZCBieSB0aGUgQXV0b2NvbmYgdGVh bS4KKysKKytzZXRfY2NfZm9yX2J1aWxkPScKKyt0cmFwICJleGl0Y29kZT1cJD87IChybSAtZiBc JHRtcGZpbGVzIDI+L2Rldi9udWxsOyBybWRpciBcJHRtcCAyPi9kZXYvbnVsbCkgJiYgZXhpdCBc JGV4aXRjb2RlIiAwIDsKKyt0cmFwICJybSAtZiBcJHRtcGZpbGVzIDI+L2Rldi9udWxsOyBybWRp ciBcJHRtcCAyPi9kZXYvbnVsbDsgZXhpdCAxIiAxIDIgMTMgMTUgOworKzogJHtUTVBESVI9L3Rt cH0gOworKyB7IHRtcD1gKHVtYXNrIDA3NyAmJiBta3RlbXAgLWQgIiRUTVBESVIvY2dYWFhYWFgi KSAyPi9kZXYvbnVsbGAgJiYgdGVzdCAtbiAiJHRtcCIgJiYgdGVzdCAtZCAiJHRtcCIgOyB9IHx8 CisrIHsgdGVzdCAtbiAiJFJBTkRPTSIgJiYgdG1wPSRUTVBESVIvY2ckJC0kUkFORE9NICYmICh1 bWFzayAwNzcgJiYgbWtkaXIgJHRtcCkgOyB9IHx8CisrIHsgdG1wPSRUTVBESVIvY2ctJCQgJiYg KHVtYXNrIDA3NyAmJiBta2RpciAkdG1wKSAmJiBlY2hvICJXYXJuaW5nOiBjcmVhdGluZyBpbnNl Y3VyZSB0ZW1wIGRpcmVjdG9yeSIgPiYyIDsgfSB8fAorKyB7IGVjaG8gIiRtZTogY2Fubm90IGNy ZWF0ZSBhIHRlbXBvcmFyeSBkaXJlY3RvcnkgaW4gJFRNUERJUiIgPiYyIDsgZXhpdCAxIDsgfSA7 CisrZHVtbXk9JHRtcC9kdW1teSA7CisrdG1wZmlsZXM9IiRkdW1teS5jICRkdW1teS5vICRkdW1t eS5yZWwgJGR1bW15IiA7CisrY2FzZSAkQ0NfRk9SX0JVSUxELCRIT1NUX0NDLCRDQyBpbgorKyAs LCkgICAgZWNobyAiaW50IHg7IiA+ICRkdW1teS5jIDsKKysJZm9yIGMgaW4gY2MgZ2NjIGM4OSBj OTkgOyBkbworKwkgIGlmICgkYyAtYyAtbyAkZHVtbXkubyAkZHVtbXkuYykgPi9kZXYvbnVsbCAy PiYxIDsgdGhlbgorKwkgICAgIENDX0ZPUl9CVUlMRD0iJGMiOyBicmVhayA7CisrCSAgZmkgOwor Kwlkb25lIDsKKysJaWYgdGVzdCB4IiRDQ19GT1JfQlVJTEQiID0geCA7IHRoZW4KKysJICBDQ19G T1JfQlVJTEQ9bm9fY29tcGlsZXJfZm91bmQgOworKwlmaQorKwk7OworKyAsLCopICAgQ0NfRk9S X0JVSUxEPSRDQyA7OworKyAsKiwqKSAgQ0NfRk9SX0JVSUxEPSRIT1NUX0NDIDs7CisrZXNhYyA7 IHNldF9jY19mb3JfYnVpbGQ9IDsnCisrCisrIyBUaGlzIGlzIG5lZWRlZCB0byBmaW5kIHVuYW1l IG9uIGEgUHlyYW1pZCBPU3ggd2hlbiBydW4gaW4gdGhlIEJTRCB1bml2ZXJzZS4KKysjIChnaGF6 aUBub2MucnV0Z2Vycy5lZHUgMTk5NC0wOC0yNCkKKytpZiAodGVzdCAtZiAvLmF0dGJpbi91bmFt ZSkgPi9kZXYvbnVsbCAyPiYxIDsgdGhlbgorKwlQQVRIPSRQQVRIOi8uYXR0YmluIDsgZXhwb3J0 IFBBVEgKKytmaQorKworK1VOQU1FX01BQ0hJTkU9YCh1bmFtZSAtbSkgMj4vZGV2L251bGxgIHx8 IFVOQU1FX01BQ0hJTkU9dW5rbm93bgorK1VOQU1FX1JFTEVBU0U9YCh1bmFtZSAtcikgMj4vZGV2 L251bGxgIHx8IFVOQU1FX1JFTEVBU0U9dW5rbm93bgorK1VOQU1FX1NZU1RFTT1gKHVuYW1lIC1z KSAyPi9kZXYvbnVsbGAgIHx8IFVOQU1FX1NZU1RFTT11bmtub3duCisrVU5BTUVfVkVSU0lPTj1g KHVuYW1lIC12KSAyPi9kZXYvbnVsbGAgfHwgVU5BTUVfVkVSU0lPTj11bmtub3duCisrCisrIyBO b3RlOiBvcmRlciBpcyBzaWduaWZpY2FudCAtIHRoZSBjYXNlIGJyYW5jaGVzIGFyZSBub3QgZXhj bHVzaXZlLgorKworK2Nhc2UgIiR7VU5BTUVfTUFDSElORX06JHtVTkFNRV9TWVNURU19OiR7VU5B TUVfUkVMRUFTRX06JHtVTkFNRV9WRVJTSU9OfSIgaW4KKysgICAgKjpOZXRCU0Q6KjoqKQorKwkj IE5ldEJTRCAobmJzZCkgdGFyZ2V0cyBzaG91bGQgKHdoZXJlIGFwcGxpY2FibGUpIG1hdGNoIG9u ZSBvcgorKwkjIG1vcmUgb2YgdGhlIHR1cHBsZXM6ICotKi1uZXRic2RlbGYqLCAqLSotbmV0YnNk YW91dCosCisrCSMgKi0qLW5ldGJzZGVjb2ZmKiBhbmQgKi0qLW5ldGJzZCouICBGb3IgdGFyZ2V0 cyB0aGF0IHJlY2VudGx5CisrCSMgc3dpdGNoZWQgdG8gRUxGLCAqLSotbmV0YnNkKiB3b3VsZCBz ZWxlY3QgdGhlIG9sZAorKwkjIG9iamVjdCBmaWxlIGZvcm1hdC4gIFRoaXMgcHJvdmlkZXMgYm90 aCBmb3J3YXJkCisrCSMgY29tcGF0aWJpbGl0eSBhbmQgYSBjb25zaXN0ZW50IG1lY2hhbmlzbSBm b3Igc2VsZWN0aW5nIHRoZQorKwkjIG9iamVjdCBmaWxlIGZvcm1hdC4KKysJIworKwkjIE5vdGU6 IE5ldEJTRCBkb2Vzbid0IHBhcnRpY3VsYXJseSBjYXJlIGFib3V0IHRoZSB2ZW5kb3IKKysJIyBw b3J0aW9uIG9mIHRoZSBuYW1lLiAgV2UgYWx3YXlzIHNldCBpdCB0byAidW5rbm93biIuCisrCXN5 c2N0bD0ic3lzY3RsIC1uIGh3Lm1hY2hpbmVfYXJjaCIKKysJVU5BTUVfTUFDSElORV9BUkNIPWAo L3NiaW4vJHN5c2N0bCAyPi9kZXYvbnVsbCB8fCBcCisrCSAgICAvdXNyL3NiaW4vJHN5c2N0bCAy Pi9kZXYvbnVsbCB8fCBlY2hvIHVua25vd24pYAorKwljYXNlICIke1VOQU1FX01BQ0hJTkVfQVJD SH0iIGluCisrCSAgICBhcm1lYikgbWFjaGluZT1hcm1lYi11bmtub3duIDs7CisrCSAgICBhcm0q KSBtYWNoaW5lPWFybS11bmtub3duIDs7CisrCSAgICBzaDNlbCkgbWFjaGluZT1zaGwtdW5rbm93 biA7OworKwkgICAgc2gzZWIpIG1hY2hpbmU9c2gtdW5rbm93biA7OworKwkgICAgc2g1ZWwpIG1h Y2hpbmU9c2g1bGUtdW5rbm93biA7OworKwkgICAgKikgbWFjaGluZT0ke1VOQU1FX01BQ0hJTkVf QVJDSH0tdW5rbm93biA7OworKwllc2FjCisrCSMgVGhlIE9wZXJhdGluZyBTeXN0ZW0gaW5jbHVk aW5nIG9iamVjdCBmb3JtYXQsIGlmIGl0IGhhcyBzd2l0Y2hlZAorKwkjIHRvIEVMRiByZWNlbnRs eSwgb3Igd2lsbCBpbiB0aGUgZnV0dXJlLgorKwljYXNlICIke1VOQU1FX01BQ0hJTkVfQVJDSH0i IGluCisrCSAgICBhcm0qfGkzODZ8bTY4a3xuczMya3xzaDMqfHNwYXJjfHZheCkKKysJCWV2YWwg JHNldF9jY19mb3JfYnVpbGQKKysJCWlmIGVjaG8gX19FTEZfXyB8ICRDQ19GT1JfQlVJTEQgLUUg LSAyPi9kZXYvbnVsbCBcCisrCQkJfCBncmVwIC1xIF9fRUxGX18KKysJCXRoZW4KKysJCSAgICAj IE9uY2UgYWxsIHV0aWxpdGllcyBjYW4gYmUgRUNPRkYgKG5ldGJzZGVjb2ZmKSBvciBhLm91dCAo bmV0YnNkYW91dCkuCisrCQkgICAgIyBSZXR1cm4gbmV0YnNkIGZvciBlaXRoZXIuICBGSVg/Cisr CQkgICAgb3M9bmV0YnNkCisrCQllbHNlCisrCQkgICAgb3M9bmV0YnNkZWxmCisrCQlmaQorKwkJ OzsKKysJICAgICopCisrCSAgICAgICAgb3M9bmV0YnNkCisrCQk7OworKwllc2FjCisrCSMgVGhl IE9TIHJlbGVhc2UKKysJIyBEZWJpYW4gR05VL05ldEJTRCBtYWNoaW5lcyBoYXZlIGEgZGlmZmVy ZW50IHVzZXJsYW5kLCBhbmQKKysJIyB0aHVzLCBuZWVkIGEgZGlzdGluY3QgdHJpcGxldC4gSG93 ZXZlciwgdGhleSBkbyBub3QgbmVlZAorKwkjIGtlcm5lbCB2ZXJzaW9uIGluZm9ybWF0aW9uLCBz byBpdCBjYW4gYmUgcmVwbGFjZWQgd2l0aCBhCisrCSMgc3VpdGFibGUgdGFnLCBpbiB0aGUgc3R5 bGUgb2YgbGludXgtZ251LgorKwljYXNlICIke1VOQU1FX1ZFUlNJT059IiBpbgorKwkgICAgRGVi aWFuKikKKysJCXJlbGVhc2U9Jy1nbnUnCisrCQk7OworKwkgICAgKikKKysJCXJlbGVhc2U9YGVj aG8gJHtVTkFNRV9SRUxFQVNFfXxzZWQgLWUgJ3MvWy1fXS4qL1wuLydgCisrCQk7OworKwllc2Fj CisrCSMgU2luY2UgQ1BVX1RZUEUtTUFOVUZBQ1RVUkVSLUtFUk5FTC1PUEVSQVRJTkdfU1lTVEVN OgorKwkjIGNvbnRhaW5zIHJlZHVuZGFudCBpbmZvcm1hdGlvbiwgdGhlIHNob3J0ZXIgZm9ybToK KysJIyBDUFVfVFlQRS1NQU5VRkFDVFVSRVItT1BFUkFUSU5HX1NZU1RFTSBpcyB1c2VkLgorKwll Y2hvICIke21hY2hpbmV9LSR7b3N9JHtyZWxlYXNlfSIKKysJZXhpdCA7OworKyAgICAqOk9wZW5C U0Q6KjoqKQorKwlVTkFNRV9NQUNISU5FX0FSQ0g9YGFyY2ggfCBzZWQgJ3MvT3BlbkJTRC4vLydg CisrCWVjaG8gJHtVTkFNRV9NQUNISU5FX0FSQ0h9LXVua25vd24tb3BlbmJzZCR7VU5BTUVfUkVM RUFTRX0KKysJZXhpdCA7OworKyAgICAqOmVra29CU0Q6KjoqKQorKwllY2hvICR7VU5BTUVfTUFD SElORX0tdW5rbm93bi1la2tvYnNkJHtVTkFNRV9SRUxFQVNFfQorKwlleGl0IDs7CisrICAgICo6 U29saWRCU0Q6KjoqKQorKwllY2hvICR7VU5BTUVfTUFDSElORX0tdW5rbm93bi1zb2xpZGJzZCR7 VU5BTUVfUkVMRUFTRX0KKysJZXhpdCA7OworKyAgICBtYWNwcGM6TWlyQlNEOio6KikKKysJZWNo byBwb3dlcnBjLXVua25vd24tbWlyYnNkJHtVTkFNRV9SRUxFQVNFfQorKwlleGl0IDs7CisrICAg ICo6TWlyQlNEOio6KikKKysJZWNobyAke1VOQU1FX01BQ0hJTkV9LXVua25vd24tbWlyYnNkJHtV TkFNRV9SRUxFQVNFfQorKwlleGl0IDs7CisrICAgIGFscGhhOk9TRjE6KjoqKQorKwljYXNlICRV TkFNRV9SRUxFQVNFIGluCisrCSo0LjApCisrCQlVTkFNRV9SRUxFQVNFPWAvdXNyL3NiaW4vc2l6 ZXIgLXYgfCBhd2sgJ3twcmludCAkM30nYAorKwkJOzsKKysJKjUuKikKKysJICAgICAgICBVTkFN RV9SRUxFQVNFPWAvdXNyL3NiaW4vc2l6ZXIgLXYgfCBhd2sgJ3twcmludCAkNH0nYAorKwkJOzsK KysJZXNhYworKwkjIEFjY29yZGluZyB0byBDb21wYXEsIC91c3Ivc2Jpbi9wc3JpbmZvIGhhcyBi ZWVuIGF2YWlsYWJsZSBvbgorKwkjIE9TRi8xIGFuZCBUcnU2NCBzeXN0ZW1zIHByb2R1Y2VkIHNp bmNlIDE5OTUuICBJIGhvcGUgdGhhdAorKwkjIGNvdmVycyBtb3N0IHN5c3RlbXMgcnVubmluZyB0 b2RheS4gIFRoaXMgY29kZSBwaXBlcyB0aGUgQ1BVCisrCSMgdHlwZXMgdGhyb3VnaCBoZWFkIC1u IDEsIHNvIHdlIG9ubHkgZGV0ZWN0IHRoZSB0eXBlIG9mIENQVSAwLgorKwlBTFBIQV9DUFVfVFlQ RT1gL3Vzci9zYmluL3BzcmluZm8gLXYgfCBzZWQgLW4gLWUgJ3MvXiAgVGhlIGFscGhhIFwoLipc KSBwcm9jZXNzb3IuKiQvXDEvcCcgfCBoZWFkIC1uIDFgCisrCWNhc2UgIiRBTFBIQV9DUFVfVFlQ RSIgaW4KKysJICAgICJFVjQgKDIxMDY0KSIpCisrCQlVTkFNRV9NQUNISU5FPSJhbHBoYSIgOzsK KysJICAgICJFVjQuNSAoMjEwNjQpIikKKysJCVVOQU1FX01BQ0hJTkU9ImFscGhhIiA7OworKwkg ICAgIkxDQTQgKDIxMDY2LzIxMDY4KSIpCisrCQlVTkFNRV9NQUNISU5FPSJhbHBoYSIgOzsKKysJ ICAgICJFVjUgKDIxMTY0KSIpCisrCQlVTkFNRV9NQUNISU5FPSJhbHBoYWV2NSIgOzsKKysJICAg ICJFVjUuNiAoMjExNjRBKSIpCisrCQlVTkFNRV9NQUNISU5FPSJhbHBoYWV2NTYiIDs7CisrCSAg ICAiRVY1LjYgKDIxMTY0UEMpIikKKysJCVVOQU1FX01BQ0hJTkU9ImFscGhhcGNhNTYiIDs7Cisr CSAgICAiRVY1LjcgKDIxMTY0UEMpIikKKysJCVVOQU1FX01BQ0hJTkU9ImFscGhhcGNhNTciIDs7 CisrCSAgICAiRVY2ICgyMTI2NCkiKQorKwkJVU5BTUVfTUFDSElORT0iYWxwaGFldjYiIDs7Cisr CSAgICAiRVY2LjcgKDIxMjY0QSkiKQorKwkJVU5BTUVfTUFDSElORT0iYWxwaGFldjY3IiA7Owor KwkgICAgIkVWNi44Q0IgKDIxMjY0QykiKQorKwkJVU5BTUVfTUFDSElORT0iYWxwaGFldjY4IiA7 OworKwkgICAgIkVWNi44QUwgKDIxMjY0QikiKQorKwkJVU5BTUVfTUFDSElORT0iYWxwaGFldjY4 IiA7OworKwkgICAgIkVWNi44Q1ggKDIxMjY0RCkiKQorKwkJVU5BTUVfTUFDSElORT0iYWxwaGFl djY4IiA7OworKwkgICAgIkVWNi45QSAoMjEyNjQvRVY2OUEpIikKKysJCVVOQU1FX01BQ0hJTkU9 ImFscGhhZXY2OSIgOzsKKysJICAgICJFVjcgKDIxMzY0KSIpCisrCQlVTkFNRV9NQUNISU5FPSJh bHBoYWV2NyIgOzsKKysJICAgICJFVjcuOSAoMjEzNjRBKSIpCisrCQlVTkFNRV9NQUNISU5FPSJh bHBoYWV2NzkiIDs7CisrCWVzYWMKKysJIyBBIFBuLm4gdmVyc2lvbiBpcyBhIHBhdGNoZWQgdmVy c2lvbi4KKysJIyBBIFZuLm4gdmVyc2lvbiBpcyBhIHJlbGVhc2VkIHZlcnNpb24uCisrCSMgQSBU bi5uIHZlcnNpb24gaXMgYSByZWxlYXNlZCBmaWVsZCB0ZXN0IHZlcnNpb24uCisrCSMgQSBYbi5u IHZlcnNpb24gaXMgYW4gdW5yZWxlYXNlZCBleHBlcmltZW50YWwgYmFzZWxldmVsLgorKwkjIDEu MiB1c2VzICIxLjIiIGZvciB1bmFtZSAtci4KKysJZWNobyAke1VOQU1FX01BQ0hJTkV9LWRlYy1v c2ZgZWNobyAke1VOQU1FX1JFTEVBU0V9IHwgc2VkIC1lICdzL15bUFZUWF0vLycgfCB0ciAnQUJD REVGR0hJSktMTU5PUFFSU1RVVldYWVonICdhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eidgCisr CWV4aXQgOzsKKysgICAgQWxwaGFcICo6V2luZG93c19OVCo6KikKKysJIyBIb3cgZG8gd2Uga25v dyBpdCdzIEludGVyaXggcmF0aGVyIHRoYW4gdGhlIGdlbmVyaWMgUE9TSVggc3Vic3lzdGVtPwor KwkjIFNob3VsZCB3ZSBjaGFuZ2UgVU5BTUVfTUFDSElORSBiYXNlZCBvbiB0aGUgb3V0cHV0IG9m IHVuYW1lIGluc3RlYWQKKysJIyBvZiB0aGUgc3BlY2lmaWMgQWxwaGEgbW9kZWw/CisrCWVjaG8g YWxwaGEtcGMtaW50ZXJpeAorKwlleGl0IDs7CisrICAgIDIxMDY0OldpbmRvd3NfTlQ6NTA6MykK KysJZWNobyBhbHBoYS1kZWMtd2lubnQzLjUKKysJZXhpdCA7OworKyAgICBBbWlnYSo6VU5JWF9T eXN0ZW1fVjo0LjA6KikKKysJZWNobyBtNjhrLXVua25vd24tc3lzdjQKKysJZXhpdCA7OworKyAg ICAqOltBYV1taWdhW09vXVtTc106KjoqKQorKwllY2hvICR7VU5BTUVfTUFDSElORX0tdW5rbm93 bi1hbWlnYW9zCisrCWV4aXQgOzsKKysgICAgKjpbTW1db3JwaFtPb11bU3NdOio6KikKKysJZWNo byAke1VOQU1FX01BQ0hJTkV9LXVua25vd24tbW9ycGhvcworKwlleGl0IDs7CisrICAgICo6T1Mv MzkwOio6KikKKysJZWNobyBpMzcwLWlibS1vcGVuZWRpdGlvbgorKwlleGl0IDs7CisrICAgICo6 ei9WTToqOiopCisrCWVjaG8gczM5MC1pYm0tenZtb2UKKysJZXhpdCA7OworKyAgICAqOk9TNDAw Oio6KikKKysgICAgICAgIGVjaG8gcG93ZXJwYy1pYm0tb3M0MDAKKysJZXhpdCA7OworKyAgICBh cm06UklTQyo6MS5bMDEyXSo6Knxhcm06cmlzY2l4OjEuWzAxMl0qOiopCisrCWVjaG8gYXJtLWFj b3JuLXJpc2NpeCR7VU5BTUVfUkVMRUFTRX0KKysJZXhpdCA7OworKyAgICBhcm06cmlzY29zOio6 Knxhcm06UklTQ09TOio6KikKKysJZWNobyBhcm0tdW5rbm93bi1yaXNjb3MKKysJZXhpdCA7Owor KyAgICBTUjI/MDE6SEktVVgvTVBQOio6KiB8IFNSODAwMDpISS1VWC9NUFA6KjoqKQorKwllY2hv IGhwcGExLjEtaGl0YWNoaS1oaXV4bXBwCisrCWV4aXQgOzsKKysgICAgUHlyYW1pZCo6T1N4Kjoq OiogfCBNSVMqOk9TeCo6KjoqIHwgTUlTKjpTTVBfREMtT1N4KjoqOiopCisrCSMgYWtlZUB3cGRp czAzLndwYWZiLmFmLm1pbCAoRWFybGUgRi4gQWtlKSBjb250cmlidXRlZCBNSVMgYW5kIE5JTEUu CisrCWlmIHRlc3QgImAoL2Jpbi91bml2ZXJzZSkgMj4vZGV2L251bGxgIiA9IGF0dCA7IHRoZW4K KysJCWVjaG8gcHlyYW1pZC1weXJhbWlkLXN5c3YzCisrCWVsc2UKKysJCWVjaG8gcHlyYW1pZC1w eXJhbWlkLWJzZAorKwlmaQorKwlleGl0IDs7CisrICAgIE5JTEUqOio6KjpkY29zeCkKKysJZWNo byBweXJhbWlkLXB5cmFtaWQtc3ZyNAorKwlleGl0IDs7CisrICAgIERSUz82MDAwOnVuaXg6NC4w OjYqKQorKwllY2hvIHNwYXJjLWljbC1ueDYKKysJZXhpdCA7OworKyAgICBEUlM/NjAwMDpVTklY X1NWOjQuMio6NyogfCBEUlM/NjAwMDppc2lzOjQuMio6NyopCisrCWNhc2UgYC91c3IvYmluL3Vu YW1lIC1wYCBpbgorKwkgICAgc3BhcmMpIGVjaG8gc3BhcmMtaWNsLW54NzsgZXhpdCA7OworKwll c2FjIDs7CisrICAgIHMzOTB4OlN1bk9TOio6KikKKysJZWNobyAke1VOQU1FX01BQ0hJTkV9LWli bS1zb2xhcmlzMmBlY2hvICR7VU5BTUVfUkVMRUFTRX18c2VkIC1lICdzL1teLl0qLy8nYAorKwll eGl0IDs7CisrICAgIHN1bjRIOlN1bk9TOjUuKjoqKQorKwllY2hvIHNwYXJjLWhhbC1zb2xhcmlz MmBlY2hvICR7VU5BTUVfUkVMRUFTRX18c2VkIC1lICdzL1teLl0qLy8nYAorKwlleGl0IDs7Cisr ICAgIHN1bjQqOlN1bk9TOjUuKjoqIHwgdGFkcG9sZSo6U3VuT1M6NS4qOiopCisrCWVjaG8gc3Bh cmMtc3VuLXNvbGFyaXMyYGVjaG8gJHtVTkFNRV9SRUxFQVNFfXxzZWQgLWUgJ3MvW14uXSovLydg CisrCWV4aXQgOzsKKysgICAgaTg2cGM6QXVyb3JhVVg6NS4qOiogfCBpODZ4ZW46QXVyb3JhVVg6 NS4qOiopCisrCWVjaG8gaTM4Ni1wYy1hdXJvcmF1eCR7VU5BTUVfUkVMRUFTRX0KKysJZXhpdCA7 OworKyAgICBpODZwYzpTdW5PUzo1Lio6KiB8IGk4NnhlbjpTdW5PUzo1Lio6KikKKysJZXZhbCAk c2V0X2NjX2Zvcl9idWlsZAorKwlTVU5fQVJDSD0iaTM4NiIKKysJIyBJZiB0aGVyZSBpcyBhIGNv bXBpbGVyLCBzZWUgaWYgaXQgaXMgY29uZmlndXJlZCBmb3IgNjQtYml0IG9iamVjdHMuCisrCSMg Tm90ZSB0aGF0IHRoZSBTdW4gY2MgZG9lcyBub3QgdHVybiBfX0xQNjRfXyBpbnRvIDEgbGlrZSBn Y2MgZG9lcy4KKysJIyBUaGlzIHRlc3Qgd29ya3MgZm9yIGJvdGggY29tcGlsZXJzLgorKwlpZiBb ICIkQ0NfRk9SX0JVSUxEIiAhPSAnbm9fY29tcGlsZXJfZm91bmQnIF07IHRoZW4KKysJICAgIGlm IChlY2hvICcjaWZkZWYgX19hbWQ2NCc7IGVjaG8gSVNfNjRCSVRfQVJDSDsgZWNobyAnI2VuZGlm JykgfCBcCisrCQkoQ0NPUFRTPSAkQ0NfRk9SX0JVSUxEIC1FIC0gMj4vZGV2L251bGwpIHwgXAor KwkJZ3JlcCBJU182NEJJVF9BUkNIID4vZGV2L251bGwKKysJICAgIHRoZW4KKysJCVNVTl9BUkNI PSJ4ODZfNjQiCisrCSAgICBmaQorKwlmaQorKwllY2hvICR7U1VOX0FSQ0h9LXBjLXNvbGFyaXMy YGVjaG8gJHtVTkFNRV9SRUxFQVNFfXxzZWQgLWUgJ3MvW14uXSovLydgCisrCWV4aXQgOzsKKysg ICAgc3VuNCo6U3VuT1M6Nio6KikKKysJIyBBY2NvcmRpbmcgdG8gY29uZmlnLnN1YiwgdGhpcyBp cyB0aGUgcHJvcGVyIHdheSB0byBjYW5vbmljYWxpemUKKysJIyBTdW5PUzYuICBIYXJkIHRvIGd1 ZXNzIGV4YWN0bHkgd2hhdCBTdW5PUzYgd2lsbCBiZSBsaWtlLCBidXQKKysJIyBpdCdzIGxpa2Vs eSB0byBiZSBtb3JlIGxpa2UgU29sYXJpcyB0aGFuIFN1bk9TNC4KKysJZWNobyBzcGFyYy1zdW4t c29sYXJpczNgZWNobyAke1VOQU1FX1JFTEVBU0V9fHNlZCAtZSAncy9bXi5dKi8vJ2AKKysJZXhp dCA7OworKyAgICBzdW40KjpTdW5PUzoqOiopCisrCWNhc2UgImAvdXNyL2Jpbi9hcmNoIC1rYCIg aW4KKysJICAgIFNlcmllcyp8UzQqKQorKwkJVU5BTUVfUkVMRUFTRT1gdW5hbWUgLXZgCisrCQk7 OworKwllc2FjCisrCSMgSmFwYW5lc2UgTGFuZ3VhZ2UgdmVyc2lvbnMgaGF2ZSBhIHZlcnNpb24g bnVtYmVyIGxpa2UgYDQuMS4zLUpMJy4KKysJZWNobyBzcGFyYy1zdW4tc3Vub3NgZWNobyAke1VO QU1FX1JFTEVBU0V9fHNlZCAtZSAncy8tL18vJ2AKKysJZXhpdCA7OworKyAgICBzdW4zKjpTdW5P UzoqOiopCisrCWVjaG8gbTY4ay1zdW4tc3Vub3Mke1VOQU1FX1JFTEVBU0V9CisrCWV4aXQgOzsK KysgICAgc3VuKjoqOjQuMkJTRDoqKQorKwlVTkFNRV9SRUxFQVNFPWAoc2VkIDFxIC9ldGMvbW90 ZCB8IGF3ayAne3ByaW50IHN1YnN0cigkNSwxLDMpfScpIDI+L2Rldi9udWxsYAorKwl0ZXN0ICJ4 JHtVTkFNRV9SRUxFQVNFfSIgPSAieCIgJiYgVU5BTUVfUkVMRUFTRT0zCisrCWNhc2UgImAvYmlu L2FyY2hgIiBpbgorKwkgICAgc3VuMykKKysJCWVjaG8gbTY4ay1zdW4tc3Vub3Mke1VOQU1FX1JF TEVBU0V9CisrCQk7OworKwkgICAgc3VuNCkKKysJCWVjaG8gc3BhcmMtc3VuLXN1bm9zJHtVTkFN RV9SRUxFQVNFfQorKwkJOzsKKysJZXNhYworKwlleGl0IDs7CisrICAgIGF1c2hwOlN1bk9TOio6 KikKKysJZWNobyBzcGFyYy1hdXNwZXgtc3Vub3Mke1VOQU1FX1JFTEVBU0V9CisrCWV4aXQgOzsK KysgICAgIyBUaGUgc2l0dWF0aW9uIGZvciBNaU5UIGlzIGEgbGl0dGxlIGNvbmZ1c2luZy4gIFRo ZSBtYWNoaW5lIG5hbWUKKysgICAgIyBjYW4gYmUgdmlydHVhbGx5IGV2ZXJ5dGhpbmcgKGV2ZXJ5 dGhpbmcgd2hpY2ggaXMgbm90CisrICAgICMgImF0YXJpc3QiIG9yICJhdGFyaXN0ZSIgYXQgbGVh c3Qgc2hvdWxkIGhhdmUgYSBwcm9jZXNzb3IKKysgICAgIyA+IG02ODAwMCkuICBUaGUgc3lzdGVt IG5hbWUgcmFuZ2VzIGZyb20gIk1pTlQiIG92ZXIgIkZyZWVNaU5UIgorKyAgICAjIHRvIHRoZSBs b3dlcmNhc2UgdmVyc2lvbiAibWludCIgKG9yICJmcmVlbWludCIpLiAgRmluYWxseQorKyAgICAj IHRoZSBzeXN0ZW0gbmFtZSAiVE9TIiBkZW5vdGVzIGEgc3lzdGVtIHdoaWNoIGlzIGFjdHVhbGx5 IG5vdAorKyAgICAjIE1pTlQuICBCdXQgTWlOVCBpcyBkb3dud2FyZCBjb21wYXRpYmxlIHRvIFRP Uywgc28gdGhpcyBzaG91bGQKKysgICAgIyBiZSBubyBwcm9ibGVtLgorKyAgICBhdGFyaXN0W2Vd OipNaU5UOio6KiB8IGF0YXJpc3RbZV06Km1pbnQ6KjoqIHwgYXRhcmlzdFtlXToqVE9TOio6KikK KysgICAgICAgIGVjaG8gbTY4ay1hdGFyaS1taW50JHtVTkFNRV9SRUxFQVNFfQorKwlleGl0IDs7 CisrICAgIGF0YXJpKjoqTWlOVDoqOiogfCBhdGFyaSo6Km1pbnQ6KjoqIHwgYXRhcmlzdFtlXToq VE9TOio6KikKKysJZWNobyBtNjhrLWF0YXJpLW1pbnQke1VOQU1FX1JFTEVBU0V9CisrICAgICAg ICBleGl0IDs7CisrICAgICpmYWxjb24qOipNaU5UOio6KiB8ICpmYWxjb24qOiptaW50Oio6KiB8 ICpmYWxjb24qOipUT1M6KjoqKQorKyAgICAgICAgZWNobyBtNjhrLWF0YXJpLW1pbnQke1VOQU1F X1JFTEVBU0V9CisrCWV4aXQgOzsKKysgICAgbWlsYW4qOipNaU5UOio6KiB8IG1pbGFuKjoqbWlu dDoqOiogfCAqbWlsYW4qOipUT1M6KjoqKQorKyAgICAgICAgZWNobyBtNjhrLW1pbGFuLW1pbnQk e1VOQU1FX1JFTEVBU0V9CisrICAgICAgICBleGl0IDs7CisrICAgIGhhZGVzKjoqTWlOVDoqOiog fCBoYWRlcyo6Km1pbnQ6KjoqIHwgKmhhZGVzKjoqVE9TOio6KikKKysgICAgICAgIGVjaG8gbTY4 ay1oYWRlcy1taW50JHtVTkFNRV9SRUxFQVNFfQorKyAgICAgICAgZXhpdCA7OworKyAgICAqOipN aU5UOio6KiB8ICo6Km1pbnQ6KjoqIHwgKjoqVE9TOio6KikKKysgICAgICAgIGVjaG8gbTY4ay11 bmtub3duLW1pbnQke1VOQU1FX1JFTEVBU0V9CisrICAgICAgICBleGl0IDs7CisrICAgIG02OGs6 bWFjaHRlbjoqOiopCisrCWVjaG8gbTY4ay1hcHBsZS1tYWNodGVuJHtVTkFNRV9SRUxFQVNFfQor KwlleGl0IDs7CisrICAgIHBvd2VycGM6bWFjaHRlbjoqOiopCisrCWVjaG8gcG93ZXJwYy1hcHBs ZS1tYWNodGVuJHtVTkFNRV9SRUxFQVNFfQorKwlleGl0IDs7CisrICAgIFJJU0MqOk1hY2g6Kjoq KQorKwllY2hvIG1pcHMtZGVjLW1hY2hfYnNkNC4zCisrCWV4aXQgOzsKKysgICAgUklTQyo6VUxU UklYOio6KikKKysJZWNobyBtaXBzLWRlYy11bHRyaXgke1VOQU1FX1JFTEVBU0V9CisrCWV4aXQg OzsKKysgICAgVkFYKjpVTFRSSVgqOio6KikKKysJZWNobyB2YXgtZGVjLXVsdHJpeCR7VU5BTUVf UkVMRUFTRX0KKysJZXhpdCA7OworKyAgICAyMDIwOkNMSVg6KjoqIHwgMjQzMDpDTElYOio6KikK KysJZWNobyBjbGlwcGVyLWludGVyZ3JhcGgtY2xpeCR7VU5BTUVfUkVMRUFTRX0KKysJZXhpdCA7 OworKyAgICBtaXBzOio6KjpVTUlQUyB8IG1pcHM6KjoqOlJJU0NvcykKKysJZXZhbCAkc2V0X2Nj X2Zvcl9idWlsZAorKwlzZWQgJ3MvXgkvLycgPDwgRU9GID4kZHVtbXkuYworKyNpZmRlZiBfX2Nw bHVzcGx1cworKyNpbmNsdWRlIDxzdGRpby5oPiAgLyogZm9yIHByaW50ZigpIHByb3RvdHlwZSAq LworKwlpbnQgbWFpbiAoaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkgeworKyNlbHNlCisrCWludCBt YWluIChhcmdjLCBhcmd2KSBpbnQgYXJnYzsgY2hhciAqYXJndltdOyB7CisrI2VuZGlmCisrCSNp ZiBkZWZpbmVkIChob3N0X21pcHMpICYmIGRlZmluZWQgKE1JUFNFQikKKysJI2lmIGRlZmluZWQg KFNZU1RZUEVfU1lTVikKKysJICBwcmludGYgKCJtaXBzLW1pcHMtcmlzY29zJXNzeXN2XG4iLCBh cmd2WzFdKTsgZXhpdCAoMCk7CisrCSNlbmRpZgorKwkjaWYgZGVmaW5lZCAoU1lTVFlQRV9TVlI0 KQorKwkgIHByaW50ZiAoIm1pcHMtbWlwcy1yaXNjb3Mlc3N2cjRcbiIsIGFyZ3ZbMV0pOyBleGl0 ICgwKTsKKysJI2VuZGlmCisrCSNpZiBkZWZpbmVkIChTWVNUWVBFX0JTRDQzKSB8fCBkZWZpbmVk KFNZU1RZUEVfQlNEKQorKwkgIHByaW50ZiAoIm1pcHMtbWlwcy1yaXNjb3Mlc2JzZFxuIiwgYXJn dlsxXSk7IGV4aXQgKDApOworKwkjZW5kaWYKKysJI2VuZGlmCisrCSAgZXhpdCAoLTEpOworKwl9 CisrRU9GCisrCSRDQ19GT1JfQlVJTEQgLW8gJGR1bW15ICRkdW1teS5jICYmCisrCSAgZHVtbXlh cmc9YGVjaG8gIiR7VU5BTUVfUkVMRUFTRX0iIHwgc2VkIC1uICdzL1woWzAtOV0qXCkuKi9cMS9w J2AgJiYKKysJICBTWVNURU1fTkFNRT1gJGR1bW15ICRkdW1teWFyZ2AgJiYKKysJICAgIHsgZWNo byAiJFNZU1RFTV9OQU1FIjsgZXhpdDsgfQorKwllY2hvIG1pcHMtbWlwcy1yaXNjb3Mke1VOQU1F X1JFTEVBU0V9CisrCWV4aXQgOzsKKysgICAgTW90b3JvbGE6UG93ZXJNQVhfT1M6KjoqKQorKwll Y2hvIHBvd2VycGMtbW90b3JvbGEtcG93ZXJtYXgKKysJZXhpdCA7OworKyAgICBNb3Rvcm9sYToq OjQuMzpQTDgtKikKKysJZWNobyBwb3dlcnBjLWhhcnJpcy1wb3dlcm1heAorKwlleGl0IDs7Cisr ICAgIE5pZ2h0X0hhd2s6KjoqOlBvd2VyTUFYX09TIHwgU3luZXJneTpQb3dlck1BWF9PUzoqOiop CisrCWVjaG8gcG93ZXJwYy1oYXJyaXMtcG93ZXJtYXgKKysJZXhpdCA7OworKyAgICBOaWdodF9I YXdrOlBvd2VyX1VOSVg6KjoqKQorKwllY2hvIHBvd2VycGMtaGFycmlzLXBvd2VydW5peAorKwll eGl0IDs7CisrICAgIG04OGs6Q1gvVVg6Nyo6KikKKysJZWNobyBtODhrLWhhcnJpcy1jeHV4Nwor KwlleGl0IDs7CisrICAgIG04OGs6Kjo0KjpSNCopCisrCWVjaG8gbTg4ay1tb3Rvcm9sYS1zeXN2 NAorKwlleGl0IDs7CisrICAgIG04OGs6KjozKjpSMyopCisrCWVjaG8gbTg4ay1tb3Rvcm9sYS1z eXN2MworKwlleGl0IDs7CisrICAgIEFWaWlPTjpkZ3V4Oio6KikKKysgICAgICAgICMgREcvVVgg cmV0dXJucyBBVmlpT04gZm9yIGFsbCBhcmNoaXRlY3R1cmVzCisrICAgICAgICBVTkFNRV9QUk9D RVNTT1I9YC91c3IvYmluL3VuYW1lIC1wYAorKwlpZiBbICRVTkFNRV9QUk9DRVNTT1IgPSBtYzg4 MTAwIF0gfHwgWyAkVU5BTUVfUFJPQ0VTU09SID0gbWM4ODExMCBdCisrCXRoZW4KKysJICAgIGlm IFsgJHtUQVJHRVRfQklOQVJZX0lOVEVSRkFDRX14ID0gbTg4a2RndXhlbGZ4IF0gfHwgXAorKwkg ICAgICAgWyAke1RBUkdFVF9CSU5BUllfSU5URVJGQUNFfXggPSB4IF0KKysJICAgIHRoZW4KKysJ CWVjaG8gbTg4ay1kZy1kZ3V4JHtVTkFNRV9SRUxFQVNFfQorKwkgICAgZWxzZQorKwkJZWNobyBt ODhrLWRnLWRndXhiY3Mke1VOQU1FX1JFTEVBU0V9CisrCSAgICBmaQorKwllbHNlCisrCSAgICBl Y2hvIGk1ODYtZGctZGd1eCR7VU5BTUVfUkVMRUFTRX0KKysJZmkKKysgCWV4aXQgOzsKKysgICAg TTg4KjpEb2xwaGluT1M6KjoqKQkjIERvbHBoaW5PUyAoU1ZSMykKKysJZWNobyBtODhrLWRvbHBo aW4tc3lzdjMKKysJZXhpdCA7OworKyAgICBNODgqOio6UjMqOiopCisrCSMgRGVsdGEgODhrIHN5 c3RlbSBydW5uaW5nIFNWUjMKKysJZWNobyBtODhrLW1vdG9yb2xhLXN5c3YzCisrCWV4aXQgOzsK KysgICAgWEQ4OCo6KjoqOiopICMgVGVrdHJvbml4IFhEODggc3lzdGVtIHJ1bm5pbmcgVVRla1Yg KFNWUjMpCisrCWVjaG8gbTg4ay10ZWt0cm9uaXgtc3lzdjMKKysJZXhpdCA7OworKyAgICBUZWs0 M1swLTldWzAtOV06VVRlazoqOiopICMgVGVrdHJvbml4IDQzMDAgc3lzdGVtIHJ1bm5pbmcgVVRl ayAoQlNEKQorKwllY2hvIG02OGstdGVrdHJvbml4LWJzZAorKwlleGl0IDs7CisrICAgICo6SVJJ WCo6KjoqKQorKwllY2hvIG1pcHMtc2dpLWlyaXhgZWNobyAke1VOQU1FX1JFTEVBU0V9fHNlZCAt ZSAncy8tL18vZydgCisrCWV4aXQgOzsKKysgICAgPz8/Pz8/Pz86QUlYPzpbMTJdLjE6MikgICAj IEFJWCAyLjIuMSBvciBBSVggMi4xLjEgaXMgUlQvUEMgQUlYLgorKwllY2hvIHJvbXAtaWJtLWFp eCAgICAgIyB1bmFtZSAtbSBnaXZlcyBhbiA4IGhleC1jb2RlIENQVSBpZAorKwlleGl0IDs7ICAg ICAgICAgICAgICAgIyBOb3RlIHRoYXQ6IGVjaG8gIidgdW5hbWUgLXNgJyIgZ2l2ZXMgJ0FJWCAn CisrICAgIGkqODY6QUlYOio6KikKKysJZWNobyBpMzg2LWlibS1haXgKKysJZXhpdCA7OworKyAg ICBpYTY0OkFJWDoqOiopCisrCWlmIFsgLXggL3Vzci9iaW4vb3NsZXZlbCBdIDsgdGhlbgorKwkJ SUJNX1JFVj1gL3Vzci9iaW4vb3NsZXZlbGAKKysJZWxzZQorKwkJSUJNX1JFVj0ke1VOQU1FX1ZF UlNJT059LiR7VU5BTUVfUkVMRUFTRX0KKysJZmkKKysJZWNobyAke1VOQU1FX01BQ0hJTkV9LWli bS1haXgke0lCTV9SRVZ9CisrCWV4aXQgOzsKKysgICAgKjpBSVg6MjozKQorKwlpZiBncmVwIGJv czMyNSAvdXNyL2luY2x1ZGUvc3RkaW8uaCA+L2Rldi9udWxsIDI+JjE7IHRoZW4KKysJCWV2YWwg JHNldF9jY19mb3JfYnVpbGQKKysJCXNlZCAncy9eCQkvLycgPDwgRU9GID4kZHVtbXkuYworKwkJ I2luY2x1ZGUgPHN5cy9zeXN0ZW1jZmcuaD4KKysKKysJCW1haW4oKQorKwkJCXsKKysJCQlpZiAo IV9fcG93ZXJfcGMoKSkKKysJCQkJZXhpdCgxKTsKKysJCQlwdXRzKCJwb3dlcnBjLWlibS1haXgz LjIuNSIpOworKwkJCWV4aXQoMCk7CisrCQkJfQorK0VPRgorKwkJaWYgJENDX0ZPUl9CVUlMRCAt byAkZHVtbXkgJGR1bW15LmMgJiYgU1lTVEVNX05BTUU9YCRkdW1teWAKKysJCXRoZW4KKysJCQll Y2hvICIkU1lTVEVNX05BTUUiCisrCQllbHNlCisrCQkJZWNobyByczYwMDAtaWJtLWFpeDMuMi41 CisrCQlmaQorKwllbGlmIGdyZXAgYm9zMzI0IC91c3IvaW5jbHVkZS9zdGRpby5oID4vZGV2L251 bGwgMj4mMTsgdGhlbgorKwkJZWNobyByczYwMDAtaWJtLWFpeDMuMi40CisrCWVsc2UKKysJCWVj aG8gcnM2MDAwLWlibS1haXgzLjIKKysJZmkKKysJZXhpdCA7OworKyAgICAqOkFJWDoqOls0NTZd KQorKwlJQk1fQ1BVX0lEPWAvdXNyL3NiaW4vbHNkZXYgLUMgLWMgcHJvY2Vzc29yIC1TIGF2YWls YWJsZSB8IHNlZCAxcSB8IGF3ayAneyBwcmludCAkMSB9J2AKKysJaWYgL3Vzci9zYmluL2xzYXR0 ciAtRWwgJHtJQk1fQ1BVX0lEfSB8IGdyZXAgJyBQT1dFUicgPi9kZXYvbnVsbCAyPiYxOyB0aGVu CisrCQlJQk1fQVJDSD1yczYwMDAKKysJZWxzZQorKwkJSUJNX0FSQ0g9cG93ZXJwYworKwlmaQor KwlpZiBbIC14IC91c3IvYmluL29zbGV2ZWwgXSA7IHRoZW4KKysJCUlCTV9SRVY9YC91c3IvYmlu L29zbGV2ZWxgCisrCWVsc2UKKysJCUlCTV9SRVY9JHtVTkFNRV9WRVJTSU9OfS4ke1VOQU1FX1JF TEVBU0V9CisrCWZpCisrCWVjaG8gJHtJQk1fQVJDSH0taWJtLWFpeCR7SUJNX1JFVn0KKysJZXhp dCA7OworKyAgICAqOkFJWDoqOiopCisrCWVjaG8gcnM2MDAwLWlibS1haXgKKysJZXhpdCA7Owor KyAgICBpYm1ydDo0LjRCU0Q6Knxyb21wLWlibTpCU0Q6KikKKysJZWNobyByb21wLWlibS1ic2Q0 LjQKKysJZXhpdCA7OworKyAgICBpYm1ydDoqQlNEOip8cm9tcC1pYm06QlNEOiopICAgICAgICAg ICAgIyBjb3ZlcnMgUlQvUEMgQlNEIGFuZAorKwllY2hvIHJvbXAtaWJtLWJzZCR7VU5BTUVfUkVM RUFTRX0gICAjIDQuMyB3aXRoIHVuYW1lIGFkZGVkIHRvCisrCWV4aXQgOzsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICMgcmVwb3J0OiByb21wLWlibSBCU0QgNC4zCisrICAgICo6Qk9TWDoq OiopCisrCWVjaG8gcnM2MDAwLWJ1bGwtYm9zeAorKwlleGl0IDs7CisrICAgIERQWC8yPzAwOkIu Ty5TLjoqOiopCisrCWVjaG8gbTY4ay1idWxsLXN5c3YzCisrCWV4aXQgOzsKKysgICAgOTAwMC9b MzRdPz86NC4zYnNkOjEuKjoqKQorKwllY2hvIG02OGstaHAtYnNkCisrCWV4aXQgOzsKKysgICAg aHAzMDA6NC40QlNEOio6KiB8IDkwMDAvWzM0XT8/OjQuM2JzZDoyLio6KikKKysJZWNobyBtNjhr LWhwLWJzZDQuNAorKwlleGl0IDs7CisrICAgIDkwMDAvWzM0Njc4XT8/OkhQLVVYOio6KikKKysJ SFBVWF9SRVY9YGVjaG8gJHtVTkFNRV9SRUxFQVNFfXxzZWQgLWUgJ3MvW14uXSouWzBCXSovLydg CisrCWNhc2UgIiR7VU5BTUVfTUFDSElORX0iIGluCisrCSAgICA5MDAwLzMxPyApICAgICAgICAg ICAgSFBfQVJDSD1tNjgwMDAgOzsKKysJICAgIDkwMDAvWzM0XT8/ICkgICAgICAgICBIUF9BUkNI PW02OGsgOzsKKysJICAgIDkwMDAvWzY3OF1bMC05XVswLTldKQorKwkJaWYgWyAteCAvdXNyL2Jp bi9nZXRjb25mIF07IHRoZW4KKysJCSAgICBzY19jcHVfdmVyc2lvbj1gL3Vzci9iaW4vZ2V0Y29u ZiBTQ19DUFVfVkVSU0lPTiAyPi9kZXYvbnVsbGAKKysgICAgICAgICAgICAgICAgICAgIHNjX2tl cm5lbF9iaXRzPWAvdXNyL2Jpbi9nZXRjb25mIFNDX0tFUk5FTF9CSVRTIDI+L2Rldi9udWxsYAor KyAgICAgICAgICAgICAgICAgICAgY2FzZSAiJHtzY19jcHVfdmVyc2lvbn0iIGluCisrICAgICAg ICAgICAgICAgICAgICAgIDUyMykgSFBfQVJDSD0iaHBwYTEuMCIgOzsgIyBDUFVfUEFfUklTQzFf MAorKyAgICAgICAgICAgICAgICAgICAgICA1MjgpIEhQX0FSQ0g9ImhwcGExLjEiIDs7ICMgQ1BV X1BBX1JJU0MxXzEKKysgICAgICAgICAgICAgICAgICAgICAgNTMyKSAgICAgICAgICAgICAgICAg ICAgICAjIENQVV9QQV9SSVNDMl8wCisrICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAiJHtz Y19rZXJuZWxfYml0c30iIGluCisrICAgICAgICAgICAgICAgICAgICAgICAgICAzMikgSFBfQVJD SD0iaHBwYTIuMG4iIDs7CisrICAgICAgICAgICAgICAgICAgICAgICAgICA2NCkgSFBfQVJDSD0i aHBwYTIuMHciIDs7CisrCQkJICAnJykgSFBfQVJDSD0iaHBwYTIuMCIgOzsgICAjIEhQLVVYIDEw LjIwCisrICAgICAgICAgICAgICAgICAgICAgICAgZXNhYyA7OworKyAgICAgICAgICAgICAgICAg ICAgZXNhYworKwkJZmkKKysJCWlmIFsgIiR7SFBfQVJDSH0iID0gIiIgXTsgdGhlbgorKwkJICAg IGV2YWwgJHNldF9jY19mb3JfYnVpbGQKKysJCSAgICBzZWQgJ3MvXiAgICAgICAgICAgICAgLy8n IDw8IEVPRiA+JGR1bW15LmMKKysKKysgICAgICAgICAgICAgICNkZWZpbmUgX0hQVVhfU09VUkNF CisrICAgICAgICAgICAgICAjaW5jbHVkZSA8c3RkbGliLmg+CisrICAgICAgICAgICAgICAjaW5j bHVkZSA8dW5pc3RkLmg+CisrCisrICAgICAgICAgICAgICBpbnQgbWFpbiAoKQorKyAgICAgICAg ICAgICAgeworKyAgICAgICAgICAgICAgI2lmIGRlZmluZWQoX1NDX0tFUk5FTF9CSVRTKQorKyAg ICAgICAgICAgICAgICAgIGxvbmcgYml0cyA9IHN5c2NvbmYoX1NDX0tFUk5FTF9CSVRTKTsKKysg ICAgICAgICAgICAgICNlbmRpZgorKyAgICAgICAgICAgICAgICAgIGxvbmcgY3B1ICA9IHN5c2Nv bmYgKF9TQ19DUFVfVkVSU0lPTik7CisrCisrICAgICAgICAgICAgICAgICAgc3dpdGNoIChjcHUp CisrICAgICAgICAgICAgICAJeworKyAgICAgICAgICAgICAgCWNhc2UgQ1BVX1BBX1JJU0MxXzA6 IHB1dHMgKCJocHBhMS4wIik7IGJyZWFrOworKyAgICAgICAgICAgICAgCWNhc2UgQ1BVX1BBX1JJ U0MxXzE6IHB1dHMgKCJocHBhMS4xIik7IGJyZWFrOworKyAgICAgICAgICAgICAgCWNhc2UgQ1BV X1BBX1JJU0MyXzA6CisrICAgICAgICAgICAgICAjaWYgZGVmaW5lZChfU0NfS0VSTkVMX0JJVFMp CisrICAgICAgICAgICAgICAJICAgIHN3aXRjaCAoYml0cykKKysgICAgICAgICAgICAgIAkJewor KyAgICAgICAgICAgICAgCQljYXNlIDY0OiBwdXRzICgiaHBwYTIuMHciKTsgYnJlYWs7CisrICAg ICAgICAgICAgICAJCWNhc2UgMzI6IHB1dHMgKCJocHBhMi4wbiIpOyBicmVhazsKKysgICAgICAg ICAgICAgIAkJZGVmYXVsdDogcHV0cyAoImhwcGEyLjAiKTsgYnJlYWs7CisrICAgICAgICAgICAg ICAJCX0gYnJlYWs7CisrICAgICAgICAgICAgICAjZWxzZSAgLyogIWRlZmluZWQoX1NDX0tFUk5F TF9CSVRTKSAqLworKyAgICAgICAgICAgICAgCSAgICBwdXRzICgiaHBwYTIuMCIpOyBicmVhazsK KysgICAgICAgICAgICAgICNlbmRpZgorKyAgICAgICAgICAgICAgCWRlZmF1bHQ6IHB1dHMgKCJo cHBhMS4wIik7IGJyZWFrOworKyAgICAgICAgICAgICAgCX0KKysgICAgICAgICAgICAgICAgICBl eGl0ICgwKTsKKysgICAgICAgICAgICAgIH0KKytFT0YKKysJCSAgICAoQ0NPUFRTPSAkQ0NfRk9S X0JVSUxEIC1vICRkdW1teSAkZHVtbXkuYyAyPi9kZXYvbnVsbCkgJiYgSFBfQVJDSD1gJGR1bW15 YAorKwkJICAgIHRlc3QgLXogIiRIUF9BUkNIIiAmJiBIUF9BUkNIPWhwcGEKKysJCWZpIDs7Cisr CWVzYWMKKysJaWYgWyAke0hQX0FSQ0h9ID0gImhwcGEyLjB3IiBdCisrCXRoZW4KKysJICAgIGV2 YWwgJHNldF9jY19mb3JfYnVpbGQKKysKKysJICAgICMgaHBwYTIuMHctaHAtaHB1eCogaGFzIGEg NjQtYml0IGtlcm5lbCBhbmQgYSBjb21waWxlciBnZW5lcmF0aW5nCisrCSAgICAjIDMyLWJpdCBj b2RlLiAgaHBwYTY0LWhwLWhwdXgqIGhhcyB0aGUgc2FtZSBrZXJuZWwgYW5kIGEgY29tcGlsZXIK KysJICAgICMgZ2VuZXJhdGluZyA2NC1iaXQgY29kZS4gIEdOVSBhbmQgSFAgdXNlIGRpZmZlcmVu dCBub21lbmNsYXR1cmU6CisrCSAgICAjCisrCSAgICAjICQgQ0NfRk9SX0JVSUxEPWNjIC4vY29u ZmlnLmd1ZXNzCisrCSAgICAjID0+IGhwcGEyLjB3LWhwLWhwdXgxMS4yMworKwkgICAgIyAkIEND X0ZPUl9CVUlMRD0iY2MgK0RBMi4wdyIgLi9jb25maWcuZ3Vlc3MKKysJICAgICMgPT4gaHBwYTY0 LWhwLWhwdXgxMS4yMworKworKwkgICAgaWYgZWNobyBfX0xQNjRfXyB8IChDQ09QVFM9ICRDQ19G T1JfQlVJTEQgLUUgLSAyPi9kZXYvbnVsbCkgfAorKwkJZ3JlcCAtcSBfX0xQNjRfXworKwkgICAg dGhlbgorKwkJSFBfQVJDSD0iaHBwYTIuMHciCisrCSAgICBlbHNlCisrCQlIUF9BUkNIPSJocHBh NjQiCisrCSAgICBmaQorKwlmaQorKwllY2hvICR7SFBfQVJDSH0taHAtaHB1eCR7SFBVWF9SRVZ9 CisrCWV4aXQgOzsKKysgICAgaWE2NDpIUC1VWDoqOiopCisrCUhQVVhfUkVWPWBlY2hvICR7VU5B TUVfUkVMRUFTRX18c2VkIC1lICdzL1teLl0qLlswQl0qLy8nYAorKwllY2hvIGlhNjQtaHAtaHB1 eCR7SFBVWF9SRVZ9CisrCWV4aXQgOzsKKysgICAgMzA1MCo6SEktVVg6KjoqKQorKwlldmFsICRz ZXRfY2NfZm9yX2J1aWxkCisrCXNlZCAncy9eCS8vJyA8PCBFT0YgPiRkdW1teS5jCisrCSNpbmNs dWRlIDx1bmlzdGQuaD4KKysJaW50CisrCW1haW4gKCkKKysJeworKwkgIGxvbmcgY3B1ID0gc3lz Y29uZiAoX1NDX0NQVV9WRVJTSU9OKTsKKysJICAvKiBUaGUgb3JkZXIgbWF0dGVycywgYmVjYXVz ZSBDUFVfSVNfSFBfTUM2OEsgZXJyb25lb3VzbHkgcmV0dXJucworKwkgICAgIHRydWUgZm9yIENQ VV9QQV9SSVNDMV8wLiAgQ1BVX0lTX1BBX1JJU0MgcmV0dXJucyBjb3JyZWN0CisrCSAgICAgcmVz dWx0cywgaG93ZXZlci4gICovCisrCSAgaWYgKENQVV9JU19QQV9SSVNDIChjcHUpKQorKwkgICAg eworKwkgICAgICBzd2l0Y2ggKGNwdSkKKysJCXsKKysJCSAgY2FzZSBDUFVfUEFfUklTQzFfMDog cHV0cyAoImhwcGExLjAtaGl0YWNoaS1oaXV4d2UyIik7IGJyZWFrOworKwkJICBjYXNlIENQVV9Q QV9SSVNDMV8xOiBwdXRzICgiaHBwYTEuMS1oaXRhY2hpLWhpdXh3ZTIiKTsgYnJlYWs7CisrCQkg IGNhc2UgQ1BVX1BBX1JJU0MyXzA6IHB1dHMgKCJocHBhMi4wLWhpdGFjaGktaGl1eHdlMiIpOyBi cmVhazsKKysJCSAgZGVmYXVsdDogcHV0cyAoImhwcGEtaGl0YWNoaS1oaXV4d2UyIik7IGJyZWFr OworKwkJfQorKwkgICAgfQorKwkgIGVsc2UgaWYgKENQVV9JU19IUF9NQzY4SyAoY3B1KSkKKysJ ICAgIHB1dHMgKCJtNjhrLWhpdGFjaGktaGl1eHdlMiIpOworKwkgIGVsc2UgcHV0cyAoInVua25v d24taGl0YWNoaS1oaXV4d2UyIik7CisrCSAgZXhpdCAoMCk7CisrCX0KKytFT0YKKysJJENDX0ZP Ul9CVUlMRCAtbyAkZHVtbXkgJGR1bW15LmMgJiYgU1lTVEVNX05BTUU9YCRkdW1teWAgJiYKKysJ CXsgZWNobyAiJFNZU1RFTV9OQU1FIjsgZXhpdDsgfQorKwllY2hvIHVua25vd24taGl0YWNoaS1o aXV4d2UyCisrCWV4aXQgOzsKKysgICAgOTAwMC83Pz86NC4zYnNkOio6KiB8IDkwMDAvOD9bNzld OjQuM2JzZDoqOiogKQorKwllY2hvIGhwcGExLjEtaHAtYnNkCisrCWV4aXQgOzsKKysgICAgOTAw MC84Pz86NC4zYnNkOio6KikKKysJZWNobyBocHBhMS4wLWhwLWJzZAorKwlleGl0IDs7CisrICAg ICo5Pz8qOk1QRS9pWDoqOiogfCAqMzAwMCo6TVBFL2lYOio6KikKKysJZWNobyBocHBhMS4wLWhw LW1wZWl4CisrCWV4aXQgOzsKKysgICAgaHA3Pz86T1NGMToqOiogfCBocDg/Wzc5XTpPU0YxOio6 KiApCisrCWVjaG8gaHBwYTEuMS1ocC1vc2YKKysJZXhpdCA7OworKyAgICBocDg/PzpPU0YxOio6 KikKKysJZWNobyBocHBhMS4wLWhwLW9zZgorKwlleGl0IDs7CisrICAgIGkqODY6T1NGMToqOiop CisrCWlmIFsgLXggL3Vzci9zYmluL3N5c3ZlcnNpb24gXSA7IHRoZW4KKysJICAgIGVjaG8gJHtV TkFNRV9NQUNISU5FfS11bmtub3duLW9zZjFtaworKwllbHNlCisrCSAgICBlY2hvICR7VU5BTUVf TUFDSElORX0tdW5rbm93bi1vc2YxCisrCWZpCisrCWV4aXQgOzsKKysgICAgcGFyaXNjKjpMaXRl cyo6KjoqKQorKwllY2hvIGhwcGExLjEtaHAtbGl0ZXMKKysJZXhpdCA7OworKyAgICBDMSo6Q29u dmV4T1M6KjoqIHwgY29udmV4OkNvbnZleE9TOkMxKjoqKQorKwllY2hvIGMxLWNvbnZleC1ic2QK KysgICAgICAgIGV4aXQgOzsKKysgICAgQzIqOkNvbnZleE9TOio6KiB8IGNvbnZleDpDb252ZXhP UzpDMio6KikKKysJaWYgZ2V0c3lzaW5mbyAtZiBzY2FsYXJfYWNjCisrCXRoZW4gZWNobyBjMzIt Y29udmV4LWJzZAorKwllbHNlIGVjaG8gYzItY29udmV4LWJzZAorKwlmaQorKyAgICAgICAgZXhp dCA7OworKyAgICBDMzQqOkNvbnZleE9TOio6KiB8IGNvbnZleDpDb252ZXhPUzpDMzQqOiopCisr CWVjaG8gYzM0LWNvbnZleC1ic2QKKysgICAgICAgIGV4aXQgOzsKKysgICAgQzM4KjpDb252ZXhP UzoqOiogfCBjb252ZXg6Q29udmV4T1M6QzM4KjoqKQorKwllY2hvIGMzOC1jb252ZXgtYnNkCisr ICAgICAgICBleGl0IDs7CisrICAgIEM0KjpDb252ZXhPUzoqOiogfCBjb252ZXg6Q29udmV4T1M6 QzQqOiopCisrCWVjaG8gYzQtY29udmV4LWJzZAorKyAgICAgICAgZXhpdCA7OworKyAgICBDUkFZ KlktTVA6KjoqOiopCisrCWVjaG8geW1wLWNyYXktdW5pY29zJHtVTkFNRV9SRUxFQVNFfSB8IHNl ZCAtZSAncy9cLlteLl0qJC8uWC8nCisrCWV4aXQgOzsKKysgICAgQ1JBWSpbQS1aXTkwOio6Kjoq KQorKwllY2hvICR7VU5BTUVfTUFDSElORX0tY3JheS11bmljb3Mke1VOQU1FX1JFTEVBU0V9IFwK KysJfCBzZWQgLWUgJ3MvQ1JBWS4qXChbQS1aXTkwXCkvXDEvJyBcCisrCSAgICAgIC1lIHkvQUJD REVGR0hJSktMTU5PUFFSU1RVVldYWVovYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXovIFwKKysJ ICAgICAgLWUgJ3MvXC5bXi5dKiQvLlgvJworKwlleGl0IDs7CisrICAgIENSQVkqVFM6KjoqOiop CisrCWVjaG8gdDkwLWNyYXktdW5pY29zJHtVTkFNRV9SRUxFQVNFfSB8IHNlZCAtZSAncy9cLlte Ll0qJC8uWC8nCisrCWV4aXQgOzsKKysgICAgQ1JBWSpUM0U6KjoqOiopCisrCWVjaG8gYWxwaGFl djUtY3JheS11bmljb3NtayR7VU5BTUVfUkVMRUFTRX0gfCBzZWQgLWUgJ3MvXC5bXi5dKiQvLlgv JworKwlleGl0IDs7CisrICAgIENSQVkqU1YxOio6KjoqKQorKwllY2hvIHN2MS1jcmF5LXVuaWNv cyR7VU5BTUVfUkVMRUFTRX0gfCBzZWQgLWUgJ3MvXC5bXi5dKiQvLlgvJworKwlleGl0IDs7Cisr ICAgICo6VU5JQ09TL21wOio6KikKKysJZWNobyBjcmF5bnYtY3JheS11bmljb3NtcCR7VU5BTUVf UkVMRUFTRX0gfCBzZWQgLWUgJ3MvXC5bXi5dKiQvLlgvJworKwlleGl0IDs7CisrICAgIEYzMFsw MV06VU5JWF9TeXN0ZW1fVjoqOiogfCBGNzAwOlVOSVhfU3lzdGVtX1Y6KjoqKQorKwlGVUpJVFNV X1BST0M9YHVuYW1lIC1tIHwgdHIgJ0FCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaJyAnYWJjZGVm Z2hpamtsbW5vcHFyc3R1dnd4eXonYAorKyAgICAgICAgRlVKSVRTVV9TWVM9YHVuYW1lIC1wIHwg dHIgJ0FCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaJyAnYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4 eXonIHwgc2VkIC1lICdzL1wvLy8nYAorKyAgICAgICAgRlVKSVRTVV9SRUw9YGVjaG8gJHtVTkFN RV9SRUxFQVNFfSB8IHNlZCAtZSAncy8gL18vJ2AKKysgICAgICAgIGVjaG8gIiR7RlVKSVRTVV9Q Uk9DfS1mdWppdHN1LSR7RlVKSVRTVV9TWVN9JHtGVUpJVFNVX1JFTH0iCisrICAgICAgICBleGl0 IDs7CisrICAgIDUwMDA6VU5JWF9TeXN0ZW1fVjo0Lio6KikKKysgICAgICAgIEZVSklUU1VfU1lT PWB1bmFtZSAtcCB8IHRyICdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWicgJ2FiY2RlZmdoaWpr bG1ub3BxcnN0dXZ3eHl6JyB8IHNlZCAtZSAncy9cLy8vJ2AKKysgICAgICAgIEZVSklUU1VfUkVM PWBlY2hvICR7VU5BTUVfUkVMRUFTRX0gfCB0ciAnQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVon ICdhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eicgfCBzZWQgLWUgJ3MvIC9fLydgCisrICAgICAg ICBlY2hvICJzcGFyYy1mdWppdHN1LSR7RlVKSVRTVV9TWVN9JHtGVUpJVFNVX1JFTH0iCisrCWV4 aXQgOzsKKysgICAgaSo4NjpCU0QvMzg2Oio6KiB8IGkqODY6QlNEL09TOio6KiB8ICo6QXNjZW5k XCBFbWJlZGRlZC9PUzoqOiopCisrCWVjaG8gJHtVTkFNRV9NQUNISU5FfS1wYy1ic2RpJHtVTkFN RV9SRUxFQVNFfQorKwlleGl0IDs7CisrICAgIHNwYXJjKjpCU0QvT1M6KjoqKQorKwllY2hvIHNw YXJjLXVua25vd24tYnNkaSR7VU5BTUVfUkVMRUFTRX0KKysJZXhpdCA7OworKyAgICAqOkJTRC9P UzoqOiopCisrCWVjaG8gJHtVTkFNRV9NQUNISU5FfS11bmtub3duLWJzZGkke1VOQU1FX1JFTEVB U0V9CisrCWV4aXQgOzsKKysgICAgKjpGcmVlQlNEOio6KikKKysJY2FzZSAke1VOQU1FX01BQ0hJ TkV9IGluCisrCSAgICBwYzk4KQorKwkJZWNobyBpMzg2LXVua25vd24tZnJlZWJzZGBlY2hvICR7 VU5BTUVfUkVMRUFTRX18c2VkIC1lICdzL1stKF0uKi8vJ2AgOzsKKysJICAgIGFtZDY0KQorKwkJ ZWNobyB4ODZfNjQtdW5rbm93bi1mcmVlYnNkYGVjaG8gJHtVTkFNRV9SRUxFQVNFfXxzZWQgLWUg J3MvWy0oXS4qLy8nYCA7OworKwkgICAgKikKKysJCWVjaG8gJHtVTkFNRV9NQUNISU5FfS11bmtu b3duLWZyZWVic2RgZWNobyAke1VOQU1FX1JFTEVBU0V9fHNlZCAtZSAncy9bLShdLiovLydgIDs7 CisrCWVzYWMKKysJZXhpdCA7OworKyAgICBpKjpDWUdXSU4qOiopCisrCWVjaG8gJHtVTkFNRV9N QUNISU5FfS1wYy1jeWd3aW4KKysJZXhpdCA7OworKyAgICAqOk1JTkdXKjoqKQorKwllY2hvICR7 VU5BTUVfTUFDSElORX0tcGMtbWluZ3czMgorKwlleGl0IDs7CisrICAgIGkqOndpbmRvd3MzMio6 KikKKysgICAgCSMgdW5hbWUgLW0gaW5jbHVkZXMgIi1wYyIgb24gdGhpcyBzeXN0ZW0uCisrICAg IAllY2hvICR7VU5BTUVfTUFDSElORX0tbWluZ3czMgorKwlleGl0IDs7CisrICAgIGkqOlBXKjoq KQorKwllY2hvICR7VU5BTUVfTUFDSElORX0tcGMtcHczMgorKwlleGl0IDs7CisrICAgICo6SW50 ZXJpeCo6KikKKysgICAgCWNhc2UgJHtVTkFNRV9NQUNISU5FfSBpbgorKwkgICAgeDg2KQorKwkJ ZWNobyBpNTg2LXBjLWludGVyaXgke1VOQU1FX1JFTEVBU0V9CisrCQlleGl0IDs7CisrCSAgICBh dXRoZW50aWNhbWQgfCBnZW51aW5laW50ZWwgfCBFTTY0VCkKKysJCWVjaG8geDg2XzY0LXVua25v d24taW50ZXJpeCR7VU5BTUVfUkVMRUFTRX0KKysJCWV4aXQgOzsKKysJICAgIElBNjQpCisrCQll Y2hvIGlhNjQtdW5rbm93bi1pbnRlcml4JHtVTkFNRV9SRUxFQVNFfQorKwkJZXhpdCA7OworKwll c2FjIDs7CisrICAgIFszNDVdODY6V2luZG93c185NToqIHwgWzM0NV04NjpXaW5kb3dzXzk4Oiog fCBbMzQ1XTg2OldpbmRvd3NfTlQ6KikKKysJZWNobyBpJHtVTkFNRV9NQUNISU5FfS1wYy1ta3MK KysJZXhpdCA7OworKyAgICA4NjY0OldpbmRvd3NfTlQ6KikKKysJZWNobyB4ODZfNjQtcGMtbWtz CisrCWV4aXQgOzsKKysgICAgaSo6V2luZG93c19OVCo6KiB8IFBlbnRpdW0qOldpbmRvd3NfTlQq OiopCisrCSMgSG93IGRvIHdlIGtub3cgaXQncyBJbnRlcml4IHJhdGhlciB0aGFuIHRoZSBnZW5l cmljIFBPU0lYIHN1YnN5c3RlbT8KKysJIyBJdCBhbHNvIGNvbmZsaWN0cyB3aXRoIHByZS0yLjAg dmVyc2lvbnMgb2YgQVQmVCBVV0lOLiBTaG91bGQgd2UKKysJIyBVTkFNRV9NQUNISU5FIGJhc2Vk IG9uIHRoZSBvdXRwdXQgb2YgdW5hbWUgaW5zdGVhZCBvZiBpMzg2PworKwllY2hvIGk1ODYtcGMt aW50ZXJpeAorKwlleGl0IDs7CisrICAgIGkqOlVXSU4qOiopCisrCWVjaG8gJHtVTkFNRV9NQUNI SU5FfS1wYy11d2luCisrCWV4aXQgOzsKKysgICAgYW1kNjQ6Q1lHV0lOKjoqOiogfCB4ODZfNjQ6 Q1lHV0lOKjoqOiopCisrCWVjaG8geDg2XzY0LXVua25vd24tY3lnd2luCisrCWV4aXQgOzsKKysg ICAgcCo6Q1lHV0lOKjoqKQorKwllY2hvIHBvd2VycGNsZS11bmtub3duLWN5Z3dpbgorKwlleGl0 IDs7CisrICAgIHByZXAqOlN1bk9TOjUuKjoqKQorKwllY2hvIHBvd2VycGNsZS11bmtub3duLXNv bGFyaXMyYGVjaG8gJHtVTkFNRV9SRUxFQVNFfXxzZWQgLWUgJ3MvW14uXSovLydgCisrCWV4aXQg OzsKKysgICAgKjpHTlU6KjoqKQorKwkjIHRoZSBHTlUgc3lzdGVtCisrCWVjaG8gYGVjaG8gJHtV TkFNRV9NQUNISU5FfXxzZWQgLWUgJ3MsWy0vXS4qJCwsJ2AtdW5rbm93bi1nbnVgZWNobyAke1VO QU1FX1JFTEVBU0V9fHNlZCAtZSAncywvLiokLCwnYAorKwlleGl0IDs7CisrICAgICo6R05VLyo6 KjoqKQorKwkjIG90aGVyIHN5c3RlbXMgd2l0aCBHTlUgbGliYyBhbmQgdXNlcmxhbmQKKysJZWNo byAke1VOQU1FX01BQ0hJTkV9LXVua25vd24tYGVjaG8gJHtVTkFNRV9TWVNURU19IHwgc2VkICdz LF5bXi9dKi8sLCcgfCB0ciAnW0EtWl0nICdbYS16XSdgYGVjaG8gJHtVTkFNRV9SRUxFQVNFfXxz ZWQgLWUgJ3MvWy0oXS4qLy8nYC1nbnUKKysJZXhpdCA7OworKyAgICBpKjg2Ok1pbml4Oio6KikK KysJZWNobyAke1VOQU1FX01BQ0hJTkV9LXBjLW1pbml4CisrCWV4aXQgOzsKKysgICAgYWxwaGE6 TGludXg6KjoqKQorKwljYXNlIGBzZWQgLW4gJy9eY3B1IG1vZGVsL3MvXi4qOiBcKC4qXCkvXDEv cCcgPCAvcHJvYy9jcHVpbmZvYCBpbgorKwkgIEVWNSkgICBVTkFNRV9NQUNISU5FPWFscGhhZXY1 IDs7CisrCSAgRVY1NikgIFVOQU1FX01BQ0hJTkU9YWxwaGFldjU2IDs7CisrCSAgUENBNTYpIFVO QU1FX01BQ0hJTkU9YWxwaGFwY2E1NiA7OworKwkgIFBDQTU3KSBVTkFNRV9NQUNISU5FPWFscGhh cGNhNTYgOzsKKysJICBFVjYpICAgVU5BTUVfTUFDSElORT1hbHBoYWV2NiA7OworKwkgIEVWNjcp ICBVTkFNRV9NQUNISU5FPWFscGhhZXY2NyA7OworKwkgIEVWNjgqKSBVTkFNRV9NQUNISU5FPWFs cGhhZXY2OCA7OworKyAgICAgICAgZXNhYworKwlvYmpkdW1wIC0tcHJpdmF0ZS1oZWFkZXJzIC9i aW4vc2ggfCBncmVwIC1xIGxkLnNvLjEKKysJaWYgdGVzdCAiJD8iID0gMCA7IHRoZW4gTElCQz0i bGliYzEiIDsgZWxzZSBMSUJDPSIiIDsgZmkKKysJZWNobyAke1VOQU1FX01BQ0hJTkV9LXVua25v d24tbGludXgtZ251JHtMSUJDfQorKwlleGl0IDs7CisrICAgIGFybSo6TGludXg6KjoqKQorKwll dmFsICRzZXRfY2NfZm9yX2J1aWxkCisrCWlmIGVjaG8gX19BUk1fRUFCSV9fIHwgJENDX0ZPUl9C VUlMRCAtRSAtIDI+L2Rldi9udWxsIFwKKysJICAgIHwgZ3JlcCAtcSBfX0FSTV9FQUJJX18KKysJ dGhlbgorKwkgICAgZWNobyAke1VOQU1FX01BQ0hJTkV9LXVua25vd24tbGludXgtZ251CisrCWVs c2UKKysJICAgIGVjaG8gJHtVTkFNRV9NQUNISU5FfS11bmtub3duLWxpbnV4LWdudWVhYmkKKysJ ZmkKKysJZXhpdCA7OworKyAgICBhdnIzMio6TGludXg6KjoqKQorKwllY2hvICR7VU5BTUVfTUFD SElORX0tdW5rbm93bi1saW51eC1nbnUKKysJZXhpdCA7OworKyAgICBjcmlzOkxpbnV4Oio6KikK KysJZWNobyBjcmlzLWF4aXMtbGludXgtZ251CisrCWV4aXQgOzsKKysgICAgY3Jpc3YzMjpMaW51 eDoqOiopCisrCWVjaG8gY3Jpc3YzMi1heGlzLWxpbnV4LWdudQorKwlleGl0IDs7CisrICAgIGZy djpMaW51eDoqOiopCisrICAgIAllY2hvIGZydi11bmtub3duLWxpbnV4LWdudQorKwlleGl0IDs7 CisrICAgIGkqODY6TGludXg6KjoqKQorKwlMSUJDPWdudQorKwlldmFsICRzZXRfY2NfZm9yX2J1 aWxkCisrCXNlZCAncy9eCS8vJyA8PCBFT0YgPiRkdW1teS5jCisrCSNpZmRlZiBfX2RpZXRsaWJj X18KKysJTElCQz1kaWV0bGliYworKwkjZW5kaWYKKytFT0YKKysJZXZhbCBgJENDX0ZPUl9CVUlM RCAtRSAkZHVtbXkuYyAyPi9kZXYvbnVsbCB8IGdyZXAgJ15MSUJDJ2AKKysJZWNobyAiJHtVTkFN RV9NQUNISU5FfS1wYy1saW51eC0ke0xJQkN9IgorKwlleGl0IDs7CisrICAgIGlhNjQ6TGludXg6 KjoqKQorKwllY2hvICR7VU5BTUVfTUFDSElORX0tdW5rbm93bi1saW51eC1nbnUKKysJZXhpdCA7 OworKyAgICBtMzJyKjpMaW51eDoqOiopCisrCWVjaG8gJHtVTkFNRV9NQUNISU5FfS11bmtub3du LWxpbnV4LWdudQorKwlleGl0IDs7CisrICAgIG02OCo6TGludXg6KjoqKQorKwllY2hvICR7VU5B TUVfTUFDSElORX0tdW5rbm93bi1saW51eC1nbnUKKysJZXhpdCA7OworKyAgICBtaXBzOkxpbnV4 Oio6KiB8IG1pcHM2NDpMaW51eDoqOiopCisrCWV2YWwgJHNldF9jY19mb3JfYnVpbGQKKysJc2Vk ICdzL14JLy8nIDw8IEVPRiA+JGR1bW15LmMKKysJI3VuZGVmIENQVQorKwkjdW5kZWYgJHtVTkFN RV9NQUNISU5FfQorKwkjdW5kZWYgJHtVTkFNRV9NQUNISU5FfWVsCisrCSNpZiBkZWZpbmVkKF9f TUlQU0VMX18pIHx8IGRlZmluZWQoX19NSVBTRUwpIHx8IGRlZmluZWQoX01JUFNFTCkgfHwgZGVm aW5lZChNSVBTRUwpCisrCUNQVT0ke1VOQU1FX01BQ0hJTkV9ZWwKKysJI2Vsc2UKKysJI2lmIGRl ZmluZWQoX19NSVBTRUJfXykgfHwgZGVmaW5lZChfX01JUFNFQikgfHwgZGVmaW5lZChfTUlQU0VC KSB8fCBkZWZpbmVkKE1JUFNFQikKKysJQ1BVPSR7VU5BTUVfTUFDSElORX0KKysJI2Vsc2UKKysJ Q1BVPQorKwkjZW5kaWYKKysJI2VuZGlmCisrRU9GCisrCWV2YWwgYCRDQ19GT1JfQlVJTEQgLUUg JGR1bW15LmMgMj4vZGV2L251bGwgfCBncmVwICdeQ1BVJ2AKKysJdGVzdCB4IiR7Q1BVfSIgIT0g eCAmJiB7IGVjaG8gIiR7Q1BVfS11bmtub3duLWxpbnV4LWdudSI7IGV4aXQ7IH0KKysJOzsKKysg ICAgb3IzMjpMaW51eDoqOiopCisrCWVjaG8gb3IzMi11bmtub3duLWxpbnV4LWdudQorKwlleGl0 IDs7CisrICAgIHBhZHJlOkxpbnV4Oio6KikKKysJZWNobyBzcGFyYy11bmtub3duLWxpbnV4LWdu dQorKwlleGl0IDs7CisrICAgIHBhcmlzYzY0OkxpbnV4Oio6KiB8IGhwcGE2NDpMaW51eDoqOiop CisrCWVjaG8gaHBwYTY0LXVua25vd24tbGludXgtZ251CisrCWV4aXQgOzsKKysgICAgcGFyaXNj OkxpbnV4Oio6KiB8IGhwcGE6TGludXg6KjoqKQorKwkjIExvb2sgZm9yIENQVSBsZXZlbAorKwlj YXNlIGBncmVwICdeY3B1W15hLXpdKjonIC9wcm9jL2NwdWluZm8gMj4vZGV2L251bGwgfCBjdXQg LWQnICcgLWYyYCBpbgorKwkgIFBBNyopIGVjaG8gaHBwYTEuMS11bmtub3duLWxpbnV4LWdudSA7 OworKwkgIFBBOCopIGVjaG8gaHBwYTIuMC11bmtub3duLWxpbnV4LWdudSA7OworKwkgICopICAg IGVjaG8gaHBwYS11bmtub3duLWxpbnV4LWdudSA7OworKwllc2FjCisrCWV4aXQgOzsKKysgICAg cHBjNjQ6TGludXg6KjoqKQorKwllY2hvIHBvd2VycGM2NC11bmtub3duLWxpbnV4LWdudQorKwll eGl0IDs7CisrICAgIHBwYzpMaW51eDoqOiopCisrCWVjaG8gcG93ZXJwYy11bmtub3duLWxpbnV4 LWdudQorKwlleGl0IDs7CisrICAgIHMzOTA6TGludXg6KjoqIHwgczM5MHg6TGludXg6KjoqKQor KwllY2hvICR7VU5BTUVfTUFDSElORX0taWJtLWxpbnV4CisrCWV4aXQgOzsKKysgICAgc2g2NCo6 TGludXg6KjoqKQorKyAgICAJZWNobyAke1VOQU1FX01BQ0hJTkV9LXVua25vd24tbGludXgtZ251 CisrCWV4aXQgOzsKKysgICAgc2gqOkxpbnV4Oio6KikKKysJZWNobyAke1VOQU1FX01BQ0hJTkV9 LXVua25vd24tbGludXgtZ251CisrCWV4aXQgOzsKKysgICAgc3BhcmM6TGludXg6KjoqIHwgc3Bh cmM2NDpMaW51eDoqOiopCisrCWVjaG8gJHtVTkFNRV9NQUNISU5FfS11bmtub3duLWxpbnV4LWdu dQorKwlleGl0IDs7CisrICAgIHZheDpMaW51eDoqOiopCisrCWVjaG8gJHtVTkFNRV9NQUNISU5F fS1kZWMtbGludXgtZ251CisrCWV4aXQgOzsKKysgICAgeDg2XzY0OkxpbnV4Oio6KikKKysJZWNo byB4ODZfNjQtdW5rbm93bi1saW51eC1nbnUKKysJZXhpdCA7OworKyAgICB4dGVuc2EqOkxpbnV4 Oio6KikKKysgICAgCWVjaG8gJHtVTkFNRV9NQUNISU5FfS11bmtub3duLWxpbnV4LWdudQorKwll eGl0IDs7CisrICAgIGkqODY6RFlOSVgvcHR4OjQqOiopCisrCSMgcHR4IDQuMCBkb2VzIHVuYW1l IC1zIGNvcnJlY3RseSwgd2l0aCBEWU5JWC9wdHggaW4gdGhlcmUuCisrCSMgZWFybGllciB2ZXJz aW9ucyBhcmUgbWVzc2VkIHVwIGFuZCBwdXQgdGhlIG5vZGVuYW1lIGluIGJvdGgKKysJIyBzeXNu YW1lIGFuZCBub2RlbmFtZS4KKysJZWNobyBpMzg2LXNlcXVlbnQtc3lzdjQKKysJZXhpdCA7Owor KyAgICBpKjg2OlVOSVhfU1Y6NC4yTVA6Mi4qKQorKyAgICAgICAgIyBVbml4d2FyZSBpcyBhbiBv ZmZzaG9vdCBvZiBTVlI0LCBidXQgaXQgaGFzIGl0cyBvd24gdmVyc2lvbgorKyAgICAgICAgIyBu dW1iZXIgc2VyaWVzIHN0YXJ0aW5nIHdpdGggMi4uLgorKyAgICAgICAgIyBJIGFtIG5vdCBwb3Np dGl2ZSB0aGF0IG90aGVyIFNWUjQgc3lzdGVtcyB3b24ndCBtYXRjaCB0aGlzLAorKwkjIEkganVz dCBoYXZlIHRvIGhvcGUuICAtLSBybXMuCisrICAgICAgICAjIFVzZSBzeXN2NC4ydXcuLi4gc28g dGhhdCBzeXN2NCogbWF0Y2hlcyBpdC4KKysJZWNobyAke1VOQU1FX01BQ0hJTkV9LXBjLXN5c3Y0 LjJ1dyR7VU5BTUVfVkVSU0lPTn0KKysJZXhpdCA7OworKyAgICBpKjg2Ok9TLzI6KjoqKQorKwkj IElmIHdlIHdlcmUgYWJsZSB0byBmaW5kIGB1bmFtZScsIHRoZW4gRU1YIFVuaXggY29tcGF0aWJp bGl0eQorKwkjIGlzIHByb2JhYmx5IGluc3RhbGxlZC4KKysJZWNobyAke1VOQU1FX01BQ0hJTkV9 LXBjLW9zMi1lbXgKKysJZXhpdCA7OworKyAgICBpKjg2OlhUUy0zMDA6KjpTVE9QKQorKwllY2hv ICR7VU5BTUVfTUFDSElORX0tdW5rbm93bi1zdG9wCisrCWV4aXQgOzsKKysgICAgaSo4NjphdGhl b3M6KjoqKQorKwllY2hvICR7VU5BTUVfTUFDSElORX0tdW5rbm93bi1hdGhlb3MKKysJZXhpdCA7 OworKyAgICBpKjg2OnN5bGxhYmxlOio6KikKKysJZWNobyAke1VOQU1FX01BQ0hJTkV9LXBjLXN5 bGxhYmxlCisrCWV4aXQgOzsKKysgICAgaSo4NjpMeW54T1M6Mi4qOiogfCBpKjg2Okx5bnhPUzoz LlswMV0qOiogfCBpKjg2Okx5bnhPUzo0LlswMl0qOiopCisrCWVjaG8gaTM4Ni11bmtub3duLWx5 bnhvcyR7VU5BTUVfUkVMRUFTRX0KKysJZXhpdCA7OworKyAgICBpKjg2OipET1M6KjoqKQorKwll Y2hvICR7VU5BTUVfTUFDSElORX0tcGMtbXNkb3NkamdwcAorKwlleGl0IDs7CisrICAgIGkqODY6 Kjo0Lio6KiB8IGkqODY6U1lTVEVNX1Y6NC4qOiopCisrCVVOQU1FX1JFTD1gZWNobyAke1VOQU1F X1JFTEVBU0V9IHwgc2VkICdzL1wvTVAkLy8nYAorKwlpZiBncmVwIE5vdmVsbCAvdXNyL2luY2x1 ZGUvbGluay5oID4vZGV2L251bGwgMj4vZGV2L251bGw7IHRoZW4KKysJCWVjaG8gJHtVTkFNRV9N QUNISU5FfS11bml2ZWwtc3lzdiR7VU5BTUVfUkVMfQorKwllbHNlCisrCQllY2hvICR7VU5BTUVf TUFDSElORX0tcGMtc3lzdiR7VU5BTUVfUkVMfQorKwlmaQorKwlleGl0IDs7CisrICAgIGkqODY6 Kjo1Ols2NzhdKikKKysgICAgCSMgVW5peFdhcmUgNy54LCBPcGVuVU5JWCBhbmQgT3BlblNlcnZl ciA2LgorKwljYXNlIGAvYmluL3VuYW1lIC1YIHwgZ3JlcCAiXk1hY2hpbmUiYCBpbgorKwkgICAg KjQ4NiopCSAgICAgVU5BTUVfTUFDSElORT1pNDg2IDs7CisrCSAgICAqUGVudGl1bSkJICAgICBV TkFNRV9NQUNISU5FPWk1ODYgOzsKKysJICAgICpQZW50KnwqQ2VsZXJvbikgVU5BTUVfTUFDSElO RT1pNjg2IDs7CisrCWVzYWMKKysJZWNobyAke1VOQU1FX01BQ0hJTkV9LXVua25vd24tc3lzdiR7 VU5BTUVfUkVMRUFTRX0ke1VOQU1FX1NZU1RFTX0ke1VOQU1FX1ZFUlNJT059CisrCWV4aXQgOzsK KysgICAgaSo4NjoqOjMuMjoqKQorKwlpZiB0ZXN0IC1mIC91c3Ivb3B0aW9ucy9jYi5uYW1lOyB0 aGVuCisrCQlVTkFNRV9SRUw9YHNlZCAtbiAncy8uKlZlcnNpb24gLy9wJyA8L3Vzci9vcHRpb25z L2NiLm5hbWVgCisrCQllY2hvICR7VU5BTUVfTUFDSElORX0tcGMtaXNjJFVOQU1FX1JFTAorKwll bGlmIC9iaW4vdW5hbWUgLVggMj4vZGV2L251bGwgPi9kZXYvbnVsbCA7IHRoZW4KKysJCVVOQU1F X1JFTD1gKC9iaW4vdW5hbWUgLVh8Z3JlcCBSZWxlYXNlfHNlZCAtZSAncy8uKj0gLy8nKWAKKysJ CSgvYmluL3VuYW1lIC1YfGdyZXAgaTgwNDg2ID4vZGV2L251bGwpICYmIFVOQU1FX01BQ0hJTkU9 aTQ4NgorKwkJKC9iaW4vdW5hbWUgLVh8Z3JlcCAnXk1hY2hpbmUuKlBlbnRpdW0nID4vZGV2L251 bGwpIFwKKysJCQkmJiBVTkFNRV9NQUNISU5FPWk1ODYKKysJCSgvYmluL3VuYW1lIC1YfGdyZXAg J15NYWNoaW5lLipQZW50ICpJSScgPi9kZXYvbnVsbCkgXAorKwkJCSYmIFVOQU1FX01BQ0hJTkU9 aTY4NgorKwkJKC9iaW4vdW5hbWUgLVh8Z3JlcCAnXk1hY2hpbmUuKlBlbnRpdW0gUHJvJyA+L2Rl di9udWxsKSBcCisrCQkJJiYgVU5BTUVfTUFDSElORT1pNjg2CisrCQllY2hvICR7VU5BTUVfTUFD SElORX0tcGMtc2NvJFVOQU1FX1JFTAorKwllbHNlCisrCQllY2hvICR7VU5BTUVfTUFDSElORX0t cGMtc3lzdjMyCisrCWZpCisrCWV4aXQgOzsKKysgICAgcGM6KjoqOiopCisrCSMgTGVmdCBoZXJl IGZvciBjb21wYXRpYmlsaXR5OgorKyAgICAgICAgIyB1bmFtZSAtbSBwcmludHMgZm9yIERKR1BQ IGFsd2F5cyAncGMnLCBidXQgaXQgcHJpbnRzIG5vdGhpbmcgYWJvdXQKKysgICAgICAgICMgdGhl IHByb2Nlc3Nvciwgc28gd2UgcGxheSBzYWZlIGJ5IGFzc3VtaW5nIGk1ODYuCisrCSMgTm90ZTog d2hhdGV2ZXIgdGhpcyBpcywgaXQgTVVTVCBiZSB0aGUgc2FtZSBhcyB3aGF0IGNvbmZpZy5zdWIK KysJIyBwcmludHMgZm9yIHRoZSAiZGpncHAiIGhvc3QsIG9yIGVsc2UgR0RCIGNvbmZpZ3VyeSB3 aWxsIGRlY2lkZSB0aGF0CisrCSMgdGhpcyBpcyBhIGNyb3NzLWJ1aWxkLgorKwllY2hvIGk1ODYt cGMtbXNkb3NkamdwcAorKyAgICAgICAgZXhpdCA7OworKyAgICBJbnRlbDpNYWNoOjMqOiopCisr CWVjaG8gaTM4Ni1wYy1tYWNoMworKwlleGl0IDs7CisrICAgIHBhcmFnb246KjoqOiopCisrCWVj aG8gaTg2MC1pbnRlbC1vc2YxCisrCWV4aXQgOzsKKysgICAgaTg2MDoqOjQuKjoqKSAjIGk4NjAt U1ZSNAorKwlpZiBncmVwIFN0YXJkZW50IC91c3IvaW5jbHVkZS9zeXMvdWFkbWluLmggPi9kZXYv bnVsbCAyPiYxIDsgdGhlbgorKwkgIGVjaG8gaTg2MC1zdGFyZGVudC1zeXN2JHtVTkFNRV9SRUxF QVNFfSAjIFN0YXJkZW50IFZpc3RyYSBpODYwLVNWUjQKKysJZWxzZSAjIEFkZCBvdGhlciBpODYw LVNWUjQgdmVuZG9ycyBiZWxvdyBhcyB0aGV5IGFyZSBkaXNjb3ZlcmVkLgorKwkgIGVjaG8gaTg2 MC11bmtub3duLXN5c3Yke1VOQU1FX1JFTEVBU0V9ICAjIFVua25vd24gaTg2MC1TVlI0CisrCWZp CisrCWV4aXQgOzsKKysgICAgbWluaSo6Q1RJWDpTWVMqNToqKQorKwkjICJtaW5pZnJhbWUiCisr CWVjaG8gbTY4MDEwLWNvbnZlcmdlbnQtc3lzdgorKwlleGl0IDs7CisrICAgIG1jNjhrOlVOSVg6 U1lTVEVNNTozLjUxbSkKKysJZWNobyBtNjhrLWNvbnZlcmdlbnQtc3lzdgorKwlleGl0IDs7Cisr ICAgIE02ODA/MDpELU5JWDo1LjM6KikKKysJZWNobyBtNjhrLWRpYWItZG5peAorKwlleGl0IDs7 CisrICAgIE02OCo6KjpSM1ZbNTY3OF0qOiopCisrCXRlc3QgLXIgL3N5c1Y2OCAmJiB7IGVjaG8g J202OGstbW90b3JvbGEtc3lzdic7IGV4aXQ7IH0gOzsKKysgICAgM1szNDVdPz86Kjo0LjA6My4w IHwgM1szNF0/P0E6Kjo0LjA6My4wIHwgM1szNF0/PywqOio6NC4wOjMuMCB8IDNbMzRdPz8vKjoq OjQuMDozLjAgfCA0NDAwOio6NC4wOjMuMCB8IDQ4NTA6Kjo0LjA6My4wIHwgU0tBNDA6Kjo0LjA6 My4wIHwgU0RTMjoqOjQuMDozLjAgfCBTSEcyOio6NC4wOjMuMCB8IFM3NTAxKjoqOjQuMDozLjAp CisrCU9TX1JFTD0nJworKwl0ZXN0IC1yIC9ldGMvLnJlbGlkIFwKKysJJiYgT1NfUkVMPS5gc2Vk IC1uICdzL1teIF0qIFteIF0qIFwoWzAtOV1bMC05XVwpLiovXDEvcCcgPCAvZXRjLy5yZWxpZGAK KysJL2Jpbi91bmFtZSAtcCAyPi9kZXYvbnVsbCB8IGdyZXAgODYgPi9kZXYvbnVsbCBcCisrCSAg JiYgeyBlY2hvIGk0ODYtbmNyLXN5c3Y0LjMke09TX1JFTH07IGV4aXQ7IH0KKysJL2Jpbi91bmFt ZSAtcCAyPi9kZXYvbnVsbCB8IC9iaW4vZ3JlcCBlbnRpdW0gPi9kZXYvbnVsbCBcCisrCSAgJiYg eyBlY2hvIGk1ODYtbmNyLXN5c3Y0LjMke09TX1JFTH07IGV4aXQ7IH0gOzsKKysgICAgM1szNF0/ PzoqOjQuMDoqIHwgM1szNF0/PywqOio6NC4wOiopCisrICAgICAgICAvYmluL3VuYW1lIC1wIDI+ L2Rldi9udWxsIHwgZ3JlcCA4NiA+L2Rldi9udWxsIFwKKysgICAgICAgICAgJiYgeyBlY2hvIGk0 ODYtbmNyLXN5c3Y0OyBleGl0OyB9IDs7CisrICAgIE5DUio6Kjo0LjI6KiB8IE1QUkFTKjoqOjQu MjoqKQorKwlPU19SRUw9Jy4zJworKwl0ZXN0IC1yIC9ldGMvLnJlbGlkIFwKKysJICAgICYmIE9T X1JFTD0uYHNlZCAtbiAncy9bXiBdKiBbXiBdKiBcKFswLTldWzAtOV1cKS4qL1wxL3AnIDwgL2V0 Yy8ucmVsaWRgCisrCS9iaW4vdW5hbWUgLXAgMj4vZGV2L251bGwgfCBncmVwIDg2ID4vZGV2L251 bGwgXAorKwkgICAgJiYgeyBlY2hvIGk0ODYtbmNyLXN5c3Y0LjMke09TX1JFTH07IGV4aXQ7IH0K KysJL2Jpbi91bmFtZSAtcCAyPi9kZXYvbnVsbCB8IC9iaW4vZ3JlcCBlbnRpdW0gPi9kZXYvbnVs bCBcCisrCSAgICAmJiB7IGVjaG8gaTU4Ni1uY3Itc3lzdjQuMyR7T1NfUkVMfTsgZXhpdDsgfQor KwkvYmluL3VuYW1lIC1wIDI+L2Rldi9udWxsIHwgL2Jpbi9ncmVwIHB0ZXJvbiA+L2Rldi9udWxs IFwKKysJICAgICYmIHsgZWNobyBpNTg2LW5jci1zeXN2NC4zJHtPU19SRUx9OyBleGl0OyB9IDs7 CisrICAgIG02OCo6THlueE9TOjIuKjoqIHwgbTY4KjpMeW54T1M6My4wKjoqKQorKwllY2hvIG02 OGstdW5rbm93bi1seW54b3Mke1VOQU1FX1JFTEVBU0V9CisrCWV4aXQgOzsKKysgICAgbWM2ODAz MDpVTklYX1N5c3RlbV9WOjQuKjoqKQorKwllY2hvIG02OGstYXRhcmktc3lzdjQKKysJZXhpdCA7 OworKyAgICBUU1VOQU1JOkx5bnhPUzoyLio6KikKKysJZWNobyBzcGFyYy11bmtub3duLWx5bnhv cyR7VU5BTUVfUkVMRUFTRX0KKysJZXhpdCA7OworKyAgICByczYwMDA6THlueE9TOjIuKjoqKQor KwllY2hvIHJzNjAwMC11bmtub3duLWx5bnhvcyR7VU5BTUVfUkVMRUFTRX0KKysJZXhpdCA7Owor KyAgICBQb3dlclBDOkx5bnhPUzoyLio6KiB8IFBvd2VyUEM6THlueE9TOjMuWzAxXSo6KiB8IFBv d2VyUEM6THlueE9TOjQuWzAyXSo6KikKKysJZWNobyBwb3dlcnBjLXVua25vd24tbHlueG9zJHtV TkFNRV9SRUxFQVNFfQorKwlleGl0IDs7CisrICAgIFNNW0JFXVM6VU5JWF9TVjoqOiopCisrCWVj aG8gbWlwcy1kZGUtc3lzdiR7VU5BTUVfUkVMRUFTRX0KKysJZXhpdCA7OworKyAgICBSTSo6UmVs aWFudFVOSVgtKjoqOiopCisrCWVjaG8gbWlwcy1zbmktc3lzdjQKKysJZXhpdCA7OworKyAgICBS TSo6U0lOSVgtKjoqOiopCisrCWVjaG8gbWlwcy1zbmktc3lzdjQKKysJZXhpdCA7OworKyAgICAq OlNJTklYLSo6KjoqKQorKwlpZiB1bmFtZSAtcCAyPi9kZXYvbnVsbCA+L2Rldi9udWxsIDsgdGhl bgorKwkJVU5BTUVfTUFDSElORT1gKHVuYW1lIC1wKSAyPi9kZXYvbnVsbGAKKysJCWVjaG8gJHtV TkFNRV9NQUNISU5FfS1zbmktc3lzdjQKKysJZWxzZQorKwkJZWNobyBuczMyay1zbmktc3lzdgor KwlmaQorKwlleGl0IDs7CisrICAgIFBFTlRJVU06Kjo0LjAqOiopICMgVW5pc3lzIGBDbGVhclBh dGggSE1QIElYIDQwMDAnIFNWUjQvTVAgZWZmb3J0CisrICAgICAgICAgICAgICAgICAgICAgICMg c2F5cyA8UmljaGFyZC5NLkJhcnRlbEBjY01haWwuQ2Vuc3VzLkdPVj4KKysgICAgICAgIGVjaG8g aTU4Ni11bmlzeXMtc3lzdjQKKysgICAgICAgIGV4aXQgOzsKKysgICAgKjpVTklYX1N5c3RlbV9W OjQqOkZUWCopCisrCSMgRnJvbSBHZXJhbGQgSGV3ZXMgPGhld2VzQG9wZW5tYXJrZXQuY29tPi4K KysJIyBIb3cgYWJvdXQgZGlmZmVyZW50aWF0aW5nIGJldHdlZW4gc3RyYXR1cyBhcmNoaXRlY3R1 cmVzPyAtZGptCisrCWVjaG8gaHBwYTEuMS1zdHJhdHVzLXN5c3Y0CisrCWV4aXQgOzsKKysgICAg KjoqOio6RlRYKikKKysJIyBGcm9tIHNlYW5mQHN3ZGMuc3RyYXR1cy5jb20uCisrCWVjaG8gaTg2 MC1zdHJhdHVzLXN5c3Y0CisrCWV4aXQgOzsKKysgICAgaSo4NjpWT1M6KjoqKQorKwkjIEZyb20g UGF1bC5HcmVlbkBzdHJhdHVzLmNvbS4KKysJZWNobyAke1VOQU1FX01BQ0hJTkV9LXN0cmF0dXMt dm9zCisrCWV4aXQgOzsKKysgICAgKjpWT1M6KjoqKQorKwkjIEZyb20gUGF1bC5HcmVlbkBzdHJh dHVzLmNvbS4KKysJZWNobyBocHBhMS4xLXN0cmF0dXMtdm9zCisrCWV4aXQgOzsKKysgICAgbWM2 OCo6QS9VWDoqOiopCisrCWVjaG8gbTY4ay1hcHBsZS1hdXgke1VOQU1FX1JFTEVBU0V9CisrCWV4 aXQgOzsKKysgICAgbmV3cyo6TkVXUy1PUzo2KjoqKQorKwllY2hvIG1pcHMtc29ueS1uZXdzb3M2 CisrCWV4aXQgOzsKKysgICAgUlszNF0wMDA6KlN5c3RlbV9WKjoqOiogfCBSNDAwMDpVTklYX1NZ U1Y6KjoqIHwgUiowMDA6VU5JWF9TVjoqOiopCisrCWlmIFsgLWQgL3Vzci9uZWMgXTsgdGhlbgor KwkgICAgICAgIGVjaG8gbWlwcy1uZWMtc3lzdiR7VU5BTUVfUkVMRUFTRX0KKysJZWxzZQorKwkg ICAgICAgIGVjaG8gbWlwcy11bmtub3duLXN5c3Yke1VOQU1FX1JFTEVBU0V9CisrCWZpCisrICAg ICAgICBleGl0IDs7CisrICAgIEJlQm94OkJlT1M6KjoqKQkjIEJlT1MgcnVubmluZyBvbiBoYXJk d2FyZSBtYWRlIGJ5IEJlLCBQUEMgb25seS4KKysJZWNobyBwb3dlcnBjLWJlLWJlb3MKKysJZXhp dCA7OworKyAgICBCZU1hYzpCZU9TOio6KikJIyBCZU9TIHJ1bm5pbmcgb24gTWFjIG9yIE1hYyBj bG9uZSwgUFBDIG9ubHkuCisrCWVjaG8gcG93ZXJwYy1hcHBsZS1iZW9zCisrCWV4aXQgOzsKKysg ICAgQmVQQzpCZU9TOio6KikJIyBCZU9TIHJ1bm5pbmcgb24gSW50ZWwgUEMgY29tcGF0aWJsZS4K KysJZWNobyBpNTg2LXBjLWJlb3MKKysJZXhpdCA7OworKyAgICBCZVBDOkhhaWt1Oio6KikJIyBI YWlrdSBydW5uaW5nIG9uIEludGVsIFBDIGNvbXBhdGlibGUuCisrCWVjaG8gaTU4Ni1wYy1oYWlr dQorKwlleGl0IDs7CisrICAgIFNYLTQ6U1VQRVItVVg6KjoqKQorKwllY2hvIHN4NC1uZWMtc3Vw ZXJ1eCR7VU5BTUVfUkVMRUFTRX0KKysJZXhpdCA7OworKyAgICBTWC01OlNVUEVSLVVYOio6KikK KysJZWNobyBzeDUtbmVjLXN1cGVydXgke1VOQU1FX1JFTEVBU0V9CisrCWV4aXQgOzsKKysgICAg U1gtNjpTVVBFUi1VWDoqOiopCisrCWVjaG8gc3g2LW5lYy1zdXBlcnV4JHtVTkFNRV9SRUxFQVNF fQorKwlleGl0IDs7CisrICAgIFNYLTc6U1VQRVItVVg6KjoqKQorKwllY2hvIHN4Ny1uZWMtc3Vw ZXJ1eCR7VU5BTUVfUkVMRUFTRX0KKysJZXhpdCA7OworKyAgICBTWC04OlNVUEVSLVVYOio6KikK KysJZWNobyBzeDgtbmVjLXN1cGVydXgke1VOQU1FX1JFTEVBU0V9CisrCWV4aXQgOzsKKysgICAg U1gtOFI6U1VQRVItVVg6KjoqKQorKwllY2hvIHN4OHItbmVjLXN1cGVydXgke1VOQU1FX1JFTEVB U0V9CisrCWV4aXQgOzsKKysgICAgUG93ZXIqOlJoYXBzb2R5Oio6KikKKysJZWNobyBwb3dlcnBj LWFwcGxlLXJoYXBzb2R5JHtVTkFNRV9SRUxFQVNFfQorKwlleGl0IDs7CisrICAgICo6UmhhcHNv ZHk6KjoqKQorKwllY2hvICR7VU5BTUVfTUFDSElORX0tYXBwbGUtcmhhcHNvZHkke1VOQU1FX1JF TEVBU0V9CisrCWV4aXQgOzsKKysgICAgKjpEYXJ3aW46KjoqKQorKwlVTkFNRV9QUk9DRVNTT1I9 YHVuYW1lIC1wYCB8fCBVTkFNRV9QUk9DRVNTT1I9dW5rbm93bgorKwljYXNlICRVTkFNRV9QUk9D RVNTT1IgaW4KKysJICAgIGkzODYpCisrCQlldmFsICRzZXRfY2NfZm9yX2J1aWxkCisrCQlpZiBb ICIkQ0NfRk9SX0JVSUxEIiAhPSAnbm9fY29tcGlsZXJfZm91bmQnIF07IHRoZW4KKysJCSAgaWYg KGVjaG8gJyNpZmRlZiBfX0xQNjRfXyc7IGVjaG8gSVNfNjRCSVRfQVJDSDsgZWNobyAnI2VuZGlm JykgfCBcCisrCQkgICAgICAoQ0NPUFRTPSAkQ0NfRk9SX0JVSUxEIC1FIC0gMj4vZGV2L251bGwp IHwgXAorKwkJICAgICAgZ3JlcCBJU182NEJJVF9BUkNIID4vZGV2L251bGwKKysJCSAgdGhlbgor KwkJICAgICAgVU5BTUVfUFJPQ0VTU09SPSJ4ODZfNjQiCisrCQkgIGZpCisrCQlmaSA7OworKwkg ICAgdW5rbm93bikgVU5BTUVfUFJPQ0VTU09SPXBvd2VycGMgOzsKKysJZXNhYworKwllY2hvICR7 VU5BTUVfUFJPQ0VTU09SfS1hcHBsZS1kYXJ3aW4ke1VOQU1FX1JFTEVBU0V9CisrCWV4aXQgOzsK KysgICAgKjpwcm9jbnRvKjoqOiogfCAqOlFOWDpbMDEyMzQ1Njc4OV0qOiopCisrCVVOQU1FX1BS T0NFU1NPUj1gdW5hbWUgLXBgCisrCWlmIHRlc3QgIiRVTkFNRV9QUk9DRVNTT1IiID0gIng4NiI7 IHRoZW4KKysJCVVOQU1FX1BST0NFU1NPUj1pMzg2CisrCQlVTkFNRV9NQUNISU5FPXBjCisrCWZp CisrCWVjaG8gJHtVTkFNRV9QUk9DRVNTT1J9LSR7VU5BTUVfTUFDSElORX0tbnRvLXFueCR7VU5B TUVfUkVMRUFTRX0KKysJZXhpdCA7OworKyAgICAqOlFOWDoqOjQqKQorKwllY2hvIGkzODYtcGMt cW54CisrCWV4aXQgOzsKKysgICAgTlNFLT86Tk9OU1RPUF9LRVJORUw6KjoqKQorKwllY2hvIG5z ZS10YW5kZW0tbnNrJHtVTkFNRV9SRUxFQVNFfQorKwlleGl0IDs7CisrICAgIE5TUi0/Ok5PTlNU T1BfS0VSTkVMOio6KikKKysJZWNobyBuc3ItdGFuZGVtLW5zayR7VU5BTUVfUkVMRUFTRX0KKysJ ZXhpdCA7OworKyAgICAqOk5vblN0b3AtVVg6KjoqKQorKwllY2hvIG1pcHMtY29tcGFxLW5vbnN0 b3B1eAorKwlleGl0IDs7CisrICAgIEJTMjAwMDpQT1NJWCo6KjoqKQorKwllY2hvIGJzMjAwMC1z aWVtZW5zLXN5c3YKKysJZXhpdCA7OworKyAgICBEUy8qOlVOSVhfU3lzdGVtX1Y6KjoqKQorKwll Y2hvICR7VU5BTUVfTUFDSElORX0tJHtVTkFNRV9TWVNURU19LSR7VU5BTUVfUkVMRUFTRX0KKysJ ZXhpdCA7OworKyAgICAqOlBsYW45Oio6KikKKysJIyAidW5hbWUgLW0iIGlzIG5vdCBjb25zaXN0 ZW50LCBzbyB1c2UgJGNwdXR5cGUgaW5zdGVhZC4gMzg2CisrCSMgaXMgY29udmVydGVkIHRvIGkz ODYgZm9yIGNvbnNpc3RlbmN5IHdpdGggb3RoZXIgeDg2CisrCSMgb3BlcmF0aW5nIHN5c3RlbXMu CisrCWlmIHRlc3QgIiRjcHV0eXBlIiA9ICIzODYiOyB0aGVuCisrCSAgICBVTkFNRV9NQUNISU5F PWkzODYKKysJZWxzZQorKwkgICAgVU5BTUVfTUFDSElORT0iJGNwdXR5cGUiCisrCWZpCisrCWVj aG8gJHtVTkFNRV9NQUNISU5FfS11bmtub3duLXBsYW45CisrCWV4aXQgOzsKKysgICAgKjpUT1BT LTEwOio6KikKKysJZWNobyBwZHAxMC11bmtub3duLXRvcHMxMAorKwlleGl0IDs7CisrICAgICo6 VEVORVg6KjoqKQorKwllY2hvIHBkcDEwLXVua25vd24tdGVuZXgKKysJZXhpdCA7OworKyAgICBL UzEwOlRPUFMtMjA6KjoqIHwgS0wxMDpUT1BTLTIwOio6KiB8IFRZUEU0OlRPUFMtMjA6KjoqKQor KwllY2hvIHBkcDEwLWRlYy10b3BzMjAKKysJZXhpdCA7OworKyAgICBYS0wtMTpUT1BTLTIwOio6 KiB8IFRZUEU1OlRPUFMtMjA6KjoqKQorKwllY2hvIHBkcDEwLXhrbC10b3BzMjAKKysJZXhpdCA7 OworKyAgICAqOlRPUFMtMjA6KjoqKQorKwllY2hvIHBkcDEwLXVua25vd24tdG9wczIwCisrCWV4 aXQgOzsKKysgICAgKjpJVFM6KjoqKQorKwllY2hvIHBkcDEwLXVua25vd24taXRzCisrCWV4aXQg OzsKKysgICAgU0VJOio6KjpTRUlVWCkKKysgICAgICAgIGVjaG8gbWlwcy1zZWktc2VpdXgke1VO QU1FX1JFTEVBU0V9CisrCWV4aXQgOzsKKysgICAgKjpEcmFnb25GbHk6KjoqKQorKwllY2hvICR7 VU5BTUVfTUFDSElORX0tdW5rbm93bi1kcmFnb25mbHlgZWNobyAke1VOQU1FX1JFTEVBU0V9fHNl ZCAtZSAncy9bLShdLiovLydgCisrCWV4aXQgOzsKKysgICAgKjoqVk1TOio6KikKKysgICAgCVVO QU1FX01BQ0hJTkU9YCh1bmFtZSAtcCkgMj4vZGV2L251bGxgCisrCWNhc2UgIiR7VU5BTUVfTUFD SElORX0iIGluCisrCSAgICBBKikgZWNobyBhbHBoYS1kZWMtdm1zIDsgZXhpdCA7OworKwkgICAg SSopIGVjaG8gaWE2NC1kZWMtdm1zIDsgZXhpdCA7OworKwkgICAgViopIGVjaG8gdmF4LWRlYy12 bXMgOyBleGl0IDs7CisrCWVzYWMgOzsKKysgICAgKjpYRU5JWDoqOlN5c1YpCisrCWVjaG8gaTM4 Ni1wYy14ZW5peAorKwlleGl0IDs7CisrICAgIGkqODY6c2t5b3M6KjoqKQorKwllY2hvICR7VU5B TUVfTUFDSElORX0tcGMtc2t5b3NgZWNobyAke1VOQU1FX1JFTEVBU0V9YCB8IHNlZCAtZSAncy8g LiokLy8nCisrCWV4aXQgOzsKKysgICAgaSo4NjpyZG9zOio6KikKKysJZWNobyAke1VOQU1FX01B Q0hJTkV9LXBjLXJkb3MKKysJZXhpdCA7OworKyAgICBpKjg2OkFST1M6KjoqKQorKwllY2hvICR7 VU5BTUVfTUFDSElORX0tcGMtYXJvcworKwlleGl0IDs7CisrZXNhYworKworKyNlY2hvICcoTm8g dW5hbWUgY29tbWFuZCBvciB1bmFtZSBvdXRwdXQgbm90IHJlY29nbml6ZWQuKScgMT4mMgorKyNl Y2hvICIke1VOQU1FX01BQ0hJTkV9OiR7VU5BTUVfU1lTVEVNfToke1VOQU1FX1JFTEVBU0V9OiR7 VU5BTUVfVkVSU0lPTn0iIDE+JjIKKysKKytldmFsICRzZXRfY2NfZm9yX2J1aWxkCisrY2F0ID4k ZHVtbXkuYyA8PEVPRgorKyNpZmRlZiBfU0VRVUVOVF8KKysjIGluY2x1ZGUgPHN5cy90eXBlcy5o PgorKyMgaW5jbHVkZSA8c3lzL3V0c25hbWUuaD4KKysjZW5kaWYKKyttYWluICgpCisreworKyNp ZiBkZWZpbmVkIChzb255KQorKyNpZiBkZWZpbmVkIChNSVBTRUIpCisrICAvKiBCRkQgd2FudHMg ImJzZCIgaW5zdGVhZCBvZiAibmV3c29zIi4gIFBlcmhhcHMgQkZEIHNob3VsZCBiZSBjaGFuZ2Vk LAorKyAgICAgSSBkb24ndCBrbm93Li4uLiAgKi8KKysgIHByaW50ZiAoIm1pcHMtc29ueS1ic2Rc biIpOyBleGl0ICgwKTsKKysjZWxzZQorKyNpbmNsdWRlIDxzeXMvcGFyYW0uaD4KKysgIHByaW50 ZiAoIm02OGstc29ueS1uZXdzb3Mlc1xuIiwKKysjaWZkZWYgTkVXU09TNAorKyAgICAgICAgICAi NCIKKysjZWxzZQorKwkgICIiCisrI2VuZGlmCisrICAgICAgICAgKTsgZXhpdCAoMCk7CisrI2Vu ZGlmCisrI2VuZGlmCisrCisrI2lmIGRlZmluZWQgKF9fYXJtKSAmJiBkZWZpbmVkIChfX2Fjb3Ju KSAmJiBkZWZpbmVkIChfX3VuaXgpCisrICBwcmludGYgKCJhcm0tYWNvcm4tcmlzY2l4XG4iKTsg ZXhpdCAoMCk7CisrI2VuZGlmCisrCisrI2lmIGRlZmluZWQgKGhwMzAwKSAmJiAhZGVmaW5lZCAo aHB1eCkKKysgIHByaW50ZiAoIm02OGstaHAtYnNkXG4iKTsgZXhpdCAoMCk7CisrI2VuZGlmCisr CisrI2lmIGRlZmluZWQgKE5lWFQpCisrI2lmICFkZWZpbmVkIChfX0FSQ0hJVEVDVFVSRV9fKQor KyNkZWZpbmUgX19BUkNISVRFQ1RVUkVfXyAibTY4ayIKKysjZW5kaWYKKysgIGludCB2ZXJzaW9u OworKyAgdmVyc2lvbj1gKGhvc3RpbmZvIHwgc2VkIC1uICdzLy4qTmVYVCBNYWNoIFwoWzAtOV0q XCkuKi9cMS9wJykgMj4vZGV2L251bGxgOworKyAgaWYgKHZlcnNpb24gPCA0KQorKyAgICBwcmlu dGYgKCIlcy1uZXh0LW5leHRzdGVwJWRcbiIsIF9fQVJDSElURUNUVVJFX18sIHZlcnNpb24pOwor KyAgZWxzZQorKyAgICBwcmludGYgKCIlcy1uZXh0LW9wZW5zdGVwJWRcbiIsIF9fQVJDSElURUNU VVJFX18sIHZlcnNpb24pOworKyAgZXhpdCAoMCk7CisrI2VuZGlmCisrCisrI2lmIGRlZmluZWQg KE1VTFRJTUFYKSB8fCBkZWZpbmVkIChuMTYpCisrI2lmIGRlZmluZWQgKFVNQVhWKQorKyAgcHJp bnRmICgibnMzMmstZW5jb3JlLXN5c3ZcbiIpOyBleGl0ICgwKTsKKysjZWxzZQorKyNpZiBkZWZp bmVkIChDTVUpCisrICBwcmludGYgKCJuczMyay1lbmNvcmUtbWFjaFxuIik7IGV4aXQgKDApOwor KyNlbHNlCisrICBwcmludGYgKCJuczMyay1lbmNvcmUtYnNkXG4iKTsgZXhpdCAoMCk7CisrI2Vu ZGlmCisrI2VuZGlmCisrI2VuZGlmCisrCisrI2lmIGRlZmluZWQgKF9fMzg2QlNEX18pCisrICBw cmludGYgKCJpMzg2LXBjLWJzZFxuIik7IGV4aXQgKDApOworKyNlbmRpZgorKworKyNpZiBkZWZp bmVkIChzZXF1ZW50KQorKyNpZiBkZWZpbmVkIChpMzg2KQorKyAgcHJpbnRmICgiaTM4Ni1zZXF1 ZW50LWR5bml4XG4iKTsgZXhpdCAoMCk7CisrI2VuZGlmCisrI2lmIGRlZmluZWQgKG5zMzIwMDAp CisrICBwcmludGYgKCJuczMyay1zZXF1ZW50LWR5bml4XG4iKTsgZXhpdCAoMCk7CisrI2VuZGlm CisrI2VuZGlmCisrCisrI2lmIGRlZmluZWQgKF9TRVFVRU5UXykKKysgICAgc3RydWN0IHV0c25h bWUgdW47CisrCisrICAgIHVuYW1lKCZ1bik7CisrCisrICAgIGlmIChzdHJuY21wKHVuLnZlcnNp b24sICJWMiIsIDIpID09IDApIHsKKysJcHJpbnRmICgiaTM4Ni1zZXF1ZW50LXB0eDJcbiIpOyBl eGl0ICgwKTsKKysgICAgfQorKyAgICBpZiAoc3RybmNtcCh1bi52ZXJzaW9uLCAiVjEiLCAyKSA9 PSAwKSB7IC8qIFhYWCBpcyBWMSBjb3JyZWN0PyAqLworKwlwcmludGYgKCJpMzg2LXNlcXVlbnQt cHR4MVxuIik7IGV4aXQgKDApOworKyAgICB9CisrICAgIHByaW50ZiAoImkzODYtc2VxdWVudC1w dHhcbiIpOyBleGl0ICgwKTsKKysKKysjZW5kaWYKKysKKysjaWYgZGVmaW5lZCAodmF4KQorKyMg aWYgIWRlZmluZWQgKHVsdHJpeCkKKysjICBpbmNsdWRlIDxzeXMvcGFyYW0uaD4KKysjICBpZiBk ZWZpbmVkIChCU0QpCisrIyAgIGlmIEJTRCA9PSA0MworKyAgICAgIHByaW50ZiAoInZheC1kZWMt YnNkNC4zXG4iKTsgZXhpdCAoMCk7CisrIyAgIGVsc2UKKysjICAgIGlmIEJTRCA9PSAxOTkwMDYK KysgICAgICBwcmludGYgKCJ2YXgtZGVjLWJzZDQuM3Jlbm9cbiIpOyBleGl0ICgwKTsKKysjICAg IGVsc2UKKysgICAgICBwcmludGYgKCJ2YXgtZGVjLWJzZFxuIik7IGV4aXQgKDApOworKyMgICAg ZW5kaWYKKysjICAgZW5kaWYKKysjICBlbHNlCisrICAgIHByaW50ZiAoInZheC1kZWMtYnNkXG4i KTsgZXhpdCAoMCk7CisrIyAgZW5kaWYKKysjIGVsc2UKKysgICAgcHJpbnRmICgidmF4LWRlYy11 bHRyaXhcbiIpOyBleGl0ICgwKTsKKysjIGVuZGlmCisrI2VuZGlmCisrCisrI2lmIGRlZmluZWQg KGFsbGlhbnQpICYmIGRlZmluZWQgKGk4NjApCisrICBwcmludGYgKCJpODYwLWFsbGlhbnQtYnNk XG4iKTsgZXhpdCAoMCk7CisrI2VuZGlmCisrCisrICBleGl0ICgxKTsKKyt9CisrRU9GCisrCisr JENDX0ZPUl9CVUlMRCAtbyAkZHVtbXkgJGR1bW15LmMgMj4vZGV2L251bGwgJiYgU1lTVEVNX05B TUU9YCRkdW1teWAgJiYKKysJeyBlY2hvICIkU1lTVEVNX05BTUUiOyBleGl0OyB9CisrCisrIyBB cG9sbG9zIHB1dCB0aGUgc3lzdGVtIHR5cGUgaW4gdGhlIGVudmlyb25tZW50LgorKworK3Rlc3Qg LWQgL3Vzci9hcG9sbG8gJiYgeyBlY2hvICR7SVNQfS1hcG9sbG8tJHtTWVNUWVBFfTsgZXhpdDsg fQorKworKyMgQ29udmV4IHZlcnNpb25zIHRoYXQgcHJlZGF0ZSB1bmFtZSBjYW4gdXNlIGdldHN5 c2luZm8oMSkKKysKKytpZiBbIC14IC91c3IvY29udmV4L2dldHN5c2luZm8gXQorK3RoZW4KKysg ICAgY2FzZSBgZ2V0c3lzaW5mbyAtZiBjcHVfdHlwZWAgaW4KKysgICAgYzEqKQorKwllY2hvIGMx LWNvbnZleC1ic2QKKysJZXhpdCA7OworKyAgICBjMiopCisrCWlmIGdldHN5c2luZm8gLWYgc2Nh bGFyX2FjYworKwl0aGVuIGVjaG8gYzMyLWNvbnZleC1ic2QKKysJZWxzZSBlY2hvIGMyLWNvbnZl eC1ic2QKKysJZmkKKysJZXhpdCA7OworKyAgICBjMzQqKQorKwllY2hvIGMzNC1jb252ZXgtYnNk CisrCWV4aXQgOzsKKysgICAgYzM4KikKKysJZWNobyBjMzgtY29udmV4LWJzZAorKwlleGl0IDs7 CisrICAgIGM0KikKKysJZWNobyBjNC1jb252ZXgtYnNkCisrCWV4aXQgOzsKKysgICAgZXNhYwor K2ZpCisrCisrY2F0ID4mMiA8PEVPRgorKyQwOiB1bmFibGUgdG8gZ3Vlc3Mgc3lzdGVtIHR5cGUK KysKKytUaGlzIHNjcmlwdCwgbGFzdCBtb2RpZmllZCAkdGltZXN0YW1wLCBoYXMgZmFpbGVkIHRv IHJlY29nbml6ZQorK3RoZSBvcGVyYXRpbmcgc3lzdGVtIHlvdSBhcmUgdXNpbmcuIEl0IGlzIGFk dmlzZWQgdGhhdCB5b3UKKytkb3dubG9hZCB0aGUgbW9zdCB1cCB0byBkYXRlIHZlcnNpb24gb2Yg dGhlIGNvbmZpZyBzY3JpcHRzIGZyb20KKysKKysgIGh0dHA6Ly9naXQuc2F2YW5uYWguZ251Lm9y Zy9naXR3ZWIvP3A9Y29uZmlnLmdpdDthPWJsb2JfcGxhaW47Zj1jb25maWcuZ3Vlc3M7aGI9SEVB RAorK2FuZAorKyAgaHR0cDovL2dpdC5zYXZhbm5haC5nbnUub3JnL2dpdHdlYi8/cD1jb25maWcu Z2l0O2E9YmxvYl9wbGFpbjtmPWNvbmZpZy5zdWI7aGI9SEVBRAorKworK0lmIHRoZSB2ZXJzaW9u IHlvdSBydW4gKCQwKSBpcyBhbHJlYWR5IHVwIHRvIGRhdGUsIHBsZWFzZQorK3NlbmQgdGhlIGZv bGxvd2luZyBkYXRhIGFuZCBhbnkgaW5mb3JtYXRpb24geW91IHRoaW5rIG1pZ2h0IGJlCisrcGVy dGluZW50IHRvIDxjb25maWctcGF0Y2hlc0BnbnUub3JnPiBpbiBvcmRlciB0byBwcm92aWRlIHRo ZSBuZWVkZWQKKytpbmZvcm1hdGlvbiB0byBoYW5kbGUgeW91ciBzeXN0ZW0uCisrCisrY29uZmln Lmd1ZXNzIHRpbWVzdGFtcCA9ICR0aW1lc3RhbXAKKysKKyt1bmFtZSAtbSA9IGAodW5hbWUgLW0p IDI+L2Rldi9udWxsIHx8IGVjaG8gdW5rbm93bmAKKyt1bmFtZSAtciA9IGAodW5hbWUgLXIpIDI+ L2Rldi9udWxsIHx8IGVjaG8gdW5rbm93bmAKKyt1bmFtZSAtcyA9IGAodW5hbWUgLXMpIDI+L2Rl di9udWxsIHx8IGVjaG8gdW5rbm93bmAKKyt1bmFtZSAtdiA9IGAodW5hbWUgLXYpIDI+L2Rldi9u dWxsIHx8IGVjaG8gdW5rbm93bmAKKysKKysvdXNyL2Jpbi91bmFtZSAtcCA9IGAoL3Vzci9iaW4v dW5hbWUgLXApIDI+L2Rldi9udWxsYAorKy9iaW4vdW5hbWUgLVggICAgID0gYCgvYmluL3VuYW1l IC1YKSAyPi9kZXYvbnVsbGAKKysKKytob3N0aW5mbyAgICAgICAgICAgICAgID0gYChob3N0aW5m bykgMj4vZGV2L251bGxgCisrL2Jpbi91bml2ZXJzZSAgICAgICAgICA9IGAoL2Jpbi91bml2ZXJz ZSkgMj4vZGV2L251bGxgCisrL3Vzci9iaW4vYXJjaCAtayAgICAgICA9IGAoL3Vzci9iaW4vYXJj aCAtaykgMj4vZGV2L251bGxgCisrL2Jpbi9hcmNoICAgICAgICAgICAgICA9IGAoL2Jpbi9hcmNo KSAyPi9kZXYvbnVsbGAKKysvdXNyL2Jpbi9vc2xldmVsICAgICAgID0gYCgvdXNyL2Jpbi9vc2xl dmVsKSAyPi9kZXYvbnVsbGAKKysvdXNyL2NvbnZleC9nZXRzeXNpbmZvID0gYCgvdXNyL2NvbnZl eC9nZXRzeXNpbmZvKSAyPi9kZXYvbnVsbGAKKysKKytVTkFNRV9NQUNISU5FID0gJHtVTkFNRV9N QUNISU5FfQorK1VOQU1FX1JFTEVBU0UgPSAke1VOQU1FX1JFTEVBU0V9CisrVU5BTUVfU1lTVEVN ICA9ICR7VU5BTUVfU1lTVEVNfQorK1VOQU1FX1ZFUlNJT04gPSAke1VOQU1FX1ZFUlNJT059Cisr RU9GCisrCisrZXhpdCAxCisrCisrIyBMb2NhbCB2YXJpYWJsZXM6CisrIyBldmFsOiAoYWRkLWhv b2sgJ3dyaXRlLWZpbGUtaG9va3MgJ3RpbWUtc3RhbXApCisrIyB0aW1lLXN0YW1wLXN0YXJ0OiAi dGltZXN0YW1wPSciCisrIyB0aW1lLXN0YW1wLWZvcm1hdDogIiU6eS0lMDJtLSUwMmQiCisrIyB0 aW1lLXN0YW1wLWVuZDogIiciCisrIyBFbmQ6CitkaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2sv Y29uZmlnL2NvbmZpZy5zdWIgc29jaS0zLjAuMF90cmVwMzAwL2NvbmZpZy9jb25maWcuc3ViCist LS0gc29jaS0zLjAuMF80LXBhY2svY29uZmlnL2NvbmZpZy5zdWIJMTk3MC0wMS0wMSAwMTowMDow MC4wMDAwMDAwMDAgKzAxMDAKKysrKyBzb2NpLTMuMC4wX3RyZXAzMDAvY29uZmlnL2NvbmZpZy5z dWIJMjAxMC0wMS0yMyAxNDo0NDo1MC4wMDAwMDAwMDAgKzAxMDAKK0BAIC0wLDAgKzEsMTcwNSBA QAorKyMhIC9iaW4vc2gKKysjIENvbmZpZ3VyYXRpb24gdmFsaWRhdGlvbiBzdWJyb3V0aW5lIHNj cmlwdC4KKysjICAgQ29weXJpZ2h0IChDKSAxOTkyLCAxOTkzLCAxOTk0LCAxOTk1LCAxOTk2LCAx OTk3LCAxOTk4LCAxOTk5LAorKyMgICAyMDAwLCAyMDAxLCAyMDAyLCAyMDAzLCAyMDA0LCAyMDA1 LCAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5CisrIyAgIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwg SW5jLgorKworK3RpbWVzdGFtcD0nMjAwOS0xMS0yMCcKKysKKysjIFRoaXMgZmlsZSBpcyAoaW4g cHJpbmNpcGxlKSBjb21tb24gdG8gQUxMIEdOVSBzb2Z0d2FyZS4KKysjIFRoZSBwcmVzZW5jZSBv ZiBhIG1hY2hpbmUgaW4gdGhpcyBmaWxlIHN1Z2dlc3RzIHRoYXQgU09NRSBHTlUgc29mdHdhcmUK KysjIGNhbiBoYW5kbGUgdGhhdCBtYWNoaW5lLiAgSXQgZG9lcyBub3QgaW1wbHkgQUxMIEdOVSBz b2Z0d2FyZSBjYW4uCisrIworKyMgVGhpcyBmaWxlIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4g cmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKysjIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0 aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisrIyB0aGUgRnJl ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBv cgorKyMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKysjCisrIyBUaGlzIHBy b2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwK KysjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdh cnJhbnR5IG9mCisrIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS IFBVUlBPU0UuICBTZWUgdGhlCisrIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9y ZSBkZXRhaWxzLgorKyMKKysjIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhl IEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisrIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsg aWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorKyMgRm91bmRhdGlvbiwgSW5jLiwg NTEgRnJhbmtsaW4gU3RyZWV0IC0gRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEKKysjIDAyMTEwLTEz MDEsIFVTQS4KKysjCisrIyBBcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHTlUgR2VuZXJh bCBQdWJsaWMgTGljZW5zZSwgaWYgeW91CisrIyBkaXN0cmlidXRlIHRoaXMgZmlsZSBhcyBwYXJ0 IG9mIGEgcHJvZ3JhbSB0aGF0IGNvbnRhaW5zIGEKKysjIGNvbmZpZ3VyYXRpb24gc2NyaXB0IGdl bmVyYXRlZCBieSBBdXRvY29uZiwgeW91IG1heSBpbmNsdWRlIGl0IHVuZGVyCisrIyB0aGUgc2Ft ZSBkaXN0cmlidXRpb24gdGVybXMgdGhhdCB5b3UgdXNlIGZvciB0aGUgcmVzdCBvZiB0aGF0IHBy b2dyYW0uCisrCisrCisrIyBQbGVhc2Ugc2VuZCBwYXRjaGVzIHRvIDxjb25maWctcGF0Y2hlc0Bn bnUub3JnPi4gIFN1Ym1pdCBhIGNvbnRleHQKKysjIGRpZmYgYW5kIGEgcHJvcGVybHkgZm9ybWF0 dGVkIEdOVSBDaGFuZ2VMb2cgZW50cnkuCisrIworKyMgQ29uZmlndXJhdGlvbiBzdWJyb3V0aW5l IHRvIHZhbGlkYXRlIGFuZCBjYW5vbmljYWxpemUgYSBjb25maWd1cmF0aW9uIHR5cGUuCisrIyBT dXBwbHkgdGhlIHNwZWNpZmllZCBjb25maWd1cmF0aW9uIHR5cGUgYXMgYW4gYXJndW1lbnQuCisr IyBJZiBpdCBpcyBpbnZhbGlkLCB3ZSBwcmludCBhbiBlcnJvciBtZXNzYWdlIG9uIHN0ZGVyciBh bmQgZXhpdCB3aXRoIGNvZGUgMS4KKysjIE90aGVyd2lzZSwgd2UgcHJpbnQgdGhlIGNhbm9uaWNh bCBjb25maWcgdHlwZSBvbiBzdGRvdXQgYW5kIHN1Y2NlZWQuCisrCisrIyBZb3UgY2FuIGdldCB0 aGUgbGF0ZXN0IHZlcnNpb24gb2YgdGhpcyBzY3JpcHQgZnJvbToKKysjIGh0dHA6Ly9naXQuc2F2 YW5uYWguZ251Lm9yZy9naXR3ZWIvP3A9Y29uZmlnLmdpdDthPWJsb2JfcGxhaW47Zj1jb25maWcu c3ViO2hiPUhFQUQKKysKKysjIFRoaXMgZmlsZSBpcyBzdXBwb3NlZCB0byBiZSB0aGUgc2FtZSBm b3IgYWxsIEdOVSBwYWNrYWdlcworKyMgYW5kIHJlY29nbml6ZSBhbGwgdGhlIENQVSB0eXBlcywg c3lzdGVtIHR5cGVzIGFuZCBhbGlhc2VzCisrIyB0aGF0IGFyZSBtZWFuaW5nZnVsIHdpdGggKmFu eSogR05VIHNvZnR3YXJlLgorKyMgRWFjaCBwYWNrYWdlIGlzIHJlc3BvbnNpYmxlIGZvciByZXBv cnRpbmcgd2hpY2ggdmFsaWQgY29uZmlndXJhdGlvbnMKKysjIGl0IGRvZXMgbm90IHN1cHBvcnQu ICBUaGUgdXNlciBzaG91bGQgYmUgYWJsZSB0byBkaXN0aW5ndWlzaAorKyMgYSBmYWlsdXJlIHRv IHN1cHBvcnQgYSB2YWxpZCBjb25maWd1cmF0aW9uIGZyb20gYSBtZWFuaW5nbGVzcworKyMgY29u ZmlndXJhdGlvbi4KKysKKysjIFRoZSBnb2FsIG9mIHRoaXMgZmlsZSBpcyB0byBtYXAgYWxsIHRo ZSB2YXJpb3VzIHZhcmlhdGlvbnMgb2YgYSBnaXZlbgorKyMgbWFjaGluZSBzcGVjaWZpY2F0aW9u IGludG8gYSBzaW5nbGUgc3BlY2lmaWNhdGlvbiBpbiB0aGUgZm9ybToKKysjCUNQVV9UWVBFLU1B TlVGQUNUVVJFUi1PUEVSQVRJTkdfU1lTVEVNCisrIyBvciBpbiBzb21lIGNhc2VzLCB0aGUgbmV3 ZXIgZm91ci1wYXJ0IGZvcm06CisrIwlDUFVfVFlQRS1NQU5VRkFDVFVSRVItS0VSTkVMLU9QRVJB VElOR19TWVNURU0KKysjIEl0IGlzIHdyb25nIHRvIGVjaG8gYW55IG90aGVyIHR5cGUgb2Ygc3Bl Y2lmaWNhdGlvbi4KKysKKyttZT1gZWNobyAiJDAiIHwgc2VkIC1lICdzLC4qLywsJ2AKKysKKyt1 c2FnZT0iXAorK1VzYWdlOiAkMCBbT1BUSU9OXSBDUFUtTUZSLU9QU1lTCisrICAgICAgICQwIFtP UFRJT05dIEFMSUFTCisrCisrQ2Fub25pY2FsaXplIGEgY29uZmlndXJhdGlvbiBuYW1lLgorKwor K09wZXJhdGlvbiBtb2RlczoKKysgIC1oLCAtLWhlbHAgICAgICAgICBwcmludCB0aGlzIGhlbHAs IHRoZW4gZXhpdAorKyAgLXQsIC0tdGltZS1zdGFtcCAgIHByaW50IGRhdGUgb2YgbGFzdCBtb2Rp ZmljYXRpb24sIHRoZW4gZXhpdAorKyAgLXYsIC0tdmVyc2lvbiAgICAgIHByaW50IHZlcnNpb24g bnVtYmVyLCB0aGVuIGV4aXQKKysKKytSZXBvcnQgYnVncyBhbmQgcGF0Y2hlcyB0byA8Y29uZmln LXBhdGNoZXNAZ251Lm9yZz4uIgorKworK3ZlcnNpb249IlwKKytHTlUgY29uZmlnLnN1YiAoJHRp bWVzdGFtcCkKKysKKytDb3B5cmlnaHQgKEMpIDE5OTIsIDE5OTMsIDE5OTQsIDE5OTUsIDE5OTYs IDE5OTcsIDE5OTgsIDE5OTksIDIwMDAsIDIwMDEsCisrMjAwMiwgMjAwMywgMjAwNCwgMjAwNSwg MjAwNiwgMjAwNywgMjAwOCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKysKKytUaGlz IGlzIGZyZWUgc29mdHdhcmU7IHNlZSB0aGUgc291cmNlIGZvciBjb3B5aW5nIGNvbmRpdGlvbnMu ICBUaGVyZSBpcyBOTworK3dhcnJhbnR5OyBub3QgZXZlbiBmb3IgTUVSQ0hBTlRBQklMSVRZIG9y IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiIKKysKKytoZWxwPSIKKytUcnkgXGAk bWUgLS1oZWxwJyBmb3IgbW9yZSBpbmZvcm1hdGlvbi4iCisrCisrIyBQYXJzZSBjb21tYW5kIGxp bmUKKyt3aGlsZSB0ZXN0ICQjIC1ndCAwIDsgZG8KKysgIGNhc2UgJDEgaW4KKysgICAgLS10aW1l LXN0YW1wIHwgLS10aW1lKiB8IC10ICkKKysgICAgICAgZWNobyAiJHRpbWVzdGFtcCIgOyBleGl0 IDs7CisrICAgIC0tdmVyc2lvbiB8IC12ICkKKysgICAgICAgZWNobyAiJHZlcnNpb24iIDsgZXhp dCA7OworKyAgICAtLWhlbHAgfCAtLWgqIHwgLWggKQorKyAgICAgICBlY2hvICIkdXNhZ2UiOyBl eGl0IDs7CisrICAgIC0tICkgICAgICMgU3RvcCBvcHRpb24gcHJvY2Vzc2luZworKyAgICAgICBz aGlmdDsgYnJlYWsgOzsKKysgICAgLSApCSMgVXNlIHN0ZGluIGFzIGlucHV0LgorKyAgICAgICBi cmVhayA7OworKyAgICAtKiApCisrICAgICAgIGVjaG8gIiRtZTogaW52YWxpZCBvcHRpb24gJDEk aGVscCIKKysgICAgICAgZXhpdCAxIDs7CisrCisrICAgICpsb2NhbCopCisrICAgICAgICMgRmly c3QgcGFzcyB0aHJvdWdoIGFueSBsb2NhbCBtYWNoaW5lIHR5cGVzLgorKyAgICAgICBlY2hvICQx CisrICAgICAgIGV4aXQgOzsKKysKKysgICAgKiApCisrICAgICAgIGJyZWFrIDs7CisrICBlc2Fj CisrZG9uZQorKworK2Nhc2UgJCMgaW4KKysgMCkgZWNobyAiJG1lOiBtaXNzaW5nIGFyZ3VtZW50 JGhlbHAiID4mMgorKyAgICBleGl0IDE7OworKyAxKSA7OworKyAqKSBlY2hvICIkbWU6IHRvbyBt YW55IGFyZ3VtZW50cyRoZWxwIiA+JjIKKysgICAgZXhpdCAxOzsKKytlc2FjCisrCisrIyBTZXBh cmF0ZSB3aGF0IHRoZSB1c2VyIGdhdmUgaW50byBDUFUtQ09NUEFOWSBhbmQgT1Mgb3IgS0VSTkVM LU9TIChpZiBhbnkpLgorKyMgSGVyZSB3ZSBtdXN0IHJlY29nbml6ZSBhbGwgdGhlIHZhbGlkIEtF Uk5FTC1PUyBjb21iaW5hdGlvbnMuCisrbWF5YmVfb3M9YGVjaG8gJDEgfCBzZWQgJ3MvXlwoLipc KS1cKFteLV0qLVteLV0qXCkkL1wyLydgCisrY2FzZSAkbWF5YmVfb3MgaW4KKysgIG50by1xbngq IHwgbGludXgtZ251KiB8IGxpbnV4LWRpZXRsaWJjIHwgbGludXgtbmV3bGliKiB8IGxpbnV4LXVj bGliYyogfCBcCisrICB1Y2xpbnV4LXVjbGliYyogfCB1Y2xpbnV4LWdudSogfCBrZnJlZWJzZCot Z251KiB8IGtuZXRic2QqLWdudSogfCBuZXRic2QqLWdudSogfCBcCisrICBrb3BlbnNvbGFyaXMq LWdudSogfCBcCisrICBzdG9ybS1jaGFvcyogfCBvczItZW14KiB8IHJ0bWstbm92YSopCisrICAg IG9zPS0kbWF5YmVfb3MKKysgICAgYmFzaWNfbWFjaGluZT1gZWNobyAkMSB8IHNlZCAncy9eXCgu KlwpLVwoW14tXSotW14tXSpcKSQvXDEvJ2AKKysgICAgOzsKKysgICopCisrICAgIGJhc2ljX21h Y2hpbmU9YGVjaG8gJDEgfCBzZWQgJ3MvLVteLV0qJC8vJ2AKKysgICAgaWYgWyAkYmFzaWNfbWFj aGluZSAhPSAkMSBdCisrICAgIHRoZW4gb3M9YGVjaG8gJDEgfCBzZWQgJ3MvLiotLy0vJ2AKKysg ICAgZWxzZSBvcz07IGZpCisrICAgIDs7CisrZXNhYworKworKyMjIyBMZXQncyByZWNvZ25pemUg Y29tbW9uIG1hY2hpbmVzIGFzIG5vdCBiZWluZyBvcGVyYXRpbmcgc3lzdGVtcyBzbworKyMjIyB0 aGF0IHRoaW5ncyBsaWtlIGNvbmZpZy5zdWIgZGVjc3RhdGlvbi0zMTAwIHdvcmsuICBXZSBhbHNv CisrIyMjIHJlY29nbml6ZSBzb21lIG1hbnVmYWN0dXJlcnMgYXMgbm90IGJlaW5nIG9wZXJhdGlu ZyBzeXN0ZW1zLCBzbyB3ZQorKyMjIyBjYW4gcHJvdmlkZSBkZWZhdWx0IG9wZXJhdGluZyBzeXN0 ZW1zIGJlbG93LgorK2Nhc2UgJG9zIGluCisrCS1zdW4qb3MqKQorKwkJIyBQcmV2ZW50IGZvbGxv d2luZyBjbGF1c2UgZnJvbSBoYW5kbGluZyB0aGlzIGludmFsaWQgaW5wdXQuCisrCQk7OworKwkt ZGVjKiB8IC1taXBzKiB8IC1zZXF1ZW50KiB8IC1lbmNvcmUqIHwgLXBjNTMyKiB8IC1zZ2kqIHwg LXNvbnkqIHwgXAorKwktYXR0KiB8IC03MzAwKiB8IC0zMzAwKiB8IC1kZWx0YSogfCAtbW90b3Jv bGEqIHwgLXN1blsyMzRdKiB8IFwKKysJLXVuaWNvbSogfCAtaWJtKiB8IC1uZXh0IHwgLWhwIHwg LWlzaSogfCAtYXBvbGxvIHwgLWFsdG9zKiB8IFwKKysJLWNvbnZlcmdlbnQqIHwgLW5jciogfCAt bmV3cyB8IC0zMiogfCAtMzYwMCogfCAtMzEwMCogfCAtaGl0YWNoaSogfFwKKysJLWNbMTIzXSog fCAtY29udmV4KiB8IC1zdW4gfCAtY3JkcyB8IC1vbXJvbiogfCAtZGcgfCAtdWx0cmEgfCAtdHRp KiB8IFwKKysJLWhhcnJpcyB8IC1kb2xwaGluIHwgLWhpZ2hsZXZlbCB8IC1nb3VsZCB8IC1jYm0g fCAtbnMgfCAtbWFzc2NvbXAgfCBcCisrCS1hcHBsZSB8IC1heGlzIHwgLWtudXRoIHwgLWNyYXkg fCAtbWljcm9ibGF6ZSkKKysJCW9zPQorKwkJYmFzaWNfbWFjaGluZT0kMQorKwkJOzsKKysgICAg ICAgIC1ibHVlZ2VuZSopCisrCSAgICAgICAgb3M9LWNuaworKwkJOzsKKysJLXNpbSB8IC1jaXNj byB8IC1va2kgfCAtd2VjIHwgLXdpbmJvbmQpCisrCQlvcz0KKysJCWJhc2ljX21hY2hpbmU9JDEK KysJCTs7CisrCS1zY291dCkKKysJCTs7CisrCS13cnMpCisrCQlvcz0tdnh3b3JrcworKwkJYmFz aWNfbWFjaGluZT0kMQorKwkJOzsKKysJLWNob3J1c29zKikKKysJCW9zPS1jaG9ydXNvcworKwkJ YmFzaWNfbWFjaGluZT0kMQorKwkJOzsKKysgCS1jaG9ydXNyZGIpCisrIAkJb3M9LWNob3J1c3Jk YgorKwkJYmFzaWNfbWFjaGluZT0kMQorKyAJCTs7CisrCS1oaXV4KikKKysJCW9zPS1oaXV4d2Uy CisrCQk7OworKwktc2NvNikKKysJCW9zPS1zY281djYKKysJCWJhc2ljX21hY2hpbmU9YGVjaG8g JDEgfCBzZWQgLWUgJ3MvODYtLiovODYtcGMvJ2AKKysJCTs7CisrCS1zY281KQorKwkJb3M9LXNj bzMuMnY1CisrCQliYXNpY19tYWNoaW5lPWBlY2hvICQxIHwgc2VkIC1lICdzLzg2LS4qLzg2LXBj LydgCisrCQk7OworKwktc2NvNCkKKysJCW9zPS1zY28zLjJ2NAorKwkJYmFzaWNfbWFjaGluZT1g ZWNobyAkMSB8IHNlZCAtZSAncy84Ni0uKi84Ni1wYy8nYAorKwkJOzsKKysJLXNjbzMuMi5bNC05 XSopCisrCQlvcz1gZWNobyAkb3MgfCBzZWQgLWUgJ3Mvc2NvMy4yLi9zY28zLjJ2LydgCisrCQli YXNpY19tYWNoaW5lPWBlY2hvICQxIHwgc2VkIC1lICdzLzg2LS4qLzg2LXBjLydgCisrCQk7Owor Kwktc2NvMy4ydls0LTldKikKKysJCSMgRG9uJ3QgZm9yZ2V0IHZlcnNpb24gaWYgaXQgaXMgMy4y djQgb3IgbmV3ZXIuCisrCQliYXNpY19tYWNoaW5lPWBlY2hvICQxIHwgc2VkIC1lICdzLzg2LS4q Lzg2LXBjLydgCisrCQk7OworKwktc2NvNXY2KikKKysJCSMgRG9uJ3QgZm9yZ2V0IHZlcnNpb24g aWYgaXQgaXMgMy4ydjQgb3IgbmV3ZXIuCisrCQliYXNpY19tYWNoaW5lPWBlY2hvICQxIHwgc2Vk IC1lICdzLzg2LS4qLzg2LXBjLydgCisrCQk7OworKwktc2NvKikKKysJCW9zPS1zY28zLjJ2Mgor KwkJYmFzaWNfbWFjaGluZT1gZWNobyAkMSB8IHNlZCAtZSAncy84Ni0uKi84Ni1wYy8nYAorKwkJ OzsKKysJLXVkayopCisrCQliYXNpY19tYWNoaW5lPWBlY2hvICQxIHwgc2VkIC1lICdzLzg2LS4q Lzg2LXBjLydgCisrCQk7OworKwktaXNjKQorKwkJb3M9LWlzYzIuMgorKwkJYmFzaWNfbWFjaGlu ZT1gZWNobyAkMSB8IHNlZCAtZSAncy84Ni0uKi84Ni1wYy8nYAorKwkJOzsKKysJLWNsaXgqKQor KwkJYmFzaWNfbWFjaGluZT1jbGlwcGVyLWludGVyZ3JhcGgKKysJCTs7CisrCS1pc2MqKQorKwkJ YmFzaWNfbWFjaGluZT1gZWNobyAkMSB8IHNlZCAtZSAncy84Ni0uKi84Ni1wYy8nYAorKwkJOzsK KysJLWx5bngqKQorKwkJb3M9LWx5bnhvcworKwkJOzsKKysJLXB0eCopCisrCQliYXNpY19tYWNo aW5lPWBlY2hvICQxIHwgc2VkIC1lICdzLzg2LS4qLzg2LXNlcXVlbnQvJ2AKKysJCTs7CisrCS13 aW5kb3dzbnQqKQorKwkJb3M9YGVjaG8gJG9zIHwgc2VkIC1lICdzL3dpbmRvd3NudC93aW5udC8n YAorKwkJOzsKKysJLXBzb3MqKQorKwkJb3M9LXBzb3MKKysJCTs7CisrCS1taW50IHwgLW1pbnRb MC05XSopCisrCQliYXNpY19tYWNoaW5lPW02OGstYXRhcmkKKysJCW9zPS1taW50CisrCQk7Owor K2VzYWMKKysKKysjIERlY29kZSBhbGlhc2VzIGZvciBjZXJ0YWluIENQVS1DT01QQU5ZIGNvbWJp bmF0aW9ucy4KKytjYXNlICRiYXNpY19tYWNoaW5lIGluCisrCSMgUmVjb2duaXplIHRoZSBiYXNp YyBDUFUgdHlwZXMgd2l0aG91dCBjb21wYW55IG5hbWUuCisrCSMgU29tZSBhcmUgb21pdHRlZCBo ZXJlIGJlY2F1c2UgdGhleSBoYXZlIHNwZWNpYWwgbWVhbmluZ3MgYmVsb3cuCisrCTE3NTBhIHwg NTgwIFwKKysJfCBhMjlrIFwKKysJfCBhbHBoYSB8IGFscGhhZXZbNC04XSB8IGFscGhhZXY1NiB8 IGFscGhhZXY2Wzc4XSB8IGFscGhhcGNhNVs2N10gXAorKwl8IGFscGhhNjQgfCBhbHBoYTY0ZXZb NC04XSB8IGFscGhhNjRldjU2IHwgYWxwaGE2NGV2Nls3OF0gfCBhbHBoYTY0cGNhNVs2N10gXAor Kwl8IGFtMzNfMi4wIFwKKysJfCBhcmMgfCBhcm0gfCBhcm1bYmxdZSB8IGFybWVbbGJdIHwgYXJt dlsyMzQ1XSB8IGFybXZbMzQ1XVtsYl0gfCBhdnIgfCBhdnIzMiBcCisrCXwgYmZpbiBcCisrCXwg YzR4IHwgY2xpcHBlciBcCisrCXwgZDEwdiB8IGQzMHYgfCBkbHggfCBkc3AxNnh4IFwKKysJfCBm aWRvIHwgZnIzMCB8IGZydiBcCisrCXwgaDgzMDAgfCBoODUwMCB8IGhwcGEgfCBocHBhMS5bMDFd IHwgaHBwYTIuMCB8IGhwcGEyLjBbbnddIHwgaHBwYTY0IFwKKysJfCBpMzcwIHwgaTg2MCB8IGk5 NjAgfCBpYTY0IFwKKysJfCBpcDJrIHwgaXEyMDAwIFwKKysJfCBsbTMyIFwKKysJfCBtMzJjIHwg bTMyciB8IG0zMnJsZSB8IG02ODAwMCB8IG02OGsgfCBtODhrIFwKKysJfCBtYXhxIHwgbWIgfCBt aWNyb2JsYXplIHwgbWNvcmUgfCBtZXAgfCBtZXRhZyBcCisrCXwgbWlwcyB8IG1pcHNiZSB8IG1p cHNlYiB8IG1pcHNlbCB8IG1pcHNsZSBcCisrCXwgbWlwczE2IFwKKysJfCBtaXBzNjQgfCBtaXBz NjRlbCBcCisrCXwgbWlwczY0b2N0ZW9uIHwgbWlwczY0b2N0ZW9uZWwgXAorKwl8IG1pcHM2NG9y aW9uIHwgbWlwczY0b3Jpb25lbCBcCisrCXwgbWlwczY0cjU5MDAgfCBtaXBzNjRyNTkwMGVsIFwK KysJfCBtaXBzNjR2ciB8IG1pcHM2NHZyZWwgXAorKwl8IG1pcHM2NHZyNDEwMCB8IG1pcHM2NHZy NDEwMGVsIFwKKysJfCBtaXBzNjR2cjQzMDAgfCBtaXBzNjR2cjQzMDBlbCBcCisrCXwgbWlwczY0 dnI1MDAwIHwgbWlwczY0dnI1MDAwZWwgXAorKwl8IG1pcHM2NHZyNTkwMCB8IG1pcHM2NHZyNTkw MGVsIFwKKysJfCBtaXBzaXNhMzIgfCBtaXBzaXNhMzJlbCBcCisrCXwgbWlwc2lzYTMycjIgfCBt aXBzaXNhMzJyMmVsIFwKKysJfCBtaXBzaXNhNjQgfCBtaXBzaXNhNjRlbCBcCisrCXwgbWlwc2lz YTY0cjIgfCBtaXBzaXNhNjRyMmVsIFwKKysJfCBtaXBzaXNhNjRzYjEgfCBtaXBzaXNhNjRzYjFl bCBcCisrCXwgbWlwc2lzYTY0c3I3MWsgfCBtaXBzaXNhNjRzcjcxa2VsIFwKKysJfCBtaXBzdHgz OSB8IG1pcHN0eDM5ZWwgXAorKwl8IG1uMTAyMDAgfCBtbjEwMzAwIFwKKysJfCBtb3hpZSBcCisr CXwgbXQgXAorKwl8IG1zcDQzMCBcCisrCXwgbmlvcyB8IG5pb3MyIFwKKysJfCBuczE2ayB8IG5z MzJrIFwKKysJfCBvcjMyIFwKKysJfCBwZHAxMCB8IHBkcDExIHwgcGogfCBwamwgXAorKwl8IHBv d2VycGMgfCBwb3dlcnBjNjQgfCBwb3dlcnBjNjRsZSB8IHBvd2VycGNsZSB8IHBwY2JlIFwKKysJ fCBweXJhbWlkIFwKKysJfCByeCBcCisrCXwgc2NvcmUgXAorKwl8IHNoIHwgc2hbMTIzNF0gfCBz aFsyNF1hIHwgc2hbMjRdYWViIHwgc2hbMjNdZSB8IHNoWzM0XWViIHwgc2hlYiB8IHNoYmUgfCBz aGxlIHwgc2hbMTIzNF1sZSB8IHNoM2VsZSBcCisrCXwgc2g2NCB8IHNoNjRsZSBcCisrCXwgc3Bh cmMgfCBzcGFyYzY0IHwgc3BhcmM2NGIgfCBzcGFyYzY0diB8IHNwYXJjODZ4IHwgc3BhcmNsZXQg fCBzcGFyY2xpdGUgXAorKwl8IHNwYXJjdjggfCBzcGFyY3Y5IHwgc3BhcmN2OWIgfCBzcGFyY3Y5 diBcCisrCXwgc3B1IHwgc3Ryb25nYXJtIFwKKysJfCB0YWhvZSB8IHRodW1iIHwgdGljNHggfCB0 aWM4MCB8IHRyb24gXAorKwl8IHViaWNvbTMyIFwKKysJfCB2ODUwIHwgdjg1MGUgXAorKwl8IHdl MzJrIFwKKysJfCB4ODYgfCB4YzE2eCB8IHhzY2FsZSB8IHhzY2FsZWVbYmxdIHwgeHN0b3JteTE2 IHwgeHRlbnNhIFwKKysJfCB6OGsgfCB6ODApCisrCQliYXNpY19tYWNoaW5lPSRiYXNpY19tYWNo aW5lLXVua25vd24KKysJCTs7CisrCW02ODExIHwgbTY4aGMxMSB8IG02ODEyIHwgbTY4aGMxMiB8 IHBpY29jaGlwKQorKwkJIyBNb3Rvcm9sYSA2OEhDMTEvMTIuCisrCQliYXNpY19tYWNoaW5lPSRi YXNpY19tYWNoaW5lLXVua25vd24KKysJCW9zPS1ub25lCisrCQk7OworKwltODgxMTAgfCBtNjgw WzEyMzQ2XTAgfCBtNjgzPzIgfCBtNjgzNjAgfCBtNTIwMCB8IHY3MCB8IHc2NSB8IHo4aykKKysJ CTs7CisrCW1zMSkKKysJCWJhc2ljX21hY2hpbmU9bXQtdW5rbm93bgorKwkJOzsKKysKKysJIyBX ZSB1c2UgYHBjJyByYXRoZXIgdGhhbiBgdW5rbm93bicKKysJIyBiZWNhdXNlICgxKSB0aGF0J3Mg d2hhdCB0aGV5IG5vcm1hbGx5IGFyZSwgYW5kCisrCSMgKDIpIHRoZSB3b3JkICJ1bmtub3duIiB0 ZW5kcyB0byBjb25mdXNlIGJlZ2lubmluZyB1c2Vycy4KKysJaSo4NiB8IHg4Nl82NCkKKysJICBi YXNpY19tYWNoaW5lPSRiYXNpY19tYWNoaW5lLXBjCisrCSAgOzsKKysJIyBPYmplY3QgaWYgbW9y ZSB0aGFuIG9uZSBjb21wYW55IG5hbWUgd29yZC4KKysJKi0qLSopCisrCQllY2hvIEludmFsaWQg Y29uZmlndXJhdGlvbiBcYCQxXCc6IG1hY2hpbmUgXGAkYmFzaWNfbWFjaGluZVwnIG5vdCByZWNv Z25pemVkIDE+JjIKKysJCWV4aXQgMQorKwkJOzsKKysJIyBSZWNvZ25pemUgdGhlIGJhc2ljIENQ VSB0eXBlcyB3aXRoIGNvbXBhbnkgbmFtZS4KKysJNTgwLSogXAorKwl8IGEyOWstKiBcCisrCXwg YWxwaGEtKiB8IGFscGhhZXZbNC04XS0qIHwgYWxwaGFldjU2LSogfCBhbHBoYWV2Nls3OF0tKiBc CisrCXwgYWxwaGE2NC0qIHwgYWxwaGE2NGV2WzQtOF0tKiB8IGFscGhhNjRldjU2LSogfCBhbHBo YTY0ZXY2Wzc4XS0qIFwKKysJfCBhbHBoYXBjYTVbNjddLSogfCBhbHBoYTY0cGNhNVs2N10tKiB8 IGFyYy0qIFwKKysJfCBhcm0tKiAgfCBhcm1iZS0qIHwgYXJtbGUtKiB8IGFybWViLSogfCBhcm12 Ki0qIFwKKysJfCBhdnItKiB8IGF2cjMyLSogXAorKwl8IGJmaW4tKiB8IGJzMjAwMC0qIFwKKysJ fCBjWzEyM10qIHwgYzMwLSogfCBbY2p0XTkwLSogfCBjNHgtKiB8IGM1NHgtKiB8IGM1NXgtKiB8 IGM2eC0qIFwKKysJfCBjbGlwcGVyLSogfCBjcmF5bnYtKiB8IGN5ZHJhLSogXAorKwl8IGQxMHYt KiB8IGQzMHYtKiB8IGRseC0qIFwKKysJfCBlbHhzaS0qIFwKKysJfCBmMzBbMDFdLSogfCBmNzAw LSogfCBmaWRvLSogfCBmcjMwLSogfCBmcnYtKiB8IGZ4ODAtKiBcCisrCXwgaDgzMDAtKiB8IGg4 NTAwLSogXAorKwl8IGhwcGEtKiB8IGhwcGExLlswMV0tKiB8IGhwcGEyLjAtKiB8IGhwcGEyLjBb bnddLSogfCBocHBhNjQtKiBcCisrCXwgaSo4Ni0qIHwgaTg2MC0qIHwgaTk2MC0qIHwgaWE2NC0q IFwKKysJfCBpcDJrLSogfCBpcTIwMDAtKiBcCisrCXwgbG0zMi0qIFwKKysJfCBtMzJjLSogfCBt MzJyLSogfCBtMzJybGUtKiBcCisrCXwgbTY4MDAwLSogfCBtNjgwWzAxMjM0Nl0wLSogfCBtNjgz NjAtKiB8IG02ODM/Mi0qIHwgbTY4ay0qIFwKKysJfCBtODgxMTAtKiB8IG04OGstKiB8IG1heHEt KiB8IG1jb3JlLSogfCBtZXRhZy0qIHwgbWljcm9ibGF6ZS0qIFwKKysJfCBtaXBzLSogfCBtaXBz YmUtKiB8IG1pcHNlYi0qIHwgbWlwc2VsLSogfCBtaXBzbGUtKiBcCisrCXwgbWlwczE2LSogXAor Kwl8IG1pcHM2NC0qIHwgbWlwczY0ZWwtKiBcCisrCXwgbWlwczY0b2N0ZW9uLSogfCBtaXBzNjRv Y3Rlb25lbC0qIFwKKysJfCBtaXBzNjRvcmlvbi0qIHwgbWlwczY0b3Jpb25lbC0qIFwKKysJfCBt aXBzNjRyNTkwMC0qIHwgbWlwczY0cjU5MDBlbC0qIFwKKysJfCBtaXBzNjR2ci0qIHwgbWlwczY0 dnJlbC0qIFwKKysJfCBtaXBzNjR2cjQxMDAtKiB8IG1pcHM2NHZyNDEwMGVsLSogXAorKwl8IG1p cHM2NHZyNDMwMC0qIHwgbWlwczY0dnI0MzAwZWwtKiBcCisrCXwgbWlwczY0dnI1MDAwLSogfCBt aXBzNjR2cjUwMDBlbC0qIFwKKysJfCBtaXBzNjR2cjU5MDAtKiB8IG1pcHM2NHZyNTkwMGVsLSog XAorKwl8IG1pcHNpc2EzMi0qIHwgbWlwc2lzYTMyZWwtKiBcCisrCXwgbWlwc2lzYTMycjItKiB8 IG1pcHNpc2EzMnIyZWwtKiBcCisrCXwgbWlwc2lzYTY0LSogfCBtaXBzaXNhNjRlbC0qIFwKKysJ fCBtaXBzaXNhNjRyMi0qIHwgbWlwc2lzYTY0cjJlbC0qIFwKKysJfCBtaXBzaXNhNjRzYjEtKiB8 IG1pcHNpc2E2NHNiMWVsLSogXAorKwl8IG1pcHNpc2E2NHNyNzFrLSogfCBtaXBzaXNhNjRzcjcx a2VsLSogXAorKwl8IG1pcHN0eDM5LSogfCBtaXBzdHgzOWVsLSogXAorKwl8IG1taXgtKiBcCisr CXwgbXQtKiBcCisrCXwgbXNwNDMwLSogXAorKwl8IG5pb3MtKiB8IG5pb3MyLSogXAorKwl8IG5v bmUtKiB8IG5wMS0qIHwgbnMxNmstKiB8IG5zMzJrLSogXAorKwl8IG9yaW9uLSogXAorKwl8IHBk cDEwLSogfCBwZHAxMS0qIHwgcGotKiB8IHBqbC0qIHwgcG4tKiB8IHBvd2VyLSogXAorKwl8IHBv d2VycGMtKiB8IHBvd2VycGM2NC0qIHwgcG93ZXJwYzY0bGUtKiB8IHBvd2VycGNsZS0qIHwgcHBj YmUtKiBcCisrCXwgcHlyYW1pZC0qIFwKKysJfCByb21wLSogfCByczYwMDAtKiB8IHJ4LSogXAor Kwl8IHNoLSogfCBzaFsxMjM0XS0qIHwgc2hbMjRdYS0qIHwgc2hbMjRdYWViLSogfCBzaFsyM11l LSogfCBzaFszNF1lYi0qIHwgc2hlYi0qIHwgc2hiZS0qIFwKKysJfCBzaGxlLSogfCBzaFsxMjM0 XWxlLSogfCBzaDNlbGUtKiB8IHNoNjQtKiB8IHNoNjRsZS0qIFwKKysJfCBzcGFyYy0qIHwgc3Bh cmM2NC0qIHwgc3BhcmM2NGItKiB8IHNwYXJjNjR2LSogfCBzcGFyYzg2eC0qIHwgc3BhcmNsZXQt KiBcCisrCXwgc3BhcmNsaXRlLSogXAorKwl8IHNwYXJjdjgtKiB8IHNwYXJjdjktKiB8IHNwYXJj djliLSogfCBzcGFyY3Y5di0qIHwgc3Ryb25nYXJtLSogfCBzdjEtKiB8IHN4Py0qIFwKKysJfCB0 YWhvZS0qIHwgdGh1bWItKiBcCisrCXwgdGljMzAtKiB8IHRpYzR4LSogfCB0aWM1NHgtKiB8IHRp YzU1eC0qIHwgdGljNngtKiB8IHRpYzgwLSogfCB0aWxlLSogXAorKwl8IHRyb24tKiBcCisrCXwg dWJpY29tMzItKiBcCisrCXwgdjg1MC0qIHwgdjg1MGUtKiB8IHZheC0qIFwKKysJfCB3ZTMyay0q IFwKKysJfCB4ODYtKiB8IHg4Nl82NC0qIHwgeGMxNngtKiB8IHhwczEwMC0qIHwgeHNjYWxlLSog fCB4c2NhbGVlW2JsXS0qIFwKKysJfCB4c3Rvcm15MTYtKiB8IHh0ZW5zYSotKiBcCisrCXwgeW1w LSogXAorKwl8IHo4ay0qIHwgejgwLSopCisrCQk7OworKwkjIFJlY29nbml6ZSB0aGUgYmFzaWMg Q1BVIHR5cGVzIHdpdGhvdXQgY29tcGFueSBuYW1lLCB3aXRoIGdsb2IgbWF0Y2guCisrCXh0ZW5z YSopCisrCQliYXNpY19tYWNoaW5lPSRiYXNpY19tYWNoaW5lLXVua25vd24KKysJCTs7CisrCSMg UmVjb2duaXplIHRoZSB2YXJpb3VzIG1hY2hpbmUgbmFtZXMgYW5kIGFsaWFzZXMgd2hpY2ggc3Rh bmQKKysJIyBmb3IgYSBDUFUgdHlwZSBhbmQgYSBjb21wYW55IGFuZCBzb21ldGltZXMgZXZlbiBh biBPUy4KKysJMzg2YnNkKQorKwkJYmFzaWNfbWFjaGluZT1pMzg2LXVua25vd24KKysJCW9zPS1i c2QKKysJCTs7CisrCTNiMSB8IDczMDAgfCA3MzAwLWF0dCB8IGF0dC03MzAwIHwgcGM3MzAwIHwg c2FmYXJpIHwgdW5peHBjKQorKwkJYmFzaWNfbWFjaGluZT1tNjgwMDAtYXR0CisrCQk7OworKwkz YiopCisrCQliYXNpY19tYWNoaW5lPXdlMzJrLWF0dAorKwkJOzsKKysJYTI5a2hpZikKKysJCWJh c2ljX21hY2hpbmU9YTI5ay1hbWQKKysJCW9zPS11ZGkKKysJCTs7CisrICAgIAlhYmFjdXMpCisr CQliYXNpY19tYWNoaW5lPWFiYWN1cy11bmtub3duCisrCQk7OworKwlhZG9iZTY4aykKKysJCWJh c2ljX21hY2hpbmU9bTY4MDEwLWFkb2JlCisrCQlvcz0tc2NvdXQKKysJCTs7CisrCWFsbGlhbnQg fCBmeDgwKQorKwkJYmFzaWNfbWFjaGluZT1meDgwLWFsbGlhbnQKKysJCTs7CisrCWFsdG9zIHwg YWx0b3MzMDY4KQorKwkJYmFzaWNfbWFjaGluZT1tNjhrLWFsdG9zCisrCQk7OworKwlhbTI5aykK KysJCWJhc2ljX21hY2hpbmU9YTI5ay1ub25lCisrCQlvcz0tYnNkCisrCQk7OworKwlhbWQ2NCkK KysJCWJhc2ljX21hY2hpbmU9eDg2XzY0LXBjCisrCQk7OworKwlhbWQ2NC0qKQorKwkJYmFzaWNf bWFjaGluZT14ODZfNjQtYGVjaG8gJGJhc2ljX21hY2hpbmUgfCBzZWQgJ3MvXlteLV0qLS8vJ2AK KysJCTs7CisrCWFtZGFobCkKKysJCWJhc2ljX21hY2hpbmU9NTgwLWFtZGFobAorKwkJb3M9LXN5 c3YKKysJCTs7CisrCWFtaWdhIHwgYW1pZ2EtKikKKysJCWJhc2ljX21hY2hpbmU9bTY4ay11bmtu b3duCisrCQk7OworKwlhbWlnYW9zIHwgYW1pZ2Fkb3MpCisrCQliYXNpY19tYWNoaW5lPW02OGst dW5rbm93bgorKwkJb3M9LWFtaWdhb3MKKysJCTs7CisrCWFtaWdhdW5peCB8IGFtaXgpCisrCQli YXNpY19tYWNoaW5lPW02OGstdW5rbm93bgorKwkJb3M9LXN5c3Y0CisrCQk7OworKwlhcG9sbG82 OCkKKysJCWJhc2ljX21hY2hpbmU9bTY4ay1hcG9sbG8KKysJCW9zPS1zeXN2CisrCQk7OworKwlh cG9sbG82OGJzZCkKKysJCWJhc2ljX21hY2hpbmU9bTY4ay1hcG9sbG8KKysJCW9zPS1ic2QKKysJ CTs7CisrCWFyb3MpCisrCQliYXNpY19tYWNoaW5lPWkzODYtcGMKKysJCW9zPS1hcm9zCisrCQk7 OworKwlhdXgpCisrCQliYXNpY19tYWNoaW5lPW02OGstYXBwbGUKKysJCW9zPS1hdXgKKysJCTs7 CisrCWJhbGFuY2UpCisrCQliYXNpY19tYWNoaW5lPW5zMzJrLXNlcXVlbnQKKysJCW9zPS1keW5p eAorKwkJOzsKKysJYmxhY2tmaW4pCisrCQliYXNpY19tYWNoaW5lPWJmaW4tdW5rbm93bgorKwkJ b3M9LWxpbnV4CisrCQk7OworKwlibGFja2Zpbi0qKQorKwkJYmFzaWNfbWFjaGluZT1iZmluLWBl Y2hvICRiYXNpY19tYWNoaW5lIHwgc2VkICdzL15bXi1dKi0vLydgCisrCQlvcz0tbGludXgKKysJ CTs7CisrCWJsdWVnZW5lKikKKysJCWJhc2ljX21hY2hpbmU9cG93ZXJwYy1pYm0KKysJCW9zPS1j bmsKKysJCTs7CisrCWM5MCkKKysJCWJhc2ljX21hY2hpbmU9YzkwLWNyYXkKKysJCW9zPS11bmlj b3MKKysJCTs7CisrICAgICAgICBjZWdjYykKKysJCWJhc2ljX21hY2hpbmU9YXJtLXVua25vd24K KysJCW9zPS1jZWdjYworKwkJOzsKKysJY29udmV4LWMxKQorKwkJYmFzaWNfbWFjaGluZT1jMS1j b252ZXgKKysJCW9zPS1ic2QKKysJCTs7CisrCWNvbnZleC1jMikKKysJCWJhc2ljX21hY2hpbmU9 YzItY29udmV4CisrCQlvcz0tYnNkCisrCQk7OworKwljb252ZXgtYzMyKQorKwkJYmFzaWNfbWFj aGluZT1jMzItY29udmV4CisrCQlvcz0tYnNkCisrCQk7OworKwljb252ZXgtYzM0KQorKwkJYmFz aWNfbWFjaGluZT1jMzQtY29udmV4CisrCQlvcz0tYnNkCisrCQk7OworKwljb252ZXgtYzM4KQor KwkJYmFzaWNfbWFjaGluZT1jMzgtY29udmV4CisrCQlvcz0tYnNkCisrCQk7OworKwljcmF5IHwg ajkwKQorKwkJYmFzaWNfbWFjaGluZT1qOTAtY3JheQorKwkJb3M9LXVuaWNvcworKwkJOzsKKysJ Y3JheW52KQorKwkJYmFzaWNfbWFjaGluZT1jcmF5bnYtY3JheQorKwkJb3M9LXVuaWNvc21wCisr CQk7OworKwljcjE2KQorKwkJYmFzaWNfbWFjaGluZT1jcjE2LXVua25vd24KKysJCW9zPS1lbGYK KysJCTs7CisrCWNyZHMgfCB1bm9zKQorKwkJYmFzaWNfbWFjaGluZT1tNjhrLWNyZHMKKysJCTs7 CisrCWNyaXN2MzIgfCBjcmlzdjMyLSogfCBldHJheGZzKikKKysJCWJhc2ljX21hY2hpbmU9Y3Jp c3YzMi1heGlzCisrCQk7OworKwljcmlzIHwgY3Jpcy0qIHwgZXRyYXgqKQorKwkJYmFzaWNfbWFj aGluZT1jcmlzLWF4aXMKKysJCTs7CisrCWNyeCkKKysJCWJhc2ljX21hY2hpbmU9Y3J4LXVua25v d24KKysJCW9zPS1lbGYKKysJCTs7CisrCWRhMzAgfCBkYTMwLSopCisrCQliYXNpY19tYWNoaW5l PW02OGstZGEzMAorKwkJOzsKKysJZGVjc3RhdGlvbiB8IGRlY3N0YXRpb24tMzEwMCB8IHBtYXgg fCBwbWF4LSogfCBwbWluIHwgZGVjMzEwMCB8IGRlY3N0YXRuKQorKwkJYmFzaWNfbWFjaGluZT1t aXBzLWRlYworKwkJOzsKKysJZGVjc3lzdGVtMTAqIHwgZGVjMTAqKQorKwkJYmFzaWNfbWFjaGlu ZT1wZHAxMC1kZWMKKysJCW9zPS10b3BzMTAKKysJCTs7CisrCWRlY3N5c3RlbTIwKiB8IGRlYzIw KikKKysJCWJhc2ljX21hY2hpbmU9cGRwMTAtZGVjCisrCQlvcz0tdG9wczIwCisrCQk7OworKwlk ZWx0YSB8IDMzMDAgfCBtb3Rvcm9sYS0zMzAwIHwgbW90b3JvbGEtZGVsdGEgXAorKwkgICAgICB8 IDMzMDAtbW90b3JvbGEgfCBkZWx0YS1tb3Rvcm9sYSkKKysJCWJhc2ljX21hY2hpbmU9bTY4ay1t b3Rvcm9sYQorKwkJOzsKKysJZGVsdGE4OCkKKysJCWJhc2ljX21hY2hpbmU9bTg4ay1tb3Rvcm9s YQorKwkJb3M9LXN5c3YzCisrCQk7OworKwlkaWNvcykKKysJCWJhc2ljX21hY2hpbmU9aTY4Ni1w YworKwkJb3M9LWRpY29zCisrCQk7OworKwlkamdwcCkKKysJCWJhc2ljX21hY2hpbmU9aTU4Ni1w YworKwkJb3M9LW1zZG9zZGpncHAKKysJCTs7CisrCWRweDIwIHwgZHB4MjAtKikKKysJCWJhc2lj X21hY2hpbmU9cnM2MDAwLWJ1bGwKKysJCW9zPS1ib3N4CisrCQk7OworKwlkcHgyKiB8IGRweDIq LWJ1bGwpCisrCQliYXNpY19tYWNoaW5lPW02OGstYnVsbAorKwkJb3M9LXN5c3YzCisrCQk7Owor KwllYm1vbjI5aykKKysJCWJhc2ljX21hY2hpbmU9YTI5ay1hbWQKKysJCW9zPS1lYm1vbgorKwkJ OzsKKysJZWx4c2kpCisrCQliYXNpY19tYWNoaW5lPWVseHNpLWVseHNpCisrCQlvcz0tYnNkCisr CQk7OworKwllbmNvcmUgfCB1bWF4IHwgbW1heCkKKysJCWJhc2ljX21hY2hpbmU9bnMzMmstZW5j b3JlCisrCQk7OworKwllczE4MDAgfCBPU0U2OGsgfCBvc2U2OGsgfCBvc2UgfCBPU0UpCisrCQli YXNpY19tYWNoaW5lPW02OGstZXJpY3Nzb24KKysJCW9zPS1vc2UKKysJCTs7CisrCWZ4MjgwMCkK KysJCWJhc2ljX21hY2hpbmU9aTg2MC1hbGxpYW50CisrCQk7OworKwlnZW5peCkKKysJCWJhc2lj X21hY2hpbmU9bnMzMmstbnMKKysJCTs7CisrCWdtaWNybykKKysJCWJhc2ljX21hY2hpbmU9dHJv bi1nbWljcm8KKysJCW9zPS1zeXN2CisrCQk7OworKwlnbzMyKQorKwkJYmFzaWNfbWFjaGluZT1p Mzg2LXBjCisrCQlvcz0tZ28zMgorKwkJOzsKKysJaDMwNTByKiB8IGhpdXgqKQorKwkJYmFzaWNf bWFjaGluZT1ocHBhMS4xLWhpdGFjaGkKKysJCW9zPS1oaXV4d2UyCisrCQk7OworKwloODMwMGht cykKKysJCWJhc2ljX21hY2hpbmU9aDgzMDAtaGl0YWNoaQorKwkJb3M9LWhtcworKwkJOzsKKysJ aDgzMDB4cmF5KQorKwkJYmFzaWNfbWFjaGluZT1oODMwMC1oaXRhY2hpCisrCQlvcz0teHJheQor KwkJOzsKKysJaDg1MDBobXMpCisrCQliYXNpY19tYWNoaW5lPWg4NTAwLWhpdGFjaGkKKysJCW9z PS1obXMKKysJCTs7CisrCWhhcnJpcykKKysJCWJhc2ljX21hY2hpbmU9bTg4ay1oYXJyaXMKKysJ CW9zPS1zeXN2MworKwkJOzsKKysJaHAzMDAtKikKKysJCWJhc2ljX21hY2hpbmU9bTY4ay1ocAor KwkJOzsKKysJaHAzMDBic2QpCisrCQliYXNpY19tYWNoaW5lPW02OGstaHAKKysJCW9zPS1ic2QK KysJCTs7CisrCWhwMzAwaHB1eCkKKysJCWJhc2ljX21hY2hpbmU9bTY4ay1ocAorKwkJb3M9LWhw dXgKKysJCTs7CisrCWhwM2s5WzAtOV1bMC05XSB8IGhwOVswLTldWzAtOV0pCisrCQliYXNpY19t YWNoaW5lPWhwcGExLjAtaHAKKysJCTs7CisrCWhwOWsyWzAtOV1bMC05XSB8IGhwOWszMVswLTld KQorKwkJYmFzaWNfbWFjaGluZT1tNjgwMDAtaHAKKysJCTs7CisrCWhwOWszWzItOV1bMC05XSkK KysJCWJhc2ljX21hY2hpbmU9bTY4ay1ocAorKwkJOzsKKysJaHA5azZbMC05XVswLTldIHwgaHA2 WzAtOV1bMC05XSkKKysJCWJhc2ljX21hY2hpbmU9aHBwYTEuMC1ocAorKwkJOzsKKysJaHA5azdb MC03OV1bMC05XSB8IGhwN1swLTc5XVswLTldKQorKwkJYmFzaWNfbWFjaGluZT1ocHBhMS4xLWhw CisrCQk7OworKwlocDlrNzhbMC05XSB8IGhwNzhbMC05XSkKKysJCSMgRklYTUU6IHJlYWxseSBo cHBhMi4wLWhwCisrCQliYXNpY19tYWNoaW5lPWhwcGExLjEtaHAKKysJCTs7CisrCWhwOWs4WzY3 XTEgfCBocDhbNjddMSB8IGhwOWs4MFsyNF0gfCBocDgwWzI0XSB8IGhwOWs4Wzc4XTkgfCBocDhb NzhdOSB8IGhwOWs4OTMgfCBocDg5MykKKysJCSMgRklYTUU6IHJlYWxseSBocHBhMi4wLWhwCisr CQliYXNpY19tYWNoaW5lPWhwcGExLjEtaHAKKysJCTs7CisrCWhwOWs4WzAtOV1bMTM2NzldIHwg aHA4WzAtOV1bMTM2NzldKQorKwkJYmFzaWNfbWFjaGluZT1ocHBhMS4xLWhwCisrCQk7OworKwlo cDlrOFswLTldWzAtOV0gfCBocDhbMC05XVswLTldKQorKwkJYmFzaWNfbWFjaGluZT1ocHBhMS4w LWhwCisrCQk7OworKwlocHBhLW5leHQpCisrCQlvcz0tbmV4dHN0ZXAzCisrCQk7OworKwlocHBh b3NmKQorKwkJYmFzaWNfbWFjaGluZT1ocHBhMS4xLWhwCisrCQlvcz0tb3NmCisrCQk7OworKwlo cHBybykKKysJCWJhc2ljX21hY2hpbmU9aHBwYTEuMS1ocAorKwkJb3M9LXByb2VsZgorKwkJOzsK KysJaTM3MC1pYm0qIHwgaWJtKikKKysJCWJhc2ljX21hY2hpbmU9aTM3MC1pYm0KKysJCTs7Cisr IyBJJ20gbm90IHN1cmUgd2hhdCAiU3lzdjMyIiBtZWFucy4gIFNob3VsZCB0aGlzIGJlIHN5c3Yz LjI/CisrCWkqODZ2MzIpCisrCQliYXNpY19tYWNoaW5lPWBlY2hvICQxIHwgc2VkIC1lICdzLzg2 LiovODYtcGMvJ2AKKysJCW9zPS1zeXN2MzIKKysJCTs7CisrCWkqODZ2NCopCisrCQliYXNpY19t YWNoaW5lPWBlY2hvICQxIHwgc2VkIC1lICdzLzg2LiovODYtcGMvJ2AKKysJCW9zPS1zeXN2NAor KwkJOzsKKysJaSo4NnYpCisrCQliYXNpY19tYWNoaW5lPWBlY2hvICQxIHwgc2VkIC1lICdzLzg2 LiovODYtcGMvJ2AKKysJCW9zPS1zeXN2CisrCQk7OworKwlpKjg2c29sMikKKysJCWJhc2ljX21h Y2hpbmU9YGVjaG8gJDEgfCBzZWQgLWUgJ3MvODYuKi84Ni1wYy8nYAorKwkJb3M9LXNvbGFyaXMy CisrCQk7OworKwlpMzg2bWFjaCkKKysJCWJhc2ljX21hY2hpbmU9aTM4Ni1tYWNoCisrCQlvcz0t bWFjaAorKwkJOzsKKysJaTM4Ni12c3RhIHwgdnN0YSkKKysJCWJhc2ljX21hY2hpbmU9aTM4Ni11 bmtub3duCisrCQlvcz0tdnN0YQorKwkJOzsKKysJaXJpcyB8IGlyaXM0ZCkKKysJCWJhc2ljX21h Y2hpbmU9bWlwcy1zZ2kKKysJCWNhc2UgJG9zIGluCisrCQkgICAgLWlyaXgqKQorKwkJCTs7Cisr CQkgICAgKikKKysJCQlvcz0taXJpeDQKKysJCQk7OworKwkJZXNhYworKwkJOzsKKysJaXNpNjgg fCBpc2kpCisrCQliYXNpY19tYWNoaW5lPW02OGstaXNpCisrCQlvcz0tc3lzdgorKwkJOzsKKysJ bTY4a25vbW11KQorKwkJYmFzaWNfbWFjaGluZT1tNjhrLXVua25vd24KKysJCW9zPS1saW51eAor KwkJOzsKKysJbTY4a25vbW11LSopCisrCQliYXNpY19tYWNoaW5lPW02OGstYGVjaG8gJGJhc2lj X21hY2hpbmUgfCBzZWQgJ3MvXlteLV0qLS8vJ2AKKysJCW9zPS1saW51eAorKwkJOzsKKysJbTg4 ay1vbXJvbiopCisrCQliYXNpY19tYWNoaW5lPW04OGstb21yb24KKysJCTs7CisrCW1hZ251bSB8 IG0zMjMwKQorKwkJYmFzaWNfbWFjaGluZT1taXBzLW1pcHMKKysJCW9zPS1zeXN2CisrCQk7Owor KwltZXJsaW4pCisrCQliYXNpY19tYWNoaW5lPW5zMzJrLXV0ZWsKKysJCW9zPS1zeXN2CisrCQk7 OworKyAgICAgICAgbWljcm9ibGF6ZSkKKysJCWJhc2ljX21hY2hpbmU9bWljcm9ibGF6ZS14aWxp bngKKysJCTs7CisrCW1pbmd3MzIpCisrCQliYXNpY19tYWNoaW5lPWkzODYtcGMKKysJCW9zPS1t aW5ndzMyCisrCQk7OworKwltaW5ndzMyY2UpCisrCQliYXNpY19tYWNoaW5lPWFybS11bmtub3du CisrCQlvcz0tbWluZ3czMmNlCisrCQk7OworKwltaW5pZnJhbWUpCisrCQliYXNpY19tYWNoaW5l PW02ODAwMC1jb252ZXJnZW50CisrCQk7OworKwkqbWludCB8IC1taW50WzAtOV0qIHwgKk1pTlQg fCAqTWlOVFswLTldKikKKysJCWJhc2ljX21hY2hpbmU9bTY4ay1hdGFyaQorKwkJb3M9LW1pbnQK KysJCTs7CisrCW1pcHMzKi0qKQorKwkJYmFzaWNfbWFjaGluZT1gZWNobyAkYmFzaWNfbWFjaGlu ZSB8IHNlZCAtZSAncy9taXBzMy9taXBzNjQvJ2AKKysJCTs7CisrCW1pcHMzKikKKysJCWJhc2lj X21hY2hpbmU9YGVjaG8gJGJhc2ljX21hY2hpbmUgfCBzZWQgLWUgJ3MvbWlwczMvbWlwczY0Lydg LXVua25vd24KKysJCTs7CisrCW1vbml0b3IpCisrCQliYXNpY19tYWNoaW5lPW02OGstcm9tNjhr CisrCQlvcz0tY29mZgorKwkJOzsKKysJbW9ycGhvcykKKysJCWJhc2ljX21hY2hpbmU9cG93ZXJw Yy11bmtub3duCisrCQlvcz0tbW9ycGhvcworKwkJOzsKKysJbXNkb3MpCisrCQliYXNpY19tYWNo aW5lPWkzODYtcGMKKysJCW9zPS1tc2RvcworKwkJOzsKKysJbXMxLSopCisrCQliYXNpY19tYWNo aW5lPWBlY2hvICRiYXNpY19tYWNoaW5lIHwgc2VkIC1lICdzL21zMS0vbXQtLydgCisrCQk7Owor KwltdnMpCisrCQliYXNpY19tYWNoaW5lPWkzNzAtaWJtCisrCQlvcz0tbXZzCisrCQk7OworKwlu Y3IzMDAwKQorKwkJYmFzaWNfbWFjaGluZT1pNDg2LW5jcgorKwkJb3M9LXN5c3Y0CisrCQk7Owor KwluZXRic2QzODYpCisrCQliYXNpY19tYWNoaW5lPWkzODYtdW5rbm93bgorKwkJb3M9LW5ldGJz ZAorKwkJOzsKKysJbmV0d2luZGVyKQorKwkJYmFzaWNfbWFjaGluZT1hcm12NGwtcmViZWwKKysJ CW9zPS1saW51eAorKwkJOzsKKysJbmV3cyB8IG5ld3M3MDAgfCBuZXdzODAwIHwgbmV3czkwMCkK KysJCWJhc2ljX21hY2hpbmU9bTY4ay1zb255CisrCQlvcz0tbmV3c29zCisrCQk7OworKwluZXdz MTAwMCkKKysJCWJhc2ljX21hY2hpbmU9bTY4MDMwLXNvbnkKKysJCW9zPS1uZXdzb3MKKysJCTs7 CisrCW5ld3MtMzYwMCB8IHJpc2MtbmV3cykKKysJCWJhc2ljX21hY2hpbmU9bWlwcy1zb255Cisr CQlvcz0tbmV3c29zCisrCQk7OworKwluZWN2NzApCisrCQliYXNpY19tYWNoaW5lPXY3MC1uZWMK KysJCW9zPS1zeXN2CisrCQk7OworKwluZXh0IHwgbSotbmV4dCApCisrCQliYXNpY19tYWNoaW5l PW02OGstbmV4dAorKwkJY2FzZSAkb3MgaW4KKysJCSAgICAtbmV4dHN0ZXAqICkKKysJCQk7Owor KwkJICAgIC1uczIqKQorKwkJICAgICAgb3M9LW5leHRzdGVwMgorKwkJCTs7CisrCQkgICAgKikK KysJCSAgICAgIG9zPS1uZXh0c3RlcDMKKysJCQk7OworKwkJZXNhYworKwkJOzsKKysJbmgzMDAw KQorKwkJYmFzaWNfbWFjaGluZT1tNjhrLWhhcnJpcworKwkJb3M9LWN4dXgKKysJCTs7CisrCW5o WzQ1XTAwMCkKKysJCWJhc2ljX21hY2hpbmU9bTg4ay1oYXJyaXMKKysJCW9zPS1jeHV4CisrCQk7 OworKwluaW5keTk2MCkKKysJCWJhc2ljX21hY2hpbmU9aTk2MC1pbnRlbAorKwkJb3M9LW5pbmR5 CisrCQk7OworKwltb245NjApCisrCQliYXNpY19tYWNoaW5lPWk5NjAtaW50ZWwKKysJCW9zPS1t b245NjAKKysJCTs7CisrCW5vbnN0b3B1eCkKKysJCWJhc2ljX21hY2hpbmU9bWlwcy1jb21wYXEK KysJCW9zPS1ub25zdG9wdXgKKysJCTs7CisrCW5wMSkKKysJCWJhc2ljX21hY2hpbmU9bnAxLWdv dWxkCisrCQk7OworKwluc3ItdGFuZGVtKQorKwkJYmFzaWNfbWFjaGluZT1uc3ItdGFuZGVtCisr CQk7OworKwlvcDUwbi0qIHwgb3A2MGMtKikKKysJCWJhc2ljX21hY2hpbmU9aHBwYTEuMS1va2kK KysJCW9zPS1wcm9lbGYKKysJCTs7CisrCW9wZW5yaXNjIHwgb3BlbnJpc2MtKikKKysJCWJhc2lj X21hY2hpbmU9b3IzMi11bmtub3duCisrCQk7OworKwlvczQwMCkKKysJCWJhc2ljX21hY2hpbmU9 cG93ZXJwYy1pYm0KKysJCW9zPS1vczQwMAorKwkJOzsKKysJT1NFNjgwMDAgfCBvc2U2ODAwMCkK KysJCWJhc2ljX21hY2hpbmU9bTY4MDAwLWVyaWNzc29uCisrCQlvcz0tb3NlCisrCQk7OworKwlv czY4aykKKysJCWJhc2ljX21hY2hpbmU9bTY4ay1ub25lCisrCQlvcz0tb3M2OGsKKysJCTs7Cisr CXBhLWhpdGFjaGkpCisrCQliYXNpY19tYWNoaW5lPWhwcGExLjEtaGl0YWNoaQorKwkJb3M9LWhp dXh3ZTIKKysJCTs7CisrCXBhcmFnb24pCisrCQliYXNpY19tYWNoaW5lPWk4NjAtaW50ZWwKKysJ CW9zPS1vc2YKKysJCTs7CisrCXBhcmlzYykKKysJCWJhc2ljX21hY2hpbmU9aHBwYS11bmtub3du CisrCQlvcz0tbGludXgKKysJCTs7CisrCXBhcmlzYy0qKQorKwkJYmFzaWNfbWFjaGluZT1ocHBh LWBlY2hvICRiYXNpY19tYWNoaW5lIHwgc2VkICdzL15bXi1dKi0vLydgCisrCQlvcz0tbGludXgK KysJCTs7CisrCXBiZCkKKysJCWJhc2ljX21hY2hpbmU9c3BhcmMtdHRpCisrCQk7OworKwlwYmIp CisrCQliYXNpY19tYWNoaW5lPW02OGstdHRpCisrCQk7OworKwlwYzUzMiB8IHBjNTMyLSopCisr CQliYXNpY19tYWNoaW5lPW5zMzJrLXBjNTMyCisrCQk7OworKwlwYzk4KQorKwkJYmFzaWNfbWFj aGluZT1pMzg2LXBjCisrCQk7OworKwlwYzk4LSopCisrCQliYXNpY19tYWNoaW5lPWkzODYtYGVj aG8gJGJhc2ljX21hY2hpbmUgfCBzZWQgJ3MvXlteLV0qLS8vJ2AKKysJCTs7CisrCXBlbnRpdW0g fCBwNSB8IGs1IHwgazYgfCBuZXhnZW4gfCB2aWFjMykKKysJCWJhc2ljX21hY2hpbmU9aTU4Ni1w YworKwkJOzsKKysJcGVudGl1bXBybyB8IHA2IHwgNng4NiB8IGF0aGxvbiB8IGF0aGxvbl8qKQor KwkJYmFzaWNfbWFjaGluZT1pNjg2LXBjCisrCQk7OworKwlwZW50aXVtaWkgfCBwZW50aXVtMiB8 IHBlbnRpdW1paWkgfCBwZW50aXVtMykKKysJCWJhc2ljX21hY2hpbmU9aTY4Ni1wYworKwkJOzsK KysJcGVudGl1bTQpCisrCQliYXNpY19tYWNoaW5lPWk3ODYtcGMKKysJCTs7CisrCXBlbnRpdW0t KiB8IHA1LSogfCBrNS0qIHwgazYtKiB8IG5leGdlbi0qIHwgdmlhYzMtKikKKysJCWJhc2ljX21h Y2hpbmU9aTU4Ni1gZWNobyAkYmFzaWNfbWFjaGluZSB8IHNlZCAncy9eW14tXSotLy8nYAorKwkJ OzsKKysJcGVudGl1bXByby0qIHwgcDYtKiB8IDZ4ODYtKiB8IGF0aGxvbi0qKQorKwkJYmFzaWNf bWFjaGluZT1pNjg2LWBlY2hvICRiYXNpY19tYWNoaW5lIHwgc2VkICdzL15bXi1dKi0vLydgCisr CQk7OworKwlwZW50aXVtaWktKiB8IHBlbnRpdW0yLSogfCBwZW50aXVtaWlpLSogfCBwZW50aXVt My0qKQorKwkJYmFzaWNfbWFjaGluZT1pNjg2LWBlY2hvICRiYXNpY19tYWNoaW5lIHwgc2VkICdz L15bXi1dKi0vLydgCisrCQk7OworKwlwZW50aXVtNC0qKQorKwkJYmFzaWNfbWFjaGluZT1pNzg2 LWBlY2hvICRiYXNpY19tYWNoaW5lIHwgc2VkICdzL15bXi1dKi0vLydgCisrCQk7OworKwlwbikK KysJCWJhc2ljX21hY2hpbmU9cG4tZ291bGQKKysJCTs7CisrCXBvd2VyKQliYXNpY19tYWNoaW5l PXBvd2VyLWlibQorKwkJOzsKKysJcHBjKQliYXNpY19tYWNoaW5lPXBvd2VycGMtdW5rbm93bgor KwkJOzsKKysJcHBjLSopCWJhc2ljX21hY2hpbmU9cG93ZXJwYy1gZWNobyAkYmFzaWNfbWFjaGlu ZSB8IHNlZCAncy9eW14tXSotLy8nYAorKwkJOzsKKysJcHBjbGUgfCBwb3dlcnBjbGl0dGxlIHwg cHBjLWxlIHwgcG93ZXJwYy1saXR0bGUpCisrCQliYXNpY19tYWNoaW5lPXBvd2VycGNsZS11bmtu b3duCisrCQk7OworKwlwcGNsZS0qIHwgcG93ZXJwY2xpdHRsZS0qKQorKwkJYmFzaWNfbWFjaGlu ZT1wb3dlcnBjbGUtYGVjaG8gJGJhc2ljX21hY2hpbmUgfCBzZWQgJ3MvXlteLV0qLS8vJ2AKKysJ CTs7CisrCXBwYzY0KQliYXNpY19tYWNoaW5lPXBvd2VycGM2NC11bmtub3duCisrCQk7OworKwlw cGM2NC0qKSBiYXNpY19tYWNoaW5lPXBvd2VycGM2NC1gZWNobyAkYmFzaWNfbWFjaGluZSB8IHNl ZCAncy9eW14tXSotLy8nYAorKwkJOzsKKysJcHBjNjRsZSB8IHBvd2VycGM2NGxpdHRsZSB8IHBw YzY0LWxlIHwgcG93ZXJwYzY0LWxpdHRsZSkKKysJCWJhc2ljX21hY2hpbmU9cG93ZXJwYzY0bGUt dW5rbm93bgorKwkJOzsKKysJcHBjNjRsZS0qIHwgcG93ZXJwYzY0bGl0dGxlLSopCisrCQliYXNp Y19tYWNoaW5lPXBvd2VycGM2NGxlLWBlY2hvICRiYXNpY19tYWNoaW5lIHwgc2VkICdzL15bXi1d Ki0vLydgCisrCQk7OworKwlwczIpCisrCQliYXNpY19tYWNoaW5lPWkzODYtaWJtCisrCQk7Owor KwlwdzMyKQorKwkJYmFzaWNfbWFjaGluZT1pNTg2LXVua25vd24KKysJCW9zPS1wdzMyCisrCQk7 OworKwlyZG9zKQorKwkJYmFzaWNfbWFjaGluZT1pMzg2LXBjCisrCQlvcz0tcmRvcworKwkJOzsK KysJcm9tNjhrKQorKwkJYmFzaWNfbWFjaGluZT1tNjhrLXJvbTY4aworKwkJb3M9LWNvZmYKKysJ CTs7CisrCXJtWzQ2XTAwKQorKwkJYmFzaWNfbWFjaGluZT1taXBzLXNpZW1lbnMKKysJCTs7Cisr CXJ0cGMgfCBydHBjLSopCisrCQliYXNpY19tYWNoaW5lPXJvbXAtaWJtCisrCQk7OworKwlzMzkw IHwgczM5MC0qKQorKwkJYmFzaWNfbWFjaGluZT1zMzkwLWlibQorKwkJOzsKKysJczM5MHggfCBz MzkweC0qKQorKwkJYmFzaWNfbWFjaGluZT1zMzkweC1pYm0KKysJCTs7CisrCXNhMjkyMDApCisr CQliYXNpY19tYWNoaW5lPWEyOWstYW1kCisrCQlvcz0tdWRpCisrCQk7OworKwlzYjEpCisrCQli YXNpY19tYWNoaW5lPW1pcHNpc2E2NHNiMS11bmtub3duCisrCQk7OworKwlzYjFlbCkKKysJCWJh c2ljX21hY2hpbmU9bWlwc2lzYTY0c2IxZWwtdW5rbm93bgorKwkJOzsKKysJc2RlKQorKwkJYmFz aWNfbWFjaGluZT1taXBzaXNhMzItc2RlCisrCQlvcz0tZWxmCisrCQk7OworKwlzZWkpCisrCQli YXNpY19tYWNoaW5lPW1pcHMtc2VpCisrCQlvcz0tc2VpdXgKKysJCTs7CisrCXNlcXVlbnQpCisr CQliYXNpY19tYWNoaW5lPWkzODYtc2VxdWVudAorKwkJOzsKKysJc2gpCisrCQliYXNpY19tYWNo aW5lPXNoLWhpdGFjaGkKKysJCW9zPS1obXMKKysJCTs7CisrCXNoNWVsKQorKwkJYmFzaWNfbWFj aGluZT1zaDVsZS11bmtub3duCisrCQk7OworKwlzaDY0KQorKwkJYmFzaWNfbWFjaGluZT1zaDY0 LXVua25vd24KKysJCTs7CisrCXNwYXJjbGl0ZS13cnMgfCBzaW1zby13cnMpCisrCQliYXNpY19t YWNoaW5lPXNwYXJjbGl0ZS13cnMKKysJCW9zPS12eHdvcmtzCisrCQk7OworKwlzcHM3KQorKwkJ YmFzaWNfbWFjaGluZT1tNjhrLWJ1bGwKKysJCW9zPS1zeXN2MgorKwkJOzsKKysJc3B1cikKKysJ CWJhc2ljX21hY2hpbmU9c3B1ci11bmtub3duCisrCQk7OworKwlzdDIwMDApCisrCQliYXNpY19t YWNoaW5lPW02OGstdGFuZGVtCisrCQk7OworKwlzdHJhdHVzKQorKwkJYmFzaWNfbWFjaGluZT1p ODYwLXN0cmF0dXMKKysJCW9zPS1zeXN2NAorKwkJOzsKKysJc3VuMikKKysJCWJhc2ljX21hY2hp bmU9bTY4MDAwLXN1bgorKwkJOzsKKysJc3VuMm9zMykKKysJCWJhc2ljX21hY2hpbmU9bTY4MDAw LXN1bgorKwkJb3M9LXN1bm9zMworKwkJOzsKKysJc3VuMm9zNCkKKysJCWJhc2ljX21hY2hpbmU9 bTY4MDAwLXN1bgorKwkJb3M9LXN1bm9zNAorKwkJOzsKKysJc3VuM29zMykKKysJCWJhc2ljX21h Y2hpbmU9bTY4ay1zdW4KKysJCW9zPS1zdW5vczMKKysJCTs7CisrCXN1bjNvczQpCisrCQliYXNp Y19tYWNoaW5lPW02OGstc3VuCisrCQlvcz0tc3Vub3M0CisrCQk7OworKwlzdW40b3MzKQorKwkJ YmFzaWNfbWFjaGluZT1zcGFyYy1zdW4KKysJCW9zPS1zdW5vczMKKysJCTs7CisrCXN1bjRvczQp CisrCQliYXNpY19tYWNoaW5lPXNwYXJjLXN1bgorKwkJb3M9LXN1bm9zNAorKwkJOzsKKysJc3Vu NHNvbDIpCisrCQliYXNpY19tYWNoaW5lPXNwYXJjLXN1bgorKwkJb3M9LXNvbGFyaXMyCisrCQk7 OworKwlzdW4zIHwgc3VuMy0qKQorKwkJYmFzaWNfbWFjaGluZT1tNjhrLXN1bgorKwkJOzsKKysJ c3VuNCkKKysJCWJhc2ljX21hY2hpbmU9c3BhcmMtc3VuCisrCQk7OworKwlzdW4zODYgfCBzdW4z ODZpIHwgcm9hZHJ1bm5lcikKKysJCWJhc2ljX21hY2hpbmU9aTM4Ni1zdW4KKysJCTs7CisrCXN2 MSkKKysJCWJhc2ljX21hY2hpbmU9c3YxLWNyYXkKKysJCW9zPS11bmljb3MKKysJCTs7CisrCXN5 bW1ldHJ5KQorKwkJYmFzaWNfbWFjaGluZT1pMzg2LXNlcXVlbnQKKysJCW9zPS1keW5peAorKwkJ OzsKKysJdDNlKQorKwkJYmFzaWNfbWFjaGluZT1hbHBoYWV2NS1jcmF5CisrCQlvcz0tdW5pY29z CisrCQk7OworKwl0OTApCisrCQliYXNpY19tYWNoaW5lPXQ5MC1jcmF5CisrCQlvcz0tdW5pY29z CisrCQk7OworKwl0aWM1NHggfCBjNTR4KikKKysJCWJhc2ljX21hY2hpbmU9dGljNTR4LXVua25v d24KKysJCW9zPS1jb2ZmCisrCQk7OworKwl0aWM1NXggfCBjNTV4KikKKysJCWJhc2ljX21hY2hp bmU9dGljNTV4LXVua25vd24KKysJCW9zPS1jb2ZmCisrCQk7OworKwl0aWM2eCB8IGM2eCopCisr CQliYXNpY19tYWNoaW5lPXRpYzZ4LXVua25vd24KKysJCW9zPS1jb2ZmCisrCQk7OworKwl0aWxl KikKKysJCWJhc2ljX21hY2hpbmU9dGlsZS11bmtub3duCisrCQlvcz0tbGludXgtZ251CisrCQk7 OworKwl0eDM5KQorKwkJYmFzaWNfbWFjaGluZT1taXBzdHgzOS11bmtub3duCisrCQk7OworKwl0 eDM5ZWwpCisrCQliYXNpY19tYWNoaW5lPW1pcHN0eDM5ZWwtdW5rbm93bgorKwkJOzsKKysJdG9h ZDEpCisrCQliYXNpY19tYWNoaW5lPXBkcDEwLXhrbAorKwkJb3M9LXRvcHMyMAorKwkJOzsKKysJ dG93ZXIgfCB0b3dlci0zMikKKysJCWJhc2ljX21hY2hpbmU9bTY4ay1uY3IKKysJCTs7CisrCXRw ZikKKysJCWJhc2ljX21hY2hpbmU9czM5MHgtaWJtCisrCQlvcz0tdHBmCisrCQk7OworKwl1ZGky OWspCisrCQliYXNpY19tYWNoaW5lPWEyOWstYW1kCisrCQlvcz0tdWRpCisrCQk7OworKwl1bHRy YTMpCisrCQliYXNpY19tYWNoaW5lPWEyOWstbnl1CisrCQlvcz0tc3ltMQorKwkJOzsKKysJdjgx MCB8IG5lY3Y4MTApCisrCQliYXNpY19tYWNoaW5lPXY4MTAtbmVjCisrCQlvcz0tbm9uZQorKwkJ OzsKKysJdmF4dikKKysJCWJhc2ljX21hY2hpbmU9dmF4LWRlYworKwkJb3M9LXN5c3YKKysJCTs7 CisrCXZtcykKKysJCWJhc2ljX21hY2hpbmU9dmF4LWRlYworKwkJb3M9LXZtcworKwkJOzsKKysJ dnBwKnx2eHx2eC0qKQorKwkJYmFzaWNfbWFjaGluZT1mMzAxLWZ1aml0c3UKKysJCTs7CisrCXZ4 d29ya3M5NjApCisrCQliYXNpY19tYWNoaW5lPWk5NjAtd3JzCisrCQlvcz0tdnh3b3JrcworKwkJ OzsKKysJdnh3b3JrczY4KQorKwkJYmFzaWNfbWFjaGluZT1tNjhrLXdycworKwkJb3M9LXZ4d29y a3MKKysJCTs7CisrCXZ4d29ya3MyOWspCisrCQliYXNpY19tYWNoaW5lPWEyOWstd3JzCisrCQlv cz0tdnh3b3JrcworKwkJOzsKKysJdzY1KikKKysJCWJhc2ljX21hY2hpbmU9dzY1LXdkYworKwkJ b3M9LW5vbmUKKysJCTs7CisrCXc4OWstKikKKysJCWJhc2ljX21hY2hpbmU9aHBwYTEuMS13aW5i b25kCisrCQlvcz0tcHJvZWxmCisrCQk7OworKwl4Ym94KQorKwkJYmFzaWNfbWFjaGluZT1pNjg2 LXBjCisrCQlvcz0tbWluZ3czMgorKwkJOzsKKysJeHBzIHwgeHBzMTAwKQorKwkJYmFzaWNfbWFj aGluZT14cHMxMDAtaG9uZXl3ZWxsCisrCQk7OworKwl5bXApCisrCQliYXNpY19tYWNoaW5lPXlt cC1jcmF5CisrCQlvcz0tdW5pY29zCisrCQk7OworKwl6OGstKi1jb2ZmKQorKwkJYmFzaWNfbWFj aGluZT16OGstdW5rbm93bgorKwkJb3M9LXNpbQorKwkJOzsKKysJejgwLSotY29mZikKKysJCWJh c2ljX21hY2hpbmU9ejgwLXVua25vd24KKysJCW9zPS1zaW0KKysJCTs7CisrCW5vbmUpCisrCQli YXNpY19tYWNoaW5lPW5vbmUtbm9uZQorKwkJb3M9LW5vbmUKKysJCTs7CisrCisrIyBIZXJlIHdl IGhhbmRsZSB0aGUgZGVmYXVsdCBtYW51ZmFjdHVyZXIgb2YgY2VydGFpbiBDUFUgdHlwZXMuICBJ dCBpcyBpbgorKyMgc29tZSBjYXNlcyB0aGUgb25seSBtYW51ZmFjdHVyZXIsIGluIG90aGVycywg aXQgaXMgdGhlIG1vc3QgcG9wdWxhci4KKysJdzg5aykKKysJCWJhc2ljX21hY2hpbmU9aHBwYTEu MS13aW5ib25kCisrCQk7OworKwlvcDUwbikKKysJCWJhc2ljX21hY2hpbmU9aHBwYTEuMS1va2kK KysJCTs7CisrCW9wNjBjKQorKwkJYmFzaWNfbWFjaGluZT1ocHBhMS4xLW9raQorKwkJOzsKKysJ cm9tcCkKKysJCWJhc2ljX21hY2hpbmU9cm9tcC1pYm0KKysJCTs7CisrCW1taXgpCisrCQliYXNp Y19tYWNoaW5lPW1taXgta251dGgKKysJCTs7CisrCXJzNjAwMCkKKysJCWJhc2ljX21hY2hpbmU9 cnM2MDAwLWlibQorKwkJOzsKKysJdmF4KQorKwkJYmFzaWNfbWFjaGluZT12YXgtZGVjCisrCQk7 OworKwlwZHAxMCkKKysJCSMgdGhlcmUgYXJlIG1hbnkgY2xvbmVzLCBzbyBERUMgaXMgbm90IGEg c2FmZSBiZXQKKysJCWJhc2ljX21hY2hpbmU9cGRwMTAtdW5rbm93bgorKwkJOzsKKysJcGRwMTEp CisrCQliYXNpY19tYWNoaW5lPXBkcDExLWRlYworKwkJOzsKKysJd2UzMmspCisrCQliYXNpY19t YWNoaW5lPXdlMzJrLWF0dAorKwkJOzsKKysJc2hbMTIzNF0gfCBzaFsyNF1hIHwgc2hbMjRdYWVi IHwgc2hbMzRdZWIgfCBzaFsxMjM0XWxlIHwgc2hbMjNdZWxlKQorKwkJYmFzaWNfbWFjaGluZT1z aC11bmtub3duCisrCQk7OworKwlzcGFyYyB8IHNwYXJjdjggfCBzcGFyY3Y5IHwgc3BhcmN2OWIg fCBzcGFyY3Y5dikKKysJCWJhc2ljX21hY2hpbmU9c3BhcmMtc3VuCisrCQk7OworKwljeWRyYSkK KysJCWJhc2ljX21hY2hpbmU9Y3lkcmEtY3lkcm9tZQorKwkJOzsKKysJb3Jpb24pCisrCQliYXNp Y19tYWNoaW5lPW9yaW9uLWhpZ2hsZXZlbAorKwkJOzsKKysJb3Jpb24xMDUpCisrCQliYXNpY19t YWNoaW5lPWNsaXBwZXItaGlnaGxldmVsCisrCQk7OworKwltYWMgfCBtcHcgfCBtYWMtbXB3KQor KwkJYmFzaWNfbWFjaGluZT1tNjhrLWFwcGxlCisrCQk7OworKwlwbWFjIHwgcG1hYy1tcHcpCisr CQliYXNpY19tYWNoaW5lPXBvd2VycGMtYXBwbGUKKysJCTs7CisrCSotdW5rbm93bikKKysJCSMg TWFrZSBzdXJlIHRvIG1hdGNoIGFuIGFscmVhZHktY2Fub25pY2FsaXplZCBtYWNoaW5lIG5hbWUu CisrCQk7OworKwkqKQorKwkJZWNobyBJbnZhbGlkIGNvbmZpZ3VyYXRpb24gXGAkMVwnOiBtYWNo aW5lIFxgJGJhc2ljX21hY2hpbmVcJyBub3QgcmVjb2duaXplZCAxPiYyCisrCQlleGl0IDEKKysJ CTs7CisrZXNhYworKworKyMgSGVyZSB3ZSBjYW5vbmljYWxpemUgY2VydGFpbiBhbGlhc2VzIGZv ciBtYW51ZmFjdHVyZXJzLgorK2Nhc2UgJGJhc2ljX21hY2hpbmUgaW4KKysJKi1kaWdpdGFsKikK KysJCWJhc2ljX21hY2hpbmU9YGVjaG8gJGJhc2ljX21hY2hpbmUgfCBzZWQgJ3MvZGlnaXRhbC4q L2RlYy8nYAorKwkJOzsKKysJKi1jb21tb2RvcmUqKQorKwkJYmFzaWNfbWFjaGluZT1gZWNobyAk YmFzaWNfbWFjaGluZSB8IHNlZCAncy9jb21tb2RvcmUuKi9jYm0vJ2AKKysJCTs7CisrCSopCisr CQk7OworK2VzYWMKKysKKysjIERlY29kZSBtYW51ZmFjdHVyZXItc3BlY2lmaWMgYWxpYXNlcyBm b3IgY2VydGFpbiBvcGVyYXRpbmcgc3lzdGVtcy4KKysKKytpZiBbIHgiJG9zIiAhPSB4IiIgXQor K3RoZW4KKytjYXNlICRvcyBpbgorKyAgICAgICAgIyBGaXJzdCBtYXRjaCBzb21lIHN5c3RlbSB0 eXBlIGFsaWFzZXMKKysgICAgICAgICMgdGhhdCBtaWdodCBnZXQgY29uZnVzZWQgd2l0aCB2YWxp ZCBzeXN0ZW0gdHlwZXMuCisrCSMgLXNvbGFyaXMqIGlzIGEgYmFzaWMgc3lzdGVtIHR5cGUsIHdp dGggdGhpcyBvbmUgZXhjZXB0aW9uLgorKyAgICAgICAgLWF1cm9yYXV4KQorKwkgICAgICAgIG9z PS1hdXJvcmF1eAorKwkJOzsKKysJLXNvbGFyaXMxIHwgLXNvbGFyaXMxLiopCisrCQlvcz1gZWNo byAkb3MgfCBzZWQgLWUgJ3N8c29sYXJpczF8c3Vub3M0fCdgCisrCQk7OworKwktc29sYXJpcykK KysJCW9zPS1zb2xhcmlzMgorKwkJOzsKKysJLXN2cjQqKQorKwkJb3M9LXN5c3Y0CisrCQk7Owor KwktdW5peHdhcmUqKQorKwkJb3M9LXN5c3Y0LjJ1dworKwkJOzsKKysJLWdudS9saW51eCopCisr CQlvcz1gZWNobyAkb3MgfCBzZWQgLWUgJ3N8Z251L2xpbnV4fGxpbnV4LWdudXwnYAorKwkJOzsK KysJIyBGaXJzdCBhY2NlcHQgdGhlIGJhc2ljIHN5c3RlbSB0eXBlcy4KKysJIyBUaGUgcG9ydGFi bGUgc3lzdGVtcyBjb21lcyBmaXJzdC4KKysJIyBFYWNoIGFsdGVybmF0aXZlIE1VU1QgRU5EIElO IEEgKiwgdG8gbWF0Y2ggYSB2ZXJzaW9uIG51bWJlci4KKysJIyAtc3lzdiogaXMgbm90IGhlcmUg YmVjYXVzZSBpdCBjb21lcyBsYXRlciwgYWZ0ZXIgc3lzdnI0LgorKwktZ251KiB8IC1ic2QqIHwg LW1hY2gqIHwgLW1pbml4KiB8IC1nZW5peCogfCAtdWx0cml4KiB8IC1pcml4KiBcCisrCSAgICAg IHwgLSp2bXMqIHwgLXNjbyogfCAtZXNpeCogfCAtaXNjKiB8IC1haXgqIHwgLWNuayogfCAtc3Vu b3MgfCAtc3Vub3NbMzRdKlwKKysJICAgICAgfCAtaHB1eCogfCAtdW5vcyogfCAtb3NmKiB8IC1s dW5hKiB8IC1kZ3V4KiB8IC1hdXJvcmF1eCogfCAtc29sYXJpcyogXAorKwkgICAgICB8IC1zeW0q IHwgLWtvcGVuc29sYXJpcyogXAorKwkgICAgICB8IC1hbWlnYW9zKiB8IC1hbWlnYWRvcyogfCAt bXNkb3MqIHwgLW5ld3NvcyogfCAtdW5pY29zKiB8IC1hb2YqIFwKKysJICAgICAgfCAtYW9zKiB8 IC1hcm9zKiBcCisrCSAgICAgIHwgLW5pbmR5KiB8IC12eHNpbSogfCAtdnh3b3JrcyogfCAtZWJt b24qIHwgLWhtcyogfCAtbXZzKiBcCisrCSAgICAgIHwgLWNsaXgqIHwgLXJpc2NvcyogfCAtdW5p cGx1cyogfCAtaXJpcyogfCAtcnR1KiB8IC14ZW5peCogXAorKwkgICAgICB8IC1oaXV4KiB8IC0z ODZic2QqIHwgLWtuZXRic2QqIHwgLW1pcmJzZCogfCAtbmV0YnNkKiBcCisrCSAgICAgIHwgLW9w ZW5ic2QqIHwgLXNvbGlkYnNkKiBcCisrCSAgICAgIHwgLWVra29ic2QqIHwgLWtmcmVlYnNkKiB8 IC1mcmVlYnNkKiB8IC1yaXNjaXgqIHwgLWx5bnhvcyogXAorKwkgICAgICB8IC1ib3N4KiB8IC1u ZXh0c3RlcCogfCAtY3h1eCogfCAtYW91dCogfCAtZWxmKiB8IC1vYWJpKiBcCisrCSAgICAgIHwg LXB0eCogfCAtY29mZiogfCAtZWNvZmYqIHwgLXdpbm50KiB8IC1kb21haW4qIHwgLXZzdGEqIFwK KysJICAgICAgfCAtdWRpKiB8IC1lYWJpKiB8IC1saXRlcyogfCAtaWVlZSogfCAtZ28zMiogfCAt YXV4KiBcCisrCSAgICAgIHwgLWNob3J1c29zKiB8IC1jaG9ydXNyZGIqIHwgLWNlZ2NjKiBcCisr CSAgICAgIHwgLWN5Z3dpbiogfCAtcGUqIHwgLXBzb3MqIHwgLW1vc3MqIHwgLXByb2VsZiogfCAt cnRlbXMqIFwKKysJICAgICAgfCAtbWluZ3czMiogfCAtbGludXgtZ251KiB8IC1saW51eC1uZXds aWIqIHwgLWxpbnV4LXVjbGliYyogXAorKwkgICAgICB8IC11eHB2KiB8IC1iZW9zKiB8IC1tcGVp eCogfCAtdWRrKiBcCisrCSAgICAgIHwgLWludGVyaXgqIHwgLXV3aW4qIHwgLW1rcyogfCAtcmhh cHNvZHkqIHwgLWRhcndpbiogfCAtb3BlbmVkKiBcCisrCSAgICAgIHwgLW9wZW5zdGVwKiB8IC1v c2tpdCogfCAtY29uaXgqIHwgLXB3MzIqIHwgLW5vbnN0b3B1eCogXAorKwkgICAgICB8IC1zdG9y bS1jaGFvcyogfCAtdG9wczEwKiB8IC10ZW5leCogfCAtdG9wczIwKiB8IC1pdHMqIFwKKysJICAg ICAgfCAtb3MyKiB8IC12b3MqIHwgLXBhbG1vcyogfCAtdWNsaW51eCogfCAtbnVjbGV1cyogXAor KwkgICAgICB8IC1tb3JwaG9zKiB8IC1zdXBlcnV4KiB8IC1ydG1rKiB8IC1ydG1rLW5vdmEqIHwg LXdpbmRpc3MqIFwKKysJICAgICAgfCAtcG93ZXJtYXgqIHwgLWRuaXgqIHwgLW54NiB8IC1ueDcg fCAtc2VpKiB8IC1kcmFnb25mbHkqIFwKKysJICAgICAgfCAtc2t5b3MqIHwgLWhhaWt1KiB8IC1y ZG9zKiB8IC10b3BwZXJzKiB8IC1kcm9wcyogfCAtZXMqKQorKwkjIFJlbWVtYmVyLCBlYWNoIGFs dGVybmF0aXZlIE1VU1QgRU5EIElOICosIHRvIG1hdGNoIGEgdmVyc2lvbiBudW1iZXIuCisrCQk7 OworKwktcW54KikKKysJCWNhc2UgJGJhc2ljX21hY2hpbmUgaW4KKysJCSAgICB4ODYtKiB8IGkq ODYtKikKKysJCQk7OworKwkJICAgICopCisrCQkJb3M9LW50byRvcworKwkJCTs7CisrCQllc2Fj CisrCQk7OworKwktbnRvLXFueCopCisrCQk7OworKwktbnRvKikKKysJCW9zPWBlY2hvICRvcyB8 IHNlZCAtZSAnc3xudG98bnRvLXFueHwnYAorKwkJOzsKKysJLXNpbSB8IC1lczE4MDAqIHwgLWht cyogfCAteHJheSB8IC1vczY4ayogfCAtbm9uZSogfCAtdjg4ciogXAorKwkgICAgICB8IC13aW5k b3dzKiB8IC1vc3ggfCAtYWJ1ZyB8IC1uZXR3YXJlKiB8IC1vczkqIHwgLWJlb3MqIHwgLWhhaWt1 KiBcCisrCSAgICAgIHwgLW1hY29zKiB8IC1tcHcqIHwgLW1hZ2ljKiB8IC1tbWl4d2FyZSogfCAt bW9uOTYwKiB8IC1sbmV3cyopCisrCQk7OworKwktbWFjKikKKysJCW9zPWBlY2hvICRvcyB8IHNl ZCAtZSAnc3xtYWN8bWFjb3N8J2AKKysJCTs7CisrCS1saW51eC1kaWV0bGliYykKKysJCW9zPS1s aW51eC1kaWV0bGliYworKwkJOzsKKysJLWxpbnV4KikKKysJCW9zPWBlY2hvICRvcyB8IHNlZCAt ZSAnc3xsaW51eHxsaW51eC1nbnV8J2AKKysJCTs7CisrCS1zdW5vczUqKQorKwkJb3M9YGVjaG8g JG9zIHwgc2VkIC1lICdzfHN1bm9zNXxzb2xhcmlzMnwnYAorKwkJOzsKKysJLXN1bm9zNiopCisr CQlvcz1gZWNobyAkb3MgfCBzZWQgLWUgJ3N8c3Vub3M2fHNvbGFyaXMzfCdgCisrCQk7OworKwkt b3BlbmVkKikKKysJCW9zPS1vcGVuZWRpdGlvbgorKwkJOzsKKysgICAgICAgIC1vczQwMCopCisr CQlvcz0tb3M0MDAKKysJCTs7CisrCS13aW5jZSopCisrCQlvcz0td2luY2UKKysJCTs7CisrCS1v c2Zyb3NlKikKKysJCW9zPS1vc2Zyb3NlCisrCQk7OworKwktb3NmKikKKysJCW9zPS1vc2YKKysJ CTs7CisrCS11dGVrKikKKysJCW9zPS1ic2QKKysJCTs7CisrCS1keW5peCopCisrCQlvcz0tYnNk CisrCQk7OworKwktYWNpcyopCisrCQlvcz0tYW9zCisrCQk7OworKwktYXRoZW9zKikKKysJCW9z PS1hdGhlb3MKKysJCTs7CisrCS1zeWxsYWJsZSopCisrCQlvcz0tc3lsbGFibGUKKysJCTs7Cisr CS0zODZic2QpCisrCQlvcz0tYnNkCisrCQk7OworKwktY3RpeCogfCAtdXRzKikKKysJCW9zPS1z eXN2CisrCQk7OworKwktbm92YSopCisrCQlvcz0tcnRtay1ub3ZhCisrCQk7OworKwktbnMyICkK KysJCW9zPS1uZXh0c3RlcDIKKysJCTs7CisrCS1uc2sqKQorKwkJb3M9LW5zaworKwkJOzsKKysJ IyBQcmVzZXJ2ZSB0aGUgdmVyc2lvbiBudW1iZXIgb2Ygc2luaXg1LgorKwktc2luaXg1LiopCisr CQlvcz1gZWNobyAkb3MgfCBzZWQgLWUgJ3N8c2luaXh8c3lzdnwnYAorKwkJOzsKKysJLXNpbml4 KikKKysJCW9zPS1zeXN2NAorKwkJOzsKKysgICAgICAgIC10cGYqKQorKwkJb3M9LXRwZgorKwkJ OzsKKysJLXRyaXRvbiopCisrCQlvcz0tc3lzdjMKKysJCTs7CisrCS1vc3MqKQorKwkJb3M9LXN5 c3YzCisrCQk7OworKwktc3ZyNCkKKysJCW9zPS1zeXN2NAorKwkJOzsKKysJLXN2cjMpCisrCQlv cz0tc3lzdjMKKysJCTs7CisrCS1zeXN2cjQpCisrCQlvcz0tc3lzdjQKKysJCTs7CisrCSMgVGhp cyBtdXN0IGNvbWUgYWZ0ZXIgLXN5c3ZyNC4KKysJLXN5c3YqKQorKwkJOzsKKysJLW9zZSopCisr CQlvcz0tb3NlCisrCQk7OworKwktZXMxODAwKikKKysJCW9zPS1vc2UKKysJCTs7CisrCS14ZW5p eCkKKysJCW9zPS14ZW5peAorKwkJOzsKKysJLSptaW50IHwgLW1pbnRbMC05XSogfCAtKk1pTlQg fCAtTWlOVFswLTldKikKKysJCW9zPS1taW50CisrCQk7OworKwktYXJvcyopCisrCQlvcz0tYXJv cworKwkJOzsKKysJLWthb3MqKQorKwkJb3M9LWthb3MKKysJCTs7CisrCS16dm1vZSkKKysJCW9z PS16dm1vZQorKwkJOzsKKysJLWRpY29zKikKKysJCW9zPS1kaWNvcworKwkJOzsKKysJLW5vbmUp CisrCQk7OworKwkqKQorKwkJIyBHZXQgcmlkIG9mIHRoZSBgLScgYXQgdGhlIGJlZ2lubmluZyBv ZiAkb3MuCisrCQlvcz1gZWNobyAkb3MgfCBzZWQgJ3MvW14tXSotLy8nYAorKwkJZWNobyBJbnZh bGlkIGNvbmZpZ3VyYXRpb24gXGAkMVwnOiBzeXN0ZW0gXGAkb3NcJyBub3QgcmVjb2duaXplZCAx PiYyCisrCQlleGl0IDEKKysJCTs7CisrZXNhYworK2Vsc2UKKysKKysjIEhlcmUgd2UgaGFuZGxl IHRoZSBkZWZhdWx0IG9wZXJhdGluZyBzeXN0ZW1zIHRoYXQgY29tZSB3aXRoIHZhcmlvdXMgbWFj aGluZXMuCisrIyBUaGUgdmFsdWUgc2hvdWxkIGJlIHdoYXQgdGhlIHZlbmRvciBjdXJyZW50bHkg c2hpcHMgb3V0IHRoZSBkb29yIHdpdGggdGhlaXIKKysjIG1hY2hpbmUgb3IgcHV0IGFub3RoZXIg d2F5LCB0aGUgbW9zdCBwb3B1bGFyIG9zIHByb3ZpZGVkIHdpdGggdGhlIG1hY2hpbmUuCisrCisr IyBOb3RlIHRoYXQgaWYgeW91J3JlIGdvaW5nIHRvIHRyeSB0byBtYXRjaCAiLU1BTlVGQUNUVVJF UiIgaGVyZSAoc2F5LAorKyMgIi1zdW4iKSwgdGhlbiB5b3UgaGF2ZSB0byB0ZWxsIHRoZSBjYXNl IHN0YXRlbWVudCB1cCB0b3dhcmRzIHRoZSB0b3AKKysjIHRoYXQgTUFOVUZBQ1RVUkVSIGlzbid0 IGFuIG9wZXJhdGluZyBzeXN0ZW0uICBPdGhlcndpc2UsIGNvZGUgYWJvdmUKKysjIHdpbGwgc2ln bmFsIGFuIGVycm9yIHNheWluZyB0aGF0IE1BTlVGQUNUVVJFUiBpc24ndCBhbiBvcGVyYXRpbmcK KysjIHN5c3RlbSwgYW5kIHdlJ2xsIG5ldmVyIGdldCB0byB0aGlzIHBvaW50LgorKworK2Nhc2Ug JGJhc2ljX21hY2hpbmUgaW4KKysgICAgICAgIHNjb3JlLSopCisrCQlvcz0tZWxmCisrCQk7Owor KyAgICAgICAgc3B1LSopCisrCQlvcz0tZWxmCisrCQk7OworKwkqLWFjb3JuKQorKwkJb3M9LXJp c2NpeDEuMgorKwkJOzsKKysJYXJtKi1yZWJlbCkKKysJCW9zPS1saW51eAorKwkJOzsKKysJYXJt Ki1zZW1pKQorKwkJb3M9LWFvdXQKKysJCTs7CisrICAgICAgICBjNHgtKiB8IHRpYzR4LSopCisr ICAgICAgICAJb3M9LWNvZmYKKysJCTs7CisrCSMgVGhpcyBtdXN0IGNvbWUgYmVmb3JlIHRoZSAq LWRlYyBlbnRyeS4KKysJcGRwMTAtKikKKysJCW9zPS10b3BzMjAKKysJCTs7CisrCXBkcDExLSop CisrCQlvcz0tbm9uZQorKwkJOzsKKysJKi1kZWMgfCB2YXgtKikKKysJCW9zPS11bHRyaXg0LjIK KysJCTs7CisrCW02OCotYXBvbGxvKQorKwkJb3M9LWRvbWFpbgorKwkJOzsKKysJaTM4Ni1zdW4p CisrCQlvcz0tc3Vub3M0LjAuMgorKwkJOzsKKysJbTY4MDAwLXN1bikKKysJCW9zPS1zdW5vczMK KysJCSMgVGhpcyBhbHNvIGV4aXN0cyBpbiB0aGUgY29uZmlndXJlIHByb2dyYW0sIGJ1dCB3YXMg bm90IHRoZQorKwkJIyBkZWZhdWx0LgorKwkJIyBvcz0tc3Vub3M0CisrCQk7OworKwltNjgqLWNp c2NvKQorKwkJb3M9LWFvdXQKKysJCTs7CisrICAgICAgICBtZXAtKikKKysJCW9zPS1lbGYKKysJ CTs7CisrCW1pcHMqLWNpc2NvKQorKwkJb3M9LWVsZgorKwkJOzsKKysJbWlwcyotKikKKysJCW9z PS1lbGYKKysJCTs7CisrCW9yMzItKikKKysJCW9zPS1jb2ZmCisrCQk7OworKwkqLXR0aSkJIyBt dXN0IGJlIGJlZm9yZSBzcGFyYyBlbnRyeSBvciB3ZSBnZXQgdGhlIHdyb25nIG9zLgorKwkJb3M9 LXN5c3YzCisrCQk7OworKwlzcGFyYy0qIHwgKi1zdW4pCisrCQlvcz0tc3Vub3M0LjEuMQorKwkJ OzsKKysJKi1iZSkKKysJCW9zPS1iZW9zCisrCQk7OworKwkqLWhhaWt1KQorKwkJb3M9LWhhaWt1 CisrCQk7OworKwkqLWlibSkKKysJCW9zPS1haXgKKysJCTs7CisrICAgIAkqLWtudXRoKQorKwkJ b3M9LW1taXh3YXJlCisrCQk7OworKwkqLXdlYykKKysJCW9zPS1wcm9lbGYKKysJCTs7CisrCSot d2luYm9uZCkKKysJCW9zPS1wcm9lbGYKKysJCTs7CisrCSotb2tpKQorKwkJb3M9LXByb2VsZgor KwkJOzsKKysJKi1ocCkKKysJCW9zPS1ocHV4CisrCQk7OworKwkqLWhpdGFjaGkpCisrCQlvcz0t aGl1eAorKwkJOzsKKysJaTg2MC0qIHwgKi1hdHQgfCAqLW5jciB8ICotYWx0b3MgfCAqLW1vdG9y b2xhIHwgKi1jb252ZXJnZW50KQorKwkJb3M9LXN5c3YKKysJCTs7CisrCSotY2JtKQorKwkJb3M9 LWFtaWdhb3MKKysJCTs7CisrCSotZGcpCisrCQlvcz0tZGd1eAorKwkJOzsKKysJKi1kb2xwaGlu KQorKwkJb3M9LXN5c3YzCisrCQk7OworKwltNjhrLWNjdXIpCisrCQlvcz0tcnR1CisrCQk7Owor KwltODhrLW9tcm9uKikKKysJCW9zPS1sdW5hCisrCQk7OworKwkqLW5leHQgKQorKwkJb3M9LW5l eHRzdGVwCisrCQk7OworKwkqLXNlcXVlbnQpCisrCQlvcz0tcHR4CisrCQk7OworKwkqLWNyZHMp CisrCQlvcz0tdW5vcworKwkJOzsKKysJKi1ucykKKysJCW9zPS1nZW5peAorKwkJOzsKKysJaTM3 MC0qKQorKwkJb3M9LW12cworKwkJOzsKKysJKi1uZXh0KQorKwkJb3M9LW5leHRzdGVwMworKwkJ OzsKKysJKi1nb3VsZCkKKysJCW9zPS1zeXN2CisrCQk7OworKwkqLWhpZ2hsZXZlbCkKKysJCW9z PS1ic2QKKysJCTs7CisrCSotZW5jb3JlKQorKwkJb3M9LWJzZAorKwkJOzsKKysJKi1zZ2kpCisr CQlvcz0taXJpeAorKwkJOzsKKysJKi1zaWVtZW5zKQorKwkJb3M9LXN5c3Y0CisrCQk7OworKwkq LW1hc3Njb21wKQorKwkJb3M9LXJ0dQorKwkJOzsKKysJZjMwWzAxXS1mdWppdHN1IHwgZjcwMC1m dWppdHN1KQorKwkJb3M9LXV4cHYKKysJCTs7CisrCSotcm9tNjhrKQorKwkJb3M9LWNvZmYKKysJ CTs7CisrCSotKmJ1ZykKKysJCW9zPS1jb2ZmCisrCQk7OworKwkqLWFwcGxlKQorKwkJb3M9LW1h Y29zCisrCQk7OworKwkqLWF0YXJpKikKKysJCW9zPS1taW50CisrCQk7OworKwkqKQorKwkJb3M9 LW5vbmUKKysJCTs7CisrZXNhYworK2ZpCisrCisrIyBIZXJlIHdlIGhhbmRsZSB0aGUgY2FzZSB3 aGVyZSB3ZSBrbm93IHRoZSBvcywgYW5kIHRoZSBDUFUgdHlwZSwgYnV0IG5vdCB0aGUKKysjIG1h bnVmYWN0dXJlci4gIFdlIHBpY2sgdGhlIGxvZ2ljYWwgbWFudWZhY3R1cmVyLgorK3ZlbmRvcj11 bmtub3duCisrY2FzZSAkYmFzaWNfbWFjaGluZSBpbgorKwkqLXVua25vd24pCisrCQljYXNlICRv cyBpbgorKwkJCS1yaXNjaXgqKQorKwkJCQl2ZW5kb3I9YWNvcm4KKysJCQkJOzsKKysJCQktc3Vu b3MqKQorKwkJCQl2ZW5kb3I9c3VuCisrCQkJCTs7CisrCQkJLWNuayp8LWFpeCopCisrCQkJCXZl bmRvcj1pYm0KKysJCQkJOzsKKysJCQktYmVvcyopCisrCQkJCXZlbmRvcj1iZQorKwkJCQk7Owor KwkJCS1ocHV4KikKKysJCQkJdmVuZG9yPWhwCisrCQkJCTs7CisrCQkJLW1wZWl4KikKKysJCQkJ dmVuZG9yPWhwCisrCQkJCTs7CisrCQkJLWhpdXgqKQorKwkJCQl2ZW5kb3I9aGl0YWNoaQorKwkJ CQk7OworKwkJCS11bm9zKikKKysJCQkJdmVuZG9yPWNyZHMKKysJCQkJOzsKKysJCQktZGd1eCop CisrCQkJCXZlbmRvcj1kZworKwkJCQk7OworKwkJCS1sdW5hKikKKysJCQkJdmVuZG9yPW9tcm9u CisrCQkJCTs7CisrCQkJLWdlbml4KikKKysJCQkJdmVuZG9yPW5zCisrCQkJCTs7CisrCQkJLW12 cyogfCAtb3BlbmVkKikKKysJCQkJdmVuZG9yPWlibQorKwkJCQk7OworKwkJCS1vczQwMCopCisr CQkJCXZlbmRvcj1pYm0KKysJCQkJOzsKKysJCQktcHR4KikKKysJCQkJdmVuZG9yPXNlcXVlbnQK KysJCQkJOzsKKysJCQktdHBmKikKKysJCQkJdmVuZG9yPWlibQorKwkJCQk7OworKwkJCS12eHNp bSogfCAtdnh3b3JrcyogfCAtd2luZGlzcyopCisrCQkJCXZlbmRvcj13cnMKKysJCQkJOzsKKysJ CQktYXV4KikKKysJCQkJdmVuZG9yPWFwcGxlCisrCQkJCTs7CisrCQkJLWhtcyopCisrCQkJCXZl bmRvcj1oaXRhY2hpCisrCQkJCTs7CisrCQkJLW1wdyogfCAtbWFjb3MqKQorKwkJCQl2ZW5kb3I9 YXBwbGUKKysJCQkJOzsKKysJCQktKm1pbnQgfCAtbWludFswLTldKiB8IC0qTWlOVCB8IC1NaU5U WzAtOV0qKQorKwkJCQl2ZW5kb3I9YXRhcmkKKysJCQkJOzsKKysJCQktdm9zKikKKysJCQkJdmVu ZG9yPXN0cmF0dXMKKysJCQkJOzsKKysJCWVzYWMKKysJCWJhc2ljX21hY2hpbmU9YGVjaG8gJGJh c2ljX21hY2hpbmUgfCBzZWQgInMvdW5rbm93bi8kdmVuZG9yLyJgCisrCQk7OworK2VzYWMKKysK KytlY2hvICRiYXNpY19tYWNoaW5lJG9zCisrZXhpdAorKworKyMgTG9jYWwgdmFyaWFibGVzOgor KyMgZXZhbDogKGFkZC1ob29rICd3cml0ZS1maWxlLWhvb2tzICd0aW1lLXN0YW1wKQorKyMgdGlt ZS1zdGFtcC1zdGFydDogInRpbWVzdGFtcD0nIgorKyMgdGltZS1zdGFtcC1mb3JtYXQ6ICIlOnkt JTAybS0lMDJkIgorKyMgdGltZS1zdGFtcC1lbmQ6ICInIgorKyMgRW5kOgorZGlmZiAtTnVyIHNv Y2ktMy4wLjBfNC1wYWNrL2NvbmZpZy9jcHB1bml0Lm00IHNvY2ktMy4wLjBfdHJlcDMwMC9jb25m aWcvY3BwdW5pdC5tNAorLS0tIHNvY2ktMy4wLjBfNC1wYWNrL2NvbmZpZy9jcHB1bml0Lm00CTE5 NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCisrKysgc29jaS0zLjAuMF90cmVwMzAw L2NvbmZpZy9jcHB1bml0Lm00CTIwMTAtMDEtMjMgMTM6Mjc6MDQuMDAwMDAwMDAwICswMTAwCitA QCAtMCwwICsxLDkzIEBACisrZG5sCisrZG5sIEFNX1BBVEhfQ1BQVU5JVChNSU5JTVVNLVZFUlNJ T04sIFtBQ1RJT04tSUYtRk9VTkQgWywgQUNUSU9OLUlGLU5PVC1GT1VORF1dKQorK2RubAorK0FD X0RFRlVOKFtBTV9QQVRIX0NQUFVOSVRdLAorK1sKKysKKytBQ19BUkdfV0lUSChjcHB1bml0LXBy ZWZpeCxbICAtLXdpdGgtY3BwdW5pdC1wcmVmaXg9UEZYICAgUHJlZml4IHdoZXJlIENwcFVuaXQg aXMgaW5zdGFsbGVkIChvcHRpb25hbCldLAorKyAgICAgICAgICAgIGNwcHVuaXRfY29uZmlnX3By ZWZpeD0iJHdpdGh2YWwiLCBjcHB1bml0X2NvbmZpZ19wcmVmaXg9IiIpCisrQUNfQVJHX1dJVEgo Y3BwdW5pdC1leGVjLXByZWZpeCxbICAtLXdpdGgtY3BwdW5pdC1leGVjLXByZWZpeD1QRlggIEV4 ZWMgcHJlZml4IHdoZXJlIENwcFVuaXQgaXMgaW5zdGFsbGVkIChvcHRpb25hbCldLAorKyAgICAg ICAgICAgIGNwcHVuaXRfY29uZmlnX2V4ZWNfcHJlZml4PSIkd2l0aHZhbCIsIGNwcHVuaXRfY29u ZmlnX2V4ZWNfcHJlZml4PSIiKQorKworKyAgaWYgdGVzdCB4JGNwcHVuaXRfY29uZmlnX2V4ZWNf cHJlZml4ICE9IHggOyB0aGVuCisrICAgICBjcHB1bml0X2NvbmZpZ19hcmdzPSIkY3BwdW5pdF9j b25maWdfYXJncyAtLWV4ZWMtcHJlZml4PSRjcHB1bml0X2NvbmZpZ19leGVjX3ByZWZpeCIKKysg ICAgIGlmIHRlc3QgeCR7Q1BQVU5JVF9DT05GSUcrc2V0fSAhPSB4c2V0IDsgdGhlbgorKyAgICAg ICAgQ1BQVU5JVF9DT05GSUc9JGNwcHVuaXRfY29uZmlnX2V4ZWNfcHJlZml4L2Jpbi9jcHB1bml0 LWNvbmZpZworKyAgICAgZmkKKysgIGZpCisrICBpZiB0ZXN0IHgkY3BwdW5pdF9jb25maWdfcHJl Zml4ICE9IHggOyB0aGVuCisrICAgICBjcHB1bml0X2NvbmZpZ19hcmdzPSIkY3BwdW5pdF9jb25m aWdfYXJncyAtLXByZWZpeD0kY3BwdW5pdF9jb25maWdfcHJlZml4IgorKyAgICAgaWYgdGVzdCB4 JHtDUFBVTklUX0NPTkZJRytzZXR9ICE9IHhzZXQgOyB0aGVuCisrICAgICAgICBDUFBVTklUX0NP TkZJRz0kY3BwdW5pdF9jb25maWdfcHJlZml4L2Jpbi9jcHB1bml0LWNvbmZpZworKyAgICAgZmkK KysgIGZpCisrCisrICBBQ19QQVRIX1BST0coQ1BQVU5JVF9DT05GSUcsIGNwcHVuaXQtY29uZmln LCBubykKKysgIGNwcHVuaXRfdmVyc2lvbl9taW49JDEKKysKKysgIEFDX01TR19DSEVDS0lORyhm b3IgQ3BwdW5pdCAtIHZlcnNpb24gPj0gJGNwcHVuaXRfdmVyc2lvbl9taW4pCisrICBub19jcHB1 bml0PSIiCisrICBpZiB0ZXN0ICIkQ1BQVU5JVF9DT05GSUciID0gIm5vIiA7IHRoZW4KKysgICAg QUNfTVNHX1JFU1VMVChubykKKysgICAgbm9fY3BwdW5pdD15ZXMKKysgIGVsc2UKKysgICAgQ1BQ VU5JVF9DRkxBR1M9YCRDUFBVTklUX0NPTkZJRyAtLWNmbGFnc2AKKysgICAgQ1BQVU5JVF9MSUJT PWAkQ1BQVU5JVF9DT05GSUcgLS1saWJzYAorKyAgICBDUFBVTklUX1ZFUlNJT049YCRDUFBVTklU X0NPTkZJRyAtLXZlcnNpb25gCisrCisrICAgIGNwcHVuaXRfbWFqb3JfdmVyc2lvbj1gZWNobyAk Q1BQVU5JVF9WRVJTSU9OIHwgXAorKyAgICAgICAgICAgc2VkICdzL1woW1swLTldXSpcKS5cKFtb MC05XV0qXCkuXChbWzAtOV1dKlwpL1wxLydgCisrICAgIGNwcHVuaXRfbWlub3JfdmVyc2lvbj1g ZWNobyAkQ1BQVU5JVF9WRVJTSU9OIHwgXAorKyAgICAgICAgICAgc2VkICdzL1woW1swLTldXSpc KS5cKFtbMC05XV0qXCkuXChbWzAtOV1dKlwpL1wyLydgCisrICAgIGNwcHVuaXRfbWljcm9fdmVy c2lvbj1gZWNobyAkQ1BQVU5JVF9WRVJTSU9OIHwgXAorKyAgICAgICAgICAgc2VkICdzL1woW1sw LTldXSpcKS5cKFtbMC05XV0qXCkuXChbWzAtOV1dKlwpL1wzLydgCisrCisrICAgIGNwcHVuaXRf bWFqb3JfbWluPWBlY2hvICRjcHB1bml0X3ZlcnNpb25fbWluIHwgXAorKyAgICAgICAgICAgc2Vk ICdzL1woW1swLTldXSpcKS5cKFtbMC05XV0qXCkuXChbWzAtOV1dKlwpL1wxLydgCisrICAgIGlm IHRlc3QgIngke2NwcHVuaXRfbWFqb3JfbWlufSIgPSAieCIgOyB0aGVuCisrICAgICAgIGNwcHVu aXRfbWFqb3JfbWluPTAKKysgICAgZmkKKysgICAgCisrICAgIGNwcHVuaXRfbWlub3JfbWluPWBl Y2hvICRjcHB1bml0X3ZlcnNpb25fbWluIHwgXAorKyAgICAgICAgICAgc2VkICdzL1woW1swLTld XSpcKS5cKFtbMC05XV0qXCkuXChbWzAtOV1dKlwpL1wyLydgCisrICAgIGlmIHRlc3QgIngke2Nw cHVuaXRfbWlub3JfbWlufSIgPSAieCIgOyB0aGVuCisrICAgICAgIGNwcHVuaXRfbWlub3JfbWlu PTAKKysgICAgZmkKKysgICAgCisrICAgIGNwcHVuaXRfbWljcm9fbWluPWBlY2hvICRjcHB1bml0 X3ZlcnNpb25fbWluIHwgXAorKyAgICAgICAgICAgc2VkICdzL1woW1swLTldXSpcKS5cKFtbMC05 XV0qXCkuXChbWzAtOV1dKlwpL1wzLydgCisrICAgIGlmIHRlc3QgIngke2NwcHVuaXRfbWljcm9f bWlufSIgPSAieCIgOyB0aGVuCisrICAgICAgIGNwcHVuaXRfbWljcm9fbWluPTAKKysgICAgZmkK KysKKysgICAgY3BwdW5pdF92ZXJzaW9uX3Byb3Blcj1gZXhwciBcCisrICAgICAgICAkY3BwdW5p dF9tYWpvcl92ZXJzaW9uIFw+ICRjcHB1bml0X21ham9yX21pbiBcfCBcCisrICAgICAgICAkY3Bw dW5pdF9tYWpvcl92ZXJzaW9uIFw9ICRjcHB1bml0X21ham9yX21pbiBcJiBcCisrICAgICAgICAk Y3BwdW5pdF9taW5vcl92ZXJzaW9uIFw+ICRjcHB1bml0X21pbm9yX21pbiBcfCBcCisrICAgICAg ICAkY3BwdW5pdF9tYWpvcl92ZXJzaW9uIFw9ICRjcHB1bml0X21ham9yX21pbiBcJiBcCisrICAg ICAgICAkY3BwdW5pdF9taW5vcl92ZXJzaW9uIFw9ICRjcHB1bml0X21pbm9yX21pbiBcJiBcCisr ICAgICAgICAkY3BwdW5pdF9taWNyb192ZXJzaW9uIFw+PSAkY3BwdW5pdF9taWNyb19taW4gYAor KworKyAgICBpZiB0ZXN0ICIkY3BwdW5pdF92ZXJzaW9uX3Byb3BlciIgPSAiMSIgOyB0aGVuCisr ICAgICAgQUNfTVNHX1JFU1VMVChbJGNwcHVuaXRfbWFqb3JfdmVyc2lvbi4kY3BwdW5pdF9taW5v cl92ZXJzaW9uLiRjcHB1bml0X21pY3JvX3ZlcnNpb25dKQorKyAgICBlbHNlCisrICAgICAgQUNf TVNHX1JFU1VMVChubykKKysgICAgICBub19jcHB1bml0PXllcworKyAgICBmaQorKyAgZmkKKysK KysgIGlmIHRlc3QgIngkbm9fY3BwdW5pdCIgPSB4IDsgdGhlbgorKyAgICAgaWZlbHNlKFskMl0s ICwgOiwgWyQyXSkgICAgIAorKyAgZWxzZQorKyAgICAgQ1BQVU5JVF9DRkxBR1M9IiIKKysgICAg IENQUFVOSVRfTElCUz0iIgorKyAgICAgaWZlbHNlKFskM10sICwgOiwgWyQzXSkKKysgIGZpCisr CisrICBBQ19TVUJTVChDUFBVTklUX0NGTEFHUykKKysgIEFDX1NVQlNUKENQUFVOSVRfTElCUykK KysgIEFDX1NVQlNUKENQUFVOSVRfVkVSU0lPTikKKytdKQorKworKworKworZGlmZiAtTnVyIHNv Y2ktMy4wLjBfNC1wYWNrL2NvbmZpZy9kZXBjb21wIHNvY2ktMy4wLjBfdHJlcDMwMC9jb25maWcv ZGVwY29tcAorLS0tIHNvY2ktMy4wLjBfNC1wYWNrL2NvbmZpZy9kZXBjb21wCTE5NzAtMDEtMDEg MDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCisrKysgc29jaS0zLjAuMF90cmVwMzAwL2NvbmZpZy9k ZXBjb21wCTIwMTAtMDEtMjMgMTQ6NDQ6NTIuMDAwMDAwMDAwICswMTAwCitAQCAtMCwwICsxLDYz MCBAQAorKyMhIC9iaW4vc2gKKysjIGRlcGNvbXAgLSBjb21waWxlIGEgcHJvZ3JhbSBnZW5lcmF0 aW5nIGRlcGVuZGVuY2llcyBhcyBzaWRlLWVmZmVjdHMKKysKKytzY3JpcHR2ZXJzaW9uPTIwMDkt MDQtMjguMjE7ICMgVVRDCisrCisrIyBDb3B5cmlnaHQgKEMpIDE5OTksIDIwMDAsIDIwMDMsIDIw MDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDkgRnJlZQorKyMgU29mdHdhcmUgRm91bmRhdGlvbiwg SW5jLgorKworKyMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0 cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKysjIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05V IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisrIyB0aGUgRnJlZSBTb2Z0 d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyLCBvciAoYXQgeW91ciBvcHRpb24pCisr IyBhbnkgbGF0ZXIgdmVyc2lvbi4KKysKKysjIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBp biB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorKyMgYnV0IFdJVEhPVVQgQU5ZIFdB UlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKysjIE1FUkNIQU5U QUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKysj IEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisrCisrIyBZb3Ug c2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGlj ZW5zZQorKyMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3 dy5nbnUub3JnL2xpY2Vuc2VzLz4uCisrCisrIyBBcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRo ZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSwgaWYgeW91CisrIyBkaXN0cmlidXRlIHRoaXMg ZmlsZSBhcyBwYXJ0IG9mIGEgcHJvZ3JhbSB0aGF0IGNvbnRhaW5zIGEKKysjIGNvbmZpZ3VyYXRp b24gc2NyaXB0IGdlbmVyYXRlZCBieSBBdXRvY29uZiwgeW91IG1heSBpbmNsdWRlIGl0IHVuZGVy CisrIyB0aGUgc2FtZSBkaXN0cmlidXRpb24gdGVybXMgdGhhdCB5b3UgdXNlIGZvciB0aGUgcmVz dCBvZiB0aGF0IHByb2dyYW0uCisrCisrIyBPcmlnaW5hbGx5IHdyaXR0ZW4gYnkgQWxleGFuZHJl IE9saXZhIDxvbGl2YUBkY2MudW5pY2FtcC5icj4uCisrCisrY2FzZSAkMSBpbgorKyAgJycpCisr ICAgICBlY2hvICIkMDogTm8gY29tbWFuZC4gIFRyeSBcYCQwIC0taGVscCcgZm9yIG1vcmUgaW5m b3JtYXRpb24uIiAxPiYyCisrICAgICBleGl0IDE7CisrICAgICA7OworKyAgLWggfCAtLWgqKQor KyAgICBjYXQgPDxcRU9GCisrVXNhZ2U6IGRlcGNvbXAgWy0taGVscF0gWy0tdmVyc2lvbl0gUFJP R1JBTSBbQVJHU10KKysKKytSdW4gUFJPR1JBTVMgQVJHUyB0byBjb21waWxlIGEgZmlsZSwgZ2Vu ZXJhdGluZyBkZXBlbmRlbmNpZXMKKythcyBzaWRlLWVmZmVjdHMuCisrCisrRW52aXJvbm1lbnQg dmFyaWFibGVzOgorKyAgZGVwbW9kZSAgICAgRGVwZW5kZW5jeSB0cmFja2luZyBtb2RlLgorKyAg c291cmNlICAgICAgU291cmNlIGZpbGUgcmVhZCBieSBgUFJPR1JBTVMgQVJHUycuCisrICBvYmpl Y3QgICAgICBPYmplY3QgZmlsZSBvdXRwdXQgYnkgYFBST0dSQU1TIEFSR1MnLgorKyAgREVQRElS ICAgICAgZGlyZWN0b3J5IHdoZXJlIHRvIHN0b3JlIGRlcGVuZGVuY2llcy4KKysgIGRlcGZpbGUg ICAgIERlcGVuZGVuY3kgZmlsZSB0byBvdXRwdXQuCisrICB0bXBkZXBmaWxlICBUZW1wb3Jhcnkg ZmlsZSB0byB1c2Ugd2hlbiBvdXRwdXRpbmcgZGVwZW5kZW5jaWVzLgorKyAgbGlidG9vbCAgICAg V2hldGhlciBsaWJ0b29sIGlzIHVzZWQgKHllcy9ubykuCisrCisrUmVwb3J0IGJ1Z3MgdG8gPGJ1 Zy1hdXRvbWFrZUBnbnUub3JnPi4KKytFT0YKKysgICAgZXhpdCAkPworKyAgICA7OworKyAgLXYg fCAtLXYqKQorKyAgICBlY2hvICJkZXBjb21wICRzY3JpcHR2ZXJzaW9uIgorKyAgICBleGl0ICQ/ CisrICAgIDs7CisrZXNhYworKworK2lmIHRlc3QgLXogIiRkZXBtb2RlIiB8fCB0ZXN0IC16ICIk c291cmNlIiB8fCB0ZXN0IC16ICIkb2JqZWN0IjsgdGhlbgorKyAgZWNobyAiZGVwY29tcDogVmFy aWFibGVzIHNvdXJjZSwgb2JqZWN0IGFuZCBkZXBtb2RlIG11c3QgYmUgc2V0IiAxPiYyCisrICBl eGl0IDEKKytmaQorKworKyMgRGVwZW5kZW5jaWVzIGZvciBzdWIvYmFyLm8gb3Igc3ViL2Jhci5v YmogZ28gaW50byBzdWIvLmRlcHMvYmFyLlBvLgorK2RlcGZpbGU9JHtkZXBmaWxlLWBlY2hvICIk b2JqZWN0IiB8CisrICBzZWQgJ3N8W15cXC9dKiR8JyR7REVQRElSLS5kZXBzfScvJnw7c3xcLlwo W14uXSpcKSR8LlBcMXw7c3xQb2JqJHxQb3wnYH0KKyt0bXBkZXBmaWxlPSR7dG1wZGVwZmlsZS1g ZWNobyAiJGRlcGZpbGUiIHwgc2VkICdzL1wuXChbXi5dKlwpJC8uVFwxLydgfQorKworK3JtIC1m ICIkdG1wZGVwZmlsZSIKKysKKysjIFNvbWUgbW9kZXMgd29yayBqdXN0IGxpa2Ugb3RoZXIgbW9k ZXMsIGJ1dCB1c2UgZGlmZmVyZW50IGZsYWdzLiAgV2UKKysjIHBhcmFtZXRlcml6ZSBoZXJlLCBi dXQgc3RpbGwgbGlzdCB0aGUgbW9kZXMgaW4gdGhlIGJpZyBjYXNlIGJlbG93LAorKyMgdG8gbWFr ZSBkZXBlbmQubTQgZWFzaWVyIHRvIHdyaXRlLiAgTm90ZSB0aGF0IHdlICpjYW5ub3QqIHVzZSBh IGNhc2UKKysjIGhlcmUsIGJlY2F1c2UgdGhpcyBmaWxlIGNhbiBvbmx5IGNvbnRhaW4gb25lIGNh c2Ugc3RhdGVtZW50LgorK2lmIHRlc3QgIiRkZXBtb2RlIiA9IGhwOyB0aGVuCisrICAjIEhQIGNv bXBpbGVyIHVzZXMgLU0gYW5kIG5vIGV4dHJhIGFyZy4KKysgIGdjY2ZsYWc9LU0KKysgIGRlcG1v ZGU9Z2NjCisrZmkKKysKKytpZiB0ZXN0ICIkZGVwbW9kZSIgPSBkYXNoWG1zdGRvdXQ7IHRoZW4K KysgICAjIFRoaXMgaXMganVzdCBsaWtlIGRhc2htc3Rkb3V0IHdpdGggYSBkaWZmZXJlbnQgYXJn dW1lbnQuCisrICAgZGFzaG1mbGFnPS14TQorKyAgIGRlcG1vZGU9ZGFzaG1zdGRvdXQKKytmaQor KworK2N5Z3BhdGhfdT0iY3lncGF0aCAtdSAtZiAtIgorK2lmIHRlc3QgIiRkZXBtb2RlIiA9IG1z dmNtc3lzOyB0aGVuCisrICAgIyBUaGlzIGlzIGp1c3QgbGlrZSBtc3Zpc3VhbGNwcCBidXQgdy9v IGN5Z3BhdGggdHJhbnNsYXRpb24uCisrICAgIyBKdXN0IGNvbnZlcnQgdGhlIGJhY2tzbGFzaC1l c2NhcGVkIGJhY2tzbGFzaGVzIHRvIHNpbmdsZSBmb3J3YXJkCisrICAgIyBzbGFzaGVzIHRvIHNh dGlzZnkgZGVwZW5kLm00CisrICAgY3lncGF0aF91PSJzZWQgcyxcXFxcXFxcXCwvLGciCisrICAg ZGVwbW9kZT1tc3Zpc3VhbGNwcAorK2ZpCisrCisrY2FzZSAiJGRlcG1vZGUiIGluCisrZ2NjMykK KysjIyBnY2MgMyBpbXBsZW1lbnRzIGRlcGVuZGVuY3kgdHJhY2tpbmcgdGhhdCBkb2VzIGV4YWN0 bHkgd2hhdAorKyMjIHdlIHdhbnQuICBZYXkhICBOb3RlOiBmb3Igc29tZSByZWFzb24gbGlidG9v bCAxLjQgZG9lc24ndCBsaWtlCisrIyMgaXQgaWYgLU1EIC1NUCBjb21lcyBhZnRlciB0aGUgLU1G IHN0dWZmLiAgSG1tLgorKyMjIFVuZm9ydHVuYXRlbHksIEZyZWVCU0QgYzg5IGFjY2VwdGFuY2Ug b2YgZmxhZ3MgZGVwZW5kcyB1cG9uCisrIyMgdGhlIGNvbW1hbmQgbGluZSBhcmd1bWVudCBvcmRl cjsgc28gYWRkIHRoZSBmbGFncyB3aGVyZSB0aGV5CisrIyMgYXBwZWFyIGluIGRlcGVuZDIuYW0u ICBOb3RlIHRoYXQgdGhlIHNsb3dkb3duIGluY3VycmVkIGhlcmUKKysjIyBhZmZlY3RzIG9ubHkg Y29uZmlndXJlOiBpbiBtYWtlZmlsZXMsICVGQVNUREVQJSBzaG9ydGN1dHMgdGhpcy4KKysgIGZv ciBhcmcKKysgIGRvCisrICAgIGNhc2UgJGFyZyBpbgorKyAgICAtYykgc2V0IGZub3JkICIkQCIg LU1UICIkb2JqZWN0IiAtTUQgLU1QIC1NRiAiJHRtcGRlcGZpbGUiICIkYXJnIiA7OworKyAgICAq KSAgc2V0IGZub3JkICIkQCIgIiRhcmciIDs7CisrICAgIGVzYWMKKysgICAgc2hpZnQgIyBmbm9y ZAorKyAgICBzaGlmdCAjICRhcmcKKysgIGRvbmUKKysgICIkQCIKKysgIHN0YXQ9JD8KKysgIGlm IHRlc3QgJHN0YXQgLWVxIDA7IHRoZW4gOgorKyAgZWxzZQorKyAgICBybSAtZiAiJHRtcGRlcGZp bGUiCisrICAgIGV4aXQgJHN0YXQKKysgIGZpCisrICBtdiAiJHRtcGRlcGZpbGUiICIkZGVwZmls ZSIKKysgIDs7CisrCisrZ2NjKQorKyMjIFRoZXJlIGFyZSB2YXJpb3VzIHdheXMgdG8gZ2V0IGRl cGVuZGVuY3kgb3V0cHV0IGZyb20gZ2NjLiAgSGVyZSdzCisrIyMgd2h5IHdlIHBpY2sgdGhpcyBy YXRoZXIgb2JzY3VyZSBtZXRob2Q6CisrIyMgLSBEb24ndCB3YW50IHRvIHVzZSAtTUQgYmVjYXVz ZSB3ZSdkIGxpa2UgdGhlIGRlcGVuZGVuY2llcyB0byBlbmQKKysjIyAgIHVwIGluIGEgc3ViZGly LiAgSGF2aW5nIHRvIHJlbmFtZSBieSBoYW5kIGlzIHVnbHkuCisrIyMgICAoV2UgbWlnaHQgZW5k IHVwIGRvaW5nIHRoaXMgYW55d2F5IHRvIHN1cHBvcnQgb3RoZXIgY29tcGlsZXJzLikKKysjIyAt IFRoZSBERVBFTkRFTkNJRVNfT1VUUFVUIGVudmlyb25tZW50IHZhcmlhYmxlIG1ha2VzIGdjYyBh Y3QgbGlrZQorKyMjICAgLU1NLCBub3QgLU0gKGRlc3BpdGUgd2hhdCB0aGUgZG9jcyBzYXkpLgor KyMjIC0gVXNpbmcgLU0gZGlyZWN0bHkgbWVhbnMgcnVubmluZyB0aGUgY29tcGlsZXIgdHdpY2Ug KGV2ZW4gd29yc2UKKysjIyAgIHRoYW4gcmVuYW1pbmcpLgorKyAgaWYgdGVzdCAteiAiJGdjY2Zs YWciOyB0aGVuCisrICAgIGdjY2ZsYWc9LU1ELAorKyAgZmkKKysgICIkQCIgLVdwLCIkZ2NjZmxh ZyR0bXBkZXBmaWxlIgorKyAgc3RhdD0kPworKyAgaWYgdGVzdCAkc3RhdCAtZXEgMDsgdGhlbiA6 CisrICBlbHNlCisrICAgIHJtIC1mICIkdG1wZGVwZmlsZSIKKysgICAgZXhpdCAkc3RhdAorKyAg ZmkKKysgIHJtIC1mICIkZGVwZmlsZSIKKysgIGVjaG8gIiRvYmplY3QgOiBcXCIgPiAiJGRlcGZp bGUiCisrICBhbHBoYT1BQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3Bx cnN0dXZ3eHl6CisrIyMgVGhlIHNlY29uZCAtZSBleHByZXNzaW9uIGhhbmRsZXMgRE9TLXN0eWxl IGZpbGUgbmFtZXMgd2l0aCBkcml2ZSBsZXR0ZXJzLgorKyAgc2VkIC1lICdzL15bXjpdKjogLyAv JyBcCisrICAgICAgLWUgJ3MvXlsnJGFscGhhJ106XC9bXjpdKjogLyAvJyA8ICIkdG1wZGVwZmls ZSIgPj4gIiRkZXBmaWxlIgorKyMjIFRoaXMgbmV4dCBwaWVjZSBvZiBtYWdpYyBhdm9pZHMgdGhl IGBkZWxldGVkIGhlYWRlciBmaWxlJyBwcm9ibGVtLgorKyMjIFRoZSBwcm9ibGVtIGlzIHRoYXQg d2hlbiBhIGhlYWRlciBmaWxlIHdoaWNoIGFwcGVhcnMgaW4gYSAuUCBmaWxlCisrIyMgaXMgZGVs ZXRlZCwgdGhlIGRlcGVuZGVuY3kgY2F1c2VzIG1ha2UgdG8gZGllIChiZWNhdXNlIHRoZXJlIGlz CisrIyMgdHlwaWNhbGx5IG5vIHdheSB0byByZWJ1aWxkIHRoZSBoZWFkZXIpLiAgV2UgYXZvaWQg dGhpcyBieSBhZGRpbmcKKysjIyBkdW1teSBkZXBlbmRlbmNpZXMgZm9yIGVhY2ggaGVhZGVyIGZp bGUuICBUb28gYmFkIGdjYyBkb2Vzbid0IGRvCisrIyMgdGhpcyBmb3IgdXMgZGlyZWN0bHkuCisr ICB0ciAnICcgJworKycgPCAiJHRtcGRlcGZpbGUiIHwKKysjIyBTb21lIHZlcnNpb25zIG9mIGdj YyBwdXQgYSBzcGFjZSBiZWZvcmUgdGhlIGA6Jy4gIE9uIHRoZSB0aGVvcnkKKysjIyB0aGF0IHRo ZSBzcGFjZSBtZWFucyBzb21ldGhpbmcsIHdlIGFkZCBhIHNwYWNlIHRvIHRoZSBvdXRwdXQgYXMK KysjIyB3ZWxsLgorKyMjIFNvbWUgdmVyc2lvbnMgb2YgdGhlIEhQVVggMTAuMjAgc2VkIGNhbid0 IHByb2Nlc3MgdGhpcyBpbnZvY2F0aW9uCisrIyMgY29ycmVjdGx5LiAgQnJlYWtpbmcgaXQgaW50 byB0d28gc2VkIGludm9jYXRpb25zIGlzIGEgd29ya2Fyb3VuZC4KKysgICAgc2VkIC1lICdzL15c XCQvLycgLWUgJy9eJC9kJyAtZSAnLzokL2QnIHwgc2VkIC1lICdzLyQvIDovJyA+PiAiJGRlcGZp bGUiCisrICBybSAtZiAiJHRtcGRlcGZpbGUiCisrICA7OworKworK2hwKQorKyAgIyBUaGlzIGNh c2UgZXhpc3RzIG9ubHkgdG8gbGV0IGRlcGVuZC5tNCBkbyBpdHMgd29yay4gIEl0IHdvcmtzIGJ5 CisrICAjIGxvb2tpbmcgYXQgdGhlIHRleHQgb2YgdGhpcyBzY3JpcHQuICBUaGlzIGNhc2Ugd2ls bCBuZXZlciBiZSBydW4sCisrICAjIHNpbmNlIGl0IGlzIGNoZWNrZWQgZm9yIGFib3ZlLgorKyAg ZXhpdCAxCisrICA7OworKworK3NnaSkKKysgIGlmIHRlc3QgIiRsaWJ0b29sIiA9IHllczsgdGhl bgorKyAgICAiJEAiICItV3AsLU1EdXBkYXRlLCR0bXBkZXBmaWxlIgorKyAgZWxzZQorKyAgICAi JEAiIC1NRHVwZGF0ZSAiJHRtcGRlcGZpbGUiCisrICBmaQorKyAgc3RhdD0kPworKyAgaWYgdGVz dCAkc3RhdCAtZXEgMDsgdGhlbiA6CisrICBlbHNlCisrICAgIHJtIC1mICIkdG1wZGVwZmlsZSIK KysgICAgZXhpdCAkc3RhdAorKyAgZmkKKysgIHJtIC1mICIkZGVwZmlsZSIKKysKKysgIGlmIHRl c3QgLWYgIiR0bXBkZXBmaWxlIjsgdGhlbiAgIyB5ZXMsIHRoZSBzb3VyY2VmaWxlIGRlcGVuZCBv biBvdGhlciBmaWxlcworKyAgICBlY2hvICIkb2JqZWN0IDogXFwiID4gIiRkZXBmaWxlIgorKwor KyAgICAjIENsaXAgb2ZmIHRoZSBpbml0aWFsIGVsZW1lbnQgKHRoZSBkZXBlbmRlbnQpLiAgRG9u J3QgdHJ5IHRvIGJlCisrICAgICMgY2xldmVyIGFuZCByZXBsYWNlIHRoaXMgd2l0aCBzZWQgY29k ZSwgYXMgSVJJWCBzZWQgd29uJ3QgaGFuZGxlCisrICAgICMgbGluZXMgd2l0aCBtb3JlIHRoYW4g YSBmaXhlZCBudW1iZXIgb2YgY2hhcmFjdGVycyAoNDA5NiBpbgorKyAgICAjIElSSVggNi4yIHNl ZCwgODE5MiBpbiBJUklYIDYuNSkuICBXZSBhbHNvIHJlbW92ZSBjb21tZW50IGxpbmVzOworKyAg ICAjIHRoZSBJUklYIGNjIGFkZHMgY29tbWVudHMgbGlrZSBgIzpmZWMnIHRvIHRoZSBlbmQgb2Yg dGhlCisrICAgICMgZGVwZW5kZW5jeSBsaW5lLgorKyAgICB0ciAnICcgJworKycgPCAiJHRtcGRl cGZpbGUiIFwKKysgICAgfCBzZWQgLWUgJ3MvXi4qXC5vOi8vJyAtZSAncy8jLiokLy8nIC1lICcv XiQvIGQnIHwgXAorKyAgICB0ciAnCisrJyAnICcgPj4gIiRkZXBmaWxlIgorKyAgICBlY2hvID4+ ICIkZGVwZmlsZSIKKysKKysgICAgIyBUaGUgc2Vjb25kIHBhc3MgZ2VuZXJhdGVzIGEgZHVtbXkg ZW50cnkgZm9yIGVhY2ggaGVhZGVyIGZpbGUuCisrICAgIHRyICcgJyAnCisrJyA8ICIkdG1wZGVw ZmlsZSIgXAorKyAgIHwgc2VkIC1lICdzL14uKlwubzovLycgLWUgJ3MvIy4qJC8vJyAtZSAnL14k LyBkJyAtZSAncy8kLzovJyBcCisrICAgPj4gIiRkZXBmaWxlIgorKyAgZWxzZQorKyAgICAjIFRo ZSBzb3VyY2VmaWxlIGRvZXMgbm90IGNvbnRhaW4gYW55IGRlcGVuZGVuY2llcywgc28ganVzdAor KyAgICAjIHN0b3JlIGEgZHVtbXkgY29tbWVudCBsaW5lLCB0byBhdm9pZCBlcnJvcnMgd2l0aCB0 aGUgTWFrZWZpbGUKKysgICAgIyAiaW5jbHVkZSBiYXNlbmFtZS5QbG8iIHNjaGVtZS4KKysgICAg ZWNobyAiI2R1bW15IiA+ICIkZGVwZmlsZSIKKysgIGZpCisrICBybSAtZiAiJHRtcGRlcGZpbGUi CisrICA7OworKworK2FpeCkKKysgICMgVGhlIEMgZm9yIEFJWCBDb21waWxlciB1c2VzIC1NIGFu ZCBvdXRwdXRzIHRoZSBkZXBlbmRlbmNpZXMKKysgICMgaW4gYSAudSBmaWxlLiAgSW4gb2xkZXIg dmVyc2lvbnMsIHRoaXMgZmlsZSBhbHdheXMgbGl2ZXMgaW4gdGhlCisrICAjIGN1cnJlbnQgZGly ZWN0b3J5LiAgQWxzbywgdGhlIEFJWCBjb21waWxlciBwdXRzIGAkb2JqZWN0OicgYXQgdGhlCisr ICAjIHN0YXJ0IG9mIGVhY2ggbGluZTsgJG9iamVjdCBkb2Vzbid0IGhhdmUgZGlyZWN0b3J5IGlu Zm9ybWF0aW9uLgorKyAgIyBWZXJzaW9uIDYgdXNlcyB0aGUgZGlyZWN0b3J5IGluIGJvdGggY2Fz ZXMuCisrICBkaXI9YGVjaG8gIiRvYmplY3QiIHwgc2VkIC1lICdzfC9bXi9dKiR8L3wnYAorKyAg dGVzdCAieCRkaXIiID0gIngkb2JqZWN0IiAmJiBkaXI9CisrICBiYXNlPWBlY2hvICIkb2JqZWN0 IiB8IHNlZCAtZSAnc3xeLiovfHwnIC1lICdzL1wubyQvLycgLWUgJ3MvXC5sbyQvLydgCisrICBp ZiB0ZXN0ICIkbGlidG9vbCIgPSB5ZXM7IHRoZW4KKysgICAgdG1wZGVwZmlsZTE9JGRpciRiYXNl LnUKKysgICAgdG1wZGVwZmlsZTI9JGJhc2UudQorKyAgICB0bXBkZXBmaWxlMz0kZGlyLmxpYnMv JGJhc2UudQorKyAgICAiJEAiIC1XYywtTQorKyAgZWxzZQorKyAgICB0bXBkZXBmaWxlMT0kZGly JGJhc2UudQorKyAgICB0bXBkZXBmaWxlMj0kZGlyJGJhc2UudQorKyAgICB0bXBkZXBmaWxlMz0k ZGlyJGJhc2UudQorKyAgICAiJEAiIC1NCisrICBmaQorKyAgc3RhdD0kPworKworKyAgaWYgdGVz dCAkc3RhdCAtZXEgMDsgdGhlbiA6CisrICBlbHNlCisrICAgIHJtIC1mICIkdG1wZGVwZmlsZTEi ICIkdG1wZGVwZmlsZTIiICIkdG1wZGVwZmlsZTMiCisrICAgIGV4aXQgJHN0YXQKKysgIGZpCisr CisrICBmb3IgdG1wZGVwZmlsZSBpbiAiJHRtcGRlcGZpbGUxIiAiJHRtcGRlcGZpbGUyIiAiJHRt cGRlcGZpbGUzIgorKyAgZG8KKysgICAgdGVzdCAtZiAiJHRtcGRlcGZpbGUiICYmIGJyZWFrCisr ICBkb25lCisrICBpZiB0ZXN0IC1mICIkdG1wZGVwZmlsZSI7IHRoZW4KKysgICAgIyBFYWNoIGxp bmUgaXMgb2YgdGhlIGZvcm0gYGZvby5vOiBkZXBlbmRlbnQuaCcuCisrICAgICMgRG8gdHdvIHBh c3Nlcywgb25lIHRvIGp1c3QgY2hhbmdlIHRoZXNlIHRvCisrICAgICMgYCRvYmplY3Q6IGRlcGVu ZGVudC5oJyBhbmQgb25lIHRvIHNpbXBseSBgZGVwZW5kZW50Lmg6Jy4KKysgICAgc2VkIC1lICJz LF4uKlwuW2Etel0qOiwkb2JqZWN0OiwiIDwgIiR0bXBkZXBmaWxlIiA+ICIkZGVwZmlsZSIKKysg ICAgIyBUaGF0J3MgYSB0YWIgYW5kIGEgc3BhY2UgaW4gdGhlIFtdLgorKyAgICBzZWQgLWUgJ3Ms Xi4qXC5bYS16XSo6WwkgXSosLCcgLWUgJ3MsJCw6LCcgPCAiJHRtcGRlcGZpbGUiID4+ICIkZGVw ZmlsZSIKKysgIGVsc2UKKysgICAgIyBUaGUgc291cmNlZmlsZSBkb2VzIG5vdCBjb250YWluIGFu eSBkZXBlbmRlbmNpZXMsIHNvIGp1c3QKKysgICAgIyBzdG9yZSBhIGR1bW15IGNvbW1lbnQgbGlu ZSwgdG8gYXZvaWQgZXJyb3JzIHdpdGggdGhlIE1ha2VmaWxlCisrICAgICMgImluY2x1ZGUgYmFz ZW5hbWUuUGxvIiBzY2hlbWUuCisrICAgIGVjaG8gIiNkdW1teSIgPiAiJGRlcGZpbGUiCisrICBm aQorKyAgcm0gLWYgIiR0bXBkZXBmaWxlIgorKyAgOzsKKysKKytpY2MpCisrICAjIEludGVsJ3Mg QyBjb21waWxlciB1bmRlcnN0YW5kcyBgLU1EIC1NRiBmaWxlJy4gIEhvd2V2ZXIgb24KKysgICMg ICAgaWNjIC1NRCAtTUYgZm9vLmQgLWMgLW8gc3ViL2Zvby5vIHN1Yi9mb28uYworKyAgIyBJQ0Mg Ny4wIHdpbGwgZmlsbCBmb28uZCB3aXRoIHNvbWV0aGluZyBsaWtlCisrICAjICAgIGZvby5vOiBz dWIvZm9vLmMKKysgICMgICAgZm9vLm86IHN1Yi9mb28uaAorKyAgIyB3aGljaCBpcyB3cm9uZy4g IFdlIHdhbnQ6CisrICAjICAgIHN1Yi9mb28ubzogc3ViL2Zvby5jCisrICAjICAgIHN1Yi9mb28u bzogc3ViL2Zvby5oCisrICAjICAgIHN1Yi9mb28uYzoKKysgICMgICAgc3ViL2Zvby5oOgorKyAg IyBJQ0MgNy4xIHdpbGwgb3V0cHV0CisrICAjICAgIGZvby5vOiBzdWIvZm9vLmMgc3ViL2Zvby5o CisrICAjIGFuZCB3aWxsIHdyYXAgbG9uZyBsaW5lcyB1c2luZyBcIDoKKysgICMgICAgZm9vLm86 IHN1Yi9mb28uYyAuLi4gXAorKyAgIyAgICAgc3ViL2Zvby5oIC4uLiBcCisrICAjICAgICAuLi4K KysKKysgICIkQCIgLU1EIC1NRiAiJHRtcGRlcGZpbGUiCisrICBzdGF0PSQ/CisrICBpZiB0ZXN0 ICRzdGF0IC1lcSAwOyB0aGVuIDoKKysgIGVsc2UKKysgICAgcm0gLWYgIiR0bXBkZXBmaWxlIgor KyAgICBleGl0ICRzdGF0CisrICBmaQorKyAgcm0gLWYgIiRkZXBmaWxlIgorKyAgIyBFYWNoIGxp bmUgaXMgb2YgdGhlIGZvcm0gYGZvby5vOiBkZXBlbmRlbnQuaCcsCisrICAjIG9yIGBmb28ubzog ZGVwMS5oIGRlcDIuaCBcJywgb3IgYCBkZXAzLmggZGVwNC5oIFwnLgorKyAgIyBEbyB0d28gcGFz c2VzLCBvbmUgdG8ganVzdCBjaGFuZ2UgdGhlc2UgdG8KKysgICMgYCRvYmplY3Q6IGRlcGVuZGVu dC5oJyBhbmQgb25lIHRvIHNpbXBseSBgZGVwZW5kZW50Lmg6Jy4KKysgIHNlZCAicyxeW146XSo6 LCRvYmplY3QgOiwiIDwgIiR0bXBkZXBmaWxlIiA+ICIkZGVwZmlsZSIKKysgICMgU29tZSB2ZXJz aW9ucyBvZiB0aGUgSFBVWCAxMC4yMCBzZWQgY2FuJ3QgcHJvY2VzcyB0aGlzIGludm9jYXRpb24K KysgICMgY29ycmVjdGx5LiAgQnJlYWtpbmcgaXQgaW50byB0d28gc2VkIGludm9jYXRpb25zIGlz IGEgd29ya2Fyb3VuZC4KKysgIHNlZCAncyxeW146XSo6IFwoLipcKSQsXDEsO3MvXlxcJC8vOy9e JC9kOy86JC9kJyA8ICIkdG1wZGVwZmlsZSIgfAorKyAgICBzZWQgLWUgJ3MvJC8gOi8nID4+ICIk ZGVwZmlsZSIKKysgIHJtIC1mICIkdG1wZGVwZmlsZSIKKysgIDs7CisrCisraHAyKQorKyAgIyBU aGUgImhwIiBzdGFuemEgYWJvdmUgZG9lcyBub3Qgd29yayB3aXRoIGFDQyAoQysrKSBhbmQgSFAn cyBpYTY0CisrICAjIGNvbXBpbGVycywgd2hpY2ggaGF2ZSBpbnRlZ3JhdGVkIHByZXByb2Nlc3Nv cnMuICBUaGUgY29ycmVjdCBvcHRpb24KKysgICMgdG8gdXNlIHdpdGggdGhlc2UgaXMgK01ha2Vk OyBpdCB3cml0ZXMgZGVwZW5kZW5jaWVzIHRvIGEgZmlsZSBuYW1lZAorKyAgIyAnZm9vLmQnLCB3 aGljaCBsYW5kcyBuZXh0IHRvIHRoZSBvYmplY3QgZmlsZSwgd2hlcmV2ZXIgdGhhdAorKyAgIyBo YXBwZW5zIHRvIGJlLgorKyAgIyBNdWNoIG9mIHRoaXMgaXMgc2ltaWxhciB0byB0aGUgdHJ1NjQg Y2FzZTsgc2VlIGNvbW1lbnRzIHRoZXJlLgorKyAgZGlyPWBlY2hvICIkb2JqZWN0IiB8IHNlZCAt ZSAnc3wvW14vXSokfC98J2AKKysgIHRlc3QgIngkZGlyIiA9ICJ4JG9iamVjdCIgJiYgZGlyPQor KyAgYmFzZT1gZWNobyAiJG9iamVjdCIgfCBzZWQgLWUgJ3N8Xi4qL3x8JyAtZSAncy9cLm8kLy8n IC1lICdzL1wubG8kLy8nYAorKyAgaWYgdGVzdCAiJGxpYnRvb2wiID0geWVzOyB0aGVuCisrICAg IHRtcGRlcGZpbGUxPSRkaXIkYmFzZS5kCisrICAgIHRtcGRlcGZpbGUyPSRkaXIubGlicy8kYmFz ZS5kCisrICAgICIkQCIgLVdjLCtNYWtlZAorKyAgZWxzZQorKyAgICB0bXBkZXBmaWxlMT0kZGly JGJhc2UuZAorKyAgICB0bXBkZXBmaWxlMj0kZGlyJGJhc2UuZAorKyAgICAiJEAiICtNYWtlZAor KyAgZmkKKysgIHN0YXQ9JD8KKysgIGlmIHRlc3QgJHN0YXQgLWVxIDA7IHRoZW4gOgorKyAgZWxz ZQorKyAgICAgcm0gLWYgIiR0bXBkZXBmaWxlMSIgIiR0bXBkZXBmaWxlMiIKKysgICAgIGV4aXQg JHN0YXQKKysgIGZpCisrCisrICBmb3IgdG1wZGVwZmlsZSBpbiAiJHRtcGRlcGZpbGUxIiAiJHRt cGRlcGZpbGUyIgorKyAgZG8KKysgICAgdGVzdCAtZiAiJHRtcGRlcGZpbGUiICYmIGJyZWFrCisr ICBkb25lCisrICBpZiB0ZXN0IC1mICIkdG1wZGVwZmlsZSI7IHRoZW4KKysgICAgc2VkIC1lICJz LF4uKlwuW2Etel0qOiwkb2JqZWN0OiwiICIkdG1wZGVwZmlsZSIgPiAiJGRlcGZpbGUiCisrICAg ICMgQWRkIGBkZXBlbmRlbnQuaDonIGxpbmVzLgorKyAgICBzZWQgLW5lICcyLCR7CisrCSAgICAg ICBzL14gKi8vCisrCSAgICAgICBzLyBcXCokLy8KKysJICAgICAgIHMvJC86LworKwkgICAgICAg cAorKwkgICAgIH0nICIkdG1wZGVwZmlsZSIgPj4gIiRkZXBmaWxlIgorKyAgZWxzZQorKyAgICBl Y2hvICIjZHVtbXkiID4gIiRkZXBmaWxlIgorKyAgZmkKKysgIHJtIC1mICIkdG1wZGVwZmlsZSIg IiR0bXBkZXBmaWxlMiIKKysgIDs7CisrCisrdHJ1NjQpCisrICAgIyBUaGUgVHJ1NjQgY29tcGls ZXIgdXNlcyAtTUQgdG8gZ2VuZXJhdGUgZGVwZW5kZW5jaWVzIGFzIGEgc2lkZQorKyAgICMgZWZm ZWN0LiAgYGNjIC1NRCAtbyBmb28ubyAuLi4nIHB1dHMgdGhlIGRlcGVuZGVuY2llcyBpbnRvIGBm b28uby5kJy4KKysgICAjIEF0IGxlYXN0IG9uIEFscGhhL1JlZGhhdCA2LjEsIENvbXBhcSBDQ0Mg VjYuMi01MDQgc2VlbXMgdG8gcHV0CisrICAgIyBkZXBlbmRlbmNpZXMgaW4gYGZvby5kJyBpbnN0 ZWFkLCBzbyB3ZSBjaGVjayBmb3IgdGhhdCB0b28uCisrICAgIyBTdWJkaXJlY3RvcmllcyBhcmUg cmVzcGVjdGVkLgorKyAgIGRpcj1gZWNobyAiJG9iamVjdCIgfCBzZWQgLWUgJ3N8L1teL10qJHwv fCdgCisrICAgdGVzdCAieCRkaXIiID0gIngkb2JqZWN0IiAmJiBkaXI9CisrICAgYmFzZT1gZWNo byAiJG9iamVjdCIgfCBzZWQgLWUgJ3N8Xi4qL3x8JyAtZSAncy9cLm8kLy8nIC1lICdzL1wubG8k Ly8nYAorKworKyAgIGlmIHRlc3QgIiRsaWJ0b29sIiA9IHllczsgdGhlbgorKyAgICAgICMgV2l0 aCBUcnU2NCBjYywgc2hhcmVkIG9iamVjdHMgY2FuIGFsc28gYmUgdXNlZCB0byBtYWtlIGEKKysg ICAgICAjIHN0YXRpYyBsaWJyYXJ5LiAgVGhpcyBtZWNoYW5pc20gaXMgdXNlZCBpbiBsaWJ0b29s IDEuNCBzZXJpZXMgdG8KKysgICAgICAjIGhhbmRsZSBib3RoIHNoYXJlZCBhbmQgc3RhdGljIGxp YnJhcmllcyBpbiBhIHNpbmdsZSBjb21waWxhdGlvbi4KKysgICAgICAjIFdpdGggbGlidG9vbCAx LjQsIGRlcGVuZGVuY2llcyB3ZXJlIG91dHB1dCBpbiAkZGlyLmxpYnMvJGJhc2UubG8uZC4KKysg ICAgICAjCisrICAgICAgIyBXaXRoIGxpYnRvb2wgMS41IHRoaXMgZXhjZXB0aW9uIHdhcyByZW1v dmVkLCBhbmQgbGlidG9vbCBub3cKKysgICAgICAjIGdlbmVyYXRlcyAyIHNlcGFyYXRlIG9iamVj dHMgZm9yIHRoZSAyIGxpYnJhcmllcy4gIFRoZXNlIHR3bworKyAgICAgICMgY29tcGlsYXRpb25z IG91dHB1dCBkZXBlbmRlbmNpZXMgaW4gJGRpci5saWJzLyRiYXNlLm8uZCBhbmQKKysgICAgICAj IGluICRkaXIkYmFzZS5vLmQuICBXZSBoYXZlIHRvIGNoZWNrIGZvciBib3RoIGZpbGVzLCBiZWNh dXNlCisrICAgICAgIyBvbmUgb2YgdGhlIHR3byBjb21waWxhdGlvbnMgY2FuIGJlIGRpc2FibGVk LiAgV2Ugc2hvdWxkIHByZWZlcgorKyAgICAgICMgJGRpciRiYXNlLm8uZCBvdmVyICRkaXIubGli cy8kYmFzZS5vLmQgYmVjYXVzZSB0aGUgbGF0dGVyIGlzCisrICAgICAgIyBhdXRvbWF0aWNhbGx5 IGNsZWFuZWQgd2hlbiAubGlicy8gaXMgZGVsZXRlZCwgd2hpbGUgaWdub3JpbmcKKysgICAgICAj IHRoZSBmb3JtZXIgd291bGQgY2F1c2UgYSBkaXN0Y2xlYW5jaGVjayBwYW5pYy4KKysgICAgICB0 bXBkZXBmaWxlMT0kZGlyLmxpYnMvJGJhc2UubG8uZCAgICMgbGlidG9vbCAxLjQKKysgICAgICB0 bXBkZXBmaWxlMj0kZGlyJGJhc2Uuby5kICAgICAgICAgICMgbGlidG9vbCAxLjUKKysgICAgICB0 bXBkZXBmaWxlMz0kZGlyLmxpYnMvJGJhc2Uuby5kICAgICMgbGlidG9vbCAxLjUKKysgICAgICB0 bXBkZXBmaWxlND0kZGlyLmxpYnMvJGJhc2UuZCAgICAgICMgQ29tcGFxIENDQyBWNi4yLTUwNAor KyAgICAgICIkQCIgLVdjLC1NRAorKyAgIGVsc2UKKysgICAgICB0bXBkZXBmaWxlMT0kZGlyJGJh c2Uuby5kCisrICAgICAgdG1wZGVwZmlsZTI9JGRpciRiYXNlLmQKKysgICAgICB0bXBkZXBmaWxl Mz0kZGlyJGJhc2UuZAorKyAgICAgIHRtcGRlcGZpbGU0PSRkaXIkYmFzZS5kCisrICAgICAgIiRA IiAtTUQKKysgICBmaQorKworKyAgIHN0YXQ9JD8KKysgICBpZiB0ZXN0ICRzdGF0IC1lcSAwOyB0 aGVuIDoKKysgICBlbHNlCisrICAgICAgcm0gLWYgIiR0bXBkZXBmaWxlMSIgIiR0bXBkZXBmaWxl MiIgIiR0bXBkZXBmaWxlMyIgIiR0bXBkZXBmaWxlNCIKKysgICAgICBleGl0ICRzdGF0CisrICAg ZmkKKysKKysgICBmb3IgdG1wZGVwZmlsZSBpbiAiJHRtcGRlcGZpbGUxIiAiJHRtcGRlcGZpbGUy IiAiJHRtcGRlcGZpbGUzIiAiJHRtcGRlcGZpbGU0IgorKyAgIGRvCisrICAgICB0ZXN0IC1mICIk dG1wZGVwZmlsZSIgJiYgYnJlYWsKKysgICBkb25lCisrICAgaWYgdGVzdCAtZiAiJHRtcGRlcGZp bGUiOyB0aGVuCisrICAgICAgc2VkIC1lICJzLF4uKlwuW2Etel0qOiwkb2JqZWN0OiwiIDwgIiR0 bXBkZXBmaWxlIiA+ICIkZGVwZmlsZSIKKysgICAgICAjIFRoYXQncyBhIHRhYiBhbmQgYSBzcGFj ZSBpbiB0aGUgW10uCisrICAgICAgc2VkIC1lICdzLF4uKlwuW2Etel0qOlsJIF0qLCwnIC1lICdz LCQsOiwnIDwgIiR0bXBkZXBmaWxlIiA+PiAiJGRlcGZpbGUiCisrICAgZWxzZQorKyAgICAgIGVj aG8gIiNkdW1teSIgPiAiJGRlcGZpbGUiCisrICAgZmkKKysgICBybSAtZiAiJHRtcGRlcGZpbGUi CisrICAgOzsKKysKKysjbm9zaWRlZWZmZWN0KQorKyAgIyBUaGlzIGNvbW1lbnQgYWJvdmUgaXMg dXNlZCBieSBhdXRvbWFrZSB0byB0ZWxsIHNpZGUtZWZmZWN0CisrICAjIGRlcGVuZGVuY3kgdHJh Y2tpbmcgbWVjaGFuaXNtcyBmcm9tIHNsb3dlciBvbmVzLgorKworK2Rhc2htc3Rkb3V0KQorKyAg IyBJbXBvcnRhbnQgbm90ZTogaW4gb3JkZXIgdG8gc3VwcG9ydCB0aGlzIG1vZGUsIGEgY29tcGls ZXIgKm11c3QqCisrICAjIGFsd2F5cyB3cml0ZSB0aGUgcHJlcHJvY2Vzc2VkIGZpbGUgdG8gc3Rk b3V0LCByZWdhcmRsZXNzIG9mIC1vLgorKyAgIiRAIiB8fCBleGl0ICQ/CisrCisrICAjIFJlbW92 ZSB0aGUgY2FsbCB0byBMaWJ0b29sLgorKyAgaWYgdGVzdCAiJGxpYnRvb2wiID0geWVzOyB0aGVu CisrICAgIHdoaWxlIHRlc3QgIlgkMSIgIT0gJ1gtLW1vZGU9Y29tcGlsZSc7IGRvCisrICAgICAg c2hpZnQKKysgICAgZG9uZQorKyAgICBzaGlmdAorKyAgZmkKKysKKysgICMgUmVtb3ZlIGAtbyAk b2JqZWN0Jy4KKysgIElGUz0iICIKKysgIGZvciBhcmcKKysgIGRvCisrICAgIGNhc2UgJGFyZyBp bgorKyAgICAtbykKKysgICAgICBzaGlmdAorKyAgICAgIDs7CisrICAgICRvYmplY3QpCisrICAg ICAgc2hpZnQKKysgICAgICA7OworKyAgICAqKQorKyAgICAgIHNldCBmbm9yZCAiJEAiICIkYXJn IgorKyAgICAgIHNoaWZ0ICMgZm5vcmQKKysgICAgICBzaGlmdCAjICRhcmcKKysgICAgICA7Owor KyAgICBlc2FjCisrICBkb25lCisrCisrICB0ZXN0IC16ICIkZGFzaG1mbGFnIiAmJiBkYXNobWZs YWc9LU0KKysgICMgUmVxdWlyZSBhdCBsZWFzdCB0d28gY2hhcmFjdGVycyBiZWZvcmUgc2VhcmNo aW5nIGZvciBgOicKKysgICMgaW4gdGhlIHRhcmdldCBuYW1lLiAgVGhpcyBpcyB0byBjb3BlIHdp dGggRE9TLXN0eWxlIGZpbGVuYW1lczoKKysgICMgYSBkZXBlbmRlbmN5IHN1Y2ggYXMgYGM6L2Zv by9iYXInIGNvdWxkIGJlIHNlZW4gYXMgdGFyZ2V0IGBjJyBvdGhlcndpc2UuCisrICAiJEAiICRk YXNobWZsYWcgfAorKyAgICBzZWQgJ3M6XlsgIF0qW146IF1bXjpdW146XSpcOlsgICAgXSo6JyIk b2JqZWN0IidcOiA6JyA+ICIkdG1wZGVwZmlsZSIKKysgIHJtIC1mICIkZGVwZmlsZSIKKysgIGNh dCA8ICIkdG1wZGVwZmlsZSIgPiAiJGRlcGZpbGUiCisrICB0ciAnICcgJworKycgPCAiJHRtcGRl cGZpbGUiIHwgXAorKyMjIFNvbWUgdmVyc2lvbnMgb2YgdGhlIEhQVVggMTAuMjAgc2VkIGNhbid0 IHByb2Nlc3MgdGhpcyBpbnZvY2F0aW9uCisrIyMgY29ycmVjdGx5LiAgQnJlYWtpbmcgaXQgaW50 byB0d28gc2VkIGludm9jYXRpb25zIGlzIGEgd29ya2Fyb3VuZC4KKysgICAgc2VkIC1lICdzL15c XCQvLycgLWUgJy9eJC9kJyAtZSAnLzokL2QnIHwgc2VkIC1lICdzLyQvIDovJyA+PiAiJGRlcGZp bGUiCisrICBybSAtZiAiJHRtcGRlcGZpbGUiCisrICA7OworKworK2Rhc2hYbXN0ZG91dCkKKysg ICMgVGhpcyBjYXNlIG9ubHkgZXhpc3RzIHRvIHNhdGlzZnkgZGVwZW5kLm00LiAgSXQgaXMgbmV2 ZXIgYWN0dWFsbHkKKysgICMgcnVuLCBhcyB0aGlzIG1vZGUgaXMgc3BlY2lhbGx5IHJlY29nbml6 ZWQgaW4gdGhlIHByZWFtYmxlLgorKyAgZXhpdCAxCisrICA7OworKworK21ha2VkZXBlbmQpCisr ICAiJEAiIHx8IGV4aXQgJD8KKysgICMgUmVtb3ZlIGFueSBMaWJ0b29sIGNhbGwKKysgIGlmIHRl c3QgIiRsaWJ0b29sIiA9IHllczsgdGhlbgorKyAgICB3aGlsZSB0ZXN0ICJYJDEiICE9ICdYLS1t b2RlPWNvbXBpbGUnOyBkbworKyAgICAgIHNoaWZ0CisrICAgIGRvbmUKKysgICAgc2hpZnQKKysg IGZpCisrICAjIFggbWFrZWRlcGVuZAorKyAgc2hpZnQKKysgIGNsZWFyZWQ9bm8gZWF0PW5vCisr ICBmb3IgYXJnCisrICBkbworKyAgICBjYXNlICRjbGVhcmVkIGluCisrICAgIG5vKQorKyAgICAg IHNldCAiIjsgc2hpZnQKKysgICAgICBjbGVhcmVkPXllcyA7OworKyAgICBlc2FjCisrICAgIGlm IHRlc3QgJGVhdCA9IHllczsgdGhlbgorKyAgICAgIGVhdD1ubworKyAgICAgIGNvbnRpbnVlCisr ICAgIGZpCisrICAgIGNhc2UgIiRhcmciIGluCisrICAgIC1EKnwtSSopCisrICAgICAgc2V0IGZu b3JkICIkQCIgIiRhcmciOyBzaGlmdCA7OworKyAgICAjIFN0cmlwIGFueSBvcHRpb24gdGhhdCBt YWtlZGVwZW5kIG1heSBub3QgdW5kZXJzdGFuZC4gIFJlbW92ZQorKyAgICAjIHRoZSBvYmplY3Qg dG9vLCBvdGhlcndpc2UgbWFrZWRlcGVuZCB3aWxsIHBhcnNlIGl0IGFzIGEgc291cmNlIGZpbGUu CisrICAgIC1hcmNoKQorKyAgICAgIGVhdD15ZXMgOzsKKysgICAgLSp8JG9iamVjdCkKKysgICAg ICA7OworKyAgICAqKQorKyAgICAgIHNldCBmbm9yZCAiJEAiICIkYXJnIjsgc2hpZnQgOzsKKysg ICAgZXNhYworKyAgZG9uZQorKyAgb2JqX3N1ZmZpeD1gZWNobyAiJG9iamVjdCIgfCBzZWQgJ3Mv Xi4qXC4vLi8nYAorKyAgdG91Y2ggIiR0bXBkZXBmaWxlIgorKyAgJHtNQUtFREVQRU5ELW1ha2Vk ZXBlbmR9IC1vIiRvYmpfc3VmZml4IiAtZiIkdG1wZGVwZmlsZSIgIiRAIgorKyAgcm0gLWYgIiRk ZXBmaWxlIgorKyAgY2F0IDwgIiR0bXBkZXBmaWxlIiA+ICIkZGVwZmlsZSIKKysgIHNlZCAnMSwy ZCcgIiR0bXBkZXBmaWxlIiB8IHRyICcgJyAnCisrJyB8IFwKKysjIyBTb21lIHZlcnNpb25zIG9m IHRoZSBIUFVYIDEwLjIwIHNlZCBjYW4ndCBwcm9jZXNzIHRoaXMgaW52b2NhdGlvbgorKyMjIGNv cnJlY3RseS4gIEJyZWFraW5nIGl0IGludG8gdHdvIHNlZCBpbnZvY2F0aW9ucyBpcyBhIHdvcmth cm91bmQuCisrICAgIHNlZCAtZSAncy9eXFwkLy8nIC1lICcvXiQvZCcgLWUgJy86JC9kJyB8IHNl ZCAtZSAncy8kLyA6LycgPj4gIiRkZXBmaWxlIgorKyAgcm0gLWYgIiR0bXBkZXBmaWxlIiAiJHRt cGRlcGZpbGUiLmJhaworKyAgOzsKKysKKytjcHApCisrICAjIEltcG9ydGFudCBub3RlOiBpbiBv cmRlciB0byBzdXBwb3J0IHRoaXMgbW9kZSwgYSBjb21waWxlciAqbXVzdCoKKysgICMgYWx3YXlz IHdyaXRlIHRoZSBwcmVwcm9jZXNzZWQgZmlsZSB0byBzdGRvdXQuCisrICAiJEAiIHx8IGV4aXQg JD8KKysKKysgICMgUmVtb3ZlIHRoZSBjYWxsIHRvIExpYnRvb2wuCisrICBpZiB0ZXN0ICIkbGli dG9vbCIgPSB5ZXM7IHRoZW4KKysgICAgd2hpbGUgdGVzdCAiWCQxIiAhPSAnWC0tbW9kZT1jb21w aWxlJzsgZG8KKysgICAgICBzaGlmdAorKyAgICBkb25lCisrICAgIHNoaWZ0CisrICBmaQorKwor KyAgIyBSZW1vdmUgYC1vICRvYmplY3QnLgorKyAgSUZTPSIgIgorKyAgZm9yIGFyZworKyAgZG8K KysgICAgY2FzZSAkYXJnIGluCisrICAgIC1vKQorKyAgICAgIHNoaWZ0CisrICAgICAgOzsKKysg ICAgJG9iamVjdCkKKysgICAgICBzaGlmdAorKyAgICAgIDs7CisrICAgICopCisrICAgICAgc2V0 IGZub3JkICIkQCIgIiRhcmciCisrICAgICAgc2hpZnQgIyBmbm9yZAorKyAgICAgIHNoaWZ0ICMg JGFyZworKyAgICAgIDs7CisrICAgIGVzYWMKKysgIGRvbmUKKysKKysgICIkQCIgLUUgfAorKyAg ICBzZWQgLW4gLWUgJy9eIyBbMC05XVswLTldKiAiXChbXiJdKlwpIi4qLyBzOjogXDEgXFw6cCcg XAorKyAgICAgICAtZSAnL14jbGluZSBbMC05XVswLTldKiAiXChbXiJdKlwpIi4qLyBzOjogXDEg XFw6cCcgfAorKyAgICBzZWQgJyQgczogXFwkOjonID4gIiR0bXBkZXBmaWxlIgorKyAgcm0gLWYg IiRkZXBmaWxlIgorKyAgZWNobyAiJG9iamVjdCA6IFxcIiA+ICIkZGVwZmlsZSIKKysgIGNhdCA8 ICIkdG1wZGVwZmlsZSIgPj4gIiRkZXBmaWxlIgorKyAgc2VkIDwgIiR0bXBkZXBmaWxlIiAnL14k L2Q7cy9eIC8vO3MvIFxcJC8vO3MvJC8gOi8nID4+ICIkZGVwZmlsZSIKKysgIHJtIC1mICIkdG1w ZGVwZmlsZSIKKysgIDs7CisrCisrbXN2aXN1YWxjcHApCisrICAjIEltcG9ydGFudCBub3RlOiBp biBvcmRlciB0byBzdXBwb3J0IHRoaXMgbW9kZSwgYSBjb21waWxlciAqbXVzdCoKKysgICMgYWx3 YXlzIHdyaXRlIHRoZSBwcmVwcm9jZXNzZWQgZmlsZSB0byBzdGRvdXQuCisrICAiJEAiIHx8IGV4 aXQgJD8KKysKKysgICMgUmVtb3ZlIHRoZSBjYWxsIHRvIExpYnRvb2wuCisrICBpZiB0ZXN0ICIk bGlidG9vbCIgPSB5ZXM7IHRoZW4KKysgICAgd2hpbGUgdGVzdCAiWCQxIiAhPSAnWC0tbW9kZT1j b21waWxlJzsgZG8KKysgICAgICBzaGlmdAorKyAgICBkb25lCisrICAgIHNoaWZ0CisrICBmaQor KworKyAgSUZTPSIgIgorKyAgZm9yIGFyZworKyAgZG8KKysgICAgY2FzZSAiJGFyZyIgaW4KKysg ICAgLW8pCisrICAgICAgc2hpZnQKKysgICAgICA7OworKyAgICAkb2JqZWN0KQorKyAgICAgIHNo aWZ0CisrICAgICAgOzsKKysgICAgIi1HbSJ8Ii9HbSJ8Ii1HaSJ8Ii9HaSJ8Ii1aSSJ8Ii9aSSIp CisrCXNldCBmbm9yZCAiJEAiCisrCXNoaWZ0CisrCXNoaWZ0CisrCTs7CisrICAgICopCisrCXNl dCBmbm9yZCAiJEAiICIkYXJnIgorKwlzaGlmdAorKwlzaGlmdAorKwk7OworKyAgICBlc2FjCisr ICBkb25lCisrICAiJEAiIC1FIDI+L2Rldi9udWxsIHwKKysgIHNlZCAtbiAnL14jbGluZSBbMC05 XVswLTldKiAiXChbXiJdKlwpIi8gczo6XDE6cCcgfCAkY3lncGF0aF91IHwgc29ydCAtdSA+ICIk dG1wZGVwZmlsZSIKKysgIHJtIC1mICIkZGVwZmlsZSIKKysgIGVjaG8gIiRvYmplY3QgOiBcXCIg PiAiJGRlcGZpbGUiCisrICBzZWQgPCAiJHRtcGRlcGZpbGUiIC1uIC1lICdzJSAlXFwgJWcnIC1l ICcvXlwoLipcKSQvIHM6OglcMSBcXDpwJyA+PiAiJGRlcGZpbGUiCisrICBlY2hvICIJIiA+PiAi JGRlcGZpbGUiCisrICBzZWQgPCAiJHRtcGRlcGZpbGUiIC1uIC1lICdzJSAlXFwgJWcnIC1lICcv XlwoLipcKSQvIHM6OlwxXDo6cCcgPj4gIiRkZXBmaWxlIgorKyAgcm0gLWYgIiR0bXBkZXBmaWxl IgorKyAgOzsKKysKKyttc3ZjbXN5cykKKysgICMgVGhpcyBjYXNlIGV4aXN0cyBvbmx5IHRvIGxl dCBkZXBlbmQubTQgZG8gaXRzIHdvcmsuICBJdCB3b3JrcyBieQorKyAgIyBsb29raW5nIGF0IHRo ZSB0ZXh0IG9mIHRoaXMgc2NyaXB0LiAgVGhpcyBjYXNlIHdpbGwgbmV2ZXIgYmUgcnVuLAorKyAg IyBzaW5jZSBpdCBpcyBjaGVja2VkIGZvciBhYm92ZS4KKysgIGV4aXQgMQorKyAgOzsKKysKKytu b25lKQorKyAgZXhlYyAiJEAiCisrICA7OworKworKyopCisrICBlY2hvICJVbmtub3duIGRlcG1v ZGUgJGRlcG1vZGUiIDE+JjIKKysgIGV4aXQgMQorKyAgOzsKKytlc2FjCisrCisrZXhpdCAwCisr CisrIyBMb2NhbCBWYXJpYWJsZXM6CisrIyBtb2RlOiBzaGVsbC1zY3JpcHQKKysjIHNoLWluZGVu dGF0aW9uOiAyCisrIyBldmFsOiAoYWRkLWhvb2sgJ3dyaXRlLWZpbGUtaG9va3MgJ3RpbWUtc3Rh bXApCisrIyB0aW1lLXN0YW1wLXN0YXJ0OiAic2NyaXB0dmVyc2lvbj0iCisrIyB0aW1lLXN0YW1w LWZvcm1hdDogIiU6eS0lMDJtLSUwMmQuJTAySCIKKysjIHRpbWUtc3RhbXAtdGltZS16b25lOiAi VVRDIgorKyMgdGltZS1zdGFtcC1lbmQ6ICI7ICMgVVRDIgorKyMgRW5kOgorZGlmZiAtTnVyIHNv Y2ktMy4wLjBfNC1wYWNrL2NvbmZpZy9pbnN0YWxsLXNoIHNvY2ktMy4wLjBfdHJlcDMwMC9jb25m aWcvaW5zdGFsbC1zaAorLS0tIHNvY2ktMy4wLjBfNC1wYWNrL2NvbmZpZy9pbnN0YWxsLXNoCTE5 NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCisrKysgc29jaS0zLjAuMF90cmVwMzAw L2NvbmZpZy9pbnN0YWxsLXNoCTIwMTAtMDEtMjMgMTQ6NDQ6NTAuMDAwMDAwMDAwICswMTAwCitA QCAtMCwwICsxLDUyMCBAQAorKyMhL2Jpbi9zaAorKyMgaW5zdGFsbCAtIGluc3RhbGwgYSBwcm9n cmFtLCBzY3JpcHQsIG9yIGRhdGFmaWxlCisrCisrc2NyaXB0dmVyc2lvbj0yMDA5LTA0LTI4LjIx OyAjIFVUQworKworKyMgVGhpcyBvcmlnaW5hdGVzIGZyb20gWDExUjUgKG1pdC91dGlsL3Njcmlw dHMvaW5zdGFsbC5zaCksIHdoaWNoIHdhcworKyMgbGF0ZXIgcmVsZWFzZWQgaW4gWDExUjYgKHhj L2NvbmZpZy91dGlsL2luc3RhbGwuc2gpIHdpdGggdGhlCisrIyBmb2xsb3dpbmcgY29weXJpZ2h0 IGFuZCBsaWNlbnNlLgorKyMKKysjIENvcHlyaWdodCAoQykgMTk5NCBYIENvbnNvcnRpdW0KKysj CisrIyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55 IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5CisrIyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lh dGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwgdG8KKysjIGRlYWwgaW4g dGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0 YXRpb24gdGhlCisrIyByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNo LCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3IKKysjIHNlbGwgY29waWVzIG9mIHRoZSBT b2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzCisr IyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25z OgorKyMKKysjIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24g bm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluCisrIyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFs IHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4KKysjCisrIyBUSEUgU09GVFdBUkUgSVMgUFJPVklE RUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgorKyMg SU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBN RVJDSEFOVEFCSUxJVFksCisrIyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQg Tk9OSU5GUklOR0VNRU5ULiAgSU4gTk8gRVZFTlQgU0hBTEwgVEhFCisrIyBYIENPTlNPUlRJVU0g QkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZLCBXSEVU SEVSIElOCisrIyBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklT SU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUMtCisrIyBUSU9OIFdJVEggVEhFIFNPRlRXQVJF IE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLgorKyMKKysjIEV4 Y2VwdCBhcyBjb250YWluZWQgaW4gdGhpcyBub3RpY2UsIHRoZSBuYW1lIG9mIHRoZSBYIENvbnNv cnRpdW0gc2hhbGwgbm90CisrIyBiZSB1c2VkIGluIGFkdmVydGlzaW5nIG9yIG90aGVyd2lzZSB0 byBwcm9tb3RlIHRoZSBzYWxlLCB1c2Ugb3Igb3RoZXIgZGVhbC0KKysjIGluZ3MgaW4gdGhpcyBT b2Z0d2FyZSB3aXRob3V0IHByaW9yIHdyaXR0ZW4gYXV0aG9yaXphdGlvbiBmcm9tIHRoZSBYIENv bnNvci0KKysjIHRpdW0uCisrIworKyMKKysjIEZTRiBjaGFuZ2VzIHRvIHRoaXMgZmlsZSBhcmUg aW4gdGhlIHB1YmxpYyBkb21haW4uCisrIworKyMgQ2FsbGluZyB0aGlzIHNjcmlwdCBpbnN0YWxs LXNoIGlzIHByZWZlcnJlZCBvdmVyIGluc3RhbGwuc2gsIHRvIHByZXZlbnQKKysjIGBtYWtlJyBp bXBsaWNpdCBydWxlcyBmcm9tIGNyZWF0aW5nIGEgZmlsZSBjYWxsZWQgaW5zdGFsbCBmcm9tIGl0 CisrIyB3aGVuIHRoZXJlIGlzIG5vIE1ha2VmaWxlLgorKyMKKysjIFRoaXMgc2NyaXB0IGlzIGNv bXBhdGlibGUgd2l0aCB0aGUgQlNEIGluc3RhbGwgc2NyaXB0LCBidXQgd2FzIHdyaXR0ZW4KKysj IGZyb20gc2NyYXRjaC4KKysKKytubD0nCisrJworK0lGUz0iICIiCSRubCIKKysKKysjIHNldCBE T0lUUFJPRyB0byBlY2hvIHRvIHRlc3QgdGhpcyBzY3JpcHQKKysKKysjIERvbid0IHVzZSA6LSBz aW5jZSA0LjNCU0QgYW5kIGVhcmxpZXIgc2hlbGxzIGRvbid0IGxpa2UgaXQuCisrZG9pdD0ke0RP SVRQUk9HLX0KKytpZiB0ZXN0IC16ICIkZG9pdCI7IHRoZW4KKysgIGRvaXRfZXhlYz1leGVjCisr ZWxzZQorKyAgZG9pdF9leGVjPSRkb2l0CisrZmkKKysKKysjIFB1dCBpbiBhYnNvbHV0ZSBmaWxl IG5hbWVzIGlmIHlvdSBkb24ndCBoYXZlIHRoZW0gaW4geW91ciBwYXRoOworKyMgb3IgdXNlIGVu dmlyb25tZW50IHZhcnMuCisrCisrY2hncnBwcm9nPSR7Q0hHUlBQUk9HLWNoZ3JwfQorK2NobW9k cHJvZz0ke0NITU9EUFJPRy1jaG1vZH0KKytjaG93bnByb2c9JHtDSE9XTlBST0ctY2hvd259Cisr Y21wcHJvZz0ke0NNUFBST0ctY21wfQorK2NwcHJvZz0ke0NQUFJPRy1jcH0KKytta2RpcnByb2c9 JHtNS0RJUlBST0ctbWtkaXJ9CisrbXZwcm9nPSR7TVZQUk9HLW12fQorK3JtcHJvZz0ke1JNUFJP Ry1ybX0KKytzdHJpcHByb2c9JHtTVFJJUFBST0ctc3RyaXB9CisrCisrcG9zaXhfZ2xvYj0nPycK Kytpbml0aWFsaXplX3Bvc2l4X2dsb2I9JworKyAgdGVzdCAiJHBvc2l4X2dsb2IiICE9ICI/IiB8 fCB7CisrICAgIGlmIChzZXQgLWYpIDI+L2Rldi9udWxsOyB0aGVuCisrICAgICAgcG9zaXhfZ2xv Yj0KKysgICAgZWxzZQorKyAgICAgIHBvc2l4X2dsb2I9OgorKyAgICBmaQorKyAgfQorKycKKysK Kytwb3NpeF9ta2Rpcj0KKysKKysjIERlc2lyZWQgbW9kZSBvZiBpbnN0YWxsZWQgZmlsZS4KKytt b2RlPTA3NTUKKysKKytjaGdycGNtZD0KKytjaG1vZGNtZD0kY2htb2Rwcm9nCisrY2hvd25jbWQ9 CisrbXZjbWQ9JG12cHJvZworK3JtY21kPSIkcm1wcm9nIC1mIgorK3N0cmlwY21kPQorKworK3Ny Yz0KKytkc3Q9CisrZGlyX2FyZz0KKytkc3RfYXJnPQorKworK2NvcHlfb25fY2hhbmdlPWZhbHNl Cisrbm9fdGFyZ2V0X2RpcmVjdG9yeT0KKysKKyt1c2FnZT0iXAorK1VzYWdlOiAkMCBbT1BUSU9O XS4uLiBbLVRdIFNSQ0ZJTEUgRFNURklMRQorKyAgIG9yOiAkMCBbT1BUSU9OXS4uLiBTUkNGSUxF Uy4uLiBESVJFQ1RPUlkKKysgICBvcjogJDAgW09QVElPTl0uLi4gLXQgRElSRUNUT1JZIFNSQ0ZJ TEVTLi4uCisrICAgb3I6ICQwIFtPUFRJT05dLi4uIC1kIERJUkVDVE9SSUVTLi4uCisrCisrSW4g dGhlIDFzdCBmb3JtLCBjb3B5IFNSQ0ZJTEUgdG8gRFNURklMRS4KKytJbiB0aGUgMm5kIGFuZCAz cmQsIGNvcHkgYWxsIFNSQ0ZJTEVTIHRvIERJUkVDVE9SWS4KKytJbiB0aGUgNHRoLCBjcmVhdGUg RElSRUNUT1JJRVMuCisrCisrT3B0aW9uczoKKysgICAgIC0taGVscCAgICAgZGlzcGxheSB0aGlz IGhlbHAgYW5kIGV4aXQuCisrICAgICAtLXZlcnNpb24gIGRpc3BsYXkgdmVyc2lvbiBpbmZvIGFu ZCBleGl0LgorKworKyAgLWMgICAgICAgICAgICAoaWdub3JlZCkKKysgIC1DICAgICAgICAgICAg aW5zdGFsbCBvbmx5IGlmIGRpZmZlcmVudCAocHJlc2VydmUgdGhlIGxhc3QgZGF0YSBtb2RpZmlj YXRpb24gdGltZSkKKysgIC1kICAgICAgICAgICAgY3JlYXRlIGRpcmVjdG9yaWVzIGluc3RlYWQg b2YgaW5zdGFsbGluZyBmaWxlcy4KKysgIC1nIEdST1VQICAgICAgJGNoZ3JwcHJvZyBpbnN0YWxs ZWQgZmlsZXMgdG8gR1JPVVAuCisrICAtbSBNT0RFICAgICAgICRjaG1vZHByb2cgaW5zdGFsbGVk IGZpbGVzIHRvIE1PREUuCisrICAtbyBVU0VSICAgICAgICRjaG93bnByb2cgaW5zdGFsbGVkIGZp bGVzIHRvIFVTRVIuCisrICAtcyAgICAgICAgICAgICRzdHJpcHByb2cgaW5zdGFsbGVkIGZpbGVz LgorKyAgLXQgRElSRUNUT1JZICBpbnN0YWxsIGludG8gRElSRUNUT1JZLgorKyAgLVQgICAgICAg ICAgICByZXBvcnQgYW4gZXJyb3IgaWYgRFNURklMRSBpcyBhIGRpcmVjdG9yeS4KKysKKytFbnZp cm9ubWVudCB2YXJpYWJsZXMgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgY29tbWFuZHM6CisrICBDSEdS UFBST0cgQ0hNT0RQUk9HIENIT1dOUFJPRyBDTVBQUk9HIENQUFJPRyBNS0RJUlBST0cgTVZQUk9H CisrICBSTVBST0cgU1RSSVBQUk9HCisrIgorKworK3doaWxlIHRlc3QgJCMgLW5lIDA7IGRvCisr ICBjYXNlICQxIGluCisrICAgIC1jKSA7OworKworKyAgICAtQykgY29weV9vbl9jaGFuZ2U9dHJ1 ZTs7CisrCisrICAgIC1kKSBkaXJfYXJnPXRydWU7OworKworKyAgICAtZykgY2hncnBjbWQ9IiRj aGdycHByb2cgJDIiCisrCXNoaWZ0OzsKKysKKysgICAgLS1oZWxwKSBlY2hvICIkdXNhZ2UiOyBl eGl0ICQ/OzsKKysKKysgICAgLW0pIG1vZGU9JDIKKysJY2FzZSAkbW9kZSBpbgorKwkgIConICcq IHwgKicJJyogfCAqJworKycqCSAgfCAqJyonKiB8IConPycqIHwgKidbJyopCisrCSAgICBlY2hv ICIkMDogaW52YWxpZCBtb2RlOiAkbW9kZSIgPiYyCisrCSAgICBleGl0IDE7OworKwllc2FjCisr CXNoaWZ0OzsKKysKKysgICAgLW8pIGNob3duY21kPSIkY2hvd25wcm9nICQyIgorKwlzaGlmdDs7 CisrCisrICAgIC1zKSBzdHJpcGNtZD0kc3RyaXBwcm9nOzsKKysKKysgICAgLXQpIGRzdF9hcmc9 JDIKKysJc2hpZnQ7OworKworKyAgICAtVCkgbm9fdGFyZ2V0X2RpcmVjdG9yeT10cnVlOzsKKysK KysgICAgLS12ZXJzaW9uKSBlY2hvICIkMCAkc2NyaXB0dmVyc2lvbiI7IGV4aXQgJD87OworKwor KyAgICAtLSkJc2hpZnQKKysJYnJlYWs7OworKworKyAgICAtKikJZWNobyAiJDA6IGludmFsaWQg b3B0aW9uOiAkMSIgPiYyCisrCWV4aXQgMTs7CisrCisrICAgICopICBicmVhazs7CisrICBlc2Fj CisrICBzaGlmdAorK2RvbmUKKysKKytpZiB0ZXN0ICQjIC1uZSAwICYmIHRlc3QgLXogIiRkaXJf YXJnJGRzdF9hcmciOyB0aGVuCisrICAjIFdoZW4gLWQgaXMgdXNlZCwgYWxsIHJlbWFpbmluZyBh cmd1bWVudHMgYXJlIGRpcmVjdG9yaWVzIHRvIGNyZWF0ZS4KKysgICMgV2hlbiAtdCBpcyB1c2Vk LCB0aGUgZGVzdGluYXRpb24gaXMgYWxyZWFkeSBzcGVjaWZpZWQuCisrICAjIE90aGVyd2lzZSwg dGhlIGxhc3QgYXJndW1lbnQgaXMgdGhlIGRlc3RpbmF0aW9uLiAgUmVtb3ZlIGl0IGZyb20gJEAu CisrICBmb3IgYXJnCisrICBkbworKyAgICBpZiB0ZXN0IC1uICIkZHN0X2FyZyI7IHRoZW4KKysg ICAgICAjICRAIGlzIG5vdCBlbXB0eTogaXQgY29udGFpbnMgYXQgbGVhc3QgJGFyZy4KKysgICAg ICBzZXQgZm5vcmQgIiRAIiAiJGRzdF9hcmciCisrICAgICAgc2hpZnQgIyBmbm9yZAorKyAgICBm aQorKyAgICBzaGlmdCAjIGFyZworKyAgICBkc3RfYXJnPSRhcmcKKysgIGRvbmUKKytmaQorKwor K2lmIHRlc3QgJCMgLWVxIDA7IHRoZW4KKysgIGlmIHRlc3QgLXogIiRkaXJfYXJnIjsgdGhlbgor KyAgICBlY2hvICIkMDogbm8gaW5wdXQgZmlsZSBzcGVjaWZpZWQuIiA+JjIKKysgICAgZXhpdCAx CisrICBmaQorKyAgIyBJdCdzIE9LIHRvIGNhbGwgYGluc3RhbGwtc2ggLWQnIHdpdGhvdXQgYXJn dW1lbnQuCisrICAjIFRoaXMgY2FuIGhhcHBlbiB3aGVuIGNyZWF0aW5nIGNvbmRpdGlvbmFsIGRp cmVjdG9yaWVzLgorKyAgZXhpdCAwCisrZmkKKysKKytpZiB0ZXN0IC16ICIkZGlyX2FyZyI7IHRo ZW4KKysgIHRyYXAgJyhleGl0ICQ/KTsgZXhpdCcgMSAyIDEzIDE1CisrCisrICAjIFNldCB1bWFz ayBzbyBhcyBub3QgdG8gY3JlYXRlIHRlbXBzIHdpdGggdG9vLWdlbmVyb3VzIG1vZGVzLgorKyAg IyBIb3dldmVyLCAnc3RyaXAnIHJlcXVpcmVzIGJvdGggcmVhZCBhbmQgd3JpdGUgYWNjZXNzIHRv IHRlbXBzLgorKyAgY2FzZSAkbW9kZSBpbgorKyAgICAjIE9wdGltaXplIGNvbW1vbiBjYXNlcy4K KysgICAgKjY0NCkgY3BfdW1hc2s9MTMzOzsKKysgICAgKjc1NSkgY3BfdW1hc2s9MjI7OworKwor KyAgICAqWzAtN10pCisrICAgICAgaWYgdGVzdCAteiAiJHN0cmlwY21kIjsgdGhlbgorKwl1X3Bs dXNfcnc9CisrICAgICAgZWxzZQorKwl1X3BsdXNfcnc9JyUgMjAwJworKyAgICAgIGZpCisrICAg ICAgY3BfdW1hc2s9YGV4cHIgJygnIDc3NyAtICRtb2RlICUgMTAwMCAnKScgJHVfcGx1c19yd2A7 OworKyAgICAqKQorKyAgICAgIGlmIHRlc3QgLXogIiRzdHJpcGNtZCI7IHRoZW4KKysJdV9wbHVz X3J3PQorKyAgICAgIGVsc2UKKysJdV9wbHVzX3J3PSx1K3J3CisrICAgICAgZmkKKysgICAgICBj cF91bWFzaz0kbW9kZSR1X3BsdXNfcnc7OworKyAgZXNhYworK2ZpCisrCisrZm9yIHNyYworK2Rv CisrICAjIFByb3RlY3QgbmFtZXMgc3RhcnRpbmcgd2l0aCBgLScuCisrICBjYXNlICRzcmMgaW4K KysgICAgLSopIHNyYz0uLyRzcmM7OworKyAgZXNhYworKworKyAgaWYgdGVzdCAtbiAiJGRpcl9h cmciOyB0aGVuCisrICAgIGRzdD0kc3JjCisrICAgIGRzdGRpcj0kZHN0CisrICAgIHRlc3QgLWQg IiRkc3RkaXIiCisrICAgIGRzdGRpcl9zdGF0dXM9JD8KKysgIGVsc2UKKysKKysgICAgIyBXYWl0 aW5nIGZvciB0aGlzIHRvIGJlIGRldGVjdGVkIGJ5IHRoZSAiJGNwcHJvZyAkc3JjICRkc3R0bXAi IGNvbW1hbmQKKysgICAgIyBtaWdodCBjYXVzZSBkaXJlY3RvcmllcyB0byBiZSBjcmVhdGVkLCB3 aGljaCB3b3VsZCBiZSBlc3BlY2lhbGx5IGJhZAorKyAgICAjIGlmICRzcmMgKGFuZCB0aHVzICRk c3R0bXApIGNvbnRhaW5zICcqJy4KKysgICAgaWYgdGVzdCAhIC1mICIkc3JjIiAmJiB0ZXN0ICEg LWQgIiRzcmMiOyB0aGVuCisrICAgICAgZWNobyAiJDA6ICRzcmMgZG9lcyBub3QgZXhpc3QuIiA+ JjIKKysgICAgICBleGl0IDEKKysgICAgZmkKKysKKysgICAgaWYgdGVzdCAteiAiJGRzdF9hcmci OyB0aGVuCisrICAgICAgZWNobyAiJDA6IG5vIGRlc3RpbmF0aW9uIHNwZWNpZmllZC4iID4mMgor KyAgICAgIGV4aXQgMQorKyAgICBmaQorKworKyAgICBkc3Q9JGRzdF9hcmcKKysgICAgIyBQcm90 ZWN0IG5hbWVzIHN0YXJ0aW5nIHdpdGggYC0nLgorKyAgICBjYXNlICRkc3QgaW4KKysgICAgICAt KikgZHN0PS4vJGRzdDs7CisrICAgIGVzYWMKKysKKysgICAgIyBJZiBkZXN0aW5hdGlvbiBpcyBh IGRpcmVjdG9yeSwgYXBwZW5kIHRoZSBpbnB1dCBmaWxlbmFtZTsgd29uJ3Qgd29yaworKyAgICAj IGlmIGRvdWJsZSBzbGFzaGVzIGFyZW4ndCBpZ25vcmVkLgorKyAgICBpZiB0ZXN0IC1kICIkZHN0 IjsgdGhlbgorKyAgICAgIGlmIHRlc3QgLW4gIiRub190YXJnZXRfZGlyZWN0b3J5IjsgdGhlbgor KwllY2hvICIkMDogJGRzdF9hcmc6IElzIGEgZGlyZWN0b3J5IiA+JjIKKysJZXhpdCAxCisrICAg ICAgZmkKKysgICAgICBkc3RkaXI9JGRzdAorKyAgICAgIGRzdD0kZHN0ZGlyL2BiYXNlbmFtZSAi JHNyYyJgCisrICAgICAgZHN0ZGlyX3N0YXR1cz0wCisrICAgIGVsc2UKKysgICAgICAjIFByZWZl ciBkaXJuYW1lLCBidXQgZmFsbCBiYWNrIG9uIGEgc3Vic3RpdHV0ZSBpZiBkaXJuYW1lIGZhaWxz LgorKyAgICAgIGRzdGRpcj1gCisrCShkaXJuYW1lICIkZHN0IikgMj4vZGV2L251bGwgfHwKKysJ ZXhwciBYIiRkc3QiIDogJ1hcKC4qW14vXVwpLy8qW14vXVteL10qLyokJyBcfCBcCisrCSAgICAg WCIkZHN0IiA6ICdYXCgvL1wpW14vXScgXHwgXAorKwkgICAgIFgiJGRzdCIgOiAnWFwoLy9cKSQn IFx8IFwKKysJICAgICBYIiRkc3QiIDogJ1hcKC9cKScgXHwgLiAyPi9kZXYvbnVsbCB8fAorKwll Y2hvIFgiJGRzdCIgfAorKwkgICAgc2VkICcvXlhcKC4qW14vXVwpXC9cLypbXi9dW14vXSpcLyok L3sKKysJCSAgIHMvL1wxLworKwkJICAgcQorKwkJIH0KKysJCSAvXlhcKFwvXC9cKVteL10uKi97 CisrCQkgICBzLy9cMS8KKysJCSAgIHEKKysJCSB9CisrCQkgL15YXChcL1wvXCkkL3sKKysJCSAg IHMvL1wxLworKwkJICAgcQorKwkJIH0KKysJCSAvXlhcKFwvXCkuKi97CisrCQkgICBzLy9cMS8K KysJCSAgIHEKKysJCSB9CisrCQkgcy8uKi8uLzsgcScKKysgICAgICBgCisrCisrICAgICAgdGVz dCAtZCAiJGRzdGRpciIKKysgICAgICBkc3RkaXJfc3RhdHVzPSQ/CisrICAgIGZpCisrICBmaQor KworKyAgb2Jzb2xldGVfbWtkaXJfdXNlZD1mYWxzZQorKworKyAgaWYgdGVzdCAkZHN0ZGlyX3N0 YXR1cyAhPSAwOyB0aGVuCisrICAgIGNhc2UgJHBvc2l4X21rZGlyIGluCisrICAgICAgJycpCisr CSMgQ3JlYXRlIGludGVybWVkaWF0ZSBkaXJzIHVzaW5nIG1vZGUgNzU1IGFzIG1vZGlmaWVkIGJ5 IHRoZSB1bWFzay4KKysJIyBUaGlzIGlzIGxpa2UgRnJlZUJTRCAnaW5zdGFsbCcgYXMgb2YgMTk5 Ny0xMC0yOC4KKysJdW1hc2s9YHVtYXNrYAorKwljYXNlICRzdHJpcGNtZC4kdW1hc2sgaW4KKysJ ICAjIE9wdGltaXplIGNvbW1vbiBjYXNlcy4KKysJICAqWzIzNjddWzIzNjddKSBta2Rpcl91bWFz az0kdW1hc2s7OworKwkgIC4qMFswMl1bMDJdIHwgLlswMl1bMDJdIHwgLlswMl0pIG1rZGlyX3Vt YXNrPTIyOzsKKysKKysJICAqWzAtN10pCisrCSAgICBta2Rpcl91bWFzaz1gZXhwciAkdW1hc2sg KyAyMiBcCisrCSAgICAgIC0gJHVtYXNrICUgMTAwICUgNDAgKyAkdW1hc2sgJSAyMCBcCisrCSAg ICAgIC0gJHVtYXNrICUgMTAgJSA0ICsgJHVtYXNrICUgMgorKwkgICAgYDs7CisrCSAgKikgbWtk aXJfdW1hc2s9JHVtYXNrLGdvLXc7OworKwllc2FjCisrCisrCSMgV2l0aCAtZCwgY3JlYXRlIHRo ZSBuZXcgZGlyZWN0b3J5IHdpdGggdGhlIHVzZXItc3BlY2lmaWVkIG1vZGUuCisrCSMgT3RoZXJ3 aXNlLCByZWx5IG9uICRta2Rpcl91bWFzay4KKysJaWYgdGVzdCAtbiAiJGRpcl9hcmciOyB0aGVu CisrCSAgbWtkaXJfbW9kZT0tbSRtb2RlCisrCWVsc2UKKysJICBta2Rpcl9tb2RlPQorKwlmaQor KworKwlwb3NpeF9ta2Rpcj1mYWxzZQorKwljYXNlICR1bWFzayBpbgorKwkgICpbMTIzNTY3XVsw LTddWzAtN10pCisrCSAgICAjIFBPU0lYIG1rZGlyIC1wIHNldHMgdSt3eCBiaXRzIHJlZ2FyZGxl c3Mgb2YgdW1hc2ssIHdoaWNoCisrCSAgICAjIGlzIGluY29tcGF0aWJsZSB3aXRoIEZyZWVCU0Qg J2luc3RhbGwnIHdoZW4gKHVtYXNrICYgMzAwKSAhPSAwLgorKwkgICAgOzsKKysJICAqKQorKwkg ICAgdG1wZGlyPSR7VE1QRElSLS90bXB9L2lucyRSQU5ET00tJCQKKysJICAgIHRyYXAgJ3JldD0k Pzsgcm1kaXIgIiR0bXBkaXIvZCIgIiR0bXBkaXIiIDI+L2Rldi9udWxsOyBleGl0ICRyZXQnIDAK KysKKysJICAgIGlmICh1bWFzayAkbWtkaXJfdW1hc2sgJiYKKysJCWV4ZWMgJG1rZGlycHJvZyAk bWtkaXJfbW9kZSAtcCAtLSAiJHRtcGRpci9kIikgPi9kZXYvbnVsbCAyPiYxCisrCSAgICB0aGVu CisrCSAgICAgIGlmIHRlc3QgLXogIiRkaXJfYXJnIiB8fCB7CisrCQkgICAjIENoZWNrIGZvciBQ T1NJWCBpbmNvbXBhdGliaWxpdGllcyB3aXRoIC1tLgorKwkJICAgIyBIUC1VWCAxMS4yMyBhbmQg SVJJWCA2LjUgbWtkaXIgLW0gLXAgc2V0cyBncm91cC0gb3IKKysJCSAgICMgb3RoZXItd3JpdGVh YmxlIGJpdCBvZiBwYXJlbnQgZGlyZWN0b3J5IHdoZW4gaXQgc2hvdWxkbid0LgorKwkJICAgIyBG cmVlQlNEIDYuMSBta2RpciAtbSAtcCBzZXRzIG1vZGUgb2YgZXhpc3RpbmcgZGlyZWN0b3J5Lgor KwkJICAgbHNfbGRfdG1wZGlyPWBscyAtbGQgIiR0bXBkaXIiYAorKwkJICAgY2FzZSAkbHNfbGRf dG1wZGlyIGluCisrCQkgICAgIGQ/Pz8/LT9yLSopIGRpZmZlcmVudF9tb2RlPTcwMDs7CisrCQkg ICAgIGQ/Pz8/LT8tLSopIGRpZmZlcmVudF9tb2RlPTc1NTs7CisrCQkgICAgICopIGZhbHNlOzsK KysJCSAgIGVzYWMgJiYKKysJCSAgICRta2RpcnByb2cgLW0kZGlmZmVyZW50X21vZGUgLXAgLS0g IiR0bXBkaXIiICYmIHsKKysJCSAgICAgbHNfbGRfdG1wZGlyXzE9YGxzIC1sZCAiJHRtcGRpciJg CisrCQkgICAgIHRlc3QgIiRsc19sZF90bXBkaXIiID0gIiRsc19sZF90bXBkaXJfMSIKKysJCSAg IH0KKysJCSB9CisrCSAgICAgIHRoZW4gcG9zaXhfbWtkaXI9OgorKwkgICAgICBmaQorKwkgICAg ICBybWRpciAiJHRtcGRpci9kIiAiJHRtcGRpciIKKysJICAgIGVsc2UKKysJICAgICAgIyBSZW1v dmUgYW55IGRpcnMgbGVmdCBiZWhpbmQgYnkgYW5jaWVudCBta2RpciBpbXBsZW1lbnRhdGlvbnMu CisrCSAgICAgIHJtZGlyIC4vJG1rZGlyX21vZGUgLi8tcCAuLy0tIDI+L2Rldi9udWxsCisrCSAg ICBmaQorKwkgICAgdHJhcCAnJyAwOzsKKysJZXNhYzs7CisrICAgIGVzYWMKKysKKysgICAgaWYK KysgICAgICAkcG9zaXhfbWtkaXIgJiYgKAorKwl1bWFzayAkbWtkaXJfdW1hc2sgJiYKKysJJGRv aXRfZXhlYyAkbWtkaXJwcm9nICRta2Rpcl9tb2RlIC1wIC0tICIkZHN0ZGlyIgorKyAgICAgICkK KysgICAgdGhlbiA6CisrICAgIGVsc2UKKysKKysgICAgICAjIFRoZSB1bWFzayBpcyByaWRpY3Vs b3VzLCBvciBta2RpciBkb2VzIG5vdCBjb25mb3JtIHRvIFBPU0lYLAorKyAgICAgICMgb3IgaXQg ZmFpbGVkIHBvc3NpYmx5IGR1ZSB0byBhIHJhY2UgY29uZGl0aW9uLiAgQ3JlYXRlIHRoZQorKyAg ICAgICMgZGlyZWN0b3J5IHRoZSBzbG93IHdheSwgc3RlcCBieSBzdGVwLCBjaGVja2luZyBmb3Ig cmFjZXMgYXMgd2UgZ28uCisrCisrICAgICAgY2FzZSAkZHN0ZGlyIGluCisrCS8qKSBwcmVmaXg9 Jy8nOzsKKysJLSopIHByZWZpeD0nLi8nOzsKKysJKikgIHByZWZpeD0nJzs7CisrICAgICAgZXNh YworKworKyAgICAgIGV2YWwgIiRpbml0aWFsaXplX3Bvc2l4X2dsb2IiCisrCisrICAgICAgb0lG Uz0kSUZTCisrICAgICAgSUZTPS8KKysgICAgICAkcG9zaXhfZ2xvYiBzZXQgLWYKKysgICAgICBz ZXQgZm5vcmQgJGRzdGRpcgorKyAgICAgIHNoaWZ0CisrICAgICAgJHBvc2l4X2dsb2Igc2V0ICtm CisrICAgICAgSUZTPSRvSUZTCisrCisrICAgICAgcHJlZml4ZXM9CisrCisrICAgICAgZm9yIGQK KysgICAgICBkbworKwl0ZXN0IC16ICIkZCIgJiYgY29udGludWUKKysKKysJcHJlZml4PSRwcmVm aXgkZAorKwlpZiB0ZXN0IC1kICIkcHJlZml4IjsgdGhlbgorKwkgIHByZWZpeGVzPQorKwllbHNl CisrCSAgaWYgJHBvc2l4X21rZGlyOyB0aGVuCisrCSAgICAodW1hc2s9JG1rZGlyX3VtYXNrICYm CisrCSAgICAgJGRvaXRfZXhlYyAkbWtkaXJwcm9nICRta2Rpcl9tb2RlIC1wIC0tICIkZHN0ZGly IikgJiYgYnJlYWsKKysJICAgICMgRG9uJ3QgZmFpbCBpZiB0d28gaW5zdGFuY2VzIGFyZSBydW5u aW5nIGNvbmN1cnJlbnRseS4KKysJICAgIHRlc3QgLWQgIiRwcmVmaXgiIHx8IGV4aXQgMQorKwkg IGVsc2UKKysJICAgIGNhc2UgJHByZWZpeCBpbgorKwkgICAgICAqXCcqKSBxcHJlZml4PWBlY2hv ICIkcHJlZml4IiB8IHNlZCAicy8nLydcXFxcXFxcXCcnL2ciYDs7CisrCSAgICAgICopIHFwcmVm aXg9JHByZWZpeDs7CisrCSAgICBlc2FjCisrCSAgICBwcmVmaXhlcz0iJHByZWZpeGVzICckcXBy ZWZpeCciCisrCSAgZmkKKysJZmkKKysJcHJlZml4PSRwcmVmaXgvCisrICAgICAgZG9uZQorKwor KyAgICAgIGlmIHRlc3QgLW4gIiRwcmVmaXhlcyI7IHRoZW4KKysJIyBEb24ndCBmYWlsIGlmIHR3 byBpbnN0YW5jZXMgYXJlIHJ1bm5pbmcgY29uY3VycmVudGx5LgorKwkodW1hc2sgJG1rZGlyX3Vt YXNrICYmCisrCSBldmFsICJcJGRvaXRfZXhlYyBcJG1rZGlycHJvZyAkcHJlZml4ZXMiKSB8fAor KwkgIHRlc3QgLWQgIiRkc3RkaXIiIHx8IGV4aXQgMQorKwlvYnNvbGV0ZV9ta2Rpcl91c2VkPXRy dWUKKysgICAgICBmaQorKyAgICBmaQorKyAgZmkKKysKKysgIGlmIHRlc3QgLW4gIiRkaXJfYXJn IjsgdGhlbgorKyAgICB7IHRlc3QgLXogIiRjaG93bmNtZCIgfHwgJGRvaXQgJGNob3duY21kICIk ZHN0IjsgfSAmJgorKyAgICB7IHRlc3QgLXogIiRjaGdycGNtZCIgfHwgJGRvaXQgJGNoZ3JwY21k ICIkZHN0IjsgfSAmJgorKyAgICB7IHRlc3QgIiRvYnNvbGV0ZV9ta2Rpcl91c2VkJGNob3duY21k JGNoZ3JwY21kIiA9IGZhbHNlIHx8CisrICAgICAgdGVzdCAteiAiJGNobW9kY21kIiB8fCAkZG9p dCAkY2htb2RjbWQgJG1vZGUgIiRkc3QiOyB9IHx8IGV4aXQgMQorKyAgZWxzZQorKworKyAgICAj IE1ha2UgYSBjb3VwbGUgb2YgdGVtcCBmaWxlIG5hbWVzIGluIHRoZSBwcm9wZXIgZGlyZWN0b3J5 LgorKyAgICBkc3R0bXA9JGRzdGRpci9faW5zdC4kJF8KKysgICAgcm10bXA9JGRzdGRpci9fcm0u JCRfCisrCisrICAgICMgVHJhcCB0byBjbGVhbiB1cCB0aG9zZSB0ZW1wIGZpbGVzIGF0IGV4aXQu CisrICAgIHRyYXAgJ3JldD0kPzsgcm0gLWYgIiRkc3R0bXAiICIkcm10bXAiICYmIGV4aXQgJHJl dCcgMAorKworKyAgICAjIENvcHkgdGhlIGZpbGUgbmFtZSB0byB0aGUgdGVtcCBuYW1lLgorKyAg ICAodW1hc2sgJGNwX3VtYXNrICYmICRkb2l0X2V4ZWMgJGNwcHJvZyAiJHNyYyIgIiRkc3R0bXAi KSAmJgorKworKyAgICAjIGFuZCBzZXQgYW55IG9wdGlvbnM7IGRvIGNobW9kIGxhc3QgdG8gcHJl c2VydmUgc2V0dWlkIGJpdHMuCisrICAgICMKKysgICAgIyBJZiBhbnkgb2YgdGhlc2UgZmFpbCwg d2UgYWJvcnQgdGhlIHdob2xlIHRoaW5nLiAgSWYgd2Ugd2FudCB0bworKyAgICAjIGlnbm9yZSBl cnJvcnMgZnJvbSBhbnkgb2YgdGhlc2UsIGp1c3QgbWFrZSBzdXJlIG5vdCB0byBpZ25vcmUKKysg ICAgIyBlcnJvcnMgZnJvbSB0aGUgYWJvdmUgIiRkb2l0ICRjcHByb2cgJHNyYyAkZHN0dG1wIiBj b21tYW5kLgorKyAgICAjCisrICAgIHsgdGVzdCAteiAiJGNob3duY21kIiB8fCAkZG9pdCAkY2hv d25jbWQgIiRkc3R0bXAiOyB9ICYmCisrICAgIHsgdGVzdCAteiAiJGNoZ3JwY21kIiB8fCAkZG9p dCAkY2hncnBjbWQgIiRkc3R0bXAiOyB9ICYmCisrICAgIHsgdGVzdCAteiAiJHN0cmlwY21kIiB8 fCAkZG9pdCAkc3RyaXBjbWQgIiRkc3R0bXAiOyB9ICYmCisrICAgIHsgdGVzdCAteiAiJGNobW9k Y21kIiB8fCAkZG9pdCAkY2htb2RjbWQgJG1vZGUgIiRkc3R0bXAiOyB9ICYmCisrCisrICAgICMg SWYgLUMsIGRvbid0IGJvdGhlciB0byBjb3B5IGlmIGl0IHdvdWxkbid0IGNoYW5nZSB0aGUgZmls ZS4KKysgICAgaWYgJGNvcHlfb25fY2hhbmdlICYmCisrICAgICAgIG9sZD1gTENfQUxMPUMgbHMg LWRsTCAiJGRzdCIJMj4vZGV2L251bGxgICYmCisrICAgICAgIG5ldz1gTENfQUxMPUMgbHMgLWRs TCAiJGRzdHRtcCIJMj4vZGV2L251bGxgICYmCisrCisrICAgICAgIGV2YWwgIiRpbml0aWFsaXpl X3Bvc2l4X2dsb2IiICYmCisrICAgICAgICRwb3NpeF9nbG9iIHNldCAtZiAmJgorKyAgICAgICBz ZXQgWCAkb2xkICYmIG9sZD06JDI6JDQ6JDU6JDYgJiYKKysgICAgICAgc2V0IFggJG5ldyAmJiBu ZXc9OiQyOiQ0OiQ1OiQ2ICYmCisrICAgICAgICRwb3NpeF9nbG9iIHNldCArZiAmJgorKworKyAg ICAgICB0ZXN0ICIkb2xkIiA9ICIkbmV3IiAmJgorKyAgICAgICAkY21wcHJvZyAiJGRzdCIgIiRk c3R0bXAiID4vZGV2L251bGwgMj4mMQorKyAgICB0aGVuCisrICAgICAgcm0gLWYgIiRkc3R0bXAi CisrICAgIGVsc2UKKysgICAgICAjIFJlbmFtZSB0aGUgZmlsZSB0byB0aGUgcmVhbCBkZXN0aW5h dGlvbi4KKysgICAgICAkZG9pdCAkbXZjbWQgLWYgIiRkc3R0bXAiICIkZHN0IiAyPi9kZXYvbnVs bCB8fAorKworKyAgICAgICMgVGhlIHJlbmFtZSBmYWlsZWQsIHBlcmhhcHMgYmVjYXVzZSBtdiBj YW4ndCByZW5hbWUgc29tZXRoaW5nIGVsc2UKKysgICAgICAjIHRvIGl0c2VsZiwgb3IgcGVyaGFw cyBiZWNhdXNlIG12IGlzIHNvIGFuY2llbnQgdGhhdCBpdCBkb2VzIG5vdAorKyAgICAgICMgc3Vw cG9ydCAtZi4KKysgICAgICB7CisrCSMgTm93IHJlbW92ZSBvciBtb3ZlIGFzaWRlIGFueSBvbGQg ZmlsZSBhdCBkZXN0aW5hdGlvbiBsb2NhdGlvbi4KKysJIyBXZSB0cnkgdGhpcyB0d28gd2F5cyBz aW5jZSBybSBjYW4ndCB1bmxpbmsgaXRzZWxmIG9uIHNvbWUKKysJIyBzeXN0ZW1zIGFuZCB0aGUg ZGVzdGluYXRpb24gZmlsZSBtaWdodCBiZSBidXN5IGZvciBvdGhlcgorKwkjIHJlYXNvbnMuICBJ biB0aGlzIGNhc2UsIHRoZSBmaW5hbCBjbGVhbnVwIG1pZ2h0IGZhaWwgYnV0IHRoZSBuZXcKKysJ IyBmaWxlIHNob3VsZCBzdGlsbCBpbnN0YWxsIHN1Y2Nlc3NmdWxseS4KKysJeworKwkgIHRlc3Qg ISAtZiAiJGRzdCIgfHwKKysJICAkZG9pdCAkcm1jbWQgLWYgIiRkc3QiIDI+L2Rldi9udWxsIHx8 CisrCSAgeyAkZG9pdCAkbXZjbWQgLWYgIiRkc3QiICIkcm10bXAiIDI+L2Rldi9udWxsICYmCisr CSAgICB7ICRkb2l0ICRybWNtZCAtZiAiJHJtdG1wIiAyPi9kZXYvbnVsbDsgOjsgfQorKwkgIH0g fHwKKysJICB7IGVjaG8gIiQwOiBjYW5ub3QgdW5saW5rIG9yIHJlbmFtZSAkZHN0IiA+JjIKKysJ ICAgIChleGl0IDEpOyBleGl0IDEKKysJICB9CisrCX0gJiYKKysKKysJIyBOb3cgcmVuYW1lIHRo ZSBmaWxlIHRvIHRoZSByZWFsIGRlc3RpbmF0aW9uLgorKwkkZG9pdCAkbXZjbWQgIiRkc3R0bXAi ICIkZHN0IgorKyAgICAgIH0KKysgICAgZmkgfHwgZXhpdCAxCisrCisrICAgIHRyYXAgJycgMAor KyAgZmkKKytkb25lCisrCisrIyBMb2NhbCB2YXJpYWJsZXM6CisrIyBldmFsOiAoYWRkLWhvb2sg J3dyaXRlLWZpbGUtaG9va3MgJ3RpbWUtc3RhbXApCisrIyB0aW1lLXN0YW1wLXN0YXJ0OiAic2Ny aXB0dmVyc2lvbj0iCisrIyB0aW1lLXN0YW1wLWZvcm1hdDogIiU6eS0lMDJtLSUwMmQuJTAySCIK KysjIHRpbWUtc3RhbXAtdGltZS16b25lOiAiVVRDIgorKyMgdGltZS1zdGFtcC1lbmQ6ICI7ICMg VVRDIgorKyMgRW5kOgorZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL2NvbmZpZy9saWJ0b29s Lm00IHNvY2ktMy4wLjBfdHJlcDMwMC9jb25maWcvbGlidG9vbC5tNAorLS0tIHNvY2ktMy4wLjBf NC1wYWNrL2NvbmZpZy9saWJ0b29sLm00CTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICsw MTAwCisrKysgc29jaS0zLjAuMF90cmVwMzAwL2NvbmZpZy9saWJ0b29sLm00CTIwMTAtMDEtMjMg MTQ6NDQ6NDQuMDAwMDAwMDAwICswMTAwCitAQCAtMCwwICsxLDczNjAgQEAKKysjIGxpYnRvb2wu bTQgLSBDb25maWd1cmUgbGlidG9vbCBmb3IgdGhlIGhvc3Qgc3lzdGVtLiAtKi1BdXRvY29uZi0q LQorKyMKKysjICAgQ29weXJpZ2h0IChDKSAxOTk2LCAxOTk3LCAxOTk4LCAxOTk5LCAyMDAwLCAy MDAxLCAyMDAzLCAyMDA0LCAyMDA1LAorKyMgICAgICAgICAgICAgICAgIDIwMDYsIDIwMDcsIDIw MDggRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisrIyAgIFdyaXR0ZW4gYnkgR29yZG9u IE1hdHppZ2tlaXQsIDE5OTYKKysjCisrIyBUaGlzIGZpbGUgaXMgZnJlZSBzb2Z0d2FyZTsgdGhl IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiBnaXZlcworKyMgdW5saW1pdGVkIHBlcm1pc3Npb24g dG8gY29weSBhbmQvb3IgZGlzdHJpYnV0ZSBpdCwgd2l0aCBvciB3aXRob3V0CisrIyBtb2RpZmlj YXRpb25zLCBhcyBsb25nIGFzIHRoaXMgbm90aWNlIGlzIHByZXNlcnZlZC4KKysKKyttNF9kZWZp bmUoW19MVF9DT1BZSU5HXSwgW2RubAorKyMgICBDb3B5cmlnaHQgKEMpIDE5OTYsIDE5OTcsIDE5 OTgsIDE5OTksIDIwMDAsIDIwMDEsIDIwMDMsIDIwMDQsIDIwMDUsCisrIyAgICAgICAgICAgICAg ICAgMjAwNiwgMjAwNywgMjAwOCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKysjICAg V3JpdHRlbiBieSBHb3Jkb24gTWF0emlna2VpdCwgMTk5NgorKyMKKysjICAgVGhpcyBmaWxlIGlz IHBhcnQgb2YgR05VIExpYnRvb2wuCisrIworKyMgR05VIExpYnRvb2wgaXMgZnJlZSBzb2Z0d2Fy ZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisrIyBtb2RpZnkgaXQgdW5kZXIgdGhl IHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcworKyMgcHVibGlzaGVk IGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YKKysj IHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorKyMK KysjIEFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNl bnNlLAorKyMgaWYgeW91IGRpc3RyaWJ1dGUgdGhpcyBmaWxlIGFzIHBhcnQgb2YgYSBwcm9ncmFt IG9yIGxpYnJhcnkgdGhhdAorKyMgaXMgYnVpbHQgdXNpbmcgR05VIExpYnRvb2wsIHlvdSBtYXkg aW5jbHVkZSB0aGlzIGZpbGUgdW5kZXIgdGhlCisrIyBzYW1lIGRpc3RyaWJ1dGlvbiB0ZXJtcyB0 aGF0IHlvdSB1c2UgZm9yIHRoZSByZXN0IG9mIHRoYXQgcHJvZ3JhbS4KKysjCisrIyBHTlUgTGli dG9vbCBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAor KyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2Fy cmFudHkgb2YKKysjIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg UFVSUE9TRS4gIFNlZSB0aGUKKysjIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3Jl IGRldGFpbHMuCisrIworKyMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUg R05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKysjIGFsb25nIHdpdGggR05VIExpYnRvb2w7IHNl ZSB0aGUgZmlsZSBDT1BZSU5HLiAgSWYgbm90LCBhIGNvcHkKKysjIGNhbiBiZSBkb3dubG9hZGVk IGZyb20gaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC5odG1sLCBvcgorKyMgb2J0YWlu ZWQgYnkgd3JpdGluZyB0byB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLAorKyMg NTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBV U0EuCisrXSkKKysKKysjIHNlcmlhbCA1NiBMVF9JTklUCisrCisrCisrIyBMVF9QUkVSRVEoVkVS U0lPTikKKysjIC0tLS0tLS0tLS0tLS0tLS0tLQorKyMgQ29tcGxhaW4gYW5kIGV4aXQgaWYgdGhp cyBsaWJ0b29sIHZlcnNpb24gaXMgbGVzcyB0aGF0IFZFUlNJT04uCisrbTRfZGVmdW4oW0xUX1BS RVJFUV0sCisrW200X2lmKG00X3ZlcnNpb25fY29tcGFyZShtNF9kZWZuKFtMVF9QQUNLQUdFX1ZF UlNJT05dKSwgWyQxXSksIC0xLAorKyAgICAgICBbbTRfZGVmYXVsdChbJDNdLAorKwkJICAgW200 X2ZhdGFsKFtMaWJ0b29sIHZlcnNpb24gJDEgb3IgaGlnaGVyIGlzIHJlcXVpcmVkXSwKKysJCSAg ICAgICAgICAgICA2MyldKV0sCisrICAgICAgIFskMl0pXSkKKysKKysKKysjIF9MVF9DSEVDS19C VUlMRERJUgorKyMgLS0tLS0tLS0tLS0tLS0tLS0tCisrIyBDb21wbGFpbiBpZiB0aGUgYWJzb2x1 dGUgYnVpbGQgZGlyZWN0b3J5IG5hbWUgY29udGFpbnMgdW51c3VhbCBjaGFyYWN0ZXJzCisrbTRf ZGVmdW4oW19MVF9DSEVDS19CVUlMRERJUl0sCisrW2Nhc2UgYHB3ZGAgaW4KKysgICpcICogfCAq XAkqKQorKyAgICBBQ19NU0dfV0FSTihbTGlidG9vbCBkb2VzIG5vdCBjb3BlIHdlbGwgd2l0aCB3 aGl0ZXNwYWNlIGluIGBwd2RgXSkgOzsKKytlc2FjCisrXSkKKysKKysKKysjIExUX0lOSVQoW09Q VElPTlNdKQorKyMgLS0tLS0tLS0tLS0tLS0tLS0tCisrQUNfREVGVU4oW0xUX0lOSVRdLAorK1tB Q19QUkVSRVEoWzIuNThdKWRubCBXZSB1c2UgQUNfSU5DTFVERVNfREVGQVVMVAorK0FDX0JFRk9S RShbJDBdLCBbTFRfTEFOR10pZG5sCisrQUNfQkVGT1JFKFskMF0sIFtMVF9PVVRQVVRdKWRubAor K0FDX0JFRk9SRShbJDBdLCBbTFRETF9JTklUXSlkbmwKKyttNF9yZXF1aXJlKFtfTFRfQ0hFQ0tf QlVJTERESVJdKWRubAorKworK2RubCBBdXRvY29uZiBkb2Vzbid0IGNhdGNoIHVuZXhwYW5kZWQg TFRfIG1hY3JvcyBieSBkZWZhdWx0OgorK200X3BhdHRlcm5fZm9yYmlkKFteXz9MVF9bQS1aX10r JF0pZG5sCisrbTRfcGF0dGVybl9hbGxvdyhbXihfTFRfRU9GfExUX0RMR0xPQkFMfExUX0RMTEFa WV9PUl9OT1d8TFRfTVVMVElfTU9EVUxFKSRdKWRubAorK2RubCBhY2xvY2FsIGRvZXNuJ3QgcHVs bCBsdG9wdGlvbnMubTQsIGx0c3VnYXIubTQsIG9yIGx0dmVyc2lvbi5tNAorK2RubCB1bmxlc3Mg d2UgcmVxdWlyZSBhbiBBQ19ERUZVTmVkIG1hY3JvOgorK0FDX1JFUVVJUkUoW0xUT1BUSU9OU19W RVJTSU9OXSlkbmwKKytBQ19SRVFVSVJFKFtMVFNVR0FSX1ZFUlNJT05dKWRubAorK0FDX1JFUVVJ UkUoW0xUVkVSU0lPTl9WRVJTSU9OXSlkbmwKKytBQ19SRVFVSVJFKFtMVE9CU09MRVRFX1ZFUlNJ T05dKWRubAorK200X3JlcXVpcmUoW19MVF9QUk9HX0xUTUFJTl0pZG5sCisrCisrZG5sIFBhcnNl IE9QVElPTlMKKytfTFRfU0VUX09QVElPTlMoWyQwXSwgWyQxXSkKKysKKysjIFRoaXMgY2FuIGJl IHVzZWQgdG8gcmVidWlsZCBsaWJ0b29sIHdoZW4gbmVlZGVkCisrTElCVE9PTF9ERVBTPSIkbHRt YWluIgorKworKyMgQWx3YXlzIHVzZSBvdXIgb3duIGxpYnRvb2wuCisrTElCVE9PTD0nJChTSEVM TCkgJCh0b3BfYnVpbGRkaXIpL2xpYnRvb2wnCisrQUNfU1VCU1QoTElCVE9PTClkbmwKKysKKytf TFRfU0VUVVAKKysKKysjIE9ubHkgZXhwYW5kIG9uY2U6CisrbTRfZGVmaW5lKFtMVF9JTklUXSkK KytdKSMgTFRfSU5JVAorKworKyMgT2xkIG5hbWVzOgorK0FVX0FMSUFTKFtBQ19QUk9HX0xJQlRP T0xdLCBbTFRfSU5JVF0pCisrQVVfQUxJQVMoW0FNX1BST0dfTElCVE9PTF0sIFtMVF9JTklUXSkK KytkbmwgYWNsb2NhbC0xLjQgYmFja3dhcmRzIGNvbXBhdGliaWxpdHk6CisrZG5sIEFDX0RFRlVO KFtBQ19QUk9HX0xJQlRPT0xdLCBbXSkKKytkbmwgQUNfREVGVU4oW0FNX1BST0dfTElCVE9PTF0s IFtdKQorKworKworKyMgX0xUX0NDX0JBU0VOQU1FKENDKQorKyMgLS0tLS0tLS0tLS0tLS0tLS0t LQorKyMgQ2FsY3VsYXRlIGNjX2Jhc2VuYW1lLiAgU2tpcCBrbm93biBjb21waWxlciB3cmFwcGVy cyBhbmQgY3Jvc3MtcHJlZml4LgorK200X2RlZnVuKFtfTFRfQ0NfQkFTRU5BTUVdLAorK1tmb3Ig Y2NfdGVtcCBpbiAkMSIiOyBkbworKyAgY2FzZSAkY2NfdGVtcCBpbgorKyAgICBjb21waWxlIHwg KltbXFwvXV1jb21waWxlIHwgY2NhY2hlIHwgKltbXFwvXV1jY2FjaGUgKSA7OworKyAgICBkaXN0 Y2MgfCAqW1tcXC9dXWRpc3RjYyB8IHB1cmlmeSB8ICpbW1xcL11dcHVyaWZ5ICkgOzsKKysgICAg XC0qKSA7OworKyAgICAqKSBicmVhazs7CisrICBlc2FjCisrZG9uZQorK2NjX2Jhc2VuYW1lPWAk RUNITyAiWCRjY190ZW1wIiB8ICRYc2VkIC1lICdzJS4qLyUlJyAtZSAicyVeJGhvc3RfYWxpYXMt JSUiYAorK10pCisrCisrCisrIyBfTFRfRklMRVVUSUxTX0RFRkFVTFRTCisrIyAtLS0tLS0tLS0t LS0tLS0tLS0tLS0tCisrIyBJdCBpcyBva2F5IHRvIHVzZSB0aGVzZSBmaWxlIGNvbW1hbmRzIGFu ZCBhc3N1bWUgdGhleSBoYXZlIGJlZW4gc2V0CisrIyBzZW5zaWJseSBhZnRlciBgbTRfcmVxdWly ZShbX0xUX0ZJTEVVVElMU19ERUZBVUxUU10pJy4KKyttNF9kZWZ1bihbX0xUX0ZJTEVVVElMU19E RUZBVUxUU10sCisrWzogJHtDUD0iY3AgLWYifQorKzogJHtNVj0ibXYgLWYifQorKzogJHtSTT0i cm0gLWYifQorK10pIyBfTFRfRklMRVVUSUxTX0RFRkFVTFRTCisrCisrCisrIyBfTFRfU0VUVVAK KysjIC0tLS0tLS0tLQorK200X2RlZnVuKFtfTFRfU0VUVVBdLAorK1tBQ19SRVFVSVJFKFtBQ19D QU5PTklDQUxfSE9TVF0pZG5sCisrQUNfUkVRVUlSRShbQUNfQ0FOT05JQ0FMX0JVSUxEXSlkbmwK KytfTFRfREVDTChbXSwgW2hvc3RfYWxpYXNdLCBbMF0sIFtUaGUgaG9zdCBzeXN0ZW1dKWRubAor K19MVF9ERUNMKFtdLCBbaG9zdF0sIFswXSlkbmwKKytfTFRfREVDTChbXSwgW2hvc3Rfb3NdLCBb MF0pZG5sCisrZG5sCisrX0xUX0RFQ0woW10sIFtidWlsZF9hbGlhc10sIFswXSwgW1RoZSBidWls ZCBzeXN0ZW1dKWRubAorK19MVF9ERUNMKFtdLCBbYnVpbGRdLCBbMF0pZG5sCisrX0xUX0RFQ0wo W10sIFtidWlsZF9vc10sIFswXSlkbmwKKytkbmwKKytBQ19SRVFVSVJFKFtBQ19QUk9HX0NDXSlk bmwKKytBQ19SRVFVSVJFKFtMVF9QQVRIX0xEXSlkbmwKKytBQ19SRVFVSVJFKFtMVF9QQVRIX05N XSlkbmwKKytkbmwKKytBQ19SRVFVSVJFKFtBQ19QUk9HX0xOX1NdKWRubAorK3Rlc3QgLXogIiRM Tl9TIiAmJiBMTl9TPSJsbiAtcyIKKytfTFRfREVDTChbXSwgW0xOX1NdLCBbMV0sIFtXaGV0aGVy IHdlIG5lZWQgc29mdCBvciBoYXJkIGxpbmtzXSlkbmwKKytkbmwKKytBQ19SRVFVSVJFKFtMVF9D TURfTUFYX0xFTl0pZG5sCisrX0xUX0RFQ0woW29iamV4dF0sIFthY19vYmpleHRdLCBbMF0sIFtP YmplY3QgZmlsZSBzdWZmaXggKG5vcm1hbGx5ICJvIildKWRubAorK19MVF9ERUNMKFtdLCBbZXhl ZXh0XSwgWzBdLCBbRXhlY3V0YWJsZSBmaWxlIHN1ZmZpeCAobm9ybWFsbHkgIiIpXSlkbmwKKytk bmwKKyttNF9yZXF1aXJlKFtfTFRfRklMRVVUSUxTX0RFRkFVTFRTXSlkbmwKKyttNF9yZXF1aXJl KFtfTFRfQ0hFQ0tfU0hFTExfRkVBVFVSRVNdKWRubAorK200X3JlcXVpcmUoW19MVF9DTURfUkVM T0FEXSlkbmwKKyttNF9yZXF1aXJlKFtfTFRfQ0hFQ0tfTUFHSUNfTUVUSE9EXSlkbmwKKyttNF9y ZXF1aXJlKFtfTFRfQ01EX09MRF9BUkNISVZFXSlkbmwKKyttNF9yZXF1aXJlKFtfTFRfQ01EX0dM T0JBTF9TWU1CT0xTXSlkbmwKKysKKytfTFRfQ09ORklHX0xJQlRPT0xfSU5JVChbCisrIyBTZWUg aWYgd2UgYXJlIHJ1bm5pbmcgb24genNoLCBhbmQgc2V0IHRoZSBvcHRpb25zIHdoaWNoIGFsbG93 IG91cgorKyMgY29tbWFuZHMgdGhyb3VnaCB3aXRob3V0IHJlbW92YWwgb2YgXCBlc2NhcGVzIElO SVQuCisraWYgdGVzdCAtbiAiXCR7WlNIX1ZFUlNJT04rc2V0fSIgOyB0aGVuCisrICAgc2V0b3B0 IE5PX0dMT0JfU1VCU1QKKytmaQorK10pCisraWYgdGVzdCAtbiAiJHtaU0hfVkVSU0lPTitzZXR9 IiA7IHRoZW4KKysgICBzZXRvcHQgTk9fR0xPQl9TVUJTVAorK2ZpCisrCisrX0xUX0NIRUNLX09C SkRJUgorKworK200X3JlcXVpcmUoW19MVF9UQUdfQ09NUElMRVJdKWRubAorK19MVF9QUk9HX0VD SE9fQkFDS1NMQVNICisrCisrY2FzZSAkaG9zdF9vcyBpbgorK2FpeDMqKQorKyAgIyBBSVggc29t ZXRpbWVzIGhhcyBwcm9ibGVtcyB3aXRoIHRoZSBHQ0MgY29sbGVjdDIgcHJvZ3JhbS4gIEZvciBz b21lCisrICAjIHJlYXNvbiwgaWYgd2Ugc2V0IHRoZSBDT0xMRUNUX05BTUVTIGVudmlyb25tZW50 IHZhcmlhYmxlLCB0aGUgcHJvYmxlbXMKKysgICMgdmFuaXNoIGluIGEgcHVmZiBvZiBzbW9rZS4K KysgIGlmIHRlc3QgIlgke0NPTExFQ1RfTkFNRVMrc2V0fSIgIT0gWHNldDsgdGhlbgorKyAgICBD T0xMRUNUX05BTUVTPQorKyAgICBleHBvcnQgQ09MTEVDVF9OQU1FUworKyAgZmkKKysgIDs7Cisr ZXNhYworKworKyMgU2VkIHN1YnN0aXR1dGlvbiB0aGF0IGhlbHBzIHVzIGRvIHJvYnVzdCBxdW90 aW5nLiAgSXQgYmFja3NsYXNoaWZpZXMKKysjIG1ldGFjaGFyYWN0ZXJzIHRoYXQgYXJlIHN0aWxs IGFjdGl2ZSB3aXRoaW4gZG91YmxlLXF1b3RlZCBzdHJpbmdzLgorK3NlZF9xdW90ZV9zdWJzdD0n cy9cKFtbImAkXFxdXVwpL1xcXDEvZycKKysKKysjIFNhbWUgYXMgYWJvdmUsIGJ1dCBkbyBub3Qg cXVvdGUgdmFyaWFibGUgcmVmZXJlbmNlcy4KKytkb3VibGVfcXVvdGVfc3Vic3Q9J3MvXChbWyJg XFxdXVwpL1xcXDEvZycKKysKKysjIFNlZCBzdWJzdGl0dXRpb24gdG8gZGVsYXkgZXhwYW5zaW9u IG9mIGFuIGVzY2FwZWQgc2hlbGwgdmFyaWFibGUgaW4gYQorKyMgZG91YmxlX3F1b3RlX3N1YnN0 J2VkIHN0cmluZy4KKytkZWxheV92YXJpYWJsZV9zdWJzdD0ncy9cXFxcXFxcXFxcXCQvXFxcXFxc JC9nJworKworKyMgU2VkIHN1YnN0aXR1dGlvbiB0byBkZWxheSBleHBhbnNpb24gb2YgYW4gZXNj YXBlZCBzaW5nbGUgcXVvdGUuCisrZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0PSdzLydcJycvJ1wn XFxcXFxcXCdcJycvZycKKysKKysjIFNlZCBzdWJzdGl0dXRpb24gdG8gYXZvaWQgYWNjaWRlbnRh bCBnbG9iYmluZyBpbiBldmFsZWQgZXhwcmVzc2lvbnMKKytub19nbG9iX3N1YnN0PSdzL1wqL1xc XCovZycKKysKKysjIEdsb2JhbCB2YXJpYWJsZXM6Cisrb2ZpbGU9bGlidG9vbAorK2Nhbl9idWls ZF9zaGFyZWQ9eWVzCisrCisrIyBBbGwga25vd24gbGlua2VycyByZXF1aXJlIGEgYC5hJyBhcmNo aXZlIGZvciBzdGF0aWMgbGlua2luZyAoZXhjZXB0IE1TVkMsCisrIyB3aGljaCBuZWVkcyAnLmxp YicpLgorK2xpYmV4dD1hCisrCisrd2l0aF9nbnVfbGQ9IiRsdF9jdl9wcm9nX2dudV9sZCIKKysK KytvbGRfQ0M9IiRDQyIKKytvbGRfQ0ZMQUdTPSIkQ0ZMQUdTIgorKworKyMgU2V0IHNhbmUgZGVm YXVsdHMgZm9yIHZhcmlvdXMgdmFyaWFibGVzCisrdGVzdCAteiAiJENDIiAmJiBDQz1jYworK3Rl c3QgLXogIiRMVENDIiAmJiBMVENDPSRDQworK3Rlc3QgLXogIiRMVENGTEFHUyIgJiYgTFRDRkxB R1M9JENGTEFHUworK3Rlc3QgLXogIiRMRCIgJiYgTEQ9bGQKKyt0ZXN0IC16ICIkYWNfb2JqZXh0 IiAmJiBhY19vYmpleHQ9bworKworK19MVF9DQ19CQVNFTkFNRShbJGNvbXBpbGVyXSkKKysKKysj IE9ubHkgcGVyZm9ybSB0aGUgY2hlY2sgZm9yIGZpbGUsIGlmIHRoZSBjaGVjayBtZXRob2QgcmVx dWlyZXMgaXQKKyt0ZXN0IC16ICIkTUFHSUNfQ01EIiAmJiBNQUdJQ19DTUQ9ZmlsZQorK2Nhc2Ug JGRlcGxpYnNfY2hlY2tfbWV0aG9kIGluCisrZmlsZV9tYWdpYyopCisrICBpZiB0ZXN0ICIkZmls ZV9tYWdpY19jbWQiID0gJyRNQUdJQ19DTUQnOyB0aGVuCisrICAgIF9MVF9QQVRIX01BR0lDCisr ICBmaQorKyAgOzsKKytlc2FjCisrCisrIyBVc2UgQyBmb3IgdGhlIGRlZmF1bHQgY29uZmlndXJh dGlvbiBpbiB0aGUgbGlidG9vbCBzY3JpcHQKKytMVF9TVVBQT1JURURfVEFHKFtDQ10pCisrX0xU X0xBTkdfQ19DT05GSUcKKytfTFRfTEFOR19ERUZBVUxUX0NPTkZJRworK19MVF9DT05GSUdfQ09N TUFORFMKKytdKSMgX0xUX1NFVFVQCisrCisrCisrIyBfTFRfUFJPR19MVE1BSU4KKysjIC0tLS0t LS0tLS0tLS0tLQorKyMgTm90ZSB0aGF0IHRoaXMgY29kZSBpcyBjYWxsZWQgYm90aCBmcm9tIGBj b25maWd1cmUnLCBhbmQgYGNvbmZpZy5zdGF0dXMnCisrIyBub3cgdGhhdCB3ZSB1c2UgQUNfQ09O RklHX0NPTU1BTkRTIHRvIGdlbmVyYXRlIGxpYnRvb2wuICBOb3RhYmx5LAorKyMgYGNvbmZpZy5z dGF0dXMnIGhhcyBubyB2YWx1ZSBmb3IgYWNfYXV4X2RpciB1bmxlc3Mgd2UgYXJlIHVzaW5nIEF1 dG9tYWtlLAorKyMgc28gd2UgcGFzcyBhIGNvcHkgYWxvbmcgdG8gbWFrZSBzdXJlIGl0IGhhcyBh IHNlbnNpYmxlIHZhbHVlIGFueXdheS4KKyttNF9kZWZ1bihbX0xUX1BST0dfTFRNQUlOXSwKKytb bTRfaWZkZWYoW0FDX1JFUVVJUkVfQVVYX0ZJTEVdLCBbQUNfUkVRVUlSRV9BVVhfRklMRShbbHRt YWluLnNoXSldKWRubAorK19MVF9DT05GSUdfTElCVE9PTF9JTklUKFthY19hdXhfZGlyPSckYWNf YXV4X2RpciddKQorK2x0bWFpbj0iJGFjX2F1eF9kaXIvbHRtYWluLnNoIgorK10pIyBfTFRfUFJP R19MVE1BSU4KKysKKysKKysjIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t ICMjCisrIyMgQWNjdW11bGF0ZSBjb2RlIGZvciBjcmVhdGluZyBsaWJ0b29sLiAjIworKyMjIC0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIyMKKysKKysjIFNvIHRoYXQgd2Ug Y2FuIHJlY3JlYXRlIGEgZnVsbCBsaWJ0b29sIHNjcmlwdCBpbmNsdWRpbmcgYWRkaXRpb25hbAor KyMgdGFncywgd2UgYWNjdW11bGF0ZSB0aGUgY2h1bmtzIG9mIGNvZGUgdG8gc2VuZCB0byBBQ19D T05GSUdfQ09NTUFORFMKKysjIGluIG1hY3JvcyBhbmQgdGhlbiBtYWtlIGEgc2luZ2xlIGNhbGwg YXQgdGhlIGVuZCB1c2luZyB0aGUgYGxpYnRvb2wnCisrIyBsYWJlbC4KKysKKysKKysjIF9MVF9D T05GSUdfTElCVE9PTF9JTklUKFtJTklULUNPTU1BTkRTXSkKKysjIC0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKysjIFJlZ2lzdGVyIElOSVQtQ09NTUFORFMgdG8gYmUg cGFzc2VkIHRvIEFDX0NPTkZJR19DT01NQU5EUyBsYXRlci4KKyttNF9kZWZpbmUoW19MVF9DT05G SUdfTElCVE9PTF9JTklUXSwKKytbbTRfaWZ2YWwoWyQxXSwKKysgICAgICAgICAgW200X2FwcGVu ZChbX0xUX09VVFBVVF9MSUJUT09MX0lOSVRdLAorKyAgICAgICAgICAgICAgICAgICAgIFskMQor K10pXSldKQorKworKyMgSW5pdGlhbGl6ZS4KKyttNF9kZWZpbmUoW19MVF9PVVRQVVRfTElCVE9P TF9JTklUXSkKKysKKysKKysjIF9MVF9DT05GSUdfTElCVE9PTChbQ09NTUFORFNdKQorKyMgLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrIyBSZWdpc3RlciBDT01NQU5EUyB0byBiZSBw YXNzZWQgdG8gQUNfQ09ORklHX0NPTU1BTkRTIGxhdGVyLgorK200X2RlZmluZShbX0xUX0NPTkZJ R19MSUJUT09MXSwKKytbbTRfaWZ2YWwoWyQxXSwKKysgICAgICAgICAgW200X2FwcGVuZChbX0xU X09VVFBVVF9MSUJUT09MX0NPTU1BTkRTXSwKKysgICAgICAgICAgICAgICAgICAgICBbJDEKKytd KV0pXSkKKysKKysjIEluaXRpYWxpemUuCisrbTRfZGVmaW5lKFtfTFRfT1VUUFVUX0xJQlRPT0xf Q09NTUFORFNdKQorKworKworKyMgX0xUX0NPTkZJR19TQVZFX0NPTU1BTkRTKFtDT01NQU5EU10s IFtJTklUX0NPTU1BTkRTXSkKKysjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCisrbTRfZGVmdW4oW19MVF9DT05GSUdfU0FWRV9DT01NQU5EU10s CisrW19MVF9DT05GSUdfTElCVE9PTChbJDFdKQorK19MVF9DT05GSUdfTElCVE9PTF9JTklUKFsk Ml0pCisrXSkKKysKKysKKysjIF9MVF9GT1JNQVRfQ09NTUVOVChbQ09NTUVOVF0pCisrIyAtLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKyMgQWRkIGxlYWRpbmcgY29tbWVudCBtYXJrcyB0 byB0aGUgc3RhcnQgb2YgZWFjaCBsaW5lLCBhbmQgYSB0cmFpbGluZworKyMgZnVsbC1zdG9wIHRv IHRoZSB3aG9sZSBjb21tZW50IGlmIG9uZSBpcyBub3QgcHJlc2VudCBhbHJlYWR5LgorK200X2Rl ZmluZShbX0xUX0ZPUk1BVF9DT01NRU5UXSwKKytbbTRfaWZ2YWwoWyQxXSwgWworK200X2JwYXRz dWJzdChbbTRfYnBhdHN1YnN0KFskMV0sIFteICpdLCBbIyBdKV0sCisrICAgICAgICAgICAgICBb WydgJFxdXSwgW1xcXCZdKV1tNF9ibWF0Y2goWyQxXSwgW1shPy5dJF0sIFtdLCBbLl0pCisrKV0p CisrCisrCisrCisrIyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMjCisrIyMgRklYTUU6IEVs aW1pbmF0ZSBWQVJOQU1FICMjCisrIyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMjCisrCisr CisrIyBfTFRfREVDTChbQ09ORklHTkFNRV0sIFZBUk5BTUUsIFZBTFVFLCBbREVTQ1JJUFRJT05d LCBbSVMtVEFHR0VEP10pCisrIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrIyBDT05GSUdOQU1FIGlzIHRoZSBuYW1l IGdpdmVuIHRvIHRoZSB2YWx1ZSBpbiB0aGUgbGlidG9vbCBzY3JpcHQuCisrIyBWQVJOQU1FIGlz IHRoZSAoYmFzZSkgbmFtZSB1c2VkIGluIHRoZSBjb25maWd1cmUgc2NyaXB0LgorKyMgVkFMVUUg bWF5IGJlIDAsIDEgb3IgMiBmb3IgYSBjb21wdXRlZCBxdW90ZSBlc2NhcGVkIHZhbHVlIGJhc2Vk IG9uCisrIyBWQVJOQU1FLiAgQW55IG90aGVyIHZhbHVlIHdpbGwgYmUgdXNlZCBkaXJlY3RseS4K KyttNF9kZWZpbmUoW19MVF9ERUNMXSwKKytbbHRfaWZfYXBwZW5kX3VuaXEoW2x0X2RlY2xfdmFy bmFtZXNdLCBbJDJdLCBbLCBdLAorKyAgICBbbHRfZGljdF9hZGRfc3Via2V5KFtsdF9kZWNsX2Rp Y3RdLCBbJDJdLCBbbGlidG9vbF9uYW1lXSwKKysJW200X2lmdmFsKFskMV0sIFskMV0sIFskMl0p XSkKKysgICAgbHRfZGljdF9hZGRfc3Via2V5KFtsdF9kZWNsX2RpY3RdLCBbJDJdLCBbdmFsdWVd LCBbJDNdKQorKyAgICBtNF9pZnZhbChbJDRdLAorKwlbbHRfZGljdF9hZGRfc3Via2V5KFtsdF9k ZWNsX2RpY3RdLCBbJDJdLCBbZGVzY3JpcHRpb25dLCBbJDRdKV0pCisrICAgIGx0X2RpY3RfYWRk X3N1YmtleShbbHRfZGVjbF9kaWN0XSwgWyQyXSwKKysJW3RhZ2dlZD9dLCBbbTRfaWZ2YWwoWyQ1 XSwgW3llc10sIFtub10pXSldKQorK10pCisrCisrCisrIyBfTFRfVEFHREVDTChbQ09ORklHTkFN RV0sIFZBUk5BTUUsIFZBTFVFLCBbREVTQ1JJUFRJT05dKQorKyMgLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyttNF9kZWZpbmUoW19MVF9U QUdERUNMXSwgW19MVF9ERUNMKFskMV0sIFskMl0sIFskM10sIFskNF0sIFt5ZXNdKV0pCisrCisr CisrIyBsdF9kZWNsX3RhZ192YXJuYW1lcyhbU0VQQVJBVE9SXSwgW1ZBUk5BTUUxLi4uXSkKKysj IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorK200X2Rl ZmluZShbbHRfZGVjbF90YWdfdmFybmFtZXNdLAorK1tfbHRfZGVjbF9maWx0ZXIoW3RhZ2dlZD9d LCBbeWVzXSwgJEApXSkKKysKKysKKysjIF9sdF9kZWNsX2ZpbHRlcihTVUJLRVksIFZBTFVFLCBb U0VQQVJBVE9SXSwgW1ZBUk5BTUUxLi5dKQorKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrbTRfZGVmaW5lKFtfbHRfZGVjbF9maWx0 ZXJdLAorK1ttNF9jYXNlKFskI10sCisrICBbMF0sIFttNF9mYXRhbChbJDA6IHRvbyBmZXcgYXJn dW1lbnRzOiAkI10pXSwKKysgIFsxXSwgW200X2ZhdGFsKFskMDogdG9vIGZldyBhcmd1bWVudHM6 ICQjOiAkMV0pXSwKKysgIFsyXSwgW2x0X2RpY3RfZmlsdGVyKFtsdF9kZWNsX2RpY3RdLCBbJDFd LCBbJDJdLCBbXSwgbHRfZGVjbF92YXJuYW1lcyldLAorKyAgWzNdLCBbbHRfZGljdF9maWx0ZXIo W2x0X2RlY2xfZGljdF0sIFskMV0sIFskMl0sIFskM10sIGx0X2RlY2xfdmFybmFtZXMpXSwKKysg IFtsdF9kaWN0X2ZpbHRlcihbbHRfZGVjbF9kaWN0XSwgJEApXSlbXWRubAorK10pCisrCisrCisr IyBsdF9kZWNsX3F1b3RlX3Zhcm5hbWVzKFtTRVBBUkFUT1JdLCBbVkFSTkFNRTEuLi5dKQorKyMg LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyttNF9k ZWZpbmUoW2x0X2RlY2xfcXVvdGVfdmFybmFtZXNdLAorK1tfbHRfZGVjbF9maWx0ZXIoW3ZhbHVl XSwgWzFdLCAkQCldKQorKworKworKyMgbHRfZGVjbF9kcXVvdGVfdmFybmFtZXMoW1NFUEFSQVRP Ul0sIFtWQVJOQU1FMS4uLl0pCisrIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KKyttNF9kZWZpbmUoW2x0X2RlY2xfZHF1b3RlX3Zhcm5hbWVzXSwK KytbX2x0X2RlY2xfZmlsdGVyKFt2YWx1ZV0sIFsyXSwgJEApXSkKKysKKysKKysjIGx0X2RlY2xf dmFybmFtZXNfdGFnZ2VkKFtTRVBBUkFUT1JdLCBbVkFSTkFNRTEuLi5dKQorKyMgLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrbTRfZGVmaW5lKFts dF9kZWNsX3Zhcm5hbWVzX3RhZ2dlZF0sCisrW200X2Fzc2VydChbJCMgPD0gMl0pZG5sCisrXyQw KG00X3F1b3RlKG00X2RlZmF1bHQoWyQxXSwgW1ssIF1dKSksCisrICAgIG00X2lmdmFsKFskMl0s IFtbJDJdXSwgW200X2RxdW90ZShsdF9kZWNsX3RhZ192YXJuYW1lcyldKSwKKysgICAgbTRfc3Bs aXQobTRfbm9ybWFsaXplKG00X3F1b3RlKF9MVF9UQUdTKSksIFsgXSkpXSkKKyttNF9kZWZpbmUo W19sdF9kZWNsX3Zhcm5hbWVzX3RhZ2dlZF0sCisrW200X2lmdmFsKFskM10sIFtsdF9jb21iaW5l KFskMV0sIFskMl0sIFtfXSwgJDMpXSldKQorKworKworKyMgbHRfZGVjbF9hbGxfdmFybmFtZXMo W1NFUEFSQVRPUl0sIFtWQVJOQU1FMS4uLl0pCisrIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyttNF9kZWZpbmUoW2x0X2RlY2xfYWxsX3Zhcm5hbWVz XSwKKytbXyQwKG00X3F1b3RlKG00X2RlZmF1bHQoWyQxXSwgW1ssIF1dKSksCisrICAgICBtNF9p ZihbJDJdLCBbXSwKKysJICAgbTRfcXVvdGUobHRfZGVjbF92YXJuYW1lcyksCisrCW00X3F1b3Rl KG00X3NoaWZ0KCRAKSkpKVtdZG5sCisrXSkKKyttNF9kZWZpbmUoW19sdF9kZWNsX2FsbF92YXJu YW1lc10sCisrW2x0X2pvaW4oJEAsIGx0X2RlY2xfdmFybmFtZXNfdGFnZ2VkKFskMV0sCisrCQkJ bHRfZGVjbF90YWdfdmFybmFtZXMoW1ssIF1dLCBtNF9zaGlmdCgkQCkpKSlkbmwKKytdKQorKwor KworKyMgX0xUX0NPTkZJR19TVEFUVVNfREVDTEFSRShbVkFSTkFNRV0pCisrIyAtLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKysjIFF1b3RlIGEgdmFyaWFibGUgdmFsdWUsIGFu ZCBmb3J3YXJkIGl0IHRvIGBjb25maWcuc3RhdHVzJyBzbyB0aGF0IGl0cworKyMgZGVjbGFyYXRp b24gdGhlcmUgd2lsbCBoYXZlIHRoZSBzYW1lIHZhbHVlIGFzIGluIGBjb25maWd1cmUnLiAgVkFS TkFNRQorKyMgbXVzdCBoYXZlIGEgc2luZ2xlIHF1b3RlIGRlbGltaXRlZCB2YWx1ZSBmb3IgdGhp cyB0byB3b3JrLgorK200X2RlZmluZShbX0xUX0NPTkZJR19TVEFUVVNfREVDTEFSRV0sCisrWyQx PSdgJEVDSE8gIlgkXVskMSIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJg J10pCisrCisrCisrIyBfTFRfQ09ORklHX1NUQVRVU19ERUNMQVJBVElPTlMKKysjIC0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKyMgV2UgZGVsaW1pdCBsaWJ0b29sIGNvbmZpZyB2YXJp YWJsZXMgd2l0aCBzaW5nbGUgcXVvdGVzLCBzbyB3aGVuCisrIyB3ZSB3cml0ZSB0aGVtIHRvIGNv bmZpZy5zdGF0dXMsIHdlIGhhdmUgdG8gYmUgc3VyZSB0byBxdW90ZSBhbGwKKysjIGVtYmVkZGVk IHNpbmdsZSBxdW90ZXMgcHJvcGVybHkuICBJbiBjb25maWd1cmUsIHRoaXMgbWFjcm8gZXhwYW5k cworKyMgZWFjaCB2YXJpYWJsZSBkZWNsYXJlZCB3aXRoIF9MVF9ERUNMIChhbmQgX0xUX1RBR0RF Q0wpIGludG86CisrIworKyMgICAgPHZhcj49J2AkRUNITyAiWCQ8dmFyPiIgfCAkWHNlZCAtZSAi JGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK200X2RlZnVuKFtfTFRfQ09ORklHX1NUQVRV U19ERUNMQVJBVElPTlNdLAorK1ttNF9mb3JlYWNoKFtfbHRfdmFyXSwgbTRfcXVvdGUobHRfZGVj bF9hbGxfdmFybmFtZXMpLAorKyAgICBbbTRfbihbX0xUX0NPTkZJR19TVEFUVVNfREVDTEFSRShf bHRfdmFyKV0pXSldKQorKworKworKyMgX0xUX0xJQlRPT0xfVEFHUworKyMgLS0tLS0tLS0tLS0t LS0tLQorKyMgT3V0cHV0IGNvbW1lbnQgYW5kIGxpc3Qgb2YgdGFncyBzdXBwb3J0ZWQgYnkgdGhl IHNjcmlwdAorK200X2RlZnVuKFtfTFRfTElCVE9PTF9UQUdTXSwKKytbX0xUX0ZPUk1BVF9DT01N RU5UKFtUaGUgbmFtZXMgb2YgdGhlIHRhZ2dlZCBjb25maWd1cmF0aW9ucyBzdXBwb3J0ZWQgYnkg dGhpcyBzY3JpcHRdKWRubAorK2F2YWlsYWJsZV90YWdzPSJfTFRfVEFHUyJkbmwKKytdKQorKwor KworKyMgX0xUX0xJQlRPT0xfREVDTEFSRShWQVJOQU1FLCBbVEFHXSkKKysjIC0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrIyBFeHRyYWN0IHRoZSBkaWN0aW9uYXJ5IHZhbHVl cyBmb3IgVkFSTkFNRSAob3B0aW9uYWxseSB3aXRoIFRBRykgYW5kCisrIyBleHBhbmQgdG8gYSBj b21tZW50ZWQgc2hlbGwgdmFyaWFibGUgc2V0dGluZzoKKysjCisrIyAgICAjIFNvbWUgY29tbWVu dCBhYm91dCB3aGF0IFZBUiBpcyBmb3IuCisrIyAgICB2aXNpYmxlX25hbWU9JGx0X2ludGVybmFs X25hbWUKKyttNF9kZWZpbmUoW19MVF9MSUJUT09MX0RFQ0xBUkVdLAorK1tfTFRfRk9STUFUX0NP TU1FTlQobTRfcXVvdGUobHRfZGljdF9mZXRjaChbbHRfZGVjbF9kaWN0XSwgWyQxXSwKKysJCQkJ CSAgIFtkZXNjcmlwdGlvbl0pKSlbXWRubAorK200X3B1c2hkZWYoW19saWJ0b29sX25hbWVdLAor KyAgICBtNF9xdW90ZShsdF9kaWN0X2ZldGNoKFtsdF9kZWNsX2RpY3RdLCBbJDFdLCBbbGlidG9v bF9uYW1lXSkpKVtdZG5sCisrbTRfY2FzZShtNF9xdW90ZShsdF9kaWN0X2ZldGNoKFtsdF9kZWNs X2RpY3RdLCBbJDFdLCBbdmFsdWVdKSksCisrICAgIFswXSwgW19saWJ0b29sX25hbWU9WyRdJDFd LAorKyAgICBbMV0sIFtfbGlidG9vbF9uYW1lPSRsdF9bXSQxXSwKKysgICAgWzJdLCBbX2xpYnRv b2xfbmFtZT0kbHRfW10kMV0sCisrICAgIFtfbGlidG9vbF9uYW1lPWx0X2RpY3RfZmV0Y2goW2x0 X2RlY2xfZGljdF0sIFskMV0sIFt2YWx1ZV0pXSlbXWRubAorK200X2lmdmFsKFskMl0sIFtfJDJd KVtdbTRfcG9wZGVmKFtfbGlidG9vbF9uYW1lXSlbXWRubAorK10pCisrCisrCisrIyBfTFRfTElC VE9PTF9DT05GSUdfVkFSUworKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKysjIFByb2R1Y2Ug Y29tbWVudGVkIGRlY2xhcmF0aW9ucyBvZiBub24tdGFnZ2VkIGxpYnRvb2wgY29uZmlnIHZhcmlh YmxlcworKyMgc3VpdGFibGUgZm9yIGluc2VydGlvbiBpbiB0aGUgTElCVE9PTCBDT05GSUcgc2Vj dGlvbiBvZiB0aGUgYGxpYnRvb2wnCisrIyBzY3JpcHQuICBUYWdnZWQgbGlidG9vbCBjb25maWcg dmFyaWFibGVzIChldmVuIGZvciB0aGUgTElCVE9PTCBDT05GSUcKKysjIHNlY3Rpb24pIGFyZSBw cm9kdWNlZCBieSBfTFRfTElCVE9PTF9UQUdfVkFSUy4KKyttNF9kZWZ1bihbX0xUX0xJQlRPT0xf Q09ORklHX1ZBUlNdLAorK1ttNF9mb3JlYWNoKFtfbHRfdmFyXSwKKysgICAgbTRfcXVvdGUoX2x0 X2RlY2xfZmlsdGVyKFt0YWdnZWQ/XSwgW25vXSwgW10sIGx0X2RlY2xfdmFybmFtZXMpKSwKKysg ICAgW200X24oW19MVF9MSUJUT09MX0RFQ0xBUkUoX2x0X3ZhcildKV0pXSkKKysKKysKKysjIF9M VF9MSUJUT09MX1RBR19WQVJTKFRBRykKKysjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKytt NF9kZWZpbmUoW19MVF9MSUJUT09MX1RBR19WQVJTXSwKKytbbTRfZm9yZWFjaChbX2x0X3Zhcl0s IG00X3F1b3RlKGx0X2RlY2xfdGFnX3Zhcm5hbWVzKSwKKysgICAgW200X24oW19MVF9MSUJUT09M X0RFQ0xBUkUoX2x0X3ZhciwgWyQxXSldKV0pXSkKKysKKysKKysjIF9MVF9UQUdWQVIoVkFSTkFN RSwgW1RBR05BTUVdKQorKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrbTRfZGVm aW5lKFtfTFRfVEFHVkFSXSwgW200X2lmdmFsKFskMl0sIFskMV8kMl0sIFskMV0pXSkKKysKKysK KysjIF9MVF9DT05GSUdfQ09NTUFORFMKKysjIC0tLS0tLS0tLS0tLS0tLS0tLS0KKysjIFNlbmQg YWNjdW11bGF0ZWQgb3V0cHV0IHRvICRDT05GSUdfU1RBVFVTLiAgVGhhbmtzIHRvIHRoZSBsaXN0 cyBvZgorKyMgdmFyaWFibGVzIGZvciBzaW5nbGUgYW5kIGRvdWJsZSBxdW90ZSBlc2NhcGluZyB3 ZSBzYXZlZCBmcm9tIGNhbGxzCisrIyB0byBfTFRfREVDTCwgd2UgY2FuIHB1dCBxdW90ZSBlc2Nh cGVkIHZhcmlhYmxlcyBkZWNsYXJhdGlvbnMKKysjIGludG8gYGNvbmZpZy5zdGF0dXMnLCBhbmQg dGhlbiB0aGUgc2hlbGwgY29kZSB0byBxdW90ZSBlc2NhcGUgdGhlbSBpbgorKyMgZm9yIGxvb3Bz IGluIGBjb25maWcuc3RhdHVzJy4gIEZpbmFsbHksIGFueSBhZGRpdGlvbmFsIGNvZGUgYWNjdW11 bGF0ZWQKKysjIGZyb20gY2FsbHMgdG8gX0xUX0NPTkZJR19MSUJUT09MX0lOSVQgaXMgZXhwYW5k ZWQuCisrbTRfZGVmdW4oW19MVF9DT05GSUdfQ09NTUFORFNdLAorK1tBQ19QUk9WSURFX0lGRUxT RShbTFRfT1VUUFVUXSwKKysJZG5sIElmIHRoZSBsaWJ0b29sIGdlbmVyYXRpb24gY29kZSBoYXMg YmVlbiBwbGFjZWQgaW4gJENPTkZJR19MVCwKKysJZG5sIGluc3RlYWQgb2YgZHVwbGljYXRpbmcg aXQgYWxsIG92ZXIgYWdhaW4gaW50byBjb25maWcuc3RhdHVzLAorKwlkbmwgdGhlbiB3ZSB3aWxs IGhhdmUgY29uZmlnLnN0YXR1cyBydW4gJENPTkZJR19MVCBsYXRlciwgc28gaXQKKysJZG5sIG5l ZWRzIHRvIGtub3cgd2hhdCBuYW1lIGlzIHN0b3JlZCB0aGVyZToKKysgICAgICAgIFtBQ19DT05G SUdfQ09NTUFORFMoW2xpYnRvb2xdLAorKyAgICAgICAgICAgIFskU0hFTEwgJENPTkZJR19MVCB8 fCBBU19FWElUKDEpXSwgW0NPTkZJR19MVD0nJENPTkZJR19MVCddKV0sCisrICAgIGRubCBJZiB0 aGUgbGlidG9vbCBnZW5lcmF0aW9uIGNvZGUgaXMgZGVzdGluZWQgZm9yIGNvbmZpZy5zdGF0dXMs CisrICAgIGRubCBleHBhbmQgdGhlIGFjY3VtdWxhdGVkIGNvbW1hbmRzIGFuZCBpbml0IGNvZGUg bm93OgorKyAgICBbQUNfQ09ORklHX0NPTU1BTkRTKFtsaWJ0b29sXSwKKysgICAgICAgIFtfTFRf T1VUUFVUX0xJQlRPT0xfQ09NTUFORFNdLCBbX0xUX09VVFBVVF9MSUJUT09MX0NPTU1BTkRTX0lO SVRdKV0pCisrXSkjX0xUX0NPTkZJR19DT01NQU5EUworKworKworKyMgSW5pdGlhbGl6ZS4KKytt NF9kZWZpbmUoW19MVF9PVVRQVVRfTElCVE9PTF9DT01NQU5EU19JTklUXSwKKytbCisrCisrIyBU aGUgSFAtVVgga3NoIGFuZCBQT1NJWCBzaGVsbCBwcmludCB0aGUgdGFyZ2V0IGRpcmVjdG9yeSB0 byBzdGRvdXQKKysjIGlmIENEUEFUSCBpcyBzZXQuCisrKHVuc2V0IENEUEFUSCkgPi9kZXYvbnVs bCAyPiYxICYmIHVuc2V0IENEUEFUSAorKworK3NlZF9xdW90ZV9zdWJzdD0nJHNlZF9xdW90ZV9z dWJzdCcKKytkb3VibGVfcXVvdGVfc3Vic3Q9JyRkb3VibGVfcXVvdGVfc3Vic3QnCisrZGVsYXlf dmFyaWFibGVfc3Vic3Q9JyRkZWxheV92YXJpYWJsZV9zdWJzdCcKKytfTFRfQ09ORklHX1NUQVRV U19ERUNMQVJBVElPTlMKKytMVENDPSckTFRDQycKKytMVENGTEFHUz0nJExUQ0ZMQUdTJworK2Nv bXBpbGVyPSckY29tcGlsZXJfREVGQVVMVCcKKysKKysjIFF1b3RlIGV2YWxlZCBzdHJpbmdzLgor K2ZvciB2YXIgaW4gbHRfZGVjbF9hbGxfdmFybmFtZXMoW1sgXAorK11dLCBsdF9kZWNsX3F1b3Rl X3Zhcm5hbWVzKTsgZG8KKysgICAgY2FzZSBcYGV2YWwgXFxcXFwkRUNITyAiWFxcXFxcJFwkdmFy IlxgIGluCisrICAgICpbW1xcXFxcXFxgXFwiXFxcJF1dKikKKysgICAgICBldmFsICJsdF9cJHZh cj1cXFxcXFwiXFxcYFxcXCRFQ0hPIFxcIlhcXFwkXCR2YXJcXCIgfCBcXFwkWHNlZCAtZSBcXCJc XFwkc2VkX3F1b3RlX3N1YnN0XFwiXFxcYFxcXFxcXCIiCisrICAgICAgOzsKKysgICAgKikKKysg ICAgICBldmFsICJsdF9cJHZhcj1cXFxcXFwiXFxcJFwkdmFyXFxcXFxcIiIKKysgICAgICA7Owor KyAgICBlc2FjCisrZG9uZQorKworKyMgRG91YmxlLXF1b3RlIGRvdWJsZS1ldmFsZWQgc3RyaW5n cy4KKytmb3IgdmFyIGluIGx0X2RlY2xfYWxsX3Zhcm5hbWVzKFtbIFwKKytdXSwgbHRfZGVjbF9k cXVvdGVfdmFybmFtZXMpOyBkbworKyAgICBjYXNlIFxgZXZhbCBcXFxcXCRFQ0hPICJYXFxcXFwk XCR2YXIiXGAgaW4KKysgICAgKltbXFxcXFxcXGBcXCJcXFwkXV0qKQorKyAgICAgIGV2YWwgImx0 X1wkdmFyPVxcXFxcXCJcXFxgXFxcJEVDSE8gXFwiWFxcXCRcJHZhclxcIiB8IFxcXCRYc2VkIC1l IFxcIlxcXCRkb3VibGVfcXVvdGVfc3Vic3RcXCIgLWUgXFwiXFxcJHNlZF9xdW90ZV9zdWJzdFxc IiAtZSBcXCJcXFwkZGVsYXlfdmFyaWFibGVfc3Vic3RcXCJcXFxgXFxcXFxcIiIKKysgICAgICA7 OworKyAgICAqKQorKyAgICAgIGV2YWwgImx0X1wkdmFyPVxcXFxcXCJcXFwkXCR2YXJcXFxcXFwi IgorKyAgICAgIDs7CisrICAgIGVzYWMKKytkb25lCisrCisrIyBGaXgtdXAgZmFsbGJhY2sgZWNo byBpZiBpdCB3YXMgbWFuZ2xlZCBieSB0aGUgYWJvdmUgcXVvdGluZyBydWxlcy4KKytjYXNlIFwk bHRfRUNITyBpbgorKyonXFxcWyRdMCAtLWZhbGxiYWNrLWVjaG8iJylkbmwgIgorKyAgbHRfRUNI Tz1cYFwkRUNITyAiWFwkbHRfRUNITyIgfCBcJFhzZWQgLWUgJ3MvXFxcXFxcXFxcXFxcXFxcWyRd MCAtLWZhbGxiYWNrLWVjaG8iXFskXS9cWyRdMCAtLWZhbGxiYWNrLWVjaG8iLydcYAorKyAgOzsK Kytlc2FjCisrCisrX0xUX09VVFBVVF9MSUJUT09MX0lOSVQKKytdKQorKworKworKyMgTFRfT1VU UFVUCisrIyAtLS0tLS0tLS0KKysjIFRoaXMgbWFjcm8gYWxsb3dzIGVhcmx5IGdlbmVyYXRpb24g b2YgdGhlIGxpYnRvb2wgc2NyaXB0IChiZWZvcmUKKysjIEFDX09VVFBVVCBpcyBjYWxsZWQpLCBp bmNhc2UgaXQgaXMgdXNlZCBpbiBjb25maWd1cmUgZm9yIGNvbXBpbGF0aW9uCisrIyB0ZXN0cy4K KytBQ19ERUZVTihbTFRfT1VUUFVUXSwKKytbOiAke0NPTkZJR19MVD0uL2NvbmZpZy5sdH0KKytB Q19NU0dfTk9USUNFKFtjcmVhdGluZyAkQ09ORklHX0xUXSkKKytjYXQgPiIkQ09ORklHX0xUIiA8 PF9MVEVPRgorKyMhICRTSEVMTAorKyMgR2VuZXJhdGVkIGJ5ICRhc19tZS4KKysjIFJ1biB0aGlz IGZpbGUgdG8gcmVjcmVhdGUgYSBsaWJ0b29sIHN0dWIgd2l0aCB0aGUgY3VycmVudCBjb25maWd1 cmF0aW9uLgorKworK2x0X2NsX3NpbGVudD1mYWxzZQorK1NIRUxMPVwke0NPTkZJR19TSEVMTC0k U0hFTEx9CisrX0xURU9GCisrCisrY2F0ID4+IiRDT05GSUdfTFQiIDw8XF9MVEVPRgorK0FTX1NI RUxMX1NBTklUSVpFCisrX0FTX1BSRVBBUkUKKysKKytleGVjIEFTX01FU1NBR0VfRkQ+JjEKKytl eGVjIEFTX01FU1NBR0VfTE9HX0ZEPj5jb25maWcubG9nCisreworKyAgZWNobworKyAgQVNfQk9Y KFtSdW5uaW5nICRhc19tZS5dKQorK30gPiZBU19NRVNTQUdFX0xPR19GRAorKworK2x0X2NsX2hl bHA9IlwKKytcYCRhc19tZScgY3JlYXRlcyBhIGxvY2FsIGxpYnRvb2wgc3R1YiBmcm9tIHRoZSBj dXJyZW50IGNvbmZpZ3VyYXRpb24sCisrZm9yIHVzZSBpbiBmdXJ0aGVyIGNvbmZpZ3VyZSB0aW1l IHRlc3RzIGJlZm9yZSB0aGUgcmVhbCBsaWJ0b29sIGlzCisrZ2VuZXJhdGVkLgorKworK1VzYWdl OiAkWzBdIFtbT1BUSU9OU11dCisrCisrICAtaCwgLS1oZWxwICAgICAgcHJpbnQgdGhpcyBoZWxw LCB0aGVuIGV4aXQKKysgIC1WLCAtLXZlcnNpb24gICBwcmludCB2ZXJzaW9uIG51bWJlciwgdGhl biBleGl0CisrICAtcSwgLS1xdWlldCAgICAgZG8gbm90IHByaW50IHByb2dyZXNzIG1lc3NhZ2Vz CisrICAtZCwgLS1kZWJ1ZyAgICAgZG9uJ3QgcmVtb3ZlIHRlbXBvcmFyeSBmaWxlcworKworK1Jl cG9ydCBidWdzIHRvIDxidWctbGlidG9vbEBnbnUub3JnPi4iCisrCisrbHRfY2xfdmVyc2lvbj0i XAorK200X2lmc2V0KFtBQ19QQUNLQUdFX05BTUVdLCBbQUNfUEFDS0FHRV9OQU1FIF0pY29uZmln Lmx0W11kbmwKKyttNF9pZnNldChbQUNfUEFDS0FHRV9WRVJTSU9OXSwgWyBBQ19QQUNLQUdFX1ZF UlNJT05dKQorK2NvbmZpZ3VyZWQgYnkgJFswXSwgZ2VuZXJhdGVkIGJ5IG00X1BBQ0tBR0VfU1RS SU5HLgorKworK0NvcHlyaWdodCAoQykgMjAwOCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIElu Yy4KKytUaGlzIGNvbmZpZy5sdCBzY3JpcHQgaXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29m dHdhcmUgRm91bmRhdGlvbgorK2dpdmVzIHVubGltaXRlZCBwZXJtaXNpb24gdG8gY29weSwgZGlz dHJpYnV0ZSBhbmQgbW9kaWZ5IGl0LiIKKysKKyt3aGlsZSB0ZXN0ICRbI10gIT0gMAorK2RvCisr ICBjYXNlICRbMV0gaW4KKysgICAgLS12ZXJzaW9uIHwgLS12KiB8IC1WICkKKysgICAgICBlY2hv ICIkbHRfY2xfdmVyc2lvbiI7IGV4aXQgMCA7OworKyAgICAtLWhlbHAgfCAtLWgqIHwgLWggKQor KyAgICAgIGVjaG8gIiRsdF9jbF9oZWxwIjsgZXhpdCAwIDs7CisrICAgIC0tZGVidWcgfCAtLWQq IHwgLWQgKQorKyAgICAgIGRlYnVnPTogOzsKKysgICAgLS1xdWlldCB8IC0tcSogfCAtLXNpbGVu dCB8IC0tcyogfCAtcSApCisrICAgICAgbHRfY2xfc2lsZW50PTogOzsKKysKKysgICAgLSopIEFD X01TR19FUlJPUihbdW5yZWNvZ25pemVkIG9wdGlvbjogJFsxXQorK1RyeSBcYCRbMF0gLS1oZWxw JyBmb3IgbW9yZSBpbmZvcm1hdGlvbi5dKSA7OworKworKyAgICAqKSBBQ19NU0dfRVJST1IoW3Vu cmVjb2duaXplZCBhcmd1bWVudDogJFsxXQorK1RyeSBcYCRbMF0gLS1oZWxwJyBmb3IgbW9yZSBp bmZvcm1hdGlvbi5dKSA7OworKyAgZXNhYworKyAgc2hpZnQKKytkb25lCisrCisraWYgJGx0X2Ns X3NpbGVudDsgdGhlbgorKyAgZXhlYyBBU19NRVNTQUdFX0ZEPi9kZXYvbnVsbAorK2ZpCisrX0xU RU9GCisrCisrY2F0ID4+IiRDT05GSUdfTFQiIDw8X0xURU9GCisrX0xUX09VVFBVVF9MSUJUT09M X0NPTU1BTkRTX0lOSVQKKytfTFRFT0YKKysKKytjYXQgPj4iJENPTkZJR19MVCIgPDxcX0xURU9G CisrQUNfTVNHX05PVElDRShbY3JlYXRpbmcgJG9maWxlXSkKKytfTFRfT1VUUFVUX0xJQlRPT0xf Q09NTUFORFMKKytBU19FWElUKDApCisrX0xURU9GCisrY2htb2QgK3ggIiRDT05GSUdfTFQiCisr CisrIyBjb25maWd1cmUgaXMgd3JpdGluZyB0byBjb25maWcubG9nLCBidXQgY29uZmlnLmx0IGRv ZXMgaXRzIG93biByZWRpcmVjdGlvbiwKKysjIGFwcGVuZGluZyB0byBjb25maWcubG9nLCB3aGlj aCBmYWlscyBvbiBET1MsIGFzIGNvbmZpZy5sb2cgaXMgc3RpbGwga2VwdAorKyMgb3BlbiBieSBj b25maWd1cmUuICBIZXJlIHdlIGV4ZWMgdGhlIEZEIHRvIC9kZXYvbnVsbCwgZWZmZWN0aXZlbHkg Y2xvc2luZworKyMgY29uZmlnLmxvZywgc28gaXQgY2FuIGJlIHByb3Blcmx5IChyZSlvcGVuZWQg YW5kIGFwcGVuZGVkIHRvIGJ5IGNvbmZpZy5sdC4KKytpZiB0ZXN0ICIkbm9fY3JlYXRlIiAhPSB5 ZXM7IHRoZW4KKysgIGx0X2NsX3N1Y2Nlc3M9OgorKyAgdGVzdCAiJHNpbGVudCIgPSB5ZXMgJiYK KysgICAgbHRfY29uZmlnX2x0X2FyZ3M9IiRsdF9jb25maWdfbHRfYXJncyAtLXF1aWV0IgorKyAg ZXhlYyBBU19NRVNTQUdFX0xPR19GRD4vZGV2L251bGwKKysgICRTSEVMTCAiJENPTkZJR19MVCIg JGx0X2NvbmZpZ19sdF9hcmdzIHx8IGx0X2NsX3N1Y2Nlc3M9ZmFsc2UKKysgIGV4ZWMgQVNfTUVT U0FHRV9MT0dfRkQ+PmNvbmZpZy5sb2cKKysgICRsdF9jbF9zdWNjZXNzIHx8IEFTX0VYSVQoMSkK KytmaQorK10pIyBMVF9PVVRQVVQKKysKKysKKysjIF9MVF9DT05GSUcoVEFHKQorKyMgLS0tLS0t LS0tLS0tLS0tCisrIyBJZiBUQUcgaXMgdGhlIGJ1aWx0LWluIHRhZywgY3JlYXRlIGFuIGluaXRp YWwgbGlidG9vbCBzY3JpcHQgd2l0aCBhCisrIyBkZWZhdWx0IGNvbmZpZ3VyYXRpb24gZnJvbSB0 aGUgdW50YWdnZWQgY29uZmlnIHZhcnMuICBPdGhlcndpc2UgYWRkIGNvZGUKKysjIHRvIGNvbmZp Zy5zdGF0dXMgZm9yIGFwcGVuZGluZyB0aGUgY29uZmlndXJhdGlvbiBuYW1lZCBieSBUQUcgZnJv bSB0aGUKKysjIG1hdGNoaW5nIHRhZ2dlZCBjb25maWcgdmFycy4KKyttNF9kZWZ1bihbX0xUX0NP TkZJR10sCisrW200X3JlcXVpcmUoW19MVF9GSUxFVVRJTFNfREVGQVVMVFNdKWRubAorK19MVF9D T05GSUdfU0FWRV9DT01NQU5EUyhbCisrICBtNF9kZWZpbmUoW19MVF9UQUddLCBtNF9pZihbJDFd LCBbXSwgW0NdLCBbJDFdKSlkbmwKKysgIG00X2lmKF9MVF9UQUcsIFtDXSwgWworKyAgICAjIFNl ZSBpZiB3ZSBhcmUgcnVubmluZyBvbiB6c2gsIGFuZCBzZXQgdGhlIG9wdGlvbnMgd2hpY2ggYWxs b3cgb3VyCisrICAgICMgY29tbWFuZHMgdGhyb3VnaCB3aXRob3V0IHJlbW92YWwgb2YgXCBlc2Nh cGVzLgorKyAgICBpZiB0ZXN0IC1uICIke1pTSF9WRVJTSU9OK3NldH0iIDsgdGhlbgorKyAgICAg IHNldG9wdCBOT19HTE9CX1NVQlNUCisrICAgIGZpCisrCisrICAgIGNmZ2ZpbGU9IiR7b2ZpbGV9 VCIKKysgICAgdHJhcCAiJFJNIFwiJGNmZ2ZpbGVcIjsgZXhpdCAxIiAxIDIgMTUKKysgICAgJFJN ICIkY2ZnZmlsZSIKKysKKysgICAgY2F0IDw8X0xUX0VPRiA+PiAiJGNmZ2ZpbGUiCisrIyEgJFNI RUxMCisrCisrIyBgJEVDSE8gIiRvZmlsZSIgfCBzZWQgJ3MlXi4qLyUlJ2AgLSBQcm92aWRlIGdl bmVyYWxpemVkIGxpYnJhcnktYnVpbGRpbmcgc3VwcG9ydCBzZXJ2aWNlcy4KKysjIEdlbmVyYXRl ZCBhdXRvbWF0aWNhbGx5IGJ5ICRhc19tZSAoJFBBQ0tBR0UkVElNRVNUQU1QKSAkVkVSU0lPTgor KyMgTGlidG9vbCB3YXMgY29uZmlndXJlZCBvbiBob3N0IGAoaG9zdG5hbWUgfHwgdW5hbWUgLW4p IDI+L2Rldi9udWxsIHwgc2VkIDFxYDoKKysjIE5PVEU6IENoYW5nZXMgbWFkZSB0byB0aGlzIGZp bGUgd2lsbCBiZSBsb3N0OiBsb29rIGF0IGx0bWFpbi5zaC4KKysjCisrX0xUX0NPUFlJTkcKKytf TFRfTElCVE9PTF9UQUdTCisrCisrIyAjIyMgQkVHSU4gTElCVE9PTCBDT05GSUcKKytfTFRfTElC VE9PTF9DT05GSUdfVkFSUworK19MVF9MSUJUT09MX1RBR19WQVJTCisrIyAjIyMgRU5EIExJQlRP T0wgQ09ORklHCisrCisrX0xUX0VPRgorKworKyAgY2FzZSAkaG9zdF9vcyBpbgorKyAgYWl4Myop CisrICAgIGNhdCA8PFxfTFRfRU9GID4+ICIkY2ZnZmlsZSIKKysjIEFJWCBzb21ldGltZXMgaGFz IHByb2JsZW1zIHdpdGggdGhlIEdDQyBjb2xsZWN0MiBwcm9ncmFtLiAgRm9yIHNvbWUKKysjIHJl YXNvbiwgaWYgd2Ugc2V0IHRoZSBDT0xMRUNUX05BTUVTIGVudmlyb25tZW50IHZhcmlhYmxlLCB0 aGUgcHJvYmxlbXMKKysjIHZhbmlzaCBpbiBhIHB1ZmYgb2Ygc21va2UuCisraWYgdGVzdCAiWCR7 Q09MTEVDVF9OQU1FUytzZXR9IiAhPSBYc2V0OyB0aGVuCisrICBDT0xMRUNUX05BTUVTPQorKyAg ZXhwb3J0IENPTExFQ1RfTkFNRVMKKytmaQorK19MVF9FT0YKKysgICAgOzsKKysgIGVzYWMKKysK KysgIF9MVF9QUk9HX0xUTUFJTgorKworKyAgIyBXZSB1c2Ugc2VkIGluc3RlYWQgb2YgY2F0IGJl Y2F1c2UgYmFzaCBvbiBESkdQUCBnZXRzIGNvbmZ1c2VkIGlmCisrICAjIGlmIGZpbmRzIG1peGVk IENSL0xGIGFuZCBMRi1vbmx5IGxpbmVzLiAgU2luY2Ugc2VkIG9wZXJhdGVzIGluCisrICAjIHRl eHQgbW9kZSwgaXQgcHJvcGVybHkgY29udmVydHMgbGluZXMgdG8gQ1IvTEYuICBUaGlzIGJhc2gg cHJvYmxlbQorKyAgIyBpcyByZXBvcnRlZGx5IGZpeGVkLCBidXQgd2h5IG5vdCBydW4gb24gb2xk IHZlcnNpb25zIHRvbz8KKysgIHNlZCAnL14jIEdlbmVyYXRlZCBzaGVsbCBmdW5jdGlvbnMgaW5z ZXJ0ZWQgaGVyZS9xJyAiJGx0bWFpbiIgPj4gIiRjZmdmaWxlIiBcCisrICAgIHx8IChybSAtZiAi JGNmZ2ZpbGUiOyBleGl0IDEpCisrCisrICBfTFRfUFJPR19YU0lfU0hFTExGTlMKKysKKysgIHNl ZCAtbiAnL14jIEdlbmVyYXRlZCBzaGVsbCBmdW5jdGlvbnMgaW5zZXJ0ZWQgaGVyZS8sJHAnICIk bHRtYWluIiA+PiAiJGNmZ2ZpbGUiIFwKKysgICAgfHwgKHJtIC1mICIkY2ZnZmlsZSI7IGV4aXQg MSkKKysKKysgIG12IC1mICIkY2ZnZmlsZSIgIiRvZmlsZSIgfHwKKysgICAgKHJtIC1mICIkb2Zp bGUiICYmIGNwICIkY2ZnZmlsZSIgIiRvZmlsZSIgJiYgcm0gLWYgIiRjZmdmaWxlIikKKysgIGNo bW9kICt4ICIkb2ZpbGUiCisrXSwKKytbY2F0IDw8X0xUX0VPRiA+PiAiJG9maWxlIgorKworK2Ru bCBVbmZvcnR1bmF0ZWx5IHdlIGhhdmUgdG8gdXNlICQxIGhlcmUsIHNpbmNlIF9MVF9UQUcgaXMg bm90IGV4cGFuZGVkCisrZG5sIGluIGEgY29tbWVudCAoaWUgYWZ0ZXIgYSAjKS4KKysjICMjIyBC RUdJTiBMSUJUT09MIFRBRyBDT05GSUc6ICQxCisrX0xUX0xJQlRPT0xfVEFHX1ZBUlMoX0xUX1RB RykKKysjICMjIyBFTkQgTElCVE9PTCBUQUcgQ09ORklHOiAkMQorK19MVF9FT0YKKytdKWRubCAv bTRfaWYKKytdLAorK1ttNF9pZihbJDFdLCBbXSwgWworKyAgICBQQUNLQUdFPSckUEFDS0FHRScK KysgICAgVkVSU0lPTj0nJFZFUlNJT04nCisrICAgIFRJTUVTVEFNUD0nJFRJTUVTVEFNUCcKKysg ICAgUk09JyRSTScKKysgICAgb2ZpbGU9JyRvZmlsZSddLCBbXSkKKytdKWRubCAvX0xUX0NPTkZJ R19TQVZFX0NPTU1BTkRTCisrXSkjIF9MVF9DT05GSUcKKysKKysKKysjIExUX1NVUFBPUlRFRF9U QUcoVEFHKQorKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrIyBUcmFjZSB0aGlzIG1hY3JvIHRv IGRpc2NvdmVyIHdoYXQgdGFncyBhcmUgc3VwcG9ydGVkIGJ5IHRoZSBsaWJ0b29sCisrIyAtLXRh ZyBvcHRpb24sIHVzaW5nOgorKyMgICAgYXV0b2NvbmYgLS10cmFjZSAnTFRfU1VQUE9SVEVEX1RB RzokMScKKytBQ19ERUZVTihbTFRfU1VQUE9SVEVEX1RBR10sIFtdKQorKworKworKyMgQyBzdXBw b3J0IGlzIGJ1aWx0LWluIGZvciBub3cKKyttNF9kZWZpbmUoW19MVF9MQU5HX0NfZW5hYmxlZF0s IFtdKQorK200X2RlZmluZShbX0xUX1RBR1NdLCBbXSkKKysKKysKKysjIExUX0xBTkcoTEFORykK KysjIC0tLS0tLS0tLS0tLS0KKysjIEVuYWJsZSBsaWJ0b29sIHN1cHBvcnQgZm9yIHRoZSBnaXZl biBsYW5ndWFnZSBpZiBub3QgYWxyZWFkeSBlbmFibGVkLgorK0FDX0RFRlVOKFtMVF9MQU5HXSwK KytbQUNfQkVGT1JFKFskMF0sIFtMVF9PVVRQVVRdKWRubAorK200X2Nhc2UoWyQxXSwKKysgIFtD XSwJCQlbX0xUX0xBTkcoQyldLAorKyAgW0MrK10sCQlbX0xUX0xBTkcoQ1hYKV0sCisrICBbSmF2 YV0sCQlbX0xUX0xBTkcoR0NKKV0sCisrICBbRm9ydHJhbiA3N10sCQlbX0xUX0xBTkcoRjc3KV0s CisrICBbRm9ydHJhbl0sCQlbX0xUX0xBTkcoRkMpXSwKKysgIFtXaW5kb3dzIFJlc291cmNlXSwJ W19MVF9MQU5HKFJDKV0sCisrICBbbTRfaWZkZWYoW19MVF9MQU5HX10kMVtfQ09ORklHXSwKKysg ICAgW19MVF9MQU5HKCQxKV0sCisrICAgIFttNF9mYXRhbChbJDA6IHVuc3VwcG9ydGVkIGxhbmd1 YWdlOiAiJDEiXSldKV0pZG5sCisrXSkjIExUX0xBTkcKKysKKysKKysjIF9MVF9MQU5HKExBTkdO QU1FKQorKyMgLS0tLS0tLS0tLS0tLS0tLS0tCisrbTRfZGVmdW4oW19MVF9MQU5HXSwKKytbbTRf aWZkZWYoW19MVF9MQU5HX10kMVtfZW5hYmxlZF0sIFtdLAorKyAgW0xUX1NVUFBPUlRFRF9UQUco WyQxXSlkbmwKKysgIG00X2FwcGVuZChbX0xUX1RBR1NdLCBbJDEgXSlkbmwKKysgIG00X2RlZmlu ZShbX0xUX0xBTkdfXSQxW19lbmFibGVkXSwgW10pZG5sCisrICBfTFRfTEFOR18kMV9DT05GSUco JDEpXSlkbmwKKytdKSMgX0xUX0xBTkcKKysKKysKKysjIF9MVF9MQU5HX0RFRkFVTFRfQ09ORklH CisrIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorK200X2RlZnVuKFtfTFRfTEFOR19ERUZBVUxU X0NPTkZJR10sCisrW0FDX1BST1ZJREVfSUZFTFNFKFtBQ19QUk9HX0NYWF0sCisrICBbTFRfTEFO RyhDWFgpXSwKKysgIFttNF9kZWZpbmUoW0FDX1BST0dfQ1hYXSwgZGVmbihbQUNfUFJPR19DWFhd KVtMVF9MQU5HKENYWCldKV0pCisrCisrQUNfUFJPVklERV9JRkVMU0UoW0FDX1BST0dfRjc3XSwK KysgIFtMVF9MQU5HKEY3NyldLAorKyAgW200X2RlZmluZShbQUNfUFJPR19GNzddLCBkZWZuKFtB Q19QUk9HX0Y3N10pW0xUX0xBTkcoRjc3KV0pXSkKKysKKytBQ19QUk9WSURFX0lGRUxTRShbQUNf UFJPR19GQ10sCisrICBbTFRfTEFORyhGQyldLAorKyAgW200X2RlZmluZShbQUNfUFJPR19GQ10s IGRlZm4oW0FDX1BST0dfRkNdKVtMVF9MQU5HKEZDKV0pXSkKKysKKytkbmwgVGhlIGNhbGwgdG8g W0FdW01fUFJPR19HQ0pdIGlzIHF1b3RlZCBsaWtlIHRoYXQgdG8gc3RvcCBhY2xvY2FsCisrZG5s IHB1bGxpbmcgdGhpbmdzIGluIG5lZWRsZXNzbHkuCisrQUNfUFJPVklERV9JRkVMU0UoW0FDX1BS T0dfR0NKXSwKKysgIFtMVF9MQU5HKEdDSildLAorKyAgW0FDX1BST1ZJREVfSUZFTFNFKFtBXVtN X1BST0dfR0NKXSwKKysgICAgW0xUX0xBTkcoR0NKKV0sCisrICAgIFtBQ19QUk9WSURFX0lGRUxT RShbTFRfUFJPR19HQ0pdLAorKyAgICAgIFtMVF9MQU5HKEdDSildLAorKyAgICAgIFttNF9pZmRl ZihbQUNfUFJPR19HQ0pdLAorKwlbbTRfZGVmaW5lKFtBQ19QUk9HX0dDSl0sIGRlZm4oW0FDX1BS T0dfR0NKXSlbTFRfTEFORyhHQ0opXSldKQorKyAgICAgICBtNF9pZmRlZihbQV1bTV9QUk9HX0dD Sl0sCisrCVttNF9kZWZpbmUoW0FdW01fUFJPR19HQ0pdLCBkZWZuKFtBXVtNX1BST0dfR0NKXSlb TFRfTEFORyhHQ0opXSldKQorKyAgICAgICBtNF9pZmRlZihbTFRfUFJPR19HQ0pdLAorKwlbbTRf ZGVmaW5lKFtMVF9QUk9HX0dDSl0sIGRlZm4oW0xUX1BST0dfR0NKXSlbTFRfTEFORyhHQ0opXSld KV0pXSldKQorKworK0FDX1BST1ZJREVfSUZFTFNFKFtMVF9QUk9HX1JDXSwKKysgIFtMVF9MQU5H KFJDKV0sCisrICBbbTRfZGVmaW5lKFtMVF9QUk9HX1JDXSwgZGVmbihbTFRfUFJPR19SQ10pW0xU X0xBTkcoUkMpXSldKQorK10pIyBfTFRfTEFOR19ERUZBVUxUX0NPTkZJRworKworKyMgT2Jzb2xl dGUgbWFjcm9zOgorK0FVX0RFRlVOKFtBQ19MSUJUT09MX0NYWF0sIFtMVF9MQU5HKEMrKyldKQor K0FVX0RFRlVOKFtBQ19MSUJUT09MX0Y3N10sIFtMVF9MQU5HKEZvcnRyYW4gNzcpXSkKKytBVV9E RUZVTihbQUNfTElCVE9PTF9GQ10sIFtMVF9MQU5HKEZvcnRyYW4pXSkKKytBVV9ERUZVTihbQUNf TElCVE9PTF9HQ0pdLCBbTFRfTEFORyhKYXZhKV0pCisrZG5sIGFjbG9jYWwtMS40IGJhY2t3YXJk cyBjb21wYXRpYmlsaXR5OgorK2RubCBBQ19ERUZVTihbQUNfTElCVE9PTF9DWFhdLCBbXSkKKytk bmwgQUNfREVGVU4oW0FDX0xJQlRPT0xfRjc3XSwgW10pCisrZG5sIEFDX0RFRlVOKFtBQ19MSUJU T09MX0ZDXSwgW10pCisrZG5sIEFDX0RFRlVOKFtBQ19MSUJUT09MX0dDSl0sIFtdKQorKworKwor KyMgX0xUX1RBR19DT01QSUxFUgorKyMgLS0tLS0tLS0tLS0tLS0tLQorK200X2RlZnVuKFtfTFRf VEFHX0NPTVBJTEVSXSwKKytbQUNfUkVRVUlSRShbQUNfUFJPR19DQ10pZG5sCisrCisrX0xUX0RF Q0woW0xUQ0NdLCBbQ0NdLCBbMV0sIFtBIEMgY29tcGlsZXJdKWRubAorK19MVF9ERUNMKFtMVENG TEFHU10sIFtDRkxBR1NdLCBbMV0sIFtMVENDIGNvbXBpbGVyIGZsYWdzXSlkbmwKKytfTFRfVEFH REVDTChbQ0NdLCBbY29tcGlsZXJdLCBbMV0sIFtBIGxhbmd1YWdlIHNwZWNpZmljIGNvbXBpbGVy XSlkbmwKKytfTFRfVEFHREVDTChbd2l0aF9nY2NdLCBbR0NDXSwgWzBdLCBbSXMgdGhlIGNvbXBp bGVyIHRoZSBHTlUgY29tcGlsZXI/XSlkbmwKKysKKysjIElmIG5vIEMgY29tcGlsZXIgd2FzIHNw ZWNpZmllZCwgdXNlIENDLgorK0xUQ0M9JHtMVENDLSIkQ0MifQorKworKyMgSWYgbm8gQyBjb21w aWxlciBmbGFncyB3ZXJlIHNwZWNpZmllZCwgdXNlIENGTEFHUy4KKytMVENGTEFHUz0ke0xUQ0ZM QUdTLSIkQ0ZMQUdTIn0KKysKKysjIEFsbG93IENDIHRvIGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGgg YXJndW1lbnRzLgorK2NvbXBpbGVyPSRDQworK10pIyBfTFRfVEFHX0NPTVBJTEVSCisrCisrCisr IyBfTFRfQ09NUElMRVJfQk9JTEVSUExBVEUKKysjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor KyMgQ2hlY2sgZm9yIGNvbXBpbGVyIGJvaWxlcnBsYXRlIG91dHB1dCBvciB3YXJuaW5ncyB3aXRo CisrIyB0aGUgc2ltcGxlIGNvbXBpbGVyIHRlc3QgY29kZS4KKyttNF9kZWZ1bihbX0xUX0NPTVBJ TEVSX0JPSUxFUlBMQVRFXSwKKytbbTRfcmVxdWlyZShbX0xUX0RFQ0xfU0VEXSlkbmwKKythY19v dXRmaWxlPWNvbmZ0ZXN0LiRhY19vYmpleHQKKytlY2hvICIkbHRfc2ltcGxlX2NvbXBpbGVfdGVz dF9jb2RlIiA+Y29uZnRlc3QuJGFjX2V4dAorK2V2YWwgIiRhY19jb21waWxlIiAyPiYxID4vZGV2 L251bGwgfCAkU0VEICcvXiQvZDsgL14gKisvZCcgPmNvbmZ0ZXN0LmVycgorK19sdF9jb21waWxl cl9ib2lsZXJwbGF0ZT1gY2F0IGNvbmZ0ZXN0LmVycmAKKyskUk0gY29uZnRlc3QqCisrXSkjIF9M VF9DT01QSUxFUl9CT0lMRVJQTEFURQorKworKworKyMgX0xUX0xJTktFUl9CT0lMRVJQTEFURQor KyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKyMgQ2hlY2sgZm9yIGxpbmtlciBib2lsZXJwbGF0 ZSBvdXRwdXQgb3Igd2FybmluZ3Mgd2l0aAorKyMgdGhlIHNpbXBsZSBsaW5rIHRlc3QgY29kZS4K KyttNF9kZWZ1bihbX0xUX0xJTktFUl9CT0lMRVJQTEFURV0sCisrW200X3JlcXVpcmUoW19MVF9E RUNMX1NFRF0pZG5sCisrYWNfb3V0ZmlsZT1jb25mdGVzdC4kYWNfb2JqZXh0CisrZWNobyAiJGx0 X3NpbXBsZV9saW5rX3Rlc3RfY29kZSIgPmNvbmZ0ZXN0LiRhY19leHQKKytldmFsICIkYWNfbGlu ayIgMj4mMSA+L2Rldi9udWxsIHwgJFNFRCAnL14kL2Q7IC9eICorL2QnID5jb25mdGVzdC5lcnIK KytfbHRfbGlua2VyX2JvaWxlcnBsYXRlPWBjYXQgY29uZnRlc3QuZXJyYAorKyRSTSAtciBjb25m dGVzdCoKKytdKSMgX0xUX0xJTktFUl9CT0lMRVJQTEFURQorKworKyMgX0xUX1JFUVVJUkVEX0RB UldJTl9DSEVDS1MKKysjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyttNF9kZWZ1bl9vbmNl KFtfTFRfUkVRVUlSRURfREFSV0lOX0NIRUNLU10sWworKyAgY2FzZSAkaG9zdF9vcyBpbgorKyAg ICByaGFwc29keSogfCBkYXJ3aW4qKQorKyAgICBBQ19DSEVDS19UT09MKFtEU1lNVVRJTF0sIFtk c3ltdXRpbF0sIFs6XSkKKysgICAgQUNfQ0hFQ0tfVE9PTChbTk1FRElUXSwgW25tZWRpdF0sIFs6 XSkKKysgICAgQUNfQ0hFQ0tfVE9PTChbTElQT10sIFtsaXBvXSwgWzpdKQorKyAgICBBQ19DSEVD S19UT09MKFtPVE9PTF0sIFtvdG9vbF0sIFs6XSkKKysgICAgQUNfQ0hFQ0tfVE9PTChbT1RPT0w2 NF0sIFtvdG9vbDY0XSwgWzpdKQorKyAgICBfTFRfREVDTChbXSwgW0RTWU1VVElMXSwgWzFdLAor KyAgICAgIFtUb29sIHRvIG1hbmlwdWxhdGUgYXJjaGl2ZWQgRFdBUkYgZGVidWcgc3ltYm9sIGZp bGVzIG9uIE1hYyBPUyBYXSkKKysgICAgX0xUX0RFQ0woW10sIFtOTUVESVRdLCBbMV0sCisrICAg ICAgW1Rvb2wgdG8gY2hhbmdlIGdsb2JhbCB0byBsb2NhbCBzeW1ib2xzIG9uIE1hYyBPUyBYXSkK KysgICAgX0xUX0RFQ0woW10sIFtMSVBPXSwgWzFdLAorKyAgICAgIFtUb29sIHRvIG1hbmlwdWxh dGUgZmF0IG9iamVjdHMgYW5kIGFyY2hpdmVzIG9uIE1hYyBPUyBYXSkKKysgICAgX0xUX0RFQ0wo W10sIFtPVE9PTF0sIFsxXSwKKysgICAgICBbbGRkL3JlYWRlbGYgbGlrZSB0b29sIGZvciBNYWNo LU8gYmluYXJpZXMgb24gTWFjIE9TIFhdKQorKyAgICBfTFRfREVDTChbXSwgW09UT09MNjRdLCBb MV0sCisrICAgICAgW2xkZC9yZWFkZWxmIGxpa2UgdG9vbCBmb3IgNjQgYml0IE1hY2gtTyBiaW5h cmllcyBvbiBNYWMgT1MgWCAxMC40XSkKKysKKysgICAgQUNfQ0FDSEVfQ0hFQ0soW2ZvciAtc2lu Z2xlX21vZHVsZSBsaW5rZXIgZmxhZ10sW2x0X2N2X2FwcGxlX2NjX3NpbmdsZV9tb2RdLAorKyAg ICAgIFtsdF9jdl9hcHBsZV9jY19zaW5nbGVfbW9kPW5vCisrICAgICAgaWYgdGVzdCAteiAiJHtM VF9NVUxUSV9NT0RVTEV9IjsgdGhlbgorKwkjIEJ5IGRlZmF1bHQgd2Ugd2lsbCBhZGQgdGhlIC1z aW5nbGVfbW9kdWxlIGZsYWcuIFlvdSBjYW4gb3ZlcnJpZGUKKysJIyBieSBlaXRoZXIgc2V0dGlu ZyB0aGUgZW52aXJvbm1lbnQgdmFyaWFibGUgTFRfTVVMVElfTU9EVUxFCisrCSMgbm9uLWVtcHR5 IGF0IGNvbmZpZ3VyZSB0aW1lLCBvciBieSBhZGRpbmcgLW11bHRpX21vZHVsZSB0byB0aGUKKysJ IyBsaW5rIGZsYWdzLgorKwlybSAtcmYgbGliY29uZnRlc3QuZHlsaWIqCisrCWVjaG8gImludCBm b28odm9pZCl7cmV0dXJuIDE7fSIgPiBjb25mdGVzdC5jCisrCWVjaG8gIiRMVENDICRMVENGTEFH UyAkTERGTEFHUyAtbyBsaWJjb25mdGVzdC5keWxpYiBcCisrLWR5bmFtaWNsaWIgLVdsLC1zaW5n bGVfbW9kdWxlIGNvbmZ0ZXN0LmMiID4mQVNfTUVTU0FHRV9MT0dfRkQKKysJJExUQ0MgJExUQ0ZM QUdTICRMREZMQUdTIC1vIGxpYmNvbmZ0ZXN0LmR5bGliIFwKKysJICAtZHluYW1pY2xpYiAtV2ws LXNpbmdsZV9tb2R1bGUgY29uZnRlc3QuYyAyPmNvbmZ0ZXN0LmVycgorKyAgICAgICAgX2x0X3Jl c3VsdD0kPworKwlpZiB0ZXN0IC1mIGxpYmNvbmZ0ZXN0LmR5bGliICYmIHRlc3QgISAtcyBjb25m dGVzdC5lcnIgJiYgdGVzdCAkX2x0X3Jlc3VsdCA9IDA7IHRoZW4KKysJICBsdF9jdl9hcHBsZV9j Y19zaW5nbGVfbW9kPXllcworKwllbHNlCisrCSAgY2F0IGNvbmZ0ZXN0LmVyciA+JkFTX01FU1NB R0VfTE9HX0ZECisrCWZpCisrCXJtIC1yZiBsaWJjb25mdGVzdC5keWxpYioKKysJcm0gLWYgY29u ZnRlc3QuKgorKyAgICAgIGZpXSkKKysgICAgQUNfQ0FDSEVfQ0hFQ0soW2ZvciAtZXhwb3J0ZWRf c3ltYm9sc19saXN0IGxpbmtlciBmbGFnXSwKKysgICAgICBbbHRfY3ZfbGRfZXhwb3J0ZWRfc3lt Ym9sc19saXN0XSwKKysgICAgICBbbHRfY3ZfbGRfZXhwb3J0ZWRfc3ltYm9sc19saXN0PW5vCisr ICAgICAgc2F2ZV9MREZMQUdTPSRMREZMQUdTCisrICAgICAgZWNobyAiX21haW4iID4gY29uZnRl c3Quc3ltCisrICAgICAgTERGTEFHUz0iJExERkxBR1MgLVdsLC1leHBvcnRlZF9zeW1ib2xzX2xp c3QsY29uZnRlc3Quc3ltIgorKyAgICAgIEFDX0xJTktfSUZFTFNFKFtBQ19MQU5HX1BST0dSQU0o W10sW10pXSwKKysJW2x0X2N2X2xkX2V4cG9ydGVkX3N5bWJvbHNfbGlzdD15ZXNdLAorKwlbbHRf Y3ZfbGRfZXhwb3J0ZWRfc3ltYm9sc19saXN0PW5vXSkKKysJTERGTEFHUz0iJHNhdmVfTERGTEFH UyIKKysgICAgXSkKKysgICAgY2FzZSAkaG9zdF9vcyBpbgorKyAgICByaGFwc29keSogfCBkYXJ3 aW4xLltbMDEyXV0pCisrICAgICAgX2x0X2Rhcl9hbGxvd191bmRlZmluZWQ9JyR7d2x9LXVuZGVm aW5lZCAke3dsfXN1cHByZXNzJyA7OworKyAgICBkYXJ3aW4xLiopCisrICAgICAgX2x0X2Rhcl9h bGxvd191bmRlZmluZWQ9JyR7d2x9LWZsYXRfbmFtZXNwYWNlICR7d2x9LXVuZGVmaW5lZCAke3ds fXN1cHByZXNzJyA7OworKyAgICBkYXJ3aW4qKSAjIGRhcndpbiA1Lnggb24KKysgICAgICAjIGlm IHJ1bm5pbmcgb24gMTAuNSBvciBsYXRlciwgdGhlIGRlcGxveW1lbnQgdGFyZ2V0IGRlZmF1bHRz CisrICAgICAgIyB0byB0aGUgT1MgdmVyc2lvbiwgaWYgb24geDg2LCBhbmQgMTAuNCwgdGhlIGRl cGxveW1lbnQKKysgICAgICAjIHRhcmdldCBkZWZhdWx0cyB0byAxMC40LiBEb24ndCB5b3UgbG92 ZSBpdD8KKysgICAgICBjYXNlICR7TUFDT1NYX0RFUExPWU1FTlRfVEFSR0VULTEwLjB9LCRob3N0 IGluCisrCTEwLjAsKjg2Ki1kYXJ3aW44KnwxMC4wLCotZGFyd2luW1s5MV1dKikKKysJICBfbHRf ZGFyX2FsbG93X3VuZGVmaW5lZD0nJHt3bH0tdW5kZWZpbmVkICR7d2x9ZHluYW1pY19sb29rdXAn IDs7CisrCTEwLltbMDEyXV0qKQorKwkgIF9sdF9kYXJfYWxsb3dfdW5kZWZpbmVkPScke3dsfS1m bGF0X25hbWVzcGFjZSAke3dsfS11bmRlZmluZWQgJHt3bH1zdXBwcmVzcycgOzsKKysJMTAuKikK KysJICBfbHRfZGFyX2FsbG93X3VuZGVmaW5lZD0nJHt3bH0tdW5kZWZpbmVkICR7d2x9ZHluYW1p Y19sb29rdXAnIDs7CisrICAgICAgZXNhYworKyAgICA7OworKyAgZXNhYworKyAgICBpZiB0ZXN0 ICIkbHRfY3ZfYXBwbGVfY2Nfc2luZ2xlX21vZCIgPSAieWVzIjsgdGhlbgorKyAgICAgIF9sdF9k YXJfc2luZ2xlX21vZD0nJHNpbmdsZV9tb2R1bGUnCisrICAgIGZpCisrICAgIGlmIHRlc3QgIiRs dF9jdl9sZF9leHBvcnRlZF9zeW1ib2xzX2xpc3QiID0gInllcyI7IHRoZW4KKysgICAgICBfbHRf ZGFyX2V4cG9ydF9zeW1zPScgJHt3bH0tZXhwb3J0ZWRfc3ltYm9sc19saXN0LCRvdXRwdXRfb2Jq ZGlyLyR7bGlibmFtZX0tc3ltYm9scy5leHBzeW0nCisrICAgIGVsc2UKKysgICAgICBfbHRfZGFy X2V4cG9ydF9zeW1zPSd+JE5NRURJVCAtcyAkb3V0cHV0X29iamRpci8ke2xpYm5hbWV9LXN5bWJv bHMuZXhwc3ltICR7bGlifScKKysgICAgZmkKKysgICAgaWYgdGVzdCAiJERTWU1VVElMIiAhPSAi OiI7IHRoZW4KKysgICAgICBfbHRfZHN5bXV0aWw9J34kRFNZTVVUSUwgJGxpYiB8fCA6JworKyAg ICBlbHNlCisrICAgICAgX2x0X2RzeW11dGlsPQorKyAgICBmaQorKyAgICA7OworKyAgZXNhYwor K10pCisrCisrCisrIyBfTFRfREFSV0lOX0xJTktFUl9GRUFUVVJFUworKyMgLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KKysjIENoZWNrcyBmb3IgbGlua2VyIGFuZCBjb21waWxlciBmZWF0dXJl cyBvbiBkYXJ3aW4KKyttNF9kZWZ1bihbX0xUX0RBUldJTl9MSU5LRVJfRkVBVFVSRVNdLAorK1sK KysgIG00X3JlcXVpcmUoW19MVF9SRVFVSVJFRF9EQVJXSU5fQ0hFQ0tTXSkKKysgIF9MVF9UQUdW QVIoYXJjaGl2ZV9jbWRzX25lZWRfbGMsICQxKT1ubworKyAgX0xUX1RBR1ZBUihoYXJkY29kZV9k aXJlY3QsICQxKT1ubworKyAgX0xUX1RBR1ZBUihoYXJkY29kZV9hdXRvbWF0aWMsICQxKT15ZXMK KysgIF9MVF9UQUdWQVIoaGFyZGNvZGVfc2hsaWJwYXRoX3ZhciwgJDEpPXVuc3VwcG9ydGVkCisr ICBfTFRfVEFHVkFSKHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjLCAkMSk9JycKKysgIF9MVF9UQUdW QVIobGlua19hbGxfZGVwbGlicywgJDEpPXllcworKyAgX0xUX1RBR1ZBUihhbGxvd191bmRlZmlu ZWRfZmxhZywgJDEpPSIkX2x0X2Rhcl9hbGxvd191bmRlZmluZWQiCisrICBjYXNlICRjY19iYXNl bmFtZSBpbgorKyAgICAgaWZvcnQqKSBfbHRfZGFyX2Nhbl9zaGFyZWQ9eWVzIDs7CisrICAgICAq KSBfbHRfZGFyX2Nhbl9zaGFyZWQ9JEdDQyA7OworKyAgZXNhYworKyAgaWYgdGVzdCAiJF9sdF9k YXJfY2FuX3NoYXJlZCIgPSAieWVzIjsgdGhlbgorKyAgICBvdXRwdXRfdmVyYm9zZV9saW5rX2Nt ZD1lY2hvCisrICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9IlwkQ0MgLWR5bmFtaWNs aWIgXCRhbGxvd191bmRlZmluZWRfZmxhZyAtbyBcJGxpYiBcJGxpYm9ianMgXCRkZXBsaWJzIFwk Y29tcGlsZXJfZmxhZ3MgLWluc3RhbGxfbmFtZSBcJHJwYXRoL1wkc29uYW1lIFwkdmVyc3RyaW5n ICRfbHRfZGFyX3NpbmdsZV9tb2Qke19sdF9kc3ltdXRpbH0iCisrICAgIF9MVF9UQUdWQVIobW9k dWxlX2NtZHMsICQxKT0iXCRDQyBcJGFsbG93X3VuZGVmaW5lZF9mbGFnIC1vIFwkbGliIC1idW5k bGUgXCRsaWJvYmpzIFwkZGVwbGlicyBcJGNvbXBpbGVyX2ZsYWdzJHtfbHRfZHN5bXV0aWx9Igor KyAgICBfTFRfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0ic2VkICdzLF4sXywnIDwg XCRleHBvcnRfc3ltYm9scyA+IFwkb3V0cHV0X29iamRpci9cJHtsaWJuYW1lfS1zeW1ib2xzLmV4 cHN5bX5cJENDIC1keW5hbWljbGliIFwkYWxsb3dfdW5kZWZpbmVkX2ZsYWcgLW8gXCRsaWIgXCRs aWJvYmpzIFwkZGVwbGlicyBcJGNvbXBpbGVyX2ZsYWdzIC1pbnN0YWxsX25hbWUgXCRycGF0aC9c JHNvbmFtZSBcJHZlcnN0cmluZyAke19sdF9kYXJfc2luZ2xlX21vZH0ke19sdF9kYXJfZXhwb3J0 X3N5bXN9JHtfbHRfZHN5bXV0aWx9IgorKyAgICBfTFRfVEFHVkFSKG1vZHVsZV9leHBzeW1fY21k cywgJDEpPSJzZWQgLWUgJ3MsXixfLCcgPCBcJGV4cG9ydF9zeW1ib2xzID4gXCRvdXRwdXRfb2Jq ZGlyL1wke2xpYm5hbWV9LXN5bWJvbHMuZXhwc3ltflwkQ0MgXCRhbGxvd191bmRlZmluZWRfZmxh ZyAtbyBcJGxpYiAtYnVuZGxlIFwkbGlib2JqcyBcJGRlcGxpYnMgXCRjb21waWxlcl9mbGFncyR7 X2x0X2Rhcl9leHBvcnRfc3ltc30ke19sdF9kc3ltdXRpbH0iCisrICAgIG00X2lmKFskMV0sIFtD WFhdLAorK1sgICBpZiB0ZXN0ICIkbHRfY3ZfYXBwbGVfY2Nfc2luZ2xlX21vZCIgIT0gInllcyI7 IHRoZW4KKysgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSJcJENDIC1yIC1rZWVw X3ByaXZhdGVfZXh0ZXJucyAtbm9zdGRsaWIgLW8gXCR7bGlifS1tYXN0ZXIubyBcJGxpYm9ianN+ XCRDQyAtZHluYW1pY2xpYiBcJGFsbG93X3VuZGVmaW5lZF9mbGFnIC1vIFwkbGliIFwke2xpYn0t bWFzdGVyLm8gXCRkZXBsaWJzIFwkY29tcGlsZXJfZmxhZ3MgLWluc3RhbGxfbmFtZSBcJHJwYXRo L1wkc29uYW1lIFwkdmVyc3RyaW5nJHtfbHRfZHN5bXV0aWx9IgorKyAgICAgIF9MVF9UQUdWQVIo YXJjaGl2ZV9leHBzeW1fY21kcywgJDEpPSJzZWQgJ3MsXixfLCcgPCBcJGV4cG9ydF9zeW1ib2xz ID4gXCRvdXRwdXRfb2JqZGlyL1wke2xpYm5hbWV9LXN5bWJvbHMuZXhwc3ltflwkQ0MgLXIgLWtl ZXBfcHJpdmF0ZV9leHRlcm5zIC1ub3N0ZGxpYiAtbyBcJHtsaWJ9LW1hc3Rlci5vIFwkbGlib2Jq c35cJENDIC1keW5hbWljbGliIFwkYWxsb3dfdW5kZWZpbmVkX2ZsYWcgLW8gXCRsaWIgXCR7bGli fS1tYXN0ZXIubyBcJGRlcGxpYnMgXCRjb21waWxlcl9mbGFncyAtaW5zdGFsbF9uYW1lIFwkcnBh dGgvXCRzb25hbWUgXCR2ZXJzdHJpbmcke19sdF9kYXJfZXhwb3J0X3N5bXN9JHtfbHRfZHN5bXV0 aWx9IgorKyAgICBmaQorK10sW10pCisrICBlbHNlCisrICBfTFRfVEFHVkFSKGxkX3NobGlicywg JDEpPW5vCisrICBmaQorK10pCisrCisrIyBfTFRfU1lTX01PRFVMRV9QQVRIX0FJWAorKyMgLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KKysjIExpbmtzIGEgbWluaW1hbCBwcm9ncmFtIGFuZCBjaGVj a3MgdGhlIGV4ZWN1dGFibGUKKysjIGZvciB0aGUgc3lzdGVtIGRlZmF1bHQgaGFyZGNvZGVkIGxp YnJhcnkgcGF0aC4gSW4gbW9zdCBjYXNlcywKKysjIHRoaXMgaXMgL3Vzci9saWI6L2xpYiwgYnV0 IHdoZW4gdGhlIE1QSSBjb21waWxlcnMgYXJlIHVzZWQKKysjIHRoZSBsb2NhdGlvbiBvZiB0aGUg Y29tbXVuaWNhdGlvbiBhbmQgTVBJIGxpYnMgYXJlIGluY2x1ZGVkIHRvby4KKysjIElmIHdlIGRv bid0IGZpbmQgYW55dGhpbmcsIHVzZSB0aGUgZGVmYXVsdCBsaWJyYXJ5IHBhdGggYWNjb3JkaW5n CisrIyB0byB0aGUgYWl4IGxkIG1hbnVhbC4KKyttNF9kZWZ1bihbX0xUX1NZU19NT0RVTEVfUEFU SF9BSVhdLAorK1ttNF9yZXF1aXJlKFtfTFRfREVDTF9TRURdKWRubAorK0FDX0xJTktfSUZFTFNF KEFDX0xBTkdfUFJPR1JBTSxbCisrbHRfYWl4X2xpYnBhdGhfc2VkPScKKysgICAgL0ltcG9ydCBG aWxlIFN0cmluZ3MvLC9eJC8geworKwkvXjAvIHsKKysJICAgIHMvXjAgICpcKC4qXCkkL1wxLwor KwkgICAgcAorKwl9CisrICAgIH0nCisrYWl4X2xpYnBhdGg9YGR1bXAgLUggY29uZnRlc3QkYWNf ZXhlZXh0IDI+L2Rldi9udWxsIHwgJFNFRCAtbiAtZSAiJGx0X2FpeF9saWJwYXRoX3NlZCJgCisr IyBDaGVjayBmb3IgYSA2NC1iaXQgb2JqZWN0IGlmIHdlIGRpZG4ndCBmaW5kIGFueXRoaW5nLgor K2lmIHRlc3QgLXogIiRhaXhfbGlicGF0aCI7IHRoZW4KKysgIGFpeF9saWJwYXRoPWBkdW1wIC1I WDY0IGNvbmZ0ZXN0JGFjX2V4ZWV4dCAyPi9kZXYvbnVsbCB8ICRTRUQgLW4gLWUgIiRsdF9haXhf bGlicGF0aF9zZWQiYAorK2ZpXSxbXSkKKytpZiB0ZXN0IC16ICIkYWl4X2xpYnBhdGgiOyB0aGVu IGFpeF9saWJwYXRoPSIvdXNyL2xpYjovbGliIjsgZmkKKytdKSMgX0xUX1NZU19NT0RVTEVfUEFU SF9BSVgKKysKKysKKysjIF9MVF9TSEVMTF9JTklUKEFSRykKKysjIC0tLS0tLS0tLS0tLS0tLS0t LS0KKyttNF9kZWZpbmUoW19MVF9TSEVMTF9JTklUXSwKKytbaWZkZWYoW0FDX0RJVkVSU0lPTl9O T1RJQ0VdLAorKwkgICAgIFtBQ19ESVZFUlRfUFVTSChBQ19ESVZFUlNJT05fTk9USUNFKV0sCisr CSBbQUNfRElWRVJUX1BVU0goTk9USUNFKV0pCisrJDEKKytBQ19ESVZFUlRfUE9QCisrXSkjIF9M VF9TSEVMTF9JTklUCisrCisrCisrIyBfTFRfUFJPR19FQ0hPX0JBQ0tTTEFTSAorKyMgLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KKysjIEFkZCBzb21lIGNvZGUgdG8gdGhlIHN0YXJ0IG9mIHRoZSBn ZW5lcmF0ZWQgY29uZmlndXJlIHNjcmlwdCB3aGljaAorKyMgd2lsbCBmaW5kIGFuIGVjaG8gY29t bWFuZCB3aGljaCBkb2Vzbid0IGludGVycHJldCBiYWNrc2xhc2hlcy4KKyttNF9kZWZ1bihbX0xU X1BST0dfRUNIT19CQUNLU0xBU0hdLAorK1tfTFRfU0hFTExfSU5JVChbCisrIyBDaGVjayB0aGF0 IHdlIGFyZSBydW5uaW5nIHVuZGVyIHRoZSBjb3JyZWN0IHNoZWxsLgorK1NIRUxMPSR7Q09ORklH X1NIRUxMLS9iaW4vc2h9CisrCisrY2FzZSBYJGx0X0VDSE8gaW4KKytYKi0tZmFsbGJhY2stZWNo bykKKysgICMgUmVtb3ZlIG9uZSBsZXZlbCBvZiBxdW90YXRpb24gKHdoaWNoIHdhcyByZXF1aXJl ZCBmb3IgTWFrZSkuCisrICBFQ0hPPWBlY2hvICIkbHRfRUNITyIgfCBzZWQgJ3MsXFxcXFxbJF1c XFskXTAsJ1skXTAnLCdgCisrICA7OworK2VzYWMKKysKKytFQ0hPPSR7bHRfRUNITy1lY2hvfQor K2lmIHRlc3QgIlhbJF0xIiA9IFgtLW5vLXJlZXhlYzsgdGhlbgorKyAgIyBEaXNjYXJkIHRoZSAt LW5vLXJlZXhlYyBmbGFnLCBhbmQgY29udGludWUuCisrICBzaGlmdAorK2VsaWYgdGVzdCAiWFsk XTEiID0gWC0tZmFsbGJhY2stZWNobzsgdGhlbgorKyAgIyBBdm9pZCBpbmxpbmUgZG9jdW1lbnQg aGVyZSwgaXQgbWF5IGJlIGxlZnQgb3ZlcgorKyAgOgorK2VsaWYgdGVzdCAiWGB7ICRFQ0hPICdc dCc7IH0gMj4vZGV2L251bGxgIiA9ICdYXHQnIDsgdGhlbgorKyAgIyBZaXBwZWUsICRFQ0hPIHdv cmtzIQorKyAgOgorK2Vsc2UKKysgICMgUmVzdGFydCB1bmRlciB0aGUgY29ycmVjdCBzaGVsbC4K KysgIGV4ZWMgJFNIRUxMICJbJF0wIiAtLW5vLXJlZXhlYyAkezErIlskXUAifQorK2ZpCisrCisr aWYgdGVzdCAiWFskXTEiID0gWC0tZmFsbGJhY2stZWNobzsgdGhlbgorKyAgIyB1c2VkIGFzIGZh bGxiYWNrIGVjaG8KKysgIHNoaWZ0CisrICBjYXQgPDxfTFRfRU9GCisrWyRdKgorK19MVF9FT0YK KysgIGV4aXQgMAorK2ZpCisrCisrIyBUaGUgSFAtVVgga3NoIGFuZCBQT1NJWCBzaGVsbCBwcmlu dCB0aGUgdGFyZ2V0IGRpcmVjdG9yeSB0byBzdGRvdXQKKysjIGlmIENEUEFUSCBpcyBzZXQuCisr KHVuc2V0IENEUEFUSCkgPi9kZXYvbnVsbCAyPiYxICYmIHVuc2V0IENEUEFUSAorKworK2lmIHRl c3QgLXogIiRsdF9FQ0hPIjsgdGhlbgorKyAgaWYgdGVzdCAiWCR7ZWNob190ZXN0X3N0cmluZytz ZXR9IiAhPSBYc2V0OyB0aGVuCisrICAgICMgZmluZCBhIHN0cmluZyBhcyBsYXJnZSBhcyBwb3Nz aWJsZSwgYXMgbG9uZyBhcyB0aGUgc2hlbGwgY2FuIGNvcGUgd2l0aCBpdAorKyAgICBmb3IgY21k IGluICdzZWQgNTBxICJbJF0wIicgJ3NlZCAyMHEgIlskXTAiJyAnc2VkIDEwcSAiWyRdMCInICdz ZWQgMnEgIlskXTAiJyAnZWNobyB0ZXN0JzsgZG8KKysgICAgICAjIGV4cGVjdGVkIHNpemVzOiBs ZXNzIHRoYW4gMktiLCAxS2IsIDUxMiBieXRlcywgMTYgYnl0ZXMsIC4uLgorKyAgICAgIGlmIHsg ZWNob190ZXN0X3N0cmluZz1gZXZhbCAkY21kYDsgfSAyPi9kZXYvbnVsbCAmJgorKwkgeyB0ZXN0 ICJYJGVjaG9fdGVzdF9zdHJpbmciID0gIlgkZWNob190ZXN0X3N0cmluZyI7IH0gMj4vZGV2L251 bGwKKysgICAgICB0aGVuCisrICAgICAgICBicmVhaworKyAgICAgIGZpCisrICAgIGRvbmUKKysg IGZpCisrCisrICBpZiB0ZXN0ICJYYHsgJEVDSE8gJ1x0JzsgfSAyPi9kZXYvbnVsbGAiID0gJ1hc dCcgJiYKKysgICAgIGVjaG9fdGVzdGluZ19zdHJpbmc9YHsgJEVDSE8gIiRlY2hvX3Rlc3Rfc3Ry aW5nIjsgfSAyPi9kZXYvbnVsbGAgJiYKKysgICAgIHRlc3QgIlgkZWNob190ZXN0aW5nX3N0cmlu ZyIgPSAiWCRlY2hvX3Rlc3Rfc3RyaW5nIjsgdGhlbgorKyAgICA6CisrICBlbHNlCisrICAgICMg VGhlIFNvbGFyaXMsIEFJWCwgYW5kIERpZ2l0YWwgVW5peCBkZWZhdWx0IGVjaG8gcHJvZ3JhbXMg dW5xdW90ZQorKyAgICAjIGJhY2tzbGFzaGVzLiAgVGhpcyBtYWtlcyBpdCBpbXBvc3NpYmxlIHRv IHF1b3RlIGJhY2tzbGFzaGVzIHVzaW5nCisrICAgICMgICBlY2hvICIkc29tZXRoaW5nIiB8IHNl ZCAncy9cXC9cXFxcL2cnCisrICAgICMKKysgICAgIyBTbywgZmlyc3Qgd2UgbG9vayBmb3IgYSB3 b3JraW5nIGVjaG8gaW4gdGhlIHVzZXIncyBQQVRILgorKworKyAgICBsdF9zYXZlX2lmcz0iJElG UyI7IElGUz0kUEFUSF9TRVBBUkFUT1IKKysgICAgZm9yIGRpciBpbiAkUEFUSCAvdXNyL3VjYjsg ZG8KKysgICAgICBJRlM9IiRsdF9zYXZlX2lmcyIKKysgICAgICBpZiAodGVzdCAtZiAkZGlyL2Vj aG8gfHwgdGVzdCAtZiAkZGlyL2VjaG8kYWNfZXhlZXh0KSAmJgorKyAgICAgICAgIHRlc3QgIlhg KCRkaXIvZWNobyAnXHQnKSAyPi9kZXYvbnVsbGAiID0gJ1hcdCcgJiYKKysgICAgICAgICBlY2hv X3Rlc3Rpbmdfc3RyaW5nPWAoJGRpci9lY2hvICIkZWNob190ZXN0X3N0cmluZyIpIDI+L2Rldi9u dWxsYCAmJgorKyAgICAgICAgIHRlc3QgIlgkZWNob190ZXN0aW5nX3N0cmluZyIgPSAiWCRlY2hv X3Rlc3Rfc3RyaW5nIjsgdGhlbgorKyAgICAgICAgRUNITz0iJGRpci9lY2hvIgorKyAgICAgICAg YnJlYWsKKysgICAgICBmaQorKyAgICBkb25lCisrICAgIElGUz0iJGx0X3NhdmVfaWZzIgorKwor KyAgICBpZiB0ZXN0ICJYJEVDSE8iID0gWGVjaG87IHRoZW4KKysgICAgICAjIFdlIGRpZG4ndCBm aW5kIGEgYmV0dGVyIGVjaG8sIHNvIGxvb2sgZm9yIGFsdGVybmF0aXZlcy4KKysgICAgICBpZiB0 ZXN0ICJYYHsgcHJpbnQgLXIgJ1x0JzsgfSAyPi9kZXYvbnVsbGAiID0gJ1hcdCcgJiYKKysgICAg ICAgICBlY2hvX3Rlc3Rpbmdfc3RyaW5nPWB7IHByaW50IC1yICIkZWNob190ZXN0X3N0cmluZyI7 IH0gMj4vZGV2L251bGxgICYmCisrICAgICAgICAgdGVzdCAiWCRlY2hvX3Rlc3Rpbmdfc3RyaW5n IiA9ICJYJGVjaG9fdGVzdF9zdHJpbmciOyB0aGVuCisrICAgICAgICAjIFRoaXMgc2hlbGwgaGFz IGEgYnVpbHRpbiBwcmludCAtciB0aGF0IGRvZXMgdGhlIHRyaWNrLgorKyAgICAgICAgRUNITz0n cHJpbnQgLXInCisrICAgICAgZWxpZiB7IHRlc3QgLWYgL2Jpbi9rc2ggfHwgdGVzdCAtZiAvYmlu L2tzaCRhY19leGVleHQ7IH0gJiYKKysJICAgdGVzdCAiWCRDT05GSUdfU0hFTEwiICE9IFgvYmlu L2tzaDsgdGhlbgorKyAgICAgICAgIyBJZiB3ZSBoYXZlIGtzaCwgdHJ5IHJ1bm5pbmcgY29uZmln dXJlIGFnYWluIHdpdGggaXQuCisrICAgICAgICBPUklHSU5BTF9DT05GSUdfU0hFTEw9JHtDT05G SUdfU0hFTEwtL2Jpbi9zaH0KKysgICAgICAgIGV4cG9ydCBPUklHSU5BTF9DT05GSUdfU0hFTEwK KysgICAgICAgIENPTkZJR19TSEVMTD0vYmluL2tzaAorKyAgICAgICAgZXhwb3J0IENPTkZJR19T SEVMTAorKyAgICAgICAgZXhlYyAkQ09ORklHX1NIRUxMICJbJF0wIiAtLW5vLXJlZXhlYyAkezEr IlskXUAifQorKyAgICAgIGVsc2UKKysgICAgICAgICMgVHJ5IHVzaW5nIHByaW50Zi4KKysgICAg ICAgIEVDSE89J3ByaW50ZiAlc1xuJworKyAgICAgICAgaWYgdGVzdCAiWGB7ICRFQ0hPICdcdCc7 IH0gMj4vZGV2L251bGxgIiA9ICdYXHQnICYmCisrCSAgIGVjaG9fdGVzdGluZ19zdHJpbmc9YHsg JEVDSE8gIiRlY2hvX3Rlc3Rfc3RyaW5nIjsgfSAyPi9kZXYvbnVsbGAgJiYKKysJICAgdGVzdCAi WCRlY2hvX3Rlc3Rpbmdfc3RyaW5nIiA9ICJYJGVjaG9fdGVzdF9zdHJpbmciOyB0aGVuCisrCSAg IyBDb29sLCBwcmludGYgd29ya3MKKysJICA6CisrICAgICAgICBlbGlmIGVjaG9fdGVzdGluZ19z dHJpbmc9YCgkT1JJR0lOQUxfQ09ORklHX1NIRUxMICJbJF0wIiAtLWZhbGxiYWNrLWVjaG8gJ1x0 JykgMj4vZGV2L251bGxgICYmCisrCSAgICAgdGVzdCAiWCRlY2hvX3Rlc3Rpbmdfc3RyaW5nIiA9 ICdYXHQnICYmCisrCSAgICAgZWNob190ZXN0aW5nX3N0cmluZz1gKCRPUklHSU5BTF9DT05GSUdf U0hFTEwgIlskXTAiIC0tZmFsbGJhY2stZWNobyAiJGVjaG9fdGVzdF9zdHJpbmciKSAyPi9kZXYv bnVsbGAgJiYKKysJICAgICB0ZXN0ICJYJGVjaG9fdGVzdGluZ19zdHJpbmciID0gIlgkZWNob190 ZXN0X3N0cmluZyI7IHRoZW4KKysJICBDT05GSUdfU0hFTEw9JE9SSUdJTkFMX0NPTkZJR19TSEVM TAorKwkgIGV4cG9ydCBDT05GSUdfU0hFTEwKKysJICBTSEVMTD0iJENPTkZJR19TSEVMTCIKKysJ ICBleHBvcnQgU0hFTEwKKysJICBFQ0hPPSIkQ09ORklHX1NIRUxMIFskXTAgLS1mYWxsYmFjay1l Y2hvIgorKyAgICAgICAgZWxpZiBlY2hvX3Rlc3Rpbmdfc3RyaW5nPWAoJENPTkZJR19TSEVMTCAi WyRdMCIgLS1mYWxsYmFjay1lY2hvICdcdCcpIDI+L2Rldi9udWxsYCAmJgorKwkgICAgIHRlc3Qg IlgkZWNob190ZXN0aW5nX3N0cmluZyIgPSAnWFx0JyAmJgorKwkgICAgIGVjaG9fdGVzdGluZ19z dHJpbmc9YCgkQ09ORklHX1NIRUxMICJbJF0wIiAtLWZhbGxiYWNrLWVjaG8gIiRlY2hvX3Rlc3Rf c3RyaW5nIikgMj4vZGV2L251bGxgICYmCisrCSAgICAgdGVzdCAiWCRlY2hvX3Rlc3Rpbmdfc3Ry aW5nIiA9ICJYJGVjaG9fdGVzdF9zdHJpbmciOyB0aGVuCisrCSAgRUNITz0iJENPTkZJR19TSEVM TCBbJF0wIC0tZmFsbGJhY2stZWNobyIKKysgICAgICAgIGVsc2UKKysJICAjIG1heWJlIHdpdGgg YSBzbWFsbGVyIHN0cmluZy4uLgorKwkgIHByZXY9OgorKworKwkgIGZvciBjbWQgaW4gJ2VjaG8g dGVzdCcgJ3NlZCAycSAiWyRdMCInICdzZWQgMTBxICJbJF0wIicgJ3NlZCAyMHEgIlskXTAiJyAn c2VkIDUwcSAiWyRdMCInOyBkbworKwkgICAgaWYgeyB0ZXN0ICJYJGVjaG9fdGVzdF9zdHJpbmci ID0gIlhgZXZhbCAkY21kYCI7IH0gMj4vZGV2L251bGwKKysJICAgIHRoZW4KKysJICAgICAgYnJl YWsKKysJICAgIGZpCisrCSAgICBwcmV2PSIkY21kIgorKwkgIGRvbmUKKysKKysJICBpZiB0ZXN0 ICIkcHJldiIgIT0gJ3NlZCA1MHEgIlskXTAiJzsgdGhlbgorKwkgICAgZWNob190ZXN0X3N0cmlu Zz1gZXZhbCAkcHJldmAKKysJICAgIGV4cG9ydCBlY2hvX3Rlc3Rfc3RyaW5nCisrCSAgICBleGVj ICR7T1JJR0lOQUxfQ09ORklHX1NIRUxMLSR7Q09ORklHX1NIRUxMLS9iaW4vc2h9fSAiWyRdMCIg JHsxKyJbJF1AIn0KKysJICBlbHNlCisrCSAgICAjIE9vcHMuICBXZSBsb3N0IGNvbXBsZXRlbHks IHNvIGp1c3Qgc3RpY2sgd2l0aCBlY2hvLgorKwkgICAgRUNITz1lY2hvCisrCSAgZmkKKysgICAg ICAgIGZpCisrICAgICAgZmkKKysgICAgZmkKKysgIGZpCisrZmkKKysKKysjIENvcHkgZWNobyBh bmQgcXVvdGUgdGhlIGNvcHkgc3VpdGFibHkgZm9yIHBhc3NpbmcgdG8gbGlidG9vbCBmcm9tCisr IyB0aGUgTWFrZWZpbGUsIGluc3RlYWQgb2YgcXVvdGluZyB0aGUgb3JpZ2luYWwsIHdoaWNoIGlz IHVzZWQgbGF0ZXIuCisrbHRfRUNITz0kRUNITworK2lmIHRlc3QgIlgkbHRfRUNITyIgPSAiWCRD T05GSUdfU0hFTEwgWyRdMCAtLWZhbGxiYWNrLWVjaG8iOyB0aGVuCisrICAgbHRfRUNITz0iJENP TkZJR19TSEVMTCBcXFwkXFskXTAgLS1mYWxsYmFjay1lY2hvIgorK2ZpCisrCisrQUNfU1VCU1Qo bHRfRUNITykKKytdKQorK19MVF9ERUNMKFtdLCBbU0hFTExdLCBbMV0sIFtTaGVsbCB0byB1c2Ug d2hlbiBpbnZva2luZyBzaGVsbCBzY3JpcHRzXSkKKytfTFRfREVDTChbXSwgW0VDSE9dLCBbMV0s CisrICAgIFtBbiBlY2hvIHByb2dyYW0gdGhhdCBkb2VzIG5vdCBpbnRlcnByZXQgYmFja3NsYXNo ZXNdKQorK10pIyBfTFRfUFJPR19FQ0hPX0JBQ0tTTEFTSAorKworKworKyMgX0xUX0VOQUJMRV9M T0NLCisrIyAtLS0tLS0tLS0tLS0tLS0KKyttNF9kZWZ1bihbX0xUX0VOQUJMRV9MT0NLXSwKKytb QUNfQVJHX0VOQUJMRShbbGlidG9vbC1sb2NrXSwKKysgIFtBU19IRUxQX1NUUklORyhbLS1kaXNh YmxlLWxpYnRvb2wtbG9ja10sCisrICAgIFthdm9pZCBsb2NraW5nIChtaWdodCBicmVhayBwYXJh bGxlbCBidWlsZHMpXSldKQorK3Rlc3QgIngkZW5hYmxlX2xpYnRvb2xfbG9jayIgIT0geG5vICYm IGVuYWJsZV9saWJ0b29sX2xvY2s9eWVzCisrCisrIyBTb21lIGZsYWdzIG5lZWQgdG8gYmUgcHJv cGFnYXRlZCB0byB0aGUgY29tcGlsZXIgb3IgbGlua2VyIGZvciBnb29kCisrIyBsaWJ0b29sIHN1 cHBvcnQuCisrY2FzZSAkaG9zdCBpbgorK2lhNjQtKi1ocHV4KikKKysgICMgRmluZCBvdXQgd2hp Y2ggQUJJIHdlIGFyZSB1c2luZy4KKysgIGVjaG8gJ2ludCBpOycgPiBjb25mdGVzdC4kYWNfZXh0 CisrICBpZiBBQ19UUllfRVZBTChhY19jb21waWxlKTsgdGhlbgorKyAgICBjYXNlIGAvdXNyL2Jp bi9maWxlIGNvbmZ0ZXN0LiRhY19vYmpleHRgIGluCisrICAgICAgKkVMRi0zMiopCisrCUhQVVhf SUE2NF9NT0RFPSIzMiIKKysJOzsKKysgICAgICAqRUxGLTY0KikKKysJSFBVWF9JQTY0X01PREU9 IjY0IgorKwk7OworKyAgICBlc2FjCisrICBmaQorKyAgcm0gLXJmIGNvbmZ0ZXN0KgorKyAgOzsK KysqLSotaXJpeDYqKQorKyAgIyBGaW5kIG91dCB3aGljaCBBQkkgd2UgYXJlIHVzaW5nLgorKyAg ZWNobyAnWyNdbGluZSBfX29saW5lX18gImNvbmZpZ3VyZSInID4gY29uZnRlc3QuJGFjX2V4dAor KyAgaWYgQUNfVFJZX0VWQUwoYWNfY29tcGlsZSk7IHRoZW4KKysgICAgaWYgdGVzdCAiJGx0X2N2 X3Byb2dfZ251X2xkIiA9IHllczsgdGhlbgorKyAgICAgIGNhc2UgYC91c3IvYmluL2ZpbGUgY29u ZnRlc3QuJGFjX29iamV4dGAgaW4KKysJKjMyLWJpdCopCisrCSAgTEQ9IiR7TEQtbGR9IC1tZWxm MzJic21pcCIKKysJICA7OworKwkqTjMyKikKKysJICBMRD0iJHtMRC1sZH0gLW1lbGYzMmJtaXBu MzIiCisrCSAgOzsKKysJKjY0LWJpdCopCisrCSAgTEQ9IiR7TEQtbGR9IC1tZWxmNjRibWlwIgor Kwk7OworKyAgICAgIGVzYWMKKysgICAgZWxzZQorKyAgICAgIGNhc2UgYC91c3IvYmluL2ZpbGUg Y29uZnRlc3QuJGFjX29iamV4dGAgaW4KKysJKjMyLWJpdCopCisrCSAgTEQ9IiR7TEQtbGR9IC0z MiIKKysJICA7OworKwkqTjMyKikKKysJICBMRD0iJHtMRC1sZH0gLW4zMiIKKysJICA7OworKwkq NjQtYml0KikKKysJICBMRD0iJHtMRC1sZH0gLTY0IgorKwkgIDs7CisrICAgICAgZXNhYworKyAg ICBmaQorKyAgZmkKKysgIHJtIC1yZiBjb25mdGVzdCoKKysgIDs7CisrCisreDg2XzY0LSprZnJl ZWJzZCotZ251fHg4Nl82NC0qbGludXgqfHBwYyotKmxpbnV4Knxwb3dlcnBjKi0qbGludXgqfCBc CisrczM5MCotKmxpbnV4KnxzMzkwKi0qdHBmKnxzcGFyYyotKmxpbnV4KikKKysgICMgRmluZCBv dXQgd2hpY2ggQUJJIHdlIGFyZSB1c2luZy4KKysgIGVjaG8gJ2ludCBpOycgPiBjb25mdGVzdC4k YWNfZXh0CisrICBpZiBBQ19UUllfRVZBTChhY19jb21waWxlKTsgdGhlbgorKyAgICBjYXNlIGAv dXNyL2Jpbi9maWxlIGNvbmZ0ZXN0Lm9gIGluCisrICAgICAgKjMyLWJpdCopCisrCWNhc2UgJGhv c3QgaW4KKysJICB4ODZfNjQtKmtmcmVlYnNkKi1nbnUpCisrCSAgICBMRD0iJHtMRC1sZH0gLW0g ZWxmX2kzODZfZmJzZCIKKysJICAgIDs7CisrCSAgeDg2XzY0LSpsaW51eCopCisrCSAgICBMRD0i JHtMRC1sZH0gLW0gZWxmX2kzODYiCisrCSAgICA7OworKwkgIHBwYzY0LSpsaW51eCp8cG93ZXJw YzY0LSpsaW51eCopCisrCSAgICBMRD0iJHtMRC1sZH0gLW0gZWxmMzJwcGNsaW51eCIKKysJICAg IDs7CisrCSAgczM5MHgtKmxpbnV4KikKKysJICAgIExEPSIke0xELWxkfSAtbSBlbGZfczM5MCIK KysJICAgIDs7CisrCSAgc3BhcmM2NC0qbGludXgqKQorKwkgICAgTEQ9IiR7TEQtbGR9IC1tIGVs ZjMyX3NwYXJjIgorKwkgICAgOzsKKysJZXNhYworKwk7OworKyAgICAgICo2NC1iaXQqKQorKwlj YXNlICRob3N0IGluCisrCSAgeDg2XzY0LSprZnJlZWJzZCotZ251KQorKwkgICAgTEQ9IiR7TEQt bGR9IC1tIGVsZl94ODZfNjRfZmJzZCIKKysJICAgIDs7CisrCSAgeDg2XzY0LSpsaW51eCopCisr CSAgICBMRD0iJHtMRC1sZH0gLW0gZWxmX3g4Nl82NCIKKysJICAgIDs7CisrCSAgcHBjKi0qbGlu dXgqfHBvd2VycGMqLSpsaW51eCopCisrCSAgICBMRD0iJHtMRC1sZH0gLW0gZWxmNjRwcGMiCisr CSAgICA7OworKwkgIHMzOTAqLSpsaW51eCp8czM5MCotKnRwZiopCisrCSAgICBMRD0iJHtMRC1s ZH0gLW0gZWxmNjRfczM5MCIKKysJICAgIDs7CisrCSAgc3BhcmMqLSpsaW51eCopCisrCSAgICBM RD0iJHtMRC1sZH0gLW0gZWxmNjRfc3BhcmMiCisrCSAgICA7OworKwllc2FjCisrCTs7CisrICAg IGVzYWMKKysgIGZpCisrICBybSAtcmYgY29uZnRlc3QqCisrICA7OworKworKyotKi1zY28zLjJ2 NSopCisrICAjIE9uIFNDTyBPcGVuU2VydmVyIDUsIHdlIG5lZWQgLWJlbGYgdG8gZ2V0IGZ1bGwt ZmVhdHVyZWQgYmluYXJpZXMuCisrICBTQVZFX0NGTEFHUz0iJENGTEFHUyIKKysgIENGTEFHUz0i JENGTEFHUyAtYmVsZiIKKysgIEFDX0NBQ0hFX0NIRUNLKFt3aGV0aGVyIHRoZSBDIGNvbXBpbGVy IG5lZWRzIC1iZWxmXSwgbHRfY3ZfY2NfbmVlZHNfYmVsZiwKKysgICAgW0FDX0xBTkdfUFVTSChD KQorKyAgICAgQUNfTElOS19JRkVMU0UoW0FDX0xBTkdfUFJPR1JBTShbW11dLFtbXV0pXSxbbHRf Y3ZfY2NfbmVlZHNfYmVsZj15ZXNdLFtsdF9jdl9jY19uZWVkc19iZWxmPW5vXSkKKysgICAgIEFD X0xBTkdfUE9QXSkKKysgIGlmIHRlc3QgeCIkbHRfY3ZfY2NfbmVlZHNfYmVsZiIgIT0geCJ5ZXMi OyB0aGVuCisrICAgICMgdGhpcyBpcyBwcm9iYWJseSBnY2MgMi44LjAsIGVnY3MgMS4wIG9yIG5l d2VyOyBubyBuZWVkIGZvciAtYmVsZgorKyAgICBDRkxBR1M9IiRTQVZFX0NGTEFHUyIKKysgIGZp CisrICA7OworK3NwYXJjKi0qc29sYXJpcyopCisrICAjIEZpbmQgb3V0IHdoaWNoIEFCSSB3ZSBh cmUgdXNpbmcuCisrICBlY2hvICdpbnQgaTsnID4gY29uZnRlc3QuJGFjX2V4dAorKyAgaWYgQUNf VFJZX0VWQUwoYWNfY29tcGlsZSk7IHRoZW4KKysgICAgY2FzZSBgL3Vzci9iaW4vZmlsZSBjb25m dGVzdC5vYCBpbgorKyAgICAqNjQtYml0KikKKysgICAgICBjYXNlICRsdF9jdl9wcm9nX2dudV9s ZCBpbgorKyAgICAgIHllcyopIExEPSIke0xELWxkfSAtbSBlbGY2NF9zcGFyYyIgOzsKKysgICAg ICAqKQorKwlpZiAke0xELWxkfSAtNjQgLXIgLW8gY29uZnRlc3QyLm8gY29uZnRlc3QubyA+L2Rl di9udWxsIDI+JjE7IHRoZW4KKysJICBMRD0iJHtMRC1sZH0gLTY0IgorKwlmaQorKwk7OworKyAg ICAgIGVzYWMKKysgICAgICA7OworKyAgICBlc2FjCisrICBmaQorKyAgcm0gLXJmIGNvbmZ0ZXN0 KgorKyAgOzsKKytlc2FjCisrCisrbmVlZF9sb2Nrcz0iJGVuYWJsZV9saWJ0b29sX2xvY2siCisr XSkjIF9MVF9FTkFCTEVfTE9DSworKworKworKyMgX0xUX0NNRF9PTERfQVJDSElWRQorKyMgLS0t LS0tLS0tLS0tLS0tLS0tLQorK200X2RlZnVuKFtfTFRfQ01EX09MRF9BUkNISVZFXSwKKytbQUNf Q0hFQ0tfVE9PTChBUiwgYXIsIGZhbHNlKQorK3Rlc3QgLXogIiRBUiIgJiYgQVI9YXIKKyt0ZXN0 IC16ICIkQVJfRkxBR1MiICYmIEFSX0ZMQUdTPWNydQorK19MVF9ERUNMKFtdLCBbQVJdLCBbMV0s IFtUaGUgYXJjaGl2ZXJdKQorK19MVF9ERUNMKFtdLCBbQVJfRkxBR1NdLCBbMV0pCisrCisrQUNf Q0hFQ0tfVE9PTChTVFJJUCwgc3RyaXAsIDopCisrdGVzdCAteiAiJFNUUklQIiAmJiBTVFJJUD06 CisrX0xUX0RFQ0woW10sIFtTVFJJUF0sIFsxXSwgW0Egc3ltYm9sIHN0cmlwcGluZyBwcm9ncmFt XSkKKysKKytBQ19DSEVDS19UT09MKFJBTkxJQiwgcmFubGliLCA6KQorK3Rlc3QgLXogIiRSQU5M SUIiICYmIFJBTkxJQj06CisrX0xUX0RFQ0woW10sIFtSQU5MSUJdLCBbMV0sCisrICAgIFtDb21t YW5kcyB1c2VkIHRvIGluc3RhbGwgYW4gb2xkLXN0eWxlIGFyY2hpdmVdKQorKworKyMgRGV0ZXJt aW5lIGNvbW1hbmRzIHRvIGNyZWF0ZSBvbGQtc3R5bGUgc3RhdGljIGFyY2hpdmVzLgorK29sZF9h cmNoaXZlX2NtZHM9JyRBUiAkQVJfRkxBR1MgJG9sZGxpYiRvbGRvYmpzJworK29sZF9wb3N0aW5z dGFsbF9jbWRzPSdjaG1vZCA2NDQgJG9sZGxpYicKKytvbGRfcG9zdHVuaW5zdGFsbF9jbWRzPQor KworK2lmIHRlc3QgLW4gIiRSQU5MSUIiOyB0aGVuCisrICBjYXNlICRob3N0X29zIGluCisrICBv cGVuYnNkKikKKysgICAgb2xkX3Bvc3RpbnN0YWxsX2NtZHM9IiRvbGRfcG9zdGluc3RhbGxfY21k c35cJFJBTkxJQiAtdCBcJG9sZGxpYiIKKysgICAgOzsKKysgICopCisrICAgIG9sZF9wb3N0aW5z dGFsbF9jbWRzPSIkb2xkX3Bvc3RpbnN0YWxsX2NtZHN+XCRSQU5MSUIgXCRvbGRsaWIiCisrICAg IDs7CisrICBlc2FjCisrICBvbGRfYXJjaGl2ZV9jbWRzPSIkb2xkX2FyY2hpdmVfY21kc35cJFJB TkxJQiBcJG9sZGxpYiIKKytmaQorK19MVF9ERUNMKFtdLCBbb2xkX3Bvc3RpbnN0YWxsX2NtZHNd LCBbMl0pCisrX0xUX0RFQ0woW10sIFtvbGRfcG9zdHVuaW5zdGFsbF9jbWRzXSwgWzJdKQorK19M VF9UQUdERUNMKFtdLCBbb2xkX2FyY2hpdmVfY21kc10sIFsyXSwKKysgICAgW0NvbW1hbmRzIHVz ZWQgdG8gYnVpbGQgYW4gb2xkLXN0eWxlIGFyY2hpdmVdKQorK10pIyBfTFRfQ01EX09MRF9BUkNI SVZFCisrCisrCisrIyBfTFRfQ09NUElMRVJfT1BUSU9OKE1FU1NBR0UsIFZBUklBQkxFLU5BTUUs IEZMQUdTLAorKyMJCVtPVVRQVVQtRklMRV0sIFtBQ1RJT04tU1VDQ0VTU10sIFtBQ1RJT04tRkFJ TFVSRV0pCisrIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCisrIyBDaGVjayB3aGV0aGVyIHRoZSBnaXZlbiBjb21waWxlciBv cHRpb24gd29ya3MKKytBQ19ERUZVTihbX0xUX0NPTVBJTEVSX09QVElPTl0sCisrW200X3JlcXVp cmUoW19MVF9GSUxFVVRJTFNfREVGQVVMVFNdKWRubAorK200X3JlcXVpcmUoW19MVF9ERUNMX1NF RF0pZG5sCisrQUNfQ0FDSEVfQ0hFQ0soWyQxXSwgWyQyXSwKKysgIFskMj1ubworKyAgIG00X2lm KFskNF0sICwgW2FjX291dGZpbGU9Y29uZnRlc3QuJGFjX29iamV4dF0sIFthY19vdXRmaWxlPSQ0 XSkKKysgICBlY2hvICIkbHRfc2ltcGxlX2NvbXBpbGVfdGVzdF9jb2RlIiA+IGNvbmZ0ZXN0LiRh Y19leHQKKysgICBsdF9jb21waWxlcl9mbGFnPSIkMyIKKysgICAjIEluc2VydCB0aGUgb3B0aW9u IGVpdGhlciAoMSkgYWZ0ZXIgdGhlIGxhc3QgKkZMQUdTIHZhcmlhYmxlLCBvcgorKyAgICMgKDIp IGJlZm9yZSBhIHdvcmQgY29udGFpbmluZyAiY29uZnRlc3QuIiwgb3IgKDMpIGF0IHRoZSBlbmQu CisrICAgIyBOb3RlIHRoYXQgJGFjX2NvbXBpbGUgaXRzZWxmIGRvZXMgbm90IGNvbnRhaW4gYmFj a3NsYXNoZXMgYW5kIGJlZ2lucworKyAgICMgd2l0aCBhIGRvbGxhciBzaWduIChub3QgYSBoeXBo ZW4pLCBzbyB0aGUgZWNobyBzaG91bGQgd29yayBjb3JyZWN0bHkuCisrICAgIyBUaGUgb3B0aW9u IGlzIHJlZmVyZW5jZWQgdmlhIGEgdmFyaWFibGUgdG8gYXZvaWQgY29uZnVzaW5nIHNlZC4KKysg ICBsdF9jb21waWxlPWBlY2hvICIkYWNfY29tcGlsZSIgfCAkU0VEIFwKKysgICAtZSAnczouKkZM QUdTfVx7MCwxXH0gOiYkbHRfY29tcGlsZXJfZmxhZyA6OyB0JyBcCisrICAgLWUgJ3M6IFtbXiBd XSpjb25mdGVzdFwuOiAkbHRfY29tcGlsZXJfZmxhZyY6OyB0JyBcCisrICAgLWUgJ3M6JDogJGx0 X2NvbXBpbGVyX2ZsYWc6J2AKKysgICAoZXZhbCBlY2hvICJcIlwkYXNfbWU6X19vbGluZV9fOiAk bHRfY29tcGlsZVwiIiA+JkFTX01FU1NBR0VfTE9HX0ZEKQorKyAgIChldmFsICIkbHRfY29tcGls ZSIgMj5jb25mdGVzdC5lcnIpCisrICAgYWNfc3RhdHVzPSQ/CisrICAgY2F0IGNvbmZ0ZXN0LmVy ciA+JkFTX01FU1NBR0VfTE9HX0ZECisrICAgZWNobyAiJGFzX21lOl9fb2xpbmVfXzogXCQ/ID0g JGFjX3N0YXR1cyIgPiZBU19NRVNTQUdFX0xPR19GRAorKyAgIGlmIChleGl0ICRhY19zdGF0dXMp ICYmIHRlc3QgLXMgIiRhY19vdXRmaWxlIjsgdGhlbgorKyAgICAgIyBUaGUgY29tcGlsZXIgY2Fu IG9ubHkgd2FybiBhbmQgaWdub3JlIHRoZSBvcHRpb24gaWYgbm90IHJlY29nbml6ZWQKKysgICAg ICMgU28gc2F5IG5vIGlmIHRoZXJlIGFyZSB3YXJuaW5ncyBvdGhlciB0aGFuIHRoZSB1c3VhbCBv dXRwdXQuCisrICAgICAkRUNITyAiWCRfbHRfY29tcGlsZXJfYm9pbGVycGxhdGUiIHwgJFhzZWQg LWUgJy9eJC9kJyA+Y29uZnRlc3QuZXhwCisrICAgICAkU0VEICcvXiQvZDsgL14gKisvZCcgY29u ZnRlc3QuZXJyID5jb25mdGVzdC5lcjIKKysgICAgIGlmIHRlc3QgISAtcyBjb25mdGVzdC5lcjIg fHwgZGlmZiBjb25mdGVzdC5leHAgY29uZnRlc3QuZXIyID4vZGV2L251bGw7IHRoZW4KKysgICAg ICAgJDI9eWVzCisrICAgICBmaQorKyAgIGZpCisrICAgJFJNIGNvbmZ0ZXN0KgorK10pCisrCisr aWYgdGVzdCB4IlskXSQyIiA9IHh5ZXM7IHRoZW4KKysgICAgbTRfaWYoWyQ1XSwgLCA6LCBbJDVd KQorK2Vsc2UKKysgICAgbTRfaWYoWyQ2XSwgLCA6LCBbJDZdKQorK2ZpCisrXSkjIF9MVF9DT01Q SUxFUl9PUFRJT04KKysKKysjIE9sZCBuYW1lOgorK0FVX0FMSUFTKFtBQ19MSUJUT09MX0NPTVBJ TEVSX09QVElPTl0sIFtfTFRfQ09NUElMRVJfT1BUSU9OXSkKKytkbmwgYWNsb2NhbC0xLjQgYmFj a3dhcmRzIGNvbXBhdGliaWxpdHk6CisrZG5sIEFDX0RFRlVOKFtBQ19MSUJUT09MX0NPTVBJTEVS X09QVElPTl0sIFtdKQorKworKworKyMgX0xUX0xJTktFUl9PUFRJT04oTUVTU0FHRSwgVkFSSUFC TEUtTkFNRSwgRkxBR1MsCisrIyAgICAgICAgICAgICAgICAgIFtBQ1RJT04tU1VDQ0VTU10sIFtB Q1RJT04tRkFJTFVSRV0pCisrIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCisrIyBDaGVjayB3aGV0aGVyIHRoZSBnaXZlbiBsaW5rZXIgb3B0aW9u IHdvcmtzCisrQUNfREVGVU4oW19MVF9MSU5LRVJfT1BUSU9OXSwKKytbbTRfcmVxdWlyZShbX0xU X0ZJTEVVVElMU19ERUZBVUxUU10pZG5sCisrbTRfcmVxdWlyZShbX0xUX0RFQ0xfU0VEXSlkbmwK KytBQ19DQUNIRV9DSEVDSyhbJDFdLCBbJDJdLAorKyAgWyQyPW5vCisrICAgc2F2ZV9MREZMQUdT PSIkTERGTEFHUyIKKysgICBMREZMQUdTPSIkTERGTEFHUyAkMyIKKysgICBlY2hvICIkbHRfc2lt cGxlX2xpbmtfdGVzdF9jb2RlIiA+IGNvbmZ0ZXN0LiRhY19leHQKKysgICBpZiAoZXZhbCAkYWNf bGluayAyPmNvbmZ0ZXN0LmVycikgJiYgdGVzdCAtcyBjb25mdGVzdCRhY19leGVleHQ7IHRoZW4K KysgICAgICMgVGhlIGxpbmtlciBjYW4gb25seSB3YXJuIGFuZCBpZ25vcmUgdGhlIG9wdGlvbiBp ZiBub3QgcmVjb2duaXplZAorKyAgICAgIyBTbyBzYXkgbm8gaWYgdGhlcmUgYXJlIHdhcm5pbmdz CisrICAgICBpZiB0ZXN0IC1zIGNvbmZ0ZXN0LmVycjsgdGhlbgorKyAgICAgICAjIEFwcGVuZCBh bnkgZXJyb3JzIHRvIHRoZSBjb25maWcubG9nLgorKyAgICAgICBjYXQgY29uZnRlc3QuZXJyIDE+ JkFTX01FU1NBR0VfTE9HX0ZECisrICAgICAgICRFQ0hPICJYJF9sdF9saW5rZXJfYm9pbGVycGxh dGUiIHwgJFhzZWQgLWUgJy9eJC9kJyA+IGNvbmZ0ZXN0LmV4cAorKyAgICAgICAkU0VEICcvXiQv ZDsgL14gKisvZCcgY29uZnRlc3QuZXJyID5jb25mdGVzdC5lcjIKKysgICAgICAgaWYgZGlmZiBj b25mdGVzdC5leHAgY29uZnRlc3QuZXIyID4vZGV2L251bGw7IHRoZW4KKysgICAgICAgICAkMj15 ZXMKKysgICAgICAgZmkKKysgICAgIGVsc2UKKysgICAgICAgJDI9eWVzCisrICAgICBmaQorKyAg IGZpCisrICAgJFJNIC1yIGNvbmZ0ZXN0KgorKyAgIExERkxBR1M9IiRzYXZlX0xERkxBR1MiCisr XSkKKysKKytpZiB0ZXN0IHgiWyRdJDIiID0geHllczsgdGhlbgorKyAgICBtNF9pZihbJDRdLCAs IDosIFskNF0pCisrZWxzZQorKyAgICBtNF9pZihbJDVdLCAsIDosIFskNV0pCisrZmkKKytdKSMg X0xUX0xJTktFUl9PUFRJT04KKysKKysjIE9sZCBuYW1lOgorK0FVX0FMSUFTKFtBQ19MSUJUT09M X0xJTktFUl9PUFRJT05dLCBbX0xUX0xJTktFUl9PUFRJT05dKQorK2RubCBhY2xvY2FsLTEuNCBi YWNrd2FyZHMgY29tcGF0aWJpbGl0eToKKytkbmwgQUNfREVGVU4oW0FDX0xJQlRPT0xfTElOS0VS X09QVElPTl0sIFtdKQorKworKworKyMgTFRfQ01EX01BWF9MRU4KKysjLS0tLS0tLS0tLS0tLS0t CisrQUNfREVGVU4oW0xUX0NNRF9NQVhfTEVOXSwKKytbQUNfUkVRVUlSRShbQUNfQ0FOT05JQ0FM X0hPU1RdKWRubAorKyMgZmluZCB0aGUgbWF4aW11bSBsZW5ndGggb2YgY29tbWFuZCBsaW5lIGFy Z3VtZW50cworK0FDX01TR19DSEVDS0lORyhbdGhlIG1heGltdW0gbGVuZ3RoIG9mIGNvbW1hbmQg bGluZSBhcmd1bWVudHNdKQorK0FDX0NBQ0hFX1ZBTChbbHRfY3Zfc3lzX21heF9jbWRfbGVuXSwg W2RubAorKyAgaT0wCisrICB0ZXN0c3RyaW5nPSJBQkNEIgorKworKyAgY2FzZSAkYnVpbGRfb3Mg aW4KKysgIG1zZG9zZGpncHAqKQorKyAgICAjIE9uIERKR1BQLCB0aGlzIHRlc3QgY2FuIGJsb3cg dXAgcHJldHR5IGJhZGx5IGR1ZSB0byBwcm9ibGVtcyBpbiBsaWJjCisrICAgICMgKGFueSBzaW5n bGUgYXJndW1lbnQgZXhjZWVkaW5nIDIwMDAgYnl0ZXMgY2F1c2VzIGEgYnVmZmVyIG92ZXJydW4K KysgICAgIyBkdXJpbmcgZ2xvYiBleHBhbnNpb24pLiAgRXZlbiBpZiBpdCB3ZXJlIGZpeGVkLCB0 aGUgcmVzdWx0IG9mIHRoaXMKKysgICAgIyBjaGVjayB3b3VsZCBiZSBsYXJnZXIgdGhhbiBpdCBz aG91bGQgYmUuCisrICAgIGx0X2N2X3N5c19tYXhfY21kX2xlbj0xMjI4ODsgICAgIyAxMksgaXMg YWJvdXQgcmlnaHQKKysgICAgOzsKKysKKysgIGdudSopCisrICAgICMgVW5kZXIgR05VIEh1cmQs IHRoaXMgdGVzdCBpcyBub3QgcmVxdWlyZWQgYmVjYXVzZSB0aGVyZSBpcworKyAgICAjIG5vIGxp bWl0IHRvIHRoZSBsZW5ndGggb2YgY29tbWFuZCBsaW5lIGFyZ3VtZW50cy4KKysgICAgIyBMaWJ0 b29sIHdpbGwgaW50ZXJwcmV0IC0xIGFzIG5vIGxpbWl0IHdoYXRzb2V2ZXIKKysgICAgbHRfY3Zf c3lzX21heF9jbWRfbGVuPS0xOworKyAgICA7OworKworKyAgY3lnd2luKiB8IG1pbmd3KiB8IGNl Z2NjKikKKysgICAgIyBPbiBXaW45eC9NRSwgdGhpcyB0ZXN0IGJsb3dzIHVwIC0tIGl0IHN1Y2Nl ZWRzLCBidXQgdGFrZXMKKysgICAgIyBhYm91dCA1IG1pbnV0ZXMgYXMgdGhlIHRlc3RzdHJpbmcg Z3Jvd3MgZXhwb25lbnRpYWxseS4KKysgICAgIyBXb3JzZSwgc2luY2UgOXgvTUUgYXJlIG5vdCBw cmUtZW1wdGl2ZWx5IG11bHRpdGFza2luZywKKysgICAgIyB5b3UgZW5kIHVwIHdpdGggYSAiZnJv emVuIiBjb21wdXRlciwgZXZlbiB0aG91Z2ggd2l0aCBwYXRpZW5jZQorKyAgICAjIHRoZSB0ZXN0 IGV2ZW50dWFsbHkgc3VjY2VlZHMgKHdpdGggYSBtYXggbGluZSBsZW5ndGggb2YgMjU2aykuCisr ICAgICMgSW5zdGVhZCwgbGV0J3MganVzdCBwdW50OiB1c2UgdGhlIG1pbmltdW0gbGluZWxlbmd0 aCByZXBvcnRlZCBieQorKyAgICAjIGFsbCBvZiB0aGUgc3VwcG9ydGVkIHBsYXRmb3JtczogODE5 MiAob24gTlQvMksvWFApLgorKyAgICBsdF9jdl9zeXNfbWF4X2NtZF9sZW49ODE5MjsKKysgICAg OzsKKysKKysgIGFtaWdhb3MqKQorKyAgICAjIE9uIEFtaWdhT1Mgd2l0aCBwZGtzaCwgdGhpcyB0 ZXN0IHRha2VzIGhvdXJzLCBsaXRlcmFsbHkuCisrICAgICMgU28gd2UganVzdCBwdW50IGFuZCB1 c2UgYSBtaW5pbXVtIGxpbmUgbGVuZ3RoIG9mIDgxOTIuCisrICAgIGx0X2N2X3N5c19tYXhfY21k X2xlbj04MTkyOworKyAgICA7OworKworKyAgbmV0YnNkKiB8IGZyZWVic2QqIHwgb3BlbmJzZCog fCBkYXJ3aW4qIHwgZHJhZ29uZmx5KikKKysgICAgIyBUaGlzIGhhcyBiZWVuIGFyb3VuZCBzaW5j ZSAzODZCU0QsIGF0IGxlYXN0LiAgTGlrZWx5IGZ1cnRoZXIuCisrICAgIGlmIHRlc3QgLXggL3Ni aW4vc3lzY3RsOyB0aGVuCisrICAgICAgbHRfY3Zfc3lzX21heF9jbWRfbGVuPWAvc2Jpbi9zeXNj dGwgLW4ga2Vybi5hcmdtYXhgCisrICAgIGVsaWYgdGVzdCAteCAvdXNyL3NiaW4vc3lzY3RsOyB0 aGVuCisrICAgICAgbHRfY3Zfc3lzX21heF9jbWRfbGVuPWAvdXNyL3NiaW4vc3lzY3RsIC1uIGtl cm4uYXJnbWF4YAorKyAgICBlbHNlCisrICAgICAgbHRfY3Zfc3lzX21heF9jbWRfbGVuPTY1NTM2 CSMgdXNhYmxlIGRlZmF1bHQgZm9yIGFsbCBCU0RzCisrICAgIGZpCisrICAgICMgQW5kIGFkZCBh IHNhZmV0eSB6b25lCisrICAgIGx0X2N2X3N5c19tYXhfY21kX2xlbj1gZXhwciAkbHRfY3Zfc3lz X21heF9jbWRfbGVuIFwvIDRgCisrICAgIGx0X2N2X3N5c19tYXhfY21kX2xlbj1gZXhwciAkbHRf Y3Zfc3lzX21heF9jbWRfbGVuIFwqIDNgCisrICAgIDs7CisrCisrICBpbnRlcml4KikKKysgICAg IyBXZSBrbm93IHRoZSB2YWx1ZSAyNjIxNDQgYW5kIGhhcmRjb2RlIGl0IHdpdGggYSBzYWZldHkg em9uZSAobGlrZSBCU0QpCisrICAgIGx0X2N2X3N5c19tYXhfY21kX2xlbj0xOTY2MDgKKysgICAg OzsKKysKKysgIG9zZiopCisrICAgICMgRHIuIEhhbnMgRWtrZWhhcmQgUGxlc3NlciByZXBvcnRz IHNlZWluZyBhIGtlcm5lbCBwYW5pYyBydW5uaW5nIGNvbmZpZ3VyZQorKyAgICAjIGR1ZSB0byB0 aGlzIHRlc3Qgd2hlbiBleGVjX2Rpc2FibGVfYXJnX2xpbWl0IGlzIDEgb24gVHJ1NjQuIEl0IGlz IG5vdAorKyAgICAjIG5pY2UgdG8gY2F1c2Uga2VybmVsIHBhbmljcyBzbyBsZXRzIGF2b2lkIHRo ZSBsb29wIGJlbG93LgorKyAgICAjIEZpcnN0IHNldCBhIHJlYXNvbmFibGUgZGVmYXVsdC4KKysg ICAgbHRfY3Zfc3lzX21heF9jbWRfbGVuPTE2Mzg0CisrICAgICMKKysgICAgaWYgdGVzdCAteCAv c2Jpbi9zeXNjb25maWc7IHRoZW4KKysgICAgICBjYXNlIGAvc2Jpbi9zeXNjb25maWcgLXEgcHJv YyBleGVjX2Rpc2FibGVfYXJnX2xpbWl0YCBpbgorKyAgICAgICAgKjEqKSBsdF9jdl9zeXNfbWF4 X2NtZF9sZW49LTEgOzsKKysgICAgICBlc2FjCisrICAgIGZpCisrICAgIDs7CisrICBzY28zLjJ2 NSopCisrICAgIGx0X2N2X3N5c19tYXhfY21kX2xlbj0xMDI0MDAKKysgICAgOzsKKysgIHN5c3Y1 KiB8IHNjbzV2NiogfCBzeXN2NC4ydXcyKikKKysgICAga2FyZ21heD1gZ3JlcCBBUkdfTUFYIC9l dGMvY29uZi9jZi5kL3N0dW5lIDI+L2Rldi9udWxsYAorKyAgICBpZiB0ZXN0IC1uICIka2FyZ21h eCI7IHRoZW4KKysgICAgICBsdF9jdl9zeXNfbWF4X2NtZF9sZW49YGVjaG8gJGthcmdtYXggfCBz ZWQgJ3MvLipbWwkgXV0vLydgCisrICAgIGVsc2UKKysgICAgICBsdF9jdl9zeXNfbWF4X2NtZF9s ZW49MzI3NjgKKysgICAgZmkKKysgICAgOzsKKysgICopCisrICAgIGx0X2N2X3N5c19tYXhfY21k X2xlbj1gKGdldGNvbmYgQVJHX01BWCkgMj4gL2Rldi9udWxsYAorKyAgICBpZiB0ZXN0IC1uICIk bHRfY3Zfc3lzX21heF9jbWRfbGVuIjsgdGhlbgorKyAgICAgIGx0X2N2X3N5c19tYXhfY21kX2xl bj1gZXhwciAkbHRfY3Zfc3lzX21heF9jbWRfbGVuIFwvIDRgCisrICAgICAgbHRfY3Zfc3lzX21h eF9jbWRfbGVuPWBleHByICRsdF9jdl9zeXNfbWF4X2NtZF9sZW4gXCogM2AKKysgICAgZWxzZQor KyAgICAgICMgTWFrZSB0ZXN0c3RyaW5nIGEgbGl0dGxlIGJpZ2dlciBiZWZvcmUgd2UgZG8gYW55 dGhpbmcgd2l0aCBpdC4KKysgICAgICAjIGEgMUsgc3RyaW5nIHNob3VsZCBiZSBhIHJlYXNvbmFi bGUgc3RhcnQuCisrICAgICAgZm9yIGkgaW4gMSAyIDMgNCA1IDYgNyA4IDsgZG8KKysgICAgICAg IHRlc3RzdHJpbmc9JHRlc3RzdHJpbmckdGVzdHN0cmluZworKyAgICAgIGRvbmUKKysgICAgICBT SEVMTD0ke1NIRUxMLSR7Q09ORklHX1NIRUxMLS9iaW4vc2h9fQorKyAgICAgICMgSWYgdGVzdCBp cyBub3QgYSBzaGVsbCBidWlsdC1pbiwgd2UnbGwgcHJvYmFibHkgZW5kIHVwIGNvbXB1dGluZyBh CisrICAgICAgIyBtYXhpbXVtIGxlbmd0aCB0aGF0IGlzIG9ubHkgaGFsZiBvZiB0aGUgYWN0dWFs IG1heGltdW0gbGVuZ3RoLCBidXQKKysgICAgICAjIHdlIGNhbid0IHRlbGwuCisrICAgICAgd2hp bGUgeyB0ZXN0ICJYImAkU0hFTEwgWyRdMCAtLWZhbGxiYWNrLWVjaG8gIlgkdGVzdHN0cmluZyR0 ZXN0c3RyaW5nIiAyPi9kZXYvbnVsbGAgXAorKwkgICAgICAgICA9ICJYWCR0ZXN0c3RyaW5nJHRl c3RzdHJpbmciOyB9ID4vZGV2L251bGwgMj4mMSAmJgorKwkgICAgICB0ZXN0ICRpICE9IDE3ICMg MS8yIE1CIHNob3VsZCBiZSBlbm91Z2gKKysgICAgICBkbworKyAgICAgICAgaT1gZXhwciAkaSAr IDFgCisrICAgICAgICB0ZXN0c3RyaW5nPSR0ZXN0c3RyaW5nJHRlc3RzdHJpbmcKKysgICAgICBk b25lCisrICAgICAgIyBPbmx5IGNoZWNrIHRoZSBzdHJpbmcgbGVuZ3RoIG91dHNpZGUgdGhlIGxv b3AuCisrICAgICAgbHRfY3Zfc3lzX21heF9jbWRfbGVuPWBleHByICJYJHRlc3RzdHJpbmciIDog Ii4qIiAyPiYxYAorKyAgICAgIHRlc3RzdHJpbmc9CisrICAgICAgIyBBZGQgYSBzaWduaWZpY2Fu dCBzYWZldHkgZmFjdG9yIGJlY2F1c2UgQysrIGNvbXBpbGVycyBjYW4gdGFjayBvbgorKyAgICAg ICMgbWFzc2l2ZSBhbW91bnRzIG9mIGFkZGl0aW9uYWwgYXJndW1lbnRzIGJlZm9yZSBwYXNzaW5n IHRoZW0gdG8gdGhlCisrICAgICAgIyBsaW5rZXIuICBJdCBhcHBlYXJzIGFzIHRob3VnaCAxLzIg aXMgYSB1c2FibGUgdmFsdWUuCisrICAgICAgbHRfY3Zfc3lzX21heF9jbWRfbGVuPWBleHByICRs dF9jdl9zeXNfbWF4X2NtZF9sZW4gXC8gMmAKKysgICAgZmkKKysgICAgOzsKKysgIGVzYWMKKytd KQorK2lmIHRlc3QgLW4gJGx0X2N2X3N5c19tYXhfY21kX2xlbiA7IHRoZW4KKysgIEFDX01TR19S RVNVTFQoJGx0X2N2X3N5c19tYXhfY21kX2xlbikKKytlbHNlCisrICBBQ19NU0dfUkVTVUxUKG5v bmUpCisrZmkKKyttYXhfY21kX2xlbj0kbHRfY3Zfc3lzX21heF9jbWRfbGVuCisrX0xUX0RFQ0wo W10sIFttYXhfY21kX2xlbl0sIFswXSwKKysgICAgW1doYXQgaXMgdGhlIG1heGltdW0gbGVuZ3Ro IG9mIGEgY29tbWFuZD9dKQorK10pIyBMVF9DTURfTUFYX0xFTgorKworKyMgT2xkIG5hbWU6Cisr QVVfQUxJQVMoW0FDX0xJQlRPT0xfU1lTX01BWF9DTURfTEVOXSwgW0xUX0NNRF9NQVhfTEVOXSkK KytkbmwgYWNsb2NhbC0xLjQgYmFja3dhcmRzIGNvbXBhdGliaWxpdHk6CisrZG5sIEFDX0RFRlVO KFtBQ19MSUJUT09MX1NZU19NQVhfQ01EX0xFTl0sIFtdKQorKworKworKyMgX0xUX0hFQURFUl9E TEZDTgorKyMgLS0tLS0tLS0tLS0tLS0tLQorK200X2RlZnVuKFtfTFRfSEVBREVSX0RMRkNOXSwK KytbQUNfQ0hFQ0tfSEVBREVSUyhbZGxmY24uaF0sIFtdLCBbXSwgW0FDX0lOQ0xVREVTX0RFRkFV TFRdKWRubAorK10pIyBfTFRfSEVBREVSX0RMRkNOCisrCisrCisrIyBfTFRfVFJZX0RMT1BFTl9T RUxGIChBQ1RJT04tSUYtVFJVRSwgQUNUSU9OLUlGLVRSVUUtVy1VU0NPUkUsCisrIyAgICAgICAg ICAgICAgICAgICAgICBBQ1RJT04tSUYtRkFMU0UsIEFDVElPTi1JRi1DUk9TUy1DT01QSUxJTkcp CisrIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCisrbTRfZGVmdW4oW19MVF9UUllfRExPUEVOX1NFTEZdLAorK1ttNF9yZXF1 aXJlKFtfTFRfSEVBREVSX0RMRkNOXSlkbmwKKytpZiB0ZXN0ICIkY3Jvc3NfY29tcGlsaW5nIiA9 IHllczsgdGhlbiA6CisrICBbJDRdCisrZWxzZQorKyAgbHRfZGx1bmtub3duPTA7IGx0X2Rsbm9f dXNjb3JlPTE7IGx0X2RsbmVlZF91c2NvcmU9MgorKyAgbHRfc3RhdHVzPSRsdF9kbHVua25vd24K KysgIGNhdCA+IGNvbmZ0ZXN0LiRhY19leHQgPDxfTFRfRU9GCisrWyNsaW5lIF9fb2xpbmVfXyAi Y29uZmlndXJlIgorKyNpbmNsdWRlICJjb25mZGVmcy5oIgorKworKyNpZiBIQVZFX0RMRkNOX0gK KysjaW5jbHVkZSA8ZGxmY24uaD4KKysjZW5kaWYKKysKKysjaW5jbHVkZSA8c3RkaW8uaD4KKysK KysjaWZkZWYgUlRMRF9HTE9CQUwKKysjICBkZWZpbmUgTFRfRExHTE9CQUwJCVJUTERfR0xPQkFM CisrI2Vsc2UKKysjICBpZmRlZiBETF9HTE9CQUwKKysjICAgIGRlZmluZSBMVF9ETEdMT0JBTAkJ RExfR0xPQkFMCisrIyAgZWxzZQorKyMgICAgZGVmaW5lIExUX0RMR0xPQkFMCQkwCisrIyAgZW5k aWYKKysjZW5kaWYKKysKKysvKiBXZSBtYXkgaGF2ZSB0byBkZWZpbmUgTFRfRExMQVpZX09SX05P VyBpbiB0aGUgY29tbWFuZCBsaW5lIGlmIHdlCisrICAgZmluZCBvdXQgaXQgZG9lcyBub3Qgd29y ayBpbiBzb21lIHBsYXRmb3JtLiAqLworKyNpZm5kZWYgTFRfRExMQVpZX09SX05PVworKyMgIGlm ZGVmIFJUTERfTEFaWQorKyMgICAgZGVmaW5lIExUX0RMTEFaWV9PUl9OT1cJCVJUTERfTEFaWQor KyMgIGVsc2UKKysjICAgIGlmZGVmIERMX0xBWlkKKysjICAgICAgZGVmaW5lIExUX0RMTEFaWV9P Ul9OT1cJCURMX0xBWlkKKysjICAgIGVsc2UKKysjICAgICAgaWZkZWYgUlRMRF9OT1cKKysjICAg ICAgICBkZWZpbmUgTFRfRExMQVpZX09SX05PVwlSVExEX05PVworKyMgICAgICBlbHNlCisrIyAg ICAgICAgaWZkZWYgRExfTk9XCisrIyAgICAgICAgICBkZWZpbmUgTFRfRExMQVpZX09SX05PVwlE TF9OT1cKKysjICAgICAgICBlbHNlCisrIyAgICAgICAgICBkZWZpbmUgTFRfRExMQVpZX09SX05P VwkwCisrIyAgICAgICAgZW5kaWYKKysjICAgICAgZW5kaWYKKysjICAgIGVuZGlmCisrIyAgZW5k aWYKKysjZW5kaWYKKysKKyt2b2lkIGZub3JkKCkgeyBpbnQgaT00Mjt9CisraW50IG1haW4gKCkK Kyt7CisrICB2b2lkICpzZWxmID0gZGxvcGVuICgwLCBMVF9ETEdMT0JBTHxMVF9ETExBWllfT1Jf Tk9XKTsKKysgIGludCBzdGF0dXMgPSAkbHRfZGx1bmtub3duOworKworKyAgaWYgKHNlbGYpCisr ICAgIHsKKysgICAgICBpZiAoZGxzeW0gKHNlbGYsImZub3JkIikpICAgICAgIHN0YXR1cyA9ICRs dF9kbG5vX3VzY29yZTsKKysgICAgICBlbHNlIGlmIChkbHN5bSggc2VsZiwiX2Zub3JkIikpIHN0 YXR1cyA9ICRsdF9kbG5lZWRfdXNjb3JlOworKyAgICAgIC8qIGRsY2xvc2UgKHNlbGYpOyAqLwor KyAgICB9CisrICBlbHNlCisrICAgIHB1dHMgKGRsZXJyb3IgKCkpOworKworKyAgcmV0dXJuIHN0 YXR1czsKKyt9XQorK19MVF9FT0YKKysgIGlmIEFDX1RSWV9FVkFMKGFjX2xpbmspICYmIHRlc3Qg LXMgY29uZnRlc3Qke2FjX2V4ZWV4dH0gMj4vZGV2L251bGw7IHRoZW4KKysgICAgKC4vY29uZnRl c3Q7IGV4aXQ7ICkgPiZBU19NRVNTQUdFX0xPR19GRCAyPi9kZXYvbnVsbAorKyAgICBsdF9zdGF0 dXM9JD8KKysgICAgY2FzZSB4JGx0X3N0YXR1cyBpbgorKyAgICAgIHgkbHRfZGxub191c2NvcmUp ICQxIDs7CisrICAgICAgeCRsdF9kbG5lZWRfdXNjb3JlKSAkMiA7OworKyAgICAgIHgkbHRfZGx1 bmtub3dufHgqKSAkMyA7OworKyAgICBlc2FjCisrICBlbHNlIDoKKysgICAgIyBjb21waWxhdGlv biBmYWlsZWQKKysgICAgJDMKKysgIGZpCisrZmkKKytybSAtZnIgY29uZnRlc3QqCisrXSkjIF9M VF9UUllfRExPUEVOX1NFTEYKKysKKysKKysjIExUX1NZU19ETE9QRU5fU0VMRgorKyMgLS0tLS0t LS0tLS0tLS0tLS0tCisrQUNfREVGVU4oW0xUX1NZU19ETE9QRU5fU0VMRl0sCisrW200X3JlcXVp cmUoW19MVF9IRUFERVJfRExGQ05dKWRubAorK2lmIHRlc3QgIngkZW5hYmxlX2Rsb3BlbiIgIT0g eHllczsgdGhlbgorKyAgZW5hYmxlX2Rsb3Blbj11bmtub3duCisrICBlbmFibGVfZGxvcGVuX3Nl bGY9dW5rbm93bgorKyAgZW5hYmxlX2Rsb3Blbl9zZWxmX3N0YXRpYz11bmtub3duCisrZWxzZQor KyAgbHRfY3ZfZGxvcGVuPW5vCisrICBsdF9jdl9kbG9wZW5fbGlicz0KKysKKysgIGNhc2UgJGhv c3Rfb3MgaW4KKysgIGJlb3MqKQorKyAgICBsdF9jdl9kbG9wZW49ImxvYWRfYWRkX29uIgorKyAg ICBsdF9jdl9kbG9wZW5fbGlicz0KKysgICAgbHRfY3ZfZGxvcGVuX3NlbGY9eWVzCisrICAgIDs7 CisrCisrICBtaW5ndyogfCBwdzMyKiB8IGNlZ2NjKikKKysgICAgbHRfY3ZfZGxvcGVuPSJMb2Fk TGlicmFyeSIKKysgICAgbHRfY3ZfZGxvcGVuX2xpYnM9CisrICAgIDs7CisrCisrICBjeWd3aW4q KQorKyAgICBsdF9jdl9kbG9wZW49ImRsb3BlbiIKKysgICAgbHRfY3ZfZGxvcGVuX2xpYnM9Cisr ICAgIDs7CisrCisrICBkYXJ3aW4qKQorKyAgIyBpZiBsaWJkbCBpcyBpbnN0YWxsZWQgd2UgbmVl ZCB0byBsaW5rIGFnYWluc3QgaXQKKysgICAgQUNfQ0hFQ0tfTElCKFtkbF0sIFtkbG9wZW5dLAor KwkJW2x0X2N2X2Rsb3Blbj0iZGxvcGVuIiBsdF9jdl9kbG9wZW5fbGlicz0iLWxkbCJdLFsKKysg ICAgbHRfY3ZfZGxvcGVuPSJkeWxkIgorKyAgICBsdF9jdl9kbG9wZW5fbGlicz0KKysgICAgbHRf Y3ZfZGxvcGVuX3NlbGY9eWVzCisrICAgIF0pCisrICAgIDs7CisrCisrICAqKQorKyAgICBBQ19D SEVDS19GVU5DKFtzaGxfbG9hZF0sCisrCSAgW2x0X2N2X2Rsb3Blbj0ic2hsX2xvYWQiXSwKKysg ICAgICBbQUNfQ0hFQ0tfTElCKFtkbGRdLCBbc2hsX2xvYWRdLAorKwkgICAgW2x0X2N2X2Rsb3Bl bj0ic2hsX2xvYWQiIGx0X2N2X2Rsb3Blbl9saWJzPSItbGRsZCJdLAorKwlbQUNfQ0hFQ0tfRlVO QyhbZGxvcGVuXSwKKysJICAgICAgW2x0X2N2X2Rsb3Blbj0iZGxvcGVuIl0sCisrCSAgW0FDX0NI RUNLX0xJQihbZGxdLCBbZGxvcGVuXSwKKysJCVtsdF9jdl9kbG9wZW49ImRsb3BlbiIgbHRfY3Zf ZGxvcGVuX2xpYnM9Ii1sZGwiXSwKKysJICAgIFtBQ19DSEVDS19MSUIoW3N2bGRdLCBbZGxvcGVu XSwKKysJCSAgW2x0X2N2X2Rsb3Blbj0iZGxvcGVuIiBsdF9jdl9kbG9wZW5fbGlicz0iLWxzdmxk Il0sCisrCSAgICAgIFtBQ19DSEVDS19MSUIoW2RsZF0sIFtkbGRfbGlua10sCisrCQkgICAgW2x0 X2N2X2Rsb3Blbj0iZGxkX2xpbmsiIGx0X2N2X2Rsb3Blbl9saWJzPSItbGRsZCJdKQorKwkgICAg ICBdKQorKwkgICAgXSkKKysJICBdKQorKwldKQorKyAgICAgIF0pCisrICAgIDs7CisrICBlc2Fj CisrCisrICBpZiB0ZXN0ICJ4JGx0X2N2X2Rsb3BlbiIgIT0geG5vOyB0aGVuCisrICAgIGVuYWJs ZV9kbG9wZW49eWVzCisrICBlbHNlCisrICAgIGVuYWJsZV9kbG9wZW49bm8KKysgIGZpCisrCisr ICBjYXNlICRsdF9jdl9kbG9wZW4gaW4KKysgIGRsb3BlbikKKysgICAgc2F2ZV9DUFBGTEFHUz0i JENQUEZMQUdTIgorKyAgICB0ZXN0ICJ4JGFjX2N2X2hlYWRlcl9kbGZjbl9oIiA9IHh5ZXMgJiYg Q1BQRkxBR1M9IiRDUFBGTEFHUyAtREhBVkVfRExGQ05fSCIKKysKKysgICAgc2F2ZV9MREZMQUdT PSIkTERGTEFHUyIKKysgICAgd2w9JGx0X3Byb2dfY29tcGlsZXJfd2wgZXZhbCBMREZMQUdTPVwi XCRMREZMQUdTICRleHBvcnRfZHluYW1pY19mbGFnX3NwZWNcIgorKworKyAgICBzYXZlX0xJQlM9 IiRMSUJTIgorKyAgICBMSUJTPSIkbHRfY3ZfZGxvcGVuX2xpYnMgJExJQlMiCisrCisrICAgIEFD X0NBQ0hFX0NIRUNLKFt3aGV0aGVyIGEgcHJvZ3JhbSBjYW4gZGxvcGVuIGl0c2VsZl0sCisrCSAg bHRfY3ZfZGxvcGVuX3NlbGYsIFtkbmwKKysJICBfTFRfVFJZX0RMT1BFTl9TRUxGKAorKwkgICAg bHRfY3ZfZGxvcGVuX3NlbGY9eWVzLCBsdF9jdl9kbG9wZW5fc2VsZj15ZXMsCisrCSAgICBsdF9j dl9kbG9wZW5fc2VsZj1ubywgbHRfY3ZfZGxvcGVuX3NlbGY9Y3Jvc3MpCisrICAgIF0pCisrCisr ICAgIGlmIHRlc3QgIngkbHRfY3ZfZGxvcGVuX3NlbGYiID0geHllczsgdGhlbgorKyAgICAgIHds PSRsdF9wcm9nX2NvbXBpbGVyX3dsIGV2YWwgTERGTEFHUz1cIlwkTERGTEFHUyAkbHRfcHJvZ19j b21waWxlcl9zdGF0aWNcIgorKyAgICAgIEFDX0NBQ0hFX0NIRUNLKFt3aGV0aGVyIGEgc3RhdGlj YWxseSBsaW5rZWQgcHJvZ3JhbSBjYW4gZGxvcGVuIGl0c2VsZl0sCisrCSAgbHRfY3ZfZGxvcGVu X3NlbGZfc3RhdGljLCBbZG5sCisrCSAgX0xUX1RSWV9ETE9QRU5fU0VMRigKKysJICAgIGx0X2N2 X2Rsb3Blbl9zZWxmX3N0YXRpYz15ZXMsIGx0X2N2X2Rsb3Blbl9zZWxmX3N0YXRpYz15ZXMsCisr CSAgICBsdF9jdl9kbG9wZW5fc2VsZl9zdGF0aWM9bm8sICBsdF9jdl9kbG9wZW5fc2VsZl9zdGF0 aWM9Y3Jvc3MpCisrICAgICAgXSkKKysgICAgZmkKKysKKysgICAgQ1BQRkxBR1M9IiRzYXZlX0NQ UEZMQUdTIgorKyAgICBMREZMQUdTPSIkc2F2ZV9MREZMQUdTIgorKyAgICBMSUJTPSIkc2F2ZV9M SUJTIgorKyAgICA7OworKyAgZXNhYworKworKyAgY2FzZSAkbHRfY3ZfZGxvcGVuX3NlbGYgaW4K KysgIHllc3xubykgZW5hYmxlX2Rsb3Blbl9zZWxmPSRsdF9jdl9kbG9wZW5fc2VsZiA7OworKyAg KikgZW5hYmxlX2Rsb3Blbl9zZWxmPXVua25vd24gOzsKKysgIGVzYWMKKysKKysgIGNhc2UgJGx0 X2N2X2Rsb3Blbl9zZWxmX3N0YXRpYyBpbgorKyAgeWVzfG5vKSBlbmFibGVfZGxvcGVuX3NlbGZf c3RhdGljPSRsdF9jdl9kbG9wZW5fc2VsZl9zdGF0aWMgOzsKKysgICopIGVuYWJsZV9kbG9wZW5f c2VsZl9zdGF0aWM9dW5rbm93biA7OworKyAgZXNhYworK2ZpCisrX0xUX0RFQ0woW2Rsb3Blbl9z dXBwb3J0XSwgW2VuYWJsZV9kbG9wZW5dLCBbMF0sCisrCSBbV2hldGhlciBkbG9wZW4gaXMgc3Vw cG9ydGVkXSkKKytfTFRfREVDTChbZGxvcGVuX3NlbGZdLCBbZW5hYmxlX2Rsb3Blbl9zZWxmXSwg WzBdLAorKwkgW1doZXRoZXIgZGxvcGVuIG9mIHByb2dyYW1zIGlzIHN1cHBvcnRlZF0pCisrX0xU X0RFQ0woW2Rsb3Blbl9zZWxmX3N0YXRpY10sIFtlbmFibGVfZGxvcGVuX3NlbGZfc3RhdGljXSwg WzBdLAorKwkgW1doZXRoZXIgZGxvcGVuIG9mIHN0YXRpY2FsbHkgbGlua2VkIHByb2dyYW1zIGlz IHN1cHBvcnRlZF0pCisrXSkjIExUX1NZU19ETE9QRU5fU0VMRgorKworKyMgT2xkIG5hbWU6Cisr QVVfQUxJQVMoW0FDX0xJQlRPT0xfRExPUEVOX1NFTEZdLCBbTFRfU1lTX0RMT1BFTl9TRUxGXSkK KytkbmwgYWNsb2NhbC0xLjQgYmFja3dhcmRzIGNvbXBhdGliaWxpdHk6CisrZG5sIEFDX0RFRlVO KFtBQ19MSUJUT09MX0RMT1BFTl9TRUxGXSwgW10pCisrCisrCisrIyBfTFRfQ09NUElMRVJfQ19P KFtUQUdOQU1FXSkKKysjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKyMgQ2hlY2sgdG8g c2VlIGlmIG9wdGlvbnMgLWMgYW5kIC1vIGFyZSBzaW11bHRhbmVvdXNseSBzdXBwb3J0ZWQgYnkg Y29tcGlsZXIuCisrIyBUaGlzIG1hY3JvIGRvZXMgbm90IGhhcmQgY29kZSB0aGUgY29tcGlsZXIg bGlrZSBBQ19QUk9HX0NDX0NfTy4KKyttNF9kZWZ1bihbX0xUX0NPTVBJTEVSX0NfT10sCisrW200 X3JlcXVpcmUoW19MVF9ERUNMX1NFRF0pZG5sCisrbTRfcmVxdWlyZShbX0xUX0ZJTEVVVElMU19E RUZBVUxUU10pZG5sCisrbTRfcmVxdWlyZShbX0xUX1RBR19DT01QSUxFUl0pZG5sCisrQUNfQ0FD SEVfQ0hFQ0soW2lmICRjb21waWxlciBzdXBwb3J0cyAtYyAtbyBmaWxlLiRhY19vYmpleHRdLAor KyAgW19MVF9UQUdWQVIobHRfY3ZfcHJvZ19jb21waWxlcl9jX28sICQxKV0sCisrICBbX0xUX1RB R1ZBUihsdF9jdl9wcm9nX2NvbXBpbGVyX2NfbywgJDEpPW5vCisrICAgJFJNIC1yIGNvbmZ0ZXN0 IDI+L2Rldi9udWxsCisrICAgbWtkaXIgY29uZnRlc3QKKysgICBjZCBjb25mdGVzdAorKyAgIG1r ZGlyIG91dAorKyAgIGVjaG8gIiRsdF9zaW1wbGVfY29tcGlsZV90ZXN0X2NvZGUiID4gY29uZnRl c3QuJGFjX2V4dAorKworKyAgIGx0X2NvbXBpbGVyX2ZsYWc9Ii1vIG91dC9jb25mdGVzdDIuJGFj X29iamV4dCIKKysgICAjIEluc2VydCB0aGUgb3B0aW9uIGVpdGhlciAoMSkgYWZ0ZXIgdGhlIGxh c3QgKkZMQUdTIHZhcmlhYmxlLCBvcgorKyAgICMgKDIpIGJlZm9yZSBhIHdvcmQgY29udGFpbmlu ZyAiY29uZnRlc3QuIiwgb3IgKDMpIGF0IHRoZSBlbmQuCisrICAgIyBOb3RlIHRoYXQgJGFjX2Nv bXBpbGUgaXRzZWxmIGRvZXMgbm90IGNvbnRhaW4gYmFja3NsYXNoZXMgYW5kIGJlZ2lucworKyAg ICMgd2l0aCBhIGRvbGxhciBzaWduIChub3QgYSBoeXBoZW4pLCBzbyB0aGUgZWNobyBzaG91bGQg d29yayBjb3JyZWN0bHkuCisrICAgbHRfY29tcGlsZT1gZWNobyAiJGFjX2NvbXBpbGUiIHwgJFNF RCBcCisrICAgLWUgJ3M6LipGTEFHU31cezAsMVx9IDomJGx0X2NvbXBpbGVyX2ZsYWcgOjsgdCcg XAorKyAgIC1lICdzOiBbW14gXV0qY29uZnRlc3RcLjogJGx0X2NvbXBpbGVyX2ZsYWcmOjsgdCcg XAorKyAgIC1lICdzOiQ6ICRsdF9jb21waWxlcl9mbGFnOidgCisrICAgKGV2YWwgZWNobyAiXCJc JGFzX21lOl9fb2xpbmVfXzogJGx0X2NvbXBpbGVcIiIgPiZBU19NRVNTQUdFX0xPR19GRCkKKysg ICAoZXZhbCAiJGx0X2NvbXBpbGUiIDI+b3V0L2NvbmZ0ZXN0LmVycikKKysgICBhY19zdGF0dXM9 JD8KKysgICBjYXQgb3V0L2NvbmZ0ZXN0LmVyciA+JkFTX01FU1NBR0VfTE9HX0ZECisrICAgZWNo byAiJGFzX21lOl9fb2xpbmVfXzogXCQ/ID0gJGFjX3N0YXR1cyIgPiZBU19NRVNTQUdFX0xPR19G RAorKyAgIGlmIChleGl0ICRhY19zdGF0dXMpICYmIHRlc3QgLXMgb3V0L2NvbmZ0ZXN0Mi4kYWNf b2JqZXh0CisrICAgdGhlbgorKyAgICAgIyBUaGUgY29tcGlsZXIgY2FuIG9ubHkgd2FybiBhbmQg aWdub3JlIHRoZSBvcHRpb24gaWYgbm90IHJlY29nbml6ZWQKKysgICAgICMgU28gc2F5IG5vIGlm IHRoZXJlIGFyZSB3YXJuaW5ncworKyAgICAgJEVDSE8gIlgkX2x0X2NvbXBpbGVyX2JvaWxlcnBs YXRlIiB8ICRYc2VkIC1lICcvXiQvZCcgPiBvdXQvY29uZnRlc3QuZXhwCisrICAgICAkU0VEICcv XiQvZDsgL14gKisvZCcgb3V0L2NvbmZ0ZXN0LmVyciA+b3V0L2NvbmZ0ZXN0LmVyMgorKyAgICAg aWYgdGVzdCAhIC1zIG91dC9jb25mdGVzdC5lcjIgfHwgZGlmZiBvdXQvY29uZnRlc3QuZXhwIG91 dC9jb25mdGVzdC5lcjIgPi9kZXYvbnVsbDsgdGhlbgorKyAgICAgICBfTFRfVEFHVkFSKGx0X2N2 X3Byb2dfY29tcGlsZXJfY19vLCAkMSk9eWVzCisrICAgICBmaQorKyAgIGZpCisrICAgY2htb2Qg dSt3IC4gMj4mQVNfTUVTU0FHRV9MT0dfRkQKKysgICAkUk0gY29uZnRlc3QqCisrICAgIyBTR0kg QysrIGNvbXBpbGVyIHdpbGwgY3JlYXRlIGRpcmVjdG9yeSBvdXQvaWlfZmlsZXMvIGZvcgorKyAg ICMgdGVtcGxhdGUgaW5zdGFudGlhdGlvbgorKyAgIHRlc3QgLWQgb3V0L2lpX2ZpbGVzICYmICRS TSBvdXQvaWlfZmlsZXMvKiAmJiBybWRpciBvdXQvaWlfZmlsZXMKKysgICAkUk0gb3V0LyogJiYg cm1kaXIgb3V0CisrICAgY2QgLi4KKysgICAkUk0gLXIgY29uZnRlc3QKKysgICAkUk0gY29uZnRl c3QqCisrXSkKKytfTFRfVEFHREVDTChbY29tcGlsZXJfY19vXSwgW2x0X2N2X3Byb2dfY29tcGls ZXJfY19vXSwgWzFdLAorKwlbRG9lcyBjb21waWxlciBzaW11bHRhbmVvdXNseSBzdXBwb3J0IC1j IGFuZCAtbyBvcHRpb25zP10pCisrXSkjIF9MVF9DT01QSUxFUl9DX08KKysKKysKKysjIF9MVF9D T01QSUxFUl9GSUxFX0xPQ0tTKFtUQUdOQU1FXSkKKysjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KKysjIENoZWNrIHRvIHNlZSBpZiB3ZSBjYW4gZG8gaGFyZCBsaW5rcyB0byBs b2NrIHNvbWUgZmlsZXMgaWYgbmVlZGVkCisrbTRfZGVmdW4oW19MVF9DT01QSUxFUl9GSUxFX0xP Q0tTXSwKKytbbTRfcmVxdWlyZShbX0xUX0VOQUJMRV9MT0NLXSlkbmwKKyttNF9yZXF1aXJlKFtf TFRfRklMRVVUSUxTX0RFRkFVTFRTXSlkbmwKKytfTFRfQ09NUElMRVJfQ19PKFskMV0pCisrCisr aGFyZF9saW5rcz0ibm90dGVzdGVkIgorK2lmIHRlc3QgIiRfTFRfVEFHVkFSKGx0X2N2X3Byb2df Y29tcGlsZXJfY19vLCAkMSkiID0gbm8gJiYgdGVzdCAiJG5lZWRfbG9ja3MiICE9IG5vOyB0aGVu CisrICAjIGRvIG5vdCBvdmVyd3JpdGUgdGhlIHZhbHVlIG9mIG5lZWRfbG9ja3MgcHJvdmlkZWQg YnkgdGhlIHVzZXIKKysgIEFDX01TR19DSEVDS0lORyhbaWYgd2UgY2FuIGxvY2sgd2l0aCBoYXJk IGxpbmtzXSkKKysgIGhhcmRfbGlua3M9eWVzCisrICAkUk0gY29uZnRlc3QqCisrICBsbiBjb25m dGVzdC5hIGNvbmZ0ZXN0LmIgMj4vZGV2L251bGwgJiYgaGFyZF9saW5rcz1ubworKyAgdG91Y2gg Y29uZnRlc3QuYQorKyAgbG4gY29uZnRlc3QuYSBjb25mdGVzdC5iIDI+JjUgfHwgaGFyZF9saW5r cz1ubworKyAgbG4gY29uZnRlc3QuYSBjb25mdGVzdC5iIDI+L2Rldi9udWxsICYmIGhhcmRfbGlu a3M9bm8KKysgIEFDX01TR19SRVNVTFQoWyRoYXJkX2xpbmtzXSkKKysgIGlmIHRlc3QgIiRoYXJk X2xpbmtzIiA9IG5vOyB0aGVuCisrICAgIEFDX01TR19XQVJOKFtgJENDJyBkb2VzIG5vdCBzdXBw b3J0IGAtYyAtbycsIHNvIGBtYWtlIC1qJyBtYXkgYmUgdW5zYWZlXSkKKysgICAgbmVlZF9sb2Nr cz13YXJuCisrICBmaQorK2Vsc2UKKysgIG5lZWRfbG9ja3M9bm8KKytmaQorK19MVF9ERUNMKFtd LCBbbmVlZF9sb2Nrc10sIFsxXSwgW011c3Qgd2UgbG9jayBmaWxlcyB3aGVuIGRvaW5nIGNvbXBp bGF0aW9uP10pCisrXSkjIF9MVF9DT01QSUxFUl9GSUxFX0xPQ0tTCisrCisrCisrIyBfTFRfQ0hF Q0tfT0JKRElSCisrIyAtLS0tLS0tLS0tLS0tLS0tCisrbTRfZGVmdW4oW19MVF9DSEVDS19PQkpE SVJdLAorK1tBQ19DQUNIRV9DSEVDSyhbZm9yIG9iamRpcl0sIFtsdF9jdl9vYmpkaXJdLAorK1ty bSAtZiAubGlicyAyPi9kZXYvbnVsbAorK21rZGlyIC5saWJzIDI+L2Rldi9udWxsCisraWYgdGVz dCAtZCAubGliczsgdGhlbgorKyAgbHRfY3Zfb2JqZGlyPS5saWJzCisrZWxzZQorKyAgIyBNUy1E T1MgZG9lcyBub3QgYWxsb3cgZmlsZW5hbWVzIHRoYXQgYmVnaW4gd2l0aCBhIGRvdC4KKysgIGx0 X2N2X29iamRpcj1fbGlicworK2ZpCisrcm1kaXIgLmxpYnMgMj4vZGV2L251bGxdKQorK29iamRp cj0kbHRfY3Zfb2JqZGlyCisrX0xUX0RFQ0woW10sIFtvYmpkaXJdLCBbMF0sCisrICAgICAgICAg W1RoZSBuYW1lIG9mIHRoZSBkaXJlY3RvcnkgdGhhdCBjb250YWlucyB0ZW1wb3JhcnkgbGlidG9v bCBmaWxlc10pZG5sCisrbTRfcGF0dGVybl9hbGxvdyhbTFRfT0JKRElSXSlkbmwKKytBQ19ERUZJ TkVfVU5RVU9URUQoTFRfT0JKRElSLCAiJGx0X2N2X29iamRpci8iLAorKyAgW0RlZmluZSB0byB0 aGUgc3ViLWRpcmVjdG9yeSBpbiB3aGljaCBsaWJ0b29sIHN0b3JlcyB1bmluc3RhbGxlZCBsaWJy YXJpZXMuXSkKKytdKSMgX0xUX0NIRUNLX09CSkRJUgorKworKworKyMgX0xUX0xJTktFUl9IQVJE Q09ERV9MSUJQQVRIKFtUQUdOQU1FXSkKKysjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCisrIyBDaGVjayBoYXJkY29kaW5nIGF0dHJpYnV0ZXMuCisrbTRfZGVmdW4oW19M VF9MSU5LRVJfSEFSRENPREVfTElCUEFUSF0sCisrW0FDX01TR19DSEVDS0lORyhbaG93IHRvIGhh cmRjb2RlIGxpYnJhcnkgcGF0aHMgaW50byBwcm9ncmFtc10pCisrX0xUX1RBR1ZBUihoYXJkY29k ZV9hY3Rpb24sICQxKT0KKytpZiB0ZXN0IC1uICIkX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJf ZmxhZ19zcGVjLCAkMSkiIHx8CisrICAgdGVzdCAtbiAiJF9MVF9UQUdWQVIocnVucGF0aF92YXIs ICQxKSIgfHwKKysgICB0ZXN0ICJYJF9MVF9UQUdWQVIoaGFyZGNvZGVfYXV0b21hdGljLCAkMSki ID0gIlh5ZXMiIDsgdGhlbgorKworKyAgIyBXZSBjYW4gaGFyZGNvZGUgbm9uLWV4aXN0ZW50IGRp cmVjdG9yaWVzLgorKyAgaWYgdGVzdCAiJF9MVF9UQUdWQVIoaGFyZGNvZGVfZGlyZWN0LCAkMSki ICE9IG5vICYmCisrICAgICAjIElmIHRoZSBvbmx5IG1lY2hhbmlzbSB0byBhdm9pZCBoYXJkY29k aW5nIGlzIHNobGlicGF0aF92YXIsIHdlCisrICAgICAjIGhhdmUgdG8gcmVsaW5rLCBvdGhlcndp c2Ugd2UgbWlnaHQgbGluayB3aXRoIGFuIGluc3RhbGxlZCBsaWJyYXJ5CisrICAgICAjIHdoZW4g d2Ugc2hvdWxkIGJlIGxpbmtpbmcgd2l0aCBhIHlldC10by1iZS1pbnN0YWxsZWQgb25lCisrICAg ICAjIyB0ZXN0ICIkX0xUX1RBR1ZBUihoYXJkY29kZV9zaGxpYnBhdGhfdmFyLCAkMSkiICE9IG5v ICYmCisrICAgICB0ZXN0ICIkX0xUX1RBR1ZBUihoYXJkY29kZV9taW51c19MLCAkMSkiICE9IG5v OyB0aGVuCisrICAgICMgTGlua2luZyBhbHdheXMgaGFyZGNvZGVzIHRoZSB0ZW1wb3JhcnkgbGli cmFyeSBkaXJlY3RvcnkuCisrICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfYWN0aW9uLCAkMSk9cmVs aW5rCisrICBlbHNlCisrICAgICMgV2UgY2FuIGxpbmsgd2l0aG91dCBoYXJkY29kaW5nLCBhbmQg d2UgY2FuIGhhcmRjb2RlIG5vbmV4aXN0aW5nIGRpcnMuCisrICAgIF9MVF9UQUdWQVIoaGFyZGNv ZGVfYWN0aW9uLCAkMSk9aW1tZWRpYXRlCisrICBmaQorK2Vsc2UKKysgICMgV2UgY2Fubm90IGhh cmRjb2RlIGFueXRoaW5nLCBvciBlbHNlIHdlIGNhbiBvbmx5IGhhcmRjb2RlIGV4aXN0aW5nCisr ICAjIGRpcmVjdG9yaWVzLgorKyAgX0xUX1RBR1ZBUihoYXJkY29kZV9hY3Rpb24sICQxKT11bnN1 cHBvcnRlZAorK2ZpCisrQUNfTVNHX1JFU1VMVChbJF9MVF9UQUdWQVIoaGFyZGNvZGVfYWN0aW9u LCAkMSldKQorKworK2lmIHRlc3QgIiRfTFRfVEFHVkFSKGhhcmRjb2RlX2FjdGlvbiwgJDEpIiA9 IHJlbGluayB8fAorKyAgIHRlc3QgIiRfTFRfVEFHVkFSKGluaGVyaXRfcnBhdGgsICQxKSIgPSB5 ZXM7IHRoZW4KKysgICMgRmFzdCBpbnN0YWxsYXRpb24gaXMgbm90IHN1cHBvcnRlZAorKyAgZW5h YmxlX2Zhc3RfaW5zdGFsbD1ubworK2VsaWYgdGVzdCAiJHNobGlicGF0aF9vdmVycmlkZXNfcnVu cGF0aCIgPSB5ZXMgfHwKKysgICAgIHRlc3QgIiRlbmFibGVfc2hhcmVkIiA9IG5vOyB0aGVuCisr ICAjIEZhc3QgaW5zdGFsbGF0aW9uIGlzIG5vdCBuZWNlc3NhcnkKKysgIGVuYWJsZV9mYXN0X2lu c3RhbGw9bmVlZGxlc3MKKytmaQorK19MVF9UQUdERUNMKFtdLCBbaGFyZGNvZGVfYWN0aW9uXSwg WzBdLAorKyAgICBbSG93IHRvIGhhcmRjb2RlIGEgc2hhcmVkIGxpYnJhcnkgcGF0aCBpbnRvIGFu IGV4ZWN1dGFibGVdKQorK10pIyBfTFRfTElOS0VSX0hBUkRDT0RFX0xJQlBBVEgKKysKKysKKysj IF9MVF9DTURfU1RSSVBMSUIKKysjIC0tLS0tLS0tLS0tLS0tLS0KKyttNF9kZWZ1bihbX0xUX0NN RF9TVFJJUExJQl0sCisrW200X3JlcXVpcmUoW19MVF9ERUNMX0VHUkVQXSkKKytzdHJpcGxpYj0K KytvbGRfc3RyaXBsaWI9CisrQUNfTVNHX0NIRUNLSU5HKFt3aGV0aGVyIHN0cmlwcGluZyBsaWJy YXJpZXMgaXMgcG9zc2libGVdKQorK2lmIHRlc3QgLW4gIiRTVFJJUCIgJiYgJFNUUklQIC1WIDI+ JjEgfCAkR1JFUCAiR05VIHN0cmlwIiA+L2Rldi9udWxsOyB0aGVuCisrICB0ZXN0IC16ICIkb2xk X3N0cmlwbGliIiAmJiBvbGRfc3RyaXBsaWI9IiRTVFJJUCAtLXN0cmlwLWRlYnVnIgorKyAgdGVz dCAteiAiJHN0cmlwbGliIiAmJiBzdHJpcGxpYj0iJFNUUklQIC0tc3RyaXAtdW5uZWVkZWQiCisr ICBBQ19NU0dfUkVTVUxUKFt5ZXNdKQorK2Vsc2UKKysjIEZJWE1FIC0gaW5zZXJ0IHNvbWUgcmVh bCB0ZXN0cywgaG9zdF9vcyBpc24ndCByZWFsbHkgZ29vZCBlbm91Z2gKKysgIGNhc2UgJGhvc3Rf b3MgaW4KKysgIGRhcndpbiopCisrICAgIGlmIHRlc3QgLW4gIiRTVFJJUCIgOyB0aGVuCisrICAg ICAgc3RyaXBsaWI9IiRTVFJJUCAteCIKKysgICAgICBvbGRfc3RyaXBsaWI9IiRTVFJJUCAtUyIK KysgICAgICBBQ19NU0dfUkVTVUxUKFt5ZXNdKQorKyAgICBlbHNlCisrICAgICAgQUNfTVNHX1JF U1VMVChbbm9dKQorKyAgICBmaQorKyAgICA7OworKyAgKikKKysgICAgQUNfTVNHX1JFU1VMVChb bm9dKQorKyAgICA7OworKyAgZXNhYworK2ZpCisrX0xUX0RFQ0woW10sIFtvbGRfc3RyaXBsaWJd LCBbMV0sIFtDb21tYW5kcyB0byBzdHJpcCBsaWJyYXJpZXNdKQorK19MVF9ERUNMKFtdLCBbc3Ry aXBsaWJdLCBbMV0pCisrXSkjIF9MVF9DTURfU1RSSVBMSUIKKysKKysKKysjIF9MVF9TWVNfRFlO QU1JQ19MSU5LRVIoW1RBR10pCisrIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKyMg UE9SVE1FIEZpbGwgaW4geW91ciBsZC5zbyBjaGFyYWN0ZXJpc3RpY3MKKyttNF9kZWZ1bihbX0xU X1NZU19EWU5BTUlDX0xJTktFUl0sCisrW0FDX1JFUVVJUkUoW0FDX0NBTk9OSUNBTF9IT1NUXSlk bmwKKyttNF9yZXF1aXJlKFtfTFRfREVDTF9FR1JFUF0pZG5sCisrbTRfcmVxdWlyZShbX0xUX0ZJ TEVVVElMU19ERUZBVUxUU10pZG5sCisrbTRfcmVxdWlyZShbX0xUX0RFQ0xfT0JKRFVNUF0pZG5s CisrbTRfcmVxdWlyZShbX0xUX0RFQ0xfU0VEXSlkbmwKKytBQ19NU0dfQ0hFQ0tJTkcoW2R5bmFt aWMgbGlua2VyIGNoYXJhY3RlcmlzdGljc10pCisrbTRfaWYoWyQxXSwKKysJW10sIFsKKytpZiB0 ZXN0ICIkR0NDIiA9IHllczsgdGhlbgorKyAgY2FzZSAkaG9zdF9vcyBpbgorKyAgICBkYXJ3aW4q KSBsdF9hd2tfYXJnPSIvXmxpYnJhcmllczovLC9MUi8iIDs7CisrICAgICopIGx0X2F3a19hcmc9 Ii9ebGlicmFyaWVzOi8iIDs7CisrICBlc2FjCisrICBsdF9zZWFyY2hfcGF0aF9zcGVjPWAkQ0Mg LXByaW50LXNlYXJjaC1kaXJzIHwgYXdrICRsdF9hd2tfYXJnIHwgJFNFRCAtZSAicy9ebGlicmFy aWVzOi8vIiAtZSAicyw9LywvLGciYAorKyAgaWYgJEVDSE8gIiRsdF9zZWFyY2hfcGF0aF9zcGVj IiB8ICRHUkVQICc7JyA+L2Rldi9udWxsIDsgdGhlbgorKyAgICAjIGlmIHRoZSBwYXRoIGNvbnRh aW5zICI7IiB0aGVuIHdlIGFzc3VtZSBpdCB0byBiZSB0aGUgc2VwYXJhdG9yCisrICAgICMgb3Ro ZXJ3aXNlIGRlZmF1bHQgdG8gdGhlIHN0YW5kYXJkIHBhdGggc2VwYXJhdG9yIChpLmUuICI6Iikg LSBpdCBpcworKyAgICAjIGFzc3VtZWQgdGhhdCBubyBwYXJ0IG9mIGEgbm9ybWFsIHBhdGhuYW1l IGNvbnRhaW5zICI7IiBidXQgdGhhdCBzaG91bGQKKysgICAgIyBva2F5IGluIHRoZSByZWFsIHdv cmxkIHdoZXJlICI7IiBpbiBkaXJwYXRocyBpcyBpdHNlbGYgcHJvYmxlbWF0aWMuCisrICAgIGx0 X3NlYXJjaF9wYXRoX3NwZWM9YCRFQ0hPICIkbHRfc2VhcmNoX3BhdGhfc3BlYyIgfCAkU0VEIC1l ICdzLzsvIC9nJ2AKKysgIGVsc2UKKysgICAgbHRfc2VhcmNoX3BhdGhfc3BlYz1gJEVDSE8gIiRs dF9zZWFyY2hfcGF0aF9zcGVjIiB8ICRTRUQgIC1lICJzLyRQQVRIX1NFUEFSQVRPUi8gL2ciYAor KyAgZmkKKysgICMgT2ssIG5vdyB3ZSBoYXZlIHRoZSBwYXRoLCBzZXBhcmF0ZWQgYnkgc3BhY2Vz LCB3ZSBjYW4gc3RlcCB0aHJvdWdoIGl0CisrICAjIGFuZCBhZGQgbXVsdGlsaWIgZGlyIGlmIG5l Y2Vzc2FyeS4KKysgIGx0X3RtcF9sdF9zZWFyY2hfcGF0aF9zcGVjPQorKyAgbHRfbXVsdGlfb3Nf ZGlyPWAkQ0MgJENQUEZMQUdTICRDRkxBR1MgJExERkxBR1MgLXByaW50LW11bHRpLW9zLWRpcmVj dG9yeSAyPi9kZXYvbnVsbGAKKysgIGZvciBsdF9zeXNfcGF0aCBpbiAkbHRfc2VhcmNoX3BhdGhf c3BlYzsgZG8KKysgICAgaWYgdGVzdCAtZCAiJGx0X3N5c19wYXRoLyRsdF9tdWx0aV9vc19kaXIi OyB0aGVuCisrICAgICAgbHRfdG1wX2x0X3NlYXJjaF9wYXRoX3NwZWM9IiRsdF90bXBfbHRfc2Vh cmNoX3BhdGhfc3BlYyAkbHRfc3lzX3BhdGgvJGx0X211bHRpX29zX2RpciIKKysgICAgZWxzZQor KyAgICAgIHRlc3QgLWQgIiRsdF9zeXNfcGF0aCIgJiYgXAorKwlsdF90bXBfbHRfc2VhcmNoX3Bh dGhfc3BlYz0iJGx0X3RtcF9sdF9zZWFyY2hfcGF0aF9zcGVjICRsdF9zeXNfcGF0aCIKKysgICAg ZmkKKysgIGRvbmUKKysgIGx0X3NlYXJjaF9wYXRoX3NwZWM9YCRFQ0hPICRsdF90bXBfbHRfc2Vh cmNoX3BhdGhfc3BlYyB8IGF3ayAnCisrQkVHSU4ge1JTPSIgIjsgRlM9Ii98XG4iO30geworKyAg bHRfZm9vPSIiOworKyAgbHRfY291bnQ9MDsKKysgIGZvciAobHRfaSA9IE5GOyBsdF9pID4gMDsg bHRfaS0tKSB7CisrICAgIGlmICgkbHRfaSAhPSAiIiAmJiAkbHRfaSAhPSAiLiIpIHsKKysgICAg ICBpZiAoJGx0X2kgPT0gIi4uIikgeworKyAgICAgICAgbHRfY291bnQrKzsKKysgICAgICB9IGVs c2UgeworKyAgICAgICAgaWYgKGx0X2NvdW50ID09IDApIHsKKysgICAgICAgICAgbHRfZm9vPSIv IiAkbHRfaSBsdF9mb287CisrICAgICAgICB9IGVsc2UgeworKyAgICAgICAgICBsdF9jb3VudC0t OworKyAgICAgICAgfQorKyAgICAgIH0KKysgICAgfQorKyAgfQorKyAgaWYgKGx0X2ZvbyAhPSAi IikgeyBsdF9mcmVxW1tsdF9mb29dXSsrOyB9CisrICBpZiAobHRfZnJlcVtbbHRfZm9vXV0gPT0g MSkgeyBwcmludCBsdF9mb287IH0KKyt9J2AKKysgIHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYz1g JEVDSE8gJGx0X3NlYXJjaF9wYXRoX3NwZWNgCisrZWxzZQorKyAgc3lzX2xpYl9zZWFyY2hfcGF0 aF9zcGVjPSIvbGliIC91c3IvbGliIC91c3IvbG9jYWwvbGliIgorK2ZpXSkKKytsaWJyYXJ5X25h bWVzX3NwZWM9CisrbGlibmFtZV9zcGVjPSdsaWIkbmFtZScKKytzb25hbWVfc3BlYz0KKytzaHJl eHRfY21kcz0iLnNvIgorK3Bvc3RpbnN0YWxsX2NtZHM9CisrcG9zdHVuaW5zdGFsbF9jbWRzPQor K2ZpbmlzaF9jbWRzPQorK2ZpbmlzaF9ldmFsPQorK3NobGlicGF0aF92YXI9Cisrc2hsaWJwYXRo X292ZXJyaWRlc19ydW5wYXRoPXVua25vd24KKyt2ZXJzaW9uX3R5cGU9bm9uZQorK2R5bmFtaWNf bGlua2VyPSIkaG9zdF9vcyBsZC5zbyIKKytzeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYz0iL2xp YiAvdXNyL2xpYiIKKytuZWVkX2xpYl9wcmVmaXg9dW5rbm93bgorK2hhcmRjb2RlX2ludG9fbGli cz1ubworKworKyMgd2hlbiB5b3Ugc2V0IG5lZWRfdmVyc2lvbiB0byBubywgbWFrZSBzdXJlIGl0 IGRvZXMgbm90IGNhdXNlIC1zZXRfdmVyc2lvbgorKyMgZmxhZ3MgdG8gYmUgbGVmdCB3aXRob3V0 IGFyZ3VtZW50cworK25lZWRfdmVyc2lvbj11bmtub3duCisrCisrY2FzZSAkaG9zdF9vcyBpbgor K2FpeDMqKQorKyAgdmVyc2lvbl90eXBlPWxpbnV4CisrICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7 bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJGxpYm5hbWUuYScKKysg IHNobGlicGF0aF92YXI9TElCUEFUSAorKworKyAgIyBBSVggMyBoYXMgbm8gdmVyc2lvbmluZyBz dXBwb3J0LCBzbyB3ZSBhcHBlbmQgYSBtYWpvciB2ZXJzaW9uIHRvIHRoZSBuYW1lLgorKyAgc29u YW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKKysgIDs7 CisrCisrYWl4W1s0LTldXSopCisrICB2ZXJzaW9uX3R5cGU9bGludXgKKysgIG5lZWRfbGliX3By ZWZpeD1ubworKyAgbmVlZF92ZXJzaW9uPW5vCisrICBoYXJkY29kZV9pbnRvX2xpYnM9eWVzCisr ICBpZiB0ZXN0ICIkaG9zdF9jcHUiID0gaWE2NDsgdGhlbgorKyAgICAjIEFJWCA1IHN1cHBvcnRz IElBNjQKKysgICAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hh cmVkX2V4dH0kbWFqb3IgJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZp eCAkbGlibmFtZSR7c2hhcmVkX2V4dH0nCisrICAgIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9Q QVRICisrICBlbHNlCisrICAgICMgV2l0aCBHQ0MgdXAgdG8gMi45NS54LCBjb2xsZWN0MiB3b3Vs ZCBjcmVhdGUgYW4gaW1wb3J0IGZpbGUKKysgICAgIyBmb3IgZGVwZW5kZW5jZSBsaWJyYXJpZXMu ICBUaGUgaW1wb3J0IGZpbGUgd291bGQgc3RhcnQgd2l0aAorKyAgICAjIHRoZSBsaW5lIGAjISAu Jy4gIFRoaXMgd291bGQgY2F1c2UgdGhlIGdlbmVyYXRlZCBsaWJyYXJ5IHRvCisrICAgICMgZGVw ZW5kIG9uIGAuJywgYWx3YXlzIGFuIGludmFsaWQgbGlicmFyeS4gIFRoaXMgd2FzIGZpeGVkIGlu CisrICAgICMgZGV2ZWxvcG1lbnQgc25hcHNob3RzIG9mIEdDQyBwcmlvciB0byAzLjAuCisrICAg IGNhc2UgJGhvc3Rfb3MgaW4KKysgICAgICBhaXg0IHwgYWl4NC5bWzAxXV0gfCBhaXg0LltbMDFd XS4qKQorKyAgICAgIGlmIHsgZWNobyAnI2lmIF9fR05VQ19fID4gMiB8fCAoX19HTlVDX18gPT0g MiAmJiBfX0dOVUNfTUlOT1JfXyA+PSA5NyknCisrCSAgIGVjaG8gJyB5ZXMgJworKwkgICBlY2hv ICcjZW5kaWYnOyB9IHwgJHtDQ30gLUUgLSB8ICRHUkVQIHllcyA+IC9kZXYvbnVsbDsgdGhlbgor Kwk6CisrICAgICAgZWxzZQorKwljYW5fYnVpbGRfc2hhcmVkPW5vCisrICAgICAgZmkKKysgICAg ICA7OworKyAgICBlc2FjCisrICAgICMgQUlYIChvbiBQb3dlciopIGhhcyBubyB2ZXJzaW9uaW5n IHN1cHBvcnQsIHNvIGN1cnJlbnRseSB3ZSBjYW4gbm90IGhhcmRjb2RlIGNvcnJlY3QKKysgICAg IyBzb25hbWUgaW50byBleGVjdXRhYmxlLiBQcm9iYWJseSB3ZSBjYW4gYWRkIHZlcnNpb25pbmcg c3VwcG9ydCB0bworKyAgICAjIGNvbGxlY3QyLCBzbyBhZGRpdGlvbmFsIGxpbmtzIGNhbiBiZSB1 c2VmdWwgaW4gZnV0dXJlLgorKyAgICBpZiB0ZXN0ICIkYWl4X3VzZV9ydW50aW1lbGlua2luZyIg PSB5ZXM7IHRoZW4KKysgICAgICAjIElmIHVzaW5nIHJ1biB0aW1lIGxpbmtpbmcgKG9uIEFJWCA0 LjIgb3IgbGF0ZXIpIHVzZSBsaWI8bmFtZT4uc28KKysgICAgICAjIGluc3RlYWQgb2YgbGliPG5h bWU+LmEgdG8gbGV0IHBlb3BsZSBrbm93IHRoYXQgdGhlc2UgYXJlIG5vdAorKyAgICAgICMgdHlw aWNhbCBBSVggc2hhcmVkIGxpYnJhcmllcy4KKysgICAgICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7 bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVs ZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKKysgICAgZWxz ZQorKyAgICAgICMgV2UgcHJlc2VydmUgLmEgYXMgZXh0ZW5zaW9uIGZvciBzaGFyZWQgbGlicmFy aWVzIHRocm91Z2ggQUlYNC4yCisrICAgICAgIyBhbmQgbGF0ZXIgd2hlbiB3ZSBhcmUgbm90IGRv aW5nIHJ1biB0aW1lIGxpbmtpbmcuCisrICAgICAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5h bWV9JHtyZWxlYXNlfS5hICRsaWJuYW1lLmEnCisrICAgICAgc29uYW1lX3NwZWM9JyR7bGlibmFt ZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKKysgICAgZmkKKysgICAgc2hsaWJwYXRo X3Zhcj1MSUJQQVRICisrICBmaQorKyAgOzsKKysKKythbWlnYW9zKikKKysgIGNhc2UgJGhvc3Rf Y3B1IGluCisrICBwb3dlcnBjKQorKyAgICAjIFNpbmNlIEp1bHkgMjAwNyBBbWlnYU9TNCBvZmZp Y2lhbGx5IHN1cHBvcnRzIC5zbyBsaWJyYXJpZXMuCisrICAgICMgV2hlbiBjb21waWxpbmcgdGhl IGV4ZWN1dGFibGUsIGFkZCAtdXNlLWR5bmxkIC1Mc29ianM6IHRvIHRoZSBjb21waWxlbGluZS4K KysgICAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4 dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAkbGli bmFtZSR7c2hhcmVkX2V4dH0nCisrICAgIDs7CisrICBtNjhrKQorKyAgICBsaWJyYXJ5X25hbWVz X3NwZWM9JyRsaWJuYW1lLml4bGlicmFyeSAkbGlibmFtZS5hJworKyAgICAjIENyZWF0ZSAke2xp Ym5hbWV9X2l4bGlicmFyeS5hIGVudHJpZXMgaW4gL3N5cy9saWJzLgorKyAgICBmaW5pc2hfZXZh bD0nZm9yIGxpYiBpbiBgbHMgJGxpYmRpci8qLml4bGlicmFyeSAyPi9kZXYvbnVsbGA7IGRvIGxp Ym5hbWU9YCRFQ0hPICJYJGxpYiIgfCAkWHNlZCAtZSAnXCcncyVeLiovXChbW14vXV0qXClcLml4 bGlicmFyeSQlXDElJ1wnJ2A7IHRlc3QgJFJNIC9zeXMvbGlicy8ke2xpYm5hbWV9X2l4bGlicmFy eS5hOyAkc2hvdyAiY2QgL3N5cy9saWJzICYmICRMTl9TICRsaWIgJHtsaWJuYW1lfV9peGxpYnJh cnkuYSI7IGNkIC9zeXMvbGlicyAmJiAkTE5fUyAkbGliICR7bGlibmFtZX1faXhsaWJyYXJ5LmEg fHwgZXhpdCAxOyBkb25lJworKyAgICA7OworKyAgZXNhYworKyAgOzsKKysKKytiZW9zKikKKysg IGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7c2hhcmVkX2V4dH0nCisrICBkeW5hbWlj X2xpbmtlcj0iJGhvc3Rfb3MgbGQuc28iCisrICBzaGxpYnBhdGhfdmFyPUxJQlJBUllfUEFUSAor KyAgOzsKKysKKytic2RpW1s0NV1dKikKKysgIHZlcnNpb25fdHlwZT1saW51eAorKyAgbmVlZF92 ZXJzaW9uPW5vCisrICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtz aGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1h am9yICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKKysgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHty ZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCisrICBmaW5pc2hfY21kcz0nUEFUSD0iXCRQQVRI Oi9zYmluIiBsZGNvbmZpZyAkbGliZGlyJworKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BB VEgKKysgIHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYz0iL3NobGliIC91c3IvbGliIC91c3IvWDEx L2xpYiAvdXNyL2NvbnRyaWIvbGliIC9saWIgL3Vzci9sb2NhbC9saWIiCisrICBzeXNfbGliX2Rs c2VhcmNoX3BhdGhfc3BlYz0iL3NobGliIC91c3IvbGliIC91c3IvbG9jYWwvbGliIgorKyAgIyB0 aGUgZGVmYXVsdCBsZC5zby5jb25mIGFsc28gY29udGFpbnMgL3Vzci9jb250cmliL2xpYiBhbmQK KysgICMgL3Vzci9YMTFSNi9saWIgKC91c3IvWDExIGlzIGEgbGluayB0byAvdXNyL1gxMVI2KSwg YnV0IGxldCB1cyBhbGxvdworKyAgIyBsaWJ0b29sIHRvIGhhcmQtY29kZSB0aGVzZSBpbnRvIHBy b2dyYW1zCisrICA7OworKworK2N5Z3dpbiogfCBtaW5ndyogfCBwdzMyKiB8IGNlZ2NjKikKKysg IHZlcnNpb25fdHlwZT13aW5kb3dzCisrICBzaHJleHRfY21kcz0iLmRsbCIKKysgIG5lZWRfdmVy c2lvbj1ubworKyAgbmVlZF9saWJfcHJlZml4PW5vCisrCisrICBjYXNlICRHQ0MsJGhvc3Rfb3Mg aW4KKysgIHllcyxjeWd3aW4qIHwgeWVzLG1pbmd3KiB8IHllcyxwdzMyKiB8IHllcyxjZWdjYyop CisrICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJGxpYm5hbWUuZGxsLmEnCisrICAgICMgRExMIGlz IGluc3RhbGxlZCB0byAkKGxpYmRpcikvLi4vYmluIGJ5IHBvc3RpbnN0YWxsX2NtZHMKKysgICAg cG9zdGluc3RhbGxfY21kcz0nYmFzZV9maWxlPWBiYXNlbmFtZSBcJHtmaWxlfWB+CisrICAgICAg ZGxwYXRoPWAkU0hFTEwgMj4mMSAtYyAnXCcnLiAkZGlyLydcJydcJHtiYXNlX2ZpbGV9J1wnJ2k7 IGVjaG8gXCRkbG5hbWUnXCcnYH4KKysgICAgICBkbGRpcj0kZGVzdGRpci9gZGlybmFtZSBcJGRs cGF0aGB+CisrICAgICAgdGVzdCAtZCBcJGRsZGlyIHx8IG1rZGlyIC1wIFwkZGxkaXJ+CisrICAg ICAgJGluc3RhbGxfcHJvZyAkZGlyLyRkbG5hbWUgXCRkbGRpci8kZGxuYW1lfgorKyAgICAgIGNo bW9kIGEreCBcJGRsZGlyLyRkbG5hbWV+CisrICAgICAgaWYgdGVzdCAtbiAnXCcnJHN0cmlwbWUn XCcnICYmIHRlc3QgLW4gJ1wnJyRzdHJpcGxpYidcJyc7IHRoZW4KKysgICAgICAgIGV2YWwgJ1wn JyRzdHJpcGxpYiBcJGRsZGlyLyRkbG5hbWUnXCcnIHx8IGV4aXQgXCQ/OworKyAgICAgIGZpJwor KyAgICBwb3N0dW5pbnN0YWxsX2NtZHM9J2RsZGxsPWAkU0hFTEwgMj4mMSAtYyAnXCcnLiAkZmls ZTsgZWNobyBcJGRsbmFtZSdcJydgfgorKyAgICAgIGRscGF0aD0kZGlyL1wkZGxkbGx+CisrICAg ICAgICRSTSBcJGRscGF0aCcKKysgICAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPXllcwor KworKyAgICBjYXNlICRob3N0X29zIGluCisrICAgIGN5Z3dpbiopCisrICAgICAgIyBDeWd3aW4g RExMcyB1c2UgJ2N5ZycgcHJlZml4IHJhdGhlciB0aGFuICdsaWInCisrICAgICAgc29uYW1lX3Nw ZWM9J2BlY2hvICR7bGlibmFtZX0gfCBzZWQgLWUgJ3MvXmxpYi9jeWcvJ2BgZWNobyAke3JlbGVh c2V9IHwgJFNFRCAtZSAncy9bWy5dXS8tL2cnYCR7dmVyc3VmZml4fSR7c2hhcmVkX2V4dH0nCisr ICAgICAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPSIvdXNyL2xpYiAvbGliL3czMmFwaSAvbGli IC91c3IvbG9jYWwvbGliIgorKyAgICAgIDs7CisrICAgIG1pbmd3KiB8IGNlZ2NjKikKKysgICAg ICAjIE1pbkdXIERMTHMgdXNlIHRyYWRpdGlvbmFsICdsaWInIHByZWZpeAorKyAgICAgIHNvbmFt ZV9zcGVjPScke2xpYm5hbWV9YGVjaG8gJHtyZWxlYXNlfSB8ICRTRUQgLWUgJ3MvW1suXV0vLS9n J2Ake3ZlcnN1ZmZpeH0ke3NoYXJlZF9leHR9JworKyAgICAgIHN5c19saWJfc2VhcmNoX3BhdGhf c3BlYz1gJENDIC1wcmludC1zZWFyY2gtZGlycyB8ICRHUkVQICJebGlicmFyaWVzOiIgfCAkU0VE IC1lICJzL15saWJyYXJpZXM6Ly8iIC1lICJzLD0vLC8sZyJgCisrICAgICAgaWYgJEVDSE8gIiRz eXNfbGliX3NlYXJjaF9wYXRoX3NwZWMiIHwgWyRHUkVQICc7W2MtekMtWl06LycgPi9kZXYvbnVs bF07IHRoZW4KKysgICAgICAgICMgSXQgaXMgbW9zdCBwcm9iYWJseSBhIFdpbmRvd3MgZm9ybWF0 IFBBVEggcHJpbnRlZCBieQorKyAgICAgICAgIyBtaW5ndyBnY2MsIGJ1dCB3ZSBhcmUgcnVubmlu ZyBvbiBDeWd3aW4uIEdjYyBwcmludHMgaXRzIHNlYXJjaAorKyAgICAgICAgIyBwYXRoIHdpdGgg OyBzZXBhcmF0b3JzLCBhbmQgd2l0aCBkcml2ZSBsZXR0ZXJzLiBXZSBjYW4gaGFuZGxlIHRoZQor KyAgICAgICAgIyBkcml2ZSBsZXR0ZXJzIChjeWd3aW4gZmlsZXV0aWxzIHVuZGVyc3RhbmRzIHRo ZW0pLCBzbyBsZWF2ZSB0aGVtLAorKyAgICAgICAgIyBlc3BlY2lhbGx5IGFzIHdlIG1pZ2h0IHBh c3MgZmlsZXMgZm91bmQgdGhlcmUgdG8gYSBtaW5ndyBvYmpkdW1wLAorKyAgICAgICAgIyB3aGlj aCB3b3VsZG4ndCB1bmRlcnN0YW5kIGEgY3lnd2luaWZpZWQgcGF0aC4gQWhoLgorKyAgICAgICAg c3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPWAkRUNITyAiJHN5c19saWJfc2VhcmNoX3BhdGhfc3Bl YyIgfCAkU0VEIC1lICdzLzsvIC9nJ2AKKysgICAgICBlbHNlCisrICAgICAgICBzeXNfbGliX3Nl YXJjaF9wYXRoX3NwZWM9YCRFQ0hPICIkc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjIiB8ICRTRUQg IC1lICJzLyRQQVRIX1NFUEFSQVRPUi8gL2ciYAorKyAgICAgIGZpCisrICAgICAgOzsKKysgICAg cHczMiopCisrICAgICAgIyBwdzMyIERMTHMgdXNlICdwdycgcHJlZml4IHJhdGhlciB0aGFuICds aWInCisrICAgICAgbGlicmFyeV9uYW1lc19zcGVjPSdgZWNobyAke2xpYm5hbWV9IHwgc2VkIC1l ICdzL15saWIvcHcvJ2BgZWNobyAke3JlbGVhc2V9IHwgJFNFRCAtZSAncy9bWy5dXS8tL2cnYCR7 dmVyc3VmZml4fSR7c2hhcmVkX2V4dH0nCisrICAgICAgOzsKKysgICAgZXNhYworKyAgICA7Owor KworKyAgKikKKysgICAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9YGVjaG8gJHtyZWxl YXNlfSB8ICRTRUQgLWUgJ3MvW1suXV0vLS9nJ2Ake3ZlcnN1ZmZpeH0ke3NoYXJlZF9leHR9ICRs aWJuYW1lLmxpYicKKysgICAgOzsKKysgIGVzYWMKKysgIGR5bmFtaWNfbGlua2VyPSdXaW4zMiBs ZC5leGUnCisrICAjIEZJWE1FOiBmaXJzdCB3ZSBzaG91bGQgc2VhcmNoIC4gYW5kIHRoZSBkaXJl Y3RvcnkgdGhlIGV4ZWN1dGFibGUgaXMgaW4KKysgIHNobGlicGF0aF92YXI9UEFUSAorKyAgOzsK KysKKytkYXJ3aW4qIHwgcmhhcHNvZHkqKQorKyAgZHluYW1pY19saW5rZXI9IiRob3N0X29zIGR5 bGQiCisrICB2ZXJzaW9uX3R5cGU9ZGFyd2luCisrICBuZWVkX2xpYl9wcmVmaXg9bm8KKysgIG5l ZWRfdmVyc2lvbj1ubworKyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNl fSR7bWFqb3J9JHNoYXJlZF9leHQgJHtsaWJuYW1lfSRzaGFyZWRfZXh0JworKyAgc29uYW1lX3Nw ZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHttYWpvcn0kc2hhcmVkX2V4dCcKKysgIHNobGlicGF0 aF9vdmVycmlkZXNfcnVucGF0aD15ZXMKKysgIHNobGlicGF0aF92YXI9RFlMRF9MSUJSQVJZX1BB VEgKKysgIHNocmV4dF9jbWRzPSdgdGVzdCAuJG1vZHVsZSA9IC55ZXMgJiYgZWNobyAuc28gfHwg ZWNobyAuZHlsaWJgJworK200X2lmKFskMV0sIFtdLFsKKysgIHN5c19saWJfc2VhcmNoX3BhdGhf c3BlYz0iJHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYyAvdXNyL2xvY2FsL2xpYiJdKQorKyAgc3lz X2xpYl9kbHNlYXJjaF9wYXRoX3NwZWM9Jy91c3IvbG9jYWwvbGliIC9saWIgL3Vzci9saWInCisr ICA7OworKworK2RndXgqKQorKyAgdmVyc2lvbl90eXBlPWxpbnV4CisrICBuZWVkX2xpYl9wcmVm aXg9bm8KKysgIG5lZWRfdmVyc2lvbj1ubworKyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5h bWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9 JHtzaGFyZWRfZXh0fSRtYWpvciAkbGlibmFtZSRzaGFyZWRfZXh0JworKyAgc29uYW1lX3NwZWM9 JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKKysgIHNobGlicGF0aF92 YXI9TERfTElCUkFSWV9QQVRICisrICA7OworKworK2ZyZWVic2QxKikKKysgIGR5bmFtaWNfbGlu a2VyPW5vCisrICA7OworKworK2ZyZWVic2QqIHwgZHJhZ29uZmx5KikKKysgICMgRHJhZ29uRmx5 IGRvZXMgbm90IGhhdmUgYW91dC4gIFdoZW4vaWYgdGhleSBpbXBsZW1lbnQgYSBuZXcKKysgICMg dmVyc2lvbmluZyBtZWNoYW5pc20sIGFkanVzdCB0aGlzLgorKyAgaWYgdGVzdCAteCAvdXNyL2Jp bi9vYmpmb3JtYXQ7IHRoZW4KKysgICAgb2JqZm9ybWF0PWAvdXNyL2Jpbi9vYmpmb3JtYXRgCisr ICBlbHNlCisrICAgIGNhc2UgJGhvc3Rfb3MgaW4KKysgICAgZnJlZWJzZFtbMTIzXV0qKSBvYmpm b3JtYXQ9YW91dCA7OworKyAgICAqKSBvYmpmb3JtYXQ9ZWxmIDs7CisrICAgIGVzYWMKKysgIGZp CisrICB2ZXJzaW9uX3R5cGU9ZnJlZWJzZC0kb2JqZm9ybWF0CisrICBjYXNlICR2ZXJzaW9uX3R5 cGUgaW4KKysgICAgZnJlZWJzZC1lbGYqKQorKyAgICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHts aWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxl YXNlfSR7c2hhcmVkX2V4dH0gJGxpYm5hbWUke3NoYXJlZF9leHR9JworKyAgICAgIG5lZWRfdmVy c2lvbj1ubworKyAgICAgIG5lZWRfbGliX3ByZWZpeD1ubworKyAgICAgIDs7CisrICAgIGZyZWVi c2QtKikKKysgICAgICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtz aGFyZWRfZXh0fSR2ZXJzdWZmaXggJGxpYm5hbWUke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCcKKysg ICAgICBuZWVkX3ZlcnNpb249eWVzCisrICAgICAgOzsKKysgIGVzYWMKKysgIHNobGlicGF0aF92 YXI9TERfTElCUkFSWV9QQVRICisrICBjYXNlICRob3N0X29zIGluCisrICBmcmVlYnNkMiopCisr ICAgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD15ZXMKKysgICAgOzsKKysgIGZyZWVic2Qz LltbMDFdXSogfCBmcmVlYnNkZWxmMy5bWzAxXV0qKQorKyAgICBzaGxpYnBhdGhfb3ZlcnJpZGVz X3J1bnBhdGg9eWVzCisrICAgIGhhcmRjb2RlX2ludG9fbGlicz15ZXMKKysgICAgOzsKKysgIGZy ZWVic2QzLltbMi05XV0qIHwgZnJlZWJzZGVsZjMuW1syLTldXSogfCBcCisrICBmcmVlYnNkNC5b WzAtNV1dIHwgZnJlZWJzZGVsZjQuW1swLTVdXSB8IGZyZWVic2Q0LjEuMSB8IGZyZWVic2RlbGY0 LjEuMSkKKysgICAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPW5vCisrICAgIGhhcmRjb2Rl X2ludG9fbGlicz15ZXMKKysgICAgOzsKKysgICopICMgZnJvbSA0LjYgb24sIGFuZCBEcmFnb25G bHkKKysgICAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPXllcworKyAgICBoYXJkY29kZV9p bnRvX2xpYnM9eWVzCisrICAgIDs7CisrICBlc2FjCisrICA7OworKworK2dudSopCisrICB2ZXJz aW9uX3R5cGU9bGludXgKKysgIG5lZWRfbGliX3ByZWZpeD1ubworKyAgbmVlZF92ZXJzaW9uPW5v CisrICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0 fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHttYWpvcn0gJHts aWJuYW1lfSR7c2hhcmVkX2V4dH0nCisrICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFz ZX0ke3NoYXJlZF9leHR9JG1ham9yJworKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgK KysgIGhhcmRjb2RlX2ludG9fbGlicz15ZXMKKysgIDs7CisrCisraHB1eDkqIHwgaHB1eDEwKiB8 IGhwdXgxMSopCisrICAjIEdpdmUgYSBzb25hbWUgY29ycmVzcG9uZGluZyB0byB0aGUgbWFqb3Ig dmVyc2lvbiBzbyB0aGF0IGRsZC5zbCByZWZ1c2VzIHRvCisrICAjIGxpbmsgYWdhaW5zdCBvdGhl ciB2ZXJzaW9ucy4KKysgIHZlcnNpb25fdHlwZT1zdW5vcworKyAgbmVlZF9saWJfcHJlZml4PW5v CisrICBuZWVkX3ZlcnNpb249bm8KKysgIGNhc2UgJGhvc3RfY3B1IGluCisrICBpYTY0KikKKysg ICAgc2hyZXh0X2NtZHM9Jy5zbycKKysgICAgaGFyZGNvZGVfaW50b19saWJzPXllcworKyAgICBk eW5hbWljX2xpbmtlcj0iJGhvc3Rfb3MgZGxkLnNvIgorKyAgICBzaGxpYnBhdGhfdmFyPUxEX0xJ QlJBUllfUEFUSAorKyAgICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9eWVzICMgVW5sZXNz ICtub2VudnZhciBpcyBzcGVjaWZpZWQuCisrICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJu YW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNl fSR7c2hhcmVkX2V4dH0kbWFqb3IgJGxpYm5hbWUke3NoYXJlZF9leHR9JworKyAgICBzb25hbWVf c3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yJworKyAgICBpZiB0 ZXN0ICJYJEhQVVhfSUE2NF9NT0RFIiA9IFgzMjsgdGhlbgorKyAgICAgIHN5c19saWJfc2VhcmNo X3BhdGhfc3BlYz0iL3Vzci9saWIvaHB1eDMyIC91c3IvbG9jYWwvbGliL2hwdXgzMiAvdXNyL2xv Y2FsL2xpYiIKKysgICAgZWxzZQorKyAgICAgIHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYz0iL3Vz ci9saWIvaHB1eDY0IC91c3IvbG9jYWwvbGliL2hwdXg2NCIKKysgICAgZmkKKysgICAgc3lzX2xp Yl9kbHNlYXJjaF9wYXRoX3NwZWM9JHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYworKyAgICA7Owor KyAgaHBwYSo2NCopCisrICAgIHNocmV4dF9jbWRzPScuc2wnCisrICAgIGhhcmRjb2RlX2ludG9f bGlicz15ZXMKKysgICAgZHluYW1pY19saW5rZXI9IiRob3N0X29zIGRsZC5zbCIKKysgICAgc2hs aWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEggIyBIb3cgc2hvdWxkIHdlIGhhbmRsZSBTSExJQl9Q QVRICisrICAgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD15ZXMgIyBVbmxlc3MgK25vZW52 dmFyIGlzIHNwZWNpZmllZC4KKysgICAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHty ZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFy ZWRfZXh0fSRtYWpvciAkbGlibmFtZSR7c2hhcmVkX2V4dH0nCisrICAgIHNvbmFtZV9zcGVjPSck e2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCisrICAgIHN5c19saWJfc2Vh cmNoX3BhdGhfc3BlYz0iL3Vzci9saWIvcGEyMF82NCAvdXNyL2Njcy9saWIvcGEyMF82NCIKKysg ICAgc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWM9JHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYwor KyAgICA7OworKyAgKikKKysgICAgc2hyZXh0X2NtZHM9Jy5zbCcKKysgICAgZHluYW1pY19saW5r ZXI9IiRob3N0X29zIGRsZC5zbCIKKysgICAgc2hsaWJwYXRoX3Zhcj1TSExJQl9QQVRICisrICAg IHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD1ubyAjICtzIGlzIHJlcXVpcmVkIHRvIGVuYWJs ZSBTSExJQl9QQVRICisrICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFz ZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4 dH0kbWFqb3IgJGxpYm5hbWUke3NoYXJlZF9leHR9JworKyAgICBzb25hbWVfc3BlYz0nJHtsaWJu YW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yJworKyAgICA7OworKyAgZXNhYworKyAg IyBIUC1VWCBydW5zICpyZWFsbHkqIHNsb3dseSB1bmxlc3Mgc2hhcmVkIGxpYnJhcmllcyBhcmUg bW9kZSA1NTUuCisrICBwb3N0aW5zdGFsbF9jbWRzPSdjaG1vZCA1NTUgJGxpYicKKysgIDs7Cisr CisraW50ZXJpeFtbMy05XV0qKQorKyAgdmVyc2lvbl90eXBlPWxpbnV4CisrICBuZWVkX2xpYl9w cmVmaXg9bm8KKysgIG5lZWRfdmVyc2lvbj1ubworKyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xp Ym5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVh c2V9JHtzaGFyZWRfZXh0fSRtYWpvciAke2xpYm5hbWV9JHtzaGFyZWRfZXh0fScKKysgIHNvbmFt ZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCisrICBkeW5h bWljX2xpbmtlcj0nSW50ZXJpeCAzLnggbGQuc28uMSAoUEUsIGxpa2UgRUxGKScKKysgIHNobGli cGF0aF92YXI9TERfTElCUkFSWV9QQVRICisrICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9 bm8KKysgIGhhcmRjb2RlX2ludG9fbGlicz15ZXMKKysgIDs7CisrCisraXJpeDUqIHwgaXJpeDYq IHwgbm9uc3RvcHV4KikKKysgIGNhc2UgJGhvc3Rfb3MgaW4KKysgICAgbm9uc3RvcHV4KikgdmVy c2lvbl90eXBlPW5vbnN0b3B1eCA7OworKyAgICAqKQorKwlpZiB0ZXN0ICIkbHRfY3ZfcHJvZ19n bnVfbGQiID0geWVzOyB0aGVuCisrCQl2ZXJzaW9uX3R5cGU9bGludXgKKysJZWxzZQorKwkJdmVy c2lvbl90eXBlPWlyaXgKKysJZmkgOzsKKysgIGVzYWMKKysgIG5lZWRfbGliX3ByZWZpeD1ubwor KyAgbmVlZF92ZXJzaW9uPW5vCisrICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0k e3NoYXJlZF9leHR9JG1ham9yJworKyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHty ZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFy ZWRfZXh0fSRtYWpvciAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0gJGxpYm5hbWUk e3NoYXJlZF9leHR9JworKyAgY2FzZSAkaG9zdF9vcyBpbgorKyAgaXJpeDUqIHwgbm9uc3RvcHV4 KikKKysgICAgbGlic3VmZj0gc2hsaWJzdWZmPQorKyAgICA7OworKyAgKikKKysgICAgY2FzZSAk TEQgaW4gIyBsaWJ0b29sLm00IHdpbGwgYWRkIG9uZSBvZiB0aGVzZSBzd2l0Y2hlcyB0byBMRAor KyAgICAqLTMyfCoiLTMyICJ8Ki1tZWxmMzJic21pcHwqIi1tZWxmMzJic21pcCAiKQorKyAgICAg IGxpYnN1ZmY9IHNobGlic3VmZj0gbGlibWFnaWM9MzItYml0OzsKKysgICAgKi1uMzJ8KiItbjMy ICJ8Ki1tZWxmMzJibWlwbjMyfCoiLW1lbGYzMmJtaXBuMzIgIikKKysgICAgICBsaWJzdWZmPTMy IHNobGlic3VmZj1OMzIgbGlibWFnaWM9TjMyOzsKKysgICAgKi02NHwqIi02NCAifCotbWVsZjY0 Ym1pcHwqIi1tZWxmNjRibWlwICIpCisrICAgICAgbGlic3VmZj02NCBzaGxpYnN1ZmY9NjQgbGli bWFnaWM9NjQtYml0OzsKKysgICAgKikgbGlic3VmZj0gc2hsaWJzdWZmPSBsaWJtYWdpYz1uZXZl ci1tYXRjaDs7CisrICAgIGVzYWMKKysgICAgOzsKKysgIGVzYWMKKysgIHNobGlicGF0aF92YXI9 TERfTElCUkFSWSR7c2hsaWJzdWZmfV9QQVRICisrICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBh dGg9bm8KKysgIHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYz0iL3Vzci9saWIke2xpYnN1ZmZ9IC9s aWIke2xpYnN1ZmZ9IC91c3IvbG9jYWwvbGliJHtsaWJzdWZmfSIKKysgIHN5c19saWJfZGxzZWFy Y2hfcGF0aF9zcGVjPSIvdXNyL2xpYiR7bGlic3VmZn0gL2xpYiR7bGlic3VmZn0iCisrICBoYXJk Y29kZV9pbnRvX2xpYnM9eWVzCisrICA7OworKworKyMgTm8gc2hhcmVkIGxpYiBzdXBwb3J0IGZv ciBMaW51eCBvbGRsZCwgYW91dCwgb3IgY29mZi4KKytsaW51eCpvbGRsZCogfCBsaW51eCphb3V0 KiB8IGxpbnV4KmNvZmYqKQorKyAgZHluYW1pY19saW5rZXI9bm8KKysgIDs7CisrCisrIyBUaGlz IG11c3QgYmUgTGludXggRUxGLgorK2xpbnV4KiB8IGsqYnNkKi1nbnUpCisrICB2ZXJzaW9uX3R5 cGU9bGludXgKKysgIG5lZWRfbGliX3ByZWZpeD1ubworKyAgbmVlZF92ZXJzaW9uPW5vCisrICBs aWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJz dWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICRsaWJuYW1lJHtz aGFyZWRfZXh0fScKKysgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVk X2V4dH0kbWFqb3InCisrICBmaW5pc2hfY21kcz0nUEFUSD0iXCRQQVRIOi9zYmluIiBsZGNvbmZp ZyAtbiAkbGliZGlyJworKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKKysgIHNobGli cGF0aF9vdmVycmlkZXNfcnVucGF0aD1ubworKyAgIyBTb21lIGJpbnV0aWxzIGxkIGFyZSBwYXRj aGVkIHRvIHNldCBEVF9SVU5QQVRICisrICBzYXZlX0xERkxBR1M9JExERkxBR1MKKysgIHNhdmVf bGliZGlyPSRsaWJkaXIKKysgIGV2YWwgImxpYmRpcj0vZm9vOyB3bD1cIiRfTFRfVEFHVkFSKGx0 X3Byb2dfY29tcGlsZXJfd2wsICQxKVwiOyBcCisrICAgICAgIExERkxBR1M9XCJcJExERkxBR1Mg JF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpXCIiCisrICBBQ19MSU5L X0lGRUxTRShbQUNfTEFOR19QUk9HUkFNKFtdLFtdKV0sCisrICAgIFtBU19JRihbICgkT0JKRFVN UCAtcCBjb25mdGVzdCRhY19leGVleHQpIDI+L2Rldi9udWxsIHwgZ3JlcCAiUlVOUEFUSC4qJGxp YmRpciIgPi9kZXYvbnVsbF0sCisrICAgICAgIFtzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9 eWVzXSldKQorKyAgTERGTEFHUz0kc2F2ZV9MREZMQUdTCisrICBsaWJkaXI9JHNhdmVfbGliZGly CisrCisrICAjIFRoaXMgaW1wbGllcyBubyBmYXN0X2luc3RhbGwsIHdoaWNoIGlzIHVuYWNjZXB0 YWJsZS4KKysgICMgU29tZSByZXdvcmsgd2lsbCBiZSBuZWVkZWQgdG8gYWxsb3cgZm9yIGZhc3Rf aW5zdGFsbAorKyAgIyBiZWZvcmUgdGhpcyBjYW4gYmUgZW5hYmxlZC4KKysgIGhhcmRjb2RlX2lu dG9fbGlicz15ZXMKKysKKysgICMgQWRkIEFCSS1zcGVjaWZpYyBkaXJlY3RvcmllcyB0byB0aGUg c3lzdGVtIGxpYnJhcnkgcGF0aC4KKysgIHN5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjPSIvbGli NjQgL3Vzci9saWI2NCAvbGliIC91c3IvbGliIgorKworKyAgIyBBcHBlbmQgbGQuc28uY29uZiBj b250ZW50cyB0byB0aGUgc2VhcmNoIHBhdGgKKysgIGlmIHRlc3QgLWYgL2V0Yy9sZC5zby5jb25m OyB0aGVuCisrICAgIGx0X2xkX2V4dHJhPWBhd2sgJy9eaW5jbHVkZSAvIHsgc3lzdGVtKHNwcmlu dGYoImNkIC9ldGM7IGNhdCAlcyAyPi9kZXYvbnVsbCIsIFxbJF0yKSk7IHNraXAgPSAxOyB9IHsg aWYgKCFza2lwKSBwcmludCBcWyRdMDsgc2tpcCA9IDA7IH0nIDwgL2V0Yy9sZC5zby5jb25mIHwg JFNFRCAtZSAncy8jLiovLzsvXlsJIF0qaHdjYXBbCSBdL2Q7cy9bOiwJXS8gL2c7cy89W149XSok Ly87cy89W149IF0qIC8gL2c7L14kL2QnIHwgdHIgJ1xuJyAnICdgCisrICAgIHN5c19saWJfZGxz ZWFyY2hfcGF0aF9zcGVjPSIkc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWMgJGx0X2xkX2V4dHJh IgorKyAgZmkKKysKKysgICMgV2UgdXNlZCB0byB0ZXN0IGZvciAvbGliL2xkLnNvLjEgYW5kIGRp c2FibGUgc2hhcmVkIGxpYnJhcmllcyBvbgorKyAgIyBwb3dlcnBjLCBiZWNhdXNlIE1rTGludXgg b25seSBzdXBwb3J0ZWQgc2hhcmVkIGxpYnJhcmllcyB3aXRoIHRoZQorKyAgIyBHTlUgZHluYW1p YyBsaW5rZXIuICBTaW5jZSB0aGlzIHdhcyBicm9rZW4gd2l0aCBjcm9zcyBjb21waWxlcnMsCisr ICAjIG1vc3QgcG93ZXJwYy1saW51eCBib3hlcyBzdXBwb3J0IGR5bmFtaWMgbGlua2luZyB0aGVz ZSBkYXlzIGFuZAorKyAgIyBwZW9wbGUgY2FuIGFsd2F5cyAtLWRpc2FibGUtc2hhcmVkLCB0aGUg dGVzdCB3YXMgcmVtb3ZlZCwgYW5kIHdlCisrICAjIGFzc3VtZSB0aGUgR05VL0xpbnV4IGR5bmFt aWMgbGlua2VyIGlzIGluIHVzZS4KKysgIGR5bmFtaWNfbGlua2VyPSdHTlUvTGludXggbGQuc28n CisrICA7OworKworK25ldGJzZCopCisrICB2ZXJzaW9uX3R5cGU9c3Vub3MKKysgIG5lZWRfbGli X3ByZWZpeD1ubworKyAgbmVlZF92ZXJzaW9uPW5vCisrICBpZiBlY2hvIF9fRUxGX18gfCAkQ0Mg LUUgLSB8ICRHUkVQIF9fRUxGX18gPi9kZXYvbnVsbDsgdGhlbgorKyAgICBsaWJyYXJ5X25hbWVz X3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJu YW1lfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4JworKyAgICBmaW5pc2hfY21kcz0nUEFUSD0iXCRQ QVRIOi9zYmluIiBsZGNvbmZpZyAtbSAkbGliZGlyJworKyAgICBkeW5hbWljX2xpbmtlcj0nTmV0 QlNEIChhLm91dCkgbGQuc28nCisrICBlbHNlCisrICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHts aWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxl YXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJHtsaWJuYW1lfSR7c2hhcmVkX2V4dH0nCisrICAgIHNv bmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCisrICAg IGR5bmFtaWNfbGlua2VyPSdOZXRCU0QgbGQuZWxmX3NvJworKyAgZmkKKysgIHNobGlicGF0aF92 YXI9TERfTElCUkFSWV9QQVRICisrICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9eWVzCisr ICBoYXJkY29kZV9pbnRvX2xpYnM9eWVzCisrICA7OworKworK25ld3NvczYpCisrICB2ZXJzaW9u X3R5cGU9bGludXgKKysgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0k e3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0k bWFqb3IgJGxpYm5hbWUke3NoYXJlZF9leHR9JworKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZ X1BBVEgKKysgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD15ZXMKKysgIDs7CisrCisrKm50 byogfCAqcW54KikKKysgIHZlcnNpb25fdHlwZT1xbngKKysgIG5lZWRfbGliX3ByZWZpeD1ubwor KyAgbmVlZF92ZXJzaW9uPW5vCisrICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3Jl bGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJl ZF9leHR9JG1ham9yICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKKysgIHNvbmFtZV9zcGVjPScke2xp Ym5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCisrICBzaGxpYnBhdGhfdmFyPUxE X0xJQlJBUllfUEFUSAorKyAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPW5vCisrICBoYXJk Y29kZV9pbnRvX2xpYnM9eWVzCisrICBkeW5hbWljX2xpbmtlcj0nbGRxbnguc28nCisrICA7Owor KworK29wZW5ic2QqKQorKyAgdmVyc2lvbl90eXBlPXN1bm9zCisrICBzeXNfbGliX2Rsc2VhcmNo X3BhdGhfc3BlYz0iL3Vzci9saWIiCisrICBuZWVkX2xpYl9wcmVmaXg9bm8KKysgICMgU29tZSBv bGRlciB2ZXJzaW9ucyBvZiBPcGVuQlNEICgzLjMgYXQgbGVhc3QpICpkbyogbmVlZCB2ZXJzaW9u ZWQgbGlicy4KKysgIGNhc2UgJGhvc3Rfb3MgaW4KKysgICAgb3BlbmJzZDMuMyB8IG9wZW5ic2Qz LjMuKikJbmVlZF92ZXJzaW9uPXllcyA7OworKyAgICAqKQkJCQluZWVkX3ZlcnNpb249bm8gIDs7 CisrICBlc2FjCisrICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtz aGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4Jwor KyAgZmluaXNoX2NtZHM9J1BBVEg9IlwkUEFUSDovc2JpbiIgbGRjb25maWcgLW0gJGxpYmRpcicK KysgIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRICisrICBpZiB0ZXN0IC16ICJgZWNobyBf X0VMRl9fIHwgJENDIC1FIC0gfCAkR1JFUCBfX0VMRl9fYCIgfHwgdGVzdCAiJGhvc3Rfb3MtJGhv c3RfY3B1IiA9ICJvcGVuYnNkMi44LXBvd2VycGMiOyB0aGVuCisrICAgIGNhc2UgJGhvc3Rfb3Mg aW4KKysgICAgICBvcGVuYnNkMi5bWzg5XV0gfCBvcGVuYnNkMi5bWzg5XV0uKikKKysJc2hsaWJw YXRoX292ZXJyaWRlc19ydW5wYXRoPW5vCisrCTs7CisrICAgICAgKikKKysJc2hsaWJwYXRoX292 ZXJyaWRlc19ydW5wYXRoPXllcworKwk7OworKyAgICAgIGVzYWMKKysgIGVsc2UKKysgICAgc2hs aWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPXllcworKyAgZmkKKysgIDs7CisrCisrb3MyKikKKysg IGxpYm5hbWVfc3BlYz0nJG5hbWUnCisrICBzaHJleHRfY21kcz0iLmRsbCIKKysgIG5lZWRfbGli X3ByZWZpeD1ubworKyAgbGlicmFyeV9uYW1lc19zcGVjPSckbGlibmFtZSR7c2hhcmVkX2V4dH0g JGxpYm5hbWUuYScKKysgIGR5bmFtaWNfbGlua2VyPSdPUy8yIGxkLmV4ZScKKysgIHNobGlicGF0 aF92YXI9TElCUEFUSAorKyAgOzsKKysKKytvc2YzKiB8IG9zZjQqIHwgb3NmNSopCisrICB2ZXJz aW9uX3R5cGU9b3NmCisrICBuZWVkX2xpYl9wcmVmaXg9bm8KKysgIG5lZWRfdmVyc2lvbj1ubwor KyAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicK KysgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9 JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJGxpYm5h bWUke3NoYXJlZF9leHR9JworKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKKysgIHN5 c19saWJfc2VhcmNoX3BhdGhfc3BlYz0iL3Vzci9zaGxpYiAvdXNyL2Njcy9saWIgL3Vzci9saWIv Y21wbHJzL2NjIC91c3IvbGliIC91c3IvbG9jYWwvbGliIC92YXIvc2hsaWIiCisrICBzeXNfbGli X2Rsc2VhcmNoX3BhdGhfc3BlYz0iJHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYyIKKysgIDs7Cisr CisrcmRvcyopCisrICBkeW5hbWljX2xpbmtlcj1ubworKyAgOzsKKysKKytzb2xhcmlzKikKKysg IHZlcnNpb25fdHlwZT1saW51eAorKyAgbmVlZF9saWJfcHJlZml4PW5vCisrICBuZWVkX3ZlcnNp b249bm8KKysgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJl ZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3Ig JGxpYm5hbWUke3NoYXJlZF9leHR9JworKyAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVh c2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKKysgIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRI CisrICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9eWVzCisrICBoYXJkY29kZV9pbnRvX2xp YnM9eWVzCisrICAjIGxkZCBjb21wbGFpbnMgdW5sZXNzIGxpYnJhcmllcyBhcmUgZXhlY3V0YWJs ZQorKyAgcG9zdGluc3RhbGxfY21kcz0nY2htb2QgK3ggJGxpYicKKysgIDs7CisrCisrc3Vub3M0 KikKKysgIHZlcnNpb25fdHlwZT1zdW5vcworKyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5h bWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3NoYXJlZF9l eHR9JHZlcnN1ZmZpeCcKKysgIGZpbmlzaF9jbWRzPSdQQVRIPSJcJFBBVEg6L3Vzci9ldGMiIGxk Y29uZmlnICRsaWJkaXInCisrICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAorKyAgc2hs aWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPXllcworKyAgaWYgdGVzdCAiJHdpdGhfZ251X2xkIiA9 IHllczsgdGhlbgorKyAgICBuZWVkX2xpYl9wcmVmaXg9bm8KKysgIGZpCisrICBuZWVkX3ZlcnNp b249eWVzCisrICA7OworKworK3N5c3Y0IHwgc3lzdjQuMyopCisrICB2ZXJzaW9uX3R5cGU9bGlu dXgKKysgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9l eHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJGxp Ym5hbWUke3NoYXJlZF9leHR9JworKyAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9 JHtzaGFyZWRfZXh0fSRtYWpvcicKKysgIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRICisr ICBjYXNlICRob3N0X3ZlbmRvciBpbgorKyAgICBzbmkpCisrICAgICAgc2hsaWJwYXRoX292ZXJy aWRlc19ydW5wYXRoPW5vCisrICAgICAgbmVlZF9saWJfcHJlZml4PW5vCisrICAgICAgcnVucGF0 aF92YXI9TERfUlVOX1BBVEgKKysgICAgICA7OworKyAgICBzaWVtZW5zKQorKyAgICAgIG5lZWRf bGliX3ByZWZpeD1ubworKyAgICAgIDs7CisrICAgIG1vdG9yb2xhKQorKyAgICAgIG5lZWRfbGli X3ByZWZpeD1ubworKyAgICAgIG5lZWRfdmVyc2lvbj1ubworKyAgICAgIHNobGlicGF0aF9vdmVy cmlkZXNfcnVucGF0aD1ubworKyAgICAgIHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYz0nL2xpYiAv dXNyL2xpYiAvdXNyL2Njcy9saWInCisrICAgICAgOzsKKysgIGVzYWMKKysgIDs7CisrCisrc3lz djQqTVAqKQorKyAgaWYgdGVzdCAtZCAvdXNyL25lYyA7dGhlbgorKyAgICB2ZXJzaW9uX3R5cGU9 bGludXgKKysgICAgbGlicmFyeV9uYW1lc19zcGVjPSckbGlibmFtZSR7c2hhcmVkX2V4dH0uJHZl cnN1ZmZpeCAkbGlibmFtZSR7c2hhcmVkX2V4dH0uJG1ham9yICRsaWJuYW1lJHtzaGFyZWRfZXh0 fScKKysgICAgc29uYW1lX3NwZWM9JyRsaWJuYW1lJHtzaGFyZWRfZXh0fS4kbWFqb3InCisrICAg IHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRICisrICBmaQorKyAgOzsKKysKKytzeXN2NSog fCBzY28zLjJ2NSogfCBzY281djYqIHwgdW5peHdhcmUqIHwgT3BlblVOSVgqIHwgc3lzdjQqdXcy KikKKysgIHZlcnNpb25fdHlwZT1mcmVlYnNkLWVsZgorKyAgbmVlZF9saWJfcHJlZml4PW5vCisr ICBuZWVkX3ZlcnNpb249bm8KKysgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVs ZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVk X2V4dH0gJGxpYm5hbWUke3NoYXJlZF9leHR9JworKyAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0k e3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKKysgIHNobGlicGF0aF92YXI9TERfTElCUkFS WV9QQVRICisrICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9eWVzCisrICBoYXJkY29kZV9p bnRvX2xpYnM9eWVzCisrICBpZiB0ZXN0ICIkd2l0aF9nbnVfbGQiID0geWVzOyB0aGVuCisrICAg IHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYz0nL3Vzci9sb2NhbC9saWIgL3Vzci9nbnUvbGliIC91 c3IvY2NzL2xpYiAvdXNyL2xpYiAvbGliJworKyAgZWxzZQorKyAgICBzeXNfbGliX3NlYXJjaF9w YXRoX3NwZWM9Jy91c3IvY2NzL2xpYiAvdXNyL2xpYicKKysgICAgY2FzZSAkaG9zdF9vcyBpbgor KyAgICAgIHNjbzMuMnY1KikKKysgICAgICAgIHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYz0iJHN5 c19saWJfc2VhcmNoX3BhdGhfc3BlYyAvbGliIgorKwk7OworKyAgICBlc2FjCisrICBmaQorKyAg c3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWM9Jy91c3IvbGliJworKyAgOzsKKysKKyt0cGYqKQor KyAgIyBUUEYgaXMgYSBjcm9zcy10YXJnZXQgb25seS4gIFByZWZlcnJlZCBjcm9zcy1ob3N0ID0g R05VL0xpbnV4LgorKyAgdmVyc2lvbl90eXBlPWxpbnV4CisrICBuZWVkX2xpYl9wcmVmaXg9bm8K KysgIG5lZWRfdmVyc2lvbj1ubworKyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHty ZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFy ZWRfZXh0fSRtYWpvciAkbGlibmFtZSR7c2hhcmVkX2V4dH0nCisrICBzaGxpYnBhdGhfdmFyPUxE X0xJQlJBUllfUEFUSAorKyAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPW5vCisrICBoYXJk Y29kZV9pbnRvX2xpYnM9eWVzCisrICA7OworKworK3V0czQqKQorKyAgdmVyc2lvbl90eXBlPWxp bnV4CisrICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRf ZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICRs aWJuYW1lJHtzaGFyZWRfZXh0fScKKysgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNl fSR7c2hhcmVkX2V4dH0kbWFqb3InCisrICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAor KyAgOzsKKysKKysqKQorKyAgZHluYW1pY19saW5rZXI9bm8KKysgIDs7CisrZXNhYworK0FDX01T R19SRVNVTFQoWyRkeW5hbWljX2xpbmtlcl0pCisrdGVzdCAiJGR5bmFtaWNfbGlua2VyIiA9IG5v ICYmIGNhbl9idWlsZF9zaGFyZWQ9bm8KKysKKyt2YXJpYWJsZXNfc2F2ZWRfZm9yX3JlbGluaz0i UEFUSCAkc2hsaWJwYXRoX3ZhciAkcnVucGF0aF92YXIiCisraWYgdGVzdCAiJEdDQyIgPSB5ZXM7 IHRoZW4KKysgIHZhcmlhYmxlc19zYXZlZF9mb3JfcmVsaW5rPSIkdmFyaWFibGVzX3NhdmVkX2Zv cl9yZWxpbmsgR0NDX0VYRUNfUFJFRklYIENPTVBJTEVSX1BBVEggTElCUkFSWV9QQVRIIgorK2Zp CisrCisraWYgdGVzdCAiJHtsdF9jdl9zeXNfbGliX3NlYXJjaF9wYXRoX3NwZWMrc2V0fSIgPSBz ZXQ7IHRoZW4KKysgIHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYz0iJGx0X2N2X3N5c19saWJfc2Vh cmNoX3BhdGhfc3BlYyIKKytmaQorK2lmIHRlc3QgIiR7bHRfY3Zfc3lzX2xpYl9kbHNlYXJjaF9w YXRoX3NwZWMrc2V0fSIgPSBzZXQ7IHRoZW4KKysgIHN5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVj PSIkbHRfY3Zfc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWMiCisrZmkKKysKKytfTFRfREVDTChb XSwgW3ZhcmlhYmxlc19zYXZlZF9mb3JfcmVsaW5rXSwgWzFdLAorKyAgICBbVmFyaWFibGVzIHdo b3NlIHZhbHVlcyBzaG91bGQgYmUgc2F2ZWQgaW4gbGlidG9vbCB3cmFwcGVyIHNjcmlwdHMgYW5k CisrICAgIHJlc3RvcmVkIGF0IGxpbmsgdGltZV0pCisrX0xUX0RFQ0woW10sIFtuZWVkX2xpYl9w cmVmaXhdLCBbMF0sCisrICAgIFtEbyB3ZSBuZWVkIHRoZSAibGliIiBwcmVmaXggZm9yIG1vZHVs ZXM/XSkKKytfTFRfREVDTChbXSwgW25lZWRfdmVyc2lvbl0sIFswXSwgW0RvIHdlIG5lZWQgYSB2 ZXJzaW9uIGZvciBsaWJyYXJpZXM/XSkKKytfTFRfREVDTChbXSwgW3ZlcnNpb25fdHlwZV0sIFsw XSwgW0xpYnJhcnkgdmVyc2lvbmluZyB0eXBlXSkKKytfTFRfREVDTChbXSwgW3J1bnBhdGhfdmFy XSwgWzBdLCAgW1NoYXJlZCBsaWJyYXJ5IHJ1bnRpbWUgcGF0aCB2YXJpYWJsZV0pCisrX0xUX0RF Q0woW10sIFtzaGxpYnBhdGhfdmFyXSwgWzBdLFtTaGFyZWQgbGlicmFyeSBwYXRoIHZhcmlhYmxl XSkKKytfTFRfREVDTChbXSwgW3NobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aF0sIFswXSwKKysg ICAgW0lzIHNobGlicGF0aCBzZWFyY2hlZCBiZWZvcmUgdGhlIGhhcmQtY29kZWQgbGlicmFyeSBz ZWFyY2ggcGF0aD9dKQorK19MVF9ERUNMKFtdLCBbbGlibmFtZV9zcGVjXSwgWzFdLCBbRm9ybWF0 IG9mIGxpYnJhcnkgbmFtZSBwcmVmaXhdKQorK19MVF9ERUNMKFtdLCBbbGlicmFyeV9uYW1lc19z cGVjXSwgWzFdLAorKyAgICBbW0xpc3Qgb2YgYXJjaGl2ZSBuYW1lcy4gIEZpcnN0IG5hbWUgaXMg dGhlIHJlYWwgb25lLCB0aGUgcmVzdCBhcmUgbGlua3MuCisrICAgIFRoZSBsYXN0IG5hbWUgaXMg dGhlIG9uZSB0aGF0IHRoZSBsaW5rZXIgZmluZHMgd2l0aCAtbE5BTUVdXSkKKytfTFRfREVDTChb XSwgW3NvbmFtZV9zcGVjXSwgWzFdLAorKyAgICBbW1RoZSBjb2RlZCBuYW1lIG9mIHRoZSBsaWJy YXJ5LCBpZiBkaWZmZXJlbnQgZnJvbSB0aGUgcmVhbCBuYW1lXV0pCisrX0xUX0RFQ0woW10sIFtw b3N0aW5zdGFsbF9jbWRzXSwgWzJdLAorKyAgICBbQ29tbWFuZCB0byB1c2UgYWZ0ZXIgaW5zdGFs bGF0aW9uIG9mIGEgc2hhcmVkIGFyY2hpdmVdKQorK19MVF9ERUNMKFtdLCBbcG9zdHVuaW5zdGFs bF9jbWRzXSwgWzJdLAorKyAgICBbQ29tbWFuZCB0byB1c2UgYWZ0ZXIgdW5pbnN0YWxsYXRpb24g b2YgYSBzaGFyZWQgYXJjaGl2ZV0pCisrX0xUX0RFQ0woW10sIFtmaW5pc2hfY21kc10sIFsyXSwK KysgICAgW0NvbW1hbmRzIHVzZWQgdG8gZmluaXNoIGEgbGlidG9vbCBsaWJyYXJ5IGluc3RhbGxh dGlvbiBpbiBhIGRpcmVjdG9yeV0pCisrX0xUX0RFQ0woW10sIFtmaW5pc2hfZXZhbF0sIFsxXSwK KysgICAgW1tBcyAiZmluaXNoX2NtZHMiLCBleGNlcHQgYSBzaW5nbGUgc2NyaXB0IGZyYWdtZW50 IHRvIGJlIGV2YWxlZCBidXQKKysgICAgbm90IHNob3duXV0pCisrX0xUX0RFQ0woW10sIFtoYXJk Y29kZV9pbnRvX2xpYnNdLCBbMF0sCisrICAgIFtXaGV0aGVyIHdlIHNob3VsZCBoYXJkY29kZSBs aWJyYXJ5IHBhdGhzIGludG8gbGlicmFyaWVzXSkKKytfTFRfREVDTChbXSwgW3N5c19saWJfc2Vh cmNoX3BhdGhfc3BlY10sIFsyXSwKKysgICAgW0NvbXBpbGUtdGltZSBzeXN0ZW0gc2VhcmNoIHBh dGggZm9yIGxpYnJhcmllc10pCisrX0xUX0RFQ0woW10sIFtzeXNfbGliX2Rsc2VhcmNoX3BhdGhf c3BlY10sIFsyXSwKKysgICAgW1J1bi10aW1lIHN5c3RlbSBzZWFyY2ggcGF0aCBmb3IgbGlicmFy aWVzXSkKKytdKSMgX0xUX1NZU19EWU5BTUlDX0xJTktFUgorKworKworKyMgX0xUX1BBVEhfVE9P TF9QUkVGSVgoVE9PTCkKKysjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrIyBmaW5kIGEg ZmlsZSBwcm9ncmFtIHdoaWNoIGNhbiByZWNvZ25pemUgc2hhcmVkIGxpYnJhcnkKKytBQ19ERUZV TihbX0xUX1BBVEhfVE9PTF9QUkVGSVhdLAorK1ttNF9yZXF1aXJlKFtfTFRfREVDTF9FR1JFUF0p ZG5sCisrQUNfTVNHX0NIRUNLSU5HKFtmb3IgJDFdKQorK0FDX0NBQ0hFX1ZBTChsdF9jdl9wYXRo X01BR0lDX0NNRCwKKytbY2FzZSAkTUFHSUNfQ01EIGluCisrW1tcXC8qXSB8ICA/OltcXC9dKl0p CisrICBsdF9jdl9wYXRoX01BR0lDX0NNRD0iJE1BR0lDX0NNRCIgIyBMZXQgdGhlIHVzZXIgb3Zl cnJpZGUgdGhlIHRlc3Qgd2l0aCBhIHBhdGguCisrICA7OworKyopCisrICBsdF9zYXZlX01BR0lD X0NNRD0iJE1BR0lDX0NNRCIKKysgIGx0X3NhdmVfaWZzPSIkSUZTIjsgSUZTPSRQQVRIX1NFUEFS QVRPUgorK2RubCAkYWNfZHVtbXkgZm9yY2VzIHNwbGl0dGluZyBvbiBjb25zdGFudCB1c2VyLXN1 cHBsaWVkIHBhdGhzLgorK2RubCBQT1NJWC4yIHdvcmQgc3BsaXR0aW5nIGlzIGRvbmUgb25seSBv biB0aGUgb3V0cHV0IG9mIHdvcmQgZXhwYW5zaW9ucywKKytkbmwgbm90IGV2ZXJ5IHdvcmQuICBU aGlzIGNsb3NlcyBhIGxvbmdzdGFuZGluZyBzaCBzZWN1cml0eSBob2xlLgorKyAgYWNfZHVtbXk9 Im00X2lmKFskMl0sICwgJFBBVEgsIFskMl0pIgorKyAgZm9yIGFjX2RpciBpbiAkYWNfZHVtbXk7 IGRvCisrICAgIElGUz0iJGx0X3NhdmVfaWZzIgorKyAgICB0ZXN0IC16ICIkYWNfZGlyIiAmJiBh Y19kaXI9LgorKyAgICBpZiB0ZXN0IC1mICRhY19kaXIvJDE7IHRoZW4KKysgICAgICBsdF9jdl9w YXRoX01BR0lDX0NNRD0iJGFjX2Rpci8kMSIKKysgICAgICBpZiB0ZXN0IC1uICIkZmlsZV9tYWdp Y190ZXN0X2ZpbGUiOyB0aGVuCisrCWNhc2UgJGRlcGxpYnNfY2hlY2tfbWV0aG9kIGluCisrCSJm aWxlX21hZ2ljICIqKQorKwkgIGZpbGVfbWFnaWNfcmVnZXg9YGV4cHIgIiRkZXBsaWJzX2NoZWNr X21ldGhvZCIgOiAiZmlsZV9tYWdpYyBcKC4qXCkiYAorKwkgIE1BR0lDX0NNRD0iJGx0X2N2X3Bh dGhfTUFHSUNfQ01EIgorKwkgIGlmIGV2YWwgJGZpbGVfbWFnaWNfY21kIFwkZmlsZV9tYWdpY190 ZXN0X2ZpbGUgMj4gL2Rldi9udWxsIHwKKysJICAgICRFR1JFUCAiJGZpbGVfbWFnaWNfcmVnZXgi ID4gL2Rldi9udWxsOyB0aGVuCisrCSAgICA6CisrCSAgZWxzZQorKwkgICAgY2F0IDw8X0xUX0VP RiAxPiYyCisrCisrKioqIFdhcm5pbmc6IHRoZSBjb21tYW5kIGxpYnRvb2wgdXNlcyB0byBkZXRl Y3Qgc2hhcmVkIGxpYnJhcmllcywKKysqKiogJGZpbGVfbWFnaWNfY21kLCBwcm9kdWNlcyBvdXRw dXQgdGhhdCBsaWJ0b29sIGNhbm5vdCByZWNvZ25pemUuCisrKioqIFRoZSByZXN1bHQgaXMgdGhh dCBsaWJ0b29sIG1heSBmYWlsIHRvIHJlY29nbml6ZSBzaGFyZWQgbGlicmFyaWVzCisrKioqIGFz IHN1Y2guICBUaGlzIHdpbGwgYWZmZWN0IHRoZSBjcmVhdGlvbiBvZiBsaWJ0b29sIGxpYnJhcmll cyB0aGF0CisrKioqIGRlcGVuZCBvbiBzaGFyZWQgbGlicmFyaWVzLCBidXQgcHJvZ3JhbXMgbGlu a2VkIHdpdGggc3VjaCBsaWJ0b29sCisrKioqIGxpYnJhcmllcyB3aWxsIHdvcmsgcmVnYXJkbGVz cyBvZiB0aGlzIHByb2JsZW0uICBOZXZlcnRoZWxlc3MsIHlvdQorKyoqKiBtYXkgd2FudCB0byBy ZXBvcnQgdGhlIHByb2JsZW0gdG8geW91ciBzeXN0ZW0gbWFuYWdlciBhbmQvb3IgdG8KKysqKiog YnVnLWxpYnRvb2xAZ251Lm9yZworKworK19MVF9FT0YKKysJICBmaSA7OworKwllc2FjCisrICAg ICAgZmkKKysgICAgICBicmVhaworKyAgICBmaQorKyAgZG9uZQorKyAgSUZTPSIkbHRfc2F2ZV9p ZnMiCisrICBNQUdJQ19DTUQ9IiRsdF9zYXZlX01BR0lDX0NNRCIKKysgIDs7CisrZXNhY10pCisr TUFHSUNfQ01EPSIkbHRfY3ZfcGF0aF9NQUdJQ19DTUQiCisraWYgdGVzdCAtbiAiJE1BR0lDX0NN RCI7IHRoZW4KKysgIEFDX01TR19SRVNVTFQoJE1BR0lDX0NNRCkKKytlbHNlCisrICBBQ19NU0df UkVTVUxUKG5vKQorK2ZpCisrX0xUX0RFQ0woW10sIFtNQUdJQ19DTURdLCBbMF0sCisrCSBbVXNl ZCB0byBleGFtaW5lIGxpYnJhcmllcyB3aGVuIGZpbGVfbWFnaWNfY21kIGJlZ2lucyB3aXRoICJm aWxlIl0pZG5sCisrXSkjIF9MVF9QQVRIX1RPT0xfUFJFRklYCisrCisrIyBPbGQgbmFtZToKKytB VV9BTElBUyhbQUNfUEFUSF9UT09MX1BSRUZJWF0sIFtfTFRfUEFUSF9UT09MX1BSRUZJWF0pCisr ZG5sIGFjbG9jYWwtMS40IGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5OgorK2RubCBBQ19ERUZVTihb QUNfUEFUSF9UT09MX1BSRUZJWF0sIFtdKQorKworKworKyMgX0xUX1BBVEhfTUFHSUMKKysjIC0t LS0tLS0tLS0tLS0tCisrIyBmaW5kIGEgZmlsZSBwcm9ncmFtIHdoaWNoIGNhbiByZWNvZ25pemUg YSBzaGFyZWQgbGlicmFyeQorK200X2RlZnVuKFtfTFRfUEFUSF9NQUdJQ10sCisrW19MVF9QQVRI X1RPT0xfUFJFRklYKCR7YWNfdG9vbF9wcmVmaXh9ZmlsZSwgL3Vzci9iaW4kUEFUSF9TRVBBUkFU T1IkUEFUSCkKKytpZiB0ZXN0IC16ICIkbHRfY3ZfcGF0aF9NQUdJQ19DTUQiOyB0aGVuCisrICBp ZiB0ZXN0IC1uICIkYWNfdG9vbF9wcmVmaXgiOyB0aGVuCisrICAgIF9MVF9QQVRIX1RPT0xfUFJF RklYKGZpbGUsIC91c3IvYmluJFBBVEhfU0VQQVJBVE9SJFBBVEgpCisrICBlbHNlCisrICAgIE1B R0lDX0NNRD06CisrICBmaQorK2ZpCisrXSkjIF9MVF9QQVRIX01BR0lDCisrCisrCisrIyBMVF9Q QVRIX0xECisrIyAtLS0tLS0tLS0tCisrIyBmaW5kIHRoZSBwYXRobmFtZSB0byB0aGUgR05VIG9y IG5vbi1HTlUgbGlua2VyCisrQUNfREVGVU4oW0xUX1BBVEhfTERdLAorK1tBQ19SRVFVSVJFKFtB Q19QUk9HX0NDXSlkbmwKKytBQ19SRVFVSVJFKFtBQ19DQU5PTklDQUxfSE9TVF0pZG5sCisrQUNf UkVRVUlSRShbQUNfQ0FOT05JQ0FMX0JVSUxEXSlkbmwKKyttNF9yZXF1aXJlKFtfTFRfREVDTF9T RURdKWRubAorK200X3JlcXVpcmUoW19MVF9ERUNMX0VHUkVQXSlkbmwKKysKKytBQ19BUkdfV0lU SChbZ251LWxkXSwKKysgICAgW0FTX0hFTFBfU1RSSU5HKFstLXdpdGgtZ251LWxkXSwKKysJW2Fz c3VtZSB0aGUgQyBjb21waWxlciB1c2VzIEdOVSBsZCBAPDpAZGVmYXVsdD1ub0A6PkBdKV0sCisr ICAgIFt0ZXN0ICIkd2l0aHZhbCIgPSBubyB8fCB3aXRoX2dudV9sZD15ZXNdLAorKyAgICBbd2l0 aF9nbnVfbGQ9bm9dKWRubAorKworK2FjX3Byb2c9bGQKKytpZiB0ZXN0ICIkR0NDIiA9IHllczsg dGhlbgorKyAgIyBDaGVjayBpZiBnY2MgLXByaW50LXByb2ctbmFtZT1sZCBnaXZlcyBhIHBhdGgu CisrICBBQ19NU0dfQ0hFQ0tJTkcoW2ZvciBsZCB1c2VkIGJ5ICRDQ10pCisrICBjYXNlICRob3N0 IGluCisrICAqLSotbWluZ3cqKQorKyAgICAjIGdjYyBsZWF2ZXMgYSB0cmFpbGluZyBjYXJyaWFn ZSByZXR1cm4gd2hpY2ggdXBzZXRzIG1pbmd3CisrICAgIGFjX3Byb2c9YCgkQ0MgLXByaW50LXBy b2ctbmFtZT1sZCkgMj4mNSB8IHRyIC1kICdcMDE1J2AgOzsKKysgICopCisrICAgIGFjX3Byb2c9 YCgkQ0MgLXByaW50LXByb2ctbmFtZT1sZCkgMj4mNWAgOzsKKysgIGVzYWMKKysgIGNhc2UgJGFj X3Byb2cgaW4KKysgICAgIyBBY2NlcHQgYWJzb2x1dGUgcGF0aHMuCisrICAgIFtbXFwvXV0qIHwg PzpbW1xcL11dKikKKysgICAgICByZV9kaXJlbHQ9Jy9bW14vXV1bW14vXV0qL1wuXC4vJworKyAg ICAgICMgQ2Fub25pY2FsaXplIHRoZSBwYXRobmFtZSBvZiBsZAorKyAgICAgIGFjX3Byb2c9YCRF Q0hPICIkYWNfcHJvZyJ8ICRTRUQgJ3MlXFxcXCUvJWcnYAorKyAgICAgIHdoaWxlICRFQ0hPICIk YWNfcHJvZyIgfCAkR1JFUCAiJHJlX2RpcmVsdCIgPiAvZGV2L251bGwgMj4mMTsgZG8KKysJYWNf cHJvZz1gJEVDSE8gJGFjX3Byb2d8ICRTRUQgInMlJHJlX2RpcmVsdCUvJSJgCisrICAgICAgZG9u ZQorKyAgICAgIHRlc3QgLXogIiRMRCIgJiYgTEQ9IiRhY19wcm9nIgorKyAgICAgIDs7CisrICAi IikKKysgICAgIyBJZiBpdCBmYWlscywgdGhlbiBwcmV0ZW5kIHdlIGFyZW4ndCB1c2luZyBHQ0Mu CisrICAgIGFjX3Byb2c9bGQKKysgICAgOzsKKysgICopCisrICAgICMgSWYgaXQgaXMgcmVsYXRp dmUsIHRoZW4gc2VhcmNoIGZvciB0aGUgZmlyc3QgbGQgaW4gUEFUSC4KKysgICAgd2l0aF9nbnVf bGQ9dW5rbm93bgorKyAgICA7OworKyAgZXNhYworK2VsaWYgdGVzdCAiJHdpdGhfZ251X2xkIiA9 IHllczsgdGhlbgorKyAgQUNfTVNHX0NIRUNLSU5HKFtmb3IgR05VIGxkXSkKKytlbHNlCisrICBB Q19NU0dfQ0hFQ0tJTkcoW2ZvciBub24tR05VIGxkXSkKKytmaQorK0FDX0NBQ0hFX1ZBTChsdF9j dl9wYXRoX0xELAorK1tpZiB0ZXN0IC16ICIkTEQiOyB0aGVuCisrICBsdF9zYXZlX2lmcz0iJElG UyI7IElGUz0kUEFUSF9TRVBBUkFUT1IKKysgIGZvciBhY19kaXIgaW4gJFBBVEg7IGRvCisrICAg IElGUz0iJGx0X3NhdmVfaWZzIgorKyAgICB0ZXN0IC16ICIkYWNfZGlyIiAmJiBhY19kaXI9Lgor KyAgICBpZiB0ZXN0IC1mICIkYWNfZGlyLyRhY19wcm9nIiB8fCB0ZXN0IC1mICIkYWNfZGlyLyRh Y19wcm9nJGFjX2V4ZWV4dCI7IHRoZW4KKysgICAgICBsdF9jdl9wYXRoX0xEPSIkYWNfZGlyLyRh Y19wcm9nIgorKyAgICAgICMgQ2hlY2sgdG8gc2VlIGlmIHRoZSBwcm9ncmFtIGlzIEdOVSBsZC4g IEknZCByYXRoZXIgdXNlIC0tdmVyc2lvbiwKKysgICAgICAjIGJ1dCBhcHBhcmVudGx5IHNvbWUg dmFyaWFudHMgb2YgR05VIGxkIG9ubHkgYWNjZXB0IC12LgorKyAgICAgICMgQnJlYWsgb25seSBp ZiBpdCB3YXMgdGhlIEdOVS9ub24tR05VIGxkIHRoYXQgd2UgcHJlZmVyLgorKyAgICAgIGNhc2Ug YCIkbHRfY3ZfcGF0aF9MRCIgLXYgMj4mMSA8L2Rldi9udWxsYCBpbgorKyAgICAgICpHTlUqIHwg Kid3aXRoIEJGRCcqKQorKwl0ZXN0ICIkd2l0aF9nbnVfbGQiICE9IG5vICYmIGJyZWFrCisrCTs7 CisrICAgICAgKikKKysJdGVzdCAiJHdpdGhfZ251X2xkIiAhPSB5ZXMgJiYgYnJlYWsKKysJOzsK KysgICAgICBlc2FjCisrICAgIGZpCisrICBkb25lCisrICBJRlM9IiRsdF9zYXZlX2lmcyIKKytl bHNlCisrICBsdF9jdl9wYXRoX0xEPSIkTEQiICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0 ZXN0IHdpdGggYSBwYXRoLgorK2ZpXSkKKytMRD0iJGx0X2N2X3BhdGhfTEQiCisraWYgdGVzdCAt biAiJExEIjsgdGhlbgorKyAgQUNfTVNHX1JFU1VMVCgkTEQpCisrZWxzZQorKyAgQUNfTVNHX1JF U1VMVChubykKKytmaQorK3Rlc3QgLXogIiRMRCIgJiYgQUNfTVNHX0VSUk9SKFtubyBhY2NlcHRh YmxlIGxkIGZvdW5kIGluIFwkUEFUSF0pCisrX0xUX1BBVEhfTERfR05VCisrQUNfU1VCU1QoW0xE XSkKKysKKytfTFRfVEFHREVDTChbXSwgW0xEXSwgWzFdLCBbVGhlIGxpbmtlciB1c2VkIHRvIGJ1 aWxkIGxpYnJhcmllc10pCisrXSkjIExUX1BBVEhfTEQKKysKKysjIE9sZCBuYW1lczoKKytBVV9B TElBUyhbQU1fUFJPR19MRF0sIFtMVF9QQVRIX0xEXSkKKytBVV9BTElBUyhbQUNfUFJPR19MRF0s IFtMVF9QQVRIX0xEXSkKKytkbmwgYWNsb2NhbC0xLjQgYmFja3dhcmRzIGNvbXBhdGliaWxpdHk6 CisrZG5sIEFDX0RFRlVOKFtBTV9QUk9HX0xEXSwgW10pCisrZG5sIEFDX0RFRlVOKFtBQ19QUk9H X0xEXSwgW10pCisrCisrCisrIyBfTFRfUEFUSF9MRF9HTlUKKysjLSAtLS0tLS0tLS0tLS0tLQor K200X2RlZnVuKFtfTFRfUEFUSF9MRF9HTlVdLAorK1tBQ19DQUNIRV9DSEVDSyhbaWYgdGhlIGxp bmtlciAoJExEKSBpcyBHTlUgbGRdLCBsdF9jdl9wcm9nX2dudV9sZCwKKytbIyBJJ2QgcmF0aGVy IHVzZSAtLXZlcnNpb24gaGVyZSwgYnV0IGFwcGFyZW50bHkgc29tZSBHTlUgbGRzIG9ubHkgYWNj ZXB0IC12LgorK2Nhc2UgYCRMRCAtdiAyPiYxIDwvZGV2L251bGxgIGluCisrKkdOVSogfCAqJ3dp dGggQkZEJyopCisrICBsdF9jdl9wcm9nX2dudV9sZD15ZXMKKysgIDs7CisrKikKKysgIGx0X2N2 X3Byb2dfZ251X2xkPW5vCisrICA7OworK2VzYWNdKQorK3dpdGhfZ251X2xkPSRsdF9jdl9wcm9n X2dudV9sZAorK10pIyBfTFRfUEFUSF9MRF9HTlUKKysKKysKKysjIF9MVF9DTURfUkVMT0FECisr IyAtLS0tLS0tLS0tLS0tLQorKyMgZmluZCByZWxvYWQgZmxhZyBmb3IgbGlua2VyCisrIyAgIC0t IFBPUlRNRSBTb21lIGxpbmtlcnMgbWF5IG5lZWQgYSBkaWZmZXJlbnQgcmVsb2FkIGZsYWcuCisr bTRfZGVmdW4oW19MVF9DTURfUkVMT0FEXSwKKytbQUNfQ0FDSEVfQ0hFQ0soW2ZvciAkTEQgb3B0 aW9uIHRvIHJlbG9hZCBvYmplY3QgZmlsZXNdLAorKyAgbHRfY3ZfbGRfcmVsb2FkX2ZsYWcsCisr ICBbbHRfY3ZfbGRfcmVsb2FkX2ZsYWc9Jy1yJ10pCisrcmVsb2FkX2ZsYWc9JGx0X2N2X2xkX3Jl bG9hZF9mbGFnCisrY2FzZSAkcmVsb2FkX2ZsYWcgaW4KKysiIiB8ICIgIiopIDs7CisrKikgcmVs b2FkX2ZsYWc9IiAkcmVsb2FkX2ZsYWciIDs7CisrZXNhYworK3JlbG9hZF9jbWRzPSckTEQkcmVs b2FkX2ZsYWcgLW8gJG91dHB1dCRyZWxvYWRfb2JqcycKKytjYXNlICRob3N0X29zIGluCisrICBk YXJ3aW4qKQorKyAgICBpZiB0ZXN0ICIkR0NDIiA9IHllczsgdGhlbgorKyAgICAgIHJlbG9hZF9j bWRzPSckTFRDQyAkTFRDRkxBR1MgLW5vc3RkbGliICR7d2x9LXIgLW8gJG91dHB1dCRyZWxvYWRf b2JqcycKKysgICAgZWxzZQorKyAgICAgIHJlbG9hZF9jbWRzPSckTEQkcmVsb2FkX2ZsYWcgLW8g JG91dHB1dCRyZWxvYWRfb2JqcycKKysgICAgZmkKKysgICAgOzsKKytlc2FjCisrX0xUX0RFQ0wo W10sIFtyZWxvYWRfZmxhZ10sIFsxXSwgW0hvdyB0byBjcmVhdGUgcmVsb2FkYWJsZSBvYmplY3Qg ZmlsZXNdKWRubAorK19MVF9ERUNMKFtdLCBbcmVsb2FkX2NtZHNdLCBbMl0pZG5sCisrXSkjIF9M VF9DTURfUkVMT0FECisrCisrCisrIyBfTFRfQ0hFQ0tfTUFHSUNfTUVUSE9ECisrIyAtLS0tLS0t LS0tLS0tLS0tLS0tLS0tCisrIyBob3cgdG8gY2hlY2sgZm9yIGxpYnJhcnkgZGVwZW5kZW5jaWVz CisrIyAgLS0gUE9SVE1FIGZpbGwgaW4gd2l0aCB0aGUgZHluYW1pYyBsaWJyYXJ5IGNoYXJhY3Rl cmlzdGljcworK200X2RlZnVuKFtfTFRfQ0hFQ0tfTUFHSUNfTUVUSE9EXSwKKytbbTRfcmVxdWly ZShbX0xUX0RFQ0xfRUdSRVBdKQorK200X3JlcXVpcmUoW19MVF9ERUNMX09CSkRVTVBdKQorK0FD X0NBQ0hFX0NIRUNLKFtob3cgdG8gcmVjb2duaXplIGRlcGVuZGVudCBsaWJyYXJpZXNdLAorK2x0 X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kLAorK1tsdF9jdl9maWxlX21hZ2ljX2NtZD0nJE1BR0lD X0NNRCcKKytsdF9jdl9maWxlX21hZ2ljX3Rlc3RfZmlsZT0KKytsdF9jdl9kZXBsaWJzX2NoZWNr X21ldGhvZD0ndW5rbm93bicKKysjIE5lZWQgdG8gc2V0IHRoZSBwcmVjZWRpbmcgdmFyaWFibGUg b24gYWxsIHBsYXRmb3JtcyB0aGF0IHN1cHBvcnQKKysjIGludGVybGlicmFyeSBkZXBlbmRlbmNp ZXMuCisrIyAnbm9uZScgLS0gZGVwZW5kZW5jaWVzIG5vdCBzdXBwb3J0ZWQuCisrIyBgdW5rbm93 bicgLS0gc2FtZSBhcyBub25lLCBidXQgZG9jdW1lbnRzIHRoYXQgd2UgcmVhbGx5IGRvbid0IGtu b3cuCisrIyAncGFzc19hbGwnIC0tIGFsbCBkZXBlbmRlbmNpZXMgcGFzc2VkIHdpdGggbm8gY2hl Y2tzLgorKyMgJ3Rlc3RfY29tcGlsZScgLS0gY2hlY2sgYnkgbWFraW5nIHRlc3QgcHJvZ3JhbS4K KysjICdmaWxlX21hZ2ljIFtbcmVnZXhdXScgLS0gY2hlY2sgYnkgbG9va2luZyBmb3IgZmlsZXMg aW4gbGlicmFyeSBwYXRoCisrIyB3aGljaCByZXNwb25kcyB0byB0aGUgJGZpbGVfbWFnaWNfY21k IHdpdGggYSBnaXZlbiBleHRlbmRlZCByZWdleC4KKysjIElmIHlvdSBoYXZlIGBmaWxlJyBvciBl cXVpdmFsZW50IG9uIHlvdXIgc3lzdGVtIGFuZCB5b3UncmUgbm90IHN1cmUKKysjIHdoZXRoZXIg YHBhc3NfYWxsJyB3aWxsICphbHdheXMqIHdvcmssIHlvdSBwcm9iYWJseSB3YW50IHRoaXMgb25l LgorKworK2Nhc2UgJGhvc3Rfb3MgaW4KKythaXhbWzQtOV1dKikKKysgIGx0X2N2X2RlcGxpYnNf Y2hlY2tfbWV0aG9kPXBhc3NfYWxsCisrICA7OworKworK2Jlb3MqKQorKyAgbHRfY3ZfZGVwbGli c19jaGVja19tZXRob2Q9cGFzc19hbGwKKysgIDs7CisrCisrYnNkaVtbNDVdXSopCisrICBsdF9j dl9kZXBsaWJzX2NoZWNrX21ldGhvZD0nZmlsZV9tYWdpYyBFTEYgW1swLTldXVtbMC05XV0qLWJp dCBbW01MXV1TQiAoc2hhcmVkIG9iamVjdHxkeW5hbWljIGxpYiknCisrICBsdF9jdl9maWxlX21h Z2ljX2NtZD0nL3Vzci9iaW4vZmlsZSAtTCcKKysgIGx0X2N2X2ZpbGVfbWFnaWNfdGVzdF9maWxl PS9zaGxpYi9saWJjLnNvCisrICA7OworKworK2N5Z3dpbiopCisrICAjIGZ1bmNfd2luMzJfbGli aWQgaXMgYSBzaGVsbCBmdW5jdGlvbiBkZWZpbmVkIGluIGx0bWFpbi5zaAorKyAgbHRfY3ZfZGVw bGlic19jaGVja19tZXRob2Q9J2ZpbGVfbWFnaWMgXng4NiBhcmNoaXZlIGltcG9ydHxeeDg2IERM TCcKKysgIGx0X2N2X2ZpbGVfbWFnaWNfY21kPSdmdW5jX3dpbjMyX2xpYmlkJworKyAgOzsKKysK KyttaW5ndyogfCBwdzMyKikKKysgICMgQmFzZSBNU1lTL01pbkdXIGRvIG5vdCBwcm92aWRlIHRo ZSAnZmlsZScgY29tbWFuZCBuZWVkZWQgYnkKKysgICMgZnVuY193aW4zMl9saWJpZCBzaGVsbCBm dW5jdGlvbiwgc28gdXNlIGEgd2Vha2VyIHRlc3QgYmFzZWQgb24gJ29iamR1bXAnLAorKyAgIyB1 bmxlc3Mgd2UgZmluZCAnZmlsZScsIGZvciBleGFtcGxlIGJlY2F1c2Ugd2UgYXJlIGNyb3NzLWNv bXBpbGluZy4KKysgIGlmICggZmlsZSAvICkgPi9kZXYvbnVsbCAyPiYxOyB0aGVuCisrICAgIGx0 X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPSdmaWxlX21hZ2ljIF54ODYgYXJjaGl2ZSBpbXBvcnR8 Xng4NiBETEwnCisrICAgIGx0X2N2X2ZpbGVfbWFnaWNfY21kPSdmdW5jX3dpbjMyX2xpYmlkJwor KyAgZWxzZQorKyAgICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD0nZmlsZV9tYWdpYyBmaWxl IGZvcm1hdCBwZWkqLWkzODYoLiphcmNoaXRlY3R1cmU6IGkzODYpPycKKysgICAgbHRfY3ZfZmls ZV9tYWdpY19jbWQ9JyRPQkpEVU1QIC1mJworKyAgZmkKKysgIDs7CisrCisrY2VnY2MpCisrICAj IHVzZSB0aGUgd2Vha2VyIHRlc3QgYmFzZWQgb24gJ29iamR1bXAnLiBTZWUgbWluZ3cqLgorKyAg bHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9J2ZpbGVfbWFnaWMgZmlsZSBmb3JtYXQgcGUtYXJt LS4qbGl0dGxlKC4qYXJjaGl0ZWN0dXJlOiBhcm0pPycKKysgIGx0X2N2X2ZpbGVfbWFnaWNfY21k PSckT0JKRFVNUCAtZicKKysgIDs7CisrCisrZGFyd2luKiB8IHJoYXBzb2R5KikKKysgIGx0X2N2 X2RlcGxpYnNfY2hlY2tfbWV0aG9kPXBhc3NfYWxsCisrICA7OworKworK2ZyZWVic2QqIHwgZHJh Z29uZmx5KikKKysgIGlmIGVjaG8gX19FTEZfXyB8ICRDQyAtRSAtIHwgJEdSRVAgX19FTEZfXyA+ IC9kZXYvbnVsbDsgdGhlbgorKyAgICBjYXNlICRob3N0X2NwdSBpbgorKyAgICBpKjg2ICkKKysg ICAgICAjIE5vdCBzdXJlIHdoZXRoZXIgdGhlIHByZXNlbmNlIG9mIE9wZW5CU0QgaGVyZSB3YXMg YSBtaXN0YWtlLgorKyAgICAgICMgTGV0J3MgYWNjZXB0IGJvdGggb2YgdGhlbSB1bnRpbCB0aGlz IGlzIGNsZWFyZWQgdXAuCisrICAgICAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9J2ZpbGVf bWFnaWMgKEZyZWVCU0R8T3BlbkJTRHxEcmFnb25GbHkpL2lbWzMtOV1dODYgKGNvbXBhY3QgKT9k ZW1hbmQgcGFnZWQgc2hhcmVkIGxpYnJhcnknCisrICAgICAgbHRfY3ZfZmlsZV9tYWdpY19jbWQ9 L3Vzci9iaW4vZmlsZQorKyAgICAgIGx0X2N2X2ZpbGVfbWFnaWNfdGVzdF9maWxlPWBlY2hvIC91 c3IvbGliL2xpYmMuc28uKmAKKysgICAgICA7OworKyAgICBlc2FjCisrICBlbHNlCisrICAgIGx0 X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPXBhc3NfYWxsCisrICBmaQorKyAgOzsKKysKKytnbnUq KQorKyAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9cGFzc19hbGwKKysgIDs7CisrCisraHB1 eDEwLjIwKiB8IGhwdXgxMSopCisrICBsdF9jdl9maWxlX21hZ2ljX2NtZD0vdXNyL2Jpbi9maWxl CisrICBjYXNlICRob3N0X2NwdSBpbgorKyAgaWE2NCopCisrICAgIGx0X2N2X2RlcGxpYnNfY2hl Y2tfbWV0aG9kPSdmaWxlX21hZ2ljIChzW1swLTldXVtbMC05XV1bWzAtOV1dfEVMRi1bWzAtOV1d W1swLTldXSkgc2hhcmVkIG9iamVjdCBmaWxlIC0gSUE2NCcKKysgICAgbHRfY3ZfZmlsZV9tYWdp Y190ZXN0X2ZpbGU9L3Vzci9saWIvaHB1eDMyL2xpYmMuc28KKysgICAgOzsKKysgIGhwcGEqNjQq KQorKyAgICBbbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9J2ZpbGVfbWFnaWMgKHNbMC05XVsw LTldWzAtOV18RUxGLVswLTldWzAtOV0pIHNoYXJlZCBvYmplY3QgZmlsZSAtIFBBLVJJU0MgWzAt OV0uWzAtOV0nXQorKyAgICBsdF9jdl9maWxlX21hZ2ljX3Rlc3RfZmlsZT0vdXNyL2xpYi9wYTIw XzY0L2xpYmMuc2wKKysgICAgOzsKKysgICopCisrICAgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0 aG9kPSdmaWxlX21hZ2ljIChzW1swLTldXVtbMC05XV1bWzAtOV1dfFBBLVJJU0NbWzAtOV1dLltb MC05XV0pIHNoYXJlZCBsaWJyYXJ5JworKyAgICBsdF9jdl9maWxlX21hZ2ljX3Rlc3RfZmlsZT0v dXNyL2xpYi9saWJjLnNsCisrICAgIDs7CisrICBlc2FjCisrICA7OworKworK2ludGVyaXhbWzMt OV1dKikKKysgICMgUElDIGNvZGUgaXMgYnJva2VuIG9uIEludGVyaXggMy54LCB0aGF0J3Mgd2h5 IHxcLmEgbm90IHxfcGljXC5hIGhlcmUKKysgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPSdt YXRjaF9wYXR0ZXJuIC9saWJbW14vXV0rKFwuc298XC5hKSQnCisrICA7OworKworK2lyaXg1KiB8 IGlyaXg2KiB8IG5vbnN0b3B1eCopCisrICBjYXNlICRMRCBpbgorKyAgKi0zMnwqIi0zMiAiKSBs aWJtYWdpYz0zMi1iaXQ7OworKyAgKi1uMzJ8KiItbjMyICIpIGxpYm1hZ2ljPU4zMjs7CisrICAq LTY0fCoiLTY0ICIpIGxpYm1hZ2ljPTY0LWJpdDs7CisrICAqKSBsaWJtYWdpYz1uZXZlci1tYXRj aDs7CisrICBlc2FjCisrICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD1wYXNzX2FsbAorKyAg OzsKKysKKysjIFRoaXMgbXVzdCBiZSBMaW51eCBFTEYuCisrbGludXgqIHwgaypic2QqLWdudSkK KysgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPXBhc3NfYWxsCisrICA7OworKworK25ldGJz ZCopCisrICBpZiBlY2hvIF9fRUxGX18gfCAkQ0MgLUUgLSB8ICRHUkVQIF9fRUxGX18gPiAvZGV2 L251bGw7IHRoZW4KKysgICAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9J21hdGNoX3BhdHRl cm4gL2xpYltbXi9dXSsoXC5zb1wuW1swLTldXStcLltbMC05XV0rfF9waWNcLmEpJCcKKysgIGVs c2UKKysgICAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9J21hdGNoX3BhdHRlcm4gL2xpYltb Xi9dXSsoXC5zb3xfcGljXC5hKSQnCisrICBmaQorKyAgOzsKKysKKytuZXdvczYqKQorKyAgbHRf Y3ZfZGVwbGlic19jaGVja19tZXRob2Q9J2ZpbGVfbWFnaWMgRUxGIFtbMC05XV1bWzAtOV1dKi1i aXQgW1tNTF1dU0IgKGV4ZWN1dGFibGV8ZHluYW1pYyBsaWIpJworKyAgbHRfY3ZfZmlsZV9tYWdp Y19jbWQ9L3Vzci9iaW4vZmlsZQorKyAgbHRfY3ZfZmlsZV9tYWdpY190ZXN0X2ZpbGU9L3Vzci9s aWIvbGlibmxzLnNvCisrICA7OworKworKypudG8qIHwgKnFueCopCisrICBsdF9jdl9kZXBsaWJz X2NoZWNrX21ldGhvZD1wYXNzX2FsbAorKyAgOzsKKysKKytvcGVuYnNkKikKKysgIGlmIHRlc3Qg LXogImBlY2hvIF9fRUxGX18gfCAkQ0MgLUUgLSB8ICRHUkVQIF9fRUxGX19gIiB8fCB0ZXN0ICIk aG9zdF9vcy0kaG9zdF9jcHUiID0gIm9wZW5ic2QyLjgtcG93ZXJwYyI7IHRoZW4KKysgICAgbHRf Y3ZfZGVwbGlic19jaGVja19tZXRob2Q9J21hdGNoX3BhdHRlcm4gL2xpYltbXi9dXSsoXC5zb1wu W1swLTldXStcLltbMC05XV0rfFwuc298X3BpY1wuYSkkJworKyAgZWxzZQorKyAgICBsdF9jdl9k ZXBsaWJzX2NoZWNrX21ldGhvZD0nbWF0Y2hfcGF0dGVybiAvbGliW1teL11dKyhcLnNvXC5bWzAt OV1dK1wuW1swLTldXSt8X3BpY1wuYSkkJworKyAgZmkKKysgIDs7CisrCisrb3NmMyogfCBvc2Y0 KiB8IG9zZjUqKQorKyAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9cGFzc19hbGwKKysgIDs7 CisrCisrcmRvcyopCisrICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD1wYXNzX2FsbAorKyAg OzsKKysKKytzb2xhcmlzKikKKysgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPXBhc3NfYWxs CisrICA7OworKworK3N5c3Y1KiB8IHNjbzMuMnY1KiB8IHNjbzV2NiogfCB1bml4d2FyZSogfCBP cGVuVU5JWCogfCBzeXN2NCp1dzIqKQorKyAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9cGFz c19hbGwKKysgIDs7CisrCisrc3lzdjQgfCBzeXN2NC4zKikKKysgIGNhc2UgJGhvc3RfdmVuZG9y IGluCisrICBtb3Rvcm9sYSkKKysgICAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9J2ZpbGVf bWFnaWMgRUxGIFtbMC05XV1bWzAtOV1dKi1iaXQgW1tNTF1dU0IgKHNoYXJlZCBvYmplY3R8ZHlu YW1pYyBsaWIpIE1bWzAtOV1dW1swLTldXSogVmVyc2lvbiBbWzAtOV1dJworKyAgICBsdF9jdl9m aWxlX21hZ2ljX3Rlc3RfZmlsZT1gZWNobyAvdXNyL2xpYi9saWJjLnNvKmAKKysgICAgOzsKKysg IG5jcikKKysgICAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9cGFzc19hbGwKKysgICAgOzsK KysgIHNlcXVlbnQpCisrICAgIGx0X2N2X2ZpbGVfbWFnaWNfY21kPScvYmluL2ZpbGUnCisrICAg IGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPSdmaWxlX21hZ2ljIEVMRiBbWzAtOV1dW1swLTld XSotYml0IFtbTE1dXVNCIChzaGFyZWQgb2JqZWN0fGR5bmFtaWMgbGliICknCisrICAgIDs7Cisr ICBzbmkpCisrICAgIGx0X2N2X2ZpbGVfbWFnaWNfY21kPScvYmluL2ZpbGUnCisrICAgIGx0X2N2 X2RlcGxpYnNfY2hlY2tfbWV0aG9kPSJmaWxlX21hZ2ljIEVMRiBbWzAtOV1dW1swLTldXSotYml0 IFtbTE1dXVNCIGR5bmFtaWMgbGliIgorKyAgICBsdF9jdl9maWxlX21hZ2ljX3Rlc3RfZmlsZT0v bGliL2xpYmMuc28KKysgICAgOzsKKysgIHNpZW1lbnMpCisrICAgIGx0X2N2X2RlcGxpYnNfY2hl Y2tfbWV0aG9kPXBhc3NfYWxsCisrICAgIDs7CisrICBwYykKKysgICAgbHRfY3ZfZGVwbGlic19j aGVja19tZXRob2Q9cGFzc19hbGwKKysgICAgOzsKKysgIGVzYWMKKysgIDs7CisrCisrdHBmKikK KysgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPXBhc3NfYWxsCisrICA7OworK2VzYWMKKytd KQorK2ZpbGVfbWFnaWNfY21kPSRsdF9jdl9maWxlX21hZ2ljX2NtZAorK2RlcGxpYnNfY2hlY2tf bWV0aG9kPSRsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZAorK3Rlc3QgLXogIiRkZXBsaWJzX2No ZWNrX21ldGhvZCIgJiYgZGVwbGlic19jaGVja19tZXRob2Q9dW5rbm93bgorKworK19MVF9ERUNM KFtdLCBbZGVwbGlic19jaGVja19tZXRob2RdLCBbMV0sCisrICAgIFtNZXRob2QgdG8gY2hlY2sg d2hldGhlciBkZXBlbmRlbnQgbGlicmFyaWVzIGFyZSBzaGFyZWQgb2JqZWN0c10pCisrX0xUX0RF Q0woW10sIFtmaWxlX21hZ2ljX2NtZF0sIFsxXSwKKysgICAgW0NvbW1hbmQgdG8gdXNlIHdoZW4g ZGVwbGlic19jaGVja19tZXRob2QgPT0gImZpbGVfbWFnaWMiXSkKKytdKSMgX0xUX0NIRUNLX01B R0lDX01FVEhPRAorKworKworKyMgTFRfUEFUSF9OTQorKyMgLS0tLS0tLS0tLQorKyMgZmluZCB0 aGUgcGF0aG5hbWUgdG8gYSBCU0QtIG9yIE1TLWNvbXBhdGlibGUgbmFtZSBsaXN0ZXIKKytBQ19E RUZVTihbTFRfUEFUSF9OTV0sCisrW0FDX1JFUVVJUkUoW0FDX1BST0dfQ0NdKWRubAorK0FDX0NB Q0hFX0NIRUNLKFtmb3IgQlNELSBvciBNUy1jb21wYXRpYmxlIG5hbWUgbGlzdGVyIChubSldLCBs dF9jdl9wYXRoX05NLAorK1tpZiB0ZXN0IC1uICIkTk0iOyB0aGVuCisrICAjIExldCB0aGUgdXNl ciBvdmVycmlkZSB0aGUgdGVzdC4KKysgIGx0X2N2X3BhdGhfTk09IiROTSIKKytlbHNlCisrICBs dF9ubV90b19jaGVjaz0iJHthY190b29sX3ByZWZpeH1ubSIKKysgIGlmIHRlc3QgLW4gIiRhY190 b29sX3ByZWZpeCIgJiYgdGVzdCAiJGJ1aWxkIiA9ICIkaG9zdCI7IHRoZW4KKysgICAgbHRfbm1f dG9fY2hlY2s9IiRsdF9ubV90b19jaGVjayBubSIKKysgIGZpCisrICBmb3IgbHRfdG1wX25tIGlu ICRsdF9ubV90b19jaGVjazsgZG8KKysgICAgbHRfc2F2ZV9pZnM9IiRJRlMiOyBJRlM9JFBBVEhf U0VQQVJBVE9SCisrICAgIGZvciBhY19kaXIgaW4gJFBBVEggL3Vzci9jY3MvYmluL2VsZiAvdXNy L2Njcy9iaW4gL3Vzci91Y2IgL2JpbjsgZG8KKysgICAgICBJRlM9IiRsdF9zYXZlX2lmcyIKKysg ICAgICB0ZXN0IC16ICIkYWNfZGlyIiAmJiBhY19kaXI9LgorKyAgICAgIHRtcF9ubT0iJGFjX2Rp ci8kbHRfdG1wX25tIgorKyAgICAgIGlmIHRlc3QgLWYgIiR0bXBfbm0iIHx8IHRlc3QgLWYgIiR0 bXBfbm0kYWNfZXhlZXh0IiA7IHRoZW4KKysJIyBDaGVjayB0byBzZWUgaWYgdGhlIG5tIGFjY2Vw dHMgYSBCU0QtY29tcGF0IGZsYWcuCisrCSMgQWRkaW5nIHRoZSBgc2VkIDFxJyBwcmV2ZW50cyBm YWxzZSBwb3NpdGl2ZXMgb24gSFAtVVgsIHdoaWNoIHNheXM6CisrCSMgICBubTogdW5rbm93biBv cHRpb24gIkIiIGlnbm9yZWQKKysJIyBUcnU2NCdzIG5tIGNvbXBsYWlucyB0aGF0IC9kZXYvbnVs bCBpcyBhbiBpbnZhbGlkIG9iamVjdCBmaWxlCisrCWNhc2UgYCIkdG1wX25tIiAtQiAvZGV2L251 bGwgMj4mMSB8IHNlZCAnMXEnYCBpbgorKwkqL2Rldi9udWxsKiB8IConSW52YWxpZCBmaWxlIG9y IG9iamVjdCB0eXBlJyopCisrCSAgbHRfY3ZfcGF0aF9OTT0iJHRtcF9ubSAtQiIKKysJICBicmVh aworKwkgIDs7CisrCSopCisrCSAgY2FzZSBgIiR0bXBfbm0iIC1wIC9kZXYvbnVsbCAyPiYxIHwg c2VkICcxcSdgIGluCisrCSAgKi9kZXYvbnVsbCopCisrCSAgICBsdF9jdl9wYXRoX05NPSIkdG1w X25tIC1wIgorKwkgICAgYnJlYWsKKysJICAgIDs7CisrCSAgKikKKysJICAgIGx0X2N2X3BhdGhf Tk09JHtsdF9jdl9wYXRoX05NPSIkdG1wX25tIn0gIyBrZWVwIHRoZSBmaXJzdCBtYXRjaCwgYnV0 CisrCSAgICBjb250aW51ZSAjIHNvIHRoYXQgd2UgY2FuIHRyeSB0byBmaW5kIG9uZSB0aGF0IHN1 cHBvcnRzIEJTRCBmbGFncworKwkgICAgOzsKKysJICBlc2FjCisrCSAgOzsKKysJZXNhYworKyAg ICAgIGZpCisrICAgIGRvbmUKKysgICAgSUZTPSIkbHRfc2F2ZV9pZnMiCisrICBkb25lCisrICA6 ICR7bHRfY3ZfcGF0aF9OTT1ub30KKytmaV0pCisraWYgdGVzdCAiJGx0X2N2X3BhdGhfTk0iICE9 ICJubyI7IHRoZW4KKysgIE5NPSIkbHRfY3ZfcGF0aF9OTSIKKytlbHNlCisrICAjIERpZG4ndCBm aW5kIGFueSBCU0QgY29tcGF0aWJsZSBuYW1lIGxpc3RlciwgbG9vayBmb3IgZHVtcGJpbi4KKysg IEFDX0NIRUNLX1RPT0xTKERVTVBCSU4sIFsiZHVtcGJpbiAtc3ltYm9scyIgImxpbmsgLWR1bXAg LXN5bWJvbHMiXSwgOikKKysgIEFDX1NVQlNUKFtEVU1QQklOXSkKKysgIGlmIHRlc3QgIiREVU1Q QklOIiAhPSAiOiI7IHRoZW4KKysgICAgTk09IiREVU1QQklOIgorKyAgZmkKKytmaQorK3Rlc3Qg LXogIiROTSIgJiYgTk09bm0KKytBQ19TVUJTVChbTk1dKQorK19MVF9ERUNMKFtdLCBbTk1dLCBb MV0sIFtBIEJTRC0gb3IgTVMtY29tcGF0aWJsZSBuYW1lIGxpc3Rlcl0pZG5sCisrCisrQUNfQ0FD SEVfQ0hFQ0soW3RoZSBuYW1lIGxpc3RlciAoJE5NKSBpbnRlcmZhY2VdLCBbbHRfY3Zfbm1faW50 ZXJmYWNlXSwKKysgIFtsdF9jdl9ubV9pbnRlcmZhY2U9IkJTRCBubSIKKysgIGVjaG8gImludCBz b21lX3ZhcmlhYmxlID0gMDsiID4gY29uZnRlc3QuJGFjX2V4dAorKyAgKGV2YWwgZWNobyAiXCJc JGFzX21lOl9fb2xpbmVfXzogJGFjX2NvbXBpbGVcIiIgPiZBU19NRVNTQUdFX0xPR19GRCkKKysg IChldmFsICIkYWNfY29tcGlsZSIgMj5jb25mdGVzdC5lcnIpCisrICBjYXQgY29uZnRlc3QuZXJy ID4mQVNfTUVTU0FHRV9MT0dfRkQKKysgIChldmFsIGVjaG8gIlwiXCRhc19tZTpfX29saW5lX186 ICROTSBcXFwiY29uZnRlc3QuJGFjX29iamV4dFxcXCJcIiIgPiZBU19NRVNTQUdFX0xPR19GRCkK KysgIChldmFsICIkTk0gXCJjb25mdGVzdC4kYWNfb2JqZXh0XCIiIDI+Y29uZnRlc3QuZXJyID4g Y29uZnRlc3Qub3V0KQorKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JkFTX01FU1NBR0VfTE9HX0ZECisr ICAoZXZhbCBlY2hvICJcIlwkYXNfbWU6X19vbGluZV9fOiBvdXRwdXRcIiIgPiZBU19NRVNTQUdF X0xPR19GRCkKKysgIGNhdCBjb25mdGVzdC5vdXQgPiZBU19NRVNTQUdFX0xPR19GRAorKyAgaWYg JEdSRVAgJ0V4dGVybmFsLipzb21lX3ZhcmlhYmxlJyBjb25mdGVzdC5vdXQgPiAvZGV2L251bGw7 IHRoZW4KKysgICAgbHRfY3Zfbm1faW50ZXJmYWNlPSJNUyBkdW1wYmluIgorKyAgZmkKKysgIHJt IC1mIGNvbmZ0ZXN0Kl0pCisrXSkjIExUX1BBVEhfTk0KKysKKysjIE9sZCBuYW1lczoKKytBVV9B TElBUyhbQU1fUFJPR19OTV0sIFtMVF9QQVRIX05NXSkKKytBVV9BTElBUyhbQUNfUFJPR19OTV0s IFtMVF9QQVRIX05NXSkKKytkbmwgYWNsb2NhbC0xLjQgYmFja3dhcmRzIGNvbXBhdGliaWxpdHk6 CisrZG5sIEFDX0RFRlVOKFtBTV9QUk9HX05NXSwgW10pCisrZG5sIEFDX0RFRlVOKFtBQ19QUk9H X05NXSwgW10pCisrCisrCisrIyBMVF9MSUJfTQorKyMgLS0tLS0tLS0KKysjIGNoZWNrIGZvciBt YXRoIGxpYnJhcnkKKytBQ19ERUZVTihbTFRfTElCX01dLAorK1tBQ19SRVFVSVJFKFtBQ19DQU5P TklDQUxfSE9TVF0pZG5sCisrTElCTT0KKytjYXNlICRob3N0IGluCisrKi0qLWJlb3MqIHwgKi0q LWN5Z3dpbiogfCAqLSotcHczMiogfCAqLSotZGFyd2luKikKKysgICMgVGhlc2Ugc3lzdGVtIGRv bid0IGhhdmUgbGlibSwgb3IgZG9uJ3QgbmVlZCBpdAorKyAgOzsKKysqLW5jci1zeXN2NC4zKikK KysgIEFDX0NIRUNLX0xJQihtdywgX213dmFsaWRjaGVja2wsIExJQk09Ii1sbXciKQorKyAgQUNf Q0hFQ0tfTElCKG0sIGNvcywgTElCTT0iJExJQk0gLWxtIikKKysgIDs7CisrKikKKysgIEFDX0NI RUNLX0xJQihtLCBjb3MsIExJQk09Ii1sbSIpCisrICA7OworK2VzYWMKKytBQ19TVUJTVChbTElC TV0pCisrXSkjIExUX0xJQl9NCisrCisrIyBPbGQgbmFtZToKKytBVV9BTElBUyhbQUNfQ0hFQ0tf TElCTV0sIFtMVF9MSUJfTV0pCisrZG5sIGFjbG9jYWwtMS40IGJhY2t3YXJkcyBjb21wYXRpYmls aXR5OgorK2RubCBBQ19ERUZVTihbQUNfQ0hFQ0tfTElCTV0sIFtdKQorKworKworKyMgX0xUX0NP TVBJTEVSX05PX1JUVEkoW1RBR05BTUVdKQorKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQorK200X2RlZnVuKFtfTFRfQ09NUElMRVJfTk9fUlRUSV0sCisrW200X3JlcXVpcmUoW19M VF9UQUdfQ09NUElMRVJdKWRubAorKworK19MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9ub19i dWlsdGluX2ZsYWcsICQxKT0KKysKKytpZiB0ZXN0ICIkR0NDIiA9IHllczsgdGhlbgorKyAgX0xU X1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX25vX2J1aWx0aW5fZmxhZywgJDEpPScgLWZuby1idWls dGluJworKworKyAgX0xUX0NPTVBJTEVSX09QVElPTihbaWYgJGNvbXBpbGVyIHN1cHBvcnRzIC1m bm8tcnR0aSAtZm5vLWV4Y2VwdGlvbnNdLAorKyAgICBsdF9jdl9wcm9nX2NvbXBpbGVyX3J0dGlf ZXhjZXB0aW9ucywKKysgICAgWy1mbm8tcnR0aSAtZm5vLWV4Y2VwdGlvbnNdLCBbXSwKKysgICAg W19MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9ub19idWlsdGluX2ZsYWcsICQxKT0iJF9MVF9U QUdWQVIobHRfcHJvZ19jb21waWxlcl9ub19idWlsdGluX2ZsYWcsICQxKSAtZm5vLXJ0dGkgLWZu by1leGNlcHRpb25zIl0pCisrZmkKKytfTFRfVEFHREVDTChbbm9fYnVpbHRpbl9mbGFnXSwgW2x0 X3Byb2dfY29tcGlsZXJfbm9fYnVpbHRpbl9mbGFnXSwgWzFdLAorKwlbQ29tcGlsZXIgZmxhZyB0 byB0dXJuIG9mZiBidWlsdGluIGZ1bmN0aW9uc10pCisrXSkjIF9MVF9DT01QSUxFUl9OT19SVFRJ CisrCisrCisrIyBfTFRfQ01EX0dMT0JBTF9TWU1CT0xTCisrIyAtLS0tLS0tLS0tLS0tLS0tLS0t LS0tCisrbTRfZGVmdW4oW19MVF9DTURfR0xPQkFMX1NZTUJPTFNdLAorK1tBQ19SRVFVSVJFKFtB Q19DQU5PTklDQUxfSE9TVF0pZG5sCisrQUNfUkVRVUlSRShbQUNfUFJPR19DQ10pZG5sCisrQUNf UkVRVUlSRShbTFRfUEFUSF9OTV0pZG5sCisrQUNfUkVRVUlSRShbTFRfUEFUSF9MRF0pZG5sCisr bTRfcmVxdWlyZShbX0xUX0RFQ0xfU0VEXSlkbmwKKyttNF9yZXF1aXJlKFtfTFRfREVDTF9FR1JF UF0pZG5sCisrbTRfcmVxdWlyZShbX0xUX1RBR19DT01QSUxFUl0pZG5sCisrCisrIyBDaGVjayBm b3IgY29tbWFuZCB0byBncmFiIHRoZSByYXcgc3ltYm9sIG5hbWUgZm9sbG93ZWQgYnkgQyBzeW1i b2wgZnJvbSBubS4KKytBQ19NU0dfQ0hFQ0tJTkcoW2NvbW1hbmQgdG8gcGFyc2UgJE5NIG91dHB1 dCBmcm9tICRjb21waWxlciBvYmplY3RdKQorK0FDX0NBQ0hFX1ZBTChbbHRfY3Zfc3lzX2dsb2Jh bF9zeW1ib2xfcGlwZV0sCisrWworKyMgVGhlc2UgYXJlIHNhbmUgZGVmYXVsdHMgdGhhdCB3b3Jr IG9uIGF0IGxlYXN0IGEgZmV3IG9sZCBzeXN0ZW1zLgorKyMgW1RoZXkgY29tZSBmcm9tIFVsdHJp eC4gIFdoYXQgY291bGQgYmUgb2xkZXIgdGhhbiBVbHRyaXg/ISEgOyldCisrCisrIyBDaGFyYWN0 ZXIgY2xhc3MgZGVzY3JpYmluZyBOTSBnbG9iYWwgc3ltYm9sIGNvZGVzLgorK3N5bWNvZGU9J1tb QkNERUdSU1RdXScKKysKKysjIFJlZ2V4cCB0byBtYXRjaCBzeW1ib2xzIHRoYXQgY2FuIGJlIGFj Y2Vzc2VkIGRpcmVjdGx5IGZyb20gQy4KKytzeW1wYXQ9J1woW1tfQS1aYS16XV1bW19BLVphLXow LTldXSpcKScKKysKKysjIERlZmluZSBzeXN0ZW0tc3BlY2lmaWMgdmFyaWFibGVzLgorK2Nhc2Ug JGhvc3Rfb3MgaW4KKythaXgqKQorKyAgc3ltY29kZT0nW1tCQ0RUXV0nCisrICA7OworK2N5Z3dp biogfCBtaW5ndyogfCBwdzMyKiB8IGNlZ2NjKikKKysgIHN5bWNvZGU9J1tbQUJDREdJU1RXXV0n CisrICA7OworK2hwdXgqKQorKyAgaWYgdGVzdCAiJGhvc3RfY3B1IiA9IGlhNjQ7IHRoZW4KKysg ICAgc3ltY29kZT0nW1tBQkNERUdSU1RdXScKKysgIGZpCisrICA7OworK2lyaXgqIHwgbm9uc3Rv cHV4KikKKysgIHN5bWNvZGU9J1tbQkNERUdSU1RdXScKKysgIDs7Cisrb3NmKikKKysgIHN5bWNv ZGU9J1tbQkNERUdRUlNUXV0nCisrICA7OworK3NvbGFyaXMqKQorKyAgc3ltY29kZT0nW1tCRFJU XV0nCisrICA7OworK3NjbzMuMnY1KikKKysgIHN5bWNvZGU9J1tbRFRdXScKKysgIDs7Cisrc3lz djQuMnV3MiopCisrICBzeW1jb2RlPSdbW0RUXV0nCisrICA7OworK3N5c3Y1KiB8IHNjbzV2Niog fCB1bml4d2FyZSogfCBPcGVuVU5JWCopCisrICBzeW1jb2RlPSdbW0FCRFRdXScKKysgIDs7Cisr c3lzdjQpCisrICBzeW1jb2RlPSdbW0RGTlNUVV1dJworKyAgOzsKKytlc2FjCisrCisrIyBJZiB3 ZSdyZSB1c2luZyBHTlUgbm0sIHRoZW4gdXNlIGl0cyBzdGFuZGFyZCBzeW1ib2wgY29kZXMuCisr Y2FzZSBgJE5NIC1WIDI+JjFgIGluCisrKkdOVSogfCAqJ3dpdGggQkZEJyopCisrICBzeW1jb2Rl PSdbW0FCQ0RHSVJTVFddXScgOzsKKytlc2FjCisrCisrIyBUcmFuc2Zvcm0gYW4gZXh0cmFjdGVk IHN5bWJvbCBsaW5lIGludG8gYSBwcm9wZXIgQyBkZWNsYXJhdGlvbi4KKysjIFNvbWUgc3lzdGVt cyAoZXNwLiBvbiBpYTY0KSBsaW5rIGRhdGEgYW5kIGNvZGUgc3ltYm9scyBkaWZmZXJlbnRseSwK KysjIHNvIHVzZSB0aGlzIGdlbmVyYWwgYXBwcm9hY2guCisrbHRfY3Zfc3lzX2dsb2JhbF9zeW1i b2xfdG9fY2RlY2w9InNlZCAtbiAtZSAncy9eVCAuKiBcKC4qXCkkL2V4dGVybiBpbnQgXDEoKTsv cCcgLWUgJ3MvXiRzeW1jb2RlKiAuKiBcKC4qXCkkL2V4dGVybiBjaGFyIFwxOy9wJyIKKysKKysj IFRyYW5zZm9ybSBhbiBleHRyYWN0ZWQgc3ltYm9sIGxpbmUgaW50byBzeW1ib2wgbmFtZSBhbmQg c3ltYm9sIGFkZHJlc3MKKytsdF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF90b19jX25hbWVfYWRkcmVz cz0ic2VkIC1uIC1lICdzL146IFwoW1teIF1dKlwpICQvICB7XFxcIlwxXFxcIiwgKHZvaWQgKikg MH0sL3AnIC1lICdzL14kc3ltY29kZSogXChbW14gXV0qXCkgXChbW14gXV0qXCkkLyAge1wiXDJc IiwgKHZvaWQgKikgXCZcMn0sL3AnIgorK2x0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3RvX2NfbmFt ZV9hZGRyZXNzX2xpYl9wcmVmaXg9InNlZCAtbiAtZSAncy9eOiBcKFtbXiBdXSpcKSAkLyAge1xc XCJcMVxcXCIsICh2b2lkICopIDB9LC9wJyAtZSAncy9eJHN5bWNvZGUqIFwoW1teIF1dKlwpIFwo bGliW1teIF1dKlwpJC8gIHtcIlwyXCIsICh2b2lkICopIFwmXDJ9LC9wJyAtZSAncy9eJHN5bWNv ZGUqIFwoW1teIF1dKlwpIFwoW1teIF1dKlwpJC8gIHtcImxpYlwyXCIsICh2b2lkICopIFwmXDJ9 LC9wJyIKKysKKysjIEhhbmRsZSBDUkxGIGluIG1pbmd3IHRvb2wgY2hhaW4KKytvcHRfY3I9Cisr Y2FzZSAkYnVpbGRfb3MgaW4KKyttaW5ndyopCisrICBvcHRfY3I9YCRFQ0hPICd4XHswLDFcfScg fCB0ciB4ICdcMDE1J2AgIyBvcHRpb24gY3IgaW4gcmVnZXhwCisrICA7OworK2VzYWMKKysKKysj IFRyeSB3aXRob3V0IGEgcHJlZml4IHVuZGVyc2NvcmUsIHRoZW4gd2l0aCBpdC4KKytmb3IgYWNf c3ltcHJmeCBpbiAiIiAiXyI7IGRvCisrCisrICAjIFRyYW5zZm9ybSBzeW1jb2RlLCBzeW1wYXQs IGFuZCBzeW1wcmZ4IGludG8gYSByYXcgc3ltYm9sIGFuZCBhIEMgc3ltYm9sLgorKyAgc3lteGZy bT0iXFwxICRhY19zeW1wcmZ4XFwyIFxcMiIKKysKKysgICMgV3JpdGUgdGhlIHJhdyBhbmQgQyBp ZGVudGlmaWVycy4KKysgIGlmIHRlc3QgIiRsdF9jdl9ubV9pbnRlcmZhY2UiID0gIk1TIGR1bXBi aW4iOyB0aGVuCisrICAgICMgRmFrZSBpdCBmb3IgZHVtcGJpbiBhbmQgc2F5IFQgZm9yIGFueSBu b24tc3RhdGljIGZ1bmN0aW9uCisrICAgICMgYW5kIEQgZm9yIGFueSBnbG9iYWwgdmFyaWFibGUu CisrICAgICMgQWxzbyBmaW5kIEMrKyBhbmQgX19mYXN0Y2FsbCBzeW1ib2xzIGZyb20gTVNWQysr LAorKyAgICAjIHdoaWNoIHN0YXJ0IHdpdGggQCBvciA/LgorKyAgICBsdF9jdl9zeXNfZ2xvYmFs X3N5bWJvbF9waXBlPSIkQVdLIFsnIlwKKysiICAgICB7bGFzdF9zZWN0aW9uPXNlY3Rpb247IHNl Y3Rpb249XCQgM307IlwKKysiICAgICAvU2VjdGlvbiBsZW5ndGggLiojcmVsb2NzLioocGljayBh bnkpL3toaWRlW2xhc3Rfc2VjdGlvbl09MX07IlwKKysiICAgICBcJCAwIX4vRXh0ZXJuYWwgKlx8 L3tuZXh0fTsiXAorKyIgICAgIC8gMCsgVU5ERUYgL3tuZXh0fTsgLyBVTkRFRiBcKFtefF1cKSoo KS97bmV4dH07IlwKKysiICAgICB7aWYoaGlkZVtzZWN0aW9uXSkgbmV4dH07IlwKKysiICAgICB7 Zj0wfTsgXCQgMH4vXChcKS4qXHwve2Y9MX07IHtwcmludGYgZiA/IFwiVCBcIiA6IFwiRCBcIn07 IlwKKysiICAgICB7c3BsaXQoXCQgMCwgYSwgL1x8fFxyLyk7IHNwbGl0KGFbMl0sIHMpfTsiXAor KyIgICAgIHNbMV1+L15bQD9dL3twcmludCBzWzFdLCBzWzFdOyBuZXh0fTsiXAorKyIgICAgIHNb MV1+cHJmeCB7c3BsaXQoc1sxXSx0LFwiQFwiKTsgcHJpbnQgdFsxXSwgc3Vic3RyKHRbMV0sbGVu Z3RoKHByZngpKX0iXAorKyIgICAgICcgcHJmeD1eJGFjX3N5bXByZnhdIgorKyAgZWxzZQorKyAg ICBsdF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF9waXBlPSJzZWQgLW4gLWUgJ3MvXi4qW1sJIF1dXCgk c3ltY29kZSRzeW1jb2RlKlwpW1sJIF1dW1sJIF1dKiRhY19zeW1wcmZ4JHN5bXBhdCRvcHRfY3Ik LyRzeW14ZnJtL3AnIgorKyAgZmkKKysKKysgICMgQ2hlY2sgdG8gc2VlIHRoYXQgdGhlIHBpcGUg d29ya3MgY29ycmVjdGx5LgorKyAgcGlwZV93b3Jrcz1ubworKworKyAgcm0gLWYgY29uZnRlc3Qq CisrICBjYXQgPiBjb25mdGVzdC4kYWNfZXh0IDw8X0xUX0VPRgorKyNpZmRlZiBfX2NwbHVzcGx1 cworK2V4dGVybiAiQyIgeworKyNlbmRpZgorK2NoYXIgbm1fdGVzdF92YXI7Cisrdm9pZCBubV90 ZXN0X2Z1bmModm9pZCk7Cisrdm9pZCBubV90ZXN0X2Z1bmModm9pZCl7fQorKyNpZmRlZiBfX2Nw bHVzcGx1cworK30KKysjZW5kaWYKKytpbnQgbWFpbigpe25tX3Rlc3RfdmFyPSdhJztubV90ZXN0 X2Z1bmMoKTtyZXR1cm4oMCk7fQorK19MVF9FT0YKKysKKysgIGlmIEFDX1RSWV9FVkFMKGFjX2Nv bXBpbGUpOyB0aGVuCisrICAgICMgTm93IHRyeSB0byBncmFiIHRoZSBzeW1ib2xzLgorKyAgICBu bGlzdD1jb25mdGVzdC5ubQorKyAgICBpZiBBQ19UUllfRVZBTChOTSBjb25mdGVzdC4kYWNfb2Jq ZXh0IFx8ICRsdF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF9waXBlIFw+ICRubGlzdCkgJiYgdGVzdCAt cyAiJG5saXN0IjsgdGhlbgorKyAgICAgICMgVHJ5IHNvcnRpbmcgYW5kIHVuaXF1aWZ5aW5nIHRo ZSBvdXRwdXQuCisrICAgICAgaWYgc29ydCAiJG5saXN0IiB8IHVuaXEgPiAiJG5saXN0IlQ7IHRo ZW4KKysJbXYgLWYgIiRubGlzdCJUICIkbmxpc3QiCisrICAgICAgZWxzZQorKwlybSAtZiAiJG5s aXN0IlQKKysgICAgICBmaQorKworKyAgICAgICMgTWFrZSBzdXJlIHRoYXQgd2Ugc25hZ2dlZCBh bGwgdGhlIHN5bWJvbHMgd2UgbmVlZC4KKysgICAgICBpZiAkR1JFUCAnIG5tX3Rlc3RfdmFyJCcg IiRubGlzdCIgPi9kZXYvbnVsbDsgdGhlbgorKwlpZiAkR1JFUCAnIG5tX3Rlc3RfZnVuYyQnICIk bmxpc3QiID4vZGV2L251bGw7IHRoZW4KKysJICBjYXQgPDxfTFRfRU9GID4gY29uZnRlc3QuJGFj X2V4dAorKyNpZmRlZiBfX2NwbHVzcGx1cworK2V4dGVybiAiQyIgeworKyNlbmRpZgorKworK19M VF9FT0YKKysJICAjIE5vdyBnZW5lcmF0ZSB0aGUgc3ltYm9sIGZpbGUuCisrCSAgZXZhbCAiJGx0 X2N2X3N5c19nbG9iYWxfc3ltYm9sX3RvX2NkZWNsIicgPCAiJG5saXN0IiB8ICRHUkVQIC12IG1h aW4gPj4gY29uZnRlc3QuJGFjX2V4dCcKKysKKysJICBjYXQgPDxfTFRfRU9GID4+IGNvbmZ0ZXN0 LiRhY19leHQKKysKKysvKiBUaGUgbWFwcGluZyBiZXR3ZWVuIHN5bWJvbCBuYW1lcyBhbmQgc3lt Ym9scy4gICovCisrY29uc3Qgc3RydWN0IHsKKysgIGNvbnN0IGNoYXIgKm5hbWU7CisrICB2b2lk ICAgICAgICphZGRyZXNzOworK30KKytsdF9fUFJPR1JBTV9fTFRYX3ByZWxvYWRlZF9zeW1ib2xz W1tdXSA9CisreworKyAgeyAiQFBST0dSQU1AIiwgKHZvaWQgKikgMCB9LAorK19MVF9FT0YKKysJ ICAkU0VEICJzL14kc3ltY29kZSRzeW1jb2RlKiBcKC4qXCkgXCguKlwpJC8gIHtcIlwyXCIsICh2 b2lkICopIFwmXDJ9LC8iIDwgIiRubGlzdCIgfCAkR1JFUCAtdiBtYWluID4+IGNvbmZ0ZXN0LiRh Y19leHQKKysJICBjYXQgPDxcX0xUX0VPRiA+PiBjb25mdGVzdC4kYWNfZXh0CisrICB7MCwgKHZv aWQgKikgMH0KKyt9OworKworKy8qIFRoaXMgd29ya3MgYXJvdW5kIGEgcHJvYmxlbSBpbiBGcmVl QlNEIGxpbmtlciAqLworKyNpZmRlZiBGUkVFQlNEX1dPUktBUk9VTkQKKytzdGF0aWMgY29uc3Qg dm9pZCAqbHRfcHJlbG9hZGVkX3NldHVwKCkgeworKyAgcmV0dXJuIGx0X19QUk9HUkFNX19MVFhf cHJlbG9hZGVkX3N5bWJvbHM7CisrfQorKyNlbmRpZgorKworKyNpZmRlZiBfX2NwbHVzcGx1cwor K30KKysjZW5kaWYKKytfTFRfRU9GCisrCSAgIyBOb3cgdHJ5IGxpbmtpbmcgdGhlIHR3byBmaWxl cy4KKysJICBtdiBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0c3RtLiRhY19vYmpleHQKKysJICBs dF9zYXZlX0xJQlM9IiRMSUJTIgorKwkgIGx0X3NhdmVfQ0ZMQUdTPSIkQ0ZMQUdTIgorKwkgIExJ QlM9ImNvbmZ0c3RtLiRhY19vYmpleHQiCisrCSAgQ0ZMQUdTPSIkQ0ZMQUdTJF9MVF9UQUdWQVIo bHRfcHJvZ19jb21waWxlcl9ub19idWlsdGluX2ZsYWcsICQxKSIKKysJICBpZiBBQ19UUllfRVZB TChhY19saW5rKSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0JHthY19leGVleHR9OyB0aGVuCisrCSAgICBw aXBlX3dvcmtzPXllcworKwkgIGZpCisrCSAgTElCUz0iJGx0X3NhdmVfTElCUyIKKysJICBDRkxB R1M9IiRsdF9zYXZlX0NGTEFHUyIKKysJZWxzZQorKwkgIGVjaG8gImNhbm5vdCBmaW5kIG5tX3Rl c3RfZnVuYyBpbiAkbmxpc3QiID4mQVNfTUVTU0FHRV9MT0dfRkQKKysJZmkKKysgICAgICBlbHNl CisrCWVjaG8gImNhbm5vdCBmaW5kIG5tX3Rlc3RfdmFyIGluICRubGlzdCIgPiZBU19NRVNTQUdF X0xPR19GRAorKyAgICAgIGZpCisrICAgIGVsc2UKKysgICAgICBlY2hvICJjYW5ub3QgcnVuICRs dF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF9waXBlIiA+JkFTX01FU1NBR0VfTE9HX0ZECisrICAgIGZp CisrICBlbHNlCisrICAgIGVjaG8gIiRwcm9nbmFtZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiZB U19NRVNTQUdFX0xPR19GRAorKyAgICBjYXQgY29uZnRlc3QuJGFjX2V4dCA+JjUKKysgIGZpCisr ICBybSAtcmYgY29uZnRlc3QqIGNvbmZ0c3QqCisrCisrICAjIERvIG5vdCB1c2UgdGhlIGdsb2Jh bF9zeW1ib2xfcGlwZSB1bmxlc3MgaXQgd29ya3MuCisrICBpZiB0ZXN0ICIkcGlwZV93b3JrcyIg PSB5ZXM7IHRoZW4KKysgICAgYnJlYWsKKysgIGVsc2UKKysgICAgbHRfY3Zfc3lzX2dsb2JhbF9z eW1ib2xfcGlwZT0KKysgIGZpCisrZG9uZQorK10pCisraWYgdGVzdCAteiAiJGx0X2N2X3N5c19n bG9iYWxfc3ltYm9sX3BpcGUiOyB0aGVuCisrICBsdF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF90b19j ZGVjbD0KKytmaQorK2lmIHRlc3QgLXogIiRsdF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF9waXBlJGx0 X2N2X3N5c19nbG9iYWxfc3ltYm9sX3RvX2NkZWNsIjsgdGhlbgorKyAgQUNfTVNHX1JFU1VMVChm YWlsZWQpCisrZWxzZQorKyAgQUNfTVNHX1JFU1VMVChvaykKKytmaQorKworK19MVF9ERUNMKFtn bG9iYWxfc3ltYm9sX3BpcGVdLCBbbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfcGlwZV0sIFsxXSwK KysgICAgW1Rha2UgdGhlIG91dHB1dCBvZiBubSBhbmQgcHJvZHVjZSBhIGxpc3Rpbmcgb2YgcmF3 IHN5bWJvbHMgYW5kIEMgbmFtZXNdKQorK19MVF9ERUNMKFtnbG9iYWxfc3ltYm9sX3RvX2NkZWNs XSwgW2x0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3RvX2NkZWNsXSwgWzFdLAorKyAgICBbVHJhbnNm b3JtIHRoZSBvdXRwdXQgb2Ygbm0gaW4gYSBwcm9wZXIgQyBkZWNsYXJhdGlvbl0pCisrX0xUX0RF Q0woW2dsb2JhbF9zeW1ib2xfdG9fY19uYW1lX2FkZHJlc3NdLAorKyAgICBbbHRfY3Zfc3lzX2ds b2JhbF9zeW1ib2xfdG9fY19uYW1lX2FkZHJlc3NdLCBbMV0sCisrICAgIFtUcmFuc2Zvcm0gdGhl IG91dHB1dCBvZiBubSBpbiBhIEMgbmFtZSBhZGRyZXNzIHBhaXJdKQorK19MVF9ERUNMKFtnbG9i YWxfc3ltYm9sX3RvX2NfbmFtZV9hZGRyZXNzX2xpYl9wcmVmaXhdLAorKyAgICBbbHRfY3Zfc3lz X2dsb2JhbF9zeW1ib2xfdG9fY19uYW1lX2FkZHJlc3NfbGliX3ByZWZpeF0sIFsxXSwKKysgICAg W1RyYW5zZm9ybSB0aGUgb3V0cHV0IG9mIG5tIGluIGEgQyBuYW1lIGFkZHJlc3MgcGFpciB3aGVu IGxpYiBwcmVmaXggaXMgbmVlZGVkXSkKKytdKSAjIF9MVF9DTURfR0xPQkFMX1NZTUJPTFMKKysK KysKKysjIF9MVF9DT01QSUxFUl9QSUMoW1RBR05BTUVdKQorKyMgLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCisrbTRfZGVmdW4oW19MVF9DT01QSUxFUl9QSUNdLAorK1ttNF9yZXF1aXJlKFtf TFRfVEFHX0NPTVBJTEVSXSlkbmwKKytfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfd2wsICQx KT0KKytfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9CisrX0xUX1RBR1ZBUihs dF9wcm9nX2NvbXBpbGVyX3N0YXRpYywgJDEpPQorKworK0FDX01TR19DSEVDS0lORyhbZm9yICRj b21waWxlciBvcHRpb24gdG8gcHJvZHVjZSBQSUNdKQorK200X2lmKFskMV0sIFtDWFhdLCBbCisr ICAjIEMrKyBzcGVjaWZpYyBjYXNlcyBmb3IgcGljLCBzdGF0aWMsIHdsLCBldGMuCisrICBpZiB0 ZXN0ICIkR1hYIiA9IHllczsgdGhlbgorKyAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJf d2wsICQxKT0nLVdsLCcKKysgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYywg JDEpPSctc3RhdGljJworKworKyAgICBjYXNlICRob3N0X29zIGluCisrICAgIGFpeCopCisrICAg ICAgIyBBbGwgQUlYIGNvZGUgaXMgUElDLgorKyAgICAgIGlmIHRlc3QgIiRob3N0X2NwdSIgPSBp YTY0OyB0aGVuCisrCSMgQUlYIDUgbm93IHN1cHBvcnRzIElBNjQgcHJvY2Vzc29yCisrCV9MVF9U QUdWQVIobHRfcHJvZ19jb21waWxlcl9zdGF0aWMsICQxKT0nLUJzdGF0aWMnCisrICAgICAgZmkK KysgICAgICA7OworKworKyAgICBhbWlnYW9zKikKKysgICAgICBjYXNlICRob3N0X2NwdSBpbgor KyAgICAgIHBvd2VycGMpCisrICAgICAgICAgICAgIyBzZWUgY29tbWVudCBhYm91dCBBbWlnYU9T NCAuc28gc3VwcG9ydAorKyAgICAgICAgICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9w aWMsICQxKT0nLWZQSUMnCisrICAgICAgICA7OworKyAgICAgIG02OGspCisrICAgICAgICAgICAg IyBGSVhNRTogd2UgbmVlZCBhdCBsZWFzdCA2ODAyMCBjb2RlIHRvIGJ1aWxkIHNoYXJlZCBsaWJy YXJpZXMsIGJ1dAorKyAgICAgICAgICAgICMgYWRkaW5nIHRoZSBgLW02ODAyMCcgZmxhZyB0byBH Q0MgcHJldmVudHMgYnVpbGRpbmcgYW55dGhpbmcgYmV0dGVyLAorKyAgICAgICAgICAgICMgbGlr ZSBgLW02ODA0MCcuCisrICAgICAgICAgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3Bp YywgJDEpPSctbTY4MDIwIC1yZXNpZGVudDMyIC1tYWx3YXlzLXJlc3RvcmUtYTQnCisrICAgICAg ICA7OworKyAgICAgIGVzYWMKKysgICAgICA7OworKworKyAgICBiZW9zKiB8IGlyaXg1KiB8IGly aXg2KiB8IG5vbnN0b3B1eCogfCBvc2YzKiB8IG9zZjQqIHwgb3NmNSopCisrICAgICAgIyBQSUMg aXMgdGhlIGRlZmF1bHQgZm9yIHRoZXNlIE9TZXMuCisrICAgICAgOzsKKysgICAgbWluZ3cqIHwg Y3lnd2luKiB8IG9zMiogfCBwdzMyKiB8IGNlZ2NjKikKKysgICAgICAjIFRoaXMgaGFjayBpcyBz byB0aGF0IHRoZSBzb3VyY2UgZmlsZSBjYW4gdGVsbCB3aGV0aGVyIGl0IGlzIGJlaW5nCisrICAg ICAgIyBidWlsdCBmb3IgaW5jbHVzaW9uIGluIGEgZGxsIChhbmQgc2hvdWxkIGV4cG9ydCBzeW1i b2xzIGZvciBleGFtcGxlKS4KKysgICAgICAjIEFsdGhvdWdoIHRoZSBjeWd3aW4gZ2NjIGlnbm9y ZXMgLWZQSUMsIHN0aWxsIG5lZWQgdGhpcyBmb3Igb2xkLXN0eWxlCisrICAgICAgIyAoLS1kaXNh YmxlLWF1dG8taW1wb3J0KSBsaWJyYXJpZXMKKysgICAgICBtNF9pZihbJDFdLCBbR0NKXSwgW10s CisrCVtfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9Jy1ERExMX0VYUE9SVCdd KQorKyAgICAgIDs7CisrICAgIGRhcndpbiogfCByaGFwc29keSopCisrICAgICAgIyBQSUMgaXMg dGhlIGRlZmF1bHQgb24gdGhpcyBwbGF0Zm9ybQorKyAgICAgICMgQ29tbW9uIHN5bWJvbHMgbm90 IGFsbG93ZWQgaW4gTUhfRFlMSUIgZmlsZXMKKysgICAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29t cGlsZXJfcGljLCAkMSk9Jy1mbm8tY29tbW9uJworKyAgICAgIDs7CisrICAgICpkamdwcCopCisr ICAgICAgIyBESkdQUCBkb2VzIG5vdCBzdXBwb3J0IHNoYXJlZCBsaWJyYXJpZXMgYXQgYWxsCisr ICAgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPQorKyAgICAgIDs7Cisr ICAgIGludGVyaXhbWzMtOV1dKikKKysgICAgICAjIEludGVyaXggMy54IGdjYyAtZnBpYy8tZlBJ QyBvcHRpb25zIGdlbmVyYXRlIGJyb2tlbiBjb2RlLgorKyAgICAgICMgSW5zdGVhZCwgd2UgcmVs b2NhdGUgc2hhcmVkIGxpYnJhcmllcyBhdCBydW50aW1lLgorKyAgICAgIDs7CisrICAgIHN5c3Y0 Kk1QKikKKysgICAgICBpZiB0ZXN0IC1kIC91c3IvbmVjOyB0aGVuCisrCV9MVF9UQUdWQVIobHRf cHJvZ19jb21waWxlcl9waWMsICQxKT0tS2NvbmZvcm1fcGljCisrICAgICAgZmkKKysgICAgICA7 OworKyAgICBocHV4KikKKysgICAgICAjIFBJQyBpcyB0aGUgZGVmYXVsdCBmb3IgNjQtYml0IFBB IEhQLVVYLCBidXQgbm90IGZvciAzMi1iaXQKKysgICAgICAjIFBBIEhQLVVYLiAgT24gSUE2NCBI UC1VWCwgUElDIGlzIHRoZSBkZWZhdWx0IGJ1dCB0aGUgcGljIGZsYWcKKysgICAgICAjIHNldHMg dGhlIGRlZmF1bHQgVExTIG1vZGVsIGFuZCBhZmZlY3RzIGlubGluaW5nLgorKyAgICAgIGNhc2Ug JGhvc3RfY3B1IGluCisrICAgICAgaHBwYSo2NCopCisrCTs7CisrICAgICAgKikKKysJX0xUX1RB R1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPSctZlBJQycKKysJOzsKKysgICAgICBlc2Fj CisrICAgICAgOzsKKysgICAgKnFueCogfCAqbnRvKikKKysgICAgICAjIFFOWCB1c2VzIEdOVSBD KyssIGJ1dCBuZWVkIHRvIGRlZmluZSAtc2hhcmVkIG9wdGlvbiB0b28sIG90aGVyd2lzZQorKyAg ICAgICMgaXQgd2lsbCBjb3JlZHVtcC4KKysgICAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGls ZXJfcGljLCAkMSk9Jy1mUElDIC1zaGFyZWQnCisrICAgICAgOzsKKysgICAgKikKKysgICAgICBf TFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9Jy1mUElDJworKyAgICAgIDs7Cisr ICAgIGVzYWMKKysgIGVsc2UKKysgICAgY2FzZSAkaG9zdF9vcyBpbgorKyAgICAgIGFpeFtbNC05 XV0qKQorKwkjIEFsbCBBSVggY29kZSBpcyBQSUMuCisrCWlmIHRlc3QgIiRob3N0X2NwdSIgPSBp YTY0OyB0aGVuCisrCSAgIyBBSVggNSBub3cgc3VwcG9ydHMgSUE2NCBwcm9jZXNzb3IKKysJICBf TFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfc3RhdGljLCAkMSk9Jy1Cc3RhdGljJworKwllbHNl CisrCSAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYywgJDEpPSctYm5zbyAtYkk6 L2xpYi9zeXNjYWxscy5leHAnCisrCWZpCisrCTs7CisrICAgICAgY2hvcnVzKikKKysJY2FzZSAk Y2NfYmFzZW5hbWUgaW4KKysJY3hjaDY4KikKKysJICAjIEdyZWVuIEhpbGxzIEMrKyBDb21waWxl cgorKwkgICMgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYywgJDEpPSItLW5vX2F1 dG9faW5zdGFudGlhdGlvbiAtdSBfX21haW4gLXUgX19wcmVtYWluIC11IF9hYm9ydCAtciAkQ09P TF9ESVIvbGliL2xpYk9yYi5hICRNVk1FX0RJUi9saWIvQ0MvbGliQy5hICRNVk1FX0RJUi9saWIv Y2xhc3NpeC9saWJjeC5zLmEiCisrCSAgOzsKKysJZXNhYworKwk7OworKyAgICAgIGRndXgqKQor KwljYXNlICRjY19iYXNlbmFtZSBpbgorKwkgIGVjKysqKQorKwkgICAgX0xUX1RBR1ZBUihsdF9w cm9nX2NvbXBpbGVyX3BpYywgJDEpPSctS1BJQycKKysJICAgIDs7CisrCSAgZ2hjeCopCisrCSAg ICAjIEdyZWVuIEhpbGxzIEMrKyBDb21waWxlcgorKwkgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2Nv bXBpbGVyX3BpYywgJDEpPSctcGljJworKwkgICAgOzsKKysJICAqKQorKwkgICAgOzsKKysJZXNh YworKwk7OworKyAgICAgIGZyZWVic2QqIHwgZHJhZ29uZmx5KikKKysJIyBGcmVlQlNEIHVzZXMg R05VIEMrKworKwk7OworKyAgICAgIGhwdXg5KiB8IGhwdXgxMCogfCBocHV4MTEqKQorKwljYXNl ICRjY19iYXNlbmFtZSBpbgorKwkgIENDKikKKysJICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21w aWxlcl93bCwgJDEpPSctV2wsJworKwkgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3N0 YXRpYywgJDEpPScke3dsfS1hICR7d2x9YXJjaGl2ZScKKysJICAgIGlmIHRlc3QgIiRob3N0X2Nw dSIgIT0gaWE2NDsgdGhlbgorKwkgICAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGlj LCAkMSk9JytaJworKwkgICAgZmkKKysJICAgIDs7CisrCSAgYUNDKikKKysJICAgIF9MVF9UQUdW QVIobHRfcHJvZ19jb21waWxlcl93bCwgJDEpPSctV2wsJworKwkgICAgX0xUX1RBR1ZBUihsdF9w cm9nX2NvbXBpbGVyX3N0YXRpYywgJDEpPScke3dsfS1hICR7d2x9YXJjaGl2ZScKKysJICAgIGNh c2UgJGhvc3RfY3B1IGluCisrCSAgICBocHBhKjY0KnxpYTY0KikKKysJICAgICAgIyArWiB0aGUg ZGVmYXVsdAorKwkgICAgICA7OworKwkgICAgKikKKysJICAgICAgX0xUX1RBR1ZBUihsdF9wcm9n X2NvbXBpbGVyX3BpYywgJDEpPScrWicKKysJICAgICAgOzsKKysJICAgIGVzYWMKKysJICAgIDs7 CisrCSAgKikKKysJICAgIDs7CisrCWVzYWMKKysJOzsKKysgICAgICBpbnRlcml4KikKKysJIyBU aGlzIGlzIGM4OSwgd2hpY2ggaXMgTVMgVmlzdWFsIEMrKyAobm8gc2hhcmVkIGxpYnMpCisrCSMg QW55b25lIHdhbnRzIHRvIGRvIGEgcG9ydD8KKysJOzsKKysgICAgICBpcml4NSogfCBpcml4Niog fCBub25zdG9wdXgqKQorKwljYXNlICRjY19iYXNlbmFtZSBpbgorKwkgIENDKikKKysJICAgIF9M VF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl93bCwgJDEpPSctV2wsJworKwkgICAgX0xUX1RBR1ZB UihsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYywgJDEpPSctbm9uX3NoYXJlZCcKKysJICAgICMgQ0Mg cGljIGZsYWcgLUtQSUMgaXMgdGhlIGRlZmF1bHQuCisrCSAgICA7OworKwkgICopCisrCSAgICA7 OworKwllc2FjCisrCTs7CisrICAgICAgbGludXgqIHwgaypic2QqLWdudSkKKysJY2FzZSAkY2Nf YmFzZW5hbWUgaW4KKysJICBLQ0MqKQorKwkgICAgIyBLQUkgQysrIENvbXBpbGVyCisrCSAgICBf TFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfd2wsICQxKT0nLS1iYWNrZW5kIC1XbCwnCisrCSAg ICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9Jy1mUElDJworKwkgICAgOzsK KysJICBlY3BjKiApCisrCSAgICAjIG9sZCBJbnRlbCBDKysgZm9yIHg4Nl82NCB3aGljaCBzdGls bCBzdXBwb3J0ZWQgLUtQSUMuCisrCSAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfd2ws ICQxKT0nLVdsLCcKKysJICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0n LUtQSUMnCisrCSAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfc3RhdGljLCAkMSk9Jy1z dGF0aWMnCisrCSAgICA7OworKwkgIGljcGMqICkKKysJICAgICMgSW50ZWwgQysrLCB1c2VkIHRv IGJlIGluY29tcGF0aWJsZSB3aXRoIEdDQy4KKysJICAgICMgSUNDIDEwIGRvZXNuJ3QgYWNjZXB0 IC1LUElDIGFueSBtb3JlLgorKwkgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3dsLCAk MSk9Jy1XbCwnCisrCSAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9Jy1m UElDJworKwkgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYywgJDEpPSctc3Rh dGljJworKwkgICAgOzsKKysJICBwZ0NDKiB8IHBnY3BwKikKKysJICAgICMgUG9ydGxhbmQgR3Jv dXAgQysrIGNvbXBpbGVyCisrCSAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfd2wsICQx KT0nLVdsLCcKKysJICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0nLWZw aWMnCisrCSAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfc3RhdGljLCAkMSk9Jy1Cc3Rh dGljJworKwkgICAgOzsKKysJICBjeHgqKQorKwkgICAgIyBDb21wYXEgQysrCisrCSAgICAjIE1h a2Ugc3VyZSB0aGUgUElDIGZsYWcgaXMgZW1wdHkuICBJdCBhcHBlYXJzIHRoYXQgYWxsIEFscGhh CisrCSAgICAjIExpbnV4IGFuZCBDb21wYXEgVHJ1NjQgVW5peCBvYmplY3RzIGFyZSBQSUMuCisr CSAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9CisrCSAgICBfTFRfVEFH VkFSKGx0X3Byb2dfY29tcGlsZXJfc3RhdGljLCAkMSk9Jy1ub25fc2hhcmVkJworKwkgICAgOzsK KysJICB4bGMqIHwgeGxDKikKKysJICAgICMgSUJNIFhMIDguMCBvbiBQUEMKKysJICAgIF9MVF9U QUdWQVIobHRfcHJvZ19jb21waWxlcl93bCwgJDEpPSctV2wsJworKwkgICAgX0xUX1RBR1ZBUihs dF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPSctcXBpYycKKysJICAgIF9MVF9UQUdWQVIobHRfcHJv Z19jb21waWxlcl9zdGF0aWMsICQxKT0nLXFzdGF0aWNsaW5rJworKwkgICAgOzsKKysJICAqKQor KwkgICAgY2FzZSBgJENDIC1WIDI+JjEgfCBzZWQgNXFgIGluCisrCSAgICAqU3VuXCBDKikKKysJ ICAgICAgIyBTdW4gQysrIDUuOQorKwkgICAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJf cGljLCAkMSk9Jy1LUElDJworKwkgICAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfc3Rh dGljLCAkMSk9Jy1Cc3RhdGljJworKwkgICAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJf d2wsICQxKT0nLVFvcHRpb24gbGQgJworKwkgICAgICA7OworKwkgICAgZXNhYworKwkgICAgOzsK KysJZXNhYworKwk7OworKyAgICAgIGx5bnhvcyopCisrCTs7CisrICAgICAgbTg4ayopCisrCTs7 CisrICAgICAgbXZzKikKKysJY2FzZSAkY2NfYmFzZW5hbWUgaW4KKysJICBjeHgqKQorKwkgICAg X0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPSctVyBjLGV4cG9ydGFsbCcKKysJ ICAgIDs7CisrCSAgKikKKysJICAgIDs7CisrCWVzYWMKKysJOzsKKysgICAgICBuZXRic2QqKQor Kwk7OworKyAgICAgICpxbngqIHwgKm50byopCisrICAgICAgICAjIFFOWCB1c2VzIEdOVSBDKyss IGJ1dCBuZWVkIHRvIGRlZmluZSAtc2hhcmVkIG9wdGlvbiB0b28sIG90aGVyd2lzZQorKyAgICAg ICAgIyBpdCB3aWxsIGNvcmVkdW1wLgorKyAgICAgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBp bGVyX3BpYywgJDEpPSctZlBJQyAtc2hhcmVkJworKyAgICAgICAgOzsKKysgICAgICBvc2YzKiB8 IG9zZjQqIHwgb3NmNSopCisrCWNhc2UgJGNjX2Jhc2VuYW1lIGluCisrCSAgS0NDKikKKysJICAg IF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl93bCwgJDEpPSctLWJhY2tlbmQgLVdsLCcKKysJ ICAgIDs7CisrCSAgUkNDKikKKysJICAgICMgUmF0aW9uYWwgQysrIDIuNC4xCisrCSAgICBfTFRf VEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9Jy1waWMnCisrCSAgICA7OworKwkgIGN4 eCopCisrCSAgICAjIERpZ2l0YWwvQ29tcGFxIEMrKworKwkgICAgX0xUX1RBR1ZBUihsdF9wcm9n X2NvbXBpbGVyX3dsLCAkMSk9Jy1XbCwnCisrCSAgICAjIE1ha2Ugc3VyZSB0aGUgUElDIGZsYWcg aXMgZW1wdHkuICBJdCBhcHBlYXJzIHRoYXQgYWxsIEFscGhhCisrCSAgICAjIExpbnV4IGFuZCBD b21wYXEgVHJ1NjQgVW5peCBvYmplY3RzIGFyZSBQSUMuCisrCSAgICBfTFRfVEFHVkFSKGx0X3By b2dfY29tcGlsZXJfcGljLCAkMSk9CisrCSAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJf c3RhdGljLCAkMSk9Jy1ub25fc2hhcmVkJworKwkgICAgOzsKKysJICAqKQorKwkgICAgOzsKKysJ ZXNhYworKwk7OworKyAgICAgIHBzb3MqKQorKwk7OworKyAgICAgIHNvbGFyaXMqKQorKwljYXNl ICRjY19iYXNlbmFtZSBpbgorKwkgIENDKikKKysJICAgICMgU3VuIEMrKyA0LjIsIDUueCBhbmQg Q2VudGVybGluZSBDKysKKysJICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQx KT0nLUtQSUMnCisrCSAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfc3RhdGljLCAkMSk9 Jy1Cc3RhdGljJworKwkgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3dsLCAkMSk9Jy1R b3B0aW9uIGxkICcKKysJICAgIDs7CisrCSAgZ2N4KikKKysJICAgICMgR3JlZW4gSGlsbHMgQysr IENvbXBpbGVyCisrCSAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9Jy1Q SUMnCisrCSAgICA7OworKwkgICopCisrCSAgICA7OworKwllc2FjCisrCTs7CisrICAgICAgc3Vu b3M0KikKKysJY2FzZSAkY2NfYmFzZW5hbWUgaW4KKysJICBDQyopCisrCSAgICAjIFN1biBDKysg NC54CisrCSAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9Jy1waWMnCisr CSAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfc3RhdGljLCAkMSk9Jy1Cc3RhdGljJwor KwkgICAgOzsKKysJICBsY2MqKQorKwkgICAgIyBMdWNpZAorKwkgICAgX0xUX1RBR1ZBUihsdF9w cm9nX2NvbXBpbGVyX3BpYywgJDEpPSctcGljJworKwkgICAgOzsKKysJICAqKQorKwkgICAgOzsK KysJZXNhYworKwk7OworKyAgICAgIHN5c3Y1KiB8IHVuaXh3YXJlKiB8IHNjbzMuMnY1KiB8IHNj bzV2NiogfCBPcGVuVU5JWCopCisrCWNhc2UgJGNjX2Jhc2VuYW1lIGluCisrCSAgQ0MqKQorKwkg ICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3dsLCAkMSk9Jy1XbCwnCisrCSAgICBfTFRf VEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9Jy1LUElDJworKwkgICAgX0xUX1RBR1ZB UihsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYywgJDEpPSctQnN0YXRpYycKKysJICAgIDs7CisrCWVz YWMKKysJOzsKKysgICAgICB0YW5kZW0qKQorKwljYXNlICRjY19iYXNlbmFtZSBpbgorKwkgIE5D QyopCisrCSAgICAjIE5vblN0b3AtVVggTkNDIDMuMjAKKysJICAgIF9MVF9UQUdWQVIobHRfcHJv Z19jb21waWxlcl9waWMsICQxKT0nLUtQSUMnCisrCSAgICA7OworKwkgICopCisrCSAgICA7Owor Kwllc2FjCisrCTs7CisrICAgICAgdnh3b3JrcyopCisrCTs7CisrICAgICAgKikKKysJX0xUX1RB R1ZBUihsdF9wcm9nX2NvbXBpbGVyX2Nhbl9idWlsZF9zaGFyZWQsICQxKT1ubworKwk7OworKyAg ICBlc2FjCisrICBmaQorK10sCisrWworKyAgaWYgdGVzdCAiJEdDQyIgPSB5ZXM7IHRoZW4KKysg ICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3dsLCAkMSk9Jy1XbCwnCisrICAgIF9MVF9U QUdWQVIobHRfcHJvZ19jb21waWxlcl9zdGF0aWMsICQxKT0nLXN0YXRpYycKKysKKysgICAgY2Fz ZSAkaG9zdF9vcyBpbgorKyAgICAgIGFpeCopCisrICAgICAgIyBBbGwgQUlYIGNvZGUgaXMgUElD LgorKyAgICAgIGlmIHRlc3QgIiRob3N0X2NwdSIgPSBpYTY0OyB0aGVuCisrCSMgQUlYIDUgbm93 IHN1cHBvcnRzIElBNjQgcHJvY2Vzc29yCisrCV9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9z dGF0aWMsICQxKT0nLUJzdGF0aWMnCisrICAgICAgZmkKKysgICAgICA7OworKworKyAgICBhbWln YW9zKikKKysgICAgICBjYXNlICRob3N0X2NwdSBpbgorKyAgICAgIHBvd2VycGMpCisrICAgICAg ICAgICAgIyBzZWUgY29tbWVudCBhYm91dCBBbWlnYU9TNCAuc28gc3VwcG9ydAorKyAgICAgICAg ICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0nLWZQSUMnCisrICAgICAg ICA7OworKyAgICAgIG02OGspCisrICAgICAgICAgICAgIyBGSVhNRTogd2UgbmVlZCBhdCBsZWFz dCA2ODAyMCBjb2RlIHRvIGJ1aWxkIHNoYXJlZCBsaWJyYXJpZXMsIGJ1dAorKyAgICAgICAgICAg ICMgYWRkaW5nIHRoZSBgLW02ODAyMCcgZmxhZyB0byBHQ0MgcHJldmVudHMgYnVpbGRpbmcgYW55 dGhpbmcgYmV0dGVyLAorKyAgICAgICAgICAgICMgbGlrZSBgLW02ODA0MCcuCisrICAgICAgICAg ICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPSctbTY4MDIwIC1yZXNpZGVu dDMyIC1tYWx3YXlzLXJlc3RvcmUtYTQnCisrICAgICAgICA7OworKyAgICAgIGVzYWMKKysgICAg ICA7OworKworKyAgICBiZW9zKiB8IGlyaXg1KiB8IGlyaXg2KiB8IG5vbnN0b3B1eCogfCBvc2Yz KiB8IG9zZjQqIHwgb3NmNSopCisrICAgICAgIyBQSUMgaXMgdGhlIGRlZmF1bHQgZm9yIHRoZXNl IE9TZXMuCisrICAgICAgOzsKKysKKysgICAgbWluZ3cqIHwgY3lnd2luKiB8IHB3MzIqIHwgb3My KiB8IGNlZ2NjKikKKysgICAgICAjIFRoaXMgaGFjayBpcyBzbyB0aGF0IHRoZSBzb3VyY2UgZmls ZSBjYW4gdGVsbCB3aGV0aGVyIGl0IGlzIGJlaW5nCisrICAgICAgIyBidWlsdCBmb3IgaW5jbHVz aW9uIGluIGEgZGxsIChhbmQgc2hvdWxkIGV4cG9ydCBzeW1ib2xzIGZvciBleGFtcGxlKS4KKysg ICAgICAjIEFsdGhvdWdoIHRoZSBjeWd3aW4gZ2NjIGlnbm9yZXMgLWZQSUMsIHN0aWxsIG5lZWQg dGhpcyBmb3Igb2xkLXN0eWxlCisrICAgICAgIyAoLS1kaXNhYmxlLWF1dG8taW1wb3J0KSBsaWJy YXJpZXMKKysgICAgICBtNF9pZihbJDFdLCBbR0NKXSwgW10sCisrCVtfTFRfVEFHVkFSKGx0X3By b2dfY29tcGlsZXJfcGljLCAkMSk9Jy1ERExMX0VYUE9SVCddKQorKyAgICAgIDs7CisrCisrICAg IGRhcndpbiogfCByaGFwc29keSopCisrICAgICAgIyBQSUMgaXMgdGhlIGRlZmF1bHQgb24gdGhp cyBwbGF0Zm9ybQorKyAgICAgICMgQ29tbW9uIHN5bWJvbHMgbm90IGFsbG93ZWQgaW4gTUhfRFlM SUIgZmlsZXMKKysgICAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9Jy1m bm8tY29tbW9uJworKyAgICAgIDs7CisrCisrICAgIGhwdXgqKQorKyAgICAgICMgUElDIGlzIHRo ZSBkZWZhdWx0IGZvciA2NC1iaXQgUEEgSFAtVVgsIGJ1dCBub3QgZm9yIDMyLWJpdAorKyAgICAg ICMgUEEgSFAtVVguICBPbiBJQTY0IEhQLVVYLCBQSUMgaXMgdGhlIGRlZmF1bHQgYnV0IHRoZSBw aWMgZmxhZworKyAgICAgICMgc2V0cyB0aGUgZGVmYXVsdCBUTFMgbW9kZWwgYW5kIGFmZmVjdHMg aW5saW5pbmcuCisrICAgICAgY2FzZSAkaG9zdF9jcHUgaW4KKysgICAgICBocHBhKjY0KikKKysJ IyArWiB0aGUgZGVmYXVsdAorKwk7OworKyAgICAgICopCisrCV9MVF9UQUdWQVIobHRfcHJvZ19j b21waWxlcl9waWMsICQxKT0nLWZQSUMnCisrCTs7CisrICAgICAgZXNhYworKyAgICAgIDs7Cisr CisrICAgIGludGVyaXhbWzMtOV1dKikKKysgICAgICAjIEludGVyaXggMy54IGdjYyAtZnBpYy8t ZlBJQyBvcHRpb25zIGdlbmVyYXRlIGJyb2tlbiBjb2RlLgorKyAgICAgICMgSW5zdGVhZCwgd2Ug cmVsb2NhdGUgc2hhcmVkIGxpYnJhcmllcyBhdCBydW50aW1lLgorKyAgICAgIDs7CisrCisrICAg IG1zZG9zZGpncHAqKQorKyAgICAgICMgSnVzdCBiZWNhdXNlIHdlIHVzZSBHQ0MgZG9lc24ndCBt ZWFuIHdlIHN1ZGRlbmx5IGdldCBzaGFyZWQgbGlicmFyaWVzCisrICAgICAgIyBvbiBzeXN0ZW1z IHRoYXQgZG9uJ3Qgc3VwcG9ydCB0aGVtLgorKyAgICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21w aWxlcl9jYW5fYnVpbGRfc2hhcmVkLCAkMSk9bm8KKysgICAgICBlbmFibGVfc2hhcmVkPW5vCisr ICAgICAgOzsKKysKKysgICAgKm50byogfCAqcW54KikKKysgICAgICAjIFFOWCB1c2VzIEdOVSBD KyssIGJ1dCBuZWVkIHRvIGRlZmluZSAtc2hhcmVkIG9wdGlvbiB0b28sIG90aGVyd2lzZQorKyAg ICAgICMgaXQgd2lsbCBjb3JlZHVtcC4KKysgICAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGls ZXJfcGljLCAkMSk9Jy1mUElDIC1zaGFyZWQnCisrICAgICAgOzsKKysKKysgICAgc3lzdjQqTVAq KQorKyAgICAgIGlmIHRlc3QgLWQgL3Vzci9uZWM7IHRoZW4KKysJX0xUX1RBR1ZBUihsdF9wcm9n X2NvbXBpbGVyX3BpYywgJDEpPS1LY29uZm9ybV9waWMKKysgICAgICBmaQorKyAgICAgIDs7Cisr CisrICAgICopCisrICAgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPSct ZlBJQycKKysgICAgICA7OworKyAgICBlc2FjCisrICBlbHNlCisrICAgICMgUE9SVE1FIENoZWNr IGZvciBmbGFnIHRvIHBhc3MgbGlua2VyIGZsYWdzIHRocm91Z2ggdGhlIHN5c3RlbSBjb21waWxl ci4KKysgICAgY2FzZSAkaG9zdF9vcyBpbgorKyAgICBhaXgqKQorKyAgICAgIF9MVF9UQUdWQVIo bHRfcHJvZ19jb21waWxlcl93bCwgJDEpPSctV2wsJworKyAgICAgIGlmIHRlc3QgIiRob3N0X2Nw dSIgPSBpYTY0OyB0aGVuCisrCSMgQUlYIDUgbm93IHN1cHBvcnRzIElBNjQgcHJvY2Vzc29yCisr CV9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9zdGF0aWMsICQxKT0nLUJzdGF0aWMnCisrICAg ICAgZWxzZQorKwlfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfc3RhdGljLCAkMSk9Jy1ibnNv IC1iSTovbGliL3N5c2NhbGxzLmV4cCcKKysgICAgICBmaQorKyAgICAgIDs7CisrCisrICAgIG1p bmd3KiB8IGN5Z3dpbiogfCBwdzMyKiB8IG9zMiogfCBjZWdjYyopCisrICAgICAgIyBUaGlzIGhh Y2sgaXMgc28gdGhhdCB0aGUgc291cmNlIGZpbGUgY2FuIHRlbGwgd2hldGhlciBpdCBpcyBiZWlu ZworKyAgICAgICMgYnVpbHQgZm9yIGluY2x1c2lvbiBpbiBhIGRsbCAoYW5kIHNob3VsZCBleHBv cnQgc3ltYm9scyBmb3IgZXhhbXBsZSkuCisrICAgICAgbTRfaWYoWyQxXSwgW0dDSl0sIFtdLAor KwlbX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPSctRERMTF9FWFBPUlQnXSkK KysgICAgICA7OworKworKyAgICBocHV4OSogfCBocHV4MTAqIHwgaHB1eDExKikKKysgICAgICBf TFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfd2wsICQxKT0nLVdsLCcKKysgICAgICAjIFBJQyBp cyB0aGUgZGVmYXVsdCBmb3IgSUE2NCBIUC1VWCBhbmQgNjQtYml0IEhQLVVYLCBidXQKKysgICAg ICAjIG5vdCBmb3IgUEEgSFAtVVguCisrICAgICAgY2FzZSAkaG9zdF9jcHUgaW4KKysgICAgICBo cHBhKjY0KnxpYTY0KikKKysJIyArWiB0aGUgZGVmYXVsdAorKwk7OworKyAgICAgICopCisrCV9M VF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0nK1onCisrCTs7CisrICAgICAgZXNh YworKyAgICAgICMgSXMgdGhlcmUgYSBiZXR0ZXIgbHRfcHJvZ19jb21waWxlcl9zdGF0aWMgdGhh dCB3b3JrcyB3aXRoIHRoZSBidW5kbGVkIENDPworKyAgICAgIF9MVF9UQUdWQVIobHRfcHJvZ19j b21waWxlcl9zdGF0aWMsICQxKT0nJHt3bH0tYSAke3dsfWFyY2hpdmUnCisrICAgICAgOzsKKysK KysgICAgaXJpeDUqIHwgaXJpeDYqIHwgbm9uc3RvcHV4KikKKysgICAgICBfTFRfVEFHVkFSKGx0 X3Byb2dfY29tcGlsZXJfd2wsICQxKT0nLVdsLCcKKysgICAgICAjIFBJQyAod2l0aCAtS1BJQykg aXMgdGhlIGRlZmF1bHQuCisrICAgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3N0YXRp YywgJDEpPSctbm9uX3NoYXJlZCcKKysgICAgICA7OworKworKyAgICBsaW51eCogfCBrKmJzZCot Z251KQorKyAgICAgIGNhc2UgJGNjX2Jhc2VuYW1lIGluCisrICAgICAgIyBvbGQgSW50ZWwgZm9y IHg4Nl82NCB3aGljaCBzdGlsbCBzdXBwb3J0ZWQgLUtQSUMuCisrICAgICAgZWNjKikKKysJX0xU X1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3dsLCAkMSk9Jy1XbCwnCisrCV9MVF9UQUdWQVIobHRf cHJvZ19jb21waWxlcl9waWMsICQxKT0nLUtQSUMnCisrCV9MVF9UQUdWQVIobHRfcHJvZ19jb21w aWxlcl9zdGF0aWMsICQxKT0nLXN0YXRpYycKKysgICAgICAgIDs7CisrICAgICAgIyBpY2MgdXNl ZCB0byBiZSBpbmNvbXBhdGlibGUgd2l0aCBHQ0MuCisrICAgICAgIyBJQ0MgMTAgZG9lc24ndCBh Y2NlcHQgLUtQSUMgYW55IG1vcmUuCisrICAgICAgaWNjKiB8IGlmb3J0KikKKysJX0xUX1RBR1ZB UihsdF9wcm9nX2NvbXBpbGVyX3dsLCAkMSk9Jy1XbCwnCisrCV9MVF9UQUdWQVIobHRfcHJvZ19j b21waWxlcl9waWMsICQxKT0nLWZQSUMnCisrCV9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9z dGF0aWMsICQxKT0nLXN0YXRpYycKKysgICAgICAgIDs7CisrICAgICAgIyBMYWhleSBGb3J0cmFu IDguMS4KKysgICAgICBsZjk1KikKKysJX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3dsLCAk MSk9Jy1XbCwnCisrCV9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0nLS1zaGFy ZWQnCisrCV9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9zdGF0aWMsICQxKT0nLS1zdGF0aWMn CisrCTs7CisrICAgICAgcGdjYyogfCBwZ2Y3NyogfCBwZ2Y5MCogfCBwZ2Y5NSopCisrICAgICAg ICAjIFBvcnRsYW5kIEdyb3VwIGNvbXBpbGVycyAoKm5vdCogdGhlIFBlbnRpdW0gZ2NjIGNvbXBp bGVyLAorKwkjIHdoaWNoIGxvb2tzIHRvIGJlIGEgZGVhZCBwcm9qZWN0KQorKwlfTFRfVEFHVkFS KGx0X3Byb2dfY29tcGlsZXJfd2wsICQxKT0nLVdsLCcKKysJX0xUX1RBR1ZBUihsdF9wcm9nX2Nv bXBpbGVyX3BpYywgJDEpPSctZnBpYycKKysJX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3N0 YXRpYywgJDEpPSctQnN0YXRpYycKKysgICAgICAgIDs7CisrICAgICAgY2NjKikKKysgICAgICAg IF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl93bCwgJDEpPSctV2wsJworKyAgICAgICAgIyBB bGwgQWxwaGEgY29kZSBpcyBQSUMuCisrICAgICAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGls ZXJfc3RhdGljLCAkMSk9Jy1ub25fc2hhcmVkJworKyAgICAgICAgOzsKKysgICAgICB4bCopCisr CSMgSUJNIFhMIEMgOC4wL0ZvcnRyYW4gMTAuMSBvbiBQUEMKKysJX0xUX1RBR1ZBUihsdF9wcm9n X2NvbXBpbGVyX3dsLCAkMSk9Jy1XbCwnCisrCV9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9w aWMsICQxKT0nLXFwaWMnCisrCV9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9zdGF0aWMsICQx KT0nLXFzdGF0aWNsaW5rJworKwk7OworKyAgICAgICopCisrCWNhc2UgYCRDQyAtViAyPiYxIHwg c2VkIDVxYCBpbgorKwkqU3VuXCBDKikKKysJICAjIFN1biBDIDUuOQorKwkgIF9MVF9UQUdWQVIo bHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0nLUtQSUMnCisrCSAgX0xUX1RBR1ZBUihsdF9wcm9n X2NvbXBpbGVyX3N0YXRpYywgJDEpPSctQnN0YXRpYycKKysJICBfTFRfVEFHVkFSKGx0X3Byb2df Y29tcGlsZXJfd2wsICQxKT0nLVdsLCcKKysJICA7OworKwkqU3VuXCBGKikKKysJICAjIFN1biBG b3J0cmFuIDguMyBwYXNzZXMgYWxsIHVucmVjb2duaXplZCBmbGFncyB0byB0aGUgbGlua2VyCisr CSAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPSctS1BJQycKKysJICBfTFRf VEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfc3RhdGljLCAkMSk9Jy1Cc3RhdGljJworKwkgIF9MVF9U QUdWQVIobHRfcHJvZ19jb21waWxlcl93bCwgJDEpPScnCisrCSAgOzsKKysJZXNhYworKwk7Owor KyAgICAgIGVzYWMKKysgICAgICA7OworKworKyAgICBuZXdzb3M2KQorKyAgICAgIF9MVF9UQUdW QVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0nLUtQSUMnCisrICAgICAgX0xUX1RBR1ZBUihs dF9wcm9nX2NvbXBpbGVyX3N0YXRpYywgJDEpPSctQnN0YXRpYycKKysgICAgICA7OworKworKyAg ICAqbnRvKiB8ICpxbngqKQorKyAgICAgICMgUU5YIHVzZXMgR05VIEMrKywgYnV0IG5lZWQgdG8g ZGVmaW5lIC1zaGFyZWQgb3B0aW9uIHRvbywgb3RoZXJ3aXNlCisrICAgICAgIyBpdCB3aWxsIGNv cmVkdW1wLgorKyAgICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0nLWZQ SUMgLXNoYXJlZCcKKysgICAgICA7OworKworKyAgICBvc2YzKiB8IG9zZjQqIHwgb3NmNSopCisr ICAgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3dsLCAkMSk9Jy1XbCwnCisrICAgICAg IyBBbGwgT1NGLzEgY29kZSBpcyBQSUMuCisrICAgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBp bGVyX3N0YXRpYywgJDEpPSctbm9uX3NoYXJlZCcKKysgICAgICA7OworKworKyAgICByZG9zKikK KysgICAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfc3RhdGljLCAkMSk9Jy1ub25fc2hh cmVkJworKyAgICAgIDs7CisrCisrICAgIHNvbGFyaXMqKQorKyAgICAgIF9MVF9UQUdWQVIobHRf cHJvZ19jb21waWxlcl9waWMsICQxKT0nLUtQSUMnCisrICAgICAgX0xUX1RBR1ZBUihsdF9wcm9n X2NvbXBpbGVyX3N0YXRpYywgJDEpPSctQnN0YXRpYycKKysgICAgICBjYXNlICRjY19iYXNlbmFt ZSBpbgorKyAgICAgIGY3NyogfCBmOTAqIHwgZjk1KikKKysJX0xUX1RBR1ZBUihsdF9wcm9nX2Nv bXBpbGVyX3dsLCAkMSk9Jy1Rb3B0aW9uIGxkICc7OworKyAgICAgICopCisrCV9MVF9UQUdWQVIo bHRfcHJvZ19jb21waWxlcl93bCwgJDEpPSctV2wsJzs7CisrICAgICAgZXNhYworKyAgICAgIDs7 CisrCisrICAgIHN1bm9zNCopCisrICAgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3ds LCAkMSk9Jy1Rb3B0aW9uIGxkICcKKysgICAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJf cGljLCAkMSk9Jy1QSUMnCisrICAgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3N0YXRp YywgJDEpPSctQnN0YXRpYycKKysgICAgICA7OworKworKyAgICBzeXN2NCB8IHN5c3Y0LjJ1dzIq IHwgc3lzdjQuMyopCisrICAgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3dsLCAkMSk9 Jy1XbCwnCisrICAgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPSctS1BJ QycKKysgICAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfc3RhdGljLCAkMSk9Jy1Cc3Rh dGljJworKyAgICAgIDs7CisrCisrICAgIHN5c3Y0Kk1QKikKKysgICAgICBpZiB0ZXN0IC1kIC91 c3IvbmVjIDt0aGVuCisrCV9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0nLUtj b25mb3JtX3BpYycKKysJX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYywgJDEpPSct QnN0YXRpYycKKysgICAgICBmaQorKyAgICAgIDs7CisrCisrICAgIHN5c3Y1KiB8IHVuaXh3YXJl KiB8IHNjbzMuMnY1KiB8IHNjbzV2NiogfCBPcGVuVU5JWCopCisrICAgICAgX0xUX1RBR1ZBUihs dF9wcm9nX2NvbXBpbGVyX3dsLCAkMSk9Jy1XbCwnCisrICAgICAgX0xUX1RBR1ZBUihsdF9wcm9n X2NvbXBpbGVyX3BpYywgJDEpPSctS1BJQycKKysgICAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29t cGlsZXJfc3RhdGljLCAkMSk9Jy1Cc3RhdGljJworKyAgICAgIDs7CisrCisrICAgIHVuaWNvcyop CisrICAgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3dsLCAkMSk9Jy1XbCwnCisrICAg ICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX2Nhbl9idWlsZF9zaGFyZWQsICQxKT1ubwor KyAgICAgIDs7CisrCisrICAgIHV0czQqKQorKyAgICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21w aWxlcl9waWMsICQxKT0nLXBpYycKKysgICAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJf c3RhdGljLCAkMSk9Jy1Cc3RhdGljJworKyAgICAgIDs7CisrCisrICAgICopCisrICAgICAgX0xU X1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX2Nhbl9idWlsZF9zaGFyZWQsICQxKT1ubworKyAgICAg IDs7CisrICAgIGVzYWMKKysgIGZpCisrXSkKKytjYXNlICRob3N0X29zIGluCisrICAjIEZvciBw bGF0Zm9ybXMgd2hpY2ggZG8gbm90IHN1cHBvcnQgUElDLCAtRFBJQyBpcyBtZWFuaW5nbGVzczoK KysgICpkamdwcCopCisrICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0K KysgICAgOzsKKysgICopCisrICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQx KT0iJF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKUAmdEBtNF9pZihbJDFdLFtd LFsgLURQSUNdLFttNF9pZihbJDFdLFtDWFhdLFsgLURQSUNdLFtdKV0pIgorKyAgICA7OworK2Vz YWMKKytBQ19NU0dfUkVTVUxUKFskX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEp XSkKKytfTFRfVEFHREVDTChbd2xdLCBbbHRfcHJvZ19jb21waWxlcl93bF0sIFsxXSwKKysJW0hv dyB0byBwYXNzIGEgbGlua2VyIGZsYWcgdGhyb3VnaCB0aGUgY29tcGlsZXJdKQorKworKyMKKysj IENoZWNrIHRvIG1ha2Ugc3VyZSB0aGUgUElDIGZsYWcgYWN0dWFsbHkgd29ya3MuCisrIworK2lm IHRlc3QgLW4gIiRfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSkiOyB0aGVuCisr ICBfTFRfQ09NUElMRVJfT1BUSU9OKFtpZiAkY29tcGlsZXIgUElDIGZsYWcgJF9MVF9UQUdWQVIo bHRfcHJvZ19jb21waWxlcl9waWMsICQxKSB3b3Jrc10sCisrICAgIFtfTFRfVEFHVkFSKGx0X2N2 X3Byb2dfY29tcGlsZXJfcGljX3dvcmtzLCAkMSldLAorKyAgICBbJF9MVF9UQUdWQVIobHRfcHJv Z19jb21waWxlcl9waWMsICQxKUAmdEBtNF9pZihbJDFdLFtdLFsgLURQSUNdLFttNF9pZihbJDFd LFtDWFhdLFsgLURQSUNdLFtdKV0pXSwgW10sCisrICAgIFtjYXNlICRfTFRfVEFHVkFSKGx0X3By b2dfY29tcGlsZXJfcGljLCAkMSkgaW4KKysgICAgICIiIHwgIiAiKikgOzsKKysgICAgICopIF9M VF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0iICRfTFRfVEFHVkFSKGx0X3Byb2df Y29tcGlsZXJfcGljLCAkMSkiIDs7CisrICAgICBlc2FjXSwKKysgICAgW19MVF9UQUdWQVIobHRf cHJvZ19jb21waWxlcl9waWMsICQxKT0KKysgICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxl cl9jYW5fYnVpbGRfc2hhcmVkLCAkMSk9bm9dKQorK2ZpCisrX0xUX1RBR0RFQ0woW3BpY19mbGFn XSwgW2x0X3Byb2dfY29tcGlsZXJfcGljXSwgWzFdLAorKwlbQWRkaXRpb25hbCBjb21waWxlciBm bGFncyBmb3IgYnVpbGRpbmcgbGlicmFyeSBvYmplY3RzXSkKKysKKysjCisrIyBDaGVjayB0byBt YWtlIHN1cmUgdGhlIHN0YXRpYyBmbGFnIGFjdHVhbGx5IHdvcmtzLgorKyMKKyt3bD0kX0xUX1RB R1ZBUihsdF9wcm9nX2NvbXBpbGVyX3dsLCAkMSkgZXZhbCBsdF90bXBfc3RhdGljX2ZsYWc9XCIk X0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYywgJDEpXCIKKytfTFRfTElOS0VSX09Q VElPTihbaWYgJGNvbXBpbGVyIHN0YXRpYyBmbGFnICRsdF90bXBfc3RhdGljX2ZsYWcgd29ya3Nd LAorKyAgX0xUX1RBR1ZBUihsdF9jdl9wcm9nX2NvbXBpbGVyX3N0YXRpY193b3JrcywgJDEpLAor KyAgJGx0X3RtcF9zdGF0aWNfZmxhZywKKysgIFtdLAorKyAgW19MVF9UQUdWQVIobHRfcHJvZ19j b21waWxlcl9zdGF0aWMsICQxKT1dKQorK19MVF9UQUdERUNMKFtsaW5rX3N0YXRpY19mbGFnXSwg W2x0X3Byb2dfY29tcGlsZXJfc3RhdGljXSwgWzFdLAorKwlbQ29tcGlsZXIgZmxhZyB0byBwcmV2 ZW50IGR5bmFtaWMgbGlua2luZ10pCisrXSkjIF9MVF9DT01QSUxFUl9QSUMKKysKKysKKysjIF9M VF9MSU5LRVJfU0hMSUJTKFtUQUdOQU1FXSkKKysjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KKysjIFNlZSBpZiB0aGUgbGlua2VyIHN1cHBvcnRzIGJ1aWxkaW5nIHNoYXJlZCBsaWJyYXJp ZXMuCisrbTRfZGVmdW4oW19MVF9MSU5LRVJfU0hMSUJTXSwKKytbQUNfUkVRVUlSRShbTFRfUEFU SF9MRF0pZG5sCisrQUNfUkVRVUlSRShbTFRfUEFUSF9OTV0pZG5sCisrbTRfcmVxdWlyZShbX0xU X0ZJTEVVVElMU19ERUZBVUxUU10pZG5sCisrbTRfcmVxdWlyZShbX0xUX0RFQ0xfRUdSRVBdKWRu bAorK200X3JlcXVpcmUoW19MVF9ERUNMX1NFRF0pZG5sCisrbTRfcmVxdWlyZShbX0xUX0NNRF9H TE9CQUxfU1lNQk9MU10pZG5sCisrbTRfcmVxdWlyZShbX0xUX1RBR19DT01QSUxFUl0pZG5sCisr QUNfTVNHX0NIRUNLSU5HKFt3aGV0aGVyIHRoZSAkY29tcGlsZXIgbGlua2VyICgkTEQpIHN1cHBv cnRzIHNoYXJlZCBsaWJyYXJpZXNdKQorK200X2lmKFskMV0sIFtDWFhdLCBbCisrICBfTFRfVEFH VkFSKGV4cG9ydF9zeW1ib2xzX2NtZHMsICQxKT0nJE5NICRsaWJvYmpzICRjb252ZW5pZW5jZSB8 ICRnbG9iYWxfc3ltYm9sX3BpcGUgfCAkU0VEICdcJydzLy4qIC8vJ1wnJyB8IHNvcnQgfCB1bmlx ID4gJGV4cG9ydF9zeW1ib2xzJworKyAgY2FzZSAkaG9zdF9vcyBpbgorKyAgYWl4W1s0LTldXSop CisrICAgICMgSWYgd2UncmUgdXNpbmcgR05VIG5tLCB0aGVuIHdlIGRvbid0IHdhbnQgdGhlICIt QyIgb3B0aW9uLgorKyAgICAjIC1DIG1lYW5zIGRlbWFuZ2xlIHRvIEFJWCBubSwgYnV0IG1lYW5z IGRvbid0IGRlbWFuZ2xlIHdpdGggR05VIG5tCisrICAgIGlmICROTSAtViAyPiYxIHwgJEdSRVAg J0dOVScgPiAvZGV2L251bGw7IHRoZW4KKysgICAgICBfTFRfVEFHVkFSKGV4cG9ydF9zeW1ib2xz X2NtZHMsICQxKT0nJE5NIC1CcGcgJGxpYm9ianMgJGNvbnZlbmllbmNlIHwgYXdrICdcJyd7IGlm ICgoKFwkIDIgPT0gIlQiKSB8fCAoXCQgMiA9PSAiRCIpIHx8IChcJCAyID09ICJCIikpICYmIChb c3Vic3RyXShcJCAzLDEsMSkgIT0gIi4iKSkgeyBwcmludCBcJCAzIH0gfSdcJycgfCBzb3J0IC11 ID4gJGV4cG9ydF9zeW1ib2xzJworKyAgICBlbHNlCisrICAgICAgX0xUX1RBR1ZBUihleHBvcnRf c3ltYm9sc19jbWRzLCAkMSk9JyROTSAtQkNwZyAkbGlib2JqcyAkY29udmVuaWVuY2UgfCBhd2sg J1wnJ3sgaWYgKCgoXCQgMiA9PSAiVCIpIHx8IChcJCAyID09ICJEIikgfHwgKFwkIDIgPT0gIkIi KSkgJiYgKFtzdWJzdHJdKFwkIDMsMSwxKSAhPSAiLiIpKSB7IHByaW50IFwkIDMgfSB9J1wnJyB8 IHNvcnQgLXUgPiAkZXhwb3J0X3N5bWJvbHMnCisrICAgIGZpCisrICAgIDs7CisrICBwdzMyKikK KysgICAgX0xUX1RBR1ZBUihleHBvcnRfc3ltYm9sc19jbWRzLCAkMSk9IiRsdGRsbF9jbWRzIgor KyAgOzsKKysgIGN5Z3dpbiogfCBtaW5ndyogfCBjZWdjYyopCisrICAgIF9MVF9UQUdWQVIoZXhw b3J0X3N5bWJvbHNfY21kcywgJDEpPSckTk0gJGxpYm9ianMgJGNvbnZlbmllbmNlIHwgJGdsb2Jh bF9zeW1ib2xfcGlwZSB8ICRTRUQgLWUgJ1wnJy9eW1tCQ0RHUlNdXVtbIF1dL3MvLipbWyBdXVwo W1teIF1dKlwpL1wxIERBVEEvOy9eLipbWyBdXV9fbm1fXy9zL14uKltbIF1dX19ubV9fXChbW14g XV0qXClbWyBdXVtbXiBdXSovXDEgREFUQS87L15JW1sgXV0vZDsvXltbQUlUV11dW1sgXV0vcy8u KiAvLydcJycgfCBzb3J0IHwgdW5pcSA+ICRleHBvcnRfc3ltYm9scycKKysgIDs7CisrICAqKQor KyAgICBfTFRfVEFHVkFSKGV4cG9ydF9zeW1ib2xzX2NtZHMsICQxKT0nJE5NICRsaWJvYmpzICRj b252ZW5pZW5jZSB8ICRnbG9iYWxfc3ltYm9sX3BpcGUgfCAkU0VEICdcJydzLy4qIC8vJ1wnJyB8 IHNvcnQgfCB1bmlxID4gJGV4cG9ydF9zeW1ib2xzJworKyAgOzsKKysgIGVzYWMKKysgIF9MVF9U QUdWQVIoZXhjbHVkZV9leHBzeW1zLCAkMSk9WydfR0xPQkFMX09GRlNFVF9UQUJMRV98X0dMT0JB TF9fRltJRF1fLionXQorK10sIFsKKysgIHJ1bnBhdGhfdmFyPQorKyAgX0xUX1RBR1ZBUihhbGxv d191bmRlZmluZWRfZmxhZywgJDEpPQorKyAgX0xUX1RBR1ZBUihhbHdheXNfZXhwb3J0X3N5bWJv bHMsICQxKT1ubworKyAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0KKysgIF9MVF9UQUdW QVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEpPQorKyAgX0xUX1RBR1ZBUihjb21waWxlcl9uZWVk c19vYmplY3QsICQxKT1ubworKyAgX0xUX1RBR1ZBUihlbmFibGVfc2hhcmVkX3dpdGhfc3RhdGlj X3J1bnRpbWVzLCAkMSk9bm8KKysgIF9MVF9UQUdWQVIoZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVj LCAkMSk9CisrICBfTFRfVEFHVkFSKGV4cG9ydF9zeW1ib2xzX2NtZHMsICQxKT0nJE5NICRsaWJv YmpzICRjb252ZW5pZW5jZSB8ICRnbG9iYWxfc3ltYm9sX3BpcGUgfCAkU0VEICdcJydzLy4qIC8v J1wnJyB8IHNvcnQgfCB1bmlxID4gJGV4cG9ydF9zeW1ib2xzJworKyAgX0xUX1RBR1ZBUihoYXJk Y29kZV9hdXRvbWF0aWMsICQxKT1ubworKyAgX0xUX1RBR1ZBUihoYXJkY29kZV9kaXJlY3QsICQx KT1ubworKyAgX0xUX1RBR1ZBUihoYXJkY29kZV9kaXJlY3RfYWJzb2x1dGUsICQxKT1ubworKyAg X0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9CisrICBfTFRfVEFHVkFS KGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfbGQsICQxKT0KKysgIF9MVF9UQUdWQVIoaGFyZGNv ZGVfbGliZGlyX3NlcGFyYXRvciwgJDEpPQorKyAgX0xUX1RBR1ZBUihoYXJkY29kZV9taW51c19M LCAkMSk9bm8KKysgIF9MVF9UQUdWQVIoaGFyZGNvZGVfc2hsaWJwYXRoX3ZhciwgJDEpPXVuc3Vw cG9ydGVkCisrICBfTFRfVEFHVkFSKGluaGVyaXRfcnBhdGgsICQxKT1ubworKyAgX0xUX1RBR1ZB UihsaW5rX2FsbF9kZXBsaWJzLCAkMSk9dW5rbm93bgorKyAgX0xUX1RBR1ZBUihtb2R1bGVfY21k cywgJDEpPQorKyAgX0xUX1RBR1ZBUihtb2R1bGVfZXhwc3ltX2NtZHMsICQxKT0KKysgIF9MVF9U QUdWQVIob2xkX2FyY2hpdmVfZnJvbV9uZXdfY21kcywgJDEpPQorKyAgX0xUX1RBR1ZBUihvbGRf YXJjaGl2ZV9mcm9tX2V4cHN5bXNfY21kcywgJDEpPQorKyAgX0xUX1RBR1ZBUih0aHJlYWRfc2Fm ZV9mbGFnX3NwZWMsICQxKT0KKysgIF9MVF9UQUdWQVIod2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWMs ICQxKT0KKysgICMgaW5jbHVkZV9leHBzeW1zIHNob3VsZCBiZSBhIGxpc3Qgb2Ygc3BhY2Utc2Vw YXJhdGVkIHN5bWJvbHMgdG8gYmUgKmFsd2F5cyoKKysgICMgaW5jbHVkZWQgaW4gdGhlIHN5bWJv bCBsaXN0CisrICBfTFRfVEFHVkFSKGluY2x1ZGVfZXhwc3ltcywgJDEpPQorKyAgIyBleGNsdWRl X2V4cHN5bXMgY2FuIGJlIGFuIGV4dGVuZGVkIHJlZ2V4cCBvZiBzeW1ib2xzIHRvIGV4Y2x1ZGUK KysgICMgaXQgd2lsbCBiZSB3cmFwcGVkIGJ5IGAgKCcgYW5kIGApJCcsIHNvIG9uZSBtdXN0IG5v dCBtYXRjaCBiZWdpbm5pbmcgb3IKKysgICMgZW5kIG9mIGxpbmUuICBFeGFtcGxlOiBgYXxiY3wu KmQuKicgd2lsbCBleGNsdWRlIHRoZSBzeW1ib2xzIGBhJyBhbmQgYGJjJywKKysgICMgYXMgd2Vs bCBhcyBhbnkgc3ltYm9sIHRoYXQgY29udGFpbnMgYGQnLgorKyAgX0xUX1RBR1ZBUihleGNsdWRl X2V4cHN5bXMsICQxKT1bJ19HTE9CQUxfT0ZGU0VUX1RBQkxFX3xfR0xPQkFMX19GW0lEXV8uKidd CisrICAjIEFsdGhvdWdoIF9HTE9CQUxfT0ZGU0VUX1RBQkxFXyBpcyBhIHZhbGlkIHN5bWJvbCBD IG5hbWUsIG1vc3QgYS5vdXQKKysgICMgcGxhdGZvcm1zIChhYil1c2UgaXQgaW4gUElDIGNvZGUs IGJ1dCB0aGVpciBsaW5rZXJzIGdldCBjb25mdXNlZCBpZgorKyAgIyB0aGUgc3ltYm9sIGlzIGV4 cGxpY2l0bHkgcmVmZXJlbmNlZC4gIFNpbmNlIHBvcnRhYmxlIGNvZGUgY2Fubm90CisrICAjIHJl bHkgb24gdGhpcyBzeW1ib2wgbmFtZSwgaXQncyBwcm9iYWJseSBmaW5lIHRvIG5ldmVyIGluY2x1 ZGUgaXQgaW4KKysgICMgcHJlbG9hZGVkIHN5bWJvbCB0YWJsZXMuCisrICAjIEV4Y2x1ZGUgc2hh cmVkIGxpYnJhcnkgaW5pdGlhbGl6YXRpb24vZmluYWxpemF0aW9uIHN5bWJvbHMuCisrZG5sIE5v dGUgYWxzbyBhZGp1c3QgZXhjbHVkZV9leHBzeW1zIGZvciBDKysgYWJvdmUuCisrICBleHRyYWN0 X2V4cHN5bXNfY21kcz0KKysKKysgIGNhc2UgJGhvc3Rfb3MgaW4KKysgIGN5Z3dpbiogfCBtaW5n dyogfCBwdzMyKiB8IGNlZ2NjKikKKysgICAgIyBGSVhNRTogdGhlIE1TVkMrKyBwb3J0IGhhc24n dCBiZWVuIHRlc3RlZCBpbiBhIGxvb29vbmcgdGltZQorKyAgICAjIFdoZW4gbm90IHVzaW5nIGdj Yywgd2UgY3VycmVudGx5IGFzc3VtZSB0aGF0IHdlIGFyZSB1c2luZworKyAgICAjIE1pY3Jvc29m dCBWaXN1YWwgQysrLgorKyAgICBpZiB0ZXN0ICIkR0NDIiAhPSB5ZXM7IHRoZW4KKysgICAgICB3 aXRoX2dudV9sZD1ubworKyAgICBmaQorKyAgICA7OworKyAgaW50ZXJpeCopCisrICAgICMgd2Ug anVzdCBob3BlL2Fzc3VtZSB0aGlzIGlzIGdjYyBhbmQgbm90IGM4OSAoPSBNU1ZDKyspCisrICAg IHdpdGhfZ251X2xkPXllcworKyAgICA7OworKyAgb3BlbmJzZCopCisrICAgIHdpdGhfZ251X2xk PW5vCisrICAgIDs7CisrICBlc2FjCisrCisrICBfTFRfVEFHVkFSKGxkX3NobGlicywgJDEpPXll cworKyAgaWYgdGVzdCAiJHdpdGhfZ251X2xkIiA9IHllczsgdGhlbgorKyAgICAjIElmIGFyY2hp dmVfY21kcyBydW5zIExELCBub3QgQ0MsIHdsYXJjIHNob3VsZCBiZSBlbXB0eQorKyAgICB3bGFy Yz0nJHt3bH0nCisrCisrICAgICMgU2V0IHNvbWUgZGVmYXVsdHMgZm9yIEdOVSBsZCB3aXRoIHNo YXJlZCBsaWJyYXJ5IHN1cHBvcnQuIFRoZXNlCisrICAgICMgYXJlIHJlc2V0IGxhdGVyIGlmIHNo YXJlZCBsaWJyYXJpZXMgYXJlIG5vdCBzdXBwb3J0ZWQuIFB1dHRpbmcgdGhlbQorKyAgICAjIGhl cmUgYWxsb3dzIHRoZW0gdG8gYmUgb3ZlcnJpZGRlbiBpZiBuZWNlc3NhcnkuCisrICAgIHJ1bnBh dGhfdmFyPUxEX1JVTl9QQVRICisrICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdf c3BlYywgJDEpPScke3dsfS1ycGF0aCAke3dsfSRsaWJkaXInCisrICAgIF9MVF9UQUdWQVIoZXhw b3J0X2R5bmFtaWNfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LS1leHBvcnQtZHluYW1pYycKKysgICAg IyBhbmNpZW50IEdOVSBsZCBkaWRuJ3Qgc3VwcG9ydCAtLXdob2xlLWFyY2hpdmUgZXQuIGFsLgor KyAgICBpZiAkTEQgLS1oZWxwIDI+JjEgfCAkR1JFUCAnbm8td2hvbGUtYXJjaGl2ZScgPiAvZGV2 L251bGw7IHRoZW4KKysgICAgICBfTFRfVEFHVkFSKHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjLCAk MSk9IiR3bGFyYyInLS13aG9sZS1hcmNoaXZlJGNvbnZlbmllbmNlICciJHdsYXJjIictLW5vLXdo b2xlLWFyY2hpdmUnCisrICAgIGVsc2UKKysgICAgICBfTFRfVEFHVkFSKHdob2xlX2FyY2hpdmVf ZmxhZ19zcGVjLCAkMSk9CisrICAgIGZpCisrICAgIHN1cHBvcnRzX2Fub25fdmVyc2lvbmluZz1u bworKyAgICBjYXNlIGAkTEQgLXYgMj4mMWAgaW4KKysgICAgICAqXCBbWzAxXV0uKiB8ICpcIDIu W1swLTldXS4qIHwgKlwgMi4xMC4qKSA7OyAjIGNhdGNoIHZlcnNpb25zIDwgMi4xMQorKyAgICAg ICpcIDIuMTEuOTMuMC4yXCAqKSBzdXBwb3J0c19hbm9uX3ZlcnNpb25pbmc9eWVzIDs7ICMgUkg3 LjMgLi4uCisrICAgICAgKlwgMi4xMS45Mi4wLjEyXCAqKSBzdXBwb3J0c19hbm9uX3ZlcnNpb25p bmc9eWVzIDs7ICMgTWFuZHJha2UgOC4yIC4uLgorKyAgICAgICpcIDIuMTEuKikgOzsgIyBvdGhl ciAyLjExIHZlcnNpb25zCisrICAgICAgKikgc3VwcG9ydHNfYW5vbl92ZXJzaW9uaW5nPXllcyA7 OworKyAgICBlc2FjCisrCisrICAgICMgU2VlIGlmIEdOVSBsZCBzdXBwb3J0cyBzaGFyZWQgbGli cmFyaWVzLgorKyAgICBjYXNlICRob3N0X29zIGluCisrICAgIGFpeFtbMy05XV0qKQorKyAgICAg ICMgT24gQUlYL1BQQywgdGhlIEdOVSBsaW5rZXIgaXMgdmVyeSBicm9rZW4KKysgICAgICBpZiB0 ZXN0ICIkaG9zdF9jcHUiICE9IGlhNjQ7IHRoZW4KKysJX0xUX1RBR1ZBUihsZF9zaGxpYnMsICQx KT1ubworKwljYXQgPDxfTFRfRU9GIDE+JjIKKysKKysqKiogV2FybmluZzogdGhlIEdOVSBsaW5r ZXIsIGF0IGxlYXN0IHVwIHRvIHJlbGVhc2UgMi45LjEsIGlzIHJlcG9ydGVkCisrKioqIHRvIGJl IHVuYWJsZSB0byByZWxpYWJseSBjcmVhdGUgc2hhcmVkIGxpYnJhcmllcyBvbiBBSVguCisrKioq IFRoZXJlZm9yZSwgbGlidG9vbCBpcyBkaXNhYmxpbmcgc2hhcmVkIGxpYnJhcmllcyBzdXBwb3J0 LiAgSWYgeW91CisrKioqIHJlYWxseSBjYXJlIGZvciBzaGFyZWQgbGlicmFyaWVzLCB5b3UgbWF5 IHdhbnQgdG8gbW9kaWZ5IHlvdXIgUEFUSAorKyoqKiBzbyB0aGF0IGEgbm9uLUdOVSBsaW5rZXIg aXMgZm91bmQsIGFuZCB0aGVuIHJlc3RhcnQuCisrCisrX0xUX0VPRgorKyAgICAgIGZpCisrICAg ICAgOzsKKysKKysgICAgYW1pZ2FvcyopCisrICAgICAgY2FzZSAkaG9zdF9jcHUgaW4KKysgICAg ICBwb3dlcnBjKQorKyAgICAgICAgICAgICMgc2VlIGNvbW1lbnQgYWJvdXQgQW1pZ2FPUzQgLnNv IHN1cHBvcnQKKysgICAgICAgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0Mg LXNoYXJlZCAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR3 bCRzb25hbWUgLW8gJGxpYicKKysgICAgICAgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfZXhwc3lt X2NtZHMsICQxKT0nJworKyAgICAgICAgOzsKKysgICAgICBtNjhrKQorKyAgICAgICAgICAgIF9M VF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRSTSAkb3V0cHV0X29iamRpci9hMml4bGlicmFy eS5kYXRhfiRFQ0hPICIjZGVmaW5lIE5BTUUgJGxpYm5hbWUiID4gJG91dHB1dF9vYmpkaXIvYTJp eGxpYnJhcnkuZGF0YX4kRUNITyAiI2RlZmluZSBMSUJSQVJZX0lEIDEiID4+ICRvdXRwdXRfb2Jq ZGlyL2EyaXhsaWJyYXJ5LmRhdGF+JEVDSE8gIiNkZWZpbmUgVkVSU0lPTiAkbWFqb3IiID4+ICRv dXRwdXRfb2JqZGlyL2EyaXhsaWJyYXJ5LmRhdGF+JEVDSE8gIiNkZWZpbmUgUkVWSVNJT04gJHJl dmlzaW9uIiA+PiAkb3V0cHV0X29iamRpci9hMml4bGlicmFyeS5kYXRhfiRBUiAkQVJfRkxBR1Mg JGxpYiAkbGlib2Jqc34kUkFOTElCICRsaWJ+KGNkICRvdXRwdXRfb2JqZGlyICYmIGEyaXhsaWJy YXJ5IC0zMiknCisrICAgICAgICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19z cGVjLCAkMSk9Jy1MJGxpYmRpcicKKysgICAgICAgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX21p bnVzX0wsICQxKT15ZXMKKysgICAgICAgIDs7CisrICAgICAgZXNhYworKyAgICAgIDs7CisrCisr ICAgIGJlb3MqKQorKyAgICAgIGlmICRMRCAtLWhlbHAgMj4mMSB8ICRHUkVQICc6IHN1cHBvcnRl ZCB0YXJnZXRzOi4qIGVsZicgPiAvZGV2L251bGw7IHRoZW4KKysJX0xUX1RBR1ZBUihhbGxvd191 bmRlZmluZWRfZmxhZywgJDEpPXVuc3VwcG9ydGVkCisrCSMgSm9zZXBoIEJlY2tlbmJhY2ggPGpy YjNAYmVzdC5jb20+IHNheXMgc29tZSByZWxlYXNlcyBvZiBnY2MKKysJIyBzdXBwb3J0IC0tdW5k ZWZpbmVkLiAgVGhpcyBkZXNlcnZlcyBzb21lIGludmVzdGlnYXRpb24uICBGSVhNRQorKwlfTFRf VEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLW5vc3RhcnQgJGxpYm9ianMgJGRlcGxpYnMg JGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAkd2wkc29uYW1lIC1vICRsaWInCisrICAgICAg ZWxzZQorKwlfTFRfVEFHVkFSKGxkX3NobGlicywgJDEpPW5vCisrICAgICAgZmkKKysgICAgICA7 OworKworKyAgICBjeWd3aW4qIHwgbWluZ3cqIHwgcHczMiogfCBjZWdjYyopCisrICAgICAgIyBf TFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKSBpcyBhY3R1YWxseSBtZWFu aW5nbGVzcywKKysgICAgICAjIGFzIHRoZXJlIGlzIG5vIHNlYXJjaCBwYXRoIGZvciBETExzLgor KyAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPSctTCRsaWJk aXInCisrICAgICAgX0xUX1RBR1ZBUihhbGxvd191bmRlZmluZWRfZmxhZywgJDEpPXVuc3VwcG9y dGVkCisrICAgICAgX0xUX1RBR1ZBUihhbHdheXNfZXhwb3J0X3N5bWJvbHMsICQxKT1ubworKyAg ICAgIF9MVF9UQUdWQVIoZW5hYmxlX3NoYXJlZF93aXRoX3N0YXRpY19ydW50aW1lcywgJDEpPXll cworKyAgICAgIF9MVF9UQUdWQVIoZXhwb3J0X3N5bWJvbHNfY21kcywgJDEpPSckTk0gJGxpYm9i anMgJGNvbnZlbmllbmNlIHwgJGdsb2JhbF9zeW1ib2xfcGlwZSB8ICRTRUQgLWUgJ1wnJy9eW1tC Q0RHUlNdXVtbIF1dL3MvLipbWyBdXVwoW1teIF1dKlwpL1wxIERBVEEvJ1wnJyB8ICRTRUQgLWUg J1wnJy9eW1tBSVRXXV1bWyBdXS9zLy4qW1sgXV0vLydcJycgfCBzb3J0IHwgdW5pcSA+ICRleHBv cnRfc3ltYm9scycKKysKKysgICAgICBpZiAkTEQgLS1oZWxwIDI+JjEgfCAkR1JFUCAnYXV0by1p bXBvcnQnID4gL2Rldi9udWxsOyB0aGVuCisrICAgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21k cywgJDEpPSckQ0MgLXNoYXJlZCAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgLW8g JG91dHB1dF9vYmpkaXIvJHNvbmFtZSAke3dsfS0tZW5hYmxlLWF1dG8taW1hZ2UtYmFzZSAtWGxp bmtlciAtLW91dC1pbXBsaWIgLVhsaW5rZXIgJGxpYicKKysJIyBJZiB0aGUgZXhwb3J0LXN5bWJv bHMgZmlsZSBhbHJlYWR5IGlzIGEgLmRlZiBmaWxlICgxc3QgbGluZQorKwkjIGlzIEVYUE9SVFMp LCB1c2UgaXQgYXMgaXM7IG90aGVyd2lzZSwgcHJlcGVuZC4uLgorKwlfTFRfVEFHVkFSKGFyY2hp dmVfZXhwc3ltX2NtZHMsICQxKT0naWYgdGVzdCAieGAkU0VEIDFxICRleHBvcnRfc3ltYm9sc2Ai ID0geEVYUE9SVFM7IHRoZW4KKysJICBjcCAkZXhwb3J0X3N5bWJvbHMgJG91dHB1dF9vYmpkaXIv JHNvbmFtZS5kZWY7CisrCWVsc2UKKysJICBlY2hvIEVYUE9SVFMgPiAkb3V0cHV0X29iamRpci8k c29uYW1lLmRlZjsKKysJICBjYXQgJGV4cG9ydF9zeW1ib2xzID4+ICRvdXRwdXRfb2JqZGlyLyRz b25hbWUuZGVmOworKwlmaX4KKysJJENDIC1zaGFyZWQgJG91dHB1dF9vYmpkaXIvJHNvbmFtZS5k ZWYgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzIC1vICRvdXRwdXRfb2JqZGlyLyRz b25hbWUgJHt3bH0tLWVuYWJsZS1hdXRvLWltYWdlLWJhc2UgLVhsaW5rZXIgLS1vdXQtaW1wbGli IC1YbGlua2VyICRsaWInCisrICAgICAgZWxzZQorKwlfTFRfVEFHVkFSKGxkX3NobGlicywgJDEp PW5vCisrICAgICAgZmkKKysgICAgICA7OworKworKyAgICBpbnRlcml4W1szLTldXSopCisrICAg ICAgX0xUX1RBR1ZBUihoYXJkY29kZV9kaXJlY3QsICQxKT1ubworKyAgICAgIF9MVF9UQUdWQVIo aGFyZGNvZGVfc2hsaWJwYXRoX3ZhciwgJDEpPW5vCisrICAgICAgX0xUX1RBR1ZBUihoYXJkY29k ZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LXJwYXRoLCRsaWJkaXInCisrICAgICAgX0xU X1RBR1ZBUihleHBvcnRfZHluYW1pY19mbGFnX3NwZWMsICQxKT0nJHt3bH0tRScKKysgICAgICAj IEhhY2s6IE9uIEludGVyaXggMy54LCB3ZSBjYW5ub3QgY29tcGlsZSBQSUMgYmVjYXVzZSBvZiBh IGJyb2tlbiBnY2MuCisrICAgICAgIyBJbnN0ZWFkLCBzaGFyZWQgbGlicmFyaWVzIGFyZSBsb2Fk ZWQgYXQgYW4gaW1hZ2UgYmFzZSAoMHgxMDAwMDAwMCBieQorKyAgICAgICMgZGVmYXVsdCkgYW5k IHJlbG9jYXRlZCBpZiB0aGV5IGNvbmZsaWN0LCB3aGljaCBpcyBhIHNsb3cgdmVyeSBtZW1vcnkK KysgICAgICAjIGNvbnN1bWluZyBhbmQgZnJhZ21lbnRpbmcgcHJvY2Vzcy4gIFRvIGF2b2lkIHRo aXMsIHdlIHBpY2sgYSByYW5kb20sCisrICAgICAgIyAyNTYgS2lCLWFsaWduZWQgaW1hZ2UgYmFz ZSBiZXR3ZWVuIDB4NTAwMDAwMDAgYW5kIDB4NkZGQzAwMDAgYXQgbGluaworKyAgICAgICMgdGlt ZS4gIE1vdmluZyB1cCBmcm9tIDB4MTAwMDAwMDAgYWxzbyBhbGxvd3MgbW9yZSBzYnJrKDIpIHNw YWNlLgorKyAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkICRw aWNfZmxhZyAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0taCwkc29uYW1l ICR7d2x9LS1pbWFnZS1iYXNlLGBleHByICR7UkFORE9NLSQkfSAlIDQwOTYgLyAyIFwqIDI2MjE0 NCArIDEzNDIxNzcyODBgIC1vICRsaWInCisrICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2V4cHN5 bV9jbWRzLCAkMSk9J3NlZCAicyxeLF8sIiAkZXhwb3J0X3N5bWJvbHMgPiRvdXRwdXRfb2JqZGly LyRzb25hbWUuZXhwc3ltfiRDQyAtc2hhcmVkICRwaWNfZmxhZyAkbGlib2JqcyAkZGVwbGlicyAk Y29tcGlsZXJfZmxhZ3MgJHt3bH0taCwkc29uYW1lICR7d2x9LS1yZXRhaW4tc3ltYm9scy1maWxl LCRvdXRwdXRfb2JqZGlyLyRzb25hbWUuZXhwc3ltICR7d2x9LS1pbWFnZS1iYXNlLGBleHByICR7 UkFORE9NLSQkfSAlIDQwOTYgLyAyIFwqIDI2MjE0NCArIDEzNDIxNzcyODBgIC1vICRsaWInCisr ICAgICAgOzsKKysKKysgICAgZ251KiB8IGxpbnV4KiB8IHRwZiogfCBrKmJzZCotZ251KQorKyAg ICAgIHRtcF9kaWV0PW5vCisrICAgICAgaWYgdGVzdCAiJGhvc3Rfb3MiID0gbGludXgtZGlldGxp YmM7IHRoZW4KKysJY2FzZSAkY2NfYmFzZW5hbWUgaW4KKysJICBkaWV0XCAqKSB0bXBfZGlldD15 ZXM7OwkjIGxpbnV4LWRpZXRsaWJjIHdpdGggc3RhdGljIGxpbmtpbmcgKCFkaWV0LWR5bikKKysJ ZXNhYworKyAgICAgIGZpCisrICAgICAgaWYgJExEIC0taGVscCAyPiYxIHwgJEVHUkVQICc6IHN1 cHBvcnRlZCB0YXJnZXRzOi4qIGVsZicgPiAvZGV2L251bGwgXAorKwkgJiYgdGVzdCAiJHRtcF9k aWV0IiA9IG5vCisrICAgICAgdGhlbgorKwl0bXBfYWRkZmxhZz0KKysJdG1wX3NoYXJlZGZsYWc9 Jy1zaGFyZWQnCisrCWNhc2UgJGNjX2Jhc2VuYW1lLCRob3N0X2NwdSBpbgorKyAgICAgICAgcGdj YyopCQkJCSMgUG9ydGxhbmQgR3JvdXAgQyBjb21waWxlcgorKwkgIF9MVF9UQUdWQVIod2hvbGVf YXJjaGl2ZV9mbGFnX3NwZWMsICQxKT0nJHt3bH0tLXdob2xlLWFyY2hpdmVgZm9yIGNvbnYgaW4g JGNvbnZlbmllbmNlXCJcIjsgZG8gdGVzdCAgLW4gXCIkY29udlwiICYmIG5ld19jb252ZW5pZW5j ZT1cIiRuZXdfY29udmVuaWVuY2UsJGNvbnZcIjsgZG9uZTsgJEVDSE8gXCIkbmV3X2NvbnZlbmll bmNlXCJgICR7d2x9LS1uby13aG9sZS1hcmNoaXZlJworKwkgIHRtcF9hZGRmbGFnPScgJHBpY19m bGFnJworKwkgIDs7CisrCXBnZjc3KiB8IHBnZjkwKiB8IHBnZjk1KikJIyBQb3J0bGFuZCBHcm91 cCBmNzcgYW5kIGY5MCBjb21waWxlcnMKKysJICBfTFRfVEFHVkFSKHdob2xlX2FyY2hpdmVfZmxh Z19zcGVjLCAkMSk9JyR7d2x9LS13aG9sZS1hcmNoaXZlYGZvciBjb252IGluICRjb252ZW5pZW5j ZVwiXCI7IGRvIHRlc3QgIC1uIFwiJGNvbnZcIiAmJiBuZXdfY29udmVuaWVuY2U9XCIkbmV3X2Nv bnZlbmllbmNlLCRjb252XCI7IGRvbmU7ICRFQ0hPIFwiJG5ld19jb252ZW5pZW5jZVwiYCAke3ds fS0tbm8td2hvbGUtYXJjaGl2ZScKKysJICB0bXBfYWRkZmxhZz0nICRwaWNfZmxhZyAtTW5vbWFp bicgOzsKKysJZWNjKixpYTY0KiB8IGljYyosaWE2NCopCSMgSW50ZWwgQyBjb21waWxlciBvbiBp YTY0CisrCSAgdG1wX2FkZGZsYWc9JyAtaV9keW5hbWljJyA7OworKwllZmMqLGlhNjQqIHwgaWZv cnQqLGlhNjQqKQkjIEludGVsIEZvcnRyYW4gY29tcGlsZXIgb24gaWE2NAorKwkgIHRtcF9hZGRm bGFnPScgLWlfZHluYW1pYyAtbm9mb3JfbWFpbicgOzsKKysJaWZjKiB8IGlmb3J0KikJCQkjIElu dGVsIEZvcnRyYW4gY29tcGlsZXIKKysJICB0bXBfYWRkZmxhZz0nIC1ub2Zvcl9tYWluJyA7Owor KwlsZjk1KikJCQkJIyBMYWhleSBGb3J0cmFuIDguMQorKwkgIF9MVF9UQUdWQVIod2hvbGVfYXJj aGl2ZV9mbGFnX3NwZWMsICQxKT0KKysJICB0bXBfc2hhcmVkZmxhZz0nLS1zaGFyZWQnIDs7Cisr CXhsW1tjQ11dKikJCQkjIElCTSBYTCBDIDguMCBvbiBQUEMgKGRlYWwgd2l0aCB4bGYgYmVsb3cp CisrCSAgdG1wX3NoYXJlZGZsYWc9Jy1xbWtzaHJvYmonCisrCSAgdG1wX2FkZGZsYWc9IDs7Cisr CWVzYWMKKysJY2FzZSBgJENDIC1WIDI+JjEgfCBzZWQgNXFgIGluCisrCSpTdW5cIEMqKQkJCSMg U3VuIEMgNS45CisrCSAgX0xUX1RBR1ZBUih3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYywgJDEpPSck e3dsfS0td2hvbGUtYXJjaGl2ZWBuZXdfY29udmVuaWVuY2U9OyBmb3IgY29udiBpbiAkY29udmVu aWVuY2VcIlwiOyBkbyB0ZXN0IC16IFwiJGNvbnZcIiB8fCBuZXdfY29udmVuaWVuY2U9XCIkbmV3 X2NvbnZlbmllbmNlLCRjb252XCI7IGRvbmU7ICRFQ0hPIFwiJG5ld19jb252ZW5pZW5jZVwiYCAk e3dsfS0tbm8td2hvbGUtYXJjaGl2ZScKKysJICBfTFRfVEFHVkFSKGNvbXBpbGVyX25lZWRzX29i amVjdCwgJDEpPXllcworKwkgIHRtcF9zaGFyZWRmbGFnPSctRycgOzsKKysJKlN1blwgRiopCQkJ IyBTdW4gRm9ydHJhbiA4LjMKKysJICB0bXBfc2hhcmVkZmxhZz0nLUcnIDs7CisrCWVzYWMKKysJ X0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDICciJHRtcF9zaGFyZWRmbGFnIiIkdG1w X2FkZGZsYWciJyAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1l ICR3bCRzb25hbWUgLW8gJGxpYicKKysKKysgICAgICAgIGlmIHRlc3QgIngkc3VwcG9ydHNfYW5v bl92ZXJzaW9uaW5nIiA9IHh5ZXM7IHRoZW4KKysgICAgICAgICAgX0xUX1RBR1ZBUihhcmNoaXZl X2V4cHN5bV9jbWRzLCAkMSk9J2VjaG8gInsgZ2xvYmFsOiIgPiAkb3V0cHV0X29iamRpci8kbGli bmFtZS52ZXJ+CisrCSAgICBjYXQgJGV4cG9ydF9zeW1ib2xzIHwgc2VkIC1lICJzL1woLipcKS9c MTsvIiA+PiAkb3V0cHV0X29iamRpci8kbGlibmFtZS52ZXJ+CisrCSAgICBlY2hvICJsb2NhbDog KjsgfTsiID4+ICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLnZlcn4KKysJICAgICRDQyAnIiR0bXBf c2hhcmVkZmxhZyIiJHRtcF9hZGRmbGFnIicgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2Zs YWdzICR7d2x9LXNvbmFtZSAkd2wkc29uYW1lICR7d2x9LXZlcnNpb24tc2NyaXB0ICR7d2x9JG91 dHB1dF9vYmpkaXIvJGxpYm5hbWUudmVyIC1vICRsaWInCisrICAgICAgICBmaQorKworKwljYXNl ICRjY19iYXNlbmFtZSBpbgorKwl4bGYqKQorKwkgICMgSUJNIFhMIEZvcnRyYW4gMTAuMSBvbiBQ UEMgY2Fubm90IGNyZWF0ZSBzaGFyZWQgbGlicyBpdHNlbGYKKysJICBfTFRfVEFHVkFSKHdob2xl X2FyY2hpdmVfZmxhZ19zcGVjLCAkMSk9Jy0td2hvbGUtYXJjaGl2ZSRjb252ZW5pZW5jZSAtLW5v LXdob2xlLWFyY2hpdmUnCisrCSAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVj LCAkMSk9CisrCSAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX2xkLCAkMSk9 Jy1ycGF0aCAkbGliZGlyJworKwkgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRMRCAt c2hhcmVkICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAtc29uYW1lICRzb25hbWUg LW8gJGxpYicKKysJICBpZiB0ZXN0ICJ4JHN1cHBvcnRzX2Fub25fdmVyc2lvbmluZyIgPSB4eWVz OyB0aGVuCisrCSAgICBfTFRfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0nZWNobyAi eyBnbG9iYWw6IiA+ICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLnZlcn4KKysJICAgICAgY2F0ICRl eHBvcnRfc3ltYm9scyB8IHNlZCAtZSAicy9cKC4qXCkvXDE7LyIgPj4gJG91dHB1dF9vYmpkaXIv JGxpYm5hbWUudmVyfgorKwkgICAgICBlY2hvICJsb2NhbDogKjsgfTsiID4+ICRvdXRwdXRfb2Jq ZGlyLyRsaWJuYW1lLnZlcn4KKysJICAgICAgJExEIC1zaGFyZWQgJGxpYm9ianMgJGRlcGxpYnMg JGNvbXBpbGVyX2ZsYWdzIC1zb25hbWUgJHNvbmFtZSAtdmVyc2lvbi1zY3JpcHQgJG91dHB1dF9v YmpkaXIvJGxpYm5hbWUudmVyIC1vICRsaWInCisrCSAgZmkKKysJICA7OworKwllc2FjCisrICAg ICAgZWxzZQorKyAgICAgICAgX0xUX1RBR1ZBUihsZF9zaGxpYnMsICQxKT1ubworKyAgICAgIGZp CisrICAgICAgOzsKKysKKysgICAgbmV0YnNkKikKKysgICAgICBpZiBlY2hvIF9fRUxGX18gfCAk Q0MgLUUgLSB8ICRHUkVQIF9fRUxGX18gPi9kZXYvbnVsbDsgdGhlbgorKwlfTFRfVEFHVkFSKGFy Y2hpdmVfY21kcywgJDEpPSckTEQgLUJzaGFyZWFibGUgJGxpYm9ianMgJGRlcGxpYnMgJGxpbmtl cl9mbGFncyAtbyAkbGliJworKwl3bGFyYz0KKysgICAgICBlbHNlCisrCV9MVF9UQUdWQVIoYXJj aGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9m bGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAtbyAkbGliJworKwlfTFRfVEFHVkFSKGFyY2hp dmVfZXhwc3ltX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBp bGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAkd2wkc29uYW1lICR7d2x9LXJldGFpbi1zeW1ib2xzLWZp bGUgJHdsJGV4cG9ydF9zeW1ib2xzIC1vICRsaWInCisrICAgICAgZmkKKysgICAgICA7OworKwor KyAgICBzb2xhcmlzKikKKysgICAgICBpZiAkTEQgLXYgMj4mMSB8ICRHUkVQICdCRkQgMlwuOCcg PiAvZGV2L251bGw7IHRoZW4KKysJX0xUX1RBR1ZBUihsZF9zaGxpYnMsICQxKT1ubworKwljYXQg PDxfTFRfRU9GIDE+JjIKKysKKysqKiogV2FybmluZzogVGhlIHJlbGVhc2VzIDIuOC4qIG9mIHRo ZSBHTlUgbGlua2VyIGNhbm5vdCByZWxpYWJseQorKyoqKiBjcmVhdGUgc2hhcmVkIGxpYnJhcmll cyBvbiBTb2xhcmlzIHN5c3RlbXMuICBUaGVyZWZvcmUsIGxpYnRvb2wKKysqKiogaXMgZGlzYWJs aW5nIHNoYXJlZCBsaWJyYXJpZXMgc3VwcG9ydC4gIFdlIHVyZ2UgeW91IHRvIHVwZ3JhZGUgR05V CisrKioqIGJpbnV0aWxzIHRvIHJlbGVhc2UgMi45LjEgb3IgbmV3ZXIuICBBbm90aGVyIG9wdGlv biBpcyB0byBtb2RpZnkKKysqKiogeW91ciBQQVRIIG9yIGNvbXBpbGVyIGNvbmZpZ3VyYXRpb24g c28gdGhhdCB0aGUgbmF0aXZlIGxpbmtlciBpcworKyoqKiB1c2VkLCBhbmQgdGhlbiByZXN0YXJ0 LgorKworK19MVF9FT0YKKysgICAgICBlbGlmICRMRCAtLWhlbHAgMj4mMSB8ICRHUkVQICc6IHN1 cHBvcnRlZCB0YXJnZXRzOi4qIGVsZicgPiAvZGV2L251bGw7IHRoZW4KKysJX0xUX1RBR1ZBUihh cmNoaXZlX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVy X2ZsYWdzICR7d2x9LXNvbmFtZSAkd2wkc29uYW1lIC1vICRsaWInCisrCV9MVF9UQUdWQVIoYXJj aGl2ZV9leHBzeW1fY21kcywgJDEpPSckQ0MgLXNoYXJlZCAkbGlib2JqcyAkZGVwbGlicyAkY29t cGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR3bCRzb25hbWUgJHt3bH0tcmV0YWluLXN5bWJvbHMt ZmlsZSAkd2wkZXhwb3J0X3N5bWJvbHMgLW8gJGxpYicKKysgICAgICBlbHNlCisrCV9MVF9UQUdW QVIobGRfc2hsaWJzLCAkMSk9bm8KKysgICAgICBmaQorKyAgICAgIDs7CisrCisrICAgIHN5c3Y1 KiB8IHNjbzMuMnY1KiB8IHNjbzV2NiogfCB1bml4d2FyZSogfCBPcGVuVU5JWCopCisrICAgICAg Y2FzZSBgJExEIC12IDI+JjFgIGluCisrICAgICAgICAqXCBbWzAxXV0uKiB8ICpcIDIuW1swLTld XS4qIHwgKlwgMi4xW1swLTVdXS4qKQorKwlfTFRfVEFHVkFSKGxkX3NobGlicywgJDEpPW5vCisr CWNhdCA8PF9MVF9FT0YgMT4mMgorKworKyoqKiBXYXJuaW5nOiBSZWxlYXNlcyBvZiB0aGUgR05V IGxpbmtlciBwcmlvciB0byAyLjE2LjkxLjAuMyBjYW4gbm90CisrKioqIHJlbGlhYmx5IGNyZWF0 ZSBzaGFyZWQgbGlicmFyaWVzIG9uIFNDTyBzeXN0ZW1zLiAgVGhlcmVmb3JlLCBsaWJ0b29sCisr KioqIGlzIGRpc2FibGluZyBzaGFyZWQgbGlicmFyaWVzIHN1cHBvcnQuICBXZSB1cmdlIHlvdSB0 byB1cGdyYWRlIEdOVQorKyoqKiBiaW51dGlscyB0byByZWxlYXNlIDIuMTYuOTEuMC4zIG9yIG5l d2VyLiAgQW5vdGhlciBvcHRpb24gaXMgdG8gbW9kaWZ5CisrKioqIHlvdXIgUEFUSCBvciBjb21w aWxlciBjb25maWd1cmF0aW9uIHNvIHRoYXQgdGhlIG5hdGl2ZSBsaW5rZXIgaXMKKysqKiogdXNl ZCwgYW5kIHRoZW4gcmVzdGFydC4KKysKKytfTFRfRU9GCisrCTs7CisrCSopCisrCSAgIyBGb3Ig c2VjdXJpdHkgcmVhc29ucywgaXQgaXMgaGlnaGx5IHJlY29tbWVuZGVkIHRoYXQgeW91IGFsd2F5 cworKwkgICMgdXNlIGFic29sdXRlIHBhdGhzIGZvciBuYW1pbmcgc2hhcmVkIGxpYnJhcmllcywg YW5kIGV4Y2x1ZGUgdGhlCisrCSAgIyBEVF9SVU5QQVRIIHRhZyBmcm9tIGV4ZWN1dGFibGVzIGFu ZCBsaWJyYXJpZXMuICBCdXQgZG9pbmcgc28KKysJICAjIHJlcXVpcmVzIHRoYXQgeW91IGNvbXBp bGUgZXZlcnl0aGluZyB0d2ljZSwgd2hpY2ggaXMgYSBwYWluLgorKwkgIGlmICRMRCAtLWhlbHAg Mj4mMSB8ICRHUkVQICc6IHN1cHBvcnRlZCB0YXJnZXRzOi4qIGVsZicgPiAvZGV2L251bGw7IHRo ZW4KKysJICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPScke3ds fS1ycGF0aCAke3dsfSRsaWJkaXInCisrCSAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEp PSckQ0MgLXNoYXJlZCAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29u YW1lICR3bCRzb25hbWUgLW8gJGxpYicKKysJICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9leHBzeW1f Y21kcywgJDEpPSckQ0MgLXNoYXJlZCAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3Mg JHt3bH0tc29uYW1lICR3bCRzb25hbWUgJHt3bH0tcmV0YWluLXN5bWJvbHMtZmlsZSAkd2wkZXhw b3J0X3N5bWJvbHMgLW8gJGxpYicKKysJICBlbHNlCisrCSAgICBfTFRfVEFHVkFSKGxkX3NobGli cywgJDEpPW5vCisrCSAgZmkKKysJOzsKKysgICAgICBlc2FjCisrICAgICAgOzsKKysKKysgICAg c3Vub3M0KikKKysgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckTEQgLWFzc2Vy dCBwdXJlLXRleHQgLUJzaGFyZWFibGUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkbGlua2Vy X2ZsYWdzJworKyAgICAgIHdsYXJjPQorKyAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfZGlyZWN0 LCAkMSk9eWVzCisrICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9zaGxpYnBhdGhfdmFyLCAkMSk9 bm8KKysgICAgICA7OworKworKyAgICAqKQorKyAgICAgIGlmICRMRCAtLWhlbHAgMj4mMSB8ICRH UkVQICc6IHN1cHBvcnRlZCB0YXJnZXRzOi4qIGVsZicgPiAvZGV2L251bGw7IHRoZW4KKysJX0xU X1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgJGxpYm9ianMgJGRlcGxpYnMg JGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAkd2wkc29uYW1lIC1vICRsaWInCisrCV9MVF9U QUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEpPSckQ0MgLXNoYXJlZCAkbGlib2JqcyAkZGVw bGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR3bCRzb25hbWUgJHt3bH0tcmV0YWlu LXN5bWJvbHMtZmlsZSAkd2wkZXhwb3J0X3N5bWJvbHMgLW8gJGxpYicKKysgICAgICBlbHNlCisr CV9MVF9UQUdWQVIobGRfc2hsaWJzLCAkMSk9bm8KKysgICAgICBmaQorKyAgICAgIDs7CisrICAg IGVzYWMKKysKKysgICAgaWYgdGVzdCAiJF9MVF9UQUdWQVIobGRfc2hsaWJzLCAkMSkiID0gbm87 IHRoZW4KKysgICAgICBydW5wYXRoX3Zhcj0KKysgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xp YmRpcl9mbGFnX3NwZWMsICQxKT0KKysgICAgICBfTFRfVEFHVkFSKGV4cG9ydF9keW5hbWljX2Zs YWdfc3BlYywgJDEpPQorKyAgICAgIF9MVF9UQUdWQVIod2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWMs ICQxKT0KKysgICAgZmkKKysgIGVsc2UKKysgICAgIyBQT1JUTUUgZmlsbCBpbiBhIGRlc2NyaXB0 aW9uIG9mIHlvdXIgc3lzdGVtJ3MgbGlua2VyIChub3QgR05VIGxkKQorKyAgICBjYXNlICRob3N0 X29zIGluCisrICAgIGFpeDMqKQorKyAgICAgIF9MVF9UQUdWQVIoYWxsb3dfdW5kZWZpbmVkX2Zs YWcsICQxKT11bnN1cHBvcnRlZAorKyAgICAgIF9MVF9UQUdWQVIoYWx3YXlzX2V4cG9ydF9zeW1i b2xzLCAkMSk9eWVzCisrICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9 JyRMRCAtbyAkb3V0cHV0X29iamRpci8kc29uYW1lICRsaWJvYmpzICRkZXBsaWJzICRsaW5rZXJf ZmxhZ3MgLWJFOiRleHBvcnRfc3ltYm9scyAtVDUxMiAtSDUxMiAtYk06U1JFfiRBUiAkQVJfRkxB R1MgJGxpYiAkb3V0cHV0X29iamRpci8kc29uYW1lJworKyAgICAgICMgTm90ZTogdGhpcyBsaW5r ZXIgaGFyZGNvZGVzIHRoZSBkaXJlY3RvcmllcyBpbiBMSUJQQVRIIGlmIHRoZXJlCisrICAgICAg IyBhcmUgbm8gZGlyZWN0b3JpZXMgc3BlY2lmaWVkIGJ5IC1MLgorKyAgICAgIF9MVF9UQUdWQVIo aGFyZGNvZGVfbWludXNfTCwgJDEpPXllcworKyAgICAgIGlmIHRlc3QgIiRHQ0MiID0geWVzICYm IHRlc3QgLXogIiRsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYyI7IHRoZW4KKysJIyBOZWl0aGVyIGRp cmVjdCBoYXJkY29kaW5nIG5vciBzdGF0aWMgbGlua2luZyBpcyBzdXBwb3J0ZWQgd2l0aCBhCisr CSMgYnJva2VuIGNvbGxlY3QyLgorKwlfTFRfVEFHVkFSKGhhcmRjb2RlX2RpcmVjdCwgJDEpPXVu c3VwcG9ydGVkCisrICAgICAgZmkKKysgICAgICA7OworKworKyAgICBhaXhbWzQtOV1dKikKKysg ICAgICBpZiB0ZXN0ICIkaG9zdF9jcHUiID0gaWE2NDsgdGhlbgorKwkjIE9uIElBNjQsIHRoZSBs aW5rZXIgZG9lcyBydW4gdGltZSBsaW5raW5nIGJ5IGRlZmF1bHQsIHNvIHdlIGRvbid0CisrCSMg aGF2ZSB0byBkbyBhbnl0aGluZyBzcGVjaWFsLgorKwlhaXhfdXNlX3J1bnRpbWVsaW5raW5nPW5v CisrCWV4cF9zeW1fZmxhZz0nLUJleHBvcnQnCisrCW5vX2VudHJ5X2ZsYWc9IiIKKysgICAgICBl bHNlCisrCSMgSWYgd2UncmUgdXNpbmcgR05VIG5tLCB0aGVuIHdlIGRvbid0IHdhbnQgdGhlICIt QyIgb3B0aW9uLgorKwkjIC1DIG1lYW5zIGRlbWFuZ2xlIHRvIEFJWCBubSwgYnV0IG1lYW5zIGRv bid0IGRlbWFuZ2xlIHdpdGggR05VIG5tCisrCWlmICROTSAtViAyPiYxIHwgJEdSRVAgJ0dOVScg PiAvZGV2L251bGw7IHRoZW4KKysJICBfTFRfVEFHVkFSKGV4cG9ydF9zeW1ib2xzX2NtZHMsICQx KT0nJE5NIC1CcGcgJGxpYm9ianMgJGNvbnZlbmllbmNlIHwgYXdrICdcJyd7IGlmICgoKFwkIDIg PT0gIlQiKSB8fCAoXCQgMiA9PSAiRCIpIHx8IChcJCAyID09ICJCIikpICYmIChbc3Vic3RyXShc JCAzLDEsMSkgIT0gIi4iKSkgeyBwcmludCBcJCAzIH0gfSdcJycgfCBzb3J0IC11ID4gJGV4cG9y dF9zeW1ib2xzJworKwllbHNlCisrCSAgX0xUX1RBR1ZBUihleHBvcnRfc3ltYm9sc19jbWRzLCAk MSk9JyROTSAtQkNwZyAkbGlib2JqcyAkY29udmVuaWVuY2UgfCBhd2sgJ1wnJ3sgaWYgKCgoXCQg MiA9PSAiVCIpIHx8IChcJCAyID09ICJEIikgfHwgKFwkIDIgPT0gIkIiKSkgJiYgKFtzdWJzdHJd KFwkIDMsMSwxKSAhPSAiLiIpKSB7IHByaW50IFwkIDMgfSB9J1wnJyB8IHNvcnQgLXUgPiAkZXhw b3J0X3N5bWJvbHMnCisrCWZpCisrCWFpeF91c2VfcnVudGltZWxpbmtpbmc9bm8KKysKKysJIyBU ZXN0IGlmIHdlIGFyZSB0cnlpbmcgdG8gdXNlIHJ1biB0aW1lIGxpbmtpbmcgb3Igbm9ybWFsCisr CSMgQUlYIHN0eWxlIGxpbmtpbmcuIElmIC1icnRsIGlzIHNvbWV3aGVyZSBpbiBMREZMQUdTLCB3 ZQorKwkjIG5lZWQgdG8gZG8gcnVudGltZSBsaW5raW5nLgorKwljYXNlICRob3N0X29zIGluIGFp eDQuW1syM11dfGFpeDQuW1syM11dLip8YWl4W1s1LTldXSopCisrCSAgZm9yIGxkX2ZsYWcgaW4g JExERkxBR1M7IGRvCisrCSAgaWYgKHRlc3QgJGxkX2ZsYWcgPSAiLWJydGwiIHx8IHRlc3QgJGxk X2ZsYWcgPSAiLVdsLC1icnRsIik7IHRoZW4KKysJICAgIGFpeF91c2VfcnVudGltZWxpbmtpbmc9 eWVzCisrCSAgICBicmVhaworKwkgIGZpCisrCSAgZG9uZQorKwkgIDs7CisrCWVzYWMKKysKKysJ ZXhwX3N5bV9mbGFnPSctYmV4cG9ydCcKKysJbm9fZW50cnlfZmxhZz0nLWJub2VudHJ5JworKyAg ICAgIGZpCisrCisrICAgICAgIyBXaGVuIGxhcmdlIGV4ZWN1dGFibGVzIG9yIHNoYXJlZCBvYmpl Y3RzIGFyZSBidWlsdCwgQUlYIGxkIGNhbgorKyAgICAgICMgaGF2ZSBwcm9ibGVtcyBjcmVhdGlu ZyB0aGUgdGFibGUgb2YgY29udGVudHMuICBJZiBsaW5raW5nIGEgbGlicmFyeQorKyAgICAgICMg b3IgcHJvZ3JhbSByZXN1bHRzIGluICJlcnJvciBUT0Mgb3ZlcmZsb3ciIGFkZCAtbW1pbmltYWwt dG9jIHRvCisrICAgICAgIyBDWFhGTEFHUy9DRkxBR1MgZm9yIGcrKy9nY2MuICBJbiB0aGUgY2Fz ZXMgd2hlcmUgdGhhdCBpcyBub3QKKysgICAgICAjIGVub3VnaCB0byBmaXggdGhlIHByb2JsZW0s IGFkZCAtV2wsLWJiaWd0b2MgdG8gTERGTEFHUy4KKysKKysgICAgICBfTFRfVEFHVkFSKGFyY2hp dmVfY21kcywgJDEpPScnCisrICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9kaXJlY3QsICQxKT15 ZXMKKysgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2RpcmVjdF9hYnNvbHV0ZSwgJDEpPXllcwor KyAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciwgJDEpPSc6JworKyAg ICAgIF9MVF9UQUdWQVIobGlua19hbGxfZGVwbGlicywgJDEpPXllcworKyAgICAgIF9MVF9UQUdW QVIoZmlsZV9saXN0X3NwZWMsICQxKT0nJHt3bH0tZiwnCisrCisrICAgICAgaWYgdGVzdCAiJEdD QyIgPSB5ZXM7IHRoZW4KKysJY2FzZSAkaG9zdF9vcyBpbiBhaXg0LltbMDEyXV18YWl4NC5bWzAx Ml1dLiopCisrCSMgV2Ugb25seSB3YW50IHRvIGRvIHRoaXMgb24gQUlYIDQuMiBhbmQgbG93ZXIs IHRoZSBjaGVjaworKwkjIGJlbG93IGZvciBicm9rZW4gY29sbGVjdDIgZG9lc24ndCB3b3JrIHVu ZGVyIDQuMysKKysJICBjb2xsZWN0Mm5hbWU9YCR7Q0N9IC1wcmludC1wcm9nLW5hbWU9Y29sbGVj dDJgCisrCSAgaWYgdGVzdCAtZiAiJGNvbGxlY3QybmFtZSIgJiYKKysJICAgc3RyaW5ncyAiJGNv bGxlY3QybmFtZSIgfCAkR1JFUCByZXNvbHZlX2xpYl9uYW1lID4vZGV2L251bGwKKysJICB0aGVu CisrCSAgIyBXZSBoYXZlIHJld29ya2VkIGNvbGxlY3QyCisrCSAgOgorKwkgIGVsc2UKKysJICAj IFdlIGhhdmUgb2xkIGNvbGxlY3QyCisrCSAgX0xUX1RBR1ZBUihoYXJkY29kZV9kaXJlY3QsICQx KT11bnN1cHBvcnRlZAorKwkgICMgSXQgZmFpbHMgdG8gZmluZCB1bmluc3RhbGxlZCBsaWJyYXJp ZXMgd2hlbiB0aGUgdW5pbnN0YWxsZWQKKysJICAjIHBhdGggaXMgbm90IGxpc3RlZCBpbiB0aGUg bGlicGF0aC4gIFNldHRpbmcgaGFyZGNvZGVfbWludXNfTAorKwkgICMgdG8gdW5zdXBwb3J0ZWQg Zm9yY2VzIHJlbGlua2luZworKwkgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbWludXNfTCwgJDEpPXll cworKwkgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPSctTCRsaWJk aXInCisrCSAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yLCAkMSk9CisrCSAg ZmkKKysJICA7OworKwllc2FjCisrCXNoYXJlZF9mbGFnPSctc2hhcmVkJworKwlpZiB0ZXN0ICIk YWl4X3VzZV9ydW50aW1lbGlua2luZyIgPSB5ZXM7IHRoZW4KKysJICBzaGFyZWRfZmxhZz0iJHNo YXJlZF9mbGFnICInJHt3bH0tRycKKysJZmkKKysgICAgICBlbHNlCisrCSMgbm90IHVzaW5nIGdj YworKwlpZiB0ZXN0ICIkaG9zdF9jcHUiID0gaWE2NDsgdGhlbgorKwkjIFZpc3VhbEFnZSBDKyss IFZlcnNpb24gNS41IGZvciBBSVggNUwgZm9yIElBLTY0LCBCZXRhIDMgUmVsZWFzZQorKwkjIGNo b2tlcyBvbiAtV2wsLUcuIFRoZSBmb2xsb3dpbmcgbGluZSBpcyBjb3JyZWN0OgorKwkgIHNoYXJl ZF9mbGFnPSctRycKKysJZWxzZQorKwkgIGlmIHRlc3QgIiRhaXhfdXNlX3J1bnRpbWVsaW5raW5n IiA9IHllczsgdGhlbgorKwkgICAgc2hhcmVkX2ZsYWc9JyR7d2x9LUcnCisrCSAgZWxzZQorKwkg ICAgc2hhcmVkX2ZsYWc9JyR7d2x9LWJNOlNSRScKKysJICBmaQorKwlmaQorKyAgICAgIGZpCisr CisrICAgICAgX0xUX1RBR1ZBUihleHBvcnRfZHluYW1pY19mbGFnX3NwZWMsICQxKT0nJHt3bH0t YmV4cGFsbCcKKysgICAgICAjIEl0IHNlZW1zIHRoYXQgLWJleHBhbGwgZG9lcyBub3QgZXhwb3J0 IHN5bWJvbHMgYmVnaW5uaW5nIHdpdGgKKysgICAgICAjIHVuZGVyc2NvcmUgKF8pLCBzbyBpdCBp cyBiZXR0ZXIgdG8gZ2VuZXJhdGUgYSBsaXN0IG9mIHN5bWJvbHMgdG8gZXhwb3J0LgorKyAgICAg IF9MVF9UQUdWQVIoYWx3YXlzX2V4cG9ydF9zeW1ib2xzLCAkMSk9eWVzCisrICAgICAgaWYgdGVz dCAiJGFpeF91c2VfcnVudGltZWxpbmtpbmciID0geWVzOyB0aGVuCisrCSMgV2FybmluZyAtIHdp dGhvdXQgdXNpbmcgdGhlIG90aGVyIHJ1bnRpbWUgbG9hZGluZyBmbGFncyAoLWJydGwpLAorKwkj IC1iZXJvayB3aWxsIGxpbmsgd2l0aG91dCBlcnJvciwgYnV0IG1heSBwcm9kdWNlIGEgYnJva2Vu IGxpYnJhcnkuCisrCV9MVF9UQUdWQVIoYWxsb3dfdW5kZWZpbmVkX2ZsYWcsICQxKT0nLWJlcm9r JworKyAgICAgICAgIyBEZXRlcm1pbmUgdGhlIGRlZmF1bHQgbGlicGF0aCBmcm9tIHRoZSB2YWx1 ZSBlbmNvZGVkIGluIGFuCisrICAgICAgICAjIGVtcHR5IGV4ZWN1dGFibGUuCisrICAgICAgICBf TFRfU1lTX01PRFVMRV9QQVRIX0FJWAorKyAgICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJk aXJfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LWJsaWJwYXRoOiRsaWJkaXI6JyIkYWl4X2xpYnBhdGgi CisrICAgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0nJENDIC1vICRv dXRwdXRfb2JqZGlyLyRzb25hbWUgJGxpYm9ianMgJGRlcGxpYnMgJyJcJHt3bH0kbm9fZW50cnlf ZmxhZyInICRjb21waWxlcl9mbGFncyBgaWYgdGVzdCAieCR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9 IiAhPSAieCI7IHRoZW4gJEVDSE8gIlgke3dsfSR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9IiB8ICRY c2VkOyBlbHNlIDo7IGZpYCAnIlwke3dsfSRleHBfc3ltX2ZsYWc6XCRleHBvcnRfc3ltYm9scyAk c2hhcmVkX2ZsYWciCisrICAgICAgZWxzZQorKwlpZiB0ZXN0ICIkaG9zdF9jcHUiID0gaWE2NDsg dGhlbgorKwkgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPScke3ds fS1SICRsaWJkaXI6L3Vzci9saWI6L2xpYicKKysJICBfTFRfVEFHVkFSKGFsbG93X3VuZGVmaW5l ZF9mbGFnLCAkMSk9Ii16IG5vZGVmcyIKKysJICBfTFRfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2Nt ZHMsICQxKT0iXCRDQyAkc2hhcmVkX2ZsYWciJyAtbyAkb3V0cHV0X29iamRpci8kc29uYW1lICRs aWJvYmpzICRkZXBsaWJzICciXCR7d2x9JG5vX2VudHJ5X2ZsYWciJyAkY29tcGlsZXJfZmxhZ3Mg JHt3bH0ke2FsbG93X3VuZGVmaW5lZF9mbGFnfSAnIlwke3dsfSRleHBfc3ltX2ZsYWc6XCRleHBv cnRfc3ltYm9scyIKKysJZWxzZQorKwkgIyBEZXRlcm1pbmUgdGhlIGRlZmF1bHQgbGlicGF0aCBm cm9tIHRoZSB2YWx1ZSBlbmNvZGVkIGluIGFuCisrCSAjIGVtcHR5IGV4ZWN1dGFibGUuCisrCSBf TFRfU1lTX01PRFVMRV9QQVRIX0FJWAorKwkgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxh Z19zcGVjLCAkMSk9JyR7d2x9LWJsaWJwYXRoOiRsaWJkaXI6JyIkYWl4X2xpYnBhdGgiCisrCSAg IyBXYXJuaW5nIC0gd2l0aG91dCB1c2luZyB0aGUgb3RoZXIgcnVuIHRpbWUgbG9hZGluZyBmbGFn cywKKysJICAjIC1iZXJvayB3aWxsIGxpbmsgd2l0aG91dCBlcnJvciwgYnV0IG1heSBwcm9kdWNl IGEgYnJva2VuIGxpYnJhcnkuCisrCSAgX0xUX1RBR1ZBUihub191bmRlZmluZWRfZmxhZywgJDEp PScgJHt3bH0tYmVybm90b2snCisrCSAgX0xUX1RBR1ZBUihhbGxvd191bmRlZmluZWRfZmxhZywg JDEpPScgJHt3bH0tYmVyb2snCisrCSAgIyBFeHBvcnRlZCBzeW1ib2xzIGNhbiBiZSBwdWxsZWQg aW50byBzaGFyZWQgb2JqZWN0cyBmcm9tIGFyY2hpdmVzCisrCSAgX0xUX1RBR1ZBUih3aG9sZV9h cmNoaXZlX2ZsYWdfc3BlYywgJDEpPSckY29udmVuaWVuY2UnCisrCSAgX0xUX1RBR1ZBUihhcmNo aXZlX2NtZHNfbmVlZF9sYywgJDEpPXllcworKwkgICMgVGhpcyBpcyBzaW1pbGFyIHRvIGhvdyBB SVggdHJhZGl0aW9uYWxseSBidWlsZHMgaXRzIHNoYXJlZCBsaWJyYXJpZXMuCisrCSAgX0xUX1RB R1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9IlwkQ0MgJHNoYXJlZF9mbGFnIicgLW8gJG91 dHB1dF9vYmpkaXIvJHNvbmFtZSAkbGlib2JqcyAkZGVwbGlicyAke3dsfS1ibm9lbnRyeSAkY29t cGlsZXJfZmxhZ3MgJHt3bH0tYkU6JGV4cG9ydF9zeW1ib2xzJHthbGxvd191bmRlZmluZWRfZmxh Z31+JEFSICRBUl9GTEFHUyAkb3V0cHV0X29iamRpci8kbGlibmFtZSRyZWxlYXNlLmEgJG91dHB1 dF9vYmpkaXIvJHNvbmFtZScKKysJZmkKKysgICAgICBmaQorKyAgICAgIDs7CisrCisrICAgIGFt aWdhb3MqKQorKyAgICAgIGNhc2UgJGhvc3RfY3B1IGluCisrICAgICAgcG93ZXJwYykKKysgICAg ICAgICAgICAjIHNlZSBjb21tZW50IGFib3V0IEFtaWdhT1M0IC5zbyBzdXBwb3J0CisrICAgICAg ICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgJGxpYm9ianMg JGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAkd2wkc29uYW1lIC1vICRsaWIn CisrICAgICAgICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9JycKKysg ICAgICAgIDs7CisrICAgICAgbTY4aykKKysgICAgICAgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVf Y21kcywgJDEpPSckUk0gJG91dHB1dF9vYmpkaXIvYTJpeGxpYnJhcnkuZGF0YX4kRUNITyAiI2Rl ZmluZSBOQU1FICRsaWJuYW1lIiA+ICRvdXRwdXRfb2JqZGlyL2EyaXhsaWJyYXJ5LmRhdGF+JEVD SE8gIiNkZWZpbmUgTElCUkFSWV9JRCAxIiA+PiAkb3V0cHV0X29iamRpci9hMml4bGlicmFyeS5k YXRhfiRFQ0hPICIjZGVmaW5lIFZFUlNJT04gJG1ham9yIiA+PiAkb3V0cHV0X29iamRpci9hMml4 bGlicmFyeS5kYXRhfiRFQ0hPICIjZGVmaW5lIFJFVklTSU9OICRyZXZpc2lvbiIgPj4gJG91dHB1 dF9vYmpkaXIvYTJpeGxpYnJhcnkuZGF0YX4kQVIgJEFSX0ZMQUdTICRsaWIgJGxpYm9ianN+JFJB TkxJQiAkbGlifihjZCAkb3V0cHV0X29iamRpciAmJiBhMml4bGlicmFyeSAtMzIpJworKyAgICAg ICAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPSctTCRsaWJk aXInCisrICAgICAgICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9taW51c19MLCAkMSk9eWVzCisr ICAgICAgICA7OworKyAgICAgIGVzYWMKKysgICAgICA7OworKworKyAgICBic2RpW1s0NV1dKikK KysgICAgICBfTFRfVEFHVkFSKGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlYywgJDEpPS1yZHluYW1p YworKyAgICAgIDs7CisrCisrICAgIGN5Z3dpbiogfCBtaW5ndyogfCBwdzMyKiB8IGNlZ2NjKikK KysgICAgICAjIFdoZW4gbm90IHVzaW5nIGdjYywgd2UgY3VycmVudGx5IGFzc3VtZSB0aGF0IHdl IGFyZSB1c2luZworKyAgICAgICMgTWljcm9zb2Z0IFZpc3VhbCBDKysuCisrICAgICAgIyBoYXJk Y29kZV9saWJkaXJfZmxhZ19zcGVjIGlzIGFjdHVhbGx5IG1lYW5pbmdsZXNzLCBhcyB0aGVyZSBp cworKyAgICAgICMgbm8gc2VhcmNoIHBhdGggZm9yIERMTHMuCisrICAgICAgX0xUX1RBR1ZBUiho YXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9JyAnCisrICAgICAgX0xUX1RBR1ZBUihhbGxv d191bmRlZmluZWRfZmxhZywgJDEpPXVuc3VwcG9ydGVkCisrICAgICAgIyBUZWxsIGx0bWFpbiB0 byBtYWtlIC5saWIgZmlsZXMsIG5vdCAuYSBmaWxlcy4KKysgICAgICBsaWJleHQ9bGliCisrICAg ICAgIyBUZWxsIGx0bWFpbiB0byBtYWtlIC5kbGwgZmlsZXMsIG5vdCAuc28gZmlsZXMuCisrICAg ICAgc2hyZXh0X2NtZHM9Ii5kbGwiCisrICAgICAgIyBGSVhNRTogU2V0dGluZyBsaW5rbmFtZXMg aGVyZSBpcyBhIGJhZCBoYWNrLgorKyAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9 JyRDQyAtbyAkbGliICRsaWJvYmpzICRjb21waWxlcl9mbGFncyBgJEVDSE8gIlgkZGVwbGlicyIg fCAkWHNlZCAtZSAnXCcncy8gLWxjJC8vJ1wnJ2AgLWxpbmsgLWRsbH5saW5rbmFtZXM9JworKyAg ICAgICMgVGhlIGxpbmtlciB3aWxsIGF1dG9tYXRpY2FsbHkgYnVpbGQgYSAubGliIGZpbGUgaWYg d2UgYnVpbGQgYSBETEwuCisrICAgICAgX0xUX1RBR1ZBUihvbGRfYXJjaGl2ZV9mcm9tX25ld19j bWRzLCAkMSk9J3RydWUnCisrICAgICAgIyBGSVhNRTogU2hvdWxkIGxldCB0aGUgdXNlciBzcGVj aWZ5IHRoZSBsaWIgcHJvZ3JhbS4KKysgICAgICBfTFRfVEFHVkFSKG9sZF9hcmNoaXZlX2NtZHMs ICQxKT0nbGliIC1PVVQ6JG9sZGxpYiRvbGRvYmpzJG9sZF9kZXBsaWJzJworKyAgICAgIF9MVF9U QUdWQVIoZml4X3NyY2ZpbGVfcGF0aCwgJDEpPSdgY3lncGF0aCAtdyAiJHNyY2ZpbGUiYCcKKysg ICAgICBfTFRfVEFHVkFSKGVuYWJsZV9zaGFyZWRfd2l0aF9zdGF0aWNfcnVudGltZXMsICQxKT15 ZXMKKysgICAgICA7OworKworKyAgICBkYXJ3aW4qIHwgcmhhcHNvZHkqKQorKyAgICAgIF9MVF9E QVJXSU5fTElOS0VSX0ZFQVRVUkVTKCQxKQorKyAgICAgIDs7CisrCisrICAgIGRndXgqKQorKyAg ICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRMRCAtRyAtaCAkc29uYW1lIC1vICRs aWIgJGxpYm9ianMgJGRlcGxpYnMgJGxpbmtlcl9mbGFncycKKysgICAgICBfTFRfVEFHVkFSKGhh cmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nLUwkbGliZGlyJworKyAgICAgIF9MVF9UQUdW QVIoaGFyZGNvZGVfc2hsaWJwYXRoX3ZhciwgJDEpPW5vCisrICAgICAgOzsKKysKKysgICAgZnJl ZWJzZDEqKQorKyAgICAgIF9MVF9UQUdWQVIobGRfc2hsaWJzLCAkMSk9bm8KKysgICAgICA7Owor KworKyAgICAjIEZyZWVCU0QgMi4yLlswMTJdIGFsbG93cyB1cyB0byBpbmNsdWRlIGMrK3J0MC5v IHRvIGdldCBDKysgY29uc3RydWN0b3IKKysgICAgIyBzdXBwb3J0LiAgRnV0dXJlIHZlcnNpb25z IGRvIHRoaXMgYXV0b21hdGljYWxseSwgYnV0IGFuIGV4cGxpY2l0IGMrK3J0MC5vCisrICAgICMg ZG9lcyBub3QgYnJlYWsgYW55dGhpbmcsIGFuZCBoZWxwcyBzaWduaWZpY2FudGx5IChhdCB0aGUg Y29zdCBvZiBhIGxpdHRsZQorKyAgICAjIGV4dHJhIHNwYWNlKS4KKysgICAgZnJlZWJzZDIuMiop CisrICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJExEIC1Cc2hhcmVhYmxlIC1v ICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGxpbmtlcl9mbGFncyAvdXNyL2xpYi9jKytydDAubycK KysgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nLVIkbGli ZGlyJworKyAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfZGlyZWN0LCAkMSk9eWVzCisrICAgICAg X0xUX1RBR1ZBUihoYXJkY29kZV9zaGxpYnBhdGhfdmFyLCAkMSk9bm8KKysgICAgICA7OworKwor KyAgICAjIFVuZm9ydHVuYXRlbHksIG9sZGVyIHZlcnNpb25zIG9mIEZyZWVCU0QgMiBkbyBub3Qg aGF2ZSB0aGlzIGZlYXR1cmUuCisrICAgIGZyZWVic2QyKikKKysgICAgICBfTFRfVEFHVkFSKGFy Y2hpdmVfY21kcywgJDEpPSckTEQgLUJzaGFyZWFibGUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGli cyAkbGlua2VyX2ZsYWdzJworKyAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfZGlyZWN0LCAkMSk9 eWVzCisrICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9taW51c19MLCAkMSk9eWVzCisrICAgICAg X0xUX1RBR1ZBUihoYXJkY29kZV9zaGxpYnBhdGhfdmFyLCAkMSk9bm8KKysgICAgICA7OworKwor KyAgICAjIEZyZWVCU0QgMyBhbmQgZ3JlYXRlciB1c2VzIGdjYyAtc2hhcmVkIHRvIGRvIHNoYXJl ZCBsaWJyYXJpZXMuCisrICAgIGZyZWVic2QqIHwgZHJhZ29uZmx5KikKKysgICAgICBfTFRfVEFH VkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXNoYXJlZCAtbyAkbGliICRsaWJvYmpzICRkZXBs aWJzICRjb21waWxlcl9mbGFncycKKysgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9m bGFnX3NwZWMsICQxKT0nLVIkbGliZGlyJworKyAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfZGly ZWN0LCAkMSk9eWVzCisrICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9zaGxpYnBhdGhfdmFyLCAk MSk9bm8KKysgICAgICA7OworKworKyAgICBocHV4OSopCisrICAgICAgaWYgdGVzdCAiJEdDQyIg PSB5ZXM7IHRoZW4KKysJX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJFJNICRvdXRwdXRf b2JqZGlyLyRzb25hbWV+JENDIC1zaGFyZWQgLWZQSUMgJHt3bH0rYiAke3dsfSRpbnN0YWxsX2xp YmRpciAtbyAkb3V0cHV0X29iamRpci8kc29uYW1lICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxl cl9mbGFnc350ZXN0ICRvdXRwdXRfb2JqZGlyLyRzb25hbWUgPSAkbGliIHx8IG12ICRvdXRwdXRf b2JqZGlyLyRzb25hbWUgJGxpYicKKysgICAgICBlbHNlCisrCV9MVF9UQUdWQVIoYXJjaGl2ZV9j bWRzLCAkMSk9JyRSTSAkb3V0cHV0X29iamRpci8kc29uYW1lfiRMRCAtYiArYiAkaW5zdGFsbF9s aWJkaXIgLW8gJG91dHB1dF9vYmpkaXIvJHNvbmFtZSAkbGlib2JqcyAkZGVwbGlicyAkbGlua2Vy X2ZsYWdzfnRlc3QgJG91dHB1dF9vYmpkaXIvJHNvbmFtZSA9ICRsaWIgfHwgbXYgJG91dHB1dF9v YmpkaXIvJHNvbmFtZSAkbGliJworKyAgICAgIGZpCisrICAgICAgX0xUX1RBR1ZBUihoYXJkY29k ZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9JyR7d2x9K2IgJHt3bH0kbGliZGlyJworKyAgICAgIF9M VF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciwgJDEpPToKKysgICAgICBfTFRfVEFH VkFSKGhhcmRjb2RlX2RpcmVjdCwgJDEpPXllcworKworKyAgICAgICMgaGFyZGNvZGVfbWludXNf TDogTm90IHJlYWxseSBpbiB0aGUgc2VhcmNoIFBBVEgsCisrICAgICAgIyBidXQgYXMgdGhlIGRl ZmF1bHQgbG9jYXRpb24gb2YgdGhlIGxpYnJhcnkuCisrICAgICAgX0xUX1RBR1ZBUihoYXJkY29k ZV9taW51c19MLCAkMSk9eWVzCisrICAgICAgX0xUX1RBR1ZBUihleHBvcnRfZHluYW1pY19mbGFn X3NwZWMsICQxKT0nJHt3bH0tRScKKysgICAgICA7OworKworKyAgICBocHV4MTAqKQorKyAgICAg IGlmIHRlc3QgIiRHQ0MiID0geWVzIC1hICIkd2l0aF9nbnVfbGQiID0gbm87IHRoZW4KKysJX0xU X1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgLWZQSUMgJHt3bH0raCAke3ds fSRzb25hbWUgJHt3bH0rYiAke3dsfSRpbnN0YWxsX2xpYmRpciAtbyAkbGliICRsaWJvYmpzICRk ZXBsaWJzICRjb21waWxlcl9mbGFncycKKysgICAgICBlbHNlCisrCV9MVF9UQUdWQVIoYXJjaGl2 ZV9jbWRzLCAkMSk9JyRMRCAtYiAraCAkc29uYW1lICtiICRpbnN0YWxsX2xpYmRpciAtbyAkbGli ICRsaWJvYmpzICRkZXBsaWJzICRsaW5rZXJfZmxhZ3MnCisrICAgICAgZmkKKysgICAgICBpZiB0 ZXN0ICIkd2l0aF9nbnVfbGQiID0gbm87IHRoZW4KKysJX0xUX1RBR1ZBUihoYXJkY29kZV9saWJk aXJfZmxhZ19zcGVjLCAkMSk9JyR7d2x9K2IgJHt3bH0kbGliZGlyJworKwlfTFRfVEFHVkFSKGhh cmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfbGQsICQxKT0nK2IgJGxpYmRpcicKKysJX0xUX1RBR1ZB UihoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yLCAkMSk9OgorKwlfTFRfVEFHVkFSKGhhcmRjb2Rl X2RpcmVjdCwgJDEpPXllcworKwlfTFRfVEFHVkFSKGhhcmRjb2RlX2RpcmVjdF9hYnNvbHV0ZSwg JDEpPXllcworKwlfTFRfVEFHVkFSKGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlYywgJDEpPScke3ds fS1FJworKwkjIGhhcmRjb2RlX21pbnVzX0w6IE5vdCByZWFsbHkgaW4gdGhlIHNlYXJjaCBQQVRI LAorKwkjIGJ1dCBhcyB0aGUgZGVmYXVsdCBsb2NhdGlvbiBvZiB0aGUgbGlicmFyeS4KKysJX0xU X1RBR1ZBUihoYXJkY29kZV9taW51c19MLCAkMSk9eWVzCisrICAgICAgZmkKKysgICAgICA7Owor KworKyAgICBocHV4MTEqKQorKyAgICAgIGlmIHRlc3QgIiRHQ0MiID0geWVzIC1hICIkd2l0aF9n bnVfbGQiID0gbm87IHRoZW4KKysJY2FzZSAkaG9zdF9jcHUgaW4KKysJaHBwYSo2NCopCisrCSAg X0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgJHt3bH0raCAke3dsfSRz b25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCisrCSAgOzsK KysJaWE2NCopCisrCSAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1zaGFyZWQg LWZQSUMgJHt3bH0raCAke3dsfSRzb25hbWUgJHt3bH0rbm9kZWZhdWx0cnBhdGggLW8gJGxpYiAk bGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCisrCSAgOzsKKysJKikKKysJICBfTFRf VEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXNoYXJlZCAtZlBJQyAke3dsfStoICR7d2x9 JHNvbmFtZSAke3dsfStiICR7d2x9JGluc3RhbGxfbGliZGlyIC1vICRsaWIgJGxpYm9ianMgJGRl cGxpYnMgJGNvbXBpbGVyX2ZsYWdzJworKwkgIDs7CisrCWVzYWMKKysgICAgICBlbHNlCisrCWNh c2UgJGhvc3RfY3B1IGluCisrCWhwcGEqNjQqKQorKwkgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRz LCAkMSk9JyRDQyAtYiAke3dsfStoICR7d2x9JHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBs aWJzICRjb21waWxlcl9mbGFncycKKysJICA7OworKwlpYTY0KikKKysJICBfTFRfVEFHVkFSKGFy Y2hpdmVfY21kcywgJDEpPSckQ0MgLWIgJHt3bH0raCAke3dsfSRzb25hbWUgJHt3bH0rbm9kZWZh dWx0cnBhdGggLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCisrCSAg OzsKKysJKikKKysJICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLWIgJHt3bH0r aCAke3dsfSRzb25hbWUgJHt3bH0rYiAke3dsfSRpbnN0YWxsX2xpYmRpciAtbyAkbGliICRsaWJv YmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKKysJICA7OworKwllc2FjCisrICAgICAgZmkK KysgICAgICBpZiB0ZXN0ICIkd2l0aF9nbnVfbGQiID0gbm87IHRoZW4KKysJX0xUX1RBR1ZBUiho YXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9JyR7d2x9K2IgJHt3bH0kbGliZGlyJworKwlf TFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3IsICQxKT06CisrCisrCWNhc2UgJGhv c3RfY3B1IGluCisrCWhwcGEqNjQqfGlhNjQqKQorKwkgIF9MVF9UQUdWQVIoaGFyZGNvZGVfZGly ZWN0LCAkMSk9bm8KKysJICBfTFRfVEFHVkFSKGhhcmRjb2RlX3NobGlicGF0aF92YXIsICQxKT1u bworKwkgIDs7CisrCSopCisrCSAgX0xUX1RBR1ZBUihoYXJkY29kZV9kaXJlY3QsICQxKT15ZXMK KysJICBfTFRfVEFHVkFSKGhhcmRjb2RlX2RpcmVjdF9hYnNvbHV0ZSwgJDEpPXllcworKwkgIF9M VF9UQUdWQVIoZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LUUnCisrCisrCSAg IyBoYXJkY29kZV9taW51c19MOiBOb3QgcmVhbGx5IGluIHRoZSBzZWFyY2ggUEFUSCwKKysJICAj IGJ1dCBhcyB0aGUgZGVmYXVsdCBsb2NhdGlvbiBvZiB0aGUgbGlicmFyeS4KKysJICBfTFRfVEFH VkFSKGhhcmRjb2RlX21pbnVzX0wsICQxKT15ZXMKKysJICA7OworKwllc2FjCisrICAgICAgZmkK KysgICAgICA7OworKworKyAgICBpcml4NSogfCBpcml4NiogfCBub25zdG9wdXgqKQorKyAgICAg IGlmIHRlc3QgIiRHQ0MiID0geWVzOyB0aGVuCisrCV9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAk MSk9JyRDQyAtc2hhcmVkICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1z b25hbWUgJHt3bH0kc29uYW1lIGB0ZXN0IC1uICIkdmVyc3RyaW5nIiAmJiAkRUNITyAiWCR7d2x9 LXNldF92ZXJzaW9uICR7d2x9JHZlcnN0cmluZyIgfCAkWHNlZGAgJHt3bH0tdXBkYXRlX3JlZ2lz dHJ5ICR7d2x9JHtvdXRwdXRfb2JqZGlyfS9zb19sb2NhdGlvbnMgLW8gJGxpYicKKysJIyBUcnkg dG8gdXNlIHRoZSAtZXhwb3J0ZWRfc3ltYm9sIGxkIG9wdGlvbiwgaWYgaXQgZG9lcyBub3QKKysJ IyB3b3JrLCBhc3N1bWUgdGhhdCAtZXhwb3J0c19maWxlIGRvZXMgbm90IHdvcmsgZWl0aGVyIGFu ZAorKwkjIGltcGxpY2l0bHkgZXhwb3J0IGFsbCBzeW1ib2xzLgorKyAgICAgICAgc2F2ZV9MREZM QUdTPSIkTERGTEFHUyIKKysgICAgICAgIExERkxBR1M9IiRMREZMQUdTIC1zaGFyZWQgJHt3bH0t ZXhwb3J0ZWRfc3ltYm9sICR7d2x9Zm9vICR7d2x9LXVwZGF0ZV9yZWdpc3RyeSAke3dsfS9kZXYv bnVsbCIKKysgICAgICAgIEFDX0xJTktfSUZFTFNFKGludCBmb28odm9pZCkge30sCisrICAgICAg ICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEpPSckQ0MgLXNoYXJlZCAkbGli b2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR7d2x9JHNvbmFtZSBg dGVzdCAtbiAiJHZlcnN0cmluZyIgJiYgJEVDSE8gIlgke3dsfS1zZXRfdmVyc2lvbiAke3dsfSR2 ZXJzdHJpbmciIHwgJFhzZWRgICR7d2x9LXVwZGF0ZV9yZWdpc3RyeSAke3dsfSR7b3V0cHV0X29i amRpcn0vc29fbG9jYXRpb25zICR7d2x9LWV4cG9ydHNfZmlsZSAke3dsfSRleHBvcnRfc3ltYm9s cyAtbyAkbGliJworKyAgICAgICAgKQorKyAgICAgICAgTERGTEFHUz0iJHNhdmVfTERGTEFHUyIK KysgICAgICBlbHNlCisrCV9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVk ICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAtc29uYW1lICRzb25hbWUgYHRlc3Qg LW4gIiR2ZXJzdHJpbmciICYmICRFQ0hPICJYLXNldF92ZXJzaW9uICR2ZXJzdHJpbmciIHwgJFhz ZWRgIC11cGRhdGVfcmVnaXN0cnkgJHtvdXRwdXRfb2JqZGlyfS9zb19sb2NhdGlvbnMgLW8gJGxp YicKKysJX0xUX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkICRs aWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAtc29uYW1lICRzb25hbWUgYHRlc3QgLW4g IiR2ZXJzdHJpbmciICYmICRFQ0hPICJYLXNldF92ZXJzaW9uICR2ZXJzdHJpbmciIHwgJFhzZWRg IC11cGRhdGVfcmVnaXN0cnkgJHtvdXRwdXRfb2JqZGlyfS9zb19sb2NhdGlvbnMgLWV4cG9ydHNf ZmlsZSAkZXhwb3J0X3N5bWJvbHMgLW8gJGxpYicKKysgICAgICBmaQorKyAgICAgIF9MVF9UQUdW QVIoYXJjaGl2ZV9jbWRzX25lZWRfbGMsICQxKT0nbm8nCisrICAgICAgX0xUX1RBR1ZBUihoYXJk Y29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LXJwYXRoICR7d2x9JGxpYmRpcicKKysg ICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3IsICQxKT06CisrICAgICAg X0xUX1RBR1ZBUihpbmhlcml0X3JwYXRoLCAkMSk9eWVzCisrICAgICAgX0xUX1RBR1ZBUihsaW5r X2FsbF9kZXBsaWJzLCAkMSk9eWVzCisrICAgICAgOzsKKysKKysgICAgbmV0YnNkKikKKysgICAg ICBpZiBlY2hvIF9fRUxGX18gfCAkQ0MgLUUgLSB8ICRHUkVQIF9fRUxGX18gPi9kZXYvbnVsbDsg dGhlbgorKwlfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckTEQgLUJzaGFyZWFibGUgLW8g JGxpYiAkbGlib2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzJyAgIyBhLm91dAorKyAgICAgIGVs c2UKKysJX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJExEIC1zaGFyZWQgLW8gJGxpYiAk bGlib2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzJyAgICAgICMgRUxGCisrICAgICAgZmkKKysg ICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nLVIkbGliZGly JworKyAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfZGlyZWN0LCAkMSk9eWVzCisrICAgICAgX0xU X1RBR1ZBUihoYXJkY29kZV9zaGxpYnBhdGhfdmFyLCAkMSk9bm8KKysgICAgICA7OworKworKyAg ICBuZXdzb3M2KQorKyAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRMRCAtRyAt aCAkc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGxpbmtlcl9mbGFncycKKysgICAg ICBfTFRfVEFHVkFSKGhhcmRjb2RlX2RpcmVjdCwgJDEpPXllcworKyAgICAgIF9MVF9UQUdWQVIo aGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPScke3dsfS1ycGF0aCAke3dsfSRsaWJkaXIn CisrICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yLCAkMSk9OgorKyAg ICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfc2hsaWJwYXRoX3ZhciwgJDEpPW5vCisrICAgICAgOzsK KysKKysgICAgKm50byogfCAqcW54KikKKysgICAgICA7OworKworKyAgICBvcGVuYnNkKikKKysg ICAgICBpZiB0ZXN0IC1mIC91c3IvbGliZXhlYy9sZC5zbzsgdGhlbgorKwlfTFRfVEFHVkFSKGhh cmRjb2RlX2RpcmVjdCwgJDEpPXllcworKwlfTFRfVEFHVkFSKGhhcmRjb2RlX3NobGlicGF0aF92 YXIsICQxKT1ubworKwlfTFRfVEFHVkFSKGhhcmRjb2RlX2RpcmVjdF9hYnNvbHV0ZSwgJDEpPXll cworKwlpZiB0ZXN0IC16ICJgZWNobyBfX0VMRl9fIHwgJENDIC1FIC0gfCAkR1JFUCBfX0VMRl9f YCIgfHwgdGVzdCAiJGhvc3Rfb3MtJGhvc3RfY3B1IiA9ICJvcGVuYnNkMi44LXBvd2VycGMiOyB0 aGVuCisrCSAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgJHBpY19m bGFnIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJworKwkgIF9MVF9U QUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEpPSckQ0MgLXNoYXJlZCAkcGljX2ZsYWcgLW8g JGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tcmV0YWluLXN5bWJv bHMtZmlsZSwkZXhwb3J0X3N5bWJvbHMnCisrCSAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJf ZmxhZ19zcGVjLCAkMSk9JyR7d2x9LXJwYXRoLCRsaWJkaXInCisrCSAgX0xUX1RBR1ZBUihleHBv cnRfZHluYW1pY19mbGFnX3NwZWMsICQxKT0nJHt3bH0tRScKKysJZWxzZQorKwkgIGNhc2UgJGhv c3Rfb3MgaW4KKysJICAgb3BlbmJzZFtbMDFdXS4qIHwgb3BlbmJzZDIuW1swLTddXSB8IG9wZW5i c2QyLltbMC03XV0uKikKKysJICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckTEQg LUJzaGFyZWFibGUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzJworKwkg ICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPSctUiRsaWJkaXIn CisrCSAgICAgOzsKKysJICAgKikKKysJICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEp PSckQ0MgLXNoYXJlZCAkcGljX2ZsYWcgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGls ZXJfZmxhZ3MnCisrCSAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAk MSk9JyR7d2x9LXJwYXRoLCRsaWJkaXInCisrCSAgICAgOzsKKysJICBlc2FjCisrCWZpCisrICAg ICAgZWxzZQorKwlfTFRfVEFHVkFSKGxkX3NobGlicywgJDEpPW5vCisrICAgICAgZmkKKysgICAg ICA7OworKworKyAgICBvczIqKQorKyAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2Zs YWdfc3BlYywgJDEpPSctTCRsaWJkaXInCisrICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9taW51 c19MLCAkMSk9eWVzCisrICAgICAgX0xUX1RBR1ZBUihhbGxvd191bmRlZmluZWRfZmxhZywgJDEp PXVuc3VwcG9ydGVkCisrICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJEVDSE8g IkxJQlJBUlkgJGxpYm5hbWUgSU5JVElOU1RBTkNFIiA+ICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1l LmRlZn4kRUNITyAiREVTQ1JJUFRJT04gXCIkbGlibmFtZVwiIiA+PiAkb3V0cHV0X29iamRpci8k bGlibmFtZS5kZWZ+JEVDSE8gREFUQSA+PiAkb3V0cHV0X29iamRpci8kbGlibmFtZS5kZWZ+JEVD SE8gIiBTSU5HTEUgTk9OU0hBUkVEIiA+PiAkb3V0cHV0X29iamRpci8kbGlibmFtZS5kZWZ+JEVD SE8gRVhQT1JUUyA+PiAkb3V0cHV0X29iamRpci8kbGlibmFtZS5kZWZ+ZW14ZXhwICRsaWJvYmpz ID4+ICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLmRlZn4kQ0MgLVpkbGwgLVpjcnRkbGwgLW8gJGxp YiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJG91dHB1dF9vYmpkaXIvJGxpYm5h bWUuZGVmJworKyAgICAgIF9MVF9UQUdWQVIob2xkX2FyY2hpdmVfZnJvbV9uZXdfY21kcywgJDEp PSdlbXhpbXAgLW8gJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUuYSAkb3V0cHV0X29iamRpci8kbGli bmFtZS5kZWYnCisrICAgICAgOzsKKysKKysgICAgb3NmMyopCisrICAgICAgaWYgdGVzdCAiJEdD QyIgPSB5ZXM7IHRoZW4KKysJX0xUX1RBR1ZBUihhbGxvd191bmRlZmluZWRfZmxhZywgJDEpPScg JHt3bH0tZXhwZWN0X3VucmVzb2x2ZWQgJHt3bH1cKicKKysJX0xUX1RBR1ZBUihhcmNoaXZlX2Nt ZHMsICQxKT0nJENDIC1zaGFyZWQke2FsbG93X3VuZGVmaW5lZF9mbGFnfSAkbGlib2JqcyAkZGVw bGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR7d2x9JHNvbmFtZSBgdGVzdCAtbiAi JHZlcnN0cmluZyIgJiYgJEVDSE8gIlgke3dsfS1zZXRfdmVyc2lvbiAke3dsfSR2ZXJzdHJpbmci IHwgJFhzZWRgICR7d2x9LXVwZGF0ZV9yZWdpc3RyeSAke3dsfSR7b3V0cHV0X29iamRpcn0vc29f bG9jYXRpb25zIC1vICRsaWInCisrICAgICAgZWxzZQorKwlfTFRfVEFHVkFSKGFsbG93X3VuZGVm aW5lZF9mbGFnLCAkMSk9JyAtZXhwZWN0X3VucmVzb2x2ZWQgXConCisrCV9MVF9UQUdWQVIoYXJj aGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkJHthbGxvd191bmRlZmluZWRfZmxhZ30gJGxpYm9i anMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzIC1zb25hbWUgJHNvbmFtZSBgdGVzdCAtbiAiJHZl cnN0cmluZyIgJiYgJEVDSE8gIlgtc2V0X3ZlcnNpb24gJHZlcnN0cmluZyIgfCAkWHNlZGAgLXVw ZGF0ZV9yZWdpc3RyeSAke291dHB1dF9vYmpkaXJ9L3NvX2xvY2F0aW9ucyAtbyAkbGliJworKyAg ICAgIGZpCisrICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHNfbmVlZF9sYywgJDEpPSdubycK KysgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nJHt3bH0t cnBhdGggJHt3bH0kbGliZGlyJworKyAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX3Nl cGFyYXRvciwgJDEpPToKKysgICAgICA7OworKworKyAgICBvc2Y0KiB8IG9zZjUqKQkjIGFzIG9z ZjMqIHdpdGggdGhlIGFkZGl0aW9uIG9mIC1tc3ltIGZsYWcKKysgICAgICBpZiB0ZXN0ICIkR0ND IiA9IHllczsgdGhlbgorKwlfTFRfVEFHVkFSKGFsbG93X3VuZGVmaW5lZF9mbGFnLCAkMSk9JyAk e3dsfS1leHBlY3RfdW5yZXNvbHZlZCAke3dsfVwqJworKwlfTFRfVEFHVkFSKGFyY2hpdmVfY21k cywgJDEpPSckQ0MgLXNoYXJlZCR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9ICRsaWJvYmpzICRkZXBs aWJzICRjb21waWxlcl9mbGFncyAke3dsfS1tc3ltICR7d2x9LXNvbmFtZSAke3dsfSRzb25hbWUg YHRlc3QgLW4gIiR2ZXJzdHJpbmciICYmICRFQ0hPICJYJHt3bH0tc2V0X3ZlcnNpb24gJHt3bH0k dmVyc3RyaW5nIiB8ICRYc2VkYCAke3dsfS11cGRhdGVfcmVnaXN0cnkgJHt3bH0ke291dHB1dF9v YmpkaXJ9L3NvX2xvY2F0aW9ucyAtbyAkbGliJworKwlfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRp cl9mbGFnX3NwZWMsICQxKT0nJHt3bH0tcnBhdGggJHt3bH0kbGliZGlyJworKyAgICAgIGVsc2UK KysJX0xUX1RBR1ZBUihhbGxvd191bmRlZmluZWRfZmxhZywgJDEpPScgLWV4cGVjdF91bnJlc29s dmVkIFwqJworKwlfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXNoYXJlZCR7YWxs b3dfdW5kZWZpbmVkX2ZsYWd9ICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAtbXN5 bSAtc29uYW1lICRzb25hbWUgYHRlc3QgLW4gIiR2ZXJzdHJpbmciICYmICRFQ0hPICJYLXNldF92 ZXJzaW9uICR2ZXJzdHJpbmciIHwgJFhzZWRgIC11cGRhdGVfcmVnaXN0cnkgJHtvdXRwdXRfb2Jq ZGlyfS9zb19sb2NhdGlvbnMgLW8gJGxpYicKKysJX0xUX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9j bWRzLCAkMSk9J2ZvciBpIGluIGBjYXQgJGV4cG9ydF9zeW1ib2xzYDsgZG8gcHJpbnRmICIlcyAl c1xcbiIgLWV4cG9ydGVkX3N5bWJvbCAiXCRpIiA+PiAkbGliLmV4cDsgZG9uZTsgcHJpbnRmICIl c1xcbiIgIi1oaWRkZW4iPj4gJGxpYi5leHB+CisrCSRDQyAtc2hhcmVkJHthbGxvd191bmRlZmlu ZWRfZmxhZ30gJHt3bH0taW5wdXQgJHt3bH0kbGliLmV4cCAkY29tcGlsZXJfZmxhZ3MgJGxpYm9i anMgJGRlcGxpYnMgLXNvbmFtZSAkc29uYW1lIGB0ZXN0IC1uICIkdmVyc3RyaW5nIiAmJiAkRUNI TyAiWC1zZXRfdmVyc2lvbiAkdmVyc3RyaW5nIiB8ICRYc2VkYCAtdXBkYXRlX3JlZ2lzdHJ5ICR7 b3V0cHV0X29iamRpcn0vc29fbG9jYXRpb25zIC1vICRsaWJ+JFJNICRsaWIuZXhwJworKworKwkj IEJvdGggYyBhbmQgY3h4IGNvbXBpbGVyIHN1cHBvcnQgLXJwYXRoIGRpcmVjdGx5CisrCV9MVF9U QUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPSctcnBhdGggJGxpYmRpcicKKysg ICAgICBmaQorKyAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzX25lZWRfbGMsICQxKT0nbm8n CisrICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yLCAkMSk9OgorKyAg ICAgIDs7CisrCisrICAgIHNvbGFyaXMqKQorKyAgICAgIF9MVF9UQUdWQVIobm9fdW5kZWZpbmVk X2ZsYWcsICQxKT0nIC16IGRlZnMnCisrICAgICAgaWYgdGVzdCAiJEdDQyIgPSB5ZXM7IHRoZW4K KysJd2xhcmM9JyR7d2x9JworKwlfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXNo YXJlZCAke3dsfS16ICR7d2x9dGV4dCAke3dsfS1oICR7d2x9JHNvbmFtZSAtbyAkbGliICRsaWJv YmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKKysJX0xUX1RBR1ZBUihhcmNoaXZlX2V4cHN5 bV9jbWRzLCAkMSk9J2VjaG8gInsgZ2xvYmFsOiIgPiAkbGliLmV4cH5jYXQgJGV4cG9ydF9zeW1i b2xzIHwgJFNFRCAtZSAicy9cKC4qXCkvXDE7LyIgPj4gJGxpYi5leHB+ZWNobyAibG9jYWw6ICo7 IH07IiA+PiAkbGliLmV4cH4KKysJICAkQ0MgLXNoYXJlZCAke3dsfS16ICR7d2x9dGV4dCAke3ds fS1NICR7d2x9JGxpYi5leHAgJHt3bH0taCAke3dsfSRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAk ZGVwbGlicyAkY29tcGlsZXJfZmxhZ3N+JFJNICRsaWIuZXhwJworKyAgICAgIGVsc2UKKysJY2Fz ZSBgJENDIC1WIDI+JjFgIGluCisrCSoiQ29tcGlsZXJzIDUuMCIqKQorKwkgIHdsYXJjPScnCisr CSAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJExEIC1HJHthbGxvd191bmRlZmluZWRf ZmxhZ30gLWggJHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRsaW5rZXJfZmxhZ3Mn CisrCSAgX0xUX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9J2VjaG8gInsgZ2xvYmFs OiIgPiAkbGliLmV4cH5jYXQgJGV4cG9ydF9zeW1ib2xzIHwgJFNFRCAtZSAicy9cKC4qXCkvXDE7 LyIgPj4gJGxpYi5leHB+ZWNobyAibG9jYWw6ICo7IH07IiA+PiAkbGliLmV4cH4KKysJICAkTEQg LUcke2FsbG93X3VuZGVmaW5lZF9mbGFnfSAtTSAkbGliLmV4cCAtaCAkc29uYW1lIC1vICRsaWIg JGxpYm9ianMgJGRlcGxpYnMgJGxpbmtlcl9mbGFnc34kUk0gJGxpYi5leHAnCisrCSAgOzsKKysJ KikKKysJICB3bGFyYz0nJHt3bH0nCisrCSAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0n JENDIC1HJHthbGxvd191bmRlZmluZWRfZmxhZ30gLWggJHNvbmFtZSAtbyAkbGliICRsaWJvYmpz ICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKKysJICBfTFRfVEFHVkFSKGFyY2hpdmVfZXhwc3lt X2NtZHMsICQxKT0nZWNobyAieyBnbG9iYWw6IiA+ICRsaWIuZXhwfmNhdCAkZXhwb3J0X3N5bWJv bHMgfCAkU0VEIC1lICJzL1woLipcKS9cMTsvIiA+PiAkbGliLmV4cH5lY2hvICJsb2NhbDogKjsg fTsiID4+ICRsaWIuZXhwfgorKwkgICRDQyAtRyR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9IC1NICRs aWIuZXhwIC1oICRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxh Z3N+JFJNICRsaWIuZXhwJworKwkgIDs7CisrCWVzYWMKKysgICAgICBmaQorKyAgICAgIF9MVF9U QUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPSctUiRsaWJkaXInCisrICAgICAg X0xUX1RBR1ZBUihoYXJkY29kZV9zaGxpYnBhdGhfdmFyLCAkMSk9bm8KKysgICAgICBjYXNlICRo b3N0X29zIGluCisrICAgICAgc29sYXJpczIuW1swLTVdXSB8IHNvbGFyaXMyLltbMC01XV0uKikg OzsKKysgICAgICAqKQorKwkjIFRoZSBjb21waWxlciBkcml2ZXIgd2lsbCBjb21iaW5lIGFuZCBy ZW9yZGVyIGxpbmtlciBvcHRpb25zLAorKwkjIGJ1dCB1bmRlcnN0YW5kcyBgLXogbGlua2VyX2Zs YWcnLiAgR0NDIGRpc2NhcmRzIGl0IHdpdGhvdXQgYCR3bCcsCisrCSMgYnV0IGlzIGNhcmVmdWwg ZW5vdWdoIG5vdCB0byByZW9yZGVyLgorKwkjIFN1cHBvcnRlZCBzaW5jZSBTb2xhcmlzIDIuNiAo bWF5YmUgMi41LjE/KQorKwlpZiB0ZXN0ICIkR0NDIiA9IHllczsgdGhlbgorKwkgIF9MVF9UQUdW QVIod2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWMsICQxKT0nJHt3bH0teiAke3dsfWFsbGV4dHJhY3Qk Y29udmVuaWVuY2UgJHt3bH0teiAke3dsfWRlZmF1bHRleHRyYWN0JworKwllbHNlCisrCSAgX0xU X1RBR1ZBUih3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYywgJDEpPScteiBhbGxleHRyYWN0JGNvbnZl bmllbmNlIC16IGRlZmF1bHRleHRyYWN0JworKwlmaQorKwk7OworKyAgICAgIGVzYWMKKysgICAg ICBfTFRfVEFHVkFSKGxpbmtfYWxsX2RlcGxpYnMsICQxKT15ZXMKKysgICAgICA7OworKworKyAg ICBzdW5vczQqKQorKyAgICAgIGlmIHRlc3QgIngkaG9zdF92ZW5kb3IiID0geHNlcXVlbnQ7IHRo ZW4KKysJIyBVc2UgJENDIHRvIGxpbmsgdW5kZXIgc2VxdWVudCwgYmVjYXVzZSBpdCB0aHJvd3Mg aW4gc29tZSBleHRyYSAubworKwkjIGZpbGVzIHRoYXQgbWFrZSAuaW5pdCBhbmQgLmZpbmkgc2Vj dGlvbnMgd29yay4KKysJX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1HICR7d2x9 LWggJHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKKysg ICAgICBlbHNlCisrCV9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRMRCAtYXNzZXJ0IHB1 cmUtdGV4dCAtQnN0YXRpYyAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRsaW5rZXJfZmxhZ3Mn CisrICAgICAgZmkKKysgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMs ICQxKT0nLUwkbGliZGlyJworKyAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfZGlyZWN0LCAkMSk9 eWVzCisrICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9taW51c19MLCAkMSk9eWVzCisrICAgICAg X0xUX1RBR1ZBUihoYXJkY29kZV9zaGxpYnBhdGhfdmFyLCAkMSk9bm8KKysgICAgICA7OworKwor KyAgICBzeXN2NCkKKysgICAgICBjYXNlICRob3N0X3ZlbmRvciBpbgorKwlzbmkpCisrCSAgX0xU X1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJExEIC1HIC1oICRzb25hbWUgLW8gJGxpYiAkbGli b2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzJworKwkgIF9MVF9UQUdWQVIoaGFyZGNvZGVfZGly ZWN0LCAkMSk9eWVzICMgaXMgdGhpcyByZWFsbHkgdHJ1ZT8/PworKwk7OworKwlzaWVtZW5zKQor KwkgICMjIExEIGlzIGxkIGl0IG1ha2VzIGEgUExBTUxJQgorKwkgICMjIENDIGp1c3QgbWFrZXMg YSBHcm9zc01vZHVsZS4KKysJICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckTEQgLUcg LW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzJworKwkgIF9MVF9UQUdWQVIo cmVsb2FkX2NtZHMsICQxKT0nJENDIC1yIC1vICRvdXRwdXQkcmVsb2FkX29ianMnCisrCSAgX0xU X1RBR1ZBUihoYXJkY29kZV9kaXJlY3QsICQxKT1ubworKyAgICAgICAgOzsKKysJbW90b3JvbGEp CisrCSAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJExEIC1HIC1oICRzb25hbWUgLW8g JGxpYiAkbGlib2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzJworKwkgIF9MVF9UQUdWQVIoaGFy ZGNvZGVfZGlyZWN0LCAkMSk9bm8gI01vdG9yb2xhIG1hbnVhbCBzYXlzIHllcywgYnV0IG15IHRl c3RzIHNheSB0aGV5IGxpZQorKwk7OworKyAgICAgIGVzYWMKKysgICAgICBydW5wYXRoX3Zhcj0n TERfUlVOX1BBVEgnCisrICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9zaGxpYnBhdGhfdmFyLCAk MSk9bm8KKysgICAgICA7OworKworKyAgICBzeXN2NC4zKikKKysgICAgICBfTFRfVEFHVkFSKGFy Y2hpdmVfY21kcywgJDEpPSckTEQgLUcgLWggJHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBs aWJzICRsaW5rZXJfZmxhZ3MnCisrICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9zaGxpYnBhdGhf dmFyLCAkMSk9bm8KKysgICAgICBfTFRfVEFHVkFSKGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlYywg JDEpPSctQmV4cG9ydCcKKysgICAgICA7OworKworKyAgICBzeXN2NCpNUCopCisrICAgICAgaWYg dGVzdCAtZCAvdXNyL25lYzsgdGhlbgorKwlfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSck TEQgLUcgLWggJHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRsaW5rZXJfZmxhZ3Mn CisrCV9MVF9UQUdWQVIoaGFyZGNvZGVfc2hsaWJwYXRoX3ZhciwgJDEpPW5vCisrCXJ1bnBhdGhf dmFyPUxEX1JVTl9QQVRICisrCWhhcmRjb2RlX3J1bnBhdGhfdmFyPXllcworKwlfTFRfVEFHVkFS KGxkX3NobGlicywgJDEpPXllcworKyAgICAgIGZpCisrICAgICAgOzsKKysKKysgICAgc3lzdjQq dXcyKiB8IHN5c3Y1T3BlblVOSVgqIHwgc3lzdjVVbml4V2FyZTcuW1swMV1dLltbMTBdXSogfCB1 bml4d2FyZTcqIHwgc2NvMy4ydjUuMC5bWzAyNF1dKikKKysgICAgICBfTFRfVEFHVkFSKG5vX3Vu ZGVmaW5lZF9mbGFnLCAkMSk9JyR7d2x9LXosdGV4dCcKKysgICAgICBfTFRfVEFHVkFSKGFyY2hp dmVfY21kc19uZWVkX2xjLCAkMSk9bm8KKysgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX3NobGli cGF0aF92YXIsICQxKT1ubworKyAgICAgIHJ1bnBhdGhfdmFyPSdMRF9SVU5fUEFUSCcKKysKKysg ICAgICBpZiB0ZXN0ICIkR0NDIiA9IHllczsgdGhlbgorKwlfTFRfVEFHVkFSKGFyY2hpdmVfY21k cywgJDEpPSckQ0MgLXNoYXJlZCAke3dsfS1oLCRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVw bGlicyAkY29tcGlsZXJfZmxhZ3MnCisrCV9MVF9UQUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywg JDEpPSckQ0MgLXNoYXJlZCAke3dsfS1CZXhwb3J0OiRleHBvcnRfc3ltYm9scyAke3dsfS1oLCRz b25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCisrICAgICAg ZWxzZQorKwlfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLUcgJHt3bH0taCwkc29u YW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJworKwlfTFRfVEFH VkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0nJENDIC1HICR7d2x9LUJleHBvcnQ6JGV4cG9y dF9zeW1ib2xzICR7d2x9LWgsJHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21w aWxlcl9mbGFncycKKysgICAgICBmaQorKyAgICAgIDs7CisrCisrICAgIHN5c3Y1KiB8IHNjbzMu MnY1KiB8IHNjbzV2NiopCisrICAgICAgIyBOb3RlOiBXZSBjYW4gTk9UIHVzZSAteiBkZWZzIGFz IHdlIG1pZ2h0IGRlc2lyZSwgYmVjYXVzZSB3ZSBkbyBub3QKKysgICAgICAjIGxpbmsgd2l0aCAt bGMsIGFuZCB0aGF0IHdvdWxkIGNhdXNlIGFueSBzeW1ib2xzIHVzZWQgZnJvbSBsaWJjIHRvCisr ICAgICAgIyBhbHdheXMgYmUgdW5yZXNvbHZlZCwgd2hpY2ggbWVhbnMganVzdCBhYm91dCBubyBs aWJyYXJ5IHdvdWxkCisrICAgICAgIyBldmVyIGxpbmsgY29ycmVjdGx5LiAgSWYgd2UncmUgbm90 IHVzaW5nIEdOVSBsZCB3ZSB1c2UgLXogdGV4dAorKyAgICAgICMgdGhvdWdoLCB3aGljaCBkb2Vz IGNhdGNoIHNvbWUgYmFkIHN5bWJvbHMgYnV0IGlzbid0IGFzIGhlYXZ5LWhhbmRlZAorKyAgICAg ICMgYXMgLXogZGVmcy4KKysgICAgICBfTFRfVEFHVkFSKG5vX3VuZGVmaW5lZF9mbGFnLCAkMSk9 JyR7d2x9LXosdGV4dCcKKysgICAgICBfTFRfVEFHVkFSKGFsbG93X3VuZGVmaW5lZF9mbGFnLCAk MSk9JyR7d2x9LXosbm9kZWZzJworKyAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzX25lZWRf bGMsICQxKT1ubworKyAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfc2hsaWJwYXRoX3ZhciwgJDEp PW5vCisrICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9JyR7 d2x9LVIsJGxpYmRpcicKKysgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0 b3IsICQxKT0nOicKKysgICAgICBfTFRfVEFHVkFSKGxpbmtfYWxsX2RlcGxpYnMsICQxKT15ZXMK KysgICAgICBfTFRfVEFHVkFSKGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlYywgJDEpPScke3dsfS1C ZXhwb3J0JworKyAgICAgIHJ1bnBhdGhfdmFyPSdMRF9SVU5fUEFUSCcKKysKKysgICAgICBpZiB0 ZXN0ICIkR0NDIiA9IHllczsgdGhlbgorKwlfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSck Q0MgLXNoYXJlZCAke3dsfS1oLCRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29t cGlsZXJfZmxhZ3MnCisrCV9MVF9UQUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEpPSckQ0Mg LXNoYXJlZCAke3dsfS1CZXhwb3J0OiRleHBvcnRfc3ltYm9scyAke3dsfS1oLCRzb25hbWUgLW8g JGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCisrICAgICAgZWxzZQorKwlf TFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLUcgJHt3bH0taCwkc29uYW1lIC1vICRs aWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJworKwlfTFRfVEFHVkFSKGFyY2hp dmVfZXhwc3ltX2NtZHMsICQxKT0nJENDIC1HICR7d2x9LUJleHBvcnQ6JGV4cG9ydF9zeW1ib2xz ICR7d2x9LWgsJHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFn cycKKysgICAgICBmaQorKyAgICAgIDs7CisrCisrICAgIHV0czQqKQorKyAgICAgIF9MVF9UQUdW QVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRMRCAtRyAtaCAkc29uYW1lIC1vICRsaWIgJGxpYm9ianMg JGRlcGxpYnMgJGxpbmtlcl9mbGFncycKKysgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRp cl9mbGFnX3NwZWMsICQxKT0nLUwkbGliZGlyJworKyAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVf c2hsaWJwYXRoX3ZhciwgJDEpPW5vCisrICAgICAgOzsKKysKKysgICAgKikKKysgICAgICBfTFRf VEFHVkFSKGxkX3NobGlicywgJDEpPW5vCisrICAgICAgOzsKKysgICAgZXNhYworKworKyAgICBp ZiB0ZXN0IHgkaG9zdF92ZW5kb3IgPSB4c25pOyB0aGVuCisrICAgICAgY2FzZSAkaG9zdCBpbgor KyAgICAgIHN5c3Y0IHwgc3lzdjQuMnV3MiogfCBzeXN2NC4zKiB8IHN5c3Y1KikKKysJX0xUX1RB R1ZBUihleHBvcnRfZHluYW1pY19mbGFnX3NwZWMsICQxKT0nJHt3bH0tQmxhcmdlZHluc3ltJwor Kwk7OworKyAgICAgIGVzYWMKKysgICAgZmkKKysgIGZpCisrXSkKKytBQ19NU0dfUkVTVUxUKFsk X0xUX1RBR1ZBUihsZF9zaGxpYnMsICQxKV0pCisrdGVzdCAiJF9MVF9UQUdWQVIobGRfc2hsaWJz LCAkMSkiID0gbm8gJiYgY2FuX2J1aWxkX3NoYXJlZD1ubworKworK19MVF9UQUdWQVIod2l0aF9n bnVfbGQsICQxKT0kd2l0aF9nbnVfbGQKKysKKytfTFRfREVDTChbXSwgW2xpYmV4dF0sIFswXSwg W09sZCBhcmNoaXZlIHN1ZmZpeCAobm9ybWFsbHkgImEiKV0pZG5sCisrX0xUX0RFQ0woW10sIFtz aHJleHRfY21kc10sIFsxXSwgW1NoYXJlZCBsaWJyYXJ5IHN1ZmZpeCAobm9ybWFsbHkgIi5zbyIp XSlkbmwKKytfTFRfREVDTChbXSwgW2V4dHJhY3RfZXhwc3ltc19jbWRzXSwgWzJdLAorKyAgICBb VGhlIGNvbW1hbmRzIHRvIGV4dHJhY3QgdGhlIGV4cG9ydGVkIHN5bWJvbCBsaXN0IGZyb20gYSBz aGFyZWQgYXJjaGl2ZV0pCisrCisrIworKyMgRG8gd2UgbmVlZCB0byBleHBsaWNpdGx5IGxpbmsg bGliYz8KKysjCisrY2FzZSAieCRfTFRfVEFHVkFSKGFyY2hpdmVfY21kc19uZWVkX2xjLCAkMSki IGluCisreHx4eWVzKQorKyAgIyBBc3N1bWUgLWxjIHNob3VsZCBiZSBhZGRlZAorKyAgX0xUX1RB R1ZBUihhcmNoaXZlX2NtZHNfbmVlZF9sYywgJDEpPXllcworKworKyAgaWYgdGVzdCAiJGVuYWJs ZV9zaGFyZWQiID0geWVzICYmIHRlc3QgIiRHQ0MiID0geWVzOyB0aGVuCisrICAgIGNhc2UgJF9M VF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSkgaW4KKysgICAgKid+JyopCisrICAgICAgIyBGSVhN RTogd2UgbWF5IGhhdmUgdG8gZGVhbCB3aXRoIG11bHRpLWNvbW1hbmQgc2VxdWVuY2VzLgorKyAg ICAgIDs7CisrICAgICckQ0MgJyopCisrICAgICAgIyBUZXN0IHdoZXRoZXIgdGhlIGNvbXBpbGVy IGltcGxpY2l0bHkgbGlua3Mgd2l0aCAtbGMgc2luY2Ugb24gc29tZQorKyAgICAgICMgc3lzdGVt cywgLWxnY2MgaGFzIHRvIGNvbWUgYmVmb3JlIC1sYy4gSWYgZ2NjIGFscmVhZHkgcGFzc2VzIC1s YworKyAgICAgICMgdG8gbGQsIGRvbid0IGFkZCAtbGMgYmVmb3JlIC1sZ2NjLgorKyAgICAgIEFD X01TR19DSEVDS0lORyhbd2hldGhlciAtbGMgc2hvdWxkIGJlIGV4cGxpY2l0bHkgbGlua2VkIGlu XSkKKysgICAgICAkUk0gY29uZnRlc3QqCisrICAgICAgZWNobyAiJGx0X3NpbXBsZV9jb21waWxl X3Rlc3RfY29kZSIgPiBjb25mdGVzdC4kYWNfZXh0CisrCisrICAgICAgaWYgQUNfVFJZX0VWQUwo YWNfY29tcGlsZSkgMj5jb25mdGVzdC5lcnI7IHRoZW4KKysgICAgICAgIHNvbmFtZT1jb25mdGVz dAorKyAgICAgICAgbGliPWNvbmZ0ZXN0CisrICAgICAgICBsaWJvYmpzPWNvbmZ0ZXN0LiRhY19v YmpleHQKKysgICAgICAgIGRlcGxpYnM9CisrICAgICAgICB3bD0kX0xUX1RBR1ZBUihsdF9wcm9n X2NvbXBpbGVyX3dsLCAkMSkKKysJcGljX2ZsYWc9JF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxl cl9waWMsICQxKQorKyAgICAgICAgY29tcGlsZXJfZmxhZ3M9LXYKKysgICAgICAgIGxpbmtlcl9m bGFncz0tdgorKyAgICAgICAgdmVyc3RyaW5nPQorKyAgICAgICAgb3V0cHV0X29iamRpcj0uCisr ICAgICAgICBsaWJuYW1lPWNvbmZ0ZXN0CisrICAgICAgICBsdF9zYXZlX2FsbG93X3VuZGVmaW5l ZF9mbGFnPSRfTFRfVEFHVkFSKGFsbG93X3VuZGVmaW5lZF9mbGFnLCAkMSkKKysgICAgICAgIF9M VF9UQUdWQVIoYWxsb3dfdW5kZWZpbmVkX2ZsYWcsICQxKT0KKysgICAgICAgIGlmIEFDX1RSWV9F VkFMKF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSkgMlw+XCYxIFx8ICRHUkVQIFwiIC1sYyBc IiBcPi9kZXYvbnVsbCAyXD5cJjEpCisrICAgICAgICB0aGVuCisrCSAgX0xUX1RBR1ZBUihhcmNo aXZlX2NtZHNfbmVlZF9sYywgJDEpPW5vCisrICAgICAgICBlbHNlCisrCSAgX0xUX1RBR1ZBUihh cmNoaXZlX2NtZHNfbmVlZF9sYywgJDEpPXllcworKyAgICAgICAgZmkKKysgICAgICAgIF9MVF9U QUdWQVIoYWxsb3dfdW5kZWZpbmVkX2ZsYWcsICQxKT0kbHRfc2F2ZV9hbGxvd191bmRlZmluZWRf ZmxhZworKyAgICAgIGVsc2UKKysgICAgICAgIGNhdCBjb25mdGVzdC5lcnIgMT4mNQorKyAgICAg IGZpCisrICAgICAgJFJNIGNvbmZ0ZXN0KgorKyAgICAgIEFDX01TR19SRVNVTFQoWyRfTFRfVEFH VkFSKGFyY2hpdmVfY21kc19uZWVkX2xjLCAkMSldKQorKyAgICAgIDs7CisrICAgIGVzYWMKKysg IGZpCisrICA7OworK2VzYWMKKysKKytfTFRfVEFHREVDTChbYnVpbGRfbGlidG9vbF9uZWVkX2xj XSwgW2FyY2hpdmVfY21kc19uZWVkX2xjXSwgWzBdLAorKyAgICBbV2hldGhlciBvciBub3QgdG8g YWRkIC1sYyBmb3IgYnVpbGRpbmcgc2hhcmVkIGxpYnJhcmllc10pCisrX0xUX1RBR0RFQ0woW2Fs bG93X2xpYnRvb2xfbGlic193aXRoX3N0YXRpY19ydW50aW1lc10sCisrICAgIFtlbmFibGVfc2hh cmVkX3dpdGhfc3RhdGljX3J1bnRpbWVzXSwgWzBdLAorKyAgICBbV2hldGhlciBvciBub3QgdG8g ZGlzYWxsb3cgc2hhcmVkIGxpYnMgd2hlbiBydW50aW1lIGxpYnMgYXJlIHN0YXRpY10pCisrX0xU X1RBR0RFQ0woW10sIFtleHBvcnRfZHluYW1pY19mbGFnX3NwZWNdLCBbMV0sCisrICAgIFtDb21w aWxlciBmbGFnIHRvIGFsbG93IHJlZmxleGl2ZSBkbG9wZW5zXSkKKytfTFRfVEFHREVDTChbXSwg W3dob2xlX2FyY2hpdmVfZmxhZ19zcGVjXSwgWzFdLAorKyAgICBbQ29tcGlsZXIgZmxhZyB0byBn ZW5lcmF0ZSBzaGFyZWQgb2JqZWN0cyBkaXJlY3RseSBmcm9tIGFyY2hpdmVzXSkKKytfTFRfVEFH REVDTChbXSwgW2NvbXBpbGVyX25lZWRzX29iamVjdF0sIFsxXSwKKysgICAgW1doZXRoZXIgdGhl IGNvbXBpbGVyIGNvcGVzIHdpdGggcGFzc2luZyBubyBvYmplY3RzIGRpcmVjdGx5XSkKKytfTFRf VEFHREVDTChbXSwgW29sZF9hcmNoaXZlX2Zyb21fbmV3X2NtZHNdLCBbMl0sCisrICAgIFtDcmVh dGUgYW4gb2xkLXN0eWxlIGFyY2hpdmUgZnJvbSBhIHNoYXJlZCBhcmNoaXZlXSkKKytfTFRfVEFH REVDTChbXSwgW29sZF9hcmNoaXZlX2Zyb21fZXhwc3ltc19jbWRzXSwgWzJdLAorKyAgICBbQ3Jl YXRlIGEgdGVtcG9yYXJ5IG9sZC1zdHlsZSBhcmNoaXZlIHRvIGxpbmsgaW5zdGVhZCBvZiBhIHNo YXJlZCBhcmNoaXZlXSkKKytfTFRfVEFHREVDTChbXSwgW2FyY2hpdmVfY21kc10sIFsyXSwgW0Nv bW1hbmRzIHVzZWQgdG8gYnVpbGQgYSBzaGFyZWQgYXJjaGl2ZV0pCisrX0xUX1RBR0RFQ0woW10s IFthcmNoaXZlX2V4cHN5bV9jbWRzXSwgWzJdKQorK19MVF9UQUdERUNMKFtdLCBbbW9kdWxlX2Nt ZHNdLCBbMl0sCisrICAgIFtDb21tYW5kcyB1c2VkIHRvIGJ1aWxkIGEgbG9hZGFibGUgbW9kdWxl IGlmIGRpZmZlcmVudCBmcm9tIGJ1aWxkaW5nCisrICAgIGEgc2hhcmVkIGFyY2hpdmUuXSkKKytf TFRfVEFHREVDTChbXSwgW21vZHVsZV9leHBzeW1fY21kc10sIFsyXSkKKytfTFRfVEFHREVDTChb XSwgW3dpdGhfZ251X2xkXSwgWzFdLAorKyAgICBbV2hldGhlciB3ZSBhcmUgYnVpbGRpbmcgd2l0 aCBHTlUgbGQgb3Igbm90XSkKKytfTFRfVEFHREVDTChbXSwgW2FsbG93X3VuZGVmaW5lZF9mbGFn XSwgWzFdLAorKyAgICBbRmxhZyB0aGF0IGFsbG93cyBzaGFyZWQgbGlicmFyaWVzIHdpdGggdW5k ZWZpbmVkIHN5bWJvbHMgdG8gYmUgYnVpbHRdKQorK19MVF9UQUdERUNMKFtdLCBbbm9fdW5kZWZp bmVkX2ZsYWddLCBbMV0sCisrICAgIFtGbGFnIHRoYXQgZW5mb3JjZXMgbm8gdW5kZWZpbmVkIHN5 bWJvbHNdKQorK19MVF9UQUdERUNMKFtdLCBbaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY10sIFsx XSwKKysgICAgW0ZsYWcgdG8gaGFyZGNvZGUgJGxpYmRpciBpbnRvIGEgYmluYXJ5IGR1cmluZyBs aW5raW5nLgorKyAgICBUaGlzIG11c3Qgd29yayBldmVuIGlmICRsaWJkaXIgZG9lcyBub3QgZXhp c3RdKQorK19MVF9UQUdERUNMKFtdLCBbaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19sZF0sIFsx XSwKKysgICAgW1tJZiBsZCBpcyB1c2VkIHdoZW4gbGlua2luZywgZmxhZyB0byBoYXJkY29kZSAk bGliZGlyIGludG8gYSBiaW5hcnkKKysgICAgZHVyaW5nIGxpbmtpbmcuICBUaGlzIG11c3Qgd29y ayBldmVuIGlmICRsaWJkaXIgZG9lcyBub3QgZXhpc3RdXSkKKytfTFRfVEFHREVDTChbXSwgW2hh cmRjb2RlX2xpYmRpcl9zZXBhcmF0b3JdLCBbMV0sCisrICAgIFtXaGV0aGVyIHdlIG5lZWQgYSBz aW5nbGUgIi1ycGF0aCIgZmxhZyB3aXRoIGEgc2VwYXJhdGVkIGFyZ3VtZW50XSkKKytfTFRfVEFH REVDTChbXSwgW2hhcmRjb2RlX2RpcmVjdF0sIFswXSwKKysgICAgW1NldCB0byAieWVzIiBpZiB1 c2luZyBESVIvbGliTkFNRSR7c2hhcmVkX2V4dH0gZHVyaW5nIGxpbmtpbmcgaGFyZGNvZGVzCisr ICAgIERJUiBpbnRvIHRoZSByZXN1bHRpbmcgYmluYXJ5XSkKKytfTFRfVEFHREVDTChbXSwgW2hh cmRjb2RlX2RpcmVjdF9hYnNvbHV0ZV0sIFswXSwKKysgICAgW1NldCB0byAieWVzIiBpZiB1c2lu ZyBESVIvbGliTkFNRSR7c2hhcmVkX2V4dH0gZHVyaW5nIGxpbmtpbmcgaGFyZGNvZGVzCisrICAg IERJUiBpbnRvIHRoZSByZXN1bHRpbmcgYmluYXJ5IGFuZCB0aGUgcmVzdWx0aW5nIGxpYnJhcnkg ZGVwZW5kZW5jeSBpcworKyAgICAiYWJzb2x1dGUiLCBpLmUgaW1wb3NzaWJsZSB0byBjaGFuZ2Ug Ynkgc2V0dGluZyAke3NobGlicGF0aF92YXJ9IGlmIHRoZQorKyAgICBsaWJyYXJ5IGlzIHJlbG9j YXRlZF0pCisrX0xUX1RBR0RFQ0woW10sIFtoYXJkY29kZV9taW51c19MXSwgWzBdLAorKyAgICBb U2V0IHRvICJ5ZXMiIGlmIHVzaW5nIHRoZSAtTERJUiBmbGFnIGR1cmluZyBsaW5raW5nIGhhcmRj b2RlcyBESVIKKysgICAgaW50byB0aGUgcmVzdWx0aW5nIGJpbmFyeV0pCisrX0xUX1RBR0RFQ0wo W10sIFtoYXJkY29kZV9zaGxpYnBhdGhfdmFyXSwgWzBdLAorKyAgICBbU2V0IHRvICJ5ZXMiIGlm IHVzaW5nIFNITElCUEFUSF9WQVI9RElSIGR1cmluZyBsaW5raW5nIGhhcmRjb2RlcyBESVIKKysg ICAgaW50byB0aGUgcmVzdWx0aW5nIGJpbmFyeV0pCisrX0xUX1RBR0RFQ0woW10sIFtoYXJkY29k ZV9hdXRvbWF0aWNdLCBbMF0sCisrICAgIFtTZXQgdG8gInllcyIgaWYgYnVpbGRpbmcgYSBzaGFy ZWQgbGlicmFyeSBhdXRvbWF0aWNhbGx5IGhhcmRjb2RlcyBESVIKKysgICAgaW50byB0aGUgbGli cmFyeSBhbmQgYWxsIHN1YnNlcXVlbnQgbGlicmFyaWVzIGFuZCBleGVjdXRhYmxlcyBsaW5rZWQK KysgICAgYWdhaW5zdCBpdF0pCisrX0xUX1RBR0RFQ0woW10sIFtpbmhlcml0X3JwYXRoXSwgWzBd LAorKyAgICBbU2V0IHRvIHllcyBpZiBsaW5rZXIgYWRkcyBydW50aW1lIHBhdGhzIG9mIGRlcGVu ZGVudCBsaWJyYXJpZXMKKysgICAgdG8gcnVudGltZSBwYXRoIGxpc3RdKQorK19MVF9UQUdERUNM KFtdLCBbbGlua19hbGxfZGVwbGlic10sIFswXSwKKysgICAgW1doZXRoZXIgbGlidG9vbCBtdXN0 IGxpbmsgYSBwcm9ncmFtIGFnYWluc3QgYWxsIGl0cyBkZXBlbmRlbmN5IGxpYnJhcmllc10pCisr X0xUX1RBR0RFQ0woW10sIFtmaXhfc3JjZmlsZV9wYXRoXSwgWzFdLAorKyAgICBbRml4IHRoZSBz aGVsbCB2YXJpYWJsZSAkc3JjZmlsZSBmb3IgdGhlIGNvbXBpbGVyXSkKKytfTFRfVEFHREVDTChb XSwgW2Fsd2F5c19leHBvcnRfc3ltYm9sc10sIFswXSwKKysgICAgW1NldCB0byAieWVzIiBpZiBl eHBvcnRlZCBzeW1ib2xzIGFyZSByZXF1aXJlZF0pCisrX0xUX1RBR0RFQ0woW10sIFtleHBvcnRf c3ltYm9sc19jbWRzXSwgWzJdLAorKyAgICBbVGhlIGNvbW1hbmRzIHRvIGxpc3QgZXhwb3J0ZWQg c3ltYm9sc10pCisrX0xUX1RBR0RFQ0woW10sIFtleGNsdWRlX2V4cHN5bXNdLCBbMV0sCisrICAg IFtTeW1ib2xzIHRoYXQgc2hvdWxkIG5vdCBiZSBsaXN0ZWQgaW4gdGhlIHByZWxvYWRlZCBzeW1i b2xzXSkKKytfTFRfVEFHREVDTChbXSwgW2luY2x1ZGVfZXhwc3ltc10sIFsxXSwKKysgICAgW1N5 bWJvbHMgdGhhdCBtdXN0IGFsd2F5cyBiZSBleHBvcnRlZF0pCisrX0xUX1RBR0RFQ0woW10sIFtw cmVsaW5rX2NtZHNdLCBbMl0sCisrICAgIFtDb21tYW5kcyBuZWNlc3NhcnkgZm9yIGxpbmtpbmcg cHJvZ3JhbXMgKGFnYWluc3QgbGlicmFyaWVzKSB3aXRoIHRlbXBsYXRlc10pCisrX0xUX1RBR0RF Q0woW10sIFtmaWxlX2xpc3Rfc3BlY10sIFsxXSwKKysgICAgW1NwZWNpZnkgZmlsZW5hbWUgY29u dGFpbmluZyBpbnB1dCBmaWxlc10pCisrZG5sIEZJWE1FOiBOb3QgeWV0IGltcGxlbWVudGVkCisr ZG5sIF9MVF9UQUdERUNMKFtdLCBbdGhyZWFkX3NhZmVfZmxhZ19zcGVjXSwgWzFdLAorK2RubCAg ICBbQ29tcGlsZXIgZmxhZyB0byBnZW5lcmF0ZSB0aHJlYWQgc2FmZSBvYmplY3RzXSkKKytdKSMg X0xUX0xJTktFUl9TSExJQlMKKysKKysKKysjIF9MVF9MQU5HX0NfQ09ORklHKFtUQUddKQorKyMg LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrIyBFbnN1cmUgdGhhdCB0aGUgY29uZmlndXJhdGlv biB2YXJpYWJsZXMgZm9yIGEgQyBjb21waWxlciBhcmUgc3VpdGFibHkKKysjIGRlZmluZWQuICBU aGVzZSB2YXJpYWJsZXMgYXJlIHN1YnNlcXVlbnRseSB1c2VkIGJ5IF9MVF9DT05GSUcgdG8gd3Jp dGUKKysjIHRoZSBjb21waWxlciBjb25maWd1cmF0aW9uIHRvIGBsaWJ0b29sJy4KKyttNF9kZWZ1 bihbX0xUX0xBTkdfQ19DT05GSUddLAorK1ttNF9yZXF1aXJlKFtfTFRfREVDTF9FR1JFUF0pZG5s CisrbHRfc2F2ZV9DQz0iJENDIgorK0FDX0xBTkdfUFVTSChDKQorKworKyMgU291cmNlIGZpbGUg ZXh0ZW5zaW9uIGZvciBDIHRlc3Qgc291cmNlcy4KKythY19leHQ9YworKworKyMgT2JqZWN0IGZp bGUgZXh0ZW5zaW9uIGZvciBjb21waWxlZCBDIHRlc3Qgc291cmNlcy4KKytvYmpleHQ9bworK19M VF9UQUdWQVIob2JqZXh0LCAkMSk9JG9iamV4dAorKworKyMgQ29kZSB0byBiZSB1c2VkIGluIHNp bXBsZSBjb21waWxlIHRlc3RzCisrbHRfc2ltcGxlX2NvbXBpbGVfdGVzdF9jb2RlPSJpbnQgc29t ZV92YXJpYWJsZSA9IDA7IgorKworKyMgQ29kZSB0byBiZSB1c2VkIGluIHNpbXBsZSBsaW5rIHRl c3RzCisrbHRfc2ltcGxlX2xpbmtfdGVzdF9jb2RlPSdpbnQgbWFpbigpe3JldHVybigwKTt9Jwor KworK19MVF9UQUdfQ09NUElMRVIKKysjIFNhdmUgdGhlIGRlZmF1bHQgY29tcGlsZXIsIHNpbmNl IGl0IGdldHMgb3ZlcndyaXR0ZW4gd2hlbiB0aGUgb3RoZXIKKysjIHRhZ3MgYXJlIGJlaW5nIHRl c3RlZCwgYW5kIF9MVF9UQUdWQVIoY29tcGlsZXIsIFtdKSBpcyBhIE5PUC4KKytjb21waWxlcl9E RUZBVUxUPSRDQworKworKyMgc2F2ZSB3YXJuaW5ncy9ib2lsZXJwbGF0ZSBvZiBzaW1wbGUgdGVz dCBjb2RlCisrX0xUX0NPTVBJTEVSX0JPSUxFUlBMQVRFCisrX0xUX0xJTktFUl9CT0lMRVJQTEFU RQorKworKyMjIENBVkVBVCBFTVBUT1I6CisrIyMgVGhlcmUgaXMgbm8gZW5jYXBzdWxhdGlvbiB3 aXRoaW4gdGhlIGZvbGxvd2luZyBtYWNyb3MsIGRvIG5vdCBjaGFuZ2UKKysjIyB0aGUgcnVubmlu ZyBvcmRlciBvciBvdGhlcndpc2UgbW92ZSB0aGVtIGFyb3VuZCB1bmxlc3MgeW91IGtub3cgZXhh Y3RseQorKyMjIHdoYXQgeW91IGFyZSBkb2luZy4uLgorK2lmIHRlc3QgLW4gIiRjb21waWxlciI7 IHRoZW4KKysgIF9MVF9DT01QSUxFUl9OT19SVFRJKCQxKQorKyAgX0xUX0NPTVBJTEVSX1BJQygk MSkKKysgIF9MVF9DT01QSUxFUl9DX08oJDEpCisrICBfTFRfQ09NUElMRVJfRklMRV9MT0NLUygk MSkKKysgIF9MVF9MSU5LRVJfU0hMSUJTKCQxKQorKyAgX0xUX1NZU19EWU5BTUlDX0xJTktFUigk MSkKKysgIF9MVF9MSU5LRVJfSEFSRENPREVfTElCUEFUSCgkMSkKKysgIExUX1NZU19ETE9QRU5f U0VMRgorKyAgX0xUX0NNRF9TVFJJUExJQgorKworKyAgIyBSZXBvcnQgd2hpY2ggbGlicmFyeSB0 eXBlcyB3aWxsIGFjdHVhbGx5IGJlIGJ1aWx0CisrICBBQ19NU0dfQ0hFQ0tJTkcoW2lmIGxpYnRv b2wgc3VwcG9ydHMgc2hhcmVkIGxpYnJhcmllc10pCisrICBBQ19NU0dfUkVTVUxUKFskY2FuX2J1 aWxkX3NoYXJlZF0pCisrCisrICBBQ19NU0dfQ0hFQ0tJTkcoW3doZXRoZXIgdG8gYnVpbGQgc2hh cmVkIGxpYnJhcmllc10pCisrICB0ZXN0ICIkY2FuX2J1aWxkX3NoYXJlZCIgPSAibm8iICYmIGVu YWJsZV9zaGFyZWQ9bm8KKysKKysgICMgT24gQUlYLCBzaGFyZWQgbGlicmFyaWVzIGFuZCBzdGF0 aWMgbGlicmFyaWVzIHVzZSB0aGUgc2FtZSBuYW1lc3BhY2UsIGFuZAorKyAgIyBhcmUgYWxsIGJ1 aWx0IGZyb20gUElDLgorKyAgY2FzZSAkaG9zdF9vcyBpbgorKyAgYWl4MyopCisrICAgIHRlc3Qg IiRlbmFibGVfc2hhcmVkIiA9IHllcyAmJiBlbmFibGVfc3RhdGljPW5vCisrICAgIGlmIHRlc3Qg LW4gIiRSQU5MSUIiOyB0aGVuCisrICAgICAgYXJjaGl2ZV9jbWRzPSIkYXJjaGl2ZV9jbWRzflwk UkFOTElCIFwkbGliIgorKyAgICAgIHBvc3RpbnN0YWxsX2NtZHM9JyRSQU5MSUIgJGxpYicKKysg ICAgZmkKKysgICAgOzsKKysKKysgIGFpeFtbNC05XV0qKQorKyAgICBpZiB0ZXN0ICIkaG9zdF9j cHUiICE9IGlhNjQgJiYgdGVzdCAiJGFpeF91c2VfcnVudGltZWxpbmtpbmciID0gbm8gOyB0aGVu CisrICAgICAgdGVzdCAiJGVuYWJsZV9zaGFyZWQiID0geWVzICYmIGVuYWJsZV9zdGF0aWM9bm8K KysgICAgZmkKKysgICAgOzsKKysgIGVzYWMKKysgIEFDX01TR19SRVNVTFQoWyRlbmFibGVfc2hh cmVkXSkKKysKKysgIEFDX01TR19DSEVDS0lORyhbd2hldGhlciB0byBidWlsZCBzdGF0aWMgbGli cmFyaWVzXSkKKysgICMgTWFrZSBzdXJlIGVpdGhlciBlbmFibGVfc2hhcmVkIG9yIGVuYWJsZV9z dGF0aWMgaXMgeWVzLgorKyAgdGVzdCAiJGVuYWJsZV9zaGFyZWQiID0geWVzIHx8IGVuYWJsZV9z dGF0aWM9eWVzCisrICBBQ19NU0dfUkVTVUxUKFskZW5hYmxlX3N0YXRpY10pCisrCisrICBfTFRf Q09ORklHKCQxKQorK2ZpCisrQUNfTEFOR19QT1AKKytDQz0iJGx0X3NhdmVfQ0MiCisrXSkjIF9M VF9MQU5HX0NfQ09ORklHCisrCisrCisrIyBfTFRfUFJPR19DWFgKKysjIC0tLS0tLS0tLS0tLQor KyMgU2luY2UgQUNfUFJPR19DWFggaXMgYnJva2VuLCBpbiB0aGF0IGl0IHJldHVybnMgZysrIGlm IHRoZXJlIGlzIG5vIGMrKworKyMgY29tcGlsZXIsIHdlIGhhdmUgb3VyIG93biB2ZXJzaW9uIGhl cmUuCisrbTRfZGVmdW4oW19MVF9QUk9HX0NYWF0sCisrWworK3B1c2hkZWYoW0FDX01TR19FUlJP Ul0sIFtfbHRfY2F1Z2h0X0NYWF9lcnJvcj15ZXNdKQorK0FDX1BST0dfQ1hYCisraWYgdGVzdCAt biAiJENYWCIgJiYgKCB0ZXN0ICJYJENYWCIgIT0gIlhubyIgJiYKKysgICAgKCAodGVzdCAiWCRD WFgiID0gIlhnKysiICYmIGBnKysgLXYgPi9kZXYvbnVsbCAyPiYxYCApIHx8CisrICAgICh0ZXN0 ICJYJENYWCIgIT0gIlhnKysiKSkpIDsgdGhlbgorKyAgQUNfUFJPR19DWFhDUFAKKytlbHNlCisr ICBfbHRfY2F1Z2h0X0NYWF9lcnJvcj15ZXMKKytmaQorK3BvcGRlZihbQUNfTVNHX0VSUk9SXSkK KytdKSMgX0xUX1BST0dfQ1hYCisrCisrZG5sIGFjbG9jYWwtMS40IGJhY2t3YXJkcyBjb21wYXRp YmlsaXR5OgorK2RubCBBQ19ERUZVTihbX0xUX1BST0dfQ1hYXSwgW10pCisrCisrCisrIyBfTFRf TEFOR19DWFhfQ09ORklHKFtUQUddKQorKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKysj IEVuc3VyZSB0aGF0IHRoZSBjb25maWd1cmF0aW9uIHZhcmlhYmxlcyBmb3IgYSBDKysgY29tcGls ZXIgYXJlIHN1aXRhYmx5CisrIyBkZWZpbmVkLiAgVGhlc2UgdmFyaWFibGVzIGFyZSBzdWJzZXF1 ZW50bHkgdXNlZCBieSBfTFRfQ09ORklHIHRvIHdyaXRlCisrIyB0aGUgY29tcGlsZXIgY29uZmln dXJhdGlvbiB0byBgbGlidG9vbCcuCisrbTRfZGVmdW4oW19MVF9MQU5HX0NYWF9DT05GSUddLAor K1tBQ19SRVFVSVJFKFtfTFRfUFJPR19DWFhdKWRubAorK200X3JlcXVpcmUoW19MVF9GSUxFVVRJ TFNfREVGQVVMVFNdKWRubAorK200X3JlcXVpcmUoW19MVF9ERUNMX0VHUkVQXSlkbmwKKysKKytB Q19MQU5HX1BVU0goQysrKQorK19MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzX25lZWRfbGMsICQxKT1u bworK19MVF9UQUdWQVIoYWxsb3dfdW5kZWZpbmVkX2ZsYWcsICQxKT0KKytfTFRfVEFHVkFSKGFs d2F5c19leHBvcnRfc3ltYm9scywgJDEpPW5vCisrX0xUX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9j bWRzLCAkMSk9CisrX0xUX1RBR1ZBUihjb21waWxlcl9uZWVkc19vYmplY3QsICQxKT1ubworK19M VF9UQUdWQVIoZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjLCAkMSk9CisrX0xUX1RBR1ZBUihoYXJk Y29kZV9kaXJlY3QsICQxKT1ubworK19MVF9UQUdWQVIoaGFyZGNvZGVfZGlyZWN0X2Fic29sdXRl LCAkMSk9bm8KKytfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0KKytf TFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfbGQsICQxKT0KKytfTFRfVEFHVkFS KGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3IsICQxKT0KKytfTFRfVEFHVkFSKGhhcmRjb2RlX21p bnVzX0wsICQxKT1ubworK19MVF9UQUdWQVIoaGFyZGNvZGVfc2hsaWJwYXRoX3ZhciwgJDEpPXVu c3VwcG9ydGVkCisrX0xUX1RBR1ZBUihoYXJkY29kZV9hdXRvbWF0aWMsICQxKT1ubworK19MVF9U QUdWQVIoaW5oZXJpdF9ycGF0aCwgJDEpPW5vCisrX0xUX1RBR1ZBUihtb2R1bGVfY21kcywgJDEp PQorK19MVF9UQUdWQVIobW9kdWxlX2V4cHN5bV9jbWRzLCAkMSk9CisrX0xUX1RBR1ZBUihsaW5r X2FsbF9kZXBsaWJzLCAkMSk9dW5rbm93bgorK19MVF9UQUdWQVIob2xkX2FyY2hpdmVfY21kcywg JDEpPSRvbGRfYXJjaGl2ZV9jbWRzCisrX0xUX1RBR1ZBUihub191bmRlZmluZWRfZmxhZywgJDEp PQorK19MVF9UQUdWQVIod2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWMsICQxKT0KKytfTFRfVEFHVkFS KGVuYWJsZV9zaGFyZWRfd2l0aF9zdGF0aWNfcnVudGltZXMsICQxKT1ubworKworKyMgU291cmNl IGZpbGUgZXh0ZW5zaW9uIGZvciBDKysgdGVzdCBzb3VyY2VzLgorK2FjX2V4dD1jcHAKKysKKysj IE9iamVjdCBmaWxlIGV4dGVuc2lvbiBmb3IgY29tcGlsZWQgQysrIHRlc3Qgc291cmNlcy4KKytv YmpleHQ9bworK19MVF9UQUdWQVIob2JqZXh0LCAkMSk9JG9iamV4dAorKworKyMgTm8gc2Vuc2Ug aW4gcnVubmluZyBhbGwgdGhlc2UgdGVzdHMgaWYgd2UgYWxyZWFkeSBkZXRlcm1pbmVkIHRoYXQK KysjIHRoZSBDWFggY29tcGlsZXIgaXNuJ3Qgd29ya2luZy4gIFNvbWUgdmFyaWFibGVzIChsaWtl IGVuYWJsZV9zaGFyZWQpCisrIyBhcmUgY3VycmVudGx5IGFzc3VtZWQgdG8gYXBwbHkgdG8gYWxs IGNvbXBpbGVycyBvbiB0aGlzIHBsYXRmb3JtLAorKyMgYW5kIHdpbGwgYmUgY29ycnVwdGVkIGJ5 IHNldHRpbmcgdGhlbSBiYXNlZCBvbiBhIG5vbi13b3JraW5nIGNvbXBpbGVyLgorK2lmIHRlc3Qg IiRfbHRfY2F1Z2h0X0NYWF9lcnJvciIgIT0geWVzOyB0aGVuCisrICAjIENvZGUgdG8gYmUgdXNl ZCBpbiBzaW1wbGUgY29tcGlsZSB0ZXN0cworKyAgbHRfc2ltcGxlX2NvbXBpbGVfdGVzdF9jb2Rl PSJpbnQgc29tZV92YXJpYWJsZSA9IDA7IgorKworKyAgIyBDb2RlIHRvIGJlIHVzZWQgaW4gc2lt cGxlIGxpbmsgdGVzdHMKKysgIGx0X3NpbXBsZV9saW5rX3Rlc3RfY29kZT0naW50IG1haW4oaW50 LCBjaGFyICpbW11dKSB7IHJldHVybigwKTsgfScKKysKKysgICMgbHRtYWluIG9ubHkgdXNlcyAk Q0MgZm9yIHRhZ2dlZCBjb25maWd1cmF0aW9ucyBzbyBtYWtlIHN1cmUgJENDIGlzIHNldC4KKysg IF9MVF9UQUdfQ09NUElMRVIKKysKKysgICMgc2F2ZSB3YXJuaW5ncy9ib2lsZXJwbGF0ZSBvZiBz aW1wbGUgdGVzdCBjb2RlCisrICBfTFRfQ09NUElMRVJfQk9JTEVSUExBVEUKKysgIF9MVF9MSU5L RVJfQk9JTEVSUExBVEUKKysKKysgICMgQWxsb3cgQ0MgdG8gYmUgYSBwcm9ncmFtIG5hbWUgd2l0 aCBhcmd1bWVudHMuCisrICBsdF9zYXZlX0NDPSRDQworKyAgbHRfc2F2ZV9MRD0kTEQKKysgIGx0 X3NhdmVfR0NDPSRHQ0MKKysgIEdDQz0kR1hYCisrICBsdF9zYXZlX3dpdGhfZ251X2xkPSR3aXRo X2dudV9sZAorKyAgbHRfc2F2ZV9wYXRoX0xEPSRsdF9jdl9wYXRoX0xECisrICBpZiB0ZXN0IC1u ICIke2x0X2N2X3Byb2dfZ251X2xkY3h4K3NldH0iOyB0aGVuCisrICAgIGx0X2N2X3Byb2dfZ251 X2xkPSRsdF9jdl9wcm9nX2dudV9sZGN4eAorKyAgZWxzZQorKyAgICAkYXNfdW5zZXQgbHRfY3Zf cHJvZ19nbnVfbGQKKysgIGZpCisrICBpZiB0ZXN0IC1uICIke2x0X2N2X3BhdGhfTERDWFgrc2V0 fSI7IHRoZW4KKysgICAgbHRfY3ZfcGF0aF9MRD0kbHRfY3ZfcGF0aF9MRENYWAorKyAgZWxzZQor KyAgICAkYXNfdW5zZXQgbHRfY3ZfcGF0aF9MRAorKyAgZmkKKysgIHRlc3QgLXogIiR7TERDWFgr c2V0fSIgfHwgTEQ9JExEQ1hYCisrICBDQz0ke0NYWC0iYysrIn0KKysgIGNvbXBpbGVyPSRDQwor KyAgX0xUX1RBR1ZBUihjb21waWxlciwgJDEpPSRDQworKyAgX0xUX0NDX0JBU0VOQU1FKFskY29t cGlsZXJdKQorKworKyAgaWYgdGVzdCAtbiAiJGNvbXBpbGVyIjsgdGhlbgorKyAgICAjIFdlIGRv bid0IHdhbnQgLWZuby1leGNlcHRpb24gd2hlbiBjb21waWxpbmcgQysrIGNvZGUsIHNvIHNldCB0 aGUKKysgICAgIyBub19idWlsdGluX2ZsYWcgc2VwYXJhdGVseQorKyAgICBpZiB0ZXN0ICIkR1hY IiA9IHllczsgdGhlbgorKyAgICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9ub19idWls dGluX2ZsYWcsICQxKT0nIC1mbm8tYnVpbHRpbicKKysgICAgZWxzZQorKyAgICAgIF9MVF9UQUdW QVIobHRfcHJvZ19jb21waWxlcl9ub19idWlsdGluX2ZsYWcsICQxKT0KKysgICAgZmkKKysKKysg ICAgaWYgdGVzdCAiJEdYWCIgPSB5ZXM7IHRoZW4KKysgICAgICAjIFNldCB1cCBkZWZhdWx0IEdO VSBDKysgY29uZmlndXJhdGlvbgorKworKyAgICAgIExUX1BBVEhfTEQKKysKKysgICAgICAjIENo ZWNrIGlmIEdOVSBDKysgdXNlcyBHTlUgbGQgYXMgdGhlIHVuZGVybHlpbmcgbGlua2VyLCBzaW5j ZSB0aGUKKysgICAgICAjIGFyY2hpdmluZyBjb21tYW5kcyBiZWxvdyBhc3N1bWUgdGhhdCBHTlUg bGQgaXMgYmVpbmcgdXNlZC4KKysgICAgICBpZiB0ZXN0ICIkd2l0aF9nbnVfbGQiID0geWVzOyB0 aGVuCisrICAgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXNoYXJlZCAt bm9zdGRsaWIgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVj dHMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAkd2wkc29uYW1lIC1vICRsaWInCisrICAg ICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgLW5v c3RkbGliICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3Rz ICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAke3dsfS1yZXRhaW4tc3lt Ym9scy1maWxlICR3bCRleHBvcnRfc3ltYm9scyAtbyAkbGliJworKworKyAgICAgICAgX0xUX1RB R1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LXJwYXRoICR7d2x9JGxp YmRpcicKKysgICAgICAgIF9MVF9UQUdWQVIoZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjLCAkMSk9 JyR7d2x9LS1leHBvcnQtZHluYW1pYycKKysKKysgICAgICAgICMgSWYgYXJjaGl2ZV9jbWRzIHJ1 bnMgTEQsIG5vdCBDQywgd2xhcmMgc2hvdWxkIGJlIGVtcHR5CisrICAgICAgICAjIFhYWCBJIHRo aW5rIHdsYXJjIGNhbiBiZSBlbGltaW5hdGVkIGluIGx0Y2YtY3h4LCBidXQgSSBuZWVkIHRvCisr ICAgICAgICAjICAgICBpbnZlc3RpZ2F0ZSBpdCBhIGxpdHRsZSBiaXQgbW9yZS4gKE1NKQorKyAg ICAgICAgd2xhcmM9JyR7d2x9JworKworKyAgICAgICAgIyBhbmNpZW50IEdOVSBsZCBkaWRuJ3Qg c3VwcG9ydCAtLXdob2xlLWFyY2hpdmUgZXQuIGFsLgorKyAgICAgICAgaWYgZXZhbCAiYCRDQyAt cHJpbnQtcHJvZy1uYW1lPWxkYCAtLWhlbHAgMj4mMSIgfAorKwkgICRHUkVQICduby13aG9sZS1h cmNoaXZlJyA+IC9kZXYvbnVsbDsgdGhlbgorKyAgICAgICAgICBfTFRfVEFHVkFSKHdob2xlX2Fy Y2hpdmVfZmxhZ19zcGVjLCAkMSk9IiR3bGFyYyInLS13aG9sZS1hcmNoaXZlJGNvbnZlbmllbmNl ICciJHdsYXJjIictLW5vLXdob2xlLWFyY2hpdmUnCisrICAgICAgICBlbHNlCisrICAgICAgICAg IF9MVF9UQUdWQVIod2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWMsICQxKT0KKysgICAgICAgIGZpCisr ICAgICAgZWxzZQorKyAgICAgICAgd2l0aF9nbnVfbGQ9bm8KKysgICAgICAgIHdsYXJjPQorKwor KyAgICAgICAgIyBBIGdlbmVyaWMgYW5kIHZlcnkgc2ltcGxlIGRlZmF1bHQgc2hhcmVkIGxpYnJh cnkgY3JlYXRpb24KKysgICAgICAgICMgY29tbWFuZCBmb3IgR05VIEMrKyBmb3IgdGhlIGNhc2Ug d2hlcmUgaXQgdXNlcyB0aGUgbmF0aXZlCisrICAgICAgICAjIGxpbmtlciwgaW5zdGVhZCBvZiBH TlUgbGQuICBJZiBwb3NzaWJsZSwgdGhpcyBzZXR0aW5nIHNob3VsZAorKyAgICAgICAgIyBvdmVy cmlkZGVuIHRvIHRha2UgYWR2YW50YWdlIG9mIHRoZSBuYXRpdmUgbGlua2VyIGZlYXR1cmVzIG9u CisrICAgICAgICAjIHRoZSBwbGF0Zm9ybSBpdCBpcyBiZWluZyB1c2VkIG9uLgorKyAgICAgICAg X0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgLW5vc3RkbGliICRwcmVk ZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9m bGFncyAtbyAkbGliJworKyAgICAgIGZpCisrCisrICAgICAgIyBDb21tYW5kcyB0byBtYWtlIGNv bXBpbGVyIHByb2R1Y2UgdmVyYm9zZSBvdXRwdXQgdGhhdCBsaXN0cworKyAgICAgICMgd2hhdCAi aGlkZGVuIiBsaWJyYXJpZXMsIG9iamVjdCBmaWxlcyBhbmQgZmxhZ3MgYXJlIHVzZWQgd2hlbgor KyAgICAgICMgbGlua2luZyBhIHNoYXJlZCBsaWJyYXJ5LgorKyAgICAgIG91dHB1dF92ZXJib3Nl X2xpbmtfY21kPSckQ0MgLXNoYXJlZCAkQ0ZMQUdTIC12IGNvbmZ0ZXN0LiRvYmpleHQgMj4mMSB8 ICRHUkVQICJcLUwiJworKworKyAgICBlbHNlCisrICAgICAgR1hYPW5vCisrICAgICAgd2l0aF9n bnVfbGQ9bm8KKysgICAgICB3bGFyYz0KKysgICAgZmkKKysKKysgICAgIyBQT1JUTUU6IGZpbGwg aW4gYSBkZXNjcmlwdGlvbiBvZiB5b3VyIHN5c3RlbSdzIEMrKyBsaW5rIGNoYXJhY3RlcmlzdGlj cworKyAgICBBQ19NU0dfQ0hFQ0tJTkcoW3doZXRoZXIgdGhlICRjb21waWxlciBsaW5rZXIgKCRM RCkgc3VwcG9ydHMgc2hhcmVkIGxpYnJhcmllc10pCisrICAgIF9MVF9UQUdWQVIobGRfc2hsaWJz LCAkMSk9eWVzCisrICAgIGNhc2UgJGhvc3Rfb3MgaW4KKysgICAgICBhaXgzKikKKysgICAgICAg ICMgRklYTUU6IGluc2VydCBwcm9wZXIgQysrIGxpYnJhcnkgc3VwcG9ydAorKyAgICAgICAgX0xU X1RBR1ZBUihsZF9zaGxpYnMsICQxKT1ubworKyAgICAgICAgOzsKKysgICAgICBhaXhbWzQtOV1d KikKKysgICAgICAgIGlmIHRlc3QgIiRob3N0X2NwdSIgPSBpYTY0OyB0aGVuCisrICAgICAgICAg ICMgT24gSUE2NCwgdGhlIGxpbmtlciBkb2VzIHJ1biB0aW1lIGxpbmtpbmcgYnkgZGVmYXVsdCwg c28gd2UgZG9uJ3QKKysgICAgICAgICAgIyBoYXZlIHRvIGRvIGFueXRoaW5nIHNwZWNpYWwuCisr ICAgICAgICAgIGFpeF91c2VfcnVudGltZWxpbmtpbmc9bm8KKysgICAgICAgICAgZXhwX3N5bV9m bGFnPSctQmV4cG9ydCcKKysgICAgICAgICAgbm9fZW50cnlfZmxhZz0iIgorKyAgICAgICAgZWxz ZQorKyAgICAgICAgICBhaXhfdXNlX3J1bnRpbWVsaW5raW5nPW5vCisrCisrICAgICAgICAgICMg VGVzdCBpZiB3ZSBhcmUgdHJ5aW5nIHRvIHVzZSBydW4gdGltZSBsaW5raW5nIG9yIG5vcm1hbAor KyAgICAgICAgICAjIEFJWCBzdHlsZSBsaW5raW5nLiBJZiAtYnJ0bCBpcyBzb21ld2hlcmUgaW4g TERGTEFHUywgd2UKKysgICAgICAgICAgIyBuZWVkIHRvIGRvIHJ1bnRpbWUgbGlua2luZy4KKysg ICAgICAgICAgY2FzZSAkaG9zdF9vcyBpbiBhaXg0LltbMjNdXXxhaXg0LltbMjNdXS4qfGFpeFtb NS05XV0qKQorKwkgICAgZm9yIGxkX2ZsYWcgaW4gJExERkxBR1M7IGRvCisrCSAgICAgIGNhc2Ug JGxkX2ZsYWcgaW4KKysJICAgICAgKi1icnRsKikKKysJICAgICAgICBhaXhfdXNlX3J1bnRpbWVs aW5raW5nPXllcworKwkgICAgICAgIGJyZWFrCisrCSAgICAgICAgOzsKKysJICAgICAgZXNhYwor KwkgICAgZG9uZQorKwkgICAgOzsKKysgICAgICAgICAgZXNhYworKworKyAgICAgICAgICBleHBf c3ltX2ZsYWc9Jy1iZXhwb3J0JworKyAgICAgICAgICBub19lbnRyeV9mbGFnPSctYm5vZW50cnkn CisrICAgICAgICBmaQorKworKyAgICAgICAgIyBXaGVuIGxhcmdlIGV4ZWN1dGFibGVzIG9yIHNo YXJlZCBvYmplY3RzIGFyZSBidWlsdCwgQUlYIGxkIGNhbgorKyAgICAgICAgIyBoYXZlIHByb2Js ZW1zIGNyZWF0aW5nIHRoZSB0YWJsZSBvZiBjb250ZW50cy4gIElmIGxpbmtpbmcgYSBsaWJyYXJ5 CisrICAgICAgICAjIG9yIHByb2dyYW0gcmVzdWx0cyBpbiAiZXJyb3IgVE9DIG92ZXJmbG93IiBh ZGQgLW1taW5pbWFsLXRvYyB0bworKyAgICAgICAgIyBDWFhGTEFHUy9DRkxBR1MgZm9yIGcrKy9n Y2MuICBJbiB0aGUgY2FzZXMgd2hlcmUgdGhhdCBpcyBub3QKKysgICAgICAgICMgZW5vdWdoIHRv IGZpeCB0aGUgcHJvYmxlbSwgYWRkIC1XbCwtYmJpZ3RvYyB0byBMREZMQUdTLgorKworKyAgICAg ICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJworKyAgICAgICAgX0xUX1RBR1ZBUiho YXJkY29kZV9kaXJlY3QsICQxKT15ZXMKKysgICAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfZGly ZWN0X2Fic29sdXRlLCAkMSk9eWVzCisrICAgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRp cl9zZXBhcmF0b3IsICQxKT0nOicKKysgICAgICAgIF9MVF9UQUdWQVIobGlua19hbGxfZGVwbGli cywgJDEpPXllcworKyAgICAgICAgX0xUX1RBR1ZBUihmaWxlX2xpc3Rfc3BlYywgJDEpPScke3ds fS1mLCcKKysKKysgICAgICAgIGlmIHRlc3QgIiRHWFgiID0geWVzOyB0aGVuCisrICAgICAgICAg IGNhc2UgJGhvc3Rfb3MgaW4gYWl4NC5bWzAxMl1dfGFpeDQuW1swMTJdXS4qKQorKyAgICAgICAg ICAjIFdlIG9ubHkgd2FudCB0byBkbyB0aGlzIG9uIEFJWCA0LjIgYW5kIGxvd2VyLCB0aGUgY2hl Y2sKKysgICAgICAgICAgIyBiZWxvdyBmb3IgYnJva2VuIGNvbGxlY3QyIGRvZXNuJ3Qgd29yayB1 bmRlciA0LjMrCisrCSAgY29sbGVjdDJuYW1lPWAke0NDfSAtcHJpbnQtcHJvZy1uYW1lPWNvbGxl Y3QyYAorKwkgIGlmIHRlc3QgLWYgIiRjb2xsZWN0Mm5hbWUiICYmCisrCSAgICAgc3RyaW5ncyAi JGNvbGxlY3QybmFtZSIgfCAkR1JFUCByZXNvbHZlX2xpYl9uYW1lID4vZGV2L251bGwKKysJICB0 aGVuCisrCSAgICAjIFdlIGhhdmUgcmV3b3JrZWQgY29sbGVjdDIKKysJICAgIDoKKysJICBlbHNl CisrCSAgICAjIFdlIGhhdmUgb2xkIGNvbGxlY3QyCisrCSAgICBfTFRfVEFHVkFSKGhhcmRjb2Rl X2RpcmVjdCwgJDEpPXVuc3VwcG9ydGVkCisrCSAgICAjIEl0IGZhaWxzIHRvIGZpbmQgdW5pbnN0 YWxsZWQgbGlicmFyaWVzIHdoZW4gdGhlIHVuaW5zdGFsbGVkCisrCSAgICAjIHBhdGggaXMgbm90 IGxpc3RlZCBpbiB0aGUgbGlicGF0aC4gIFNldHRpbmcgaGFyZGNvZGVfbWludXNfTAorKwkgICAg IyB0byB1bnN1cHBvcnRlZCBmb3JjZXMgcmVsaW5raW5nCisrCSAgICBfTFRfVEFHVkFSKGhhcmRj b2RlX21pbnVzX0wsICQxKT15ZXMKKysJICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2Zs YWdfc3BlYywgJDEpPSctTCRsaWJkaXInCisrCSAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRp cl9zZXBhcmF0b3IsICQxKT0KKysJICBmaQorKyAgICAgICAgICBlc2FjCisrICAgICAgICAgIHNo YXJlZF9mbGFnPSctc2hhcmVkJworKwkgIGlmIHRlc3QgIiRhaXhfdXNlX3J1bnRpbWVsaW5raW5n IiA9IHllczsgdGhlbgorKwkgICAgc2hhcmVkX2ZsYWc9IiRzaGFyZWRfZmxhZyAiJyR7d2x9LUcn CisrCSAgZmkKKysgICAgICAgIGVsc2UKKysgICAgICAgICAgIyBub3QgdXNpbmcgZ2NjCisrICAg ICAgICAgIGlmIHRlc3QgIiRob3N0X2NwdSIgPSBpYTY0OyB0aGVuCisrCSAgIyBWaXN1YWxBZ2Ug QysrLCBWZXJzaW9uIDUuNSBmb3IgQUlYIDVMIGZvciBJQS02NCwgQmV0YSAzIFJlbGVhc2UKKysJ ICAjIGNob2tlcyBvbiAtV2wsLUcuIFRoZSBmb2xsb3dpbmcgbGluZSBpcyBjb3JyZWN0OgorKwkg IHNoYXJlZF9mbGFnPSctRycKKysgICAgICAgICAgZWxzZQorKwkgICAgaWYgdGVzdCAiJGFpeF91 c2VfcnVudGltZWxpbmtpbmciID0geWVzOyB0aGVuCisrCSAgICAgIHNoYXJlZF9mbGFnPScke3ds fS1HJworKwkgICAgZWxzZQorKwkgICAgICBzaGFyZWRfZmxhZz0nJHt3bH0tYk06U1JFJworKwkg ICAgZmkKKysgICAgICAgICAgZmkKKysgICAgICAgIGZpCisrCisrICAgICAgICBfTFRfVEFHVkFS KGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlYywgJDEpPScke3dsfS1iZXhwYWxsJworKyAgICAgICAg IyBJdCBzZWVtcyB0aGF0IC1iZXhwYWxsIGRvZXMgbm90IGV4cG9ydCBzeW1ib2xzIGJlZ2lubmlu ZyB3aXRoCisrICAgICAgICAjIHVuZGVyc2NvcmUgKF8pLCBzbyBpdCBpcyBiZXR0ZXIgdG8gZ2Vu ZXJhdGUgYSBsaXN0IG9mIHN5bWJvbHMgdG8KKysJIyBleHBvcnQuCisrICAgICAgICBfTFRfVEFH VkFSKGFsd2F5c19leHBvcnRfc3ltYm9scywgJDEpPXllcworKyAgICAgICAgaWYgdGVzdCAiJGFp eF91c2VfcnVudGltZWxpbmtpbmciID0geWVzOyB0aGVuCisrICAgICAgICAgICMgV2FybmluZyAt IHdpdGhvdXQgdXNpbmcgdGhlIG90aGVyIHJ1bnRpbWUgbG9hZGluZyBmbGFncyAoLWJydGwpLAor KyAgICAgICAgICAjIC1iZXJvayB3aWxsIGxpbmsgd2l0aG91dCBlcnJvciwgYnV0IG1heSBwcm9k dWNlIGEgYnJva2VuIGxpYnJhcnkuCisrICAgICAgICAgIF9MVF9UQUdWQVIoYWxsb3dfdW5kZWZp bmVkX2ZsYWcsICQxKT0nLWJlcm9rJworKyAgICAgICAgICAjIERldGVybWluZSB0aGUgZGVmYXVs dCBsaWJwYXRoIGZyb20gdGhlIHZhbHVlIGVuY29kZWQgaW4gYW4gZW1wdHkKKysgICAgICAgICAg IyBleGVjdXRhYmxlLgorKyAgICAgICAgICBfTFRfU1lTX01PRFVMRV9QQVRIX0FJWAorKyAgICAg ICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nJHt3bH0tYmxp YnBhdGg6JGxpYmRpcjonIiRhaXhfbGlicGF0aCIKKysKKysgICAgICAgICAgX0xUX1RBR1ZBUihh cmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9JyRDQyAtbyAkb3V0cHV0X29iamRpci8kc29uYW1lICRs aWJvYmpzICRkZXBsaWJzICciXCR7d2x9JG5vX2VudHJ5X2ZsYWciJyAkY29tcGlsZXJfZmxhZ3Mg YGlmIHRlc3QgIngke2FsbG93X3VuZGVmaW5lZF9mbGFnfSIgIT0gIngiOyB0aGVuICRFQ0hPICJY JHt3bH0ke2FsbG93X3VuZGVmaW5lZF9mbGFnfSIgfCAkWHNlZDsgZWxzZSA6OyBmaWAgJyJcJHt3 bH0kZXhwX3N5bV9mbGFnOlwkZXhwb3J0X3N5bWJvbHMgJHNoYXJlZF9mbGFnIgorKyAgICAgICAg ZWxzZQorKyAgICAgICAgICBpZiB0ZXN0ICIkaG9zdF9jcHUiID0gaWE2NDsgdGhlbgorKwkgICAg X0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LVIgJGxpYmRp cjovdXNyL2xpYjovbGliJworKwkgICAgX0xUX1RBR1ZBUihhbGxvd191bmRlZmluZWRfZmxhZywg JDEpPSIteiBub2RlZnMiCisrCSAgICBfTFRfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQx KT0iXCRDQyAkc2hhcmVkX2ZsYWciJyAtbyAkb3V0cHV0X29iamRpci8kc29uYW1lICRsaWJvYmpz ICRkZXBsaWJzICciXCR7d2x9JG5vX2VudHJ5X2ZsYWciJyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0k e2FsbG93X3VuZGVmaW5lZF9mbGFnfSAnIlwke3dsfSRleHBfc3ltX2ZsYWc6XCRleHBvcnRfc3lt Ym9scyIKKysgICAgICAgICAgZWxzZQorKwkgICAgIyBEZXRlcm1pbmUgdGhlIGRlZmF1bHQgbGli cGF0aCBmcm9tIHRoZSB2YWx1ZSBlbmNvZGVkIGluIGFuCisrCSAgICAjIGVtcHR5IGV4ZWN1dGFi bGUuCisrCSAgICBfTFRfU1lTX01PRFVMRV9QQVRIX0FJWAorKwkgICAgX0xUX1RBR1ZBUihoYXJk Y29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LWJsaWJwYXRoOiRsaWJkaXI6JyIkYWl4 X2xpYnBhdGgiCisrCSAgICAjIFdhcm5pbmcgLSB3aXRob3V0IHVzaW5nIHRoZSBvdGhlciBydW4g dGltZSBsb2FkaW5nIGZsYWdzLAorKwkgICAgIyAtYmVyb2sgd2lsbCBsaW5rIHdpdGhvdXQgZXJy b3IsIGJ1dCBtYXkgcHJvZHVjZSBhIGJyb2tlbiBsaWJyYXJ5LgorKwkgICAgX0xUX1RBR1ZBUihu b191bmRlZmluZWRfZmxhZywgJDEpPScgJHt3bH0tYmVybm90b2snCisrCSAgICBfTFRfVEFHVkFS KGFsbG93X3VuZGVmaW5lZF9mbGFnLCAkMSk9JyAke3dsfS1iZXJvaycKKysJICAgICMgRXhwb3J0 ZWQgc3ltYm9scyBjYW4gYmUgcHVsbGVkIGludG8gc2hhcmVkIG9iamVjdHMgZnJvbSBhcmNoaXZl cworKwkgICAgX0xUX1RBR1ZBUih3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYywgJDEpPSckY29udmVu aWVuY2UnCisrCSAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kc19uZWVkX2xjLCAkMSk9eWVzCisr CSAgICAjIFRoaXMgaXMgc2ltaWxhciB0byBob3cgQUlYIHRyYWRpdGlvbmFsbHkgYnVpbGRzIGl0 cyBzaGFyZWQKKysJICAgICMgbGlicmFyaWVzLgorKwkgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2V4 cHN5bV9jbWRzLCAkMSk9IlwkQ0MgJHNoYXJlZF9mbGFnIicgLW8gJG91dHB1dF9vYmpkaXIvJHNv bmFtZSAkbGlib2JqcyAkZGVwbGlicyAke3dsfS1ibm9lbnRyeSAkY29tcGlsZXJfZmxhZ3MgJHt3 bH0tYkU6JGV4cG9ydF9zeW1ib2xzJHthbGxvd191bmRlZmluZWRfZmxhZ31+JEFSICRBUl9GTEFH UyAkb3V0cHV0X29iamRpci8kbGlibmFtZSRyZWxlYXNlLmEgJG91dHB1dF9vYmpkaXIvJHNvbmFt ZScKKysgICAgICAgICAgZmkKKysgICAgICAgIGZpCisrICAgICAgICA7OworKworKyAgICAgIGJl b3MqKQorKwlpZiAkTEQgLS1oZWxwIDI+JjEgfCAkR1JFUCAnOiBzdXBwb3J0ZWQgdGFyZ2V0czou KiBlbGYnID4gL2Rldi9udWxsOyB0aGVuCisrCSAgX0xUX1RBR1ZBUihhbGxvd191bmRlZmluZWRf ZmxhZywgJDEpPXVuc3VwcG9ydGVkCisrCSAgIyBKb3NlcGggQmVja2VuYmFjaCA8anJiM0BiZXN0 LmNvbT4gc2F5cyBzb21lIHJlbGVhc2VzIG9mIGdjYworKwkgICMgc3VwcG9ydCAtLXVuZGVmaW5l ZC4gIFRoaXMgZGVzZXJ2ZXMgc29tZSBpbnZlc3RpZ2F0aW9uLiAgRklYTUUKKysJICBfTFRfVEFH VkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLW5vc3RhcnQgJGxpYm9ianMgJGRlcGxpYnMgJGNv bXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAkd2wkc29uYW1lIC1vICRsaWInCisrCWVsc2UKKysJ ICBfTFRfVEFHVkFSKGxkX3NobGlicywgJDEpPW5vCisrCWZpCisrCTs7CisrCisrICAgICAgY2hv cnVzKikKKysgICAgICAgIGNhc2UgJGNjX2Jhc2VuYW1lIGluCisrICAgICAgICAgICopCisrCSAg IyBGSVhNRTogaW5zZXJ0IHByb3BlciBDKysgbGlicmFyeSBzdXBwb3J0CisrCSAgX0xUX1RBR1ZB UihsZF9zaGxpYnMsICQxKT1ubworKwkgIDs7CisrICAgICAgICBlc2FjCisrICAgICAgICA7Owor KworKyAgICAgIGN5Z3dpbiogfCBtaW5ndyogfCBwdzMyKiB8IGNlZ2NjKikKKysgICAgICAgICMg X0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSkgaXMgYWN0dWFsbHkgbWVh bmluZ2xlc3MsCisrICAgICAgICAjIGFzIHRoZXJlIGlzIG5vIHNlYXJjaCBwYXRoIGZvciBETExz LgorKyAgICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9Jy1M JGxpYmRpcicKKysgICAgICAgIF9MVF9UQUdWQVIoYWxsb3dfdW5kZWZpbmVkX2ZsYWcsICQxKT11 bnN1cHBvcnRlZAorKyAgICAgICAgX0xUX1RBR1ZBUihhbHdheXNfZXhwb3J0X3N5bWJvbHMsICQx KT1ubworKyAgICAgICAgX0xUX1RBR1ZBUihlbmFibGVfc2hhcmVkX3dpdGhfc3RhdGljX3J1bnRp bWVzLCAkMSk9eWVzCisrCisrICAgICAgICBpZiAkTEQgLS1oZWxwIDI+JjEgfCAkR1JFUCAnYXV0 by1pbXBvcnQnID4gL2Rldi9udWxsOyB0aGVuCisrICAgICAgICAgIF9MVF9UQUdWQVIoYXJjaGl2 ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkIC1ub3N0ZGxpYiAkcHJlZGVwX29iamVjdHMgJGxpYm9i anMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgLW8gJG91dHB1dF9v YmpkaXIvJHNvbmFtZSAke3dsfS0tZW5hYmxlLWF1dG8taW1hZ2UtYmFzZSAtWGxpbmtlciAtLW91 dC1pbXBsaWIgLVhsaW5rZXIgJGxpYicKKysgICAgICAgICAgIyBJZiB0aGUgZXhwb3J0LXN5bWJv bHMgZmlsZSBhbHJlYWR5IGlzIGEgLmRlZiBmaWxlICgxc3QgbGluZQorKyAgICAgICAgICAjIGlz IEVYUE9SVFMpLCB1c2UgaXQgYXMgaXM7IG90aGVyd2lzZSwgcHJlcGVuZC4uLgorKyAgICAgICAg ICBfTFRfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0naWYgdGVzdCAieGAkU0VEIDFx ICRleHBvcnRfc3ltYm9sc2AiID0geEVYUE9SVFM7IHRoZW4KKysJICAgIGNwICRleHBvcnRfc3lt Ym9scyAkb3V0cHV0X29iamRpci8kc29uYW1lLmRlZjsKKysgICAgICAgICAgZWxzZQorKwkgICAg ZWNobyBFWFBPUlRTID4gJG91dHB1dF9vYmpkaXIvJHNvbmFtZS5kZWY7CisrCSAgICBjYXQgJGV4 cG9ydF9zeW1ib2xzID4+ICRvdXRwdXRfb2JqZGlyLyRzb25hbWUuZGVmOworKyAgICAgICAgICBm aX4KKysgICAgICAgICAgJENDIC1zaGFyZWQgLW5vc3RkbGliICRvdXRwdXRfb2JqZGlyLyRzb25h bWUuZGVmICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3Rz ICRjb21waWxlcl9mbGFncyAtbyAkb3V0cHV0X29iamRpci8kc29uYW1lICR7d2x9LS1lbmFibGUt YXV0by1pbWFnZS1iYXNlIC1YbGlua2VyIC0tb3V0LWltcGxpYiAtWGxpbmtlciAkbGliJworKyAg ICAgICAgZWxzZQorKyAgICAgICAgICBfTFRfVEFHVkFSKGxkX3NobGlicywgJDEpPW5vCisrICAg ICAgICBmaQorKyAgICAgICAgOzsKKysgICAgICBkYXJ3aW4qIHwgcmhhcHNvZHkqKQorKyAgICAg ICAgX0xUX0RBUldJTl9MSU5LRVJfRkVBVFVSRVMoJDEpCisrCTs7CisrCisrICAgICAgZGd1eCop CisrICAgICAgICBjYXNlICRjY19iYXNlbmFtZSBpbgorKyAgICAgICAgICBlYysrKikKKysJICAg ICMgRklYTUU6IGluc2VydCBwcm9wZXIgQysrIGxpYnJhcnkgc3VwcG9ydAorKwkgICAgX0xUX1RB R1ZBUihsZF9zaGxpYnMsICQxKT1ubworKwkgICAgOzsKKysgICAgICAgICAgZ2hjeCopCisrCSAg ICAjIEdyZWVuIEhpbGxzIEMrKyBDb21waWxlcgorKwkgICAgIyBGSVhNRTogaW5zZXJ0IHByb3Bl ciBDKysgbGlicmFyeSBzdXBwb3J0CisrCSAgICBfTFRfVEFHVkFSKGxkX3NobGlicywgJDEpPW5v CisrCSAgICA7OworKyAgICAgICAgICAqKQorKwkgICAgIyBGSVhNRTogaW5zZXJ0IHByb3BlciBD KysgbGlicmFyeSBzdXBwb3J0CisrCSAgICBfTFRfVEFHVkFSKGxkX3NobGlicywgJDEpPW5vCisr CSAgICA7OworKyAgICAgICAgZXNhYworKyAgICAgICAgOzsKKysKKysgICAgICBmcmVlYnNkW1sx Ml1dKikKKysgICAgICAgICMgQysrIHNoYXJlZCBsaWJyYXJpZXMgcmVwb3J0ZWQgdG8gYmUgZmFp cmx5IGJyb2tlbiBiZWZvcmUKKysJIyBzd2l0Y2ggdG8gRUxGCisrICAgICAgICBfTFRfVEFHVkFS KGxkX3NobGlicywgJDEpPW5vCisrICAgICAgICA7OworKworKyAgICAgIGZyZWVic2QtZWxmKikK KysgICAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzX25lZWRfbGMsICQxKT1ubworKyAgICAg ICAgOzsKKysKKysgICAgICBmcmVlYnNkKiB8IGRyYWdvbmZseSopCisrICAgICAgICAjIEZyZWVC U0QgMyBhbmQgbGF0ZXIgdXNlIEdOVSBDKysgYW5kIEdOVSBsZCB3aXRoIHN0YW5kYXJkIEVMRgor KyAgICAgICAgIyBjb252ZW50aW9ucworKyAgICAgICAgX0xUX1RBR1ZBUihsZF9zaGxpYnMsICQx KT15ZXMKKysgICAgICAgIDs7CisrCisrICAgICAgZ251KikKKysgICAgICAgIDs7CisrCisrICAg ICAgaHB1eDkqKQorKyAgICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVj LCAkMSk9JyR7d2x9K2IgJHt3bH0kbGliZGlyJworKyAgICAgICAgX0xUX1RBR1ZBUihoYXJkY29k ZV9saWJkaXJfc2VwYXJhdG9yLCAkMSk9OgorKyAgICAgICAgX0xUX1RBR1ZBUihleHBvcnRfZHlu YW1pY19mbGFnX3NwZWMsICQxKT0nJHt3bH0tRScKKysgICAgICAgIF9MVF9UQUdWQVIoaGFyZGNv ZGVfZGlyZWN0LCAkMSk9eWVzCisrICAgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX21pbnVzX0ws ICQxKT15ZXMgIyBOb3QgaW4gdGhlIHNlYXJjaCBQQVRILAorKwkJCQkgICAgICAgICAgICAgIyBi dXQgYXMgdGhlIGRlZmF1bHQKKysJCQkJICAgICAgICAgICAgICMgbG9jYXRpb24gb2YgdGhlIGxp YnJhcnkuCisrCisrICAgICAgICBjYXNlICRjY19iYXNlbmFtZSBpbgorKyAgICAgICAgICBDQyop CisrICAgICAgICAgICAgIyBGSVhNRTogaW5zZXJ0IHByb3BlciBDKysgbGlicmFyeSBzdXBwb3J0 CisrICAgICAgICAgICAgX0xUX1RBR1ZBUihsZF9zaGxpYnMsICQxKT1ubworKyAgICAgICAgICAg IDs7CisrICAgICAgICAgIGFDQyopCisrICAgICAgICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2Nt ZHMsICQxKT0nJFJNICRvdXRwdXRfb2JqZGlyLyRzb25hbWV+JENDIC1iICR7d2x9K2IgJHt3bH0k aW5zdGFsbF9saWJkaXIgLW8gJG91dHB1dF9vYmpkaXIvJHNvbmFtZSAkcHJlZGVwX29iamVjdHMg JGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3N+dGVzdCAk b3V0cHV0X29iamRpci8kc29uYW1lID0gJGxpYiB8fCBtdiAkb3V0cHV0X29iamRpci8kc29uYW1l ICRsaWInCisrICAgICAgICAgICAgIyBDb21tYW5kcyB0byBtYWtlIGNvbXBpbGVyIHByb2R1Y2Ug dmVyYm9zZSBvdXRwdXQgdGhhdCBsaXN0cworKyAgICAgICAgICAgICMgd2hhdCAiaGlkZGVuIiBs aWJyYXJpZXMsIG9iamVjdCBmaWxlcyBhbmQgZmxhZ3MgYXJlIHVzZWQgd2hlbgorKyAgICAgICAg ICAgICMgbGlua2luZyBhIHNoYXJlZCBsaWJyYXJ5LgorKyAgICAgICAgICAgICMKKysgICAgICAg ICAgICAjIFRoZXJlIGRvZXNuJ3QgYXBwZWFyIHRvIGJlIGEgd2F5IHRvIHByZXZlbnQgdGhpcyBj b21waWxlciBmcm9tCisrICAgICAgICAgICAgIyBleHBsaWNpdGx5IGxpbmtpbmcgc3lzdGVtIG9i amVjdCBmaWxlcyBzbyB3ZSBuZWVkIHRvIHN0cmlwIHRoZW0KKysgICAgICAgICAgICAjIGZyb20g dGhlIG91dHB1dCBzbyB0aGF0IHRoZXkgZG9uJ3QgZ2V0IGluY2x1ZGVkIGluIHRoZSBsaWJyYXJ5 CisrICAgICAgICAgICAgIyBkZXBlbmRlbmNpZXMuCisrICAgICAgICAgICAgb3V0cHV0X3ZlcmJv c2VfbGlua19jbWQ9J3RlbXBsaXN0PWAoJENDIC1iICRDRkxBR1MgLXYgY29uZnRlc3QuJG9iamV4 dCAyPiYxKSB8ICRFR1JFUCAiXC1MImA7IGxpc3Q9IiI7IGZvciB6IGluICR0ZW1wbGlzdDsgZG8g Y2FzZSAkeiBpbiBjb25mdGVzdC4kb2JqZXh0KSBsaXN0PSIkbGlzdCAkeiI7OyAqLiRvYmpleHQp OzsgKikgbGlzdD0iJGxpc3QgJHoiOztlc2FjOyBkb25lOyAkRUNITyAiWCRsaXN0IiB8ICRYc2Vk JworKyAgICAgICAgICAgIDs7CisrICAgICAgICAgICopCisrICAgICAgICAgICAgaWYgdGVzdCAi JEdYWCIgPSB5ZXM7IHRoZW4KKysgICAgICAgICAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRz LCAkMSk9JyRSTSAkb3V0cHV0X29iamRpci8kc29uYW1lfiRDQyAtc2hhcmVkIC1ub3N0ZGxpYiAt ZlBJQyAke3dsfStiICR7d2x9JGluc3RhbGxfbGliZGlyIC1vICRvdXRwdXRfb2JqZGlyLyRzb25h bWUgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNv bXBpbGVyX2ZsYWdzfnRlc3QgJG91dHB1dF9vYmpkaXIvJHNvbmFtZSA9ICRsaWIgfHwgbXYgJG91 dHB1dF9vYmpkaXIvJHNvbmFtZSAkbGliJworKyAgICAgICAgICAgIGVsc2UKKysgICAgICAgICAg ICAgICMgRklYTUU6IGluc2VydCBwcm9wZXIgQysrIGxpYnJhcnkgc3VwcG9ydAorKyAgICAgICAg ICAgICAgX0xUX1RBR1ZBUihsZF9zaGxpYnMsICQxKT1ubworKyAgICAgICAgICAgIGZpCisrICAg ICAgICAgICAgOzsKKysgICAgICAgIGVzYWMKKysgICAgICAgIDs7CisrCisrICAgICAgaHB1eDEw KnxocHV4MTEqKQorKyAgICAgICAgaWYgdGVzdCAkd2l0aF9nbnVfbGQgPSBubzsgdGhlbgorKwkg IF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPScke3dsfStiICR7d2x9 JGxpYmRpcicKKysJICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3IsICQxKT06 CisrCisrICAgICAgICAgIGNhc2UgJGhvc3RfY3B1IGluCisrICAgICAgICAgICAgaHBwYSo2NCp8 aWE2NCopCisrICAgICAgICAgICAgICA7OworKyAgICAgICAgICAgICopCisrCSAgICAgIF9MVF9U QUdWQVIoZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LUUnCisrICAgICAgICAg ICAgICA7OworKyAgICAgICAgICBlc2FjCisrICAgICAgICBmaQorKyAgICAgICAgY2FzZSAkaG9z dF9jcHUgaW4KKysgICAgICAgICAgaHBwYSo2NCp8aWE2NCopCisrICAgICAgICAgICAgX0xUX1RB R1ZBUihoYXJkY29kZV9kaXJlY3QsICQxKT1ubworKyAgICAgICAgICAgIF9MVF9UQUdWQVIoaGFy ZGNvZGVfc2hsaWJwYXRoX3ZhciwgJDEpPW5vCisrICAgICAgICAgICAgOzsKKysgICAgICAgICAg KikKKysgICAgICAgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2RpcmVjdCwgJDEpPXllcworKyAg ICAgICAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfZGlyZWN0X2Fic29sdXRlLCAkMSk9eWVzCisr ICAgICAgICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9taW51c19MLCAkMSk9eWVzICMgTm90IGlu IHRoZSBzZWFyY2ggUEFUSCwKKysJCQkJCSAgICAgICAgICMgYnV0IGFzIHRoZSBkZWZhdWx0Cisr CQkJCQkgICAgICAgICAjIGxvY2F0aW9uIG9mIHRoZSBsaWJyYXJ5LgorKyAgICAgICAgICAgIDs7 CisrICAgICAgICBlc2FjCisrCisrICAgICAgICBjYXNlICRjY19iYXNlbmFtZSBpbgorKyAgICAg ICAgICBDQyopCisrCSAgICAjIEZJWE1FOiBpbnNlcnQgcHJvcGVyIEMrKyBsaWJyYXJ5IHN1cHBv cnQKKysJICAgIF9MVF9UQUdWQVIobGRfc2hsaWJzLCAkMSk9bm8KKysJICAgIDs7CisrICAgICAg ICAgIGFDQyopCisrCSAgICBjYXNlICRob3N0X2NwdSBpbgorKwkgICAgICBocHBhKjY0KikKKysJ ICAgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLWIgJHt3bH0raCAke3ds fSRzb25hbWUgLW8gJGxpYiAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3Rk ZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MnCisrCSAgICAgICAgOzsKKysJICAgICAgaWE2NCop CisrCSAgICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1iICR7d2x9K2gg JHt3bH0kc29uYW1lICR7d2x9K25vZGVmYXVsdHJwYXRoIC1vICRsaWIgJHByZWRlcF9vYmplY3Rz ICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzJworKwkg ICAgICAgIDs7CisrCSAgICAgICopCisrCSAgICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMs ICQxKT0nJENDIC1iICR7d2x9K2ggJHt3bH0kc29uYW1lICR7d2x9K2IgJHt3bH0kaW5zdGFsbF9s aWJkaXIgLW8gJGxpYiAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBf b2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MnCisrCSAgICAgICAgOzsKKysJICAgIGVzYWMKKysJICAg ICMgQ29tbWFuZHMgdG8gbWFrZSBjb21waWxlciBwcm9kdWNlIHZlcmJvc2Ugb3V0cHV0IHRoYXQg bGlzdHMKKysJICAgICMgd2hhdCAiaGlkZGVuIiBsaWJyYXJpZXMsIG9iamVjdCBmaWxlcyBhbmQg ZmxhZ3MgYXJlIHVzZWQgd2hlbgorKwkgICAgIyBsaW5raW5nIGEgc2hhcmVkIGxpYnJhcnkuCisr CSAgICAjCisrCSAgICAjIFRoZXJlIGRvZXNuJ3QgYXBwZWFyIHRvIGJlIGEgd2F5IHRvIHByZXZl bnQgdGhpcyBjb21waWxlciBmcm9tCisrCSAgICAjIGV4cGxpY2l0bHkgbGlua2luZyBzeXN0ZW0g b2JqZWN0IGZpbGVzIHNvIHdlIG5lZWQgdG8gc3RyaXAgdGhlbQorKwkgICAgIyBmcm9tIHRoZSBv dXRwdXQgc28gdGhhdCB0aGV5IGRvbid0IGdldCBpbmNsdWRlZCBpbiB0aGUgbGlicmFyeQorKwkg ICAgIyBkZXBlbmRlbmNpZXMuCisrCSAgICBvdXRwdXRfdmVyYm9zZV9saW5rX2NtZD0ndGVtcGxp c3Q9YCgkQ0MgLWIgJENGTEFHUyAtdiBjb25mdGVzdC4kb2JqZXh0IDI+JjEpIHwgJEdSRVAgIlwt TCJgOyBsaXN0PSIiOyBmb3IgeiBpbiAkdGVtcGxpc3Q7IGRvIGNhc2UgJHogaW4gY29uZnRlc3Qu JG9iamV4dCkgbGlzdD0iJGxpc3QgJHoiOzsgKi4kb2JqZXh0KTs7ICopIGxpc3Q9IiRsaXN0ICR6 Ijs7ZXNhYzsgZG9uZTsgJEVDSE8gIlgkbGlzdCIgfCAkWHNlZCcKKysJICAgIDs7CisrICAgICAg ICAgICopCisrCSAgICBpZiB0ZXN0ICIkR1hYIiA9IHllczsgdGhlbgorKwkgICAgICBpZiB0ZXN0 ICR3aXRoX2dudV9sZCA9IG5vOyB0aGVuCisrCSAgICAgICAgY2FzZSAkaG9zdF9jcHUgaW4KKysJ ICAgICAgICAgIGhwcGEqNjQqKQorKwkgICAgICAgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21k cywgJDEpPSckQ0MgLXNoYXJlZCAtbm9zdGRsaWIgLWZQSUMgJHt3bH0raCAke3dsfSRzb25hbWUg LW8gJGxpYiAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0 cyAkY29tcGlsZXJfZmxhZ3MnCisrCSAgICAgICAgICAgIDs7CisrCSAgICAgICAgICBpYTY0KikK KysJICAgICAgICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1zaGFyZWQg LW5vc3RkbGliIC1mUElDICR7d2x9K2ggJHt3bH0kc29uYW1lICR7d2x9K25vZGVmYXVsdHJwYXRo IC1vICRsaWIgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVj dHMgJGNvbXBpbGVyX2ZsYWdzJworKwkgICAgICAgICAgICA7OworKwkgICAgICAgICAgKikKKysJ ICAgICAgICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgLW5v c3RkbGliIC1mUElDICR7d2x9K2ggJHt3bH0kc29uYW1lICR7d2x9K2IgJHt3bH0kaW5zdGFsbF9s aWJkaXIgLW8gJGxpYiAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBf b2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MnCisrCSAgICAgICAgICAgIDs7CisrCSAgICAgICAgZXNh YworKwkgICAgICBmaQorKwkgICAgZWxzZQorKwkgICAgICAjIEZJWE1FOiBpbnNlcnQgcHJvcGVy IEMrKyBsaWJyYXJ5IHN1cHBvcnQKKysJICAgICAgX0xUX1RBR1ZBUihsZF9zaGxpYnMsICQxKT1u bworKwkgICAgZmkKKysJICAgIDs7CisrICAgICAgICBlc2FjCisrICAgICAgICA7OworKworKyAg ICAgIGludGVyaXhbWzMtOV1dKikKKysJX0xUX1RBR1ZBUihoYXJkY29kZV9kaXJlY3QsICQxKT1u bworKwlfTFRfVEFHVkFSKGhhcmRjb2RlX3NobGlicGF0aF92YXIsICQxKT1ubworKwlfTFRfVEFH VkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nJHt3bH0tcnBhdGgsJGxpYmRpcicK KysJX0xUX1RBR1ZBUihleHBvcnRfZHluYW1pY19mbGFnX3NwZWMsICQxKT0nJHt3bH0tRScKKysJ IyBIYWNrOiBPbiBJbnRlcml4IDMueCwgd2UgY2Fubm90IGNvbXBpbGUgUElDIGJlY2F1c2Ugb2Yg YSBicm9rZW4gZ2NjLgorKwkjIEluc3RlYWQsIHNoYXJlZCBsaWJyYXJpZXMgYXJlIGxvYWRlZCBh dCBhbiBpbWFnZSBiYXNlICgweDEwMDAwMDAwIGJ5CisrCSMgZGVmYXVsdCkgYW5kIHJlbG9jYXRl ZCBpZiB0aGV5IGNvbmZsaWN0LCB3aGljaCBpcyBhIHNsb3cgdmVyeSBtZW1vcnkKKysJIyBjb25z dW1pbmcgYW5kIGZyYWdtZW50aW5nIHByb2Nlc3MuICBUbyBhdm9pZCB0aGlzLCB3ZSBwaWNrIGEg cmFuZG9tLAorKwkjIDI1NiBLaUItYWxpZ25lZCBpbWFnZSBiYXNlIGJldHdlZW4gMHg1MDAwMDAw MCBhbmQgMHg2RkZDMDAwMCBhdCBsaW5rCisrCSMgdGltZS4gIE1vdmluZyB1cCBmcm9tIDB4MTAw MDAwMDAgYWxzbyBhbGxvd3MgbW9yZSBzYnJrKDIpIHNwYWNlLgorKwlfTFRfVEFHVkFSKGFyY2hp dmVfY21kcywgJDEpPSckQ0MgLXNoYXJlZCAkcGljX2ZsYWcgJGxpYm9ianMgJGRlcGxpYnMgJGNv bXBpbGVyX2ZsYWdzICR7d2x9LWgsJHNvbmFtZSAke3dsfS0taW1hZ2UtYmFzZSxgZXhwciAke1JB TkRPTS0kJH0gJSA0MDk2IC8gMiBcKiAyNjIxNDQgKyAxMzQyMTc3MjgwYCAtbyAkbGliJworKwlf TFRfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0nc2VkICJzLF4sXywiICRleHBvcnRf c3ltYm9scyA+JG91dHB1dF9vYmpkaXIvJHNvbmFtZS5leHBzeW1+JENDIC1zaGFyZWQgJHBpY19m bGFnICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1oLCRzb25hbWUgJHt3 bH0tLXJldGFpbi1zeW1ib2xzLWZpbGUsJG91dHB1dF9vYmpkaXIvJHNvbmFtZS5leHBzeW0gJHt3 bH0tLWltYWdlLWJhc2UsYGV4cHIgJHtSQU5ET00tJCR9ICUgNDA5NiAvIDIgXCogMjYyMTQ0ICsg MTM0MjE3NzI4MGAgLW8gJGxpYicKKysJOzsKKysgICAgICBpcml4NSogfCBpcml4NiopCisrICAg ICAgICBjYXNlICRjY19iYXNlbmFtZSBpbgorKyAgICAgICAgICBDQyopCisrCSAgICAjIFNHSSBD KysKKysJICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkIC1hbGwg LW11bHRpZ290ICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmpl Y3RzICRjb21waWxlcl9mbGFncyAtc29uYW1lICRzb25hbWUgYHRlc3QgLW4gIiR2ZXJzdHJpbmci ICYmICRFQ0hPICJYLXNldF92ZXJzaW9uICR2ZXJzdHJpbmciIHwgJFhzZWRgIC11cGRhdGVfcmVn aXN0cnkgJHtvdXRwdXRfb2JqZGlyfS9zb19sb2NhdGlvbnMgLW8gJGxpYicKKysKKysJICAgICMg QXJjaGl2ZXMgY29udGFpbmluZyBDKysgb2JqZWN0IGZpbGVzIG11c3QgYmUgY3JlYXRlZCB1c2lu ZworKwkgICAgIyAiQ0MgLWFyIiwgd2hlcmUgIkNDIiBpcyB0aGUgSVJJWCBDKysgY29tcGlsZXIu ICBUaGlzIGlzCisrCSAgICAjIG5lY2Vzc2FyeSB0byBtYWtlIHN1cmUgaW5zdGFudGlhdGVkIHRl bXBsYXRlcyBhcmUgaW5jbHVkZWQKKysJICAgICMgaW4gdGhlIGFyY2hpdmUuCisrCSAgICBfTFRf VEFHVkFSKG9sZF9hcmNoaXZlX2NtZHMsICQxKT0nJENDIC1hciAtV1IsLXUgLW8gJG9sZGxpYiAk b2xkb2JqcycKKysJICAgIDs7CisrICAgICAgICAgICopCisrCSAgICBpZiB0ZXN0ICIkR1hYIiA9 IHllczsgdGhlbgorKwkgICAgICBpZiB0ZXN0ICIkd2l0aF9nbnVfbGQiID0gbm87IHRoZW4KKysJ ICAgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXNoYXJlZCAtbm9zdGRs aWIgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNv bXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAke3dsfSRzb25hbWUgYHRlc3QgLW4gIiR2ZXJzdHJp bmciICYmICRFQ0hPICJYJHt3bH0tc2V0X3ZlcnNpb24gJHt3bH0kdmVyc3RyaW5nIiB8ICRYc2Vk YCAke3dsfS11cGRhdGVfcmVnaXN0cnkgJHt3bH0ke291dHB1dF9vYmpkaXJ9L3NvX2xvY2F0aW9u cyAtbyAkbGliJworKwkgICAgICBlbHNlCisrCSAgICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2Nt ZHMsICQxKT0nJENDIC1zaGFyZWQgLW5vc3RkbGliICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAk ZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHt3 bH0kc29uYW1lIGB0ZXN0IC1uICIkdmVyc3RyaW5nIiAmJiAkRUNITyAiWCR7d2x9LXNldF92ZXJz aW9uICR7d2x9JHZlcnN0cmluZyIgfCAkWHNlZGAgLW8gJGxpYicKKysJICAgICAgZmkKKysJICAg IGZpCisrCSAgICBfTFRfVEFHVkFSKGxpbmtfYWxsX2RlcGxpYnMsICQxKT15ZXMKKysJICAgIDs7 CisrICAgICAgICBlc2FjCisrICAgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFn X3NwZWMsICQxKT0nJHt3bH0tcnBhdGggJHt3bH0kbGliZGlyJworKyAgICAgICAgX0xUX1RBR1ZB UihoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yLCAkMSk9OgorKyAgICAgICAgX0xUX1RBR1ZBUihp bmhlcml0X3JwYXRoLCAkMSk9eWVzCisrICAgICAgICA7OworKworKyAgICAgIGxpbnV4KiB8IGsq YnNkKi1nbnUpCisrICAgICAgICBjYXNlICRjY19iYXNlbmFtZSBpbgorKyAgICAgICAgICBLQ0Mq KQorKwkgICAgIyBLdWNrIGFuZCBBc3NvY2lhdGVzLCBJbmMuIChLQUkpIEMrKyBDb21waWxlcgor KworKwkgICAgIyBLQ0Mgd2lsbCBvbmx5IGNyZWF0ZSBhIHNoYXJlZCBsaWJyYXJ5IGlmIHRoZSBv dXRwdXQgZmlsZQorKwkgICAgIyBlbmRzIHdpdGggIi5zbyIgKG9yICIuc2wiIGZvciBIUC1VWCks IHNvIHJlbmFtZSB0aGUgbGlicmFyeQorKwkgICAgIyB0byBpdHMgcHJvcGVyIG5hbWUgKHdpdGgg dmVyc2lvbikgYWZ0ZXIgbGlua2luZy4KKysJICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAk MSk9J3RlbXBleHQ9YGVjaG8gJHNoYXJlZF9leHQgfCAkU0VEIC1lICdcJydzL1woW1teKCkwLTlB LVphLXp7fV1dXCkvXFxcXFwxL2cnXCcnYDsgdGVtcGxpYj1gZWNobyAkbGliIHwgJFNFRCAtZSAi cy9cJHt0ZW1wZXh0fVwuLiovLnNvLyJgOyAkQ0MgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRk ZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzIC0tc29uYW1lICRzb25hbWUg LW8gXCR0ZW1wbGliOyBtdiBcJHRlbXBsaWIgJGxpYicKKysJICAgIF9MVF9UQUdWQVIoYXJjaGl2 ZV9leHBzeW1fY21kcywgJDEpPSd0ZW1wZXh0PWBlY2hvICRzaGFyZWRfZXh0IHwgJFNFRCAtZSAn XCcncy9cKFtbXigpMC05QS1aYS16e31dXVwpL1xcXFxcMS9nJ1wnJ2A7IHRlbXBsaWI9YGVjaG8g JGxpYiB8ICRTRUQgLWUgInMvXCR7dGVtcGV4dH1cLi4qLy5zby8iYDsgJENDICRwcmVkZXBfb2Jq ZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAt LXNvbmFtZSAkc29uYW1lIC1vIFwkdGVtcGxpYiAke3dsfS1yZXRhaW4tc3ltYm9scy1maWxlLCRl eHBvcnRfc3ltYm9sczsgbXYgXCR0ZW1wbGliICRsaWInCisrCSAgICAjIENvbW1hbmRzIHRvIG1h a2UgY29tcGlsZXIgcHJvZHVjZSB2ZXJib3NlIG91dHB1dCB0aGF0IGxpc3RzCisrCSAgICAjIHdo YXQgImhpZGRlbiIgbGlicmFyaWVzLCBvYmplY3QgZmlsZXMgYW5kIGZsYWdzIGFyZSB1c2VkIHdo ZW4KKysJICAgICMgbGlua2luZyBhIHNoYXJlZCBsaWJyYXJ5LgorKwkgICAgIworKwkgICAgIyBU aGVyZSBkb2Vzbid0IGFwcGVhciB0byBiZSBhIHdheSB0byBwcmV2ZW50IHRoaXMgY29tcGlsZXIg ZnJvbQorKwkgICAgIyBleHBsaWNpdGx5IGxpbmtpbmcgc3lzdGVtIG9iamVjdCBmaWxlcyBzbyB3 ZSBuZWVkIHRvIHN0cmlwIHRoZW0KKysJICAgICMgZnJvbSB0aGUgb3V0cHV0IHNvIHRoYXQgdGhl eSBkb24ndCBnZXQgaW5jbHVkZWQgaW4gdGhlIGxpYnJhcnkKKysJICAgICMgZGVwZW5kZW5jaWVz LgorKwkgICAgb3V0cHV0X3ZlcmJvc2VfbGlua19jbWQ9J3RlbXBsaXN0PWAkQ0MgJENGTEFHUyAt diBjb25mdGVzdC4kb2JqZXh0IC1vIGxpYmNvbmZ0ZXN0JHNoYXJlZF9leHQgMj4mMSB8ICRHUkVQ ICJsZCJgOyBybSAtZiBsaWJjb25mdGVzdCRzaGFyZWRfZXh0OyBsaXN0PSIiOyBmb3IgeiBpbiAk dGVtcGxpc3Q7IGRvIGNhc2UgJHogaW4gY29uZnRlc3QuJG9iamV4dCkgbGlzdD0iJGxpc3QgJHoi OzsgKi4kb2JqZXh0KTs7ICopIGxpc3Q9IiRsaXN0ICR6Ijs7ZXNhYzsgZG9uZTsgJEVDSE8gIlgk bGlzdCIgfCAkWHNlZCcKKysKKysJICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdf c3BlYywgJDEpPScke3dsfS1ycGF0aCwkbGliZGlyJworKwkgICAgX0xUX1RBR1ZBUihleHBvcnRf ZHluYW1pY19mbGFnX3NwZWMsICQxKT0nJHt3bH0tLWV4cG9ydC1keW5hbWljJworKworKwkgICAg IyBBcmNoaXZlcyBjb250YWluaW5nIEMrKyBvYmplY3QgZmlsZXMgbXVzdCBiZSBjcmVhdGVkIHVz aW5nCisrCSAgICAjICJDQyAtQnN0YXRpYyIsIHdoZXJlICJDQyIgaXMgdGhlIEtBSSBDKysgY29t cGlsZXIuCisrCSAgICBfTFRfVEFHVkFSKG9sZF9hcmNoaXZlX2NtZHMsICQxKT0nJENDIC1Cc3Rh dGljIC1vICRvbGRsaWIgJG9sZG9ianMnCisrCSAgICA7OworKwkgIGljcGMqIHwgZWNwYyogKQor KwkgICAgIyBJbnRlbCBDKysKKysJICAgIHdpdGhfZ251X2xkPXllcworKwkgICAgIyB2ZXJzaW9u IDguMCBhbmQgYWJvdmUgb2YgaWNwYyBjaG9rZSBvbiBtdWx0aXBseSBkZWZpbmVkIHN5bWJvbHMK KysJICAgICMgaWYgd2UgYWRkICRwcmVkZXBfb2JqZWN0cyBhbmQgJHBvc3RkZXBfb2JqZWN0cywg aG93ZXZlciA3LjEgYW5kCisrCSAgICAjIGVhcmxpZXIgZG8gbm90IGFkZCB0aGUgb2JqZWN0cyB0 aGVtc2VsdmVzLgorKwkgICAgY2FzZSBgJENDIC1WIDI+JjFgIGluCisrCSAgICAgICoiVmVyc2lv biA3LiIqKQorKwkgICAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hh cmVkICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRj b21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAtbyAkbGliJworKwkJX0xUX1RB R1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkICRwcmVkZXBfb2JqZWN0 cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAke3ds fS1zb25hbWUgJHdsJHNvbmFtZSAke3dsfS1yZXRhaW4tc3ltYm9scy1maWxlICR3bCRleHBvcnRf c3ltYm9scyAtbyAkbGliJworKwkJOzsKKysJICAgICAgKikgICMgVmVyc2lvbiA4LjAgb3IgbmV3 ZXIKKysJICAgICAgICB0bXBfaWR5bj0KKysJICAgICAgICBjYXNlICRob3N0X2NwdSBpbgorKwkJ ICBpYTY0KikgdG1wX2lkeW49JyAtaV9keW5hbWljJzs7CisrCQllc2FjCisrCSAgICAgICAgX0xU X1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1zaGFyZWQnIiR0bXBfaWR5biInICRsaWJv YmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAtbyAk bGliJworKwkJX0xUX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVk JyIkdG1wX2lkeW4iJyAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29u YW1lICR3bCRzb25hbWUgJHt3bH0tcmV0YWluLXN5bWJvbHMtZmlsZSAkd2wkZXhwb3J0X3N5bWJv bHMgLW8gJGxpYicKKysJCTs7CisrCSAgICBlc2FjCisrCSAgICBfTFRfVEFHVkFSKGFyY2hpdmVf Y21kc19uZWVkX2xjLCAkMSk9bm8KKysJICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2Zs YWdfc3BlYywgJDEpPScke3dsfS1ycGF0aCwkbGliZGlyJworKwkgICAgX0xUX1RBR1ZBUihleHBv cnRfZHluYW1pY19mbGFnX3NwZWMsICQxKT0nJHt3bH0tLWV4cG9ydC1keW5hbWljJworKwkgICAg X0xUX1RBR1ZBUih3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYywgJDEpPScke3dsfS0td2hvbGUtYXJj aGl2ZSRjb252ZW5pZW5jZSAke3dsfS0tbm8td2hvbGUtYXJjaGl2ZScKKysJICAgIDs7CisrICAg ICAgICAgIHBnQ0MqIHwgcGdjcHAqKQorKyAgICAgICAgICAgICMgUG9ydGxhbmQgR3JvdXAgQysr IGNvbXBpbGVyCisrCSAgICBjYXNlIGAkQ0MgLVZgIGluCisrCSAgICAqcGdDQ1wgW1sxLTVdXSog fCAqcGdjcHBcIFtbMS01XV0qKQorKwkgICAgICBfTFRfVEFHVkFSKHByZWxpbmtfY21kcywgJDEp PSd0cGxkaXI9VGVtcGxhdGUuZGlyfgorKwkJcm0gLXJmICR0cGxkaXJ+CisrCQkkQ0MgLS1wcmVs aW5rX29iamVjdHMgLS1pbnN0YW50aWF0aW9uX2RpciAkdHBsZGlyICRvYmpzICRsaWJvYmpzICRj b21waWxlX2RlcGxpYnN+CisrCQljb21waWxlX2NvbW1hbmQ9IiRjb21waWxlX2NvbW1hbmQgYGZp bmQgJHRwbGRpciAtbmFtZSBcKi5vIHwgJE5MMlNQYCInCisrCSAgICAgIF9MVF9UQUdWQVIob2xk X2FyY2hpdmVfY21kcywgJDEpPSd0cGxkaXI9VGVtcGxhdGUuZGlyfgorKwkJcm0gLXJmICR0cGxk aXJ+CisrCQkkQ0MgLS1wcmVsaW5rX29iamVjdHMgLS1pbnN0YW50aWF0aW9uX2RpciAkdHBsZGly ICRvbGRvYmpzJG9sZF9kZXBsaWJzfgorKwkJJEFSICRBUl9GTEFHUyAkb2xkbGliJG9sZG9ianMk b2xkX2RlcGxpYnMgYGZpbmQgJHRwbGRpciAtbmFtZSBcKi5vIHwgJE5MMlNQYH4KKysJCSRSQU5M SUIgJG9sZGxpYicKKysJICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0ndHBsZGly PVRlbXBsYXRlLmRpcn4KKysJCXJtIC1yZiAkdHBsZGlyfgorKwkJJENDIC0tcHJlbGlua19vYmpl Y3RzIC0taW5zdGFudGlhdGlvbl9kaXIgJHRwbGRpciAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMg JGRlcGxpYnMgJGNvbnZlbmllbmNlICRwb3N0ZGVwX29iamVjdHN+CisrCQkkQ0MgLXNoYXJlZCAk cGljX2ZsYWcgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzIGBmaW5kICR0cGxkaXIg LW5hbWUgXCoubyB8ICROTDJTUGAgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgJHt3 bH0tc29uYW1lICR7d2x9JHNvbmFtZSAtbyAkbGliJworKwkgICAgICBfTFRfVEFHVkFSKGFyY2hp dmVfZXhwc3ltX2NtZHMsICQxKT0ndHBsZGlyPVRlbXBsYXRlLmRpcn4KKysJCXJtIC1yZiAkdHBs ZGlyfgorKwkJJENDIC0tcHJlbGlua19vYmplY3RzIC0taW5zdGFudGlhdGlvbl9kaXIgJHRwbGRp ciAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJGNvbnZlbmllbmNlICRwb3N0ZGVw X29iamVjdHN+CisrCQkkQ0MgLXNoYXJlZCAkcGljX2ZsYWcgJHByZWRlcF9vYmplY3RzICRsaWJv YmpzICRkZXBsaWJzIGBmaW5kICR0cGxkaXIgLW5hbWUgXCoubyB8ICROTDJTUGAgJHBvc3RkZXBf b2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR7d2x9JHNvbmFtZSAke3dsfS1y ZXRhaW4tc3ltYm9scy1maWxlICR7d2x9JGV4cG9ydF9zeW1ib2xzIC1vICRsaWInCisrCSAgICAg IDs7CisrCSAgICAqKSAjIFZlcnNpb24gNiB3aWxsIHVzZSB3ZWFrIHN5bWJvbHMKKysJICAgICAg X0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgJHBpY19mbGFnICRwcmVk ZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9m bGFncyAke3dsfS1zb25hbWUgJHt3bH0kc29uYW1lIC1vICRsaWInCisrCSAgICAgIF9MVF9UQUdW QVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEpPSckQ0MgLXNoYXJlZCAkcGljX2ZsYWcgJHByZWRl cF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2Zs YWdzICR7d2x9LXNvbmFtZSAke3dsfSRzb25hbWUgJHt3bH0tcmV0YWluLXN5bWJvbHMtZmlsZSAk e3dsfSRleHBvcnRfc3ltYm9scyAtbyAkbGliJworKwkgICAgICA7OworKwkgICAgZXNhYworKwor KwkgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LS1y cGF0aCAke3dsfSRsaWJkaXInCisrCSAgICBfTFRfVEFHVkFSKGV4cG9ydF9keW5hbWljX2ZsYWdf c3BlYywgJDEpPScke3dsfS0tZXhwb3J0LWR5bmFtaWMnCisrCSAgICBfTFRfVEFHVkFSKHdob2xl X2FyY2hpdmVfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LS13aG9sZS1hcmNoaXZlYGZvciBjb252IGlu ICRjb252ZW5pZW5jZVwiXCI7IGRvIHRlc3QgIC1uIFwiJGNvbnZcIiAmJiBuZXdfY29udmVuaWVu Y2U9XCIkbmV3X2NvbnZlbmllbmNlLCRjb252XCI7IGRvbmU7ICRFQ0hPIFwiJG5ld19jb252ZW5p ZW5jZVwiYCAke3dsfS0tbm8td2hvbGUtYXJjaGl2ZScKKysgICAgICAgICAgICA7OworKwkgIGN4 eCopCisrCSAgICAjIENvbXBhcSBDKysKKysJICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAk MSk9JyRDQyAtc2hhcmVkICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRl cF9vYmplY3RzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAtbyAkbGli JworKwkgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVk ICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21w aWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAgLW8gJGxpYiAke3dsfS1yZXRhaW4t c3ltYm9scy1maWxlICR3bCRleHBvcnRfc3ltYm9scycKKysKKysJICAgIHJ1bnBhdGhfdmFyPUxE X1JVTl9QQVRICisrCSAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQx KT0nLXJwYXRoICRsaWJkaXInCisrCSAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9zZXBh cmF0b3IsICQxKT06CisrCisrCSAgICAjIENvbW1hbmRzIHRvIG1ha2UgY29tcGlsZXIgcHJvZHVj ZSB2ZXJib3NlIG91dHB1dCB0aGF0IGxpc3RzCisrCSAgICAjIHdoYXQgImhpZGRlbiIgbGlicmFy aWVzLCBvYmplY3QgZmlsZXMgYW5kIGZsYWdzIGFyZSB1c2VkIHdoZW4KKysJICAgICMgbGlua2lu ZyBhIHNoYXJlZCBsaWJyYXJ5LgorKwkgICAgIworKwkgICAgIyBUaGVyZSBkb2Vzbid0IGFwcGVh ciB0byBiZSBhIHdheSB0byBwcmV2ZW50IHRoaXMgY29tcGlsZXIgZnJvbQorKwkgICAgIyBleHBs aWNpdGx5IGxpbmtpbmcgc3lzdGVtIG9iamVjdCBmaWxlcyBzbyB3ZSBuZWVkIHRvIHN0cmlwIHRo ZW0KKysJICAgICMgZnJvbSB0aGUgb3V0cHV0IHNvIHRoYXQgdGhleSBkb24ndCBnZXQgaW5jbHVk ZWQgaW4gdGhlIGxpYnJhcnkKKysJICAgICMgZGVwZW5kZW5jaWVzLgorKwkgICAgb3V0cHV0X3Zl cmJvc2VfbGlua19jbWQ9J3RlbXBsaXN0PWAkQ0MgLXNoYXJlZCAkQ0ZMQUdTIC12IGNvbmZ0ZXN0 LiRvYmpleHQgMj4mMSB8ICRHUkVQICJsZCJgOyB0ZW1wbGlzdD1gJEVDSE8gIlgkdGVtcGxpc3Qi IHwgJFhzZWQgLWUgInMvXCheLipsZC4qXClcKCAuKmxkIC4qJFwpL1wxLyJgOyBsaXN0PSIiOyBm b3IgeiBpbiAkdGVtcGxpc3Q7IGRvIGNhc2UgJHogaW4gY29uZnRlc3QuJG9iamV4dCkgbGlzdD0i JGxpc3QgJHoiOzsgKi4kb2JqZXh0KTs7ICopIGxpc3Q9IiRsaXN0ICR6Ijs7ZXNhYzsgZG9uZTsg JEVDSE8gIlgkbGlzdCIgfCAkWHNlZCcKKysJICAgIDs7CisrCSAgeGwqKQorKwkgICAgIyBJQk0g WEwgOC4wIG9uIFBQQywgd2l0aCBHTlUgbGQKKysJICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGli ZGlyX2ZsYWdfc3BlYywgJDEpPScke3dsfS1ycGF0aCAke3dsfSRsaWJkaXInCisrCSAgICBfTFRf VEFHVkFSKGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlYywgJDEpPScke3dsfS0tZXhwb3J0LWR5bmFt aWMnCisrCSAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXFta3Nocm9iaiAk bGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR3bCRzb25hbWUg LW8gJGxpYicKKysJICAgIGlmIHRlc3QgIngkc3VwcG9ydHNfYW5vbl92ZXJzaW9uaW5nIiA9IHh5 ZXM7IHRoZW4KKysJICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9J2Vj aG8gInsgZ2xvYmFsOiIgPiAkb3V0cHV0X29iamRpci8kbGlibmFtZS52ZXJ+CisrCQljYXQgJGV4 cG9ydF9zeW1ib2xzIHwgc2VkIC1lICJzL1woLipcKS9cMTsvIiA+PiAkb3V0cHV0X29iamRpci8k bGlibmFtZS52ZXJ+CisrCQllY2hvICJsb2NhbDogKjsgfTsiID4+ICRvdXRwdXRfb2JqZGlyLyRs aWJuYW1lLnZlcn4KKysJCSRDQyAtcW1rc2hyb2JqICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxl cl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAke3dsfS12ZXJzaW9uLXNjcmlwdCAke3ds fSRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLnZlciAtbyAkbGliJworKwkgICAgZmkKKysJICAgIDs7 CisrCSAgKikKKysJICAgIGNhc2UgYCRDQyAtViAyPiYxIHwgc2VkIDVxYCBpbgorKwkgICAgKlN1 blwgQyopCisrCSAgICAgICMgU3VuIEMrKyA1LjkKKysJICAgICAgX0xUX1RBR1ZBUihub191bmRl ZmluZWRfZmxhZywgJDEpPScgLXpkZWZzJworKwkgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21k cywgJDEpPSckQ0MgLUcke2FsbG93X3VuZGVmaW5lZF9mbGFnfSAtaCRzb25hbWUgLW8gJGxpYiAk cHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGls ZXJfZmxhZ3MnCisrCSAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEpPSck Q0MgLUcke2FsbG93X3VuZGVmaW5lZF9mbGFnfSAtaCRzb25hbWUgLW8gJGxpYiAkcHJlZGVwX29i amVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3Mg JHt3bH0tcmV0YWluLXN5bWJvbHMtZmlsZSAke3dsfSRleHBvcnRfc3ltYm9scycKKysJICAgICAg X0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9Jy1SJGxpYmRpcicKKysJ ICAgICAgX0xUX1RBR1ZBUih3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYywgJDEpPScke3dsfS0td2hv bGUtYXJjaGl2ZWBuZXdfY29udmVuaWVuY2U9OyBmb3IgY29udiBpbiAkY29udmVuaWVuY2VcIlwi OyBkbyB0ZXN0IC16IFwiJGNvbnZcIiB8fCBuZXdfY29udmVuaWVuY2U9XCIkbmV3X2NvbnZlbmll bmNlLCRjb252XCI7IGRvbmU7ICRFQ0hPIFwiJG5ld19jb252ZW5pZW5jZVwiYCAke3dsfS0tbm8t d2hvbGUtYXJjaGl2ZScKKysJICAgICAgX0xUX1RBR1ZBUihjb21waWxlcl9uZWVkc19vYmplY3Qs ICQxKT15ZXMKKysKKysJICAgICAgIyBOb3Qgc3VyZSB3aGV0aGVyIHNvbWV0aGluZyBiYXNlZCBv bgorKwkgICAgICAjICRDQyAkQ0ZMQUdTIC12IGNvbmZ0ZXN0LiRvYmpleHQgLW8gbGliY29uZnRl c3Qkc2hhcmVkX2V4dCAyPiYxCisrCSAgICAgICMgd291bGQgYmUgYmV0dGVyLgorKwkgICAgICBv dXRwdXRfdmVyYm9zZV9saW5rX2NtZD0nZWNobycKKysKKysJICAgICAgIyBBcmNoaXZlcyBjb250 YWluaW5nIEMrKyBvYmplY3QgZmlsZXMgbXVzdCBiZSBjcmVhdGVkIHVzaW5nCisrCSAgICAgICMg IkNDIC14YXIiLCB3aGVyZSAiQ0MiIGlzIHRoZSBTdW4gQysrIGNvbXBpbGVyLiAgVGhpcyBpcwor KwkgICAgICAjIG5lY2Vzc2FyeSB0byBtYWtlIHN1cmUgaW5zdGFudGlhdGVkIHRlbXBsYXRlcyBh cmUgaW5jbHVkZWQKKysJICAgICAgIyBpbiB0aGUgYXJjaGl2ZS4KKysJICAgICAgX0xUX1RBR1ZB UihvbGRfYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAteGFyIC1vICRvbGRsaWIgJG9sZG9ianMnCisr CSAgICAgIDs7CisrCSAgICBlc2FjCisrCSAgICA7OworKwllc2FjCisrCTs7CisrCisrICAgICAg bHlueG9zKikKKysgICAgICAgICMgRklYTUU6IGluc2VydCBwcm9wZXIgQysrIGxpYnJhcnkgc3Vw cG9ydAorKwlfTFRfVEFHVkFSKGxkX3NobGlicywgJDEpPW5vCisrCTs7CisrCisrICAgICAgbTg4 ayopCisrICAgICAgICAjIEZJWE1FOiBpbnNlcnQgcHJvcGVyIEMrKyBsaWJyYXJ5IHN1cHBvcnQK KysgICAgICAgIF9MVF9UQUdWQVIobGRfc2hsaWJzLCAkMSk9bm8KKysJOzsKKysKKysgICAgICBt dnMqKQorKyAgICAgICAgY2FzZSAkY2NfYmFzZW5hbWUgaW4KKysgICAgICAgICAgY3h4KikKKysJ ICAgICMgRklYTUU6IGluc2VydCBwcm9wZXIgQysrIGxpYnJhcnkgc3VwcG9ydAorKwkgICAgX0xU X1RBR1ZBUihsZF9zaGxpYnMsICQxKT1ubworKwkgICAgOzsKKysJICAqKQorKwkgICAgIyBGSVhN RTogaW5zZXJ0IHByb3BlciBDKysgbGlicmFyeSBzdXBwb3J0CisrCSAgICBfTFRfVEFHVkFSKGxk X3NobGlicywgJDEpPW5vCisrCSAgICA7OworKwllc2FjCisrCTs7CisrCisrICAgICAgbmV0YnNk KikKKysgICAgICAgIGlmIGVjaG8gX19FTEZfXyB8ICRDQyAtRSAtIHwgJEdSRVAgX19FTEZfXyA+ L2Rldi9udWxsOyB0aGVuCisrCSAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJExEIC1C c2hhcmVhYmxlICAtbyAkbGliICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9z dGRlcF9vYmplY3RzICRsaW5rZXJfZmxhZ3MnCisrCSAgd2xhcmM9CisrCSAgX0xUX1RBR1ZBUiho YXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9Jy1SJGxpYmRpcicKKysJICBfTFRfVEFHVkFS KGhhcmRjb2RlX2RpcmVjdCwgJDEpPXllcworKwkgIF9MVF9UQUdWQVIoaGFyZGNvZGVfc2hsaWJw YXRoX3ZhciwgJDEpPW5vCisrCWZpCisrCSMgV29ya2Fyb3VuZCBzb21lIGJyb2tlbiBwcmUtMS41 IHRvb2xjaGFpbnMKKysJb3V0cHV0X3ZlcmJvc2VfbGlua19jbWQ9JyRDQyAtc2hhcmVkICRDRkxB R1MgLXYgY29uZnRlc3QuJG9iamV4dCAyPiYxIHwgJEdSRVAgY29uZnRlc3QuJG9iamV4dCB8ICRT RUQgLWUgInM6LWxnY2MgLWxjIC1sZ2NjOjoiJworKwk7OworKworKyAgICAgICpudG8qIHwgKnFu eCopCisrICAgICAgICBfTFRfVEFHVkFSKGxkX3NobGlicywgJDEpPXllcworKwk7OworKworKyAg ICAgIG9wZW5ic2QyKikKKysgICAgICAgICMgQysrIHNoYXJlZCBsaWJyYXJpZXMgYXJlIGZhaXJs eSBicm9rZW4KKysJX0xUX1RBR1ZBUihsZF9zaGxpYnMsICQxKT1ubworKwk7OworKworKyAgICAg IG9wZW5ic2QqKQorKwlpZiB0ZXN0IC1mIC91c3IvbGliZXhlYy9sZC5zbzsgdGhlbgorKwkgIF9M VF9UQUdWQVIoaGFyZGNvZGVfZGlyZWN0LCAkMSk9eWVzCisrCSAgX0xUX1RBR1ZBUihoYXJkY29k ZV9zaGxpYnBhdGhfdmFyLCAkMSk9bm8KKysJICBfTFRfVEFHVkFSKGhhcmRjb2RlX2RpcmVjdF9h YnNvbHV0ZSwgJDEpPXllcworKwkgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAt c2hhcmVkICRwaWNfZmxhZyAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3Rk ZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgLW8gJGxpYicKKysJICBfTFRfVEFHVkFSKGhhcmRj b2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nJHt3bH0tcnBhdGgsJGxpYmRpcicKKysJICBpZiB0 ZXN0IC16ICJgZWNobyBfX0VMRl9fIHwgJENDIC1FIC0gfCBncmVwIF9fRUxGX19gIiB8fCB0ZXN0 ICIkaG9zdF9vcy0kaG9zdF9jcHUiID0gIm9wZW5ic2QyLjgtcG93ZXJwYyI7IHRoZW4KKysJICAg IF9MVF9UQUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEpPSckQ0MgLXNoYXJlZCAkcGljX2Zs YWcgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNv bXBpbGVyX2ZsYWdzICR7d2x9LXJldGFpbi1zeW1ib2xzLWZpbGUsJGV4cG9ydF9zeW1ib2xzIC1v ICRsaWInCisrCSAgICBfTFRfVEFHVkFSKGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlYywgJDEpPSck e3dsfS1FJworKwkgICAgX0xUX1RBR1ZBUih3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYywgJDEpPSIk d2xhcmMiJy0td2hvbGUtYXJjaGl2ZSRjb252ZW5pZW5jZSAnIiR3bGFyYyInLS1uby13aG9sZS1h cmNoaXZlJworKwkgIGZpCisrCSAgb3V0cHV0X3ZlcmJvc2VfbGlua19jbWQ9ZWNobworKwllbHNl CisrCSAgX0xUX1RBR1ZBUihsZF9zaGxpYnMsICQxKT1ubworKwlmaQorKwk7OworKworKyAgICAg IG9zZjMqIHwgb3NmNCogfCBvc2Y1KikKKysgICAgICAgIGNhc2UgJGNjX2Jhc2VuYW1lIGluCisr ICAgICAgICAgIEtDQyopCisrCSAgICAjIEt1Y2sgYW5kIEFzc29jaWF0ZXMsIEluYy4gKEtBSSkg QysrIENvbXBpbGVyCisrCisrCSAgICAjIEtDQyB3aWxsIG9ubHkgY3JlYXRlIGEgc2hhcmVkIGxp YnJhcnkgaWYgdGhlIG91dHB1dCBmaWxlCisrCSAgICAjIGVuZHMgd2l0aCAiLnNvIiAob3IgIi5z bCIgZm9yIEhQLVVYKSwgc28gcmVuYW1lIHRoZSBsaWJyYXJ5CisrCSAgICAjIHRvIGl0cyBwcm9w ZXIgbmFtZSAod2l0aCB2ZXJzaW9uKSBhZnRlciBsaW5raW5nLgorKwkgICAgX0xUX1RBR1ZBUihh cmNoaXZlX2NtZHMsICQxKT0ndGVtcGV4dD1gZWNobyAkc2hhcmVkX2V4dCB8ICRTRUQgLWUgJ1wn J3MvXChbW14oKTAtOUEtWmEtent9XV1cKS9cXFxcXDEvZydcJydgOyB0ZW1wbGliPWBlY2hvICIk bGliIiB8ICRTRUQgLWUgInMvXCR7dGVtcGV4dH1cLi4qLy5zby8iYDsgJENDICRwcmVkZXBfb2Jq ZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAt LXNvbmFtZSAkc29uYW1lIC1vIFwkdGVtcGxpYjsgbXYgXCR0ZW1wbGliICRsaWInCisrCisrCSAg ICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nJHt3bH0tcnBhdGgs JGxpYmRpcicKKysJICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciwgJDEp PToKKysKKysJICAgICMgQXJjaGl2ZXMgY29udGFpbmluZyBDKysgb2JqZWN0IGZpbGVzIG11c3Qg YmUgY3JlYXRlZCB1c2luZworKwkgICAgIyB0aGUgS0FJIEMrKyBjb21waWxlci4KKysJICAgIGNh c2UgJGhvc3QgaW4KKysJICAgICAgb3NmMyopIF9MVF9UQUdWQVIob2xkX2FyY2hpdmVfY21kcywg JDEpPSckQ0MgLUJzdGF0aWMgLW8gJG9sZGxpYiAkb2xkb2JqcycgOzsKKysJICAgICAgKikgX0xU X1RBR1ZBUihvbGRfYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtbyAkb2xkbGliICRvbGRvYmpzJyA7 OworKwkgICAgZXNhYworKwkgICAgOzsKKysgICAgICAgICAgUkNDKikKKysJICAgICMgUmF0aW9u YWwgQysrIDIuNC4xCisrCSAgICAjIEZJWE1FOiBpbnNlcnQgcHJvcGVyIEMrKyBsaWJyYXJ5IHN1 cHBvcnQKKysJICAgIF9MVF9UQUdWQVIobGRfc2hsaWJzLCAkMSk9bm8KKysJICAgIDs7CisrICAg ICAgICAgIGN4eCopCisrCSAgICBjYXNlICRob3N0IGluCisrCSAgICAgIG9zZjMqKQorKwkgICAg ICAgIF9MVF9UQUdWQVIoYWxsb3dfdW5kZWZpbmVkX2ZsYWcsICQxKT0nICR7d2x9LWV4cGVjdF91 bnJlc29sdmVkICR7d2x9XConCisrCSAgICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQx KT0nJENDIC1zaGFyZWQke2FsbG93X3VuZGVmaW5lZF9mbGFnfSAkcHJlZGVwX29iamVjdHMgJGxp Ym9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29u YW1lICRzb25hbWUgYHRlc3QgLW4gIiR2ZXJzdHJpbmciICYmICRFQ0hPICJYJHt3bH0tc2V0X3Zl cnNpb24gJHZlcnN0cmluZyIgfCAkWHNlZGAgLXVwZGF0ZV9yZWdpc3RyeSAke291dHB1dF9vYmpk aXJ9L3NvX2xvY2F0aW9ucyAtbyAkbGliJworKwkgICAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVf bGliZGlyX2ZsYWdfc3BlYywgJDEpPScke3dsfS1ycGF0aCAke3dsfSRsaWJkaXInCisrCQk7Owor KwkgICAgICAqKQorKwkgICAgICAgIF9MVF9UQUdWQVIoYWxsb3dfdW5kZWZpbmVkX2ZsYWcsICQx KT0nIC1leHBlY3RfdW5yZXNvbHZlZCBcKicKKysJICAgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVf Y21kcywgJDEpPSckQ0MgLXNoYXJlZCR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9ICRwcmVkZXBfb2Jq ZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAt bXN5bSAtc29uYW1lICRzb25hbWUgYHRlc3QgLW4gIiR2ZXJzdHJpbmciICYmICRFQ0hPICJYLXNl dF92ZXJzaW9uICR2ZXJzdHJpbmciIHwgJFhzZWRgIC11cGRhdGVfcmVnaXN0cnkgJHtvdXRwdXRf b2JqZGlyfS9zb19sb2NhdGlvbnMgLW8gJGxpYicKKysJICAgICAgICBfTFRfVEFHVkFSKGFyY2hp dmVfZXhwc3ltX2NtZHMsICQxKT0nZm9yIGkgaW4gYGNhdCAkZXhwb3J0X3N5bWJvbHNgOyBkbyBw cmludGYgIiVzICVzXFxuIiAtZXhwb3J0ZWRfc3ltYm9sICJcJGkiID4+ICRsaWIuZXhwOyBkb25l fgorKwkgICAgICAgICAgZWNobyAiLWhpZGRlbiI+PiAkbGliLmV4cH4KKysJICAgICAgICAgICRD QyAtc2hhcmVkJGFsbG93X3VuZGVmaW5lZF9mbGFnICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAk ZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAtbXN5bSAtc29uYW1lICRz b25hbWUgJHt3bH0taW5wdXQgJHt3bH0kbGliLmV4cCAgYHRlc3QgLW4gIiR2ZXJzdHJpbmciICYm ICRFQ0hPICJYLXNldF92ZXJzaW9uICR2ZXJzdHJpbmciIHwgJFhzZWRgIC11cGRhdGVfcmVnaXN0 cnkgJHtvdXRwdXRfb2JqZGlyfS9zb19sb2NhdGlvbnMgLW8gJGxpYn4KKysJICAgICAgICAgICRS TSAkbGliLmV4cCcKKysJICAgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3Nw ZWMsICQxKT0nLXJwYXRoICRsaWJkaXInCisrCQk7OworKwkgICAgZXNhYworKworKwkgICAgX0xU X1RBR1ZBUihoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yLCAkMSk9OgorKworKwkgICAgIyBDb21t YW5kcyB0byBtYWtlIGNvbXBpbGVyIHByb2R1Y2UgdmVyYm9zZSBvdXRwdXQgdGhhdCBsaXN0cwor KwkgICAgIyB3aGF0ICJoaWRkZW4iIGxpYnJhcmllcywgb2JqZWN0IGZpbGVzIGFuZCBmbGFncyBh cmUgdXNlZCB3aGVuCisrCSAgICAjIGxpbmtpbmcgYSBzaGFyZWQgbGlicmFyeS4KKysJICAgICMK KysJICAgICMgVGhlcmUgZG9lc24ndCBhcHBlYXIgdG8gYmUgYSB3YXkgdG8gcHJldmVudCB0aGlz IGNvbXBpbGVyIGZyb20KKysJICAgICMgZXhwbGljaXRseSBsaW5raW5nIHN5c3RlbSBvYmplY3Qg ZmlsZXMgc28gd2UgbmVlZCB0byBzdHJpcCB0aGVtCisrCSAgICAjIGZyb20gdGhlIG91dHB1dCBz byB0aGF0IHRoZXkgZG9uJ3QgZ2V0IGluY2x1ZGVkIGluIHRoZSBsaWJyYXJ5CisrCSAgICAjIGRl cGVuZGVuY2llcy4KKysJICAgIG91dHB1dF92ZXJib3NlX2xpbmtfY21kPSd0ZW1wbGlzdD1gJEND IC1zaGFyZWQgJENGTEFHUyAtdiBjb25mdGVzdC4kb2JqZXh0IDI+JjEgfCAkR1JFUCAibGQiIHwg JEdSRVAgLXYgImxkOiJgOyB0ZW1wbGlzdD1gJEVDSE8gIlgkdGVtcGxpc3QiIHwgJFhzZWQgLWUg InMvXCheLipsZC4qXClcKCAuKmxkLiokXCkvXDEvImA7IGxpc3Q9IiI7IGZvciB6IGluICR0ZW1w bGlzdDsgZG8gY2FzZSAkeiBpbiBjb25mdGVzdC4kb2JqZXh0KSBsaXN0PSIkbGlzdCAkeiI7OyAq LiRvYmpleHQpOzsgKikgbGlzdD0iJGxpc3QgJHoiOztlc2FjOyBkb25lOyAkRUNITyAiWCRsaXN0 IiB8ICRYc2VkJworKwkgICAgOzsKKysJICAqKQorKwkgICAgaWYgdGVzdCAiJEdYWCIgPSB5ZXMg JiYgdGVzdCAiJHdpdGhfZ251X2xkIiA9IG5vOyB0aGVuCisrCSAgICAgIF9MVF9UQUdWQVIoYWxs b3dfdW5kZWZpbmVkX2ZsYWcsICQxKT0nICR7d2x9LWV4cGVjdF91bnJlc29sdmVkICR7d2x9XCon CisrCSAgICAgIGNhc2UgJGhvc3QgaW4KKysJICAgICAgICBvc2YzKikKKysJICAgICAgICAgIF9M VF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkIC1ub3N0ZGxpYiAke2FsbG93 X3VuZGVmaW5lZF9mbGFnfSAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3Rk ZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR7d2x9JHNvbmFtZSBgdGVz dCAtbiAiJHZlcnN0cmluZyIgJiYgJEVDSE8gIlgke3dsfS1zZXRfdmVyc2lvbiAke3dsfSR2ZXJz dHJpbmciIHwgJFhzZWRgICR7d2x9LXVwZGF0ZV9yZWdpc3RyeSAke3dsfSR7b3V0cHV0X29iamRp cn0vc29fbG9jYXRpb25zIC1vICRsaWInCisrCQkgIDs7CisrCSAgICAgICAgKikKKysJICAgICAg ICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkIC1ub3N0ZGxpYiAk e2FsbG93X3VuZGVmaW5lZF9mbGFnfSAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMg JHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tbXN5bSAke3dsfS1zb25hbWUg JHt3bH0kc29uYW1lIGB0ZXN0IC1uICIkdmVyc3RyaW5nIiAmJiAkRUNITyAiJHt3bH0tc2V0X3Zl cnNpb24gJHt3bH0kdmVyc3RyaW5nIiB8ICRYc2VkYCAke3dsfS11cGRhdGVfcmVnaXN0cnkgJHt3 bH0ke291dHB1dF9vYmpkaXJ9L3NvX2xvY2F0aW9ucyAtbyAkbGliJworKwkJICA7OworKwkgICAg ICBlc2FjCisrCisrCSAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywg JDEpPScke3dsfS1ycGF0aCAke3dsfSRsaWJkaXInCisrCSAgICAgIF9MVF9UQUdWQVIoaGFyZGNv ZGVfbGliZGlyX3NlcGFyYXRvciwgJDEpPToKKysKKysJICAgICAgIyBDb21tYW5kcyB0byBtYWtl IGNvbXBpbGVyIHByb2R1Y2UgdmVyYm9zZSBvdXRwdXQgdGhhdCBsaXN0cworKwkgICAgICAjIHdo YXQgImhpZGRlbiIgbGlicmFyaWVzLCBvYmplY3QgZmlsZXMgYW5kIGZsYWdzIGFyZSB1c2VkIHdo ZW4KKysJICAgICAgIyBsaW5raW5nIGEgc2hhcmVkIGxpYnJhcnkuCisrCSAgICAgIG91dHB1dF92 ZXJib3NlX2xpbmtfY21kPSckQ0MgLXNoYXJlZCAkQ0ZMQUdTIC12IGNvbmZ0ZXN0LiRvYmpleHQg Mj4mMSB8ICRHUkVQICJcLUwiJworKworKwkgICAgZWxzZQorKwkgICAgICAjIEZJWE1FOiBpbnNl cnQgcHJvcGVyIEMrKyBsaWJyYXJ5IHN1cHBvcnQKKysJICAgICAgX0xUX1RBR1ZBUihsZF9zaGxp YnMsICQxKT1ubworKwkgICAgZmkKKysJICAgIDs7CisrICAgICAgICBlc2FjCisrICAgICAgICA7 OworKworKyAgICAgIHBzb3MqKQorKyAgICAgICAgIyBGSVhNRTogaW5zZXJ0IHByb3BlciBDKysg bGlicmFyeSBzdXBwb3J0CisrICAgICAgICBfTFRfVEFHVkFSKGxkX3NobGlicywgJDEpPW5vCisr ICAgICAgICA7OworKworKyAgICAgIHN1bm9zNCopCisrICAgICAgICBjYXNlICRjY19iYXNlbmFt ZSBpbgorKyAgICAgICAgICBDQyopCisrCSAgICAjIFN1biBDKysgNC54CisrCSAgICAjIEZJWE1F OiBpbnNlcnQgcHJvcGVyIEMrKyBsaWJyYXJ5IHN1cHBvcnQKKysJICAgIF9MVF9UQUdWQVIobGRf c2hsaWJzLCAkMSk9bm8KKysJICAgIDs7CisrICAgICAgICAgIGxjYyopCisrCSAgICAjIEx1Y2lk CisrCSAgICAjIEZJWE1FOiBpbnNlcnQgcHJvcGVyIEMrKyBsaWJyYXJ5IHN1cHBvcnQKKysJICAg IF9MVF9UQUdWQVIobGRfc2hsaWJzLCAkMSk9bm8KKysJICAgIDs7CisrICAgICAgICAgICopCisr CSAgICAjIEZJWE1FOiBpbnNlcnQgcHJvcGVyIEMrKyBsaWJyYXJ5IHN1cHBvcnQKKysJICAgIF9M VF9UQUdWQVIobGRfc2hsaWJzLCAkMSk9bm8KKysJICAgIDs7CisrICAgICAgICBlc2FjCisrICAg ICAgICA7OworKworKyAgICAgIHNvbGFyaXMqKQorKyAgICAgICAgY2FzZSAkY2NfYmFzZW5hbWUg aW4KKysgICAgICAgICAgQ0MqKQorKwkgICAgIyBTdW4gQysrIDQuMiwgNS54IGFuZCBDZW50ZXJs aW5lIEMrKworKyAgICAgICAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzX25lZWRfbGMsJDEp PXllcworKwkgICAgX0xUX1RBR1ZBUihub191bmRlZmluZWRfZmxhZywgJDEpPScgLXpkZWZzJwor KwkgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1HJHthbGxvd191bmRlZmlu ZWRfZmxhZ30gIC1oJHNvbmFtZSAtbyAkbGliICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVw bGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncycKKysJICAgIF9MVF9UQUdWQVIo YXJjaGl2ZV9leHBzeW1fY21kcywgJDEpPSdlY2hvICJ7IGdsb2JhbDoiID4gJGxpYi5leHB+Y2F0 ICRleHBvcnRfc3ltYm9scyB8ICRTRUQgLWUgInMvXCguKlwpL1wxOy8iID4+ICRsaWIuZXhwfmVj aG8gImxvY2FsOiAqOyB9OyIgPj4gJGxpYi5leHB+CisrCSAgICAgICRDQyAtRyR7YWxsb3dfdW5k ZWZpbmVkX2ZsYWd9ICR7d2x9LU0gJHt3bH0kbGliLmV4cCAtaCRzb25hbWUgLW8gJGxpYiAkcHJl ZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJf ZmxhZ3N+JFJNICRsaWIuZXhwJworKworKwkgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJf ZmxhZ19zcGVjLCAkMSk9Jy1SJGxpYmRpcicKKysJICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfc2hs aWJwYXRoX3ZhciwgJDEpPW5vCisrCSAgICBjYXNlICRob3N0X29zIGluCisrCSAgICAgIHNvbGFy aXMyLltbMC01XV0gfCBzb2xhcmlzMi5bWzAtNV1dLiopIDs7CisrCSAgICAgICopCisrCQkjIFRo ZSBjb21waWxlciBkcml2ZXIgd2lsbCBjb21iaW5lIGFuZCByZW9yZGVyIGxpbmtlciBvcHRpb25z LAorKwkJIyBidXQgdW5kZXJzdGFuZHMgYC16IGxpbmtlcl9mbGFnJy4KKysJICAgICAgICAjIFN1 cHBvcnRlZCBzaW5jZSBTb2xhcmlzIDIuNiAobWF5YmUgMi41LjE/KQorKwkJX0xUX1RBR1ZBUih3 aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYywgJDEpPScteiBhbGxleHRyYWN0JGNvbnZlbmllbmNlIC16 IGRlZmF1bHRleHRyYWN0JworKwkgICAgICAgIDs7CisrCSAgICBlc2FjCisrCSAgICBfTFRfVEFH VkFSKGxpbmtfYWxsX2RlcGxpYnMsICQxKT15ZXMKKysKKysJICAgIG91dHB1dF92ZXJib3NlX2xp bmtfY21kPSdlY2hvJworKworKwkgICAgIyBBcmNoaXZlcyBjb250YWluaW5nIEMrKyBvYmplY3Qg ZmlsZXMgbXVzdCBiZSBjcmVhdGVkIHVzaW5nCisrCSAgICAjICJDQyAteGFyIiwgd2hlcmUgIkND IiBpcyB0aGUgU3VuIEMrKyBjb21waWxlci4gIFRoaXMgaXMKKysJICAgICMgbmVjZXNzYXJ5IHRv IG1ha2Ugc3VyZSBpbnN0YW50aWF0ZWQgdGVtcGxhdGVzIGFyZSBpbmNsdWRlZAorKwkgICAgIyBp biB0aGUgYXJjaGl2ZS4KKysJICAgIF9MVF9UQUdWQVIob2xkX2FyY2hpdmVfY21kcywgJDEpPSck Q0MgLXhhciAtbyAkb2xkbGliICRvbGRvYmpzJworKwkgICAgOzsKKysgICAgICAgICAgZ2N4KikK KysJICAgICMgR3JlZW4gSGlsbHMgQysrIENvbXBpbGVyCisrCSAgICBfTFRfVEFHVkFSKGFyY2hp dmVfY21kcywgJDEpPSckQ0MgLXNoYXJlZCAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxp YnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0taCAkd2wkc29uYW1lIC1v ICRsaWInCisrCisrCSAgICAjIFRoZSBDKysgY29tcGlsZXIgbXVzdCBiZSB1c2VkIHRvIGNyZWF0 ZSB0aGUgYXJjaGl2ZS4KKysJICAgIF9MVF9UQUdWQVIob2xkX2FyY2hpdmVfY21kcywgJDEpPSck Q0MgJExERkxBR1MgLWFyY2hpdmUgLW8gJG9sZGxpYiAkb2xkb2JqcycKKysJICAgIDs7CisrICAg ICAgICAgICopCisrCSAgICAjIEdOVSBDKysgY29tcGlsZXIgd2l0aCBTb2xhcmlzIGxpbmtlcgor KwkgICAgaWYgdGVzdCAiJEdYWCIgPSB5ZXMgJiYgdGVzdCAiJHdpdGhfZ251X2xkIiA9IG5vOyB0 aGVuCisrCSAgICAgIF9MVF9UQUdWQVIobm9fdW5kZWZpbmVkX2ZsYWcsICQxKT0nICR7d2x9LXog JHt3bH1kZWZzJworKwkgICAgICBpZiAkQ0MgLS12ZXJzaW9uIHwgJEdSRVAgLXYgJ14yXC43JyA+ IC9kZXYvbnVsbDsgdGhlbgorKwkgICAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9 JyRDQyAtc2hhcmVkIC1ub3N0ZGxpYiAkTERGTEFHUyAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMg JGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0taCAkd2wkc29u YW1lIC1vICRsaWInCisrCSAgICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAk MSk9J2VjaG8gInsgZ2xvYmFsOiIgPiAkbGliLmV4cH5jYXQgJGV4cG9ydF9zeW1ib2xzIHwgJFNF RCAtZSAicy9cKC4qXCkvXDE7LyIgPj4gJGxpYi5leHB+ZWNobyAibG9jYWw6ICo7IH07IiA+PiAk bGliLmV4cH4KKysJCSAgJENDIC1zaGFyZWQgLW5vc3RkbGliICR7d2x9LU0gJHdsJGxpYi5leHAg LW8gJGxpYiAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0 cyAkY29tcGlsZXJfZmxhZ3N+JFJNICRsaWIuZXhwJworKworKwkgICAgICAgICMgQ29tbWFuZHMg dG8gbWFrZSBjb21waWxlciBwcm9kdWNlIHZlcmJvc2Ugb3V0cHV0IHRoYXQgbGlzdHMKKysJICAg ICAgICAjIHdoYXQgImhpZGRlbiIgbGlicmFyaWVzLCBvYmplY3QgZmlsZXMgYW5kIGZsYWdzIGFy ZSB1c2VkIHdoZW4KKysJICAgICAgICAjIGxpbmtpbmcgYSBzaGFyZWQgbGlicmFyeS4KKysJICAg ICAgICBvdXRwdXRfdmVyYm9zZV9saW5rX2NtZD0nJENDIC1zaGFyZWQgJENGTEFHUyAtdiBjb25m dGVzdC4kb2JqZXh0IDI+JjEgfCAkR1JFUCAiXC1MIicKKysJICAgICAgZWxzZQorKwkgICAgICAg ICMgZysrIDIuNyBhcHBlYXJzIHRvIHJlcXVpcmUgYC1HJyBOT1QgYC1zaGFyZWQnIG9uIHRoaXMK KysJICAgICAgICAjIHBsYXRmb3JtLgorKwkgICAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRz LCAkMSk9JyRDQyAtRyAtbm9zdGRsaWIgJExERkxBR1MgJHByZWRlcF9vYmplY3RzICRsaWJvYmpz ICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LWggJHdsJHNv bmFtZSAtbyAkbGliJworKwkgICAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywg JDEpPSdlY2hvICJ7IGdsb2JhbDoiID4gJGxpYi5leHB+Y2F0ICRleHBvcnRfc3ltYm9scyB8ICRT RUQgLWUgInMvXCguKlwpL1wxOy8iID4+ICRsaWIuZXhwfmVjaG8gImxvY2FsOiAqOyB9OyIgPj4g JGxpYi5leHB+CisrCQkgICRDQyAtRyAtbm9zdGRsaWIgJHt3bH0tTSAkd2wkbGliLmV4cCAtbyAk bGliICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRj b21waWxlcl9mbGFnc34kUk0gJGxpYi5leHAnCisrCisrCSAgICAgICAgIyBDb21tYW5kcyB0byBt YWtlIGNvbXBpbGVyIHByb2R1Y2UgdmVyYm9zZSBvdXRwdXQgdGhhdCBsaXN0cworKwkgICAgICAg ICMgd2hhdCAiaGlkZGVuIiBsaWJyYXJpZXMsIG9iamVjdCBmaWxlcyBhbmQgZmxhZ3MgYXJlIHVz ZWQgd2hlbgorKwkgICAgICAgICMgbGlua2luZyBhIHNoYXJlZCBsaWJyYXJ5LgorKwkgICAgICAg IG91dHB1dF92ZXJib3NlX2xpbmtfY21kPSckQ0MgLUcgJENGTEFHUyAtdiBjb25mdGVzdC4kb2Jq ZXh0IDI+JjEgfCAkR1JFUCAiXC1MIicKKysJICAgICAgZmkKKysKKysJICAgICAgX0xUX1RBR1ZB UihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LVIgJHdsJGxpYmRpcicKKysJ ICAgICAgY2FzZSAkaG9zdF9vcyBpbgorKwkJc29sYXJpczIuW1swLTVdXSB8IHNvbGFyaXMyLltb MC01XV0uKikgOzsKKysJCSopCisrCQkgIF9MVF9UQUdWQVIod2hvbGVfYXJjaGl2ZV9mbGFnX3Nw ZWMsICQxKT0nJHt3bH0teiAke3dsfWFsbGV4dHJhY3QkY29udmVuaWVuY2UgJHt3bH0teiAke3ds fWRlZmF1bHRleHRyYWN0JworKwkJICA7OworKwkgICAgICBlc2FjCisrCSAgICBmaQorKwkgICAg OzsKKysgICAgICAgIGVzYWMKKysgICAgICAgIDs7CisrCisrICAgIHN5c3Y0KnV3MiogfCBzeXN2 NU9wZW5VTklYKiB8IHN5c3Y1VW5peFdhcmU3LltbMDFdXS5bWzEwXV0qIHwgdW5peHdhcmU3KiB8 IHNjbzMuMnY1LjAuW1swMjRdXSopCisrICAgICAgX0xUX1RBR1ZBUihub191bmRlZmluZWRfZmxh ZywgJDEpPScke3dsfS16LHRleHQnCisrICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHNfbmVl ZF9sYywgJDEpPW5vCisrICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9zaGxpYnBhdGhfdmFyLCAk MSk9bm8KKysgICAgICBydW5wYXRoX3Zhcj0nTERfUlVOX1BBVEgnCisrCisrICAgICAgY2FzZSAk Y2NfYmFzZW5hbWUgaW4KKysgICAgICAgIENDKikKKysJICBfTFRfVEFHVkFSKGFyY2hpdmVfY21k cywgJDEpPSckQ0MgLUcgJHt3bH0taCwkc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMg JGNvbXBpbGVyX2ZsYWdzJworKwkgIF9MVF9UQUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEp PSckQ0MgLUcgJHt3bH0tQmV4cG9ydDokZXhwb3J0X3N5bWJvbHMgJHt3bH0taCwkc29uYW1lIC1v ICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJworKwkgIDs7CisrCSopCisr CSAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgJHt3bH0taCwkc29u YW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJworKwkgIF9MVF9U QUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEpPSckQ0MgLXNoYXJlZCAke3dsfS1CZXhwb3J0 OiRleHBvcnRfc3ltYm9scyAke3dsfS1oLCRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGli cyAkY29tcGlsZXJfZmxhZ3MnCisrCSAgOzsKKysgICAgICBlc2FjCisrICAgICAgOzsKKysKKysg ICAgICBzeXN2NSogfCBzY28zLjJ2NSogfCBzY281djYqKQorKwkjIE5vdGU6IFdlIGNhbiBOT1Qg dXNlIC16IGRlZnMgYXMgd2UgbWlnaHQgZGVzaXJlLCBiZWNhdXNlIHdlIGRvIG5vdAorKwkjIGxp bmsgd2l0aCAtbGMsIGFuZCB0aGF0IHdvdWxkIGNhdXNlIGFueSBzeW1ib2xzIHVzZWQgZnJvbSBs aWJjIHRvCisrCSMgYWx3YXlzIGJlIHVucmVzb2x2ZWQsIHdoaWNoIG1lYW5zIGp1c3QgYWJvdXQg bm8gbGlicmFyeSB3b3VsZAorKwkjIGV2ZXIgbGluayBjb3JyZWN0bHkuICBJZiB3ZSdyZSBub3Qg dXNpbmcgR05VIGxkIHdlIHVzZSAteiB0ZXh0CisrCSMgdGhvdWdoLCB3aGljaCBkb2VzIGNhdGNo IHNvbWUgYmFkIHN5bWJvbHMgYnV0IGlzbid0IGFzIGhlYXZ5LWhhbmRlZAorKwkjIGFzIC16IGRl ZnMuCisrCV9MVF9UQUdWQVIobm9fdW5kZWZpbmVkX2ZsYWcsICQxKT0nJHt3bH0teix0ZXh0Jwor KwlfTFRfVEFHVkFSKGFsbG93X3VuZGVmaW5lZF9mbGFnLCAkMSk9JyR7d2x9LXosbm9kZWZzJwor KwlfTFRfVEFHVkFSKGFyY2hpdmVfY21kc19uZWVkX2xjLCAkMSk9bm8KKysJX0xUX1RBR1ZBUiho YXJkY29kZV9zaGxpYnBhdGhfdmFyLCAkMSk9bm8KKysJX0xUX1RBR1ZBUihoYXJkY29kZV9saWJk aXJfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LVIsJGxpYmRpcicKKysJX0xUX1RBR1ZBUihoYXJkY29k ZV9saWJkaXJfc2VwYXJhdG9yLCAkMSk9JzonCisrCV9MVF9UQUdWQVIobGlua19hbGxfZGVwbGli cywgJDEpPXllcworKwlfTFRfVEFHVkFSKGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlYywgJDEpPSck e3dsfS1CZXhwb3J0JworKwlydW5wYXRoX3Zhcj0nTERfUlVOX1BBVEgnCisrCisrCWNhc2UgJGNj X2Jhc2VuYW1lIGluCisrICAgICAgICAgIENDKikKKysJICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9j bWRzLCAkMSk9JyRDQyAtRyAke3dsfS1oLCRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGli cyAkY29tcGlsZXJfZmxhZ3MnCisrCSAgICBfTFRfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMs ICQxKT0nJENDIC1HICR7d2x9LUJleHBvcnQ6JGV4cG9ydF9zeW1ib2xzICR7d2x9LWgsJHNvbmFt ZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKKysJICAgIDs7Cisr CSAgKikKKysJICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkICR7 d2x9LWgsJHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycK KysJICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEpPSckQ0MgLXNoYXJlZCAk e3dsfS1CZXhwb3J0OiRleHBvcnRfc3ltYm9scyAke3dsfS1oLCRzb25hbWUgLW8gJGxpYiAkbGli b2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCisrCSAgICA7OworKwllc2FjCisrICAgICAg OzsKKysKKysgICAgICB0YW5kZW0qKQorKyAgICAgICAgY2FzZSAkY2NfYmFzZW5hbWUgaW4KKysg ICAgICAgICAgTkNDKikKKysJICAgICMgTm9uU3RvcC1VWCBOQ0MgMy4yMAorKwkgICAgIyBGSVhN RTogaW5zZXJ0IHByb3BlciBDKysgbGlicmFyeSBzdXBwb3J0CisrCSAgICBfTFRfVEFHVkFSKGxk X3NobGlicywgJDEpPW5vCisrCSAgICA7OworKyAgICAgICAgICAqKQorKwkgICAgIyBGSVhNRTog aW5zZXJ0IHByb3BlciBDKysgbGlicmFyeSBzdXBwb3J0CisrCSAgICBfTFRfVEFHVkFSKGxkX3No bGlicywgJDEpPW5vCisrCSAgICA7OworKyAgICAgICAgZXNhYworKyAgICAgICAgOzsKKysKKysg ICAgICB2eHdvcmtzKikKKysgICAgICAgICMgRklYTUU6IGluc2VydCBwcm9wZXIgQysrIGxpYnJh cnkgc3VwcG9ydAorKyAgICAgICAgX0xUX1RBR1ZBUihsZF9zaGxpYnMsICQxKT1ubworKyAgICAg ICAgOzsKKysKKysgICAgICAqKQorKyAgICAgICAgIyBGSVhNRTogaW5zZXJ0IHByb3BlciBDKysg bGlicmFyeSBzdXBwb3J0CisrICAgICAgICBfTFRfVEFHVkFSKGxkX3NobGlicywgJDEpPW5vCisr ICAgICAgICA7OworKyAgICBlc2FjCisrCisrICAgIEFDX01TR19SRVNVTFQoWyRfTFRfVEFHVkFS KGxkX3NobGlicywgJDEpXSkKKysgICAgdGVzdCAiJF9MVF9UQUdWQVIobGRfc2hsaWJzLCAkMSki ID0gbm8gJiYgY2FuX2J1aWxkX3NoYXJlZD1ubworKworKyAgICBfTFRfVEFHVkFSKEdDQywgJDEp PSIkR1hYIgorKyAgICBfTFRfVEFHVkFSKExELCAkMSk9IiRMRCIKKysKKysgICAgIyMgQ0FWRUFU IEVNUFRPUjoKKysgICAgIyMgVGhlcmUgaXMgbm8gZW5jYXBzdWxhdGlvbiB3aXRoaW4gdGhlIGZv bGxvd2luZyBtYWNyb3MsIGRvIG5vdCBjaGFuZ2UKKysgICAgIyMgdGhlIHJ1bm5pbmcgb3JkZXIg b3Igb3RoZXJ3aXNlIG1vdmUgdGhlbSBhcm91bmQgdW5sZXNzIHlvdSBrbm93IGV4YWN0bHkKKysg ICAgIyMgd2hhdCB5b3UgYXJlIGRvaW5nLi4uCisrICAgIF9MVF9TWVNfSElEREVOX0xJQkRFUFMo JDEpCisrICAgIF9MVF9DT01QSUxFUl9QSUMoJDEpCisrICAgIF9MVF9DT01QSUxFUl9DX08oJDEp CisrICAgIF9MVF9DT01QSUxFUl9GSUxFX0xPQ0tTKCQxKQorKyAgICBfTFRfTElOS0VSX1NITElC UygkMSkKKysgICAgX0xUX1NZU19EWU5BTUlDX0xJTktFUigkMSkKKysgICAgX0xUX0xJTktFUl9I QVJEQ09ERV9MSUJQQVRIKCQxKQorKworKyAgICBfTFRfQ09ORklHKCQxKQorKyAgZmkgIyB0ZXN0 IC1uICIkY29tcGlsZXIiCisrCisrICBDQz0kbHRfc2F2ZV9DQworKyAgTERDWFg9JExECisrICBM RD0kbHRfc2F2ZV9MRAorKyAgR0NDPSRsdF9zYXZlX0dDQworKyAgd2l0aF9nbnVfbGQ9JGx0X3Nh dmVfd2l0aF9nbnVfbGQKKysgIGx0X2N2X3BhdGhfTERDWFg9JGx0X2N2X3BhdGhfTEQKKysgIGx0 X2N2X3BhdGhfTEQ9JGx0X3NhdmVfcGF0aF9MRAorKyAgbHRfY3ZfcHJvZ19nbnVfbGRjeHg9JGx0 X2N2X3Byb2dfZ251X2xkCisrICBsdF9jdl9wcm9nX2dudV9sZD0kbHRfc2F2ZV93aXRoX2dudV9s ZAorK2ZpICMgdGVzdCAiJF9sdF9jYXVnaHRfQ1hYX2Vycm9yIiAhPSB5ZXMKKysKKytBQ19MQU5H X1BPUAorK10pIyBfTFRfTEFOR19DWFhfQ09ORklHCisrCisrCisrIyBfTFRfU1lTX0hJRERFTl9M SUJERVBTKFtUQUdOQU1FXSkKKysjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor KyMgRmlndXJlIG91dCAiaGlkZGVuIiBsaWJyYXJ5IGRlcGVuZGVuY2llcyBmcm9tIHZlcmJvc2UK KysjIGNvbXBpbGVyIG91dHB1dCB3aGVuIGxpbmtpbmcgYSBzaGFyZWQgbGlicmFyeS4KKysjIFBh cnNlIHRoZSBjb21waWxlciBvdXRwdXQgYW5kIGV4dHJhY3QgdGhlIG5lY2Vzc2FyeQorKyMgb2Jq ZWN0cywgbGlicmFyaWVzIGFuZCBsaWJyYXJ5IGZsYWdzLgorK200X2RlZnVuKFtfTFRfU1lTX0hJ RERFTl9MSUJERVBTXSwKKytbbTRfcmVxdWlyZShbX0xUX0ZJTEVVVElMU19ERUZBVUxUU10pZG5s CisrIyBEZXBlbmRlbmNpZXMgdG8gcGxhY2UgYmVmb3JlIGFuZCBhZnRlciB0aGUgb2JqZWN0IGJl aW5nIGxpbmtlZDoKKytfTFRfVEFHVkFSKHByZWRlcF9vYmplY3RzLCAkMSk9CisrX0xUX1RBR1ZB Uihwb3N0ZGVwX29iamVjdHMsICQxKT0KKytfTFRfVEFHVkFSKHByZWRlcHMsICQxKT0KKytfTFRf VEFHVkFSKHBvc3RkZXBzLCAkMSk9CisrX0xUX1RBR1ZBUihjb21waWxlcl9saWJfc2VhcmNoX3Bh dGgsICQxKT0KKysKKytkbmwgd2UgY2FuJ3QgdXNlIHRoZSBsdF9zaW1wbGVfY29tcGlsZV90ZXN0 X2NvZGUgaGVyZSwKKytkbmwgYmVjYXVzZSBpdCBjb250YWlucyBjb2RlIGludGVuZGVkIGZvciBh biBleGVjdXRhYmxlLAorK2RubCBub3QgYSBsaWJyYXJ5LiAgSXQncyBwb3NzaWJsZSB3ZSBzaG91 bGQgbGV0IGVhY2gKKytkbmwgdGFnIGRlZmluZSBhIG5ldyBsdF8/Pz8/X2xpbmtfdGVzdF9jb2Rl IHZhcmlhYmxlLAorK2RubCBidXQgaXQncyBvbmx5IHVzZWQgaGVyZS4uLgorK200X2lmKFskMV0s IFtdLCBbY2F0ID4gY29uZnRlc3QuJGFjX2V4dCA8PF9MVF9FT0YKKytpbnQgYTsKKyt2b2lkIGZv byAodm9pZCkgeyBhID0gMDsgfQorK19MVF9FT0YKKytdLCBbJDFdLCBbQ1hYXSwgW2NhdCA+IGNv bmZ0ZXN0LiRhY19leHQgPDxfTFRfRU9GCisrY2xhc3MgRm9vCisreworK3B1YmxpYzoKKysgIEZv byAodm9pZCkgeyBhID0gMDsgfQorK3ByaXZhdGU6CisrICBpbnQgYTsKKyt9OworK19MVF9FT0YK KytdLCBbJDFdLCBbRjc3XSwgW2NhdCA+IGNvbmZ0ZXN0LiRhY19leHQgPDxfTFRfRU9GCisrICAg ICAgc3Vicm91dGluZSBmb28KKysgICAgICBpbXBsaWNpdCBub25lCisrICAgICAgaW50ZWdlcio0 IGEKKysgICAgICBhPTAKKysgICAgICByZXR1cm4KKysgICAgICBlbmQKKytfTFRfRU9GCisrXSwg WyQxXSwgW0ZDXSwgW2NhdCA+IGNvbmZ0ZXN0LiRhY19leHQgPDxfTFRfRU9GCisrICAgICAgc3Vi cm91dGluZSBmb28KKysgICAgICBpbXBsaWNpdCBub25lCisrICAgICAgaW50ZWdlciBhCisrICAg ICAgYT0wCisrICAgICAgcmV0dXJuCisrICAgICAgZW5kCisrX0xUX0VPRgorK10sIFskMV0sIFtH Q0pdLCBbY2F0ID4gY29uZnRlc3QuJGFjX2V4dCA8PF9MVF9FT0YKKytwdWJsaWMgY2xhc3MgZm9v IHsKKysgIHByaXZhdGUgaW50IGE7CisrICBwdWJsaWMgdm9pZCBiYXIgKHZvaWQpIHsKKysgICAg YSA9IDA7CisrICB9CisrfTsKKytfTFRfRU9GCisrXSkKKytkbmwgUGFyc2UgdGhlIGNvbXBpbGVy IG91dHB1dCBhbmQgZXh0cmFjdCB0aGUgbmVjZXNzYXJ5CisrZG5sIG9iamVjdHMsIGxpYnJhcmll cyBhbmQgbGlicmFyeSBmbGFncy4KKytpZiBBQ19UUllfRVZBTChhY19jb21waWxlKTsgdGhlbgor KyAgIyBQYXJzZSB0aGUgY29tcGlsZXIgb3V0cHV0IGFuZCBleHRyYWN0IHRoZSBuZWNlc3NhcnkK KysgICMgb2JqZWN0cywgbGlicmFyaWVzIGFuZCBsaWJyYXJ5IGZsYWdzLgorKworKyAgIyBTZW50 aW5lbCB1c2VkIHRvIGtlZXAgdHJhY2sgb2Ygd2hldGhlciBvciBub3Qgd2UgYXJlIGJlZm9yZQor KyAgIyB0aGUgY29uZnRlc3Qgb2JqZWN0IGZpbGUuCisrICBwcmVfdGVzdF9vYmplY3RfZGVwc19k b25lPW5vCisrCisrICBmb3IgcCBpbiBgZXZhbCAiJG91dHB1dF92ZXJib3NlX2xpbmtfY21kImA7 IGRvCisrICAgIGNhc2UgJHAgaW4KKysKKysgICAgLUwqIHwgLVIqIHwgLWwqKQorKyAgICAgICAj IFNvbWUgY29tcGlsZXJzIHBsYWNlIHNwYWNlIGJldHdlZW4gIi17TCxSfSIgYW5kIHRoZSBwYXRo LgorKyAgICAgICAjIFJlbW92ZSB0aGUgc3BhY2UuCisrICAgICAgIGlmIHRlc3QgJHAgPSAiLUwi IHx8CisrICAgICAgICAgIHRlc3QgJHAgPSAiLVIiOyB0aGVuCisrCSBwcmV2PSRwCisrCSBjb250 aW51ZQorKyAgICAgICBlbHNlCisrCSBwcmV2PQorKyAgICAgICBmaQorKworKyAgICAgICBpZiB0 ZXN0ICIkcHJlX3Rlc3Rfb2JqZWN0X2RlcHNfZG9uZSIgPSBubzsgdGhlbgorKwkgY2FzZSAkcCBp bgorKwkgLUwqIHwgLVIqKQorKwkgICAjIEludGVybmFsIGNvbXBpbGVyIGxpYnJhcnkgcGF0aHMg c2hvdWxkIGNvbWUgYWZ0ZXIgdGhvc2UKKysJICAgIyBwcm92aWRlZCB0aGUgdXNlci4gIFRoZSBw b3N0ZGVwcyBhbHJlYWR5IGNvbWUgYWZ0ZXIgdGhlCisrCSAgICMgdXNlciBzdXBwbGllZCBsaWJz IHNvIHRoZXJlIGlzIG5vIG5lZWQgdG8gcHJvY2VzcyB0aGVtLgorKwkgICBpZiB0ZXN0IC16ICIk X0xUX1RBR1ZBUihjb21waWxlcl9saWJfc2VhcmNoX3BhdGgsICQxKSI7IHRoZW4KKysJICAgICBf TFRfVEFHVkFSKGNvbXBpbGVyX2xpYl9zZWFyY2hfcGF0aCwgJDEpPSIke3ByZXZ9JHtwfSIKKysJ ICAgZWxzZQorKwkgICAgIF9MVF9UQUdWQVIoY29tcGlsZXJfbGliX3NlYXJjaF9wYXRoLCAkMSk9 IiR7X0xUX1RBR1ZBUihjb21waWxlcl9saWJfc2VhcmNoX3BhdGgsICQxKX0gJHtwcmV2fSR7cH0i CisrCSAgIGZpCisrCSAgIDs7CisrCSAjIFRoZSAiLWwiIGNhc2Ugd291bGQgbmV2ZXIgY29tZSBi ZWZvcmUgdGhlIG9iamVjdCBiZWluZworKwkgIyBsaW5rZWQsIHNvIGRvbid0IGJvdGhlciBoYW5k bGluZyB0aGlzIGNhc2UuCisrCSBlc2FjCisrICAgICAgIGVsc2UKKysJIGlmIHRlc3QgLXogIiRf TFRfVEFHVkFSKHBvc3RkZXBzLCAkMSkiOyB0aGVuCisrCSAgIF9MVF9UQUdWQVIocG9zdGRlcHMs ICQxKT0iJHtwcmV2fSR7cH0iCisrCSBlbHNlCisrCSAgIF9MVF9UQUdWQVIocG9zdGRlcHMsICQx KT0iJHtfTFRfVEFHVkFSKHBvc3RkZXBzLCAkMSl9ICR7cHJldn0ke3B9IgorKwkgZmkKKysgICAg ICAgZmkKKysgICAgICAgOzsKKysKKysgICAgKi4kb2JqZXh0KQorKyAgICAgICAjIFRoaXMgYXNz dW1lcyB0aGF0IHRoZSB0ZXN0IG9iamVjdCBmaWxlIG9ubHkgc2hvd3MgdXAKKysgICAgICAgIyBv bmNlIGluIHRoZSBjb21waWxlciBvdXRwdXQuCisrICAgICAgIGlmIHRlc3QgIiRwIiA9ICJjb25m dGVzdC4kb2JqZXh0IjsgdGhlbgorKwkgcHJlX3Rlc3Rfb2JqZWN0X2RlcHNfZG9uZT15ZXMKKysJ IGNvbnRpbnVlCisrICAgICAgIGZpCisrCisrICAgICAgIGlmIHRlc3QgIiRwcmVfdGVzdF9vYmpl Y3RfZGVwc19kb25lIiA9IG5vOyB0aGVuCisrCSBpZiB0ZXN0IC16ICIkX0xUX1RBR1ZBUihwcmVk ZXBfb2JqZWN0cywgJDEpIjsgdGhlbgorKwkgICBfTFRfVEFHVkFSKHByZWRlcF9vYmplY3RzLCAk MSk9IiRwIgorKwkgZWxzZQorKwkgICBfTFRfVEFHVkFSKHByZWRlcF9vYmplY3RzLCAkMSk9IiRf TFRfVEFHVkFSKHByZWRlcF9vYmplY3RzLCAkMSkgJHAiCisrCSBmaQorKyAgICAgICBlbHNlCisr CSBpZiB0ZXN0IC16ICIkX0xUX1RBR1ZBUihwb3N0ZGVwX29iamVjdHMsICQxKSI7IHRoZW4KKysJ ICAgX0xUX1RBR1ZBUihwb3N0ZGVwX29iamVjdHMsICQxKT0iJHAiCisrCSBlbHNlCisrCSAgIF9M VF9UQUdWQVIocG9zdGRlcF9vYmplY3RzLCAkMSk9IiRfTFRfVEFHVkFSKHBvc3RkZXBfb2JqZWN0 cywgJDEpICRwIgorKwkgZmkKKysgICAgICAgZmkKKysgICAgICAgOzsKKysKKysgICAgKikgOzsg IyBJZ25vcmUgdGhlIHJlc3QuCisrCisrICAgIGVzYWMKKysgIGRvbmUKKysKKysgICMgQ2xlYW4g dXAuCisrICBybSAtZiBhLm91dCBhLmV4ZQorK2Vsc2UKKysgIGVjaG8gImxpYnRvb2wubTQ6IGVy cm9yOiBwcm9ibGVtIGNvbXBpbGluZyAkMSB0ZXN0IHByb2dyYW0iCisrZmkKKysKKyskUk0gLWYg Y29uZmVzdC4kb2JqZXh0CisrCisrIyBQT1JUTUU6IG92ZXJyaWRlIGFib3ZlIHRlc3Qgb24gc3lz dGVtcyB3aGVyZSBpdCBpcyBicm9rZW4KKyttNF9pZihbJDFdLCBbQ1hYXSwKKytbY2FzZSAkaG9z dF9vcyBpbgorK2ludGVyaXhbWzMtOV1dKikKKysgICMgSW50ZXJpeCAzLjUgaW5zdGFsbHMgY29t cGxldGVseSBob3NlZCAubGEgZmlsZXMgZm9yIEMrKywgc28gcmF0aGVyIHRoYW4KKysgICMgaGFj ayBhbGwgYXJvdW5kIGl0LCBsZXQncyBqdXN0IHRydXN0ICJnKysiIHRvIERUUlQuCisrICBfTFRf VEFHVkFSKHByZWRlcF9vYmplY3RzLCQxKT0KKysgIF9MVF9UQUdWQVIocG9zdGRlcF9vYmplY3Rz LCQxKT0KKysgIF9MVF9UQUdWQVIocG9zdGRlcHMsJDEpPQorKyAgOzsKKysKKytsaW51eCopCisr ICBjYXNlIGAkQ0MgLVYgMj4mMSB8IHNlZCA1cWAgaW4KKysgICpTdW5cIEMqKQorKyAgICAjIFN1 biBDKysgNS45CisrCisrICAgICMgVGhlIG1vcmUgc3RhbmRhcmRzLWNvbmZvcm1pbmcgc3RscG9y dDQgbGlicmFyeSBpcworKyAgICAjIGluY29tcGF0aWJsZSB3aXRoIHRoZSBDc3RkIGxpYnJhcnku IEF2b2lkIHNwZWNpZnlpbmcKKysgICAgIyBpdCBpZiBpdCdzIGluIENYWEZMQUdTLiBJZ25vcmUg bGliQ3J1biBhcworKyAgICAjIC1saWJyYXJ5PXN0bHBvcnQ0IGRlcGVuZHMgb24gaXQuCisrICAg IGNhc2UgIiAkQ1hYICRDWFhGTEFHUyAiIGluCisrICAgICoiIC1saWJyYXJ5PXN0bHBvcnQ0ICIq KQorKyAgICAgIHNvbGFyaXNfdXNlX3N0bHBvcnQ0PXllcworKyAgICAgIDs7CisrICAgIGVzYWMK KysKKysgICAgaWYgdGVzdCAiJHNvbGFyaXNfdXNlX3N0bHBvcnQ0IiAhPSB5ZXM7IHRoZW4KKysg ICAgICBfTFRfVEFHVkFSKHBvc3RkZXBzLCQxKT0nLWxpYnJhcnk9Q3N0ZCAtbGlicmFyeT1DcnVu JworKyAgICBmaQorKyAgICA7OworKyAgZXNhYworKyAgOzsKKysKKytzb2xhcmlzKikKKysgIGNh c2UgJGNjX2Jhc2VuYW1lIGluCisrICBDQyopCisrICAgICMgVGhlIG1vcmUgc3RhbmRhcmRzLWNv bmZvcm1pbmcgc3RscG9ydDQgbGlicmFyeSBpcworKyAgICAjIGluY29tcGF0aWJsZSB3aXRoIHRo ZSBDc3RkIGxpYnJhcnkuIEF2b2lkIHNwZWNpZnlpbmcKKysgICAgIyBpdCBpZiBpdCdzIGluIENY WEZMQUdTLiBJZ25vcmUgbGliQ3J1biBhcworKyAgICAjIC1saWJyYXJ5PXN0bHBvcnQ0IGRlcGVu ZHMgb24gaXQuCisrICAgIGNhc2UgIiAkQ1hYICRDWFhGTEFHUyAiIGluCisrICAgICoiIC1saWJy YXJ5PXN0bHBvcnQ0ICIqKQorKyAgICAgIHNvbGFyaXNfdXNlX3N0bHBvcnQ0PXllcworKyAgICAg IDs7CisrICAgIGVzYWMKKysKKysgICAgIyBBZGRpbmcgdGhpcyByZXF1aXJlcyBhIGtub3duLWdv b2Qgc2V0dXAgb2Ygc2hhcmVkIGxpYnJhcmllcyBmb3IKKysgICAgIyBTdW4gY29tcGlsZXIgdmVy c2lvbnMgYmVmb3JlIDUuNiwgZWxzZSBQSUMgb2JqZWN0cyBmcm9tIGFuIG9sZAorKyAgICAjIGFy Y2hpdmUgd2lsbCBiZSBsaW5rZWQgaW50byB0aGUgb3V0cHV0LCBsZWFkaW5nIHRvIHN1YnRsZSBi dWdzLgorKyAgICBpZiB0ZXN0ICIkc29sYXJpc191c2Vfc3RscG9ydDQiICE9IHllczsgdGhlbgor KyAgICAgIF9MVF9UQUdWQVIocG9zdGRlcHMsJDEpPSctbGlicmFyeT1Dc3RkIC1saWJyYXJ5PUNy dW4nCisrICAgIGZpCisrICAgIDs7CisrICBlc2FjCisrICA7OworK2VzYWMKKytdKQorKworK2Nh c2UgIiAkX0xUX1RBR1ZBUihwb3N0ZGVwcywgJDEpICIgaW4KKysqIiAtbGMgIiopIF9MVF9UQUdW QVIoYXJjaGl2ZV9jbWRzX25lZWRfbGMsICQxKT1ubyA7OworK2VzYWMKKysgX0xUX1RBR1ZBUihj b21waWxlcl9saWJfc2VhcmNoX2RpcnMsICQxKT0KKytpZiB0ZXN0IC1uICIke19MVF9UQUdWQVIo Y29tcGlsZXJfbGliX3NlYXJjaF9wYXRoLCAkMSl9IjsgdGhlbgorKyBfTFRfVEFHVkFSKGNvbXBp bGVyX2xpYl9zZWFyY2hfZGlycywgJDEpPWBlY2hvICIgJHtfTFRfVEFHVkFSKGNvbXBpbGVyX2xp Yl9zZWFyY2hfcGF0aCwgJDEpfSIgfCAke1NFRH0gLWUgJ3MhIC1MISAhZycgLWUgJ3MhXiAhISdg CisrZmkKKytfTFRfVEFHREVDTChbXSwgW2NvbXBpbGVyX2xpYl9zZWFyY2hfZGlyc10sIFsxXSwK KysgICAgW1RoZSBkaXJlY3RvcmllcyBzZWFyY2hlZCBieSB0aGlzIGNvbXBpbGVyIHdoZW4gY3Jl YXRpbmcgYSBzaGFyZWQgbGlicmFyeV0pCisrX0xUX1RBR0RFQ0woW10sIFtwcmVkZXBfb2JqZWN0 c10sIFsxXSwKKysgICAgW0RlcGVuZGVuY2llcyB0byBwbGFjZSBiZWZvcmUgYW5kIGFmdGVyIHRo ZSBvYmplY3RzIGJlaW5nIGxpbmtlZCB0bworKyAgICBjcmVhdGUgYSBzaGFyZWQgbGlicmFyeV0p CisrX0xUX1RBR0RFQ0woW10sIFtwb3N0ZGVwX29iamVjdHNdLCBbMV0pCisrX0xUX1RBR0RFQ0wo W10sIFtwcmVkZXBzXSwgWzFdKQorK19MVF9UQUdERUNMKFtdLCBbcG9zdGRlcHNdLCBbMV0pCisr X0xUX1RBR0RFQ0woW10sIFtjb21waWxlcl9saWJfc2VhcmNoX3BhdGhdLCBbMV0sCisrICAgIFtU aGUgbGlicmFyeSBzZWFyY2ggcGF0aCB1c2VkIGludGVybmFsbHkgYnkgdGhlIGNvbXBpbGVyIHdo ZW4gbGlua2luZworKyAgICBhIHNoYXJlZCBsaWJyYXJ5XSkKKytdKSMgX0xUX1NZU19ISURERU5f TElCREVQUworKworKworKyMgX0xUX1BST0dfRjc3CisrIyAtLS0tLS0tLS0tLS0KKysjIFNpbmNl IEFDX1BST0dfRjc3IGlzIGJyb2tlbiwgaW4gdGhhdCBpdCByZXR1cm5zIHRoZSBlbXB0eSBzdHJp bmcKKysjIGlmIHRoZXJlIGlzIG5vIGZvcnRyYW4gY29tcGlsZXIsIHdlIGhhdmUgb3VyIG93biB2 ZXJzaW9uIGhlcmUuCisrbTRfZGVmdW4oW19MVF9QUk9HX0Y3N10sCisrWworK3B1c2hkZWYoW0FD X01TR19FUlJPUl0sIFtfbHRfZGlzYWJsZV9GNzc9eWVzXSkKKytBQ19QUk9HX0Y3NworK2lmIHRl c3QgLXogIiRGNzciIHx8IHRlc3QgIlgkRjc3IiA9ICJYbm8iOyB0aGVuCisrICBfbHRfZGlzYWJs ZV9GNzc9eWVzCisrZmkKKytwb3BkZWYoW0FDX01TR19FUlJPUl0pCisrXSkjIF9MVF9QUk9HX0Y3 NworKworK2RubCBhY2xvY2FsLTEuNCBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eToKKytkbmwgQUNf REVGVU4oW19MVF9QUk9HX0Y3N10sIFtdKQorKworKworKyMgX0xUX0xBTkdfRjc3X0NPTkZJRyhb VEFHXSkKKysjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrIyBFbnN1cmUgdGhhdCB0aGUg Y29uZmlndXJhdGlvbiB2YXJpYWJsZXMgZm9yIGEgRm9ydHJhbiA3NyBjb21waWxlciBhcmUKKysj IHN1aXRhYmx5IGRlZmluZWQuICBUaGVzZSB2YXJpYWJsZXMgYXJlIHN1YnNlcXVlbnRseSB1c2Vk IGJ5IF9MVF9DT05GSUcKKysjIHRvIHdyaXRlIHRoZSBjb21waWxlciBjb25maWd1cmF0aW9uIHRv IGBsaWJ0b29sJy4KKyttNF9kZWZ1bihbX0xUX0xBTkdfRjc3X0NPTkZJR10sCisrW0FDX1JFUVVJ UkUoW19MVF9QUk9HX0Y3N10pZG5sCisrQUNfTEFOR19QVVNIKEZvcnRyYW4gNzcpCisrCisrX0xU X1RBR1ZBUihhcmNoaXZlX2NtZHNfbmVlZF9sYywgJDEpPW5vCisrX0xUX1RBR1ZBUihhbGxvd191 bmRlZmluZWRfZmxhZywgJDEpPQorK19MVF9UQUdWQVIoYWx3YXlzX2V4cG9ydF9zeW1ib2xzLCAk MSk9bm8KKytfTFRfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0KKytfTFRfVEFHVkFS KGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlYywgJDEpPQorK19MVF9UQUdWQVIoaGFyZGNvZGVfZGly ZWN0LCAkMSk9bm8KKytfTFRfVEFHVkFSKGhhcmRjb2RlX2RpcmVjdF9hYnNvbHV0ZSwgJDEpPW5v CisrX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9CisrX0xUX1RBR1ZB UihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX2xkLCAkMSk9CisrX0xUX1RBR1ZBUihoYXJkY29k ZV9saWJkaXJfc2VwYXJhdG9yLCAkMSk9CisrX0xUX1RBR1ZBUihoYXJkY29kZV9taW51c19MLCAk MSk9bm8KKytfTFRfVEFHVkFSKGhhcmRjb2RlX2F1dG9tYXRpYywgJDEpPW5vCisrX0xUX1RBR1ZB Uihpbmhlcml0X3JwYXRoLCAkMSk9bm8KKytfTFRfVEFHVkFSKG1vZHVsZV9jbWRzLCAkMSk9Cisr X0xUX1RBR1ZBUihtb2R1bGVfZXhwc3ltX2NtZHMsICQxKT0KKytfTFRfVEFHVkFSKGxpbmtfYWxs X2RlcGxpYnMsICQxKT11bmtub3duCisrX0xUX1RBR1ZBUihvbGRfYXJjaGl2ZV9jbWRzLCAkMSk9 JG9sZF9hcmNoaXZlX2NtZHMKKytfTFRfVEFHVkFSKG5vX3VuZGVmaW5lZF9mbGFnLCAkMSk9Cisr X0xUX1RBR1ZBUih3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYywgJDEpPQorK19MVF9UQUdWQVIoZW5h YmxlX3NoYXJlZF93aXRoX3N0YXRpY19ydW50aW1lcywgJDEpPW5vCisrCisrIyBTb3VyY2UgZmls ZSBleHRlbnNpb24gZm9yIGY3NyB0ZXN0IHNvdXJjZXMuCisrYWNfZXh0PWYKKysKKysjIE9iamVj dCBmaWxlIGV4dGVuc2lvbiBmb3IgY29tcGlsZWQgZjc3IHRlc3Qgc291cmNlcy4KKytvYmpleHQ9 bworK19MVF9UQUdWQVIob2JqZXh0LCAkMSk9JG9iamV4dAorKworKyMgTm8gc2Vuc2UgaW4gcnVu bmluZyBhbGwgdGhlc2UgdGVzdHMgaWYgd2UgYWxyZWFkeSBkZXRlcm1pbmVkIHRoYXQKKysjIHRo ZSBGNzcgY29tcGlsZXIgaXNuJ3Qgd29ya2luZy4gIFNvbWUgdmFyaWFibGVzIChsaWtlIGVuYWJs ZV9zaGFyZWQpCisrIyBhcmUgY3VycmVudGx5IGFzc3VtZWQgdG8gYXBwbHkgdG8gYWxsIGNvbXBp bGVycyBvbiB0aGlzIHBsYXRmb3JtLAorKyMgYW5kIHdpbGwgYmUgY29ycnVwdGVkIGJ5IHNldHRp bmcgdGhlbSBiYXNlZCBvbiBhIG5vbi13b3JraW5nIGNvbXBpbGVyLgorK2lmIHRlc3QgIiRfbHRf ZGlzYWJsZV9GNzciICE9IHllczsgdGhlbgorKyAgIyBDb2RlIHRvIGJlIHVzZWQgaW4gc2ltcGxl IGNvbXBpbGUgdGVzdHMKKysgIGx0X3NpbXBsZV9jb21waWxlX3Rlc3RfY29kZT0iXAorKyAgICAg IHN1YnJvdXRpbmUgdAorKyAgICAgIHJldHVybgorKyAgICAgIGVuZAorKyIKKysKKysgICMgQ29k ZSB0byBiZSB1c2VkIGluIHNpbXBsZSBsaW5rIHRlc3RzCisrICBsdF9zaW1wbGVfbGlua190ZXN0 X2NvZGU9IlwKKysgICAgICBwcm9ncmFtIHQKKysgICAgICBlbmQKKysiCisrCisrICAjIGx0bWFp biBvbmx5IHVzZXMgJENDIGZvciB0YWdnZWQgY29uZmlndXJhdGlvbnMgc28gbWFrZSBzdXJlICRD QyBpcyBzZXQuCisrICBfTFRfVEFHX0NPTVBJTEVSCisrCisrICAjIHNhdmUgd2FybmluZ3MvYm9p bGVycGxhdGUgb2Ygc2ltcGxlIHRlc3QgY29kZQorKyAgX0xUX0NPTVBJTEVSX0JPSUxFUlBMQVRF CisrICBfTFRfTElOS0VSX0JPSUxFUlBMQVRFCisrCisrICAjIEFsbG93IENDIHRvIGJlIGEgcHJv Z3JhbSBuYW1lIHdpdGggYXJndW1lbnRzLgorKyAgbHRfc2F2ZV9DQz0iJENDIgorKyAgbHRfc2F2 ZV9HQ0M9JEdDQworKyAgQ0M9JHtGNzctImY3NyJ9CisrICBjb21waWxlcj0kQ0MKKysgIF9MVF9U QUdWQVIoY29tcGlsZXIsICQxKT0kQ0MKKysgIF9MVF9DQ19CQVNFTkFNRShbJGNvbXBpbGVyXSkK KysgIEdDQz0kRzc3CisrICBpZiB0ZXN0IC1uICIkY29tcGlsZXIiOyB0aGVuCisrICAgIEFDX01T R19DSEVDS0lORyhbaWYgbGlidG9vbCBzdXBwb3J0cyBzaGFyZWQgbGlicmFyaWVzXSkKKysgICAg QUNfTVNHX1JFU1VMVChbJGNhbl9idWlsZF9zaGFyZWRdKQorKworKyAgICBBQ19NU0dfQ0hFQ0tJ TkcoW3doZXRoZXIgdG8gYnVpbGQgc2hhcmVkIGxpYnJhcmllc10pCisrICAgIHRlc3QgIiRjYW5f YnVpbGRfc2hhcmVkIiA9ICJubyIgJiYgZW5hYmxlX3NoYXJlZD1ubworKworKyAgICAjIE9uIEFJ WCwgc2hhcmVkIGxpYnJhcmllcyBhbmQgc3RhdGljIGxpYnJhcmllcyB1c2UgdGhlIHNhbWUgbmFt ZXNwYWNlLCBhbmQKKysgICAgIyBhcmUgYWxsIGJ1aWx0IGZyb20gUElDLgorKyAgICBjYXNlICRo b3N0X29zIGluCisrICAgICAgYWl4MyopCisrICAgICAgICB0ZXN0ICIkZW5hYmxlX3NoYXJlZCIg PSB5ZXMgJiYgZW5hYmxlX3N0YXRpYz1ubworKyAgICAgICAgaWYgdGVzdCAtbiAiJFJBTkxJQiI7 IHRoZW4KKysgICAgICAgICAgYXJjaGl2ZV9jbWRzPSIkYXJjaGl2ZV9jbWRzflwkUkFOTElCIFwk bGliIgorKyAgICAgICAgICBwb3N0aW5zdGFsbF9jbWRzPSckUkFOTElCICRsaWInCisrICAgICAg ICBmaQorKyAgICAgICAgOzsKKysgICAgICBhaXhbWzQtOV1dKikKKysJaWYgdGVzdCAiJGhvc3Rf Y3B1IiAhPSBpYTY0ICYmIHRlc3QgIiRhaXhfdXNlX3J1bnRpbWVsaW5raW5nIiA9IG5vIDsgdGhl bgorKwkgIHRlc3QgIiRlbmFibGVfc2hhcmVkIiA9IHllcyAmJiBlbmFibGVfc3RhdGljPW5vCisr CWZpCisrICAgICAgICA7OworKyAgICBlc2FjCisrICAgIEFDX01TR19SRVNVTFQoWyRlbmFibGVf c2hhcmVkXSkKKysKKysgICAgQUNfTVNHX0NIRUNLSU5HKFt3aGV0aGVyIHRvIGJ1aWxkIHN0YXRp YyBsaWJyYXJpZXNdKQorKyAgICAjIE1ha2Ugc3VyZSBlaXRoZXIgZW5hYmxlX3NoYXJlZCBvciBl bmFibGVfc3RhdGljIGlzIHllcy4KKysgICAgdGVzdCAiJGVuYWJsZV9zaGFyZWQiID0geWVzIHx8 IGVuYWJsZV9zdGF0aWM9eWVzCisrICAgIEFDX01TR19SRVNVTFQoWyRlbmFibGVfc3RhdGljXSkK KysKKysgICAgX0xUX1RBR1ZBUihHQ0MsICQxKT0iJEc3NyIKKysgICAgX0xUX1RBR1ZBUihMRCwg JDEpPSIkTEQiCisrCisrICAgICMjIENBVkVBVCBFTVBUT1I6CisrICAgICMjIFRoZXJlIGlzIG5v IGVuY2Fwc3VsYXRpb24gd2l0aGluIHRoZSBmb2xsb3dpbmcgbWFjcm9zLCBkbyBub3QgY2hhbmdl CisrICAgICMjIHRoZSBydW5uaW5nIG9yZGVyIG9yIG90aGVyd2lzZSBtb3ZlIHRoZW0gYXJvdW5k IHVubGVzcyB5b3Uga25vdyBleGFjdGx5CisrICAgICMjIHdoYXQgeW91IGFyZSBkb2luZy4uLgor KyAgICBfTFRfQ09NUElMRVJfUElDKCQxKQorKyAgICBfTFRfQ09NUElMRVJfQ19PKCQxKQorKyAg ICBfTFRfQ09NUElMRVJfRklMRV9MT0NLUygkMSkKKysgICAgX0xUX0xJTktFUl9TSExJQlMoJDEp CisrICAgIF9MVF9TWVNfRFlOQU1JQ19MSU5LRVIoJDEpCisrICAgIF9MVF9MSU5LRVJfSEFSRENP REVfTElCUEFUSCgkMSkKKysKKysgICAgX0xUX0NPTkZJRygkMSkKKysgIGZpICMgdGVzdCAtbiAi JGNvbXBpbGVyIgorKworKyAgR0NDPSRsdF9zYXZlX0dDQworKyAgQ0M9IiRsdF9zYXZlX0NDIgor K2ZpICMgdGVzdCAiJF9sdF9kaXNhYmxlX0Y3NyIgIT0geWVzCisrCisrQUNfTEFOR19QT1AKKytd KSMgX0xUX0xBTkdfRjc3X0NPTkZJRworKworKworKyMgX0xUX1BST0dfRkMKKysjIC0tLS0tLS0t LS0tCisrIyBTaW5jZSBBQ19QUk9HX0ZDIGlzIGJyb2tlbiwgaW4gdGhhdCBpdCByZXR1cm5zIHRo ZSBlbXB0eSBzdHJpbmcKKysjIGlmIHRoZXJlIGlzIG5vIGZvcnRyYW4gY29tcGlsZXIsIHdlIGhh dmUgb3VyIG93biB2ZXJzaW9uIGhlcmUuCisrbTRfZGVmdW4oW19MVF9QUk9HX0ZDXSwKKytbCisr cHVzaGRlZihbQUNfTVNHX0VSUk9SXSwgW19sdF9kaXNhYmxlX0ZDPXllc10pCisrQUNfUFJPR19G QworK2lmIHRlc3QgLXogIiRGQyIgfHwgdGVzdCAiWCRGQyIgPSAiWG5vIjsgdGhlbgorKyAgX2x0 X2Rpc2FibGVfRkM9eWVzCisrZmkKKytwb3BkZWYoW0FDX01TR19FUlJPUl0pCisrXSkjIF9MVF9Q Uk9HX0ZDCisrCisrZG5sIGFjbG9jYWwtMS40IGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5OgorK2Ru bCBBQ19ERUZVTihbX0xUX1BST0dfRkNdLCBbXSkKKysKKysKKysjIF9MVF9MQU5HX0ZDX0NPTkZJ RyhbVEFHXSkKKysjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKysjIEVuc3VyZSB0aGF0IHRo ZSBjb25maWd1cmF0aW9uIHZhcmlhYmxlcyBmb3IgYSBGb3J0cmFuIGNvbXBpbGVyIGFyZQorKyMg c3VpdGFibHkgZGVmaW5lZC4gIFRoZXNlIHZhcmlhYmxlcyBhcmUgc3Vic2VxdWVudGx5IHVzZWQg YnkgX0xUX0NPTkZJRworKyMgdG8gd3JpdGUgdGhlIGNvbXBpbGVyIGNvbmZpZ3VyYXRpb24gdG8g YGxpYnRvb2wnLgorK200X2RlZnVuKFtfTFRfTEFOR19GQ19DT05GSUddLAorK1tBQ19SRVFVSVJF KFtfTFRfUFJPR19GQ10pZG5sCisrQUNfTEFOR19QVVNIKEZvcnRyYW4pCisrCisrX0xUX1RBR1ZB UihhcmNoaXZlX2NtZHNfbmVlZF9sYywgJDEpPW5vCisrX0xUX1RBR1ZBUihhbGxvd191bmRlZmlu ZWRfZmxhZywgJDEpPQorK19MVF9UQUdWQVIoYWx3YXlzX2V4cG9ydF9zeW1ib2xzLCAkMSk9bm8K KytfTFRfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0KKytfTFRfVEFHVkFSKGV4cG9y dF9keW5hbWljX2ZsYWdfc3BlYywgJDEpPQorK19MVF9UQUdWQVIoaGFyZGNvZGVfZGlyZWN0LCAk MSk9bm8KKytfTFRfVEFHVkFSKGhhcmRjb2RlX2RpcmVjdF9hYnNvbHV0ZSwgJDEpPW5vCisrX0xU X1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9CisrX0xUX1RBR1ZBUihoYXJk Y29kZV9saWJkaXJfZmxhZ19zcGVjX2xkLCAkMSk9CisrX0xUX1RBR1ZBUihoYXJkY29kZV9saWJk aXJfc2VwYXJhdG9yLCAkMSk9CisrX0xUX1RBR1ZBUihoYXJkY29kZV9taW51c19MLCAkMSk9bm8K KytfTFRfVEFHVkFSKGhhcmRjb2RlX2F1dG9tYXRpYywgJDEpPW5vCisrX0xUX1RBR1ZBUihpbmhl cml0X3JwYXRoLCAkMSk9bm8KKytfTFRfVEFHVkFSKG1vZHVsZV9jbWRzLCAkMSk9CisrX0xUX1RB R1ZBUihtb2R1bGVfZXhwc3ltX2NtZHMsICQxKT0KKytfTFRfVEFHVkFSKGxpbmtfYWxsX2RlcGxp YnMsICQxKT11bmtub3duCisrX0xUX1RBR1ZBUihvbGRfYXJjaGl2ZV9jbWRzLCAkMSk9JG9sZF9h cmNoaXZlX2NtZHMKKytfTFRfVEFHVkFSKG5vX3VuZGVmaW5lZF9mbGFnLCAkMSk9CisrX0xUX1RB R1ZBUih3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYywgJDEpPQorK19MVF9UQUdWQVIoZW5hYmxlX3No YXJlZF93aXRoX3N0YXRpY19ydW50aW1lcywgJDEpPW5vCisrCisrIyBTb3VyY2UgZmlsZSBleHRl bnNpb24gZm9yIGZjIHRlc3Qgc291cmNlcy4KKythY19leHQ9JHthY19mY19zcmNleHQtZn0KKysK KysjIE9iamVjdCBmaWxlIGV4dGVuc2lvbiBmb3IgY29tcGlsZWQgZmMgdGVzdCBzb3VyY2VzLgor K29iamV4dD1vCisrX0xUX1RBR1ZBUihvYmpleHQsICQxKT0kb2JqZXh0CisrCisrIyBObyBzZW5z ZSBpbiBydW5uaW5nIGFsbCB0aGVzZSB0ZXN0cyBpZiB3ZSBhbHJlYWR5IGRldGVybWluZWQgdGhh dAorKyMgdGhlIEZDIGNvbXBpbGVyIGlzbid0IHdvcmtpbmcuICBTb21lIHZhcmlhYmxlcyAobGlr ZSBlbmFibGVfc2hhcmVkKQorKyMgYXJlIGN1cnJlbnRseSBhc3N1bWVkIHRvIGFwcGx5IHRvIGFs bCBjb21waWxlcnMgb24gdGhpcyBwbGF0Zm9ybSwKKysjIGFuZCB3aWxsIGJlIGNvcnJ1cHRlZCBi eSBzZXR0aW5nIHRoZW0gYmFzZWQgb24gYSBub24td29ya2luZyBjb21waWxlci4KKytpZiB0ZXN0 ICIkX2x0X2Rpc2FibGVfRkMiICE9IHllczsgdGhlbgorKyAgIyBDb2RlIHRvIGJlIHVzZWQgaW4g c2ltcGxlIGNvbXBpbGUgdGVzdHMKKysgIGx0X3NpbXBsZV9jb21waWxlX3Rlc3RfY29kZT0iXAor KyAgICAgIHN1YnJvdXRpbmUgdAorKyAgICAgIHJldHVybgorKyAgICAgIGVuZAorKyIKKysKKysg ICMgQ29kZSB0byBiZSB1c2VkIGluIHNpbXBsZSBsaW5rIHRlc3RzCisrICBsdF9zaW1wbGVfbGlu a190ZXN0X2NvZGU9IlwKKysgICAgICBwcm9ncmFtIHQKKysgICAgICBlbmQKKysiCisrCisrICAj IGx0bWFpbiBvbmx5IHVzZXMgJENDIGZvciB0YWdnZWQgY29uZmlndXJhdGlvbnMgc28gbWFrZSBz dXJlICRDQyBpcyBzZXQuCisrICBfTFRfVEFHX0NPTVBJTEVSCisrCisrICAjIHNhdmUgd2Fybmlu Z3MvYm9pbGVycGxhdGUgb2Ygc2ltcGxlIHRlc3QgY29kZQorKyAgX0xUX0NPTVBJTEVSX0JPSUxF UlBMQVRFCisrICBfTFRfTElOS0VSX0JPSUxFUlBMQVRFCisrCisrICAjIEFsbG93IENDIHRvIGJl IGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJndW1lbnRzLgorKyAgbHRfc2F2ZV9DQz0iJENDIgorKyAg bHRfc2F2ZV9HQ0M9JEdDQworKyAgQ0M9JHtGQy0iZjk1In0KKysgIGNvbXBpbGVyPSRDQworKyAg R0NDPSRhY19jdl9mY19jb21waWxlcl9nbnUKKysKKysgIF9MVF9UQUdWQVIoY29tcGlsZXIsICQx KT0kQ0MKKysgIF9MVF9DQ19CQVNFTkFNRShbJGNvbXBpbGVyXSkKKysKKysgIGlmIHRlc3QgLW4g IiRjb21waWxlciI7IHRoZW4KKysgICAgQUNfTVNHX0NIRUNLSU5HKFtpZiBsaWJ0b29sIHN1cHBv cnRzIHNoYXJlZCBsaWJyYXJpZXNdKQorKyAgICBBQ19NU0dfUkVTVUxUKFskY2FuX2J1aWxkX3No YXJlZF0pCisrCisrICAgIEFDX01TR19DSEVDS0lORyhbd2hldGhlciB0byBidWlsZCBzaGFyZWQg bGlicmFyaWVzXSkKKysgICAgdGVzdCAiJGNhbl9idWlsZF9zaGFyZWQiID0gIm5vIiAmJiBlbmFi bGVfc2hhcmVkPW5vCisrCisrICAgICMgT24gQUlYLCBzaGFyZWQgbGlicmFyaWVzIGFuZCBzdGF0 aWMgbGlicmFyaWVzIHVzZSB0aGUgc2FtZSBuYW1lc3BhY2UsIGFuZAorKyAgICAjIGFyZSBhbGwg YnVpbHQgZnJvbSBQSUMuCisrICAgIGNhc2UgJGhvc3Rfb3MgaW4KKysgICAgICBhaXgzKikKKysg ICAgICAgIHRlc3QgIiRlbmFibGVfc2hhcmVkIiA9IHllcyAmJiBlbmFibGVfc3RhdGljPW5vCisr ICAgICAgICBpZiB0ZXN0IC1uICIkUkFOTElCIjsgdGhlbgorKyAgICAgICAgICBhcmNoaXZlX2Nt ZHM9IiRhcmNoaXZlX2NtZHN+XCRSQU5MSUIgXCRsaWIiCisrICAgICAgICAgIHBvc3RpbnN0YWxs X2NtZHM9JyRSQU5MSUIgJGxpYicKKysgICAgICAgIGZpCisrICAgICAgICA7OworKyAgICAgIGFp eFtbNC05XV0qKQorKwlpZiB0ZXN0ICIkaG9zdF9jcHUiICE9IGlhNjQgJiYgdGVzdCAiJGFpeF91 c2VfcnVudGltZWxpbmtpbmciID0gbm8gOyB0aGVuCisrCSAgdGVzdCAiJGVuYWJsZV9zaGFyZWQi ID0geWVzICYmIGVuYWJsZV9zdGF0aWM9bm8KKysJZmkKKysgICAgICAgIDs7CisrICAgIGVzYWMK KysgICAgQUNfTVNHX1JFU1VMVChbJGVuYWJsZV9zaGFyZWRdKQorKworKyAgICBBQ19NU0dfQ0hF Q0tJTkcoW3doZXRoZXIgdG8gYnVpbGQgc3RhdGljIGxpYnJhcmllc10pCisrICAgICMgTWFrZSBz dXJlIGVpdGhlciBlbmFibGVfc2hhcmVkIG9yIGVuYWJsZV9zdGF0aWMgaXMgeWVzLgorKyAgICB0 ZXN0ICIkZW5hYmxlX3NoYXJlZCIgPSB5ZXMgfHwgZW5hYmxlX3N0YXRpYz15ZXMKKysgICAgQUNf TVNHX1JFU1VMVChbJGVuYWJsZV9zdGF0aWNdKQorKworKyAgICBfTFRfVEFHVkFSKEdDQywgJDEp PSIkYWNfY3ZfZmNfY29tcGlsZXJfZ251IgorKyAgICBfTFRfVEFHVkFSKExELCAkMSk9IiRMRCIK KysKKysgICAgIyMgQ0FWRUFUIEVNUFRPUjoKKysgICAgIyMgVGhlcmUgaXMgbm8gZW5jYXBzdWxh dGlvbiB3aXRoaW4gdGhlIGZvbGxvd2luZyBtYWNyb3MsIGRvIG5vdCBjaGFuZ2UKKysgICAgIyMg dGhlIHJ1bm5pbmcgb3JkZXIgb3Igb3RoZXJ3aXNlIG1vdmUgdGhlbSBhcm91bmQgdW5sZXNzIHlv dSBrbm93IGV4YWN0bHkKKysgICAgIyMgd2hhdCB5b3UgYXJlIGRvaW5nLi4uCisrICAgIF9MVF9T WVNfSElEREVOX0xJQkRFUFMoJDEpCisrICAgIF9MVF9DT01QSUxFUl9QSUMoJDEpCisrICAgIF9M VF9DT01QSUxFUl9DX08oJDEpCisrICAgIF9MVF9DT01QSUxFUl9GSUxFX0xPQ0tTKCQxKQorKyAg ICBfTFRfTElOS0VSX1NITElCUygkMSkKKysgICAgX0xUX1NZU19EWU5BTUlDX0xJTktFUigkMSkK KysgICAgX0xUX0xJTktFUl9IQVJEQ09ERV9MSUJQQVRIKCQxKQorKworKyAgICBfTFRfQ09ORklH KCQxKQorKyAgZmkgIyB0ZXN0IC1uICIkY29tcGlsZXIiCisrCisrICBHQ0M9JGx0X3NhdmVfR0ND CisrICBDQz0iJGx0X3NhdmVfQ0MiCisrZmkgIyB0ZXN0ICIkX2x0X2Rpc2FibGVfRkMiICE9IHll cworKworK0FDX0xBTkdfUE9QCisrXSkjIF9MVF9MQU5HX0ZDX0NPTkZJRworKworKworKyMgX0xU X0xBTkdfR0NKX0NPTkZJRyhbVEFHXSkKKysjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisr IyBFbnN1cmUgdGhhdCB0aGUgY29uZmlndXJhdGlvbiB2YXJpYWJsZXMgZm9yIHRoZSBHTlUgSmF2 YSBDb21waWxlciBjb21waWxlcgorKyMgYXJlIHN1aXRhYmx5IGRlZmluZWQuICBUaGVzZSB2YXJp YWJsZXMgYXJlIHN1YnNlcXVlbnRseSB1c2VkIGJ5IF9MVF9DT05GSUcKKysjIHRvIHdyaXRlIHRo ZSBjb21waWxlciBjb25maWd1cmF0aW9uIHRvIGBsaWJ0b29sJy4KKyttNF9kZWZ1bihbX0xUX0xB TkdfR0NKX0NPTkZJR10sCisrW0FDX1JFUVVJUkUoW0xUX1BST0dfR0NKXSlkbmwKKytBQ19MQU5H X1NBVkUKKysKKysjIFNvdXJjZSBmaWxlIGV4dGVuc2lvbiBmb3IgSmF2YSB0ZXN0IHNvdXJjZXMu CisrYWNfZXh0PWphdmEKKysKKysjIE9iamVjdCBmaWxlIGV4dGVuc2lvbiBmb3IgY29tcGlsZWQg SmF2YSB0ZXN0IHNvdXJjZXMuCisrb2JqZXh0PW8KKytfTFRfVEFHVkFSKG9iamV4dCwgJDEpPSRv YmpleHQKKysKKysjIENvZGUgdG8gYmUgdXNlZCBpbiBzaW1wbGUgY29tcGlsZSB0ZXN0cworK2x0 X3NpbXBsZV9jb21waWxlX3Rlc3RfY29kZT0iY2xhc3MgZm9vIHt9IgorKworKyMgQ29kZSB0byBi ZSB1c2VkIGluIHNpbXBsZSBsaW5rIHRlc3RzCisrbHRfc2ltcGxlX2xpbmtfdGVzdF9jb2RlPSdw dWJsaWMgY2xhc3MgY29uZnRlc3QgeyBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbW11d IGFyZ3YpIHt9OyB9JworKworKyMgbHRtYWluIG9ubHkgdXNlcyAkQ0MgZm9yIHRhZ2dlZCBjb25m aWd1cmF0aW9ucyBzbyBtYWtlIHN1cmUgJENDIGlzIHNldC4KKytfTFRfVEFHX0NPTVBJTEVSCisr CisrIyBzYXZlIHdhcm5pbmdzL2JvaWxlcnBsYXRlIG9mIHNpbXBsZSB0ZXN0IGNvZGUKKytfTFRf Q09NUElMRVJfQk9JTEVSUExBVEUKKytfTFRfTElOS0VSX0JPSUxFUlBMQVRFCisrCisrIyBBbGxv dyBDQyB0byBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3VtZW50cy4KKytsdF9zYXZlX0NDPSIk Q0MiCisrbHRfc2F2ZV9HQ0M9JEdDQworK0dDQz15ZXMKKytDQz0ke0dDSi0iZ2NqIn0KKytjb21w aWxlcj0kQ0MKKytfTFRfVEFHVkFSKGNvbXBpbGVyLCAkMSk9JENDCisrX0xUX1RBR1ZBUihMRCwg JDEpPSIkTEQiCisrX0xUX0NDX0JBU0VOQU1FKFskY29tcGlsZXJdKQorKworKyMgR0NKIGRpZCBu b3QgZXhpc3QgYXQgdGhlIHRpbWUgR0NDIGRpZG4ndCBpbXBsaWNpdGx5IGxpbmsgbGliYyBpbi4K KytfTFRfVEFHVkFSKGFyY2hpdmVfY21kc19uZWVkX2xjLCAkMSk9bm8KKysKKytfTFRfVEFHVkFS KG9sZF9hcmNoaXZlX2NtZHMsICQxKT0kb2xkX2FyY2hpdmVfY21kcworKworKyMjIENBVkVBVCBF TVBUT1I6CisrIyMgVGhlcmUgaXMgbm8gZW5jYXBzdWxhdGlvbiB3aXRoaW4gdGhlIGZvbGxvd2lu ZyBtYWNyb3MsIGRvIG5vdCBjaGFuZ2UKKysjIyB0aGUgcnVubmluZyBvcmRlciBvciBvdGhlcndp c2UgbW92ZSB0aGVtIGFyb3VuZCB1bmxlc3MgeW91IGtub3cgZXhhY3RseQorKyMjIHdoYXQgeW91 IGFyZSBkb2luZy4uLgorK2lmIHRlc3QgLW4gIiRjb21waWxlciI7IHRoZW4KKysgIF9MVF9DT01Q SUxFUl9OT19SVFRJKCQxKQorKyAgX0xUX0NPTVBJTEVSX1BJQygkMSkKKysgIF9MVF9DT01QSUxF Ul9DX08oJDEpCisrICBfTFRfQ09NUElMRVJfRklMRV9MT0NLUygkMSkKKysgIF9MVF9MSU5LRVJf U0hMSUJTKCQxKQorKyAgX0xUX0xJTktFUl9IQVJEQ09ERV9MSUJQQVRIKCQxKQorKworKyAgX0xU X0NPTkZJRygkMSkKKytmaQorKworK0FDX0xBTkdfUkVTVE9SRQorKworK0dDQz0kbHRfc2F2ZV9H Q0MKKytDQz0iJGx0X3NhdmVfQ0MiCisrXSkjIF9MVF9MQU5HX0dDSl9DT05GSUcKKysKKysKKysj IF9MVF9MQU5HX1JDX0NPTkZJRyhbVEFHXSkKKysjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K KysjIEVuc3VyZSB0aGF0IHRoZSBjb25maWd1cmF0aW9uIHZhcmlhYmxlcyBmb3IgdGhlIFdpbmRv d3MgcmVzb3VyY2UgY29tcGlsZXIKKysjIGFyZSBzdWl0YWJseSBkZWZpbmVkLiAgVGhlc2UgdmFy aWFibGVzIGFyZSBzdWJzZXF1ZW50bHkgdXNlZCBieSBfTFRfQ09ORklHCisrIyB0byB3cml0ZSB0 aGUgY29tcGlsZXIgY29uZmlndXJhdGlvbiB0byBgbGlidG9vbCcuCisrbTRfZGVmdW4oW19MVF9M QU5HX1JDX0NPTkZJR10sCisrW0FDX1JFUVVJUkUoW0xUX1BST0dfUkNdKWRubAorK0FDX0xBTkdf U0FWRQorKworKyMgU291cmNlIGZpbGUgZXh0ZW5zaW9uIGZvciBSQyB0ZXN0IHNvdXJjZXMuCisr YWNfZXh0PXJjCisrCisrIyBPYmplY3QgZmlsZSBleHRlbnNpb24gZm9yIGNvbXBpbGVkIFJDIHRl c3Qgc291cmNlcy4KKytvYmpleHQ9bworK19MVF9UQUdWQVIob2JqZXh0LCAkMSk9JG9iamV4dAor KworKyMgQ29kZSB0byBiZSB1c2VkIGluIHNpbXBsZSBjb21waWxlIHRlc3RzCisrbHRfc2ltcGxl X2NvbXBpbGVfdGVzdF9jb2RlPSdzYW1wbGUgTUVOVSB7IE1FTlVJVEVNICImU291cCIsIDEwMCwg Q0hFQ0tFRCB9JworKworKyMgQ29kZSB0byBiZSB1c2VkIGluIHNpbXBsZSBsaW5rIHRlc3RzCisr bHRfc2ltcGxlX2xpbmtfdGVzdF9jb2RlPSIkbHRfc2ltcGxlX2NvbXBpbGVfdGVzdF9jb2RlIgor KworKyMgbHRtYWluIG9ubHkgdXNlcyAkQ0MgZm9yIHRhZ2dlZCBjb25maWd1cmF0aW9ucyBzbyBt YWtlIHN1cmUgJENDIGlzIHNldC4KKytfTFRfVEFHX0NPTVBJTEVSCisrCisrIyBzYXZlIHdhcm5p bmdzL2JvaWxlcnBsYXRlIG9mIHNpbXBsZSB0ZXN0IGNvZGUKKytfTFRfQ09NUElMRVJfQk9JTEVS UExBVEUKKytfTFRfTElOS0VSX0JPSUxFUlBMQVRFCisrCisrIyBBbGxvdyBDQyB0byBiZSBhIHBy b2dyYW0gbmFtZSB3aXRoIGFyZ3VtZW50cy4KKytsdF9zYXZlX0NDPSIkQ0MiCisrbHRfc2F2ZV9H Q0M9JEdDQworK0dDQz0KKytDQz0ke1JDLSJ3aW5kcmVzIn0KKytjb21waWxlcj0kQ0MKKytfTFRf VEFHVkFSKGNvbXBpbGVyLCAkMSk9JENDCisrX0xUX0NDX0JBU0VOQU1FKFskY29tcGlsZXJdKQor K19MVF9UQUdWQVIobHRfY3ZfcHJvZ19jb21waWxlcl9jX28sICQxKT15ZXMKKysKKytpZiB0ZXN0 IC1uICIkY29tcGlsZXIiOyB0aGVuCisrICA6CisrICBfTFRfQ09ORklHKCQxKQorK2ZpCisrCisr R0NDPSRsdF9zYXZlX0dDQworK0FDX0xBTkdfUkVTVE9SRQorK0NDPSIkbHRfc2F2ZV9DQyIKKytd KSMgX0xUX0xBTkdfUkNfQ09ORklHCisrCisrCisrIyBMVF9QUk9HX0dDSgorKyMgLS0tLS0tLS0t LS0KKytBQ19ERUZVTihbTFRfUFJPR19HQ0pdLAorK1ttNF9pZmRlZihbQUNfUFJPR19HQ0pdLCBb QUNfUFJPR19HQ0pdLAorKyAgW200X2lmZGVmKFtBXVtNX1BST0dfR0NKXSwgW0FdW01fUFJPR19H Q0pdLAorKyAgICBbQUNfQ0hFQ0tfVE9PTChHQ0osIGdjaiwpCisrICAgICAgdGVzdCAieCR7R0NK RkxBR1Mrc2V0fSIgPSB4c2V0IHx8IEdDSkZMQUdTPSItZyAtTzIiCisrICAgICAgQUNfU1VCU1Qo R0NKRkxBR1MpXSldKVtdZG5sCisrXSkKKysKKysjIE9sZCBuYW1lOgorK0FVX0FMSUFTKFtMVF9B Q19QUk9HX0dDSl0sIFtMVF9QUk9HX0dDSl0pCisrZG5sIGFjbG9jYWwtMS40IGJhY2t3YXJkcyBj b21wYXRpYmlsaXR5OgorK2RubCBBQ19ERUZVTihbTFRfQUNfUFJPR19HQ0pdLCBbXSkKKysKKysK KysjIExUX1BST0dfUkMKKysjIC0tLS0tLS0tLS0KKytBQ19ERUZVTihbTFRfUFJPR19SQ10sCisr W0FDX0NIRUNLX1RPT0woUkMsIHdpbmRyZXMsKQorK10pCisrCisrIyBPbGQgbmFtZToKKytBVV9B TElBUyhbTFRfQUNfUFJPR19SQ10sIFtMVF9QUk9HX1JDXSkKKytkbmwgYWNsb2NhbC0xLjQgYmFj a3dhcmRzIGNvbXBhdGliaWxpdHk6CisrZG5sIEFDX0RFRlVOKFtMVF9BQ19QUk9HX1JDXSwgW10p CisrCisrCisrIyBfTFRfREVDTF9FR1JFUAorKyMgLS0tLS0tLS0tLS0tLS0KKysjIElmIHdlIGRv bid0IGhhdmUgYSBuZXcgZW5vdWdoIEF1dG9jb25mIHRvIGNob29zZSB0aGUgYmVzdCBncmVwCisr IyBhdmFpbGFibGUsIGNob29zZSB0aGUgb25lIGZpcnN0IGluIHRoZSB1c2VyJ3MgUEFUSC4KKytt NF9kZWZ1bihbX0xUX0RFQ0xfRUdSRVBdLAorK1tBQ19SRVFVSVJFKFtBQ19QUk9HX0VHUkVQXSlk bmwKKytBQ19SRVFVSVJFKFtBQ19QUk9HX0ZHUkVQXSlkbmwKKyt0ZXN0IC16ICIkR1JFUCIgJiYg R1JFUD1ncmVwCisrX0xUX0RFQ0woW10sIFtHUkVQXSwgWzFdLCBbQSBncmVwIHByb2dyYW0gdGhh dCBoYW5kbGVzIGxvbmcgbGluZXNdKQorK19MVF9ERUNMKFtdLCBbRUdSRVBdLCBbMV0sIFtBbiBF UkUgbWF0Y2hlcl0pCisrX0xUX0RFQ0woW10sIFtGR1JFUF0sIFsxXSwgW0EgbGl0ZXJhbCBzdHJp bmcgbWF0Y2hlcl0pCisrZG5sIE5vbi1ibGVlZGluZy1lZGdlIGF1dG9jb25mIGRvZXNuJ3Qgc3Vi c3QgR1JFUCwgc28gZG8gaXQgaGVyZSB0b28KKytBQ19TVUJTVChbR1JFUF0pCisrXSkKKysKKysK KysjIF9MVF9ERUNMX09CSkRVTVAKKysjIC0tLS0tLS0tLS0tLS0tCisrIyBJZiB3ZSBkb24ndCBo YXZlIGEgbmV3IGVub3VnaCBBdXRvY29uZiB0byBjaG9vc2UgdGhlIGJlc3Qgb2JqZHVtcAorKyMg YXZhaWxhYmxlLCBjaG9vc2UgdGhlIG9uZSBmaXJzdCBpbiB0aGUgdXNlcidzIFBBVEguCisrbTRf ZGVmdW4oW19MVF9ERUNMX09CSkRVTVBdLAorK1tBQ19DSEVDS19UT09MKE9CSkRVTVAsIG9iamR1 bXAsIGZhbHNlKQorK3Rlc3QgLXogIiRPQkpEVU1QIiAmJiBPQkpEVU1QPW9iamR1bXAKKytfTFRf REVDTChbXSwgW09CSkRVTVBdLCBbMV0sIFtBbiBvYmplY3Qgc3ltYm9sIGR1bXBlcl0pCisrQUNf U1VCU1QoW09CSkRVTVBdKQorK10pCisrCisrCisrIyBfTFRfREVDTF9TRUQKKysjIC0tLS0tLS0t LS0tLQorKyMgQ2hlY2sgZm9yIGEgZnVsbHktZnVuY3Rpb25hbCBzZWQgcHJvZ3JhbSwgdGhhdCB0 cnVuY2F0ZXMKKysjIGFzIGZldyBjaGFyYWN0ZXJzIGFzIHBvc3NpYmxlLiAgUHJlZmVyIEdOVSBz ZWQgaWYgZm91bmQuCisrbTRfZGVmdW4oW19MVF9ERUNMX1NFRF0sCisrW0FDX1BST0dfU0VECisr dGVzdCAteiAiJFNFRCIgJiYgU0VEPXNlZAorK1hzZWQ9IiRTRUQgLWUgMXMvXlgvLyIKKytfTFRf REVDTChbXSwgW1NFRF0sIFsxXSwgW0Egc2VkIHByb2dyYW0gdGhhdCBkb2VzIG5vdCB0cnVuY2F0 ZSBvdXRwdXRdKQorK19MVF9ERUNMKFtdLCBbWHNlZF0sIFsiXCRTRUQgLWUgMXMvXlgvLyJdLAor KyAgICBbU2VkIHRoYXQgaGVscHMgdXMgYXZvaWQgYWNjaWRlbnRhbGx5IHRyaWdnZXJpbmcgZWNo bygxKSBvcHRpb25zIGxpa2UgLW5dKQorK10pIyBfTFRfREVDTF9TRUQKKysKKyttNF9pZm5kZWYo W0FDX1BST0dfU0VEXSwgWworKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIworKyMgTk9URTogVGhpcyBtYWNybyBoYXMgYmVlbiBzdWJt aXR0ZWQgZm9yIGluY2x1c2lvbiBpbnRvICAgIworKyMgIEdOVSBBdXRvY29uZiBhcyBBQ19QUk9H X1NFRC4gIFdoZW4gaXQgaXMgYXZhaWxhYmxlIGluICAgIworKyMgIGEgcmVsZWFzZWQgdmVyc2lv biBvZiBBdXRvY29uZiB3ZSBzaG91bGQgcmVtb3ZlIHRoaXMgICAgIworKyMgIG1hY3JvIGFuZCB1 c2UgaXQgaW5zdGVhZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIworKyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworKwor K200X2RlZnVuKFtBQ19QUk9HX1NFRF0sCisrW0FDX01TR19DSEVDS0lORyhbZm9yIGEgc2VkIHRo YXQgZG9lcyBub3QgdHJ1bmNhdGUgb3V0cHV0XSkKKytBQ19DQUNIRV9WQUwobHRfY3ZfcGF0aF9T RUQsCisrWyMgTG9vcCB0aHJvdWdoIHRoZSB1c2VyJ3MgcGF0aCBhbmQgdGVzdCBmb3Igc2VkIGFu ZCBnc2VkLgorKyMgVGhlbiB1c2UgdGhhdCBsaXN0IG9mIHNlZCdzIGFzIG9uZXMgdG8gdGVzdCBm b3IgdHJ1bmNhdGlvbi4KKythc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCisr Zm9yIGFzX2RpciBpbiAkUEFUSAorK2RvCisrICBJRlM9JGFzX3NhdmVfSUZTCisrICB0ZXN0IC16 ICIkYXNfZGlyIiAmJiBhc19kaXI9LgorKyAgZm9yIGx0X2FjX3Byb2cgaW4gc2VkIGdzZWQ7IGRv CisrICAgIGZvciBhY19leGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9leHRlbnNpb25zOyBk bworKyAgICAgIGlmICRhc19leGVjdXRhYmxlX3AgIiRhc19kaXIvJGx0X2FjX3Byb2ckYWNfZXhl Y19leHQiOyB0aGVuCisrICAgICAgICBsdF9hY19zZWRfbGlzdD0iJGx0X2FjX3NlZF9saXN0ICRh c19kaXIvJGx0X2FjX3Byb2ckYWNfZXhlY19leHQiCisrICAgICAgZmkKKysgICAgZG9uZQorKyAg ZG9uZQorK2RvbmUKKytJRlM9JGFzX3NhdmVfSUZTCisrbHRfYWNfbWF4PTAKKytsdF9hY19jb3Vu dD0wCisrIyBBZGQgL3Vzci94cGc0L2Jpbi9zZWQgYXMgaXQgaXMgdHlwaWNhbGx5IGZvdW5kIG9u IFNvbGFyaXMKKysjIGFsb25nIHdpdGggL2Jpbi9zZWQgdGhhdCB0cnVuY2F0ZXMgb3V0cHV0Lgor K2ZvciBsdF9hY19zZWQgaW4gJGx0X2FjX3NlZF9saXN0IC91c3IveHBnNC9iaW4vc2VkOyBkbwor KyAgdGVzdCAhIC1mICRsdF9hY19zZWQgJiYgY29udGludWUKKysgIGNhdCAvZGV2L251bGwgPiBj b25mdGVzdC5pbgorKyAgbHRfYWNfY291bnQ9MAorKyAgZWNobyAkRUNIT19OICIwMTIzNDU2Nzg5 JEVDSE9fQyIgPmNvbmZ0ZXN0LmluCisrICAjIENoZWNrIGZvciBHTlUgc2VkIGFuZCBzZWxlY3Qg aXQgaWYgaXQgaXMgZm91bmQuCisrICBpZiAiJGx0X2FjX3NlZCIgLS12ZXJzaW9uIDI+JjEgPCAv ZGV2L251bGwgfCBncmVwICdHTlUnID4gL2Rldi9udWxsOyB0aGVuCisrICAgIGx0X2N2X3BhdGhf U0VEPSRsdF9hY19zZWQKKysgICAgYnJlYWsKKysgIGZpCisrICB3aGlsZSB0cnVlOyBkbworKyAg ICBjYXQgY29uZnRlc3QuaW4gY29uZnRlc3QuaW4gPmNvbmZ0ZXN0LnRtcAorKyAgICBtdiBjb25m dGVzdC50bXAgY29uZnRlc3QuaW4KKysgICAgY3AgY29uZnRlc3QuaW4gY29uZnRlc3QubmwKKysg ICAgZWNobyA+PmNvbmZ0ZXN0Lm5sCisrICAgICRsdF9hY19zZWQgLWUgJ3MvYSQvLycgPCBjb25m dGVzdC5ubCA+Y29uZnRlc3Qub3V0IHx8IGJyZWFrCisrICAgIGNtcCAtcyBjb25mdGVzdC5vdXQg Y29uZnRlc3QubmwgfHwgYnJlYWsKKysgICAgIyAxMDAwMCBjaGFycyBhcyBpbnB1dCBzZWVtcyBt b3JlIHRoYW4gZW5vdWdoCisrICAgIHRlc3QgJGx0X2FjX2NvdW50IC1ndCAxMCAmJiBicmVhawor KyAgICBsdF9hY19jb3VudD1gZXhwciAkbHRfYWNfY291bnQgKyAxYAorKyAgICBpZiB0ZXN0ICRs dF9hY19jb3VudCAtZ3QgJGx0X2FjX21heDsgdGhlbgorKyAgICAgIGx0X2FjX21heD0kbHRfYWNf Y291bnQKKysgICAgICBsdF9jdl9wYXRoX1NFRD0kbHRfYWNfc2VkCisrICAgIGZpCisrICBkb25l CisrZG9uZQorK10pCisrU0VEPSRsdF9jdl9wYXRoX1NFRAorK0FDX1NVQlNUKFtTRURdKQorK0FD X01TR19SRVNVTFQoWyRTRURdKQorK10pI0FDX1BST0dfU0VECisrXSkjbTRfaWZuZGVmCisrCisr IyBPbGQgbmFtZToKKytBVV9BTElBUyhbTFRfQUNfUFJPR19TRURdLCBbQUNfUFJPR19TRURdKQor K2RubCBhY2xvY2FsLTEuNCBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eToKKytkbmwgQUNfREVGVU4o W0xUX0FDX1BST0dfU0VEXSwgW10pCisrCisrCisrIyBfTFRfQ0hFQ0tfU0hFTExfRkVBVFVSRVMK KysjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKyMgRmluZCBvdXQgd2hldGhlciB0aGUgc2hl bGwgaXMgQm91cm5lIG9yIFhTSSBjb21wYXRpYmxlLAorKyMgb3IgaGFzIHNvbWUgb3RoZXIgdXNl ZnVsIGZlYXR1cmVzLgorK200X2RlZnVuKFtfTFRfQ0hFQ0tfU0hFTExfRkVBVFVSRVNdLAorK1tB Q19NU0dfQ0hFQ0tJTkcoW3doZXRoZXIgdGhlIHNoZWxsIHVuZGVyc3RhbmRzIHNvbWUgWFNJIGNv bnN0cnVjdHNdKQorKyMgVHJ5IHNvbWUgWFNJIGZlYXR1cmVzCisreHNpX3NoZWxsPW5vCisrKCBf bHRfZHVtbXk9ImEvYi9jIgorKyAgdGVzdCAiJHtfbHRfZHVtbXkjIyovfSwke19sdF9kdW1teSUv Kn0sIiR7X2x0X2R1bW15JSIkX2x0X2R1bW15In0sIFwKKysgICAgICA9IGMsYS9iLCwgXAorKyAg ICAmJiBldmFsICd0ZXN0ICQoKCAxICsgMSApKSAtZXEgMiBcCisrICAgICYmIHRlc3QgIiR7I19s dF9kdW1teX0iIC1lcSA1JyApID4vZGV2L251bGwgMj4mMSBcCisrICAmJiB4c2lfc2hlbGw9eWVz CisrQUNfTVNHX1JFU1VMVChbJHhzaV9zaGVsbF0pCisrX0xUX0NPTkZJR19MSUJUT09MX0lOSVQo W3hzaV9zaGVsbD0nJHhzaV9zaGVsbCddKQorKworK0FDX01TR19DSEVDS0lORyhbd2hldGhlciB0 aGUgc2hlbGwgdW5kZXJzdGFuZHMgIis9Il0pCisrbHRfc2hlbGxfYXBwZW5kPW5vCisrKCBmb289 YmFyOyBzZXQgZm9vIGJhejsgZXZhbCAiJFsxXSs9XCRbMl0iICYmIHRlc3QgIiRmb28iID0gYmFy YmF6ICkgXAorKyAgICA+L2Rldi9udWxsIDI+JjEgXAorKyAgJiYgbHRfc2hlbGxfYXBwZW5kPXll cworK0FDX01TR19SRVNVTFQoWyRsdF9zaGVsbF9hcHBlbmRdKQorK19MVF9DT05GSUdfTElCVE9P TF9JTklUKFtsdF9zaGVsbF9hcHBlbmQ9JyRsdF9zaGVsbF9hcHBlbmQnXSkKKysKKytpZiAoIChN QUlMPTYwOyB1bnNldCBNQUlMKSB8fCBleGl0KSA+L2Rldi9udWxsIDI+JjE7IHRoZW4KKysgIGx0 X3Vuc2V0PXVuc2V0CisrZWxzZQorKyAgbHRfdW5zZXQ9ZmFsc2UKKytmaQorK19MVF9ERUNMKFtd LCBbbHRfdW5zZXRdLCBbMF0sIFt3aGV0aGVyIHRoZSBzaGVsbCB1bmRlcnN0YW5kcyAidW5zZXQi XSlkbmwKKysKKysjIHRlc3QgRUJDRElDIG9yIEFTQ0lJCisrY2FzZSBgZWNobyBYfHRyIFggJ1wx MDEnYCBpbgorKyBBKSAjIEFTQ0lJIGJhc2VkIHN5c3RlbQorKyAgICAjIFxuIGlzIG5vdCBpbnRl cnByZXRlZCBjb3JyZWN0bHkgYnkgU29sYXJpcyA4IC91c3IvdWNiL3RyCisrICBsdF9TUDJOTD0n dHIgXDA0MCBcMDEyJworKyAgbHRfTkwyU1A9J3RyIFwwMTVcMDEyIFwwNDBcMDQwJworKyAgOzsK KysgKikgIyBFQkNESUMgYmFzZWQgc3lzdGVtCisrICBsdF9TUDJOTD0ndHIgXDEwMCBcbicKKysg IGx0X05MMlNQPSd0ciBcclxuIFwxMDBcMTAwJworKyAgOzsKKytlc2FjCisrX0xUX0RFQ0woW1NQ Mk5MXSwgW2x0X1NQMk5MXSwgWzFdLCBbdHVybiBzcGFjZXMgaW50byBuZXdsaW5lc10pZG5sCisr X0xUX0RFQ0woW05MMlNQXSwgW2x0X05MMlNQXSwgWzFdLCBbdHVybiBuZXdsaW5lcyBpbnRvIHNw YWNlc10pZG5sCisrXSkjIF9MVF9DSEVDS19TSEVMTF9GRUFUVVJFUworKworKworKyMgX0xUX1BS T0dfWFNJX1NIRUxMRk5TCisrIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0KKysjIEJvdXJuZSBhbmQg WFNJIGNvbXBhdGlibGUgdmFyaWFudHMgb2Ygc29tZSB1c2VmdWwgc2hlbGwgZnVuY3Rpb25zLgor K200X2RlZnVuKFtfTFRfUFJPR19YU0lfU0hFTExGTlNdLAorK1tjYXNlICR4c2lfc2hlbGwgaW4K KysgIHllcykKKysgICAgY2F0IDw8IFxfTFRfRU9GID4+ICIkY2ZnZmlsZSIKKysKKysjIGZ1bmNf ZGlybmFtZSBmaWxlIGFwcGVuZCBub25kaXJfcmVwbGFjZW1lbnQKKysjIENvbXB1dGUgdGhlIGRp cm5hbWUgb2YgRklMRS4gIElmIG5vbmVtcHR5LCBhZGQgQVBQRU5EIHRvIHRoZSByZXN1bHQsCisr IyBvdGhlcndpc2Ugc2V0IHJlc3VsdCB0byBOT05ESVJfUkVQTEFDRU1FTlQuCisrZnVuY19kaXJu YW1lICgpCisreworKyAgY2FzZSAkezF9IGluCisrICAgICovKikgZnVuY19kaXJuYW1lX3Jlc3Vs dD0iJHsxJS8qfSR7Mn0iIDs7CisrICAgICogICkgZnVuY19kaXJuYW1lX3Jlc3VsdD0iJHszfSIg OzsKKysgIGVzYWMKKyt9CisrCisrIyBmdW5jX2Jhc2VuYW1lIGZpbGUKKytmdW5jX2Jhc2VuYW1l ICgpCisreworKyAgZnVuY19iYXNlbmFtZV9yZXN1bHQ9IiR7MSMjKi99IgorK30KKysKKysjIGZ1 bmNfZGlybmFtZV9hbmRfYmFzZW5hbWUgZmlsZSBhcHBlbmQgbm9uZGlyX3JlcGxhY2VtZW50Cisr IyBwZXJmb3JtIGZ1bmNfYmFzZW5hbWUgYW5kIGZ1bmNfZGlybmFtZSBpbiBhIHNpbmdsZSBmdW5j dGlvbgorKyMgY2FsbDoKKysjICAgZGlybmFtZTogIENvbXB1dGUgdGhlIGRpcm5hbWUgb2YgRklM RS4gIElmIG5vbmVtcHR5LAorKyMgICAgICAgICAgICAgYWRkIEFQUEVORCB0byB0aGUgcmVzdWx0 LCBvdGhlcndpc2Ugc2V0IHJlc3VsdAorKyMgICAgICAgICAgICAgdG8gTk9ORElSX1JFUExBQ0VN RU5ULgorKyMgICAgICAgICAgICAgdmFsdWUgcmV0dXJuZWQgaW4gIiRmdW5jX2Rpcm5hbWVfcmVz dWx0IgorKyMgICBiYXNlbmFtZTogQ29tcHV0ZSBmaWxlbmFtZSBvZiBGSUxFLgorKyMgICAgICAg ICAgICAgdmFsdWUgcmV0dW5lZCBpbiAiJGZ1bmNfYmFzZW5hbWVfcmVzdWx0IgorKyMgSW1wbGVt ZW50YXRpb24gbXVzdCBiZSBrZXB0IHN5bmNocm9uaXplZCB3aXRoIGZ1bmNfZGlybmFtZQorKyMg YW5kIGZ1bmNfYmFzZW5hbWUuIEZvciBlZmZpY2llbmN5LCB3ZSBkbyBub3QgZGVsZWdhdGUgdG8K KysjIHRob3NlIGZ1bmN0aW9ucyBidXQgaW5zdGVhZCBkdXBsaWNhdGUgdGhlIGZ1bmN0aW9uYWxp dHkgaGVyZS4KKytmdW5jX2Rpcm5hbWVfYW5kX2Jhc2VuYW1lICgpCisreworKyAgY2FzZSAkezF9 IGluCisrICAgICovKikgZnVuY19kaXJuYW1lX3Jlc3VsdD0iJHsxJS8qfSR7Mn0iIDs7CisrICAg ICogICkgZnVuY19kaXJuYW1lX3Jlc3VsdD0iJHszfSIgOzsKKysgIGVzYWMKKysgIGZ1bmNfYmFz ZW5hbWVfcmVzdWx0PSIkezEjIyovfSIKKyt9CisrCisrIyBmdW5jX3N0cmlwbmFtZSBwcmVmaXgg c3VmZml4IG5hbWUKKysjIHN0cmlwIFBSRUZJWCBhbmQgU1VGRklYIG9mZiBvZiBOQU1FLgorKyMg UFJFRklYIGFuZCBTVUZGSVggbXVzdCBub3QgY29udGFpbiBnbG9iYmluZyBvciByZWdleCBzcGVj aWFsCisrIyBjaGFyYWN0ZXJzLCBoYXNoZXMsIHBlcmNlbnQgc2lnbnMsIGJ1dCBTVUZGSVggbWF5 IGNvbnRhaW4gYSBsZWFkaW5nCisrIyBkb3QgKGluIHdoaWNoIGNhc2UgdGhhdCBtYXRjaGVzIG9u bHkgYSBkb3QpLgorK2Z1bmNfc3RyaXBuYW1lICgpCisreworKyAgIyBwZGtzaCA1LjIuMTQgZG9l cyBub3QgZG8gJHtYJSRZfSBjb3JyZWN0bHkgaWYgYm90aCBYIGFuZCBZIGFyZQorKyAgIyBwb3Np dGlvbmFsIHBhcmFtZXRlcnMsIHNvIGFzc2lnbiBvbmUgdG8gb3JkaW5hcnkgcGFyYW1ldGVyIGZp cnN0LgorKyAgZnVuY19zdHJpcG5hbWVfcmVzdWx0PSR7M30KKysgIGZ1bmNfc3RyaXBuYW1lX3Jl c3VsdD0ke2Z1bmNfc3RyaXBuYW1lX3Jlc3VsdCMiJHsxfSJ9CisrICBmdW5jX3N0cmlwbmFtZV9y ZXN1bHQ9JHtmdW5jX3N0cmlwbmFtZV9yZXN1bHQlIiR7Mn0ifQorK30KKysKKysjIGZ1bmNfb3B0 X3NwbGl0CisrZnVuY19vcHRfc3BsaXQgKCkKKyt7CisrICBmdW5jX29wdF9zcGxpdF9vcHQ9JHsx JSU9Kn0KKysgIGZ1bmNfb3B0X3NwbGl0X2FyZz0kezEjKj19CisrfQorKworKyMgZnVuY19sbzJv IG9iamVjdAorK2Z1bmNfbG8ybyAoKQorK3sKKysgIGNhc2UgJHsxfSBpbgorKyAgICAqLmxvKSBm dW5jX2xvMm9fcmVzdWx0PSR7MSUubG99LiR7b2JqZXh0fSA7OworKyAgICAqKSAgICBmdW5jX2xv Mm9fcmVzdWx0PSR7MX0gOzsKKysgIGVzYWMKKyt9CisrCisrIyBmdW5jX3hmb3JtIGxpYm9iai1v ci1zb3VyY2UKKytmdW5jX3hmb3JtICgpCisreworKyAgZnVuY194Zm9ybV9yZXN1bHQ9JHsxJS4q fS5sbworK30KKysKKysjIGZ1bmNfYXJpdGggYXJpdGhtZXRpYy10ZXJtLi4uCisrZnVuY19hcml0 aCAoKQorK3sKKysgIGZ1bmNfYXJpdGhfcmVzdWx0PSQoKCAkWypdICkpCisrfQorKworKyMgZnVu Y19sZW4gc3RyaW5nCisrIyBTVFJJTkcgbWF5IG5vdCBzdGFydCB3aXRoIGEgaHlwaGVuLgorK2Z1 bmNfbGVuICgpCisreworKyAgZnVuY19sZW5fcmVzdWx0PSR7IzF9CisrfQorKworK19MVF9FT0YK KysgICAgOzsKKysgICopICMgQm91cm5lIGNvbXBhdGlibGUgZnVuY3Rpb25zLgorKyAgICBjYXQg PDwgXF9MVF9FT0YgPj4gIiRjZmdmaWxlIgorKworKyMgZnVuY19kaXJuYW1lIGZpbGUgYXBwZW5k IG5vbmRpcl9yZXBsYWNlbWVudAorKyMgQ29tcHV0ZSB0aGUgZGlybmFtZSBvZiBGSUxFLiAgSWYg bm9uZW1wdHksIGFkZCBBUFBFTkQgdG8gdGhlIHJlc3VsdCwKKysjIG90aGVyd2lzZSBzZXQgcmVz dWx0IHRvIE5PTkRJUl9SRVBMQUNFTUVOVC4KKytmdW5jX2Rpcm5hbWUgKCkKKyt7CisrICAjIEV4 dHJhY3Qgc3ViZGlyZWN0b3J5IGZyb20gdGhlIGFyZ3VtZW50LgorKyAgZnVuY19kaXJuYW1lX3Jl c3VsdD1gJEVDSE8gIlgkezF9IiB8ICRYc2VkIC1lICIkZGlybmFtZSJgCisrICBpZiB0ZXN0ICJY JGZ1bmNfZGlybmFtZV9yZXN1bHQiID0gIlgkezF9IjsgdGhlbgorKyAgICBmdW5jX2Rpcm5hbWVf cmVzdWx0PSIkezN9IgorKyAgZWxzZQorKyAgICBmdW5jX2Rpcm5hbWVfcmVzdWx0PSIkZnVuY19k aXJuYW1lX3Jlc3VsdCR7Mn0iCisrICBmaQorK30KKysKKysjIGZ1bmNfYmFzZW5hbWUgZmlsZQor K2Z1bmNfYmFzZW5hbWUgKCkKKyt7CisrICBmdW5jX2Jhc2VuYW1lX3Jlc3VsdD1gJEVDSE8gIlgk ezF9IiB8ICRYc2VkIC1lICIkYmFzZW5hbWUiYAorK30KKysKKytkbmwgZnVuY19kaXJuYW1lX2Fu ZF9iYXNlbmFtZQorK2RubCBBIHBvcnRhYmxlIHZlcnNpb24gb2YgdGhpcyBmdW5jdGlvbiBpcyBh bHJlYWR5IGRlZmluZWQgaW4gZ2VuZXJhbC5tNHNoCisrZG5sIHNvIHRoZXJlIGlzIG5vIG5lZWQg Zm9yIGl0IGhlcmUuCisrCisrIyBmdW5jX3N0cmlwbmFtZSBwcmVmaXggc3VmZml4IG5hbWUKKysj IHN0cmlwIFBSRUZJWCBhbmQgU1VGRklYIG9mZiBvZiBOQU1FLgorKyMgUFJFRklYIGFuZCBTVUZG SVggbXVzdCBub3QgY29udGFpbiBnbG9iYmluZyBvciByZWdleCBzcGVjaWFsCisrIyBjaGFyYWN0 ZXJzLCBoYXNoZXMsIHBlcmNlbnQgc2lnbnMsIGJ1dCBTVUZGSVggbWF5IGNvbnRhaW4gYSBsZWFk aW5nCisrIyBkb3QgKGluIHdoaWNoIGNhc2UgdGhhdCBtYXRjaGVzIG9ubHkgYSBkb3QpLgorKyMg ZnVuY19zdHJpcF9zdWZmaXggcHJlZml4IG5hbWUKKytmdW5jX3N0cmlwbmFtZSAoKQorK3sKKysg IGNhc2UgJHsyfSBpbgorKyAgICAuKikgZnVuY19zdHJpcG5hbWVfcmVzdWx0PWAkRUNITyAiWCR7 M30iIFwKKysgICAgICAgICAgIHwgJFhzZWQgLWUgInMlXiR7MX0lJSIgLWUgInMlXFxcXCR7Mn1c JCUlImA7OworKyAgICAqKSAgZnVuY19zdHJpcG5hbWVfcmVzdWx0PWAkRUNITyAiWCR7M30iIFwK KysgICAgICAgICAgIHwgJFhzZWQgLWUgInMlXiR7MX0lJSIgLWUgInMlJHsyfVwkJSUiYDs7Cisr ICBlc2FjCisrfQorKworKyMgc2VkIHNjcmlwdHM6CisrbXlfc2VkX2xvbmdfb3B0PScxcy9eXCgt W1tePV1dKlwpPS4qL1wxLztxJworK215X3NlZF9sb25nX2FyZz0nMXMvXi1bW149XV0qPS8vJwor KworKyMgZnVuY19vcHRfc3BsaXQKKytmdW5jX29wdF9zcGxpdCAoKQorK3sKKysgIGZ1bmNfb3B0 X3NwbGl0X29wdD1gJEVDSE8gIlgkezF9IiB8ICRYc2VkIC1lICIkbXlfc2VkX2xvbmdfb3B0ImAK KysgIGZ1bmNfb3B0X3NwbGl0X2FyZz1gJEVDSE8gIlgkezF9IiB8ICRYc2VkIC1lICIkbXlfc2Vk X2xvbmdfYXJnImAKKyt9CisrCisrIyBmdW5jX2xvMm8gb2JqZWN0CisrZnVuY19sbzJvICgpCisr eworKyAgZnVuY19sbzJvX3Jlc3VsdD1gJEVDSE8gIlgkezF9IiB8ICRYc2VkIC1lICIkbG8ybyJg CisrfQorKworKyMgZnVuY194Zm9ybSBsaWJvYmotb3Itc291cmNlCisrZnVuY194Zm9ybSAoKQor K3sKKysgIGZ1bmNfeGZvcm1fcmVzdWx0PWAkRUNITyAiWCR7MX0iIHwgJFhzZWQgLWUgJ3MvXC5b W14uXV0qJC8ubG8vJ2AKKyt9CisrCisrIyBmdW5jX2FyaXRoIGFyaXRobWV0aWMtdGVybS4uLgor K2Z1bmNfYXJpdGggKCkKKyt7CisrICBmdW5jX2FyaXRoX3Jlc3VsdD1gZXhwciAiJFtAXSJgCisr fQorKworKyMgZnVuY19sZW4gc3RyaW5nCisrIyBTVFJJTkcgbWF5IG5vdCBzdGFydCB3aXRoIGEg aHlwaGVuLgorK2Z1bmNfbGVuICgpCisreworKyAgZnVuY19sZW5fcmVzdWx0PWBleHByICIkWzFd IiA6ICIuKiIgMj4vZGV2L251bGwgfHwgZWNobyAkbWF4X2NtZF9sZW5gCisrfQorKworK19MVF9F T0YKKytlc2FjCisrCisrY2FzZSAkbHRfc2hlbGxfYXBwZW5kIGluCisrICB5ZXMpCisrICAgIGNh dCA8PCBcX0xUX0VPRiA+PiAiJGNmZ2ZpbGUiCisrCisrIyBmdW5jX2FwcGVuZCB2YXIgdmFsdWUK KysjIEFwcGVuZCBWQUxVRSB0byB0aGUgZW5kIG9mIHNoZWxsIHZhcmlhYmxlIFZBUi4KKytmdW5j X2FwcGVuZCAoKQorK3sKKysgIGV2YWwgIiRbMV0rPVwkWzJdIgorK30KKytfTFRfRU9GCisrICAg IDs7CisrICAqKQorKyAgICBjYXQgPDwgXF9MVF9FT0YgPj4gIiRjZmdmaWxlIgorKworKyMgZnVu Y19hcHBlbmQgdmFyIHZhbHVlCisrIyBBcHBlbmQgVkFMVUUgdG8gdGhlIGVuZCBvZiBzaGVsbCB2 YXJpYWJsZSBWQVIuCisrZnVuY19hcHBlbmQgKCkKKyt7CisrICBldmFsICIkWzFdPVwkJFsxXVwk WzJdIgorK30KKysKKytfTFRfRU9GCisrICAgIDs7CisrICBlc2FjCisrXSkKK2RpZmYgLU51ciBz b2NpLTMuMC4wXzQtcGFjay9jb25maWcvbHRtYWluLnNoIHNvY2ktMy4wLjBfdHJlcDMwMC9jb25m aWcvbHRtYWluLnNoCistLS0gc29jaS0zLjAuMF80LXBhY2svY29uZmlnL2x0bWFpbi5zaAkxOTcw LTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAorKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9j b25maWcvbHRtYWluLnNoCTIwMTAtMDEtMjMgMTQ6NDQ6NDMuMDAwMDAwMDAwICswMTAwCitAQCAt MCwwICsxLDg0MDYgQEAKKysjIEdlbmVyYXRlZCBmcm9tIGx0bWFpbi5tNHNoLgorKworKyMgbHRt YWluLnNoIChHTlUgbGlidG9vbCkgMi4yLjZiCisrIyBXcml0dGVuIGJ5IEdvcmRvbiBNYXR6aWdr ZWl0IDxnb3JkQGdudS5haS5taXQuZWR1PiwgMTk5NgorKworKyMgQ29weXJpZ2h0IChDKSAxOTk2 LCAxOTk3LCAxOTk4LCAxOTk5LCAyMDAwLCAyMDAxLCAyMDAzLCAyMDA0LCAyMDA1LCAyMDA2LCAy MDA3IDIwMDggRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisrIyBUaGlzIGlzIGZyZWUg c29mdHdhcmU7IHNlZSB0aGUgc291cmNlIGZvciBjb3B5aW5nIGNvbmRpdGlvbnMuICBUaGVyZSBp cyBOTworKyMgd2FycmFudHk7IG5vdCBldmVuIGZvciBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVT UyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuCisrCisrIyBHTlUgTGlidG9vbCBpcyBmcmVlIHNv ZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisrIyBpdCB1bmRl ciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hl ZCBieQorKyMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBv ZiB0aGUgTGljZW5zZSwgb3IKKysjIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24u CisrIworKyMgQXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR05VIEdlbmVyYWwgUHVibGlj IExpY2Vuc2UsCisrIyBpZiB5b3UgZGlzdHJpYnV0ZSB0aGlzIGZpbGUgYXMgcGFydCBvZiBhIHBy b2dyYW0gb3IgbGlicmFyeSB0aGF0CisrIyBpcyBidWlsdCB1c2luZyBHTlUgTGlidG9vbCwgeW91 IG1heSBpbmNsdWRlIHRoaXMgZmlsZSB1bmRlciB0aGUKKysjIHNhbWUgZGlzdHJpYnV0aW9uIHRl cm1zIHRoYXQgeW91IHVzZSBmb3IgdGhlIHJlc3Qgb2YgdGhhdCBwcm9ncmFtLgorKyMKKysjIEdO VSBMaWJ0b29sIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2Vm dWwsIGJ1dAorKyMgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGll ZCB3YXJyYW50eSBvZgorKyMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElD VUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKysjIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9y IG1vcmUgZGV0YWlscy4KKysjCisrIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9m IHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorKyMgYWxvbmcgd2l0aCBHTlUgTGlidG9v bDsgc2VlIHRoZSBmaWxlIENPUFlJTkcuICBJZiBub3QsIGEgY29weQorKyMgY2FuIGJlIGRvd25s b2FkZWQgZnJvbSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvZ3BsLmh0bWwsCisrIyBvciBv YnRhaW5lZCBieSB3cml0aW5nIHRvIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4s CisrIyA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BIDAyMTEwLTEz MDEsIFVTQS4KKysKKysjIFVzYWdlOiAkcHJvZ25hbWUgW09QVElPTl0uLi4gW01PREUtQVJHXS4u LgorKyMKKysjIFByb3ZpZGUgZ2VuZXJhbGl6ZWQgbGlicmFyeS1idWlsZGluZyBzdXBwb3J0IHNl cnZpY2VzLgorKyMKKysjICAgICAtLWNvbmZpZyAgICAgICAgICAgICBzaG93IGFsbCBjb25maWd1 cmF0aW9uIHZhcmlhYmxlcworKyMgICAgIC0tZGVidWcgICAgICAgICAgICAgIGVuYWJsZSB2ZXJi b3NlIHNoZWxsIHRyYWNpbmcKKysjIC1uLCAtLWRyeS1ydW4gICAgICAgICAgICBkaXNwbGF5IGNv bW1hbmRzIHdpdGhvdXQgbW9kaWZ5aW5nIGFueSBmaWxlcworKyMgICAgIC0tZmVhdHVyZXMgICAg ICAgICAgIGRpc3BsYXkgYmFzaWMgY29uZmlndXJhdGlvbiBpbmZvcm1hdGlvbiBhbmQgZXhpdAor KyMgICAgIC0tbW9kZT1NT0RFICAgICAgICAgIHVzZSBvcGVyYXRpb24gbW9kZSBNT0RFCisrIyAg ICAgLS1wcmVzZXJ2ZS1kdXAtZGVwcyAgZG9uJ3QgcmVtb3ZlIGR1cGxpY2F0ZSBkZXBlbmRlbmN5 IGxpYnJhcmllcworKyMgICAgIC0tcXVpZXQsIC0tc2lsZW50ICAgIGRvbid0IHByaW50IGluZm9y bWF0aW9uYWwgbWVzc2FnZXMKKysjICAgICAtLXRhZz1UQUcgICAgICAgICAgICB1c2UgY29uZmln dXJhdGlvbiB2YXJpYWJsZXMgZnJvbSB0YWcgVEFHCisrIyAtdiwgLS12ZXJib3NlICAgICAgICAg ICAgcHJpbnQgaW5mb3JtYXRpb25hbCBtZXNzYWdlcyAoZGVmYXVsdCkKKysjICAgICAtLXZlcnNp b24gICAgICAgICAgICBwcmludCB2ZXJzaW9uIGluZm9ybWF0aW9uCisrIyAtaCwgLS1oZWxwICAg ICAgICAgICAgICAgcHJpbnQgc2hvcnQgb3IgbG9uZyBoZWxwIG1lc3NhZ2UKKysjCisrIyBNT0RF IG11c3QgYmUgb25lIG9mIHRoZSBmb2xsb3dpbmc6CisrIworKyMgICAgICAgY2xlYW4gICAgICAg ICAgICAgIHJlbW92ZSBmaWxlcyBmcm9tIHRoZSBidWlsZCBkaXJlY3RvcnkKKysjICAgICAgIGNv bXBpbGUgICAgICAgICAgICBjb21waWxlIGEgc291cmNlIGZpbGUgaW50byBhIGxpYnRvb2wgb2Jq ZWN0CisrIyAgICAgICBleGVjdXRlICAgICAgICAgICAgYXV0b21hdGljYWxseSBzZXQgbGlicmFy eSBwYXRoLCB0aGVuIHJ1biBhIHByb2dyYW0KKysjICAgICAgIGZpbmlzaCAgICAgICAgICAgICBj b21wbGV0ZSB0aGUgaW5zdGFsbGF0aW9uIG9mIGxpYnRvb2wgbGlicmFyaWVzCisrIyAgICAgICBp bnN0YWxsICAgICAgICAgICAgaW5zdGFsbCBsaWJyYXJpZXMgb3IgZXhlY3V0YWJsZXMKKysjICAg ICAgIGxpbmsgICAgICAgICAgICAgICBjcmVhdGUgYSBsaWJyYXJ5IG9yIGFuIGV4ZWN1dGFibGUK KysjICAgICAgIHVuaW5zdGFsbCAgICAgICAgICByZW1vdmUgbGlicmFyaWVzIGZyb20gYW4gaW5z dGFsbGVkIGRpcmVjdG9yeQorKyMKKysjIE1PREUtQVJHUyB2YXJ5IGRlcGVuZGluZyBvbiB0aGUg TU9ERS4KKysjIFRyeSBgJHByb2duYW1lIC0taGVscCAtLW1vZGU9TU9ERScgZm9yIGEgbW9yZSBk ZXRhaWxlZCBkZXNjcmlwdGlvbiBvZiBNT0RFLgorKyMKKysjIFdoZW4gcmVwb3J0aW5nIGEgYnVn LCBwbGVhc2UgZGVzY3JpYmUgYSB0ZXN0IGNhc2UgdG8gcmVwcm9kdWNlIGl0IGFuZAorKyMgaW5j bHVkZSB0aGUgZm9sbG93aW5nIGluZm9ybWF0aW9uOgorKyMKKysjICAgICAgIGhvc3QtdHJpcGxl dDoJJGhvc3QKKysjICAgICAgIHNoZWxsOgkJJFNIRUxMCisrIyAgICAgICBjb21waWxlcjoJCSRM VENDCisrIyAgICAgICBjb21waWxlciBmbGFnczoJCSRMVENGTEFHUworKyMgICAgICAgbGlua2Vy OgkJJExEIChnbnU/ICR3aXRoX2dudV9sZCkKKysjICAgICAgICRwcm9nbmFtZToJCShHTlUgbGli dG9vbCkgMi4yLjZiCisrIyAgICAgICBhdXRvbWFrZToJCSRhdXRvbWFrZV92ZXJzaW9uCisrIyAg ICAgICBhdXRvY29uZjoJCSRhdXRvY29uZl92ZXJzaW9uCisrIworKyMgUmVwb3J0IGJ1Z3MgdG8g PGJ1Zy1saWJ0b29sQGdudS5vcmc+LgorKworK1BST0dSQU09bHRtYWluLnNoCisrUEFDS0FHRT1s aWJ0b29sCisrVkVSU0lPTj0yLjIuNmIKKytUSU1FU1RBTVA9IiIKKytwYWNrYWdlX3JldmlzaW9u PTEuMzAxNworKworKyMgQmUgQm91cm5lIGNvbXBhdGlibGUKKytpZiB0ZXN0IC1uICIke1pTSF9W RVJTSU9OK3NldH0iICYmIChlbXVsYXRlIHNoKSA+L2Rldi9udWxsIDI+JjE7IHRoZW4KKysgIGVt dWxhdGUgc2gKKysgIE5VTExDTUQ9OgorKyAgIyBac2ggMy54IGFuZCA0LnggcGVyZm9ybXMgd29y ZCBzcGxpdHRpbmcgb24gJHsxKyIkQCJ9LCB3aGljaAorKyAgIyBpcyBjb250cmFyeSB0byBvdXIg dXNhZ2UuICBEaXNhYmxlIHRoaXMgZmVhdHVyZS4KKysgIGFsaWFzIC1nICckezErIiRAIn0nPSci JEAiJworKyAgc2V0b3B0IE5PX0dMT0JfU1VCU1QKKytlbHNlCisrICBjYXNlIGAoc2V0IC1vKSAy Pi9kZXYvbnVsbGAgaW4gKnBvc2l4Kikgc2V0IC1vIHBvc2l4OzsgZXNhYworK2ZpCisrQklOX1NI PXhwZzQ7IGV4cG9ydCBCSU5fU0ggIyBmb3IgVHJ1NjQKKytEVUFMQ0FTRT0xOyBleHBvcnQgRFVB TENBU0UgIyBmb3IgTUtTIHNoCisrCisrIyBOTFMgbnVpc2FuY2VzOiBXZSBzYXZlIHRoZSBvbGQg dmFsdWVzIHRvIHJlc3RvcmUgZHVyaW5nIGV4ZWN1dGUgbW9kZS4KKysjIE9ubHkgc2V0IExBTkcg YW5kIExDX0FMTCB0byBDIGlmIGFscmVhZHkgc2V0LgorKyMgVGhlc2UgbXVzdCBub3QgYmUgc2V0 IHVuY29uZGl0aW9uYWxseSBiZWNhdXNlIG5vdCBhbGwgc3lzdGVtcyB1bmRlcnN0YW5kCisrIyBl LmcuIExBTkc9QyAobm90YWJseSBTQ08pLgorK2x0X3VzZXJfbG9jYWxlPQorK2x0X3NhZmVfbG9j YWxlPQorK2ZvciBsdF92YXIgaW4gTEFORyBMQU5HVUFHRSBMQ19BTEwgTENfQ1RZUEUgTENfQ09M TEFURSBMQ19NRVNTQUdFUworK2RvCisrICBldmFsICJpZiB0ZXN0IFwiXCR7JGx0X3ZhcitzZXR9 XCIgPSBzZXQ7IHRoZW4KKysgICAgICAgICAgc2F2ZV8kbHRfdmFyPVwkJGx0X3ZhcgorKyAgICAg ICAgICAkbHRfdmFyPUMKKysJICBleHBvcnQgJGx0X3ZhcgorKwkgIGx0X3VzZXJfbG9jYWxlPVwi JGx0X3Zhcj1cXFwkc2F2ZV9cJGx0X3ZhcjsgXCRsdF91c2VyX2xvY2FsZVwiCisrCSAgbHRfc2Fm ZV9sb2NhbGU9XCIkbHRfdmFyPUM7IFwkbHRfc2FmZV9sb2NhbGVcIgorKwlmaSIKKytkb25lCisr CisrJGx0X3Vuc2V0IENEUEFUSAorKworKworKworKworKworKzogJHtDUD0iY3AgLWYifQorKzog JHtFQ0hPPSJlY2hvIn0KKys6ICR7RUdSRVA9Ii9iaW4vZ3JlcCAtRSJ9CisrOiAke0ZHUkVQPSIv YmluL2dyZXAgLUYifQorKzogJHtHUkVQPSIvYmluL2dyZXAifQorKzogJHtMTl9TPSJsbiAtcyJ9 CisrOiAke01BS0U9Im1ha2UifQorKzogJHtNS0RJUj0ibWtkaXIifQorKzogJHtNVj0ibXYgLWYi fQorKzogJHtSTT0icm0gLWYifQorKzogJHtTRUQ9Ii9iaW4vc2VkIn0KKys6ICR7U0hFTEw9IiR7 Q09ORklHX1NIRUxMLS9iaW4vc2h9In0KKys6ICR7WHNlZD0iJFNFRCAtZSAxcy9eWC8vIn0KKysK KysjIEdsb2JhbCB2YXJpYWJsZXM6CisrRVhJVF9TVUNDRVNTPTAKKytFWElUX0ZBSUxVUkU9MQor K0VYSVRfTUlTTUFUQ0g9NjMgICMgJD8gPSA2MyBpcyB1c2VkIHRvIGluZGljYXRlIHZlcnNpb24g bWlzbWF0Y2ggdG8gbWlzc2luZy4KKytFWElUX1NLSVA9NzcJICAjICQ/ID0gNzcgaXMgdXNlZCB0 byBpbmRpY2F0ZSBhIHNraXBwZWQgdGVzdCB0byBhdXRvbWFrZS4KKysKKytleGl0X3N0YXR1cz0k RVhJVF9TVUNDRVNTCisrCisrIyBNYWtlIHN1cmUgSUZTIGhhcyBhIHNlbnNpYmxlIGRlZmF1bHQK KytsdF9ubD0nCisrJworK0lGUz0iIAkkbHRfbmwiCisrCisrZGlybmFtZT0icywvW14vXSokLCwi CisrYmFzZW5hbWU9InMsXi4qLywsIgorKworKyMgZnVuY19kaXJuYW1lX2FuZF9iYXNlbmFtZSBm aWxlIGFwcGVuZCBub25kaXJfcmVwbGFjZW1lbnQKKysjIHBlcmZvcm0gZnVuY19iYXNlbmFtZSBh bmQgZnVuY19kaXJuYW1lIGluIGEgc2luZ2xlIGZ1bmN0aW9uCisrIyBjYWxsOgorKyMgICBkaXJu YW1lOiAgQ29tcHV0ZSB0aGUgZGlybmFtZSBvZiBGSUxFLiAgSWYgbm9uZW1wdHksCisrIyAgICAg ICAgICAgICBhZGQgQVBQRU5EIHRvIHRoZSByZXN1bHQsIG90aGVyd2lzZSBzZXQgcmVzdWx0Cisr IyAgICAgICAgICAgICB0byBOT05ESVJfUkVQTEFDRU1FTlQuCisrIyAgICAgICAgICAgICB2YWx1 ZSByZXR1cm5lZCBpbiAiJGZ1bmNfZGlybmFtZV9yZXN1bHQiCisrIyAgIGJhc2VuYW1lOiBDb21w dXRlIGZpbGVuYW1lIG9mIEZJTEUuCisrIyAgICAgICAgICAgICB2YWx1ZSByZXR1bmVkIGluICIk ZnVuY19iYXNlbmFtZV9yZXN1bHQiCisrIyBJbXBsZW1lbnRhdGlvbiBtdXN0IGJlIGtlcHQgc3lu Y2hyb25pemVkIHdpdGggZnVuY19kaXJuYW1lCisrIyBhbmQgZnVuY19iYXNlbmFtZS4gRm9yIGVm ZmljaWVuY3ksIHdlIGRvIG5vdCBkZWxlZ2F0ZSB0bworKyMgdGhvc2UgZnVuY3Rpb25zIGJ1dCBp bnN0ZWFkIGR1cGxpY2F0ZSB0aGUgZnVuY3Rpb25hbGl0eSBoZXJlLgorK2Z1bmNfZGlybmFtZV9h bmRfYmFzZW5hbWUgKCkKKyt7CisrICAjIEV4dHJhY3Qgc3ViZGlyZWN0b3J5IGZyb20gdGhlIGFy Z3VtZW50LgorKyAgZnVuY19kaXJuYW1lX3Jlc3VsdD1gJEVDSE8gIlgkezF9IiB8ICRYc2VkIC1l ICIkZGlybmFtZSJgCisrICBpZiB0ZXN0ICJYJGZ1bmNfZGlybmFtZV9yZXN1bHQiID0gIlgkezF9 IjsgdGhlbgorKyAgICBmdW5jX2Rpcm5hbWVfcmVzdWx0PSIkezN9IgorKyAgZWxzZQorKyAgICBm dW5jX2Rpcm5hbWVfcmVzdWx0PSIkZnVuY19kaXJuYW1lX3Jlc3VsdCR7Mn0iCisrICBmaQorKyAg ZnVuY19iYXNlbmFtZV9yZXN1bHQ9YCRFQ0hPICJYJHsxfSIgfCAkWHNlZCAtZSAiJGJhc2VuYW1l ImAKKyt9CisrCisrIyBHZW5lcmF0ZWQgc2hlbGwgZnVuY3Rpb25zIGluc2VydGVkIGhlcmUuCisr CisrIyBXb3JrIGFyb3VuZCBiYWNrd2FyZCBjb21wYXRpYmlsaXR5IGlzc3VlIG9uIElSSVggNi41 LiBPbiBJUklYIDYuNCssIHNoCisrIyBpcyBrc2ggYnV0IHdoZW4gdGhlIHNoZWxsIGlzIGludm9r ZWQgYXMgInNoIiBhbmQgdGhlIGN1cnJlbnQgdmFsdWUgb2YKKysjIHRoZSBfWFBHIGVudmlyb25t ZW50IHZhcmlhYmxlIGlzIG5vdCBlcXVhbCB0byAxIChvbmUpLCB0aGUgc3BlY2lhbAorKyMgcG9z aXRpb25hbCBwYXJhbWV0ZXIgJDAsIHdpdGhpbiBhIGZ1bmN0aW9uIGNhbGwsIGlzIHRoZSBuYW1l IG9mIHRoZQorKyMgZnVuY3Rpb24uCisrcHJvZ3BhdGg9IiQwIgorKworKyMgVGhlIG5hbWUgb2Yg dGhpcyBwcm9ncmFtOgorKyMgSW4gdGhlIHVubGlrZWx5IGV2ZW50ICRwcm9nbmFtZSBiZWdhbiB3 aXRoIGEgJy0nLCBpdCB3b3VsZCBwbGF5IGhhdm9jIHdpdGgKKysjIGZ1bmNfZWNobyAoaW1hZ2lu ZSBwcm9nbmFtZT0tbiksIHNvIHdlIHByZXBlbmQgLi8gaW4gdGhhdCBjYXNlOgorK2Z1bmNfZGly bmFtZV9hbmRfYmFzZW5hbWUgIiRwcm9ncGF0aCIKKytwcm9nbmFtZT0kZnVuY19iYXNlbmFtZV9y ZXN1bHQKKytjYXNlICRwcm9nbmFtZSBpbgorKyAgLSopIHByb2duYW1lPS4vJHByb2duYW1lIDs7 CisrZXNhYworKworKyMgTWFrZSBzdXJlIHdlIGhhdmUgYW4gYWJzb2x1dGUgcGF0aCBmb3IgcmVl eGVjdXRpb246CisrY2FzZSAkcHJvZ3BhdGggaW4KKysgIFtcXC9dKnxbQS1aYS16XTpcXCopIDs7 CisrICAqW1xcL10qKQorKyAgICAgcHJvZ2Rpcj0kZnVuY19kaXJuYW1lX3Jlc3VsdAorKyAgICAg cHJvZ2Rpcj1gY2QgIiRwcm9nZGlyIiAmJiBwd2RgCisrICAgICBwcm9ncGF0aD0iJHByb2dkaXIv JHByb2duYW1lIgorKyAgICAgOzsKKysgICopCisrICAgICBzYXZlX0lGUz0iJElGUyIKKysgICAg IElGUz06CisrICAgICBmb3IgcHJvZ2RpciBpbiAkUEFUSDsgZG8KKysgICAgICAgSUZTPSIkc2F2 ZV9JRlMiCisrICAgICAgIHRlc3QgLXggIiRwcm9nZGlyLyRwcm9nbmFtZSIgJiYgYnJlYWsKKysg ICAgIGRvbmUKKysgICAgIElGUz0iJHNhdmVfSUZTIgorKyAgICAgdGVzdCAtbiAiJHByb2dkaXIi IHx8IHByb2dkaXI9YHB3ZGAKKysgICAgIHByb2dwYXRoPSIkcHJvZ2Rpci8kcHJvZ25hbWUiCisr ICAgICA7OworK2VzYWMKKysKKysjIFNlZCBzdWJzdGl0dXRpb24gdGhhdCBoZWxwcyB1cyBkbyBy b2J1c3QgcXVvdGluZy4gIEl0IGJhY2tzbGFzaGlmaWVzCisrIyBtZXRhY2hhcmFjdGVycyB0aGF0 IGFyZSBzdGlsbCBhY3RpdmUgd2l0aGluIGRvdWJsZS1xdW90ZWQgc3RyaW5ncy4KKytYc2VkPSIk e1NFRH0iJyAtZSAxcy9eWC8vJworK3NlZF9xdW90ZV9zdWJzdD0ncy9cKFtgIiRcXF1cKS9cXFwx L2cnCisrCisrIyBTYW1lIGFzIGFib3ZlLCBidXQgZG8gbm90IHF1b3RlIHZhcmlhYmxlIHJlZmVy ZW5jZXMuCisrZG91YmxlX3F1b3RlX3N1YnN0PSdzL1woWyJgXFxdXCkvXFxcMS9nJworKworKyMg UmUtYFwnIHBhcmFtZXRlciBleHBhbnNpb25zIGluIG91dHB1dCBvZiBkb3VibGVfcXVvdGVfc3Vi c3QgdGhhdCB3ZXJlCisrIyBgXCctZWQgaW4gaW5wdXQgdG8gdGhlIHNhbWUuICBJZiBhbiBvZGQg bnVtYmVyIG9mIGBcJyBwcmVjZWRlZCBhICckJworKyMgaW4gaW5wdXQgdG8gZG91YmxlX3F1b3Rl X3N1YnN0LCB0aGF0ICckJyB3YXMgcHJvdGVjdGVkIGZyb20gZXhwYW5zaW9uLgorKyMgU2luY2Ug ZWFjaCBpbnB1dCBgXCcgaXMgbm93IHR3byBgXCdzLCBsb29rIGZvciBhbnkgbnVtYmVyIG9mIHJ1 bnMgb2YKKysjIGZvdXIgYFwncyBmb2xsb3dlZCBieSB0d28gYFwncyBhbmQgdGhlbiBhICckJy4g IGBcJyB0aGF0ICckJy4KKyticz0nXFwnCisrYnMyPSdcXFxcJworK2JzND0nXFxcXFxcXFwnCisr ZG9sbGFyPSdcJCcKKytzZWRfZG91YmxlX2JhY2tzbGFzaD0iXAorKyAgcy8kYnM0LyZcXAorKy9n CisrICBzL14kYnMyJGRvbGxhci8kYnMmLworKyAgcy9cXChbXiRic11cXCkkYnMyJGRvbGxhci9c XDEkYnMyJGJzJGRvbGxhci9nCisrICBzL1xuLy9nIgorKworKyMgU3RhbmRhcmQgb3B0aW9uczoK KytvcHRfZHJ5X3J1bj1mYWxzZQorK29wdF9oZWxwPWZhbHNlCisrb3B0X3F1aWV0PWZhbHNlCisr b3B0X3ZlcmJvc2U9ZmFsc2UKKytvcHRfd2FybmluZz06CisrCisrIyBmdW5jX2VjaG8gYXJnLi4u CisrIyBFY2hvIHByb2dyYW0gbmFtZSBwcmVmaXhlZCBtZXNzYWdlLCBhbG9uZyB3aXRoIHRoZSBj dXJyZW50IG1vZGUKKysjIG5hbWUgaWYgaXQgaGFzIGJlZW4gc2V0IHlldC4KKytmdW5jX2VjaG8g KCkKKyt7CisrICAgICRFQ0hPICIkcHJvZ25hbWUke21vZGUrOiB9JG1vZGU6ICQqIgorK30KKysK KysjIGZ1bmNfdmVyYm9zZSBhcmcuLi4KKysjIEVjaG8gcHJvZ3JhbSBuYW1lIHByZWZpeGVkIG1l c3NhZ2UgaW4gdmVyYm9zZSBtb2RlIG9ubHkuCisrZnVuY192ZXJib3NlICgpCisreworKyAgICAk b3B0X3ZlcmJvc2UgJiYgZnVuY19lY2hvICR7MSsiJEAifQorKworKyAgICAjIEEgYnVnIGluIGJh c2ggaGFsdHMgdGhlIHNjcmlwdCBpZiB0aGUgbGFzdCBsaW5lIG9mIGEgZnVuY3Rpb24KKysgICAg IyBmYWlscyB3aGVuIHNldCAtZSBpcyBpbiBmb3JjZSwgc28gd2UgbmVlZCBhbm90aGVyIGNvbW1h bmQgdG8KKysgICAgIyB3b3JrIGFyb3VuZCB0aGF0OgorKyAgICA6CisrfQorKworKyMgZnVuY19l cnJvciBhcmcuLi4KKysjIEVjaG8gcHJvZ3JhbSBuYW1lIHByZWZpeGVkIG1lc3NhZ2UgdG8gc3Rh bmRhcmQgZXJyb3IuCisrZnVuY19lcnJvciAoKQorK3sKKysgICAgJEVDSE8gIiRwcm9nbmFtZSR7 bW9kZSs6IH0kbW9kZTogIiR7MSsiJEAifSAxPiYyCisrfQorKworKyMgZnVuY193YXJuaW5nIGFy Zy4uLgorKyMgRWNobyBwcm9ncmFtIG5hbWUgcHJlZml4ZWQgd2FybmluZyBtZXNzYWdlIHRvIHN0 YW5kYXJkIGVycm9yLgorK2Z1bmNfd2FybmluZyAoKQorK3sKKysgICAgJG9wdF93YXJuaW5nICYm ICRFQ0hPICIkcHJvZ25hbWUke21vZGUrOiB9JG1vZGU6IHdhcm5pbmc6ICIkezErIiRAIn0gMT4m MgorKworKyAgICAjIGJhc2ggYnVnIGFnYWluOgorKyAgICA6CisrfQorKworKyMgZnVuY19mYXRh bF9lcnJvciBhcmcuLi4KKysjIEVjaG8gcHJvZ3JhbSBuYW1lIHByZWZpeGVkIG1lc3NhZ2UgdG8g c3RhbmRhcmQgZXJyb3IsIGFuZCBleGl0LgorK2Z1bmNfZmF0YWxfZXJyb3IgKCkKKyt7CisrICAg IGZ1bmNfZXJyb3IgJHsxKyIkQCJ9CisrICAgIGV4aXQgJEVYSVRfRkFJTFVSRQorK30KKysKKysj IGZ1bmNfZmF0YWxfaGVscCBhcmcuLi4KKysjIEVjaG8gcHJvZ3JhbSBuYW1lIHByZWZpeGVkIG1l c3NhZ2UgdG8gc3RhbmRhcmQgZXJyb3IsIGZvbGxvd2VkIGJ5CisrIyBhIGhlbHAgaGludCwgYW5k IGV4aXQuCisrZnVuY19mYXRhbF9oZWxwICgpCisreworKyAgICBmdW5jX2Vycm9yICR7MSsiJEAi fQorKyAgICBmdW5jX2ZhdGFsX2Vycm9yICIkaGVscCIKKyt9CisraGVscD0iVHJ5IFxgJHByb2du YW1lIC0taGVscCcgZm9yIG1vcmUgaW5mb3JtYXRpb24uIiAgIyMgZGVmYXVsdAorKworKworKyMg ZnVuY19ncmVwIGV4cHJlc3Npb24gZmlsZW5hbWUKKysjIENoZWNrIHdoZXRoZXIgRVhQUkVTU0lP TiBtYXRjaGVzIGFueSBsaW5lIG9mIEZJTEVOQU1FLCB3aXRob3V0IG91dHB1dC4KKytmdW5jX2dy ZXAgKCkKKyt7CisrICAgICRHUkVQICIkMSIgIiQyIiA+L2Rldi9udWxsIDI+JjEKKyt9CisrCisr CisrIyBmdW5jX21rZGlyX3AgZGlyZWN0b3J5LXBhdGgKKysjIE1ha2Ugc3VyZSB0aGUgZW50aXJl IHBhdGggdG8gRElSRUNUT1JZLVBBVEggaXMgYXZhaWxhYmxlLgorK2Z1bmNfbWtkaXJfcCAoKQor K3sKKysgICAgbXlfZGlyZWN0b3J5X3BhdGg9IiQxIgorKyAgICBteV9kaXJfbGlzdD0KKysKKysg ICAgaWYgdGVzdCAtbiAiJG15X2RpcmVjdG9yeV9wYXRoIiAmJiB0ZXN0ICIkb3B0X2RyeV9ydW4i ICE9ICI6IjsgdGhlbgorKworKyAgICAgICMgUHJvdGVjdCBkaXJlY3RvcnkgbmFtZXMgc3RhcnRp bmcgd2l0aCBgLScKKysgICAgICBjYXNlICRteV9kaXJlY3RvcnlfcGF0aCBpbgorKyAgICAgICAg LSopIG15X2RpcmVjdG9yeV9wYXRoPSIuLyRteV9kaXJlY3RvcnlfcGF0aCIgOzsKKysgICAgICBl c2FjCisrCisrICAgICAgIyBXaGlsZSBzb21lIHBvcnRpb24gb2YgRElSIGRvZXMgbm90IHlldCBl eGlzdC4uLgorKyAgICAgIHdoaWxlIHRlc3QgISAtZCAiJG15X2RpcmVjdG9yeV9wYXRoIjsgZG8K KysgICAgICAgICMgLi4ubWFrZSBhIGxpc3QgaW4gdG9wbW9zdCBmaXJzdCBvcmRlci4gIFVzZSBh IGNvbG9uIGRlbGltaXRlZAorKwkjIGxpc3QgaW5jYXNlIHNvbWUgcG9ydGlvbiBvZiBwYXRoIGNv bnRhaW5zIHdoaXRlc3BhY2UuCisrICAgICAgICBteV9kaXJfbGlzdD0iJG15X2RpcmVjdG9yeV9w YXRoOiRteV9kaXJfbGlzdCIKKysKKysgICAgICAgICMgSWYgdGhlIGxhc3QgcG9ydGlvbiBhZGRl ZCBoYXMgbm8gc2xhc2ggaW4gaXQsIHRoZSBsaXN0IGlzIGRvbmUKKysgICAgICAgIGNhc2UgJG15 X2RpcmVjdG9yeV9wYXRoIGluICovKikgOzsgKikgYnJlYWsgOzsgZXNhYworKworKyAgICAgICAg IyAuLi5vdGhlcndpc2UgdGhyb3cgYXdheSB0aGUgY2hpbGQgZGlyZWN0b3J5IGFuZCBsb29wCisr ICAgICAgICBteV9kaXJlY3RvcnlfcGF0aD1gJEVDSE8gIlgkbXlfZGlyZWN0b3J5X3BhdGgiIHwg JFhzZWQgLWUgIiRkaXJuYW1lImAKKysgICAgICBkb25lCisrICAgICAgbXlfZGlyX2xpc3Q9YCRF Q0hPICJYJG15X2Rpcl9saXN0IiB8ICRYc2VkIC1lICdzLDoqJCwsJ2AKKysKKysgICAgICBzYXZl X21rZGlyX3BfSUZTPSIkSUZTIjsgSUZTPSc6JworKyAgICAgIGZvciBteV9kaXIgaW4gJG15X2Rp cl9saXN0OyBkbworKwlJRlM9IiRzYXZlX21rZGlyX3BfSUZTIgorKyAgICAgICAgIyBta2RpciBj YW4gZmFpbCB3aXRoIGEgYEZpbGUgZXhpc3QnIGVycm9yIGlmIHR3byBwcm9jZXNzZXMKKysgICAg ICAgICMgdHJ5IHRvIGNyZWF0ZSBvbmUgb2YgdGhlIGRpcmVjdG9yaWVzIGNvbmN1cnJlbnRseS4g IERvbid0CisrICAgICAgICAjIHN0b3AgaW4gdGhhdCBjYXNlIQorKyAgICAgICAgJE1LRElSICIk bXlfZGlyIiAyPi9kZXYvbnVsbCB8fCA6CisrICAgICAgZG9uZQorKyAgICAgIElGUz0iJHNhdmVf bWtkaXJfcF9JRlMiCisrCisrICAgICAgIyBCYWlsIG91dCBpZiB3ZSAob3Igc29tZSBvdGhlciBw cm9jZXNzKSBmYWlsZWQgdG8gY3JlYXRlIGEgZGlyZWN0b3J5LgorKyAgICAgIHRlc3QgLWQgIiRt eV9kaXJlY3RvcnlfcGF0aCIgfHwgXAorKyAgICAgICAgZnVuY19mYXRhbF9lcnJvciAiRmFpbGVk IHRvIGNyZWF0ZSBcYCQxJyIKKysgICAgZmkKKyt9CisrCisrCisrIyBmdW5jX21rdGVtcGRpciBb c3RyaW5nXQorKyMgTWFrZSBhIHRlbXBvcmFyeSBkaXJlY3RvcnkgdGhhdCB3b24ndCBjbGFzaCB3 aXRoIG90aGVyIHJ1bm5pbmcKKysjIGxpYnRvb2wgcHJvY2Vzc2VzLCBhbmQgYXZvaWRzIHJhY2Ug Y29uZGl0aW9ucyBpZiBwb3NzaWJsZS4gIElmCisrIyBnaXZlbiwgU1RSSU5HIGlzIHRoZSBiYXNl bmFtZSBmb3IgdGhhdCBkaXJlY3RvcnkuCisrZnVuY19ta3RlbXBkaXIgKCkKKyt7CisrICAgIG15 X3RlbXBsYXRlPSIke1RNUERJUi0vdG1wfS8kezEtJHByb2duYW1lfSIKKysKKysgICAgaWYgdGVz dCAiJG9wdF9kcnlfcnVuIiA9ICI6IjsgdGhlbgorKyAgICAgICMgUmV0dXJuIGEgZGlyZWN0b3J5 IG5hbWUsIGJ1dCBkb24ndCBjcmVhdGUgaXQgaW4gZHJ5LXJ1biBtb2RlCisrICAgICAgbXlfdG1w ZGlyPSIke215X3RlbXBsYXRlfS0kJCIKKysgICAgZWxzZQorKworKyAgICAgICMgSWYgbWt0ZW1w IHdvcmtzLCB1c2UgdGhhdCBmaXJzdCBhbmQgZm9yZW1vc3QKKysgICAgICBteV90bXBkaXI9YG1r dGVtcCAtZCAiJHtteV90ZW1wbGF0ZX0tWFhYWFhYWFgiIDI+L2Rldi9udWxsYAorKworKyAgICAg IGlmIHRlc3QgISAtZCAiJG15X3RtcGRpciI7IHRoZW4KKysgICAgICAgICMgRmFpbGluZyB0aGF0 LCBhdCBsZWFzdCB0cnkgYW5kIHVzZSAkUkFORE9NIHRvIGF2b2lkIGEgcmFjZQorKyAgICAgICAg bXlfdG1wZGlyPSIke215X3RlbXBsYXRlfS0ke1JBTkRPTS0wfSQkIgorKworKyAgICAgICAgc2F2 ZV9ta3RlbXBkaXJfdW1hc2s9YHVtYXNrYAorKyAgICAgICAgdW1hc2sgMDA3NworKyAgICAgICAg JE1LRElSICIkbXlfdG1wZGlyIgorKyAgICAgICAgdW1hc2sgJHNhdmVfbWt0ZW1wZGlyX3VtYXNr CisrICAgICAgZmkKKysKKysgICAgICAjIElmIHdlJ3JlIG5vdCBpbiBkcnktcnVuIG1vZGUsIGJv bWIgb3V0IG9uIGZhaWx1cmUKKysgICAgICB0ZXN0IC1kICIkbXlfdG1wZGlyIiB8fCBcCisrICAg ICAgICBmdW5jX2ZhdGFsX2Vycm9yICJjYW5ub3QgY3JlYXRlIHRlbXBvcmFyeSBkaXJlY3Rvcnkg XGAkbXlfdG1wZGlyJyIKKysgICAgZmkKKysKKysgICAgJEVDSE8gIlgkbXlfdG1wZGlyIiB8ICRY c2VkCisrfQorKworKworKyMgZnVuY19xdW90ZV9mb3JfZXZhbCBhcmcKKysjIEFlc3RoZXRpY2Fs bHkgcXVvdGUgQVJHIHRvIGJlIGV2YWxlZCBsYXRlci4KKysjIFRoaXMgZnVuY3Rpb24gcmV0dXJu cyB0d28gdmFsdWVzOiBGVU5DX1FVT1RFX0ZPUl9FVkFMX1JFU1VMVAorKyMgaXMgZG91YmxlLXF1 b3RlZCwgc3VpdGFibGUgZm9yIGEgc3Vic2VxdWVudCBldmFsLCB3aGVyZWFzCisrIyBGVU5DX1FV T1RFX0ZPUl9FVkFMX1VOUVVPVEVEX1JFU1VMVCBoYXMgbWVyZWx5IGFsbCBjaGFyYWN0ZXJzCisr IyB3aGljaCBhcmUgc3RpbGwgYWN0aXZlIHdpdGhpbiBkb3VibGUgcXVvdGVzIGJhY2tzbGFzaGlm aWVkLgorK2Z1bmNfcXVvdGVfZm9yX2V2YWwgKCkKKyt7CisrICAgIGNhc2UgJDEgaW4KKysgICAg ICAqW1xcXGBcIlwkXSopCisrCWZ1bmNfcXVvdGVfZm9yX2V2YWxfdW5xdW90ZWRfcmVzdWx0PWAk RUNITyAiWCQxIiB8ICRYc2VkIC1lICIkc2VkX3F1b3RlX3N1YnN0ImAgOzsKKysgICAgICAqKQor KyAgICAgICAgZnVuY19xdW90ZV9mb3JfZXZhbF91bnF1b3RlZF9yZXN1bHQ9IiQxIiA7OworKyAg ICBlc2FjCisrCisrICAgIGNhc2UgJGZ1bmNfcXVvdGVfZm9yX2V2YWxfdW5xdW90ZWRfcmVzdWx0 IGluCisrICAgICAgIyBEb3VibGUtcXVvdGUgYXJncyBjb250YWluaW5nIHNoZWxsIG1ldGFjaGFy YWN0ZXJzIHRvIGRlbGF5CisrICAgICAgIyB3b3JkIHNwbGl0dGluZywgY29tbWFuZCBzdWJzdGl0 dXRpb24gYW5kIGFuZCB2YXJpYWJsZQorKyAgICAgICMgZXhwYW5zaW9uIGZvciBhIHN1YnNlcXVl bnQgZXZhbC4KKysgICAgICAjIE1hbnkgQm91cm5lIHNoZWxscyBjYW5ub3QgaGFuZGxlIGNsb3Nl IGJyYWNrZXRzIGNvcnJlY3RseQorKyAgICAgICMgaW4gc2NhbiBzZXRzLCBzbyB3ZSBzcGVjaWZ5 IGl0IHNlcGFyYXRlbHkuCisrICAgICAgKltcW1x+XCNcXlwmXCpcKFwpXHtcfVx8XDtcPFw+XD9c J1wgXAldKnwqXSp8IiIpCisrICAgICAgICBmdW5jX3F1b3RlX2Zvcl9ldmFsX3Jlc3VsdD0iXCIk ZnVuY19xdW90ZV9mb3JfZXZhbF91bnF1b3RlZF9yZXN1bHRcIiIKKysgICAgICAgIDs7CisrICAg ICAgKikKKysgICAgICAgIGZ1bmNfcXVvdGVfZm9yX2V2YWxfcmVzdWx0PSIkZnVuY19xdW90ZV9m b3JfZXZhbF91bnF1b3RlZF9yZXN1bHQiCisrICAgIGVzYWMKKyt9CisrCisrCisrIyBmdW5jX3F1 b3RlX2Zvcl9leHBhbmQgYXJnCisrIyBBZXN0aGV0aWNhbGx5IHF1b3RlIEFSRyB0byBiZSBldmFs ZWQgbGF0ZXI7IHNhbWUgYXMgYWJvdmUsCisrIyBidXQgZG8gbm90IHF1b3RlIHZhcmlhYmxlIHJl ZmVyZW5jZXMuCisrZnVuY19xdW90ZV9mb3JfZXhwYW5kICgpCisreworKyAgICBjYXNlICQxIGlu CisrICAgICAgKltcXFxgXCJdKikKKysJbXlfYXJnPWAkRUNITyAiWCQxIiB8ICRYc2VkIFwKKysJ ICAgIC1lICIkZG91YmxlX3F1b3RlX3N1YnN0IiAtZSAiJHNlZF9kb3VibGVfYmFja3NsYXNoImAg OzsKKysgICAgICAqKQorKyAgICAgICAgbXlfYXJnPSIkMSIgOzsKKysgICAgZXNhYworKworKyAg ICBjYXNlICRteV9hcmcgaW4KKysgICAgICAjIERvdWJsZS1xdW90ZSBhcmdzIGNvbnRhaW5pbmcg c2hlbGwgbWV0YWNoYXJhY3RlcnMgdG8gZGVsYXkKKysgICAgICAjIHdvcmQgc3BsaXR0aW5nIGFu ZCBjb21tYW5kIHN1YnN0aXR1dGlvbiBmb3IgYSBzdWJzZXF1ZW50IGV2YWwuCisrICAgICAgIyBN YW55IEJvdXJuZSBzaGVsbHMgY2Fubm90IGhhbmRsZSBjbG9zZSBicmFja2V0cyBjb3JyZWN0bHkK KysgICAgICAjIGluIHNjYW4gc2V0cywgc28gd2Ugc3BlY2lmeSBpdCBzZXBhcmF0ZWx5LgorKyAg ICAgICpbXFtcflwjXF5cJlwqXChcKVx7XH1cfFw7XDxcPlw/XCdcIFwJXSp8Kl0qfCIiKQorKyAg ICAgICAgbXlfYXJnPSJcIiRteV9hcmdcIiIKKysgICAgICAgIDs7CisrICAgIGVzYWMKKysKKysg ICAgZnVuY19xdW90ZV9mb3JfZXhwYW5kX3Jlc3VsdD0iJG15X2FyZyIKKyt9CisrCisrCisrIyBm dW5jX3Nob3dfZXZhbCBjbWQgW2ZhaWxfZXhwXQorKyMgVW5sZXNzIG9wdF9zaWxlbnQgaXMgdHJ1 ZSwgdGhlbiBvdXRwdXQgQ01ELiAgVGhlbiwgaWYgb3B0X2RyeXJ1biBpcworKyMgbm90IHRydWUs IGV2YWx1YXRlIENNRC4gIElmIHRoZSBldmFsdWF0aW9uIG9mIENNRCBmYWlscywgYW5kIEZBSUxf RVhQCisrIyBpcyBnaXZlbiwgdGhlbiBldmFsdWF0ZSBpdC4KKytmdW5jX3Nob3dfZXZhbCAoKQor K3sKKysgICAgbXlfY21kPSIkMSIKKysgICAgbXlfZmFpbF9leHA9IiR7Mi06fSIKKysKKysgICAg JHtvcHRfc2lsZW50LWZhbHNlfSB8fCB7CisrICAgICAgZnVuY19xdW90ZV9mb3JfZXhwYW5kICIk bXlfY21kIgorKyAgICAgIGV2YWwgImZ1bmNfZWNobyAkZnVuY19xdW90ZV9mb3JfZXhwYW5kX3Jl c3VsdCIKKysgICAgfQorKworKyAgICBpZiAke29wdF9kcnlfcnVuLWZhbHNlfTsgdGhlbiA6OyBl bHNlCisrICAgICAgZXZhbCAiJG15X2NtZCIKKysgICAgICBteV9zdGF0dXM9JD8KKysgICAgICBp ZiB0ZXN0ICIkbXlfc3RhdHVzIiAtZXEgMDsgdGhlbiA6OyBlbHNlCisrCWV2YWwgIihleGl0ICRt eV9zdGF0dXMpOyAkbXlfZmFpbF9leHAiCisrICAgICAgZmkKKysgICAgZmkKKyt9CisrCisrCisr IyBmdW5jX3Nob3dfZXZhbF9sb2NhbGUgY21kIFtmYWlsX2V4cF0KKysjIFVubGVzcyBvcHRfc2ls ZW50IGlzIHRydWUsIHRoZW4gb3V0cHV0IENNRC4gIFRoZW4sIGlmIG9wdF9kcnlydW4gaXMKKysj IG5vdCB0cnVlLCBldmFsdWF0ZSBDTUQuICBJZiB0aGUgZXZhbHVhdGlvbiBvZiBDTUQgZmFpbHMs IGFuZCBGQUlMX0VYUAorKyMgaXMgZ2l2ZW4sIHRoZW4gZXZhbHVhdGUgaXQuICBVc2UgdGhlIHNh dmVkIGxvY2FsZSBmb3IgZXZhbHVhdGlvbi4KKytmdW5jX3Nob3dfZXZhbF9sb2NhbGUgKCkKKyt7 CisrICAgIG15X2NtZD0iJDEiCisrICAgIG15X2ZhaWxfZXhwPSIkezItOn0iCisrCisrICAgICR7 b3B0X3NpbGVudC1mYWxzZX0gfHwgeworKyAgICAgIGZ1bmNfcXVvdGVfZm9yX2V4cGFuZCAiJG15 X2NtZCIKKysgICAgICBldmFsICJmdW5jX2VjaG8gJGZ1bmNfcXVvdGVfZm9yX2V4cGFuZF9yZXN1 bHQiCisrICAgIH0KKysKKysgICAgaWYgJHtvcHRfZHJ5X3J1bi1mYWxzZX07IHRoZW4gOjsgZWxz ZQorKyAgICAgIGV2YWwgIiRsdF91c2VyX2xvY2FsZQorKwkgICAgJG15X2NtZCIKKysgICAgICBt eV9zdGF0dXM9JD8KKysgICAgICBldmFsICIkbHRfc2FmZV9sb2NhbGUiCisrICAgICAgaWYgdGVz dCAiJG15X3N0YXR1cyIgLWVxIDA7IHRoZW4gOjsgZWxzZQorKwlldmFsICIoZXhpdCAkbXlfc3Rh dHVzKTsgJG15X2ZhaWxfZXhwIgorKyAgICAgIGZpCisrICAgIGZpCisrfQorKworKworKworKwor KworKyMgZnVuY192ZXJzaW9uCisrIyBFY2hvIHZlcnNpb24gbWVzc2FnZSB0byBzdGFuZGFyZCBv dXRwdXQgYW5kIGV4aXQuCisrZnVuY192ZXJzaW9uICgpCisreworKyAgICAkU0VEIC1uICcvXiMg JyRQUk9HUkFNJyAoR05VIC8sLyMgd2FycmFudHk7IC8geworKyAgICAgICAgcy9eIyAvLworKwlz L14jICokLy8KKysgICAgICAgIHMvXCgoQylcKVsgMC05LC1dKlwoIFsxLTldWzAtOV0qXCkvXDFc Mi8KKysgICAgICAgIHAKKysgICAgIH0nIDwgIiRwcm9ncGF0aCIKKysgICAgIGV4aXQgJD8KKyt9 CisrCisrIyBmdW5jX3VzYWdlCisrIyBFY2hvIHNob3J0IGhlbHAgbWVzc2FnZSB0byBzdGFuZGFy ZCBvdXRwdXQgYW5kIGV4aXQuCisrZnVuY191c2FnZSAoKQorK3sKKysgICAgJFNFRCAtbiAnL14j IFVzYWdlOi8sLyMgLWgvIHsKKysgICAgICAgIHMvXiMgLy8KKysJcy9eIyAqJC8vCisrCXMvXCRw cm9nbmFtZS8nJHByb2duYW1lJy8KKysJcAorKyAgICB9JyA8ICIkcHJvZ3BhdGgiCisrICAgICRF Q0hPCisrICAgICRFQ0hPICJydW4gXGAkcHJvZ25hbWUgLS1oZWxwIHwgbW9yZScgZm9yIGZ1bGwg dXNhZ2UiCisrICAgIGV4aXQgJD8KKyt9CisrCisrIyBmdW5jX2hlbHAKKysjIEVjaG8gbG9uZyBo ZWxwIG1lc3NhZ2UgdG8gc3RhbmRhcmQgb3V0cHV0IGFuZCBleGl0LgorK2Z1bmNfaGVscCAoKQor K3sKKysgICAgJFNFRCAtbiAnL14jIFVzYWdlOi8sLyMgUmVwb3J0IGJ1Z3MgdG8vIHsKKysgICAg ICAgIHMvXiMgLy8KKysJcy9eIyAqJC8vCisrCXMqXCRwcm9nbmFtZSonJHByb2duYW1lJyoKKysJ cypcJGhvc3QqJyIkaG9zdCInKgorKwlzKlwkU0hFTEwqJyIkU0hFTEwiJyoKKysJcypcJExUQ0Mq JyIkTFRDQyInKgorKwlzKlwkTFRDRkxBR1MqJyIkTFRDRkxBR1MiJyoKKysJcypcJExEKiciJExE IicqCisrCXMvXCR3aXRoX2dudV9sZC8nIiR3aXRoX2dudV9sZCInLworKwlzL1wkYXV0b21ha2Vf dmVyc2lvbi8nImAoYXV0b21ha2UgLS12ZXJzaW9uKSAyPi9kZXYvbnVsbCB8JFNFRCAxcWAiJy8K KysJcy9cJGF1dG9jb25mX3ZlcnNpb24vJyJgKGF1dG9jb25mIC0tdmVyc2lvbikgMj4vZGV2L251 bGwgfCRTRUQgMXFgIicvCisrCXAKKysgICAgIH0nIDwgIiRwcm9ncGF0aCIKKysgICAgZXhpdCAk PworK30KKysKKysjIGZ1bmNfbWlzc2luZ19hcmcgYXJnbmFtZQorKyMgRWNobyBwcm9ncmFtIG5h bWUgcHJlZml4ZWQgbWVzc2FnZSB0byBzdGFuZGFyZCBlcnJvciBhbmQgc2V0IGdsb2JhbAorKyMg ZXhpdF9jbWQuCisrZnVuY19taXNzaW5nX2FyZyAoKQorK3sKKysgICAgZnVuY19lcnJvciAibWlz c2luZyBhcmd1bWVudCBmb3IgJDEiCisrICAgIGV4aXRfY21kPWV4aXQKKyt9CisrCisrZXhpdF9j bWQ9OgorKworKworKworKworKworKyMgQ2hlY2sgdGhhdCB3ZSBoYXZlIGEgd29ya2luZyAkRUNI Ty4KKytpZiB0ZXN0ICJYJDEiID0gWC0tbm8tcmVleGVjOyB0aGVuCisrICAjIERpc2NhcmQgdGhl IC0tbm8tcmVleGVjIGZsYWcsIGFuZCBjb250aW51ZS4KKysgIHNoaWZ0CisrZWxpZiB0ZXN0ICJY JDEiID0gWC0tZmFsbGJhY2stZWNobzsgdGhlbgorKyAgIyBBdm9pZCBpbmxpbmUgZG9jdW1lbnQg aGVyZSwgaXQgbWF5IGJlIGxlZnQgb3ZlcgorKyAgOgorK2VsaWYgdGVzdCAiWGB7ICRFQ0hPICdc dCc7IH0gMj4vZGV2L251bGxgIiA9ICdYXHQnOyB0aGVuCisrICAjIFlpcHBlZSwgJEVDSE8gd29y a3MhCisrICA6CisrZWxzZQorKyAgIyBSZXN0YXJ0IHVuZGVyIHRoZSBjb3JyZWN0IHNoZWxsLCBh bmQgdGhlbiBtYXliZSAkRUNITyB3aWxsIHdvcmsuCisrICBleGVjICRTSEVMTCAiJHByb2dwYXRo IiAtLW5vLXJlZXhlYyAkezErIiRAIn0KKytmaQorKworK2lmIHRlc3QgIlgkMSIgPSBYLS1mYWxs YmFjay1lY2hvOyB0aGVuCisrICAjIHVzZWQgYXMgZmFsbGJhY2sgZWNobworKyAgc2hpZnQKKysg IGNhdCA8PEVPRgorKyQqCisrRU9GCisrICBleGl0ICRFWElUX1NVQ0NFU1MKKytmaQorKworK21h Z2ljPSIlJSVNQUdJQyB2YXJpYWJsZSUlJSIKKyttYWdpY19leGU9IiUlJU1BR0lDIEVYRSB2YXJp YWJsZSUlJSIKKysKKysjIEdsb2JhbCB2YXJpYWJsZXMuCisrIyAkbW9kZSBpcyB1bnNldAorK25v bm9wdD0KKytleGVjdXRlX2RsZmlsZXM9CisrcHJlc2VydmVfYXJncz0KKytsbzJvPSJzL1xcLmxv XCQvLiR7b2JqZXh0fS8iCisrbzJsbz0icy9cXC4ke29iamV4dH1cJC8ubG8vIgorK2V4dHJhY3Rl ZF9hcmNoaXZlcz0KKytleHRyYWN0ZWRfc2VyaWFsPTAKKysKKytvcHRfZHJ5X3J1bj1mYWxzZQor K29wdF9kdXBsaWNhdGVfZGVwcz1mYWxzZQorK29wdF9zaWxlbnQ9ZmFsc2UKKytvcHRfZGVidWc9 OgorKworKyMgSWYgdGhpcyB2YXJpYWJsZSBpcyBzZXQgaW4gYW55IG9mIHRoZSBhY3Rpb25zLCB0 aGUgY29tbWFuZCBpbiBpdAorKyMgd2lsbCBiZSBleGVjZWQgYXQgdGhlIGVuZC4gIFRoaXMgcHJl dmVudHMgaGVyZS1kb2N1bWVudHMgZnJvbSBiZWluZworKyMgbGVmdCBvdmVyIGJ5IHNoZWxscy4K KytleGVjX2NtZD0KKysKKysjIGZ1bmNfZmF0YWxfY29uZmlndXJhdGlvbiBhcmcuLi4KKysjIEVj aG8gcHJvZ3JhbSBuYW1lIHByZWZpeGVkIG1lc3NhZ2UgdG8gc3RhbmRhcmQgZXJyb3IsIGZvbGxv d2VkIGJ5CisrIyBhIGNvbmZpZ3VyYXRpb24gZmFpbHVyZSBoaW50LCBhbmQgZXhpdC4KKytmdW5j X2ZhdGFsX2NvbmZpZ3VyYXRpb24gKCkKKyt7CisrICAgIGZ1bmNfZXJyb3IgJHsxKyIkQCJ9Cisr ICAgIGZ1bmNfZXJyb3IgIlNlZSB0aGUgJFBBQ0tBR0UgZG9jdW1lbnRhdGlvbiBmb3IgbW9yZSBp bmZvcm1hdGlvbi4iCisrICAgIGZ1bmNfZmF0YWxfZXJyb3IgIkZhdGFsIGNvbmZpZ3VyYXRpb24g ZXJyb3IuIgorK30KKysKKysKKysjIGZ1bmNfY29uZmlnCisrIyBEaXNwbGF5IHRoZSBjb25maWd1 cmF0aW9uIGZvciBhbGwgdGhlIHRhZ3MgaW4gdGhpcyBzY3JpcHQuCisrZnVuY19jb25maWcgKCkK Kyt7CisrICAgIHJlX2JlZ2luY2Y9J14jICMjIyBCRUdJTiBMSUJUT09MJworKyAgICByZV9lbmRj Zj0nXiMgIyMjIEVORCBMSUJUT09MJworKworKyAgICAjIERlZmF1bHQgY29uZmlndXJhdGlvbi4K KysgICAgJFNFRCAiMSwvJHJlX2JlZ2luY2YgQ09ORklHL2Q7LyRyZV9lbmRjZiBDT05GSUcvLFwk ZCIgPCAiJHByb2dwYXRoIgorKworKyAgICAjIE5vdyBwcmludCB0aGUgY29uZmlndXJhdGlvbnMg Zm9yIHRoZSB0YWdzLgorKyAgICBmb3IgdGFnbmFtZSBpbiAkdGFnbGlzdDsgZG8KKysgICAgICAk U0VEIC1uICIvJHJlX2JlZ2luY2YgVEFHIENPTkZJRzogJHRhZ25hbWVcJC8sLyRyZV9lbmRjZiBU QUcgQ09ORklHOiAkdGFnbmFtZVwkL3AiIDwgIiRwcm9ncGF0aCIKKysgICAgZG9uZQorKworKyAg ICBleGl0ICQ/CisrfQorKworKyMgZnVuY19mZWF0dXJlcworKyMgRGlzcGxheSB0aGUgZmVhdHVy ZXMgc3VwcG9ydGVkIGJ5IHRoaXMgc2NyaXB0LgorK2Z1bmNfZmVhdHVyZXMgKCkKKyt7CisrICAg ICRFQ0hPICJob3N0OiAkaG9zdCIKKysgICAgaWYgdGVzdCAiJGJ1aWxkX2xpYnRvb2xfbGlicyIg PSB5ZXM7IHRoZW4KKysgICAgICAkRUNITyAiZW5hYmxlIHNoYXJlZCBsaWJyYXJpZXMiCisrICAg IGVsc2UKKysgICAgICAkRUNITyAiZGlzYWJsZSBzaGFyZWQgbGlicmFyaWVzIgorKyAgICBmaQor KyAgICBpZiB0ZXN0ICIkYnVpbGRfb2xkX2xpYnMiID0geWVzOyB0aGVuCisrICAgICAgJEVDSE8g ImVuYWJsZSBzdGF0aWMgbGlicmFyaWVzIgorKyAgICBlbHNlCisrICAgICAgJEVDSE8gImRpc2Fi bGUgc3RhdGljIGxpYnJhcmllcyIKKysgICAgZmkKKysKKysgICAgZXhpdCAkPworK30KKysKKysj IGZ1bmNfZW5hYmxlX3RhZyB0YWduYW1lCisrIyBWZXJpZnkgdGhhdCBUQUdOQU1FIGlzIHZhbGlk LCBhbmQgZWl0aGVyIGZsYWcgYW4gZXJyb3IgYW5kIGV4aXQsIG9yCisrIyBlbmFibGUgdGhlIFRB R05BTUUgdGFnLiAgV2UgYWxzbyBhZGQgVEFHTkFNRSB0byB0aGUgZ2xvYmFsICR0YWdsaXN0Cisr IyB2YXJpYWJsZSBoZXJlLgorK2Z1bmNfZW5hYmxlX3RhZyAoKQorK3sKKysgICMgR2xvYmFsIHZh cmlhYmxlOgorKyAgdGFnbmFtZT0iJDEiCisrCisrICByZV9iZWdpbmNmPSJeIyAjIyMgQkVHSU4g TElCVE9PTCBUQUcgQ09ORklHOiAkdGFnbmFtZVwkIgorKyAgcmVfZW5kY2Y9Il4jICMjIyBFTkQg TElCVE9PTCBUQUcgQ09ORklHOiAkdGFnbmFtZVwkIgorKyAgc2VkX2V4dHJhY3RjZj0iLyRyZV9i ZWdpbmNmLywvJHJlX2VuZGNmL3AiCisrCisrICAjIFZhbGlkYXRlIHRhZ25hbWUuCisrICBjYXNl ICR0YWduYW1lIGluCisrICAgICpbIS1fQS1aYS16MC05LC9dKikKKysgICAgICBmdW5jX2ZhdGFs X2Vycm9yICJpbnZhbGlkIHRhZyBuYW1lOiAkdGFnbmFtZSIKKysgICAgICA7OworKyAgZXNhYwor KworKyAgIyBEb24ndCB0ZXN0IGZvciB0aGUgImRlZmF1bHQiIEMgdGFnLCBhcyB3ZSBrbm93IGl0 J3MKKysgICMgdGhlcmUgYnV0IG5vdCBzcGVjaWFsbHkgbWFya2VkLgorKyAgY2FzZSAkdGFnbmFt ZSBpbgorKyAgICBDQykgOzsKKysgICAgKikKKysgICAgICBpZiAkR1JFUCAiJHJlX2JlZ2luY2Yi ICIkcHJvZ3BhdGgiID4vZGV2L251bGwgMj4mMTsgdGhlbgorKwl0YWdsaXN0PSIkdGFnbGlzdCAk dGFnbmFtZSIKKysKKysJIyBFdmFsdWF0ZSB0aGUgY29uZmlndXJhdGlvbi4gIEJlIGNhcmVmdWwg dG8gcXVvdGUgdGhlIHBhdGgKKysJIyBhbmQgdGhlIHNlZCBzY3JpcHQsIHRvIGF2b2lkIHNwbGl0 dGluZyBvbiB3aGl0ZXNwYWNlLCBidXQKKysJIyBhbHNvIGRvbid0IHVzZSBub24tcG9ydGFibGUg cXVvdGVzIHdpdGhpbiBiYWNrcXVvdGVzIHdpdGhpbgorKwkjIHF1b3RlcyB3ZSBoYXZlIHRvIGRv IGl0IGluIDIgc3RlcHM6CisrCWV4dHJhY3RlZGNmPWAkU0VEIC1uIC1lICIkc2VkX2V4dHJhY3Rj ZiIgPCAiJHByb2dwYXRoImAKKysJZXZhbCAiJGV4dHJhY3RlZGNmIgorKyAgICAgIGVsc2UKKysJ ZnVuY19lcnJvciAiaWdub3JpbmcgdW5rbm93biB0YWcgJHRhZ25hbWUiCisrICAgICAgZmkKKysg ICAgICA7OworKyAgZXNhYworK30KKysKKysjIFBhcnNlIG9wdGlvbnMgb25jZSwgdGhvcm91Z2hs eS4gIFRoaXMgY29tZXMgYXMgc29vbiBhcyBwb3NzaWJsZSBpbgorKyMgdGhlIHNjcmlwdCB0byBt YWtlIHRoaW5ncyBsaWtlIGBsaWJ0b29sIC0tdmVyc2lvbicgaGFwcGVuIHF1aWNrbHkuCisrewor KworKyAgIyBTaG9ydGhhbmQgZm9yIC0tbW9kZT1mb28sIG9ubHkgdmFsaWQgYXMgdGhlIGZpcnN0 IGFyZ3VtZW50CisrICBjYXNlICQxIGluCisrICBjbGVhbnxjbGVhfGNsZXxjbCkKKysgICAgc2hp ZnQ7IHNldCBkdW1teSAtLW1vZGUgY2xlYW4gJHsxKyIkQCJ9OyBzaGlmdAorKyAgICA7OworKyAg Y29tcGlsZXxjb21waWx8Y29tcGl8Y29tcHxjb218Y298YykKKysgICAgc2hpZnQ7IHNldCBkdW1t eSAtLW1vZGUgY29tcGlsZSAkezErIiRAIn07IHNoaWZ0CisrICAgIDs7CisrICBleGVjdXRlfGV4 ZWN1dHxleGVjdXxleGVjfGV4ZXxleHxlKQorKyAgICBzaGlmdDsgc2V0IGR1bW15IC0tbW9kZSBl eGVjdXRlICR7MSsiJEAifTsgc2hpZnQKKysgICAgOzsKKysgIGZpbmlzaHxmaW5pc3xmaW5pfGZp bnxmaXxmKQorKyAgICBzaGlmdDsgc2V0IGR1bW15IC0tbW9kZSBmaW5pc2ggJHsxKyIkQCJ9OyBz aGlmdAorKyAgICA7OworKyAgaW5zdGFsbHxpbnN0YWx8aW5zdGF8aW5zdHxpbnN8aW58aSkKKysg ICAgc2hpZnQ7IHNldCBkdW1teSAtLW1vZGUgaW5zdGFsbCAkezErIiRAIn07IHNoaWZ0CisrICAg IDs7CisrICBsaW5rfGxpbnxsaXxsKQorKyAgICBzaGlmdDsgc2V0IGR1bW15IC0tbW9kZSBsaW5r ICR7MSsiJEAifTsgc2hpZnQKKysgICAgOzsKKysgIHVuaW5zdGFsbHx1bmluc3RhbHx1bmluc3Rh fHVuaW5zdHx1bmluc3x1bmlufHVuaXx1bnx1KQorKyAgICBzaGlmdDsgc2V0IGR1bW15IC0tbW9k ZSB1bmluc3RhbGwgJHsxKyIkQCJ9OyBzaGlmdAorKyAgICA7OworKyAgZXNhYworKworKyAgIyBQ YXJzZSBub24tbW9kZSBzcGVjaWZpYyBhcmd1bWVudHM6CisrICB3aGlsZSB0ZXN0ICIkIyIgLWd0 IDA7IGRvCisrICAgIG9wdD0iJDEiCisrICAgIHNoaWZ0CisrCisrICAgIGNhc2UgJG9wdCBpbgor KyAgICAgIC0tY29uZmlnKQkJZnVuY19jb25maWcJCQkJCTs7CisrCisrICAgICAgLS1kZWJ1ZykJ CXByZXNlcnZlX2FyZ3M9IiRwcmVzZXJ2ZV9hcmdzICRvcHQiCisrCQkJZnVuY19lY2hvICJlbmFi bGluZyBzaGVsbCB0cmFjZSBtb2RlIgorKwkJCW9wdF9kZWJ1Zz0nc2V0IC14JworKwkJCSRvcHRf ZGVidWcKKysJCQk7OworKworKyAgICAgIC1kbG9wZW4pCQl0ZXN0ICIkIyIgLWVxIDAgJiYgZnVu Y19taXNzaW5nX2FyZyAiJG9wdCIgJiYgYnJlYWsKKysJCQlleGVjdXRlX2RsZmlsZXM9IiRleGVj dXRlX2RsZmlsZXMgJDEiCisrCQkJc2hpZnQKKysJCQk7OworKworKyAgICAgIC0tZHJ5LXJ1biB8 IC1uKQlvcHRfZHJ5X3J1bj06CQkJCQk7OworKyAgICAgIC0tZmVhdHVyZXMpICAgICAgIGZ1bmNf ZmVhdHVyZXMJCQkJCTs7CisrICAgICAgLS1maW5pc2gpCQltb2RlPSJmaW5pc2giCQkJCQk7Owor KworKyAgICAgIC0tbW9kZSkJCXRlc3QgIiQjIiAtZXEgMCAmJiBmdW5jX21pc3NpbmdfYXJnICIk b3B0IiAmJiBicmVhaworKwkJCWNhc2UgJDEgaW4KKysJCQkgICMgVmFsaWQgbW9kZSBhcmd1bWVu dHM6CisrCQkJICBjbGVhbikJOzsKKysJCQkgIGNvbXBpbGUpCTs7CisrCQkJICBleGVjdXRlKQk7 OworKwkJCSAgZmluaXNoKQk7OworKwkJCSAgaW5zdGFsbCkJOzsKKysJCQkgIGxpbmspCQk7Owor KwkJCSAgcmVsaW5rKQk7OworKwkJCSAgdW5pbnN0YWxsKQk7OworKworKwkJCSAgIyBDYXRjaCBh bnl0aGluZyBlbHNlIGFzIGFuIGVycm9yCisrCQkJICAqKSBmdW5jX2Vycm9yICJpbnZhbGlkIGFy Z3VtZW50IGZvciAkb3B0IgorKwkJCSAgICAgZXhpdF9jbWQ9ZXhpdAorKwkJCSAgICAgYnJlYWsK KysJCQkgICAgIDs7CisrCQkgICAgICAgIGVzYWMKKysKKysJCQltb2RlPSIkMSIKKysJCQlzaGlm dAorKwkJCTs7CisrCisrICAgICAgLS1wcmVzZXJ2ZS1kdXAtZGVwcykKKysJCQlvcHRfZHVwbGlj YXRlX2RlcHM9OgkJCQk7OworKworKyAgICAgIC0tcXVpZXR8LS1zaWxlbnQpCXByZXNlcnZlX2Fy Z3M9IiRwcmVzZXJ2ZV9hcmdzICRvcHQiCisrCQkJb3B0X3NpbGVudD06CisrCQkJOzsKKysKKysg ICAgICAtLXZlcmJvc2V8IC12KQlwcmVzZXJ2ZV9hcmdzPSIkcHJlc2VydmVfYXJncyAkb3B0Igor KwkJCW9wdF9zaWxlbnQ9ZmFsc2UKKysJCQk7OworKworKyAgICAgIC0tdGFnKQkJdGVzdCAiJCMi IC1lcSAwICYmIGZ1bmNfbWlzc2luZ19hcmcgIiRvcHQiICYmIGJyZWFrCisrCQkJcHJlc2VydmVf YXJncz0iJHByZXNlcnZlX2FyZ3MgJG9wdCAkMSIKKysJCQlmdW5jX2VuYWJsZV90YWcgIiQxIgkj IHRhZ25hbWUgaXMgc2V0IGhlcmUKKysJCQlzaGlmdAorKwkJCTs7CisrCisrICAgICAgIyBTZXBh cmF0ZSBvcHRhcmdzIHRvIGxvbmcgb3B0aW9uczoKKysgICAgICAtZGxvcGVuPSp8LS1tb2RlPSp8 LS10YWc9KikKKysJCQlmdW5jX29wdF9zcGxpdCAiJG9wdCIKKysJCQlzZXQgZHVtbXkgIiRmdW5j X29wdF9zcGxpdF9vcHQiICIkZnVuY19vcHRfc3BsaXRfYXJnIiAkezErIiRAIn0KKysJCQlzaGlm dAorKwkJCTs7CisrCisrICAgICAgLVw/fC1oKQkJZnVuY191c2FnZQkJCQkJOzsKKysgICAgICAt LWhlbHApCQlvcHRfaGVscD06CQkJCQk7OworKyAgICAgIC0tdmVyc2lvbikJZnVuY192ZXJzaW9u CQkJCQk7OworKworKyAgICAgIC0qKQkJZnVuY19mYXRhbF9oZWxwICJ1bnJlY29nbml6ZWQgb3B0 aW9uIFxgJG9wdCciCTs7CisrCisrICAgICAgKikJCW5vbm9wdD0iJG9wdCIKKysJCQlicmVhawor KwkJCTs7CisrICAgIGVzYWMKKysgIGRvbmUKKysKKysKKysgIGNhc2UgJGhvc3QgaW4KKysgICAg KmN5Z3dpbiogfCAqbWluZ3cqIHwgKnB3MzIqIHwgKmNlZ2NjKikKKysgICAgICAjIGRvbid0IGVs aW1pbmF0ZSBkdXBsaWNhdGlvbnMgaW4gJHBvc3RkZXBzIGFuZCAkcHJlZGVwcworKyAgICAgIG9w dF9kdXBsaWNhdGVfY29tcGlsZXJfZ2VuZXJhdGVkX2RlcHM9OgorKyAgICAgIDs7CisrICAgICop CisrICAgICAgb3B0X2R1cGxpY2F0ZV9jb21waWxlcl9nZW5lcmF0ZWRfZGVwcz0kb3B0X2R1cGxp Y2F0ZV9kZXBzCisrICAgICAgOzsKKysgIGVzYWMKKysKKysgICMgSGF2aW5nIHdhcm5lZCBhYm91 dCBhbGwgbWlzLXNwZWNpZmllZCBvcHRpb25zLCBiYWlsIG91dCBpZgorKyAgIyBhbnl0aGluZyB3 YXMgd3JvbmcuCisrICAkZXhpdF9jbWQgJEVYSVRfRkFJTFVSRQorK30KKysKKysjIGZ1bmNfY2hl Y2tfdmVyc2lvbl9tYXRjaAorKyMgRW5zdXJlIHRoYXQgd2UgYXJlIHVzaW5nIG00IG1hY3Jvcywg YW5kIGxpYnRvb2wgc2NyaXB0IGZyb20gdGhlIHNhbWUKKysjIHJlbGVhc2Ugb2YgbGlidG9vbC4K KytmdW5jX2NoZWNrX3ZlcnNpb25fbWF0Y2ggKCkKKyt7CisrICBpZiB0ZXN0ICIkcGFja2FnZV9y ZXZpc2lvbiIgIT0gIiRtYWNyb19yZXZpc2lvbiI7IHRoZW4KKysgICAgaWYgdGVzdCAiJFZFUlNJ T04iICE9ICIkbWFjcm9fdmVyc2lvbiI7IHRoZW4KKysgICAgICBpZiB0ZXN0IC16ICIkbWFjcm9f dmVyc2lvbiI7IHRoZW4KKysgICAgICAgIGNhdCA+JjIgPDxfTFRfRU9GCisrJHByb2duYW1lOiBW ZXJzaW9uIG1pc21hdGNoIGVycm9yLiAgVGhpcyBpcyAkUEFDS0FHRSAkVkVSU0lPTiwgYnV0IHRo ZQorKyRwcm9nbmFtZTogZGVmaW5pdGlvbiBvZiB0aGlzIExUX0lOSVQgY29tZXMgZnJvbSBhbiBv bGRlciByZWxlYXNlLgorKyRwcm9nbmFtZTogWW91IHNob3VsZCByZWNyZWF0ZSBhY2xvY2FsLm00 IHdpdGggbWFjcm9zIGZyb20gJFBBQ0tBR0UgJFZFUlNJT04KKyskcHJvZ25hbWU6IGFuZCBydW4g YXV0b2NvbmYgYWdhaW4uCisrX0xUX0VPRgorKyAgICAgIGVsc2UKKysgICAgICAgIGNhdCA+JjIg PDxfTFRfRU9GCisrJHByb2duYW1lOiBWZXJzaW9uIG1pc21hdGNoIGVycm9yLiAgVGhpcyBpcyAk UEFDS0FHRSAkVkVSU0lPTiwgYnV0IHRoZQorKyRwcm9nbmFtZTogZGVmaW5pdGlvbiBvZiB0aGlz IExUX0lOSVQgY29tZXMgZnJvbSAkUEFDS0FHRSAkbWFjcm9fdmVyc2lvbi4KKyskcHJvZ25hbWU6 IFlvdSBzaG91bGQgcmVjcmVhdGUgYWNsb2NhbC5tNCB3aXRoIG1hY3JvcyBmcm9tICRQQUNLQUdF ICRWRVJTSU9OCisrJHByb2duYW1lOiBhbmQgcnVuIGF1dG9jb25mIGFnYWluLgorK19MVF9FT0YK KysgICAgICBmaQorKyAgICBlbHNlCisrICAgICAgY2F0ID4mMiA8PF9MVF9FT0YKKyskcHJvZ25h bWU6IFZlcnNpb24gbWlzbWF0Y2ggZXJyb3IuICBUaGlzIGlzICRQQUNLQUdFICRWRVJTSU9OLCBy ZXZpc2lvbiAkcGFja2FnZV9yZXZpc2lvbiwKKyskcHJvZ25hbWU6IGJ1dCB0aGUgZGVmaW5pdGlv biBvZiB0aGlzIExUX0lOSVQgY29tZXMgZnJvbSByZXZpc2lvbiAkbWFjcm9fcmV2aXNpb24uCisr JHByb2duYW1lOiBZb3Ugc2hvdWxkIHJlY3JlYXRlIGFjbG9jYWwubTQgd2l0aCBtYWNyb3MgZnJv bSByZXZpc2lvbiAkcGFja2FnZV9yZXZpc2lvbgorKyRwcm9nbmFtZTogb2YgJFBBQ0tBR0UgJFZF UlNJT04gYW5kIHJ1biBhdXRvY29uZiBhZ2Fpbi4KKytfTFRfRU9GCisrICAgIGZpCisrCisrICAg IGV4aXQgJEVYSVRfTUlTTUFUQ0gKKysgIGZpCisrfQorKworKworKyMjIC0tLS0tLS0tLS0tICMj CisrIyMgICAgTWFpbi4gICAgIyMKKysjIyAtLS0tLS0tLS0tLSAjIworKworKyRvcHRfaGVscCB8 fCB7CisrICAjIFNhbml0eSBjaGVja3MgZmlyc3Q6CisrICBmdW5jX2NoZWNrX3ZlcnNpb25fbWF0 Y2gKKysKKysgIGlmIHRlc3QgIiRidWlsZF9saWJ0b29sX2xpYnMiICE9IHllcyAmJiB0ZXN0ICIk YnVpbGRfb2xkX2xpYnMiICE9IHllczsgdGhlbgorKyAgICBmdW5jX2ZhdGFsX2NvbmZpZ3VyYXRp b24gIm5vdCBjb25maWd1cmVkIHRvIGJ1aWxkIGFueSBraW5kIG9mIGxpYnJhcnkiCisrICBmaQor KworKyAgdGVzdCAteiAiJG1vZGUiICYmIGZ1bmNfZmF0YWxfZXJyb3IgImVycm9yOiB5b3UgbXVz dCBzcGVjaWZ5IGEgTU9ERS4iCisrCisrCisrICAjIERhcndpbiBzdWNrcworKyAgZXZhbCBzdGRf c2hyZXh0PVwiJHNocmV4dF9jbWRzXCIKKysKKysKKysgICMgT25seSBleGVjdXRlIG1vZGUgaXMg YWxsb3dlZCB0byBoYXZlIC1kbG9wZW4gZmxhZ3MuCisrICBpZiB0ZXN0IC1uICIkZXhlY3V0ZV9k bGZpbGVzIiAmJiB0ZXN0ICIkbW9kZSIgIT0gZXhlY3V0ZTsgdGhlbgorKyAgICBmdW5jX2Vycm9y ICJ1bnJlY29nbml6ZWQgb3B0aW9uIFxgLWRsb3BlbiciCisrICAgICRFQ0hPICIkaGVscCIgMT4m MgorKyAgICBleGl0ICRFWElUX0ZBSUxVUkUKKysgIGZpCisrCisrICAjIENoYW5nZSB0aGUgaGVs cCBtZXNzYWdlIHRvIGEgbW9kZS1zcGVjaWZpYyBvbmUuCisrICBnZW5lcmljX2hlbHA9IiRoZWxw IgorKyAgaGVscD0iVHJ5IFxgJHByb2duYW1lIC0taGVscCAtLW1vZGU9JG1vZGUnIGZvciBtb3Jl IGluZm9ybWF0aW9uLiIKKyt9CisrCisrCisrIyBmdW5jX2xhbGliX3AgZmlsZQorKyMgVHJ1ZSBp ZmYgRklMRSBpcyBhIGxpYnRvb2wgYC5sYScgbGlicmFyeSBvciBgLmxvJyBvYmplY3QgZmlsZS4K KysjIFRoaXMgZnVuY3Rpb24gaXMgb25seSBhIGJhc2ljIHNhbml0eSBjaGVjazsgaXQgd2lsbCBo YXJkbHkgZmx1c2ggb3V0CisrIyBkZXRlcm1pbmVkIGltcG9zdGVycy4KKytmdW5jX2xhbGliX3Ag KCkKKyt7CisrICAgIHRlc3QgLWYgIiQxIiAmJgorKyAgICAgICRTRUQgLWUgNHEgIiQxIiAyPi9k ZXYvbnVsbCBcCisrICAgICAgICB8ICRHUkVQICJeIyBHZW5lcmF0ZWQgYnkgLiokUEFDS0FHRSIg PiAvZGV2L251bGwgMj4mMQorK30KKysKKysjIGZ1bmNfbGFsaWJfdW5zYWZlX3AgZmlsZQorKyMg VHJ1ZSBpZmYgRklMRSBpcyBhIGxpYnRvb2wgYC5sYScgbGlicmFyeSBvciBgLmxvJyBvYmplY3Qg ZmlsZS4KKysjIFRoaXMgZnVuY3Rpb24gaW1wbGVtZW50cyB0aGUgc2FtZSBjaGVjayBhcyBmdW5j X2xhbGliX3Agd2l0aG91dAorKyMgcmVzb3J0aW5nIHRvIGV4dGVybmFsIHByb2dyYW1zLiAgVG8g dGhpcyBlbmQsIGl0IHJlZGlyZWN0cyBzdGRpbiBhbmQKKysjIGNsb3NlcyBpdCBhZnRlcndhcmRz LCB3aXRob3V0IHNhdmluZyB0aGUgb3JpZ2luYWwgZmlsZSBkZXNjcmlwdG9yLgorKyMgQXMgYSBz YWZldHkgbWVhc3VyZSwgdXNlIGl0IG9ubHkgd2hlcmUgYSBuZWdhdGl2ZSByZXN1bHQgd291bGQg YmUKKysjIGZhdGFsIGFueXdheS4gIFdvcmtzIGlmIGBmaWxlJyBkb2VzIG5vdCBleGlzdC4KKytm dW5jX2xhbGliX3Vuc2FmZV9wICgpCisreworKyAgICBsYWxpYl9wPW5vCisrICAgIGlmIHRlc3Qg LWYgIiQxIiAmJiB0ZXN0IC1yICIkMSIgJiYgZXhlYyA1PCYwIDwiJDEiOyB0aGVuCisrCWZvciBs YWxpYl9wX2wgaW4gMSAyIDMgNAorKwlkbworKwkgICAgcmVhZCBsYWxpYl9wX2xpbmUKKysJICAg IGNhc2UgIiRsYWxpYl9wX2xpbmUiIGluCisrCQlcI1wgR2VuZXJhdGVkXCBieVwgKiRQQUNLQUdF KiApIGxhbGliX3A9eWVzOyBicmVhazs7CisrCSAgICBlc2FjCisrCWRvbmUKKysJZXhlYyAwPCY1 IDU8Ji0KKysgICAgZmkKKysgICAgdGVzdCAiJGxhbGliX3AiID0geWVzCisrfQorKworKyMgZnVu Y19sdHdyYXBwZXJfc2NyaXB0X3AgZmlsZQorKyMgVHJ1ZSBpZmYgRklMRSBpcyBhIGxpYnRvb2wg d3JhcHBlciBzY3JpcHQKKysjIFRoaXMgZnVuY3Rpb24gaXMgb25seSBhIGJhc2ljIHNhbml0eSBj aGVjazsgaXQgd2lsbCBoYXJkbHkgZmx1c2ggb3V0CisrIyBkZXRlcm1pbmVkIGltcG9zdGVycy4K KytmdW5jX2x0d3JhcHBlcl9zY3JpcHRfcCAoKQorK3sKKysgICAgZnVuY19sYWxpYl9wICIkMSIK Kyt9CisrCisrIyBmdW5jX2x0d3JhcHBlcl9leGVjdXRhYmxlX3AgZmlsZQorKyMgVHJ1ZSBpZmYg RklMRSBpcyBhIGxpYnRvb2wgd3JhcHBlciBleGVjdXRhYmxlCisrIyBUaGlzIGZ1bmN0aW9uIGlz IG9ubHkgYSBiYXNpYyBzYW5pdHkgY2hlY2s7IGl0IHdpbGwgaGFyZGx5IGZsdXNoIG91dAorKyMg ZGV0ZXJtaW5lZCBpbXBvc3RlcnMuCisrZnVuY19sdHdyYXBwZXJfZXhlY3V0YWJsZV9wICgpCisr eworKyAgICBmdW5jX2x0d3JhcHBlcl9leGVjX3N1ZmZpeD0KKysgICAgY2FzZSAkMSBpbgorKyAg ICAqLmV4ZSkgOzsKKysgICAgKikgZnVuY19sdHdyYXBwZXJfZXhlY19zdWZmaXg9LmV4ZSA7Owor KyAgICBlc2FjCisrICAgICRHUkVQICIkbWFnaWNfZXhlIiAiJDEkZnVuY19sdHdyYXBwZXJfZXhl Y19zdWZmaXgiID4vZGV2L251bGwgMj4mMQorK30KKysKKysjIGZ1bmNfbHR3cmFwcGVyX3Njcmlw dG5hbWUgZmlsZQorKyMgQXNzdW1lcyBmaWxlIGlzIGFuIGx0d3JhcHBlcl9leGVjdXRhYmxlCisr IyB1c2VzICRmaWxlIHRvIGRldGVybWluZSB0aGUgYXBwcm9wcmlhdGUgZmlsZW5hbWUgZm9yIGEK KysjIHRlbXBvcmFyeSBsdHdyYXBwZXJfc2NyaXB0LgorK2Z1bmNfbHR3cmFwcGVyX3NjcmlwdG5h bWUgKCkKKyt7CisrICAgIGZ1bmNfbHR3cmFwcGVyX3NjcmlwdG5hbWVfcmVzdWx0PSIiCisrICAg IGlmIGZ1bmNfbHR3cmFwcGVyX2V4ZWN1dGFibGVfcCAiJDEiOyB0aGVuCisrCWZ1bmNfZGlybmFt ZV9hbmRfYmFzZW5hbWUgIiQxIiAiIiAiLiIKKysJZnVuY19zdHJpcG5hbWUgJycgJy5leGUnICIk ZnVuY19iYXNlbmFtZV9yZXN1bHQiCisrCWZ1bmNfbHR3cmFwcGVyX3NjcmlwdG5hbWVfcmVzdWx0 PSIkZnVuY19kaXJuYW1lX3Jlc3VsdC8kb2JqZGlyLyR7ZnVuY19zdHJpcG5hbWVfcmVzdWx0fV9s dHNod3JhcHBlciIKKysgICAgZmkKKyt9CisrCisrIyBmdW5jX2x0d3JhcHBlcl9wIGZpbGUKKysj IFRydWUgaWZmIEZJTEUgaXMgYSBsaWJ0b29sIHdyYXBwZXIgc2NyaXB0IG9yIHdyYXBwZXIgZXhl Y3V0YWJsZQorKyMgVGhpcyBmdW5jdGlvbiBpcyBvbmx5IGEgYmFzaWMgc2FuaXR5IGNoZWNrOyBp dCB3aWxsIGhhcmRseSBmbHVzaCBvdXQKKysjIGRldGVybWluZWQgaW1wb3N0ZXJzLgorK2Z1bmNf bHR3cmFwcGVyX3AgKCkKKyt7CisrICAgIGZ1bmNfbHR3cmFwcGVyX3NjcmlwdF9wICIkMSIgfHwg ZnVuY19sdHdyYXBwZXJfZXhlY3V0YWJsZV9wICIkMSIKKyt9CisrCisrCisrIyBmdW5jX2V4ZWN1 dGVfY21kcyBjb21tYW5kcyBmYWlsX2NtZAorKyMgRXhlY3V0ZSB0aWxkZS1kZWxpbWl0ZWQgQ09N TUFORFMuCisrIyBJZiBGQUlMX0NNRCBpcyBnaXZlbiwgZXZhbCB0aGF0IHVwb24gZmFpbHVyZS4K KysjIEZBSUxfQ01EIG1heSByZWFkLWFjY2VzcyB0aGUgY3VycmVudCBjb21tYW5kIGluIHZhcmlh YmxlIENNRCEKKytmdW5jX2V4ZWN1dGVfY21kcyAoKQorK3sKKysgICAgJG9wdF9kZWJ1ZworKyAg ICBzYXZlX2lmcz0kSUZTOyBJRlM9J34nCisrICAgIGZvciBjbWQgaW4gJDE7IGRvCisrICAgICAg SUZTPSRzYXZlX2lmcworKyAgICAgIGV2YWwgY21kPVwiJGNtZFwiCisrICAgICAgZnVuY19zaG93 X2V2YWwgIiRjbWQiICIkezItOn0iCisrICAgIGRvbmUKKysgICAgSUZTPSRzYXZlX2lmcworK30K KysKKysKKysjIGZ1bmNfc291cmNlIGZpbGUKKysjIFNvdXJjZSBGSUxFLCBhZGRpbmcgZGlyZWN0 b3J5IGNvbXBvbmVudCBpZiBuZWNlc3NhcnkuCisrIyBOb3RlIHRoYXQgaXQgaXMgbm90IG5lY2Vz c2FyeSBvbiBjeWd3aW4vbWluZ3cgdG8gYXBwZW5kIGEgZG90IHRvCisrIyBGSUxFIGV2ZW4gaWYg Ym90aCBGSUxFIGFuZCBGSUxFLmV4ZSBleGlzdDogYXV0b21hdGljLWFwcGVuZC0uZXhlCisrIyBi ZWhhdmlvciBoYXBwZW5zIG9ubHkgZm9yIGV4ZWMoMyksIG5vdCBmb3Igb3BlbigyKSEgIEFsc28s IHNvdXJjaW5nCisrIyBgRklMRS4nIGRvZXMgbm90IHdvcmsgb24gY3lnd2luIG1hbmFnZWQgbW91 bnRzLgorK2Z1bmNfc291cmNlICgpCisreworKyAgICAkb3B0X2RlYnVnCisrICAgIGNhc2UgJDEg aW4KKysgICAgKi8qIHwgKlxcKikJLiAiJDEiIDs7CisrICAgICopCQkuICIuLyQxIiA7OworKyAg ICBlc2FjCisrfQorKworKworKyMgZnVuY19pbmZlcl90YWcgYXJnCisrIyBJbmZlciB0YWdnZWQg Y29uZmlndXJhdGlvbiB0byB1c2UgaWYgYW55IGFyZSBhdmFpbGFibGUgYW5kCisrIyBpZiBvbmUg d2Fzbid0IGNob3NlbiB2aWEgdGhlICItLXRhZyIgY29tbWFuZCBsaW5lIG9wdGlvbi4KKysjIE9u bHkgYXR0ZW1wdCB0aGlzIGlmIHRoZSBjb21waWxlciBpbiB0aGUgYmFzZSBjb21waWxlCisrIyBj b21tYW5kIGRvZXNuJ3QgbWF0Y2ggdGhlIGRlZmF1bHQgY29tcGlsZXIuCisrIyBhcmcgaXMgdXN1 YWxseSBvZiB0aGUgZm9ybSAnZ2NjIC4uLicKKytmdW5jX2luZmVyX3RhZyAoKQorK3sKKysgICAg JG9wdF9kZWJ1ZworKyAgICBpZiB0ZXN0IC1uICIkYXZhaWxhYmxlX3RhZ3MiICYmIHRlc3QgLXog IiR0YWduYW1lIjsgdGhlbgorKyAgICAgIENDX3F1b3RlZD0KKysgICAgICBmb3IgYXJnIGluICRD QzsgZG8KKysgICAgICAgIGZ1bmNfcXVvdGVfZm9yX2V2YWwgIiRhcmciCisrCUNDX3F1b3RlZD0i JENDX3F1b3RlZCAkZnVuY19xdW90ZV9mb3JfZXZhbF9yZXN1bHQiCisrICAgICAgZG9uZQorKyAg ICAgIGNhc2UgJEAgaW4KKysgICAgICAjIEJsYW5rcyBpbiB0aGUgY29tbWFuZCBtYXkgaGF2ZSBi ZWVuIHN0cmlwcGVkIGJ5IHRoZSBjYWxsaW5nIHNoZWxsLAorKyAgICAgICMgYnV0IG5vdCBmcm9t IHRoZSBDQyBlbnZpcm9ubWVudCB2YXJpYWJsZSB3aGVuIGNvbmZpZ3VyZSB3YXMgcnVuLgorKyAg ICAgICIgJENDICIqIHwgIiRDQyAiKiB8ICIgYCRFQ0hPICRDQ2AgIiogfCAiYCRFQ0hPICRDQ2Ag IiogfCAiICRDQ19xdW90ZWQiKiB8ICIkQ0NfcXVvdGVkICIqIHwgIiBgJEVDSE8gJENDX3F1b3Rl ZGAgIiogfCAiYCRFQ0hPICRDQ19xdW90ZWRgICIqKSA7OworKyAgICAgICMgQmxhbmtzIGF0IHRo ZSBzdGFydCBvZiAkYmFzZV9jb21waWxlIHdpbGwgY2F1c2UgdGhpcyB0byBmYWlsCisrICAgICAg IyBpZiB3ZSBkb24ndCBjaGVjayBmb3IgdGhlbSBhcyB3ZWxsLgorKyAgICAgICopCisrCWZvciB6 IGluICRhdmFpbGFibGVfdGFnczsgZG8KKysJICBpZiAkR1JFUCAiXiMgIyMjIEJFR0lOIExJQlRP T0wgVEFHIENPTkZJRzogJHokIiA8ICIkcHJvZ3BhdGgiID4gL2Rldi9udWxsOyB0aGVuCisrCSAg ICAjIEV2YWx1YXRlIHRoZSBjb25maWd1cmF0aW9uLgorKwkgICAgZXZhbCAiYCR7U0VEfSAtbiAt ZSAnL14jICMjIyBCRUdJTiBMSUJUT09MIFRBRyBDT05GSUc6ICckeickLywvXiMgIyMjIEVORCBM SUJUT09MIFRBRyBDT05GSUc6ICckeickL3AnIDwgJHByb2dwYXRoYCIKKysJICAgIENDX3F1b3Rl ZD0KKysJICAgIGZvciBhcmcgaW4gJENDOyBkbworKwkgICAgICAjIERvdWJsZS1xdW90ZSBhcmdz IGNvbnRhaW5pbmcgb3RoZXIgc2hlbGwgbWV0YWNoYXJhY3RlcnMuCisrCSAgICAgIGZ1bmNfcXVv dGVfZm9yX2V2YWwgIiRhcmciCisrCSAgICAgIENDX3F1b3RlZD0iJENDX3F1b3RlZCAkZnVuY19x dW90ZV9mb3JfZXZhbF9yZXN1bHQiCisrCSAgICBkb25lCisrCSAgICBjYXNlICIkQCAiIGluCisr CSAgICAgICIgJENDICIqIHwgIiRDQyAiKiB8ICIgYCRFQ0hPICRDQ2AgIiogfCAiYCRFQ0hPICRD Q2AgIiogfCAiICRDQ19xdW90ZWQiKiB8ICIkQ0NfcXVvdGVkICIqIHwgIiBgJEVDSE8gJENDX3F1 b3RlZGAgIiogfCAiYCRFQ0hPICRDQ19xdW90ZWRgICIqKQorKwkgICAgICAjIFRoZSBjb21waWxl ciBpbiB0aGUgYmFzZSBjb21waWxlIGNvbW1hbmQgbWF0Y2hlcworKwkgICAgICAjIHRoZSBvbmUg aW4gdGhlIHRhZ2dlZCBjb25maWd1cmF0aW9uLgorKwkgICAgICAjIEFzc3VtZSB0aGlzIGlzIHRo ZSB0YWdnZWQgY29uZmlndXJhdGlvbiB3ZSB3YW50LgorKwkgICAgICB0YWduYW1lPSR6CisrCSAg ICAgIGJyZWFrCisrCSAgICAgIDs7CisrCSAgICBlc2FjCisrCSAgZmkKKysJZG9uZQorKwkjIElm ICR0YWduYW1lIHN0aWxsIGlzbid0IHNldCwgdGhlbiBubyB0YWdnZWQgY29uZmlndXJhdGlvbgor KwkjIHdhcyBmb3VuZCBhbmQgbGV0IHRoZSB1c2VyIGtub3cgdGhhdCB0aGUgIi0tdGFnIiBjb21t YW5kCisrCSMgbGluZSBvcHRpb24gbXVzdCBiZSB1c2VkLgorKwlpZiB0ZXN0IC16ICIkdGFnbmFt ZSI7IHRoZW4KKysJICBmdW5jX2VjaG8gInVuYWJsZSB0byBpbmZlciB0YWdnZWQgY29uZmlndXJh dGlvbiIKKysJICBmdW5jX2ZhdGFsX2Vycm9yICJzcGVjaWZ5IGEgdGFnIHdpdGggXGAtLXRhZyci CisrIwllbHNlCisrIwkgIGZ1bmNfdmVyYm9zZSAidXNpbmcgJHRhZ25hbWUgdGFnZ2VkIGNvbmZp Z3VyYXRpb24iCisrCWZpCisrCTs7CisrICAgICAgZXNhYworKyAgICBmaQorK30KKysKKysKKysK KysjIGZ1bmNfd3JpdGVfbGlidG9vbF9vYmplY3Qgb3V0cHV0X25hbWUgcGljX25hbWUgbm9ucGlj X25hbWUKKysjIENyZWF0ZSBhIGxpYnRvb2wgb2JqZWN0IGZpbGUgKGFuYWxvZ291cyB0byBhICIu bGEiIGZpbGUpLAorKyMgYnV0IGRvbid0IGNyZWF0ZSBpdCBpZiB3ZSdyZSBkb2luZyBhIGRyeSBy dW4uCisrZnVuY193cml0ZV9saWJ0b29sX29iamVjdCAoKQorK3sKKysgICAgd3JpdGVfbGlib2Jq PSR7MX0KKysgICAgaWYgdGVzdCAiJGJ1aWxkX2xpYnRvb2xfbGlicyIgPSB5ZXM7IHRoZW4KKysg ICAgICB3cml0ZV9sb2JqPVwnJHsyfVwnCisrICAgIGVsc2UKKysgICAgICB3cml0ZV9sb2JqPW5v bmUKKysgICAgZmkKKysKKysgICAgaWYgdGVzdCAiJGJ1aWxkX29sZF9saWJzIiA9IHllczsgdGhl bgorKyAgICAgIHdyaXRlX29sZG9iaj1cJyR7M31cJworKyAgICBlbHNlCisrICAgICAgd3JpdGVf b2xkb2JqPW5vbmUKKysgICAgZmkKKysKKysgICAgJG9wdF9kcnlfcnVuIHx8IHsKKysgICAgICBj YXQgPiR7d3JpdGVfbGlib2JqfVQgPDxFT0YKKysjICR3cml0ZV9saWJvYmogLSBhIGxpYnRvb2wg b2JqZWN0IGZpbGUKKysjIEdlbmVyYXRlZCBieSAkUFJPR1JBTSAoR05VICRQQUNLQUdFJFRJTUVT VEFNUCkgJFZFUlNJT04KKysjCisrIyBQbGVhc2UgRE8gTk9UIGRlbGV0ZSB0aGlzIGZpbGUhCisr IyBJdCBpcyBuZWNlc3NhcnkgZm9yIGxpbmtpbmcgdGhlIGxpYnJhcnkuCisrCisrIyBOYW1lIG9m IHRoZSBQSUMgb2JqZWN0LgorK3BpY19vYmplY3Q9JHdyaXRlX2xvYmoKKysKKysjIE5hbWUgb2Yg dGhlIG5vbi1QSUMgb2JqZWN0Cisrbm9uX3BpY19vYmplY3Q9JHdyaXRlX29sZG9iagorKworK0VP RgorKyAgICAgICRNViAiJHt3cml0ZV9saWJvYmp9VCIgIiR7d3JpdGVfbGlib2JqfSIKKysgICAg fQorK30KKysKKysjIGZ1bmNfbW9kZV9jb21waWxlIGFyZy4uLgorK2Z1bmNfbW9kZV9jb21waWxl ICgpCisreworKyAgICAkb3B0X2RlYnVnCisrICAgICMgR2V0IHRoZSBjb21waWxhdGlvbiBjb21t YW5kIGFuZCB0aGUgc291cmNlIGZpbGUuCisrICAgIGJhc2VfY29tcGlsZT0KKysgICAgc3JjZmls ZT0iJG5vbm9wdCIgICMgIGFsd2F5cyBrZWVwIGEgbm9uLWVtcHR5IHZhbHVlIGluICJzcmNmaWxl IgorKyAgICBzdXBwcmVzc19vcHQ9eWVzCisrICAgIHN1cHByZXNzX291dHB1dD0KKysgICAgYXJn X21vZGU9bm9ybWFsCisrICAgIGxpYm9iaj0KKysgICAgbGF0ZXI9CisrICAgIHBpZV9mbGFnPQor KworKyAgICBmb3IgYXJnCisrICAgIGRvCisrICAgICAgY2FzZSAkYXJnX21vZGUgaW4KKysgICAg ICBhcmcgICkKKysJIyBkbyBub3QgImNvbnRpbnVlIi4gIEluc3RlYWQsIGFkZCB0aGlzIHRvIGJh c2VfY29tcGlsZQorKwlsYXN0YXJnPSIkYXJnIgorKwlhcmdfbW9kZT1ub3JtYWwKKysJOzsKKysK KysgICAgICB0YXJnZXQgKQorKwlsaWJvYmo9IiRhcmciCisrCWFyZ19tb2RlPW5vcm1hbAorKwlj b250aW51ZQorKwk7OworKworKyAgICAgIG5vcm1hbCApCisrCSMgQWNjZXB0IGFueSBjb21tYW5k LWxpbmUgb3B0aW9ucy4KKysJY2FzZSAkYXJnIGluCisrCS1vKQorKwkgIHRlc3QgLW4gIiRsaWJv YmoiICYmIFwKKysJICAgIGZ1bmNfZmF0YWxfZXJyb3IgInlvdSBjYW5ub3Qgc3BlY2lmeSBcYC1v JyBtb3JlIHRoYW4gb25jZSIKKysJICBhcmdfbW9kZT10YXJnZXQKKysJICBjb250aW51ZQorKwkg IDs7CisrCisrCS1waWUgfCAtZnBpZSB8IC1mUElFKQorKyAgICAgICAgICBwaWVfZmxhZz0iJHBp ZV9mbGFnICRhcmciCisrCSAgY29udGludWUKKysJICA7OworKworKwktc2hhcmVkIHwgLXN0YXRp YyB8IC1wcmVmZXItcGljIHwgLXByZWZlci1ub24tcGljKQorKwkgIGxhdGVyPSIkbGF0ZXIgJGFy ZyIKKysJICBjb250aW51ZQorKwkgIDs7CisrCisrCS1uby1zdXBwcmVzcykKKysJICBzdXBwcmVz c19vcHQ9bm8KKysJICBjb250aW51ZQorKwkgIDs7CisrCisrCS1YY29tcGlsZXIpCisrCSAgYXJn X21vZGU9YXJnICAjICB0aGUgbmV4dCBvbmUgZ29lcyBpbnRvIHRoZSAiYmFzZV9jb21waWxlIiBh cmcgbGlzdAorKwkgIGNvbnRpbnVlICAgICAgIyAgVGhlIGN1cnJlbnQgInNyY2ZpbGUiIHdpbGwg ZWl0aGVyIGJlIHJldGFpbmVkIG9yCisrCSAgOzsgICAgICAgICAgICAjICByZXBsYWNlZCBsYXRl ci4gIEkgd291bGQgZ3Vlc3MgdGhhdCB3b3VsZCBiZSBhIGJ1Zy4KKysKKysJLVdjLCopCisrCSAg ZnVuY19zdHJpcG5hbWUgJy1XYywnICcnICIkYXJnIgorKwkgIGFyZ3M9JGZ1bmNfc3RyaXBuYW1l X3Jlc3VsdAorKwkgIGxhc3Rhcmc9CisrCSAgc2F2ZV9pZnM9IiRJRlMiOyBJRlM9JywnCisrCSAg Zm9yIGFyZyBpbiAkYXJnczsgZG8KKysJICAgIElGUz0iJHNhdmVfaWZzIgorKwkgICAgZnVuY19x dW90ZV9mb3JfZXZhbCAiJGFyZyIKKysJICAgIGxhc3Rhcmc9IiRsYXN0YXJnICRmdW5jX3F1b3Rl X2Zvcl9ldmFsX3Jlc3VsdCIKKysJICBkb25lCisrCSAgSUZTPSIkc2F2ZV9pZnMiCisrCSAgZnVu Y19zdHJpcG5hbWUgJyAnICcnICIkbGFzdGFyZyIKKysJICBsYXN0YXJnPSRmdW5jX3N0cmlwbmFt ZV9yZXN1bHQKKysKKysJICAjIEFkZCB0aGUgYXJndW1lbnRzIHRvIGJhc2VfY29tcGlsZS4KKysJ ICBiYXNlX2NvbXBpbGU9IiRiYXNlX2NvbXBpbGUgJGxhc3RhcmciCisrCSAgY29udGludWUKKysJ ICA7OworKworKwkqKQorKwkgICMgQWNjZXB0IHRoZSBjdXJyZW50IGFyZ3VtZW50IGFzIHRoZSBz b3VyY2UgZmlsZS4KKysJICAjIFRoZSBwcmV2aW91cyAic3JjZmlsZSIgYmVjb21lcyB0aGUgY3Vy cmVudCBhcmd1bWVudC4KKysJICAjCisrCSAgbGFzdGFyZz0iJHNyY2ZpbGUiCisrCSAgc3JjZmls ZT0iJGFyZyIKKysJICA7OworKwllc2FjICAjICBjYXNlICRhcmcKKysJOzsKKysgICAgICBlc2Fj ICAgICMgIGNhc2UgJGFyZ19tb2RlCisrCisrICAgICAgIyBBZXN0aGV0aWNhbGx5IHF1b3RlIHRo ZSBwcmV2aW91cyBhcmd1bWVudC4KKysgICAgICBmdW5jX3F1b3RlX2Zvcl9ldmFsICIkbGFzdGFy ZyIKKysgICAgICBiYXNlX2NvbXBpbGU9IiRiYXNlX2NvbXBpbGUgJGZ1bmNfcXVvdGVfZm9yX2V2 YWxfcmVzdWx0IgorKyAgICBkb25lICMgZm9yIGFyZworKworKyAgICBjYXNlICRhcmdfbW9kZSBp bgorKyAgICBhcmcpCisrICAgICAgZnVuY19mYXRhbF9lcnJvciAieW91IG11c3Qgc3BlY2lmeSBh biBhcmd1bWVudCBmb3IgLVhjb21waWxlIgorKyAgICAgIDs7CisrICAgIHRhcmdldCkKKysgICAg ICBmdW5jX2ZhdGFsX2Vycm9yICJ5b3UgbXVzdCBzcGVjaWZ5IGEgdGFyZ2V0IHdpdGggXGAtbyci CisrICAgICAgOzsKKysgICAgKikKKysgICAgICAjIEdldCB0aGUgbmFtZSBvZiB0aGUgbGlicmFy eSBvYmplY3QuCisrICAgICAgdGVzdCAteiAiJGxpYm9iaiIgJiYgeworKwlmdW5jX2Jhc2VuYW1l ICIkc3JjZmlsZSIKKysJbGlib2JqPSIkZnVuY19iYXNlbmFtZV9yZXN1bHQiCisrICAgICAgfQor KyAgICAgIDs7CisrICAgIGVzYWMKKysKKysgICAgIyBSZWNvZ25pemUgc2V2ZXJhbCBkaWZmZXJl bnQgZmlsZSBzdWZmaXhlcy4KKysgICAgIyBJZiB0aGUgdXNlciBzcGVjaWZpZXMgLW8gZmlsZS5v LCBpdCBpcyByZXBsYWNlZCB3aXRoIGZpbGUubG8KKysgICAgY2FzZSAkbGlib2JqIGluCisrICAg ICouW2NDRlNpZm1zb10gfCBcCisrICAgICouYWRhIHwgKi5hZGIgfCAqLmFkcyB8ICouYXNtIHwg XAorKyAgICAqLmMrKyB8ICouY2MgfCAqLmlpIHwgKi5jbGFzcyB8ICouY3BwIHwgKi5jeHggfCBc CisrICAgICouW2ZGXVswOV0/IHwgKi5mb3IgfCAqLmphdmEgfCAqLm9iaiB8ICouc3gpCisrICAg ICAgZnVuY194Zm9ybSAiJGxpYm9iaiIKKysgICAgICBsaWJvYmo9JGZ1bmNfeGZvcm1fcmVzdWx0 CisrICAgICAgOzsKKysgICAgZXNhYworKworKyAgICBjYXNlICRsaWJvYmogaW4KKysgICAgKi5s bykgZnVuY19sbzJvICIkbGlib2JqIjsgb2JqPSRmdW5jX2xvMm9fcmVzdWx0IDs7CisrICAgICop CisrICAgICAgZnVuY19mYXRhbF9lcnJvciAiY2Fubm90IGRldGVybWluZSBuYW1lIG9mIGxpYnJh cnkgb2JqZWN0IGZyb20gXGAkbGlib2JqJyIKKysgICAgICA7OworKyAgICBlc2FjCisrCisrICAg IGZ1bmNfaW5mZXJfdGFnICRiYXNlX2NvbXBpbGUKKysKKysgICAgZm9yIGFyZyBpbiAkbGF0ZXI7 IGRvCisrICAgICAgY2FzZSAkYXJnIGluCisrICAgICAgLXNoYXJlZCkKKysJdGVzdCAiJGJ1aWxk X2xpYnRvb2xfbGlicyIgIT0geWVzICYmIFwKKysJICBmdW5jX2ZhdGFsX2NvbmZpZ3VyYXRpb24g ImNhbiBub3QgYnVpbGQgYSBzaGFyZWQgbGlicmFyeSIKKysJYnVpbGRfb2xkX2xpYnM9bm8KKysJ Y29udGludWUKKysJOzsKKysKKysgICAgICAtc3RhdGljKQorKwlidWlsZF9saWJ0b29sX2xpYnM9 bm8KKysJYnVpbGRfb2xkX2xpYnM9eWVzCisrCWNvbnRpbnVlCisrCTs7CisrCisrICAgICAgLXBy ZWZlci1waWMpCisrCXBpY19tb2RlPXllcworKwljb250aW51ZQorKwk7OworKworKyAgICAgIC1w cmVmZXItbm9uLXBpYykKKysJcGljX21vZGU9bm8KKysJY29udGludWUKKysJOzsKKysgICAgICBl c2FjCisrICAgIGRvbmUKKysKKysgICAgZnVuY19xdW90ZV9mb3JfZXZhbCAiJGxpYm9iaiIKKysg ICAgdGVzdCAiWCRsaWJvYmoiICE9ICJYJGZ1bmNfcXVvdGVfZm9yX2V2YWxfcmVzdWx0IiBcCisr ICAgICAgJiYgJEVDSE8gIlgkbGlib2JqIiB8ICRHUkVQICdbXX4jXip7fTs8Pj8iJyInIicJICYo KXxgJFtdJyBcCisrICAgICAgJiYgZnVuY193YXJuaW5nICJsaWJvYmogbmFtZSBcYCRsaWJvYmon IG1heSBub3QgY29udGFpbiBzaGVsbCBzcGVjaWFsIGNoYXJhY3RlcnMuIgorKyAgICBmdW5jX2Rp cm5hbWVfYW5kX2Jhc2VuYW1lICIkb2JqIiAiLyIgIiIKKysgICAgb2JqbmFtZT0iJGZ1bmNfYmFz ZW5hbWVfcmVzdWx0IgorKyAgICB4ZGlyPSIkZnVuY19kaXJuYW1lX3Jlc3VsdCIKKysgICAgbG9i aj0ke3hkaXJ9JG9iamRpci8kb2JqbmFtZQorKworKyAgICB0ZXN0IC16ICIkYmFzZV9jb21waWxl IiAmJiBcCisrICAgICAgZnVuY19mYXRhbF9oZWxwICJ5b3UgbXVzdCBzcGVjaWZ5IGEgY29tcGls YXRpb24gY29tbWFuZCIKKysKKysgICAgIyBEZWxldGUgYW55IGxlZnRvdmVyIGxpYnJhcnkgb2Jq ZWN0cy4KKysgICAgaWYgdGVzdCAiJGJ1aWxkX29sZF9saWJzIiA9IHllczsgdGhlbgorKyAgICAg IHJlbW92ZWxpc3Q9IiRvYmogJGxvYmogJGxpYm9iaiAke2xpYm9ian1UIgorKyAgICBlbHNlCisr ICAgICAgcmVtb3ZlbGlzdD0iJGxvYmogJGxpYm9iaiAke2xpYm9ian1UIgorKyAgICBmaQorKwor KyAgICAjIE9uIEN5Z3dpbiB0aGVyZSdzIG5vICJyZWFsIiBQSUMgZmxhZyBzbyB3ZSBtdXN0IGJ1 aWxkIGJvdGggb2JqZWN0IHR5cGVzCisrICAgIGNhc2UgJGhvc3Rfb3MgaW4KKysgICAgY3lnd2lu KiB8IG1pbmd3KiB8IHB3MzIqIHwgb3MyKiB8IGNlZ2NjKikKKysgICAgICBwaWNfbW9kZT1kZWZh dWx0CisrICAgICAgOzsKKysgICAgZXNhYworKyAgICBpZiB0ZXN0ICIkcGljX21vZGUiID0gbm8g JiYgdGVzdCAiJGRlcGxpYnNfY2hlY2tfbWV0aG9kIiAhPSBwYXNzX2FsbDsgdGhlbgorKyAgICAg ICMgbm9uLVBJQyBjb2RlIGluIHNoYXJlZCBsaWJyYXJpZXMgaXMgbm90IHN1cHBvcnRlZAorKyAg ICAgIHBpY19tb2RlPWRlZmF1bHQKKysgICAgZmkKKysKKysgICAgIyBDYWxjdWxhdGUgdGhlIGZp bGVuYW1lIG9mIHRoZSBvdXRwdXQgb2JqZWN0IGlmIGNvbXBpbGVyIGRvZXMKKysgICAgIyBub3Qg c3VwcG9ydCAtbyB3aXRoIC1jCisrICAgIGlmIHRlc3QgIiRjb21waWxlcl9jX28iID0gbm87IHRo ZW4KKysgICAgICBvdXRwdXRfb2JqPWAkRUNITyAiWCRzcmNmaWxlIiB8ICRYc2VkIC1lICdzJV4u Ki8lJScgLWUgJ3MlXC5bXi5dKiQlJSdgLiR7b2JqZXh0fQorKyAgICAgIGxvY2tmaWxlPSIkb3V0 cHV0X29iai5sb2NrIgorKyAgICBlbHNlCisrICAgICAgb3V0cHV0X29iaj0KKysgICAgICBuZWVk X2xvY2tzPW5vCisrICAgICAgbG9ja2ZpbGU9CisrICAgIGZpCisrCisrICAgICMgTG9jayB0aGlz IGNyaXRpY2FsIHNlY3Rpb24gaWYgaXQgaXMgbmVlZGVkCisrICAgICMgV2UgdXNlIHRoaXMgc2Ny aXB0IGZpbGUgdG8gbWFrZSB0aGUgbGluaywgaXQgYXZvaWRzIGNyZWF0aW5nIGEgbmV3IGZpbGUK KysgICAgaWYgdGVzdCAiJG5lZWRfbG9ja3MiID0geWVzOyB0aGVuCisrICAgICAgdW50aWwgJG9w dF9kcnlfcnVuIHx8IGxuICIkcHJvZ3BhdGgiICIkbG9ja2ZpbGUiIDI+L2Rldi9udWxsOyBkbwor KwlmdW5jX2VjaG8gIldhaXRpbmcgZm9yICRsb2NrZmlsZSB0byBiZSByZW1vdmVkIgorKwlzbGVl cCAyCisrICAgICAgZG9uZQorKyAgICBlbGlmIHRlc3QgIiRuZWVkX2xvY2tzIiA9IHdhcm47IHRo ZW4KKysgICAgICBpZiB0ZXN0IC1mICIkbG9ja2ZpbGUiOyB0aGVuCisrCSRFQ0hPICJcCisrKioq IEVSUk9SLCAkbG9ja2ZpbGUgZXhpc3RzIGFuZCBjb250YWluczoKKytgY2F0ICRsb2NrZmlsZSAy Pi9kZXYvbnVsbGAKKysKKytUaGlzIGluZGljYXRlcyB0aGF0IGFub3RoZXIgcHJvY2VzcyBpcyB0 cnlpbmcgdG8gdXNlIHRoZSBzYW1lCisrdGVtcG9yYXJ5IG9iamVjdCBmaWxlLCBhbmQgbGlidG9v bCBjb3VsZCBub3Qgd29yayBhcm91bmQgaXQgYmVjYXVzZQorK3lvdXIgY29tcGlsZXIgZG9lcyBu b3Qgc3VwcG9ydCBcYC1jJyBhbmQgXGAtbycgdG9nZXRoZXIuICBJZiB5b3UKKytyZXBlYXQgdGhp cyBjb21waWxhdGlvbiwgaXQgbWF5IHN1Y2NlZWQsIGJ5IGNoYW5jZSwgYnV0IHlvdSBoYWQgYmV0 dGVyCisrYXZvaWQgcGFyYWxsZWwgYnVpbGRzIChtYWtlIC1qKSBpbiB0aGlzIHBsYXRmb3JtLCBv ciBnZXQgYSBiZXR0ZXIKKytjb21waWxlci4iCisrCisrCSRvcHRfZHJ5X3J1biB8fCAkUk0gJHJl bW92ZWxpc3QKKysJZXhpdCAkRVhJVF9GQUlMVVJFCisrICAgICAgZmkKKysgICAgICByZW1vdmVs aXN0PSIkcmVtb3ZlbGlzdCAkb3V0cHV0X29iaiIKKysgICAgICAkRUNITyAiJHNyY2ZpbGUiID4g IiRsb2NrZmlsZSIKKysgICAgZmkKKysKKysgICAgJG9wdF9kcnlfcnVuIHx8ICRSTSAkcmVtb3Zl bGlzdAorKyAgICByZW1vdmVsaXN0PSIkcmVtb3ZlbGlzdCAkbG9ja2ZpbGUiCisrICAgIHRyYXAg JyRvcHRfZHJ5X3J1biB8fCAkUk0gJHJlbW92ZWxpc3Q7IGV4aXQgJEVYSVRfRkFJTFVSRScgMSAy IDE1CisrCisrICAgIGlmIHRlc3QgLW4gIiRmaXhfc3JjZmlsZV9wYXRoIjsgdGhlbgorKyAgICAg IGV2YWwgc3JjZmlsZT1cIiRmaXhfc3JjZmlsZV9wYXRoXCIKKysgICAgZmkKKysgICAgZnVuY19x dW90ZV9mb3JfZXZhbCAiJHNyY2ZpbGUiCisrICAgIHFzcmNmaWxlPSRmdW5jX3F1b3RlX2Zvcl9l dmFsX3Jlc3VsdAorKworKyAgICAjIE9ubHkgYnVpbGQgYSBQSUMgb2JqZWN0IGlmIHdlIGFyZSBi dWlsZGluZyBsaWJ0b29sIGxpYnJhcmllcy4KKysgICAgaWYgdGVzdCAiJGJ1aWxkX2xpYnRvb2xf bGlicyIgPSB5ZXM7IHRoZW4KKysgICAgICAjIFdpdGhvdXQgdGhpcyBhc3NpZ25tZW50LCBiYXNl X2NvbXBpbGUgZ2V0cyBlbXB0aWVkLgorKyAgICAgIGZic2RfaGlkZW91c19zaF9idWc9JGJhc2Vf Y29tcGlsZQorKworKyAgICAgIGlmIHRlc3QgIiRwaWNfbW9kZSIgIT0gbm87IHRoZW4KKysJY29t bWFuZD0iJGJhc2VfY29tcGlsZSAkcXNyY2ZpbGUgJHBpY19mbGFnIgorKyAgICAgIGVsc2UKKysJ IyBEb24ndCBidWlsZCBQSUMgY29kZQorKwljb21tYW5kPSIkYmFzZV9jb21waWxlICRxc3JjZmls ZSIKKysgICAgICBmaQorKworKyAgICAgIGZ1bmNfbWtkaXJfcCAiJHhkaXIkb2JqZGlyIgorKwor KyAgICAgIGlmIHRlc3QgLXogIiRvdXRwdXRfb2JqIjsgdGhlbgorKwkjIFBsYWNlIFBJQyBvYmpl Y3RzIGluICRvYmpkaXIKKysJY29tbWFuZD0iJGNvbW1hbmQgLW8gJGxvYmoiCisrICAgICAgZmkK KysKKysgICAgICBmdW5jX3Nob3dfZXZhbF9sb2NhbGUgIiRjb21tYW5kIglcCisrICAgICAgICAg ICd0ZXN0IC1uICIkb3V0cHV0X29iaiIgJiYgJFJNICRyZW1vdmVsaXN0OyBleGl0ICRFWElUX0ZB SUxVUkUnCisrCisrICAgICAgaWYgdGVzdCAiJG5lZWRfbG9ja3MiID0gd2FybiAmJgorKwkgdGVz dCAiWGBjYXQgJGxvY2tmaWxlIDI+L2Rldi9udWxsYCIgIT0gIlgkc3JjZmlsZSI7IHRoZW4KKysJ JEVDSE8gIlwKKysqKiogRVJST1IsICRsb2NrZmlsZSBjb250YWluczoKKytgY2F0ICRsb2NrZmls ZSAyPi9kZXYvbnVsbGAKKysKKytidXQgaXQgc2hvdWxkIGNvbnRhaW46CisrJHNyY2ZpbGUKKysK KytUaGlzIGluZGljYXRlcyB0aGF0IGFub3RoZXIgcHJvY2VzcyBpcyB0cnlpbmcgdG8gdXNlIHRo ZSBzYW1lCisrdGVtcG9yYXJ5IG9iamVjdCBmaWxlLCBhbmQgbGlidG9vbCBjb3VsZCBub3Qgd29y ayBhcm91bmQgaXQgYmVjYXVzZQorK3lvdXIgY29tcGlsZXIgZG9lcyBub3Qgc3VwcG9ydCBcYC1j JyBhbmQgXGAtbycgdG9nZXRoZXIuICBJZiB5b3UKKytyZXBlYXQgdGhpcyBjb21waWxhdGlvbiwg aXQgbWF5IHN1Y2NlZWQsIGJ5IGNoYW5jZSwgYnV0IHlvdSBoYWQgYmV0dGVyCisrYXZvaWQgcGFy YWxsZWwgYnVpbGRzIChtYWtlIC1qKSBpbiB0aGlzIHBsYXRmb3JtLCBvciBnZXQgYSBiZXR0ZXIK Kytjb21waWxlci4iCisrCisrCSRvcHRfZHJ5X3J1biB8fCAkUk0gJHJlbW92ZWxpc3QKKysJZXhp dCAkRVhJVF9GQUlMVVJFCisrICAgICAgZmkKKysKKysgICAgICAjIEp1c3QgbW92ZSB0aGUgb2Jq ZWN0IGlmIG5lZWRlZCwgdGhlbiBnbyBvbiB0byBjb21waWxlIHRoZSBuZXh0IG9uZQorKyAgICAg IGlmIHRlc3QgLW4gIiRvdXRwdXRfb2JqIiAmJiB0ZXN0ICJYJG91dHB1dF9vYmoiICE9ICJYJGxv YmoiOyB0aGVuCisrCWZ1bmNfc2hvd19ldmFsICckTVYgIiRvdXRwdXRfb2JqIiAiJGxvYmoiJyBc CisrCSAgJ2Vycm9yPSQ/OyAkb3B0X2RyeV9ydW4gfHwgJFJNICRyZW1vdmVsaXN0OyBleGl0ICRl cnJvcicKKysgICAgICBmaQorKworKyAgICAgICMgQWxsb3cgZXJyb3IgbWVzc2FnZXMgb25seSBm cm9tIHRoZSBmaXJzdCBjb21waWxhdGlvbi4KKysgICAgICBpZiB0ZXN0ICIkc3VwcHJlc3Nfb3B0 IiA9IHllczsgdGhlbgorKwlzdXBwcmVzc19vdXRwdXQ9JyA+L2Rldi9udWxsIDI+JjEnCisrICAg ICAgZmkKKysgICAgZmkKKysKKysgICAgIyBPbmx5IGJ1aWxkIGEgcG9zaXRpb24tZGVwZW5kZW50 IG9iamVjdCBpZiB3ZSBidWlsZCBvbGQgbGlicmFyaWVzLgorKyAgICBpZiB0ZXN0ICIkYnVpbGRf b2xkX2xpYnMiID0geWVzOyB0aGVuCisrICAgICAgaWYgdGVzdCAiJHBpY19tb2RlIiAhPSB5ZXM7 IHRoZW4KKysJIyBEb24ndCBidWlsZCBQSUMgY29kZQorKwljb21tYW5kPSIkYmFzZV9jb21waWxl ICRxc3JjZmlsZSRwaWVfZmxhZyIKKysgICAgICBlbHNlCisrCWNvbW1hbmQ9IiRiYXNlX2NvbXBp bGUgJHFzcmNmaWxlICRwaWNfZmxhZyIKKysgICAgICBmaQorKyAgICAgIGlmIHRlc3QgIiRjb21w aWxlcl9jX28iID0geWVzOyB0aGVuCisrCWNvbW1hbmQ9IiRjb21tYW5kIC1vICRvYmoiCisrICAg ICAgZmkKKysKKysgICAgICAjIFN1cHByZXNzIGNvbXBpbGVyIG91dHB1dCBpZiB3ZSBhbHJlYWR5 IGRpZCBhIFBJQyBjb21waWxhdGlvbi4KKysgICAgICBjb21tYW5kPSIkY29tbWFuZCRzdXBwcmVz c19vdXRwdXQiCisrICAgICAgZnVuY19zaG93X2V2YWxfbG9jYWxlICIkY29tbWFuZCIgXAorKyAg ICAgICAgJyRvcHRfZHJ5X3J1biB8fCAkUk0gJHJlbW92ZWxpc3Q7IGV4aXQgJEVYSVRfRkFJTFVS RScKKysKKysgICAgICBpZiB0ZXN0ICIkbmVlZF9sb2NrcyIgPSB3YXJuICYmCisrCSB0ZXN0ICJY YGNhdCAkbG9ja2ZpbGUgMj4vZGV2L251bGxgIiAhPSAiWCRzcmNmaWxlIjsgdGhlbgorKwkkRUNI TyAiXAorKyoqKiBFUlJPUiwgJGxvY2tmaWxlIGNvbnRhaW5zOgorK2BjYXQgJGxvY2tmaWxlIDI+ L2Rldi9udWxsYAorKworK2J1dCBpdCBzaG91bGQgY29udGFpbjoKKyskc3JjZmlsZQorKworK1Ro aXMgaW5kaWNhdGVzIHRoYXQgYW5vdGhlciBwcm9jZXNzIGlzIHRyeWluZyB0byB1c2UgdGhlIHNh bWUKKyt0ZW1wb3Jhcnkgb2JqZWN0IGZpbGUsIGFuZCBsaWJ0b29sIGNvdWxkIG5vdCB3b3JrIGFy b3VuZCBpdCBiZWNhdXNlCisreW91ciBjb21waWxlciBkb2VzIG5vdCBzdXBwb3J0IFxgLWMnIGFu ZCBcYC1vJyB0b2dldGhlci4gIElmIHlvdQorK3JlcGVhdCB0aGlzIGNvbXBpbGF0aW9uLCBpdCBt YXkgc3VjY2VlZCwgYnkgY2hhbmNlLCBidXQgeW91IGhhZCBiZXR0ZXIKKythdm9pZCBwYXJhbGxl bCBidWlsZHMgKG1ha2UgLWopIGluIHRoaXMgcGxhdGZvcm0sIG9yIGdldCBhIGJldHRlcgorK2Nv bXBpbGVyLiIKKysKKysJJG9wdF9kcnlfcnVuIHx8ICRSTSAkcmVtb3ZlbGlzdAorKwlleGl0ICRF WElUX0ZBSUxVUkUKKysgICAgICBmaQorKworKyAgICAgICMgSnVzdCBtb3ZlIHRoZSBvYmplY3Qg aWYgbmVlZGVkCisrICAgICAgaWYgdGVzdCAtbiAiJG91dHB1dF9vYmoiICYmIHRlc3QgIlgkb3V0 cHV0X29iaiIgIT0gIlgkb2JqIjsgdGhlbgorKwlmdW5jX3Nob3dfZXZhbCAnJE1WICIkb3V0cHV0 X29iaiIgIiRvYmoiJyBcCisrCSAgJ2Vycm9yPSQ/OyAkb3B0X2RyeV9ydW4gfHwgJFJNICRyZW1v dmVsaXN0OyBleGl0ICRlcnJvcicKKysgICAgICBmaQorKyAgICBmaQorKworKyAgICAkb3B0X2Ry eV9ydW4gfHwgeworKyAgICAgIGZ1bmNfd3JpdGVfbGlidG9vbF9vYmplY3QgIiRsaWJvYmoiICIk b2JqZGlyLyRvYmpuYW1lIiAiJG9iam5hbWUiCisrCisrICAgICAgIyBVbmxvY2sgdGhlIGNyaXRp Y2FsIHNlY3Rpb24gaWYgaXQgd2FzIGxvY2tlZAorKyAgICAgIGlmIHRlc3QgIiRuZWVkX2xvY2tz IiAhPSBubzsgdGhlbgorKwlyZW1vdmVsaXN0PSRsb2NrZmlsZQorKyAgICAgICAgJFJNICIkbG9j a2ZpbGUiCisrICAgICAgZmkKKysgICAgfQorKworKyAgICBleGl0ICRFWElUX1NVQ0NFU1MKKyt9 CisrCisrJG9wdF9oZWxwIHx8IHsKKyt0ZXN0ICIkbW9kZSIgPSBjb21waWxlICYmIGZ1bmNfbW9k ZV9jb21waWxlICR7MSsiJEAifQorK30KKysKKytmdW5jX21vZGVfaGVscCAoKQorK3sKKysgICAg IyBXZSBuZWVkIHRvIGRpc3BsYXkgaGVscCBmb3IgZWFjaCBvZiB0aGUgbW9kZXMuCisrICAgIGNh c2UgJG1vZGUgaW4KKysgICAgICAiIikKKysgICAgICAgICMgR2VuZXJpYyBoZWxwIGlzIGV4dHJh Y3RlZCBmcm9tIHRoZSB1c2FnZSBjb21tZW50cworKyAgICAgICAgIyBhdCB0aGUgc3RhcnQgb2Yg dGhpcyBmaWxlLgorKyAgICAgICAgZnVuY19oZWxwCisrICAgICAgICA7OworKworKyAgICAgIGNs ZWFuKQorKyAgICAgICAgJEVDSE8gXAorKyJVc2FnZTogJHByb2duYW1lIFtPUFRJT05dLi4uIC0t bW9kZT1jbGVhbiBSTSBbUk0tT1BUSU9OXS4uLiBGSUxFLi4uCisrCisrUmVtb3ZlIGZpbGVzIGZy b20gdGhlIGJ1aWxkIGRpcmVjdG9yeS4KKysKKytSTSBpcyB0aGUgbmFtZSBvZiB0aGUgcHJvZ3Jh bSB0byB1c2UgdG8gZGVsZXRlIGZpbGVzIGFzc29jaWF0ZWQgd2l0aCBlYWNoIEZJTEUKKysodHlw aWNhbGx5IFxgL2Jpbi9ybScpLiAgUk0tT1BUSU9OUyBhcmUgb3B0aW9ucyAoc3VjaCBhcyBcYC1m JykgdG8gYmUgcGFzc2VkCisrdG8gUk0uCisrCisrSWYgRklMRSBpcyBhIGxpYnRvb2wgbGlicmFy eSwgb2JqZWN0IG9yIHByb2dyYW0sIGFsbCB0aGUgZmlsZXMgYXNzb2NpYXRlZAorK3dpdGggaXQg YXJlIGRlbGV0ZWQuIE90aGVyd2lzZSwgb25seSBGSUxFIGl0c2VsZiBpcyBkZWxldGVkIHVzaW5n IFJNLiIKKysgICAgICAgIDs7CisrCisrICAgICAgY29tcGlsZSkKKysgICAgICAkRUNITyBcCisr IlVzYWdlOiAkcHJvZ25hbWUgW09QVElPTl0uLi4gLS1tb2RlPWNvbXBpbGUgQ09NUElMRS1DT01N QU5ELi4uIFNPVVJDRUZJTEUKKysKKytDb21waWxlIGEgc291cmNlIGZpbGUgaW50byBhIGxpYnRv b2wgbGlicmFyeSBvYmplY3QuCisrCisrVGhpcyBtb2RlIGFjY2VwdHMgdGhlIGZvbGxvd2luZyBh ZGRpdGlvbmFsIG9wdGlvbnM6CisrCisrICAtbyBPVVRQVVQtRklMRSAgICBzZXQgdGhlIG91dHB1 dCBmaWxlIG5hbWUgdG8gT1VUUFVULUZJTEUKKysgIC1uby1zdXBwcmVzcyAgICAgIGRvIG5vdCBz dXBwcmVzcyBjb21waWxlciBvdXRwdXQgZm9yIG11bHRpcGxlIHBhc3NlcworKyAgLXByZWZlci1w aWMgICAgICAgdHJ5IHRvIGJ1aWxkaW5nIFBJQyBvYmplY3RzIG9ubHkKKysgIC1wcmVmZXItbm9u LXBpYyAgIHRyeSB0byBidWlsZGluZyBub24tUElDIG9iamVjdHMgb25seQorKyAgLXNoYXJlZCAg ICAgICAgICAgZG8gbm90IGJ1aWxkIGEgXGAubycgZmlsZSBzdWl0YWJsZSBmb3Igc3RhdGljIGxp bmtpbmcKKysgIC1zdGF0aWMgICAgICAgICAgIG9ubHkgYnVpbGQgYSBcYC5vJyBmaWxlIHN1aXRh YmxlIGZvciBzdGF0aWMgbGlua2luZworKworK0NPTVBJTEUtQ09NTUFORCBpcyBhIGNvbW1hbmQg dG8gYmUgdXNlZCBpbiBjcmVhdGluZyBhIFxgc3RhbmRhcmQnIG9iamVjdCBmaWxlCisrZnJvbSB0 aGUgZ2l2ZW4gU09VUkNFRklMRS4KKysKKytUaGUgb3V0cHV0IGZpbGUgbmFtZSBpcyBkZXRlcm1p bmVkIGJ5IHJlbW92aW5nIHRoZSBkaXJlY3RvcnkgY29tcG9uZW50IGZyb20KKytTT1VSQ0VGSUxF LCB0aGVuIHN1YnN0aXR1dGluZyB0aGUgQyBzb3VyY2UgY29kZSBzdWZmaXggXGAuYycgd2l0aCB0 aGUKKytsaWJyYXJ5IG9iamVjdCBzdWZmaXgsIFxgLmxvJy4iCisrICAgICAgICA7OworKworKyAg ICAgIGV4ZWN1dGUpCisrICAgICAgICAkRUNITyBcCisrIlVzYWdlOiAkcHJvZ25hbWUgW09QVElP Tl0uLi4gLS1tb2RlPWV4ZWN1dGUgQ09NTUFORCBbQVJHU10uLi4KKysKKytBdXRvbWF0aWNhbGx5 IHNldCBsaWJyYXJ5IHBhdGgsIHRoZW4gcnVuIGEgcHJvZ3JhbS4KKysKKytUaGlzIG1vZGUgYWNj ZXB0cyB0aGUgZm9sbG93aW5nIGFkZGl0aW9uYWwgb3B0aW9uczoKKysKKysgIC1kbG9wZW4gRklM RSAgICAgIGFkZCB0aGUgZGlyZWN0b3J5IGNvbnRhaW5pbmcgRklMRSB0byB0aGUgbGlicmFyeSBw YXRoCisrCisrVGhpcyBtb2RlIHNldHMgdGhlIGxpYnJhcnkgcGF0aCBlbnZpcm9ubWVudCB2YXJp YWJsZSBhY2NvcmRpbmcgdG8gXGAtZGxvcGVuJworK2ZsYWdzLgorKworK0lmIGFueSBvZiB0aGUg QVJHUyBhcmUgbGlidG9vbCBleGVjdXRhYmxlIHdyYXBwZXJzLCB0aGVuIHRoZXkgYXJlIHRyYW5z bGF0ZWQKKytpbnRvIHRoZWlyIGNvcnJlc3BvbmRpbmcgdW5pbnN0YWxsZWQgYmluYXJ5LCBhbmQg YW55IG9mIHRoZWlyIHJlcXVpcmVkIGxpYnJhcnkKKytkaXJlY3RvcmllcyBhcmUgYWRkZWQgdG8g dGhlIGxpYnJhcnkgcGF0aC4KKysKKytUaGVuLCBDT01NQU5EIGlzIGV4ZWN1dGVkLCB3aXRoIEFS R1MgYXMgYXJndW1lbnRzLiIKKysgICAgICAgIDs7CisrCisrICAgICAgZmluaXNoKQorKyAgICAg ICAgJEVDSE8gXAorKyJVc2FnZTogJHByb2duYW1lIFtPUFRJT05dLi4uIC0tbW9kZT1maW5pc2gg W0xJQkRJUl0uLi4KKysKKytDb21wbGV0ZSB0aGUgaW5zdGFsbGF0aW9uIG9mIGxpYnRvb2wgbGli cmFyaWVzLgorKworK0VhY2ggTElCRElSIGlzIGEgZGlyZWN0b3J5IHRoYXQgY29udGFpbnMgbGli dG9vbCBsaWJyYXJpZXMuCisrCisrVGhlIGNvbW1hbmRzIHRoYXQgdGhpcyBtb2RlIGV4ZWN1dGVz IG1heSByZXF1aXJlIHN1cGVydXNlciBwcml2aWxlZ2VzLiAgVXNlCisrdGhlIFxgLS1kcnktcnVu JyBvcHRpb24gaWYgeW91IGp1c3Qgd2FudCB0byBzZWUgd2hhdCB3b3VsZCBiZSBleGVjdXRlZC4i CisrICAgICAgICA7OworKworKyAgICAgIGluc3RhbGwpCisrICAgICAgICAkRUNITyBcCisrIlVz YWdlOiAkcHJvZ25hbWUgW09QVElPTl0uLi4gLS1tb2RlPWluc3RhbGwgSU5TVEFMTC1DT01NQU5E Li4uCisrCisrSW5zdGFsbCBleGVjdXRhYmxlcyBvciBsaWJyYXJpZXMuCisrCisrSU5TVEFMTC1D T01NQU5EIGlzIHRoZSBpbnN0YWxsYXRpb24gY29tbWFuZC4gIFRoZSBmaXJzdCBjb21wb25lbnQg c2hvdWxkIGJlCisrZWl0aGVyIHRoZSBcYGluc3RhbGwnIG9yIFxgY3AnIHByb2dyYW0uCisrCisr VGhlIGZvbGxvd2luZyBjb21wb25lbnRzIG9mIElOU1RBTEwtQ09NTUFORCBhcmUgdHJlYXRlZCBz cGVjaWFsbHk6CisrCisrICAtaW5zdC1wcmVmaXggUFJFRklYLURJUiAgVXNlIFBSRUZJWC1ESVIg YXMgYSBzdGFnaW5nIGFyZWEgZm9yIGluc3RhbGxhdGlvbgorKworK1RoZSByZXN0IG9mIHRoZSBj b21wb25lbnRzIGFyZSBpbnRlcnByZXRlZCBhcyBhcmd1bWVudHMgdG8gdGhhdCBjb21tYW5kIChv bmx5CisrQlNELWNvbXBhdGlibGUgaW5zdGFsbCBvcHRpb25zIGFyZSByZWNvZ25pemVkKS4iCisr ICAgICAgICA7OworKworKyAgICAgIGxpbmspCisrICAgICAgICAkRUNITyBcCisrIlVzYWdlOiAk cHJvZ25hbWUgW09QVElPTl0uLi4gLS1tb2RlPWxpbmsgTElOSy1DT01NQU5ELi4uCisrCisrTGlu ayBvYmplY3QgZmlsZXMgb3IgbGlicmFyaWVzIHRvZ2V0aGVyIHRvIGZvcm0gYW5vdGhlciBsaWJy YXJ5LCBvciB0bworK2NyZWF0ZSBhbiBleGVjdXRhYmxlIHByb2dyYW0uCisrCisrTElOSy1DT01N QU5EIGlzIGEgY29tbWFuZCB1c2luZyB0aGUgQyBjb21waWxlciB0aGF0IHlvdSB3b3VsZCB1c2Ug dG8gY3JlYXRlCisrYSBwcm9ncmFtIGZyb20gc2V2ZXJhbCBvYmplY3QgZmlsZXMuCisrCisrVGhl IGZvbGxvd2luZyBjb21wb25lbnRzIG9mIExJTkstQ09NTUFORCBhcmUgdHJlYXRlZCBzcGVjaWFs bHk6CisrCisrICAtYWxsLXN0YXRpYyAgICAgICBkbyBub3QgZG8gYW55IGR5bmFtaWMgbGlua2lu ZyBhdCBhbGwKKysgIC1hdm9pZC12ZXJzaW9uICAgIGRvIG5vdCBhZGQgYSB2ZXJzaW9uIHN1ZmZp eCBpZiBwb3NzaWJsZQorKyAgLWRsb3BlbiBGSUxFICAgICAgXGAtZGxwcmVvcGVuJyBGSUxFIGlm IGl0IGNhbm5vdCBiZSBkbG9wZW5lZCBhdCBydW50aW1lCisrICAtZGxwcmVvcGVuIEZJTEUgICBs aW5rIGluIEZJTEUgYW5kIGFkZCBpdHMgc3ltYm9scyB0byBsdF9wcmVsb2FkZWRfc3ltYm9scwor KyAgLWV4cG9ydC1keW5hbWljICAgYWxsb3cgc3ltYm9scyBmcm9tIE9VVFBVVC1GSUxFIHRvIGJl IHJlc29sdmVkIHdpdGggZGxzeW0oMykKKysgIC1leHBvcnQtc3ltYm9scyBTWU1GSUxFCisrICAg ICAgICAgICAgICAgICAgICB0cnkgdG8gZXhwb3J0IG9ubHkgdGhlIHN5bWJvbHMgbGlzdGVkIGlu IFNZTUZJTEUKKysgIC1leHBvcnQtc3ltYm9scy1yZWdleCBSRUdFWAorKyAgICAgICAgICAgICAg ICAgICAgdHJ5IHRvIGV4cG9ydCBvbmx5IHRoZSBzeW1ib2xzIG1hdGNoaW5nIFJFR0VYCisrICAt TExJQkRJUiAgICAgICAgICBzZWFyY2ggTElCRElSIGZvciByZXF1aXJlZCBpbnN0YWxsZWQgbGli cmFyaWVzCisrICAtbE5BTUUgICAgICAgICAgICBPVVRQVVQtRklMRSByZXF1aXJlcyB0aGUgaW5z dGFsbGVkIGxpYnJhcnkgbGliTkFNRQorKyAgLW1vZHVsZSAgICAgICAgICAgYnVpbGQgYSBsaWJy YXJ5IHRoYXQgY2FuIGRsb3BlbmVkCisrICAtbm8tZmFzdC1pbnN0YWxsICBkaXNhYmxlIHRoZSBm YXN0LWluc3RhbGwgbW9kZQorKyAgLW5vLWluc3RhbGwgICAgICAgbGluayBhIG5vdC1pbnN0YWxs YWJsZSBleGVjdXRhYmxlCisrICAtbm8tdW5kZWZpbmVkICAgICBkZWNsYXJlIHRoYXQgYSBsaWJy YXJ5IGRvZXMgbm90IHJlZmVyIHRvIGV4dGVybmFsIHN5bWJvbHMKKysgIC1vIE9VVFBVVC1GSUxF ICAgIGNyZWF0ZSBPVVRQVVQtRklMRSBmcm9tIHRoZSBzcGVjaWZpZWQgb2JqZWN0cworKyAgLW9i amVjdGxpc3QgRklMRSAgVXNlIGEgbGlzdCBvZiBvYmplY3QgZmlsZXMgZm91bmQgaW4gRklMRSB0 byBzcGVjaWZ5IG9iamVjdHMKKysgIC1wcmVjaW91cy1maWxlcy1yZWdleCBSRUdFWAorKyAgICAg ICAgICAgICAgICAgICAgZG9uJ3QgcmVtb3ZlIG91dHB1dCBmaWxlcyBtYXRjaGluZyBSRUdFWAor KyAgLXJlbGVhc2UgUkVMRUFTRSAgc3BlY2lmeSBwYWNrYWdlIHJlbGVhc2UgaW5mb3JtYXRpb24K KysgIC1ycGF0aCBMSUJESVIgICAgIHRoZSBjcmVhdGVkIGxpYnJhcnkgd2lsbCBldmVudHVhbGx5 IGJlIGluc3RhbGxlZCBpbiBMSUJESVIKKysgIC1SWyBdTElCRElSICAgICAgIGFkZCBMSUJESVIg dG8gdGhlIHJ1bnRpbWUgcGF0aCBvZiBwcm9ncmFtcyBhbmQgbGlicmFyaWVzCisrICAtc2hhcmVk ICAgICAgICAgICBvbmx5IGRvIGR5bmFtaWMgbGlua2luZyBvZiBsaWJ0b29sIGxpYnJhcmllcwor KyAgLXNocmV4dCBTVUZGSVggICAgb3ZlcnJpZGUgdGhlIHN0YW5kYXJkIHNoYXJlZCBsaWJyYXJ5 IGZpbGUgZXh0ZW5zaW9uCisrICAtc3RhdGljICAgICAgICAgICBkbyBub3QgZG8gYW55IGR5bmFt aWMgbGlua2luZyBvZiB1bmluc3RhbGxlZCBsaWJ0b29sIGxpYnJhcmllcworKyAgLXN0YXRpYy1s aWJ0b29sLWxpYnMKKysgICAgICAgICAgICAgICAgICAgIGRvIG5vdCBkbyBhbnkgZHluYW1pYyBs aW5raW5nIG9mIGxpYnRvb2wgbGlicmFyaWVzCisrICAtdmVyc2lvbi1pbmZvIENVUlJFTlRbOlJF VklTSU9OWzpBR0VdXQorKyAgICAgICAgICAgICAgICAgICAgc3BlY2lmeSBsaWJyYXJ5IHZlcnNp b24gaW5mbyBbZWFjaCB2YXJpYWJsZSBkZWZhdWx0cyB0byAwXQorKyAgLXdlYWsgTElCTkFNRSAg ICAgZGVjbGFyZSB0aGF0IHRoZSB0YXJnZXQgcHJvdmlkZXMgdGhlIExJQk5BTUUgaW50ZXJmYWNl CisrCisrQWxsIG90aGVyIG9wdGlvbnMgKGFyZ3VtZW50cyBiZWdpbm5pbmcgd2l0aCBcYC0nKSBh cmUgaWdub3JlZC4KKysKKytFdmVyeSBvdGhlciBhcmd1bWVudCBpcyB0cmVhdGVkIGFzIGEgZmls ZW5hbWUuICBGaWxlcyBlbmRpbmcgaW4gXGAubGEnIGFyZQorK3RyZWF0ZWQgYXMgdW5pbnN0YWxs ZWQgbGlidG9vbCBsaWJyYXJpZXMsIG90aGVyIGZpbGVzIGFyZSBzdGFuZGFyZCBvciBsaWJyYXJ5 Cisrb2JqZWN0IGZpbGVzLgorKworK0lmIHRoZSBPVVRQVVQtRklMRSBlbmRzIGluIFxgLmxhJywg dGhlbiBhIGxpYnRvb2wgbGlicmFyeSBpcyBjcmVhdGVkLAorK29ubHkgbGlicmFyeSBvYmplY3Rz IChcYC5sbycgZmlsZXMpIG1heSBiZSBzcGVjaWZpZWQsIGFuZCBcYC1ycGF0aCcgaXMKKytyZXF1 aXJlZCwgZXhjZXB0IHdoZW4gY3JlYXRpbmcgYSBjb252ZW5pZW5jZSBsaWJyYXJ5LgorKworK0lm IE9VVFBVVC1GSUxFIGVuZHMgaW4gXGAuYScgb3IgXGAubGliJywgdGhlbiBhIHN0YW5kYXJkIGxp YnJhcnkgaXMgY3JlYXRlZAorK3VzaW5nIFxgYXInIGFuZCBcYHJhbmxpYicsIG9yIG9uIFdpbmRv d3MgdXNpbmcgXGBsaWInLgorKworK0lmIE9VVFBVVC1GSUxFIGVuZHMgaW4gXGAubG8nIG9yIFxg LiR7b2JqZXh0fScsIHRoZW4gYSByZWxvYWRhYmxlIG9iamVjdCBmaWxlCisraXMgY3JlYXRlZCwg b3RoZXJ3aXNlIGFuIGV4ZWN1dGFibGUgcHJvZ3JhbSBpcyBjcmVhdGVkLiIKKysgICAgICAgIDs7 CisrCisrICAgICAgdW5pbnN0YWxsKQorKyAgICAgICAgJEVDSE8gXAorKyJVc2FnZTogJHByb2du YW1lIFtPUFRJT05dLi4uIC0tbW9kZT11bmluc3RhbGwgUk0gW1JNLU9QVElPTl0uLi4gRklMRS4u LgorKworK1JlbW92ZSBsaWJyYXJpZXMgZnJvbSBhbiBpbnN0YWxsYXRpb24gZGlyZWN0b3J5Lgor KworK1JNIGlzIHRoZSBuYW1lIG9mIHRoZSBwcm9ncmFtIHRvIHVzZSB0byBkZWxldGUgZmlsZXMg YXNzb2NpYXRlZCB3aXRoIGVhY2ggRklMRQorKyh0eXBpY2FsbHkgXGAvYmluL3JtJykuICBSTS1P UFRJT05TIGFyZSBvcHRpb25zIChzdWNoIGFzIFxgLWYnKSB0byBiZSBwYXNzZWQKKyt0byBSTS4K KysKKytJZiBGSUxFIGlzIGEgbGlidG9vbCBsaWJyYXJ5LCBhbGwgdGhlIGZpbGVzIGFzc29jaWF0 ZWQgd2l0aCBpdCBhcmUgZGVsZXRlZC4KKytPdGhlcndpc2UsIG9ubHkgRklMRSBpdHNlbGYgaXMg ZGVsZXRlZCB1c2luZyBSTS4iCisrICAgICAgICA7OworKworKyAgICAgICopCisrICAgICAgICBm dW5jX2ZhdGFsX2hlbHAgImludmFsaWQgb3BlcmF0aW9uIG1vZGUgXGAkbW9kZSciCisrICAgICAg ICA7OworKyAgICBlc2FjCisrCisrICAgICRFQ0hPCisrICAgICRFQ0hPICJUcnkgXGAkcHJvZ25h bWUgLS1oZWxwJyBmb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCBvdGhlciBtb2Rlcy4iCisrCisr ICAgIGV4aXQgJD8KKyt9CisrCisrICAjIE5vdyB0aGF0IHdlJ3ZlIGNvbGxlY3RlZCBhIHBvc3Np YmxlIC0tbW9kZSBhcmcsIHNob3cgaGVscCBpZiBuZWNlc3NhcnkKKysgICRvcHRfaGVscCAmJiBm dW5jX21vZGVfaGVscAorKworKworKyMgZnVuY19tb2RlX2V4ZWN1dGUgYXJnLi4uCisrZnVuY19t b2RlX2V4ZWN1dGUgKCkKKyt7CisrICAgICRvcHRfZGVidWcKKysgICAgIyBUaGUgZmlyc3QgYXJn dW1lbnQgaXMgdGhlIGNvbW1hbmQgbmFtZS4KKysgICAgY21kPSIkbm9ub3B0IgorKyAgICB0ZXN0 IC16ICIkY21kIiAmJiBcCisrICAgICAgZnVuY19mYXRhbF9oZWxwICJ5b3UgbXVzdCBzcGVjaWZ5 IGEgQ09NTUFORCIKKysKKysgICAgIyBIYW5kbGUgLWRsb3BlbiBmbGFncyBpbW1lZGlhdGVseS4K KysgICAgZm9yIGZpbGUgaW4gJGV4ZWN1dGVfZGxmaWxlczsgZG8KKysgICAgICB0ZXN0IC1mICIk ZmlsZSIgXAorKwl8fCBmdW5jX2ZhdGFsX2hlbHAgIlxgJGZpbGUnIGlzIG5vdCBhIGZpbGUiCisr CisrICAgICAgZGlyPQorKyAgICAgIGNhc2UgJGZpbGUgaW4KKysgICAgICAqLmxhKQorKwkjIENo ZWNrIHRvIHNlZSB0aGF0IHRoaXMgcmVhbGx5IGlzIGEgbGlidG9vbCBhcmNoaXZlLgorKwlmdW5j X2xhbGliX3Vuc2FmZV9wICIkZmlsZSIgXAorKwkgIHx8IGZ1bmNfZmF0YWxfaGVscCAiXGAkbGli JyBpcyBub3QgYSB2YWxpZCBsaWJ0b29sIGFyY2hpdmUiCisrCisrCSMgUmVhZCB0aGUgbGlidG9v bCBsaWJyYXJ5LgorKwlkbG5hbWU9CisrCWxpYnJhcnlfbmFtZXM9CisrCWZ1bmNfc291cmNlICIk ZmlsZSIKKysKKysJIyBTa2lwIHRoaXMgbGlicmFyeSBpZiBpdCBjYW5ub3QgYmUgZGxvcGVuZWQu CisrCWlmIHRlc3QgLXogIiRkbG5hbWUiOyB0aGVuCisrCSAgIyBXYXJuIGlmIGl0IHdhcyBhIHNo YXJlZCBsaWJyYXJ5LgorKwkgIHRlc3QgLW4gIiRsaWJyYXJ5X25hbWVzIiAmJiBcCisrCSAgICBm dW5jX3dhcm5pbmcgIlxgJGZpbGUnIHdhcyBub3QgbGlua2VkIHdpdGggXGAtZXhwb3J0LWR5bmFt aWMnIgorKwkgIGNvbnRpbnVlCisrCWZpCisrCisrCWZ1bmNfZGlybmFtZSAiJGZpbGUiICIiICIu IgorKwlkaXI9IiRmdW5jX2Rpcm5hbWVfcmVzdWx0IgorKworKwlpZiB0ZXN0IC1mICIkZGlyLyRv YmpkaXIvJGRsbmFtZSI7IHRoZW4KKysJICBkaXI9IiRkaXIvJG9iamRpciIKKysJZWxzZQorKwkg IGlmIHRlc3QgISAtZiAiJGRpci8kZGxuYW1lIjsgdGhlbgorKwkgICAgZnVuY19mYXRhbF9lcnJv ciAiY2Fubm90IGZpbmQgXGAkZGxuYW1lJyBpbiBcYCRkaXInIG9yIFxgJGRpci8kb2JqZGlyJyIK KysJICBmaQorKwlmaQorKwk7OworKworKyAgICAgICoubG8pCisrCSMgSnVzdCBhZGQgdGhlIGRp cmVjdG9yeSBjb250YWluaW5nIHRoZSAubG8gZmlsZS4KKysJZnVuY19kaXJuYW1lICIkZmlsZSIg IiIgIi4iCisrCWRpcj0iJGZ1bmNfZGlybmFtZV9yZXN1bHQiCisrCTs7CisrCisrICAgICAgKikK KysJZnVuY193YXJuaW5nICJcYC1kbG9wZW4nIGlzIGlnbm9yZWQgZm9yIG5vbi1saWJ0b29sIGxp YnJhcmllcyBhbmQgb2JqZWN0cyIKKysJY29udGludWUKKysJOzsKKysgICAgICBlc2FjCisrCisr ICAgICAgIyBHZXQgdGhlIGFic29sdXRlIHBhdGhuYW1lLgorKyAgICAgIGFic2Rpcj1gY2QgIiRk aXIiICYmIHB3ZGAKKysgICAgICB0ZXN0IC1uICIkYWJzZGlyIiAmJiBkaXI9IiRhYnNkaXIiCisr CisrICAgICAgIyBOb3cgYWRkIHRoZSBkaXJlY3RvcnkgdG8gc2hsaWJwYXRoX3Zhci4KKysgICAg ICBpZiBldmFsICJ0ZXN0IC16IFwiXCQkc2hsaWJwYXRoX3ZhclwiIjsgdGhlbgorKwlldmFsICIk c2hsaWJwYXRoX3Zhcj1cIlwkZGlyXCIiCisrICAgICAgZWxzZQorKwlldmFsICIkc2hsaWJwYXRo X3Zhcj1cIlwkZGlyOlwkJHNobGlicGF0aF92YXJcIiIKKysgICAgICBmaQorKyAgICBkb25lCisr CisrICAgICMgVGhpcyB2YXJpYWJsZSB0ZWxscyB3cmFwcGVyIHNjcmlwdHMganVzdCB0byBzZXQg c2hsaWJwYXRoX3ZhcgorKyAgICAjIHJhdGhlciB0aGFuIHJ1bm5pbmcgdGhlaXIgcHJvZ3JhbXMu CisrICAgIGxpYnRvb2xfZXhlY3V0ZV9tYWdpYz0iJG1hZ2ljIgorKworKyAgICAjIENoZWNrIGlm IGFueSBvZiB0aGUgYXJndW1lbnRzIGlzIGEgd3JhcHBlciBzY3JpcHQuCisrICAgIGFyZ3M9Cisr ICAgIGZvciBmaWxlCisrICAgIGRvCisrICAgICAgY2FzZSAkZmlsZSBpbgorKyAgICAgIC0qKSA7 OworKyAgICAgICopCisrCSMgRG8gYSB0ZXN0IHRvIHNlZSBpZiB0aGlzIGlzIHJlYWxseSBhIGxp YnRvb2wgcHJvZ3JhbS4KKysJaWYgZnVuY19sdHdyYXBwZXJfc2NyaXB0X3AgIiRmaWxlIjsgdGhl bgorKwkgIGZ1bmNfc291cmNlICIkZmlsZSIKKysJICAjIFRyYW5zZm9ybSBhcmcgdG8gd3JhcHBl ZCBuYW1lLgorKwkgIGZpbGU9IiRwcm9nZGlyLyRwcm9ncmFtIgorKwllbGlmIGZ1bmNfbHR3cmFw cGVyX2V4ZWN1dGFibGVfcCAiJGZpbGUiOyB0aGVuCisrCSAgZnVuY19sdHdyYXBwZXJfc2NyaXB0 bmFtZSAiJGZpbGUiCisrCSAgZnVuY19zb3VyY2UgIiRmdW5jX2x0d3JhcHBlcl9zY3JpcHRuYW1l X3Jlc3VsdCIKKysJICAjIFRyYW5zZm9ybSBhcmcgdG8gd3JhcHBlZCBuYW1lLgorKwkgIGZpbGU9 IiRwcm9nZGlyLyRwcm9ncmFtIgorKwlmaQorKwk7OworKyAgICAgIGVzYWMKKysgICAgICAjIFF1 b3RlIGFyZ3VtZW50cyAodG8gcHJlc2VydmUgc2hlbGwgbWV0YWNoYXJhY3RlcnMpLgorKyAgICAg IGZ1bmNfcXVvdGVfZm9yX2V2YWwgIiRmaWxlIgorKyAgICAgIGFyZ3M9IiRhcmdzICRmdW5jX3F1 b3RlX2Zvcl9ldmFsX3Jlc3VsdCIKKysgICAgZG9uZQorKworKyAgICBpZiB0ZXN0ICJYJG9wdF9k cnlfcnVuIiA9IFhmYWxzZTsgdGhlbgorKyAgICAgIGlmIHRlc3QgLW4gIiRzaGxpYnBhdGhfdmFy IjsgdGhlbgorKwkjIEV4cG9ydCB0aGUgc2hsaWJwYXRoX3Zhci4KKysJZXZhbCAiZXhwb3J0ICRz aGxpYnBhdGhfdmFyIgorKyAgICAgIGZpCisrCisrICAgICAgIyBSZXN0b3JlIHNhdmVkIGVudmly b25tZW50IHZhcmlhYmxlcworKyAgICAgIGZvciBsdF92YXIgaW4gTEFORyBMQU5HVUFHRSBMQ19B TEwgTENfQ1RZUEUgTENfQ09MTEFURSBMQ19NRVNTQUdFUworKyAgICAgIGRvCisrCWV2YWwgImlm IHRlc3QgXCJcJHtzYXZlXyRsdF92YXIrc2V0fVwiID0gc2V0OyB0aGVuCisrICAgICAgICAgICAg ICAgICRsdF92YXI9XCRzYXZlXyRsdF92YXI7IGV4cG9ydCAkbHRfdmFyCisrCSAgICAgIGVsc2UK KysJCSRsdF91bnNldCAkbHRfdmFyCisrCSAgICAgIGZpIgorKyAgICAgIGRvbmUKKysKKysgICAg ICAjIE5vdyBwcmVwYXJlIHRvIGFjdHVhbGx5IGV4ZWMgdGhlIGNvbW1hbmQuCisrICAgICAgZXhl Y19jbWQ9IlwkY21kJGFyZ3MiCisrICAgIGVsc2UKKysgICAgICAjIERpc3BsYXkgd2hhdCB3b3Vs ZCBiZSBkb25lLgorKyAgICAgIGlmIHRlc3QgLW4gIiRzaGxpYnBhdGhfdmFyIjsgdGhlbgorKwll dmFsICJcJEVDSE8gXCJcJHNobGlicGF0aF92YXI9XCQkc2hsaWJwYXRoX3ZhclwiIgorKwkkRUNI TyAiZXhwb3J0ICRzaGxpYnBhdGhfdmFyIgorKyAgICAgIGZpCisrICAgICAgJEVDSE8gIiRjbWQk YXJncyIKKysgICAgICBleGl0ICRFWElUX1NVQ0NFU1MKKysgICAgZmkKKyt9CisrCisrdGVzdCAi JG1vZGUiID0gZXhlY3V0ZSAmJiBmdW5jX21vZGVfZXhlY3V0ZSAkezErIiRAIn0KKysKKysKKysj IGZ1bmNfbW9kZV9maW5pc2ggYXJnLi4uCisrZnVuY19tb2RlX2ZpbmlzaCAoKQorK3sKKysgICAg JG9wdF9kZWJ1ZworKyAgICBsaWJkaXJzPSIkbm9ub3B0IgorKyAgICBhZG1pbmNtZHM9CisrCisr ICAgIGlmIHRlc3QgLW4gIiRmaW5pc2hfY21kcyRmaW5pc2hfZXZhbCIgJiYgdGVzdCAtbiAiJGxp YmRpcnMiOyB0aGVuCisrICAgICAgZm9yIGRpcgorKyAgICAgIGRvCisrCWxpYmRpcnM9IiRsaWJk aXJzICRkaXIiCisrICAgICAgZG9uZQorKworKyAgICAgIGZvciBsaWJkaXIgaW4gJGxpYmRpcnM7 IGRvCisrCWlmIHRlc3QgLW4gIiRmaW5pc2hfY21kcyI7IHRoZW4KKysJICAjIERvIGVhY2ggY29t bWFuZCBpbiB0aGUgZmluaXNoIGNvbW1hbmRzLgorKwkgIGZ1bmNfZXhlY3V0ZV9jbWRzICIkZmlu aXNoX2NtZHMiICdhZG1pbmNtZHM9IiRhZG1pbmNtZHMKKysnIiRjbWQiJyInCisrCWZpCisrCWlm IHRlc3QgLW4gIiRmaW5pc2hfZXZhbCI7IHRoZW4KKysJICAjIERvIHRoZSBzaW5nbGUgZmluaXNo X2V2YWwuCisrCSAgZXZhbCBjbWRzPVwiJGZpbmlzaF9ldmFsXCIKKysJICAkb3B0X2RyeV9ydW4g fHwgZXZhbCAiJGNtZHMiIHx8IGFkbWluY21kcz0iJGFkbWluY21kcworKyAgICAgICAkY21kcyIK KysJZmkKKysgICAgICBkb25lCisrICAgIGZpCisrCisrICAgICMgRXhpdCBoZXJlIGlmIHRoZXkg d2FudGVkIHNpbGVudCBtb2RlLgorKyAgICAkb3B0X3NpbGVudCAmJiBleGl0ICRFWElUX1NVQ0NF U1MKKysKKysgICAgJEVDSE8gIlgtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIiB8ICRYc2VkCisrICAgICRFQ0hPICJM aWJyYXJpZXMgaGF2ZSBiZWVuIGluc3RhbGxlZCBpbjoiCisrICAgIGZvciBsaWJkaXIgaW4gJGxp YmRpcnM7IGRvCisrICAgICAgJEVDSE8gIiAgICRsaWJkaXIiCisrICAgIGRvbmUKKysgICAgJEVD SE8KKysgICAgJEVDSE8gIklmIHlvdSBldmVyIGhhcHBlbiB0byB3YW50IHRvIGxpbmsgYWdhaW5z dCBpbnN0YWxsZWQgbGlicmFyaWVzIgorKyAgICAkRUNITyAiaW4gYSBnaXZlbiBkaXJlY3Rvcnks IExJQkRJUiwgeW91IG11c3QgZWl0aGVyIHVzZSBsaWJ0b29sLCBhbmQiCisrICAgICRFQ0hPICJz cGVjaWZ5IHRoZSBmdWxsIHBhdGhuYW1lIG9mIHRoZSBsaWJyYXJ5LCBvciB1c2UgdGhlIFxgLUxM SUJESVInIgorKyAgICAkRUNITyAiZmxhZyBkdXJpbmcgbGlua2luZyBhbmQgZG8gYXQgbGVhc3Qg b25lIG9mIHRoZSBmb2xsb3dpbmc6IgorKyAgICBpZiB0ZXN0IC1uICIkc2hsaWJwYXRoX3ZhciI7 IHRoZW4KKysgICAgICAkRUNITyAiICAgLSBhZGQgTElCRElSIHRvIHRoZSBcYCRzaGxpYnBhdGhf dmFyJyBlbnZpcm9ubWVudCB2YXJpYWJsZSIKKysgICAgICAkRUNITyAiICAgICBkdXJpbmcgZXhl Y3V0aW9uIgorKyAgICBmaQorKyAgICBpZiB0ZXN0IC1uICIkcnVucGF0aF92YXIiOyB0aGVuCisr ICAgICAgJEVDSE8gIiAgIC0gYWRkIExJQkRJUiB0byB0aGUgXGAkcnVucGF0aF92YXInIGVudmly b25tZW50IHZhcmlhYmxlIgorKyAgICAgICRFQ0hPICIgICAgIGR1cmluZyBsaW5raW5nIgorKyAg ICBmaQorKyAgICBpZiB0ZXN0IC1uICIkaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYyI7IHRoZW4K KysgICAgICBsaWJkaXI9TElCRElSCisrICAgICAgZXZhbCBmbGFnPVwiJGhhcmRjb2RlX2xpYmRp cl9mbGFnX3NwZWNcIgorKworKyAgICAgICRFQ0hPICIgICAtIHVzZSB0aGUgXGAkZmxhZycgbGlu a2VyIGZsYWciCisrICAgIGZpCisrICAgIGlmIHRlc3QgLW4gIiRhZG1pbmNtZHMiOyB0aGVuCisr ICAgICAgJEVDSE8gIiAgIC0gaGF2ZSB5b3VyIHN5c3RlbSBhZG1pbmlzdHJhdG9yIHJ1biB0aGVz ZSBjb21tYW5kczokYWRtaW5jbWRzIgorKyAgICBmaQorKyAgICBpZiB0ZXN0IC1mIC9ldGMvbGQu c28uY29uZjsgdGhlbgorKyAgICAgICRFQ0hPICIgICAtIGhhdmUgeW91ciBzeXN0ZW0gYWRtaW5p c3RyYXRvciBhZGQgTElCRElSIHRvIFxgL2V0Yy9sZC5zby5jb25mJyIKKysgICAgZmkKKysgICAg JEVDSE8KKysKKysgICAgJEVDSE8gIlNlZSBhbnkgb3BlcmF0aW5nIHN5c3RlbSBkb2N1bWVudGF0 aW9uIGFib3V0IHNoYXJlZCBsaWJyYXJpZXMgZm9yIgorKyAgICBjYXNlICRob3N0IGluCisrICAg ICAgc29sYXJpczIuWzY3ODldfHNvbGFyaXMyLjFbMC05XSkKKysgICAgICAgICRFQ0hPICJtb3Jl IGluZm9ybWF0aW9uLCBzdWNoIGFzIHRoZSBsZCgxKSwgY3JsZSgxKSBhbmQgbGQuc28oOCkgbWFu dWFsIgorKwkkRUNITyAicGFnZXMuIgorKwk7OworKyAgICAgICopCisrICAgICAgICAkRUNITyAi bW9yZSBpbmZvcm1hdGlvbiwgc3VjaCBhcyB0aGUgbGQoMSkgYW5kIGxkLnNvKDgpIG1hbnVhbCBw YWdlcy4iCisrICAgICAgICA7OworKyAgICBlc2FjCisrICAgICRFQ0hPICJYLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LSIgfCAkWHNlZAorKyAgICBleGl0ICRFWElUX1NVQ0NFU1MKKyt9CisrCisrdGVzdCAiJG1vZGUi ID0gZmluaXNoICYmIGZ1bmNfbW9kZV9maW5pc2ggJHsxKyIkQCJ9CisrCisrCisrIyBmdW5jX21v ZGVfaW5zdGFsbCBhcmcuLi4KKytmdW5jX21vZGVfaW5zdGFsbCAoKQorK3sKKysgICAgJG9wdF9k ZWJ1ZworKyAgICAjIFRoZXJlIG1heSBiZSBhbiBvcHRpb25hbCBzaCgxKSBhcmd1bWVudCBhdCB0 aGUgYmVnaW5uaW5nIG9mCisrICAgICMgaW5zdGFsbF9wcm9nIChlc3BlY2lhbGx5IG9uIFdpbmRv d3MgTlQpLgorKyAgICBpZiB0ZXN0ICIkbm9ub3B0IiA9ICIkU0hFTEwiIHx8IHRlc3QgIiRub25v cHQiID0gL2Jpbi9zaCB8fAorKyAgICAgICAjIEFsbG93IHRoZSB1c2Ugb2YgR05VIHNodG9vbCdz IGluc3RhbGwgY29tbWFuZC4KKysgICAgICAgJEVDSE8gIlgkbm9ub3B0IiB8ICRHUkVQIHNodG9v bCA+L2Rldi9udWxsOyB0aGVuCisrICAgICAgIyBBZXN0aGV0aWNhbGx5IHF1b3RlIGl0LgorKyAg ICAgIGZ1bmNfcXVvdGVfZm9yX2V2YWwgIiRub25vcHQiCisrICAgICAgaW5zdGFsbF9wcm9nPSIk ZnVuY19xdW90ZV9mb3JfZXZhbF9yZXN1bHQgIgorKyAgICAgIGFyZz0kMQorKyAgICAgIHNoaWZ0 CisrICAgIGVsc2UKKysgICAgICBpbnN0YWxsX3Byb2c9CisrICAgICAgYXJnPSRub25vcHQKKysg ICAgZmkKKysKKysgICAgIyBUaGUgcmVhbCBmaXJzdCBhcmd1bWVudCBzaG91bGQgYmUgdGhlIG5h bWUgb2YgdGhlIGluc3RhbGxhdGlvbiBwcm9ncmFtLgorKyAgICAjIEFlc3RoZXRpY2FsbHkgcXVv dGUgaXQuCisrICAgIGZ1bmNfcXVvdGVfZm9yX2V2YWwgIiRhcmciCisrICAgIGluc3RhbGxfcHJv Zz0iJGluc3RhbGxfcHJvZyRmdW5jX3F1b3RlX2Zvcl9ldmFsX3Jlc3VsdCIKKysKKysgICAgIyBX ZSBuZWVkIHRvIGFjY2VwdCBhdCBsZWFzdCBhbGwgdGhlIEJTRCBpbnN0YWxsIGZsYWdzLgorKyAg ICBkZXN0PQorKyAgICBmaWxlcz0KKysgICAgb3B0cz0KKysgICAgcHJldj0KKysgICAgaW5zdGFs bF90eXBlPQorKyAgICBpc2Rpcj1ubworKyAgICBzdHJpcG1lPQorKyAgICBmb3IgYXJnCisrICAg IGRvCisrICAgICAgaWYgdGVzdCAtbiAiJGRlc3QiOyB0aGVuCisrCWZpbGVzPSIkZmlsZXMgJGRl c3QiCisrCWRlc3Q9JGFyZworKwljb250aW51ZQorKyAgICAgIGZpCisrCisrICAgICAgY2FzZSAk YXJnIGluCisrICAgICAgLWQpIGlzZGlyPXllcyA7OworKyAgICAgIC1mKQorKwljYXNlICIgJGlu c3RhbGxfcHJvZyAiIGluCisrCSpbXFxcIC9dY3BcICopIDs7CisrCSopIHByZXY9JGFyZyA7Owor Kwllc2FjCisrCTs7CisrICAgICAgLWcgfCAtbSB8IC1vKQorKwlwcmV2PSRhcmcKKysJOzsKKysg ICAgICAtcykKKysJc3RyaXBtZT0iIC1zIgorKwljb250aW51ZQorKwk7OworKyAgICAgIC0qKQor Kwk7OworKyAgICAgICopCisrCSMgSWYgdGhlIHByZXZpb3VzIG9wdGlvbiBuZWVkZWQgYW4gYXJn dW1lbnQsIHRoZW4gc2tpcCBpdC4KKysJaWYgdGVzdCAtbiAiJHByZXYiOyB0aGVuCisrCSAgcHJl dj0KKysJZWxzZQorKwkgIGRlc3Q9JGFyZworKwkgIGNvbnRpbnVlCisrCWZpCisrCTs7CisrICAg ICAgZXNhYworKworKyAgICAgICMgQWVzdGhldGljYWxseSBxdW90ZSB0aGUgYXJndW1lbnQuCisr ICAgICAgZnVuY19xdW90ZV9mb3JfZXZhbCAiJGFyZyIKKysgICAgICBpbnN0YWxsX3Byb2c9IiRp bnN0YWxsX3Byb2cgJGZ1bmNfcXVvdGVfZm9yX2V2YWxfcmVzdWx0IgorKyAgICBkb25lCisrCisr ICAgIHRlc3QgLXogIiRpbnN0YWxsX3Byb2ciICYmIFwKKysgICAgICBmdW5jX2ZhdGFsX2hlbHAg InlvdSBtdXN0IHNwZWNpZnkgYW4gaW5zdGFsbCBwcm9ncmFtIgorKworKyAgICB0ZXN0IC1uICIk cHJldiIgJiYgXAorKyAgICAgIGZ1bmNfZmF0YWxfaGVscCAidGhlIFxgJHByZXYnIG9wdGlvbiBy ZXF1aXJlcyBhbiBhcmd1bWVudCIKKysKKysgICAgaWYgdGVzdCAteiAiJGZpbGVzIjsgdGhlbgor KyAgICAgIGlmIHRlc3QgLXogIiRkZXN0IjsgdGhlbgorKwlmdW5jX2ZhdGFsX2hlbHAgIm5vIGZp bGUgb3IgZGVzdGluYXRpb24gc3BlY2lmaWVkIgorKyAgICAgIGVsc2UKKysJZnVuY19mYXRhbF9o ZWxwICJ5b3UgbXVzdCBzcGVjaWZ5IGEgZGVzdGluYXRpb24iCisrICAgICAgZmkKKysgICAgZmkK KysKKysgICAgIyBTdHJpcCBhbnkgdHJhaWxpbmcgc2xhc2ggZnJvbSB0aGUgZGVzdGluYXRpb24u CisrICAgIGZ1bmNfc3RyaXBuYW1lICcnICcvJyAiJGRlc3QiCisrICAgIGRlc3Q9JGZ1bmNfc3Ry aXBuYW1lX3Jlc3VsdAorKworKyAgICAjIENoZWNrIHRvIHNlZSB0aGF0IHRoZSBkZXN0aW5hdGlv biBpcyBhIGRpcmVjdG9yeS4KKysgICAgdGVzdCAtZCAiJGRlc3QiICYmIGlzZGlyPXllcworKyAg ICBpZiB0ZXN0ICIkaXNkaXIiID0geWVzOyB0aGVuCisrICAgICAgZGVzdGRpcj0iJGRlc3QiCisr ICAgICAgZGVzdG5hbWU9CisrICAgIGVsc2UKKysgICAgICBmdW5jX2Rpcm5hbWVfYW5kX2Jhc2Vu YW1lICIkZGVzdCIgIiIgIi4iCisrICAgICAgZGVzdGRpcj0iJGZ1bmNfZGlybmFtZV9yZXN1bHQi CisrICAgICAgZGVzdG5hbWU9IiRmdW5jX2Jhc2VuYW1lX3Jlc3VsdCIKKysKKysgICAgICAjIE5v dCBhIGRpcmVjdG9yeSwgc28gY2hlY2sgdG8gc2VlIHRoYXQgdGhlcmUgaXMgb25seSBvbmUgZmls ZSBzcGVjaWZpZWQuCisrICAgICAgc2V0IGR1bW15ICRmaWxlczsgc2hpZnQKKysgICAgICB0ZXN0 ICIkIyIgLWd0IDEgJiYgXAorKwlmdW5jX2ZhdGFsX2hlbHAgIlxgJGRlc3QnIGlzIG5vdCBhIGRp cmVjdG9yeSIKKysgICAgZmkKKysgICAgY2FzZSAkZGVzdGRpciBpbgorKyAgICBbXFwvXSogfCBb QS1aYS16XTpbXFwvXSopIDs7CisrICAgICopCisrICAgICAgZm9yIGZpbGUgaW4gJGZpbGVzOyBk bworKwljYXNlICRmaWxlIGluCisrCSoubG8pIDs7CisrCSopCisrCSAgZnVuY19mYXRhbF9oZWxw ICJcYCRkZXN0ZGlyJyBtdXN0IGJlIGFuIGFic29sdXRlIGRpcmVjdG9yeSBuYW1lIgorKwkgIDs7 CisrCWVzYWMKKysgICAgICBkb25lCisrICAgICAgOzsKKysgICAgZXNhYworKworKyAgICAjIFRo aXMgdmFyaWFibGUgdGVsbHMgd3JhcHBlciBzY3JpcHRzIGp1c3QgdG8gc2V0IHZhcmlhYmxlcyBy YXRoZXIKKysgICAgIyB0aGFuIHJ1bm5pbmcgdGhlaXIgcHJvZ3JhbXMuCisrICAgIGxpYnRvb2xf aW5zdGFsbF9tYWdpYz0iJG1hZ2ljIgorKworKyAgICBzdGF0aWNsaWJzPQorKyAgICBmdXR1cmVf bGliZGlycz0KKysgICAgY3VycmVudF9saWJkaXJzPQorKyAgICBmb3IgZmlsZSBpbiAkZmlsZXM7 IGRvCisrCisrICAgICAgIyBEbyBlYWNoIGluc3RhbGxhdGlvbi4KKysgICAgICBjYXNlICRmaWxl IGluCisrICAgICAgKi4kbGliZXh0KQorKwkjIERvIHRoZSBzdGF0aWMgbGlicmFyaWVzIGxhdGVy LgorKwlzdGF0aWNsaWJzPSIkc3RhdGljbGlicyAkZmlsZSIKKysJOzsKKysKKysgICAgICAqLmxh KQorKwkjIENoZWNrIHRvIHNlZSB0aGF0IHRoaXMgcmVhbGx5IGlzIGEgbGlidG9vbCBhcmNoaXZl LgorKwlmdW5jX2xhbGliX3Vuc2FmZV9wICIkZmlsZSIgXAorKwkgIHx8IGZ1bmNfZmF0YWxfaGVs cCAiXGAkZmlsZScgaXMgbm90IGEgdmFsaWQgbGlidG9vbCBhcmNoaXZlIgorKworKwlsaWJyYXJ5 X25hbWVzPQorKwlvbGRfbGlicmFyeT0KKysJcmVsaW5rX2NvbW1hbmQ9CisrCWZ1bmNfc291cmNl ICIkZmlsZSIKKysKKysJIyBBZGQgdGhlIGxpYmRpciB0byBjdXJyZW50X2xpYmRpcnMgaWYgaXQg aXMgdGhlIGRlc3RpbmF0aW9uLgorKwlpZiB0ZXN0ICJYJGRlc3RkaXIiID0gIlgkbGliZGlyIjsg dGhlbgorKwkgIGNhc2UgIiRjdXJyZW50X2xpYmRpcnMgIiBpbgorKwkgICoiICRsaWJkaXIgIiop IDs7CisrCSAgKikgY3VycmVudF9saWJkaXJzPSIkY3VycmVudF9saWJkaXJzICRsaWJkaXIiIDs7 CisrCSAgZXNhYworKwllbHNlCisrCSAgIyBOb3RlIHRoZSBsaWJkaXIgYXMgYSBmdXR1cmUgbGli ZGlyLgorKwkgIGNhc2UgIiRmdXR1cmVfbGliZGlycyAiIGluCisrCSAgKiIgJGxpYmRpciAiKikg OzsKKysJICAqKSBmdXR1cmVfbGliZGlycz0iJGZ1dHVyZV9saWJkaXJzICRsaWJkaXIiIDs7Cisr CSAgZXNhYworKwlmaQorKworKwlmdW5jX2Rpcm5hbWUgIiRmaWxlIiAiLyIgIiIKKysJZGlyPSIk ZnVuY19kaXJuYW1lX3Jlc3VsdCIKKysJZGlyPSIkZGlyJG9iamRpciIKKysKKysJaWYgdGVzdCAt biAiJHJlbGlua19jb21tYW5kIjsgdGhlbgorKwkgICMgRGV0ZXJtaW5lIHRoZSBwcmVmaXggdGhl IHVzZXIgaGFzIGFwcGxpZWQgdG8gb3VyIGZ1dHVyZSBkaXIuCisrCSAgaW5zdF9wcmVmaXhfZGly PWAkRUNITyAiWCRkZXN0ZGlyIiB8ICRYc2VkIC1lICJzJSRsaWJkaXJcJCUlImAKKysKKysJICAj IERvbid0IGFsbG93IHRoZSB1c2VyIHRvIHBsYWNlIHVzIG91dHNpZGUgb2Ygb3VyIGV4cGVjdGVk CisrCSAgIyBsb2NhdGlvbiBiL2MgdGhpcyBwcmV2ZW50cyBmaW5kaW5nIGRlcGVuZGVudCBsaWJy YXJpZXMgdGhhdAorKwkgICMgYXJlIGluc3RhbGxlZCB0byB0aGUgc2FtZSBwcmVmaXguCisrCSAg IyBBdCBwcmVzZW50LCB0aGlzIGNoZWNrIGRvZXNuJ3QgYWZmZWN0IHdpbmRvd3MgLmRsbCdzIHRo YXQKKysJICAjIGFyZSBpbnN0YWxsZWQgaW50byAkbGliZGlyLy4uL2JpbiAoY3VycmVudGx5LCB0 aGF0IHdvcmtzIGZpbmUpCisrCSAgIyBidXQgaXQncyBzb21ldGhpbmcgdG8ga2VlcCBhbiBleWUg b24uCisrCSAgdGVzdCAiJGluc3RfcHJlZml4X2RpciIgPSAiJGRlc3RkaXIiICYmIFwKKysJICAg IGZ1bmNfZmF0YWxfZXJyb3IgImVycm9yOiBjYW5ub3QgaW5zdGFsbCBcYCRmaWxlJyB0byBhIGRp cmVjdG9yeSBub3QgZW5kaW5nIGluICRsaWJkaXIiCisrCisrCSAgaWYgdGVzdCAtbiAiJGluc3Rf cHJlZml4X2RpciI7IHRoZW4KKysJICAgICMgU3RpY2sgdGhlIGluc3RfcHJlZml4X2RpciBkYXRh IGludG8gdGhlIGxpbmsgY29tbWFuZC4KKysJICAgIHJlbGlua19jb21tYW5kPWAkRUNITyAiWCRy ZWxpbmtfY29tbWFuZCIgfCAkWHNlZCAtZSAicyVAaW5zdF9wcmVmaXhfZGlyQCUtaW5zdC1wcmVm aXgtZGlyICRpbnN0X3ByZWZpeF9kaXIlImAKKysJICBlbHNlCisrCSAgICByZWxpbmtfY29tbWFu ZD1gJEVDSE8gIlgkcmVsaW5rX2NvbW1hbmQiIHwgJFhzZWQgLWUgInMlQGluc3RfcHJlZml4X2Rp ckAlJSJgCisrCSAgZmkKKysKKysJICBmdW5jX3dhcm5pbmcgInJlbGlua2luZyBcYCRmaWxlJyIK KysJICBmdW5jX3Nob3dfZXZhbCAiJHJlbGlua19jb21tYW5kIiBcCisrCSAgICAnZnVuY19mYXRh bF9lcnJvciAiZXJyb3I6IHJlbGluayBcYCRmaWxlJ1wnJyB3aXRoIHRoZSBhYm92ZSBjb21tYW5k IGJlZm9yZSBpbnN0YWxsaW5nIGl0IicKKysJZmkKKysKKysJIyBTZWUgdGhlIG5hbWVzIG9mIHRo ZSBzaGFyZWQgbGlicmFyeS4KKysJc2V0IGR1bW15ICRsaWJyYXJ5X25hbWVzOyBzaGlmdAorKwlp ZiB0ZXN0IC1uICIkMSI7IHRoZW4KKysJICByZWFsbmFtZT0iJDEiCisrCSAgc2hpZnQKKysKKysJ ICBzcmNuYW1lPSIkcmVhbG5hbWUiCisrCSAgdGVzdCAtbiAiJHJlbGlua19jb21tYW5kIiAmJiBz cmNuYW1lPSIkcmVhbG5hbWUiVAorKworKwkgICMgSW5zdGFsbCB0aGUgc2hhcmVkIGxpYnJhcnkg YW5kIGJ1aWxkIHRoZSBzeW1saW5rcy4KKysJICBmdW5jX3Nob3dfZXZhbCAiJGluc3RhbGxfcHJv ZyAkZGlyLyRzcmNuYW1lICRkZXN0ZGlyLyRyZWFsbmFtZSIgXAorKwkgICAgICAnZXhpdCAkPycK KysJICB0c3RyaXBtZT0iJHN0cmlwbWUiCisrCSAgY2FzZSAkaG9zdF9vcyBpbgorKwkgIGN5Z3dp biogfCBtaW5ndyogfCBwdzMyKiB8IGNlZ2NjKikKKysJICAgIGNhc2UgJHJlYWxuYW1lIGluCisr CSAgICAqLmRsbC5hKQorKwkgICAgICB0c3RyaXBtZT0iIgorKwkgICAgICA7OworKwkgICAgZXNh YworKwkgICAgOzsKKysJICBlc2FjCisrCSAgaWYgdGVzdCAtbiAiJHRzdHJpcG1lIiAmJiB0ZXN0 IC1uICIkc3RyaXBsaWIiOyB0aGVuCisrCSAgICBmdW5jX3Nob3dfZXZhbCAiJHN0cmlwbGliICRk ZXN0ZGlyLyRyZWFsbmFtZSIgJ2V4aXQgJD8nCisrCSAgZmkKKysKKysJICBpZiB0ZXN0ICIkIyIg LWd0IDA7IHRoZW4KKysJICAgICMgRGVsZXRlIHRoZSBvbGQgc3ltbGlua3MsIGFuZCBjcmVhdGUg bmV3IG9uZXMuCisrCSAgICAjIFRyeSBgbG4gLXNmJyBmaXJzdCwgYmVjYXVzZSB0aGUgYGxuJyBi aW5hcnkgbWlnaHQgZGVwZW5kIG9uCisrCSAgICAjIHRoZSBzeW1saW5rIHdlIHJlcGxhY2UhICBT b2xhcmlzIC9iaW4vbG4gZG9lcyBub3QgdW5kZXJzdGFuZCAtZiwKKysJICAgICMgc28gd2UgYWxz byBuZWVkIHRvIHRyeSBybSAmJiBsbiAtcy4KKysJICAgIGZvciBsaW5rbmFtZQorKwkgICAgZG8K KysJICAgICAgdGVzdCAiJGxpbmtuYW1lIiAhPSAiJHJlYWxuYW1lIiBcCisrCQkmJiBmdW5jX3No b3dfZXZhbCAiKGNkICRkZXN0ZGlyICYmIHsgJExOX1MgLWYgJHJlYWxuYW1lICRsaW5rbmFtZSB8 fCB7ICRSTSAkbGlua25hbWUgJiYgJExOX1MgJHJlYWxuYW1lICRsaW5rbmFtZTsgfTsgfSkiCisr CSAgICBkb25lCisrCSAgZmkKKysKKysJICAjIERvIGVhY2ggY29tbWFuZCBpbiB0aGUgcG9zdGlu c3RhbGwgY29tbWFuZHMuCisrCSAgbGliPSIkZGVzdGRpci8kcmVhbG5hbWUiCisrCSAgZnVuY19l eGVjdXRlX2NtZHMgIiRwb3N0aW5zdGFsbF9jbWRzIiAnZXhpdCAkPycKKysJZmkKKysKKysJIyBJ bnN0YWxsIHRoZSBwc2V1ZG8tbGlicmFyeSBmb3IgaW5mb3JtYXRpb24gcHVycG9zZXMuCisrCWZ1 bmNfYmFzZW5hbWUgIiRmaWxlIgorKwluYW1lPSIkZnVuY19iYXNlbmFtZV9yZXN1bHQiCisrCWlu c3RuYW1lPSIkZGlyLyRuYW1lImkKKysJZnVuY19zaG93X2V2YWwgIiRpbnN0YWxsX3Byb2cgJGlu c3RuYW1lICRkZXN0ZGlyLyRuYW1lIiAnZXhpdCAkPycKKysKKysJIyBNYXliZSBpbnN0YWxsIHRo ZSBzdGF0aWMgbGlicmFyeSwgdG9vLgorKwl0ZXN0IC1uICIkb2xkX2xpYnJhcnkiICYmIHN0YXRp Y2xpYnM9IiRzdGF0aWNsaWJzICRkaXIvJG9sZF9saWJyYXJ5IgorKwk7OworKworKyAgICAgICou bG8pCisrCSMgSW5zdGFsbCAoaS5lLiBjb3B5KSBhIGxpYnRvb2wgb2JqZWN0LgorKworKwkjIEZp Z3VyZSBvdXQgZGVzdGluYXRpb24gZmlsZSBuYW1lLCBpZiBpdCB3YXNuJ3QgYWxyZWFkeSBzcGVj aWZpZWQuCisrCWlmIHRlc3QgLW4gIiRkZXN0bmFtZSI7IHRoZW4KKysJICBkZXN0ZmlsZT0iJGRl c3RkaXIvJGRlc3RuYW1lIgorKwllbHNlCisrCSAgZnVuY19iYXNlbmFtZSAiJGZpbGUiCisrCSAg ZGVzdGZpbGU9IiRmdW5jX2Jhc2VuYW1lX3Jlc3VsdCIKKysJICBkZXN0ZmlsZT0iJGRlc3RkaXIv JGRlc3RmaWxlIgorKwlmaQorKworKwkjIERlZHVjZSB0aGUgbmFtZSBvZiB0aGUgZGVzdGluYXRp b24gb2xkLXN0eWxlIG9iamVjdCBmaWxlLgorKwljYXNlICRkZXN0ZmlsZSBpbgorKwkqLmxvKQor KwkgIGZ1bmNfbG8ybyAiJGRlc3RmaWxlIgorKwkgIHN0YXRpY2Rlc3Q9JGZ1bmNfbG8yb19yZXN1 bHQKKysJICA7OworKwkqLiRvYmpleHQpCisrCSAgc3RhdGljZGVzdD0iJGRlc3RmaWxlIgorKwkg IGRlc3RmaWxlPQorKwkgIDs7CisrCSopCisrCSAgZnVuY19mYXRhbF9oZWxwICJjYW5ub3QgY29w eSBhIGxpYnRvb2wgb2JqZWN0IHRvIFxgJGRlc3RmaWxlJyIKKysJICA7OworKwllc2FjCisrCisr CSMgSW5zdGFsbCB0aGUgbGlidG9vbCBvYmplY3QgaWYgcmVxdWVzdGVkLgorKwl0ZXN0IC1uICIk ZGVzdGZpbGUiICYmIFwKKysJICBmdW5jX3Nob3dfZXZhbCAiJGluc3RhbGxfcHJvZyAkZmlsZSAk ZGVzdGZpbGUiICdleGl0ICQ/JworKworKwkjIEluc3RhbGwgdGhlIG9sZCBvYmplY3QgaWYgZW5h YmxlZC4KKysJaWYgdGVzdCAiJGJ1aWxkX29sZF9saWJzIiA9IHllczsgdGhlbgorKwkgICMgRGVk dWNlIHRoZSBuYW1lIG9mIHRoZSBvbGQtc3R5bGUgb2JqZWN0IGZpbGUuCisrCSAgZnVuY19sbzJv ICIkZmlsZSIKKysJICBzdGF0aWNvYmo9JGZ1bmNfbG8yb19yZXN1bHQKKysJICBmdW5jX3Nob3df ZXZhbCAiJGluc3RhbGxfcHJvZyBcJHN0YXRpY29iaiBcJHN0YXRpY2Rlc3QiICdleGl0ICQ/Jwor KwlmaQorKwlleGl0ICRFWElUX1NVQ0NFU1MKKysJOzsKKysKKysgICAgICAqKQorKwkjIEZpZ3Vy ZSBvdXQgZGVzdGluYXRpb24gZmlsZSBuYW1lLCBpZiBpdCB3YXNuJ3QgYWxyZWFkeSBzcGVjaWZp ZWQuCisrCWlmIHRlc3QgLW4gIiRkZXN0bmFtZSI7IHRoZW4KKysJICBkZXN0ZmlsZT0iJGRlc3Rk aXIvJGRlc3RuYW1lIgorKwllbHNlCisrCSAgZnVuY19iYXNlbmFtZSAiJGZpbGUiCisrCSAgZGVz dGZpbGU9IiRmdW5jX2Jhc2VuYW1lX3Jlc3VsdCIKKysJICBkZXN0ZmlsZT0iJGRlc3RkaXIvJGRl c3RmaWxlIgorKwlmaQorKworKwkjIElmIHRoZSBmaWxlIGlzIG1pc3NpbmcsIGFuZCB0aGVyZSBp cyBhIC5leGUgb24gdGhlIGVuZCwgc3RyaXAgaXQKKysJIyBiZWNhdXNlIGl0IGlzIG1vc3QgbGlr ZWx5IGEgbGlidG9vbCBzY3JpcHQgd2UgYWN0dWFsbHkgd2FudCB0bworKwkjIGluc3RhbGwKKysJ c3RyaXBwZWRfZXh0PSIiCisrCWNhc2UgJGZpbGUgaW4KKysJICAqLmV4ZSkKKysJICAgIGlmIHRl c3QgISAtZiAiJGZpbGUiOyB0aGVuCisrCSAgICAgIGZ1bmNfc3RyaXBuYW1lICcnICcuZXhlJyAi JGZpbGUiCisrCSAgICAgIGZpbGU9JGZ1bmNfc3RyaXBuYW1lX3Jlc3VsdAorKwkgICAgICBzdHJp cHBlZF9leHQ9Ii5leGUiCisrCSAgICBmaQorKwkgICAgOzsKKysJZXNhYworKworKwkjIERvIGEg dGVzdCB0byBzZWUgaWYgdGhpcyBpcyByZWFsbHkgYSBsaWJ0b29sIHByb2dyYW0uCisrCWNhc2Ug JGhvc3QgaW4KKysJKmN5Z3dpbiogfCAqbWluZ3cqKQorKwkgICAgaWYgZnVuY19sdHdyYXBwZXJf ZXhlY3V0YWJsZV9wICIkZmlsZSI7IHRoZW4KKysJICAgICAgZnVuY19sdHdyYXBwZXJfc2NyaXB0 bmFtZSAiJGZpbGUiCisrCSAgICAgIHdyYXBwZXI9JGZ1bmNfbHR3cmFwcGVyX3NjcmlwdG5hbWVf cmVzdWx0CisrCSAgICBlbHNlCisrCSAgICAgIGZ1bmNfc3RyaXBuYW1lICcnICcuZXhlJyAiJGZp bGUiCisrCSAgICAgIHdyYXBwZXI9JGZ1bmNfc3RyaXBuYW1lX3Jlc3VsdAorKwkgICAgZmkKKysJ ICAgIDs7CisrCSopCisrCSAgICB3cmFwcGVyPSRmaWxlCisrCSAgICA7OworKwllc2FjCisrCWlm IGZ1bmNfbHR3cmFwcGVyX3NjcmlwdF9wICIkd3JhcHBlciI7IHRoZW4KKysJICBub3RpbnN0X2Rl cGxpYnM9CisrCSAgcmVsaW5rX2NvbW1hbmQ9CisrCisrCSAgZnVuY19zb3VyY2UgIiR3cmFwcGVy IgorKworKwkgICMgQ2hlY2sgdGhlIHZhcmlhYmxlcyB0aGF0IHNob3VsZCBoYXZlIGJlZW4gc2V0 LgorKwkgIHRlc3QgLXogIiRnZW5lcmF0ZWRfYnlfbGlidG9vbF92ZXJzaW9uIiAmJiBcCisrCSAg ICBmdW5jX2ZhdGFsX2Vycm9yICJpbnZhbGlkIGxpYnRvb2wgd3JhcHBlciBzY3JpcHQgXGAkd3Jh cHBlciciCisrCisrCSAgZmluYWxpemU9eWVzCisrCSAgZm9yIGxpYiBpbiAkbm90aW5zdF9kZXBs aWJzOyBkbworKwkgICAgIyBDaGVjayB0byBzZWUgdGhhdCBlYWNoIGxpYnJhcnkgaXMgaW5zdGFs bGVkLgorKwkgICAgbGliZGlyPQorKwkgICAgaWYgdGVzdCAtZiAiJGxpYiI7IHRoZW4KKysJICAg ICAgZnVuY19zb3VyY2UgIiRsaWIiCisrCSAgICBmaQorKwkgICAgbGliZmlsZT0iJGxpYmRpci8i YCRFQ0hPICJYJGxpYiIgfCAkWHNlZCAtZSAncyVeLiovJSVnJ2AgIyMjIHRlc3RzdWl0ZTogc2tp cCBuZXN0ZWQgcXVvdGluZyB0ZXN0CisrCSAgICBpZiB0ZXN0IC1uICIkbGliZGlyIiAmJiB0ZXN0 ICEgLWYgIiRsaWJmaWxlIjsgdGhlbgorKwkgICAgICBmdW5jX3dhcm5pbmcgIlxgJGxpYicgaGFz IG5vdCBiZWVuIGluc3RhbGxlZCBpbiBcYCRsaWJkaXInIgorKwkgICAgICBmaW5hbGl6ZT1ubwor KwkgICAgZmkKKysJICBkb25lCisrCisrCSAgcmVsaW5rX2NvbW1hbmQ9CisrCSAgZnVuY19zb3Vy Y2UgIiR3cmFwcGVyIgorKworKwkgIG91dHB1dG5hbWU9CisrCSAgaWYgdGVzdCAiJGZhc3RfaW5z dGFsbCIgPSBubyAmJiB0ZXN0IC1uICIkcmVsaW5rX2NvbW1hbmQiOyB0aGVuCisrCSAgICAkb3B0 X2RyeV9ydW4gfHwgeworKwkgICAgICBpZiB0ZXN0ICIkZmluYWxpemUiID0geWVzOyB0aGVuCisr CSAgICAgICAgdG1wZGlyPWBmdW5jX21rdGVtcGRpcmAKKysJCWZ1bmNfYmFzZW5hbWUgIiRmaWxl JHN0cmlwcGVkX2V4dCIKKysJCWZpbGU9IiRmdW5jX2Jhc2VuYW1lX3Jlc3VsdCIKKysJICAgICAg ICBvdXRwdXRuYW1lPSIkdG1wZGlyLyRmaWxlIgorKwkgICAgICAgICMgUmVwbGFjZSB0aGUgb3V0 cHV0IGZpbGUgc3BlY2lmaWNhdGlvbi4KKysJICAgICAgICByZWxpbmtfY29tbWFuZD1gJEVDSE8g IlgkcmVsaW5rX2NvbW1hbmQiIHwgJFhzZWQgLWUgJ3MlQE9VVFBVVEAlJyIkb3V0cHV0bmFtZSIn JWcnYAorKworKwkgICAgICAgICRvcHRfc2lsZW50IHx8IHsKKysJICAgICAgICAgIGZ1bmNfcXVv dGVfZm9yX2V4cGFuZCAiJHJlbGlua19jb21tYW5kIgorKwkJICBldmFsICJmdW5jX2VjaG8gJGZ1 bmNfcXVvdGVfZm9yX2V4cGFuZF9yZXN1bHQiCisrCSAgICAgICAgfQorKwkgICAgICAgIGlmIGV2 YWwgIiRyZWxpbmtfY29tbWFuZCI7IHRoZW4gOgorKwkgICAgICAgICAgZWxzZQorKwkJICBmdW5j X2Vycm9yICJlcnJvcjogcmVsaW5rIFxgJGZpbGUnIHdpdGggdGhlIGFib3ZlIGNvbW1hbmQgYmVm b3JlIGluc3RhbGxpbmcgaXQiCisrCQkgICRvcHRfZHJ5X3J1biB8fCAke1JNfXIgIiR0bXBkaXIi CisrCQkgIGNvbnRpbnVlCisrCSAgICAgICAgZmkKKysJICAgICAgICBmaWxlPSIkb3V0cHV0bmFt ZSIKKysJICAgICAgZWxzZQorKwkgICAgICAgIGZ1bmNfd2FybmluZyAiY2Fubm90IHJlbGluayBc YCRmaWxlJyIKKysJICAgICAgZmkKKysJICAgIH0KKysJICBlbHNlCisrCSAgICAjIEluc3RhbGwg dGhlIGJpbmFyeSB0aGF0IHdlIGNvbXBpbGVkIGVhcmxpZXIuCisrCSAgICBmaWxlPWAkRUNITyAi WCRmaWxlJHN0cmlwcGVkX2V4dCIgfCAkWHNlZCAtZSAicyVcKFteL10qXCkkJSRvYmpkaXIvXDEl ImAKKysJICBmaQorKwlmaQorKworKwkjIHJlbW92ZSAuZXhlIHNpbmNlIGN5Z3dpbiAvdXNyL2Jp bi9pbnN0YWxsIHdpbGwgYXBwZW5kIGFub3RoZXIKKysJIyBvbmUgYW55d2F5CisrCWNhc2UgJGlu c3RhbGxfcHJvZywkaG9zdCBpbgorKwkqL3Vzci9iaW4vaW5zdGFsbCosKmN5Z3dpbiopCisrCSAg Y2FzZSAkZmlsZTokZGVzdGZpbGUgaW4KKysJICAqLmV4ZToqLmV4ZSkKKysJICAgICMgdGhpcyBp cyBvaworKwkgICAgOzsKKysJICAqLmV4ZToqKQorKwkgICAgZGVzdGZpbGU9JGRlc3RmaWxlLmV4 ZQorKwkgICAgOzsKKysJICAqOiouZXhlKQorKwkgICAgZnVuY19zdHJpcG5hbWUgJycgJy5leGUn ICIkZGVzdGZpbGUiCisrCSAgICBkZXN0ZmlsZT0kZnVuY19zdHJpcG5hbWVfcmVzdWx0CisrCSAg ICA7OworKwkgIGVzYWMKKysJICA7OworKwllc2FjCisrCWZ1bmNfc2hvd19ldmFsICIkaW5zdGFs bF9wcm9nXCRzdHJpcG1lIFwkZmlsZSBcJGRlc3RmaWxlIiAnZXhpdCAkPycKKysJJG9wdF9kcnlf cnVuIHx8IGlmIHRlc3QgLW4gIiRvdXRwdXRuYW1lIjsgdGhlbgorKwkgICR7Uk19ciAiJHRtcGRp ciIKKysJZmkKKysJOzsKKysgICAgICBlc2FjCisrICAgIGRvbmUKKysKKysgICAgZm9yIGZpbGUg aW4gJHN0YXRpY2xpYnM7IGRvCisrICAgICAgZnVuY19iYXNlbmFtZSAiJGZpbGUiCisrICAgICAg bmFtZT0iJGZ1bmNfYmFzZW5hbWVfcmVzdWx0IgorKworKyAgICAgICMgU2V0IHVwIHRoZSByYW5s aWIgcGFyYW1ldGVycy4KKysgICAgICBvbGRsaWI9IiRkZXN0ZGlyLyRuYW1lIgorKworKyAgICAg IGZ1bmNfc2hvd19ldmFsICIkaW5zdGFsbF9wcm9nIFwkZmlsZSBcJG9sZGxpYiIgJ2V4aXQgJD8n CisrCisrICAgICAgaWYgdGVzdCAtbiAiJHN0cmlwbWUiICYmIHRlc3QgLW4gIiRvbGRfc3RyaXBs aWIiOyB0aGVuCisrCWZ1bmNfc2hvd19ldmFsICIkb2xkX3N0cmlwbGliICRvbGRsaWIiICdleGl0 ICQ/JworKyAgICAgIGZpCisrCisrICAgICAgIyBEbyBlYWNoIGNvbW1hbmQgaW4gdGhlIHBvc3Rp bnN0YWxsIGNvbW1hbmRzLgorKyAgICAgIGZ1bmNfZXhlY3V0ZV9jbWRzICIkb2xkX3Bvc3RpbnN0 YWxsX2NtZHMiICdleGl0ICQ/JworKyAgICBkb25lCisrCisrICAgIHRlc3QgLW4gIiRmdXR1cmVf bGliZGlycyIgJiYgXAorKyAgICAgIGZ1bmNfd2FybmluZyAicmVtZW1iZXIgdG8gcnVuIFxgJHBy b2duYW1lIC0tZmluaXNoJGZ1dHVyZV9saWJkaXJzJyIKKysKKysgICAgaWYgdGVzdCAtbiAiJGN1 cnJlbnRfbGliZGlycyI7IHRoZW4KKysgICAgICAjIE1heWJlIGp1c3QgZG8gYSBkcnkgcnVuLgor KyAgICAgICRvcHRfZHJ5X3J1biAmJiBjdXJyZW50X2xpYmRpcnM9IiAtbiRjdXJyZW50X2xpYmRp cnMiCisrICAgICAgZXhlY19jbWQ9JyRTSEVMTCAkcHJvZ3BhdGggJHByZXNlcnZlX2FyZ3MgLS1m aW5pc2gkY3VycmVudF9saWJkaXJzJworKyAgICBlbHNlCisrICAgICAgZXhpdCAkRVhJVF9TVUND RVNTCisrICAgIGZpCisrfQorKworK3Rlc3QgIiRtb2RlIiA9IGluc3RhbGwgJiYgZnVuY19tb2Rl X2luc3RhbGwgJHsxKyIkQCJ9CisrCisrCisrIyBmdW5jX2dlbmVyYXRlX2Rsc3ltcyBvdXRwdXRu YW1lIG9yaWdpbmF0b3IgcGljX3AKKysjIEV4dHJhY3Qgc3ltYm9scyBmcm9tIGRscHJlZmlsZXMg YW5kIGNyZWF0ZSAke291dHB1dG5hbWV9Uy5vIHdpdGgKKysjIGEgZGxwcmVvcGVuIHN5bWJvbCB0 YWJsZS4KKytmdW5jX2dlbmVyYXRlX2Rsc3ltcyAoKQorK3sKKysgICAgJG9wdF9kZWJ1ZworKyAg ICBteV9vdXRwdXRuYW1lPSIkMSIKKysgICAgbXlfb3JpZ2luYXRvcj0iJDIiCisrICAgIG15X3Bp Y19wPSIkezMtbm99IgorKyAgICBteV9wcmVmaXg9YCRFQ0hPICIkbXlfb3JpZ2luYXRvciIgfCBz ZWQgJ3MlW15hLXpBLVowLTldJV8lZydgCisrICAgIG15X2Rsc3ltcz0KKysKKysgICAgaWYgdGVz dCAtbiAiJGRsZmlsZXMkZGxwcmVmaWxlcyIgfHwgdGVzdCAiJGRsc2VsZiIgIT0gbm87IHRoZW4K KysgICAgICBpZiB0ZXN0IC1uICIkTk0iICYmIHRlc3QgLW4gIiRnbG9iYWxfc3ltYm9sX3BpcGUi OyB0aGVuCisrCW15X2Rsc3ltcz0iJHtteV9vdXRwdXRuYW1lfVMuYyIKKysgICAgICBlbHNlCisr CWZ1bmNfZXJyb3IgIm5vdCBjb25maWd1cmVkIHRvIGV4dHJhY3QgZ2xvYmFsIHN5bWJvbHMgZnJv bSBkbHByZW9wZW5lZCBmaWxlcyIKKysgICAgICBmaQorKyAgICBmaQorKworKyAgICBpZiB0ZXN0 IC1uICIkbXlfZGxzeW1zIjsgdGhlbgorKyAgICAgIGNhc2UgJG15X2Rsc3ltcyBpbgorKyAgICAg ICIiKSA7OworKyAgICAgICouYykKKysJIyBEaXNjb3ZlciB0aGUgbmxpc3Qgb2YgZWFjaCBvZiB0 aGUgZGxmaWxlcy4KKysJbmxpc3Q9IiRvdXRwdXRfb2JqZGlyLyR7bXlfb3V0cHV0bmFtZX0ubm0i CisrCisrCWZ1bmNfc2hvd19ldmFsICIkUk0gJG5saXN0ICR7bmxpc3R9UyAke25saXN0fVQiCisr CisrCSMgUGFyc2UgdGhlIG5hbWUgbGlzdCBpbnRvIGEgc291cmNlIGZpbGUuCisrCWZ1bmNfdmVy Ym9zZSAiY3JlYXRpbmcgJG91dHB1dF9vYmpkaXIvJG15X2Rsc3ltcyIKKysKKysJJG9wdF9kcnlf cnVuIHx8ICRFQ0hPID4gIiRvdXRwdXRfb2JqZGlyLyRteV9kbHN5bXMiICJcCisrLyogJG15X2Rs c3ltcyAtIHN5bWJvbCByZXNvbHV0aW9uIHRhYmxlIGZvciBcYCRteV9vdXRwdXRuYW1lJyBkbHN5 bSBlbXVsYXRpb24uICovCisrLyogR2VuZXJhdGVkIGJ5ICRQUk9HUkFNIChHTlUgJFBBQ0tBR0Uk VElNRVNUQU1QKSAkVkVSU0lPTiAqLworKworKyNpZmRlZiBfX2NwbHVzcGx1cworK2V4dGVybiBc IkNcIiB7CisrI2VuZGlmCisrCisrLyogRXh0ZXJuYWwgc3ltYm9sIGRlY2xhcmF0aW9ucyBmb3Ig dGhlIGNvbXBpbGVyLiAqL1wKKysiCisrCisrCWlmIHRlc3QgIiRkbHNlbGYiID0geWVzOyB0aGVu CisrCSAgZnVuY192ZXJib3NlICJnZW5lcmF0aW5nIHN5bWJvbCBsaXN0IGZvciBcYCRvdXRwdXQn IgorKworKwkgICRvcHRfZHJ5X3J1biB8fCBlY2hvICc6IEBQUk9HUkFNQCAnID4gIiRubGlzdCIK KysKKysJICAjIEFkZCBvdXIgb3duIHByb2dyYW0gb2JqZWN0cyB0byB0aGUgc3ltYm9sIGxpc3Qu CisrCSAgcHJvZ2ZpbGVzPWAkRUNITyAiWCRvYmpzJG9sZF9kZXBsaWJzIiB8ICRTUDJOTCB8ICRY c2VkIC1lICIkbG8ybyIgfCAkTkwyU1BgCisrCSAgZm9yIHByb2dmaWxlIGluICRwcm9nZmlsZXM7 IGRvCisrCSAgICBmdW5jX3ZlcmJvc2UgImV4dHJhY3RpbmcgZ2xvYmFsIEMgc3ltYm9scyBmcm9t IFxgJHByb2dmaWxlJyIKKysJICAgICRvcHRfZHJ5X3J1biB8fCBldmFsICIkTk0gJHByb2dmaWxl IHwgJGdsb2JhbF9zeW1ib2xfcGlwZSA+PiAnJG5saXN0JyIKKysJICBkb25lCisrCisrCSAgaWYg dGVzdCAtbiAiJGV4Y2x1ZGVfZXhwc3ltcyI7IHRoZW4KKysJICAgICRvcHRfZHJ5X3J1biB8fCB7 CisrCSAgICAgIGV2YWwgJyRFR1JFUCAtdiAiICgkZXhjbHVkZV9leHBzeW1zKSQiICIkbmxpc3Qi ID4gIiRubGlzdCJUJworKwkgICAgICBldmFsICckTVYgIiRubGlzdCJUICIkbmxpc3QiJworKwkg ICAgfQorKwkgIGZpCisrCisrCSAgaWYgdGVzdCAtbiAiJGV4cG9ydF9zeW1ib2xzX3JlZ2V4Ijsg dGhlbgorKwkgICAgJG9wdF9kcnlfcnVuIHx8IHsKKysJICAgICAgZXZhbCAnJEVHUkVQIC1lICIk ZXhwb3J0X3N5bWJvbHNfcmVnZXgiICIkbmxpc3QiID4gIiRubGlzdCJUJworKwkgICAgICBldmFs ICckTVYgIiRubGlzdCJUICIkbmxpc3QiJworKwkgICAgfQorKwkgIGZpCisrCisrCSAgIyBQcmVw YXJlIHRoZSBsaXN0IG9mIGV4cG9ydGVkIHN5bWJvbHMKKysJICBpZiB0ZXN0IC16ICIkZXhwb3J0 X3N5bWJvbHMiOyB0aGVuCisrCSAgICBleHBvcnRfc3ltYm9scz0iJG91dHB1dF9vYmpkaXIvJG91 dHB1dG5hbWUuZXhwIgorKwkgICAgJG9wdF9kcnlfcnVuIHx8IHsKKysJICAgICAgJFJNICRleHBv cnRfc3ltYm9scworKwkgICAgICBldmFsICIke1NFRH0gLW4gLWUgJy9eOiBAUFJPR1JBTUAgJC9k JyAtZSAncy9eLiogXCguKlwpJC9cMS9wJyAiJzwgIiRubGlzdCIgPiAiJGV4cG9ydF9zeW1ib2xz IicKKysJICAgICAgY2FzZSAkaG9zdCBpbgorKwkgICAgICAqY3lnd2luKiB8ICptaW5ndyogfCAq Y2VnY2MqICkKKysgICAgICAgICAgICAgICAgZXZhbCAiZWNobyBFWFBPUlRTICInPiAiJG91dHB1 dF9vYmpkaXIvJG91dHB1dG5hbWUuZGVmIicKKysgICAgICAgICAgICAgICAgZXZhbCAnY2F0ICIk ZXhwb3J0X3N5bWJvbHMiID4+ICIkb3V0cHV0X29iamRpci8kb3V0cHV0bmFtZS5kZWYiJworKwkg ICAgICAgIDs7CisrCSAgICAgIGVzYWMKKysJICAgIH0KKysJICBlbHNlCisrCSAgICAkb3B0X2Ry eV9ydW4gfHwgeworKwkgICAgICBldmFsICIke1NFRH0gLWUgJ3MvXChbXS5bKl4kXVwpL1xcXFxc MS9nJyAtZSAncy9eLyAvJyAtZSAncy8kLyQvJyInIDwgIiRleHBvcnRfc3ltYm9scyIgPiAiJG91 dHB1dF9vYmpkaXIvJG91dHB1dG5hbWUuZXhwIicKKysJICAgICAgZXZhbCAnJEdSRVAgLWYgIiRv dXRwdXRfb2JqZGlyLyRvdXRwdXRuYW1lLmV4cCIgPCAiJG5saXN0IiA+ICIkbmxpc3QiVCcKKysJ ICAgICAgZXZhbCAnJE1WICIkbmxpc3QiVCAiJG5saXN0IicKKysJICAgICAgY2FzZSAkaG9zdCBp bgorKwkgICAgICAgICpjeWd3aW4gfCAqbWluZ3cqIHwgKmNlZ2NjKiApCisrCSAgICAgICAgICBl dmFsICJlY2hvIEVYUE9SVFMgIic+ICIkb3V0cHV0X29iamRpci8kb3V0cHV0bmFtZS5kZWYiJwor KwkgICAgICAgICAgZXZhbCAnY2F0ICIkbmxpc3QiID4+ICIkb3V0cHV0X29iamRpci8kb3V0cHV0 bmFtZS5kZWYiJworKwkgICAgICAgICAgOzsKKysJICAgICAgZXNhYworKwkgICAgfQorKwkgIGZp CisrCWZpCisrCisrCWZvciBkbHByZWZpbGUgaW4gJGRscHJlZmlsZXM7IGRvCisrCSAgZnVuY192 ZXJib3NlICJleHRyYWN0aW5nIGdsb2JhbCBDIHN5bWJvbHMgZnJvbSBcYCRkbHByZWZpbGUnIgor KwkgIGZ1bmNfYmFzZW5hbWUgIiRkbHByZWZpbGUiCisrCSAgbmFtZT0iJGZ1bmNfYmFzZW5hbWVf cmVzdWx0IgorKwkgICRvcHRfZHJ5X3J1biB8fCB7CisrCSAgICBldmFsICckRUNITyAiOiAkbmFt ZSAiID4+ICIkbmxpc3QiJworKwkgICAgZXZhbCAiJE5NICRkbHByZWZpbGUgMj4vZGV2L251bGwg fCAkZ2xvYmFsX3N5bWJvbF9waXBlID4+ICckbmxpc3QnIgorKwkgIH0KKysJZG9uZQorKworKwkk b3B0X2RyeV9ydW4gfHwgeworKwkgICMgTWFrZSBzdXJlIHdlIGhhdmUgYXQgbGVhc3QgYW4gZW1w dHkgZmlsZS4KKysJICB0ZXN0IC1mICIkbmxpc3QiIHx8IDogPiAiJG5saXN0IgorKworKwkgIGlm IHRlc3QgLW4gIiRleGNsdWRlX2V4cHN5bXMiOyB0aGVuCisrCSAgICAkRUdSRVAgLXYgIiAoJGV4 Y2x1ZGVfZXhwc3ltcykkIiAiJG5saXN0IiA+ICIkbmxpc3QiVAorKwkgICAgJE1WICIkbmxpc3Qi VCAiJG5saXN0IgorKwkgIGZpCisrCisrCSAgIyBUcnkgc29ydGluZyBhbmQgdW5pcXVpZnlpbmcg dGhlIG91dHB1dC4KKysJICBpZiAkR1JFUCAtdiAiXjogIiA8ICIkbmxpc3QiIHwKKysJICAgICAg aWYgc29ydCAtayAzIDwvZGV2L251bGwgPi9kZXYvbnVsbCAyPiYxOyB0aGVuCisrCQlzb3J0IC1r IDMKKysJICAgICAgZWxzZQorKwkJc29ydCArMgorKwkgICAgICBmaSB8CisrCSAgICAgIHVuaXEg PiAiJG5saXN0IlM7IHRoZW4KKysJICAgIDoKKysJICBlbHNlCisrCSAgICAkR1JFUCAtdiAiXjog IiA8ICIkbmxpc3QiID4gIiRubGlzdCJTCisrCSAgZmkKKysKKysJICBpZiB0ZXN0IC1mICIkbmxp c3QiUzsgdGhlbgorKwkgICAgZXZhbCAiJGdsb2JhbF9zeW1ib2xfdG9fY2RlY2wiJyA8ICIkbmxp c3QiUyA+PiAiJG91dHB1dF9vYmpkaXIvJG15X2Rsc3ltcyInCisrCSAgZWxzZQorKwkgICAgJEVD SE8gJy8qIE5PTkUgKi8nID4+ICIkb3V0cHV0X29iamRpci8kbXlfZGxzeW1zIgorKwkgIGZpCisr CisrCSAgJEVDSE8gPj4gIiRvdXRwdXRfb2JqZGlyLyRteV9kbHN5bXMiICJcCisrCisrLyogVGhl IG1hcHBpbmcgYmV0d2VlbiBzeW1ib2wgbmFtZXMgYW5kIHN5bWJvbHMuICAqLworK3R5cGVkZWYg c3RydWN0IHsKKysgIGNvbnN0IGNoYXIgKm5hbWU7CisrICB2b2lkICphZGRyZXNzOworK30gbHRf ZGxzeW1saXN0OworKyIKKysJICBjYXNlICRob3N0IGluCisrCSAgKmN5Z3dpbiogfCAqbWluZ3cq IHwgKmNlZ2NjKiApCisrCSAgICAkRUNITyA+PiAiJG91dHB1dF9vYmpkaXIvJG15X2Rsc3ltcyIg IlwKKysvKiBEQVRBIGltcG9ydHMgZnJvbSBETExzIG9uIFdJTjMyIGNvbid0IGJlIGNvbnN0LCBi ZWNhdXNlCisrICAgcnVudGltZSByZWxvY2F0aW9ucyBhcmUgcGVyZm9ybWVkIC0tIHNlZSBsZCdz IGRvY3VtZW50YXRpb24KKysgICBvbiBwc2V1ZG8tcmVsb2NzLiAgKi8iCisrCSAgICBsdF9kbHN5 bV9jb25zdD0gOzsKKysJICAqb3NmNSopCisrCSAgICBlY2hvID4+ICIkb3V0cHV0X29iamRpci8k bXlfZGxzeW1zIiAiXAorKy8qIFRoaXMgc3lzdGVtIGRvZXMgbm90IGNvcGUgd2VsbCB3aXRoIHJl bG9jYXRpb25zIGluIGNvbnN0IGRhdGEgKi8iCisrCSAgICBsdF9kbHN5bV9jb25zdD0gOzsKKysJ ICAqKQorKwkgICAgbHRfZGxzeW1fY29uc3Q9Y29uc3QgOzsKKysJICBlc2FjCisrCisrCSAgJEVD SE8gPj4gIiRvdXRwdXRfb2JqZGlyLyRteV9kbHN5bXMiICJcCisrZXh0ZXJuICRsdF9kbHN5bV9j b25zdCBsdF9kbHN5bWxpc3QKKytsdF8ke215X3ByZWZpeH1fTFRYX3ByZWxvYWRlZF9zeW1ib2xz W107CisrJGx0X2Rsc3ltX2NvbnN0IGx0X2Rsc3ltbGlzdAorK2x0XyR7bXlfcHJlZml4fV9MVFhf cHJlbG9hZGVkX3N5bWJvbHNbXSA9Cisre1wKKysgIHsgXCIkbXlfb3JpZ2luYXRvclwiLCAodm9p ZCAqKSAwIH0sIgorKworKwkgIGNhc2UgJG5lZWRfbGliX3ByZWZpeCBpbgorKwkgIG5vKQorKwkg ICAgZXZhbCAiJGdsb2JhbF9zeW1ib2xfdG9fY19uYW1lX2FkZHJlc3MiIDwgIiRubGlzdCIgPj4g IiRvdXRwdXRfb2JqZGlyLyRteV9kbHN5bXMiCisrCSAgICA7OworKwkgICopCisrCSAgICBldmFs ICIkZ2xvYmFsX3N5bWJvbF90b19jX25hbWVfYWRkcmVzc19saWJfcHJlZml4IiA8ICIkbmxpc3Qi ID4+ICIkb3V0cHV0X29iamRpci8kbXlfZGxzeW1zIgorKwkgICAgOzsKKysJICBlc2FjCisrCSAg JEVDSE8gPj4gIiRvdXRwdXRfb2JqZGlyLyRteV9kbHN5bXMiICJcCisrICB7MCwgKHZvaWQgKikg MH0KKyt9OworKworKy8qIFRoaXMgd29ya3MgYXJvdW5kIGEgcHJvYmxlbSBpbiBGcmVlQlNEIGxp bmtlciAqLworKyNpZmRlZiBGUkVFQlNEX1dPUktBUk9VTkQKKytzdGF0aWMgY29uc3Qgdm9pZCAq bHRfcHJlbG9hZGVkX3NldHVwKCkgeworKyAgcmV0dXJuIGx0XyR7bXlfcHJlZml4fV9MVFhfcHJl bG9hZGVkX3N5bWJvbHM7CisrfQorKyNlbmRpZgorKworKyNpZmRlZiBfX2NwbHVzcGx1cworK30K KysjZW5kaWZcCisrIgorKwl9ICMgISRvcHRfZHJ5X3J1bgorKworKwlwaWNfZmxhZ19mb3Jfc3lt dGFibGU9CisrCWNhc2UgIiRjb21waWxlX2NvbW1hbmQgIiBpbgorKwkqIiAtc3RhdGljICIqKSA7 OworKwkqKQorKwkgIGNhc2UgJGhvc3QgaW4KKysJICAjIGNvbXBpbGluZyB0aGUgc3ltYm9sIHRh YmxlIGZpbGUgd2l0aCBwaWNfZmxhZyB3b3JrcyBhcm91bmQKKysJICAjIGEgRnJlZUJTRCBidWcg dGhhdCBjYXVzZXMgcHJvZ3JhbXMgdG8gY3Jhc2ggd2hlbiAtbG0gaXMKKysJICAjIGxpbmtlZCBi ZWZvcmUgYW55IG90aGVyIFBJQyBvYmplY3QuICBCdXQgd2UgbXVzdCBub3QgdXNlCisrCSAgIyBw aWNfZmxhZyB3aGVuIGxpbmtpbmcgd2l0aCAtc3RhdGljLiAgVGhlIHByb2JsZW0gZXhpc3RzIGlu CisrCSAgIyBGcmVlQlNEIDIuMi42IGFuZCBpcyBmaXhlZCBpbiBGcmVlQlNEIDMuMS4KKysJICAq LSotZnJlZWJzZDIqfCotKi1mcmVlYnNkMy4wKnwqLSotZnJlZWJzZGVsZjMuMCopCisrCSAgICBw aWNfZmxhZ19mb3Jfc3ltdGFibGU9IiAkcGljX2ZsYWcgLURGUkVFQlNEX1dPUktBUk9VTkQiIDs7 CisrCSAgKi0qLWhwdXgqKQorKwkgICAgcGljX2ZsYWdfZm9yX3N5bXRhYmxlPSIgJHBpY19mbGFn IiAgOzsKKysJICAqKQorKwkgICAgaWYgdGVzdCAiWCRteV9waWNfcCIgIT0gWG5vOyB0aGVuCisr CSAgICAgIHBpY19mbGFnX2Zvcl9zeW10YWJsZT0iICRwaWNfZmxhZyIKKysJICAgIGZpCisrCSAg ICA7OworKwkgIGVzYWMKKysJICA7OworKwllc2FjCisrCXN5bXRhYl9jZmxhZ3M9CisrCWZvciBh cmcgaW4gJExUQ0ZMQUdTOyBkbworKwkgIGNhc2UgJGFyZyBpbgorKwkgIC1waWUgfCAtZnBpZSB8 IC1mUElFKSA7OworKwkgICopIHN5bXRhYl9jZmxhZ3M9IiRzeW10YWJfY2ZsYWdzICRhcmciIDs7 CisrCSAgZXNhYworKwlkb25lCisrCisrCSMgTm93IGNvbXBpbGUgdGhlIGR5bmFtaWMgc3ltYm9s IGZpbGUuCisrCWZ1bmNfc2hvd19ldmFsICcoY2QgJG91dHB1dF9vYmpkaXIgJiYgJExUQ0Mkc3lt dGFiX2NmbGFncyAtYyRub19idWlsdGluX2ZsYWckcGljX2ZsYWdfZm9yX3N5bXRhYmxlICIkbXlf ZGxzeW1zIiknICdleGl0ICQ/JworKworKwkjIENsZWFuIHVwIHRoZSBnZW5lcmF0ZWQgZmlsZXMu CisrCWZ1bmNfc2hvd19ldmFsICckUk0gIiRvdXRwdXRfb2JqZGlyLyRteV9kbHN5bXMiICIkbmxp c3QiICIke25saXN0fVMiICIke25saXN0fVQiJworKworKwkjIFRyYW5zZm9ybSB0aGUgc3ltYm9s IGZpbGUgaW50byB0aGUgY29ycmVjdCBuYW1lLgorKwlzeW1maWxlb2JqPSIkb3V0cHV0X29iamRp ci8ke215X291dHB1dG5hbWV9Uy4kb2JqZXh0IgorKwljYXNlICRob3N0IGluCisrCSpjeWd3aW4q IHwgKm1pbmd3KiB8ICpjZWdjYyogKQorKwkgIGlmIHRlc3QgLWYgIiRvdXRwdXRfb2JqZGlyLyRt eV9vdXRwdXRuYW1lLmRlZiI7IHRoZW4KKysJICAgIGNvbXBpbGVfY29tbWFuZD1gJEVDSE8gIlgk Y29tcGlsZV9jb21tYW5kIiB8ICRYc2VkIC1lICJzJUBTWU1GSUxFQCUkb3V0cHV0X29iamRpci8k bXlfb3V0cHV0bmFtZS5kZWYgJHN5bWZpbGVvYmolImAKKysJICAgIGZpbmFsaXplX2NvbW1hbmQ9 YCRFQ0hPICJYJGZpbmFsaXplX2NvbW1hbmQiIHwgJFhzZWQgLWUgInMlQFNZTUZJTEVAJSRvdXRw dXRfb2JqZGlyLyRteV9vdXRwdXRuYW1lLmRlZiAkc3ltZmlsZW9iaiUiYAorKwkgIGVsc2UKKysJ ICAgIGNvbXBpbGVfY29tbWFuZD1gJEVDSE8gIlgkY29tcGlsZV9jb21tYW5kIiB8ICRYc2VkIC1l ICJzJUBTWU1GSUxFQCUkc3ltZmlsZW9iaiUiYAorKwkgICAgZmluYWxpemVfY29tbWFuZD1gJEVD SE8gIlgkZmluYWxpemVfY29tbWFuZCIgfCAkWHNlZCAtZSAicyVAU1lNRklMRUAlJHN5bWZpbGVv YmolImAKKysJICBmaQorKwkgIDs7CisrCSopCisrCSAgY29tcGlsZV9jb21tYW5kPWAkRUNITyAi WCRjb21waWxlX2NvbW1hbmQiIHwgJFhzZWQgLWUgInMlQFNZTUZJTEVAJSRzeW1maWxlb2JqJSJg CisrCSAgZmluYWxpemVfY29tbWFuZD1gJEVDSE8gIlgkZmluYWxpemVfY29tbWFuZCIgfCAkWHNl ZCAtZSAicyVAU1lNRklMRUAlJHN5bWZpbGVvYmolImAKKysJICA7OworKwllc2FjCisrCTs7Cisr ICAgICAgKikKKysJZnVuY19mYXRhbF9lcnJvciAidW5rbm93biBzdWZmaXggZm9yIFxgJG15X2Rs c3ltcyciCisrCTs7CisrICAgICAgZXNhYworKyAgICBlbHNlCisrICAgICAgIyBXZSBrZWVwIGdv aW5nIGp1c3QgaW4gY2FzZSB0aGUgdXNlciBkaWRuJ3QgcmVmZXIgdG8KKysgICAgICAjIGx0X3By ZWxvYWRlZF9zeW1ib2xzLiAgVGhlIGxpbmtlciB3aWxsIGZhaWwgaWYgZ2xvYmFsX3N5bWJvbF9w aXBlCisrICAgICAgIyByZWFsbHkgd2FzIHJlcXVpcmVkLgorKworKyAgICAgICMgTnVsbGlmeSB0 aGUgc3ltYm9sIGZpbGUuCisrICAgICAgY29tcGlsZV9jb21tYW5kPWAkRUNITyAiWCRjb21waWxl X2NvbW1hbmQiIHwgJFhzZWQgLWUgInMlIEBTWU1GSUxFQCUlImAKKysgICAgICBmaW5hbGl6ZV9j b21tYW5kPWAkRUNITyAiWCRmaW5hbGl6ZV9jb21tYW5kIiB8ICRYc2VkIC1lICJzJSBAU1lNRklM RUAlJSJgCisrICAgIGZpCisrfQorKworKyMgZnVuY193aW4zMl9saWJpZCBhcmcKKysjIHJldHVy biB0aGUgbGlicmFyeSB0eXBlIG9mIGZpbGUgJ2FyZycKKysjCisrIyBOZWVkIGEgbG90IG9mIGdv byB0byBoYW5kbGUgKmJvdGgqIERMTHMgYW5kIGltcG9ydCBsaWJzCisrIyBIYXMgdG8gYmUgYSBz aGVsbCBmdW5jdGlvbiBpbiBvcmRlciB0byAnZWF0JyB0aGUgYXJndW1lbnQKKysjIHRoYXQgaXMg c3VwcGxpZWQgd2hlbiAkZmlsZV9tYWdpY19jb21tYW5kIGlzIGNhbGxlZC4KKytmdW5jX3dpbjMy X2xpYmlkICgpCisreworKyAgJG9wdF9kZWJ1ZworKyAgd2luMzJfbGliaWRfdHlwZT0idW5rbm93 biIKKysgIHdpbjMyX2ZpbGVyZXM9YGZpbGUgLUwgJDEgMj4vZGV2L251bGxgCisrICBjYXNlICR3 aW4zMl9maWxlcmVzIGluCisrICAqYXJcIGFyY2hpdmVcIGltcG9ydFwgbGlicmFyeSopICMgZGVm aW5pdGVseSBpbXBvcnQKKysgICAgd2luMzJfbGliaWRfdHlwZT0ieDg2IGFyY2hpdmUgaW1wb3J0 IgorKyAgICA7OworKyAgKmFyXCBhcmNoaXZlKikgIyBjb3VsZCBiZSBhbiBpbXBvcnQsIG9yIHN0 YXRpYworKyAgICBpZiBldmFsICRPQkpEVU1QIC1mICQxIHwgJFNFRCAtZSAnMTBxJyAyPi9kZXYv bnVsbCB8CisrICAgICAgICRFR1JFUCAnZmlsZSBmb3JtYXQgcGUtaTM4NiguKmFyY2hpdGVjdHVy ZTogaTM4Nik/JyA+L2Rldi9udWxsIDsgdGhlbgorKyAgICAgIHdpbjMyX25tcmVzPWBldmFsICRO TSAtZiBwb3NpeCAtQSAkMSB8CisrCSRTRUQgLW4gLWUgJworKwkgICAgMSwxMDB7CisrCQkvIEkg L3sKKysJCSAgICBzLC4qLGltcG9ydCwKKysJCSAgICBwCisrCQkgICAgcQorKwkJfQorKwkgICAg fSdgCisrICAgICAgY2FzZSAkd2luMzJfbm1yZXMgaW4KKysgICAgICBpbXBvcnQqKSAgd2luMzJf bGliaWRfdHlwZT0ieDg2IGFyY2hpdmUgaW1wb3J0Ijs7CisrICAgICAgKikgICAgICAgIHdpbjMy X2xpYmlkX3R5cGU9Ing4NiBhcmNoaXZlIHN0YXRpYyI7OworKyAgICAgIGVzYWMKKysgICAgZmkK KysgICAgOzsKKysgICpETEwqKQorKyAgICB3aW4zMl9saWJpZF90eXBlPSJ4ODYgRExMIgorKyAg ICA7OworKyAgKmV4ZWN1dGFibGUqKSAjIGJ1dCBzaGVsbCBzY3JpcHRzIGFyZSAiZXhlY3V0YWJs ZSIgdG9vLi4uCisrICAgIGNhc2UgJHdpbjMyX2ZpbGVyZXMgaW4KKysgICAgKk1TXCBXaW5kb3dz XCBQRVwgSW50ZWwqKQorKyAgICAgIHdpbjMyX2xpYmlkX3R5cGU9Ing4NiBETEwiCisrICAgICAg OzsKKysgICAgZXNhYworKyAgICA7OworKyAgZXNhYworKyAgJEVDSE8gIiR3aW4zMl9saWJpZF90 eXBlIgorK30KKysKKysKKysKKysjIGZ1bmNfZXh0cmFjdF9hbl9hcmNoaXZlIGRpciBvbGRsaWIK KytmdW5jX2V4dHJhY3RfYW5fYXJjaGl2ZSAoKQorK3sKKysgICAgJG9wdF9kZWJ1ZworKyAgICBm X2V4X2FuX2FyX2Rpcj0iJDEiOyBzaGlmdAorKyAgICBmX2V4X2FuX2FyX29sZGxpYj0iJDEiCisr ICAgIGZ1bmNfc2hvd19ldmFsICIoY2QgXCRmX2V4X2FuX2FyX2RpciAmJiAkQVIgeCBcIlwkZl9l eF9hbl9hcl9vbGRsaWJcIikiICdleGl0ICQ/JworKyAgICBpZiAoJEFSIHQgIiRmX2V4X2FuX2Fy X29sZGxpYiIgfCBzb3J0IHwgc29ydCAtdWMgPi9kZXYvbnVsbCAyPiYxKTsgdGhlbgorKyAgICAg OgorKyAgICBlbHNlCisrICAgICAgZnVuY19mYXRhbF9lcnJvciAib2JqZWN0IG5hbWUgY29uZmxp Y3RzIGluIGFyY2hpdmU6ICRmX2V4X2FuX2FyX2Rpci8kZl9leF9hbl9hcl9vbGRsaWIiCisrICAg IGZpCisrfQorKworKworKyMgZnVuY19leHRyYWN0X2FyY2hpdmVzIGdlbnRvcCBvbGRsaWIgLi4u CisrZnVuY19leHRyYWN0X2FyY2hpdmVzICgpCisreworKyAgICAkb3B0X2RlYnVnCisrICAgIG15 X2dlbnRvcD0iJDEiOyBzaGlmdAorKyAgICBteV9vbGRsaWJzPSR7MSsiJEAifQorKyAgICBteV9v bGRvYmpzPSIiCisrICAgIG15X3hsaWI9IiIKKysgICAgbXlfeGFicz0iIgorKyAgICBteV94ZGly PSIiCisrCisrICAgIGZvciBteV94bGliIGluICRteV9vbGRsaWJzOyBkbworKyAgICAgICMgRXh0 cmFjdCB0aGUgb2JqZWN0cy4KKysgICAgICBjYXNlICRteV94bGliIGluCisrCVtcXC9dKiB8IFtB LVphLXpdOltcXC9dKikgbXlfeGFicz0iJG15X3hsaWIiIDs7CisrCSopIG15X3hhYnM9YHB3ZGAi LyRteV94bGliIiA7OworKyAgICAgIGVzYWMKKysgICAgICBmdW5jX2Jhc2VuYW1lICIkbXlfeGxp YiIKKysgICAgICBteV94bGliPSIkZnVuY19iYXNlbmFtZV9yZXN1bHQiCisrICAgICAgbXlfeGxp Yl91PSRteV94bGliCisrICAgICAgd2hpbGUgOjsgZG8KKysgICAgICAgIGNhc2UgIiAkZXh0cmFj dGVkX2FyY2hpdmVzICIgaW4KKysJKiIgJG15X3hsaWJfdSAiKikKKysJICBmdW5jX2FyaXRoICRl eHRyYWN0ZWRfc2VyaWFsICsgMQorKwkgIGV4dHJhY3RlZF9zZXJpYWw9JGZ1bmNfYXJpdGhfcmVz dWx0CisrCSAgbXlfeGxpYl91PWx0JGV4dHJhY3RlZF9zZXJpYWwtJG15X3hsaWIgOzsKKysJKikg YnJlYWsgOzsKKysJZXNhYworKyAgICAgIGRvbmUKKysgICAgICBleHRyYWN0ZWRfYXJjaGl2ZXM9 IiRleHRyYWN0ZWRfYXJjaGl2ZXMgJG15X3hsaWJfdSIKKysgICAgICBteV94ZGlyPSIkbXlfZ2Vu dG9wLyRteV94bGliX3UiCisrCisrICAgICAgZnVuY19ta2Rpcl9wICIkbXlfeGRpciIKKysKKysg ICAgICBjYXNlICRob3N0IGluCisrICAgICAgKi1kYXJ3aW4qKQorKwlmdW5jX3ZlcmJvc2UgIkV4 dHJhY3RpbmcgJG15X3hhYnMiCisrCSMgRG8gbm90IGJvdGhlciBkb2luZyBhbnl0aGluZyBpZiBq dXN0IGEgZHJ5IHJ1bgorKwkkb3B0X2RyeV9ydW4gfHwgeworKwkgIGRhcndpbl9vcmlnX2Rpcj1g cHdkYAorKwkgIGNkICRteV94ZGlyIHx8IGV4aXQgJD8KKysJICBkYXJ3aW5fYXJjaGl2ZT0kbXlf eGFicworKwkgIGRhcndpbl9jdXJkaXI9YHB3ZGAKKysJICBkYXJ3aW5fYmFzZV9hcmNoaXZlPWBi YXNlbmFtZSAiJGRhcndpbl9hcmNoaXZlImAKKysJICBkYXJ3aW5fYXJjaGVzPWAkTElQTyAtaW5m byAiJGRhcndpbl9hcmNoaXZlIiAyPi9kZXYvbnVsbCB8ICRHUkVQIEFyY2hpdGVjdHVyZXMgMj4v ZGV2L251bGwgfHwgdHJ1ZWAKKysJICBpZiB0ZXN0IC1uICIkZGFyd2luX2FyY2hlcyI7IHRoZW4K KysJICAgIGRhcndpbl9hcmNoZXM9YCRFQ0hPICIkZGFyd2luX2FyY2hlcyIgfCAkU0VEIC1lICdz Ly4qYXJlOi8vJ2AKKysJICAgIGRhcndpbl9hcmNoPQorKwkgICAgZnVuY192ZXJib3NlICIkZGFy d2luX2Jhc2VfYXJjaGl2ZSBoYXMgbXVsdGlwbGUgYXJjaGl0ZWN0dXJlcyAkZGFyd2luX2FyY2hl cyIKKysJICAgIGZvciBkYXJ3aW5fYXJjaCBpbiAgJGRhcndpbl9hcmNoZXMgOyBkbworKwkgICAg ICBmdW5jX21rZGlyX3AgInVuZmF0LSQkLyR7ZGFyd2luX2Jhc2VfYXJjaGl2ZX0tJHtkYXJ3aW5f YXJjaH0iCisrCSAgICAgICRMSVBPIC10aGluICRkYXJ3aW5fYXJjaCAtb3V0cHV0ICJ1bmZhdC0k JC8ke2Rhcndpbl9iYXNlX2FyY2hpdmV9LSR7ZGFyd2luX2FyY2h9LyR7ZGFyd2luX2Jhc2VfYXJj aGl2ZX0iICIke2Rhcndpbl9hcmNoaXZlfSIKKysJICAgICAgY2QgInVuZmF0LSQkLyR7ZGFyd2lu X2Jhc2VfYXJjaGl2ZX0tJHtkYXJ3aW5fYXJjaH0iCisrCSAgICAgIGZ1bmNfZXh0cmFjdF9hbl9h cmNoaXZlICJgcHdkYCIgIiR7ZGFyd2luX2Jhc2VfYXJjaGl2ZX0iCisrCSAgICAgIGNkICIkZGFy d2luX2N1cmRpciIKKysJICAgICAgJFJNICJ1bmZhdC0kJC8ke2Rhcndpbl9iYXNlX2FyY2hpdmV9 LSR7ZGFyd2luX2FyY2h9LyR7ZGFyd2luX2Jhc2VfYXJjaGl2ZX0iCisrCSAgICBkb25lICMgJGRh cndpbl9hcmNoZXMKKysgICAgICAgICAgICAjIyBPa2F5IG5vdyB3ZSd2ZSBhIGJ1bmNoIG9mIHRo aW4gb2JqZWN0cywgZ290dGEgZmF0dGVuIHRoZW0gdXAgOikKKysJICAgIGRhcndpbl9maWxlbGlz dD1gZmluZCB1bmZhdC0kJCAtdHlwZSBmIC1uYW1lIFwqLm8gLXByaW50IC1vIC1uYW1lIFwqLmxv IC1wcmludCB8ICRTRUQgLWUgIiRiYXNlbmFtZSIgfCBzb3J0IC11YAorKwkgICAgZGFyd2luX2Zp bGU9CisrCSAgICBkYXJ3aW5fZmlsZXM9CisrCSAgICBmb3IgZGFyd2luX2ZpbGUgaW4gJGRhcndp bl9maWxlbGlzdDsgZG8KKysJICAgICAgZGFyd2luX2ZpbGVzPWBmaW5kIHVuZmF0LSQkIC1uYW1l ICRkYXJ3aW5fZmlsZSAtcHJpbnQgfCAkTkwyU1BgCisrCSAgICAgICRMSVBPIC1jcmVhdGUgLW91 dHB1dCAiJGRhcndpbl9maWxlIiAkZGFyd2luX2ZpbGVzCisrCSAgICBkb25lICMgJGRhcndpbl9m aWxlbGlzdAorKwkgICAgJFJNIC1yZiB1bmZhdC0kJAorKwkgICAgY2QgIiRkYXJ3aW5fb3JpZ19k aXIiCisrCSAgZWxzZQorKwkgICAgY2QgJGRhcndpbl9vcmlnX2RpcgorKwkgICAgZnVuY19leHRy YWN0X2FuX2FyY2hpdmUgIiRteV94ZGlyIiAiJG15X3hhYnMiCisrCSAgZmkgIyAkZGFyd2luX2Fy Y2hlcworKwl9ICMgISRvcHRfZHJ5X3J1bgorKwk7OworKyAgICAgICopCisrICAgICAgICBmdW5j X2V4dHJhY3RfYW5fYXJjaGl2ZSAiJG15X3hkaXIiICIkbXlfeGFicyIKKysJOzsKKysgICAgICBl c2FjCisrICAgICAgbXlfb2xkb2Jqcz0iJG15X29sZG9ianMgImBmaW5kICRteV94ZGlyIC1uYW1l IFwqLiRvYmpleHQgLXByaW50IC1vIC1uYW1lIFwqLmxvIC1wcmludCB8ICROTDJTUGAKKysgICAg ZG9uZQorKworKyAgICBmdW5jX2V4dHJhY3RfYXJjaGl2ZXNfcmVzdWx0PSIkbXlfb2xkb2JqcyIK Kyt9CisrCisrCisrCisrIyBmdW5jX2VtaXRfd3JhcHBlcl9wYXJ0MSBbYXJnPW5vXQorKyMKKysj IEVtaXQgdGhlIGZpcnN0IHBhcnQgb2YgYSBsaWJ0b29sIHdyYXBwZXIgc2NyaXB0IG9uIHN0ZG91 dC4KKysjIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgdGhlIGRlc2NyaXB0aW9uIGFzc29jaWF0 ZWQgd2l0aAorKyMgZnVuY19lbWl0X3dyYXBwZXIoKSwgYmVsb3cuCisrZnVuY19lbWl0X3dyYXBw ZXJfcGFydDEgKCkKKyt7CisrCWZ1bmNfZW1pdF93cmFwcGVyX3BhcnQxX2FyZzE9bm8KKysJaWYg dGVzdCAtbiAiJDEiIDsgdGhlbgorKwkgIGZ1bmNfZW1pdF93cmFwcGVyX3BhcnQxX2FyZzE9JDEK KysJZmkKKysKKysJJEVDSE8gIlwKKysjISAkU0hFTEwKKysKKysjICRvdXRwdXQgLSB0ZW1wb3Jh cnkgd3JhcHBlciBzY3JpcHQgZm9yICRvYmpkaXIvJG91dHB1dG5hbWUKKysjIEdlbmVyYXRlZCBi eSAkUFJPR1JBTSAoR05VICRQQUNLQUdFJFRJTUVTVEFNUCkgJFZFUlNJT04KKysjCisrIyBUaGUg JG91dHB1dCBwcm9ncmFtIGNhbm5vdCBiZSBkaXJlY3RseSBleGVjdXRlZCB1bnRpbCBhbGwgdGhl IGxpYnRvb2wKKysjIGxpYnJhcmllcyB0aGF0IGl0IGRlcGVuZHMgb24gYXJlIGluc3RhbGxlZC4K KysjCisrIyBUaGlzIHdyYXBwZXIgc2NyaXB0IHNob3VsZCBuZXZlciBiZSBtb3ZlZCBvdXQgb2Yg dGhlIGJ1aWxkIGRpcmVjdG9yeS4KKysjIElmIGl0IGlzLCBpdCB3aWxsIG5vdCBvcGVyYXRlIGNv cnJlY3RseS4KKysKKysjIFNlZCBzdWJzdGl0dXRpb24gdGhhdCBoZWxwcyB1cyBkbyByb2J1c3Qg cXVvdGluZy4gIEl0IGJhY2tzbGFzaGlmaWVzCisrIyBtZXRhY2hhcmFjdGVycyB0aGF0IGFyZSBz dGlsbCBhY3RpdmUgd2l0aGluIGRvdWJsZS1xdW90ZWQgc3RyaW5ncy4KKytYc2VkPScke1NFRH0g LWUgMXMvXlgvLycKKytzZWRfcXVvdGVfc3Vic3Q9JyRzZWRfcXVvdGVfc3Vic3QnCisrCisrIyBC ZSBCb3VybmUgY29tcGF0aWJsZQorK2lmIHRlc3QgLW4gXCJcJHtaU0hfVkVSU0lPTitzZXR9XCIg JiYgKGVtdWxhdGUgc2gpID4vZGV2L251bGwgMj4mMTsgdGhlbgorKyAgZW11bGF0ZSBzaAorKyAg TlVMTENNRD06CisrICAjIFpzaCAzLnggYW5kIDQueCBwZXJmb3JtcyB3b3JkIHNwbGl0dGluZyBv biBcJHsxK1wiXCRAXCJ9LCB3aGljaAorKyAgIyBpcyBjb250cmFyeSB0byBvdXIgdXNhZ2UuICBE aXNhYmxlIHRoaXMgZmVhdHVyZS4KKysgIGFsaWFzIC1nICdcJHsxK1wiXCRAXCJ9Jz0nXCJcJEBc IicKKysgIHNldG9wdCBOT19HTE9CX1NVQlNUCisrZWxzZQorKyAgY2FzZSBcYChzZXQgLW8pIDI+ L2Rldi9udWxsXGAgaW4gKnBvc2l4Kikgc2V0IC1vIHBvc2l4OzsgZXNhYworK2ZpCisrQklOX1NI PXhwZzQ7IGV4cG9ydCBCSU5fU0ggIyBmb3IgVHJ1NjQKKytEVUFMQ0FTRT0xOyBleHBvcnQgRFVB TENBU0UgIyBmb3IgTUtTIHNoCisrCisrIyBUaGUgSFAtVVgga3NoIGFuZCBQT1NJWCBzaGVsbCBw cmludCB0aGUgdGFyZ2V0IGRpcmVjdG9yeSB0byBzdGRvdXQKKysjIGlmIENEUEFUSCBpcyBzZXQu CisrKHVuc2V0IENEUEFUSCkgPi9kZXYvbnVsbCAyPiYxICYmIHVuc2V0IENEUEFUSAorKworK3Jl bGlua19jb21tYW5kPVwiJHJlbGlua19jb21tYW5kXCIKKysKKysjIFRoaXMgZW52aXJvbm1lbnQg dmFyaWFibGUgZGV0ZXJtaW5lcyBvdXIgb3BlcmF0aW9uIG1vZGUuCisraWYgdGVzdCBcIlwkbGli dG9vbF9pbnN0YWxsX21hZ2ljXCIgPSBcIiRtYWdpY1wiOyB0aGVuCisrICAjIGluc3RhbGwgbW9k ZSBuZWVkcyB0aGUgZm9sbG93aW5nIHZhcmlhYmxlczoKKysgIGdlbmVyYXRlZF9ieV9saWJ0b29s X3ZlcnNpb249JyRtYWNyb192ZXJzaW9uJworKyAgbm90aW5zdF9kZXBsaWJzPSckbm90aW5zdF9k ZXBsaWJzJworK2Vsc2UKKysgICMgV2hlbiB3ZSBhcmUgc291cmNlZCBpbiBleGVjdXRlIG1vZGUs IFwkZmlsZSBhbmQgXCRFQ0hPIGFyZSBhbHJlYWR5IHNldC4KKysgIGlmIHRlc3QgXCJcJGxpYnRv b2xfZXhlY3V0ZV9tYWdpY1wiICE9IFwiJG1hZ2ljXCI7IHRoZW4KKysgICAgRUNITz1cIiRxZWNo b1wiCisrICAgIGZpbGU9XCJcJDBcIgorKyAgICAjIE1ha2Ugc3VyZSBlY2hvIHdvcmtzLgorKyAg ICBpZiB0ZXN0IFwiWFwkMVwiID0gWC0tbm8tcmVleGVjOyB0aGVuCisrICAgICAgIyBEaXNjYXJk IHRoZSAtLW5vLXJlZXhlYyBmbGFnLCBhbmQgY29udGludWUuCisrICAgICAgc2hpZnQKKysgICAg ZWxpZiB0ZXN0IFwiWFxgeyBcJEVDSE8gJ1x0JzsgfSAyPi9kZXYvbnVsbFxgXCIgPSAnWFx0Jzsg dGhlbgorKyAgICAgICMgWWlwcGVlLCBcJEVDSE8gd29ya3MhCisrICAgICAgOgorKyAgICBlbHNl CisrICAgICAgIyBSZXN0YXJ0IHVuZGVyIHRoZSBjb3JyZWN0IHNoZWxsLCBhbmQgdGhlbiBtYXli ZSBcJEVDSE8gd2lsbCB3b3JrLgorKyAgICAgIGV4ZWMgJFNIRUxMIFwiXCQwXCIgLS1uby1yZWV4 ZWMgXCR7MStcIlwkQFwifQorKyAgICBmaQorKyAgZmlcCisrIgorKwkkRUNITyAiXAorKworKyAg IyBGaW5kIHRoZSBkaXJlY3RvcnkgdGhhdCB0aGlzIHNjcmlwdCBsaXZlcyBpbi4KKysgIHRoaXNk aXI9XGBcJEVDSE8gXCJYXCRmaWxlXCIgfCBcJFhzZWQgLWUgJ3MlL1teL10qJCUlJ1xgCisrICB0 ZXN0IFwieFwkdGhpc2RpclwiID0gXCJ4XCRmaWxlXCIgJiYgdGhpc2Rpcj0uCisrCisrICAjIEZv bGxvdyBzeW1ib2xpYyBsaW5rcyB1bnRpbCB3ZSBnZXQgdG8gdGhlIHJlYWwgdGhpc2Rpci4KKysg IGZpbGU9XGBscyAtbGQgXCJcJGZpbGVcIiB8ICR7U0VEfSAtbiAncy8uKi0+IC8vcCdcYAorKyAg d2hpbGUgdGVzdCAtbiBcIlwkZmlsZVwiOyBkbworKyAgICBkZXN0ZGlyPVxgXCRFQ0hPIFwiWFwk ZmlsZVwiIHwgXCRYc2VkIC1lICdzJS9bXi9dKlwkJSUnXGAKKysKKysgICAgIyBJZiB0aGVyZSB3 YXMgYSBkaXJlY3RvcnkgY29tcG9uZW50LCB0aGVuIGNoYW5nZSB0aGlzZGlyLgorKyAgICBpZiB0 ZXN0IFwieFwkZGVzdGRpclwiICE9IFwieFwkZmlsZVwiOyB0aGVuCisrICAgICAgY2FzZSBcIlwk ZGVzdGRpclwiIGluCisrICAgICAgW1xcXFwvXSogfCBbQS1aYS16XTpbXFxcXC9dKikgdGhpc2Rp cj1cIlwkZGVzdGRpclwiIDs7CisrICAgICAgKikgdGhpc2Rpcj1cIlwkdGhpc2Rpci9cJGRlc3Rk aXJcIiA7OworKyAgICAgIGVzYWMKKysgICAgZmkKKysKKysgICAgZmlsZT1cYFwkRUNITyBcIlhc JGZpbGVcIiB8IFwkWHNlZCAtZSAncyVeLiovJSUnXGAKKysgICAgZmlsZT1cYGxzIC1sZCBcIlwk dGhpc2Rpci9cJGZpbGVcIiB8ICR7U0VEfSAtbiAncy8uKi0+IC8vcCdcYAorKyAgZG9uZQorKyIK Kyt9CisrIyBlbmQ6IGZ1bmNfZW1pdF93cmFwcGVyX3BhcnQxCisrCisrIyBmdW5jX2VtaXRfd3Jh cHBlcl9wYXJ0MiBbYXJnPW5vXQorKyMKKysjIEVtaXQgdGhlIHNlY29uZCBwYXJ0IG9mIGEgbGli dG9vbCB3cmFwcGVyIHNjcmlwdCBvbiBzdGRvdXQuCisrIyBGb3IgbW9yZSBpbmZvcm1hdGlvbiwg c2VlIHRoZSBkZXNjcmlwdGlvbiBhc3NvY2lhdGVkIHdpdGgKKysjIGZ1bmNfZW1pdF93cmFwcGVy KCksIGJlbG93LgorK2Z1bmNfZW1pdF93cmFwcGVyX3BhcnQyICgpCisreworKwlmdW5jX2VtaXRf d3JhcHBlcl9wYXJ0Ml9hcmcxPW5vCisrCWlmIHRlc3QgLW4gIiQxIiA7IHRoZW4KKysJICBmdW5j X2VtaXRfd3JhcHBlcl9wYXJ0Ml9hcmcxPSQxCisrCWZpCisrCisrCSRFQ0hPICJcCisrCisrICAj IFVzdWFsbHkgJ25vJywgZXhjZXB0IG9uIGN5Z3dpbi9taW5ndyB3aGVuIGVtYmVkZGVkIGludG8K KysgICMgdGhlIGN3cmFwcGVyLgorKyAgV1JBUFBFUl9TQ1JJUFRfQkVMT05HU19JTl9PQkpESVI9 JGZ1bmNfZW1pdF93cmFwcGVyX3BhcnQyX2FyZzEKKysgIGlmIHRlc3QgXCJcJFdSQVBQRVJfU0NS SVBUX0JFTE9OR1NfSU5fT0JKRElSXCIgPSBcInllc1wiOyB0aGVuCisrICAgICMgc3BlY2lhbCBj YXNlIGZvciAnLicKKysgICAgaWYgdGVzdCBcIlwkdGhpc2RpclwiID0gXCIuXCI7IHRoZW4KKysg ICAgICB0aGlzZGlyPVxgcHdkXGAKKysgICAgZmkKKysgICAgIyByZW1vdmUgLmxpYnMgZnJvbSB0 aGlzZGlyCisrICAgIGNhc2UgXCJcJHRoaXNkaXJcIiBpbgorKyAgICAqW1xcXFwvXSRvYmpkaXIg KSB0aGlzZGlyPVxgXCRFQ0hPIFwiWFwkdGhpc2RpclwiIHwgXCRYc2VkIC1lICdzJVtcXFxcL11b XlxcXFwvXSokJSUnXGAgOzsKKysgICAgJG9iamRpciApICAgdGhpc2Rpcj0uIDs7CisrICAgIGVz YWMKKysgIGZpCisrCisrICAjIFRyeSB0byBnZXQgdGhlIGFic29sdXRlIGRpcmVjdG9yeSBuYW1l LgorKyAgYWJzZGlyPVxgY2QgXCJcJHRoaXNkaXJcIiAmJiBwd2RcYAorKyAgdGVzdCAtbiBcIlwk YWJzZGlyXCIgJiYgdGhpc2Rpcj1cIlwkYWJzZGlyXCIKKysiCisrCisrCWlmIHRlc3QgIiRmYXN0 X2luc3RhbGwiID0geWVzOyB0aGVuCisrCSAgJEVDSE8gIlwKKysgIHByb2dyYW09bHQtJyRvdXRw dXRuYW1lJyRleGVleHQKKysgIHByb2dkaXI9XCJcJHRoaXNkaXIvJG9iamRpclwiCisrCisrICBp ZiB0ZXN0ICEgLWYgXCJcJHByb2dkaXIvXCRwcm9ncmFtXCIgfHwKKysgICAgIHsgZmlsZT1cYGxz IC0xZHQgXCJcJHByb2dkaXIvXCRwcm9ncmFtXCIgXCJcJHByb2dkaXIvLi4vXCRwcm9ncmFtXCIg Mj4vZGV2L251bGwgfCAke1NFRH0gMXFcYDsgXFwKKysgICAgICAgdGVzdCBcIlhcJGZpbGVcIiAh PSBcIlhcJHByb2dkaXIvXCRwcm9ncmFtXCI7IH07IHRoZW4KKysKKysgICAgZmlsZT1cIlwkXCQt XCRwcm9ncmFtXCIKKysKKysgICAgaWYgdGVzdCAhIC1kIFwiXCRwcm9nZGlyXCI7IHRoZW4KKysg ICAgICAkTUtESVIgXCJcJHByb2dkaXJcIgorKyAgICBlbHNlCisrICAgICAgJFJNIFwiXCRwcm9n ZGlyL1wkZmlsZVwiCisrICAgIGZpIgorKworKwkgICRFQ0hPICJcCisrCisrICAgICMgcmVsaW5r IGV4ZWN1dGFibGUgaWYgbmVjZXNzYXJ5CisrICAgIGlmIHRlc3QgLW4gXCJcJHJlbGlua19jb21t YW5kXCI7IHRoZW4KKysgICAgICBpZiByZWxpbmtfY29tbWFuZF9vdXRwdXQ9XGBldmFsIFwkcmVs aW5rX2NvbW1hbmQgMj4mMVxgOyB0aGVuIDoKKysgICAgICBlbHNlCisrCSRFQ0hPIFwiXCRyZWxp bmtfY29tbWFuZF9vdXRwdXRcIiA+JjIKKysJJFJNIFwiXCRwcm9nZGlyL1wkZmlsZVwiCisrCWV4 aXQgMQorKyAgICAgIGZpCisrICAgIGZpCisrCisrICAgICRNViBcIlwkcHJvZ2Rpci9cJGZpbGVc IiBcIlwkcHJvZ2Rpci9cJHByb2dyYW1cIiAyPi9kZXYvbnVsbCB8fAorKyAgICB7ICRSTSBcIlwk cHJvZ2Rpci9cJHByb2dyYW1cIjsKKysgICAgICAkTVYgXCJcJHByb2dkaXIvXCRmaWxlXCIgXCJc JHByb2dkaXIvXCRwcm9ncmFtXCI7IH0KKysgICAgJFJNIFwiXCRwcm9nZGlyL1wkZmlsZVwiCisr ICBmaSIKKysJZWxzZQorKwkgICRFQ0hPICJcCisrICBwcm9ncmFtPSckb3V0cHV0bmFtZScKKysg IHByb2dkaXI9XCJcJHRoaXNkaXIvJG9iamRpclwiCisrIgorKwlmaQorKworKwkkRUNITyAiXAor KworKyAgaWYgdGVzdCAtZiBcIlwkcHJvZ2Rpci9cJHByb2dyYW1cIjsgdGhlbiIKKysKKysJIyBF eHBvcnQgb3VyIHNobGlicGF0aF92YXIgaWYgd2UgaGF2ZSBvbmUuCisrCWlmIHRlc3QgIiRzaGxp YnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGgiID0geWVzICYmIHRlc3QgLW4gIiRzaGxpYnBhdGhfdmFy IiAmJiB0ZXN0IC1uICIkdGVtcF9ycGF0aCI7IHRoZW4KKysJICAkRUNITyAiXAorKyAgICAjIEFk ZCBvdXIgb3duIGxpYnJhcnkgcGF0aCB0byAkc2hsaWJwYXRoX3ZhcgorKyAgICAkc2hsaWJwYXRo X3Zhcj1cIiR0ZW1wX3JwYXRoXCQkc2hsaWJwYXRoX3ZhclwiCisrCisrICAgICMgU29tZSBzeXN0 ZW1zIGNhbm5vdCBjb3BlIHdpdGggY29sb24tdGVybWluYXRlZCAkc2hsaWJwYXRoX3ZhcgorKyAg ICAjIFRoZSBzZWNvbmQgY29sb24gaXMgYSB3b3JrYXJvdW5kIGZvciBhIGJ1ZyBpbiBCZU9TIFI0 IHNlZAorKyAgICAkc2hsaWJwYXRoX3Zhcj1cYFwkRUNITyBcIlhcJCRzaGxpYnBhdGhfdmFyXCIg fCBcJFhzZWQgLWUgJ3MvOjoqXCQvLydcYAorKworKyAgICBleHBvcnQgJHNobGlicGF0aF92YXIK KysiCisrCWZpCisrCisrCSMgZml4dXAgdGhlIGRsbCBzZWFyY2hwYXRoIGlmIHdlIG5lZWQgdG8u CisrCWlmIHRlc3QgLW4gIiRkbGxzZWFyY2hwYXRoIjsgdGhlbgorKwkgICRFQ0hPICJcCisrICAg ICMgQWRkIHRoZSBkbGwgc2VhcmNoIHBhdGggY29tcG9uZW50cyB0byB0aGUgZXhlY3V0YWJsZSBQ QVRICisrICAgIFBBVEg9JGRsbHNlYXJjaHBhdGg6XCRQQVRICisrIgorKwlmaQorKworKwkkRUNI TyAiXAorKyAgICBpZiB0ZXN0IFwiXCRsaWJ0b29sX2V4ZWN1dGVfbWFnaWNcIiAhPSBcIiRtYWdp Y1wiOyB0aGVuCisrICAgICAgIyBSdW4gdGhlIGFjdHVhbCBwcm9ncmFtIHdpdGggb3VyIGFyZ3Vt ZW50cy4KKysiCisrCWNhc2UgJGhvc3QgaW4KKysJIyBCYWNrc2xhc2hlcyBzZXBhcmF0ZSBkaXJl Y3RvcmllcyBvbiBwbGFpbiB3aW5kb3dzCisrCSotKi1taW5ndyB8ICotKi1vczIqIHwgKi1jZWdj YyopCisrCSAgJEVDSE8gIlwKKysgICAgICBleGVjIFwiXCRwcm9nZGlyXFxcXFwkcHJvZ3JhbVwi IFwkezErXCJcJEBcIn0KKysiCisrCSAgOzsKKysKKysJKikKKysJICAkRUNITyAiXAorKyAgICAg IGV4ZWMgXCJcJHByb2dkaXIvXCRwcm9ncmFtXCIgXCR7MStcIlwkQFwifQorKyIKKysJICA7Owor Kwllc2FjCisrCSRFQ0hPICJcCisrICAgICAgXCRFQ0hPIFwiXCQwOiBjYW5ub3QgZXhlYyBcJHBy b2dyYW0gXCQqXCIgMT4mMgorKyAgICAgIGV4aXQgMQorKyAgICBmaQorKyAgZWxzZQorKyAgICAj IFRoZSBwcm9ncmFtIGRvZXNuJ3QgZXhpc3QuCisrICAgIFwkRUNITyBcIlwkMDogZXJyb3I6IFxc XGBcJHByb2dkaXIvXCRwcm9ncmFtJyBkb2VzIG5vdCBleGlzdFwiIDE+JjIKKysgICAgXCRFQ0hP IFwiVGhpcyBzY3JpcHQgaXMganVzdCBhIHdyYXBwZXIgZm9yIFwkcHJvZ3JhbS5cIiAxPiYyCisr ICAgICRFQ0hPIFwiU2VlIHRoZSAkUEFDS0FHRSBkb2N1bWVudGF0aW9uIGZvciBtb3JlIGluZm9y bWF0aW9uLlwiIDE+JjIKKysgICAgZXhpdCAxCisrICBmaQorK2ZpXAorKyIKKyt9CisrIyBlbmQ6 IGZ1bmNfZW1pdF93cmFwcGVyX3BhcnQyCisrCisrCisrIyBmdW5jX2VtaXRfd3JhcHBlciBbYXJn PW5vXQorKyMKKysjIEVtaXQgYSBsaWJ0b29sIHdyYXBwZXIgc2NyaXB0IG9uIHN0ZG91dC4KKysj IERvbid0IGRpcmVjdGx5IG9wZW4gYSBmaWxlIGJlY2F1c2Ugd2UgbWF5IHdhbnQgdG8KKysjIGlu Y29ycG9yYXRlIHRoZSBzY3JpcHQgY29udGVudHMgd2l0aGluIGEgY3lnd2luL21pbmd3CisrIyB3 cmFwcGVyIGV4ZWN1dGFibGUuICBNdXN0IE9OTFkgYmUgY2FsbGVkIGZyb20gd2l0aGluCisrIyBm dW5jX21vZGVfbGluayBiZWNhdXNlIGl0IGRlcGVuZHMgb24gYSBudW1iZXIgb2YgdmFyaWFibGVz CisrIyBzZXQgdGhlcmVpbi4KKysjCisrIyBBUkcgaXMgdGhlIHZhbHVlIHRoYXQgdGhlIFdSQVBQ RVJfU0NSSVBUX0JFTE9OR1NfSU5fT0JKRElSCisrIyB2YXJpYWJsZSB3aWxsIHRha2UuICBJZiAn eWVzJywgdGhlbiB0aGUgZW1pdHRlZCBzY3JpcHQKKysjIHdpbGwgYXNzdW1lIHRoYXQgdGhlIGRp cmVjdG9yeSBpbiB3aGljaCBpdCBpcyBzdG9yZWQgaXMKKysjIHRoZSAkb2JqZGlyIGRpcmVjdG9y eS4gIFRoaXMgaXMgYSBjeWd3aW4vbWluZ3ctc3BlY2lmaWMKKysjIGJlaGF2aW9yLgorK2Z1bmNf ZW1pdF93cmFwcGVyICgpCisreworKwlmdW5jX2VtaXRfd3JhcHBlcl9hcmcxPW5vCisrCWlmIHRl c3QgLW4gIiQxIiA7IHRoZW4KKysJICBmdW5jX2VtaXRfd3JhcHBlcl9hcmcxPSQxCisrCWZpCisr CisrCSMgc3BsaXQgdGhpcyB1cCBzbyB0aGF0IGZ1bmNfZW1pdF9jd3JhcHBlcmV4ZV9zcmMKKysJ IyBjYW4gY2FsbCBlYWNoIHBhcnQgaW5kZXBlbmRlbnRseS4KKysJZnVuY19lbWl0X3dyYXBwZXJf cGFydDEgIiR7ZnVuY19lbWl0X3dyYXBwZXJfYXJnMX0iCisrCWZ1bmNfZW1pdF93cmFwcGVyX3Bh cnQyICIke2Z1bmNfZW1pdF93cmFwcGVyX2FyZzF9IgorK30KKysKKysKKysjIGZ1bmNfdG9faG9z dF9wYXRoIGFyZworKyMKKysjIENvbnZlcnQgcGF0aHMgdG8gaG9zdCBmb3JtYXQgd2hlbiB1c2Vk IHdpdGggYnVpbGQgdG9vbHMuCisrIyBJbnRlbmRlZCBmb3IgdXNlIHdpdGggIm5hdGl2ZSIgbWlu Z3cgKHdoZXJlIGxpYnRvb2wgaXRzZWxmCisrIyBpcyBydW5uaW5nIHVuZGVyIHRoZSBtc3lzIHNo ZWxsKSwgb3IgaW4gdGhlIGZvbGxvd2luZyBjcm9zcy0KKysjIGJ1aWxkIGVudmlyb25tZW50czoK KysjICAgICRidWlsZCAgICAgICAgICAkaG9zdAorKyMgICAgbWluZ3cgKG1zeXMpICAgIG1pbmd3 ICBbZS5nLiBuYXRpdmVdCisrIyAgICBjeWd3aW4gICAgICAgICAgbWluZ3cKKysjICAgICpuaXgg KyB3aW5lICAgICBtaW5ndworKyMgd2hlcmUgd2luZSBpcyBlcXVpcHBlZCB3aXRoIHRoZSBgd2lu ZXBhdGgnIGV4ZWN1dGFibGUuCisrIyBJbiB0aGUgbmF0aXZlIG1pbmd3IGNhc2UsIHRoZSAobXN5 cykgc2hlbGwgYXV0b21hdGljYWxseQorKyMgY29udmVydHMgcGF0aHMgZm9yIGFueSBub24tbXN5 cyBhcHBsaWNhdGlvbnMgaXQgbGF1bmNoZXMsCisrIyBidXQgdGhhdCBmYWNpbGl0eSBpc24ndCBh dmFpbGFibGUgZnJvbSBpbnNpZGUgdGhlIGN3cmFwcGVyLgorKyMgU2ltaWxhciBhY2NvbW1vZGF0 aW9ucyBhcmUgbmVjZXNzYXJ5IGZvciAkaG9zdCBtaW5ndyBhbmQKKysjICRidWlsZCBjeWd3aW4u ICBDYWxsaW5nIHRoaXMgZnVuY3Rpb24gZG9lcyBubyBoYXJtIGZvciBvdGhlcgorKyMgJGhvc3Qv JGJ1aWxkIGNvbWJpbmF0aW9ucyBub3QgbGlzdGVkIGFib3ZlLgorKyMKKysjIEFSRyBpcyB0aGUg cGF0aCAob24gJGJ1aWxkKSB0aGF0IHNob3VsZCBiZSBjb252ZXJ0ZWQgdG8KKysjIHRoZSBwcm9w ZXIgcmVwcmVzZW50YXRpb24gZm9yICRob3N0LiBUaGUgcmVzdWx0IGlzIHN0b3JlZAorKyMgaW4g JGZ1bmNfdG9faG9zdF9wYXRoX3Jlc3VsdC4KKytmdW5jX3RvX2hvc3RfcGF0aCAoKQorK3sKKysg IGZ1bmNfdG9faG9zdF9wYXRoX3Jlc3VsdD0iJDEiCisrICBpZiB0ZXN0IC1uICIkMSIgOyB0aGVu CisrICAgIGNhc2UgJGhvc3QgaW4KKysgICAgICAqbWluZ3cqICkKKysgICAgICAgIGx0X3NlZF9u YWl2ZV9iYWNrc2xhc2hpZnk9J3N8XFxcXCp8XFx8ZztzfC98XFx8ZztzfFxcfFxcXFx8ZycKKysg ICAgICAgIGNhc2UgJGJ1aWxkIGluCisrICAgICAgICAgICptaW5ndyogKSAjIGFjdHVhbGx5LCBt c3lzCisrICAgICAgICAgICAgIyBhd2t3YXJkOiBjbWQgYXBwZW5kcyBzcGFjZXMgdG8gcmVzdWx0 CisrICAgICAgICAgICAgbHRfc2VkX3N0cmlwX3RyYWlsaW5nX3NwYWNlcz0icy9bIF0qXCQvLyIK KysgICAgICAgICAgICBmdW5jX3RvX2hvc3RfcGF0aF90bXAxPWAoIGNtZCAvL2MgZWNobyAiJDEi IHxcCisrICAgICAgICAgICAgICAkU0VEIC1lICIkbHRfc2VkX3N0cmlwX3RyYWlsaW5nX3NwYWNl cyIgKSAyPi9kZXYvbnVsbCB8fCBlY2hvICIiYAorKyAgICAgICAgICAgIGZ1bmNfdG9faG9zdF9w YXRoX3Jlc3VsdD1gZWNobyAiJGZ1bmNfdG9faG9zdF9wYXRoX3RtcDEiIHxcCisrICAgICAgICAg ICAgICAkU0VEIC1lICIkbHRfc2VkX25haXZlX2JhY2tzbGFzaGlmeSJgCisrICAgICAgICAgICAg OzsKKysgICAgICAgICAgKmN5Z3dpbiogKQorKyAgICAgICAgICAgIGZ1bmNfdG9faG9zdF9wYXRo X3RtcDE9YGN5Z3BhdGggLXcgIiQxImAKKysgICAgICAgICAgICBmdW5jX3RvX2hvc3RfcGF0aF9y ZXN1bHQ9YGVjaG8gIiRmdW5jX3RvX2hvc3RfcGF0aF90bXAxIiB8XAorKyAgICAgICAgICAgICAg JFNFRCAtZSAiJGx0X3NlZF9uYWl2ZV9iYWNrc2xhc2hpZnkiYAorKyAgICAgICAgICAgIDs7Cisr ICAgICAgICAgICogKQorKyAgICAgICAgICAgICMgVW5mb3J0dW5hdGVseSwgd2luZXBhdGggZG9l cyBub3QgZXhpdCB3aXRoIGEgbm9uLXplcm8KKysgICAgICAgICAgICAjIGVycm9yIGNvZGUsIHNv IHdlIGFyZSBmb3JjZWQgdG8gY2hlY2sgdGhlIGNvbnRlbnRzIG9mCisrICAgICAgICAgICAgIyBz dGRvdXQuIE9uIHRoZSBvdGhlciBoYW5kLCBpZiB0aGUgY29tbWFuZCBpcyBub3QKKysgICAgICAg ICAgICAjIGZvdW5kLCB0aGUgc2hlbGwgd2lsbCBzZXQgYW4gZXhpdCBjb2RlIG9mIDEyNyBhbmQg cHJpbnQKKysgICAgICAgICAgICAjICphbiBlcnJvciBtZXNzYWdlKiB0byBzdGRvdXQuIFNvIHdl IG11c3QgY2hlY2sgZm9yIGJvdGgKKysgICAgICAgICAgICAjIGVycm9yIGNvZGUgb2YgemVybyBB TkQgbm9uLWVtcHR5IHN0ZG91dCwgd2hpY2ggZXhwbGFpbnMKKysgICAgICAgICAgICAjIHRoZSBv ZGQgY29uc3RydWN0aW9uOgorKyAgICAgICAgICAgIGZ1bmNfdG9faG9zdF9wYXRoX3RtcDE9YHdp bmVwYXRoIC13ICIkMSIgMj4vZGV2L251bGxgCisrICAgICAgICAgICAgaWYgdGVzdCAiJD8iIC1l cSAwICYmIHRlc3QgLW4gIiR7ZnVuY190b19ob3N0X3BhdGhfdG1wMX0iOyB0aGVuCisrICAgICAg ICAgICAgICBmdW5jX3RvX2hvc3RfcGF0aF9yZXN1bHQ9YGVjaG8gIiRmdW5jX3RvX2hvc3RfcGF0 aF90bXAxIiB8XAorKyAgICAgICAgICAgICAgICAkU0VEIC1lICIkbHRfc2VkX25haXZlX2JhY2tz bGFzaGlmeSJgCisrICAgICAgICAgICAgZWxzZQorKyAgICAgICAgICAgICAgIyBBbGxvdyB3YXJu aW5nIGJlbG93LgorKyAgICAgICAgICAgICAgZnVuY190b19ob3N0X3BhdGhfcmVzdWx0PSIiCisr ICAgICAgICAgICAgZmkKKysgICAgICAgICAgICA7OworKyAgICAgICAgZXNhYworKyAgICAgICAg aWYgdGVzdCAteiAiJGZ1bmNfdG9faG9zdF9wYXRoX3Jlc3VsdCIgOyB0aGVuCisrICAgICAgICAg IGZ1bmNfZXJyb3IgIkNvdWxkIG5vdCBkZXRlcm1pbmUgaG9zdCBwYXRoIGNvcnJlc3BvbmRpbmcg dG8iCisrICAgICAgICAgIGZ1bmNfZXJyb3IgIiAgJyQxJyIKKysgICAgICAgICAgZnVuY19lcnJv ciAiQ29udGludWluZywgYnV0IHVuaW5zdGFsbGVkIGV4ZWN1dGFibGVzIG1heSBub3Qgd29yay4i CisrICAgICAgICAgICMgRmFsbGJhY2s6CisrICAgICAgICAgIGZ1bmNfdG9faG9zdF9wYXRoX3Jl c3VsdD0iJDEiCisrICAgICAgICBmaQorKyAgICAgICAgOzsKKysgICAgZXNhYworKyAgZmkKKyt9 CisrIyBlbmQ6IGZ1bmNfdG9faG9zdF9wYXRoCisrCisrIyBmdW5jX3RvX2hvc3RfcGF0aGxpc3Qg YXJnCisrIworKyMgQ29udmVydCBwYXRobGlzdHMgdG8gaG9zdCBmb3JtYXQgd2hlbiB1c2VkIHdp dGggYnVpbGQgdG9vbHMuCisrIyBTZWUgZnVuY190b19ob3N0X3BhdGgoKSwgYWJvdmUuIFRoaXMg ZnVuY3Rpb24gc3VwcG9ydHMgdGhlCisrIyBmb2xsb3dpbmcgJGJ1aWxkLyRob3N0IGNvbWJpbmF0 aW9ucyAoYnV0IGRvZXMgbm8gaGFybSBmb3IKKysjIGNvbWJpbmF0aW9ucyBub3QgbGlzdGVkIGhl cmUpOgorKyMgICAgJGJ1aWxkICAgICAgICAgICRob3N0CisrIyAgICBtaW5ndyAobXN5cykgICAg bWluZ3cgIFtlLmcuIG5hdGl2ZV0KKysjICAgIGN5Z3dpbiAgICAgICAgICBtaW5ndworKyMgICAg Km5peCArIHdpbmUgICAgIG1pbmd3CisrIworKyMgUGF0aCBzZXBhcmF0b3JzIGFyZSBhbHNvIGNv bnZlcnRlZCBmcm9tICRidWlsZCBmb3JtYXQgdG8KKysjICRob3N0IGZvcm1hdC4gSWYgQVJHIGJl Z2lucyBvciBlbmRzIHdpdGggYSBwYXRoIHNlcGFyYXRvcgorKyMgY2hhcmFjdGVyLCBpdCBpcyBw cmVzZXJ2ZWQgKGJ1dCBjb252ZXJ0ZWQgdG8gJGhvc3QgZm9ybWF0KQorKyMgb24gb3V0cHV0Lgor KyMKKysjIEFSRyBpcyBhIHBhdGhsaXN0IChvbiAkYnVpbGQpIHRoYXQgc2hvdWxkIGJlIGNvbnZl cnRlZCB0bworKyMgdGhlIHByb3BlciByZXByZXNlbnRhdGlvbiBvbiAkaG9zdC4gVGhlIHJlc3Vs dCBpcyBzdG9yZWQKKysjIGluICRmdW5jX3RvX2hvc3RfcGF0aGxpc3RfcmVzdWx0LgorK2Z1bmNf dG9faG9zdF9wYXRobGlzdCAoKQorK3sKKysgIGZ1bmNfdG9faG9zdF9wYXRobGlzdF9yZXN1bHQ9 IiQxIgorKyAgaWYgdGVzdCAtbiAiJDEiIDsgdGhlbgorKyAgICBjYXNlICRob3N0IGluCisrICAg ICAgKm1pbmd3KiApCisrICAgICAgICBsdF9zZWRfbmFpdmVfYmFja3NsYXNoaWZ5PSdzfFxcXFwq fFxcfGc7c3wvfFxcfGc7c3xcXHxcXFxcfGcnCisrICAgICAgICAjIFJlbW92ZSBsZWFkaW5nIGFu ZCB0cmFpbGluZyBwYXRoIHNlcGFyYXRvciBjaGFyYWN0ZXJzIGZyb20KKysgICAgICAgICMgQVJH LiBtc3lzIGJlaGF2aW9yIGlzIGluY29uc2lzdGVudCBoZXJlLCBjeWdwYXRoIHR1cm5zIHRoZW0K KysgICAgICAgICMgaW50byAnLjsnIGFuZCAnOy4nLCBhbmQgd2luZXBhdGggaWdub3JlcyB0aGVt IGNvbXBsZXRlbHkuCisrICAgICAgICBmdW5jX3RvX2hvc3RfcGF0aGxpc3RfdG1wMj0iJDEiCisr ICAgICAgICAjIE9uY2Ugc2V0IGZvciB0aGlzIGNhbGwsIHRoaXMgdmFyaWFibGUgc2hvdWxkIG5v dCBiZQorKyAgICAgICAgIyByZWFzc2lnbmVkLiBJdCBpcyB1c2VkIGluIHRoYSBmYWxsYmFjayBj YXNlLgorKyAgICAgICAgZnVuY190b19ob3N0X3BhdGhsaXN0X3RtcDE9YGVjaG8gIiRmdW5jX3Rv X2hvc3RfcGF0aGxpc3RfdG1wMiIgfFwKKysgICAgICAgICAgJFNFRCAtZSAnc3xeOip8fCcgLWUg J3N8OiokfHwnYAorKyAgICAgICAgY2FzZSAkYnVpbGQgaW4KKysgICAgICAgICAgKm1pbmd3KiAp ICMgQWN0dWFsbHksIG1zeXMuCisrICAgICAgICAgICAgIyBBd2t3YXJkOiBjbWQgYXBwZW5kcyBz cGFjZXMgdG8gcmVzdWx0LgorKyAgICAgICAgICAgIGx0X3NlZF9zdHJpcF90cmFpbGluZ19zcGFj ZXM9InMvWyBdKlwkLy8iCisrICAgICAgICAgICAgZnVuY190b19ob3N0X3BhdGhsaXN0X3RtcDI9 YCggY21kIC8vYyBlY2hvICIkZnVuY190b19ob3N0X3BhdGhsaXN0X3RtcDEiIHxcCisrICAgICAg ICAgICAgICAkU0VEIC1lICIkbHRfc2VkX3N0cmlwX3RyYWlsaW5nX3NwYWNlcyIgKSAyPi9kZXYv bnVsbCB8fCBlY2hvICIiYAorKyAgICAgICAgICAgIGZ1bmNfdG9faG9zdF9wYXRobGlzdF9yZXN1 bHQ9YGVjaG8gIiRmdW5jX3RvX2hvc3RfcGF0aGxpc3RfdG1wMiIgfFwKKysgICAgICAgICAgICAg ICRTRUQgLWUgIiRsdF9zZWRfbmFpdmVfYmFja3NsYXNoaWZ5ImAKKysgICAgICAgICAgICA7Owor KyAgICAgICAgICAqY3lnd2luKiApCisrICAgICAgICAgICAgZnVuY190b19ob3N0X3BhdGhsaXN0 X3RtcDI9YGN5Z3BhdGggLXcgLXAgIiRmdW5jX3RvX2hvc3RfcGF0aGxpc3RfdG1wMSJgCisrICAg ICAgICAgICAgZnVuY190b19ob3N0X3BhdGhsaXN0X3Jlc3VsdD1gZWNobyAiJGZ1bmNfdG9faG9z dF9wYXRobGlzdF90bXAyIiB8XAorKyAgICAgICAgICAgICAgJFNFRCAtZSAiJGx0X3NlZF9uYWl2 ZV9iYWNrc2xhc2hpZnkiYAorKyAgICAgICAgICAgIDs7CisrICAgICAgICAgICogKQorKyAgICAg ICAgICAgICMgdW5mb3J0dW5hdGVseSwgd2luZXBhdGggZG9lc24ndCBjb252ZXJ0IHBhdGhsaXN0 cworKyAgICAgICAgICAgIGZ1bmNfdG9faG9zdF9wYXRobGlzdF9yZXN1bHQ9IiIKKysgICAgICAg ICAgICBmdW5jX3RvX2hvc3RfcGF0aGxpc3Rfb2xkSUZTPSRJRlMKKysgICAgICAgICAgICBJRlM9 OgorKyAgICAgICAgICAgIGZvciBmdW5jX3RvX2hvc3RfcGF0aGxpc3RfZiBpbiAkZnVuY190b19o b3N0X3BhdGhsaXN0X3RtcDEgOyBkbworKyAgICAgICAgICAgICAgSUZTPSRmdW5jX3RvX2hvc3Rf cGF0aGxpc3Rfb2xkSUZTCisrICAgICAgICAgICAgICBpZiB0ZXN0IC1uICIkZnVuY190b19ob3N0 X3BhdGhsaXN0X2YiIDsgdGhlbgorKyAgICAgICAgICAgICAgICBmdW5jX3RvX2hvc3RfcGF0aCAi JGZ1bmNfdG9faG9zdF9wYXRobGlzdF9mIgorKyAgICAgICAgICAgICAgICBpZiB0ZXN0IC1uICIk ZnVuY190b19ob3N0X3BhdGhfcmVzdWx0IiA7IHRoZW4KKysgICAgICAgICAgICAgICAgICBpZiB0 ZXN0IC16ICIkZnVuY190b19ob3N0X3BhdGhsaXN0X3Jlc3VsdCIgOyB0aGVuCisrICAgICAgICAg ICAgICAgICAgICBmdW5jX3RvX2hvc3RfcGF0aGxpc3RfcmVzdWx0PSIkZnVuY190b19ob3N0X3Bh dGhfcmVzdWx0IgorKyAgICAgICAgICAgICAgICAgIGVsc2UKKysgICAgICAgICAgICAgICAgICAg IGZ1bmNfdG9faG9zdF9wYXRobGlzdF9yZXN1bHQ9IiRmdW5jX3RvX2hvc3RfcGF0aGxpc3RfcmVz dWx0OyRmdW5jX3RvX2hvc3RfcGF0aF9yZXN1bHQiCisrICAgICAgICAgICAgICAgICAgZmkKKysg ICAgICAgICAgICAgICAgZmkKKysgICAgICAgICAgICAgIGZpCisrICAgICAgICAgICAgICBJRlM9 OgorKyAgICAgICAgICAgIGRvbmUKKysgICAgICAgICAgICBJRlM9JGZ1bmNfdG9faG9zdF9wYXRo bGlzdF9vbGRJRlMKKysgICAgICAgICAgICA7OworKyAgICAgICAgZXNhYworKyAgICAgICAgaWYg dGVzdCAteiAiJGZ1bmNfdG9faG9zdF9wYXRobGlzdF9yZXN1bHQiIDsgdGhlbgorKyAgICAgICAg ICBmdW5jX2Vycm9yICJDb3VsZCBub3QgZGV0ZXJtaW5lIHRoZSBob3N0IHBhdGgocykgY29ycmVz cG9uZGluZyB0byIKKysgICAgICAgICAgZnVuY19lcnJvciAiICAnJDEnIgorKyAgICAgICAgICBm dW5jX2Vycm9yICJDb250aW51aW5nLCBidXQgdW5pbnN0YWxsZWQgZXhlY3V0YWJsZXMgbWF5IG5v dCB3b3JrLiIKKysgICAgICAgICAgIyBGYWxsYmFjay4gVGhpcyBtYXkgYnJlYWsgaWYgJDEgY29u dGFpbnMgRE9TLXN0eWxlIGRyaXZlCisrICAgICAgICAgICMgc3BlY2lmaWNhdGlvbnMuIFRoZSBm aXggaXMgbm90IHRvIGNvbXBsaWNhdGUgdGhlIGV4cHJlc3Npb24KKysgICAgICAgICAgIyBiZWxv dywgYnV0IGZvciB0aGUgdXNlciB0byBwcm92aWRlIGEgd29ya2luZyB3aW5lIGluc3RhbGxhdGlv bgorKyAgICAgICAgICAjIHdpdGggd2luZXBhdGggc28gdGhhdCBwYXRoIHRyYW5zbGF0aW9uIGlu IHRoZSBjcm9zcy10by1taW5ndworKyAgICAgICAgICAjIGNhc2Ugd29ya3MgcHJvcGVybHkuCisr ICAgICAgICAgIGx0X3JlcGxhY2VfcGF0aHNlcF9uaXhfdG9fZG9zPSJzfDp8O3xnIgorKyAgICAg ICAgICBmdW5jX3RvX2hvc3RfcGF0aGxpc3RfcmVzdWx0PWBlY2hvICIkZnVuY190b19ob3N0X3Bh dGhsaXN0X3RtcDEiIHxcCisrICAgICAgICAgICAgJFNFRCAtZSAiJGx0X3JlcGxhY2VfcGF0aHNl cF9uaXhfdG9fZG9zImAKKysgICAgICAgIGZpCisrICAgICAgICAjIE5vdywgYWRkIHRoZSBsZWFk aW5nIGFuZCB0cmFpbGluZyBwYXRoIHNlcGFyYXRvcnMgYmFjaworKyAgICAgICAgY2FzZSAiJDEi IGluCisrICAgICAgICAgIDoqICkgZnVuY190b19ob3N0X3BhdGhsaXN0X3Jlc3VsdD0iOyRmdW5j X3RvX2hvc3RfcGF0aGxpc3RfcmVzdWx0IgorKyAgICAgICAgICAgIDs7CisrICAgICAgICBlc2Fj CisrICAgICAgICBjYXNlICIkMSIgaW4KKysgICAgICAgICAgKjogKSBmdW5jX3RvX2hvc3RfcGF0 aGxpc3RfcmVzdWx0PSIkZnVuY190b19ob3N0X3BhdGhsaXN0X3Jlc3VsdDsiCisrICAgICAgICAg ICAgOzsKKysgICAgICAgIGVzYWMKKysgICAgICAgIDs7CisrICAgIGVzYWMKKysgIGZpCisrfQor KyMgZW5kOiBmdW5jX3RvX2hvc3RfcGF0aGxpc3QKKysKKysjIGZ1bmNfZW1pdF9jd3JhcHBlcmV4 ZV9zcmMKKysjIGVtaXQgdGhlIHNvdXJjZSBjb2RlIGZvciBhIHdyYXBwZXIgZXhlY3V0YWJsZSBv biBzdGRvdXQKKysjIE11c3QgT05MWSBiZSBjYWxsZWQgZnJvbSB3aXRoaW4gZnVuY19tb2RlX2xp bmsgYmVjYXVzZQorKyMgaXQgZGVwZW5kcyBvbiBhIG51bWJlciBvZiB2YXJpYWJsZSBzZXQgdGhl cmVpbi4KKytmdW5jX2VtaXRfY3dyYXBwZXJleGVfc3JjICgpCisreworKwljYXQgPDxFT0YKKysK KysvKiAkY3dyYXBwZXJzb3VyY2UgLSB0ZW1wb3Jhcnkgd3JhcHBlciBleGVjdXRhYmxlIGZvciAk b2JqZGlyLyRvdXRwdXRuYW1lCisrICAgR2VuZXJhdGVkIGJ5ICRQUk9HUkFNIChHTlUgJFBBQ0tB R0UkVElNRVNUQU1QKSAkVkVSU0lPTgorKworKyAgIFRoZSAkb3V0cHV0IHByb2dyYW0gY2Fubm90 IGJlIGRpcmVjdGx5IGV4ZWN1dGVkIHVudGlsIGFsbCB0aGUgbGlidG9vbAorKyAgIGxpYnJhcmll cyB0aGF0IGl0IGRlcGVuZHMgb24gYXJlIGluc3RhbGxlZC4KKysKKysgICBUaGlzIHdyYXBwZXIg ZXhlY3V0YWJsZSBzaG91bGQgbmV2ZXIgYmUgbW92ZWQgb3V0IG9mIHRoZSBidWlsZCBkaXJlY3Rv cnkuCisrICAgSWYgaXQgaXMsIGl0IHdpbGwgbm90IG9wZXJhdGUgY29ycmVjdGx5LgorKworKyAg IEN1cnJlbnRseSwgaXQgc2ltcGx5IGV4ZWNzIHRoZSB3cmFwcGVyICpzY3JpcHQqICIkU0hFTEwg JG91dHB1dCIsCisrICAgYnV0IGNvdWxkIGV2ZW50dWFsbHkgYWJzb3JiIGFsbCBvZiB0aGUgc2Ny aXB0cyBmdW5jdGlvbmFsaXR5IGFuZAorKyAgIGV4ZWMgJG9iamRpci8kb3V0cHV0bmFtZSBkaXJl Y3RseS4KKysqLworK0VPRgorKwkgICAgY2F0IDw8IkVPRiIKKysjaW5jbHVkZSA8c3RkaW8uaD4K KysjaW5jbHVkZSA8c3RkbGliLmg+CisrI2lmZGVmIF9NU0NfVkVSCisrIyBpbmNsdWRlIDxkaXJl Y3QuaD4KKysjIGluY2x1ZGUgPHByb2Nlc3MuaD4KKysjIGluY2x1ZGUgPGlvLmg+CisrIyBkZWZp bmUgc2V0bW9kZSBfc2V0bW9kZQorKyNlbHNlCisrIyBpbmNsdWRlIDx1bmlzdGQuaD4KKysjIGlu Y2x1ZGUgPHN0ZGludC5oPgorKyMgaWZkZWYgX19DWUdXSU5fXworKyMgIGluY2x1ZGUgPGlvLmg+ CisrIyAgZGVmaW5lIEhBVkVfU0VURU5WCisrIyAgaWZkZWYgX19TVFJJQ1RfQU5TSV9fCisrY2hh ciAqcmVhbHBhdGggKGNvbnN0IGNoYXIgKiwgY2hhciAqKTsKKytpbnQgcHV0ZW52IChjaGFyICop OworK2ludCBzZXRlbnYgKGNvbnN0IGNoYXIgKiwgY29uc3QgY2hhciAqLCBpbnQpOworKyMgIGVu ZGlmCisrIyBlbmRpZgorKyNlbmRpZgorKyNpbmNsdWRlIDxtYWxsb2MuaD4KKysjaW5jbHVkZSA8 c3RkYXJnLmg+CisrI2luY2x1ZGUgPGFzc2VydC5oPgorKyNpbmNsdWRlIDxzdHJpbmcuaD4KKysj aW5jbHVkZSA8Y3R5cGUuaD4KKysjaW5jbHVkZSA8ZXJybm8uaD4KKysjaW5jbHVkZSA8ZmNudGwu aD4KKysjaW5jbHVkZSA8c3lzL3N0YXQuaD4KKysKKysjaWYgZGVmaW5lZChQQVRIX01BWCkKKysj IGRlZmluZSBMVF9QQVRITUFYIFBBVEhfTUFYCisrI2VsaWYgZGVmaW5lZChNQVhQQVRITEVOKQor KyMgZGVmaW5lIExUX1BBVEhNQVggTUFYUEFUSExFTgorKyNlbHNlCisrIyBkZWZpbmUgTFRfUEFU SE1BWCAxMDI0CisrI2VuZGlmCisrCisrI2lmbmRlZiBTX0lYT1RICisrIyBkZWZpbmUgU19JWE9U SCAwCisrI2VuZGlmCisrI2lmbmRlZiBTX0lYR1JQCisrIyBkZWZpbmUgU19JWEdSUCAwCisrI2Vu ZGlmCisrCisrI2lmZGVmIF9NU0NfVkVSCisrIyBkZWZpbmUgU19JWFVTUiBfU19JRVhFQworKyMg ZGVmaW5lIHN0YXQgX3N0YXQKKysjIGlmbmRlZiBfSU5UUFRSX1RfREVGSU5FRAorKyMgIGRlZmlu ZSBpbnRwdHJfdCBpbnQKKysjIGVuZGlmCisrI2VuZGlmCisrCisrI2lmbmRlZiBESVJfU0VQQVJB VE9SCisrIyBkZWZpbmUgRElSX1NFUEFSQVRPUiAnLycKKysjIGRlZmluZSBQQVRIX1NFUEFSQVRP UiAnOicKKysjZW5kaWYKKysKKysjaWYgZGVmaW5lZCAoX1dJTjMyKSB8fCBkZWZpbmVkIChfX01T RE9TX18pIHx8IGRlZmluZWQgKF9fREpHUFBfXykgfHwgXAorKyAgZGVmaW5lZCAoX19PUzJfXykK KysjIGRlZmluZSBIQVZFX0RPU19CQVNFRF9GSUxFX1NZU1RFTQorKyMgZGVmaW5lIEZPUEVOX1dC ICJ3YiIKKysjIGlmbmRlZiBESVJfU0VQQVJBVE9SXzIKKysjICBkZWZpbmUgRElSX1NFUEFSQVRP Ul8yICdcXCcKKysjIGVuZGlmCisrIyBpZm5kZWYgUEFUSF9TRVBBUkFUT1JfMgorKyMgIGRlZmlu ZSBQQVRIX1NFUEFSQVRPUl8yICc7JworKyMgZW5kaWYKKysjZW5kaWYKKysKKysjaWZuZGVmIERJ Ul9TRVBBUkFUT1JfMgorKyMgZGVmaW5lIElTX0RJUl9TRVBBUkFUT1IoY2gpICgoY2gpID09IERJ Ul9TRVBBUkFUT1IpCisrI2Vsc2UgLyogRElSX1NFUEFSQVRPUl8yICovCisrIyBkZWZpbmUgSVNf RElSX1NFUEFSQVRPUihjaCkgXAorKwkoKChjaCkgPT0gRElSX1NFUEFSQVRPUikgfHwgKChjaCkg PT0gRElSX1NFUEFSQVRPUl8yKSkKKysjZW5kaWYgLyogRElSX1NFUEFSQVRPUl8yICovCisrCisr I2lmbmRlZiBQQVRIX1NFUEFSQVRPUl8yCisrIyBkZWZpbmUgSVNfUEFUSF9TRVBBUkFUT1IoY2gp ICgoY2gpID09IFBBVEhfU0VQQVJBVE9SKQorKyNlbHNlIC8qIFBBVEhfU0VQQVJBVE9SXzIgKi8K KysjIGRlZmluZSBJU19QQVRIX1NFUEFSQVRPUihjaCkgKChjaCkgPT0gUEFUSF9TRVBBUkFUT1Jf MikKKysjZW5kaWYgLyogUEFUSF9TRVBBUkFUT1JfMiAqLworKworKyNpZmRlZiBfX0NZR1dJTl9f CisrIyBkZWZpbmUgRk9QRU5fV0IgIndiIgorKyNlbmRpZgorKworKyNpZm5kZWYgRk9QRU5fV0IK KysjIGRlZmluZSBGT1BFTl9XQiAidyIKKysjZW5kaWYKKysjaWZuZGVmIF9PX0JJTkFSWQorKyMg ZGVmaW5lIF9PX0JJTkFSWSAwCisrI2VuZGlmCisrCisrI2RlZmluZSBYTUFMTE9DKHR5cGUsIG51 bSkgICAgICAoKHR5cGUgKikgeG1hbGxvYyAoKG51bSkgKiBzaXplb2YodHlwZSkpKQorKyNkZWZp bmUgWEZSRUUoc3RhbGUpIGRvIHsgXAorKyAgaWYgKHN0YWxlKSB7IGZyZWUgKCh2b2lkICopIHN0 YWxlKTsgc3RhbGUgPSAwOyB9IFwKKyt9IHdoaWxlICgwKQorKworKyN1bmRlZiBMVFdSQVBQRVJf REVCVUdQUklOVEYKKysjaWYgZGVmaW5lZCBERUJVR1dSQVBQRVIKKysjIGRlZmluZSBMVFdSQVBQ RVJfREVCVUdQUklOVEYoYXJncykgbHR3cmFwcGVyX2RlYnVncHJpbnRmIGFyZ3MKKytzdGF0aWMg dm9pZAorK2x0d3JhcHBlcl9kZWJ1Z3ByaW50ZiAoY29uc3QgY2hhciAqZm10LCAuLi4pCisrewor KyAgICB2YV9saXN0IGFyZ3M7CisrICAgIHZhX3N0YXJ0IChhcmdzLCBmbXQpOworKyAgICAodm9p ZCkgdmZwcmludGYgKHN0ZGVyciwgZm10LCBhcmdzKTsKKysgICAgdmFfZW5kIChhcmdzKTsKKyt9 CisrI2Vsc2UKKysjIGRlZmluZSBMVFdSQVBQRVJfREVCVUdQUklOVEYoYXJncykKKysjZW5kaWYK KysKKytjb25zdCBjaGFyICpwcm9ncmFtX25hbWUgPSBOVUxMOworKworK3ZvaWQgKnhtYWxsb2Mg KHNpemVfdCBudW0pOworK2NoYXIgKnhzdHJkdXAgKGNvbnN0IGNoYXIgKnN0cmluZyk7CisrY29u c3QgY2hhciAqYmFzZV9uYW1lIChjb25zdCBjaGFyICpuYW1lKTsKKytjaGFyICpmaW5kX2V4ZWN1 dGFibGUgKGNvbnN0IGNoYXIgKndyYXBwZXIpOworK2NoYXIgKmNoYXNlX3N5bWxpbmtzIChjb25z dCBjaGFyICpwYXRoc3BlYyk7CisraW50IG1ha2VfZXhlY3V0YWJsZSAoY29uc3QgY2hhciAqcGF0 aCk7CisraW50IGNoZWNrX2V4ZWN1dGFibGUgKGNvbnN0IGNoYXIgKnBhdGgpOworK2NoYXIgKnN0 cmVuZHphcCAoY2hhciAqc3RyLCBjb25zdCBjaGFyICpwYXQpOworK3ZvaWQgbHRfZmF0YWwgKGNv bnN0IGNoYXIgKm1lc3NhZ2UsIC4uLik7Cisrdm9pZCBsdF9zZXRlbnYgKGNvbnN0IGNoYXIgKm5h bWUsIGNvbnN0IGNoYXIgKnZhbHVlKTsKKytjaGFyICpsdF9leHRlbmRfc3RyIChjb25zdCBjaGFy ICpvcmlnX3ZhbHVlLCBjb25zdCBjaGFyICphZGQsIGludCB0b19lbmQpOworK3ZvaWQgbHRfb3B0 X3Byb2Nlc3NfZW52X3NldCAoY29uc3QgY2hhciAqYXJnKTsKKyt2b2lkIGx0X29wdF9wcm9jZXNz X2Vudl9wcmVwZW5kIChjb25zdCBjaGFyICphcmcpOworK3ZvaWQgbHRfb3B0X3Byb2Nlc3NfZW52 X2FwcGVuZCAoY29uc3QgY2hhciAqYXJnKTsKKytpbnQgbHRfc3BsaXRfbmFtZV92YWx1ZSAoY29u c3QgY2hhciAqYXJnLCBjaGFyKiogbmFtZSwgY2hhcioqIHZhbHVlKTsKKyt2b2lkIGx0X3VwZGF0 ZV9leGVfcGF0aCAoY29uc3QgY2hhciAqbmFtZSwgY29uc3QgY2hhciAqdmFsdWUpOworK3ZvaWQg bHRfdXBkYXRlX2xpYl9wYXRoIChjb25zdCBjaGFyICpuYW1lLCBjb25zdCBjaGFyICp2YWx1ZSk7 CisrCisrc3RhdGljIGNvbnN0IGNoYXIgKnNjcmlwdF90ZXh0X3BhcnQxID0KKytFT0YKKysKKysJ ICAgIGZ1bmNfZW1pdF93cmFwcGVyX3BhcnQxIHllcyB8CisrCSAgICAgICAgJFNFRCAtZSAncy9c KFtcXCJdXCkvXFxcMS9nJyBcCisrCSAgICAgICAgICAgICAtZSAncy9eLyAgIi8nIC1lICdzLyQv XFxuIi8nCisrCSAgICBlY2hvICI7IgorKwkgICAgY2F0IDw8RU9GCisrCisrc3RhdGljIGNvbnN0 IGNoYXIgKnNjcmlwdF90ZXh0X3BhcnQyID0KKytFT0YKKysJICAgIGZ1bmNfZW1pdF93cmFwcGVy X3BhcnQyIHllcyB8CisrCSAgICAgICAgJFNFRCAtZSAncy9cKFtcXCJdXCkvXFxcMS9nJyBcCisr CSAgICAgICAgICAgICAtZSAncy9eLyAgIi8nIC1lICdzLyQvXFxuIi8nCisrCSAgICBlY2hvICI7 IgorKworKwkgICAgY2F0IDw8RU9GCisrY29uc3QgY2hhciAqIE1BR0lDX0VYRSA9ICIkbWFnaWNf ZXhlIjsKKytjb25zdCBjaGFyICogTElCX1BBVEhfVkFSTkFNRSA9ICIkc2hsaWJwYXRoX3ZhciI7 CisrRU9GCisrCisrCSAgICBpZiB0ZXN0ICIkc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoIiA9 IHllcyAmJiB0ZXN0IC1uICIkc2hsaWJwYXRoX3ZhciIgJiYgdGVzdCAtbiAiJHRlbXBfcnBhdGgi OyB0aGVuCisrICAgICAgICAgICAgICBmdW5jX3RvX2hvc3RfcGF0aGxpc3QgIiR0ZW1wX3JwYXRo IgorKwkgICAgICBjYXQgPDxFT0YKKytjb25zdCBjaGFyICogTElCX1BBVEhfVkFMVUUgICA9ICIk ZnVuY190b19ob3N0X3BhdGhsaXN0X3Jlc3VsdCI7CisrRU9GCisrCSAgICBlbHNlCisrCSAgICAg IGNhdCA8PCJFT0YiCisrY29uc3QgY2hhciAqIExJQl9QQVRIX1ZBTFVFICAgPSAiIjsKKytFT0YK KysJICAgIGZpCisrCisrCSAgICBpZiB0ZXN0IC1uICIkZGxsc2VhcmNocGF0aCI7IHRoZW4KKysg ICAgICAgICAgICAgIGZ1bmNfdG9faG9zdF9wYXRobGlzdCAiJGRsbHNlYXJjaHBhdGg6IgorKwkg ICAgICBjYXQgPDxFT0YKKytjb25zdCBjaGFyICogRVhFX1BBVEhfVkFSTkFNRSA9ICJQQVRIIjsK Kytjb25zdCBjaGFyICogRVhFX1BBVEhfVkFMVUUgICA9ICIkZnVuY190b19ob3N0X3BhdGhsaXN0 X3Jlc3VsdCI7CisrRU9GCisrCSAgICBlbHNlCisrCSAgICAgIGNhdCA8PCJFT0YiCisrY29uc3Qg Y2hhciAqIEVYRV9QQVRIX1ZBUk5BTUUgPSAiIjsKKytjb25zdCBjaGFyICogRVhFX1BBVEhfVkFM VUUgICA9ICIiOworK0VPRgorKwkgICAgZmkKKysKKysJICAgIGlmIHRlc3QgIiRmYXN0X2luc3Rh bGwiID0geWVzOyB0aGVuCisrCSAgICAgIGNhdCA8PEVPRgorK2NvbnN0IGNoYXIgKiBUQVJHRVRf UFJPR1JBTV9OQU1FID0gImx0LSRvdXRwdXRuYW1lIjsgLyogaG9wZWZ1bGx5LCBubyAuZXhlICov CisrRU9GCisrCSAgICBlbHNlCisrCSAgICAgIGNhdCA8PEVPRgorK2NvbnN0IGNoYXIgKiBUQVJH RVRfUFJPR1JBTV9OQU1FID0gIiRvdXRwdXRuYW1lIjsgLyogaG9wZWZ1bGx5LCBubyAuZXhlICov CisrRU9GCisrCSAgICBmaQorKworKworKwkgICAgY2F0IDw8IkVPRiIKKysKKysjZGVmaW5lIExU V1JBUFBFUl9PUFRJT05fUFJFRklYICAgICAgICAgIi0tbHQtIgorKyNkZWZpbmUgTFRXUkFQUEVS X09QVElPTl9QUkVGSVhfTEVOR1RIICA1CisrCisrc3RhdGljIGNvbnN0IHNpemVfdCBvcHRfcHJl Zml4X2xlbiAgICAgICAgID0gTFRXUkFQUEVSX09QVElPTl9QUkVGSVhfTEVOR1RIOworK3N0YXRp YyBjb25zdCBjaGFyICpsdHdyYXBwZXJfb3B0aW9uX3ByZWZpeCA9IExUV1JBUFBFUl9PUFRJT05f UFJFRklYOworKworK3N0YXRpYyBjb25zdCBjaGFyICpkdW1wc2NyaXB0X29wdCAgICAgICA9IExU V1JBUFBFUl9PUFRJT05fUFJFRklYICJkdW1wLXNjcmlwdCI7CisrCisrc3RhdGljIGNvbnN0IHNp emVfdCBlbnZfc2V0X29wdF9sZW4gICAgID0gTFRXUkFQUEVSX09QVElPTl9QUkVGSVhfTEVOR1RI ICsgNzsKKytzdGF0aWMgY29uc3QgY2hhciAqZW52X3NldF9vcHQgICAgICAgICAgPSBMVFdSQVBQ RVJfT1BUSU9OX1BSRUZJWCAiZW52LXNldCI7CisrICAvKiBhcmd1bWVudCBpcyBwdXRlbnYtc3R5 bGUgImZvbz1iYXIiLCB2YWx1ZSBvZiBmb28gaXMgc2V0IHRvIGJhciAqLworKworK3N0YXRpYyBj b25zdCBzaXplX3QgZW52X3ByZXBlbmRfb3B0X2xlbiA9IExUV1JBUFBFUl9PUFRJT05fUFJFRklY X0xFTkdUSCArIDExOworK3N0YXRpYyBjb25zdCBjaGFyICplbnZfcHJlcGVuZF9vcHQgICAgICA9 IExUV1JBUFBFUl9PUFRJT05fUFJFRklYICJlbnYtcHJlcGVuZCI7CisrICAvKiBhcmd1bWVudCBp cyBwdXRlbnYtc3R5bGUgImZvbz1iYXIiLCBuZXcgdmFsdWUgb2YgZm9vIGlzIGJhciR7Zm9vfSAq LworKworK3N0YXRpYyBjb25zdCBzaXplX3QgZW52X2FwcGVuZF9vcHRfbGVuICA9IExUV1JBUFBF Ul9PUFRJT05fUFJFRklYX0xFTkdUSCArIDEwOworK3N0YXRpYyBjb25zdCBjaGFyICplbnZfYXBw ZW5kX29wdCAgICAgICA9IExUV1JBUFBFUl9PUFRJT05fUFJFRklYICJlbnYtYXBwZW5kIjsKKysg IC8qIGFyZ3VtZW50IGlzIHB1dGVudi1zdHlsZSAiZm9vPWJhciIsIG5ldyB2YWx1ZSBvZiBmb28g aXMgJHtmb299YmFyICovCisrCisraW50CisrbWFpbiAoaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkK Kyt7CisrICBjaGFyICoqbmV3YXJnejsKKysgIGludCAgbmV3YXJnYzsKKysgIGNoYXIgKnRtcF9w YXRoc3BlYzsKKysgIGNoYXIgKmFjdHVhbF9jd3JhcHBlcl9wYXRoOworKyAgY2hhciAqYWN0dWFs X2N3cmFwcGVyX25hbWU7CisrICBjaGFyICp0YXJnZXRfbmFtZTsKKysgIGNoYXIgKmx0X2FyZ3Zf emVybzsKKysgIGludHB0cl90IHJ2YWwgPSAxMjc7CisrCisrICBpbnQgaTsKKysKKysgIHByb2dy YW1fbmFtZSA9IChjaGFyICopIHhzdHJkdXAgKGJhc2VfbmFtZSAoYXJndlswXSkpOworKyAgTFRX UkFQUEVSX0RFQlVHUFJJTlRGICgoIihtYWluKSBhcmd2WzBdICAgICAgOiAlc1xuIiwgYXJndlsw XSkpOworKyAgTFRXUkFQUEVSX0RFQlVHUFJJTlRGICgoIihtYWluKSBwcm9ncmFtX25hbWUgOiAl c1xuIiwgcHJvZ3JhbV9uYW1lKSk7CisrCisrICAvKiB2ZXJ5IHNpbXBsZSBhcmcgcGFyc2luZzsg ZG9uJ3Qgd2FudCB0byByZWx5IG9uIGdldG9wdCAqLworKyAgZm9yIChpID0gMTsgaSA8IGFyZ2M7 IGkrKykKKysgICAgeworKyAgICAgIGlmIChzdHJjbXAgKGFyZ3ZbaV0sIGR1bXBzY3JpcHRfb3B0 KSA9PSAwKQorKwl7CisrRU9GCisrCSAgICBjYXNlICIkaG9zdCIgaW4KKysJICAgICAgKm1pbmd3 KiB8ICpjeWd3aW4qICkKKysJCSMgbWFrZSBzdGRvdXQgdXNlICJ1bml4IiBsaW5lIGVuZGluZ3MK KysJCWVjaG8gIiAgICAgICAgICBzZXRtb2RlKDEsX09fQklOQVJZKTsiCisrCQk7OworKwkgICAg ICBlc2FjCisrCisrCSAgICBjYXQgPDwiRU9GIgorKwkgIHByaW50ZiAoIiVzIiwgc2NyaXB0X3Rl eHRfcGFydDEpOworKwkgIHByaW50ZiAoIiVzIiwgc2NyaXB0X3RleHRfcGFydDIpOworKwkgIHJl dHVybiAwOworKwl9CisrICAgIH0KKysKKysgIG5ld2FyZ3ogPSBYTUFMTE9DIChjaGFyICosIGFy Z2MgKyAxKTsKKysgIHRtcF9wYXRoc3BlYyA9IGZpbmRfZXhlY3V0YWJsZSAoYXJndlswXSk7Cisr ICBpZiAodG1wX3BhdGhzcGVjID09IE5VTEwpCisrICAgIGx0X2ZhdGFsICgiQ291bGRuJ3QgZmlu ZCAlcyIsIGFyZ3ZbMF0pOworKyAgTFRXUkFQUEVSX0RFQlVHUFJJTlRGICgoIihtYWluKSBmb3Vu ZCBleGUgKGJlZm9yZSBzeW1saW5rIGNoYXNlKSBhdCA6ICVzXG4iLAorKwkJCSAgdG1wX3BhdGhz cGVjKSk7CisrCisrICBhY3R1YWxfY3dyYXBwZXJfcGF0aCA9IGNoYXNlX3N5bWxpbmtzICh0bXBf cGF0aHNwZWMpOworKyAgTFRXUkFQUEVSX0RFQlVHUFJJTlRGICgoIihtYWluKSBmb3VuZCBleGUg KGFmdGVyIHN5bWxpbmsgY2hhc2UpIGF0IDogJXNcbiIsCisrCQkJICBhY3R1YWxfY3dyYXBwZXJf cGF0aCkpOworKyAgWEZSRUUgKHRtcF9wYXRoc3BlYyk7CisrCisrICBhY3R1YWxfY3dyYXBwZXJf bmFtZSA9IHhzdHJkdXAoIGJhc2VfbmFtZSAoYWN0dWFsX2N3cmFwcGVyX3BhdGgpKTsKKysgIHN0 cmVuZHphcCAoYWN0dWFsX2N3cmFwcGVyX3BhdGgsIGFjdHVhbF9jd3JhcHBlcl9uYW1lKTsKKysK KysgIC8qIHdyYXBwZXIgbmFtZSB0cmFuc2Zvcm1zICovCisrICBzdHJlbmR6YXAgKGFjdHVhbF9j d3JhcHBlcl9uYW1lLCAiLmV4ZSIpOworKyAgdG1wX3BhdGhzcGVjID0gbHRfZXh0ZW5kX3N0ciAo YWN0dWFsX2N3cmFwcGVyX25hbWUsICIuZXhlIiwgMSk7CisrICBYRlJFRSAoYWN0dWFsX2N3cmFw cGVyX25hbWUpOworKyAgYWN0dWFsX2N3cmFwcGVyX25hbWUgPSB0bXBfcGF0aHNwZWM7CisrICB0 bXBfcGF0aHNwZWMgPSAwOworKworKyAgLyogdGFyZ2V0X25hbWUgdHJhbnNmb3JtcyAtLSB1c2Ug YWN0dWFsIHRhcmdldCBwcm9ncmFtIG5hbWU7IG1pZ2h0IGhhdmUgbHQtIHByZWZpeCAqLworKyAg dGFyZ2V0X25hbWUgPSB4c3RyZHVwIChiYXNlX25hbWUgKFRBUkdFVF9QUk9HUkFNX05BTUUpKTsK KysgIHN0cmVuZHphcCAodGFyZ2V0X25hbWUsICIuZXhlIik7CisrICB0bXBfcGF0aHNwZWMgPSBs dF9leHRlbmRfc3RyICh0YXJnZXRfbmFtZSwgIi5leGUiLCAxKTsKKysgIFhGUkVFICh0YXJnZXRf bmFtZSk7CisrICB0YXJnZXRfbmFtZSA9IHRtcF9wYXRoc3BlYzsKKysgIHRtcF9wYXRoc3BlYyA9 IDA7CisrCisrICBMVFdSQVBQRVJfREVCVUdQUklOVEYgKCgiKG1haW4pIGxpYnRvb2wgdGFyZ2V0 IG5hbWU6ICVzXG4iLAorKwkJCSAgdGFyZ2V0X25hbWUpKTsKKytFT0YKKysKKysJICAgIGNhdCA8 PEVPRgorKyAgbmV3YXJnelswXSA9CisrICAgIFhNQUxMT0MgKGNoYXIsIChzdHJsZW4gKGFjdHVh bF9jd3JhcHBlcl9wYXRoKSArCisrCQkgICAgc3RybGVuICgiJG9iamRpciIpICsgMSArIHN0cmxl biAoYWN0dWFsX2N3cmFwcGVyX25hbWUpICsgMSkpOworKyAgc3RyY3B5IChuZXdhcmd6WzBdLCBh Y3R1YWxfY3dyYXBwZXJfcGF0aCk7CisrICBzdHJjYXQgKG5ld2FyZ3pbMF0sICIkb2JqZGlyIik7 CisrICBzdHJjYXQgKG5ld2FyZ3pbMF0sICIvIik7CisrRU9GCisrCisrCSAgICBjYXQgPDwiRU9G IgorKyAgLyogc3RvcCBoZXJlLCBhbmQgY29weSBzbyB3ZSBkb24ndCBoYXZlIHRvIGRvIHRoaXMg dHdpY2UgKi8KKysgIHRtcF9wYXRoc3BlYyA9IHhzdHJkdXAgKG5ld2FyZ3pbMF0pOworKworKyAg LyogZG8gTk9UIHdhbnQgdGhlIGx0LSBwcmVmaXggaGVyZSwgc28gdXNlIGFjdHVhbF9jd3JhcHBl cl9uYW1lICovCisrICBzdHJjYXQgKG5ld2FyZ3pbMF0sIGFjdHVhbF9jd3JhcHBlcl9uYW1lKTsK KysKKysgIC8qIERPIHdhbnQgdGhlIGx0LSBwcmVmaXggaGVyZSBpZiBpdCBleGlzdHMsIHNvIHVz ZSB0YXJnZXRfbmFtZSAqLworKyAgbHRfYXJndl96ZXJvID0gbHRfZXh0ZW5kX3N0ciAodG1wX3Bh dGhzcGVjLCB0YXJnZXRfbmFtZSwgMSk7CisrICBYRlJFRSAodG1wX3BhdGhzcGVjKTsKKysgIHRt cF9wYXRoc3BlYyA9IE5VTEw7CisrRU9GCisrCisrCSAgICBjYXNlICRob3N0X29zIGluCisrCSAg ICAgIG1pbmd3KikKKysJICAgIGNhdCA8PCJFT0YiCisrICB7CisrICAgIGNoYXIqIHA7CisrICAg IHdoaWxlICgocCA9IHN0cmNociAobmV3YXJnelswXSwgJ1xcJykpICE9IE5VTEwpCisrICAgICAg eworKwkqcCA9ICcvJzsKKysgICAgICB9CisrICAgIHdoaWxlICgocCA9IHN0cmNociAobHRfYXJn dl96ZXJvLCAnXFwnKSkgIT0gTlVMTCkKKysgICAgICB7CisrCSpwID0gJy8nOworKyAgICAgIH0K KysgIH0KKytFT0YKKysJICAgIDs7CisrCSAgICBlc2FjCisrCisrCSAgICBjYXQgPDwiRU9GIgor KyAgWEZSRUUgKHRhcmdldF9uYW1lKTsKKysgIFhGUkVFIChhY3R1YWxfY3dyYXBwZXJfcGF0aCk7 CisrICBYRlJFRSAoYWN0dWFsX2N3cmFwcGVyX25hbWUpOworKworKyAgbHRfc2V0ZW52ICgiQklO X1NIIiwgInhwZzQiKTsgLyogZm9yIFRydTY0ICovCisrICBsdF9zZXRlbnYgKCJEVUFMQ0FTRSIs ICIxIik7ICAvKiBmb3IgTVNLIHNoICovCisrICBsdF91cGRhdGVfbGliX3BhdGggKExJQl9QQVRI X1ZBUk5BTUUsIExJQl9QQVRIX1ZBTFVFKTsKKysgIGx0X3VwZGF0ZV9leGVfcGF0aCAoRVhFX1BB VEhfVkFSTkFNRSwgRVhFX1BBVEhfVkFMVUUpOworKworKyAgbmV3YXJnYz0wOworKyAgZm9yIChp ID0gMTsgaSA8IGFyZ2M7IGkrKykKKysgICAgeworKyAgICAgIGlmIChzdHJuY21wIChhcmd2W2ld LCBlbnZfc2V0X29wdCwgZW52X3NldF9vcHRfbGVuKSA9PSAwKQorKyAgICAgICAgeworKyAgICAg ICAgICBpZiAoYXJndltpXVtlbnZfc2V0X29wdF9sZW5dID09ICc9JykKKysgICAgICAgICAgICB7 CisrICAgICAgICAgICAgICBjb25zdCBjaGFyICpwID0gYXJndltpXSArIGVudl9zZXRfb3B0X2xl biArIDE7CisrICAgICAgICAgICAgICBsdF9vcHRfcHJvY2Vzc19lbnZfc2V0IChwKTsKKysgICAg ICAgICAgICB9CisrICAgICAgICAgIGVsc2UgaWYgKGFyZ3ZbaV1bZW52X3NldF9vcHRfbGVuXSA9 PSAnXDAnICYmIGkgKyAxIDwgYXJnYykKKysgICAgICAgICAgICB7CisrICAgICAgICAgICAgICBs dF9vcHRfcHJvY2Vzc19lbnZfc2V0IChhcmd2WysraV0pOyAvKiBkb24ndCBjb3B5ICovCisrICAg ICAgICAgICAgfQorKyAgICAgICAgICBlbHNlCisrICAgICAgICAgICAgbHRfZmF0YWwgKCIlcyBt aXNzaW5nIHJlcXVpcmVkIGFyZ3VtZW50IiwgZW52X3NldF9vcHQpOworKyAgICAgICAgICBjb250 aW51ZTsKKysgICAgICAgIH0KKysgICAgICBpZiAoc3RybmNtcCAoYXJndltpXSwgZW52X3ByZXBl bmRfb3B0LCBlbnZfcHJlcGVuZF9vcHRfbGVuKSA9PSAwKQorKyAgICAgICAgeworKyAgICAgICAg ICBpZiAoYXJndltpXVtlbnZfcHJlcGVuZF9vcHRfbGVuXSA9PSAnPScpCisrICAgICAgICAgICAg eworKyAgICAgICAgICAgICAgY29uc3QgY2hhciAqcCA9IGFyZ3ZbaV0gKyBlbnZfcHJlcGVuZF9v cHRfbGVuICsgMTsKKysgICAgICAgICAgICAgIGx0X29wdF9wcm9jZXNzX2Vudl9wcmVwZW5kIChw KTsKKysgICAgICAgICAgICB9CisrICAgICAgICAgIGVsc2UgaWYgKGFyZ3ZbaV1bZW52X3ByZXBl bmRfb3B0X2xlbl0gPT0gJ1wwJyAmJiBpICsgMSA8IGFyZ2MpCisrICAgICAgICAgICAgeworKyAg ICAgICAgICAgICAgbHRfb3B0X3Byb2Nlc3NfZW52X3ByZXBlbmQgKGFyZ3ZbKytpXSk7IC8qIGRv bid0IGNvcHkgKi8KKysgICAgICAgICAgICB9CisrICAgICAgICAgIGVsc2UKKysgICAgICAgICAg ICBsdF9mYXRhbCAoIiVzIG1pc3NpbmcgcmVxdWlyZWQgYXJndW1lbnQiLCBlbnZfcHJlcGVuZF9v cHQpOworKyAgICAgICAgICBjb250aW51ZTsKKysgICAgICAgIH0KKysgICAgICBpZiAoc3RybmNt cCAoYXJndltpXSwgZW52X2FwcGVuZF9vcHQsIGVudl9hcHBlbmRfb3B0X2xlbikgPT0gMCkKKysg ICAgICAgIHsKKysgICAgICAgICAgaWYgKGFyZ3ZbaV1bZW52X2FwcGVuZF9vcHRfbGVuXSA9PSAn PScpCisrICAgICAgICAgICAgeworKyAgICAgICAgICAgICAgY29uc3QgY2hhciAqcCA9IGFyZ3Zb aV0gKyBlbnZfYXBwZW5kX29wdF9sZW4gKyAxOworKyAgICAgICAgICAgICAgbHRfb3B0X3Byb2Nl c3NfZW52X2FwcGVuZCAocCk7CisrICAgICAgICAgICAgfQorKyAgICAgICAgICBlbHNlIGlmIChh cmd2W2ldW2Vudl9hcHBlbmRfb3B0X2xlbl0gPT0gJ1wwJyAmJiBpICsgMSA8IGFyZ2MpCisrICAg ICAgICAgICAgeworKyAgICAgICAgICAgICAgbHRfb3B0X3Byb2Nlc3NfZW52X2FwcGVuZCAoYXJn dlsrK2ldKTsgLyogZG9uJ3QgY29weSAqLworKyAgICAgICAgICAgIH0KKysgICAgICAgICAgZWxz ZQorKyAgICAgICAgICAgIGx0X2ZhdGFsICgiJXMgbWlzc2luZyByZXF1aXJlZCBhcmd1bWVudCIs IGVudl9hcHBlbmRfb3B0KTsKKysgICAgICAgICAgY29udGludWU7CisrICAgICAgICB9CisrICAg ICAgaWYgKHN0cm5jbXAgKGFyZ3ZbaV0sIGx0d3JhcHBlcl9vcHRpb25fcHJlZml4LCBvcHRfcHJl Zml4X2xlbikgPT0gMCkKKysgICAgICAgIHsKKysgICAgICAgICAgLyogaG93ZXZlciwgaWYgdGhl cmUgaXMgYW4gb3B0aW9uIGluIHRoZSBMVFdSQVBQRVJfT1BUSU9OX1BSRUZJWAorKyAgICAgICAg ICAgICBuYW1lc3BhY2UsIGJ1dCBpdCBpcyBub3Qgb25lIG9mIHRoZSBvbmVzIHdlIGtub3cgYWJv dXQgYW5kCisrICAgICAgICAgICAgIGhhdmUgYWxyZWFkeSBkZWFsdCB3aXRoLCBhYm92ZSAoaW5s dWRpbmcgZHVtcC1zY3JpcHQpLCB0aGVuCisrICAgICAgICAgICAgIHJlcG9ydCBhbiBlcnJvci4g T3RoZXJ3aXNlLCB0YXJnZXRzIG1pZ2h0IGJlZ2luIHRvIGJlbGlldmUKKysgICAgICAgICAgICAg dGhleSBhcmUgYWxsb3dlZCB0byB1c2Ugb3B0aW9ucyBpbiB0aGUgTFRXUkFQUEVSX09QVElPTl9Q UkVGSVgKKysgICAgICAgICAgICAgbmFtZXNwYWNlLiBUaGUgZmlyc3QgdGltZSBhbnkgdXNlciBj b21wbGFpbnMgYWJvdXQgdGhpcywgd2UnbGwKKysgICAgICAgICAgICAgbmVlZCB0byBtYWtlIExU V1JBUFBFUl9PUFRJT05fUFJFRklYIGEgY29uZmlndXJlLXRpbWUgb3B0aW9uCisrICAgICAgICAg ICAgIG9yIGEgY29uZmlndXJlLmFjLXNldHRhYmxlIHZhbHVlLgorKyAgICAgICAgICAgKi8KKysg ICAgICAgICAgbHRfZmF0YWwgKCJVbnJlY29nbml6ZWQgb3B0aW9uIGluICVzIG5hbWVzcGFjZTog JyVzJyIsCisrICAgICAgICAgICAgICAgICAgICBsdHdyYXBwZXJfb3B0aW9uX3ByZWZpeCwgYXJn dltpXSk7CisrICAgICAgICB9CisrICAgICAgLyogb3RoZXJ3aXNlIC4uLiAqLworKyAgICAgIG5l d2FyZ3pbKytuZXdhcmdjXSA9IHhzdHJkdXAgKGFyZ3ZbaV0pOworKyAgICB9CisrICBuZXdhcmd6 WysrbmV3YXJnY10gPSBOVUxMOworKworKyAgTFRXUkFQUEVSX0RFQlVHUFJJTlRGICAgICAoKCIo bWFpbikgbHRfYXJndl96ZXJvIDogJXNcbiIsIChsdF9hcmd2X3plcm8gPyBsdF9hcmd2X3plcm8g OiAiPE5VTEw+IikpKTsKKysgIGZvciAoaSA9IDA7IGkgPCBuZXdhcmdjOyBpKyspCisrICAgIHsK KysgICAgICBMVFdSQVBQRVJfREVCVUdQUklOVEYgKCgiKG1haW4pIG5ld2FyZ3pbJWRdICAgOiAl c1xuIiwgaSwgKG5ld2FyZ3pbaV0gPyBuZXdhcmd6W2ldIDogIjxOVUxMPiIpKSk7CisrICAgIH0K KysKKytFT0YKKysKKysJICAgIGNhc2UgJGhvc3Rfb3MgaW4KKysJICAgICAgbWluZ3cqKQorKwkJ Y2F0IDw8IkVPRiIKKysgIC8qIGV4ZWN2IGRvZXNuJ3QgYWN0dWFsbHkgd29yayBvbiBtaW5ndyBh cyBleHBlY3RlZCBvbiB1bml4ICovCisrICBydmFsID0gX3NwYXdudiAoX1BfV0FJVCwgbHRfYXJn dl96ZXJvLCAoY29uc3QgY2hhciAqIGNvbnN0ICopIG5ld2FyZ3opOworKyAgaWYgKHJ2YWwgPT0g LTEpCisrICAgIHsKKysgICAgICAvKiBmYWlsZWQgdG8gc3RhcnQgcHJvY2VzcyAqLworKyAgICAg IExUV1JBUFBFUl9ERUJVR1BSSU5URiAoKCIobWFpbikgZmFpbGVkIHRvIGxhdW5jaCB0YXJnZXQg XCIlc1wiOiBlcnJubyA9ICVkXG4iLCBsdF9hcmd2X3plcm8sIGVycm5vKSk7CisrICAgICAgcmV0 dXJuIDEyNzsKKysgICAgfQorKyAgcmV0dXJuIHJ2YWw7CisrRU9GCisrCQk7OworKwkgICAgICAq KQorKwkJY2F0IDw8IkVPRiIKKysgIGV4ZWN2IChsdF9hcmd2X3plcm8sIG5ld2FyZ3opOworKyAg cmV0dXJuIHJ2YWw7IC8qID0xMjcsIGJ1dCBhdm9pZHMgdW51c2VkIHZhcmlhYmxlIHdhcm5pbmcg Ki8KKytFT0YKKysJCTs7CisrCSAgICBlc2FjCisrCisrCSAgICBjYXQgPDwiRU9GIgorK30KKysK Kyt2b2lkICoKKyt4bWFsbG9jIChzaXplX3QgbnVtKQorK3sKKysgIHZvaWQgKnAgPSAodm9pZCAq KSBtYWxsb2MgKG51bSk7CisrICBpZiAoIXApCisrICAgIGx0X2ZhdGFsICgiTWVtb3J5IGV4aGF1 c3RlZCIpOworKworKyAgcmV0dXJuIHA7CisrfQorKworK2NoYXIgKgorK3hzdHJkdXAgKGNvbnN0 IGNoYXIgKnN0cmluZykKKyt7CisrICByZXR1cm4gc3RyaW5nID8gc3RyY3B5ICgoY2hhciAqKSB4 bWFsbG9jIChzdHJsZW4gKHN0cmluZykgKyAxKSwKKysJCQkgIHN0cmluZykgOiBOVUxMOworK30K KysKKytjb25zdCBjaGFyICoKKytiYXNlX25hbWUgKGNvbnN0IGNoYXIgKm5hbWUpCisreworKyAg Y29uc3QgY2hhciAqYmFzZTsKKysKKysjaWYgZGVmaW5lZCAoSEFWRV9ET1NfQkFTRURfRklMRV9T WVNURU0pCisrICAvKiBTa2lwIG92ZXIgdGhlIGRpc2sgbmFtZSBpbiBNU0RPUyBwYXRobmFtZXMu ICovCisrICBpZiAoaXNhbHBoYSAoKHVuc2lnbmVkIGNoYXIpIG5hbWVbMF0pICYmIG5hbWVbMV0g PT0gJzonKQorKyAgICBuYW1lICs9IDI7CisrI2VuZGlmCisrCisrICBmb3IgKGJhc2UgPSBuYW1l OyAqbmFtZTsgbmFtZSsrKQorKyAgICBpZiAoSVNfRElSX1NFUEFSQVRPUiAoKm5hbWUpKQorKyAg ICAgIGJhc2UgPSBuYW1lICsgMTsKKysgIHJldHVybiBiYXNlOworK30KKysKKytpbnQKKytjaGVj a19leGVjdXRhYmxlIChjb25zdCBjaGFyICpwYXRoKQorK3sKKysgIHN0cnVjdCBzdGF0IHN0Owor KworKyAgTFRXUkFQUEVSX0RFQlVHUFJJTlRGICgoIihjaGVja19leGVjdXRhYmxlKSAgOiAlc1xu IiwKKysJCQkgIHBhdGggPyAoKnBhdGggPyBwYXRoIDogIkVNUFRZISIpIDogIk5VTEwhIikpOwor KyAgaWYgKCghcGF0aCkgfHwgKCEqcGF0aCkpCisrICAgIHJldHVybiAwOworKworKyAgaWYgKChz dGF0IChwYXRoLCAmc3QpID49IDApCisrICAgICAgJiYgKHN0LnN0X21vZGUgJiAoU19JWFVTUiB8 IFNfSVhHUlAgfCBTX0lYT1RIKSkpCisrICAgIHJldHVybiAxOworKyAgZWxzZQorKyAgICByZXR1 cm4gMDsKKyt9CisrCisraW50CisrbWFrZV9leGVjdXRhYmxlIChjb25zdCBjaGFyICpwYXRoKQor K3sKKysgIGludCBydmFsID0gMDsKKysgIHN0cnVjdCBzdGF0IHN0OworKworKyAgTFRXUkFQUEVS X0RFQlVHUFJJTlRGICgoIihtYWtlX2V4ZWN1dGFibGUpICAgOiAlc1xuIiwKKysJCQkgIHBhdGgg PyAoKnBhdGggPyBwYXRoIDogIkVNUFRZISIpIDogIk5VTEwhIikpOworKyAgaWYgKCghcGF0aCkg fHwgKCEqcGF0aCkpCisrICAgIHJldHVybiAwOworKworKyAgaWYgKHN0YXQgKHBhdGgsICZzdCkg Pj0gMCkKKysgICAgeworKyAgICAgIHJ2YWwgPSBjaG1vZCAocGF0aCwgc3Quc3RfbW9kZSB8IFNf SVhPVEggfCBTX0lYR1JQIHwgU19JWFVTUik7CisrICAgIH0KKysgIHJldHVybiBydmFsOworK30K KysKKysvKiBTZWFyY2hlcyBmb3IgdGhlIGZ1bGwgcGF0aCBvZiB0aGUgd3JhcHBlci4gIFJldHVy bnMKKysgICBuZXdseSBhbGxvY2F0ZWQgZnVsbCBwYXRoIG5hbWUgaWYgZm91bmQsIE5VTEwgb3Ro ZXJ3aXNlCisrICAgRG9lcyBub3QgY2hhc2Ugc3ltbGlua3MsIGV2ZW4gb24gcGxhdGZvcm1zIHRo YXQgc3VwcG9ydCB0aGVtLgorKyovCisrY2hhciAqCisrZmluZF9leGVjdXRhYmxlIChjb25zdCBj aGFyICp3cmFwcGVyKQorK3sKKysgIGludCBoYXNfc2xhc2ggPSAwOworKyAgY29uc3QgY2hhciAq cDsKKysgIGNvbnN0IGNoYXIgKnBfbmV4dDsKKysgIC8qIHN0YXRpYyBidWZmZXIgZm9yIGdldGN3 ZCAqLworKyAgY2hhciB0bXBbTFRfUEFUSE1BWCArIDFdOworKyAgaW50IHRtcF9sZW47CisrICBj aGFyICpjb25jYXRfbmFtZTsKKysKKysgIExUV1JBUFBFUl9ERUJVR1BSSU5URiAoKCIoZmluZF9l eGVjdXRhYmxlKSAgIDogJXNcbiIsCisrCQkJICB3cmFwcGVyID8gKCp3cmFwcGVyID8gd3JhcHBl ciA6ICJFTVBUWSEiKSA6ICJOVUxMISIpKTsKKysKKysgIGlmICgod3JhcHBlciA9PSBOVUxMKSB8 fCAoKndyYXBwZXIgPT0gJ1wwJykpCisrICAgIHJldHVybiBOVUxMOworKworKyAgLyogQWJzb2x1 dGUgcGF0aD8gKi8KKysjaWYgZGVmaW5lZCAoSEFWRV9ET1NfQkFTRURfRklMRV9TWVNURU0pCisr ICBpZiAoaXNhbHBoYSAoKHVuc2lnbmVkIGNoYXIpIHdyYXBwZXJbMF0pICYmIHdyYXBwZXJbMV0g PT0gJzonKQorKyAgICB7CisrICAgICAgY29uY2F0X25hbWUgPSB4c3RyZHVwICh3cmFwcGVyKTsK KysgICAgICBpZiAoY2hlY2tfZXhlY3V0YWJsZSAoY29uY2F0X25hbWUpKQorKwlyZXR1cm4gY29u Y2F0X25hbWU7CisrICAgICAgWEZSRUUgKGNvbmNhdF9uYW1lKTsKKysgICAgfQorKyAgZWxzZQor KyAgICB7CisrI2VuZGlmCisrICAgICAgaWYgKElTX0RJUl9TRVBBUkFUT1IgKHdyYXBwZXJbMF0p KQorKwl7CisrCSAgY29uY2F0X25hbWUgPSB4c3RyZHVwICh3cmFwcGVyKTsKKysJICBpZiAoY2hl Y2tfZXhlY3V0YWJsZSAoY29uY2F0X25hbWUpKQorKwkgICAgcmV0dXJuIGNvbmNhdF9uYW1lOwor KwkgIFhGUkVFIChjb25jYXRfbmFtZSk7CisrCX0KKysjaWYgZGVmaW5lZCAoSEFWRV9ET1NfQkFT RURfRklMRV9TWVNURU0pCisrICAgIH0KKysjZW5kaWYKKysKKysgIGZvciAocCA9IHdyYXBwZXI7 ICpwOyBwKyspCisrICAgIGlmICgqcCA9PSAnLycpCisrICAgICAgeworKwloYXNfc2xhc2ggPSAx OworKwlicmVhazsKKysgICAgICB9CisrICBpZiAoIWhhc19zbGFzaCkKKysgICAgeworKyAgICAg IC8qIG5vIHNsYXNoZXM7IHNlYXJjaCBQQVRIICovCisrICAgICAgY29uc3QgY2hhciAqcGF0aCA9 IGdldGVudiAoIlBBVEgiKTsKKysgICAgICBpZiAocGF0aCAhPSBOVUxMKQorKwl7CisrCSAgZm9y IChwID0gcGF0aDsgKnA7IHAgPSBwX25leHQpCisrCSAgICB7CisrCSAgICAgIGNvbnN0IGNoYXIg KnE7CisrCSAgICAgIHNpemVfdCBwX2xlbjsKKysJICAgICAgZm9yIChxID0gcDsgKnE7IHErKykK KysJCWlmIChJU19QQVRIX1NFUEFSQVRPUiAoKnEpKQorKwkJICBicmVhazsKKysJICAgICAgcF9s ZW4gPSBxIC0gcDsKKysJICAgICAgcF9uZXh0ID0gKCpxID09ICdcMCcgPyBxIDogcSArIDEpOwor KwkgICAgICBpZiAocF9sZW4gPT0gMCkKKysJCXsKKysJCSAgLyogZW1wdHkgcGF0aDogY3VycmVu dCBkaXJlY3RvcnkgKi8KKysJCSAgaWYgKGdldGN3ZCAodG1wLCBMVF9QQVRITUFYKSA9PSBOVUxM KQorKwkJICAgIGx0X2ZhdGFsICgiZ2V0Y3dkIGZhaWxlZCIpOworKwkJICB0bXBfbGVuID0gc3Ry bGVuICh0bXApOworKwkJICBjb25jYXRfbmFtZSA9CisrCQkgICAgWE1BTExPQyAoY2hhciwgdG1w X2xlbiArIDEgKyBzdHJsZW4gKHdyYXBwZXIpICsgMSk7CisrCQkgIG1lbWNweSAoY29uY2F0X25h bWUsIHRtcCwgdG1wX2xlbik7CisrCQkgIGNvbmNhdF9uYW1lW3RtcF9sZW5dID0gJy8nOworKwkJ ICBzdHJjcHkgKGNvbmNhdF9uYW1lICsgdG1wX2xlbiArIDEsIHdyYXBwZXIpOworKwkJfQorKwkg ICAgICBlbHNlCisrCQl7CisrCQkgIGNvbmNhdF9uYW1lID0KKysJCSAgICBYTUFMTE9DIChjaGFy LCBwX2xlbiArIDEgKyBzdHJsZW4gKHdyYXBwZXIpICsgMSk7CisrCQkgIG1lbWNweSAoY29uY2F0 X25hbWUsIHAsIHBfbGVuKTsKKysJCSAgY29uY2F0X25hbWVbcF9sZW5dID0gJy8nOworKwkJICBz dHJjcHkgKGNvbmNhdF9uYW1lICsgcF9sZW4gKyAxLCB3cmFwcGVyKTsKKysJCX0KKysJICAgICAg aWYgKGNoZWNrX2V4ZWN1dGFibGUgKGNvbmNhdF9uYW1lKSkKKysJCXJldHVybiBjb25jYXRfbmFt ZTsKKysJICAgICAgWEZSRUUgKGNvbmNhdF9uYW1lKTsKKysJICAgIH0KKysJfQorKyAgICAgIC8q IG5vdCBmb3VuZCBpbiBQQVRIOyBhc3N1bWUgY3VyZGlyICovCisrICAgIH0KKysgIC8qIFJlbGF0 aXZlIHBhdGggfCBub3QgZm91bmQgaW4gcGF0aDogcHJlcGVuZCBjd2QgKi8KKysgIGlmIChnZXRj d2QgKHRtcCwgTFRfUEFUSE1BWCkgPT0gTlVMTCkKKysgICAgbHRfZmF0YWwgKCJnZXRjd2QgZmFp bGVkIik7CisrICB0bXBfbGVuID0gc3RybGVuICh0bXApOworKyAgY29uY2F0X25hbWUgPSBYTUFM TE9DIChjaGFyLCB0bXBfbGVuICsgMSArIHN0cmxlbiAod3JhcHBlcikgKyAxKTsKKysgIG1lbWNw eSAoY29uY2F0X25hbWUsIHRtcCwgdG1wX2xlbik7CisrICBjb25jYXRfbmFtZVt0bXBfbGVuXSA9 ICcvJzsKKysgIHN0cmNweSAoY29uY2F0X25hbWUgKyB0bXBfbGVuICsgMSwgd3JhcHBlcik7Cisr CisrICBpZiAoY2hlY2tfZXhlY3V0YWJsZSAoY29uY2F0X25hbWUpKQorKyAgICByZXR1cm4gY29u Y2F0X25hbWU7CisrICBYRlJFRSAoY29uY2F0X25hbWUpOworKyAgcmV0dXJuIE5VTEw7CisrfQor KworK2NoYXIgKgorK2NoYXNlX3N5bWxpbmtzIChjb25zdCBjaGFyICpwYXRoc3BlYykKKyt7Cisr I2lmbmRlZiBTX0lTTE5LCisrICByZXR1cm4geHN0cmR1cCAocGF0aHNwZWMpOworKyNlbHNlCisr ICBjaGFyIGJ1ZltMVF9QQVRITUFYXTsKKysgIHN0cnVjdCBzdGF0IHM7CisrICBjaGFyICp0bXBf cGF0aHNwZWMgPSB4c3RyZHVwIChwYXRoc3BlYyk7CisrICBjaGFyICpwOworKyAgaW50IGhhc19z eW1saW5rcyA9IDA7CisrICB3aGlsZSAoc3RybGVuICh0bXBfcGF0aHNwZWMpICYmICFoYXNfc3lt bGlua3MpCisrICAgIHsKKysgICAgICBMVFdSQVBQRVJfREVCVUdQUklOVEYgKCgiY2hlY2tpbmcg cGF0aCBjb21wb25lbnQgZm9yIHN5bWxpbmtzOiAlc1xuIiwKKysJCQkgICAgICB0bXBfcGF0aHNw ZWMpKTsKKysgICAgICBpZiAobHN0YXQgKHRtcF9wYXRoc3BlYywgJnMpID09IDApCisrCXsKKysJ ICBpZiAoU19JU0xOSyAocy5zdF9tb2RlKSAhPSAwKQorKwkgICAgeworKwkgICAgICBoYXNfc3lt bGlua3MgPSAxOworKwkgICAgICBicmVhazsKKysJICAgIH0KKysKKysJICAvKiBzZWFyY2ggYmFj a3dhcmRzIGZvciBsYXN0IERJUl9TRVBBUkFUT1IgKi8KKysJICBwID0gdG1wX3BhdGhzcGVjICsg c3RybGVuICh0bXBfcGF0aHNwZWMpIC0gMTsKKysJICB3aGlsZSAoKHAgPiB0bXBfcGF0aHNwZWMp ICYmICghSVNfRElSX1NFUEFSQVRPUiAoKnApKSkKKysJICAgIHAtLTsKKysJICBpZiAoKHAgPT0g dG1wX3BhdGhzcGVjKSAmJiAoIUlTX0RJUl9TRVBBUkFUT1IgKCpwKSkpCisrCSAgICB7CisrCSAg ICAgIC8qIG5vIG1vcmUgRElSX1NFUEFSQVRPUlMgbGVmdCAqLworKwkgICAgICBicmVhazsKKysJ ICAgIH0KKysJICAqcCA9ICdcMCc7CisrCX0KKysgICAgICBlbHNlCisrCXsKKysJICBjaGFyICpl cnJzdHIgPSBzdHJlcnJvciAoZXJybm8pOworKwkgIGx0X2ZhdGFsICgiRXJyb3IgYWNjZXNzaW5n IGZpbGUgJXMgKCVzKSIsIHRtcF9wYXRoc3BlYywgZXJyc3RyKTsKKysJfQorKyAgICB9CisrICBY RlJFRSAodG1wX3BhdGhzcGVjKTsKKysKKysgIGlmICghaGFzX3N5bWxpbmtzKQorKyAgICB7Cisr ICAgICAgcmV0dXJuIHhzdHJkdXAgKHBhdGhzcGVjKTsKKysgICAgfQorKworKyAgdG1wX3BhdGhz cGVjID0gcmVhbHBhdGggKHBhdGhzcGVjLCBidWYpOworKyAgaWYgKHRtcF9wYXRoc3BlYyA9PSAw KQorKyAgICB7CisrICAgICAgbHRfZmF0YWwgKCJDb3VsZCBub3QgZm9sbG93IHN5bWxpbmtzIGZv ciAlcyIsIHBhdGhzcGVjKTsKKysgICAgfQorKyAgcmV0dXJuIHhzdHJkdXAgKHRtcF9wYXRoc3Bl Yyk7CisrI2VuZGlmCisrfQorKworK2NoYXIgKgorK3N0cmVuZHphcCAoY2hhciAqc3RyLCBjb25z dCBjaGFyICpwYXQpCisreworKyAgc2l6ZV90IGxlbiwgcGF0bGVuOworKworKyAgYXNzZXJ0IChz dHIgIT0gTlVMTCk7CisrICBhc3NlcnQgKHBhdCAhPSBOVUxMKTsKKysKKysgIGxlbiA9IHN0cmxl biAoc3RyKTsKKysgIHBhdGxlbiA9IHN0cmxlbiAocGF0KTsKKysKKysgIGlmIChwYXRsZW4gPD0g bGVuKQorKyAgICB7CisrICAgICAgc3RyICs9IGxlbiAtIHBhdGxlbjsKKysgICAgICBpZiAoc3Ry Y21wIChzdHIsIHBhdCkgPT0gMCkKKysJKnN0ciA9ICdcMCc7CisrICAgIH0KKysgIHJldHVybiBz dHI7CisrfQorKworK3N0YXRpYyB2b2lkCisrbHRfZXJyb3JfY29yZSAoaW50IGV4aXRfc3RhdHVz LCBjb25zdCBjaGFyICptb2RlLAorKwkgICAgICAgY29uc3QgY2hhciAqbWVzc2FnZSwgdmFfbGlz dCBhcCkKKyt7CisrICBmcHJpbnRmIChzdGRlcnIsICIlczogJXM6ICIsIHByb2dyYW1fbmFtZSwg bW9kZSk7CisrICB2ZnByaW50ZiAoc3RkZXJyLCBtZXNzYWdlLCBhcCk7CisrICBmcHJpbnRmIChz dGRlcnIsICIuXG4iKTsKKysKKysgIGlmIChleGl0X3N0YXR1cyA+PSAwKQorKyAgICBleGl0IChl eGl0X3N0YXR1cyk7CisrfQorKworK3ZvaWQKKytsdF9mYXRhbCAoY29uc3QgY2hhciAqbWVzc2Fn ZSwgLi4uKQorK3sKKysgIHZhX2xpc3QgYXA7CisrICB2YV9zdGFydCAoYXAsIG1lc3NhZ2UpOwor KyAgbHRfZXJyb3JfY29yZSAoRVhJVF9GQUlMVVJFLCAiRkFUQUwiLCBtZXNzYWdlLCBhcCk7Cisr ICB2YV9lbmQgKGFwKTsKKyt9CisrCisrdm9pZAorK2x0X3NldGVudiAoY29uc3QgY2hhciAqbmFt ZSwgY29uc3QgY2hhciAqdmFsdWUpCisreworKyAgTFRXUkFQUEVSX0RFQlVHUFJJTlRGICgoIihs dF9zZXRlbnYpIHNldHRpbmcgJyVzJyB0byAnJXMnXG4iLAorKyAgICAgICAgICAgICAgICAgICAg ICAgICAgKG5hbWUgPyBuYW1lIDogIjxOVUxMPiIpLAorKyAgICAgICAgICAgICAgICAgICAgICAg ICAgKHZhbHVlID8gdmFsdWUgOiAiPE5VTEw+IikpKTsKKysgIHsKKysjaWZkZWYgSEFWRV9TRVRF TlYKKysgICAgLyogYWx3YXlzIG1ha2UgYSBjb3B5LCBmb3IgY29uc2lzdGVuY3kgd2l0aCAhSEFW RV9TRVRFTlYgKi8KKysgICAgY2hhciAqc3RyID0geHN0cmR1cCAodmFsdWUpOworKyAgICBzZXRl bnYgKG5hbWUsIHN0ciwgMSk7CisrI2Vsc2UKKysgICAgaW50IGxlbiA9IHN0cmxlbiAobmFtZSkg KyAxICsgc3RybGVuICh2YWx1ZSkgKyAxOworKyAgICBjaGFyICpzdHIgPSBYTUFMTE9DIChjaGFy LCBsZW4pOworKyAgICBzcHJpbnRmIChzdHIsICIlcz0lcyIsIG5hbWUsIHZhbHVlKTsKKysgICAg aWYgKHB1dGVudiAoc3RyKSAhPSBFWElUX1NVQ0NFU1MpCisrICAgICAgeworKyAgICAgICAgWEZS RUUgKHN0cik7CisrICAgICAgfQorKyNlbmRpZgorKyAgfQorK30KKysKKytjaGFyICoKKytsdF9l eHRlbmRfc3RyIChjb25zdCBjaGFyICpvcmlnX3ZhbHVlLCBjb25zdCBjaGFyICphZGQsIGludCB0 b19lbmQpCisreworKyAgY2hhciAqbmV3X3ZhbHVlOworKyAgaWYgKG9yaWdfdmFsdWUgJiYgKm9y aWdfdmFsdWUpCisrICAgIHsKKysgICAgICBpbnQgb3JpZ192YWx1ZV9sZW4gPSBzdHJsZW4gKG9y aWdfdmFsdWUpOworKyAgICAgIGludCBhZGRfbGVuID0gc3RybGVuIChhZGQpOworKyAgICAgIG5l d192YWx1ZSA9IFhNQUxMT0MgKGNoYXIsIGFkZF9sZW4gKyBvcmlnX3ZhbHVlX2xlbiArIDEpOwor KyAgICAgIGlmICh0b19lbmQpCisrICAgICAgICB7CisrICAgICAgICAgIHN0cmNweSAobmV3X3Zh bHVlLCBvcmlnX3ZhbHVlKTsKKysgICAgICAgICAgc3RyY3B5IChuZXdfdmFsdWUgKyBvcmlnX3Zh bHVlX2xlbiwgYWRkKTsKKysgICAgICAgIH0KKysgICAgICBlbHNlCisrICAgICAgICB7CisrICAg ICAgICAgIHN0cmNweSAobmV3X3ZhbHVlLCBhZGQpOworKyAgICAgICAgICBzdHJjcHkgKG5ld192 YWx1ZSArIGFkZF9sZW4sIG9yaWdfdmFsdWUpOworKyAgICAgICAgfQorKyAgICB9CisrICBlbHNl CisrICAgIHsKKysgICAgICBuZXdfdmFsdWUgPSB4c3RyZHVwIChhZGQpOworKyAgICB9CisrICBy ZXR1cm4gbmV3X3ZhbHVlOworK30KKysKKytpbnQKKytsdF9zcGxpdF9uYW1lX3ZhbHVlIChjb25z dCBjaGFyICphcmcsIGNoYXIqKiBuYW1lLCBjaGFyKiogdmFsdWUpCisreworKyAgY29uc3QgY2hh ciAqcDsKKysgIGludCBsZW47CisrICBpZiAoIWFyZyB8fCAhKmFyZykKKysgICAgcmV0dXJuIDE7 CisrCisrICBwID0gc3RyY2hyIChhcmcsIChpbnQpJz0nKTsKKysKKysgIGlmICghcCkKKysgICAg cmV0dXJuIDE7CisrCisrICAqdmFsdWUgPSB4c3RyZHVwICgrK3ApOworKworKyAgbGVuID0gc3Ry bGVuIChhcmcpIC0gc3RybGVuICgqdmFsdWUpOworKyAgKm5hbWUgPSBYTUFMTE9DIChjaGFyLCBs ZW4pOworKyAgc3RybmNweSAoKm5hbWUsIGFyZywgbGVuLTEpOworKyAgKCpuYW1lKVtsZW4gLSAx XSA9ICdcMCc7CisrCisrICByZXR1cm4gMDsKKyt9CisrCisrdm9pZAorK2x0X29wdF9wcm9jZXNz X2Vudl9zZXQgKGNvbnN0IGNoYXIgKmFyZykKKyt7CisrICBjaGFyICpuYW1lID0gTlVMTDsKKysg IGNoYXIgKnZhbHVlID0gTlVMTDsKKysKKysgIGlmIChsdF9zcGxpdF9uYW1lX3ZhbHVlIChhcmcs ICZuYW1lLCAmdmFsdWUpICE9IDApCisrICAgIHsKKysgICAgICBYRlJFRSAobmFtZSk7CisrICAg ICAgWEZSRUUgKHZhbHVlKTsKKysgICAgICBsdF9mYXRhbCAoImJhZCBhcmd1bWVudCBmb3IgJXM6 ICclcyciLCBlbnZfc2V0X29wdCwgYXJnKTsKKysgICAgfQorKworKyAgbHRfc2V0ZW52IChuYW1l LCB2YWx1ZSk7CisrICBYRlJFRSAobmFtZSk7CisrICBYRlJFRSAodmFsdWUpOworK30KKysKKyt2 b2lkCisrbHRfb3B0X3Byb2Nlc3NfZW52X3ByZXBlbmQgKGNvbnN0IGNoYXIgKmFyZykKKyt7Cisr ICBjaGFyICpuYW1lID0gTlVMTDsKKysgIGNoYXIgKnZhbHVlID0gTlVMTDsKKysgIGNoYXIgKm5l d192YWx1ZSA9IE5VTEw7CisrCisrICBpZiAobHRfc3BsaXRfbmFtZV92YWx1ZSAoYXJnLCAmbmFt ZSwgJnZhbHVlKSAhPSAwKQorKyAgICB7CisrICAgICAgWEZSRUUgKG5hbWUpOworKyAgICAgIFhG UkVFICh2YWx1ZSk7CisrICAgICAgbHRfZmF0YWwgKCJiYWQgYXJndW1lbnQgZm9yICVzOiAnJXMn IiwgZW52X3ByZXBlbmRfb3B0LCBhcmcpOworKyAgICB9CisrCisrICBuZXdfdmFsdWUgPSBsdF9l eHRlbmRfc3RyIChnZXRlbnYgKG5hbWUpLCB2YWx1ZSwgMCk7CisrICBsdF9zZXRlbnYgKG5hbWUs IG5ld192YWx1ZSk7CisrICBYRlJFRSAobmV3X3ZhbHVlKTsKKysgIFhGUkVFIChuYW1lKTsKKysg IFhGUkVFICh2YWx1ZSk7CisrfQorKworK3ZvaWQKKytsdF9vcHRfcHJvY2Vzc19lbnZfYXBwZW5k IChjb25zdCBjaGFyICphcmcpCisreworKyAgY2hhciAqbmFtZSA9IE5VTEw7CisrICBjaGFyICp2 YWx1ZSA9IE5VTEw7CisrICBjaGFyICpuZXdfdmFsdWUgPSBOVUxMOworKworKyAgaWYgKGx0X3Nw bGl0X25hbWVfdmFsdWUgKGFyZywgJm5hbWUsICZ2YWx1ZSkgIT0gMCkKKysgICAgeworKyAgICAg IFhGUkVFIChuYW1lKTsKKysgICAgICBYRlJFRSAodmFsdWUpOworKyAgICAgIGx0X2ZhdGFsICgi YmFkIGFyZ3VtZW50IGZvciAlczogJyVzJyIsIGVudl9hcHBlbmRfb3B0LCBhcmcpOworKyAgICB9 CisrCisrICBuZXdfdmFsdWUgPSBsdF9leHRlbmRfc3RyIChnZXRlbnYgKG5hbWUpLCB2YWx1ZSwg MSk7CisrICBsdF9zZXRlbnYgKG5hbWUsIG5ld192YWx1ZSk7CisrICBYRlJFRSAobmV3X3ZhbHVl KTsKKysgIFhGUkVFIChuYW1lKTsKKysgIFhGUkVFICh2YWx1ZSk7CisrfQorKworK3ZvaWQKKyts dF91cGRhdGVfZXhlX3BhdGggKGNvbnN0IGNoYXIgKm5hbWUsIGNvbnN0IGNoYXIgKnZhbHVlKQor K3sKKysgIExUV1JBUFBFUl9ERUJVR1BSSU5URiAoKCIobHRfdXBkYXRlX2V4ZV9wYXRoKSBtb2Rp ZnlpbmcgJyVzJyBieSBwcmVwZW5kaW5nICclcydcbiIsCisrICAgICAgICAgICAgICAgICAgICAg ICAgICAobmFtZSA/IG5hbWUgOiAiPE5VTEw+IiksCisrICAgICAgICAgICAgICAgICAgICAgICAg ICAodmFsdWUgPyB2YWx1ZSA6ICI8TlVMTD4iKSkpOworKworKyAgaWYgKG5hbWUgJiYgKm5hbWUg JiYgdmFsdWUgJiYgKnZhbHVlKQorKyAgICB7CisrICAgICAgY2hhciAqbmV3X3ZhbHVlID0gbHRf ZXh0ZW5kX3N0ciAoZ2V0ZW52IChuYW1lKSwgdmFsdWUsIDApOworKyAgICAgIC8qIHNvbWUgc3lz dGVtcyBjYW4ndCBjb3BlIHdpdGggYSAnOictdGVybWluYXRlZCBwYXRoICMnICovCisrICAgICAg aW50IGxlbiA9IHN0cmxlbiAobmV3X3ZhbHVlKTsKKysgICAgICB3aGlsZSAoKChsZW4gPSBzdHJs ZW4gKG5ld192YWx1ZSkpID4gMCkgJiYgSVNfUEFUSF9TRVBBUkFUT1IgKG5ld192YWx1ZVtsZW4t MV0pKQorKyAgICAgICAgeworKyAgICAgICAgICBuZXdfdmFsdWVbbGVuLTFdID0gJ1wwJzsKKysg ICAgICAgIH0KKysgICAgICBsdF9zZXRlbnYgKG5hbWUsIG5ld192YWx1ZSk7CisrICAgICAgWEZS RUUgKG5ld192YWx1ZSk7CisrICAgIH0KKyt9CisrCisrdm9pZAorK2x0X3VwZGF0ZV9saWJfcGF0 aCAoY29uc3QgY2hhciAqbmFtZSwgY29uc3QgY2hhciAqdmFsdWUpCisreworKyAgTFRXUkFQUEVS X0RFQlVHUFJJTlRGICgoIihsdF91cGRhdGVfbGliX3BhdGgpIG1vZGlmeWluZyAnJXMnIGJ5IHBy ZXBlbmRpbmcgJyVzJ1xuIiwKKysgICAgICAgICAgICAgICAgICAgICAgICAgIChuYW1lID8gbmFt ZSA6ICI8TlVMTD4iKSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICh2YWx1ZSA/IHZhbHVl IDogIjxOVUxMPiIpKSk7CisrCisrICBpZiAobmFtZSAmJiAqbmFtZSAmJiB2YWx1ZSAmJiAqdmFs dWUpCisrICAgIHsKKysgICAgICBjaGFyICpuZXdfdmFsdWUgPSBsdF9leHRlbmRfc3RyIChnZXRl bnYgKG5hbWUpLCB2YWx1ZSwgMCk7CisrICAgICAgbHRfc2V0ZW52IChuYW1lLCBuZXdfdmFsdWUp OworKyAgICAgIFhGUkVFIChuZXdfdmFsdWUpOworKyAgICB9CisrfQorKworKworK0VPRgorK30K KysjIGVuZDogZnVuY19lbWl0X2N3cmFwcGVyZXhlX3NyYworKworKyMgZnVuY19tb2RlX2xpbmsg YXJnLi4uCisrZnVuY19tb2RlX2xpbmsgKCkKKyt7CisrICAgICRvcHRfZGVidWcKKysgICAgY2Fz ZSAkaG9zdCBpbgorKyAgICAqLSotY3lnd2luKiB8ICotKi1taW5ndyogfCAqLSotcHczMiogfCAq LSotb3MyKiB8ICotY2VnY2MqKQorKyAgICAgICMgSXQgaXMgaW1wb3NzaWJsZSB0byBsaW5rIGEg ZGxsIHdpdGhvdXQgdGhpcyBzZXR0aW5nLCBhbmQKKysgICAgICAjIHdlIHNob3VsZG4ndCBmb3Jj ZSB0aGUgbWFrZWZpbGUgbWFpbnRhaW5lciB0byBmaWd1cmUgb3V0CisrICAgICAgIyB3aGljaCBz eXN0ZW0gd2UgYXJlIGNvbXBpbGluZyBmb3IgaW4gb3JkZXIgdG8gcGFzcyBhbiBleHRyYQorKyAg ICAgICMgZmxhZyBmb3IgZXZlcnkgbGlidG9vbCBpbnZvY2F0aW9uLgorKyAgICAgICMgYWxsb3df dW5kZWZpbmVkPW5vCisrCisrICAgICAgIyBGSVhNRTogVW5mb3J0dW5hdGVseSwgdGhlcmUgYXJl IHByb2JsZW1zIHdpdGggdGhlIGFib3ZlIHdoZW4gdHJ5aW5nCisrICAgICAgIyB0byBtYWtlIGEg ZGxsIHdoaWNoIGhhcyB1bmRlZmluZWQgc3ltYm9scywgaW4gd2hpY2ggY2FzZSBub3QKKysgICAg ICAjIGV2ZW4gYSBzdGF0aWMgbGlicmFyeSBpcyBidWlsdC4gIEZvciBub3csIHdlIG5lZWQgdG8g c3BlY2lmeQorKyAgICAgICMgLW5vLXVuZGVmaW5lZCBvbiB0aGUgbGlidG9vbCBsaW5rIGxpbmUg d2hlbiB3ZSBjYW4gYmUgY2VydGFpbgorKyAgICAgICMgdGhhdCBhbGwgc3ltYm9scyBhcmUgc2F0 aXNmaWVkLCBvdGhlcndpc2Ugd2UgZ2V0IGEgc3RhdGljIGxpYnJhcnkuCisrICAgICAgYWxsb3df dW5kZWZpbmVkPXllcworKyAgICAgIDs7CisrICAgICopCisrICAgICAgYWxsb3dfdW5kZWZpbmVk PXllcworKyAgICAgIDs7CisrICAgIGVzYWMKKysgICAgbGlidG9vbF9hcmdzPSRub25vcHQKKysg ICAgYmFzZV9jb21waWxlPSIkbm9ub3B0ICRAIgorKyAgICBjb21waWxlX2NvbW1hbmQ9JG5vbm9w dAorKyAgICBmaW5hbGl6ZV9jb21tYW5kPSRub25vcHQKKysKKysgICAgY29tcGlsZV9ycGF0aD0K KysgICAgZmluYWxpemVfcnBhdGg9CisrICAgIGNvbXBpbGVfc2hsaWJwYXRoPQorKyAgICBmaW5h bGl6ZV9zaGxpYnBhdGg9CisrICAgIGNvbnZlbmllbmNlPQorKyAgICBvbGRfY29udmVuaWVuY2U9 CisrICAgIGRlcGxpYnM9CisrICAgIG9sZF9kZXBsaWJzPQorKyAgICBjb21waWxlcl9mbGFncz0K KysgICAgbGlua2VyX2ZsYWdzPQorKyAgICBkbGxzZWFyY2hwYXRoPQorKyAgICBsaWJfc2VhcmNo X3BhdGg9YHB3ZGAKKysgICAgaW5zdF9wcmVmaXhfZGlyPQorKyAgICBuZXdfaW5oZXJpdGVkX2xp bmtlcl9mbGFncz0KKysKKysgICAgYXZvaWRfdmVyc2lvbj1ubworKyAgICBkbGZpbGVzPQorKyAg ICBkbHByZWZpbGVzPQorKyAgICBkbHNlbGY9bm8KKysgICAgZXhwb3J0X2R5bmFtaWM9bm8KKysg ICAgZXhwb3J0X3N5bWJvbHM9CisrICAgIGV4cG9ydF9zeW1ib2xzX3JlZ2V4PQorKyAgICBnZW5l cmF0ZWQ9CisrICAgIGxpYm9ianM9CisrICAgIGx0bGlicz0KKysgICAgbW9kdWxlPW5vCisrICAg IG5vX2luc3RhbGw9bm8KKysgICAgb2Jqcz0KKysgICAgbm9uX3BpY19vYmplY3RzPQorKyAgICBw cmVjaW91c19maWxlc19yZWdleD0KKysgICAgcHJlZmVyX3N0YXRpY19saWJzPW5vCisrICAgIHBy ZWxvYWQ9bm8KKysgICAgcHJldj0KKysgICAgcHJldmFyZz0KKysgICAgcmVsZWFzZT0KKysgICAg cnBhdGg9CisrICAgIHhycGF0aD0KKysgICAgcGVybV9ycGF0aD0KKysgICAgdGVtcF9ycGF0aD0K KysgICAgdGhyZWFkX3NhZmU9bm8KKysgICAgdmluZm89CisrICAgIHZpbmZvX251bWJlcj1ubwor KyAgICB3ZWFrX2xpYnM9CisrICAgIHNpbmdsZV9tb2R1bGU9IiR7d2x9LXNpbmdsZV9tb2R1bGUi CisrICAgIGZ1bmNfaW5mZXJfdGFnICRiYXNlX2NvbXBpbGUKKysKKysgICAgIyBXZSBuZWVkIHRv IGtub3cgLXN0YXRpYywgdG8gZ2V0IHRoZSByaWdodCBvdXRwdXQgZmlsZW5hbWVzLgorKyAgICBm b3IgYXJnCisrICAgIGRvCisrICAgICAgY2FzZSAkYXJnIGluCisrICAgICAgLXNoYXJlZCkKKysJ dGVzdCAiJGJ1aWxkX2xpYnRvb2xfbGlicyIgIT0geWVzICYmIFwKKysJICBmdW5jX2ZhdGFsX2Nv bmZpZ3VyYXRpb24gImNhbiBub3QgYnVpbGQgYSBzaGFyZWQgbGlicmFyeSIKKysJYnVpbGRfb2xk X2xpYnM9bm8KKysJYnJlYWsKKysJOzsKKysgICAgICAtYWxsLXN0YXRpYyB8IC1zdGF0aWMgfCAt c3RhdGljLWxpYnRvb2wtbGlicykKKysJY2FzZSAkYXJnIGluCisrCS1hbGwtc3RhdGljKQorKwkg IGlmIHRlc3QgIiRidWlsZF9saWJ0b29sX2xpYnMiID0geWVzICYmIHRlc3QgLXogIiRsaW5rX3N0 YXRpY19mbGFnIjsgdGhlbgorKwkgICAgZnVuY193YXJuaW5nICJjb21wbGV0ZSBzdGF0aWMgbGlu a2luZyBpcyBpbXBvc3NpYmxlIGluIHRoaXMgY29uZmlndXJhdGlvbiIKKysJICBmaQorKwkgIGlm IHRlc3QgLW4gIiRsaW5rX3N0YXRpY19mbGFnIjsgdGhlbgorKwkgICAgZGxvcGVuX3NlbGY9JGRs b3Blbl9zZWxmX3N0YXRpYworKwkgIGZpCisrCSAgcHJlZmVyX3N0YXRpY19saWJzPXllcworKwkg IDs7CisrCS1zdGF0aWMpCisrCSAgaWYgdGVzdCAteiAiJHBpY19mbGFnIiAmJiB0ZXN0IC1uICIk bGlua19zdGF0aWNfZmxhZyI7IHRoZW4KKysJICAgIGRsb3Blbl9zZWxmPSRkbG9wZW5fc2VsZl9z dGF0aWMKKysJICBmaQorKwkgIHByZWZlcl9zdGF0aWNfbGlicz1idWlsdAorKwkgIDs7CisrCS1z dGF0aWMtbGlidG9vbC1saWJzKQorKwkgIGlmIHRlc3QgLXogIiRwaWNfZmxhZyIgJiYgdGVzdCAt biAiJGxpbmtfc3RhdGljX2ZsYWciOyB0aGVuCisrCSAgICBkbG9wZW5fc2VsZj0kZGxvcGVuX3Nl bGZfc3RhdGljCisrCSAgZmkKKysJICBwcmVmZXJfc3RhdGljX2xpYnM9eWVzCisrCSAgOzsKKysJ ZXNhYworKwlidWlsZF9saWJ0b29sX2xpYnM9bm8KKysJYnVpbGRfb2xkX2xpYnM9eWVzCisrCWJy ZWFrCisrCTs7CisrICAgICAgZXNhYworKyAgICBkb25lCisrCisrICAgICMgU2VlIGlmIG91ciBz aGFyZWQgYXJjaGl2ZXMgZGVwZW5kIG9uIHN0YXRpYyBhcmNoaXZlcy4KKysgICAgdGVzdCAtbiAi JG9sZF9hcmNoaXZlX2Zyb21fbmV3X2NtZHMiICYmIGJ1aWxkX29sZF9saWJzPXllcworKworKyAg ICAjIEdvIHRocm91Z2ggdGhlIGFyZ3VtZW50cywgdHJhbnNmb3JtaW5nIHRoZW0gb24gdGhlIHdh eS4KKysgICAgd2hpbGUgdGVzdCAiJCMiIC1ndCAwOyBkbworKyAgICAgIGFyZz0iJDEiCisrICAg ICAgc2hpZnQKKysgICAgICBmdW5jX3F1b3RlX2Zvcl9ldmFsICIkYXJnIgorKyAgICAgIHFhcmc9 JGZ1bmNfcXVvdGVfZm9yX2V2YWxfdW5xdW90ZWRfcmVzdWx0CisrICAgICAgZnVuY19hcHBlbmQg bGlidG9vbF9hcmdzICIgJGZ1bmNfcXVvdGVfZm9yX2V2YWxfcmVzdWx0IgorKworKyAgICAgICMg SWYgdGhlIHByZXZpb3VzIG9wdGlvbiBuZWVkcyBhbiBhcmd1bWVudCwgYXNzaWduIGl0LgorKyAg ICAgIGlmIHRlc3QgLW4gIiRwcmV2IjsgdGhlbgorKwljYXNlICRwcmV2IGluCisrCW91dHB1dCkK KysJICBmdW5jX2FwcGVuZCBjb21waWxlX2NvbW1hbmQgIiBAT1VUUFVUQCIKKysJICBmdW5jX2Fw cGVuZCBmaW5hbGl6ZV9jb21tYW5kICIgQE9VVFBVVEAiCisrCSAgOzsKKysJZXNhYworKworKwlj YXNlICRwcmV2IGluCisrCWRsZmlsZXN8ZGxwcmVmaWxlcykKKysJICBpZiB0ZXN0ICIkcHJlbG9h ZCIgPSBubzsgdGhlbgorKwkgICAgIyBBZGQgdGhlIHN5bWJvbCBvYmplY3QgaW50byB0aGUgbGlu a2luZyBjb21tYW5kcy4KKysJICAgIGZ1bmNfYXBwZW5kIGNvbXBpbGVfY29tbWFuZCAiIEBTWU1G SUxFQCIKKysJICAgIGZ1bmNfYXBwZW5kIGZpbmFsaXplX2NvbW1hbmQgIiBAU1lNRklMRUAiCisr CSAgICBwcmVsb2FkPXllcworKwkgIGZpCisrCSAgY2FzZSAkYXJnIGluCisrCSAgKi5sYSB8ICou bG8pIDs7ICAjIFdlIGhhbmRsZSB0aGVzZSBjYXNlcyBiZWxvdy4KKysJICBmb3JjZSkKKysJICAg IGlmIHRlc3QgIiRkbHNlbGYiID0gbm87IHRoZW4KKysJICAgICAgZGxzZWxmPW5lZWRsZXNzCisr CSAgICAgIGV4cG9ydF9keW5hbWljPXllcworKwkgICAgZmkKKysJICAgIHByZXY9CisrCSAgICBj b250aW51ZQorKwkgICAgOzsKKysJICBzZWxmKQorKwkgICAgaWYgdGVzdCAiJHByZXYiID0gZGxw cmVmaWxlczsgdGhlbgorKwkgICAgICBkbHNlbGY9eWVzCisrCSAgICBlbGlmIHRlc3QgIiRwcmV2 IiA9IGRsZmlsZXMgJiYgdGVzdCAiJGRsb3Blbl9zZWxmIiAhPSB5ZXM7IHRoZW4KKysJICAgICAg ZGxzZWxmPXllcworKwkgICAgZWxzZQorKwkgICAgICBkbHNlbGY9bmVlZGxlc3MKKysJICAgICAg ZXhwb3J0X2R5bmFtaWM9eWVzCisrCSAgICBmaQorKwkgICAgcHJldj0KKysJICAgIGNvbnRpbnVl CisrCSAgICA7OworKwkgICopCisrCSAgICBpZiB0ZXN0ICIkcHJldiIgPSBkbGZpbGVzOyB0aGVu CisrCSAgICAgIGRsZmlsZXM9IiRkbGZpbGVzICRhcmciCisrCSAgICBlbHNlCisrCSAgICAgIGRs cHJlZmlsZXM9IiRkbHByZWZpbGVzICRhcmciCisrCSAgICBmaQorKwkgICAgcHJldj0KKysJICAg IGNvbnRpbnVlCisrCSAgICA7OworKwkgIGVzYWMKKysJICA7OworKwlleHBzeW1zKQorKwkgIGV4 cG9ydF9zeW1ib2xzPSIkYXJnIgorKwkgIHRlc3QgLWYgIiRhcmciIFwKKysJICAgIHx8IGZ1bmNf ZmF0YWxfZXJyb3IgInN5bWJvbCBmaWxlIFxgJGFyZycgZG9lcyBub3QgZXhpc3QiCisrCSAgcHJl dj0KKysJICBjb250aW51ZQorKwkgIDs7CisrCWV4cHN5bXNfcmVnZXgpCisrCSAgZXhwb3J0X3N5 bWJvbHNfcmVnZXg9IiRhcmciCisrCSAgcHJldj0KKysJICBjb250aW51ZQorKwkgIDs7CisrCWZy YW1ld29yaykKKysJICBjYXNlICRob3N0IGluCisrCSAgICAqLSotZGFyd2luKikKKysJICAgICAg Y2FzZSAiJGRlcGxpYnMgIiBpbgorKwkJKiIgJHFhcmcubHRmcmFtZXdvcmsgIiopIDs7CisrCQkq KSBkZXBsaWJzPSIkZGVwbGlicyAkcWFyZy5sdGZyYW1ld29yayIgIyB0aGlzIGlzIGZpeGVkIGxh dGVyCisrCQkgICA7OworKwkgICAgICBlc2FjCisrCSAgICAgIDs7CisrCSAgZXNhYworKwkgIHBy ZXY9CisrCSAgY29udGludWUKKysJICA7OworKwlpbnN0X3ByZWZpeCkKKysJICBpbnN0X3ByZWZp eF9kaXI9IiRhcmciCisrCSAgcHJldj0KKysJICBjb250aW51ZQorKwkgIDs7CisrCW9iamVjdGxp c3QpCisrCSAgaWYgdGVzdCAtZiAiJGFyZyI7IHRoZW4KKysJICAgIHNhdmVfYXJnPSRhcmcKKysJ ICAgIG1vcmVhcmdzPQorKwkgICAgZm9yIGZpbCBpbiBgY2F0ICIkc2F2ZV9hcmciYAorKwkgICAg ZG8KKysjCSAgICAgIG1vcmVhcmdzPSIkbW9yZWFyZ3MgJGZpbCIKKysJICAgICAgYXJnPSRmaWwK KysJICAgICAgIyBBIGxpYnRvb2wtY29udHJvbGxlZCBvYmplY3QuCisrCisrCSAgICAgICMgQ2hl Y2sgdG8gc2VlIHRoYXQgdGhpcyByZWFsbHkgaXMgYSBsaWJ0b29sIG9iamVjdC4KKysJICAgICAg aWYgZnVuY19sYWxpYl91bnNhZmVfcCAiJGFyZyI7IHRoZW4KKysJCXBpY19vYmplY3Q9CisrCQlu b25fcGljX29iamVjdD0KKysKKysJCSMgUmVhZCB0aGUgLmxvIGZpbGUKKysJCWZ1bmNfc291cmNl ICIkYXJnIgorKworKwkJaWYgdGVzdCAteiAiJHBpY19vYmplY3QiIHx8CisrCQkgICB0ZXN0IC16 ICIkbm9uX3BpY19vYmplY3QiIHx8CisrCQkgICB0ZXN0ICIkcGljX29iamVjdCIgPSBub25lICYm CisrCQkgICB0ZXN0ICIkbm9uX3BpY19vYmplY3QiID0gbm9uZTsgdGhlbgorKwkJICBmdW5jX2Zh dGFsX2Vycm9yICJjYW5ub3QgZmluZCBuYW1lIG9mIG9iamVjdCBmb3IgXGAkYXJnJyIKKysJCWZp CisrCisrCQkjIEV4dHJhY3Qgc3ViZGlyZWN0b3J5IGZyb20gdGhlIGFyZ3VtZW50LgorKwkJZnVu Y19kaXJuYW1lICIkYXJnIiAiLyIgIiIKKysJCXhkaXI9IiRmdW5jX2Rpcm5hbWVfcmVzdWx0Igor KworKwkJaWYgdGVzdCAiJHBpY19vYmplY3QiICE9IG5vbmU7IHRoZW4KKysJCSAgIyBQcmVwZW5k IHRoZSBzdWJkaXJlY3RvcnkgdGhlIG9iamVjdCBpcyBmb3VuZCBpbi4KKysJCSAgcGljX29iamVj dD0iJHhkaXIkcGljX29iamVjdCIKKysKKysJCSAgaWYgdGVzdCAiJHByZXYiID0gZGxmaWxlczsg dGhlbgorKwkJICAgIGlmIHRlc3QgIiRidWlsZF9saWJ0b29sX2xpYnMiID0geWVzICYmIHRlc3Qg IiRkbG9wZW5fc3VwcG9ydCIgPSB5ZXM7IHRoZW4KKysJCSAgICAgIGRsZmlsZXM9IiRkbGZpbGVz ICRwaWNfb2JqZWN0IgorKwkJICAgICAgcHJldj0KKysJCSAgICAgIGNvbnRpbnVlCisrCQkgICAg ZWxzZQorKwkJICAgICAgIyBJZiBsaWJ0b29sIG9iamVjdHMgYXJlIHVuc3VwcG9ydGVkLCB0aGVu IHdlIG5lZWQgdG8gcHJlbG9hZC4KKysJCSAgICAgIHByZXY9ZGxwcmVmaWxlcworKwkJICAgIGZp CisrCQkgIGZpCisrCisrCQkgICMgQ0hFQ0sgTUU6ICBJIHRoaW5rIEkgYnVzdGVkIHRoaXMuICAt T3NzYW1hCisrCQkgIGlmIHRlc3QgIiRwcmV2IiA9IGRscHJlZmlsZXM7IHRoZW4KKysJCSAgICAj IFByZWxvYWQgdGhlIG9sZC1zdHlsZSBvYmplY3QuCisrCQkgICAgZGxwcmVmaWxlcz0iJGRscHJl ZmlsZXMgJHBpY19vYmplY3QiCisrCQkgICAgcHJldj0KKysJCSAgZmkKKysKKysJCSAgIyBBIFBJ QyBvYmplY3QuCisrCQkgIGZ1bmNfYXBwZW5kIGxpYm9ianMgIiAkcGljX29iamVjdCIKKysJCSAg YXJnPSIkcGljX29iamVjdCIKKysJCWZpCisrCisrCQkjIE5vbi1QSUMgb2JqZWN0LgorKwkJaWYg dGVzdCAiJG5vbl9waWNfb2JqZWN0IiAhPSBub25lOyB0aGVuCisrCQkgICMgUHJlcGVuZCB0aGUg c3ViZGlyZWN0b3J5IHRoZSBvYmplY3QgaXMgZm91bmQgaW4uCisrCQkgIG5vbl9waWNfb2JqZWN0 PSIkeGRpciRub25fcGljX29iamVjdCIKKysKKysJCSAgIyBBIHN0YW5kYXJkIG5vbi1QSUMgb2Jq ZWN0CisrCQkgIGZ1bmNfYXBwZW5kIG5vbl9waWNfb2JqZWN0cyAiICRub25fcGljX29iamVjdCIK KysJCSAgaWYgdGVzdCAteiAiJHBpY19vYmplY3QiIHx8IHRlc3QgIiRwaWNfb2JqZWN0IiA9IG5v bmUgOyB0aGVuCisrCQkgICAgYXJnPSIkbm9uX3BpY19vYmplY3QiCisrCQkgIGZpCisrCQllbHNl CisrCQkgICMgSWYgdGhlIFBJQyBvYmplY3QgZXhpc3RzLCB1c2UgaXQgaW5zdGVhZC4KKysJCSAg IyAkeGRpciB3YXMgcHJlcGVuZGVkIHRvICRwaWNfb2JqZWN0IGFib3ZlLgorKwkJICBub25fcGlj X29iamVjdD0iJHBpY19vYmplY3QiCisrCQkgIGZ1bmNfYXBwZW5kIG5vbl9waWNfb2JqZWN0cyAi ICRub25fcGljX29iamVjdCIKKysJCWZpCisrCSAgICAgIGVsc2UKKysJCSMgT25seSBhbiBlcnJv ciBpZiBub3QgZG9pbmcgYSBkcnktcnVuLgorKwkJaWYgJG9wdF9kcnlfcnVuOyB0aGVuCisrCQkg ICMgRXh0cmFjdCBzdWJkaXJlY3RvcnkgZnJvbSB0aGUgYXJndW1lbnQuCisrCQkgIGZ1bmNfZGly bmFtZSAiJGFyZyIgIi8iICIiCisrCQkgIHhkaXI9IiRmdW5jX2Rpcm5hbWVfcmVzdWx0IgorKwor KwkJICBmdW5jX2xvMm8gIiRhcmciCisrCQkgIHBpY19vYmplY3Q9JHhkaXIkb2JqZGlyLyRmdW5j X2xvMm9fcmVzdWx0CisrCQkgIG5vbl9waWNfb2JqZWN0PSR4ZGlyJGZ1bmNfbG8yb19yZXN1bHQK KysJCSAgZnVuY19hcHBlbmQgbGlib2JqcyAiICRwaWNfb2JqZWN0IgorKwkJICBmdW5jX2FwcGVu ZCBub25fcGljX29iamVjdHMgIiAkbm9uX3BpY19vYmplY3QiCisrCSAgICAgICAgZWxzZQorKwkJ ICBmdW5jX2ZhdGFsX2Vycm9yICJcYCRhcmcnIGlzIG5vdCBhIHZhbGlkIGxpYnRvb2wgb2JqZWN0 IgorKwkJZmkKKysJICAgICAgZmkKKysJICAgIGRvbmUKKysJICBlbHNlCisrCSAgICBmdW5jX2Zh dGFsX2Vycm9yICJsaW5rIGlucHV0IGZpbGUgXGAkYXJnJyBkb2VzIG5vdCBleGlzdCIKKysJICBm aQorKwkgIGFyZz0kc2F2ZV9hcmcKKysJICBwcmV2PQorKwkgIGNvbnRpbnVlCisrCSAgOzsKKysJ cHJlY2lvdXNfcmVnZXgpCisrCSAgcHJlY2lvdXNfZmlsZXNfcmVnZXg9IiRhcmciCisrCSAgcHJl dj0KKysJICBjb250aW51ZQorKwkgIDs7CisrCXJlbGVhc2UpCisrCSAgcmVsZWFzZT0iLSRhcmci CisrCSAgcHJldj0KKysJICBjb250aW51ZQorKwkgIDs7CisrCXJwYXRoIHwgeHJwYXRoKQorKwkg ICMgV2UgbmVlZCBhbiBhYnNvbHV0ZSBwYXRoLgorKwkgIGNhc2UgJGFyZyBpbgorKwkgIFtcXC9d KiB8IFtBLVphLXpdOltcXC9dKikgOzsKKysJICAqKQorKwkgICAgZnVuY19mYXRhbF9lcnJvciAi b25seSBhYnNvbHV0ZSBydW4tcGF0aHMgYXJlIGFsbG93ZWQiCisrCSAgICA7OworKwkgIGVzYWMK KysJICBpZiB0ZXN0ICIkcHJldiIgPSBycGF0aDsgdGhlbgorKwkgICAgY2FzZSAiJHJwYXRoICIg aW4KKysJICAgICoiICRhcmcgIiopIDs7CisrCSAgICAqKSBycGF0aD0iJHJwYXRoICRhcmciIDs7 CisrCSAgICBlc2FjCisrCSAgZWxzZQorKwkgICAgY2FzZSAiJHhycGF0aCAiIGluCisrCSAgICAq IiAkYXJnICIqKSA7OworKwkgICAgKikgeHJwYXRoPSIkeHJwYXRoICRhcmciIDs7CisrCSAgICBl c2FjCisrCSAgZmkKKysJICBwcmV2PQorKwkgIGNvbnRpbnVlCisrCSAgOzsKKysJc2hyZXh0KQor KwkgIHNocmV4dF9jbWRzPSIkYXJnIgorKwkgIHByZXY9CisrCSAgY29udGludWUKKysJICA7Owor Kwl3ZWFrKQorKwkgIHdlYWtfbGlicz0iJHdlYWtfbGlicyAkYXJnIgorKwkgIHByZXY9CisrCSAg Y29udGludWUKKysJICA7OworKwl4Y2NsaW5rZXIpCisrCSAgbGlua2VyX2ZsYWdzPSIkbGlua2Vy X2ZsYWdzICRxYXJnIgorKwkgIGNvbXBpbGVyX2ZsYWdzPSIkY29tcGlsZXJfZmxhZ3MgJHFhcmci CisrCSAgcHJldj0KKysJICBmdW5jX2FwcGVuZCBjb21waWxlX2NvbW1hbmQgIiAkcWFyZyIKKysJ ICBmdW5jX2FwcGVuZCBmaW5hbGl6ZV9jb21tYW5kICIgJHFhcmciCisrCSAgY29udGludWUKKysJ ICA7OworKwl4Y29tcGlsZXIpCisrCSAgY29tcGlsZXJfZmxhZ3M9IiRjb21waWxlcl9mbGFncyAk cWFyZyIKKysJICBwcmV2PQorKwkgIGZ1bmNfYXBwZW5kIGNvbXBpbGVfY29tbWFuZCAiICRxYXJn IgorKwkgIGZ1bmNfYXBwZW5kIGZpbmFsaXplX2NvbW1hbmQgIiAkcWFyZyIKKysJICBjb250aW51 ZQorKwkgIDs7CisrCXhsaW5rZXIpCisrCSAgbGlua2VyX2ZsYWdzPSIkbGlua2VyX2ZsYWdzICRx YXJnIgorKwkgIGNvbXBpbGVyX2ZsYWdzPSIkY29tcGlsZXJfZmxhZ3MgJHdsJHFhcmciCisrCSAg cHJldj0KKysJICBmdW5jX2FwcGVuZCBjb21waWxlX2NvbW1hbmQgIiAkd2wkcWFyZyIKKysJICBm dW5jX2FwcGVuZCBmaW5hbGl6ZV9jb21tYW5kICIgJHdsJHFhcmciCisrCSAgY29udGludWUKKysJ ICA7OworKwkqKQorKwkgIGV2YWwgIiRwcmV2PVwiXCRhcmdcIiIKKysJICBwcmV2PQorKwkgIGNv bnRpbnVlCisrCSAgOzsKKysJZXNhYworKyAgICAgIGZpICMgdGVzdCAtbiAiJHByZXYiCisrCisr ICAgICAgcHJldmFyZz0iJGFyZyIKKysKKysgICAgICBjYXNlICRhcmcgaW4KKysgICAgICAtYWxs LXN0YXRpYykKKysJaWYgdGVzdCAtbiAiJGxpbmtfc3RhdGljX2ZsYWciOyB0aGVuCisrCSAgIyBT ZWUgY29tbWVudCBmb3IgLXN0YXRpYyBmbGFnIGJlbG93LCBmb3IgbW9yZSBkZXRhaWxzLgorKwkg IGZ1bmNfYXBwZW5kIGNvbXBpbGVfY29tbWFuZCAiICRsaW5rX3N0YXRpY19mbGFnIgorKwkgIGZ1 bmNfYXBwZW5kIGZpbmFsaXplX2NvbW1hbmQgIiAkbGlua19zdGF0aWNfZmxhZyIKKysJZmkKKysJ Y29udGludWUKKysJOzsKKysKKysgICAgICAtYWxsb3ctdW5kZWZpbmVkKQorKwkjIEZJWE1FOiBy ZW1vdmUgdGhpcyBmbGFnIHNvbWV0aW1lIGluIHRoZSBmdXR1cmUuCisrCWZ1bmNfZmF0YWxfZXJy b3IgIlxgLWFsbG93LXVuZGVmaW5lZCcgbXVzdCBub3QgYmUgdXNlZCBiZWNhdXNlIGl0IGlzIHRo ZSBkZWZhdWx0IgorKwk7OworKworKyAgICAgIC1hdm9pZC12ZXJzaW9uKQorKwlhdm9pZF92ZXJz aW9uPXllcworKwljb250aW51ZQorKwk7OworKworKyAgICAgIC1kbG9wZW4pCisrCXByZXY9ZGxm aWxlcworKwljb250aW51ZQorKwk7OworKworKyAgICAgIC1kbHByZW9wZW4pCisrCXByZXY9ZGxw cmVmaWxlcworKwljb250aW51ZQorKwk7OworKworKyAgICAgIC1leHBvcnQtZHluYW1pYykKKysJ ZXhwb3J0X2R5bmFtaWM9eWVzCisrCWNvbnRpbnVlCisrCTs7CisrCisrICAgICAgLWV4cG9ydC1z eW1ib2xzIHwgLWV4cG9ydC1zeW1ib2xzLXJlZ2V4KQorKwlpZiB0ZXN0IC1uICIkZXhwb3J0X3N5 bWJvbHMiIHx8IHRlc3QgLW4gIiRleHBvcnRfc3ltYm9sc19yZWdleCI7IHRoZW4KKysJICBmdW5j X2ZhdGFsX2Vycm9yICJtb3JlIHRoYW4gb25lIC1leHBvcnRlZC1zeW1ib2xzIGFyZ3VtZW50IGlz IG5vdCBhbGxvd2VkIgorKwlmaQorKwlpZiB0ZXN0ICJYJGFyZyIgPSAiWC1leHBvcnQtc3ltYm9s cyI7IHRoZW4KKysJICBwcmV2PWV4cHN5bXMKKysJZWxzZQorKwkgIHByZXY9ZXhwc3ltc19yZWdl eAorKwlmaQorKwljb250aW51ZQorKwk7OworKworKyAgICAgIC1mcmFtZXdvcmspCisrCXByZXY9 ZnJhbWV3b3JrCisrCWNvbnRpbnVlCisrCTs7CisrCisrICAgICAgLWluc3QtcHJlZml4LWRpcikK KysJcHJldj1pbnN0X3ByZWZpeAorKwljb250aW51ZQorKwk7OworKworKyAgICAgICMgVGhlIG5h dGl2ZSBJUklYIGxpbmtlciB1bmRlcnN0YW5kcyAtTEFORzoqLCAtTElTVDoqIGFuZCAtTE5POioK KysgICAgICAjIHNvLCBpZiB3ZSBzZWUgdGhlc2UgZmxhZ3MgYmUgY2FyZWZ1bCBub3QgdG8gdHJl YXQgdGhlbSBsaWtlIC1MCisrICAgICAgLUxbQS1aXVtBLVpdKjoqKQorKwljYXNlICR3aXRoX2dj Yy8kaG9zdCBpbgorKwluby8qLSotaXJpeCogfCAvKi0qLWlyaXgqKQorKwkgIGZ1bmNfYXBwZW5k IGNvbXBpbGVfY29tbWFuZCAiICRhcmciCisrCSAgZnVuY19hcHBlbmQgZmluYWxpemVfY29tbWFu ZCAiICRhcmciCisrCSAgOzsKKysJZXNhYworKwljb250aW51ZQorKwk7OworKworKyAgICAgIC1M KikKKysJZnVuY19zdHJpcG5hbWUgJy1MJyAnJyAiJGFyZyIKKysJZGlyPSRmdW5jX3N0cmlwbmFt ZV9yZXN1bHQKKysJaWYgdGVzdCAteiAiJGRpciI7IHRoZW4KKysJICBpZiB0ZXN0ICIkIyIgLWd0 IDA7IHRoZW4KKysJICAgIGZ1bmNfZmF0YWxfZXJyb3IgInJlcXVpcmUgbm8gc3BhY2UgYmV0d2Vl biBcYC1MJyBhbmQgXGAkMSciCisrCSAgZWxzZQorKwkgICAgZnVuY19mYXRhbF9lcnJvciAibmVl ZCBwYXRoIGZvciBcYC1MJyBvcHRpb24iCisrCSAgZmkKKysJZmkKKysJIyBXZSBuZWVkIGFuIGFi c29sdXRlIHBhdGguCisrCWNhc2UgJGRpciBpbgorKwlbXFwvXSogfCBbQS1aYS16XTpbXFwvXSop IDs7CisrCSopCisrCSAgYWJzZGlyPWBjZCAiJGRpciIgJiYgcHdkYAorKwkgIHRlc3QgLXogIiRh YnNkaXIiICYmIFwKKysJICAgIGZ1bmNfZmF0YWxfZXJyb3IgImNhbm5vdCBkZXRlcm1pbmUgYWJz b2x1dGUgZGlyZWN0b3J5IG5hbWUgb2YgXGAkZGlyJyIKKysJICBkaXI9IiRhYnNkaXIiCisrCSAg OzsKKysJZXNhYworKwljYXNlICIkZGVwbGlicyAiIGluCisrCSoiIC1MJGRpciAiKikgOzsKKysJ KikKKysJICBkZXBsaWJzPSIkZGVwbGlicyAtTCRkaXIiCisrCSAgbGliX3NlYXJjaF9wYXRoPSIk bGliX3NlYXJjaF9wYXRoICRkaXIiCisrCSAgOzsKKysJZXNhYworKwljYXNlICRob3N0IGluCisr CSotKi1jeWd3aW4qIHwgKi0qLW1pbmd3KiB8ICotKi1wdzMyKiB8ICotKi1vczIqIHwgKi1jZWdj YyopCisrCSAgdGVzdGJpbmRpcj1gJEVDSE8gIlgkZGlyIiB8ICRYc2VkIC1lICdzKi9saWIkKi9i aW4qJ2AKKysJICBjYXNlIDokZGxsc2VhcmNocGF0aDogaW4KKysJICAqIjokZGlyOiIqKSA7Owor KwkgIDo6KSBkbGxzZWFyY2hwYXRoPSRkaXI7OworKwkgICopIGRsbHNlYXJjaHBhdGg9IiRkbGxz ZWFyY2hwYXRoOiRkaXIiOzsKKysJICBlc2FjCisrCSAgY2FzZSA6JGRsbHNlYXJjaHBhdGg6IGlu CisrCSAgKiI6JHRlc3RiaW5kaXI6IiopIDs7CisrCSAgOjopIGRsbHNlYXJjaHBhdGg9JHRlc3Ri aW5kaXI7OworKwkgICopIGRsbHNlYXJjaHBhdGg9IiRkbGxzZWFyY2hwYXRoOiR0ZXN0YmluZGly Ijs7CisrCSAgZXNhYworKwkgIDs7CisrCWVzYWMKKysJY29udGludWUKKysJOzsKKysKKysgICAg ICAtbCopCisrCWlmIHRlc3QgIlgkYXJnIiA9ICJYLWxjIiB8fCB0ZXN0ICJYJGFyZyIgPSAiWC1s bSI7IHRoZW4KKysJICBjYXNlICRob3N0IGluCisrCSAgKi0qLWN5Z3dpbiogfCAqLSotbWluZ3cq IHwgKi0qLXB3MzIqIHwgKi0qLWJlb3MqIHwgKi1jZWdjYyopCisrCSAgICAjIFRoZXNlIHN5c3Rl bXMgZG9uJ3QgYWN0dWFsbHkgaGF2ZSBhIEMgb3IgbWF0aCBsaWJyYXJ5IChhcyBzdWNoKQorKwkg ICAgY29udGludWUKKysJICAgIDs7CisrCSAgKi0qLW9zMiopCisrCSAgICAjIFRoZXNlIHN5c3Rl bXMgZG9uJ3QgYWN0dWFsbHkgaGF2ZSBhIEMgbGlicmFyeSAoYXMgc3VjaCkKKysJICAgIHRlc3Qg IlgkYXJnIiA9ICJYLWxjIiAmJiBjb250aW51ZQorKwkgICAgOzsKKysJICAqLSotb3BlbmJzZCog fCAqLSotZnJlZWJzZCogfCAqLSotZHJhZ29uZmx5KikKKysJICAgICMgRG8gbm90IGluY2x1ZGUg bGliYyBkdWUgdG8gdXMgaGF2aW5nIGxpYmMvbGliY19yLgorKwkgICAgdGVzdCAiWCRhcmciID0g IlgtbGMiICYmIGNvbnRpbnVlCisrCSAgICA7OworKwkgICotKi1yaGFwc29keSogfCAqLSotZGFy d2luMS5bMDEyXSkKKysJICAgICMgUmhhcHNvZHkgQyBhbmQgbWF0aCBsaWJyYXJpZXMgYXJlIGlu IHRoZSBTeXN0ZW0gZnJhbWV3b3JrCisrCSAgICBkZXBsaWJzPSIkZGVwbGlicyBTeXN0ZW0ubHRm cmFtZXdvcmsiCisrCSAgICBjb250aW51ZQorKwkgICAgOzsKKysJICAqLSotc2NvMy4ydjUqIHwg Ki0qLXNjbzV2NiopCisrCSAgICAjIENhdXNlcyBwcm9ibGVtcyB3aXRoIF9fY3R5cGUKKysJICAg IHRlc3QgIlgkYXJnIiA9ICJYLWxjIiAmJiBjb250aW51ZQorKwkgICAgOzsKKysJICAqLSotc3lz djQuMnV3MiogfCAqLSotc3lzdjUqIHwgKi0qLXVuaXh3YXJlKiB8ICotKi1PcGVuVU5JWCopCisr CSAgICAjIENvbXBpbGVyIGluc2VydHMgbGliYyBpbiB0aGUgY29ycmVjdCBwbGFjZSBmb3IgdGhy ZWFkcyB0byB3b3JrCisrCSAgICB0ZXN0ICJYJGFyZyIgPSAiWC1sYyIgJiYgY29udGludWUKKysJ ICAgIDs7CisrCSAgZXNhYworKwllbGlmIHRlc3QgIlgkYXJnIiA9ICJYLWxjX3IiOyB0aGVuCisr CSBjYXNlICRob3N0IGluCisrCSAqLSotb3BlbmJzZCogfCAqLSotZnJlZWJzZCogfCAqLSotZHJh Z29uZmx5KikKKysJICAgIyBEbyBub3QgaW5jbHVkZSBsaWJjX3IgZGlyZWN0bHksIHVzZSAtcHRo cmVhZCBmbGFnLgorKwkgICBjb250aW51ZQorKwkgICA7OworKwkgZXNhYworKwlmaQorKwlkZXBs aWJzPSIkZGVwbGlicyAkYXJnIgorKwljb250aW51ZQorKwk7OworKworKyAgICAgIC1tb2R1bGUp CisrCW1vZHVsZT15ZXMKKysJY29udGludWUKKysJOzsKKysKKysgICAgICAjIFRydTY0IFVOSVgg dXNlcyAtbW9kZWwgW2FyZ10gdG8gZGV0ZXJtaW5lIHRoZSBsYXlvdXQgb2YgQysrCisrICAgICAg IyBjbGFzc2VzLCBuYW1lIG1hbmdsaW5nLCBhbmQgZXhjZXB0aW9uIGhhbmRsaW5nLgorKyAgICAg ICMgRGFyd2luIHVzZXMgdGhlIC1hcmNoIGZsYWcgdG8gZGV0ZXJtaW5lIG91dHB1dCBhcmNoaXRl Y3R1cmUuCisrICAgICAgLW1vZGVsfC1hcmNofC1pc3lzcm9vdCkKKysJY29tcGlsZXJfZmxhZ3M9 IiRjb21waWxlcl9mbGFncyAkYXJnIgorKwlmdW5jX2FwcGVuZCBjb21waWxlX2NvbW1hbmQgIiAk YXJnIgorKwlmdW5jX2FwcGVuZCBmaW5hbGl6ZV9jb21tYW5kICIgJGFyZyIKKysJcHJldj14Y29t cGlsZXIKKysJY29udGludWUKKysJOzsKKysKKysgICAgICAtbXR8LW10aHJlYWRzfC1rdGhyZWFk fC1LdGhyZWFkfC1wdGhyZWFkfC1wdGhyZWFkc3wtLXRocmVhZC1zYWZlfC10aHJlYWRzKQorKwlj b21waWxlcl9mbGFncz0iJGNvbXBpbGVyX2ZsYWdzICRhcmciCisrCWZ1bmNfYXBwZW5kIGNvbXBp bGVfY29tbWFuZCAiICRhcmciCisrCWZ1bmNfYXBwZW5kIGZpbmFsaXplX2NvbW1hbmQgIiAkYXJn IgorKwljYXNlICIkbmV3X2luaGVyaXRlZF9saW5rZXJfZmxhZ3MgIiBpbgorKwkgICAgKiIgJGFy ZyAiKikgOzsKKysJICAgICogKSBuZXdfaW5oZXJpdGVkX2xpbmtlcl9mbGFncz0iJG5ld19pbmhl cml0ZWRfbGlua2VyX2ZsYWdzICRhcmciIDs7CisrCWVzYWMKKysJY29udGludWUKKysJOzsKKysK KysgICAgICAtbXVsdGlfbW9kdWxlKQorKwlzaW5nbGVfbW9kdWxlPSIke3dsfS1tdWx0aV9tb2R1 bGUiCisrCWNvbnRpbnVlCisrCTs7CisrCisrICAgICAgLW5vLWZhc3QtaW5zdGFsbCkKKysJZmFz dF9pbnN0YWxsPW5vCisrCWNvbnRpbnVlCisrCTs7CisrCisrICAgICAgLW5vLWluc3RhbGwpCisr CWNhc2UgJGhvc3QgaW4KKysJKi0qLWN5Z3dpbiogfCAqLSotbWluZ3cqIHwgKi0qLXB3MzIqIHwg Ki0qLW9zMiogfCAqLSotZGFyd2luKiB8ICotY2VnY2MqKQorKwkgICMgVGhlIFBBVEggaGFja2Vy eSBpbiB3cmFwcGVyIHNjcmlwdHMgaXMgcmVxdWlyZWQgb24gV2luZG93cworKwkgICMgYW5kIERh cndpbiBpbiBvcmRlciBmb3IgdGhlIGxvYWRlciB0byBmaW5kIGFueSBkbGxzIGl0IG5lZWRzLgor KwkgIGZ1bmNfd2FybmluZyAiXGAtbm8taW5zdGFsbCcgaXMgaWdub3JlZCBmb3IgJGhvc3QiCisr CSAgZnVuY193YXJuaW5nICJhc3N1bWluZyBcYC1uby1mYXN0LWluc3RhbGwnIGluc3RlYWQiCisr CSAgZmFzdF9pbnN0YWxsPW5vCisrCSAgOzsKKysJKikgbm9faW5zdGFsbD15ZXMgOzsKKysJZXNh YworKwljb250aW51ZQorKwk7OworKworKyAgICAgIC1uby11bmRlZmluZWQpCisrCWFsbG93X3Vu ZGVmaW5lZD1ubworKwljb250aW51ZQorKwk7OworKworKyAgICAgIC1vYmplY3RsaXN0KQorKwlw cmV2PW9iamVjdGxpc3QKKysJY29udGludWUKKysJOzsKKysKKysgICAgICAtbykgcHJldj1vdXRw dXQgOzsKKysKKysgICAgICAtcHJlY2lvdXMtZmlsZXMtcmVnZXgpCisrCXByZXY9cHJlY2lvdXNf cmVnZXgKKysJY29udGludWUKKysJOzsKKysKKysgICAgICAtcmVsZWFzZSkKKysJcHJldj1yZWxl YXNlCisrCWNvbnRpbnVlCisrCTs7CisrCisrICAgICAgLXJwYXRoKQorKwlwcmV2PXJwYXRoCisr CWNvbnRpbnVlCisrCTs7CisrCisrICAgICAgLVIpCisrCXByZXY9eHJwYXRoCisrCWNvbnRpbnVl CisrCTs7CisrCisrICAgICAgLVIqKQorKwlmdW5jX3N0cmlwbmFtZSAnLVInICcnICIkYXJnIgor KwlkaXI9JGZ1bmNfc3RyaXBuYW1lX3Jlc3VsdAorKwkjIFdlIG5lZWQgYW4gYWJzb2x1dGUgcGF0 aC4KKysJY2FzZSAkZGlyIGluCisrCVtcXC9dKiB8IFtBLVphLXpdOltcXC9dKikgOzsKKysJKikK KysJICBmdW5jX2ZhdGFsX2Vycm9yICJvbmx5IGFic29sdXRlIHJ1bi1wYXRocyBhcmUgYWxsb3dl ZCIKKysJICA7OworKwllc2FjCisrCWNhc2UgIiR4cnBhdGggIiBpbgorKwkqIiAkZGlyICIqKSA7 OworKwkqKSB4cnBhdGg9IiR4cnBhdGggJGRpciIgOzsKKysJZXNhYworKwljb250aW51ZQorKwk7 OworKworKyAgICAgIC1zaGFyZWQpCisrCSMgVGhlIGVmZmVjdHMgb2YgLXNoYXJlZCBhcmUgZGVm aW5lZCBpbiBhIHByZXZpb3VzIGxvb3AuCisrCWNvbnRpbnVlCisrCTs7CisrCisrICAgICAgLXNo cmV4dCkKKysJcHJldj1zaHJleHQKKysJY29udGludWUKKysJOzsKKysKKysgICAgICAtc3RhdGlj IHwgLXN0YXRpYy1saWJ0b29sLWxpYnMpCisrCSMgVGhlIGVmZmVjdHMgb2YgLXN0YXRpYyBhcmUg ZGVmaW5lZCBpbiBhIHByZXZpb3VzIGxvb3AuCisrCSMgV2UgdXNlZCB0byBkbyB0aGUgc2FtZSBh cyAtYWxsLXN0YXRpYyBvbiBwbGF0Zm9ybXMgdGhhdAorKwkjIGRpZG4ndCBoYXZlIGEgUElDIGZs YWcsIGJ1dCB0aGUgYXNzdW1wdGlvbiB0aGF0IHRoZSBlZmZlY3RzCisrCSMgd291bGQgYmUgZXF1 aXZhbGVudCB3YXMgd3JvbmcuICBJdCB3b3VsZCBicmVhayBvbiBhdCBsZWFzdAorKwkjIERpZ2l0 YWwgVW5peCBhbmQgQUlYLgorKwljb250aW51ZQorKwk7OworKworKyAgICAgIC10aHJlYWQtc2Fm ZSkKKysJdGhyZWFkX3NhZmU9eWVzCisrCWNvbnRpbnVlCisrCTs7CisrCisrICAgICAgLXZlcnNp b24taW5mbykKKysJcHJldj12aW5mbworKwljb250aW51ZQorKwk7OworKworKyAgICAgIC12ZXJz aW9uLW51bWJlcikKKysJcHJldj12aW5mbworKwl2aW5mb19udW1iZXI9eWVzCisrCWNvbnRpbnVl CisrCTs7CisrCisrICAgICAgLXdlYWspCisrICAgICAgICBwcmV2PXdlYWsKKysJY29udGludWUK KysJOzsKKysKKysgICAgICAtV2MsKikKKysJZnVuY19zdHJpcG5hbWUgJy1XYywnICcnICIkYXJn IgorKwlhcmdzPSRmdW5jX3N0cmlwbmFtZV9yZXN1bHQKKysJYXJnPQorKwlzYXZlX2lmcz0iJElG UyI7IElGUz0nLCcKKysJZm9yIGZsYWcgaW4gJGFyZ3M7IGRvCisrCSAgSUZTPSIkc2F2ZV9pZnMi CisrICAgICAgICAgIGZ1bmNfcXVvdGVfZm9yX2V2YWwgIiRmbGFnIgorKwkgIGFyZz0iJGFyZyAk d2wkZnVuY19xdW90ZV9mb3JfZXZhbF9yZXN1bHQiCisrCSAgY29tcGlsZXJfZmxhZ3M9IiRjb21w aWxlcl9mbGFncyAkZnVuY19xdW90ZV9mb3JfZXZhbF9yZXN1bHQiCisrCWRvbmUKKysJSUZTPSIk c2F2ZV9pZnMiCisrCWZ1bmNfc3RyaXBuYW1lICcgJyAnJyAiJGFyZyIKKysJYXJnPSRmdW5jX3N0 cmlwbmFtZV9yZXN1bHQKKysJOzsKKysKKysgICAgICAtV2wsKikKKysJZnVuY19zdHJpcG5hbWUg Jy1XbCwnICcnICIkYXJnIgorKwlhcmdzPSRmdW5jX3N0cmlwbmFtZV9yZXN1bHQKKysJYXJnPQor KwlzYXZlX2lmcz0iJElGUyI7IElGUz0nLCcKKysJZm9yIGZsYWcgaW4gJGFyZ3M7IGRvCisrCSAg SUZTPSIkc2F2ZV9pZnMiCisrICAgICAgICAgIGZ1bmNfcXVvdGVfZm9yX2V2YWwgIiRmbGFnIgor KwkgIGFyZz0iJGFyZyAkd2wkZnVuY19xdW90ZV9mb3JfZXZhbF9yZXN1bHQiCisrCSAgY29tcGls ZXJfZmxhZ3M9IiRjb21waWxlcl9mbGFncyAkd2wkZnVuY19xdW90ZV9mb3JfZXZhbF9yZXN1bHQi CisrCSAgbGlua2VyX2ZsYWdzPSIkbGlua2VyX2ZsYWdzICRmdW5jX3F1b3RlX2Zvcl9ldmFsX3Jl c3VsdCIKKysJZG9uZQorKwlJRlM9IiRzYXZlX2lmcyIKKysJZnVuY19zdHJpcG5hbWUgJyAnICcn ICIkYXJnIgorKwlhcmc9JGZ1bmNfc3RyaXBuYW1lX3Jlc3VsdAorKwk7OworKworKyAgICAgIC1Y Y29tcGlsZXIpCisrCXByZXY9eGNvbXBpbGVyCisrCWNvbnRpbnVlCisrCTs7CisrCisrICAgICAg LVhsaW5rZXIpCisrCXByZXY9eGxpbmtlcgorKwljb250aW51ZQorKwk7OworKworKyAgICAgIC1Y Q0NsaW5rZXIpCisrCXByZXY9eGNjbGlua2VyCisrCWNvbnRpbnVlCisrCTs7CisrCisrICAgICAg IyAtbXNnXyogZm9yIG9zZiBjYworKyAgICAgIC1tc2dfKikKKysJZnVuY19xdW90ZV9mb3JfZXZh bCAiJGFyZyIKKysJYXJnPSIkZnVuY19xdW90ZV9mb3JfZXZhbF9yZXN1bHQiCisrCTs7CisrCisr ICAgICAgIyAtNjQsIC1taXBzWzAtOV0gZW5hYmxlIDY0LWJpdCBtb2RlIG9uIHRoZSBTR0kgY29t cGlsZXIKKysgICAgICAjIC1yWzAtOV1bMC05XSogc3BlY2lmaWVzIHRoZSBwcm9jZXNzb3Igb24g dGhlIFNHSSBjb21waWxlcgorKyAgICAgICMgLXhhcmNoPSosIC14dGFyZ2V0PSogZW5hYmxlIDY0 LWJpdCBtb2RlIG9uIHRoZSBTdW4gY29tcGlsZXIKKysgICAgICAjICtEQSosICtERCogZW5hYmxl IDY0LWJpdCBtb2RlIG9uIHRoZSBIUCBjb21waWxlcgorKyAgICAgICMgLXEqIHBhc3MgdGhyb3Vn aCBjb21waWxlciBhcmdzIGZvciB0aGUgSUJNIGNvbXBpbGVyCisrICAgICAgIyAtbSosIC10WzQ1 XSosIC10eHNjYWxlKiBwYXNzIHRocm91Z2ggYXJjaGl0ZWN0dXJlLXNwZWNpZmljCisrICAgICAg IyBjb21waWxlciBhcmdzIGZvciBHQ0MKKysgICAgICAjIC1GL3BhdGggZ2l2ZXMgcGF0aCB0byB1 bmluc3RhbGxlZCBmcmFtZXdvcmtzLCBnY2Mgb24gZGFyd2luCisrICAgICAgIyAtcCwgLXBnLCAt LWNvdmVyYWdlLCAtZnByb2ZpbGUtKiBwYXNzIHRocm91Z2ggcHJvZmlsaW5nIGZsYWcgZm9yIEdD QworKyAgICAgICMgQGZpbGUgR0NDIHJlc3BvbnNlIGZpbGVzCisrICAgICAgLTY0fC1taXBzWzAt OV18LXJbMC05XVswLTldKnwteGFyY2g9KnwteHRhcmdldD0qfCtEQSp8K0REKnwtcSp8LW0qfCBc CisrICAgICAgLXRbNDVdKnwtdHhzY2FsZSp8LXB8LXBnfC0tY292ZXJhZ2V8LWZwcm9maWxlLSp8 LUYqfEAqKQorKyAgICAgICAgZnVuY19xdW90ZV9mb3JfZXZhbCAiJGFyZyIKKysJYXJnPSIkZnVu Y19xdW90ZV9mb3JfZXZhbF9yZXN1bHQiCisrICAgICAgICBmdW5jX2FwcGVuZCBjb21waWxlX2Nv bW1hbmQgIiAkYXJnIgorKyAgICAgICAgZnVuY19hcHBlbmQgZmluYWxpemVfY29tbWFuZCAiICRh cmciCisrICAgICAgICBjb21waWxlcl9mbGFncz0iJGNvbXBpbGVyX2ZsYWdzICRhcmciCisrICAg ICAgICBjb250aW51ZQorKyAgICAgICAgOzsKKysKKysgICAgICAjIFNvbWUgb3RoZXIgY29tcGls ZXIgZmxhZy4KKysgICAgICAtKiB8ICsqKQorKyAgICAgICAgZnVuY19xdW90ZV9mb3JfZXZhbCAi JGFyZyIKKysJYXJnPSIkZnVuY19xdW90ZV9mb3JfZXZhbF9yZXN1bHQiCisrCTs7CisrCisrICAg ICAgKi4kb2JqZXh0KQorKwkjIEEgc3RhbmRhcmQgb2JqZWN0LgorKwlvYmpzPSIkb2JqcyAkYXJn IgorKwk7OworKworKyAgICAgICoubG8pCisrCSMgQSBsaWJ0b29sLWNvbnRyb2xsZWQgb2JqZWN0 LgorKworKwkjIENoZWNrIHRvIHNlZSB0aGF0IHRoaXMgcmVhbGx5IGlzIGEgbGlidG9vbCBvYmpl Y3QuCisrCWlmIGZ1bmNfbGFsaWJfdW5zYWZlX3AgIiRhcmciOyB0aGVuCisrCSAgcGljX29iamVj dD0KKysJICBub25fcGljX29iamVjdD0KKysKKysJICAjIFJlYWQgdGhlIC5sbyBmaWxlCisrCSAg ZnVuY19zb3VyY2UgIiRhcmciCisrCisrCSAgaWYgdGVzdCAteiAiJHBpY19vYmplY3QiIHx8Cisr CSAgICAgdGVzdCAteiAiJG5vbl9waWNfb2JqZWN0IiB8fAorKwkgICAgIHRlc3QgIiRwaWNfb2Jq ZWN0IiA9IG5vbmUgJiYKKysJICAgICB0ZXN0ICIkbm9uX3BpY19vYmplY3QiID0gbm9uZTsgdGhl bgorKwkgICAgZnVuY19mYXRhbF9lcnJvciAiY2Fubm90IGZpbmQgbmFtZSBvZiBvYmplY3QgZm9y IFxgJGFyZyciCisrCSAgZmkKKysKKysJICAjIEV4dHJhY3Qgc3ViZGlyZWN0b3J5IGZyb20gdGhl IGFyZ3VtZW50LgorKwkgIGZ1bmNfZGlybmFtZSAiJGFyZyIgIi8iICIiCisrCSAgeGRpcj0iJGZ1 bmNfZGlybmFtZV9yZXN1bHQiCisrCisrCSAgaWYgdGVzdCAiJHBpY19vYmplY3QiICE9IG5vbmU7 IHRoZW4KKysJICAgICMgUHJlcGVuZCB0aGUgc3ViZGlyZWN0b3J5IHRoZSBvYmplY3QgaXMgZm91 bmQgaW4uCisrCSAgICBwaWNfb2JqZWN0PSIkeGRpciRwaWNfb2JqZWN0IgorKworKwkgICAgaWYg dGVzdCAiJHByZXYiID0gZGxmaWxlczsgdGhlbgorKwkgICAgICBpZiB0ZXN0ICIkYnVpbGRfbGli dG9vbF9saWJzIiA9IHllcyAmJiB0ZXN0ICIkZGxvcGVuX3N1cHBvcnQiID0geWVzOyB0aGVuCisr CQlkbGZpbGVzPSIkZGxmaWxlcyAkcGljX29iamVjdCIKKysJCXByZXY9CisrCQljb250aW51ZQor KwkgICAgICBlbHNlCisrCQkjIElmIGxpYnRvb2wgb2JqZWN0cyBhcmUgdW5zdXBwb3J0ZWQsIHRo ZW4gd2UgbmVlZCB0byBwcmVsb2FkLgorKwkJcHJldj1kbHByZWZpbGVzCisrCSAgICAgIGZpCisr CSAgICBmaQorKworKwkgICAgIyBDSEVDSyBNRTogIEkgdGhpbmsgSSBidXN0ZWQgdGhpcy4gIC1P c3NhbWEKKysJICAgIGlmIHRlc3QgIiRwcmV2IiA9IGRscHJlZmlsZXM7IHRoZW4KKysJICAgICAg IyBQcmVsb2FkIHRoZSBvbGQtc3R5bGUgb2JqZWN0LgorKwkgICAgICBkbHByZWZpbGVzPSIkZGxw cmVmaWxlcyAkcGljX29iamVjdCIKKysJICAgICAgcHJldj0KKysJICAgIGZpCisrCisrCSAgICAj IEEgUElDIG9iamVjdC4KKysJICAgIGZ1bmNfYXBwZW5kIGxpYm9ianMgIiAkcGljX29iamVjdCIK KysJICAgIGFyZz0iJHBpY19vYmplY3QiCisrCSAgZmkKKysKKysJICAjIE5vbi1QSUMgb2JqZWN0 LgorKwkgIGlmIHRlc3QgIiRub25fcGljX29iamVjdCIgIT0gbm9uZTsgdGhlbgorKwkgICAgIyBQ cmVwZW5kIHRoZSBzdWJkaXJlY3RvcnkgdGhlIG9iamVjdCBpcyBmb3VuZCBpbi4KKysJICAgIG5v bl9waWNfb2JqZWN0PSIkeGRpciRub25fcGljX29iamVjdCIKKysKKysJICAgICMgQSBzdGFuZGFy ZCBub24tUElDIG9iamVjdAorKwkgICAgZnVuY19hcHBlbmQgbm9uX3BpY19vYmplY3RzICIgJG5v bl9waWNfb2JqZWN0IgorKwkgICAgaWYgdGVzdCAteiAiJHBpY19vYmplY3QiIHx8IHRlc3QgIiRw aWNfb2JqZWN0IiA9IG5vbmUgOyB0aGVuCisrCSAgICAgIGFyZz0iJG5vbl9waWNfb2JqZWN0Igor KwkgICAgZmkKKysJICBlbHNlCisrCSAgICAjIElmIHRoZSBQSUMgb2JqZWN0IGV4aXN0cywgdXNl IGl0IGluc3RlYWQuCisrCSAgICAjICR4ZGlyIHdhcyBwcmVwZW5kZWQgdG8gJHBpY19vYmplY3Qg YWJvdmUuCisrCSAgICBub25fcGljX29iamVjdD0iJHBpY19vYmplY3QiCisrCSAgICBmdW5jX2Fw cGVuZCBub25fcGljX29iamVjdHMgIiAkbm9uX3BpY19vYmplY3QiCisrCSAgZmkKKysJZWxzZQor KwkgICMgT25seSBhbiBlcnJvciBpZiBub3QgZG9pbmcgYSBkcnktcnVuLgorKwkgIGlmICRvcHRf ZHJ5X3J1bjsgdGhlbgorKwkgICAgIyBFeHRyYWN0IHN1YmRpcmVjdG9yeSBmcm9tIHRoZSBhcmd1 bWVudC4KKysJICAgIGZ1bmNfZGlybmFtZSAiJGFyZyIgIi8iICIiCisrCSAgICB4ZGlyPSIkZnVu Y19kaXJuYW1lX3Jlc3VsdCIKKysKKysJICAgIGZ1bmNfbG8ybyAiJGFyZyIKKysJICAgIHBpY19v YmplY3Q9JHhkaXIkb2JqZGlyLyRmdW5jX2xvMm9fcmVzdWx0CisrCSAgICBub25fcGljX29iamVj dD0keGRpciRmdW5jX2xvMm9fcmVzdWx0CisrCSAgICBmdW5jX2FwcGVuZCBsaWJvYmpzICIgJHBp Y19vYmplY3QiCisrCSAgICBmdW5jX2FwcGVuZCBub25fcGljX29iamVjdHMgIiAkbm9uX3BpY19v YmplY3QiCisrCSAgZWxzZQorKwkgICAgZnVuY19mYXRhbF9lcnJvciAiXGAkYXJnJyBpcyBub3Qg YSB2YWxpZCBsaWJ0b29sIG9iamVjdCIKKysJICBmaQorKwlmaQorKwk7OworKworKyAgICAgICou JGxpYmV4dCkKKysJIyBBbiBhcmNoaXZlLgorKwlkZXBsaWJzPSIkZGVwbGlicyAkYXJnIgorKwlv bGRfZGVwbGlicz0iJG9sZF9kZXBsaWJzICRhcmciCisrCWNvbnRpbnVlCisrCTs7CisrCisrICAg ICAgKi5sYSkKKysJIyBBIGxpYnRvb2wtY29udHJvbGxlZCBsaWJyYXJ5LgorKworKwlpZiB0ZXN0 ICIkcHJldiIgPSBkbGZpbGVzOyB0aGVuCisrCSAgIyBUaGlzIGxpYnJhcnkgd2FzIHNwZWNpZmll ZCB3aXRoIC1kbG9wZW4uCisrCSAgZGxmaWxlcz0iJGRsZmlsZXMgJGFyZyIKKysJICBwcmV2PQor KwllbGlmIHRlc3QgIiRwcmV2IiA9IGRscHJlZmlsZXM7IHRoZW4KKysJICAjIFRoZSBsaWJyYXJ5 IHdhcyBzcGVjaWZpZWQgd2l0aCAtZGxwcmVvcGVuLgorKwkgIGRscHJlZmlsZXM9IiRkbHByZWZp bGVzICRhcmciCisrCSAgcHJldj0KKysJZWxzZQorKwkgIGRlcGxpYnM9IiRkZXBsaWJzICRhcmci CisrCWZpCisrCWNvbnRpbnVlCisrCTs7CisrCisrICAgICAgIyBTb21lIG90aGVyIGNvbXBpbGVy IGFyZ3VtZW50LgorKyAgICAgICopCisrCSMgVW5rbm93biBhcmd1bWVudHMgaW4gYm90aCBmaW5h bGl6ZV9jb21tYW5kIGFuZCBjb21waWxlX2NvbW1hbmQgbmVlZAorKwkjIHRvIGJlIGFlc3RoZXRp Y2FsbHkgcXVvdGVkIGJlY2F1c2UgdGhleSBhcmUgZXZhbGVkIGxhdGVyLgorKwlmdW5jX3F1b3Rl X2Zvcl9ldmFsICIkYXJnIgorKwlhcmc9IiRmdW5jX3F1b3RlX2Zvcl9ldmFsX3Jlc3VsdCIKKysJ OzsKKysgICAgICBlc2FjICMgYXJnCisrCisrICAgICAgIyBOb3cgYWN0dWFsbHkgc3Vic3RpdHV0 ZSB0aGUgYXJndW1lbnQgaW50byB0aGUgY29tbWFuZHMuCisrICAgICAgaWYgdGVzdCAtbiAiJGFy ZyI7IHRoZW4KKysJZnVuY19hcHBlbmQgY29tcGlsZV9jb21tYW5kICIgJGFyZyIKKysJZnVuY19h cHBlbmQgZmluYWxpemVfY29tbWFuZCAiICRhcmciCisrICAgICAgZmkKKysgICAgZG9uZSAjIGFy Z3VtZW50IHBhcnNpbmcgbG9vcAorKworKyAgICB0ZXN0IC1uICIkcHJldiIgJiYgXAorKyAgICAg IGZ1bmNfZmF0YWxfaGVscCAidGhlIFxgJHByZXZhcmcnIG9wdGlvbiByZXF1aXJlcyBhbiBhcmd1 bWVudCIKKysKKysgICAgaWYgdGVzdCAiJGV4cG9ydF9keW5hbWljIiA9IHllcyAmJiB0ZXN0IC1u ICIkZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjIjsgdGhlbgorKyAgICAgIGV2YWwgYXJnPVwiJGV4 cG9ydF9keW5hbWljX2ZsYWdfc3BlY1wiCisrICAgICAgZnVuY19hcHBlbmQgY29tcGlsZV9jb21t YW5kICIgJGFyZyIKKysgICAgICBmdW5jX2FwcGVuZCBmaW5hbGl6ZV9jb21tYW5kICIgJGFyZyIK KysgICAgZmkKKysKKysgICAgb2xkbGlicz0KKysgICAgIyBjYWxjdWxhdGUgdGhlIG5hbWUgb2Yg dGhlIGZpbGUsIHdpdGhvdXQgaXRzIGRpcmVjdG9yeQorKyAgICBmdW5jX2Jhc2VuYW1lICIkb3V0 cHV0IgorKyAgICBvdXRwdXRuYW1lPSIkZnVuY19iYXNlbmFtZV9yZXN1bHQiCisrICAgIGxpYm9i anNfc2F2ZT0iJGxpYm9ianMiCisrCisrICAgIGlmIHRlc3QgLW4gIiRzaGxpYnBhdGhfdmFyIjsg dGhlbgorKyAgICAgICMgZ2V0IHRoZSBkaXJlY3RvcmllcyBsaXN0ZWQgaW4gJHNobGlicGF0aF92 YXIKKysgICAgICBldmFsIHNobGliX3NlYXJjaF9wYXRoPVxgXCRFQ0hPIFwiWFwkeyRzaGxpYnBh dGhfdmFyfVwiIFx8IFwkWHNlZCAtZSBcJ3MvOi8gL2dcJ1xgCisrICAgIGVsc2UKKysgICAgICBz aGxpYl9zZWFyY2hfcGF0aD0KKysgICAgZmkKKysgICAgZXZhbCBzeXNfbGliX3NlYXJjaF9wYXRo PVwiJHN5c19saWJfc2VhcmNoX3BhdGhfc3BlY1wiCisrICAgIGV2YWwgc3lzX2xpYl9kbHNlYXJj aF9wYXRoPVwiJHN5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjXCIKKysKKysgICAgZnVuY19kaXJu YW1lICIkb3V0cHV0IiAiLyIgIiIKKysgICAgb3V0cHV0X29iamRpcj0iJGZ1bmNfZGlybmFtZV9y ZXN1bHQkb2JqZGlyIgorKyAgICAjIENyZWF0ZSB0aGUgb2JqZWN0IGRpcmVjdG9yeS4KKysgICAg ZnVuY19ta2Rpcl9wICIkb3V0cHV0X29iamRpciIKKysKKysgICAgIyBEZXRlcm1pbmUgdGhlIHR5 cGUgb2Ygb3V0cHV0CisrICAgIGNhc2UgJG91dHB1dCBpbgorKyAgICAiIikKKysgICAgICBmdW5j X2ZhdGFsX2hlbHAgInlvdSBtdXN0IHNwZWNpZnkgYW4gb3V0cHV0IGZpbGUiCisrICAgICAgOzsK KysgICAgKi4kbGliZXh0KSBsaW5rbW9kZT1vbGRsaWIgOzsKKysgICAgKi5sbyB8ICouJG9iamV4 dCkgbGlua21vZGU9b2JqIDs7CisrICAgICoubGEpIGxpbmttb2RlPWxpYiA7OworKyAgICAqKSBs aW5rbW9kZT1wcm9nIDs7ICMgQW55dGhpbmcgZWxzZSBzaG91bGQgYmUgYSBwcm9ncmFtLgorKyAg ICBlc2FjCisrCisrICAgIHNwZWNpYWxkZXBsaWJzPQorKworKyAgICBsaWJzPQorKyAgICAjIEZp bmQgYWxsIGludGVyZGVwZW5kZW50IGRlcGxpYnMgYnkgc2VhcmNoaW5nIGZvciBsaWJyYXJpZXMK KysgICAgIyB0aGF0IGFyZSBsaW5rZWQgbW9yZSB0aGFuIG9uY2UgKGUuZy4gLWxhIC1sYiAtbGEp CisrICAgIGZvciBkZXBsaWIgaW4gJGRlcGxpYnM7IGRvCisrICAgICAgaWYgJG9wdF9kdXBsaWNh dGVfZGVwcyA7IHRoZW4KKysJY2FzZSAiJGxpYnMgIiBpbgorKwkqIiAkZGVwbGliICIqKSBzcGVj aWFsZGVwbGlicz0iJHNwZWNpYWxkZXBsaWJzICRkZXBsaWIiIDs7CisrCWVzYWMKKysgICAgICBm aQorKyAgICAgIGxpYnM9IiRsaWJzICRkZXBsaWIiCisrICAgIGRvbmUKKysKKysgICAgaWYgdGVz dCAiJGxpbmttb2RlIiA9IGxpYjsgdGhlbgorKyAgICAgIGxpYnM9IiRwcmVkZXBzICRsaWJzICRj b21waWxlcl9saWJfc2VhcmNoX3BhdGggJHBvc3RkZXBzIgorKworKyAgICAgICMgQ29tcHV0ZSBs aWJyYXJpZXMgdGhhdCBhcmUgbGlzdGVkIG1vcmUgdGhhbiBvbmNlIGluICRwcmVkZXBzCisrICAg ICAgIyAkcG9zdGRlcHMgYW5kIG1hcmsgdGhlbSBhcyBzcGVjaWFsIChpLmUuLCB3aG9zZSBkdXBs aWNhdGVzIGFyZQorKyAgICAgICMgbm90IHRvIGJlIGVsaW1pbmF0ZWQpLgorKyAgICAgIHByZV9w b3N0X2RlcHM9CisrICAgICAgaWYgJG9wdF9kdXBsaWNhdGVfY29tcGlsZXJfZ2VuZXJhdGVkX2Rl cHM7IHRoZW4KKysJZm9yIHByZV9wb3N0X2RlcCBpbiAkcHJlZGVwcyAkcG9zdGRlcHM7IGRvCisr CSAgY2FzZSAiJHByZV9wb3N0X2RlcHMgIiBpbgorKwkgICoiICRwcmVfcG9zdF9kZXAgIiopIHNw ZWNpYWxkZXBsaWJzPSIkc3BlY2lhbGRlcGxpYnMgJHByZV9wb3N0X2RlcHMiIDs7CisrCSAgZXNh YworKwkgIHByZV9wb3N0X2RlcHM9IiRwcmVfcG9zdF9kZXBzICRwcmVfcG9zdF9kZXAiCisrCWRv bmUKKysgICAgICBmaQorKyAgICAgIHByZV9wb3N0X2RlcHM9CisrICAgIGZpCisrCisrICAgIGRl cGxpYnM9CisrICAgIG5ld2RlcGVuZGVuY3lfbGlicz0KKysgICAgbmV3bGliX3NlYXJjaF9wYXRo PQorKyAgICBuZWVkX3JlbGluaz1ubyAjIHdoZXRoZXIgd2UncmUgbGlua2luZyBhbnkgdW5pbnN0 YWxsZWQgbGlidG9vbCBsaWJyYXJpZXMKKysgICAgbm90aW5zdF9kZXBsaWJzPSAjIG5vdC1pbnN0 YWxsZWQgbGlidG9vbCBsaWJyYXJpZXMKKysgICAgbm90aW5zdF9wYXRoPSAjIHBhdGhzIHRoYXQg Y29udGFpbiBub3QtaW5zdGFsbGVkIGxpYnRvb2wgbGlicmFyaWVzCisrCisrICAgIGNhc2UgJGxp bmttb2RlIGluCisrICAgIGxpYikKKysJcGFzc2VzPSJjb252IGRscHJlb3BlbiBsaW5rIgorKwlm b3IgZmlsZSBpbiAkZGxmaWxlcyAkZGxwcmVmaWxlczsgZG8KKysJICBjYXNlICRmaWxlIGluCisr CSAgKi5sYSkgOzsKKysJICAqKQorKwkgICAgZnVuY19mYXRhbF9oZWxwICJsaWJyYXJpZXMgY2Fu IFxgLWRsb3Blbicgb25seSBsaWJ0b29sIGxpYnJhcmllczogJGZpbGUiCisrCSAgICA7OworKwkg IGVzYWMKKysJZG9uZQorKwk7OworKyAgICBwcm9nKQorKwljb21waWxlX2RlcGxpYnM9CisrCWZp bmFsaXplX2RlcGxpYnM9CisrCWFsbGRlcGxpYnM9bm8KKysJbmV3ZGxmaWxlcz0KKysJbmV3ZGxw cmVmaWxlcz0KKysJcGFzc2VzPSJjb252IHNjYW4gZGxvcGVuIGRscHJlb3BlbiBsaW5rIgorKwk7 OworKyAgICAqKSAgcGFzc2VzPSJjb252IgorKwk7OworKyAgICBlc2FjCisrCisrICAgIGZvciBw YXNzIGluICRwYXNzZXM7IGRvCisrICAgICAgIyBUaGUgcHJlb3BlbiBwYXNzIGluIGxpYiBtb2Rl IHJldmVyc2VzICRkZXBsaWJzOyBwdXQgaXQgYmFjayBoZXJlCisrICAgICAgIyBzbyB0aGF0IC1M IGNvbWVzIGJlZm9yZSBsaWJzIHRoYXQgbmVlZCBpdCBmb3IgaW5zdGFuY2UuLi4KKysgICAgICBp ZiB0ZXN0ICIkbGlua21vZGUsJHBhc3MiID0gImxpYixsaW5rIjsgdGhlbgorKwkjIyBGSVhNRTog RmluZCB0aGUgcGxhY2Ugd2hlcmUgdGhlIGxpc3QgaXMgcmVidWlsdCBpbiB0aGUgd3JvbmcKKysJ IyMgICAgICAgIG9yZGVyLCBhbmQgZml4IGl0IHRoZXJlIHByb3Blcmx5CisrICAgICAgICB0bXBf ZGVwbGlicz0KKysJZm9yIGRlcGxpYiBpbiAkZGVwbGliczsgZG8KKysJICB0bXBfZGVwbGlicz0i JGRlcGxpYiAkdG1wX2RlcGxpYnMiCisrCWRvbmUKKysJZGVwbGlicz0iJHRtcF9kZXBsaWJzIgor KyAgICAgIGZpCisrCisrICAgICAgaWYgdGVzdCAiJGxpbmttb2RlLCRwYXNzIiA9ICJsaWIsbGlu ayIgfHwKKysJIHRlc3QgIiRsaW5rbW9kZSwkcGFzcyIgPSAicHJvZyxzY2FuIjsgdGhlbgorKwls aWJzPSIkZGVwbGlicyIKKysJZGVwbGlicz0KKysgICAgICBmaQorKyAgICAgIGlmIHRlc3QgIiRs aW5rbW9kZSIgPSBwcm9nOyB0aGVuCisrCWNhc2UgJHBhc3MgaW4KKysJZGxvcGVuKSBsaWJzPSIk ZGxmaWxlcyIgOzsKKysJZGxwcmVvcGVuKSBsaWJzPSIkZGxwcmVmaWxlcyIgOzsKKysJbGluaykg bGlicz0iJGRlcGxpYnMgJURFUExJQlMlICRkZXBlbmRlbmN5X2xpYnMiIDs7CisrCWVzYWMKKysg ICAgICBmaQorKyAgICAgIGlmIHRlc3QgIiRsaW5rbW9kZSwkcGFzcyIgPSAibGliLGRscHJlb3Bl biI7IHRoZW4KKysJIyBDb2xsZWN0IGFuZCBmb3J3YXJkIGRlcGxpYnMgb2YgcHJlb3BlbmVkIGxp YnRvb2wgbGlicworKwlmb3IgbGliIGluICRkbHByZWZpbGVzOyBkbworKwkgICMgSWdub3JlIG5v bi1saWJ0b29sLWxpYnMKKysJICBkZXBlbmRlbmN5X2xpYnM9CisrCSAgY2FzZSAkbGliIGluCisr CSAgKi5sYSkJZnVuY19zb3VyY2UgIiRsaWIiIDs7CisrCSAgZXNhYworKworKwkgICMgQ29sbGVj dCBwcmVvcGVuZWQgbGlidG9vbCBkZXBsaWJzLCBleGNlcHQgYW55IHRoaXMgbGlicmFyeQorKwkg ICMgaGFzIGRlY2xhcmVkIGFzIHdlYWsgbGlicworKwkgIGZvciBkZXBsaWIgaW4gJGRlcGVuZGVu Y3lfbGliczsgZG8KKysgICAgICAgICAgICBkZXBsaWJfYmFzZT1gJEVDSE8gIlgkZGVwbGliIiB8 ICRYc2VkIC1lICIkYmFzZW5hbWUiYAorKwkgICAgY2FzZSAiICR3ZWFrX2xpYnMgIiBpbgorKwkg ICAgKiIgJGRlcGxpYl9iYXNlICIqKSA7OworKwkgICAgKikgZGVwbGlicz0iJGRlcGxpYnMgJGRl cGxpYiIgOzsKKysJICAgIGVzYWMKKysJICBkb25lCisrCWRvbmUKKysJbGlicz0iJGRscHJlZmls ZXMiCisrICAgICAgZmkKKysgICAgICBpZiB0ZXN0ICIkcGFzcyIgPSBkbG9wZW47IHRoZW4KKysJ IyBDb2xsZWN0IGRscHJlb3BlbmVkIGxpYnJhcmllcworKwlzYXZlX2RlcGxpYnM9IiRkZXBsaWJz IgorKwlkZXBsaWJzPQorKyAgICAgIGZpCisrCisrICAgICAgZm9yIGRlcGxpYiBpbiAkbGliczsg ZG8KKysJbGliPQorKwlmb3VuZD1ubworKwljYXNlICRkZXBsaWIgaW4KKysJLW10fC1tdGhyZWFk c3wta3RocmVhZHwtS3RocmVhZHwtcHRocmVhZHwtcHRocmVhZHN8LS10aHJlYWQtc2FmZXwtdGhy ZWFkcykKKysJICBpZiB0ZXN0ICIkbGlua21vZGUsJHBhc3MiID0gInByb2csbGluayI7IHRoZW4K KysJICAgIGNvbXBpbGVfZGVwbGlicz0iJGRlcGxpYiAkY29tcGlsZV9kZXBsaWJzIgorKwkgICAg ZmluYWxpemVfZGVwbGlicz0iJGRlcGxpYiAkZmluYWxpemVfZGVwbGlicyIKKysJICBlbHNlCisr CSAgICBjb21waWxlcl9mbGFncz0iJGNvbXBpbGVyX2ZsYWdzICRkZXBsaWIiCisrCSAgICBpZiB0 ZXN0ICIkbGlua21vZGUiID0gbGliIDsgdGhlbgorKwkJY2FzZSAiJG5ld19pbmhlcml0ZWRfbGlu a2VyX2ZsYWdzICIgaW4KKysJCSAgICAqIiAkZGVwbGliICIqKSA7OworKwkJICAgICogKSBuZXdf aW5oZXJpdGVkX2xpbmtlcl9mbGFncz0iJG5ld19pbmhlcml0ZWRfbGlua2VyX2ZsYWdzICRkZXBs aWIiIDs7CisrCQllc2FjCisrCSAgICBmaQorKwkgIGZpCisrCSAgY29udGludWUKKysJICA7Owor KwktbCopCisrCSAgaWYgdGVzdCAiJGxpbmttb2RlIiAhPSBsaWIgJiYgdGVzdCAiJGxpbmttb2Rl IiAhPSBwcm9nOyB0aGVuCisrCSAgICBmdW5jX3dhcm5pbmcgIlxgLWwnIGlzIGlnbm9yZWQgZm9y IGFyY2hpdmVzL29iamVjdHMiCisrCSAgICBjb250aW51ZQorKwkgIGZpCisrCSAgZnVuY19zdHJp cG5hbWUgJy1sJyAnJyAiJGRlcGxpYiIKKysJICBuYW1lPSRmdW5jX3N0cmlwbmFtZV9yZXN1bHQK KysJICBpZiB0ZXN0ICIkbGlua21vZGUiID0gbGliOyB0aGVuCisrCSAgICBzZWFyY2hkaXJzPSIk bmV3bGliX3NlYXJjaF9wYXRoICRsaWJfc2VhcmNoX3BhdGggJGNvbXBpbGVyX2xpYl9zZWFyY2hf ZGlycyAkc3lzX2xpYl9zZWFyY2hfcGF0aCAkc2hsaWJfc2VhcmNoX3BhdGgiCisrCSAgZWxzZQor KwkgICAgc2VhcmNoZGlycz0iJG5ld2xpYl9zZWFyY2hfcGF0aCAkbGliX3NlYXJjaF9wYXRoICRz eXNfbGliX3NlYXJjaF9wYXRoICRzaGxpYl9zZWFyY2hfcGF0aCIKKysJICBmaQorKwkgIGZvciBz ZWFyY2hkaXIgaW4gJHNlYXJjaGRpcnM7IGRvCisrCSAgICBmb3Igc2VhcmNoX2V4dCBpbiAubGEg JHN0ZF9zaHJleHQgLnNvIC5hOyBkbworKwkgICAgICAjIFNlYXJjaCB0aGUgbGlidG9vbCBsaWJy YXJ5CisrCSAgICAgIGxpYj0iJHNlYXJjaGRpci9saWIke25hbWV9JHtzZWFyY2hfZXh0fSIKKysJ ICAgICAgaWYgdGVzdCAtZiAiJGxpYiI7IHRoZW4KKysJCWlmIHRlc3QgIiRzZWFyY2hfZXh0IiA9 ICIubGEiOyB0aGVuCisrCQkgIGZvdW5kPXllcworKwkJZWxzZQorKwkJICBmb3VuZD1ubworKwkJ ZmkKKysJCWJyZWFrIDIKKysJICAgICAgZmkKKysJICAgIGRvbmUKKysJICBkb25lCisrCSAgaWYg dGVzdCAiJGZvdW5kIiAhPSB5ZXM7IHRoZW4KKysJICAgICMgZGVwbGliIGRvZXNuJ3Qgc2VlbSB0 byBiZSBhIGxpYnRvb2wgbGlicmFyeQorKwkgICAgaWYgdGVzdCAiJGxpbmttb2RlLCRwYXNzIiA9 ICJwcm9nLGxpbmsiOyB0aGVuCisrCSAgICAgIGNvbXBpbGVfZGVwbGlicz0iJGRlcGxpYiAkY29t cGlsZV9kZXBsaWJzIgorKwkgICAgICBmaW5hbGl6ZV9kZXBsaWJzPSIkZGVwbGliICRmaW5hbGl6 ZV9kZXBsaWJzIgorKwkgICAgZWxzZQorKwkgICAgICBkZXBsaWJzPSIkZGVwbGliICRkZXBsaWJz IgorKwkgICAgICB0ZXN0ICIkbGlua21vZGUiID0gbGliICYmIG5ld2RlcGVuZGVuY3lfbGlicz0i JGRlcGxpYiAkbmV3ZGVwZW5kZW5jeV9saWJzIgorKwkgICAgZmkKKysJICAgIGNvbnRpbnVlCisr CSAgZWxzZSAjIGRlcGxpYiBpcyBhIGxpYnRvb2wgbGlicmFyeQorKwkgICAgIyBJZiAkYWxsb3df bGlidG9vbF9saWJzX3dpdGhfc3RhdGljX3J1bnRpbWVzICYmICRkZXBsaWIgaXMgYSBzdGRsaWIs CisrCSAgICAjIFdlIG5lZWQgdG8gZG8gc29tZSBzcGVjaWFsIHRoaW5ncyBoZXJlLCBhbmQgbm90 IGxhdGVyLgorKwkgICAgaWYgdGVzdCAiWCRhbGxvd19saWJ0b29sX2xpYnNfd2l0aF9zdGF0aWNf cnVudGltZXMiID0gIlh5ZXMiIDsgdGhlbgorKwkgICAgICBjYXNlICIgJHByZWRlcHMgJHBvc3Rk ZXBzICIgaW4KKysJICAgICAgKiIgJGRlcGxpYiAiKikKKysJCWlmIGZ1bmNfbGFsaWJfcCAiJGxp YiI7IHRoZW4KKysJCSAgbGlicmFyeV9uYW1lcz0KKysJCSAgb2xkX2xpYnJhcnk9CisrCQkgIGZ1 bmNfc291cmNlICIkbGliIgorKwkJICBmb3IgbCBpbiAkb2xkX2xpYnJhcnkgJGxpYnJhcnlfbmFt ZXM7IGRvCisrCQkgICAgbGw9IiRsIgorKwkJICBkb25lCisrCQkgIGlmIHRlc3QgIlgkbGwiID0g Ilgkb2xkX2xpYnJhcnkiIDsgdGhlbiAjIG9ubHkgc3RhdGljIHZlcnNpb24gYXZhaWxhYmxlCisr CQkgICAgZm91bmQ9bm8KKysJCSAgICBmdW5jX2Rpcm5hbWUgIiRsaWIiICIiICIuIgorKwkJICAg IGxhZGlyPSIkZnVuY19kaXJuYW1lX3Jlc3VsdCIKKysJCSAgICBsaWI9JGxhZGlyLyRvbGRfbGli cmFyeQorKwkJICAgIGlmIHRlc3QgIiRsaW5rbW9kZSwkcGFzcyIgPSAicHJvZyxsaW5rIjsgdGhl bgorKwkJICAgICAgY29tcGlsZV9kZXBsaWJzPSIkZGVwbGliICRjb21waWxlX2RlcGxpYnMiCisr CQkgICAgICBmaW5hbGl6ZV9kZXBsaWJzPSIkZGVwbGliICRmaW5hbGl6ZV9kZXBsaWJzIgorKwkJ ICAgIGVsc2UKKysJCSAgICAgIGRlcGxpYnM9IiRkZXBsaWIgJGRlcGxpYnMiCisrCQkgICAgICB0 ZXN0ICIkbGlua21vZGUiID0gbGliICYmIG5ld2RlcGVuZGVuY3lfbGlicz0iJGRlcGxpYiAkbmV3 ZGVwZW5kZW5jeV9saWJzIgorKwkJICAgIGZpCisrCQkgICAgY29udGludWUKKysJCSAgZmkKKysJ CWZpCisrCQk7OworKwkgICAgICAqKSA7OworKwkgICAgICBlc2FjCisrCSAgICBmaQorKwkgIGZp CisrCSAgOzsgIyAtbAorKwkqLmx0ZnJhbWV3b3JrKQorKwkgIGlmIHRlc3QgIiRsaW5rbW9kZSwk cGFzcyIgPSAicHJvZyxsaW5rIjsgdGhlbgorKwkgICAgY29tcGlsZV9kZXBsaWJzPSIkZGVwbGli ICRjb21waWxlX2RlcGxpYnMiCisrCSAgICBmaW5hbGl6ZV9kZXBsaWJzPSIkZGVwbGliICRmaW5h bGl6ZV9kZXBsaWJzIgorKwkgIGVsc2UKKysJICAgIGRlcGxpYnM9IiRkZXBsaWIgJGRlcGxpYnMi CisrCSAgICBpZiB0ZXN0ICIkbGlua21vZGUiID0gbGliIDsgdGhlbgorKwkJY2FzZSAiJG5ld19p bmhlcml0ZWRfbGlua2VyX2ZsYWdzICIgaW4KKysJCSAgICAqIiAkZGVwbGliICIqKSA7OworKwkJ ICAgICogKSBuZXdfaW5oZXJpdGVkX2xpbmtlcl9mbGFncz0iJG5ld19pbmhlcml0ZWRfbGlua2Vy X2ZsYWdzICRkZXBsaWIiIDs7CisrCQllc2FjCisrCSAgICBmaQorKwkgIGZpCisrCSAgY29udGlu dWUKKysJICA7OworKwktTCopCisrCSAgY2FzZSAkbGlua21vZGUgaW4KKysJICBsaWIpCisrCSAg ICBkZXBsaWJzPSIkZGVwbGliICRkZXBsaWJzIgorKwkgICAgdGVzdCAiJHBhc3MiID0gY29udiAm JiBjb250aW51ZQorKwkgICAgbmV3ZGVwZW5kZW5jeV9saWJzPSIkZGVwbGliICRuZXdkZXBlbmRl bmN5X2xpYnMiCisrCSAgICBmdW5jX3N0cmlwbmFtZSAnLUwnICcnICIkZGVwbGliIgorKwkgICAg bmV3bGliX3NlYXJjaF9wYXRoPSIkbmV3bGliX3NlYXJjaF9wYXRoICRmdW5jX3N0cmlwbmFtZV9y ZXN1bHQiCisrCSAgICA7OworKwkgIHByb2cpCisrCSAgICBpZiB0ZXN0ICIkcGFzcyIgPSBjb252 OyB0aGVuCisrCSAgICAgIGRlcGxpYnM9IiRkZXBsaWIgJGRlcGxpYnMiCisrCSAgICAgIGNvbnRp bnVlCisrCSAgICBmaQorKwkgICAgaWYgdGVzdCAiJHBhc3MiID0gc2NhbjsgdGhlbgorKwkgICAg ICBkZXBsaWJzPSIkZGVwbGliICRkZXBsaWJzIgorKwkgICAgZWxzZQorKwkgICAgICBjb21waWxl X2RlcGxpYnM9IiRkZXBsaWIgJGNvbXBpbGVfZGVwbGlicyIKKysJICAgICAgZmluYWxpemVfZGVw bGlicz0iJGRlcGxpYiAkZmluYWxpemVfZGVwbGlicyIKKysJICAgIGZpCisrCSAgICBmdW5jX3N0 cmlwbmFtZSAnLUwnICcnICIkZGVwbGliIgorKwkgICAgbmV3bGliX3NlYXJjaF9wYXRoPSIkbmV3 bGliX3NlYXJjaF9wYXRoICRmdW5jX3N0cmlwbmFtZV9yZXN1bHQiCisrCSAgICA7OworKwkgICop CisrCSAgICBmdW5jX3dhcm5pbmcgIlxgLUwnIGlzIGlnbm9yZWQgZm9yIGFyY2hpdmVzL29iamVj dHMiCisrCSAgICA7OworKwkgIGVzYWMgIyBsaW5rbW9kZQorKwkgIGNvbnRpbnVlCisrCSAgOzsg IyAtTAorKwktUiopCisrCSAgaWYgdGVzdCAiJHBhc3MiID0gbGluazsgdGhlbgorKwkgICAgZnVu Y19zdHJpcG5hbWUgJy1SJyAnJyAiJGRlcGxpYiIKKysJICAgIGRpcj0kZnVuY19zdHJpcG5hbWVf cmVzdWx0CisrCSAgICAjIE1ha2Ugc3VyZSB0aGUgeHJwYXRoIGNvbnRhaW5zIG9ubHkgdW5pcXVl IGRpcmVjdG9yaWVzLgorKwkgICAgY2FzZSAiJHhycGF0aCAiIGluCisrCSAgICAqIiAkZGlyICIq KSA7OworKwkgICAgKikgeHJwYXRoPSIkeHJwYXRoICRkaXIiIDs7CisrCSAgICBlc2FjCisrCSAg ZmkKKysJICBkZXBsaWJzPSIkZGVwbGliICRkZXBsaWJzIgorKwkgIGNvbnRpbnVlCisrCSAgOzsK KysJKi5sYSkgbGliPSIkZGVwbGliIiA7OworKwkqLiRsaWJleHQpCisrCSAgaWYgdGVzdCAiJHBh c3MiID0gY29udjsgdGhlbgorKwkgICAgZGVwbGlicz0iJGRlcGxpYiAkZGVwbGlicyIKKysJICAg IGNvbnRpbnVlCisrCSAgZmkKKysJICBjYXNlICRsaW5rbW9kZSBpbgorKwkgIGxpYikKKysJICAg ICMgTGlua2luZyBjb252ZW5pZW5jZSBtb2R1bGVzIGludG8gc2hhcmVkIGxpYnJhcmllcyBpcyBh bGxvd2VkLAorKwkgICAgIyBidXQgbGlua2luZyBvdGhlciBzdGF0aWMgbGlicmFyaWVzIGlzIG5v bi1wb3J0YWJsZS4KKysJICAgIGNhc2UgIiAkZGxwcmVjb252ZW5pZW5jZWxpYnMgIiBpbgorKwkg ICAgKiIgJGRlcGxpYiAiKikgOzsKKysJICAgICopCisrCSAgICAgIHZhbGlkX2FfbGliPW5vCisr CSAgICAgIGNhc2UgJGRlcGxpYnNfY2hlY2tfbWV0aG9kIGluCisrCQltYXRjaF9wYXR0ZXJuKikK KysJCSAgc2V0IGR1bW15ICRkZXBsaWJzX2NoZWNrX21ldGhvZDsgc2hpZnQKKysJCSAgbWF0Y2hf cGF0dGVybl9yZWdleD1gZXhwciAiJGRlcGxpYnNfY2hlY2tfbWV0aG9kIiA6ICIkMSBcKC4qXCki YAorKwkJICBpZiBldmFsICJcJEVDSE8gXCJYJGRlcGxpYlwiIiAyPi9kZXYvbnVsbCB8ICRYc2Vk IC1lIDEwcSBcCisrCQkgICAgfCAkRUdSRVAgIiRtYXRjaF9wYXR0ZXJuX3JlZ2V4IiA+IC9kZXYv bnVsbDsgdGhlbgorKwkJICAgIHZhbGlkX2FfbGliPXllcworKwkJICBmaQorKwkJOzsKKysJCXBh c3NfYWxsKQorKwkJICB2YWxpZF9hX2xpYj15ZXMKKysJCTs7CisrCSAgICAgIGVzYWMKKysJICAg ICAgaWYgdGVzdCAiJHZhbGlkX2FfbGliIiAhPSB5ZXM7IHRoZW4KKysJCSRFQ0hPCisrCQkkRUNI TyAiKioqIFdhcm5pbmc6IFRyeWluZyB0byBsaW5rIHdpdGggc3RhdGljIGxpYiBhcmNoaXZlICRk ZXBsaWIuIgorKwkJJEVDSE8gIioqKiBJIGhhdmUgdGhlIGNhcGFiaWxpdHkgdG8gbWFrZSB0aGF0 IGxpYnJhcnkgYXV0b21hdGljYWxseSBsaW5rIGluIHdoZW4iCisrCQkkRUNITyAiKioqIHlvdSBs aW5rIHRvIHRoaXMgbGlicmFyeS4gIEJ1dCBJIGNhbiBvbmx5IGRvIHRoaXMgaWYgeW91IGhhdmUg YSIKKysJCSRFQ0hPICIqKiogc2hhcmVkIHZlcnNpb24gb2YgdGhlIGxpYnJhcnksIHdoaWNoIHlv dSBkbyBub3QgYXBwZWFyIHRvIGhhdmUiCisrCQkkRUNITyAiKioqIGJlY2F1c2UgdGhlIGZpbGUg ZXh0ZW5zaW9ucyAuJGxpYmV4dCBvZiB0aGlzIGFyZ3VtZW50IG1ha2VzIG1lIGJlbGlldmUiCisr CQkkRUNITyAiKioqIHRoYXQgaXQgaXMganVzdCBhIHN0YXRpYyBhcmNoaXZlIHRoYXQgSSBzaG91 bGQgbm90IHVzZSBoZXJlLiIKKysJICAgICAgZWxzZQorKwkJJEVDSE8KKysJCSRFQ0hPICIqKiog V2FybmluZzogTGlua2luZyB0aGUgc2hhcmVkIGxpYnJhcnkgJG91dHB1dCBhZ2FpbnN0IHRoZSIK KysJCSRFQ0hPICIqKiogc3RhdGljIGxpYnJhcnkgJGRlcGxpYiBpcyBub3QgcG9ydGFibGUhIgor KwkJZGVwbGlicz0iJGRlcGxpYiAkZGVwbGlicyIKKysJICAgICAgZmkKKysJICAgICAgOzsKKysJ ICAgIGVzYWMKKysJICAgIGNvbnRpbnVlCisrCSAgICA7OworKwkgIHByb2cpCisrCSAgICBpZiB0 ZXN0ICIkcGFzcyIgIT0gbGluazsgdGhlbgorKwkgICAgICBkZXBsaWJzPSIkZGVwbGliICRkZXBs aWJzIgorKwkgICAgZWxzZQorKwkgICAgICBjb21waWxlX2RlcGxpYnM9IiRkZXBsaWIgJGNvbXBp bGVfZGVwbGlicyIKKysJICAgICAgZmluYWxpemVfZGVwbGlicz0iJGRlcGxpYiAkZmluYWxpemVf ZGVwbGlicyIKKysJICAgIGZpCisrCSAgICBjb250aW51ZQorKwkgICAgOzsKKysJICBlc2FjICMg bGlua21vZGUKKysJICA7OyAjICouJGxpYmV4dAorKwkqLmxvIHwgKi4kb2JqZXh0KQorKwkgIGlm IHRlc3QgIiRwYXNzIiA9IGNvbnY7IHRoZW4KKysJICAgIGRlcGxpYnM9IiRkZXBsaWIgJGRlcGxp YnMiCisrCSAgZWxpZiB0ZXN0ICIkbGlua21vZGUiID0gcHJvZzsgdGhlbgorKwkgICAgaWYgdGVz dCAiJHBhc3MiID0gZGxwcmVvcGVuIHx8IHRlc3QgIiRkbG9wZW5fc3VwcG9ydCIgIT0geWVzIHx8 IHRlc3QgIiRidWlsZF9saWJ0b29sX2xpYnMiID0gbm87IHRoZW4KKysJICAgICAgIyBJZiB0aGVy ZSBpcyBubyBkbG9wZW4gc3VwcG9ydCBvciB3ZSdyZSBsaW5raW5nIHN0YXRpY2FsbHksCisrCSAg ICAgICMgd2UgbmVlZCB0byBwcmVsb2FkLgorKwkgICAgICBuZXdkbHByZWZpbGVzPSIkbmV3ZGxw cmVmaWxlcyAkZGVwbGliIgorKwkgICAgICBjb21waWxlX2RlcGxpYnM9IiRkZXBsaWIgJGNvbXBp bGVfZGVwbGlicyIKKysJICAgICAgZmluYWxpemVfZGVwbGlicz0iJGRlcGxpYiAkZmluYWxpemVf ZGVwbGlicyIKKysJICAgIGVsc2UKKysJICAgICAgbmV3ZGxmaWxlcz0iJG5ld2RsZmlsZXMgJGRl cGxpYiIKKysJICAgIGZpCisrCSAgZmkKKysJICBjb250aW51ZQorKwkgIDs7CisrCSVERVBMSUJT JSkKKysJICBhbGxkZXBsaWJzPXllcworKwkgIGNvbnRpbnVlCisrCSAgOzsKKysJZXNhYyAjIGNh c2UgJGRlcGxpYgorKworKwlpZiB0ZXN0ICIkZm91bmQiID0geWVzIHx8IHRlc3QgLWYgIiRsaWIi OyB0aGVuIDoKKysJZWxzZQorKwkgIGZ1bmNfZmF0YWxfZXJyb3IgImNhbm5vdCBmaW5kIHRoZSBs aWJyYXJ5IFxgJGxpYicgb3IgdW5oYW5kbGVkIGFyZ3VtZW50IFxgJGRlcGxpYiciCisrCWZpCisr CisrCSMgQ2hlY2sgdG8gc2VlIHRoYXQgdGhpcyByZWFsbHkgaXMgYSBsaWJ0b29sIGFyY2hpdmUu CisrCWZ1bmNfbGFsaWJfdW5zYWZlX3AgIiRsaWIiIFwKKysJICB8fCBmdW5jX2ZhdGFsX2Vycm9y ICJcYCRsaWInIGlzIG5vdCBhIHZhbGlkIGxpYnRvb2wgYXJjaGl2ZSIKKysKKysJZnVuY19kaXJu YW1lICIkbGliIiAiIiAiLiIKKysJbGFkaXI9IiRmdW5jX2Rpcm5hbWVfcmVzdWx0IgorKworKwlk bG5hbWU9CisrCWRsb3Blbj0KKysJZGxwcmVvcGVuPQorKwlsaWJkaXI9CisrCWxpYnJhcnlfbmFt ZXM9CisrCW9sZF9saWJyYXJ5PQorKwlpbmhlcml0ZWRfbGlua2VyX2ZsYWdzPQorKwkjIElmIHRo ZSBsaWJyYXJ5IHdhcyBpbnN0YWxsZWQgd2l0aCBhbiBvbGQgcmVsZWFzZSBvZiBsaWJ0b29sLAor KwkjIGl0IHdpbGwgbm90IHJlZGVmaW5lIHZhcmlhYmxlcyBpbnN0YWxsZWQsIG9yIHNob3VsZG5v dGxpbmsKKysJaW5zdGFsbGVkPXllcworKwlzaG91bGRub3RsaW5rPW5vCisrCWF2b2lkdGVtcHJw YXRoPQorKworKworKwkjIFJlYWQgdGhlIC5sYSBmaWxlCisrCWZ1bmNfc291cmNlICIkbGliIgor KworKwkjIENvbnZlcnQgIi1mcmFtZXdvcmsgZm9vIiB0byAiZm9vLmx0ZnJhbWV3b3JrIgorKwlp ZiB0ZXN0IC1uICIkaW5oZXJpdGVkX2xpbmtlcl9mbGFncyI7IHRoZW4KKysJICB0bXBfaW5oZXJp dGVkX2xpbmtlcl9mbGFncz1gJEVDSE8gIlgkaW5oZXJpdGVkX2xpbmtlcl9mbGFncyIgfCAkWHNl ZCAtZSAncy8tZnJhbWV3b3JrIFwoW14gJF0qXCkvXDEubHRmcmFtZXdvcmsvZydgCisrCSAgZm9y IHRtcF9pbmhlcml0ZWRfbGlua2VyX2ZsYWcgaW4gJHRtcF9pbmhlcml0ZWRfbGlua2VyX2ZsYWdz OyBkbworKwkgICAgY2FzZSAiICRuZXdfaW5oZXJpdGVkX2xpbmtlcl9mbGFncyAiIGluCisrCSAg ICAgICoiICR0bXBfaW5oZXJpdGVkX2xpbmtlcl9mbGFnICIqKSA7OworKwkgICAgICAqKSBuZXdf aW5oZXJpdGVkX2xpbmtlcl9mbGFncz0iJG5ld19pbmhlcml0ZWRfbGlua2VyX2ZsYWdzICR0bXBf aW5oZXJpdGVkX2xpbmtlcl9mbGFnIjs7CisrCSAgICBlc2FjCisrCSAgZG9uZQorKwlmaQorKwlk ZXBlbmRlbmN5X2xpYnM9YCRFQ0hPICJYICRkZXBlbmRlbmN5X2xpYnMiIHwgJFhzZWQgLWUgJ3Ml IFwoW14gJF0qXCkubHRmcmFtZXdvcmslIC1mcmFtZXdvcmsgXDElZydgCisrCWlmIHRlc3QgIiRs aW5rbW9kZSwkcGFzcyIgPSAibGliLGxpbmsiIHx8CisrCSAgIHRlc3QgIiRsaW5rbW9kZSwkcGFz cyIgPSAicHJvZyxzY2FuIiB8fAorKwkgICB7IHRlc3QgIiRsaW5rbW9kZSIgIT0gcHJvZyAmJiB0 ZXN0ICIkbGlua21vZGUiICE9IGxpYjsgfTsgdGhlbgorKwkgIHRlc3QgLW4gIiRkbG9wZW4iICYm IGRsZmlsZXM9IiRkbGZpbGVzICRkbG9wZW4iCisrCSAgdGVzdCAtbiAiJGRscHJlb3BlbiIgJiYg ZGxwcmVmaWxlcz0iJGRscHJlZmlsZXMgJGRscHJlb3BlbiIKKysJZmkKKysKKysJaWYgdGVzdCAi JHBhc3MiID0gY29udjsgdGhlbgorKwkgICMgT25seSBjaGVjayBmb3IgY29udmVuaWVuY2UgbGli cmFyaWVzCisrCSAgZGVwbGlicz0iJGxpYiAkZGVwbGlicyIKKysJICBpZiB0ZXN0IC16ICIkbGli ZGlyIjsgdGhlbgorKwkgICAgaWYgdGVzdCAteiAiJG9sZF9saWJyYXJ5IjsgdGhlbgorKwkgICAg ICBmdW5jX2ZhdGFsX2Vycm9yICJjYW5ub3QgZmluZCBuYW1lIG9mIGxpbmsgbGlicmFyeSBmb3Ig XGAkbGliJyIKKysJICAgIGZpCisrCSAgICAjIEl0IGlzIGEgbGlidG9vbCBjb252ZW5pZW5jZSBs aWJyYXJ5LCBzbyBhZGQgaW4gaXRzIG9iamVjdHMuCisrCSAgICBjb252ZW5pZW5jZT0iJGNvbnZl bmllbmNlICRsYWRpci8kb2JqZGlyLyRvbGRfbGlicmFyeSIKKysJICAgIG9sZF9jb252ZW5pZW5j ZT0iJG9sZF9jb252ZW5pZW5jZSAkbGFkaXIvJG9iamRpci8kb2xkX2xpYnJhcnkiCisrCSAgZWxp ZiB0ZXN0ICIkbGlua21vZGUiICE9IHByb2cgJiYgdGVzdCAiJGxpbmttb2RlIiAhPSBsaWI7IHRo ZW4KKysJICAgIGZ1bmNfZmF0YWxfZXJyb3IgIlxgJGxpYicgaXMgbm90IGEgY29udmVuaWVuY2Ug bGlicmFyeSIKKysJICBmaQorKwkgIHRtcF9saWJzPQorKwkgIGZvciBkZXBsaWIgaW4gJGRlcGVu ZGVuY3lfbGliczsgZG8KKysJICAgIGRlcGxpYnM9IiRkZXBsaWIgJGRlcGxpYnMiCisrCSAgICBp ZiAkb3B0X2R1cGxpY2F0ZV9kZXBzIDsgdGhlbgorKwkgICAgICBjYXNlICIkdG1wX2xpYnMgIiBp bgorKwkgICAgICAqIiAkZGVwbGliICIqKSBzcGVjaWFsZGVwbGlicz0iJHNwZWNpYWxkZXBsaWJz ICRkZXBsaWIiIDs7CisrCSAgICAgIGVzYWMKKysJICAgIGZpCisrCSAgICB0bXBfbGlicz0iJHRt cF9saWJzICRkZXBsaWIiCisrCSAgZG9uZQorKwkgIGNvbnRpbnVlCisrCWZpICMgJHBhc3MgPSBj b252CisrCisrCisrCSMgR2V0IHRoZSBuYW1lIG9mIHRoZSBsaWJyYXJ5IHdlIGxpbmsgYWdhaW5z dC4KKysJbGlua2xpYj0KKysJZm9yIGwgaW4gJG9sZF9saWJyYXJ5ICRsaWJyYXJ5X25hbWVzOyBk bworKwkgIGxpbmtsaWI9IiRsIgorKwlkb25lCisrCWlmIHRlc3QgLXogIiRsaW5rbGliIjsgdGhl bgorKwkgIGZ1bmNfZmF0YWxfZXJyb3IgImNhbm5vdCBmaW5kIG5hbWUgb2YgbGluayBsaWJyYXJ5 IGZvciBcYCRsaWInIgorKwlmaQorKworKwkjIFRoaXMgbGlicmFyeSB3YXMgc3BlY2lmaWVkIHdp dGggLWRsb3Blbi4KKysJaWYgdGVzdCAiJHBhc3MiID0gZGxvcGVuOyB0aGVuCisrCSAgaWYgdGVz dCAteiAiJGxpYmRpciI7IHRoZW4KKysJICAgIGZ1bmNfZmF0YWxfZXJyb3IgImNhbm5vdCAtZGxv cGVuIGEgY29udmVuaWVuY2UgbGlicmFyeTogXGAkbGliJyIKKysJICBmaQorKwkgIGlmIHRlc3Qg LXogIiRkbG5hbWUiIHx8CisrCSAgICAgdGVzdCAiJGRsb3Blbl9zdXBwb3J0IiAhPSB5ZXMgfHwK KysJICAgICB0ZXN0ICIkYnVpbGRfbGlidG9vbF9saWJzIiA9IG5vOyB0aGVuCisrCSAgICAjIElm IHRoZXJlIGlzIG5vIGRsbmFtZSwgbm8gZGxvcGVuIHN1cHBvcnQgb3Igd2UncmUgbGlua2luZwor KwkgICAgIyBzdGF0aWNhbGx5LCB3ZSBuZWVkIHRvIHByZWxvYWQuICBXZSBhbHNvIG5lZWQgdG8g cHJlbG9hZCBhbnkKKysJICAgICMgZGVwZW5kZW50IGxpYnJhcmllcyBzbyBsaWJsdGRsJ3MgZGVw bGliIHByZWxvYWRlciBkb2Vzbid0CisrCSAgICAjIGJvbWIgb3V0IGluIHRoZSBsb2FkIGRlcGxp YnMgcGhhc2UuCisrCSAgICBkbHByZWZpbGVzPSIkZGxwcmVmaWxlcyAkbGliICRkZXBlbmRlbmN5 X2xpYnMiCisrCSAgZWxzZQorKwkgICAgbmV3ZGxmaWxlcz0iJG5ld2RsZmlsZXMgJGxpYiIKKysJ ICBmaQorKwkgIGNvbnRpbnVlCisrCWZpICMgJHBhc3MgPSBkbG9wZW4KKysKKysJIyBXZSBuZWVk IGFuIGFic29sdXRlIHBhdGguCisrCWNhc2UgJGxhZGlyIGluCisrCVtcXC9dKiB8IFtBLVphLXpd OltcXC9dKikgYWJzX2xhZGlyPSIkbGFkaXIiIDs7CisrCSopCisrCSAgYWJzX2xhZGlyPWBjZCAi JGxhZGlyIiAmJiBwd2RgCisrCSAgaWYgdGVzdCAteiAiJGFic19sYWRpciI7IHRoZW4KKysJICAg IGZ1bmNfd2FybmluZyAiY2Fubm90IGRldGVybWluZSBhYnNvbHV0ZSBkaXJlY3RvcnkgbmFtZSBv ZiBcYCRsYWRpciciCisrCSAgICBmdW5jX3dhcm5pbmcgInBhc3NpbmcgaXQgbGl0ZXJhbGx5IHRv IHRoZSBsaW5rZXIsIGFsdGhvdWdoIGl0IG1pZ2h0IGZhaWwiCisrCSAgICBhYnNfbGFkaXI9IiRs YWRpciIKKysJICBmaQorKwkgIDs7CisrCWVzYWMKKysJZnVuY19iYXNlbmFtZSAiJGxpYiIKKysJ bGFuYW1lPSIkZnVuY19iYXNlbmFtZV9yZXN1bHQiCisrCisrCSMgRmluZCB0aGUgcmVsZXZhbnQg b2JqZWN0IGRpcmVjdG9yeSBhbmQgbGlicmFyeSBuYW1lLgorKwlpZiB0ZXN0ICJYJGluc3RhbGxl ZCIgPSBYeWVzOyB0aGVuCisrCSAgaWYgdGVzdCAhIC1mICIkbGliZGlyLyRsaW5rbGliIiAmJiB0 ZXN0IC1mICIkYWJzX2xhZGlyLyRsaW5rbGliIjsgdGhlbgorKwkgICAgZnVuY193YXJuaW5nICJs aWJyYXJ5IFxgJGxpYicgd2FzIG1vdmVkLiIKKysJICAgIGRpcj0iJGxhZGlyIgorKwkgICAgYWJz ZGlyPSIkYWJzX2xhZGlyIgorKwkgICAgbGliZGlyPSIkYWJzX2xhZGlyIgorKwkgIGVsc2UKKysJ ICAgIGRpcj0iJGxpYmRpciIKKysJICAgIGFic2Rpcj0iJGxpYmRpciIKKysJICBmaQorKwkgIHRl c3QgIlgkaGFyZGNvZGVfYXV0b21hdGljIiA9IFh5ZXMgJiYgYXZvaWR0ZW1wcnBhdGg9eWVzCisr CWVsc2UKKysJICBpZiB0ZXN0ICEgLWYgIiRsYWRpci8kb2JqZGlyLyRsaW5rbGliIiAmJiB0ZXN0 IC1mICIkYWJzX2xhZGlyLyRsaW5rbGliIjsgdGhlbgorKwkgICAgZGlyPSIkbGFkaXIiCisrCSAg ICBhYnNkaXI9IiRhYnNfbGFkaXIiCisrCSAgICAjIFJlbW92ZSB0aGlzIHNlYXJjaCBwYXRoIGxh dGVyCisrCSAgICBub3RpbnN0X3BhdGg9IiRub3RpbnN0X3BhdGggJGFic19sYWRpciIKKysJICBl bHNlCisrCSAgICBkaXI9IiRsYWRpci8kb2JqZGlyIgorKwkgICAgYWJzZGlyPSIkYWJzX2xhZGly LyRvYmpkaXIiCisrCSAgICAjIFJlbW92ZSB0aGlzIHNlYXJjaCBwYXRoIGxhdGVyCisrCSAgICBu b3RpbnN0X3BhdGg9IiRub3RpbnN0X3BhdGggJGFic19sYWRpciIKKysJICBmaQorKwlmaSAjICRp bnN0YWxsZWQgPSB5ZXMKKysJZnVuY19zdHJpcG5hbWUgJ2xpYicgJy5sYScgIiRsYW5hbWUiCisr CW5hbWU9JGZ1bmNfc3RyaXBuYW1lX3Jlc3VsdAorKworKwkjIFRoaXMgbGlicmFyeSB3YXMgc3Bl Y2lmaWVkIHdpdGggLWRscHJlb3Blbi4KKysJaWYgdGVzdCAiJHBhc3MiID0gZGxwcmVvcGVuOyB0 aGVuCisrCSAgaWYgdGVzdCAteiAiJGxpYmRpciIgJiYgdGVzdCAiJGxpbmttb2RlIiA9IHByb2c7 IHRoZW4KKysJICAgIGZ1bmNfZmF0YWxfZXJyb3IgIm9ubHkgbGlicmFyaWVzIG1heSAtZGxwcmVv cGVuIGEgY29udmVuaWVuY2UgbGlicmFyeTogXGAkbGliJyIKKysJICBmaQorKwkgICMgUHJlZmVy IHVzaW5nIGEgc3RhdGljIGxpYnJhcnkgKHNvIHRoYXQgbm8gc2lsbHkgX0RZTkFNSUMgc3ltYm9s cworKwkgICMgYXJlIHJlcXVpcmVkIHRvIGxpbmspLgorKwkgIGlmIHRlc3QgLW4gIiRvbGRfbGli cmFyeSI7IHRoZW4KKysJICAgIG5ld2RscHJlZmlsZXM9IiRuZXdkbHByZWZpbGVzICRkaXIvJG9s ZF9saWJyYXJ5IgorKwkgICAgIyBLZWVwIGEgbGlzdCBvZiBwcmVvcGVuZWQgY29udmVuaWVuY2Ug bGlicmFyaWVzIHRvIGNoZWNrCisrCSAgICAjIHRoYXQgdGhleSBhcmUgYmVpbmcgdXNlZCBjb3Jy ZWN0bHkgaW4gdGhlIGxpbmsgcGFzcy4KKysJICAgIHRlc3QgLXogIiRsaWJkaXIiICYmIFwKKysJ CWRscHJlY29udmVuaWVuY2VsaWJzPSIkZGxwcmVjb252ZW5pZW5jZWxpYnMgJGRpci8kb2xkX2xp YnJhcnkiCisrCSAgIyBPdGhlcndpc2UsIHVzZSB0aGUgZGxuYW1lLCBzbyB0aGF0IGx0X2Rsb3Bl biBmaW5kcyBpdC4KKysJICBlbGlmIHRlc3QgLW4gIiRkbG5hbWUiOyB0aGVuCisrCSAgICBuZXdk bHByZWZpbGVzPSIkbmV3ZGxwcmVmaWxlcyAkZGlyLyRkbG5hbWUiCisrCSAgZWxzZQorKwkgICAg bmV3ZGxwcmVmaWxlcz0iJG5ld2RscHJlZmlsZXMgJGRpci8kbGlua2xpYiIKKysJICBmaQorKwlm aSAjICRwYXNzID0gZGxwcmVvcGVuCisrCisrCWlmIHRlc3QgLXogIiRsaWJkaXIiOyB0aGVuCisr CSAgIyBMaW5rIHRoZSBjb252ZW5pZW5jZSBsaWJyYXJ5CisrCSAgaWYgdGVzdCAiJGxpbmttb2Rl IiA9IGxpYjsgdGhlbgorKwkgICAgZGVwbGlicz0iJGRpci8kb2xkX2xpYnJhcnkgJGRlcGxpYnMi CisrCSAgZWxpZiB0ZXN0ICIkbGlua21vZGUsJHBhc3MiID0gInByb2csbGluayI7IHRoZW4KKysJ ICAgIGNvbXBpbGVfZGVwbGlicz0iJGRpci8kb2xkX2xpYnJhcnkgJGNvbXBpbGVfZGVwbGlicyIK KysJICAgIGZpbmFsaXplX2RlcGxpYnM9IiRkaXIvJG9sZF9saWJyYXJ5ICRmaW5hbGl6ZV9kZXBs aWJzIgorKwkgIGVsc2UKKysJICAgIGRlcGxpYnM9IiRsaWIgJGRlcGxpYnMiICMgdXNlZCBmb3Ig cHJvZyxzY2FuIHBhc3MKKysJICBmaQorKwkgIGNvbnRpbnVlCisrCWZpCisrCisrCisrCWlmIHRl c3QgIiRsaW5rbW9kZSIgPSBwcm9nICYmIHRlc3QgIiRwYXNzIiAhPSBsaW5rOyB0aGVuCisrCSAg bmV3bGliX3NlYXJjaF9wYXRoPSIkbmV3bGliX3NlYXJjaF9wYXRoICRsYWRpciIKKysJICBkZXBs aWJzPSIkbGliICRkZXBsaWJzIgorKworKwkgIGxpbmthbGxkZXBsaWJzPW5vCisrCSAgaWYgdGVz dCAiJGxpbmtfYWxsX2RlcGxpYnMiICE9IG5vIHx8IHRlc3QgLXogIiRsaWJyYXJ5X25hbWVzIiB8 fAorKwkgICAgIHRlc3QgIiRidWlsZF9saWJ0b29sX2xpYnMiID0gbm87IHRoZW4KKysJICAgIGxp bmthbGxkZXBsaWJzPXllcworKwkgIGZpCisrCisrCSAgdG1wX2xpYnM9CisrCSAgZm9yIGRlcGxp YiBpbiAkZGVwZW5kZW5jeV9saWJzOyBkbworKwkgICAgY2FzZSAkZGVwbGliIGluCisrCSAgICAt TCopIGZ1bmNfc3RyaXBuYW1lICctTCcgJycgIiRkZXBsaWIiCisrCSAgICAgICAgIG5ld2xpYl9z ZWFyY2hfcGF0aD0iJG5ld2xpYl9zZWFyY2hfcGF0aCAkZnVuY19zdHJpcG5hbWVfcmVzdWx0Igor KwkJIDs7CisrCSAgICBlc2FjCisrCSAgICAjIE5lZWQgdG8gbGluayBhZ2FpbnN0IGFsbCBkZXBl bmRlbmN5X2xpYnM/CisrCSAgICBpZiB0ZXN0ICIkbGlua2FsbGRlcGxpYnMiID0geWVzOyB0aGVu CisrCSAgICAgIGRlcGxpYnM9IiRkZXBsaWIgJGRlcGxpYnMiCisrCSAgICBlbHNlCisrCSAgICAg ICMgTmVlZCB0byBoYXJkY29kZSBzaGFyZWQgbGlicmFyeSBwYXRocworKwkgICAgICAjIG9yL2Fu ZCBsaW5rIGFnYWluc3Qgc3RhdGljIGxpYnJhcmllcworKwkgICAgICBuZXdkZXBlbmRlbmN5X2xp YnM9IiRkZXBsaWIgJG5ld2RlcGVuZGVuY3lfbGlicyIKKysJICAgIGZpCisrCSAgICBpZiAkb3B0 X2R1cGxpY2F0ZV9kZXBzIDsgdGhlbgorKwkgICAgICBjYXNlICIkdG1wX2xpYnMgIiBpbgorKwkg ICAgICAqIiAkZGVwbGliICIqKSBzcGVjaWFsZGVwbGlicz0iJHNwZWNpYWxkZXBsaWJzICRkZXBs aWIiIDs7CisrCSAgICAgIGVzYWMKKysJICAgIGZpCisrCSAgICB0bXBfbGlicz0iJHRtcF9saWJz ICRkZXBsaWIiCisrCSAgZG9uZSAjIGZvciBkZXBsaWIKKysJICBjb250aW51ZQorKwlmaSAjICRs aW5rbW9kZSA9IHByb2cuLi4KKysKKysJaWYgdGVzdCAiJGxpbmttb2RlLCRwYXNzIiA9ICJwcm9n LGxpbmsiOyB0aGVuCisrCSAgaWYgdGVzdCAtbiAiJGxpYnJhcnlfbmFtZXMiICYmCisrCSAgICAg eyB7IHRlc3QgIiRwcmVmZXJfc3RhdGljX2xpYnMiID0gbm8gfHwKKysJICAgICAgICAgdGVzdCAi JHByZWZlcl9zdGF0aWNfbGlicywkaW5zdGFsbGVkIiA9ICJidWlsdCx5ZXMiOyB9IHx8CisrCSAg ICAgICB0ZXN0IC16ICIkb2xkX2xpYnJhcnkiOyB9OyB0aGVuCisrCSAgICAjIFdlIG5lZWQgdG8g aGFyZGNvZGUgdGhlIGxpYnJhcnkgcGF0aAorKwkgICAgaWYgdGVzdCAtbiAiJHNobGlicGF0aF92 YXIiICYmIHRlc3QgLXogIiRhdm9pZHRlbXBycGF0aCIgOyB0aGVuCisrCSAgICAgICMgTWFrZSBz dXJlIHRoZSBycGF0aCBjb250YWlucyBvbmx5IHVuaXF1ZSBkaXJlY3Rvcmllcy4KKysJICAgICAg Y2FzZSAiJHRlbXBfcnBhdGg6IiBpbgorKwkgICAgICAqIiRhYnNkaXI6IiopIDs7CisrCSAgICAg ICopIHRlbXBfcnBhdGg9IiR0ZW1wX3JwYXRoJGFic2RpcjoiIDs7CisrCSAgICAgIGVzYWMKKysJ ICAgIGZpCisrCisrCSAgICAjIEhhcmRjb2RlIHRoZSBsaWJyYXJ5IHBhdGguCisrCSAgICAjIFNr aXAgZGlyZWN0b3JpZXMgdGhhdCBhcmUgaW4gdGhlIHN5c3RlbSBkZWZhdWx0IHJ1bi10aW1lCisr CSAgICAjIHNlYXJjaCBwYXRoLgorKwkgICAgY2FzZSAiICRzeXNfbGliX2Rsc2VhcmNoX3BhdGgg IiBpbgorKwkgICAgKiIgJGFic2RpciAiKikgOzsKKysJICAgICopCisrCSAgICAgIGNhc2UgIiRj b21waWxlX3JwYXRoICIgaW4KKysJICAgICAgKiIgJGFic2RpciAiKikgOzsKKysJICAgICAgKikg Y29tcGlsZV9ycGF0aD0iJGNvbXBpbGVfcnBhdGggJGFic2RpciIKKysJICAgICAgZXNhYworKwkg ICAgICA7OworKwkgICAgZXNhYworKwkgICAgY2FzZSAiICRzeXNfbGliX2Rsc2VhcmNoX3BhdGgg IiBpbgorKwkgICAgKiIgJGxpYmRpciAiKikgOzsKKysJICAgICopCisrCSAgICAgIGNhc2UgIiRm aW5hbGl6ZV9ycGF0aCAiIGluCisrCSAgICAgICoiICRsaWJkaXIgIiopIDs7CisrCSAgICAgICop IGZpbmFsaXplX3JwYXRoPSIkZmluYWxpemVfcnBhdGggJGxpYmRpciIKKysJICAgICAgZXNhYwor KwkgICAgICA7OworKwkgICAgZXNhYworKwkgIGZpICMgJGxpbmttb2RlLCRwYXNzID0gcHJvZyxs aW5rLi4uCisrCisrCSAgaWYgdGVzdCAiJGFsbGRlcGxpYnMiID0geWVzICYmCisrCSAgICAgeyB0 ZXN0ICIkZGVwbGlic19jaGVja19tZXRob2QiID0gcGFzc19hbGwgfHwKKysJICAgICAgIHsgdGVz dCAiJGJ1aWxkX2xpYnRvb2xfbGlicyIgPSB5ZXMgJiYKKysJCSB0ZXN0IC1uICIkbGlicmFyeV9u YW1lcyI7IH07IH07IHRoZW4KKysJICAgICMgV2Ugb25seSBuZWVkIHRvIHNlYXJjaCBmb3Igc3Rh dGljIGxpYnJhcmllcworKwkgICAgY29udGludWUKKysJICBmaQorKwlmaQorKworKwlsaW5rX3N0 YXRpYz1ubyAjIFdoZXRoZXIgdGhlIGRlcGxpYiB3aWxsIGJlIGxpbmtlZCBzdGF0aWNhbGx5Cisr CXVzZV9zdGF0aWNfbGlicz0kcHJlZmVyX3N0YXRpY19saWJzCisrCWlmIHRlc3QgIiR1c2Vfc3Rh dGljX2xpYnMiID0gYnVpbHQgJiYgdGVzdCAiJGluc3RhbGxlZCIgPSB5ZXM7IHRoZW4KKysJICB1 c2Vfc3RhdGljX2xpYnM9bm8KKysJZmkKKysJaWYgdGVzdCAtbiAiJGxpYnJhcnlfbmFtZXMiICYm CisrCSAgIHsgdGVzdCAiJHVzZV9zdGF0aWNfbGlicyIgPSBubyB8fCB0ZXN0IC16ICIkb2xkX2xp YnJhcnkiOyB9OyB0aGVuCisrCSAgY2FzZSAkaG9zdCBpbgorKwkgICpjeWd3aW4qIHwgKm1pbmd3 KiB8ICpjZWdjYyopCisrCSAgICAgICMgTm8gcG9pbnQgaW4gcmVsaW5raW5nIERMTHMgYmVjYXVz ZSBwYXRocyBhcmUgbm90IGVuY29kZWQKKysJICAgICAgbm90aW5zdF9kZXBsaWJzPSIkbm90aW5z dF9kZXBsaWJzICRsaWIiCisrCSAgICAgIG5lZWRfcmVsaW5rPW5vCisrCSAgICA7OworKwkgICop CisrCSAgICBpZiB0ZXN0ICIkaW5zdGFsbGVkIiA9IG5vOyB0aGVuCisrCSAgICAgIG5vdGluc3Rf ZGVwbGlicz0iJG5vdGluc3RfZGVwbGlicyAkbGliIgorKwkgICAgICBuZWVkX3JlbGluaz15ZXMK KysJICAgIGZpCisrCSAgICA7OworKwkgIGVzYWMKKysJICAjIFRoaXMgaXMgYSBzaGFyZWQgbGli cmFyeQorKworKwkgICMgV2FybiBhYm91dCBwb3J0YWJpbGl0eSwgY2FuJ3QgbGluayBhZ2FpbnN0 IC1tb2R1bGUncyBvbiBzb21lCisrCSAgIyBzeXN0ZW1zIChkYXJ3aW4pLiAgRG9uJ3QgYmxlYXQg YWJvdXQgZGxvcGVuZWQgbW9kdWxlcyB0aG91Z2ghCisrCSAgZGxvcGVubW9kdWxlPSIiCisrCSAg Zm9yIGRscHJlbW9kdWxldGVzdCBpbiAkZGxwcmVmaWxlczsgZG8KKysJICAgIGlmIHRlc3QgIlgk ZGxwcmVtb2R1bGV0ZXN0IiA9ICJYJGxpYiI7IHRoZW4KKysJICAgICAgZGxvcGVubW9kdWxlPSIk ZGxwcmVtb2R1bGV0ZXN0IgorKwkgICAgICBicmVhaworKwkgICAgZmkKKysJICBkb25lCisrCSAg aWYgdGVzdCAteiAiJGRsb3Blbm1vZHVsZSIgJiYgdGVzdCAiJHNob3VsZG5vdGxpbmsiID0geWVz ICYmIHRlc3QgIiRwYXNzIiA9IGxpbms7IHRoZW4KKysJICAgICRFQ0hPCisrCSAgICBpZiB0ZXN0 ICIkbGlua21vZGUiID0gcHJvZzsgdGhlbgorKwkgICAgICAkRUNITyAiKioqIFdhcm5pbmc6IExp bmtpbmcgdGhlIGV4ZWN1dGFibGUgJG91dHB1dCBhZ2FpbnN0IHRoZSBsb2FkYWJsZSBtb2R1bGUi CisrCSAgICBlbHNlCisrCSAgICAgICRFQ0hPICIqKiogV2FybmluZzogTGlua2luZyB0aGUgc2hh cmVkIGxpYnJhcnkgJG91dHB1dCBhZ2FpbnN0IHRoZSBsb2FkYWJsZSBtb2R1bGUiCisrCSAgICBm aQorKwkgICAgJEVDSE8gIioqKiAkbGlua2xpYiBpcyBub3QgcG9ydGFibGUhIgorKwkgIGZpCisr CSAgaWYgdGVzdCAiJGxpbmttb2RlIiA9IGxpYiAmJgorKwkgICAgIHRlc3QgIiRoYXJkY29kZV9p bnRvX2xpYnMiID0geWVzOyB0aGVuCisrCSAgICAjIEhhcmRjb2RlIHRoZSBsaWJyYXJ5IHBhdGgu CisrCSAgICAjIFNraXAgZGlyZWN0b3JpZXMgdGhhdCBhcmUgaW4gdGhlIHN5c3RlbSBkZWZhdWx0 IHJ1bi10aW1lCisrCSAgICAjIHNlYXJjaCBwYXRoLgorKwkgICAgY2FzZSAiICRzeXNfbGliX2Rs c2VhcmNoX3BhdGggIiBpbgorKwkgICAgKiIgJGFic2RpciAiKikgOzsKKysJICAgICopCisrCSAg ICAgIGNhc2UgIiRjb21waWxlX3JwYXRoICIgaW4KKysJICAgICAgKiIgJGFic2RpciAiKikgOzsK KysJICAgICAgKikgY29tcGlsZV9ycGF0aD0iJGNvbXBpbGVfcnBhdGggJGFic2RpciIKKysJICAg ICAgZXNhYworKwkgICAgICA7OworKwkgICAgZXNhYworKwkgICAgY2FzZSAiICRzeXNfbGliX2Rs c2VhcmNoX3BhdGggIiBpbgorKwkgICAgKiIgJGxpYmRpciAiKikgOzsKKysJICAgICopCisrCSAg ICAgIGNhc2UgIiRmaW5hbGl6ZV9ycGF0aCAiIGluCisrCSAgICAgICoiICRsaWJkaXIgIiopIDs7 CisrCSAgICAgICopIGZpbmFsaXplX3JwYXRoPSIkZmluYWxpemVfcnBhdGggJGxpYmRpciIKKysJ ICAgICAgZXNhYworKwkgICAgICA7OworKwkgICAgZXNhYworKwkgIGZpCisrCisrCSAgaWYgdGVz dCAtbiAiJG9sZF9hcmNoaXZlX2Zyb21fZXhwc3ltc19jbWRzIjsgdGhlbgorKwkgICAgIyBmaWd1 cmUgb3V0IHRoZSBzb25hbWUKKysJICAgIHNldCBkdW1teSAkbGlicmFyeV9uYW1lcworKwkgICAg c2hpZnQKKysJICAgIHJlYWxuYW1lPSIkMSIKKysJICAgIHNoaWZ0CisrCSAgICBsaWJuYW1lPWBl dmFsICJcXCRFQ0hPIFwiJGxpYm5hbWVfc3BlY1wiImAKKysJICAgICMgdXNlIGRsbmFtZSBpZiB3 ZSBnb3QgaXQuIGl0J3MgcGVyZmVjdGx5IGdvb2QsIG5vPworKwkgICAgaWYgdGVzdCAtbiAiJGRs bmFtZSI7IHRoZW4KKysJICAgICAgc29uYW1lPSIkZGxuYW1lIgorKwkgICAgZWxpZiB0ZXN0IC1u ICIkc29uYW1lX3NwZWMiOyB0aGVuCisrCSAgICAgICMgYmxlaCB3aW5kb3dzCisrCSAgICAgIGNh c2UgJGhvc3QgaW4KKysJICAgICAgKmN5Z3dpbiogfCBtaW5ndyogfCAqY2VnY2MqKQorKwkgICAg ICAgIGZ1bmNfYXJpdGggJGN1cnJlbnQgLSAkYWdlCisrCQltYWpvcj0kZnVuY19hcml0aF9yZXN1 bHQKKysJCXZlcnN1ZmZpeD0iLSRtYWpvciIKKysJCTs7CisrCSAgICAgIGVzYWMKKysJICAgICAg ZXZhbCBzb25hbWU9XCIkc29uYW1lX3NwZWNcIgorKwkgICAgZWxzZQorKwkgICAgICBzb25hbWU9 IiRyZWFsbmFtZSIKKysJICAgIGZpCisrCisrCSAgICAjIE1ha2UgYSBuZXcgbmFtZSBmb3IgdGhl IGV4dHJhY3RfZXhwc3ltc19jbWRzIHRvIHVzZQorKwkgICAgc29yb290PSIkc29uYW1lIgorKwkg ICAgZnVuY19iYXNlbmFtZSAiJHNvcm9vdCIKKysJICAgIHNvbmFtZT0iJGZ1bmNfYmFzZW5hbWVf cmVzdWx0IgorKwkgICAgZnVuY19zdHJpcG5hbWUgJ2xpYicgJy5kbGwnICIkc29uYW1lIgorKwkg ICAgbmV3bGliPWxpYmltcC0kZnVuY19zdHJpcG5hbWVfcmVzdWx0LmEKKysKKysJICAgICMgSWYg dGhlIGxpYnJhcnkgaGFzIG5vIGV4cG9ydCBsaXN0LCB0aGVuIGNyZWF0ZSBvbmUgbm93CisrCSAg ICBpZiB0ZXN0IC1mICIkb3V0cHV0X29iamRpci8kc29uYW1lLWRlZiI7IHRoZW4gOgorKwkgICAg ZWxzZQorKwkgICAgICBmdW5jX3ZlcmJvc2UgImV4dHJhY3RpbmcgZXhwb3J0ZWQgc3ltYm9sIGxp c3QgZnJvbSBcYCRzb25hbWUnIgorKwkgICAgICBmdW5jX2V4ZWN1dGVfY21kcyAiJGV4dHJhY3Rf ZXhwc3ltc19jbWRzIiAnZXhpdCAkPycKKysJICAgIGZpCisrCisrCSAgICAjIENyZWF0ZSAkbmV3 bGliCisrCSAgICBpZiB0ZXN0IC1mICIkb3V0cHV0X29iamRpci8kbmV3bGliIjsgdGhlbiA6OyBl bHNlCisrCSAgICAgIGZ1bmNfdmVyYm9zZSAiZ2VuZXJhdGluZyBpbXBvcnQgbGlicmFyeSBmb3Ig XGAkc29uYW1lJyIKKysJICAgICAgZnVuY19leGVjdXRlX2NtZHMgIiRvbGRfYXJjaGl2ZV9mcm9t X2V4cHN5bXNfY21kcyIgJ2V4aXQgJD8nCisrCSAgICBmaQorKwkgICAgIyBtYWtlIHN1cmUgdGhl IGxpYnJhcnkgdmFyaWFibGVzIGFyZSBwb2ludGluZyB0byB0aGUgbmV3IGxpYnJhcnkKKysJICAg IGRpcj0kb3V0cHV0X29iamRpcgorKwkgICAgbGlua2xpYj0kbmV3bGliCisrCSAgZmkgIyB0ZXN0 IC1uICIkb2xkX2FyY2hpdmVfZnJvbV9leHBzeW1zX2NtZHMiCisrCisrCSAgaWYgdGVzdCAiJGxp bmttb2RlIiA9IHByb2cgfHwgdGVzdCAiJG1vZGUiICE9IHJlbGluazsgdGhlbgorKwkgICAgYWRk X3NobGlicGF0aD0KKysJICAgIGFkZF9kaXI9CisrCSAgICBhZGQ9CisrCSAgICBsaWJfbGlua2Vk PXllcworKwkgICAgY2FzZSAkaGFyZGNvZGVfYWN0aW9uIGluCisrCSAgICBpbW1lZGlhdGUgfCB1 bnN1cHBvcnRlZCkKKysJICAgICAgaWYgdGVzdCAiJGhhcmRjb2RlX2RpcmVjdCIgPSBubzsgdGhl bgorKwkJYWRkPSIkZGlyLyRsaW5rbGliIgorKwkJY2FzZSAkaG9zdCBpbgorKwkJICAqLSotc2Nv My4ydjUuMC5bMDI0XSopIGFkZF9kaXI9Ii1MJGRpciIgOzsKKysJCSAgKi0qLXN5c3Y0KnV3Miop IGFkZF9kaXI9Ii1MJGRpciIgOzsKKysJCSAgKi0qLXN5c3Y1T3BlblVOSVgqIHwgKi0qLXN5c3Y1 VW5peFdhcmU3LlswMV0uWzEwXSogfCBcCisrCQkgICAgKi0qLXVuaXh3YXJlNyopIGFkZF9kaXI9 Ii1MJGRpciIgOzsKKysJCSAgKi0qLWRhcndpbiogKQorKwkJICAgICMgaWYgdGhlIGxpYiBpcyBh IChub24tZGxvcGVuZWQpIG1vZHVsZSB0aGVuIHdlIGNhbiBub3QKKysJCSAgICAjIGxpbmsgYWdh aW5zdCBpdCwgc29tZW9uZSBpcyBpZ25vcmluZyB0aGUgZWFybGllciB3YXJuaW5ncworKwkJICAg IGlmIC91c3IvYmluL2ZpbGUgLUwgJGFkZCAyPiAvZGV2L251bGwgfAorKwkJCSAkR1JFUCAiOiBb XjpdKiBidW5kbGUiID4vZGV2L251bGwgOyB0aGVuCisrCQkgICAgICBpZiB0ZXN0ICJYJGRsb3Bl bm1vZHVsZSIgIT0gIlgkbGliIjsgdGhlbgorKwkJCSRFQ0hPICIqKiogV2FybmluZzogbGliICRs aW5rbGliIGlzIGEgbW9kdWxlLCBub3QgYSBzaGFyZWQgbGlicmFyeSIKKysJCQlpZiB0ZXN0IC16 ICIkb2xkX2xpYnJhcnkiIDsgdGhlbgorKwkJCSAgJEVDSE8KKysJCQkgICRFQ0hPICIqKiogQW5k IHRoZXJlIGRvZXNuJ3Qgc2VlbSB0byBiZSBhIHN0YXRpYyBhcmNoaXZlIGF2YWlsYWJsZSIKKysJ CQkgICRFQ0hPICIqKiogVGhlIGxpbmsgd2lsbCBwcm9iYWJseSBmYWlsLCBzb3JyeSIKKysJCQll bHNlCisrCQkJICBhZGQ9IiRkaXIvJG9sZF9saWJyYXJ5IgorKwkJCWZpCisrCQkgICAgICBlbGlm IHRlc3QgLW4gIiRvbGRfbGlicmFyeSI7IHRoZW4KKysJCQlhZGQ9IiRkaXIvJG9sZF9saWJyYXJ5 IgorKwkJICAgICAgZmkKKysJCSAgICBmaQorKwkJZXNhYworKwkgICAgICBlbGlmIHRlc3QgIiRo YXJkY29kZV9taW51c19MIiA9IG5vOyB0aGVuCisrCQljYXNlICRob3N0IGluCisrCQkqLSotc3Vu b3MqKSBhZGRfc2hsaWJwYXRoPSIkZGlyIiA7OworKwkJZXNhYworKwkJYWRkX2Rpcj0iLUwkZGly IgorKwkJYWRkPSItbCRuYW1lIgorKwkgICAgICBlbGlmIHRlc3QgIiRoYXJkY29kZV9zaGxpYnBh dGhfdmFyIiA9IG5vOyB0aGVuCisrCQlhZGRfc2hsaWJwYXRoPSIkZGlyIgorKwkJYWRkPSItbCRu YW1lIgorKwkgICAgICBlbHNlCisrCQlsaWJfbGlua2VkPW5vCisrCSAgICAgIGZpCisrCSAgICAg IDs7CisrCSAgICByZWxpbmspCisrCSAgICAgIGlmIHRlc3QgIiRoYXJkY29kZV9kaXJlY3QiID0g eWVzICYmCisrCSAgICAgICAgIHRlc3QgIiRoYXJkY29kZV9kaXJlY3RfYWJzb2x1dGUiID0gbm87 IHRoZW4KKysJCWFkZD0iJGRpci8kbGlua2xpYiIKKysJICAgICAgZWxpZiB0ZXN0ICIkaGFyZGNv ZGVfbWludXNfTCIgPSB5ZXM7IHRoZW4KKysJCWFkZF9kaXI9Ii1MJGRpciIKKysJCSMgVHJ5IGxv b2tpbmcgZmlyc3QgaW4gdGhlIGxvY2F0aW9uIHdlJ3JlIGJlaW5nIGluc3RhbGxlZCB0by4KKysJ CWlmIHRlc3QgLW4gIiRpbnN0X3ByZWZpeF9kaXIiOyB0aGVuCisrCQkgIGNhc2UgJGxpYmRpciBp bgorKwkJICAgIFtcXC9dKikKKysJCSAgICAgIGFkZF9kaXI9IiRhZGRfZGlyIC1MJGluc3RfcHJl Zml4X2RpciRsaWJkaXIiCisrCQkgICAgICA7OworKwkJICBlc2FjCisrCQlmaQorKwkJYWRkPSIt bCRuYW1lIgorKwkgICAgICBlbGlmIHRlc3QgIiRoYXJkY29kZV9zaGxpYnBhdGhfdmFyIiA9IHll czsgdGhlbgorKwkJYWRkX3NobGlicGF0aD0iJGRpciIKKysJCWFkZD0iLWwkbmFtZSIKKysJICAg ICAgZWxzZQorKwkJbGliX2xpbmtlZD1ubworKwkgICAgICBmaQorKwkgICAgICA7OworKwkgICAg KikgbGliX2xpbmtlZD1ubyA7OworKwkgICAgZXNhYworKworKwkgICAgaWYgdGVzdCAiJGxpYl9s aW5rZWQiICE9IHllczsgdGhlbgorKwkgICAgICBmdW5jX2ZhdGFsX2NvbmZpZ3VyYXRpb24gInVu c3VwcG9ydGVkIGhhcmRjb2RlIHByb3BlcnRpZXMiCisrCSAgICBmaQorKworKwkgICAgaWYgdGVz dCAtbiAiJGFkZF9zaGxpYnBhdGgiOyB0aGVuCisrCSAgICAgIGNhc2UgOiRjb21waWxlX3NobGli cGF0aDogaW4KKysJICAgICAgKiI6JGFkZF9zaGxpYnBhdGg6IiopIDs7CisrCSAgICAgICopIGNv bXBpbGVfc2hsaWJwYXRoPSIkY29tcGlsZV9zaGxpYnBhdGgkYWRkX3NobGlicGF0aDoiIDs7Cisr CSAgICAgIGVzYWMKKysJICAgIGZpCisrCSAgICBpZiB0ZXN0ICIkbGlua21vZGUiID0gcHJvZzsg dGhlbgorKwkgICAgICB0ZXN0IC1uICIkYWRkX2RpciIgJiYgY29tcGlsZV9kZXBsaWJzPSIkYWRk X2RpciAkY29tcGlsZV9kZXBsaWJzIgorKwkgICAgICB0ZXN0IC1uICIkYWRkIiAmJiBjb21waWxl X2RlcGxpYnM9IiRhZGQgJGNvbXBpbGVfZGVwbGlicyIKKysJICAgIGVsc2UKKysJICAgICAgdGVz dCAtbiAiJGFkZF9kaXIiICYmIGRlcGxpYnM9IiRhZGRfZGlyICRkZXBsaWJzIgorKwkgICAgICB0 ZXN0IC1uICIkYWRkIiAmJiBkZXBsaWJzPSIkYWRkICRkZXBsaWJzIgorKwkgICAgICBpZiB0ZXN0 ICIkaGFyZGNvZGVfZGlyZWN0IiAhPSB5ZXMgJiYKKysJCSB0ZXN0ICIkaGFyZGNvZGVfbWludXNf TCIgIT0geWVzICYmCisrCQkgdGVzdCAiJGhhcmRjb2RlX3NobGlicGF0aF92YXIiID0geWVzOyB0 aGVuCisrCQljYXNlIDokZmluYWxpemVfc2hsaWJwYXRoOiBpbgorKwkJKiI6JGxpYmRpcjoiKikg OzsKKysJCSopIGZpbmFsaXplX3NobGlicGF0aD0iJGZpbmFsaXplX3NobGlicGF0aCRsaWJkaXI6 IiA7OworKwkJZXNhYworKwkgICAgICBmaQorKwkgICAgZmkKKysJICBmaQorKworKwkgIGlmIHRl c3QgIiRsaW5rbW9kZSIgPSBwcm9nIHx8IHRlc3QgIiRtb2RlIiA9IHJlbGluazsgdGhlbgorKwkg ICAgYWRkX3NobGlicGF0aD0KKysJICAgIGFkZF9kaXI9CisrCSAgICBhZGQ9CisrCSAgICAjIEZp bmFsaXplIGNvbW1hbmQgZm9yIGJvdGggaXMgc2ltcGxlOiBqdXN0IGhhcmRjb2RlIGl0LgorKwkg ICAgaWYgdGVzdCAiJGhhcmRjb2RlX2RpcmVjdCIgPSB5ZXMgJiYKKysJICAgICAgIHRlc3QgIiRo YXJkY29kZV9kaXJlY3RfYWJzb2x1dGUiID0gbm87IHRoZW4KKysJICAgICAgYWRkPSIkbGliZGly LyRsaW5rbGliIgorKwkgICAgZWxpZiB0ZXN0ICIkaGFyZGNvZGVfbWludXNfTCIgPSB5ZXM7IHRo ZW4KKysJICAgICAgYWRkX2Rpcj0iLUwkbGliZGlyIgorKwkgICAgICBhZGQ9Ii1sJG5hbWUiCisr CSAgICBlbGlmIHRlc3QgIiRoYXJkY29kZV9zaGxpYnBhdGhfdmFyIiA9IHllczsgdGhlbgorKwkg ICAgICBjYXNlIDokZmluYWxpemVfc2hsaWJwYXRoOiBpbgorKwkgICAgICAqIjokbGliZGlyOiIq KSA7OworKwkgICAgICAqKSBmaW5hbGl6ZV9zaGxpYnBhdGg9IiRmaW5hbGl6ZV9zaGxpYnBhdGgk bGliZGlyOiIgOzsKKysJICAgICAgZXNhYworKwkgICAgICBhZGQ9Ii1sJG5hbWUiCisrCSAgICBl bGlmIHRlc3QgIiRoYXJkY29kZV9hdXRvbWF0aWMiID0geWVzOyB0aGVuCisrCSAgICAgIGlmIHRl c3QgLW4gIiRpbnN0X3ByZWZpeF9kaXIiICYmCisrCQkgdGVzdCAtZiAiJGluc3RfcHJlZml4X2Rp ciRsaWJkaXIvJGxpbmtsaWIiIDsgdGhlbgorKwkJYWRkPSIkaW5zdF9wcmVmaXhfZGlyJGxpYmRp ci8kbGlua2xpYiIKKysJICAgICAgZWxzZQorKwkJYWRkPSIkbGliZGlyLyRsaW5rbGliIgorKwkg ICAgICBmaQorKwkgICAgZWxzZQorKwkgICAgICAjIFdlIGNhbm5vdCBzZWVtIHRvIGhhcmRjb2Rl IGl0LCBndWVzcyB3ZSdsbCBmYWtlIGl0LgorKwkgICAgICBhZGRfZGlyPSItTCRsaWJkaXIiCisr CSAgICAgICMgVHJ5IGxvb2tpbmcgZmlyc3QgaW4gdGhlIGxvY2F0aW9uIHdlJ3JlIGJlaW5nIGlu c3RhbGxlZCB0by4KKysJICAgICAgaWYgdGVzdCAtbiAiJGluc3RfcHJlZml4X2RpciI7IHRoZW4K KysJCWNhc2UgJGxpYmRpciBpbgorKwkJICBbXFwvXSopCisrCQkgICAgYWRkX2Rpcj0iJGFkZF9k aXIgLUwkaW5zdF9wcmVmaXhfZGlyJGxpYmRpciIKKysJCSAgICA7OworKwkJZXNhYworKwkgICAg ICBmaQorKwkgICAgICBhZGQ9Ii1sJG5hbWUiCisrCSAgICBmaQorKworKwkgICAgaWYgdGVzdCAi JGxpbmttb2RlIiA9IHByb2c7IHRoZW4KKysJICAgICAgdGVzdCAtbiAiJGFkZF9kaXIiICYmIGZp bmFsaXplX2RlcGxpYnM9IiRhZGRfZGlyICRmaW5hbGl6ZV9kZXBsaWJzIgorKwkgICAgICB0ZXN0 IC1uICIkYWRkIiAmJiBmaW5hbGl6ZV9kZXBsaWJzPSIkYWRkICRmaW5hbGl6ZV9kZXBsaWJzIgor KwkgICAgZWxzZQorKwkgICAgICB0ZXN0IC1uICIkYWRkX2RpciIgJiYgZGVwbGlicz0iJGFkZF9k aXIgJGRlcGxpYnMiCisrCSAgICAgIHRlc3QgLW4gIiRhZGQiICYmIGRlcGxpYnM9IiRhZGQgJGRl cGxpYnMiCisrCSAgICBmaQorKwkgIGZpCisrCWVsaWYgdGVzdCAiJGxpbmttb2RlIiA9IHByb2c7 IHRoZW4KKysJICAjIEhlcmUgd2UgYXNzdW1lIHRoYXQgb25lIG9mIGhhcmRjb2RlX2RpcmVjdCBv ciBoYXJkY29kZV9taW51c19MCisrCSAgIyBpcyBub3QgdW5zdXBwb3J0ZWQuICBUaGlzIGlzIHZh bGlkIG9uIGFsbCBrbm93biBzdGF0aWMgYW5kCisrCSAgIyBzaGFyZWQgcGxhdGZvcm1zLgorKwkg IGlmIHRlc3QgIiRoYXJkY29kZV9kaXJlY3QiICE9IHVuc3VwcG9ydGVkOyB0aGVuCisrCSAgICB0 ZXN0IC1uICIkb2xkX2xpYnJhcnkiICYmIGxpbmtsaWI9IiRvbGRfbGlicmFyeSIKKysJICAgIGNv bXBpbGVfZGVwbGlicz0iJGRpci8kbGlua2xpYiAkY29tcGlsZV9kZXBsaWJzIgorKwkgICAgZmlu YWxpemVfZGVwbGlicz0iJGRpci8kbGlua2xpYiAkZmluYWxpemVfZGVwbGlicyIKKysJICBlbHNl CisrCSAgICBjb21waWxlX2RlcGxpYnM9Ii1sJG5hbWUgLUwkZGlyICRjb21waWxlX2RlcGxpYnMi CisrCSAgICBmaW5hbGl6ZV9kZXBsaWJzPSItbCRuYW1lIC1MJGRpciAkZmluYWxpemVfZGVwbGli cyIKKysJICBmaQorKwllbGlmIHRlc3QgIiRidWlsZF9saWJ0b29sX2xpYnMiID0geWVzOyB0aGVu CisrCSAgIyBOb3QgYSBzaGFyZWQgbGlicmFyeQorKwkgIGlmIHRlc3QgIiRkZXBsaWJzX2NoZWNr X21ldGhvZCIgIT0gcGFzc19hbGw7IHRoZW4KKysJICAgICMgV2UncmUgdHJ5aW5nIGxpbmsgYSBz aGFyZWQgbGlicmFyeSBhZ2FpbnN0IGEgc3RhdGljIG9uZQorKwkgICAgIyBidXQgdGhlIHN5c3Rl bSBkb2Vzbid0IHN1cHBvcnQgaXQuCisrCisrCSAgICAjIEp1c3QgcHJpbnQgYSB3YXJuaW5nIGFu ZCBhZGQgdGhlIGxpYnJhcnkgdG8gZGVwZW5kZW5jeV9saWJzIHNvCisrCSAgICAjIHRoYXQgdGhl IHByb2dyYW0gY2FuIGJlIGxpbmtlZCBhZ2FpbnN0IHRoZSBzdGF0aWMgbGlicmFyeS4KKysJICAg ICRFQ0hPCisrCSAgICAkRUNITyAiKioqIFdhcm5pbmc6IFRoaXMgc3lzdGVtIGNhbiBub3QgbGlu ayB0byBzdGF0aWMgbGliIGFyY2hpdmUgJGxpYi4iCisrCSAgICAkRUNITyAiKioqIEkgaGF2ZSB0 aGUgY2FwYWJpbGl0eSB0byBtYWtlIHRoYXQgbGlicmFyeSBhdXRvbWF0aWNhbGx5IGxpbmsgaW4g d2hlbiIKKysJICAgICRFQ0hPICIqKiogeW91IGxpbmsgdG8gdGhpcyBsaWJyYXJ5LiAgQnV0IEkg Y2FuIG9ubHkgZG8gdGhpcyBpZiB5b3UgaGF2ZSBhIgorKwkgICAgJEVDSE8gIioqKiBzaGFyZWQg dmVyc2lvbiBvZiB0aGUgbGlicmFyeSwgd2hpY2ggeW91IGRvIG5vdCBhcHBlYXIgdG8gaGF2ZS4i CisrCSAgICBpZiB0ZXN0ICIkbW9kdWxlIiA9IHllczsgdGhlbgorKwkgICAgICAkRUNITyAiKioq IEJ1dCBhcyB5b3UgdHJ5IHRvIGJ1aWxkIGEgbW9kdWxlIGxpYnJhcnksIGxpYnRvb2wgd2lsbCBz dGlsbCBjcmVhdGUgIgorKwkgICAgICAkRUNITyAiKioqIGEgc3RhdGljIG1vZHVsZSwgdGhhdCBz aG91bGQgd29yayBhcyBsb25nIGFzIHRoZSBkbG9wZW5pbmcgYXBwbGljYXRpb24iCisrCSAgICAg ICRFQ0hPICIqKiogaXMgbGlua2VkIHdpdGggdGhlIC1kbG9wZW4gZmxhZyB0byByZXNvbHZlIHN5 bWJvbHMgYXQgcnVudGltZS4iCisrCSAgICAgIGlmIHRlc3QgLXogIiRnbG9iYWxfc3ltYm9sX3Bp cGUiOyB0aGVuCisrCQkkRUNITworKwkJJEVDSE8gIioqKiBIb3dldmVyLCB0aGlzIHdvdWxkIG9u bHkgd29yayBpZiBsaWJ0b29sIHdhcyBhYmxlIHRvIGV4dHJhY3Qgc3ltYm9sIgorKwkJJEVDSE8g IioqKiBsaXN0cyBmcm9tIGEgcHJvZ3JhbSwgdXNpbmcgXGBubScgb3IgZXF1aXZhbGVudCwgYnV0 IGxpYnRvb2wgY291bGQiCisrCQkkRUNITyAiKioqIG5vdCBmaW5kIHN1Y2ggYSBwcm9ncmFtLiAg U28sIHRoaXMgbW9kdWxlIGlzIHByb2JhYmx5IHVzZWxlc3MuIgorKwkJJEVDSE8gIioqKiBcYG5t JyBmcm9tIEdOVSBiaW51dGlscyBhbmQgYSBmdWxsIHJlYnVpbGQgbWF5IGhlbHAuIgorKwkgICAg ICBmaQorKwkgICAgICBpZiB0ZXN0ICIkYnVpbGRfb2xkX2xpYnMiID0gbm87IHRoZW4KKysJCWJ1 aWxkX2xpYnRvb2xfbGlicz1tb2R1bGUKKysJCWJ1aWxkX29sZF9saWJzPXllcworKwkgICAgICBl bHNlCisrCQlidWlsZF9saWJ0b29sX2xpYnM9bm8KKysJICAgICAgZmkKKysJICAgIGZpCisrCSAg ZWxzZQorKwkgICAgZGVwbGlicz0iJGRpci8kb2xkX2xpYnJhcnkgJGRlcGxpYnMiCisrCSAgICBs aW5rX3N0YXRpYz15ZXMKKysJICBmaQorKwlmaSAjIGxpbmsgc2hhcmVkL3N0YXRpYyBsaWJyYXJ5 PworKworKwlpZiB0ZXN0ICIkbGlua21vZGUiID0gbGliOyB0aGVuCisrCSAgaWYgdGVzdCAtbiAi JGRlcGVuZGVuY3lfbGlicyIgJiYKKysJICAgICB7IHRlc3QgIiRoYXJkY29kZV9pbnRvX2xpYnMi ICE9IHllcyB8fAorKwkgICAgICAgdGVzdCAiJGJ1aWxkX29sZF9saWJzIiA9IHllcyB8fAorKwkg ICAgICAgdGVzdCAiJGxpbmtfc3RhdGljIiA9IHllczsgfTsgdGhlbgorKwkgICAgIyBFeHRyYWN0 IC1SIGZyb20gZGVwZW5kZW5jeV9saWJzCisrCSAgICB0ZW1wX2RlcGxpYnM9CisrCSAgICBmb3Ig bGliZGlyIGluICRkZXBlbmRlbmN5X2xpYnM7IGRvCisrCSAgICAgIGNhc2UgJGxpYmRpciBpbgor KwkgICAgICAtUiopIGZ1bmNfc3RyaXBuYW1lICctUicgJycgIiRsaWJkaXIiCisrCSAgICAgICAg ICAgdGVtcF94cnBhdGg9JGZ1bmNfc3RyaXBuYW1lX3Jlc3VsdAorKwkJICAgY2FzZSAiICR4cnBh dGggIiBpbgorKwkJICAgKiIgJHRlbXBfeHJwYXRoICIqKSA7OworKwkJICAgKikgeHJwYXRoPSIk eHJwYXRoICR0ZW1wX3hycGF0aCI7OworKwkJICAgZXNhYzs7CisrCSAgICAgICopIHRlbXBfZGVw bGlicz0iJHRlbXBfZGVwbGlicyAkbGliZGlyIjs7CisrCSAgICAgIGVzYWMKKysJICAgIGRvbmUK KysJICAgIGRlcGVuZGVuY3lfbGlicz0iJHRlbXBfZGVwbGlicyIKKysJICBmaQorKworKwkgIG5l d2xpYl9zZWFyY2hfcGF0aD0iJG5ld2xpYl9zZWFyY2hfcGF0aCAkYWJzZGlyIgorKwkgICMgTGlu ayBhZ2FpbnN0IHRoaXMgbGlicmFyeQorKwkgIHRlc3QgIiRsaW5rX3N0YXRpYyIgPSBubyAmJiBu ZXdkZXBlbmRlbmN5X2xpYnM9IiRhYnNfbGFkaXIvJGxhbmFtZSAkbmV3ZGVwZW5kZW5jeV9saWJz IgorKwkgICMgLi4uIGFuZCBpdHMgZGVwZW5kZW5jeV9saWJzCisrCSAgdG1wX2xpYnM9CisrCSAg Zm9yIGRlcGxpYiBpbiAkZGVwZW5kZW5jeV9saWJzOyBkbworKwkgICAgbmV3ZGVwZW5kZW5jeV9s aWJzPSIkZGVwbGliICRuZXdkZXBlbmRlbmN5X2xpYnMiCisrCSAgICBpZiAkb3B0X2R1cGxpY2F0 ZV9kZXBzIDsgdGhlbgorKwkgICAgICBjYXNlICIkdG1wX2xpYnMgIiBpbgorKwkgICAgICAqIiAk ZGVwbGliICIqKSBzcGVjaWFsZGVwbGlicz0iJHNwZWNpYWxkZXBsaWJzICRkZXBsaWIiIDs7Cisr CSAgICAgIGVzYWMKKysJICAgIGZpCisrCSAgICB0bXBfbGlicz0iJHRtcF9saWJzICRkZXBsaWIi CisrCSAgZG9uZQorKworKwkgIGlmIHRlc3QgIiRsaW5rX2FsbF9kZXBsaWJzIiAhPSBubzsgdGhl bgorKwkgICAgIyBBZGQgdGhlIHNlYXJjaCBwYXRocyBvZiBhbGwgZGVwZW5kZW5jeSBsaWJyYXJp ZXMKKysJICAgIGZvciBkZXBsaWIgaW4gJGRlcGVuZGVuY3lfbGliczsgZG8KKysJICAgICAgY2Fz ZSAkZGVwbGliIGluCisrCSAgICAgIC1MKikgcGF0aD0iJGRlcGxpYiIgOzsKKysJICAgICAgKi5s YSkKKysJICAgICAgICBmdW5jX2Rpcm5hbWUgIiRkZXBsaWIiICIiICIuIgorKwkJZGlyPSIkZnVu Y19kaXJuYW1lX3Jlc3VsdCIKKysJCSMgV2UgbmVlZCBhbiBhYnNvbHV0ZSBwYXRoLgorKwkJY2Fz ZSAkZGlyIGluCisrCQlbXFwvXSogfCBbQS1aYS16XTpbXFwvXSopIGFic2Rpcj0iJGRpciIgOzsK KysJCSopCisrCQkgIGFic2Rpcj1gY2QgIiRkaXIiICYmIHB3ZGAKKysJCSAgaWYgdGVzdCAteiAi JGFic2RpciI7IHRoZW4KKysJCSAgICBmdW5jX3dhcm5pbmcgImNhbm5vdCBkZXRlcm1pbmUgYWJz b2x1dGUgZGlyZWN0b3J5IG5hbWUgb2YgXGAkZGlyJyIKKysJCSAgICBhYnNkaXI9IiRkaXIiCisr CQkgIGZpCisrCQkgIDs7CisrCQllc2FjCisrCQlpZiAkR1JFUCAiXmluc3RhbGxlZD1ubyIgJGRl cGxpYiA+IC9kZXYvbnVsbDsgdGhlbgorKwkJY2FzZSAkaG9zdCBpbgorKwkJKi0qLWRhcndpbiop CisrCQkgIGRlcGRlcGw9CisrCQkgIGV2YWwgZGVwbGlicmFyeV9uYW1lcz1gJHtTRUR9IC1uIC1l ICdzL15saWJyYXJ5X25hbWVzPVwoLipcKSQvXDEvcCcgJGRlcGxpYmAKKysJCSAgaWYgdGVzdCAt biAiJGRlcGxpYnJhcnlfbmFtZXMiIDsgdGhlbgorKwkJICAgIGZvciB0bXAgaW4gJGRlcGxpYnJh cnlfbmFtZXMgOyBkbworKwkJICAgICAgZGVwZGVwbD0kdG1wCisrCQkgICAgZG9uZQorKwkJICAg IGlmIHRlc3QgLWYgIiRhYnNkaXIvJG9iamRpci8kZGVwZGVwbCIgOyB0aGVuCisrCQkgICAgICBk ZXBkZXBsPSIkYWJzZGlyLyRvYmpkaXIvJGRlcGRlcGwiCisrCQkgICAgICBkYXJ3aW5faW5zdGFs bF9uYW1lPWAke09UT09MfSAtTCAkZGVwZGVwbCB8IGF3ayAne2lmIChOUiA9PSAyKSB7cHJpbnQg JDE7ZXhpdH19J2AKKysgICAgICAgICAgICAgICAgICAgICAgaWYgdGVzdCAteiAiJGRhcndpbl9p bnN0YWxsX25hbWUiOyB0aGVuCisrICAgICAgICAgICAgICAgICAgICAgICAgICBkYXJ3aW5faW5z dGFsbF9uYW1lPWAke09UT09MNjR9IC1MICRkZXBkZXBsICB8IGF3ayAne2lmIChOUiA9PSAyKSB7 cHJpbnQgJDE7ZXhpdH19J2AKKysgICAgICAgICAgICAgICAgICAgICAgZmkKKysJCSAgICAgIGNv bXBpbGVyX2ZsYWdzPSIkY29tcGlsZXJfZmxhZ3MgJHt3bH0tZHlsaWJfZmlsZSAke3dsfSR7ZGFy d2luX2luc3RhbGxfbmFtZX06JHtkZXBkZXBsfSIKKysJCSAgICAgIGxpbmtlcl9mbGFncz0iJGxp bmtlcl9mbGFncyAtZHlsaWJfZmlsZSAke2Rhcndpbl9pbnN0YWxsX25hbWV9OiR7ZGVwZGVwbH0i CisrCQkgICAgICBwYXRoPQorKwkJICAgIGZpCisrCQkgIGZpCisrCQkgIDs7CisrCQkqKQorKwkJ ICBwYXRoPSItTCRhYnNkaXIvJG9iamRpciIKKysJCSAgOzsKKysJCWVzYWMKKysJCWVsc2UKKysJ CSAgZXZhbCBsaWJkaXI9YCR7U0VEfSAtbiAtZSAncy9ebGliZGlyPVwoLipcKSQvXDEvcCcgJGRl cGxpYmAKKysJCSAgdGVzdCAteiAiJGxpYmRpciIgJiYgXAorKwkJICAgIGZ1bmNfZmF0YWxfZXJy b3IgIlxgJGRlcGxpYicgaXMgbm90IGEgdmFsaWQgbGlidG9vbCBhcmNoaXZlIgorKwkJICB0ZXN0 ICIkYWJzZGlyIiAhPSAiJGxpYmRpciIgJiYgXAorKwkJICAgIGZ1bmNfd2FybmluZyAiXGAkZGVw bGliJyBzZWVtcyB0byBiZSBtb3ZlZCIKKysKKysJCSAgcGF0aD0iLUwkYWJzZGlyIgorKwkJZmkK KysJCTs7CisrCSAgICAgIGVzYWMKKysJICAgICAgY2FzZSAiICRkZXBsaWJzICIgaW4KKysJICAg ICAgKiIgJHBhdGggIiopIDs7CisrCSAgICAgICopIGRlcGxpYnM9IiRwYXRoICRkZXBsaWJzIiA7 OworKwkgICAgICBlc2FjCisrCSAgICBkb25lCisrCSAgZmkgIyBsaW5rX2FsbF9kZXBsaWJzICE9 IG5vCisrCWZpICMgbGlua21vZGUgPSBsaWIKKysgICAgICBkb25lICMgZm9yIGRlcGxpYiBpbiAk bGlicworKyAgICAgIGlmIHRlc3QgIiRwYXNzIiA9IGxpbms7IHRoZW4KKysJaWYgdGVzdCAiJGxp bmttb2RlIiA9ICJwcm9nIjsgdGhlbgorKwkgIGNvbXBpbGVfZGVwbGlicz0iJG5ld19pbmhlcml0 ZWRfbGlua2VyX2ZsYWdzICRjb21waWxlX2RlcGxpYnMiCisrCSAgZmluYWxpemVfZGVwbGlicz0i JG5ld19pbmhlcml0ZWRfbGlua2VyX2ZsYWdzICRmaW5hbGl6ZV9kZXBsaWJzIgorKwllbHNlCisr CSAgY29tcGlsZXJfZmxhZ3M9IiRjb21waWxlcl9mbGFncyAiYCRFQ0hPICJYICRuZXdfaW5oZXJp dGVkX2xpbmtlcl9mbGFncyIgfCAkWHNlZCAtZSAncyUgXChbXiAkXSpcKS5sdGZyYW1ld29yayUg LWZyYW1ld29yayBcMSVnJ2AKKysJZmkKKysgICAgICBmaQorKyAgICAgIGRlcGVuZGVuY3lfbGli cz0iJG5ld2RlcGVuZGVuY3lfbGlicyIKKysgICAgICBpZiB0ZXN0ICIkcGFzcyIgPSBkbHByZW9w ZW47IHRoZW4KKysJIyBMaW5rIHRoZSBkbHByZW9wZW5lZCBsaWJyYXJpZXMgYmVmb3JlIG90aGVy IGxpYnJhcmllcworKwlmb3IgZGVwbGliIGluICRzYXZlX2RlcGxpYnM7IGRvCisrCSAgZGVwbGli cz0iJGRlcGxpYiAkZGVwbGlicyIKKysJZG9uZQorKyAgICAgIGZpCisrICAgICAgaWYgdGVzdCAi JHBhc3MiICE9IGRsb3BlbjsgdGhlbgorKwlpZiB0ZXN0ICIkcGFzcyIgIT0gY29udjsgdGhlbgor KwkgICMgTWFrZSBzdXJlIGxpYl9zZWFyY2hfcGF0aCBjb250YWlucyBvbmx5IHVuaXF1ZSBkaXJl Y3Rvcmllcy4KKysJICBsaWJfc2VhcmNoX3BhdGg9CisrCSAgZm9yIGRpciBpbiAkbmV3bGliX3Nl YXJjaF9wYXRoOyBkbworKwkgICAgY2FzZSAiJGxpYl9zZWFyY2hfcGF0aCAiIGluCisrCSAgICAq IiAkZGlyICIqKSA7OworKwkgICAgKikgbGliX3NlYXJjaF9wYXRoPSIkbGliX3NlYXJjaF9wYXRo ICRkaXIiIDs7CisrCSAgICBlc2FjCisrCSAgZG9uZQorKwkgIG5ld2xpYl9zZWFyY2hfcGF0aD0K KysJZmkKKysKKysJaWYgdGVzdCAiJGxpbmttb2RlLCRwYXNzIiAhPSAicHJvZyxsaW5rIjsgdGhl bgorKwkgIHZhcnM9ImRlcGxpYnMiCisrCWVsc2UKKysJICB2YXJzPSJjb21waWxlX2RlcGxpYnMg ZmluYWxpemVfZGVwbGlicyIKKysJZmkKKysJZm9yIHZhciBpbiAkdmFycyBkZXBlbmRlbmN5X2xp YnM7IGRvCisrCSAgIyBBZGQgbGlicmFyaWVzIHRvICR2YXIgaW4gcmV2ZXJzZSBvcmRlcgorKwkg IGV2YWwgdG1wX2xpYnM9XCJcJCR2YXJcIgorKwkgIG5ld19saWJzPQorKwkgIGZvciBkZXBsaWIg aW4gJHRtcF9saWJzOyBkbworKwkgICAgIyBGSVhNRTogUGVkYW50aWNhbGx5LCB0aGlzIGlzIHRo ZSByaWdodCB0aGluZyB0byBkbywgc28KKysJICAgICMgICAgICAgIHRoYXQgc29tZSBuYXN0eSBk ZXBlbmRlbmN5IGxvb3AgaXNuJ3QgYWNjaWRlbnRhbGx5CisrCSAgICAjICAgICAgICBicm9rZW46 CisrCSAgICAjbmV3X2xpYnM9IiRkZXBsaWIgJG5ld19saWJzIgorKwkgICAgIyBQcmFnbWF0aWNh bGx5LCB0aGlzIHNlZW1zIHRvIGNhdXNlIHZlcnkgZmV3IHByb2JsZW1zIGluCisrCSAgICAjIHBy YWN0aWNlOgorKwkgICAgY2FzZSAkZGVwbGliIGluCisrCSAgICAtTCopIG5ld19saWJzPSIkZGVw bGliICRuZXdfbGlicyIgOzsKKysJICAgIC1SKikgOzsKKysJICAgICopCisrCSAgICAgICMgQW5k IGhlcmUgaXMgdGhlIHJlYXNvbjogd2hlbiBhIGxpYnJhcnkgYXBwZWFycyBtb3JlCisrCSAgICAg ICMgdGhhbiBvbmNlIGFzIGFuIGV4cGxpY2l0IGRlcGVuZGVuY2Ugb2YgYSBsaWJyYXJ5LCBvcgor KwkgICAgICAjIGlzIGltcGxpY2l0bHkgbGlua2VkIGluIG1vcmUgdGhhbiBvbmNlIGJ5IHRoZQor KwkgICAgICAjIGNvbXBpbGVyLCBpdCBpcyBjb25zaWRlcmVkIHNwZWNpYWwsIGFuZCBtdWx0aXBs ZQorKwkgICAgICAjIG9jY3VycmVuY2VzIHRoZXJlb2YgYXJlIG5vdCByZW1vdmVkLiAgQ29tcGFy ZSB0aGlzCisrCSAgICAgICMgd2l0aCBoYXZpbmcgdGhlIHNhbWUgbGlicmFyeSBiZWluZyBsaXN0 ZWQgYXMgYQorKwkgICAgICAjIGRlcGVuZGVuY3kgb2YgbXVsdGlwbGUgb3RoZXIgbGlicmFyaWVz OiBpbiB0aGlzIGNhc2UsCisrCSAgICAgICMgd2Uga25vdyAocGVkYW50aWNhbGx5LCB3ZSBhc3N1 bWUpIHRoZSBsaWJyYXJ5IGRvZXMgbm90CisrCSAgICAgICMgbmVlZCB0byBiZSBsaXN0ZWQgbW9y ZSB0aGFuIG9uY2UsIHNvIHdlIGtlZXAgb25seSB0aGUKKysJICAgICAgIyBsYXN0IGNvcHkuICBU aGlzIGlzIG5vdCBhbHdheXMgcmlnaHQsIGJ1dCBpdCBpcyByYXJlCisrCSAgICAgICMgZW5vdWdo IHRoYXQgd2UgcmVxdWlyZSB1c2VycyB0aGF0IHJlYWxseSBtZWFuIHRvIHBsYXkKKysJICAgICAg IyBzdWNoIHVucG9ydGFibGUgbGlua2luZyB0cmlja3MgdG8gbGluayB0aGUgbGlicmFyeQorKwkg ICAgICAjIHVzaW5nIC1XbCwtbG5hbWUsIHNvIHRoYXQgbGlidG9vbCBkb2VzIG5vdCBjb25zaWRl ciBpdAorKwkgICAgICAjIGZvciBkdXBsaWNhdGUgcmVtb3ZhbC4KKysJICAgICAgY2FzZSAiICRz cGVjaWFsZGVwbGlicyAiIGluCisrCSAgICAgICoiICRkZXBsaWIgIiopIG5ld19saWJzPSIkZGVw bGliICRuZXdfbGlicyIgOzsKKysJICAgICAgKikKKysJCWNhc2UgIiAkbmV3X2xpYnMgIiBpbgor KwkJKiIgJGRlcGxpYiAiKikgOzsKKysJCSopIG5ld19saWJzPSIkZGVwbGliICRuZXdfbGlicyIg OzsKKysJCWVzYWMKKysJCTs7CisrCSAgICAgIGVzYWMKKysJICAgICAgOzsKKysJICAgIGVzYWMK KysJICBkb25lCisrCSAgdG1wX2xpYnM9CisrCSAgZm9yIGRlcGxpYiBpbiAkbmV3X2xpYnM7IGRv CisrCSAgICBjYXNlICRkZXBsaWIgaW4KKysJICAgIC1MKikKKysJICAgICAgY2FzZSAiICR0bXBf bGlicyAiIGluCisrCSAgICAgICoiICRkZXBsaWIgIiopIDs7CisrCSAgICAgICopIHRtcF9saWJz PSIkdG1wX2xpYnMgJGRlcGxpYiIgOzsKKysJICAgICAgZXNhYworKwkgICAgICA7OworKwkgICAg KikgdG1wX2xpYnM9IiR0bXBfbGlicyAkZGVwbGliIiA7OworKwkgICAgZXNhYworKwkgIGRvbmUK KysJICBldmFsICR2YXI9XCIkdG1wX2xpYnNcIgorKwlkb25lICMgZm9yIHZhcgorKyAgICAgIGZp CisrICAgICAgIyBMYXN0IHN0ZXA6IHJlbW92ZSBydW50aW1lIGxpYnMgZnJvbSBkZXBlbmRlbmN5 X2xpYnMKKysgICAgICAjICh0aGV5IHN0YXkgaW4gZGVwbGlicykKKysgICAgICB0bXBfbGlicz0K KysgICAgICBmb3IgaSBpbiAkZGVwZW5kZW5jeV9saWJzIDsgZG8KKysJY2FzZSAiICRwcmVkZXBz ICRwb3N0ZGVwcyAkY29tcGlsZXJfbGliX3NlYXJjaF9wYXRoICIgaW4KKysJKiIgJGkgIiopCisr CSAgaT0iIgorKwkgIDs7CisrCWVzYWMKKysJaWYgdGVzdCAtbiAiJGkiIDsgdGhlbgorKwkgIHRt cF9saWJzPSIkdG1wX2xpYnMgJGkiCisrCWZpCisrICAgICAgZG9uZQorKyAgICAgIGRlcGVuZGVu Y3lfbGlicz0kdG1wX2xpYnMKKysgICAgZG9uZSAjIGZvciBwYXNzCisrICAgIGlmIHRlc3QgIiRs aW5rbW9kZSIgPSBwcm9nOyB0aGVuCisrICAgICAgZGxmaWxlcz0iJG5ld2RsZmlsZXMiCisrICAg IGZpCisrICAgIGlmIHRlc3QgIiRsaW5rbW9kZSIgPSBwcm9nIHx8IHRlc3QgIiRsaW5rbW9kZSIg PSBsaWI7IHRoZW4KKysgICAgICBkbHByZWZpbGVzPSIkbmV3ZGxwcmVmaWxlcyIKKysgICAgZmkK KysKKysgICAgY2FzZSAkbGlua21vZGUgaW4KKysgICAgb2xkbGliKQorKyAgICAgIGlmIHRlc3Qg LW4gIiRkbGZpbGVzJGRscHJlZmlsZXMiIHx8IHRlc3QgIiRkbHNlbGYiICE9IG5vOyB0aGVuCisr CWZ1bmNfd2FybmluZyAiXGAtZGxvcGVuJyBpcyBpZ25vcmVkIGZvciBhcmNoaXZlcyIKKysgICAg ICBmaQorKworKyAgICAgIGNhc2UgIiAkZGVwbGlicyIgaW4KKysgICAgICAqXCAtbCogfCAqXCAt TCopCisrCWZ1bmNfd2FybmluZyAiXGAtbCcgYW5kIFxgLUwnIGFyZSBpZ25vcmVkIGZvciBhcmNo aXZlcyIgOzsKKysgICAgICBlc2FjCisrCisrICAgICAgdGVzdCAtbiAiJHJwYXRoIiAmJiBcCisr CWZ1bmNfd2FybmluZyAiXGAtcnBhdGgnIGlzIGlnbm9yZWQgZm9yIGFyY2hpdmVzIgorKworKyAg ICAgIHRlc3QgLW4gIiR4cnBhdGgiICYmIFwKKysJZnVuY193YXJuaW5nICJcYC1SJyBpcyBpZ25v cmVkIGZvciBhcmNoaXZlcyIKKysKKysgICAgICB0ZXN0IC1uICIkdmluZm8iICYmIFwKKysJZnVu Y193YXJuaW5nICJcYC12ZXJzaW9uLWluZm8vLXZlcnNpb24tbnVtYmVyJyBpcyBpZ25vcmVkIGZv ciBhcmNoaXZlcyIKKysKKysgICAgICB0ZXN0IC1uICIkcmVsZWFzZSIgJiYgXAorKwlmdW5jX3dh cm5pbmcgIlxgLXJlbGVhc2UnIGlzIGlnbm9yZWQgZm9yIGFyY2hpdmVzIgorKworKyAgICAgIHRl c3QgLW4gIiRleHBvcnRfc3ltYm9scyRleHBvcnRfc3ltYm9sc19yZWdleCIgJiYgXAorKwlmdW5j X3dhcm5pbmcgIlxgLWV4cG9ydC1zeW1ib2xzJyBpcyBpZ25vcmVkIGZvciBhcmNoaXZlcyIKKysK KysgICAgICAjIE5vdyBzZXQgdGhlIHZhcmlhYmxlcyBmb3IgYnVpbGRpbmcgb2xkIGxpYnJhcmll cy4KKysgICAgICBidWlsZF9saWJ0b29sX2xpYnM9bm8KKysgICAgICBvbGRsaWJzPSIkb3V0cHV0 IgorKyAgICAgIG9ianM9IiRvYmpzJG9sZF9kZXBsaWJzIgorKyAgICAgIDs7CisrCisrICAgIGxp YikKKysgICAgICAjIE1ha2Ugc3VyZSB3ZSBvbmx5IGdlbmVyYXRlIGxpYnJhcmllcyBvZiB0aGUg Zm9ybSBgbGliTkFNRS5sYScuCisrICAgICAgY2FzZSAkb3V0cHV0bmFtZSBpbgorKyAgICAgIGxp YiopCisrCWZ1bmNfc3RyaXBuYW1lICdsaWInICcubGEnICIkb3V0cHV0bmFtZSIKKysJbmFtZT0k ZnVuY19zdHJpcG5hbWVfcmVzdWx0CisrCWV2YWwgc2hhcmVkX2V4dD1cIiRzaHJleHRfY21kc1wi CisrCWV2YWwgbGlibmFtZT1cIiRsaWJuYW1lX3NwZWNcIgorKwk7OworKyAgICAgICopCisrCXRl c3QgIiRtb2R1bGUiID0gbm8gJiYgXAorKwkgIGZ1bmNfZmF0YWxfaGVscCAibGlidG9vbCBsaWJy YXJ5IFxgJG91dHB1dCcgbXVzdCBiZWdpbiB3aXRoIFxgbGliJyIKKysKKysJaWYgdGVzdCAiJG5l ZWRfbGliX3ByZWZpeCIgIT0gbm87IHRoZW4KKysJICAjIEFkZCB0aGUgImxpYiIgcHJlZml4IGZv ciBtb2R1bGVzIGlmIHJlcXVpcmVkCisrCSAgZnVuY19zdHJpcG5hbWUgJycgJy5sYScgIiRvdXRw dXRuYW1lIgorKwkgIG5hbWU9JGZ1bmNfc3RyaXBuYW1lX3Jlc3VsdAorKwkgIGV2YWwgc2hhcmVk X2V4dD1cIiRzaHJleHRfY21kc1wiCisrCSAgZXZhbCBsaWJuYW1lPVwiJGxpYm5hbWVfc3BlY1wi CisrCWVsc2UKKysJICBmdW5jX3N0cmlwbmFtZSAnJyAnLmxhJyAiJG91dHB1dG5hbWUiCisrCSAg bGlibmFtZT0kZnVuY19zdHJpcG5hbWVfcmVzdWx0CisrCWZpCisrCTs7CisrICAgICAgZXNhYwor KworKyAgICAgIGlmIHRlc3QgLW4gIiRvYmpzIjsgdGhlbgorKwlpZiB0ZXN0ICIkZGVwbGlic19j aGVja19tZXRob2QiICE9IHBhc3NfYWxsOyB0aGVuCisrCSAgZnVuY19mYXRhbF9lcnJvciAiY2Fu bm90IGJ1aWxkIGxpYnRvb2wgbGlicmFyeSBcYCRvdXRwdXQnIGZyb20gbm9uLWxpYnRvb2wgb2Jq ZWN0cyBvbiB0aGlzIGhvc3Q6JG9ianMiCisrCWVsc2UKKysJICAkRUNITworKwkgICRFQ0hPICIq KiogV2FybmluZzogTGlua2luZyB0aGUgc2hhcmVkIGxpYnJhcnkgJG91dHB1dCBhZ2FpbnN0IHRo ZSBub24tbGlidG9vbCIKKysJICAkRUNITyAiKioqIG9iamVjdHMgJG9ianMgaXMgbm90IHBvcnRh YmxlISIKKysJICBsaWJvYmpzPSIkbGlib2JqcyAkb2JqcyIKKysJZmkKKysgICAgICBmaQorKwor KyAgICAgIHRlc3QgIiRkbHNlbGYiICE9IG5vICYmIFwKKysJZnVuY193YXJuaW5nICJcYC1kbG9w ZW4gc2VsZicgaXMgaWdub3JlZCBmb3IgbGlidG9vbCBsaWJyYXJpZXMiCisrCisrICAgICAgc2V0 IGR1bW15ICRycGF0aAorKyAgICAgIHNoaWZ0CisrICAgICAgdGVzdCAiJCMiIC1ndCAxICYmIFwK KysJZnVuY193YXJuaW5nICJpZ25vcmluZyBtdWx0aXBsZSBcYC1ycGF0aCdzIGZvciBhIGxpYnRv b2wgbGlicmFyeSIKKysKKysgICAgICBpbnN0YWxsX2xpYmRpcj0iJDEiCisrCisrICAgICAgb2xk bGlicz0KKysgICAgICBpZiB0ZXN0IC16ICIkcnBhdGgiOyB0aGVuCisrCWlmIHRlc3QgIiRidWls ZF9saWJ0b29sX2xpYnMiID0geWVzOyB0aGVuCisrCSAgIyBCdWlsZGluZyBhIGxpYnRvb2wgY29u dmVuaWVuY2UgbGlicmFyeS4KKysJICAjIFNvbWUgY29tcGlsZXJzIGhhdmUgcHJvYmxlbXMgd2l0 aCBhIGAuYWwnIGV4dGVuc2lvbiBzbworKwkgICMgY29udmVuaWVuY2UgbGlicmFyaWVzIHNob3Vs ZCBoYXZlIHRoZSBzYW1lIGV4dGVuc2lvbiBhbgorKwkgICMgYXJjaGl2ZSBub3JtYWxseSB3b3Vs ZC4KKysJICBvbGRsaWJzPSIkb3V0cHV0X29iamRpci8kbGlibmFtZS4kbGliZXh0ICRvbGRsaWJz IgorKwkgIGJ1aWxkX2xpYnRvb2xfbGlicz1jb252ZW5pZW5jZQorKwkgIGJ1aWxkX29sZF9saWJz PXllcworKwlmaQorKworKwl0ZXN0IC1uICIkdmluZm8iICYmIFwKKysJICBmdW5jX3dhcm5pbmcg IlxgLXZlcnNpb24taW5mby8tdmVyc2lvbi1udW1iZXInIGlzIGlnbm9yZWQgZm9yIGNvbnZlbmll bmNlIGxpYnJhcmllcyIKKysKKysJdGVzdCAtbiAiJHJlbGVhc2UiICYmIFwKKysJICBmdW5jX3dh cm5pbmcgIlxgLXJlbGVhc2UnIGlzIGlnbm9yZWQgZm9yIGNvbnZlbmllbmNlIGxpYnJhcmllcyIK KysgICAgICBlbHNlCisrCisrCSMgUGFyc2UgdGhlIHZlcnNpb24gaW5mb3JtYXRpb24gYXJndW1l bnQuCisrCXNhdmVfaWZzPSIkSUZTIjsgSUZTPSc6JworKwlzZXQgZHVtbXkgJHZpbmZvIDAgMCAw CisrCXNoaWZ0CisrCUlGUz0iJHNhdmVfaWZzIgorKworKwl0ZXN0IC1uICIkNyIgJiYgXAorKwkg IGZ1bmNfZmF0YWxfaGVscCAidG9vIG1hbnkgcGFyYW1ldGVycyB0byBcYC12ZXJzaW9uLWluZm8n IgorKworKwkjIGNvbnZlcnQgYWJzb2x1dGUgdmVyc2lvbiBudW1iZXJzIHRvIGxpYnRvb2wgYWdl cworKwkjIHRoaXMgcmV0YWlucyBjb21wYXRpYmlsaXR5IHdpdGggLmxhIGZpbGVzIGFuZCBhdHRl bXB0cworKwkjIHRvIG1ha2UgdGhlIGNvZGUgYmVsb3cgYSBiaXQgbW9yZSBjb21wcmVoZW5zaWJs ZQorKworKwljYXNlICR2aW5mb19udW1iZXIgaW4KKysJeWVzKQorKwkgIG51bWJlcl9tYWpvcj0i JDEiCisrCSAgbnVtYmVyX21pbm9yPSIkMiIKKysJICBudW1iZXJfcmV2aXNpb249IiQzIgorKwkg ICMKKysJICAjIFRoZXJlIGFyZSByZWFsbHkgb25seSB0d28ga2luZHMgLS0gdGhvc2UgdGhhdAor KwkgICMgdXNlIHRoZSBjdXJyZW50IHJldmlzaW9uIGFzIHRoZSBtYWpvciB2ZXJzaW9uCisrCSAg IyBhbmQgdGhvc2UgdGhhdCBzdWJ0cmFjdCBhZ2UgYW5kIHVzZSBhZ2UgYXMKKysJICAjIGEgbWlu b3IgdmVyc2lvbi4gIEJ1dCwgdGhlbiB0aGVyZSBpcyBpcml4CisrCSAgIyB3aGljaCBoYXMgYW4g ZXh0cmEgMSBhZGRlZCBqdXN0IGZvciBmdW4KKysJICAjCisrCSAgY2FzZSAkdmVyc2lvbl90eXBl IGluCisrCSAgZGFyd2lufGxpbnV4fG9zZnx3aW5kb3dzfG5vbmUpCisrCSAgICBmdW5jX2FyaXRo ICRudW1iZXJfbWFqb3IgKyAkbnVtYmVyX21pbm9yCisrCSAgICBjdXJyZW50PSRmdW5jX2FyaXRo X3Jlc3VsdAorKwkgICAgYWdlPSIkbnVtYmVyX21pbm9yIgorKwkgICAgcmV2aXNpb249IiRudW1i ZXJfcmV2aXNpb24iCisrCSAgICA7OworKwkgIGZyZWVic2QtYW91dHxmcmVlYnNkLWVsZnxzdW5v cykKKysJICAgIGN1cnJlbnQ9IiRudW1iZXJfbWFqb3IiCisrCSAgICByZXZpc2lvbj0iJG51bWJl cl9taW5vciIKKysJICAgIGFnZT0iMCIKKysJICAgIDs7CisrCSAgaXJpeHxub25zdG9wdXgpCisr CSAgICBmdW5jX2FyaXRoICRudW1iZXJfbWFqb3IgKyAkbnVtYmVyX21pbm9yCisrCSAgICBjdXJy ZW50PSRmdW5jX2FyaXRoX3Jlc3VsdAorKwkgICAgYWdlPSIkbnVtYmVyX21pbm9yIgorKwkgICAg cmV2aXNpb249IiRudW1iZXJfbWlub3IiCisrCSAgICBsdF9pcml4X2luY3JlbWVudD1ubworKwkg ICAgOzsKKysJICBlc2FjCisrCSAgOzsKKysJbm8pCisrCSAgY3VycmVudD0iJDEiCisrCSAgcmV2 aXNpb249IiQyIgorKwkgIGFnZT0iJDMiCisrCSAgOzsKKysJZXNhYworKworKwkjIENoZWNrIHRo YXQgZWFjaCBvZiB0aGUgdGhpbmdzIGFyZSB2YWxpZCBudW1iZXJzLgorKwljYXNlICRjdXJyZW50 IGluCisrCTB8WzEtOV18WzEtOV1bMC05XXxbMS05XVswLTldWzAtOV18WzEtOV1bMC05XVswLTld WzAtOV18WzEtOV1bMC05XVswLTldWzAtOV1bMC05XSkgOzsKKysJKikKKysJICBmdW5jX2Vycm9y ICJDVVJSRU5UIFxgJGN1cnJlbnQnIG11c3QgYmUgYSBub25uZWdhdGl2ZSBpbnRlZ2VyIgorKwkg IGZ1bmNfZmF0YWxfZXJyb3IgIlxgJHZpbmZvJyBpcyBub3QgdmFsaWQgdmVyc2lvbiBpbmZvcm1h dGlvbiIKKysJICA7OworKwllc2FjCisrCisrCWNhc2UgJHJldmlzaW9uIGluCisrCTB8WzEtOV18 WzEtOV1bMC05XXxbMS05XVswLTldWzAtOV18WzEtOV1bMC05XVswLTldWzAtOV18WzEtOV1bMC05 XVswLTldWzAtOV1bMC05XSkgOzsKKysJKikKKysJICBmdW5jX2Vycm9yICJSRVZJU0lPTiBcYCRy ZXZpc2lvbicgbXVzdCBiZSBhIG5vbm5lZ2F0aXZlIGludGVnZXIiCisrCSAgZnVuY19mYXRhbF9l cnJvciAiXGAkdmluZm8nIGlzIG5vdCB2YWxpZCB2ZXJzaW9uIGluZm9ybWF0aW9uIgorKwkgIDs7 CisrCWVzYWMKKysKKysJY2FzZSAkYWdlIGluCisrCTB8WzEtOV18WzEtOV1bMC05XXxbMS05XVsw LTldWzAtOV18WzEtOV1bMC05XVswLTldWzAtOV18WzEtOV1bMC05XVswLTldWzAtOV1bMC05XSkg OzsKKysJKikKKysJICBmdW5jX2Vycm9yICJBR0UgXGAkYWdlJyBtdXN0IGJlIGEgbm9ubmVnYXRp dmUgaW50ZWdlciIKKysJICBmdW5jX2ZhdGFsX2Vycm9yICJcYCR2aW5mbycgaXMgbm90IHZhbGlk IHZlcnNpb24gaW5mb3JtYXRpb24iCisrCSAgOzsKKysJZXNhYworKworKwlpZiB0ZXN0ICIkYWdl IiAtZ3QgIiRjdXJyZW50IjsgdGhlbgorKwkgIGZ1bmNfZXJyb3IgIkFHRSBcYCRhZ2UnIGlzIGdy ZWF0ZXIgdGhhbiB0aGUgY3VycmVudCBpbnRlcmZhY2UgbnVtYmVyIFxgJGN1cnJlbnQnIgorKwkg IGZ1bmNfZmF0YWxfZXJyb3IgIlxgJHZpbmZvJyBpcyBub3QgdmFsaWQgdmVyc2lvbiBpbmZvcm1h dGlvbiIKKysJZmkKKysKKysJIyBDYWxjdWxhdGUgdGhlIHZlcnNpb24gdmFyaWFibGVzLgorKwlt YWpvcj0KKysJdmVyc3VmZml4PQorKwl2ZXJzdHJpbmc9CisrCWNhc2UgJHZlcnNpb25fdHlwZSBp bgorKwlub25lKSA7OworKworKwlkYXJ3aW4pCisrCSAgIyBMaWtlIExpbnV4LCBidXQgd2l0aCB0 aGUgY3VycmVudCB2ZXJzaW9uIGF2YWlsYWJsZSBpbgorKwkgICMgdmVyc3RyaW5nIGZvciBjb2Rp bmcgaXQgaW50byB0aGUgbGlicmFyeSBoZWFkZXIKKysJICBmdW5jX2FyaXRoICRjdXJyZW50IC0g JGFnZQorKwkgIG1ham9yPS4kZnVuY19hcml0aF9yZXN1bHQKKysJICB2ZXJzdWZmaXg9IiRtYWpv ci4kYWdlLiRyZXZpc2lvbiIKKysJICAjIERhcndpbiBsZCBkb2Vzbid0IGxpa2UgMCBmb3IgdGhl c2Ugb3B0aW9ucy4uLgorKwkgIGZ1bmNfYXJpdGggJGN1cnJlbnQgKyAxCisrCSAgbWlub3JfY3Vy cmVudD0kZnVuY19hcml0aF9yZXN1bHQKKysJICB4bGN2ZXJzdHJpbmc9IiR7d2x9LWNvbXBhdGli aWxpdHlfdmVyc2lvbiAke3dsfSRtaW5vcl9jdXJyZW50ICR7d2x9LWN1cnJlbnRfdmVyc2lvbiAk e3dsfSRtaW5vcl9jdXJyZW50LiRyZXZpc2lvbiIKKysJICB2ZXJzdHJpbmc9Ii1jb21wYXRpYmls aXR5X3ZlcnNpb24gJG1pbm9yX2N1cnJlbnQgLWN1cnJlbnRfdmVyc2lvbiAkbWlub3JfY3VycmVu dC4kcmV2aXNpb24iCisrCSAgOzsKKysKKysJZnJlZWJzZC1hb3V0KQorKwkgIG1ham9yPSIuJGN1 cnJlbnQiCisrCSAgdmVyc3VmZml4PSIuJGN1cnJlbnQuJHJldmlzaW9uIjsKKysJICA7OworKwor KwlmcmVlYnNkLWVsZikKKysJICBtYWpvcj0iLiRjdXJyZW50IgorKwkgIHZlcnN1ZmZpeD0iLiRj dXJyZW50IgorKwkgIDs7CisrCisrCWlyaXggfCBub25zdG9wdXgpCisrCSAgaWYgdGVzdCAiWCRs dF9pcml4X2luY3JlbWVudCIgPSAiWG5vIjsgdGhlbgorKwkgICAgZnVuY19hcml0aCAkY3VycmVu dCAtICRhZ2UKKysJICBlbHNlCisrCSAgICBmdW5jX2FyaXRoICRjdXJyZW50IC0gJGFnZSArIDEK KysJICBmaQorKwkgIG1ham9yPSRmdW5jX2FyaXRoX3Jlc3VsdAorKworKwkgIGNhc2UgJHZlcnNp b25fdHlwZSBpbgorKwkgICAgbm9uc3RvcHV4KSB2ZXJzdHJpbmdfcHJlZml4PW5vbnN0b3B1eCA7 OworKwkgICAgKikgICAgICAgICB2ZXJzdHJpbmdfcHJlZml4PXNnaSA7OworKwkgIGVzYWMKKysJ ICB2ZXJzdHJpbmc9IiR2ZXJzdHJpbmdfcHJlZml4JG1ham9yLiRyZXZpc2lvbiIKKysKKysJICAj IEFkZCBpbiBhbGwgdGhlIGludGVyZmFjZXMgdGhhdCB3ZSBhcmUgY29tcGF0aWJsZSB3aXRoLgor KwkgIGxvb3A9JHJldmlzaW9uCisrCSAgd2hpbGUgdGVzdCAiJGxvb3AiIC1uZSAwOyBkbworKwkg ICAgZnVuY19hcml0aCAkcmV2aXNpb24gLSAkbG9vcAorKwkgICAgaWZhY2U9JGZ1bmNfYXJpdGhf cmVzdWx0CisrCSAgICBmdW5jX2FyaXRoICRsb29wIC0gMQorKwkgICAgbG9vcD0kZnVuY19hcml0 aF9yZXN1bHQKKysJICAgIHZlcnN0cmluZz0iJHZlcnN0cmluZ19wcmVmaXgkbWFqb3IuJGlmYWNl OiR2ZXJzdHJpbmciCisrCSAgZG9uZQorKworKwkgICMgQmVmb3JlIHRoaXMgcG9pbnQsICRtYWpv ciBtdXN0IG5vdCBjb250YWluIGAuJy4KKysJICBtYWpvcj0uJG1ham9yCisrCSAgdmVyc3VmZml4 PSIkbWFqb3IuJHJldmlzaW9uIgorKwkgIDs7CisrCisrCWxpbnV4KQorKwkgIGZ1bmNfYXJpdGgg JGN1cnJlbnQgLSAkYWdlCisrCSAgbWFqb3I9LiRmdW5jX2FyaXRoX3Jlc3VsdAorKwkgIHZlcnN1 ZmZpeD0iJG1ham9yLiRhZ2UuJHJldmlzaW9uIgorKwkgIDs7CisrCisrCW9zZikKKysJICBmdW5j X2FyaXRoICRjdXJyZW50IC0gJGFnZQorKwkgIG1ham9yPS4kZnVuY19hcml0aF9yZXN1bHQKKysJ ICB2ZXJzdWZmaXg9Ii4kY3VycmVudC4kYWdlLiRyZXZpc2lvbiIKKysJICB2ZXJzdHJpbmc9IiRj dXJyZW50LiRhZ2UuJHJldmlzaW9uIgorKworKwkgICMgQWRkIGluIGFsbCB0aGUgaW50ZXJmYWNl cyB0aGF0IHdlIGFyZSBjb21wYXRpYmxlIHdpdGguCisrCSAgbG9vcD0kYWdlCisrCSAgd2hpbGUg dGVzdCAiJGxvb3AiIC1uZSAwOyBkbworKwkgICAgZnVuY19hcml0aCAkY3VycmVudCAtICRsb29w CisrCSAgICBpZmFjZT0kZnVuY19hcml0aF9yZXN1bHQKKysJICAgIGZ1bmNfYXJpdGggJGxvb3Ag LSAxCisrCSAgICBsb29wPSRmdW5jX2FyaXRoX3Jlc3VsdAorKwkgICAgdmVyc3RyaW5nPSIkdmVy c3RyaW5nOiR7aWZhY2V9LjAiCisrCSAgZG9uZQorKworKwkgICMgTWFrZSBleGVjdXRhYmxlcyBk ZXBlbmQgb24gb3VyIGN1cnJlbnQgdmVyc2lvbi4KKysJICB2ZXJzdHJpbmc9IiR2ZXJzdHJpbmc6 JHtjdXJyZW50fS4wIgorKwkgIDs7CisrCisrCXFueCkKKysJICBtYWpvcj0iLiRjdXJyZW50Igor KwkgIHZlcnN1ZmZpeD0iLiRjdXJyZW50IgorKwkgIDs7CisrCisrCXN1bm9zKQorKwkgIG1ham9y PSIuJGN1cnJlbnQiCisrCSAgdmVyc3VmZml4PSIuJGN1cnJlbnQuJHJldmlzaW9uIgorKwkgIDs7 CisrCisrCXdpbmRvd3MpCisrCSAgIyBVc2UgJy0nIHJhdGhlciB0aGFuICcuJywgc2luY2Ugd2Ug b25seSB3YW50IG9uZQorKwkgICMgZXh0ZW5zaW9uIG9uIERPUyA4LjMgZmlsZXN5c3RlbXMuCisr CSAgZnVuY19hcml0aCAkY3VycmVudCAtICRhZ2UKKysJICBtYWpvcj0kZnVuY19hcml0aF9yZXN1 bHQKKysJICB2ZXJzdWZmaXg9Ii0kbWFqb3IiCisrCSAgOzsKKysKKysJKikKKysJICBmdW5jX2Zh dGFsX2NvbmZpZ3VyYXRpb24gInVua25vd24gbGlicmFyeSB2ZXJzaW9uIHR5cGUgXGAkdmVyc2lv bl90eXBlJyIKKysJICA7OworKwllc2FjCisrCisrCSMgQ2xlYXIgdGhlIHZlcnNpb24gaW5mbyBp ZiB3ZSBkZWZhdWx0ZWQsIGFuZCB0aGV5IHNwZWNpZmllZCBhIHJlbGVhc2UuCisrCWlmIHRlc3Qg LXogIiR2aW5mbyIgJiYgdGVzdCAtbiAiJHJlbGVhc2UiOyB0aGVuCisrCSAgbWFqb3I9CisrCSAg Y2FzZSAkdmVyc2lvbl90eXBlIGluCisrCSAgZGFyd2luKQorKwkgICAgIyB3ZSBjYW4ndCBjaGVj ayBmb3IgIjAuMCIgaW4gYXJjaGl2ZV9jbWRzIGR1ZSB0byBxdW90aW5nCisrCSAgICAjIHByb2Js ZW1zLCBzbyB3ZSByZXNldCBpdCBjb21wbGV0ZWx5CisrCSAgICB2ZXJzdHJpbmc9CisrCSAgICA7 OworKwkgICopCisrCSAgICB2ZXJzdHJpbmc9IjAuMCIKKysJICAgIDs7CisrCSAgZXNhYworKwkg IGlmIHRlc3QgIiRuZWVkX3ZlcnNpb24iID0gbm87IHRoZW4KKysJICAgIHZlcnN1ZmZpeD0KKysJ ICBlbHNlCisrCSAgICB2ZXJzdWZmaXg9Ii4wLjAiCisrCSAgZmkKKysJZmkKKysKKysJIyBSZW1v dmUgdmVyc2lvbiBpbmZvIGZyb20gbmFtZSBpZiB2ZXJzaW9uaW5nIHNob3VsZCBiZSBhdm9pZGVk CisrCWlmIHRlc3QgIiRhdm9pZF92ZXJzaW9uIiA9IHllcyAmJiB0ZXN0ICIkbmVlZF92ZXJzaW9u IiA9IG5vOyB0aGVuCisrCSAgbWFqb3I9CisrCSAgdmVyc3VmZml4PQorKwkgIHZlcnN0cmluZz0i IgorKwlmaQorKworKwkjIENoZWNrIHRvIHNlZSBpZiB0aGUgYXJjaGl2ZSB3aWxsIGhhdmUgdW5k ZWZpbmVkIHN5bWJvbHMuCisrCWlmIHRlc3QgIiRhbGxvd191bmRlZmluZWQiID0geWVzOyB0aGVu CisrCSAgaWYgdGVzdCAiJGFsbG93X3VuZGVmaW5lZF9mbGFnIiA9IHVuc3VwcG9ydGVkOyB0aGVu CisrCSAgICBmdW5jX3dhcm5pbmcgInVuZGVmaW5lZCBzeW1ib2xzIG5vdCBhbGxvd2VkIGluICRo b3N0IHNoYXJlZCBsaWJyYXJpZXMiCisrCSAgICBidWlsZF9saWJ0b29sX2xpYnM9bm8KKysJICAg IGJ1aWxkX29sZF9saWJzPXllcworKwkgIGZpCisrCWVsc2UKKysJICAjIERvbid0IGFsbG93IHVu ZGVmaW5lZCBzeW1ib2xzLgorKwkgIGFsbG93X3VuZGVmaW5lZF9mbGFnPSIkbm9fdW5kZWZpbmVk X2ZsYWciCisrCWZpCisrCisrICAgICAgZmkKKysKKysgICAgICBmdW5jX2dlbmVyYXRlX2Rsc3lt cyAiJGxpYm5hbWUiICIkbGlibmFtZSIgInllcyIKKysgICAgICBsaWJvYmpzPSIkbGlib2JqcyAk c3ltZmlsZW9iaiIKKysgICAgICB0ZXN0ICJYJGxpYm9ianMiID0gIlggIiAmJiBsaWJvYmpzPQor KworKyAgICAgIGlmIHRlc3QgIiRtb2RlIiAhPSByZWxpbms7IHRoZW4KKysJIyBSZW1vdmUgb3Vy IG91dHB1dHMsIGJ1dCBkb24ndCByZW1vdmUgb2JqZWN0IGZpbGVzIHNpbmNlIHRoZXkKKysJIyBt YXkgaGF2ZSBiZWVuIGNyZWF0ZWQgd2hlbiBjb21waWxpbmcgUElDIG9iamVjdHMuCisrCXJlbW92 ZWxpc3Q9CisrCXRlbXByZW1vdmVsaXN0PWAkRUNITyAiJG91dHB1dF9vYmpkaXIvKiJgCisrCWZv ciBwIGluICR0ZW1wcmVtb3ZlbGlzdDsgZG8KKysJICBjYXNlICRwIGluCisrCSAgICAqLiRvYmpl eHQgfCAqLmdjbm8pCisrCSAgICAgICA7OworKwkgICAgJG91dHB1dF9vYmpkaXIvJG91dHB1dG5h bWUgfCAkb3V0cHV0X29iamRpci8kbGlibmFtZS4qIHwgJG91dHB1dF9vYmpkaXIvJHtsaWJuYW1l fSR7cmVsZWFzZX0uKikKKysJICAgICAgIGlmIHRlc3QgIlgkcHJlY2lvdXNfZmlsZXNfcmVnZXgi ICE9ICJYIjsgdGhlbgorKwkJIGlmICRFQ0hPICIkcCIgfCAkRUdSRVAgLWUgIiRwcmVjaW91c19m aWxlc19yZWdleCIgPi9kZXYvbnVsbCAyPiYxCisrCQkgdGhlbgorKwkJICAgY29udGludWUKKysJ CSBmaQorKwkgICAgICAgZmkKKysJICAgICAgIHJlbW92ZWxpc3Q9IiRyZW1vdmVsaXN0ICRwIgor KwkgICAgICAgOzsKKysJICAgICopIDs7CisrCSAgZXNhYworKwlkb25lCisrCXRlc3QgLW4gIiRy ZW1vdmVsaXN0IiAmJiBcCisrCSAgZnVuY19zaG93X2V2YWwgIiR7Uk19ciBcJHJlbW92ZWxpc3Qi CisrICAgICAgZmkKKysKKysgICAgICAjIE5vdyBzZXQgdGhlIHZhcmlhYmxlcyBmb3IgYnVpbGRp bmcgb2xkIGxpYnJhcmllcy4KKysgICAgICBpZiB0ZXN0ICIkYnVpbGRfb2xkX2xpYnMiID0geWVz ICYmIHRlc3QgIiRidWlsZF9saWJ0b29sX2xpYnMiICE9IGNvbnZlbmllbmNlIDsgdGhlbgorKwlv bGRsaWJzPSIkb2xkbGlicyAkb3V0cHV0X29iamRpci8kbGlibmFtZS4kbGliZXh0IgorKworKwkj IFRyYW5zZm9ybSAubG8gZmlsZXMgdG8gLm8gZmlsZXMuCisrCW9sZG9ianM9IiRvYmpzICJgJEVD SE8gIlgkbGlib2JqcyIgfCAkU1AyTkwgfCAkWHNlZCAtZSAnL1wuJyR7bGliZXh0fSckL2QnIC1l ICIkbG8ybyIgfCAkTkwyU1BgCisrICAgICAgZmkKKysKKysgICAgICAjIEVsaW1pbmF0ZSBhbGwg dGVtcG9yYXJ5IGRpcmVjdG9yaWVzLgorKyAgICAgICNmb3IgcGF0aCBpbiAkbm90aW5zdF9wYXRo OyBkbworKyAgICAgICMJbGliX3NlYXJjaF9wYXRoPWAkRUNITyAiWCRsaWJfc2VhcmNoX3BhdGgg IiB8ICRYc2VkIC1lICJzJSAkcGF0aCAlICVnImAKKysgICAgICAjCWRlcGxpYnM9YCRFQ0hPICJY JGRlcGxpYnMgIiB8ICRYc2VkIC1lICJzJSAtTCRwYXRoICUgJWciYAorKyAgICAgICMJZGVwZW5k ZW5jeV9saWJzPWAkRUNITyAiWCRkZXBlbmRlbmN5X2xpYnMgIiB8ICRYc2VkIC1lICJzJSAtTCRw YXRoICUgJWciYAorKyAgICAgICNkb25lCisrCisrICAgICAgaWYgdGVzdCAtbiAiJHhycGF0aCI7 IHRoZW4KKysJIyBJZiB0aGUgdXNlciBzcGVjaWZpZWQgYW55IHJwYXRoIGZsYWdzLCB0aGVuIGFk ZCB0aGVtLgorKwl0ZW1wX3hycGF0aD0KKysJZm9yIGxpYmRpciBpbiAkeHJwYXRoOyBkbworKwkg IHRlbXBfeHJwYXRoPSIkdGVtcF94cnBhdGggLVIkbGliZGlyIgorKwkgIGNhc2UgIiRmaW5hbGl6 ZV9ycGF0aCAiIGluCisrCSAgKiIgJGxpYmRpciAiKikgOzsKKysJICAqKSBmaW5hbGl6ZV9ycGF0 aD0iJGZpbmFsaXplX3JwYXRoICRsaWJkaXIiIDs7CisrCSAgZXNhYworKwlkb25lCisrCWlmIHRl c3QgIiRoYXJkY29kZV9pbnRvX2xpYnMiICE9IHllcyB8fCB0ZXN0ICIkYnVpbGRfb2xkX2xpYnMi ID0geWVzOyB0aGVuCisrCSAgZGVwZW5kZW5jeV9saWJzPSIkdGVtcF94cnBhdGggJGRlcGVuZGVu Y3lfbGlicyIKKysJZmkKKysgICAgICBmaQorKworKyAgICAgICMgTWFrZSBzdXJlIGRsZmlsZXMg Y29udGFpbnMgb25seSB1bmlxdWUgZmlsZXMgdGhhdCB3b24ndCBiZSBkbHByZW9wZW5lZAorKyAg ICAgIG9sZF9kbGZpbGVzPSIkZGxmaWxlcyIKKysgICAgICBkbGZpbGVzPQorKyAgICAgIGZvciBs aWIgaW4gJG9sZF9kbGZpbGVzOyBkbworKwljYXNlICIgJGRscHJlZmlsZXMgJGRsZmlsZXMgIiBp bgorKwkqIiAkbGliICIqKSA7OworKwkqKSBkbGZpbGVzPSIkZGxmaWxlcyAkbGliIiA7OworKwll c2FjCisrICAgICAgZG9uZQorKworKyAgICAgICMgTWFrZSBzdXJlIGRscHJlZmlsZXMgY29udGFp bnMgb25seSB1bmlxdWUgZmlsZXMKKysgICAgICBvbGRfZGxwcmVmaWxlcz0iJGRscHJlZmlsZXMi CisrICAgICAgZGxwcmVmaWxlcz0KKysgICAgICBmb3IgbGliIGluICRvbGRfZGxwcmVmaWxlczsg ZG8KKysJY2FzZSAiJGRscHJlZmlsZXMgIiBpbgorKwkqIiAkbGliICIqKSA7OworKwkqKSBkbHBy ZWZpbGVzPSIkZGxwcmVmaWxlcyAkbGliIiA7OworKwllc2FjCisrICAgICAgZG9uZQorKworKyAg ICAgIGlmIHRlc3QgIiRidWlsZF9saWJ0b29sX2xpYnMiID0geWVzOyB0aGVuCisrCWlmIHRlc3Qg LW4gIiRycGF0aCI7IHRoZW4KKysJICBjYXNlICRob3N0IGluCisrCSAgKi0qLWN5Z3dpbiogfCAq LSotbWluZ3cqIHwgKi0qLXB3MzIqIHwgKi0qLW9zMiogfCAqLSotYmVvcyogfCAqLWNlZ2NjKikK KysJICAgICMgdGhlc2Ugc3lzdGVtcyBkb24ndCBhY3R1YWxseSBoYXZlIGEgYyBsaWJyYXJ5IChh cyBzdWNoKSEKKysJICAgIDs7CisrCSAgKi0qLXJoYXBzb2R5KiB8ICotKi1kYXJ3aW4xLlswMTJd KQorKwkgICAgIyBSaGFwc29keSBDIGxpYnJhcnkgaXMgaW4gdGhlIFN5c3RlbSBmcmFtZXdvcmsK KysJICAgIGRlcGxpYnM9IiRkZXBsaWJzIFN5c3RlbS5sdGZyYW1ld29yayIKKysJICAgIDs7Cisr CSAgKi0qLW5ldGJzZCopCisrCSAgICAjIERvbid0IGxpbmsgd2l0aCBsaWJjIHVudGlsIHRoZSBh Lm91dCBsZC5zbyBpcyBmaXhlZC4KKysJICAgIDs7CisrCSAgKi0qLW9wZW5ic2QqIHwgKi0qLWZy ZWVic2QqIHwgKi0qLWRyYWdvbmZseSopCisrCSAgICAjIERvIG5vdCBpbmNsdWRlIGxpYmMgZHVl IHRvIHVzIGhhdmluZyBsaWJjL2xpYmNfci4KKysJICAgIDs7CisrCSAgKi0qLXNjbzMuMnY1KiB8 ICotKi1zY281djYqKQorKwkgICAgIyBDYXVzZXMgcHJvYmxlbXMgd2l0aCBfX2N0eXBlCisrCSAg ICA7OworKwkgICotKi1zeXN2NC4ydXcyKiB8ICotKi1zeXN2NSogfCAqLSotdW5peHdhcmUqIHwg Ki0qLU9wZW5VTklYKikKKysJICAgICMgQ29tcGlsZXIgaW5zZXJ0cyBsaWJjIGluIHRoZSBjb3Jy ZWN0IHBsYWNlIGZvciB0aHJlYWRzIHRvIHdvcmsKKysJICAgIDs7CisrCSAgKikKKysJICAgICMg QWRkIGxpYmMgdG8gZGVwbGlicyBvbiBhbGwgb3RoZXIgc3lzdGVtcyBpZiBuZWNlc3NhcnkuCisr CSAgICBpZiB0ZXN0ICIkYnVpbGRfbGlidG9vbF9uZWVkX2xjIiA9ICJ5ZXMiOyB0aGVuCisrCSAg ICAgIGRlcGxpYnM9IiRkZXBsaWJzIC1sYyIKKysJICAgIGZpCisrCSAgICA7OworKwkgIGVzYWMK KysJZmkKKysKKysJIyBUcmFuc2Zvcm0gZGVwbGlicyBpbnRvIG9ubHkgZGVwbGlicyB0aGF0IGNh biBiZSBsaW5rZWQgaW4gc2hhcmVkLgorKwluYW1lX3NhdmU9JG5hbWUKKysJbGlibmFtZV9zYXZl PSRsaWJuYW1lCisrCXJlbGVhc2Vfc2F2ZT0kcmVsZWFzZQorKwl2ZXJzdWZmaXhfc2F2ZT0kdmVy c3VmZml4CisrCW1ham9yX3NhdmU9JG1ham9yCisrCSMgSSdtIG5vdCBzdXJlIGlmIEknbSB0cmVh dGluZyB0aGUgcmVsZWFzZSBjb3JyZWN0bHkuICBJIHRoaW5rCisrCSMgcmVsZWFzZSBzaG91bGQg c2hvdyB1cCBpbiB0aGUgLWwgKGllIC1sZ21wNSkgc28gd2UgZG9uJ3Qgd2FudCB0bworKwkjIGFk ZCBpdCBpbiB0d2ljZS4gIElzIHRoYXQgY29ycmVjdD8KKysJcmVsZWFzZT0iIgorKwl2ZXJzdWZm aXg9IiIKKysJbWFqb3I9IiIKKysJbmV3ZGVwbGlicz0KKysJZHJvcHBlZGRlcHM9bm8KKysJY2Fz ZSAkZGVwbGlic19jaGVja19tZXRob2QgaW4KKysJcGFzc19hbGwpCisrCSAgIyBEb24ndCBjaGVj ayBmb3Igc2hhcmVkL3N0YXRpYy4gIEV2ZXJ5dGhpbmcgd29ya3MuCisrCSAgIyBUaGlzIG1pZ2h0 IGJlIGEgbGl0dGxlIG5haXZlLiAgV2UgbWlnaHQgd2FudCB0byBjaGVjaworKwkgICMgd2hldGhl ciB0aGUgbGlicmFyeSBleGlzdHMgb3Igbm90LiAgQnV0IHRoaXMgaXMgb24KKysJICAjIG9zZjMg JiBvc2Y0IGFuZCBJJ20gbm90IHJlYWxseSBzdXJlLi4uIEp1c3QKKysJICAjIGltcGxlbWVudGlu ZyB3aGF0IHdhcyBhbHJlYWR5IHRoZSBiZWhhdmlvci4KKysJICBuZXdkZXBsaWJzPSRkZXBsaWJz CisrCSAgOzsKKysJdGVzdF9jb21waWxlKQorKwkgICMgVGhpcyBjb2RlIHN0cmVzc2VzIHRoZSAi bGlicmFyaWVzIGFyZSBwcm9ncmFtcyIgcGFyYWRpZ20gdG8gaXRzCisrCSAgIyBsaW1pdHMuIE1h eWJlIGV2ZW4gYnJlYWtzIGl0LiAgV2UgY29tcGlsZSBhIHByb2dyYW0sIGxpbmtpbmcgaXQKKysJ ICAjIGFnYWluc3QgdGhlIGRlcGxpYnMgYXMgYSBwcm94eSBmb3IgdGhlIGxpYnJhcnkuICBUaGVu IHdlIGNhbiBjaGVjaworKwkgICMgd2hldGhlciB0aGV5IGxpbmtlZCBpbiBzdGF0aWNhbGx5IG9y IGR5bmFtaWNhbGx5IHdpdGggbGRkLgorKwkgICRvcHRfZHJ5X3J1biB8fCAkUk0gY29uZnRlc3Qu YworKwkgIGNhdCA+IGNvbmZ0ZXN0LmMgPDxFT0YKKysJICBpbnQgbWFpbigpIHsgcmV0dXJuIDA7 IH0KKytFT0YKKysJICAkb3B0X2RyeV9ydW4gfHwgJFJNIGNvbmZ0ZXN0CisrCSAgaWYgJExUQ0Mg JExUQ0ZMQUdTIC1vIGNvbmZ0ZXN0IGNvbmZ0ZXN0LmMgJGRlcGxpYnM7IHRoZW4KKysJICAgIGxk ZF9vdXRwdXQ9YGxkZCBjb25mdGVzdGAKKysJICAgIGZvciBpIGluICRkZXBsaWJzOyBkbworKwkg ICAgICBjYXNlICRpIGluCisrCSAgICAgIC1sKikKKysJCWZ1bmNfc3RyaXBuYW1lIC1sICcnICIk aSIKKysJCW5hbWU9JGZ1bmNfc3RyaXBuYW1lX3Jlc3VsdAorKwkJaWYgdGVzdCAiWCRhbGxvd19s aWJ0b29sX2xpYnNfd2l0aF9zdGF0aWNfcnVudGltZXMiID0gIlh5ZXMiIDsgdGhlbgorKwkJICBj YXNlICIgJHByZWRlcHMgJHBvc3RkZXBzICIgaW4KKysJCSAgKiIgJGkgIiopCisrCQkgICAgbmV3 ZGVwbGlicz0iJG5ld2RlcGxpYnMgJGkiCisrCQkgICAgaT0iIgorKwkJICAgIDs7CisrCQkgIGVz YWMKKysJCWZpCisrCQlpZiB0ZXN0IC1uICIkaSIgOyB0aGVuCisrCQkgIGxpYm5hbWU9YGV2YWwg IlxcJEVDSE8gXCIkbGlibmFtZV9zcGVjXCIiYAorKwkJICBkZXBsaWJfbWF0Y2hlcz1gZXZhbCAi XFwkRUNITyBcIiRsaWJyYXJ5X25hbWVzX3NwZWNcIiJgCisrCQkgIHNldCBkdW1teSAkZGVwbGli X21hdGNoZXM7IHNoaWZ0CisrCQkgIGRlcGxpYl9tYXRjaD0kMQorKwkJICBpZiB0ZXN0IGBleHBy ICIkbGRkX291dHB1dCIgOiAiLiokZGVwbGliX21hdGNoImAgLW5lIDAgOyB0aGVuCisrCQkgICAg bmV3ZGVwbGlicz0iJG5ld2RlcGxpYnMgJGkiCisrCQkgIGVsc2UKKysJCSAgICBkcm9wcGVkZGVw cz15ZXMKKysJCSAgICAkRUNITworKwkJICAgICRFQ0hPICIqKiogV2FybmluZzogZHluYW1pYyBs aW5rZXIgZG9lcyBub3QgYWNjZXB0IG5lZWRlZCBsaWJyYXJ5ICRpLiIKKysJCSAgICAkRUNITyAi KioqIEkgaGF2ZSB0aGUgY2FwYWJpbGl0eSB0byBtYWtlIHRoYXQgbGlicmFyeSBhdXRvbWF0aWNh bGx5IGxpbmsgaW4gd2hlbiIKKysJCSAgICAkRUNITyAiKioqIHlvdSBsaW5rIHRvIHRoaXMgbGli cmFyeS4gIEJ1dCBJIGNhbiBvbmx5IGRvIHRoaXMgaWYgeW91IGhhdmUgYSIKKysJCSAgICAkRUNI TyAiKioqIHNoYXJlZCB2ZXJzaW9uIG9mIHRoZSBsaWJyYXJ5LCB3aGljaCBJIGJlbGlldmUgeW91 IGRvIG5vdCBoYXZlIgorKwkJICAgICRFQ0hPICIqKiogYmVjYXVzZSBhIHRlc3RfY29tcGlsZSBk aWQgcmV2ZWFsIHRoYXQgdGhlIGxpbmtlciBkaWQgbm90IHVzZSBpdCBmb3IiCisrCQkgICAgJEVD SE8gIioqKiBpdHMgZHluYW1pYyBkZXBlbmRlbmN5IGxpc3QgdGhhdCBwcm9ncmFtcyBnZXQgcmVz b2x2ZWQgd2l0aCBhdCBydW50aW1lLiIKKysJCSAgZmkKKysJCWZpCisrCQk7OworKwkgICAgICAq KQorKwkJbmV3ZGVwbGlicz0iJG5ld2RlcGxpYnMgJGkiCisrCQk7OworKwkgICAgICBlc2FjCisr CSAgICBkb25lCisrCSAgZWxzZQorKwkgICAgIyBFcnJvciBvY2N1cnJlZCBpbiB0aGUgZmlyc3Qg Y29tcGlsZS4gIExldCdzIHRyeSB0byBzYWx2YWdlCisrCSAgICAjIHRoZSBzaXR1YXRpb246IENv bXBpbGUgYSBzZXBhcmF0ZSBwcm9ncmFtIGZvciBlYWNoIGxpYnJhcnkuCisrCSAgICBmb3IgaSBp biAkZGVwbGliczsgZG8KKysJICAgICAgY2FzZSAkaSBpbgorKwkgICAgICAtbCopCisrCQlmdW5j X3N0cmlwbmFtZSAtbCAnJyAiJGkiCisrCQluYW1lPSRmdW5jX3N0cmlwbmFtZV9yZXN1bHQKKysJ CSRvcHRfZHJ5X3J1biB8fCAkUk0gY29uZnRlc3QKKysJCWlmICRMVENDICRMVENGTEFHUyAtbyBj b25mdGVzdCBjb25mdGVzdC5jICRpOyB0aGVuCisrCQkgIGxkZF9vdXRwdXQ9YGxkZCBjb25mdGVz dGAKKysJCSAgaWYgdGVzdCAiWCRhbGxvd19saWJ0b29sX2xpYnNfd2l0aF9zdGF0aWNfcnVudGlt ZXMiID0gIlh5ZXMiIDsgdGhlbgorKwkJICAgIGNhc2UgIiAkcHJlZGVwcyAkcG9zdGRlcHMgIiBp bgorKwkJICAgICoiICRpICIqKQorKwkJICAgICAgbmV3ZGVwbGlicz0iJG5ld2RlcGxpYnMgJGki CisrCQkgICAgICBpPSIiCisrCQkgICAgICA7OworKwkJICAgIGVzYWMKKysJCSAgZmkKKysJCSAg aWYgdGVzdCAtbiAiJGkiIDsgdGhlbgorKwkJICAgIGxpYm5hbWU9YGV2YWwgIlxcJEVDSE8gXCIk bGlibmFtZV9zcGVjXCIiYAorKwkJICAgIGRlcGxpYl9tYXRjaGVzPWBldmFsICJcXCRFQ0hPIFwi JGxpYnJhcnlfbmFtZXNfc3BlY1wiImAKKysJCSAgICBzZXQgZHVtbXkgJGRlcGxpYl9tYXRjaGVz OyBzaGlmdAorKwkJICAgIGRlcGxpYl9tYXRjaD0kMQorKwkJICAgIGlmIHRlc3QgYGV4cHIgIiRs ZGRfb3V0cHV0IiA6ICIuKiRkZXBsaWJfbWF0Y2giYCAtbmUgMCA7IHRoZW4KKysJCSAgICAgIG5l d2RlcGxpYnM9IiRuZXdkZXBsaWJzICRpIgorKwkJICAgIGVsc2UKKysJCSAgICAgIGRyb3BwZWRk ZXBzPXllcworKwkJICAgICAgJEVDSE8KKysJCSAgICAgICRFQ0hPICIqKiogV2FybmluZzogZHlu YW1pYyBsaW5rZXIgZG9lcyBub3QgYWNjZXB0IG5lZWRlZCBsaWJyYXJ5ICRpLiIKKysJCSAgICAg ICRFQ0hPICIqKiogSSBoYXZlIHRoZSBjYXBhYmlsaXR5IHRvIG1ha2UgdGhhdCBsaWJyYXJ5IGF1 dG9tYXRpY2FsbHkgbGluayBpbiB3aGVuIgorKwkJICAgICAgJEVDSE8gIioqKiB5b3UgbGluayB0 byB0aGlzIGxpYnJhcnkuICBCdXQgSSBjYW4gb25seSBkbyB0aGlzIGlmIHlvdSBoYXZlIGEiCisr CQkgICAgICAkRUNITyAiKioqIHNoYXJlZCB2ZXJzaW9uIG9mIHRoZSBsaWJyYXJ5LCB3aGljaCB5 b3UgZG8gbm90IGFwcGVhciB0byBoYXZlIgorKwkJICAgICAgJEVDSE8gIioqKiBiZWNhdXNlIGEg dGVzdF9jb21waWxlIGRpZCByZXZlYWwgdGhhdCB0aGUgbGlua2VyIGRpZCBub3QgdXNlIHRoaXMg b25lIgorKwkJICAgICAgJEVDSE8gIioqKiBhcyBhIGR5bmFtaWMgZGVwZW5kZW5jeSB0aGF0IHBy b2dyYW1zIGNhbiBnZXQgcmVzb2x2ZWQgd2l0aCBhdCBydW50aW1lLiIKKysJCSAgICBmaQorKwkJ ICBmaQorKwkJZWxzZQorKwkJICBkcm9wcGVkZGVwcz15ZXMKKysJCSAgJEVDSE8KKysJCSAgJEVD SE8gIioqKiBXYXJuaW5nISAgTGlicmFyeSAkaSBpcyBuZWVkZWQgYnkgdGhpcyBsaWJyYXJ5IGJ1 dCBJIHdhcyBub3QgYWJsZSB0byIKKysJCSAgJEVDSE8gIioqKiBtYWtlIGl0IGxpbmsgaW4hICBZ b3Ugd2lsbCBwcm9iYWJseSBuZWVkIHRvIGluc3RhbGwgaXQgb3Igc29tZSIKKysJCSAgJEVDSE8g IioqKiBsaWJyYXJ5IHRoYXQgaXQgZGVwZW5kcyBvbiBiZWZvcmUgdGhpcyBsaWJyYXJ5IHdpbGwg YmUgZnVsbHkiCisrCQkgICRFQ0hPICIqKiogZnVuY3Rpb25hbC4gIEluc3RhbGxpbmcgaXQgYmVm b3JlIGNvbnRpbnVpbmcgd291bGQgYmUgZXZlbiBiZXR0ZXIuIgorKwkJZmkKKysJCTs7CisrCSAg ICAgICopCisrCQluZXdkZXBsaWJzPSIkbmV3ZGVwbGlicyAkaSIKKysJCTs7CisrCSAgICAgIGVz YWMKKysJICAgIGRvbmUKKysJICBmaQorKwkgIDs7CisrCWZpbGVfbWFnaWMqKQorKwkgIHNldCBk dW1teSAkZGVwbGlic19jaGVja19tZXRob2Q7IHNoaWZ0CisrCSAgZmlsZV9tYWdpY19yZWdleD1g ZXhwciAiJGRlcGxpYnNfY2hlY2tfbWV0aG9kIiA6ICIkMSBcKC4qXCkiYAorKwkgIGZvciBhX2Rl cGxpYiBpbiAkZGVwbGliczsgZG8KKysJICAgIGNhc2UgJGFfZGVwbGliIGluCisrCSAgICAtbCop CisrCSAgICAgIGZ1bmNfc3RyaXBuYW1lIC1sICcnICIkYV9kZXBsaWIiCisrCSAgICAgIG5hbWU9 JGZ1bmNfc3RyaXBuYW1lX3Jlc3VsdAorKwkgICAgICBpZiB0ZXN0ICJYJGFsbG93X2xpYnRvb2xf bGlic193aXRoX3N0YXRpY19ydW50aW1lcyIgPSAiWHllcyIgOyB0aGVuCisrCQljYXNlICIgJHBy ZWRlcHMgJHBvc3RkZXBzICIgaW4KKysJCSoiICRhX2RlcGxpYiAiKikKKysJCSAgbmV3ZGVwbGli cz0iJG5ld2RlcGxpYnMgJGFfZGVwbGliIgorKwkJICBhX2RlcGxpYj0iIgorKwkJICA7OworKwkJ ZXNhYworKwkgICAgICBmaQorKwkgICAgICBpZiB0ZXN0IC1uICIkYV9kZXBsaWIiIDsgdGhlbgor KwkJbGlibmFtZT1gZXZhbCAiXFwkRUNITyBcIiRsaWJuYW1lX3NwZWNcIiJgCisrCQlmb3IgaSBp biAkbGliX3NlYXJjaF9wYXRoICRzeXNfbGliX3NlYXJjaF9wYXRoICRzaGxpYl9zZWFyY2hfcGF0 aDsgZG8KKysJCSAgcG90ZW50aWFsX2xpYnM9YGxzICRpLyRsaWJuYW1lWy4tXSogMj4vZGV2L251 bGxgCisrCQkgIGZvciBwb3RlbnRfbGliIGluICRwb3RlbnRpYWxfbGliczsgZG8KKysJCSAgICAg ICMgRm9sbG93IHNvZnQgbGlua3MuCisrCQkgICAgICBpZiBscyAtbExkICIkcG90ZW50X2xpYiIg Mj4vZGV2L251bGwgfAorKwkJCSAkR1JFUCAiIC0+ICIgPi9kZXYvbnVsbDsgdGhlbgorKwkJCWNv bnRpbnVlCisrCQkgICAgICBmaQorKwkJICAgICAgIyBUaGUgc3RhdGVtZW50IGFib3ZlIHRyaWVz IHRvIGF2b2lkIGVudGVyaW5nIGFuCisrCQkgICAgICAjIGVuZGxlc3MgbG9vcCBiZWxvdywgaW4g Y2FzZSBvZiBjeWNsaWMgbGlua3MuCisrCQkgICAgICAjIFdlIG1pZ2h0IHN0aWxsIGVudGVyIGFu IGVuZGxlc3MgbG9vcCwgc2luY2UgYSBsaW5rCisrCQkgICAgICAjIGxvb3AgY2FuIGJlIGNsb3Nl ZCB3aGlsZSB3ZSBmb2xsb3cgbGlua3MsCisrCQkgICAgICAjIGJ1dCBzbyB3aGF0PworKwkJICAg ICAgcG90bGliPSIkcG90ZW50X2xpYiIKKysJCSAgICAgIHdoaWxlIHRlc3QgLWggIiRwb3RsaWIi IDI+L2Rldi9udWxsOyBkbworKwkJCXBvdGxpYmxpbms9YGxzIC1sZCAkcG90bGliIHwgJHtTRUR9 ICdzLy4qIC0+IC8vJ2AKKysJCQljYXNlICRwb3RsaWJsaW5rIGluCisrCQkJW1xcL10qIHwgW0Et WmEtel06W1xcL10qKSBwb3RsaWI9IiRwb3RsaWJsaW5rIjs7CisrCQkJKikgcG90bGliPWAkRUNI TyAiWCRwb3RsaWIiIHwgJFhzZWQgLWUgJ3MsW14vXSokLCwnYCIkcG90bGlibGluayI7OworKwkJ CWVzYWMKKysJCSAgICAgIGRvbmUKKysJCSAgICAgIGlmIGV2YWwgJGZpbGVfbWFnaWNfY21kIFwi XCRwb3RsaWJcIiAyPi9kZXYvbnVsbCB8CisrCQkJICRTRUQgLWUgMTBxIHwKKysJCQkgJEVHUkVQ ICIkZmlsZV9tYWdpY19yZWdleCIgPiAvZGV2L251bGw7IHRoZW4KKysJCQluZXdkZXBsaWJzPSIk bmV3ZGVwbGlicyAkYV9kZXBsaWIiCisrCQkJYV9kZXBsaWI9IiIKKysJCQlicmVhayAyCisrCQkg ICAgICBmaQorKwkJICBkb25lCisrCQlkb25lCisrCSAgICAgIGZpCisrCSAgICAgIGlmIHRlc3Qg LW4gIiRhX2RlcGxpYiIgOyB0aGVuCisrCQlkcm9wcGVkZGVwcz15ZXMKKysJCSRFQ0hPCisrCQkk RUNITyAiKioqIFdhcm5pbmc6IGxpbmtlciBwYXRoIGRvZXMgbm90IGhhdmUgcmVhbCBmaWxlIGZv ciBsaWJyYXJ5ICRhX2RlcGxpYi4iCisrCQkkRUNITyAiKioqIEkgaGF2ZSB0aGUgY2FwYWJpbGl0 eSB0byBtYWtlIHRoYXQgbGlicmFyeSBhdXRvbWF0aWNhbGx5IGxpbmsgaW4gd2hlbiIKKysJCSRF Q0hPICIqKiogeW91IGxpbmsgdG8gdGhpcyBsaWJyYXJ5LiAgQnV0IEkgY2FuIG9ubHkgZG8gdGhp cyBpZiB5b3UgaGF2ZSBhIgorKwkJJEVDSE8gIioqKiBzaGFyZWQgdmVyc2lvbiBvZiB0aGUgbGli cmFyeSwgd2hpY2ggeW91IGRvIG5vdCBhcHBlYXIgdG8gaGF2ZSIKKysJCSRFQ0hPICIqKiogYmVj YXVzZSBJIGRpZCBjaGVjayB0aGUgbGlua2VyIHBhdGggbG9va2luZyBmb3IgYSBmaWxlIHN0YXJ0 aW5nIgorKwkJaWYgdGVzdCAteiAiJHBvdGxpYiIgOyB0aGVuCisrCQkgICRFQ0hPICIqKiogd2l0 aCAkbGlibmFtZSBidXQgbm8gY2FuZGlkYXRlcyB3ZXJlIGZvdW5kLiAoLi4uZm9yIGZpbGUgbWFn aWMgdGVzdCkiCisrCQllbHNlCisrCQkgICRFQ0hPICIqKiogd2l0aCAkbGlibmFtZSBhbmQgbm9u ZSBvZiB0aGUgY2FuZGlkYXRlcyBwYXNzZWQgYSBmaWxlIGZvcm1hdCB0ZXN0IgorKwkJICAkRUNI TyAiKioqIHVzaW5nIGEgZmlsZSBtYWdpYy4gTGFzdCBmaWxlIGNoZWNrZWQ6ICRwb3RsaWIiCisr CQlmaQorKwkgICAgICBmaQorKwkgICAgICA7OworKwkgICAgKikKKysJICAgICAgIyBBZGQgYSAt TCBhcmd1bWVudC4KKysJICAgICAgbmV3ZGVwbGlicz0iJG5ld2RlcGxpYnMgJGFfZGVwbGliIgor KwkgICAgICA7OworKwkgICAgZXNhYworKwkgIGRvbmUgIyBHb25lIHRocm91Z2ggYWxsIGRlcGxp YnMuCisrCSAgOzsKKysJbWF0Y2hfcGF0dGVybiopCisrCSAgc2V0IGR1bW15ICRkZXBsaWJzX2No ZWNrX21ldGhvZDsgc2hpZnQKKysJICBtYXRjaF9wYXR0ZXJuX3JlZ2V4PWBleHByICIkZGVwbGli c19jaGVja19tZXRob2QiIDogIiQxIFwoLipcKSJgCisrCSAgZm9yIGFfZGVwbGliIGluICRkZXBs aWJzOyBkbworKwkgICAgY2FzZSAkYV9kZXBsaWIgaW4KKysJICAgIC1sKikKKysJICAgICAgZnVu Y19zdHJpcG5hbWUgLWwgJycgIiRhX2RlcGxpYiIKKysJICAgICAgbmFtZT0kZnVuY19zdHJpcG5h bWVfcmVzdWx0CisrCSAgICAgIGlmIHRlc3QgIlgkYWxsb3dfbGlidG9vbF9saWJzX3dpdGhfc3Rh dGljX3J1bnRpbWVzIiA9ICJYeWVzIiA7IHRoZW4KKysJCWNhc2UgIiAkcHJlZGVwcyAkcG9zdGRl cHMgIiBpbgorKwkJKiIgJGFfZGVwbGliICIqKQorKwkJICBuZXdkZXBsaWJzPSIkbmV3ZGVwbGli cyAkYV9kZXBsaWIiCisrCQkgIGFfZGVwbGliPSIiCisrCQkgIDs7CisrCQllc2FjCisrCSAgICAg IGZpCisrCSAgICAgIGlmIHRlc3QgLW4gIiRhX2RlcGxpYiIgOyB0aGVuCisrCQlsaWJuYW1lPWBl dmFsICJcXCRFQ0hPIFwiJGxpYm5hbWVfc3BlY1wiImAKKysJCWZvciBpIGluICRsaWJfc2VhcmNo X3BhdGggJHN5c19saWJfc2VhcmNoX3BhdGggJHNobGliX3NlYXJjaF9wYXRoOyBkbworKwkJICBw b3RlbnRpYWxfbGlicz1gbHMgJGkvJGxpYm5hbWVbLi1dKiAyPi9kZXYvbnVsbGAKKysJCSAgZm9y IHBvdGVudF9saWIgaW4gJHBvdGVudGlhbF9saWJzOyBkbworKwkJICAgIHBvdGxpYj0iJHBvdGVu dF9saWIiICMgc2VlIHN5bWxpbmstY2hlY2sgYWJvdmUgaW4gZmlsZV9tYWdpYyB0ZXN0CisrCQkg ICAgaWYgZXZhbCAiXCRFQ0hPIFwiWCRwb3RlbnRfbGliXCIiIDI+L2Rldi9udWxsIHwgJFhzZWQg LWUgMTBxIHwgXAorKwkJICAgICAgICRFR1JFUCAiJG1hdGNoX3BhdHRlcm5fcmVnZXgiID4gL2Rl di9udWxsOyB0aGVuCisrCQkgICAgICBuZXdkZXBsaWJzPSIkbmV3ZGVwbGlicyAkYV9kZXBsaWIi CisrCQkgICAgICBhX2RlcGxpYj0iIgorKwkJICAgICAgYnJlYWsgMgorKwkJICAgIGZpCisrCQkg IGRvbmUKKysJCWRvbmUKKysJICAgICAgZmkKKysJICAgICAgaWYgdGVzdCAtbiAiJGFfZGVwbGli IiA7IHRoZW4KKysJCWRyb3BwZWRkZXBzPXllcworKwkJJEVDSE8KKysJCSRFQ0hPICIqKiogV2Fy bmluZzogbGlua2VyIHBhdGggZG9lcyBub3QgaGF2ZSByZWFsIGZpbGUgZm9yIGxpYnJhcnkgJGFf ZGVwbGliLiIKKysJCSRFQ0hPICIqKiogSSBoYXZlIHRoZSBjYXBhYmlsaXR5IHRvIG1ha2UgdGhh dCBsaWJyYXJ5IGF1dG9tYXRpY2FsbHkgbGluayBpbiB3aGVuIgorKwkJJEVDSE8gIioqKiB5b3Ug bGluayB0byB0aGlzIGxpYnJhcnkuICBCdXQgSSBjYW4gb25seSBkbyB0aGlzIGlmIHlvdSBoYXZl IGEiCisrCQkkRUNITyAiKioqIHNoYXJlZCB2ZXJzaW9uIG9mIHRoZSBsaWJyYXJ5LCB3aGljaCB5 b3UgZG8gbm90IGFwcGVhciB0byBoYXZlIgorKwkJJEVDSE8gIioqKiBiZWNhdXNlIEkgZGlkIGNo ZWNrIHRoZSBsaW5rZXIgcGF0aCBsb29raW5nIGZvciBhIGZpbGUgc3RhcnRpbmciCisrCQlpZiB0 ZXN0IC16ICIkcG90bGliIiA7IHRoZW4KKysJCSAgJEVDSE8gIioqKiB3aXRoICRsaWJuYW1lIGJ1 dCBubyBjYW5kaWRhdGVzIHdlcmUgZm91bmQuICguLi5mb3IgcmVnZXggcGF0dGVybiB0ZXN0KSIK KysJCWVsc2UKKysJCSAgJEVDSE8gIioqKiB3aXRoICRsaWJuYW1lIGFuZCBub25lIG9mIHRoZSBj YW5kaWRhdGVzIHBhc3NlZCBhIGZpbGUgZm9ybWF0IHRlc3QiCisrCQkgICRFQ0hPICIqKiogdXNp bmcgYSByZWdleCBwYXR0ZXJuLiBMYXN0IGZpbGUgY2hlY2tlZDogJHBvdGxpYiIKKysJCWZpCisr CSAgICAgIGZpCisrCSAgICAgIDs7CisrCSAgICAqKQorKwkgICAgICAjIEFkZCBhIC1MIGFyZ3Vt ZW50LgorKwkgICAgICBuZXdkZXBsaWJzPSIkbmV3ZGVwbGlicyAkYV9kZXBsaWIiCisrCSAgICAg IDs7CisrCSAgICBlc2FjCisrCSAgZG9uZSAjIEdvbmUgdGhyb3VnaCBhbGwgZGVwbGlicy4KKysJ ICA7OworKwlub25lIHwgdW5rbm93biB8ICopCisrCSAgbmV3ZGVwbGlicz0iIgorKwkgIHRtcF9k ZXBsaWJzPWAkRUNITyAiWCAkZGVwbGlicyIgfCAkWHNlZCBcCisrCSAgICAgIC1lICdzLyAtbGMk Ly8nIC1lICdzLyAtW0xSXVteIF0qLy9nJ2AKKysJICBpZiB0ZXN0ICJYJGFsbG93X2xpYnRvb2xf bGlic193aXRoX3N0YXRpY19ydW50aW1lcyIgPSAiWHllcyIgOyB0aGVuCisrCSAgICBmb3IgaSBp biAkcHJlZGVwcyAkcG9zdGRlcHMgOyBkbworKwkgICAgICAjIGNhbid0IHVzZSBYc2VkIGJlbG93 LCBiZWNhdXNlICRpIG1pZ2h0IGNvbnRhaW4gJy8nCisrCSAgICAgIHRtcF9kZXBsaWJzPWAkRUNI TyAiWCAkdG1wX2RlcGxpYnMiIHwgJFhzZWQgLWUgInMsJGksLCJgCisrCSAgICBkb25lCisrCSAg ZmkKKysJICBpZiAkRUNITyAiWCAkdG1wX2RlcGxpYnMiIHwgJFhzZWQgLWUgJ3MvWwkgXS8vZycg fAorKwkgICAgICRHUkVQIC4gPi9kZXYvbnVsbDsgdGhlbgorKwkgICAgJEVDSE8KKysJICAgIGlm IHRlc3QgIlgkZGVwbGlic19jaGVja19tZXRob2QiID0gIlhub25lIjsgdGhlbgorKwkgICAgICAk RUNITyAiKioqIFdhcm5pbmc6IGludGVyLWxpYnJhcnkgZGVwZW5kZW5jaWVzIGFyZSBub3Qgc3Vw cG9ydGVkIGluIHRoaXMgcGxhdGZvcm0uIgorKwkgICAgZWxzZQorKwkgICAgICAkRUNITyAiKioq IFdhcm5pbmc6IGludGVyLWxpYnJhcnkgZGVwZW5kZW5jaWVzIGFyZSBub3Qga25vd24gdG8gYmUg c3VwcG9ydGVkLiIKKysJICAgIGZpCisrCSAgICAkRUNITyAiKioqIEFsbCBkZWNsYXJlZCBpbnRl ci1saWJyYXJ5IGRlcGVuZGVuY2llcyBhcmUgYmVpbmcgZHJvcHBlZC4iCisrCSAgICBkcm9wcGVk ZGVwcz15ZXMKKysJICBmaQorKwkgIDs7CisrCWVzYWMKKysJdmVyc3VmZml4PSR2ZXJzdWZmaXhf c2F2ZQorKwltYWpvcj0kbWFqb3Jfc2F2ZQorKwlyZWxlYXNlPSRyZWxlYXNlX3NhdmUKKysJbGli bmFtZT0kbGlibmFtZV9zYXZlCisrCW5hbWU9JG5hbWVfc2F2ZQorKworKwljYXNlICRob3N0IGlu CisrCSotKi1yaGFwc29keSogfCAqLSotZGFyd2luMS5bMDEyXSkKKysJICAjIE9uIFJoYXBzb2R5 IHJlcGxhY2UgdGhlIEMgbGlicmFyeSB3aXRoIHRoZSBTeXN0ZW0gZnJhbWV3b3JrCisrCSAgbmV3 ZGVwbGlicz1gJEVDSE8gIlggJG5ld2RlcGxpYnMiIHwgJFhzZWQgLWUgJ3MvIC1sYyAvIFN5c3Rl bS5sdGZyYW1ld29yayAvJ2AKKysJICA7OworKwllc2FjCisrCisrCWlmIHRlc3QgIiRkcm9wcGVk ZGVwcyIgPSB5ZXM7IHRoZW4KKysJICBpZiB0ZXN0ICIkbW9kdWxlIiA9IHllczsgdGhlbgorKwkg ICAgJEVDSE8KKysJICAgICRFQ0hPICIqKiogV2FybmluZzogbGlidG9vbCBjb3VsZCBub3Qgc2F0 aXNmeSBhbGwgZGVjbGFyZWQgaW50ZXItbGlicmFyeSIKKysJICAgICRFQ0hPICIqKiogZGVwZW5k ZW5jaWVzIG9mIG1vZHVsZSAkbGlibmFtZS4gIFRoZXJlZm9yZSwgbGlidG9vbCB3aWxsIGNyZWF0 ZSIKKysJICAgICRFQ0hPICIqKiogYSBzdGF0aWMgbW9kdWxlLCB0aGF0IHNob3VsZCB3b3JrIGFz IGxvbmcgYXMgdGhlIGRsb3BlbmluZyIKKysJICAgICRFQ0hPICIqKiogYXBwbGljYXRpb24gaXMg bGlua2VkIHdpdGggdGhlIC1kbG9wZW4gZmxhZy4iCisrCSAgICBpZiB0ZXN0IC16ICIkZ2xvYmFs X3N5bWJvbF9waXBlIjsgdGhlbgorKwkgICAgICAkRUNITworKwkgICAgICAkRUNITyAiKioqIEhv d2V2ZXIsIHRoaXMgd291bGQgb25seSB3b3JrIGlmIGxpYnRvb2wgd2FzIGFibGUgdG8gZXh0cmFj dCBzeW1ib2wiCisrCSAgICAgICRFQ0hPICIqKiogbGlzdHMgZnJvbSBhIHByb2dyYW0sIHVzaW5n IFxgbm0nIG9yIGVxdWl2YWxlbnQsIGJ1dCBsaWJ0b29sIGNvdWxkIgorKwkgICAgICAkRUNITyAi KioqIG5vdCBmaW5kIHN1Y2ggYSBwcm9ncmFtLiAgU28sIHRoaXMgbW9kdWxlIGlzIHByb2JhYmx5 IHVzZWxlc3MuIgorKwkgICAgICAkRUNITyAiKioqIFxgbm0nIGZyb20gR05VIGJpbnV0aWxzIGFu ZCBhIGZ1bGwgcmVidWlsZCBtYXkgaGVscC4iCisrCSAgICBmaQorKwkgICAgaWYgdGVzdCAiJGJ1 aWxkX29sZF9saWJzIiA9IG5vOyB0aGVuCisrCSAgICAgIG9sZGxpYnM9IiRvdXRwdXRfb2JqZGly LyRsaWJuYW1lLiRsaWJleHQiCisrCSAgICAgIGJ1aWxkX2xpYnRvb2xfbGlicz1tb2R1bGUKKysJ ICAgICAgYnVpbGRfb2xkX2xpYnM9eWVzCisrCSAgICBlbHNlCisrCSAgICAgIGJ1aWxkX2xpYnRv b2xfbGlicz1ubworKwkgICAgZmkKKysJICBlbHNlCisrCSAgICAkRUNITyAiKioqIFRoZSBpbnRl ci1saWJyYXJ5IGRlcGVuZGVuY2llcyB0aGF0IGhhdmUgYmVlbiBkcm9wcGVkIGhlcmUgd2lsbCBi ZSIKKysJICAgICRFQ0hPICIqKiogYXV0b21hdGljYWxseSBhZGRlZCB3aGVuZXZlciBhIHByb2dy YW0gaXMgbGlua2VkIHdpdGggdGhpcyBsaWJyYXJ5IgorKwkgICAgJEVDSE8gIioqKiBvciBpcyBk ZWNsYXJlZCB0byAtZGxvcGVuIGl0LiIKKysKKysJICAgIGlmIHRlc3QgIiRhbGxvd191bmRlZmlu ZWQiID0gbm87IHRoZW4KKysJICAgICAgJEVDSE8KKysJICAgICAgJEVDSE8gIioqKiBTaW5jZSB0 aGlzIGxpYnJhcnkgbXVzdCBub3QgY29udGFpbiB1bmRlZmluZWQgc3ltYm9scywiCisrCSAgICAg ICRFQ0hPICIqKiogYmVjYXVzZSBlaXRoZXIgdGhlIHBsYXRmb3JtIGRvZXMgbm90IHN1cHBvcnQg dGhlbSBvciIKKysJICAgICAgJEVDSE8gIioqKiBpdCB3YXMgZXhwbGljaXRseSByZXF1ZXN0ZWQg d2l0aCAtbm8tdW5kZWZpbmVkLCIKKysJICAgICAgJEVDSE8gIioqKiBsaWJ0b29sIHdpbGwgb25s eSBjcmVhdGUgYSBzdGF0aWMgdmVyc2lvbiBvZiBpdC4iCisrCSAgICAgIGlmIHRlc3QgIiRidWls ZF9vbGRfbGlicyIgPSBubzsgdGhlbgorKwkJb2xkbGlicz0iJG91dHB1dF9vYmpkaXIvJGxpYm5h bWUuJGxpYmV4dCIKKysJCWJ1aWxkX2xpYnRvb2xfbGlicz1tb2R1bGUKKysJCWJ1aWxkX29sZF9s aWJzPXllcworKwkgICAgICBlbHNlCisrCQlidWlsZF9saWJ0b29sX2xpYnM9bm8KKysJICAgICAg ZmkKKysJICAgIGZpCisrCSAgZmkKKysJZmkKKysJIyBEb25lIGNoZWNraW5nIGRlcGxpYnMhCisr CWRlcGxpYnM9JG5ld2RlcGxpYnMKKysgICAgICBmaQorKyAgICAgICMgVGltZSB0byBjaGFuZ2Ug YWxsIG91ciAiZm9vLmx0ZnJhbWV3b3JrIiBzdHVmZiBiYWNrIHRvICItZnJhbWV3b3JrIGZvbyIK KysgICAgICBjYXNlICRob3N0IGluCisrCSotKi1kYXJ3aW4qKQorKwkgIG5ld2RlcGxpYnM9YCRF Q0hPICJYICRuZXdkZXBsaWJzIiB8ICRYc2VkIC1lICdzJSBcKFteICRdKlwpLmx0ZnJhbWV3b3Jr JSAtZnJhbWV3b3JrIFwxJWcnYAorKwkgIG5ld19pbmhlcml0ZWRfbGlua2VyX2ZsYWdzPWAkRUNI TyAiWCAkbmV3X2luaGVyaXRlZF9saW5rZXJfZmxhZ3MiIHwgJFhzZWQgLWUgJ3MlIFwoW14gJF0q XCkubHRmcmFtZXdvcmslIC1mcmFtZXdvcmsgXDElZydgCisrCSAgZGVwbGlicz1gJEVDSE8gIlgg JGRlcGxpYnMiIHwgJFhzZWQgLWUgJ3MlIFwoW14gJF0qXCkubHRmcmFtZXdvcmslIC1mcmFtZXdv cmsgXDElZydgCisrCSAgOzsKKysgICAgICBlc2FjCisrCisrICAgICAgIyBtb3ZlIGxpYnJhcnkg c2VhcmNoIHBhdGhzIHRoYXQgY29pbmNpZGUgd2l0aCBwYXRocyB0byBub3QgeWV0CisrICAgICAg IyBpbnN0YWxsZWQgbGlicmFyaWVzIHRvIHRoZSBiZWdpbm5pbmcgb2YgdGhlIGxpYnJhcnkgc2Vh cmNoIGxpc3QKKysgICAgICBuZXdfbGlicz0KKysgICAgICBmb3IgcGF0aCBpbiAkbm90aW5zdF9w YXRoOyBkbworKwljYXNlICIgJG5ld19saWJzICIgaW4KKysJKiIgLUwkcGF0aC8kb2JqZGlyICIq KSA7OworKwkqKQorKwkgIGNhc2UgIiAkZGVwbGlicyAiIGluCisrCSAgKiIgLUwkcGF0aC8kb2Jq ZGlyICIqKQorKwkgICAgbmV3X2xpYnM9IiRuZXdfbGlicyAtTCRwYXRoLyRvYmpkaXIiIDs7Cisr CSAgZXNhYworKwkgIDs7CisrCWVzYWMKKysgICAgICBkb25lCisrICAgICAgZm9yIGRlcGxpYiBp biAkZGVwbGliczsgZG8KKysJY2FzZSAkZGVwbGliIGluCisrCS1MKikKKysJICBjYXNlICIgJG5l d19saWJzICIgaW4KKysJICAqIiAkZGVwbGliICIqKSA7OworKwkgICopIG5ld19saWJzPSIkbmV3 X2xpYnMgJGRlcGxpYiIgOzsKKysJICBlc2FjCisrCSAgOzsKKysJKikgbmV3X2xpYnM9IiRuZXdf bGlicyAkZGVwbGliIiA7OworKwllc2FjCisrICAgICAgZG9uZQorKyAgICAgIGRlcGxpYnM9IiRu ZXdfbGlicyIKKysKKysgICAgICAjIEFsbCB0aGUgbGlicmFyeS1zcGVjaWZpYyB2YXJpYWJsZXMg KGluc3RhbGxfbGliZGlyIGlzIHNldCBhYm92ZSkuCisrICAgICAgbGlicmFyeV9uYW1lcz0KKysg ICAgICBvbGRfbGlicmFyeT0KKysgICAgICBkbG5hbWU9CisrCisrICAgICAgIyBUZXN0IGFnYWlu LCB3ZSBtYXkgaGF2ZSBkZWNpZGVkIG5vdCB0byBidWlsZCBpdCBhbnkgbW9yZQorKyAgICAgIGlm IHRlc3QgIiRidWlsZF9saWJ0b29sX2xpYnMiID0geWVzOyB0aGVuCisrCWlmIHRlc3QgIiRoYXJk Y29kZV9pbnRvX2xpYnMiID0geWVzOyB0aGVuCisrCSAgIyBIYXJkY29kZSB0aGUgbGlicmFyeSBw YXRocworKwkgIGhhcmRjb2RlX2xpYmRpcnM9CisrCSAgZGVwX3JwYXRoPQorKwkgIHJwYXRoPSIk ZmluYWxpemVfcnBhdGgiCisrCSAgdGVzdCAiJG1vZGUiICE9IHJlbGluayAmJiBycGF0aD0iJGNv bXBpbGVfcnBhdGgkcnBhdGgiCisrCSAgZm9yIGxpYmRpciBpbiAkcnBhdGg7IGRvCisrCSAgICBp ZiB0ZXN0IC1uICIkaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYyI7IHRoZW4KKysJICAgICAgaWYg dGVzdCAtbiAiJGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3IiOyB0aGVuCisrCQlpZiB0ZXN0IC16 ICIkaGFyZGNvZGVfbGliZGlycyI7IHRoZW4KKysJCSAgaGFyZGNvZGVfbGliZGlycz0iJGxpYmRp ciIKKysJCWVsc2UKKysJCSAgIyBKdXN0IGFjY3VtdWxhdGUgdGhlIHVuaXF1ZSBsaWJkaXJzLgor KwkJICBjYXNlICRoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yJGhhcmRjb2RlX2xpYmRpcnMkaGFy ZGNvZGVfbGliZGlyX3NlcGFyYXRvciBpbgorKwkJICAqIiRoYXJkY29kZV9saWJkaXJfc2VwYXJh dG9yJGxpYmRpciRoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yIiopCisrCQkgICAgOzsKKysJCSAg KikKKysJCSAgICBoYXJkY29kZV9saWJkaXJzPSIkaGFyZGNvZGVfbGliZGlycyRoYXJkY29kZV9s aWJkaXJfc2VwYXJhdG9yJGxpYmRpciIKKysJCSAgICA7OworKwkJICBlc2FjCisrCQlmaQorKwkg ICAgICBlbHNlCisrCQlldmFsIGZsYWc9XCIkaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY1wiCisr CQlkZXBfcnBhdGg9IiRkZXBfcnBhdGggJGZsYWciCisrCSAgICAgIGZpCisrCSAgICBlbGlmIHRl c3QgLW4gIiRydW5wYXRoX3ZhciI7IHRoZW4KKysJICAgICAgY2FzZSAiJHBlcm1fcnBhdGggIiBp bgorKwkgICAgICAqIiAkbGliZGlyICIqKSA7OworKwkgICAgICAqKSBwZXJtX3JwYXRoPSIkcGVy bV9ycGF0aCAkbGliZGlyIiA7OworKwkgICAgICBlc2FjCisrCSAgICBmaQorKwkgIGRvbmUKKysJ ICAjIFN1YnN0aXR1dGUgdGhlIGhhcmRjb2RlZCBsaWJkaXJzIGludG8gdGhlIHJwYXRoLgorKwkg IGlmIHRlc3QgLW4gIiRoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yIiAmJgorKwkgICAgIHRlc3Qg LW4gIiRoYXJkY29kZV9saWJkaXJzIjsgdGhlbgorKwkgICAgbGliZGlyPSIkaGFyZGNvZGVfbGli ZGlycyIKKysJICAgIGlmIHRlc3QgLW4gIiRoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX2xkIjsg dGhlbgorKwkgICAgICBldmFsIGRlcF9ycGF0aD1cIiRoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVj X2xkXCIKKysJICAgIGVsc2UKKysJICAgICAgZXZhbCBkZXBfcnBhdGg9XCIkaGFyZGNvZGVfbGli ZGlyX2ZsYWdfc3BlY1wiCisrCSAgICBmaQorKwkgIGZpCisrCSAgaWYgdGVzdCAtbiAiJHJ1bnBh dGhfdmFyIiAmJiB0ZXN0IC1uICIkcGVybV9ycGF0aCI7IHRoZW4KKysJICAgICMgV2Ugc2hvdWxk IHNldCB0aGUgcnVucGF0aF92YXIuCisrCSAgICBycGF0aD0KKysJICAgIGZvciBkaXIgaW4gJHBl cm1fcnBhdGg7IGRvCisrCSAgICAgIHJwYXRoPSIkcnBhdGgkZGlyOiIKKysJICAgIGRvbmUKKysJ ICAgIGV2YWwgIiRydW5wYXRoX3Zhcj0nJHJwYXRoXCQkcnVucGF0aF92YXInOyBleHBvcnQgJHJ1 bnBhdGhfdmFyIgorKwkgIGZpCisrCSAgdGVzdCAtbiAiJGRlcF9ycGF0aCIgJiYgZGVwbGlicz0i JGRlcF9ycGF0aCAkZGVwbGlicyIKKysJZmkKKysKKysJc2hsaWJwYXRoPSIkZmluYWxpemVfc2hs aWJwYXRoIgorKwl0ZXN0ICIkbW9kZSIgIT0gcmVsaW5rICYmIHNobGlicGF0aD0iJGNvbXBpbGVf c2hsaWJwYXRoJHNobGlicGF0aCIKKysJaWYgdGVzdCAtbiAiJHNobGlicGF0aCI7IHRoZW4KKysJ ICBldmFsICIkc2hsaWJwYXRoX3Zhcj0nJHNobGlicGF0aFwkJHNobGlicGF0aF92YXInOyBleHBv cnQgJHNobGlicGF0aF92YXIiCisrCWZpCisrCisrCSMgR2V0IHRoZSByZWFsIGFuZCBsaW5rIG5h bWVzIG9mIHRoZSBsaWJyYXJ5LgorKwlldmFsIHNoYXJlZF9leHQ9XCIkc2hyZXh0X2NtZHNcIgor KwlldmFsIGxpYnJhcnlfbmFtZXM9XCIkbGlicmFyeV9uYW1lc19zcGVjXCIKKysJc2V0IGR1bW15 ICRsaWJyYXJ5X25hbWVzCisrCXNoaWZ0CisrCXJlYWxuYW1lPSIkMSIKKysJc2hpZnQKKysKKysJ aWYgdGVzdCAtbiAiJHNvbmFtZV9zcGVjIjsgdGhlbgorKwkgIGV2YWwgc29uYW1lPVwiJHNvbmFt ZV9zcGVjXCIKKysJZWxzZQorKwkgIHNvbmFtZT0iJHJlYWxuYW1lIgorKwlmaQorKwlpZiB0ZXN0 IC16ICIkZGxuYW1lIjsgdGhlbgorKwkgIGRsbmFtZT0kc29uYW1lCisrCWZpCisrCisrCWxpYj0i JG91dHB1dF9vYmpkaXIvJHJlYWxuYW1lIgorKwlsaW5rbmFtZXM9CisrCWZvciBsaW5rCisrCWRv CisrCSAgbGlua25hbWVzPSIkbGlua25hbWVzICRsaW5rIgorKwlkb25lCisrCisrCSMgVXNlIHN0 YW5kYXJkIG9iamVjdHMgaWYgdGhleSBhcmUgcGljCisrCXRlc3QgLXogIiRwaWNfZmxhZyIgJiYg bGlib2Jqcz1gJEVDSE8gIlgkbGlib2JqcyIgfCAkU1AyTkwgfCAkWHNlZCAtZSAiJGxvMm8iIHwg JE5MMlNQYAorKwl0ZXN0ICJYJGxpYm9ianMiID0gIlggIiAmJiBsaWJvYmpzPQorKworKwlkZWxm aWxlcz0KKysJaWYgdGVzdCAtbiAiJGV4cG9ydF9zeW1ib2xzIiAmJiB0ZXN0IC1uICIkaW5jbHVk ZV9leHBzeW1zIjsgdGhlbgorKwkgICRvcHRfZHJ5X3J1biB8fCBjcCAiJGV4cG9ydF9zeW1ib2xz IiAiJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUudWV4cCIKKysJICBleHBvcnRfc3ltYm9scz0iJG91 dHB1dF9vYmpkaXIvJGxpYm5hbWUudWV4cCIKKysJICBkZWxmaWxlcz0iJGRlbGZpbGVzICRleHBv cnRfc3ltYm9scyIKKysJZmkKKysKKysJb3JpZ19leHBvcnRfc3ltYm9scz0KKysJY2FzZSAkaG9z dF9vcyBpbgorKwljeWd3aW4qIHwgbWluZ3cqIHwgY2VnY2MqKQorKwkgIGlmIHRlc3QgLW4gIiRl eHBvcnRfc3ltYm9scyIgJiYgdGVzdCAteiAiJGV4cG9ydF9zeW1ib2xzX3JlZ2V4IjsgdGhlbgor KwkgICAgIyBleHBvcnRpbmcgdXNpbmcgdXNlciBzdXBwbGllZCBzeW1maWxlCisrCSAgICBpZiB0 ZXN0ICJ4YCRTRUQgMXEgJGV4cG9ydF9zeW1ib2xzYCIgIT0geEVYUE9SVFM7IHRoZW4KKysJICAg ICAgIyBhbmQgaXQncyBOT1QgYWxyZWFkeSBhIC5kZWYgZmlsZS4gTXVzdCBmaWd1cmUgb3V0Cisr CSAgICAgICMgd2hpY2ggb2YgdGhlIGdpdmVuIHN5bWJvbHMgYXJlIGRhdGEgc3ltYm9scyBhbmQg dGFnCisrCSAgICAgICMgdGhlbSBhcyBzdWNoLiBTbywgdHJpZ2dlciB1c2Ugb2YgZXhwb3J0X3N5 bWJvbHNfY21kcy4KKysJICAgICAgIyBleHBvcnRfc3ltYm9scyBnZXRzIHJlYXNzaWduZWQgaW5z aWRlIHRoZSAicHJlcGFyZQorKwkgICAgICAjIHRoZSBsaXN0IG9mIGV4cG9ydGVkIHN5bWJvbHMi IGlmIHN0YXRlbWVudCwgc28gdGhlCisrCSAgICAgICMgaW5jbHVkZV9leHBzeW1zIGxvZ2ljIHN0 aWxsIHdvcmtzLgorKwkgICAgICBvcmlnX2V4cG9ydF9zeW1ib2xzPSIkZXhwb3J0X3N5bWJvbHMi CisrCSAgICAgIGV4cG9ydF9zeW1ib2xzPQorKwkgICAgICBhbHdheXNfZXhwb3J0X3N5bWJvbHM9 eWVzCisrCSAgICBmaQorKwkgIGZpCisrCSAgOzsKKysJZXNhYworKworKwkjIFByZXBhcmUgdGhl IGxpc3Qgb2YgZXhwb3J0ZWQgc3ltYm9scworKwlpZiB0ZXN0IC16ICIkZXhwb3J0X3N5bWJvbHMi OyB0aGVuCisrCSAgaWYgdGVzdCAiJGFsd2F5c19leHBvcnRfc3ltYm9scyIgPSB5ZXMgfHwgdGVz dCAtbiAiJGV4cG9ydF9zeW1ib2xzX3JlZ2V4IjsgdGhlbgorKwkgICAgZnVuY192ZXJib3NlICJn ZW5lcmF0aW5nIHN5bWJvbCBsaXN0IGZvciBcYCRsaWJuYW1lLmxhJyIKKysJICAgIGV4cG9ydF9z eW1ib2xzPSIkb3V0cHV0X29iamRpci8kbGlibmFtZS5leHAiCisrCSAgICAkb3B0X2RyeV9ydW4g fHwgJFJNICRleHBvcnRfc3ltYm9scworKwkgICAgY21kcz0kZXhwb3J0X3N5bWJvbHNfY21kcwor KwkgICAgc2F2ZV9pZnM9IiRJRlMiOyBJRlM9J34nCisrCSAgICBmb3IgY21kIGluICRjbWRzOyBk bworKwkgICAgICBJRlM9IiRzYXZlX2lmcyIKKysJICAgICAgZXZhbCBjbWQ9XCIkY21kXCIKKysJ ICAgICAgZnVuY19sZW4gIiAkY21kIgorKwkgICAgICBsZW49JGZ1bmNfbGVuX3Jlc3VsdAorKwkg ICAgICBpZiB0ZXN0ICIkbGVuIiAtbHQgIiRtYXhfY21kX2xlbiIgfHwgdGVzdCAiJG1heF9jbWRf bGVuIiAtbGUgLTE7IHRoZW4KKysJCWZ1bmNfc2hvd19ldmFsICIkY21kIiAnZXhpdCAkPycKKysJ CXNraXBwZWRfZXhwb3J0PWZhbHNlCisrCSAgICAgIGVsc2UKKysJCSMgVGhlIGNvbW1hbmQgbGlu ZSBpcyB0b28gbG9uZyB0byBleGVjdXRlIGluIG9uZSBzdGVwLgorKwkJZnVuY192ZXJib3NlICJ1 c2luZyByZWxvYWRhYmxlIG9iamVjdCBmaWxlIGZvciBleHBvcnQgbGlzdC4uLiIKKysJCXNraXBw ZWRfZXhwb3J0PToKKysJCSMgQnJlYWsgb3V0IGVhcmx5LCBvdGhlcndpc2Ugc2tpcHBlZF9leHBv cnQgbWF5IGJlCisrCQkjIHNldCB0byBmYWxzZSBieSBhIGxhdGVyIGJ1dCBzaG9ydGVyIGNtZC4K KysJCWJyZWFrCisrCSAgICAgIGZpCisrCSAgICBkb25lCisrCSAgICBJRlM9IiRzYXZlX2lmcyIK KysJICAgIGlmIHRlc3QgLW4gIiRleHBvcnRfc3ltYm9sc19yZWdleCIgJiYgdGVzdCAiWCRza2lw cGVkX2V4cG9ydCIgIT0gIlg6IjsgdGhlbgorKwkgICAgICBmdW5jX3Nob3dfZXZhbCAnJEVHUkVQ IC1lICIkZXhwb3J0X3N5bWJvbHNfcmVnZXgiICIkZXhwb3J0X3N5bWJvbHMiID4gIiR7ZXhwb3J0 X3N5bWJvbHN9VCInCisrCSAgICAgIGZ1bmNfc2hvd19ldmFsICckTVYgIiR7ZXhwb3J0X3N5bWJv bHN9VCIgIiRleHBvcnRfc3ltYm9scyInCisrCSAgICBmaQorKwkgIGZpCisrCWZpCisrCisrCWlm IHRlc3QgLW4gIiRleHBvcnRfc3ltYm9scyIgJiYgdGVzdCAtbiAiJGluY2x1ZGVfZXhwc3ltcyI7 IHRoZW4KKysJICB0bXBfZXhwb3J0X3N5bWJvbHM9IiRleHBvcnRfc3ltYm9scyIKKysJICB0ZXN0 IC1uICIkb3JpZ19leHBvcnRfc3ltYm9scyIgJiYgdG1wX2V4cG9ydF9zeW1ib2xzPSIkb3JpZ19l eHBvcnRfc3ltYm9scyIKKysJICAkb3B0X2RyeV9ydW4gfHwgZXZhbCAnJEVDSE8gIlgkaW5jbHVk ZV9leHBzeW1zIiB8ICRYc2VkIHwgJFNQMk5MID4+ICIkdG1wX2V4cG9ydF9zeW1ib2xzIicKKysJ ZmkKKysKKysJaWYgdGVzdCAiWCRza2lwcGVkX2V4cG9ydCIgIT0gIlg6IiAmJiB0ZXN0IC1uICIk b3JpZ19leHBvcnRfc3ltYm9scyI7IHRoZW4KKysJICAjIFRoZSBnaXZlbiBleHBvcnRzX3N5bWJv bHMgZmlsZSBoYXMgdG8gYmUgZmlsdGVyZWQsIHNvIGZpbHRlciBpdC4KKysJICBmdW5jX3ZlcmJv c2UgImZpbHRlciBzeW1ib2wgbGlzdCBmb3IgXGAkbGlibmFtZS5sYScgdG8gdGFnIERBVEEgZXhw b3J0cyIKKysJICAjIEZJWE1FOiAkb3V0cHV0X29iamRpci8kbGlibmFtZS5maWx0ZXIgcG90ZW50 aWFsbHkgY29udGFpbnMgbG90cyBvZgorKwkgICMgJ3MnIGNvbW1hbmRzIHdoaWNoIG5vdCBhbGwg c2VkcyBjYW4gaGFuZGxlLiBHTlUgc2VkIHNob3VsZCBiZSBmaW5lCisrCSAgIyB0aG91Z2guIEFs c28sIHRoZSBmaWx0ZXIgc2NhbGVzIHN1cGVybGluZWFybHkgd2l0aCB0aGUgbnVtYmVyIG9mCisr CSAgIyBnbG9iYWwgdmFyaWFibGVzLiBqb2luKDEpIHdvdWxkIGJlIG5pY2UgaGVyZSwgYnV0IHVu Zm9ydHVuYXRlbHkKKysJICAjIGlzbid0IGEgYmxlc3NlZCB0b29sLgorKwkgICRvcHRfZHJ5X3J1 biB8fCAkU0VEIC1lICcvWyAsXURBVEEvIWQ7cyxcKC4qXClcKFsgXCxdLipcKSxzfF5cMSR8XDFc MnwsJyA8ICRleHBvcnRfc3ltYm9scyA+ICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLmZpbHRlcgor KwkgIGRlbGZpbGVzPSIkZGVsZmlsZXMgJGV4cG9ydF9zeW1ib2xzICRvdXRwdXRfb2JqZGlyLyRs aWJuYW1lLmZpbHRlciIKKysJICBleHBvcnRfc3ltYm9scz0kb3V0cHV0X29iamRpci8kbGlibmFt ZS5kZWYKKysJICAkb3B0X2RyeV9ydW4gfHwgJFNFRCAtZiAkb3V0cHV0X29iamRpci8kbGlibmFt ZS5maWx0ZXIgPCAkb3JpZ19leHBvcnRfc3ltYm9scyA+ICRleHBvcnRfc3ltYm9scworKwlmaQor KworKwl0bXBfZGVwbGlicz0KKysJZm9yIHRlc3RfZGVwbGliIGluICRkZXBsaWJzOyBkbworKwkg IGNhc2UgIiAkY29udmVuaWVuY2UgIiBpbgorKwkgICoiICR0ZXN0X2RlcGxpYiAiKikgOzsKKysJ ICAqKQorKwkgICAgdG1wX2RlcGxpYnM9IiR0bXBfZGVwbGlicyAkdGVzdF9kZXBsaWIiCisrCSAg ICA7OworKwkgIGVzYWMKKysJZG9uZQorKwlkZXBsaWJzPSIkdG1wX2RlcGxpYnMiCisrCisrCWlm IHRlc3QgLW4gIiRjb252ZW5pZW5jZSI7IHRoZW4KKysJICBpZiB0ZXN0IC1uICIkd2hvbGVfYXJj aGl2ZV9mbGFnX3NwZWMiICYmCisrCSAgICB0ZXN0ICIkY29tcGlsZXJfbmVlZHNfb2JqZWN0IiA9 IHllcyAmJgorKwkgICAgdGVzdCAteiAiJGxpYm9ianMiOyB0aGVuCisrCSAgICAjIGV4dHJhY3Qg dGhlIGFyY2hpdmVzLCBzbyB3ZSBoYXZlIG9iamVjdHMgdG8gbGlzdC4KKysJICAgICMgVE9ETzog Y291bGQgb3B0aW1pemUgdGhpcyB0byBqdXN0IGV4dHJhY3Qgb25lIGFyY2hpdmUuCisrCSAgICB3 aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYz0KKysJICBmaQorKwkgIGlmIHRlc3QgLW4gIiR3aG9sZV9h cmNoaXZlX2ZsYWdfc3BlYyI7IHRoZW4KKysJICAgIHNhdmVfbGlib2Jqcz0kbGlib2JqcworKwkg ICAgZXZhbCBsaWJvYmpzPVwiXCRsaWJvYmpzICR3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlY1wiCisr CSAgICB0ZXN0ICJYJGxpYm9ianMiID0gIlggIiAmJiBsaWJvYmpzPQorKwkgIGVsc2UKKysJICAg IGdlbnRvcD0iJG91dHB1dF9vYmpkaXIvJHtvdXRwdXRuYW1lfXgiCisrCSAgICBnZW5lcmF0ZWQ9 IiRnZW5lcmF0ZWQgJGdlbnRvcCIKKysKKysJICAgIGZ1bmNfZXh0cmFjdF9hcmNoaXZlcyAkZ2Vu dG9wICRjb252ZW5pZW5jZQorKwkgICAgbGlib2Jqcz0iJGxpYm9ianMgJGZ1bmNfZXh0cmFjdF9h cmNoaXZlc19yZXN1bHQiCisrCSAgICB0ZXN0ICJYJGxpYm9ianMiID0gIlggIiAmJiBsaWJvYmpz PQorKwkgIGZpCisrCWZpCisrCisrCWlmIHRlc3QgIiR0aHJlYWRfc2FmZSIgPSB5ZXMgJiYgdGVz dCAtbiAiJHRocmVhZF9zYWZlX2ZsYWdfc3BlYyI7IHRoZW4KKysJICBldmFsIGZsYWc9XCIkdGhy ZWFkX3NhZmVfZmxhZ19zcGVjXCIKKysJICBsaW5rZXJfZmxhZ3M9IiRsaW5rZXJfZmxhZ3MgJGZs YWciCisrCWZpCisrCisrCSMgTWFrZSBhIGJhY2t1cCBvZiB0aGUgdW5pbnN0YWxsZWQgbGlicmFy eSB3aGVuIHJlbGlua2luZworKwlpZiB0ZXN0ICIkbW9kZSIgPSByZWxpbms7IHRoZW4KKysJICAk b3B0X2RyeV9ydW4gfHwgZXZhbCAnKGNkICRvdXRwdXRfb2JqZGlyICYmICRSTSAke3JlYWxuYW1l fVUgJiYgJE1WICRyZWFsbmFtZSAke3JlYWxuYW1lfVUpJyB8fCBleGl0ICQ/CisrCWZpCisrCisr CSMgRG8gZWFjaCBvZiB0aGUgYXJjaGl2ZSBjb21tYW5kcy4KKysJaWYgdGVzdCAiJG1vZHVsZSIg PSB5ZXMgJiYgdGVzdCAtbiAiJG1vZHVsZV9jbWRzIiA7IHRoZW4KKysJICBpZiB0ZXN0IC1uICIk ZXhwb3J0X3N5bWJvbHMiICYmIHRlc3QgLW4gIiRtb2R1bGVfZXhwc3ltX2NtZHMiOyB0aGVuCisr CSAgICBldmFsIHRlc3RfY21kcz1cIiRtb2R1bGVfZXhwc3ltX2NtZHNcIgorKwkgICAgY21kcz0k bW9kdWxlX2V4cHN5bV9jbWRzCisrCSAgZWxzZQorKwkgICAgZXZhbCB0ZXN0X2NtZHM9XCIkbW9k dWxlX2NtZHNcIgorKwkgICAgY21kcz0kbW9kdWxlX2NtZHMKKysJICBmaQorKwllbHNlCisrCSAg aWYgdGVzdCAtbiAiJGV4cG9ydF9zeW1ib2xzIiAmJiB0ZXN0IC1uICIkYXJjaGl2ZV9leHBzeW1f Y21kcyI7IHRoZW4KKysJICAgIGV2YWwgdGVzdF9jbWRzPVwiJGFyY2hpdmVfZXhwc3ltX2NtZHNc IgorKwkgICAgY21kcz0kYXJjaGl2ZV9leHBzeW1fY21kcworKwkgIGVsc2UKKysJICAgIGV2YWwg dGVzdF9jbWRzPVwiJGFyY2hpdmVfY21kc1wiCisrCSAgICBjbWRzPSRhcmNoaXZlX2NtZHMKKysJ ICBmaQorKwlmaQorKworKwlpZiB0ZXN0ICJYJHNraXBwZWRfZXhwb3J0IiAhPSAiWDoiICYmCisr CSAgIGZ1bmNfbGVuICIgJHRlc3RfY21kcyIgJiYKKysJICAgbGVuPSRmdW5jX2xlbl9yZXN1bHQg JiYKKysJICAgdGVzdCAiJGxlbiIgLWx0ICIkbWF4X2NtZF9sZW4iIHx8IHRlc3QgIiRtYXhfY21k X2xlbiIgLWxlIC0xOyB0aGVuCisrCSAgOgorKwllbHNlCisrCSAgIyBUaGUgY29tbWFuZCBsaW5l IGlzIHRvbyBsb25nIHRvIGxpbmsgaW4gb25lIHN0ZXAsIGxpbmsgcGllY2V3aXNlCisrCSAgIyBv ciwgaWYgdXNpbmcgR05VIGxkIGFuZCBza2lwcGVkX2V4cG9ydCBpcyBub3QgOiwgdXNlIGEgbGlu a2VyCisrCSAgIyBzY3JpcHQuCisrCisrCSAgIyBTYXZlIHRoZSB2YWx1ZSBvZiAkb3V0cHV0IGFu ZCAkbGlib2JqcyBiZWNhdXNlIHdlIHdhbnQgdG8KKysJICAjIHVzZSB0aGVtIGxhdGVyLiAgSWYg d2UgaGF2ZSB3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYywgd2UKKysJICAjIHdhbnQgdG8gdXNlIHNh dmVfbGlib2JqcyBhcyBpdCB3YXMgYmVmb3JlCisrCSAgIyB3aG9sZV9hcmNoaXZlX2ZsYWdfc3Bl YyB3YXMgZXhwYW5kZWQsIGJlY2F1c2Ugd2UgY2FuJ3QKKysJICAjIGFzc3VtZSB0aGUgbGlua2Vy IHVuZGVyc3RhbmRzIHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjLgorKwkgICMgVGhpcyBtYXkgaGF2 ZSB0byBiZSByZXZpc2l0ZWQsIGluIGNhc2UgdG9vIG1hbnkKKysJICAjIGNvbnZlbmllbmNlIGxp YnJhcmllcyBnZXQgbGlua2VkIGluIGFuZCBlbmQgdXAgZXhjZWVkaW5nCisrCSAgIyB0aGUgc3Bl Yy4KKysJICBpZiB0ZXN0IC16ICIkY29udmVuaWVuY2UiIHx8IHRlc3QgLXogIiR3aG9sZV9hcmNo aXZlX2ZsYWdfc3BlYyI7IHRoZW4KKysJICAgIHNhdmVfbGlib2Jqcz0kbGlib2JqcworKwkgIGZp CisrCSAgc2F2ZV9vdXRwdXQ9JG91dHB1dAorKwkgIG91dHB1dF9sYT1gJEVDSE8gIlgkb3V0cHV0 IiB8ICRYc2VkIC1lICIkYmFzZW5hbWUiYAorKworKwkgICMgQ2xlYXIgdGhlIHJlbG9hZGFibGUg b2JqZWN0IGNyZWF0aW9uIGNvbW1hbmQgcXVldWUgYW5kCisrCSAgIyBpbml0aWFsaXplIGsgdG8g b25lLgorKwkgIHRlc3RfY21kcz0KKysJICBjb25jYXRfY21kcz0KKysJICBvYmpsaXN0PQorKwkg IGxhc3Rfcm9iaj0KKysJICBrPTEKKysKKysJICBpZiB0ZXN0IC1uICIkc2F2ZV9saWJvYmpzIiAm JiB0ZXN0ICJYJHNraXBwZWRfZXhwb3J0IiAhPSAiWDoiICYmIHRlc3QgIiR3aXRoX2dudV9sZCIg PSB5ZXM7IHRoZW4KKysJICAgIG91dHB1dD0ke291dHB1dF9vYmpkaXJ9LyR7b3V0cHV0X2xhfS5s bmtzY3JpcHQKKysJICAgIGZ1bmNfdmVyYm9zZSAiY3JlYXRpbmcgR05VIGxkIHNjcmlwdDogJG91 dHB1dCIKKysJICAgICRFQ0hPICdJTlBVVCAoJyA+ICRvdXRwdXQKKysJICAgIGZvciBvYmogaW4g JHNhdmVfbGlib2JqcworKwkgICAgZG8KKysJICAgICAgJEVDSE8gIiRvYmoiID4+ICRvdXRwdXQK KysJICAgIGRvbmUKKysJICAgICRFQ0hPICcpJyA+PiAkb3V0cHV0CisrCSAgICBkZWxmaWxlcz0i JGRlbGZpbGVzICRvdXRwdXQiCisrCSAgZWxpZiB0ZXN0IC1uICIkc2F2ZV9saWJvYmpzIiAmJiB0 ZXN0ICJYJHNraXBwZWRfZXhwb3J0IiAhPSAiWDoiICYmIHRlc3QgIlgkZmlsZV9saXN0X3NwZWMi ICE9IFg7IHRoZW4KKysJICAgIG91dHB1dD0ke291dHB1dF9vYmpkaXJ9LyR7b3V0cHV0X2xhfS5s bmsKKysJICAgIGZ1bmNfdmVyYm9zZSAiY3JlYXRpbmcgbGlua2VyIGlucHV0IGZpbGUgbGlzdDog JG91dHB1dCIKKysJICAgIDogPiAkb3V0cHV0CisrCSAgICBzZXQgeCAkc2F2ZV9saWJvYmpzCisr CSAgICBzaGlmdAorKwkgICAgZmlyc3RvYmo9CisrCSAgICBpZiB0ZXN0ICIkY29tcGlsZXJfbmVl ZHNfb2JqZWN0IiA9IHllczsgdGhlbgorKwkgICAgICBmaXJzdG9iaj0iJDEgIgorKwkgICAgICBz aGlmdAorKwkgICAgZmkKKysJICAgIGZvciBvYmoKKysJICAgIGRvCisrCSAgICAgICRFQ0hPICIk b2JqIiA+PiAkb3V0cHV0CisrCSAgICBkb25lCisrCSAgICBkZWxmaWxlcz0iJGRlbGZpbGVzICRv dXRwdXQiCisrCSAgICBvdXRwdXQ9JGZpcnN0b2JqXCIkZmlsZV9saXN0X3NwZWMkb3V0cHV0XCIK KysJICBlbHNlCisrCSAgICBpZiB0ZXN0IC1uICIkc2F2ZV9saWJvYmpzIjsgdGhlbgorKwkgICAg ICBmdW5jX3ZlcmJvc2UgImNyZWF0aW5nIHJlbG9hZGFibGUgb2JqZWN0IGZpbGVzLi4uIgorKwkg ICAgICBvdXRwdXQ9JG91dHB1dF9vYmpkaXIvJG91dHB1dF9sYS0ke2t9LiRvYmpleHQKKysJICAg ICAgZXZhbCB0ZXN0X2NtZHM9XCIkcmVsb2FkX2NtZHNcIgorKwkgICAgICBmdW5jX2xlbiAiICR0 ZXN0X2NtZHMiCisrCSAgICAgIGxlbjA9JGZ1bmNfbGVuX3Jlc3VsdAorKwkgICAgICBsZW49JGxl bjAKKysKKysJICAgICAgIyBMb29wIG92ZXIgdGhlIGxpc3Qgb2Ygb2JqZWN0cyB0byBiZSBsaW5r ZWQuCisrCSAgICAgIGZvciBvYmogaW4gJHNhdmVfbGlib2JqcworKwkgICAgICBkbworKwkJZnVu Y19sZW4gIiAkb2JqIgorKwkJZnVuY19hcml0aCAkbGVuICsgJGZ1bmNfbGVuX3Jlc3VsdAorKwkJ bGVuPSRmdW5jX2FyaXRoX3Jlc3VsdAorKwkJaWYgdGVzdCAiWCRvYmpsaXN0IiA9IFggfHwKKysJ CSAgIHRlc3QgIiRsZW4iIC1sdCAiJG1heF9jbWRfbGVuIjsgdGhlbgorKwkJICBmdW5jX2FwcGVu ZCBvYmpsaXN0ICIgJG9iaiIKKysJCWVsc2UKKysJCSAgIyBUaGUgY29tbWFuZCAkdGVzdF9jbWRz IGlzIGFsbW9zdCB0b28gbG9uZywgYWRkIGEKKysJCSAgIyBjb21tYW5kIHRvIHRoZSBxdWV1ZS4K KysJCSAgaWYgdGVzdCAiJGsiIC1lcSAxIDsgdGhlbgorKwkJICAgICMgVGhlIGZpcnN0IGZpbGUg ZG9lc24ndCBoYXZlIGEgcHJldmlvdXMgY29tbWFuZCB0byBhZGQuCisrCQkgICAgZXZhbCBjb25j YXRfY21kcz1cIiRyZWxvYWRfY21kcyAkb2JqbGlzdCAkbGFzdF9yb2JqXCIKKysJCSAgZWxzZQor KwkJICAgICMgQWxsIHN1YnNlcXVlbnQgcmVsb2FkYWJsZSBvYmplY3QgZmlsZXMgd2lsbCBsaW5r IGluCisrCQkgICAgIyB0aGUgbGFzdCBvbmUgY3JlYXRlZC4KKysJCSAgICBldmFsIGNvbmNhdF9j bWRzPVwiXCRjb25jYXRfY21kc34kcmVsb2FkX2NtZHMgJG9iamxpc3QgJGxhc3Rfcm9ian5cJFJN ICRsYXN0X3JvYmpcIgorKwkJICBmaQorKwkJICBsYXN0X3JvYmo9JG91dHB1dF9vYmpkaXIvJG91 dHB1dF9sYS0ke2t9LiRvYmpleHQKKysJCSAgZnVuY19hcml0aCAkayArIDEKKysJCSAgaz0kZnVu Y19hcml0aF9yZXN1bHQKKysJCSAgb3V0cHV0PSRvdXRwdXRfb2JqZGlyLyRvdXRwdXRfbGEtJHtr fS4kb2JqZXh0CisrCQkgIG9iamxpc3Q9JG9iagorKwkJICBmdW5jX2xlbiAiICRsYXN0X3JvYmoi CisrCQkgIGZ1bmNfYXJpdGggJGxlbjAgKyAkZnVuY19sZW5fcmVzdWx0CisrCQkgIGxlbj0kZnVu Y19hcml0aF9yZXN1bHQKKysJCWZpCisrCSAgICAgIGRvbmUKKysJICAgICAgIyBIYW5kbGUgdGhl IHJlbWFpbmluZyBvYmplY3RzIGJ5IGNyZWF0aW5nIG9uZSBsYXN0CisrCSAgICAgICMgcmVsb2Fk YWJsZSBvYmplY3QgZmlsZS4gIEFsbCBzdWJzZXF1ZW50IHJlbG9hZGFibGUgb2JqZWN0CisrCSAg ICAgICMgZmlsZXMgd2lsbCBsaW5rIGluIHRoZSBsYXN0IG9uZSBjcmVhdGVkLgorKwkgICAgICB0 ZXN0IC16ICIkY29uY2F0X2NtZHMiIHx8IGNvbmNhdF9jbWRzPSRjb25jYXRfY21kc34KKysJICAg ICAgZXZhbCBjb25jYXRfY21kcz1cIlwke2NvbmNhdF9jbWRzfSRyZWxvYWRfY21kcyAkb2JqbGlz dCAkbGFzdF9yb2JqXCIKKysJICAgICAgaWYgdGVzdCAtbiAiJGxhc3Rfcm9iaiI7IHRoZW4KKysJ ICAgICAgICBldmFsIGNvbmNhdF9jbWRzPVwiXCR7Y29uY2F0X2NtZHN9flwkUk0gJGxhc3Rfcm9i alwiCisrCSAgICAgIGZpCisrCSAgICAgIGRlbGZpbGVzPSIkZGVsZmlsZXMgJG91dHB1dCIKKysK KysJICAgIGVsc2UKKysJICAgICAgb3V0cHV0PQorKwkgICAgZmkKKysKKysJICAgIGlmICR7c2tp cHBlZF9leHBvcnQtZmFsc2V9OyB0aGVuCisrCSAgICAgIGZ1bmNfdmVyYm9zZSAiZ2VuZXJhdGlu ZyBzeW1ib2wgbGlzdCBmb3IgXGAkbGlibmFtZS5sYSciCisrCSAgICAgIGV4cG9ydF9zeW1ib2xz PSIkb3V0cHV0X29iamRpci8kbGlibmFtZS5leHAiCisrCSAgICAgICRvcHRfZHJ5X3J1biB8fCAk Uk0gJGV4cG9ydF9zeW1ib2xzCisrCSAgICAgIGxpYm9ianM9JG91dHB1dAorKwkgICAgICAjIEFw cGVuZCB0aGUgY29tbWFuZCB0byBjcmVhdGUgdGhlIGV4cG9ydCBmaWxlLgorKwkgICAgICB0ZXN0 IC16ICIkY29uY2F0X2NtZHMiIHx8IGNvbmNhdF9jbWRzPSRjb25jYXRfY21kc34KKysJICAgICAg ZXZhbCBjb25jYXRfY21kcz1cIlwkY29uY2F0X2NtZHMkZXhwb3J0X3N5bWJvbHNfY21kc1wiCisr CSAgICAgIGlmIHRlc3QgLW4gIiRsYXN0X3JvYmoiOyB0aGVuCisrCQlldmFsIGNvbmNhdF9jbWRz PVwiXCRjb25jYXRfY21kc35cJFJNICRsYXN0X3JvYmpcIgorKwkgICAgICBmaQorKwkgICAgZmkK KysKKysJICAgIHRlc3QgLW4gIiRzYXZlX2xpYm9ianMiICYmCisrCSAgICAgIGZ1bmNfdmVyYm9z ZSAiY3JlYXRpbmcgYSB0ZW1wb3JhcnkgcmVsb2FkYWJsZSBvYmplY3QgZmlsZTogJG91dHB1dCIK KysKKysJICAgICMgTG9vcCB0aHJvdWdoIHRoZSBjb21tYW5kcyBnZW5lcmF0ZWQgYWJvdmUgYW5k IGV4ZWN1dGUgdGhlbS4KKysJICAgIHNhdmVfaWZzPSIkSUZTIjsgSUZTPSd+JworKwkgICAgZm9y IGNtZCBpbiAkY29uY2F0X2NtZHM7IGRvCisrCSAgICAgIElGUz0iJHNhdmVfaWZzIgorKwkgICAg ICAkb3B0X3NpbGVudCB8fCB7CisrCQkgIGZ1bmNfcXVvdGVfZm9yX2V4cGFuZCAiJGNtZCIKKysJ CSAgZXZhbCAiZnVuY19lY2hvICRmdW5jX3F1b3RlX2Zvcl9leHBhbmRfcmVzdWx0IgorKwkgICAg ICB9CisrCSAgICAgICRvcHRfZHJ5X3J1biB8fCBldmFsICIkY21kIiB8fCB7CisrCQlsdF9leGl0 PSQ/CisrCisrCQkjIFJlc3RvcmUgdGhlIHVuaW5zdGFsbGVkIGxpYnJhcnkgYW5kIGV4aXQKKysJ CWlmIHRlc3QgIiRtb2RlIiA9IHJlbGluazsgdGhlbgorKwkJICAoIGNkICIkb3V0cHV0X29iamRp ciIgJiYgXAorKwkJICAgICRSTSAiJHtyZWFsbmFtZX1UIiAmJiBcCisrCQkgICAgJE1WICIke3Jl YWxuYW1lfVUiICIkcmVhbG5hbWUiICkKKysJCWZpCisrCisrCQlleGl0ICRsdF9leGl0CisrCSAg ICAgIH0KKysJICAgIGRvbmUKKysJICAgIElGUz0iJHNhdmVfaWZzIgorKworKwkgICAgaWYgdGVz dCAtbiAiJGV4cG9ydF9zeW1ib2xzX3JlZ2V4IiAmJiAke3NraXBwZWRfZXhwb3J0LWZhbHNlfTsg dGhlbgorKwkgICAgICBmdW5jX3Nob3dfZXZhbCAnJEVHUkVQIC1lICIkZXhwb3J0X3N5bWJvbHNf cmVnZXgiICIkZXhwb3J0X3N5bWJvbHMiID4gIiR7ZXhwb3J0X3N5bWJvbHN9VCInCisrCSAgICAg IGZ1bmNfc2hvd19ldmFsICckTVYgIiR7ZXhwb3J0X3N5bWJvbHN9VCIgIiRleHBvcnRfc3ltYm9s cyInCisrCSAgICBmaQorKwkgIGZpCisrCisrICAgICAgICAgIGlmICR7c2tpcHBlZF9leHBvcnQt ZmFsc2V9OyB0aGVuCisrCSAgICBpZiB0ZXN0IC1uICIkZXhwb3J0X3N5bWJvbHMiICYmIHRlc3Qg LW4gIiRpbmNsdWRlX2V4cHN5bXMiOyB0aGVuCisrCSAgICAgIHRtcF9leHBvcnRfc3ltYm9scz0i JGV4cG9ydF9zeW1ib2xzIgorKwkgICAgICB0ZXN0IC1uICIkb3JpZ19leHBvcnRfc3ltYm9scyIg JiYgdG1wX2V4cG9ydF9zeW1ib2xzPSIkb3JpZ19leHBvcnRfc3ltYm9scyIKKysJICAgICAgJG9w dF9kcnlfcnVuIHx8IGV2YWwgJyRFQ0hPICJYJGluY2x1ZGVfZXhwc3ltcyIgfCAkWHNlZCB8ICRT UDJOTCA+PiAiJHRtcF9leHBvcnRfc3ltYm9scyInCisrCSAgICBmaQorKworKwkgICAgaWYgdGVz dCAtbiAiJG9yaWdfZXhwb3J0X3N5bWJvbHMiOyB0aGVuCisrCSAgICAgICMgVGhlIGdpdmVuIGV4 cG9ydHNfc3ltYm9scyBmaWxlIGhhcyB0byBiZSBmaWx0ZXJlZCwgc28gZmlsdGVyIGl0LgorKwkg ICAgICBmdW5jX3ZlcmJvc2UgImZpbHRlciBzeW1ib2wgbGlzdCBmb3IgXGAkbGlibmFtZS5sYScg dG8gdGFnIERBVEEgZXhwb3J0cyIKKysJICAgICAgIyBGSVhNRTogJG91dHB1dF9vYmpkaXIvJGxp Ym5hbWUuZmlsdGVyIHBvdGVudGlhbGx5IGNvbnRhaW5zIGxvdHMgb2YKKysJICAgICAgIyAncycg Y29tbWFuZHMgd2hpY2ggbm90IGFsbCBzZWRzIGNhbiBoYW5kbGUuIEdOVSBzZWQgc2hvdWxkIGJl IGZpbmUKKysJICAgICAgIyB0aG91Z2guIEFsc28sIHRoZSBmaWx0ZXIgc2NhbGVzIHN1cGVybGlu ZWFybHkgd2l0aCB0aGUgbnVtYmVyIG9mCisrCSAgICAgICMgZ2xvYmFsIHZhcmlhYmxlcy4gam9p bigxKSB3b3VsZCBiZSBuaWNlIGhlcmUsIGJ1dCB1bmZvcnR1bmF0ZWx5CisrCSAgICAgICMgaXNu J3QgYSBibGVzc2VkIHRvb2wuCisrCSAgICAgICRvcHRfZHJ5X3J1biB8fCAkU0VEIC1lICcvWyAs XURBVEEvIWQ7cyxcKC4qXClcKFsgXCxdLipcKSxzfF5cMSR8XDFcMnwsJyA8ICRleHBvcnRfc3lt Ym9scyA+ICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLmZpbHRlcgorKwkgICAgICBkZWxmaWxlcz0i JGRlbGZpbGVzICRleHBvcnRfc3ltYm9scyAkb3V0cHV0X29iamRpci8kbGlibmFtZS5maWx0ZXIi CisrCSAgICAgIGV4cG9ydF9zeW1ib2xzPSRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLmRlZgorKwkg ICAgICAkb3B0X2RyeV9ydW4gfHwgJFNFRCAtZiAkb3V0cHV0X29iamRpci8kbGlibmFtZS5maWx0 ZXIgPCAkb3JpZ19leHBvcnRfc3ltYm9scyA+ICRleHBvcnRfc3ltYm9scworKwkgICAgZmkKKysJ ICBmaQorKworKwkgIGxpYm9ianM9JG91dHB1dAorKwkgICMgUmVzdG9yZSB0aGUgdmFsdWUgb2Yg b3V0cHV0LgorKwkgIG91dHB1dD0kc2F2ZV9vdXRwdXQKKysKKysJICBpZiB0ZXN0IC1uICIkY29u dmVuaWVuY2UiICYmIHRlc3QgLW4gIiR3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYyI7IHRoZW4KKysJ ICAgIGV2YWwgbGlib2Jqcz1cIlwkbGlib2JqcyAkd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWNcIgor KwkgICAgdGVzdCAiWCRsaWJvYmpzIiA9ICJYICIgJiYgbGlib2Jqcz0KKysJICBmaQorKwkgICMg RXhwYW5kIHRoZSBsaWJyYXJ5IGxpbmtpbmcgY29tbWFuZHMgYWdhaW4gdG8gcmVzZXQgdGhlCisr CSAgIyB2YWx1ZSBvZiAkbGlib2JqcyBmb3IgcGllY2V3aXNlIGxpbmtpbmcuCisrCisrCSAgIyBE byBlYWNoIG9mIHRoZSBhcmNoaXZlIGNvbW1hbmRzLgorKwkgIGlmIHRlc3QgIiRtb2R1bGUiID0g eWVzICYmIHRlc3QgLW4gIiRtb2R1bGVfY21kcyIgOyB0aGVuCisrCSAgICBpZiB0ZXN0IC1uICIk ZXhwb3J0X3N5bWJvbHMiICYmIHRlc3QgLW4gIiRtb2R1bGVfZXhwc3ltX2NtZHMiOyB0aGVuCisr CSAgICAgIGNtZHM9JG1vZHVsZV9leHBzeW1fY21kcworKwkgICAgZWxzZQorKwkgICAgICBjbWRz PSRtb2R1bGVfY21kcworKwkgICAgZmkKKysJICBlbHNlCisrCSAgICBpZiB0ZXN0IC1uICIkZXhw b3J0X3N5bWJvbHMiICYmIHRlc3QgLW4gIiRhcmNoaXZlX2V4cHN5bV9jbWRzIjsgdGhlbgorKwkg ICAgICBjbWRzPSRhcmNoaXZlX2V4cHN5bV9jbWRzCisrCSAgICBlbHNlCisrCSAgICAgIGNtZHM9 JGFyY2hpdmVfY21kcworKwkgICAgZmkKKysJICBmaQorKwlmaQorKworKwlpZiB0ZXN0IC1uICIk ZGVsZmlsZXMiOyB0aGVuCisrCSAgIyBBcHBlbmQgdGhlIGNvbW1hbmQgdG8gcmVtb3ZlIHRlbXBv cmFyeSBmaWxlcyB0byAkY21kcy4KKysJICBldmFsIGNtZHM9XCJcJGNtZHN+XCRSTSAkZGVsZmls ZXNcIgorKwlmaQorKworKwkjIEFkZCBhbnkgb2JqZWN0cyBmcm9tIHByZWxvYWRlZCBjb252ZW5p ZW5jZSBsaWJyYXJpZXMKKysJaWYgdGVzdCAtbiAiJGRscHJlZmlsZXMiOyB0aGVuCisrCSAgZ2Vu dG9wPSIkb3V0cHV0X29iamRpci8ke291dHB1dG5hbWV9eCIKKysJICBnZW5lcmF0ZWQ9IiRnZW5l cmF0ZWQgJGdlbnRvcCIKKysKKysJICBmdW5jX2V4dHJhY3RfYXJjaGl2ZXMgJGdlbnRvcCAkZGxw cmVmaWxlcworKwkgIGxpYm9ianM9IiRsaWJvYmpzICRmdW5jX2V4dHJhY3RfYXJjaGl2ZXNfcmVz dWx0IgorKwkgIHRlc3QgIlgkbGlib2JqcyIgPSAiWCAiICYmIGxpYm9ianM9CisrCWZpCisrCisr CXNhdmVfaWZzPSIkSUZTIjsgSUZTPSd+JworKwlmb3IgY21kIGluICRjbWRzOyBkbworKwkgIElG Uz0iJHNhdmVfaWZzIgorKwkgIGV2YWwgY21kPVwiJGNtZFwiCisrCSAgJG9wdF9zaWxlbnQgfHwg eworKwkgICAgZnVuY19xdW90ZV9mb3JfZXhwYW5kICIkY21kIgorKwkgICAgZXZhbCAiZnVuY19l Y2hvICRmdW5jX3F1b3RlX2Zvcl9leHBhbmRfcmVzdWx0IgorKwkgIH0KKysJICAkb3B0X2RyeV9y dW4gfHwgZXZhbCAiJGNtZCIgfHwgeworKwkgICAgbHRfZXhpdD0kPworKworKwkgICAgIyBSZXN0 b3JlIHRoZSB1bmluc3RhbGxlZCBsaWJyYXJ5IGFuZCBleGl0CisrCSAgICBpZiB0ZXN0ICIkbW9k ZSIgPSByZWxpbms7IHRoZW4KKysJICAgICAgKCBjZCAiJG91dHB1dF9vYmpkaXIiICYmIFwKKysJ ICAgICAgICAkUk0gIiR7cmVhbG5hbWV9VCIgJiYgXAorKwkJJE1WICIke3JlYWxuYW1lfVUiICIk cmVhbG5hbWUiICkKKysJICAgIGZpCisrCisrCSAgICBleGl0ICRsdF9leGl0CisrCSAgfQorKwlk b25lCisrCUlGUz0iJHNhdmVfaWZzIgorKworKwkjIFJlc3RvcmUgdGhlIHVuaW5zdGFsbGVkIGxp YnJhcnkgYW5kIGV4aXQKKysJaWYgdGVzdCAiJG1vZGUiID0gcmVsaW5rOyB0aGVuCisrCSAgJG9w dF9kcnlfcnVuIHx8IGV2YWwgJyhjZCAkb3V0cHV0X29iamRpciAmJiAkUk0gJHtyZWFsbmFtZX1U ICYmICRNViAkcmVhbG5hbWUgJHtyZWFsbmFtZX1UICYmICRNViAke3JlYWxuYW1lfVUgJHJlYWxu YW1lKScgfHwgZXhpdCAkPworKworKwkgIGlmIHRlc3QgLW4gIiRjb252ZW5pZW5jZSI7IHRoZW4K KysJICAgIGlmIHRlc3QgLXogIiR3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYyI7IHRoZW4KKysJICAg ICAgZnVuY19zaG93X2V2YWwgJyR7Uk19ciAiJGdlbnRvcCInCisrCSAgICBmaQorKwkgIGZpCisr CisrCSAgZXhpdCAkRVhJVF9TVUNDRVNTCisrCWZpCisrCisrCSMgQ3JlYXRlIGxpbmtzIHRvIHRo ZSByZWFsIGxpYnJhcnkuCisrCWZvciBsaW5rbmFtZSBpbiAkbGlua25hbWVzOyBkbworKwkgIGlm IHRlc3QgIiRyZWFsbmFtZSIgIT0gIiRsaW5rbmFtZSI7IHRoZW4KKysJICAgIGZ1bmNfc2hvd19l dmFsICcoY2QgIiRvdXRwdXRfb2JqZGlyIiAmJiAkUk0gIiRsaW5rbmFtZSIgJiYgJExOX1MgIiRy ZWFsbmFtZSIgIiRsaW5rbmFtZSIpJyAnZXhpdCAkPycKKysJICBmaQorKwlkb25lCisrCisrCSMg SWYgLW1vZHVsZSBvciAtZXhwb3J0LWR5bmFtaWMgd2FzIHNwZWNpZmllZCwgc2V0IHRoZSBkbG5h bWUuCisrCWlmIHRlc3QgIiRtb2R1bGUiID0geWVzIHx8IHRlc3QgIiRleHBvcnRfZHluYW1pYyIg PSB5ZXM7IHRoZW4KKysJICAjIE9uIGFsbCBrbm93biBvcGVyYXRpbmcgc3lzdGVtcywgdGhlc2Ug YXJlIGlkZW50aWNhbC4KKysJICBkbG5hbWU9IiRzb25hbWUiCisrCWZpCisrICAgICAgZmkKKysg ICAgICA7OworKworKyAgICBvYmopCisrICAgICAgaWYgdGVzdCAtbiAiJGRsZmlsZXMkZGxwcmVm aWxlcyIgfHwgdGVzdCAiJGRsc2VsZiIgIT0gbm87IHRoZW4KKysJZnVuY193YXJuaW5nICJcYC1k bG9wZW4nIGlzIGlnbm9yZWQgZm9yIG9iamVjdHMiCisrICAgICAgZmkKKysKKysgICAgICBjYXNl ICIgJGRlcGxpYnMiIGluCisrICAgICAgKlwgLWwqIHwgKlwgLUwqKQorKwlmdW5jX3dhcm5pbmcg IlxgLWwnIGFuZCBcYC1MJyBhcmUgaWdub3JlZCBmb3Igb2JqZWN0cyIgOzsKKysgICAgICBlc2Fj CisrCisrICAgICAgdGVzdCAtbiAiJHJwYXRoIiAmJiBcCisrCWZ1bmNfd2FybmluZyAiXGAtcnBh dGgnIGlzIGlnbm9yZWQgZm9yIG9iamVjdHMiCisrCisrICAgICAgdGVzdCAtbiAiJHhycGF0aCIg JiYgXAorKwlmdW5jX3dhcm5pbmcgIlxgLVInIGlzIGlnbm9yZWQgZm9yIG9iamVjdHMiCisrCisr ICAgICAgdGVzdCAtbiAiJHZpbmZvIiAmJiBcCisrCWZ1bmNfd2FybmluZyAiXGAtdmVyc2lvbi1p bmZvJyBpcyBpZ25vcmVkIGZvciBvYmplY3RzIgorKworKyAgICAgIHRlc3QgLW4gIiRyZWxlYXNl IiAmJiBcCisrCWZ1bmNfd2FybmluZyAiXGAtcmVsZWFzZScgaXMgaWdub3JlZCBmb3Igb2JqZWN0 cyIKKysKKysgICAgICBjYXNlICRvdXRwdXQgaW4KKysgICAgICAqLmxvKQorKwl0ZXN0IC1uICIk b2JqcyRvbGRfZGVwbGlicyIgJiYgXAorKwkgIGZ1bmNfZmF0YWxfZXJyb3IgImNhbm5vdCBidWls ZCBsaWJyYXJ5IG9iamVjdCBcYCRvdXRwdXQnIGZyb20gbm9uLWxpYnRvb2wgb2JqZWN0cyIKKysK KysJbGlib2JqPSRvdXRwdXQKKysJZnVuY19sbzJvICIkbGlib2JqIgorKwlvYmo9JGZ1bmNfbG8y b19yZXN1bHQKKysJOzsKKysgICAgICAqKQorKwlsaWJvYmo9CisrCW9iaj0iJG91dHB1dCIKKysJ OzsKKysgICAgICBlc2FjCisrCisrICAgICAgIyBEZWxldGUgdGhlIG9sZCBvYmplY3RzLgorKyAg ICAgICRvcHRfZHJ5X3J1biB8fCAkUk0gJG9iaiAkbGlib2JqCisrCisrICAgICAgIyBPYmplY3Rz IGZyb20gY29udmVuaWVuY2UgbGlicmFyaWVzLiAgVGhpcyBhc3N1bWVzCisrICAgICAgIyBzaW5n bGUtdmVyc2lvbiBjb252ZW5pZW5jZSBsaWJyYXJpZXMuICBXaGVuZXZlciB3ZSBjcmVhdGUKKysg ICAgICAjIGRpZmZlcmVudCBvbmVzIGZvciBQSUMvbm9uLVBJQywgdGhpcyB3ZSdsbCBoYXZlIHRv IGR1cGxpY2F0ZQorKyAgICAgICMgdGhlIGV4dHJhY3Rpb24uCisrICAgICAgcmVsb2FkX2NvbnZf b2Jqcz0KKysgICAgICBnZW50b3A9CisrICAgICAgIyByZWxvYWRfY21kcyBydW5zICRMRCBkaXJl Y3RseSwgc28gbGV0IHVzIGdldCByaWQgb2YKKysgICAgICAjIC1XbCBmcm9tIHdob2xlX2FyY2hp dmVfZmxhZ19zcGVjIGFuZCBob3BlIHdlIGNhbiBnZXQgYnkgd2l0aAorKyAgICAgICMgdHVybmlu ZyBjb21tYSBpbnRvIHNwYWNlLi4KKysgICAgICB3bD0KKysKKysgICAgICBpZiB0ZXN0IC1uICIk Y29udmVuaWVuY2UiOyB0aGVuCisrCWlmIHRlc3QgLW4gIiR3aG9sZV9hcmNoaXZlX2ZsYWdfc3Bl YyI7IHRoZW4KKysJICBldmFsIHRtcF93aG9sZV9hcmNoaXZlX2ZsYWdzPVwiJHdob2xlX2FyY2hp dmVfZmxhZ19zcGVjXCIKKysJICByZWxvYWRfY29udl9vYmpzPSRyZWxvYWRfb2Jqc1wgYCRFQ0hP ICJYJHRtcF93aG9sZV9hcmNoaXZlX2ZsYWdzIiB8ICRYc2VkIC1lICdzfCx8IHxnJ2AKKysJZWxz ZQorKwkgIGdlbnRvcD0iJG91dHB1dF9vYmpkaXIvJHtvYmp9eCIKKysJICBnZW5lcmF0ZWQ9IiRn ZW5lcmF0ZWQgJGdlbnRvcCIKKysKKysJICBmdW5jX2V4dHJhY3RfYXJjaGl2ZXMgJGdlbnRvcCAk Y29udmVuaWVuY2UKKysJICByZWxvYWRfY29udl9vYmpzPSIkcmVsb2FkX29ianMgJGZ1bmNfZXh0 cmFjdF9hcmNoaXZlc19yZXN1bHQiCisrCWZpCisrICAgICAgZmkKKysKKysgICAgICAjIENyZWF0 ZSB0aGUgb2xkLXN0eWxlIG9iamVjdC4KKysgICAgICByZWxvYWRfb2Jqcz0iJG9ianMkb2xkX2Rl cGxpYnMgImAkRUNITyAiWCRsaWJvYmpzIiB8ICRTUDJOTCB8ICRYc2VkIC1lICcvXC4nJHtsaWJl eHR9JCcvZCcgLWUgJy9cLmxpYiQvZCcgLWUgIiRsbzJvIiB8ICROTDJTUGAiICRyZWxvYWRfY29u dl9vYmpzIiAjIyMgdGVzdHN1aXRlOiBza2lwIG5lc3RlZCBxdW90aW5nIHRlc3QKKysKKysgICAg ICBvdXRwdXQ9IiRvYmoiCisrICAgICAgZnVuY19leGVjdXRlX2NtZHMgIiRyZWxvYWRfY21kcyIg J2V4aXQgJD8nCisrCisrICAgICAgIyBFeGl0IGlmIHdlIGFyZW4ndCBkb2luZyBhIGxpYnJhcnkg b2JqZWN0IGZpbGUuCisrICAgICAgaWYgdGVzdCAteiAiJGxpYm9iaiI7IHRoZW4KKysJaWYgdGVz dCAtbiAiJGdlbnRvcCI7IHRoZW4KKysJICBmdW5jX3Nob3dfZXZhbCAnJHtSTX1yICIkZ2VudG9w IicKKysJZmkKKysKKysJZXhpdCAkRVhJVF9TVUNDRVNTCisrICAgICAgZmkKKysKKysgICAgICBp ZiB0ZXN0ICIkYnVpbGRfbGlidG9vbF9saWJzIiAhPSB5ZXM7IHRoZW4KKysJaWYgdGVzdCAtbiAi JGdlbnRvcCI7IHRoZW4KKysJICBmdW5jX3Nob3dfZXZhbCAnJHtSTX1yICIkZ2VudG9wIicKKysJ ZmkKKysKKysJIyBDcmVhdGUgYW4gaW52YWxpZCBsaWJ0b29sIG9iamVjdCBpZiBubyBQSUMsIHNv IHRoYXQgd2UgZG9uJ3QKKysJIyBhY2NpZGVudGFsbHkgbGluayBpdCBpbnRvIGEgcHJvZ3JhbS4K KysJIyAkc2hvdyAiZWNobyB0aW1lc3RhbXAgPiAkbGlib2JqIgorKwkjICRvcHRfZHJ5X3J1biB8 fCBldmFsICJlY2hvIHRpbWVzdGFtcCA+ICRsaWJvYmoiIHx8IGV4aXQgJD8KKysJZXhpdCAkRVhJ VF9TVUNDRVNTCisrICAgICAgZmkKKysKKysgICAgICBpZiB0ZXN0IC1uICIkcGljX2ZsYWciIHx8 IHRlc3QgIiRwaWNfbW9kZSIgIT0gZGVmYXVsdDsgdGhlbgorKwkjIE9ubHkgZG8gY29tbWFuZHMg aWYgd2UgcmVhbGx5IGhhdmUgZGlmZmVyZW50IFBJQyBvYmplY3RzLgorKwlyZWxvYWRfb2Jqcz0i JGxpYm9ianMgJHJlbG9hZF9jb252X29ianMiCisrCW91dHB1dD0iJGxpYm9iaiIKKysJZnVuY19l eGVjdXRlX2NtZHMgIiRyZWxvYWRfY21kcyIgJ2V4aXQgJD8nCisrICAgICAgZmkKKysKKysgICAg ICBpZiB0ZXN0IC1uICIkZ2VudG9wIjsgdGhlbgorKwlmdW5jX3Nob3dfZXZhbCAnJHtSTX1yICIk Z2VudG9wIicKKysgICAgICBmaQorKworKyAgICAgIGV4aXQgJEVYSVRfU1VDQ0VTUworKyAgICAg IDs7CisrCisrICAgIHByb2cpCisrICAgICAgY2FzZSAkaG9zdCBpbgorKwkqY3lnd2luKikgZnVu Y19zdHJpcG5hbWUgJycgJy5leGUnICIkb3V0cHV0IgorKwkgICAgICAgICAgb3V0cHV0PSRmdW5j X3N0cmlwbmFtZV9yZXN1bHQuZXhlOzsKKysgICAgICBlc2FjCisrICAgICAgdGVzdCAtbiAiJHZp bmZvIiAmJiBcCisrCWZ1bmNfd2FybmluZyAiXGAtdmVyc2lvbi1pbmZvJyBpcyBpZ25vcmVkIGZv ciBwcm9ncmFtcyIKKysKKysgICAgICB0ZXN0IC1uICIkcmVsZWFzZSIgJiYgXAorKwlmdW5jX3dh cm5pbmcgIlxgLXJlbGVhc2UnIGlzIGlnbm9yZWQgZm9yIHByb2dyYW1zIgorKworKyAgICAgIHRl c3QgIiRwcmVsb2FkIiA9IHllcyBcCisrICAgICAgICAmJiB0ZXN0ICIkZGxvcGVuX3N1cHBvcnQi ID0gdW5rbm93biBcCisrCSYmIHRlc3QgIiRkbG9wZW5fc2VsZiIgPSB1bmtub3duIFwKKysJJiYg dGVzdCAiJGRsb3Blbl9zZWxmX3N0YXRpYyIgPSB1bmtub3duICYmIFwKKysJICBmdW5jX3dhcm5p bmcgIlxgTFRfSU5JVChbZGxvcGVuXSknIG5vdCB1c2VkLiBBc3N1bWluZyBubyBkbG9wZW4gc3Vw cG9ydC4iCisrCisrICAgICAgY2FzZSAkaG9zdCBpbgorKyAgICAgICotKi1yaGFwc29keSogfCAq LSotZGFyd2luMS5bMDEyXSkKKysJIyBPbiBSaGFwc29keSByZXBsYWNlIHRoZSBDIGxpYnJhcnkg aXMgdGhlIFN5c3RlbSBmcmFtZXdvcmsKKysJY29tcGlsZV9kZXBsaWJzPWAkRUNITyAiWCAkY29t cGlsZV9kZXBsaWJzIiB8ICRYc2VkIC1lICdzLyAtbGMgLyBTeXN0ZW0ubHRmcmFtZXdvcmsgLydg CisrCWZpbmFsaXplX2RlcGxpYnM9YCRFQ0hPICJYICRmaW5hbGl6ZV9kZXBsaWJzIiB8ICRYc2Vk IC1lICdzLyAtbGMgLyBTeXN0ZW0ubHRmcmFtZXdvcmsgLydgCisrCTs7CisrICAgICAgZXNhYwor KworKyAgICAgIGNhc2UgJGhvc3QgaW4KKysgICAgICAqLSotZGFyd2luKikKKysJIyBEb24ndCBh bGxvdyBsYXp5IGxpbmtpbmcsIGl0IGJyZWFrcyBDKysgZ2xvYmFsIGNvbnN0cnVjdG9ycworKwkj IEJ1dCBpcyBzdXBwb3NlZGx5IGZpeGVkIG9uIDEwLjQgb3IgbGF0ZXIgKHlheSEpLgorKwlpZiB0 ZXN0ICIkdGFnbmFtZSIgPSBDWFggOyB0aGVuCisrCSAgY2FzZSAke01BQ09TWF9ERVBMT1lNRU5U X1RBUkdFVC0xMC4wfSBpbgorKwkgICAgMTAuWzAxMjNdKQorKwkgICAgICBjb21waWxlX2NvbW1h bmQ9IiRjb21waWxlX2NvbW1hbmQgJHt3bH0tYmluZF9hdF9sb2FkIgorKwkgICAgICBmaW5hbGl6 ZV9jb21tYW5kPSIkZmluYWxpemVfY29tbWFuZCAke3dsfS1iaW5kX2F0X2xvYWQiCisrCSAgICA7 OworKwkgIGVzYWMKKysJZmkKKysJIyBUaW1lIHRvIGNoYW5nZSBhbGwgb3VyICJmb28ubHRmcmFt ZXdvcmsiIHN0dWZmIGJhY2sgdG8gIi1mcmFtZXdvcmsgZm9vIgorKwljb21waWxlX2RlcGxpYnM9 YCRFQ0hPICJYICRjb21waWxlX2RlcGxpYnMiIHwgJFhzZWQgLWUgJ3MlIFwoW14gJF0qXCkubHRm cmFtZXdvcmslIC1mcmFtZXdvcmsgXDElZydgCisrCWZpbmFsaXplX2RlcGxpYnM9YCRFQ0hPICJY ICRmaW5hbGl6ZV9kZXBsaWJzIiB8ICRYc2VkIC1lICdzJSBcKFteICRdKlwpLmx0ZnJhbWV3b3Jr JSAtZnJhbWV3b3JrIFwxJWcnYAorKwk7OworKyAgICAgIGVzYWMKKysKKysKKysgICAgICAjIG1v dmUgbGlicmFyeSBzZWFyY2ggcGF0aHMgdGhhdCBjb2luY2lkZSB3aXRoIHBhdGhzIHRvIG5vdCB5 ZXQKKysgICAgICAjIGluc3RhbGxlZCBsaWJyYXJpZXMgdG8gdGhlIGJlZ2lubmluZyBvZiB0aGUg bGlicmFyeSBzZWFyY2ggbGlzdAorKyAgICAgIG5ld19saWJzPQorKyAgICAgIGZvciBwYXRoIGlu ICRub3RpbnN0X3BhdGg7IGRvCisrCWNhc2UgIiAkbmV3X2xpYnMgIiBpbgorKwkqIiAtTCRwYXRo LyRvYmpkaXIgIiopIDs7CisrCSopCisrCSAgY2FzZSAiICRjb21waWxlX2RlcGxpYnMgIiBpbgor KwkgICoiIC1MJHBhdGgvJG9iamRpciAiKikKKysJICAgIG5ld19saWJzPSIkbmV3X2xpYnMgLUwk cGF0aC8kb2JqZGlyIiA7OworKwkgIGVzYWMKKysJICA7OworKwllc2FjCisrICAgICAgZG9uZQor KyAgICAgIGZvciBkZXBsaWIgaW4gJGNvbXBpbGVfZGVwbGliczsgZG8KKysJY2FzZSAkZGVwbGli IGluCisrCS1MKikKKysJICBjYXNlICIgJG5ld19saWJzICIgaW4KKysJICAqIiAkZGVwbGliICIq KSA7OworKwkgICopIG5ld19saWJzPSIkbmV3X2xpYnMgJGRlcGxpYiIgOzsKKysJICBlc2FjCisr CSAgOzsKKysJKikgbmV3X2xpYnM9IiRuZXdfbGlicyAkZGVwbGliIiA7OworKwllc2FjCisrICAg ICAgZG9uZQorKyAgICAgIGNvbXBpbGVfZGVwbGlicz0iJG5ld19saWJzIgorKworKworKyAgICAg IGNvbXBpbGVfY29tbWFuZD0iJGNvbXBpbGVfY29tbWFuZCAkY29tcGlsZV9kZXBsaWJzIgorKyAg ICAgIGZpbmFsaXplX2NvbW1hbmQ9IiRmaW5hbGl6ZV9jb21tYW5kICRmaW5hbGl6ZV9kZXBsaWJz IgorKworKyAgICAgIGlmIHRlc3QgLW4gIiRycGF0aCR4cnBhdGgiOyB0aGVuCisrCSMgSWYgdGhl IHVzZXIgc3BlY2lmaWVkIGFueSBycGF0aCBmbGFncywgdGhlbiBhZGQgdGhlbS4KKysJZm9yIGxp YmRpciBpbiAkcnBhdGggJHhycGF0aDsgZG8KKysJICAjIFRoaXMgaXMgdGhlIG1hZ2ljIHRvIHVz ZSAtcnBhdGguCisrCSAgY2FzZSAiJGZpbmFsaXplX3JwYXRoICIgaW4KKysJICAqIiAkbGliZGly ICIqKSA7OworKwkgICopIGZpbmFsaXplX3JwYXRoPSIkZmluYWxpemVfcnBhdGggJGxpYmRpciIg OzsKKysJICBlc2FjCisrCWRvbmUKKysgICAgICBmaQorKworKyAgICAgICMgTm93IGhhcmRjb2Rl IHRoZSBsaWJyYXJ5IHBhdGhzCisrICAgICAgcnBhdGg9CisrICAgICAgaGFyZGNvZGVfbGliZGly cz0KKysgICAgICBmb3IgbGliZGlyIGluICRjb21waWxlX3JwYXRoICRmaW5hbGl6ZV9ycGF0aDsg ZG8KKysJaWYgdGVzdCAtbiAiJGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMiOyB0aGVuCisrCSAg aWYgdGVzdCAtbiAiJGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3IiOyB0aGVuCisrCSAgICBpZiB0 ZXN0IC16ICIkaGFyZGNvZGVfbGliZGlycyI7IHRoZW4KKysJICAgICAgaGFyZGNvZGVfbGliZGly cz0iJGxpYmRpciIKKysJICAgIGVsc2UKKysJICAgICAgIyBKdXN0IGFjY3VtdWxhdGUgdGhlIHVu aXF1ZSBsaWJkaXJzLgorKwkgICAgICBjYXNlICRoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yJGhh cmRjb2RlX2xpYmRpcnMkaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciBpbgorKwkgICAgICAqIiRo YXJkY29kZV9saWJkaXJfc2VwYXJhdG9yJGxpYmRpciRoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9y IiopCisrCQk7OworKwkgICAgICAqKQorKwkJaGFyZGNvZGVfbGliZGlycz0iJGhhcmRjb2RlX2xp YmRpcnMkaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciRsaWJkaXIiCisrCQk7OworKwkgICAgICBl c2FjCisrCSAgICBmaQorKwkgIGVsc2UKKysJICAgIGV2YWwgZmxhZz1cIiRoYXJkY29kZV9saWJk aXJfZmxhZ19zcGVjXCIKKysJICAgIHJwYXRoPSIkcnBhdGggJGZsYWciCisrCSAgZmkKKysJZWxp ZiB0ZXN0IC1uICIkcnVucGF0aF92YXIiOyB0aGVuCisrCSAgY2FzZSAiJHBlcm1fcnBhdGggIiBp bgorKwkgICoiICRsaWJkaXIgIiopIDs7CisrCSAgKikgcGVybV9ycGF0aD0iJHBlcm1fcnBhdGgg JGxpYmRpciIgOzsKKysJICBlc2FjCisrCWZpCisrCWNhc2UgJGhvc3QgaW4KKysJKi0qLWN5Z3dp biogfCAqLSotbWluZ3cqIHwgKi0qLXB3MzIqIHwgKi0qLW9zMiogfCAqLWNlZ2NjKikKKysJICB0 ZXN0YmluZGlyPWAke0VDSE99ICIkbGliZGlyIiB8ICR7U0VEfSAtZSAncyovbGliJCovYmluKidg CisrCSAgY2FzZSA6JGRsbHNlYXJjaHBhdGg6IGluCisrCSAgKiI6JGxpYmRpcjoiKikgOzsKKysJ ICA6OikgZGxsc2VhcmNocGF0aD0kbGliZGlyOzsKKysJICAqKSBkbGxzZWFyY2hwYXRoPSIkZGxs c2VhcmNocGF0aDokbGliZGlyIjs7CisrCSAgZXNhYworKwkgIGNhc2UgOiRkbGxzZWFyY2hwYXRo OiBpbgorKwkgICoiOiR0ZXN0YmluZGlyOiIqKSA7OworKwkgIDo6KSBkbGxzZWFyY2hwYXRoPSR0 ZXN0YmluZGlyOzsKKysJICAqKSBkbGxzZWFyY2hwYXRoPSIkZGxsc2VhcmNocGF0aDokdGVzdGJp bmRpciI7OworKwkgIGVzYWMKKysJICA7OworKwllc2FjCisrICAgICAgZG9uZQorKyAgICAgICMg U3Vic3RpdHV0ZSB0aGUgaGFyZGNvZGVkIGxpYmRpcnMgaW50byB0aGUgcnBhdGguCisrICAgICAg aWYgdGVzdCAtbiAiJGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3IiICYmCisrCSB0ZXN0IC1uICIk aGFyZGNvZGVfbGliZGlycyI7IHRoZW4KKysJbGliZGlyPSIkaGFyZGNvZGVfbGliZGlycyIKKysJ ZXZhbCBycGF0aD1cIiAkaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY1wiCisrICAgICAgZmkKKysg ICAgICBjb21waWxlX3JwYXRoPSIkcnBhdGgiCisrCisrICAgICAgcnBhdGg9CisrICAgICAgaGFy ZGNvZGVfbGliZGlycz0KKysgICAgICBmb3IgbGliZGlyIGluICRmaW5hbGl6ZV9ycGF0aDsgZG8K KysJaWYgdGVzdCAtbiAiJGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMiOyB0aGVuCisrCSAgaWYg dGVzdCAtbiAiJGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3IiOyB0aGVuCisrCSAgICBpZiB0ZXN0 IC16ICIkaGFyZGNvZGVfbGliZGlycyI7IHRoZW4KKysJICAgICAgaGFyZGNvZGVfbGliZGlycz0i JGxpYmRpciIKKysJICAgIGVsc2UKKysJICAgICAgIyBKdXN0IGFjY3VtdWxhdGUgdGhlIHVuaXF1 ZSBsaWJkaXJzLgorKwkgICAgICBjYXNlICRoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yJGhhcmRj b2RlX2xpYmRpcnMkaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciBpbgorKwkgICAgICAqIiRoYXJk Y29kZV9saWJkaXJfc2VwYXJhdG9yJGxpYmRpciRoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yIiop CisrCQk7OworKwkgICAgICAqKQorKwkJaGFyZGNvZGVfbGliZGlycz0iJGhhcmRjb2RlX2xpYmRp cnMkaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciRsaWJkaXIiCisrCQk7OworKwkgICAgICBlc2Fj CisrCSAgICBmaQorKwkgIGVsc2UKKysJICAgIGV2YWwgZmxhZz1cIiRoYXJkY29kZV9saWJkaXJf ZmxhZ19zcGVjXCIKKysJICAgIHJwYXRoPSIkcnBhdGggJGZsYWciCisrCSAgZmkKKysJZWxpZiB0 ZXN0IC1uICIkcnVucGF0aF92YXIiOyB0aGVuCisrCSAgY2FzZSAiJGZpbmFsaXplX3Blcm1fcnBh dGggIiBpbgorKwkgICoiICRsaWJkaXIgIiopIDs7CisrCSAgKikgZmluYWxpemVfcGVybV9ycGF0 aD0iJGZpbmFsaXplX3Blcm1fcnBhdGggJGxpYmRpciIgOzsKKysJICBlc2FjCisrCWZpCisrICAg ICAgZG9uZQorKyAgICAgICMgU3Vic3RpdHV0ZSB0aGUgaGFyZGNvZGVkIGxpYmRpcnMgaW50byB0 aGUgcnBhdGguCisrICAgICAgaWYgdGVzdCAtbiAiJGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3Ii ICYmCisrCSB0ZXN0IC1uICIkaGFyZGNvZGVfbGliZGlycyI7IHRoZW4KKysJbGliZGlyPSIkaGFy ZGNvZGVfbGliZGlycyIKKysJZXZhbCBycGF0aD1cIiAkaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3Bl Y1wiCisrICAgICAgZmkKKysgICAgICBmaW5hbGl6ZV9ycGF0aD0iJHJwYXRoIgorKworKyAgICAg IGlmIHRlc3QgLW4gIiRsaWJvYmpzIiAmJiB0ZXN0ICIkYnVpbGRfb2xkX2xpYnMiID0geWVzOyB0 aGVuCisrCSMgVHJhbnNmb3JtIGFsbCB0aGUgbGlicmFyeSBvYmplY3RzIGludG8gc3RhbmRhcmQg b2JqZWN0cy4KKysJY29tcGlsZV9jb21tYW5kPWAkRUNITyAiWCRjb21waWxlX2NvbW1hbmQiIHwg JFNQMk5MIHwgJFhzZWQgLWUgIiRsbzJvIiB8ICROTDJTUGAKKysJZmluYWxpemVfY29tbWFuZD1g JEVDSE8gIlgkZmluYWxpemVfY29tbWFuZCIgfCAkU1AyTkwgfCAkWHNlZCAtZSAiJGxvMm8iIHwg JE5MMlNQYAorKyAgICAgIGZpCisrCisrICAgICAgZnVuY19nZW5lcmF0ZV9kbHN5bXMgIiRvdXRw dXRuYW1lIiAiQFBST0dSQU1AIiAibm8iCisrCisrICAgICAgIyB0ZW1wbGF0ZSBwcmVsaW5raW5n IHN0ZXAKKysgICAgICBpZiB0ZXN0IC1uICIkcHJlbGlua19jbWRzIjsgdGhlbgorKwlmdW5jX2V4 ZWN1dGVfY21kcyAiJHByZWxpbmtfY21kcyIgJ2V4aXQgJD8nCisrICAgICAgZmkKKysKKysgICAg ICB3cmFwcGVyc19yZXF1aXJlZD15ZXMKKysgICAgICBjYXNlICRob3N0IGluCisrICAgICAgKmN5 Z3dpbiogfCAqbWluZ3cqICkKKysgICAgICAgIGlmIHRlc3QgIiRidWlsZF9saWJ0b29sX2xpYnMi ICE9IHllczsgdGhlbgorKyAgICAgICAgICB3cmFwcGVyc19yZXF1aXJlZD1ubworKyAgICAgICAg ZmkKKysgICAgICAgIDs7CisrICAgICAgKmNlZ2NjKQorKyAgICAgICAgIyBEaXNhYmxlIHdyYXBw ZXJzIGZvciBjZWdjYywgd2UgYXJlIGNyb3NzIGNvbXBpbGluZyBhbnl3YXkuCisrICAgICAgICB3 cmFwcGVyc19yZXF1aXJlZD1ubworKyAgICAgICAgOzsKKysgICAgICAqKQorKyAgICAgICAgaWYg dGVzdCAiJG5lZWRfcmVsaW5rIiA9IG5vIHx8IHRlc3QgIiRidWlsZF9saWJ0b29sX2xpYnMiICE9 IHllczsgdGhlbgorKyAgICAgICAgICB3cmFwcGVyc19yZXF1aXJlZD1ubworKyAgICAgICAgZmkK KysgICAgICAgIDs7CisrICAgICAgZXNhYworKyAgICAgIGlmIHRlc3QgIiR3cmFwcGVyc19yZXF1 aXJlZCIgPSBubzsgdGhlbgorKwkjIFJlcGxhY2UgdGhlIG91dHB1dCBmaWxlIHNwZWNpZmljYXRp b24uCisrCWNvbXBpbGVfY29tbWFuZD1gJEVDSE8gIlgkY29tcGlsZV9jb21tYW5kIiB8ICRYc2Vk IC1lICdzJUBPVVRQVVRAJSciJG91dHB1dCInJWcnYAorKwlsaW5rX2NvbW1hbmQ9IiRjb21waWxl X2NvbW1hbmQkY29tcGlsZV9ycGF0aCIKKysKKysJIyBXZSBoYXZlIG5vIHVuaW5zdGFsbGVkIGxp YnJhcnkgZGVwZW5kZW5jaWVzLCBzbyBmaW5hbGl6ZSByaWdodCBub3cuCisrCWV4aXRfc3RhdHVz PTAKKysJZnVuY19zaG93X2V2YWwgIiRsaW5rX2NvbW1hbmQiICdleGl0X3N0YXR1cz0kPycKKysK KysJIyBEZWxldGUgdGhlIGdlbmVyYXRlZCBmaWxlcy4KKysJaWYgdGVzdCAtZiAiJG91dHB1dF9v YmpkaXIvJHtvdXRwdXRuYW1lfVMuJHtvYmpleHR9IjsgdGhlbgorKwkgIGZ1bmNfc2hvd19ldmFs ICckUk0gIiRvdXRwdXRfb2JqZGlyLyR7b3V0cHV0bmFtZX1TLiR7b2JqZXh0fSInCisrCWZpCisr CisrCWV4aXQgJGV4aXRfc3RhdHVzCisrICAgICAgZmkKKysKKysgICAgICBpZiB0ZXN0IC1uICIk Y29tcGlsZV9zaGxpYnBhdGgkZmluYWxpemVfc2hsaWJwYXRoIjsgdGhlbgorKwljb21waWxlX2Nv bW1hbmQ9IiRzaGxpYnBhdGhfdmFyPVwiJGNvbXBpbGVfc2hsaWJwYXRoJGZpbmFsaXplX3NobGli cGF0aFwkJHNobGlicGF0aF92YXJcIiAkY29tcGlsZV9jb21tYW5kIgorKyAgICAgIGZpCisrICAg ICAgaWYgdGVzdCAtbiAiJGZpbmFsaXplX3NobGlicGF0aCI7IHRoZW4KKysJZmluYWxpemVfY29t bWFuZD0iJHNobGlicGF0aF92YXI9XCIkZmluYWxpemVfc2hsaWJwYXRoXCQkc2hsaWJwYXRoX3Zh clwiICRmaW5hbGl6ZV9jb21tYW5kIgorKyAgICAgIGZpCisrCisrICAgICAgY29tcGlsZV92YXI9 CisrICAgICAgZmluYWxpemVfdmFyPQorKyAgICAgIGlmIHRlc3QgLW4gIiRydW5wYXRoX3ZhciI7 IHRoZW4KKysJaWYgdGVzdCAtbiAiJHBlcm1fcnBhdGgiOyB0aGVuCisrCSAgIyBXZSBzaG91bGQg c2V0IHRoZSBydW5wYXRoX3Zhci4KKysJICBycGF0aD0KKysJICBmb3IgZGlyIGluICRwZXJtX3Jw YXRoOyBkbworKwkgICAgcnBhdGg9IiRycGF0aCRkaXI6IgorKwkgIGRvbmUKKysJICBjb21waWxl X3Zhcj0iJHJ1bnBhdGhfdmFyPVwiJHJwYXRoXCQkcnVucGF0aF92YXJcIiAiCisrCWZpCisrCWlm IHRlc3QgLW4gIiRmaW5hbGl6ZV9wZXJtX3JwYXRoIjsgdGhlbgorKwkgICMgV2Ugc2hvdWxkIHNl dCB0aGUgcnVucGF0aF92YXIuCisrCSAgcnBhdGg9CisrCSAgZm9yIGRpciBpbiAkZmluYWxpemVf cGVybV9ycGF0aDsgZG8KKysJICAgIHJwYXRoPSIkcnBhdGgkZGlyOiIKKysJICBkb25lCisrCSAg ZmluYWxpemVfdmFyPSIkcnVucGF0aF92YXI9XCIkcnBhdGhcJCRydW5wYXRoX3ZhclwiICIKKysJ ZmkKKysgICAgICBmaQorKworKyAgICAgIGlmIHRlc3QgIiRub19pbnN0YWxsIiA9IHllczsgdGhl bgorKwkjIFdlIGRvbid0IG5lZWQgdG8gY3JlYXRlIGEgd3JhcHBlciBzY3JpcHQuCisrCWxpbmtf Y29tbWFuZD0iJGNvbXBpbGVfdmFyJGNvbXBpbGVfY29tbWFuZCRjb21waWxlX3JwYXRoIgorKwkj IFJlcGxhY2UgdGhlIG91dHB1dCBmaWxlIHNwZWNpZmljYXRpb24uCisrCWxpbmtfY29tbWFuZD1g JEVDSE8gIlgkbGlua19jb21tYW5kIiB8ICRYc2VkIC1lICdzJUBPVVRQVVRAJSciJG91dHB1dCIn JWcnYAorKwkjIERlbGV0ZSB0aGUgb2xkIG91dHB1dCBmaWxlLgorKwkkb3B0X2RyeV9ydW4gfHwg JFJNICRvdXRwdXQKKysJIyBMaW5rIHRoZSBleGVjdXRhYmxlIGFuZCBleGl0CisrCWZ1bmNfc2hv d19ldmFsICIkbGlua19jb21tYW5kIiAnZXhpdCAkPycKKysJZXhpdCAkRVhJVF9TVUNDRVNTCisr ICAgICAgZmkKKysKKysgICAgICBpZiB0ZXN0ICIkaGFyZGNvZGVfYWN0aW9uIiA9IHJlbGluazsg dGhlbgorKwkjIEZhc3QgaW5zdGFsbGF0aW9uIGlzIG5vdCBzdXBwb3J0ZWQKKysJbGlua19jb21t YW5kPSIkY29tcGlsZV92YXIkY29tcGlsZV9jb21tYW5kJGNvbXBpbGVfcnBhdGgiCisrCXJlbGlu a19jb21tYW5kPSIkZmluYWxpemVfdmFyJGZpbmFsaXplX2NvbW1hbmQkZmluYWxpemVfcnBhdGgi CisrCisrCWZ1bmNfd2FybmluZyAidGhpcyBwbGF0Zm9ybSBkb2VzIG5vdCBsaWtlIHVuaW5zdGFs bGVkIHNoYXJlZCBsaWJyYXJpZXMiCisrCWZ1bmNfd2FybmluZyAiXGAkb3V0cHV0JyB3aWxsIGJl IHJlbGlua2VkIGR1cmluZyBpbnN0YWxsYXRpb24iCisrICAgICAgZWxzZQorKwlpZiB0ZXN0ICIk ZmFzdF9pbnN0YWxsIiAhPSBubzsgdGhlbgorKwkgIGxpbmtfY29tbWFuZD0iJGZpbmFsaXplX3Zh ciRjb21waWxlX2NvbW1hbmQkZmluYWxpemVfcnBhdGgiCisrCSAgaWYgdGVzdCAiJGZhc3RfaW5z dGFsbCIgPSB5ZXM7IHRoZW4KKysJICAgIHJlbGlua19jb21tYW5kPWAkRUNITyAiWCRjb21waWxl X3ZhciRjb21waWxlX2NvbW1hbmQkY29tcGlsZV9ycGF0aCIgfCAkWHNlZCAtZSAncyVAT1VUUFVU QCVcJHByb2dkaXIvXCRmaWxlJWcnYAorKwkgIGVsc2UKKysJICAgICMgZmFzdF9pbnN0YWxsIGlz IHNldCB0byBuZWVkbGVzcworKwkgICAgcmVsaW5rX2NvbW1hbmQ9CisrCSAgZmkKKysJZWxzZQor KwkgIGxpbmtfY29tbWFuZD0iJGNvbXBpbGVfdmFyJGNvbXBpbGVfY29tbWFuZCRjb21waWxlX3Jw YXRoIgorKwkgIHJlbGlua19jb21tYW5kPSIkZmluYWxpemVfdmFyJGZpbmFsaXplX2NvbW1hbmQk ZmluYWxpemVfcnBhdGgiCisrCWZpCisrICAgICAgZmkKKysKKysgICAgICAjIFJlcGxhY2UgdGhl IG91dHB1dCBmaWxlIHNwZWNpZmljYXRpb24uCisrICAgICAgbGlua19jb21tYW5kPWAkRUNITyAi WCRsaW5rX2NvbW1hbmQiIHwgJFhzZWQgLWUgJ3MlQE9VVFBVVEAlJyIkb3V0cHV0X29iamRpci8k b3V0cHV0bmFtZSInJWcnYAorKworKyAgICAgICMgRGVsZXRlIHRoZSBvbGQgb3V0cHV0IGZpbGVz LgorKyAgICAgICRvcHRfZHJ5X3J1biB8fCAkUk0gJG91dHB1dCAkb3V0cHV0X29iamRpci8kb3V0 cHV0bmFtZSAkb3V0cHV0X29iamRpci9sdC0kb3V0cHV0bmFtZQorKworKyAgICAgIGZ1bmNfc2hv d19ldmFsICIkbGlua19jb21tYW5kIiAnZXhpdCAkPycKKysKKysgICAgICAjIE5vdyBjcmVhdGUg dGhlIHdyYXBwZXIgc2NyaXB0LgorKyAgICAgIGZ1bmNfdmVyYm9zZSAiY3JlYXRpbmcgJG91dHB1 dCIKKysKKysgICAgICAjIFF1b3RlIHRoZSByZWxpbmsgY29tbWFuZCBmb3Igc2hpcHBpbmcuCisr ICAgICAgaWYgdGVzdCAtbiAiJHJlbGlua19jb21tYW5kIjsgdGhlbgorKwkjIFByZXNlcnZlIGFu eSB2YXJpYWJsZXMgdGhhdCBtYXkgYWZmZWN0IGNvbXBpbGVyIGJlaGF2aW9yCisrCWZvciB2YXIg aW4gJHZhcmlhYmxlc19zYXZlZF9mb3JfcmVsaW5rOyBkbworKwkgIGlmIGV2YWwgdGVzdCAteiBc IlwkeyR2YXIrc2V0fVwiOyB0aGVuCisrCSAgICByZWxpbmtfY29tbWFuZD0ieyB0ZXN0IC16IFwi XCR7JHZhcitzZXR9XCIgfHwgJGx0X3Vuc2V0ICR2YXIgfHwgeyAkdmFyPTsgZXhwb3J0ICR2YXI7 IH07IH07ICRyZWxpbmtfY29tbWFuZCIKKysJICBlbGlmIGV2YWwgdmFyX3ZhbHVlPVwkJHZhcjsg dGVzdCAteiAiJHZhcl92YWx1ZSI7IHRoZW4KKysJICAgIHJlbGlua19jb21tYW5kPSIkdmFyPTsg ZXhwb3J0ICR2YXI7ICRyZWxpbmtfY29tbWFuZCIKKysJICBlbHNlCisrCSAgICBmdW5jX3F1b3Rl X2Zvcl9ldmFsICIkdmFyX3ZhbHVlIgorKwkgICAgcmVsaW5rX2NvbW1hbmQ9IiR2YXI9JGZ1bmNf cXVvdGVfZm9yX2V2YWxfcmVzdWx0OyBleHBvcnQgJHZhcjsgJHJlbGlua19jb21tYW5kIgorKwkg IGZpCisrCWRvbmUKKysJcmVsaW5rX2NvbW1hbmQ9IihjZCBgcHdkYDsgJHJlbGlua19jb21tYW5k KSIKKysJcmVsaW5rX2NvbW1hbmQ9YCRFQ0hPICJYJHJlbGlua19jb21tYW5kIiB8ICRYc2VkIC1l ICIkc2VkX3F1b3RlX3N1YnN0ImAKKysgICAgICBmaQorKworKyAgICAgICMgUXVvdGUgJEVDSE8g Zm9yIHNoaXBwaW5nLgorKyAgICAgIGlmIHRlc3QgIlgkRUNITyIgPSAiWCRTSEVMTCAkcHJvZ3Bh dGggLS1mYWxsYmFjay1lY2hvIjsgdGhlbgorKwljYXNlICRwcm9ncGF0aCBpbgorKwlbXFwvXSog fCBbQS1aYS16XTpbXFwvXSopIHFlY2hvPSIkU0hFTEwgJHByb2dwYXRoIC0tZmFsbGJhY2stZWNo byI7OworKwkqKSBxZWNobz0iJFNIRUxMIGBwd2RgLyRwcm9ncGF0aCAtLWZhbGxiYWNrLWVjaG8i OzsKKysJZXNhYworKwlxZWNobz1gJEVDSE8gIlgkcWVjaG8iIHwgJFhzZWQgLWUgIiRzZWRfcXVv dGVfc3Vic3QiYAorKyAgICAgIGVsc2UKKysJcWVjaG89YCRFQ0hPICJYJEVDSE8iIHwgJFhzZWQg LWUgIiRzZWRfcXVvdGVfc3Vic3QiYAorKyAgICAgIGZpCisrCisrICAgICAgIyBPbmx5IGFjdHVh bGx5IGRvIHRoaW5ncyBpZiBub3QgaW4gZHJ5IHJ1biBtb2RlLgorKyAgICAgICRvcHRfZHJ5X3J1 biB8fCB7CisrCSMgd2luMzIgd2lsbCB0aGluayB0aGUgc2NyaXB0IGlzIGEgYmluYXJ5IGlmIGl0 IGhhcworKwkjIGEgLmV4ZSBzdWZmaXgsIHNvIHdlIHN0cmlwIGl0IG9mZiBoZXJlLgorKwljYXNl ICRvdXRwdXQgaW4KKysJICAqLmV4ZSkgZnVuY19zdHJpcG5hbWUgJycgJy5leGUnICIkb3V0cHV0 IgorKwkgICAgICAgICBvdXRwdXQ9JGZ1bmNfc3RyaXBuYW1lX3Jlc3VsdCA7OworKwllc2FjCisr CSMgdGVzdCBmb3IgY3lnd2luIGJlY2F1c2UgbXYgZmFpbHMgdy9vIC5leGUgZXh0ZW5zaW9ucwor KwljYXNlICRob3N0IGluCisrCSAgKmN5Z3dpbiopCisrCSAgICBleGVleHQ9LmV4ZQorKwkgICAg ZnVuY19zdHJpcG5hbWUgJycgJy5leGUnICIkb3V0cHV0bmFtZSIKKysJICAgIG91dHB1dG5hbWU9 JGZ1bmNfc3RyaXBuYW1lX3Jlc3VsdCA7OworKwkgICopIGV4ZWV4dD0gOzsKKysJZXNhYworKwlj YXNlICRob3N0IGluCisrCSAgKmN5Z3dpbiogfCAqbWluZ3cqICkKKysJICAgIGZ1bmNfZGlybmFt ZV9hbmRfYmFzZW5hbWUgIiRvdXRwdXQiICIiICIuIgorKwkgICAgb3V0cHV0X25hbWU9JGZ1bmNf YmFzZW5hbWVfcmVzdWx0CisrCSAgICBvdXRwdXRfcGF0aD0kZnVuY19kaXJuYW1lX3Jlc3VsdAor KwkgICAgY3dyYXBwZXJzb3VyY2U9IiRvdXRwdXRfcGF0aC8kb2JqZGlyL2x0LSRvdXRwdXRfbmFt ZS5jIgorKwkgICAgY3dyYXBwZXI9IiRvdXRwdXRfcGF0aC8kb3V0cHV0X25hbWUuZXhlIgorKwkg ICAgJFJNICRjd3JhcHBlcnNvdXJjZSAkY3dyYXBwZXIKKysJICAgIHRyYXAgIiRSTSAkY3dyYXBw ZXJzb3VyY2UgJGN3cmFwcGVyOyBleGl0ICRFWElUX0ZBSUxVUkUiIDEgMiAxNQorKworKwkgICAg ZnVuY19lbWl0X2N3cmFwcGVyZXhlX3NyYyA+ICRjd3JhcHBlcnNvdXJjZQorKworKwkgICAgIyBU aGUgd3JhcHBlciBleGVjdXRhYmxlIGlzIGJ1aWx0IHVzaW5nIHRoZSAkaG9zdCBjb21waWxlciwK KysJICAgICMgYmVjYXVzZSBpdCBjb250YWlucyAkaG9zdCBwYXRocyBhbmQgZmlsZXMuIElmIGNy b3NzLQorKwkgICAgIyBjb21waWxpbmcsIGl0LCBsaWtlIHRoZSB0YXJnZXQgZXhlY3V0YWJsZSwg bXVzdCBiZQorKwkgICAgIyBleGVjdXRlZCBvbiB0aGUgJGhvc3Qgb3IgdW5kZXIgYW4gZW11bGF0 aW9uIGVudmlyb25tZW50LgorKwkgICAgJG9wdF9kcnlfcnVuIHx8IHsKKysJICAgICAgJExUQ0Mg JExUQ0ZMQUdTIC1vICRjd3JhcHBlciAkY3dyYXBwZXJzb3VyY2UKKysJICAgICAgJFNUUklQICRj d3JhcHBlcgorKwkgICAgfQorKworKwkgICAgIyBOb3csIGNyZWF0ZSB0aGUgd3JhcHBlciBzY3Jp cHQgZm9yIGZ1bmNfc291cmNlIHVzZToKKysJICAgIGZ1bmNfbHR3cmFwcGVyX3NjcmlwdG5hbWUg JGN3cmFwcGVyCisrCSAgICAkUk0gJGZ1bmNfbHR3cmFwcGVyX3NjcmlwdG5hbWVfcmVzdWx0Cisr CSAgICB0cmFwICIkUk0gJGZ1bmNfbHR3cmFwcGVyX3NjcmlwdG5hbWVfcmVzdWx0OyBleGl0ICRF WElUX0ZBSUxVUkUiIDEgMiAxNQorKwkgICAgJG9wdF9kcnlfcnVuIHx8IHsKKysJICAgICAgIyBu b3RlOiB0aGlzIHNjcmlwdCB3aWxsIG5vdCBiZSBleGVjdXRlZCwgc28gZG8gbm90IGNobW9kLgor KwkgICAgICBpZiB0ZXN0ICJ4JGJ1aWxkIiA9ICJ4JGhvc3QiIDsgdGhlbgorKwkJJGN3cmFwcGVy IC0tbHQtZHVtcC1zY3JpcHQgPiAkZnVuY19sdHdyYXBwZXJfc2NyaXB0bmFtZV9yZXN1bHQKKysJ ICAgICAgZWxzZQorKwkJZnVuY19lbWl0X3dyYXBwZXIgbm8gPiAkZnVuY19sdHdyYXBwZXJfc2Ny aXB0bmFtZV9yZXN1bHQKKysJICAgICAgZmkKKysJICAgIH0KKysJICA7OworKwkgICogKQorKwkg ICAgJFJNICRvdXRwdXQKKysJICAgIHRyYXAgIiRSTSAkb3V0cHV0OyBleGl0ICRFWElUX0ZBSUxV UkUiIDEgMiAxNQorKworKwkgICAgZnVuY19lbWl0X3dyYXBwZXIgbm8gPiAkb3V0cHV0CisrCSAg ICBjaG1vZCAreCAkb3V0cHV0CisrCSAgOzsKKysJZXNhYworKyAgICAgIH0KKysgICAgICBleGl0 ICRFWElUX1NVQ0NFU1MKKysgICAgICA7OworKyAgICBlc2FjCisrCisrICAgICMgU2VlIGlmIHdl IG5lZWQgdG8gYnVpbGQgYW4gb2xkLWZhc2hpb25lZCBhcmNoaXZlLgorKyAgICBmb3Igb2xkbGli IGluICRvbGRsaWJzOyBkbworKworKyAgICAgIGlmIHRlc3QgIiRidWlsZF9saWJ0b29sX2xpYnMi ID0gY29udmVuaWVuY2U7IHRoZW4KKysJb2xkb2Jqcz0iJGxpYm9ianNfc2F2ZSAkc3ltZmlsZW9i aiIKKysJYWRkbGlicz0iJGNvbnZlbmllbmNlIgorKwlidWlsZF9saWJ0b29sX2xpYnM9bm8KKysg ICAgICBlbHNlCisrCWlmIHRlc3QgIiRidWlsZF9saWJ0b29sX2xpYnMiID0gbW9kdWxlOyB0aGVu CisrCSAgb2xkb2Jqcz0iJGxpYm9ianNfc2F2ZSIKKysJICBidWlsZF9saWJ0b29sX2xpYnM9bm8K KysJZWxzZQorKwkgIG9sZG9ianM9IiRvbGRfZGVwbGlicyAkbm9uX3BpY19vYmplY3RzIgorKwkg IGlmIHRlc3QgIiRwcmVsb2FkIiA9IHllcyAmJiB0ZXN0IC1mICIkc3ltZmlsZW9iaiI7IHRoZW4K KysJICAgIG9sZG9ianM9IiRvbGRvYmpzICRzeW1maWxlb2JqIgorKwkgIGZpCisrCWZpCisrCWFk ZGxpYnM9IiRvbGRfY29udmVuaWVuY2UiCisrICAgICAgZmkKKysKKysgICAgICBpZiB0ZXN0IC1u ICIkYWRkbGlicyI7IHRoZW4KKysJZ2VudG9wPSIkb3V0cHV0X29iamRpci8ke291dHB1dG5hbWV9 eCIKKysJZ2VuZXJhdGVkPSIkZ2VuZXJhdGVkICRnZW50b3AiCisrCisrCWZ1bmNfZXh0cmFjdF9h cmNoaXZlcyAkZ2VudG9wICRhZGRsaWJzCisrCW9sZG9ianM9IiRvbGRvYmpzICRmdW5jX2V4dHJh Y3RfYXJjaGl2ZXNfcmVzdWx0IgorKyAgICAgIGZpCisrCisrICAgICAgIyBEbyBlYWNoIGNvbW1h bmQgaW4gdGhlIGFyY2hpdmUgY29tbWFuZHMuCisrICAgICAgaWYgdGVzdCAtbiAiJG9sZF9hcmNo aXZlX2Zyb21fbmV3X2NtZHMiICYmIHRlc3QgIiRidWlsZF9saWJ0b29sX2xpYnMiID0geWVzOyB0 aGVuCisrCWNtZHM9JG9sZF9hcmNoaXZlX2Zyb21fbmV3X2NtZHMKKysgICAgICBlbHNlCisrCisr CSMgQWRkIGFueSBvYmplY3RzIGZyb20gcHJlbG9hZGVkIGNvbnZlbmllbmNlIGxpYnJhcmllcwor KwlpZiB0ZXN0IC1uICIkZGxwcmVmaWxlcyI7IHRoZW4KKysJICBnZW50b3A9IiRvdXRwdXRfb2Jq ZGlyLyR7b3V0cHV0bmFtZX14IgorKwkgIGdlbmVyYXRlZD0iJGdlbmVyYXRlZCAkZ2VudG9wIgor KworKwkgIGZ1bmNfZXh0cmFjdF9hcmNoaXZlcyAkZ2VudG9wICRkbHByZWZpbGVzCisrCSAgb2xk b2Jqcz0iJG9sZG9ianMgJGZ1bmNfZXh0cmFjdF9hcmNoaXZlc19yZXN1bHQiCisrCWZpCisrCisr CSMgUE9TSVggZGVtYW5kcyBubyBwYXRocyB0byBiZSBlbmNvZGVkIGluIGFyY2hpdmVzLiAgV2Ug aGF2ZQorKwkjIHRvIGF2b2lkIGNyZWF0aW5nIGFyY2hpdmVzIHdpdGggZHVwbGljYXRlIGJhc2Vu YW1lcyBpZiB3ZQorKwkjIG1pZ2h0IGhhdmUgdG8gZXh0cmFjdCB0aGVtIGFmdGVyd2FyZHMsIGUu Zy4sIHdoZW4gY3JlYXRpbmcgYQorKwkjIHN0YXRpYyBhcmNoaXZlIG91dCBvZiBhIGNvbnZlbmll bmNlIGxpYnJhcnksIG9yIHdoZW4gbGlua2luZworKwkjIHRoZSBlbnRpcmV0eSBvZiBhIGxpYnRv b2wgYXJjaGl2ZSBpbnRvIGFub3RoZXIgKGN1cnJlbnRseQorKwkjIG5vdCBzdXBwb3J0ZWQgYnkg bGlidG9vbCkuCisrCWlmIChmb3Igb2JqIGluICRvbGRvYmpzCisrCSAgICBkbworKwkgICAgICBm dW5jX2Jhc2VuYW1lICIkb2JqIgorKwkgICAgICAkRUNITyAiJGZ1bmNfYmFzZW5hbWVfcmVzdWx0 IgorKwkgICAgZG9uZSB8IHNvcnQgfCBzb3J0IC11YyA+L2Rldi9udWxsIDI+JjEpOyB0aGVuCisr CSAgOgorKwllbHNlCisrCSAgJEVDSE8gImNvcHlpbmcgc2VsZWN0ZWQgb2JqZWN0IGZpbGVzIHRv IGF2b2lkIGJhc2VuYW1lIGNvbmZsaWN0cy4uLiIKKysJICBnZW50b3A9IiRvdXRwdXRfb2JqZGly LyR7b3V0cHV0bmFtZX14IgorKwkgIGdlbmVyYXRlZD0iJGdlbmVyYXRlZCAkZ2VudG9wIgorKwkg IGZ1bmNfbWtkaXJfcCAiJGdlbnRvcCIKKysJICBzYXZlX29sZG9ianM9JG9sZG9ianMKKysJICBv bGRvYmpzPQorKwkgIGNvdW50ZXI9MQorKwkgIGZvciBvYmogaW4gJHNhdmVfb2xkb2JqcworKwkg IGRvCisrCSAgICBmdW5jX2Jhc2VuYW1lICIkb2JqIgorKwkgICAgb2JqYmFzZT0iJGZ1bmNfYmFz ZW5hbWVfcmVzdWx0IgorKwkgICAgY2FzZSAiICRvbGRvYmpzICIgaW4KKysJICAgICIgIikgb2xk b2Jqcz0kb2JqIDs7CisrCSAgICAqW1wgL10iJG9iamJhc2UgIiopCisrCSAgICAgIHdoaWxlIDo7 IGRvCisrCQkjIE1ha2Ugc3VyZSB3ZSBkb24ndCBwaWNrIGFuIGFsdGVybmF0ZSBuYW1lIHRoYXQg YWxzbworKwkJIyBvdmVybGFwcy4KKysJCW5ld29iaj1sdCRjb3VudGVyLSRvYmpiYXNlCisrCQlm dW5jX2FyaXRoICRjb3VudGVyICsgMQorKwkJY291bnRlcj0kZnVuY19hcml0aF9yZXN1bHQKKysJ CWNhc2UgIiAkb2xkb2JqcyAiIGluCisrCQkqW1wgL10iJG5ld29iaiAiKikgOzsKKysJCSopIGlm IHRlc3QgISAtZiAiJGdlbnRvcC8kbmV3b2JqIjsgdGhlbiBicmVhazsgZmkgOzsKKysJCWVzYWMK KysJICAgICAgZG9uZQorKwkgICAgICBmdW5jX3Nob3dfZXZhbCAibG4gJG9iaiAkZ2VudG9wLyRu ZXdvYmogfHwgY3AgJG9iaiAkZ2VudG9wLyRuZXdvYmoiCisrCSAgICAgIG9sZG9ianM9IiRvbGRv YmpzICRnZW50b3AvJG5ld29iaiIKKysJICAgICAgOzsKKysJICAgICopIG9sZG9ianM9IiRvbGRv YmpzICRvYmoiIDs7CisrCSAgICBlc2FjCisrCSAgZG9uZQorKwlmaQorKwlldmFsIGNtZHM9XCIk b2xkX2FyY2hpdmVfY21kc1wiCisrCisrCWZ1bmNfbGVuICIgJGNtZHMiCisrCWxlbj0kZnVuY19s ZW5fcmVzdWx0CisrCWlmIHRlc3QgIiRsZW4iIC1sdCAiJG1heF9jbWRfbGVuIiB8fCB0ZXN0ICIk bWF4X2NtZF9sZW4iIC1sZSAtMTsgdGhlbgorKwkgIGNtZHM9JG9sZF9hcmNoaXZlX2NtZHMKKysJ ZWxzZQorKwkgICMgdGhlIGNvbW1hbmQgbGluZSBpcyB0b28gbG9uZyB0byBsaW5rIGluIG9uZSBz dGVwLCBsaW5rIGluIHBhcnRzCisrCSAgZnVuY192ZXJib3NlICJ1c2luZyBwaWVjZXdpc2UgYXJj aGl2ZSBsaW5raW5nLi4uIgorKwkgIHNhdmVfUkFOTElCPSRSQU5MSUIKKysJICBSQU5MSUI9Ogor KwkgIG9iamxpc3Q9CisrCSAgY29uY2F0X2NtZHM9CisrCSAgc2F2ZV9vbGRvYmpzPSRvbGRvYmpz CisrCSAgb2xkb2Jqcz0KKysJICAjIElzIHRoZXJlIGEgYmV0dGVyIHdheSBvZiBmaW5kaW5nIHRo ZSBsYXN0IG9iamVjdCBpbiB0aGUgbGlzdD8KKysJICBmb3Igb2JqIGluICRzYXZlX29sZG9ianMK KysJICBkbworKwkgICAgbGFzdF9vbGRvYmo9JG9iagorKwkgIGRvbmUKKysJICBldmFsIHRlc3Rf Y21kcz1cIiRvbGRfYXJjaGl2ZV9jbWRzXCIKKysJICBmdW5jX2xlbiAiICR0ZXN0X2NtZHMiCisr CSAgbGVuMD0kZnVuY19sZW5fcmVzdWx0CisrCSAgbGVuPSRsZW4wCisrCSAgZm9yIG9iaiBpbiAk c2F2ZV9vbGRvYmpzCisrCSAgZG8KKysJICAgIGZ1bmNfbGVuICIgJG9iaiIKKysJICAgIGZ1bmNf YXJpdGggJGxlbiArICRmdW5jX2xlbl9yZXN1bHQKKysJICAgIGxlbj0kZnVuY19hcml0aF9yZXN1 bHQKKysJICAgIGZ1bmNfYXBwZW5kIG9iamxpc3QgIiAkb2JqIgorKwkgICAgaWYgdGVzdCAiJGxl biIgLWx0ICIkbWF4X2NtZF9sZW4iOyB0aGVuCisrCSAgICAgIDoKKysJICAgIGVsc2UKKysJICAg ICAgIyB0aGUgYWJvdmUgY29tbWFuZCBzaG91bGQgYmUgdXNlZCBiZWZvcmUgaXQgZ2V0cyB0b28g bG9uZworKwkgICAgICBvbGRvYmpzPSRvYmpsaXN0CisrCSAgICAgIGlmIHRlc3QgIiRvYmoiID0g IiRsYXN0X29sZG9iaiIgOyB0aGVuCisrCQlSQU5MSUI9JHNhdmVfUkFOTElCCisrCSAgICAgIGZp CisrCSAgICAgIHRlc3QgLXogIiRjb25jYXRfY21kcyIgfHwgY29uY2F0X2NtZHM9JGNvbmNhdF9j bWRzfgorKwkgICAgICBldmFsIGNvbmNhdF9jbWRzPVwiXCR7Y29uY2F0X2NtZHN9JG9sZF9hcmNo aXZlX2NtZHNcIgorKwkgICAgICBvYmpsaXN0PQorKwkgICAgICBsZW49JGxlbjAKKysJICAgIGZp CisrCSAgZG9uZQorKwkgIFJBTkxJQj0kc2F2ZV9SQU5MSUIKKysJICBvbGRvYmpzPSRvYmpsaXN0 CisrCSAgaWYgdGVzdCAiWCRvbGRvYmpzIiA9ICJYIiA7IHRoZW4KKysJICAgIGV2YWwgY21kcz1c IlwkY29uY2F0X2NtZHNcIgorKwkgIGVsc2UKKysJICAgIGV2YWwgY21kcz1cIlwkY29uY2F0X2Nt ZHN+XCRvbGRfYXJjaGl2ZV9jbWRzXCIKKysJICBmaQorKwlmaQorKyAgICAgIGZpCisrICAgICAg ZnVuY19leGVjdXRlX2NtZHMgIiRjbWRzIiAnZXhpdCAkPycKKysgICAgZG9uZQorKworKyAgICB0 ZXN0IC1uICIkZ2VuZXJhdGVkIiAmJiBcCisrICAgICAgZnVuY19zaG93X2V2YWwgIiR7Uk19ciRn ZW5lcmF0ZWQiCisrCisrICAgICMgTm93IGNyZWF0ZSB0aGUgbGlidG9vbCBhcmNoaXZlLgorKyAg ICBjYXNlICRvdXRwdXQgaW4KKysgICAgKi5sYSkKKysgICAgICBvbGRfbGlicmFyeT0KKysgICAg ICB0ZXN0ICIkYnVpbGRfb2xkX2xpYnMiID0geWVzICYmIG9sZF9saWJyYXJ5PSIkbGlibmFtZS4k bGliZXh0IgorKyAgICAgIGZ1bmNfdmVyYm9zZSAiY3JlYXRpbmcgJG91dHB1dCIKKysKKysgICAg ICAjIFByZXNlcnZlIGFueSB2YXJpYWJsZXMgdGhhdCBtYXkgYWZmZWN0IGNvbXBpbGVyIGJlaGF2 aW9yCisrICAgICAgZm9yIHZhciBpbiAkdmFyaWFibGVzX3NhdmVkX2Zvcl9yZWxpbms7IGRvCisr CWlmIGV2YWwgdGVzdCAteiBcIlwkeyR2YXIrc2V0fVwiOyB0aGVuCisrCSAgcmVsaW5rX2NvbW1h bmQ9InsgdGVzdCAteiBcIlwkeyR2YXIrc2V0fVwiIHx8ICRsdF91bnNldCAkdmFyIHx8IHsgJHZh cj07IGV4cG9ydCAkdmFyOyB9OyB9OyAkcmVsaW5rX2NvbW1hbmQiCisrCWVsaWYgZXZhbCB2YXJf dmFsdWU9XCQkdmFyOyB0ZXN0IC16ICIkdmFyX3ZhbHVlIjsgdGhlbgorKwkgIHJlbGlua19jb21t YW5kPSIkdmFyPTsgZXhwb3J0ICR2YXI7ICRyZWxpbmtfY29tbWFuZCIKKysJZWxzZQorKwkgIGZ1 bmNfcXVvdGVfZm9yX2V2YWwgIiR2YXJfdmFsdWUiCisrCSAgcmVsaW5rX2NvbW1hbmQ9IiR2YXI9 JGZ1bmNfcXVvdGVfZm9yX2V2YWxfcmVzdWx0OyBleHBvcnQgJHZhcjsgJHJlbGlua19jb21tYW5k IgorKwlmaQorKyAgICAgIGRvbmUKKysgICAgICAjIFF1b3RlIHRoZSBsaW5rIGNvbW1hbmQgZm9y IHNoaXBwaW5nLgorKyAgICAgIHJlbGlua19jb21tYW5kPSIoY2QgYHB3ZGA7ICRTSEVMTCAkcHJv Z3BhdGggJHByZXNlcnZlX2FyZ3MgLS1tb2RlPXJlbGluayAkbGlidG9vbF9hcmdzIEBpbnN0X3By ZWZpeF9kaXJAKSIKKysgICAgICByZWxpbmtfY29tbWFuZD1gJEVDSE8gIlgkcmVsaW5rX2NvbW1h bmQiIHwgJFhzZWQgLWUgIiRzZWRfcXVvdGVfc3Vic3QiYAorKyAgICAgIGlmIHRlc3QgIiRoYXJk Y29kZV9hdXRvbWF0aWMiID0geWVzIDsgdGhlbgorKwlyZWxpbmtfY29tbWFuZD0KKysgICAgICBm aQorKworKyAgICAgICMgT25seSBjcmVhdGUgdGhlIG91dHB1dCBpZiBub3QgYSBkcnkgcnVuLgor KyAgICAgICRvcHRfZHJ5X3J1biB8fCB7CisrCWZvciBpbnN0YWxsZWQgaW4gbm8geWVzOyBkbwor KwkgIGlmIHRlc3QgIiRpbnN0YWxsZWQiID0geWVzOyB0aGVuCisrCSAgICBpZiB0ZXN0IC16ICIk aW5zdGFsbF9saWJkaXIiOyB0aGVuCisrCSAgICAgIGJyZWFrCisrCSAgICBmaQorKwkgICAgb3V0 cHV0PSIkb3V0cHV0X29iamRpci8kb3V0cHV0bmFtZSJpCisrCSAgICAjIFJlcGxhY2UgYWxsIHVu aW5zdGFsbGVkIGxpYnRvb2wgbGlicmFyaWVzIHdpdGggdGhlIGluc3RhbGxlZCBvbmVzCisrCSAg ICBuZXdkZXBlbmRlbmN5X2xpYnM9CisrCSAgICBmb3IgZGVwbGliIGluICRkZXBlbmRlbmN5X2xp YnM7IGRvCisrCSAgICAgIGNhc2UgJGRlcGxpYiBpbgorKwkgICAgICAqLmxhKQorKwkJZnVuY19i YXNlbmFtZSAiJGRlcGxpYiIKKysJCW5hbWU9IiRmdW5jX2Jhc2VuYW1lX3Jlc3VsdCIKKysJCWV2 YWwgbGliZGlyPWAke1NFRH0gLW4gLWUgJ3MvXmxpYmRpcj1cKC4qXCkkL1wxL3AnICRkZXBsaWJg CisrCQl0ZXN0IC16ICIkbGliZGlyIiAmJiBcCisrCQkgIGZ1bmNfZmF0YWxfZXJyb3IgIlxgJGRl cGxpYicgaXMgbm90IGEgdmFsaWQgbGlidG9vbCBhcmNoaXZlIgorKwkJbmV3ZGVwZW5kZW5jeV9s aWJzPSIkbmV3ZGVwZW5kZW5jeV9saWJzICRsaWJkaXIvJG5hbWUiCisrCQk7OworKwkgICAgICAq KSBuZXdkZXBlbmRlbmN5X2xpYnM9IiRuZXdkZXBlbmRlbmN5X2xpYnMgJGRlcGxpYiIgOzsKKysJ ICAgICAgZXNhYworKwkgICAgZG9uZQorKwkgICAgZGVwZW5kZW5jeV9saWJzPSIkbmV3ZGVwZW5k ZW5jeV9saWJzIgorKwkgICAgbmV3ZGxmaWxlcz0KKysKKysJICAgIGZvciBsaWIgaW4gJGRsZmls ZXM7IGRvCisrCSAgICAgIGNhc2UgJGxpYiBpbgorKwkgICAgICAqLmxhKQorKwkgICAgICAgIGZ1 bmNfYmFzZW5hbWUgIiRsaWIiCisrCQluYW1lPSIkZnVuY19iYXNlbmFtZV9yZXN1bHQiCisrCQll dmFsIGxpYmRpcj1gJHtTRUR9IC1uIC1lICdzL15saWJkaXI9XCguKlwpJC9cMS9wJyAkbGliYAor KwkJdGVzdCAteiAiJGxpYmRpciIgJiYgXAorKwkJICBmdW5jX2ZhdGFsX2Vycm9yICJcYCRsaWIn IGlzIG5vdCBhIHZhbGlkIGxpYnRvb2wgYXJjaGl2ZSIKKysJCW5ld2RsZmlsZXM9IiRuZXdkbGZp bGVzICRsaWJkaXIvJG5hbWUiCisrCQk7OworKwkgICAgICAqKSBuZXdkbGZpbGVzPSIkbmV3ZGxm aWxlcyAkbGliIiA7OworKwkgICAgICBlc2FjCisrCSAgICBkb25lCisrCSAgICBkbGZpbGVzPSIk bmV3ZGxmaWxlcyIKKysJICAgIG5ld2RscHJlZmlsZXM9CisrCSAgICBmb3IgbGliIGluICRkbHBy ZWZpbGVzOyBkbworKwkgICAgICBjYXNlICRsaWIgaW4KKysJICAgICAgKi5sYSkKKysJCSMgT25s eSBwYXNzIHByZW9wZW5lZCBmaWxlcyB0byB0aGUgcHNldWRvLWFyY2hpdmUgKGZvcgorKwkJIyBl dmVudHVhbCBsaW5raW5nIHdpdGggdGhlIGFwcC4gdGhhdCBsaW5rcyBpdCkgaWYgd2UKKysJCSMg ZGlkbid0IGFscmVhZHkgbGluayB0aGUgcHJlb3BlbmVkIG9iamVjdHMgZGlyZWN0bHkgaW50bwor KwkJIyB0aGUgbGlicmFyeToKKysJCWZ1bmNfYmFzZW5hbWUgIiRsaWIiCisrCQluYW1lPSIkZnVu Y19iYXNlbmFtZV9yZXN1bHQiCisrCQlldmFsIGxpYmRpcj1gJHtTRUR9IC1uIC1lICdzL15saWJk aXI9XCguKlwpJC9cMS9wJyAkbGliYAorKwkJdGVzdCAteiAiJGxpYmRpciIgJiYgXAorKwkJICBm dW5jX2ZhdGFsX2Vycm9yICJcYCRsaWInIGlzIG5vdCBhIHZhbGlkIGxpYnRvb2wgYXJjaGl2ZSIK KysJCW5ld2RscHJlZmlsZXM9IiRuZXdkbHByZWZpbGVzICRsaWJkaXIvJG5hbWUiCisrCQk7Owor KwkgICAgICBlc2FjCisrCSAgICBkb25lCisrCSAgICBkbHByZWZpbGVzPSIkbmV3ZGxwcmVmaWxl cyIKKysJICBlbHNlCisrCSAgICBuZXdkbGZpbGVzPQorKwkgICAgZm9yIGxpYiBpbiAkZGxmaWxl czsgZG8KKysJICAgICAgY2FzZSAkbGliIGluCisrCQlbXFwvXSogfCBbQS1aYS16XTpbXFwvXSop IGFicz0iJGxpYiIgOzsKKysJCSopIGFicz1gcHdkYCIvJGxpYiIgOzsKKysJICAgICAgZXNhYwor KwkgICAgICBuZXdkbGZpbGVzPSIkbmV3ZGxmaWxlcyAkYWJzIgorKwkgICAgZG9uZQorKwkgICAg ZGxmaWxlcz0iJG5ld2RsZmlsZXMiCisrCSAgICBuZXdkbHByZWZpbGVzPQorKwkgICAgZm9yIGxp YiBpbiAkZGxwcmVmaWxlczsgZG8KKysJICAgICAgY2FzZSAkbGliIGluCisrCQlbXFwvXSogfCBb QS1aYS16XTpbXFwvXSopIGFicz0iJGxpYiIgOzsKKysJCSopIGFicz1gcHdkYCIvJGxpYiIgOzsK KysJICAgICAgZXNhYworKwkgICAgICBuZXdkbHByZWZpbGVzPSIkbmV3ZGxwcmVmaWxlcyAkYWJz IgorKwkgICAgZG9uZQorKwkgICAgZGxwcmVmaWxlcz0iJG5ld2RscHJlZmlsZXMiCisrCSAgZmkK KysJICAkUk0gJG91dHB1dAorKwkgICMgcGxhY2UgZGxuYW1lIGluIGNvcnJlY3QgcG9zaXRpb24g Zm9yIGN5Z3dpbgorKwkgIHRkbG5hbWU9JGRsbmFtZQorKwkgIGNhc2UgJGhvc3QsJG91dHB1dCwk aW5zdGFsbGVkLCRtb2R1bGUsJGRsbmFtZSBpbgorKwkgICAgKmN5Z3dpbiosKmxhaSx5ZXMsbm8s Ki5kbGwgfCAqbWluZ3cqLCpsYWkseWVzLG5vLCouZGxsIHwgKmNlZ2NjKiwqbGFpLHllcyxubywq LmRsbCkgdGRsbmFtZT0uLi9iaW4vJGRsbmFtZSA7OworKwkgIGVzYWMKKysJICAkRUNITyA+ICRv dXRwdXQgIlwKKysjICRvdXRwdXRuYW1lIC0gYSBsaWJ0b29sIGxpYnJhcnkgZmlsZQorKyMgR2Vu ZXJhdGVkIGJ5ICRQUk9HUkFNIChHTlUgJFBBQ0tBR0UkVElNRVNUQU1QKSAkVkVSU0lPTgorKyMK KysjIFBsZWFzZSBETyBOT1QgZGVsZXRlIHRoaXMgZmlsZSEKKysjIEl0IGlzIG5lY2Vzc2FyeSBm b3IgbGlua2luZyB0aGUgbGlicmFyeS4KKysKKysjIFRoZSBuYW1lIHRoYXQgd2UgY2FuIGRsb3Bl bigzKS4KKytkbG5hbWU9JyR0ZGxuYW1lJworKworKyMgTmFtZXMgb2YgdGhpcyBsaWJyYXJ5Lgor K2xpYnJhcnlfbmFtZXM9JyRsaWJyYXJ5X25hbWVzJworKworKyMgVGhlIG5hbWUgb2YgdGhlIHN0 YXRpYyBhcmNoaXZlLgorK29sZF9saWJyYXJ5PSckb2xkX2xpYnJhcnknCisrCisrIyBMaW5rZXIg ZmxhZ3MgdGhhdCBjYW4gbm90IGdvIGluIGRlcGVuZGVuY3lfbGlicy4KKytpbmhlcml0ZWRfbGlu a2VyX2ZsYWdzPSckbmV3X2luaGVyaXRlZF9saW5rZXJfZmxhZ3MnCisrCisrIyBMaWJyYXJpZXMg dGhhdCB0aGlzIG9uZSBkZXBlbmRzIHVwb24uCisrZGVwZW5kZW5jeV9saWJzPSckZGVwZW5kZW5j eV9saWJzJworKworKyMgTmFtZXMgb2YgYWRkaXRpb25hbCB3ZWFrIGxpYnJhcmllcyBwcm92aWRl ZCBieSB0aGlzIGxpYnJhcnkKKyt3ZWFrX2xpYnJhcnlfbmFtZXM9JyR3ZWFrX2xpYnMnCisrCisr IyBWZXJzaW9uIGluZm9ybWF0aW9uIGZvciAkbGlibmFtZS4KKytjdXJyZW50PSRjdXJyZW50Cisr YWdlPSRhZ2UKKytyZXZpc2lvbj0kcmV2aXNpb24KKysKKysjIElzIHRoaXMgYW4gYWxyZWFkeSBp bnN0YWxsZWQgbGlicmFyeT8KKytpbnN0YWxsZWQ9JGluc3RhbGxlZAorKworKyMgU2hvdWxkIHdl IHdhcm4gYWJvdXQgcG9ydGFiaWxpdHkgd2hlbiBsaW5raW5nIGFnYWluc3QgLW1vZHVsZXM/Cisr c2hvdWxkbm90bGluaz0kbW9kdWxlCisrCisrIyBGaWxlcyB0byBkbG9wZW4vZGxwcmVvcGVuCisr ZGxvcGVuPSckZGxmaWxlcycKKytkbHByZW9wZW49JyRkbHByZWZpbGVzJworKworKyMgRGlyZWN0 b3J5IHRoYXQgdGhpcyBsaWJyYXJ5IG5lZWRzIHRvIGJlIGluc3RhbGxlZCBpbjoKKytsaWJkaXI9 JyRpbnN0YWxsX2xpYmRpciciCisrCSAgaWYgdGVzdCAiJGluc3RhbGxlZCIgPSBubyAmJiB0ZXN0 ICIkbmVlZF9yZWxpbmsiID0geWVzOyB0aGVuCisrCSAgICAkRUNITyA+PiAkb3V0cHV0ICJcCisr cmVsaW5rX2NvbW1hbmQ9XCIkcmVsaW5rX2NvbW1hbmRcIiIKKysJICBmaQorKwlkb25lCisrICAg ICAgfQorKworKyAgICAgICMgRG8gYSBzeW1ib2xpYyBsaW5rIHNvIHRoYXQgdGhlIGxpYnRvb2wg YXJjaGl2ZSBjYW4gYmUgZm91bmQgaW4KKysgICAgICAjIExEX0xJQlJBUllfUEFUSCBiZWZvcmUg dGhlIHByb2dyYW0gaXMgaW5zdGFsbGVkLgorKyAgICAgIGZ1bmNfc2hvd19ldmFsICcoIGNkICIk b3V0cHV0X29iamRpciIgJiYgJFJNICIkb3V0cHV0bmFtZSIgJiYgJExOX1MgIi4uLyRvdXRwdXRu YW1lIiAiJG91dHB1dG5hbWUiICknICdleGl0ICQ/JworKyAgICAgIDs7CisrICAgIGVzYWMKKysg ICAgZXhpdCAkRVhJVF9TVUNDRVNTCisrfQorKworK3sgdGVzdCAiJG1vZGUiID0gbGluayB8fCB0 ZXN0ICIkbW9kZSIgPSByZWxpbms7IH0gJiYKKysgICAgZnVuY19tb2RlX2xpbmsgJHsxKyIkQCJ9 CisrCisrCisrIyBmdW5jX21vZGVfdW5pbnN0YWxsIGFyZy4uLgorK2Z1bmNfbW9kZV91bmluc3Rh bGwgKCkKKyt7CisrICAgICRvcHRfZGVidWcKKysgICAgUk09IiRub25vcHQiCisrICAgIGZpbGVz PQorKyAgICBybWZvcmNlPQorKyAgICBleGl0X3N0YXR1cz0wCisrCisrICAgICMgVGhpcyB2YXJp YWJsZSB0ZWxscyB3cmFwcGVyIHNjcmlwdHMganVzdCB0byBzZXQgdmFyaWFibGVzIHJhdGhlcgor KyAgICAjIHRoYW4gcnVubmluZyB0aGVpciBwcm9ncmFtcy4KKysgICAgbGlidG9vbF9pbnN0YWxs X21hZ2ljPSIkbWFnaWMiCisrCisrICAgIGZvciBhcmcKKysgICAgZG8KKysgICAgICBjYXNlICRh cmcgaW4KKysgICAgICAtZikgUk09IiRSTSAkYXJnIjsgcm1mb3JjZT15ZXMgOzsKKysgICAgICAt KikgUk09IiRSTSAkYXJnIiA7OworKyAgICAgICopIGZpbGVzPSIkZmlsZXMgJGFyZyIgOzsKKysg ICAgICBlc2FjCisrICAgIGRvbmUKKysKKysgICAgdGVzdCAteiAiJFJNIiAmJiBcCisrICAgICAg ZnVuY19mYXRhbF9oZWxwICJ5b3UgbXVzdCBzcGVjaWZ5IGFuIFJNIHByb2dyYW0iCisrCisrICAg IHJtZGlycz0KKysKKysgICAgb3JpZ29iamRpcj0iJG9iamRpciIKKysgICAgZm9yIGZpbGUgaW4g JGZpbGVzOyBkbworKyAgICAgIGZ1bmNfZGlybmFtZSAiJGZpbGUiICIiICIuIgorKyAgICAgIGRp cj0iJGZ1bmNfZGlybmFtZV9yZXN1bHQiCisrICAgICAgaWYgdGVzdCAiWCRkaXIiID0gWC47IHRo ZW4KKysJb2JqZGlyPSIkb3JpZ29iamRpciIKKysgICAgICBlbHNlCisrCW9iamRpcj0iJGRpci8k b3JpZ29iamRpciIKKysgICAgICBmaQorKyAgICAgIGZ1bmNfYmFzZW5hbWUgIiRmaWxlIgorKyAg ICAgIG5hbWU9IiRmdW5jX2Jhc2VuYW1lX3Jlc3VsdCIKKysgICAgICB0ZXN0ICIkbW9kZSIgPSB1 bmluc3RhbGwgJiYgb2JqZGlyPSIkZGlyIgorKworKyAgICAgICMgUmVtZW1iZXIgb2JqZGlyIGZv ciByZW1vdmFsIGxhdGVyLCBiZWluZyBjYXJlZnVsIHRvIGF2b2lkIGR1cGxpY2F0ZXMKKysgICAg ICBpZiB0ZXN0ICIkbW9kZSIgPSBjbGVhbjsgdGhlbgorKwljYXNlICIgJHJtZGlycyAiIGluCisr CSAgKiIgJG9iamRpciAiKikgOzsKKysJICAqKSBybWRpcnM9IiRybWRpcnMgJG9iamRpciIgOzsK KysJZXNhYworKyAgICAgIGZpCisrCisrICAgICAgIyBEb24ndCBlcnJvciBpZiB0aGUgZmlsZSBk b2Vzbid0IGV4aXN0IGFuZCBybSAtZiB3YXMgdXNlZC4KKysgICAgICBpZiB7IHRlc3QgLUwgIiRm aWxlIjsgfSA+L2Rldi9udWxsIDI+JjEgfHwKKysJIHsgdGVzdCAtaCAiJGZpbGUiOyB9ID4vZGV2 L251bGwgMj4mMSB8fAorKwkgdGVzdCAtZiAiJGZpbGUiOyB0aGVuCisrCToKKysgICAgICBlbGlm IHRlc3QgLWQgIiRmaWxlIjsgdGhlbgorKwlleGl0X3N0YXR1cz0xCisrCWNvbnRpbnVlCisrICAg ICAgZWxpZiB0ZXN0ICIkcm1mb3JjZSIgPSB5ZXM7IHRoZW4KKysJY29udGludWUKKysgICAgICBm aQorKworKyAgICAgIHJtZmlsZXM9IiRmaWxlIgorKworKyAgICAgIGNhc2UgJG5hbWUgaW4KKysg ICAgICAqLmxhKQorKwkjIFBvc3NpYmx5IGEgbGlidG9vbCBhcmNoaXZlLCBzbyB2ZXJpZnkgaXQu CisrCWlmIGZ1bmNfbGFsaWJfcCAiJGZpbGUiOyB0aGVuCisrCSAgZnVuY19zb3VyY2UgJGRpci8k bmFtZQorKworKwkgICMgRGVsZXRlIHRoZSBsaWJ0b29sIGxpYnJhcmllcyBhbmQgc3ltbGlua3Mu CisrCSAgZm9yIG4gaW4gJGxpYnJhcnlfbmFtZXM7IGRvCisrCSAgICBybWZpbGVzPSIkcm1maWxl cyAkb2JqZGlyLyRuIgorKwkgIGRvbmUKKysJICB0ZXN0IC1uICIkb2xkX2xpYnJhcnkiICYmIHJt ZmlsZXM9IiRybWZpbGVzICRvYmpkaXIvJG9sZF9saWJyYXJ5IgorKworKwkgIGNhc2UgIiRtb2Rl IiBpbgorKwkgIGNsZWFuKQorKwkgICAgY2FzZSAiICAkbGlicmFyeV9uYW1lcyAiIGluCisrCSAg ICAjICIgICIgaW4gdGhlIGJlZ2lubmluZyBjYXRjaGVzIGVtcHR5ICRkbG5hbWUKKysJICAgICoi ICRkbG5hbWUgIiopIDs7CisrCSAgICAqKSBybWZpbGVzPSIkcm1maWxlcyAkb2JqZGlyLyRkbG5h bWUiIDs7CisrCSAgICBlc2FjCisrCSAgICB0ZXN0IC1uICIkbGliZGlyIiAmJiBybWZpbGVzPSIk cm1maWxlcyAkb2JqZGlyLyRuYW1lICRvYmpkaXIvJHtuYW1lfWkiCisrCSAgICA7OworKwkgIHVu aW5zdGFsbCkKKysJICAgIGlmIHRlc3QgLW4gIiRsaWJyYXJ5X25hbWVzIjsgdGhlbgorKwkgICAg ICAjIERvIGVhY2ggY29tbWFuZCBpbiB0aGUgcG9zdHVuaW5zdGFsbCBjb21tYW5kcy4KKysJICAg ICAgZnVuY19leGVjdXRlX2NtZHMgIiRwb3N0dW5pbnN0YWxsX2NtZHMiICd0ZXN0ICIkcm1mb3Jj ZSIgPSB5ZXMgfHwgZXhpdF9zdGF0dXM9MScKKysJICAgIGZpCisrCisrCSAgICBpZiB0ZXN0IC1u ICIkb2xkX2xpYnJhcnkiOyB0aGVuCisrCSAgICAgICMgRG8gZWFjaCBjb21tYW5kIGluIHRoZSBv bGRfcG9zdHVuaW5zdGFsbCBjb21tYW5kcy4KKysJICAgICAgZnVuY19leGVjdXRlX2NtZHMgIiRv bGRfcG9zdHVuaW5zdGFsbF9jbWRzIiAndGVzdCAiJHJtZm9yY2UiID0geWVzIHx8IGV4aXRfc3Rh dHVzPTEnCisrCSAgICBmaQorKwkgICAgIyBGSVhNRTogc2hvdWxkIHJlaW5zdGFsbCB0aGUgYmVz dCByZW1haW5pbmcgc2hhcmVkIGxpYnJhcnkuCisrCSAgICA7OworKwkgIGVzYWMKKysJZmkKKysJ OzsKKysKKysgICAgICAqLmxvKQorKwkjIFBvc3NpYmx5IGEgbGlidG9vbCBvYmplY3QsIHNvIHZl cmlmeSBpdC4KKysJaWYgZnVuY19sYWxpYl9wICIkZmlsZSI7IHRoZW4KKysKKysJICAjIFJlYWQg dGhlIC5sbyBmaWxlCisrCSAgZnVuY19zb3VyY2UgJGRpci8kbmFtZQorKworKwkgICMgQWRkIFBJ QyBvYmplY3QgdG8gdGhlIGxpc3Qgb2YgZmlsZXMgdG8gcmVtb3ZlLgorKwkgIGlmIHRlc3QgLW4g IiRwaWNfb2JqZWN0IiAmJgorKwkgICAgIHRlc3QgIiRwaWNfb2JqZWN0IiAhPSBub25lOyB0aGVu CisrCSAgICBybWZpbGVzPSIkcm1maWxlcyAkZGlyLyRwaWNfb2JqZWN0IgorKwkgIGZpCisrCisr CSAgIyBBZGQgbm9uLVBJQyBvYmplY3QgdG8gdGhlIGxpc3Qgb2YgZmlsZXMgdG8gcmVtb3ZlLgor KwkgIGlmIHRlc3QgLW4gIiRub25fcGljX29iamVjdCIgJiYKKysJICAgICB0ZXN0ICIkbm9uX3Bp Y19vYmplY3QiICE9IG5vbmU7IHRoZW4KKysJICAgIHJtZmlsZXM9IiRybWZpbGVzICRkaXIvJG5v bl9waWNfb2JqZWN0IgorKwkgIGZpCisrCWZpCisrCTs7CisrCisrICAgICAgKikKKysJaWYgdGVz dCAiJG1vZGUiID0gY2xlYW4gOyB0aGVuCisrCSAgbm9leGVuYW1lPSRuYW1lCisrCSAgY2FzZSAk ZmlsZSBpbgorKwkgICouZXhlKQorKwkgICAgZnVuY19zdHJpcG5hbWUgJycgJy5leGUnICIkZmls ZSIKKysJICAgIGZpbGU9JGZ1bmNfc3RyaXBuYW1lX3Jlc3VsdAorKwkgICAgZnVuY19zdHJpcG5h bWUgJycgJy5leGUnICIkbmFtZSIKKysJICAgIG5vZXhlbmFtZT0kZnVuY19zdHJpcG5hbWVfcmVz dWx0CisrCSAgICAjICRmaWxlIHdpdGggLmV4ZSBoYXMgYWxyZWFkeSBiZWVuIGFkZGVkIHRvIHJt ZmlsZXMsCisrCSAgICAjIGFkZCAkZmlsZSB3aXRob3V0IC5leGUKKysJICAgIHJtZmlsZXM9IiRy bWZpbGVzICRmaWxlIgorKwkgICAgOzsKKysJICBlc2FjCisrCSAgIyBEbyBhIHRlc3QgdG8gc2Vl IGlmIHRoaXMgaXMgYSBsaWJ0b29sIHByb2dyYW0uCisrCSAgaWYgZnVuY19sdHdyYXBwZXJfcCAi JGZpbGUiOyB0aGVuCisrCSAgICBpZiBmdW5jX2x0d3JhcHBlcl9leGVjdXRhYmxlX3AgIiRmaWxl IjsgdGhlbgorKwkgICAgICBmdW5jX2x0d3JhcHBlcl9zY3JpcHRuYW1lICIkZmlsZSIKKysJICAg ICAgcmVsaW5rX2NvbW1hbmQ9CisrCSAgICAgIGZ1bmNfc291cmNlICRmdW5jX2x0d3JhcHBlcl9z Y3JpcHRuYW1lX3Jlc3VsdAorKwkgICAgICBybWZpbGVzPSIkcm1maWxlcyAkZnVuY19sdHdyYXBw ZXJfc2NyaXB0bmFtZV9yZXN1bHQiCisrCSAgICBlbHNlCisrCSAgICAgIHJlbGlua19jb21tYW5k PQorKwkgICAgICBmdW5jX3NvdXJjZSAkZGlyLyRub2V4ZW5hbWUKKysJICAgIGZpCisrCisrCSAg ICAjIG5vdGUgJG5hbWUgc3RpbGwgY29udGFpbnMgLmV4ZSBpZiBpdCB3YXMgaW4gJGZpbGUgb3Jp Z2luYWxseQorKwkgICAgIyBhcyBkb2VzIHRoZSB2ZXJzaW9uIG9mICRmaWxlIHRoYXQgd2FzIGFk ZGVkIGludG8gJHJtZmlsZXMKKysJICAgIHJtZmlsZXM9IiRybWZpbGVzICRvYmpkaXIvJG5hbWUg JG9iamRpci8ke25hbWV9Uy4ke29iamV4dH0iCisrCSAgICBpZiB0ZXN0ICIkZmFzdF9pbnN0YWxs IiA9IHllcyAmJiB0ZXN0IC1uICIkcmVsaW5rX2NvbW1hbmQiOyB0aGVuCisrCSAgICAgIHJtZmls ZXM9IiRybWZpbGVzICRvYmpkaXIvbHQtJG5hbWUiCisrCSAgICBmaQorKwkgICAgaWYgdGVzdCAi WCRub2V4ZW5hbWUiICE9ICJYJG5hbWUiIDsgdGhlbgorKwkgICAgICBybWZpbGVzPSIkcm1maWxl cyAkb2JqZGlyL2x0LSR7bm9leGVuYW1lfS5jIgorKwkgICAgZmkKKysJICBmaQorKwlmaQorKwk7 OworKyAgICAgIGVzYWMKKysgICAgICBmdW5jX3Nob3dfZXZhbCAiJFJNICRybWZpbGVzIiAnZXhp dF9zdGF0dXM9MScKKysgICAgZG9uZQorKyAgICBvYmpkaXI9IiRvcmlnb2JqZGlyIgorKworKyAg ICAjIFRyeSB0byByZW1vdmUgdGhlICR7b2JqZGlyfXMgaW4gdGhlIGRpcmVjdG9yaWVzIHdoZXJl IHdlIGRlbGV0ZWQgZmlsZXMKKysgICAgZm9yIGRpciBpbiAkcm1kaXJzOyBkbworKyAgICAgIGlm IHRlc3QgLWQgIiRkaXIiOyB0aGVuCisrCWZ1bmNfc2hvd19ldmFsICJybWRpciAkZGlyID4vZGV2 L251bGwgMj4mMSIKKysgICAgICBmaQorKyAgICBkb25lCisrCisrICAgIGV4aXQgJGV4aXRfc3Rh dHVzCisrfQorKworK3sgdGVzdCAiJG1vZGUiID0gdW5pbnN0YWxsIHx8IHRlc3QgIiRtb2RlIiA9 IGNsZWFuOyB9ICYmCisrICAgIGZ1bmNfbW9kZV91bmluc3RhbGwgJHsxKyIkQCJ9CisrCisrdGVz dCAteiAiJG1vZGUiICYmIHsKKysgIGhlbHA9IiRnZW5lcmljX2hlbHAiCisrICBmdW5jX2ZhdGFs X2hlbHAgInlvdSBtdXN0IHNwZWNpZnkgYSBNT0RFIgorK30KKysKKyt0ZXN0IC16ICIkZXhlY19j bWQiICYmIFwKKysgIGZ1bmNfZmF0YWxfaGVscCAiaW52YWxpZCBvcGVyYXRpb24gbW9kZSBcYCRt b2RlJyIKKysKKytpZiB0ZXN0IC1uICIkZXhlY19jbWQiOyB0aGVuCisrICBldmFsIGV4ZWMgIiRl eGVjX2NtZCIKKysgIGV4aXQgJEVYSVRfRkFJTFVSRQorK2ZpCisrCisrZXhpdCAkZXhpdF9zdGF0 dXMKKysKKysKKysjIFRoZSBUQUdzIGJlbG93IGFyZSBkZWZpbmVkIHN1Y2ggdGhhdCB3ZSBuZXZl ciBnZXQgaW50byBhIHNpdHVhdGlvbgorKyMgaW4gd2hpY2ggd2UgZGlzYWJsZSBib3RoIGtpbmRz IG9mIGxpYnJhcmllcy4gIEdpdmVuIGNvbmZsaWN0aW5nCisrIyBjaG9pY2VzLCB3ZSBnbyBmb3Ig YSBzdGF0aWMgbGlicmFyeSwgdGhhdCBpcyB0aGUgbW9zdCBwb3J0YWJsZSwKKysjIHNpbmNlIHdl IGNhbid0IHRlbGwgd2hldGhlciBzaGFyZWQgbGlicmFyaWVzIHdlcmUgZGlzYWJsZWQgYmVjYXVz ZQorKyMgdGhlIHVzZXIgYXNrZWQgZm9yIHRoYXQgb3IgYmVjYXVzZSB0aGUgcGxhdGZvcm0gZG9l c24ndCBzdXBwb3J0CisrIyB0aGVtLiAgVGhpcyBpcyBwYXJ0aWN1bGFybHkgaW1wb3J0YW50IG9u IEFJWCwgYmVjYXVzZSB3ZSBkb24ndAorKyMgc3VwcG9ydCBoYXZpbmcgYm90aCBzdGF0aWMgYW5k IHNoYXJlZCBsaWJyYXJpZXMgZW5hYmxlZCBhdCB0aGUgc2FtZQorKyMgdGltZSBvbiB0aGF0IHBs YXRmb3JtLCBzbyB3ZSBkZWZhdWx0IHRvIGEgc2hhcmVkLW9ubHkgY29uZmlndXJhdGlvbi4KKysj IElmIGEgZGlzYWJsZS1zaGFyZWQgdGFnIGlzIGdpdmVuLCB3ZSdsbCBmYWxsYmFjayB0byBhIHN0 YXRpYy1vbmx5CisrIyBjb25maWd1cmF0aW9uLiAgQnV0IHdlJ2xsIG5ldmVyIGdvIGZyb20gc3Rh dGljLW9ubHkgdG8gc2hhcmVkLW9ubHkuCisrCisrIyAjIyMgQkVHSU4gTElCVE9PTCBUQUcgQ09O RklHOiBkaXNhYmxlLXNoYXJlZAorK2J1aWxkX2xpYnRvb2xfbGlicz1ubworK2J1aWxkX29sZF9s aWJzPXllcworKyMgIyMjIEVORCBMSUJUT09MIFRBRyBDT05GSUc6IGRpc2FibGUtc2hhcmVkCisr CisrIyAjIyMgQkVHSU4gTElCVE9PTCBUQUcgQ09ORklHOiBkaXNhYmxlLXN0YXRpYworK2J1aWxk X29sZF9saWJzPWBjYXNlICRidWlsZF9saWJ0b29sX2xpYnMgaW4geWVzKSBlY2hvIG5vOzsgKikg ZWNobyB5ZXM7OyBlc2FjYAorKyMgIyMjIEVORCBMSUJUT09MIFRBRyBDT05GSUc6IGRpc2FibGUt c3RhdGljCisrCisrIyBMb2NhbCBWYXJpYWJsZXM6CisrIyBtb2RlOnNoZWxsLXNjcmlwdAorKyMg c2gtaW5kZW50YXRpb246MgorKyMgRW5kOgorKyMgdmk6c3c9MgorKworZGlmZiAtTnVyIHNvY2kt My4wLjBfNC1wYWNrL2NvbmZpZy9sdH5vYnNvbGV0ZS5tNCBzb2NpLTMuMC4wX3RyZXAzMDAvY29u ZmlnL2x0fm9ic29sZXRlLm00CistLS0gc29jaS0zLjAuMF80LXBhY2svY29uZmlnL2x0fm9ic29s ZXRlLm00CTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCisrKysgc29jaS0zLjAu MF90cmVwMzAwL2NvbmZpZy9sdH5vYnNvbGV0ZS5tNAkyMDEwLTAxLTIzIDE0OjQ0OjQ0LjAwMDAw MDAwMCArMDEwMAorQEAgLTAsMCArMSw5MiBAQAorKyMgbHR+b2Jzb2xldGUubTQgLS0gYWNsb2Nh bCBzYXRpc2Z5aW5nIG9ic29sZXRlIGRlZmluaXRpb25zLiAgICAtKi1BdXRvY29uZi0qLQorKyMK KysjICAgQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1LCAyMDA3IEZyZWUgU29mdHdhcmUgRm91bmRh dGlvbiwgSW5jLgorKyMgICBXcml0dGVuIGJ5IFNjb3R0IEphbWVzIFJlbW5hbnQsIDIwMDQuCisr IworKyMgVGhpcyBmaWxlIGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5k YXRpb24gZ2l2ZXMKKysjIHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNvcHkgYW5kL29yIGRpc3Ry aWJ1dGUgaXQsIHdpdGggb3Igd2l0aG91dAorKyMgbW9kaWZpY2F0aW9ucywgYXMgbG9uZyBhcyB0 aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCisrCisrIyBzZXJpYWwgNCBsdH5vYnNvbGV0ZS5tNAor KworKyMgVGhlc2UgZXhpc3QgZW50aXJlbHkgdG8gZm9vbCBhY2xvY2FsIHdoZW4gYm9vdHN0cmFw cGluZyBsaWJ0b29sLgorKyMKKysjIEluIHRoZSBwYXN0IGxpYnRvb2wubTQgaGFzIHByb3ZpZGVk IG1hY3JvcyB2aWEgQUNfREVGVU4gKG9yIEFVX0RFRlVOKQorKyMgd2hpY2ggaGF2ZSBsYXRlciBi ZWVuIGNoYW5nZWQgdG8gbTRfZGVmaW5lIGFzIHRoZXkgYXJlbid0IHBhcnQgb2YgdGhlCisrIyBl eHBvcnRlZCBBUEksIG9yIG1vdmVkIHRvIEF1dG9jb25mIG9yIEF1dG9tYWtlIHdoZXJlIHRoZXkg YmVsb25nLgorKyMKKysjIFRoZSB0cm91YmxlIGlzLCBhY2xvY2FsIGlzIGEgYml0IHRoaWNrLiAg SXQnbGwgc2VlIHRoZSBvbGQgQUNfREVGVU4KKysjIGluIC91c3Ivc2hhcmUvYWNsb2NhbC9saWJ0 b29sLm00IGFuZCByZW1lbWJlciBpdCwgdGhlbiB3aGVuIGl0IHNlZXMgdXMKKysjIHVzaW5nIGEg bWFjcm8gd2l0aCB0aGUgc2FtZSBuYW1lIGluIG91ciBsb2NhbCBtNC9saWJ0b29sLm00IGl0J2xs CisrIyBwdWxsIHRoZSBvbGQgbGlidG9vbC5tNCBpbiAoaXQgZG9lc24ndCBzZWUgb3VyIHNoaW55 IG5ldyBtNF9kZWZpbmUKKysjIGFuZCBkb2Vzbid0IGtub3cgYWJvdXQgQXV0b2NvbmYgbWFjcm9z IGF0IGFsbC4pCisrIworKyMgU28gd2UgcHJvdmlkZSB0aGlzIGZpbGUsIHdoaWNoIGhhcyBhIHNp bGx5IGZpbGVuYW1lIHNvIGl0J3MgYWx3YXlzCisrIyBpbmNsdWRlZCBhZnRlciBldmVyeXRoaW5n IGVsc2UuICBUaGlzIHByb3ZpZGVzIGFjbG9jYWwgd2l0aCB0aGUKKysjIEFDX0RFRlVOcyBpdCB3 YW50cywgYnV0IHdoZW4gbTQgcHJvY2Vzc2VzIGl0LCBpdCBkb2Vzbid0IGRvIGFueXRoaW5nCisr IyBiZWNhdXNlIHRob3NlIG1hY3JvcyBhbHJlYWR5IGV4aXN0LCBvciB3aWxsIGJlIG92ZXJ3cml0 dGVuIGxhdGVyLgorKyMgV2UgdXNlIEFDX0RFRlVOIG92ZXIgQVVfREVGVU4gZm9yIGNvbXBhdGli aWxpdHkgd2l0aCBhY2xvY2FsLTEuNi4gCisrIworKyMgQW55dGltZSB3ZSB3aXRoZHJhdyBhbiBB Q19ERUZVTiBvciBBVV9ERUZVTiwgcmVtZW1iZXIgdG8gYWRkIGl0IGhlcmUuCisrIyBZZXMsIHRo YXQgbWVhbnMgZXZlcnkgbmFtZSBvbmNlIHRha2VuIHdpbGwgbmVlZCB0byByZW1haW4gaGVyZSB1 bnRpbAorKyMgd2UgZ2l2ZSB1cCBjb21wYXRpYmlsaXR5IHdpdGggdmVyc2lvbnMgYmVmb3JlIDEu NywgYXQgd2hpY2ggcG9pbnQKKysjIHdlIG5lZWQgdG8ga2VlcCBvbmx5IHRob3NlIG5hbWVzIHdo aWNoIHdlIHN0aWxsIHJlZmVyIHRvLgorKworKyMgVGhpcyBpcyB0byBoZWxwIGFjbG9jYWwgZmlu ZCB0aGVzZSBtYWNyb3MsIGFzIGl0IGNhbid0IHNlZSBtNF9kZWZpbmUuCisrQUNfREVGVU4oW0xU T0JTT0xFVEVfVkVSU0lPTl0sIFttNF9pZihbMV0pXSkKKysKKyttNF9pZm5kZWYoW0FDX0xJQlRP T0xfTElOS0VSX09QVElPTl0sCVtBQ19ERUZVTihbQUNfTElCVE9PTF9MSU5LRVJfT1BUSU9OXSld KQorK200X2lmbmRlZihbQUNfUFJPR19FR1JFUF0sCQlbQUNfREVGVU4oW0FDX1BST0dfRUdSRVBd KV0pCisrbTRfaWZuZGVmKFtfTFRfQUNfUFJPR19FQ0hPX0JBQ0tTTEFTSF0sCVtBQ19ERUZVTihb X0xUX0FDX1BST0dfRUNIT19CQUNLU0xBU0hdKV0pCisrbTRfaWZuZGVmKFtfTFRfQUNfU0hFTExf SU5JVF0sCQlbQUNfREVGVU4oW19MVF9BQ19TSEVMTF9JTklUXSldKQorK200X2lmbmRlZihbX0xU X0FDX1NZU19MSUJQQVRIX0FJWF0sCVtBQ19ERUZVTihbX0xUX0FDX1NZU19MSUJQQVRIX0FJWF0p XSkKKyttNF9pZm5kZWYoW19MVF9QUk9HX0xUTUFJTl0sCQlbQUNfREVGVU4oW19MVF9QUk9HX0xU TUFJTl0pXSkKKyttNF9pZm5kZWYoW19MVF9BQ19UQUdWQVJdLAkJW0FDX0RFRlVOKFtfTFRfQUNf VEFHVkFSXSldKQorK200X2lmbmRlZihbQUNfTFRETF9FTkFCTEVfSU5TVEFMTF0sCVtBQ19ERUZV TihbQUNfTFRETF9FTkFCTEVfSU5TVEFMTF0pXSkKKyttNF9pZm5kZWYoW0FDX0xURExfUFJFT1BF Tl0sCQlbQUNfREVGVU4oW0FDX0xURExfUFJFT1BFTl0pXSkKKyttNF9pZm5kZWYoW19MVF9BQ19T WVNfQ09NUElMRVJdLAlbQUNfREVGVU4oW19MVF9BQ19TWVNfQ09NUElMRVJdKV0pCisrbTRfaWZu ZGVmKFtfTFRfQUNfTE9DS10sCQlbQUNfREVGVU4oW19MVF9BQ19MT0NLXSldKQorK200X2lmbmRl ZihbQUNfTElCVE9PTF9TWVNfT0xEX0FSQ0hJVkVdLAlbQUNfREVGVU4oW0FDX0xJQlRPT0xfU1lT X09MRF9BUkNISVZFXSldKQorK200X2lmbmRlZihbX0xUX0FDX1RSWV9ETE9QRU5fU0VMRl0sCVtB Q19ERUZVTihbX0xUX0FDX1RSWV9ETE9QRU5fU0VMRl0pXSkKKyttNF9pZm5kZWYoW0FDX0xJQlRP T0xfUFJPR19DQ19DX09dLAlbQUNfREVGVU4oW0FDX0xJQlRPT0xfUFJPR19DQ19DX09dKV0pCisr bTRfaWZuZGVmKFtBQ19MSUJUT09MX1NZU19IQVJEX0xJTktfTE9DS1NdLCBbQUNfREVGVU4oW0FD X0xJQlRPT0xfU1lTX0hBUkRfTElOS19MT0NLU10pXSkKKyttNF9pZm5kZWYoW0FDX0xJQlRPT0xf T0JKRElSXSwJCVtBQ19ERUZVTihbQUNfTElCVE9PTF9PQkpESVJdKV0pCisrbTRfaWZuZGVmKFtB Q19MVERMX09CSkRJUl0sCQlbQUNfREVGVU4oW0FDX0xURExfT0JKRElSXSldKQorK200X2lmbmRl ZihbQUNfTElCVE9PTF9QUk9HX0xEX0hBUkRDT0RFX0xJQlBBVEhdLCBbQUNfREVGVU4oW0FDX0xJ QlRPT0xfUFJPR19MRF9IQVJEQ09ERV9MSUJQQVRIXSldKQorK200X2lmbmRlZihbQUNfTElCVE9P TF9TWVNfTElCX1NUUklQXSwJW0FDX0RFRlVOKFtBQ19MSUJUT09MX1NZU19MSUJfU1RSSVBdKV0p CisrbTRfaWZuZGVmKFtBQ19QQVRIX01BR0lDXSwJCVtBQ19ERUZVTihbQUNfUEFUSF9NQUdJQ10p XSkKKyttNF9pZm5kZWYoW0FDX1BST0dfTERfR05VXSwJCVtBQ19ERUZVTihbQUNfUFJPR19MRF9H TlVdKV0pCisrbTRfaWZuZGVmKFtBQ19QUk9HX0xEX1JFTE9BRF9GTEFHXSwJW0FDX0RFRlVOKFtB Q19QUk9HX0xEX1JFTE9BRF9GTEFHXSldKQorK200X2lmbmRlZihbQUNfREVQTElCU19DSEVDS19N RVRIT0RdLAlbQUNfREVGVU4oW0FDX0RFUExJQlNfQ0hFQ0tfTUVUSE9EXSldKQorK200X2lmbmRl ZihbQUNfTElCVE9PTF9QUk9HX0NPTVBJTEVSX05PX1JUVEldLCBbQUNfREVGVU4oW0FDX0xJQlRP T0xfUFJPR19DT01QSUxFUl9OT19SVFRJXSldKQorK200X2lmbmRlZihbQUNfTElCVE9PTF9TWVNf R0xPQkFMX1NZTUJPTF9QSVBFXSwgW0FDX0RFRlVOKFtBQ19MSUJUT09MX1NZU19HTE9CQUxfU1lN Qk9MX1BJUEVdKV0pCisrbTRfaWZuZGVmKFtBQ19MSUJUT09MX1BST0dfQ09NUElMRVJfUElDXSwg W0FDX0RFRlVOKFtBQ19MSUJUT09MX1BST0dfQ09NUElMRVJfUElDXSldKQorK200X2lmbmRlZihb QUNfTElCVE9PTF9QUk9HX0xEX1NITElCU10sCVtBQ19ERUZVTihbQUNfTElCVE9PTF9QUk9HX0xE X1NITElCU10pXSkKKyttNF9pZm5kZWYoW0FDX0xJQlRPT0xfUE9TVERFUF9QUkVERVBdLAlbQUNf REVGVU4oW0FDX0xJQlRPT0xfUE9TVERFUF9QUkVERVBdKV0pCisrbTRfaWZuZGVmKFtMVF9BQ19Q Uk9HX0VHUkVQXSwJCVtBQ19ERUZVTihbTFRfQUNfUFJPR19FR1JFUF0pXSkKKyttNF9pZm5kZWYo W0xUX0FDX1BST0dfU0VEXSwJCVtBQ19ERUZVTihbTFRfQUNfUFJPR19TRURdKV0pCisrbTRfaWZu ZGVmKFtfTFRfQ0NfQkFTRU5BTUVdLAkJW0FDX0RFRlVOKFtfTFRfQ0NfQkFTRU5BTUVdKV0pCisr bTRfaWZuZGVmKFtfTFRfQ09NUElMRVJfQk9JTEVSUExBVEVdLAlbQUNfREVGVU4oW19MVF9DT01Q SUxFUl9CT0lMRVJQTEFURV0pXSkKKyttNF9pZm5kZWYoW19MVF9MSU5LRVJfQk9JTEVSUExBVEVd LAlbQUNfREVGVU4oW19MVF9MSU5LRVJfQk9JTEVSUExBVEVdKV0pCisrbTRfaWZuZGVmKFtfQUNf UFJPR19MSUJUT09MXSwJCVtBQ19ERUZVTihbX0FDX1BST0dfTElCVE9PTF0pXSkKKyttNF9pZm5k ZWYoW0FDX0xJQlRPT0xfU0VUVVBdLAkJW0FDX0RFRlVOKFtBQ19MSUJUT09MX1NFVFVQXSldKQor K200X2lmbmRlZihbX0xUX0FDX0NIRUNLX0RMRkNOXSwJCVtBQ19ERUZVTihbX0xUX0FDX0NIRUNL X0RMRkNOXSldKQorK200X2lmbmRlZihbQUNfTElCVE9PTF9TWVNfRFlOQU1JQ19MSU5LRVJdLAlb QUNfREVGVU4oW0FDX0xJQlRPT0xfU1lTX0RZTkFNSUNfTElOS0VSXSldKQorK200X2lmbmRlZihb X0xUX0FDX1RBR0NPTkZJR10sCQlbQUNfREVGVU4oW19MVF9BQ19UQUdDT05GSUddKV0pCisrbTRf aWZuZGVmKFtBQ19ESVNBQkxFX0ZBU1RfSU5TVEFMTF0sCVtBQ19ERUZVTihbQUNfRElTQUJMRV9G QVNUX0lOU1RBTExdKV0pCisrbTRfaWZuZGVmKFtfTFRfQUNfTEFOR19DWFhdLAkJW0FDX0RFRlVO KFtfTFRfQUNfTEFOR19DWFhdKV0pCisrbTRfaWZuZGVmKFtfTFRfQUNfTEFOR19GNzddLAkJW0FD X0RFRlVOKFtfTFRfQUNfTEFOR19GNzddKV0pCisrbTRfaWZuZGVmKFtfTFRfQUNfTEFOR19HQ0pd LAkJW0FDX0RFRlVOKFtfTFRfQUNfTEFOR19HQ0pdKV0pCisrbTRfaWZuZGVmKFtBQ19MSUJUT09M X1JDXSwJCVtBQ19ERUZVTihbQUNfTElCVE9PTF9SQ10pXSkKKyttNF9pZm5kZWYoW0FDX0xJQlRP T0xfTEFOR19DX0NPTkZJR10sCVtBQ19ERUZVTihbQUNfTElCVE9PTF9MQU5HX0NfQ09ORklHXSld KQorK200X2lmbmRlZihbX0xUX0FDX0xBTkdfQ19DT05GSUddLAlbQUNfREVGVU4oW19MVF9BQ19M QU5HX0NfQ09ORklHXSldKQorK200X2lmbmRlZihbQUNfTElCVE9PTF9MQU5HX0NYWF9DT05GSUdd LAlbQUNfREVGVU4oW0FDX0xJQlRPT0xfTEFOR19DWFhfQ09ORklHXSldKQorK200X2lmbmRlZihb X0xUX0FDX0xBTkdfQ1hYX0NPTkZJR10sCVtBQ19ERUZVTihbX0xUX0FDX0xBTkdfQ1hYX0NPTkZJ R10pXSkKKyttNF9pZm5kZWYoW0FDX0xJQlRPT0xfTEFOR19GNzdfQ09ORklHXSwJW0FDX0RFRlVO KFtBQ19MSUJUT09MX0xBTkdfRjc3X0NPTkZJR10pXSkKKyttNF9pZm5kZWYoW19MVF9BQ19MQU5H X0Y3N19DT05GSUddLAlbQUNfREVGVU4oW19MVF9BQ19MQU5HX0Y3N19DT05GSUddKV0pCisrbTRf aWZuZGVmKFtBQ19MSUJUT09MX0xBTkdfR0NKX0NPTkZJR10sCVtBQ19ERUZVTihbQUNfTElCVE9P TF9MQU5HX0dDSl9DT05GSUddKV0pCisrbTRfaWZuZGVmKFtfTFRfQUNfTEFOR19HQ0pfQ09ORklH XSwJW0FDX0RFRlVOKFtfTFRfQUNfTEFOR19HQ0pfQ09ORklHXSldKQorK200X2lmbmRlZihbQUNf TElCVE9PTF9MQU5HX1JDX0NPTkZJR10sCVtBQ19ERUZVTihbQUNfTElCVE9PTF9MQU5HX1JDX0NP TkZJR10pXSkKKyttNF9pZm5kZWYoW19MVF9BQ19MQU5HX1JDX0NPTkZJR10sCVtBQ19ERUZVTihb X0xUX0FDX0xBTkdfUkNfQ09ORklHXSldKQorK200X2lmbmRlZihbQUNfTElCVE9PTF9DT05GSUdd LAkJW0FDX0RFRlVOKFtBQ19MSUJUT09MX0NPTkZJR10pXSkKKyttNF9pZm5kZWYoW19MVF9BQ19G SUxFX0xURExMX0NdLAlbQUNfREVGVU4oW19MVF9BQ19GSUxFX0xURExMX0NdKV0pCitkaWZmIC1O dXIgc29jaS0zLjAuMF80LXBhY2svY29uZmlnL2x0b3B0aW9ucy5tNCBzb2NpLTMuMC4wX3RyZXAz MDAvY29uZmlnL2x0b3B0aW9ucy5tNAorLS0tIHNvY2ktMy4wLjBfNC1wYWNrL2NvbmZpZy9sdG9w dGlvbnMubTQJMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKKysrKyBzb2NpLTMu MC4wX3RyZXAzMDAvY29uZmlnL2x0b3B0aW9ucy5tNAkyMDEwLTAxLTIzIDE0OjQ0OjQ0LjAwMDAw MDAwMCArMDEwMAorQEAgLTAsMCArMSwzNjggQEAKKysjIEhlbHBlciBmdW5jdGlvbnMgZm9yIG9w dGlvbiBoYW5kbGluZy4gICAgICAgICAgICAgICAgICAgIC0qLSBBdXRvY29uZiAtKi0KKysjCisr IyAgIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSwgMjAwNywgMjAwOCBGcmVlIFNvZnR3YXJlIEZv dW5kYXRpb24sIEluYy4KKysjICAgV3JpdHRlbiBieSBHYXJ5IFYuIFZhdWdoYW4sIDIwMDQKKysj CisrIyBUaGlzIGZpbGUgaXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRh dGlvbiBnaXZlcworKyMgdW5saW1pdGVkIHBlcm1pc3Npb24gdG8gY29weSBhbmQvb3IgZGlzdHJp YnV0ZSBpdCwgd2l0aCBvciB3aXRob3V0CisrIyBtb2RpZmljYXRpb25zLCBhcyBsb25nIGFzIHRo aXMgbm90aWNlIGlzIHByZXNlcnZlZC4KKysKKysjIHNlcmlhbCA2IGx0b3B0aW9ucy5tNAorKwor KyMgVGhpcyBpcyB0byBoZWxwIGFjbG9jYWwgZmluZCB0aGVzZSBtYWNyb3MsIGFzIGl0IGNhbid0 IHNlZSBtNF9kZWZpbmUuCisrQUNfREVGVU4oW0xUT1BUSU9OU19WRVJTSU9OXSwgW200X2lmKFsx XSldKQorKworKworKyMgX0xUX01BTkdMRV9PUFRJT04oTUFDUk8tTkFNRSwgT1BUSU9OLU5BTUUp CisrIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyttNF9kZWZp bmUoW19MVF9NQU5HTEVfT1BUSU9OXSwKKytbW19MVF9PUFRJT05fXW00X2JwYXRzdWJzdCgkMV9f JDIsIFtbXmEtekEtWjAtOV9dXSwgW19dKV0pCisrCisrCisrIyBfTFRfU0VUX09QVElPTihNQUNS Ty1OQU1FLCBPUFRJT04tTkFNRSkKKysjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQorKyMgU2V0IG9wdGlvbiBPUFRJT04tTkFNRSBmb3IgbWFjcm8gTUFDUk8tTkFNRSwg YW5kIGlmIHRoZXJlIGlzIGEKKysjIG1hdGNoaW5nIGhhbmRsZXIgZGVmaW5lZCwgZGlzcGF0Y2gg dG8gaXQuICBPdGhlciBPUFRJT04tTkFNRXMgYXJlCisrIyBzYXZlZCBhcyBhIGZsYWcuCisrbTRf ZGVmaW5lKFtfTFRfU0VUX09QVElPTl0sCisrW200X2RlZmluZShfTFRfTUFOR0xFX09QVElPTihb JDFdLCBbJDJdKSlkbmwKKyttNF9pZmRlZihfTFRfTUFOR0xFX0RFRlVOKFskMV0sIFskMl0pLAor KyAgICAgICAgX0xUX01BTkdMRV9ERUZVTihbJDFdLCBbJDJdKSwKKysgICAgW200X3dhcm5pbmco W1Vua25vd24gJDEgb3B0aW9uIGAkMiddKV0pW11kbmwKKytdKQorKworKworKyMgX0xUX0lGX09Q VElPTihNQUNSTy1OQU1FLCBPUFRJT04tTkFNRSwgSUYtU0VULCBbSUYtTk9ULVNFVF0pCisrIyAt LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KKysjIEV4ZWN1dGUgSUYtU0VUIGlmIE9QVElPTiBpcyBzZXQsIElGLU5PVC1TRVQgb3RoZXJ3 aXNlLgorK200X2RlZmluZShbX0xUX0lGX09QVElPTl0sCisrW200X2lmZGVmKF9MVF9NQU5HTEVf T1BUSU9OKFskMV0sIFskMl0pLCBbJDNdLCBbJDRdKV0pCisrCisrCisrIyBfTFRfVU5MRVNTX09Q VElPTlMoTUFDUk8tTkFNRSwgT1BUSU9OLUxJU1QsIElGLU5PVC1TRVQpCisrIyAtLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrIyBFeGVjdXRl IElGLU5PVC1TRVQgdW5sZXNzIGFsbCBvcHRpb25zIGluIE9QVElPTi1MSVNUIGZvciBNQUNSTy1O QU1FCisrIyBhcmUgc2V0LgorK200X2RlZmluZShbX0xUX1VOTEVTU19PUFRJT05TXSwKKytbbTRf Zm9yZWFjaChbX0xUX09wdGlvbl0sIG00X3NwbGl0KG00X25vcm1hbGl6ZShbJDJdKSksCisrCSAg ICBbbTRfaWZkZWYoX0xUX01BTkdMRV9PUFRJT04oWyQxXSwgX0xUX09wdGlvbiksCisrCQkgICAg ICBbbTRfZGVmaW5lKFskMF9mb3VuZF0pXSldKVtdZG5sCisrbTRfaWZkZWYoWyQwX2ZvdW5kXSwg W200X3VuZGVmaW5lKFskMF9mb3VuZF0pXSwgWyQzCisrXSlbXWRubAorK10pCisrCisrCisrIyBf TFRfU0VUX09QVElPTlMoTUFDUk8tTkFNRSwgT1BUSU9OLUxJU1QpCisrIyAtLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrIyBPUFRJT04tTElTVCBpcyBhIHNwYWNlLXNl cGFyYXRlZCBsaXN0IG9mIExpYnRvb2wgb3B0aW9ucyBhc3NvY2lhdGVkCisrIyB3aXRoIE1BQ1JP LU5BTUUuICBJZiBhbnkgT1BUSU9OIGhhcyBhIG1hdGNoaW5nIGhhbmRsZXIgZGVjbGFyZWQgd2l0 aAorKyMgTFRfT1BUSU9OX0RFRklORSwgZGlzcGF0Y2ggdG8gdGhhdCBtYWNybzsgb3RoZXJ3aXNl IGNvbXBsYWluIGFib3V0CisrIyB0aGUgdW5rbm93biBvcHRpb24gYW5kIGV4aXQuCisrbTRfZGVm dW4oW19MVF9TRVRfT1BUSU9OU10sCisrWyMgU2V0IG9wdGlvbnMKKyttNF9mb3JlYWNoKFtfTFRf T3B0aW9uXSwgbTRfc3BsaXQobTRfbm9ybWFsaXplKFskMl0pKSwKKysgICAgW19MVF9TRVRfT1BU SU9OKFskMV0sIF9MVF9PcHRpb24pXSkKKysKKyttNF9pZihbJDFdLFtMVF9JTklUXSxbCisrICBk bmwKKysgIGRubCBTaW1wbHkgc2V0IHNvbWUgZGVmYXVsdCB2YWx1ZXMgKGkuZSBvZmYpIGlmIGJv b2xlYW4gb3B0aW9ucyB3ZXJlIG5vdAorKyAgZG5sIHNwZWNpZmllZDoKKysgIF9MVF9VTkxFU1Nf T1BUSU9OUyhbTFRfSU5JVF0sIFtkbG9wZW5dLCBbZW5hYmxlX2Rsb3Blbj1ubworKyAgXSkKKysg IF9MVF9VTkxFU1NfT1BUSU9OUyhbTFRfSU5JVF0sIFt3aW4zMi1kbGxdLCBbZW5hYmxlX3dpbjMy X2RsbD1ubworKyAgXSkKKysgIGRubAorKyAgZG5sIElmIG5vIHJlZmVyZW5jZSB3YXMgbWFkZSB0 byB2YXJpb3VzIHBhaXJzIG9mIG9wcG9zaW5nIG9wdGlvbnMsIHRoZW4KKysgIGRubCB3ZSBydW4g dGhlIGRlZmF1bHQgbW9kZSBoYW5kbGVyIGZvciB0aGUgcGFpci4gIEZvciBleGFtcGxlLCBpZiBu ZWl0aGVyCisrICBkbmwgYHNoYXJlZCcgbm9yIGBkaXNhYmxlLXNoYXJlZCcgd2FzIHBhc3NlZCwg d2UgZW5hYmxlIGJ1aWxkaW5nIG9mIHNoYXJlZAorKyAgZG5sIGFyY2hpdmVzIGJ5IGRlZmF1bHQ6 CisrICBfTFRfVU5MRVNTX09QVElPTlMoW0xUX0lOSVRdLCBbc2hhcmVkIGRpc2FibGUtc2hhcmVk XSwgW19MVF9FTkFCTEVfU0hBUkVEXSkKKysgIF9MVF9VTkxFU1NfT1BUSU9OUyhbTFRfSU5JVF0s IFtzdGF0aWMgZGlzYWJsZS1zdGF0aWNdLCBbX0xUX0VOQUJMRV9TVEFUSUNdKQorKyAgX0xUX1VO TEVTU19PUFRJT05TKFtMVF9JTklUXSwgW3BpYy1vbmx5IG5vLXBpY10sIFtfTFRfV0lUSF9QSUNd KQorKyAgX0xUX1VOTEVTU19PUFRJT05TKFtMVF9JTklUXSwgW2Zhc3QtaW5zdGFsbCBkaXNhYmxl LWZhc3QtaW5zdGFsbF0sCisrICAJCSAgIFtfTFRfRU5BQkxFX0ZBU1RfSU5TVEFMTF0pCisrICBd KQorK10pIyBfTFRfU0VUX09QVElPTlMKKysKKysKKysjIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0gIyMKKysjIyBNYWNyb3MgdG8gaGFuZGxlIExUX0lOSVQgb3B0aW9ucy4gIyMK KysjIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIyMKKysKKysjIF9MVF9NQU5H TEVfREVGVU4oTUFDUk8tTkFNRSwgT1BUSU9OLU5BTUUpCisrIyAtLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorK200X2RlZmluZShbX0xUX01BTkdMRV9ERUZVTl0sCisr W1tfTFRfT1BUSU9OX0RFRlVOX11tNF9icGF0c3Vic3QobTRfdG91cHBlcihbJDFfXyQyXSksIFtb XkEtWjAtOV9dXSwgW19dKV0pCisrCisrCisrIyBMVF9PUFRJT05fREVGSU5FKE1BQ1JPLU5BTUUs IE9QVElPTi1OQU1FLCBDT0RFKQorKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KKyttNF9kZWZpbmUoW0xUX09QVElPTl9ERUZJTkVdLAorK1ttNF9kZWZp bmUoX0xUX01BTkdMRV9ERUZVTihbJDFdLCBbJDJdKSwgWyQzXSlbXWRubAorK10pIyBMVF9PUFRJ T05fREVGSU5FCisrCisrCisrIyBkbG9wZW4KKysjIC0tLS0tLQorK0xUX09QVElPTl9ERUZJTkUo W0xUX0lOSVRdLCBbZGxvcGVuXSwgW2VuYWJsZV9kbG9wZW49eWVzCisrXSkKKysKKytBVV9ERUZV TihbQUNfTElCVE9PTF9ETE9QRU5dLAorK1tfTFRfU0VUX09QVElPTihbTFRfSU5JVF0sIFtkbG9w ZW5dKQorK0FDX0RJQUdOT1NFKFtvYnNvbGV0ZV0sCisrWyQwOiBSZW1vdmUgdGhpcyB3YXJuaW5n IGFuZCB0aGUgY2FsbCB0byBfTFRfU0VUX09QVElPTiB3aGVuIHlvdQorK3B1dCB0aGUgYGRsb3Bl bicgb3B0aW9uIGludG8gTFRfSU5JVCdzIGZpcnN0IHBhcmFtZXRlci5dKQorK10pCisrCisrZG5s IGFjbG9jYWwtMS40IGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5OgorK2RubCBBQ19ERUZVTihbQUNf TElCVE9PTF9ETE9QRU5dLCBbXSkKKysKKysKKysjIHdpbjMyLWRsbAorKyMgLS0tLS0tLS0tCisr IyBEZWNsYXJlIHBhY2thZ2Ugc3VwcG9ydCBmb3IgYnVpbGRpbmcgd2luMzIgZGxsJ3MuCisrTFRf T1BUSU9OX0RFRklORShbTFRfSU5JVF0sIFt3aW4zMi1kbGxdLAorK1tlbmFibGVfd2luMzJfZGxs PXllcworKworK2Nhc2UgJGhvc3QgaW4KKysqLSotY3lnd2luKiB8ICotKi1taW5ndyogfCAqLSot cHczMiogfCAqLWNlZ2NjKikKKysgIEFDX0NIRUNLX1RPT0woQVMsIGFzLCBmYWxzZSkKKysgIEFD X0NIRUNLX1RPT0woRExMVE9PTCwgZGxsdG9vbCwgZmFsc2UpCisrICBBQ19DSEVDS19UT09MKE9C SkRVTVAsIG9iamR1bXAsIGZhbHNlKQorKyAgOzsKKytlc2FjCisrCisrdGVzdCAteiAiJEFTIiAm JiBBUz1hcworK19MVF9ERUNMKFtdLCBbQVNdLCAgICAgIFswXSwgW0Fzc2VtYmxlciBwcm9ncmFt XSlkbmwKKysKKyt0ZXN0IC16ICIkRExMVE9PTCIgJiYgRExMVE9PTD1kbGx0b29sCisrX0xUX0RF Q0woW10sIFtETExUT09MXSwgWzBdLCBbRExMIGNyZWF0aW9uIHByb2dyYW1dKWRubAorKworK3Rl c3QgLXogIiRPQkpEVU1QIiAmJiBPQkpEVU1QPW9iamR1bXAKKytfTFRfREVDTChbXSwgW09CSkRV TVBdLCBbMF0sIFtPYmplY3QgZHVtcGVyIHByb2dyYW1dKWRubAorK10pIyB3aW4zMi1kbGwKKysK KytBVV9ERUZVTihbQUNfTElCVE9PTF9XSU4zMl9ETExdLAorK1tBQ19SRVFVSVJFKFtBQ19DQU5P TklDQUxfSE9TVF0pZG5sCisrX0xUX1NFVF9PUFRJT04oW0xUX0lOSVRdLCBbd2luMzItZGxsXSkK KytBQ19ESUFHTk9TRShbb2Jzb2xldGVdLAorK1skMDogUmVtb3ZlIHRoaXMgd2FybmluZyBhbmQg dGhlIGNhbGwgdG8gX0xUX1NFVF9PUFRJT04gd2hlbiB5b3UKKytwdXQgdGhlIGB3aW4zMi1kbGwn IG9wdGlvbiBpbnRvIExUX0lOSVQncyBmaXJzdCBwYXJhbWV0ZXIuXSkKKytdKQorKworK2RubCBh Y2xvY2FsLTEuNCBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eToKKytkbmwgQUNfREVGVU4oW0FDX0xJ QlRPT0xfV0lOMzJfRExMXSwgW10pCisrCisrCisrIyBfTFRfRU5BQkxFX1NIQVJFRChbREVGQVVM VF0pCisrIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrIyBpbXBsZW1lbnQgdGhlIC0t ZW5hYmxlLXNoYXJlZCBmbGFnLCBhbmQgc3VwcG9ydHMgdGhlIGBzaGFyZWQnIGFuZAorKyMgYGRp c2FibGUtc2hhcmVkJyBMVF9JTklUIG9wdGlvbnMuCisrIyBERUZBVUxUIGlzIGVpdGhlciBgeWVz JyBvciBgbm8nLiAgSWYgb21pdHRlZCwgaXQgZGVmYXVsdHMgdG8gYHllcycuCisrbTRfZGVmaW5l KFtfTFRfRU5BQkxFX1NIQVJFRF0sCisrW200X2RlZmluZShbX0xUX0VOQUJMRV9TSEFSRURfREVG QVVMVF0sIFttNF9pZigkMSwgbm8sIG5vLCB5ZXMpXSlkbmwKKytBQ19BUkdfRU5BQkxFKFtzaGFy ZWRdLAorKyAgICBbQVNfSEVMUF9TVFJJTkcoWy0tZW5hYmxlLXNoYXJlZEA8OkA9UEtHU0A6PkBd LAorKwlbYnVpbGQgc2hhcmVkIGxpYnJhcmllcyBAPDpAZGVmYXVsdD1dX0xUX0VOQUJMRV9TSEFS RURfREVGQVVMVFtAOj5AXSldLAorKyAgICBbcD0ke1BBQ0tBR0UtZGVmYXVsdH0KKysgICAgY2Fz ZSAkZW5hYmxldmFsIGluCisrICAgIHllcykgZW5hYmxlX3NoYXJlZD15ZXMgOzsKKysgICAgbm8p IGVuYWJsZV9zaGFyZWQ9bm8gOzsKKysgICAgKikKKysgICAgICBlbmFibGVfc2hhcmVkPW5vCisr ICAgICAgIyBMb29rIGF0IHRoZSBhcmd1bWVudCB3ZSBnb3QuICBXZSB1c2UgYWxsIHRoZSBjb21t b24gbGlzdCBzZXBhcmF0b3JzLgorKyAgICAgIGx0X3NhdmVfaWZzPSIkSUZTIjsgSUZTPSIke0lG U30kUEFUSF9TRVBBUkFUT1IsIgorKyAgICAgIGZvciBwa2cgaW4gJGVuYWJsZXZhbDsgZG8KKysJ SUZTPSIkbHRfc2F2ZV9pZnMiCisrCWlmIHRlc3QgIlgkcGtnIiA9ICJYJHAiOyB0aGVuCisrCSAg ZW5hYmxlX3NoYXJlZD15ZXMKKysJZmkKKysgICAgICBkb25lCisrICAgICAgSUZTPSIkbHRfc2F2 ZV9pZnMiCisrICAgICAgOzsKKysgICAgZXNhY10sCisrICAgIFtlbmFibGVfc2hhcmVkPV1fTFRf RU5BQkxFX1NIQVJFRF9ERUZBVUxUKQorKworKyAgICBfTFRfREVDTChbYnVpbGRfbGlidG9vbF9s aWJzXSwgW2VuYWJsZV9zaGFyZWRdLCBbMF0sCisrCVtXaGV0aGVyIG9yIG5vdCB0byBidWlsZCBz aGFyZWQgbGlicmFyaWVzXSkKKytdKSMgX0xUX0VOQUJMRV9TSEFSRUQKKysKKytMVF9PUFRJT05f REVGSU5FKFtMVF9JTklUXSwgW3NoYXJlZF0sIFtfTFRfRU5BQkxFX1NIQVJFRChbeWVzXSldKQor K0xUX09QVElPTl9ERUZJTkUoW0xUX0lOSVRdLCBbZGlzYWJsZS1zaGFyZWRdLCBbX0xUX0VOQUJM RV9TSEFSRUQoW25vXSldKQorKworKyMgT2xkIG5hbWVzOgorK0FDX0RFRlVOKFtBQ19FTkFCTEVf U0hBUkVEXSwKKytbX0xUX1NFVF9PUFRJT04oW0xUX0lOSVRdLCBtNF9pZihbJDFdLCBbbm9dLCBb ZGlzYWJsZS1dKVtzaGFyZWRdKQorK10pCisrCisrQUNfREVGVU4oW0FDX0RJU0FCTEVfU0hBUkVE XSwKKytbX0xUX1NFVF9PUFRJT04oW0xUX0lOSVRdLCBbZGlzYWJsZS1zaGFyZWRdKQorK10pCisr CisrQVVfREVGVU4oW0FNX0VOQUJMRV9TSEFSRURdLCBbQUNfRU5BQkxFX1NIQVJFRCgkQCldKQor K0FVX0RFRlVOKFtBTV9ESVNBQkxFX1NIQVJFRF0sIFtBQ19ESVNBQkxFX1NIQVJFRCgkQCldKQor KworK2RubCBhY2xvY2FsLTEuNCBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eToKKytkbmwgQUNfREVG VU4oW0FNX0VOQUJMRV9TSEFSRURdLCBbXSkKKytkbmwgQUNfREVGVU4oW0FNX0RJU0FCTEVfU0hB UkVEXSwgW10pCisrCisrCisrCisrIyBfTFRfRU5BQkxFX1NUQVRJQyhbREVGQVVMVF0pCisrIyAt LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrIyBpbXBsZW1lbnQgdGhlIC0tZW5hYmxlLXN0 YXRpYyBmbGFnLCBhbmQgc3VwcG9ydCB0aGUgYHN0YXRpYycgYW5kCisrIyBgZGlzYWJsZS1zdGF0 aWMnIExUX0lOSVQgb3B0aW9ucy4KKysjIERFRkFVTFQgaXMgZWl0aGVyIGB5ZXMnIG9yIGBubycu ICBJZiBvbWl0dGVkLCBpdCBkZWZhdWx0cyB0byBgeWVzJy4KKyttNF9kZWZpbmUoW19MVF9FTkFC TEVfU1RBVElDXSwKKytbbTRfZGVmaW5lKFtfTFRfRU5BQkxFX1NUQVRJQ19ERUZBVUxUXSwgW200 X2lmKCQxLCBubywgbm8sIHllcyldKWRubAorK0FDX0FSR19FTkFCTEUoW3N0YXRpY10sCisrICAg IFtBU19IRUxQX1NUUklORyhbLS1lbmFibGUtc3RhdGljQDw6QD1QS0dTQDo+QF0sCisrCVtidWls ZCBzdGF0aWMgbGlicmFyaWVzIEA8OkBkZWZhdWx0PV1fTFRfRU5BQkxFX1NUQVRJQ19ERUZBVUxU W0A6PkBdKV0sCisrICAgIFtwPSR7UEFDS0FHRS1kZWZhdWx0fQorKyAgICBjYXNlICRlbmFibGV2 YWwgaW4KKysgICAgeWVzKSBlbmFibGVfc3RhdGljPXllcyA7OworKyAgICBubykgZW5hYmxlX3N0 YXRpYz1ubyA7OworKyAgICAqKQorKyAgICAgZW5hYmxlX3N0YXRpYz1ubworKyAgICAgICMgTG9v ayBhdCB0aGUgYXJndW1lbnQgd2UgZ290LiAgV2UgdXNlIGFsbCB0aGUgY29tbW9uIGxpc3Qgc2Vw YXJhdG9ycy4KKysgICAgICBsdF9zYXZlX2lmcz0iJElGUyI7IElGUz0iJHtJRlN9JFBBVEhfU0VQ QVJBVE9SLCIKKysgICAgICBmb3IgcGtnIGluICRlbmFibGV2YWw7IGRvCisrCUlGUz0iJGx0X3Nh dmVfaWZzIgorKwlpZiB0ZXN0ICJYJHBrZyIgPSAiWCRwIjsgdGhlbgorKwkgIGVuYWJsZV9zdGF0 aWM9eWVzCisrCWZpCisrICAgICAgZG9uZQorKyAgICAgIElGUz0iJGx0X3NhdmVfaWZzIgorKyAg ICAgIDs7CisrICAgIGVzYWNdLAorKyAgICBbZW5hYmxlX3N0YXRpYz1dX0xUX0VOQUJMRV9TVEFU SUNfREVGQVVMVCkKKysKKysgICAgX0xUX0RFQ0woW2J1aWxkX29sZF9saWJzXSwgW2VuYWJsZV9z dGF0aWNdLCBbMF0sCisrCVtXaGV0aGVyIG9yIG5vdCB0byBidWlsZCBzdGF0aWMgbGlicmFyaWVz XSkKKytdKSMgX0xUX0VOQUJMRV9TVEFUSUMKKysKKytMVF9PUFRJT05fREVGSU5FKFtMVF9JTklU XSwgW3N0YXRpY10sIFtfTFRfRU5BQkxFX1NUQVRJQyhbeWVzXSldKQorK0xUX09QVElPTl9ERUZJ TkUoW0xUX0lOSVRdLCBbZGlzYWJsZS1zdGF0aWNdLCBbX0xUX0VOQUJMRV9TVEFUSUMoW25vXSld KQorKworKyMgT2xkIG5hbWVzOgorK0FDX0RFRlVOKFtBQ19FTkFCTEVfU1RBVElDXSwKKytbX0xU X1NFVF9PUFRJT04oW0xUX0lOSVRdLCBtNF9pZihbJDFdLCBbbm9dLCBbZGlzYWJsZS1dKVtzdGF0 aWNdKQorK10pCisrCisrQUNfREVGVU4oW0FDX0RJU0FCTEVfU1RBVElDXSwKKytbX0xUX1NFVF9P UFRJT04oW0xUX0lOSVRdLCBbZGlzYWJsZS1zdGF0aWNdKQorK10pCisrCisrQVVfREVGVU4oW0FN X0VOQUJMRV9TVEFUSUNdLCBbQUNfRU5BQkxFX1NUQVRJQygkQCldKQorK0FVX0RFRlVOKFtBTV9E SVNBQkxFX1NUQVRJQ10sIFtBQ19ESVNBQkxFX1NUQVRJQygkQCldKQorKworK2RubCBhY2xvY2Fs LTEuNCBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eToKKytkbmwgQUNfREVGVU4oW0FNX0VOQUJMRV9T VEFUSUNdLCBbXSkKKytkbmwgQUNfREVGVU4oW0FNX0RJU0FCTEVfU1RBVElDXSwgW10pCisrCisr CisrCisrIyBfTFRfRU5BQkxFX0ZBU1RfSU5TVEFMTChbREVGQVVMVF0pCisrIyAtLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrIyBpbXBsZW1lbnQgdGhlIC0tZW5hYmxlLWZhc3Qt aW5zdGFsbCBmbGFnLCBhbmQgc3VwcG9ydCB0aGUgYGZhc3QtaW5zdGFsbCcKKysjIGFuZCBgZGlz YWJsZS1mYXN0LWluc3RhbGwnIExUX0lOSVQgb3B0aW9ucy4KKysjIERFRkFVTFQgaXMgZWl0aGVy IGB5ZXMnIG9yIGBubycuICBJZiBvbWl0dGVkLCBpdCBkZWZhdWx0cyB0byBgeWVzJy4KKyttNF9k ZWZpbmUoW19MVF9FTkFCTEVfRkFTVF9JTlNUQUxMXSwKKytbbTRfZGVmaW5lKFtfTFRfRU5BQkxF X0ZBU1RfSU5TVEFMTF9ERUZBVUxUXSwgW200X2lmKCQxLCBubywgbm8sIHllcyldKWRubAorK0FD X0FSR19FTkFCTEUoW2Zhc3QtaW5zdGFsbF0sCisrICAgIFtBU19IRUxQX1NUUklORyhbLS1lbmFi bGUtZmFzdC1pbnN0YWxsQDw6QD1QS0dTQDo+QF0sCisrICAgIFtvcHRpbWl6ZSBmb3IgZmFzdCBp bnN0YWxsYXRpb24gQDw6QGRlZmF1bHQ9XV9MVF9FTkFCTEVfRkFTVF9JTlNUQUxMX0RFRkFVTFRb QDo+QF0pXSwKKysgICAgW3A9JHtQQUNLQUdFLWRlZmF1bHR9CisrICAgIGNhc2UgJGVuYWJsZXZh bCBpbgorKyAgICB5ZXMpIGVuYWJsZV9mYXN0X2luc3RhbGw9eWVzIDs7CisrICAgIG5vKSBlbmFi bGVfZmFzdF9pbnN0YWxsPW5vIDs7CisrICAgICopCisrICAgICAgZW5hYmxlX2Zhc3RfaW5zdGFs bD1ubworKyAgICAgICMgTG9vayBhdCB0aGUgYXJndW1lbnQgd2UgZ290LiAgV2UgdXNlIGFsbCB0 aGUgY29tbW9uIGxpc3Qgc2VwYXJhdG9ycy4KKysgICAgICBsdF9zYXZlX2lmcz0iJElGUyI7IElG Uz0iJHtJRlN9JFBBVEhfU0VQQVJBVE9SLCIKKysgICAgICBmb3IgcGtnIGluICRlbmFibGV2YWw7 IGRvCisrCUlGUz0iJGx0X3NhdmVfaWZzIgorKwlpZiB0ZXN0ICJYJHBrZyIgPSAiWCRwIjsgdGhl bgorKwkgIGVuYWJsZV9mYXN0X2luc3RhbGw9eWVzCisrCWZpCisrICAgICAgZG9uZQorKyAgICAg IElGUz0iJGx0X3NhdmVfaWZzIgorKyAgICAgIDs7CisrICAgIGVzYWNdLAorKyAgICBbZW5hYmxl X2Zhc3RfaW5zdGFsbD1dX0xUX0VOQUJMRV9GQVNUX0lOU1RBTExfREVGQVVMVCkKKysKKytfTFRf REVDTChbZmFzdF9pbnN0YWxsXSwgW2VuYWJsZV9mYXN0X2luc3RhbGxdLCBbMF0sCisrCSBbV2hl dGhlciBvciBub3QgdG8gb3B0aW1pemUgZm9yIGZhc3QgaW5zdGFsbGF0aW9uXSlkbmwKKytdKSMg X0xUX0VOQUJMRV9GQVNUX0lOU1RBTEwKKysKKytMVF9PUFRJT05fREVGSU5FKFtMVF9JTklUXSwg W2Zhc3QtaW5zdGFsbF0sIFtfTFRfRU5BQkxFX0ZBU1RfSU5TVEFMTChbeWVzXSldKQorK0xUX09Q VElPTl9ERUZJTkUoW0xUX0lOSVRdLCBbZGlzYWJsZS1mYXN0LWluc3RhbGxdLCBbX0xUX0VOQUJM RV9GQVNUX0lOU1RBTEwoW25vXSldKQorKworKyMgT2xkIG5hbWVzOgorK0FVX0RFRlVOKFtBQ19F TkFCTEVfRkFTVF9JTlNUQUxMXSwKKytbX0xUX1NFVF9PUFRJT04oW0xUX0lOSVRdLCBtNF9pZihb JDFdLCBbbm9dLCBbZGlzYWJsZS1dKVtmYXN0LWluc3RhbGxdKQorK0FDX0RJQUdOT1NFKFtvYnNv bGV0ZV0sCisrWyQwOiBSZW1vdmUgdGhpcyB3YXJuaW5nIGFuZCB0aGUgY2FsbCB0byBfTFRfU0VU X09QVElPTiB3aGVuIHlvdSBwdXQKKyt0aGUgYGZhc3QtaW5zdGFsbCcgb3B0aW9uIGludG8gTFRf SU5JVCdzIGZpcnN0IHBhcmFtZXRlci5dKQorK10pCisrCisrQVVfREVGVU4oW0FDX0RJU0FCTEVf RkFTVF9JTlNUQUxMXSwKKytbX0xUX1NFVF9PUFRJT04oW0xUX0lOSVRdLCBbZGlzYWJsZS1mYXN0 LWluc3RhbGxdKQorK0FDX0RJQUdOT1NFKFtvYnNvbGV0ZV0sCisrWyQwOiBSZW1vdmUgdGhpcyB3 YXJuaW5nIGFuZCB0aGUgY2FsbCB0byBfTFRfU0VUX09QVElPTiB3aGVuIHlvdSBwdXQKKyt0aGUg YGRpc2FibGUtZmFzdC1pbnN0YWxsJyBvcHRpb24gaW50byBMVF9JTklUJ3MgZmlyc3QgcGFyYW1l dGVyLl0pCisrXSkKKysKKytkbmwgYWNsb2NhbC0xLjQgYmFja3dhcmRzIGNvbXBhdGliaWxpdHk6 CisrZG5sIEFDX0RFRlVOKFtBQ19FTkFCTEVfRkFTVF9JTlNUQUxMXSwgW10pCisrZG5sIEFDX0RF RlVOKFtBTV9ESVNBQkxFX0ZBU1RfSU5TVEFMTF0sIFtdKQorKworKworKyMgX0xUX1dJVEhfUElD KFtNT0RFXSkKKysjIC0tLS0tLS0tLS0tLS0tLS0tLS0tCisrIyBpbXBsZW1lbnQgdGhlIC0td2l0 aC1waWMgZmxhZywgYW5kIHN1cHBvcnQgdGhlIGBwaWMtb25seScgYW5kIGBuby1waWMnCisrIyBM VF9JTklUIG9wdGlvbnMuCisrIyBNT0RFIGlzIGVpdGhlciBgeWVzJyBvciBgbm8nLiAgSWYgb21p dHRlZCwgaXQgZGVmYXVsdHMgdG8gYGJvdGgnLgorK200X2RlZmluZShbX0xUX1dJVEhfUElDXSwK KytbQUNfQVJHX1dJVEgoW3BpY10sCisrICAgIFtBU19IRUxQX1NUUklORyhbLS13aXRoLXBpY10s CisrCVt0cnkgdG8gdXNlIG9ubHkgUElDL25vbi1QSUMgb2JqZWN0cyBAPDpAZGVmYXVsdD11c2Ug Ym90aEA6PkBdKV0sCisrICAgIFtwaWNfbW9kZT0iJHdpdGh2YWwiXSwKKysgICAgW3BpY19tb2Rl PWRlZmF1bHRdKQorKworK3Rlc3QgLXogIiRwaWNfbW9kZSIgJiYgcGljX21vZGU9bTRfZGVmYXVs dChbJDFdLCBbZGVmYXVsdF0pCisrCisrX0xUX0RFQ0woW10sIFtwaWNfbW9kZV0sIFswXSwgW1do YXQgdHlwZSBvZiBvYmplY3RzIHRvIGJ1aWxkXSlkbmwKKytdKSMgX0xUX1dJVEhfUElDCisrCisr TFRfT1BUSU9OX0RFRklORShbTFRfSU5JVF0sIFtwaWMtb25seV0sIFtfTFRfV0lUSF9QSUMoW3ll c10pXSkKKytMVF9PUFRJT05fREVGSU5FKFtMVF9JTklUXSwgW25vLXBpY10sIFtfTFRfV0lUSF9Q SUMoW25vXSldKQorKworKyMgT2xkIG5hbWU6CisrQVVfREVGVU4oW0FDX0xJQlRPT0xfUElDTU9E RV0sCisrW19MVF9TRVRfT1BUSU9OKFtMVF9JTklUXSwgW3BpYy1vbmx5XSkKKytBQ19ESUFHTk9T RShbb2Jzb2xldGVdLAorK1skMDogUmVtb3ZlIHRoaXMgd2FybmluZyBhbmQgdGhlIGNhbGwgdG8g X0xUX1NFVF9PUFRJT04gd2hlbiB5b3UKKytwdXQgdGhlIGBwaWMtb25seScgb3B0aW9uIGludG8g TFRfSU5JVCdzIGZpcnN0IHBhcmFtZXRlci5dKQorK10pCisrCisrZG5sIGFjbG9jYWwtMS40IGJh Y2t3YXJkcyBjb21wYXRpYmlsaXR5OgorK2RubCBBQ19ERUZVTihbQUNfTElCVE9PTF9QSUNNT0RF XSwgW10pCisrCisrIyMgLS0tLS0tLS0tLS0tLS0tLS0gIyMKKysjIyBMVERMX0lOSVQgT3B0aW9u cyAjIworKyMjIC0tLS0tLS0tLS0tLS0tLS0tICMjCisrCisrbTRfZGVmaW5lKFtfTFRETF9NT0RF XSwgW10pCisrTFRfT1BUSU9OX0RFRklORShbTFRETF9JTklUXSwgW25vbnJlY3Vyc2l2ZV0sCisr CQkgW200X2RlZmluZShbX0xURExfTU9ERV0sIFtub25yZWN1cnNpdmVdKV0pCisrTFRfT1BUSU9O X0RFRklORShbTFRETF9JTklUXSwgW3JlY3Vyc2l2ZV0sCisrCQkgW200X2RlZmluZShbX0xURExf TU9ERV0sIFtyZWN1cnNpdmVdKV0pCisrTFRfT1BUSU9OX0RFRklORShbTFRETF9JTklUXSwgW3N1 YnByb2plY3RdLAorKwkJIFttNF9kZWZpbmUoW19MVERMX01PREVdLCBbc3VicHJvamVjdF0pXSkK KysKKyttNF9kZWZpbmUoW19MVERMX1RZUEVdLCBbXSkKKytMVF9PUFRJT05fREVGSU5FKFtMVERM X0lOSVRdLCBbaW5zdGFsbGFibGVdLAorKwkJIFttNF9kZWZpbmUoW19MVERMX1RZUEVdLCBbaW5z dGFsbGFibGVdKV0pCisrTFRfT1BUSU9OX0RFRklORShbTFRETF9JTklUXSwgW2NvbnZlbmllbmNl XSwKKysJCSBbbTRfZGVmaW5lKFtfTFRETF9UWVBFXSwgW2NvbnZlbmllbmNlXSldKQorZGlmZiAt TnVyIHNvY2ktMy4wLjBfNC1wYWNrL2NvbmZpZy9sdHN1Z2FyLm00IHNvY2ktMy4wLjBfdHJlcDMw MC9jb25maWcvbHRzdWdhci5tNAorLS0tIHNvY2ktMy4wLjBfNC1wYWNrL2NvbmZpZy9sdHN1Z2Fy Lm00CTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCisrKysgc29jaS0zLjAuMF90 cmVwMzAwL2NvbmZpZy9sdHN1Z2FyLm00CTIwMTAtMDEtMjMgMTQ6NDQ6NDQuMDAwMDAwMDAwICsw MTAwCitAQCAtMCwwICsxLDEyMyBAQAorKyMgbHRzdWdhci5tNCAtLSBsaWJ0b29sIG00IGJhc2Ug bGF5ZXIuICAgICAgICAgICAgICAgICAgICAgICAgIC0qLUF1dG9jb25mLSotCisrIworKyMgQ29w eXJpZ2h0IChDKSAyMDA0LCAyMDA1LCAyMDA3LCAyMDA4IEZyZWUgU29mdHdhcmUgRm91bmRhdGlv biwgSW5jLgorKyMgV3JpdHRlbiBieSBHYXJ5IFYuIFZhdWdoYW4sIDIwMDQKKysjCisrIyBUaGlz IGZpbGUgaXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiBnaXZl cworKyMgdW5saW1pdGVkIHBlcm1pc3Npb24gdG8gY29weSBhbmQvb3IgZGlzdHJpYnV0ZSBpdCwg d2l0aCBvciB3aXRob3V0CisrIyBtb2RpZmljYXRpb25zLCBhcyBsb25nIGFzIHRoaXMgbm90aWNl IGlzIHByZXNlcnZlZC4KKysKKysjIHNlcmlhbCA2IGx0c3VnYXIubTQKKysKKysjIFRoaXMgaXMg dG8gaGVscCBhY2xvY2FsIGZpbmQgdGhlc2UgbWFjcm9zLCBhcyBpdCBjYW4ndCBzZWUgbTRfZGVm aW5lLgorK0FDX0RFRlVOKFtMVFNVR0FSX1ZFUlNJT05dLCBbbTRfaWYoWzAuMV0pXSkKKysKKysK KysjIGx0X2pvaW4oU0VQLCBBUkcxLCBbQVJHMi4uLl0pCisrIyAtLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQorKyMgUHJvZHVjZSBBUkcxU0VQQVJHMi4uLlNFUEFSR24sIG9taXR0aW5nIFtd IGFyZ3VtZW50cyBhbmQgdGhlaXIKKysjIGFzc29jaWF0ZWQgc2VwYXJhdG9yLgorKyMgTmVlZGVk IHVudGlsIHdlIGNhbiByZWx5IG9uIG00X2pvaW4gZnJvbSBBdXRvY29uZiAyLjYyLCBzaW5jZSBh bGwgZWFybGllcgorKyMgdmVyc2lvbnMgaW4gbTRzdWdhciBoYWQgYnVncy4KKyttNF9kZWZpbmUo W2x0X2pvaW5dLAorK1ttNF9pZihbJCNdLCBbMV0sIFtdLAorKyAgICAgICBbJCNdLCBbMl0sIFtb JDJdXSwKKysgICAgICAgW200X2lmKFskMl0sIFtdLCBbXSwgW1skMl1fXSkkMChbJDFdLCBtNF9z aGlmdChtNF9zaGlmdCgkQCkpKV0pXSkKKyttNF9kZWZpbmUoW19sdF9qb2luXSwKKytbbTRfaWYo WyQjJDJdLCBbMl0sIFtdLAorKyAgICAgICBbbTRfaWYoWyQyXSwgW10sIFtdLCBbWyQxJDJdXSkk MChbJDFdLCBtNF9zaGlmdChtNF9zaGlmdCgkQCkpKV0pXSkKKysKKysKKysjIGx0X2NhcihMSVNU KQorKyMgbHRfY2RyKExJU1QpCisrIyAtLS0tLS0tLS0tLS0KKysjIE1hbmlwdWxhdGUgbTQgbGlz dHMuCisrIyBUaGVzZSBtYWNyb3MgYXJlIG5lY2Vzc2FyeSBhcyBsb25nIGFzIHdpbGwgc3RpbGwg bmVlZCB0byBzdXBwb3J0CisrIyBBdXRvY29uZi0yLjU5IHdoaWNoIHF1b3RlcyBkaWZmZXJlbnRs eS4KKyttNF9kZWZpbmUoW2x0X2Nhcl0sIFtbJDFdXSkKKyttNF9kZWZpbmUoW2x0X2Nkcl0sCisr W200X2lmKFskI10sIDAsIFttNF9mYXRhbChbJDA6IGNhbm5vdCBiZSBjYWxsZWQgd2l0aG91dCBh cmd1bWVudHNdKV0sCisrICAgICAgIFskI10sIDEsIFtdLAorKyAgICAgICBbbTRfZHF1b3RlKG00 X3NoaWZ0KCRAKSldKV0pCisrbTRfZGVmaW5lKFtsdF91bnF1b3RlXSwgJDEpCisrCisrCisrIyBs dF9hcHBlbmQoTUFDUk8tTkFNRSwgU1RSSU5HLCBbU0VQQVJBVE9SXSkKKysjIC0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKyMgUmVkZWZpbmUgTUFDUk8tTkFNRSB0 byBob2xkIGl0cyBmb3JtZXIgY29udGVudCBwbHVzIGBTRVBBUkFUT1InYFNUUklORycuCisrIyBO b3RlIHRoYXQgbmVpdGhlciBTRVBBUkFUT1Igbm9yIFNUUklORyBhcmUgZXhwYW5kZWQ7IHRoZXkg YXJlIGFwcGVuZGVkCisrIyB0byBNQUNSTy1OQU1FIGFzIGlzIChsZWF2aW5nIHRoZSBleHBhbnNp b24gZm9yIHdoZW4gTUFDUk8tTkFNRSBpcyBpbnZva2VkKS4KKysjIE5vIFNFUEFSQVRPUiBpcyBv dXRwdXQgaWYgTUFDUk8tTkFNRSB3YXMgcHJldmlvdXNseSB1bmRlZmluZWQgKGRpZmZlcmVudAor KyMgdGhhbiBkZWZpbmVkIGFuZCBlbXB0eSkuCisrIworKyMgVGhpcyBtYWNybyBpcyBuZWVkZWQg dW50aWwgd2UgY2FuIHJlbHkgb24gQXV0b2NvbmYgMi42Miwgc2luY2UgZWFybGllcgorKyMgdmVy c2lvbnMgb2YgbTRzdWdhciBtaXN0YWtlbmx5IGV4cGFuZGVkIFNFUEFSQVRPUiBidXQgbm90IFNU UklORy4KKyttNF9kZWZpbmUoW2x0X2FwcGVuZF0sCisrW200X2RlZmluZShbJDFdLAorKwkgICBt NF9pZmRlZihbJDFdLCBbbTRfZGVmbihbJDFdKVskM11dKVskMl0pXSkKKysKKysKKysKKysjIGx0 X2NvbWJpbmUoU0VQLCBQUkVGSVgtTElTVCwgSU5GSVgsIFNVRkZJWDEsIFtTVUZGSVgyLi4uXSkK KysjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KKysjIFByb2R1Y2UgYSBTRVAgZGVsaW1pdGVkIGxpc3Qgb2YgYWxsIHBhaXJlZCBjb21i aW5hdGlvbnMgb2YgZWxlbWVudHMgb2YKKysjIFBSRUZJWC1MSVNUIHdpdGggU1VGRklYMSB0aHJv dWdoIFNVRkZJWG4uICBFYWNoIGVsZW1lbnQgb2YgdGhlIGxpc3QKKysjIGhhcyB0aGUgZm9ybSBQ UkVGSVhtSU5GSVhTVUZGSVhuLgorKyMgTmVlZGVkIHVudGlsIHdlIGNhbiByZWx5IG9uIG00X2Nv bWJpbmUgYWRkZWQgaW4gQXV0b2NvbmYgMi42Mi4KKyttNF9kZWZpbmUoW2x0X2NvbWJpbmVdLAor K1ttNF9pZihtNF9ldmFsKFskIyA+IDNdKSwgWzFdLAorKyAgICAgICBbbTRfcHVzaGRlZihbX0x0 X3NlcF0sIFttNF9kZWZpbmUoW19MdF9zZXBdLCBtNF9kZWZuKFtsdF9jYXJdKSldKV1dZG5sCisr W1ttNF9mb3JlYWNoKFtfTHRfcHJlZml4XSwgWyQyXSwKKysJICAgICBbbTRfZm9yZWFjaChbX0x0 X3N1ZmZpeF0sCisrCQldbTRfZHF1b3RlKG00X2RxdW90ZShtNF9zaGlmdChtNF9zaGlmdChtNF9z aGlmdCgkQCkpKSkpWywKKysJW19MdF9zZXAoWyQxXSlbXW00X2RlZm4oW19MdF9wcmVmaXhdKVsk M11tNF9kZWZuKFtfTHRfc3VmZml4XSldKV0pXSldKQorKworKworKyMgbHRfaWZfYXBwZW5kX3Vu aXEoTUFDUk8tTkFNRSwgVkFSTkFNRSwgW1NFUEFSQVRPUl0sIFtVTklRXSwgW05PVC1VTklRXSkK KysjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCisrIyBJZmYgTUFDUk8tTkFNRSBkb2VzIG5vdCB5ZXQgY29udGFp biBWQVJOQU1FLCB0aGVuIGFwcGVuZCBpdCAoZGVsaW1pdGVkCisrIyBieSBTRVBBUkFUT1IgaWYg c3VwcGxpZWQpIGFuZCBleHBhbmQgVU5JUSwgZWxzZSBOT1QtVU5JUS4KKyttNF9kZWZpbmUoW2x0 X2lmX2FwcGVuZF91bmlxXSwKKytbbTRfaWZkZWYoWyQxXSwKKysJICBbbTRfaWYobTRfaW5kZXgo WyQzXW00X2RlZm4oWyQxXSlbJDNdLCBbJDMkMiQzXSksIFstMV0sCisrCQkgW2x0X2FwcGVuZChb JDFdLCBbJDJdLCBbJDNdKSQ0XSwKKysJCSBbJDVdKV0sCisrCSAgW2x0X2FwcGVuZChbJDFdLCBb JDJdLCBbJDNdKSQ0XSldKQorKworKworKyMgbHRfZGljdF9hZGQoRElDVCwgS0VZLCBWQUxVRSkK KysjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrbTRfZGVmaW5lKFtsdF9kaWN0X2Fk ZF0sCisrW200X2RlZmluZShbJDEoJDIpXSwgWyQzXSldKQorKworKworKyMgbHRfZGljdF9hZGRf c3Via2V5KERJQ1QsIEtFWSwgU1VCS0VZLCBWQUxVRSkKKysjIC0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrbTRfZGVmaW5lKFtsdF9kaWN0X2FkZF9zdWJrZXld LAorK1ttNF9kZWZpbmUoWyQxKCQyOiQzKV0sIFskNF0pXSkKKysKKysKKysjIGx0X2RpY3RfZmV0 Y2goRElDVCwgS0VZLCBbU1VCS0VZXSkKKysjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KKyttNF9kZWZpbmUoW2x0X2RpY3RfZmV0Y2hdLAorK1ttNF9pZnZhbChbJDNdLAorKwlt NF9pZmRlZihbJDEoJDI6JDMpXSwgW200X2RlZm4oWyQxKCQyOiQzKV0pXSksCisrICAgIG00X2lm ZGVmKFskMSgkMildLCBbbTRfZGVmbihbJDEoJDIpXSldKSldKQorKworKworKyMgbHRfaWZfZGlj dF9mZXRjaChESUNULCBLRVksIFtTVUJLRVldLCBWQUxVRSwgSUYtVFJVRSwgW0lGLUZBTFNFXSkK KysjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCisrbTRfZGVmaW5lKFtsdF9pZl9kaWN0X2ZldGNoXSwKKytbbTRfaWYobHRf ZGljdF9mZXRjaChbJDFdLCBbJDJdLCBbJDNdKSwgWyQ0XSwKKysJWyQ1XSwKKysgICAgWyQ2XSld KQorKworKworKyMgbHRfZGljdF9maWx0ZXIoRElDVCwgW1NVQktFWV0sIFZBTFVFLCBbU0VQQVJB VE9SXSwgS0VZLCBbLi4uXSkKKysjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrbTRfZGVmaW5lKFtsdF9kaWN0X2ZpbHRlcl0s CisrW200X2lmKFskNV0sIFtdLCBbXSwKKysgIFtsdF9qb2luKG00X3F1b3RlKG00X2RlZmF1bHQo WyQ0XSwgW1ssIF1dKSksCisrICAgICAgICAgICBsdF91bnF1b3RlKG00X3NwbGl0KG00X25vcm1h bGl6ZShtNF9mb3JlYWNoKF9MdF9rZXksIGx0X2NhcihbbTRfc2hpZnRuKDQsICRAKV0pLAorKwkJ ICAgICAgW2x0X2lmX2RpY3RfZmV0Y2goWyQxXSwgX0x0X2tleSwgWyQyXSwgWyQzXSwgW19MdF9r ZXkgXSldKSkpKSldKVtdZG5sCisrXSkKK2RpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9jb25m aWcvbHR2ZXJzaW9uLm00IHNvY2ktMy4wLjBfdHJlcDMwMC9jb25maWcvbHR2ZXJzaW9uLm00Cist LS0gc29jaS0zLjAuMF80LXBhY2svY29uZmlnL2x0dmVyc2lvbi5tNAkxOTcwLTAxLTAxIDAxOjAw OjAwLjAwMDAwMDAwMCArMDEwMAorKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9jb25maWcvbHR2ZXJz aW9uLm00CTIwMTAtMDEtMjMgMTQ6NDQ6NDQuMDAwMDAwMDAwICswMTAwCitAQCAtMCwwICsxLDIz IEBACisrIyBsdHZlcnNpb24ubTQgLS0gdmVyc2lvbiBudW1iZXJzCQkJLSotIEF1dG9jb25mIC0q LQorKyMKKysjICAgQ29weXJpZ2h0IChDKSAyMDA0IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwg SW5jLgorKyMgICBXcml0dGVuIGJ5IFNjb3R0IEphbWVzIFJlbW5hbnQsIDIwMDQKKysjCisrIyBU aGlzIGZpbGUgaXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiBn aXZlcworKyMgdW5saW1pdGVkIHBlcm1pc3Npb24gdG8gY29weSBhbmQvb3IgZGlzdHJpYnV0ZSBp dCwgd2l0aCBvciB3aXRob3V0CisrIyBtb2RpZmljYXRpb25zLCBhcyBsb25nIGFzIHRoaXMgbm90 aWNlIGlzIHByZXNlcnZlZC4KKysKKysjIEdlbmVyYXRlZCBmcm9tIGx0dmVyc2lvbi5pbi4KKysK KysjIHNlcmlhbCAzMDE3IGx0dmVyc2lvbi5tNAorKyMgVGhpcyBmaWxlIGlzIHBhcnQgb2YgR05V IExpYnRvb2wKKysKKyttNF9kZWZpbmUoW0xUX1BBQ0tBR0VfVkVSU0lPTl0sIFsyLjIuNmJdKQor K200X2RlZmluZShbTFRfUEFDS0FHRV9SRVZJU0lPTl0sIFsxLjMwMTddKQorKworK0FDX0RFRlVO KFtMVFZFUlNJT05fVkVSU0lPTl0sCisrW21hY3JvX3ZlcnNpb249JzIuMi42YicKKyttYWNyb19y ZXZpc2lvbj0nMS4zMDE3JworK19MVF9ERUNMKCwgbWFjcm9fdmVyc2lvbiwgMCwgW1doaWNoIHJl bGVhc2Ugb2YgbGlidG9vbC5tNCB3YXMgdXNlZD9dKQorK19MVF9ERUNMKCwgbWFjcm9fcmV2aXNp b24sIDApCisrXSkKK2RpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9jb25maWcvbWlzc2luZyBz b2NpLTMuMC4wX3RyZXAzMDAvY29uZmlnL21pc3NpbmcKKy0tLSBzb2NpLTMuMC4wXzQtcGFjay9j b25maWcvbWlzc2luZwkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAorKysrIHNv Y2ktMy4wLjBfdHJlcDMwMC9jb25maWcvbWlzc2luZwkyMDEwLTAxLTIzIDE0OjQ0OjUwLjAwMDAw MDAwMCArMDEwMAorQEAgLTAsMCArMSwzNzYgQEAKKysjISAvYmluL3NoCisrIyBDb21tb24gc3R1 YiBmb3IgYSBmZXcgbWlzc2luZyBHTlUgcHJvZ3JhbXMgd2hpbGUgaW5zdGFsbGluZy4KKysKKytz Y3JpcHR2ZXJzaW9uPTIwMDktMDQtMjguMjE7ICMgVVRDCisrCisrIyBDb3B5cmlnaHQgKEMpIDE5 OTYsIDE5OTcsIDE5OTksIDIwMDAsIDIwMDIsIDIwMDMsIDIwMDQsIDIwMDUsIDIwMDYsCisrIyAy MDA4LCAyMDA5IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorKyMgT3JpZ2luYWxseSBi eSBGcmFuLGNvaXMgUGluYXJkIDxwaW5hcmRAaXJvLnVtb250cmVhbC5jYT4sIDE5OTYuCisrCisr IyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQg YW5kL29yIG1vZGlmeQorKyMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQ dWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKysjIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5k YXRpb247IGVpdGhlciB2ZXJzaW9uIDIsIG9yIChhdCB5b3VyIG9wdGlvbikKKysjIGFueSBsYXRl ciB2ZXJzaW9uLgorKworKyMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3Bl IHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisrIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdp dGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorKyMgTUVSQ0hBTlRBQklMSVRZIG9y IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorKyMgR05VIEdlbmVy YWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKysKKysjIFlvdSBzaG91bGQgaGF2 ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisrIyBh bG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcv bGljZW5zZXMvPi4KKysKKysjIEFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdOVSBHZW5l cmFsIFB1YmxpYyBMaWNlbnNlLCBpZiB5b3UKKysjIGRpc3RyaWJ1dGUgdGhpcyBmaWxlIGFzIHBh cnQgb2YgYSBwcm9ncmFtIHRoYXQgY29udGFpbnMgYQorKyMgY29uZmlndXJhdGlvbiBzY3JpcHQg Z2VuZXJhdGVkIGJ5IEF1dG9jb25mLCB5b3UgbWF5IGluY2x1ZGUgaXQgdW5kZXIKKysjIHRoZSBz YW1lIGRpc3RyaWJ1dGlvbiB0ZXJtcyB0aGF0IHlvdSB1c2UgZm9yIHRoZSByZXN0IG9mIHRoYXQg cHJvZ3JhbS4KKysKKytpZiB0ZXN0ICQjIC1lcSAwOyB0aGVuCisrICBlY2hvIDE+JjIgIlRyeSBc YCQwIC0taGVscCcgZm9yIG1vcmUgaW5mb3JtYXRpb24iCisrICBleGl0IDEKKytmaQorKworK3J1 bj06Cisrc2VkX291dHB1dD0ncy8uKiAtLW91dHB1dFsgPV1cKFteIF0qXCkuKi9cMS9wJworK3Nl ZF9taW51c289J3MvLiogLW8gXChbXiBdKlwpLiovXDEvcCcKKysKKysjIEluIHRoZSBjYXNlcyB3 aGVyZSB0aGlzIG1hdHRlcnMsIGBtaXNzaW5nJyBpcyBiZWluZyBydW4gaW4gdGhlCisrIyBzcmNk aXIgYWxyZWFkeS4KKytpZiB0ZXN0IC1mIGNvbmZpZ3VyZS5hYzsgdGhlbgorKyAgY29uZmlndXJl X2FjPWNvbmZpZ3VyZS5hYworK2Vsc2UKKysgIGNvbmZpZ3VyZV9hYz1jb25maWd1cmUuaW4KKytm aQorKworK21zZz0ibWlzc2luZyBvbiB5b3VyIHN5c3RlbSIKKysKKytjYXNlICQxIGluCisrLS1y dW4pCisrICAjIFRyeSB0byBydW4gcmVxdWVzdGVkIHByb2dyYW0sIGFuZCBqdXN0IGV4aXQgaWYg aXQgc3VjY2VlZHMuCisrICBydW49CisrICBzaGlmdAorKyAgIiRAIiAmJiBleGl0IDAKKysgICMg RXhpdCBjb2RlIDYzIG1lYW5zIHZlcnNpb24gbWlzbWF0Y2guICBUaGlzIG9mdGVuIGhhcHBlbnMK KysgICMgd2hlbiB0aGUgdXNlciB0cnkgdG8gdXNlIGFuIGFuY2llbnQgdmVyc2lvbiBvZiBhIHRv b2wgb24KKysgICMgYSBmaWxlIHRoYXQgcmVxdWlyZXMgYSBtaW5pbXVtIHZlcnNpb24uICBJbiB0 aGlzIGNhc2Ugd2UKKysgICMgd2Ugc2hvdWxkIHByb2NlZWQgaGFzIGlmIHRoZSBwcm9ncmFtIGhh ZCBiZWVuIGFic2VudCwgb3IKKysgICMgaWYgLS1ydW4gaGFkbid0IGJlZW4gcGFzc2VkLgorKyAg aWYgdGVzdCAkPyA9IDYzOyB0aGVuCisrICAgIHJ1bj06CisrICAgIG1zZz0icHJvYmFibHkgdG9v IG9sZCIKKysgIGZpCisrICA7OworKworKyAgLWh8LS1ofC0taGV8LS1oZWx8LS1oZWxwKQorKyAg ICBlY2hvICJcCisrJDAgW09QVElPTl0uLi4gUFJPR1JBTSBbQVJHVU1FTlRdLi4uCisrCisrSGFu ZGxlIFxgUFJPR1JBTSBbQVJHVU1FTlRdLi4uJyBmb3Igd2hlbiBQUk9HUkFNIGlzIG1pc3Npbmcs IG9yIHJldHVybiBhbgorK2Vycm9yIHN0YXR1cyBpZiB0aGVyZSBpcyBubyBrbm93biBoYW5kbGlu ZyBmb3IgUFJPR1JBTS4KKysKKytPcHRpb25zOgorKyAgLWgsIC0taGVscCAgICAgIGRpc3BsYXkg dGhpcyBoZWxwIGFuZCBleGl0CisrICAtdiwgLS12ZXJzaW9uICAgb3V0cHV0IHZlcnNpb24gaW5m b3JtYXRpb24gYW5kIGV4aXQKKysgIC0tcnVuICAgICAgICAgICB0cnkgdG8gcnVuIHRoZSBnaXZl biBjb21tYW5kLCBhbmQgZW11bGF0ZSBpdCBpZiBpdCBmYWlscworKworK1N1cHBvcnRlZCBQUk9H UkFNIHZhbHVlczoKKysgIGFjbG9jYWwgICAgICB0b3VjaCBmaWxlIFxgYWNsb2NhbC5tNCcKKysg IGF1dG9jb25mICAgICB0b3VjaCBmaWxlIFxgY29uZmlndXJlJworKyAgYXV0b2hlYWRlciAgIHRv dWNoIGZpbGUgXGBjb25maWcuaC5pbicKKysgIGF1dG9tNHRlICAgICB0b3VjaCB0aGUgb3V0cHV0 IGZpbGUsIG9yIGNyZWF0ZSBhIHN0dWIgb25lCisrICBhdXRvbWFrZSAgICAgdG91Y2ggYWxsIFxg TWFrZWZpbGUuaW4nIGZpbGVzCisrICBiaXNvbiAgICAgICAgY3JlYXRlIFxgeS50YWIuW2NoXScs IGlmIHBvc3NpYmxlLCBmcm9tIGV4aXN0aW5nIC5bY2hdCisrICBmbGV4ICAgICAgICAgY3JlYXRl IFxgbGV4Lnl5LmMnLCBpZiBwb3NzaWJsZSwgZnJvbSBleGlzdGluZyAuYworKyAgaGVscDJtYW4g ICAgIHRvdWNoIHRoZSBvdXRwdXQgZmlsZQorKyAgbGV4ICAgICAgICAgIGNyZWF0ZSBcYGxleC55 eS5jJywgaWYgcG9zc2libGUsIGZyb20gZXhpc3RpbmcgLmMKKysgIG1ha2VpbmZvICAgICB0b3Vj aCB0aGUgb3V0cHV0IGZpbGUKKysgIHRhciAgICAgICAgICB0cnkgdGFyLCBnbnV0YXIsIGd0YXIs IHRoZW4gdGFyIHdpdGhvdXQgbm9uLXBvcnRhYmxlIGZsYWdzCisrICB5YWNjICAgICAgICAgY3Jl YXRlIFxgeS50YWIuW2NoXScsIGlmIHBvc3NpYmxlLCBmcm9tIGV4aXN0aW5nIC5bY2hdCisrCisr VmVyc2lvbiBzdWZmaXhlcyB0byBQUk9HUkFNIGFzIHdlbGwgYXMgdGhlIHByZWZpeGVzIFxgZ251 LScsIFxgZ251JywgYW5kCisrXGBnJyBhcmUgaWdub3JlZCB3aGVuIGNoZWNraW5nIHRoZSBuYW1l LgorKworK1NlbmQgYnVnIHJlcG9ydHMgdG8gPGJ1Zy1hdXRvbWFrZUBnbnUub3JnPi4iCisrICAg IGV4aXQgJD8KKysgICAgOzsKKysKKysgIC12fC0tdnwtLXZlfC0tdmVyfC0tdmVyc3wtLXZlcnNp fC0tdmVyc2lvfC0tdmVyc2lvbikKKysgICAgZWNobyAibWlzc2luZyAkc2NyaXB0dmVyc2lvbiAo R05VIEF1dG9tYWtlKSIKKysgICAgZXhpdCAkPworKyAgICA7OworKworKyAgLSopCisrICAgIGVj aG8gMT4mMiAiJDA6IFVua25vd24gXGAkMScgb3B0aW9uIgorKyAgICBlY2hvIDE+JjIgIlRyeSBc YCQwIC0taGVscCcgZm9yIG1vcmUgaW5mb3JtYXRpb24iCisrICAgIGV4aXQgMQorKyAgICA7Owor KworK2VzYWMKKysKKysjIG5vcm1hbGl6ZSBwcm9ncmFtIG5hbWUgdG8gY2hlY2sgZm9yLgorK3By b2dyYW09YGVjaG8gIiQxIiB8IHNlZCAnCisrICBzL15nbnUtLy87IHQKKysgIHMvXmdudS8vOyB0 CisrICBzL15nLy87IHQnYAorKworKyMgTm93IGV4aXQgaWYgd2UgaGF2ZSBpdCwgYnV0IGl0IGZh aWxlZC4gIEFsc28gZXhpdCBub3cgaWYgd2UKKysjIGRvbid0IGhhdmUgaXQgYW5kIC0tdmVyc2lv biB3YXMgcGFzc2VkIChtb3N0IGxpa2VseSB0byBkZXRlY3QKKysjIHRoZSBwcm9ncmFtKS4gIFRo aXMgaXMgYWJvdXQgbm9uLUdOVSBwcm9ncmFtcywgc28gdXNlICQxIG5vdAorKyMgJHByb2dyYW0u CisrY2FzZSAkMSBpbgorKyAgbGV4Knx5YWNjKikKKysgICAgIyBOb3QgR05VIHByb2dyYW1zLCB0 aGV5IGRvbid0IGhhdmUgLS12ZXJzaW9uLgorKyAgICA7OworKworKyAgdGFyKikKKysgICAgaWYg dGVzdCAtbiAiJHJ1biI7IHRoZW4KKysgICAgICAgZWNobyAxPiYyICJFUlJPUjogXGB0YXInIHJl cXVpcmVzIC0tcnVuIgorKyAgICAgICBleGl0IDEKKysgICAgZWxpZiB0ZXN0ICJ4JDIiID0gIngt LXZlcnNpb24iIHx8IHRlc3QgIngkMiIgPSAieC0taGVscCI7IHRoZW4KKysgICAgICAgZXhpdCAx CisrICAgIGZpCisrICAgIDs7CisrCisrICAqKQorKyAgICBpZiB0ZXN0IC16ICIkcnVuIiAmJiAo JDEgLS12ZXJzaW9uKSA+IC9kZXYvbnVsbCAyPiYxOyB0aGVuCisrICAgICAgICMgV2UgaGF2ZSBp dCwgYnV0IGl0IGZhaWxlZC4KKysgICAgICAgZXhpdCAxCisrICAgIGVsaWYgdGVzdCAieCQyIiA9 ICJ4LS12ZXJzaW9uIiB8fCB0ZXN0ICJ4JDIiID0gIngtLWhlbHAiOyB0aGVuCisrICAgICAgICMg Q291bGQgbm90IHJ1biAtLXZlcnNpb24gb3IgLS1oZWxwLiAgVGhpcyBpcyBwcm9iYWJseSBzb21l b25lCisrICAgICAgICMgcnVubmluZyBgJFRPT0wgLS12ZXJzaW9uJyBvciBgJFRPT0wgLS1oZWxw JyB0byBjaGVjayB3aGV0aGVyCisrICAgICAgICMgJFRPT0wgZXhpc3RzIGFuZCBub3Qga25vd2lu ZyAkVE9PTCB1c2VzIG1pc3NpbmcuCisrICAgICAgIGV4aXQgMQorKyAgICBmaQorKyAgICA7Owor K2VzYWMKKysKKysjIElmIGl0IGRvZXMgbm90IGV4aXN0LCBvciBmYWlscyB0byBydW4gKHBvc3Np Ymx5IGFuIG91dGRhdGVkIHZlcnNpb24pLAorKyMgdHJ5IHRvIGVtdWxhdGUgaXQuCisrY2FzZSAk cHJvZ3JhbSBpbgorKyAgYWNsb2NhbCopCisrICAgIGVjaG8gMT4mMiAiXAorK1dBUk5JTkc6IFxg JDEnIGlzICRtc2cuICBZb3Ugc2hvdWxkIG9ubHkgbmVlZCBpdCBpZgorKyAgICAgICAgIHlvdSBt b2RpZmllZCBcYGFjaW5jbHVkZS5tNCcgb3IgXGAke2NvbmZpZ3VyZV9hY30nLiAgWW91IG1pZ2h0 IHdhbnQKKysgICAgICAgICB0byBpbnN0YWxsIHRoZSBcYEF1dG9tYWtlJyBhbmQgXGBQZXJsJyBw YWNrYWdlcy4gIEdyYWIgdGhlbSBmcm9tCisrICAgICAgICAgYW55IEdOVSBhcmNoaXZlIHNpdGUu IgorKyAgICB0b3VjaCBhY2xvY2FsLm00CisrICAgIDs7CisrCisrICBhdXRvY29uZiopCisrICAg IGVjaG8gMT4mMiAiXAorK1dBUk5JTkc6IFxgJDEnIGlzICRtc2cuICBZb3Ugc2hvdWxkIG9ubHkg bmVlZCBpdCBpZgorKyAgICAgICAgIHlvdSBtb2RpZmllZCBcYCR7Y29uZmlndXJlX2FjfScuICBZ b3UgbWlnaHQgd2FudCB0byBpbnN0YWxsIHRoZQorKyAgICAgICAgIFxgQXV0b2NvbmYnIGFuZCBc YEdOVSBtNCcgcGFja2FnZXMuICBHcmFiIHRoZW0gZnJvbSBhbnkgR05VCisrICAgICAgICAgYXJj aGl2ZSBzaXRlLiIKKysgICAgdG91Y2ggY29uZmlndXJlCisrICAgIDs7CisrCisrICBhdXRvaGVh ZGVyKikKKysgICAgZWNobyAxPiYyICJcCisrV0FSTklORzogXGAkMScgaXMgJG1zZy4gIFlvdSBz aG91bGQgb25seSBuZWVkIGl0IGlmCisrICAgICAgICAgeW91IG1vZGlmaWVkIFxgYWNjb25maWcu aCcgb3IgXGAke2NvbmZpZ3VyZV9hY30nLiAgWW91IG1pZ2h0IHdhbnQKKysgICAgICAgICB0byBp bnN0YWxsIHRoZSBcYEF1dG9jb25mJyBhbmQgXGBHTlUgbTQnIHBhY2thZ2VzLiAgR3JhYiB0aGVt CisrICAgICAgICAgZnJvbSBhbnkgR05VIGFyY2hpdmUgc2l0ZS4iCisrICAgIGZpbGVzPWBzZWQg LW4gJ3MvXlsgXSpBW0NNXV9DT05GSUdfSEVBREVSKFwoW14pXSpcKSkuKi9cMS9wJyAke2NvbmZp Z3VyZV9hY31gCisrICAgIHRlc3QgLXogIiRmaWxlcyIgJiYgZmlsZXM9ImNvbmZpZy5oIgorKyAg ICB0b3VjaF9maWxlcz0KKysgICAgZm9yIGYgaW4gJGZpbGVzOyBkbworKyAgICAgIGNhc2UgJGYg aW4KKysgICAgICAqOiopIHRvdWNoX2ZpbGVzPSIkdG91Y2hfZmlsZXMgImBlY2hvICIkZiIgfAor KwkJCQkgICAgICAgc2VkIC1lICdzL15bXjpdKjovLycgLWUgJ3MvOi4qLy8nYDs7CisrICAgICAg KikgdG91Y2hfZmlsZXM9IiR0b3VjaF9maWxlcyAkZi5pbiI7OworKyAgICAgIGVzYWMKKysgICAg ZG9uZQorKyAgICB0b3VjaCAkdG91Y2hfZmlsZXMKKysgICAgOzsKKysKKysgIGF1dG9tYWtlKikK KysgICAgZWNobyAxPiYyICJcCisrV0FSTklORzogXGAkMScgaXMgJG1zZy4gIFlvdSBzaG91bGQg b25seSBuZWVkIGl0IGlmCisrICAgICAgICAgeW91IG1vZGlmaWVkIFxgTWFrZWZpbGUuYW0nLCBc YGFjaW5jbHVkZS5tNCcgb3IgXGAke2NvbmZpZ3VyZV9hY30nLgorKyAgICAgICAgIFlvdSBtaWdo dCB3YW50IHRvIGluc3RhbGwgdGhlIFxgQXV0b21ha2UnIGFuZCBcYFBlcmwnIHBhY2thZ2VzLgor KyAgICAgICAgIEdyYWIgdGhlbSBmcm9tIGFueSBHTlUgYXJjaGl2ZSBzaXRlLiIKKysgICAgZmlu ZCAuIC10eXBlIGYgLW5hbWUgTWFrZWZpbGUuYW0gLXByaW50IHwKKysJICAgc2VkICdzL1wuYW0k Ly5pbi8nIHwKKysJICAgd2hpbGUgcmVhZCBmOyBkbyB0b3VjaCAiJGYiOyBkb25lCisrICAgIDs7 CisrCisrICBhdXRvbTR0ZSopCisrICAgIGVjaG8gMT4mMiAiXAorK1dBUk5JTkc6IFxgJDEnIGlz IG5lZWRlZCwgYnV0IGlzICRtc2cuCisrICAgICAgICAgWW91IG1pZ2h0IGhhdmUgbW9kaWZpZWQg c29tZSBmaWxlcyB3aXRob3V0IGhhdmluZyB0aGUKKysgICAgICAgICBwcm9wZXIgdG9vbHMgZm9y IGZ1cnRoZXIgaGFuZGxpbmcgdGhlbS4KKysgICAgICAgICBZb3UgY2FuIGdldCBcYCQxJyBhcyBw YXJ0IG9mIFxgQXV0b2NvbmYnIGZyb20gYW55IEdOVQorKyAgICAgICAgIGFyY2hpdmUgc2l0ZS4i CisrCisrICAgIGZpbGU9YGVjaG8gIiQqIiB8IHNlZCAtbiAiJHNlZF9vdXRwdXQiYAorKyAgICB0 ZXN0IC16ICIkZmlsZSIgJiYgZmlsZT1gZWNobyAiJCoiIHwgc2VkIC1uICIkc2VkX21pbnVzbyJg CisrICAgIGlmIHRlc3QgLWYgIiRmaWxlIjsgdGhlbgorKwl0b3VjaCAkZmlsZQorKyAgICBlbHNl CisrCXRlc3QgLXogIiRmaWxlIiB8fCBleGVjID4kZmlsZQorKwllY2hvICIjISAvYmluL3NoIgor KwllY2hvICIjIENyZWF0ZWQgYnkgR05VIEF1dG9tYWtlIG1pc3NpbmcgYXMgYSByZXBsYWNlbWVu dCBvZiIKKysJZWNobyAiIyAgJCAkQCIKKysJZWNobyAiZXhpdCAwIgorKwljaG1vZCAreCAkZmls ZQorKwlleGl0IDEKKysgICAgZmkKKysgICAgOzsKKysKKysgIGJpc29uKnx5YWNjKikKKysgICAg ZWNobyAxPiYyICJcCisrV0FSTklORzogXGAkMScgJG1zZy4gIFlvdSBzaG91bGQgb25seSBuZWVk IGl0IGlmCisrICAgICAgICAgeW91IG1vZGlmaWVkIGEgXGAueScgZmlsZS4gIFlvdSBtYXkgbmVl ZCB0aGUgXGBCaXNvbicgcGFja2FnZQorKyAgICAgICAgIGluIG9yZGVyIGZvciB0aG9zZSBtb2Rp ZmljYXRpb25zIHRvIHRha2UgZWZmZWN0LiAgWW91IGNhbiBnZXQKKysgICAgICAgICBcYEJpc29u JyBmcm9tIGFueSBHTlUgYXJjaGl2ZSBzaXRlLiIKKysgICAgcm0gLWYgeS50YWIuYyB5LnRhYi5o CisrICAgIGlmIHRlc3QgJCMgLW5lIDE7IHRoZW4KKysgICAgICAgIGV2YWwgTEFTVEFSRz0iXCR7 JCN9IgorKwljYXNlICRMQVNUQVJHIGluCisrCSoueSkKKysJICAgIFNSQ0ZJTEU9YGVjaG8gIiRM QVNUQVJHIiB8IHNlZCAncy95JC9jLydgCisrCSAgICBpZiB0ZXN0IC1mICIkU1JDRklMRSI7IHRo ZW4KKysJICAgICAgICAgY3AgIiRTUkNGSUxFIiB5LnRhYi5jCisrCSAgICBmaQorKwkgICAgU1JD RklMRT1gZWNobyAiJExBU1RBUkciIHwgc2VkICdzL3kkL2gvJ2AKKysJICAgIGlmIHRlc3QgLWYg IiRTUkNGSUxFIjsgdGhlbgorKwkgICAgICAgICBjcCAiJFNSQ0ZJTEUiIHkudGFiLmgKKysJICAg IGZpCisrCSAgOzsKKysJZXNhYworKyAgICBmaQorKyAgICBpZiB0ZXN0ICEgLWYgeS50YWIuaDsg dGhlbgorKwllY2hvID55LnRhYi5oCisrICAgIGZpCisrICAgIGlmIHRlc3QgISAtZiB5LnRhYi5j OyB0aGVuCisrCWVjaG8gJ21haW4oKSB7IHJldHVybiAwOyB9JyA+eS50YWIuYworKyAgICBmaQor KyAgICA7OworKworKyAgbGV4KnxmbGV4KikKKysgICAgZWNobyAxPiYyICJcCisrV0FSTklORzog XGAkMScgaXMgJG1zZy4gIFlvdSBzaG91bGQgb25seSBuZWVkIGl0IGlmCisrICAgICAgICAgeW91 IG1vZGlmaWVkIGEgXGAubCcgZmlsZS4gIFlvdSBtYXkgbmVlZCB0aGUgXGBGbGV4JyBwYWNrYWdl CisrICAgICAgICAgaW4gb3JkZXIgZm9yIHRob3NlIG1vZGlmaWNhdGlvbnMgdG8gdGFrZSBlZmZl Y3QuICBZb3UgY2FuIGdldAorKyAgICAgICAgIFxgRmxleCcgZnJvbSBhbnkgR05VIGFyY2hpdmUg c2l0ZS4iCisrICAgIHJtIC1mIGxleC55eS5jCisrICAgIGlmIHRlc3QgJCMgLW5lIDE7IHRoZW4K KysgICAgICAgIGV2YWwgTEFTVEFSRz0iXCR7JCN9IgorKwljYXNlICRMQVNUQVJHIGluCisrCSou bCkKKysJICAgIFNSQ0ZJTEU9YGVjaG8gIiRMQVNUQVJHIiB8IHNlZCAncy9sJC9jLydgCisrCSAg ICBpZiB0ZXN0IC1mICIkU1JDRklMRSI7IHRoZW4KKysJICAgICAgICAgY3AgIiRTUkNGSUxFIiBs ZXgueXkuYworKwkgICAgZmkKKysJICA7OworKwllc2FjCisrICAgIGZpCisrICAgIGlmIHRlc3Qg ISAtZiBsZXgueXkuYzsgdGhlbgorKwllY2hvICdtYWluKCkgeyByZXR1cm4gMDsgfScgPmxleC55 eS5jCisrICAgIGZpCisrICAgIDs7CisrCisrICBoZWxwMm1hbiopCisrICAgIGVjaG8gMT4mMiAi XAorK1dBUk5JTkc6IFxgJDEnIGlzICRtc2cuICBZb3Ugc2hvdWxkIG9ubHkgbmVlZCBpdCBpZgor KwkgeW91IG1vZGlmaWVkIGEgZGVwZW5kZW5jeSBvZiBhIG1hbnVhbCBwYWdlLiAgWW91IG1heSBu ZWVkIHRoZQorKwkgXGBIZWxwMm1hbicgcGFja2FnZSBpbiBvcmRlciBmb3IgdGhvc2UgbW9kaWZp Y2F0aW9ucyB0byB0YWtlCisrCSBlZmZlY3QuICBZb3UgY2FuIGdldCBcYEhlbHAybWFuJyBmcm9t IGFueSBHTlUgYXJjaGl2ZSBzaXRlLiIKKysKKysgICAgZmlsZT1gZWNobyAiJCoiIHwgc2VkIC1u ICIkc2VkX291dHB1dCJgCisrICAgIHRlc3QgLXogIiRmaWxlIiAmJiBmaWxlPWBlY2hvICIkKiIg fCBzZWQgLW4gIiRzZWRfbWludXNvImAKKysgICAgaWYgdGVzdCAtZiAiJGZpbGUiOyB0aGVuCisr CXRvdWNoICRmaWxlCisrICAgIGVsc2UKKysJdGVzdCAteiAiJGZpbGUiIHx8IGV4ZWMgPiRmaWxl CisrCWVjaG8gIi5hYiBoZWxwMm1hbiBpcyByZXF1aXJlZCB0byBnZW5lcmF0ZSB0aGlzIHBhZ2Ui CisrCWV4aXQgJD8KKysgICAgZmkKKysgICAgOzsKKysKKysgIG1ha2VpbmZvKikKKysgICAgZWNo byAxPiYyICJcCisrV0FSTklORzogXGAkMScgaXMgJG1zZy4gIFlvdSBzaG91bGQgb25seSBuZWVk IGl0IGlmCisrICAgICAgICAgeW91IG1vZGlmaWVkIGEgXGAudGV4aScgb3IgXGAudGV4aW5mbycg ZmlsZSwgb3IgYW55IG90aGVyIGZpbGUKKysgICAgICAgICBpbmRpcmVjdGx5IGFmZmVjdGluZyB0 aGUgYXNwZWN0IG9mIHRoZSBtYW51YWwuICBUaGUgc3B1cmlvdXMKKysgICAgICAgICBjYWxsIG1p Z2h0IGFsc28gYmUgdGhlIGNvbnNlcXVlbmNlIG9mIHVzaW5nIGEgYnVnZ3kgXGBtYWtlJyAoQUlY LAorKyAgICAgICAgIERVLCBJUklYKS4gIFlvdSBtaWdodCB3YW50IHRvIGluc3RhbGwgdGhlIFxg VGV4aW5mbycgcGFja2FnZSBvcgorKyAgICAgICAgIHRoZSBcYEdOVSBtYWtlJyBwYWNrYWdlLiAg R3JhYiBlaXRoZXIgZnJvbSBhbnkgR05VIGFyY2hpdmUgc2l0ZS4iCisrICAgICMgVGhlIGZpbGUg dG8gdG91Y2ggaXMgdGhhdCBzcGVjaWZpZWQgd2l0aCAtbyAuLi4KKysgICAgZmlsZT1gZWNobyAi JCoiIHwgc2VkIC1uICIkc2VkX291dHB1dCJgCisrICAgIHRlc3QgLXogIiRmaWxlIiAmJiBmaWxl PWBlY2hvICIkKiIgfCBzZWQgLW4gIiRzZWRfbWludXNvImAKKysgICAgaWYgdGVzdCAteiAiJGZp bGUiOyB0aGVuCisrICAgICAgIyAuLi4gb3IgaXQgaXMgdGhlIG9uZSBzcGVjaWZpZWQgd2l0aCBA c2V0ZmlsZW5hbWUgLi4uCisrICAgICAgaW5maWxlPWBlY2hvICIkKiIgfCBzZWQgJ3MvLiogXChb XiBdKlwpICokL1wxLydgCisrICAgICAgZmlsZT1gc2VkIC1uICcKKysJL15Ac2V0ZmlsZW5hbWUv eworKwkgIHMvLiogXChbXiBdKlwpICokL1wxLworKwkgIHAKKysJICBxCisrCX0nICRpbmZpbGVg CisrICAgICAgIyAuLi4gb3IgaXQgaXMgZGVyaXZlZCBmcm9tIHRoZSBzb3VyY2UgbmFtZSAoZGly L2YudGV4aSBiZWNvbWVzIGYuaW5mbykKKysgICAgICB0ZXN0IC16ICIkZmlsZSIgJiYgZmlsZT1g ZWNobyAiJGluZmlsZSIgfCBzZWQgJ3MsLiovLCw7cywuW14uXSokLCwnYC5pbmZvCisrICAgIGZp CisrICAgICMgSWYgdGhlIGZpbGUgZG9lcyBub3QgZXhpc3QsIHRoZSB1c2VyIHJlYWxseSBuZWVk cyBtYWtlaW5mbzsKKysgICAgIyBsZXQncyBmYWlsIHdpdGhvdXQgdG91Y2hpbmcgYW55dGhpbmcu CisrICAgIHRlc3QgLWYgJGZpbGUgfHwgZXhpdCAxCisrICAgIHRvdWNoICRmaWxlCisrICAgIDs7 CisrCisrICB0YXIqKQorKyAgICBzaGlmdAorKworKyAgICAjIFdlIGhhdmUgYWxyZWFkeSB0cmll ZCB0YXIgaW4gdGhlIGdlbmVyaWMgcGFydC4KKysgICAgIyBMb29rIGZvciBnbnV0YXIvZ3RhciBi ZWZvcmUgaW52b2NhdGlvbiB0byBhdm9pZCB1Z2x5IGVycm9yCisrICAgICMgbWVzc2FnZXMuCisr ICAgIGlmIChnbnV0YXIgLS12ZXJzaW9uID4gL2Rldi9udWxsIDI+JjEpOyB0aGVuCisrICAgICAg IGdudXRhciAiJEAiICYmIGV4aXQgMAorKyAgICBmaQorKyAgICBpZiAoZ3RhciAtLXZlcnNpb24g PiAvZGV2L251bGwgMj4mMSk7IHRoZW4KKysgICAgICAgZ3RhciAiJEAiICYmIGV4aXQgMAorKyAg ICBmaQorKyAgICBmaXJzdGFyZz0iJDEiCisrICAgIGlmIHNoaWZ0OyB0aGVuCisrCWNhc2UgJGZp cnN0YXJnIGluCisrCSpvKikKKysJICAgIGZpcnN0YXJnPWBlY2hvICIkZmlyc3RhcmciIHwgc2Vk IHMvby8vYAorKwkgICAgdGFyICIkZmlyc3RhcmciICIkQCIgJiYgZXhpdCAwCisrCSAgICA7Owor Kwllc2FjCisrCWNhc2UgJGZpcnN0YXJnIGluCisrCSpoKikKKysJICAgIGZpcnN0YXJnPWBlY2hv ICIkZmlyc3RhcmciIHwgc2VkIHMvaC8vYAorKwkgICAgdGFyICIkZmlyc3RhcmciICIkQCIgJiYg ZXhpdCAwCisrCSAgICA7OworKwllc2FjCisrICAgIGZpCisrCisrICAgIGVjaG8gMT4mMiAiXAor K1dBUk5JTkc6IEkgY2FuJ3Qgc2VlbSB0byBiZSBhYmxlIHRvIHJ1biBcYHRhcicgd2l0aCB0aGUg Z2l2ZW4gYXJndW1lbnRzLgorKyAgICAgICAgIFlvdSBtYXkgd2FudCB0byBpbnN0YWxsIEdOVSB0 YXIgb3IgRnJlZSBwYXh1dGlscywgb3IgY2hlY2sgdGhlCisrICAgICAgICAgY29tbWFuZCBsaW5l IGFyZ3VtZW50cy4iCisrICAgIGV4aXQgMQorKyAgICA7OworKworKyAgKikKKysgICAgZWNobyAx PiYyICJcCisrV0FSTklORzogXGAkMScgaXMgbmVlZGVkLCBhbmQgaXMgJG1zZy4KKysgICAgICAg ICBZb3UgbWlnaHQgaGF2ZSBtb2RpZmllZCBzb21lIGZpbGVzIHdpdGhvdXQgaGF2aW5nIHRoZQor KyAgICAgICAgIHByb3BlciB0b29scyBmb3IgZnVydGhlciBoYW5kbGluZyB0aGVtLiAgQ2hlY2sg dGhlIFxgUkVBRE1FJyBmaWxlLAorKyAgICAgICAgIGl0IG9mdGVuIHRlbGxzIHlvdSBhYm91dCB0 aGUgbmVlZGVkIHByZXJlcXVpc2l0ZXMgZm9yIGluc3RhbGxpbmcKKysgICAgICAgICB0aGlzIHBh Y2thZ2UuICBZb3UgbWF5IGFsc28gcGVlayBhdCBhbnkgR05VIGFyY2hpdmUgc2l0ZSwgaW4gY2Fz ZQorKyAgICAgICAgIHNvbWUgb3RoZXIgcGFja2FnZSB3b3VsZCBjb250YWluIHRoaXMgbWlzc2lu ZyBcYCQxJyBwcm9ncmFtLiIKKysgICAgZXhpdCAxCisrICAgIDs7CisrZXNhYworKworK2V4aXQg MAorKworKyMgTG9jYWwgdmFyaWFibGVzOgorKyMgZXZhbDogKGFkZC1ob29rICd3cml0ZS1maWxl LWhvb2tzICd0aW1lLXN0YW1wKQorKyMgdGltZS1zdGFtcC1zdGFydDogInNjcmlwdHZlcnNpb249 IgorKyMgdGltZS1zdGFtcC1mb3JtYXQ6ICIlOnktJTAybS0lMDJkLiUwMkgiCisrIyB0aW1lLXN0 YW1wLXRpbWUtem9uZTogIlVUQyIKKysjIHRpbWUtc3RhbXAtZW5kOiAiOyAjIFVUQyIKKysjIEVu ZDoKK2RpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9jb25maWd1cmUgc29jaS0zLjAuMF90cmVw MzAwL2NvbmZpZ3VyZQorLS0tIHNvY2ktMy4wLjBfNC1wYWNrL2NvbmZpZ3VyZQkyMDEwLTAxLTIz IDE0OjQ1OjQ0LjAwMDAwMDAwMCArMDEwMAorKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9jb25maWd1 cmUJMjAxMC0wMS0yMyAxNDo0NDo0OS4wMDAwMDAwMDAgKzAxMDAKK0BAIC0xLDcyICsxLDIzMDQw IEBACistIyEvYmluL3NoCisrIyEgL2Jpbi9zaAorKyMgR3Vlc3MgdmFsdWVzIGZvciBzeXN0ZW0t ZGVwZW5kZW50IHZhcmlhYmxlcyBhbmQgY3JlYXRlIE1ha2VmaWxlcy4KKysjIEdlbmVyYXRlZCBi eSBHTlUgQXV0b2NvbmYgMi42MyBmb3IgU09DSSAzLjAuMC4KKysjCisrIyBSZXBvcnQgYnVncyB0 byA8bXNvYmN6YWtAdXNlcnMuc291cmNlZm9yZ2UubmV0Pi4KKysjCisrIyBDb3B5cmlnaHQgKEMp IDIwMDQtMjAwOSBNYWNpZWogU29iY3phayA8bXNvYmN6YWtAdXNlcnMuc291cmNlZm9yZ2UubmV0 PgorKyMKKysjIENvcHlyaWdodCAoQykgMTk5MiwgMTk5MywgMTk5NCwgMTk5NSwgMTk5NiwgMTk5 OCwgMTk5OSwgMjAwMCwgMjAwMSwKKysjIDIwMDIsIDIwMDMsIDIwMDQsIDIwMDUsIDIwMDYsIDIw MDcsIDIwMDggRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisrIyBUaGlzIGNvbmZpZ3Vy ZSBzY3JpcHQgaXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbgor KyMgZ2l2ZXMgdW5saW1pdGVkIHBlcm1pc3Npb24gdG8gY29weSwgZGlzdHJpYnV0ZSBhbmQgbW9k aWZ5IGl0LgorKyMjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjIworKyMjIE00c2ggSW5pdGlhbGl6 YXRpb24uICAjIworKyMjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjIworIAorLWlmIFsgJCMgLWd0 IDAgXQorLXRoZW4KKy0gICAgaWYgWyAkMSA9ICItaGVscCIgLW8gJDEgPSAiLS1oZWxwIiBdCist ICAgIHRoZW4KKy0gICAgICAgIGVjaG8gJ1JlY29nbml6ZWQgY29uZmlndXJlIG9wdGlvbnM6Jwor LSAgICAgICAgZWNobyAnJworLSAgICAgICAgZWNobyAnSW5zdGFsbGF0aW9uIG9wdGlvbnM6Jwor LSAgICAgICAgZWNobyAnLS1pbmNsdWRlLXByZWZpeD0vc29tZS9wYXRoICAgICAgLSBwYXRoIHRv IGluc3RhbGwgU09DSSBoZWFkZXIgZmlsZXMnCistICAgICAgICBlY2hvICctLWxpYi1wcmVmaXg9 L3NvbWUvcGF0aCAgICAgICAgICAtIHBhdGggdG8gaW5zdGFsbCBTT0NJIGxpYnJhcmllcycKKy0g ICAgICAgIGVjaG8gJycKKy0gICAgICAgIGVjaG8gJ015U1FMIG9wdGlvbnM6JworLSAgICAgICAg ZWNobyAnLS1teXNxbC1pbmNsdWRlPS9zb21lL3BhdGggICAgICAgLSBkaXJlY3RvcnkgY29udGFp bmluZyBteXNxbC5oJworLSAgICAgICAgZWNobyAnLS1teXNxbC1saWI9L3NvbWUvcGF0aCAgICAg ICAgICAgLSBkaXJlY3RvcnkgY29udGFpbmluZyBsaWJteXNxbGNsaWVudC5bYXxzb10nCistICAg ICAgICBlY2hvICcnCistICAgICAgICBlY2hvICdPcmFjbGUgb3B0aW9ucyAoaWYgT1JBQ0xFX0hP TUUgdmFyaWFibGUgaXMgbm90IHNldCk6JworLSAgICAgICAgZWNobyAnLS1vcmFjbGUtaW5jbHVk ZT0vc29tZS9wYXRoICAgICAgLSBkaXJlY3RvcnkgY29udGFpbmluZyBvY2kuaCcKKy0gICAgICAg IGVjaG8gJy0tb3JhY2xlLWxpYj0vc29tZS9wYXRoICAgICAgICAgIC0gZGlyZWN0b3J5IGNvbnRh aW5pbmcgbGliY2xudHNoLlthfHNvXScKKy0gICAgICAgIGVjaG8gJycKKy0gICAgICAgIGVjaG8g J1Bvc3RncmVTUUwgb3B0aW9uczonCistICAgICAgICBlY2hvICctLXBvc3RncmVzcWwtaW5jbHVk ZT0vc29tZS9wYXRoICAtIGRpcmVjdG9yeSBjb250YWluaW5nIGxpYnBxL2xpYnBxLWZzLmgnCist ICAgICAgICBlY2hvICctLXBvc3RncmVzcWwtbGliPS9zb21lL3BhdGggICAgICAtIGRpcmVjdG9y eSBjb250YWluaW5nIGxpYnBxLlthfHNvXScKKy0gICAgICAgIGVjaG8gJycKKy0gICAgICAgIGVj aG8gJ1Rlc3QgcHJvZ3JhbXMgY29tcGlsYXRpb24gb3B0aW9ucyAobm90IG5lZWRlZCBmb3IgbGli cmFyeSBidWlsZCk6JworLSAgICAgICAgZWNobyAnLS1ib29zdC1pbmNsdWRlPS9zb21lL3BhdGgg ICAgICAgLSByb290IGluY2x1ZGUgZGlyZWN0b3J5IG9mIEJvb3N0JworLSAgICAgICAgZWNobyAn LS1ib29zdC1saWI9L3NvbWUvcGF0aCAgICAgICAgICAgLSByb290IGxpYiBkaXJlY3Rvcnkgb2Yg Qm9vc3QnCistICAgICAgICBlY2hvICcnCistICAgICAgICBleGl0CistICAgIGZpCisrIyBCZSBt b3JlIEJvdXJuZSBjb21wYXRpYmxlCisrRFVBTENBU0U9MTsgZXhwb3J0IERVQUxDQVNFICMgZm9y IE1LUyBzaAorK2lmIHRlc3QgLW4gIiR7WlNIX1ZFUlNJT04rc2V0fSIgJiYgKGVtdWxhdGUgc2gp ID4vZGV2L251bGwgMj4mMTsgdGhlbgorKyAgZW11bGF0ZSBzaAorKyAgTlVMTENNRD06CisrICAj IFByZS00LjIgdmVyc2lvbnMgb2YgWnNoIGRvIHdvcmQgc3BsaXR0aW5nIG9uICR7MSsiJEAifSwg d2hpY2gKKysgICMgaXMgY29udHJhcnkgdG8gb3VyIHVzYWdlLiAgRGlzYWJsZSB0aGlzIGZlYXR1 cmUuCisrICBhbGlhcyAtZyAnJHsxKyIkQCJ9Jz0nIiRAIicKKysgIHNldG9wdCBOT19HTE9CX1NV QlNUCisrZWxzZQorKyAgY2FzZSBgKHNldCAtbykgMj4vZGV2L251bGxgIGluCisrICAqcG9zaXgq KSBzZXQgLW8gcG9zaXggOzsKKytlc2FjCisrCisrZmkKKysKKysKKysKKysKKysjIFBBVEggbmVl ZHMgQ1IKKysjIEF2b2lkIGRlcGVuZGluZyB1cG9uIENoYXJhY3RlciBSYW5nZXMuCisrYXNfY3Jf bGV0dGVycz0nYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXonCisrYXNfY3JfTEVUVEVSUz0nQUJD REVGR0hJSktMTU5PUFFSU1RVVldYWVonCisrYXNfY3JfTGV0dGVycz0kYXNfY3JfbGV0dGVycyRh c19jcl9MRVRURVJTCisrYXNfY3JfZGlnaXRzPScwMTIzNDU2Nzg5JworK2FzX2NyX2FsbnVtPSRh c19jcl9MZXR0ZXJzJGFzX2NyX2RpZ2l0cworKworK2FzX25sPScKKysnCisrZXhwb3J0IGFzX25s CisrIyBQcmludGluZyBhIGxvbmcgc3RyaW5nIGNyYXNoZXMgU29sYXJpcyA3IC91c3IvYmluL3By aW50Zi4KKythc19lY2hvPSdcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxc XFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxc XFxcXFxcJworK2FzX2VjaG89JGFzX2VjaG8kYXNfZWNobyRhc19lY2hvJGFzX2VjaG8kYXNfZWNo bworK2FzX2VjaG89JGFzX2VjaG8kYXNfZWNobyRhc19lY2hvJGFzX2VjaG8kYXNfZWNobyRhc19l Y2hvCisraWYgKHRlc3QgIlhgcHJpbnRmICVzICRhc19lY2hvYCIgPSAiWCRhc19lY2hvIikgMj4v ZGV2L251bGw7IHRoZW4KKysgIGFzX2VjaG89J3ByaW50ZiAlc1xuJworKyAgYXNfZWNob19uPSdw cmludGYgJXMnCisrZWxzZQorKyAgaWYgdGVzdCAiWGAoL3Vzci91Y2IvZWNobyAtbiAtbiAkYXNf ZWNobykgMj4vZGV2L251bGxgIiA9ICJYLW4gJGFzX2VjaG8iOyB0aGVuCisrICAgIGFzX2VjaG9f Ym9keT0nZXZhbCAvdXNyL3VjYi9lY2hvIC1uICIkMSRhc19ubCInCisrICAgIGFzX2VjaG9fbj0n L3Vzci91Y2IvZWNobyAtbicKKysgIGVsc2UKKysgICAgYXNfZWNob19ib2R5PSdldmFsIGV4cHIg IlgkMSIgOiAiWFxcKC4qXFwpIicKKysgICAgYXNfZWNob19uX2JvZHk9J2V2YWwKKysgICAgICBh cmc9JDE7CisrICAgICAgY2FzZSAkYXJnIGluCisrICAgICAgKiIkYXNfbmwiKikKKysJZXhwciAi WCRhcmciIDogIlhcXCguKlxcKSRhc19ubCI7CisrCWFyZz1gZXhwciAiWCRhcmciIDogIi4qJGFz X25sXFwoLipcXCkiYDs7CisrICAgICAgZXNhYzsKKysgICAgICBleHByICJYJGFyZyIgOiAiWFxc KC4qXFwpIiB8IHRyIC1kICIkYXNfbmwiCisrICAgICcKKysgICAgZXhwb3J0IGFzX2VjaG9fbl9i b2R5CisrICAgIGFzX2VjaG9fbj0nc2ggLWMgJGFzX2VjaG9fbl9ib2R5IGFzX2VjaG8nCisrICBm aQorKyAgZXhwb3J0IGFzX2VjaG9fYm9keQorKyAgYXNfZWNobz0nc2ggLWMgJGFzX2VjaG9fYm9k eSBhc19lY2hvJworK2ZpCisrCisrIyBUaGUgdXNlciBpcyBhbHdheXMgcmlnaHQuCisraWYgdGVz dCAiJHtQQVRIX1NFUEFSQVRPUitzZXR9IiAhPSBzZXQ7IHRoZW4KKysgIFBBVEhfU0VQQVJBVE9S PToKKysgIChQQVRIPScvYmluOy9iaW4nOyBGUEFUSD0kUEFUSDsgc2ggLWMgOikgPi9kZXYvbnVs bCAyPiYxICYmIHsKKysgICAgKFBBVEg9Jy9iaW46L2Jpbic7IEZQQVRIPSRQQVRIOyBzaCAtYyA6 KSA+L2Rldi9udWxsIDI+JjEgfHwKKysgICAgICBQQVRIX1NFUEFSQVRPUj0nOycKKysgIH0KKytm aQorKworKyMgU3VwcG9ydCB1bnNldCB3aGVuIHBvc3NpYmxlLgorK2lmICggKE1BSUw9NjA7IHVu c2V0IE1BSUwpIHx8IGV4aXQpID4vZGV2L251bGwgMj4mMTsgdGhlbgorKyAgYXNfdW5zZXQ9dW5z ZXQKKytlbHNlCisrICBhc191bnNldD1mYWxzZQorK2ZpCisrCisrCisrIyBJRlMKKysjIFdlIG5l ZWQgc3BhY2UsIHRhYiBhbmQgbmV3IGxpbmUsIGluIHByZWNpc2VseSB0aGF0IG9yZGVyLiAgUXVv dGluZyBpcworKyMgdGhlcmUgdG8gcHJldmVudCBlZGl0b3JzIGZyb20gY29tcGxhaW5pbmcgYWJv dXQgc3BhY2UtdGFiLgorKyMgKElmIF9BU19QQVRIX1dBTEsgd2VyZSBjYWxsZWQgd2l0aCBJRlMg dW5zZXQsIGl0IHdvdWxkIGRpc2FibGUgd29yZAorKyMgc3BsaXR0aW5nIGJ5IHNldHRpbmcgSUZT IHRvIGVtcHR5IHZhbHVlLikKKytJRlM9IiAiIgkkYXNfbmwiCisrCisrIyBGaW5kIHdobyB3ZSBh cmUuICBMb29rIGluIHRoZSBwYXRoIGlmIHdlIGNvbnRhaW4gbm8gZGlyZWN0b3J5IHNlcGFyYXRv ci4KKytjYXNlICQwIGluCisrICAqW1xcL10qICkgYXNfbXlzZWxmPSQwIDs7CisrICAqKSBhc19z YXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCisrZm9yIGFzX2RpciBpbiAkUEFUSAor K2RvCisrICBJRlM9JGFzX3NhdmVfSUZTCisrICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9 LgorKyAgdGVzdCAtciAiJGFzX2Rpci8kMCIgJiYgYXNfbXlzZWxmPSRhc19kaXIvJDAgJiYgYnJl YWsKKytkb25lCisrSUZTPSRhc19zYXZlX0lGUworKworKyAgICAgOzsKKytlc2FjCisrIyBXZSBk aWQgbm90IGZpbmQgb3Vyc2VsdmVzLCBtb3N0IHByb2JhYmx5IHdlIHdlcmUgcnVuIGFzIGBzaCBD T01NQU5EJworKyMgaW4gd2hpY2ggY2FzZSB3ZSBhcmUgbm90IHRvIGJlIGZvdW5kIGluIHRoZSBw YXRoLgorK2lmIHRlc3QgIngkYXNfbXlzZWxmIiA9IHg7IHRoZW4KKysgIGFzX215c2VsZj0kMAor K2ZpCisraWYgdGVzdCAhIC1mICIkYXNfbXlzZWxmIjsgdGhlbgorKyAgJGFzX2VjaG8gIiRhc19t eXNlbGY6IGVycm9yOiBjYW5ub3QgZmluZCBteXNlbGY7IHJlcnVuIHdpdGggYW4gYWJzb2x1dGUg ZmlsZSBuYW1lIiA+JjIKKysgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfQorK2ZpCisrCisrIyBXb3Jr IGFyb3VuZCBidWdzIGluIHByZS0zLjAgVVdJTiBrc2guCisrZm9yIGFzX3ZhciBpbiBFTlYgTUFJ TCBNQUlMUEFUSAorK2RvICgkYXNfdW5zZXQgJGFzX3ZhcikgPi9kZXYvbnVsbCAyPiYxICYmICRh c191bnNldCAkYXNfdmFyCisrZG9uZQorK1BTMT0nJCAnCisrUFMyPSc+ICcKKytQUzQ9JysgJwor KworKyMgTkxTIG51aXNhbmNlcy4KKytMQ19BTEw9QworK2V4cG9ydCBMQ19BTEwKKytMQU5HVUFH RT1DCisrZXhwb3J0IExBTkdVQUdFCisrCisrIyBSZXF1aXJlZCB0byB1c2UgYmFzZW5hbWUuCisr aWYgZXhwciBhIDogJ1woYVwpJyA+L2Rldi9udWxsIDI+JjEgJiYKKysgICB0ZXN0ICJYYGV4cHIg MDAwMDEgOiAnLipcKC4uLlwpJ2AiID0gWDAwMTsgdGhlbgorKyAgYXNfZXhwcj1leHByCisrZWxz ZQorKyAgYXNfZXhwcj1mYWxzZQorK2ZpCisrCisraWYgKGJhc2VuYW1lIC0tIC8pID4vZGV2L251 bGwgMj4mMSAmJiB0ZXN0ICJYYGJhc2VuYW1lIC0tIC8gMj4mMWAiID0gIlgvIjsgdGhlbgorKyAg YXNfYmFzZW5hbWU9YmFzZW5hbWUKKytlbHNlCisrICBhc19iYXNlbmFtZT1mYWxzZQorK2ZpCisr CisrCisrIyBOYW1lIG9mIHRoZSBleGVjdXRhYmxlLgorK2FzX21lPWAkYXNfYmFzZW5hbWUgLS0g IiQwIiB8fAorKyRhc19leHByIFgvIiQwIiA6ICcuKi9cKFteL11bXi9dKlwpLyokJyBcfCBcCisr CSBYIiQwIiA6ICdYXCgvL1wpJCcgXHwgXAorKwkgWCIkMCIgOiAnWFwoL1wpJyBcfCAuIDI+L2Rl di9udWxsIHx8CisrJGFzX2VjaG8gWC8iJDAiIHwKKysgICAgc2VkICcvXi4qXC9cKFteL11bXi9d KlwpXC8qJC97CisrCSAgICBzLy9cMS8KKysJICAgIHEKKysJICB9CisrCSAgL15YXC9cKFwvXC9c KSQveworKwkgICAgcy8vXDEvCisrCSAgICBxCisrCSAgfQorKwkgIC9eWFwvXChcL1wpLiovewor KwkgICAgcy8vXDEvCisrCSAgICBxCisrCSAgfQorKwkgIHMvLiovLi87IHEnYAorKworKyMgQ0RQ QVRILgorKyRhc191bnNldCBDRFBBVEgKKysKKysKKytpZiB0ZXN0ICJ4JENPTkZJR19TSEVMTCIg PSB4OyB0aGVuCisrICBpZiAoZXZhbCAiOiIpIDI+L2Rldi9udWxsOyB0aGVuCisrICBhc19oYXZl X3JlcXVpcmVkPXllcworK2Vsc2UKKysgIGFzX2hhdmVfcmVxdWlyZWQ9bm8KKytmaQorKworKyAg aWYgdGVzdCAkYXNfaGF2ZV9yZXF1aXJlZCA9IHllcyAmJgkgKGV2YWwgIjoKKysoYXNfZnVuY19y ZXR1cm4gKCkgeworKyAgKGV4aXQgXCQxKQorK30KKythc19mdW5jX3N1Y2Nlc3MgKCkgeworKyAg YXNfZnVuY19yZXR1cm4gMAorK30KKythc19mdW5jX2ZhaWx1cmUgKCkgeworKyAgYXNfZnVuY19y ZXR1cm4gMQorK30KKythc19mdW5jX3JldF9zdWNjZXNzICgpIHsKKysgIHJldHVybiAwCisrfQor K2FzX2Z1bmNfcmV0X2ZhaWx1cmUgKCkgeworKyAgcmV0dXJuIDEKKyt9CisrCisrZXhpdGNvZGU9 MAorK2lmIGFzX2Z1bmNfc3VjY2VzczsgdGhlbgorKyAgOgorK2Vsc2UKKysgIGV4aXRjb2RlPTEK KysgIGVjaG8gYXNfZnVuY19zdWNjZXNzIGZhaWxlZC4KKytmaQorKworK2lmIGFzX2Z1bmNfZmFp bHVyZTsgdGhlbgorKyAgZXhpdGNvZGU9MQorKyAgZWNobyBhc19mdW5jX2ZhaWx1cmUgc3VjY2Vl ZGVkLgorK2ZpCisrCisraWYgYXNfZnVuY19yZXRfc3VjY2VzczsgdGhlbgorKyAgOgorK2Vsc2UK KysgIGV4aXRjb2RlPTEKKysgIGVjaG8gYXNfZnVuY19yZXRfc3VjY2VzcyBmYWlsZWQuCisrZmkK KysKKytpZiBhc19mdW5jX3JldF9mYWlsdXJlOyB0aGVuCisrICBleGl0Y29kZT0xCisrICBlY2hv IGFzX2Z1bmNfcmV0X2ZhaWx1cmUgc3VjY2VlZGVkLgorK2ZpCisrCisraWYgKCBzZXQgeDsgYXNf ZnVuY19yZXRfc3VjY2VzcyB5ICYmIHRlc3QgeCA9IFwiXCQxXCIgKTsgdGhlbgorKyAgOgorK2Vs c2UKKysgIGV4aXRjb2RlPTEKKysgIGVjaG8gcG9zaXRpb25hbCBwYXJhbWV0ZXJzIHdlcmUgbm90 IHNhdmVkLgorK2ZpCisrCisrdGVzdCBcJGV4aXRjb2RlID0gMCkgfHwgeyAoZXhpdCAxKTsgZXhp dCAxOyB9CisrCisrKAorKyAgYXNfbGluZW5vXzE9XCRMSU5FTk8KKysgIGFzX2xpbmVub18yPVwk TElORU5PCisrICB0ZXN0IFwieFwkYXNfbGluZW5vXzFcIiAhPSBcInhcJGFzX2xpbmVub18yXCIg JiYKKysgIHRlc3QgXCJ4XGBleHByIFwkYXNfbGluZW5vXzEgKyAxXGBcIiA9IFwieFwkYXNfbGlu ZW5vXzJcIikgfHwgeyAoZXhpdCAxKTsgZXhpdCAxOyB9CisrIikgMj4gL2Rldi9udWxsOyB0aGVu CisrICA6CisrZWxzZQorKyAgYXNfY2FuZGlkYXRlX3NoZWxscz0KKysgICAgYXNfc2F2ZV9JRlM9 JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgorK2ZvciBhc19kaXIgaW4gL2JpbiRQQVRIX1NFUEFS QVRPUi91c3IvYmluJFBBVEhfU0VQQVJBVE9SJFBBVEgKKytkbworKyAgSUZTPSRhc19zYXZlX0lG UworKyAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KKysgIGNhc2UgJGFzX2RpciBpbgor KwkgLyopCisrCSAgIGZvciBhc19iYXNlIGluIHNoIGJhc2gga3NoIHNoNTsgZG8KKysJICAgICBh c19jYW5kaWRhdGVfc2hlbGxzPSIkYXNfY2FuZGlkYXRlX3NoZWxscyAkYXNfZGlyLyRhc19iYXNl IgorKwkgICBkb25lOzsKKysgICAgICAgZXNhYworK2RvbmUKKytJRlM9JGFzX3NhdmVfSUZTCisr CisrCisrICAgICAgZm9yIGFzX3NoZWxsIGluICRhc19jYW5kaWRhdGVfc2hlbGxzICRTSEVMTDsg ZG8KKysJICMgVHJ5IG9ubHkgc2hlbGxzIHRoYXQgZXhpc3QsIHRvIHNhdmUgc2V2ZXJhbCBmb3Jr cy4KKysJIGlmIHsgdGVzdCAtZiAiJGFzX3NoZWxsIiB8fCB0ZXN0IC1mICIkYXNfc2hlbGwuZXhl IjsgfSAmJgorKwkJeyAoIiRhc19zaGVsbCIpIDI+IC9kZXYvbnVsbCA8PFxfQVNFT0YKKytpZiB0 ZXN0IC1uICIke1pTSF9WRVJTSU9OK3NldH0iICYmIChlbXVsYXRlIHNoKSA+L2Rldi9udWxsIDI+ JjE7IHRoZW4KKysgIGVtdWxhdGUgc2gKKysgIE5VTExDTUQ9OgorKyAgIyBQcmUtNC4yIHZlcnNp b25zIG9mIFpzaCBkbyB3b3JkIHNwbGl0dGluZyBvbiAkezErIiRAIn0sIHdoaWNoCisrICAjIGlz IGNvbnRyYXJ5IHRvIG91ciB1c2FnZS4gIERpc2FibGUgdGhpcyBmZWF0dXJlLgorKyAgYWxpYXMg LWcgJyR7MSsiJEAifSc9JyIkQCInCisrICBzZXRvcHQgTk9fR0xPQl9TVUJTVAorK2Vsc2UKKysg IGNhc2UgYChzZXQgLW8pIDI+L2Rldi9udWxsYCBpbgorKyAgKnBvc2l4Kikgc2V0IC1vIHBvc2l4 IDs7CisrZXNhYworKworK2ZpCisrCisrCisrOgorK19BU0VPRgorK307IHRoZW4KKysgIENPTkZJ R19TSEVMTD0kYXNfc2hlbGwKKysJICAgICAgIGFzX2hhdmVfcmVxdWlyZWQ9eWVzCisrCSAgICAg ICBpZiB7ICIkYXNfc2hlbGwiIDI+IC9kZXYvbnVsbCA8PFxfQVNFT0YKKytpZiB0ZXN0IC1uICIk e1pTSF9WRVJTSU9OK3NldH0iICYmIChlbXVsYXRlIHNoKSA+L2Rldi9udWxsIDI+JjE7IHRoZW4K KysgIGVtdWxhdGUgc2gKKysgIE5VTExDTUQ9OgorKyAgIyBQcmUtNC4yIHZlcnNpb25zIG9mIFpz aCBkbyB3b3JkIHNwbGl0dGluZyBvbiAkezErIiRAIn0sIHdoaWNoCisrICAjIGlzIGNvbnRyYXJ5 IHRvIG91ciB1c2FnZS4gIERpc2FibGUgdGhpcyBmZWF0dXJlLgorKyAgYWxpYXMgLWcgJyR7MSsi JEAifSc9JyIkQCInCisrICBzZXRvcHQgTk9fR0xPQl9TVUJTVAorK2Vsc2UKKysgIGNhc2UgYChz ZXQgLW8pIDI+L2Rldi9udWxsYCBpbgorKyAgKnBvc2l4Kikgc2V0IC1vIHBvc2l4IDs7CisrZXNh YworKworK2ZpCisrCisrCisrOgorKyhhc19mdW5jX3JldHVybiAoKSB7CisrICAoZXhpdCAkMSkK Kyt9CisrYXNfZnVuY19zdWNjZXNzICgpIHsKKysgIGFzX2Z1bmNfcmV0dXJuIDAKKyt9CisrYXNf ZnVuY19mYWlsdXJlICgpIHsKKysgIGFzX2Z1bmNfcmV0dXJuIDEKKyt9CisrYXNfZnVuY19yZXRf c3VjY2VzcyAoKSB7CisrICByZXR1cm4gMAorK30KKythc19mdW5jX3JldF9mYWlsdXJlICgpIHsK KysgIHJldHVybiAxCisrfQorKworK2V4aXRjb2RlPTAKKytpZiBhc19mdW5jX3N1Y2Nlc3M7IHRo ZW4KKysgIDoKKytlbHNlCisrICBleGl0Y29kZT0xCisrICBlY2hvIGFzX2Z1bmNfc3VjY2VzcyBm YWlsZWQuCisrZmkKKysKKytpZiBhc19mdW5jX2ZhaWx1cmU7IHRoZW4KKysgIGV4aXRjb2RlPTEK KysgIGVjaG8gYXNfZnVuY19mYWlsdXJlIHN1Y2NlZWRlZC4KKytmaQorKworK2lmIGFzX2Z1bmNf cmV0X3N1Y2Nlc3M7IHRoZW4KKysgIDoKKytlbHNlCisrICBleGl0Y29kZT0xCisrICBlY2hvIGFz X2Z1bmNfcmV0X3N1Y2Nlc3MgZmFpbGVkLgorK2ZpCisrCisraWYgYXNfZnVuY19yZXRfZmFpbHVy ZTsgdGhlbgorKyAgZXhpdGNvZGU9MQorKyAgZWNobyBhc19mdW5jX3JldF9mYWlsdXJlIHN1Y2Nl ZWRlZC4KKytmaQorKworK2lmICggc2V0IHg7IGFzX2Z1bmNfcmV0X3N1Y2Nlc3MgeSAmJiB0ZXN0 IHggPSAiJDEiICk7IHRoZW4KKysgIDoKKytlbHNlCisrICBleGl0Y29kZT0xCisrICBlY2hvIHBv c2l0aW9uYWwgcGFyYW1ldGVycyB3ZXJlIG5vdCBzYXZlZC4KKytmaQorKworK3Rlc3QgJGV4aXRj b2RlID0gMCkgfHwgeyAoZXhpdCAxKTsgZXhpdCAxOyB9CisrCisrKAorKyAgYXNfbGluZW5vXzE9 JExJTkVOTworKyAgYXNfbGluZW5vXzI9JExJTkVOTworKyAgdGVzdCAieCRhc19saW5lbm9fMSIg IT0gIngkYXNfbGluZW5vXzIiICYmCisrICB0ZXN0ICJ4YGV4cHIgJGFzX2xpbmVub18xICsgMWAi ID0gIngkYXNfbGluZW5vXzIiKSB8fCB7IChleGl0IDEpOyBleGl0IDE7IH0KKysKKytfQVNFT0YK Kyt9OyB0aGVuCisrICBicmVhaworK2ZpCisrCisrZmkKKysKKysgICAgICBkb25lCisrCisrICAg ICAgaWYgdGVzdCAieCRDT05GSUdfU0hFTEwiICE9IHg7IHRoZW4KKysgIGZvciBhc192YXIgaW4g QkFTSF9FTlYgRU5WCisrCWRvICgkYXNfdW5zZXQgJGFzX3ZhcikgPi9kZXYvbnVsbCAyPiYxICYm ICRhc191bnNldCAkYXNfdmFyCisrCWRvbmUKKysJZXhwb3J0IENPTkZJR19TSEVMTAorKwlleGVj ICIkQ09ORklHX1NIRUxMIiAiJGFzX215c2VsZiIgJHsxKyIkQCJ9CisrZmkKKysKKysKKysgICAg aWYgdGVzdCAkYXNfaGF2ZV9yZXF1aXJlZCA9IG5vOyB0aGVuCisrICBlY2hvIFRoaXMgc2NyaXB0 IHJlcXVpcmVzIGEgc2hlbGwgbW9yZSBtb2Rlcm4gdGhhbiBhbGwgdGhlCisrICAgICAgZWNobyBz aGVsbHMgdGhhdCBJIGZvdW5kIG9uIHlvdXIgc3lzdGVtLiAgUGxlYXNlIGluc3RhbGwgYQorKyAg ICAgIGVjaG8gbW9kZXJuIHNoZWxsLCBvciBtYW51YWxseSBydW4gdGhlIHNjcmlwdCB1bmRlciBz dWNoIGEKKysgICAgICBlY2hvIHNoZWxsIGlmIHlvdSBkbyBoYXZlIG9uZS4KKysgICAgICB7IChl eGl0IDEpOyBleGl0IDE7IH0KKytmaQorKworKworK2ZpCisrCisrZmkKKysKKysKKysKKysoZXZh bCAiYXNfZnVuY19yZXR1cm4gKCkgeworKyAgKGV4aXQgXCQxKQorK30KKythc19mdW5jX3N1Y2Nl c3MgKCkgeworKyAgYXNfZnVuY19yZXR1cm4gMAorK30KKythc19mdW5jX2ZhaWx1cmUgKCkgewor KyAgYXNfZnVuY19yZXR1cm4gMQorK30KKythc19mdW5jX3JldF9zdWNjZXNzICgpIHsKKysgIHJl dHVybiAwCisrfQorK2FzX2Z1bmNfcmV0X2ZhaWx1cmUgKCkgeworKyAgcmV0dXJuIDEKKyt9Cisr CisrZXhpdGNvZGU9MAorK2lmIGFzX2Z1bmNfc3VjY2VzczsgdGhlbgorKyAgOgorK2Vsc2UKKysg IGV4aXRjb2RlPTEKKysgIGVjaG8gYXNfZnVuY19zdWNjZXNzIGZhaWxlZC4KKytmaQorKworK2lm IGFzX2Z1bmNfZmFpbHVyZTsgdGhlbgorKyAgZXhpdGNvZGU9MQorKyAgZWNobyBhc19mdW5jX2Zh aWx1cmUgc3VjY2VlZGVkLgorK2ZpCisrCisraWYgYXNfZnVuY19yZXRfc3VjY2VzczsgdGhlbgor KyAgOgorK2Vsc2UKKysgIGV4aXRjb2RlPTEKKysgIGVjaG8gYXNfZnVuY19yZXRfc3VjY2VzcyBm YWlsZWQuCisrZmkKKysKKytpZiBhc19mdW5jX3JldF9mYWlsdXJlOyB0aGVuCisrICBleGl0Y29k ZT0xCisrICBlY2hvIGFzX2Z1bmNfcmV0X2ZhaWx1cmUgc3VjY2VlZGVkLgorK2ZpCisrCisraWYg KCBzZXQgeDsgYXNfZnVuY19yZXRfc3VjY2VzcyB5ICYmIHRlc3QgeCA9IFwiXCQxXCIgKTsgdGhl bgorKyAgOgorK2Vsc2UKKysgIGV4aXRjb2RlPTEKKysgIGVjaG8gcG9zaXRpb25hbCBwYXJhbWV0 ZXJzIHdlcmUgbm90IHNhdmVkLgorK2ZpCisrCisrdGVzdCBcJGV4aXRjb2RlID0gMCIpIHx8IHsK KysgIGVjaG8gTm8gc2hlbGwgZm91bmQgdGhhdCBzdXBwb3J0cyBzaGVsbCBmdW5jdGlvbnMuCisr ICBlY2hvIFBsZWFzZSB0ZWxsIGJ1Zy1hdXRvY29uZkBnbnUub3JnIGFib3V0IHlvdXIgc3lzdGVt LAorKyAgZWNobyBpbmNsdWRpbmcgYW55IGVycm9yIHBvc3NpYmx5IG91dHB1dCBiZWZvcmUgdGhp cyBtZXNzYWdlLgorKyAgZWNobyBUaGlzIGNhbiBoZWxwIHVzIGltcHJvdmUgZnV0dXJlIGF1dG9j b25mIHZlcnNpb25zLgorKyAgZWNobyBDb25maWd1cmF0aW9uIHdpbGwgbm93IHByb2NlZWQgd2l0 aG91dCBzaGVsbCBmdW5jdGlvbnMuCisrfQorKworKworKworKyAgYXNfbGluZW5vXzE9JExJTkVO TworKyAgYXNfbGluZW5vXzI9JExJTkVOTworKyAgdGVzdCAieCRhc19saW5lbm9fMSIgIT0gIngk YXNfbGluZW5vXzIiICYmCisrICB0ZXN0ICJ4YGV4cHIgJGFzX2xpbmVub18xICsgMWAiID0gIngk YXNfbGluZW5vXzIiIHx8IHsKKysKKysgICMgQ3JlYXRlICRhc19tZS5saW5lbm8gYXMgYSBjb3B5 IG9mICRhc19teXNlbGYsIGJ1dCB3aXRoICRMSU5FTk8KKysgICMgdW5pZm9ybWx5IHJlcGxhY2Vk IGJ5IHRoZSBsaW5lIG51bWJlci4gIFRoZSBmaXJzdCAnc2VkJyBpbnNlcnRzIGEKKysgICMgbGlu ZS1udW1iZXIgbGluZSBhZnRlciBlYWNoIGxpbmUgdXNpbmcgJExJTkVOTzsgdGhlIHNlY29uZCAn c2VkJworKyAgIyBkb2VzIHRoZSByZWFsIHdvcmsuICBUaGUgc2Vjb25kIHNjcmlwdCB1c2VzICdO JyB0byBwYWlyIGVhY2gKKysgICMgbGluZS1udW1iZXIgbGluZSB3aXRoIHRoZSBsaW5lIGNvbnRh aW5pbmcgJExJTkVOTywgYW5kIGFwcGVuZHMKKysgICMgdHJhaWxpbmcgJy0nIGR1cmluZyBzdWJz dGl0dXRpb24gc28gdGhhdCAkTElORU5PIGlzIG5vdCBhIHNwZWNpYWwKKysgICMgY2FzZSBhdCBs aW5lIGVuZC4KKysgICMgKFJhamEgUiBIYXJpbmF0aCBzdWdnZXN0ZWQgc2VkICc9JywgYW5kIFBh dWwgRWdnZXJ0IHdyb3RlIHRoZQorKyAgIyBzY3JpcHRzIHdpdGggb3B0aW1pemF0aW9uIGhlbHAg ZnJvbSBQYW9sbyBCb256aW5pLiAgQmxhbWUgTGVlCisrICAjIEUuIE1jTWFob24gKDE5MzEtMTk4 OSkgZm9yIHNlZCdzIHN5bnRheC4gIDotKQorKyAgc2VkIC1uICcKKysgICAgcAorKyAgICAvWyRd TElORU5PLz0KKysgICcgPCRhc19teXNlbGYgfAorKyAgICBzZWQgJworKyAgICAgIHMvWyRdTElO RU5PLiovJi0vCisrICAgICAgdCBsaW5lbm8KKysgICAgICBiCisrICAgICAgOmxpbmVubworKyAg ICAgIE4KKysgICAgICA6bG9vcAorKyAgICAgIHMvWyRdTElORU5PXChbXickYXNfY3JfYWxudW0n X10uKlxuXClcKC4qXCkvXDJcMVwyLworKyAgICAgIHQgbG9vcAorKyAgICAgIHMvLVxuLiovLwor KyAgICAnID4kYXNfbWUubGluZW5vICYmCisrICBjaG1vZCAreCAiJGFzX21lLmxpbmVubyIgfHwK KysgICAgeyAkYXNfZWNobyAiJGFzX21lOiBlcnJvcjogY2Fubm90IGNyZWF0ZSAkYXNfbWUubGlu ZW5vOyByZXJ1biB3aXRoIGEgUE9TSVggc2hlbGwiID4mMgorKyAgIHsgKGV4aXQgMSk7IGV4aXQg MTsgfTsgfQorKworKyAgIyBEb24ndCB0cnkgdG8gZXhlYyBhcyBpdCBjaGFuZ2VzICRbMF0sIGNh dXNpbmcgYWxsIHNvcnQgb2YgcHJvYmxlbXMKKysgICMgKHRoZSBkaXJuYW1lIG9mICRbMF0gaXMg bm90IHRoZSBwbGFjZSB3aGVyZSB3ZSBtaWdodCBmaW5kIHRoZQorKyAgIyBvcmlnaW5hbCBhbmQg c28gb24uICBBdXRvY29uZiBpcyBlc3BlY2lhbGx5IHNlbnNpdGl2ZSB0byB0aGlzKS4KKysgIC4g Ii4vJGFzX21lLmxpbmVubyIKKysgICMgRXhpdCBzdGF0dXMgaXMgdGhhdCBvZiB0aGUgbGFzdCBj b21tYW5kLgorKyAgZXhpdAorK30KKysKKysKKytpZiAoYXNfZGlyPWBkaXJuYW1lIC0tIC9gICYm IHRlc3QgIlgkYXNfZGlyIiA9IFgvKSA+L2Rldi9udWxsIDI+JjE7IHRoZW4KKysgIGFzX2Rpcm5h bWU9ZGlybmFtZQorK2Vsc2UKKysgIGFzX2Rpcm5hbWU9ZmFsc2UKKytmaQorKworK0VDSE9fQz0g RUNIT19OPSBFQ0hPX1Q9CisrY2FzZSBgZWNobyAtbiB4YCBpbgorKy1uKikKKysgIGNhc2UgYGVj aG8gJ3hcYydgIGluCisrICAqYyopIEVDSE9fVD0nCSc7OwkjIEVDSE9fVCBpcyBzaW5nbGUgdGFi IGNoYXJhY3Rlci4KKysgICopICAgRUNIT19DPSdcYyc7OworKyAgZXNhYzs7CisrKikKKysgIEVD SE9fTj0nLW4nOzsKKytlc2FjCisraWYgZXhwciBhIDogJ1woYVwpJyA+L2Rldi9udWxsIDI+JjEg JiYKKysgICB0ZXN0ICJYYGV4cHIgMDAwMDEgOiAnLipcKC4uLlwpJ2AiID0gWDAwMTsgdGhlbgor KyAgYXNfZXhwcj1leHByCisrZWxzZQorKyAgYXNfZXhwcj1mYWxzZQorK2ZpCisrCisrcm0gLWYg Y29uZiQkIGNvbmYkJC5leGUgY29uZiQkLmZpbGUKKytpZiB0ZXN0IC1kIGNvbmYkJC5kaXI7IHRo ZW4KKysgIHJtIC1mIGNvbmYkJC5kaXIvY29uZiQkLmZpbGUKKytlbHNlCisrICBybSAtZiBjb25m JCQuZGlyCisrICBta2RpciBjb25mJCQuZGlyIDI+L2Rldi9udWxsCisrZmkKKytpZiAoZWNobyA+ Y29uZiQkLmZpbGUpIDI+L2Rldi9udWxsOyB0aGVuCisrICBpZiBsbiAtcyBjb25mJCQuZmlsZSBj b25mJCQgMj4vZGV2L251bGw7IHRoZW4KKysgICAgYXNfbG5fcz0nbG4gLXMnCisrICAgICMgLi4u IGJ1dCB0aGVyZSBhcmUgdHdvIGdvdGNoYXM6CisrICAgICMgMSkgT24gTVNZUywgYm90aCBgbG4g LXMgZmlsZSBkaXInIGFuZCBgbG4gZmlsZSBkaXInIGZhaWwuCisrICAgICMgMikgREpHUFAgPCAy LjA0IGhhcyBubyBzeW1saW5rczsgYGxuIC1zJyBjcmVhdGVzIGEgd3JhcHBlciBleGVjdXRhYmxl LgorKyAgICAjIEluIGJvdGggY2FzZXMsIHdlIGhhdmUgdG8gZGVmYXVsdCB0byBgY3AgLXAnLgor KyAgICBsbiAtcyBjb25mJCQuZmlsZSBjb25mJCQuZGlyIDI+L2Rldi9udWxsICYmIHRlc3QgISAt ZiBjb25mJCQuZXhlIHx8CisrICAgICAgYXNfbG5fcz0nY3AgLXAnCisrICBlbGlmIGxuIGNvbmYk JC5maWxlIGNvbmYkJCAyPi9kZXYvbnVsbDsgdGhlbgorKyAgICBhc19sbl9zPWxuCisrICBlbHNl CisrICAgIGFzX2xuX3M9J2NwIC1wJworKyAgZmkKKytlbHNlCisrICBhc19sbl9zPSdjcCAtcCcK KytmaQorK3JtIC1mIGNvbmYkJCBjb25mJCQuZXhlIGNvbmYkJC5kaXIvY29uZiQkLmZpbGUgY29u ZiQkLmZpbGUKKytybWRpciBjb25mJCQuZGlyIDI+L2Rldi9udWxsCisrCisraWYgbWtkaXIgLXAg LiAyPi9kZXYvbnVsbDsgdGhlbgorKyAgYXNfbWtkaXJfcD06CisrZWxzZQorKyAgdGVzdCAtZCAu Ly1wICYmIHJtZGlyIC4vLXAKKysgIGFzX21rZGlyX3A9ZmFsc2UKKytmaQorKworK2lmIHRlc3Qg LXggLyA+L2Rldi9udWxsIDI+JjE7IHRoZW4KKysgIGFzX3Rlc3RfeD0ndGVzdCAteCcKKytlbHNl CisrICBpZiBscyAtZEwgLyA+L2Rldi9udWxsIDI+JjE7IHRoZW4KKysgICAgYXNfbHNfTF9vcHRp b249TAorKyAgZWxzZQorKyAgICBhc19sc19MX29wdGlvbj0KKysgIGZpCisrICBhc190ZXN0X3g9 JworKyAgICBldmFsIHNoIC1jICdcJycKKysgICAgICBpZiB0ZXN0IC1kICIkMSI7IHRoZW4KKysJ dGVzdCAtZCAiJDEvLiI7CisrICAgICAgZWxzZQorKwljYXNlICQxIGluCisrCS0qKXNldCAiLi8k MSI7OworKwllc2FjOworKwljYXNlIGBscyAtbGQnJGFzX2xzX0xfb3B0aW9uJyAiJDEiIDI+L2Rl di9udWxsYCBpbgorKwk/Pz9bc3hdKik6OzsqKWZhbHNlOztlc2FjO2ZpCisrICAgICdcJycgc2gK KysgICcKKytmaQorK2FzX2V4ZWN1dGFibGVfcD0kYXNfdGVzdF94CisrCisrIyBTZWQgZXhwcmVz c2lvbiB0byBtYXAgYSBzdHJpbmcgb250byBhIHZhbGlkIENQUCBuYW1lLgorK2FzX3RyX2NwcD0i ZXZhbCBzZWQgJ3klKiRhc19jcl9sZXR0ZXJzJVAkYXNfY3JfTEVUVEVSUyU7cyVbXl8kYXNfY3Jf YWxudW1dJV8lZyciCisrCisrIyBTZWQgZXhwcmVzc2lvbiB0byBtYXAgYSBzdHJpbmcgb250byBh IHZhbGlkIHZhcmlhYmxlIG5hbWUuCisrYXNfdHJfc2g9ImV2YWwgc2VkICd5JSorJXBwJTtzJVte XyRhc19jcl9hbG51bV0lXyVnJyIKKysKKysKKysKKysKKysjIENoZWNrIHRoYXQgd2UgYXJlIHJ1 bm5pbmcgdW5kZXIgdGhlIGNvcnJlY3Qgc2hlbGwuCisrU0hFTEw9JHtDT05GSUdfU0hFTEwtL2Jp bi9zaH0KKysKKytjYXNlIFgkbHRfRUNITyBpbgorK1gqLS1mYWxsYmFjay1lY2hvKQorKyAgIyBS ZW1vdmUgb25lIGxldmVsIG9mIHF1b3RhdGlvbiAod2hpY2ggd2FzIHJlcXVpcmVkIGZvciBNYWtl KS4KKysgIEVDSE89YGVjaG8gIiRsdF9FQ0hPIiB8IHNlZCAncyxcXFxcXCRcXCQwLCckMCcsJ2AK KysgIDs7CisrZXNhYworKworK0VDSE89JHtsdF9FQ0hPLWVjaG99CisraWYgdGVzdCAiWCQxIiA9 IFgtLW5vLXJlZXhlYzsgdGhlbgorKyAgIyBEaXNjYXJkIHRoZSAtLW5vLXJlZXhlYyBmbGFnLCBh bmQgY29udGludWUuCisrICBzaGlmdAorK2VsaWYgdGVzdCAiWCQxIiA9IFgtLWZhbGxiYWNrLWVj aG87IHRoZW4KKysgICMgQXZvaWQgaW5saW5lIGRvY3VtZW50IGhlcmUsIGl0IG1heSBiZSBsZWZ0 IG92ZXIKKysgIDoKKytlbGlmIHRlc3QgIlhgeyAkRUNITyAnXHQnOyB9IDI+L2Rldi9udWxsYCIg PSAnWFx0JyA7IHRoZW4KKysgICMgWWlwcGVlLCAkRUNITyB3b3JrcyEKKysgIDoKKytlbHNlCisr ICAjIFJlc3RhcnQgdW5kZXIgdGhlIGNvcnJlY3Qgc2hlbGwuCisrICBleGVjICRTSEVMTCAiJDAi IC0tbm8tcmVleGVjICR7MSsiJEAifQorK2ZpCisrCisraWYgdGVzdCAiWCQxIiA9IFgtLWZhbGxi YWNrLWVjaG87IHRoZW4KKysgICMgdXNlZCBhcyBmYWxsYmFjayBlY2hvCisrICBzaGlmdAorKyAg Y2F0IDw8X0xUX0VPRgorKyQqCisrX0xUX0VPRgorKyAgZXhpdCAwCisgZmkKKyAKKy1ta2RpciAt cCBidWlsZC91bml4L2xvY2FsCistcGF0aD0iYnVpbGQvdW5peC9sb2NhbC9wYXJhbWV0ZXJzIgor LXJtIC1mICRwYXRoCistdG91Y2ggJHBhdGgKKy1mb3IgcGFyYW0gaW4gJCoKKy1kbworLSAgICAg ICAgZWNobyAkcGFyYW0gPj4gJHBhdGgKKy1kb25lCistCistcHJpbnRmICdUcnlpbmcgdG8gZmlu ZCB0aGUgVGNsIGludGVycHJldGVyLi4uICcKKy10Y2xfZm91bmQ9MAorLQorLWZvciBwYXRoIGlu ICIvdXNyL2Jpbi90Y2xzaCIgXAorLSAgICAgICAgICAgICIvdXNyL2xvY2FsL2Jpbi90Y2xzaDgu NSIgXAorLSAgICAgICAgICAgICIvdXNyL2xvY2FsL2Jpbi90Y2xzaDguNCIgXAorLSAgICAgICAg ICAgICIvdXNyL2xvY2FsL2Jpbi90Y2xzaDguMyI7IGRvCistICAgIGlmIFsgLXggJHBhdGggXQor LSAgICB0aGVuCistICAgICAgICBlY2hvICRwYXRoID4gYnVpbGQvdW5peC9sb2NhbC90Y2wKKy0g ICAgICAgIGVjaG8gJHBhdGgKKy0gICAgICAgIHRjbF9mb3VuZD0xCisrIyBUaGUgSFAtVVgga3No IGFuZCBQT1NJWCBzaGVsbCBwcmludCB0aGUgdGFyZ2V0IGRpcmVjdG9yeSB0byBzdGRvdXQKKysj IGlmIENEUEFUSCBpcyBzZXQuCisrKHVuc2V0IENEUEFUSCkgPi9kZXYvbnVsbCAyPiYxICYmIHVu c2V0IENEUEFUSAorKworK2lmIHRlc3QgLXogIiRsdF9FQ0hPIjsgdGhlbgorKyAgaWYgdGVzdCAi WCR7ZWNob190ZXN0X3N0cmluZytzZXR9IiAhPSBYc2V0OyB0aGVuCisrICAgICMgZmluZCBhIHN0 cmluZyBhcyBsYXJnZSBhcyBwb3NzaWJsZSwgYXMgbG9uZyBhcyB0aGUgc2hlbGwgY2FuIGNvcGUg d2l0aCBpdAorKyAgICBmb3IgY21kIGluICdzZWQgNTBxICIkMCInICdzZWQgMjBxICIkMCInICdz ZWQgMTBxICIkMCInICdzZWQgMnEgIiQwIicgJ2VjaG8gdGVzdCc7IGRvCisrICAgICAgIyBleHBl Y3RlZCBzaXplczogbGVzcyB0aGFuIDJLYiwgMUtiLCA1MTIgYnl0ZXMsIDE2IGJ5dGVzLCAuLi4K KysgICAgICBpZiB7IGVjaG9fdGVzdF9zdHJpbmc9YGV2YWwgJGNtZGA7IH0gMj4vZGV2L251bGwg JiYKKysJIHsgdGVzdCAiWCRlY2hvX3Rlc3Rfc3RyaW5nIiA9ICJYJGVjaG9fdGVzdF9zdHJpbmci OyB9IDI+L2Rldi9udWxsCisrICAgICAgdGhlbgorKyAgICAgICAgYnJlYWsKKysgICAgICBmaQor KyAgICBkb25lCisrICBmaQorKworKyAgaWYgdGVzdCAiWGB7ICRFQ0hPICdcdCc7IH0gMj4vZGV2 L251bGxgIiA9ICdYXHQnICYmCisrICAgICBlY2hvX3Rlc3Rpbmdfc3RyaW5nPWB7ICRFQ0hPICIk ZWNob190ZXN0X3N0cmluZyI7IH0gMj4vZGV2L251bGxgICYmCisrICAgICB0ZXN0ICJYJGVjaG9f dGVzdGluZ19zdHJpbmciID0gIlgkZWNob190ZXN0X3N0cmluZyI7IHRoZW4KKysgICAgOgorKyAg ZWxzZQorKyAgICAjIFRoZSBTb2xhcmlzLCBBSVgsIGFuZCBEaWdpdGFsIFVuaXggZGVmYXVsdCBl Y2hvIHByb2dyYW1zIHVucXVvdGUKKysgICAgIyBiYWNrc2xhc2hlcy4gIFRoaXMgbWFrZXMgaXQg aW1wb3NzaWJsZSB0byBxdW90ZSBiYWNrc2xhc2hlcyB1c2luZworKyAgICAjICAgZWNobyAiJHNv bWV0aGluZyIgfCBzZWQgJ3MvXFwvXFxcXC9nJworKyAgICAjCisrICAgICMgU28sIGZpcnN0IHdl IGxvb2sgZm9yIGEgd29ya2luZyBlY2hvIGluIHRoZSB1c2VyJ3MgUEFUSC4KKysKKysgICAgbHRf c2F2ZV9pZnM9IiRJRlMiOyBJRlM9JFBBVEhfU0VQQVJBVE9SCisrICAgIGZvciBkaXIgaW4gJFBB VEggL3Vzci91Y2I7IGRvCisrICAgICAgSUZTPSIkbHRfc2F2ZV9pZnMiCisrICAgICAgaWYgKHRl c3QgLWYgJGRpci9lY2hvIHx8IHRlc3QgLWYgJGRpci9lY2hvJGFjX2V4ZWV4dCkgJiYKKysgICAg ICAgICB0ZXN0ICJYYCgkZGlyL2VjaG8gJ1x0JykgMj4vZGV2L251bGxgIiA9ICdYXHQnICYmCisr ICAgICAgICAgZWNob190ZXN0aW5nX3N0cmluZz1gKCRkaXIvZWNobyAiJGVjaG9fdGVzdF9zdHJp bmciKSAyPi9kZXYvbnVsbGAgJiYKKysgICAgICAgICB0ZXN0ICJYJGVjaG9fdGVzdGluZ19zdHJp bmciID0gIlgkZWNob190ZXN0X3N0cmluZyI7IHRoZW4KKysgICAgICAgIEVDSE89IiRkaXIvZWNo byIKKyAgICAgICAgIGJyZWFrCisrICAgICAgZmkKKysgICAgZG9uZQorKyAgICBJRlM9IiRsdF9z YXZlX2lmcyIKKysKKysgICAgaWYgdGVzdCAiWCRFQ0hPIiA9IFhlY2hvOyB0aGVuCisrICAgICAg IyBXZSBkaWRuJ3QgZmluZCBhIGJldHRlciBlY2hvLCBzbyBsb29rIGZvciBhbHRlcm5hdGl2ZXMu CisrICAgICAgaWYgdGVzdCAiWGB7IHByaW50IC1yICdcdCc7IH0gMj4vZGV2L251bGxgIiA9ICdY XHQnICYmCisrICAgICAgICAgZWNob190ZXN0aW5nX3N0cmluZz1geyBwcmludCAtciAiJGVjaG9f dGVzdF9zdHJpbmciOyB9IDI+L2Rldi9udWxsYCAmJgorKyAgICAgICAgIHRlc3QgIlgkZWNob190 ZXN0aW5nX3N0cmluZyIgPSAiWCRlY2hvX3Rlc3Rfc3RyaW5nIjsgdGhlbgorKyAgICAgICAgIyBU aGlzIHNoZWxsIGhhcyBhIGJ1aWx0aW4gcHJpbnQgLXIgdGhhdCBkb2VzIHRoZSB0cmljay4KKysg ICAgICAgIEVDSE89J3ByaW50IC1yJworKyAgICAgIGVsaWYgeyB0ZXN0IC1mIC9iaW4va3NoIHx8 IHRlc3QgLWYgL2Jpbi9rc2gkYWNfZXhlZXh0OyB9ICYmCisrCSAgIHRlc3QgIlgkQ09ORklHX1NI RUxMIiAhPSBYL2Jpbi9rc2g7IHRoZW4KKysgICAgICAgICMgSWYgd2UgaGF2ZSBrc2gsIHRyeSBy dW5uaW5nIGNvbmZpZ3VyZSBhZ2FpbiB3aXRoIGl0LgorKyAgICAgICAgT1JJR0lOQUxfQ09ORklH X1NIRUxMPSR7Q09ORklHX1NIRUxMLS9iaW4vc2h9CisrICAgICAgICBleHBvcnQgT1JJR0lOQUxf Q09ORklHX1NIRUxMCisrICAgICAgICBDT05GSUdfU0hFTEw9L2Jpbi9rc2gKKysgICAgICAgIGV4 cG9ydCBDT05GSUdfU0hFTEwKKysgICAgICAgIGV4ZWMgJENPTkZJR19TSEVMTCAiJDAiIC0tbm8t cmVleGVjICR7MSsiJEAifQorKyAgICAgIGVsc2UKKysgICAgICAgICMgVHJ5IHVzaW5nIHByaW50 Zi4KKysgICAgICAgIEVDSE89J3ByaW50ZiAlc1xuJworKyAgICAgICAgaWYgdGVzdCAiWGB7ICRF Q0hPICdcdCc7IH0gMj4vZGV2L251bGxgIiA9ICdYXHQnICYmCisrCSAgIGVjaG9fdGVzdGluZ19z dHJpbmc9YHsgJEVDSE8gIiRlY2hvX3Rlc3Rfc3RyaW5nIjsgfSAyPi9kZXYvbnVsbGAgJiYKKysJ ICAgdGVzdCAiWCRlY2hvX3Rlc3Rpbmdfc3RyaW5nIiA9ICJYJGVjaG9fdGVzdF9zdHJpbmciOyB0 aGVuCisrCSAgIyBDb29sLCBwcmludGYgd29ya3MKKysJICA6CisrICAgICAgICBlbGlmIGVjaG9f dGVzdGluZ19zdHJpbmc9YCgkT1JJR0lOQUxfQ09ORklHX1NIRUxMICIkMCIgLS1mYWxsYmFjay1l Y2hvICdcdCcpIDI+L2Rldi9udWxsYCAmJgorKwkgICAgIHRlc3QgIlgkZWNob190ZXN0aW5nX3N0 cmluZyIgPSAnWFx0JyAmJgorKwkgICAgIGVjaG9fdGVzdGluZ19zdHJpbmc9YCgkT1JJR0lOQUxf Q09ORklHX1NIRUxMICIkMCIgLS1mYWxsYmFjay1lY2hvICIkZWNob190ZXN0X3N0cmluZyIpIDI+ L2Rldi9udWxsYCAmJgorKwkgICAgIHRlc3QgIlgkZWNob190ZXN0aW5nX3N0cmluZyIgPSAiWCRl Y2hvX3Rlc3Rfc3RyaW5nIjsgdGhlbgorKwkgIENPTkZJR19TSEVMTD0kT1JJR0lOQUxfQ09ORklH X1NIRUxMCisrCSAgZXhwb3J0IENPTkZJR19TSEVMTAorKwkgIFNIRUxMPSIkQ09ORklHX1NIRUxM IgorKwkgIGV4cG9ydCBTSEVMTAorKwkgIEVDSE89IiRDT05GSUdfU0hFTEwgJDAgLS1mYWxsYmFj ay1lY2hvIgorKyAgICAgICAgZWxpZiBlY2hvX3Rlc3Rpbmdfc3RyaW5nPWAoJENPTkZJR19TSEVM TCAiJDAiIC0tZmFsbGJhY2stZWNobyAnXHQnKSAyPi9kZXYvbnVsbGAgJiYKKysJICAgICB0ZXN0 ICJYJGVjaG9fdGVzdGluZ19zdHJpbmciID0gJ1hcdCcgJiYKKysJICAgICBlY2hvX3Rlc3Rpbmdf c3RyaW5nPWAoJENPTkZJR19TSEVMTCAiJDAiIC0tZmFsbGJhY2stZWNobyAiJGVjaG9fdGVzdF9z dHJpbmciKSAyPi9kZXYvbnVsbGAgJiYKKysJICAgICB0ZXN0ICJYJGVjaG9fdGVzdGluZ19zdHJp bmciID0gIlgkZWNob190ZXN0X3N0cmluZyI7IHRoZW4KKysJICBFQ0hPPSIkQ09ORklHX1NIRUxM ICQwIC0tZmFsbGJhY2stZWNobyIKKysgICAgICAgIGVsc2UKKysJICAjIG1heWJlIHdpdGggYSBz bWFsbGVyIHN0cmluZy4uLgorKwkgIHByZXY9OgorKworKwkgIGZvciBjbWQgaW4gJ2VjaG8gdGVz dCcgJ3NlZCAycSAiJDAiJyAnc2VkIDEwcSAiJDAiJyAnc2VkIDIwcSAiJDAiJyAnc2VkIDUwcSAi JDAiJzsgZG8KKysJICAgIGlmIHsgdGVzdCAiWCRlY2hvX3Rlc3Rfc3RyaW5nIiA9ICJYYGV2YWwg JGNtZGAiOyB9IDI+L2Rldi9udWxsCisrCSAgICB0aGVuCisrCSAgICAgIGJyZWFrCisrCSAgICBm aQorKwkgICAgcHJldj0iJGNtZCIKKysJICBkb25lCisrCisrCSAgaWYgdGVzdCAiJHByZXYiICE9 ICdzZWQgNTBxICIkMCInOyB0aGVuCisrCSAgICBlY2hvX3Rlc3Rfc3RyaW5nPWBldmFsICRwcmV2 YAorKwkgICAgZXhwb3J0IGVjaG9fdGVzdF9zdHJpbmcKKysJICAgIGV4ZWMgJHtPUklHSU5BTF9D T05GSUdfU0hFTEwtJHtDT05GSUdfU0hFTEwtL2Jpbi9zaH19ICIkMCIgJHsxKyIkQCJ9CisrCSAg ZWxzZQorKwkgICAgIyBPb3BzLiAgV2UgbG9zdCBjb21wbGV0ZWx5LCBzbyBqdXN0IHN0aWNrIHdp dGggZWNoby4KKysJICAgIEVDSE89ZWNobworKwkgIGZpCisrICAgICAgICBmaQorKyAgICAgIGZp CisgICAgIGZpCisrICBmaQorK2ZpCisrCisrIyBDb3B5IGVjaG8gYW5kIHF1b3RlIHRoZSBjb3B5 IHN1aXRhYmx5IGZvciBwYXNzaW5nIHRvIGxpYnRvb2wgZnJvbQorKyMgdGhlIE1ha2VmaWxlLCBp bnN0ZWFkIG9mIHF1b3RpbmcgdGhlIG9yaWdpbmFsLCB3aGljaCBpcyB1c2VkIGxhdGVyLgorK2x0 X0VDSE89JEVDSE8KKytpZiB0ZXN0ICJYJGx0X0VDSE8iID0gIlgkQ09ORklHX1NIRUxMICQwIC0t ZmFsbGJhY2stZWNobyI7IHRoZW4KKysgICBsdF9FQ0hPPSIkQ09ORklHX1NIRUxMIFxcXCRcJDAg LS1mYWxsYmFjay1lY2hvIgorK2ZpCisrCisrCisrCisrCisrZXhlYyA3PCYwIDwvZGV2L251bGwg Nj4mMQorKworKyMgTmFtZSBvZiB0aGUgaG9zdC4KKysjIGhvc3RuYW1lIG9uIHNvbWUgc3lzdGVt cyAoU1ZSMy4yLCBMaW51eCkgcmV0dXJucyBhIGJvZ3VzIGV4aXQgc3RhdHVzLAorKyMgc28gdW5h bWUgZ2V0cyBydW4gdG9vLgorK2FjX2hvc3RuYW1lPWAoaG9zdG5hbWUgfHwgdW5hbWUgLW4pIDI+ L2Rldi9udWxsIHwgc2VkIDFxYAorKworKyMKKysjIEluaXRpYWxpemF0aW9ucy4KKysjCisrYWNf ZGVmYXVsdF9wcmVmaXg9L3Vzci9sb2NhbAorK2FjX2NsZWFuX2ZpbGVzPQorK2FjX2NvbmZpZ19s aWJvYmpfZGlyPS4KKytMSUJPQkpTPQorK2Nyb3NzX2NvbXBpbGluZz1ubworK3N1YmRpcnM9Cisr TUZMQUdTPQorK01BS0VGTEFHUz0KKytTSEVMTD0ke0NPTkZJR19TSEVMTC0vYmluL3NofQorKwor KyMgSWRlbnRpdHkgb2YgdGhpcyBwYWNrYWdlLgorK1BBQ0tBR0VfTkFNRT0nU09DSScKKytQQUNL QUdFX1RBUk5BTUU9J3NvY2knCisrUEFDS0FHRV9WRVJTSU9OPSczLjAuMCcKKytQQUNLQUdFX1NU UklORz0nU09DSSAzLjAuMCcKKytQQUNLQUdFX0JVR1JFUE9SVD0nbXNvYmN6YWtAdXNlcnMuc291 cmNlZm9yZ2UubmV0JworKworK2FjX3VuaXF1ZV9maWxlPSJzb2NpL2NvcmUvZXJyb3IuY3BwIgor KyMgRmFjdG9yaW5nIGRlZmF1bHQgaGVhZGVycyBmb3IgbW9zdCB0ZXN0cy4KKythY19pbmNsdWRl c19kZWZhdWx0PSJcCisrI2luY2x1ZGUgPHN0ZGlvLmg+CisrI2lmZGVmIEhBVkVfU1lTX1RZUEVT X0gKKysjIGluY2x1ZGUgPHN5cy90eXBlcy5oPgorKyNlbmRpZgorKyNpZmRlZiBIQVZFX1NZU19T VEFUX0gKKysjIGluY2x1ZGUgPHN5cy9zdGF0Lmg+CisrI2VuZGlmCisrI2lmZGVmIFNURENfSEVB REVSUworKyMgaW5jbHVkZSA8c3RkbGliLmg+CisrIyBpbmNsdWRlIDxzdGRkZWYuaD4KKysjZWxz ZQorKyMgaWZkZWYgSEFWRV9TVERMSUJfSAorKyMgIGluY2x1ZGUgPHN0ZGxpYi5oPgorKyMgZW5k aWYKKysjZW5kaWYKKysjaWZkZWYgSEFWRV9TVFJJTkdfSAorKyMgaWYgIWRlZmluZWQgU1REQ19I RUFERVJTICYmIGRlZmluZWQgSEFWRV9NRU1PUllfSAorKyMgIGluY2x1ZGUgPG1lbW9yeS5oPgor KyMgZW5kaWYKKysjIGluY2x1ZGUgPHN0cmluZy5oPgorKyNlbmRpZgorKyNpZmRlZiBIQVZFX1NU UklOR1NfSAorKyMgaW5jbHVkZSA8c3RyaW5ncy5oPgorKyNlbmRpZgorKyNpZmRlZiBIQVZFX0lO VFRZUEVTX0gKKysjIGluY2x1ZGUgPGludHR5cGVzLmg+CisrI2VuZGlmCisrI2lmZGVmIEhBVkVf U1RESU5UX0gKKysjIGluY2x1ZGUgPHN0ZGludC5oPgorKyNlbmRpZgorKyNpZmRlZiBIQVZFX1VO SVNURF9ICisrIyBpbmNsdWRlIDx1bmlzdGQuaD4KKysjZW5kaWYiCisrCisrYWNfc3Vic3RfdmFy cz0nYW1fX0VYRUVYVF9GQUxTRQorK2FtX19FWEVFWFRfVFJVRQorK0xUTElCT0JKUworK0xJQk9C SlMKKytSVU5fVEVTVFNfRkFMU0UKKytSVU5fVEVTVFNfVFJVRQorK3NlZF9vaworK2RpZmZfb2sK KytIVE1MX0RPQ19GQUxTRQorK0hUTUxfRE9DX1RSVUUKKytQRVJMCisrZ3Nfb2sKKytkdmlwc19v aworK2xhdGV4X29rCisrZG94eWdlbl9vaworK0lORk9fRE9DX0ZBTFNFCisrSU5GT19ET0NfVFJV RQorK1BPU1RHUkVTUUxfRElSUworK0hBVkVfUE9TVEdSRVNRTF9GQUxTRQorK0hBVkVfUE9TVEdS RVNRTF9UUlVFCisrUE9TVEdSRVNRTF9MREZMQUdTCisrUE9TVEdSRVNRTF9DRkxBR1MKKytQT1NU R1JFU1FMX1ZFUlNJT04KKytQR19DT05GSUcKKytPUkFDTEVfRElSUworK0hBVkVfT1JBQ0xFX0ZB TFNFCisrSEFWRV9PUkFDTEVfVFJVRQorK09SQUNMRV9PQ0lfTERGTEFHUworK09SQUNMRV9PQ0lf Q0ZMQUdTCisrT1JBQ0xFX09DSV9WRVJTSU9OCisrTVlTUUxfRElSUworK0hBVkVfTVlTUUxfRkFM U0UKKytIQVZFX01ZU1FMX1RSVUUKKytNWVNRTF9DX0xJQgorK01ZU1FMX0xJQlMKKytNWVNRTF9D RkxBR1MKKytNWVNRTF9WRVJTSU9OCisrQk9PU1RfVkVSU0lPTgorK0JPT1NUX1VOSVRfVEVTVF9G UkFNRVdPUktfTElCCisrQk9PU1RfTVBJX1BZVEhPTl9MSUIKKytCT09TVF9NUElfTElCCisrQk9P U1RfUFlUSE9OX0xJQgorK0JPT1NUX1JFR0VYX0xJQgorK0JPT1NUX0RBVEVfVElNRV9MSUIKKytC T09TVF9TSUdOQUxTX0xJQgorK0JPT1NUX1dTRVJJQUxJWkFUSU9OX0xJQgorK0JPT1NUX1NFUklB TElaQVRJT05fTElCCisrQk9PU1RfSU9TVFJFQU1TX0xJQgorK0JPT1NUX1RIUkVBRF9MSUIKKytC T09TVF9QUk9HUkFNX09QVElPTlNfTElCCisrQk9PU1RfU1lTVEVNX0xJQgorK0JPT1NUX0ZJTEVT WVNURU1fTElCCisrQk9PU1RfTElCUworK0JPT1NUX0NGTEFHUworK1NPQ0lfUE9TVEdSRVNRTF9I RUFERVJTX0JVUklFRAorK1NPQ0lfUE9TVEdSRVNRTF9IRUFERVJTX0JVUklFRF9GQUxTRQorK1NP Q0lfUE9TVEdSRVNRTF9IRUFERVJTX0JVUklFRF9UUlVFCisrU09DSV9NWVNRTF9IRUFERVJTX0JV UklFRAorK1NPQ0lfTVlTUUxfSEVBREVSU19CVVJJRURfRkFMU0UKKytTT0NJX01ZU1FMX0hFQURF UlNfQlVSSUVEX1RSVUUKKytTT0NJX0hFQURFUlNfQlVSSUVECisrU09DSV9IRUFERVJTX0JVUklF RF9GQUxTRQorK1NPQ0lfSEVBREVSU19CVVJJRURfVFJVRQorK0NQUAorK09UT09MNjQKKytPVE9P TAorK0xJUE8KKytOTUVESVQKKytEU1lNVVRJTAorK2x0X0VDSE8KKytSQU5MSUIKKytBUgorK09C SkRVTVAKKytMTl9TCisrTk0KKythY19jdF9EVU1QQklOCisrRFVNUEJJTgorK0xECisrRkdSRVAK KytFR1JFUAorK0dSRVAKKytTRUQKKythbV9fZmFzdGRlcENDX0ZBTFNFCisrYW1fX2Zhc3RkZXBD Q19UUlVFCisrQ0NERVBNT0RFCisrYWNfY3RfQ0MKKytDRkxBR1MKKytDQworK0xJQlRPT0wKKytD WFhDUFAKKythbV9fZmFzdGRlcENYWF9GQUxTRQorK2FtX19mYXN0ZGVwQ1hYX1RSVUUKKytDWFhE RVBNT0RFCisrQU1ERVBCQUNLU0xBU0gKKytBTURFUF9GQUxTRQorK0FNREVQX1RSVUUKKythbV9f cXVvdGUKKythbV9faW5jbHVkZQorK0RFUERJUgorK09CSkVYVAorK0VYRUVYVAorK2FjX2N0X0NY WAorK0NQUEZMQUdTCisrTERGTEFHUworK0NYWEZMQUdTCisrQ1hYCisraG9zdF9vcworK2hvc3Rf dmVuZG9yCisraG9zdF9jcHUKKytob3N0CisrYnVpbGRfb3MKKytidWlsZF92ZW5kb3IKKytidWls ZF9jcHUKKytidWlsZAorK1VQTE9BRF9DT01NQU5ECisrR0VORVJJQ19MSUJSQVJZX1ZFUlNJT04K KytSUE1fUkVMRUFTRQorK0hBVkVfQ1BQVU5JVF9GQUxTRQorK0hBVkVfQ1BQVU5JVF9UUlVFCisr Q1BQVU5JVF9WRVJTSU9OCisrQ1BQVU5JVF9MSUJTCisrQ1BQVU5JVF9DRkxBR1MKKytDUFBVTklU X0NPTkZJRworK2FtX191bnRhcgorK2FtX190YXIKKytBTVRBUgorK2FtX19sZWFkaW5nX2RvdAor K1NFVF9NQUtFCisrQVdLCisrbWtkaXJfcAorK01LRElSX1AKKytJTlNUQUxMX1NUUklQX1BST0dS QU0KKytTVFJJUAorK2luc3RhbGxfc2gKKytNQUtFSU5GTworK0FVVE9IRUFERVIKKytBVVRPTUFL RQorK0FVVE9DT05GCisrQUNMT0NBTAorK1ZFUlNJT04KKytQQUNLQUdFCisrQ1lHUEFUSF9XCisr YW1fX2lzcmMKKytJTlNUQUxMX0RBVEEKKytJTlNUQUxMX1NDUklQVAorK0lOU1RBTExfUFJPR1JB TQorK3RhcmdldF9hbGlhcworK2hvc3RfYWxpYXMKKytidWlsZF9hbGlhcworK0xJQlMKKytFQ0hP X1QKKytFQ0hPX04KKytFQ0hPX0MKKytERUZTCisrbWFuZGlyCisrbG9jYWxlZGlyCisrbGliZGly CisrcHNkaXIKKytwZGZkaXIKKytkdmlkaXIKKytodG1sZGlyCisraW5mb2RpcgorK2RvY2Rpcgor K29sZGluY2x1ZGVkaXIKKytpbmNsdWRlZGlyCisrbG9jYWxzdGF0ZWRpcgorK3NoYXJlZHN0YXRl ZGlyCisrc3lzY29uZmRpcgorK2RhdGFkaXIKKytkYXRhcm9vdGRpcgorK2xpYmV4ZWNkaXIKKytz YmluZGlyCisrYmluZGlyCisrcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZQorK3ByZWZpeAorK2V4ZWNf cHJlZml4CisrUEFDS0FHRV9CVUdSRVBPUlQKKytQQUNLQUdFX1NUUklORworK1BBQ0tBR0VfVkVS U0lPTgorK1BBQ0tBR0VfVEFSTkFNRQorK1BBQ0tBR0VfTkFNRQorK1BBVEhfU0VQQVJBVE9SCisr U0hFTEwnCisrYWNfc3Vic3RfZmlsZXM9JycKKythY191c2VyX29wdHM9JworK2VuYWJsZV9vcHRp b25fY2hlY2tpbmcKKyt3aXRoX2NwcHVuaXRfcHJlZml4Cisrd2l0aF9jcHB1bml0X2V4ZWNfcHJl Zml4CisrZW5hYmxlX3NoYXJlZAorK2VuYWJsZV9zdGF0aWMKKytlbmFibGVfZGVwZW5kZW5jeV90 cmFja2luZworK3dpdGhfcGljCisrZW5hYmxlX2Zhc3RfaW5zdGFsbAorK3dpdGhfZ251X2xkCisr ZW5hYmxlX2xpYnRvb2xfbG9jaworK2VuYWJsZV9leGNlcHRpb25zCisrZW5hYmxlX2luZm9fZG9j CisrZW5hYmxlX2h0bWxfZG9jCisrd2l0aF9kb2NkaXIKKytlbmFibGVfYnVycmllZF9oZWFkZXJz CisrZW5hYmxlX215c3FsX2J1cnJpZWRfaGVhZGVycworK2VuYWJsZV9wb3N0Z3Jlc3FsX2J1cnJp ZWRfaGVhZGVycworK3dpdGhfYm9vc3QKKytlbmFibGVfYmFja2VuZF9teXNxbAorK3dpdGhfbXlz cWwKKyt3aXRoX215c3FsX2xpYgorK3dpdGhfbXlzcWxfaW5jbHVkZQorK2VuYWJsZV9iYWNrZW5k X29yYWNsZQorK3dpdGhfb3JhY2xlCisrd2l0aF9vcmFjbGVfaW5jbHVkZQorK3dpdGhfb3JhY2xl X2xpYgorK2VuYWJsZV9iYWNrZW5kX3Bvc3RncmVzcWwKKyt3aXRoX3Bvc3RncmVzcWwKKysnCisr ICAgICAgYWNfcHJlY2lvdXNfdmFycz0nYnVpbGRfYWxpYXMKKytob3N0X2FsaWFzCisrdGFyZ2V0 X2FsaWFzCisrQ1hYCisrQ1hYRkxBR1MKKytMREZMQUdTCisrTElCUworK0NQUEZMQUdTCisrQ0ND CisrQ1hYQ1BQCisrQ0MKKytDRkxBR1MKKytDUFAnCisrCisrCisrIyBJbml0aWFsaXplIHNvbWUg dmFyaWFibGVzIHNldCBieSBvcHRpb25zLgorK2FjX2luaXRfaGVscD0KKythY19pbml0X3ZlcnNp b249ZmFsc2UKKythY191bnJlY29nbml6ZWRfb3B0cz0KKythY191bnJlY29nbml6ZWRfc2VwPQor KyMgVGhlIHZhcmlhYmxlcyBoYXZlIHRoZSBzYW1lIG5hbWVzIGFzIHRoZSBvcHRpb25zLCB3aXRo CisrIyBkYXNoZXMgY2hhbmdlZCB0byB1bmRlcmxpbmVzLgorK2NhY2hlX2ZpbGU9L2Rldi9udWxs CisrZXhlY19wcmVmaXg9Tk9ORQorK25vX2NyZWF0ZT0KKytub19yZWN1cnNpb249CisrcHJlZml4 PU5PTkUKKytwcm9ncmFtX3ByZWZpeD1OT05FCisrcHJvZ3JhbV9zdWZmaXg9Tk9ORQorK3Byb2dy YW1fdHJhbnNmb3JtX25hbWU9cyx4LHgsCisrc2lsZW50PQorK3NpdGU9Cisrc3JjZGlyPQorK3Zl cmJvc2U9CisreF9pbmNsdWRlcz1OT05FCisreF9saWJyYXJpZXM9Tk9ORQorKworKyMgSW5zdGFs bGF0aW9uIGRpcmVjdG9yeSBvcHRpb25zLgorKyMgVGhlc2UgYXJlIGxlZnQgdW5leHBhbmRlZCBz byB1c2VycyBjYW4gIm1ha2UgaW5zdGFsbCBleGVjX3ByZWZpeD0vZm9vIgorKyMgYW5kIGFsbCB0 aGUgdmFyaWFibGVzIHRoYXQgYXJlIHN1cHBvc2VkIHRvIGJlIGJhc2VkIG9uIGV4ZWNfcHJlZml4 CisrIyBieSBkZWZhdWx0IHdpbGwgYWN0dWFsbHkgY2hhbmdlLgorKyMgVXNlIGJyYWNlcyBpbnN0 ZWFkIG9mIHBhcmVucyBiZWNhdXNlIHNoLCBwZXJsLCBldGMuIGFsc28gYWNjZXB0IHRoZW0uCisr IyAoVGhlIGxpc3QgZm9sbG93cyB0aGUgc2FtZSBvcmRlciBhcyB0aGUgR05VIENvZGluZyBTdGFu ZGFyZHMuKQorK2JpbmRpcj0nJHtleGVjX3ByZWZpeH0vYmluJworK3NiaW5kaXI9JyR7ZXhlY19w cmVmaXh9L3NiaW4nCisrbGliZXhlY2Rpcj0nJHtleGVjX3ByZWZpeH0vbGliZXhlYycKKytkYXRh cm9vdGRpcj0nJHtwcmVmaXh9L3NoYXJlJworK2RhdGFkaXI9JyR7ZGF0YXJvb3RkaXJ9JworK3N5 c2NvbmZkaXI9JyR7cHJlZml4fS9ldGMnCisrc2hhcmVkc3RhdGVkaXI9JyR7cHJlZml4fS9jb20n CisrbG9jYWxzdGF0ZWRpcj0nJHtwcmVmaXh9L3ZhcicKKytpbmNsdWRlZGlyPScke3ByZWZpeH0v aW5jbHVkZScKKytvbGRpbmNsdWRlZGlyPScvdXNyL2luY2x1ZGUnCisrZG9jZGlyPScke2RhdGFy b290ZGlyfS9kb2MvJHtQQUNLQUdFX1RBUk5BTUV9JworK2luZm9kaXI9JyR7ZGF0YXJvb3RkaXJ9 L2luZm8nCisraHRtbGRpcj0nJHtkb2NkaXJ9JworK2R2aWRpcj0nJHtkb2NkaXJ9JworK3BkZmRp cj0nJHtkb2NkaXJ9JworK3BzZGlyPScke2RvY2Rpcn0nCisrbGliZGlyPScke2V4ZWNfcHJlZml4 fS9saWInCisrbG9jYWxlZGlyPScke2RhdGFyb290ZGlyfS9sb2NhbGUnCisrbWFuZGlyPScke2Rh dGFyb290ZGlyfS9tYW4nCisrCisrYWNfcHJldj0KKythY19kYXNoZGFzaD0KKytmb3IgYWNfb3B0 aW9uCisrZG8KKysgICMgSWYgdGhlIHByZXZpb3VzIG9wdGlvbiBuZWVkcyBhbiBhcmd1bWVudCwg YXNzaWduIGl0LgorKyAgaWYgdGVzdCAtbiAiJGFjX3ByZXYiOyB0aGVuCisrICAgIGV2YWwgJGFj X3ByZXY9XCRhY19vcHRpb24KKysgICAgYWNfcHJldj0KKysgICAgY29udGludWUKKysgIGZpCisr CisrICBjYXNlICRhY19vcHRpb24gaW4KKysgICo9KikJYWNfb3B0YXJnPWBleHByICJYJGFjX29w dGlvbiIgOiAnW149XSo9XCguKlwpJ2AgOzsKKysgICopCWFjX29wdGFyZz15ZXMgOzsKKysgIGVz YWMKKysKKysgICMgQWNjZXB0IHRoZSBpbXBvcnRhbnQgQ3lnbnVzIGNvbmZpZ3VyZSBvcHRpb25z LCBzbyB3ZSBjYW4gZGlhZ25vc2UgdHlwb3MuCisrCisrICBjYXNlICRhY19kYXNoZGFzaCRhY19v cHRpb24gaW4KKysgIC0tKQorKyAgICBhY19kYXNoZGFzaD15ZXMgOzsKKysKKysgIC1iaW5kaXIg fCAtLWJpbmRpciB8IC0tYmluZGkgfCAtLWJpbmQgfCAtLWJpbiB8IC0tYmkpCisrICAgIGFjX3By ZXY9YmluZGlyIDs7CisrICAtYmluZGlyPSogfCAtLWJpbmRpcj0qIHwgLS1iaW5kaT0qIHwgLS1i aW5kPSogfCAtLWJpbj0qIHwgLS1iaT0qKQorKyAgICBiaW5kaXI9JGFjX29wdGFyZyA7OworKwor KyAgLWJ1aWxkIHwgLS1idWlsZCB8IC0tYnVpbCB8IC0tYnVpIHwgLS1idSkKKysgICAgYWNfcHJl dj1idWlsZF9hbGlhcyA7OworKyAgLWJ1aWxkPSogfCAtLWJ1aWxkPSogfCAtLWJ1aWw9KiB8IC0t YnVpPSogfCAtLWJ1PSopCisrICAgIGJ1aWxkX2FsaWFzPSRhY19vcHRhcmcgOzsKKysKKysgIC1j YWNoZS1maWxlIHwgLS1jYWNoZS1maWxlIHwgLS1jYWNoZS1maWwgfCAtLWNhY2hlLWZpIFwKKysg IHwgLS1jYWNoZS1mIHwgLS1jYWNoZS0gfCAtLWNhY2hlIHwgLS1jYWNoIHwgLS1jYWMgfCAtLWNh IHwgLS1jKQorKyAgICBhY19wcmV2PWNhY2hlX2ZpbGUgOzsKKysgIC1jYWNoZS1maWxlPSogfCAt LWNhY2hlLWZpbGU9KiB8IC0tY2FjaGUtZmlsPSogfCAtLWNhY2hlLWZpPSogXAorKyAgfCAtLWNh Y2hlLWY9KiB8IC0tY2FjaGUtPSogfCAtLWNhY2hlPSogfCAtLWNhY2g9KiB8IC0tY2FjPSogfCAt LWNhPSogfCAtLWM9KikKKysgICAgY2FjaGVfZmlsZT0kYWNfb3B0YXJnIDs7CisrCisrICAtLWNv bmZpZy1jYWNoZSB8IC1DKQorKyAgICBjYWNoZV9maWxlPWNvbmZpZy5jYWNoZSA7OworKworKyAg LWRhdGFkaXIgfCAtLWRhdGFkaXIgfCAtLWRhdGFkaSB8IC0tZGF0YWQpCisrICAgIGFjX3ByZXY9 ZGF0YWRpciA7OworKyAgLWRhdGFkaXI9KiB8IC0tZGF0YWRpcj0qIHwgLS1kYXRhZGk9KiB8IC0t ZGF0YWQ9KikKKysgICAgZGF0YWRpcj0kYWNfb3B0YXJnIDs7CisrCisrICAtZGF0YXJvb3RkaXIg fCAtLWRhdGFyb290ZGlyIHwgLS1kYXRhcm9vdGRpIHwgLS1kYXRhcm9vdGQgfCAtLWRhdGFyb290 IFwKKysgIHwgLS1kYXRhcm9vIHwgLS1kYXRhcm8gfCAtLWRhdGFyKQorKyAgICBhY19wcmV2PWRh dGFyb290ZGlyIDs7CisrICAtZGF0YXJvb3RkaXI9KiB8IC0tZGF0YXJvb3RkaXI9KiB8IC0tZGF0 YXJvb3RkaT0qIHwgLS1kYXRhcm9vdGQ9KiBcCisrICB8IC0tZGF0YXJvb3Q9KiB8IC0tZGF0YXJv bz0qIHwgLS1kYXRhcm89KiB8IC0tZGF0YXI9KikKKysgICAgZGF0YXJvb3RkaXI9JGFjX29wdGFy ZyA7OworKworKyAgLWRpc2FibGUtKiB8IC0tZGlzYWJsZS0qKQorKyAgICBhY191c2Vyb3B0PWBl eHByICJ4JGFjX29wdGlvbiIgOiAneC0qZGlzYWJsZS1cKC4qXCknYAorKyAgICAjIFJlamVjdCBu YW1lcyB0aGF0IGFyZSBub3QgdmFsaWQgc2hlbGwgdmFyaWFibGUgbmFtZXMuCisrICAgIGV4cHIg IngkYWNfdXNlcm9wdCIgOiAiLipbXi0rLl8kYXNfY3JfYWxudW1dIiA+L2Rldi9udWxsICYmCisr ICAgICAgeyAkYXNfZWNobyAiJGFzX21lOiBlcnJvcjogaW52YWxpZCBmZWF0dXJlIG5hbWU6ICRh Y191c2Vyb3B0IiA+JjIKKysgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KKysgICAgYWNfdXNl cm9wdF9vcmlnPSRhY191c2Vyb3B0CisrICAgIGFjX3VzZXJvcHQ9YCRhc19lY2hvICIkYWNfdXNl cm9wdCIgfCBzZWQgJ3MvWy0rLl0vXy9nJ2AKKysgICAgY2FzZSAkYWNfdXNlcl9vcHRzIGluCisr ICAgICAgKiIKKysiZW5hYmxlXyRhY191c2Vyb3B0IgorKyIqKSA7OworKyAgICAgICopIGFjX3Vu cmVjb2duaXplZF9vcHRzPSIkYWNfdW5yZWNvZ25pemVkX29wdHMkYWNfdW5yZWNvZ25pemVkX3Nl cC0tZGlzYWJsZS0kYWNfdXNlcm9wdF9vcmlnIgorKwkgYWNfdW5yZWNvZ25pemVkX3NlcD0nLCAn OzsKKysgICAgZXNhYworKyAgICBldmFsIGVuYWJsZV8kYWNfdXNlcm9wdD1ubyA7OworKworKyAg LWRvY2RpciB8IC0tZG9jZGlyIHwgLS1kb2NkaSB8IC0tZG9jIHwgLS1kbykKKysgICAgYWNfcHJl dj1kb2NkaXIgOzsKKysgIC1kb2NkaXI9KiB8IC0tZG9jZGlyPSogfCAtLWRvY2RpPSogfCAtLWRv Yz0qIHwgLS1kbz0qKQorKyAgICBkb2NkaXI9JGFjX29wdGFyZyA7OworKworKyAgLWR2aWRpciB8 IC0tZHZpZGlyIHwgLS1kdmlkaSB8IC0tZHZpZCB8IC0tZHZpIHwgLS1kdikKKysgICAgYWNfcHJl dj1kdmlkaXIgOzsKKysgIC1kdmlkaXI9KiB8IC0tZHZpZGlyPSogfCAtLWR2aWRpPSogfCAtLWR2 aWQ9KiB8IC0tZHZpPSogfCAtLWR2PSopCisrICAgIGR2aWRpcj0kYWNfb3B0YXJnIDs7CisrCisr ICAtZW5hYmxlLSogfCAtLWVuYWJsZS0qKQorKyAgICBhY191c2Vyb3B0PWBleHByICJ4JGFjX29w dGlvbiIgOiAneC0qZW5hYmxlLVwoW149XSpcKSdgCisrICAgICMgUmVqZWN0IG5hbWVzIHRoYXQg YXJlIG5vdCB2YWxpZCBzaGVsbCB2YXJpYWJsZSBuYW1lcy4KKysgICAgZXhwciAieCRhY191c2Vy b3B0IiA6ICIuKlteLSsuXyRhc19jcl9hbG51bV0iID4vZGV2L251bGwgJiYKKysgICAgICB7ICRh c19lY2hvICIkYXNfbWU6IGVycm9yOiBpbnZhbGlkIGZlYXR1cmUgbmFtZTogJGFjX3VzZXJvcHQi ID4mMgorKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQorKyAgICBhY191c2Vyb3B0X29yaWc9 JGFjX3VzZXJvcHQKKysgICAgYWNfdXNlcm9wdD1gJGFzX2VjaG8gIiRhY191c2Vyb3B0IiB8IHNl ZCAncy9bLSsuXS9fL2cnYAorKyAgICBjYXNlICRhY191c2VyX29wdHMgaW4KKysgICAgICAqIgor KyJlbmFibGVfJGFjX3VzZXJvcHQiCisrIiopIDs7CisrICAgICAgKikgYWNfdW5yZWNvZ25pemVk X29wdHM9IiRhY191bnJlY29nbml6ZWRfb3B0cyRhY191bnJlY29nbml6ZWRfc2VwLS1lbmFibGUt JGFjX3VzZXJvcHRfb3JpZyIKKysJIGFjX3VucmVjb2duaXplZF9zZXA9JywgJzs7CisrICAgIGVz YWMKKysgICAgZXZhbCBlbmFibGVfJGFjX3VzZXJvcHQ9XCRhY19vcHRhcmcgOzsKKysKKysgIC1l eGVjLXByZWZpeCB8IC0tZXhlY19wcmVmaXggfCAtLWV4ZWMtcHJlZml4IHwgLS1leGVjLXByZWZp IFwKKysgIHwgLS1leGVjLXByZWYgfCAtLWV4ZWMtcHJlIHwgLS1leGVjLXByIHwgLS1leGVjLXAg fCAtLWV4ZWMtIFwKKysgIHwgLS1leGVjIHwgLS1leGUgfCAtLWV4KQorKyAgICBhY19wcmV2PWV4 ZWNfcHJlZml4IDs7CisrICAtZXhlYy1wcmVmaXg9KiB8IC0tZXhlY19wcmVmaXg9KiB8IC0tZXhl Yy1wcmVmaXg9KiB8IC0tZXhlYy1wcmVmaT0qIFwKKysgIHwgLS1leGVjLXByZWY9KiB8IC0tZXhl Yy1wcmU9KiB8IC0tZXhlYy1wcj0qIHwgLS1leGVjLXA9KiB8IC0tZXhlYy09KiBcCisrICB8IC0t ZXhlYz0qIHwgLS1leGU9KiB8IC0tZXg9KikKKysgICAgZXhlY19wcmVmaXg9JGFjX29wdGFyZyA7 OworKworKyAgLWdhcyB8IC0tZ2FzIHwgLS1nYSB8IC0tZykKKysgICAgIyBPYnNvbGV0ZTsgdXNl IC0td2l0aC1nYXMuCisrICAgIHdpdGhfZ2FzPXllcyA7OworKworKyAgLWhlbHAgfCAtLWhlbHAg fCAtLWhlbCB8IC0taGUgfCAtaCkKKysgICAgYWNfaW5pdF9oZWxwPWxvbmcgOzsKKysgIC1oZWxw PXIqIHwgLS1oZWxwPXIqIHwgLS1oZWw9ciogfCAtLWhlPXIqIHwgLWhyKikKKysgICAgYWNfaW5p dF9oZWxwPXJlY3Vyc2l2ZSA7OworKyAgLWhlbHA9cyogfCAtLWhlbHA9cyogfCAtLWhlbD1zKiB8 IC0taGU9cyogfCAtaHMqKQorKyAgICBhY19pbml0X2hlbHA9c2hvcnQgOzsKKysKKysgIC1ob3N0 IHwgLS1ob3N0IHwgLS1ob3MgfCAtLWhvKQorKyAgICBhY19wcmV2PWhvc3RfYWxpYXMgOzsKKysg IC1ob3N0PSogfCAtLWhvc3Q9KiB8IC0taG9zPSogfCAtLWhvPSopCisrICAgIGhvc3RfYWxpYXM9 JGFjX29wdGFyZyA7OworKworKyAgLWh0bWxkaXIgfCAtLWh0bWxkaXIgfCAtLWh0bWxkaSB8IC0t aHRtbGQgfCAtLWh0bWwgfCAtLWh0bSB8IC0taHQpCisrICAgIGFjX3ByZXY9aHRtbGRpciA7Owor KyAgLWh0bWxkaXI9KiB8IC0taHRtbGRpcj0qIHwgLS1odG1sZGk9KiB8IC0taHRtbGQ9KiB8IC0t aHRtbD0qIHwgLS1odG09KiBcCisrICB8IC0taHQ9KikKKysgICAgaHRtbGRpcj0kYWNfb3B0YXJn IDs7CisrCisrICAtaW5jbHVkZWRpciB8IC0taW5jbHVkZWRpciB8IC0taW5jbHVkZWRpIHwgLS1p bmNsdWRlZCB8IC0taW5jbHVkZSBcCisrICB8IC0taW5jbHVkIHwgLS1pbmNsdSB8IC0taW5jbCB8 IC0taW5jKQorKyAgICBhY19wcmV2PWluY2x1ZGVkaXIgOzsKKysgIC1pbmNsdWRlZGlyPSogfCAt LWluY2x1ZGVkaXI9KiB8IC0taW5jbHVkZWRpPSogfCAtLWluY2x1ZGVkPSogfCAtLWluY2x1ZGU9 KiBcCisrICB8IC0taW5jbHVkPSogfCAtLWluY2x1PSogfCAtLWluY2w9KiB8IC0taW5jPSopCisr ICAgIGluY2x1ZGVkaXI9JGFjX29wdGFyZyA7OworKworKyAgLWluZm9kaXIgfCAtLWluZm9kaXIg fCAtLWluZm9kaSB8IC0taW5mb2QgfCAtLWluZm8gfCAtLWluZikKKysgICAgYWNfcHJldj1pbmZv ZGlyIDs7CisrICAtaW5mb2Rpcj0qIHwgLS1pbmZvZGlyPSogfCAtLWluZm9kaT0qIHwgLS1pbmZv ZD0qIHwgLS1pbmZvPSogfCAtLWluZj0qKQorKyAgICBpbmZvZGlyPSRhY19vcHRhcmcgOzsKKysK KysgIC1saWJkaXIgfCAtLWxpYmRpciB8IC0tbGliZGkgfCAtLWxpYmQpCisrICAgIGFjX3ByZXY9 bGliZGlyIDs7CisrICAtbGliZGlyPSogfCAtLWxpYmRpcj0qIHwgLS1saWJkaT0qIHwgLS1saWJk PSopCisrICAgIGxpYmRpcj0kYWNfb3B0YXJnIDs7CisrCisrICAtbGliZXhlY2RpciB8IC0tbGli ZXhlY2RpciB8IC0tbGliZXhlY2RpIHwgLS1saWJleGVjZCB8IC0tbGliZXhlYyBcCisrICB8IC0t bGliZXhlIHwgLS1saWJleCB8IC0tbGliZSkKKysgICAgYWNfcHJldj1saWJleGVjZGlyIDs7Cisr ICAtbGliZXhlY2Rpcj0qIHwgLS1saWJleGVjZGlyPSogfCAtLWxpYmV4ZWNkaT0qIHwgLS1saWJl eGVjZD0qIHwgLS1saWJleGVjPSogXAorKyAgfCAtLWxpYmV4ZT0qIHwgLS1saWJleD0qIHwgLS1s aWJlPSopCisrICAgIGxpYmV4ZWNkaXI9JGFjX29wdGFyZyA7OworKworKyAgLWxvY2FsZWRpciB8 IC0tbG9jYWxlZGlyIHwgLS1sb2NhbGVkaSB8IC0tbG9jYWxlZCB8IC0tbG9jYWxlKQorKyAgICBh Y19wcmV2PWxvY2FsZWRpciA7OworKyAgLWxvY2FsZWRpcj0qIHwgLS1sb2NhbGVkaXI9KiB8IC0t bG9jYWxlZGk9KiB8IC0tbG9jYWxlZD0qIHwgLS1sb2NhbGU9KikKKysgICAgbG9jYWxlZGlyPSRh Y19vcHRhcmcgOzsKKysKKysgIC1sb2NhbHN0YXRlZGlyIHwgLS1sb2NhbHN0YXRlZGlyIHwgLS1s b2NhbHN0YXRlZGkgfCAtLWxvY2Fsc3RhdGVkIFwKKysgIHwgLS1sb2NhbHN0YXRlIHwgLS1sb2Nh bHN0YXQgfCAtLWxvY2Fsc3RhIHwgLS1sb2NhbHN0IHwgLS1sb2NhbHMpCisrICAgIGFjX3ByZXY9 bG9jYWxzdGF0ZWRpciA7OworKyAgLWxvY2Fsc3RhdGVkaXI9KiB8IC0tbG9jYWxzdGF0ZWRpcj0q IHwgLS1sb2NhbHN0YXRlZGk9KiB8IC0tbG9jYWxzdGF0ZWQ9KiBcCisrICB8IC0tbG9jYWxzdGF0 ZT0qIHwgLS1sb2NhbHN0YXQ9KiB8IC0tbG9jYWxzdGE9KiB8IC0tbG9jYWxzdD0qIHwgLS1sb2Nh bHM9KikKKysgICAgbG9jYWxzdGF0ZWRpcj0kYWNfb3B0YXJnIDs7CisrCisrICAtbWFuZGlyIHwg LS1tYW5kaXIgfCAtLW1hbmRpIHwgLS1tYW5kIHwgLS1tYW4gfCAtLW1hIHwgLS1tKQorKyAgICBh Y19wcmV2PW1hbmRpciA7OworKyAgLW1hbmRpcj0qIHwgLS1tYW5kaXI9KiB8IC0tbWFuZGk9KiB8 IC0tbWFuZD0qIHwgLS1tYW49KiB8IC0tbWE9KiB8IC0tbT0qKQorKyAgICBtYW5kaXI9JGFjX29w dGFyZyA7OworKworKyAgLW5mcCB8IC0tbmZwIHwgLS1uZikKKysgICAgIyBPYnNvbGV0ZTsgdXNl IC0td2l0aG91dC1mcC4KKysgICAgd2l0aF9mcD1ubyA7OworKworKyAgLW5vLWNyZWF0ZSB8IC0t bm8tY3JlYXRlIHwgLS1uby1jcmVhdCB8IC0tbm8tY3JlYSB8IC0tbm8tY3JlIFwKKysgIHwgLS1u by1jciB8IC0tbm8tYyB8IC1uKQorKyAgICBub19jcmVhdGU9eWVzIDs7CisrCisrICAtbm8tcmVj dXJzaW9uIHwgLS1uby1yZWN1cnNpb24gfCAtLW5vLXJlY3Vyc2lvIHwgLS1uby1yZWN1cnNpIFwK KysgIHwgLS1uby1yZWN1cnMgfCAtLW5vLXJlY3VyIHwgLS1uby1yZWN1IHwgLS1uby1yZWMgfCAt LW5vLXJlIHwgLS1uby1yKQorKyAgICBub19yZWN1cnNpb249eWVzIDs7CisrCisrICAtb2xkaW5j bHVkZWRpciB8IC0tb2xkaW5jbHVkZWRpciB8IC0tb2xkaW5jbHVkZWRpIHwgLS1vbGRpbmNsdWRl ZCBcCisrICB8IC0tb2xkaW5jbHVkZSB8IC0tb2xkaW5jbHVkIHwgLS1vbGRpbmNsdSB8IC0tb2xk aW5jbCB8IC0tb2xkaW5jIFwKKysgIHwgLS1vbGRpbiB8IC0tb2xkaSB8IC0tb2xkIHwgLS1vbCB8 IC0tbykKKysgICAgYWNfcHJldj1vbGRpbmNsdWRlZGlyIDs7CisrICAtb2xkaW5jbHVkZWRpcj0q IHwgLS1vbGRpbmNsdWRlZGlyPSogfCAtLW9sZGluY2x1ZGVkaT0qIHwgLS1vbGRpbmNsdWRlZD0q IFwKKysgIHwgLS1vbGRpbmNsdWRlPSogfCAtLW9sZGluY2x1ZD0qIHwgLS1vbGRpbmNsdT0qIHwg LS1vbGRpbmNsPSogfCAtLW9sZGluYz0qIFwKKysgIHwgLS1vbGRpbj0qIHwgLS1vbGRpPSogfCAt LW9sZD0qIHwgLS1vbD0qIHwgLS1vPSopCisrICAgIG9sZGluY2x1ZGVkaXI9JGFjX29wdGFyZyA7 OworKworKyAgLXByZWZpeCB8IC0tcHJlZml4IHwgLS1wcmVmaSB8IC0tcHJlZiB8IC0tcHJlIHwg LS1wciB8IC0tcCkKKysgICAgYWNfcHJldj1wcmVmaXggOzsKKysgIC1wcmVmaXg9KiB8IC0tcHJl Zml4PSogfCAtLXByZWZpPSogfCAtLXByZWY9KiB8IC0tcHJlPSogfCAtLXByPSogfCAtLXA9KikK KysgICAgcHJlZml4PSRhY19vcHRhcmcgOzsKKysKKysgIC1wcm9ncmFtLXByZWZpeCB8IC0tcHJv Z3JhbS1wcmVmaXggfCAtLXByb2dyYW0tcHJlZmkgfCAtLXByb2dyYW0tcHJlZiBcCisrICB8IC0t cHJvZ3JhbS1wcmUgfCAtLXByb2dyYW0tcHIgfCAtLXByb2dyYW0tcCkKKysgICAgYWNfcHJldj1w cm9ncmFtX3ByZWZpeCA7OworKyAgLXByb2dyYW0tcHJlZml4PSogfCAtLXByb2dyYW0tcHJlZml4 PSogfCAtLXByb2dyYW0tcHJlZmk9KiBcCisrICB8IC0tcHJvZ3JhbS1wcmVmPSogfCAtLXByb2dy YW0tcHJlPSogfCAtLXByb2dyYW0tcHI9KiB8IC0tcHJvZ3JhbS1wPSopCisrICAgIHByb2dyYW1f cHJlZml4PSRhY19vcHRhcmcgOzsKKysKKysgIC1wcm9ncmFtLXN1ZmZpeCB8IC0tcHJvZ3JhbS1z dWZmaXggfCAtLXByb2dyYW0tc3VmZmkgfCAtLXByb2dyYW0tc3VmZiBcCisrICB8IC0tcHJvZ3Jh bS1zdWYgfCAtLXByb2dyYW0tc3UgfCAtLXByb2dyYW0tcykKKysgICAgYWNfcHJldj1wcm9ncmFt X3N1ZmZpeCA7OworKyAgLXByb2dyYW0tc3VmZml4PSogfCAtLXByb2dyYW0tc3VmZml4PSogfCAt LXByb2dyYW0tc3VmZmk9KiBcCisrICB8IC0tcHJvZ3JhbS1zdWZmPSogfCAtLXByb2dyYW0tc3Vm PSogfCAtLXByb2dyYW0tc3U9KiB8IC0tcHJvZ3JhbS1zPSopCisrICAgIHByb2dyYW1fc3VmZml4 PSRhY19vcHRhcmcgOzsKKysKKysgIC1wcm9ncmFtLXRyYW5zZm9ybS1uYW1lIHwgLS1wcm9ncmFt LXRyYW5zZm9ybS1uYW1lIFwKKysgIHwgLS1wcm9ncmFtLXRyYW5zZm9ybS1uYW0gfCAtLXByb2dy YW0tdHJhbnNmb3JtLW5hIFwKKysgIHwgLS1wcm9ncmFtLXRyYW5zZm9ybS1uIHwgLS1wcm9ncmFt LXRyYW5zZm9ybS0gXAorKyAgfCAtLXByb2dyYW0tdHJhbnNmb3JtIHwgLS1wcm9ncmFtLXRyYW5z Zm9yIFwKKysgIHwgLS1wcm9ncmFtLXRyYW5zZm8gfCAtLXByb2dyYW0tdHJhbnNmIFwKKysgIHwg LS1wcm9ncmFtLXRyYW5zIHwgLS1wcm9ncmFtLXRyYW4gXAorKyAgfCAtLXByb2dyLXRyYSB8IC0t cHJvZ3JhbS10ciB8IC0tcHJvZ3JhbS10KQorKyAgICBhY19wcmV2PXByb2dyYW1fdHJhbnNmb3Jt X25hbWUgOzsKKysgIC1wcm9ncmFtLXRyYW5zZm9ybS1uYW1lPSogfCAtLXByb2dyYW0tdHJhbnNm b3JtLW5hbWU9KiBcCisrICB8IC0tcHJvZ3JhbS10cmFuc2Zvcm0tbmFtPSogfCAtLXByb2dyYW0t dHJhbnNmb3JtLW5hPSogXAorKyAgfCAtLXByb2dyYW0tdHJhbnNmb3JtLW49KiB8IC0tcHJvZ3Jh bS10cmFuc2Zvcm0tPSogXAorKyAgfCAtLXByb2dyYW0tdHJhbnNmb3JtPSogfCAtLXByb2dyYW0t dHJhbnNmb3I9KiBcCisrICB8IC0tcHJvZ3JhbS10cmFuc2ZvPSogfCAtLXByb2dyYW0tdHJhbnNm PSogXAorKyAgfCAtLXByb2dyYW0tdHJhbnM9KiB8IC0tcHJvZ3JhbS10cmFuPSogXAorKyAgfCAt LXByb2dyLXRyYT0qIHwgLS1wcm9ncmFtLXRyPSogfCAtLXByb2dyYW0tdD0qKQorKyAgICBwcm9n cmFtX3RyYW5zZm9ybV9uYW1lPSRhY19vcHRhcmcgOzsKKysKKysgIC1wZGZkaXIgfCAtLXBkZmRp ciB8IC0tcGRmZGkgfCAtLXBkZmQgfCAtLXBkZiB8IC0tcGQpCisrICAgIGFjX3ByZXY9cGRmZGly IDs7CisrICAtcGRmZGlyPSogfCAtLXBkZmRpcj0qIHwgLS1wZGZkaT0qIHwgLS1wZGZkPSogfCAt LXBkZj0qIHwgLS1wZD0qKQorKyAgICBwZGZkaXI9JGFjX29wdGFyZyA7OworKworKyAgLXBzZGly IHwgLS1wc2RpciB8IC0tcHNkaSB8IC0tcHNkIHwgLS1wcykKKysgICAgYWNfcHJldj1wc2RpciA7 OworKyAgLXBzZGlyPSogfCAtLXBzZGlyPSogfCAtLXBzZGk9KiB8IC0tcHNkPSogfCAtLXBzPSop CisrICAgIHBzZGlyPSRhY19vcHRhcmcgOzsKKysKKysgIC1xIHwgLXF1aWV0IHwgLS1xdWlldCB8 IC0tcXVpZSB8IC0tcXVpIHwgLS1xdSB8IC0tcSBcCisrICB8IC1zaWxlbnQgfCAtLXNpbGVudCB8 IC0tc2lsZW4gfCAtLXNpbGUgfCAtLXNpbCkKKysgICAgc2lsZW50PXllcyA7OworKworKyAgLXNi aW5kaXIgfCAtLXNiaW5kaXIgfCAtLXNiaW5kaSB8IC0tc2JpbmQgfCAtLXNiaW4gfCAtLXNiaSB8 IC0tc2IpCisrICAgIGFjX3ByZXY9c2JpbmRpciA7OworKyAgLXNiaW5kaXI9KiB8IC0tc2JpbmRp cj0qIHwgLS1zYmluZGk9KiB8IC0tc2JpbmQ9KiB8IC0tc2Jpbj0qIFwKKysgIHwgLS1zYmk9KiB8 IC0tc2I9KikKKysgICAgc2JpbmRpcj0kYWNfb3B0YXJnIDs7CisrCisrICAtc2hhcmVkc3RhdGVk aXIgfCAtLXNoYXJlZHN0YXRlZGlyIHwgLS1zaGFyZWRzdGF0ZWRpIFwKKysgIHwgLS1zaGFyZWRz dGF0ZWQgfCAtLXNoYXJlZHN0YXRlIHwgLS1zaGFyZWRzdGF0IHwgLS1zaGFyZWRzdGEgXAorKyAg fCAtLXNoYXJlZHN0IHwgLS1zaGFyZWRzIHwgLS1zaGFyZWQgfCAtLXNoYXJlIHwgLS1zaGFyIFwK KysgIHwgLS1zaGEgfCAtLXNoKQorKyAgICBhY19wcmV2PXNoYXJlZHN0YXRlZGlyIDs7CisrICAt c2hhcmVkc3RhdGVkaXI9KiB8IC0tc2hhcmVkc3RhdGVkaXI9KiB8IC0tc2hhcmVkc3RhdGVkaT0q IFwKKysgIHwgLS1zaGFyZWRzdGF0ZWQ9KiB8IC0tc2hhcmVkc3RhdGU9KiB8IC0tc2hhcmVkc3Rh dD0qIHwgLS1zaGFyZWRzdGE9KiBcCisrICB8IC0tc2hhcmVkc3Q9KiB8IC0tc2hhcmVkcz0qIHwg LS1zaGFyZWQ9KiB8IC0tc2hhcmU9KiB8IC0tc2hhcj0qIFwKKysgIHwgLS1zaGE9KiB8IC0tc2g9 KikKKysgICAgc2hhcmVkc3RhdGVkaXI9JGFjX29wdGFyZyA7OworKworKyAgLXNpdGUgfCAtLXNp dGUgfCAtLXNpdCkKKysgICAgYWNfcHJldj1zaXRlIDs7CisrICAtc2l0ZT0qIHwgLS1zaXRlPSog fCAtLXNpdD0qKQorKyAgICBzaXRlPSRhY19vcHRhcmcgOzsKKysKKysgIC1zcmNkaXIgfCAtLXNy Y2RpciB8IC0tc3JjZGkgfCAtLXNyY2QgfCAtLXNyYyB8IC0tc3IpCisrICAgIGFjX3ByZXY9c3Jj ZGlyIDs7CisrICAtc3JjZGlyPSogfCAtLXNyY2Rpcj0qIHwgLS1zcmNkaT0qIHwgLS1zcmNkPSog fCAtLXNyYz0qIHwgLS1zcj0qKQorKyAgICBzcmNkaXI9JGFjX29wdGFyZyA7OworKworKyAgLXN5 c2NvbmZkaXIgfCAtLXN5c2NvbmZkaXIgfCAtLXN5c2NvbmZkaSB8IC0tc3lzY29uZmQgfCAtLXN5 c2NvbmYgXAorKyAgfCAtLXN5c2NvbiB8IC0tc3lzY28gfCAtLXN5c2MgfCAtLXN5cyB8IC0tc3kp CisrICAgIGFjX3ByZXY9c3lzY29uZmRpciA7OworKyAgLXN5c2NvbmZkaXI9KiB8IC0tc3lzY29u ZmRpcj0qIHwgLS1zeXNjb25mZGk9KiB8IC0tc3lzY29uZmQ9KiB8IC0tc3lzY29uZj0qIFwKKysg IHwgLS1zeXNjb249KiB8IC0tc3lzY289KiB8IC0tc3lzYz0qIHwgLS1zeXM9KiB8IC0tc3k9KikK KysgICAgc3lzY29uZmRpcj0kYWNfb3B0YXJnIDs7CisrCisrICAtdGFyZ2V0IHwgLS10YXJnZXQg fCAtLXRhcmdlIHwgLS10YXJnIHwgLS10YXIgfCAtLXRhIHwgLS10KQorKyAgICBhY19wcmV2PXRh cmdldF9hbGlhcyA7OworKyAgLXRhcmdldD0qIHwgLS10YXJnZXQ9KiB8IC0tdGFyZ2U9KiB8IC0t dGFyZz0qIHwgLS10YXI9KiB8IC0tdGE9KiB8IC0tdD0qKQorKyAgICB0YXJnZXRfYWxpYXM9JGFj X29wdGFyZyA7OworKworKyAgLXYgfCAtdmVyYm9zZSB8IC0tdmVyYm9zZSB8IC0tdmVyYm9zIHwg LS12ZXJibyB8IC0tdmVyYikKKysgICAgdmVyYm9zZT15ZXMgOzsKKysKKysgIC12ZXJzaW9uIHwg LS12ZXJzaW9uIHwgLS12ZXJzaW8gfCAtLXZlcnNpIHwgLS12ZXJzIHwgLVYpCisrICAgIGFjX2lu aXRfdmVyc2lvbj06IDs7CisrCisrICAtd2l0aC0qIHwgLS13aXRoLSopCisrICAgIGFjX3VzZXJv cHQ9YGV4cHIgIngkYWNfb3B0aW9uIiA6ICd4LSp3aXRoLVwoW149XSpcKSdgCisrICAgICMgUmVq ZWN0IG5hbWVzIHRoYXQgYXJlIG5vdCB2YWxpZCBzaGVsbCB2YXJpYWJsZSBuYW1lcy4KKysgICAg ZXhwciAieCRhY191c2Vyb3B0IiA6ICIuKlteLSsuXyRhc19jcl9hbG51bV0iID4vZGV2L251bGwg JiYKKysgICAgICB7ICRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBpbnZhbGlkIHBhY2thZ2UgbmFt ZTogJGFjX3VzZXJvcHQiID4mMgorKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQorKyAgICBh Y191c2Vyb3B0X29yaWc9JGFjX3VzZXJvcHQKKysgICAgYWNfdXNlcm9wdD1gJGFzX2VjaG8gIiRh Y191c2Vyb3B0IiB8IHNlZCAncy9bLSsuXS9fL2cnYAorKyAgICBjYXNlICRhY191c2VyX29wdHMg aW4KKysgICAgICAqIgorKyJ3aXRoXyRhY191c2Vyb3B0IgorKyIqKSA7OworKyAgICAgICopIGFj X3VucmVjb2duaXplZF9vcHRzPSIkYWNfdW5yZWNvZ25pemVkX29wdHMkYWNfdW5yZWNvZ25pemVk X3NlcC0td2l0aC0kYWNfdXNlcm9wdF9vcmlnIgorKwkgYWNfdW5yZWNvZ25pemVkX3NlcD0nLCAn OzsKKysgICAgZXNhYworKyAgICBldmFsIHdpdGhfJGFjX3VzZXJvcHQ9XCRhY19vcHRhcmcgOzsK KysKKysgIC13aXRob3V0LSogfCAtLXdpdGhvdXQtKikKKysgICAgYWNfdXNlcm9wdD1gZXhwciAi eCRhY19vcHRpb24iIDogJ3gtKndpdGhvdXQtXCguKlwpJ2AKKysgICAgIyBSZWplY3QgbmFtZXMg dGhhdCBhcmUgbm90IHZhbGlkIHNoZWxsIHZhcmlhYmxlIG5hbWVzLgorKyAgICBleHByICJ4JGFj X3VzZXJvcHQiIDogIi4qW14tKy5fJGFzX2NyX2FsbnVtXSIgPi9kZXYvbnVsbCAmJgorKyAgICAg IHsgJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IGludmFsaWQgcGFja2FnZSBuYW1lOiAkYWNfdXNl cm9wdCIgPiYyCisrICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9CisrICAgIGFjX3VzZXJvcHRf b3JpZz0kYWNfdXNlcm9wdAorKyAgICBhY191c2Vyb3B0PWAkYXNfZWNobyAiJGFjX3VzZXJvcHQi IHwgc2VkICdzL1stKy5dL18vZydgCisrICAgIGNhc2UgJGFjX3VzZXJfb3B0cyBpbgorKyAgICAg ICoiCisrIndpdGhfJGFjX3VzZXJvcHQiCisrIiopIDs7CisrICAgICAgKikgYWNfdW5yZWNvZ25p emVkX29wdHM9IiRhY191bnJlY29nbml6ZWRfb3B0cyRhY191bnJlY29nbml6ZWRfc2VwLS13aXRo b3V0LSRhY191c2Vyb3B0X29yaWciCisrCSBhY191bnJlY29nbml6ZWRfc2VwPScsICc7OworKyAg ICBlc2FjCisrICAgIGV2YWwgd2l0aF8kYWNfdXNlcm9wdD1ubyA7OworKworKyAgLS14KQorKyAg ICAjIE9ic29sZXRlOyB1c2UgLS13aXRoLXguCisrICAgIHdpdGhfeD15ZXMgOzsKKysKKysgIC14 LWluY2x1ZGVzIHwgLS14LWluY2x1ZGVzIHwgLS14LWluY2x1ZGUgfCAtLXgtaW5jbHVkIHwgLS14 LWluY2x1IFwKKysgIHwgLS14LWluY2wgfCAtLXgtaW5jIHwgLS14LWluIHwgLS14LWkpCisrICAg IGFjX3ByZXY9eF9pbmNsdWRlcyA7OworKyAgLXgtaW5jbHVkZXM9KiB8IC0teC1pbmNsdWRlcz0q IHwgLS14LWluY2x1ZGU9KiB8IC0teC1pbmNsdWQ9KiB8IC0teC1pbmNsdT0qIFwKKysgIHwgLS14 LWluY2w9KiB8IC0teC1pbmM9KiB8IC0teC1pbj0qIHwgLS14LWk9KikKKysgICAgeF9pbmNsdWRl cz0kYWNfb3B0YXJnIDs7CisrCisrICAteC1saWJyYXJpZXMgfCAtLXgtbGlicmFyaWVzIHwgLS14 LWxpYnJhcmllIHwgLS14LWxpYnJhcmkgXAorKyAgfCAtLXgtbGlicmFyIHwgLS14LWxpYnJhIHwg LS14LWxpYnIgfCAtLXgtbGliIHwgLS14LWxpIHwgLS14LWwpCisrICAgIGFjX3ByZXY9eF9saWJy YXJpZXMgOzsKKysgIC14LWxpYnJhcmllcz0qIHwgLS14LWxpYnJhcmllcz0qIHwgLS14LWxpYnJh cmllPSogfCAtLXgtbGlicmFyaT0qIFwKKysgIHwgLS14LWxpYnJhcj0qIHwgLS14LWxpYnJhPSog fCAtLXgtbGlicj0qIHwgLS14LWxpYj0qIHwgLS14LWxpPSogfCAtLXgtbD0qKQorKyAgICB4X2xp YnJhcmllcz0kYWNfb3B0YXJnIDs7CisrCisrICAtKikgeyAkYXNfZWNobyAiJGFzX21lOiBlcnJv cjogdW5yZWNvZ25pemVkIG9wdGlvbjogJGFjX29wdGlvbgorK1RyeSBcYCQwIC0taGVscCcgZm9y IG1vcmUgaW5mb3JtYXRpb24uIiA+JjIKKysgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KKysg ICAgOzsKKysKKysgICo9KikKKysgICAgYWNfZW52dmFyPWBleHByICJ4JGFjX29wdGlvbiIgOiAn eFwoW149XSpcKT0nYAorKyAgICAjIFJlamVjdCBuYW1lcyB0aGF0IGFyZSBub3QgdmFsaWQgc2hl bGwgdmFyaWFibGUgbmFtZXMuCisrICAgIGV4cHIgIngkYWNfZW52dmFyIiA6ICIuKlteXyRhc19j cl9hbG51bV0iID4vZGV2L251bGwgJiYKKysgICAgICB7ICRhc19lY2hvICIkYXNfbWU6IGVycm9y OiBpbnZhbGlkIHZhcmlhYmxlIG5hbWU6ICRhY19lbnZ2YXIiID4mMgorKyAgIHsgKGV4aXQgMSk7 IGV4aXQgMTsgfTsgfQorKyAgICBldmFsICRhY19lbnZ2YXI9XCRhY19vcHRhcmcKKysgICAgZXhw b3J0ICRhY19lbnZ2YXIgOzsKKysKKysgICopCisrICAgICMgRklYTUU6IHNob3VsZCBiZSByZW1v dmVkIGluIGF1dG9jb25mIDMuMC4KKysgICAgJGFzX2VjaG8gIiRhc19tZTogV0FSTklORzogeW91 IHNob3VsZCB1c2UgLS1idWlsZCwgLS1ob3N0LCAtLXRhcmdldCIgPiYyCisrICAgIGV4cHIgIngk YWNfb3B0aW9uIiA6ICIuKlteLS5fJGFzX2NyX2FsbnVtXSIgPi9kZXYvbnVsbCAmJgorKyAgICAg ICRhc19lY2hvICIkYXNfbWU6IFdBUk5JTkc6IGludmFsaWQgaG9zdCB0eXBlOiAkYWNfb3B0aW9u IiA+JjIKKysgICAgOiAke2J1aWxkX2FsaWFzPSRhY19vcHRpb259ICR7aG9zdF9hbGlhcz0kYWNf b3B0aW9ufSAke3RhcmdldF9hbGlhcz0kYWNfb3B0aW9ufQorKyAgICA7OworKworKyAgZXNhYwor IGRvbmUKKyAKKy1pZiBbICR0Y2xfZm91bmQgLWVxIDAgXQorLXRoZW4KKy0gICAgICAgIGVjaG8g J05PVCBmb3VuZC4nCistICAgICAgICBlY2hvICdJcyB0aGUgVGNsIGluc3RhbGxlZD8nCistICAg ICAgICBleGl0CisraWYgdGVzdCAtbiAiJGFjX3ByZXYiOyB0aGVuCisrICBhY19vcHRpb249LS1g ZWNobyAkYWNfcHJldiB8IHNlZCAncy9fLy0vZydgCisrICB7ICRhc19lY2hvICIkYXNfbWU6IGVy cm9yOiBtaXNzaW5nIGFyZ3VtZW50IHRvICRhY19vcHRpb24iID4mMgorKyAgIHsgKGV4aXQgMSk7 IGV4aXQgMTsgfTsgfQorK2ZpCisrCisraWYgdGVzdCAtbiAiJGFjX3VucmVjb2duaXplZF9vcHRz IjsgdGhlbgorKyAgY2FzZSAkZW5hYmxlX29wdGlvbl9jaGVja2luZyBpbgorKyAgICBubykgOzsK KysgICAgZmF0YWwpIHsgJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IHVucmVjb2duaXplZCBvcHRp b25zOiAkYWNfdW5yZWNvZ25pemVkX29wdHMiID4mMgorKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsg fTsgfSA7OworKyAgICAqKSAgICAgJGFzX2VjaG8gIiRhc19tZTogV0FSTklORzogdW5yZWNvZ25p emVkIG9wdGlvbnM6ICRhY191bnJlY29nbml6ZWRfb3B0cyIgPiYyIDs7CisrICBlc2FjCisrZmkK KysKKysjIENoZWNrIGFsbCBkaXJlY3RvcnkgYXJndW1lbnRzIGZvciBjb25zaXN0ZW5jeS4KKytm b3IgYWNfdmFyIGluCWV4ZWNfcHJlZml4IHByZWZpeCBiaW5kaXIgc2JpbmRpciBsaWJleGVjZGly IGRhdGFyb290ZGlyIFwKKysJCWRhdGFkaXIgc3lzY29uZmRpciBzaGFyZWRzdGF0ZWRpciBsb2Nh bHN0YXRlZGlyIGluY2x1ZGVkaXIgXAorKwkJb2xkaW5jbHVkZWRpciBkb2NkaXIgaW5mb2RpciBo dG1sZGlyIGR2aWRpciBwZGZkaXIgcHNkaXIgXAorKwkJbGliZGlyIGxvY2FsZWRpciBtYW5kaXIK KytkbworKyAgZXZhbCBhY192YWw9XCQkYWNfdmFyCisrICAjIFJlbW92ZSB0cmFpbGluZyBzbGFz aGVzLgorKyAgY2FzZSAkYWNfdmFsIGluCisrICAgICovICkKKysgICAgICBhY192YWw9YGV4cHIg IlgkYWNfdmFsIiA6ICdYXCguKlteL11cKScgXHwgIlgkYWNfdmFsIiA6ICdYXCguKlwpJ2AKKysg ICAgICBldmFsICRhY192YXI9XCRhY192YWw7OworKyAgZXNhYworKyAgIyBCZSBzdXJlIHRvIGhh dmUgYWJzb2x1dGUgZGlyZWN0b3J5IG5hbWVzLgorKyAgY2FzZSAkYWNfdmFsIGluCisrICAgIFtc XC8kXSogfCA/OltcXC9dKiApICBjb250aW51ZTs7CisrICAgIE5PTkUgfCAnJyApIGNhc2UgJGFj X3ZhciBpbiAqcHJlZml4ICkgY29udGludWU7OyBlc2FjOzsKKysgIGVzYWMKKysgIHsgJGFzX2Vj aG8gIiRhc19tZTogZXJyb3I6IGV4cGVjdGVkIGFuIGFic29sdXRlIGRpcmVjdG9yeSBuYW1lIGZv ciAtLSRhY192YXI6ICRhY192YWwiID4mMgorKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQor K2RvbmUKKysKKysjIFRoZXJlIG1pZ2h0IGJlIHBlb3BsZSB3aG8gZGVwZW5kIG9uIHRoZSBvbGQg YnJva2VuIGJlaGF2aW9yOiBgJGhvc3QnCisrIyB1c2VkIHRvIGhvbGQgdGhlIGFyZ3VtZW50IG9m IC0taG9zdCBldGMuCisrIyBGSVhNRTogVG8gcmVtb3ZlIHNvbWUgZGF5LgorK2J1aWxkPSRidWls ZF9hbGlhcworK2hvc3Q9JGhvc3RfYWxpYXMKKyt0YXJnZXQ9JHRhcmdldF9hbGlhcworKworKyMg RklYTUU6IFRvIHJlbW92ZSBzb21lIGRheS4KKytpZiB0ZXN0ICJ4JGhvc3RfYWxpYXMiICE9IHg7 IHRoZW4KKysgIGlmIHRlc3QgIngkYnVpbGRfYWxpYXMiID0geDsgdGhlbgorKyAgICBjcm9zc19j b21waWxpbmc9bWF5YmUKKysgICAgJGFzX2VjaG8gIiRhc19tZTogV0FSTklORzogSWYgeW91IHdh bnRlZCB0byBzZXQgdGhlIC0tYnVpbGQgdHlwZSwgZG9uJ3QgdXNlIC0taG9zdC4KKysgICAgSWYg YSBjcm9zcyBjb21waWxlciBpcyBkZXRlY3RlZCB0aGVuIGNyb3NzIGNvbXBpbGUgbW9kZSB3aWxs IGJlIHVzZWQuIiA+JjIKKysgIGVsaWYgdGVzdCAieCRidWlsZF9hbGlhcyIgIT0gIngkaG9zdF9h bGlhcyI7IHRoZW4KKysgICAgY3Jvc3NfY29tcGlsaW5nPXllcworKyAgZmkKKytmaQorKworK2Fj X3Rvb2xfcHJlZml4PQorK3Rlc3QgLW4gIiRob3N0X2FsaWFzIiAmJiBhY190b29sX3ByZWZpeD0k aG9zdF9hbGlhcy0KKysKKyt0ZXN0ICIkc2lsZW50IiA9IHllcyAmJiBleGVjIDY+L2Rldi9udWxs CisrCisrCisrYWNfcHdkPWBwd2RgICYmIHRlc3QgLW4gIiRhY19wd2QiICYmCisrYWNfbHNfZGk9 YGxzIC1kaSAuYCAmJgorK2FjX3B3ZF9sc19kaT1gY2QgIiRhY19wd2QiICYmIGxzIC1kaSAuYCB8 fAorKyAgeyAkYXNfZWNobyAiJGFzX21lOiBlcnJvcjogd29ya2luZyBkaXJlY3RvcnkgY2Fubm90 IGJlIGRldGVybWluZWQiID4mMgorKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQorK3Rlc3Qg IlgkYWNfbHNfZGkiID0gIlgkYWNfcHdkX2xzX2RpIiB8fAorKyAgeyAkYXNfZWNobyAiJGFzX21l OiBlcnJvcjogcHdkIGRvZXMgbm90IHJlcG9ydCBuYW1lIG9mIHdvcmtpbmcgZGlyZWN0b3J5IiA+ JjIKKysgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KKysKKysKKysjIEZpbmQgdGhlIHNvdXJj ZSBmaWxlcywgaWYgbG9jYXRpb24gd2FzIG5vdCBzcGVjaWZpZWQuCisraWYgdGVzdCAteiAiJHNy Y2RpciI7IHRoZW4KKysgIGFjX3NyY2Rpcl9kZWZhdWx0ZWQ9eWVzCisrICAjIFRyeSB0aGUgZGly ZWN0b3J5IGNvbnRhaW5pbmcgdGhpcyBzY3JpcHQsIHRoZW4gdGhlIHBhcmVudCBkaXJlY3Rvcnku CisrICBhY19jb25mZGlyPWAkYXNfZGlybmFtZSAtLSAiJGFzX215c2VsZiIgfHwKKyskYXNfZXhw ciBYIiRhc19teXNlbGYiIDogJ1hcKC4qW14vXVwpLy8qW14vXVteL10qLyokJyBcfCBcCisrCSBY IiRhc19teXNlbGYiIDogJ1hcKC8vXClbXi9dJyBcfCBcCisrCSBYIiRhc19teXNlbGYiIDogJ1hc KC8vXCkkJyBcfCBcCisrCSBYIiRhc19teXNlbGYiIDogJ1hcKC9cKScgXHwgLiAyPi9kZXYvbnVs bCB8fAorKyRhc19lY2hvIFgiJGFzX215c2VsZiIgfAorKyAgICBzZWQgJy9eWFwoLipbXi9dXClc L1wvKlteL11bXi9dKlwvKiQveworKwkgICAgcy8vXDEvCisrCSAgICBxCisrCSAgfQorKwkgIC9e WFwoXC9cL1wpW14vXS4qL3sKKysJICAgIHMvL1wxLworKwkgICAgcQorKwkgIH0KKysJICAvXlhc KFwvXC9cKSQveworKwkgICAgcy8vXDEvCisrCSAgICBxCisrCSAgfQorKwkgIC9eWFwoXC9cKS4q L3sKKysJICAgIHMvL1wxLworKwkgICAgcQorKwkgIH0KKysJICBzLy4qLy4vOyBxJ2AKKysgIHNy Y2Rpcj0kYWNfY29uZmRpcgorKyAgaWYgdGVzdCAhIC1yICIkc3JjZGlyLyRhY191bmlxdWVfZmls ZSI7IHRoZW4KKysgICAgc3JjZGlyPS4uCisrICBmaQorK2Vsc2UKKysgIGFjX3NyY2Rpcl9kZWZh dWx0ZWQ9bm8KKytmaQorK2lmIHRlc3QgISAtciAiJHNyY2Rpci8kYWNfdW5pcXVlX2ZpbGUiOyB0 aGVuCisrICB0ZXN0ICIkYWNfc3JjZGlyX2RlZmF1bHRlZCIgPSB5ZXMgJiYgc3JjZGlyPSIkYWNf Y29uZmRpciBvciAuLiIKKysgIHsgJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IGNhbm5vdCBmaW5k IHNvdXJjZXMgKCRhY191bmlxdWVfZmlsZSkgaW4gJHNyY2RpciIgPiYyCisrICAgeyAoZXhpdCAx KTsgZXhpdCAxOyB9OyB9CisrZmkKKythY19tc2c9InNvdXJjZXMgYXJlIGluICRzcmNkaXIsIGJ1 dCBcYGNkICRzcmNkaXInIGRvZXMgbm90IHdvcmsiCisrYWNfYWJzX2NvbmZkaXI9YCgKKysJY2Qg IiRzcmNkaXIiICYmIHRlc3QgLXIgIi4vJGFjX3VuaXF1ZV9maWxlIiB8fCB7ICRhc19lY2hvICIk YXNfbWU6IGVycm9yOiAkYWNfbXNnIiA+JjIKKysgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0K KysJcHdkKWAKKysjIFdoZW4gYnVpbGRpbmcgaW4gcGxhY2UsIHNldCBzcmNkaXI9LgorK2lmIHRl c3QgIiRhY19hYnNfY29uZmRpciIgPSAiJGFjX3B3ZCI7IHRoZW4KKysgIHNyY2Rpcj0uCisrZmkK KysjIFJlbW92ZSB1bm5lY2Vzc2FyeSB0cmFpbGluZyBzbGFzaGVzIGZyb20gc3JjZGlyLgorKyMg RG91YmxlIHNsYXNoZXMgaW4gZmlsZSBuYW1lcyBpbiBvYmplY3QgZmlsZSBkZWJ1Z2dpbmcgaW5m bworKyMgbWVzcyB1cCBNLXggZ2RiIGluIEVtYWNzLgorK2Nhc2UgJHNyY2RpciBpbgorKyovKSBz cmNkaXI9YGV4cHIgIlgkc3JjZGlyIiA6ICdYXCguKlteL11cKScgXHwgIlgkc3JjZGlyIiA6ICdY XCguKlwpJ2A7OworK2VzYWMKKytmb3IgYWNfdmFyIGluICRhY19wcmVjaW91c192YXJzOyBkbwor KyAgZXZhbCBhY19lbnZfJHthY192YXJ9X3NldD1cJHske2FjX3Zhcn0rc2V0fQorKyAgZXZhbCBh Y19lbnZfJHthY192YXJ9X3ZhbHVlPVwkJHthY192YXJ9CisrICBldmFsIGFjX2N2X2Vudl8ke2Fj X3Zhcn1fc2V0PVwkeyR7YWNfdmFyfStzZXR9CisrICBldmFsIGFjX2N2X2Vudl8ke2FjX3Zhcn1f dmFsdWU9XCQke2FjX3Zhcn0KKytkb25lCisrCisrIworKyMgUmVwb3J0IHRoZSAtLWhlbHAgbWVz c2FnZS4KKysjCisraWYgdGVzdCAiJGFjX2luaXRfaGVscCIgPSAibG9uZyI7IHRoZW4KKysgICMg T21pdCBzb21lIGludGVybmFsIG9yIG9ic29sZXRlIG9wdGlvbnMgdG8gbWFrZSB0aGUgbGlzdCBs ZXNzIGltcG9zaW5nLgorKyAgIyBUaGlzIG1lc3NhZ2UgaXMgdG9vIGxvbmcgdG8gYmUgYSBzdHJp bmcgaW4gdGhlIEEvVVggMy4xIHNoLgorKyAgY2F0IDw8X0FDRU9GCisrXGBjb25maWd1cmUnIGNv bmZpZ3VyZXMgU09DSSAzLjAuMCB0byBhZGFwdCB0byBtYW55IGtpbmRzIG9mIHN5c3RlbXMuCisr CisrVXNhZ2U6ICQwIFtPUFRJT05dLi4uIFtWQVI9VkFMVUVdLi4uCisrCisrVG8gYXNzaWduIGVu dmlyb25tZW50IHZhcmlhYmxlcyAoZS5nLiwgQ0MsIENGTEFHUy4uLiksIHNwZWNpZnkgdGhlbSBh cworK1ZBUj1WQUxVRS4gIFNlZSBiZWxvdyBmb3IgZGVzY3JpcHRpb25zIG9mIHNvbWUgb2YgdGhl IHVzZWZ1bCB2YXJpYWJsZXMuCisrCisrRGVmYXVsdHMgZm9yIHRoZSBvcHRpb25zIGFyZSBzcGVj aWZpZWQgaW4gYnJhY2tldHMuCisrCisrQ29uZmlndXJhdGlvbjoKKysgIC1oLCAtLWhlbHAgICAg ICAgICAgICAgIGRpc3BsYXkgdGhpcyBoZWxwIGFuZCBleGl0CisrICAgICAgLS1oZWxwPXNob3J0 ICAgICAgICBkaXNwbGF5IG9wdGlvbnMgc3BlY2lmaWMgdG8gdGhpcyBwYWNrYWdlCisrICAgICAg LS1oZWxwPXJlY3Vyc2l2ZSAgICBkaXNwbGF5IHRoZSBzaG9ydCBoZWxwIG9mIGFsbCB0aGUgaW5j bHVkZWQgcGFja2FnZXMKKysgIC1WLCAtLXZlcnNpb24gICAgICAgICAgIGRpc3BsYXkgdmVyc2lv biBpbmZvcm1hdGlvbiBhbmQgZXhpdAorKyAgLXEsIC0tcXVpZXQsIC0tc2lsZW50ICAgZG8gbm90 IHByaW50IFxgY2hlY2tpbmcuLi4nIG1lc3NhZ2VzCisrICAgICAgLS1jYWNoZS1maWxlPUZJTEUg ICBjYWNoZSB0ZXN0IHJlc3VsdHMgaW4gRklMRSBbZGlzYWJsZWRdCisrICAtQywgLS1jb25maWct Y2FjaGUgICAgICBhbGlhcyBmb3IgXGAtLWNhY2hlLWZpbGU9Y29uZmlnLmNhY2hlJworKyAgLW4s IC0tbm8tY3JlYXRlICAgICAgICAgZG8gbm90IGNyZWF0ZSBvdXRwdXQgZmlsZXMKKysgICAgICAt LXNyY2Rpcj1ESVIgICAgICAgIGZpbmQgdGhlIHNvdXJjZXMgaW4gRElSIFtjb25maWd1cmUgZGly IG9yIFxgLi4nXQorKworK0luc3RhbGxhdGlvbiBkaXJlY3RvcmllczoKKysgIC0tcHJlZml4PVBS RUZJWCAgICAgICAgIGluc3RhbGwgYXJjaGl0ZWN0dXJlLWluZGVwZW5kZW50IGZpbGVzIGluIFBS RUZJWAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgWyRhY19kZWZhdWx0X3ByZWZpeF0KKysg IC0tZXhlYy1wcmVmaXg9RVBSRUZJWCAgIGluc3RhbGwgYXJjaGl0ZWN0dXJlLWRlcGVuZGVudCBm aWxlcyBpbiBFUFJFRklYCisrICAgICAgICAgICAgICAgICAgICAgICAgICBbUFJFRklYXQorKwor K0J5IGRlZmF1bHQsIFxgbWFrZSBpbnN0YWxsJyB3aWxsIGluc3RhbGwgYWxsIHRoZSBmaWxlcyBp bgorK1xgJGFjX2RlZmF1bHRfcHJlZml4L2JpbicsIFxgJGFjX2RlZmF1bHRfcHJlZml4L2xpYicg ZXRjLiAgWW91IGNhbiBzcGVjaWZ5CisrYW4gaW5zdGFsbGF0aW9uIHByZWZpeCBvdGhlciB0aGFu IFxgJGFjX2RlZmF1bHRfcHJlZml4JyB1c2luZyBcYC0tcHJlZml4JywKKytmb3IgaW5zdGFuY2Ug XGAtLXByZWZpeD1cJEhPTUUnLgorKworK0ZvciBiZXR0ZXIgY29udHJvbCwgdXNlIHRoZSBvcHRp b25zIGJlbG93LgorKworK0ZpbmUgdHVuaW5nIG9mIHRoZSBpbnN0YWxsYXRpb24gZGlyZWN0b3Jp ZXM6CisrICAtLWJpbmRpcj1ESVIgICAgICAgICAgICB1c2VyIGV4ZWN1dGFibGVzIFtFUFJFRklY L2Jpbl0KKysgIC0tc2JpbmRpcj1ESVIgICAgICAgICAgIHN5c3RlbSBhZG1pbiBleGVjdXRhYmxl cyBbRVBSRUZJWC9zYmluXQorKyAgLS1saWJleGVjZGlyPURJUiAgICAgICAgcHJvZ3JhbSBleGVj dXRhYmxlcyBbRVBSRUZJWC9saWJleGVjXQorKyAgLS1zeXNjb25mZGlyPURJUiAgICAgICAgcmVh ZC1vbmx5IHNpbmdsZS1tYWNoaW5lIGRhdGEgW1BSRUZJWC9ldGNdCisrICAtLXNoYXJlZHN0YXRl ZGlyPURJUiAgICBtb2RpZmlhYmxlIGFyY2hpdGVjdHVyZS1pbmRlcGVuZGVudCBkYXRhIFtQUkVG SVgvY29tXQorKyAgLS1sb2NhbHN0YXRlZGlyPURJUiAgICAgbW9kaWZpYWJsZSBzaW5nbGUtbWFj aGluZSBkYXRhIFtQUkVGSVgvdmFyXQorKyAgLS1saWJkaXI9RElSICAgICAgICAgICAgb2JqZWN0 IGNvZGUgbGlicmFyaWVzIFtFUFJFRklYL2xpYl0KKysgIC0taW5jbHVkZWRpcj1ESVIgICAgICAg IEMgaGVhZGVyIGZpbGVzIFtQUkVGSVgvaW5jbHVkZV0KKysgIC0tb2xkaW5jbHVkZWRpcj1ESVIg ICAgIEMgaGVhZGVyIGZpbGVzIGZvciBub24tZ2NjIFsvdXNyL2luY2x1ZGVdCisrICAtLWRhdGFy b290ZGlyPURJUiAgICAgICByZWFkLW9ubHkgYXJjaC4taW5kZXBlbmRlbnQgZGF0YSByb290IFtQ UkVGSVgvc2hhcmVdCisrICAtLWRhdGFkaXI9RElSICAgICAgICAgICByZWFkLW9ubHkgYXJjaGl0 ZWN0dXJlLWluZGVwZW5kZW50IGRhdGEgW0RBVEFST09URElSXQorKyAgLS1pbmZvZGlyPURJUiAg ICAgICAgICAgaW5mbyBkb2N1bWVudGF0aW9uIFtEQVRBUk9PVERJUi9pbmZvXQorKyAgLS1sb2Nh bGVkaXI9RElSICAgICAgICAgbG9jYWxlLWRlcGVuZGVudCBkYXRhIFtEQVRBUk9PVERJUi9sb2Nh bGVdCisrICAtLW1hbmRpcj1ESVIgICAgICAgICAgICBtYW4gZG9jdW1lbnRhdGlvbiBbREFUQVJP T1RESVIvbWFuXQorKyAgLS1kb2NkaXI9RElSICAgICAgICAgICAgZG9jdW1lbnRhdGlvbiByb290 IFtEQVRBUk9PVERJUi9kb2Mvc29jaV0KKysgIC0taHRtbGRpcj1ESVIgICAgICAgICAgIGh0bWwg ZG9jdW1lbnRhdGlvbiBbRE9DRElSXQorKyAgLS1kdmlkaXI9RElSICAgICAgICAgICAgZHZpIGRv Y3VtZW50YXRpb24gW0RPQ0RJUl0KKysgIC0tcGRmZGlyPURJUiAgICAgICAgICAgIHBkZiBkb2N1 bWVudGF0aW9uIFtET0NESVJdCisrICAtLXBzZGlyPURJUiAgICAgICAgICAgICBwcyBkb2N1bWVu dGF0aW9uIFtET0NESVJdCisrX0FDRU9GCisrCisrICBjYXQgPDxcX0FDRU9GCisrCisrUHJvZ3Jh bSBuYW1lczoKKysgIC0tcHJvZ3JhbS1wcmVmaXg9UFJFRklYICAgICAgICAgICAgcHJlcGVuZCBQ UkVGSVggdG8gaW5zdGFsbGVkIHByb2dyYW0gbmFtZXMKKysgIC0tcHJvZ3JhbS1zdWZmaXg9U1VG RklYICAgICAgICAgICAgYXBwZW5kIFNVRkZJWCB0byBpbnN0YWxsZWQgcHJvZ3JhbSBuYW1lcwor KyAgLS1wcm9ncmFtLXRyYW5zZm9ybS1uYW1lPVBST0dSQU0gICBydW4gc2VkIFBST0dSQU0gb24g aW5zdGFsbGVkIHByb2dyYW0gbmFtZXMKKysKKytTeXN0ZW0gdHlwZXM6CisrICAtLWJ1aWxkPUJV SUxEICAgICBjb25maWd1cmUgZm9yIGJ1aWxkaW5nIG9uIEJVSUxEIFtndWVzc2VkXQorKyAgLS1o b3N0PUhPU1QgICAgICAgY3Jvc3MtY29tcGlsZSB0byBidWlsZCBwcm9ncmFtcyB0byBydW4gb24g SE9TVCBbQlVJTERdCisrX0FDRU9GCisrZmkKKysKKytpZiB0ZXN0IC1uICIkYWNfaW5pdF9oZWxw IjsgdGhlbgorKyAgY2FzZSAkYWNfaW5pdF9oZWxwIGluCisrICAgICBzaG9ydCB8IHJlY3Vyc2l2 ZSApIGVjaG8gIkNvbmZpZ3VyYXRpb24gb2YgU09DSSAzLjAuMDoiOzsKKysgICBlc2FjCisrICBj YXQgPDxcX0FDRU9GCisrCisrT3B0aW9uYWwgRmVhdHVyZXM6CisrICAtLWRpc2FibGUtb3B0aW9u LWNoZWNraW5nICBpZ25vcmUgdW5yZWNvZ25pemVkIC0tZW5hYmxlLy0td2l0aCBvcHRpb25zCisr ICAtLWRpc2FibGUtRkVBVFVSRSAgICAgICBkbyBub3QgaW5jbHVkZSBGRUFUVVJFIChzYW1lIGFz IC0tZW5hYmxlLUZFQVRVUkU9bm8pCisrICAtLWVuYWJsZS1GRUFUVVJFWz1BUkddICBpbmNsdWRl IEZFQVRVUkUgW0FSRz15ZXNdCisrICAtLWVuYWJsZS1zaGFyZWRbPVBLR1NdICBidWlsZCBzaGFy ZWQgbGlicmFyaWVzIFtkZWZhdWx0PW5vXQorKyAgLS1lbmFibGUtc3RhdGljWz1QS0dTXSAgYnVp bGQgc3RhdGljIGxpYnJhcmllcyBbZGVmYXVsdD15ZXNdCisrICAtLWRpc2FibGUtZGVwZW5kZW5j eS10cmFja2luZyAgc3BlZWRzIHVwIG9uZS10aW1lIGJ1aWxkCisrICAtLWVuYWJsZS1kZXBlbmRl bmN5LXRyYWNraW5nICAgZG8gbm90IHJlamVjdCBzbG93IGRlcGVuZGVuY3kgZXh0cmFjdG9ycwor KyAgLS1lbmFibGUtZmFzdC1pbnN0YWxsWz1QS0dTXQorKyAgICAgICAgICAgICAgICAgICAgICAg ICAgb3B0aW1pemUgZm9yIGZhc3QgaW5zdGFsbGF0aW9uIFtkZWZhdWx0PXllc10KKysgIC0tZGlz YWJsZS1saWJ0b29sLWxvY2sgIGF2b2lkIGxvY2tpbmcgKG1pZ2h0IGJyZWFrIHBhcmFsbGVsIGJ1 aWxkcykKKysgIC0tZW5hYmxlLWV4Y2VwdGlvbnMgICAgIGVuYWJsZSBleGNlcHRpb25zIGhhbmRs aW5nIG1lY2hhbmlzbQorKyAgLS1kaXNhYmxlLWluZm8tZG9jICAgICAgZG8gbm90IGdlbmVyYXRl IEluZm8gZG9jdW1lbnRhdGlvbgorKyAgLS1kaXNhYmxlLWh0bWwtZG9jICAgICAgZG8gbm90IGdl bmVyYXRlIEhUTUwgZG9jdW1lbnRhdGlvbgorKyAgLS1lbmFibGUtYnVycmllZC1oZWFkZXJzCisr ICAgICAgICAgICAgICAgICAgICAgICAgICBpbmNsdWRlIGhlYWRlciBmaWxlcyBmcm9tIGEgZGly ZWN0b3J5IHN0cnVjdHVyZQorKyAgLS1lbmFibGUtbXlzcWwtYnVycmllZC1oZWFkZXJzCisrICAg ICAgICAgICAgICAgICAgICAgICAgICBpbmNsdWRlIE15U1FMIGhlYWRlciBmaWxlcyBmcm9tIGEg ZGlyZWN0b3J5CisrICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3R1cmUKKysgIC0tZW5h YmxlLXBvc3RncmVzcWwtYnVycmllZC1oZWFkZXJzCisrICAgICAgICAgICAgICAgICAgICAgICAg ICBpbmNsdWRlIFBvc3RHcmVTUUwgaGVhZGVyIGZpbGVzIGZyb20gYSBkaXJlY3RvcnkKKysgICAg ICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdHVyZQorKyAgLS1lbmFibGUtYmFja2VuZC1teXNx bCAgYnVpbGQtaW4gTXlTUUwgYmFja2VuZCBzdXBwb3J0IFtkZWZhdWx0PW5vXQorKyAgLS1lbmFi bGUtYmFja2VuZC1vcmFjbGUgYnVpbGQtaW4gT1JBQ0xFIGJhY2tlbmQgc3VwcG9ydCBbZGVmYXVs dD1ub10KKysgIC0tZW5hYmxlLWJhY2tlbmQtcG9zdGdyZXNxbAorKyAgICAgICAgICAgICAgICAg ICAgICAgICAgYnVpbGQtaW4gUG9zdGdyZVNRTCBiYWNrZW5kIHN1cHBvcnQgW2RlZmF1bHQ9bm9d CisrCisrT3B0aW9uYWwgUGFja2FnZXM6CisrICAtLXdpdGgtUEFDS0FHRVs9QVJHXSAgICB1c2Ug UEFDS0FHRSBbQVJHPXllc10KKysgIC0td2l0aG91dC1QQUNLQUdFICAgICAgIGRvIG5vdCB1c2Ug UEFDS0FHRSAoc2FtZSBhcyAtLXdpdGgtUEFDS0FHRT1ubykKKysgIC0td2l0aC1jcHB1bml0LXBy ZWZpeD1QRlggICBQcmVmaXggd2hlcmUgQ3BwVW5pdCBpcyBpbnN0YWxsZWQgKG9wdGlvbmFsKQor KyAgLS13aXRoLWNwcHVuaXQtZXhlYy1wcmVmaXg9UEZYICBFeGVjIHByZWZpeCB3aGVyZSBDcHBV bml0IGlzIGluc3RhbGxlZCAob3B0aW9uYWwpCisrICAtLXdpdGgtcGljICAgICAgICAgICAgICB0 cnkgdG8gdXNlIG9ubHkgUElDL25vbi1QSUMgb2JqZWN0cyBbZGVmYXVsdD11c2UKKysgICAgICAg ICAgICAgICAgICAgICAgICAgIGJvdGhdCisrICAtLXdpdGgtZ251LWxkICAgICAgICAgICBhc3N1 bWUgdGhlIEMgY29tcGlsZXIgdXNlcyBHTlUgbGQgW2RlZmF1bHQ9bm9dCisrICAtLXdpdGgtZG9j ZGlyPURJUiAgICAgICBzZXQgZG9jdW1lbnRhdGlvbiBkaXJlY3RvcnkgdG8gRElSCisrICAtLXdp dGgtYm9vc3Q9RElSICAgICAgICB1c2UgYm9vc3QgKGRlZmF1bHQgaXMgTk8pICwgc3BlY2lmeSB0 aGUgcm9vdAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgZGlyZWN0b3J5IGZvciBib29zdCBs aWJyYXJ5IChvcHRpb25hbCkKKysgIC0td2l0aC1teXNxbD08cGF0aD4gICAgIHJvb3QgZGlyZWN0 b3J5IHBhdGggb2YgTXlTUUwgaW5zdGFsbGF0aW9uCisrICAtLXdpdGgtbXlzcWwtbGliPTxwYXRo PiBkaXJlY3RvcnkgcGF0aCBvZiBNeVNRTCBsaWJyYXJ5IGluc3RhbGxhdGlvbgorKyAgLS13aXRo LW15c3FsLWluY2x1ZGU9PHBhdGg+IGRpcmVjdG9yeSBwYXRoIG9mIE15U1FMIGhlYWRlciBpbnN0 YWxsYXRpb24KKysgIC0td2l0aC1vcmFjbGU9W0RJUl0gICAgIHVzZSBPcmFjbGUgT0NJIEFQSSBm cm9tIGdpdmVuIHBhdGggdG8gT3JhY2xlIGhvbWUKKysgICAgICAgICAgICAgICAgICAgICAgICAg IGRpcmVjdG9yeQorKyAgLS13aXRoLW9yYWNsZS1pbmNsdWRlPVtESVJdCisrICAgICAgICAgICAg ICAgICAgICAgICAgICB1c2UgT3JhY2xlIE9DSSBBUEkgaGVhZGVycyBmcm9tIGdpdmVuIHBhdGgK KysgIC0td2l0aC1vcmFjbGUtbGliPVtESVJdIHVzZSBPcmFjbGUgT0NJIEFQSSBsaWJyYXJpZXMg ZnJvbSBnaXZlbiBwYXRoCisrICAtLXdpdGgtcG9zdGdyZXNxbD1bQVJHXSB1c2UgUG9zdGdyZVNR TCBsaWJyYXJ5IFtkZWZhdWx0PXllc10sIG9wdGlvbmFsbHkKKysgICAgICAgICAgICAgICAgICAg ICAgICAgIHNwZWNpZnkgcGF0aCB0byBwZ19jb25maWcKKysKKytTb21lIGluZmx1ZW50aWFsIGVu dmlyb25tZW50IHZhcmlhYmxlczoKKysgIENYWCAgICAgICAgIEMrKyBjb21waWxlciBjb21tYW5k CisrICBDWFhGTEFHUyAgICBDKysgY29tcGlsZXIgZmxhZ3MKKysgIExERkxBR1MgICAgIGxpbmtl ciBmbGFncywgZS5nLiAtTDxsaWIgZGlyPiBpZiB5b3UgaGF2ZSBsaWJyYXJpZXMgaW4gYQorKyAg ICAgICAgICAgICAgbm9uc3RhbmRhcmQgZGlyZWN0b3J5IDxsaWIgZGlyPgorKyAgTElCUyAgICAg ICAgbGlicmFyaWVzIHRvIHBhc3MgdG8gdGhlIGxpbmtlciwgZS5nLiAtbDxsaWJyYXJ5PgorKyAg Q1BQRkxBR1MgICAgQy9DKysvT2JqZWN0aXZlIEMgcHJlcHJvY2Vzc29yIGZsYWdzLCBlLmcuIC1J PGluY2x1ZGUgZGlyPiBpZgorKyAgICAgICAgICAgICAgeW91IGhhdmUgaGVhZGVycyBpbiBhIG5v bnN0YW5kYXJkIGRpcmVjdG9yeSA8aW5jbHVkZSBkaXI+CisrICBDWFhDUFAgICAgICBDKysgcHJl cHJvY2Vzc29yCisrICBDQyAgICAgICAgICBDIGNvbXBpbGVyIGNvbW1hbmQKKysgIENGTEFHUyAg ICAgIEMgY29tcGlsZXIgZmxhZ3MKKysgIENQUCAgICAgICAgIEMgcHJlcHJvY2Vzc29yCisrCisr VXNlIHRoZXNlIHZhcmlhYmxlcyB0byBvdmVycmlkZSB0aGUgY2hvaWNlcyBtYWRlIGJ5IGBjb25m aWd1cmUnIG9yIHRvIGhlbHAKKytpdCB0byBmaW5kIGxpYnJhcmllcyBhbmQgcHJvZ3JhbXMgd2l0 aCBub25zdGFuZGFyZCBuYW1lcy9sb2NhdGlvbnMuCisrCisrUmVwb3J0IGJ1Z3MgdG8gPG1zb2Jj emFrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4uCisrX0FDRU9GCisrYWNfc3RhdHVzPSQ/CisrZmkK KysKKytpZiB0ZXN0ICIkYWNfaW5pdF9oZWxwIiA9ICJyZWN1cnNpdmUiOyB0aGVuCisrICAjIElm IHRoZXJlIGFyZSBzdWJkaXJzLCByZXBvcnQgdGhlaXIgc3BlY2lmaWMgLS1oZWxwLgorKyAgZm9y IGFjX2RpciBpbiA6ICRhY19zdWJkaXJzX2FsbDsgZG8gdGVzdCAieCRhY19kaXIiID0geDogJiYg Y29udGludWUKKysgICAgdGVzdCAtZCAiJGFjX2RpciIgfHwKKysgICAgICB7IGNkICIkc3JjZGly IiAmJiBhY19wd2Q9YHB3ZGAgJiYgc3JjZGlyPS4gJiYgdGVzdCAtZCAiJGFjX2RpciI7IH0gfHwK KysgICAgICBjb250aW51ZQorKyAgICBhY19idWlsZGRpcj0uCisrCisrY2FzZSAiJGFjX2RpciIg aW4KKysuKSBhY19kaXJfc3VmZml4PSBhY190b3BfYnVpbGRkaXJfc3ViPS4gYWNfdG9wX2J1aWxk X3ByZWZpeD0gOzsKKysqKQorKyAgYWNfZGlyX3N1ZmZpeD0vYCRhc19lY2hvICIkYWNfZGlyIiB8 IHNlZCAnc3xeXC5bXFwvXXx8J2AKKysgICMgQSAiLi4iIGZvciBlYWNoIGRpcmVjdG9yeSBpbiAk YWNfZGlyX3N1ZmZpeC4KKysgIGFjX3RvcF9idWlsZGRpcl9zdWI9YCRhc19lY2hvICIkYWNfZGly X3N1ZmZpeCIgfCBzZWQgJ3N8L1teXFwvXSp8Ly4ufGc7c3wvfHwnYAorKyAgY2FzZSAkYWNfdG9w X2J1aWxkZGlyX3N1YiBpbgorKyAgIiIpIGFjX3RvcF9idWlsZGRpcl9zdWI9LiBhY190b3BfYnVp bGRfcHJlZml4PSA7OworKyAgKikgIGFjX3RvcF9idWlsZF9wcmVmaXg9JGFjX3RvcF9idWlsZGRp cl9zdWIvIDs7CisrICBlc2FjIDs7CisrZXNhYworK2FjX2Fic190b3BfYnVpbGRkaXI9JGFjX3B3 ZAorK2FjX2Fic19idWlsZGRpcj0kYWNfcHdkJGFjX2Rpcl9zdWZmaXgKKysjIGZvciBiYWNrd2Fy ZCBjb21wYXRpYmlsaXR5OgorK2FjX3RvcF9idWlsZGRpcj0kYWNfdG9wX2J1aWxkX3ByZWZpeAor KworK2Nhc2UgJHNyY2RpciBpbgorKyAgLikgICMgV2UgYXJlIGJ1aWxkaW5nIGluIHBsYWNlLgor KyAgICBhY19zcmNkaXI9LgorKyAgICBhY190b3Bfc3JjZGlyPSRhY190b3BfYnVpbGRkaXJfc3Vi CisrICAgIGFjX2Fic190b3Bfc3JjZGlyPSRhY19wd2QgOzsKKysgIFtcXC9dKiB8ID86W1xcL10q ICkgICMgQWJzb2x1dGUgbmFtZS4KKysgICAgYWNfc3JjZGlyPSRzcmNkaXIkYWNfZGlyX3N1ZmZp eDsKKysgICAgYWNfdG9wX3NyY2Rpcj0kc3JjZGlyCisrICAgIGFjX2Fic190b3Bfc3JjZGlyPSRz cmNkaXIgOzsKKysgICopICMgUmVsYXRpdmUgbmFtZS4KKysgICAgYWNfc3JjZGlyPSRhY190b3Bf YnVpbGRfcHJlZml4JHNyY2RpciRhY19kaXJfc3VmZml4CisrICAgIGFjX3RvcF9zcmNkaXI9JGFj X3RvcF9idWlsZF9wcmVmaXgkc3JjZGlyCisrICAgIGFjX2Fic190b3Bfc3JjZGlyPSRhY19wd2Qv JHNyY2RpciA7OworK2VzYWMKKythY19hYnNfc3JjZGlyPSRhY19hYnNfdG9wX3NyY2RpciRhY19k aXJfc3VmZml4CisrCisrICAgIGNkICIkYWNfZGlyIiB8fCB7IGFjX3N0YXR1cz0kPzsgY29udGlu dWU7IH0KKysgICAgIyBDaGVjayBmb3IgZ3Vlc3RlZCBjb25maWd1cmUuCisrICAgIGlmIHRlc3Qg LWYgIiRhY19zcmNkaXIvY29uZmlndXJlLmdudSI7IHRoZW4KKysgICAgICBlY2hvICYmCisrICAg ICAgJFNIRUxMICIkYWNfc3JjZGlyL2NvbmZpZ3VyZS5nbnUiIC0taGVscD1yZWN1cnNpdmUKKysg ICAgZWxpZiB0ZXN0IC1mICIkYWNfc3JjZGlyL2NvbmZpZ3VyZSI7IHRoZW4KKysgICAgICBlY2hv ICYmCisrICAgICAgJFNIRUxMICIkYWNfc3JjZGlyL2NvbmZpZ3VyZSIgLS1oZWxwPXJlY3Vyc2l2 ZQorKyAgICBlbHNlCisrICAgICAgJGFzX2VjaG8gIiRhc19tZTogV0FSTklORzogbm8gY29uZmln dXJhdGlvbiBpbmZvcm1hdGlvbiBpcyBpbiAkYWNfZGlyIiA+JjIKKysgICAgZmkgfHwgYWNfc3Rh dHVzPSQ/CisrICAgIGNkICIkYWNfcHdkIiB8fCB7IGFjX3N0YXR1cz0kPzsgYnJlYWs7IH0KKysg IGRvbmUKKytmaQorKworK3Rlc3QgLW4gIiRhY19pbml0X2hlbHAiICYmIGV4aXQgJGFjX3N0YXR1 cworK2lmICRhY19pbml0X3ZlcnNpb247IHRoZW4KKysgIGNhdCA8PFxfQUNFT0YKKytTT0NJIGNv bmZpZ3VyZSAzLjAuMAorK2dlbmVyYXRlZCBieSBHTlUgQXV0b2NvbmYgMi42MworKworK0NvcHly aWdodCAoQykgMTk5MiwgMTk5MywgMTk5NCwgMTk5NSwgMTk5NiwgMTk5OCwgMTk5OSwgMjAwMCwg MjAwMSwKKysyMDAyLCAyMDAzLCAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4IEZyZWUgU29m dHdhcmUgRm91bmRhdGlvbiwgSW5jLgorK1RoaXMgY29uZmlndXJlIHNjcmlwdCBpcyBmcmVlIHNv ZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCisrZ2l2ZXMgdW5saW1pdGVkIHBl cm1pc3Npb24gdG8gY29weSwgZGlzdHJpYnV0ZSBhbmQgbW9kaWZ5IGl0LgorKworK0NvcHlyaWdo dCAoQykgMjAwNC0yMDA5IE1hY2llaiBTb2JjemFrIDxtc29iY3pha0B1c2Vycy5zb3VyY2Vmb3Jn ZS5uZXQ+CisrX0FDRU9GCisrICBleGl0CisgZmkKKytjYXQgPmNvbmZpZy5sb2cgPDxfQUNFT0YK KytUaGlzIGZpbGUgY29udGFpbnMgYW55IG1lc3NhZ2VzIHByb2R1Y2VkIGJ5IGNvbXBpbGVycyB3 aGlsZQorK3J1bm5pbmcgY29uZmlndXJlLCB0byBhaWQgZGVidWdnaW5nIGlmIGNvbmZpZ3VyZSBt YWtlcyBhIG1pc3Rha2UuCisrCisrSXQgd2FzIGNyZWF0ZWQgYnkgU09DSSAkYXNfbWUgMy4wLjAs IHdoaWNoIHdhcworK2dlbmVyYXRlZCBieSBHTlUgQXV0b2NvbmYgMi42My4gIEludm9jYXRpb24g Y29tbWFuZCBsaW5lIHdhcworKworKyAgJCAkMCAkQAorKworK19BQ0VPRgorK2V4ZWMgNT4+Y29u ZmlnLmxvZworK3sKKytjYXQgPDxfQVNVTkFNRQorKyMjIC0tLS0tLS0tLSAjIworKyMjIFBsYXRm b3JtLiAjIworKyMjIC0tLS0tLS0tLSAjIworKworK2hvc3RuYW1lID0gYChob3N0bmFtZSB8fCB1 bmFtZSAtbikgMj4vZGV2L251bGwgfCBzZWQgMXFgCisrdW5hbWUgLW0gPSBgKHVuYW1lIC1tKSAy Pi9kZXYvbnVsbCB8fCBlY2hvIHVua25vd25gCisrdW5hbWUgLXIgPSBgKHVuYW1lIC1yKSAyPi9k ZXYvbnVsbCB8fCBlY2hvIHVua25vd25gCisrdW5hbWUgLXMgPSBgKHVuYW1lIC1zKSAyPi9kZXYv bnVsbCB8fCBlY2hvIHVua25vd25gCisrdW5hbWUgLXYgPSBgKHVuYW1lIC12KSAyPi9kZXYvbnVs bCB8fCBlY2hvIHVua25vd25gCisrCisrL3Vzci9iaW4vdW5hbWUgLXAgPSBgKC91c3IvYmluL3Vu YW1lIC1wKSAyPi9kZXYvbnVsbCB8fCBlY2hvIHVua25vd25gCisrL2Jpbi91bmFtZSAtWCAgICAg PSBgKC9iaW4vdW5hbWUgLVgpIDI+L2Rldi9udWxsICAgICB8fCBlY2hvIHVua25vd25gCisrCisr L2Jpbi9hcmNoICAgICAgICAgICAgICA9IGAoL2Jpbi9hcmNoKSAyPi9kZXYvbnVsbCAgICAgICAg ICAgICAgfHwgZWNobyB1bmtub3duYAorKy91c3IvYmluL2FyY2ggLWsgICAgICAgPSBgKC91c3Iv YmluL2FyY2ggLWspIDI+L2Rldi9udWxsICAgICAgIHx8IGVjaG8gdW5rbm93bmAKKysvdXNyL2Nv bnZleC9nZXRzeXNpbmZvID0gYCgvdXNyL2NvbnZleC9nZXRzeXNpbmZvKSAyPi9kZXYvbnVsbCB8 fCBlY2hvIHVua25vd25gCisrL3Vzci9iaW4vaG9zdGluZm8gICAgICA9IGAoL3Vzci9iaW4vaG9z dGluZm8pIDI+L2Rldi9udWxsICAgICAgfHwgZWNobyB1bmtub3duYAorKy9iaW4vbWFjaGluZSAg ICAgICAgICAgPSBgKC9iaW4vbWFjaGluZSkgMj4vZGV2L251bGwgICAgICAgICAgIHx8IGVjaG8g dW5rbm93bmAKKysvdXNyL2Jpbi9vc2xldmVsICAgICAgID0gYCgvdXNyL2Jpbi9vc2xldmVsKSAy Pi9kZXYvbnVsbCAgICAgICB8fCBlY2hvIHVua25vd25gCisrL2Jpbi91bml2ZXJzZSAgICAgICAg ICA9IGAoL2Jpbi91bml2ZXJzZSkgMj4vZGV2L251bGwgICAgICAgICAgfHwgZWNobyB1bmtub3du YAorKworK19BU1VOQU1FCisrCisrYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRP UgorK2ZvciBhc19kaXIgaW4gJFBBVEgKKytkbworKyAgSUZTPSRhc19zYXZlX0lGUworKyAgdGVz dCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KKysgICRhc19lY2hvICJQQVRIOiAkYXNfZGlyIgor K2RvbmUKKytJRlM9JGFzX3NhdmVfSUZTCisrCisrfSA+JjUKKysKKytjYXQgPiY1IDw8X0FDRU9G CisrCisrCisrIyMgLS0tLS0tLS0tLS0gIyMKKysjIyBDb3JlIHRlc3RzLiAjIworKyMjIC0tLS0t LS0tLS0tICMjCisrCisrX0FDRU9GCisrCisrCisrIyBLZWVwIGEgdHJhY2Ugb2YgdGhlIGNvbW1h bmQgbGluZS4KKysjIFN0cmlwIG91dCAtLW5vLWNyZWF0ZSBhbmQgLS1uby1yZWN1cnNpb24gc28g dGhleSBkbyBub3QgcGlsZSB1cC4KKysjIFN0cmlwIG91dCAtLXNpbGVudCBiZWNhdXNlIHdlIGRv bid0IHdhbnQgdG8gcmVjb3JkIGl0IGZvciBmdXR1cmUgcnVucy4KKysjIEFsc28gcXVvdGUgYW55 IGFyZ3MgY29udGFpbmluZyBzaGVsbCBtZXRhLWNoYXJhY3RlcnMuCisrIyBNYWtlIHR3byBwYXNz ZXMgdG8gYWxsb3cgZm9yIHByb3BlciBkdXBsaWNhdGUtYXJndW1lbnQgc3VwcHJlc3Npb24uCisr YWNfY29uZmlndXJlX2FyZ3M9CisrYWNfY29uZmlndXJlX2FyZ3MwPQorK2FjX2NvbmZpZ3VyZV9h cmdzMT0KKythY19tdXN0X2tlZXBfbmV4dD1mYWxzZQorK2ZvciBhY19wYXNzIGluIDEgMgorK2Rv CisrICBmb3IgYWNfYXJnCisrICBkbworKyAgICBjYXNlICRhY19hcmcgaW4KKysgICAgLW5vLWNy ZWF0ZSB8IC0tbm8tYyogfCAtbiB8IC1uby1yZWN1cnNpb24gfCAtLW5vLXIqKSBjb250aW51ZSA7 OworKyAgICAtcSB8IC1xdWlldCB8IC0tcXVpZXQgfCAtLXF1aWUgfCAtLXF1aSB8IC0tcXUgfCAt LXEgXAorKyAgICB8IC1zaWxlbnQgfCAtLXNpbGVudCB8IC0tc2lsZW4gfCAtLXNpbGUgfCAtLXNp bCkKKysgICAgICBjb250aW51ZSA7OworKyAgICAqXCcqKQorKyAgICAgIGFjX2FyZz1gJGFzX2Vj aG8gIiRhY19hcmciIHwgc2VkICJzLycvJ1xcXFxcXFxcJycvZyJgIDs7CisrICAgIGVzYWMKKysg ICAgY2FzZSAkYWNfcGFzcyBpbgorKyAgICAxKSBhY19jb25maWd1cmVfYXJnczA9IiRhY19jb25m aWd1cmVfYXJnczAgJyRhY19hcmcnIiA7OworKyAgICAyKQorKyAgICAgIGFjX2NvbmZpZ3VyZV9h cmdzMT0iJGFjX2NvbmZpZ3VyZV9hcmdzMSAnJGFjX2FyZyciCisrICAgICAgaWYgdGVzdCAkYWNf bXVzdF9rZWVwX25leHQgPSB0cnVlOyB0aGVuCisrCWFjX211c3Rfa2VlcF9uZXh0PWZhbHNlICMg R290IHZhbHVlLCBiYWNrIHRvIG5vcm1hbC4KKysgICAgICBlbHNlCisrCWNhc2UgJGFjX2FyZyBp bgorKwkgICo9KiB8IC0tY29uZmlnLWNhY2hlIHwgLUMgfCAtZGlzYWJsZS0qIHwgLS1kaXNhYmxl LSogXAorKwkgIHwgLWVuYWJsZS0qIHwgLS1lbmFibGUtKiB8IC1nYXMgfCAtLWcqIHwgLW5mcCB8 IC0tbmYqIFwKKysJICB8IC1xIHwgLXF1aWV0IHwgLS1xKiB8IC1zaWxlbnQgfCAtLXNpbCogfCAt diB8IC12ZXJiKiBcCisrCSAgfCAtd2l0aC0qIHwgLS13aXRoLSogfCAtd2l0aG91dC0qIHwgLS13 aXRob3V0LSogfCAtLXgpCisrCSAgICBjYXNlICIkYWNfY29uZmlndXJlX2FyZ3MwICIgaW4KKysJ ICAgICAgIiRhY19jb25maWd1cmVfYXJnczEiKiIgJyRhY19hcmcnICIqICkgY29udGludWUgOzsK KysJICAgIGVzYWMKKysJICAgIDs7CisrCSAgLSogKSBhY19tdXN0X2tlZXBfbmV4dD10cnVlIDs7 CisrCWVzYWMKKysgICAgICBmaQorKyAgICAgIGFjX2NvbmZpZ3VyZV9hcmdzPSIkYWNfY29uZmln dXJlX2FyZ3MgJyRhY19hcmcnIgorKyAgICAgIDs7CisrICAgIGVzYWMKKysgIGRvbmUKKytkb25l CisrJGFzX3Vuc2V0IGFjX2NvbmZpZ3VyZV9hcmdzMCB8fCB0ZXN0ICIke2FjX2NvbmZpZ3VyZV9h cmdzMCtzZXR9IiAhPSBzZXQgfHwgeyBhY19jb25maWd1cmVfYXJnczA9OyBleHBvcnQgYWNfY29u ZmlndXJlX2FyZ3MwOyB9CisrJGFzX3Vuc2V0IGFjX2NvbmZpZ3VyZV9hcmdzMSB8fCB0ZXN0ICIk e2FjX2NvbmZpZ3VyZV9hcmdzMStzZXR9IiAhPSBzZXQgfHwgeyBhY19jb25maWd1cmVfYXJnczE9 OyBleHBvcnQgYWNfY29uZmlndXJlX2FyZ3MxOyB9CisrCisrIyBXaGVuIGludGVycnVwdGVkIG9y IGV4aXQnZCwgY2xlYW51cCB0ZW1wb3JhcnkgZmlsZXMsIGFuZCBjb21wbGV0ZQorKyMgY29uZmln LmxvZy4gIFdlIHJlbW92ZSBjb21tZW50cyBiZWNhdXNlIGFueXdheSB0aGUgcXVvdGVzIGluIHRo ZXJlCisrIyB3b3VsZCBjYXVzZSBwcm9ibGVtcyBvciBsb29rIHVnbHkuCisrIyBXQVJOSU5HOiBV c2UgJ1wnJyB0byByZXByZXNlbnQgYW4gYXBvc3Ryb3BoZSB3aXRoaW4gdGhlIHRyYXAuCisrIyBX QVJOSU5HOiBEbyBub3Qgc3RhcnQgdGhlIHRyYXAgY29kZSB3aXRoIGEgbmV3bGluZSwgZHVlIHRv IGEgRnJlZUJTRCA0LjAgYnVnLgorK3RyYXAgJ2V4aXRfc3RhdHVzPSQ/CisrICAjIFNhdmUgaW50 byBjb25maWcubG9nIHNvbWUgaW5mb3JtYXRpb24gdGhhdCBtaWdodCBoZWxwIGluIGRlYnVnZ2lu Zy4KKysgIHsKKysgICAgZWNobworKworKyAgICBjYXQgPDxcX0FTQk9YCisrIyMgLS0tLS0tLS0t LS0tLS0tLSAjIworKyMjIENhY2hlIHZhcmlhYmxlcy4gIyMKKysjIyAtLS0tLS0tLS0tLS0tLS0t ICMjCisrX0FTQk9YCisrICAgIGVjaG8KKysgICAgIyBUaGUgZm9sbG93aW5nIHdheSBvZiB3cml0 aW5nIHRoZSBjYWNoZSBtaXNoYW5kbGVzIG5ld2xpbmVzIGluIHZhbHVlcywKKysoCisrICBmb3Ig YWNfdmFyIGluIGAoc2V0KSAyPiYxIHwgc2VkIC1uICdcJydzL15cKFthLXpBLVpfXVthLXpBLVow LTlfXSpcKT0uKi9cMS9wJ1wnJ2A7IGRvCisrICAgIGV2YWwgYWNfdmFsPVwkJGFjX3ZhcgorKyAg ICBjYXNlICRhY192YWwgaW4gIygKKysgICAgKiR7YXNfbmx9KikKKysgICAgICBjYXNlICRhY192 YXIgaW4gIygKKysgICAgICAqX2N2XyopIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBXQVJO SU5HOiBjYWNoZSB2YXJpYWJsZSAkYWNfdmFyIGNvbnRhaW5zIGEgbmV3bGluZSIgPiY1CisrJGFz X2VjaG8gIiRhc19tZTogV0FSTklORzogY2FjaGUgdmFyaWFibGUgJGFjX3ZhciBjb250YWlucyBh IG5ld2xpbmUiID4mMjt9IDs7CisrICAgICAgZXNhYworKyAgICAgIGNhc2UgJGFjX3ZhciBpbiAj KAorKyAgICAgIF8gfCBJRlMgfCBhc19ubCkgOzsgIygKKysgICAgICBCQVNIX0FSR1YgfCBCQVNI X1NPVVJDRSkgZXZhbCAkYWNfdmFyPSA7OyAjKAorKyAgICAgICopICRhc191bnNldCAkYWNfdmFy IDs7CisrICAgICAgZXNhYyA7OworKyAgICBlc2FjCisrICBkb25lCisrICAoc2V0KSAyPiYxIHwK KysgICAgY2FzZSAkYXNfbmxgKGFjX3NwYWNlPSdcJycgJ1wnJzsgc2V0KSAyPiYxYCBpbiAjKAor KyAgICAqJHthc19ubH1hY19zcGFjZT1cICopCisrICAgICAgc2VkIC1uIFwKKysJInMvJ1wnJy8n XCcnXFxcXCdcJycnXCcnL2c7CisrCSAgcy9eXFwoW18kYXNfY3JfYWxudW1dKl9jdl9bXyRhc19j cl9hbG51bV0qXFwpPVxcKC4qXFwpL1xcMT0nXCcnXFwyJ1wnJy9wIgorKyAgICAgIDs7ICMoCisr ICAgICopCisrICAgICAgc2VkIC1uICIvXltfJGFzX2NyX2FsbnVtXSpfY3ZfW18kYXNfY3JfYWxu dW1dKj0vcCIKKysgICAgICA7OworKyAgICBlc2FjIHwKKysgICAgc29ydAorKykKKysgICAgZWNo bworKworKyAgICBjYXQgPDxcX0FTQk9YCisrIyMgLS0tLS0tLS0tLS0tLS0tLS0gIyMKKysjIyBP dXRwdXQgdmFyaWFibGVzLiAjIworKyMjIC0tLS0tLS0tLS0tLS0tLS0tICMjCisrX0FTQk9YCisr ICAgIGVjaG8KKysgICAgZm9yIGFjX3ZhciBpbiAkYWNfc3Vic3RfdmFycworKyAgICBkbworKyAg ICAgIGV2YWwgYWNfdmFsPVwkJGFjX3ZhcgorKyAgICAgIGNhc2UgJGFjX3ZhbCBpbgorKyAgICAg ICpcJ1wnJyopIGFjX3ZhbD1gJGFzX2VjaG8gIiRhY192YWwiIHwgc2VkICJzLydcJycvJ1wnJ1xc XFxcXFxcJ1wnJydcJycvZyJgOzsKKysgICAgICBlc2FjCisrICAgICAgJGFzX2VjaG8gIiRhY192 YXI9J1wnJyRhY192YWwnXCcnIgorKyAgICBkb25lIHwgc29ydAorKyAgICBlY2hvCisrCisrICAg IGlmIHRlc3QgLW4gIiRhY19zdWJzdF9maWxlcyI7IHRoZW4KKysgICAgICBjYXQgPDxcX0FTQk9Y CisrIyMgLS0tLS0tLS0tLS0tLS0tLS0tLSAjIworKyMjIEZpbGUgc3Vic3RpdHV0aW9ucy4gIyMK KysjIyAtLS0tLS0tLS0tLS0tLS0tLS0tICMjCisrX0FTQk9YCisrICAgICAgZWNobworKyAgICAg IGZvciBhY192YXIgaW4gJGFjX3N1YnN0X2ZpbGVzCisrICAgICAgZG8KKysJZXZhbCBhY192YWw9 XCQkYWNfdmFyCisrCWNhc2UgJGFjX3ZhbCBpbgorKwkqXCdcJycqKSBhY192YWw9YCRhc19lY2hv ICIkYWNfdmFsIiB8IHNlZCAicy8nXCcnLydcJydcXFxcXFxcXCdcJycnXCcnL2ciYDs7CisrCWVz YWMKKysJJGFzX2VjaG8gIiRhY192YXI9J1wnJyRhY192YWwnXCcnIgorKyAgICAgIGRvbmUgfCBz b3J0CisrICAgICAgZWNobworKyAgICBmaQorKworKyAgICBpZiB0ZXN0IC1zIGNvbmZkZWZzLmg7 IHRoZW4KKysgICAgICBjYXQgPDxcX0FTQk9YCisrIyMgLS0tLS0tLS0tLS0gIyMKKysjIyBjb25m ZGVmcy5oLiAjIworKyMjIC0tLS0tLS0tLS0tICMjCisrX0FTQk9YCisrICAgICAgZWNobworKyAg ICAgIGNhdCBjb25mZGVmcy5oCisrICAgICAgZWNobworKyAgICBmaQorKyAgICB0ZXN0ICIkYWNf c2lnbmFsIiAhPSAwICYmCisrICAgICAgJGFzX2VjaG8gIiRhc19tZTogY2F1Z2h0IHNpZ25hbCAk YWNfc2lnbmFsIgorKyAgICAkYXNfZWNobyAiJGFzX21lOiBleGl0ICRleGl0X3N0YXR1cyIKKysg IH0gPiY1CisrICBybSAtZiBjb3JlICouY29yZSBjb3JlLmNvbmZ0ZXN0LiogJiYKKysgICAgcm0g LWYgLXIgY29uZnRlc3QqIGNvbmZkZWZzKiBjb25mJCQqICRhY19jbGVhbl9maWxlcyAmJgorKyAg ICBleGl0ICRleGl0X3N0YXR1cworKycgMAorK2ZvciBhY19zaWduYWwgaW4gMSAyIDEzIDE1OyBk bworKyAgdHJhcCAnYWNfc2lnbmFsPSckYWNfc2lnbmFsJzsgeyAoZXhpdCAxKTsgZXhpdCAxOyB9 JyAkYWNfc2lnbmFsCisrZG9uZQorK2FjX3NpZ25hbD0wCisrCisrIyBjb25mZGVmcy5oIGF2b2lk cyBPUyBjb21tYW5kIGxpbmUgbGVuZ3RoIGxpbWl0cyB0aGF0IERFRlMgY2FuIGV4Y2VlZC4KKyty bSAtZiAtciBjb25mdGVzdCogY29uZmRlZnMuaAorKworKyMgUHJlZGVmaW5lZCBwcmVwcm9jZXNz b3IgdmFyaWFibGVzLgorKworK2NhdCA+PmNvbmZkZWZzLmggPDxfQUNFT0YKKysjZGVmaW5lIFBB Q0tBR0VfTkFNRSAiJFBBQ0tBR0VfTkFNRSIKKytfQUNFT0YKKysKKysKKytjYXQgPj5jb25mZGVm cy5oIDw8X0FDRU9GCisrI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgIiRQQUNLQUdFX1RBUk5BTUUi CisrX0FDRU9GCisrCisrCisrY2F0ID4+Y29uZmRlZnMuaCA8PF9BQ0VPRgorKyNkZWZpbmUgUEFD S0FHRV9WRVJTSU9OICIkUEFDS0FHRV9WRVJTSU9OIgorK19BQ0VPRgorKworKworK2NhdCA+PmNv bmZkZWZzLmggPDxfQUNFT0YKKysjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICIkUEFDS0FHRV9TVFJJ TkciCisrX0FDRU9GCisrCisrCisrY2F0ID4+Y29uZmRlZnMuaCA8PF9BQ0VPRgorKyNkZWZpbmUg UEFDS0FHRV9CVUdSRVBPUlQgIiRQQUNLQUdFX0JVR1JFUE9SVCIKKytfQUNFT0YKKysKKysKKysj IExldCB0aGUgc2l0ZSBmaWxlIHNlbGVjdCBhbiBhbHRlcm5hdGUgY2FjaGUgZmlsZSBpZiBpdCB3 YW50cyB0by4KKysjIFByZWZlciBhbiBleHBsaWNpdGx5IHNlbGVjdGVkIGZpbGUgdG8gYXV0b21h dGljYWxseSBzZWxlY3RlZCBvbmVzLgorK2FjX3NpdGVfZmlsZTE9Tk9ORQorK2FjX3NpdGVfZmls ZTI9Tk9ORQorK2lmIHRlc3QgLW4gIiRDT05GSUdfU0lURSI7IHRoZW4KKysgIGFjX3NpdGVfZmls ZTE9JENPTkZJR19TSVRFCisrZWxpZiB0ZXN0ICJ4JHByZWZpeCIgIT0geE5PTkU7IHRoZW4KKysg IGFjX3NpdGVfZmlsZTE9JHByZWZpeC9zaGFyZS9jb25maWcuc2l0ZQorKyAgYWNfc2l0ZV9maWxl Mj0kcHJlZml4L2V0Yy9jb25maWcuc2l0ZQorK2Vsc2UKKysgIGFjX3NpdGVfZmlsZTE9JGFjX2Rl ZmF1bHRfcHJlZml4L3NoYXJlL2NvbmZpZy5zaXRlCisrICBhY19zaXRlX2ZpbGUyPSRhY19kZWZh dWx0X3ByZWZpeC9ldGMvY29uZmlnLnNpdGUKKytmaQorK2ZvciBhY19zaXRlX2ZpbGUgaW4gIiRh Y19zaXRlX2ZpbGUxIiAiJGFjX3NpdGVfZmlsZTIiCisrZG8KKysgIHRlc3QgIngkYWNfc2l0ZV9m aWxlIiA9IHhOT05FICYmIGNvbnRpbnVlCisrICBpZiB0ZXN0IC1yICIkYWNfc2l0ZV9maWxlIjsg dGhlbgorKyAgICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogbG9hZGluZyBzaXRlIHNjcmlw dCAkYWNfc2l0ZV9maWxlIiA+JjUKKyskYXNfZWNobyAiJGFzX21lOiBsb2FkaW5nIHNpdGUgc2Ny aXB0ICRhY19zaXRlX2ZpbGUiID4mNjt9CisrICAgIHNlZCAncy9eL3wgLycgIiRhY19zaXRlX2Zp bGUiID4mNQorKyAgICAuICIkYWNfc2l0ZV9maWxlIgorKyAgZmkKKytkb25lCisrCisraWYgdGVz dCAtciAiJGNhY2hlX2ZpbGUiOyB0aGVuCisrICAjIFNvbWUgdmVyc2lvbnMgb2YgYmFzaCB3aWxs IGZhaWwgdG8gc291cmNlIC9kZXYvbnVsbCAoc3BlY2lhbAorKyAgIyBmaWxlcyBhY3R1YWxseSks IHNvIHdlIGF2b2lkIGRvaW5nIHRoYXQuCisrICBpZiB0ZXN0IC1mICIkY2FjaGVfZmlsZSI7IHRo ZW4KKysgICAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGxvYWRpbmcgY2FjaGUgJGNhY2hl X2ZpbGUiID4mNQorKyRhc19lY2hvICIkYXNfbWU6IGxvYWRpbmcgY2FjaGUgJGNhY2hlX2ZpbGUi ID4mNjt9CisrICAgIGNhc2UgJGNhY2hlX2ZpbGUgaW4KKysgICAgICBbXFwvXSogfCA/OltcXC9d KiApIC4gIiRjYWNoZV9maWxlIjs7CisrICAgICAgKikgICAgICAgICAgICAgICAgICAgICAgLiAi Li8kY2FjaGVfZmlsZSI7OworKyAgICBlc2FjCisrICBmaQorK2Vsc2UKKysgIHsgJGFzX2VjaG8g IiRhc19tZTokTElORU5POiBjcmVhdGluZyBjYWNoZSAkY2FjaGVfZmlsZSIgPiY1CisrJGFzX2Vj aG8gIiRhc19tZTogY3JlYXRpbmcgY2FjaGUgJGNhY2hlX2ZpbGUiID4mNjt9CisrICA+JGNhY2hl X2ZpbGUKKytmaQorKworKyMgQ2hlY2sgdGhhdCB0aGUgcHJlY2lvdXMgdmFyaWFibGVzIHNhdmVk IGluIHRoZSBjYWNoZSBoYXZlIGtlcHQgdGhlIHNhbWUKKysjIHZhbHVlLgorK2FjX2NhY2hlX2Nv cnJ1cHRlZD1mYWxzZQorK2ZvciBhY192YXIgaW4gJGFjX3ByZWNpb3VzX3ZhcnM7IGRvCisrICBl dmFsIGFjX29sZF9zZXQ9XCRhY19jdl9lbnZfJHthY192YXJ9X3NldAorKyAgZXZhbCBhY19uZXdf c2V0PVwkYWNfZW52XyR7YWNfdmFyfV9zZXQKKysgIGV2YWwgYWNfb2xkX3ZhbD1cJGFjX2N2X2Vu dl8ke2FjX3Zhcn1fdmFsdWUKKysgIGV2YWwgYWNfbmV3X3ZhbD1cJGFjX2Vudl8ke2FjX3Zhcn1f dmFsdWUKKysgIGNhc2UgJGFjX29sZF9zZXQsJGFjX25ld19zZXQgaW4KKysgICAgc2V0LCkKKysg ICAgICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IFxgJGFjX3Zhcicgd2FzIHNl dCB0byBcYCRhY19vbGRfdmFsJyBpbiB0aGUgcHJldmlvdXMgcnVuIiA+JjUKKyskYXNfZWNobyAi JGFzX21lOiBlcnJvcjogXGAkYWNfdmFyJyB3YXMgc2V0IHRvIFxgJGFjX29sZF92YWwnIGluIHRo ZSBwcmV2aW91cyBydW4iID4mMjt9CisrICAgICAgYWNfY2FjaGVfY29ycnVwdGVkPTogOzsKKysg ICAgLHNldCkKKysgICAgICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IFxgJGFj X3Zhcicgd2FzIG5vdCBzZXQgaW4gdGhlIHByZXZpb3VzIHJ1biIgPiY1CisrJGFzX2VjaG8gIiRh c19tZTogZXJyb3I6IFxgJGFjX3Zhcicgd2FzIG5vdCBzZXQgaW4gdGhlIHByZXZpb3VzIHJ1biIg PiYyO30KKysgICAgICBhY19jYWNoZV9jb3JydXB0ZWQ9OiA7OworKyAgICAsKTs7CisrICAgICop CisrICAgICAgaWYgdGVzdCAieCRhY19vbGRfdmFsIiAhPSAieCRhY19uZXdfdmFsIjsgdGhlbgor KwkjIGRpZmZlcmVuY2VzIGluIHdoaXRlc3BhY2UgZG8gbm90IGxlYWQgdG8gZmFpbHVyZS4KKysJ YWNfb2xkX3ZhbF93PWBlY2hvIHggJGFjX29sZF92YWxgCisrCWFjX25ld192YWxfdz1gZWNobyB4 ICRhY19uZXdfdmFsYAorKwlpZiB0ZXN0ICIkYWNfb2xkX3ZhbF93IiAhPSAiJGFjX25ld192YWxf dyI7IHRoZW4KKysJICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IFxgJGFjX3Zh cicgaGFzIGNoYW5nZWQgc2luY2UgdGhlIHByZXZpb3VzIHJ1bjoiID4mNQorKyRhc19lY2hvICIk YXNfbWU6IGVycm9yOiBcYCRhY192YXInIGhhcyBjaGFuZ2VkIHNpbmNlIHRoZSBwcmV2aW91cyBy dW46IiA+JjI7fQorKwkgIGFjX2NhY2hlX2NvcnJ1cHRlZD06CisrCWVsc2UKKysJICB7ICRhc19l Y2hvICIkYXNfbWU6JExJTkVOTzogd2FybmluZzogaWdub3Jpbmcgd2hpdGVzcGFjZSBjaGFuZ2Vz IGluIFxgJGFjX3Zhcicgc2luY2UgdGhlIHByZXZpb3VzIHJ1bjoiID4mNQorKyRhc19lY2hvICIk YXNfbWU6IHdhcm5pbmc6IGlnbm9yaW5nIHdoaXRlc3BhY2UgY2hhbmdlcyBpbiBcYCRhY192YXIn IHNpbmNlIHRoZSBwcmV2aW91cyBydW46IiA+JjI7fQorKwkgIGV2YWwgJGFjX3Zhcj1cJGFjX29s ZF92YWwKKysJZmkKKysJeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86ICAgZm9ybWVyIHZhbHVl OiAgXGAkYWNfb2xkX3ZhbCciID4mNQorKyRhc19lY2hvICIkYXNfbWU6ICAgZm9ybWVyIHZhbHVl OiAgXGAkYWNfb2xkX3ZhbCciID4mMjt9CisrCXsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiAg IGN1cnJlbnQgdmFsdWU6IFxgJGFjX25ld192YWwnIiA+JjUKKyskYXNfZWNobyAiJGFzX21lOiAg IGN1cnJlbnQgdmFsdWU6IFxgJGFjX25ld192YWwnIiA+JjI7fQorKyAgICAgIGZpOzsKKysgIGVz YWMKKysgICMgUGFzcyBwcmVjaW91cyB2YXJpYWJsZXMgdG8gY29uZmlnLnN0YXR1cy4KKysgIGlm IHRlc3QgIiRhY19uZXdfc2V0IiA9IHNldDsgdGhlbgorKyAgICBjYXNlICRhY19uZXdfdmFsIGlu CisrICAgICpcJyopIGFjX2FyZz0kYWNfdmFyPWAkYXNfZWNobyAiJGFjX25ld192YWwiIHwgc2Vk ICJzLycvJ1xcXFxcXFxcJycvZyJgIDs7CisrICAgICopIGFjX2FyZz0kYWNfdmFyPSRhY19uZXdf dmFsIDs7CisrICAgIGVzYWMKKysgICAgY2FzZSAiICRhY19jb25maWd1cmVfYXJncyAiIGluCisr ICAgICAgKiIgJyRhY19hcmcnICIqKSA7OyAjIEF2b2lkIGR1cHMuICBVc2Ugb2YgcXVvdGVzIGVu c3VyZXMgYWNjdXJhY3kuCisrICAgICAgKikgYWNfY29uZmlndXJlX2FyZ3M9IiRhY19jb25maWd1 cmVfYXJncyAnJGFjX2FyZyciIDs7CisrICAgIGVzYWMKKysgIGZpCisrZG9uZQorK2lmICRhY19j YWNoZV9jb3JydXB0ZWQ7IHRoZW4KKysgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBlcnJv cjogaW4gXGAkYWNfcHdkJzoiID4mNQorKyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBpbiBcYCRh Y19wd2QnOiIgPiYyO30KKysgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogY2hh bmdlcyBpbiB0aGUgZW52aXJvbm1lbnQgY2FuIGNvbXByb21pc2UgdGhlIGJ1aWxkIiA+JjUKKysk YXNfZWNobyAiJGFzX21lOiBlcnJvcjogY2hhbmdlcyBpbiB0aGUgZW52aXJvbm1lbnQgY2FuIGNv bXByb21pc2UgdGhlIGJ1aWxkIiA+JjI7fQorKyAgeyB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVO TzogZXJyb3I6IHJ1biBcYG1ha2UgZGlzdGNsZWFuJyBhbmQvb3IgXGBybSAkY2FjaGVfZmlsZScg YW5kIHN0YXJ0IG92ZXIiID4mNQorKyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBydW4gXGBtYWtl IGRpc3RjbGVhbicgYW5kL29yIFxgcm0gJGNhY2hlX2ZpbGUnIGFuZCBzdGFydCBvdmVyIiA+JjI7 fQorKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQorK2ZpCisrCisrCisrCisrCisrCisrCisr CisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisr YWNfZXh0PWMKKythY19jcHA9JyRDUFAgJENQUEZMQUdTJworK2FjX2NvbXBpbGU9JyRDQyAtYyAk Q0ZMQUdTICRDUFBGTEFHUyBjb25mdGVzdC4kYWNfZXh0ID4mNScKKythY19saW5rPSckQ0MgLW8g Y29uZnRlc3QkYWNfZXhlZXh0ICRDRkxBR1MgJENQUEZMQUdTICRMREZMQUdTIGNvbmZ0ZXN0LiRh Y19leHQgJExJQlMgPiY1JworK2FjX2NvbXBpbGVyX2dudT0kYWNfY3ZfY19jb21waWxlcl9nbnUK KysKKysKKythY19jb25maWdfaGVhZGVycz0iJGFjX2NvbmZpZ19oZWFkZXJzIHNvY2kvY29uZmln LmgiCisrCisrCisrYWNfYXV4X2Rpcj0KKytmb3IgYWNfZGlyIGluIGNvbmZpZyAiJHNyY2RpciIv Y29uZmlnOyBkbworKyAgaWYgdGVzdCAtZiAiJGFjX2Rpci9pbnN0YWxsLXNoIjsgdGhlbgorKyAg ICBhY19hdXhfZGlyPSRhY19kaXIKKysgICAgYWNfaW5zdGFsbF9zaD0iJGFjX2F1eF9kaXIvaW5z dGFsbC1zaCAtYyIKKysgICAgYnJlYWsKKysgIGVsaWYgdGVzdCAtZiAiJGFjX2Rpci9pbnN0YWxs LnNoIjsgdGhlbgorKyAgICBhY19hdXhfZGlyPSRhY19kaXIKKysgICAgYWNfaW5zdGFsbF9zaD0i JGFjX2F1eF9kaXIvaW5zdGFsbC5zaCAtYyIKKysgICAgYnJlYWsKKysgIGVsaWYgdGVzdCAtZiAi JGFjX2Rpci9zaHRvb2wiOyB0aGVuCisrICAgIGFjX2F1eF9kaXI9JGFjX2RpcgorKyAgICBhY19p bnN0YWxsX3NoPSIkYWNfYXV4X2Rpci9zaHRvb2wgaW5zdGFsbCAtYyIKKysgICAgYnJlYWsKKysg IGZpCisrZG9uZQorK2lmIHRlc3QgLXogIiRhY19hdXhfZGlyIjsgdGhlbgorKyAgeyB7ICRhc19l Y2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IGNhbm5vdCBmaW5kIGluc3RhbGwtc2ggb3IgaW5z dGFsbC5zaCBpbiBjb25maWcgXCIkc3JjZGlyXCIvY29uZmlnIiA+JjUKKyskYXNfZWNobyAiJGFz X21lOiBlcnJvcjogY2Fubm90IGZpbmQgaW5zdGFsbC1zaCBvciBpbnN0YWxsLnNoIGluIGNvbmZp ZyBcIiRzcmNkaXJcIi9jb25maWciID4mMjt9CisrICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9 CisrZmkKKysKKysjIFRoZXNlIHRocmVlIHZhcmlhYmxlcyBhcmUgdW5kb2N1bWVudGVkIGFuZCB1 bnN1cHBvcnRlZCwKKysjIGFuZCBhcmUgaW50ZW5kZWQgdG8gYmUgd2l0aGRyYXduIGluIGEgZnV0 dXJlIEF1dG9jb25mIHJlbGVhc2UuCisrIyBUaGV5IGNhbiBjYXVzZSBzZXJpb3VzIHByb2JsZW1z IGlmIGEgYnVpbGRlcidzIHNvdXJjZSB0cmVlIGlzIGluIGEgZGlyZWN0b3J5CisrIyB3aG9zZSBm dWxsIG5hbWUgY29udGFpbnMgdW51c3VhbCBjaGFyYWN0ZXJzLgorK2FjX2NvbmZpZ19ndWVzcz0i JFNIRUxMICRhY19hdXhfZGlyL2NvbmZpZy5ndWVzcyIgICMgUGxlYXNlIGRvbid0IHVzZSB0aGlz IHZhci4KKythY19jb25maWdfc3ViPSIkU0hFTEwgJGFjX2F1eF9kaXIvY29uZmlnLnN1YiIgICMg UGxlYXNlIGRvbid0IHVzZSB0aGlzIHZhci4KKythY19jb25maWd1cmU9IiRTSEVMTCAkYWNfYXV4 X2Rpci9jb25maWd1cmUiICAjIFBsZWFzZSBkb24ndCB1c2UgdGhpcyB2YXIuCisrCisrCisrYW1f X2FwaV92ZXJzaW9uPScxLjExJworKworKyMgRmluZCBhIGdvb2QgaW5zdGFsbCBwcm9ncmFtLiAg V2UgcHJlZmVyIGEgQyBwcm9ncmFtIChmYXN0ZXIpLAorKyMgc28gb25lIHNjcmlwdCBpcyBhcyBn b29kIGFzIGFub3RoZXIuICBCdXQgYXZvaWQgdGhlIGJyb2tlbiBvcgorKyMgaW5jb21wYXRpYmxl IHZlcnNpb25zOgorKyMgU3lzViAvZXRjL2luc3RhbGwsIC91c3Ivc2Jpbi9pbnN0YWxsCisrIyBT dW5PUyAvdXNyL2V0Yy9pbnN0YWxsCisrIyBJUklYIC9zYmluL2luc3RhbGwKKysjIEFJWCAvYmlu L2luc3RhbGwKKysjIEFtaWdhT1MgL0MvaW5zdGFsbCwgd2hpY2ggaW5zdGFsbHMgYm9vdGJsb2Nr cyBvbiBmbG9wcHkgZGlzY3MKKysjIEFJWCA0IC91c3IvYmluL2luc3RhbGxic2QsIHdoaWNoIGRv ZXNuJ3Qgd29yayB3aXRob3V0IGEgLWcgZmxhZworKyMgQUZTIC91c3IvYWZzd3MvYmluL2luc3Rh bGwsIHdoaWNoIG1pc2hhbmRsZXMgbm9uZXhpc3RlbnQgYXJncworKyMgU1ZSNCAvdXNyL3VjYi9p bnN0YWxsLCB3aGljaCB0cmllcyB0byB1c2UgdGhlIG5vbmV4aXN0ZW50IGdyb3VwICJzdGFmZiIK KysjIE9TLzIncyBzeXN0ZW0gaW5zdGFsbCwgd2hpY2ggaGFzIGEgY29tcGxldGVseSBkaWZmZXJl bnQgc2VtYW50aWMKKysjIC4vaW5zdGFsbCwgd2hpY2ggY2FuIGJlIGVycm9uZW91c2x5IGNyZWF0 ZWQgYnkgbWFrZSBmcm9tIC4vaW5zdGFsbC5zaC4KKysjIFJlamVjdCBpbnN0YWxsIHByb2dyYW1z IHRoYXQgY2Fubm90IGluc3RhbGwgbXVsdGlwbGUgZmlsZXMuCisreyAkYXNfZWNobyAiJGFzX21l OiRMSU5FTk86IGNoZWNraW5nIGZvciBhIEJTRC1jb21wYXRpYmxlIGluc3RhbGwiID4mNQorKyRh c19lY2hvX24gImNoZWNraW5nIGZvciBhIEJTRC1jb21wYXRpYmxlIGluc3RhbGwuLi4gIiA+JjY7 IH0KKytpZiB0ZXN0IC16ICIkSU5TVEFMTCI7IHRoZW4KKytpZiB0ZXN0ICIke2FjX2N2X3BhdGhf aW5zdGFsbCtzZXR9IiA9IHNldDsgdGhlbgorKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYK KytlbHNlCisrICBhc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCisrZm9yIGFz X2RpciBpbiAkUEFUSAorK2RvCisrICBJRlM9JGFzX3NhdmVfSUZTCisrICB0ZXN0IC16ICIkYXNf ZGlyIiAmJiBhc19kaXI9LgorKyAgIyBBY2NvdW50IGZvciBwZW9wbGUgd2hvIHB1dCB0cmFpbGlu ZyBzbGFzaGVzIGluIFBBVEggZWxlbWVudHMuCisrY2FzZSAkYXNfZGlyLyBpbgorKyAgLi8gfCAu Ly8gfCAvY0MvKiB8IFwKKysgIC9ldGMvKiB8IC91c3Ivc2Jpbi8qIHwgL3Vzci9ldGMvKiB8IC9z YmluLyogfCAvdXNyL2Fmc3dzL2Jpbi8qIHwgXAorKyAgPzpcXC9vczJcXC9pbnN0YWxsXFwvKiB8 ID86XFwvT1MyXFwvSU5TVEFMTFxcLyogfCBcCisrICAvdXNyL3VjYi8qICkgOzsKKysgICopCisr ICAgICMgT1NGMSBhbmQgU0NPIE9EVCAzLjAgaGF2ZSB0aGVpciBvd24gbmFtZXMgZm9yIGluc3Rh bGwuCisrICAgICMgRG9uJ3QgdXNlIGluc3RhbGxic2QgZnJvbSBPU0Ygc2luY2UgaXQgaW5zdGFs bHMgc3R1ZmYgYXMgcm9vdAorKyAgICAjIGJ5IGRlZmF1bHQuCisrICAgIGZvciBhY19wcm9nIGlu IGdpbnN0YWxsIHNjb2luc3QgaW5zdGFsbDsgZG8KKysgICAgICBmb3IgYWNfZXhlY19leHQgaW4g JycgJGFjX2V4ZWN1dGFibGVfZXh0ZW5zaW9uczsgZG8KKysJaWYgeyB0ZXN0IC1mICIkYXNfZGly LyRhY19wcm9nJGFjX2V4ZWNfZXh0IiAmJiAkYXNfdGVzdF94ICIkYXNfZGlyLyRhY19wcm9nJGFj X2V4ZWNfZXh0IjsgfTsgdGhlbgorKwkgIGlmIHRlc3QgJGFjX3Byb2cgPSBpbnN0YWxsICYmCisr CSAgICBncmVwIGRzcG1zZyAiJGFzX2Rpci8kYWNfcHJvZyRhY19leGVjX2V4dCIgPi9kZXYvbnVs bCAyPiYxOyB0aGVuCisrCSAgICAjIEFJWCBpbnN0YWxsLiAgSXQgaGFzIGFuIGluY29tcGF0aWJs ZSBjYWxsaW5nIGNvbnZlbnRpb24uCisrCSAgICA6CisrCSAgZWxpZiB0ZXN0ICRhY19wcm9nID0g aW5zdGFsbCAmJgorKwkgICAgZ3JlcCBwd3BsdXMgIiRhc19kaXIvJGFjX3Byb2ckYWNfZXhlY19l eHQiID4vZGV2L251bGwgMj4mMTsgdGhlbgorKwkgICAgIyBwcm9ncmFtLXNwZWNpZmljIGluc3Rh bGwgc2NyaXB0IHVzZWQgYnkgSFAgcHdwbHVzLS1kb24ndCB1c2UuCisrCSAgICA6CisrCSAgZWxz ZQorKwkgICAgcm0gLXJmIGNvbmZ0ZXN0Lm9uZSBjb25mdGVzdC50d28gY29uZnRlc3QuZGlyCisr CSAgICBlY2hvIG9uZSA+IGNvbmZ0ZXN0Lm9uZQorKwkgICAgZWNobyB0d28gPiBjb25mdGVzdC50 d28KKysJICAgIG1rZGlyIGNvbmZ0ZXN0LmRpcgorKwkgICAgaWYgIiRhc19kaXIvJGFjX3Byb2ck YWNfZXhlY19leHQiIC1jIGNvbmZ0ZXN0Lm9uZSBjb25mdGVzdC50d28gImBwd2RgL2NvbmZ0ZXN0 LmRpciIgJiYKKysJICAgICAgdGVzdCAtcyBjb25mdGVzdC5vbmUgJiYgdGVzdCAtcyBjb25mdGVz dC50d28gJiYKKysJICAgICAgdGVzdCAtcyBjb25mdGVzdC5kaXIvY29uZnRlc3Qub25lICYmCisr CSAgICAgIHRlc3QgLXMgY29uZnRlc3QuZGlyL2NvbmZ0ZXN0LnR3bworKwkgICAgdGhlbgorKwkg ICAgICBhY19jdl9wYXRoX2luc3RhbGw9IiRhc19kaXIvJGFjX3Byb2ckYWNfZXhlY19leHQgLWMi CisrCSAgICAgIGJyZWFrIDMKKysJICAgIGZpCisrCSAgZmkKKysJZmkKKysgICAgICBkb25lCisr ICAgIGRvbmUKKysgICAgOzsKKytlc2FjCisrCisrZG9uZQorK0lGUz0kYXNfc2F2ZV9JRlMKKysK KytybSAtcmYgY29uZnRlc3Qub25lIGNvbmZ0ZXN0LnR3byBjb25mdGVzdC5kaXIKKysKKytmaQor KyAgaWYgdGVzdCAiJHthY19jdl9wYXRoX2luc3RhbGwrc2V0fSIgPSBzZXQ7IHRoZW4KKysgICAg SU5TVEFMTD0kYWNfY3ZfcGF0aF9pbnN0YWxsCisrICBlbHNlCisrICAgICMgQXMgYSBsYXN0IHJl c29ydCwgdXNlIHRoZSBzbG93IHNoZWxsIHNjcmlwdC4gIERvbid0IGNhY2hlIGEKKysgICAgIyB2 YWx1ZSBmb3IgSU5TVEFMTCB3aXRoaW4gYSBzb3VyY2UgZGlyZWN0b3J5LCBiZWNhdXNlIHRoYXQg d2lsbAorKyAgICAjIGJyZWFrIG90aGVyIHBhY2thZ2VzIHVzaW5nIHRoZSBjYWNoZSBpZiB0aGF0 IGRpcmVjdG9yeSBpcworKyAgICAjIHJlbW92ZWQsIG9yIGlmIHRoZSB2YWx1ZSBpcyBhIHJlbGF0 aXZlIG5hbWUuCisrICAgIElOU1RBTEw9JGFjX2luc3RhbGxfc2gKKysgIGZpCisrZmkKKyt7ICRh c19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkSU5TVEFMTCIgPiY1CisrJGFzX2VjaG8g IiRJTlNUQUxMIiA+JjY7IH0KKysKKysjIFVzZSB0ZXN0IC16IGJlY2F1c2UgU3VuT1M0IHNoIG1p c2hhbmRsZXMgYnJhY2VzIGluICR7dmFyLXZhbH0uCisrIyBJdCB0aGlua3MgdGhlIGZpcnN0IGNs b3NlIGJyYWNlIGVuZHMgdGhlIHZhcmlhYmxlIHN1YnN0aXR1dGlvbi4KKyt0ZXN0IC16ICIkSU5T VEFMTF9QUk9HUkFNIiAmJiBJTlNUQUxMX1BST0dSQU09JyR7SU5TVEFMTH0nCisrCisrdGVzdCAt eiAiJElOU1RBTExfU0NSSVBUIiAmJiBJTlNUQUxMX1NDUklQVD0nJHtJTlNUQUxMfScKKysKKyt0 ZXN0IC16ICIkSU5TVEFMTF9EQVRBIiAmJiBJTlNUQUxMX0RBVEE9JyR7SU5TVEFMTH0gLW0gNjQ0 JworKworK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyB3aGV0aGVyIGJ1aWxk IGVudmlyb25tZW50IGlzIHNhbmUiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIHdoZXRoZXIg YnVpbGQgZW52aXJvbm1lbnQgaXMgc2FuZS4uLiAiID4mNjsgfQorKyMgSnVzdCBpbiBjYXNlCisr c2xlZXAgMQorK2VjaG8gdGltZXN0YW1wID4gY29uZnRlc3QuZmlsZQorKyMgUmVqZWN0IHVuc2Fm ZSBjaGFyYWN0ZXJzIGluICRzcmNkaXIgb3IgdGhlIGFic29sdXRlIHdvcmtpbmcgZGlyZWN0b3J5 CisrIyBuYW1lLiAgQWNjZXB0IHNwYWNlIGFuZCB0YWIgb25seSBpbiB0aGUgbGF0dGVyLgorK2Ft X2xmPScKKysnCisrY2FzZSBgcHdkYCBpbgorKyAgKltcXFwiXCNcJFwmXCdcYCRhbV9sZl0qKQor KyAgICB7IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogdW5zYWZlIGFic29sdXRl IHdvcmtpbmcgZGlyZWN0b3J5IG5hbWUiID4mNQorKyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiB1 bnNhZmUgYWJzb2x1dGUgd29ya2luZyBkaXJlY3RvcnkgbmFtZSIgPiYyO30KKysgICB7IChleGl0 IDEpOyBleGl0IDE7IH07IH07OworK2VzYWMKKytjYXNlICRzcmNkaXIgaW4KKysgICpbXFxcIlwj XCRcJlwnXGAkYW1fbGZcIFwJXSopCisrICAgIHsgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86 IGVycm9yOiB1bnNhZmUgc3JjZGlyIHZhbHVlOiBcYCRzcmNkaXInIiA+JjUKKyskYXNfZWNobyAi JGFzX21lOiBlcnJvcjogdW5zYWZlIHNyY2RpciB2YWx1ZTogXGAkc3JjZGlyJyIgPiYyO30KKysg ICB7IChleGl0IDEpOyBleGl0IDE7IH07IH07OworK2VzYWMKKysKKysjIERvIGBzZXQnIGluIGEg c3Vic2hlbGwgc28gd2UgZG9uJ3QgY2xvYmJlciB0aGUgY3VycmVudCBzaGVsbCdzCisrIyBhcmd1 bWVudHMuICBNdXN0IHRyeSAtTCBmaXJzdCBpbiBjYXNlIGNvbmZpZ3VyZSBpcyBhY3R1YWxseSBh CisrIyBzeW1saW5rOyBzb21lIHN5c3RlbXMgcGxheSB3ZWlyZCBnYW1lcyB3aXRoIHRoZSBtb2Qg dGltZSBvZiBzeW1saW5rcworKyMgKGVnIEZyZWVCU0QgcmV0dXJucyB0aGUgbW9kIHRpbWUgb2Yg dGhlIHN5bWxpbmsncyBjb250YWluaW5nCisrIyBkaXJlY3RvcnkpLgorK2lmICgKKysgICBzZXQg WCBgbHMgLUx0ICIkc3JjZGlyL2NvbmZpZ3VyZSIgY29uZnRlc3QuZmlsZSAyPiAvZGV2L251bGxg CisrICAgaWYgdGVzdCAiJCoiID0gIlgiOyB0aGVuCisrICAgICAgIyAtTCBkaWRuJ3Qgd29yay4K KysgICAgICBzZXQgWCBgbHMgLXQgIiRzcmNkaXIvY29uZmlndXJlIiBjb25mdGVzdC5maWxlYAor KyAgIGZpCisrICAgcm0gLWYgY29uZnRlc3QuZmlsZQorKyAgIGlmIHRlc3QgIiQqIiAhPSAiWCAk c3JjZGlyL2NvbmZpZ3VyZSBjb25mdGVzdC5maWxlIiBcCisrICAgICAgJiYgdGVzdCAiJCoiICE9 ICJYIGNvbmZ0ZXN0LmZpbGUgJHNyY2Rpci9jb25maWd1cmUiOyB0aGVuCisrCisrICAgICAgIyBJ ZiBuZWl0aGVyIG1hdGNoZWQsIHRoZW4gd2UgaGF2ZSBhIGJyb2tlbiBscy4gIFRoaXMgY2FuIGhh cHBlbgorKyAgICAgICMgaWYsIGZvciBpbnN0YW5jZSwgQ09ORklHX1NIRUxMIGlzIGJhc2ggYW5k IGl0IGluaGVyaXRzIGEKKysgICAgICAjIGJyb2tlbiBscyBhbGlhcyBmcm9tIHRoZSBlbnZpcm9u bWVudC4gIFRoaXMgaGFzIGFjdHVhbGx5CisrICAgICAgIyBoYXBwZW5lZC4gIFN1Y2ggYSBzeXN0 ZW0gY291bGQgbm90IGJlIGNvbnNpZGVyZWQgInNhbmUiLgorKyAgICAgIHsgeyAkYXNfZWNobyAi JGFzX21lOiRMSU5FTk86IGVycm9yOiBscyAtdCBhcHBlYXJzIHRvIGZhaWwuICBNYWtlIHN1cmUg dGhlcmUgaXMgbm90IGEgYnJva2VuCisrYWxpYXMgaW4geW91ciBlbnZpcm9ubWVudCIgPiY1Cisr JGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IGxzIC10IGFwcGVhcnMgdG8gZmFpbC4gIE1ha2Ugc3Vy ZSB0aGVyZSBpcyBub3QgYSBicm9rZW4KKythbGlhcyBpbiB5b3VyIGVudmlyb25tZW50IiA+JjI7 fQorKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQorKyAgIGZpCisrCisrICAgdGVzdCAiJDIi ID0gY29uZnRlc3QuZmlsZQorKyAgICkKKyt0aGVuCisrICAgIyBPay4KKysgICA6CisrZWxzZQor KyAgIHsgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBuZXdseSBjcmVhdGVkIGZp bGUgaXMgb2xkZXIgdGhhbiBkaXN0cmlidXRlZCBmaWxlcyEKKytDaGVjayB5b3VyIHN5c3RlbSBj bG9jayIgPiY1CisrJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IG5ld2x5IGNyZWF0ZWQgZmlsZSBp cyBvbGRlciB0aGFuIGRpc3RyaWJ1dGVkIGZpbGVzIQorK0NoZWNrIHlvdXIgc3lzdGVtIGNsb2Nr IiA+JjI7fQorKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQorK2ZpCisreyAkYXNfZWNobyAi JGFzX21lOiRMSU5FTk86IHJlc3VsdDogeWVzIiA+JjUKKyskYXNfZWNobyAieWVzIiA+JjY7IH0K Kyt0ZXN0ICIkcHJvZ3JhbV9wcmVmaXgiICE9IE5PTkUgJiYKKysgIHByb2dyYW1fdHJhbnNmb3Jt X25hbWU9InMmXiYkcHJvZ3JhbV9wcmVmaXgmOyRwcm9ncmFtX3RyYW5zZm9ybV9uYW1lIgorKyMg VXNlIGEgZG91YmxlICQgc28gbWFrZSBpZ25vcmVzIGl0LgorK3Rlc3QgIiRwcm9ncmFtX3N1ZmZp eCIgIT0gTk9ORSAmJgorKyAgcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZT0icyZcJCYkcHJvZ3JhbV9z dWZmaXgmOyRwcm9ncmFtX3RyYW5zZm9ybV9uYW1lIgorKyMgRG91YmxlIGFueSBcIG9yICQuCisr IyBCeSBkZWZhdWx0IHdhcyBgcyx4LHgnLCByZW1vdmUgaXQgaWYgdXNlbGVzcy4KKythY19zY3Jp cHQ9J3MvW1xcJF0vJiYvZztzLztzLHgseCwkLy8nCisrcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZT1g JGFzX2VjaG8gIiRwcm9ncmFtX3RyYW5zZm9ybV9uYW1lIiB8IHNlZCAiJGFjX3NjcmlwdCJgCisr CisrIyBleHBhbmQgJGFjX2F1eF9kaXIgdG8gYW4gYWJzb2x1dGUgcGF0aAorK2FtX2F1eF9kaXI9 YGNkICRhY19hdXhfZGlyICYmIHB3ZGAKKysKKytpZiB0ZXN0IHgiJHtNSVNTSU5HK3NldH0iICE9 IHhzZXQ7IHRoZW4KKysgIGNhc2UgJGFtX2F1eF9kaXIgaW4KKysgICpcICogfCAqXAkqKQorKyAg ICBNSVNTSU5HPSJcJHtTSEVMTH0gXCIkYW1fYXV4X2Rpci9taXNzaW5nXCIiIDs7CisrICAqKQor KyAgICBNSVNTSU5HPSJcJHtTSEVMTH0gJGFtX2F1eF9kaXIvbWlzc2luZyIgOzsKKysgIGVzYWMK KytmaQorKyMgVXNlIGV2YWwgdG8gZXhwYW5kICRTSEVMTAorK2lmIGV2YWwgIiRNSVNTSU5HIC0t cnVuIHRydWUiOyB0aGVuCisrICBhbV9taXNzaW5nX3J1bj0iJE1JU1NJTkcgLS1ydW4gIgorK2Vs c2UKKysgIGFtX21pc3NpbmdfcnVuPQorKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFdB Uk5JTkc6IFxgbWlzc2luZycgc2NyaXB0IGlzIHRvbyBvbGQgb3IgbWlzc2luZyIgPiY1CisrJGFz X2VjaG8gIiRhc19tZTogV0FSTklORzogXGBtaXNzaW5nJyBzY3JpcHQgaXMgdG9vIG9sZCBvciBt aXNzaW5nIiA+JjI7fQorK2ZpCisrCisraWYgdGVzdCB4IiR7aW5zdGFsbF9zaH0iICE9IHhzZXQ7 IHRoZW4KKysgIGNhc2UgJGFtX2F1eF9kaXIgaW4KKysgICpcICogfCAqXAkqKQorKyAgICBpbnN0 YWxsX3NoPSJcJHtTSEVMTH0gJyRhbV9hdXhfZGlyL2luc3RhbGwtc2gnIiA7OworKyAgKikKKysg ICAgaW5zdGFsbF9zaD0iXCR7U0hFTEx9ICRhbV9hdXhfZGlyL2luc3RhbGwtc2giCisrICBlc2Fj CisrZmkKKysKKysjIEluc3RhbGxlZCBiaW5hcmllcyBhcmUgdXN1YWxseSBzdHJpcHBlZCB1c2lu ZyBgc3RyaXAnIHdoZW4gdGhlIHVzZXIKKysjIHJ1biBgbWFrZSBpbnN0YWxsLXN0cmlwJy4gIEhv d2V2ZXIgYHN0cmlwJyBtaWdodCBub3QgYmUgdGhlIHJpZ2h0CisrIyB0b29sIHRvIHVzZSBpbiBj cm9zcy1jb21waWxhdGlvbiBlbnZpcm9ubWVudHMsIHRoZXJlZm9yZSBBdXRvbWFrZQorKyMgd2ls bCBob25vciB0aGUgYFNUUklQJyBlbnZpcm9ubWVudCB2YXJpYWJsZSB0byBvdmVycnVsZSB0aGlz IHByb2dyYW0uCisraWYgdGVzdCAiJGNyb3NzX2NvbXBpbGluZyIgIT0gbm87IHRoZW4KKysgIGlm IHRlc3QgLW4gIiRhY190b29sX3ByZWZpeCI7IHRoZW4KKysgICMgRXh0cmFjdCB0aGUgZmlyc3Qg d29yZCBvZiAiJHthY190b29sX3ByZWZpeH1zdHJpcCIsIHNvIGl0IGNhbiBiZSBhIHByb2dyYW0g bmFtZSB3aXRoIGFyZ3MuCisrc2V0IGR1bW15ICR7YWNfdG9vbF9wcmVmaXh9c3RyaXA7IGFjX3dv cmQ9JDIKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yICRhY193b3Jk IiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyBmb3IgJGFjX3dvcmQuLi4gIiA+JjY7IH0KKytp ZiB0ZXN0ICIke2FjX2N2X3Byb2dfU1RSSVArc2V0fSIgPSBzZXQ7IHRoZW4KKysgICRhc19lY2hv X24gIihjYWNoZWQpICIgPiY2CisrZWxzZQorKyAgaWYgdGVzdCAtbiAiJFNUUklQIjsgdGhlbgor KyAgYWNfY3ZfcHJvZ19TVFJJUD0iJFNUUklQIiAjIExldCB0aGUgdXNlciBvdmVycmlkZSB0aGUg dGVzdC4KKytlbHNlCisrYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgorK2Zv ciBhc19kaXIgaW4gJFBBVEgKKytkbworKyAgSUZTPSRhc19zYXZlX0lGUworKyAgdGVzdCAteiAi JGFzX2RpciIgJiYgYXNfZGlyPS4KKysgIGZvciBhY19leGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0 YWJsZV9leHRlbnNpb25zOyBkbworKyAgaWYgeyB0ZXN0IC1mICIkYXNfZGlyLyRhY193b3JkJGFj X2V4ZWNfZXh0IiAmJiAkYXNfdGVzdF94ICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0Ijsg fTsgdGhlbgorKyAgICBhY19jdl9wcm9nX1NUUklQPSIke2FjX3Rvb2xfcHJlZml4fXN0cmlwIgor KyAgICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGZvdW5kICRhc19kaXIvJGFjX3dvcmQkYWNf ZXhlY19leHQiID4mNQorKyAgICBicmVhayAyCisrICBmaQorK2RvbmUKKytkb25lCisrSUZTPSRh c19zYXZlX0lGUworKworK2ZpCisrZmkKKytTVFJJUD0kYWNfY3ZfcHJvZ19TVFJJUAorK2lmIHRl c3QgLW4gIiRTVFJJUCI7IHRoZW4KKysgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1 bHQ6ICRTVFJJUCIgPiY1CisrJGFzX2VjaG8gIiRTVFJJUCIgPiY2OyB9CisrZWxzZQorKyAgeyAk YXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogbm8iID4mNQorKyRhc19lY2hvICJubyIg PiY2OyB9CisrZmkKKysKKysKKytmaQorK2lmIHRlc3QgLXogIiRhY19jdl9wcm9nX1NUUklQIjsg dGhlbgorKyAgYWNfY3RfU1RSSVA9JFNUUklQCisrICAjIEV4dHJhY3QgdGhlIGZpcnN0IHdvcmQg b2YgInN0cmlwIiwgc28gaXQgY2FuIGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJncy4KKytzZXQg ZHVtbXkgc3RyaXA7IGFjX3dvcmQ9JDIKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hl Y2tpbmcgZm9yICRhY193b3JkIiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyBmb3IgJGFjX3dv cmQuLi4gIiA+JjY7IH0KKytpZiB0ZXN0ICIke2FjX2N2X3Byb2dfYWNfY3RfU1RSSVArc2V0fSIg PSBzZXQ7IHRoZW4KKysgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2CisrZWxzZQorKyAgaWYg dGVzdCAtbiAiJGFjX2N0X1NUUklQIjsgdGhlbgorKyAgYWNfY3ZfcHJvZ19hY19jdF9TVFJJUD0i JGFjX2N0X1NUUklQIiAjIExldCB0aGUgdXNlciBvdmVycmlkZSB0aGUgdGVzdC4KKytlbHNlCisr YXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgorK2ZvciBhc19kaXIgaW4gJFBB VEgKKytkbworKyAgSUZTPSRhc19zYXZlX0lGUworKyAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNf ZGlyPS4KKysgIGZvciBhY19leGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9leHRlbnNpb25z OyBkbworKyAgaWYgeyB0ZXN0IC1mICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiAmJiAk YXNfdGVzdF94ICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IjsgfTsgdGhlbgorKyAgICBh Y19jdl9wcm9nX2FjX2N0X1NUUklQPSJzdHJpcCIKKysgICAgJGFzX2VjaG8gIiRhc19tZTokTElO RU5POiBmb3VuZCAkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiA+JjUKKysgICAgYnJlYWsg MgorKyAgZmkKKytkb25lCisrZG9uZQorK0lGUz0kYXNfc2F2ZV9JRlMKKysKKytmaQorK2ZpCisr YWNfY3RfU1RSSVA9JGFjX2N2X3Byb2dfYWNfY3RfU1RSSVAKKytpZiB0ZXN0IC1uICIkYWNfY3Rf U1RSSVAiOyB0aGVuCisrICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNf Y3RfU1RSSVAiID4mNQorKyRhc19lY2hvICIkYWNfY3RfU1RSSVAiID4mNjsgfQorK2Vsc2UKKysg IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IG5vIiA+JjUKKyskYXNfZWNobyAi bm8iID4mNjsgfQorK2ZpCisrCisrICBpZiB0ZXN0ICJ4JGFjX2N0X1NUUklQIiA9IHg7IHRoZW4K KysgICAgU1RSSVA9IjoiCisrICBlbHNlCisrICAgIGNhc2UgJGNyb3NzX2NvbXBpbGluZzokYWNf dG9vbF93YXJuZWQgaW4KKyt5ZXM6KQorK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBXQVJO SU5HOiB1c2luZyBjcm9zcyB0b29scyBub3QgcHJlZml4ZWQgd2l0aCBob3N0IHRyaXBsZXQiID4m NQorKyRhc19lY2hvICIkYXNfbWU6IFdBUk5JTkc6IHVzaW5nIGNyb3NzIHRvb2xzIG5vdCBwcmVm aXhlZCB3aXRoIGhvc3QgdHJpcGxldCIgPiYyO30KKythY190b29sX3dhcm5lZD15ZXMgOzsKKytl c2FjCisrICAgIFNUUklQPSRhY19jdF9TVFJJUAorKyAgZmkKKytlbHNlCisrICBTVFJJUD0iJGFj X2N2X3Byb2dfU1RSSVAiCisrZmkKKysKKytmaQorK0lOU1RBTExfU1RSSVBfUFJPR1JBTT0iXCQo aW5zdGFsbF9zaCkgLWMgLXMiCisrCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNr aW5nIGZvciBhIHRocmVhZC1zYWZlIG1rZGlyIC1wIiA+JjUKKyskYXNfZWNob19uICJjaGVja2lu ZyBmb3IgYSB0aHJlYWQtc2FmZSBta2RpciAtcC4uLiAiID4mNjsgfQorK2lmIHRlc3QgLXogIiRN S0RJUl9QIjsgdGhlbgorKyAgaWYgdGVzdCAiJHthY19jdl9wYXRoX21rZGlyK3NldH0iID0gc2V0 OyB0aGVuCisrICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysgIGFzX3NhdmVf SUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IKKytmb3IgYXNfZGlyIGluICRQQVRIJFBBVEhf U0VQQVJBVE9SL29wdC9zZncvYmluCisrZG8KKysgIElGUz0kYXNfc2F2ZV9JRlMKKysgIHRlc3Qg LXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCisrICBmb3IgYWNfcHJvZyBpbiBta2RpciBnbWtkaXI7 IGRvCisrCSBmb3IgYWNfZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1dGFibGVfZXh0ZW5zaW9uczsg ZG8KKysJICAgeyB0ZXN0IC1mICIkYXNfZGlyLyRhY19wcm9nJGFjX2V4ZWNfZXh0IiAmJiAkYXNf dGVzdF94ICIkYXNfZGlyLyRhY19wcm9nJGFjX2V4ZWNfZXh0IjsgfSB8fCBjb250aW51ZQorKwkg ICBjYXNlIGAiJGFzX2Rpci8kYWNfcHJvZyRhY19leGVjX2V4dCIgLS12ZXJzaW9uIDI+JjFgIGlu ICMoCisrCSAgICAgJ21rZGlyIChHTlUgY29yZXV0aWxzKSAnKiB8IFwKKysJICAgICAnbWtkaXIg KGNvcmV1dGlscykgJyogfCBcCisrCSAgICAgJ21rZGlyIChmaWxldXRpbHMpICc0LjEqKQorKwkg ICAgICAgYWNfY3ZfcGF0aF9ta2Rpcj0kYXNfZGlyLyRhY19wcm9nJGFjX2V4ZWNfZXh0CisrCSAg ICAgICBicmVhayAzOzsKKysJICAgZXNhYworKwkgZG9uZQorKyAgICAgICBkb25lCisrZG9uZQor K0lGUz0kYXNfc2F2ZV9JRlMKKysKKytmaQorKworKyAgaWYgdGVzdCAiJHthY19jdl9wYXRoX21r ZGlyK3NldH0iID0gc2V0OyB0aGVuCisrICAgIE1LRElSX1A9IiRhY19jdl9wYXRoX21rZGlyIC1w IgorKyAgZWxzZQorKyAgICAjIEFzIGEgbGFzdCByZXNvcnQsIHVzZSB0aGUgc2xvdyBzaGVsbCBz Y3JpcHQuICBEb24ndCBjYWNoZSBhCisrICAgICMgdmFsdWUgZm9yIE1LRElSX1Agd2l0aGluIGEg c291cmNlIGRpcmVjdG9yeSwgYmVjYXVzZSB0aGF0IHdpbGwKKysgICAgIyBicmVhayBvdGhlciBw YWNrYWdlcyB1c2luZyB0aGUgY2FjaGUgaWYgdGhhdCBkaXJlY3RvcnkgaXMKKysgICAgIyByZW1v dmVkLCBvciBpZiB0aGUgdmFsdWUgaXMgYSByZWxhdGl2ZSBuYW1lLgorKyAgICB0ZXN0IC1kIC4v LS12ZXJzaW9uICYmIHJtZGlyIC4vLS12ZXJzaW9uCisrICAgIE1LRElSX1A9IiRhY19pbnN0YWxs X3NoIC1kIgorKyAgZmkKKytmaQorK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6 ICRNS0RJUl9QIiA+JjUKKyskYXNfZWNobyAiJE1LRElSX1AiID4mNjsgfQorKworK21rZGlyX3A9 IiRNS0RJUl9QIgorK2Nhc2UgJG1rZGlyX3AgaW4KKysgIFtcXC8kXSogfCA/OltcXC9dKikgOzsK KysgICovKikgbWtkaXJfcD0iXCQodG9wX2J1aWxkZGlyKS8kbWtkaXJfcCIgOzsKKytlc2FjCisr CisrZm9yIGFjX3Byb2cgaW4gZ2F3ayBtYXdrIG5hd2sgYXdrCisrZG8KKysgICMgRXh0cmFjdCB0 aGUgZmlyc3Qgd29yZCBvZiAiJGFjX3Byb2ciLCBzbyBpdCBjYW4gYmUgYSBwcm9ncmFtIG5hbWUg d2l0aCBhcmdzLgorK3NldCBkdW1teSAkYWNfcHJvZzsgYWNfd29yZD0kMgorK3sgJGFzX2VjaG8g IiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgJGFjX3dvcmQiID4mNQorKyRhc19lY2hvX24g ImNoZWNraW5nIGZvciAkYWNfd29yZC4uLiAiID4mNjsgfQorK2lmIHRlc3QgIiR7YWNfY3ZfcHJv Z19BV0src2V0fSIgPSBzZXQ7IHRoZW4KKysgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2Cisr ZWxzZQorKyAgaWYgdGVzdCAtbiAiJEFXSyI7IHRoZW4KKysgIGFjX2N2X3Byb2dfQVdLPSIkQVdL IiAjIExldCB0aGUgdXNlciBvdmVycmlkZSB0aGUgdGVzdC4KKytlbHNlCisrYXNfc2F2ZV9JRlM9 JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgorK2ZvciBhc19kaXIgaW4gJFBBVEgKKytkbworKyAg SUZTPSRhc19zYXZlX0lGUworKyAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KKysgIGZv ciBhY19leGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9leHRlbnNpb25zOyBkbworKyAgaWYg eyB0ZXN0IC1mICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiAmJiAkYXNfdGVzdF94ICIk YXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IjsgfTsgdGhlbgorKyAgICBhY19jdl9wcm9nX0FX Sz0iJGFjX3Byb2ciCisrICAgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZm91bmQgJGFzX2Rp ci8kYWNfd29yZCRhY19leGVjX2V4dCIgPiY1CisrICAgIGJyZWFrIDIKKysgIGZpCisrZG9uZQor K2RvbmUKKytJRlM9JGFzX3NhdmVfSUZTCisrCisrZmkKKytmaQorK0FXSz0kYWNfY3ZfcHJvZ19B V0sKKytpZiB0ZXN0IC1uICIkQVdLIjsgdGhlbgorKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5F Tk86IHJlc3VsdDogJEFXSyIgPiY1CisrJGFzX2VjaG8gIiRBV0siID4mNjsgfQorK2Vsc2UKKysg IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IG5vIiA+JjUKKyskYXNfZWNobyAi bm8iID4mNjsgfQorK2ZpCisrCisrCisrICB0ZXN0IC1uICIkQVdLIiAmJiBicmVhaworK2RvbmUK KysKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgd2hldGhlciAke01BS0Ut bWFrZX0gc2V0cyBcJChNQUtFKSIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgd2hldGhlciAk e01BS0UtbWFrZX0gc2V0cyBcJChNQUtFKS4uLiAiID4mNjsgfQorK3NldCB4ICR7TUFLRS1tYWtl fQorK2FjX21ha2U9YCRhc19lY2hvICIkMiIgfCBzZWQgJ3MvKy9wL2c7IHMvW15hLXpBLVowLTlf XS9fL2cnYAorK2lmIHsgYXNfdmFyPWFjX2N2X3Byb2dfbWFrZV8ke2FjX21ha2V9X3NldDsgZXZh bCAidGVzdCBcIlwkeyRhc192YXIrc2V0fVwiID0gc2V0IjsgfTsgdGhlbgorKyAgJGFzX2VjaG9f biAiKGNhY2hlZCkgIiA+JjYKKytlbHNlCisrICBjYXQgPmNvbmZ0ZXN0Lm1ha2UgPDxcX0FDRU9G CisrU0hFTEwgPSAvYmluL3NoCisrYWxsOgorKwlAZWNobyAnQEBAJSUlPSQoTUFLRSk9QEBAJSUl JworK19BQ0VPRgorKyMgR05VIG1ha2Ugc29tZXRpbWVzIHByaW50cyAibWFrZVsxXTogRW50ZXJp bmcuLi4iLCB3aGljaCB3b3VsZCBjb25mdXNlIHVzLgorK2Nhc2UgYCR7TUFLRS1tYWtlfSAtZiBj b25mdGVzdC5tYWtlIDI+L2Rldi9udWxsYCBpbgorKyAgKkBAQCUlJT0/Kj1AQEAlJSUqKQorKyAg ICBldmFsIGFjX2N2X3Byb2dfbWFrZV8ke2FjX21ha2V9X3NldD15ZXM7OworKyAgKikKKysgICAg ZXZhbCBhY19jdl9wcm9nX21ha2VfJHthY19tYWtlfV9zZXQ9bm87OworK2VzYWMKKytybSAtZiBj b25mdGVzdC5tYWtlCisrZmkKKytpZiBldmFsIHRlc3QgXCRhY19jdl9wcm9nX21ha2VfJHthY19t YWtlfV9zZXQgPSB5ZXM7IHRoZW4KKysgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1 bHQ6IHllcyIgPiY1CisrJGFzX2VjaG8gInllcyIgPiY2OyB9CisrICBTRVRfTUFLRT0KKytlbHNl CisrICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiBubyIgPiY1CisrJGFzX2Vj aG8gIm5vIiA+JjY7IH0KKysgIFNFVF9NQUtFPSJNQUtFPSR7TUFLRS1tYWtlfSIKKytmaQorKwor K3JtIC1yZiAudHN0IDI+L2Rldi9udWxsCisrbWtkaXIgLnRzdCAyPi9kZXYvbnVsbAorK2lmIHRl c3QgLWQgLnRzdDsgdGhlbgorKyAgYW1fX2xlYWRpbmdfZG90PS4KKytlbHNlCisrICBhbV9fbGVh ZGluZ19kb3Q9XworK2ZpCisrcm1kaXIgLnRzdCAyPi9kZXYvbnVsbAorKworK2lmIHRlc3QgImBj ZCAkc3JjZGlyICYmIHB3ZGAiICE9ICJgcHdkYCI7IHRoZW4KKysgICMgVXNlIC1JJChzcmNkaXIp IG9ubHkgd2hlbiAkKHNyY2RpcikgIT0gLiwgc28gdGhhdCBtYWtlJ3Mgb3V0cHV0CisrICAjIGlz IG5vdCBwb2xsdXRlZCB3aXRoIHJlcGVhdGVkICItSS4iCisrICBhbV9faXNyYz0nIC1JJChzcmNk aXIpJworKyAgIyB0ZXN0IHRvIHNlZSBpZiBzcmNkaXIgYWxyZWFkeSBjb25maWd1cmVkCisrICBp ZiB0ZXN0IC1mICRzcmNkaXIvY29uZmlnLnN0YXR1czsgdGhlbgorKyAgICB7IHsgJGFzX2VjaG8g IiRhc19tZTokTElORU5POiBlcnJvcjogc291cmNlIGRpcmVjdG9yeSBhbHJlYWR5IGNvbmZpZ3Vy ZWQ7IHJ1biBcIm1ha2UgZGlzdGNsZWFuXCIgdGhlcmUgZmlyc3QiID4mNQorKyRhc19lY2hvICIk YXNfbWU6IGVycm9yOiBzb3VyY2UgZGlyZWN0b3J5IGFscmVhZHkgY29uZmlndXJlZDsgcnVuIFwi bWFrZSBkaXN0Y2xlYW5cIiB0aGVyZSBmaXJzdCIgPiYyO30KKysgICB7IChleGl0IDEpOyBleGl0 IDE7IH07IH0KKysgIGZpCisrZmkKKysKKysjIHRlc3Qgd2hldGhlciB3ZSBoYXZlIGN5Z3BhdGgK KytpZiB0ZXN0IC16ICIkQ1lHUEFUSF9XIjsgdGhlbgorKyAgaWYgKGN5Z3BhdGggLS12ZXJzaW9u KSA+L2Rldi9udWxsIDI+L2Rldi9udWxsOyB0aGVuCisrICAgIENZR1BBVEhfVz0nY3lncGF0aCAt dycKKysgIGVsc2UKKysgICAgQ1lHUEFUSF9XPWVjaG8KKysgIGZpCisrZmkKKysKKysKKysjIERl ZmluZSB0aGUgaWRlbnRpdHkgb2YgdGhlIHBhY2thZ2UuCisrIFBBQ0tBR0U9J3NvY2knCisrIFZF UlNJT049JzMuMC4wJworKworKworK2NhdCA+PmNvbmZkZWZzLmggPDxfQUNFT0YKKysjZGVmaW5l IFBBQ0tBR0UgIiRQQUNLQUdFIgorK19BQ0VPRgorKworKworK2NhdCA+PmNvbmZkZWZzLmggPDxf QUNFT0YKKysjZGVmaW5lIFZFUlNJT04gIiRWRVJTSU9OIgorK19BQ0VPRgorKworKyMgU29tZSB0 b29scyBBdXRvbWFrZSBuZWVkcy4KKysKKytBQ0xPQ0FMPSR7QUNMT0NBTC0iJHthbV9taXNzaW5n X3J1bn1hY2xvY2FsLSR7YW1fX2FwaV92ZXJzaW9ufSJ9CisrCisrCisrQVVUT0NPTkY9JHtBVVRP Q09ORi0iJHthbV9taXNzaW5nX3J1bn1hdXRvY29uZiJ9CisrCisrCisrQVVUT01BS0U9JHtBVVRP TUFLRS0iJHthbV9taXNzaW5nX3J1bn1hdXRvbWFrZS0ke2FtX19hcGlfdmVyc2lvbn0ifQorKwor KworK0FVVE9IRUFERVI9JHtBVVRPSEVBREVSLSIke2FtX21pc3NpbmdfcnVufWF1dG9oZWFkZXIi fQorKworKworK01BS0VJTkZPPSR7TUFLRUlORk8tIiR7YW1fbWlzc2luZ19ydW59bWFrZWluZm8i fQorKworKyMgV2UgbmVlZCBhd2sgZm9yIHRoZSAiY2hlY2siIHRhcmdldC4gIFRoZSBzeXN0ZW0g ImF3ayIgaXMgYmFkIG9uCisrIyBzb21lIHBsYXRmb3Jtcy4KKysjIEFsd2F5cyBkZWZpbmUgQU1U QVIgZm9yIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkuCisrCisrQU1UQVI9JHtBTVRBUi0iJHthbV9t aXNzaW5nX3J1bn10YXIifQorKworK2FtX190YXI9JyR7QU1UQVJ9IGNob2YgLSAiJCR0YXJkaXIi JzsgYW1fX3VudGFyPScke0FNVEFSfSB4ZiAtJworKworKworKworKworKworKworKworKworKyMg Q2hlY2sgd2hldGhlciAtLXdpdGgtY3BwdW5pdC1wcmVmaXggd2FzIGdpdmVuLgorK2lmIHRlc3Qg IiR7d2l0aF9jcHB1bml0X3ByZWZpeCtzZXR9IiA9IHNldDsgdGhlbgorKyAgd2l0aHZhbD0kd2l0 aF9jcHB1bml0X3ByZWZpeDsgY3BwdW5pdF9jb25maWdfcHJlZml4PSIkd2l0aHZhbCIKKytlbHNl CisrICBjcHB1bml0X2NvbmZpZ19wcmVmaXg9IiIKKytmaQorKworKworKyMgQ2hlY2sgd2hldGhl ciAtLXdpdGgtY3BwdW5pdC1leGVjLXByZWZpeCB3YXMgZ2l2ZW4uCisraWYgdGVzdCAiJHt3aXRo X2NwcHVuaXRfZXhlY19wcmVmaXgrc2V0fSIgPSBzZXQ7IHRoZW4KKysgIHdpdGh2YWw9JHdpdGhf Y3BwdW5pdF9leGVjX3ByZWZpeDsgY3BwdW5pdF9jb25maWdfZXhlY19wcmVmaXg9IiR3aXRodmFs IgorK2Vsc2UKKysgIGNwcHVuaXRfY29uZmlnX2V4ZWNfcHJlZml4PSIiCisrZmkKKysKKysKKysg IGlmIHRlc3QgeCRjcHB1bml0X2NvbmZpZ19leGVjX3ByZWZpeCAhPSB4IDsgdGhlbgorKyAgICAg Y3BwdW5pdF9jb25maWdfYXJncz0iJGNwcHVuaXRfY29uZmlnX2FyZ3MgLS1leGVjLXByZWZpeD0k Y3BwdW5pdF9jb25maWdfZXhlY19wcmVmaXgiCisrICAgICBpZiB0ZXN0IHgke0NQUFVOSVRfQ09O RklHK3NldH0gIT0geHNldCA7IHRoZW4KKysgICAgICAgIENQUFVOSVRfQ09ORklHPSRjcHB1bml0 X2NvbmZpZ19leGVjX3ByZWZpeC9iaW4vY3BwdW5pdC1jb25maWcKKysgICAgIGZpCisrICBmaQor KyAgaWYgdGVzdCB4JGNwcHVuaXRfY29uZmlnX3ByZWZpeCAhPSB4IDsgdGhlbgorKyAgICAgY3Bw dW5pdF9jb25maWdfYXJncz0iJGNwcHVuaXRfY29uZmlnX2FyZ3MgLS1wcmVmaXg9JGNwcHVuaXRf Y29uZmlnX3ByZWZpeCIKKysgICAgIGlmIHRlc3QgeCR7Q1BQVU5JVF9DT05GSUcrc2V0fSAhPSB4 c2V0IDsgdGhlbgorKyAgICAgICAgQ1BQVU5JVF9DT05GSUc9JGNwcHVuaXRfY29uZmlnX3ByZWZp eC9iaW4vY3BwdW5pdC1jb25maWcKKysgICAgIGZpCisrICBmaQorKworKyAgIyBFeHRyYWN0IHRo ZSBmaXJzdCB3b3JkIG9mICJjcHB1bml0LWNvbmZpZyIsIHNvIGl0IGNhbiBiZSBhIHByb2dyYW0g bmFtZSB3aXRoIGFyZ3MuCisrc2V0IGR1bW15IGNwcHVuaXQtY29uZmlnOyBhY193b3JkPSQyCisr eyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciAkYWNfd29yZCIgPiY1Cisr JGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yICRhY193b3JkLi4uICIgPiY2OyB9CisraWYgdGVzdCAi JHthY19jdl9wYXRoX0NQUFVOSVRfQ09ORklHK3NldH0iID0gc2V0OyB0aGVuCisrICAkYXNfZWNo b19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysgIGNhc2UgJENQUFVOSVRfQ09ORklHIGluCisr ICBbXFwvXSogfCA/OltcXC9dKikKKysgIGFjX2N2X3BhdGhfQ1BQVU5JVF9DT05GSUc9IiRDUFBV TklUX0NPTkZJRyIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3Qgd2l0aCBhIHBhdGgu CisrICA7OworKyAgKikKKysgIGFzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IK Kytmb3IgYXNfZGlyIGluICRQQVRICisrZG8KKysgIElGUz0kYXNfc2F2ZV9JRlMKKysgIHRlc3Qg LXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCisrICBmb3IgYWNfZXhlY19leHQgaW4gJycgJGFjX2V4 ZWN1dGFibGVfZXh0ZW5zaW9uczsgZG8KKysgIGlmIHsgdGVzdCAtZiAiJGFzX2Rpci8kYWNfd29y ZCRhY19leGVjX2V4dCIgJiYgJGFzX3Rlc3RfeCAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4 dCI7IH07IHRoZW4KKysgICAgYWNfY3ZfcGF0aF9DUFBVTklUX0NPTkZJRz0iJGFzX2Rpci8kYWNf d29yZCRhY19leGVjX2V4dCIKKysgICAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBmb3VuZCAk YXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiA+JjUKKysgICAgYnJlYWsgMgorKyAgZmkKKytk b25lCisrZG9uZQorK0lGUz0kYXNfc2F2ZV9JRlMKKysKKysgIHRlc3QgLXogIiRhY19jdl9wYXRo X0NQUFVOSVRfQ09ORklHIiAmJiBhY19jdl9wYXRoX0NQUFVOSVRfQ09ORklHPSJubyIKKysgIDs7 CisrZXNhYworK2ZpCisrQ1BQVU5JVF9DT05GSUc9JGFjX2N2X3BhdGhfQ1BQVU5JVF9DT05GSUcK KytpZiB0ZXN0IC1uICIkQ1BQVU5JVF9DT05GSUciOyB0aGVuCisrICB7ICRhc19lY2hvICIkYXNf bWU6JExJTkVOTzogcmVzdWx0OiAkQ1BQVU5JVF9DT05GSUciID4mNQorKyRhc19lY2hvICIkQ1BQ VU5JVF9DT05GSUciID4mNjsgfQorK2Vsc2UKKysgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5P OiByZXN1bHQ6IG5vIiA+JjUKKyskYXNfZWNobyAibm8iID4mNjsgfQorK2ZpCisrCisrCisrICBj cHB1bml0X3ZlcnNpb25fbWluPTEuMTAKKysKKysgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5P OiBjaGVja2luZyBmb3IgQ3BwdW5pdCAtIHZlcnNpb24gPj0gJGNwcHVuaXRfdmVyc2lvbl9taW4i ID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIGZvciBDcHB1bml0IC0gdmVyc2lvbiA+PSAkY3Bw dW5pdF92ZXJzaW9uX21pbi4uLiAiID4mNjsgfQorKyAgbm9fY3BwdW5pdD0iIgorKyAgaWYgdGVz dCAiJENQUFVOSVRfQ09ORklHIiA9ICJubyIgOyB0aGVuCisrICAgIHsgJGFzX2VjaG8gIiRhc19t ZTokTElORU5POiByZXN1bHQ6IG5vIiA+JjUKKyskYXNfZWNobyAibm8iID4mNjsgfQorKyAgICBu b19jcHB1bml0PXllcworKyAgZWxzZQorKyAgICBDUFBVTklUX0NGTEFHUz1gJENQUFVOSVRfQ09O RklHIC0tY2ZsYWdzYAorKyAgICBDUFBVTklUX0xJQlM9YCRDUFBVTklUX0NPTkZJRyAtLWxpYnNg CisrICAgIENQUFVOSVRfVkVSU0lPTj1gJENQUFVOSVRfQ09ORklHIC0tdmVyc2lvbmAKKysKKysg ICAgY3BwdW5pdF9tYWpvcl92ZXJzaW9uPWBlY2hvICRDUFBVTklUX1ZFUlNJT04gfCBcCisrICAg ICAgICAgICBzZWQgJ3MvXChbMC05XSpcKS5cKFswLTldKlwpLlwoWzAtOV0qXCkvXDEvJ2AKKysg ICAgY3BwdW5pdF9taW5vcl92ZXJzaW9uPWBlY2hvICRDUFBVTklUX1ZFUlNJT04gfCBcCisrICAg ICAgICAgICBzZWQgJ3MvXChbMC05XSpcKS5cKFswLTldKlwpLlwoWzAtOV0qXCkvXDIvJ2AKKysg ICAgY3BwdW5pdF9taWNyb192ZXJzaW9uPWBlY2hvICRDUFBVTklUX1ZFUlNJT04gfCBcCisrICAg ICAgICAgICBzZWQgJ3MvXChbMC05XSpcKS5cKFswLTldKlwpLlwoWzAtOV0qXCkvXDMvJ2AKKysK KysgICAgY3BwdW5pdF9tYWpvcl9taW49YGVjaG8gJGNwcHVuaXRfdmVyc2lvbl9taW4gfCBcCisr ICAgICAgICAgICBzZWQgJ3MvXChbMC05XSpcKS5cKFswLTldKlwpLlwoWzAtOV0qXCkvXDEvJ2AK KysgICAgaWYgdGVzdCAieCR7Y3BwdW5pdF9tYWpvcl9taW59IiA9ICJ4IiA7IHRoZW4KKysgICAg ICAgY3BwdW5pdF9tYWpvcl9taW49MAorKyAgICBmaQorKworKyAgICBjcHB1bml0X21pbm9yX21p bj1gZWNobyAkY3BwdW5pdF92ZXJzaW9uX21pbiB8IFwKKysgICAgICAgICAgIHNlZCAncy9cKFsw LTldKlwpLlwoWzAtOV0qXCkuXChbMC05XSpcKS9cMi8nYAorKyAgICBpZiB0ZXN0ICJ4JHtjcHB1 bml0X21pbm9yX21pbn0iID0gIngiIDsgdGhlbgorKyAgICAgICBjcHB1bml0X21pbm9yX21pbj0w CisrICAgIGZpCisrCisrICAgIGNwcHVuaXRfbWljcm9fbWluPWBlY2hvICRjcHB1bml0X3ZlcnNp b25fbWluIHwgXAorKyAgICAgICAgICAgc2VkICdzL1woWzAtOV0qXCkuXChbMC05XSpcKS5cKFsw LTldKlwpL1wzLydgCisrICAgIGlmIHRlc3QgIngke2NwcHVuaXRfbWljcm9fbWlufSIgPSAieCIg OyB0aGVuCisrICAgICAgIGNwcHVuaXRfbWljcm9fbWluPTAKKysgICAgZmkKKysKKysgICAgY3Bw dW5pdF92ZXJzaW9uX3Byb3Blcj1gZXhwciBcCisrICAgICAgICAkY3BwdW5pdF9tYWpvcl92ZXJz aW9uIFw+ICRjcHB1bml0X21ham9yX21pbiBcfCBcCisrICAgICAgICAkY3BwdW5pdF9tYWpvcl92 ZXJzaW9uIFw9ICRjcHB1bml0X21ham9yX21pbiBcJiBcCisrICAgICAgICAkY3BwdW5pdF9taW5v cl92ZXJzaW9uIFw+ICRjcHB1bml0X21pbm9yX21pbiBcfCBcCisrICAgICAgICAkY3BwdW5pdF9t YWpvcl92ZXJzaW9uIFw9ICRjcHB1bml0X21ham9yX21pbiBcJiBcCisrICAgICAgICAkY3BwdW5p dF9taW5vcl92ZXJzaW9uIFw9ICRjcHB1bml0X21pbm9yX21pbiBcJiBcCisrICAgICAgICAkY3Bw dW5pdF9taWNyb192ZXJzaW9uIFw+PSAkY3BwdW5pdF9taWNyb19taW4gYAorKworKyAgICBpZiB0 ZXN0ICIkY3BwdW5pdF92ZXJzaW9uX3Byb3BlciIgPSAiMSIgOyB0aGVuCisrICAgICAgeyAkYXNf ZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGNwcHVuaXRfbWFqb3JfdmVyc2lvbi4kY3Bw dW5pdF9taW5vcl92ZXJzaW9uLiRjcHB1bml0X21pY3JvX3ZlcnNpb24iID4mNQorKyRhc19lY2hv ICIkY3BwdW5pdF9tYWpvcl92ZXJzaW9uLiRjcHB1bml0X21pbm9yX3ZlcnNpb24uJGNwcHVuaXRf bWljcm9fdmVyc2lvbiIgPiY2OyB9CisrICAgIGVsc2UKKysgICAgICB7ICRhc19lY2hvICIkYXNf bWU6JExJTkVOTzogcmVzdWx0OiBubyIgPiY1CisrJGFzX2VjaG8gIm5vIiA+JjY7IH0KKysgICAg ICBub19jcHB1bml0PXllcworKyAgICBmaQorKyAgZmkKKysKKysgIGlmIHRlc3QgIngkbm9fY3Bw dW5pdCIgPSB4IDsgdGhlbgorKyAgICAgOgorKyAgZWxzZQorKyAgICAgQ1BQVU5JVF9DRkxBR1M9 IiIKKysgICAgIENQUFVOSVRfTElCUz0iIgorKyAgICAgOgorKyAgZmkKKysKKysKKysKKysKKysK KysgaWYgdGVzdCAieCRDUFBVTklUX0xJQlMiICE9IHg7IHRoZW4KKysgIEhBVkVfQ1BQVU5JVF9U UlVFPQorKyAgSEFWRV9DUFBVTklUX0ZBTFNFPScjJworK2Vsc2UKKysgIEhBVkVfQ1BQVU5JVF9U UlVFPScjJworKyAgSEFWRV9DUFBVTklUX0ZBTFNFPQorK2ZpCisrCisrCisrIyBSUE0gcmVsZWFz ZSBudW1iZXIKKytSUE1fUkVMRUFTRT0iMTYiCisrCisrCisrIyBTaGFyZWQgbGlicmFyeSB2ZXJz aW9uaW5nCisrR0VORVJJQ19MSUJSQVJZX1ZFUlNJT049IjM6MDowIgorKyMgICAgICAgICAgICAg ICAgICAgICAgICB8IHwgfAorKyMgICAgICAgICAgICAgICAgICstLS0tLS0rIHwgKy0tLSsKKysj ICAgICAgICAgICAgICAgICB8ICAgICAgICB8ICAgICB8CisrIyAgICAgICAgICAgICAgY3VycmVu dDpyZXZpc2lvbjphZ2UKKysjICAgICAgICAgICAgICAgICB8ICAgICAgICB8ICAgICB8CisrIyAg ICAgICAgICAgICAgICAgfCAgICAgICAgfCAgICAgKy0gaW5jcmVtZW50IGlmIGludGVyZmFjZXMg aGF2ZSBiZWVuIGFkZGVkOworKyMgICAgICAgICAgICAgICAgIHwgICAgICAgIHwgICAgICAgIHNl dCB0byB6ZXJvIGlmIGludGVyZmFjZXMgaGF2ZSBiZWVuCisrIyAgICAgICAgICAgICAgICAgfCAg ICAgICAgfCAgICAgICAgcmVtb3ZlZCBvciBjaGFuZ2VkCisrIyAgICAgICAgICAgICAgICAgfCAg ICAgICAgKy0gaW5jcmVtZW50IGlmIHNvdXJjZSBjb2RlIGhhcyBjaGFuZ2VkOworKyMgICAgICAg ICAgICAgICAgIHwgICAgICAgICAgIHNldCB0byB6ZXJvIGlmIGN1cnJlbnQgaXMgaW5jcmVtZW50 ZWQKKysjICAgICAgICAgICAgICAgICArLSBpbmNyZW1lbnQgaWYgaW50ZXJmYWNlcyBoYXZlIGJl ZW4gYWRkZWQsIHJlbW92ZWQKKysjICAgICAgICAgICAgICAgICAgICBvciBjaGFuZ2VkCisrCisr CisrIyBVcGxvYWQgY29tbWFuZCBmb3IgU291cmNlRm9yZ2UKKytVUExPQURfQ09NTUFORD0ibmNm dHBwdXQgLXYgdXBsb2FkLnNvdXJjZWZvcmdlLm5ldCAvaW5jb21pbmciCisrCisrCisrIyBDaGVj ayBmb3IgaG9zdCBhbmQgZGlzYWJsZSBidWlsZGluZyBhIHNoYXJlZCBsaWJyYXJ5IGluIFdpbmRv d3MKKysjIE1ha2Ugc3VyZSB3ZSBjYW4gcnVuIGNvbmZpZy5zdWIuCisrJFNIRUxMICIkYWNfYXV4 X2Rpci9jb25maWcuc3ViIiBzdW40ID4vZGV2L251bGwgMj4mMSB8fAorKyAgeyB7ICRhc19lY2hv ICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IGNhbm5vdCBydW4gJFNIRUxMICRhY19hdXhfZGlyL2Nv bmZpZy5zdWIiID4mNQorKyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBjYW5ub3QgcnVuICRTSEVM TCAkYWNfYXV4X2Rpci9jb25maWcuc3ViIiA+JjI7fQorKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsg fTsgfQorKworK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBidWlsZCBzeXN0 ZW0gdHlwZSIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgYnVpbGQgc3lzdGVtIHR5cGUuLi4g IiA+JjY7IH0KKytpZiB0ZXN0ICIke2FjX2N2X2J1aWxkK3NldH0iID0gc2V0OyB0aGVuCisrICAk YXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysgIGFjX2J1aWxkX2FsaWFzPSRidWls ZF9hbGlhcworK3Rlc3QgIngkYWNfYnVpbGRfYWxpYXMiID0geCAmJgorKyAgYWNfYnVpbGRfYWxp YXM9YCRTSEVMTCAiJGFjX2F1eF9kaXIvY29uZmlnLmd1ZXNzImAKKyt0ZXN0ICJ4JGFjX2J1aWxk X2FsaWFzIiA9IHggJiYKKysgIHsgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBj YW5ub3QgZ3Vlc3MgYnVpbGQgdHlwZTsgeW91IG11c3Qgc3BlY2lmeSBvbmUiID4mNQorKyRhc19l Y2hvICIkYXNfbWU6IGVycm9yOiBjYW5ub3QgZ3Vlc3MgYnVpbGQgdHlwZTsgeW91IG11c3Qgc3Bl Y2lmeSBvbmUiID4mMjt9CisrICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9CisrYWNfY3ZfYnVp bGQ9YCRTSEVMTCAiJGFjX2F1eF9kaXIvY29uZmlnLnN1YiIgJGFjX2J1aWxkX2FsaWFzYCB8fAor KyAgeyB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6ICRTSEVMTCAkYWNfYXV4X2Rp ci9jb25maWcuc3ViICRhY19idWlsZF9hbGlhcyBmYWlsZWQiID4mNQorKyRhc19lY2hvICIkYXNf bWU6IGVycm9yOiAkU0hFTEwgJGFjX2F1eF9kaXIvY29uZmlnLnN1YiAkYWNfYnVpbGRfYWxpYXMg ZmFpbGVkIiA+JjI7fQorKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQorKworK2ZpCisreyAk YXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2N2X2J1aWxkIiA+JjUKKyskYXNf ZWNobyAiJGFjX2N2X2J1aWxkIiA+JjY7IH0KKytjYXNlICRhY19jdl9idWlsZCBpbgorKyotKi0q KSA7OworKyopIHsgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBpbnZhbGlkIHZh bHVlIG9mIGNhbm9uaWNhbCBidWlsZCIgPiY1CisrJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IGlu dmFsaWQgdmFsdWUgb2YgY2Fub25pY2FsIGJ1aWxkIiA+JjI7fQorKyAgIHsgKGV4aXQgMSk7IGV4 aXQgMTsgfTsgfTs7CisrZXNhYworK2J1aWxkPSRhY19jdl9idWlsZAorK2FjX3NhdmVfSUZTPSRJ RlM7IElGUz0nLScKKytzZXQgeCAkYWNfY3ZfYnVpbGQKKytzaGlmdAorK2J1aWxkX2NwdT0kMQor K2J1aWxkX3ZlbmRvcj0kMgorK3NoaWZ0OyBzaGlmdAorKyMgUmVtZW1iZXIsIHRoZSBmaXJzdCBj aGFyYWN0ZXIgb2YgSUZTIGlzIHVzZWQgdG8gY3JlYXRlICQqLAorKyMgZXhjZXB0IHdpdGggb2xk IHNoZWxsczoKKytidWlsZF9vcz0kKgorK0lGUz0kYWNfc2F2ZV9JRlMKKytjYXNlICRidWlsZF9v cyBpbiAqXCAqKSBidWlsZF9vcz1gZWNobyAiJGJ1aWxkX29zIiB8IHNlZCAncy8gLy0vZydgOzsg ZXNhYworKworKworK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBob3N0IHN5 c3RlbSB0eXBlIiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyBob3N0IHN5c3RlbSB0eXBlLi4u ICIgPiY2OyB9CisraWYgdGVzdCAiJHthY19jdl9ob3N0K3NldH0iID0gc2V0OyB0aGVuCisrICAk YXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysgIGlmIHRlc3QgIngkaG9zdF9hbGlh cyIgPSB4OyB0aGVuCisrICBhY19jdl9ob3N0PSRhY19jdl9idWlsZAorK2Vsc2UKKysgIGFjX2N2 X2hvc3Q9YCRTSEVMTCAiJGFjX2F1eF9kaXIvY29uZmlnLnN1YiIgJGhvc3RfYWxpYXNgIHx8Cisr ICAgIHsgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiAkU0hFTEwgJGFjX2F1eF9k aXIvY29uZmlnLnN1YiAkaG9zdF9hbGlhcyBmYWlsZWQiID4mNQorKyRhc19lY2hvICIkYXNfbWU6 IGVycm9yOiAkU0hFTEwgJGFjX2F1eF9kaXIvY29uZmlnLnN1YiAkaG9zdF9hbGlhcyBmYWlsZWQi ID4mMjt9CisrICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9CisrZmkKKysKKytmaQorK3sgJGFz X2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19jdl9ob3N0IiA+JjUKKyskYXNfZWNo byAiJGFjX2N2X2hvc3QiID4mNjsgfQorK2Nhc2UgJGFjX2N2X2hvc3QgaW4KKysqLSotKikgOzsK KysqKSB7IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogaW52YWxpZCB2YWx1ZSBv ZiBjYW5vbmljYWwgaG9zdCIgPiY1CisrJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IGludmFsaWQg dmFsdWUgb2YgY2Fub25pY2FsIGhvc3QiID4mMjt9CisrICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9 OyB9OzsKKytlc2FjCisraG9zdD0kYWNfY3ZfaG9zdAorK2FjX3NhdmVfSUZTPSRJRlM7IElGUz0n LScKKytzZXQgeCAkYWNfY3ZfaG9zdAorK3NoaWZ0CisraG9zdF9jcHU9JDEKKytob3N0X3ZlbmRv cj0kMgorK3NoaWZ0OyBzaGlmdAorKyMgUmVtZW1iZXIsIHRoZSBmaXJzdCBjaGFyYWN0ZXIgb2Yg SUZTIGlzIHVzZWQgdG8gY3JlYXRlICQqLAorKyMgZXhjZXB0IHdpdGggb2xkIHNoZWxsczoKKyto b3N0X29zPSQqCisrSUZTPSRhY19zYXZlX0lGUworK2Nhc2UgJGhvc3Rfb3MgaW4gKlwgKikgaG9z dF9vcz1gZWNobyAiJGhvc3Rfb3MiIHwgc2VkICdzLyAvLS9nJ2A7OyBlc2FjCisrCisrCisrY2Fz ZSAkaG9zdCBpbgorKyAgKi0qLW1zZG9zKiB8ICotKi1nbzMyKiB8ICotKi1taW5ndzMyKiB8ICot Ki1jeWd3aW4qIHwgKi0qLXdpbmRvd3MqKQorKyAgICAjIENoZWNrIHdoZXRoZXIgLS1lbmFibGUt c2hhcmVkIHdhcyBnaXZlbi4KKytpZiB0ZXN0ICIke2VuYWJsZV9zaGFyZWQrc2V0fSIgPSBzZXQ7 IHRoZW4KKysgIGVuYWJsZXZhbD0kZW5hYmxlX3NoYXJlZDsgcD0ke1BBQ0tBR0UtZGVmYXVsdH0K KysgICAgY2FzZSAkZW5hYmxldmFsIGluCisrICAgIHllcykgZW5hYmxlX3NoYXJlZD15ZXMgOzsK KysgICAgbm8pIGVuYWJsZV9zaGFyZWQ9bm8gOzsKKysgICAgKikKKysgICAgICBlbmFibGVfc2hh cmVkPW5vCisrICAgICAgIyBMb29rIGF0IHRoZSBhcmd1bWVudCB3ZSBnb3QuICBXZSB1c2UgYWxs IHRoZSBjb21tb24gbGlzdCBzZXBhcmF0b3JzLgorKyAgICAgIGx0X3NhdmVfaWZzPSIkSUZTIjsg SUZTPSIke0lGU30kUEFUSF9TRVBBUkFUT1IsIgorKyAgICAgIGZvciBwa2cgaW4gJGVuYWJsZXZh bDsgZG8KKysJSUZTPSIkbHRfc2F2ZV9pZnMiCisrCWlmIHRlc3QgIlgkcGtnIiA9ICJYJHAiOyB0 aGVuCisrCSAgZW5hYmxlX3NoYXJlZD15ZXMKKysJZmkKKysgICAgICBkb25lCisrICAgICAgSUZT PSIkbHRfc2F2ZV9pZnMiCisrICAgICAgOzsKKysgICAgZXNhYworK2Vsc2UKKysgIGVuYWJsZV9z aGFyZWQ9bm8KKytmaQorKworKworKworKworKworKworKworKworKworKyAgICAjIENoZWNrIHdo ZXRoZXIgLS1lbmFibGUtc3RhdGljIHdhcyBnaXZlbi4KKytpZiB0ZXN0ICIke2VuYWJsZV9zdGF0 aWMrc2V0fSIgPSBzZXQ7IHRoZW4KKysgIGVuYWJsZXZhbD0kZW5hYmxlX3N0YXRpYzsgcD0ke1BB Q0tBR0UtZGVmYXVsdH0KKysgICAgY2FzZSAkZW5hYmxldmFsIGluCisrICAgIHllcykgZW5hYmxl X3N0YXRpYz15ZXMgOzsKKysgICAgbm8pIGVuYWJsZV9zdGF0aWM9bm8gOzsKKysgICAgKikKKysg ICAgIGVuYWJsZV9zdGF0aWM9bm8KKysgICAgICAjIExvb2sgYXQgdGhlIGFyZ3VtZW50IHdlIGdv dC4gIFdlIHVzZSBhbGwgdGhlIGNvbW1vbiBsaXN0IHNlcGFyYXRvcnMuCisrICAgICAgbHRfc2F2 ZV9pZnM9IiRJRlMiOyBJRlM9IiR7SUZTfSRQQVRIX1NFUEFSQVRPUiwiCisrICAgICAgZm9yIHBr ZyBpbiAkZW5hYmxldmFsOyBkbworKwlJRlM9IiRsdF9zYXZlX2lmcyIKKysJaWYgdGVzdCAiWCRw a2ciID0gIlgkcCI7IHRoZW4KKysJICBlbmFibGVfc3RhdGljPXllcworKwlmaQorKyAgICAgIGRv bmUKKysgICAgICBJRlM9IiRsdF9zYXZlX2lmcyIKKysgICAgICA7OworKyAgICBlc2FjCisrZWxz ZQorKyAgZW5hYmxlX3N0YXRpYz15ZXMKKytmaQorKworKworKworKworKworKworKworKworKwor KyAgICA7OworKyAgKikKKysgICAgIyBDaGVjayB3aGV0aGVyIC0tZW5hYmxlLXNoYXJlZCB3YXMg Z2l2ZW4uCisraWYgdGVzdCAiJHtlbmFibGVfc2hhcmVkK3NldH0iID0gc2V0OyB0aGVuCisrICBl bmFibGV2YWw9JGVuYWJsZV9zaGFyZWQ7IHA9JHtQQUNLQUdFLWRlZmF1bHR9CisrICAgIGNhc2Ug JGVuYWJsZXZhbCBpbgorKyAgICB5ZXMpIGVuYWJsZV9zaGFyZWQ9eWVzIDs7CisrICAgIG5vKSBl bmFibGVfc2hhcmVkPW5vIDs7CisrICAgICopCisrICAgICAgZW5hYmxlX3NoYXJlZD1ubworKyAg ICAgICMgTG9vayBhdCB0aGUgYXJndW1lbnQgd2UgZ290LiAgV2UgdXNlIGFsbCB0aGUgY29tbW9u IGxpc3Qgc2VwYXJhdG9ycy4KKysgICAgICBsdF9zYXZlX2lmcz0iJElGUyI7IElGUz0iJHtJRlN9 JFBBVEhfU0VQQVJBVE9SLCIKKysgICAgICBmb3IgcGtnIGluICRlbmFibGV2YWw7IGRvCisrCUlG Uz0iJGx0X3NhdmVfaWZzIgorKwlpZiB0ZXN0ICJYJHBrZyIgPSAiWCRwIjsgdGhlbgorKwkgIGVu YWJsZV9zaGFyZWQ9eWVzCisrCWZpCisrICAgICAgZG9uZQorKyAgICAgIElGUz0iJGx0X3NhdmVf aWZzIgorKyAgICAgIDs7CisrICAgIGVzYWMKKytlbHNlCisrICBlbmFibGVfc2hhcmVkPXllcwor K2ZpCisrCisrCisrCisrCisrCisrCisrICAgICMgQ2hlY2sgd2hldGhlciAtLWVuYWJsZS1zdGF0 aWMgd2FzIGdpdmVuLgorK2lmIHRlc3QgIiR7ZW5hYmxlX3N0YXRpYytzZXR9IiA9IHNldDsgdGhl bgorKyAgZW5hYmxldmFsPSRlbmFibGVfc3RhdGljOyBwPSR7UEFDS0FHRS1kZWZhdWx0fQorKyAg ICBjYXNlICRlbmFibGV2YWwgaW4KKysgICAgeWVzKSBlbmFibGVfc3RhdGljPXllcyA7OworKyAg ICBubykgZW5hYmxlX3N0YXRpYz1ubyA7OworKyAgICAqKQorKyAgICAgZW5hYmxlX3N0YXRpYz1u bworKyAgICAgICMgTG9vayBhdCB0aGUgYXJndW1lbnQgd2UgZ290LiAgV2UgdXNlIGFsbCB0aGUg Y29tbW9uIGxpc3Qgc2VwYXJhdG9ycy4KKysgICAgICBsdF9zYXZlX2lmcz0iJElGUyI7IElGUz0i JHtJRlN9JFBBVEhfU0VQQVJBVE9SLCIKKysgICAgICBmb3IgcGtnIGluICRlbmFibGV2YWw7IGRv CisrCUlGUz0iJGx0X3NhdmVfaWZzIgorKwlpZiB0ZXN0ICJYJHBrZyIgPSAiWCRwIjsgdGhlbgor KwkgIGVuYWJsZV9zdGF0aWM9eWVzCisrCWZpCisrICAgICAgZG9uZQorKyAgICAgIElGUz0iJGx0 X3NhdmVfaWZzIgorKyAgICAgIDs7CisrICAgIGVzYWMKKytlbHNlCisrICBlbmFibGVfc3RhdGlj PW5vCisrZmkKKysKKysKKysKKysKKysKKysKKysgICAgOzsKKytlc2FjCisrCisrIyBDaGVja3Mg Zm9yIHByb2dyYW1zCisrc2F2ZV9DWFhGTEFHUz0iJENYWEZMQUdTIgorK2FjX2V4dD1jcHAKKyth Y19jcHA9JyRDWFhDUFAgJENQUEZMQUdTJworK2FjX2NvbXBpbGU9JyRDWFggLWMgJENYWEZMQUdT ICRDUFBGTEFHUyBjb25mdGVzdC4kYWNfZXh0ID4mNScKKythY19saW5rPSckQ1hYIC1vIGNvbmZ0 ZXN0JGFjX2V4ZWV4dCAkQ1hYRkxBR1MgJENQUEZMQUdTICRMREZMQUdTIGNvbmZ0ZXN0LiRhY19l eHQgJExJQlMgPiY1JworK2FjX2NvbXBpbGVyX2dudT0kYWNfY3ZfY3h4X2NvbXBpbGVyX2dudQor K2lmIHRlc3QgLXogIiRDWFgiOyB0aGVuCisrICBpZiB0ZXN0IC1uICIkQ0NDIjsgdGhlbgorKyAg ICBDWFg9JENDQworKyAgZWxzZQorKyAgICBpZiB0ZXN0IC1uICIkYWNfdG9vbF9wcmVmaXgiOyB0 aGVuCisrICBmb3IgYWNfcHJvZyBpbiBnKysgYysrIGdwcCBhQ0MgQ0MgY3h4IGNjKysgY2wuZXhl IEZDQyBLQ0MgUkNDIHhsQ19yIHhsQworKyAgZG8KKysgICAgIyBFeHRyYWN0IHRoZSBmaXJzdCB3 b3JkIG9mICIkYWNfdG9vbF9wcmVmaXgkYWNfcHJvZyIsIHNvIGl0IGNhbiBiZSBhIHByb2dyYW0g bmFtZSB3aXRoIGFyZ3MuCisrc2V0IGR1bW15ICRhY190b29sX3ByZWZpeCRhY19wcm9nOyBhY193 b3JkPSQyCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciAkYWNfd29y ZCIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yICRhY193b3JkLi4uICIgPiY2OyB9Cisr aWYgdGVzdCAiJHthY19jdl9wcm9nX0NYWCtzZXR9IiA9IHNldDsgdGhlbgorKyAgJGFzX2VjaG9f biAiKGNhY2hlZCkgIiA+JjYKKytlbHNlCisrICBpZiB0ZXN0IC1uICIkQ1hYIjsgdGhlbgorKyAg YWNfY3ZfcHJvZ19DWFg9IiRDWFgiICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0Lgor K2Vsc2UKKythc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCisrZm9yIGFzX2Rp ciBpbiAkUEFUSAorK2RvCisrICBJRlM9JGFzX3NhdmVfSUZTCisrICB0ZXN0IC16ICIkYXNfZGly IiAmJiBhc19kaXI9LgorKyAgZm9yIGFjX2V4ZWNfZXh0IGluICcnICRhY19leGVjdXRhYmxlX2V4 dGVuc2lvbnM7IGRvCisrICBpZiB7IHRlc3QgLWYgIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19l eHQiICYmICRhc190ZXN0X3ggIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiOyB9OyB0aGVu CisrICAgIGFjX2N2X3Byb2dfQ1hYPSIkYWNfdG9vbF9wcmVmaXgkYWNfcHJvZyIKKysgICAgJGFz X2VjaG8gIiRhc19tZTokTElORU5POiBmb3VuZCAkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0 IiA+JjUKKysgICAgYnJlYWsgMgorKyAgZmkKKytkb25lCisrZG9uZQorK0lGUz0kYXNfc2F2ZV9J RlMKKysKKytmaQorK2ZpCisrQ1hYPSRhY19jdl9wcm9nX0NYWAorK2lmIHRlc3QgLW4gIiRDWFgi OyB0aGVuCisrICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkQ1hYIiA+JjUK KyskYXNfZWNobyAiJENYWCIgPiY2OyB9CisrZWxzZQorKyAgeyAkYXNfZWNobyAiJGFzX21lOiRM SU5FTk86IHJlc3VsdDogbm8iID4mNQorKyRhc19lY2hvICJubyIgPiY2OyB9CisrZmkKKysKKysK KysgICAgdGVzdCAtbiAiJENYWCIgJiYgYnJlYWsKKysgIGRvbmUKKytmaQorK2lmIHRlc3QgLXog IiRDWFgiOyB0aGVuCisrICBhY19jdF9DWFg9JENYWAorKyAgZm9yIGFjX3Byb2cgaW4gZysrIGMr KyBncHAgYUNDIENDIGN4eCBjYysrIGNsLmV4ZSBGQ0MgS0NDIFJDQyB4bENfciB4bEMKKytkbwor KyAgIyBFeHRyYWN0IHRoZSBmaXJzdCB3b3JkIG9mICIkYWNfcHJvZyIsIHNvIGl0IGNhbiBiZSBh IHByb2dyYW0gbmFtZSB3aXRoIGFyZ3MuCisrc2V0IGR1bW15ICRhY19wcm9nOyBhY193b3JkPSQy CisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciAkYWNfd29yZCIgPiY1 CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yICRhY193b3JkLi4uICIgPiY2OyB9CisraWYgdGVz dCAiJHthY19jdl9wcm9nX2FjX2N0X0NYWCtzZXR9IiA9IHNldDsgdGhlbgorKyAgJGFzX2VjaG9f biAiKGNhY2hlZCkgIiA+JjYKKytlbHNlCisrICBpZiB0ZXN0IC1uICIkYWNfY3RfQ1hYIjsgdGhl bgorKyAgYWNfY3ZfcHJvZ19hY19jdF9DWFg9IiRhY19jdF9DWFgiICMgTGV0IHRoZSB1c2VyIG92 ZXJyaWRlIHRoZSB0ZXN0LgorK2Vsc2UKKythc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQ QVJBVE9SCisrZm9yIGFzX2RpciBpbiAkUEFUSAorK2RvCisrICBJRlM9JGFzX3NhdmVfSUZTCisr ICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgorKyAgZm9yIGFjX2V4ZWNfZXh0IGluICcn ICRhY19leGVjdXRhYmxlX2V4dGVuc2lvbnM7IGRvCisrICBpZiB7IHRlc3QgLWYgIiRhc19kaXIv JGFjX3dvcmQkYWNfZXhlY19leHQiICYmICRhc190ZXN0X3ggIiRhc19kaXIvJGFjX3dvcmQkYWNf ZXhlY19leHQiOyB9OyB0aGVuCisrICAgIGFjX2N2X3Byb2dfYWNfY3RfQ1hYPSIkYWNfcHJvZyIK KysgICAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBmb3VuZCAkYXNfZGlyLyRhY193b3JkJGFj X2V4ZWNfZXh0IiA+JjUKKysgICAgYnJlYWsgMgorKyAgZmkKKytkb25lCisrZG9uZQorK0lGUz0k YXNfc2F2ZV9JRlMKKysKKytmaQorK2ZpCisrYWNfY3RfQ1hYPSRhY19jdl9wcm9nX2FjX2N0X0NY WAorK2lmIHRlc3QgLW4gIiRhY19jdF9DWFgiOyB0aGVuCisrICB7ICRhc19lY2hvICIkYXNfbWU6 JExJTkVOTzogcmVzdWx0OiAkYWNfY3RfQ1hYIiA+JjUKKyskYXNfZWNobyAiJGFjX2N0X0NYWCIg PiY2OyB9CisrZWxzZQorKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogbm8i ID4mNQorKyRhc19lY2hvICJubyIgPiY2OyB9CisrZmkKKysKKysKKysgIHRlc3QgLW4gIiRhY19j dF9DWFgiICYmIGJyZWFrCisrZG9uZQorKworKyAgaWYgdGVzdCAieCRhY19jdF9DWFgiID0geDsg dGhlbgorKyAgICBDWFg9ImcrKyIKKysgIGVsc2UKKysgICAgY2FzZSAkY3Jvc3NfY29tcGlsaW5n OiRhY190b29sX3dhcm5lZCBpbgorK3llczopCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86 IFdBUk5JTkc6IHVzaW5nIGNyb3NzIHRvb2xzIG5vdCBwcmVmaXhlZCB3aXRoIGhvc3QgdHJpcGxl dCIgPiY1CisrJGFzX2VjaG8gIiRhc19tZTogV0FSTklORzogdXNpbmcgY3Jvc3MgdG9vbHMgbm90 IHByZWZpeGVkIHdpdGggaG9zdCB0cmlwbGV0IiA+JjI7fQorK2FjX3Rvb2xfd2FybmVkPXllcyA7 OworK2VzYWMKKysgICAgQ1hYPSRhY19jdF9DWFgKKysgIGZpCisrZmkKKysKKysgIGZpCisrZmkK KysjIFByb3ZpZGUgc29tZSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgY29tcGlsZXIuCisrJGFzX2Vj aG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgQysrIGNvbXBpbGVyIHZlcnNpb24iID4m NQorK3NldCBYICRhY19jb21waWxlCisrYWNfY29tcGlsZXI9JDIKKyt7IChhY190cnk9IiRhY19j b21waWxlciAtLXZlcnNpb24gPiY1IgorK2Nhc2UgIigoJGFjX3RyeSIgaW4KKysgICpcIiogfCAq XGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OworKyAgKikgYWNfdHJ5X2VjaG89JGFj X3RyeTs7CisrZXNhYworK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5POiAkYWNf dHJ5X2VjaG9cIiIKKyskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1CisrICAoZXZhbCAiJGFj X2NvbXBpbGVyIC0tdmVyc2lvbiA+JjUiKSAyPiY1CisrICBhY19zdGF0dXM9JD8KKysgICRhc19l Y2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisrICAoZXhpdCAkYWNf c3RhdHVzKTsgfQorK3sgKGFjX3RyeT0iJGFjX2NvbXBpbGVyIC12ID4mNSIKKytjYXNlICIoKCRh Y190cnkiIGluCisrICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsK KysgICopIGFjX3RyeV9lY2hvPSRhY190cnk7OworK2VzYWMKKytldmFsIGFjX3RyeV9lY2hvPSJc IlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCisrJGFzX2VjaG8gIiRhY190cnlfZWNo byIpID4mNQorKyAgKGV2YWwgIiRhY19jb21waWxlciAtdiA+JjUiKSAyPiY1CisrICBhY19zdGF0 dXM9JD8KKysgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1 CisrICAoZXhpdCAkYWNfc3RhdHVzKTsgfQorK3sgKGFjX3RyeT0iJGFjX2NvbXBpbGVyIC1WID4m NSIKKytjYXNlICIoKCRhY190cnkiIGluCisrICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9l Y2hvPVwkYWNfdHJ5OzsKKysgICopIGFjX3RyeV9lY2hvPSRhY190cnk7OworK2VzYWMKKytldmFs IGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCisrJGFzX2Vj aG8gIiRhY190cnlfZWNobyIpID4mNQorKyAgKGV2YWwgIiRhY19jb21waWxlciAtViA+JjUiKSAy PiY1CisrICBhY19zdGF0dXM9JD8KKysgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0g JGFjX3N0YXR1cyIgPiY1CisrICAoZXhpdCAkYWNfc3RhdHVzKTsgfQorKworK2NhdCA+Y29uZnRl c3QuJGFjX2V4dCA8PF9BQ0VPRgorKy8qIGNvbmZkZWZzLmguICAqLworK19BQ0VPRgorK2NhdCBj b25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAorK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxf QUNFT0YKKysvKiBlbmQgY29uZmRlZnMuaC4gICovCisrCisraW50CisrbWFpbiAoKQorK3sKKysK KysgIDsKKysgIHJldHVybiAwOworK30KKytfQUNFT0YKKythY19jbGVhbl9maWxlc19zYXZlPSRh Y19jbGVhbl9maWxlcworK2FjX2NsZWFuX2ZpbGVzPSIkYWNfY2xlYW5fZmlsZXMgYS5vdXQgYS5v dXQuZFNZTSBhLmV4ZSBiLm91dCIKKysjIFRyeSB0byBjcmVhdGUgYW4gZXhlY3V0YWJsZSB3aXRo b3V0IC1vIGZpcnN0LCBkaXNyZWdhcmQgYS5vdXQuCisrIyBJdCB3aWxsIGhlbHAgdXMgZGlhZ25v c2UgYnJva2VuIGNvbXBpbGVycywgYW5kIGZpbmRpbmcgb3V0IGFuIGludHVpdGlvbgorKyMgb2Yg ZXhlZXh0LgorK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgQysrIGNv bXBpbGVyIGRlZmF1bHQgb3V0cHV0IGZpbGUgbmFtZSIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tp bmcgZm9yIEMrKyBjb21waWxlciBkZWZhdWx0IG91dHB1dCBmaWxlIG5hbWUuLi4gIiA+JjY7IH0K KythY19saW5rX2RlZmF1bHQ9YCRhc19lY2hvICIkYWNfbGluayIgfCBzZWQgJ3MvIC1vICpjb25m dGVzdFteIF0qLy8nYAorKworKyMgVGhlIHBvc3NpYmxlIG91dHB1dCBmaWxlczoKKythY19maWxl cz0iYS5vdXQgY29uZnRlc3QuZXhlIGNvbmZ0ZXN0IGEuZXhlIGFfb3V0LmV4ZSBiLm91dCBjb25m dGVzdC4qIgorKworK2FjX3JtZmlsZXM9CisrZm9yIGFjX2ZpbGUgaW4gJGFjX2ZpbGVzCisrZG8K KysgIGNhc2UgJGFjX2ZpbGUgaW4KKysgICAgKi4kYWNfZXh0IHwgKi54Y29mZiB8ICoudGRzIHwg Ki5kIHwgKi5wZGIgfCAqLnhTWU0gfCAqLmJiIHwgKi5iYmcgfCAqLm1hcCB8ICouaW5mIHwgKi5k U1lNIHwgKi5vIHwgKi5vYmogKSA7OworKyAgICAqICkgYWNfcm1maWxlcz0iJGFjX3JtZmlsZXMg JGFjX2ZpbGUiOzsKKysgIGVzYWMKKytkb25lCisrcm0gLWYgJGFjX3JtZmlsZXMKKysKKytpZiB7 IChhY190cnk9IiRhY19saW5rX2RlZmF1bHQiCisrY2FzZSAiKCgkYWNfdHJ5IiBpbgorKyAgKlwi KiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7CisrICAqKSBhY190cnlfZWNo bz0kYWNfdHJ5OzsKKytlc2FjCisrZXZhbCBhY190cnlfZWNobz0iXCJcJGFzX21lOiRMSU5FTk86 ICRhY190cnlfZWNob1wiIgorKyRhc19lY2hvICIkYWNfdHJ5X2VjaG8iKSA+JjUKKysgIChldmFs ICIkYWNfbGlua19kZWZhdWx0IikgMj4mNQorKyAgYWNfc3RhdHVzPSQ/CisrICAkYXNfZWNobyAi JGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorKyAgKGV4aXQgJGFjX3N0YXR1 cyk7IH07IHRoZW4KKysgICMgQXV0b2NvbmYtMi4xMyBjb3VsZCBzZXQgdGhlIGFjX2N2X2V4ZWV4 dCB2YXJpYWJsZSB0byBgbm8nLgorKyMgU28gaWdub3JlIGEgdmFsdWUgb2YgYG5vJywgb3RoZXJ3 aXNlIHRoaXMgd291bGQgbGVhZCB0byBgRVhFRVhUID0gbm8nCisrIyBpbiBhIE1ha2VmaWxlLiAg V2Ugc2hvdWxkIG5vdCBvdmVycmlkZSBhY19jdl9leGVleHQgaWYgaXQgd2FzIGNhY2hlZCwKKysj IHNvIHRoYXQgdGhlIHVzZXIgY2FuIHNob3J0LWNpcmN1aXQgdGhpcyB0ZXN0IGZvciBjb21waWxl cnMgdW5rbm93biB0bworKyMgQXV0b2NvbmYuCisrZm9yIGFjX2ZpbGUgaW4gJGFjX2ZpbGVzICcn CisrZG8KKysgIHRlc3QgLWYgIiRhY19maWxlIiB8fCBjb250aW51ZQorKyAgY2FzZSAkYWNfZmls ZSBpbgorKyAgICAqLiRhY19leHQgfCAqLnhjb2ZmIHwgKi50ZHMgfCAqLmQgfCAqLnBkYiB8ICou eFNZTSB8ICouYmIgfCAqLmJiZyB8ICoubWFwIHwgKi5pbmYgfCAqLmRTWU0gfCAqLm8gfCAqLm9i aiApCisrCTs7CisrICAgIFthYl0ub3V0ICkKKysJIyBXZSBmb3VuZCB0aGUgZGVmYXVsdCBleGVj dXRhYmxlLCBidXQgZXhlZXh0PScnIGlzIG1vc3QKKysJIyBjZXJ0YWlubHkgcmlnaHQuCisrCWJy ZWFrOzsKKysgICAgKi4qICkKKysgICAgICAgIGlmIHRlc3QgIiR7YWNfY3ZfZXhlZXh0K3NldH0i ID0gc2V0ICYmIHRlc3QgIiRhY19jdl9leGVleHQiICE9IG5vOworKwl0aGVuIDo7IGVsc2UKKysJ ICAgYWNfY3ZfZXhlZXh0PWBleHByICIkYWNfZmlsZSIgOiAnW14uXSpcKFwuLipcKSdgCisrCWZp CisrCSMgV2Ugc2V0IGFjX2N2X2V4ZWV4dCBoZXJlIGJlY2F1c2UgdGhlIGxhdGVyIHRlc3QgZm9y IGl0IGlzIG5vdAorKwkjIHNhZmU6IGNyb3NzIGNvbXBpbGVycyBtYXkgbm90IGFkZCB0aGUgc3Vm Zml4IGlmIGdpdmVuIGFuIGAtbycKKysJIyBhcmd1bWVudCwgc28gd2UgbWF5IG5lZWQgdG8ga25v dyBpdCBhdCB0aGF0IHBvaW50IGFscmVhZHkuCisrCSMgRXZlbiBpZiB0aGlzIHNlY3Rpb24gbG9v a3MgY3J1ZnR5OiBpdCBoYXMgdGhlIGFkdmFudGFnZSBvZgorKwkjIGFjdHVhbGx5IHdvcmtpbmcu CisrCWJyZWFrOzsKKysgICAgKiApCisrCWJyZWFrOzsKKysgIGVzYWMKKytkb25lCisrdGVzdCAi JGFjX2N2X2V4ZWV4dCIgPSBubyAmJiBhY19jdl9leGVleHQ9CisrCisrZWxzZQorKyAgYWNfZmls ZT0nJworK2ZpCisrCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2Zp bGUiID4mNQorKyRhc19lY2hvICIkYWNfZmlsZSIgPiY2OyB9CisraWYgdGVzdCAteiAiJGFjX2Zp bGUiOyB0aGVuCisrICAkYXNfZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUK KytzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1CisrCisreyB7ICRhc19lY2hvICIk YXNfbWU6JExJTkVOTzogZXJyb3I6IGluIFxgJGFjX3B3ZCc6IiA+JjUKKyskYXNfZWNobyAiJGFz X21lOiBlcnJvcjogaW4gXGAkYWNfcHdkJzoiID4mMjt9CisreyB7ICRhc19lY2hvICIkYXNfbWU6 JExJTkVOTzogZXJyb3I6IEMrKyBjb21waWxlciBjYW5ub3QgY3JlYXRlIGV4ZWN1dGFibGVzCisr U2VlIFxgY29uZmlnLmxvZycgZm9yIG1vcmUgZGV0YWlscy4iID4mNQorKyRhc19lY2hvICIkYXNf bWU6IGVycm9yOiBDKysgY29tcGlsZXIgY2Fubm90IGNyZWF0ZSBleGVjdXRhYmxlcworK1NlZSBc YGNvbmZpZy5sb2cnIGZvciBtb3JlIGRldGFpbHMuIiA+JjI7fQorKyAgIHsgKGV4aXQgNzcpOyBl eGl0IDc3OyB9OyB9OyB9CisrZmkKKysKKythY19leGVleHQ9JGFjX2N2X2V4ZWV4dAorKworKyMg Q2hlY2sgdGhhdCB0aGUgY29tcGlsZXIgcHJvZHVjZXMgZXhlY3V0YWJsZXMgd2UgY2FuIHJ1bi4g IElmIG5vdCwgZWl0aGVyCisrIyB0aGUgY29tcGlsZXIgaXMgYnJva2VuLCBvciB3ZSBjcm9zcyBj b21waWxlLgorK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyB3aGV0aGVyIHRo ZSBDKysgY29tcGlsZXIgd29ya3MiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIHdoZXRoZXIg dGhlIEMrKyBjb21waWxlciB3b3Jrcy4uLiAiID4mNjsgfQorKyMgRklYTUU6IFRoZXNlIGNyb3Nz IGNvbXBpbGVyIGhhY2tzIHNob3VsZCBiZSByZW1vdmVkIGZvciBBdXRvY29uZiAzLjAKKysjIElm IG5vdCBjcm9zcyBjb21waWxpbmcsIGNoZWNrIHRoYXQgd2UgY2FuIHJ1biBhIHNpbXBsZSBwcm9n cmFtLgorK2lmIHRlc3QgIiRjcm9zc19jb21waWxpbmciICE9IHllczsgdGhlbgorKyAgaWYgeyBh Y190cnk9Jy4vJGFjX2ZpbGUnCisrICB7IChjYXNlICIoKCRhY190cnkiIGluCisrICAqXCIqIHwg KlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKKysgICopIGFjX3RyeV9lY2hvPSRh Y190cnk7OworK2VzYWMKKytldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFj X3RyeV9lY2hvXCIiCisrJGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4mNQorKyAgKGV2YWwgIiRh Y190cnkiKSAyPiY1CisrICBhY19zdGF0dXM9JD8KKysgICRhc19lY2hvICIkYXNfbWU6JExJTkVO TzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisrICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfTsgdGhl bgorKyAgICBjcm9zc19jb21waWxpbmc9bm8KKysgIGVsc2UKKysgICAgaWYgdGVzdCAiJGNyb3Nz X2NvbXBpbGluZyIgPSBtYXliZTsgdGhlbgorKwljcm9zc19jb21waWxpbmc9eWVzCisrICAgIGVs c2UKKysJeyB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IGluIFxgJGFjX3B3ZCc6 IiA+JjUKKyskYXNfZWNobyAiJGFzX21lOiBlcnJvcjogaW4gXGAkYWNfcHdkJzoiID4mMjt9Cisr eyB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IGNhbm5vdCBydW4gQysrIGNvbXBp bGVkIHByb2dyYW1zLgorK0lmIHlvdSBtZWFudCB0byBjcm9zcyBjb21waWxlLCB1c2UgXGAtLWhv c3QnLgorK1NlZSBcYGNvbmZpZy5sb2cnIGZvciBtb3JlIGRldGFpbHMuIiA+JjUKKyskYXNfZWNo byAiJGFzX21lOiBlcnJvcjogY2Fubm90IHJ1biBDKysgY29tcGlsZWQgcHJvZ3JhbXMuCisrSWYg eW91IG1lYW50IHRvIGNyb3NzIGNvbXBpbGUsIHVzZSBcYC0taG9zdCcuCisrU2VlIFxgY29uZmln LmxvZycgZm9yIG1vcmUgZGV0YWlscy4iID4mMjt9CisrICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9 OyB9OyB9CisrICAgIGZpCisrICBmaQorK2ZpCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86 IHJlc3VsdDogeWVzIiA+JjUKKyskYXNfZWNobyAieWVzIiA+JjY7IH0KKysKKytybSAtZiAtciBh Lm91dCBhLm91dC5kU1lNIGEuZXhlIGNvbmZ0ZXN0JGFjX2N2X2V4ZWV4dCBiLm91dAorK2FjX2Ns ZWFuX2ZpbGVzPSRhY19jbGVhbl9maWxlc19zYXZlCisrIyBDaGVjayB0aGF0IHRoZSBjb21waWxl ciBwcm9kdWNlcyBleGVjdXRhYmxlcyB3ZSBjYW4gcnVuLiAgSWYgbm90LCBlaXRoZXIKKysjIHRo ZSBjb21waWxlciBpcyBicm9rZW4sIG9yIHdlIGNyb3NzIGNvbXBpbGUuCisreyAkYXNfZWNobyAi JGFzX21lOiRMSU5FTk86IGNoZWNraW5nIHdoZXRoZXIgd2UgYXJlIGNyb3NzIGNvbXBpbGluZyIg PiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgd2hldGhlciB3ZSBhcmUgY3Jvc3MgY29tcGlsaW5n Li4uICIgPiY2OyB9CisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGNyb3Nz X2NvbXBpbGluZyIgPiY1CisrJGFzX2VjaG8gIiRjcm9zc19jb21waWxpbmciID4mNjsgfQorKwor K3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3Igc3VmZml4IG9mIGV4ZWN1 dGFibGVzIiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyBmb3Igc3VmZml4IG9mIGV4ZWN1dGFi bGVzLi4uICIgPiY2OyB9CisraWYgeyAoYWNfdHJ5PSIkYWNfbGluayIKKytjYXNlICIoKCRhY190 cnkiIGluCisrICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKKysg ICopIGFjX3RyeV9lY2hvPSRhY190cnk7OworK2VzYWMKKytldmFsIGFjX3RyeV9lY2hvPSJcIlwk YXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCisrJGFzX2VjaG8gIiRhY190cnlfZWNobyIp ID4mNQorKyAgKGV2YWwgIiRhY19saW5rIikgMj4mNQorKyAgYWNfc3RhdHVzPSQ/CisrICAkYXNf ZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorKyAgKGV4aXQgJGFj X3N0YXR1cyk7IH07IHRoZW4KKysgICMgSWYgYm90aCBgY29uZnRlc3QuZXhlJyBhbmQgYGNvbmZ0 ZXN0JyBhcmUgYHByZXNlbnQnICh3ZWxsLCBvYnNlcnZhYmxlKQorKyMgY2F0Y2ggYGNvbmZ0ZXN0 LmV4ZScuICBGb3IgaW5zdGFuY2Ugd2l0aCBDeWd3aW4sIGBscyBjb25mdGVzdCcgd2lsbAorKyMg d29yayBwcm9wZXJseSAoaS5lLiwgcmVmZXIgdG8gYGNvbmZ0ZXN0LmV4ZScpLCB3aGlsZSBpdCB3 b24ndCB3aXRoCisrIyBgcm0nLgorK2ZvciBhY19maWxlIGluIGNvbmZ0ZXN0LmV4ZSBjb25mdGVz dCBjb25mdGVzdC4qOyBkbworKyAgdGVzdCAtZiAiJGFjX2ZpbGUiIHx8IGNvbnRpbnVlCisrICBj YXNlICRhY19maWxlIGluCisrICAgICouJGFjX2V4dCB8ICoueGNvZmYgfCAqLnRkcyB8ICouZCB8 ICoucGRiIHwgKi54U1lNIHwgKi5iYiB8ICouYmJnIHwgKi5tYXAgfCAqLmluZiB8ICouZFNZTSB8 ICoubyB8ICoub2JqICkgOzsKKysgICAgKi4qICkgYWNfY3ZfZXhlZXh0PWBleHByICIkYWNfZmls ZSIgOiAnW14uXSpcKFwuLipcKSdgCisrCSAgYnJlYWs7OworKyAgICAqICkgYnJlYWs7OworKyAg ZXNhYworK2RvbmUKKytlbHNlCisrICB7IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBlcnJv cjogaW4gXGAkYWNfcHdkJzoiID4mNQorKyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBpbiBcYCRh Y19wd2QnOiIgPiYyO30KKyt7IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogY2Fu bm90IGNvbXB1dGUgc3VmZml4IG9mIGV4ZWN1dGFibGVzOiBjYW5ub3QgY29tcGlsZSBhbmQgbGlu aworK1NlZSBcYGNvbmZpZy5sb2cnIGZvciBtb3JlIGRldGFpbHMuIiA+JjUKKyskYXNfZWNobyAi JGFzX21lOiBlcnJvcjogY2Fubm90IGNvbXB1dGUgc3VmZml4IG9mIGV4ZWN1dGFibGVzOiBjYW5u b3QgY29tcGlsZSBhbmQgbGluaworK1NlZSBcYGNvbmZpZy5sb2cnIGZvciBtb3JlIGRldGFpbHMu IiA+JjI7fQorKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfTsgfQorK2ZpCisrCisrcm0gLWYg Y29uZnRlc3QkYWNfY3ZfZXhlZXh0CisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3Vs dDogJGFjX2N2X2V4ZWV4dCIgPiY1CisrJGFzX2VjaG8gIiRhY19jdl9leGVleHQiID4mNjsgfQor KworK3JtIC1mIGNvbmZ0ZXN0LiRhY19leHQKKytFWEVFWFQ9JGFjX2N2X2V4ZWV4dAorK2FjX2V4 ZWV4dD0kRVhFRVhUCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciBz dWZmaXggb2Ygb2JqZWN0IGZpbGVzIiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyBmb3Igc3Vm Zml4IG9mIG9iamVjdCBmaWxlcy4uLiAiID4mNjsgfQorK2lmIHRlc3QgIiR7YWNfY3Zfb2JqZXh0 K3NldH0iID0gc2V0OyB0aGVuCisrICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UK KysgIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorKy8qIGNvbmZkZWZzLmguICAqLwor K19BQ0VPRgorK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAorK2NhdCA+PmNvbmZ0 ZXN0LiRhY19leHQgPDxfQUNFT0YKKysvKiBlbmQgY29uZmRlZnMuaC4gICovCisrCisraW50Cisr bWFpbiAoKQorK3sKKysKKysgIDsKKysgIHJldHVybiAwOworK30KKytfQUNFT0YKKytybSAtZiBj b25mdGVzdC5vIGNvbmZ0ZXN0Lm9iagorK2lmIHsgKGFjX3RyeT0iJGFjX2NvbXBpbGUiCisrY2Fz ZSAiKCgkYWNfdHJ5IiBpbgorKyAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFj X3RyeTs7CisrICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKKytlc2FjCisrZXZhbCBhY190cnlf ZWNobz0iXCJcJGFzX21lOiRMSU5FTk86ICRhY190cnlfZWNob1wiIgorKyRhc19lY2hvICIkYWNf dHJ5X2VjaG8iKSA+JjUKKysgIChldmFsICIkYWNfY29tcGlsZSIpIDI+JjUKKysgIGFjX3N0YXR1 cz0kPworKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUK KysgIChleGl0ICRhY19zdGF0dXMpOyB9OyB0aGVuCisrICBmb3IgYWNfZmlsZSBpbiBjb25mdGVz dC5vIGNvbmZ0ZXN0Lm9iaiBjb25mdGVzdC4qOyBkbworKyAgdGVzdCAtZiAiJGFjX2ZpbGUiIHx8 IGNvbnRpbnVlOworKyAgY2FzZSAkYWNfZmlsZSBpbgorKyAgICAqLiRhY19leHQgfCAqLnhjb2Zm IHwgKi50ZHMgfCAqLmQgfCAqLnBkYiB8ICoueFNZTSB8ICouYmIgfCAqLmJiZyB8ICoubWFwIHwg Ki5pbmYgfCAqLmRTWU0gKSA7OworKyAgICAqKSBhY19jdl9vYmpleHQ9YGV4cHIgIiRhY19maWxl IiA6ICcuKlwuXCguKlwpJ2AKKysgICAgICAgYnJlYWs7OworKyAgZXNhYworK2RvbmUKKytlbHNl CisrICAkYXNfZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKKytzZWQgJ3Mv Xi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1CisrCisreyB7ICRhc19lY2hvICIkYXNfbWU6JExJ TkVOTzogZXJyb3I6IGluIFxgJGFjX3B3ZCc6IiA+JjUKKyskYXNfZWNobyAiJGFzX21lOiBlcnJv cjogaW4gXGAkYWNfcHdkJzoiID4mMjt9CisreyB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzog ZXJyb3I6IGNhbm5vdCBjb21wdXRlIHN1ZmZpeCBvZiBvYmplY3QgZmlsZXM6IGNhbm5vdCBjb21w aWxlCisrU2VlIFxgY29uZmlnLmxvZycgZm9yIG1vcmUgZGV0YWlscy4iID4mNQorKyRhc19lY2hv ICIkYXNfbWU6IGVycm9yOiBjYW5ub3QgY29tcHV0ZSBzdWZmaXggb2Ygb2JqZWN0IGZpbGVzOiBj YW5ub3QgY29tcGlsZQorK1NlZSBcYGNvbmZpZy5sb2cnIGZvciBtb3JlIGRldGFpbHMuIiA+JjI7 fQorKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfTsgfQorK2ZpCisrCisrcm0gLWYgY29uZnRl c3QuJGFjX2N2X29iamV4dCBjb25mdGVzdC4kYWNfZXh0CisrZmkKKyt7ICRhc19lY2hvICIkYXNf bWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3Zfb2JqZXh0IiA+JjUKKyskYXNfZWNobyAiJGFjX2N2 X29iamV4dCIgPiY2OyB9CisrT0JKRVhUPSRhY19jdl9vYmpleHQKKythY19vYmpleHQ9JE9CSkVY VAorK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyB3aGV0aGVyIHdlIGFyZSB1 c2luZyB0aGUgR05VIEMrKyBjb21waWxlciIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgd2hl dGhlciB3ZSBhcmUgdXNpbmcgdGhlIEdOVSBDKysgY29tcGlsZXIuLi4gIiA+JjY7IH0KKytpZiB0 ZXN0ICIke2FjX2N2X2N4eF9jb21waWxlcl9nbnUrc2V0fSIgPSBzZXQ7IHRoZW4KKysgICRhc19l Y2hvX24gIihjYWNoZWQpICIgPiY2CisrZWxzZQorKyAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8 X0FDRU9GCisrLyogY29uZmRlZnMuaC4gICovCisrX0FDRU9GCisrY2F0IGNvbmZkZWZzLmggPj5j b25mdGVzdC4kYWNfZXh0CisrY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorKy8qIGVu ZCBjb25mZGVmcy5oLiAgKi8KKysKKytpbnQKKyttYWluICgpCisreworKyNpZm5kZWYgX19HTlVD X18KKysgICAgICAgY2hva2UgbWUKKysjZW5kaWYKKysKKysgIDsKKysgIHJldHVybiAwOworK30K KytfQUNFT0YKKytybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0CisraWYgeyAoYWNfdHJ5PSIkYWNf Y29tcGlsZSIKKytjYXNlICIoKCRhY190cnkiIGluCisrICAqXCIqIHwgKlxgKiB8ICpcXCopIGFj X3RyeV9lY2hvPVwkYWNfdHJ5OzsKKysgICopIGFjX3RyeV9lY2hvPSRhY190cnk7OworK2VzYWMK KytldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCisr JGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4mNQorKyAgKGV2YWwgIiRhY19jb21waWxlIikgMj5j b25mdGVzdC5lcjEKKysgIGFjX3N0YXR1cz0kPworKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3Qu ZXIxID5jb25mdGVzdC5lcnIKKysgIHJtIC1mIGNvbmZ0ZXN0LmVyMQorKyAgY2F0IGNvbmZ0ZXN0 LmVyciA+JjUKKysgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIg PiY1CisrICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJiB7CisrCSB0ZXN0IC16ICIkYWNfY3h4X3dl cnJvcl9mbGFnIiB8fAorKwkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgorKyAgICAgICB9ICYmIHRl c3QgLXMgY29uZnRlc3QuJGFjX29iamV4dDsgdGhlbgorKyAgYWNfY29tcGlsZXJfZ251PXllcwor K2Vsc2UKKysgICRhc19lY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQorK3Nl ZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKKysKKysJYWNfY29tcGlsZXJfZ251PW5v CisrZmkKKysKKytybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNv bmZ0ZXN0LiRhY19leHQKKythY19jdl9jeHhfY29tcGlsZXJfZ251PSRhY19jb21waWxlcl9nbnUK KysKKytmaQorK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19jdl9jeHhf Y29tcGlsZXJfZ251IiA+JjUKKyskYXNfZWNobyAiJGFjX2N2X2N4eF9jb21waWxlcl9nbnUiID4m NjsgfQorK2lmIHRlc3QgJGFjX2NvbXBpbGVyX2dudSA9IHllczsgdGhlbgorKyAgR1hYPXllcwor K2Vsc2UKKysgIEdYWD0KKytmaQorK2FjX3Rlc3RfQ1hYRkxBR1M9JHtDWFhGTEFHUytzZXR9Cisr YWNfc2F2ZV9DWFhGTEFHUz0kQ1hYRkxBR1MKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzog Y2hlY2tpbmcgd2hldGhlciAkQ1hYIGFjY2VwdHMgLWciID4mNQorKyRhc19lY2hvX24gImNoZWNr aW5nIHdoZXRoZXIgJENYWCBhY2NlcHRzIC1nLi4uICIgPiY2OyB9CisraWYgdGVzdCAiJHthY19j dl9wcm9nX2N4eF9nK3NldH0iID0gc2V0OyB0aGVuCisrICAkYXNfZWNob19uICIoY2FjaGVkKSAi ID4mNgorK2Vsc2UKKysgIGFjX3NhdmVfY3h4X3dlcnJvcl9mbGFnPSRhY19jeHhfd2Vycm9yX2Zs YWcKKysgICBhY19jeHhfd2Vycm9yX2ZsYWc9eWVzCisrICAgYWNfY3ZfcHJvZ19jeHhfZz1ubwor KyAgIENYWEZMQUdTPSItZyIKKysgICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKysv KiBjb25mZGVmcy5oLiAgKi8KKytfQUNFT0YKKytjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRh Y19leHQKKytjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisrLyogZW5kIGNvbmZkZWZz LmguICAqLworKworK2ludAorK21haW4gKCkKKyt7CisrCisrICA7CisrICByZXR1cm4gMDsKKyt9 CisrX0FDRU9GCisrcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dAorK2lmIHsgKGFjX3RyeT0iJGFj X2NvbXBpbGUiCisrY2FzZSAiKCgkYWNfdHJ5IiBpbgorKyAgKlwiKiB8ICpcYCogfCAqXFwqKSBh Y190cnlfZWNobz1cJGFjX3RyeTs7CisrICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKKytlc2Fj CisrZXZhbCBhY190cnlfZWNobz0iXCJcJGFzX21lOiRMSU5FTk86ICRhY190cnlfZWNob1wiIgor KyRhc19lY2hvICIkYWNfdHJ5X2VjaG8iKSA+JjUKKysgIChldmFsICIkYWNfY29tcGlsZSIpIDI+ Y29uZnRlc3QuZXIxCisrICBhY19zdGF0dXM9JD8KKysgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0 LmVyMSA+Y29uZnRlc3QuZXJyCisrICBybSAtZiBjb25mdGVzdC5lcjEKKysgIGNhdCBjb25mdGVz dC5lcnIgPiY1CisrICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMi ID4mNQorKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYgeworKwkgdGVzdCAteiAiJGFjX2N4eF93 ZXJyb3JfZmxhZyIgfHwKKysJIHRlc3QgISAtcyBjb25mdGVzdC5lcnIKKysgICAgICAgfSAmJiB0 ZXN0IC1zIGNvbmZ0ZXN0LiRhY19vYmpleHQ7IHRoZW4KKysgIGFjX2N2X3Byb2dfY3h4X2c9eWVz CisrZWxzZQorKyAgJGFzX2VjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Cisr c2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQorKworKwlDWFhGTEFHUz0iIgorKyAg ICAgIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorKy8qIGNvbmZkZWZzLmguICAqLwor K19BQ0VPRgorK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAorK2NhdCA+PmNvbmZ0 ZXN0LiRhY19leHQgPDxfQUNFT0YKKysvKiBlbmQgY29uZmRlZnMuaC4gICovCisrCisraW50Cisr bWFpbiAoKQorK3sKKysKKysgIDsKKysgIHJldHVybiAwOworK30KKytfQUNFT0YKKytybSAtZiBj b25mdGVzdC4kYWNfb2JqZXh0CisraWYgeyAoYWNfdHJ5PSIkYWNfY29tcGlsZSIKKytjYXNlICIo KCRhY190cnkiIGluCisrICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5 OzsKKysgICopIGFjX3RyeV9lY2hvPSRhY190cnk7OworK2VzYWMKKytldmFsIGFjX3RyeV9lY2hv PSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCisrJGFzX2VjaG8gIiRhY190cnlf ZWNobyIpID4mNQorKyAgKGV2YWwgIiRhY19jb21waWxlIikgMj5jb25mdGVzdC5lcjEKKysgIGFj X3N0YXR1cz0kPworKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIK KysgIHJtIC1mIGNvbmZ0ZXN0LmVyMQorKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKKysgICRhc19l Y2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisrICAoZXhpdCAkYWNf c3RhdHVzKTsgfSAmJiB7CisrCSB0ZXN0IC16ICIkYWNfY3h4X3dlcnJvcl9mbGFnIiB8fAorKwkg dGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgorKyAgICAgICB9ICYmIHRlc3QgLXMgY29uZnRlc3QuJGFj X29iamV4dDsgdGhlbgorKyAgOgorK2Vsc2UKKysgICRhc19lY2hvICIkYXNfbWU6IGZhaWxlZCBw cm9ncmFtIHdhczoiID4mNQorK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKKysK KysJYWNfY3h4X3dlcnJvcl9mbGFnPSRhY19zYXZlX2N4eF93ZXJyb3JfZmxhZworKwkgQ1hYRkxB R1M9Ii1nIgorKwkgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisrLyogY29uZmRlZnMu aC4gICovCisrX0FDRU9GCisrY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0CisrY2F0 ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KKysK KytpbnQKKyttYWluICgpCisreworKworKyAgOworKyAgcmV0dXJuIDA7CisrfQorK19BQ0VPRgor K3JtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQKKytpZiB7IChhY190cnk9IiRhY19jb21waWxlIgor K2Nhc2UgIigoJGFjX3RyeSIgaW4KKysgICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89 XCRhY190cnk7OworKyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7CisrZXNhYworK2V2YWwgYWNf dHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIKKyskYXNfZWNobyAi JGFjX3RyeV9lY2hvIikgPiY1CisrICAoZXZhbCAiJGFjX2NvbXBpbGUiKSAyPmNvbmZ0ZXN0LmVy MQorKyAgYWNfc3RhdHVzPSQ/CisrICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0 ZXN0LmVycgorKyAgcm0gLWYgY29uZnRlc3QuZXIxCisrICBjYXQgY29uZnRlc3QuZXJyID4mNQor KyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKysgIChl eGl0ICRhY19zdGF0dXMpOyB9ICYmIHsKKysJIHRlc3QgLXogIiRhY19jeHhfd2Vycm9yX2ZsYWci IHx8CisrCSB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCisrICAgICAgIH0gJiYgdGVzdCAtcyBjb25m dGVzdC4kYWNfb2JqZXh0OyB0aGVuCisrICBhY19jdl9wcm9nX2N4eF9nPXllcworK2Vsc2UKKysg ICRhc19lY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQorK3NlZCAncy9eL3wg LycgY29uZnRlc3QuJGFjX2V4dCA+JjUKKysKKysKKytmaQorKworK3JtIC1mIGNvcmUgY29uZnRl c3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAorK2ZpCisrCisrcm0g LWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0 CisrZmkKKysKKytybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNv bmZ0ZXN0LiRhY19leHQKKysgICBhY19jeHhfd2Vycm9yX2ZsYWc9JGFjX3NhdmVfY3h4X3dlcnJv cl9mbGFnCisrZmkKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3Zf cHJvZ19jeHhfZyIgPiY1CisrJGFzX2VjaG8gIiRhY19jdl9wcm9nX2N4eF9nIiA+JjY7IH0KKytp ZiB0ZXN0ICIkYWNfdGVzdF9DWFhGTEFHUyIgPSBzZXQ7IHRoZW4KKysgIENYWEZMQUdTPSRhY19z YXZlX0NYWEZMQUdTCisrZWxpZiB0ZXN0ICRhY19jdl9wcm9nX2N4eF9nID0geWVzOyB0aGVuCisr ICBpZiB0ZXN0ICIkR1hYIiA9IHllczsgdGhlbgorKyAgICBDWFhGTEFHUz0iLWcgLU8yIgorKyAg ZWxzZQorKyAgICBDWFhGTEFHUz0iLWciCisrICBmaQorK2Vsc2UKKysgIGlmIHRlc3QgIiRHWFgi ID0geWVzOyB0aGVuCisrICAgIENYWEZMQUdTPSItTzIiCisrICBlbHNlCisrICAgIENYWEZMQUdT PQorKyAgZmkKKytmaQorK2FjX2V4dD1jCisrYWNfY3BwPSckQ1BQICRDUFBGTEFHUycKKythY19j b21waWxlPSckQ0MgLWMgJENGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUnCisr YWNfbGluaz0nJENDIC1vIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAkQ0ZMQUdTICRDUFBGTEFHUyAkTERG TEFHUyBjb25mdGVzdC4kYWNfZXh0ICRMSUJTID4mNScKKythY19jb21waWxlcl9nbnU9JGFjX2N2 X2NfY29tcGlsZXJfZ251CisrREVQRElSPSIke2FtX19sZWFkaW5nX2RvdH1kZXBzIgorKworK2Fj X2NvbmZpZ19jb21tYW5kcz0iJGFjX2NvbmZpZ19jb21tYW5kcyBkZXBmaWxlcyIKKysKKysKKyth bV9tYWtlPSR7TUFLRS1tYWtlfQorK2NhdCA+IGNvbmZpbmMgPDwgJ0VORCcKKythbV9fZG9pdDoK KysJQGVjaG8gdGhpcyBpcyB0aGUgYW1fX2RvaXQgdGFyZ2V0CisrLlBIT05ZOiBhbV9fZG9pdAor K0VORAorKyMgSWYgd2UgZG9uJ3QgZmluZCBhbiBpbmNsdWRlIGRpcmVjdGl2ZSwganVzdCBjb21t ZW50IG91dCB0aGUgY29kZS4KKyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcg Zm9yIHN0eWxlIG9mIGluY2x1ZGUgdXNlZCBieSAkYW1fbWFrZSIgPiY1CisrJGFzX2VjaG9fbiAi Y2hlY2tpbmcgZm9yIHN0eWxlIG9mIGluY2x1ZGUgdXNlZCBieSAkYW1fbWFrZS4uLiAiID4mNjsg fQorK2FtX19pbmNsdWRlPSIjIgorK2FtX19xdW90ZT0KKytfYW1fcmVzdWx0PW5vbmUKKysjIEZp cnN0IHRyeSBHTlUgbWFrZSBzdHlsZSBpbmNsdWRlLgorK2VjaG8gImluY2x1ZGUgY29uZmluYyIg PiBjb25mbWYKKysjIElnbm9yZSBhbGwga2luZHMgb2YgYWRkaXRpb25hbCBvdXRwdXQgZnJvbSBg bWFrZScuCisrY2FzZSBgJGFtX21ha2UgLXMgLWYgY29uZm1mIDI+IC9kZXYvbnVsbGAgaW4gIygK KysqdGhlXCBhbV9fZG9pdFwgdGFyZ2V0KikKKysgIGFtX19pbmNsdWRlPWluY2x1ZGUKKysgIGFt X19xdW90ZT0KKysgIF9hbV9yZXN1bHQ9R05VCisrICA7OworK2VzYWMKKysjIE5vdyB0cnkgQlNE IG1ha2Ugc3R5bGUgaW5jbHVkZS4KKytpZiB0ZXN0ICIkYW1fX2luY2x1ZGUiID0gIiMiOyB0aGVu CisrICAgZWNobyAnLmluY2x1ZGUgImNvbmZpbmMiJyA+IGNvbmZtZgorKyAgIGNhc2UgYCRhbV9t YWtlIC1zIC1mIGNvbmZtZiAyPiAvZGV2L251bGxgIGluICMoCisrICAgKnRoZVwgYW1fX2RvaXRc IHRhcmdldCopCisrICAgICBhbV9faW5jbHVkZT0uaW5jbHVkZQorKyAgICAgYW1fX3F1b3RlPSJc IiIKKysgICAgIF9hbV9yZXN1bHQ9QlNECisrICAgICA7OworKyAgIGVzYWMKKytmaQorKworKwor K3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRfYW1fcmVzdWx0IiA+JjUKKysk YXNfZWNobyAiJF9hbV9yZXN1bHQiID4mNjsgfQorK3JtIC1mIGNvbmZpbmMgY29uZm1mCisrCisr IyBDaGVjayB3aGV0aGVyIC0tZW5hYmxlLWRlcGVuZGVuY3ktdHJhY2tpbmcgd2FzIGdpdmVuLgor K2lmIHRlc3QgIiR7ZW5hYmxlX2RlcGVuZGVuY3lfdHJhY2tpbmcrc2V0fSIgPSBzZXQ7IHRoZW4K KysgIGVuYWJsZXZhbD0kZW5hYmxlX2RlcGVuZGVuY3lfdHJhY2tpbmc7CisrZmkKKysKKytpZiB0 ZXN0ICJ4JGVuYWJsZV9kZXBlbmRlbmN5X3RyYWNraW5nIiAhPSB4bm87IHRoZW4KKysgIGFtX2Rl cGNvbXA9IiRhY19hdXhfZGlyL2RlcGNvbXAiCisrICBBTURFUEJBQ0tTTEFTSD0nXCcKKytmaQor KyBpZiB0ZXN0ICJ4JGVuYWJsZV9kZXBlbmRlbmN5X3RyYWNraW5nIiAhPSB4bm87IHRoZW4KKysg IEFNREVQX1RSVUU9CisrICBBTURFUF9GQUxTRT0nIycKKytlbHNlCisrICBBTURFUF9UUlVFPScj JworKyAgQU1ERVBfRkFMU0U9CisrZmkKKysKKysKKysKKytkZXBjYz0iJENYWCIgIGFtX2NvbXBp bGVyX2xpc3Q9CisrCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGRlcGVu ZGVuY3kgc3R5bGUgb2YgJGRlcGNjIiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyBkZXBlbmRl bmN5IHN0eWxlIG9mICRkZXBjYy4uLiAiID4mNjsgfQorK2lmIHRlc3QgIiR7YW1fY3ZfQ1hYX2Rl cGVuZGVuY2llc19jb21waWxlcl90eXBlK3NldH0iID0gc2V0OyB0aGVuCisrICAkYXNfZWNob19u ICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysgIGlmIHRlc3QgLXogIiRBTURFUF9UUlVFIiAmJiB0 ZXN0IC1mICIkYW1fZGVwY29tcCI7IHRoZW4KKysgICMgV2UgbWFrZSBhIHN1YmRpciBhbmQgZG8g dGhlIHRlc3RzIHRoZXJlLiAgT3RoZXJ3aXNlIHdlIGNhbiBlbmQgdXAKKysgICMgbWFraW5nIGJv Z3VzIGZpbGVzIHRoYXQgd2UgZG9uJ3Qga25vdyBhYm91dCBhbmQgbmV2ZXIgcmVtb3ZlLiAgRm9y CisrICAjIGluc3RhbmNlIGl0IHdhcyByZXBvcnRlZCB0aGF0IG9uIEhQLVVYIHRoZSBnY2MgdGVz dCB3aWxsIGVuZCB1cAorKyAgIyBtYWtpbmcgYSBkdW1teSBmaWxlIG5hbWVkIGBEJyAtLSBiZWNh dXNlIGAtTUQnIG1lYW5zIGBwdXQgdGhlIG91dHB1dAorKyAgIyBpbiBEJy4KKysgIG1rZGlyIGNv bmZ0ZXN0LmRpcgorKyAgIyBDb3B5IGRlcGNvbXAgdG8gc3ViZGlyIGJlY2F1c2Ugb3RoZXJ3aXNl IHdlIHdvbid0IGZpbmQgaXQgaWYgd2UncmUKKysgICMgdXNpbmcgYSByZWxhdGl2ZSBkaXJlY3Rv cnkuCisrICBjcCAiJGFtX2RlcGNvbXAiIGNvbmZ0ZXN0LmRpcgorKyAgY2QgY29uZnRlc3QuZGly CisrICAjIFdlIHdpbGwgYnVpbGQgb2JqZWN0cyBhbmQgZGVwZW5kZW5jaWVzIGluIGEgc3ViZGly ZWN0b3J5IGJlY2F1c2UKKysgICMgaXQgaGVscHMgdG8gZGV0ZWN0IGluYXBwbGljYWJsZSBkZXBl bmRlbmN5IG1vZGVzLiAgRm9yIGluc3RhbmNlCisrICAjIGJvdGggVHJ1NjQncyBjYyBhbmQgSUND IHN1cHBvcnQgLU1EIHRvIG91dHB1dCBkZXBlbmRlbmNpZXMgYXMgYQorKyAgIyBzaWRlIGVmZmVj dCBvZiBjb21waWxhdGlvbiwgYnV0IElDQyB3aWxsIHB1dCB0aGUgZGVwZW5kZW5jaWVzIGluCisr ICAjIHRoZSBjdXJyZW50IGRpcmVjdG9yeSB3aGlsZSBUcnU2NCB3aWxsIHB1dCB0aGVtIGluIHRo ZSBvYmplY3QKKysgICMgZGlyZWN0b3J5LgorKyAgbWtkaXIgc3ViCisrCisrICBhbV9jdl9DWFhf ZGVwZW5kZW5jaWVzX2NvbXBpbGVyX3R5cGU9bm9uZQorKyAgaWYgdGVzdCAiJGFtX2NvbXBpbGVy X2xpc3QiID0gIiI7IHRoZW4KKysgICAgIGFtX2NvbXBpbGVyX2xpc3Q9YHNlZCAtbiAncy9eIypc KFthLXpBLVowLTldKlwpKSQvXDEvcCcgPCAuL2RlcGNvbXBgCisrICBmaQorKyAgYW1fX3VuaXZl cnNhbD1mYWxzZQorKyAgY2FzZSAiICRkZXBjYyAiIGluICMoCisrICAgICAqXCAtYXJjaFwgKlwg LWFyY2hcICopIGFtX191bml2ZXJzYWw9dHJ1ZSA7OworKyAgICAgZXNhYworKworKyAgZm9yIGRl cG1vZGUgaW4gJGFtX2NvbXBpbGVyX2xpc3Q7IGRvCisrICAgICMgU2V0dXAgYSBzb3VyY2Ugd2l0 aCBtYW55IGRlcGVuZGVuY2llcywgYmVjYXVzZSBzb21lIGNvbXBpbGVycworKyAgICAjIGxpa2Ug dG8gd3JhcCBsYXJnZSBkZXBlbmRlbmN5IGxpc3RzIG9uIGNvbHVtbiA4MCAod2l0aCBcKSwgYW5k CisrICAgICMgd2Ugc2hvdWxkIG5vdCBjaG9vc2UgYSBkZXBjb21wIG1vZGUgd2hpY2ggaXMgY29u ZnVzZWQgYnkgdGhpcy4KKysgICAgIworKyAgICAjIFdlIG5lZWQgdG8gcmVjcmVhdGUgdGhlc2Ug ZmlsZXMgZm9yIGVhY2ggdGVzdCwgYXMgdGhlIGNvbXBpbGVyIG1heQorKyAgICAjIG92ZXJ3cml0 ZSBzb21lIG9mIHRoZW0gd2hlbiB0ZXN0aW5nIHdpdGggb2JzY3VyZSBjb21tYW5kIGxpbmVzLgor KyAgICAjIFRoaXMgaGFwcGVucyBhdCBsZWFzdCB3aXRoIHRoZSBBSVggQyBjb21waWxlci4KKysg ICAgOiA+IHN1Yi9jb25mdGVzdC5jCisrICAgIGZvciBpIGluIDEgMiAzIDQgNSA2OyBkbworKyAg ICAgIGVjaG8gJyNpbmNsdWRlICJjb25mdHN0JyRpJy5oIicgPj4gc3ViL2NvbmZ0ZXN0LmMKKysg ICAgICAjIFVzaW5nIGA6ID4gc3ViL2NvbmZ0c3QkaS5oJyBjcmVhdGVzIG9ubHkgc3ViL2NvbmZ0 c3QxLmggd2l0aAorKyAgICAgICMgU29sYXJpcyA4J3Mgey91c3IsfS9iaW4vc2guCisrICAgICAg dG91Y2ggc3ViL2NvbmZ0c3QkaS5oCisrICAgIGRvbmUKKysgICAgZWNobyAiJHthbV9faW5jbHVk ZX0gJHthbV9fcXVvdGV9c3ViL2NvbmZ0ZXN0LlBvJHthbV9fcXVvdGV9IiA+IGNvbmZtZgorKwor KyAgICAjIFdlIGNoZWNrIHdpdGggYC1jJyBhbmQgYC1vJyBmb3IgdGhlIHNha2Ugb2YgdGhlICJk YXNobXN0ZG91dCIKKysgICAgIyBtb2RlLiAgSXQgdHVybnMgb3V0IHRoYXQgdGhlIFN1blBybyBD KysgY29tcGlsZXIgZG9lcyBub3QgcHJvcGVybHkKKysgICAgIyBoYW5kbGUgYC1NIC1vJywgYW5k IHdlIG5lZWQgdG8gZGV0ZWN0IHRoaXMuICBBbHNvLCBzb21lIEludGVsCisrICAgICMgdmVyc2lv bnMgaGFkIHRyb3VibGUgd2l0aCBvdXRwdXQgaW4gc3ViZGlycworKyAgICBhbV9fb2JqPXN1Yi9j b25mdGVzdC4ke09CSkVYVC1vfQorKyAgICBhbV9fbWludXNfb2JqPSItbyAkYW1fX29iaiIKKysg ICAgY2FzZSAkZGVwbW9kZSBpbgorKyAgICBnY2MpCisrICAgICAgIyBUaGlzIGRlcG1vZGUgY2F1 c2VzIGEgY29tcGlsZXIgcmFjZSBpbiB1bml2ZXJzYWwgbW9kZS4KKysgICAgICB0ZXN0ICIkYW1f X3VuaXZlcnNhbCIgPSBmYWxzZSB8fCBjb250aW51ZQorKyAgICAgIDs7CisrICAgIG5vc2lkZWVm ZmVjdCkKKysgICAgICAjIGFmdGVyIHRoaXMgdGFnLCBtZWNoYW5pc21zIGFyZSBub3QgYnkgc2lk ZS1lZmZlY3QsIHNvIHRoZXknbGwKKysgICAgICAjIG9ubHkgYmUgdXNlZCB3aGVuIGV4cGxpY2l0 bHkgcmVxdWVzdGVkCisrICAgICAgaWYgdGVzdCAieCRlbmFibGVfZGVwZW5kZW5jeV90cmFja2lu ZyIgPSB4eWVzOyB0aGVuCisrCWNvbnRpbnVlCisrICAgICAgZWxzZQorKwlicmVhaworKyAgICAg IGZpCisrICAgICAgOzsKKysgICAgbXN2aXN1YWxjcHAgfCBtc3ZjbXN5cykKKysgICAgICAjIFRo aXMgY29tcGlsZXIgd29uJ3QgZ3JvayBgLWMgLW8nLCBidXQgYWxzbywgdGhlIG1pbnVzbyB0ZXN0 IGhhcworKyAgICAgICMgbm90IHJ1biB5ZXQuICBUaGVzZSBkZXBtb2RlcyBhcmUgbGF0ZSBlbm91 Z2ggaW4gdGhlIGdhbWUsIGFuZAorKyAgICAgICMgc28gd2VhayB0aGF0IHRoZWlyIGZ1bmN0aW9u aW5nIHNob3VsZCBub3QgYmUgaW1wYWN0ZWQuCisrICAgICAgYW1fX29iaj1jb25mdGVzdC4ke09C SkVYVC1vfQorKyAgICAgIGFtX19taW51c19vYmo9CisrICAgICAgOzsKKysgICAgbm9uZSkgYnJl YWsgOzsKKysgICAgZXNhYworKyAgICBpZiBkZXBtb2RlPSRkZXBtb2RlIFwKKysgICAgICAgc291 cmNlPXN1Yi9jb25mdGVzdC5jIG9iamVjdD0kYW1fX29iaiBcCisrICAgICAgIGRlcGZpbGU9c3Vi L2NvbmZ0ZXN0LlBvIHRtcGRlcGZpbGU9c3ViL2NvbmZ0ZXN0LlRQbyBcCisrICAgICAgICRTSEVM TCAuL2RlcGNvbXAgJGRlcGNjIC1jICRhbV9fbWludXNfb2JqIHN1Yi9jb25mdGVzdC5jIFwKKysg ICAgICAgICA+L2Rldi9udWxsIDI+Y29uZnRlc3QuZXJyICYmCisrICAgICAgIGdyZXAgc3ViL2Nv bmZ0c3QxLmggc3ViL2NvbmZ0ZXN0LlBvID4gL2Rldi9udWxsIDI+JjEgJiYKKysgICAgICAgZ3Jl cCBzdWIvY29uZnRzdDYuaCBzdWIvY29uZnRlc3QuUG8gPiAvZGV2L251bGwgMj4mMSAmJgorKyAg ICAgICBncmVwICRhbV9fb2JqIHN1Yi9jb25mdGVzdC5QbyA+IC9kZXYvbnVsbCAyPiYxICYmCisr ICAgICAgICR7TUFLRS1tYWtlfSAtcyAtZiBjb25mbWYgPiAvZGV2L251bGwgMj4mMTsgdGhlbgor KyAgICAgICMgaWNjIGRvZXNuJ3QgY2hva2Ugb24gdW5rbm93biBvcHRpb25zLCBpdCB3aWxsIGp1 c3QgaXNzdWUgd2FybmluZ3MKKysgICAgICAjIG9yIHJlbWFya3MgKGV2ZW4gd2l0aCAtV2Vycm9y KS4gIFNvIHdlIGdyZXAgc3RkZXJyIGZvciBhbnkgbWVzc2FnZQorKyAgICAgICMgdGhhdCBzYXlz IGFuIG9wdGlvbiB3YXMgaWdub3JlZCBvciBub3Qgc3VwcG9ydGVkLgorKyAgICAgICMgV2hlbiBn aXZlbiAtTVAsIGljYyA3LjAgYW5kIDcuMSBjb21wbGFpbiB0aHVzbHk6CisrICAgICAgIyAgIGlj YzogQ29tbWFuZCBsaW5lIHdhcm5pbmc6IGlnbm9yaW5nIG9wdGlvbiAnLU0nOyBubyBhcmd1bWVu dCByZXF1aXJlZAorKyAgICAgICMgVGhlIGRpYWdub3NpcyBjaGFuZ2VkIGluIGljYyA4LjA6Cisr ICAgICAgIyAgIGljYzogQ29tbWFuZCBsaW5lIHJlbWFyazogb3B0aW9uICctTVAnIG5vdCBzdXBw b3J0ZWQKKysgICAgICBpZiAoZ3JlcCAnaWdub3Jpbmcgb3B0aW9uJyBjb25mdGVzdC5lcnIgfHwK KysgICAgICAgICAgZ3JlcCAnbm90IHN1cHBvcnRlZCcgY29uZnRlc3QuZXJyKSA+L2Rldi9udWxs IDI+JjE7IHRoZW4gOjsgZWxzZQorKyAgICAgICAgYW1fY3ZfQ1hYX2RlcGVuZGVuY2llc19jb21w aWxlcl90eXBlPSRkZXBtb2RlCisrICAgICAgICBicmVhaworKyAgICAgIGZpCisrICAgIGZpCisr ICBkb25lCisrCisrICBjZCAuLgorKyAgcm0gLXJmIGNvbmZ0ZXN0LmRpcgorK2Vsc2UKKysgIGFt X2N2X0NYWF9kZXBlbmRlbmNpZXNfY29tcGlsZXJfdHlwZT1ub25lCisrZmkKKysKKytmaQorK3sg JGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhbV9jdl9DWFhfZGVwZW5kZW5jaWVz X2NvbXBpbGVyX3R5cGUiID4mNQorKyRhc19lY2hvICIkYW1fY3ZfQ1hYX2RlcGVuZGVuY2llc19j b21waWxlcl90eXBlIiA+JjY7IH0KKytDWFhERVBNT0RFPWRlcG1vZGU9JGFtX2N2X0NYWF9kZXBl bmRlbmNpZXNfY29tcGlsZXJfdHlwZQorKworKyBpZgorKyAgdGVzdCAieCRlbmFibGVfZGVwZW5k ZW5jeV90cmFja2luZyIgIT0geG5vIFwKKysgICYmIHRlc3QgIiRhbV9jdl9DWFhfZGVwZW5kZW5j aWVzX2NvbXBpbGVyX3R5cGUiID0gZ2NjMzsgdGhlbgorKyAgYW1fX2Zhc3RkZXBDWFhfVFJVRT0K KysgIGFtX19mYXN0ZGVwQ1hYX0ZBTFNFPScjJworK2Vsc2UKKysgIGFtX19mYXN0ZGVwQ1hYX1RS VUU9JyMnCisrICBhbV9fZmFzdGRlcENYWF9GQUxTRT0KKytmaQorKworKworK2FjX2V4dD1jcHAK KythY19jcHA9JyRDWFhDUFAgJENQUEZMQUdTJworK2FjX2NvbXBpbGU9JyRDWFggLWMgJENYWEZM QUdTICRDUFBGTEFHUyBjb25mdGVzdC4kYWNfZXh0ID4mNScKKythY19saW5rPSckQ1hYIC1vIGNv bmZ0ZXN0JGFjX2V4ZWV4dCAkQ1hYRkxBR1MgJENQUEZMQUdTICRMREZMQUdTIGNvbmZ0ZXN0LiRh Y19leHQgJExJQlMgPiY1JworK2FjX2NvbXBpbGVyX2dudT0kYWNfY3ZfY3h4X2NvbXBpbGVyX2du dQorK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBob3cgdG8gcnVuIHRoZSBD KysgcHJlcHJvY2Vzc29yIiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyBob3cgdG8gcnVuIHRo ZSBDKysgcHJlcHJvY2Vzc29yLi4uICIgPiY2OyB9CisraWYgdGVzdCAteiAiJENYWENQUCI7IHRo ZW4KKysgIGlmIHRlc3QgIiR7YWNfY3ZfcHJvZ19DWFhDUFArc2V0fSIgPSBzZXQ7IHRoZW4KKysg ICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2CisrZWxzZQorKyAgICAgICMgRG91YmxlIHF1b3Rl cyBiZWNhdXNlIENYWENQUCBuZWVkcyB0byBiZSBleHBhbmRlZAorKyAgICBmb3IgQ1hYQ1BQIGlu ICIkQ1hYIC1FIiAiL2xpYi9jcHAiCisrICAgIGRvCisrICAgICAgYWNfcHJlcHJvY19vaz1mYWxz ZQorK2ZvciBhY19jeHhfcHJlcHJvY193YXJuX2ZsYWcgaW4gJycgeWVzCisrZG8KKysgICMgVXNl IGEgaGVhZGVyIGZpbGUgdGhhdCBjb21lcyB3aXRoIGdjYywgc28gY29uZmlndXJpbmcgZ2xpYmMK KysgICMgd2l0aCBhIGZyZXNoIGNyb3NzLWNvbXBpbGVyIHdvcmtzLgorKyAgIyBQcmVmZXIgPGxp bWl0cy5oPiB0byA8YXNzZXJ0Lmg+IGlmIF9fU1REQ19fIGlzIGRlZmluZWQsIHNpbmNlCisrICAj IDxsaW1pdHMuaD4gZXhpc3RzIGV2ZW4gb24gZnJlZXN0YW5kaW5nIGNvbXBpbGVycy4KKysgICMg T24gdGhlIE5lWFQsIGNjIC1FIHJ1bnMgdGhlIGNvZGUgdGhyb3VnaCB0aGUgY29tcGlsZXIncyBw YXJzZXIsCisrICAjIG5vdCBqdXN0IHRocm91Z2ggY3BwLiAiU3ludGF4IGVycm9yIiBpcyBoZXJl IHRvIGNhdGNoIHRoaXMgY2FzZS4KKysgIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgor Ky8qIGNvbmZkZWZzLmguICAqLworK19BQ0VPRgorK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3Qu JGFjX2V4dAorK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKysvKiBlbmQgY29uZmRl ZnMuaC4gICovCisrI2lmZGVmIF9fU1REQ19fCisrIyBpbmNsdWRlIDxsaW1pdHMuaD4KKysjZWxz ZQorKyMgaW5jbHVkZSA8YXNzZXJ0Lmg+CisrI2VuZGlmCisrCQkgICAgIFN5bnRheCBlcnJvcgor K19BQ0VPRgorK2lmIHsgKGFjX3RyeT0iJGFjX2NwcCBjb25mdGVzdC4kYWNfZXh0IgorK2Nhc2Ug IigoJGFjX3RyeSIgaW4KKysgICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190 cnk7OworKyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7CisrZXNhYworK2V2YWwgYWNfdHJ5X2Vj aG89IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIKKyskYXNfZWNobyAiJGFjX3Ry eV9lY2hvIikgPiY1CisrICAoZXZhbCAiJGFjX2NwcCBjb25mdGVzdC4kYWNfZXh0IikgMj5jb25m dGVzdC5lcjEKKysgIGFjX3N0YXR1cz0kPworKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIx ID5jb25mdGVzdC5lcnIKKysgIHJtIC1mIGNvbmZ0ZXN0LmVyMQorKyAgY2F0IGNvbmZ0ZXN0LmVy ciA+JjUKKysgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1 CisrICAoZXhpdCAkYWNfc3RhdHVzKTsgfSA+L2Rldi9udWxsICYmIHsKKysJIHRlc3QgLXogIiRh Y19jeHhfcHJlcHJvY193YXJuX2ZsYWckYWNfY3h4X3dlcnJvcl9mbGFnIiB8fAorKwkgdGVzdCAh IC1zIGNvbmZ0ZXN0LmVycgorKyAgICAgICB9OyB0aGVuCisrICA6CisrZWxzZQorKyAgJGFzX2Vj aG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Cisrc2VkICdzL14vfCAvJyBjb25m dGVzdC4kYWNfZXh0ID4mNQorKworKyAgIyBCcm9rZW46IGZhaWxzIG9uIHZhbGlkIGlucHV0Lgor K2NvbnRpbnVlCisrZmkKKysKKytybSAtZiBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX2V4dAor KworKyAgIyBPSywgd29ya3Mgb24gc2FuZSBjYXNlcy4gIE5vdyBjaGVjayB3aGV0aGVyIG5vbmV4 aXN0ZW50IGhlYWRlcnMKKysgICMgY2FuIGJlIGRldGVjdGVkIGFuZCBob3cuCisrICBjYXQgPmNv bmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKysvKiBjb25mZGVmcy5oLiAgKi8KKytfQUNFT0YKKytj YXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKKytjYXQgPj5jb25mdGVzdC4kYWNfZXh0 IDw8X0FDRU9GCisrLyogZW5kIGNvbmZkZWZzLmguICAqLworKyNpbmNsdWRlIDxhY19ub25leGlz dGVudC5oPgorK19BQ0VPRgorK2lmIHsgKGFjX3RyeT0iJGFjX2NwcCBjb25mdGVzdC4kYWNfZXh0 IgorK2Nhc2UgIigoJGFjX3RyeSIgaW4KKysgICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2Vj aG89XCRhY190cnk7OworKyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7CisrZXNhYworK2V2YWwg YWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIKKyskYXNfZWNo byAiJGFjX3RyeV9lY2hvIikgPiY1CisrICAoZXZhbCAiJGFjX2NwcCBjb25mdGVzdC4kYWNfZXh0 IikgMj5jb25mdGVzdC5lcjEKKysgIGFjX3N0YXR1cz0kPworKyAgZ3JlcCAtdiAnXiAqKycgY29u ZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKKysgIHJtIC1mIGNvbmZ0ZXN0LmVyMQorKyAgY2F0IGNv bmZ0ZXN0LmVyciA+JjUKKysgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0 YXR1cyIgPiY1CisrICAoZXhpdCAkYWNfc3RhdHVzKTsgfSA+L2Rldi9udWxsICYmIHsKKysJIHRl c3QgLXogIiRhY19jeHhfcHJlcHJvY193YXJuX2ZsYWckYWNfY3h4X3dlcnJvcl9mbGFnIiB8fAor KwkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgorKyAgICAgICB9OyB0aGVuCisrICAjIEJyb2tlbjog c3VjY2VzcyBvbiBpbnZhbGlkIGlucHV0LgorK2NvbnRpbnVlCisrZWxzZQorKyAgJGFzX2VjaG8g IiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Cisrc2VkICdzL14vfCAvJyBjb25mdGVz dC4kYWNfZXh0ID4mNQorKworKyAgIyBQYXNzZXMgYm90aCB0ZXN0cy4KKythY19wcmVwcm9jX29r PToKKyticmVhaworK2ZpCisrCisrcm0gLWYgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19leHQK KysKKytkb25lCisrIyBCZWNhdXNlIG9mIGBicmVhaycsIF9BQ19QUkVQUk9DX0lGRUxTRSdzIGNs ZWFuaW5nIGNvZGUgd2FzIHNraXBwZWQuCisrcm0gLWYgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRh Y19leHQKKytpZiAkYWNfcHJlcHJvY19vazsgdGhlbgorKyAgYnJlYWsKKytmaQorKworKyAgICBk b25lCisrICAgIGFjX2N2X3Byb2dfQ1hYQ1BQPSRDWFhDUFAKKysKKytmaQorKyAgQ1hYQ1BQPSRh Y19jdl9wcm9nX0NYWENQUAorK2Vsc2UKKysgIGFjX2N2X3Byb2dfQ1hYQ1BQPSRDWFhDUFAKKytm aQorK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRDWFhDUFAiID4mNQorKyRh c19lY2hvICIkQ1hYQ1BQIiA+JjY7IH0KKythY19wcmVwcm9jX29rPWZhbHNlCisrZm9yIGFjX2N4 eF9wcmVwcm9jX3dhcm5fZmxhZyBpbiAnJyB5ZXMKKytkbworKyAgIyBVc2UgYSBoZWFkZXIgZmls ZSB0aGF0IGNvbWVzIHdpdGggZ2NjLCBzbyBjb25maWd1cmluZyBnbGliYworKyAgIyB3aXRoIGEg ZnJlc2ggY3Jvc3MtY29tcGlsZXIgd29ya3MuCisrICAjIFByZWZlciA8bGltaXRzLmg+IHRvIDxh c3NlcnQuaD4gaWYgX19TVERDX18gaXMgZGVmaW5lZCwgc2luY2UKKysgICMgPGxpbWl0cy5oPiBl eGlzdHMgZXZlbiBvbiBmcmVlc3RhbmRpbmcgY29tcGlsZXJzLgorKyAgIyBPbiB0aGUgTmVYVCwg Y2MgLUUgcnVucyB0aGUgY29kZSB0aHJvdWdoIHRoZSBjb21waWxlcidzIHBhcnNlciwKKysgICMg bm90IGp1c3QgdGhyb3VnaCBjcHAuICJTeW50YXggZXJyb3IiIGlzIGhlcmUgdG8gY2F0Y2ggdGhp cyBjYXNlLgorKyAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisrLyogY29uZmRlZnMu aC4gICovCisrX0FDRU9GCisrY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0CisrY2F0 ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KKysj aWZkZWYgX19TVERDX18KKysjIGluY2x1ZGUgPGxpbWl0cy5oPgorKyNlbHNlCisrIyBpbmNsdWRl IDxhc3NlcnQuaD4KKysjZW5kaWYKKysJCSAgICAgU3ludGF4IGVycm9yCisrX0FDRU9GCisraWYg eyAoYWNfdHJ5PSIkYWNfY3BwIGNvbmZ0ZXN0LiRhY19leHQiCisrY2FzZSAiKCgkYWNfdHJ5IiBp bgorKyAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7CisrICAqKSBh Y190cnlfZWNobz0kYWNfdHJ5OzsKKytlc2FjCisrZXZhbCBhY190cnlfZWNobz0iXCJcJGFzX21l OiRMSU5FTk86ICRhY190cnlfZWNob1wiIgorKyRhc19lY2hvICIkYWNfdHJ5X2VjaG8iKSA+JjUK KysgIChldmFsICIkYWNfY3BwIGNvbmZ0ZXN0LiRhY19leHQiKSAyPmNvbmZ0ZXN0LmVyMQorKyAg YWNfc3RhdHVzPSQ/CisrICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVy cgorKyAgcm0gLWYgY29uZnRlc3QuZXIxCisrICBjYXQgY29uZnRlc3QuZXJyID4mNQorKyAgJGFz X2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKysgIChleGl0ICRh Y19zdGF0dXMpOyB9ID4vZGV2L251bGwgJiYgeworKwkgdGVzdCAteiAiJGFjX2N4eF9wcmVwcm9j X3dhcm5fZmxhZyRhY19jeHhfd2Vycm9yX2ZsYWciIHx8CisrCSB0ZXN0ICEgLXMgY29uZnRlc3Qu ZXJyCisrICAgICAgIH07IHRoZW4KKysgIDoKKytlbHNlCisrICAkYXNfZWNobyAiJGFzX21lOiBm YWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKKytzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQg PiY1CisrCisrICAjIEJyb2tlbjogZmFpbHMgb24gdmFsaWQgaW5wdXQuCisrY29udGludWUKKytm aQorKworK3JtIC1mIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfZXh0CisrCisrICAjIE9LLCB3 b3JrcyBvbiBzYW5lIGNhc2VzLiAgTm93IGNoZWNrIHdoZXRoZXIgbm9uZXhpc3RlbnQgaGVhZGVy cworKyAgIyBjYW4gYmUgZGV0ZWN0ZWQgYW5kIGhvdy4KKysgIGNhdCA+Y29uZnRlc3QuJGFjX2V4 dCA8PF9BQ0VPRgorKy8qIGNvbmZkZWZzLmguICAqLworK19BQ0VPRgorK2NhdCBjb25mZGVmcy5o ID4+Y29uZnRlc3QuJGFjX2V4dAorK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKysv KiBlbmQgY29uZmRlZnMuaC4gICovCisrI2luY2x1ZGUgPGFjX25vbmV4aXN0ZW50Lmg+CisrX0FD RU9GCisraWYgeyAoYWNfdHJ5PSIkYWNfY3BwIGNvbmZ0ZXN0LiRhY19leHQiCisrY2FzZSAiKCgk YWNfdHJ5IiBpbgorKyAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7 CisrICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKKytlc2FjCisrZXZhbCBhY190cnlfZWNobz0i XCJcJGFzX21lOiRMSU5FTk86ICRhY190cnlfZWNob1wiIgorKyRhc19lY2hvICIkYWNfdHJ5X2Vj aG8iKSA+JjUKKysgIChldmFsICIkYWNfY3BwIGNvbmZ0ZXN0LiRhY19leHQiKSAyPmNvbmZ0ZXN0 LmVyMQorKyAgYWNfc3RhdHVzPSQ/CisrICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNv bmZ0ZXN0LmVycgorKyAgcm0gLWYgY29uZnRlc3QuZXIxCisrICBjYXQgY29uZnRlc3QuZXJyID4m NQorKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKysg IChleGl0ICRhY19zdGF0dXMpOyB9ID4vZGV2L251bGwgJiYgeworKwkgdGVzdCAteiAiJGFjX2N4 eF9wcmVwcm9jX3dhcm5fZmxhZyRhY19jeHhfd2Vycm9yX2ZsYWciIHx8CisrCSB0ZXN0ICEgLXMg Y29uZnRlc3QuZXJyCisrICAgICAgIH07IHRoZW4KKysgICMgQnJva2VuOiBzdWNjZXNzIG9uIGlu dmFsaWQgaW5wdXQuCisrY29udGludWUKKytlbHNlCisrICAkYXNfZWNobyAiJGFzX21lOiBmYWls ZWQgcHJvZ3JhbSB3YXM6IiA+JjUKKytzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1 CisrCisrICAjIFBhc3NlcyBib3RoIHRlc3RzLgorK2FjX3ByZXByb2Nfb2s9OgorK2JyZWFrCisr ZmkKKysKKytybSAtZiBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX2V4dAorKworK2RvbmUKKysj IEJlY2F1c2Ugb2YgYGJyZWFrJywgX0FDX1BSRVBST0NfSUZFTFNFJ3MgY2xlYW5pbmcgY29kZSB3 YXMgc2tpcHBlZC4KKytybSAtZiBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX2V4dAorK2lmICRh Y19wcmVwcm9jX29rOyB0aGVuCisrICA6CisrZWxzZQorKyAgeyB7ICRhc19lY2hvICIkYXNfbWU6 JExJTkVOTzogZXJyb3I6IGluIFxgJGFjX3B3ZCc6IiA+JjUKKyskYXNfZWNobyAiJGFzX21lOiBl cnJvcjogaW4gXGAkYWNfcHdkJzoiID4mMjt9CisreyB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVO TzogZXJyb3I6IEMrKyBwcmVwcm9jZXNzb3IgXCIkQ1hYQ1BQXCIgZmFpbHMgc2FuaXR5IGNoZWNr CisrU2VlIFxgY29uZmlnLmxvZycgZm9yIG1vcmUgZGV0YWlscy4iID4mNQorKyRhc19lY2hvICIk YXNfbWU6IGVycm9yOiBDKysgcHJlcHJvY2Vzc29yIFwiJENYWENQUFwiIGZhaWxzIHNhbml0eSBj aGVjaworK1NlZSBcYGNvbmZpZy5sb2cnIGZvciBtb3JlIGRldGFpbHMuIiA+JjI7fQorKyAgIHsg KGV4aXQgMSk7IGV4aXQgMTsgfTsgfTsgfQorK2ZpCisrCisrYWNfZXh0PWMKKythY19jcHA9JyRD UFAgJENQUEZMQUdTJworK2FjX2NvbXBpbGU9JyRDQyAtYyAkQ0ZMQUdTICRDUFBGTEFHUyBjb25m dGVzdC4kYWNfZXh0ID4mNScKKythY19saW5rPSckQ0MgLW8gY29uZnRlc3QkYWNfZXhlZXh0ICRD RkxBR1MgJENQUEZMQUdTICRMREZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgJExJQlMgPiY1JworK2Fj X2NvbXBpbGVyX2dudT0kYWNfY3ZfY19jb21waWxlcl9nbnUKKysKKytDWFhGTEFHUz0iJHNhdmVf Q1hYRkxBR1MiCisrIyBGaW5kIGEgZ29vZCBpbnN0YWxsIHByb2dyYW0uICBXZSBwcmVmZXIgYSBD IHByb2dyYW0gKGZhc3RlciksCisrIyBzbyBvbmUgc2NyaXB0IGlzIGFzIGdvb2QgYXMgYW5vdGhl ci4gIEJ1dCBhdm9pZCB0aGUgYnJva2VuIG9yCisrIyBpbmNvbXBhdGlibGUgdmVyc2lvbnM6Cisr IyBTeXNWIC9ldGMvaW5zdGFsbCwgL3Vzci9zYmluL2luc3RhbGwKKysjIFN1bk9TIC91c3IvZXRj L2luc3RhbGwKKysjIElSSVggL3NiaW4vaW5zdGFsbAorKyMgQUlYIC9iaW4vaW5zdGFsbAorKyMg QW1pZ2FPUyAvQy9pbnN0YWxsLCB3aGljaCBpbnN0YWxscyBib290YmxvY2tzIG9uIGZsb3BweSBk aXNjcworKyMgQUlYIDQgL3Vzci9iaW4vaW5zdGFsbGJzZCwgd2hpY2ggZG9lc24ndCB3b3JrIHdp dGhvdXQgYSAtZyBmbGFnCisrIyBBRlMgL3Vzci9hZnN3cy9iaW4vaW5zdGFsbCwgd2hpY2ggbWlz aGFuZGxlcyBub25leGlzdGVudCBhcmdzCisrIyBTVlI0IC91c3IvdWNiL2luc3RhbGwsIHdoaWNo IHRyaWVzIHRvIHVzZSB0aGUgbm9uZXhpc3RlbnQgZ3JvdXAgInN0YWZmIgorKyMgT1MvMidzIHN5 c3RlbSBpbnN0YWxsLCB3aGljaCBoYXMgYSBjb21wbGV0ZWx5IGRpZmZlcmVudCBzZW1hbnRpYwor KyMgLi9pbnN0YWxsLCB3aGljaCBjYW4gYmUgZXJyb25lb3VzbHkgY3JlYXRlZCBieSBtYWtlIGZy b20gLi9pbnN0YWxsLnNoLgorKyMgUmVqZWN0IGluc3RhbGwgcHJvZ3JhbXMgdGhhdCBjYW5ub3Qg aW5zdGFsbCBtdWx0aXBsZSBmaWxlcy4KKyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hl Y2tpbmcgZm9yIGEgQlNELWNvbXBhdGlibGUgaW5zdGFsbCIgPiY1CisrJGFzX2VjaG9fbiAiY2hl Y2tpbmcgZm9yIGEgQlNELWNvbXBhdGlibGUgaW5zdGFsbC4uLiAiID4mNjsgfQorK2lmIHRlc3Qg LXogIiRJTlNUQUxMIjsgdGhlbgorK2lmIHRlc3QgIiR7YWNfY3ZfcGF0aF9pbnN0YWxsK3NldH0i ID0gc2V0OyB0aGVuCisrICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysgIGFz X3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IKKytmb3IgYXNfZGlyIGluICRQQVRI CisrZG8KKysgIElGUz0kYXNfc2F2ZV9JRlMKKysgIHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rp cj0uCisrICAjIEFjY291bnQgZm9yIHBlb3BsZSB3aG8gcHV0IHRyYWlsaW5nIHNsYXNoZXMgaW4g UEFUSCBlbGVtZW50cy4KKytjYXNlICRhc19kaXIvIGluCisrICAuLyB8IC4vLyB8IC9jQy8qIHwg XAorKyAgL2V0Yy8qIHwgL3Vzci9zYmluLyogfCAvdXNyL2V0Yy8qIHwgL3NiaW4vKiB8IC91c3Iv YWZzd3MvYmluLyogfCBcCisrICA/OlxcL29zMlxcL2luc3RhbGxcXC8qIHwgPzpcXC9PUzJcXC9J TlNUQUxMXFwvKiB8IFwKKysgIC91c3IvdWNiLyogKSA7OworKyAgKikKKysgICAgIyBPU0YxIGFu ZCBTQ08gT0RUIDMuMCBoYXZlIHRoZWlyIG93biBuYW1lcyBmb3IgaW5zdGFsbC4KKysgICAgIyBE b24ndCB1c2UgaW5zdGFsbGJzZCBmcm9tIE9TRiBzaW5jZSBpdCBpbnN0YWxscyBzdHVmZiBhcyBy b290CisrICAgICMgYnkgZGVmYXVsdC4KKysgICAgZm9yIGFjX3Byb2cgaW4gZ2luc3RhbGwgc2Nv aW5zdCBpbnN0YWxsOyBkbworKyAgICAgIGZvciBhY19leGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0 YWJsZV9leHRlbnNpb25zOyBkbworKwlpZiB7IHRlc3QgLWYgIiRhc19kaXIvJGFjX3Byb2ckYWNf ZXhlY19leHQiICYmICRhc190ZXN0X3ggIiRhc19kaXIvJGFjX3Byb2ckYWNfZXhlY19leHQiOyB9 OyB0aGVuCisrCSAgaWYgdGVzdCAkYWNfcHJvZyA9IGluc3RhbGwgJiYKKysJICAgIGdyZXAgZHNw bXNnICIkYXNfZGlyLyRhY19wcm9nJGFjX2V4ZWNfZXh0IiA+L2Rldi9udWxsIDI+JjE7IHRoZW4K KysJICAgICMgQUlYIGluc3RhbGwuICBJdCBoYXMgYW4gaW5jb21wYXRpYmxlIGNhbGxpbmcgY29u dmVudGlvbi4KKysJICAgIDoKKysJICBlbGlmIHRlc3QgJGFjX3Byb2cgPSBpbnN0YWxsICYmCisr CSAgICBncmVwIHB3cGx1cyAiJGFzX2Rpci8kYWNfcHJvZyRhY19leGVjX2V4dCIgPi9kZXYvbnVs bCAyPiYxOyB0aGVuCisrCSAgICAjIHByb2dyYW0tc3BlY2lmaWMgaW5zdGFsbCBzY3JpcHQgdXNl ZCBieSBIUCBwd3BsdXMtLWRvbid0IHVzZS4KKysJICAgIDoKKysJICBlbHNlCisrCSAgICBybSAt cmYgY29uZnRlc3Qub25lIGNvbmZ0ZXN0LnR3byBjb25mdGVzdC5kaXIKKysJICAgIGVjaG8gb25l ID4gY29uZnRlc3Qub25lCisrCSAgICBlY2hvIHR3byA+IGNvbmZ0ZXN0LnR3bworKwkgICAgbWtk aXIgY29uZnRlc3QuZGlyCisrCSAgICBpZiAiJGFzX2Rpci8kYWNfcHJvZyRhY19leGVjX2V4dCIg LWMgY29uZnRlc3Qub25lIGNvbmZ0ZXN0LnR3byAiYHB3ZGAvY29uZnRlc3QuZGlyIiAmJgorKwkg ICAgICB0ZXN0IC1zIGNvbmZ0ZXN0Lm9uZSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0LnR3byAmJgorKwkg ICAgICB0ZXN0IC1zIGNvbmZ0ZXN0LmRpci9jb25mdGVzdC5vbmUgJiYKKysJICAgICAgdGVzdCAt cyBjb25mdGVzdC5kaXIvY29uZnRlc3QudHdvCisrCSAgICB0aGVuCisrCSAgICAgIGFjX2N2X3Bh dGhfaW5zdGFsbD0iJGFzX2Rpci8kYWNfcHJvZyRhY19leGVjX2V4dCAtYyIKKysJICAgICAgYnJl YWsgMworKwkgICAgZmkKKysJICBmaQorKwlmaQorKyAgICAgIGRvbmUKKysgICAgZG9uZQorKyAg ICA7OworK2VzYWMKKysKKytkb25lCisrSUZTPSRhc19zYXZlX0lGUworKworK3JtIC1yZiBjb25m dGVzdC5vbmUgY29uZnRlc3QudHdvIGNvbmZ0ZXN0LmRpcgorKworK2ZpCisrICBpZiB0ZXN0ICIk e2FjX2N2X3BhdGhfaW5zdGFsbCtzZXR9IiA9IHNldDsgdGhlbgorKyAgICBJTlNUQUxMPSRhY19j dl9wYXRoX2luc3RhbGwKKysgIGVsc2UKKysgICAgIyBBcyBhIGxhc3QgcmVzb3J0LCB1c2UgdGhl IHNsb3cgc2hlbGwgc2NyaXB0LiAgRG9uJ3QgY2FjaGUgYQorKyAgICAjIHZhbHVlIGZvciBJTlNU QUxMIHdpdGhpbiBhIHNvdXJjZSBkaXJlY3RvcnksIGJlY2F1c2UgdGhhdCB3aWxsCisrICAgICMg YnJlYWsgb3RoZXIgcGFja2FnZXMgdXNpbmcgdGhlIGNhY2hlIGlmIHRoYXQgZGlyZWN0b3J5IGlz CisrICAgICMgcmVtb3ZlZCwgb3IgaWYgdGhlIHZhbHVlIGlzIGEgcmVsYXRpdmUgbmFtZS4KKysg ICAgSU5TVEFMTD0kYWNfaW5zdGFsbF9zaAorKyAgZmkKKytmaQorK3sgJGFzX2VjaG8gIiRhc19t ZTokTElORU5POiByZXN1bHQ6ICRJTlNUQUxMIiA+JjUKKyskYXNfZWNobyAiJElOU1RBTEwiID4m NjsgfQorKworKyMgVXNlIHRlc3QgLXogYmVjYXVzZSBTdW5PUzQgc2ggbWlzaGFuZGxlcyBicmFj ZXMgaW4gJHt2YXItdmFsfS4KKysjIEl0IHRoaW5rcyB0aGUgZmlyc3QgY2xvc2UgYnJhY2UgZW5k cyB0aGUgdmFyaWFibGUgc3Vic3RpdHV0aW9uLgorK3Rlc3QgLXogIiRJTlNUQUxMX1BST0dSQU0i ICYmIElOU1RBTExfUFJPR1JBTT0nJHtJTlNUQUxMfScKKysKKyt0ZXN0IC16ICIkSU5TVEFMTF9T Q1JJUFQiICYmIElOU1RBTExfU0NSSVBUPScke0lOU1RBTEx9JworKworK3Rlc3QgLXogIiRJTlNU QUxMX0RBVEEiICYmIElOU1RBTExfREFUQT0nJHtJTlNUQUxMfSAtbSA2NDQnCisrCisrY2FzZSBg cHdkYCBpbgorKyAgKlwgKiB8ICpcCSopCisrICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5P OiBXQVJOSU5HOiBMaWJ0b29sIGRvZXMgbm90IGNvcGUgd2VsbCB3aXRoIHdoaXRlc3BhY2UgaW4g XGBwd2RcYCIgPiY1CisrJGFzX2VjaG8gIiRhc19tZTogV0FSTklORzogTGlidG9vbCBkb2VzIG5v dCBjb3BlIHdlbGwgd2l0aCB3aGl0ZXNwYWNlIGluIFxgcHdkXGAiID4mMjt9IDs7CisrZXNhYwor KworKworKworK21hY3JvX3ZlcnNpb249JzIuMi42YicKKyttYWNyb19yZXZpc2lvbj0nMS4zMDE3 JworKworKworKworKworKworKworKworKworKworKworKworKworKworK2x0bWFpbj0iJGFjX2F1 eF9kaXIvbHRtYWluLnNoIgorKworK2FjX2V4dD1jCisrYWNfY3BwPSckQ1BQICRDUFBGTEFHUycK KythY19jb21waWxlPSckQ0MgLWMgJENGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+ JjUnCisrYWNfbGluaz0nJENDIC1vIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAkQ0ZMQUdTICRDUFBGTEFH UyAkTERGTEFHUyBjb25mdGVzdC4kYWNfZXh0ICRMSUJTID4mNScKKythY19jb21waWxlcl9nbnU9 JGFjX2N2X2NfY29tcGlsZXJfZ251CisraWYgdGVzdCAtbiAiJGFjX3Rvb2xfcHJlZml4IjsgdGhl bgorKyAgIyBFeHRyYWN0IHRoZSBmaXJzdCB3b3JkIG9mICIke2FjX3Rvb2xfcHJlZml4fWdjYyIs IHNvIGl0IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3MuCisrc2V0IGR1bW15ICR7YWNf dG9vbF9wcmVmaXh9Z2NjOyBhY193b3JkPSQyCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86 IGNoZWNraW5nIGZvciAkYWNfd29yZCIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yICRh Y193b3JkLi4uICIgPiY2OyB9CisraWYgdGVzdCAiJHthY19jdl9wcm9nX0NDK3NldH0iID0gc2V0 OyB0aGVuCisrICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysgIGlmIHRlc3Qg LW4gIiRDQyI7IHRoZW4KKysgIGFjX2N2X3Byb2dfQ0M9IiRDQyIgIyBMZXQgdGhlIHVzZXIgb3Zl cnJpZGUgdGhlIHRlc3QuCisrZWxzZQorK2FzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBB UkFUT1IKKytmb3IgYXNfZGlyIGluICRQQVRICisrZG8KKysgIElGUz0kYXNfc2F2ZV9JRlMKKysg IHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCisrICBmb3IgYWNfZXhlY19leHQgaW4gJycg JGFjX2V4ZWN1dGFibGVfZXh0ZW5zaW9uczsgZG8KKysgIGlmIHsgdGVzdCAtZiAiJGFzX2Rpci8k YWNfd29yZCRhY19leGVjX2V4dCIgJiYgJGFzX3Rlc3RfeCAiJGFzX2Rpci8kYWNfd29yZCRhY19l eGVjX2V4dCI7IH07IHRoZW4KKysgICAgYWNfY3ZfcHJvZ19DQz0iJHthY190b29sX3ByZWZpeH1n Y2MiCisrICAgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZm91bmQgJGFzX2Rpci8kYWNfd29y ZCRhY19leGVjX2V4dCIgPiY1CisrICAgIGJyZWFrIDIKKysgIGZpCisrZG9uZQorK2RvbmUKKytJ RlM9JGFzX3NhdmVfSUZTCisrCisrZmkKKytmaQorK0NDPSRhY19jdl9wcm9nX0NDCisraWYgdGVz dCAtbiAiJENDIjsgdGhlbgorKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDog JENDIiA+JjUKKyskYXNfZWNobyAiJENDIiA+JjY7IH0KKytlbHNlCisrICB7ICRhc19lY2hvICIk YXNfbWU6JExJTkVOTzogcmVzdWx0OiBubyIgPiY1CisrJGFzX2VjaG8gIm5vIiA+JjY7IH0KKytm aQorKworKworK2ZpCisraWYgdGVzdCAteiAiJGFjX2N2X3Byb2dfQ0MiOyB0aGVuCisrICBhY19j dF9DQz0kQ0MKKysgICMgRXh0cmFjdCB0aGUgZmlyc3Qgd29yZCBvZiAiZ2NjIiwgc28gaXQgY2Fu IGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJncy4KKytzZXQgZHVtbXkgZ2NjOyBhY193b3JkPSQy CisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciAkYWNfd29yZCIgPiY1 CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yICRhY193b3JkLi4uICIgPiY2OyB9CisraWYgdGVz dCAiJHthY19jdl9wcm9nX2FjX2N0X0NDK3NldH0iID0gc2V0OyB0aGVuCisrICAkYXNfZWNob19u ICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysgIGlmIHRlc3QgLW4gIiRhY19jdF9DQyI7IHRoZW4K KysgIGFjX2N2X3Byb2dfYWNfY3RfQ0M9IiRhY19jdF9DQyIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJp ZGUgdGhlIHRlc3QuCisrZWxzZQorK2FzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFU T1IKKytmb3IgYXNfZGlyIGluICRQQVRICisrZG8KKysgIElGUz0kYXNfc2F2ZV9JRlMKKysgIHRl c3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCisrICBmb3IgYWNfZXhlY19leHQgaW4gJycgJGFj X2V4ZWN1dGFibGVfZXh0ZW5zaW9uczsgZG8KKysgIGlmIHsgdGVzdCAtZiAiJGFzX2Rpci8kYWNf d29yZCRhY19leGVjX2V4dCIgJiYgJGFzX3Rlc3RfeCAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVj X2V4dCI7IH07IHRoZW4KKysgICAgYWNfY3ZfcHJvZ19hY19jdF9DQz0iZ2NjIgorKyAgICAkYXNf ZWNobyAiJGFzX21lOiRMSU5FTk86IGZvdW5kICRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQi ID4mNQorKyAgICBicmVhayAyCisrICBmaQorK2RvbmUKKytkb25lCisrSUZTPSRhc19zYXZlX0lG UworKworK2ZpCisrZmkKKythY19jdF9DQz0kYWNfY3ZfcHJvZ19hY19jdF9DQworK2lmIHRlc3Qg LW4gIiRhY19jdF9DQyI7IHRoZW4KKysgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1 bHQ6ICRhY19jdF9DQyIgPiY1CisrJGFzX2VjaG8gIiRhY19jdF9DQyIgPiY2OyB9CisrZWxzZQor KyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogbm8iID4mNQorKyRhc19lY2hv ICJubyIgPiY2OyB9CisrZmkKKysKKysgIGlmIHRlc3QgIngkYWNfY3RfQ0MiID0geDsgdGhlbgor KyAgICBDQz0iIgorKyAgZWxzZQorKyAgICBjYXNlICRjcm9zc19jb21waWxpbmc6JGFjX3Rvb2xf d2FybmVkIGluCisreWVzOikKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogV0FSTklORzog dXNpbmcgY3Jvc3MgdG9vbHMgbm90IHByZWZpeGVkIHdpdGggaG9zdCB0cmlwbGV0IiA+JjUKKysk YXNfZWNobyAiJGFzX21lOiBXQVJOSU5HOiB1c2luZyBjcm9zcyB0b29scyBub3QgcHJlZml4ZWQg d2l0aCBob3N0IHRyaXBsZXQiID4mMjt9CisrYWNfdG9vbF93YXJuZWQ9eWVzIDs7CisrZXNhYwor KyAgICBDQz0kYWNfY3RfQ0MKKysgIGZpCisrZWxzZQorKyAgQ0M9IiRhY19jdl9wcm9nX0NDIgor K2ZpCisrCisraWYgdGVzdCAteiAiJENDIjsgdGhlbgorKyAgICAgICAgICBpZiB0ZXN0IC1uICIk YWNfdG9vbF9wcmVmaXgiOyB0aGVuCisrICAgICMgRXh0cmFjdCB0aGUgZmlyc3Qgd29yZCBvZiAi JHthY190b29sX3ByZWZpeH1jYyIsIHNvIGl0IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFy Z3MuCisrc2V0IGR1bW15ICR7YWNfdG9vbF9wcmVmaXh9Y2M7IGFjX3dvcmQ9JDIKKyt7ICRhc19l Y2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yICRhY193b3JkIiA+JjUKKyskYXNfZWNo b19uICJjaGVja2luZyBmb3IgJGFjX3dvcmQuLi4gIiA+JjY7IH0KKytpZiB0ZXN0ICIke2FjX2N2 X3Byb2dfQ0Mrc2V0fSIgPSBzZXQ7IHRoZW4KKysgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2 CisrZWxzZQorKyAgaWYgdGVzdCAtbiAiJENDIjsgdGhlbgorKyAgYWNfY3ZfcHJvZ19DQz0iJEND IiAjIExldCB0aGUgdXNlciBvdmVycmlkZSB0aGUgdGVzdC4KKytlbHNlCisrYXNfc2F2ZV9JRlM9 JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgorK2ZvciBhc19kaXIgaW4gJFBBVEgKKytkbworKyAg SUZTPSRhc19zYXZlX0lGUworKyAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KKysgIGZv ciBhY19leGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9leHRlbnNpb25zOyBkbworKyAgaWYg eyB0ZXN0IC1mICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiAmJiAkYXNfdGVzdF94ICIk YXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IjsgfTsgdGhlbgorKyAgICBhY19jdl9wcm9nX0ND PSIke2FjX3Rvb2xfcHJlZml4fWNjIgorKyAgICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGZv dW5kICRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiID4mNQorKyAgICBicmVhayAyCisrICBm aQorK2RvbmUKKytkb25lCisrSUZTPSRhc19zYXZlX0lGUworKworK2ZpCisrZmkKKytDQz0kYWNf Y3ZfcHJvZ19DQworK2lmIHRlc3QgLW4gIiRDQyI7IHRoZW4KKysgIHsgJGFzX2VjaG8gIiRhc19t ZTokTElORU5POiByZXN1bHQ6ICRDQyIgPiY1CisrJGFzX2VjaG8gIiRDQyIgPiY2OyB9CisrZWxz ZQorKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogbm8iID4mNQorKyRhc19l Y2hvICJubyIgPiY2OyB9CisrZmkKKysKKysKKysgIGZpCisrZmkKKytpZiB0ZXN0IC16ICIkQ0Mi OyB0aGVuCisrICAjIEV4dHJhY3QgdGhlIGZpcnN0IHdvcmQgb2YgImNjIiwgc28gaXQgY2FuIGJl IGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJncy4KKytzZXQgZHVtbXkgY2M7IGFjX3dvcmQ9JDIKKyt7 ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yICRhY193b3JkIiA+JjUKKysk YXNfZWNob19uICJjaGVja2luZyBmb3IgJGFjX3dvcmQuLi4gIiA+JjY7IH0KKytpZiB0ZXN0ICIk e2FjX2N2X3Byb2dfQ0Mrc2V0fSIgPSBzZXQ7IHRoZW4KKysgICRhc19lY2hvX24gIihjYWNoZWQp ICIgPiY2CisrZWxzZQorKyAgaWYgdGVzdCAtbiAiJENDIjsgdGhlbgorKyAgYWNfY3ZfcHJvZ19D Qz0iJENDIiAjIExldCB0aGUgdXNlciBvdmVycmlkZSB0aGUgdGVzdC4KKytlbHNlCisrICBhY19w cm9nX3JlamVjdGVkPW5vCisrYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgor K2ZvciBhc19kaXIgaW4gJFBBVEgKKytkbworKyAgSUZTPSRhc19zYXZlX0lGUworKyAgdGVzdCAt eiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KKysgIGZvciBhY19leGVjX2V4dCBpbiAnJyAkYWNfZXhl Y3V0YWJsZV9leHRlbnNpb25zOyBkbworKyAgaWYgeyB0ZXN0IC1mICIkYXNfZGlyLyRhY193b3Jk JGFjX2V4ZWNfZXh0IiAmJiAkYXNfdGVzdF94ICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0 IjsgfTsgdGhlbgorKyAgICBpZiB0ZXN0ICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiA9 ICIvdXNyL3VjYi9jYyI7IHRoZW4KKysgICAgICAgYWNfcHJvZ19yZWplY3RlZD15ZXMKKysgICAg ICAgY29udGludWUKKysgICAgIGZpCisrICAgIGFjX2N2X3Byb2dfQ0M9ImNjIgorKyAgICAkYXNf ZWNobyAiJGFzX21lOiRMSU5FTk86IGZvdW5kICRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQi ID4mNQorKyAgICBicmVhayAyCisrICBmaQorK2RvbmUKKytkb25lCisrSUZTPSRhc19zYXZlX0lG UworKworK2lmIHRlc3QgJGFjX3Byb2dfcmVqZWN0ZWQgPSB5ZXM7IHRoZW4KKysgICMgV2UgZm91 bmQgYSBib2dvbiBpbiB0aGUgcGF0aCwgc28gbWFrZSBzdXJlIHdlIG5ldmVyIHVzZSBpdC4KKysg IHNldCBkdW1teSAkYWNfY3ZfcHJvZ19DQworKyAgc2hpZnQKKysgIGlmIHRlc3QgJCMgIT0gMDsg dGhlbgorKyAgICAjIFdlIGNob3NlIGEgZGlmZmVyZW50IGNvbXBpbGVyIGZyb20gdGhlIGJvZ3Vz IG9uZS4KKysgICAgIyBIb3dldmVyLCBpdCBoYXMgdGhlIHNhbWUgYmFzZW5hbWUsIHNvIHRoZSBi b2dvbiB3aWxsIGJlIGNob3NlbgorKyAgICAjIGZpcnN0IGlmIHdlIHNldCBDQyB0byBqdXN0IHRo ZSBiYXNlbmFtZTsgdXNlIHRoZSBmdWxsIGZpbGUgbmFtZS4KKysgICAgc2hpZnQKKysgICAgYWNf Y3ZfcHJvZ19DQz0iJGFzX2Rpci8kYWNfd29yZCR7MSsnICd9JEAiCisrICBmaQorK2ZpCisrZmkK KytmaQorK0NDPSRhY19jdl9wcm9nX0NDCisraWYgdGVzdCAtbiAiJENDIjsgdGhlbgorKyAgeyAk YXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJENDIiA+JjUKKyskYXNfZWNobyAiJEND IiA+JjY7IH0KKytlbHNlCisrICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiBu byIgPiY1CisrJGFzX2VjaG8gIm5vIiA+JjY7IH0KKytmaQorKworKworK2ZpCisraWYgdGVzdCAt eiAiJENDIjsgdGhlbgorKyAgaWYgdGVzdCAtbiAiJGFjX3Rvb2xfcHJlZml4IjsgdGhlbgorKyAg Zm9yIGFjX3Byb2cgaW4gY2wuZXhlCisrICBkbworKyAgICAjIEV4dHJhY3QgdGhlIGZpcnN0IHdv cmQgb2YgIiRhY190b29sX3ByZWZpeCRhY19wcm9nIiwgc28gaXQgY2FuIGJlIGEgcHJvZ3JhbSBu YW1lIHdpdGggYXJncy4KKytzZXQgZHVtbXkgJGFjX3Rvb2xfcHJlZml4JGFjX3Byb2c7IGFjX3dv cmQ9JDIKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yICRhY193b3Jk IiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyBmb3IgJGFjX3dvcmQuLi4gIiA+JjY7IH0KKytp ZiB0ZXN0ICIke2FjX2N2X3Byb2dfQ0Mrc2V0fSIgPSBzZXQ7IHRoZW4KKysgICRhc19lY2hvX24g IihjYWNoZWQpICIgPiY2CisrZWxzZQorKyAgaWYgdGVzdCAtbiAiJENDIjsgdGhlbgorKyAgYWNf Y3ZfcHJvZ19DQz0iJENDIiAjIExldCB0aGUgdXNlciBvdmVycmlkZSB0aGUgdGVzdC4KKytlbHNl CisrYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgorK2ZvciBhc19kaXIgaW4g JFBBVEgKKytkbworKyAgSUZTPSRhc19zYXZlX0lGUworKyAgdGVzdCAteiAiJGFzX2RpciIgJiYg YXNfZGlyPS4KKysgIGZvciBhY19leGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9leHRlbnNp b25zOyBkbworKyAgaWYgeyB0ZXN0IC1mICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiAm JiAkYXNfdGVzdF94ICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IjsgfTsgdGhlbgorKyAg ICBhY19jdl9wcm9nX0NDPSIkYWNfdG9vbF9wcmVmaXgkYWNfcHJvZyIKKysgICAgJGFzX2VjaG8g IiRhc19tZTokTElORU5POiBmb3VuZCAkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiA+JjUK KysgICAgYnJlYWsgMgorKyAgZmkKKytkb25lCisrZG9uZQorK0lGUz0kYXNfc2F2ZV9JRlMKKysK KytmaQorK2ZpCisrQ0M9JGFjX2N2X3Byb2dfQ0MKKytpZiB0ZXN0IC1uICIkQ0MiOyB0aGVuCisr ICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkQ0MiID4mNQorKyRhc19lY2hv ICIkQ0MiID4mNjsgfQorK2Vsc2UKKysgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1 bHQ6IG5vIiA+JjUKKyskYXNfZWNobyAibm8iID4mNjsgfQorK2ZpCisrCisrCisrICAgIHRlc3Qg LW4gIiRDQyIgJiYgYnJlYWsKKysgIGRvbmUKKytmaQorK2lmIHRlc3QgLXogIiRDQyI7IHRoZW4K KysgIGFjX2N0X0NDPSRDQworKyAgZm9yIGFjX3Byb2cgaW4gY2wuZXhlCisrZG8KKysgICMgRXh0 cmFjdCB0aGUgZmlyc3Qgd29yZCBvZiAiJGFjX3Byb2ciLCBzbyBpdCBjYW4gYmUgYSBwcm9ncmFt IG5hbWUgd2l0aCBhcmdzLgorK3NldCBkdW1teSAkYWNfcHJvZzsgYWNfd29yZD0kMgorK3sgJGFz X2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgJGFjX3dvcmQiID4mNQorKyRhc19l Y2hvX24gImNoZWNraW5nIGZvciAkYWNfd29yZC4uLiAiID4mNjsgfQorK2lmIHRlc3QgIiR7YWNf Y3ZfcHJvZ19hY19jdF9DQytzZXR9IiA9IHNldDsgdGhlbgorKyAgJGFzX2VjaG9fbiAiKGNhY2hl ZCkgIiA+JjYKKytlbHNlCisrICBpZiB0ZXN0IC1uICIkYWNfY3RfQ0MiOyB0aGVuCisrICBhY19j dl9wcm9nX2FjX2N0X0NDPSIkYWNfY3RfQ0MiICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0 ZXN0LgorK2Vsc2UKKythc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCisrZm9y IGFzX2RpciBpbiAkUEFUSAorK2RvCisrICBJRlM9JGFzX3NhdmVfSUZTCisrICB0ZXN0IC16ICIk YXNfZGlyIiAmJiBhc19kaXI9LgorKyAgZm9yIGFjX2V4ZWNfZXh0IGluICcnICRhY19leGVjdXRh YmxlX2V4dGVuc2lvbnM7IGRvCisrICBpZiB7IHRlc3QgLWYgIiRhc19kaXIvJGFjX3dvcmQkYWNf ZXhlY19leHQiICYmICRhc190ZXN0X3ggIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiOyB9 OyB0aGVuCisrICAgIGFjX2N2X3Byb2dfYWNfY3RfQ0M9IiRhY19wcm9nIgorKyAgICAkYXNfZWNo byAiJGFzX21lOiRMSU5FTk86IGZvdW5kICRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiID4m NQorKyAgICBicmVhayAyCisrICBmaQorK2RvbmUKKytkb25lCisrSUZTPSRhc19zYXZlX0lGUwor KworK2ZpCisrZmkKKythY19jdF9DQz0kYWNfY3ZfcHJvZ19hY19jdF9DQworK2lmIHRlc3QgLW4g IiRhY19jdF9DQyI7IHRoZW4KKysgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6 ICRhY19jdF9DQyIgPiY1CisrJGFzX2VjaG8gIiRhY19jdF9DQyIgPiY2OyB9CisrZWxzZQorKyAg eyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogbm8iID4mNQorKyRhc19lY2hvICJu byIgPiY2OyB9CisrZmkKKysKKysKKysgIHRlc3QgLW4gIiRhY19jdF9DQyIgJiYgYnJlYWsKKytk b25lCisrCisrICBpZiB0ZXN0ICJ4JGFjX2N0X0NDIiA9IHg7IHRoZW4KKysgICAgQ0M9IiIKKysg IGVsc2UKKysgICAgY2FzZSAkY3Jvc3NfY29tcGlsaW5nOiRhY190b29sX3dhcm5lZCBpbgorK3ll czopCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6IHVzaW5nIGNyb3NzIHRv b2xzIG5vdCBwcmVmaXhlZCB3aXRoIGhvc3QgdHJpcGxldCIgPiY1CisrJGFzX2VjaG8gIiRhc19t ZTogV0FSTklORzogdXNpbmcgY3Jvc3MgdG9vbHMgbm90IHByZWZpeGVkIHdpdGggaG9zdCB0cmlw bGV0IiA+JjI7fQorK2FjX3Rvb2xfd2FybmVkPXllcyA7OworK2VzYWMKKysgICAgQ0M9JGFjX2N0 X0NDCisrICBmaQorK2ZpCisrCisrZmkKKysKKysKKyt0ZXN0IC16ICIkQ0MiICYmIHsgeyAkYXNf ZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBpbiBcYCRhY19wd2QnOiIgPiY1CisrJGFzX2Vj aG8gIiRhc19tZTogZXJyb3I6IGluIFxgJGFjX3B3ZCc6IiA+JjI7fQorK3sgeyAkYXNfZWNobyAi JGFzX21lOiRMSU5FTk86IGVycm9yOiBubyBhY2NlcHRhYmxlIEMgY29tcGlsZXIgZm91bmQgaW4g XCRQQVRICisrU2VlIFxgY29uZmlnLmxvZycgZm9yIG1vcmUgZGV0YWlscy4iID4mNQorKyRhc19l Y2hvICIkYXNfbWU6IGVycm9yOiBubyBhY2NlcHRhYmxlIEMgY29tcGlsZXIgZm91bmQgaW4gXCRQ QVRICisrU2VlIFxgY29uZmlnLmxvZycgZm9yIG1vcmUgZGV0YWlscy4iID4mMjt9CisrICAgeyAo ZXhpdCAxKTsgZXhpdCAxOyB9OyB9OyB9CisrCisrIyBQcm92aWRlIHNvbWUgaW5mb3JtYXRpb24g YWJvdXQgdGhlIGNvbXBpbGVyLgorKyRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcg Zm9yIEMgY29tcGlsZXIgdmVyc2lvbiIgPiY1Cisrc2V0IFggJGFjX2NvbXBpbGUKKythY19jb21w aWxlcj0kMgorK3sgKGFjX3RyeT0iJGFjX2NvbXBpbGVyIC0tdmVyc2lvbiA+JjUiCisrY2FzZSAi KCgkYWNfdHJ5IiBpbgorKyAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3Ry eTs7CisrICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKKytlc2FjCisrZXZhbCBhY190cnlfZWNo bz0iXCJcJGFzX21lOiRMSU5FTk86ICRhY190cnlfZWNob1wiIgorKyRhc19lY2hvICIkYWNfdHJ5 X2VjaG8iKSA+JjUKKysgIChldmFsICIkYWNfY29tcGlsZXIgLS12ZXJzaW9uID4mNSIpIDI+JjUK KysgIGFjX3N0YXR1cz0kPworKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNf c3RhdHVzIiA+JjUKKysgIChleGl0ICRhY19zdGF0dXMpOyB9CisreyAoYWNfdHJ5PSIkYWNfY29t cGlsZXIgLXYgPiY1IgorK2Nhc2UgIigoJGFjX3RyeSIgaW4KKysgICpcIiogfCAqXGAqIHwgKlxc KikgYWNfdHJ5X2VjaG89XCRhY190cnk7OworKyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7Cisr ZXNhYworK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9c IiIKKyskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1CisrICAoZXZhbCAiJGFjX2NvbXBpbGVy IC12ID4mNSIpIDI+JjUKKysgIGFjX3N0YXR1cz0kPworKyAgJGFzX2VjaG8gIiRhc19tZTokTElO RU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKysgIChleGl0ICRhY19zdGF0dXMpOyB9CisreyAo YWNfdHJ5PSIkYWNfY29tcGlsZXIgLVYgPiY1IgorK2Nhc2UgIigoJGFjX3RyeSIgaW4KKysgICpc IiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OworKyAgKikgYWNfdHJ5X2Vj aG89JGFjX3RyeTs7CisrZXNhYworK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5P OiAkYWNfdHJ5X2VjaG9cIiIKKyskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1CisrICAoZXZh bCAiJGFjX2NvbXBpbGVyIC1WID4mNSIpIDI+JjUKKysgIGFjX3N0YXR1cz0kPworKyAgJGFzX2Vj aG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKysgIChleGl0ICRhY19z dGF0dXMpOyB9CisrCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIHdoZXRo ZXIgd2UgYXJlIHVzaW5nIHRoZSBHTlUgQyBjb21waWxlciIgPiY1CisrJGFzX2VjaG9fbiAiY2hl Y2tpbmcgd2hldGhlciB3ZSBhcmUgdXNpbmcgdGhlIEdOVSBDIGNvbXBpbGVyLi4uICIgPiY2OyB9 CisraWYgdGVzdCAiJHthY19jdl9jX2NvbXBpbGVyX2dudStzZXR9IiA9IHNldDsgdGhlbgorKyAg JGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKKytlbHNlCisrICBjYXQgPmNvbmZ0ZXN0LiRhY19l eHQgPDxfQUNFT0YKKysvKiBjb25mZGVmcy5oLiAgKi8KKytfQUNFT0YKKytjYXQgY29uZmRlZnMu aCA+PmNvbmZ0ZXN0LiRhY19leHQKKytjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisr LyogZW5kIGNvbmZkZWZzLmguICAqLworKworK2ludAorK21haW4gKCkKKyt7CisrI2lmbmRlZiBf X0dOVUNfXworKyAgICAgICBjaG9rZSBtZQorKyNlbmRpZgorKworKyAgOworKyAgcmV0dXJuIDA7 CisrfQorK19BQ0VPRgorK3JtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQKKytpZiB7IChhY190cnk9 IiRhY19jb21waWxlIgorK2Nhc2UgIigoJGFjX3RyeSIgaW4KKysgICpcIiogfCAqXGAqIHwgKlxc KikgYWNfdHJ5X2VjaG89XCRhY190cnk7OworKyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7Cisr ZXNhYworK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9c IiIKKyskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1CisrICAoZXZhbCAiJGFjX2NvbXBpbGUi KSAyPmNvbmZ0ZXN0LmVyMQorKyAgYWNfc3RhdHVzPSQ/CisrICBncmVwIC12ICdeICorJyBjb25m dGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgorKyAgcm0gLWYgY29uZnRlc3QuZXIxCisrICBjYXQgY29u ZnRlc3QuZXJyID4mNQorKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3Rh dHVzIiA+JjUKKysgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmIHsKKysJIHRlc3QgLXogIiRhY19j X3dlcnJvcl9mbGFnIiB8fAorKwkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgorKyAgICAgICB9ICYm IHRlc3QgLXMgY29uZnRlc3QuJGFjX29iamV4dDsgdGhlbgorKyAgYWNfY29tcGlsZXJfZ251PXll cworK2Vsc2UKKysgICRhc19lY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQor K3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKKysKKysJYWNfY29tcGlsZXJfZ251 PW5vCisrZmkKKysKKytybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0 IGNvbmZ0ZXN0LiRhY19leHQKKythY19jdl9jX2NvbXBpbGVyX2dudT0kYWNfY29tcGlsZXJfZ251 CisrCisrZmkKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3ZfY19j b21waWxlcl9nbnUiID4mNQorKyRhc19lY2hvICIkYWNfY3ZfY19jb21waWxlcl9nbnUiID4mNjsg fQorK2lmIHRlc3QgJGFjX2NvbXBpbGVyX2dudSA9IHllczsgdGhlbgorKyAgR0NDPXllcworK2Vs c2UKKysgIEdDQz0KKytmaQorK2FjX3Rlc3RfQ0ZMQUdTPSR7Q0ZMQUdTK3NldH0KKythY19zYXZl X0NGTEFHUz0kQ0ZMQUdTCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIHdo ZXRoZXIgJENDIGFjY2VwdHMgLWciID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIHdoZXRoZXIg JENDIGFjY2VwdHMgLWcuLi4gIiA+JjY7IH0KKytpZiB0ZXN0ICIke2FjX2N2X3Byb2dfY2NfZytz ZXR9IiA9IHNldDsgdGhlbgorKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKKytlbHNlCisr ICBhY19zYXZlX2Nfd2Vycm9yX2ZsYWc9JGFjX2Nfd2Vycm9yX2ZsYWcKKysgICBhY19jX3dlcnJv cl9mbGFnPXllcworKyAgIGFjX2N2X3Byb2dfY2NfZz1ubworKyAgIENGTEFHUz0iLWciCisrICAg Y2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisrLyogY29uZmRlZnMuaC4gICovCisrX0FD RU9GCisrY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0CisrY2F0ID4+Y29uZnRlc3Qu JGFjX2V4dCA8PF9BQ0VPRgorKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KKysKKytpbnQKKyttYWlu ICgpCisreworKworKyAgOworKyAgcmV0dXJuIDA7CisrfQorK19BQ0VPRgorK3JtIC1mIGNvbmZ0 ZXN0LiRhY19vYmpleHQKKytpZiB7IChhY190cnk9IiRhY19jb21waWxlIgorK2Nhc2UgIigoJGFj X3RyeSIgaW4KKysgICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7Owor KyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7CisrZXNhYworK2V2YWwgYWNfdHJ5X2VjaG89Ilwi XCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIKKyskYXNfZWNobyAiJGFjX3RyeV9lY2hv IikgPiY1CisrICAoZXZhbCAiJGFjX2NvbXBpbGUiKSAyPmNvbmZ0ZXN0LmVyMQorKyAgYWNfc3Rh dHVzPSQ/CisrICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgorKyAg cm0gLWYgY29uZnRlc3QuZXIxCisrICBjYXQgY29uZnRlc3QuZXJyID4mNQorKyAgJGFzX2VjaG8g IiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKysgIChleGl0ICRhY19zdGF0 dXMpOyB9ICYmIHsKKysJIHRlc3QgLXogIiRhY19jX3dlcnJvcl9mbGFnIiB8fAorKwkgdGVzdCAh IC1zIGNvbmZ0ZXN0LmVycgorKyAgICAgICB9ICYmIHRlc3QgLXMgY29uZnRlc3QuJGFjX29iamV4 dDsgdGhlbgorKyAgYWNfY3ZfcHJvZ19jY19nPXllcworK2Vsc2UKKysgICRhc19lY2hvICIkYXNf bWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQorK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFj X2V4dCA+JjUKKysKKysJQ0ZMQUdTPSIiCisrICAgICAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8 X0FDRU9GCisrLyogY29uZmRlZnMuaC4gICovCisrX0FDRU9GCisrY2F0IGNvbmZkZWZzLmggPj5j b25mdGVzdC4kYWNfZXh0CisrY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorKy8qIGVu ZCBjb25mZGVmcy5oLiAgKi8KKysKKytpbnQKKyttYWluICgpCisreworKworKyAgOworKyAgcmV0 dXJuIDA7CisrfQorK19BQ0VPRgorK3JtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQKKytpZiB7IChh Y190cnk9IiRhY19jb21waWxlIgorK2Nhc2UgIigoJGFjX3RyeSIgaW4KKysgICpcIiogfCAqXGAq IHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OworKyAgKikgYWNfdHJ5X2VjaG89JGFjX3Ry eTs7CisrZXNhYworK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5 X2VjaG9cIiIKKyskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1CisrICAoZXZhbCAiJGFjX2Nv bXBpbGUiKSAyPmNvbmZ0ZXN0LmVyMQorKyAgYWNfc3RhdHVzPSQ/CisrICBncmVwIC12ICdeICor JyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgorKyAgcm0gLWYgY29uZnRlc3QuZXIxCisrICBj YXQgY29uZnRlc3QuZXJyID4mNQorKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAk YWNfc3RhdHVzIiA+JjUKKysgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmIHsKKysJIHRlc3QgLXog IiRhY19jX3dlcnJvcl9mbGFnIiB8fAorKwkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgorKyAgICAg ICB9ICYmIHRlc3QgLXMgY29uZnRlc3QuJGFjX29iamV4dDsgdGhlbgorKyAgOgorK2Vsc2UKKysg ICRhc19lY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQorK3NlZCAncy9eL3wg LycgY29uZnRlc3QuJGFjX2V4dCA+JjUKKysKKysJYWNfY193ZXJyb3JfZmxhZz0kYWNfc2F2ZV9j X3dlcnJvcl9mbGFnCisrCSBDRkxBR1M9Ii1nIgorKwkgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8 X0FDRU9GCisrLyogY29uZmRlZnMuaC4gICovCisrX0FDRU9GCisrY2F0IGNvbmZkZWZzLmggPj5j b25mdGVzdC4kYWNfZXh0CisrY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorKy8qIGVu ZCBjb25mZGVmcy5oLiAgKi8KKysKKytpbnQKKyttYWluICgpCisreworKworKyAgOworKyAgcmV0 dXJuIDA7CisrfQorK19BQ0VPRgorK3JtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQKKytpZiB7IChh Y190cnk9IiRhY19jb21waWxlIgorK2Nhc2UgIigoJGFjX3RyeSIgaW4KKysgICpcIiogfCAqXGAq IHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OworKyAgKikgYWNfdHJ5X2VjaG89JGFjX3Ry eTs7CisrZXNhYworK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5 X2VjaG9cIiIKKyskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1CisrICAoZXZhbCAiJGFjX2Nv bXBpbGUiKSAyPmNvbmZ0ZXN0LmVyMQorKyAgYWNfc3RhdHVzPSQ/CisrICBncmVwIC12ICdeICor JyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgorKyAgcm0gLWYgY29uZnRlc3QuZXIxCisrICBj YXQgY29uZnRlc3QuZXJyID4mNQorKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAk YWNfc3RhdHVzIiA+JjUKKysgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmIHsKKysJIHRlc3QgLXog IiRhY19jX3dlcnJvcl9mbGFnIiB8fAorKwkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgorKyAgICAg ICB9ICYmIHRlc3QgLXMgY29uZnRlc3QuJGFjX29iamV4dDsgdGhlbgorKyAgYWNfY3ZfcHJvZ19j Y19nPXllcworK2Vsc2UKKysgICRhc19lY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoi ID4mNQorK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKKysKKysKKytmaQorKwor K3JtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFj X2V4dAorK2ZpCisrCisrcm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4 dCBjb25mdGVzdC4kYWNfZXh0CisrZmkKKysKKytybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25m dGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKKysgICBhY19jX3dlcnJvcl9mbGFnPSRh Y19zYXZlX2Nfd2Vycm9yX2ZsYWcKKytmaQorK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBy ZXN1bHQ6ICRhY19jdl9wcm9nX2NjX2ciID4mNQorKyRhc19lY2hvICIkYWNfY3ZfcHJvZ19jY19n IiA+JjY7IH0KKytpZiB0ZXN0ICIkYWNfdGVzdF9DRkxBR1MiID0gc2V0OyB0aGVuCisrICBDRkxB R1M9JGFjX3NhdmVfQ0ZMQUdTCisrZWxpZiB0ZXN0ICRhY19jdl9wcm9nX2NjX2cgPSB5ZXM7IHRo ZW4KKysgIGlmIHRlc3QgIiRHQ0MiID0geWVzOyB0aGVuCisrICAgIENGTEFHUz0iLWcgLU8yIgor KyAgZWxzZQorKyAgICBDRkxBR1M9Ii1nIgorKyAgZmkKKytlbHNlCisrICBpZiB0ZXN0ICIkR0ND IiA9IHllczsgdGhlbgorKyAgICBDRkxBR1M9Ii1PMiIKKysgIGVsc2UKKysgICAgQ0ZMQUdTPQor KyAgZmkKKytmaQorK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgJEND IG9wdGlvbiB0byBhY2NlcHQgSVNPIEM4OSIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9y ICRDQyBvcHRpb24gdG8gYWNjZXB0IElTTyBDODkuLi4gIiA+JjY7IH0KKytpZiB0ZXN0ICIke2Fj X2N2X3Byb2dfY2NfYzg5K3NldH0iID0gc2V0OyB0aGVuCisrICAkYXNfZWNob19uICIoY2FjaGVk KSAiID4mNgorK2Vsc2UKKysgIGFjX2N2X3Byb2dfY2NfYzg5PW5vCisrYWNfc2F2ZV9DQz0kQ0MK KytjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKysvKiBjb25mZGVmcy5oLiAgKi8KKytf QUNFT0YKKytjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKKytjYXQgPj5jb25mdGVz dC4kYWNfZXh0IDw8X0FDRU9GCisrLyogZW5kIGNvbmZkZWZzLmguICAqLworKyNpbmNsdWRlIDxz dGRhcmcuaD4KKysjaW5jbHVkZSA8c3RkaW8uaD4KKysjaW5jbHVkZSA8c3lzL3R5cGVzLmg+Cisr I2luY2x1ZGUgPHN5cy9zdGF0Lmg+CisrLyogTW9zdCBvZiB0aGUgZm9sbG93aW5nIHRlc3RzIGFy ZSBzdG9sZW4gZnJvbSBSQ1MgNS43J3Mgc3JjL2NvbmYuc2guICAqLworK3N0cnVjdCBidWYgeyBp bnQgeDsgfTsKKytGSUxFICogKCpyY3NvcGVuKSAoc3RydWN0IGJ1ZiAqLCBzdHJ1Y3Qgc3RhdCAq LCBpbnQpOworK3N0YXRpYyBjaGFyICplIChwLCBpKQorKyAgICAgY2hhciAqKnA7CisrICAgICBp bnQgaTsKKyt7CisrICByZXR1cm4gcFtpXTsKKyt9Cisrc3RhdGljIGNoYXIgKmYgKGNoYXIgKiAo KmcpIChjaGFyICoqLCBpbnQpLCBjaGFyICoqcCwgLi4uKQorK3sKKysgIGNoYXIgKnM7CisrICB2 YV9saXN0IHY7CisrICB2YV9zdGFydCAodixwKTsKKysgIHMgPSBnIChwLCB2YV9hcmcgKHYsaW50 KSk7CisrICB2YV9lbmQgKHYpOworKyAgcmV0dXJuIHM7CisrfQorKworKy8qIE9TRiA0LjAgQ29t cGFxIGNjIGlzIHNvbWUgc29ydCBvZiBhbG1vc3QtQU5TSSBieSBkZWZhdWx0LiAgSXQgaGFzCisr ICAgZnVuY3Rpb24gcHJvdG90eXBlcyBhbmQgc3R1ZmYsIGJ1dCBub3QgJ1x4SEgnIGhleCBjaGFy YWN0ZXIgY29uc3RhbnRzLgorKyAgIFRoZXNlIGRvbid0IHByb3Zva2UgYW4gZXJyb3IgdW5mb3J0 dW5hdGVseSwgaW5zdGVhZCBhcmUgc2lsZW50bHkgdHJlYXRlZAorKyAgIGFzICd4Jy4gIFRoZSBm b2xsb3dpbmcgaW5kdWNlcyBhbiBlcnJvciwgdW50aWwgLXN0ZCBpcyBhZGRlZCB0byBnZXQKKysg ICBwcm9wZXIgQU5TSSBtb2RlLiAgQ3VyaW91c2x5ICdceDAwJyE9J3gnIGFsd2F5cyBjb21lcyBv dXQgdHJ1ZSwgZm9yIGFuCisrICAgYXJyYXkgc2l6ZSBhdCBsZWFzdC4gIEl0J3MgbmVjZXNzYXJ5 IHRvIHdyaXRlICdceDAwJz09MCB0byBnZXQgc29tZXRoaW5nCisrICAgdGhhdCdzIHRydWUgb25s eSB3aXRoIC1zdGQuICAqLworK2ludCBvc2Y0X2NjX2FycmF5IFsnXHgwMCcgPT0gMCA/IDEgOiAt MV07CisrCisrLyogSUJNIEMgNiBmb3IgQUlYIGlzIGFsbW9zdC1BTlNJIGJ5IGRlZmF1bHQsIGJ1 dCBpdCByZXBsYWNlcyBtYWNybyBwYXJhbWV0ZXJzCisrICAgaW5zaWRlIHN0cmluZ3MgYW5kIGNo YXJhY3RlciBjb25zdGFudHMuICAqLworKyNkZWZpbmUgRk9PKHgpICd4JworK2ludCB4bGM2X2Nj X2FycmF5W0ZPTyhhKSA9PSAneCcgPyAxIDogLTFdOworKworK2ludCB0ZXN0IChpbnQgaSwgZG91 YmxlIHgpOworK3N0cnVjdCBzMSB7aW50ICgqZikgKGludCBhKTt9OworK3N0cnVjdCBzMiB7aW50 ICgqZikgKGRvdWJsZSBhKTt9OworK2ludCBwYWlybmFtZXMgKGludCwgY2hhciAqKiwgRklMRSAq KCopKHN0cnVjdCBidWYgKiwgc3RydWN0IHN0YXQgKiwgaW50KSwgaW50LCBpbnQpOworK2ludCBh cmdjOworK2NoYXIgKiphcmd2OworK2ludAorK21haW4gKCkKKyt7CisrcmV0dXJuIGYgKGUsIGFy Z3YsIDApICE9IGFyZ3ZbMF0gIHx8ICBmIChlLCBhcmd2LCAxKSAhPSBhcmd2WzFdOworKyAgOwor KyAgcmV0dXJuIDA7CisrfQorK19BQ0VPRgorK2ZvciBhY19hcmcgaW4gJycgLXFsYW5nbHZsPWV4 dGM4OSAtcWxhbmdsdmw9YW5zaSAtc3RkIFwKKysJLUFlICItQWEgLURfSFBVWF9TT1VSQ0UiICIt WGMgLURfX0VYVEVOU0lPTlNfXyIKKytkbworKyAgQ0M9IiRhY19zYXZlX0NDICRhY19hcmciCisr ICBybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0CisraWYgeyAoYWNfdHJ5PSIkYWNfY29tcGlsZSIK KytjYXNlICIoKCRhY190cnkiIGluCisrICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hv PVwkYWNfdHJ5OzsKKysgICopIGFjX3RyeV9lY2hvPSRhY190cnk7OworK2VzYWMKKytldmFsIGFj X3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCisrJGFzX2VjaG8g IiRhY190cnlfZWNobyIpID4mNQorKyAgKGV2YWwgIiRhY19jb21waWxlIikgMj5jb25mdGVzdC5l cjEKKysgIGFjX3N0YXR1cz0kPworKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25m dGVzdC5lcnIKKysgIHJtIC1mIGNvbmZ0ZXN0LmVyMQorKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUK KysgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisrICAo ZXhpdCAkYWNfc3RhdHVzKTsgfSAmJiB7CisrCSB0ZXN0IC16ICIkYWNfY193ZXJyb3JfZmxhZyIg fHwKKysJIHRlc3QgISAtcyBjb25mdGVzdC5lcnIKKysgICAgICAgfSAmJiB0ZXN0IC1zIGNvbmZ0 ZXN0LiRhY19vYmpleHQ7IHRoZW4KKysgIGFjX2N2X3Byb2dfY2NfYzg5PSRhY19hcmcKKytlbHNl CisrICAkYXNfZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKKytzZWQgJ3Mv Xi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1CisrCisrCisrZmkKKysKKytybSAtZiBjb3JlIGNv bmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0CisrICB0ZXN0ICJ4JGFjX2N2X3Byb2dfY2Nf Yzg5IiAhPSAieG5vIiAmJiBicmVhaworK2RvbmUKKytybSAtZiBjb25mdGVzdC4kYWNfZXh0Cisr Q0M9JGFjX3NhdmVfQ0MKKysKKytmaQorKyMgQUNfQ0FDSEVfVkFMCisrY2FzZSAieCRhY19jdl9w cm9nX2NjX2M4OSIgaW4KKysgIHgpCisrICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBy ZXN1bHQ6IG5vbmUgbmVlZGVkIiA+JjUKKyskYXNfZWNobyAibm9uZSBuZWVkZWQiID4mNjsgfSA7 OworKyAgeG5vKQorKyAgICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiB1bnN1 cHBvcnRlZCIgPiY1CisrJGFzX2VjaG8gInVuc3VwcG9ydGVkIiA+JjY7IH0gOzsKKysgICopCisr ICAgIENDPSIkQ0MgJGFjX2N2X3Byb2dfY2NfYzg5IgorKyAgICB7ICRhc19lY2hvICIkYXNfbWU6 JExJTkVOTzogcmVzdWx0OiAkYWNfY3ZfcHJvZ19jY19jODkiID4mNQorKyRhc19lY2hvICIkYWNf Y3ZfcHJvZ19jY19jODkiID4mNjsgfSA7OworK2VzYWMKKysKKysKKythY19leHQ9YworK2FjX2Nw cD0nJENQUCAkQ1BQRkxBR1MnCisrYWNfY29tcGlsZT0nJENDIC1jICRDRkxBR1MgJENQUEZMQUdT IGNvbmZ0ZXN0LiRhY19leHQgPiY1JworK2FjX2xpbms9JyRDQyAtbyBjb25mdGVzdCRhY19leGVl eHQgJENGTEFHUyAkQ1BQRkxBR1MgJExERkxBR1MgY29uZnRlc3QuJGFjX2V4dCAkTElCUyA+JjUn CisrYWNfY29tcGlsZXJfZ251PSRhY19jdl9jX2NvbXBpbGVyX2dudQorKworK2RlcGNjPSIkQ0Mi ICAgYW1fY29tcGlsZXJfbGlzdD0KKysKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hl Y2tpbmcgZGVwZW5kZW5jeSBzdHlsZSBvZiAkZGVwY2MiID4mNQorKyRhc19lY2hvX24gImNoZWNr aW5nIGRlcGVuZGVuY3kgc3R5bGUgb2YgJGRlcGNjLi4uICIgPiY2OyB9CisraWYgdGVzdCAiJHth bV9jdl9DQ19kZXBlbmRlbmNpZXNfY29tcGlsZXJfdHlwZStzZXR9IiA9IHNldDsgdGhlbgorKyAg JGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKKytlbHNlCisrICBpZiB0ZXN0IC16ICIkQU1ERVBf VFJVRSIgJiYgdGVzdCAtZiAiJGFtX2RlcGNvbXAiOyB0aGVuCisrICAjIFdlIG1ha2UgYSBzdWJk aXIgYW5kIGRvIHRoZSB0ZXN0cyB0aGVyZS4gIE90aGVyd2lzZSB3ZSBjYW4gZW5kIHVwCisrICAj IG1ha2luZyBib2d1cyBmaWxlcyB0aGF0IHdlIGRvbid0IGtub3cgYWJvdXQgYW5kIG5ldmVyIHJl bW92ZS4gIEZvcgorKyAgIyBpbnN0YW5jZSBpdCB3YXMgcmVwb3J0ZWQgdGhhdCBvbiBIUC1VWCB0 aGUgZ2NjIHRlc3Qgd2lsbCBlbmQgdXAKKysgICMgbWFraW5nIGEgZHVtbXkgZmlsZSBuYW1lZCBg RCcgLS0gYmVjYXVzZSBgLU1EJyBtZWFucyBgcHV0IHRoZSBvdXRwdXQKKysgICMgaW4gRCcuCisr ICBta2RpciBjb25mdGVzdC5kaXIKKysgICMgQ29weSBkZXBjb21wIHRvIHN1YmRpciBiZWNhdXNl IG90aGVyd2lzZSB3ZSB3b24ndCBmaW5kIGl0IGlmIHdlJ3JlCisrICAjIHVzaW5nIGEgcmVsYXRp dmUgZGlyZWN0b3J5LgorKyAgY3AgIiRhbV9kZXBjb21wIiBjb25mdGVzdC5kaXIKKysgIGNkIGNv bmZ0ZXN0LmRpcgorKyAgIyBXZSB3aWxsIGJ1aWxkIG9iamVjdHMgYW5kIGRlcGVuZGVuY2llcyBp biBhIHN1YmRpcmVjdG9yeSBiZWNhdXNlCisrICAjIGl0IGhlbHBzIHRvIGRldGVjdCBpbmFwcGxp Y2FibGUgZGVwZW5kZW5jeSBtb2Rlcy4gIEZvciBpbnN0YW5jZQorKyAgIyBib3RoIFRydTY0J3Mg Y2MgYW5kIElDQyBzdXBwb3J0IC1NRCB0byBvdXRwdXQgZGVwZW5kZW5jaWVzIGFzIGEKKysgICMg c2lkZSBlZmZlY3Qgb2YgY29tcGlsYXRpb24sIGJ1dCBJQ0Mgd2lsbCBwdXQgdGhlIGRlcGVuZGVu Y2llcyBpbgorKyAgIyB0aGUgY3VycmVudCBkaXJlY3Rvcnkgd2hpbGUgVHJ1NjQgd2lsbCBwdXQg dGhlbSBpbiB0aGUgb2JqZWN0CisrICAjIGRpcmVjdG9yeS4KKysgIG1rZGlyIHN1YgorKworKyAg YW1fY3ZfQ0NfZGVwZW5kZW5jaWVzX2NvbXBpbGVyX3R5cGU9bm9uZQorKyAgaWYgdGVzdCAiJGFt X2NvbXBpbGVyX2xpc3QiID0gIiI7IHRoZW4KKysgICAgIGFtX2NvbXBpbGVyX2xpc3Q9YHNlZCAt biAncy9eIypcKFthLXpBLVowLTldKlwpKSQvXDEvcCcgPCAuL2RlcGNvbXBgCisrICBmaQorKyAg YW1fX3VuaXZlcnNhbD1mYWxzZQorKyAgY2FzZSAiICRkZXBjYyAiIGluICMoCisrICAgICAqXCAt YXJjaFwgKlwgLWFyY2hcICopIGFtX191bml2ZXJzYWw9dHJ1ZSA7OworKyAgICAgZXNhYworKwor KyAgZm9yIGRlcG1vZGUgaW4gJGFtX2NvbXBpbGVyX2xpc3Q7IGRvCisrICAgICMgU2V0dXAgYSBz b3VyY2Ugd2l0aCBtYW55IGRlcGVuZGVuY2llcywgYmVjYXVzZSBzb21lIGNvbXBpbGVycworKyAg ICAjIGxpa2UgdG8gd3JhcCBsYXJnZSBkZXBlbmRlbmN5IGxpc3RzIG9uIGNvbHVtbiA4MCAod2l0 aCBcKSwgYW5kCisrICAgICMgd2Ugc2hvdWxkIG5vdCBjaG9vc2UgYSBkZXBjb21wIG1vZGUgd2hp Y2ggaXMgY29uZnVzZWQgYnkgdGhpcy4KKysgICAgIworKyAgICAjIFdlIG5lZWQgdG8gcmVjcmVh dGUgdGhlc2UgZmlsZXMgZm9yIGVhY2ggdGVzdCwgYXMgdGhlIGNvbXBpbGVyIG1heQorKyAgICAj IG92ZXJ3cml0ZSBzb21lIG9mIHRoZW0gd2hlbiB0ZXN0aW5nIHdpdGggb2JzY3VyZSBjb21tYW5k IGxpbmVzLgorKyAgICAjIFRoaXMgaGFwcGVucyBhdCBsZWFzdCB3aXRoIHRoZSBBSVggQyBjb21w aWxlci4KKysgICAgOiA+IHN1Yi9jb25mdGVzdC5jCisrICAgIGZvciBpIGluIDEgMiAzIDQgNSA2 OyBkbworKyAgICAgIGVjaG8gJyNpbmNsdWRlICJjb25mdHN0JyRpJy5oIicgPj4gc3ViL2NvbmZ0 ZXN0LmMKKysgICAgICAjIFVzaW5nIGA6ID4gc3ViL2NvbmZ0c3QkaS5oJyBjcmVhdGVzIG9ubHkg c3ViL2NvbmZ0c3QxLmggd2l0aAorKyAgICAgICMgU29sYXJpcyA4J3Mgey91c3IsfS9iaW4vc2gu CisrICAgICAgdG91Y2ggc3ViL2NvbmZ0c3QkaS5oCisrICAgIGRvbmUKKysgICAgZWNobyAiJHth bV9faW5jbHVkZX0gJHthbV9fcXVvdGV9c3ViL2NvbmZ0ZXN0LlBvJHthbV9fcXVvdGV9IiA+IGNv bmZtZgorKworKyAgICAjIFdlIGNoZWNrIHdpdGggYC1jJyBhbmQgYC1vJyBmb3IgdGhlIHNha2Ug b2YgdGhlICJkYXNobXN0ZG91dCIKKysgICAgIyBtb2RlLiAgSXQgdHVybnMgb3V0IHRoYXQgdGhl IFN1blBybyBDKysgY29tcGlsZXIgZG9lcyBub3QgcHJvcGVybHkKKysgICAgIyBoYW5kbGUgYC1N IC1vJywgYW5kIHdlIG5lZWQgdG8gZGV0ZWN0IHRoaXMuICBBbHNvLCBzb21lIEludGVsCisrICAg ICMgdmVyc2lvbnMgaGFkIHRyb3VibGUgd2l0aCBvdXRwdXQgaW4gc3ViZGlycworKyAgICBhbV9f b2JqPXN1Yi9jb25mdGVzdC4ke09CSkVYVC1vfQorKyAgICBhbV9fbWludXNfb2JqPSItbyAkYW1f X29iaiIKKysgICAgY2FzZSAkZGVwbW9kZSBpbgorKyAgICBnY2MpCisrICAgICAgIyBUaGlzIGRl cG1vZGUgY2F1c2VzIGEgY29tcGlsZXIgcmFjZSBpbiB1bml2ZXJzYWwgbW9kZS4KKysgICAgICB0 ZXN0ICIkYW1fX3VuaXZlcnNhbCIgPSBmYWxzZSB8fCBjb250aW51ZQorKyAgICAgIDs7CisrICAg IG5vc2lkZWVmZmVjdCkKKysgICAgICAjIGFmdGVyIHRoaXMgdGFnLCBtZWNoYW5pc21zIGFyZSBu b3QgYnkgc2lkZS1lZmZlY3QsIHNvIHRoZXknbGwKKysgICAgICAjIG9ubHkgYmUgdXNlZCB3aGVu IGV4cGxpY2l0bHkgcmVxdWVzdGVkCisrICAgICAgaWYgdGVzdCAieCRlbmFibGVfZGVwZW5kZW5j eV90cmFja2luZyIgPSB4eWVzOyB0aGVuCisrCWNvbnRpbnVlCisrICAgICAgZWxzZQorKwlicmVh aworKyAgICAgIGZpCisrICAgICAgOzsKKysgICAgbXN2aXN1YWxjcHAgfCBtc3ZjbXN5cykKKysg ICAgICAjIFRoaXMgY29tcGlsZXIgd29uJ3QgZ3JvayBgLWMgLW8nLCBidXQgYWxzbywgdGhlIG1p bnVzbyB0ZXN0IGhhcworKyAgICAgICMgbm90IHJ1biB5ZXQuICBUaGVzZSBkZXBtb2RlcyBhcmUg bGF0ZSBlbm91Z2ggaW4gdGhlIGdhbWUsIGFuZAorKyAgICAgICMgc28gd2VhayB0aGF0IHRoZWly IGZ1bmN0aW9uaW5nIHNob3VsZCBub3QgYmUgaW1wYWN0ZWQuCisrICAgICAgYW1fX29iaj1jb25m dGVzdC4ke09CSkVYVC1vfQorKyAgICAgIGFtX19taW51c19vYmo9CisrICAgICAgOzsKKysgICAg bm9uZSkgYnJlYWsgOzsKKysgICAgZXNhYworKyAgICBpZiBkZXBtb2RlPSRkZXBtb2RlIFwKKysg ICAgICAgc291cmNlPXN1Yi9jb25mdGVzdC5jIG9iamVjdD0kYW1fX29iaiBcCisrICAgICAgIGRl cGZpbGU9c3ViL2NvbmZ0ZXN0LlBvIHRtcGRlcGZpbGU9c3ViL2NvbmZ0ZXN0LlRQbyBcCisrICAg ICAgICRTSEVMTCAuL2RlcGNvbXAgJGRlcGNjIC1jICRhbV9fbWludXNfb2JqIHN1Yi9jb25mdGVz dC5jIFwKKysgICAgICAgICA+L2Rldi9udWxsIDI+Y29uZnRlc3QuZXJyICYmCisrICAgICAgIGdy ZXAgc3ViL2NvbmZ0c3QxLmggc3ViL2NvbmZ0ZXN0LlBvID4gL2Rldi9udWxsIDI+JjEgJiYKKysg ICAgICAgZ3JlcCBzdWIvY29uZnRzdDYuaCBzdWIvY29uZnRlc3QuUG8gPiAvZGV2L251bGwgMj4m MSAmJgorKyAgICAgICBncmVwICRhbV9fb2JqIHN1Yi9jb25mdGVzdC5QbyA+IC9kZXYvbnVsbCAy PiYxICYmCisrICAgICAgICR7TUFLRS1tYWtlfSAtcyAtZiBjb25mbWYgPiAvZGV2L251bGwgMj4m MTsgdGhlbgorKyAgICAgICMgaWNjIGRvZXNuJ3QgY2hva2Ugb24gdW5rbm93biBvcHRpb25zLCBp dCB3aWxsIGp1c3QgaXNzdWUgd2FybmluZ3MKKysgICAgICAjIG9yIHJlbWFya3MgKGV2ZW4gd2l0 aCAtV2Vycm9yKS4gIFNvIHdlIGdyZXAgc3RkZXJyIGZvciBhbnkgbWVzc2FnZQorKyAgICAgICMg dGhhdCBzYXlzIGFuIG9wdGlvbiB3YXMgaWdub3JlZCBvciBub3Qgc3VwcG9ydGVkLgorKyAgICAg ICMgV2hlbiBnaXZlbiAtTVAsIGljYyA3LjAgYW5kIDcuMSBjb21wbGFpbiB0aHVzbHk6CisrICAg ICAgIyAgIGljYzogQ29tbWFuZCBsaW5lIHdhcm5pbmc6IGlnbm9yaW5nIG9wdGlvbiAnLU0nOyBu byBhcmd1bWVudCByZXF1aXJlZAorKyAgICAgICMgVGhlIGRpYWdub3NpcyBjaGFuZ2VkIGluIGlj YyA4LjA6CisrICAgICAgIyAgIGljYzogQ29tbWFuZCBsaW5lIHJlbWFyazogb3B0aW9uICctTVAn IG5vdCBzdXBwb3J0ZWQKKysgICAgICBpZiAoZ3JlcCAnaWdub3Jpbmcgb3B0aW9uJyBjb25mdGVz dC5lcnIgfHwKKysgICAgICAgICAgZ3JlcCAnbm90IHN1cHBvcnRlZCcgY29uZnRlc3QuZXJyKSA+ L2Rldi9udWxsIDI+JjE7IHRoZW4gOjsgZWxzZQorKyAgICAgICAgYW1fY3ZfQ0NfZGVwZW5kZW5j aWVzX2NvbXBpbGVyX3R5cGU9JGRlcG1vZGUKKysgICAgICAgIGJyZWFrCisrICAgICAgZmkKKysg ICAgZmkKKysgIGRvbmUKKysKKysgIGNkIC4uCisrICBybSAtcmYgY29uZnRlc3QuZGlyCisrZWxz ZQorKyAgYW1fY3ZfQ0NfZGVwZW5kZW5jaWVzX2NvbXBpbGVyX3R5cGU9bm9uZQorK2ZpCisrCisr ZmkKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYW1fY3ZfQ0NfZGVwZW5k ZW5jaWVzX2NvbXBpbGVyX3R5cGUiID4mNQorKyRhc19lY2hvICIkYW1fY3ZfQ0NfZGVwZW5kZW5j aWVzX2NvbXBpbGVyX3R5cGUiID4mNjsgfQorK0NDREVQTU9ERT1kZXBtb2RlPSRhbV9jdl9DQ19k ZXBlbmRlbmNpZXNfY29tcGlsZXJfdHlwZQorKworKyBpZgorKyAgdGVzdCAieCRlbmFibGVfZGVw ZW5kZW5jeV90cmFja2luZyIgIT0geG5vIFwKKysgICYmIHRlc3QgIiRhbV9jdl9DQ19kZXBlbmRl bmNpZXNfY29tcGlsZXJfdHlwZSIgPSBnY2MzOyB0aGVuCisrICBhbV9fZmFzdGRlcENDX1RSVUU9 CisrICBhbV9fZmFzdGRlcENDX0ZBTFNFPScjJworK2Vsc2UKKysgIGFtX19mYXN0ZGVwQ0NfVFJV RT0nIycKKysgIGFtX19mYXN0ZGVwQ0NfRkFMU0U9CisrZmkKKysKKysKKyt7ICRhc19lY2hvICIk YXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIGEgc2VkIHRoYXQgZG9lcyBub3QgdHJ1bmNhdGUg b3V0cHV0IiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyBmb3IgYSBzZWQgdGhhdCBkb2VzIG5v dCB0cnVuY2F0ZSBvdXRwdXQuLi4gIiA+JjY7IH0KKytpZiB0ZXN0ICIke2FjX2N2X3BhdGhfU0VE K3NldH0iID0gc2V0OyB0aGVuCisrICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UK KysgICAgICAgICAgICBhY19zY3JpcHQ9cy9hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh YWFhYS9iYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmIvCisrICAgICBmb3IgYWNfaSBp biAxIDIgMyA0IDUgNiA3OyBkbworKyAgICAgICBhY19zY3JpcHQ9IiRhY19zY3JpcHQkYXNfbmwk YWNfc2NyaXB0IgorKyAgICAgZG9uZQorKyAgICAgZWNobyAiJGFjX3NjcmlwdCIgMj4vZGV2L251 bGwgfCBzZWQgOTlxID5jb25mdGVzdC5zZWQKKysgICAgICRhc191bnNldCBhY19zY3JpcHQgfHwg YWNfc2NyaXB0PQorKyAgICAgaWYgdGVzdCAteiAiJFNFRCI7IHRoZW4KKysgIGFjX3BhdGhfU0VE X2ZvdW5kPWZhbHNlCisrICAjIExvb3AgdGhyb3VnaCB0aGUgdXNlcidzIHBhdGggYW5kIHRlc3Qg Zm9yIGVhY2ggb2YgUFJPR05BTUUtTElTVAorKyAgYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRI X1NFUEFSQVRPUgorK2ZvciBhc19kaXIgaW4gJFBBVEgKKytkbworKyAgSUZTPSRhc19zYXZlX0lG UworKyAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KKysgIGZvciBhY19wcm9nIGluIHNl ZCBnc2VkOyBkbworKyAgICBmb3IgYWNfZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1dGFibGVfZXh0 ZW5zaW9uczsgZG8KKysgICAgICBhY19wYXRoX1NFRD0iJGFzX2Rpci8kYWNfcHJvZyRhY19leGVj X2V4dCIKKysgICAgICB7IHRlc3QgLWYgIiRhY19wYXRoX1NFRCIgJiYgJGFzX3Rlc3RfeCAiJGFj X3BhdGhfU0VEIjsgfSB8fCBjb250aW51ZQorKyMgQ2hlY2sgZm9yIEdOVSBhY19wYXRoX1NFRCBh bmQgc2VsZWN0IGl0IGlmIGl0IGlzIGZvdW5kLgorKyAgIyBDaGVjayBmb3IgR05VICRhY19wYXRo X1NFRAorK2Nhc2UgYCIkYWNfcGF0aF9TRUQiIC0tdmVyc2lvbiAyPiYxYCBpbgorKypHTlUqKQor KyAgYWNfY3ZfcGF0aF9TRUQ9IiRhY19wYXRoX1NFRCIgYWNfcGF0aF9TRURfZm91bmQ9Ojs7Cisr KikKKysgIGFjX2NvdW50PTAKKysgICRhc19lY2hvX24gMDEyMzQ1Njc4OSA+ImNvbmZ0ZXN0Lmlu IgorKyAgd2hpbGUgOgorKyAgZG8KKysgICAgY2F0ICJjb25mdGVzdC5pbiIgImNvbmZ0ZXN0Lmlu IiA+ImNvbmZ0ZXN0LnRtcCIKKysgICAgbXYgImNvbmZ0ZXN0LnRtcCIgImNvbmZ0ZXN0LmluIgor KyAgICBjcCAiY29uZnRlc3QuaW4iICJjb25mdGVzdC5ubCIKKysgICAgJGFzX2VjaG8gJycgPj4g ImNvbmZ0ZXN0Lm5sIgorKyAgICAiJGFjX3BhdGhfU0VEIiAtZiBjb25mdGVzdC5zZWQgPCAiY29u ZnRlc3QubmwiID4iY29uZnRlc3Qub3V0IiAyPi9kZXYvbnVsbCB8fCBicmVhaworKyAgICBkaWZm ICJjb25mdGVzdC5vdXQiICJjb25mdGVzdC5ubCIgPi9kZXYvbnVsbCAyPiYxIHx8IGJyZWFrCisr ICAgIGFjX2NvdW50PWBleHByICRhY19jb3VudCArIDFgCisrICAgIGlmIHRlc3QgJGFjX2NvdW50 IC1ndCAke2FjX3BhdGhfU0VEX21heC0wfTsgdGhlbgorKyAgICAgICMgQmVzdCBvbmUgc28gZmFy LCBzYXZlIGl0IGJ1dCBrZWVwIGxvb2tpbmcgZm9yIGEgYmV0dGVyIG9uZQorKyAgICAgIGFjX2N2 X3BhdGhfU0VEPSIkYWNfcGF0aF9TRUQiCisrICAgICAgYWNfcGF0aF9TRURfbWF4PSRhY19jb3Vu dAorKyAgICBmaQorKyAgICAjIDEwKigyXjEwKSBjaGFycyBhcyBpbnB1dCBzZWVtcyBtb3JlIHRo YW4gZW5vdWdoCisrICAgIHRlc3QgJGFjX2NvdW50IC1ndCAxMCAmJiBicmVhaworKyAgZG9uZQor KyAgcm0gLWYgY29uZnRlc3QuaW4gY29uZnRlc3QudG1wIGNvbmZ0ZXN0Lm5sIGNvbmZ0ZXN0Lm91 dDs7CisrZXNhYworKworKyAgICAgICRhY19wYXRoX1NFRF9mb3VuZCAmJiBicmVhayAzCisrICAg IGRvbmUKKysgIGRvbmUKKytkb25lCisrSUZTPSRhc19zYXZlX0lGUworKyAgaWYgdGVzdCAteiAi JGFjX2N2X3BhdGhfU0VEIjsgdGhlbgorKyAgICB7IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5P OiBlcnJvcjogbm8gYWNjZXB0YWJsZSBzZWQgY291bGQgYmUgZm91bmQgaW4gXCRQQVRIIiA+JjUK KyskYXNfZWNobyAiJGFzX21lOiBlcnJvcjogbm8gYWNjZXB0YWJsZSBzZWQgY291bGQgYmUgZm91 bmQgaW4gXCRQQVRIIiA+JjI7fQorKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQorKyAgZmkK KytlbHNlCisrICBhY19jdl9wYXRoX1NFRD0kU0VECisrZmkKKysKKytmaQorK3sgJGFzX2VjaG8g IiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19jdl9wYXRoX1NFRCIgPiY1CisrJGFzX2VjaG8g IiRhY19jdl9wYXRoX1NFRCIgPiY2OyB9CisrIFNFRD0iJGFjX2N2X3BhdGhfU0VEIgorKyAgcm0g LWYgY29uZnRlc3Quc2VkCisrCisrdGVzdCAteiAiJFNFRCIgJiYgU0VEPXNlZAorK1hzZWQ9IiRT RUQgLWUgMXMvXlgvLyIKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKyt7ICRhc19l Y2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIGdyZXAgdGhhdCBoYW5kbGVzIGxvbmcg bGluZXMgYW5kIC1lIiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyBmb3IgZ3JlcCB0aGF0IGhh bmRsZXMgbG9uZyBsaW5lcyBhbmQgLWUuLi4gIiA+JjY7IH0KKytpZiB0ZXN0ICIke2FjX2N2X3Bh dGhfR1JFUCtzZXR9IiA9IHNldDsgdGhlbgorKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYK KytlbHNlCisrICBpZiB0ZXN0IC16ICIkR1JFUCI7IHRoZW4KKysgIGFjX3BhdGhfR1JFUF9mb3Vu ZD1mYWxzZQorKyAgIyBMb29wIHRocm91Z2ggdGhlIHVzZXIncyBwYXRoIGFuZCB0ZXN0IGZvciBl YWNoIG9mIFBST0dOQU1FLUxJU1QKKysgIGFzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBB UkFUT1IKKytmb3IgYXNfZGlyIGluICRQQVRIJFBBVEhfU0VQQVJBVE9SL3Vzci94cGc0L2Jpbgor K2RvCisrICBJRlM9JGFzX3NhdmVfSUZTCisrICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9 LgorKyAgZm9yIGFjX3Byb2cgaW4gZ3JlcCBnZ3JlcDsgZG8KKysgICAgZm9yIGFjX2V4ZWNfZXh0 IGluICcnICRhY19leGVjdXRhYmxlX2V4dGVuc2lvbnM7IGRvCisrICAgICAgYWNfcGF0aF9HUkVQ PSIkYXNfZGlyLyRhY19wcm9nJGFjX2V4ZWNfZXh0IgorKyAgICAgIHsgdGVzdCAtZiAiJGFjX3Bh dGhfR1JFUCIgJiYgJGFzX3Rlc3RfeCAiJGFjX3BhdGhfR1JFUCI7IH0gfHwgY29udGludWUKKysj IENoZWNrIGZvciBHTlUgYWNfcGF0aF9HUkVQIGFuZCBzZWxlY3QgaXQgaWYgaXQgaXMgZm91bmQu CisrICAjIENoZWNrIGZvciBHTlUgJGFjX3BhdGhfR1JFUAorK2Nhc2UgYCIkYWNfcGF0aF9HUkVQ IiAtLXZlcnNpb24gMj4mMWAgaW4KKysqR05VKikKKysgIGFjX2N2X3BhdGhfR1JFUD0iJGFjX3Bh dGhfR1JFUCIgYWNfcGF0aF9HUkVQX2ZvdW5kPTo7OworKyopCisrICBhY19jb3VudD0wCisrICAk YXNfZWNob19uIDAxMjM0NTY3ODkgPiJjb25mdGVzdC5pbiIKKysgIHdoaWxlIDoKKysgIGRvCisr ICAgIGNhdCAiY29uZnRlc3QuaW4iICJjb25mdGVzdC5pbiIgPiJjb25mdGVzdC50bXAiCisrICAg IG12ICJjb25mdGVzdC50bXAiICJjb25mdGVzdC5pbiIKKysgICAgY3AgImNvbmZ0ZXN0LmluIiAi Y29uZnRlc3QubmwiCisrICAgICRhc19lY2hvICdHUkVQJyA+PiAiY29uZnRlc3QubmwiCisrICAg ICIkYWNfcGF0aF9HUkVQIiAtZSAnR1JFUCQnIC1lICctKGNhbm5vdCBtYXRjaCktJyA8ICJjb25m dGVzdC5ubCIgPiJjb25mdGVzdC5vdXQiIDI+L2Rldi9udWxsIHx8IGJyZWFrCisrICAgIGRpZmYg ImNvbmZ0ZXN0Lm91dCIgImNvbmZ0ZXN0Lm5sIiA+L2Rldi9udWxsIDI+JjEgfHwgYnJlYWsKKysg ICAgYWNfY291bnQ9YGV4cHIgJGFjX2NvdW50ICsgMWAKKysgICAgaWYgdGVzdCAkYWNfY291bnQg LWd0ICR7YWNfcGF0aF9HUkVQX21heC0wfTsgdGhlbgorKyAgICAgICMgQmVzdCBvbmUgc28gZmFy LCBzYXZlIGl0IGJ1dCBrZWVwIGxvb2tpbmcgZm9yIGEgYmV0dGVyIG9uZQorKyAgICAgIGFjX2N2 X3BhdGhfR1JFUD0iJGFjX3BhdGhfR1JFUCIKKysgICAgICBhY19wYXRoX0dSRVBfbWF4PSRhY19j b3VudAorKyAgICBmaQorKyAgICAjIDEwKigyXjEwKSBjaGFycyBhcyBpbnB1dCBzZWVtcyBtb3Jl IHRoYW4gZW5vdWdoCisrICAgIHRlc3QgJGFjX2NvdW50IC1ndCAxMCAmJiBicmVhaworKyAgZG9u ZQorKyAgcm0gLWYgY29uZnRlc3QuaW4gY29uZnRlc3QudG1wIGNvbmZ0ZXN0Lm5sIGNvbmZ0ZXN0 Lm91dDs7CisrZXNhYworKworKyAgICAgICRhY19wYXRoX0dSRVBfZm91bmQgJiYgYnJlYWsgMwor KyAgICBkb25lCisrICBkb25lCisrZG9uZQorK0lGUz0kYXNfc2F2ZV9JRlMKKysgIGlmIHRlc3Qg LXogIiRhY19jdl9wYXRoX0dSRVAiOyB0aGVuCisrICAgIHsgeyAkYXNfZWNobyAiJGFzX21lOiRM SU5FTk86IGVycm9yOiBubyBhY2NlcHRhYmxlIGdyZXAgY291bGQgYmUgZm91bmQgaW4gJFBBVEgk UEFUSF9TRVBBUkFUT1IvdXNyL3hwZzQvYmluIiA+JjUKKyskYXNfZWNobyAiJGFzX21lOiBlcnJv cjogbm8gYWNjZXB0YWJsZSBncmVwIGNvdWxkIGJlIGZvdW5kIGluICRQQVRIJFBBVEhfU0VQQVJB VE9SL3Vzci94cGc0L2JpbiIgPiYyO30KKysgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KKysg IGZpCisrZWxzZQorKyAgYWNfY3ZfcGF0aF9HUkVQPSRHUkVQCisrZmkKKysKKytmaQorK3sgJGFz X2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19jdl9wYXRoX0dSRVAiID4mNQorKyRh c19lY2hvICIkYWNfY3ZfcGF0aF9HUkVQIiA+JjY7IH0KKysgR1JFUD0iJGFjX2N2X3BhdGhfR1JF UCIKKysKKysKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIGVncmVw IiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyBmb3IgZWdyZXAuLi4gIiA+JjY7IH0KKytpZiB0 ZXN0ICIke2FjX2N2X3BhdGhfRUdSRVArc2V0fSIgPSBzZXQ7IHRoZW4KKysgICRhc19lY2hvX24g IihjYWNoZWQpICIgPiY2CisrZWxzZQorKyAgaWYgZWNobyBhIHwgJEdSRVAgLUUgJyhhfGIpJyA+ L2Rldi9udWxsIDI+JjEKKysgICB0aGVuIGFjX2N2X3BhdGhfRUdSRVA9IiRHUkVQIC1FIgorKyAg IGVsc2UKKysgICAgIGlmIHRlc3QgLXogIiRFR1JFUCI7IHRoZW4KKysgIGFjX3BhdGhfRUdSRVBf Zm91bmQ9ZmFsc2UKKysgICMgTG9vcCB0aHJvdWdoIHRoZSB1c2VyJ3MgcGF0aCBhbmQgdGVzdCBm b3IgZWFjaCBvZiBQUk9HTkFNRS1MSVNUCisrICBhc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhf U0VQQVJBVE9SCisrZm9yIGFzX2RpciBpbiAkUEFUSCRQQVRIX1NFUEFSQVRPUi91c3IveHBnNC9i aW4KKytkbworKyAgSUZTPSRhc19zYXZlX0lGUworKyAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNf ZGlyPS4KKysgIGZvciBhY19wcm9nIGluIGVncmVwOyBkbworKyAgICBmb3IgYWNfZXhlY19leHQg aW4gJycgJGFjX2V4ZWN1dGFibGVfZXh0ZW5zaW9uczsgZG8KKysgICAgICBhY19wYXRoX0VHUkVQ PSIkYXNfZGlyLyRhY19wcm9nJGFjX2V4ZWNfZXh0IgorKyAgICAgIHsgdGVzdCAtZiAiJGFjX3Bh dGhfRUdSRVAiICYmICRhc190ZXN0X3ggIiRhY19wYXRoX0VHUkVQIjsgfSB8fCBjb250aW51ZQor KyMgQ2hlY2sgZm9yIEdOVSBhY19wYXRoX0VHUkVQIGFuZCBzZWxlY3QgaXQgaWYgaXQgaXMgZm91 bmQuCisrICAjIENoZWNrIGZvciBHTlUgJGFjX3BhdGhfRUdSRVAKKytjYXNlIGAiJGFjX3BhdGhf RUdSRVAiIC0tdmVyc2lvbiAyPiYxYCBpbgorKypHTlUqKQorKyAgYWNfY3ZfcGF0aF9FR1JFUD0i JGFjX3BhdGhfRUdSRVAiIGFjX3BhdGhfRUdSRVBfZm91bmQ9Ojs7CisrKikKKysgIGFjX2NvdW50 PTAKKysgICRhc19lY2hvX24gMDEyMzQ1Njc4OSA+ImNvbmZ0ZXN0LmluIgorKyAgd2hpbGUgOgor KyAgZG8KKysgICAgY2F0ICJjb25mdGVzdC5pbiIgImNvbmZ0ZXN0LmluIiA+ImNvbmZ0ZXN0LnRt cCIKKysgICAgbXYgImNvbmZ0ZXN0LnRtcCIgImNvbmZ0ZXN0LmluIgorKyAgICBjcCAiY29uZnRl c3QuaW4iICJjb25mdGVzdC5ubCIKKysgICAgJGFzX2VjaG8gJ0VHUkVQJyA+PiAiY29uZnRlc3Qu bmwiCisrICAgICIkYWNfcGF0aF9FR1JFUCIgJ0VHUkVQJCcgPCAiY29uZnRlc3QubmwiID4iY29u ZnRlc3Qub3V0IiAyPi9kZXYvbnVsbCB8fCBicmVhaworKyAgICBkaWZmICJjb25mdGVzdC5vdXQi ICJjb25mdGVzdC5ubCIgPi9kZXYvbnVsbCAyPiYxIHx8IGJyZWFrCisrICAgIGFjX2NvdW50PWBl eHByICRhY19jb3VudCArIDFgCisrICAgIGlmIHRlc3QgJGFjX2NvdW50IC1ndCAke2FjX3BhdGhf RUdSRVBfbWF4LTB9OyB0aGVuCisrICAgICAgIyBCZXN0IG9uZSBzbyBmYXIsIHNhdmUgaXQgYnV0 IGtlZXAgbG9va2luZyBmb3IgYSBiZXR0ZXIgb25lCisrICAgICAgYWNfY3ZfcGF0aF9FR1JFUD0i JGFjX3BhdGhfRUdSRVAiCisrICAgICAgYWNfcGF0aF9FR1JFUF9tYXg9JGFjX2NvdW50CisrICAg IGZpCisrICAgICMgMTAqKDJeMTApIGNoYXJzIGFzIGlucHV0IHNlZW1zIG1vcmUgdGhhbiBlbm91 Z2gKKysgICAgdGVzdCAkYWNfY291bnQgLWd0IDEwICYmIGJyZWFrCisrICBkb25lCisrICBybSAt ZiBjb25mdGVzdC5pbiBjb25mdGVzdC50bXAgY29uZnRlc3QubmwgY29uZnRlc3Qub3V0OzsKKytl c2FjCisrCisrICAgICAgJGFjX3BhdGhfRUdSRVBfZm91bmQgJiYgYnJlYWsgMworKyAgICBkb25l CisrICBkb25lCisrZG9uZQorK0lGUz0kYXNfc2F2ZV9JRlMKKysgIGlmIHRlc3QgLXogIiRhY19j dl9wYXRoX0VHUkVQIjsgdGhlbgorKyAgICB7IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBl cnJvcjogbm8gYWNjZXB0YWJsZSBlZ3JlcCBjb3VsZCBiZSBmb3VuZCBpbiAkUEFUSCRQQVRIX1NF UEFSQVRPUi91c3IveHBnNC9iaW4iID4mNQorKyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBubyBh Y2NlcHRhYmxlIGVncmVwIGNvdWxkIGJlIGZvdW5kIGluICRQQVRIJFBBVEhfU0VQQVJBVE9SL3Vz ci94cGc0L2JpbiIgPiYyO30KKysgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KKysgIGZpCisr ZWxzZQorKyAgYWNfY3ZfcGF0aF9FR1JFUD0kRUdSRVAKKytmaQorKworKyAgIGZpCisrZmkKKyt7 ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3ZfcGF0aF9FR1JFUCIgPiY1 CisrJGFzX2VjaG8gIiRhY19jdl9wYXRoX0VHUkVQIiA+JjY7IH0KKysgRUdSRVA9IiRhY19jdl9w YXRoX0VHUkVQIgorKworKworK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBm b3IgZmdyZXAiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIGZvciBmZ3JlcC4uLiAiID4mNjsg fQorK2lmIHRlc3QgIiR7YWNfY3ZfcGF0aF9GR1JFUCtzZXR9IiA9IHNldDsgdGhlbgorKyAgJGFz X2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKKytlbHNlCisrICBpZiBlY2hvICdhYipjJyB8ICRHUkVQ IC1GICdhYipjJyA+L2Rldi9udWxsIDI+JjEKKysgICB0aGVuIGFjX2N2X3BhdGhfRkdSRVA9IiRH UkVQIC1GIgorKyAgIGVsc2UKKysgICAgIGlmIHRlc3QgLXogIiRGR1JFUCI7IHRoZW4KKysgIGFj X3BhdGhfRkdSRVBfZm91bmQ9ZmFsc2UKKysgICMgTG9vcCB0aHJvdWdoIHRoZSB1c2VyJ3MgcGF0 aCBhbmQgdGVzdCBmb3IgZWFjaCBvZiBQUk9HTkFNRS1MSVNUCisrICBhc19zYXZlX0lGUz0kSUZT OyBJRlM9JFBBVEhfU0VQQVJBVE9SCisrZm9yIGFzX2RpciBpbiAkUEFUSCRQQVRIX1NFUEFSQVRP Ui91c3IveHBnNC9iaW4KKytkbworKyAgSUZTPSRhc19zYXZlX0lGUworKyAgdGVzdCAteiAiJGFz X2RpciIgJiYgYXNfZGlyPS4KKysgIGZvciBhY19wcm9nIGluIGZncmVwOyBkbworKyAgICBmb3Ig YWNfZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1dGFibGVfZXh0ZW5zaW9uczsgZG8KKysgICAgICBh Y19wYXRoX0ZHUkVQPSIkYXNfZGlyLyRhY19wcm9nJGFjX2V4ZWNfZXh0IgorKyAgICAgIHsgdGVz dCAtZiAiJGFjX3BhdGhfRkdSRVAiICYmICRhc190ZXN0X3ggIiRhY19wYXRoX0ZHUkVQIjsgfSB8 fCBjb250aW51ZQorKyMgQ2hlY2sgZm9yIEdOVSBhY19wYXRoX0ZHUkVQIGFuZCBzZWxlY3QgaXQg aWYgaXQgaXMgZm91bmQuCisrICAjIENoZWNrIGZvciBHTlUgJGFjX3BhdGhfRkdSRVAKKytjYXNl IGAiJGFjX3BhdGhfRkdSRVAiIC0tdmVyc2lvbiAyPiYxYCBpbgorKypHTlUqKQorKyAgYWNfY3Zf cGF0aF9GR1JFUD0iJGFjX3BhdGhfRkdSRVAiIGFjX3BhdGhfRkdSRVBfZm91bmQ9Ojs7CisrKikK KysgIGFjX2NvdW50PTAKKysgICRhc19lY2hvX24gMDEyMzQ1Njc4OSA+ImNvbmZ0ZXN0LmluIgor KyAgd2hpbGUgOgorKyAgZG8KKysgICAgY2F0ICJjb25mdGVzdC5pbiIgImNvbmZ0ZXN0LmluIiA+ ImNvbmZ0ZXN0LnRtcCIKKysgICAgbXYgImNvbmZ0ZXN0LnRtcCIgImNvbmZ0ZXN0LmluIgorKyAg ICBjcCAiY29uZnRlc3QuaW4iICJjb25mdGVzdC5ubCIKKysgICAgJGFzX2VjaG8gJ0ZHUkVQJyA+ PiAiY29uZnRlc3QubmwiCisrICAgICIkYWNfcGF0aF9GR1JFUCIgRkdSRVAgPCAiY29uZnRlc3Qu bmwiID4iY29uZnRlc3Qub3V0IiAyPi9kZXYvbnVsbCB8fCBicmVhaworKyAgICBkaWZmICJjb25m dGVzdC5vdXQiICJjb25mdGVzdC5ubCIgPi9kZXYvbnVsbCAyPiYxIHx8IGJyZWFrCisrICAgIGFj X2NvdW50PWBleHByICRhY19jb3VudCArIDFgCisrICAgIGlmIHRlc3QgJGFjX2NvdW50IC1ndCAk e2FjX3BhdGhfRkdSRVBfbWF4LTB9OyB0aGVuCisrICAgICAgIyBCZXN0IG9uZSBzbyBmYXIsIHNh dmUgaXQgYnV0IGtlZXAgbG9va2luZyBmb3IgYSBiZXR0ZXIgb25lCisrICAgICAgYWNfY3ZfcGF0 aF9GR1JFUD0iJGFjX3BhdGhfRkdSRVAiCisrICAgICAgYWNfcGF0aF9GR1JFUF9tYXg9JGFjX2Nv dW50CisrICAgIGZpCisrICAgICMgMTAqKDJeMTApIGNoYXJzIGFzIGlucHV0IHNlZW1zIG1vcmUg dGhhbiBlbm91Z2gKKysgICAgdGVzdCAkYWNfY291bnQgLWd0IDEwICYmIGJyZWFrCisrICBkb25l CisrICBybSAtZiBjb25mdGVzdC5pbiBjb25mdGVzdC50bXAgY29uZnRlc3QubmwgY29uZnRlc3Qu b3V0OzsKKytlc2FjCisrCisrICAgICAgJGFjX3BhdGhfRkdSRVBfZm91bmQgJiYgYnJlYWsgMwor KyAgICBkb25lCisrICBkb25lCisrZG9uZQorK0lGUz0kYXNfc2F2ZV9JRlMKKysgIGlmIHRlc3Qg LXogIiRhY19jdl9wYXRoX0ZHUkVQIjsgdGhlbgorKyAgICB7IHsgJGFzX2VjaG8gIiRhc19tZTok TElORU5POiBlcnJvcjogbm8gYWNjZXB0YWJsZSBmZ3JlcCBjb3VsZCBiZSBmb3VuZCBpbiAkUEFU SCRQQVRIX1NFUEFSQVRPUi91c3IveHBnNC9iaW4iID4mNQorKyRhc19lY2hvICIkYXNfbWU6IGVy cm9yOiBubyBhY2NlcHRhYmxlIGZncmVwIGNvdWxkIGJlIGZvdW5kIGluICRQQVRIJFBBVEhfU0VQ QVJBVE9SL3Vzci94cGc0L2JpbiIgPiYyO30KKysgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0K KysgIGZpCisrZWxzZQorKyAgYWNfY3ZfcGF0aF9GR1JFUD0kRkdSRVAKKytmaQorKworKyAgIGZp CisrZmkKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3ZfcGF0aF9G R1JFUCIgPiY1CisrJGFzX2VjaG8gIiRhY19jdl9wYXRoX0ZHUkVQIiA+JjY7IH0KKysgRkdSRVA9 IiRhY19jdl9wYXRoX0ZHUkVQIgorKworKworK3Rlc3QgLXogIiRHUkVQIiAmJiBHUkVQPWdyZXAK KysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysK KysjIENoZWNrIHdoZXRoZXIgLS13aXRoLWdudS1sZCB3YXMgZ2l2ZW4uCisraWYgdGVzdCAiJHt3 aXRoX2dudV9sZCtzZXR9IiA9IHNldDsgdGhlbgorKyAgd2l0aHZhbD0kd2l0aF9nbnVfbGQ7IHRl c3QgIiR3aXRodmFsIiA9IG5vIHx8IHdpdGhfZ251X2xkPXllcworK2Vsc2UKKysgIHdpdGhfZ251 X2xkPW5vCisrZmkKKysKKythY19wcm9nPWxkCisraWYgdGVzdCAiJEdDQyIgPSB5ZXM7IHRoZW4K KysgICMgQ2hlY2sgaWYgZ2NjIC1wcmludC1wcm9nLW5hbWU9bGQgZ2l2ZXMgYSBwYXRoLgorKyAg eyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciBsZCB1c2VkIGJ5ICRDQyIg PiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yIGxkIHVzZWQgYnkgJENDLi4uICIgPiY2OyB9 CisrICBjYXNlICRob3N0IGluCisrICAqLSotbWluZ3cqKQorKyAgICAjIGdjYyBsZWF2ZXMgYSB0 cmFpbGluZyBjYXJyaWFnZSByZXR1cm4gd2hpY2ggdXBzZXRzIG1pbmd3CisrICAgIGFjX3Byb2c9 YCgkQ0MgLXByaW50LXByb2ctbmFtZT1sZCkgMj4mNSB8IHRyIC1kICdcMDE1J2AgOzsKKysgICop CisrICAgIGFjX3Byb2c9YCgkQ0MgLXByaW50LXByb2ctbmFtZT1sZCkgMj4mNWAgOzsKKysgIGVz YWMKKysgIGNhc2UgJGFjX3Byb2cgaW4KKysgICAgIyBBY2NlcHQgYWJzb2x1dGUgcGF0aHMuCisr ICAgIFtcXC9dKiB8ID86W1xcL10qKQorKyAgICAgIHJlX2RpcmVsdD0nL1teL11bXi9dKi9cLlwu LycKKysgICAgICAjIENhbm9uaWNhbGl6ZSB0aGUgcGF0aG5hbWUgb2YgbGQKKysgICAgICBhY19w cm9nPWAkRUNITyAiJGFjX3Byb2cifCAkU0VEICdzJVxcXFwlLyVnJ2AKKysgICAgICB3aGlsZSAk RUNITyAiJGFjX3Byb2ciIHwgJEdSRVAgIiRyZV9kaXJlbHQiID4gL2Rldi9udWxsIDI+JjE7IGRv CisrCWFjX3Byb2c9YCRFQ0hPICRhY19wcm9nfCAkU0VEICJzJSRyZV9kaXJlbHQlLyUiYAorKyAg ICAgIGRvbmUKKysgICAgICB0ZXN0IC16ICIkTEQiICYmIExEPSIkYWNfcHJvZyIKKysgICAgICA7 OworKyAgIiIpCisrICAgICMgSWYgaXQgZmFpbHMsIHRoZW4gcHJldGVuZCB3ZSBhcmVuJ3QgdXNp bmcgR0NDLgorKyAgICBhY19wcm9nPWxkCisrICAgIDs7CisrICAqKQorKyAgICAjIElmIGl0IGlz IHJlbGF0aXZlLCB0aGVuIHNlYXJjaCBmb3IgdGhlIGZpcnN0IGxkIGluIFBBVEguCisrICAgIHdp dGhfZ251X2xkPXVua25vd24KKysgICAgOzsKKysgIGVzYWMKKytlbGlmIHRlc3QgIiR3aXRoX2du dV9sZCIgPSB5ZXM7IHRoZW4KKysgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2lu ZyBmb3IgR05VIGxkIiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyBmb3IgR05VIGxkLi4uICIg PiY2OyB9CisrZWxzZQorKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZv ciBub24tR05VIGxkIiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyBmb3Igbm9uLUdOVSBsZC4u LiAiID4mNjsgfQorK2ZpCisraWYgdGVzdCAiJHtsdF9jdl9wYXRoX0xEK3NldH0iID0gc2V0OyB0 aGVuCisrICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysgIGlmIHRlc3QgLXog IiRMRCI7IHRoZW4KKysgIGx0X3NhdmVfaWZzPSIkSUZTIjsgSUZTPSRQQVRIX1NFUEFSQVRPUgor KyAgZm9yIGFjX2RpciBpbiAkUEFUSDsgZG8KKysgICAgSUZTPSIkbHRfc2F2ZV9pZnMiCisrICAg IHRlc3QgLXogIiRhY19kaXIiICYmIGFjX2Rpcj0uCisrICAgIGlmIHRlc3QgLWYgIiRhY19kaXIv JGFjX3Byb2ciIHx8IHRlc3QgLWYgIiRhY19kaXIvJGFjX3Byb2ckYWNfZXhlZXh0IjsgdGhlbgor KyAgICAgIGx0X2N2X3BhdGhfTEQ9IiRhY19kaXIvJGFjX3Byb2ciCisrICAgICAgIyBDaGVjayB0 byBzZWUgaWYgdGhlIHByb2dyYW0gaXMgR05VIGxkLiAgSSdkIHJhdGhlciB1c2UgLS12ZXJzaW9u LAorKyAgICAgICMgYnV0IGFwcGFyZW50bHkgc29tZSB2YXJpYW50cyBvZiBHTlUgbGQgb25seSBh Y2NlcHQgLXYuCisrICAgICAgIyBCcmVhayBvbmx5IGlmIGl0IHdhcyB0aGUgR05VL25vbi1HTlUg bGQgdGhhdCB3ZSBwcmVmZXIuCisrICAgICAgY2FzZSBgIiRsdF9jdl9wYXRoX0xEIiAtdiAyPiYx IDwvZGV2L251bGxgIGluCisrICAgICAgKkdOVSogfCAqJ3dpdGggQkZEJyopCisrCXRlc3QgIiR3 aXRoX2dudV9sZCIgIT0gbm8gJiYgYnJlYWsKKysJOzsKKysgICAgICAqKQorKwl0ZXN0ICIkd2l0 aF9nbnVfbGQiICE9IHllcyAmJiBicmVhaworKwk7OworKyAgICAgIGVzYWMKKysgICAgZmkKKysg IGRvbmUKKysgIElGUz0iJGx0X3NhdmVfaWZzIgorK2Vsc2UKKysgIGx0X2N2X3BhdGhfTEQ9IiRM RCIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3Qgd2l0aCBhIHBhdGguCisrZmkKKytm aQorKworK0xEPSIkbHRfY3ZfcGF0aF9MRCIKKytpZiB0ZXN0IC1uICIkTEQiOyB0aGVuCisrICB7 ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkTEQiID4mNQorKyRhc19lY2hvICIk TEQiID4mNjsgfQorK2Vsc2UKKysgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6 IG5vIiA+JjUKKyskYXNfZWNobyAibm8iID4mNjsgfQorK2ZpCisrdGVzdCAteiAiJExEIiAmJiB7 IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogbm8gYWNjZXB0YWJsZSBsZCBmb3Vu ZCBpbiBcJFBBVEgiID4mNQorKyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBubyBhY2NlcHRhYmxl IGxkIGZvdW5kIGluIFwkUEFUSCIgPiYyO30KKysgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0K Kyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgaWYgdGhlIGxpbmtlciAoJExE KSBpcyBHTlUgbGQiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIGlmIHRoZSBsaW5rZXIgKCRM RCkgaXMgR05VIGxkLi4uICIgPiY2OyB9CisraWYgdGVzdCAiJHtsdF9jdl9wcm9nX2dudV9sZCtz ZXR9IiA9IHNldDsgdGhlbgorKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKKytlbHNlCisr ICAjIEknZCByYXRoZXIgdXNlIC0tdmVyc2lvbiBoZXJlLCBidXQgYXBwYXJlbnRseSBzb21lIEdO VSBsZHMgb25seSBhY2NlcHQgLXYuCisrY2FzZSBgJExEIC12IDI+JjEgPC9kZXYvbnVsbGAgaW4K KysqR05VKiB8ICond2l0aCBCRkQnKikKKysgIGx0X2N2X3Byb2dfZ251X2xkPXllcworKyAgOzsK KysqKQorKyAgbHRfY3ZfcHJvZ19nbnVfbGQ9bm8KKysgIDs7CisrZXNhYworK2ZpCisreyAkYXNf ZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGx0X2N2X3Byb2dfZ251X2xkIiA+JjUKKysk YXNfZWNobyAiJGx0X2N2X3Byb2dfZ251X2xkIiA+JjY7IH0KKyt3aXRoX2dudV9sZD0kbHRfY3Zf cHJvZ19nbnVfbGQKKysKKysKKysKKysKKysKKysKKysKKysKKysKKyt7ICRhc19lY2hvICIkYXNf bWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIEJTRC0gb3IgTVMtY29tcGF0aWJsZSBuYW1lIGxpc3Rl ciAobm0pIiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyBmb3IgQlNELSBvciBNUy1jb21wYXRp YmxlIG5hbWUgbGlzdGVyIChubSkuLi4gIiA+JjY7IH0KKytpZiB0ZXN0ICIke2x0X2N2X3BhdGhf Tk0rc2V0fSIgPSBzZXQ7IHRoZW4KKysgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2CisrZWxz ZQorKyAgaWYgdGVzdCAtbiAiJE5NIjsgdGhlbgorKyAgIyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUg dGhlIHRlc3QuCisrICBsdF9jdl9wYXRoX05NPSIkTk0iCisrZWxzZQorKyAgbHRfbm1fdG9fY2hl Y2s9IiR7YWNfdG9vbF9wcmVmaXh9bm0iCisrICBpZiB0ZXN0IC1uICIkYWNfdG9vbF9wcmVmaXgi ICYmIHRlc3QgIiRidWlsZCIgPSAiJGhvc3QiOyB0aGVuCisrICAgIGx0X25tX3RvX2NoZWNrPSIk bHRfbm1fdG9fY2hlY2sgbm0iCisrICBmaQorKyAgZm9yIGx0X3RtcF9ubSBpbiAkbHRfbm1fdG9f Y2hlY2s7IGRvCisrICAgIGx0X3NhdmVfaWZzPSIkSUZTIjsgSUZTPSRQQVRIX1NFUEFSQVRPUgor KyAgICBmb3IgYWNfZGlyIGluICRQQVRIIC91c3IvY2NzL2Jpbi9lbGYgL3Vzci9jY3MvYmluIC91 c3IvdWNiIC9iaW47IGRvCisrICAgICAgSUZTPSIkbHRfc2F2ZV9pZnMiCisrICAgICAgdGVzdCAt eiAiJGFjX2RpciIgJiYgYWNfZGlyPS4KKysgICAgICB0bXBfbm09IiRhY19kaXIvJGx0X3RtcF9u bSIKKysgICAgICBpZiB0ZXN0IC1mICIkdG1wX25tIiB8fCB0ZXN0IC1mICIkdG1wX25tJGFjX2V4 ZWV4dCIgOyB0aGVuCisrCSMgQ2hlY2sgdG8gc2VlIGlmIHRoZSBubSBhY2NlcHRzIGEgQlNELWNv bXBhdCBmbGFnLgorKwkjIEFkZGluZyB0aGUgYHNlZCAxcScgcHJldmVudHMgZmFsc2UgcG9zaXRp dmVzIG9uIEhQLVVYLCB3aGljaCBzYXlzOgorKwkjICAgbm06IHVua25vd24gb3B0aW9uICJCIiBp Z25vcmVkCisrCSMgVHJ1NjQncyBubSBjb21wbGFpbnMgdGhhdCAvZGV2L251bGwgaXMgYW4gaW52 YWxpZCBvYmplY3QgZmlsZQorKwljYXNlIGAiJHRtcF9ubSIgLUIgL2Rldi9udWxsIDI+JjEgfCBz ZWQgJzFxJ2AgaW4KKysJKi9kZXYvbnVsbCogfCAqJ0ludmFsaWQgZmlsZSBvciBvYmplY3QgdHlw ZScqKQorKwkgIGx0X2N2X3BhdGhfTk09IiR0bXBfbm0gLUIiCisrCSAgYnJlYWsKKysJICA7Owor KwkqKQorKwkgIGNhc2UgYCIkdG1wX25tIiAtcCAvZGV2L251bGwgMj4mMSB8IHNlZCAnMXEnYCBp bgorKwkgICovZGV2L251bGwqKQorKwkgICAgbHRfY3ZfcGF0aF9OTT0iJHRtcF9ubSAtcCIKKysJ ICAgIGJyZWFrCisrCSAgICA7OworKwkgICopCisrCSAgICBsdF9jdl9wYXRoX05NPSR7bHRfY3Zf cGF0aF9OTT0iJHRtcF9ubSJ9ICMga2VlcCB0aGUgZmlyc3QgbWF0Y2gsIGJ1dAorKwkgICAgY29u dGludWUgIyBzbyB0aGF0IHdlIGNhbiB0cnkgdG8gZmluZCBvbmUgdGhhdCBzdXBwb3J0cyBCU0Qg ZmxhZ3MKKysJICAgIDs7CisrCSAgZXNhYworKwkgIDs7CisrCWVzYWMKKysgICAgICBmaQorKyAg ICBkb25lCisrICAgIElGUz0iJGx0X3NhdmVfaWZzIgorKyAgZG9uZQorKyAgOiAke2x0X2N2X3Bh dGhfTk09bm99CisrZmkKKytmaQorK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6 ICRsdF9jdl9wYXRoX05NIiA+JjUKKyskYXNfZWNobyAiJGx0X2N2X3BhdGhfTk0iID4mNjsgfQor K2lmIHRlc3QgIiRsdF9jdl9wYXRoX05NIiAhPSAibm8iOyB0aGVuCisrICBOTT0iJGx0X2N2X3Bh dGhfTk0iCisrZWxzZQorKyAgIyBEaWRuJ3QgZmluZCBhbnkgQlNEIGNvbXBhdGlibGUgbmFtZSBs aXN0ZXIsIGxvb2sgZm9yIGR1bXBiaW4uCisrICBpZiB0ZXN0IC1uICIkYWNfdG9vbF9wcmVmaXgi OyB0aGVuCisrICBmb3IgYWNfcHJvZyBpbiAiZHVtcGJpbiAtc3ltYm9scyIgImxpbmsgLWR1bXAg LXN5bWJvbHMiCisrICBkbworKyAgICAjIEV4dHJhY3QgdGhlIGZpcnN0IHdvcmQgb2YgIiRhY190 b29sX3ByZWZpeCRhY19wcm9nIiwgc28gaXQgY2FuIGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJn cy4KKytzZXQgZHVtbXkgJGFjX3Rvb2xfcHJlZml4JGFjX3Byb2c7IGFjX3dvcmQ9JDIKKyt7ICRh c19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yICRhY193b3JkIiA+JjUKKyskYXNf ZWNob19uICJjaGVja2luZyBmb3IgJGFjX3dvcmQuLi4gIiA+JjY7IH0KKytpZiB0ZXN0ICIke2Fj X2N2X3Byb2dfRFVNUEJJTitzZXR9IiA9IHNldDsgdGhlbgorKyAgJGFzX2VjaG9fbiAiKGNhY2hl ZCkgIiA+JjYKKytlbHNlCisrICBpZiB0ZXN0IC1uICIkRFVNUEJJTiI7IHRoZW4KKysgIGFjX2N2 X3Byb2dfRFVNUEJJTj0iJERVTVBCSU4iICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0 LgorK2Vsc2UKKythc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCisrZm9yIGFz X2RpciBpbiAkUEFUSAorK2RvCisrICBJRlM9JGFzX3NhdmVfSUZTCisrICB0ZXN0IC16ICIkYXNf ZGlyIiAmJiBhc19kaXI9LgorKyAgZm9yIGFjX2V4ZWNfZXh0IGluICcnICRhY19leGVjdXRhYmxl X2V4dGVuc2lvbnM7IGRvCisrICBpZiB7IHRlc3QgLWYgIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhl Y19leHQiICYmICRhc190ZXN0X3ggIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiOyB9OyB0 aGVuCisrICAgIGFjX2N2X3Byb2dfRFVNUEJJTj0iJGFjX3Rvb2xfcHJlZml4JGFjX3Byb2ciCisr ICAgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZm91bmQgJGFzX2Rpci8kYWNfd29yZCRhY19l eGVjX2V4dCIgPiY1CisrICAgIGJyZWFrIDIKKysgIGZpCisrZG9uZQorK2RvbmUKKytJRlM9JGFz X3NhdmVfSUZTCisrCisrZmkKKytmaQorK0RVTVBCSU49JGFjX2N2X3Byb2dfRFVNUEJJTgorK2lm IHRlc3QgLW4gIiREVU1QQklOIjsgdGhlbgorKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86 IHJlc3VsdDogJERVTVBCSU4iID4mNQorKyRhc19lY2hvICIkRFVNUEJJTiIgPiY2OyB9CisrZWxz ZQorKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogbm8iID4mNQorKyRhc19l Y2hvICJubyIgPiY2OyB9CisrZmkKKysKKysKKysgICAgdGVzdCAtbiAiJERVTVBCSU4iICYmIGJy ZWFrCisrICBkb25lCisrZmkKKytpZiB0ZXN0IC16ICIkRFVNUEJJTiI7IHRoZW4KKysgIGFjX2N0 X0RVTVBCSU49JERVTVBCSU4KKysgIGZvciBhY19wcm9nIGluICJkdW1wYmluIC1zeW1ib2xzIiAi bGluayAtZHVtcCAtc3ltYm9scyIKKytkbworKyAgIyBFeHRyYWN0IHRoZSBmaXJzdCB3b3JkIG9m ICIkYWNfcHJvZyIsIHNvIGl0IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3MuCisrc2V0 IGR1bW15ICRhY19wcm9nOyBhY193b3JkPSQyCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86 IGNoZWNraW5nIGZvciAkYWNfd29yZCIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yICRh Y193b3JkLi4uICIgPiY2OyB9CisraWYgdGVzdCAiJHthY19jdl9wcm9nX2FjX2N0X0RVTVBCSU4r c2V0fSIgPSBzZXQ7IHRoZW4KKysgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2CisrZWxzZQor KyAgaWYgdGVzdCAtbiAiJGFjX2N0X0RVTVBCSU4iOyB0aGVuCisrICBhY19jdl9wcm9nX2FjX2N0 X0RVTVBCSU49IiRhY19jdF9EVU1QQklOIiAjIExldCB0aGUgdXNlciBvdmVycmlkZSB0aGUgdGVz dC4KKytlbHNlCisrYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgorK2ZvciBh c19kaXIgaW4gJFBBVEgKKytkbworKyAgSUZTPSRhc19zYXZlX0lGUworKyAgdGVzdCAteiAiJGFz X2RpciIgJiYgYXNfZGlyPS4KKysgIGZvciBhY19leGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJs ZV9leHRlbnNpb25zOyBkbworKyAgaWYgeyB0ZXN0IC1mICIkYXNfZGlyLyRhY193b3JkJGFjX2V4 ZWNfZXh0IiAmJiAkYXNfdGVzdF94ICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IjsgfTsg dGhlbgorKyAgICBhY19jdl9wcm9nX2FjX2N0X0RVTVBCSU49IiRhY19wcm9nIgorKyAgICAkYXNf ZWNobyAiJGFzX21lOiRMSU5FTk86IGZvdW5kICRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQi ID4mNQorKyAgICBicmVhayAyCisrICBmaQorK2RvbmUKKytkb25lCisrSUZTPSRhc19zYXZlX0lG UworKworK2ZpCisrZmkKKythY19jdF9EVU1QQklOPSRhY19jdl9wcm9nX2FjX2N0X0RVTVBCSU4K KytpZiB0ZXN0IC1uICIkYWNfY3RfRFVNUEJJTiI7IHRoZW4KKysgIHsgJGFzX2VjaG8gIiRhc19t ZTokTElORU5POiByZXN1bHQ6ICRhY19jdF9EVU1QQklOIiA+JjUKKyskYXNfZWNobyAiJGFjX2N0 X0RVTVBCSU4iID4mNjsgfQorK2Vsc2UKKysgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBy ZXN1bHQ6IG5vIiA+JjUKKyskYXNfZWNobyAibm8iID4mNjsgfQorK2ZpCisrCisrCisrICB0ZXN0 IC1uICIkYWNfY3RfRFVNUEJJTiIgJiYgYnJlYWsKKytkb25lCisrCisrICBpZiB0ZXN0ICJ4JGFj X2N0X0RVTVBCSU4iID0geDsgdGhlbgorKyAgICBEVU1QQklOPSI6IgorKyAgZWxzZQorKyAgICBj YXNlICRjcm9zc19jb21waWxpbmc6JGFjX3Rvb2xfd2FybmVkIGluCisreWVzOikKKyt7ICRhc19l Y2hvICIkYXNfbWU6JExJTkVOTzogV0FSTklORzogdXNpbmcgY3Jvc3MgdG9vbHMgbm90IHByZWZp eGVkIHdpdGggaG9zdCB0cmlwbGV0IiA+JjUKKyskYXNfZWNobyAiJGFzX21lOiBXQVJOSU5HOiB1 c2luZyBjcm9zcyB0b29scyBub3QgcHJlZml4ZWQgd2l0aCBob3N0IHRyaXBsZXQiID4mMjt9Cisr YWNfdG9vbF93YXJuZWQ9eWVzIDs7CisrZXNhYworKyAgICBEVU1QQklOPSRhY19jdF9EVU1QQklO CisrICBmaQorK2ZpCisrCisrCisrICBpZiB0ZXN0ICIkRFVNUEJJTiIgIT0gIjoiOyB0aGVuCisr ICAgIE5NPSIkRFVNUEJJTiIKKysgIGZpCisrZmkKKyt0ZXN0IC16ICIkTk0iICYmIE5NPW5tCisr CisrCisrCisrCisrCisrCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIHRo ZSBuYW1lIGxpc3RlciAoJE5NKSBpbnRlcmZhY2UiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5n IHRoZSBuYW1lIGxpc3RlciAoJE5NKSBpbnRlcmZhY2UuLi4gIiA+JjY7IH0KKytpZiB0ZXN0ICIk e2x0X2N2X25tX2ludGVyZmFjZStzZXR9IiA9IHNldDsgdGhlbgorKyAgJGFzX2VjaG9fbiAiKGNh Y2hlZCkgIiA+JjYKKytlbHNlCisrICBsdF9jdl9ubV9pbnRlcmZhY2U9IkJTRCBubSIKKysgIGVj aG8gImludCBzb21lX3ZhcmlhYmxlID0gMDsiID4gY29uZnRlc3QuJGFjX2V4dAorKyAgKGV2YWwg ZWNobyAiXCJcJGFzX21lOjU2MzI6ICRhY19jb21waWxlXCIiID4mNSkKKysgIChldmFsICIkYWNf Y29tcGlsZSIgMj5jb25mdGVzdC5lcnIpCisrICBjYXQgY29uZnRlc3QuZXJyID4mNQorKyAgKGV2 YWwgZWNobyAiXCJcJGFzX21lOjU2MzU6ICROTSBcXFwiY29uZnRlc3QuJGFjX29iamV4dFxcXCJc IiIgPiY1KQorKyAgKGV2YWwgIiROTSBcImNvbmZ0ZXN0LiRhY19vYmpleHRcIiIgMj5jb25mdGVz dC5lcnIgPiBjb25mdGVzdC5vdXQpCisrICBjYXQgY29uZnRlc3QuZXJyID4mNQorKyAgKGV2YWwg ZWNobyAiXCJcJGFzX21lOjU2Mzg6IG91dHB1dFwiIiA+JjUpCisrICBjYXQgY29uZnRlc3Qub3V0 ID4mNQorKyAgaWYgJEdSRVAgJ0V4dGVybmFsLipzb21lX3ZhcmlhYmxlJyBjb25mdGVzdC5vdXQg PiAvZGV2L251bGw7IHRoZW4KKysgICAgbHRfY3Zfbm1faW50ZXJmYWNlPSJNUyBkdW1wYmluIgor KyAgZmkKKysgIHJtIC1mIGNvbmZ0ZXN0KgorK2ZpCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5F Tk86IHJlc3VsdDogJGx0X2N2X25tX2ludGVyZmFjZSIgPiY1CisrJGFzX2VjaG8gIiRsdF9jdl9u bV9pbnRlcmZhY2UiID4mNjsgfQorKworK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVj a2luZyB3aGV0aGVyIGxuIC1zIHdvcmtzIiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyB3aGV0 aGVyIGxuIC1zIHdvcmtzLi4uICIgPiY2OyB9CisrTE5fUz0kYXNfbG5fcworK2lmIHRlc3QgIiRM Tl9TIiA9ICJsbiAtcyI7IHRoZW4KKysgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1 bHQ6IHllcyIgPiY1CisrJGFzX2VjaG8gInllcyIgPiY2OyB9CisrZWxzZQorKyAgeyAkYXNfZWNo byAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogbm8sIHVzaW5nICRMTl9TIiA+JjUKKyskYXNfZWNo byAibm8sIHVzaW5nICRMTl9TIiA+JjY7IH0KKytmaQorKworKyMgZmluZCB0aGUgbWF4aW11bSBs ZW5ndGggb2YgY29tbWFuZCBsaW5lIGFyZ3VtZW50cworK3sgJGFzX2VjaG8gIiRhc19tZTokTElO RU5POiBjaGVja2luZyB0aGUgbWF4aW11bSBsZW5ndGggb2YgY29tbWFuZCBsaW5lIGFyZ3VtZW50 cyIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgdGhlIG1heGltdW0gbGVuZ3RoIG9mIGNvbW1h bmQgbGluZSBhcmd1bWVudHMuLi4gIiA+JjY7IH0KKytpZiB0ZXN0ICIke2x0X2N2X3N5c19tYXhf Y21kX2xlbitzZXR9IiA9IHNldDsgdGhlbgorKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYK KytlbHNlCisrICAgIGk9MAorKyAgdGVzdHN0cmluZz0iQUJDRCIKKysKKysgIGNhc2UgJGJ1aWxk X29zIGluCisrICBtc2Rvc2RqZ3BwKikKKysgICAgIyBPbiBESkdQUCwgdGhpcyB0ZXN0IGNhbiBi bG93IHVwIHByZXR0eSBiYWRseSBkdWUgdG8gcHJvYmxlbXMgaW4gbGliYworKyAgICAjIChhbnkg c2luZ2xlIGFyZ3VtZW50IGV4Y2VlZGluZyAyMDAwIGJ5dGVzIGNhdXNlcyBhIGJ1ZmZlciBvdmVy cnVuCisrICAgICMgZHVyaW5nIGdsb2IgZXhwYW5zaW9uKS4gIEV2ZW4gaWYgaXQgd2VyZSBmaXhl ZCwgdGhlIHJlc3VsdCBvZiB0aGlzCisrICAgICMgY2hlY2sgd291bGQgYmUgbGFyZ2VyIHRoYW4g aXQgc2hvdWxkIGJlLgorKyAgICBsdF9jdl9zeXNfbWF4X2NtZF9sZW49MTIyODg7ICAgICMgMTJL IGlzIGFib3V0IHJpZ2h0CisrICAgIDs7CisrCisrICBnbnUqKQorKyAgICAjIFVuZGVyIEdOVSBI dXJkLCB0aGlzIHRlc3QgaXMgbm90IHJlcXVpcmVkIGJlY2F1c2UgdGhlcmUgaXMKKysgICAgIyBu byBsaW1pdCB0byB0aGUgbGVuZ3RoIG9mIGNvbW1hbmQgbGluZSBhcmd1bWVudHMuCisrICAgICMg TGlidG9vbCB3aWxsIGludGVycHJldCAtMSBhcyBubyBsaW1pdCB3aGF0c29ldmVyCisrICAgIGx0 X2N2X3N5c19tYXhfY21kX2xlbj0tMTsKKysgICAgOzsKKysKKysgIGN5Z3dpbiogfCBtaW5ndyog fCBjZWdjYyopCisrICAgICMgT24gV2luOXgvTUUsIHRoaXMgdGVzdCBibG93cyB1cCAtLSBpdCBz dWNjZWVkcywgYnV0IHRha2VzCisrICAgICMgYWJvdXQgNSBtaW51dGVzIGFzIHRoZSB0ZXN0c3Ry aW5nIGdyb3dzIGV4cG9uZW50aWFsbHkuCisrICAgICMgV29yc2UsIHNpbmNlIDl4L01FIGFyZSBu b3QgcHJlLWVtcHRpdmVseSBtdWx0aXRhc2tpbmcsCisrICAgICMgeW91IGVuZCB1cCB3aXRoIGEg ImZyb3plbiIgY29tcHV0ZXIsIGV2ZW4gdGhvdWdoIHdpdGggcGF0aWVuY2UKKysgICAgIyB0aGUg dGVzdCBldmVudHVhbGx5IHN1Y2NlZWRzICh3aXRoIGEgbWF4IGxpbmUgbGVuZ3RoIG9mIDI1Nmsp LgorKyAgICAjIEluc3RlYWQsIGxldCdzIGp1c3QgcHVudDogdXNlIHRoZSBtaW5pbXVtIGxpbmVs ZW5ndGggcmVwb3J0ZWQgYnkKKysgICAgIyBhbGwgb2YgdGhlIHN1cHBvcnRlZCBwbGF0Zm9ybXM6 IDgxOTIgKG9uIE5ULzJLL1hQKS4KKysgICAgbHRfY3Zfc3lzX21heF9jbWRfbGVuPTgxOTI7Cisr ICAgIDs7CisrCisrICBhbWlnYW9zKikKKysgICAgIyBPbiBBbWlnYU9TIHdpdGggcGRrc2gsIHRo aXMgdGVzdCB0YWtlcyBob3VycywgbGl0ZXJhbGx5LgorKyAgICAjIFNvIHdlIGp1c3QgcHVudCBh bmQgdXNlIGEgbWluaW11bSBsaW5lIGxlbmd0aCBvZiA4MTkyLgorKyAgICBsdF9jdl9zeXNfbWF4 X2NtZF9sZW49ODE5MjsKKysgICAgOzsKKysKKysgIG5ldGJzZCogfCBmcmVlYnNkKiB8IG9wZW5i c2QqIHwgZGFyd2luKiB8IGRyYWdvbmZseSopCisrICAgICMgVGhpcyBoYXMgYmVlbiBhcm91bmQg c2luY2UgMzg2QlNELCBhdCBsZWFzdC4gIExpa2VseSBmdXJ0aGVyLgorKyAgICBpZiB0ZXN0IC14 IC9zYmluL3N5c2N0bDsgdGhlbgorKyAgICAgIGx0X2N2X3N5c19tYXhfY21kX2xlbj1gL3NiaW4v c3lzY3RsIC1uIGtlcm4uYXJnbWF4YAorKyAgICBlbGlmIHRlc3QgLXggL3Vzci9zYmluL3N5c2N0 bDsgdGhlbgorKyAgICAgIGx0X2N2X3N5c19tYXhfY21kX2xlbj1gL3Vzci9zYmluL3N5c2N0bCAt biBrZXJuLmFyZ21heGAKKysgICAgZWxzZQorKyAgICAgIGx0X2N2X3N5c19tYXhfY21kX2xlbj02 NTUzNgkjIHVzYWJsZSBkZWZhdWx0IGZvciBhbGwgQlNEcworKyAgICBmaQorKyAgICAjIEFuZCBh ZGQgYSBzYWZldHkgem9uZQorKyAgICBsdF9jdl9zeXNfbWF4X2NtZF9sZW49YGV4cHIgJGx0X2N2 X3N5c19tYXhfY21kX2xlbiBcLyA0YAorKyAgICBsdF9jdl9zeXNfbWF4X2NtZF9sZW49YGV4cHIg JGx0X2N2X3N5c19tYXhfY21kX2xlbiBcKiAzYAorKyAgICA7OworKworKyAgaW50ZXJpeCopCisr ICAgICMgV2Uga25vdyB0aGUgdmFsdWUgMjYyMTQ0IGFuZCBoYXJkY29kZSBpdCB3aXRoIGEgc2Fm ZXR5IHpvbmUgKGxpa2UgQlNEKQorKyAgICBsdF9jdl9zeXNfbWF4X2NtZF9sZW49MTk2NjA4Cisr ICAgIDs7CisrCisrICBvc2YqKQorKyAgICAjIERyLiBIYW5zIEVra2VoYXJkIFBsZXNzZXIgcmVw b3J0cyBzZWVpbmcgYSBrZXJuZWwgcGFuaWMgcnVubmluZyBjb25maWd1cmUKKysgICAgIyBkdWUg dG8gdGhpcyB0ZXN0IHdoZW4gZXhlY19kaXNhYmxlX2FyZ19saW1pdCBpcyAxIG9uIFRydTY0LiBJ dCBpcyBub3QKKysgICAgIyBuaWNlIHRvIGNhdXNlIGtlcm5lbCBwYW5pY3Mgc28gbGV0cyBhdm9p ZCB0aGUgbG9vcCBiZWxvdy4KKysgICAgIyBGaXJzdCBzZXQgYSByZWFzb25hYmxlIGRlZmF1bHQu CisrICAgIGx0X2N2X3N5c19tYXhfY21kX2xlbj0xNjM4NAorKyAgICAjCisrICAgIGlmIHRlc3Qg LXggL3NiaW4vc3lzY29uZmlnOyB0aGVuCisrICAgICAgY2FzZSBgL3NiaW4vc3lzY29uZmlnIC1x IHByb2MgZXhlY19kaXNhYmxlX2FyZ19saW1pdGAgaW4KKysgICAgICAgICoxKikgbHRfY3Zfc3lz X21heF9jbWRfbGVuPS0xIDs7CisrICAgICAgZXNhYworKyAgICBmaQorKyAgICA7OworKyAgc2Nv My4ydjUqKQorKyAgICBsdF9jdl9zeXNfbWF4X2NtZF9sZW49MTAyNDAwCisrICAgIDs7CisrICBz eXN2NSogfCBzY281djYqIHwgc3lzdjQuMnV3MiopCisrICAgIGthcmdtYXg9YGdyZXAgQVJHX01B WCAvZXRjL2NvbmYvY2YuZC9zdHVuZSAyPi9kZXYvbnVsbGAKKysgICAgaWYgdGVzdCAtbiAiJGth cmdtYXgiOyB0aGVuCisrICAgICAgbHRfY3Zfc3lzX21heF9jbWRfbGVuPWBlY2hvICRrYXJnbWF4 IHwgc2VkICdzLy4qWwkgXS8vJ2AKKysgICAgZWxzZQorKyAgICAgIGx0X2N2X3N5c19tYXhfY21k X2xlbj0zMjc2OAorKyAgICBmaQorKyAgICA7OworKyAgKikKKysgICAgbHRfY3Zfc3lzX21heF9j bWRfbGVuPWAoZ2V0Y29uZiBBUkdfTUFYKSAyPiAvZGV2L251bGxgCisrICAgIGlmIHRlc3QgLW4g IiRsdF9jdl9zeXNfbWF4X2NtZF9sZW4iOyB0aGVuCisrICAgICAgbHRfY3Zfc3lzX21heF9jbWRf bGVuPWBleHByICRsdF9jdl9zeXNfbWF4X2NtZF9sZW4gXC8gNGAKKysgICAgICBsdF9jdl9zeXNf bWF4X2NtZF9sZW49YGV4cHIgJGx0X2N2X3N5c19tYXhfY21kX2xlbiBcKiAzYAorKyAgICBlbHNl CisrICAgICAgIyBNYWtlIHRlc3RzdHJpbmcgYSBsaXR0bGUgYmlnZ2VyIGJlZm9yZSB3ZSBkbyBh bnl0aGluZyB3aXRoIGl0LgorKyAgICAgICMgYSAxSyBzdHJpbmcgc2hvdWxkIGJlIGEgcmVhc29u YWJsZSBzdGFydC4KKysgICAgICBmb3IgaSBpbiAxIDIgMyA0IDUgNiA3IDggOyBkbworKyAgICAg ICAgdGVzdHN0cmluZz0kdGVzdHN0cmluZyR0ZXN0c3RyaW5nCisrICAgICAgZG9uZQorKyAgICAg IFNIRUxMPSR7U0hFTEwtJHtDT05GSUdfU0hFTEwtL2Jpbi9zaH19CisrICAgICAgIyBJZiB0ZXN0 IGlzIG5vdCBhIHNoZWxsIGJ1aWx0LWluLCB3ZSdsbCBwcm9iYWJseSBlbmQgdXAgY29tcHV0aW5n IGEKKysgICAgICAjIG1heGltdW0gbGVuZ3RoIHRoYXQgaXMgb25seSBoYWxmIG9mIHRoZSBhY3R1 YWwgbWF4aW11bSBsZW5ndGgsIGJ1dAorKyAgICAgICMgd2UgY2FuJ3QgdGVsbC4KKysgICAgICB3 aGlsZSB7IHRlc3QgIlgiYCRTSEVMTCAkMCAtLWZhbGxiYWNrLWVjaG8gIlgkdGVzdHN0cmluZyR0 ZXN0c3RyaW5nIiAyPi9kZXYvbnVsbGAgXAorKwkgICAgICAgICA9ICJYWCR0ZXN0c3RyaW5nJHRl c3RzdHJpbmciOyB9ID4vZGV2L251bGwgMj4mMSAmJgorKwkgICAgICB0ZXN0ICRpICE9IDE3ICMg MS8yIE1CIHNob3VsZCBiZSBlbm91Z2gKKysgICAgICBkbworKyAgICAgICAgaT1gZXhwciAkaSAr IDFgCisrICAgICAgICB0ZXN0c3RyaW5nPSR0ZXN0c3RyaW5nJHRlc3RzdHJpbmcKKysgICAgICBk b25lCisrICAgICAgIyBPbmx5IGNoZWNrIHRoZSBzdHJpbmcgbGVuZ3RoIG91dHNpZGUgdGhlIGxv b3AuCisrICAgICAgbHRfY3Zfc3lzX21heF9jbWRfbGVuPWBleHByICJYJHRlc3RzdHJpbmciIDog Ii4qIiAyPiYxYAorKyAgICAgIHRlc3RzdHJpbmc9CisrICAgICAgIyBBZGQgYSBzaWduaWZpY2Fu dCBzYWZldHkgZmFjdG9yIGJlY2F1c2UgQysrIGNvbXBpbGVycyBjYW4gdGFjayBvbgorKyAgICAg ICMgbWFzc2l2ZSBhbW91bnRzIG9mIGFkZGl0aW9uYWwgYXJndW1lbnRzIGJlZm9yZSBwYXNzaW5n IHRoZW0gdG8gdGhlCisrICAgICAgIyBsaW5rZXIuICBJdCBhcHBlYXJzIGFzIHRob3VnaCAxLzIg aXMgYSB1c2FibGUgdmFsdWUuCisrICAgICAgbHRfY3Zfc3lzX21heF9jbWRfbGVuPWBleHByICRs dF9jdl9zeXNfbWF4X2NtZF9sZW4gXC8gMmAKKysgICAgZmkKKysgICAgOzsKKysgIGVzYWMKKysK KytmaQorKworK2lmIHRlc3QgLW4gJGx0X2N2X3N5c19tYXhfY21kX2xlbiA7IHRoZW4KKysgIHsg JGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRsdF9jdl9zeXNfbWF4X2NtZF9sZW4i ID4mNQorKyRhc19lY2hvICIkbHRfY3Zfc3lzX21heF9jbWRfbGVuIiA+JjY7IH0KKytlbHNlCisr ICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiBub25lIiA+JjUKKyskYXNfZWNo byAibm9uZSIgPiY2OyB9CisrZmkKKyttYXhfY21kX2xlbj0kbHRfY3Zfc3lzX21heF9jbWRfbGVu CisrCisrCisrCisrCisrCisrCisrOiAke0NQPSJjcCAtZiJ9CisrOiAke01WPSJtdiAtZiJ9Cisr OiAke1JNPSJybSAtZiJ9CisrCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5n IHdoZXRoZXIgdGhlIHNoZWxsIHVuZGVyc3RhbmRzIHNvbWUgWFNJIGNvbnN0cnVjdHMiID4mNQor KyRhc19lY2hvX24gImNoZWNraW5nIHdoZXRoZXIgdGhlIHNoZWxsIHVuZGVyc3RhbmRzIHNvbWUg WFNJIGNvbnN0cnVjdHMuLi4gIiA+JjY7IH0KKysjIFRyeSBzb21lIFhTSSBmZWF0dXJlcworK3hz aV9zaGVsbD1ubworKyggX2x0X2R1bW15PSJhL2IvYyIKKysgIHRlc3QgIiR7X2x0X2R1bW15IyMq L30sJHtfbHRfZHVtbXklLyp9LCIke19sdF9kdW1teSUiJF9sdF9kdW1teSJ9LCBcCisrICAgICAg PSBjLGEvYiwsIFwKKysgICAgJiYgZXZhbCAndGVzdCAkKCggMSArIDEgKSkgLWVxIDIgXAorKyAg ICAmJiB0ZXN0ICIkeyNfbHRfZHVtbXl9IiAtZXEgNScgKSA+L2Rldi9udWxsIDI+JjEgXAorKyAg JiYgeHNpX3NoZWxsPXllcworK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICR4 c2lfc2hlbGwiID4mNQorKyRhc19lY2hvICIkeHNpX3NoZWxsIiA+JjY7IH0KKysKKysKKyt7ICRh c19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgd2hldGhlciB0aGUgc2hlbGwgdW5kZXJz dGFuZHMgXCIrPVwiIiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyB3aGV0aGVyIHRoZSBzaGVs bCB1bmRlcnN0YW5kcyBcIis9XCIuLi4gIiA+JjY7IH0KKytsdF9zaGVsbF9hcHBlbmQ9bm8KKyso IGZvbz1iYXI7IHNldCBmb28gYmF6OyBldmFsICIkMSs9XCQyIiAmJiB0ZXN0ICIkZm9vIiA9IGJh cmJheiApIFwKKysgICAgPi9kZXYvbnVsbCAyPiYxIFwKKysgICYmIGx0X3NoZWxsX2FwcGVuZD15 ZXMKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkbHRfc2hlbGxfYXBwZW5k IiA+JjUKKyskYXNfZWNobyAiJGx0X3NoZWxsX2FwcGVuZCIgPiY2OyB9CisrCisrCisraWYgKCAo TUFJTD02MDsgdW5zZXQgTUFJTCkgfHwgZXhpdCkgPi9kZXYvbnVsbCAyPiYxOyB0aGVuCisrICBs dF91bnNldD11bnNldAorK2Vsc2UKKysgIGx0X3Vuc2V0PWZhbHNlCisrZmkKKysKKysKKysKKysK KysKKysjIHRlc3QgRUJDRElDIG9yIEFTQ0lJCisrY2FzZSBgZWNobyBYfHRyIFggJ1wxMDEnYCBp bgorKyBBKSAjIEFTQ0lJIGJhc2VkIHN5c3RlbQorKyAgICAjIFxuIGlzIG5vdCBpbnRlcnByZXRl ZCBjb3JyZWN0bHkgYnkgU29sYXJpcyA4IC91c3IvdWNiL3RyCisrICBsdF9TUDJOTD0ndHIgXDA0 MCBcMDEyJworKyAgbHRfTkwyU1A9J3RyIFwwMTVcMDEyIFwwNDBcMDQwJworKyAgOzsKKysgKikg IyBFQkNESUMgYmFzZWQgc3lzdGVtCisrICBsdF9TUDJOTD0ndHIgXDEwMCBcbicKKysgIGx0X05M MlNQPSd0ciBcclxuIFwxMDBcMTAwJworKyAgOzsKKytlc2FjCisrCisrCisrCisrCisrCisrCisr CisrCisrCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciAkTEQgb3B0 aW9uIHRvIHJlbG9hZCBvYmplY3QgZmlsZXMiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIGZv ciAkTEQgb3B0aW9uIHRvIHJlbG9hZCBvYmplY3QgZmlsZXMuLi4gIiA+JjY7IH0KKytpZiB0ZXN0 ICIke2x0X2N2X2xkX3JlbG9hZF9mbGFnK3NldH0iID0gc2V0OyB0aGVuCisrICAkYXNfZWNob19u ICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysgIGx0X2N2X2xkX3JlbG9hZF9mbGFnPSctcicKKytm aQorK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRsdF9jdl9sZF9yZWxvYWRf ZmxhZyIgPiY1CisrJGFzX2VjaG8gIiRsdF9jdl9sZF9yZWxvYWRfZmxhZyIgPiY2OyB9CisrcmVs b2FkX2ZsYWc9JGx0X2N2X2xkX3JlbG9hZF9mbGFnCisrY2FzZSAkcmVsb2FkX2ZsYWcgaW4KKysi IiB8ICIgIiopIDs7CisrKikgcmVsb2FkX2ZsYWc9IiAkcmVsb2FkX2ZsYWciIDs7CisrZXNhYwor K3JlbG9hZF9jbWRzPSckTEQkcmVsb2FkX2ZsYWcgLW8gJG91dHB1dCRyZWxvYWRfb2JqcycKKytj YXNlICRob3N0X29zIGluCisrICBkYXJ3aW4qKQorKyAgICBpZiB0ZXN0ICIkR0NDIiA9IHllczsg dGhlbgorKyAgICAgIHJlbG9hZF9jbWRzPSckTFRDQyAkTFRDRkxBR1MgLW5vc3RkbGliICR7d2x9 LXIgLW8gJG91dHB1dCRyZWxvYWRfb2JqcycKKysgICAgZWxzZQorKyAgICAgIHJlbG9hZF9jbWRz PSckTEQkcmVsb2FkX2ZsYWcgLW8gJG91dHB1dCRyZWxvYWRfb2JqcycKKysgICAgZmkKKysgICAg OzsKKytlc2FjCisrCisrCisrCisrCisrCisrCisrCisrCisrCisraWYgdGVzdCAtbiAiJGFjX3Rv b2xfcHJlZml4IjsgdGhlbgorKyAgIyBFeHRyYWN0IHRoZSBmaXJzdCB3b3JkIG9mICIke2FjX3Rv b2xfcHJlZml4fW9iamR1bXAiLCBzbyBpdCBjYW4gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmdz LgorK3NldCBkdW1teSAke2FjX3Rvb2xfcHJlZml4fW9iamR1bXA7IGFjX3dvcmQ9JDIKKyt7ICRh c19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yICRhY193b3JkIiA+JjUKKyskYXNf ZWNob19uICJjaGVja2luZyBmb3IgJGFjX3dvcmQuLi4gIiA+JjY7IH0KKytpZiB0ZXN0ICIke2Fj X2N2X3Byb2dfT0JKRFVNUCtzZXR9IiA9IHNldDsgdGhlbgorKyAgJGFzX2VjaG9fbiAiKGNhY2hl ZCkgIiA+JjYKKytlbHNlCisrICBpZiB0ZXN0IC1uICIkT0JKRFVNUCI7IHRoZW4KKysgIGFjX2N2 X3Byb2dfT0JKRFVNUD0iJE9CSkRVTVAiICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0 LgorK2Vsc2UKKythc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCisrZm9yIGFz X2RpciBpbiAkUEFUSAorK2RvCisrICBJRlM9JGFzX3NhdmVfSUZTCisrICB0ZXN0IC16ICIkYXNf ZGlyIiAmJiBhc19kaXI9LgorKyAgZm9yIGFjX2V4ZWNfZXh0IGluICcnICRhY19leGVjdXRhYmxl X2V4dGVuc2lvbnM7IGRvCisrICBpZiB7IHRlc3QgLWYgIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhl Y19leHQiICYmICRhc190ZXN0X3ggIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiOyB9OyB0 aGVuCisrICAgIGFjX2N2X3Byb2dfT0JKRFVNUD0iJHthY190b29sX3ByZWZpeH1vYmpkdW1wIgor KyAgICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGZvdW5kICRhc19kaXIvJGFjX3dvcmQkYWNf ZXhlY19leHQiID4mNQorKyAgICBicmVhayAyCisrICBmaQorK2RvbmUKKytkb25lCisrSUZTPSRh c19zYXZlX0lGUworKworK2ZpCisrZmkKKytPQkpEVU1QPSRhY19jdl9wcm9nX09CSkRVTVAKKytp ZiB0ZXN0IC1uICIkT0JKRFVNUCI7IHRoZW4KKysgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5P OiByZXN1bHQ6ICRPQkpEVU1QIiA+JjUKKyskYXNfZWNobyAiJE9CSkRVTVAiID4mNjsgfQorK2Vs c2UKKysgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IG5vIiA+JjUKKyskYXNf ZWNobyAibm8iID4mNjsgfQorK2ZpCisrCisrCisrZmkKKytpZiB0ZXN0IC16ICIkYWNfY3ZfcHJv Z19PQkpEVU1QIjsgdGhlbgorKyAgYWNfY3RfT0JKRFVNUD0kT0JKRFVNUAorKyAgIyBFeHRyYWN0 IHRoZSBmaXJzdCB3b3JkIG9mICJvYmpkdW1wIiwgc28gaXQgY2FuIGJlIGEgcHJvZ3JhbSBuYW1l IHdpdGggYXJncy4KKytzZXQgZHVtbXkgb2JqZHVtcDsgYWNfd29yZD0kMgorK3sgJGFzX2VjaG8g IiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgJGFjX3dvcmQiID4mNQorKyRhc19lY2hvX24g ImNoZWNraW5nIGZvciAkYWNfd29yZC4uLiAiID4mNjsgfQorK2lmIHRlc3QgIiR7YWNfY3ZfcHJv Z19hY19jdF9PQkpEVU1QK3NldH0iID0gc2V0OyB0aGVuCisrICAkYXNfZWNob19uICIoY2FjaGVk KSAiID4mNgorK2Vsc2UKKysgIGlmIHRlc3QgLW4gIiRhY19jdF9PQkpEVU1QIjsgdGhlbgorKyAg YWNfY3ZfcHJvZ19hY19jdF9PQkpEVU1QPSIkYWNfY3RfT0JKRFVNUCIgIyBMZXQgdGhlIHVzZXIg b3ZlcnJpZGUgdGhlIHRlc3QuCisrZWxzZQorK2FzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9T RVBBUkFUT1IKKytmb3IgYXNfZGlyIGluICRQQVRICisrZG8KKysgIElGUz0kYXNfc2F2ZV9JRlMK KysgIHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCisrICBmb3IgYWNfZXhlY19leHQgaW4g JycgJGFjX2V4ZWN1dGFibGVfZXh0ZW5zaW9uczsgZG8KKysgIGlmIHsgdGVzdCAtZiAiJGFzX2Rp ci8kYWNfd29yZCRhY19leGVjX2V4dCIgJiYgJGFzX3Rlc3RfeCAiJGFzX2Rpci8kYWNfd29yZCRh Y19leGVjX2V4dCI7IH07IHRoZW4KKysgICAgYWNfY3ZfcHJvZ19hY19jdF9PQkpEVU1QPSJvYmpk dW1wIgorKyAgICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGZvdW5kICRhc19kaXIvJGFjX3dv cmQkYWNfZXhlY19leHQiID4mNQorKyAgICBicmVhayAyCisrICBmaQorK2RvbmUKKytkb25lCisr SUZTPSRhc19zYXZlX0lGUworKworK2ZpCisrZmkKKythY19jdF9PQkpEVU1QPSRhY19jdl9wcm9n X2FjX2N0X09CSkRVTVAKKytpZiB0ZXN0IC1uICIkYWNfY3RfT0JKRFVNUCI7IHRoZW4KKysgIHsg JGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19jdF9PQkpEVU1QIiA+JjUKKysk YXNfZWNobyAiJGFjX2N0X09CSkRVTVAiID4mNjsgfQorK2Vsc2UKKysgIHsgJGFzX2VjaG8gIiRh c19tZTokTElORU5POiByZXN1bHQ6IG5vIiA+JjUKKyskYXNfZWNobyAibm8iID4mNjsgfQorK2Zp CisrCisrICBpZiB0ZXN0ICJ4JGFjX2N0X09CSkRVTVAiID0geDsgdGhlbgorKyAgICBPQkpEVU1Q PSJmYWxzZSIKKysgIGVsc2UKKysgICAgY2FzZSAkY3Jvc3NfY29tcGlsaW5nOiRhY190b29sX3dh cm5lZCBpbgorK3llczopCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6IHVz aW5nIGNyb3NzIHRvb2xzIG5vdCBwcmVmaXhlZCB3aXRoIGhvc3QgdHJpcGxldCIgPiY1CisrJGFz X2VjaG8gIiRhc19tZTogV0FSTklORzogdXNpbmcgY3Jvc3MgdG9vbHMgbm90IHByZWZpeGVkIHdp dGggaG9zdCB0cmlwbGV0IiA+JjI7fQorK2FjX3Rvb2xfd2FybmVkPXllcyA7OworK2VzYWMKKysg ICAgT0JKRFVNUD0kYWNfY3RfT0JKRFVNUAorKyAgZmkKKytlbHNlCisrICBPQkpEVU1QPSIkYWNf Y3ZfcHJvZ19PQkpEVU1QIgorK2ZpCisrCisrdGVzdCAteiAiJE9CSkRVTVAiICYmIE9CSkRVTVA9 b2JqZHVtcAorKworKworKworKworKworKworKworKworKworK3sgJGFzX2VjaG8gIiRhc19tZTok TElORU5POiBjaGVja2luZyBob3cgdG8gcmVjb2duaXplIGRlcGVuZGVudCBsaWJyYXJpZXMiID4m NQorKyRhc19lY2hvX24gImNoZWNraW5nIGhvdyB0byByZWNvZ25pemUgZGVwZW5kZW50IGxpYnJh cmllcy4uLiAiID4mNjsgfQorK2lmIHRlc3QgIiR7bHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Qr c2V0fSIgPSBzZXQ7IHRoZW4KKysgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2CisrZWxzZQor KyAgbHRfY3ZfZmlsZV9tYWdpY19jbWQ9JyRNQUdJQ19DTUQnCisrbHRfY3ZfZmlsZV9tYWdpY190 ZXN0X2ZpbGU9CisrbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9J3Vua25vd24nCisrIyBOZWVk IHRvIHNldCB0aGUgcHJlY2VkaW5nIHZhcmlhYmxlIG9uIGFsbCBwbGF0Zm9ybXMgdGhhdCBzdXBw b3J0CisrIyBpbnRlcmxpYnJhcnkgZGVwZW5kZW5jaWVzLgorKyMgJ25vbmUnIC0tIGRlcGVuZGVu Y2llcyBub3Qgc3VwcG9ydGVkLgorKyMgYHVua25vd24nIC0tIHNhbWUgYXMgbm9uZSwgYnV0IGRv Y3VtZW50cyB0aGF0IHdlIHJlYWxseSBkb24ndCBrbm93LgorKyMgJ3Bhc3NfYWxsJyAtLSBhbGwg ZGVwZW5kZW5jaWVzIHBhc3NlZCB3aXRoIG5vIGNoZWNrcy4KKysjICd0ZXN0X2NvbXBpbGUnIC0t IGNoZWNrIGJ5IG1ha2luZyB0ZXN0IHByb2dyYW0uCisrIyAnZmlsZV9tYWdpYyBbW3JlZ2V4XV0n IC0tIGNoZWNrIGJ5IGxvb2tpbmcgZm9yIGZpbGVzIGluIGxpYnJhcnkgcGF0aAorKyMgd2hpY2gg cmVzcG9uZHMgdG8gdGhlICRmaWxlX21hZ2ljX2NtZCB3aXRoIGEgZ2l2ZW4gZXh0ZW5kZWQgcmVn ZXguCisrIyBJZiB5b3UgaGF2ZSBgZmlsZScgb3IgZXF1aXZhbGVudCBvbiB5b3VyIHN5c3RlbSBh bmQgeW91J3JlIG5vdCBzdXJlCisrIyB3aGV0aGVyIGBwYXNzX2FsbCcgd2lsbCAqYWx3YXlzKiB3 b3JrLCB5b3UgcHJvYmFibHkgd2FudCB0aGlzIG9uZS4KKysKKytjYXNlICRob3N0X29zIGluCisr YWl4WzQtOV0qKQorKyAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9cGFzc19hbGwKKysgIDs7 CisrCisrYmVvcyopCisrICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD1wYXNzX2FsbAorKyAg OzsKKysKKytic2RpWzQ1XSopCisrICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD0nZmlsZV9t YWdpYyBFTEYgWzAtOV1bMC05XSotYml0IFtNTF1TQiAoc2hhcmVkIG9iamVjdHxkeW5hbWljIGxp YiknCisrICBsdF9jdl9maWxlX21hZ2ljX2NtZD0nL3Vzci9iaW4vZmlsZSAtTCcKKysgIGx0X2N2 X2ZpbGVfbWFnaWNfdGVzdF9maWxlPS9zaGxpYi9saWJjLnNvCisrICA7OworKworK2N5Z3dpbiop CisrICAjIGZ1bmNfd2luMzJfbGliaWQgaXMgYSBzaGVsbCBmdW5jdGlvbiBkZWZpbmVkIGluIGx0 bWFpbi5zaAorKyAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9J2ZpbGVfbWFnaWMgXng4NiBh cmNoaXZlIGltcG9ydHxeeDg2IERMTCcKKysgIGx0X2N2X2ZpbGVfbWFnaWNfY21kPSdmdW5jX3dp bjMyX2xpYmlkJworKyAgOzsKKysKKyttaW5ndyogfCBwdzMyKikKKysgICMgQmFzZSBNU1lTL01p bkdXIGRvIG5vdCBwcm92aWRlIHRoZSAnZmlsZScgY29tbWFuZCBuZWVkZWQgYnkKKysgICMgZnVu Y193aW4zMl9saWJpZCBzaGVsbCBmdW5jdGlvbiwgc28gdXNlIGEgd2Vha2VyIHRlc3QgYmFzZWQg b24gJ29iamR1bXAnLAorKyAgIyB1bmxlc3Mgd2UgZmluZCAnZmlsZScsIGZvciBleGFtcGxlIGJl Y2F1c2Ugd2UgYXJlIGNyb3NzLWNvbXBpbGluZy4KKysgIGlmICggZmlsZSAvICkgPi9kZXYvbnVs bCAyPiYxOyB0aGVuCisrICAgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPSdmaWxlX21hZ2lj IF54ODYgYXJjaGl2ZSBpbXBvcnR8Xng4NiBETEwnCisrICAgIGx0X2N2X2ZpbGVfbWFnaWNfY21k PSdmdW5jX3dpbjMyX2xpYmlkJworKyAgZWxzZQorKyAgICBsdF9jdl9kZXBsaWJzX2NoZWNrX21l dGhvZD0nZmlsZV9tYWdpYyBmaWxlIGZvcm1hdCBwZWkqLWkzODYoLiphcmNoaXRlY3R1cmU6IGkz ODYpPycKKysgICAgbHRfY3ZfZmlsZV9tYWdpY19jbWQ9JyRPQkpEVU1QIC1mJworKyAgZmkKKysg IDs7CisrCisrY2VnY2MpCisrICAjIHVzZSB0aGUgd2Vha2VyIHRlc3QgYmFzZWQgb24gJ29iamR1 bXAnLiBTZWUgbWluZ3cqLgorKyAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9J2ZpbGVfbWFn aWMgZmlsZSBmb3JtYXQgcGUtYXJtLS4qbGl0dGxlKC4qYXJjaGl0ZWN0dXJlOiBhcm0pPycKKysg IGx0X2N2X2ZpbGVfbWFnaWNfY21kPSckT0JKRFVNUCAtZicKKysgIDs7CisrCisrZGFyd2luKiB8 IHJoYXBzb2R5KikKKysgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPXBhc3NfYWxsCisrICA7 OworKworK2ZyZWVic2QqIHwgZHJhZ29uZmx5KikKKysgIGlmIGVjaG8gX19FTEZfXyB8ICRDQyAt RSAtIHwgJEdSRVAgX19FTEZfXyA+IC9kZXYvbnVsbDsgdGhlbgorKyAgICBjYXNlICRob3N0X2Nw dSBpbgorKyAgICBpKjg2ICkKKysgICAgICAjIE5vdCBzdXJlIHdoZXRoZXIgdGhlIHByZXNlbmNl IG9mIE9wZW5CU0QgaGVyZSB3YXMgYSBtaXN0YWtlLgorKyAgICAgICMgTGV0J3MgYWNjZXB0IGJv dGggb2YgdGhlbSB1bnRpbCB0aGlzIGlzIGNsZWFyZWQgdXAuCisrICAgICAgbHRfY3ZfZGVwbGli c19jaGVja19tZXRob2Q9J2ZpbGVfbWFnaWMgKEZyZWVCU0R8T3BlbkJTRHxEcmFnb25GbHkpL2lb My05XTg2IChjb21wYWN0ICk/ZGVtYW5kIHBhZ2VkIHNoYXJlZCBsaWJyYXJ5JworKyAgICAgIGx0 X2N2X2ZpbGVfbWFnaWNfY21kPS91c3IvYmluL2ZpbGUKKysgICAgICBsdF9jdl9maWxlX21hZ2lj X3Rlc3RfZmlsZT1gZWNobyAvdXNyL2xpYi9saWJjLnNvLipgCisrICAgICAgOzsKKysgICAgZXNh YworKyAgZWxzZQorKyAgICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD1wYXNzX2FsbAorKyAg ZmkKKysgIDs7CisrCisrZ251KikKKysgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPXBhc3Nf YWxsCisrICA7OworKworK2hwdXgxMC4yMCogfCBocHV4MTEqKQorKyAgbHRfY3ZfZmlsZV9tYWdp Y19jbWQ9L3Vzci9iaW4vZmlsZQorKyAgY2FzZSAkaG9zdF9jcHUgaW4KKysgIGlhNjQqKQorKyAg ICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD0nZmlsZV9tYWdpYyAoc1swLTldWzAtOV1bMC05 XXxFTEYtWzAtOV1bMC05XSkgc2hhcmVkIG9iamVjdCBmaWxlIC0gSUE2NCcKKysgICAgbHRfY3Zf ZmlsZV9tYWdpY190ZXN0X2ZpbGU9L3Vzci9saWIvaHB1eDMyL2xpYmMuc28KKysgICAgOzsKKysg IGhwcGEqNjQqKQorKyAgICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD0nZmlsZV9tYWdpYyAo c1swLTldWzAtOV1bMC05XXxFTEYtWzAtOV1bMC05XSkgc2hhcmVkIG9iamVjdCBmaWxlIC0gUEEt UklTQyBbMC05XS5bMC05XScKKysgICAgbHRfY3ZfZmlsZV9tYWdpY190ZXN0X2ZpbGU9L3Vzci9s aWIvcGEyMF82NC9saWJjLnNsCisrICAgIDs7CisrICAqKQorKyAgICBsdF9jdl9kZXBsaWJzX2No ZWNrX21ldGhvZD0nZmlsZV9tYWdpYyAoc1swLTldWzAtOV1bMC05XXxQQS1SSVNDWzAtOV0uWzAt OV0pIHNoYXJlZCBsaWJyYXJ5JworKyAgICBsdF9jdl9maWxlX21hZ2ljX3Rlc3RfZmlsZT0vdXNy L2xpYi9saWJjLnNsCisrICAgIDs7CisrICBlc2FjCisrICA7OworKworK2ludGVyaXhbMy05XSop CisrICAjIFBJQyBjb2RlIGlzIGJyb2tlbiBvbiBJbnRlcml4IDMueCwgdGhhdCdzIHdoeSB8XC5h IG5vdCB8X3BpY1wuYSBoZXJlCisrICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD0nbWF0Y2hf cGF0dGVybiAvbGliW14vXSsoXC5zb3xcLmEpJCcKKysgIDs7CisrCisraXJpeDUqIHwgaXJpeDYq IHwgbm9uc3RvcHV4KikKKysgIGNhc2UgJExEIGluCisrICAqLTMyfCoiLTMyICIpIGxpYm1hZ2lj PTMyLWJpdDs7CisrICAqLW4zMnwqIi1uMzIgIikgbGlibWFnaWM9TjMyOzsKKysgICotNjR8KiIt NjQgIikgbGlibWFnaWM9NjQtYml0OzsKKysgICopIGxpYm1hZ2ljPW5ldmVyLW1hdGNoOzsKKysg IGVzYWMKKysgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPXBhc3NfYWxsCisrICA7OworKwor KyMgVGhpcyBtdXN0IGJlIExpbnV4IEVMRi4KKytsaW51eCogfCBrKmJzZCotZ251KQorKyAgbHRf Y3ZfZGVwbGlic19jaGVja19tZXRob2Q9cGFzc19hbGwKKysgIDs7CisrCisrbmV0YnNkKikKKysg IGlmIGVjaG8gX19FTEZfXyB8ICRDQyAtRSAtIHwgJEdSRVAgX19FTEZfXyA+IC9kZXYvbnVsbDsg dGhlbgorKyAgICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD0nbWF0Y2hfcGF0dGVybiAvbGli W14vXSsoXC5zb1wuWzAtOV0rXC5bMC05XSt8X3BpY1wuYSkkJworKyAgZWxzZQorKyAgICBsdF9j dl9kZXBsaWJzX2NoZWNrX21ldGhvZD0nbWF0Y2hfcGF0dGVybiAvbGliW14vXSsoXC5zb3xfcGlj XC5hKSQnCisrICBmaQorKyAgOzsKKysKKytuZXdvczYqKQorKyAgbHRfY3ZfZGVwbGlic19jaGVj a19tZXRob2Q9J2ZpbGVfbWFnaWMgRUxGIFswLTldWzAtOV0qLWJpdCBbTUxdU0IgKGV4ZWN1dGFi bGV8ZHluYW1pYyBsaWIpJworKyAgbHRfY3ZfZmlsZV9tYWdpY19jbWQ9L3Vzci9iaW4vZmlsZQor KyAgbHRfY3ZfZmlsZV9tYWdpY190ZXN0X2ZpbGU9L3Vzci9saWIvbGlibmxzLnNvCisrICA7Owor KworKypudG8qIHwgKnFueCopCisrICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD1wYXNzX2Fs bAorKyAgOzsKKysKKytvcGVuYnNkKikKKysgIGlmIHRlc3QgLXogImBlY2hvIF9fRUxGX18gfCAk Q0MgLUUgLSB8ICRHUkVQIF9fRUxGX19gIiB8fCB0ZXN0ICIkaG9zdF9vcy0kaG9zdF9jcHUiID0g Im9wZW5ic2QyLjgtcG93ZXJwYyI7IHRoZW4KKysgICAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRo b2Q9J21hdGNoX3BhdHRlcm4gL2xpYlteL10rKFwuc29cLlswLTldK1wuWzAtOV0rfFwuc298X3Bp Y1wuYSkkJworKyAgZWxzZQorKyAgICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD0nbWF0Y2hf cGF0dGVybiAvbGliW14vXSsoXC5zb1wuWzAtOV0rXC5bMC05XSt8X3BpY1wuYSkkJworKyAgZmkK KysgIDs7CisrCisrb3NmMyogfCBvc2Y0KiB8IG9zZjUqKQorKyAgbHRfY3ZfZGVwbGlic19jaGVj a19tZXRob2Q9cGFzc19hbGwKKysgIDs7CisrCisrcmRvcyopCisrICBsdF9jdl9kZXBsaWJzX2No ZWNrX21ldGhvZD1wYXNzX2FsbAorKyAgOzsKKysKKytzb2xhcmlzKikKKysgIGx0X2N2X2RlcGxp YnNfY2hlY2tfbWV0aG9kPXBhc3NfYWxsCisrICA7OworKworK3N5c3Y1KiB8IHNjbzMuMnY1KiB8 IHNjbzV2NiogfCB1bml4d2FyZSogfCBPcGVuVU5JWCogfCBzeXN2NCp1dzIqKQorKyAgbHRfY3Zf ZGVwbGlic19jaGVja19tZXRob2Q9cGFzc19hbGwKKysgIDs7CisrCisrc3lzdjQgfCBzeXN2NC4z KikKKysgIGNhc2UgJGhvc3RfdmVuZG9yIGluCisrICBtb3Rvcm9sYSkKKysgICAgbHRfY3ZfZGVw bGlic19jaGVja19tZXRob2Q9J2ZpbGVfbWFnaWMgRUxGIFswLTldWzAtOV0qLWJpdCBbTUxdU0Ig KHNoYXJlZCBvYmplY3R8ZHluYW1pYyBsaWIpIE1bMC05XVswLTldKiBWZXJzaW9uIFswLTldJwor KyAgICBsdF9jdl9maWxlX21hZ2ljX3Rlc3RfZmlsZT1gZWNobyAvdXNyL2xpYi9saWJjLnNvKmAK KysgICAgOzsKKysgIG5jcikKKysgICAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9cGFzc19h bGwKKysgICAgOzsKKysgIHNlcXVlbnQpCisrICAgIGx0X2N2X2ZpbGVfbWFnaWNfY21kPScvYmlu L2ZpbGUnCisrICAgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPSdmaWxlX21hZ2ljIEVMRiBb MC05XVswLTldKi1iaXQgW0xNXVNCIChzaGFyZWQgb2JqZWN0fGR5bmFtaWMgbGliICknCisrICAg IDs7CisrICBzbmkpCisrICAgIGx0X2N2X2ZpbGVfbWFnaWNfY21kPScvYmluL2ZpbGUnCisrICAg IGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPSJmaWxlX21hZ2ljIEVMRiBbMC05XVswLTldKi1i aXQgW0xNXVNCIGR5bmFtaWMgbGliIgorKyAgICBsdF9jdl9maWxlX21hZ2ljX3Rlc3RfZmlsZT0v bGliL2xpYmMuc28KKysgICAgOzsKKysgIHNpZW1lbnMpCisrICAgIGx0X2N2X2RlcGxpYnNfY2hl Y2tfbWV0aG9kPXBhc3NfYWxsCisrICAgIDs7CisrICBwYykKKysgICAgbHRfY3ZfZGVwbGlic19j aGVja19tZXRob2Q9cGFzc19hbGwKKysgICAgOzsKKysgIGVzYWMKKysgIDs7CisrCisrdHBmKikK KysgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPXBhc3NfYWxsCisrICA7OworK2VzYWMKKysK KytmaQorK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRsdF9jdl9kZXBsaWJz X2NoZWNrX21ldGhvZCIgPiY1CisrJGFzX2VjaG8gIiRsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhv ZCIgPiY2OyB9CisrZmlsZV9tYWdpY19jbWQ9JGx0X2N2X2ZpbGVfbWFnaWNfY21kCisrZGVwbGli c19jaGVja19tZXRob2Q9JGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kCisrdGVzdCAteiAiJGRl cGxpYnNfY2hlY2tfbWV0aG9kIiAmJiBkZXBsaWJzX2NoZWNrX21ldGhvZD11bmtub3duCisrCisr CisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisraWYgdGVzdCAtbiAiJGFjX3Rvb2xfcHJl Zml4IjsgdGhlbgorKyAgIyBFeHRyYWN0IHRoZSBmaXJzdCB3b3JkIG9mICIke2FjX3Rvb2xfcHJl Zml4fWFyIiwgc28gaXQgY2FuIGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJncy4KKytzZXQgZHVt bXkgJHthY190b29sX3ByZWZpeH1hcjsgYWNfd29yZD0kMgorK3sgJGFzX2VjaG8gIiRhc19tZTok TElORU5POiBjaGVja2luZyBmb3IgJGFjX3dvcmQiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5n IGZvciAkYWNfd29yZC4uLiAiID4mNjsgfQorK2lmIHRlc3QgIiR7YWNfY3ZfcHJvZ19BUitzZXR9 IiA9IHNldDsgdGhlbgorKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKKytlbHNlCisrICBp ZiB0ZXN0IC1uICIkQVIiOyB0aGVuCisrICBhY19jdl9wcm9nX0FSPSIkQVIiICMgTGV0IHRoZSB1 c2VyIG92ZXJyaWRlIHRoZSB0ZXN0LgorK2Vsc2UKKythc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBB VEhfU0VQQVJBVE9SCisrZm9yIGFzX2RpciBpbiAkUEFUSAorK2RvCisrICBJRlM9JGFzX3NhdmVf SUZTCisrICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgorKyAgZm9yIGFjX2V4ZWNfZXh0 IGluICcnICRhY19leGVjdXRhYmxlX2V4dGVuc2lvbnM7IGRvCisrICBpZiB7IHRlc3QgLWYgIiRh c19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiICYmICRhc190ZXN0X3ggIiRhc19kaXIvJGFjX3dv cmQkYWNfZXhlY19leHQiOyB9OyB0aGVuCisrICAgIGFjX2N2X3Byb2dfQVI9IiR7YWNfdG9vbF9w cmVmaXh9YXIiCisrICAgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZm91bmQgJGFzX2Rpci8k YWNfd29yZCRhY19leGVjX2V4dCIgPiY1CisrICAgIGJyZWFrIDIKKysgIGZpCisrZG9uZQorK2Rv bmUKKytJRlM9JGFzX3NhdmVfSUZTCisrCisrZmkKKytmaQorK0FSPSRhY19jdl9wcm9nX0FSCisr aWYgdGVzdCAtbiAiJEFSIjsgdGhlbgorKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJl c3VsdDogJEFSIiA+JjUKKyskYXNfZWNobyAiJEFSIiA+JjY7IH0KKytlbHNlCisrICB7ICRhc19l Y2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiBubyIgPiY1CisrJGFzX2VjaG8gIm5vIiA+JjY7 IH0KKytmaQorKworKworK2ZpCisraWYgdGVzdCAteiAiJGFjX2N2X3Byb2dfQVIiOyB0aGVuCisr ICBhY19jdF9BUj0kQVIKKysgICMgRXh0cmFjdCB0aGUgZmlyc3Qgd29yZCBvZiAiYXIiLCBzbyBp dCBjYW4gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmdzLgorK3NldCBkdW1teSBhcjsgYWNfd29y ZD0kMgorK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgJGFjX3dvcmQi ID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIGZvciAkYWNfd29yZC4uLiAiID4mNjsgfQorK2lm IHRlc3QgIiR7YWNfY3ZfcHJvZ19hY19jdF9BUitzZXR9IiA9IHNldDsgdGhlbgorKyAgJGFzX2Vj aG9fbiAiKGNhY2hlZCkgIiA+JjYKKytlbHNlCisrICBpZiB0ZXN0IC1uICIkYWNfY3RfQVIiOyB0 aGVuCisrICBhY19jdl9wcm9nX2FjX2N0X0FSPSIkYWNfY3RfQVIiICMgTGV0IHRoZSB1c2VyIG92 ZXJyaWRlIHRoZSB0ZXN0LgorK2Vsc2UKKythc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQ QVJBVE9SCisrZm9yIGFzX2RpciBpbiAkUEFUSAorK2RvCisrICBJRlM9JGFzX3NhdmVfSUZTCisr ICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgorKyAgZm9yIGFjX2V4ZWNfZXh0IGluICcn ICRhY19leGVjdXRhYmxlX2V4dGVuc2lvbnM7IGRvCisrICBpZiB7IHRlc3QgLWYgIiRhc19kaXIv JGFjX3dvcmQkYWNfZXhlY19leHQiICYmICRhc190ZXN0X3ggIiRhc19kaXIvJGFjX3dvcmQkYWNf ZXhlY19leHQiOyB9OyB0aGVuCisrICAgIGFjX2N2X3Byb2dfYWNfY3RfQVI9ImFyIgorKyAgICAk YXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGZvdW5kICRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19l eHQiID4mNQorKyAgICBicmVhayAyCisrICBmaQorK2RvbmUKKytkb25lCisrSUZTPSRhc19zYXZl X0lGUworKworK2ZpCisrZmkKKythY19jdF9BUj0kYWNfY3ZfcHJvZ19hY19jdF9BUgorK2lmIHRl c3QgLW4gIiRhY19jdF9BUiI7IHRoZW4KKysgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBy ZXN1bHQ6ICRhY19jdF9BUiIgPiY1CisrJGFzX2VjaG8gIiRhY19jdF9BUiIgPiY2OyB9CisrZWxz ZQorKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogbm8iID4mNQorKyRhc19l Y2hvICJubyIgPiY2OyB9CisrZmkKKysKKysgIGlmIHRlc3QgIngkYWNfY3RfQVIiID0geDsgdGhl bgorKyAgICBBUj0iZmFsc2UiCisrICBlbHNlCisrICAgIGNhc2UgJGNyb3NzX2NvbXBpbGluZzok YWNfdG9vbF93YXJuZWQgaW4KKyt5ZXM6KQorK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBX QVJOSU5HOiB1c2luZyBjcm9zcyB0b29scyBub3QgcHJlZml4ZWQgd2l0aCBob3N0IHRyaXBsZXQi ID4mNQorKyRhc19lY2hvICIkYXNfbWU6IFdBUk5JTkc6IHVzaW5nIGNyb3NzIHRvb2xzIG5vdCBw cmVmaXhlZCB3aXRoIGhvc3QgdHJpcGxldCIgPiYyO30KKythY190b29sX3dhcm5lZD15ZXMgOzsK Kytlc2FjCisrICAgIEFSPSRhY19jdF9BUgorKyAgZmkKKytlbHNlCisrICBBUj0iJGFjX2N2X3By b2dfQVIiCisrZmkKKysKKyt0ZXN0IC16ICIkQVIiICYmIEFSPWFyCisrdGVzdCAteiAiJEFSX0ZM QUdTIiAmJiBBUl9GTEFHUz1jcnUKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKytp ZiB0ZXN0IC1uICIkYWNfdG9vbF9wcmVmaXgiOyB0aGVuCisrICAjIEV4dHJhY3QgdGhlIGZpcnN0 IHdvcmQgb2YgIiR7YWNfdG9vbF9wcmVmaXh9c3RyaXAiLCBzbyBpdCBjYW4gYmUgYSBwcm9ncmFt IG5hbWUgd2l0aCBhcmdzLgorK3NldCBkdW1teSAke2FjX3Rvb2xfcHJlZml4fXN0cmlwOyBhY193 b3JkPSQyCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciAkYWNfd29y ZCIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yICRhY193b3JkLi4uICIgPiY2OyB9Cisr aWYgdGVzdCAiJHthY19jdl9wcm9nX1NUUklQK3NldH0iID0gc2V0OyB0aGVuCisrICAkYXNfZWNo b19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysgIGlmIHRlc3QgLW4gIiRTVFJJUCI7IHRoZW4K KysgIGFjX2N2X3Byb2dfU1RSSVA9IiRTVFJJUCIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhl IHRlc3QuCisrZWxzZQorK2FzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IKKytm b3IgYXNfZGlyIGluICRQQVRICisrZG8KKysgIElGUz0kYXNfc2F2ZV9JRlMKKysgIHRlc3QgLXog IiRhc19kaXIiICYmIGFzX2Rpcj0uCisrICBmb3IgYWNfZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1 dGFibGVfZXh0ZW5zaW9uczsgZG8KKysgIGlmIHsgdGVzdCAtZiAiJGFzX2Rpci8kYWNfd29yZCRh Y19leGVjX2V4dCIgJiYgJGFzX3Rlc3RfeCAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCI7 IH07IHRoZW4KKysgICAgYWNfY3ZfcHJvZ19TVFJJUD0iJHthY190b29sX3ByZWZpeH1zdHJpcCIK KysgICAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBmb3VuZCAkYXNfZGlyLyRhY193b3JkJGFj X2V4ZWNfZXh0IiA+JjUKKysgICAgYnJlYWsgMgorKyAgZmkKKytkb25lCisrZG9uZQorK0lGUz0k YXNfc2F2ZV9JRlMKKysKKytmaQorK2ZpCisrU1RSSVA9JGFjX2N2X3Byb2dfU1RSSVAKKytpZiB0 ZXN0IC1uICIkU1RSSVAiOyB0aGVuCisrICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVz dWx0OiAkU1RSSVAiID4mNQorKyRhc19lY2hvICIkU1RSSVAiID4mNjsgfQorK2Vsc2UKKysgIHsg JGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IG5vIiA+JjUKKyskYXNfZWNobyAibm8i ID4mNjsgfQorK2ZpCisrCisrCisrZmkKKytpZiB0ZXN0IC16ICIkYWNfY3ZfcHJvZ19TVFJJUCI7 IHRoZW4KKysgIGFjX2N0X1NUUklQPSRTVFJJUAorKyAgIyBFeHRyYWN0IHRoZSBmaXJzdCB3b3Jk IG9mICJzdHJpcCIsIHNvIGl0IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3MuCisrc2V0 IGR1bW15IHN0cmlwOyBhY193b3JkPSQyCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNo ZWNraW5nIGZvciAkYWNfd29yZCIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yICRhY193 b3JkLi4uICIgPiY2OyB9CisraWYgdGVzdCAiJHthY19jdl9wcm9nX2FjX2N0X1NUUklQK3NldH0i ID0gc2V0OyB0aGVuCisrICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysgIGlm IHRlc3QgLW4gIiRhY19jdF9TVFJJUCI7IHRoZW4KKysgIGFjX2N2X3Byb2dfYWNfY3RfU1RSSVA9 IiRhY19jdF9TVFJJUCIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3QuCisrZWxzZQor K2FzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IKKytmb3IgYXNfZGlyIGluICRQ QVRICisrZG8KKysgIElGUz0kYXNfc2F2ZV9JRlMKKysgIHRlc3QgLXogIiRhc19kaXIiICYmIGFz X2Rpcj0uCisrICBmb3IgYWNfZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1dGFibGVfZXh0ZW5zaW9u czsgZG8KKysgIGlmIHsgdGVzdCAtZiAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgJiYg JGFzX3Rlc3RfeCAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCI7IH07IHRoZW4KKysgICAg YWNfY3ZfcHJvZ19hY19jdF9TVFJJUD0ic3RyaXAiCisrICAgICRhc19lY2hvICIkYXNfbWU6JExJ TkVOTzogZm91bmQgJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgPiY1CisrICAgIGJyZWFr IDIKKysgIGZpCisrZG9uZQorK2RvbmUKKytJRlM9JGFzX3NhdmVfSUZTCisrCisrZmkKKytmaQor K2FjX2N0X1NUUklQPSRhY19jdl9wcm9nX2FjX2N0X1NUUklQCisraWYgdGVzdCAtbiAiJGFjX2N0 X1NUUklQIjsgdGhlbgorKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFj X2N0X1NUUklQIiA+JjUKKyskYXNfZWNobyAiJGFjX2N0X1NUUklQIiA+JjY7IH0KKytlbHNlCisr ICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiBubyIgPiY1CisrJGFzX2VjaG8g Im5vIiA+JjY7IH0KKytmaQorKworKyAgaWYgdGVzdCAieCRhY19jdF9TVFJJUCIgPSB4OyB0aGVu CisrICAgIFNUUklQPSI6IgorKyAgZWxzZQorKyAgICBjYXNlICRjcm9zc19jb21waWxpbmc6JGFj X3Rvb2xfd2FybmVkIGluCisreWVzOikKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogV0FS TklORzogdXNpbmcgY3Jvc3MgdG9vbHMgbm90IHByZWZpeGVkIHdpdGggaG9zdCB0cmlwbGV0IiA+ JjUKKyskYXNfZWNobyAiJGFzX21lOiBXQVJOSU5HOiB1c2luZyBjcm9zcyB0b29scyBub3QgcHJl Zml4ZWQgd2l0aCBob3N0IHRyaXBsZXQiID4mMjt9CisrYWNfdG9vbF93YXJuZWQ9eWVzIDs7Cisr ZXNhYworKyAgICBTVFJJUD0kYWNfY3RfU1RSSVAKKysgIGZpCisrZWxzZQorKyAgU1RSSVA9IiRh Y19jdl9wcm9nX1NUUklQIgorK2ZpCisrCisrdGVzdCAteiAiJFNUUklQIiAmJiBTVFJJUD06Cisr CisrCisrCisrCisrCisrCisraWYgdGVzdCAtbiAiJGFjX3Rvb2xfcHJlZml4IjsgdGhlbgorKyAg IyBFeHRyYWN0IHRoZSBmaXJzdCB3b3JkIG9mICIke2FjX3Rvb2xfcHJlZml4fXJhbmxpYiIsIHNv IGl0IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3MuCisrc2V0IGR1bW15ICR7YWNfdG9v bF9wcmVmaXh9cmFubGliOyBhY193b3JkPSQyCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86 IGNoZWNraW5nIGZvciAkYWNfd29yZCIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yICRh Y193b3JkLi4uICIgPiY2OyB9CisraWYgdGVzdCAiJHthY19jdl9wcm9nX1JBTkxJQitzZXR9IiA9 IHNldDsgdGhlbgorKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKKytlbHNlCisrICBpZiB0 ZXN0IC1uICIkUkFOTElCIjsgdGhlbgorKyAgYWNfY3ZfcHJvZ19SQU5MSUI9IiRSQU5MSUIiICMg TGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0LgorK2Vsc2UKKythc19zYXZlX0lGUz0kSUZT OyBJRlM9JFBBVEhfU0VQQVJBVE9SCisrZm9yIGFzX2RpciBpbiAkUEFUSAorK2RvCisrICBJRlM9 JGFzX3NhdmVfSUZTCisrICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgorKyAgZm9yIGFj X2V4ZWNfZXh0IGluICcnICRhY19leGVjdXRhYmxlX2V4dGVuc2lvbnM7IGRvCisrICBpZiB7IHRl c3QgLWYgIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiICYmICRhc190ZXN0X3ggIiRhc19k aXIvJGFjX3dvcmQkYWNfZXhlY19leHQiOyB9OyB0aGVuCisrICAgIGFjX2N2X3Byb2dfUkFOTElC PSIke2FjX3Rvb2xfcHJlZml4fXJhbmxpYiIKKysgICAgJGFzX2VjaG8gIiRhc19tZTokTElORU5P OiBmb3VuZCAkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiA+JjUKKysgICAgYnJlYWsgMgor KyAgZmkKKytkb25lCisrZG9uZQorK0lGUz0kYXNfc2F2ZV9JRlMKKysKKytmaQorK2ZpCisrUkFO TElCPSRhY19jdl9wcm9nX1JBTkxJQgorK2lmIHRlc3QgLW4gIiRSQU5MSUIiOyB0aGVuCisrICB7 ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkUkFOTElCIiA+JjUKKyskYXNfZWNo byAiJFJBTkxJQiIgPiY2OyB9CisrZWxzZQorKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86 IHJlc3VsdDogbm8iID4mNQorKyRhc19lY2hvICJubyIgPiY2OyB9CisrZmkKKysKKysKKytmaQor K2lmIHRlc3QgLXogIiRhY19jdl9wcm9nX1JBTkxJQiI7IHRoZW4KKysgIGFjX2N0X1JBTkxJQj0k UkFOTElCCisrICAjIEV4dHJhY3QgdGhlIGZpcnN0IHdvcmQgb2YgInJhbmxpYiIsIHNvIGl0IGNh biBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3MuCisrc2V0IGR1bW15IHJhbmxpYjsgYWNfd29y ZD0kMgorK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgJGFjX3dvcmQi ID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIGZvciAkYWNfd29yZC4uLiAiID4mNjsgfQorK2lm IHRlc3QgIiR7YWNfY3ZfcHJvZ19hY19jdF9SQU5MSUIrc2V0fSIgPSBzZXQ7IHRoZW4KKysgICRh c19lY2hvX24gIihjYWNoZWQpICIgPiY2CisrZWxzZQorKyAgaWYgdGVzdCAtbiAiJGFjX2N0X1JB TkxJQiI7IHRoZW4KKysgIGFjX2N2X3Byb2dfYWNfY3RfUkFOTElCPSIkYWNfY3RfUkFOTElCIiAj IExldCB0aGUgdXNlciBvdmVycmlkZSB0aGUgdGVzdC4KKytlbHNlCisrYXNfc2F2ZV9JRlM9JElG UzsgSUZTPSRQQVRIX1NFUEFSQVRPUgorK2ZvciBhc19kaXIgaW4gJFBBVEgKKytkbworKyAgSUZT PSRhc19zYXZlX0lGUworKyAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KKysgIGZvciBh Y19leGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9leHRlbnNpb25zOyBkbworKyAgaWYgeyB0 ZXN0IC1mICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiAmJiAkYXNfdGVzdF94ICIkYXNf ZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IjsgfTsgdGhlbgorKyAgICBhY19jdl9wcm9nX2FjX2N0 X1JBTkxJQj0icmFubGliIgorKyAgICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGZvdW5kICRh c19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiID4mNQorKyAgICBicmVhayAyCisrICBmaQorK2Rv bmUKKytkb25lCisrSUZTPSRhc19zYXZlX0lGUworKworK2ZpCisrZmkKKythY19jdF9SQU5MSUI9 JGFjX2N2X3Byb2dfYWNfY3RfUkFOTElCCisraWYgdGVzdCAtbiAiJGFjX2N0X1JBTkxJQiI7IHRo ZW4KKysgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19jdF9SQU5MSUIi ID4mNQorKyRhc19lY2hvICIkYWNfY3RfUkFOTElCIiA+JjY7IH0KKytlbHNlCisrICB7ICRhc19l Y2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiBubyIgPiY1CisrJGFzX2VjaG8gIm5vIiA+JjY7 IH0KKytmaQorKworKyAgaWYgdGVzdCAieCRhY19jdF9SQU5MSUIiID0geDsgdGhlbgorKyAgICBS QU5MSUI9IjoiCisrICBlbHNlCisrICAgIGNhc2UgJGNyb3NzX2NvbXBpbGluZzokYWNfdG9vbF93 YXJuZWQgaW4KKyt5ZXM6KQorK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBXQVJOSU5HOiB1 c2luZyBjcm9zcyB0b29scyBub3QgcHJlZml4ZWQgd2l0aCBob3N0IHRyaXBsZXQiID4mNQorKyRh c19lY2hvICIkYXNfbWU6IFdBUk5JTkc6IHVzaW5nIGNyb3NzIHRvb2xzIG5vdCBwcmVmaXhlZCB3 aXRoIGhvc3QgdHJpcGxldCIgPiYyO30KKythY190b29sX3dhcm5lZD15ZXMgOzsKKytlc2FjCisr ICAgIFJBTkxJQj0kYWNfY3RfUkFOTElCCisrICBmaQorK2Vsc2UKKysgIFJBTkxJQj0iJGFjX2N2 X3Byb2dfUkFOTElCIgorK2ZpCisrCisrdGVzdCAteiAiJFJBTkxJQiIgJiYgUkFOTElCPToKKysK KysKKysKKysKKysKKysKKysjIERldGVybWluZSBjb21tYW5kcyB0byBjcmVhdGUgb2xkLXN0eWxl IHN0YXRpYyBhcmNoaXZlcy4KKytvbGRfYXJjaGl2ZV9jbWRzPSckQVIgJEFSX0ZMQUdTICRvbGRs aWIkb2xkb2JqcycKKytvbGRfcG9zdGluc3RhbGxfY21kcz0nY2htb2QgNjQ0ICRvbGRsaWInCisr b2xkX3Bvc3R1bmluc3RhbGxfY21kcz0KKysKKytpZiB0ZXN0IC1uICIkUkFOTElCIjsgdGhlbgor KyAgY2FzZSAkaG9zdF9vcyBpbgorKyAgb3BlbmJzZCopCisrICAgIG9sZF9wb3N0aW5zdGFsbF9j bWRzPSIkb2xkX3Bvc3RpbnN0YWxsX2NtZHN+XCRSQU5MSUIgLXQgXCRvbGRsaWIiCisrICAgIDs7 CisrICAqKQorKyAgICBvbGRfcG9zdGluc3RhbGxfY21kcz0iJG9sZF9wb3N0aW5zdGFsbF9jbWRz flwkUkFOTElCIFwkb2xkbGliIgorKyAgICA7OworKyAgZXNhYworKyAgb2xkX2FyY2hpdmVfY21k cz0iJG9sZF9hcmNoaXZlX2NtZHN+XCRSQU5MSUIgXCRvbGRsaWIiCisrZmkKKysKKysKKysKKysK KysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysK KysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysjIElmIG5vIEMgY29tcGlsZXIgd2Fz IHNwZWNpZmllZCwgdXNlIENDLgorK0xUQ0M9JHtMVENDLSIkQ0MifQorKworKyMgSWYgbm8gQyBj b21waWxlciBmbGFncyB3ZXJlIHNwZWNpZmllZCwgdXNlIENGTEFHUy4KKytMVENGTEFHUz0ke0xU Q0ZMQUdTLSIkQ0ZMQUdTIn0KKysKKysjIEFsbG93IENDIHRvIGJlIGEgcHJvZ3JhbSBuYW1lIHdp dGggYXJndW1lbnRzLgorK2NvbXBpbGVyPSRDQworKworKworKyMgQ2hlY2sgZm9yIGNvbW1hbmQg dG8gZ3JhYiB0aGUgcmF3IHN5bWJvbCBuYW1lIGZvbGxvd2VkIGJ5IEMgc3ltYm9sIGZyb20gbm0u CisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGNvbW1hbmQgdG8gcGFyc2Ug JE5NIG91dHB1dCBmcm9tICRjb21waWxlciBvYmplY3QiID4mNQorKyRhc19lY2hvX24gImNoZWNr aW5nIGNvbW1hbmQgdG8gcGFyc2UgJE5NIG91dHB1dCBmcm9tICRjb21waWxlciBvYmplY3QuLi4g IiA+JjY7IH0KKytpZiB0ZXN0ICIke2x0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3BpcGUrc2V0fSIg PSBzZXQ7IHRoZW4KKysgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2CisrZWxzZQorKworKyMg VGhlc2UgYXJlIHNhbmUgZGVmYXVsdHMgdGhhdCB3b3JrIG9uIGF0IGxlYXN0IGEgZmV3IG9sZCBz eXN0ZW1zLgorKyMgW1RoZXkgY29tZSBmcm9tIFVsdHJpeC4gIFdoYXQgY291bGQgYmUgb2xkZXIg dGhhbiBVbHRyaXg/ISEgOyldCisrCisrIyBDaGFyYWN0ZXIgY2xhc3MgZGVzY3JpYmluZyBOTSBn bG9iYWwgc3ltYm9sIGNvZGVzLgorK3N5bWNvZGU9J1tCQ0RFR1JTVF0nCisrCisrIyBSZWdleHAg dG8gbWF0Y2ggc3ltYm9scyB0aGF0IGNhbiBiZSBhY2Nlc3NlZCBkaXJlY3RseSBmcm9tIEMuCisr c3ltcGF0PSdcKFtfQS1aYS16XVtfQS1aYS16MC05XSpcKScKKysKKysjIERlZmluZSBzeXN0ZW0t c3BlY2lmaWMgdmFyaWFibGVzLgorK2Nhc2UgJGhvc3Rfb3MgaW4KKythaXgqKQorKyAgc3ltY29k ZT0nW0JDRFRdJworKyAgOzsKKytjeWd3aW4qIHwgbWluZ3cqIHwgcHczMiogfCBjZWdjYyopCisr ICBzeW1jb2RlPSdbQUJDREdJU1RXXScKKysgIDs7CisraHB1eCopCisrICBpZiB0ZXN0ICIkaG9z dF9jcHUiID0gaWE2NDsgdGhlbgorKyAgICBzeW1jb2RlPSdbQUJDREVHUlNUXScKKysgIGZpCisr ICA7OworK2lyaXgqIHwgbm9uc3RvcHV4KikKKysgIHN5bWNvZGU9J1tCQ0RFR1JTVF0nCisrICA7 OworK29zZiopCisrICBzeW1jb2RlPSdbQkNERUdRUlNUXScKKysgIDs7Cisrc29sYXJpcyopCisr ICBzeW1jb2RlPSdbQkRSVF0nCisrICA7OworK3NjbzMuMnY1KikKKysgIHN5bWNvZGU9J1tEVF0n CisrICA7OworK3N5c3Y0LjJ1dzIqKQorKyAgc3ltY29kZT0nW0RUXScKKysgIDs7Cisrc3lzdjUq IHwgc2NvNXY2KiB8IHVuaXh3YXJlKiB8IE9wZW5VTklYKikKKysgIHN5bWNvZGU9J1tBQkRUXScK KysgIDs7Cisrc3lzdjQpCisrICBzeW1jb2RlPSdbREZOU1RVXScKKysgIDs7CisrZXNhYworKwor KyMgSWYgd2UncmUgdXNpbmcgR05VIG5tLCB0aGVuIHVzZSBpdHMgc3RhbmRhcmQgc3ltYm9sIGNv ZGVzLgorK2Nhc2UgYCROTSAtViAyPiYxYCBpbgorKypHTlUqIHwgKid3aXRoIEJGRCcqKQorKyAg c3ltY29kZT0nW0FCQ0RHSVJTVFddJyA7OworK2VzYWMKKysKKysjIFRyYW5zZm9ybSBhbiBleHRy YWN0ZWQgc3ltYm9sIGxpbmUgaW50byBhIHByb3BlciBDIGRlY2xhcmF0aW9uLgorKyMgU29tZSBz eXN0ZW1zIChlc3AuIG9uIGlhNjQpIGxpbmsgZGF0YSBhbmQgY29kZSBzeW1ib2xzIGRpZmZlcmVu dGx5LAorKyMgc28gdXNlIHRoaXMgZ2VuZXJhbCBhcHByb2FjaC4KKytsdF9jdl9zeXNfZ2xvYmFs X3N5bWJvbF90b19jZGVjbD0ic2VkIC1uIC1lICdzL15UIC4qIFwoLipcKSQvZXh0ZXJuIGludCBc MSgpOy9wJyAtZSAncy9eJHN5bWNvZGUqIC4qIFwoLipcKSQvZXh0ZXJuIGNoYXIgXDE7L3AnIgor KworKyMgVHJhbnNmb3JtIGFuIGV4dHJhY3RlZCBzeW1ib2wgbGluZSBpbnRvIHN5bWJvbCBuYW1l IGFuZCBzeW1ib2wgYWRkcmVzcworK2x0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3RvX2NfbmFtZV9h ZGRyZXNzPSJzZWQgLW4gLWUgJ3MvXjogXChbXiBdKlwpICQvICB7XFxcIlwxXFxcIiwgKHZvaWQg KikgMH0sL3AnIC1lICdzL14kc3ltY29kZSogXChbXiBdKlwpIFwoW14gXSpcKSQvICB7XCJcMlwi LCAodm9pZCAqKSBcJlwyfSwvcCciCisrbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfdG9fY19uYW1l X2FkZHJlc3NfbGliX3ByZWZpeD0ic2VkIC1uIC1lICdzL146IFwoW14gXSpcKSAkLyAge1xcXCJc MVxcXCIsICh2b2lkICopIDB9LC9wJyAtZSAncy9eJHN5bWNvZGUqIFwoW14gXSpcKSBcKGxpYlte IF0qXCkkLyAge1wiXDJcIiwgKHZvaWQgKikgXCZcMn0sL3AnIC1lICdzL14kc3ltY29kZSogXChb XiBdKlwpIFwoW14gXSpcKSQvICB7XCJsaWJcMlwiLCAodm9pZCAqKSBcJlwyfSwvcCciCisrCisr IyBIYW5kbGUgQ1JMRiBpbiBtaW5ndyB0b29sIGNoYWluCisrb3B0X2NyPQorK2Nhc2UgJGJ1aWxk X29zIGluCisrbWluZ3cqKQorKyAgb3B0X2NyPWAkRUNITyAneFx7MCwxXH0nIHwgdHIgeCAnXDAx NSdgICMgb3B0aW9uIGNyIGluIHJlZ2V4cAorKyAgOzsKKytlc2FjCisrCisrIyBUcnkgd2l0aG91 dCBhIHByZWZpeCB1bmRlcnNjb3JlLCB0aGVuIHdpdGggaXQuCisrZm9yIGFjX3N5bXByZnggaW4g IiIgIl8iOyBkbworKworKyAgIyBUcmFuc2Zvcm0gc3ltY29kZSwgc3ltcGF0LCBhbmQgc3ltcHJm eCBpbnRvIGEgcmF3IHN5bWJvbCBhbmQgYSBDIHN5bWJvbC4KKysgIHN5bXhmcm09IlxcMSAkYWNf c3ltcHJmeFxcMiBcXDIiCisrCisrICAjIFdyaXRlIHRoZSByYXcgYW5kIEMgaWRlbnRpZmllcnMu CisrICBpZiB0ZXN0ICIkbHRfY3Zfbm1faW50ZXJmYWNlIiA9ICJNUyBkdW1wYmluIjsgdGhlbgor KyAgICAjIEZha2UgaXQgZm9yIGR1bXBiaW4gYW5kIHNheSBUIGZvciBhbnkgbm9uLXN0YXRpYyBm dW5jdGlvbgorKyAgICAjIGFuZCBEIGZvciBhbnkgZ2xvYmFsIHZhcmlhYmxlLgorKyAgICAjIEFs c28gZmluZCBDKysgYW5kIF9fZmFzdGNhbGwgc3ltYm9scyBmcm9tIE1TVkMrKywKKysgICAgIyB3 aGljaCBzdGFydCB3aXRoIEAgb3IgPy4KKysgICAgbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfcGlw ZT0iJEFXSyAnIlwKKysiICAgICB7bGFzdF9zZWN0aW9uPXNlY3Rpb247IHNlY3Rpb249XCQgM307 IlwKKysiICAgICAvU2VjdGlvbiBsZW5ndGggLiojcmVsb2NzLioocGljayBhbnkpL3toaWRlW2xh c3Rfc2VjdGlvbl09MX07IlwKKysiICAgICBcJCAwIX4vRXh0ZXJuYWwgKlx8L3tuZXh0fTsiXAor KyIgICAgIC8gMCsgVU5ERUYgL3tuZXh0fTsgLyBVTkRFRiBcKFtefF1cKSooKS97bmV4dH07IlwK KysiICAgICB7aWYoaGlkZVtzZWN0aW9uXSkgbmV4dH07IlwKKysiICAgICB7Zj0wfTsgXCQgMH4v XChcKS4qXHwve2Y9MX07IHtwcmludGYgZiA/IFwiVCBcIiA6IFwiRCBcIn07IlwKKysiICAgICB7 c3BsaXQoXCQgMCwgYSwgL1x8fFxyLyk7IHNwbGl0KGFbMl0sIHMpfTsiXAorKyIgICAgIHNbMV1+ L15bQD9dL3twcmludCBzWzFdLCBzWzFdOyBuZXh0fTsiXAorKyIgICAgIHNbMV1+cHJmeCB7c3Bs aXQoc1sxXSx0LFwiQFwiKTsgcHJpbnQgdFsxXSwgc3Vic3RyKHRbMV0sbGVuZ3RoKHByZngpKX0i XAorKyIgICAgICcgcHJmeD1eJGFjX3N5bXByZngiCisrICBlbHNlCisrICAgIGx0X2N2X3N5c19n bG9iYWxfc3ltYm9sX3BpcGU9InNlZCAtbiAtZSAncy9eLipbCSBdXCgkc3ltY29kZSRzeW1jb2Rl KlwpWwkgXVsJIF0qJGFjX3N5bXByZngkc3ltcGF0JG9wdF9jciQvJHN5bXhmcm0vcCciCisrICBm aQorKworKyAgIyBDaGVjayB0byBzZWUgdGhhdCB0aGUgcGlwZSB3b3JrcyBjb3JyZWN0bHkuCisr ICBwaXBlX3dvcmtzPW5vCisrCisrICBybSAtZiBjb25mdGVzdCoKKysgIGNhdCA+IGNvbmZ0ZXN0 LiRhY19leHQgPDxfTFRfRU9GCisrI2lmZGVmIF9fY3BsdXNwbHVzCisrZXh0ZXJuICJDIiB7Cisr I2VuZGlmCisrY2hhciBubV90ZXN0X3ZhcjsKKyt2b2lkIG5tX3Rlc3RfZnVuYyh2b2lkKTsKKyt2 b2lkIG5tX3Rlc3RfZnVuYyh2b2lkKXt9CisrI2lmZGVmIF9fY3BsdXNwbHVzCisrfQorKyNlbmRp ZgorK2ludCBtYWluKCl7bm1fdGVzdF92YXI9J2EnO25tX3Rlc3RfZnVuYygpO3JldHVybigwKTt9 CisrX0xUX0VPRgorKworKyAgaWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNf Y29tcGlsZVwiIikgPiY1CisrICAoZXZhbCAkYWNfY29tcGlsZSkgMj4mNQorKyAgYWNfc3RhdHVz PSQ/CisrICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQor KyAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IHRoZW4KKysgICAgIyBOb3cgdHJ5IHRvIGdyYWIgdGhl IHN5bWJvbHMuCisrICAgIG5saXN0PWNvbmZ0ZXN0Lm5tCisrICAgIGlmIHsgKGV2YWwgZWNobyAi JGFzX21lOiRMSU5FTk86IFwiJE5NIGNvbmZ0ZXN0LiRhY19vYmpleHQgXHwgJGx0X2N2X3N5c19n bG9iYWxfc3ltYm9sX3BpcGUgXD4gJG5saXN0XCIiKSA+JjUKKysgIChldmFsICROTSBjb25mdGVz dC4kYWNfb2JqZXh0IFx8ICRsdF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF9waXBlIFw+ICRubGlzdCkg Mj4mNQorKyAgYWNfc3RhdHVzPSQ/CisrICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9 ICRhY19zdGF0dXMiID4mNQorKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYgdGVzdCAtcyAiJG5s aXN0IjsgdGhlbgorKyAgICAgICMgVHJ5IHNvcnRpbmcgYW5kIHVuaXF1aWZ5aW5nIHRoZSBvdXRw dXQuCisrICAgICAgaWYgc29ydCAiJG5saXN0IiB8IHVuaXEgPiAiJG5saXN0IlQ7IHRoZW4KKysJ bXYgLWYgIiRubGlzdCJUICIkbmxpc3QiCisrICAgICAgZWxzZQorKwlybSAtZiAiJG5saXN0IlQK KysgICAgICBmaQorKworKyAgICAgICMgTWFrZSBzdXJlIHRoYXQgd2Ugc25hZ2dlZCBhbGwgdGhl IHN5bWJvbHMgd2UgbmVlZC4KKysgICAgICBpZiAkR1JFUCAnIG5tX3Rlc3RfdmFyJCcgIiRubGlz dCIgPi9kZXYvbnVsbDsgdGhlbgorKwlpZiAkR1JFUCAnIG5tX3Rlc3RfZnVuYyQnICIkbmxpc3Qi ID4vZGV2L251bGw7IHRoZW4KKysJICBjYXQgPDxfTFRfRU9GID4gY29uZnRlc3QuJGFjX2V4dAor KyNpZmRlZiBfX2NwbHVzcGx1cworK2V4dGVybiAiQyIgeworKyNlbmRpZgorKworK19MVF9FT0YK KysJICAjIE5vdyBnZW5lcmF0ZSB0aGUgc3ltYm9sIGZpbGUuCisrCSAgZXZhbCAiJGx0X2N2X3N5 c19nbG9iYWxfc3ltYm9sX3RvX2NkZWNsIicgPCAiJG5saXN0IiB8ICRHUkVQIC12IG1haW4gPj4g Y29uZnRlc3QuJGFjX2V4dCcKKysKKysJICBjYXQgPDxfTFRfRU9GID4+IGNvbmZ0ZXN0LiRhY19l eHQKKysKKysvKiBUaGUgbWFwcGluZyBiZXR3ZWVuIHN5bWJvbCBuYW1lcyBhbmQgc3ltYm9scy4g ICovCisrY29uc3Qgc3RydWN0IHsKKysgIGNvbnN0IGNoYXIgKm5hbWU7CisrICB2b2lkICAgICAg ICphZGRyZXNzOworK30KKytsdF9fUFJPR1JBTV9fTFRYX3ByZWxvYWRlZF9zeW1ib2xzW10gPQor K3sKKysgIHsgIkBQUk9HUkFNQCIsICh2b2lkICopIDAgfSwKKytfTFRfRU9GCisrCSAgJFNFRCAi cy9eJHN5bWNvZGUkc3ltY29kZSogXCguKlwpIFwoLipcKSQvICB7XCJcMlwiLCAodm9pZCAqKSBc JlwyfSwvIiA8ICIkbmxpc3QiIHwgJEdSRVAgLXYgbWFpbiA+PiBjb25mdGVzdC4kYWNfZXh0Cisr CSAgY2F0IDw8XF9MVF9FT0YgPj4gY29uZnRlc3QuJGFjX2V4dAorKyAgezAsICh2b2lkICopIDB9 CisrfTsKKysKKysvKiBUaGlzIHdvcmtzIGFyb3VuZCBhIHByb2JsZW0gaW4gRnJlZUJTRCBsaW5r ZXIgKi8KKysjaWZkZWYgRlJFRUJTRF9XT1JLQVJPVU5ECisrc3RhdGljIGNvbnN0IHZvaWQgKmx0 X3ByZWxvYWRlZF9zZXR1cCgpIHsKKysgIHJldHVybiBsdF9fUFJPR1JBTV9fTFRYX3ByZWxvYWRl ZF9zeW1ib2xzOworK30KKysjZW5kaWYKKysKKysjaWZkZWYgX19jcGx1c3BsdXMKKyt9CisrI2Vu ZGlmCisrX0xUX0VPRgorKwkgICMgTm93IHRyeSBsaW5raW5nIHRoZSB0d28gZmlsZXMuCisrCSAg bXYgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdHN0bS4kYWNfb2JqZXh0CisrCSAgbHRfc2F2ZV9M SUJTPSIkTElCUyIKKysJICBsdF9zYXZlX0NGTEFHUz0iJENGTEFHUyIKKysJICBMSUJTPSJjb25m dHN0bS4kYWNfb2JqZXh0IgorKwkgIENGTEFHUz0iJENGTEFHUyRsdF9wcm9nX2NvbXBpbGVyX25v X2J1aWx0aW5fZmxhZyIKKysJICBpZiB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRh Y19saW5rXCIiKSA+JjUKKysgIChldmFsICRhY19saW5rKSAyPiY1CisrICBhY19zdGF0dXM9JD8K KysgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisrICAo ZXhpdCAkYWNfc3RhdHVzKTsgfSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0JHthY19leGVleHR9OyB0aGVu CisrCSAgICBwaXBlX3dvcmtzPXllcworKwkgIGZpCisrCSAgTElCUz0iJGx0X3NhdmVfTElCUyIK KysJICBDRkxBR1M9IiRsdF9zYXZlX0NGTEFHUyIKKysJZWxzZQorKwkgIGVjaG8gImNhbm5vdCBm aW5kIG5tX3Rlc3RfZnVuYyBpbiAkbmxpc3QiID4mNQorKwlmaQorKyAgICAgIGVsc2UKKysJZWNo byAiY2Fubm90IGZpbmQgbm1fdGVzdF92YXIgaW4gJG5saXN0IiA+JjUKKysgICAgICBmaQorKyAg ICBlbHNlCisrICAgICAgZWNobyAiY2Fubm90IHJ1biAkbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xf cGlwZSIgPiY1CisrICAgIGZpCisrICBlbHNlCisrICAgIGVjaG8gIiRwcm9nbmFtZTogZmFpbGVk IHByb2dyYW0gd2FzOiIgPiY1CisrICAgIGNhdCBjb25mdGVzdC4kYWNfZXh0ID4mNQorKyAgZmkK KysgIHJtIC1yZiBjb25mdGVzdCogY29uZnRzdCoKKysKKysgICMgRG8gbm90IHVzZSB0aGUgZ2xv YmFsX3N5bWJvbF9waXBlIHVubGVzcyBpdCB3b3Jrcy4KKysgIGlmIHRlc3QgIiRwaXBlX3dvcmtz IiA9IHllczsgdGhlbgorKyAgICBicmVhaworKyAgZWxzZQorKyAgICBsdF9jdl9zeXNfZ2xvYmFs X3N5bWJvbF9waXBlPQorKyAgZmkKKytkb25lCisrCisrZmkKKysKKytpZiB0ZXN0IC16ICIkbHRf Y3Zfc3lzX2dsb2JhbF9zeW1ib2xfcGlwZSI7IHRoZW4KKysgIGx0X2N2X3N5c19nbG9iYWxfc3lt Ym9sX3RvX2NkZWNsPQorK2ZpCisraWYgdGVzdCAteiAiJGx0X2N2X3N5c19nbG9iYWxfc3ltYm9s X3BpcGUkbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfdG9fY2RlY2wiOyB0aGVuCisrICB7ICRhc19l Y2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiBmYWlsZWQiID4mNQorKyRhc19lY2hvICJmYWls ZWQiID4mNjsgfQorK2Vsc2UKKysgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6 IG9rIiA+JjUKKyskYXNfZWNobyAib2siID4mNjsgfQorK2ZpCisrCisrCisrCisrCisrCisrCisr CisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrIyBDaGVj ayB3aGV0aGVyIC0tZW5hYmxlLWxpYnRvb2wtbG9jayB3YXMgZ2l2ZW4uCisraWYgdGVzdCAiJHtl bmFibGVfbGlidG9vbF9sb2NrK3NldH0iID0gc2V0OyB0aGVuCisrICBlbmFibGV2YWw9JGVuYWJs ZV9saWJ0b29sX2xvY2s7CisrZmkKKysKKyt0ZXN0ICJ4JGVuYWJsZV9saWJ0b29sX2xvY2siICE9 IHhubyAmJiBlbmFibGVfbGlidG9vbF9sb2NrPXllcworKworKyMgU29tZSBmbGFncyBuZWVkIHRv IGJlIHByb3BhZ2F0ZWQgdG8gdGhlIGNvbXBpbGVyIG9yIGxpbmtlciBmb3IgZ29vZAorKyMgbGli dG9vbCBzdXBwb3J0LgorK2Nhc2UgJGhvc3QgaW4KKytpYTY0LSotaHB1eCopCisrICAjIEZpbmQg b3V0IHdoaWNoIEFCSSB3ZSBhcmUgdXNpbmcuCisrICBlY2hvICdpbnQgaTsnID4gY29uZnRlc3Qu JGFjX2V4dAorKyAgaWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfY29tcGls ZVwiIikgPiY1CisrICAoZXZhbCAkYWNfY29tcGlsZSkgMj4mNQorKyAgYWNfc3RhdHVzPSQ/Cisr ICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorKyAgKGV4 aXQgJGFjX3N0YXR1cyk7IH07IHRoZW4KKysgICAgY2FzZSBgL3Vzci9iaW4vZmlsZSBjb25mdGVz dC4kYWNfb2JqZXh0YCBpbgorKyAgICAgICpFTEYtMzIqKQorKwlIUFVYX0lBNjRfTU9ERT0iMzIi CisrCTs7CisrICAgICAgKkVMRi02NCopCisrCUhQVVhfSUE2NF9NT0RFPSI2NCIKKysJOzsKKysg ICAgZXNhYworKyAgZmkKKysgIHJtIC1yZiBjb25mdGVzdCoKKysgIDs7CisrKi0qLWlyaXg2KikK KysgICMgRmluZCBvdXQgd2hpY2ggQUJJIHdlIGFyZSB1c2luZy4KKysgIGVjaG8gJyNsaW5lIDY4 NDQgImNvbmZpZ3VyZSInID4gY29uZnRlc3QuJGFjX2V4dAorKyAgaWYgeyAoZXZhbCBlY2hvICIk YXNfbWU6JExJTkVOTzogXCIkYWNfY29tcGlsZVwiIikgPiY1CisrICAoZXZhbCAkYWNfY29tcGls ZSkgMj4mNQorKyAgYWNfc3RhdHVzPSQ/CisrICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwk PyA9ICRhY19zdGF0dXMiID4mNQorKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IHRoZW4KKysgICAg aWYgdGVzdCAiJGx0X2N2X3Byb2dfZ251X2xkIiA9IHllczsgdGhlbgorKyAgICAgIGNhc2UgYC91 c3IvYmluL2ZpbGUgY29uZnRlc3QuJGFjX29iamV4dGAgaW4KKysJKjMyLWJpdCopCisrCSAgTEQ9 IiR7TEQtbGR9IC1tZWxmMzJic21pcCIKKysJICA7OworKwkqTjMyKikKKysJICBMRD0iJHtMRC1s ZH0gLW1lbGYzMmJtaXBuMzIiCisrCSAgOzsKKysJKjY0LWJpdCopCisrCSAgTEQ9IiR7TEQtbGR9 IC1tZWxmNjRibWlwIgorKwk7OworKyAgICAgIGVzYWMKKysgICAgZWxzZQorKyAgICAgIGNhc2Ug YC91c3IvYmluL2ZpbGUgY29uZnRlc3QuJGFjX29iamV4dGAgaW4KKysJKjMyLWJpdCopCisrCSAg TEQ9IiR7TEQtbGR9IC0zMiIKKysJICA7OworKwkqTjMyKikKKysJICBMRD0iJHtMRC1sZH0gLW4z MiIKKysJICA7OworKwkqNjQtYml0KikKKysJICBMRD0iJHtMRC1sZH0gLTY0IgorKwkgIDs7Cisr ICAgICAgZXNhYworKyAgICBmaQorKyAgZmkKKysgIHJtIC1yZiBjb25mdGVzdCoKKysgIDs7Cisr CisreDg2XzY0LSprZnJlZWJzZCotZ251fHg4Nl82NC0qbGludXgqfHBwYyotKmxpbnV4Knxwb3dl cnBjKi0qbGludXgqfCBcCisrczM5MCotKmxpbnV4KnxzMzkwKi0qdHBmKnxzcGFyYyotKmxpbnV4 KikKKysgICMgRmluZCBvdXQgd2hpY2ggQUJJIHdlIGFyZSB1c2luZy4KKysgIGVjaG8gJ2ludCBp OycgPiBjb25mdGVzdC4kYWNfZXh0CisrICBpZiB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5P OiBcIiRhY19jb21waWxlXCIiKSA+JjUKKysgIChldmFsICRhY19jb21waWxlKSAyPiY1CisrICBh Y19zdGF0dXM9JD8KKysgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1 cyIgPiY1CisrICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgdGhlbgorKyAgICBjYXNlIGAvdXNyL2Jp bi9maWxlIGNvbmZ0ZXN0Lm9gIGluCisrICAgICAgKjMyLWJpdCopCisrCWNhc2UgJGhvc3QgaW4K KysJICB4ODZfNjQtKmtmcmVlYnNkKi1nbnUpCisrCSAgICBMRD0iJHtMRC1sZH0gLW0gZWxmX2kz ODZfZmJzZCIKKysJICAgIDs7CisrCSAgeDg2XzY0LSpsaW51eCopCisrCSAgICBMRD0iJHtMRC1s ZH0gLW0gZWxmX2kzODYiCisrCSAgICA7OworKwkgIHBwYzY0LSpsaW51eCp8cG93ZXJwYzY0LSps aW51eCopCisrCSAgICBMRD0iJHtMRC1sZH0gLW0gZWxmMzJwcGNsaW51eCIKKysJICAgIDs7Cisr CSAgczM5MHgtKmxpbnV4KikKKysJICAgIExEPSIke0xELWxkfSAtbSBlbGZfczM5MCIKKysJICAg IDs7CisrCSAgc3BhcmM2NC0qbGludXgqKQorKwkgICAgTEQ9IiR7TEQtbGR9IC1tIGVsZjMyX3Nw YXJjIgorKwkgICAgOzsKKysJZXNhYworKwk7OworKyAgICAgICo2NC1iaXQqKQorKwljYXNlICRo b3N0IGluCisrCSAgeDg2XzY0LSprZnJlZWJzZCotZ251KQorKwkgICAgTEQ9IiR7TEQtbGR9IC1t IGVsZl94ODZfNjRfZmJzZCIKKysJICAgIDs7CisrCSAgeDg2XzY0LSpsaW51eCopCisrCSAgICBM RD0iJHtMRC1sZH0gLW0gZWxmX3g4Nl82NCIKKysJICAgIDs7CisrCSAgcHBjKi0qbGludXgqfHBv d2VycGMqLSpsaW51eCopCisrCSAgICBMRD0iJHtMRC1sZH0gLW0gZWxmNjRwcGMiCisrCSAgICA7 OworKwkgIHMzOTAqLSpsaW51eCp8czM5MCotKnRwZiopCisrCSAgICBMRD0iJHtMRC1sZH0gLW0g ZWxmNjRfczM5MCIKKysJICAgIDs7CisrCSAgc3BhcmMqLSpsaW51eCopCisrCSAgICBMRD0iJHtM RC1sZH0gLW0gZWxmNjRfc3BhcmMiCisrCSAgICA7OworKwllc2FjCisrCTs7CisrICAgIGVzYWMK KysgIGZpCisrICBybSAtcmYgY29uZnRlc3QqCisrICA7OworKworKyotKi1zY28zLjJ2NSopCisr ICAjIE9uIFNDTyBPcGVuU2VydmVyIDUsIHdlIG5lZWQgLWJlbGYgdG8gZ2V0IGZ1bGwtZmVhdHVy ZWQgYmluYXJpZXMuCisrICBTQVZFX0NGTEFHUz0iJENGTEFHUyIKKysgIENGTEFHUz0iJENGTEFH UyAtYmVsZiIKKysgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyB3aGV0aGVy IHRoZSBDIGNvbXBpbGVyIG5lZWRzIC1iZWxmIiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyB3 aGV0aGVyIHRoZSBDIGNvbXBpbGVyIG5lZWRzIC1iZWxmLi4uICIgPiY2OyB9CisraWYgdGVzdCAi JHtsdF9jdl9jY19uZWVkc19iZWxmK3NldH0iID0gc2V0OyB0aGVuCisrICAkYXNfZWNob19uICIo Y2FjaGVkKSAiID4mNgorK2Vsc2UKKysgIGFjX2V4dD1jCisrYWNfY3BwPSckQ1BQICRDUFBGTEFH UycKKythY19jb21waWxlPSckQ0MgLWMgJENGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4 dCA+JjUnCisrYWNfbGluaz0nJENDIC1vIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAkQ0ZMQUdTICRDUFBG TEFHUyAkTERGTEFHUyBjb25mdGVzdC4kYWNfZXh0ICRMSUJTID4mNScKKythY19jb21waWxlcl9n bnU9JGFjX2N2X2NfY29tcGlsZXJfZ251CisrCisrICAgICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQg PDxfQUNFT0YKKysvKiBjb25mZGVmcy5oLiAgKi8KKytfQUNFT0YKKytjYXQgY29uZmRlZnMuaCA+ PmNvbmZ0ZXN0LiRhY19leHQKKytjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisrLyog ZW5kIGNvbmZkZWZzLmguICAqLworKworK2ludAorK21haW4gKCkKKyt7CisrCisrICA7CisrICBy ZXR1cm4gMDsKKyt9CisrX0FDRU9GCisrcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVz dCRhY19leGVleHQKKytpZiB7IChhY190cnk9IiRhY19saW5rIgorK2Nhc2UgIigoJGFjX3RyeSIg aW4KKysgICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OworKyAgKikg YWNfdHJ5X2VjaG89JGFjX3RyeTs7CisrZXNhYworK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19t ZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIKKyskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1 CisrICAoZXZhbCAiJGFjX2xpbmsiKSAyPmNvbmZ0ZXN0LmVyMQorKyAgYWNfc3RhdHVzPSQ/Cisr ICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgorKyAgcm0gLWYgY29u ZnRlc3QuZXIxCisrICBjYXQgY29uZnRlc3QuZXJyID4mNQorKyAgJGFzX2VjaG8gIiRhc19tZTok TElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKysgIChleGl0ICRhY19zdGF0dXMpOyB9ICYm IHsKKysJIHRlc3QgLXogIiRhY19jX3dlcnJvcl9mbGFnIiB8fAorKwkgdGVzdCAhIC1zIGNvbmZ0 ZXN0LmVycgorKyAgICAgICB9ICYmIHRlc3QgLXMgY29uZnRlc3QkYWNfZXhlZXh0ICYmIHsKKysJ IHRlc3QgIiRjcm9zc19jb21waWxpbmciID0geWVzIHx8CisrCSAkYXNfdGVzdF94IGNvbmZ0ZXN0 JGFjX2V4ZWV4dAorKyAgICAgICB9OyB0aGVuCisrICBsdF9jdl9jY19uZWVkc19iZWxmPXllcwor K2Vsc2UKKysgICRhc19lY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQorK3Nl ZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKKysKKysJbHRfY3ZfY2NfbmVlZHNfYmVs Zj1ubworK2ZpCisrCisrcm0gLXJmIGNvbmZ0ZXN0LmRTWU0KKytybSAtZiBjb3JlIGNvbmZ0ZXN0 LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0X2lwYThfY29uZnRlc3Qub28gXAorKyAg ICAgIGNvbmZ0ZXN0JGFjX2V4ZWV4dCBjb25mdGVzdC4kYWNfZXh0CisrICAgICBhY19leHQ9Ywor K2FjX2NwcD0nJENQUCAkQ1BQRkxBR1MnCisrYWNfY29tcGlsZT0nJENDIC1jICRDRkxBR1MgJENQ UEZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgPiY1JworK2FjX2xpbms9JyRDQyAtbyBjb25mdGVzdCRh Y19leGVleHQgJENGTEFHUyAkQ1BQRkxBR1MgJExERkxBR1MgY29uZnRlc3QuJGFjX2V4dCAkTElC UyA+JjUnCisrYWNfY29tcGlsZXJfZ251PSRhY19jdl9jX2NvbXBpbGVyX2dudQorKworK2ZpCisr eyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGx0X2N2X2NjX25lZWRzX2JlbGYi ID4mNQorKyRhc19lY2hvICIkbHRfY3ZfY2NfbmVlZHNfYmVsZiIgPiY2OyB9CisrICBpZiB0ZXN0 IHgiJGx0X2N2X2NjX25lZWRzX2JlbGYiICE9IHgieWVzIjsgdGhlbgorKyAgICAjIHRoaXMgaXMg cHJvYmFibHkgZ2NjIDIuOC4wLCBlZ2NzIDEuMCBvciBuZXdlcjsgbm8gbmVlZCBmb3IgLWJlbGYK KysgICAgQ0ZMQUdTPSIkU0FWRV9DRkxBR1MiCisrICBmaQorKyAgOzsKKytzcGFyYyotKnNvbGFy aXMqKQorKyAgIyBGaW5kIG91dCB3aGljaCBBQkkgd2UgYXJlIHVzaW5nLgorKyAgZWNobyAnaW50 IGk7JyA+IGNvbmZ0ZXN0LiRhY19leHQKKysgIGlmIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5F Tk86IFwiJGFjX2NvbXBpbGVcIiIpID4mNQorKyAgKGV2YWwgJGFjX2NvbXBpbGUpIDI+JjUKKysg IGFjX3N0YXR1cz0kPworKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3Rh dHVzIiA+JjUKKysgIChleGl0ICRhY19zdGF0dXMpOyB9OyB0aGVuCisrICAgIGNhc2UgYC91c3Iv YmluL2ZpbGUgY29uZnRlc3Qub2AgaW4KKysgICAgKjY0LWJpdCopCisrICAgICAgY2FzZSAkbHRf Y3ZfcHJvZ19nbnVfbGQgaW4KKysgICAgICB5ZXMqKSBMRD0iJHtMRC1sZH0gLW0gZWxmNjRfc3Bh cmMiIDs7CisrICAgICAgKikKKysJaWYgJHtMRC1sZH0gLTY0IC1yIC1vIGNvbmZ0ZXN0Mi5vIGNv bmZ0ZXN0Lm8gPi9kZXYvbnVsbCAyPiYxOyB0aGVuCisrCSAgTEQ9IiR7TEQtbGR9IC02NCIKKysJ ZmkKKysJOzsKKysgICAgICBlc2FjCisrICAgICAgOzsKKysgICAgZXNhYworKyAgZmkKKysgIHJt IC1yZiBjb25mdGVzdCoKKysgIDs7CisrZXNhYworKworK25lZWRfbG9ja3M9IiRlbmFibGVfbGli dG9vbF9sb2NrIgorKworKworKyAgY2FzZSAkaG9zdF9vcyBpbgorKyAgICByaGFwc29keSogfCBk YXJ3aW4qKQorKyAgICBpZiB0ZXN0IC1uICIkYWNfdG9vbF9wcmVmaXgiOyB0aGVuCisrICAjIEV4 dHJhY3QgdGhlIGZpcnN0IHdvcmQgb2YgIiR7YWNfdG9vbF9wcmVmaXh9ZHN5bXV0aWwiLCBzbyBp dCBjYW4gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmdzLgorK3NldCBkdW1teSAke2FjX3Rvb2xf cHJlZml4fWRzeW11dGlsOyBhY193b3JkPSQyCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86 IGNoZWNraW5nIGZvciAkYWNfd29yZCIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yICRh Y193b3JkLi4uICIgPiY2OyB9CisraWYgdGVzdCAiJHthY19jdl9wcm9nX0RTWU1VVElMK3NldH0i ID0gc2V0OyB0aGVuCisrICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysgIGlm IHRlc3QgLW4gIiREU1lNVVRJTCI7IHRoZW4KKysgIGFjX2N2X3Byb2dfRFNZTVVUSUw9IiREU1lN VVRJTCIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3QuCisrZWxzZQorK2FzX3NhdmVf SUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IKKytmb3IgYXNfZGlyIGluICRQQVRICisrZG8K KysgIElGUz0kYXNfc2F2ZV9JRlMKKysgIHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCisr ICBmb3IgYWNfZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1dGFibGVfZXh0ZW5zaW9uczsgZG8KKysg IGlmIHsgdGVzdCAtZiAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgJiYgJGFzX3Rlc3Rf eCAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCI7IH07IHRoZW4KKysgICAgYWNfY3ZfcHJv Z19EU1lNVVRJTD0iJHthY190b29sX3ByZWZpeH1kc3ltdXRpbCIKKysgICAgJGFzX2VjaG8gIiRh c19tZTokTElORU5POiBmb3VuZCAkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiA+JjUKKysg ICAgYnJlYWsgMgorKyAgZmkKKytkb25lCisrZG9uZQorK0lGUz0kYXNfc2F2ZV9JRlMKKysKKytm aQorK2ZpCisrRFNZTVVUSUw9JGFjX2N2X3Byb2dfRFNZTVVUSUwKKytpZiB0ZXN0IC1uICIkRFNZ TVVUSUwiOyB0aGVuCisrICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkRFNZ TVVUSUwiID4mNQorKyRhc19lY2hvICIkRFNZTVVUSUwiID4mNjsgfQorK2Vsc2UKKysgIHsgJGFz X2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IG5vIiA+JjUKKyskYXNfZWNobyAibm8iID4m NjsgfQorK2ZpCisrCisrCisrZmkKKytpZiB0ZXN0IC16ICIkYWNfY3ZfcHJvZ19EU1lNVVRJTCI7 IHRoZW4KKysgIGFjX2N0X0RTWU1VVElMPSREU1lNVVRJTAorKyAgIyBFeHRyYWN0IHRoZSBmaXJz dCB3b3JkIG9mICJkc3ltdXRpbCIsIHNvIGl0IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFy Z3MuCisrc2V0IGR1bW15IGRzeW11dGlsOyBhY193b3JkPSQyCisreyAkYXNfZWNobyAiJGFzX21l OiRMSU5FTk86IGNoZWNraW5nIGZvciAkYWNfd29yZCIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tp bmcgZm9yICRhY193b3JkLi4uICIgPiY2OyB9CisraWYgdGVzdCAiJHthY19jdl9wcm9nX2FjX2N0 X0RTWU1VVElMK3NldH0iID0gc2V0OyB0aGVuCisrICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4m NgorK2Vsc2UKKysgIGlmIHRlc3QgLW4gIiRhY19jdF9EU1lNVVRJTCI7IHRoZW4KKysgIGFjX2N2 X3Byb2dfYWNfY3RfRFNZTVVUSUw9IiRhY19jdF9EU1lNVVRJTCIgIyBMZXQgdGhlIHVzZXIgb3Zl cnJpZGUgdGhlIHRlc3QuCisrZWxzZQorK2FzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBB UkFUT1IKKytmb3IgYXNfZGlyIGluICRQQVRICisrZG8KKysgIElGUz0kYXNfc2F2ZV9JRlMKKysg IHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCisrICBmb3IgYWNfZXhlY19leHQgaW4gJycg JGFjX2V4ZWN1dGFibGVfZXh0ZW5zaW9uczsgZG8KKysgIGlmIHsgdGVzdCAtZiAiJGFzX2Rpci8k YWNfd29yZCRhY19leGVjX2V4dCIgJiYgJGFzX3Rlc3RfeCAiJGFzX2Rpci8kYWNfd29yZCRhY19l eGVjX2V4dCI7IH07IHRoZW4KKysgICAgYWNfY3ZfcHJvZ19hY19jdF9EU1lNVVRJTD0iZHN5bXV0 aWwiCisrICAgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZm91bmQgJGFzX2Rpci8kYWNfd29y ZCRhY19leGVjX2V4dCIgPiY1CisrICAgIGJyZWFrIDIKKysgIGZpCisrZG9uZQorK2RvbmUKKytJ RlM9JGFzX3NhdmVfSUZTCisrCisrZmkKKytmaQorK2FjX2N0X0RTWU1VVElMPSRhY19jdl9wcm9n X2FjX2N0X0RTWU1VVElMCisraWYgdGVzdCAtbiAiJGFjX2N0X0RTWU1VVElMIjsgdGhlbgorKyAg eyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2N0X0RTWU1VVElMIiA+JjUK KyskYXNfZWNobyAiJGFjX2N0X0RTWU1VVElMIiA+JjY7IH0KKytlbHNlCisrICB7ICRhc19lY2hv ICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiBubyIgPiY1CisrJGFzX2VjaG8gIm5vIiA+JjY7IH0K KytmaQorKworKyAgaWYgdGVzdCAieCRhY19jdF9EU1lNVVRJTCIgPSB4OyB0aGVuCisrICAgIERT WU1VVElMPSI6IgorKyAgZWxzZQorKyAgICBjYXNlICRjcm9zc19jb21waWxpbmc6JGFjX3Rvb2xf d2FybmVkIGluCisreWVzOikKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogV0FSTklORzog dXNpbmcgY3Jvc3MgdG9vbHMgbm90IHByZWZpeGVkIHdpdGggaG9zdCB0cmlwbGV0IiA+JjUKKysk YXNfZWNobyAiJGFzX21lOiBXQVJOSU5HOiB1c2luZyBjcm9zcyB0b29scyBub3QgcHJlZml4ZWQg d2l0aCBob3N0IHRyaXBsZXQiID4mMjt9CisrYWNfdG9vbF93YXJuZWQ9eWVzIDs7CisrZXNhYwor KyAgICBEU1lNVVRJTD0kYWNfY3RfRFNZTVVUSUwKKysgIGZpCisrZWxzZQorKyAgRFNZTVVUSUw9 IiRhY19jdl9wcm9nX0RTWU1VVElMIgorK2ZpCisrCisrICAgIGlmIHRlc3QgLW4gIiRhY190b29s X3ByZWZpeCI7IHRoZW4KKysgICMgRXh0cmFjdCB0aGUgZmlyc3Qgd29yZCBvZiAiJHthY190b29s X3ByZWZpeH1ubWVkaXQiLCBzbyBpdCBjYW4gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmdzLgor K3NldCBkdW1teSAke2FjX3Rvb2xfcHJlZml4fW5tZWRpdDsgYWNfd29yZD0kMgorK3sgJGFzX2Vj aG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgJGFjX3dvcmQiID4mNQorKyRhc19lY2hv X24gImNoZWNraW5nIGZvciAkYWNfd29yZC4uLiAiID4mNjsgfQorK2lmIHRlc3QgIiR7YWNfY3Zf cHJvZ19OTUVESVQrc2V0fSIgPSBzZXQ7IHRoZW4KKysgICRhc19lY2hvX24gIihjYWNoZWQpICIg PiY2CisrZWxzZQorKyAgaWYgdGVzdCAtbiAiJE5NRURJVCI7IHRoZW4KKysgIGFjX2N2X3Byb2df Tk1FRElUPSIkTk1FRElUIiAjIExldCB0aGUgdXNlciBvdmVycmlkZSB0aGUgdGVzdC4KKytlbHNl CisrYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgorK2ZvciBhc19kaXIgaW4g JFBBVEgKKytkbworKyAgSUZTPSRhc19zYXZlX0lGUworKyAgdGVzdCAteiAiJGFzX2RpciIgJiYg YXNfZGlyPS4KKysgIGZvciBhY19leGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9leHRlbnNp b25zOyBkbworKyAgaWYgeyB0ZXN0IC1mICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiAm JiAkYXNfdGVzdF94ICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IjsgfTsgdGhlbgorKyAg ICBhY19jdl9wcm9nX05NRURJVD0iJHthY190b29sX3ByZWZpeH1ubWVkaXQiCisrICAgICRhc19l Y2hvICIkYXNfbWU6JExJTkVOTzogZm91bmQgJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIg PiY1CisrICAgIGJyZWFrIDIKKysgIGZpCisrZG9uZQorK2RvbmUKKytJRlM9JGFzX3NhdmVfSUZT CisrCisrZmkKKytmaQorK05NRURJVD0kYWNfY3ZfcHJvZ19OTUVESVQKKytpZiB0ZXN0IC1uICIk Tk1FRElUIjsgdGhlbgorKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJE5N RURJVCIgPiY1CisrJGFzX2VjaG8gIiROTUVESVQiID4mNjsgfQorK2Vsc2UKKysgIHsgJGFzX2Vj aG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IG5vIiA+JjUKKyskYXNfZWNobyAibm8iID4mNjsg fQorK2ZpCisrCisrCisrZmkKKytpZiB0ZXN0IC16ICIkYWNfY3ZfcHJvZ19OTUVESVQiOyB0aGVu CisrICBhY19jdF9OTUVESVQ9JE5NRURJVAorKyAgIyBFeHRyYWN0IHRoZSBmaXJzdCB3b3JkIG9m ICJubWVkaXQiLCBzbyBpdCBjYW4gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmdzLgorK3NldCBk dW1teSBubWVkaXQ7IGFjX3dvcmQ9JDIKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hl Y2tpbmcgZm9yICRhY193b3JkIiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyBmb3IgJGFjX3dv cmQuLi4gIiA+JjY7IH0KKytpZiB0ZXN0ICIke2FjX2N2X3Byb2dfYWNfY3RfTk1FRElUK3NldH0i ID0gc2V0OyB0aGVuCisrICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysgIGlm IHRlc3QgLW4gIiRhY19jdF9OTUVESVQiOyB0aGVuCisrICBhY19jdl9wcm9nX2FjX2N0X05NRURJ VD0iJGFjX2N0X05NRURJVCIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3QuCisrZWxz ZQorK2FzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IKKytmb3IgYXNfZGlyIGlu ICRQQVRICisrZG8KKysgIElGUz0kYXNfc2F2ZV9JRlMKKysgIHRlc3QgLXogIiRhc19kaXIiICYm IGFzX2Rpcj0uCisrICBmb3IgYWNfZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1dGFibGVfZXh0ZW5z aW9uczsgZG8KKysgIGlmIHsgdGVzdCAtZiAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIg JiYgJGFzX3Rlc3RfeCAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCI7IH07IHRoZW4KKysg ICAgYWNfY3ZfcHJvZ19hY19jdF9OTUVESVQ9Im5tZWRpdCIKKysgICAgJGFzX2VjaG8gIiRhc19t ZTokTElORU5POiBmb3VuZCAkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiA+JjUKKysgICAg YnJlYWsgMgorKyAgZmkKKytkb25lCisrZG9uZQorK0lGUz0kYXNfc2F2ZV9JRlMKKysKKytmaQor K2ZpCisrYWNfY3RfTk1FRElUPSRhY19jdl9wcm9nX2FjX2N0X05NRURJVAorK2lmIHRlc3QgLW4g IiRhY19jdF9OTUVESVQiOyB0aGVuCisrICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVz dWx0OiAkYWNfY3RfTk1FRElUIiA+JjUKKyskYXNfZWNobyAiJGFjX2N0X05NRURJVCIgPiY2OyB9 CisrZWxzZQorKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogbm8iID4mNQor KyRhc19lY2hvICJubyIgPiY2OyB9CisrZmkKKysKKysgIGlmIHRlc3QgIngkYWNfY3RfTk1FRElU IiA9IHg7IHRoZW4KKysgICAgTk1FRElUPSI6IgorKyAgZWxzZQorKyAgICBjYXNlICRjcm9zc19j b21waWxpbmc6JGFjX3Rvb2xfd2FybmVkIGluCisreWVzOikKKyt7ICRhc19lY2hvICIkYXNfbWU6 JExJTkVOTzogV0FSTklORzogdXNpbmcgY3Jvc3MgdG9vbHMgbm90IHByZWZpeGVkIHdpdGggaG9z dCB0cmlwbGV0IiA+JjUKKyskYXNfZWNobyAiJGFzX21lOiBXQVJOSU5HOiB1c2luZyBjcm9zcyB0 b29scyBub3QgcHJlZml4ZWQgd2l0aCBob3N0IHRyaXBsZXQiID4mMjt9CisrYWNfdG9vbF93YXJu ZWQ9eWVzIDs7CisrZXNhYworKyAgICBOTUVESVQ9JGFjX2N0X05NRURJVAorKyAgZmkKKytlbHNl CisrICBOTUVESVQ9IiRhY19jdl9wcm9nX05NRURJVCIKKytmaQorKworKyAgICBpZiB0ZXN0IC1u ICIkYWNfdG9vbF9wcmVmaXgiOyB0aGVuCisrICAjIEV4dHJhY3QgdGhlIGZpcnN0IHdvcmQgb2Yg IiR7YWNfdG9vbF9wcmVmaXh9bGlwbyIsIHNvIGl0IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3aXRo IGFyZ3MuCisrc2V0IGR1bW15ICR7YWNfdG9vbF9wcmVmaXh9bGlwbzsgYWNfd29yZD0kMgorK3sg JGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgJGFjX3dvcmQiID4mNQorKyRh c19lY2hvX24gImNoZWNraW5nIGZvciAkYWNfd29yZC4uLiAiID4mNjsgfQorK2lmIHRlc3QgIiR7 YWNfY3ZfcHJvZ19MSVBPK3NldH0iID0gc2V0OyB0aGVuCisrICAkYXNfZWNob19uICIoY2FjaGVk KSAiID4mNgorK2Vsc2UKKysgIGlmIHRlc3QgLW4gIiRMSVBPIjsgdGhlbgorKyAgYWNfY3ZfcHJv Z19MSVBPPSIkTElQTyIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3QuCisrZWxzZQor K2FzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IKKytmb3IgYXNfZGlyIGluICRQ QVRICisrZG8KKysgIElGUz0kYXNfc2F2ZV9JRlMKKysgIHRlc3QgLXogIiRhc19kaXIiICYmIGFz X2Rpcj0uCisrICBmb3IgYWNfZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1dGFibGVfZXh0ZW5zaW9u czsgZG8KKysgIGlmIHsgdGVzdCAtZiAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgJiYg JGFzX3Rlc3RfeCAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCI7IH07IHRoZW4KKysgICAg YWNfY3ZfcHJvZ19MSVBPPSIke2FjX3Rvb2xfcHJlZml4fWxpcG8iCisrICAgICRhc19lY2hvICIk YXNfbWU6JExJTkVOTzogZm91bmQgJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgPiY1Cisr ICAgIGJyZWFrIDIKKysgIGZpCisrZG9uZQorK2RvbmUKKytJRlM9JGFzX3NhdmVfSUZTCisrCisr ZmkKKytmaQorK0xJUE89JGFjX2N2X3Byb2dfTElQTworK2lmIHRlc3QgLW4gIiRMSVBPIjsgdGhl bgorKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJExJUE8iID4mNQorKyRh c19lY2hvICIkTElQTyIgPiY2OyB9CisrZWxzZQorKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5F Tk86IHJlc3VsdDogbm8iID4mNQorKyRhc19lY2hvICJubyIgPiY2OyB9CisrZmkKKysKKysKKytm aQorK2lmIHRlc3QgLXogIiRhY19jdl9wcm9nX0xJUE8iOyB0aGVuCisrICBhY19jdF9MSVBPPSRM SVBPCisrICAjIEV4dHJhY3QgdGhlIGZpcnN0IHdvcmQgb2YgImxpcG8iLCBzbyBpdCBjYW4gYmUg YSBwcm9ncmFtIG5hbWUgd2l0aCBhcmdzLgorK3NldCBkdW1teSBsaXBvOyBhY193b3JkPSQyCisr eyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciAkYWNfd29yZCIgPiY1Cisr JGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yICRhY193b3JkLi4uICIgPiY2OyB9CisraWYgdGVzdCAi JHthY19jdl9wcm9nX2FjX2N0X0xJUE8rc2V0fSIgPSBzZXQ7IHRoZW4KKysgICRhc19lY2hvX24g IihjYWNoZWQpICIgPiY2CisrZWxzZQorKyAgaWYgdGVzdCAtbiAiJGFjX2N0X0xJUE8iOyB0aGVu CisrICBhY19jdl9wcm9nX2FjX2N0X0xJUE89IiRhY19jdF9MSVBPIiAjIExldCB0aGUgdXNlciBv dmVycmlkZSB0aGUgdGVzdC4KKytlbHNlCisrYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NF UEFSQVRPUgorK2ZvciBhc19kaXIgaW4gJFBBVEgKKytkbworKyAgSUZTPSRhc19zYXZlX0lGUwor KyAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KKysgIGZvciBhY19leGVjX2V4dCBpbiAn JyAkYWNfZXhlY3V0YWJsZV9leHRlbnNpb25zOyBkbworKyAgaWYgeyB0ZXN0IC1mICIkYXNfZGly LyRhY193b3JkJGFjX2V4ZWNfZXh0IiAmJiAkYXNfdGVzdF94ICIkYXNfZGlyLyRhY193b3JkJGFj X2V4ZWNfZXh0IjsgfTsgdGhlbgorKyAgICBhY19jdl9wcm9nX2FjX2N0X0xJUE89ImxpcG8iCisr ICAgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZm91bmQgJGFzX2Rpci8kYWNfd29yZCRhY19l eGVjX2V4dCIgPiY1CisrICAgIGJyZWFrIDIKKysgIGZpCisrZG9uZQorK2RvbmUKKytJRlM9JGFz X3NhdmVfSUZTCisrCisrZmkKKytmaQorK2FjX2N0X0xJUE89JGFjX2N2X3Byb2dfYWNfY3RfTElQ TworK2lmIHRlc3QgLW4gIiRhY19jdF9MSVBPIjsgdGhlbgorKyAgeyAkYXNfZWNobyAiJGFzX21l OiRMSU5FTk86IHJlc3VsdDogJGFjX2N0X0xJUE8iID4mNQorKyRhc19lY2hvICIkYWNfY3RfTElQ TyIgPiY2OyB9CisrZWxzZQorKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDog bm8iID4mNQorKyRhc19lY2hvICJubyIgPiY2OyB9CisrZmkKKysKKysgIGlmIHRlc3QgIngkYWNf Y3RfTElQTyIgPSB4OyB0aGVuCisrICAgIExJUE89IjoiCisrICBlbHNlCisrICAgIGNhc2UgJGNy b3NzX2NvbXBpbGluZzokYWNfdG9vbF93YXJuZWQgaW4KKyt5ZXM6KQorK3sgJGFzX2VjaG8gIiRh c19tZTokTElORU5POiBXQVJOSU5HOiB1c2luZyBjcm9zcyB0b29scyBub3QgcHJlZml4ZWQgd2l0 aCBob3N0IHRyaXBsZXQiID4mNQorKyRhc19lY2hvICIkYXNfbWU6IFdBUk5JTkc6IHVzaW5nIGNy b3NzIHRvb2xzIG5vdCBwcmVmaXhlZCB3aXRoIGhvc3QgdHJpcGxldCIgPiYyO30KKythY190b29s X3dhcm5lZD15ZXMgOzsKKytlc2FjCisrICAgIExJUE89JGFjX2N0X0xJUE8KKysgIGZpCisrZWxz ZQorKyAgTElQTz0iJGFjX2N2X3Byb2dfTElQTyIKKytmaQorKworKyAgICBpZiB0ZXN0IC1uICIk YWNfdG9vbF9wcmVmaXgiOyB0aGVuCisrICAjIEV4dHJhY3QgdGhlIGZpcnN0IHdvcmQgb2YgIiR7 YWNfdG9vbF9wcmVmaXh9b3Rvb2wiLCBzbyBpdCBjYW4gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBh cmdzLgorK3NldCBkdW1teSAke2FjX3Rvb2xfcHJlZml4fW90b29sOyBhY193b3JkPSQyCisreyAk YXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciAkYWNfd29yZCIgPiY1CisrJGFz X2VjaG9fbiAiY2hlY2tpbmcgZm9yICRhY193b3JkLi4uICIgPiY2OyB9CisraWYgdGVzdCAiJHth Y19jdl9wcm9nX09UT09MK3NldH0iID0gc2V0OyB0aGVuCisrICAkYXNfZWNob19uICIoY2FjaGVk KSAiID4mNgorK2Vsc2UKKysgIGlmIHRlc3QgLW4gIiRPVE9PTCI7IHRoZW4KKysgIGFjX2N2X3By b2dfT1RPT0w9IiRPVE9PTCIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3QuCisrZWxz ZQorK2FzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IKKytmb3IgYXNfZGlyIGlu ICRQQVRICisrZG8KKysgIElGUz0kYXNfc2F2ZV9JRlMKKysgIHRlc3QgLXogIiRhc19kaXIiICYm IGFzX2Rpcj0uCisrICBmb3IgYWNfZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1dGFibGVfZXh0ZW5z aW9uczsgZG8KKysgIGlmIHsgdGVzdCAtZiAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIg JiYgJGFzX3Rlc3RfeCAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCI7IH07IHRoZW4KKysg ICAgYWNfY3ZfcHJvZ19PVE9PTD0iJHthY190b29sX3ByZWZpeH1vdG9vbCIKKysgICAgJGFzX2Vj aG8gIiRhc19tZTokTElORU5POiBmb3VuZCAkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiA+ JjUKKysgICAgYnJlYWsgMgorKyAgZmkKKytkb25lCisrZG9uZQorK0lGUz0kYXNfc2F2ZV9JRlMK KysKKytmaQorK2ZpCisrT1RPT0w9JGFjX2N2X3Byb2dfT1RPT0wKKytpZiB0ZXN0IC1uICIkT1RP T0wiOyB0aGVuCisrICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkT1RPT0wi ID4mNQorKyRhc19lY2hvICIkT1RPT0wiID4mNjsgfQorK2Vsc2UKKysgIHsgJGFzX2VjaG8gIiRh c19tZTokTElORU5POiByZXN1bHQ6IG5vIiA+JjUKKyskYXNfZWNobyAibm8iID4mNjsgfQorK2Zp CisrCisrCisrZmkKKytpZiB0ZXN0IC16ICIkYWNfY3ZfcHJvZ19PVE9PTCI7IHRoZW4KKysgIGFj X2N0X09UT09MPSRPVE9PTAorKyAgIyBFeHRyYWN0IHRoZSBmaXJzdCB3b3JkIG9mICJvdG9vbCIs IHNvIGl0IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3MuCisrc2V0IGR1bW15IG90b29s OyBhY193b3JkPSQyCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciAk YWNfd29yZCIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yICRhY193b3JkLi4uICIgPiY2 OyB9CisraWYgdGVzdCAiJHthY19jdl9wcm9nX2FjX2N0X09UT09MK3NldH0iID0gc2V0OyB0aGVu CisrICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysgIGlmIHRlc3QgLW4gIiRh Y19jdF9PVE9PTCI7IHRoZW4KKysgIGFjX2N2X3Byb2dfYWNfY3RfT1RPT0w9IiRhY19jdF9PVE9P TCIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3QuCisrZWxzZQorK2FzX3NhdmVfSUZT PSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IKKytmb3IgYXNfZGlyIGluICRQQVRICisrZG8KKysg IElGUz0kYXNfc2F2ZV9JRlMKKysgIHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCisrICBm b3IgYWNfZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1dGFibGVfZXh0ZW5zaW9uczsgZG8KKysgIGlm IHsgdGVzdCAtZiAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgJiYgJGFzX3Rlc3RfeCAi JGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCI7IH07IHRoZW4KKysgICAgYWNfY3ZfcHJvZ19h Y19jdF9PVE9PTD0ib3Rvb2wiCisrICAgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZm91bmQg JGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgPiY1CisrICAgIGJyZWFrIDIKKysgIGZpCisr ZG9uZQorK2RvbmUKKytJRlM9JGFzX3NhdmVfSUZTCisrCisrZmkKKytmaQorK2FjX2N0X09UT09M PSRhY19jdl9wcm9nX2FjX2N0X09UT09MCisraWYgdGVzdCAtbiAiJGFjX2N0X09UT09MIjsgdGhl bgorKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2N0X09UT09MIiA+ JjUKKyskYXNfZWNobyAiJGFjX2N0X09UT09MIiA+JjY7IH0KKytlbHNlCisrICB7ICRhc19lY2hv ICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiBubyIgPiY1CisrJGFzX2VjaG8gIm5vIiA+JjY7IH0K KytmaQorKworKyAgaWYgdGVzdCAieCRhY19jdF9PVE9PTCIgPSB4OyB0aGVuCisrICAgIE9UT09M PSI6IgorKyAgZWxzZQorKyAgICBjYXNlICRjcm9zc19jb21waWxpbmc6JGFjX3Rvb2xfd2FybmVk IGluCisreWVzOikKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogV0FSTklORzogdXNpbmcg Y3Jvc3MgdG9vbHMgbm90IHByZWZpeGVkIHdpdGggaG9zdCB0cmlwbGV0IiA+JjUKKyskYXNfZWNo byAiJGFzX21lOiBXQVJOSU5HOiB1c2luZyBjcm9zcyB0b29scyBub3QgcHJlZml4ZWQgd2l0aCBo b3N0IHRyaXBsZXQiID4mMjt9CisrYWNfdG9vbF93YXJuZWQ9eWVzIDs7CisrZXNhYworKyAgICBP VE9PTD0kYWNfY3RfT1RPT0wKKysgIGZpCisrZWxzZQorKyAgT1RPT0w9IiRhY19jdl9wcm9nX09U T09MIgorK2ZpCisrCisrICAgIGlmIHRlc3QgLW4gIiRhY190b29sX3ByZWZpeCI7IHRoZW4KKysg ICMgRXh0cmFjdCB0aGUgZmlyc3Qgd29yZCBvZiAiJHthY190b29sX3ByZWZpeH1vdG9vbDY0Iiwg c28gaXQgY2FuIGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJncy4KKytzZXQgZHVtbXkgJHthY190 b29sX3ByZWZpeH1vdG9vbDY0OyBhY193b3JkPSQyCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5F Tk86IGNoZWNraW5nIGZvciAkYWNfd29yZCIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9y ICRhY193b3JkLi4uICIgPiY2OyB9CisraWYgdGVzdCAiJHthY19jdl9wcm9nX09UT09MNjQrc2V0 fSIgPSBzZXQ7IHRoZW4KKysgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2CisrZWxzZQorKyAg aWYgdGVzdCAtbiAiJE9UT09MNjQiOyB0aGVuCisrICBhY19jdl9wcm9nX09UT09MNjQ9IiRPVE9P TDY0IiAjIExldCB0aGUgdXNlciBvdmVycmlkZSB0aGUgdGVzdC4KKytlbHNlCisrYXNfc2F2ZV9J RlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgorK2ZvciBhc19kaXIgaW4gJFBBVEgKKytkbwor KyAgSUZTPSRhc19zYXZlX0lGUworKyAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KKysg IGZvciBhY19leGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9leHRlbnNpb25zOyBkbworKyAg aWYgeyB0ZXN0IC1mICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiAmJiAkYXNfdGVzdF94 ICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IjsgfTsgdGhlbgorKyAgICBhY19jdl9wcm9n X09UT09MNjQ9IiR7YWNfdG9vbF9wcmVmaXh9b3Rvb2w2NCIKKysgICAgJGFzX2VjaG8gIiRhc19t ZTokTElORU5POiBmb3VuZCAkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiA+JjUKKysgICAg YnJlYWsgMgorKyAgZmkKKytkb25lCisrZG9uZQorK0lGUz0kYXNfc2F2ZV9JRlMKKysKKytmaQor K2ZpCisrT1RPT0w2ND0kYWNfY3ZfcHJvZ19PVE9PTDY0CisraWYgdGVzdCAtbiAiJE9UT09MNjQi OyB0aGVuCisrICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkT1RPT0w2NCIg PiY1CisrJGFzX2VjaG8gIiRPVE9PTDY0IiA+JjY7IH0KKytlbHNlCisrICB7ICRhc19lY2hvICIk YXNfbWU6JExJTkVOTzogcmVzdWx0OiBubyIgPiY1CisrJGFzX2VjaG8gIm5vIiA+JjY7IH0KKytm aQorKworKworK2ZpCisraWYgdGVzdCAteiAiJGFjX2N2X3Byb2dfT1RPT0w2NCI7IHRoZW4KKysg IGFjX2N0X09UT09MNjQ9JE9UT09MNjQKKysgICMgRXh0cmFjdCB0aGUgZmlyc3Qgd29yZCBvZiAi b3Rvb2w2NCIsIHNvIGl0IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3MuCisrc2V0IGR1 bW15IG90b29sNjQ7IGFjX3dvcmQ9JDIKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hl Y2tpbmcgZm9yICRhY193b3JkIiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyBmb3IgJGFjX3dv cmQuLi4gIiA+JjY7IH0KKytpZiB0ZXN0ICIke2FjX2N2X3Byb2dfYWNfY3RfT1RPT0w2NCtzZXR9 IiA9IHNldDsgdGhlbgorKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKKytlbHNlCisrICBp ZiB0ZXN0IC1uICIkYWNfY3RfT1RPT0w2NCI7IHRoZW4KKysgIGFjX2N2X3Byb2dfYWNfY3RfT1RP T0w2ND0iJGFjX2N0X09UT09MNjQiICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0Lgor K2Vsc2UKKythc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCisrZm9yIGFzX2Rp ciBpbiAkUEFUSAorK2RvCisrICBJRlM9JGFzX3NhdmVfSUZTCisrICB0ZXN0IC16ICIkYXNfZGly IiAmJiBhc19kaXI9LgorKyAgZm9yIGFjX2V4ZWNfZXh0IGluICcnICRhY19leGVjdXRhYmxlX2V4 dGVuc2lvbnM7IGRvCisrICBpZiB7IHRlc3QgLWYgIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19l eHQiICYmICRhc190ZXN0X3ggIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiOyB9OyB0aGVu CisrICAgIGFjX2N2X3Byb2dfYWNfY3RfT1RPT0w2ND0ib3Rvb2w2NCIKKysgICAgJGFzX2VjaG8g IiRhc19tZTokTElORU5POiBmb3VuZCAkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiA+JjUK KysgICAgYnJlYWsgMgorKyAgZmkKKytkb25lCisrZG9uZQorK0lGUz0kYXNfc2F2ZV9JRlMKKysK KytmaQorK2ZpCisrYWNfY3RfT1RPT0w2ND0kYWNfY3ZfcHJvZ19hY19jdF9PVE9PTDY0CisraWYg dGVzdCAtbiAiJGFjX2N0X09UT09MNjQiOyB0aGVuCisrICB7ICRhc19lY2hvICIkYXNfbWU6JExJ TkVOTzogcmVzdWx0OiAkYWNfY3RfT1RPT0w2NCIgPiY1CisrJGFzX2VjaG8gIiRhY19jdF9PVE9P TDY0IiA+JjY7IH0KKytlbHNlCisrICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0 OiBubyIgPiY1CisrJGFzX2VjaG8gIm5vIiA+JjY7IH0KKytmaQorKworKyAgaWYgdGVzdCAieCRh Y19jdF9PVE9PTDY0IiA9IHg7IHRoZW4KKysgICAgT1RPT0w2ND0iOiIKKysgIGVsc2UKKysgICAg Y2FzZSAkY3Jvc3NfY29tcGlsaW5nOiRhY190b29sX3dhcm5lZCBpbgorK3llczopCisreyAkYXNf ZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6IHVzaW5nIGNyb3NzIHRvb2xzIG5vdCBwcmVm aXhlZCB3aXRoIGhvc3QgdHJpcGxldCIgPiY1CisrJGFzX2VjaG8gIiRhc19tZTogV0FSTklORzog dXNpbmcgY3Jvc3MgdG9vbHMgbm90IHByZWZpeGVkIHdpdGggaG9zdCB0cmlwbGV0IiA+JjI7fQor K2FjX3Rvb2xfd2FybmVkPXllcyA7OworK2VzYWMKKysgICAgT1RPT0w2ND0kYWNfY3RfT1RPT0w2 NAorKyAgZmkKKytlbHNlCisrICBPVE9PTDY0PSIkYWNfY3ZfcHJvZ19PVE9PTDY0IgorK2ZpCisr CisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisr CisrCisrCisrCisrCisrCisrCisrCisrICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBj aGVja2luZyBmb3IgLXNpbmdsZV9tb2R1bGUgbGlua2VyIGZsYWciID4mNQorKyRhc19lY2hvX24g ImNoZWNraW5nIGZvciAtc2luZ2xlX21vZHVsZSBsaW5rZXIgZmxhZy4uLiAiID4mNjsgfQorK2lm IHRlc3QgIiR7bHRfY3ZfYXBwbGVfY2Nfc2luZ2xlX21vZCtzZXR9IiA9IHNldDsgdGhlbgorKyAg JGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKKytlbHNlCisrICBsdF9jdl9hcHBsZV9jY19zaW5n bGVfbW9kPW5vCisrICAgICAgaWYgdGVzdCAteiAiJHtMVF9NVUxUSV9NT0RVTEV9IjsgdGhlbgor KwkjIEJ5IGRlZmF1bHQgd2Ugd2lsbCBhZGQgdGhlIC1zaW5nbGVfbW9kdWxlIGZsYWcuIFlvdSBj YW4gb3ZlcnJpZGUKKysJIyBieSBlaXRoZXIgc2V0dGluZyB0aGUgZW52aXJvbm1lbnQgdmFyaWFi bGUgTFRfTVVMVElfTU9EVUxFCisrCSMgbm9uLWVtcHR5IGF0IGNvbmZpZ3VyZSB0aW1lLCBvciBi eSBhZGRpbmcgLW11bHRpX21vZHVsZSB0byB0aGUKKysJIyBsaW5rIGZsYWdzLgorKwlybSAtcmYg bGliY29uZnRlc3QuZHlsaWIqCisrCWVjaG8gImludCBmb28odm9pZCl7cmV0dXJuIDE7fSIgPiBj b25mdGVzdC5jCisrCWVjaG8gIiRMVENDICRMVENGTEFHUyAkTERGTEFHUyAtbyBsaWJjb25mdGVz dC5keWxpYiBcCisrLWR5bmFtaWNsaWIgLVdsLC1zaW5nbGVfbW9kdWxlIGNvbmZ0ZXN0LmMiID4m NQorKwkkTFRDQyAkTFRDRkxBR1MgJExERkxBR1MgLW8gbGliY29uZnRlc3QuZHlsaWIgXAorKwkg IC1keW5hbWljbGliIC1XbCwtc2luZ2xlX21vZHVsZSBjb25mdGVzdC5jIDI+Y29uZnRlc3QuZXJy CisrICAgICAgICBfbHRfcmVzdWx0PSQ/CisrCWlmIHRlc3QgLWYgbGliY29uZnRlc3QuZHlsaWIg JiYgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVyciAmJiB0ZXN0ICRfbHRfcmVzdWx0ID0gMDsgdGhlbgor KwkgIGx0X2N2X2FwcGxlX2NjX3NpbmdsZV9tb2Q9eWVzCisrCWVsc2UKKysJICBjYXQgY29uZnRl c3QuZXJyID4mNQorKwlmaQorKwlybSAtcmYgbGliY29uZnRlc3QuZHlsaWIqCisrCXJtIC1mIGNv bmZ0ZXN0LioKKysgICAgICBmaQorK2ZpCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJl c3VsdDogJGx0X2N2X2FwcGxlX2NjX3NpbmdsZV9tb2QiID4mNQorKyRhc19lY2hvICIkbHRfY3Zf YXBwbGVfY2Nfc2luZ2xlX21vZCIgPiY2OyB9CisrICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElO RU5POiBjaGVja2luZyBmb3IgLWV4cG9ydGVkX3N5bWJvbHNfbGlzdCBsaW5rZXIgZmxhZyIgPiY1 CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yIC1leHBvcnRlZF9zeW1ib2xzX2xpc3QgbGlua2Vy IGZsYWcuLi4gIiA+JjY7IH0KKytpZiB0ZXN0ICIke2x0X2N2X2xkX2V4cG9ydGVkX3N5bWJvbHNf bGlzdCtzZXR9IiA9IHNldDsgdGhlbgorKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKKytl bHNlCisrICBsdF9jdl9sZF9leHBvcnRlZF9zeW1ib2xzX2xpc3Q9bm8KKysgICAgICBzYXZlX0xE RkxBR1M9JExERkxBR1MKKysgICAgICBlY2hvICJfbWFpbiIgPiBjb25mdGVzdC5zeW0KKysgICAg ICBMREZMQUdTPSIkTERGTEFHUyAtV2wsLWV4cG9ydGVkX3N5bWJvbHNfbGlzdCxjb25mdGVzdC5z eW0iCisrICAgICAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisrLyogY29uZmRlZnMu aC4gICovCisrX0FDRU9GCisrY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0CisrY2F0 ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KKysK KytpbnQKKyttYWluICgpCisreworKworKyAgOworKyAgcmV0dXJuIDA7CisrfQorK19BQ0VPRgor K3JtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QkYWNfZXhlZXh0CisraWYgeyAoYWNf dHJ5PSIkYWNfbGluayIKKytjYXNlICIoKCRhY190cnkiIGluCisrICAqXCIqIHwgKlxgKiB8ICpc XCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKKysgICopIGFjX3RyeV9lY2hvPSRhY190cnk7Owor K2VzYWMKKytldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hv XCIiCisrJGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4mNQorKyAgKGV2YWwgIiRhY19saW5rIikg Mj5jb25mdGVzdC5lcjEKKysgIGFjX3N0YXR1cz0kPworKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRl c3QuZXIxID5jb25mdGVzdC5lcnIKKysgIHJtIC1mIGNvbmZ0ZXN0LmVyMQorKyAgY2F0IGNvbmZ0 ZXN0LmVyciA+JjUKKysgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1 cyIgPiY1CisrICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJiB7CisrCSB0ZXN0IC16ICIkYWNfY193 ZXJyb3JfZmxhZyIgfHwKKysJIHRlc3QgISAtcyBjb25mdGVzdC5lcnIKKysgICAgICAgfSAmJiB0 ZXN0IC1zIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAmJiB7CisrCSB0ZXN0ICIkY3Jvc3NfY29tcGlsaW5n IiA9IHllcyB8fAorKwkgJGFzX3Rlc3RfeCBjb25mdGVzdCRhY19leGVleHQKKysgICAgICAgfTsg dGhlbgorKyAgbHRfY3ZfbGRfZXhwb3J0ZWRfc3ltYm9sc19saXN0PXllcworK2Vsc2UKKysgICRh c19lY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQorK3NlZCAncy9eL3wgLycg Y29uZnRlc3QuJGFjX2V4dCA+JjUKKysKKysJbHRfY3ZfbGRfZXhwb3J0ZWRfc3ltYm9sc19saXN0 PW5vCisrZmkKKysKKytybSAtcmYgY29uZnRlc3QuZFNZTQorK3JtIC1mIGNvcmUgY29uZnRlc3Qu ZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3RfaXBhOF9jb25mdGVzdC5vbyBcCisrICAg ICAgY29uZnRlc3QkYWNfZXhlZXh0IGNvbmZ0ZXN0LiRhY19leHQKKysJTERGTEFHUz0iJHNhdmVf TERGTEFHUyIKKysKKytmaQorK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRs dF9jdl9sZF9leHBvcnRlZF9zeW1ib2xzX2xpc3QiID4mNQorKyRhc19lY2hvICIkbHRfY3ZfbGRf ZXhwb3J0ZWRfc3ltYm9sc19saXN0IiA+JjY7IH0KKysgICAgY2FzZSAkaG9zdF9vcyBpbgorKyAg ICByaGFwc29keSogfCBkYXJ3aW4xLlswMTJdKQorKyAgICAgIF9sdF9kYXJfYWxsb3dfdW5kZWZp bmVkPScke3dsfS11bmRlZmluZWQgJHt3bH1zdXBwcmVzcycgOzsKKysgICAgZGFyd2luMS4qKQor KyAgICAgIF9sdF9kYXJfYWxsb3dfdW5kZWZpbmVkPScke3dsfS1mbGF0X25hbWVzcGFjZSAke3ds fS11bmRlZmluZWQgJHt3bH1zdXBwcmVzcycgOzsKKysgICAgZGFyd2luKikgIyBkYXJ3aW4gNS54 IG9uCisrICAgICAgIyBpZiBydW5uaW5nIG9uIDEwLjUgb3IgbGF0ZXIsIHRoZSBkZXBsb3ltZW50 IHRhcmdldCBkZWZhdWx0cworKyAgICAgICMgdG8gdGhlIE9TIHZlcnNpb24sIGlmIG9uIHg4Niwg YW5kIDEwLjQsIHRoZSBkZXBsb3ltZW50CisrICAgICAgIyB0YXJnZXQgZGVmYXVsdHMgdG8gMTAu NC4gRG9uJ3QgeW91IGxvdmUgaXQ/CisrICAgICAgY2FzZSAke01BQ09TWF9ERVBMT1lNRU5UX1RB UkdFVC0xMC4wfSwkaG9zdCBpbgorKwkxMC4wLCo4NiotZGFyd2luOCp8MTAuMCwqLWRhcndpbls5 MV0qKQorKwkgIF9sdF9kYXJfYWxsb3dfdW5kZWZpbmVkPScke3dsfS11bmRlZmluZWQgJHt3bH1k eW5hbWljX2xvb2t1cCcgOzsKKysJMTAuWzAxMl0qKQorKwkgIF9sdF9kYXJfYWxsb3dfdW5kZWZp bmVkPScke3dsfS1mbGF0X25hbWVzcGFjZSAke3dsfS11bmRlZmluZWQgJHt3bH1zdXBwcmVzcycg OzsKKysJMTAuKikKKysJICBfbHRfZGFyX2FsbG93X3VuZGVmaW5lZD0nJHt3bH0tdW5kZWZpbmVk ICR7d2x9ZHluYW1pY19sb29rdXAnIDs7CisrICAgICAgZXNhYworKyAgICA7OworKyAgZXNhYwor KyAgICBpZiB0ZXN0ICIkbHRfY3ZfYXBwbGVfY2Nfc2luZ2xlX21vZCIgPSAieWVzIjsgdGhlbgor KyAgICAgIF9sdF9kYXJfc2luZ2xlX21vZD0nJHNpbmdsZV9tb2R1bGUnCisrICAgIGZpCisrICAg IGlmIHRlc3QgIiRsdF9jdl9sZF9leHBvcnRlZF9zeW1ib2xzX2xpc3QiID0gInllcyI7IHRoZW4K KysgICAgICBfbHRfZGFyX2V4cG9ydF9zeW1zPScgJHt3bH0tZXhwb3J0ZWRfc3ltYm9sc19saXN0 LCRvdXRwdXRfb2JqZGlyLyR7bGlibmFtZX0tc3ltYm9scy5leHBzeW0nCisrICAgIGVsc2UKKysg ICAgICBfbHRfZGFyX2V4cG9ydF9zeW1zPSd+JE5NRURJVCAtcyAkb3V0cHV0X29iamRpci8ke2xp Ym5hbWV9LXN5bWJvbHMuZXhwc3ltICR7bGlifScKKysgICAgZmkKKysgICAgaWYgdGVzdCAiJERT WU1VVElMIiAhPSAiOiI7IHRoZW4KKysgICAgICBfbHRfZHN5bXV0aWw9J34kRFNZTVVUSUwgJGxp YiB8fCA6JworKyAgICBlbHNlCisrICAgICAgX2x0X2RzeW11dGlsPQorKyAgICBmaQorKyAgICA7 OworKyAgZXNhYworKworK2FjX2V4dD1jCisrYWNfY3BwPSckQ1BQICRDUFBGTEFHUycKKythY19j b21waWxlPSckQ0MgLWMgJENGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUnCisr YWNfbGluaz0nJENDIC1vIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAkQ0ZMQUdTICRDUFBGTEFHUyAkTERG TEFHUyBjb25mdGVzdC4kYWNfZXh0ICRMSUJTID4mNScKKythY19jb21waWxlcl9nbnU9JGFjX2N2 X2NfY29tcGlsZXJfZ251CisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGhv dyB0byBydW4gdGhlIEMgcHJlcHJvY2Vzc29yIiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyBo b3cgdG8gcnVuIHRoZSBDIHByZXByb2Nlc3Nvci4uLiAiID4mNjsgfQorKyMgT24gU3Vucywgc29t ZXRpbWVzICRDUFAgbmFtZXMgYSBkaXJlY3RvcnkuCisraWYgdGVzdCAtbiAiJENQUCIgJiYgdGVz dCAtZCAiJENQUCI7IHRoZW4KKysgIENQUD0KKytmaQorK2lmIHRlc3QgLXogIiRDUFAiOyB0aGVu CisrICBpZiB0ZXN0ICIke2FjX2N2X3Byb2dfQ1BQK3NldH0iID0gc2V0OyB0aGVuCisrICAkYXNf ZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysgICAgICAjIERvdWJsZSBxdW90ZXMgYmVj YXVzZSBDUFAgbmVlZHMgdG8gYmUgZXhwYW5kZWQKKysgICAgZm9yIENQUCBpbiAiJENDIC1FIiAi JENDIC1FIC10cmFkaXRpb25hbC1jcHAiICIvbGliL2NwcCIKKysgICAgZG8KKysgICAgICBhY19w cmVwcm9jX29rPWZhbHNlCisrZm9yIGFjX2NfcHJlcHJvY193YXJuX2ZsYWcgaW4gJycgeWVzCisr ZG8KKysgICMgVXNlIGEgaGVhZGVyIGZpbGUgdGhhdCBjb21lcyB3aXRoIGdjYywgc28gY29uZmln dXJpbmcgZ2xpYmMKKysgICMgd2l0aCBhIGZyZXNoIGNyb3NzLWNvbXBpbGVyIHdvcmtzLgorKyAg IyBQcmVmZXIgPGxpbWl0cy5oPiB0byA8YXNzZXJ0Lmg+IGlmIF9fU1REQ19fIGlzIGRlZmluZWQs IHNpbmNlCisrICAjIDxsaW1pdHMuaD4gZXhpc3RzIGV2ZW4gb24gZnJlZXN0YW5kaW5nIGNvbXBp bGVycy4KKysgICMgT24gdGhlIE5lWFQsIGNjIC1FIHJ1bnMgdGhlIGNvZGUgdGhyb3VnaCB0aGUg Y29tcGlsZXIncyBwYXJzZXIsCisrICAjIG5vdCBqdXN0IHRocm91Z2ggY3BwLiAiU3ludGF4IGVy cm9yIiBpcyBoZXJlIHRvIGNhdGNoIHRoaXMgY2FzZS4KKysgIGNhdCA+Y29uZnRlc3QuJGFjX2V4 dCA8PF9BQ0VPRgorKy8qIGNvbmZkZWZzLmguICAqLworK19BQ0VPRgorK2NhdCBjb25mZGVmcy5o ID4+Y29uZnRlc3QuJGFjX2V4dAorK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKysv KiBlbmQgY29uZmRlZnMuaC4gICovCisrI2lmZGVmIF9fU1REQ19fCisrIyBpbmNsdWRlIDxsaW1p dHMuaD4KKysjZWxzZQorKyMgaW5jbHVkZSA8YXNzZXJ0Lmg+CisrI2VuZGlmCisrCQkgICAgIFN5 bnRheCBlcnJvcgorK19BQ0VPRgorK2lmIHsgKGFjX3RyeT0iJGFjX2NwcCBjb25mdGVzdC4kYWNf ZXh0IgorK2Nhc2UgIigoJGFjX3RyeSIgaW4KKysgICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5 X2VjaG89XCRhY190cnk7OworKyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7CisrZXNhYworK2V2 YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIKKyskYXNf ZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1CisrICAoZXZhbCAiJGFjX2NwcCBjb25mdGVzdC4kYWNf ZXh0IikgMj5jb25mdGVzdC5lcjEKKysgIGFjX3N0YXR1cz0kPworKyAgZ3JlcCAtdiAnXiAqKycg Y29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKKysgIHJtIC1mIGNvbmZ0ZXN0LmVyMQorKyAgY2F0 IGNvbmZ0ZXN0LmVyciA+JjUKKysgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFj X3N0YXR1cyIgPiY1CisrICAoZXhpdCAkYWNfc3RhdHVzKTsgfSA+L2Rldi9udWxsICYmIHsKKysJ IHRlc3QgLXogIiRhY19jX3ByZXByb2Nfd2Fybl9mbGFnJGFjX2Nfd2Vycm9yX2ZsYWciIHx8Cisr CSB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCisrICAgICAgIH07IHRoZW4KKysgIDoKKytlbHNlCisr ICAkYXNfZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKKytzZWQgJ3MvXi98 IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1CisrCisrICAjIEJyb2tlbjogZmFpbHMgb24gdmFsaWQg aW5wdXQuCisrY29udGludWUKKytmaQorKworK3JtIC1mIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4k YWNfZXh0CisrCisrICAjIE9LLCB3b3JrcyBvbiBzYW5lIGNhc2VzLiAgTm93IGNoZWNrIHdoZXRo ZXIgbm9uZXhpc3RlbnQgaGVhZGVycworKyAgIyBjYW4gYmUgZGV0ZWN0ZWQgYW5kIGhvdy4KKysg IGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorKy8qIGNvbmZkZWZzLmguICAqLworK19B Q0VPRgorK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAorK2NhdCA+PmNvbmZ0ZXN0 LiRhY19leHQgPDxfQUNFT0YKKysvKiBlbmQgY29uZmRlZnMuaC4gICovCisrI2luY2x1ZGUgPGFj X25vbmV4aXN0ZW50Lmg+CisrX0FDRU9GCisraWYgeyAoYWNfdHJ5PSIkYWNfY3BwIGNvbmZ0ZXN0 LiRhY19leHQiCisrY2FzZSAiKCgkYWNfdHJ5IiBpbgorKyAgKlwiKiB8ICpcYCogfCAqXFwqKSBh Y190cnlfZWNobz1cJGFjX3RyeTs7CisrICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKKytlc2Fj CisrZXZhbCBhY190cnlfZWNobz0iXCJcJGFzX21lOiRMSU5FTk86ICRhY190cnlfZWNob1wiIgor KyRhc19lY2hvICIkYWNfdHJ5X2VjaG8iKSA+JjUKKysgIChldmFsICIkYWNfY3BwIGNvbmZ0ZXN0 LiRhY19leHQiKSAyPmNvbmZ0ZXN0LmVyMQorKyAgYWNfc3RhdHVzPSQ/CisrICBncmVwIC12ICde ICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgorKyAgcm0gLWYgY29uZnRlc3QuZXIxCisr ICBjYXQgY29uZnRlc3QuZXJyID4mNQorKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8g PSAkYWNfc3RhdHVzIiA+JjUKKysgIChleGl0ICRhY19zdGF0dXMpOyB9ID4vZGV2L251bGwgJiYg eworKwkgdGVzdCAteiAiJGFjX2NfcHJlcHJvY193YXJuX2ZsYWckYWNfY193ZXJyb3JfZmxhZyIg fHwKKysJIHRlc3QgISAtcyBjb25mdGVzdC5lcnIKKysgICAgICAgfTsgdGhlbgorKyAgIyBCcm9r ZW46IHN1Y2Nlc3Mgb24gaW52YWxpZCBpbnB1dC4KKytjb250aW51ZQorK2Vsc2UKKysgICRhc19l Y2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQorK3NlZCAncy9eL3wgLycgY29u ZnRlc3QuJGFjX2V4dCA+JjUKKysKKysgICMgUGFzc2VzIGJvdGggdGVzdHMuCisrYWNfcHJlcHJv Y19vaz06CisrYnJlYWsKKytmaQorKworK3JtIC1mIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNf ZXh0CisrCisrZG9uZQorKyMgQmVjYXVzZSBvZiBgYnJlYWsnLCBfQUNfUFJFUFJPQ19JRkVMU0Un cyBjbGVhbmluZyBjb2RlIHdhcyBza2lwcGVkLgorK3JtIC1mIGNvbmZ0ZXN0LmVyciBjb25mdGVz dC4kYWNfZXh0CisraWYgJGFjX3ByZXByb2Nfb2s7IHRoZW4KKysgIGJyZWFrCisrZmkKKysKKysg ICAgZG9uZQorKyAgICBhY19jdl9wcm9nX0NQUD0kQ1BQCisrCisrZmkKKysgIENQUD0kYWNfY3Zf cHJvZ19DUFAKKytlbHNlCisrICBhY19jdl9wcm9nX0NQUD0kQ1BQCisrZmkKKyt7ICRhc19lY2hv ICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkQ1BQIiA+JjUKKyskYXNfZWNobyAiJENQUCIgPiY2 OyB9CisrYWNfcHJlcHJvY19vaz1mYWxzZQorK2ZvciBhY19jX3ByZXByb2Nfd2Fybl9mbGFnIGlu ICcnIHllcworK2RvCisrICAjIFVzZSBhIGhlYWRlciBmaWxlIHRoYXQgY29tZXMgd2l0aCBnY2Ms IHNvIGNvbmZpZ3VyaW5nIGdsaWJjCisrICAjIHdpdGggYSBmcmVzaCBjcm9zcy1jb21waWxlciB3 b3Jrcy4KKysgICMgUHJlZmVyIDxsaW1pdHMuaD4gdG8gPGFzc2VydC5oPiBpZiBfX1NURENfXyBp cyBkZWZpbmVkLCBzaW5jZQorKyAgIyA8bGltaXRzLmg+IGV4aXN0cyBldmVuIG9uIGZyZWVzdGFu ZGluZyBjb21waWxlcnMuCisrICAjIE9uIHRoZSBOZVhULCBjYyAtRSBydW5zIHRoZSBjb2RlIHRo cm91Z2ggdGhlIGNvbXBpbGVyJ3MgcGFyc2VyLAorKyAgIyBub3QganVzdCB0aHJvdWdoIGNwcC4g IlN5bnRheCBlcnJvciIgaXMgaGVyZSB0byBjYXRjaCB0aGlzIGNhc2UuCisrICBjYXQgPmNvbmZ0 ZXN0LiRhY19leHQgPDxfQUNFT0YKKysvKiBjb25mZGVmcy5oLiAgKi8KKytfQUNFT0YKKytjYXQg Y29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKKytjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8 X0FDRU9GCisrLyogZW5kIGNvbmZkZWZzLmguICAqLworKyNpZmRlZiBfX1NURENfXworKyMgaW5j bHVkZSA8bGltaXRzLmg+CisrI2Vsc2UKKysjIGluY2x1ZGUgPGFzc2VydC5oPgorKyNlbmRpZgor KwkJICAgICBTeW50YXggZXJyb3IKKytfQUNFT0YKKytpZiB7IChhY190cnk9IiRhY19jcHAgY29u ZnRlc3QuJGFjX2V4dCIKKytjYXNlICIoKCRhY190cnkiIGluCisrICAqXCIqIHwgKlxgKiB8ICpc XCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKKysgICopIGFjX3RyeV9lY2hvPSRhY190cnk7Owor K2VzYWMKKytldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hv XCIiCisrJGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4mNQorKyAgKGV2YWwgIiRhY19jcHAgY29u ZnRlc3QuJGFjX2V4dCIpIDI+Y29uZnRlc3QuZXIxCisrICBhY19zdGF0dXM9JD8KKysgIGdyZXAg LXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCisrICBybSAtZiBjb25mdGVzdC5l cjEKKysgIGNhdCBjb25mdGVzdC5lcnIgPiY1CisrICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86 IFwkPyA9ICRhY19zdGF0dXMiID4mNQorKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gPi9kZXYvbnVs bCAmJiB7CisrCSB0ZXN0IC16ICIkYWNfY19wcmVwcm9jX3dhcm5fZmxhZyRhY19jX3dlcnJvcl9m bGFnIiB8fAorKwkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgorKyAgICAgICB9OyB0aGVuCisrICA6 CisrZWxzZQorKyAgJGFzX2VjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Cisr c2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQorKworKyAgIyBCcm9rZW46IGZhaWxz IG9uIHZhbGlkIGlucHV0LgorK2NvbnRpbnVlCisrZmkKKysKKytybSAtZiBjb25mdGVzdC5lcnIg Y29uZnRlc3QuJGFjX2V4dAorKworKyAgIyBPSywgd29ya3Mgb24gc2FuZSBjYXNlcy4gIE5vdyBj aGVjayB3aGV0aGVyIG5vbmV4aXN0ZW50IGhlYWRlcnMKKysgICMgY2FuIGJlIGRldGVjdGVkIGFu ZCBob3cuCisrICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKysvKiBjb25mZGVmcy5o LiAgKi8KKytfQUNFT0YKKytjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKKytjYXQg Pj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisrLyogZW5kIGNvbmZkZWZzLmguICAqLworKyNp bmNsdWRlIDxhY19ub25leGlzdGVudC5oPgorK19BQ0VPRgorK2lmIHsgKGFjX3RyeT0iJGFjX2Nw cCBjb25mdGVzdC4kYWNfZXh0IgorK2Nhc2UgIigoJGFjX3RyeSIgaW4KKysgICpcIiogfCAqXGAq IHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OworKyAgKikgYWNfdHJ5X2VjaG89JGFjX3Ry eTs7CisrZXNhYworK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5 X2VjaG9cIiIKKyskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1CisrICAoZXZhbCAiJGFjX2Nw cCBjb25mdGVzdC4kYWNfZXh0IikgMj5jb25mdGVzdC5lcjEKKysgIGFjX3N0YXR1cz0kPworKyAg Z3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKKysgIHJtIC1mIGNvbmZ0 ZXN0LmVyMQorKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKKysgICRhc19lY2hvICIkYXNfbWU6JExJ TkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisrICAoZXhpdCAkYWNfc3RhdHVzKTsgfSA+L2Rl di9udWxsICYmIHsKKysJIHRlc3QgLXogIiRhY19jX3ByZXByb2Nfd2Fybl9mbGFnJGFjX2Nfd2Vy cm9yX2ZsYWciIHx8CisrCSB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCisrICAgICAgIH07IHRoZW4K KysgICMgQnJva2VuOiBzdWNjZXNzIG9uIGludmFsaWQgaW5wdXQuCisrY29udGludWUKKytlbHNl CisrICAkYXNfZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKKytzZWQgJ3Mv Xi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1CisrCisrICAjIFBhc3NlcyBib3RoIHRlc3RzLgor K2FjX3ByZXByb2Nfb2s9OgorK2JyZWFrCisrZmkKKysKKytybSAtZiBjb25mdGVzdC5lcnIgY29u ZnRlc3QuJGFjX2V4dAorKworK2RvbmUKKysjIEJlY2F1c2Ugb2YgYGJyZWFrJywgX0FDX1BSRVBS T0NfSUZFTFNFJ3MgY2xlYW5pbmcgY29kZSB3YXMgc2tpcHBlZC4KKytybSAtZiBjb25mdGVzdC5l cnIgY29uZnRlc3QuJGFjX2V4dAorK2lmICRhY19wcmVwcm9jX29rOyB0aGVuCisrICA6CisrZWxz ZQorKyAgeyB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IGluIFxgJGFjX3B3ZCc6 IiA+JjUKKyskYXNfZWNobyAiJGFzX21lOiBlcnJvcjogaW4gXGAkYWNfcHdkJzoiID4mMjt9Cisr eyB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IEMgcHJlcHJvY2Vzc29yIFwiJENQ UFwiIGZhaWxzIHNhbml0eSBjaGVjaworK1NlZSBcYGNvbmZpZy5sb2cnIGZvciBtb3JlIGRldGFp bHMuIiA+JjUKKyskYXNfZWNobyAiJGFzX21lOiBlcnJvcjogQyBwcmVwcm9jZXNzb3IgXCIkQ1BQ XCIgZmFpbHMgc2FuaXR5IGNoZWNrCisrU2VlIFxgY29uZmlnLmxvZycgZm9yIG1vcmUgZGV0YWls cy4iID4mMjt9CisrICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9OyB9CisrZmkKKysKKythY19l eHQ9YworK2FjX2NwcD0nJENQUCAkQ1BQRkxBR1MnCisrYWNfY29tcGlsZT0nJENDIC1jICRDRkxB R1MgJENQUEZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgPiY1JworK2FjX2xpbms9JyRDQyAtbyBjb25m dGVzdCRhY19leGVleHQgJENGTEFHUyAkQ1BQRkxBR1MgJExERkxBR1MgY29uZnRlc3QuJGFjX2V4 dCAkTElCUyA+JjUnCisrYWNfY29tcGlsZXJfZ251PSRhY19jdl9jX2NvbXBpbGVyX2dudQorKwor KworK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgQU5TSSBDIGhlYWRl ciBmaWxlcyIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yIEFOU0kgQyBoZWFkZXIgZmls ZXMuLi4gIiA+JjY7IH0KKytpZiB0ZXN0ICIke2FjX2N2X2hlYWRlcl9zdGRjK3NldH0iID0gc2V0 OyB0aGVuCisrICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysgIGNhdCA+Y29u ZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorKy8qIGNvbmZkZWZzLmguICAqLworK19BQ0VPRgorK2Nh dCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAorK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQg PDxfQUNFT0YKKysvKiBlbmQgY29uZmRlZnMuaC4gICovCisrI2luY2x1ZGUgPHN0ZGxpYi5oPgor KyNpbmNsdWRlIDxzdGRhcmcuaD4KKysjaW5jbHVkZSA8c3RyaW5nLmg+CisrI2luY2x1ZGUgPGZs b2F0Lmg+CisrCisraW50CisrbWFpbiAoKQorK3sKKysKKysgIDsKKysgIHJldHVybiAwOworK30K KytfQUNFT0YKKytybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0CisraWYgeyAoYWNfdHJ5PSIkYWNf Y29tcGlsZSIKKytjYXNlICIoKCRhY190cnkiIGluCisrICAqXCIqIHwgKlxgKiB8ICpcXCopIGFj X3RyeV9lY2hvPVwkYWNfdHJ5OzsKKysgICopIGFjX3RyeV9lY2hvPSRhY190cnk7OworK2VzYWMK KytldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCisr JGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4mNQorKyAgKGV2YWwgIiRhY19jb21waWxlIikgMj5j b25mdGVzdC5lcjEKKysgIGFjX3N0YXR1cz0kPworKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3Qu ZXIxID5jb25mdGVzdC5lcnIKKysgIHJtIC1mIGNvbmZ0ZXN0LmVyMQorKyAgY2F0IGNvbmZ0ZXN0 LmVyciA+JjUKKysgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIg PiY1CisrICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJiB7CisrCSB0ZXN0IC16ICIkYWNfY193ZXJy b3JfZmxhZyIgfHwKKysJIHRlc3QgISAtcyBjb25mdGVzdC5lcnIKKysgICAgICAgfSAmJiB0ZXN0 IC1zIGNvbmZ0ZXN0LiRhY19vYmpleHQ7IHRoZW4KKysgIGFjX2N2X2hlYWRlcl9zdGRjPXllcwor K2Vsc2UKKysgICRhc19lY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQorK3Nl ZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKKysKKysJYWNfY3ZfaGVhZGVyX3N0ZGM9 bm8KKytmaQorKworK3JtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQg Y29uZnRlc3QuJGFjX2V4dAorKworK2lmIHRlc3QgJGFjX2N2X2hlYWRlcl9zdGRjID0geWVzOyB0 aGVuCisrICAjIFN1bk9TIDQueCBzdHJpbmcuaCBkb2VzIG5vdCBkZWNsYXJlIG1lbSosIGNvbnRy YXJ5IHRvIEFOU0kuCisrICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKysvKiBjb25m ZGVmcy5oLiAgKi8KKytfQUNFT0YKKytjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQK KytjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisrLyogZW5kIGNvbmZkZWZzLmguICAq LworKyNpbmNsdWRlIDxzdHJpbmcuaD4KKysKKytfQUNFT0YKKytpZiAoZXZhbCAiJGFjX2NwcCBj b25mdGVzdC4kYWNfZXh0IikgMj4mNSB8CisrICAkRUdSRVAgIm1lbWNociIgPi9kZXYvbnVsbCAy PiYxOyB0aGVuCisrICA6CisrZWxzZQorKyAgYWNfY3ZfaGVhZGVyX3N0ZGM9bm8KKytmaQorK3Jt IC1mIGNvbmZ0ZXN0KgorKworK2ZpCisrCisraWYgdGVzdCAkYWNfY3ZfaGVhZGVyX3N0ZGMgPSB5 ZXM7IHRoZW4KKysgICMgSVNDIDIuMC4yIHN0ZGxpYi5oIGRvZXMgbm90IGRlY2xhcmUgZnJlZSwg Y29udHJhcnkgdG8gQU5TSS4KKysgIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorKy8q IGNvbmZkZWZzLmguICAqLworK19BQ0VPRgorK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFj X2V4dAorK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKysvKiBlbmQgY29uZmRlZnMu aC4gICovCisrI2luY2x1ZGUgPHN0ZGxpYi5oPgorKworK19BQ0VPRgorK2lmIChldmFsICIkYWNf Y3BwIGNvbmZ0ZXN0LiRhY19leHQiKSAyPiY1IHwKKysgICRFR1JFUCAiZnJlZSIgPi9kZXYvbnVs bCAyPiYxOyB0aGVuCisrICA6CisrZWxzZQorKyAgYWNfY3ZfaGVhZGVyX3N0ZGM9bm8KKytmaQor K3JtIC1mIGNvbmZ0ZXN0KgorKworK2ZpCisrCisraWYgdGVzdCAkYWNfY3ZfaGVhZGVyX3N0ZGMg PSB5ZXM7IHRoZW4KKysgICMgL2Jpbi9jYyBpbiBJcml4LTQuMC41IGdldHMgbm9uLUFOU0kgY3R5 cGUgbWFjcm9zIHVubGVzcyB1c2luZyAtYW5zaS4KKysgIGlmIHRlc3QgIiRjcm9zc19jb21waWxp bmciID0geWVzOyB0aGVuCisrICA6CisrZWxzZQorKyAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8 X0FDRU9GCisrLyogY29uZmRlZnMuaC4gICovCisrX0FDRU9GCisrY2F0IGNvbmZkZWZzLmggPj5j b25mdGVzdC4kYWNfZXh0CisrY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorKy8qIGVu ZCBjb25mZGVmcy5oLiAgKi8KKysjaW5jbHVkZSA8Y3R5cGUuaD4KKysjaW5jbHVkZSA8c3RkbGli Lmg+CisrI2lmICgoJyAnICYgMHgwRkYpID09IDB4MDIwKQorKyMgZGVmaW5lIElTTE9XRVIoYykg KCdhJyA8PSAoYykgJiYgKGMpIDw9ICd6JykKKysjIGRlZmluZSBUT1VQUEVSKGMpIChJU0xPV0VS KGMpID8gJ0EnICsgKChjKSAtICdhJykgOiAoYykpCisrI2Vsc2UKKysjIGRlZmluZSBJU0xPV0VS KGMpIFwKKysJCSAgICgoJ2EnIDw9IChjKSAmJiAoYykgPD0gJ2knKSBcCisrCQkgICAgIHx8ICgn aicgPD0gKGMpICYmIChjKSA8PSAncicpIFwKKysJCSAgICAgfHwgKCdzJyA8PSAoYykgJiYgKGMp IDw9ICd6JykpCisrIyBkZWZpbmUgVE9VUFBFUihjKSAoSVNMT1dFUihjKSA/ICgoYykgfCAweDQw KSA6IChjKSkKKysjZW5kaWYKKysKKysjZGVmaW5lIFhPUihlLCBmKSAoKChlKSAmJiAhKGYpKSB8 fCAoIShlKSAmJiAoZikpKQorK2ludAorK21haW4gKCkKKyt7CisrICBpbnQgaTsKKysgIGZvciAo aSA9IDA7IGkgPCAyNTY7IGkrKykKKysgICAgaWYgKFhPUiAoaXNsb3dlciAoaSksIElTTE9XRVIg KGkpKQorKwl8fCB0b3VwcGVyIChpKSAhPSBUT1VQUEVSIChpKSkKKysgICAgICByZXR1cm4gMjsK KysgIHJldHVybiAwOworK30KKytfQUNFT0YKKytybSAtZiBjb25mdGVzdCRhY19leGVleHQKKytp ZiB7IChhY190cnk9IiRhY19saW5rIgorK2Nhc2UgIigoJGFjX3RyeSIgaW4KKysgICpcIiogfCAq XGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OworKyAgKikgYWNfdHJ5X2VjaG89JGFj X3RyeTs7CisrZXNhYworK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5POiAkYWNf dHJ5X2VjaG9cIiIKKyskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1CisrICAoZXZhbCAiJGFj X2xpbmsiKSAyPiY1CisrICBhY19zdGF0dXM9JD8KKysgICRhc19lY2hvICIkYXNfbWU6JExJTkVO TzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisrICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJiB7IGFj X3RyeT0nLi9jb25mdGVzdCRhY19leGVleHQnCisrICB7IChjYXNlICIoKCRhY190cnkiIGluCisr ICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKKysgICopIGFjX3Ry eV9lY2hvPSRhY190cnk7OworK2VzYWMKKytldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJ TkVOTzogJGFjX3RyeV9lY2hvXCIiCisrJGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4mNQorKyAg KGV2YWwgIiRhY190cnkiKSAyPiY1CisrICBhY19zdGF0dXM9JD8KKysgICRhc19lY2hvICIkYXNf bWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisrICAoZXhpdCAkYWNfc3RhdHVzKTsg fTsgfTsgdGhlbgorKyAgOgorK2Vsc2UKKysgICRhc19lY2hvICIkYXNfbWU6IHByb2dyYW0gZXhp dGVkIHdpdGggc3RhdHVzICRhY19zdGF0dXMiID4mNQorKyRhc19lY2hvICIkYXNfbWU6IGZhaWxl ZCBwcm9ncmFtIHdhczoiID4mNQorK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUK KysKKysoIGV4aXQgJGFjX3N0YXR1cyApCisrYWNfY3ZfaGVhZGVyX3N0ZGM9bm8KKytmaQorK3Jt IC1yZiBjb25mdGVzdC5kU1lNCisrcm0gLWYgY29yZSAqLmNvcmUgY29yZS5jb25mdGVzdC4qIGdt b24ub3V0IGJiLm91dCBjb25mdGVzdCRhY19leGVleHQgY29uZnRlc3QuJGFjX29iamV4dCBjb25m dGVzdC4kYWNfZXh0CisrZmkKKysKKysKKytmaQorK2ZpCisreyAkYXNfZWNobyAiJGFzX21lOiRM SU5FTk86IHJlc3VsdDogJGFjX2N2X2hlYWRlcl9zdGRjIiA+JjUKKyskYXNfZWNobyAiJGFjX2N2 X2hlYWRlcl9zdGRjIiA+JjY7IH0KKytpZiB0ZXN0ICRhY19jdl9oZWFkZXJfc3RkYyA9IHllczsg dGhlbgorKworK2NhdCA+PmNvbmZkZWZzLmggPDxcX0FDRU9GCisrI2RlZmluZSBTVERDX0hFQURF UlMgMQorK19BQ0VPRgorKworK2ZpCisrCisrIyBPbiBJUklYIDUuMywgc3lzL3R5cGVzIGFuZCBp bnR0eXBlcy5oIGFyZSBjb25mbGljdGluZy4KKysKKysKKysKKysKKysKKysKKysKKysKKysKKytm b3IgYWNfaGVhZGVyIGluIHN5cy90eXBlcy5oIHN5cy9zdGF0Lmggc3RkbGliLmggc3RyaW5nLmgg bWVtb3J5Lmggc3RyaW5ncy5oIFwKKysJCSAgaW50dHlwZXMuaCBzdGRpbnQuaCB1bmlzdGQuaAor K2RvCisrYXNfYWNfSGVhZGVyPWAkYXNfZWNobyAiYWNfY3ZfaGVhZGVyXyRhY19oZWFkZXIiIHwg JGFzX3RyX3NoYAorK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgJGFj X2hlYWRlciIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yICRhY19oZWFkZXIuLi4gIiA+ JjY7IH0KKytpZiB7IGFzX3Zhcj0kYXNfYWNfSGVhZGVyOyBldmFsICJ0ZXN0IFwiXCR7JGFzX3Zh citzZXR9XCIgPSBzZXQiOyB9OyB0aGVuCisrICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgor K2Vsc2UKKysgIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorKy8qIGNvbmZkZWZzLmgu ICAqLworK19BQ0VPRgorK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAorK2NhdCA+ PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKysvKiBlbmQgY29uZmRlZnMuaC4gICovCisrJGFj X2luY2x1ZGVzX2RlZmF1bHQKKysKKysjaW5jbHVkZSA8JGFjX2hlYWRlcj4KKytfQUNFT0YKKyty bSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0CisraWYgeyAoYWNfdHJ5PSIkYWNfY29tcGlsZSIKKytj YXNlICIoKCRhY190cnkiIGluCisrICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwk YWNfdHJ5OzsKKysgICopIGFjX3RyeV9lY2hvPSRhY190cnk7OworK2VzYWMKKytldmFsIGFjX3Ry eV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCisrJGFzX2VjaG8gIiRh Y190cnlfZWNobyIpID4mNQorKyAgKGV2YWwgIiRhY19jb21waWxlIikgMj5jb25mdGVzdC5lcjEK KysgIGFjX3N0YXR1cz0kPworKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVz dC5lcnIKKysgIHJtIC1mIGNvbmZ0ZXN0LmVyMQorKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKKysg ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisrICAoZXhp dCAkYWNfc3RhdHVzKTsgfSAmJiB7CisrCSB0ZXN0IC16ICIkYWNfY193ZXJyb3JfZmxhZyIgfHwK KysJIHRlc3QgISAtcyBjb25mdGVzdC5lcnIKKysgICAgICAgfSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0 LiRhY19vYmpleHQ7IHRoZW4KKysgIGV2YWwgIiRhc19hY19IZWFkZXI9eWVzIgorK2Vsc2UKKysg ICRhc19lY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQorK3NlZCAncy9eL3wg LycgY29uZnRlc3QuJGFjX2V4dCA+JjUKKysKKysJZXZhbCAiJGFzX2FjX0hlYWRlcj1ubyIKKytm aQorKworK3JtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRl c3QuJGFjX2V4dAorK2ZpCisrYWNfcmVzPWBldmFsICdhc192YWw9JHsnJGFzX2FjX0hlYWRlcid9 CisrCQkgJGFzX2VjaG8gIiRhc192YWwiJ2AKKysJICAgICAgIHsgJGFzX2VjaG8gIiRhc19tZTok TElORU5POiByZXN1bHQ6ICRhY19yZXMiID4mNQorKyRhc19lY2hvICIkYWNfcmVzIiA+JjY7IH0K Kythc192YWw9YGV2YWwgJ2FzX3ZhbD0keyckYXNfYWNfSGVhZGVyJ30KKysJCSAkYXNfZWNobyAi JGFzX3ZhbCInYAorKyAgIGlmIHRlc3QgIngkYXNfdmFsIiA9IHgiInllczsgdGhlbgorKyAgY2F0 ID4+Y29uZmRlZnMuaCA8PF9BQ0VPRgorKyNkZWZpbmUgYCRhc19lY2hvICJIQVZFXyRhY19oZWFk ZXIiIHwgJGFzX3RyX2NwcGAgMQorK19BQ0VPRgorKworK2ZpCisrCisrZG9uZQorKworKworKwor K2ZvciBhY19oZWFkZXIgaW4gZGxmY24uaAorK2RvCisrYXNfYWNfSGVhZGVyPWAkYXNfZWNobyAi YWNfY3ZfaGVhZGVyXyRhY19oZWFkZXIiIHwgJGFzX3RyX3NoYAorK3sgJGFzX2VjaG8gIiRhc19t ZTokTElORU5POiBjaGVja2luZyBmb3IgJGFjX2hlYWRlciIgPiY1CisrJGFzX2VjaG9fbiAiY2hl Y2tpbmcgZm9yICRhY19oZWFkZXIuLi4gIiA+JjY7IH0KKytpZiB7IGFzX3Zhcj0kYXNfYWNfSGVh ZGVyOyBldmFsICJ0ZXN0IFwiXCR7JGFzX3ZhcitzZXR9XCIgPSBzZXQiOyB9OyB0aGVuCisrICAk YXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysgIGNhdCA+Y29uZnRlc3QuJGFjX2V4 dCA8PF9BQ0VPRgorKy8qIGNvbmZkZWZzLmguICAqLworK19BQ0VPRgorK2NhdCBjb25mZGVmcy5o ID4+Y29uZnRlc3QuJGFjX2V4dAorK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKysv KiBlbmQgY29uZmRlZnMuaC4gICovCisrJGFjX2luY2x1ZGVzX2RlZmF1bHQKKysKKysjaW5jbHVk ZSA8JGFjX2hlYWRlcj4KKytfQUNFT0YKKytybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0CisraWYg eyAoYWNfdHJ5PSIkYWNfY29tcGlsZSIKKytjYXNlICIoKCRhY190cnkiIGluCisrICAqXCIqIHwg KlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKKysgICopIGFjX3RyeV9lY2hvPSRh Y190cnk7OworK2VzYWMKKytldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFj X3RyeV9lY2hvXCIiCisrJGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4mNQorKyAgKGV2YWwgIiRh Y19jb21waWxlIikgMj5jb25mdGVzdC5lcjEKKysgIGFjX3N0YXR1cz0kPworKyAgZ3JlcCAtdiAn XiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKKysgIHJtIC1mIGNvbmZ0ZXN0LmVyMQor KyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKKysgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ ID0gJGFjX3N0YXR1cyIgPiY1CisrICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJiB7CisrCSB0ZXN0 IC16ICIkYWNfY193ZXJyb3JfZmxhZyIgfHwKKysJIHRlc3QgISAtcyBjb25mdGVzdC5lcnIKKysg ICAgICAgfSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0LiRhY19vYmpleHQ7IHRoZW4KKysgIGV2YWwgIiRh c19hY19IZWFkZXI9eWVzIgorK2Vsc2UKKysgICRhc19lY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9n cmFtIHdhczoiID4mNQorK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKKysKKysJ ZXZhbCAiJGFzX2FjX0hlYWRlcj1ubyIKKytmaQorKworK3JtIC1mIGNvcmUgY29uZnRlc3QuZXJy IGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAorK2ZpCisrYWNfcmVzPWBldmFs ICdhc192YWw9JHsnJGFzX2FjX0hlYWRlcid9CisrCQkgJGFzX2VjaG8gIiRhc192YWwiJ2AKKysJ ICAgICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19yZXMiID4mNQor KyRhc19lY2hvICIkYWNfcmVzIiA+JjY7IH0KKythc192YWw9YGV2YWwgJ2FzX3ZhbD0keyckYXNf YWNfSGVhZGVyJ30KKysJCSAkYXNfZWNobyAiJGFzX3ZhbCInYAorKyAgIGlmIHRlc3QgIngkYXNf dmFsIiA9IHgiInllczsgdGhlbgorKyAgY2F0ID4+Y29uZmRlZnMuaCA8PF9BQ0VPRgorKyNkZWZp bmUgYCRhc19lY2hvICJIQVZFXyRhY19oZWFkZXIiIHwgJGFzX3RyX2NwcGAgMQorK19BQ0VPRgor KworK2ZpCisrCisrZG9uZQorKworKworKworK2FjX2V4dD1jcHAKKythY19jcHA9JyRDWFhDUFAg JENQUEZMQUdTJworK2FjX2NvbXBpbGU9JyRDWFggLWMgJENYWEZMQUdTICRDUFBGTEFHUyBjb25m dGVzdC4kYWNfZXh0ID4mNScKKythY19saW5rPSckQ1hYIC1vIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAk Q1hYRkxBR1MgJENQUEZMQUdTICRMREZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgJExJQlMgPiY1Jwor K2FjX2NvbXBpbGVyX2dudT0kYWNfY3ZfY3h4X2NvbXBpbGVyX2dudQorK2lmIHRlc3QgLXogIiRD WFgiOyB0aGVuCisrICBpZiB0ZXN0IC1uICIkQ0NDIjsgdGhlbgorKyAgICBDWFg9JENDQworKyAg ZWxzZQorKyAgICBpZiB0ZXN0IC1uICIkYWNfdG9vbF9wcmVmaXgiOyB0aGVuCisrICBmb3IgYWNf cHJvZyBpbiBnKysgYysrIGdwcCBhQ0MgQ0MgY3h4IGNjKysgY2wuZXhlIEZDQyBLQ0MgUkNDIHhs Q19yIHhsQworKyAgZG8KKysgICAgIyBFeHRyYWN0IHRoZSBmaXJzdCB3b3JkIG9mICIkYWNfdG9v bF9wcmVmaXgkYWNfcHJvZyIsIHNvIGl0IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3Mu Cisrc2V0IGR1bW15ICRhY190b29sX3ByZWZpeCRhY19wcm9nOyBhY193b3JkPSQyCisreyAkYXNf ZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciAkYWNfd29yZCIgPiY1CisrJGFzX2Vj aG9fbiAiY2hlY2tpbmcgZm9yICRhY193b3JkLi4uICIgPiY2OyB9CisraWYgdGVzdCAiJHthY19j dl9wcm9nX0NYWCtzZXR9IiA9IHNldDsgdGhlbgorKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+ JjYKKytlbHNlCisrICBpZiB0ZXN0IC1uICIkQ1hYIjsgdGhlbgorKyAgYWNfY3ZfcHJvZ19DWFg9 IiRDWFgiICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0LgorK2Vsc2UKKythc19zYXZl X0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCisrZm9yIGFzX2RpciBpbiAkUEFUSAorK2Rv CisrICBJRlM9JGFzX3NhdmVfSUZTCisrICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9Lgor KyAgZm9yIGFjX2V4ZWNfZXh0IGluICcnICRhY19leGVjdXRhYmxlX2V4dGVuc2lvbnM7IGRvCisr ICBpZiB7IHRlc3QgLWYgIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiICYmICRhc190ZXN0 X3ggIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiOyB9OyB0aGVuCisrICAgIGFjX2N2X3By b2dfQ1hYPSIkYWNfdG9vbF9wcmVmaXgkYWNfcHJvZyIKKysgICAgJGFzX2VjaG8gIiRhc19tZTok TElORU5POiBmb3VuZCAkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiA+JjUKKysgICAgYnJl YWsgMgorKyAgZmkKKytkb25lCisrZG9uZQorK0lGUz0kYXNfc2F2ZV9JRlMKKysKKytmaQorK2Zp CisrQ1hYPSRhY19jdl9wcm9nX0NYWAorK2lmIHRlc3QgLW4gIiRDWFgiOyB0aGVuCisrICB7ICRh c19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkQ1hYIiA+JjUKKyskYXNfZWNobyAiJENY WCIgPiY2OyB9CisrZWxzZQorKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDog bm8iID4mNQorKyRhc19lY2hvICJubyIgPiY2OyB9CisrZmkKKysKKysKKysgICAgdGVzdCAtbiAi JENYWCIgJiYgYnJlYWsKKysgIGRvbmUKKytmaQorK2lmIHRlc3QgLXogIiRDWFgiOyB0aGVuCisr ICBhY19jdF9DWFg9JENYWAorKyAgZm9yIGFjX3Byb2cgaW4gZysrIGMrKyBncHAgYUNDIENDIGN4 eCBjYysrIGNsLmV4ZSBGQ0MgS0NDIFJDQyB4bENfciB4bEMKKytkbworKyAgIyBFeHRyYWN0IHRo ZSBmaXJzdCB3b3JkIG9mICIkYWNfcHJvZyIsIHNvIGl0IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3 aXRoIGFyZ3MuCisrc2V0IGR1bW15ICRhY19wcm9nOyBhY193b3JkPSQyCisreyAkYXNfZWNobyAi JGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciAkYWNfd29yZCIgPiY1CisrJGFzX2VjaG9fbiAi Y2hlY2tpbmcgZm9yICRhY193b3JkLi4uICIgPiY2OyB9CisraWYgdGVzdCAiJHthY19jdl9wcm9n X2FjX2N0X0NYWCtzZXR9IiA9IHNldDsgdGhlbgorKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+ JjYKKytlbHNlCisrICBpZiB0ZXN0IC1uICIkYWNfY3RfQ1hYIjsgdGhlbgorKyAgYWNfY3ZfcHJv Z19hY19jdF9DWFg9IiRhY19jdF9DWFgiICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0 LgorK2Vsc2UKKythc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCisrZm9yIGFz X2RpciBpbiAkUEFUSAorK2RvCisrICBJRlM9JGFzX3NhdmVfSUZTCisrICB0ZXN0IC16ICIkYXNf ZGlyIiAmJiBhc19kaXI9LgorKyAgZm9yIGFjX2V4ZWNfZXh0IGluICcnICRhY19leGVjdXRhYmxl X2V4dGVuc2lvbnM7IGRvCisrICBpZiB7IHRlc3QgLWYgIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhl Y19leHQiICYmICRhc190ZXN0X3ggIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiOyB9OyB0 aGVuCisrICAgIGFjX2N2X3Byb2dfYWNfY3RfQ1hYPSIkYWNfcHJvZyIKKysgICAgJGFzX2VjaG8g IiRhc19tZTokTElORU5POiBmb3VuZCAkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiA+JjUK KysgICAgYnJlYWsgMgorKyAgZmkKKytkb25lCisrZG9uZQorK0lGUz0kYXNfc2F2ZV9JRlMKKysK KytmaQorK2ZpCisrYWNfY3RfQ1hYPSRhY19jdl9wcm9nX2FjX2N0X0NYWAorK2lmIHRlc3QgLW4g IiRhY19jdF9DWFgiOyB0aGVuCisrICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0 OiAkYWNfY3RfQ1hYIiA+JjUKKyskYXNfZWNobyAiJGFjX2N0X0NYWCIgPiY2OyB9CisrZWxzZQor KyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogbm8iID4mNQorKyRhc19lY2hv ICJubyIgPiY2OyB9CisrZmkKKysKKysKKysgIHRlc3QgLW4gIiRhY19jdF9DWFgiICYmIGJyZWFr CisrZG9uZQorKworKyAgaWYgdGVzdCAieCRhY19jdF9DWFgiID0geDsgdGhlbgorKyAgICBDWFg9 ImcrKyIKKysgIGVsc2UKKysgICAgY2FzZSAkY3Jvc3NfY29tcGlsaW5nOiRhY190b29sX3dhcm5l ZCBpbgorK3llczopCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6IHVzaW5n IGNyb3NzIHRvb2xzIG5vdCBwcmVmaXhlZCB3aXRoIGhvc3QgdHJpcGxldCIgPiY1CisrJGFzX2Vj aG8gIiRhc19tZTogV0FSTklORzogdXNpbmcgY3Jvc3MgdG9vbHMgbm90IHByZWZpeGVkIHdpdGgg aG9zdCB0cmlwbGV0IiA+JjI7fQorK2FjX3Rvb2xfd2FybmVkPXllcyA7OworK2VzYWMKKysgICAg Q1hYPSRhY19jdF9DWFgKKysgIGZpCisrZmkKKysKKysgIGZpCisrZmkKKysjIFByb3ZpZGUgc29t ZSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgY29tcGlsZXIuCisrJGFzX2VjaG8gIiRhc19tZTokTElO RU5POiBjaGVja2luZyBmb3IgQysrIGNvbXBpbGVyIHZlcnNpb24iID4mNQorK3NldCBYICRhY19j b21waWxlCisrYWNfY29tcGlsZXI9JDIKKyt7IChhY190cnk9IiRhY19jb21waWxlciAtLXZlcnNp b24gPiY1IgorK2Nhc2UgIigoJGFjX3RyeSIgaW4KKysgICpcIiogfCAqXGAqIHwgKlxcKikgYWNf dHJ5X2VjaG89XCRhY190cnk7OworKyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7CisrZXNhYwor K2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIKKysk YXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1CisrICAoZXZhbCAiJGFjX2NvbXBpbGVyIC0tdmVy c2lvbiA+JjUiKSAyPiY1CisrICBhY19zdGF0dXM9JD8KKysgICRhc19lY2hvICIkYXNfbWU6JExJ TkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisrICAoZXhpdCAkYWNfc3RhdHVzKTsgfQorK3sg KGFjX3RyeT0iJGFjX2NvbXBpbGVyIC12ID4mNSIKKytjYXNlICIoKCRhY190cnkiIGluCisrICAq XCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKKysgICopIGFjX3RyeV9l Y2hvPSRhY190cnk7OworK2VzYWMKKytldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVO TzogJGFjX3RyeV9lY2hvXCIiCisrJGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4mNQorKyAgKGV2 YWwgIiRhY19jb21waWxlciAtdiA+JjUiKSAyPiY1CisrICBhY19zdGF0dXM9JD8KKysgICRhc19l Y2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisrICAoZXhpdCAkYWNf c3RhdHVzKTsgfQorK3sgKGFjX3RyeT0iJGFjX2NvbXBpbGVyIC1WID4mNSIKKytjYXNlICIoKCRh Y190cnkiIGluCisrICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsK KysgICopIGFjX3RyeV9lY2hvPSRhY190cnk7OworK2VzYWMKKytldmFsIGFjX3RyeV9lY2hvPSJc IlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCisrJGFzX2VjaG8gIiRhY190cnlfZWNo byIpID4mNQorKyAgKGV2YWwgIiRhY19jb21waWxlciAtViA+JjUiKSAyPiY1CisrICBhY19zdGF0 dXM9JD8KKysgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1 CisrICAoZXhpdCAkYWNfc3RhdHVzKTsgfQorKworK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5P OiBjaGVja2luZyB3aGV0aGVyIHdlIGFyZSB1c2luZyB0aGUgR05VIEMrKyBjb21waWxlciIgPiY1 CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgd2hldGhlciB3ZSBhcmUgdXNpbmcgdGhlIEdOVSBDKysg Y29tcGlsZXIuLi4gIiA+JjY7IH0KKytpZiB0ZXN0ICIke2FjX2N2X2N4eF9jb21waWxlcl9nbnUr c2V0fSIgPSBzZXQ7IHRoZW4KKysgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2CisrZWxzZQor KyAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisrLyogY29uZmRlZnMuaC4gICovCisr X0FDRU9GCisrY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0CisrY2F0ID4+Y29uZnRl c3QuJGFjX2V4dCA8PF9BQ0VPRgorKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KKysKKytpbnQKKytt YWluICgpCisreworKyNpZm5kZWYgX19HTlVDX18KKysgICAgICAgY2hva2UgbWUKKysjZW5kaWYK KysKKysgIDsKKysgIHJldHVybiAwOworK30KKytfQUNFT0YKKytybSAtZiBjb25mdGVzdC4kYWNf b2JqZXh0CisraWYgeyAoYWNfdHJ5PSIkYWNfY29tcGlsZSIKKytjYXNlICIoKCRhY190cnkiIGlu CisrICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKKysgICopIGFj X3RyeV9lY2hvPSRhY190cnk7OworK2VzYWMKKytldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6 JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCisrJGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4mNQor KyAgKGV2YWwgIiRhY19jb21waWxlIikgMj5jb25mdGVzdC5lcjEKKysgIGFjX3N0YXR1cz0kPwor KyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKKysgIHJtIC1mIGNv bmZ0ZXN0LmVyMQorKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKKysgICRhc19lY2hvICIkYXNfbWU6 JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisrICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAm JiB7CisrCSB0ZXN0IC16ICIkYWNfY3h4X3dlcnJvcl9mbGFnIiB8fAorKwkgdGVzdCAhIC1zIGNv bmZ0ZXN0LmVycgorKyAgICAgICB9ICYmIHRlc3QgLXMgY29uZnRlc3QuJGFjX29iamV4dDsgdGhl bgorKyAgYWNfY29tcGlsZXJfZ251PXllcworK2Vsc2UKKysgICRhc19lY2hvICIkYXNfbWU6IGZh aWxlZCBwcm9ncmFtIHdhczoiID4mNQorK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+ JjUKKysKKysJYWNfY29tcGlsZXJfZ251PW5vCisrZmkKKysKKytybSAtZiBjb3JlIGNvbmZ0ZXN0 LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKKythY19jdl9jeHhfY29t cGlsZXJfZ251PSRhY19jb21waWxlcl9nbnUKKysKKytmaQorK3sgJGFzX2VjaG8gIiRhc19tZTok TElORU5POiByZXN1bHQ6ICRhY19jdl9jeHhfY29tcGlsZXJfZ251IiA+JjUKKyskYXNfZWNobyAi JGFjX2N2X2N4eF9jb21waWxlcl9nbnUiID4mNjsgfQorK2lmIHRlc3QgJGFjX2NvbXBpbGVyX2du dSA9IHllczsgdGhlbgorKyAgR1hYPXllcworK2Vsc2UKKysgIEdYWD0KKytmaQorK2FjX3Rlc3Rf Q1hYRkxBR1M9JHtDWFhGTEFHUytzZXR9CisrYWNfc2F2ZV9DWFhGTEFHUz0kQ1hYRkxBR1MKKyt7 ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgd2hldGhlciAkQ1hYIGFjY2VwdHMg LWciID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIHdoZXRoZXIgJENYWCBhY2NlcHRzIC1nLi4u ICIgPiY2OyB9CisraWYgdGVzdCAiJHthY19jdl9wcm9nX2N4eF9nK3NldH0iID0gc2V0OyB0aGVu CisrICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysgIGFjX3NhdmVfY3h4X3dl cnJvcl9mbGFnPSRhY19jeHhfd2Vycm9yX2ZsYWcKKysgICBhY19jeHhfd2Vycm9yX2ZsYWc9eWVz CisrICAgYWNfY3ZfcHJvZ19jeHhfZz1ubworKyAgIENYWEZMQUdTPSItZyIKKysgICBjYXQgPmNv bmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKysvKiBjb25mZGVmcy5oLiAgKi8KKytfQUNFT0YKKytj YXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKKytjYXQgPj5jb25mdGVzdC4kYWNfZXh0 IDw8X0FDRU9GCisrLyogZW5kIGNvbmZkZWZzLmguICAqLworKworK2ludAorK21haW4gKCkKKyt7 CisrCisrICA7CisrICByZXR1cm4gMDsKKyt9CisrX0FDRU9GCisrcm0gLWYgY29uZnRlc3QuJGFj X29iamV4dAorK2lmIHsgKGFjX3RyeT0iJGFjX2NvbXBpbGUiCisrY2FzZSAiKCgkYWNfdHJ5IiBp bgorKyAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7CisrICAqKSBh Y190cnlfZWNobz0kYWNfdHJ5OzsKKytlc2FjCisrZXZhbCBhY190cnlfZWNobz0iXCJcJGFzX21l OiRMSU5FTk86ICRhY190cnlfZWNob1wiIgorKyRhc19lY2hvICIkYWNfdHJ5X2VjaG8iKSA+JjUK KysgIChldmFsICIkYWNfY29tcGlsZSIpIDI+Y29uZnRlc3QuZXIxCisrICBhY19zdGF0dXM9JD8K KysgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCisrICBybSAtZiBj b25mdGVzdC5lcjEKKysgIGNhdCBjb25mdGVzdC5lcnIgPiY1CisrICAkYXNfZWNobyAiJGFzX21l OiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0g JiYgeworKwkgdGVzdCAteiAiJGFjX2N4eF93ZXJyb3JfZmxhZyIgfHwKKysJIHRlc3QgISAtcyBj b25mdGVzdC5lcnIKKysgICAgICAgfSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0LiRhY19vYmpleHQ7IHRo ZW4KKysgIGFjX2N2X3Byb2dfY3h4X2c9eWVzCisrZWxzZQorKyAgJGFzX2VjaG8gIiRhc19tZTog ZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Cisrc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0 ID4mNQorKworKwlDWFhGTEFHUz0iIgorKyAgICAgIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9B Q0VPRgorKy8qIGNvbmZkZWZzLmguICAqLworK19BQ0VPRgorK2NhdCBjb25mZGVmcy5oID4+Y29u ZnRlc3QuJGFjX2V4dAorK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKysvKiBlbmQg Y29uZmRlZnMuaC4gICovCisrCisraW50CisrbWFpbiAoKQorK3sKKysKKysgIDsKKysgIHJldHVy biAwOworK30KKytfQUNFT0YKKytybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0CisraWYgeyAoYWNf dHJ5PSIkYWNfY29tcGlsZSIKKytjYXNlICIoKCRhY190cnkiIGluCisrICAqXCIqIHwgKlxgKiB8 ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKKysgICopIGFjX3RyeV9lY2hvPSRhY190cnk7 OworK2VzYWMKKytldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9l Y2hvXCIiCisrJGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4mNQorKyAgKGV2YWwgIiRhY19jb21w aWxlIikgMj5jb25mdGVzdC5lcjEKKysgIGFjX3N0YXR1cz0kPworKyAgZ3JlcCAtdiAnXiAqKycg Y29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKKysgIHJtIC1mIGNvbmZ0ZXN0LmVyMQorKyAgY2F0 IGNvbmZ0ZXN0LmVyciA+JjUKKysgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFj X3N0YXR1cyIgPiY1CisrICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJiB7CisrCSB0ZXN0IC16ICIk YWNfY3h4X3dlcnJvcl9mbGFnIiB8fAorKwkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgorKyAgICAg ICB9ICYmIHRlc3QgLXMgY29uZnRlc3QuJGFjX29iamV4dDsgdGhlbgorKyAgOgorK2Vsc2UKKysg ICRhc19lY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQorK3NlZCAncy9eL3wg LycgY29uZnRlc3QuJGFjX2V4dCA+JjUKKysKKysJYWNfY3h4X3dlcnJvcl9mbGFnPSRhY19zYXZl X2N4eF93ZXJyb3JfZmxhZworKwkgQ1hYRkxBR1M9Ii1nIgorKwkgY2F0ID5jb25mdGVzdC4kYWNf ZXh0IDw8X0FDRU9GCisrLyogY29uZmRlZnMuaC4gICovCisrX0FDRU9GCisrY2F0IGNvbmZkZWZz LmggPj5jb25mdGVzdC4kYWNfZXh0CisrY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgor Ky8qIGVuZCBjb25mZGVmcy5oLiAgKi8KKysKKytpbnQKKyttYWluICgpCisreworKworKyAgOwor KyAgcmV0dXJuIDA7CisrfQorK19BQ0VPRgorK3JtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQKKytp ZiB7IChhY190cnk9IiRhY19jb21waWxlIgorK2Nhc2UgIigoJGFjX3RyeSIgaW4KKysgICpcIiog fCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OworKyAgKikgYWNfdHJ5X2VjaG89 JGFjX3RyeTs7CisrZXNhYworK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5POiAk YWNfdHJ5X2VjaG9cIiIKKyskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1CisrICAoZXZhbCAi JGFjX2NvbXBpbGUiKSAyPmNvbmZ0ZXN0LmVyMQorKyAgYWNfc3RhdHVzPSQ/CisrICBncmVwIC12 ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgorKyAgcm0gLWYgY29uZnRlc3QuZXIx CisrICBjYXQgY29uZnRlc3QuZXJyID4mNQorKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBc JD8gPSAkYWNfc3RhdHVzIiA+JjUKKysgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmIHsKKysJIHRl c3QgLXogIiRhY19jeHhfd2Vycm9yX2ZsYWciIHx8CisrCSB0ZXN0ICEgLXMgY29uZnRlc3QuZXJy CisrICAgICAgIH0gJiYgdGVzdCAtcyBjb25mdGVzdC4kYWNfb2JqZXh0OyB0aGVuCisrICBhY19j dl9wcm9nX2N4eF9nPXllcworK2Vsc2UKKysgICRhc19lY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9n cmFtIHdhczoiID4mNQorK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKKysKKysK KytmaQorKworK3JtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29u ZnRlc3QuJGFjX2V4dAorK2ZpCisrCisrcm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3Qu JGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0CisrZmkKKysKKytybSAtZiBjb3JlIGNvbmZ0ZXN0 LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKKysgICBhY19jeHhfd2Vy cm9yX2ZsYWc9JGFjX3NhdmVfY3h4X3dlcnJvcl9mbGFnCisrZmkKKyt7ICRhc19lY2hvICIkYXNf bWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3ZfcHJvZ19jeHhfZyIgPiY1CisrJGFzX2VjaG8gIiRh Y19jdl9wcm9nX2N4eF9nIiA+JjY7IH0KKytpZiB0ZXN0ICIkYWNfdGVzdF9DWFhGTEFHUyIgPSBz ZXQ7IHRoZW4KKysgIENYWEZMQUdTPSRhY19zYXZlX0NYWEZMQUdTCisrZWxpZiB0ZXN0ICRhY19j dl9wcm9nX2N4eF9nID0geWVzOyB0aGVuCisrICBpZiB0ZXN0ICIkR1hYIiA9IHllczsgdGhlbgor KyAgICBDWFhGTEFHUz0iLWcgLU8yIgorKyAgZWxzZQorKyAgICBDWFhGTEFHUz0iLWciCisrICBm aQorK2Vsc2UKKysgIGlmIHRlc3QgIiRHWFgiID0geWVzOyB0aGVuCisrICAgIENYWEZMQUdTPSIt TzIiCisrICBlbHNlCisrICAgIENYWEZMQUdTPQorKyAgZmkKKytmaQorK2FjX2V4dD1jCisrYWNf Y3BwPSckQ1BQICRDUFBGTEFHUycKKythY19jb21waWxlPSckQ0MgLWMgJENGTEFHUyAkQ1BQRkxB R1MgY29uZnRlc3QuJGFjX2V4dCA+JjUnCisrYWNfbGluaz0nJENDIC1vIGNvbmZ0ZXN0JGFjX2V4 ZWV4dCAkQ0ZMQUdTICRDUFBGTEFHUyAkTERGTEFHUyBjb25mdGVzdC4kYWNfZXh0ICRMSUJTID4m NScKKythY19jb21waWxlcl9nbnU9JGFjX2N2X2NfY29tcGlsZXJfZ251CisrCisrZGVwY2M9IiRD WFgiICBhbV9jb21waWxlcl9saXN0PQorKworK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBj aGVja2luZyBkZXBlbmRlbmN5IHN0eWxlIG9mICRkZXBjYyIgPiY1CisrJGFzX2VjaG9fbiAiY2hl Y2tpbmcgZGVwZW5kZW5jeSBzdHlsZSBvZiAkZGVwY2MuLi4gIiA+JjY7IH0KKytpZiB0ZXN0ICIk e2FtX2N2X0NYWF9kZXBlbmRlbmNpZXNfY29tcGlsZXJfdHlwZStzZXR9IiA9IHNldDsgdGhlbgor KyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKKytlbHNlCisrICBpZiB0ZXN0IC16ICIkQU1E RVBfVFJVRSIgJiYgdGVzdCAtZiAiJGFtX2RlcGNvbXAiOyB0aGVuCisrICAjIFdlIG1ha2UgYSBz dWJkaXIgYW5kIGRvIHRoZSB0ZXN0cyB0aGVyZS4gIE90aGVyd2lzZSB3ZSBjYW4gZW5kIHVwCisr ICAjIG1ha2luZyBib2d1cyBmaWxlcyB0aGF0IHdlIGRvbid0IGtub3cgYWJvdXQgYW5kIG5ldmVy IHJlbW92ZS4gIEZvcgorKyAgIyBpbnN0YW5jZSBpdCB3YXMgcmVwb3J0ZWQgdGhhdCBvbiBIUC1V WCB0aGUgZ2NjIHRlc3Qgd2lsbCBlbmQgdXAKKysgICMgbWFraW5nIGEgZHVtbXkgZmlsZSBuYW1l ZCBgRCcgLS0gYmVjYXVzZSBgLU1EJyBtZWFucyBgcHV0IHRoZSBvdXRwdXQKKysgICMgaW4gRCcu CisrICBta2RpciBjb25mdGVzdC5kaXIKKysgICMgQ29weSBkZXBjb21wIHRvIHN1YmRpciBiZWNh dXNlIG90aGVyd2lzZSB3ZSB3b24ndCBmaW5kIGl0IGlmIHdlJ3JlCisrICAjIHVzaW5nIGEgcmVs YXRpdmUgZGlyZWN0b3J5LgorKyAgY3AgIiRhbV9kZXBjb21wIiBjb25mdGVzdC5kaXIKKysgIGNk IGNvbmZ0ZXN0LmRpcgorKyAgIyBXZSB3aWxsIGJ1aWxkIG9iamVjdHMgYW5kIGRlcGVuZGVuY2ll cyBpbiBhIHN1YmRpcmVjdG9yeSBiZWNhdXNlCisrICAjIGl0IGhlbHBzIHRvIGRldGVjdCBpbmFw cGxpY2FibGUgZGVwZW5kZW5jeSBtb2Rlcy4gIEZvciBpbnN0YW5jZQorKyAgIyBib3RoIFRydTY0 J3MgY2MgYW5kIElDQyBzdXBwb3J0IC1NRCB0byBvdXRwdXQgZGVwZW5kZW5jaWVzIGFzIGEKKysg ICMgc2lkZSBlZmZlY3Qgb2YgY29tcGlsYXRpb24sIGJ1dCBJQ0Mgd2lsbCBwdXQgdGhlIGRlcGVu ZGVuY2llcyBpbgorKyAgIyB0aGUgY3VycmVudCBkaXJlY3Rvcnkgd2hpbGUgVHJ1NjQgd2lsbCBw dXQgdGhlbSBpbiB0aGUgb2JqZWN0CisrICAjIGRpcmVjdG9yeS4KKysgIG1rZGlyIHN1YgorKwor KyAgYW1fY3ZfQ1hYX2RlcGVuZGVuY2llc19jb21waWxlcl90eXBlPW5vbmUKKysgIGlmIHRlc3Qg IiRhbV9jb21waWxlcl9saXN0IiA9ICIiOyB0aGVuCisrICAgICBhbV9jb21waWxlcl9saXN0PWBz ZWQgLW4gJ3MvXiMqXChbYS16QS1aMC05XSpcKSkkL1wxL3AnIDwgLi9kZXBjb21wYAorKyAgZmkK KysgIGFtX191bml2ZXJzYWw9ZmFsc2UKKysgIGNhc2UgIiAkZGVwY2MgIiBpbiAjKAorKyAgICAg KlwgLWFyY2hcICpcIC1hcmNoXCAqKSBhbV9fdW5pdmVyc2FsPXRydWUgOzsKKysgICAgIGVzYWMK KysKKysgIGZvciBkZXBtb2RlIGluICRhbV9jb21waWxlcl9saXN0OyBkbworKyAgICAjIFNldHVw IGEgc291cmNlIHdpdGggbWFueSBkZXBlbmRlbmNpZXMsIGJlY2F1c2Ugc29tZSBjb21waWxlcnMK KysgICAgIyBsaWtlIHRvIHdyYXAgbGFyZ2UgZGVwZW5kZW5jeSBsaXN0cyBvbiBjb2x1bW4gODAg KHdpdGggXCksIGFuZAorKyAgICAjIHdlIHNob3VsZCBub3QgY2hvb3NlIGEgZGVwY29tcCBtb2Rl IHdoaWNoIGlzIGNvbmZ1c2VkIGJ5IHRoaXMuCisrICAgICMKKysgICAgIyBXZSBuZWVkIHRvIHJl Y3JlYXRlIHRoZXNlIGZpbGVzIGZvciBlYWNoIHRlc3QsIGFzIHRoZSBjb21waWxlciBtYXkKKysg ICAgIyBvdmVyd3JpdGUgc29tZSBvZiB0aGVtIHdoZW4gdGVzdGluZyB3aXRoIG9ic2N1cmUgY29t bWFuZCBsaW5lcy4KKysgICAgIyBUaGlzIGhhcHBlbnMgYXQgbGVhc3Qgd2l0aCB0aGUgQUlYIEMg Y29tcGlsZXIuCisrICAgIDogPiBzdWIvY29uZnRlc3QuYworKyAgICBmb3IgaSBpbiAxIDIgMyA0 IDUgNjsgZG8KKysgICAgICBlY2hvICcjaW5jbHVkZSAiY29uZnRzdCckaScuaCInID4+IHN1Yi9j b25mdGVzdC5jCisrICAgICAgIyBVc2luZyBgOiA+IHN1Yi9jb25mdHN0JGkuaCcgY3JlYXRlcyBv bmx5IHN1Yi9jb25mdHN0MS5oIHdpdGgKKysgICAgICAjIFNvbGFyaXMgOCdzIHsvdXNyLH0vYmlu L3NoLgorKyAgICAgIHRvdWNoIHN1Yi9jb25mdHN0JGkuaAorKyAgICBkb25lCisrICAgIGVjaG8g IiR7YW1fX2luY2x1ZGV9ICR7YW1fX3F1b3RlfXN1Yi9jb25mdGVzdC5QbyR7YW1fX3F1b3RlfSIg PiBjb25mbWYKKysKKysgICAgIyBXZSBjaGVjayB3aXRoIGAtYycgYW5kIGAtbycgZm9yIHRoZSBz YWtlIG9mIHRoZSAiZGFzaG1zdGRvdXQiCisrICAgICMgbW9kZS4gIEl0IHR1cm5zIG91dCB0aGF0 IHRoZSBTdW5Qcm8gQysrIGNvbXBpbGVyIGRvZXMgbm90IHByb3Blcmx5CisrICAgICMgaGFuZGxl IGAtTSAtbycsIGFuZCB3ZSBuZWVkIHRvIGRldGVjdCB0aGlzLiAgQWxzbywgc29tZSBJbnRlbAor KyAgICAjIHZlcnNpb25zIGhhZCB0cm91YmxlIHdpdGggb3V0cHV0IGluIHN1YmRpcnMKKysgICAg YW1fX29iaj1zdWIvY29uZnRlc3QuJHtPQkpFWFQtb30KKysgICAgYW1fX21pbnVzX29iaj0iLW8g JGFtX19vYmoiCisrICAgIGNhc2UgJGRlcG1vZGUgaW4KKysgICAgZ2NjKQorKyAgICAgICMgVGhp cyBkZXBtb2RlIGNhdXNlcyBhIGNvbXBpbGVyIHJhY2UgaW4gdW5pdmVyc2FsIG1vZGUuCisrICAg ICAgdGVzdCAiJGFtX191bml2ZXJzYWwiID0gZmFsc2UgfHwgY29udGludWUKKysgICAgICA7Owor KyAgICBub3NpZGVlZmZlY3QpCisrICAgICAgIyBhZnRlciB0aGlzIHRhZywgbWVjaGFuaXNtcyBh cmUgbm90IGJ5IHNpZGUtZWZmZWN0LCBzbyB0aGV5J2xsCisrICAgICAgIyBvbmx5IGJlIHVzZWQg d2hlbiBleHBsaWNpdGx5IHJlcXVlc3RlZAorKyAgICAgIGlmIHRlc3QgIngkZW5hYmxlX2RlcGVu ZGVuY3lfdHJhY2tpbmciID0geHllczsgdGhlbgorKwljb250aW51ZQorKyAgICAgIGVsc2UKKysJ YnJlYWsKKysgICAgICBmaQorKyAgICAgIDs7CisrICAgIG1zdmlzdWFsY3BwIHwgbXN2Y21zeXMp CisrICAgICAgIyBUaGlzIGNvbXBpbGVyIHdvbid0IGdyb2sgYC1jIC1vJywgYnV0IGFsc28sIHRo ZSBtaW51c28gdGVzdCBoYXMKKysgICAgICAjIG5vdCBydW4geWV0LiAgVGhlc2UgZGVwbW9kZXMg YXJlIGxhdGUgZW5vdWdoIGluIHRoZSBnYW1lLCBhbmQKKysgICAgICAjIHNvIHdlYWsgdGhhdCB0 aGVpciBmdW5jdGlvbmluZyBzaG91bGQgbm90IGJlIGltcGFjdGVkLgorKyAgICAgIGFtX19vYmo9 Y29uZnRlc3QuJHtPQkpFWFQtb30KKysgICAgICBhbV9fbWludXNfb2JqPQorKyAgICAgIDs7Cisr ICAgIG5vbmUpIGJyZWFrIDs7CisrICAgIGVzYWMKKysgICAgaWYgZGVwbW9kZT0kZGVwbW9kZSBc CisrICAgICAgIHNvdXJjZT1zdWIvY29uZnRlc3QuYyBvYmplY3Q9JGFtX19vYmogXAorKyAgICAg ICBkZXBmaWxlPXN1Yi9jb25mdGVzdC5QbyB0bXBkZXBmaWxlPXN1Yi9jb25mdGVzdC5UUG8gXAor KyAgICAgICAkU0hFTEwgLi9kZXBjb21wICRkZXBjYyAtYyAkYW1fX21pbnVzX29iaiBzdWIvY29u ZnRlc3QuYyBcCisrICAgICAgICAgPi9kZXYvbnVsbCAyPmNvbmZ0ZXN0LmVyciAmJgorKyAgICAg ICBncmVwIHN1Yi9jb25mdHN0MS5oIHN1Yi9jb25mdGVzdC5QbyA+IC9kZXYvbnVsbCAyPiYxICYm CisrICAgICAgIGdyZXAgc3ViL2NvbmZ0c3Q2Lmggc3ViL2NvbmZ0ZXN0LlBvID4gL2Rldi9udWxs IDI+JjEgJiYKKysgICAgICAgZ3JlcCAkYW1fX29iaiBzdWIvY29uZnRlc3QuUG8gPiAvZGV2L251 bGwgMj4mMSAmJgorKyAgICAgICAke01BS0UtbWFrZX0gLXMgLWYgY29uZm1mID4gL2Rldi9udWxs IDI+JjE7IHRoZW4KKysgICAgICAjIGljYyBkb2Vzbid0IGNob2tlIG9uIHVua25vd24gb3B0aW9u cywgaXQgd2lsbCBqdXN0IGlzc3VlIHdhcm5pbmdzCisrICAgICAgIyBvciByZW1hcmtzIChldmVu IHdpdGggLVdlcnJvcikuICBTbyB3ZSBncmVwIHN0ZGVyciBmb3IgYW55IG1lc3NhZ2UKKysgICAg ICAjIHRoYXQgc2F5cyBhbiBvcHRpb24gd2FzIGlnbm9yZWQgb3Igbm90IHN1cHBvcnRlZC4KKysg ICAgICAjIFdoZW4gZ2l2ZW4gLU1QLCBpY2MgNy4wIGFuZCA3LjEgY29tcGxhaW4gdGh1c2x5Ogor KyAgICAgICMgICBpY2M6IENvbW1hbmQgbGluZSB3YXJuaW5nOiBpZ25vcmluZyBvcHRpb24gJy1N Jzsgbm8gYXJndW1lbnQgcmVxdWlyZWQKKysgICAgICAjIFRoZSBkaWFnbm9zaXMgY2hhbmdlZCBp biBpY2MgOC4wOgorKyAgICAgICMgICBpY2M6IENvbW1hbmQgbGluZSByZW1hcms6IG9wdGlvbiAn LU1QJyBub3Qgc3VwcG9ydGVkCisrICAgICAgaWYgKGdyZXAgJ2lnbm9yaW5nIG9wdGlvbicgY29u ZnRlc3QuZXJyIHx8CisrICAgICAgICAgIGdyZXAgJ25vdCBzdXBwb3J0ZWQnIGNvbmZ0ZXN0LmVy cikgPi9kZXYvbnVsbCAyPiYxOyB0aGVuIDo7IGVsc2UKKysgICAgICAgIGFtX2N2X0NYWF9kZXBl bmRlbmNpZXNfY29tcGlsZXJfdHlwZT0kZGVwbW9kZQorKyAgICAgICAgYnJlYWsKKysgICAgICBm aQorKyAgICBmaQorKyAgZG9uZQorKworKyAgY2QgLi4KKysgIHJtIC1yZiBjb25mdGVzdC5kaXIK KytlbHNlCisrICBhbV9jdl9DWFhfZGVwZW5kZW5jaWVzX2NvbXBpbGVyX3R5cGU9bm9uZQorK2Zp CisrCisrZmkKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYW1fY3ZfQ1hY X2RlcGVuZGVuY2llc19jb21waWxlcl90eXBlIiA+JjUKKyskYXNfZWNobyAiJGFtX2N2X0NYWF9k ZXBlbmRlbmNpZXNfY29tcGlsZXJfdHlwZSIgPiY2OyB9CisrQ1hYREVQTU9ERT1kZXBtb2RlPSRh bV9jdl9DWFhfZGVwZW5kZW5jaWVzX2NvbXBpbGVyX3R5cGUKKysKKysgaWYKKysgIHRlc3QgIngk ZW5hYmxlX2RlcGVuZGVuY3lfdHJhY2tpbmciICE9IHhubyBcCisrICAmJiB0ZXN0ICIkYW1fY3Zf Q1hYX2RlcGVuZGVuY2llc19jb21waWxlcl90eXBlIiA9IGdjYzM7IHRoZW4KKysgIGFtX19mYXN0 ZGVwQ1hYX1RSVUU9CisrICBhbV9fZmFzdGRlcENYWF9GQUxTRT0nIycKKytlbHNlCisrICBhbV9f ZmFzdGRlcENYWF9UUlVFPScjJworKyAgYW1fX2Zhc3RkZXBDWFhfRkFMU0U9CisrZmkKKysKKysK KytpZiB0ZXN0IC1uICIkQ1hYIiAmJiAoIHRlc3QgIlgkQ1hYIiAhPSAiWG5vIiAmJgorKyAgICAo ICh0ZXN0ICJYJENYWCIgPSAiWGcrKyIgJiYgYGcrKyAtdiA+L2Rldi9udWxsIDI+JjFgICkgfHwK KysgICAgKHRlc3QgIlgkQ1hYIiAhPSAiWGcrKyIpKSkgOyB0aGVuCisrICBhY19leHQ9Y3BwCisr YWNfY3BwPSckQ1hYQ1BQICRDUFBGTEFHUycKKythY19jb21waWxlPSckQ1hYIC1jICRDWFhGTEFH UyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUnCisrYWNfbGluaz0nJENYWCAtbyBjb25m dGVzdCRhY19leGVleHQgJENYWEZMQUdTICRDUFBGTEFHUyAkTERGTEFHUyBjb25mdGVzdC4kYWNf ZXh0ICRMSUJTID4mNScKKythY19jb21waWxlcl9nbnU9JGFjX2N2X2N4eF9jb21waWxlcl9nbnUK Kyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgaG93IHRvIHJ1biB0aGUgQysr IHByZXByb2Nlc3NvciIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgaG93IHRvIHJ1biB0aGUg QysrIHByZXByb2Nlc3Nvci4uLiAiID4mNjsgfQorK2lmIHRlc3QgLXogIiRDWFhDUFAiOyB0aGVu CisrICBpZiB0ZXN0ICIke2FjX2N2X3Byb2dfQ1hYQ1BQK3NldH0iID0gc2V0OyB0aGVuCisrICAk YXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysgICAgICAjIERvdWJsZSBxdW90ZXMg YmVjYXVzZSBDWFhDUFAgbmVlZHMgdG8gYmUgZXhwYW5kZWQKKysgICAgZm9yIENYWENQUCBpbiAi JENYWCAtRSIgIi9saWIvY3BwIgorKyAgICBkbworKyAgICAgIGFjX3ByZXByb2Nfb2s9ZmFsc2UK Kytmb3IgYWNfY3h4X3ByZXByb2Nfd2Fybl9mbGFnIGluICcnIHllcworK2RvCisrICAjIFVzZSBh IGhlYWRlciBmaWxlIHRoYXQgY29tZXMgd2l0aCBnY2MsIHNvIGNvbmZpZ3VyaW5nIGdsaWJjCisr ICAjIHdpdGggYSBmcmVzaCBjcm9zcy1jb21waWxlciB3b3Jrcy4KKysgICMgUHJlZmVyIDxsaW1p dHMuaD4gdG8gPGFzc2VydC5oPiBpZiBfX1NURENfXyBpcyBkZWZpbmVkLCBzaW5jZQorKyAgIyA8 bGltaXRzLmg+IGV4aXN0cyBldmVuIG9uIGZyZWVzdGFuZGluZyBjb21waWxlcnMuCisrICAjIE9u IHRoZSBOZVhULCBjYyAtRSBydW5zIHRoZSBjb2RlIHRocm91Z2ggdGhlIGNvbXBpbGVyJ3MgcGFy c2VyLAorKyAgIyBub3QganVzdCB0aHJvdWdoIGNwcC4gIlN5bnRheCBlcnJvciIgaXMgaGVyZSB0 byBjYXRjaCB0aGlzIGNhc2UuCisrICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKysv KiBjb25mZGVmcy5oLiAgKi8KKytfQUNFT0YKKytjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRh Y19leHQKKytjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisrLyogZW5kIGNvbmZkZWZz LmguICAqLworKyNpZmRlZiBfX1NURENfXworKyMgaW5jbHVkZSA8bGltaXRzLmg+CisrI2Vsc2UK KysjIGluY2x1ZGUgPGFzc2VydC5oPgorKyNlbmRpZgorKwkJICAgICBTeW50YXggZXJyb3IKKytf QUNFT0YKKytpZiB7IChhY190cnk9IiRhY19jcHAgY29uZnRlc3QuJGFjX2V4dCIKKytjYXNlICIo KCRhY190cnkiIGluCisrICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5 OzsKKysgICopIGFjX3RyeV9lY2hvPSRhY190cnk7OworK2VzYWMKKytldmFsIGFjX3RyeV9lY2hv PSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCisrJGFzX2VjaG8gIiRhY190cnlf ZWNobyIpID4mNQorKyAgKGV2YWwgIiRhY19jcHAgY29uZnRlc3QuJGFjX2V4dCIpIDI+Y29uZnRl c3QuZXIxCisrICBhY19zdGF0dXM9JD8KKysgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+ Y29uZnRlc3QuZXJyCisrICBybSAtZiBjb25mdGVzdC5lcjEKKysgIGNhdCBjb25mdGVzdC5lcnIg PiY1CisrICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQor KyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gPi9kZXYvbnVsbCAmJiB7CisrCSB0ZXN0IC16ICIkYWNf Y3h4X3ByZXByb2Nfd2Fybl9mbGFnJGFjX2N4eF93ZXJyb3JfZmxhZyIgfHwKKysJIHRlc3QgISAt cyBjb25mdGVzdC5lcnIKKysgICAgICAgfTsgdGhlbgorKyAgOgorK2Vsc2UKKysgICRhc19lY2hv ICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQorK3NlZCAncy9eL3wgLycgY29uZnRl c3QuJGFjX2V4dCA+JjUKKysKKysgICMgQnJva2VuOiBmYWlscyBvbiB2YWxpZCBpbnB1dC4KKytj b250aW51ZQorK2ZpCisrCisrcm0gLWYgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19leHQKKysK KysgICMgT0ssIHdvcmtzIG9uIHNhbmUgY2FzZXMuICBOb3cgY2hlY2sgd2hldGhlciBub25leGlz dGVudCBoZWFkZXJzCisrICAjIGNhbiBiZSBkZXRlY3RlZCBhbmQgaG93LgorKyAgY2F0ID5jb25m dGVzdC4kYWNfZXh0IDw8X0FDRU9GCisrLyogY29uZmRlZnMuaC4gICovCisrX0FDRU9GCisrY2F0 IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0CisrY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8 PF9BQ0VPRgorKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KKysjaW5jbHVkZSA8YWNfbm9uZXhpc3Rl bnQuaD4KKytfQUNFT0YKKytpZiB7IChhY190cnk9IiRhY19jcHAgY29uZnRlc3QuJGFjX2V4dCIK KytjYXNlICIoKCRhY190cnkiIGluCisrICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hv PVwkYWNfdHJ5OzsKKysgICopIGFjX3RyeV9lY2hvPSRhY190cnk7OworK2VzYWMKKytldmFsIGFj X3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCisrJGFzX2VjaG8g IiRhY190cnlfZWNobyIpID4mNQorKyAgKGV2YWwgIiRhY19jcHAgY29uZnRlc3QuJGFjX2V4dCIp IDI+Y29uZnRlc3QuZXIxCisrICBhY19zdGF0dXM9JD8KKysgIGdyZXAgLXYgJ14gKisnIGNvbmZ0 ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCisrICBybSAtZiBjb25mdGVzdC5lcjEKKysgIGNhdCBjb25m dGVzdC5lcnIgPiY1CisrICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0 dXMiID4mNQorKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gPi9kZXYvbnVsbCAmJiB7CisrCSB0ZXN0 IC16ICIkYWNfY3h4X3ByZXByb2Nfd2Fybl9mbGFnJGFjX2N4eF93ZXJyb3JfZmxhZyIgfHwKKysJ IHRlc3QgISAtcyBjb25mdGVzdC5lcnIKKysgICAgICAgfTsgdGhlbgorKyAgIyBCcm9rZW46IHN1 Y2Nlc3Mgb24gaW52YWxpZCBpbnB1dC4KKytjb250aW51ZQorK2Vsc2UKKysgICRhc19lY2hvICIk YXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQorK3NlZCAncy9eL3wgLycgY29uZnRlc3Qu JGFjX2V4dCA+JjUKKysKKysgICMgUGFzc2VzIGJvdGggdGVzdHMuCisrYWNfcHJlcHJvY19vaz06 CisrYnJlYWsKKytmaQorKworK3JtIC1mIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfZXh0Cisr CisrZG9uZQorKyMgQmVjYXVzZSBvZiBgYnJlYWsnLCBfQUNfUFJFUFJPQ19JRkVMU0UncyBjbGVh bmluZyBjb2RlIHdhcyBza2lwcGVkLgorK3JtIC1mIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNf ZXh0CisraWYgJGFjX3ByZXByb2Nfb2s7IHRoZW4KKysgIGJyZWFrCisrZmkKKysKKysgICAgZG9u ZQorKyAgICBhY19jdl9wcm9nX0NYWENQUD0kQ1hYQ1BQCisrCisrZmkKKysgIENYWENQUD0kYWNf Y3ZfcHJvZ19DWFhDUFAKKytlbHNlCisrICBhY19jdl9wcm9nX0NYWENQUD0kQ1hYQ1BQCisrZmkK Kyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkQ1hYQ1BQIiA+JjUKKyskYXNf ZWNobyAiJENYWENQUCIgPiY2OyB9CisrYWNfcHJlcHJvY19vaz1mYWxzZQorK2ZvciBhY19jeHhf cHJlcHJvY193YXJuX2ZsYWcgaW4gJycgeWVzCisrZG8KKysgICMgVXNlIGEgaGVhZGVyIGZpbGUg dGhhdCBjb21lcyB3aXRoIGdjYywgc28gY29uZmlndXJpbmcgZ2xpYmMKKysgICMgd2l0aCBhIGZy ZXNoIGNyb3NzLWNvbXBpbGVyIHdvcmtzLgorKyAgIyBQcmVmZXIgPGxpbWl0cy5oPiB0byA8YXNz ZXJ0Lmg+IGlmIF9fU1REQ19fIGlzIGRlZmluZWQsIHNpbmNlCisrICAjIDxsaW1pdHMuaD4gZXhp c3RzIGV2ZW4gb24gZnJlZXN0YW5kaW5nIGNvbXBpbGVycy4KKysgICMgT24gdGhlIE5lWFQsIGNj IC1FIHJ1bnMgdGhlIGNvZGUgdGhyb3VnaCB0aGUgY29tcGlsZXIncyBwYXJzZXIsCisrICAjIG5v dCBqdXN0IHRocm91Z2ggY3BwLiAiU3ludGF4IGVycm9yIiBpcyBoZXJlIHRvIGNhdGNoIHRoaXMg Y2FzZS4KKysgIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorKy8qIGNvbmZkZWZzLmgu ICAqLworK19BQ0VPRgorK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAorK2NhdCA+ PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKysvKiBlbmQgY29uZmRlZnMuaC4gICovCisrI2lm ZGVmIF9fU1REQ19fCisrIyBpbmNsdWRlIDxsaW1pdHMuaD4KKysjZWxzZQorKyMgaW5jbHVkZSA8 YXNzZXJ0Lmg+CisrI2VuZGlmCisrCQkgICAgIFN5bnRheCBlcnJvcgorK19BQ0VPRgorK2lmIHsg KGFjX3RyeT0iJGFjX2NwcCBjb25mdGVzdC4kYWNfZXh0IgorK2Nhc2UgIigoJGFjX3RyeSIgaW4K KysgICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OworKyAgKikgYWNf dHJ5X2VjaG89JGFjX3RyeTs7CisrZXNhYworK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTok TElORU5POiAkYWNfdHJ5X2VjaG9cIiIKKyskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1Cisr ICAoZXZhbCAiJGFjX2NwcCBjb25mdGVzdC4kYWNfZXh0IikgMj5jb25mdGVzdC5lcjEKKysgIGFj X3N0YXR1cz0kPworKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIK KysgIHJtIC1mIGNvbmZ0ZXN0LmVyMQorKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKKysgICRhc19l Y2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisrICAoZXhpdCAkYWNf c3RhdHVzKTsgfSA+L2Rldi9udWxsICYmIHsKKysJIHRlc3QgLXogIiRhY19jeHhfcHJlcHJvY193 YXJuX2ZsYWckYWNfY3h4X3dlcnJvcl9mbGFnIiB8fAorKwkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVy cgorKyAgICAgICB9OyB0aGVuCisrICA6CisrZWxzZQorKyAgJGFzX2VjaG8gIiRhc19tZTogZmFp bGVkIHByb2dyYW0gd2FzOiIgPiY1Cisrc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4m NQorKworKyAgIyBCcm9rZW46IGZhaWxzIG9uIHZhbGlkIGlucHV0LgorK2NvbnRpbnVlCisrZmkK KysKKytybSAtZiBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX2V4dAorKworKyAgIyBPSywgd29y a3Mgb24gc2FuZSBjYXNlcy4gIE5vdyBjaGVjayB3aGV0aGVyIG5vbmV4aXN0ZW50IGhlYWRlcnMK KysgICMgY2FuIGJlIGRldGVjdGVkIGFuZCBob3cuCisrICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQg PDxfQUNFT0YKKysvKiBjb25mZGVmcy5oLiAgKi8KKytfQUNFT0YKKytjYXQgY29uZmRlZnMuaCA+ PmNvbmZ0ZXN0LiRhY19leHQKKytjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisrLyog ZW5kIGNvbmZkZWZzLmguICAqLworKyNpbmNsdWRlIDxhY19ub25leGlzdGVudC5oPgorK19BQ0VP RgorK2lmIHsgKGFjX3RyeT0iJGFjX2NwcCBjb25mdGVzdC4kYWNfZXh0IgorK2Nhc2UgIigoJGFj X3RyeSIgaW4KKysgICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7Owor KyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7CisrZXNhYworK2V2YWwgYWNfdHJ5X2VjaG89Ilwi XCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIKKyskYXNfZWNobyAiJGFjX3RyeV9lY2hv IikgPiY1CisrICAoZXZhbCAiJGFjX2NwcCBjb25mdGVzdC4kYWNfZXh0IikgMj5jb25mdGVzdC5l cjEKKysgIGFjX3N0YXR1cz0kPworKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25m dGVzdC5lcnIKKysgIHJtIC1mIGNvbmZ0ZXN0LmVyMQorKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUK KysgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisrICAo ZXhpdCAkYWNfc3RhdHVzKTsgfSA+L2Rldi9udWxsICYmIHsKKysJIHRlc3QgLXogIiRhY19jeHhf cHJlcHJvY193YXJuX2ZsYWckYWNfY3h4X3dlcnJvcl9mbGFnIiB8fAorKwkgdGVzdCAhIC1zIGNv bmZ0ZXN0LmVycgorKyAgICAgICB9OyB0aGVuCisrICAjIEJyb2tlbjogc3VjY2VzcyBvbiBpbnZh bGlkIGlucHV0LgorK2NvbnRpbnVlCisrZWxzZQorKyAgJGFzX2VjaG8gIiRhc19tZTogZmFpbGVk IHByb2dyYW0gd2FzOiIgPiY1Cisrc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQor KworKyAgIyBQYXNzZXMgYm90aCB0ZXN0cy4KKythY19wcmVwcm9jX29rPToKKyticmVhaworK2Zp CisrCisrcm0gLWYgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19leHQKKysKKytkb25lCisrIyBC ZWNhdXNlIG9mIGBicmVhaycsIF9BQ19QUkVQUk9DX0lGRUxTRSdzIGNsZWFuaW5nIGNvZGUgd2Fz IHNraXBwZWQuCisrcm0gLWYgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19leHQKKytpZiAkYWNf cHJlcHJvY19vazsgdGhlbgorKyAgOgorK2Vsc2UKKysgIHsgeyAkYXNfZWNobyAiJGFzX21lOiRM SU5FTk86IGVycm9yOiBpbiBcYCRhY19wd2QnOiIgPiY1CisrJGFzX2VjaG8gIiRhc19tZTogZXJy b3I6IGluIFxgJGFjX3B3ZCc6IiA+JjI7fQorK19sdF9jYXVnaHRfQ1hYX2Vycm9yPXllczsgfQor K2ZpCisrCisrYWNfZXh0PWMKKythY19jcHA9JyRDUFAgJENQUEZMQUdTJworK2FjX2NvbXBpbGU9 JyRDQyAtYyAkQ0ZMQUdTICRDUFBGTEFHUyBjb25mdGVzdC4kYWNfZXh0ID4mNScKKythY19saW5r PSckQ0MgLW8gY29uZnRlc3QkYWNfZXhlZXh0ICRDRkxBR1MgJENQUEZMQUdTICRMREZMQUdTIGNv bmZ0ZXN0LiRhY19leHQgJExJQlMgPiY1JworK2FjX2NvbXBpbGVyX2dudT0kYWNfY3ZfY19jb21w aWxlcl9nbnUKKysKKytlbHNlCisrICBfbHRfY2F1Z2h0X0NYWF9lcnJvcj15ZXMKKytmaQorKwor KworKworKworKworKyMgU2V0IG9wdGlvbnMKKysKKysKKysKKysgICAgICAgIGVuYWJsZV9kbG9w ZW49bm8KKysKKysKKysgIGVuYWJsZV93aW4zMl9kbGw9bm8KKysKKysKKysKKysKKysKKysjIENo ZWNrIHdoZXRoZXIgLS13aXRoLXBpYyB3YXMgZ2l2ZW4uCisraWYgdGVzdCAiJHt3aXRoX3BpYytz ZXR9IiA9IHNldDsgdGhlbgorKyAgd2l0aHZhbD0kd2l0aF9waWM7IHBpY19tb2RlPSIkd2l0aHZh bCIKKytlbHNlCisrICBwaWNfbW9kZT1kZWZhdWx0CisrZmkKKysKKysKKyt0ZXN0IC16ICIkcGlj X21vZGUiICYmIHBpY19tb2RlPWRlZmF1bHQKKysKKysKKysKKysKKysKKysKKysKKysgICMgQ2hl Y2sgd2hldGhlciAtLWVuYWJsZS1mYXN0LWluc3RhbGwgd2FzIGdpdmVuLgorK2lmIHRlc3QgIiR7 ZW5hYmxlX2Zhc3RfaW5zdGFsbCtzZXR9IiA9IHNldDsgdGhlbgorKyAgZW5hYmxldmFsPSRlbmFi bGVfZmFzdF9pbnN0YWxsOyBwPSR7UEFDS0FHRS1kZWZhdWx0fQorKyAgICBjYXNlICRlbmFibGV2 YWwgaW4KKysgICAgeWVzKSBlbmFibGVfZmFzdF9pbnN0YWxsPXllcyA7OworKyAgICBubykgZW5h YmxlX2Zhc3RfaW5zdGFsbD1ubyA7OworKyAgICAqKQorKyAgICAgIGVuYWJsZV9mYXN0X2luc3Rh bGw9bm8KKysgICAgICAjIExvb2sgYXQgdGhlIGFyZ3VtZW50IHdlIGdvdC4gIFdlIHVzZSBhbGwg dGhlIGNvbW1vbiBsaXN0IHNlcGFyYXRvcnMuCisrICAgICAgbHRfc2F2ZV9pZnM9IiRJRlMiOyBJ RlM9IiR7SUZTfSRQQVRIX1NFUEFSQVRPUiwiCisrICAgICAgZm9yIHBrZyBpbiAkZW5hYmxldmFs OyBkbworKwlJRlM9IiRsdF9zYXZlX2lmcyIKKysJaWYgdGVzdCAiWCRwa2ciID0gIlgkcCI7IHRo ZW4KKysJICBlbmFibGVfZmFzdF9pbnN0YWxsPXllcworKwlmaQorKyAgICAgIGRvbmUKKysgICAg ICBJRlM9IiRsdF9zYXZlX2lmcyIKKysgICAgICA7OworKyAgICBlc2FjCisrZWxzZQorKyAgZW5h YmxlX2Zhc3RfaW5zdGFsbD15ZXMKKytmaQorKworKworKworKworKworKworKworKworKworKwor KworKyMgVGhpcyBjYW4gYmUgdXNlZCB0byByZWJ1aWxkIGxpYnRvb2wgd2hlbiBuZWVkZWQKKytM SUJUT09MX0RFUFM9IiRsdG1haW4iCisrCisrIyBBbHdheXMgdXNlIG91ciBvd24gbGlidG9vbC4K KytMSUJUT09MPSckKFNIRUxMKSAkKHRvcF9idWlsZGRpcikvbGlidG9vbCcKKysKKysKKysKKysK KysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysK KysKKysKKyt0ZXN0IC16ICIkTE5fUyIgJiYgTE5fUz0ibG4gLXMiCisrCisrCisrCisrCisrCisr CisrCisrCisrCisrCisrCisrCisrCisrCisraWYgdGVzdCAtbiAiJHtaU0hfVkVSU0lPTitzZXR9 IiA7IHRoZW4KKysgICBzZXRvcHQgTk9fR0xPQl9TVUJTVAorK2ZpCisrCisreyAkYXNfZWNobyAi JGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciBvYmpkaXIiID4mNQorKyRhc19lY2hvX24gImNo ZWNraW5nIGZvciBvYmpkaXIuLi4gIiA+JjY7IH0KKytpZiB0ZXN0ICIke2x0X2N2X29iamRpcitz ZXR9IiA9IHNldDsgdGhlbgorKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKKytlbHNlCisr ICBybSAtZiAubGlicyAyPi9kZXYvbnVsbAorK21rZGlyIC5saWJzIDI+L2Rldi9udWxsCisraWYg dGVzdCAtZCAubGliczsgdGhlbgorKyAgbHRfY3Zfb2JqZGlyPS5saWJzCisrZWxzZQorKyAgIyBN Uy1ET1MgZG9lcyBub3QgYWxsb3cgZmlsZW5hbWVzIHRoYXQgYmVnaW4gd2l0aCBhIGRvdC4KKysg IGx0X2N2X29iamRpcj1fbGlicworK2ZpCisrcm1kaXIgLmxpYnMgMj4vZGV2L251bGwKKytmaQor K3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRsdF9jdl9vYmpkaXIiID4mNQor KyRhc19lY2hvICIkbHRfY3Zfb2JqZGlyIiA+JjY7IH0KKytvYmpkaXI9JGx0X2N2X29iamRpcgor KworKworKworKworKworK2NhdCA+PmNvbmZkZWZzLmggPDxfQUNFT0YKKysjZGVmaW5lIExUX09C SkRJUiAiJGx0X2N2X29iamRpci8iCisrX0FDRU9GCisrCisrCisrCisrCisrCisrCisrCisrCisr CisrCisrCisrCisrCisrCisrCisrCisrCisrY2FzZSAkaG9zdF9vcyBpbgorK2FpeDMqKQorKyAg IyBBSVggc29tZXRpbWVzIGhhcyBwcm9ibGVtcyB3aXRoIHRoZSBHQ0MgY29sbGVjdDIgcHJvZ3Jh bS4gIEZvciBzb21lCisrICAjIHJlYXNvbiwgaWYgd2Ugc2V0IHRoZSBDT0xMRUNUX05BTUVTIGVu dmlyb25tZW50IHZhcmlhYmxlLCB0aGUgcHJvYmxlbXMKKysgICMgdmFuaXNoIGluIGEgcHVmZiBv ZiBzbW9rZS4KKysgIGlmIHRlc3QgIlgke0NPTExFQ1RfTkFNRVMrc2V0fSIgIT0gWHNldDsgdGhl bgorKyAgICBDT0xMRUNUX05BTUVTPQorKyAgICBleHBvcnQgQ09MTEVDVF9OQU1FUworKyAgZmkK KysgIDs7CisrZXNhYworKworKyMgU2VkIHN1YnN0aXR1dGlvbiB0aGF0IGhlbHBzIHVzIGRvIHJv YnVzdCBxdW90aW5nLiAgSXQgYmFja3NsYXNoaWZpZXMKKysjIG1ldGFjaGFyYWN0ZXJzIHRoYXQg YXJlIHN0aWxsIGFjdGl2ZSB3aXRoaW4gZG91YmxlLXF1b3RlZCBzdHJpbmdzLgorK3NlZF9xdW90 ZV9zdWJzdD0ncy9cKFsiYCRcXF1cKS9cXFwxL2cnCisrCisrIyBTYW1lIGFzIGFib3ZlLCBidXQg ZG8gbm90IHF1b3RlIHZhcmlhYmxlIHJlZmVyZW5jZXMuCisrZG91YmxlX3F1b3RlX3N1YnN0PSdz L1woWyJgXFxdXCkvXFxcMS9nJworKworKyMgU2VkIHN1YnN0aXR1dGlvbiB0byBkZWxheSBleHBh bnNpb24gb2YgYW4gZXNjYXBlZCBzaGVsbCB2YXJpYWJsZSBpbiBhCisrIyBkb3VibGVfcXVvdGVf c3Vic3QnZWQgc3RyaW5nLgorK2RlbGF5X3ZhcmlhYmxlX3N1YnN0PSdzL1xcXFxcXFxcXFxcJC9c XFxcXFwkL2cnCisrCisrIyBTZWQgc3Vic3RpdHV0aW9uIHRvIGRlbGF5IGV4cGFuc2lvbiBvZiBh biBlc2NhcGVkIHNpbmdsZSBxdW90ZS4KKytkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3Q9J3MvJ1wn Jy8nXCdcXFxcXFxcJ1wnJy9nJworKworKyMgU2VkIHN1YnN0aXR1dGlvbiB0byBhdm9pZCBhY2Np ZGVudGFsIGdsb2JiaW5nIGluIGV2YWxlZCBleHByZXNzaW9ucworK25vX2dsb2Jfc3Vic3Q9J3Mv XCovXFxcKi9nJworKworKyMgR2xvYmFsIHZhcmlhYmxlczoKKytvZmlsZT1saWJ0b29sCisrY2Fu X2J1aWxkX3NoYXJlZD15ZXMKKysKKysjIEFsbCBrbm93biBsaW5rZXJzIHJlcXVpcmUgYSBgLmEn IGFyY2hpdmUgZm9yIHN0YXRpYyBsaW5raW5nIChleGNlcHQgTVNWQywKKysjIHdoaWNoIG5lZWRz ICcubGliJykuCisrbGliZXh0PWEKKysKKyt3aXRoX2dudV9sZD0iJGx0X2N2X3Byb2dfZ251X2xk IgorKworK29sZF9DQz0iJENDIgorK29sZF9DRkxBR1M9IiRDRkxBR1MiCisrCisrIyBTZXQgc2Fu ZSBkZWZhdWx0cyBmb3IgdmFyaW91cyB2YXJpYWJsZXMKKyt0ZXN0IC16ICIkQ0MiICYmIENDPWNj CisrdGVzdCAteiAiJExUQ0MiICYmIExUQ0M9JENDCisrdGVzdCAteiAiJExUQ0ZMQUdTIiAmJiBM VENGTEFHUz0kQ0ZMQUdTCisrdGVzdCAteiAiJExEIiAmJiBMRD1sZAorK3Rlc3QgLXogIiRhY19v YmpleHQiICYmIGFjX29iamV4dD1vCisrCisrZm9yIGNjX3RlbXAgaW4gJGNvbXBpbGVyIiI7IGRv CisrICBjYXNlICRjY190ZW1wIGluCisrICAgIGNvbXBpbGUgfCAqW1xcL11jb21waWxlIHwgY2Nh Y2hlIHwgKltcXC9dY2NhY2hlICkgOzsKKysgICAgZGlzdGNjIHwgKltcXC9dZGlzdGNjIHwgcHVy aWZ5IHwgKltcXC9dcHVyaWZ5ICkgOzsKKysgICAgXC0qKSA7OworKyAgICAqKSBicmVhazs7Cisr ICBlc2FjCisrZG9uZQorK2NjX2Jhc2VuYW1lPWAkRUNITyAiWCRjY190ZW1wIiB8ICRYc2VkIC1l ICdzJS4qLyUlJyAtZSAicyVeJGhvc3RfYWxpYXMtJSUiYAorKworKworKyMgT25seSBwZXJmb3Jt IHRoZSBjaGVjayBmb3IgZmlsZSwgaWYgdGhlIGNoZWNrIG1ldGhvZCByZXF1aXJlcyBpdAorK3Rl c3QgLXogIiRNQUdJQ19DTUQiICYmIE1BR0lDX0NNRD1maWxlCisrY2FzZSAkZGVwbGlic19jaGVj a19tZXRob2QgaW4KKytmaWxlX21hZ2ljKikKKysgIGlmIHRlc3QgIiRmaWxlX21hZ2ljX2NtZCIg PSAnJE1BR0lDX0NNRCc7IHRoZW4KKysgICAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNo ZWNraW5nIGZvciAke2FjX3Rvb2xfcHJlZml4fWZpbGUiID4mNQorKyRhc19lY2hvX24gImNoZWNr aW5nIGZvciAke2FjX3Rvb2xfcHJlZml4fWZpbGUuLi4gIiA+JjY7IH0KKytpZiB0ZXN0ICIke2x0 X2N2X3BhdGhfTUFHSUNfQ01EK3NldH0iID0gc2V0OyB0aGVuCisrICAkYXNfZWNob19uICIoY2Fj aGVkKSAiID4mNgorK2Vsc2UKKysgIGNhc2UgJE1BR0lDX0NNRCBpbgorK1tcXC8qXSB8ICA/Oltc XC9dKikKKysgIGx0X2N2X3BhdGhfTUFHSUNfQ01EPSIkTUFHSUNfQ01EIiAjIExldCB0aGUgdXNl ciBvdmVycmlkZSB0aGUgdGVzdCB3aXRoIGEgcGF0aC4KKysgIDs7CisrKikKKysgIGx0X3NhdmVf TUFHSUNfQ01EPSIkTUFHSUNfQ01EIgorKyAgbHRfc2F2ZV9pZnM9IiRJRlMiOyBJRlM9JFBBVEhf U0VQQVJBVE9SCisrICBhY19kdW1teT0iL3Vzci9iaW4kUEFUSF9TRVBBUkFUT1IkUEFUSCIKKysg IGZvciBhY19kaXIgaW4gJGFjX2R1bW15OyBkbworKyAgICBJRlM9IiRsdF9zYXZlX2lmcyIKKysg ICAgdGVzdCAteiAiJGFjX2RpciIgJiYgYWNfZGlyPS4KKysgICAgaWYgdGVzdCAtZiAkYWNfZGly LyR7YWNfdG9vbF9wcmVmaXh9ZmlsZTsgdGhlbgorKyAgICAgIGx0X2N2X3BhdGhfTUFHSUNfQ01E PSIkYWNfZGlyLyR7YWNfdG9vbF9wcmVmaXh9ZmlsZSIKKysgICAgICBpZiB0ZXN0IC1uICIkZmls ZV9tYWdpY190ZXN0X2ZpbGUiOyB0aGVuCisrCWNhc2UgJGRlcGxpYnNfY2hlY2tfbWV0aG9kIGlu CisrCSJmaWxlX21hZ2ljICIqKQorKwkgIGZpbGVfbWFnaWNfcmVnZXg9YGV4cHIgIiRkZXBsaWJz X2NoZWNrX21ldGhvZCIgOiAiZmlsZV9tYWdpYyBcKC4qXCkiYAorKwkgIE1BR0lDX0NNRD0iJGx0 X2N2X3BhdGhfTUFHSUNfQ01EIgorKwkgIGlmIGV2YWwgJGZpbGVfbWFnaWNfY21kIFwkZmlsZV9t YWdpY190ZXN0X2ZpbGUgMj4gL2Rldi9udWxsIHwKKysJICAgICRFR1JFUCAiJGZpbGVfbWFnaWNf cmVnZXgiID4gL2Rldi9udWxsOyB0aGVuCisrCSAgICA6CisrCSAgZWxzZQorKwkgICAgY2F0IDw8 X0xUX0VPRiAxPiYyCisrCisrKioqIFdhcm5pbmc6IHRoZSBjb21tYW5kIGxpYnRvb2wgdXNlcyB0 byBkZXRlY3Qgc2hhcmVkIGxpYnJhcmllcywKKysqKiogJGZpbGVfbWFnaWNfY21kLCBwcm9kdWNl cyBvdXRwdXQgdGhhdCBsaWJ0b29sIGNhbm5vdCByZWNvZ25pemUuCisrKioqIFRoZSByZXN1bHQg aXMgdGhhdCBsaWJ0b29sIG1heSBmYWlsIHRvIHJlY29nbml6ZSBzaGFyZWQgbGlicmFyaWVzCisr KioqIGFzIHN1Y2guICBUaGlzIHdpbGwgYWZmZWN0IHRoZSBjcmVhdGlvbiBvZiBsaWJ0b29sIGxp YnJhcmllcyB0aGF0CisrKioqIGRlcGVuZCBvbiBzaGFyZWQgbGlicmFyaWVzLCBidXQgcHJvZ3Jh bXMgbGlua2VkIHdpdGggc3VjaCBsaWJ0b29sCisrKioqIGxpYnJhcmllcyB3aWxsIHdvcmsgcmVn YXJkbGVzcyBvZiB0aGlzIHByb2JsZW0uICBOZXZlcnRoZWxlc3MsIHlvdQorKyoqKiBtYXkgd2Fu dCB0byByZXBvcnQgdGhlIHByb2JsZW0gdG8geW91ciBzeXN0ZW0gbWFuYWdlciBhbmQvb3IgdG8K KysqKiogYnVnLWxpYnRvb2xAZ251Lm9yZworKworK19MVF9FT0YKKysJICBmaSA7OworKwllc2Fj CisrICAgICAgZmkKKysgICAgICBicmVhaworKyAgICBmaQorKyAgZG9uZQorKyAgSUZTPSIkbHRf c2F2ZV9pZnMiCisrICBNQUdJQ19DTUQ9IiRsdF9zYXZlX01BR0lDX0NNRCIKKysgIDs7CisrZXNh YworK2ZpCisrCisrTUFHSUNfQ01EPSIkbHRfY3ZfcGF0aF9NQUdJQ19DTUQiCisraWYgdGVzdCAt biAiJE1BR0lDX0NNRCI7IHRoZW4KKysgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1 bHQ6ICRNQUdJQ19DTUQiID4mNQorKyRhc19lY2hvICIkTUFHSUNfQ01EIiA+JjY7IH0KKytlbHNl CisrICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiBubyIgPiY1CisrJGFzX2Vj aG8gIm5vIiA+JjY7IH0KKytmaQorKworKworKworKworKworK2lmIHRlc3QgLXogIiRsdF9jdl9w YXRoX01BR0lDX0NNRCI7IHRoZW4KKysgIGlmIHRlc3QgLW4gIiRhY190b29sX3ByZWZpeCI7IHRo ZW4KKysgICAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciBmaWxlIiA+ JjUKKyskYXNfZWNob19uICJjaGVja2luZyBmb3IgZmlsZS4uLiAiID4mNjsgfQorK2lmIHRlc3Qg IiR7bHRfY3ZfcGF0aF9NQUdJQ19DTUQrc2V0fSIgPSBzZXQ7IHRoZW4KKysgICRhc19lY2hvX24g IihjYWNoZWQpICIgPiY2CisrZWxzZQorKyAgY2FzZSAkTUFHSUNfQ01EIGluCisrW1xcLypdIHwg ID86W1xcL10qKQorKyAgbHRfY3ZfcGF0aF9NQUdJQ19DTUQ9IiRNQUdJQ19DTUQiICMgTGV0IHRo ZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0IHdpdGggYSBwYXRoLgorKyAgOzsKKysqKQorKyAgbHRf c2F2ZV9NQUdJQ19DTUQ9IiRNQUdJQ19DTUQiCisrICBsdF9zYXZlX2lmcz0iJElGUyI7IElGUz0k UEFUSF9TRVBBUkFUT1IKKysgIGFjX2R1bW15PSIvdXNyL2JpbiRQQVRIX1NFUEFSQVRPUiRQQVRI IgorKyAgZm9yIGFjX2RpciBpbiAkYWNfZHVtbXk7IGRvCisrICAgIElGUz0iJGx0X3NhdmVfaWZz IgorKyAgICB0ZXN0IC16ICIkYWNfZGlyIiAmJiBhY19kaXI9LgorKyAgICBpZiB0ZXN0IC1mICRh Y19kaXIvZmlsZTsgdGhlbgorKyAgICAgIGx0X2N2X3BhdGhfTUFHSUNfQ01EPSIkYWNfZGlyL2Zp bGUiCisrICAgICAgaWYgdGVzdCAtbiAiJGZpbGVfbWFnaWNfdGVzdF9maWxlIjsgdGhlbgorKwlj YXNlICRkZXBsaWJzX2NoZWNrX21ldGhvZCBpbgorKwkiZmlsZV9tYWdpYyAiKikKKysJICBmaWxl X21hZ2ljX3JlZ2V4PWBleHByICIkZGVwbGlic19jaGVja19tZXRob2QiIDogImZpbGVfbWFnaWMg XCguKlwpImAKKysJICBNQUdJQ19DTUQ9IiRsdF9jdl9wYXRoX01BR0lDX0NNRCIKKysJICBpZiBl dmFsICRmaWxlX21hZ2ljX2NtZCBcJGZpbGVfbWFnaWNfdGVzdF9maWxlIDI+IC9kZXYvbnVsbCB8 CisrCSAgICAkRUdSRVAgIiRmaWxlX21hZ2ljX3JlZ2V4IiA+IC9kZXYvbnVsbDsgdGhlbgorKwkg ICAgOgorKwkgIGVsc2UKKysJICAgIGNhdCA8PF9MVF9FT0YgMT4mMgorKworKyoqKiBXYXJuaW5n OiB0aGUgY29tbWFuZCBsaWJ0b29sIHVzZXMgdG8gZGV0ZWN0IHNoYXJlZCBsaWJyYXJpZXMsCisr KioqICRmaWxlX21hZ2ljX2NtZCwgcHJvZHVjZXMgb3V0cHV0IHRoYXQgbGlidG9vbCBjYW5ub3Qg cmVjb2duaXplLgorKyoqKiBUaGUgcmVzdWx0IGlzIHRoYXQgbGlidG9vbCBtYXkgZmFpbCB0byBy ZWNvZ25pemUgc2hhcmVkIGxpYnJhcmllcworKyoqKiBhcyBzdWNoLiAgVGhpcyB3aWxsIGFmZmVj dCB0aGUgY3JlYXRpb24gb2YgbGlidG9vbCBsaWJyYXJpZXMgdGhhdAorKyoqKiBkZXBlbmQgb24g c2hhcmVkIGxpYnJhcmllcywgYnV0IHByb2dyYW1zIGxpbmtlZCB3aXRoIHN1Y2ggbGlidG9vbAor KyoqKiBsaWJyYXJpZXMgd2lsbCB3b3JrIHJlZ2FyZGxlc3Mgb2YgdGhpcyBwcm9ibGVtLiAgTmV2 ZXJ0aGVsZXNzLCB5b3UKKysqKiogbWF5IHdhbnQgdG8gcmVwb3J0IHRoZSBwcm9ibGVtIHRvIHlv dXIgc3lzdGVtIG1hbmFnZXIgYW5kL29yIHRvCisrKioqIGJ1Zy1saWJ0b29sQGdudS5vcmcKKysK KytfTFRfRU9GCisrCSAgZmkgOzsKKysJZXNhYworKyAgICAgIGZpCisrICAgICAgYnJlYWsKKysg ICAgZmkKKysgIGRvbmUKKysgIElGUz0iJGx0X3NhdmVfaWZzIgorKyAgTUFHSUNfQ01EPSIkbHRf c2F2ZV9NQUdJQ19DTUQiCisrICA7OworK2VzYWMKKytmaQorKworK01BR0lDX0NNRD0iJGx0X2N2 X3BhdGhfTUFHSUNfQ01EIgorK2lmIHRlc3QgLW4gIiRNQUdJQ19DTUQiOyB0aGVuCisrICB7ICRh c19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkTUFHSUNfQ01EIiA+JjUKKyskYXNfZWNo byAiJE1BR0lDX0NNRCIgPiY2OyB9CisrZWxzZQorKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5F Tk86IHJlc3VsdDogbm8iID4mNQorKyRhc19lY2hvICJubyIgPiY2OyB9CisrZmkKKysKKysKKysg IGVsc2UKKysgICAgTUFHSUNfQ01EPToKKysgIGZpCisrZmkKKysKKysgIGZpCisrICA7OworK2Vz YWMKKysKKysjIFVzZSBDIGZvciB0aGUgZGVmYXVsdCBjb25maWd1cmF0aW9uIGluIHRoZSBsaWJ0 b29sIHNjcmlwdAorKworK2x0X3NhdmVfQ0M9IiRDQyIKKythY19leHQ9YworK2FjX2NwcD0nJENQ UCAkQ1BQRkxBR1MnCisrYWNfY29tcGlsZT0nJENDIC1jICRDRkxBR1MgJENQUEZMQUdTIGNvbmZ0 ZXN0LiRhY19leHQgPiY1JworK2FjX2xpbms9JyRDQyAtbyBjb25mdGVzdCRhY19leGVleHQgJENG TEFHUyAkQ1BQRkxBR1MgJExERkxBR1MgY29uZnRlc3QuJGFjX2V4dCAkTElCUyA+JjUnCisrYWNf Y29tcGlsZXJfZ251PSRhY19jdl9jX2NvbXBpbGVyX2dudQorKworKworKyMgU291cmNlIGZpbGUg ZXh0ZW5zaW9uIGZvciBDIHRlc3Qgc291cmNlcy4KKythY19leHQ9YworKworKyMgT2JqZWN0IGZp bGUgZXh0ZW5zaW9uIGZvciBjb21waWxlZCBDIHRlc3Qgc291cmNlcy4KKytvYmpleHQ9bworK29i amV4dD0kb2JqZXh0CisrCisrIyBDb2RlIHRvIGJlIHVzZWQgaW4gc2ltcGxlIGNvbXBpbGUgdGVz dHMKKytsdF9zaW1wbGVfY29tcGlsZV90ZXN0X2NvZGU9ImludCBzb21lX3ZhcmlhYmxlID0gMDsi CisrCisrIyBDb2RlIHRvIGJlIHVzZWQgaW4gc2ltcGxlIGxpbmsgdGVzdHMKKytsdF9zaW1wbGVf bGlua190ZXN0X2NvZGU9J2ludCBtYWluKCl7cmV0dXJuKDApO30nCisrCisrCisrCisrCisrCisr CisrCisrIyBJZiBubyBDIGNvbXBpbGVyIHdhcyBzcGVjaWZpZWQsIHVzZSBDQy4KKytMVENDPSR7 TFRDQy0iJENDIn0KKysKKysjIElmIG5vIEMgY29tcGlsZXIgZmxhZ3Mgd2VyZSBzcGVjaWZpZWQs IHVzZSBDRkxBR1MuCisrTFRDRkxBR1M9JHtMVENGTEFHUy0iJENGTEFHUyJ9CisrCisrIyBBbGxv dyBDQyB0byBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3VtZW50cy4KKytjb21waWxlcj0kQ0MK KysKKysjIFNhdmUgdGhlIGRlZmF1bHQgY29tcGlsZXIsIHNpbmNlIGl0IGdldHMgb3ZlcndyaXR0 ZW4gd2hlbiB0aGUgb3RoZXIKKysjIHRhZ3MgYXJlIGJlaW5nIHRlc3RlZCwgYW5kIF9MVF9UQUdW QVIoY29tcGlsZXIsIFtdKSBpcyBhIE5PUC4KKytjb21waWxlcl9ERUZBVUxUPSRDQworKworKyMg c2F2ZSB3YXJuaW5ncy9ib2lsZXJwbGF0ZSBvZiBzaW1wbGUgdGVzdCBjb2RlCisrYWNfb3V0Zmls ZT1jb25mdGVzdC4kYWNfb2JqZXh0CisrZWNobyAiJGx0X3NpbXBsZV9jb21waWxlX3Rlc3RfY29k ZSIgPmNvbmZ0ZXN0LiRhY19leHQKKytldmFsICIkYWNfY29tcGlsZSIgMj4mMSA+L2Rldi9udWxs IHwgJFNFRCAnL14kL2Q7IC9eICorL2QnID5jb25mdGVzdC5lcnIKKytfbHRfY29tcGlsZXJfYm9p bGVycGxhdGU9YGNhdCBjb25mdGVzdC5lcnJgCisrJFJNIGNvbmZ0ZXN0KgorKworK2FjX291dGZp bGU9Y29uZnRlc3QuJGFjX29iamV4dAorK2VjaG8gIiRsdF9zaW1wbGVfbGlua190ZXN0X2NvZGUi ID5jb25mdGVzdC4kYWNfZXh0CisrZXZhbCAiJGFjX2xpbmsiIDI+JjEgPi9kZXYvbnVsbCB8ICRT RUQgJy9eJC9kOyAvXiAqKy9kJyA+Y29uZnRlc3QuZXJyCisrX2x0X2xpbmtlcl9ib2lsZXJwbGF0 ZT1gY2F0IGNvbmZ0ZXN0LmVycmAKKyskUk0gLXIgY29uZnRlc3QqCisrCisrCisrIyMgQ0FWRUFU IEVNUFRPUjoKKysjIyBUaGVyZSBpcyBubyBlbmNhcHN1bGF0aW9uIHdpdGhpbiB0aGUgZm9sbG93 aW5nIG1hY3JvcywgZG8gbm90IGNoYW5nZQorKyMjIHRoZSBydW5uaW5nIG9yZGVyIG9yIG90aGVy d2lzZSBtb3ZlIHRoZW0gYXJvdW5kIHVubGVzcyB5b3Uga25vdyBleGFjdGx5CisrIyMgd2hhdCB5 b3UgYXJlIGRvaW5nLi4uCisraWYgdGVzdCAtbiAiJGNvbXBpbGVyIjsgdGhlbgorKworK2x0X3By b2dfY29tcGlsZXJfbm9fYnVpbHRpbl9mbGFnPQorKworK2lmIHRlc3QgIiRHQ0MiID0geWVzOyB0 aGVuCisrICBsdF9wcm9nX2NvbXBpbGVyX25vX2J1aWx0aW5fZmxhZz0nIC1mbm8tYnVpbHRpbicK KysKKysgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBpZiAkY29tcGlsZXIg c3VwcG9ydHMgLWZuby1ydHRpIC1mbm8tZXhjZXB0aW9ucyIgPiY1CisrJGFzX2VjaG9fbiAiY2hl Y2tpbmcgaWYgJGNvbXBpbGVyIHN1cHBvcnRzIC1mbm8tcnR0aSAtZm5vLWV4Y2VwdGlvbnMuLi4g IiA+JjY7IH0KKytpZiB0ZXN0ICIke2x0X2N2X3Byb2dfY29tcGlsZXJfcnR0aV9leGNlcHRpb25z K3NldH0iID0gc2V0OyB0aGVuCisrICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UK KysgIGx0X2N2X3Byb2dfY29tcGlsZXJfcnR0aV9leGNlcHRpb25zPW5vCisrICAgYWNfb3V0Zmls ZT1jb25mdGVzdC4kYWNfb2JqZXh0CisrICAgZWNobyAiJGx0X3NpbXBsZV9jb21waWxlX3Rlc3Rf Y29kZSIgPiBjb25mdGVzdC4kYWNfZXh0CisrICAgbHRfY29tcGlsZXJfZmxhZz0iLWZuby1ydHRp IC1mbm8tZXhjZXB0aW9ucyIKKysgICAjIEluc2VydCB0aGUgb3B0aW9uIGVpdGhlciAoMSkgYWZ0 ZXIgdGhlIGxhc3QgKkZMQUdTIHZhcmlhYmxlLCBvcgorKyAgICMgKDIpIGJlZm9yZSBhIHdvcmQg Y29udGFpbmluZyAiY29uZnRlc3QuIiwgb3IgKDMpIGF0IHRoZSBlbmQuCisrICAgIyBOb3RlIHRo YXQgJGFjX2NvbXBpbGUgaXRzZWxmIGRvZXMgbm90IGNvbnRhaW4gYmFja3NsYXNoZXMgYW5kIGJl Z2lucworKyAgICMgd2l0aCBhIGRvbGxhciBzaWduIChub3QgYSBoeXBoZW4pLCBzbyB0aGUgZWNo byBzaG91bGQgd29yayBjb3JyZWN0bHkuCisrICAgIyBUaGUgb3B0aW9uIGlzIHJlZmVyZW5jZWQg dmlhIGEgdmFyaWFibGUgdG8gYXZvaWQgY29uZnVzaW5nIHNlZC4KKysgICBsdF9jb21waWxlPWBl Y2hvICIkYWNfY29tcGlsZSIgfCAkU0VEIFwKKysgICAtZSAnczouKkZMQUdTfVx7MCwxXH0gOiYk bHRfY29tcGlsZXJfZmxhZyA6OyB0JyBcCisrICAgLWUgJ3M6IFteIF0qY29uZnRlc3RcLjogJGx0 X2NvbXBpbGVyX2ZsYWcmOjsgdCcgXAorKyAgIC1lICdzOiQ6ICRsdF9jb21waWxlcl9mbGFnOidg CisrICAgKGV2YWwgZWNobyAiXCJcJGFzX21lOjkzNzk6ICRsdF9jb21waWxlXCIiID4mNSkKKysg ICAoZXZhbCAiJGx0X2NvbXBpbGUiIDI+Y29uZnRlc3QuZXJyKQorKyAgIGFjX3N0YXR1cz0kPwor KyAgIGNhdCBjb25mdGVzdC5lcnIgPiY1CisrICAgZWNobyAiJGFzX21lOjkzODM6IFwkPyA9ICRh Y19zdGF0dXMiID4mNQorKyAgIGlmIChleGl0ICRhY19zdGF0dXMpICYmIHRlc3QgLXMgIiRhY19v dXRmaWxlIjsgdGhlbgorKyAgICAgIyBUaGUgY29tcGlsZXIgY2FuIG9ubHkgd2FybiBhbmQgaWdu b3JlIHRoZSBvcHRpb24gaWYgbm90IHJlY29nbml6ZWQKKysgICAgICMgU28gc2F5IG5vIGlmIHRo ZXJlIGFyZSB3YXJuaW5ncyBvdGhlciB0aGFuIHRoZSB1c3VhbCBvdXRwdXQuCisrICAgICAkRUNI TyAiWCRfbHRfY29tcGlsZXJfYm9pbGVycGxhdGUiIHwgJFhzZWQgLWUgJy9eJC9kJyA+Y29uZnRl c3QuZXhwCisrICAgICAkU0VEICcvXiQvZDsgL14gKisvZCcgY29uZnRlc3QuZXJyID5jb25mdGVz dC5lcjIKKysgICAgIGlmIHRlc3QgISAtcyBjb25mdGVzdC5lcjIgfHwgZGlmZiBjb25mdGVzdC5l eHAgY29uZnRlc3QuZXIyID4vZGV2L251bGw7IHRoZW4KKysgICAgICAgbHRfY3ZfcHJvZ19jb21w aWxlcl9ydHRpX2V4Y2VwdGlvbnM9eWVzCisrICAgICBmaQorKyAgIGZpCisrICAgJFJNIGNvbmZ0 ZXN0KgorKworK2ZpCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGx0X2N2 X3Byb2dfY29tcGlsZXJfcnR0aV9leGNlcHRpb25zIiA+JjUKKyskYXNfZWNobyAiJGx0X2N2X3By b2dfY29tcGlsZXJfcnR0aV9leGNlcHRpb25zIiA+JjY7IH0KKysKKytpZiB0ZXN0IHgiJGx0X2N2 X3Byb2dfY29tcGlsZXJfcnR0aV9leGNlcHRpb25zIiA9IHh5ZXM7IHRoZW4KKysgICAgbHRfcHJv Z19jb21waWxlcl9ub19idWlsdGluX2ZsYWc9IiRsdF9wcm9nX2NvbXBpbGVyX25vX2J1aWx0aW5f ZmxhZyAtZm5vLXJ0dGkgLWZuby1leGNlcHRpb25zIgorK2Vsc2UKKysgICAgOgorK2ZpCisrCisr ZmkKKysKKysKKysKKysKKysKKysKKysgIGx0X3Byb2dfY29tcGlsZXJfd2w9CisrbHRfcHJvZ19j b21waWxlcl9waWM9CisrbHRfcHJvZ19jb21waWxlcl9zdGF0aWM9CisrCisreyAkYXNfZWNobyAi JGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciAkY29tcGlsZXIgb3B0aW9uIHRvIHByb2R1Y2Ug UElDIiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyBmb3IgJGNvbXBpbGVyIG9wdGlvbiB0byBw cm9kdWNlIFBJQy4uLiAiID4mNjsgfQorKworKyAgaWYgdGVzdCAiJEdDQyIgPSB5ZXM7IHRoZW4K KysgICAgbHRfcHJvZ19jb21waWxlcl93bD0nLVdsLCcKKysgICAgbHRfcHJvZ19jb21waWxlcl9z dGF0aWM9Jy1zdGF0aWMnCisrCisrICAgIGNhc2UgJGhvc3Rfb3MgaW4KKysgICAgICBhaXgqKQor KyAgICAgICMgQWxsIEFJWCBjb2RlIGlzIFBJQy4KKysgICAgICBpZiB0ZXN0ICIkaG9zdF9jcHUi ID0gaWE2NDsgdGhlbgorKwkjIEFJWCA1IG5vdyBzdXBwb3J0cyBJQTY0IHByb2Nlc3NvcgorKwls dF9wcm9nX2NvbXBpbGVyX3N0YXRpYz0nLUJzdGF0aWMnCisrICAgICAgZmkKKysgICAgICA7Owor KworKyAgICBhbWlnYW9zKikKKysgICAgICBjYXNlICRob3N0X2NwdSBpbgorKyAgICAgIHBvd2Vy cGMpCisrICAgICAgICAgICAgIyBzZWUgY29tbWVudCBhYm91dCBBbWlnYU9TNCAuc28gc3VwcG9y dAorKyAgICAgICAgICAgIGx0X3Byb2dfY29tcGlsZXJfcGljPSctZlBJQycKKysgICAgICAgIDs7 CisrICAgICAgbTY4aykKKysgICAgICAgICAgICAjIEZJWE1FOiB3ZSBuZWVkIGF0IGxlYXN0IDY4 MDIwIGNvZGUgdG8gYnVpbGQgc2hhcmVkIGxpYnJhcmllcywgYnV0CisrICAgICAgICAgICAgIyBh ZGRpbmcgdGhlIGAtbTY4MDIwJyBmbGFnIHRvIEdDQyBwcmV2ZW50cyBidWlsZGluZyBhbnl0aGlu ZyBiZXR0ZXIsCisrICAgICAgICAgICAgIyBsaWtlIGAtbTY4MDQwJy4KKysgICAgICAgICAgICBs dF9wcm9nX2NvbXBpbGVyX3BpYz0nLW02ODAyMCAtcmVzaWRlbnQzMiAtbWFsd2F5cy1yZXN0b3Jl LWE0JworKyAgICAgICAgOzsKKysgICAgICBlc2FjCisrICAgICAgOzsKKysKKysgICAgYmVvcyog fCBpcml4NSogfCBpcml4NiogfCBub25zdG9wdXgqIHwgb3NmMyogfCBvc2Y0KiB8IG9zZjUqKQor KyAgICAgICMgUElDIGlzIHRoZSBkZWZhdWx0IGZvciB0aGVzZSBPU2VzLgorKyAgICAgIDs7Cisr CisrICAgIG1pbmd3KiB8IGN5Z3dpbiogfCBwdzMyKiB8IG9zMiogfCBjZWdjYyopCisrICAgICAg IyBUaGlzIGhhY2sgaXMgc28gdGhhdCB0aGUgc291cmNlIGZpbGUgY2FuIHRlbGwgd2hldGhlciBp dCBpcyBiZWluZworKyAgICAgICMgYnVpbHQgZm9yIGluY2x1c2lvbiBpbiBhIGRsbCAoYW5kIHNo b3VsZCBleHBvcnQgc3ltYm9scyBmb3IgZXhhbXBsZSkuCisrICAgICAgIyBBbHRob3VnaCB0aGUg Y3lnd2luIGdjYyBpZ25vcmVzIC1mUElDLCBzdGlsbCBuZWVkIHRoaXMgZm9yIG9sZC1zdHlsZQor KyAgICAgICMgKC0tZGlzYWJsZS1hdXRvLWltcG9ydCkgbGlicmFyaWVzCisrICAgICAgbHRfcHJv Z19jb21waWxlcl9waWM9Jy1ERExMX0VYUE9SVCcKKysgICAgICA7OworKworKyAgICBkYXJ3aW4q IHwgcmhhcHNvZHkqKQorKyAgICAgICMgUElDIGlzIHRoZSBkZWZhdWx0IG9uIHRoaXMgcGxhdGZv cm0KKysgICAgICAjIENvbW1vbiBzeW1ib2xzIG5vdCBhbGxvd2VkIGluIE1IX0RZTElCIGZpbGVz CisrICAgICAgbHRfcHJvZ19jb21waWxlcl9waWM9Jy1mbm8tY29tbW9uJworKyAgICAgIDs7Cisr CisrICAgIGhwdXgqKQorKyAgICAgICMgUElDIGlzIHRoZSBkZWZhdWx0IGZvciA2NC1iaXQgUEEg SFAtVVgsIGJ1dCBub3QgZm9yIDMyLWJpdAorKyAgICAgICMgUEEgSFAtVVguICBPbiBJQTY0IEhQ LVVYLCBQSUMgaXMgdGhlIGRlZmF1bHQgYnV0IHRoZSBwaWMgZmxhZworKyAgICAgICMgc2V0cyB0 aGUgZGVmYXVsdCBUTFMgbW9kZWwgYW5kIGFmZmVjdHMgaW5saW5pbmcuCisrICAgICAgY2FzZSAk aG9zdF9jcHUgaW4KKysgICAgICBocHBhKjY0KikKKysJIyArWiB0aGUgZGVmYXVsdAorKwk7Owor KyAgICAgICopCisrCWx0X3Byb2dfY29tcGlsZXJfcGljPSctZlBJQycKKysJOzsKKysgICAgICBl c2FjCisrICAgICAgOzsKKysKKysgICAgaW50ZXJpeFszLTldKikKKysgICAgICAjIEludGVyaXgg My54IGdjYyAtZnBpYy8tZlBJQyBvcHRpb25zIGdlbmVyYXRlIGJyb2tlbiBjb2RlLgorKyAgICAg ICMgSW5zdGVhZCwgd2UgcmVsb2NhdGUgc2hhcmVkIGxpYnJhcmllcyBhdCBydW50aW1lLgorKyAg ICAgIDs7CisrCisrICAgIG1zZG9zZGpncHAqKQorKyAgICAgICMgSnVzdCBiZWNhdXNlIHdlIHVz ZSBHQ0MgZG9lc24ndCBtZWFuIHdlIHN1ZGRlbmx5IGdldCBzaGFyZWQgbGlicmFyaWVzCisrICAg ICAgIyBvbiBzeXN0ZW1zIHRoYXQgZG9uJ3Qgc3VwcG9ydCB0aGVtLgorKyAgICAgIGx0X3Byb2df Y29tcGlsZXJfY2FuX2J1aWxkX3NoYXJlZD1ubworKyAgICAgIGVuYWJsZV9zaGFyZWQ9bm8KKysg ICAgICA7OworKworKyAgICAqbnRvKiB8ICpxbngqKQorKyAgICAgICMgUU5YIHVzZXMgR05VIEMr KywgYnV0IG5lZWQgdG8gZGVmaW5lIC1zaGFyZWQgb3B0aW9uIHRvbywgb3RoZXJ3aXNlCisrICAg ICAgIyBpdCB3aWxsIGNvcmVkdW1wLgorKyAgICAgIGx0X3Byb2dfY29tcGlsZXJfcGljPSctZlBJ QyAtc2hhcmVkJworKyAgICAgIDs7CisrCisrICAgIHN5c3Y0Kk1QKikKKysgICAgICBpZiB0ZXN0 IC1kIC91c3IvbmVjOyB0aGVuCisrCWx0X3Byb2dfY29tcGlsZXJfcGljPS1LY29uZm9ybV9waWMK KysgICAgICBmaQorKyAgICAgIDs7CisrCisrICAgICopCisrICAgICAgbHRfcHJvZ19jb21waWxl cl9waWM9Jy1mUElDJworKyAgICAgIDs7CisrICAgIGVzYWMKKysgIGVsc2UKKysgICAgIyBQT1JU TUUgQ2hlY2sgZm9yIGZsYWcgdG8gcGFzcyBsaW5rZXIgZmxhZ3MgdGhyb3VnaCB0aGUgc3lzdGVt IGNvbXBpbGVyLgorKyAgICBjYXNlICRob3N0X29zIGluCisrICAgIGFpeCopCisrICAgICAgbHRf cHJvZ19jb21waWxlcl93bD0nLVdsLCcKKysgICAgICBpZiB0ZXN0ICIkaG9zdF9jcHUiID0gaWE2 NDsgdGhlbgorKwkjIEFJWCA1IG5vdyBzdXBwb3J0cyBJQTY0IHByb2Nlc3NvcgorKwlsdF9wcm9n X2NvbXBpbGVyX3N0YXRpYz0nLUJzdGF0aWMnCisrICAgICAgZWxzZQorKwlsdF9wcm9nX2NvbXBp bGVyX3N0YXRpYz0nLWJuc28gLWJJOi9saWIvc3lzY2FsbHMuZXhwJworKyAgICAgIGZpCisrICAg ICAgOzsKKysKKysgICAgbWluZ3cqIHwgY3lnd2luKiB8IHB3MzIqIHwgb3MyKiB8IGNlZ2NjKikK KysgICAgICAjIFRoaXMgaGFjayBpcyBzbyB0aGF0IHRoZSBzb3VyY2UgZmlsZSBjYW4gdGVsbCB3 aGV0aGVyIGl0IGlzIGJlaW5nCisrICAgICAgIyBidWlsdCBmb3IgaW5jbHVzaW9uIGluIGEgZGxs IChhbmQgc2hvdWxkIGV4cG9ydCBzeW1ib2xzIGZvciBleGFtcGxlKS4KKysgICAgICBsdF9wcm9n X2NvbXBpbGVyX3BpYz0nLURETExfRVhQT1JUJworKyAgICAgIDs7CisrCisrICAgIGhwdXg5KiB8 IGhwdXgxMCogfCBocHV4MTEqKQorKyAgICAgIGx0X3Byb2dfY29tcGlsZXJfd2w9Jy1XbCwnCisr ICAgICAgIyBQSUMgaXMgdGhlIGRlZmF1bHQgZm9yIElBNjQgSFAtVVggYW5kIDY0LWJpdCBIUC1V WCwgYnV0CisrICAgICAgIyBub3QgZm9yIFBBIEhQLVVYLgorKyAgICAgIGNhc2UgJGhvc3RfY3B1 IGluCisrICAgICAgaHBwYSo2NCp8aWE2NCopCisrCSMgK1ogdGhlIGRlZmF1bHQKKysJOzsKKysg ICAgICAqKQorKwlsdF9wcm9nX2NvbXBpbGVyX3BpYz0nK1onCisrCTs7CisrICAgICAgZXNhYwor KyAgICAgICMgSXMgdGhlcmUgYSBiZXR0ZXIgbHRfcHJvZ19jb21waWxlcl9zdGF0aWMgdGhhdCB3 b3JrcyB3aXRoIHRoZSBidW5kbGVkIENDPworKyAgICAgIGx0X3Byb2dfY29tcGlsZXJfc3RhdGlj PScke3dsfS1hICR7d2x9YXJjaGl2ZScKKysgICAgICA7OworKworKyAgICBpcml4NSogfCBpcml4 NiogfCBub25zdG9wdXgqKQorKyAgICAgIGx0X3Byb2dfY29tcGlsZXJfd2w9Jy1XbCwnCisrICAg ICAgIyBQSUMgKHdpdGggLUtQSUMpIGlzIHRoZSBkZWZhdWx0LgorKyAgICAgIGx0X3Byb2dfY29t cGlsZXJfc3RhdGljPSctbm9uX3NoYXJlZCcKKysgICAgICA7OworKworKyAgICBsaW51eCogfCBr KmJzZCotZ251KQorKyAgICAgIGNhc2UgJGNjX2Jhc2VuYW1lIGluCisrICAgICAgIyBvbGQgSW50 ZWwgZm9yIHg4Nl82NCB3aGljaCBzdGlsbCBzdXBwb3J0ZWQgLUtQSUMuCisrICAgICAgZWNjKikK KysJbHRfcHJvZ19jb21waWxlcl93bD0nLVdsLCcKKysJbHRfcHJvZ19jb21waWxlcl9waWM9Jy1L UElDJworKwlsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYz0nLXN0YXRpYycKKysgICAgICAgIDs7Cisr ICAgICAgIyBpY2MgdXNlZCB0byBiZSBpbmNvbXBhdGlibGUgd2l0aCBHQ0MuCisrICAgICAgIyBJ Q0MgMTAgZG9lc24ndCBhY2NlcHQgLUtQSUMgYW55IG1vcmUuCisrICAgICAgaWNjKiB8IGlmb3J0 KikKKysJbHRfcHJvZ19jb21waWxlcl93bD0nLVdsLCcKKysJbHRfcHJvZ19jb21waWxlcl9waWM9 Jy1mUElDJworKwlsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYz0nLXN0YXRpYycKKysgICAgICAgIDs7 CisrICAgICAgIyBMYWhleSBGb3J0cmFuIDguMS4KKysgICAgICBsZjk1KikKKysJbHRfcHJvZ19j b21waWxlcl93bD0nLVdsLCcKKysJbHRfcHJvZ19jb21waWxlcl9waWM9Jy0tc2hhcmVkJworKwls dF9wcm9nX2NvbXBpbGVyX3N0YXRpYz0nLS1zdGF0aWMnCisrCTs7CisrICAgICAgcGdjYyogfCBw Z2Y3NyogfCBwZ2Y5MCogfCBwZ2Y5NSopCisrICAgICAgICAjIFBvcnRsYW5kIEdyb3VwIGNvbXBp bGVycyAoKm5vdCogdGhlIFBlbnRpdW0gZ2NjIGNvbXBpbGVyLAorKwkjIHdoaWNoIGxvb2tzIHRv IGJlIGEgZGVhZCBwcm9qZWN0KQorKwlsdF9wcm9nX2NvbXBpbGVyX3dsPSctV2wsJworKwlsdF9w cm9nX2NvbXBpbGVyX3BpYz0nLWZwaWMnCisrCWx0X3Byb2dfY29tcGlsZXJfc3RhdGljPSctQnN0 YXRpYycKKysgICAgICAgIDs7CisrICAgICAgY2NjKikKKysgICAgICAgIGx0X3Byb2dfY29tcGls ZXJfd2w9Jy1XbCwnCisrICAgICAgICAjIEFsbCBBbHBoYSBjb2RlIGlzIFBJQy4KKysgICAgICAg IGx0X3Byb2dfY29tcGlsZXJfc3RhdGljPSctbm9uX3NoYXJlZCcKKysgICAgICAgIDs7CisrICAg ICAgeGwqKQorKwkjIElCTSBYTCBDIDguMC9Gb3J0cmFuIDEwLjEgb24gUFBDCisrCWx0X3Byb2df Y29tcGlsZXJfd2w9Jy1XbCwnCisrCWx0X3Byb2dfY29tcGlsZXJfcGljPSctcXBpYycKKysJbHRf cHJvZ19jb21waWxlcl9zdGF0aWM9Jy1xc3RhdGljbGluaycKKysJOzsKKysgICAgICAqKQorKwlj YXNlIGAkQ0MgLVYgMj4mMSB8IHNlZCA1cWAgaW4KKysJKlN1blwgQyopCisrCSAgIyBTdW4gQyA1 LjkKKysJICBsdF9wcm9nX2NvbXBpbGVyX3BpYz0nLUtQSUMnCisrCSAgbHRfcHJvZ19jb21waWxl cl9zdGF0aWM9Jy1Cc3RhdGljJworKwkgIGx0X3Byb2dfY29tcGlsZXJfd2w9Jy1XbCwnCisrCSAg OzsKKysJKlN1blwgRiopCisrCSAgIyBTdW4gRm9ydHJhbiA4LjMgcGFzc2VzIGFsbCB1bnJlY29n bml6ZWQgZmxhZ3MgdG8gdGhlIGxpbmtlcgorKwkgIGx0X3Byb2dfY29tcGlsZXJfcGljPSctS1BJ QycKKysJICBsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYz0nLUJzdGF0aWMnCisrCSAgbHRfcHJvZ19j b21waWxlcl93bD0nJworKwkgIDs7CisrCWVzYWMKKysJOzsKKysgICAgICBlc2FjCisrICAgICAg OzsKKysKKysgICAgbmV3c29zNikKKysgICAgICBsdF9wcm9nX2NvbXBpbGVyX3BpYz0nLUtQSUMn CisrICAgICAgbHRfcHJvZ19jb21waWxlcl9zdGF0aWM9Jy1Cc3RhdGljJworKyAgICAgIDs7Cisr CisrICAgICpudG8qIHwgKnFueCopCisrICAgICAgIyBRTlggdXNlcyBHTlUgQysrLCBidXQgbmVl ZCB0byBkZWZpbmUgLXNoYXJlZCBvcHRpb24gdG9vLCBvdGhlcndpc2UKKysgICAgICAjIGl0IHdp bGwgY29yZWR1bXAuCisrICAgICAgbHRfcHJvZ19jb21waWxlcl9waWM9Jy1mUElDIC1zaGFyZWQn CisrICAgICAgOzsKKysKKysgICAgb3NmMyogfCBvc2Y0KiB8IG9zZjUqKQorKyAgICAgIGx0X3By b2dfY29tcGlsZXJfd2w9Jy1XbCwnCisrICAgICAgIyBBbGwgT1NGLzEgY29kZSBpcyBQSUMuCisr ICAgICAgbHRfcHJvZ19jb21waWxlcl9zdGF0aWM9Jy1ub25fc2hhcmVkJworKyAgICAgIDs7Cisr CisrICAgIHJkb3MqKQorKyAgICAgIGx0X3Byb2dfY29tcGlsZXJfc3RhdGljPSctbm9uX3NoYXJl ZCcKKysgICAgICA7OworKworKyAgICBzb2xhcmlzKikKKysgICAgICBsdF9wcm9nX2NvbXBpbGVy X3BpYz0nLUtQSUMnCisrICAgICAgbHRfcHJvZ19jb21waWxlcl9zdGF0aWM9Jy1Cc3RhdGljJwor KyAgICAgIGNhc2UgJGNjX2Jhc2VuYW1lIGluCisrICAgICAgZjc3KiB8IGY5MCogfCBmOTUqKQor KwlsdF9wcm9nX2NvbXBpbGVyX3dsPSctUW9wdGlvbiBsZCAnOzsKKysgICAgICAqKQorKwlsdF9w cm9nX2NvbXBpbGVyX3dsPSctV2wsJzs7CisrICAgICAgZXNhYworKyAgICAgIDs7CisrCisrICAg IHN1bm9zNCopCisrICAgICAgbHRfcHJvZ19jb21waWxlcl93bD0nLVFvcHRpb24gbGQgJworKyAg ICAgIGx0X3Byb2dfY29tcGlsZXJfcGljPSctUElDJworKyAgICAgIGx0X3Byb2dfY29tcGlsZXJf c3RhdGljPSctQnN0YXRpYycKKysgICAgICA7OworKworKyAgICBzeXN2NCB8IHN5c3Y0LjJ1dzIq IHwgc3lzdjQuMyopCisrICAgICAgbHRfcHJvZ19jb21waWxlcl93bD0nLVdsLCcKKysgICAgICBs dF9wcm9nX2NvbXBpbGVyX3BpYz0nLUtQSUMnCisrICAgICAgbHRfcHJvZ19jb21waWxlcl9zdGF0 aWM9Jy1Cc3RhdGljJworKyAgICAgIDs7CisrCisrICAgIHN5c3Y0Kk1QKikKKysgICAgICBpZiB0 ZXN0IC1kIC91c3IvbmVjIDt0aGVuCisrCWx0X3Byb2dfY29tcGlsZXJfcGljPSctS2NvbmZvcm1f cGljJworKwlsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYz0nLUJzdGF0aWMnCisrICAgICAgZmkKKysg ICAgICA7OworKworKyAgICBzeXN2NSogfCB1bml4d2FyZSogfCBzY28zLjJ2NSogfCBzY281djYq IHwgT3BlblVOSVgqKQorKyAgICAgIGx0X3Byb2dfY29tcGlsZXJfd2w9Jy1XbCwnCisrICAgICAg bHRfcHJvZ19jb21waWxlcl9waWM9Jy1LUElDJworKyAgICAgIGx0X3Byb2dfY29tcGlsZXJfc3Rh dGljPSctQnN0YXRpYycKKysgICAgICA7OworKworKyAgICB1bmljb3MqKQorKyAgICAgIGx0X3By b2dfY29tcGlsZXJfd2w9Jy1XbCwnCisrICAgICAgbHRfcHJvZ19jb21waWxlcl9jYW5fYnVpbGRf c2hhcmVkPW5vCisrICAgICAgOzsKKysKKysgICAgdXRzNCopCisrICAgICAgbHRfcHJvZ19jb21w aWxlcl9waWM9Jy1waWMnCisrICAgICAgbHRfcHJvZ19jb21waWxlcl9zdGF0aWM9Jy1Cc3RhdGlj JworKyAgICAgIDs7CisrCisrICAgICopCisrICAgICAgbHRfcHJvZ19jb21waWxlcl9jYW5fYnVp bGRfc2hhcmVkPW5vCisrICAgICAgOzsKKysgICAgZXNhYworKyAgZmkKKysKKytjYXNlICRob3N0 X29zIGluCisrICAjIEZvciBwbGF0Zm9ybXMgd2hpY2ggZG8gbm90IHN1cHBvcnQgUElDLCAtRFBJ QyBpcyBtZWFuaW5nbGVzczoKKysgICpkamdwcCopCisrICAgIGx0X3Byb2dfY29tcGlsZXJfcGlj PQorKyAgICA7OworKyAgKikKKysgICAgbHRfcHJvZ19jb21waWxlcl9waWM9IiRsdF9wcm9nX2Nv bXBpbGVyX3BpYyAtRFBJQyIKKysgICAgOzsKKytlc2FjCisreyAkYXNfZWNobyAiJGFzX21lOiRM SU5FTk86IHJlc3VsdDogJGx0X3Byb2dfY29tcGlsZXJfcGljIiA+JjUKKyskYXNfZWNobyAiJGx0 X3Byb2dfY29tcGlsZXJfcGljIiA+JjY7IH0KKysKKysKKysKKysKKysKKysKKysjCisrIyBDaGVj ayB0byBtYWtlIHN1cmUgdGhlIFBJQyBmbGFnIGFjdHVhbGx5IHdvcmtzLgorKyMKKytpZiB0ZXN0 IC1uICIkbHRfcHJvZ19jb21waWxlcl9waWMiOyB0aGVuCisrICB7ICRhc19lY2hvICIkYXNfbWU6 JExJTkVOTzogY2hlY2tpbmcgaWYgJGNvbXBpbGVyIFBJQyBmbGFnICRsdF9wcm9nX2NvbXBpbGVy X3BpYyB3b3JrcyIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgaWYgJGNvbXBpbGVyIFBJQyBm bGFnICRsdF9wcm9nX2NvbXBpbGVyX3BpYyB3b3Jrcy4uLiAiID4mNjsgfQorK2lmIHRlc3QgIiR7 bHRfY3ZfcHJvZ19jb21waWxlcl9waWNfd29ya3Mrc2V0fSIgPSBzZXQ7IHRoZW4KKysgICRhc19l Y2hvX24gIihjYWNoZWQpICIgPiY2CisrZWxzZQorKyAgbHRfY3ZfcHJvZ19jb21waWxlcl9waWNf d29ya3M9bm8KKysgICBhY19vdXRmaWxlPWNvbmZ0ZXN0LiRhY19vYmpleHQKKysgICBlY2hvICIk bHRfc2ltcGxlX2NvbXBpbGVfdGVzdF9jb2RlIiA+IGNvbmZ0ZXN0LiRhY19leHQKKysgICBsdF9j b21waWxlcl9mbGFnPSIkbHRfcHJvZ19jb21waWxlcl9waWMgLURQSUMiCisrICAgIyBJbnNlcnQg dGhlIG9wdGlvbiBlaXRoZXIgKDEpIGFmdGVyIHRoZSBsYXN0ICpGTEFHUyB2YXJpYWJsZSwgb3IK KysgICAjICgyKSBiZWZvcmUgYSB3b3JkIGNvbnRhaW5pbmcgImNvbmZ0ZXN0LiIsIG9yICgzKSBh dCB0aGUgZW5kLgorKyAgICMgTm90ZSB0aGF0ICRhY19jb21waWxlIGl0c2VsZiBkb2VzIG5vdCBj b250YWluIGJhY2tzbGFzaGVzIGFuZCBiZWdpbnMKKysgICAjIHdpdGggYSBkb2xsYXIgc2lnbiAo bm90IGEgaHlwaGVuKSwgc28gdGhlIGVjaG8gc2hvdWxkIHdvcmsgY29ycmVjdGx5LgorKyAgICMg VGhlIG9wdGlvbiBpcyByZWZlcmVuY2VkIHZpYSBhIHZhcmlhYmxlIHRvIGF2b2lkIGNvbmZ1c2lu ZyBzZWQuCisrICAgbHRfY29tcGlsZT1gZWNobyAiJGFjX2NvbXBpbGUiIHwgJFNFRCBcCisrICAg LWUgJ3M6LipGTEFHU31cezAsMVx9IDomJGx0X2NvbXBpbGVyX2ZsYWcgOjsgdCcgXAorKyAgIC1l ICdzOiBbXiBdKmNvbmZ0ZXN0XC46ICRsdF9jb21waWxlcl9mbGFnJjo7IHQnIFwKKysgICAtZSAn czokOiAkbHRfY29tcGlsZXJfZmxhZzonYAorKyAgIChldmFsIGVjaG8gIlwiXCRhc19tZTo5NzE4 OiAkbHRfY29tcGlsZVwiIiA+JjUpCisrICAgKGV2YWwgIiRsdF9jb21waWxlIiAyPmNvbmZ0ZXN0 LmVycikKKysgICBhY19zdGF0dXM9JD8KKysgICBjYXQgY29uZnRlc3QuZXJyID4mNQorKyAgIGVj aG8gIiRhc19tZTo5NzIyOiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKysgICBpZiAoZXhpdCAkYWNf c3RhdHVzKSAmJiB0ZXN0IC1zICIkYWNfb3V0ZmlsZSI7IHRoZW4KKysgICAgICMgVGhlIGNvbXBp bGVyIGNhbiBvbmx5IHdhcm4gYW5kIGlnbm9yZSB0aGUgb3B0aW9uIGlmIG5vdCByZWNvZ25pemVk CisrICAgICAjIFNvIHNheSBubyBpZiB0aGVyZSBhcmUgd2FybmluZ3Mgb3RoZXIgdGhhbiB0aGUg dXN1YWwgb3V0cHV0LgorKyAgICAgJEVDSE8gIlgkX2x0X2NvbXBpbGVyX2JvaWxlcnBsYXRlIiB8 ICRYc2VkIC1lICcvXiQvZCcgPmNvbmZ0ZXN0LmV4cAorKyAgICAgJFNFRCAnL14kL2Q7IC9eICor L2QnIGNvbmZ0ZXN0LmVyciA+Y29uZnRlc3QuZXIyCisrICAgICBpZiB0ZXN0ICEgLXMgY29uZnRl c3QuZXIyIHx8IGRpZmYgY29uZnRlc3QuZXhwIGNvbmZ0ZXN0LmVyMiA+L2Rldi9udWxsOyB0aGVu CisrICAgICAgIGx0X2N2X3Byb2dfY29tcGlsZXJfcGljX3dvcmtzPXllcworKyAgICAgZmkKKysg ICBmaQorKyAgICRSTSBjb25mdGVzdCoKKysKKytmaQorK3sgJGFzX2VjaG8gIiRhc19tZTokTElO RU5POiByZXN1bHQ6ICRsdF9jdl9wcm9nX2NvbXBpbGVyX3BpY193b3JrcyIgPiY1CisrJGFzX2Vj aG8gIiRsdF9jdl9wcm9nX2NvbXBpbGVyX3BpY193b3JrcyIgPiY2OyB9CisrCisraWYgdGVzdCB4 IiRsdF9jdl9wcm9nX2NvbXBpbGVyX3BpY193b3JrcyIgPSB4eWVzOyB0aGVuCisrICAgIGNhc2Ug JGx0X3Byb2dfY29tcGlsZXJfcGljIGluCisrICAgICAiIiB8ICIgIiopIDs7CisrICAgICAqKSBs dF9wcm9nX2NvbXBpbGVyX3BpYz0iICRsdF9wcm9nX2NvbXBpbGVyX3BpYyIgOzsKKysgICAgIGVz YWMKKytlbHNlCisrICAgIGx0X3Byb2dfY29tcGlsZXJfcGljPQorKyAgICAgbHRfcHJvZ19jb21w aWxlcl9jYW5fYnVpbGRfc2hhcmVkPW5vCisrZmkKKysKKytmaQorKworKworKworKworKworKwor KyMKKysjIENoZWNrIHRvIG1ha2Ugc3VyZSB0aGUgc3RhdGljIGZsYWcgYWN0dWFsbHkgd29ya3Mu CisrIworK3dsPSRsdF9wcm9nX2NvbXBpbGVyX3dsIGV2YWwgbHRfdG1wX3N0YXRpY19mbGFnPVwi JGx0X3Byb2dfY29tcGlsZXJfc3RhdGljXCIKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzog Y2hlY2tpbmcgaWYgJGNvbXBpbGVyIHN0YXRpYyBmbGFnICRsdF90bXBfc3RhdGljX2ZsYWcgd29y a3MiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIGlmICRjb21waWxlciBzdGF0aWMgZmxhZyAk bHRfdG1wX3N0YXRpY19mbGFnIHdvcmtzLi4uICIgPiY2OyB9CisraWYgdGVzdCAiJHtsdF9jdl9w cm9nX2NvbXBpbGVyX3N0YXRpY193b3JrcytzZXR9IiA9IHNldDsgdGhlbgorKyAgJGFzX2VjaG9f biAiKGNhY2hlZCkgIiA+JjYKKytlbHNlCisrICBsdF9jdl9wcm9nX2NvbXBpbGVyX3N0YXRpY193 b3Jrcz1ubworKyAgIHNhdmVfTERGTEFHUz0iJExERkxBR1MiCisrICAgTERGTEFHUz0iJExERkxB R1MgJGx0X3RtcF9zdGF0aWNfZmxhZyIKKysgICBlY2hvICIkbHRfc2ltcGxlX2xpbmtfdGVzdF9j b2RlIiA+IGNvbmZ0ZXN0LiRhY19leHQKKysgICBpZiAoZXZhbCAkYWNfbGluayAyPmNvbmZ0ZXN0 LmVycikgJiYgdGVzdCAtcyBjb25mdGVzdCRhY19leGVleHQ7IHRoZW4KKysgICAgICMgVGhlIGxp bmtlciBjYW4gb25seSB3YXJuIGFuZCBpZ25vcmUgdGhlIG9wdGlvbiBpZiBub3QgcmVjb2duaXpl ZAorKyAgICAgIyBTbyBzYXkgbm8gaWYgdGhlcmUgYXJlIHdhcm5pbmdzCisrICAgICBpZiB0ZXN0 IC1zIGNvbmZ0ZXN0LmVycjsgdGhlbgorKyAgICAgICAjIEFwcGVuZCBhbnkgZXJyb3JzIHRvIHRo ZSBjb25maWcubG9nLgorKyAgICAgICBjYXQgY29uZnRlc3QuZXJyIDE+JjUKKysgICAgICAgJEVD SE8gIlgkX2x0X2xpbmtlcl9ib2lsZXJwbGF0ZSIgfCAkWHNlZCAtZSAnL14kL2QnID4gY29uZnRl c3QuZXhwCisrICAgICAgICRTRUQgJy9eJC9kOyAvXiAqKy9kJyBjb25mdGVzdC5lcnIgPmNvbmZ0 ZXN0LmVyMgorKyAgICAgICBpZiBkaWZmIGNvbmZ0ZXN0LmV4cCBjb25mdGVzdC5lcjIgPi9kZXYv bnVsbDsgdGhlbgorKyAgICAgICAgIGx0X2N2X3Byb2dfY29tcGlsZXJfc3RhdGljX3dvcmtzPXll cworKyAgICAgICBmaQorKyAgICAgZWxzZQorKyAgICAgICBsdF9jdl9wcm9nX2NvbXBpbGVyX3N0 YXRpY193b3Jrcz15ZXMKKysgICAgIGZpCisrICAgZmkKKysgICAkUk0gLXIgY29uZnRlc3QqCisr ICAgTERGTEFHUz0iJHNhdmVfTERGTEFHUyIKKysKKytmaQorK3sgJGFzX2VjaG8gIiRhc19tZTok TElORU5POiByZXN1bHQ6ICRsdF9jdl9wcm9nX2NvbXBpbGVyX3N0YXRpY193b3JrcyIgPiY1Cisr JGFzX2VjaG8gIiRsdF9jdl9wcm9nX2NvbXBpbGVyX3N0YXRpY193b3JrcyIgPiY2OyB9CisrCisr aWYgdGVzdCB4IiRsdF9jdl9wcm9nX2NvbXBpbGVyX3N0YXRpY193b3JrcyIgPSB4eWVzOyB0aGVu CisrICAgIDoKKytlbHNlCisrICAgIGx0X3Byb2dfY29tcGlsZXJfc3RhdGljPQorK2ZpCisrCisr CisrCisrCisrCisrCisrCisrICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcg aWYgJGNvbXBpbGVyIHN1cHBvcnRzIC1jIC1vIGZpbGUuJGFjX29iamV4dCIgPiY1CisrJGFzX2Vj aG9fbiAiY2hlY2tpbmcgaWYgJGNvbXBpbGVyIHN1cHBvcnRzIC1jIC1vIGZpbGUuJGFjX29iamV4 dC4uLiAiID4mNjsgfQorK2lmIHRlc3QgIiR7bHRfY3ZfcHJvZ19jb21waWxlcl9jX28rc2V0fSIg PSBzZXQ7IHRoZW4KKysgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2CisrZWxzZQorKyAgbHRf Y3ZfcHJvZ19jb21waWxlcl9jX289bm8KKysgICAkUk0gLXIgY29uZnRlc3QgMj4vZGV2L251bGwK KysgICBta2RpciBjb25mdGVzdAorKyAgIGNkIGNvbmZ0ZXN0CisrICAgbWtkaXIgb3V0CisrICAg ZWNobyAiJGx0X3NpbXBsZV9jb21waWxlX3Rlc3RfY29kZSIgPiBjb25mdGVzdC4kYWNfZXh0Cisr CisrICAgbHRfY29tcGlsZXJfZmxhZz0iLW8gb3V0L2NvbmZ0ZXN0Mi4kYWNfb2JqZXh0IgorKyAg ICMgSW5zZXJ0IHRoZSBvcHRpb24gZWl0aGVyICgxKSBhZnRlciB0aGUgbGFzdCAqRkxBR1MgdmFy aWFibGUsIG9yCisrICAgIyAoMikgYmVmb3JlIGEgd29yZCBjb250YWluaW5nICJjb25mdGVzdC4i LCBvciAoMykgYXQgdGhlIGVuZC4KKysgICAjIE5vdGUgdGhhdCAkYWNfY29tcGlsZSBpdHNlbGYg ZG9lcyBub3QgY29udGFpbiBiYWNrc2xhc2hlcyBhbmQgYmVnaW5zCisrICAgIyB3aXRoIGEgZG9s bGFyIHNpZ24gKG5vdCBhIGh5cGhlbiksIHNvIHRoZSBlY2hvIHNob3VsZCB3b3JrIGNvcnJlY3Rs eS4KKysgICBsdF9jb21waWxlPWBlY2hvICIkYWNfY29tcGlsZSIgfCAkU0VEIFwKKysgICAtZSAn czouKkZMQUdTfVx7MCwxXH0gOiYkbHRfY29tcGlsZXJfZmxhZyA6OyB0JyBcCisrICAgLWUgJ3M6 IFteIF0qY29uZnRlc3RcLjogJGx0X2NvbXBpbGVyX2ZsYWcmOjsgdCcgXAorKyAgIC1lICdzOiQ6 ICRsdF9jb21waWxlcl9mbGFnOidgCisrICAgKGV2YWwgZWNobyAiXCJcJGFzX21lOjk4MjM6ICRs dF9jb21waWxlXCIiID4mNSkKKysgICAoZXZhbCAiJGx0X2NvbXBpbGUiIDI+b3V0L2NvbmZ0ZXN0 LmVycikKKysgICBhY19zdGF0dXM9JD8KKysgICBjYXQgb3V0L2NvbmZ0ZXN0LmVyciA+JjUKKysg ICBlY2hvICIkYXNfbWU6OTgyNzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisrICAgaWYgKGV4aXQg JGFjX3N0YXR1cykgJiYgdGVzdCAtcyBvdXQvY29uZnRlc3QyLiRhY19vYmpleHQKKysgICB0aGVu CisrICAgICAjIFRoZSBjb21waWxlciBjYW4gb25seSB3YXJuIGFuZCBpZ25vcmUgdGhlIG9wdGlv biBpZiBub3QgcmVjb2duaXplZAorKyAgICAgIyBTbyBzYXkgbm8gaWYgdGhlcmUgYXJlIHdhcm5p bmdzCisrICAgICAkRUNITyAiWCRfbHRfY29tcGlsZXJfYm9pbGVycGxhdGUiIHwgJFhzZWQgLWUg Jy9eJC9kJyA+IG91dC9jb25mdGVzdC5leHAKKysgICAgICRTRUQgJy9eJC9kOyAvXiAqKy9kJyBv dXQvY29uZnRlc3QuZXJyID5vdXQvY29uZnRlc3QuZXIyCisrICAgICBpZiB0ZXN0ICEgLXMgb3V0 L2NvbmZ0ZXN0LmVyMiB8fCBkaWZmIG91dC9jb25mdGVzdC5leHAgb3V0L2NvbmZ0ZXN0LmVyMiA+ L2Rldi9udWxsOyB0aGVuCisrICAgICAgIGx0X2N2X3Byb2dfY29tcGlsZXJfY19vPXllcworKyAg ICAgZmkKKysgICBmaQorKyAgIGNobW9kIHUrdyAuIDI+JjUKKysgICAkUk0gY29uZnRlc3QqCisr ICAgIyBTR0kgQysrIGNvbXBpbGVyIHdpbGwgY3JlYXRlIGRpcmVjdG9yeSBvdXQvaWlfZmlsZXMv IGZvcgorKyAgICMgdGVtcGxhdGUgaW5zdGFudGlhdGlvbgorKyAgIHRlc3QgLWQgb3V0L2lpX2Zp bGVzICYmICRSTSBvdXQvaWlfZmlsZXMvKiAmJiBybWRpciBvdXQvaWlfZmlsZXMKKysgICAkUk0g b3V0LyogJiYgcm1kaXIgb3V0CisrICAgY2QgLi4KKysgICAkUk0gLXIgY29uZnRlc3QKKysgICAk Uk0gY29uZnRlc3QqCisrCisrZmkKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0 OiAkbHRfY3ZfcHJvZ19jb21waWxlcl9jX28iID4mNQorKyRhc19lY2hvICIkbHRfY3ZfcHJvZ19j b21waWxlcl9jX28iID4mNjsgfQorKworKworKworKworKworKworKyAgeyAkYXNfZWNobyAiJGFz X21lOiRMSU5FTk86IGNoZWNraW5nIGlmICRjb21waWxlciBzdXBwb3J0cyAtYyAtbyBmaWxlLiRh Y19vYmpleHQiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIGlmICRjb21waWxlciBzdXBwb3J0 cyAtYyAtbyBmaWxlLiRhY19vYmpleHQuLi4gIiA+JjY7IH0KKytpZiB0ZXN0ICIke2x0X2N2X3By b2dfY29tcGlsZXJfY19vK3NldH0iID0gc2V0OyB0aGVuCisrICAkYXNfZWNob19uICIoY2FjaGVk KSAiID4mNgorK2Vsc2UKKysgIGx0X2N2X3Byb2dfY29tcGlsZXJfY19vPW5vCisrICAgJFJNIC1y IGNvbmZ0ZXN0IDI+L2Rldi9udWxsCisrICAgbWtkaXIgY29uZnRlc3QKKysgICBjZCBjb25mdGVz dAorKyAgIG1rZGlyIG91dAorKyAgIGVjaG8gIiRsdF9zaW1wbGVfY29tcGlsZV90ZXN0X2NvZGUi ID4gY29uZnRlc3QuJGFjX2V4dAorKworKyAgIGx0X2NvbXBpbGVyX2ZsYWc9Ii1vIG91dC9jb25m dGVzdDIuJGFjX29iamV4dCIKKysgICAjIEluc2VydCB0aGUgb3B0aW9uIGVpdGhlciAoMSkgYWZ0 ZXIgdGhlIGxhc3QgKkZMQUdTIHZhcmlhYmxlLCBvcgorKyAgICMgKDIpIGJlZm9yZSBhIHdvcmQg Y29udGFpbmluZyAiY29uZnRlc3QuIiwgb3IgKDMpIGF0IHRoZSBlbmQuCisrICAgIyBOb3RlIHRo YXQgJGFjX2NvbXBpbGUgaXRzZWxmIGRvZXMgbm90IGNvbnRhaW4gYmFja3NsYXNoZXMgYW5kIGJl Z2lucworKyAgICMgd2l0aCBhIGRvbGxhciBzaWduIChub3QgYSBoeXBoZW4pLCBzbyB0aGUgZWNo byBzaG91bGQgd29yayBjb3JyZWN0bHkuCisrICAgbHRfY29tcGlsZT1gZWNobyAiJGFjX2NvbXBp bGUiIHwgJFNFRCBcCisrICAgLWUgJ3M6LipGTEFHU31cezAsMVx9IDomJGx0X2NvbXBpbGVyX2Zs YWcgOjsgdCcgXAorKyAgIC1lICdzOiBbXiBdKmNvbmZ0ZXN0XC46ICRsdF9jb21waWxlcl9mbGFn Jjo7IHQnIFwKKysgICAtZSAnczokOiAkbHRfY29tcGlsZXJfZmxhZzonYAorKyAgIChldmFsIGVj aG8gIlwiXCRhc19tZTo5ODc4OiAkbHRfY29tcGlsZVwiIiA+JjUpCisrICAgKGV2YWwgIiRsdF9j b21waWxlIiAyPm91dC9jb25mdGVzdC5lcnIpCisrICAgYWNfc3RhdHVzPSQ/CisrICAgY2F0IG91 dC9jb25mdGVzdC5lcnIgPiY1CisrICAgZWNobyAiJGFzX21lOjk4ODI6IFwkPyA9ICRhY19zdGF0 dXMiID4mNQorKyAgIGlmIChleGl0ICRhY19zdGF0dXMpICYmIHRlc3QgLXMgb3V0L2NvbmZ0ZXN0 Mi4kYWNfb2JqZXh0CisrICAgdGhlbgorKyAgICAgIyBUaGUgY29tcGlsZXIgY2FuIG9ubHkgd2Fy biBhbmQgaWdub3JlIHRoZSBvcHRpb24gaWYgbm90IHJlY29nbml6ZWQKKysgICAgICMgU28gc2F5 IG5vIGlmIHRoZXJlIGFyZSB3YXJuaW5ncworKyAgICAgJEVDSE8gIlgkX2x0X2NvbXBpbGVyX2Jv aWxlcnBsYXRlIiB8ICRYc2VkIC1lICcvXiQvZCcgPiBvdXQvY29uZnRlc3QuZXhwCisrICAgICAk U0VEICcvXiQvZDsgL14gKisvZCcgb3V0L2NvbmZ0ZXN0LmVyciA+b3V0L2NvbmZ0ZXN0LmVyMgor KyAgICAgaWYgdGVzdCAhIC1zIG91dC9jb25mdGVzdC5lcjIgfHwgZGlmZiBvdXQvY29uZnRlc3Qu ZXhwIG91dC9jb25mdGVzdC5lcjIgPi9kZXYvbnVsbDsgdGhlbgorKyAgICAgICBsdF9jdl9wcm9n X2NvbXBpbGVyX2Nfbz15ZXMKKysgICAgIGZpCisrICAgZmkKKysgICBjaG1vZCB1K3cgLiAyPiY1 CisrICAgJFJNIGNvbmZ0ZXN0KgorKyAgICMgU0dJIEMrKyBjb21waWxlciB3aWxsIGNyZWF0ZSBk aXJlY3Rvcnkgb3V0L2lpX2ZpbGVzLyBmb3IKKysgICAjIHRlbXBsYXRlIGluc3RhbnRpYXRpb24K KysgICB0ZXN0IC1kIG91dC9paV9maWxlcyAmJiAkUk0gb3V0L2lpX2ZpbGVzLyogJiYgcm1kaXIg b3V0L2lpX2ZpbGVzCisrICAgJFJNIG91dC8qICYmIHJtZGlyIG91dAorKyAgIGNkIC4uCisrICAg JFJNIC1yIGNvbmZ0ZXN0CisrICAgJFJNIGNvbmZ0ZXN0KgorKworK2ZpCisreyAkYXNfZWNobyAi JGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGx0X2N2X3Byb2dfY29tcGlsZXJfY19vIiA+JjUKKysk YXNfZWNobyAiJGx0X2N2X3Byb2dfY29tcGlsZXJfY19vIiA+JjY7IH0KKysKKysKKysKKysKKyto YXJkX2xpbmtzPSJub3R0ZXN0ZWQiCisraWYgdGVzdCAiJGx0X2N2X3Byb2dfY29tcGlsZXJfY19v IiA9IG5vICYmIHRlc3QgIiRuZWVkX2xvY2tzIiAhPSBubzsgdGhlbgorKyAgIyBkbyBub3Qgb3Zl cndyaXRlIHRoZSB2YWx1ZSBvZiBuZWVkX2xvY2tzIHByb3ZpZGVkIGJ5IHRoZSB1c2VyCisrICB7 ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgaWYgd2UgY2FuIGxvY2sgd2l0aCBo YXJkIGxpbmtzIiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyBpZiB3ZSBjYW4gbG9jayB3aXRo IGhhcmQgbGlua3MuLi4gIiA+JjY7IH0KKysgIGhhcmRfbGlua3M9eWVzCisrICAkUk0gY29uZnRl c3QqCisrICBsbiBjb25mdGVzdC5hIGNvbmZ0ZXN0LmIgMj4vZGV2L251bGwgJiYgaGFyZF9saW5r cz1ubworKyAgdG91Y2ggY29uZnRlc3QuYQorKyAgbG4gY29uZnRlc3QuYSBjb25mdGVzdC5iIDI+ JjUgfHwgaGFyZF9saW5rcz1ubworKyAgbG4gY29uZnRlc3QuYSBjb25mdGVzdC5iIDI+L2Rldi9u dWxsICYmIGhhcmRfbGlua3M9bm8KKysgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1 bHQ6ICRoYXJkX2xpbmtzIiA+JjUKKyskYXNfZWNobyAiJGhhcmRfbGlua3MiID4mNjsgfQorKyAg aWYgdGVzdCAiJGhhcmRfbGlua3MiID0gbm87IHRoZW4KKysgICAgeyAkYXNfZWNobyAiJGFzX21l OiRMSU5FTk86IFdBUk5JTkc6IFxgJENDJyBkb2VzIG5vdCBzdXBwb3J0IFxgLWMgLW8nLCBzbyBc YG1ha2UgLWonIG1heSBiZSB1bnNhZmUiID4mNQorKyRhc19lY2hvICIkYXNfbWU6IFdBUk5JTkc6 IFxgJENDJyBkb2VzIG5vdCBzdXBwb3J0IFxgLWMgLW8nLCBzbyBcYG1ha2UgLWonIG1heSBiZSB1 bnNhZmUiID4mMjt9CisrICAgIG5lZWRfbG9ja3M9d2FybgorKyAgZmkKKytlbHNlCisrICBuZWVk X2xvY2tzPW5vCisrZmkKKysKKysKKysKKysKKysKKysKKysgIHsgJGFzX2VjaG8gIiRhc19tZTok TElORU5POiBjaGVja2luZyB3aGV0aGVyIHRoZSAkY29tcGlsZXIgbGlua2VyICgkTEQpIHN1cHBv cnRzIHNoYXJlZCBsaWJyYXJpZXMiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIHdoZXRoZXIg dGhlICRjb21waWxlciBsaW5rZXIgKCRMRCkgc3VwcG9ydHMgc2hhcmVkIGxpYnJhcmllcy4uLiAi ID4mNjsgfQorKworKyAgcnVucGF0aF92YXI9CisrICBhbGxvd191bmRlZmluZWRfZmxhZz0KKysg IGFsd2F5c19leHBvcnRfc3ltYm9scz1ubworKyAgYXJjaGl2ZV9jbWRzPQorKyAgYXJjaGl2ZV9l eHBzeW1fY21kcz0KKysgIGNvbXBpbGVyX25lZWRzX29iamVjdD1ubworKyAgZW5hYmxlX3NoYXJl ZF93aXRoX3N0YXRpY19ydW50aW1lcz1ubworKyAgZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjPQor KyAgZXhwb3J0X3N5bWJvbHNfY21kcz0nJE5NICRsaWJvYmpzICRjb252ZW5pZW5jZSB8ICRnbG9i YWxfc3ltYm9sX3BpcGUgfCAkU0VEICdcJydzLy4qIC8vJ1wnJyB8IHNvcnQgfCB1bmlxID4gJGV4 cG9ydF9zeW1ib2xzJworKyAgaGFyZGNvZGVfYXV0b21hdGljPW5vCisrICBoYXJkY29kZV9kaXJl Y3Q9bm8KKysgIGhhcmRjb2RlX2RpcmVjdF9hYnNvbHV0ZT1ubworKyAgaGFyZGNvZGVfbGliZGly X2ZsYWdfc3BlYz0KKysgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfbGQ9CisrICBoYXJkY29k ZV9saWJkaXJfc2VwYXJhdG9yPQorKyAgaGFyZGNvZGVfbWludXNfTD1ubworKyAgaGFyZGNvZGVf c2hsaWJwYXRoX3Zhcj11bnN1cHBvcnRlZAorKyAgaW5oZXJpdF9ycGF0aD1ubworKyAgbGlua19h bGxfZGVwbGlicz11bmtub3duCisrICBtb2R1bGVfY21kcz0KKysgIG1vZHVsZV9leHBzeW1fY21k cz0KKysgIG9sZF9hcmNoaXZlX2Zyb21fbmV3X2NtZHM9CisrICBvbGRfYXJjaGl2ZV9mcm9tX2V4 cHN5bXNfY21kcz0KKysgIHRocmVhZF9zYWZlX2ZsYWdfc3BlYz0KKysgIHdob2xlX2FyY2hpdmVf ZmxhZ19zcGVjPQorKyAgIyBpbmNsdWRlX2V4cHN5bXMgc2hvdWxkIGJlIGEgbGlzdCBvZiBzcGFj ZS1zZXBhcmF0ZWQgc3ltYm9scyB0byBiZSAqYWx3YXlzKgorKyAgIyBpbmNsdWRlZCBpbiB0aGUg c3ltYm9sIGxpc3QKKysgIGluY2x1ZGVfZXhwc3ltcz0KKysgICMgZXhjbHVkZV9leHBzeW1zIGNh biBiZSBhbiBleHRlbmRlZCByZWdleHAgb2Ygc3ltYm9scyB0byBleGNsdWRlCisrICAjIGl0IHdp bGwgYmUgd3JhcHBlZCBieSBgICgnIGFuZCBgKSQnLCBzbyBvbmUgbXVzdCBub3QgbWF0Y2ggYmVn aW5uaW5nIG9yCisrICAjIGVuZCBvZiBsaW5lLiAgRXhhbXBsZTogYGF8YmN8LipkLionIHdpbGwg ZXhjbHVkZSB0aGUgc3ltYm9scyBgYScgYW5kIGBiYycsCisrICAjIGFzIHdlbGwgYXMgYW55IHN5 bWJvbCB0aGF0IGNvbnRhaW5zIGBkJy4KKysgIGV4Y2x1ZGVfZXhwc3ltcz0nX0dMT0JBTF9PRkZT RVRfVEFCTEVffF9HTE9CQUxfX0ZbSURdXy4qJworKyAgIyBBbHRob3VnaCBfR0xPQkFMX09GRlNF VF9UQUJMRV8gaXMgYSB2YWxpZCBzeW1ib2wgQyBuYW1lLCBtb3N0IGEub3V0CisrICAjIHBsYXRm b3JtcyAoYWIpdXNlIGl0IGluIFBJQyBjb2RlLCBidXQgdGhlaXIgbGlua2VycyBnZXQgY29uZnVz ZWQgaWYKKysgICMgdGhlIHN5bWJvbCBpcyBleHBsaWNpdGx5IHJlZmVyZW5jZWQuICBTaW5jZSBw b3J0YWJsZSBjb2RlIGNhbm5vdAorKyAgIyByZWx5IG9uIHRoaXMgc3ltYm9sIG5hbWUsIGl0J3Mg cHJvYmFibHkgZmluZSB0byBuZXZlciBpbmNsdWRlIGl0IGluCisrICAjIHByZWxvYWRlZCBzeW1i b2wgdGFibGVzLgorKyAgIyBFeGNsdWRlIHNoYXJlZCBsaWJyYXJ5IGluaXRpYWxpemF0aW9uL2Zp bmFsaXphdGlvbiBzeW1ib2xzLgorKyAgZXh0cmFjdF9leHBzeW1zX2NtZHM9CisrCisrICBjYXNl ICRob3N0X29zIGluCisrICBjeWd3aW4qIHwgbWluZ3cqIHwgcHczMiogfCBjZWdjYyopCisrICAg ICMgRklYTUU6IHRoZSBNU1ZDKysgcG9ydCBoYXNuJ3QgYmVlbiB0ZXN0ZWQgaW4gYSBsb29vb25n IHRpbWUKKysgICAgIyBXaGVuIG5vdCB1c2luZyBnY2MsIHdlIGN1cnJlbnRseSBhc3N1bWUgdGhh dCB3ZSBhcmUgdXNpbmcKKysgICAgIyBNaWNyb3NvZnQgVmlzdWFsIEMrKy4KKysgICAgaWYgdGVz dCAiJEdDQyIgIT0geWVzOyB0aGVuCisrICAgICAgd2l0aF9nbnVfbGQ9bm8KKysgICAgZmkKKysg ICAgOzsKKysgIGludGVyaXgqKQorKyAgICAjIHdlIGp1c3QgaG9wZS9hc3N1bWUgdGhpcyBpcyBn Y2MgYW5kIG5vdCBjODkgKD0gTVNWQysrKQorKyAgICB3aXRoX2dudV9sZD15ZXMKKysgICAgOzsK KysgIG9wZW5ic2QqKQorKyAgICB3aXRoX2dudV9sZD1ubworKyAgICA7OworKyAgZXNhYworKwor KyAgbGRfc2hsaWJzPXllcworKyAgaWYgdGVzdCAiJHdpdGhfZ251X2xkIiA9IHllczsgdGhlbgor KyAgICAjIElmIGFyY2hpdmVfY21kcyBydW5zIExELCBub3QgQ0MsIHdsYXJjIHNob3VsZCBiZSBl bXB0eQorKyAgICB3bGFyYz0nJHt3bH0nCisrCisrICAgICMgU2V0IHNvbWUgZGVmYXVsdHMgZm9y IEdOVSBsZCB3aXRoIHNoYXJlZCBsaWJyYXJ5IHN1cHBvcnQuIFRoZXNlCisrICAgICMgYXJlIHJl c2V0IGxhdGVyIGlmIHNoYXJlZCBsaWJyYXJpZXMgYXJlIG5vdCBzdXBwb3J0ZWQuIFB1dHRpbmcg dGhlbQorKyAgICAjIGhlcmUgYWxsb3dzIHRoZW0gdG8gYmUgb3ZlcnJpZGRlbiBpZiBuZWNlc3Nh cnkuCisrICAgIHJ1bnBhdGhfdmFyPUxEX1JVTl9QQVRICisrICAgIGhhcmRjb2RlX2xpYmRpcl9m bGFnX3NwZWM9JyR7d2x9LXJwYXRoICR7d2x9JGxpYmRpcicKKysgICAgZXhwb3J0X2R5bmFtaWNf ZmxhZ19zcGVjPScke3dsfS0tZXhwb3J0LWR5bmFtaWMnCisrICAgICMgYW5jaWVudCBHTlUgbGQg ZGlkbid0IHN1cHBvcnQgLS13aG9sZS1hcmNoaXZlIGV0LiBhbC4KKysgICAgaWYgJExEIC0taGVs cCAyPiYxIHwgJEdSRVAgJ25vLXdob2xlLWFyY2hpdmUnID4gL2Rldi9udWxsOyB0aGVuCisrICAg ICAgd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWM9IiR3bGFyYyInLS13aG9sZS1hcmNoaXZlJGNvbnZl bmllbmNlICciJHdsYXJjIictLW5vLXdob2xlLWFyY2hpdmUnCisrICAgIGVsc2UKKysgICAgICB3 aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYz0KKysgICAgZmkKKysgICAgc3VwcG9ydHNfYW5vbl92ZXJz aW9uaW5nPW5vCisrICAgIGNhc2UgYCRMRCAtdiAyPiYxYCBpbgorKyAgICAgICpcIFswMV0uKiB8 ICpcIDIuWzAtOV0uKiB8ICpcIDIuMTAuKikgOzsgIyBjYXRjaCB2ZXJzaW9ucyA8IDIuMTEKKysg ICAgICAqXCAyLjExLjkzLjAuMlwgKikgc3VwcG9ydHNfYW5vbl92ZXJzaW9uaW5nPXllcyA7OyAj IFJINy4zIC4uLgorKyAgICAgICpcIDIuMTEuOTIuMC4xMlwgKikgc3VwcG9ydHNfYW5vbl92ZXJz aW9uaW5nPXllcyA7OyAjIE1hbmRyYWtlIDguMiAuLi4KKysgICAgICAqXCAyLjExLiopIDs7ICMg b3RoZXIgMi4xMSB2ZXJzaW9ucworKyAgICAgICopIHN1cHBvcnRzX2Fub25fdmVyc2lvbmluZz15 ZXMgOzsKKysgICAgZXNhYworKworKyAgICAjIFNlZSBpZiBHTlUgbGQgc3VwcG9ydHMgc2hhcmVk IGxpYnJhcmllcy4KKysgICAgY2FzZSAkaG9zdF9vcyBpbgorKyAgICBhaXhbMy05XSopCisrICAg ICAgIyBPbiBBSVgvUFBDLCB0aGUgR05VIGxpbmtlciBpcyB2ZXJ5IGJyb2tlbgorKyAgICAgIGlm IHRlc3QgIiRob3N0X2NwdSIgIT0gaWE2NDsgdGhlbgorKwlsZF9zaGxpYnM9bm8KKysJY2F0IDw8 X0xUX0VPRiAxPiYyCisrCisrKioqIFdhcm5pbmc6IHRoZSBHTlUgbGlua2VyLCBhdCBsZWFzdCB1 cCB0byByZWxlYXNlIDIuOS4xLCBpcyByZXBvcnRlZAorKyoqKiB0byBiZSB1bmFibGUgdG8gcmVs aWFibHkgY3JlYXRlIHNoYXJlZCBsaWJyYXJpZXMgb24gQUlYLgorKyoqKiBUaGVyZWZvcmUsIGxp YnRvb2wgaXMgZGlzYWJsaW5nIHNoYXJlZCBsaWJyYXJpZXMgc3VwcG9ydC4gIElmIHlvdQorKyoq KiByZWFsbHkgY2FyZSBmb3Igc2hhcmVkIGxpYnJhcmllcywgeW91IG1heSB3YW50IHRvIG1vZGlm eSB5b3VyIFBBVEgKKysqKiogc28gdGhhdCBhIG5vbi1HTlUgbGlua2VyIGlzIGZvdW5kLCBhbmQg dGhlbiByZXN0YXJ0LgorKworK19MVF9FT0YKKysgICAgICBmaQorKyAgICAgIDs7CisrCisrICAg IGFtaWdhb3MqKQorKyAgICAgIGNhc2UgJGhvc3RfY3B1IGluCisrICAgICAgcG93ZXJwYykKKysg ICAgICAgICAgICAjIHNlZSBjb21tZW50IGFib3V0IEFtaWdhT1M0IC5zbyBzdXBwb3J0CisrICAg ICAgICAgICAgYXJjaGl2ZV9jbWRzPSckQ0MgLXNoYXJlZCAkbGlib2JqcyAkZGVwbGlicyAkY29t cGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR3bCRzb25hbWUgLW8gJGxpYicKKysgICAgICAgICAg ICBhcmNoaXZlX2V4cHN5bV9jbWRzPScnCisrICAgICAgICA7OworKyAgICAgIG02OGspCisrICAg ICAgICAgICAgYXJjaGl2ZV9jbWRzPSckUk0gJG91dHB1dF9vYmpkaXIvYTJpeGxpYnJhcnkuZGF0 YX4kRUNITyAiI2RlZmluZSBOQU1FICRsaWJuYW1lIiA+ICRvdXRwdXRfb2JqZGlyL2EyaXhsaWJy YXJ5LmRhdGF+JEVDSE8gIiNkZWZpbmUgTElCUkFSWV9JRCAxIiA+PiAkb3V0cHV0X29iamRpci9h Mml4bGlicmFyeS5kYXRhfiRFQ0hPICIjZGVmaW5lIFZFUlNJT04gJG1ham9yIiA+PiAkb3V0cHV0 X29iamRpci9hMml4bGlicmFyeS5kYXRhfiRFQ0hPICIjZGVmaW5lIFJFVklTSU9OICRyZXZpc2lv biIgPj4gJG91dHB1dF9vYmpkaXIvYTJpeGxpYnJhcnkuZGF0YX4kQVIgJEFSX0ZMQUdTICRsaWIg JGxpYm9ianN+JFJBTkxJQiAkbGlifihjZCAkb3V0cHV0X29iamRpciAmJiBhMml4bGlicmFyeSAt MzIpJworKyAgICAgICAgICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWM9Jy1MJGxpYmRpcicK KysgICAgICAgICAgICBoYXJkY29kZV9taW51c19MPXllcworKyAgICAgICAgOzsKKysgICAgICBl c2FjCisrICAgICAgOzsKKysKKysgICAgYmVvcyopCisrICAgICAgaWYgJExEIC0taGVscCAyPiYx IHwgJEdSRVAgJzogc3VwcG9ydGVkIHRhcmdldHM6LiogZWxmJyA+IC9kZXYvbnVsbDsgdGhlbgor KwlhbGxvd191bmRlZmluZWRfZmxhZz11bnN1cHBvcnRlZAorKwkjIEpvc2VwaCBCZWNrZW5iYWNo IDxqcmIzQGJlc3QuY29tPiBzYXlzIHNvbWUgcmVsZWFzZXMgb2YgZ2NjCisrCSMgc3VwcG9ydCAt LXVuZGVmaW5lZC4gIFRoaXMgZGVzZXJ2ZXMgc29tZSBpbnZlc3RpZ2F0aW9uLiAgRklYTUUKKysJ YXJjaGl2ZV9jbWRzPSckQ0MgLW5vc3RhcnQgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2Zs YWdzICR7d2x9LXNvbmFtZSAkd2wkc29uYW1lIC1vICRsaWInCisrICAgICAgZWxzZQorKwlsZF9z aGxpYnM9bm8KKysgICAgICBmaQorKyAgICAgIDs7CisrCisrICAgIGN5Z3dpbiogfCBtaW5ndyog fCBwdzMyKiB8IGNlZ2NjKikKKysgICAgICAjIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2Zs YWdfc3BlYywgKSBpcyBhY3R1YWxseSBtZWFuaW5nbGVzcywKKysgICAgICAjIGFzIHRoZXJlIGlz IG5vIHNlYXJjaCBwYXRoIGZvciBETExzLgorKyAgICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3Nw ZWM9Jy1MJGxpYmRpcicKKysgICAgICBhbGxvd191bmRlZmluZWRfZmxhZz11bnN1cHBvcnRlZAor KyAgICAgIGFsd2F5c19leHBvcnRfc3ltYm9scz1ubworKyAgICAgIGVuYWJsZV9zaGFyZWRfd2l0 aF9zdGF0aWNfcnVudGltZXM9eWVzCisrICAgICAgZXhwb3J0X3N5bWJvbHNfY21kcz0nJE5NICRs aWJvYmpzICRjb252ZW5pZW5jZSB8ICRnbG9iYWxfc3ltYm9sX3BpcGUgfCAkU0VEIC1lICdcJycv XltCQ0RHUlNdWyBdL3MvLipbIF1cKFteIF0qXCkvXDEgREFUQS8nXCcnIHwgJFNFRCAtZSAnXCcn L15bQUlUV11bIF0vcy8uKlsgXS8vJ1wnJyB8IHNvcnQgfCB1bmlxID4gJGV4cG9ydF9zeW1ib2xz JworKworKyAgICAgIGlmICRMRCAtLWhlbHAgMj4mMSB8ICRHUkVQICdhdXRvLWltcG9ydCcgPiAv ZGV2L251bGw7IHRoZW4KKysgICAgICAgIGFyY2hpdmVfY21kcz0nJENDIC1zaGFyZWQgJGxpYm9i anMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzIC1vICRvdXRwdXRfb2JqZGlyLyRzb25hbWUgJHt3 bH0tLWVuYWJsZS1hdXRvLWltYWdlLWJhc2UgLVhsaW5rZXIgLS1vdXQtaW1wbGliIC1YbGlua2Vy ICRsaWInCisrCSMgSWYgdGhlIGV4cG9ydC1zeW1ib2xzIGZpbGUgYWxyZWFkeSBpcyBhIC5kZWYg ZmlsZSAoMXN0IGxpbmUKKysJIyBpcyBFWFBPUlRTKSwgdXNlIGl0IGFzIGlzOyBvdGhlcndpc2Us IHByZXBlbmQuLi4KKysJYXJjaGl2ZV9leHBzeW1fY21kcz0naWYgdGVzdCAieGAkU0VEIDFxICRl eHBvcnRfc3ltYm9sc2AiID0geEVYUE9SVFM7IHRoZW4KKysJICBjcCAkZXhwb3J0X3N5bWJvbHMg JG91dHB1dF9vYmpkaXIvJHNvbmFtZS5kZWY7CisrCWVsc2UKKysJICBlY2hvIEVYUE9SVFMgPiAk b3V0cHV0X29iamRpci8kc29uYW1lLmRlZjsKKysJICBjYXQgJGV4cG9ydF9zeW1ib2xzID4+ICRv dXRwdXRfb2JqZGlyLyRzb25hbWUuZGVmOworKwlmaX4KKysJJENDIC1zaGFyZWQgJG91dHB1dF9v YmpkaXIvJHNvbmFtZS5kZWYgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzIC1vICRv dXRwdXRfb2JqZGlyLyRzb25hbWUgJHt3bH0tLWVuYWJsZS1hdXRvLWltYWdlLWJhc2UgLVhsaW5r ZXIgLS1vdXQtaW1wbGliIC1YbGlua2VyICRsaWInCisrICAgICAgZWxzZQorKwlsZF9zaGxpYnM9 bm8KKysgICAgICBmaQorKyAgICAgIDs7CisrCisrICAgIGludGVyaXhbMy05XSopCisrICAgICAg aGFyZGNvZGVfZGlyZWN0PW5vCisrICAgICAgaGFyZGNvZGVfc2hsaWJwYXRoX3Zhcj1ubworKyAg ICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWM9JyR7d2x9LXJwYXRoLCRsaWJkaXInCisrICAg ICAgZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjPScke3dsfS1FJworKyAgICAgICMgSGFjazogT24g SW50ZXJpeCAzLngsIHdlIGNhbm5vdCBjb21waWxlIFBJQyBiZWNhdXNlIG9mIGEgYnJva2VuIGdj Yy4KKysgICAgICAjIEluc3RlYWQsIHNoYXJlZCBsaWJyYXJpZXMgYXJlIGxvYWRlZCBhdCBhbiBp bWFnZSBiYXNlICgweDEwMDAwMDAwIGJ5CisrICAgICAgIyBkZWZhdWx0KSBhbmQgcmVsb2NhdGVk IGlmIHRoZXkgY29uZmxpY3QsIHdoaWNoIGlzIGEgc2xvdyB2ZXJ5IG1lbW9yeQorKyAgICAgICMg Y29uc3VtaW5nIGFuZCBmcmFnbWVudGluZyBwcm9jZXNzLiAgVG8gYXZvaWQgdGhpcywgd2UgcGlj ayBhIHJhbmRvbSwKKysgICAgICAjIDI1NiBLaUItYWxpZ25lZCBpbWFnZSBiYXNlIGJldHdlZW4g MHg1MDAwMDAwMCBhbmQgMHg2RkZDMDAwMCBhdCBsaW5rCisrICAgICAgIyB0aW1lLiAgTW92aW5n IHVwIGZyb20gMHgxMDAwMDAwMCBhbHNvIGFsbG93cyBtb3JlIHNicmsoMikgc3BhY2UuCisrICAg ICAgYXJjaGl2ZV9jbWRzPSckQ0MgLXNoYXJlZCAkcGljX2ZsYWcgJGxpYm9ianMgJGRlcGxpYnMg JGNvbXBpbGVyX2ZsYWdzICR7d2x9LWgsJHNvbmFtZSAke3dsfS0taW1hZ2UtYmFzZSxgZXhwciAk e1JBTkRPTS0kJH0gJSA0MDk2IC8gMiBcKiAyNjIxNDQgKyAxMzQyMTc3MjgwYCAtbyAkbGliJwor KyAgICAgIGFyY2hpdmVfZXhwc3ltX2NtZHM9J3NlZCAicyxeLF8sIiAkZXhwb3J0X3N5bWJvbHMg PiRvdXRwdXRfb2JqZGlyLyRzb25hbWUuZXhwc3ltfiRDQyAtc2hhcmVkICRwaWNfZmxhZyAkbGli b2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0taCwkc29uYW1lICR7d2x9LS1yZXRh aW4tc3ltYm9scy1maWxlLCRvdXRwdXRfb2JqZGlyLyRzb25hbWUuZXhwc3ltICR7d2x9LS1pbWFn ZS1iYXNlLGBleHByICR7UkFORE9NLSQkfSAlIDQwOTYgLyAyIFwqIDI2MjE0NCArIDEzNDIxNzcy ODBgIC1vICRsaWInCisrICAgICAgOzsKKysKKysgICAgZ251KiB8IGxpbnV4KiB8IHRwZiogfCBr KmJzZCotZ251KQorKyAgICAgIHRtcF9kaWV0PW5vCisrICAgICAgaWYgdGVzdCAiJGhvc3Rfb3Mi ID0gbGludXgtZGlldGxpYmM7IHRoZW4KKysJY2FzZSAkY2NfYmFzZW5hbWUgaW4KKysJICBkaWV0 XCAqKSB0bXBfZGlldD15ZXM7OwkjIGxpbnV4LWRpZXRsaWJjIHdpdGggc3RhdGljIGxpbmtpbmcg KCFkaWV0LWR5bikKKysJZXNhYworKyAgICAgIGZpCisrICAgICAgaWYgJExEIC0taGVscCAyPiYx IHwgJEVHUkVQICc6IHN1cHBvcnRlZCB0YXJnZXRzOi4qIGVsZicgPiAvZGV2L251bGwgXAorKwkg JiYgdGVzdCAiJHRtcF9kaWV0IiA9IG5vCisrICAgICAgdGhlbgorKwl0bXBfYWRkZmxhZz0KKysJ dG1wX3NoYXJlZGZsYWc9Jy1zaGFyZWQnCisrCWNhc2UgJGNjX2Jhc2VuYW1lLCRob3N0X2NwdSBp bgorKyAgICAgICAgcGdjYyopCQkJCSMgUG9ydGxhbmQgR3JvdXAgQyBjb21waWxlcgorKwkgIHdo b2xlX2FyY2hpdmVfZmxhZ19zcGVjPScke3dsfS0td2hvbGUtYXJjaGl2ZWBmb3IgY29udiBpbiAk Y29udmVuaWVuY2VcIlwiOyBkbyB0ZXN0ICAtbiBcIiRjb252XCIgJiYgbmV3X2NvbnZlbmllbmNl PVwiJG5ld19jb252ZW5pZW5jZSwkY29udlwiOyBkb25lOyAkRUNITyBcIiRuZXdfY29udmVuaWVu Y2VcImAgJHt3bH0tLW5vLXdob2xlLWFyY2hpdmUnCisrCSAgdG1wX2FkZGZsYWc9JyAkcGljX2Zs YWcnCisrCSAgOzsKKysJcGdmNzcqIHwgcGdmOTAqIHwgcGdmOTUqKQkjIFBvcnRsYW5kIEdyb3Vw IGY3NyBhbmQgZjkwIGNvbXBpbGVycworKwkgIHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjPScke3ds fS0td2hvbGUtYXJjaGl2ZWBmb3IgY29udiBpbiAkY29udmVuaWVuY2VcIlwiOyBkbyB0ZXN0ICAt biBcIiRjb252XCIgJiYgbmV3X2NvbnZlbmllbmNlPVwiJG5ld19jb252ZW5pZW5jZSwkY29udlwi OyBkb25lOyAkRUNITyBcIiRuZXdfY29udmVuaWVuY2VcImAgJHt3bH0tLW5vLXdob2xlLWFyY2hp dmUnCisrCSAgdG1wX2FkZGZsYWc9JyAkcGljX2ZsYWcgLU1ub21haW4nIDs7CisrCWVjYyosaWE2 NCogfCBpY2MqLGlhNjQqKQkjIEludGVsIEMgY29tcGlsZXIgb24gaWE2NAorKwkgIHRtcF9hZGRm bGFnPScgLWlfZHluYW1pYycgOzsKKysJZWZjKixpYTY0KiB8IGlmb3J0KixpYTY0KikJIyBJbnRl bCBGb3J0cmFuIGNvbXBpbGVyIG9uIGlhNjQKKysJICB0bXBfYWRkZmxhZz0nIC1pX2R5bmFtaWMg LW5vZm9yX21haW4nIDs7CisrCWlmYyogfCBpZm9ydCopCQkJIyBJbnRlbCBGb3J0cmFuIGNvbXBp bGVyCisrCSAgdG1wX2FkZGZsYWc9JyAtbm9mb3JfbWFpbicgOzsKKysJbGY5NSopCQkJCSMgTGFo ZXkgRm9ydHJhbiA4LjEKKysJICB3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYz0KKysJICB0bXBfc2hh cmVkZmxhZz0nLS1zaGFyZWQnIDs7CisrCXhsW2NDXSopCQkJIyBJQk0gWEwgQyA4LjAgb24gUFBD IChkZWFsIHdpdGggeGxmIGJlbG93KQorKwkgIHRtcF9zaGFyZWRmbGFnPSctcW1rc2hyb2JqJwor KwkgIHRtcF9hZGRmbGFnPSA7OworKwllc2FjCisrCWNhc2UgYCRDQyAtViAyPiYxIHwgc2VkIDVx YCBpbgorKwkqU3VuXCBDKikJCQkjIFN1biBDIDUuOQorKwkgIHdob2xlX2FyY2hpdmVfZmxhZ19z cGVjPScke3dsfS0td2hvbGUtYXJjaGl2ZWBuZXdfY29udmVuaWVuY2U9OyBmb3IgY29udiBpbiAk Y29udmVuaWVuY2VcIlwiOyBkbyB0ZXN0IC16IFwiJGNvbnZcIiB8fCBuZXdfY29udmVuaWVuY2U9 XCIkbmV3X2NvbnZlbmllbmNlLCRjb252XCI7IGRvbmU7ICRFQ0hPIFwiJG5ld19jb252ZW5pZW5j ZVwiYCAke3dsfS0tbm8td2hvbGUtYXJjaGl2ZScKKysJICBjb21waWxlcl9uZWVkc19vYmplY3Q9 eWVzCisrCSAgdG1wX3NoYXJlZGZsYWc9Jy1HJyA7OworKwkqU3VuXCBGKikJCQkjIFN1biBGb3J0 cmFuIDguMworKwkgIHRtcF9zaGFyZWRmbGFnPSctRycgOzsKKysJZXNhYworKwlhcmNoaXZlX2Nt ZHM9JyRDQyAnIiR0bXBfc2hhcmVkZmxhZyIiJHRtcF9hZGRmbGFnIicgJGxpYm9ianMgJGRlcGxp YnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAkd2wkc29uYW1lIC1vICRsaWInCisrCisr ICAgICAgICBpZiB0ZXN0ICJ4JHN1cHBvcnRzX2Fub25fdmVyc2lvbmluZyIgPSB4eWVzOyB0aGVu CisrICAgICAgICAgIGFyY2hpdmVfZXhwc3ltX2NtZHM9J2VjaG8gInsgZ2xvYmFsOiIgPiAkb3V0 cHV0X29iamRpci8kbGlibmFtZS52ZXJ+CisrCSAgICBjYXQgJGV4cG9ydF9zeW1ib2xzIHwgc2Vk IC1lICJzL1woLipcKS9cMTsvIiA+PiAkb3V0cHV0X29iamRpci8kbGlibmFtZS52ZXJ+CisrCSAg ICBlY2hvICJsb2NhbDogKjsgfTsiID4+ICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLnZlcn4KKysJ ICAgICRDQyAnIiR0bXBfc2hhcmVkZmxhZyIiJHRtcF9hZGRmbGFnIicgJGxpYm9ianMgJGRlcGxp YnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAkd2wkc29uYW1lICR7d2x9LXZlcnNpb24t c2NyaXB0ICR7d2x9JG91dHB1dF9vYmpkaXIvJGxpYm5hbWUudmVyIC1vICRsaWInCisrICAgICAg ICBmaQorKworKwljYXNlICRjY19iYXNlbmFtZSBpbgorKwl4bGYqKQorKwkgICMgSUJNIFhMIEZv cnRyYW4gMTAuMSBvbiBQUEMgY2Fubm90IGNyZWF0ZSBzaGFyZWQgbGlicyBpdHNlbGYKKysJICB3 aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYz0nLS13aG9sZS1hcmNoaXZlJGNvbnZlbmllbmNlIC0tbm8t d2hvbGUtYXJjaGl2ZScKKysJICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjPQorKwkgIGhhcmRj b2RlX2xpYmRpcl9mbGFnX3NwZWNfbGQ9Jy1ycGF0aCAkbGliZGlyJworKwkgIGFyY2hpdmVfY21k cz0nJExEIC1zaGFyZWQgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzIC1zb25hbWUg JHNvbmFtZSAtbyAkbGliJworKwkgIGlmIHRlc3QgIngkc3VwcG9ydHNfYW5vbl92ZXJzaW9uaW5n IiA9IHh5ZXM7IHRoZW4KKysJICAgIGFyY2hpdmVfZXhwc3ltX2NtZHM9J2VjaG8gInsgZ2xvYmFs OiIgPiAkb3V0cHV0X29iamRpci8kbGlibmFtZS52ZXJ+CisrCSAgICAgIGNhdCAkZXhwb3J0X3N5 bWJvbHMgfCBzZWQgLWUgInMvXCguKlwpL1wxOy8iID4+ICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1l LnZlcn4KKysJICAgICAgZWNobyAibG9jYWw6ICo7IH07IiA+PiAkb3V0cHV0X29iamRpci8kbGli bmFtZS52ZXJ+CisrCSAgICAgICRMRCAtc2hhcmVkICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxl cl9mbGFncyAtc29uYW1lICRzb25hbWUgLXZlcnNpb24tc2NyaXB0ICRvdXRwdXRfb2JqZGlyLyRs aWJuYW1lLnZlciAtbyAkbGliJworKwkgIGZpCisrCSAgOzsKKysJZXNhYworKyAgICAgIGVsc2UK KysgICAgICAgIGxkX3NobGlicz1ubworKyAgICAgIGZpCisrICAgICAgOzsKKysKKysgICAgbmV0 YnNkKikKKysgICAgICBpZiBlY2hvIF9fRUxGX18gfCAkQ0MgLUUgLSB8ICRHUkVQIF9fRUxGX18g Pi9kZXYvbnVsbDsgdGhlbgorKwlhcmNoaXZlX2NtZHM9JyRMRCAtQnNoYXJlYWJsZSAkbGlib2Jq cyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzIC1vICRsaWInCisrCXdsYXJjPQorKyAgICAgIGVsc2UK KysJYXJjaGl2ZV9jbWRzPSckQ0MgLXNoYXJlZCAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJf ZmxhZ3MgJHt3bH0tc29uYW1lICR3bCRzb25hbWUgLW8gJGxpYicKKysJYXJjaGl2ZV9leHBzeW1f Y21kcz0nJENDIC1zaGFyZWQgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9 LXNvbmFtZSAkd2wkc29uYW1lICR7d2x9LXJldGFpbi1zeW1ib2xzLWZpbGUgJHdsJGV4cG9ydF9z eW1ib2xzIC1vICRsaWInCisrICAgICAgZmkKKysgICAgICA7OworKworKyAgICBzb2xhcmlzKikK KysgICAgICBpZiAkTEQgLXYgMj4mMSB8ICRHUkVQICdCRkQgMlwuOCcgPiAvZGV2L251bGw7IHRo ZW4KKysJbGRfc2hsaWJzPW5vCisrCWNhdCA8PF9MVF9FT0YgMT4mMgorKworKyoqKiBXYXJuaW5n OiBUaGUgcmVsZWFzZXMgMi44Liogb2YgdGhlIEdOVSBsaW5rZXIgY2Fubm90IHJlbGlhYmx5Cisr KioqIGNyZWF0ZSBzaGFyZWQgbGlicmFyaWVzIG9uIFNvbGFyaXMgc3lzdGVtcy4gIFRoZXJlZm9y ZSwgbGlidG9vbAorKyoqKiBpcyBkaXNhYmxpbmcgc2hhcmVkIGxpYnJhcmllcyBzdXBwb3J0LiAg V2UgdXJnZSB5b3UgdG8gdXBncmFkZSBHTlUKKysqKiogYmludXRpbHMgdG8gcmVsZWFzZSAyLjku MSBvciBuZXdlci4gIEFub3RoZXIgb3B0aW9uIGlzIHRvIG1vZGlmeQorKyoqKiB5b3VyIFBBVEgg b3IgY29tcGlsZXIgY29uZmlndXJhdGlvbiBzbyB0aGF0IHRoZSBuYXRpdmUgbGlua2VyIGlzCisr KioqIHVzZWQsIGFuZCB0aGVuIHJlc3RhcnQuCisrCisrX0xUX0VPRgorKyAgICAgIGVsaWYgJExE IC0taGVscCAyPiYxIHwgJEdSRVAgJzogc3VwcG9ydGVkIHRhcmdldHM6LiogZWxmJyA+IC9kZXYv bnVsbDsgdGhlbgorKwlhcmNoaXZlX2NtZHM9JyRDQyAtc2hhcmVkICRsaWJvYmpzICRkZXBsaWJz ICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAtbyAkbGliJworKwlhcmNo aXZlX2V4cHN5bV9jbWRzPSckQ0MgLXNoYXJlZCAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJf ZmxhZ3MgJHt3bH0tc29uYW1lICR3bCRzb25hbWUgJHt3bH0tcmV0YWluLXN5bWJvbHMtZmlsZSAk d2wkZXhwb3J0X3N5bWJvbHMgLW8gJGxpYicKKysgICAgICBlbHNlCisrCWxkX3NobGlicz1ubwor KyAgICAgIGZpCisrICAgICAgOzsKKysKKysgICAgc3lzdjUqIHwgc2NvMy4ydjUqIHwgc2NvNXY2 KiB8IHVuaXh3YXJlKiB8IE9wZW5VTklYKikKKysgICAgICBjYXNlIGAkTEQgLXYgMj4mMWAgaW4K KysgICAgICAgICpcIFswMV0uKiB8ICpcIDIuWzAtOV0uKiB8ICpcIDIuMVswLTVdLiopCisrCWxk X3NobGlicz1ubworKwljYXQgPDxfTFRfRU9GIDE+JjIKKysKKysqKiogV2FybmluZzogUmVsZWFz ZXMgb2YgdGhlIEdOVSBsaW5rZXIgcHJpb3IgdG8gMi4xNi45MS4wLjMgY2FuIG5vdAorKyoqKiBy ZWxpYWJseSBjcmVhdGUgc2hhcmVkIGxpYnJhcmllcyBvbiBTQ08gc3lzdGVtcy4gIFRoZXJlZm9y ZSwgbGlidG9vbAorKyoqKiBpcyBkaXNhYmxpbmcgc2hhcmVkIGxpYnJhcmllcyBzdXBwb3J0LiAg V2UgdXJnZSB5b3UgdG8gdXBncmFkZSBHTlUKKysqKiogYmludXRpbHMgdG8gcmVsZWFzZSAyLjE2 LjkxLjAuMyBvciBuZXdlci4gIEFub3RoZXIgb3B0aW9uIGlzIHRvIG1vZGlmeQorKyoqKiB5b3Vy IFBBVEggb3IgY29tcGlsZXIgY29uZmlndXJhdGlvbiBzbyB0aGF0IHRoZSBuYXRpdmUgbGlua2Vy IGlzCisrKioqIHVzZWQsIGFuZCB0aGVuIHJlc3RhcnQuCisrCisrX0xUX0VPRgorKwk7OworKwkq KQorKwkgICMgRm9yIHNlY3VyaXR5IHJlYXNvbnMsIGl0IGlzIGhpZ2hseSByZWNvbW1lbmRlZCB0 aGF0IHlvdSBhbHdheXMKKysJICAjIHVzZSBhYnNvbHV0ZSBwYXRocyBmb3IgbmFtaW5nIHNoYXJl ZCBsaWJyYXJpZXMsIGFuZCBleGNsdWRlIHRoZQorKwkgICMgRFRfUlVOUEFUSCB0YWcgZnJvbSBl eGVjdXRhYmxlcyBhbmQgbGlicmFyaWVzLiAgQnV0IGRvaW5nIHNvCisrCSAgIyByZXF1aXJlcyB0 aGF0IHlvdSBjb21waWxlIGV2ZXJ5dGhpbmcgdHdpY2UsIHdoaWNoIGlzIGEgcGFpbi4KKysJICBp ZiAkTEQgLS1oZWxwIDI+JjEgfCAkR1JFUCAnOiBzdXBwb3J0ZWQgdGFyZ2V0czouKiBlbGYnID4g L2Rldi9udWxsOyB0aGVuCisrCSAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjPScke3dsfS1y cGF0aCAke3dsfSRsaWJkaXInCisrCSAgICBhcmNoaXZlX2NtZHM9JyRDQyAtc2hhcmVkICRsaWJv YmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAtbyAk bGliJworKwkgICAgYXJjaGl2ZV9leHBzeW1fY21kcz0nJENDIC1zaGFyZWQgJGxpYm9ianMgJGRl cGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAkd2wkc29uYW1lICR7d2x9LXJldGFp bi1zeW1ib2xzLWZpbGUgJHdsJGV4cG9ydF9zeW1ib2xzIC1vICRsaWInCisrCSAgZWxzZQorKwkg ICAgbGRfc2hsaWJzPW5vCisrCSAgZmkKKysJOzsKKysgICAgICBlc2FjCisrICAgICAgOzsKKysK KysgICAgc3Vub3M0KikKKysgICAgICBhcmNoaXZlX2NtZHM9JyRMRCAtYXNzZXJ0IHB1cmUtdGV4 dCAtQnNoYXJlYWJsZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRsaW5rZXJfZmxhZ3MnCisr ICAgICAgd2xhcmM9CisrICAgICAgaGFyZGNvZGVfZGlyZWN0PXllcworKyAgICAgIGhhcmRjb2Rl X3NobGlicGF0aF92YXI9bm8KKysgICAgICA7OworKworKyAgICAqKQorKyAgICAgIGlmICRMRCAt LWhlbHAgMj4mMSB8ICRHUkVQICc6IHN1cHBvcnRlZCB0YXJnZXRzOi4qIGVsZicgPiAvZGV2L251 bGw7IHRoZW4KKysJYXJjaGl2ZV9jbWRzPSckQ0MgLXNoYXJlZCAkbGlib2JqcyAkZGVwbGlicyAk Y29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR3bCRzb25hbWUgLW8gJGxpYicKKysJYXJjaGl2 ZV9leHBzeW1fY21kcz0nJENDIC1zaGFyZWQgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2Zs YWdzICR7d2x9LXNvbmFtZSAkd2wkc29uYW1lICR7d2x9LXJldGFpbi1zeW1ib2xzLWZpbGUgJHds JGV4cG9ydF9zeW1ib2xzIC1vICRsaWInCisrICAgICAgZWxzZQorKwlsZF9zaGxpYnM9bm8KKysg ICAgICBmaQorKyAgICAgIDs7CisrICAgIGVzYWMKKysKKysgICAgaWYgdGVzdCAiJGxkX3NobGli cyIgPSBubzsgdGhlbgorKyAgICAgIHJ1bnBhdGhfdmFyPQorKyAgICAgIGhhcmRjb2RlX2xpYmRp cl9mbGFnX3NwZWM9CisrICAgICAgZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjPQorKyAgICAgIHdo b2xlX2FyY2hpdmVfZmxhZ19zcGVjPQorKyAgICBmaQorKyAgZWxzZQorKyAgICAjIFBPUlRNRSBm aWxsIGluIGEgZGVzY3JpcHRpb24gb2YgeW91ciBzeXN0ZW0ncyBsaW5rZXIgKG5vdCBHTlUgbGQp CisrICAgIGNhc2UgJGhvc3Rfb3MgaW4KKysgICAgYWl4MyopCisrICAgICAgYWxsb3dfdW5kZWZp bmVkX2ZsYWc9dW5zdXBwb3J0ZWQKKysgICAgICBhbHdheXNfZXhwb3J0X3N5bWJvbHM9eWVzCisr ICAgICAgYXJjaGl2ZV9leHBzeW1fY21kcz0nJExEIC1vICRvdXRwdXRfb2JqZGlyLyRzb25hbWUg JGxpYm9ianMgJGRlcGxpYnMgJGxpbmtlcl9mbGFncyAtYkU6JGV4cG9ydF9zeW1ib2xzIC1UNTEy IC1INTEyIC1iTTpTUkV+JEFSICRBUl9GTEFHUyAkbGliICRvdXRwdXRfb2JqZGlyLyRzb25hbWUn CisrICAgICAgIyBOb3RlOiB0aGlzIGxpbmtlciBoYXJkY29kZXMgdGhlIGRpcmVjdG9yaWVzIGlu IExJQlBBVEggaWYgdGhlcmUKKysgICAgICAjIGFyZSBubyBkaXJlY3RvcmllcyBzcGVjaWZpZWQg YnkgLUwuCisrICAgICAgaGFyZGNvZGVfbWludXNfTD15ZXMKKysgICAgICBpZiB0ZXN0ICIkR0ND IiA9IHllcyAmJiB0ZXN0IC16ICIkbHRfcHJvZ19jb21waWxlcl9zdGF0aWMiOyB0aGVuCisrCSMg TmVpdGhlciBkaXJlY3QgaGFyZGNvZGluZyBub3Igc3RhdGljIGxpbmtpbmcgaXMgc3VwcG9ydGVk IHdpdGggYQorKwkjIGJyb2tlbiBjb2xsZWN0Mi4KKysJaGFyZGNvZGVfZGlyZWN0PXVuc3VwcG9y dGVkCisrICAgICAgZmkKKysgICAgICA7OworKworKyAgICBhaXhbNC05XSopCisrICAgICAgaWYg dGVzdCAiJGhvc3RfY3B1IiA9IGlhNjQ7IHRoZW4KKysJIyBPbiBJQTY0LCB0aGUgbGlua2VyIGRv ZXMgcnVuIHRpbWUgbGlua2luZyBieSBkZWZhdWx0LCBzbyB3ZSBkb24ndAorKwkjIGhhdmUgdG8g ZG8gYW55dGhpbmcgc3BlY2lhbC4KKysJYWl4X3VzZV9ydW50aW1lbGlua2luZz1ubworKwlleHBf c3ltX2ZsYWc9Jy1CZXhwb3J0JworKwlub19lbnRyeV9mbGFnPSIiCisrICAgICAgZWxzZQorKwkj IElmIHdlJ3JlIHVzaW5nIEdOVSBubSwgdGhlbiB3ZSBkb24ndCB3YW50IHRoZSAiLUMiIG9wdGlv bi4KKysJIyAtQyBtZWFucyBkZW1hbmdsZSB0byBBSVggbm0sIGJ1dCBtZWFucyBkb24ndCBkZW1h bmdsZSB3aXRoIEdOVSBubQorKwlpZiAkTk0gLVYgMj4mMSB8ICRHUkVQICdHTlUnID4gL2Rldi9u dWxsOyB0aGVuCisrCSAgZXhwb3J0X3N5bWJvbHNfY21kcz0nJE5NIC1CcGcgJGxpYm9ianMgJGNv bnZlbmllbmNlIHwgYXdrICdcJyd7IGlmICgoKFwkIDIgPT0gIlQiKSB8fCAoXCQgMiA9PSAiRCIp IHx8IChcJCAyID09ICJCIikpICYmIChzdWJzdHIoXCQgMywxLDEpICE9ICIuIikpIHsgcHJpbnQg XCQgMyB9IH0nXCcnIHwgc29ydCAtdSA+ICRleHBvcnRfc3ltYm9scycKKysJZWxzZQorKwkgIGV4 cG9ydF9zeW1ib2xzX2NtZHM9JyROTSAtQkNwZyAkbGlib2JqcyAkY29udmVuaWVuY2UgfCBhd2sg J1wnJ3sgaWYgKCgoXCQgMiA9PSAiVCIpIHx8IChcJCAyID09ICJEIikgfHwgKFwkIDIgPT0gIkIi KSkgJiYgKHN1YnN0cihcJCAzLDEsMSkgIT0gIi4iKSkgeyBwcmludCBcJCAzIH0gfSdcJycgfCBz b3J0IC11ID4gJGV4cG9ydF9zeW1ib2xzJworKwlmaQorKwlhaXhfdXNlX3J1bnRpbWVsaW5raW5n PW5vCisrCisrCSMgVGVzdCBpZiB3ZSBhcmUgdHJ5aW5nIHRvIHVzZSBydW4gdGltZSBsaW5raW5n IG9yIG5vcm1hbAorKwkjIEFJWCBzdHlsZSBsaW5raW5nLiBJZiAtYnJ0bCBpcyBzb21ld2hlcmUg aW4gTERGTEFHUywgd2UKKysJIyBuZWVkIHRvIGRvIHJ1bnRpbWUgbGlua2luZy4KKysJY2FzZSAk aG9zdF9vcyBpbiBhaXg0LlsyM118YWl4NC5bMjNdLip8YWl4WzUtOV0qKQorKwkgIGZvciBsZF9m bGFnIGluICRMREZMQUdTOyBkbworKwkgIGlmICh0ZXN0ICRsZF9mbGFnID0gIi1icnRsIiB8fCB0 ZXN0ICRsZF9mbGFnID0gIi1XbCwtYnJ0bCIpOyB0aGVuCisrCSAgICBhaXhfdXNlX3J1bnRpbWVs aW5raW5nPXllcworKwkgICAgYnJlYWsKKysJICBmaQorKwkgIGRvbmUKKysJICA7OworKwllc2Fj CisrCisrCWV4cF9zeW1fZmxhZz0nLWJleHBvcnQnCisrCW5vX2VudHJ5X2ZsYWc9Jy1ibm9lbnRy eScKKysgICAgICBmaQorKworKyAgICAgICMgV2hlbiBsYXJnZSBleGVjdXRhYmxlcyBvciBzaGFy ZWQgb2JqZWN0cyBhcmUgYnVpbHQsIEFJWCBsZCBjYW4KKysgICAgICAjIGhhdmUgcHJvYmxlbXMg Y3JlYXRpbmcgdGhlIHRhYmxlIG9mIGNvbnRlbnRzLiAgSWYgbGlua2luZyBhIGxpYnJhcnkKKysg ICAgICAjIG9yIHByb2dyYW0gcmVzdWx0cyBpbiAiZXJyb3IgVE9DIG92ZXJmbG93IiBhZGQgLW1t aW5pbWFsLXRvYyB0bworKyAgICAgICMgQ1hYRkxBR1MvQ0ZMQUdTIGZvciBnKysvZ2NjLiAgSW4g dGhlIGNhc2VzIHdoZXJlIHRoYXQgaXMgbm90CisrICAgICAgIyBlbm91Z2ggdG8gZml4IHRoZSBw cm9ibGVtLCBhZGQgLVdsLC1iYmlndG9jIHRvIExERkxBR1MuCisrCisrICAgICAgYXJjaGl2ZV9j bWRzPScnCisrICAgICAgaGFyZGNvZGVfZGlyZWN0PXllcworKyAgICAgIGhhcmRjb2RlX2RpcmVj dF9hYnNvbHV0ZT15ZXMKKysgICAgICBoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yPSc6JworKyAg ICAgIGxpbmtfYWxsX2RlcGxpYnM9eWVzCisrICAgICAgZmlsZV9saXN0X3NwZWM9JyR7d2x9LWYs JworKworKyAgICAgIGlmIHRlc3QgIiRHQ0MiID0geWVzOyB0aGVuCisrCWNhc2UgJGhvc3Rfb3Mg aW4gYWl4NC5bMDEyXXxhaXg0LlswMTJdLiopCisrCSMgV2Ugb25seSB3YW50IHRvIGRvIHRoaXMg b24gQUlYIDQuMiBhbmQgbG93ZXIsIHRoZSBjaGVjaworKwkjIGJlbG93IGZvciBicm9rZW4gY29s bGVjdDIgZG9lc24ndCB3b3JrIHVuZGVyIDQuMysKKysJICBjb2xsZWN0Mm5hbWU9YCR7Q0N9IC1w cmludC1wcm9nLW5hbWU9Y29sbGVjdDJgCisrCSAgaWYgdGVzdCAtZiAiJGNvbGxlY3QybmFtZSIg JiYKKysJICAgc3RyaW5ncyAiJGNvbGxlY3QybmFtZSIgfCAkR1JFUCByZXNvbHZlX2xpYl9uYW1l ID4vZGV2L251bGwKKysJICB0aGVuCisrCSAgIyBXZSBoYXZlIHJld29ya2VkIGNvbGxlY3QyCisr CSAgOgorKwkgIGVsc2UKKysJICAjIFdlIGhhdmUgb2xkIGNvbGxlY3QyCisrCSAgaGFyZGNvZGVf ZGlyZWN0PXVuc3VwcG9ydGVkCisrCSAgIyBJdCBmYWlscyB0byBmaW5kIHVuaW5zdGFsbGVkIGxp YnJhcmllcyB3aGVuIHRoZSB1bmluc3RhbGxlZAorKwkgICMgcGF0aCBpcyBub3QgbGlzdGVkIGlu IHRoZSBsaWJwYXRoLiAgU2V0dGluZyBoYXJkY29kZV9taW51c19MCisrCSAgIyB0byB1bnN1cHBv cnRlZCBmb3JjZXMgcmVsaW5raW5nCisrCSAgaGFyZGNvZGVfbWludXNfTD15ZXMKKysJICBoYXJk Y29kZV9saWJkaXJfZmxhZ19zcGVjPSctTCRsaWJkaXInCisrCSAgaGFyZGNvZGVfbGliZGlyX3Nl cGFyYXRvcj0KKysJICBmaQorKwkgIDs7CisrCWVzYWMKKysJc2hhcmVkX2ZsYWc9Jy1zaGFyZWQn CisrCWlmIHRlc3QgIiRhaXhfdXNlX3J1bnRpbWVsaW5raW5nIiA9IHllczsgdGhlbgorKwkgIHNo YXJlZF9mbGFnPSIkc2hhcmVkX2ZsYWcgIicke3dsfS1HJworKwlmaQorKyAgICAgIGVsc2UKKysJ IyBub3QgdXNpbmcgZ2NjCisrCWlmIHRlc3QgIiRob3N0X2NwdSIgPSBpYTY0OyB0aGVuCisrCSMg VmlzdWFsQWdlIEMrKywgVmVyc2lvbiA1LjUgZm9yIEFJWCA1TCBmb3IgSUEtNjQsIEJldGEgMyBS ZWxlYXNlCisrCSMgY2hva2VzIG9uIC1XbCwtRy4gVGhlIGZvbGxvd2luZyBsaW5lIGlzIGNvcnJl Y3Q6CisrCSAgc2hhcmVkX2ZsYWc9Jy1HJworKwllbHNlCisrCSAgaWYgdGVzdCAiJGFpeF91c2Vf cnVudGltZWxpbmtpbmciID0geWVzOyB0aGVuCisrCSAgICBzaGFyZWRfZmxhZz0nJHt3bH0tRycK KysJICBlbHNlCisrCSAgICBzaGFyZWRfZmxhZz0nJHt3bH0tYk06U1JFJworKwkgIGZpCisrCWZp CisrICAgICAgZmkKKysKKysgICAgICBleHBvcnRfZHluYW1pY19mbGFnX3NwZWM9JyR7d2x9LWJl eHBhbGwnCisrICAgICAgIyBJdCBzZWVtcyB0aGF0IC1iZXhwYWxsIGRvZXMgbm90IGV4cG9ydCBz eW1ib2xzIGJlZ2lubmluZyB3aXRoCisrICAgICAgIyB1bmRlcnNjb3JlIChfKSwgc28gaXQgaXMg YmV0dGVyIHRvIGdlbmVyYXRlIGEgbGlzdCBvZiBzeW1ib2xzIHRvIGV4cG9ydC4KKysgICAgICBh bHdheXNfZXhwb3J0X3N5bWJvbHM9eWVzCisrICAgICAgaWYgdGVzdCAiJGFpeF91c2VfcnVudGlt ZWxpbmtpbmciID0geWVzOyB0aGVuCisrCSMgV2FybmluZyAtIHdpdGhvdXQgdXNpbmcgdGhlIG90 aGVyIHJ1bnRpbWUgbG9hZGluZyBmbGFncyAoLWJydGwpLAorKwkjIC1iZXJvayB3aWxsIGxpbmsg d2l0aG91dCBlcnJvciwgYnV0IG1heSBwcm9kdWNlIGEgYnJva2VuIGxpYnJhcnkuCisrCWFsbG93 X3VuZGVmaW5lZF9mbGFnPSctYmVyb2snCisrICAgICAgICAjIERldGVybWluZSB0aGUgZGVmYXVs dCBsaWJwYXRoIGZyb20gdGhlIHZhbHVlIGVuY29kZWQgaW4gYW4KKysgICAgICAgICMgZW1wdHkg ZXhlY3V0YWJsZS4KKysgICAgICAgIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorKy8q IGNvbmZkZWZzLmguICAqLworK19BQ0VPRgorK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFj X2V4dAorK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKysvKiBlbmQgY29uZmRlZnMu aC4gICovCisrCisraW50CisrbWFpbiAoKQorK3sKKysKKysgIDsKKysgIHJldHVybiAwOworK30K KytfQUNFT0YKKytybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0JGFjX2V4ZWV4dAor K2lmIHsgKGFjX3RyeT0iJGFjX2xpbmsiCisrY2FzZSAiKCgkYWNfdHJ5IiBpbgorKyAgKlwiKiB8 ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7CisrICAqKSBhY190cnlfZWNobz0k YWNfdHJ5OzsKKytlc2FjCisrZXZhbCBhY190cnlfZWNobz0iXCJcJGFzX21lOiRMSU5FTk86ICRh Y190cnlfZWNob1wiIgorKyRhc19lY2hvICIkYWNfdHJ5X2VjaG8iKSA+JjUKKysgIChldmFsICIk YWNfbGluayIpIDI+Y29uZnRlc3QuZXIxCisrICBhY19zdGF0dXM9JD8KKysgIGdyZXAgLXYgJ14g KisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCisrICBybSAtZiBjb25mdGVzdC5lcjEKKysg IGNhdCBjb25mdGVzdC5lcnIgPiY1CisrICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9 ICRhY19zdGF0dXMiID4mNQorKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYgeworKwkgdGVzdCAt eiAiJGFjX2Nfd2Vycm9yX2ZsYWciIHx8CisrCSB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCisrICAg ICAgIH0gJiYgdGVzdCAtcyBjb25mdGVzdCRhY19leGVleHQgJiYgeworKwkgdGVzdCAiJGNyb3Nz X2NvbXBpbGluZyIgPSB5ZXMgfHwKKysJICRhc190ZXN0X3ggY29uZnRlc3QkYWNfZXhlZXh0Cisr ICAgICAgIH07IHRoZW4KKysKKytsdF9haXhfbGlicGF0aF9zZWQ9JworKyAgICAvSW1wb3J0IEZp bGUgU3RyaW5ncy8sL14kLyB7CisrCS9eMC8geworKwkgICAgcy9eMCAgKlwoLipcKSQvXDEvCisr CSAgICBwCisrCX0KKysgICAgfScKKythaXhfbGlicGF0aD1gZHVtcCAtSCBjb25mdGVzdCRhY19l eGVleHQgMj4vZGV2L251bGwgfCAkU0VEIC1uIC1lICIkbHRfYWl4X2xpYnBhdGhfc2VkImAKKysj IENoZWNrIGZvciBhIDY0LWJpdCBvYmplY3QgaWYgd2UgZGlkbid0IGZpbmQgYW55dGhpbmcuCisr aWYgdGVzdCAteiAiJGFpeF9saWJwYXRoIjsgdGhlbgorKyAgYWl4X2xpYnBhdGg9YGR1bXAgLUhY NjQgY29uZnRlc3QkYWNfZXhlZXh0IDI+L2Rldi9udWxsIHwgJFNFRCAtbiAtZSAiJGx0X2FpeF9s aWJwYXRoX3NlZCJgCisrZmkKKytlbHNlCisrICAkYXNfZWNobyAiJGFzX21lOiBmYWlsZWQgcHJv Z3JhbSB3YXM6IiA+JjUKKytzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1CisrCisr CisrZmkKKysKKytybSAtcmYgY29uZnRlc3QuZFNZTQorK3JtIC1mIGNvcmUgY29uZnRlc3QuZXJy IGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3RfaXBhOF9jb25mdGVzdC5vbyBcCisrICAgICAg Y29uZnRlc3QkYWNfZXhlZXh0IGNvbmZ0ZXN0LiRhY19leHQKKytpZiB0ZXN0IC16ICIkYWl4X2xp YnBhdGgiOyB0aGVuIGFpeF9saWJwYXRoPSIvdXNyL2xpYjovbGliIjsgZmkKKysKKysgICAgICAg IGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWM9JyR7d2x9LWJsaWJwYXRoOiRsaWJkaXI6JyIkYWl4 X2xpYnBhdGgiCisrICAgICAgICBhcmNoaXZlX2V4cHN5bV9jbWRzPSckQ0MgLW8gJG91dHB1dF9v YmpkaXIvJHNvbmFtZSAkbGlib2JqcyAkZGVwbGlicyAnIlwke3dsfSRub19lbnRyeV9mbGFnIicg JGNvbXBpbGVyX2ZsYWdzIGBpZiB0ZXN0ICJ4JHthbGxvd191bmRlZmluZWRfZmxhZ30iICE9ICJ4 IjsgdGhlbiAkRUNITyAiWCR7d2x9JHthbGxvd191bmRlZmluZWRfZmxhZ30iIHwgJFhzZWQ7IGVs c2UgOjsgZmlgICciXCR7d2x9JGV4cF9zeW1fZmxhZzpcJGV4cG9ydF9zeW1ib2xzICRzaGFyZWRf ZmxhZyIKKysgICAgICBlbHNlCisrCWlmIHRlc3QgIiRob3N0X2NwdSIgPSBpYTY0OyB0aGVuCisr CSAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYz0nJHt3bH0tUiAkbGliZGlyOi91c3IvbGliOi9s aWInCisrCSAgYWxsb3dfdW5kZWZpbmVkX2ZsYWc9Ii16IG5vZGVmcyIKKysJICBhcmNoaXZlX2V4 cHN5bV9jbWRzPSJcJENDICRzaGFyZWRfZmxhZyInIC1vICRvdXRwdXRfb2JqZGlyLyRzb25hbWUg JGxpYm9ianMgJGRlcGxpYnMgJyJcJHt3bH0kbm9fZW50cnlfZmxhZyInICRjb21waWxlcl9mbGFn cyAke3dsfSR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9ICciXCR7d2x9JGV4cF9zeW1fZmxhZzpcJGV4 cG9ydF9zeW1ib2xzIgorKwllbHNlCisrCSAjIERldGVybWluZSB0aGUgZGVmYXVsdCBsaWJwYXRo IGZyb20gdGhlIHZhbHVlIGVuY29kZWQgaW4gYW4KKysJICMgZW1wdHkgZXhlY3V0YWJsZS4KKysJ IGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorKy8qIGNvbmZkZWZzLmguICAqLworK19B Q0VPRgorK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAorK2NhdCA+PmNvbmZ0ZXN0 LiRhY19leHQgPDxfQUNFT0YKKysvKiBlbmQgY29uZmRlZnMuaC4gICovCisrCisraW50CisrbWFp biAoKQorK3sKKysKKysgIDsKKysgIHJldHVybiAwOworK30KKytfQUNFT0YKKytybSAtZiBjb25m dGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0JGFjX2V4ZWV4dAorK2lmIHsgKGFjX3RyeT0iJGFjX2xp bmsiCisrY2FzZSAiKCgkYWNfdHJ5IiBpbgorKyAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlf ZWNobz1cJGFjX3RyeTs7CisrICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKKytlc2FjCisrZXZh bCBhY190cnlfZWNobz0iXCJcJGFzX21lOiRMSU5FTk86ICRhY190cnlfZWNob1wiIgorKyRhc19l Y2hvICIkYWNfdHJ5X2VjaG8iKSA+JjUKKysgIChldmFsICIkYWNfbGluayIpIDI+Y29uZnRlc3Qu ZXIxCisrICBhY19zdGF0dXM9JD8KKysgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29u ZnRlc3QuZXJyCisrICBybSAtZiBjb25mdGVzdC5lcjEKKysgIGNhdCBjb25mdGVzdC5lcnIgPiY1 CisrICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorKyAg KGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYgeworKwkgdGVzdCAteiAiJGFjX2Nfd2Vycm9yX2ZsYWci IHx8CisrCSB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCisrICAgICAgIH0gJiYgdGVzdCAtcyBjb25m dGVzdCRhY19leGVleHQgJiYgeworKwkgdGVzdCAiJGNyb3NzX2NvbXBpbGluZyIgPSB5ZXMgfHwK KysJICRhc190ZXN0X3ggY29uZnRlc3QkYWNfZXhlZXh0CisrICAgICAgIH07IHRoZW4KKysKKyts dF9haXhfbGlicGF0aF9zZWQ9JworKyAgICAvSW1wb3J0IEZpbGUgU3RyaW5ncy8sL14kLyB7Cisr CS9eMC8geworKwkgICAgcy9eMCAgKlwoLipcKSQvXDEvCisrCSAgICBwCisrCX0KKysgICAgfScK KythaXhfbGlicGF0aD1gZHVtcCAtSCBjb25mdGVzdCRhY19leGVleHQgMj4vZGV2L251bGwgfCAk U0VEIC1uIC1lICIkbHRfYWl4X2xpYnBhdGhfc2VkImAKKysjIENoZWNrIGZvciBhIDY0LWJpdCBv YmplY3QgaWYgd2UgZGlkbid0IGZpbmQgYW55dGhpbmcuCisraWYgdGVzdCAteiAiJGFpeF9saWJw YXRoIjsgdGhlbgorKyAgYWl4X2xpYnBhdGg9YGR1bXAgLUhYNjQgY29uZnRlc3QkYWNfZXhlZXh0 IDI+L2Rldi9udWxsIHwgJFNFRCAtbiAtZSAiJGx0X2FpeF9saWJwYXRoX3NlZCJgCisrZmkKKytl bHNlCisrICAkYXNfZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKKytzZWQg J3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1CisrCisrCisrZmkKKysKKytybSAtcmYgY29u ZnRlc3QuZFNZTQorK3JtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQg Y29uZnRlc3RfaXBhOF9jb25mdGVzdC5vbyBcCisrICAgICAgY29uZnRlc3QkYWNfZXhlZXh0IGNv bmZ0ZXN0LiRhY19leHQKKytpZiB0ZXN0IC16ICIkYWl4X2xpYnBhdGgiOyB0aGVuIGFpeF9saWJw YXRoPSIvdXNyL2xpYjovbGliIjsgZmkKKysKKysJIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWM9 JyR7d2x9LWJsaWJwYXRoOiRsaWJkaXI6JyIkYWl4X2xpYnBhdGgiCisrCSAgIyBXYXJuaW5nIC0g d2l0aG91dCB1c2luZyB0aGUgb3RoZXIgcnVuIHRpbWUgbG9hZGluZyBmbGFncywKKysJICAjIC1i ZXJvayB3aWxsIGxpbmsgd2l0aG91dCBlcnJvciwgYnV0IG1heSBwcm9kdWNlIGEgYnJva2VuIGxp YnJhcnkuCisrCSAgbm9fdW5kZWZpbmVkX2ZsYWc9JyAke3dsfS1iZXJub3RvaycKKysJICBhbGxv d191bmRlZmluZWRfZmxhZz0nICR7d2x9LWJlcm9rJworKwkgICMgRXhwb3J0ZWQgc3ltYm9scyBj YW4gYmUgcHVsbGVkIGludG8gc2hhcmVkIG9iamVjdHMgZnJvbSBhcmNoaXZlcworKwkgIHdob2xl X2FyY2hpdmVfZmxhZ19zcGVjPSckY29udmVuaWVuY2UnCisrCSAgYXJjaGl2ZV9jbWRzX25lZWRf bGM9eWVzCisrCSAgIyBUaGlzIGlzIHNpbWlsYXIgdG8gaG93IEFJWCB0cmFkaXRpb25hbGx5IGJ1 aWxkcyBpdHMgc2hhcmVkIGxpYnJhcmllcy4KKysJICBhcmNoaXZlX2V4cHN5bV9jbWRzPSJcJEND ICRzaGFyZWRfZmxhZyInIC1vICRvdXRwdXRfb2JqZGlyLyRzb25hbWUgJGxpYm9ianMgJGRlcGxp YnMgJHt3bH0tYm5vZW50cnkgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LWJFOiRleHBvcnRfc3ltYm9s cyR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9fiRBUiAkQVJfRkxBR1MgJG91dHB1dF9vYmpkaXIvJGxp Ym5hbWUkcmVsZWFzZS5hICRvdXRwdXRfb2JqZGlyLyRzb25hbWUnCisrCWZpCisrICAgICAgZmkK KysgICAgICA7OworKworKyAgICBhbWlnYW9zKikKKysgICAgICBjYXNlICRob3N0X2NwdSBpbgor KyAgICAgIHBvd2VycGMpCisrICAgICAgICAgICAgIyBzZWUgY29tbWVudCBhYm91dCBBbWlnYU9T NCAuc28gc3VwcG9ydAorKyAgICAgICAgICAgIGFyY2hpdmVfY21kcz0nJENDIC1zaGFyZWQgJGxp Ym9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAkd2wkc29uYW1lIC1v ICRsaWInCisrICAgICAgICAgICAgYXJjaGl2ZV9leHBzeW1fY21kcz0nJworKyAgICAgICAgOzsK KysgICAgICBtNjhrKQorKyAgICAgICAgICAgIGFyY2hpdmVfY21kcz0nJFJNICRvdXRwdXRfb2Jq ZGlyL2EyaXhsaWJyYXJ5LmRhdGF+JEVDSE8gIiNkZWZpbmUgTkFNRSAkbGlibmFtZSIgPiAkb3V0 cHV0X29iamRpci9hMml4bGlicmFyeS5kYXRhfiRFQ0hPICIjZGVmaW5lIExJQlJBUllfSUQgMSIg Pj4gJG91dHB1dF9vYmpkaXIvYTJpeGxpYnJhcnkuZGF0YX4kRUNITyAiI2RlZmluZSBWRVJTSU9O ICRtYWpvciIgPj4gJG91dHB1dF9vYmpkaXIvYTJpeGxpYnJhcnkuZGF0YX4kRUNITyAiI2RlZmlu ZSBSRVZJU0lPTiAkcmV2aXNpb24iID4+ICRvdXRwdXRfb2JqZGlyL2EyaXhsaWJyYXJ5LmRhdGF+ JEFSICRBUl9GTEFHUyAkbGliICRsaWJvYmpzfiRSQU5MSUIgJGxpYn4oY2QgJG91dHB1dF9vYmpk aXIgJiYgYTJpeGxpYnJhcnkgLTMyKScKKysgICAgICAgICAgICBoYXJkY29kZV9saWJkaXJfZmxh Z19zcGVjPSctTCRsaWJkaXInCisrICAgICAgICAgICAgaGFyZGNvZGVfbWludXNfTD15ZXMKKysg ICAgICAgIDs7CisrICAgICAgZXNhYworKyAgICAgIDs7CisrCisrICAgIGJzZGlbNDVdKikKKysg ICAgICBleHBvcnRfZHluYW1pY19mbGFnX3NwZWM9LXJkeW5hbWljCisrICAgICAgOzsKKysKKysg ICAgY3lnd2luKiB8IG1pbmd3KiB8IHB3MzIqIHwgY2VnY2MqKQorKyAgICAgICMgV2hlbiBub3Qg dXNpbmcgZ2NjLCB3ZSBjdXJyZW50bHkgYXNzdW1lIHRoYXQgd2UgYXJlIHVzaW5nCisrICAgICAg IyBNaWNyb3NvZnQgVmlzdWFsIEMrKy4KKysgICAgICAjIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3Nw ZWMgaXMgYWN0dWFsbHkgbWVhbmluZ2xlc3MsIGFzIHRoZXJlIGlzCisrICAgICAgIyBubyBzZWFy Y2ggcGF0aCBmb3IgRExMcy4KKysgICAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjPScgJwor KyAgICAgIGFsbG93X3VuZGVmaW5lZF9mbGFnPXVuc3VwcG9ydGVkCisrICAgICAgIyBUZWxsIGx0 bWFpbiB0byBtYWtlIC5saWIgZmlsZXMsIG5vdCAuYSBmaWxlcy4KKysgICAgICBsaWJleHQ9bGli CisrICAgICAgIyBUZWxsIGx0bWFpbiB0byBtYWtlIC5kbGwgZmlsZXMsIG5vdCAuc28gZmlsZXMu CisrICAgICAgc2hyZXh0X2NtZHM9Ii5kbGwiCisrICAgICAgIyBGSVhNRTogU2V0dGluZyBsaW5r bmFtZXMgaGVyZSBpcyBhIGJhZCBoYWNrLgorKyAgICAgIGFyY2hpdmVfY21kcz0nJENDIC1vICRs aWIgJGxpYm9ianMgJGNvbXBpbGVyX2ZsYWdzIGAkRUNITyAiWCRkZXBsaWJzIiB8ICRYc2VkIC1l ICdcJydzLyAtbGMkLy8nXCcnYCAtbGluayAtZGxsfmxpbmtuYW1lcz0nCisrICAgICAgIyBUaGUg bGlua2VyIHdpbGwgYXV0b21hdGljYWxseSBidWlsZCBhIC5saWIgZmlsZSBpZiB3ZSBidWlsZCBh IERMTC4KKysgICAgICBvbGRfYXJjaGl2ZV9mcm9tX25ld19jbWRzPSd0cnVlJworKyAgICAgICMg RklYTUU6IFNob3VsZCBsZXQgdGhlIHVzZXIgc3BlY2lmeSB0aGUgbGliIHByb2dyYW0uCisrICAg ICAgb2xkX2FyY2hpdmVfY21kcz0nbGliIC1PVVQ6JG9sZGxpYiRvbGRvYmpzJG9sZF9kZXBsaWJz JworKyAgICAgIGZpeF9zcmNmaWxlX3BhdGg9J2BjeWdwYXRoIC13ICIkc3JjZmlsZSJgJworKyAg ICAgIGVuYWJsZV9zaGFyZWRfd2l0aF9zdGF0aWNfcnVudGltZXM9eWVzCisrICAgICAgOzsKKysK KysgICAgZGFyd2luKiB8IHJoYXBzb2R5KikKKysKKysKKysgIGFyY2hpdmVfY21kc19uZWVkX2xj PW5vCisrICBoYXJkY29kZV9kaXJlY3Q9bm8KKysgIGhhcmRjb2RlX2F1dG9tYXRpYz15ZXMKKysg IGhhcmRjb2RlX3NobGlicGF0aF92YXI9dW5zdXBwb3J0ZWQKKysgIHdob2xlX2FyY2hpdmVfZmxh Z19zcGVjPScnCisrICBsaW5rX2FsbF9kZXBsaWJzPXllcworKyAgYWxsb3dfdW5kZWZpbmVkX2Zs YWc9IiRfbHRfZGFyX2FsbG93X3VuZGVmaW5lZCIKKysgIGNhc2UgJGNjX2Jhc2VuYW1lIGluCisr ICAgICBpZm9ydCopIF9sdF9kYXJfY2FuX3NoYXJlZD15ZXMgOzsKKysgICAgICopIF9sdF9kYXJf Y2FuX3NoYXJlZD0kR0NDIDs7CisrICBlc2FjCisrICBpZiB0ZXN0ICIkX2x0X2Rhcl9jYW5fc2hh cmVkIiA9ICJ5ZXMiOyB0aGVuCisrICAgIG91dHB1dF92ZXJib3NlX2xpbmtfY21kPWVjaG8KKysg ICAgYXJjaGl2ZV9jbWRzPSJcJENDIC1keW5hbWljbGliIFwkYWxsb3dfdW5kZWZpbmVkX2ZsYWcg LW8gXCRsaWIgXCRsaWJvYmpzIFwkZGVwbGlicyBcJGNvbXBpbGVyX2ZsYWdzIC1pbnN0YWxsX25h bWUgXCRycGF0aC9cJHNvbmFtZSBcJHZlcnN0cmluZyAkX2x0X2Rhcl9zaW5nbGVfbW9kJHtfbHRf ZHN5bXV0aWx9IgorKyAgICBtb2R1bGVfY21kcz0iXCRDQyBcJGFsbG93X3VuZGVmaW5lZF9mbGFn IC1vIFwkbGliIC1idW5kbGUgXCRsaWJvYmpzIFwkZGVwbGlicyBcJGNvbXBpbGVyX2ZsYWdzJHtf bHRfZHN5bXV0aWx9IgorKyAgICBhcmNoaXZlX2V4cHN5bV9jbWRzPSJzZWQgJ3MsXixfLCcgPCBc JGV4cG9ydF9zeW1ib2xzID4gXCRvdXRwdXRfb2JqZGlyL1wke2xpYm5hbWV9LXN5bWJvbHMuZXhw c3ltflwkQ0MgLWR5bmFtaWNsaWIgXCRhbGxvd191bmRlZmluZWRfZmxhZyAtbyBcJGxpYiBcJGxp Ym9ianMgXCRkZXBsaWJzIFwkY29tcGlsZXJfZmxhZ3MgLWluc3RhbGxfbmFtZSBcJHJwYXRoL1wk c29uYW1lIFwkdmVyc3RyaW5nICR7X2x0X2Rhcl9zaW5nbGVfbW9kfSR7X2x0X2Rhcl9leHBvcnRf c3ltc30ke19sdF9kc3ltdXRpbH0iCisrICAgIG1vZHVsZV9leHBzeW1fY21kcz0ic2VkIC1lICdz LF4sXywnIDwgXCRleHBvcnRfc3ltYm9scyA+IFwkb3V0cHV0X29iamRpci9cJHtsaWJuYW1lfS1z eW1ib2xzLmV4cHN5bX5cJENDIFwkYWxsb3dfdW5kZWZpbmVkX2ZsYWcgLW8gXCRsaWIgLWJ1bmRs ZSBcJGxpYm9ianMgXCRkZXBsaWJzIFwkY29tcGlsZXJfZmxhZ3Mke19sdF9kYXJfZXhwb3J0X3N5 bXN9JHtfbHRfZHN5bXV0aWx9IgorKworKyAgZWxzZQorKyAgbGRfc2hsaWJzPW5vCisrICBmaQor KworKyAgICAgIDs7CisrCisrICAgIGRndXgqKQorKyAgICAgIGFyY2hpdmVfY21kcz0nJExEIC1H IC1oICRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzJworKyAg ICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWM9Jy1MJGxpYmRpcicKKysgICAgICBoYXJkY29k ZV9zaGxpYnBhdGhfdmFyPW5vCisrICAgICAgOzsKKysKKysgICAgZnJlZWJzZDEqKQorKyAgICAg IGxkX3NobGlicz1ubworKyAgICAgIDs7CisrCisrICAgICMgRnJlZUJTRCAyLjIuWzAxMl0gYWxs b3dzIHVzIHRvIGluY2x1ZGUgYysrcnQwLm8gdG8gZ2V0IEMrKyBjb25zdHJ1Y3RvcgorKyAgICAj IHN1cHBvcnQuICBGdXR1cmUgdmVyc2lvbnMgZG8gdGhpcyBhdXRvbWF0aWNhbGx5LCBidXQgYW4g ZXhwbGljaXQgYysrcnQwLm8KKysgICAgIyBkb2VzIG5vdCBicmVhayBhbnl0aGluZywgYW5kIGhl bHBzIHNpZ25pZmljYW50bHkgKGF0IHRoZSBjb3N0IG9mIGEgbGl0dGxlCisrICAgICMgZXh0cmEg c3BhY2UpLgorKyAgICBmcmVlYnNkMi4yKikKKysgICAgICBhcmNoaXZlX2NtZHM9JyRMRCAtQnNo YXJlYWJsZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRsaW5rZXJfZmxhZ3MgL3Vzci9saWIv YysrcnQwLm8nCisrICAgICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYz0nLVIkbGliZGlyJwor KyAgICAgIGhhcmRjb2RlX2RpcmVjdD15ZXMKKysgICAgICBoYXJkY29kZV9zaGxpYnBhdGhfdmFy PW5vCisrICAgICAgOzsKKysKKysgICAgIyBVbmZvcnR1bmF0ZWx5LCBvbGRlciB2ZXJzaW9ucyBv ZiBGcmVlQlNEIDIgZG8gbm90IGhhdmUgdGhpcyBmZWF0dXJlLgorKyAgICBmcmVlYnNkMiopCisr ICAgICAgYXJjaGl2ZV9jbWRzPSckTEQgLUJzaGFyZWFibGUgLW8gJGxpYiAkbGlib2JqcyAkZGVw bGlicyAkbGlua2VyX2ZsYWdzJworKyAgICAgIGhhcmRjb2RlX2RpcmVjdD15ZXMKKysgICAgICBo YXJkY29kZV9taW51c19MPXllcworKyAgICAgIGhhcmRjb2RlX3NobGlicGF0aF92YXI9bm8KKysg ICAgICA7OworKworKyAgICAjIEZyZWVCU0QgMyBhbmQgZ3JlYXRlciB1c2VzIGdjYyAtc2hhcmVk IHRvIGRvIHNoYXJlZCBsaWJyYXJpZXMuCisrICAgIGZyZWVic2QqIHwgZHJhZ29uZmx5KikKKysg ICAgICBhcmNoaXZlX2NtZHM9JyRDQyAtc2hhcmVkIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMg JGNvbXBpbGVyX2ZsYWdzJworKyAgICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWM9Jy1SJGxp YmRpcicKKysgICAgICBoYXJkY29kZV9kaXJlY3Q9eWVzCisrICAgICAgaGFyZGNvZGVfc2hsaWJw YXRoX3Zhcj1ubworKyAgICAgIDs7CisrCisrICAgIGhwdXg5KikKKysgICAgICBpZiB0ZXN0ICIk R0NDIiA9IHllczsgdGhlbgorKwlhcmNoaXZlX2NtZHM9JyRSTSAkb3V0cHV0X29iamRpci8kc29u YW1lfiRDQyAtc2hhcmVkIC1mUElDICR7d2x9K2IgJHt3bH0kaW5zdGFsbF9saWJkaXIgLW8gJG91 dHB1dF9vYmpkaXIvJHNvbmFtZSAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3N+dGVz dCAkb3V0cHV0X29iamRpci8kc29uYW1lID0gJGxpYiB8fCBtdiAkb3V0cHV0X29iamRpci8kc29u YW1lICRsaWInCisrICAgICAgZWxzZQorKwlhcmNoaXZlX2NtZHM9JyRSTSAkb3V0cHV0X29iamRp ci8kc29uYW1lfiRMRCAtYiArYiAkaW5zdGFsbF9saWJkaXIgLW8gJG91dHB1dF9vYmpkaXIvJHNv bmFtZSAkbGlib2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzfnRlc3QgJG91dHB1dF9vYmpkaXIv JHNvbmFtZSA9ICRsaWIgfHwgbXYgJG91dHB1dF9vYmpkaXIvJHNvbmFtZSAkbGliJworKyAgICAg IGZpCisrICAgICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYz0nJHt3bH0rYiAke3dsfSRsaWJk aXInCisrICAgICAgaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvcj06CisrICAgICAgaGFyZGNvZGVf ZGlyZWN0PXllcworKworKyAgICAgICMgaGFyZGNvZGVfbWludXNfTDogTm90IHJlYWxseSBpbiB0 aGUgc2VhcmNoIFBBVEgsCisrICAgICAgIyBidXQgYXMgdGhlIGRlZmF1bHQgbG9jYXRpb24gb2Yg dGhlIGxpYnJhcnkuCisrICAgICAgaGFyZGNvZGVfbWludXNfTD15ZXMKKysgICAgICBleHBvcnRf ZHluYW1pY19mbGFnX3NwZWM9JyR7d2x9LUUnCisrICAgICAgOzsKKysKKysgICAgaHB1eDEwKikK KysgICAgICBpZiB0ZXN0ICIkR0NDIiA9IHllcyAtYSAiJHdpdGhfZ251X2xkIiA9IG5vOyB0aGVu CisrCWFyY2hpdmVfY21kcz0nJENDIC1zaGFyZWQgLWZQSUMgJHt3bH0raCAke3dsfSRzb25hbWUg JHt3bH0rYiAke3dsfSRpbnN0YWxsX2xpYmRpciAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRj b21waWxlcl9mbGFncycKKysgICAgICBlbHNlCisrCWFyY2hpdmVfY21kcz0nJExEIC1iICtoICRz b25hbWUgK2IgJGluc3RhbGxfbGliZGlyIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGxpbmtl cl9mbGFncycKKysgICAgICBmaQorKyAgICAgIGlmIHRlc3QgIiR3aXRoX2dudV9sZCIgPSBubzsg dGhlbgorKwloYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjPScke3dsfStiICR7d2x9JGxpYmRpcicK KysJaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19sZD0nK2IgJGxpYmRpcicKKysJaGFyZGNvZGVf bGliZGlyX3NlcGFyYXRvcj06CisrCWhhcmRjb2RlX2RpcmVjdD15ZXMKKysJaGFyZGNvZGVfZGly ZWN0X2Fic29sdXRlPXllcworKwlleHBvcnRfZHluYW1pY19mbGFnX3NwZWM9JyR7d2x9LUUnCisr CSMgaGFyZGNvZGVfbWludXNfTDogTm90IHJlYWxseSBpbiB0aGUgc2VhcmNoIFBBVEgsCisrCSMg YnV0IGFzIHRoZSBkZWZhdWx0IGxvY2F0aW9uIG9mIHRoZSBsaWJyYXJ5LgorKwloYXJkY29kZV9t aW51c19MPXllcworKyAgICAgIGZpCisrICAgICAgOzsKKysKKysgICAgaHB1eDExKikKKysgICAg ICBpZiB0ZXN0ICIkR0NDIiA9IHllcyAtYSAiJHdpdGhfZ251X2xkIiA9IG5vOyB0aGVuCisrCWNh c2UgJGhvc3RfY3B1IGluCisrCWhwcGEqNjQqKQorKwkgIGFyY2hpdmVfY21kcz0nJENDIC1zaGFy ZWQgJHt3bH0raCAke3dsfSRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGls ZXJfZmxhZ3MnCisrCSAgOzsKKysJaWE2NCopCisrCSAgYXJjaGl2ZV9jbWRzPSckQ0MgLXNoYXJl ZCAtZlBJQyAke3dsfStoICR7d2x9JHNvbmFtZSAke3dsfStub2RlZmF1bHRycGF0aCAtbyAkbGli ICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKKysJICA7OworKwkqKQorKwkgIGFy Y2hpdmVfY21kcz0nJENDIC1zaGFyZWQgLWZQSUMgJHt3bH0raCAke3dsfSRzb25hbWUgJHt3bH0r YiAke3dsfSRpbnN0YWxsX2xpYmRpciAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxl cl9mbGFncycKKysJICA7OworKwllc2FjCisrICAgICAgZWxzZQorKwljYXNlICRob3N0X2NwdSBp bgorKwlocHBhKjY0KikKKysJICBhcmNoaXZlX2NtZHM9JyRDQyAtYiAke3dsfStoICR7d2x9JHNv bmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKKysJICA7Owor KwlpYTY0KikKKysJICBhcmNoaXZlX2NtZHM9JyRDQyAtYiAke3dsfStoICR7d2x9JHNvbmFtZSAk e3dsfStub2RlZmF1bHRycGF0aCAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9m bGFncycKKysJICA7OworKwkqKQorKwkgIGFyY2hpdmVfY21kcz0nJENDIC1iICR7d2x9K2ggJHt3 bH0kc29uYW1lICR7d2x9K2IgJHt3bH0kaW5zdGFsbF9saWJkaXIgLW8gJGxpYiAkbGlib2JqcyAk ZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCisrCSAgOzsKKysJZXNhYworKyAgICAgIGZpCisrICAg ICAgaWYgdGVzdCAiJHdpdGhfZ251X2xkIiA9IG5vOyB0aGVuCisrCWhhcmRjb2RlX2xpYmRpcl9m bGFnX3NwZWM9JyR7d2x9K2IgJHt3bH0kbGliZGlyJworKwloYXJkY29kZV9saWJkaXJfc2VwYXJh dG9yPToKKysKKysJY2FzZSAkaG9zdF9jcHUgaW4KKysJaHBwYSo2NCp8aWE2NCopCisrCSAgaGFy ZGNvZGVfZGlyZWN0PW5vCisrCSAgaGFyZGNvZGVfc2hsaWJwYXRoX3Zhcj1ubworKwkgIDs7Cisr CSopCisrCSAgaGFyZGNvZGVfZGlyZWN0PXllcworKwkgIGhhcmRjb2RlX2RpcmVjdF9hYnNvbHV0 ZT15ZXMKKysJICBleHBvcnRfZHluYW1pY19mbGFnX3NwZWM9JyR7d2x9LUUnCisrCisrCSAgIyBo YXJkY29kZV9taW51c19MOiBOb3QgcmVhbGx5IGluIHRoZSBzZWFyY2ggUEFUSCwKKysJICAjIGJ1 dCBhcyB0aGUgZGVmYXVsdCBsb2NhdGlvbiBvZiB0aGUgbGlicmFyeS4KKysJICBoYXJkY29kZV9t aW51c19MPXllcworKwkgIDs7CisrCWVzYWMKKysgICAgICBmaQorKyAgICAgIDs7CisrCisrICAg IGlyaXg1KiB8IGlyaXg2KiB8IG5vbnN0b3B1eCopCisrICAgICAgaWYgdGVzdCAiJEdDQyIgPSB5 ZXM7IHRoZW4KKysJYXJjaGl2ZV9jbWRzPSckQ0MgLXNoYXJlZCAkbGlib2JqcyAkZGVwbGlicyAk Y29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR7d2x9JHNvbmFtZSBgdGVzdCAtbiAiJHZlcnN0 cmluZyIgJiYgJEVDSE8gIlgke3dsfS1zZXRfdmVyc2lvbiAke3dsfSR2ZXJzdHJpbmciIHwgJFhz ZWRgICR7d2x9LXVwZGF0ZV9yZWdpc3RyeSAke3dsfSR7b3V0cHV0X29iamRpcn0vc29fbG9jYXRp b25zIC1vICRsaWInCisrCSMgVHJ5IHRvIHVzZSB0aGUgLWV4cG9ydGVkX3N5bWJvbCBsZCBvcHRp b24sIGlmIGl0IGRvZXMgbm90CisrCSMgd29yaywgYXNzdW1lIHRoYXQgLWV4cG9ydHNfZmlsZSBk b2VzIG5vdCB3b3JrIGVpdGhlciBhbmQKKysJIyBpbXBsaWNpdGx5IGV4cG9ydCBhbGwgc3ltYm9s cy4KKysgICAgICAgIHNhdmVfTERGTEFHUz0iJExERkxBR1MiCisrICAgICAgICBMREZMQUdTPSIk TERGTEFHUyAtc2hhcmVkICR7d2x9LWV4cG9ydGVkX3N5bWJvbCAke3dsfWZvbyAke3dsfS11cGRh dGVfcmVnaXN0cnkgJHt3bH0vZGV2L251bGwiCisrICAgICAgICBjYXQgPmNvbmZ0ZXN0LiRhY19l eHQgPDxfQUNFT0YKKytpbnQgZm9vKHZvaWQpIHt9CisrX0FDRU9GCisrcm0gLWYgY29uZnRlc3Qu JGFjX29iamV4dCBjb25mdGVzdCRhY19leGVleHQKKytpZiB7IChhY190cnk9IiRhY19saW5rIgor K2Nhc2UgIigoJGFjX3RyeSIgaW4KKysgICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89 XCRhY190cnk7OworKyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7CisrZXNhYworK2V2YWwgYWNf dHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIKKyskYXNfZWNobyAi JGFjX3RyeV9lY2hvIikgPiY1CisrICAoZXZhbCAiJGFjX2xpbmsiKSAyPmNvbmZ0ZXN0LmVyMQor KyAgYWNfc3RhdHVzPSQ/CisrICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0 LmVycgorKyAgcm0gLWYgY29uZnRlc3QuZXIxCisrICBjYXQgY29uZnRlc3QuZXJyID4mNQorKyAg JGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKysgIChleGl0 ICRhY19zdGF0dXMpOyB9ICYmIHsKKysJIHRlc3QgLXogIiRhY19jX3dlcnJvcl9mbGFnIiB8fAor KwkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgorKyAgICAgICB9ICYmIHRlc3QgLXMgY29uZnRlc3Qk YWNfZXhlZXh0ICYmIHsKKysJIHRlc3QgIiRjcm9zc19jb21waWxpbmciID0geWVzIHx8CisrCSAk YXNfdGVzdF94IGNvbmZ0ZXN0JGFjX2V4ZWV4dAorKyAgICAgICB9OyB0aGVuCisrICBhcmNoaXZl X2V4cHN5bV9jbWRzPSckQ0MgLXNoYXJlZCAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxh Z3MgJHt3bH0tc29uYW1lICR7d2x9JHNvbmFtZSBgdGVzdCAtbiAiJHZlcnN0cmluZyIgJiYgJEVD SE8gIlgke3dsfS1zZXRfdmVyc2lvbiAke3dsfSR2ZXJzdHJpbmciIHwgJFhzZWRgICR7d2x9LXVw ZGF0ZV9yZWdpc3RyeSAke3dsfSR7b3V0cHV0X29iamRpcn0vc29fbG9jYXRpb25zICR7d2x9LWV4 cG9ydHNfZmlsZSAke3dsfSRleHBvcnRfc3ltYm9scyAtbyAkbGliJworKworK2Vsc2UKKysgICRh c19lY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQorK3NlZCAncy9eL3wgLycg Y29uZnRlc3QuJGFjX2V4dCA+JjUKKysKKysKKytmaQorKworK3JtIC1yZiBjb25mdGVzdC5kU1lN Cisrcm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdF9p cGE4X2NvbmZ0ZXN0Lm9vIFwKKysgICAgICBjb25mdGVzdCRhY19leGVleHQgY29uZnRlc3QuJGFj X2V4dAorKyAgICAgICAgTERGTEFHUz0iJHNhdmVfTERGTEFHUyIKKysgICAgICBlbHNlCisrCWFy Y2hpdmVfY21kcz0nJENDIC1zaGFyZWQgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdz IC1zb25hbWUgJHNvbmFtZSBgdGVzdCAtbiAiJHZlcnN0cmluZyIgJiYgJEVDSE8gIlgtc2V0X3Zl cnNpb24gJHZlcnN0cmluZyIgfCAkWHNlZGAgLXVwZGF0ZV9yZWdpc3RyeSAke291dHB1dF9vYmpk aXJ9L3NvX2xvY2F0aW9ucyAtbyAkbGliJworKwlhcmNoaXZlX2V4cHN5bV9jbWRzPSckQ0MgLXNo YXJlZCAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgLXNvbmFtZSAkc29uYW1lIGB0 ZXN0IC1uICIkdmVyc3RyaW5nIiAmJiAkRUNITyAiWC1zZXRfdmVyc2lvbiAkdmVyc3RyaW5nIiB8 ICRYc2VkYCAtdXBkYXRlX3JlZ2lzdHJ5ICR7b3V0cHV0X29iamRpcn0vc29fbG9jYXRpb25zIC1l eHBvcnRzX2ZpbGUgJGV4cG9ydF9zeW1ib2xzIC1vICRsaWInCisrICAgICAgZmkKKysgICAgICBh cmNoaXZlX2NtZHNfbmVlZF9sYz0nbm8nCisrICAgICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3Bl Yz0nJHt3bH0tcnBhdGggJHt3bH0kbGliZGlyJworKyAgICAgIGhhcmRjb2RlX2xpYmRpcl9zZXBh cmF0b3I9OgorKyAgICAgIGluaGVyaXRfcnBhdGg9eWVzCisrICAgICAgbGlua19hbGxfZGVwbGli cz15ZXMKKysgICAgICA7OworKworKyAgICBuZXRic2QqKQorKyAgICAgIGlmIGVjaG8gX19FTEZf XyB8ICRDQyAtRSAtIHwgJEdSRVAgX19FTEZfXyA+L2Rldi9udWxsOyB0aGVuCisrCWFyY2hpdmVf Y21kcz0nJExEIC1Cc2hhcmVhYmxlIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGxpbmtlcl9m bGFncycgICMgYS5vdXQKKysgICAgICBlbHNlCisrCWFyY2hpdmVfY21kcz0nJExEIC1zaGFyZWQg LW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzJyAgICAgICMgRUxGCisrICAg ICAgZmkKKysgICAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjPSctUiRsaWJkaXInCisrICAg ICAgaGFyZGNvZGVfZGlyZWN0PXllcworKyAgICAgIGhhcmRjb2RlX3NobGlicGF0aF92YXI9bm8K KysgICAgICA7OworKworKyAgICBuZXdzb3M2KQorKyAgICAgIGFyY2hpdmVfY21kcz0nJExEIC1H IC1oICRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzJworKyAg ICAgIGhhcmRjb2RlX2RpcmVjdD15ZXMKKysgICAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVj PScke3dsfS1ycGF0aCAke3dsfSRsaWJkaXInCisrICAgICAgaGFyZGNvZGVfbGliZGlyX3NlcGFy YXRvcj06CisrICAgICAgaGFyZGNvZGVfc2hsaWJwYXRoX3Zhcj1ubworKyAgICAgIDs7CisrCisr ICAgICpudG8qIHwgKnFueCopCisrICAgICAgOzsKKysKKysgICAgb3BlbmJzZCopCisrICAgICAg aWYgdGVzdCAtZiAvdXNyL2xpYmV4ZWMvbGQuc287IHRoZW4KKysJaGFyZGNvZGVfZGlyZWN0PXll cworKwloYXJkY29kZV9zaGxpYnBhdGhfdmFyPW5vCisrCWhhcmRjb2RlX2RpcmVjdF9hYnNvbHV0 ZT15ZXMKKysJaWYgdGVzdCAteiAiYGVjaG8gX19FTEZfXyB8ICRDQyAtRSAtIHwgJEdSRVAgX19F TEZfX2AiIHx8IHRlc3QgIiRob3N0X29zLSRob3N0X2NwdSIgPSAib3BlbmJzZDIuOC1wb3dlcnBj IjsgdGhlbgorKwkgIGFyY2hpdmVfY21kcz0nJENDIC1zaGFyZWQgJHBpY19mbGFnIC1vICRsaWIg JGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJworKwkgIGFyY2hpdmVfZXhwc3ltX2Nt ZHM9JyRDQyAtc2hhcmVkICRwaWNfZmxhZyAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21w aWxlcl9mbGFncyAke3dsfS1yZXRhaW4tc3ltYm9scy1maWxlLCRleHBvcnRfc3ltYm9scycKKysJ ICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjPScke3dsfS1ycGF0aCwkbGliZGlyJworKwkgIGV4 cG9ydF9keW5hbWljX2ZsYWdfc3BlYz0nJHt3bH0tRScKKysJZWxzZQorKwkgIGNhc2UgJGhvc3Rf b3MgaW4KKysJICAgb3BlbmJzZFswMV0uKiB8IG9wZW5ic2QyLlswLTddIHwgb3BlbmJzZDIuWzAt N10uKikKKysJICAgICBhcmNoaXZlX2NtZHM9JyRMRCAtQnNoYXJlYWJsZSAtbyAkbGliICRsaWJv YmpzICRkZXBsaWJzICRsaW5rZXJfZmxhZ3MnCisrCSAgICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdf c3BlYz0nLVIkbGliZGlyJworKwkgICAgIDs7CisrCSAgICopCisrCSAgICAgYXJjaGl2ZV9jbWRz PSckQ0MgLXNoYXJlZCAkcGljX2ZsYWcgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGls ZXJfZmxhZ3MnCisrCSAgICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYz0nJHt3bH0tcnBhdGgs JGxpYmRpcicKKysJICAgICA7OworKwkgIGVzYWMKKysJZmkKKysgICAgICBlbHNlCisrCWxkX3No bGlicz1ubworKyAgICAgIGZpCisrICAgICAgOzsKKysKKysgICAgb3MyKikKKysgICAgICBoYXJk Y29kZV9saWJkaXJfZmxhZ19zcGVjPSctTCRsaWJkaXInCisrICAgICAgaGFyZGNvZGVfbWludXNf TD15ZXMKKysgICAgICBhbGxvd191bmRlZmluZWRfZmxhZz11bnN1cHBvcnRlZAorKyAgICAgIGFy Y2hpdmVfY21kcz0nJEVDSE8gIkxJQlJBUlkgJGxpYm5hbWUgSU5JVElOU1RBTkNFIiA+ICRvdXRw dXRfb2JqZGlyLyRsaWJuYW1lLmRlZn4kRUNITyAiREVTQ1JJUFRJT04gXCIkbGlibmFtZVwiIiA+ PiAkb3V0cHV0X29iamRpci8kbGlibmFtZS5kZWZ+JEVDSE8gREFUQSA+PiAkb3V0cHV0X29iamRp ci8kbGlibmFtZS5kZWZ+JEVDSE8gIiBTSU5HTEUgTk9OU0hBUkVEIiA+PiAkb3V0cHV0X29iamRp ci8kbGlibmFtZS5kZWZ+JEVDSE8gRVhQT1JUUyA+PiAkb3V0cHV0X29iamRpci8kbGlibmFtZS5k ZWZ+ZW14ZXhwICRsaWJvYmpzID4+ICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLmRlZn4kQ0MgLVpk bGwgLVpjcnRkbGwgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJG91 dHB1dF9vYmpkaXIvJGxpYm5hbWUuZGVmJworKyAgICAgIG9sZF9hcmNoaXZlX2Zyb21fbmV3X2Nt ZHM9J2VteGltcCAtbyAkb3V0cHV0X29iamRpci8kbGlibmFtZS5hICRvdXRwdXRfb2JqZGlyLyRs aWJuYW1lLmRlZicKKysgICAgICA7OworKworKyAgICBvc2YzKikKKysgICAgICBpZiB0ZXN0ICIk R0NDIiA9IHllczsgdGhlbgorKwlhbGxvd191bmRlZmluZWRfZmxhZz0nICR7d2x9LWV4cGVjdF91 bnJlc29sdmVkICR7d2x9XConCisrCWFyY2hpdmVfY21kcz0nJENDIC1zaGFyZWQke2FsbG93X3Vu ZGVmaW5lZF9mbGFnfSAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29u YW1lICR7d2x9JHNvbmFtZSBgdGVzdCAtbiAiJHZlcnN0cmluZyIgJiYgJEVDSE8gIlgke3dsfS1z ZXRfdmVyc2lvbiAke3dsfSR2ZXJzdHJpbmciIHwgJFhzZWRgICR7d2x9LXVwZGF0ZV9yZWdpc3Ry eSAke3dsfSR7b3V0cHV0X29iamRpcn0vc29fbG9jYXRpb25zIC1vICRsaWInCisrICAgICAgZWxz ZQorKwlhbGxvd191bmRlZmluZWRfZmxhZz0nIC1leHBlY3RfdW5yZXNvbHZlZCBcKicKKysJYXJj aGl2ZV9jbWRzPSckQ0MgLXNoYXJlZCR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9ICRsaWJvYmpzICRk ZXBsaWJzICRjb21waWxlcl9mbGFncyAtc29uYW1lICRzb25hbWUgYHRlc3QgLW4gIiR2ZXJzdHJp bmciICYmICRFQ0hPICJYLXNldF92ZXJzaW9uICR2ZXJzdHJpbmciIHwgJFhzZWRgIC11cGRhdGVf cmVnaXN0cnkgJHtvdXRwdXRfb2JqZGlyfS9zb19sb2NhdGlvbnMgLW8gJGxpYicKKysgICAgICBm aQorKyAgICAgIGFyY2hpdmVfY21kc19uZWVkX2xjPSdubycKKysgICAgICBoYXJkY29kZV9saWJk aXJfZmxhZ19zcGVjPScke3dsfS1ycGF0aCAke3dsfSRsaWJkaXInCisrICAgICAgaGFyZGNvZGVf bGliZGlyX3NlcGFyYXRvcj06CisrICAgICAgOzsKKysKKysgICAgb3NmNCogfCBvc2Y1KikJIyBh cyBvc2YzKiB3aXRoIHRoZSBhZGRpdGlvbiBvZiAtbXN5bSBmbGFnCisrICAgICAgaWYgdGVzdCAi JEdDQyIgPSB5ZXM7IHRoZW4KKysJYWxsb3dfdW5kZWZpbmVkX2ZsYWc9JyAke3dsfS1leHBlY3Rf dW5yZXNvbHZlZCAke3dsfVwqJworKwlhcmNoaXZlX2NtZHM9JyRDQyAtc2hhcmVkJHthbGxvd191 bmRlZmluZWRfZmxhZ30gJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LW1z eW0gJHt3bH0tc29uYW1lICR7d2x9JHNvbmFtZSBgdGVzdCAtbiAiJHZlcnN0cmluZyIgJiYgJEVD SE8gIlgke3dsfS1zZXRfdmVyc2lvbiAke3dsfSR2ZXJzdHJpbmciIHwgJFhzZWRgICR7d2x9LXVw ZGF0ZV9yZWdpc3RyeSAke3dsfSR7b3V0cHV0X29iamRpcn0vc29fbG9jYXRpb25zIC1vICRsaWIn CisrCWhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWM9JyR7d2x9LXJwYXRoICR7d2x9JGxpYmRpcicK KysgICAgICBlbHNlCisrCWFsbG93X3VuZGVmaW5lZF9mbGFnPScgLWV4cGVjdF91bnJlc29sdmVk IFwqJworKwlhcmNoaXZlX2NtZHM9JyRDQyAtc2hhcmVkJHthbGxvd191bmRlZmluZWRfZmxhZ30g JGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzIC1tc3ltIC1zb25hbWUgJHNvbmFtZSBg dGVzdCAtbiAiJHZlcnN0cmluZyIgJiYgJEVDSE8gIlgtc2V0X3ZlcnNpb24gJHZlcnN0cmluZyIg fCAkWHNlZGAgLXVwZGF0ZV9yZWdpc3RyeSAke291dHB1dF9vYmpkaXJ9L3NvX2xvY2F0aW9ucyAt byAkbGliJworKwlhcmNoaXZlX2V4cHN5bV9jbWRzPSdmb3IgaSBpbiBgY2F0ICRleHBvcnRfc3lt Ym9sc2A7IGRvIHByaW50ZiAiJXMgJXNcXG4iIC1leHBvcnRlZF9zeW1ib2wgIlwkaSIgPj4gJGxp Yi5leHA7IGRvbmU7IHByaW50ZiAiJXNcXG4iICItaGlkZGVuIj4+ICRsaWIuZXhwfgorKwkkQ0Mg LXNoYXJlZCR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9ICR7d2x9LWlucHV0ICR7d2x9JGxpYi5leHAg JGNvbXBpbGVyX2ZsYWdzICRsaWJvYmpzICRkZXBsaWJzIC1zb25hbWUgJHNvbmFtZSBgdGVzdCAt biAiJHZlcnN0cmluZyIgJiYgJEVDSE8gIlgtc2V0X3ZlcnNpb24gJHZlcnN0cmluZyIgfCAkWHNl ZGAgLXVwZGF0ZV9yZWdpc3RyeSAke291dHB1dF9vYmpkaXJ9L3NvX2xvY2F0aW9ucyAtbyAkbGli fiRSTSAkbGliLmV4cCcKKysKKysJIyBCb3RoIGMgYW5kIGN4eCBjb21waWxlciBzdXBwb3J0IC1y cGF0aCBkaXJlY3RseQorKwloYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjPSctcnBhdGggJGxpYmRp cicKKysgICAgICBmaQorKyAgICAgIGFyY2hpdmVfY21kc19uZWVkX2xjPSdubycKKysgICAgICBo YXJkY29kZV9saWJkaXJfc2VwYXJhdG9yPToKKysgICAgICA7OworKworKyAgICBzb2xhcmlzKikK KysgICAgICBub191bmRlZmluZWRfZmxhZz0nIC16IGRlZnMnCisrICAgICAgaWYgdGVzdCAiJEdD QyIgPSB5ZXM7IHRoZW4KKysJd2xhcmM9JyR7d2x9JworKwlhcmNoaXZlX2NtZHM9JyRDQyAtc2hh cmVkICR7d2x9LXogJHt3bH10ZXh0ICR7d2x9LWggJHt3bH0kc29uYW1lIC1vICRsaWIgJGxpYm9i anMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJworKwlhcmNoaXZlX2V4cHN5bV9jbWRzPSdlY2hv ICJ7IGdsb2JhbDoiID4gJGxpYi5leHB+Y2F0ICRleHBvcnRfc3ltYm9scyB8ICRTRUQgLWUgInMv XCguKlwpL1wxOy8iID4+ICRsaWIuZXhwfmVjaG8gImxvY2FsOiAqOyB9OyIgPj4gJGxpYi5leHB+ CisrCSAgJENDIC1zaGFyZWQgJHt3bH0teiAke3dsfXRleHQgJHt3bH0tTSAke3dsfSRsaWIuZXhw ICR7d2x9LWggJHt3bH0kc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVy X2ZsYWdzfiRSTSAkbGliLmV4cCcKKysgICAgICBlbHNlCisrCWNhc2UgYCRDQyAtViAyPiYxYCBp bgorKwkqIkNvbXBpbGVycyA1LjAiKikKKysJICB3bGFyYz0nJworKwkgIGFyY2hpdmVfY21kcz0n JExEIC1HJHthbGxvd191bmRlZmluZWRfZmxhZ30gLWggJHNvbmFtZSAtbyAkbGliICRsaWJvYmpz ICRkZXBsaWJzICRsaW5rZXJfZmxhZ3MnCisrCSAgYXJjaGl2ZV9leHBzeW1fY21kcz0nZWNobyAi eyBnbG9iYWw6IiA+ICRsaWIuZXhwfmNhdCAkZXhwb3J0X3N5bWJvbHMgfCAkU0VEIC1lICJzL1wo LipcKS9cMTsvIiA+PiAkbGliLmV4cH5lY2hvICJsb2NhbDogKjsgfTsiID4+ICRsaWIuZXhwfgor KwkgICRMRCAtRyR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9IC1NICRsaWIuZXhwIC1oICRzb25hbWUg LW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzfiRSTSAkbGliLmV4cCcKKysJ ICA7OworKwkqKQorKwkgIHdsYXJjPScke3dsfScKKysJICBhcmNoaXZlX2NtZHM9JyRDQyAtRyR7 YWxsb3dfdW5kZWZpbmVkX2ZsYWd9IC1oICRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGli cyAkY29tcGlsZXJfZmxhZ3MnCisrCSAgYXJjaGl2ZV9leHBzeW1fY21kcz0nZWNobyAieyBnbG9i YWw6IiA+ICRsaWIuZXhwfmNhdCAkZXhwb3J0X3N5bWJvbHMgfCAkU0VEIC1lICJzL1woLipcKS9c MTsvIiA+PiAkbGliLmV4cH5lY2hvICJsb2NhbDogKjsgfTsiID4+ICRsaWIuZXhwfgorKwkgICRD QyAtRyR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9IC1NICRsaWIuZXhwIC1oICRzb25hbWUgLW8gJGxp YiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3N+JFJNICRsaWIuZXhwJworKwkgIDs7 CisrCWVzYWMKKysgICAgICBmaQorKyAgICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWM9Jy1S JGxpYmRpcicKKysgICAgICBoYXJkY29kZV9zaGxpYnBhdGhfdmFyPW5vCisrICAgICAgY2FzZSAk aG9zdF9vcyBpbgorKyAgICAgIHNvbGFyaXMyLlswLTVdIHwgc29sYXJpczIuWzAtNV0uKikgOzsK KysgICAgICAqKQorKwkjIFRoZSBjb21waWxlciBkcml2ZXIgd2lsbCBjb21iaW5lIGFuZCByZW9y ZGVyIGxpbmtlciBvcHRpb25zLAorKwkjIGJ1dCB1bmRlcnN0YW5kcyBgLXogbGlua2VyX2ZsYWcn LiAgR0NDIGRpc2NhcmRzIGl0IHdpdGhvdXQgYCR3bCcsCisrCSMgYnV0IGlzIGNhcmVmdWwgZW5v dWdoIG5vdCB0byByZW9yZGVyLgorKwkjIFN1cHBvcnRlZCBzaW5jZSBTb2xhcmlzIDIuNiAobWF5 YmUgMi41LjE/KQorKwlpZiB0ZXN0ICIkR0NDIiA9IHllczsgdGhlbgorKwkgIHdob2xlX2FyY2hp dmVfZmxhZ19zcGVjPScke3dsfS16ICR7d2x9YWxsZXh0cmFjdCRjb252ZW5pZW5jZSAke3dsfS16 ICR7d2x9ZGVmYXVsdGV4dHJhY3QnCisrCWVsc2UKKysJICB3aG9sZV9hcmNoaXZlX2ZsYWdfc3Bl Yz0nLXogYWxsZXh0cmFjdCRjb252ZW5pZW5jZSAteiBkZWZhdWx0ZXh0cmFjdCcKKysJZmkKKysJ OzsKKysgICAgICBlc2FjCisrICAgICAgbGlua19hbGxfZGVwbGlicz15ZXMKKysgICAgICA7Owor KworKyAgICBzdW5vczQqKQorKyAgICAgIGlmIHRlc3QgIngkaG9zdF92ZW5kb3IiID0geHNlcXVl bnQ7IHRoZW4KKysJIyBVc2UgJENDIHRvIGxpbmsgdW5kZXIgc2VxdWVudCwgYmVjYXVzZSBpdCB0 aHJvd3MgaW4gc29tZSBleHRyYSAubworKwkjIGZpbGVzIHRoYXQgbWFrZSAuaW5pdCBhbmQgLmZp bmkgc2VjdGlvbnMgd29yay4KKysJYXJjaGl2ZV9jbWRzPSckQ0MgLUcgJHt3bH0taCAkc29uYW1l IC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJworKyAgICAgIGVsc2UK KysJYXJjaGl2ZV9jbWRzPSckTEQgLWFzc2VydCBwdXJlLXRleHQgLUJzdGF0aWMgLW8gJGxpYiAk bGlib2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzJworKyAgICAgIGZpCisrICAgICAgaGFyZGNv ZGVfbGliZGlyX2ZsYWdfc3BlYz0nLUwkbGliZGlyJworKyAgICAgIGhhcmRjb2RlX2RpcmVjdD15 ZXMKKysgICAgICBoYXJkY29kZV9taW51c19MPXllcworKyAgICAgIGhhcmRjb2RlX3NobGlicGF0 aF92YXI9bm8KKysgICAgICA7OworKworKyAgICBzeXN2NCkKKysgICAgICBjYXNlICRob3N0X3Zl bmRvciBpbgorKwlzbmkpCisrCSAgYXJjaGl2ZV9jbWRzPSckTEQgLUcgLWggJHNvbmFtZSAtbyAk bGliICRsaWJvYmpzICRkZXBsaWJzICRsaW5rZXJfZmxhZ3MnCisrCSAgaGFyZGNvZGVfZGlyZWN0 PXllcyAjIGlzIHRoaXMgcmVhbGx5IHRydWU/Pz8KKysJOzsKKysJc2llbWVucykKKysJICAjIyBM RCBpcyBsZCBpdCBtYWtlcyBhIFBMQU1MSUIKKysJICAjIyBDQyBqdXN0IG1ha2VzIGEgR3Jvc3NN b2R1bGUuCisrCSAgYXJjaGl2ZV9jbWRzPSckTEQgLUcgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGli cyAkbGlua2VyX2ZsYWdzJworKwkgIHJlbG9hZF9jbWRzPSckQ0MgLXIgLW8gJG91dHB1dCRyZWxv YWRfb2JqcycKKysJICBoYXJkY29kZV9kaXJlY3Q9bm8KKysgICAgICAgIDs7CisrCW1vdG9yb2xh KQorKwkgIGFyY2hpdmVfY21kcz0nJExEIC1HIC1oICRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAk ZGVwbGlicyAkbGlua2VyX2ZsYWdzJworKwkgIGhhcmRjb2RlX2RpcmVjdD1ubyAjTW90b3JvbGEg bWFudWFsIHNheXMgeWVzLCBidXQgbXkgdGVzdHMgc2F5IHRoZXkgbGllCisrCTs7CisrICAgICAg ZXNhYworKyAgICAgIHJ1bnBhdGhfdmFyPSdMRF9SVU5fUEFUSCcKKysgICAgICBoYXJkY29kZV9z aGxpYnBhdGhfdmFyPW5vCisrICAgICAgOzsKKysKKysgICAgc3lzdjQuMyopCisrICAgICAgYXJj aGl2ZV9jbWRzPSckTEQgLUcgLWggJHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRs aW5rZXJfZmxhZ3MnCisrICAgICAgaGFyZGNvZGVfc2hsaWJwYXRoX3Zhcj1ubworKyAgICAgIGV4 cG9ydF9keW5hbWljX2ZsYWdfc3BlYz0nLUJleHBvcnQnCisrICAgICAgOzsKKysKKysgICAgc3lz djQqTVAqKQorKyAgICAgIGlmIHRlc3QgLWQgL3Vzci9uZWM7IHRoZW4KKysJYXJjaGl2ZV9jbWRz PSckTEQgLUcgLWggJHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRsaW5rZXJfZmxh Z3MnCisrCWhhcmRjb2RlX3NobGlicGF0aF92YXI9bm8KKysJcnVucGF0aF92YXI9TERfUlVOX1BB VEgKKysJaGFyZGNvZGVfcnVucGF0aF92YXI9eWVzCisrCWxkX3NobGlicz15ZXMKKysgICAgICBm aQorKyAgICAgIDs7CisrCisrICAgIHN5c3Y0KnV3MiogfCBzeXN2NU9wZW5VTklYKiB8IHN5c3Y1 VW5peFdhcmU3LlswMV0uWzEwXSogfCB1bml4d2FyZTcqIHwgc2NvMy4ydjUuMC5bMDI0XSopCisr ICAgICAgbm9fdW5kZWZpbmVkX2ZsYWc9JyR7d2x9LXosdGV4dCcKKysgICAgICBhcmNoaXZlX2Nt ZHNfbmVlZF9sYz1ubworKyAgICAgIGhhcmRjb2RlX3NobGlicGF0aF92YXI9bm8KKysgICAgICBy dW5wYXRoX3Zhcj0nTERfUlVOX1BBVEgnCisrCisrICAgICAgaWYgdGVzdCAiJEdDQyIgPSB5ZXM7 IHRoZW4KKysJYXJjaGl2ZV9jbWRzPSckQ0MgLXNoYXJlZCAke3dsfS1oLCRzb25hbWUgLW8gJGxp YiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCisrCWFyY2hpdmVfZXhwc3ltX2Nt ZHM9JyRDQyAtc2hhcmVkICR7d2x9LUJleHBvcnQ6JGV4cG9ydF9zeW1ib2xzICR7d2x9LWgsJHNv bmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKKysgICAgICBl bHNlCisrCWFyY2hpdmVfY21kcz0nJENDIC1HICR7d2x9LWgsJHNvbmFtZSAtbyAkbGliICRsaWJv YmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKKysJYXJjaGl2ZV9leHBzeW1fY21kcz0nJEND IC1HICR7d2x9LUJleHBvcnQ6JGV4cG9ydF9zeW1ib2xzICR7d2x9LWgsJHNvbmFtZSAtbyAkbGli ICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKKysgICAgICBmaQorKyAgICAgIDs7 CisrCisrICAgIHN5c3Y1KiB8IHNjbzMuMnY1KiB8IHNjbzV2NiopCisrICAgICAgIyBOb3RlOiBX ZSBjYW4gTk9UIHVzZSAteiBkZWZzIGFzIHdlIG1pZ2h0IGRlc2lyZSwgYmVjYXVzZSB3ZSBkbyBu b3QKKysgICAgICAjIGxpbmsgd2l0aCAtbGMsIGFuZCB0aGF0IHdvdWxkIGNhdXNlIGFueSBzeW1i b2xzIHVzZWQgZnJvbSBsaWJjIHRvCisrICAgICAgIyBhbHdheXMgYmUgdW5yZXNvbHZlZCwgd2hp Y2ggbWVhbnMganVzdCBhYm91dCBubyBsaWJyYXJ5IHdvdWxkCisrICAgICAgIyBldmVyIGxpbmsg Y29ycmVjdGx5LiAgSWYgd2UncmUgbm90IHVzaW5nIEdOVSBsZCB3ZSB1c2UgLXogdGV4dAorKyAg ICAgICMgdGhvdWdoLCB3aGljaCBkb2VzIGNhdGNoIHNvbWUgYmFkIHN5bWJvbHMgYnV0IGlzbid0 IGFzIGhlYXZ5LWhhbmRlZAorKyAgICAgICMgYXMgLXogZGVmcy4KKysgICAgICBub191bmRlZmlu ZWRfZmxhZz0nJHt3bH0teix0ZXh0JworKyAgICAgIGFsbG93X3VuZGVmaW5lZF9mbGFnPScke3ds fS16LG5vZGVmcycKKysgICAgICBhcmNoaXZlX2NtZHNfbmVlZF9sYz1ubworKyAgICAgIGhhcmRj b2RlX3NobGlicGF0aF92YXI9bm8KKysgICAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjPSck e3dsfS1SLCRsaWJkaXInCisrICAgICAgaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvcj0nOicKKysg ICAgICBsaW5rX2FsbF9kZXBsaWJzPXllcworKyAgICAgIGV4cG9ydF9keW5hbWljX2ZsYWdfc3Bl Yz0nJHt3bH0tQmV4cG9ydCcKKysgICAgICBydW5wYXRoX3Zhcj0nTERfUlVOX1BBVEgnCisrCisr ICAgICAgaWYgdGVzdCAiJEdDQyIgPSB5ZXM7IHRoZW4KKysJYXJjaGl2ZV9jbWRzPSckQ0MgLXNo YXJlZCAke3dsfS1oLCRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJf ZmxhZ3MnCisrCWFyY2hpdmVfZXhwc3ltX2NtZHM9JyRDQyAtc2hhcmVkICR7d2x9LUJleHBvcnQ6 JGV4cG9ydF9zeW1ib2xzICR7d2x9LWgsJHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJz ICRjb21waWxlcl9mbGFncycKKysgICAgICBlbHNlCisrCWFyY2hpdmVfY21kcz0nJENDIC1HICR7 d2x9LWgsJHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycK KysJYXJjaGl2ZV9leHBzeW1fY21kcz0nJENDIC1HICR7d2x9LUJleHBvcnQ6JGV4cG9ydF9zeW1i b2xzICR7d2x9LWgsJHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9m bGFncycKKysgICAgICBmaQorKyAgICAgIDs7CisrCisrICAgIHV0czQqKQorKyAgICAgIGFyY2hp dmVfY21kcz0nJExEIC1HIC1oICRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkbGlu a2VyX2ZsYWdzJworKyAgICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWM9Jy1MJGxpYmRpcicK KysgICAgICBoYXJkY29kZV9zaGxpYnBhdGhfdmFyPW5vCisrICAgICAgOzsKKysKKysgICAgKikK KysgICAgICBsZF9zaGxpYnM9bm8KKysgICAgICA7OworKyAgICBlc2FjCisrCisrICAgIGlmIHRl c3QgeCRob3N0X3ZlbmRvciA9IHhzbmk7IHRoZW4KKysgICAgICBjYXNlICRob3N0IGluCisrICAg ICAgc3lzdjQgfCBzeXN2NC4ydXcyKiB8IHN5c3Y0LjMqIHwgc3lzdjUqKQorKwlleHBvcnRfZHlu YW1pY19mbGFnX3NwZWM9JyR7d2x9LUJsYXJnZWR5bnN5bScKKysJOzsKKysgICAgICBlc2FjCisr ICAgIGZpCisrICBmaQorKworK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRs ZF9zaGxpYnMiID4mNQorKyRhc19lY2hvICIkbGRfc2hsaWJzIiA+JjY7IH0KKyt0ZXN0ICIkbGRf c2hsaWJzIiA9IG5vICYmIGNhbl9idWlsZF9zaGFyZWQ9bm8KKysKKyt3aXRoX2dudV9sZD0kd2l0 aF9nbnVfbGQKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysj CisrIyBEbyB3ZSBuZWVkIHRvIGV4cGxpY2l0bHkgbGluayBsaWJjPworKyMKKytjYXNlICJ4JGFy Y2hpdmVfY21kc19uZWVkX2xjIiBpbgorK3h8eHllcykKKysgICMgQXNzdW1lIC1sYyBzaG91bGQg YmUgYWRkZWQKKysgIGFyY2hpdmVfY21kc19uZWVkX2xjPXllcworKworKyAgaWYgdGVzdCAiJGVu YWJsZV9zaGFyZWQiID0geWVzICYmIHRlc3QgIiRHQ0MiID0geWVzOyB0aGVuCisrICAgIGNhc2Ug JGFyY2hpdmVfY21kcyBpbgorKyAgICAqJ34nKikKKysgICAgICAjIEZJWE1FOiB3ZSBtYXkgaGF2 ZSB0byBkZWFsIHdpdGggbXVsdGktY29tbWFuZCBzZXF1ZW5jZXMuCisrICAgICAgOzsKKysgICAg JyRDQyAnKikKKysgICAgICAjIFRlc3Qgd2hldGhlciB0aGUgY29tcGlsZXIgaW1wbGljaXRseSBs aW5rcyB3aXRoIC1sYyBzaW5jZSBvbiBzb21lCisrICAgICAgIyBzeXN0ZW1zLCAtbGdjYyBoYXMg dG8gY29tZSBiZWZvcmUgLWxjLiBJZiBnY2MgYWxyZWFkeSBwYXNzZXMgLWxjCisrICAgICAgIyB0 byBsZCwgZG9uJ3QgYWRkIC1sYyBiZWZvcmUgLWxnY2MuCisrICAgICAgeyAkYXNfZWNobyAiJGFz X21lOiRMSU5FTk86IGNoZWNraW5nIHdoZXRoZXIgLWxjIHNob3VsZCBiZSBleHBsaWNpdGx5IGxp bmtlZCBpbiIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgd2hldGhlciAtbGMgc2hvdWxkIGJl IGV4cGxpY2l0bHkgbGlua2VkIGluLi4uICIgPiY2OyB9CisrICAgICAgJFJNIGNvbmZ0ZXN0Kgor KyAgICAgIGVjaG8gIiRsdF9zaW1wbGVfY29tcGlsZV90ZXN0X2NvZGUiID4gY29uZnRlc3QuJGFj X2V4dAorKworKyAgICAgIGlmIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX2Nv bXBpbGVcIiIpID4mNQorKyAgKGV2YWwgJGFjX2NvbXBpbGUpIDI+JjUKKysgIGFjX3N0YXR1cz0k PworKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKysg IChleGl0ICRhY19zdGF0dXMpOyB9IDI+Y29uZnRlc3QuZXJyOyB0aGVuCisrICAgICAgICBzb25h bWU9Y29uZnRlc3QKKysgICAgICAgIGxpYj1jb25mdGVzdAorKyAgICAgICAgbGlib2Jqcz1jb25m dGVzdC4kYWNfb2JqZXh0CisrICAgICAgICBkZXBsaWJzPQorKyAgICAgICAgd2w9JGx0X3Byb2df Y29tcGlsZXJfd2wKKysJcGljX2ZsYWc9JGx0X3Byb2dfY29tcGlsZXJfcGljCisrICAgICAgICBj b21waWxlcl9mbGFncz0tdgorKyAgICAgICAgbGlua2VyX2ZsYWdzPS12CisrICAgICAgICB2ZXJz dHJpbmc9CisrICAgICAgICBvdXRwdXRfb2JqZGlyPS4KKysgICAgICAgIGxpYm5hbWU9Y29uZnRl c3QKKysgICAgICAgIGx0X3NhdmVfYWxsb3dfdW5kZWZpbmVkX2ZsYWc9JGFsbG93X3VuZGVmaW5l ZF9mbGFnCisrICAgICAgICBhbGxvd191bmRlZmluZWRfZmxhZz0KKysgICAgICAgIGlmIHsgKGV2 YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFyY2hpdmVfY21kcyAyXD5cJjEgXHwgJEdSRVAg XCIgLWxjIFwiIFw+L2Rldi9udWxsIDJcPlwmMVwiIikgPiY1CisrICAoZXZhbCAkYXJjaGl2ZV9j bWRzIDJcPlwmMSBcfCAkR1JFUCBcIiAtbGMgXCIgXD4vZGV2L251bGwgMlw+XCYxKSAyPiY1Cisr ICBhY19zdGF0dXM9JD8KKysgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0 YXR1cyIgPiY1CisrICAoZXhpdCAkYWNfc3RhdHVzKTsgfQorKyAgICAgICAgdGhlbgorKwkgIGFy Y2hpdmVfY21kc19uZWVkX2xjPW5vCisrICAgICAgICBlbHNlCisrCSAgYXJjaGl2ZV9jbWRzX25l ZWRfbGM9eWVzCisrICAgICAgICBmaQorKyAgICAgICAgYWxsb3dfdW5kZWZpbmVkX2ZsYWc9JGx0 X3NhdmVfYWxsb3dfdW5kZWZpbmVkX2ZsYWcKKysgICAgICBlbHNlCisrICAgICAgICBjYXQgY29u ZnRlc3QuZXJyIDE+JjUKKysgICAgICBmaQorKyAgICAgICRSTSBjb25mdGVzdCoKKysgICAgICB7 ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYXJjaGl2ZV9jbWRzX25lZWRfbGMi ID4mNQorKyRhc19lY2hvICIkYXJjaGl2ZV9jbWRzX25lZWRfbGMiID4mNjsgfQorKyAgICAgIDs7 CisrICAgIGVzYWMKKysgIGZpCisrICA7OworK2VzYWMKKysKKysKKysKKysKKysKKysKKysKKysK KysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysK KysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysK KysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysK KysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysK KysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysK KysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysK KysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysK KysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysgIHsgJGFz X2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBkeW5hbWljIGxpbmtlciBjaGFyYWN0ZXJp c3RpY3MiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIGR5bmFtaWMgbGlua2VyIGNoYXJhY3Rl cmlzdGljcy4uLiAiID4mNjsgfQorKworK2lmIHRlc3QgIiRHQ0MiID0geWVzOyB0aGVuCisrICBj YXNlICRob3N0X29zIGluCisrICAgIGRhcndpbiopIGx0X2F3a19hcmc9Ii9ebGlicmFyaWVzOi8s L0xSLyIgOzsKKysgICAgKikgbHRfYXdrX2FyZz0iL15saWJyYXJpZXM6LyIgOzsKKysgIGVzYWMK KysgIGx0X3NlYXJjaF9wYXRoX3NwZWM9YCRDQyAtcHJpbnQtc2VhcmNoLWRpcnMgfCBhd2sgJGx0 X2F3a19hcmcgfCAkU0VEIC1lICJzL15saWJyYXJpZXM6Ly8iIC1lICJzLD0vLC8sZyJgCisrICBp ZiAkRUNITyAiJGx0X3NlYXJjaF9wYXRoX3NwZWMiIHwgJEdSRVAgJzsnID4vZGV2L251bGwgOyB0 aGVuCisrICAgICMgaWYgdGhlIHBhdGggY29udGFpbnMgIjsiIHRoZW4gd2UgYXNzdW1lIGl0IHRv IGJlIHRoZSBzZXBhcmF0b3IKKysgICAgIyBvdGhlcndpc2UgZGVmYXVsdCB0byB0aGUgc3RhbmRh cmQgcGF0aCBzZXBhcmF0b3IgKGkuZS4gIjoiKSAtIGl0IGlzCisrICAgICMgYXNzdW1lZCB0aGF0 IG5vIHBhcnQgb2YgYSBub3JtYWwgcGF0aG5hbWUgY29udGFpbnMgIjsiIGJ1dCB0aGF0IHNob3Vs ZAorKyAgICAjIG9rYXkgaW4gdGhlIHJlYWwgd29ybGQgd2hlcmUgIjsiIGluIGRpcnBhdGhzIGlz IGl0c2VsZiBwcm9ibGVtYXRpYy4KKysgICAgbHRfc2VhcmNoX3BhdGhfc3BlYz1gJEVDSE8gIiRs dF9zZWFyY2hfcGF0aF9zcGVjIiB8ICRTRUQgLWUgJ3MvOy8gL2cnYAorKyAgZWxzZQorKyAgICBs dF9zZWFyY2hfcGF0aF9zcGVjPWAkRUNITyAiJGx0X3NlYXJjaF9wYXRoX3NwZWMiIHwgJFNFRCAg LWUgInMvJFBBVEhfU0VQQVJBVE9SLyAvZyJgCisrICBmaQorKyAgIyBPaywgbm93IHdlIGhhdmUg dGhlIHBhdGgsIHNlcGFyYXRlZCBieSBzcGFjZXMsIHdlIGNhbiBzdGVwIHRocm91Z2ggaXQKKysg ICMgYW5kIGFkZCBtdWx0aWxpYiBkaXIgaWYgbmVjZXNzYXJ5LgorKyAgbHRfdG1wX2x0X3NlYXJj aF9wYXRoX3NwZWM9CisrICBsdF9tdWx0aV9vc19kaXI9YCRDQyAkQ1BQRkxBR1MgJENGTEFHUyAk TERGTEFHUyAtcHJpbnQtbXVsdGktb3MtZGlyZWN0b3J5IDI+L2Rldi9udWxsYAorKyAgZm9yIGx0 X3N5c19wYXRoIGluICRsdF9zZWFyY2hfcGF0aF9zcGVjOyBkbworKyAgICBpZiB0ZXN0IC1kICIk bHRfc3lzX3BhdGgvJGx0X211bHRpX29zX2RpciI7IHRoZW4KKysgICAgICBsdF90bXBfbHRfc2Vh cmNoX3BhdGhfc3BlYz0iJGx0X3RtcF9sdF9zZWFyY2hfcGF0aF9zcGVjICRsdF9zeXNfcGF0aC8k bHRfbXVsdGlfb3NfZGlyIgorKyAgICBlbHNlCisrICAgICAgdGVzdCAtZCAiJGx0X3N5c19wYXRo IiAmJiBcCisrCWx0X3RtcF9sdF9zZWFyY2hfcGF0aF9zcGVjPSIkbHRfdG1wX2x0X3NlYXJjaF9w YXRoX3NwZWMgJGx0X3N5c19wYXRoIgorKyAgICBmaQorKyAgZG9uZQorKyAgbHRfc2VhcmNoX3Bh dGhfc3BlYz1gJEVDSE8gJGx0X3RtcF9sdF9zZWFyY2hfcGF0aF9zcGVjIHwgYXdrICcKKytCRUdJ TiB7UlM9IiAiOyBGUz0iL3xcbiI7fSB7CisrICBsdF9mb289IiI7CisrICBsdF9jb3VudD0wOwor KyAgZm9yIChsdF9pID0gTkY7IGx0X2kgPiAwOyBsdF9pLS0pIHsKKysgICAgaWYgKCRsdF9pICE9 ICIiICYmICRsdF9pICE9ICIuIikgeworKyAgICAgIGlmICgkbHRfaSA9PSAiLi4iKSB7CisrICAg ICAgICBsdF9jb3VudCsrOworKyAgICAgIH0gZWxzZSB7CisrICAgICAgICBpZiAobHRfY291bnQg PT0gMCkgeworKyAgICAgICAgICBsdF9mb289Ii8iICRsdF9pIGx0X2ZvbzsKKysgICAgICAgIH0g ZWxzZSB7CisrICAgICAgICAgIGx0X2NvdW50LS07CisrICAgICAgICB9CisrICAgICAgfQorKyAg ICB9CisrICB9CisrICBpZiAobHRfZm9vICE9ICIiKSB7IGx0X2ZyZXFbbHRfZm9vXSsrOyB9Cisr ICBpZiAobHRfZnJlcVtsdF9mb29dID09IDEpIHsgcHJpbnQgbHRfZm9vOyB9CisrfSdgCisrICBz eXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9YCRFQ0hPICRsdF9zZWFyY2hfcGF0aF9zcGVjYAorK2Vs c2UKKysgIHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYz0iL2xpYiAvdXNyL2xpYiAvdXNyL2xvY2Fs L2xpYiIKKytmaQorK2xpYnJhcnlfbmFtZXNfc3BlYz0KKytsaWJuYW1lX3NwZWM9J2xpYiRuYW1l JworK3NvbmFtZV9zcGVjPQorK3NocmV4dF9jbWRzPSIuc28iCisrcG9zdGluc3RhbGxfY21kcz0K Kytwb3N0dW5pbnN0YWxsX2NtZHM9CisrZmluaXNoX2NtZHM9CisrZmluaXNoX2V2YWw9Cisrc2hs aWJwYXRoX3Zhcj0KKytzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9dW5rbm93bgorK3ZlcnNp b25fdHlwZT1ub25lCisrZHluYW1pY19saW5rZXI9IiRob3N0X29zIGxkLnNvIgorK3N5c19saWJf ZGxzZWFyY2hfcGF0aF9zcGVjPSIvbGliIC91c3IvbGliIgorK25lZWRfbGliX3ByZWZpeD11bmtu b3duCisraGFyZGNvZGVfaW50b19saWJzPW5vCisrCisrIyB3aGVuIHlvdSBzZXQgbmVlZF92ZXJz aW9uIHRvIG5vLCBtYWtlIHN1cmUgaXQgZG9lcyBub3QgY2F1c2UgLXNldF92ZXJzaW9uCisrIyBm bGFncyB0byBiZSBsZWZ0IHdpdGhvdXQgYXJndW1lbnRzCisrbmVlZF92ZXJzaW9uPXVua25vd24K KysKKytjYXNlICRob3N0X29zIGluCisrYWl4MyopCisrICB2ZXJzaW9uX3R5cGU9bGludXgKKysg IGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZl cnN1ZmZpeCAkbGlibmFtZS5hJworKyAgc2hsaWJwYXRoX3Zhcj1MSUJQQVRICisrCisrICAjIEFJ WCAzIGhhcyBubyB2ZXJzaW9uaW5nIHN1cHBvcnQsIHNvIHdlIGFwcGVuZCBhIG1ham9yIHZlcnNp b24gdG8gdGhlIG5hbWUuCisrICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3No YXJlZF9leHR9JG1ham9yJworKyAgOzsKKysKKythaXhbNC05XSopCisrICB2ZXJzaW9uX3R5cGU9 bGludXgKKysgIG5lZWRfbGliX3ByZWZpeD1ubworKyAgbmVlZF92ZXJzaW9uPW5vCisrICBoYXJk Y29kZV9pbnRvX2xpYnM9eWVzCisrICBpZiB0ZXN0ICIkaG9zdF9jcHUiID0gaWE2NDsgdGhlbgor KyAgICAjIEFJWCA1IHN1cHBvcnRzIElBNjQKKysgICAgbGlicmFyeV9uYW1lc19zcGVjPScke2xp Ym5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJHtsaWJuYW1lfSR7cmVsZWFzZX0k e3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAkbGlibmFtZSR7c2hhcmVkX2V4dH0nCisrICAgIHNobGli cGF0aF92YXI9TERfTElCUkFSWV9QQVRICisrICBlbHNlCisrICAgICMgV2l0aCBHQ0MgdXAgdG8g Mi45NS54LCBjb2xsZWN0MiB3b3VsZCBjcmVhdGUgYW4gaW1wb3J0IGZpbGUKKysgICAgIyBmb3Ig ZGVwZW5kZW5jZSBsaWJyYXJpZXMuICBUaGUgaW1wb3J0IGZpbGUgd291bGQgc3RhcnQgd2l0aAor KyAgICAjIHRoZSBsaW5lIGAjISAuJy4gIFRoaXMgd291bGQgY2F1c2UgdGhlIGdlbmVyYXRlZCBs aWJyYXJ5IHRvCisrICAgICMgZGVwZW5kIG9uIGAuJywgYWx3YXlzIGFuIGludmFsaWQgbGlicmFy eS4gIFRoaXMgd2FzIGZpeGVkIGluCisrICAgICMgZGV2ZWxvcG1lbnQgc25hcHNob3RzIG9mIEdD QyBwcmlvciB0byAzLjAuCisrICAgIGNhc2UgJGhvc3Rfb3MgaW4KKysgICAgICBhaXg0IHwgYWl4 NC5bMDFdIHwgYWl4NC5bMDFdLiopCisrICAgICAgaWYgeyBlY2hvICcjaWYgX19HTlVDX18gPiAy IHx8IChfX0dOVUNfXyA9PSAyICYmIF9fR05VQ19NSU5PUl9fID49IDk3KScKKysJICAgZWNobyAn IHllcyAnCisrCSAgIGVjaG8gJyNlbmRpZic7IH0gfCAke0NDfSAtRSAtIHwgJEdSRVAgeWVzID4g L2Rldi9udWxsOyB0aGVuCisrCToKKysgICAgICBlbHNlCisrCWNhbl9idWlsZF9zaGFyZWQ9bm8K KysgICAgICBmaQorKyAgICAgIDs7CisrICAgIGVzYWMKKysgICAgIyBBSVggKG9uIFBvd2VyKikg aGFzIG5vIHZlcnNpb25pbmcgc3VwcG9ydCwgc28gY3VycmVudGx5IHdlIGNhbiBub3QgaGFyZGNv ZGUgY29ycmVjdAorKyAgICAjIHNvbmFtZSBpbnRvIGV4ZWN1dGFibGUuIFByb2JhYmx5IHdlIGNh biBhZGQgdmVyc2lvbmluZyBzdXBwb3J0IHRvCisrICAgICMgY29sbGVjdDIsIHNvIGFkZGl0aW9u YWwgbGlua3MgY2FuIGJlIHVzZWZ1bCBpbiBmdXR1cmUuCisrICAgIGlmIHRlc3QgIiRhaXhfdXNl X3J1bnRpbWVsaW5raW5nIiA9IHllczsgdGhlbgorKyAgICAgICMgSWYgdXNpbmcgcnVuIHRpbWUg bGlua2luZyAob24gQUlYIDQuMiBvciBsYXRlcikgdXNlIGxpYjxuYW1lPi5zbworKyAgICAgICMg aW5zdGVhZCBvZiBsaWI8bmFtZT4uYSB0byBsZXQgcGVvcGxlIGtub3cgdGhhdCB0aGVzZSBhcmUg bm90CisrICAgICAgIyB0eXBpY2FsIEFJWCBzaGFyZWQgbGlicmFyaWVzLgorKyAgICAgIGxpYnJh cnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZp eCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJGxpYm5hbWUke3NoYXJl ZF9leHR9JworKyAgICBlbHNlCisrICAgICAgIyBXZSBwcmVzZXJ2ZSAuYSBhcyBleHRlbnNpb24g Zm9yIHNoYXJlZCBsaWJyYXJpZXMgdGhyb3VnaCBBSVg0LjIKKysgICAgICAjIGFuZCBsYXRlciB3 aGVuIHdlIGFyZSBub3QgZG9pbmcgcnVuIHRpbWUgbGlua2luZy4KKysgICAgICBsaWJyYXJ5X25h bWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9LmEgJGxpYm5hbWUuYScKKysgICAgICBzb25h bWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yJworKyAgICBm aQorKyAgICBzaGxpYnBhdGhfdmFyPUxJQlBBVEgKKysgIGZpCisrICA7OworKworK2FtaWdhb3Mq KQorKyAgY2FzZSAkaG9zdF9jcHUgaW4KKysgIHBvd2VycGMpCisrICAgICMgU2luY2UgSnVseSAy MDA3IEFtaWdhT1M0IG9mZmljaWFsbHkgc3VwcG9ydHMgLnNvIGxpYnJhcmllcy4KKysgICAgIyBX aGVuIGNvbXBpbGluZyB0aGUgZXhlY3V0YWJsZSwgYWRkIC11c2UtZHlubGQgLUxzb2JqczogdG8g dGhlIGNvbXBpbGVsaW5lLgorKyAgICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3Jl bGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJl ZF9leHR9JG1ham9yICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKKysgICAgOzsKKysgIG02OGspCisr ICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJGxpYm5hbWUuaXhsaWJyYXJ5ICRsaWJuYW1lLmEnCisr ICAgICMgQ3JlYXRlICR7bGlibmFtZX1faXhsaWJyYXJ5LmEgZW50cmllcyBpbiAvc3lzL2xpYnMu CisrICAgIGZpbmlzaF9ldmFsPSdmb3IgbGliIGluIGBscyAkbGliZGlyLyouaXhsaWJyYXJ5IDI+ L2Rldi9udWxsYDsgZG8gbGlibmFtZT1gJEVDSE8gIlgkbGliIiB8ICRYc2VkIC1lICdcJydzJV4u Ki9cKFteL10qXClcLml4bGlicmFyeSQlXDElJ1wnJ2A7IHRlc3QgJFJNIC9zeXMvbGlicy8ke2xp Ym5hbWV9X2l4bGlicmFyeS5hOyAkc2hvdyAiY2QgL3N5cy9saWJzICYmICRMTl9TICRsaWIgJHts aWJuYW1lfV9peGxpYnJhcnkuYSI7IGNkIC9zeXMvbGlicyAmJiAkTE5fUyAkbGliICR7bGlibmFt ZX1faXhsaWJyYXJ5LmEgfHwgZXhpdCAxOyBkb25lJworKyAgICA7OworKyAgZXNhYworKyAgOzsK KysKKytiZW9zKikKKysgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7c2hhcmVkX2V4 dH0nCisrICBkeW5hbWljX2xpbmtlcj0iJGhvc3Rfb3MgbGQuc28iCisrICBzaGxpYnBhdGhfdmFy PUxJQlJBUllfUEFUSAorKyAgOzsKKysKKytic2RpWzQ1XSopCisrICB2ZXJzaW9uX3R5cGU9bGlu dXgKKysgIG5lZWRfdmVyc2lvbj1ubworKyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9 JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtz aGFyZWRfZXh0fSRtYWpvciAkbGlibmFtZSR7c2hhcmVkX2V4dH0nCisrICBzb25hbWVfc3BlYz0n JHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yJworKyAgZmluaXNoX2NtZHM9 J1BBVEg9IlwkUEFUSDovc2JpbiIgbGRjb25maWcgJGxpYmRpcicKKysgIHNobGlicGF0aF92YXI9 TERfTElCUkFSWV9QQVRICisrICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9Ii9zaGxpYiAvdXNy L2xpYiAvdXNyL1gxMS9saWIgL3Vzci9jb250cmliL2xpYiAvbGliIC91c3IvbG9jYWwvbGliIgor KyAgc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWM9Ii9zaGxpYiAvdXNyL2xpYiAvdXNyL2xvY2Fs L2xpYiIKKysgICMgdGhlIGRlZmF1bHQgbGQuc28uY29uZiBhbHNvIGNvbnRhaW5zIC91c3IvY29u dHJpYi9saWIgYW5kCisrICAjIC91c3IvWDExUjYvbGliICgvdXNyL1gxMSBpcyBhIGxpbmsgdG8g L3Vzci9YMTFSNiksIGJ1dCBsZXQgdXMgYWxsb3cKKysgICMgbGlidG9vbCB0byBoYXJkLWNvZGUg dGhlc2UgaW50byBwcm9ncmFtcworKyAgOzsKKysKKytjeWd3aW4qIHwgbWluZ3cqIHwgcHczMiog fCBjZWdjYyopCisrICB2ZXJzaW9uX3R5cGU9d2luZG93cworKyAgc2hyZXh0X2NtZHM9Ii5kbGwi CisrICBuZWVkX3ZlcnNpb249bm8KKysgIG5lZWRfbGliX3ByZWZpeD1ubworKworKyAgY2FzZSAk R0NDLCRob3N0X29zIGluCisrICB5ZXMsY3lnd2luKiB8IHllcyxtaW5ndyogfCB5ZXMscHczMiog fCB5ZXMsY2VnY2MqKQorKyAgICBsaWJyYXJ5X25hbWVzX3NwZWM9JyRsaWJuYW1lLmRsbC5hJwor KyAgICAjIERMTCBpcyBpbnN0YWxsZWQgdG8gJChsaWJkaXIpLy4uL2JpbiBieSBwb3N0aW5zdGFs bF9jbWRzCisrICAgIHBvc3RpbnN0YWxsX2NtZHM9J2Jhc2VfZmlsZT1gYmFzZW5hbWUgXCR7Zmls ZX1gfgorKyAgICAgIGRscGF0aD1gJFNIRUxMIDI+JjEgLWMgJ1wnJy4gJGRpci8nXCcnXCR7YmFz ZV9maWxlfSdcJydpOyBlY2hvIFwkZGxuYW1lJ1wnJ2B+CisrICAgICAgZGxkaXI9JGRlc3RkaXIv YGRpcm5hbWUgXCRkbHBhdGhgfgorKyAgICAgIHRlc3QgLWQgXCRkbGRpciB8fCBta2RpciAtcCBc JGRsZGlyfgorKyAgICAgICRpbnN0YWxsX3Byb2cgJGRpci8kZGxuYW1lIFwkZGxkaXIvJGRsbmFt ZX4KKysgICAgICBjaG1vZCBhK3ggXCRkbGRpci8kZGxuYW1lfgorKyAgICAgIGlmIHRlc3QgLW4g J1wnJyRzdHJpcG1lJ1wnJyAmJiB0ZXN0IC1uICdcJyckc3RyaXBsaWInXCcnOyB0aGVuCisrICAg ICAgICBldmFsICdcJyckc3RyaXBsaWIgXCRkbGRpci8kZGxuYW1lJ1wnJyB8fCBleGl0IFwkPzsK KysgICAgICBmaScKKysgICAgcG9zdHVuaW5zdGFsbF9jbWRzPSdkbGRsbD1gJFNIRUxMIDI+JjEg LWMgJ1wnJy4gJGZpbGU7IGVjaG8gXCRkbG5hbWUnXCcnYH4KKysgICAgICBkbHBhdGg9JGRpci9c JGRsZGxsfgorKyAgICAgICAkUk0gXCRkbHBhdGgnCisrICAgIHNobGlicGF0aF9vdmVycmlkZXNf cnVucGF0aD15ZXMKKysKKysgICAgY2FzZSAkaG9zdF9vcyBpbgorKyAgICBjeWd3aW4qKQorKyAg ICAgICMgQ3lnd2luIERMTHMgdXNlICdjeWcnIHByZWZpeCByYXRoZXIgdGhhbiAnbGliJworKyAg ICAgIHNvbmFtZV9zcGVjPSdgZWNobyAke2xpYm5hbWV9IHwgc2VkIC1lICdzL15saWIvY3lnLydg YGVjaG8gJHtyZWxlYXNlfSB8ICRTRUQgLWUgJ3MvWy5dLy0vZydgJHt2ZXJzdWZmaXh9JHtzaGFy ZWRfZXh0fScKKysgICAgICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9Ii91c3IvbGliIC9saWIv dzMyYXBpIC9saWIgL3Vzci9sb2NhbC9saWIiCisrICAgICAgOzsKKysgICAgbWluZ3cqIHwgY2Vn Y2MqKQorKyAgICAgICMgTWluR1cgRExMcyB1c2UgdHJhZGl0aW9uYWwgJ2xpYicgcHJlZml4Cisr ICAgICAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX1gZWNobyAke3JlbGVhc2V9IHwgJFNFRCAtZSAn cy9bLl0vLS9nJ2Ake3ZlcnN1ZmZpeH0ke3NoYXJlZF9leHR9JworKyAgICAgIHN5c19saWJfc2Vh cmNoX3BhdGhfc3BlYz1gJENDIC1wcmludC1zZWFyY2gtZGlycyB8ICRHUkVQICJebGlicmFyaWVz OiIgfCAkU0VEIC1lICJzL15saWJyYXJpZXM6Ly8iIC1lICJzLD0vLC8sZyJgCisrICAgICAgaWYg JEVDSE8gIiRzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWMiIHwgJEdSRVAgJztbYy16Qy1aXTovJyA+ L2Rldi9udWxsOyB0aGVuCisrICAgICAgICAjIEl0IGlzIG1vc3QgcHJvYmFibHkgYSBXaW5kb3dz IGZvcm1hdCBQQVRIIHByaW50ZWQgYnkKKysgICAgICAgICMgbWluZ3cgZ2NjLCBidXQgd2UgYXJl IHJ1bm5pbmcgb24gQ3lnd2luLiBHY2MgcHJpbnRzIGl0cyBzZWFyY2gKKysgICAgICAgICMgcGF0 aCB3aXRoIDsgc2VwYXJhdG9ycywgYW5kIHdpdGggZHJpdmUgbGV0dGVycy4gV2UgY2FuIGhhbmRs ZSB0aGUKKysgICAgICAgICMgZHJpdmUgbGV0dGVycyAoY3lnd2luIGZpbGV1dGlscyB1bmRlcnN0 YW5kcyB0aGVtKSwgc28gbGVhdmUgdGhlbSwKKysgICAgICAgICMgZXNwZWNpYWxseSBhcyB3ZSBt aWdodCBwYXNzIGZpbGVzIGZvdW5kIHRoZXJlIHRvIGEgbWluZ3cgb2JqZHVtcCwKKysgICAgICAg ICMgd2hpY2ggd291bGRuJ3QgdW5kZXJzdGFuZCBhIGN5Z3dpbmlmaWVkIHBhdGguIEFoaC4KKysg ICAgICAgIHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYz1gJEVDSE8gIiRzeXNfbGliX3NlYXJjaF9w YXRoX3NwZWMiIHwgJFNFRCAtZSAncy87LyAvZydgCisrICAgICAgZWxzZQorKyAgICAgICAgc3lz X2xpYl9zZWFyY2hfcGF0aF9zcGVjPWAkRUNITyAiJHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYyIg fCAkU0VEICAtZSAicy8kUEFUSF9TRVBBUkFUT1IvIC9nImAKKysgICAgICBmaQorKyAgICAgIDs7 CisrICAgIHB3MzIqKQorKyAgICAgICMgcHczMiBETExzIHVzZSAncHcnIHByZWZpeCByYXRoZXIg dGhhbiAnbGliJworKyAgICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nYGVjaG8gJHtsaWJuYW1lfSB8 IHNlZCAtZSAncy9ebGliL3B3LydgYGVjaG8gJHtyZWxlYXNlfSB8ICRTRUQgLWUgJ3MvWy5dLy0v ZydgJHt2ZXJzdWZmaXh9JHtzaGFyZWRfZXh0fScKKysgICAgICA7OworKyAgICBlc2FjCisrICAg IDs7CisrCisrICAqKQorKyAgICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX1gZWNobyAk e3JlbGVhc2V9IHwgJFNFRCAtZSAncy9bLl0vLS9nJ2Ake3ZlcnN1ZmZpeH0ke3NoYXJlZF9leHR9 ICRsaWJuYW1lLmxpYicKKysgICAgOzsKKysgIGVzYWMKKysgIGR5bmFtaWNfbGlua2VyPSdXaW4z MiBsZC5leGUnCisrICAjIEZJWE1FOiBmaXJzdCB3ZSBzaG91bGQgc2VhcmNoIC4gYW5kIHRoZSBk aXJlY3RvcnkgdGhlIGV4ZWN1dGFibGUgaXMgaW4KKysgIHNobGlicGF0aF92YXI9UEFUSAorKyAg OzsKKysKKytkYXJ3aW4qIHwgcmhhcHNvZHkqKQorKyAgZHluYW1pY19saW5rZXI9IiRob3N0X29z IGR5bGQiCisrICB2ZXJzaW9uX3R5cGU9ZGFyd2luCisrICBuZWVkX2xpYl9wcmVmaXg9bm8KKysg IG5lZWRfdmVyc2lvbj1ubworKyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxl YXNlfSR7bWFqb3J9JHNoYXJlZF9leHQgJHtsaWJuYW1lfSRzaGFyZWRfZXh0JworKyAgc29uYW1l X3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHttYWpvcn0kc2hhcmVkX2V4dCcKKysgIHNobGli cGF0aF9vdmVycmlkZXNfcnVucGF0aD15ZXMKKysgIHNobGlicGF0aF92YXI9RFlMRF9MSUJSQVJZ X1BBVEgKKysgIHNocmV4dF9jbWRzPSdgdGVzdCAuJG1vZHVsZSA9IC55ZXMgJiYgZWNobyAuc28g fHwgZWNobyAuZHlsaWJgJworKworKyAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPSIkc3lzX2xp Yl9zZWFyY2hfcGF0aF9zcGVjIC91c3IvbG9jYWwvbGliIgorKyAgc3lzX2xpYl9kbHNlYXJjaF9w YXRoX3NwZWM9Jy91c3IvbG9jYWwvbGliIC9saWIgL3Vzci9saWInCisrICA7OworKworK2RndXgq KQorKyAgdmVyc2lvbl90eXBlPWxpbnV4CisrICBuZWVkX2xpYl9wcmVmaXg9bm8KKysgIG5lZWRf dmVyc2lvbj1ubworKyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7 c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRt YWpvciAkbGlibmFtZSRzaGFyZWRfZXh0JworKyAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3Jl bGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKKysgIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9Q QVRICisrICA7OworKworK2ZyZWVic2QxKikKKysgIGR5bmFtaWNfbGlua2VyPW5vCisrICA7Owor KworK2ZyZWVic2QqIHwgZHJhZ29uZmx5KikKKysgICMgRHJhZ29uRmx5IGRvZXMgbm90IGhhdmUg YW91dC4gIFdoZW4vaWYgdGhleSBpbXBsZW1lbnQgYSBuZXcKKysgICMgdmVyc2lvbmluZyBtZWNo YW5pc20sIGFkanVzdCB0aGlzLgorKyAgaWYgdGVzdCAteCAvdXNyL2Jpbi9vYmpmb3JtYXQ7IHRo ZW4KKysgICAgb2JqZm9ybWF0PWAvdXNyL2Jpbi9vYmpmb3JtYXRgCisrICBlbHNlCisrICAgIGNh c2UgJGhvc3Rfb3MgaW4KKysgICAgZnJlZWJzZFsxMjNdKikgb2JqZm9ybWF0PWFvdXQgOzsKKysg ICAgKikgb2JqZm9ybWF0PWVsZiA7OworKyAgICBlc2FjCisrICBmaQorKyAgdmVyc2lvbl90eXBl PWZyZWVic2QtJG9iamZvcm1hdAorKyAgY2FzZSAkdmVyc2lvbl90eXBlIGluCisrICAgIGZyZWVi c2QtZWxmKikKKysgICAgICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9 JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9 ICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKKysgICAgICBuZWVkX3ZlcnNpb249bm8KKysgICAgICBu ZWVkX2xpYl9wcmVmaXg9bm8KKysgICAgICA7OworKyAgICBmcmVlYnNkLSopCisrICAgICAgbGli cmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3Vm Zml4ICRsaWJuYW1lJHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXgnCisrICAgICAgbmVlZF92ZXJzaW9u PXllcworKyAgICAgIDs7CisrICBlc2FjCisrICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFU SAorKyAgY2FzZSAkaG9zdF9vcyBpbgorKyAgZnJlZWJzZDIqKQorKyAgICBzaGxpYnBhdGhfb3Zl cnJpZGVzX3J1bnBhdGg9eWVzCisrICAgIDs7CisrICBmcmVlYnNkMy5bMDFdKiB8IGZyZWVic2Rl bGYzLlswMV0qKQorKyAgICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9eWVzCisrICAgIGhh cmRjb2RlX2ludG9fbGlicz15ZXMKKysgICAgOzsKKysgIGZyZWVic2QzLlsyLTldKiB8IGZyZWVi c2RlbGYzLlsyLTldKiB8IFwKKysgIGZyZWVic2Q0LlswLTVdIHwgZnJlZWJzZGVsZjQuWzAtNV0g fCBmcmVlYnNkNC4xLjEgfCBmcmVlYnNkZWxmNC4xLjEpCisrICAgIHNobGlicGF0aF9vdmVycmlk ZXNfcnVucGF0aD1ubworKyAgICBoYXJkY29kZV9pbnRvX2xpYnM9eWVzCisrICAgIDs7CisrICAq KSAjIGZyb20gNC42IG9uLCBhbmQgRHJhZ29uRmx5CisrICAgIHNobGlicGF0aF9vdmVycmlkZXNf cnVucGF0aD15ZXMKKysgICAgaGFyZGNvZGVfaW50b19saWJzPXllcworKyAgICA7OworKyAgZXNh YworKyAgOzsKKysKKytnbnUqKQorKyAgdmVyc2lvbl90eXBlPWxpbnV4CisrICBuZWVkX2xpYl9w cmVmaXg9bm8KKysgIG5lZWRfdmVyc2lvbj1ubworKyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xp Ym5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVh c2V9JHtzaGFyZWRfZXh0fSR7bWFqb3J9ICR7bGlibmFtZX0ke3NoYXJlZF9leHR9JworKyAgc29u YW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKKysgIHNo bGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRICisrICBoYXJkY29kZV9pbnRvX2xpYnM9eWVzCisr ICA7OworKworK2hwdXg5KiB8IGhwdXgxMCogfCBocHV4MTEqKQorKyAgIyBHaXZlIGEgc29uYW1l IGNvcnJlc3BvbmRpbmcgdG8gdGhlIG1ham9yIHZlcnNpb24gc28gdGhhdCBkbGQuc2wgcmVmdXNl cyB0bworKyAgIyBsaW5rIGFnYWluc3Qgb3RoZXIgdmVyc2lvbnMuCisrICB2ZXJzaW9uX3R5cGU9 c3Vub3MKKysgIG5lZWRfbGliX3ByZWZpeD1ubworKyAgbmVlZF92ZXJzaW9uPW5vCisrICBjYXNl ICRob3N0X2NwdSBpbgorKyAgaWE2NCopCisrICAgIHNocmV4dF9jbWRzPScuc28nCisrICAgIGhh cmRjb2RlX2ludG9fbGlicz15ZXMKKysgICAgZHluYW1pY19saW5rZXI9IiRob3N0X29zIGRsZC5z byIKKysgICAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKKysgICAgc2hsaWJwYXRoX292 ZXJyaWRlc19ydW5wYXRoPXllcyAjIFVubGVzcyArbm9lbnZ2YXIgaXMgc3BlY2lmaWVkLgorKyAg ICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2 ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICRsaWJuYW1l JHtzaGFyZWRfZXh0fScKKysgICAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtz aGFyZWRfZXh0fSRtYWpvcicKKysgICAgaWYgdGVzdCAiWCRIUFVYX0lBNjRfTU9ERSIgPSBYMzI7 IHRoZW4KKysgICAgICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9Ii91c3IvbGliL2hwdXgzMiAv dXNyL2xvY2FsL2xpYi9ocHV4MzIgL3Vzci9sb2NhbC9saWIiCisrICAgIGVsc2UKKysgICAgICBz eXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9Ii91c3IvbGliL2hwdXg2NCAvdXNyL2xvY2FsL2xpYi9o cHV4NjQiCisrICAgIGZpCisrICAgIHN5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjPSRzeXNfbGli X3NlYXJjaF9wYXRoX3NwZWMKKysgICAgOzsKKysgIGhwcGEqNjQqKQorKyAgICBzaHJleHRfY21k cz0nLnNsJworKyAgICBoYXJkY29kZV9pbnRvX2xpYnM9eWVzCisrICAgIGR5bmFtaWNfbGlua2Vy PSIkaG9zdF9vcyBkbGQuc2wiCisrICAgIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRIICMg SG93IHNob3VsZCB3ZSBoYW5kbGUgU0hMSUJfUEFUSAorKyAgICBzaGxpYnBhdGhfb3ZlcnJpZGVz X3J1bnBhdGg9eWVzICMgVW5sZXNzICtub2VudnZhciBpcyBzcGVjaWZpZWQuCisrICAgIGxpYnJh cnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZp eCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJGxpYm5hbWUke3NoYXJl ZF9leHR9JworKyAgICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9l eHR9JG1ham9yJworKyAgICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9Ii91c3IvbGliL3BhMjBf NjQgL3Vzci9jY3MvbGliL3BhMjBfNjQiCisrICAgIHN5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVj PSRzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWMKKysgICAgOzsKKysgICopCisrICAgIHNocmV4dF9j bWRzPScuc2wnCisrICAgIGR5bmFtaWNfbGlua2VyPSIkaG9zdF9vcyBkbGQuc2wiCisrICAgIHNo bGlicGF0aF92YXI9U0hMSUJfUEFUSAorKyAgICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9 bm8gIyArcyBpcyByZXF1aXJlZCB0byBlbmFibGUgU0hMSUJfUEFUSAorKyAgICBsaWJyYXJ5X25h bWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHts aWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICRsaWJuYW1lJHtzaGFyZWRfZXh0 fScKKysgICAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRt YWpvcicKKysgICAgOzsKKysgIGVzYWMKKysgICMgSFAtVVggcnVucyAqcmVhbGx5KiBzbG93bHkg dW5sZXNzIHNoYXJlZCBsaWJyYXJpZXMgYXJlIG1vZGUgNTU1LgorKyAgcG9zdGluc3RhbGxfY21k cz0nY2htb2QgNTU1ICRsaWInCisrICA7OworKworK2ludGVyaXhbMy05XSopCisrICB2ZXJzaW9u X3R5cGU9bGludXgKKysgIG5lZWRfbGliX3ByZWZpeD1ubworKyAgbmVlZF92ZXJzaW9uPW5vCisr ICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2 ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICR7bGlibmFt ZX0ke3NoYXJlZF9leHR9JworKyAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtz aGFyZWRfZXh0fSRtYWpvcicKKysgIGR5bmFtaWNfbGlua2VyPSdJbnRlcml4IDMueCBsZC5zby4x IChQRSwgbGlrZSBFTEYpJworKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKKysgIHNo bGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD1ubworKyAgaGFyZGNvZGVfaW50b19saWJzPXllcwor KyAgOzsKKysKKytpcml4NSogfCBpcml4NiogfCBub25zdG9wdXgqKQorKyAgY2FzZSAkaG9zdF9v cyBpbgorKyAgICBub25zdG9wdXgqKSB2ZXJzaW9uX3R5cGU9bm9uc3RvcHV4IDs7CisrICAgICop CisrCWlmIHRlc3QgIiRsdF9jdl9wcm9nX2dudV9sZCIgPSB5ZXM7IHRoZW4KKysJCXZlcnNpb25f dHlwZT1saW51eAorKwllbHNlCisrCQl2ZXJzaW9uX3R5cGU9aXJpeAorKwlmaSA7OworKyAgZXNh YworKyAgbmVlZF9saWJfcHJlZml4PW5vCisrICBuZWVkX3ZlcnNpb249bm8KKysgIHNvbmFtZV9z cGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCisrICBsaWJyYXJ5 X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXgg JHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICR7bGlibmFtZX0ke3JlbGVh c2V9JHtzaGFyZWRfZXh0fSAkbGlibmFtZSR7c2hhcmVkX2V4dH0nCisrICBjYXNlICRob3N0X29z IGluCisrICBpcml4NSogfCBub25zdG9wdXgqKQorKyAgICBsaWJzdWZmPSBzaGxpYnN1ZmY9Cisr ICAgIDs7CisrICAqKQorKyAgICBjYXNlICRMRCBpbiAjIGxpYnRvb2wubTQgd2lsbCBhZGQgb25l IG9mIHRoZXNlIHN3aXRjaGVzIHRvIExECisrICAgICotMzJ8KiItMzIgInwqLW1lbGYzMmJzbWlw fCoiLW1lbGYzMmJzbWlwICIpCisrICAgICAgbGlic3VmZj0gc2hsaWJzdWZmPSBsaWJtYWdpYz0z Mi1iaXQ7OworKyAgICAqLW4zMnwqIi1uMzIgInwqLW1lbGYzMmJtaXBuMzJ8KiItbWVsZjMyYm1p cG4zMiAiKQorKyAgICAgIGxpYnN1ZmY9MzIgc2hsaWJzdWZmPU4zMiBsaWJtYWdpYz1OMzI7Owor KyAgICAqLTY0fCoiLTY0ICJ8Ki1tZWxmNjRibWlwfCoiLW1lbGY2NGJtaXAgIikKKysgICAgICBs aWJzdWZmPTY0IHNobGlic3VmZj02NCBsaWJtYWdpYz02NC1iaXQ7OworKyAgICAqKSBsaWJzdWZm PSBzaGxpYnN1ZmY9IGxpYm1hZ2ljPW5ldmVyLW1hdGNoOzsKKysgICAgZXNhYworKyAgICA7Owor KyAgZXNhYworKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZJHtzaGxpYnN1ZmZ9X1BBVEgKKysg IHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD1ubworKyAgc3lzX2xpYl9zZWFyY2hfcGF0aF9z cGVjPSIvdXNyL2xpYiR7bGlic3VmZn0gL2xpYiR7bGlic3VmZn0gL3Vzci9sb2NhbC9saWIke2xp YnN1ZmZ9IgorKyAgc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWM9Ii91c3IvbGliJHtsaWJzdWZm fSAvbGliJHtsaWJzdWZmfSIKKysgIGhhcmRjb2RlX2ludG9fbGlicz15ZXMKKysgIDs7CisrCisr IyBObyBzaGFyZWQgbGliIHN1cHBvcnQgZm9yIExpbnV4IG9sZGxkLCBhb3V0LCBvciBjb2ZmLgor K2xpbnV4Km9sZGxkKiB8IGxpbnV4KmFvdXQqIHwgbGludXgqY29mZiopCisrICBkeW5hbWljX2xp bmtlcj1ubworKyAgOzsKKysKKysjIFRoaXMgbXVzdCBiZSBMaW51eCBFTEYuCisrbGludXgqIHwg aypic2QqLWdudSkKKysgIHZlcnNpb25fdHlwZT1saW51eAorKyAgbmVlZF9saWJfcHJlZml4PW5v CisrICBuZWVkX3ZlcnNpb249bm8KKysgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7 cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hh cmVkX2V4dH0kbWFqb3IgJGxpYm5hbWUke3NoYXJlZF9leHR9JworKyAgc29uYW1lX3NwZWM9JyR7 bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKKysgIGZpbmlzaF9jbWRzPSdQ QVRIPSJcJFBBVEg6L3NiaW4iIGxkY29uZmlnIC1uICRsaWJkaXInCisrICBzaGxpYnBhdGhfdmFy PUxEX0xJQlJBUllfUEFUSAorKyAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPW5vCisrICAj IFNvbWUgYmludXRpbHMgbGQgYXJlIHBhdGNoZWQgdG8gc2V0IERUX1JVTlBBVEgKKysgIHNhdmVf TERGTEFHUz0kTERGTEFHUworKyAgc2F2ZV9saWJkaXI9JGxpYmRpcgorKyAgZXZhbCAibGliZGly PS9mb287IHdsPVwiJGx0X3Byb2dfY29tcGlsZXJfd2xcIjsgXAorKyAgICAgICBMREZMQUdTPVwi XCRMREZMQUdTICRoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjXCIiCisrICBjYXQgPmNvbmZ0ZXN0 LiRhY19leHQgPDxfQUNFT0YKKysvKiBjb25mZGVmcy5oLiAgKi8KKytfQUNFT0YKKytjYXQgY29u ZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKKytjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FD RU9GCisrLyogZW5kIGNvbmZkZWZzLmguICAqLworKworK2ludAorK21haW4gKCkKKyt7CisrCisr ICA7CisrICByZXR1cm4gMDsKKyt9CisrX0FDRU9GCisrcm0gLWYgY29uZnRlc3QuJGFjX29iamV4 dCBjb25mdGVzdCRhY19leGVleHQKKytpZiB7IChhY190cnk9IiRhY19saW5rIgorK2Nhc2UgIigo JGFjX3RyeSIgaW4KKysgICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7 OworKyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7CisrZXNhYworK2V2YWwgYWNfdHJ5X2VjaG89 IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIKKyskYXNfZWNobyAiJGFjX3RyeV9l Y2hvIikgPiY1CisrICAoZXZhbCAiJGFjX2xpbmsiKSAyPmNvbmZ0ZXN0LmVyMQorKyAgYWNfc3Rh dHVzPSQ/CisrICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgorKyAg cm0gLWYgY29uZnRlc3QuZXIxCisrICBjYXQgY29uZnRlc3QuZXJyID4mNQorKyAgJGFzX2VjaG8g IiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKysgIChleGl0ICRhY19zdGF0 dXMpOyB9ICYmIHsKKysJIHRlc3QgLXogIiRhY19jX3dlcnJvcl9mbGFnIiB8fAorKwkgdGVzdCAh IC1zIGNvbmZ0ZXN0LmVycgorKyAgICAgICB9ICYmIHRlc3QgLXMgY29uZnRlc3QkYWNfZXhlZXh0 ICYmIHsKKysJIHRlc3QgIiRjcm9zc19jb21waWxpbmciID0geWVzIHx8CisrCSAkYXNfdGVzdF94 IGNvbmZ0ZXN0JGFjX2V4ZWV4dAorKyAgICAgICB9OyB0aGVuCisrICBpZiAgKCRPQkpEVU1QIC1w IGNvbmZ0ZXN0JGFjX2V4ZWV4dCkgMj4vZGV2L251bGwgfCBncmVwICJSVU5QQVRILiokbGliZGly IiA+L2Rldi9udWxsOyB0aGVuCisrICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9eWVzCisr ZmkKKysKKytlbHNlCisrICAkYXNfZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+ JjUKKytzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1CisrCisrCisrZmkKKysKKyty bSAtcmYgY29uZnRlc3QuZFNZTQorK3JtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRh Y19vYmpleHQgY29uZnRlc3RfaXBhOF9jb25mdGVzdC5vbyBcCisrICAgICAgY29uZnRlc3QkYWNf ZXhlZXh0IGNvbmZ0ZXN0LiRhY19leHQKKysgIExERkxBR1M9JHNhdmVfTERGTEFHUworKyAgbGli ZGlyPSRzYXZlX2xpYmRpcgorKworKyAgIyBUaGlzIGltcGxpZXMgbm8gZmFzdF9pbnN0YWxsLCB3 aGljaCBpcyB1bmFjY2VwdGFibGUuCisrICAjIFNvbWUgcmV3b3JrIHdpbGwgYmUgbmVlZGVkIHRv IGFsbG93IGZvciBmYXN0X2luc3RhbGwKKysgICMgYmVmb3JlIHRoaXMgY2FuIGJlIGVuYWJsZWQu CisrICBoYXJkY29kZV9pbnRvX2xpYnM9eWVzCisrCisrICAjIEFkZCBBQkktc3BlY2lmaWMgZGly ZWN0b3JpZXMgdG8gdGhlIHN5c3RlbSBsaWJyYXJ5IHBhdGguCisrICBzeXNfbGliX2Rsc2VhcmNo X3BhdGhfc3BlYz0iL2xpYjY0IC91c3IvbGliNjQgL2xpYiAvdXNyL2xpYiIKKysKKysgICMgQXBw ZW5kIGxkLnNvLmNvbmYgY29udGVudHMgdG8gdGhlIHNlYXJjaCBwYXRoCisrICBpZiB0ZXN0IC1m IC9ldGMvbGQuc28uY29uZjsgdGhlbgorKyAgICBsdF9sZF9leHRyYT1gYXdrICcvXmluY2x1ZGUg LyB7IHN5c3RlbShzcHJpbnRmKCJjZCAvZXRjOyBjYXQgJXMgMj4vZGV2L251bGwiLCBcJDIpKTsg c2tpcCA9IDE7IH0geyBpZiAoIXNraXApIHByaW50IFwkMDsgc2tpcCA9IDA7IH0nIDwgL2V0Yy9s ZC5zby5jb25mIHwgJFNFRCAtZSAncy8jLiovLzsvXlsJIF0qaHdjYXBbCSBdL2Q7cy9bOiwJXS8g L2c7cy89W149XSokLy87cy89W149IF0qIC8gL2c7L14kL2QnIHwgdHIgJ1xuJyAnICdgCisrICAg IHN5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjPSIkc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWMg JGx0X2xkX2V4dHJhIgorKyAgZmkKKysKKysgICMgV2UgdXNlZCB0byB0ZXN0IGZvciAvbGliL2xk LnNvLjEgYW5kIGRpc2FibGUgc2hhcmVkIGxpYnJhcmllcyBvbgorKyAgIyBwb3dlcnBjLCBiZWNh dXNlIE1rTGludXggb25seSBzdXBwb3J0ZWQgc2hhcmVkIGxpYnJhcmllcyB3aXRoIHRoZQorKyAg IyBHTlUgZHluYW1pYyBsaW5rZXIuICBTaW5jZSB0aGlzIHdhcyBicm9rZW4gd2l0aCBjcm9zcyBj b21waWxlcnMsCisrICAjIG1vc3QgcG93ZXJwYy1saW51eCBib3hlcyBzdXBwb3J0IGR5bmFtaWMg bGlua2luZyB0aGVzZSBkYXlzIGFuZAorKyAgIyBwZW9wbGUgY2FuIGFsd2F5cyAtLWRpc2FibGUt c2hhcmVkLCB0aGUgdGVzdCB3YXMgcmVtb3ZlZCwgYW5kIHdlCisrICAjIGFzc3VtZSB0aGUgR05V L0xpbnV4IGR5bmFtaWMgbGlua2VyIGlzIGluIHVzZS4KKysgIGR5bmFtaWNfbGlua2VyPSdHTlUv TGludXggbGQuc28nCisrICA7OworKworK25ldGJzZCopCisrICB2ZXJzaW9uX3R5cGU9c3Vub3MK KysgIG5lZWRfbGliX3ByZWZpeD1ubworKyAgbmVlZF92ZXJzaW9uPW5vCisrICBpZiBlY2hvIF9f RUxGX18gfCAkQ0MgLUUgLSB8ICRHUkVQIF9fRUxGX18gPi9kZXYvbnVsbDsgdGhlbgorKyAgICBs aWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJz dWZmaXggJHtsaWJuYW1lfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4JworKyAgICBmaW5pc2hfY21k cz0nUEFUSD0iXCRQQVRIOi9zYmluIiBsZGNvbmZpZyAtbSAkbGliZGlyJworKyAgICBkeW5hbWlj X2xpbmtlcj0nTmV0QlNEIChhLm91dCkgbGQuc28nCisrICBlbHNlCisrICAgIGxpYnJhcnlfbmFt ZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xp Ym5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJHtsaWJuYW1lfSR7c2hhcmVkX2V4 dH0nCisrICAgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0k bWFqb3InCisrICAgIGR5bmFtaWNfbGlua2VyPSdOZXRCU0QgbGQuZWxmX3NvJworKyAgZmkKKysg IHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRICisrICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1 bnBhdGg9eWVzCisrICBoYXJkY29kZV9pbnRvX2xpYnM9eWVzCisrICA7OworKworK25ld3NvczYp CisrICB2ZXJzaW9uX3R5cGU9bGludXgKKysgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1l fSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7 c2hhcmVkX2V4dH0kbWFqb3IgJGxpYm5hbWUke3NoYXJlZF9leHR9JworKyAgc2hsaWJwYXRoX3Zh cj1MRF9MSUJSQVJZX1BBVEgKKysgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD15ZXMKKysg IDs7CisrCisrKm50byogfCAqcW54KikKKysgIHZlcnNpb25fdHlwZT1xbngKKysgIG5lZWRfbGli X3ByZWZpeD1ubworKyAgbmVlZF92ZXJzaW9uPW5vCisrICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7 bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVs ZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKKysgIHNvbmFt ZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCisrICBzaGxp YnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAorKyAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRo PW5vCisrICBoYXJkY29kZV9pbnRvX2xpYnM9eWVzCisrICBkeW5hbWljX2xpbmtlcj0nbGRxbngu c28nCisrICA7OworKworK29wZW5ic2QqKQorKyAgdmVyc2lvbl90eXBlPXN1bm9zCisrICBzeXNf bGliX2Rsc2VhcmNoX3BhdGhfc3BlYz0iL3Vzci9saWIiCisrICBuZWVkX2xpYl9wcmVmaXg9bm8K KysgICMgU29tZSBvbGRlciB2ZXJzaW9ucyBvZiBPcGVuQlNEICgzLjMgYXQgbGVhc3QpICpkbyog bmVlZCB2ZXJzaW9uZWQgbGlicy4KKysgIGNhc2UgJGhvc3Rfb3MgaW4KKysgICAgb3BlbmJzZDMu MyB8IG9wZW5ic2QzLjMuKikJbmVlZF92ZXJzaW9uPXllcyA7OworKyAgICAqKQkJCQluZWVkX3Zl cnNpb249bm8gIDs7CisrICBlc2FjCisrICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0k e3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7c2hhcmVkX2V4dH0k dmVyc3VmZml4JworKyAgZmluaXNoX2NtZHM9J1BBVEg9IlwkUEFUSDovc2JpbiIgbGRjb25maWcg LW0gJGxpYmRpcicKKysgIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRICisrICBpZiB0ZXN0 IC16ICJgZWNobyBfX0VMRl9fIHwgJENDIC1FIC0gfCAkR1JFUCBfX0VMRl9fYCIgfHwgdGVzdCAi JGhvc3Rfb3MtJGhvc3RfY3B1IiA9ICJvcGVuYnNkMi44LXBvd2VycGMiOyB0aGVuCisrICAgIGNh c2UgJGhvc3Rfb3MgaW4KKysgICAgICBvcGVuYnNkMi5bODldIHwgb3BlbmJzZDIuWzg5XS4qKQor KwlzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9bm8KKysJOzsKKysgICAgICAqKQorKwlzaGxp YnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9eWVzCisrCTs7CisrICAgICAgZXNhYworKyAgZWxzZQor KyAgICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9eWVzCisrICBmaQorKyAgOzsKKysKKytv czIqKQorKyAgbGlibmFtZV9zcGVjPSckbmFtZScKKysgIHNocmV4dF9jbWRzPSIuZGxsIgorKyAg bmVlZF9saWJfcHJlZml4PW5vCisrICBsaWJyYXJ5X25hbWVzX3NwZWM9JyRsaWJuYW1lJHtzaGFy ZWRfZXh0fSAkbGlibmFtZS5hJworKyAgZHluYW1pY19saW5rZXI9J09TLzIgbGQuZXhlJworKyAg c2hsaWJwYXRoX3Zhcj1MSUJQQVRICisrICA7OworKworK29zZjMqIHwgb3NmNCogfCBvc2Y1KikK KysgIHZlcnNpb25fdHlwZT1vc2YKKysgIG5lZWRfbGliX3ByZWZpeD1ubworKyAgbmVlZF92ZXJz aW9uPW5vCisrICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9 JG1ham9yJworKyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hh cmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpv ciAkbGlibmFtZSR7c2hhcmVkX2V4dH0nCisrICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFU SAorKyAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPSIvdXNyL3NobGliIC91c3IvY2NzL2xpYiAv dXNyL2xpYi9jbXBscnMvY2MgL3Vzci9saWIgL3Vzci9sb2NhbC9saWIgL3Zhci9zaGxpYiIKKysg IHN5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjPSIkc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjIgor KyAgOzsKKysKKytyZG9zKikKKysgIGR5bmFtaWNfbGlua2VyPW5vCisrICA7OworKworK3NvbGFy aXMqKQorKyAgdmVyc2lvbl90eXBlPWxpbnV4CisrICBuZWVkX2xpYl9wcmVmaXg9bm8KKysgIG5l ZWRfdmVyc2lvbj1ubworKyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNl fSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0 fSRtYWpvciAkbGlibmFtZSR7c2hhcmVkX2V4dH0nCisrICBzb25hbWVfc3BlYz0nJHtsaWJuYW1l fSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yJworKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJS QVJZX1BBVEgKKysgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD15ZXMKKysgIGhhcmRjb2Rl X2ludG9fbGlicz15ZXMKKysgICMgbGRkIGNvbXBsYWlucyB1bmxlc3MgbGlicmFyaWVzIGFyZSBl eGVjdXRhYmxlCisrICBwb3N0aW5zdGFsbF9jbWRzPSdjaG1vZCAreCAkbGliJworKyAgOzsKKysK KytzdW5vczQqKQorKyAgdmVyc2lvbl90eXBlPXN1bm9zCisrICBsaWJyYXJ5X25hbWVzX3NwZWM9 JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7 c2hhcmVkX2V4dH0kdmVyc3VmZml4JworKyAgZmluaXNoX2NtZHM9J1BBVEg9IlwkUEFUSDovdXNy L2V0YyIgbGRjb25maWcgJGxpYmRpcicKKysgIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRI CisrICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9eWVzCisrICBpZiB0ZXN0ICIkd2l0aF9n bnVfbGQiID0geWVzOyB0aGVuCisrICAgIG5lZWRfbGliX3ByZWZpeD1ubworKyAgZmkKKysgIG5l ZWRfdmVyc2lvbj15ZXMKKysgIDs7CisrCisrc3lzdjQgfCBzeXN2NC4zKikKKysgIHZlcnNpb25f dHlwZT1saW51eAorKyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7 c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRt YWpvciAkbGlibmFtZSR7c2hhcmVkX2V4dH0nCisrICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7 cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yJworKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZ X1BBVEgKKysgIGNhc2UgJGhvc3RfdmVuZG9yIGluCisrICAgIHNuaSkKKysgICAgICBzaGxpYnBh dGhfb3ZlcnJpZGVzX3J1bnBhdGg9bm8KKysgICAgICBuZWVkX2xpYl9wcmVmaXg9bm8KKysgICAg ICBydW5wYXRoX3Zhcj1MRF9SVU5fUEFUSAorKyAgICAgIDs7CisrICAgIHNpZW1lbnMpCisrICAg ICAgbmVlZF9saWJfcHJlZml4PW5vCisrICAgICAgOzsKKysgICAgbW90b3JvbGEpCisrICAgICAg bmVlZF9saWJfcHJlZml4PW5vCisrICAgICAgbmVlZF92ZXJzaW9uPW5vCisrICAgICAgc2hsaWJw YXRoX292ZXJyaWRlc19ydW5wYXRoPW5vCisrICAgICAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVj PScvbGliIC91c3IvbGliIC91c3IvY2NzL2xpYicKKysgICAgICA7OworKyAgZXNhYworKyAgOzsK KysKKytzeXN2NCpNUCopCisrICBpZiB0ZXN0IC1kIC91c3IvbmVjIDt0aGVuCisrICAgIHZlcnNp b25fdHlwZT1saW51eAorKyAgICBsaWJyYXJ5X25hbWVzX3NwZWM9JyRsaWJuYW1lJHtzaGFyZWRf ZXh0fS4kdmVyc3VmZml4ICRsaWJuYW1lJHtzaGFyZWRfZXh0fS4kbWFqb3IgJGxpYm5hbWUke3No YXJlZF9leHR9JworKyAgICBzb25hbWVfc3BlYz0nJGxpYm5hbWUke3NoYXJlZF9leHR9LiRtYWpv cicKKysgICAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKKysgIGZpCisrICA7OworKwor K3N5c3Y1KiB8IHNjbzMuMnY1KiB8IHNjbzV2NiogfCB1bml4d2FyZSogfCBPcGVuVU5JWCogfCBz eXN2NCp1dzIqKQorKyAgdmVyc2lvbl90eXBlPWZyZWVic2QtZWxmCisrICBuZWVkX2xpYl9wcmVm aXg9bm8KKysgIG5lZWRfdmVyc2lvbj1ubworKyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5h bWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9 JHtzaGFyZWRfZXh0fSAkbGlibmFtZSR7c2hhcmVkX2V4dH0nCisrICBzb25hbWVfc3BlYz0nJHts aWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yJworKyAgc2hsaWJwYXRoX3Zhcj1M RF9MSUJSQVJZX1BBVEgKKysgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD15ZXMKKysgIGhh cmRjb2RlX2ludG9fbGlicz15ZXMKKysgIGlmIHRlc3QgIiR3aXRoX2dudV9sZCIgPSB5ZXM7IHRo ZW4KKysgICAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPScvdXNyL2xvY2FsL2xpYiAvdXNyL2du dS9saWIgL3Vzci9jY3MvbGliIC91c3IvbGliIC9saWInCisrICBlbHNlCisrICAgIHN5c19saWJf c2VhcmNoX3BhdGhfc3BlYz0nL3Vzci9jY3MvbGliIC91c3IvbGliJworKyAgICBjYXNlICRob3N0 X29zIGluCisrICAgICAgc2NvMy4ydjUqKQorKyAgICAgICAgc3lzX2xpYl9zZWFyY2hfcGF0aF9z cGVjPSIkc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjIC9saWIiCisrCTs7CisrICAgIGVzYWMKKysg IGZpCisrICBzeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYz0nL3Vzci9saWInCisrICA7OworKwor K3RwZiopCisrICAjIFRQRiBpcyBhIGNyb3NzLXRhcmdldCBvbmx5LiAgUHJlZmVycmVkIGNyb3Nz LWhvc3QgPSBHTlUvTGludXguCisrICB2ZXJzaW9uX3R5cGU9bGludXgKKysgIG5lZWRfbGliX3By ZWZpeD1ubworKyAgbmVlZF92ZXJzaW9uPW5vCisrICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGli bmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFz ZX0ke3NoYXJlZF9leHR9JG1ham9yICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKKysgIHNobGlicGF0 aF92YXI9TERfTElCUkFSWV9QQVRICisrICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9bm8K KysgIGhhcmRjb2RlX2ludG9fbGlicz15ZXMKKysgIDs7CisrCisrdXRzNCopCisrICB2ZXJzaW9u X3R5cGU9bGludXgKKysgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0k e3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0k bWFqb3IgJGxpYm5hbWUke3NoYXJlZF9leHR9JworKyAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0k e3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKKysgIHNobGlicGF0aF92YXI9TERfTElCUkFS WV9QQVRICisrICA7OworKworKyopCisrICBkeW5hbWljX2xpbmtlcj1ubworKyAgOzsKKytlc2Fj CisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGR5bmFtaWNfbGlua2VyIiA+ JjUKKyskYXNfZWNobyAiJGR5bmFtaWNfbGlua2VyIiA+JjY7IH0KKyt0ZXN0ICIkZHluYW1pY19s aW5rZXIiID0gbm8gJiYgY2FuX2J1aWxkX3NoYXJlZD1ubworKworK3ZhcmlhYmxlc19zYXZlZF9m b3JfcmVsaW5rPSJQQVRIICRzaGxpYnBhdGhfdmFyICRydW5wYXRoX3ZhciIKKytpZiB0ZXN0ICIk R0NDIiA9IHllczsgdGhlbgorKyAgdmFyaWFibGVzX3NhdmVkX2Zvcl9yZWxpbms9IiR2YXJpYWJs ZXNfc2F2ZWRfZm9yX3JlbGluayBHQ0NfRVhFQ19QUkVGSVggQ09NUElMRVJfUEFUSCBMSUJSQVJZ X1BBVEgiCisrZmkKKysKKytpZiB0ZXN0ICIke2x0X2N2X3N5c19saWJfc2VhcmNoX3BhdGhfc3Bl YytzZXR9IiA9IHNldDsgdGhlbgorKyAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPSIkbHRfY3Zf c3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjIgorK2ZpCisraWYgdGVzdCAiJHtsdF9jdl9zeXNfbGli X2Rsc2VhcmNoX3BhdGhfc3BlYytzZXR9IiA9IHNldDsgdGhlbgorKyAgc3lzX2xpYl9kbHNlYXJj aF9wYXRoX3NwZWM9IiRsdF9jdl9zeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYyIKKytmaQorKwor KworKworKworKworKworKworKworKworKworKworKworKworKworKworKworKworKworKworKwor KworKworKworKworKworKworKworKworKworKworKworKworKworKworKworKworKworKworKwor KworKworKworKworKworKworKworKworKworKworKworKworKworKworKworKworKworKworKwor KworKworKworKworKworKworKworKworKworKworKworKworKworKworKworKworKworKworKwor KworKworKworKworKworKworKworKworKworKworKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5F Tk86IGNoZWNraW5nIGhvdyB0byBoYXJkY29kZSBsaWJyYXJ5IHBhdGhzIGludG8gcHJvZ3JhbXMi ID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIGhvdyB0byBoYXJkY29kZSBsaWJyYXJ5IHBhdGhz IGludG8gcHJvZ3JhbXMuLi4gIiA+JjY7IH0KKytoYXJkY29kZV9hY3Rpb249CisraWYgdGVzdCAt biAiJGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMiIHx8CisrICAgdGVzdCAtbiAiJHJ1bnBhdGhf dmFyIiB8fAorKyAgIHRlc3QgIlgkaGFyZGNvZGVfYXV0b21hdGljIiA9ICJYeWVzIiA7IHRoZW4K KysKKysgICMgV2UgY2FuIGhhcmRjb2RlIG5vbi1leGlzdGVudCBkaXJlY3Rvcmllcy4KKysgIGlm IHRlc3QgIiRoYXJkY29kZV9kaXJlY3QiICE9IG5vICYmCisrICAgICAjIElmIHRoZSBvbmx5IG1l Y2hhbmlzbSB0byBhdm9pZCBoYXJkY29kaW5nIGlzIHNobGlicGF0aF92YXIsIHdlCisrICAgICAj IGhhdmUgdG8gcmVsaW5rLCBvdGhlcndpc2Ugd2UgbWlnaHQgbGluayB3aXRoIGFuIGluc3RhbGxl ZCBsaWJyYXJ5CisrICAgICAjIHdoZW4gd2Ugc2hvdWxkIGJlIGxpbmtpbmcgd2l0aCBhIHlldC10 by1iZS1pbnN0YWxsZWQgb25lCisrICAgICAjIyB0ZXN0ICIkX0xUX1RBR1ZBUihoYXJkY29kZV9z aGxpYnBhdGhfdmFyLCApIiAhPSBubyAmJgorKyAgICAgdGVzdCAiJGhhcmRjb2RlX21pbnVzX0wi ICE9IG5vOyB0aGVuCisrICAgICMgTGlua2luZyBhbHdheXMgaGFyZGNvZGVzIHRoZSB0ZW1wb3Jh cnkgbGlicmFyeSBkaXJlY3RvcnkuCisrICAgIGhhcmRjb2RlX2FjdGlvbj1yZWxpbmsKKysgIGVs c2UKKysgICAgIyBXZSBjYW4gbGluayB3aXRob3V0IGhhcmRjb2RpbmcsIGFuZCB3ZSBjYW4gaGFy ZGNvZGUgbm9uZXhpc3RpbmcgZGlycy4KKysgICAgaGFyZGNvZGVfYWN0aW9uPWltbWVkaWF0ZQor KyAgZmkKKytlbHNlCisrICAjIFdlIGNhbm5vdCBoYXJkY29kZSBhbnl0aGluZywgb3IgZWxzZSB3 ZSBjYW4gb25seSBoYXJkY29kZSBleGlzdGluZworKyAgIyBkaXJlY3Rvcmllcy4KKysgIGhhcmRj b2RlX2FjdGlvbj11bnN1cHBvcnRlZAorK2ZpCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86 IHJlc3VsdDogJGhhcmRjb2RlX2FjdGlvbiIgPiY1CisrJGFzX2VjaG8gIiRoYXJkY29kZV9hY3Rp b24iID4mNjsgfQorKworK2lmIHRlc3QgIiRoYXJkY29kZV9hY3Rpb24iID0gcmVsaW5rIHx8Cisr ICAgdGVzdCAiJGluaGVyaXRfcnBhdGgiID0geWVzOyB0aGVuCisrICAjIEZhc3QgaW5zdGFsbGF0 aW9uIGlzIG5vdCBzdXBwb3J0ZWQKKysgIGVuYWJsZV9mYXN0X2luc3RhbGw9bm8KKytlbGlmIHRl c3QgIiRzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGgiID0geWVzIHx8CisrICAgICB0ZXN0ICIk ZW5hYmxlX3NoYXJlZCIgPSBubzsgdGhlbgorKyAgIyBGYXN0IGluc3RhbGxhdGlvbiBpcyBub3Qg bmVjZXNzYXJ5CisrICBlbmFibGVfZmFzdF9pbnN0YWxsPW5lZWRsZXNzCisrZmkKKysKKysKKysK KysKKysKKysKKysgIGlmIHRlc3QgIngkZW5hYmxlX2Rsb3BlbiIgIT0geHllczsgdGhlbgorKyAg ZW5hYmxlX2Rsb3Blbj11bmtub3duCisrICBlbmFibGVfZGxvcGVuX3NlbGY9dW5rbm93bgorKyAg ZW5hYmxlX2Rsb3Blbl9zZWxmX3N0YXRpYz11bmtub3duCisrZWxzZQorKyAgbHRfY3ZfZGxvcGVu PW5vCisrICBsdF9jdl9kbG9wZW5fbGlicz0KKysKKysgIGNhc2UgJGhvc3Rfb3MgaW4KKysgIGJl b3MqKQorKyAgICBsdF9jdl9kbG9wZW49ImxvYWRfYWRkX29uIgorKyAgICBsdF9jdl9kbG9wZW5f bGlicz0KKysgICAgbHRfY3ZfZGxvcGVuX3NlbGY9eWVzCisrICAgIDs7CisrCisrICBtaW5ndyog fCBwdzMyKiB8IGNlZ2NjKikKKysgICAgbHRfY3ZfZGxvcGVuPSJMb2FkTGlicmFyeSIKKysgICAg bHRfY3ZfZGxvcGVuX2xpYnM9CisrICAgIDs7CisrCisrICBjeWd3aW4qKQorKyAgICBsdF9jdl9k bG9wZW49ImRsb3BlbiIKKysgICAgbHRfY3ZfZGxvcGVuX2xpYnM9CisrICAgIDs7CisrCisrICBk YXJ3aW4qKQorKyAgIyBpZiBsaWJkbCBpcyBpbnN0YWxsZWQgd2UgbmVlZCB0byBsaW5rIGFnYWlu c3QgaXQKKysgICAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciBkbG9w ZW4gaW4gLWxkbCIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yIGRsb3BlbiBpbiAtbGRs Li4uICIgPiY2OyB9CisraWYgdGVzdCAiJHthY19jdl9saWJfZGxfZGxvcGVuK3NldH0iID0gc2V0 OyB0aGVuCisrICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysgIGFjX2NoZWNr X2xpYl9zYXZlX0xJQlM9JExJQlMKKytMSUJTPSItbGRsICAkTElCUyIKKytjYXQgPmNvbmZ0ZXN0 LiRhY19leHQgPDxfQUNFT0YKKysvKiBjb25mZGVmcy5oLiAgKi8KKytfQUNFT0YKKytjYXQgY29u ZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKKytjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FD RU9GCisrLyogZW5kIGNvbmZkZWZzLmguICAqLworKworKy8qIE92ZXJyaWRlIGFueSBHQ0MgaW50 ZXJuYWwgcHJvdG90eXBlIHRvIGF2b2lkIGFuIGVycm9yLgorKyAgIFVzZSBjaGFyIGJlY2F1c2Ug aW50IG1pZ2h0IG1hdGNoIHRoZSByZXR1cm4gdHlwZSBvZiBhIEdDQworKyAgIGJ1aWx0aW4gYW5k IHRoZW4gaXRzIGFyZ3VtZW50IHByb3RvdHlwZSB3b3VsZCBzdGlsbCBhcHBseS4gICovCisrI2lm ZGVmIF9fY3BsdXNwbHVzCisrZXh0ZXJuICJDIgorKyNlbmRpZgorK2NoYXIgZGxvcGVuICgpOwor K2ludAorK21haW4gKCkKKyt7CisrcmV0dXJuIGRsb3BlbiAoKTsKKysgIDsKKysgIHJldHVybiAw OworK30KKytfQUNFT0YKKytybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0JGFjX2V4 ZWV4dAorK2lmIHsgKGFjX3RyeT0iJGFjX2xpbmsiCisrY2FzZSAiKCgkYWNfdHJ5IiBpbgorKyAg KlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7CisrICAqKSBhY190cnlf ZWNobz0kYWNfdHJ5OzsKKytlc2FjCisrZXZhbCBhY190cnlfZWNobz0iXCJcJGFzX21lOiRMSU5F Tk86ICRhY190cnlfZWNob1wiIgorKyRhc19lY2hvICIkYWNfdHJ5X2VjaG8iKSA+JjUKKysgIChl dmFsICIkYWNfbGluayIpIDI+Y29uZnRlc3QuZXIxCisrICBhY19zdGF0dXM9JD8KKysgIGdyZXAg LXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCisrICBybSAtZiBjb25mdGVzdC5l cjEKKysgIGNhdCBjb25mdGVzdC5lcnIgPiY1CisrICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86 IFwkPyA9ICRhY19zdGF0dXMiID4mNQorKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYgeworKwkg dGVzdCAteiAiJGFjX2Nfd2Vycm9yX2ZsYWciIHx8CisrCSB0ZXN0ICEgLXMgY29uZnRlc3QuZXJy CisrICAgICAgIH0gJiYgdGVzdCAtcyBjb25mdGVzdCRhY19leGVleHQgJiYgeworKwkgdGVzdCAi JGNyb3NzX2NvbXBpbGluZyIgPSB5ZXMgfHwKKysJICRhc190ZXN0X3ggY29uZnRlc3QkYWNfZXhl ZXh0CisrICAgICAgIH07IHRoZW4KKysgIGFjX2N2X2xpYl9kbF9kbG9wZW49eWVzCisrZWxzZQor KyAgJGFzX2VjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Cisrc2VkICdzL14v fCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQorKworKwlhY19jdl9saWJfZGxfZGxvcGVuPW5vCisr ZmkKKysKKytybSAtcmYgY29uZnRlc3QuZFNZTQorK3JtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNv bmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3RfaXBhOF9jb25mdGVzdC5vbyBcCisrICAgICAgY29u ZnRlc3QkYWNfZXhlZXh0IGNvbmZ0ZXN0LiRhY19leHQKKytMSUJTPSRhY19jaGVja19saWJfc2F2 ZV9MSUJTCisrZmkKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3Zf bGliX2RsX2Rsb3BlbiIgPiY1CisrJGFzX2VjaG8gIiRhY19jdl9saWJfZGxfZGxvcGVuIiA+JjY7 IH0KKytpZiB0ZXN0ICJ4JGFjX2N2X2xpYl9kbF9kbG9wZW4iID0geCIieWVzOyB0aGVuCisrICBs dF9jdl9kbG9wZW49ImRsb3BlbiIgbHRfY3ZfZGxvcGVuX2xpYnM9Ii1sZGwiCisrZWxzZQorKwor KyAgICBsdF9jdl9kbG9wZW49ImR5bGQiCisrICAgIGx0X2N2X2Rsb3Blbl9saWJzPQorKyAgICBs dF9jdl9kbG9wZW5fc2VsZj15ZXMKKysKKytmaQorKworKyAgICA7OworKworKyAgKikKKysgICAg eyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciBzaGxfbG9hZCIgPiY1Cisr JGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yIHNobF9sb2FkLi4uICIgPiY2OyB9CisraWYgdGVzdCAi JHthY19jdl9mdW5jX3NobF9sb2FkK3NldH0iID0gc2V0OyB0aGVuCisrICAkYXNfZWNob19uICIo Y2FjaGVkKSAiID4mNgorK2Vsc2UKKysgIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgor Ky8qIGNvbmZkZWZzLmguICAqLworK19BQ0VPRgorK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3Qu JGFjX2V4dAorK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKysvKiBlbmQgY29uZmRl ZnMuaC4gICovCisrLyogRGVmaW5lIHNobF9sb2FkIHRvIGFuIGlubm9jdW91cyB2YXJpYW50LCBp biBjYXNlIDxsaW1pdHMuaD4gZGVjbGFyZXMgc2hsX2xvYWQuCisrICAgRm9yIGV4YW1wbGUsIEhQ LVVYIDExaSA8bGltaXRzLmg+IGRlY2xhcmVzIGdldHRpbWVvZmRheS4gICovCisrI2RlZmluZSBz aGxfbG9hZCBpbm5vY3VvdXNfc2hsX2xvYWQKKysKKysvKiBTeXN0ZW0gaGVhZGVyIHRvIGRlZmlu ZSBfX3N0dWIgbWFjcm9zIGFuZCBob3BlZnVsbHkgZmV3IHByb3RvdHlwZXMsCisrICAgIHdoaWNo IGNhbiBjb25mbGljdCB3aXRoIGNoYXIgc2hsX2xvYWQgKCk7IGJlbG93LgorKyAgICBQcmVmZXIg PGxpbWl0cy5oPiB0byA8YXNzZXJ0Lmg+IGlmIF9fU1REQ19fIGlzIGRlZmluZWQsIHNpbmNlCisr ICAgIDxsaW1pdHMuaD4gZXhpc3RzIGV2ZW4gb24gZnJlZXN0YW5kaW5nIGNvbXBpbGVycy4gICov CisrCisrI2lmZGVmIF9fU1REQ19fCisrIyBpbmNsdWRlIDxsaW1pdHMuaD4KKysjZWxzZQorKyMg aW5jbHVkZSA8YXNzZXJ0Lmg+CisrI2VuZGlmCisrCisrI3VuZGVmIHNobF9sb2FkCisrCisrLyog T3ZlcnJpZGUgYW55IEdDQyBpbnRlcm5hbCBwcm90b3R5cGUgdG8gYXZvaWQgYW4gZXJyb3IuCisr ICAgVXNlIGNoYXIgYmVjYXVzZSBpbnQgbWlnaHQgbWF0Y2ggdGhlIHJldHVybiB0eXBlIG9mIGEg R0NDCisrICAgYnVpbHRpbiBhbmQgdGhlbiBpdHMgYXJndW1lbnQgcHJvdG90eXBlIHdvdWxkIHN0 aWxsIGFwcGx5LiAgKi8KKysjaWZkZWYgX19jcGx1c3BsdXMKKytleHRlcm4gIkMiCisrI2VuZGlm CisrY2hhciBzaGxfbG9hZCAoKTsKKysvKiBUaGUgR05VIEMgbGlicmFyeSBkZWZpbmVzIHRoaXMg Zm9yIGZ1bmN0aW9ucyB3aGljaCBpdCBpbXBsZW1lbnRzCisrICAgIHRvIGFsd2F5cyBmYWlsIHdp dGggRU5PU1lTLiAgU29tZSBmdW5jdGlvbnMgYXJlIGFjdHVhbGx5IG5hbWVkCisrICAgIHNvbWV0 aGluZyBzdGFydGluZyB3aXRoIF9fIGFuZCB0aGUgbm9ybWFsIG5hbWUgaXMgYW4gYWxpYXMuICAq LworKyNpZiBkZWZpbmVkIF9fc3R1Yl9zaGxfbG9hZCB8fCBkZWZpbmVkIF9fc3R1Yl9fX3NobF9s b2FkCisrY2hva2UgbWUKKysjZW5kaWYKKysKKytpbnQKKyttYWluICgpCisreworK3JldHVybiBz aGxfbG9hZCAoKTsKKysgIDsKKysgIHJldHVybiAwOworK30KKytfQUNFT0YKKytybSAtZiBjb25m dGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0JGFjX2V4ZWV4dAorK2lmIHsgKGFjX3RyeT0iJGFjX2xp bmsiCisrY2FzZSAiKCgkYWNfdHJ5IiBpbgorKyAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlf ZWNobz1cJGFjX3RyeTs7CisrICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKKytlc2FjCisrZXZh bCBhY190cnlfZWNobz0iXCJcJGFzX21lOiRMSU5FTk86ICRhY190cnlfZWNob1wiIgorKyRhc19l Y2hvICIkYWNfdHJ5X2VjaG8iKSA+JjUKKysgIChldmFsICIkYWNfbGluayIpIDI+Y29uZnRlc3Qu ZXIxCisrICBhY19zdGF0dXM9JD8KKysgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29u ZnRlc3QuZXJyCisrICBybSAtZiBjb25mdGVzdC5lcjEKKysgIGNhdCBjb25mdGVzdC5lcnIgPiY1 CisrICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorKyAg KGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYgeworKwkgdGVzdCAteiAiJGFjX2Nfd2Vycm9yX2ZsYWci IHx8CisrCSB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCisrICAgICAgIH0gJiYgdGVzdCAtcyBjb25m dGVzdCRhY19leGVleHQgJiYgeworKwkgdGVzdCAiJGNyb3NzX2NvbXBpbGluZyIgPSB5ZXMgfHwK KysJICRhc190ZXN0X3ggY29uZnRlc3QkYWNfZXhlZXh0CisrICAgICAgIH07IHRoZW4KKysgIGFj X2N2X2Z1bmNfc2hsX2xvYWQ9eWVzCisrZWxzZQorKyAgJGFzX2VjaG8gIiRhc19tZTogZmFpbGVk IHByb2dyYW0gd2FzOiIgPiY1Cisrc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQor KworKwlhY19jdl9mdW5jX3NobF9sb2FkPW5vCisrZmkKKysKKytybSAtcmYgY29uZnRlc3QuZFNZ TQorK3JtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3Rf aXBhOF9jb25mdGVzdC5vbyBcCisrICAgICAgY29uZnRlc3QkYWNfZXhlZXh0IGNvbmZ0ZXN0LiRh Y19leHQKKytmaQorK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19jdl9m dW5jX3NobF9sb2FkIiA+JjUKKyskYXNfZWNobyAiJGFjX2N2X2Z1bmNfc2hsX2xvYWQiID4mNjsg fQorK2lmIHRlc3QgIngkYWNfY3ZfZnVuY19zaGxfbG9hZCIgPSB4IiJ5ZXM7IHRoZW4KKysgIGx0 X2N2X2Rsb3Blbj0ic2hsX2xvYWQiCisrZWxzZQorKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5F Tk86IGNoZWNraW5nIGZvciBzaGxfbG9hZCBpbiAtbGRsZCIgPiY1CisrJGFzX2VjaG9fbiAiY2hl Y2tpbmcgZm9yIHNobF9sb2FkIGluIC1sZGxkLi4uICIgPiY2OyB9CisraWYgdGVzdCAiJHthY19j dl9saWJfZGxkX3NobF9sb2FkK3NldH0iID0gc2V0OyB0aGVuCisrICAkYXNfZWNob19uICIoY2Fj aGVkKSAiID4mNgorK2Vsc2UKKysgIGFjX2NoZWNrX2xpYl9zYXZlX0xJQlM9JExJQlMKKytMSUJT PSItbGRsZCAgJExJQlMiCisrY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisrLyogY29u ZmRlZnMuaC4gICovCisrX0FDRU9GCisrY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0 CisrY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorKy8qIGVuZCBjb25mZGVmcy5oLiAg Ki8KKysKKysvKiBPdmVycmlkZSBhbnkgR0NDIGludGVybmFsIHByb3RvdHlwZSB0byBhdm9pZCBh biBlcnJvci4KKysgICBVc2UgY2hhciBiZWNhdXNlIGludCBtaWdodCBtYXRjaCB0aGUgcmV0dXJu IHR5cGUgb2YgYSBHQ0MKKysgICBidWlsdGluIGFuZCB0aGVuIGl0cyBhcmd1bWVudCBwcm90b3R5 cGUgd291bGQgc3RpbGwgYXBwbHkuICAqLworKyNpZmRlZiBfX2NwbHVzcGx1cworK2V4dGVybiAi QyIKKysjZW5kaWYKKytjaGFyIHNobF9sb2FkICgpOworK2ludAorK21haW4gKCkKKyt7CisrcmV0 dXJuIHNobF9sb2FkICgpOworKyAgOworKyAgcmV0dXJuIDA7CisrfQorK19BQ0VPRgorK3JtIC1m IGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QkYWNfZXhlZXh0CisraWYgeyAoYWNfdHJ5PSIk YWNfbGluayIKKytjYXNlICIoKCRhY190cnkiIGluCisrICAqXCIqIHwgKlxgKiB8ICpcXCopIGFj X3RyeV9lY2hvPVwkYWNfdHJ5OzsKKysgICopIGFjX3RyeV9lY2hvPSRhY190cnk7OworK2VzYWMK KytldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCisr JGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4mNQorKyAgKGV2YWwgIiRhY19saW5rIikgMj5jb25m dGVzdC5lcjEKKysgIGFjX3N0YXR1cz0kPworKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIx ID5jb25mdGVzdC5lcnIKKysgIHJtIC1mIGNvbmZ0ZXN0LmVyMQorKyAgY2F0IGNvbmZ0ZXN0LmVy ciA+JjUKKysgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1 CisrICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJiB7CisrCSB0ZXN0IC16ICIkYWNfY193ZXJyb3Jf ZmxhZyIgfHwKKysJIHRlc3QgISAtcyBjb25mdGVzdC5lcnIKKysgICAgICAgfSAmJiB0ZXN0IC1z IGNvbmZ0ZXN0JGFjX2V4ZWV4dCAmJiB7CisrCSB0ZXN0ICIkY3Jvc3NfY29tcGlsaW5nIiA9IHll cyB8fAorKwkgJGFzX3Rlc3RfeCBjb25mdGVzdCRhY19leGVleHQKKysgICAgICAgfTsgdGhlbgor KyAgYWNfY3ZfbGliX2RsZF9zaGxfbG9hZD15ZXMKKytlbHNlCisrICAkYXNfZWNobyAiJGFzX21l OiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKKytzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19l eHQgPiY1CisrCisrCWFjX2N2X2xpYl9kbGRfc2hsX2xvYWQ9bm8KKytmaQorKworK3JtIC1yZiBj b25mdGVzdC5kU1lNCisrcm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4 dCBjb25mdGVzdF9pcGE4X2NvbmZ0ZXN0Lm9vIFwKKysgICAgICBjb25mdGVzdCRhY19leGVleHQg Y29uZnRlc3QuJGFjX2V4dAorK0xJQlM9JGFjX2NoZWNrX2xpYl9zYXZlX0xJQlMKKytmaQorK3sg JGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19jdl9saWJfZGxkX3NobF9sb2Fk IiA+JjUKKyskYXNfZWNobyAiJGFjX2N2X2xpYl9kbGRfc2hsX2xvYWQiID4mNjsgfQorK2lmIHRl c3QgIngkYWNfY3ZfbGliX2RsZF9zaGxfbG9hZCIgPSB4IiJ5ZXM7IHRoZW4KKysgIGx0X2N2X2Rs b3Blbj0ic2hsX2xvYWQiIGx0X2N2X2Rsb3Blbl9saWJzPSItbGRsZCIKKytlbHNlCisrICB7ICRh c19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIGRsb3BlbiIgPiY1CisrJGFzX2Vj aG9fbiAiY2hlY2tpbmcgZm9yIGRsb3Blbi4uLiAiID4mNjsgfQorK2lmIHRlc3QgIiR7YWNfY3Zf ZnVuY19kbG9wZW4rc2V0fSIgPSBzZXQ7IHRoZW4KKysgICRhc19lY2hvX24gIihjYWNoZWQpICIg PiY2CisrZWxzZQorKyAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisrLyogY29uZmRl ZnMuaC4gICovCisrX0FDRU9GCisrY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Cisr Y2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8K KysvKiBEZWZpbmUgZGxvcGVuIHRvIGFuIGlubm9jdW91cyB2YXJpYW50LCBpbiBjYXNlIDxsaW1p dHMuaD4gZGVjbGFyZXMgZGxvcGVuLgorKyAgIEZvciBleGFtcGxlLCBIUC1VWCAxMWkgPGxpbWl0 cy5oPiBkZWNsYXJlcyBnZXR0aW1lb2ZkYXkuICAqLworKyNkZWZpbmUgZGxvcGVuIGlubm9jdW91 c19kbG9wZW4KKysKKysvKiBTeXN0ZW0gaGVhZGVyIHRvIGRlZmluZSBfX3N0dWIgbWFjcm9zIGFu ZCBob3BlZnVsbHkgZmV3IHByb3RvdHlwZXMsCisrICAgIHdoaWNoIGNhbiBjb25mbGljdCB3aXRo IGNoYXIgZGxvcGVuICgpOyBiZWxvdy4KKysgICAgUHJlZmVyIDxsaW1pdHMuaD4gdG8gPGFzc2Vy dC5oPiBpZiBfX1NURENfXyBpcyBkZWZpbmVkLCBzaW5jZQorKyAgICA8bGltaXRzLmg+IGV4aXN0 cyBldmVuIG9uIGZyZWVzdGFuZGluZyBjb21waWxlcnMuICAqLworKworKyNpZmRlZiBfX1NURENf XworKyMgaW5jbHVkZSA8bGltaXRzLmg+CisrI2Vsc2UKKysjIGluY2x1ZGUgPGFzc2VydC5oPgor KyNlbmRpZgorKworKyN1bmRlZiBkbG9wZW4KKysKKysvKiBPdmVycmlkZSBhbnkgR0NDIGludGVy bmFsIHByb3RvdHlwZSB0byBhdm9pZCBhbiBlcnJvci4KKysgICBVc2UgY2hhciBiZWNhdXNlIGlu dCBtaWdodCBtYXRjaCB0aGUgcmV0dXJuIHR5cGUgb2YgYSBHQ0MKKysgICBidWlsdGluIGFuZCB0 aGVuIGl0cyBhcmd1bWVudCBwcm90b3R5cGUgd291bGQgc3RpbGwgYXBwbHkuICAqLworKyNpZmRl ZiBfX2NwbHVzcGx1cworK2V4dGVybiAiQyIKKysjZW5kaWYKKytjaGFyIGRsb3BlbiAoKTsKKysv KiBUaGUgR05VIEMgbGlicmFyeSBkZWZpbmVzIHRoaXMgZm9yIGZ1bmN0aW9ucyB3aGljaCBpdCBp bXBsZW1lbnRzCisrICAgIHRvIGFsd2F5cyBmYWlsIHdpdGggRU5PU1lTLiAgU29tZSBmdW5jdGlv bnMgYXJlIGFjdHVhbGx5IG5hbWVkCisrICAgIHNvbWV0aGluZyBzdGFydGluZyB3aXRoIF9fIGFu ZCB0aGUgbm9ybWFsIG5hbWUgaXMgYW4gYWxpYXMuICAqLworKyNpZiBkZWZpbmVkIF9fc3R1Yl9k bG9wZW4gfHwgZGVmaW5lZCBfX3N0dWJfX19kbG9wZW4KKytjaG9rZSBtZQorKyNlbmRpZgorKwor K2ludAorK21haW4gKCkKKyt7CisrcmV0dXJuIGRsb3BlbiAoKTsKKysgIDsKKysgIHJldHVybiAw OworK30KKytfQUNFT0YKKytybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0JGFjX2V4 ZWV4dAorK2lmIHsgKGFjX3RyeT0iJGFjX2xpbmsiCisrY2FzZSAiKCgkYWNfdHJ5IiBpbgorKyAg KlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7CisrICAqKSBhY190cnlf ZWNobz0kYWNfdHJ5OzsKKytlc2FjCisrZXZhbCBhY190cnlfZWNobz0iXCJcJGFzX21lOiRMSU5F Tk86ICRhY190cnlfZWNob1wiIgorKyRhc19lY2hvICIkYWNfdHJ5X2VjaG8iKSA+JjUKKysgIChl dmFsICIkYWNfbGluayIpIDI+Y29uZnRlc3QuZXIxCisrICBhY19zdGF0dXM9JD8KKysgIGdyZXAg LXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCisrICBybSAtZiBjb25mdGVzdC5l cjEKKysgIGNhdCBjb25mdGVzdC5lcnIgPiY1CisrICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86 IFwkPyA9ICRhY19zdGF0dXMiID4mNQorKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYgeworKwkg dGVzdCAteiAiJGFjX2Nfd2Vycm9yX2ZsYWciIHx8CisrCSB0ZXN0ICEgLXMgY29uZnRlc3QuZXJy CisrICAgICAgIH0gJiYgdGVzdCAtcyBjb25mdGVzdCRhY19leGVleHQgJiYgeworKwkgdGVzdCAi JGNyb3NzX2NvbXBpbGluZyIgPSB5ZXMgfHwKKysJICRhc190ZXN0X3ggY29uZnRlc3QkYWNfZXhl ZXh0CisrICAgICAgIH07IHRoZW4KKysgIGFjX2N2X2Z1bmNfZGxvcGVuPXllcworK2Vsc2UKKysg ICRhc19lY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQorK3NlZCAncy9eL3wg LycgY29uZnRlc3QuJGFjX2V4dCA+JjUKKysKKysJYWNfY3ZfZnVuY19kbG9wZW49bm8KKytmaQor KworK3JtIC1yZiBjb25mdGVzdC5kU1lNCisrcm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRl c3QuJGFjX29iamV4dCBjb25mdGVzdF9pcGE4X2NvbmZ0ZXN0Lm9vIFwKKysgICAgICBjb25mdGVz dCRhY19leGVleHQgY29uZnRlc3QuJGFjX2V4dAorK2ZpCisreyAkYXNfZWNobyAiJGFzX21lOiRM SU5FTk86IHJlc3VsdDogJGFjX2N2X2Z1bmNfZGxvcGVuIiA+JjUKKyskYXNfZWNobyAiJGFjX2N2 X2Z1bmNfZGxvcGVuIiA+JjY7IH0KKytpZiB0ZXN0ICJ4JGFjX2N2X2Z1bmNfZGxvcGVuIiA9IHgi InllczsgdGhlbgorKyAgbHRfY3ZfZGxvcGVuPSJkbG9wZW4iCisrZWxzZQorKyAgeyAkYXNfZWNo byAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciBkbG9wZW4gaW4gLWxkbCIgPiY1CisrJGFz X2VjaG9fbiAiY2hlY2tpbmcgZm9yIGRsb3BlbiBpbiAtbGRsLi4uICIgPiY2OyB9CisraWYgdGVz dCAiJHthY19jdl9saWJfZGxfZGxvcGVuK3NldH0iID0gc2V0OyB0aGVuCisrICAkYXNfZWNob19u ICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysgIGFjX2NoZWNrX2xpYl9zYXZlX0xJQlM9JExJQlMK KytMSUJTPSItbGRsICAkTElCUyIKKytjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKysv KiBjb25mZGVmcy5oLiAgKi8KKytfQUNFT0YKKytjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRh Y19leHQKKytjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisrLyogZW5kIGNvbmZkZWZz LmguICAqLworKworKy8qIE92ZXJyaWRlIGFueSBHQ0MgaW50ZXJuYWwgcHJvdG90eXBlIHRvIGF2 b2lkIGFuIGVycm9yLgorKyAgIFVzZSBjaGFyIGJlY2F1c2UgaW50IG1pZ2h0IG1hdGNoIHRoZSBy ZXR1cm4gdHlwZSBvZiBhIEdDQworKyAgIGJ1aWx0aW4gYW5kIHRoZW4gaXRzIGFyZ3VtZW50IHBy b3RvdHlwZSB3b3VsZCBzdGlsbCBhcHBseS4gICovCisrI2lmZGVmIF9fY3BsdXNwbHVzCisrZXh0 ZXJuICJDIgorKyNlbmRpZgorK2NoYXIgZGxvcGVuICgpOworK2ludAorK21haW4gKCkKKyt7Cisr cmV0dXJuIGRsb3BlbiAoKTsKKysgIDsKKysgIHJldHVybiAwOworK30KKytfQUNFT0YKKytybSAt ZiBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0JGFjX2V4ZWV4dAorK2lmIHsgKGFjX3RyeT0i JGFjX2xpbmsiCisrY2FzZSAiKCgkYWNfdHJ5IiBpbgorKyAgKlwiKiB8ICpcYCogfCAqXFwqKSBh Y190cnlfZWNobz1cJGFjX3RyeTs7CisrICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKKytlc2Fj CisrZXZhbCBhY190cnlfZWNobz0iXCJcJGFzX21lOiRMSU5FTk86ICRhY190cnlfZWNob1wiIgor KyRhc19lY2hvICIkYWNfdHJ5X2VjaG8iKSA+JjUKKysgIChldmFsICIkYWNfbGluayIpIDI+Y29u ZnRlc3QuZXIxCisrICBhY19zdGF0dXM9JD8KKysgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVy MSA+Y29uZnRlc3QuZXJyCisrICBybSAtZiBjb25mdGVzdC5lcjEKKysgIGNhdCBjb25mdGVzdC5l cnIgPiY1CisrICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4m NQorKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYgeworKwkgdGVzdCAteiAiJGFjX2Nfd2Vycm9y X2ZsYWciIHx8CisrCSB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCisrICAgICAgIH0gJiYgdGVzdCAt cyBjb25mdGVzdCRhY19leGVleHQgJiYgeworKwkgdGVzdCAiJGNyb3NzX2NvbXBpbGluZyIgPSB5 ZXMgfHwKKysJICRhc190ZXN0X3ggY29uZnRlc3QkYWNfZXhlZXh0CisrICAgICAgIH07IHRoZW4K KysgIGFjX2N2X2xpYl9kbF9kbG9wZW49eWVzCisrZWxzZQorKyAgJGFzX2VjaG8gIiRhc19tZTog ZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Cisrc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0 ID4mNQorKworKwlhY19jdl9saWJfZGxfZGxvcGVuPW5vCisrZmkKKysKKytybSAtcmYgY29uZnRl c3QuZFNZTQorK3JtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29u ZnRlc3RfaXBhOF9jb25mdGVzdC5vbyBcCisrICAgICAgY29uZnRlc3QkYWNfZXhlZXh0IGNvbmZ0 ZXN0LiRhY19leHQKKytMSUJTPSRhY19jaGVja19saWJfc2F2ZV9MSUJTCisrZmkKKyt7ICRhc19l Y2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3ZfbGliX2RsX2Rsb3BlbiIgPiY1Cisr JGFzX2VjaG8gIiRhY19jdl9saWJfZGxfZGxvcGVuIiA+JjY7IH0KKytpZiB0ZXN0ICJ4JGFjX2N2 X2xpYl9kbF9kbG9wZW4iID0geCIieWVzOyB0aGVuCisrICBsdF9jdl9kbG9wZW49ImRsb3BlbiIg bHRfY3ZfZGxvcGVuX2xpYnM9Ii1sZGwiCisrZWxzZQorKyAgeyAkYXNfZWNobyAiJGFzX21lOiRM SU5FTk86IGNoZWNraW5nIGZvciBkbG9wZW4gaW4gLWxzdmxkIiA+JjUKKyskYXNfZWNob19uICJj aGVja2luZyBmb3IgZGxvcGVuIGluIC1sc3ZsZC4uLiAiID4mNjsgfQorK2lmIHRlc3QgIiR7YWNf Y3ZfbGliX3N2bGRfZGxvcGVuK3NldH0iID0gc2V0OyB0aGVuCisrICAkYXNfZWNob19uICIoY2Fj aGVkKSAiID4mNgorK2Vsc2UKKysgIGFjX2NoZWNrX2xpYl9zYXZlX0xJQlM9JExJQlMKKytMSUJT PSItbHN2bGQgICRMSUJTIgorK2NhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorKy8qIGNv bmZkZWZzLmguICAqLworK19BQ0VPRgorK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4 dAorK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKysvKiBlbmQgY29uZmRlZnMuaC4g ICovCisrCisrLyogT3ZlcnJpZGUgYW55IEdDQyBpbnRlcm5hbCBwcm90b3R5cGUgdG8gYXZvaWQg YW4gZXJyb3IuCisrICAgVXNlIGNoYXIgYmVjYXVzZSBpbnQgbWlnaHQgbWF0Y2ggdGhlIHJldHVy biB0eXBlIG9mIGEgR0NDCisrICAgYnVpbHRpbiBhbmQgdGhlbiBpdHMgYXJndW1lbnQgcHJvdG90 eXBlIHdvdWxkIHN0aWxsIGFwcGx5LiAgKi8KKysjaWZkZWYgX19jcGx1c3BsdXMKKytleHRlcm4g IkMiCisrI2VuZGlmCisrY2hhciBkbG9wZW4gKCk7CisraW50CisrbWFpbiAoKQorK3sKKytyZXR1 cm4gZGxvcGVuICgpOworKyAgOworKyAgcmV0dXJuIDA7CisrfQorK19BQ0VPRgorK3JtIC1mIGNv bmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QkYWNfZXhlZXh0CisraWYgeyAoYWNfdHJ5PSIkYWNf bGluayIKKytjYXNlICIoKCRhY190cnkiIGluCisrICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3Ry eV9lY2hvPVwkYWNfdHJ5OzsKKysgICopIGFjX3RyeV9lY2hvPSRhY190cnk7OworK2VzYWMKKytl dmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCisrJGFz X2VjaG8gIiRhY190cnlfZWNobyIpID4mNQorKyAgKGV2YWwgIiRhY19saW5rIikgMj5jb25mdGVz dC5lcjEKKysgIGFjX3N0YXR1cz0kPworKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5j b25mdGVzdC5lcnIKKysgIHJtIC1mIGNvbmZ0ZXN0LmVyMQorKyAgY2F0IGNvbmZ0ZXN0LmVyciA+ JjUKKysgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Cisr ICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJiB7CisrCSB0ZXN0IC16ICIkYWNfY193ZXJyb3JfZmxh ZyIgfHwKKysJIHRlc3QgISAtcyBjb25mdGVzdC5lcnIKKysgICAgICAgfSAmJiB0ZXN0IC1zIGNv bmZ0ZXN0JGFjX2V4ZWV4dCAmJiB7CisrCSB0ZXN0ICIkY3Jvc3NfY29tcGlsaW5nIiA9IHllcyB8 fAorKwkgJGFzX3Rlc3RfeCBjb25mdGVzdCRhY19leGVleHQKKysgICAgICAgfTsgdGhlbgorKyAg YWNfY3ZfbGliX3N2bGRfZGxvcGVuPXllcworK2Vsc2UKKysgICRhc19lY2hvICIkYXNfbWU6IGZh aWxlZCBwcm9ncmFtIHdhczoiID4mNQorK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+ JjUKKysKKysJYWNfY3ZfbGliX3N2bGRfZGxvcGVuPW5vCisrZmkKKysKKytybSAtcmYgY29uZnRl c3QuZFNZTQorK3JtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29u ZnRlc3RfaXBhOF9jb25mdGVzdC5vbyBcCisrICAgICAgY29uZnRlc3QkYWNfZXhlZXh0IGNvbmZ0 ZXN0LiRhY19leHQKKytMSUJTPSRhY19jaGVja19saWJfc2F2ZV9MSUJTCisrZmkKKyt7ICRhc19l Y2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3ZfbGliX3N2bGRfZGxvcGVuIiA+JjUK KyskYXNfZWNobyAiJGFjX2N2X2xpYl9zdmxkX2Rsb3BlbiIgPiY2OyB9CisraWYgdGVzdCAieCRh Y19jdl9saWJfc3ZsZF9kbG9wZW4iID0geCIieWVzOyB0aGVuCisrICBsdF9jdl9kbG9wZW49ImRs b3BlbiIgbHRfY3ZfZGxvcGVuX2xpYnM9Ii1sc3ZsZCIKKytlbHNlCisrICB7ICRhc19lY2hvICIk YXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIGRsZF9saW5rIGluIC1sZGxkIiA+JjUKKyskYXNf ZWNob19uICJjaGVja2luZyBmb3IgZGxkX2xpbmsgaW4gLWxkbGQuLi4gIiA+JjY7IH0KKytpZiB0 ZXN0ICIke2FjX2N2X2xpYl9kbGRfZGxkX2xpbmsrc2V0fSIgPSBzZXQ7IHRoZW4KKysgICRhc19l Y2hvX24gIihjYWNoZWQpICIgPiY2CisrZWxzZQorKyAgYWNfY2hlY2tfbGliX3NhdmVfTElCUz0k TElCUworK0xJQlM9Ii1sZGxkICAkTElCUyIKKytjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNF T0YKKysvKiBjb25mZGVmcy5oLiAgKi8KKytfQUNFT0YKKytjYXQgY29uZmRlZnMuaCA+PmNvbmZ0 ZXN0LiRhY19leHQKKytjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisrLyogZW5kIGNv bmZkZWZzLmguICAqLworKworKy8qIE92ZXJyaWRlIGFueSBHQ0MgaW50ZXJuYWwgcHJvdG90eXBl IHRvIGF2b2lkIGFuIGVycm9yLgorKyAgIFVzZSBjaGFyIGJlY2F1c2UgaW50IG1pZ2h0IG1hdGNo IHRoZSByZXR1cm4gdHlwZSBvZiBhIEdDQworKyAgIGJ1aWx0aW4gYW5kIHRoZW4gaXRzIGFyZ3Vt ZW50IHByb3RvdHlwZSB3b3VsZCBzdGlsbCBhcHBseS4gICovCisrI2lmZGVmIF9fY3BsdXNwbHVz CisrZXh0ZXJuICJDIgorKyNlbmRpZgorK2NoYXIgZGxkX2xpbmsgKCk7CisraW50CisrbWFpbiAo KQorK3sKKytyZXR1cm4gZGxkX2xpbmsgKCk7CisrICA7CisrICByZXR1cm4gMDsKKyt9CisrX0FD RU9GCisrcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdCRhY19leGVleHQKKytpZiB7 IChhY190cnk9IiRhY19saW5rIgorK2Nhc2UgIigoJGFjX3RyeSIgaW4KKysgICpcIiogfCAqXGAq IHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OworKyAgKikgYWNfdHJ5X2VjaG89JGFjX3Ry eTs7CisrZXNhYworK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5 X2VjaG9cIiIKKyskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1CisrICAoZXZhbCAiJGFjX2xp bmsiKSAyPmNvbmZ0ZXN0LmVyMQorKyAgYWNfc3RhdHVzPSQ/CisrICBncmVwIC12ICdeICorJyBj b25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgorKyAgcm0gLWYgY29uZnRlc3QuZXIxCisrICBjYXQg Y29uZnRlc3QuZXJyID4mNQorKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNf c3RhdHVzIiA+JjUKKysgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmIHsKKysJIHRlc3QgLXogIiRh Y19jX3dlcnJvcl9mbGFnIiB8fAorKwkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgorKyAgICAgICB9 ICYmIHRlc3QgLXMgY29uZnRlc3QkYWNfZXhlZXh0ICYmIHsKKysJIHRlc3QgIiRjcm9zc19jb21w aWxpbmciID0geWVzIHx8CisrCSAkYXNfdGVzdF94IGNvbmZ0ZXN0JGFjX2V4ZWV4dAorKyAgICAg ICB9OyB0aGVuCisrICBhY19jdl9saWJfZGxkX2RsZF9saW5rPXllcworK2Vsc2UKKysgICRhc19l Y2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQorK3NlZCAncy9eL3wgLycgY29u ZnRlc3QuJGFjX2V4dCA+JjUKKysKKysJYWNfY3ZfbGliX2RsZF9kbGRfbGluaz1ubworK2ZpCisr Cisrcm0gLXJmIGNvbmZ0ZXN0LmRTWU0KKytybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVz dC4kYWNfb2JqZXh0IGNvbmZ0ZXN0X2lwYThfY29uZnRlc3Qub28gXAorKyAgICAgIGNvbmZ0ZXN0 JGFjX2V4ZWV4dCBjb25mdGVzdC4kYWNfZXh0CisrTElCUz0kYWNfY2hlY2tfbGliX3NhdmVfTElC UworK2ZpCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2N2X2xpYl9k bGRfZGxkX2xpbmsiID4mNQorKyRhc19lY2hvICIkYWNfY3ZfbGliX2RsZF9kbGRfbGluayIgPiY2 OyB9CisraWYgdGVzdCAieCRhY19jdl9saWJfZGxkX2RsZF9saW5rIiA9IHgiInllczsgdGhlbgor KyAgbHRfY3ZfZGxvcGVuPSJkbGRfbGluayIgbHRfY3ZfZGxvcGVuX2xpYnM9Ii1sZGxkIgorK2Zp CisrCisrCisrZmkKKysKKysKKytmaQorKworKworK2ZpCisrCisrCisrZmkKKysKKysKKytmaQor KworKyAgICA7OworKyAgZXNhYworKworKyAgaWYgdGVzdCAieCRsdF9jdl9kbG9wZW4iICE9IHhu bzsgdGhlbgorKyAgICBlbmFibGVfZGxvcGVuPXllcworKyAgZWxzZQorKyAgICBlbmFibGVfZGxv cGVuPW5vCisrICBmaQorKworKyAgY2FzZSAkbHRfY3ZfZGxvcGVuIGluCisrICBkbG9wZW4pCisr ICAgIHNhdmVfQ1BQRkxBR1M9IiRDUFBGTEFHUyIKKysgICAgdGVzdCAieCRhY19jdl9oZWFkZXJf ZGxmY25faCIgPSB4eWVzICYmIENQUEZMQUdTPSIkQ1BQRkxBR1MgLURIQVZFX0RMRkNOX0giCisr CisrICAgIHNhdmVfTERGTEFHUz0iJExERkxBR1MiCisrICAgIHdsPSRsdF9wcm9nX2NvbXBpbGVy X3dsIGV2YWwgTERGTEFHUz1cIlwkTERGTEFHUyAkZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjXCIK KysKKysgICAgc2F2ZV9MSUJTPSIkTElCUyIKKysgICAgTElCUz0iJGx0X2N2X2Rsb3Blbl9saWJz ICRMSUJTIgorKworKyAgICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgd2hl dGhlciBhIHByb2dyYW0gY2FuIGRsb3BlbiBpdHNlbGYiID4mNQorKyRhc19lY2hvX24gImNoZWNr aW5nIHdoZXRoZXIgYSBwcm9ncmFtIGNhbiBkbG9wZW4gaXRzZWxmLi4uICIgPiY2OyB9CisraWYg dGVzdCAiJHtsdF9jdl9kbG9wZW5fc2VsZitzZXR9IiA9IHNldDsgdGhlbgorKyAgJGFzX2VjaG9f biAiKGNhY2hlZCkgIiA+JjYKKytlbHNlCisrICAJICBpZiB0ZXN0ICIkY3Jvc3NfY29tcGlsaW5n IiA9IHllczsgdGhlbiA6CisrICBsdF9jdl9kbG9wZW5fc2VsZj1jcm9zcworK2Vsc2UKKysgIGx0 X2RsdW5rbm93bj0wOyBsdF9kbG5vX3VzY29yZT0xOyBsdF9kbG5lZWRfdXNjb3JlPTIKKysgIGx0 X3N0YXR1cz0kbHRfZGx1bmtub3duCisrICBjYXQgPiBjb25mdGVzdC4kYWNfZXh0IDw8X0xUX0VP RgorKyNsaW5lIDEyNjgxICJjb25maWd1cmUiCisrI2luY2x1ZGUgImNvbmZkZWZzLmgiCisrCisr I2lmIEhBVkVfRExGQ05fSAorKyNpbmNsdWRlIDxkbGZjbi5oPgorKyNlbmRpZgorKworKyNpbmNs dWRlIDxzdGRpby5oPgorKworKyNpZmRlZiBSVExEX0dMT0JBTAorKyMgIGRlZmluZSBMVF9ETEdM T0JBTAkJUlRMRF9HTE9CQUwKKysjZWxzZQorKyMgIGlmZGVmIERMX0dMT0JBTAorKyMgICAgZGVm aW5lIExUX0RMR0xPQkFMCQlETF9HTE9CQUwKKysjICBlbHNlCisrIyAgICBkZWZpbmUgTFRfRExH TE9CQUwJCTAKKysjICBlbmRpZgorKyNlbmRpZgorKworKy8qIFdlIG1heSBoYXZlIHRvIGRlZmlu ZSBMVF9ETExBWllfT1JfTk9XIGluIHRoZSBjb21tYW5kIGxpbmUgaWYgd2UKKysgICBmaW5kIG91 dCBpdCBkb2VzIG5vdCB3b3JrIGluIHNvbWUgcGxhdGZvcm0uICovCisrI2lmbmRlZiBMVF9ETExB WllfT1JfTk9XCisrIyAgaWZkZWYgUlRMRF9MQVpZCisrIyAgICBkZWZpbmUgTFRfRExMQVpZX09S X05PVwkJUlRMRF9MQVpZCisrIyAgZWxzZQorKyMgICAgaWZkZWYgRExfTEFaWQorKyMgICAgICBk ZWZpbmUgTFRfRExMQVpZX09SX05PVwkJRExfTEFaWQorKyMgICAgZWxzZQorKyMgICAgICBpZmRl ZiBSVExEX05PVworKyMgICAgICAgIGRlZmluZSBMVF9ETExBWllfT1JfTk9XCVJUTERfTk9XCisr IyAgICAgIGVsc2UKKysjICAgICAgICBpZmRlZiBETF9OT1cKKysjICAgICAgICAgIGRlZmluZSBM VF9ETExBWllfT1JfTk9XCURMX05PVworKyMgICAgICAgIGVsc2UKKysjICAgICAgICAgIGRlZmlu ZSBMVF9ETExBWllfT1JfTk9XCTAKKysjICAgICAgICBlbmRpZgorKyMgICAgICBlbmRpZgorKyMg ICAgZW5kaWYKKysjICBlbmRpZgorKyNlbmRpZgorKworK3ZvaWQgZm5vcmQoKSB7IGludCBpPTQy O30KKytpbnQgbWFpbiAoKQorK3sKKysgIHZvaWQgKnNlbGYgPSBkbG9wZW4gKDAsIExUX0RMR0xP QkFMfExUX0RMTEFaWV9PUl9OT1cpOworKyAgaW50IHN0YXR1cyA9ICRsdF9kbHVua25vd247Cisr CisrICBpZiAoc2VsZikKKysgICAgeworKyAgICAgIGlmIChkbHN5bSAoc2VsZiwiZm5vcmQiKSkg ICAgICAgc3RhdHVzID0gJGx0X2Rsbm9fdXNjb3JlOworKyAgICAgIGVsc2UgaWYgKGRsc3ltKCBz ZWxmLCJfZm5vcmQiKSkgc3RhdHVzID0gJGx0X2RsbmVlZF91c2NvcmU7CisrICAgICAgLyogZGxj bG9zZSAoc2VsZik7ICovCisrICAgIH0KKysgIGVsc2UKKysgICAgcHV0cyAoZGxlcnJvciAoKSk7 CisrCisrICByZXR1cm4gc3RhdHVzOworK30KKytfTFRfRU9GCisrICBpZiB7IChldmFsIGVjaG8g IiRhc19tZTokTElORU5POiBcIiRhY19saW5rXCIiKSA+JjUKKysgIChldmFsICRhY19saW5rKSAy PiY1CisrICBhY19zdGF0dXM9JD8KKysgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0g JGFjX3N0YXR1cyIgPiY1CisrICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJiB0ZXN0IC1zIGNvbmZ0 ZXN0JHthY19leGVleHR9IDI+L2Rldi9udWxsOyB0aGVuCisrICAgICguL2NvbmZ0ZXN0OyBleGl0 OyApID4mNSAyPi9kZXYvbnVsbAorKyAgICBsdF9zdGF0dXM9JD8KKysgICAgY2FzZSB4JGx0X3N0 YXR1cyBpbgorKyAgICAgIHgkbHRfZGxub191c2NvcmUpIGx0X2N2X2Rsb3Blbl9zZWxmPXllcyA7 OworKyAgICAgIHgkbHRfZGxuZWVkX3VzY29yZSkgbHRfY3ZfZGxvcGVuX3NlbGY9eWVzIDs7Cisr ICAgICAgeCRsdF9kbHVua25vd258eCopIGx0X2N2X2Rsb3Blbl9zZWxmPW5vIDs7CisrICAgIGVz YWMKKysgIGVsc2UgOgorKyAgICAjIGNvbXBpbGF0aW9uIGZhaWxlZAorKyAgICBsdF9jdl9kbG9w ZW5fc2VsZj1ubworKyAgZmkKKytmaQorK3JtIC1mciBjb25mdGVzdCoKKysKKysKKytmaQorK3sg JGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRsdF9jdl9kbG9wZW5fc2VsZiIgPiY1 CisrJGFzX2VjaG8gIiRsdF9jdl9kbG9wZW5fc2VsZiIgPiY2OyB9CisrCisrICAgIGlmIHRlc3Qg IngkbHRfY3ZfZGxvcGVuX3NlbGYiID0geHllczsgdGhlbgorKyAgICAgIHdsPSRsdF9wcm9nX2Nv bXBpbGVyX3dsIGV2YWwgTERGTEFHUz1cIlwkTERGTEFHUyAkbHRfcHJvZ19jb21waWxlcl9zdGF0 aWNcIgorKyAgICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyB3aGV0aGVy IGEgc3RhdGljYWxseSBsaW5rZWQgcHJvZ3JhbSBjYW4gZGxvcGVuIGl0c2VsZiIgPiY1CisrJGFz X2VjaG9fbiAiY2hlY2tpbmcgd2hldGhlciBhIHN0YXRpY2FsbHkgbGlua2VkIHByb2dyYW0gY2Fu IGRsb3BlbiBpdHNlbGYuLi4gIiA+JjY7IH0KKytpZiB0ZXN0ICIke2x0X2N2X2Rsb3Blbl9zZWxm X3N0YXRpYytzZXR9IiA9IHNldDsgdGhlbgorKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYK KytlbHNlCisrICAJICBpZiB0ZXN0ICIkY3Jvc3NfY29tcGlsaW5nIiA9IHllczsgdGhlbiA6Cisr ICBsdF9jdl9kbG9wZW5fc2VsZl9zdGF0aWM9Y3Jvc3MKKytlbHNlCisrICBsdF9kbHVua25vd249 MDsgbHRfZGxub191c2NvcmU9MTsgbHRfZGxuZWVkX3VzY29yZT0yCisrICBsdF9zdGF0dXM9JGx0 X2RsdW5rbm93bgorKyAgY2F0ID4gY29uZnRlc3QuJGFjX2V4dCA8PF9MVF9FT0YKKysjbGluZSAx Mjc3NyAiY29uZmlndXJlIgorKyNpbmNsdWRlICJjb25mZGVmcy5oIgorKworKyNpZiBIQVZFX0RM RkNOX0gKKysjaW5jbHVkZSA8ZGxmY24uaD4KKysjZW5kaWYKKysKKysjaW5jbHVkZSA8c3RkaW8u aD4KKysKKysjaWZkZWYgUlRMRF9HTE9CQUwKKysjICBkZWZpbmUgTFRfRExHTE9CQUwJCVJUTERf R0xPQkFMCisrI2Vsc2UKKysjICBpZmRlZiBETF9HTE9CQUwKKysjICAgIGRlZmluZSBMVF9ETEdM T0JBTAkJRExfR0xPQkFMCisrIyAgZWxzZQorKyMgICAgZGVmaW5lIExUX0RMR0xPQkFMCQkwCisr IyAgZW5kaWYKKysjZW5kaWYKKysKKysvKiBXZSBtYXkgaGF2ZSB0byBkZWZpbmUgTFRfRExMQVpZ X09SX05PVyBpbiB0aGUgY29tbWFuZCBsaW5lIGlmIHdlCisrICAgZmluZCBvdXQgaXQgZG9lcyBu b3Qgd29yayBpbiBzb21lIHBsYXRmb3JtLiAqLworKyNpZm5kZWYgTFRfRExMQVpZX09SX05PVwor KyMgIGlmZGVmIFJUTERfTEFaWQorKyMgICAgZGVmaW5lIExUX0RMTEFaWV9PUl9OT1cJCVJUTERf TEFaWQorKyMgIGVsc2UKKysjICAgIGlmZGVmIERMX0xBWlkKKysjICAgICAgZGVmaW5lIExUX0RM TEFaWV9PUl9OT1cJCURMX0xBWlkKKysjICAgIGVsc2UKKysjICAgICAgaWZkZWYgUlRMRF9OT1cK KysjICAgICAgICBkZWZpbmUgTFRfRExMQVpZX09SX05PVwlSVExEX05PVworKyMgICAgICBlbHNl CisrIyAgICAgICAgaWZkZWYgRExfTk9XCisrIyAgICAgICAgICBkZWZpbmUgTFRfRExMQVpZX09S X05PVwlETF9OT1cKKysjICAgICAgICBlbHNlCisrIyAgICAgICAgICBkZWZpbmUgTFRfRExMQVpZ X09SX05PVwkwCisrIyAgICAgICAgZW5kaWYKKysjICAgICAgZW5kaWYKKysjICAgIGVuZGlmCisr IyAgZW5kaWYKKysjZW5kaWYKKysKKyt2b2lkIGZub3JkKCkgeyBpbnQgaT00Mjt9CisraW50IG1h aW4gKCkKKyt7CisrICB2b2lkICpzZWxmID0gZGxvcGVuICgwLCBMVF9ETEdMT0JBTHxMVF9ETExB WllfT1JfTk9XKTsKKysgIGludCBzdGF0dXMgPSAkbHRfZGx1bmtub3duOworKworKyAgaWYgKHNl bGYpCisrICAgIHsKKysgICAgICBpZiAoZGxzeW0gKHNlbGYsImZub3JkIikpICAgICAgIHN0YXR1 cyA9ICRsdF9kbG5vX3VzY29yZTsKKysgICAgICBlbHNlIGlmIChkbHN5bSggc2VsZiwiX2Zub3Jk IikpIHN0YXR1cyA9ICRsdF9kbG5lZWRfdXNjb3JlOworKyAgICAgIC8qIGRsY2xvc2UgKHNlbGYp OyAqLworKyAgICB9CisrICBlbHNlCisrICAgIHB1dHMgKGRsZXJyb3IgKCkpOworKworKyAgcmV0 dXJuIHN0YXR1czsKKyt9CisrX0xUX0VPRgorKyAgaWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJ TkVOTzogXCIkYWNfbGlua1wiIikgPiY1CisrICAoZXZhbCAkYWNfbGluaykgMj4mNQorKyAgYWNf c3RhdHVzPSQ/CisrICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMi ID4mNQorKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYgdGVzdCAtcyBjb25mdGVzdCR7YWNfZXhl ZXh0fSAyPi9kZXYvbnVsbDsgdGhlbgorKyAgICAoLi9jb25mdGVzdDsgZXhpdDsgKSA+JjUgMj4v ZGV2L251bGwKKysgICAgbHRfc3RhdHVzPSQ/CisrICAgIGNhc2UgeCRsdF9zdGF0dXMgaW4KKysg ICAgICB4JGx0X2Rsbm9fdXNjb3JlKSBsdF9jdl9kbG9wZW5fc2VsZl9zdGF0aWM9eWVzIDs7Cisr ICAgICAgeCRsdF9kbG5lZWRfdXNjb3JlKSBsdF9jdl9kbG9wZW5fc2VsZl9zdGF0aWM9eWVzIDs7 CisrICAgICAgeCRsdF9kbHVua25vd258eCopIGx0X2N2X2Rsb3Blbl9zZWxmX3N0YXRpYz1ubyA7 OworKyAgICBlc2FjCisrICBlbHNlIDoKKysgICAgIyBjb21waWxhdGlvbiBmYWlsZWQKKysgICAg bHRfY3ZfZGxvcGVuX3NlbGZfc3RhdGljPW5vCisrICBmaQorK2ZpCisrcm0gLWZyIGNvbmZ0ZXN0 KgorKworKworK2ZpCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGx0X2N2 X2Rsb3Blbl9zZWxmX3N0YXRpYyIgPiY1CisrJGFzX2VjaG8gIiRsdF9jdl9kbG9wZW5fc2VsZl9z dGF0aWMiID4mNjsgfQorKyAgICBmaQorKworKyAgICBDUFBGTEFHUz0iJHNhdmVfQ1BQRkxBR1Mi CisrICAgIExERkxBR1M9IiRzYXZlX0xERkxBR1MiCisrICAgIExJQlM9IiRzYXZlX0xJQlMiCisr ICAgIDs7CisrICBlc2FjCisrCisrICBjYXNlICRsdF9jdl9kbG9wZW5fc2VsZiBpbgorKyAgeWVz fG5vKSBlbmFibGVfZGxvcGVuX3NlbGY9JGx0X2N2X2Rsb3Blbl9zZWxmIDs7CisrICAqKSBlbmFi bGVfZGxvcGVuX3NlbGY9dW5rbm93biA7OworKyAgZXNhYworKworKyAgY2FzZSAkbHRfY3ZfZGxv cGVuX3NlbGZfc3RhdGljIGluCisrICB5ZXN8bm8pIGVuYWJsZV9kbG9wZW5fc2VsZl9zdGF0aWM9 JGx0X2N2X2Rsb3Blbl9zZWxmX3N0YXRpYyA7OworKyAgKikgZW5hYmxlX2Rsb3Blbl9zZWxmX3N0 YXRpYz11bmtub3duIDs7CisrICBlc2FjCisrZmkKKysKKysKKysKKysKKysKKysKKysKKysKKysK KysKKysKKysKKysKKysKKysKKysKKysKKytzdHJpcGxpYj0KKytvbGRfc3RyaXBsaWI9CisreyAk YXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIHdoZXRoZXIgc3RyaXBwaW5nIGxpYnJh cmllcyBpcyBwb3NzaWJsZSIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgd2hldGhlciBzdHJp cHBpbmcgbGlicmFyaWVzIGlzIHBvc3NpYmxlLi4uICIgPiY2OyB9CisraWYgdGVzdCAtbiAiJFNU UklQIiAmJiAkU1RSSVAgLVYgMj4mMSB8ICRHUkVQICJHTlUgc3RyaXAiID4vZGV2L251bGw7IHRo ZW4KKysgIHRlc3QgLXogIiRvbGRfc3RyaXBsaWIiICYmIG9sZF9zdHJpcGxpYj0iJFNUUklQIC0t c3RyaXAtZGVidWciCisrICB0ZXN0IC16ICIkc3RyaXBsaWIiICYmIHN0cmlwbGliPSIkU1RSSVAg LS1zdHJpcC11bm5lZWRlZCIKKysgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6 IHllcyIgPiY1CisrJGFzX2VjaG8gInllcyIgPiY2OyB9CisrZWxzZQorKyMgRklYTUUgLSBpbnNl cnQgc29tZSByZWFsIHRlc3RzLCBob3N0X29zIGlzbid0IHJlYWxseSBnb29kIGVub3VnaAorKyAg Y2FzZSAkaG9zdF9vcyBpbgorKyAgZGFyd2luKikKKysgICAgaWYgdGVzdCAtbiAiJFNUUklQIiA7 IHRoZW4KKysgICAgICBzdHJpcGxpYj0iJFNUUklQIC14IgorKyAgICAgIG9sZF9zdHJpcGxpYj0i JFNUUklQIC1TIgorKyAgICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IHll cyIgPiY1CisrJGFzX2VjaG8gInllcyIgPiY2OyB9CisrICAgIGVsc2UKKysgICAgICB7ICRhc19l Y2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiBubyIgPiY1CisrJGFzX2VjaG8gIm5vIiA+JjY7 IH0KKysgICAgZmkKKysgICAgOzsKKysgICopCisrICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElO RU5POiByZXN1bHQ6IG5vIiA+JjUKKyskYXNfZWNobyAibm8iID4mNjsgfQorKyAgICA7OworKyAg ZXNhYworK2ZpCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrICAjIFJlcG9y dCB3aGljaCBsaWJyYXJ5IHR5cGVzIHdpbGwgYWN0dWFsbHkgYmUgYnVpbHQKKysgIHsgJGFzX2Vj aG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBpZiBsaWJ0b29sIHN1cHBvcnRzIHNoYXJlZCBs aWJyYXJpZXMiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIGlmIGxpYnRvb2wgc3VwcG9ydHMg c2hhcmVkIGxpYnJhcmllcy4uLiAiID4mNjsgfQorKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5F Tk86IHJlc3VsdDogJGNhbl9idWlsZF9zaGFyZWQiID4mNQorKyRhc19lY2hvICIkY2FuX2J1aWxk X3NoYXJlZCIgPiY2OyB9CisrCisrICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tp bmcgd2hldGhlciB0byBidWlsZCBzaGFyZWQgbGlicmFyaWVzIiA+JjUKKyskYXNfZWNob19uICJj aGVja2luZyB3aGV0aGVyIHRvIGJ1aWxkIHNoYXJlZCBsaWJyYXJpZXMuLi4gIiA+JjY7IH0KKysg IHRlc3QgIiRjYW5fYnVpbGRfc2hhcmVkIiA9ICJubyIgJiYgZW5hYmxlX3NoYXJlZD1ubworKwor KyAgIyBPbiBBSVgsIHNoYXJlZCBsaWJyYXJpZXMgYW5kIHN0YXRpYyBsaWJyYXJpZXMgdXNlIHRo ZSBzYW1lIG5hbWVzcGFjZSwgYW5kCisrICAjIGFyZSBhbGwgYnVpbHQgZnJvbSBQSUMuCisrICBj YXNlICRob3N0X29zIGluCisrICBhaXgzKikKKysgICAgdGVzdCAiJGVuYWJsZV9zaGFyZWQiID0g eWVzICYmIGVuYWJsZV9zdGF0aWM9bm8KKysgICAgaWYgdGVzdCAtbiAiJFJBTkxJQiI7IHRoZW4K KysgICAgICBhcmNoaXZlX2NtZHM9IiRhcmNoaXZlX2NtZHN+XCRSQU5MSUIgXCRsaWIiCisrICAg ICAgcG9zdGluc3RhbGxfY21kcz0nJFJBTkxJQiAkbGliJworKyAgICBmaQorKyAgICA7OworKwor KyAgYWl4WzQtOV0qKQorKyAgICBpZiB0ZXN0ICIkaG9zdF9jcHUiICE9IGlhNjQgJiYgdGVzdCAi JGFpeF91c2VfcnVudGltZWxpbmtpbmciID0gbm8gOyB0aGVuCisrICAgICAgdGVzdCAiJGVuYWJs ZV9zaGFyZWQiID0geWVzICYmIGVuYWJsZV9zdGF0aWM9bm8KKysgICAgZmkKKysgICAgOzsKKysg IGVzYWMKKysgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRlbmFibGVfc2hh cmVkIiA+JjUKKyskYXNfZWNobyAiJGVuYWJsZV9zaGFyZWQiID4mNjsgfQorKworKyAgeyAkYXNf ZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIHdoZXRoZXIgdG8gYnVpbGQgc3RhdGljIGxp YnJhcmllcyIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgd2hldGhlciB0byBidWlsZCBzdGF0 aWMgbGlicmFyaWVzLi4uICIgPiY2OyB9CisrICAjIE1ha2Ugc3VyZSBlaXRoZXIgZW5hYmxlX3No YXJlZCBvciBlbmFibGVfc3RhdGljIGlzIHllcy4KKysgIHRlc3QgIiRlbmFibGVfc2hhcmVkIiA9 IHllcyB8fCBlbmFibGVfc3RhdGljPXllcworKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86 IHJlc3VsdDogJGVuYWJsZV9zdGF0aWMiID4mNQorKyRhc19lY2hvICIkZW5hYmxlX3N0YXRpYyIg PiY2OyB9CisrCisrCisrCisrCisrZmkKKythY19leHQ9YworK2FjX2NwcD0nJENQUCAkQ1BQRkxB R1MnCisrYWNfY29tcGlsZT0nJENDIC1jICRDRkxBR1MgJENQUEZMQUdTIGNvbmZ0ZXN0LiRhY19l eHQgPiY1JworK2FjX2xpbms9JyRDQyAtbyBjb25mdGVzdCRhY19leGVleHQgJENGTEFHUyAkQ1BQ RkxBR1MgJExERkxBR1MgY29uZnRlc3QuJGFjX2V4dCAkTElCUyA+JjUnCisrYWNfY29tcGlsZXJf Z251PSRhY19jdl9jX2NvbXBpbGVyX2dudQorKworK0NDPSIkbHRfc2F2ZV9DQyIKKysKKysKKyth Y19leHQ9Y3BwCisrYWNfY3BwPSckQ1hYQ1BQICRDUFBGTEFHUycKKythY19jb21waWxlPSckQ1hY IC1jICRDWFhGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUnCisrYWNfbGluaz0n JENYWCAtbyBjb25mdGVzdCRhY19leGVleHQgJENYWEZMQUdTICRDUFBGTEFHUyAkTERGTEFHUyBj b25mdGVzdC4kYWNfZXh0ICRMSUJTID4mNScKKythY19jb21waWxlcl9nbnU9JGFjX2N2X2N4eF9j b21waWxlcl9nbnUKKysKKythcmNoaXZlX2NtZHNfbmVlZF9sY19DWFg9bm8KKythbGxvd191bmRl ZmluZWRfZmxhZ19DWFg9CisrYWx3YXlzX2V4cG9ydF9zeW1ib2xzX0NYWD1ubworK2FyY2hpdmVf ZXhwc3ltX2NtZHNfQ1hYPQorK2NvbXBpbGVyX25lZWRzX29iamVjdF9DWFg9bm8KKytleHBvcnRf ZHluYW1pY19mbGFnX3NwZWNfQ1hYPQorK2hhcmRjb2RlX2RpcmVjdF9DWFg9bm8KKytoYXJkY29k ZV9kaXJlY3RfYWJzb2x1dGVfQ1hYPW5vCisraGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19DWFg9 CisraGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19sZF9DWFg9CisraGFyZGNvZGVfbGliZGlyX3Nl cGFyYXRvcl9DWFg9CisraGFyZGNvZGVfbWludXNfTF9DWFg9bm8KKytoYXJkY29kZV9zaGxpYnBh dGhfdmFyX0NYWD11bnN1cHBvcnRlZAorK2hhcmRjb2RlX2F1dG9tYXRpY19DWFg9bm8KKytpbmhl cml0X3JwYXRoX0NYWD1ubworK21vZHVsZV9jbWRzX0NYWD0KKyttb2R1bGVfZXhwc3ltX2NtZHNf Q1hYPQorK2xpbmtfYWxsX2RlcGxpYnNfQ1hYPXVua25vd24KKytvbGRfYXJjaGl2ZV9jbWRzX0NY WD0kb2xkX2FyY2hpdmVfY21kcworK25vX3VuZGVmaW5lZF9mbGFnX0NYWD0KKyt3aG9sZV9hcmNo aXZlX2ZsYWdfc3BlY19DWFg9CisrZW5hYmxlX3NoYXJlZF93aXRoX3N0YXRpY19ydW50aW1lc19D WFg9bm8KKysKKysjIFNvdXJjZSBmaWxlIGV4dGVuc2lvbiBmb3IgQysrIHRlc3Qgc291cmNlcy4K KythY19leHQ9Y3BwCisrCisrIyBPYmplY3QgZmlsZSBleHRlbnNpb24gZm9yIGNvbXBpbGVkIEMr KyB0ZXN0IHNvdXJjZXMuCisrb2JqZXh0PW8KKytvYmpleHRfQ1hYPSRvYmpleHQKKysKKysjIE5v IHNlbnNlIGluIHJ1bm5pbmcgYWxsIHRoZXNlIHRlc3RzIGlmIHdlIGFscmVhZHkgZGV0ZXJtaW5l ZCB0aGF0CisrIyB0aGUgQ1hYIGNvbXBpbGVyIGlzbid0IHdvcmtpbmcuICBTb21lIHZhcmlhYmxl cyAobGlrZSBlbmFibGVfc2hhcmVkKQorKyMgYXJlIGN1cnJlbnRseSBhc3N1bWVkIHRvIGFwcGx5 IHRvIGFsbCBjb21waWxlcnMgb24gdGhpcyBwbGF0Zm9ybSwKKysjIGFuZCB3aWxsIGJlIGNvcnJ1 cHRlZCBieSBzZXR0aW5nIHRoZW0gYmFzZWQgb24gYSBub24td29ya2luZyBjb21waWxlci4KKytp ZiB0ZXN0ICIkX2x0X2NhdWdodF9DWFhfZXJyb3IiICE9IHllczsgdGhlbgorKyAgIyBDb2RlIHRv IGJlIHVzZWQgaW4gc2ltcGxlIGNvbXBpbGUgdGVzdHMKKysgIGx0X3NpbXBsZV9jb21waWxlX3Rl c3RfY29kZT0iaW50IHNvbWVfdmFyaWFibGUgPSAwOyIKKysKKysgICMgQ29kZSB0byBiZSB1c2Vk IGluIHNpbXBsZSBsaW5rIHRlc3RzCisrICBsdF9zaW1wbGVfbGlua190ZXN0X2NvZGU9J2ludCBt YWluKGludCwgY2hhciAqW10pIHsgcmV0dXJuKDApOyB9JworKworKyAgIyBsdG1haW4gb25seSB1 c2VzICRDQyBmb3IgdGFnZ2VkIGNvbmZpZ3VyYXRpb25zIHNvIG1ha2Ugc3VyZSAkQ0MgaXMgc2V0 LgorKworKworKworKworKworKworKyMgSWYgbm8gQyBjb21waWxlciB3YXMgc3BlY2lmaWVkLCB1 c2UgQ0MuCisrTFRDQz0ke0xUQ0MtIiRDQyJ9CisrCisrIyBJZiBubyBDIGNvbXBpbGVyIGZsYWdz IHdlcmUgc3BlY2lmaWVkLCB1c2UgQ0ZMQUdTLgorK0xUQ0ZMQUdTPSR7TFRDRkxBR1MtIiRDRkxB R1MifQorKworKyMgQWxsb3cgQ0MgdG8gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmd1bWVudHMu CisrY29tcGlsZXI9JENDCisrCisrCisrICAjIHNhdmUgd2FybmluZ3MvYm9pbGVycGxhdGUgb2Yg c2ltcGxlIHRlc3QgY29kZQorKyAgYWNfb3V0ZmlsZT1jb25mdGVzdC4kYWNfb2JqZXh0CisrZWNo byAiJGx0X3NpbXBsZV9jb21waWxlX3Rlc3RfY29kZSIgPmNvbmZ0ZXN0LiRhY19leHQKKytldmFs ICIkYWNfY29tcGlsZSIgMj4mMSA+L2Rldi9udWxsIHwgJFNFRCAnL14kL2Q7IC9eICorL2QnID5j b25mdGVzdC5lcnIKKytfbHRfY29tcGlsZXJfYm9pbGVycGxhdGU9YGNhdCBjb25mdGVzdC5lcnJg CisrJFJNIGNvbmZ0ZXN0KgorKworKyAgYWNfb3V0ZmlsZT1jb25mdGVzdC4kYWNfb2JqZXh0Cisr ZWNobyAiJGx0X3NpbXBsZV9saW5rX3Rlc3RfY29kZSIgPmNvbmZ0ZXN0LiRhY19leHQKKytldmFs ICIkYWNfbGluayIgMj4mMSA+L2Rldi9udWxsIHwgJFNFRCAnL14kL2Q7IC9eICorL2QnID5jb25m dGVzdC5lcnIKKytfbHRfbGlua2VyX2JvaWxlcnBsYXRlPWBjYXQgY29uZnRlc3QuZXJyYAorKyRS TSAtciBjb25mdGVzdCoKKysKKysKKysgICMgQWxsb3cgQ0MgdG8gYmUgYSBwcm9ncmFtIG5hbWUg d2l0aCBhcmd1bWVudHMuCisrICBsdF9zYXZlX0NDPSRDQworKyAgbHRfc2F2ZV9MRD0kTEQKKysg IGx0X3NhdmVfR0NDPSRHQ0MKKysgIEdDQz0kR1hYCisrICBsdF9zYXZlX3dpdGhfZ251X2xkPSR3 aXRoX2dudV9sZAorKyAgbHRfc2F2ZV9wYXRoX0xEPSRsdF9jdl9wYXRoX0xECisrICBpZiB0ZXN0 IC1uICIke2x0X2N2X3Byb2dfZ251X2xkY3h4K3NldH0iOyB0aGVuCisrICAgIGx0X2N2X3Byb2df Z251X2xkPSRsdF9jdl9wcm9nX2dudV9sZGN4eAorKyAgZWxzZQorKyAgICAkYXNfdW5zZXQgbHRf Y3ZfcHJvZ19nbnVfbGQKKysgIGZpCisrICBpZiB0ZXN0IC1uICIke2x0X2N2X3BhdGhfTERDWFgr c2V0fSI7IHRoZW4KKysgICAgbHRfY3ZfcGF0aF9MRD0kbHRfY3ZfcGF0aF9MRENYWAorKyAgZWxz ZQorKyAgICAkYXNfdW5zZXQgbHRfY3ZfcGF0aF9MRAorKyAgZmkKKysgIHRlc3QgLXogIiR7TERD WFgrc2V0fSIgfHwgTEQ9JExEQ1hYCisrICBDQz0ke0NYWC0iYysrIn0KKysgIGNvbXBpbGVyPSRD QworKyAgY29tcGlsZXJfQ1hYPSRDQworKyAgZm9yIGNjX3RlbXAgaW4gJGNvbXBpbGVyIiI7IGRv CisrICBjYXNlICRjY190ZW1wIGluCisrICAgIGNvbXBpbGUgfCAqW1xcL11jb21waWxlIHwgY2Nh Y2hlIHwgKltcXC9dY2NhY2hlICkgOzsKKysgICAgZGlzdGNjIHwgKltcXC9dZGlzdGNjIHwgcHVy aWZ5IHwgKltcXC9dcHVyaWZ5ICkgOzsKKysgICAgXC0qKSA7OworKyAgICAqKSBicmVhazs7Cisr ICBlc2FjCisrZG9uZQorK2NjX2Jhc2VuYW1lPWAkRUNITyAiWCRjY190ZW1wIiB8ICRYc2VkIC1l ICdzJS4qLyUlJyAtZSAicyVeJGhvc3RfYWxpYXMtJSUiYAorKworKworKyAgaWYgdGVzdCAtbiAi JGNvbXBpbGVyIjsgdGhlbgorKyAgICAjIFdlIGRvbid0IHdhbnQgLWZuby1leGNlcHRpb24gd2hl biBjb21waWxpbmcgQysrIGNvZGUsIHNvIHNldCB0aGUKKysgICAgIyBub19idWlsdGluX2ZsYWcg c2VwYXJhdGVseQorKyAgICBpZiB0ZXN0ICIkR1hYIiA9IHllczsgdGhlbgorKyAgICAgIGx0X3By b2dfY29tcGlsZXJfbm9fYnVpbHRpbl9mbGFnX0NYWD0nIC1mbm8tYnVpbHRpbicKKysgICAgZWxz ZQorKyAgICAgIGx0X3Byb2dfY29tcGlsZXJfbm9fYnVpbHRpbl9mbGFnX0NYWD0KKysgICAgZmkK KysKKysgICAgaWYgdGVzdCAiJEdYWCIgPSB5ZXM7IHRoZW4KKysgICAgICAjIFNldCB1cCBkZWZh dWx0IEdOVSBDKysgY29uZmlndXJhdGlvbgorKworKworKworKyMgQ2hlY2sgd2hldGhlciAtLXdp dGgtZ251LWxkIHdhcyBnaXZlbi4KKytpZiB0ZXN0ICIke3dpdGhfZ251X2xkK3NldH0iID0gc2V0 OyB0aGVuCisrICB3aXRodmFsPSR3aXRoX2dudV9sZDsgdGVzdCAiJHdpdGh2YWwiID0gbm8gfHwg d2l0aF9nbnVfbGQ9eWVzCisrZWxzZQorKyAgd2l0aF9nbnVfbGQ9bm8KKytmaQorKworK2FjX3By b2c9bGQKKytpZiB0ZXN0ICIkR0NDIiA9IHllczsgdGhlbgorKyAgIyBDaGVjayBpZiBnY2MgLXBy aW50LXByb2ctbmFtZT1sZCBnaXZlcyBhIHBhdGguCisrICB7ICRhc19lY2hvICIkYXNfbWU6JExJ TkVOTzogY2hlY2tpbmcgZm9yIGxkIHVzZWQgYnkgJENDIiA+JjUKKyskYXNfZWNob19uICJjaGVj a2luZyBmb3IgbGQgdXNlZCBieSAkQ0MuLi4gIiA+JjY7IH0KKysgIGNhc2UgJGhvc3QgaW4KKysg ICotKi1taW5ndyopCisrICAgICMgZ2NjIGxlYXZlcyBhIHRyYWlsaW5nIGNhcnJpYWdlIHJldHVy biB3aGljaCB1cHNldHMgbWluZ3cKKysgICAgYWNfcHJvZz1gKCRDQyAtcHJpbnQtcHJvZy1uYW1l PWxkKSAyPiY1IHwgdHIgLWQgJ1wwMTUnYCA7OworKyAgKikKKysgICAgYWNfcHJvZz1gKCRDQyAt cHJpbnQtcHJvZy1uYW1lPWxkKSAyPiY1YCA7OworKyAgZXNhYworKyAgY2FzZSAkYWNfcHJvZyBp bgorKyAgICAjIEFjY2VwdCBhYnNvbHV0ZSBwYXRocy4KKysgICAgW1xcL10qIHwgPzpbXFwvXSop CisrICAgICAgcmVfZGlyZWx0PScvW14vXVteL10qL1wuXC4vJworKyAgICAgICMgQ2Fub25pY2Fs aXplIHRoZSBwYXRobmFtZSBvZiBsZAorKyAgICAgIGFjX3Byb2c9YCRFQ0hPICIkYWNfcHJvZyJ8 ICRTRUQgJ3MlXFxcXCUvJWcnYAorKyAgICAgIHdoaWxlICRFQ0hPICIkYWNfcHJvZyIgfCAkR1JF UCAiJHJlX2RpcmVsdCIgPiAvZGV2L251bGwgMj4mMTsgZG8KKysJYWNfcHJvZz1gJEVDSE8gJGFj X3Byb2d8ICRTRUQgInMlJHJlX2RpcmVsdCUvJSJgCisrICAgICAgZG9uZQorKyAgICAgIHRlc3Qg LXogIiRMRCIgJiYgTEQ9IiRhY19wcm9nIgorKyAgICAgIDs7CisrICAiIikKKysgICAgIyBJZiBp dCBmYWlscywgdGhlbiBwcmV0ZW5kIHdlIGFyZW4ndCB1c2luZyBHQ0MuCisrICAgIGFjX3Byb2c9 bGQKKysgICAgOzsKKysgICopCisrICAgICMgSWYgaXQgaXMgcmVsYXRpdmUsIHRoZW4gc2VhcmNo IGZvciB0aGUgZmlyc3QgbGQgaW4gUEFUSC4KKysgICAgd2l0aF9nbnVfbGQ9dW5rbm93bgorKyAg ICA7OworKyAgZXNhYworK2VsaWYgdGVzdCAiJHdpdGhfZ251X2xkIiA9IHllczsgdGhlbgorKyAg eyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciBHTlUgbGQiID4mNQorKyRh c19lY2hvX24gImNoZWNraW5nIGZvciBHTlUgbGQuLi4gIiA+JjY7IH0KKytlbHNlCisrICB7ICRh c19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIG5vbi1HTlUgbGQiID4mNQorKyRh c19lY2hvX24gImNoZWNraW5nIGZvciBub24tR05VIGxkLi4uICIgPiY2OyB9CisrZmkKKytpZiB0 ZXN0ICIke2x0X2N2X3BhdGhfTEQrc2V0fSIgPSBzZXQ7IHRoZW4KKysgICRhc19lY2hvX24gIihj YWNoZWQpICIgPiY2CisrZWxzZQorKyAgaWYgdGVzdCAteiAiJExEIjsgdGhlbgorKyAgbHRfc2F2 ZV9pZnM9IiRJRlMiOyBJRlM9JFBBVEhfU0VQQVJBVE9SCisrICBmb3IgYWNfZGlyIGluICRQQVRI OyBkbworKyAgICBJRlM9IiRsdF9zYXZlX2lmcyIKKysgICAgdGVzdCAteiAiJGFjX2RpciIgJiYg YWNfZGlyPS4KKysgICAgaWYgdGVzdCAtZiAiJGFjX2Rpci8kYWNfcHJvZyIgfHwgdGVzdCAtZiAi JGFjX2Rpci8kYWNfcHJvZyRhY19leGVleHQiOyB0aGVuCisrICAgICAgbHRfY3ZfcGF0aF9MRD0i JGFjX2Rpci8kYWNfcHJvZyIKKysgICAgICAjIENoZWNrIHRvIHNlZSBpZiB0aGUgcHJvZ3JhbSBp cyBHTlUgbGQuICBJJ2QgcmF0aGVyIHVzZSAtLXZlcnNpb24sCisrICAgICAgIyBidXQgYXBwYXJl bnRseSBzb21lIHZhcmlhbnRzIG9mIEdOVSBsZCBvbmx5IGFjY2VwdCAtdi4KKysgICAgICAjIEJy ZWFrIG9ubHkgaWYgaXQgd2FzIHRoZSBHTlUvbm9uLUdOVSBsZCB0aGF0IHdlIHByZWZlci4KKysg ICAgICBjYXNlIGAiJGx0X2N2X3BhdGhfTEQiIC12IDI+JjEgPC9kZXYvbnVsbGAgaW4KKysgICAg ICAqR05VKiB8ICond2l0aCBCRkQnKikKKysJdGVzdCAiJHdpdGhfZ251X2xkIiAhPSBubyAmJiBi cmVhaworKwk7OworKyAgICAgICopCisrCXRlc3QgIiR3aXRoX2dudV9sZCIgIT0geWVzICYmIGJy ZWFrCisrCTs7CisrICAgICAgZXNhYworKyAgICBmaQorKyAgZG9uZQorKyAgSUZTPSIkbHRfc2F2 ZV9pZnMiCisrZWxzZQorKyAgbHRfY3ZfcGF0aF9MRD0iJExEIiAjIExldCB0aGUgdXNlciBvdmVy cmlkZSB0aGUgdGVzdCB3aXRoIGEgcGF0aC4KKytmaQorK2ZpCisrCisrTEQ9IiRsdF9jdl9wYXRo X0xEIgorK2lmIHRlc3QgLW4gIiRMRCI7IHRoZW4KKysgIHsgJGFzX2VjaG8gIiRhc19tZTokTElO RU5POiByZXN1bHQ6ICRMRCIgPiY1CisrJGFzX2VjaG8gIiRMRCIgPiY2OyB9CisrZWxzZQorKyAg eyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogbm8iID4mNQorKyRhc19lY2hvICJu byIgPiY2OyB9CisrZmkKKyt0ZXN0IC16ICIkTEQiICYmIHsgeyAkYXNfZWNobyAiJGFzX21lOiRM SU5FTk86IGVycm9yOiBubyBhY2NlcHRhYmxlIGxkIGZvdW5kIGluIFwkUEFUSCIgPiY1CisrJGFz X2VjaG8gIiRhc19tZTogZXJyb3I6IG5vIGFjY2VwdGFibGUgbGQgZm91bmQgaW4gXCRQQVRIIiA+ JjI7fQorKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQorK3sgJGFzX2VjaG8gIiRhc19tZTok TElORU5POiBjaGVja2luZyBpZiB0aGUgbGlua2VyICgkTEQpIGlzIEdOVSBsZCIgPiY1CisrJGFz X2VjaG9fbiAiY2hlY2tpbmcgaWYgdGhlIGxpbmtlciAoJExEKSBpcyBHTlUgbGQuLi4gIiA+JjY7 IH0KKytpZiB0ZXN0ICIke2x0X2N2X3Byb2dfZ251X2xkK3NldH0iID0gc2V0OyB0aGVuCisrICAk YXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysgICMgSSdkIHJhdGhlciB1c2UgLS12 ZXJzaW9uIGhlcmUsIGJ1dCBhcHBhcmVudGx5IHNvbWUgR05VIGxkcyBvbmx5IGFjY2VwdCAtdi4K KytjYXNlIGAkTEQgLXYgMj4mMSA8L2Rldi9udWxsYCBpbgorKypHTlUqIHwgKid3aXRoIEJGRCcq KQorKyAgbHRfY3ZfcHJvZ19nbnVfbGQ9eWVzCisrICA7OworKyopCisrICBsdF9jdl9wcm9nX2du dV9sZD1ubworKyAgOzsKKytlc2FjCisrZmkKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzog cmVzdWx0OiAkbHRfY3ZfcHJvZ19nbnVfbGQiID4mNQorKyRhc19lY2hvICIkbHRfY3ZfcHJvZ19n bnVfbGQiID4mNjsgfQorK3dpdGhfZ251X2xkPSRsdF9jdl9wcm9nX2dudV9sZAorKworKworKwor KworKworKworKworKyAgICAgICMgQ2hlY2sgaWYgR05VIEMrKyB1c2VzIEdOVSBsZCBhcyB0aGUg dW5kZXJseWluZyBsaW5rZXIsIHNpbmNlIHRoZQorKyAgICAgICMgYXJjaGl2aW5nIGNvbW1hbmRz IGJlbG93IGFzc3VtZSB0aGF0IEdOVSBsZCBpcyBiZWluZyB1c2VkLgorKyAgICAgIGlmIHRlc3Qg IiR3aXRoX2dudV9sZCIgPSB5ZXM7IHRoZW4KKysgICAgICAgIGFyY2hpdmVfY21kc19DWFg9JyRD QyAtc2hhcmVkIC1ub3N0ZGxpYiAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBv c3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR3bCRzb25hbWUgLW8g JGxpYicKKysgICAgICAgIGFyY2hpdmVfZXhwc3ltX2NtZHNfQ1hYPSckQ0MgLXNoYXJlZCAtbm9z dGRsaWIgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMg JGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAkd2wkc29uYW1lICR7d2x9LXJldGFpbi1zeW1i b2xzLWZpbGUgJHdsJGV4cG9ydF9zeW1ib2xzIC1vICRsaWInCisrCisrICAgICAgICBoYXJkY29k ZV9saWJkaXJfZmxhZ19zcGVjX0NYWD0nJHt3bH0tcnBhdGggJHt3bH0kbGliZGlyJworKyAgICAg ICAgZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjX0NYWD0nJHt3bH0tLWV4cG9ydC1keW5hbWljJwor KworKyAgICAgICAgIyBJZiBhcmNoaXZlX2NtZHMgcnVucyBMRCwgbm90IENDLCB3bGFyYyBzaG91 bGQgYmUgZW1wdHkKKysgICAgICAgICMgWFhYIEkgdGhpbmsgd2xhcmMgY2FuIGJlIGVsaW1pbmF0 ZWQgaW4gbHRjZi1jeHgsIGJ1dCBJIG5lZWQgdG8KKysgICAgICAgICMgICAgIGludmVzdGlnYXRl IGl0IGEgbGl0dGxlIGJpdCBtb3JlLiAoTU0pCisrICAgICAgICB3bGFyYz0nJHt3bH0nCisrCisr ICAgICAgICAjIGFuY2llbnQgR05VIGxkIGRpZG4ndCBzdXBwb3J0IC0td2hvbGUtYXJjaGl2ZSBl dC4gYWwuCisrICAgICAgICBpZiBldmFsICJgJENDIC1wcmludC1wcm9nLW5hbWU9bGRgIC0taGVs cCAyPiYxIiB8CisrCSAgJEdSRVAgJ25vLXdob2xlLWFyY2hpdmUnID4gL2Rldi9udWxsOyB0aGVu CisrICAgICAgICAgIHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjX0NYWD0iJHdsYXJjIictLXdob2xl LWFyY2hpdmUkY29udmVuaWVuY2UgJyIkd2xhcmMiJy0tbm8td2hvbGUtYXJjaGl2ZScKKysgICAg ICAgIGVsc2UKKysgICAgICAgICAgd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWNfQ1hYPQorKyAgICAg ICAgZmkKKysgICAgICBlbHNlCisrICAgICAgICB3aXRoX2dudV9sZD1ubworKyAgICAgICAgd2xh cmM9CisrCisrICAgICAgICAjIEEgZ2VuZXJpYyBhbmQgdmVyeSBzaW1wbGUgZGVmYXVsdCBzaGFy ZWQgbGlicmFyeSBjcmVhdGlvbgorKyAgICAgICAgIyBjb21tYW5kIGZvciBHTlUgQysrIGZvciB0 aGUgY2FzZSB3aGVyZSBpdCB1c2VzIHRoZSBuYXRpdmUKKysgICAgICAgICMgbGlua2VyLCBpbnN0 ZWFkIG9mIEdOVSBsZC4gIElmIHBvc3NpYmxlLCB0aGlzIHNldHRpbmcgc2hvdWxkCisrICAgICAg ICAjIG92ZXJyaWRkZW4gdG8gdGFrZSBhZHZhbnRhZ2Ugb2YgdGhlIG5hdGl2ZSBsaW5rZXIgZmVh dHVyZXMgb24KKysgICAgICAgICMgdGhlIHBsYXRmb3JtIGl0IGlzIGJlaW5nIHVzZWQgb24uCisr ICAgICAgICBhcmNoaXZlX2NtZHNfQ1hYPSckQ0MgLXNoYXJlZCAtbm9zdGRsaWIgJHByZWRlcF9v YmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdz IC1vICRsaWInCisrICAgICAgZmkKKysKKysgICAgICAjIENvbW1hbmRzIHRvIG1ha2UgY29tcGls ZXIgcHJvZHVjZSB2ZXJib3NlIG91dHB1dCB0aGF0IGxpc3RzCisrICAgICAgIyB3aGF0ICJoaWRk ZW4iIGxpYnJhcmllcywgb2JqZWN0IGZpbGVzIGFuZCBmbGFncyBhcmUgdXNlZCB3aGVuCisrICAg ICAgIyBsaW5raW5nIGEgc2hhcmVkIGxpYnJhcnkuCisrICAgICAgb3V0cHV0X3ZlcmJvc2VfbGlu a19jbWQ9JyRDQyAtc2hhcmVkICRDRkxBR1MgLXYgY29uZnRlc3QuJG9iamV4dCAyPiYxIHwgJEdS RVAgIlwtTCInCisrCisrICAgIGVsc2UKKysgICAgICBHWFg9bm8KKysgICAgICB3aXRoX2dudV9s ZD1ubworKyAgICAgIHdsYXJjPQorKyAgICBmaQorKworKyAgICAjIFBPUlRNRTogZmlsbCBpbiBh IGRlc2NyaXB0aW9uIG9mIHlvdXIgc3lzdGVtJ3MgQysrIGxpbmsgY2hhcmFjdGVyaXN0aWNzCisr ICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyB3aGV0aGVyIHRoZSAkY29t cGlsZXIgbGlua2VyICgkTEQpIHN1cHBvcnRzIHNoYXJlZCBsaWJyYXJpZXMiID4mNQorKyRhc19l Y2hvX24gImNoZWNraW5nIHdoZXRoZXIgdGhlICRjb21waWxlciBsaW5rZXIgKCRMRCkgc3VwcG9y dHMgc2hhcmVkIGxpYnJhcmllcy4uLiAiID4mNjsgfQorKyAgICBsZF9zaGxpYnNfQ1hYPXllcwor KyAgICBjYXNlICRob3N0X29zIGluCisrICAgICAgYWl4MyopCisrICAgICAgICAjIEZJWE1FOiBp bnNlcnQgcHJvcGVyIEMrKyBsaWJyYXJ5IHN1cHBvcnQKKysgICAgICAgIGxkX3NobGlic19DWFg9 bm8KKysgICAgICAgIDs7CisrICAgICAgYWl4WzQtOV0qKQorKyAgICAgICAgaWYgdGVzdCAiJGhv c3RfY3B1IiA9IGlhNjQ7IHRoZW4KKysgICAgICAgICAgIyBPbiBJQTY0LCB0aGUgbGlua2VyIGRv ZXMgcnVuIHRpbWUgbGlua2luZyBieSBkZWZhdWx0LCBzbyB3ZSBkb24ndAorKyAgICAgICAgICAj IGhhdmUgdG8gZG8gYW55dGhpbmcgc3BlY2lhbC4KKysgICAgICAgICAgYWl4X3VzZV9ydW50aW1l bGlua2luZz1ubworKyAgICAgICAgICBleHBfc3ltX2ZsYWc9Jy1CZXhwb3J0JworKyAgICAgICAg ICBub19lbnRyeV9mbGFnPSIiCisrICAgICAgICBlbHNlCisrICAgICAgICAgIGFpeF91c2VfcnVu dGltZWxpbmtpbmc9bm8KKysKKysgICAgICAgICAgIyBUZXN0IGlmIHdlIGFyZSB0cnlpbmcgdG8g dXNlIHJ1biB0aW1lIGxpbmtpbmcgb3Igbm9ybWFsCisrICAgICAgICAgICMgQUlYIHN0eWxlIGxp bmtpbmcuIElmIC1icnRsIGlzIHNvbWV3aGVyZSBpbiBMREZMQUdTLCB3ZQorKyAgICAgICAgICAj IG5lZWQgdG8gZG8gcnVudGltZSBsaW5raW5nLgorKyAgICAgICAgICBjYXNlICRob3N0X29zIGlu IGFpeDQuWzIzXXxhaXg0LlsyM10uKnxhaXhbNS05XSopCisrCSAgICBmb3IgbGRfZmxhZyBpbiAk TERGTEFHUzsgZG8KKysJICAgICAgY2FzZSAkbGRfZmxhZyBpbgorKwkgICAgICAqLWJydGwqKQor KwkgICAgICAgIGFpeF91c2VfcnVudGltZWxpbmtpbmc9eWVzCisrCSAgICAgICAgYnJlYWsKKysJ ICAgICAgICA7OworKwkgICAgICBlc2FjCisrCSAgICBkb25lCisrCSAgICA7OworKyAgICAgICAg ICBlc2FjCisrCisrICAgICAgICAgIGV4cF9zeW1fZmxhZz0nLWJleHBvcnQnCisrICAgICAgICAg IG5vX2VudHJ5X2ZsYWc9Jy1ibm9lbnRyeScKKysgICAgICAgIGZpCisrCisrICAgICAgICAjIFdo ZW4gbGFyZ2UgZXhlY3V0YWJsZXMgb3Igc2hhcmVkIG9iamVjdHMgYXJlIGJ1aWx0LCBBSVggbGQg Y2FuCisrICAgICAgICAjIGhhdmUgcHJvYmxlbXMgY3JlYXRpbmcgdGhlIHRhYmxlIG9mIGNvbnRl bnRzLiAgSWYgbGlua2luZyBhIGxpYnJhcnkKKysgICAgICAgICMgb3IgcHJvZ3JhbSByZXN1bHRz IGluICJlcnJvciBUT0Mgb3ZlcmZsb3ciIGFkZCAtbW1pbmltYWwtdG9jIHRvCisrICAgICAgICAj IENYWEZMQUdTL0NGTEFHUyBmb3IgZysrL2djYy4gIEluIHRoZSBjYXNlcyB3aGVyZSB0aGF0IGlz IG5vdAorKyAgICAgICAgIyBlbm91Z2ggdG8gZml4IHRoZSBwcm9ibGVtLCBhZGQgLVdsLC1iYmln dG9jIHRvIExERkxBR1MuCisrCisrICAgICAgICBhcmNoaXZlX2NtZHNfQ1hYPScnCisrICAgICAg ICBoYXJkY29kZV9kaXJlY3RfQ1hYPXllcworKyAgICAgICAgaGFyZGNvZGVfZGlyZWN0X2Fic29s dXRlX0NYWD15ZXMKKysgICAgICAgIGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3JfQ1hYPSc6Jwor KyAgICAgICAgbGlua19hbGxfZGVwbGlic19DWFg9eWVzCisrICAgICAgICBmaWxlX2xpc3Rfc3Bl Y19DWFg9JyR7d2x9LWYsJworKworKyAgICAgICAgaWYgdGVzdCAiJEdYWCIgPSB5ZXM7IHRoZW4K KysgICAgICAgICAgY2FzZSAkaG9zdF9vcyBpbiBhaXg0LlswMTJdfGFpeDQuWzAxMl0uKikKKysg ICAgICAgICAgIyBXZSBvbmx5IHdhbnQgdG8gZG8gdGhpcyBvbiBBSVggNC4yIGFuZCBsb3dlciwg dGhlIGNoZWNrCisrICAgICAgICAgICMgYmVsb3cgZm9yIGJyb2tlbiBjb2xsZWN0MiBkb2Vzbid0 IHdvcmsgdW5kZXIgNC4zKworKwkgIGNvbGxlY3QybmFtZT1gJHtDQ30gLXByaW50LXByb2ctbmFt ZT1jb2xsZWN0MmAKKysJICBpZiB0ZXN0IC1mICIkY29sbGVjdDJuYW1lIiAmJgorKwkgICAgIHN0 cmluZ3MgIiRjb2xsZWN0Mm5hbWUiIHwgJEdSRVAgcmVzb2x2ZV9saWJfbmFtZSA+L2Rldi9udWxs CisrCSAgdGhlbgorKwkgICAgIyBXZSBoYXZlIHJld29ya2VkIGNvbGxlY3QyCisrCSAgICA6Cisr CSAgZWxzZQorKwkgICAgIyBXZSBoYXZlIG9sZCBjb2xsZWN0MgorKwkgICAgaGFyZGNvZGVfZGly ZWN0X0NYWD11bnN1cHBvcnRlZAorKwkgICAgIyBJdCBmYWlscyB0byBmaW5kIHVuaW5zdGFsbGVk IGxpYnJhcmllcyB3aGVuIHRoZSB1bmluc3RhbGxlZAorKwkgICAgIyBwYXRoIGlzIG5vdCBsaXN0 ZWQgaW4gdGhlIGxpYnBhdGguICBTZXR0aW5nIGhhcmRjb2RlX21pbnVzX0wKKysJICAgICMgdG8g dW5zdXBwb3J0ZWQgZm9yY2VzIHJlbGlua2luZworKwkgICAgaGFyZGNvZGVfbWludXNfTF9DWFg9 eWVzCisrCSAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX0NYWD0nLUwkbGliZGlyJworKwkg ICAgaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvcl9DWFg9CisrCSAgZmkKKysgICAgICAgICAgZXNh YworKyAgICAgICAgICBzaGFyZWRfZmxhZz0nLXNoYXJlZCcKKysJICBpZiB0ZXN0ICIkYWl4X3Vz ZV9ydW50aW1lbGlua2luZyIgPSB5ZXM7IHRoZW4KKysJICAgIHNoYXJlZF9mbGFnPSIkc2hhcmVk X2ZsYWcgIicke3dsfS1HJworKwkgIGZpCisrICAgICAgICBlbHNlCisrICAgICAgICAgICMgbm90 IHVzaW5nIGdjYworKyAgICAgICAgICBpZiB0ZXN0ICIkaG9zdF9jcHUiID0gaWE2NDsgdGhlbgor KwkgICMgVmlzdWFsQWdlIEMrKywgVmVyc2lvbiA1LjUgZm9yIEFJWCA1TCBmb3IgSUEtNjQsIEJl dGEgMyBSZWxlYXNlCisrCSAgIyBjaG9rZXMgb24gLVdsLC1HLiBUaGUgZm9sbG93aW5nIGxpbmUg aXMgY29ycmVjdDoKKysJICBzaGFyZWRfZmxhZz0nLUcnCisrICAgICAgICAgIGVsc2UKKysJICAg IGlmIHRlc3QgIiRhaXhfdXNlX3J1bnRpbWVsaW5raW5nIiA9IHllczsgdGhlbgorKwkgICAgICBz aGFyZWRfZmxhZz0nJHt3bH0tRycKKysJICAgIGVsc2UKKysJICAgICAgc2hhcmVkX2ZsYWc9JyR7 d2x9LWJNOlNSRScKKysJICAgIGZpCisrICAgICAgICAgIGZpCisrICAgICAgICBmaQorKworKyAg ICAgICAgZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjX0NYWD0nJHt3bH0tYmV4cGFsbCcKKysgICAg ICAgICMgSXQgc2VlbXMgdGhhdCAtYmV4cGFsbCBkb2VzIG5vdCBleHBvcnQgc3ltYm9scyBiZWdp bm5pbmcgd2l0aAorKyAgICAgICAgIyB1bmRlcnNjb3JlIChfKSwgc28gaXQgaXMgYmV0dGVyIHRv IGdlbmVyYXRlIGEgbGlzdCBvZiBzeW1ib2xzIHRvCisrCSMgZXhwb3J0LgorKyAgICAgICAgYWx3 YXlzX2V4cG9ydF9zeW1ib2xzX0NYWD15ZXMKKysgICAgICAgIGlmIHRlc3QgIiRhaXhfdXNlX3J1 bnRpbWVsaW5raW5nIiA9IHllczsgdGhlbgorKyAgICAgICAgICAjIFdhcm5pbmcgLSB3aXRob3V0 IHVzaW5nIHRoZSBvdGhlciBydW50aW1lIGxvYWRpbmcgZmxhZ3MgKC1icnRsKSwKKysgICAgICAg ICAgIyAtYmVyb2sgd2lsbCBsaW5rIHdpdGhvdXQgZXJyb3IsIGJ1dCBtYXkgcHJvZHVjZSBhIGJy b2tlbiBsaWJyYXJ5LgorKyAgICAgICAgICBhbGxvd191bmRlZmluZWRfZmxhZ19DWFg9Jy1iZXJv aycKKysgICAgICAgICAgIyBEZXRlcm1pbmUgdGhlIGRlZmF1bHQgbGlicGF0aCBmcm9tIHRoZSB2 YWx1ZSBlbmNvZGVkIGluIGFuIGVtcHR5CisrICAgICAgICAgICMgZXhlY3V0YWJsZS4KKysgICAg ICAgICAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisrLyogY29uZmRlZnMuaC4gICov CisrX0FDRU9GCisrY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0CisrY2F0ID4+Y29u ZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KKysKKytpbnQK KyttYWluICgpCisreworKworKyAgOworKyAgcmV0dXJuIDA7CisrfQorK19BQ0VPRgorK3JtIC1m IGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QkYWNfZXhlZXh0CisraWYgeyAoYWNfdHJ5PSIk YWNfbGluayIKKytjYXNlICIoKCRhY190cnkiIGluCisrICAqXCIqIHwgKlxgKiB8ICpcXCopIGFj X3RyeV9lY2hvPVwkYWNfdHJ5OzsKKysgICopIGFjX3RyeV9lY2hvPSRhY190cnk7OworK2VzYWMK KytldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCisr JGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4mNQorKyAgKGV2YWwgIiRhY19saW5rIikgMj5jb25m dGVzdC5lcjEKKysgIGFjX3N0YXR1cz0kPworKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIx ID5jb25mdGVzdC5lcnIKKysgIHJtIC1mIGNvbmZ0ZXN0LmVyMQorKyAgY2F0IGNvbmZ0ZXN0LmVy ciA+JjUKKysgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1 CisrICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJiB7CisrCSB0ZXN0IC16ICIkYWNfY3h4X3dlcnJv cl9mbGFnIiB8fAorKwkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgorKyAgICAgICB9ICYmIHRlc3Qg LXMgY29uZnRlc3QkYWNfZXhlZXh0ICYmIHsKKysJIHRlc3QgIiRjcm9zc19jb21waWxpbmciID0g eWVzIHx8CisrCSAkYXNfdGVzdF94IGNvbmZ0ZXN0JGFjX2V4ZWV4dAorKyAgICAgICB9OyB0aGVu CisrCisrbHRfYWl4X2xpYnBhdGhfc2VkPScKKysgICAgL0ltcG9ydCBGaWxlIFN0cmluZ3MvLC9e JC8geworKwkvXjAvIHsKKysJICAgIHMvXjAgICpcKC4qXCkkL1wxLworKwkgICAgcAorKwl9Cisr ICAgIH0nCisrYWl4X2xpYnBhdGg9YGR1bXAgLUggY29uZnRlc3QkYWNfZXhlZXh0IDI+L2Rldi9u dWxsIHwgJFNFRCAtbiAtZSAiJGx0X2FpeF9saWJwYXRoX3NlZCJgCisrIyBDaGVjayBmb3IgYSA2 NC1iaXQgb2JqZWN0IGlmIHdlIGRpZG4ndCBmaW5kIGFueXRoaW5nLgorK2lmIHRlc3QgLXogIiRh aXhfbGlicGF0aCI7IHRoZW4KKysgIGFpeF9saWJwYXRoPWBkdW1wIC1IWDY0IGNvbmZ0ZXN0JGFj X2V4ZWV4dCAyPi9kZXYvbnVsbCB8ICRTRUQgLW4gLWUgIiRsdF9haXhfbGlicGF0aF9zZWQiYAor K2ZpCisrZWxzZQorKyAgJGFzX2VjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1 Cisrc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQorKworKworK2ZpCisrCisrcm0g LXJmIGNvbmZ0ZXN0LmRTWU0KKytybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNf b2JqZXh0IGNvbmZ0ZXN0X2lwYThfY29uZnRlc3Qub28gXAorKyAgICAgIGNvbmZ0ZXN0JGFjX2V4 ZWV4dCBjb25mdGVzdC4kYWNfZXh0CisraWYgdGVzdCAteiAiJGFpeF9saWJwYXRoIjsgdGhlbiBh aXhfbGlicGF0aD0iL3Vzci9saWI6L2xpYiI7IGZpCisrCisrICAgICAgICAgIGhhcmRjb2RlX2xp YmRpcl9mbGFnX3NwZWNfQ1hYPScke3dsfS1ibGlicGF0aDokbGliZGlyOiciJGFpeF9saWJwYXRo IgorKworKyAgICAgICAgICBhcmNoaXZlX2V4cHN5bV9jbWRzX0NYWD0nJENDIC1vICRvdXRwdXRf b2JqZGlyLyRzb25hbWUgJGxpYm9ianMgJGRlcGxpYnMgJyJcJHt3bH0kbm9fZW50cnlfZmxhZyIn ICRjb21waWxlcl9mbGFncyBgaWYgdGVzdCAieCR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9IiAhPSAi eCI7IHRoZW4gJEVDSE8gIlgke3dsfSR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9IiB8ICRYc2VkOyBl bHNlIDo7IGZpYCAnIlwke3dsfSRleHBfc3ltX2ZsYWc6XCRleHBvcnRfc3ltYm9scyAkc2hhcmVk X2ZsYWciCisrICAgICAgICBlbHNlCisrICAgICAgICAgIGlmIHRlc3QgIiRob3N0X2NwdSIgPSBp YTY0OyB0aGVuCisrCSAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX0NYWD0nJHt3bH0tUiAk bGliZGlyOi91c3IvbGliOi9saWInCisrCSAgICBhbGxvd191bmRlZmluZWRfZmxhZ19DWFg9Ii16 IG5vZGVmcyIKKysJICAgIGFyY2hpdmVfZXhwc3ltX2NtZHNfQ1hYPSJcJENDICRzaGFyZWRfZmxh ZyInIC1vICRvdXRwdXRfb2JqZGlyLyRzb25hbWUgJGxpYm9ianMgJGRlcGxpYnMgJyJcJHt3bH0k bm9fZW50cnlfZmxhZyInICRjb21waWxlcl9mbGFncyAke3dsfSR7YWxsb3dfdW5kZWZpbmVkX2Zs YWd9ICciXCR7d2x9JGV4cF9zeW1fZmxhZzpcJGV4cG9ydF9zeW1ib2xzIgorKyAgICAgICAgICBl bHNlCisrCSAgICAjIERldGVybWluZSB0aGUgZGVmYXVsdCBsaWJwYXRoIGZyb20gdGhlIHZhbHVl IGVuY29kZWQgaW4gYW4KKysJICAgICMgZW1wdHkgZXhlY3V0YWJsZS4KKysJICAgIGNhdCA+Y29u ZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorKy8qIGNvbmZkZWZzLmguICAqLworK19BQ0VPRgorK2Nh dCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAorK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQg PDxfQUNFT0YKKysvKiBlbmQgY29uZmRlZnMuaC4gICovCisrCisraW50CisrbWFpbiAoKQorK3sK KysKKysgIDsKKysgIHJldHVybiAwOworK30KKytfQUNFT0YKKytybSAtZiBjb25mdGVzdC4kYWNf b2JqZXh0IGNvbmZ0ZXN0JGFjX2V4ZWV4dAorK2lmIHsgKGFjX3RyeT0iJGFjX2xpbmsiCisrY2Fz ZSAiKCgkYWNfdHJ5IiBpbgorKyAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFj X3RyeTs7CisrICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKKytlc2FjCisrZXZhbCBhY190cnlf ZWNobz0iXCJcJGFzX21lOiRMSU5FTk86ICRhY190cnlfZWNob1wiIgorKyRhc19lY2hvICIkYWNf dHJ5X2VjaG8iKSA+JjUKKysgIChldmFsICIkYWNfbGluayIpIDI+Y29uZnRlc3QuZXIxCisrICBh Y19zdGF0dXM9JD8KKysgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJy CisrICBybSAtZiBjb25mdGVzdC5lcjEKKysgIGNhdCBjb25mdGVzdC5lcnIgPiY1CisrICAkYXNf ZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorKyAgKGV4aXQgJGFj X3N0YXR1cyk7IH0gJiYgeworKwkgdGVzdCAteiAiJGFjX2N4eF93ZXJyb3JfZmxhZyIgfHwKKysJ IHRlc3QgISAtcyBjb25mdGVzdC5lcnIKKysgICAgICAgfSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0JGFj X2V4ZWV4dCAmJiB7CisrCSB0ZXN0ICIkY3Jvc3NfY29tcGlsaW5nIiA9IHllcyB8fAorKwkgJGFz X3Rlc3RfeCBjb25mdGVzdCRhY19leGVleHQKKysgICAgICAgfTsgdGhlbgorKworK2x0X2FpeF9s aWJwYXRoX3NlZD0nCisrICAgIC9JbXBvcnQgRmlsZSBTdHJpbmdzLywvXiQvIHsKKysJL14wLyB7 CisrCSAgICBzL14wICAqXCguKlwpJC9cMS8KKysJICAgIHAKKysJfQorKyAgICB9JworK2FpeF9s aWJwYXRoPWBkdW1wIC1IIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAyPi9kZXYvbnVsbCB8ICRTRUQgLW4g LWUgIiRsdF9haXhfbGlicGF0aF9zZWQiYAorKyMgQ2hlY2sgZm9yIGEgNjQtYml0IG9iamVjdCBp ZiB3ZSBkaWRuJ3QgZmluZCBhbnl0aGluZy4KKytpZiB0ZXN0IC16ICIkYWl4X2xpYnBhdGgiOyB0 aGVuCisrICBhaXhfbGlicGF0aD1gZHVtcCAtSFg2NCBjb25mdGVzdCRhY19leGVleHQgMj4vZGV2 L251bGwgfCAkU0VEIC1uIC1lICIkbHRfYWl4X2xpYnBhdGhfc2VkImAKKytmaQorK2Vsc2UKKysg ICRhc19lY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQorK3NlZCAncy9eL3wg LycgY29uZnRlc3QuJGFjX2V4dCA+JjUKKysKKysKKytmaQorKworK3JtIC1yZiBjb25mdGVzdC5k U1lNCisrcm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVz dF9pcGE4X2NvbmZ0ZXN0Lm9vIFwKKysgICAgICBjb25mdGVzdCRhY19leGVleHQgY29uZnRlc3Qu JGFjX2V4dAorK2lmIHRlc3QgLXogIiRhaXhfbGlicGF0aCI7IHRoZW4gYWl4X2xpYnBhdGg9Ii91 c3IvbGliOi9saWIiOyBmaQorKworKwkgICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19DWFg9 JyR7d2x9LWJsaWJwYXRoOiRsaWJkaXI6JyIkYWl4X2xpYnBhdGgiCisrCSAgICAjIFdhcm5pbmcg LSB3aXRob3V0IHVzaW5nIHRoZSBvdGhlciBydW4gdGltZSBsb2FkaW5nIGZsYWdzLAorKwkgICAg IyAtYmVyb2sgd2lsbCBsaW5rIHdpdGhvdXQgZXJyb3IsIGJ1dCBtYXkgcHJvZHVjZSBhIGJyb2tl biBsaWJyYXJ5LgorKwkgICAgbm9fdW5kZWZpbmVkX2ZsYWdfQ1hYPScgJHt3bH0tYmVybm90b2sn CisrCSAgICBhbGxvd191bmRlZmluZWRfZmxhZ19DWFg9JyAke3dsfS1iZXJvaycKKysJICAgICMg RXhwb3J0ZWQgc3ltYm9scyBjYW4gYmUgcHVsbGVkIGludG8gc2hhcmVkIG9iamVjdHMgZnJvbSBh cmNoaXZlcworKwkgICAgd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWNfQ1hYPSckY29udmVuaWVuY2Un CisrCSAgICBhcmNoaXZlX2NtZHNfbmVlZF9sY19DWFg9eWVzCisrCSAgICAjIFRoaXMgaXMgc2lt aWxhciB0byBob3cgQUlYIHRyYWRpdGlvbmFsbHkgYnVpbGRzIGl0cyBzaGFyZWQKKysJICAgICMg bGlicmFyaWVzLgorKwkgICAgYXJjaGl2ZV9leHBzeW1fY21kc19DWFg9IlwkQ0MgJHNoYXJlZF9m bGFnIicgLW8gJG91dHB1dF9vYmpkaXIvJHNvbmFtZSAkbGlib2JqcyAkZGVwbGlicyAke3dsfS1i bm9lbnRyeSAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tYkU6JGV4cG9ydF9zeW1ib2xzJHthbGxvd191 bmRlZmluZWRfZmxhZ31+JEFSICRBUl9GTEFHUyAkb3V0cHV0X29iamRpci8kbGlibmFtZSRyZWxl YXNlLmEgJG91dHB1dF9vYmpkaXIvJHNvbmFtZScKKysgICAgICAgICAgZmkKKysgICAgICAgIGZp CisrICAgICAgICA7OworKworKyAgICAgIGJlb3MqKQorKwlpZiAkTEQgLS1oZWxwIDI+JjEgfCAk R1JFUCAnOiBzdXBwb3J0ZWQgdGFyZ2V0czouKiBlbGYnID4gL2Rldi9udWxsOyB0aGVuCisrCSAg YWxsb3dfdW5kZWZpbmVkX2ZsYWdfQ1hYPXVuc3VwcG9ydGVkCisrCSAgIyBKb3NlcGggQmVja2Vu YmFjaCA8anJiM0BiZXN0LmNvbT4gc2F5cyBzb21lIHJlbGVhc2VzIG9mIGdjYworKwkgICMgc3Vw cG9ydCAtLXVuZGVmaW5lZC4gIFRoaXMgZGVzZXJ2ZXMgc29tZSBpbnZlc3RpZ2F0aW9uLiAgRklY TUUKKysJICBhcmNoaXZlX2NtZHNfQ1hYPSckQ0MgLW5vc3RhcnQgJGxpYm9ianMgJGRlcGxpYnMg JGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAkd2wkc29uYW1lIC1vICRsaWInCisrCWVsc2UK KysJICBsZF9zaGxpYnNfQ1hYPW5vCisrCWZpCisrCTs7CisrCisrICAgICAgY2hvcnVzKikKKysg ICAgICAgIGNhc2UgJGNjX2Jhc2VuYW1lIGluCisrICAgICAgICAgICopCisrCSAgIyBGSVhNRTog aW5zZXJ0IHByb3BlciBDKysgbGlicmFyeSBzdXBwb3J0CisrCSAgbGRfc2hsaWJzX0NYWD1ubwor KwkgIDs7CisrICAgICAgICBlc2FjCisrICAgICAgICA7OworKworKyAgICAgIGN5Z3dpbiogfCBt aW5ndyogfCBwdzMyKiB8IGNlZ2NjKikKKysgICAgICAgICMgX0xUX1RBR1ZBUihoYXJkY29kZV9s aWJkaXJfZmxhZ19zcGVjLCBDWFgpIGlzIGFjdHVhbGx5IG1lYW5pbmdsZXNzLAorKyAgICAgICAg IyBhcyB0aGVyZSBpcyBubyBzZWFyY2ggcGF0aCBmb3IgRExMcy4KKysgICAgICAgIGhhcmRjb2Rl X2xpYmRpcl9mbGFnX3NwZWNfQ1hYPSctTCRsaWJkaXInCisrICAgICAgICBhbGxvd191bmRlZmlu ZWRfZmxhZ19DWFg9dW5zdXBwb3J0ZWQKKysgICAgICAgIGFsd2F5c19leHBvcnRfc3ltYm9sc19D WFg9bm8KKysgICAgICAgIGVuYWJsZV9zaGFyZWRfd2l0aF9zdGF0aWNfcnVudGltZXNfQ1hYPXll cworKworKyAgICAgICAgaWYgJExEIC0taGVscCAyPiYxIHwgJEdSRVAgJ2F1dG8taW1wb3J0JyA+ IC9kZXYvbnVsbDsgdGhlbgorKyAgICAgICAgICBhcmNoaXZlX2NtZHNfQ1hYPSckQ0MgLXNoYXJl ZCAtbm9zdGRsaWIgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29i amVjdHMgJGNvbXBpbGVyX2ZsYWdzIC1vICRvdXRwdXRfb2JqZGlyLyRzb25hbWUgJHt3bH0tLWVu YWJsZS1hdXRvLWltYWdlLWJhc2UgLVhsaW5rZXIgLS1vdXQtaW1wbGliIC1YbGlua2VyICRsaWIn CisrICAgICAgICAgICMgSWYgdGhlIGV4cG9ydC1zeW1ib2xzIGZpbGUgYWxyZWFkeSBpcyBhIC5k ZWYgZmlsZSAoMXN0IGxpbmUKKysgICAgICAgICAgIyBpcyBFWFBPUlRTKSwgdXNlIGl0IGFzIGlz OyBvdGhlcndpc2UsIHByZXBlbmQuLi4KKysgICAgICAgICAgYXJjaGl2ZV9leHBzeW1fY21kc19D WFg9J2lmIHRlc3QgInhgJFNFRCAxcSAkZXhwb3J0X3N5bWJvbHNgIiA9IHhFWFBPUlRTOyB0aGVu CisrCSAgICBjcCAkZXhwb3J0X3N5bWJvbHMgJG91dHB1dF9vYmpkaXIvJHNvbmFtZS5kZWY7Cisr ICAgICAgICAgIGVsc2UKKysJICAgIGVjaG8gRVhQT1JUUyA+ICRvdXRwdXRfb2JqZGlyLyRzb25h bWUuZGVmOworKwkgICAgY2F0ICRleHBvcnRfc3ltYm9scyA+PiAkb3V0cHV0X29iamRpci8kc29u YW1lLmRlZjsKKysgICAgICAgICAgZml+CisrICAgICAgICAgICRDQyAtc2hhcmVkIC1ub3N0ZGxp YiAkb3V0cHV0X29iamRpci8kc29uYW1lLmRlZiAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRl cGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgLW8gJG91dHB1dF9vYmpkaXIv JHNvbmFtZSAke3dsfS0tZW5hYmxlLWF1dG8taW1hZ2UtYmFzZSAtWGxpbmtlciAtLW91dC1pbXBs aWIgLVhsaW5rZXIgJGxpYicKKysgICAgICAgIGVsc2UKKysgICAgICAgICAgbGRfc2hsaWJzX0NY WD1ubworKyAgICAgICAgZmkKKysgICAgICAgIDs7CisrICAgICAgZGFyd2luKiB8IHJoYXBzb2R5 KikKKysKKysKKysgIGFyY2hpdmVfY21kc19uZWVkX2xjX0NYWD1ubworKyAgaGFyZGNvZGVfZGly ZWN0X0NYWD1ubworKyAgaGFyZGNvZGVfYXV0b21hdGljX0NYWD15ZXMKKysgIGhhcmRjb2RlX3No bGlicGF0aF92YXJfQ1hYPXVuc3VwcG9ydGVkCisrICB3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlY19D WFg9JycKKysgIGxpbmtfYWxsX2RlcGxpYnNfQ1hYPXllcworKyAgYWxsb3dfdW5kZWZpbmVkX2Zs YWdfQ1hYPSIkX2x0X2Rhcl9hbGxvd191bmRlZmluZWQiCisrICBjYXNlICRjY19iYXNlbmFtZSBp bgorKyAgICAgaWZvcnQqKSBfbHRfZGFyX2Nhbl9zaGFyZWQ9eWVzIDs7CisrICAgICAqKSBfbHRf ZGFyX2Nhbl9zaGFyZWQ9JEdDQyA7OworKyAgZXNhYworKyAgaWYgdGVzdCAiJF9sdF9kYXJfY2Fu X3NoYXJlZCIgPSAieWVzIjsgdGhlbgorKyAgICBvdXRwdXRfdmVyYm9zZV9saW5rX2NtZD1lY2hv CisrICAgIGFyY2hpdmVfY21kc19DWFg9IlwkQ0MgLWR5bmFtaWNsaWIgXCRhbGxvd191bmRlZmlu ZWRfZmxhZyAtbyBcJGxpYiBcJGxpYm9ianMgXCRkZXBsaWJzIFwkY29tcGlsZXJfZmxhZ3MgLWlu c3RhbGxfbmFtZSBcJHJwYXRoL1wkc29uYW1lIFwkdmVyc3RyaW5nICRfbHRfZGFyX3NpbmdsZV9t b2Qke19sdF9kc3ltdXRpbH0iCisrICAgIG1vZHVsZV9jbWRzX0NYWD0iXCRDQyBcJGFsbG93X3Vu ZGVmaW5lZF9mbGFnIC1vIFwkbGliIC1idW5kbGUgXCRsaWJvYmpzIFwkZGVwbGlicyBcJGNvbXBp bGVyX2ZsYWdzJHtfbHRfZHN5bXV0aWx9IgorKyAgICBhcmNoaXZlX2V4cHN5bV9jbWRzX0NYWD0i c2VkICdzLF4sXywnIDwgXCRleHBvcnRfc3ltYm9scyA+IFwkb3V0cHV0X29iamRpci9cJHtsaWJu YW1lfS1zeW1ib2xzLmV4cHN5bX5cJENDIC1keW5hbWljbGliIFwkYWxsb3dfdW5kZWZpbmVkX2Zs YWcgLW8gXCRsaWIgXCRsaWJvYmpzIFwkZGVwbGlicyBcJGNvbXBpbGVyX2ZsYWdzIC1pbnN0YWxs X25hbWUgXCRycGF0aC9cJHNvbmFtZSBcJHZlcnN0cmluZyAke19sdF9kYXJfc2luZ2xlX21vZH0k e19sdF9kYXJfZXhwb3J0X3N5bXN9JHtfbHRfZHN5bXV0aWx9IgorKyAgICBtb2R1bGVfZXhwc3lt X2NtZHNfQ1hYPSJzZWQgLWUgJ3MsXixfLCcgPCBcJGV4cG9ydF9zeW1ib2xzID4gXCRvdXRwdXRf b2JqZGlyL1wke2xpYm5hbWV9LXN5bWJvbHMuZXhwc3ltflwkQ0MgXCRhbGxvd191bmRlZmluZWRf ZmxhZyAtbyBcJGxpYiAtYnVuZGxlIFwkbGlib2JqcyBcJGRlcGxpYnMgXCRjb21waWxlcl9mbGFn cyR7X2x0X2Rhcl9leHBvcnRfc3ltc30ke19sdF9kc3ltdXRpbH0iCisrICAgICAgIGlmIHRlc3Qg IiRsdF9jdl9hcHBsZV9jY19zaW5nbGVfbW9kIiAhPSAieWVzIjsgdGhlbgorKyAgICAgIGFyY2hp dmVfY21kc19DWFg9IlwkQ0MgLXIgLWtlZXBfcHJpdmF0ZV9leHRlcm5zIC1ub3N0ZGxpYiAtbyBc JHtsaWJ9LW1hc3Rlci5vIFwkbGlib2Jqc35cJENDIC1keW5hbWljbGliIFwkYWxsb3dfdW5kZWZp bmVkX2ZsYWcgLW8gXCRsaWIgXCR7bGlifS1tYXN0ZXIubyBcJGRlcGxpYnMgXCRjb21waWxlcl9m bGFncyAtaW5zdGFsbF9uYW1lIFwkcnBhdGgvXCRzb25hbWUgXCR2ZXJzdHJpbmcke19sdF9kc3lt dXRpbH0iCisrICAgICAgYXJjaGl2ZV9leHBzeW1fY21kc19DWFg9InNlZCAncyxeLF8sJyA8IFwk ZXhwb3J0X3N5bWJvbHMgPiBcJG91dHB1dF9vYmpkaXIvXCR7bGlibmFtZX0tc3ltYm9scy5leHBz eW1+XCRDQyAtciAta2VlcF9wcml2YXRlX2V4dGVybnMgLW5vc3RkbGliIC1vIFwke2xpYn0tbWFz dGVyLm8gXCRsaWJvYmpzflwkQ0MgLWR5bmFtaWNsaWIgXCRhbGxvd191bmRlZmluZWRfZmxhZyAt byBcJGxpYiBcJHtsaWJ9LW1hc3Rlci5vIFwkZGVwbGlicyBcJGNvbXBpbGVyX2ZsYWdzIC1pbnN0 YWxsX25hbWUgXCRycGF0aC9cJHNvbmFtZSBcJHZlcnN0cmluZyR7X2x0X2Rhcl9leHBvcnRfc3lt c30ke19sdF9kc3ltdXRpbH0iCisrICAgIGZpCisrCisrICBlbHNlCisrICBsZF9zaGxpYnNfQ1hY PW5vCisrICBmaQorKworKwk7OworKworKyAgICAgIGRndXgqKQorKyAgICAgICAgY2FzZSAkY2Nf YmFzZW5hbWUgaW4KKysgICAgICAgICAgZWMrKyopCisrCSAgICAjIEZJWE1FOiBpbnNlcnQgcHJv cGVyIEMrKyBsaWJyYXJ5IHN1cHBvcnQKKysJICAgIGxkX3NobGlic19DWFg9bm8KKysJICAgIDs7 CisrICAgICAgICAgIGdoY3gqKQorKwkgICAgIyBHcmVlbiBIaWxscyBDKysgQ29tcGlsZXIKKysJ ICAgICMgRklYTUU6IGluc2VydCBwcm9wZXIgQysrIGxpYnJhcnkgc3VwcG9ydAorKwkgICAgbGRf c2hsaWJzX0NYWD1ubworKwkgICAgOzsKKysgICAgICAgICAgKikKKysJICAgICMgRklYTUU6IGlu c2VydCBwcm9wZXIgQysrIGxpYnJhcnkgc3VwcG9ydAorKwkgICAgbGRfc2hsaWJzX0NYWD1ubwor KwkgICAgOzsKKysgICAgICAgIGVzYWMKKysgICAgICAgIDs7CisrCisrICAgICAgZnJlZWJzZFsx Ml0qKQorKyAgICAgICAgIyBDKysgc2hhcmVkIGxpYnJhcmllcyByZXBvcnRlZCB0byBiZSBmYWly bHkgYnJva2VuIGJlZm9yZQorKwkjIHN3aXRjaCB0byBFTEYKKysgICAgICAgIGxkX3NobGlic19D WFg9bm8KKysgICAgICAgIDs7CisrCisrICAgICAgZnJlZWJzZC1lbGYqKQorKyAgICAgICAgYXJj aGl2ZV9jbWRzX25lZWRfbGNfQ1hYPW5vCisrICAgICAgICA7OworKworKyAgICAgIGZyZWVic2Qq IHwgZHJhZ29uZmx5KikKKysgICAgICAgICMgRnJlZUJTRCAzIGFuZCBsYXRlciB1c2UgR05VIEMr KyBhbmQgR05VIGxkIHdpdGggc3RhbmRhcmQgRUxGCisrICAgICAgICAjIGNvbnZlbnRpb25zCisr ICAgICAgICBsZF9zaGxpYnNfQ1hYPXllcworKyAgICAgICAgOzsKKysKKysgICAgICBnbnUqKQor KyAgICAgICAgOzsKKysKKysgICAgICBocHV4OSopCisrICAgICAgICBoYXJkY29kZV9saWJkaXJf ZmxhZ19zcGVjX0NYWD0nJHt3bH0rYiAke3dsfSRsaWJkaXInCisrICAgICAgICBoYXJkY29kZV9s aWJkaXJfc2VwYXJhdG9yX0NYWD06CisrICAgICAgICBleHBvcnRfZHluYW1pY19mbGFnX3NwZWNf Q1hYPScke3dsfS1FJworKyAgICAgICAgaGFyZGNvZGVfZGlyZWN0X0NYWD15ZXMKKysgICAgICAg IGhhcmRjb2RlX21pbnVzX0xfQ1hYPXllcyAjIE5vdCBpbiB0aGUgc2VhcmNoIFBBVEgsCisrCQkJ CSAgICAgICAgICAgICAjIGJ1dCBhcyB0aGUgZGVmYXVsdAorKwkJCQkgICAgICAgICAgICAgIyBs b2NhdGlvbiBvZiB0aGUgbGlicmFyeS4KKysKKysgICAgICAgIGNhc2UgJGNjX2Jhc2VuYW1lIGlu CisrICAgICAgICAgIENDKikKKysgICAgICAgICAgICAjIEZJWE1FOiBpbnNlcnQgcHJvcGVyIEMr KyBsaWJyYXJ5IHN1cHBvcnQKKysgICAgICAgICAgICBsZF9zaGxpYnNfQ1hYPW5vCisrICAgICAg ICAgICAgOzsKKysgICAgICAgICAgYUNDKikKKysgICAgICAgICAgICBhcmNoaXZlX2NtZHNfQ1hY PSckUk0gJG91dHB1dF9vYmpkaXIvJHNvbmFtZX4kQ0MgLWIgJHt3bH0rYiAke3dsfSRpbnN0YWxs X2xpYmRpciAtbyAkb3V0cHV0X29iamRpci8kc29uYW1lICRwcmVkZXBfb2JqZWN0cyAkbGlib2Jq cyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFnc350ZXN0ICRvdXRwdXRf b2JqZGlyLyRzb25hbWUgPSAkbGliIHx8IG12ICRvdXRwdXRfb2JqZGlyLyRzb25hbWUgJGxpYicK KysgICAgICAgICAgICAjIENvbW1hbmRzIHRvIG1ha2UgY29tcGlsZXIgcHJvZHVjZSB2ZXJib3Nl IG91dHB1dCB0aGF0IGxpc3RzCisrICAgICAgICAgICAgIyB3aGF0ICJoaWRkZW4iIGxpYnJhcmll cywgb2JqZWN0IGZpbGVzIGFuZCBmbGFncyBhcmUgdXNlZCB3aGVuCisrICAgICAgICAgICAgIyBs aW5raW5nIGEgc2hhcmVkIGxpYnJhcnkuCisrICAgICAgICAgICAgIworKyAgICAgICAgICAgICMg VGhlcmUgZG9lc24ndCBhcHBlYXIgdG8gYmUgYSB3YXkgdG8gcHJldmVudCB0aGlzIGNvbXBpbGVy IGZyb20KKysgICAgICAgICAgICAjIGV4cGxpY2l0bHkgbGlua2luZyBzeXN0ZW0gb2JqZWN0IGZp bGVzIHNvIHdlIG5lZWQgdG8gc3RyaXAgdGhlbQorKyAgICAgICAgICAgICMgZnJvbSB0aGUgb3V0 cHV0IHNvIHRoYXQgdGhleSBkb24ndCBnZXQgaW5jbHVkZWQgaW4gdGhlIGxpYnJhcnkKKysgICAg ICAgICAgICAjIGRlcGVuZGVuY2llcy4KKysgICAgICAgICAgICBvdXRwdXRfdmVyYm9zZV9saW5r X2NtZD0ndGVtcGxpc3Q9YCgkQ0MgLWIgJENGTEFHUyAtdiBjb25mdGVzdC4kb2JqZXh0IDI+JjEp IHwgJEVHUkVQICJcLUwiYDsgbGlzdD0iIjsgZm9yIHogaW4gJHRlbXBsaXN0OyBkbyBjYXNlICR6 IGluIGNvbmZ0ZXN0LiRvYmpleHQpIGxpc3Q9IiRsaXN0ICR6Ijs7ICouJG9iamV4dCk7OyAqKSBs aXN0PSIkbGlzdCAkeiI7O2VzYWM7IGRvbmU7ICRFQ0hPICJYJGxpc3QiIHwgJFhzZWQnCisrICAg ICAgICAgICAgOzsKKysgICAgICAgICAgKikKKysgICAgICAgICAgICBpZiB0ZXN0ICIkR1hYIiA9 IHllczsgdGhlbgorKyAgICAgICAgICAgICAgYXJjaGl2ZV9jbWRzX0NYWD0nJFJNICRvdXRwdXRf b2JqZGlyLyRzb25hbWV+JENDIC1zaGFyZWQgLW5vc3RkbGliIC1mUElDICR7d2x9K2IgJHt3bH0k aW5zdGFsbF9saWJkaXIgLW8gJG91dHB1dF9vYmpkaXIvJHNvbmFtZSAkcHJlZGVwX29iamVjdHMg JGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3N+dGVzdCAk b3V0cHV0X29iamRpci8kc29uYW1lID0gJGxpYiB8fCBtdiAkb3V0cHV0X29iamRpci8kc29uYW1l ICRsaWInCisrICAgICAgICAgICAgZWxzZQorKyAgICAgICAgICAgICAgIyBGSVhNRTogaW5zZXJ0 IHByb3BlciBDKysgbGlicmFyeSBzdXBwb3J0CisrICAgICAgICAgICAgICBsZF9zaGxpYnNfQ1hY PW5vCisrICAgICAgICAgICAgZmkKKysgICAgICAgICAgICA7OworKyAgICAgICAgZXNhYworKyAg ICAgICAgOzsKKysKKysgICAgICBocHV4MTAqfGhwdXgxMSopCisrICAgICAgICBpZiB0ZXN0ICR3 aXRoX2dudV9sZCA9IG5vOyB0aGVuCisrCSAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19DWFg9 JyR7d2x9K2IgJHt3bH0kbGliZGlyJworKwkgIGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3JfQ1hY PToKKysKKysgICAgICAgICAgY2FzZSAkaG9zdF9jcHUgaW4KKysgICAgICAgICAgICBocHBhKjY0 KnxpYTY0KikKKysgICAgICAgICAgICAgIDs7CisrICAgICAgICAgICAgKikKKysJICAgICAgZXhw b3J0X2R5bmFtaWNfZmxhZ19zcGVjX0NYWD0nJHt3bH0tRScKKysgICAgICAgICAgICAgIDs7Cisr ICAgICAgICAgIGVzYWMKKysgICAgICAgIGZpCisrICAgICAgICBjYXNlICRob3N0X2NwdSBpbgor KyAgICAgICAgICBocHBhKjY0KnxpYTY0KikKKysgICAgICAgICAgICBoYXJkY29kZV9kaXJlY3Rf Q1hYPW5vCisrICAgICAgICAgICAgaGFyZGNvZGVfc2hsaWJwYXRoX3Zhcl9DWFg9bm8KKysgICAg ICAgICAgICA7OworKyAgICAgICAgICAqKQorKyAgICAgICAgICAgIGhhcmRjb2RlX2RpcmVjdF9D WFg9eWVzCisrICAgICAgICAgICAgaGFyZGNvZGVfZGlyZWN0X2Fic29sdXRlX0NYWD15ZXMKKysg ICAgICAgICAgICBoYXJkY29kZV9taW51c19MX0NYWD15ZXMgIyBOb3QgaW4gdGhlIHNlYXJjaCBQ QVRILAorKwkJCQkJICAgICAgICAgIyBidXQgYXMgdGhlIGRlZmF1bHQKKysJCQkJCSAgICAgICAg ICMgbG9jYXRpb24gb2YgdGhlIGxpYnJhcnkuCisrICAgICAgICAgICAgOzsKKysgICAgICAgIGVz YWMKKysKKysgICAgICAgIGNhc2UgJGNjX2Jhc2VuYW1lIGluCisrICAgICAgICAgIENDKikKKysJ ICAgICMgRklYTUU6IGluc2VydCBwcm9wZXIgQysrIGxpYnJhcnkgc3VwcG9ydAorKwkgICAgbGRf c2hsaWJzX0NYWD1ubworKwkgICAgOzsKKysgICAgICAgICAgYUNDKikKKysJICAgIGNhc2UgJGhv c3RfY3B1IGluCisrCSAgICAgIGhwcGEqNjQqKQorKwkgICAgICAgIGFyY2hpdmVfY21kc19DWFg9 JyRDQyAtYiAke3dsfStoICR7d2x9JHNvbmFtZSAtbyAkbGliICRwcmVkZXBfb2JqZWN0cyAkbGli b2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncycKKysJICAgICAg ICA7OworKwkgICAgICBpYTY0KikKKysJICAgICAgICBhcmNoaXZlX2NtZHNfQ1hYPSckQ0MgLWIg JHt3bH0raCAke3dsfSRzb25hbWUgJHt3bH0rbm9kZWZhdWx0cnBhdGggLW8gJGxpYiAkcHJlZGVw X29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxh Z3MnCisrCSAgICAgICAgOzsKKysJICAgICAgKikKKysJICAgICAgICBhcmNoaXZlX2NtZHNfQ1hY PSckQ0MgLWIgJHt3bH0raCAke3dsfSRzb25hbWUgJHt3bH0rYiAke3dsfSRpbnN0YWxsX2xpYmRp ciAtbyAkbGliICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmpl Y3RzICRjb21waWxlcl9mbGFncycKKysJICAgICAgICA7OworKwkgICAgZXNhYworKwkgICAgIyBD b21tYW5kcyB0byBtYWtlIGNvbXBpbGVyIHByb2R1Y2UgdmVyYm9zZSBvdXRwdXQgdGhhdCBsaXN0 cworKwkgICAgIyB3aGF0ICJoaWRkZW4iIGxpYnJhcmllcywgb2JqZWN0IGZpbGVzIGFuZCBmbGFn cyBhcmUgdXNlZCB3aGVuCisrCSAgICAjIGxpbmtpbmcgYSBzaGFyZWQgbGlicmFyeS4KKysJICAg ICMKKysJICAgICMgVGhlcmUgZG9lc24ndCBhcHBlYXIgdG8gYmUgYSB3YXkgdG8gcHJldmVudCB0 aGlzIGNvbXBpbGVyIGZyb20KKysJICAgICMgZXhwbGljaXRseSBsaW5raW5nIHN5c3RlbSBvYmpl Y3QgZmlsZXMgc28gd2UgbmVlZCB0byBzdHJpcCB0aGVtCisrCSAgICAjIGZyb20gdGhlIG91dHB1 dCBzbyB0aGF0IHRoZXkgZG9uJ3QgZ2V0IGluY2x1ZGVkIGluIHRoZSBsaWJyYXJ5CisrCSAgICAj IGRlcGVuZGVuY2llcy4KKysJICAgIG91dHB1dF92ZXJib3NlX2xpbmtfY21kPSd0ZW1wbGlzdD1g KCRDQyAtYiAkQ0ZMQUdTIC12IGNvbmZ0ZXN0LiRvYmpleHQgMj4mMSkgfCAkR1JFUCAiXC1MImA7 IGxpc3Q9IiI7IGZvciB6IGluICR0ZW1wbGlzdDsgZG8gY2FzZSAkeiBpbiBjb25mdGVzdC4kb2Jq ZXh0KSBsaXN0PSIkbGlzdCAkeiI7OyAqLiRvYmpleHQpOzsgKikgbGlzdD0iJGxpc3QgJHoiOztl c2FjOyBkb25lOyAkRUNITyAiWCRsaXN0IiB8ICRYc2VkJworKwkgICAgOzsKKysgICAgICAgICAg KikKKysJICAgIGlmIHRlc3QgIiRHWFgiID0geWVzOyB0aGVuCisrCSAgICAgIGlmIHRlc3QgJHdp dGhfZ251X2xkID0gbm87IHRoZW4KKysJICAgICAgICBjYXNlICRob3N0X2NwdSBpbgorKwkgICAg ICAgICAgaHBwYSo2NCopCisrCSAgICAgICAgICAgIGFyY2hpdmVfY21kc19DWFg9JyRDQyAtc2hh cmVkIC1ub3N0ZGxpYiAtZlBJQyAke3dsfStoICR7d2x9JHNvbmFtZSAtbyAkbGliICRwcmVkZXBf b2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFn cycKKysJICAgICAgICAgICAgOzsKKysJICAgICAgICAgIGlhNjQqKQorKwkgICAgICAgICAgICBh cmNoaXZlX2NtZHNfQ1hYPSckQ0MgLXNoYXJlZCAtbm9zdGRsaWIgLWZQSUMgJHt3bH0raCAke3ds fSRzb25hbWUgJHt3bH0rbm9kZWZhdWx0cnBhdGggLW8gJGxpYiAkcHJlZGVwX29iamVjdHMgJGxp Ym9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MnCisrCSAgICAg ICAgICAgIDs7CisrCSAgICAgICAgICAqKQorKwkgICAgICAgICAgICBhcmNoaXZlX2NtZHNfQ1hY PSckQ0MgLXNoYXJlZCAtbm9zdGRsaWIgLWZQSUMgJHt3bH0raCAke3dsfSRzb25hbWUgJHt3bH0r YiAke3dsfSRpbnN0YWxsX2xpYmRpciAtbyAkbGliICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAk ZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncycKKysJICAgICAgICAgICAg OzsKKysJICAgICAgICBlc2FjCisrCSAgICAgIGZpCisrCSAgICBlbHNlCisrCSAgICAgICMgRklY TUU6IGluc2VydCBwcm9wZXIgQysrIGxpYnJhcnkgc3VwcG9ydAorKwkgICAgICBsZF9zaGxpYnNf Q1hYPW5vCisrCSAgICBmaQorKwkgICAgOzsKKysgICAgICAgIGVzYWMKKysgICAgICAgIDs7Cisr CisrICAgICAgaW50ZXJpeFszLTldKikKKysJaGFyZGNvZGVfZGlyZWN0X0NYWD1ubworKwloYXJk Y29kZV9zaGxpYnBhdGhfdmFyX0NYWD1ubworKwloYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX0NY WD0nJHt3bH0tcnBhdGgsJGxpYmRpcicKKysJZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjX0NYWD0n JHt3bH0tRScKKysJIyBIYWNrOiBPbiBJbnRlcml4IDMueCwgd2UgY2Fubm90IGNvbXBpbGUgUElD IGJlY2F1c2Ugb2YgYSBicm9rZW4gZ2NjLgorKwkjIEluc3RlYWQsIHNoYXJlZCBsaWJyYXJpZXMg YXJlIGxvYWRlZCBhdCBhbiBpbWFnZSBiYXNlICgweDEwMDAwMDAwIGJ5CisrCSMgZGVmYXVsdCkg YW5kIHJlbG9jYXRlZCBpZiB0aGV5IGNvbmZsaWN0LCB3aGljaCBpcyBhIHNsb3cgdmVyeSBtZW1v cnkKKysJIyBjb25zdW1pbmcgYW5kIGZyYWdtZW50aW5nIHByb2Nlc3MuICBUbyBhdm9pZCB0aGlz LCB3ZSBwaWNrIGEgcmFuZG9tLAorKwkjIDI1NiBLaUItYWxpZ25lZCBpbWFnZSBiYXNlIGJldHdl ZW4gMHg1MDAwMDAwMCBhbmQgMHg2RkZDMDAwMCBhdCBsaW5rCisrCSMgdGltZS4gIE1vdmluZyB1 cCBmcm9tIDB4MTAwMDAwMDAgYWxzbyBhbGxvd3MgbW9yZSBzYnJrKDIpIHNwYWNlLgorKwlhcmNo aXZlX2NtZHNfQ1hYPSckQ0MgLXNoYXJlZCAkcGljX2ZsYWcgJGxpYm9ianMgJGRlcGxpYnMgJGNv bXBpbGVyX2ZsYWdzICR7d2x9LWgsJHNvbmFtZSAke3dsfS0taW1hZ2UtYmFzZSxgZXhwciAke1JB TkRPTS0kJH0gJSA0MDk2IC8gMiBcKiAyNjIxNDQgKyAxMzQyMTc3MjgwYCAtbyAkbGliJworKwlh cmNoaXZlX2V4cHN5bV9jbWRzX0NYWD0nc2VkICJzLF4sXywiICRleHBvcnRfc3ltYm9scyA+JG91 dHB1dF9vYmpkaXIvJHNvbmFtZS5leHBzeW1+JENDIC1zaGFyZWQgJHBpY19mbGFnICRsaWJvYmpz ICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1oLCRzb25hbWUgJHt3bH0tLXJldGFpbi1z eW1ib2xzLWZpbGUsJG91dHB1dF9vYmpkaXIvJHNvbmFtZS5leHBzeW0gJHt3bH0tLWltYWdlLWJh c2UsYGV4cHIgJHtSQU5ET00tJCR9ICUgNDA5NiAvIDIgXCogMjYyMTQ0ICsgMTM0MjE3NzI4MGAg LW8gJGxpYicKKysJOzsKKysgICAgICBpcml4NSogfCBpcml4NiopCisrICAgICAgICBjYXNlICRj Y19iYXNlbmFtZSBpbgorKyAgICAgICAgICBDQyopCisrCSAgICAjIFNHSSBDKysKKysJICAgIGFy Y2hpdmVfY21kc19DWFg9JyRDQyAtc2hhcmVkIC1hbGwgLW11bHRpZ290ICRwcmVkZXBfb2JqZWN0 cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAtc29u YW1lICRzb25hbWUgYHRlc3QgLW4gIiR2ZXJzdHJpbmciICYmICRFQ0hPICJYLXNldF92ZXJzaW9u ICR2ZXJzdHJpbmciIHwgJFhzZWRgIC11cGRhdGVfcmVnaXN0cnkgJHtvdXRwdXRfb2JqZGlyfS9z b19sb2NhdGlvbnMgLW8gJGxpYicKKysKKysJICAgICMgQXJjaGl2ZXMgY29udGFpbmluZyBDKysg b2JqZWN0IGZpbGVzIG11c3QgYmUgY3JlYXRlZCB1c2luZworKwkgICAgIyAiQ0MgLWFyIiwgd2hl cmUgIkNDIiBpcyB0aGUgSVJJWCBDKysgY29tcGlsZXIuICBUaGlzIGlzCisrCSAgICAjIG5lY2Vz c2FyeSB0byBtYWtlIHN1cmUgaW5zdGFudGlhdGVkIHRlbXBsYXRlcyBhcmUgaW5jbHVkZWQKKysJ ICAgICMgaW4gdGhlIGFyY2hpdmUuCisrCSAgICBvbGRfYXJjaGl2ZV9jbWRzX0NYWD0nJENDIC1h ciAtV1IsLXUgLW8gJG9sZGxpYiAkb2xkb2JqcycKKysJICAgIDs7CisrICAgICAgICAgICopCisr CSAgICBpZiB0ZXN0ICIkR1hYIiA9IHllczsgdGhlbgorKwkgICAgICBpZiB0ZXN0ICIkd2l0aF9n bnVfbGQiID0gbm87IHRoZW4KKysJICAgICAgICBhcmNoaXZlX2NtZHNfQ1hYPSckQ0MgLXNoYXJl ZCAtbm9zdGRsaWIgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29i amVjdHMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAke3dsfSRzb25hbWUgYHRlc3QgLW4g IiR2ZXJzdHJpbmciICYmICRFQ0hPICJYJHt3bH0tc2V0X3ZlcnNpb24gJHt3bH0kdmVyc3RyaW5n IiB8ICRYc2VkYCAke3dsfS11cGRhdGVfcmVnaXN0cnkgJHt3bH0ke291dHB1dF9vYmpkaXJ9L3Nv X2xvY2F0aW9ucyAtbyAkbGliJworKwkgICAgICBlbHNlCisrCSAgICAgICAgYXJjaGl2ZV9jbWRz X0NYWD0nJENDIC1zaGFyZWQgLW5vc3RkbGliICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVw bGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHt3bH0k c29uYW1lIGB0ZXN0IC1uICIkdmVyc3RyaW5nIiAmJiAkRUNITyAiWCR7d2x9LXNldF92ZXJzaW9u ICR7d2x9JHZlcnN0cmluZyIgfCAkWHNlZGAgLW8gJGxpYicKKysJICAgICAgZmkKKysJICAgIGZp CisrCSAgICBsaW5rX2FsbF9kZXBsaWJzX0NYWD15ZXMKKysJICAgIDs7CisrICAgICAgICBlc2Fj CisrICAgICAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX0NYWD0nJHt3bH0tcnBhdGggJHt3 bH0kbGliZGlyJworKyAgICAgICAgaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvcl9DWFg9OgorKyAg ICAgICAgaW5oZXJpdF9ycGF0aF9DWFg9eWVzCisrICAgICAgICA7OworKworKyAgICAgIGxpbnV4 KiB8IGsqYnNkKi1nbnUpCisrICAgICAgICBjYXNlICRjY19iYXNlbmFtZSBpbgorKyAgICAgICAg ICBLQ0MqKQorKwkgICAgIyBLdWNrIGFuZCBBc3NvY2lhdGVzLCBJbmMuIChLQUkpIEMrKyBDb21w aWxlcgorKworKwkgICAgIyBLQ0Mgd2lsbCBvbmx5IGNyZWF0ZSBhIHNoYXJlZCBsaWJyYXJ5IGlm IHRoZSBvdXRwdXQgZmlsZQorKwkgICAgIyBlbmRzIHdpdGggIi5zbyIgKG9yICIuc2wiIGZvciBI UC1VWCksIHNvIHJlbmFtZSB0aGUgbGlicmFyeQorKwkgICAgIyB0byBpdHMgcHJvcGVyIG5hbWUg KHdpdGggdmVyc2lvbikgYWZ0ZXIgbGlua2luZy4KKysJICAgIGFyY2hpdmVfY21kc19DWFg9J3Rl bXBleHQ9YGVjaG8gJHNoYXJlZF9leHQgfCAkU0VEIC1lICdcJydzL1woW14oKTAtOUEtWmEtent9 XVwpL1xcXFxcMS9nJ1wnJ2A7IHRlbXBsaWI9YGVjaG8gJGxpYiB8ICRTRUQgLWUgInMvXCR7dGVt cGV4dH1cLi4qLy5zby8iYDsgJENDICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAk cG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAtLXNvbmFtZSAkc29uYW1lIC1vIFwkdGVt cGxpYjsgbXYgXCR0ZW1wbGliICRsaWInCisrCSAgICBhcmNoaXZlX2V4cHN5bV9jbWRzX0NYWD0n dGVtcGV4dD1gZWNobyAkc2hhcmVkX2V4dCB8ICRTRUQgLWUgJ1wnJ3MvXChbXigpMC05QS1aYS16 e31dXCkvXFxcXFwxL2cnXCcnYDsgdGVtcGxpYj1gZWNobyAkbGliIHwgJFNFRCAtZSAicy9cJHt0 ZW1wZXh0fVwuLiovLnNvLyJgOyAkQ0MgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJz ICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzIC0tc29uYW1lICRzb25hbWUgLW8gXCR0 ZW1wbGliICR7d2x9LXJldGFpbi1zeW1ib2xzLWZpbGUsJGV4cG9ydF9zeW1ib2xzOyBtdiBcJHRl bXBsaWIgJGxpYicKKysJICAgICMgQ29tbWFuZHMgdG8gbWFrZSBjb21waWxlciBwcm9kdWNlIHZl cmJvc2Ugb3V0cHV0IHRoYXQgbGlzdHMKKysJICAgICMgd2hhdCAiaGlkZGVuIiBsaWJyYXJpZXMs IG9iamVjdCBmaWxlcyBhbmQgZmxhZ3MgYXJlIHVzZWQgd2hlbgorKwkgICAgIyBsaW5raW5nIGEg c2hhcmVkIGxpYnJhcnkuCisrCSAgICAjCisrCSAgICAjIFRoZXJlIGRvZXNuJ3QgYXBwZWFyIHRv IGJlIGEgd2F5IHRvIHByZXZlbnQgdGhpcyBjb21waWxlciBmcm9tCisrCSAgICAjIGV4cGxpY2l0 bHkgbGlua2luZyBzeXN0ZW0gb2JqZWN0IGZpbGVzIHNvIHdlIG5lZWQgdG8gc3RyaXAgdGhlbQor KwkgICAgIyBmcm9tIHRoZSBvdXRwdXQgc28gdGhhdCB0aGV5IGRvbid0IGdldCBpbmNsdWRlZCBp biB0aGUgbGlicmFyeQorKwkgICAgIyBkZXBlbmRlbmNpZXMuCisrCSAgICBvdXRwdXRfdmVyYm9z ZV9saW5rX2NtZD0ndGVtcGxpc3Q9YCRDQyAkQ0ZMQUdTIC12IGNvbmZ0ZXN0LiRvYmpleHQgLW8g bGliY29uZnRlc3Qkc2hhcmVkX2V4dCAyPiYxIHwgJEdSRVAgImxkImA7IHJtIC1mIGxpYmNvbmZ0 ZXN0JHNoYXJlZF9leHQ7IGxpc3Q9IiI7IGZvciB6IGluICR0ZW1wbGlzdDsgZG8gY2FzZSAkeiBp biBjb25mdGVzdC4kb2JqZXh0KSBsaXN0PSIkbGlzdCAkeiI7OyAqLiRvYmpleHQpOzsgKikgbGlz dD0iJGxpc3QgJHoiOztlc2FjOyBkb25lOyAkRUNITyAiWCRsaXN0IiB8ICRYc2VkJworKworKwkg ICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19DWFg9JyR7d2x9LXJwYXRoLCRsaWJkaXInCisr CSAgICBleHBvcnRfZHluYW1pY19mbGFnX3NwZWNfQ1hYPScke3dsfS0tZXhwb3J0LWR5bmFtaWMn CisrCisrCSAgICAjIEFyY2hpdmVzIGNvbnRhaW5pbmcgQysrIG9iamVjdCBmaWxlcyBtdXN0IGJl IGNyZWF0ZWQgdXNpbmcKKysJICAgICMgIkNDIC1Cc3RhdGljIiwgd2hlcmUgIkNDIiBpcyB0aGUg S0FJIEMrKyBjb21waWxlci4KKysJICAgIG9sZF9hcmNoaXZlX2NtZHNfQ1hYPSckQ0MgLUJzdGF0 aWMgLW8gJG9sZGxpYiAkb2xkb2JqcycKKysJICAgIDs7CisrCSAgaWNwYyogfCBlY3BjKiApCisr CSAgICAjIEludGVsIEMrKworKwkgICAgd2l0aF9nbnVfbGQ9eWVzCisrCSAgICAjIHZlcnNpb24g OC4wIGFuZCBhYm92ZSBvZiBpY3BjIGNob2tlIG9uIG11bHRpcGx5IGRlZmluZWQgc3ltYm9scwor KwkgICAgIyBpZiB3ZSBhZGQgJHByZWRlcF9vYmplY3RzIGFuZCAkcG9zdGRlcF9vYmplY3RzLCBo b3dldmVyIDcuMSBhbmQKKysJICAgICMgZWFybGllciBkbyBub3QgYWRkIHRoZSBvYmplY3RzIHRo ZW1zZWx2ZXMuCisrCSAgICBjYXNlIGAkQ0MgLVYgMj4mMWAgaW4KKysJICAgICAgKiJWZXJzaW9u IDcuIiopCisrCSAgICAgICAgYXJjaGl2ZV9jbWRzX0NYWD0nJENDIC1zaGFyZWQgJHByZWRlcF9v YmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdz ICR7d2x9LXNvbmFtZSAkd2wkc29uYW1lIC1vICRsaWInCisrCQlhcmNoaXZlX2V4cHN5bV9jbWRz X0NYWD0nJENDIC1zaGFyZWQgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0 ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAkd2wkc29uYW1lICR7d2x9 LXJldGFpbi1zeW1ib2xzLWZpbGUgJHdsJGV4cG9ydF9zeW1ib2xzIC1vICRsaWInCisrCQk7Owor KwkgICAgICAqKSAgIyBWZXJzaW9uIDguMCBvciBuZXdlcgorKwkgICAgICAgIHRtcF9pZHluPQor KwkgICAgICAgIGNhc2UgJGhvc3RfY3B1IGluCisrCQkgIGlhNjQqKSB0bXBfaWR5bj0nIC1pX2R5 bmFtaWMnOzsKKysJCWVzYWMKKysJICAgICAgICBhcmNoaXZlX2NtZHNfQ1hYPSckQ0MgLXNoYXJl ZCciJHRtcF9pZHluIicgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNv bmFtZSAkd2wkc29uYW1lIC1vICRsaWInCisrCQlhcmNoaXZlX2V4cHN5bV9jbWRzX0NYWD0nJEND IC1zaGFyZWQnIiR0bXBfaWR5biInICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAk e3dsfS1zb25hbWUgJHdsJHNvbmFtZSAke3dsfS1yZXRhaW4tc3ltYm9scy1maWxlICR3bCRleHBv cnRfc3ltYm9scyAtbyAkbGliJworKwkJOzsKKysJICAgIGVzYWMKKysJICAgIGFyY2hpdmVfY21k c19uZWVkX2xjX0NYWD1ubworKwkgICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19DWFg9JyR7 d2x9LXJwYXRoLCRsaWJkaXInCisrCSAgICBleHBvcnRfZHluYW1pY19mbGFnX3NwZWNfQ1hYPSck e3dsfS0tZXhwb3J0LWR5bmFtaWMnCisrCSAgICB3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlY19DWFg9 JyR7d2x9LS13aG9sZS1hcmNoaXZlJGNvbnZlbmllbmNlICR7d2x9LS1uby13aG9sZS1hcmNoaXZl JworKwkgICAgOzsKKysgICAgICAgICAgcGdDQyogfCBwZ2NwcCopCisrICAgICAgICAgICAgIyBQ b3J0bGFuZCBHcm91cCBDKysgY29tcGlsZXIKKysJICAgIGNhc2UgYCRDQyAtVmAgaW4KKysJICAg ICpwZ0NDXCBbMS01XSogfCAqcGdjcHBcIFsxLTVdKikKKysJICAgICAgcHJlbGlua19jbWRzX0NY WD0ndHBsZGlyPVRlbXBsYXRlLmRpcn4KKysJCXJtIC1yZiAkdHBsZGlyfgorKwkJJENDIC0tcHJl bGlua19vYmplY3RzIC0taW5zdGFudGlhdGlvbl9kaXIgJHRwbGRpciAkb2JqcyAkbGlib2JqcyAk Y29tcGlsZV9kZXBsaWJzfgorKwkJY29tcGlsZV9jb21tYW5kPSIkY29tcGlsZV9jb21tYW5kIGBm aW5kICR0cGxkaXIgLW5hbWUgXCoubyB8ICROTDJTUGAiJworKwkgICAgICBvbGRfYXJjaGl2ZV9j bWRzX0NYWD0ndHBsZGlyPVRlbXBsYXRlLmRpcn4KKysJCXJtIC1yZiAkdHBsZGlyfgorKwkJJEND IC0tcHJlbGlua19vYmplY3RzIC0taW5zdGFudGlhdGlvbl9kaXIgJHRwbGRpciAkb2xkb2JqcyRv bGRfZGVwbGlic34KKysJCSRBUiAkQVJfRkxBR1MgJG9sZGxpYiRvbGRvYmpzJG9sZF9kZXBsaWJz IGBmaW5kICR0cGxkaXIgLW5hbWUgXCoubyB8ICROTDJTUGB+CisrCQkkUkFOTElCICRvbGRsaWIn CisrCSAgICAgIGFyY2hpdmVfY21kc19DWFg9J3RwbGRpcj1UZW1wbGF0ZS5kaXJ+CisrCQlybSAt cmYgJHRwbGRpcn4KKysJCSRDQyAtLXByZWxpbmtfb2JqZWN0cyAtLWluc3RhbnRpYXRpb25fZGly ICR0cGxkaXIgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRjb252ZW5pZW5jZSAk cG9zdGRlcF9vYmplY3RzfgorKwkJJENDIC1zaGFyZWQgJHBpY19mbGFnICRwcmVkZXBfb2JqZWN0 cyAkbGlib2JqcyAkZGVwbGlicyBgZmluZCAkdHBsZGlyIC1uYW1lIFwqLm8gfCAkTkwyU1BgICRw b3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAke3dsfSRzb25hbWUg LW8gJGxpYicKKysJICAgICAgYXJjaGl2ZV9leHBzeW1fY21kc19DWFg9J3RwbGRpcj1UZW1wbGF0 ZS5kaXJ+CisrCQlybSAtcmYgJHRwbGRpcn4KKysJCSRDQyAtLXByZWxpbmtfb2JqZWN0cyAtLWlu c3RhbnRpYXRpb25fZGlyICR0cGxkaXIgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJz ICRjb252ZW5pZW5jZSAkcG9zdGRlcF9vYmplY3RzfgorKwkJJENDIC1zaGFyZWQgJHBpY19mbGFn ICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyBgZmluZCAkdHBsZGlyIC1uYW1lIFwq Lm8gfCAkTkwyU1BgICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFt ZSAke3dsfSRzb25hbWUgJHt3bH0tcmV0YWluLXN5bWJvbHMtZmlsZSAke3dsfSRleHBvcnRfc3lt Ym9scyAtbyAkbGliJworKwkgICAgICA7OworKwkgICAgKikgIyBWZXJzaW9uIDYgd2lsbCB1c2Ug d2VhayBzeW1ib2xzCisrCSAgICAgIGFyY2hpdmVfY21kc19DWFg9JyRDQyAtc2hhcmVkICRwaWNf ZmxhZyAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAk Y29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR7d2x9JHNvbmFtZSAtbyAkbGliJworKwkgICAg ICBhcmNoaXZlX2V4cHN5bV9jbWRzX0NYWD0nJENDIC1zaGFyZWQgJHBpY19mbGFnICRwcmVkZXBf b2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFn cyAke3dsfS1zb25hbWUgJHt3bH0kc29uYW1lICR7d2x9LXJldGFpbi1zeW1ib2xzLWZpbGUgJHt3 bH0kZXhwb3J0X3N5bWJvbHMgLW8gJGxpYicKKysJICAgICAgOzsKKysJICAgIGVzYWMKKysKKysJ ICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfQ1hYPScke3dsfS0tcnBhdGggJHt3bH0kbGli ZGlyJworKwkgICAgZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjX0NYWD0nJHt3bH0tLWV4cG9ydC1k eW5hbWljJworKwkgICAgd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWNfQ1hYPScke3dsfS0td2hvbGUt YXJjaGl2ZWBmb3IgY29udiBpbiAkY29udmVuaWVuY2VcIlwiOyBkbyB0ZXN0ICAtbiBcIiRjb252 XCIgJiYgbmV3X2NvbnZlbmllbmNlPVwiJG5ld19jb252ZW5pZW5jZSwkY29udlwiOyBkb25lOyAk RUNITyBcIiRuZXdfY29udmVuaWVuY2VcImAgJHt3bH0tLW5vLXdob2xlLWFyY2hpdmUnCisrICAg ICAgICAgICAgOzsKKysJICBjeHgqKQorKwkgICAgIyBDb21wYXEgQysrCisrCSAgICBhcmNoaXZl X2NtZHNfQ1hYPSckQ0MgLXNoYXJlZCAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMg JHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR3bCRzb25hbWUg LW8gJGxpYicKKysJICAgIGFyY2hpdmVfZXhwc3ltX2NtZHNfQ1hYPSckQ0MgLXNoYXJlZCAkcHJl ZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJf ZmxhZ3MgJHt3bH0tc29uYW1lICR3bCRzb25hbWUgIC1vICRsaWIgJHt3bH0tcmV0YWluLXN5bWJv bHMtZmlsZSAkd2wkZXhwb3J0X3N5bWJvbHMnCisrCisrCSAgICBydW5wYXRoX3Zhcj1MRF9SVU5f UEFUSAorKwkgICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19DWFg9Jy1ycGF0aCAkbGliZGly JworKwkgICAgaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvcl9DWFg9OgorKworKwkgICAgIyBDb21t YW5kcyB0byBtYWtlIGNvbXBpbGVyIHByb2R1Y2UgdmVyYm9zZSBvdXRwdXQgdGhhdCBsaXN0cwor KwkgICAgIyB3aGF0ICJoaWRkZW4iIGxpYnJhcmllcywgb2JqZWN0IGZpbGVzIGFuZCBmbGFncyBh cmUgdXNlZCB3aGVuCisrCSAgICAjIGxpbmtpbmcgYSBzaGFyZWQgbGlicmFyeS4KKysJICAgICMK KysJICAgICMgVGhlcmUgZG9lc24ndCBhcHBlYXIgdG8gYmUgYSB3YXkgdG8gcHJldmVudCB0aGlz IGNvbXBpbGVyIGZyb20KKysJICAgICMgZXhwbGljaXRseSBsaW5raW5nIHN5c3RlbSBvYmplY3Qg ZmlsZXMgc28gd2UgbmVlZCB0byBzdHJpcCB0aGVtCisrCSAgICAjIGZyb20gdGhlIG91dHB1dCBz byB0aGF0IHRoZXkgZG9uJ3QgZ2V0IGluY2x1ZGVkIGluIHRoZSBsaWJyYXJ5CisrCSAgICAjIGRl cGVuZGVuY2llcy4KKysJICAgIG91dHB1dF92ZXJib3NlX2xpbmtfY21kPSd0ZW1wbGlzdD1gJEND IC1zaGFyZWQgJENGTEFHUyAtdiBjb25mdGVzdC4kb2JqZXh0IDI+JjEgfCAkR1JFUCAibGQiYDsg dGVtcGxpc3Q9YCRFQ0hPICJYJHRlbXBsaXN0IiB8ICRYc2VkIC1lICJzL1woXi4qbGQuKlwpXCgg LipsZCAuKiRcKS9cMS8iYDsgbGlzdD0iIjsgZm9yIHogaW4gJHRlbXBsaXN0OyBkbyBjYXNlICR6 IGluIGNvbmZ0ZXN0LiRvYmpleHQpIGxpc3Q9IiRsaXN0ICR6Ijs7ICouJG9iamV4dCk7OyAqKSBs aXN0PSIkbGlzdCAkeiI7O2VzYWM7IGRvbmU7ICRFQ0hPICJYJGxpc3QiIHwgJFhzZWQnCisrCSAg ICA7OworKwkgIHhsKikKKysJICAgICMgSUJNIFhMIDguMCBvbiBQUEMsIHdpdGggR05VIGxkCisr CSAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX0NYWD0nJHt3bH0tcnBhdGggJHt3bH0kbGli ZGlyJworKwkgICAgZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjX0NYWD0nJHt3bH0tLWV4cG9ydC1k eW5hbWljJworKwkgICAgYXJjaGl2ZV9jbWRzX0NYWD0nJENDIC1xbWtzaHJvYmogJGxpYm9ianMg JGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAkd2wkc29uYW1lIC1vICRsaWIn CisrCSAgICBpZiB0ZXN0ICJ4JHN1cHBvcnRzX2Fub25fdmVyc2lvbmluZyIgPSB4eWVzOyB0aGVu CisrCSAgICAgIGFyY2hpdmVfZXhwc3ltX2NtZHNfQ1hYPSdlY2hvICJ7IGdsb2JhbDoiID4gJG91 dHB1dF9vYmpkaXIvJGxpYm5hbWUudmVyfgorKwkJY2F0ICRleHBvcnRfc3ltYm9scyB8IHNlZCAt ZSAicy9cKC4qXCkvXDE7LyIgPj4gJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUudmVyfgorKwkJZWNo byAibG9jYWw6ICo7IH07IiA+PiAkb3V0cHV0X29iamRpci8kbGlibmFtZS52ZXJ+CisrCQkkQ0Mg LXFta3Nocm9iaiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1l ICR3bCRzb25hbWUgJHt3bH0tdmVyc2lvbi1zY3JpcHQgJHt3bH0kb3V0cHV0X29iamRpci8kbGli bmFtZS52ZXIgLW8gJGxpYicKKysJICAgIGZpCisrCSAgICA7OworKwkgICopCisrCSAgICBjYXNl IGAkQ0MgLVYgMj4mMSB8IHNlZCA1cWAgaW4KKysJICAgICpTdW5cIEMqKQorKwkgICAgICAjIFN1 biBDKysgNS45CisrCSAgICAgIG5vX3VuZGVmaW5lZF9mbGFnX0NYWD0nIC16ZGVmcycKKysJICAg ICAgYXJjaGl2ZV9jbWRzX0NYWD0nJENDIC1HJHthbGxvd191bmRlZmluZWRfZmxhZ30gLWgkc29u YW1lIC1vICRsaWIgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29i amVjdHMgJGNvbXBpbGVyX2ZsYWdzJworKwkgICAgICBhcmNoaXZlX2V4cHN5bV9jbWRzX0NYWD0n JENDIC1HJHthbGxvd191bmRlZmluZWRfZmxhZ30gLWgkc29uYW1lIC1vICRsaWIgJHByZWRlcF9v YmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdz ICR7d2x9LXJldGFpbi1zeW1ib2xzLWZpbGUgJHt3bH0kZXhwb3J0X3N5bWJvbHMnCisrCSAgICAg IGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfQ1hYPSctUiRsaWJkaXInCisrCSAgICAgIHdob2xl X2FyY2hpdmVfZmxhZ19zcGVjX0NYWD0nJHt3bH0tLXdob2xlLWFyY2hpdmVgbmV3X2NvbnZlbmll bmNlPTsgZm9yIGNvbnYgaW4gJGNvbnZlbmllbmNlXCJcIjsgZG8gdGVzdCAteiBcIiRjb252XCIg fHwgbmV3X2NvbnZlbmllbmNlPVwiJG5ld19jb252ZW5pZW5jZSwkY29udlwiOyBkb25lOyAkRUNI TyBcIiRuZXdfY29udmVuaWVuY2VcImAgJHt3bH0tLW5vLXdob2xlLWFyY2hpdmUnCisrCSAgICAg IGNvbXBpbGVyX25lZWRzX29iamVjdF9DWFg9eWVzCisrCisrCSAgICAgICMgTm90IHN1cmUgd2hl dGhlciBzb21ldGhpbmcgYmFzZWQgb24KKysJICAgICAgIyAkQ0MgJENGTEFHUyAtdiBjb25mdGVz dC4kb2JqZXh0IC1vIGxpYmNvbmZ0ZXN0JHNoYXJlZF9leHQgMj4mMQorKwkgICAgICAjIHdvdWxk IGJlIGJldHRlci4KKysJICAgICAgb3V0cHV0X3ZlcmJvc2VfbGlua19jbWQ9J2VjaG8nCisrCisr CSAgICAgICMgQXJjaGl2ZXMgY29udGFpbmluZyBDKysgb2JqZWN0IGZpbGVzIG11c3QgYmUgY3Jl YXRlZCB1c2luZworKwkgICAgICAjICJDQyAteGFyIiwgd2hlcmUgIkNDIiBpcyB0aGUgU3VuIEMr KyBjb21waWxlci4gIFRoaXMgaXMKKysJICAgICAgIyBuZWNlc3NhcnkgdG8gbWFrZSBzdXJlIGlu c3RhbnRpYXRlZCB0ZW1wbGF0ZXMgYXJlIGluY2x1ZGVkCisrCSAgICAgICMgaW4gdGhlIGFyY2hp dmUuCisrCSAgICAgIG9sZF9hcmNoaXZlX2NtZHNfQ1hYPSckQ0MgLXhhciAtbyAkb2xkbGliICRv bGRvYmpzJworKwkgICAgICA7OworKwkgICAgZXNhYworKwkgICAgOzsKKysJZXNhYworKwk7Owor KworKyAgICAgIGx5bnhvcyopCisrICAgICAgICAjIEZJWE1FOiBpbnNlcnQgcHJvcGVyIEMrKyBs aWJyYXJ5IHN1cHBvcnQKKysJbGRfc2hsaWJzX0NYWD1ubworKwk7OworKworKyAgICAgIG04OGsq KQorKyAgICAgICAgIyBGSVhNRTogaW5zZXJ0IHByb3BlciBDKysgbGlicmFyeSBzdXBwb3J0Cisr ICAgICAgICBsZF9zaGxpYnNfQ1hYPW5vCisrCTs7CisrCisrICAgICAgbXZzKikKKysgICAgICAg IGNhc2UgJGNjX2Jhc2VuYW1lIGluCisrICAgICAgICAgIGN4eCopCisrCSAgICAjIEZJWE1FOiBp bnNlcnQgcHJvcGVyIEMrKyBsaWJyYXJ5IHN1cHBvcnQKKysJICAgIGxkX3NobGlic19DWFg9bm8K KysJICAgIDs7CisrCSAgKikKKysJICAgICMgRklYTUU6IGluc2VydCBwcm9wZXIgQysrIGxpYnJh cnkgc3VwcG9ydAorKwkgICAgbGRfc2hsaWJzX0NYWD1ubworKwkgICAgOzsKKysJZXNhYworKwk7 OworKworKyAgICAgIG5ldGJzZCopCisrICAgICAgICBpZiBlY2hvIF9fRUxGX18gfCAkQ0MgLUUg LSB8ICRHUkVQIF9fRUxGX18gPi9kZXYvbnVsbDsgdGhlbgorKwkgIGFyY2hpdmVfY21kc19DWFg9 JyRMRCAtQnNoYXJlYWJsZSAgLW8gJGxpYiAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxp YnMgJHBvc3RkZXBfb2JqZWN0cyAkbGlua2VyX2ZsYWdzJworKwkgIHdsYXJjPQorKwkgIGhhcmRj b2RlX2xpYmRpcl9mbGFnX3NwZWNfQ1hYPSctUiRsaWJkaXInCisrCSAgaGFyZGNvZGVfZGlyZWN0 X0NYWD15ZXMKKysJICBoYXJkY29kZV9zaGxpYnBhdGhfdmFyX0NYWD1ubworKwlmaQorKwkjIFdv cmthcm91bmQgc29tZSBicm9rZW4gcHJlLTEuNSB0b29sY2hhaW5zCisrCW91dHB1dF92ZXJib3Nl X2xpbmtfY21kPSckQ0MgLXNoYXJlZCAkQ0ZMQUdTIC12IGNvbmZ0ZXN0LiRvYmpleHQgMj4mMSB8 ICRHUkVQIGNvbmZ0ZXN0LiRvYmpleHQgfCAkU0VEIC1lICJzOi1sZ2NjIC1sYyAtbGdjYzo6IicK KysJOzsKKysKKysgICAgICAqbnRvKiB8ICpxbngqKQorKyAgICAgICAgbGRfc2hsaWJzX0NYWD15 ZXMKKysJOzsKKysKKysgICAgICBvcGVuYnNkMiopCisrICAgICAgICAjIEMrKyBzaGFyZWQgbGli cmFyaWVzIGFyZSBmYWlybHkgYnJva2VuCisrCWxkX3NobGlic19DWFg9bm8KKysJOzsKKysKKysg ICAgICBvcGVuYnNkKikKKysJaWYgdGVzdCAtZiAvdXNyL2xpYmV4ZWMvbGQuc287IHRoZW4KKysJ ICBoYXJkY29kZV9kaXJlY3RfQ1hYPXllcworKwkgIGhhcmRjb2RlX3NobGlicGF0aF92YXJfQ1hY PW5vCisrCSAgaGFyZGNvZGVfZGlyZWN0X2Fic29sdXRlX0NYWD15ZXMKKysJICBhcmNoaXZlX2Nt ZHNfQ1hYPSckQ0MgLXNoYXJlZCAkcGljX2ZsYWcgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRk ZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzIC1vICRsaWInCisrCSAgaGFy ZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19DWFg9JyR7d2x9LXJwYXRoLCRsaWJkaXInCisrCSAgaWYg dGVzdCAteiAiYGVjaG8gX19FTEZfXyB8ICRDQyAtRSAtIHwgZ3JlcCBfX0VMRl9fYCIgfHwgdGVz dCAiJGhvc3Rfb3MtJGhvc3RfY3B1IiA9ICJvcGVuYnNkMi44LXBvd2VycGMiOyB0aGVuCisrCSAg ICBhcmNoaXZlX2V4cHN5bV9jbWRzX0NYWD0nJENDIC1zaGFyZWQgJHBpY19mbGFnICRwcmVkZXBf b2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFn cyAke3dsfS1yZXRhaW4tc3ltYm9scy1maWxlLCRleHBvcnRfc3ltYm9scyAtbyAkbGliJworKwkg ICAgZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjX0NYWD0nJHt3bH0tRScKKysJICAgIHdob2xlX2Fy Y2hpdmVfZmxhZ19zcGVjX0NYWD0iJHdsYXJjIictLXdob2xlLWFyY2hpdmUkY29udmVuaWVuY2Ug JyIkd2xhcmMiJy0tbm8td2hvbGUtYXJjaGl2ZScKKysJICBmaQorKwkgIG91dHB1dF92ZXJib3Nl X2xpbmtfY21kPWVjaG8KKysJZWxzZQorKwkgIGxkX3NobGlic19DWFg9bm8KKysJZmkKKysJOzsK KysKKysgICAgICBvc2YzKiB8IG9zZjQqIHwgb3NmNSopCisrICAgICAgICBjYXNlICRjY19iYXNl bmFtZSBpbgorKyAgICAgICAgICBLQ0MqKQorKwkgICAgIyBLdWNrIGFuZCBBc3NvY2lhdGVzLCBJ bmMuIChLQUkpIEMrKyBDb21waWxlcgorKworKwkgICAgIyBLQ0Mgd2lsbCBvbmx5IGNyZWF0ZSBh IHNoYXJlZCBsaWJyYXJ5IGlmIHRoZSBvdXRwdXQgZmlsZQorKwkgICAgIyBlbmRzIHdpdGggIi5z byIgKG9yICIuc2wiIGZvciBIUC1VWCksIHNvIHJlbmFtZSB0aGUgbGlicmFyeQorKwkgICAgIyB0 byBpdHMgcHJvcGVyIG5hbWUgKHdpdGggdmVyc2lvbikgYWZ0ZXIgbGlua2luZy4KKysJICAgIGFy Y2hpdmVfY21kc19DWFg9J3RlbXBleHQ9YGVjaG8gJHNoYXJlZF9leHQgfCAkU0VEIC1lICdcJydz L1woW14oKTAtOUEtWmEtent9XVwpL1xcXFxcMS9nJ1wnJ2A7IHRlbXBsaWI9YGVjaG8gIiRsaWIi IHwgJFNFRCAtZSAicy9cJHt0ZW1wZXh0fVwuLiovLnNvLyJgOyAkQ0MgJHByZWRlcF9vYmplY3Rz ICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzIC0tc29u YW1lICRzb25hbWUgLW8gXCR0ZW1wbGliOyBtdiBcJHRlbXBsaWIgJGxpYicKKysKKysJICAgIGhh cmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfQ1hYPScke3dsfS1ycGF0aCwkbGliZGlyJworKwkgICAg aGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvcl9DWFg9OgorKworKwkgICAgIyBBcmNoaXZlcyBjb250 YWluaW5nIEMrKyBvYmplY3QgZmlsZXMgbXVzdCBiZSBjcmVhdGVkIHVzaW5nCisrCSAgICAjIHRo ZSBLQUkgQysrIGNvbXBpbGVyLgorKwkgICAgY2FzZSAkaG9zdCBpbgorKwkgICAgICBvc2YzKikg b2xkX2FyY2hpdmVfY21kc19DWFg9JyRDQyAtQnN0YXRpYyAtbyAkb2xkbGliICRvbGRvYmpzJyA7 OworKwkgICAgICAqKSBvbGRfYXJjaGl2ZV9jbWRzX0NYWD0nJENDIC1vICRvbGRsaWIgJG9sZG9i anMnIDs7CisrCSAgICBlc2FjCisrCSAgICA7OworKyAgICAgICAgICBSQ0MqKQorKwkgICAgIyBS YXRpb25hbCBDKysgMi40LjEKKysJICAgICMgRklYTUU6IGluc2VydCBwcm9wZXIgQysrIGxpYnJh cnkgc3VwcG9ydAorKwkgICAgbGRfc2hsaWJzX0NYWD1ubworKwkgICAgOzsKKysgICAgICAgICAg Y3h4KikKKysJICAgIGNhc2UgJGhvc3QgaW4KKysJICAgICAgb3NmMyopCisrCSAgICAgICAgYWxs b3dfdW5kZWZpbmVkX2ZsYWdfQ1hYPScgJHt3bH0tZXhwZWN0X3VucmVzb2x2ZWQgJHt3bH1cKicK KysJICAgICAgICBhcmNoaXZlX2NtZHNfQ1hYPSckQ0MgLXNoYXJlZCR7YWxsb3dfdW5kZWZpbmVk X2ZsYWd9ICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3Rz ICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHNvbmFtZSBgdGVzdCAtbiAiJHZlcnN0cmlu ZyIgJiYgJEVDSE8gIlgke3dsfS1zZXRfdmVyc2lvbiAkdmVyc3RyaW5nIiB8ICRYc2VkYCAtdXBk YXRlX3JlZ2lzdHJ5ICR7b3V0cHV0X29iamRpcn0vc29fbG9jYXRpb25zIC1vICRsaWInCisrCSAg ICAgICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19DWFg9JyR7d2x9LXJwYXRoICR7d2x9JGxp YmRpcicKKysJCTs7CisrCSAgICAgICopCisrCSAgICAgICAgYWxsb3dfdW5kZWZpbmVkX2ZsYWdf Q1hYPScgLWV4cGVjdF91bnJlc29sdmVkIFwqJworKwkgICAgICAgIGFyY2hpdmVfY21kc19DWFg9 JyRDQyAtc2hhcmVkJHthbGxvd191bmRlZmluZWRfZmxhZ30gJHByZWRlcF9vYmplY3RzICRsaWJv YmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzIC1tc3ltIC1zb25h bWUgJHNvbmFtZSBgdGVzdCAtbiAiJHZlcnN0cmluZyIgJiYgJEVDSE8gIlgtc2V0X3ZlcnNpb24g JHZlcnN0cmluZyIgfCAkWHNlZGAgLXVwZGF0ZV9yZWdpc3RyeSAke291dHB1dF9vYmpkaXJ9L3Nv X2xvY2F0aW9ucyAtbyAkbGliJworKwkgICAgICAgIGFyY2hpdmVfZXhwc3ltX2NtZHNfQ1hYPSdm b3IgaSBpbiBgY2F0ICRleHBvcnRfc3ltYm9sc2A7IGRvIHByaW50ZiAiJXMgJXNcXG4iIC1leHBv cnRlZF9zeW1ib2wgIlwkaSIgPj4gJGxpYi5leHA7IGRvbmV+CisrCSAgICAgICAgICBlY2hvICIt aGlkZGVuIj4+ICRsaWIuZXhwfgorKwkgICAgICAgICAgJENDIC1zaGFyZWQkYWxsb3dfdW5kZWZp bmVkX2ZsYWcgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVj dHMgJGNvbXBpbGVyX2ZsYWdzIC1tc3ltIC1zb25hbWUgJHNvbmFtZSAke3dsfS1pbnB1dCAke3ds fSRsaWIuZXhwICBgdGVzdCAtbiAiJHZlcnN0cmluZyIgJiYgJEVDSE8gIlgtc2V0X3ZlcnNpb24g JHZlcnN0cmluZyIgfCAkWHNlZGAgLXVwZGF0ZV9yZWdpc3RyeSAke291dHB1dF9vYmpkaXJ9L3Nv X2xvY2F0aW9ucyAtbyAkbGlifgorKwkgICAgICAgICAgJFJNICRsaWIuZXhwJworKwkgICAgICAg IGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfQ1hYPSctcnBhdGggJGxpYmRpcicKKysJCTs7Cisr CSAgICBlc2FjCisrCisrCSAgICBoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yX0NYWD06CisrCisr CSAgICAjIENvbW1hbmRzIHRvIG1ha2UgY29tcGlsZXIgcHJvZHVjZSB2ZXJib3NlIG91dHB1dCB0 aGF0IGxpc3RzCisrCSAgICAjIHdoYXQgImhpZGRlbiIgbGlicmFyaWVzLCBvYmplY3QgZmlsZXMg YW5kIGZsYWdzIGFyZSB1c2VkIHdoZW4KKysJICAgICMgbGlua2luZyBhIHNoYXJlZCBsaWJyYXJ5 LgorKwkgICAgIworKwkgICAgIyBUaGVyZSBkb2Vzbid0IGFwcGVhciB0byBiZSBhIHdheSB0byBw cmV2ZW50IHRoaXMgY29tcGlsZXIgZnJvbQorKwkgICAgIyBleHBsaWNpdGx5IGxpbmtpbmcgc3lz dGVtIG9iamVjdCBmaWxlcyBzbyB3ZSBuZWVkIHRvIHN0cmlwIHRoZW0KKysJICAgICMgZnJvbSB0 aGUgb3V0cHV0IHNvIHRoYXQgdGhleSBkb24ndCBnZXQgaW5jbHVkZWQgaW4gdGhlIGxpYnJhcnkK KysJICAgICMgZGVwZW5kZW5jaWVzLgorKwkgICAgb3V0cHV0X3ZlcmJvc2VfbGlua19jbWQ9J3Rl bXBsaXN0PWAkQ0MgLXNoYXJlZCAkQ0ZMQUdTIC12IGNvbmZ0ZXN0LiRvYmpleHQgMj4mMSB8ICRH UkVQICJsZCIgfCAkR1JFUCAtdiAibGQ6ImA7IHRlbXBsaXN0PWAkRUNITyAiWCR0ZW1wbGlzdCIg fCAkWHNlZCAtZSAicy9cKF4uKmxkLipcKVwoIC4qbGQuKiRcKS9cMS8iYDsgbGlzdD0iIjsgZm9y IHogaW4gJHRlbXBsaXN0OyBkbyBjYXNlICR6IGluIGNvbmZ0ZXN0LiRvYmpleHQpIGxpc3Q9IiRs aXN0ICR6Ijs7ICouJG9iamV4dCk7OyAqKSBsaXN0PSIkbGlzdCAkeiI7O2VzYWM7IGRvbmU7ICRF Q0hPICJYJGxpc3QiIHwgJFhzZWQnCisrCSAgICA7OworKwkgICopCisrCSAgICBpZiB0ZXN0ICIk R1hYIiA9IHllcyAmJiB0ZXN0ICIkd2l0aF9nbnVfbGQiID0gbm87IHRoZW4KKysJICAgICAgYWxs b3dfdW5kZWZpbmVkX2ZsYWdfQ1hYPScgJHt3bH0tZXhwZWN0X3VucmVzb2x2ZWQgJHt3bH1cKicK KysJICAgICAgY2FzZSAkaG9zdCBpbgorKwkgICAgICAgIG9zZjMqKQorKwkgICAgICAgICAgYXJj aGl2ZV9jbWRzX0NYWD0nJENDIC1zaGFyZWQgLW5vc3RkbGliICR7YWxsb3dfdW5kZWZpbmVkX2Zs YWd9ICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRj b21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHt3bH0kc29uYW1lIGB0ZXN0IC1uICIkdmVyc3Ry aW5nIiAmJiAkRUNITyAiWCR7d2x9LXNldF92ZXJzaW9uICR7d2x9JHZlcnN0cmluZyIgfCAkWHNl ZGAgJHt3bH0tdXBkYXRlX3JlZ2lzdHJ5ICR7d2x9JHtvdXRwdXRfb2JqZGlyfS9zb19sb2NhdGlv bnMgLW8gJGxpYicKKysJCSAgOzsKKysJICAgICAgICAqKQorKwkgICAgICAgICAgYXJjaGl2ZV9j bWRzX0NYWD0nJENDIC1zaGFyZWQgLW5vc3RkbGliICR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9ICRw cmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxl cl9mbGFncyAke3dsfS1tc3ltICR7d2x9LXNvbmFtZSAke3dsfSRzb25hbWUgYHRlc3QgLW4gIiR2 ZXJzdHJpbmciICYmICRFQ0hPICIke3dsfS1zZXRfdmVyc2lvbiAke3dsfSR2ZXJzdHJpbmciIHwg JFhzZWRgICR7d2x9LXVwZGF0ZV9yZWdpc3RyeSAke3dsfSR7b3V0cHV0X29iamRpcn0vc29fbG9j YXRpb25zIC1vICRsaWInCisrCQkgIDs7CisrCSAgICAgIGVzYWMKKysKKysJICAgICAgaGFyZGNv ZGVfbGliZGlyX2ZsYWdfc3BlY19DWFg9JyR7d2x9LXJwYXRoICR7d2x9JGxpYmRpcicKKysJICAg ICAgaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvcl9DWFg9OgorKworKwkgICAgICAjIENvbW1hbmRz IHRvIG1ha2UgY29tcGlsZXIgcHJvZHVjZSB2ZXJib3NlIG91dHB1dCB0aGF0IGxpc3RzCisrCSAg ICAgICMgd2hhdCAiaGlkZGVuIiBsaWJyYXJpZXMsIG9iamVjdCBmaWxlcyBhbmQgZmxhZ3MgYXJl IHVzZWQgd2hlbgorKwkgICAgICAjIGxpbmtpbmcgYSBzaGFyZWQgbGlicmFyeS4KKysJICAgICAg b3V0cHV0X3ZlcmJvc2VfbGlua19jbWQ9JyRDQyAtc2hhcmVkICRDRkxBR1MgLXYgY29uZnRlc3Qu JG9iamV4dCAyPiYxIHwgJEdSRVAgIlwtTCInCisrCisrCSAgICBlbHNlCisrCSAgICAgICMgRklY TUU6IGluc2VydCBwcm9wZXIgQysrIGxpYnJhcnkgc3VwcG9ydAorKwkgICAgICBsZF9zaGxpYnNf Q1hYPW5vCisrCSAgICBmaQorKwkgICAgOzsKKysgICAgICAgIGVzYWMKKysgICAgICAgIDs7Cisr CisrICAgICAgcHNvcyopCisrICAgICAgICAjIEZJWE1FOiBpbnNlcnQgcHJvcGVyIEMrKyBsaWJy YXJ5IHN1cHBvcnQKKysgICAgICAgIGxkX3NobGlic19DWFg9bm8KKysgICAgICAgIDs7CisrCisr ICAgICAgc3Vub3M0KikKKysgICAgICAgIGNhc2UgJGNjX2Jhc2VuYW1lIGluCisrICAgICAgICAg IENDKikKKysJICAgICMgU3VuIEMrKyA0LngKKysJICAgICMgRklYTUU6IGluc2VydCBwcm9wZXIg QysrIGxpYnJhcnkgc3VwcG9ydAorKwkgICAgbGRfc2hsaWJzX0NYWD1ubworKwkgICAgOzsKKysg ICAgICAgICAgbGNjKikKKysJICAgICMgTHVjaWQKKysJICAgICMgRklYTUU6IGluc2VydCBwcm9w ZXIgQysrIGxpYnJhcnkgc3VwcG9ydAorKwkgICAgbGRfc2hsaWJzX0NYWD1ubworKwkgICAgOzsK KysgICAgICAgICAgKikKKysJICAgICMgRklYTUU6IGluc2VydCBwcm9wZXIgQysrIGxpYnJhcnkg c3VwcG9ydAorKwkgICAgbGRfc2hsaWJzX0NYWD1ubworKwkgICAgOzsKKysgICAgICAgIGVzYWMK KysgICAgICAgIDs7CisrCisrICAgICAgc29sYXJpcyopCisrICAgICAgICBjYXNlICRjY19iYXNl bmFtZSBpbgorKyAgICAgICAgICBDQyopCisrCSAgICAjIFN1biBDKysgNC4yLCA1LnggYW5kIENl bnRlcmxpbmUgQysrCisrICAgICAgICAgICAgYXJjaGl2ZV9jbWRzX25lZWRfbGNfQ1hYPXllcwor KwkgICAgbm9fdW5kZWZpbmVkX2ZsYWdfQ1hYPScgLXpkZWZzJworKwkgICAgYXJjaGl2ZV9jbWRz X0NYWD0nJENDIC1HJHthbGxvd191bmRlZmluZWRfZmxhZ30gIC1oJHNvbmFtZSAtbyAkbGliICRw cmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxl cl9mbGFncycKKysJICAgIGFyY2hpdmVfZXhwc3ltX2NtZHNfQ1hYPSdlY2hvICJ7IGdsb2JhbDoi ID4gJGxpYi5leHB+Y2F0ICRleHBvcnRfc3ltYm9scyB8ICRTRUQgLWUgInMvXCguKlwpL1wxOy8i ID4+ICRsaWIuZXhwfmVjaG8gImxvY2FsOiAqOyB9OyIgPj4gJGxpYi5leHB+CisrCSAgICAgICRD QyAtRyR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9ICR7d2x9LU0gJHt3bH0kbGliLmV4cCAtaCRzb25h bWUgLW8gJGxpYiAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2Jq ZWN0cyAkY29tcGlsZXJfZmxhZ3N+JFJNICRsaWIuZXhwJworKworKwkgICAgaGFyZGNvZGVfbGli ZGlyX2ZsYWdfc3BlY19DWFg9Jy1SJGxpYmRpcicKKysJICAgIGhhcmRjb2RlX3NobGlicGF0aF92 YXJfQ1hYPW5vCisrCSAgICBjYXNlICRob3N0X29zIGluCisrCSAgICAgIHNvbGFyaXMyLlswLTVd IHwgc29sYXJpczIuWzAtNV0uKikgOzsKKysJICAgICAgKikKKysJCSMgVGhlIGNvbXBpbGVyIGRy aXZlciB3aWxsIGNvbWJpbmUgYW5kIHJlb3JkZXIgbGlua2VyIG9wdGlvbnMsCisrCQkjIGJ1dCB1 bmRlcnN0YW5kcyBgLXogbGlua2VyX2ZsYWcnLgorKwkgICAgICAgICMgU3VwcG9ydGVkIHNpbmNl IFNvbGFyaXMgMi42IChtYXliZSAyLjUuMT8pCisrCQl3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlY19D WFg9Jy16IGFsbGV4dHJhY3QkY29udmVuaWVuY2UgLXogZGVmYXVsdGV4dHJhY3QnCisrCSAgICAg ICAgOzsKKysJICAgIGVzYWMKKysJICAgIGxpbmtfYWxsX2RlcGxpYnNfQ1hYPXllcworKworKwkg ICAgb3V0cHV0X3ZlcmJvc2VfbGlua19jbWQ9J2VjaG8nCisrCisrCSAgICAjIEFyY2hpdmVzIGNv bnRhaW5pbmcgQysrIG9iamVjdCBmaWxlcyBtdXN0IGJlIGNyZWF0ZWQgdXNpbmcKKysJICAgICMg IkNDIC14YXIiLCB3aGVyZSAiQ0MiIGlzIHRoZSBTdW4gQysrIGNvbXBpbGVyLiAgVGhpcyBpcwor KwkgICAgIyBuZWNlc3NhcnkgdG8gbWFrZSBzdXJlIGluc3RhbnRpYXRlZCB0ZW1wbGF0ZXMgYXJl IGluY2x1ZGVkCisrCSAgICAjIGluIHRoZSBhcmNoaXZlLgorKwkgICAgb2xkX2FyY2hpdmVfY21k c19DWFg9JyRDQyAteGFyIC1vICRvbGRsaWIgJG9sZG9ianMnCisrCSAgICA7OworKyAgICAgICAg ICBnY3gqKQorKwkgICAgIyBHcmVlbiBIaWxscyBDKysgQ29tcGlsZXIKKysJICAgIGFyY2hpdmVf Y21kc19DWFg9JyRDQyAtc2hhcmVkICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAk cG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAke3dsfS1oICR3bCRzb25hbWUgLW8gJGxp YicKKysKKysJICAgICMgVGhlIEMrKyBjb21waWxlciBtdXN0IGJlIHVzZWQgdG8gY3JlYXRlIHRo ZSBhcmNoaXZlLgorKwkgICAgb2xkX2FyY2hpdmVfY21kc19DWFg9JyRDQyAkTERGTEFHUyAtYXJj aGl2ZSAtbyAkb2xkbGliICRvbGRvYmpzJworKwkgICAgOzsKKysgICAgICAgICAgKikKKysJICAg ICMgR05VIEMrKyBjb21waWxlciB3aXRoIFNvbGFyaXMgbGlua2VyCisrCSAgICBpZiB0ZXN0ICIk R1hYIiA9IHllcyAmJiB0ZXN0ICIkd2l0aF9nbnVfbGQiID0gbm87IHRoZW4KKysJICAgICAgbm9f dW5kZWZpbmVkX2ZsYWdfQ1hYPScgJHt3bH0teiAke3dsfWRlZnMnCisrCSAgICAgIGlmICRDQyAt LXZlcnNpb24gfCAkR1JFUCAtdiAnXjJcLjcnID4gL2Rldi9udWxsOyB0aGVuCisrCSAgICAgICAg YXJjaGl2ZV9jbWRzX0NYWD0nJENDIC1zaGFyZWQgLW5vc3RkbGliICRMREZMQUdTICRwcmVkZXBf b2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFn cyAke3dsfS1oICR3bCRzb25hbWUgLW8gJGxpYicKKysJICAgICAgICBhcmNoaXZlX2V4cHN5bV9j bWRzX0NYWD0nZWNobyAieyBnbG9iYWw6IiA+ICRsaWIuZXhwfmNhdCAkZXhwb3J0X3N5bWJvbHMg fCAkU0VEIC1lICJzL1woLipcKS9cMTsvIiA+PiAkbGliLmV4cH5lY2hvICJsb2NhbDogKjsgfTsi ID4+ICRsaWIuZXhwfgorKwkJICAkQ0MgLXNoYXJlZCAtbm9zdGRsaWIgJHt3bH0tTSAkd2wkbGli LmV4cCAtbyAkbGliICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9v YmplY3RzICRjb21waWxlcl9mbGFnc34kUk0gJGxpYi5leHAnCisrCisrCSAgICAgICAgIyBDb21t YW5kcyB0byBtYWtlIGNvbXBpbGVyIHByb2R1Y2UgdmVyYm9zZSBvdXRwdXQgdGhhdCBsaXN0cwor KwkgICAgICAgICMgd2hhdCAiaGlkZGVuIiBsaWJyYXJpZXMsIG9iamVjdCBmaWxlcyBhbmQgZmxh Z3MgYXJlIHVzZWQgd2hlbgorKwkgICAgICAgICMgbGlua2luZyBhIHNoYXJlZCBsaWJyYXJ5Lgor KwkgICAgICAgIG91dHB1dF92ZXJib3NlX2xpbmtfY21kPSckQ0MgLXNoYXJlZCAkQ0ZMQUdTIC12 IGNvbmZ0ZXN0LiRvYmpleHQgMj4mMSB8ICRHUkVQICJcLUwiJworKwkgICAgICBlbHNlCisrCSAg ICAgICAgIyBnKysgMi43IGFwcGVhcnMgdG8gcmVxdWlyZSBgLUcnIE5PVCBgLXNoYXJlZCcgb24g dGhpcworKwkgICAgICAgICMgcGxhdGZvcm0uCisrCSAgICAgICAgYXJjaGl2ZV9jbWRzX0NYWD0n JENDIC1HIC1ub3N0ZGxpYiAkTERGTEFHUyAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxp YnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0taCAkd2wkc29uYW1lIC1v ICRsaWInCisrCSAgICAgICAgYXJjaGl2ZV9leHBzeW1fY21kc19DWFg9J2VjaG8gInsgZ2xvYmFs OiIgPiAkbGliLmV4cH5jYXQgJGV4cG9ydF9zeW1ib2xzIHwgJFNFRCAtZSAicy9cKC4qXCkvXDE7 LyIgPj4gJGxpYi5leHB+ZWNobyAibG9jYWw6ICo7IH07IiA+PiAkbGliLmV4cH4KKysJCSAgJEND IC1HIC1ub3N0ZGxpYiAke3dsfS1NICR3bCRsaWIuZXhwIC1vICRsaWIgJHByZWRlcF9vYmplY3Rz ICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzfiRSTSAk bGliLmV4cCcKKysKKysJICAgICAgICAjIENvbW1hbmRzIHRvIG1ha2UgY29tcGlsZXIgcHJvZHVj ZSB2ZXJib3NlIG91dHB1dCB0aGF0IGxpc3RzCisrCSAgICAgICAgIyB3aGF0ICJoaWRkZW4iIGxp YnJhcmllcywgb2JqZWN0IGZpbGVzIGFuZCBmbGFncyBhcmUgdXNlZCB3aGVuCisrCSAgICAgICAg IyBsaW5raW5nIGEgc2hhcmVkIGxpYnJhcnkuCisrCSAgICAgICAgb3V0cHV0X3ZlcmJvc2VfbGlu a19jbWQ9JyRDQyAtRyAkQ0ZMQUdTIC12IGNvbmZ0ZXN0LiRvYmpleHQgMj4mMSB8ICRHUkVQICJc LUwiJworKwkgICAgICBmaQorKworKwkgICAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX0NY WD0nJHt3bH0tUiAkd2wkbGliZGlyJworKwkgICAgICBjYXNlICRob3N0X29zIGluCisrCQlzb2xh cmlzMi5bMC01XSB8IHNvbGFyaXMyLlswLTVdLiopIDs7CisrCQkqKQorKwkJICB3aG9sZV9hcmNo aXZlX2ZsYWdfc3BlY19DWFg9JyR7d2x9LXogJHt3bH1hbGxleHRyYWN0JGNvbnZlbmllbmNlICR7 d2x9LXogJHt3bH1kZWZhdWx0ZXh0cmFjdCcKKysJCSAgOzsKKysJICAgICAgZXNhYworKwkgICAg ZmkKKysJICAgIDs7CisrICAgICAgICBlc2FjCisrICAgICAgICA7OworKworKyAgICBzeXN2NCp1 dzIqIHwgc3lzdjVPcGVuVU5JWCogfCBzeXN2NVVuaXhXYXJlNy5bMDFdLlsxMF0qIHwgdW5peHdh cmU3KiB8IHNjbzMuMnY1LjAuWzAyNF0qKQorKyAgICAgIG5vX3VuZGVmaW5lZF9mbGFnX0NYWD0n JHt3bH0teix0ZXh0JworKyAgICAgIGFyY2hpdmVfY21kc19uZWVkX2xjX0NYWD1ubworKyAgICAg IGhhcmRjb2RlX3NobGlicGF0aF92YXJfQ1hYPW5vCisrICAgICAgcnVucGF0aF92YXI9J0xEX1JV Tl9QQVRIJworKworKyAgICAgIGNhc2UgJGNjX2Jhc2VuYW1lIGluCisrICAgICAgICBDQyopCisr CSAgYXJjaGl2ZV9jbWRzX0NYWD0nJENDIC1HICR7d2x9LWgsJHNvbmFtZSAtbyAkbGliICRsaWJv YmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKKysJICBhcmNoaXZlX2V4cHN5bV9jbWRzX0NY WD0nJENDIC1HICR7d2x9LUJleHBvcnQ6JGV4cG9ydF9zeW1ib2xzICR7d2x9LWgsJHNvbmFtZSAt byAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKKysJICA7OworKwkqKQor KwkgIGFyY2hpdmVfY21kc19DWFg9JyRDQyAtc2hhcmVkICR7d2x9LWgsJHNvbmFtZSAtbyAkbGli ICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKKysJICBhcmNoaXZlX2V4cHN5bV9j bWRzX0NYWD0nJENDIC1zaGFyZWQgJHt3bH0tQmV4cG9ydDokZXhwb3J0X3N5bWJvbHMgJHt3bH0t aCwkc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJworKwkg IDs7CisrICAgICAgZXNhYworKyAgICAgIDs7CisrCisrICAgICAgc3lzdjUqIHwgc2NvMy4ydjUq IHwgc2NvNXY2KikKKysJIyBOb3RlOiBXZSBjYW4gTk9UIHVzZSAteiBkZWZzIGFzIHdlIG1pZ2h0 IGRlc2lyZSwgYmVjYXVzZSB3ZSBkbyBub3QKKysJIyBsaW5rIHdpdGggLWxjLCBhbmQgdGhhdCB3 b3VsZCBjYXVzZSBhbnkgc3ltYm9scyB1c2VkIGZyb20gbGliYyB0bworKwkjIGFsd2F5cyBiZSB1 bnJlc29sdmVkLCB3aGljaCBtZWFucyBqdXN0IGFib3V0IG5vIGxpYnJhcnkgd291bGQKKysJIyBl dmVyIGxpbmsgY29ycmVjdGx5LiAgSWYgd2UncmUgbm90IHVzaW5nIEdOVSBsZCB3ZSB1c2UgLXog dGV4dAorKwkjIHRob3VnaCwgd2hpY2ggZG9lcyBjYXRjaCBzb21lIGJhZCBzeW1ib2xzIGJ1dCBp c24ndCBhcyBoZWF2eS1oYW5kZWQKKysJIyBhcyAteiBkZWZzLgorKwlub191bmRlZmluZWRfZmxh Z19DWFg9JyR7d2x9LXosdGV4dCcKKysJYWxsb3dfdW5kZWZpbmVkX2ZsYWdfQ1hYPScke3dsfS16 LG5vZGVmcycKKysJYXJjaGl2ZV9jbWRzX25lZWRfbGNfQ1hYPW5vCisrCWhhcmRjb2RlX3NobGli cGF0aF92YXJfQ1hYPW5vCisrCWhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfQ1hYPScke3dsfS1S LCRsaWJkaXInCisrCWhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3JfQ1hYPSc6JworKwlsaW5rX2Fs bF9kZXBsaWJzX0NYWD15ZXMKKysJZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjX0NYWD0nJHt3bH0t QmV4cG9ydCcKKysJcnVucGF0aF92YXI9J0xEX1JVTl9QQVRIJworKworKwljYXNlICRjY19iYXNl bmFtZSBpbgorKyAgICAgICAgICBDQyopCisrCSAgICBhcmNoaXZlX2NtZHNfQ1hYPSckQ0MgLUcg JHt3bH0taCwkc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdz JworKwkgICAgYXJjaGl2ZV9leHBzeW1fY21kc19DWFg9JyRDQyAtRyAke3dsfS1CZXhwb3J0OiRl eHBvcnRfc3ltYm9scyAke3dsfS1oLCRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAk Y29tcGlsZXJfZmxhZ3MnCisrCSAgICA7OworKwkgICopCisrCSAgICBhcmNoaXZlX2NtZHNfQ1hY PSckQ0MgLXNoYXJlZCAke3dsfS1oLCRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAk Y29tcGlsZXJfZmxhZ3MnCisrCSAgICBhcmNoaXZlX2V4cHN5bV9jbWRzX0NYWD0nJENDIC1zaGFy ZWQgJHt3bH0tQmV4cG9ydDokZXhwb3J0X3N5bWJvbHMgJHt3bH0taCwkc29uYW1lIC1vICRsaWIg JGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJworKwkgICAgOzsKKysJZXNhYworKyAg ICAgIDs7CisrCisrICAgICAgdGFuZGVtKikKKysgICAgICAgIGNhc2UgJGNjX2Jhc2VuYW1lIGlu CisrICAgICAgICAgIE5DQyopCisrCSAgICAjIE5vblN0b3AtVVggTkNDIDMuMjAKKysJICAgICMg RklYTUU6IGluc2VydCBwcm9wZXIgQysrIGxpYnJhcnkgc3VwcG9ydAorKwkgICAgbGRfc2hsaWJz X0NYWD1ubworKwkgICAgOzsKKysgICAgICAgICAgKikKKysJICAgICMgRklYTUU6IGluc2VydCBw cm9wZXIgQysrIGxpYnJhcnkgc3VwcG9ydAorKwkgICAgbGRfc2hsaWJzX0NYWD1ubworKwkgICAg OzsKKysgICAgICAgIGVzYWMKKysgICAgICAgIDs7CisrCisrICAgICAgdnh3b3JrcyopCisrICAg ICAgICAjIEZJWE1FOiBpbnNlcnQgcHJvcGVyIEMrKyBsaWJyYXJ5IHN1cHBvcnQKKysgICAgICAg IGxkX3NobGlic19DWFg9bm8KKysgICAgICAgIDs7CisrCisrICAgICAgKikKKysgICAgICAgICMg RklYTUU6IGluc2VydCBwcm9wZXIgQysrIGxpYnJhcnkgc3VwcG9ydAorKyAgICAgICAgbGRfc2hs aWJzX0NYWD1ubworKyAgICAgICAgOzsKKysgICAgZXNhYworKworKyAgICB7ICRhc19lY2hvICIk YXNfbWU6JExJTkVOTzogcmVzdWx0OiAkbGRfc2hsaWJzX0NYWCIgPiY1CisrJGFzX2VjaG8gIiRs ZF9zaGxpYnNfQ1hYIiA+JjY7IH0KKysgICAgdGVzdCAiJGxkX3NobGlic19DWFgiID0gbm8gJiYg Y2FuX2J1aWxkX3NoYXJlZD1ubworKworKyAgICBHQ0NfQ1hYPSIkR1hYIgorKyAgICBMRF9DWFg9 IiRMRCIKKysKKysgICAgIyMgQ0FWRUFUIEVNUFRPUjoKKysgICAgIyMgVGhlcmUgaXMgbm8gZW5j YXBzdWxhdGlvbiB3aXRoaW4gdGhlIGZvbGxvd2luZyBtYWNyb3MsIGRvIG5vdCBjaGFuZ2UKKysg ICAgIyMgdGhlIHJ1bm5pbmcgb3JkZXIgb3Igb3RoZXJ3aXNlIG1vdmUgdGhlbSBhcm91bmQgdW5s ZXNzIHlvdSBrbm93IGV4YWN0bHkKKysgICAgIyMgd2hhdCB5b3UgYXJlIGRvaW5nLi4uCisrICAg ICMgRGVwZW5kZW5jaWVzIHRvIHBsYWNlIGJlZm9yZSBhbmQgYWZ0ZXIgdGhlIG9iamVjdCBiZWlu ZyBsaW5rZWQ6CisrcHJlZGVwX29iamVjdHNfQ1hYPQorK3Bvc3RkZXBfb2JqZWN0c19DWFg9Cisr cHJlZGVwc19DWFg9CisrcG9zdGRlcHNfQ1hYPQorK2NvbXBpbGVyX2xpYl9zZWFyY2hfcGF0aF9D WFg9CisrCisrY2F0ID4gY29uZnRlc3QuJGFjX2V4dCA8PF9MVF9FT0YKKytjbGFzcyBGb28KKyt7 CisrcHVibGljOgorKyAgRm9vICh2b2lkKSB7IGEgPSAwOyB9CisrcHJpdmF0ZToKKysgIGludCBh OworK307CisrX0xUX0VPRgorKworK2lmIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwi JGFjX2NvbXBpbGVcIiIpID4mNQorKyAgKGV2YWwgJGFjX2NvbXBpbGUpIDI+JjUKKysgIGFjX3N0 YXR1cz0kPworKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+ JjUKKysgIChleGl0ICRhY19zdGF0dXMpOyB9OyB0aGVuCisrICAjIFBhcnNlIHRoZSBjb21waWxl ciBvdXRwdXQgYW5kIGV4dHJhY3QgdGhlIG5lY2Vzc2FyeQorKyAgIyBvYmplY3RzLCBsaWJyYXJp ZXMgYW5kIGxpYnJhcnkgZmxhZ3MuCisrCisrICAjIFNlbnRpbmVsIHVzZWQgdG8ga2VlcCB0cmFj ayBvZiB3aGV0aGVyIG9yIG5vdCB3ZSBhcmUgYmVmb3JlCisrICAjIHRoZSBjb25mdGVzdCBvYmpl Y3QgZmlsZS4KKysgIHByZV90ZXN0X29iamVjdF9kZXBzX2RvbmU9bm8KKysKKysgIGZvciBwIGlu IGBldmFsICIkb3V0cHV0X3ZlcmJvc2VfbGlua19jbWQiYDsgZG8KKysgICAgY2FzZSAkcCBpbgor KworKyAgICAtTCogfCAtUiogfCAtbCopCisrICAgICAgICMgU29tZSBjb21waWxlcnMgcGxhY2Ug c3BhY2UgYmV0d2VlbiAiLXtMLFJ9IiBhbmQgdGhlIHBhdGguCisrICAgICAgICMgUmVtb3ZlIHRo ZSBzcGFjZS4KKysgICAgICAgaWYgdGVzdCAkcCA9ICItTCIgfHwKKysgICAgICAgICAgdGVzdCAk cCA9ICItUiI7IHRoZW4KKysJIHByZXY9JHAKKysJIGNvbnRpbnVlCisrICAgICAgIGVsc2UKKysJ IHByZXY9CisrICAgICAgIGZpCisrCisrICAgICAgIGlmIHRlc3QgIiRwcmVfdGVzdF9vYmplY3Rf ZGVwc19kb25lIiA9IG5vOyB0aGVuCisrCSBjYXNlICRwIGluCisrCSAtTCogfCAtUiopCisrCSAg ICMgSW50ZXJuYWwgY29tcGlsZXIgbGlicmFyeSBwYXRocyBzaG91bGQgY29tZSBhZnRlciB0aG9z ZQorKwkgICAjIHByb3ZpZGVkIHRoZSB1c2VyLiAgVGhlIHBvc3RkZXBzIGFscmVhZHkgY29tZSBh ZnRlciB0aGUKKysJICAgIyB1c2VyIHN1cHBsaWVkIGxpYnMgc28gdGhlcmUgaXMgbm8gbmVlZCB0 byBwcm9jZXNzIHRoZW0uCisrCSAgIGlmIHRlc3QgLXogIiRjb21waWxlcl9saWJfc2VhcmNoX3Bh dGhfQ1hYIjsgdGhlbgorKwkgICAgIGNvbXBpbGVyX2xpYl9zZWFyY2hfcGF0aF9DWFg9IiR7cHJl dn0ke3B9IgorKwkgICBlbHNlCisrCSAgICAgY29tcGlsZXJfbGliX3NlYXJjaF9wYXRoX0NYWD0i JHtjb21waWxlcl9saWJfc2VhcmNoX3BhdGhfQ1hYfSAke3ByZXZ9JHtwfSIKKysJICAgZmkKKysJ ICAgOzsKKysJICMgVGhlICItbCIgY2FzZSB3b3VsZCBuZXZlciBjb21lIGJlZm9yZSB0aGUgb2Jq ZWN0IGJlaW5nCisrCSAjIGxpbmtlZCwgc28gZG9uJ3QgYm90aGVyIGhhbmRsaW5nIHRoaXMgY2Fz ZS4KKysJIGVzYWMKKysgICAgICAgZWxzZQorKwkgaWYgdGVzdCAteiAiJHBvc3RkZXBzX0NYWCI7 IHRoZW4KKysJICAgcG9zdGRlcHNfQ1hYPSIke3ByZXZ9JHtwfSIKKysJIGVsc2UKKysJICAgcG9z dGRlcHNfQ1hYPSIke3Bvc3RkZXBzX0NYWH0gJHtwcmV2fSR7cH0iCisrCSBmaQorKyAgICAgICBm aQorKyAgICAgICA7OworKworKyAgICAqLiRvYmpleHQpCisrICAgICAgICMgVGhpcyBhc3N1bWVz IHRoYXQgdGhlIHRlc3Qgb2JqZWN0IGZpbGUgb25seSBzaG93cyB1cAorKyAgICAgICAjIG9uY2Ug aW4gdGhlIGNvbXBpbGVyIG91dHB1dC4KKysgICAgICAgaWYgdGVzdCAiJHAiID0gImNvbmZ0ZXN0 LiRvYmpleHQiOyB0aGVuCisrCSBwcmVfdGVzdF9vYmplY3RfZGVwc19kb25lPXllcworKwkgY29u dGludWUKKysgICAgICAgZmkKKysKKysgICAgICAgaWYgdGVzdCAiJHByZV90ZXN0X29iamVjdF9k ZXBzX2RvbmUiID0gbm87IHRoZW4KKysJIGlmIHRlc3QgLXogIiRwcmVkZXBfb2JqZWN0c19DWFgi OyB0aGVuCisrCSAgIHByZWRlcF9vYmplY3RzX0NYWD0iJHAiCisrCSBlbHNlCisrCSAgIHByZWRl cF9vYmplY3RzX0NYWD0iJHByZWRlcF9vYmplY3RzX0NYWCAkcCIKKysJIGZpCisrICAgICAgIGVs c2UKKysJIGlmIHRlc3QgLXogIiRwb3N0ZGVwX29iamVjdHNfQ1hYIjsgdGhlbgorKwkgICBwb3N0 ZGVwX29iamVjdHNfQ1hYPSIkcCIKKysJIGVsc2UKKysJICAgcG9zdGRlcF9vYmplY3RzX0NYWD0i JHBvc3RkZXBfb2JqZWN0c19DWFggJHAiCisrCSBmaQorKyAgICAgICBmaQorKyAgICAgICA7Owor KworKyAgICAqKSA7OyAjIElnbm9yZSB0aGUgcmVzdC4KKysKKysgICAgZXNhYworKyAgZG9uZQor KworKyAgIyBDbGVhbiB1cC4KKysgIHJtIC1mIGEub3V0IGEuZXhlCisrZWxzZQorKyAgZWNobyAi bGlidG9vbC5tNDogZXJyb3I6IHByb2JsZW0gY29tcGlsaW5nIENYWCB0ZXN0IHByb2dyYW0iCisr ZmkKKysKKyskUk0gLWYgY29uZmVzdC4kb2JqZXh0CisrCisrIyBQT1JUTUU6IG92ZXJyaWRlIGFi b3ZlIHRlc3Qgb24gc3lzdGVtcyB3aGVyZSBpdCBpcyBicm9rZW4KKytjYXNlICRob3N0X29zIGlu CisraW50ZXJpeFszLTldKikKKysgICMgSW50ZXJpeCAzLjUgaW5zdGFsbHMgY29tcGxldGVseSBo b3NlZCAubGEgZmlsZXMgZm9yIEMrKywgc28gcmF0aGVyIHRoYW4KKysgICMgaGFjayBhbGwgYXJv dW5kIGl0LCBsZXQncyBqdXN0IHRydXN0ICJnKysiIHRvIERUUlQuCisrICBwcmVkZXBfb2JqZWN0 c19DWFg9CisrICBwb3N0ZGVwX29iamVjdHNfQ1hYPQorKyAgcG9zdGRlcHNfQ1hYPQorKyAgOzsK KysKKytsaW51eCopCisrICBjYXNlIGAkQ0MgLVYgMj4mMSB8IHNlZCA1cWAgaW4KKysgICpTdW5c IEMqKQorKyAgICAjIFN1biBDKysgNS45CisrCisrICAgICMgVGhlIG1vcmUgc3RhbmRhcmRzLWNv bmZvcm1pbmcgc3RscG9ydDQgbGlicmFyeSBpcworKyAgICAjIGluY29tcGF0aWJsZSB3aXRoIHRo ZSBDc3RkIGxpYnJhcnkuIEF2b2lkIHNwZWNpZnlpbmcKKysgICAgIyBpdCBpZiBpdCdzIGluIENY WEZMQUdTLiBJZ25vcmUgbGliQ3J1biBhcworKyAgICAjIC1saWJyYXJ5PXN0bHBvcnQ0IGRlcGVu ZHMgb24gaXQuCisrICAgIGNhc2UgIiAkQ1hYICRDWFhGTEFHUyAiIGluCisrICAgICoiIC1saWJy YXJ5PXN0bHBvcnQ0ICIqKQorKyAgICAgIHNvbGFyaXNfdXNlX3N0bHBvcnQ0PXllcworKyAgICAg IDs7CisrICAgIGVzYWMKKysKKysgICAgaWYgdGVzdCAiJHNvbGFyaXNfdXNlX3N0bHBvcnQ0IiAh PSB5ZXM7IHRoZW4KKysgICAgICBwb3N0ZGVwc19DWFg9Jy1saWJyYXJ5PUNzdGQgLWxpYnJhcnk9 Q3J1bicKKysgICAgZmkKKysgICAgOzsKKysgIGVzYWMKKysgIDs7CisrCisrc29sYXJpcyopCisr ICBjYXNlICRjY19iYXNlbmFtZSBpbgorKyAgQ0MqKQorKyAgICAjIFRoZSBtb3JlIHN0YW5kYXJk cy1jb25mb3JtaW5nIHN0bHBvcnQ0IGxpYnJhcnkgaXMKKysgICAgIyBpbmNvbXBhdGlibGUgd2l0 aCB0aGUgQ3N0ZCBsaWJyYXJ5LiBBdm9pZCBzcGVjaWZ5aW5nCisrICAgICMgaXQgaWYgaXQncyBp biBDWFhGTEFHUy4gSWdub3JlIGxpYkNydW4gYXMKKysgICAgIyAtbGlicmFyeT1zdGxwb3J0NCBk ZXBlbmRzIG9uIGl0LgorKyAgICBjYXNlICIgJENYWCAkQ1hYRkxBR1MgIiBpbgorKyAgICAqIiAt bGlicmFyeT1zdGxwb3J0NCAiKikKKysgICAgICBzb2xhcmlzX3VzZV9zdGxwb3J0ND15ZXMKKysg ICAgICA7OworKyAgICBlc2FjCisrCisrICAgICMgQWRkaW5nIHRoaXMgcmVxdWlyZXMgYSBrbm93 bi1nb29kIHNldHVwIG9mIHNoYXJlZCBsaWJyYXJpZXMgZm9yCisrICAgICMgU3VuIGNvbXBpbGVy IHZlcnNpb25zIGJlZm9yZSA1LjYsIGVsc2UgUElDIG9iamVjdHMgZnJvbSBhbiBvbGQKKysgICAg IyBhcmNoaXZlIHdpbGwgYmUgbGlua2VkIGludG8gdGhlIG91dHB1dCwgbGVhZGluZyB0byBzdWJ0 bGUgYnVncy4KKysgICAgaWYgdGVzdCAiJHNvbGFyaXNfdXNlX3N0bHBvcnQ0IiAhPSB5ZXM7IHRo ZW4KKysgICAgICBwb3N0ZGVwc19DWFg9Jy1saWJyYXJ5PUNzdGQgLWxpYnJhcnk9Q3J1bicKKysg ICAgZmkKKysgICAgOzsKKysgIGVzYWMKKysgIDs7CisrZXNhYworKworKworK2Nhc2UgIiAkcG9z dGRlcHNfQ1hYICIgaW4KKysqIiAtbGMgIiopIGFyY2hpdmVfY21kc19uZWVkX2xjX0NYWD1ubyA7 OworK2VzYWMKKysgY29tcGlsZXJfbGliX3NlYXJjaF9kaXJzX0NYWD0KKytpZiB0ZXN0IC1uICIk e2NvbXBpbGVyX2xpYl9zZWFyY2hfcGF0aF9DWFh9IjsgdGhlbgorKyBjb21waWxlcl9saWJfc2Vh cmNoX2RpcnNfQ1hYPWBlY2hvICIgJHtjb21waWxlcl9saWJfc2VhcmNoX3BhdGhfQ1hYfSIgfCAk e1NFRH0gLWUgJ3MhIC1MISAhZycgLWUgJ3MhXiAhISdgCisrZmkKKysKKysKKysKKysKKysKKysK KysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysK KysKKysKKysKKysKKysKKysKKysgICAgbHRfcHJvZ19jb21waWxlcl93bF9DWFg9CisrbHRfcHJv Z19jb21waWxlcl9waWNfQ1hYPQorK2x0X3Byb2dfY29tcGlsZXJfc3RhdGljX0NYWD0KKysKKyt7 ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yICRjb21waWxlciBvcHRpb24g dG8gcHJvZHVjZSBQSUMiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIGZvciAkY29tcGlsZXIg b3B0aW9uIHRvIHByb2R1Y2UgUElDLi4uICIgPiY2OyB9CisrCisrICAjIEMrKyBzcGVjaWZpYyBj YXNlcyBmb3IgcGljLCBzdGF0aWMsIHdsLCBldGMuCisrICBpZiB0ZXN0ICIkR1hYIiA9IHllczsg dGhlbgorKyAgICBsdF9wcm9nX2NvbXBpbGVyX3dsX0NYWD0nLVdsLCcKKysgICAgbHRfcHJvZ19j b21waWxlcl9zdGF0aWNfQ1hYPSctc3RhdGljJworKworKyAgICBjYXNlICRob3N0X29zIGluCisr ICAgIGFpeCopCisrICAgICAgIyBBbGwgQUlYIGNvZGUgaXMgUElDLgorKyAgICAgIGlmIHRlc3Qg IiRob3N0X2NwdSIgPSBpYTY0OyB0aGVuCisrCSMgQUlYIDUgbm93IHN1cHBvcnRzIElBNjQgcHJv Y2Vzc29yCisrCWx0X3Byb2dfY29tcGlsZXJfc3RhdGljX0NYWD0nLUJzdGF0aWMnCisrICAgICAg ZmkKKysgICAgICA7OworKworKyAgICBhbWlnYW9zKikKKysgICAgICBjYXNlICRob3N0X2NwdSBp bgorKyAgICAgIHBvd2VycGMpCisrICAgICAgICAgICAgIyBzZWUgY29tbWVudCBhYm91dCBBbWln YU9TNCAuc28gc3VwcG9ydAorKyAgICAgICAgICAgIGx0X3Byb2dfY29tcGlsZXJfcGljX0NYWD0n LWZQSUMnCisrICAgICAgICA7OworKyAgICAgIG02OGspCisrICAgICAgICAgICAgIyBGSVhNRTog d2UgbmVlZCBhdCBsZWFzdCA2ODAyMCBjb2RlIHRvIGJ1aWxkIHNoYXJlZCBsaWJyYXJpZXMsIGJ1 dAorKyAgICAgICAgICAgICMgYWRkaW5nIHRoZSBgLW02ODAyMCcgZmxhZyB0byBHQ0MgcHJldmVu dHMgYnVpbGRpbmcgYW55dGhpbmcgYmV0dGVyLAorKyAgICAgICAgICAgICMgbGlrZSBgLW02ODA0 MCcuCisrICAgICAgICAgICAgbHRfcHJvZ19jb21waWxlcl9waWNfQ1hYPSctbTY4MDIwIC1yZXNp ZGVudDMyIC1tYWx3YXlzLXJlc3RvcmUtYTQnCisrICAgICAgICA7OworKyAgICAgIGVzYWMKKysg ICAgICA7OworKworKyAgICBiZW9zKiB8IGlyaXg1KiB8IGlyaXg2KiB8IG5vbnN0b3B1eCogfCBv c2YzKiB8IG9zZjQqIHwgb3NmNSopCisrICAgICAgIyBQSUMgaXMgdGhlIGRlZmF1bHQgZm9yIHRo ZXNlIE9TZXMuCisrICAgICAgOzsKKysgICAgbWluZ3cqIHwgY3lnd2luKiB8IG9zMiogfCBwdzMy KiB8IGNlZ2NjKikKKysgICAgICAjIFRoaXMgaGFjayBpcyBzbyB0aGF0IHRoZSBzb3VyY2UgZmls ZSBjYW4gdGVsbCB3aGV0aGVyIGl0IGlzIGJlaW5nCisrICAgICAgIyBidWlsdCBmb3IgaW5jbHVz aW9uIGluIGEgZGxsIChhbmQgc2hvdWxkIGV4cG9ydCBzeW1ib2xzIGZvciBleGFtcGxlKS4KKysg ICAgICAjIEFsdGhvdWdoIHRoZSBjeWd3aW4gZ2NjIGlnbm9yZXMgLWZQSUMsIHN0aWxsIG5lZWQg dGhpcyBmb3Igb2xkLXN0eWxlCisrICAgICAgIyAoLS1kaXNhYmxlLWF1dG8taW1wb3J0KSBsaWJy YXJpZXMKKysgICAgICBsdF9wcm9nX2NvbXBpbGVyX3BpY19DWFg9Jy1ERExMX0VYUE9SVCcKKysg ICAgICA7OworKyAgICBkYXJ3aW4qIHwgcmhhcHNvZHkqKQorKyAgICAgICMgUElDIGlzIHRoZSBk ZWZhdWx0IG9uIHRoaXMgcGxhdGZvcm0KKysgICAgICAjIENvbW1vbiBzeW1ib2xzIG5vdCBhbGxv d2VkIGluIE1IX0RZTElCIGZpbGVzCisrICAgICAgbHRfcHJvZ19jb21waWxlcl9waWNfQ1hYPSct Zm5vLWNvbW1vbicKKysgICAgICA7OworKyAgICAqZGpncHAqKQorKyAgICAgICMgREpHUFAgZG9l cyBub3Qgc3VwcG9ydCBzaGFyZWQgbGlicmFyaWVzIGF0IGFsbAorKyAgICAgIGx0X3Byb2dfY29t cGlsZXJfcGljX0NYWD0KKysgICAgICA7OworKyAgICBpbnRlcml4WzMtOV0qKQorKyAgICAgICMg SW50ZXJpeCAzLnggZ2NjIC1mcGljLy1mUElDIG9wdGlvbnMgZ2VuZXJhdGUgYnJva2VuIGNvZGUu CisrICAgICAgIyBJbnN0ZWFkLCB3ZSByZWxvY2F0ZSBzaGFyZWQgbGlicmFyaWVzIGF0IHJ1bnRp bWUuCisrICAgICAgOzsKKysgICAgc3lzdjQqTVAqKQorKyAgICAgIGlmIHRlc3QgLWQgL3Vzci9u ZWM7IHRoZW4KKysJbHRfcHJvZ19jb21waWxlcl9waWNfQ1hYPS1LY29uZm9ybV9waWMKKysgICAg ICBmaQorKyAgICAgIDs7CisrICAgIGhwdXgqKQorKyAgICAgICMgUElDIGlzIHRoZSBkZWZhdWx0 IGZvciA2NC1iaXQgUEEgSFAtVVgsIGJ1dCBub3QgZm9yIDMyLWJpdAorKyAgICAgICMgUEEgSFAt VVguICBPbiBJQTY0IEhQLVVYLCBQSUMgaXMgdGhlIGRlZmF1bHQgYnV0IHRoZSBwaWMgZmxhZwor KyAgICAgICMgc2V0cyB0aGUgZGVmYXVsdCBUTFMgbW9kZWwgYW5kIGFmZmVjdHMgaW5saW5pbmcu CisrICAgICAgY2FzZSAkaG9zdF9jcHUgaW4KKysgICAgICBocHBhKjY0KikKKysJOzsKKysgICAg ICAqKQorKwlsdF9wcm9nX2NvbXBpbGVyX3BpY19DWFg9Jy1mUElDJworKwk7OworKyAgICAgIGVz YWMKKysgICAgICA7OworKyAgICAqcW54KiB8ICpudG8qKQorKyAgICAgICMgUU5YIHVzZXMgR05V IEMrKywgYnV0IG5lZWQgdG8gZGVmaW5lIC1zaGFyZWQgb3B0aW9uIHRvbywgb3RoZXJ3aXNlCisr ICAgICAgIyBpdCB3aWxsIGNvcmVkdW1wLgorKyAgICAgIGx0X3Byb2dfY29tcGlsZXJfcGljX0NY WD0nLWZQSUMgLXNoYXJlZCcKKysgICAgICA7OworKyAgICAqKQorKyAgICAgIGx0X3Byb2dfY29t cGlsZXJfcGljX0NYWD0nLWZQSUMnCisrICAgICAgOzsKKysgICAgZXNhYworKyAgZWxzZQorKyAg ICBjYXNlICRob3N0X29zIGluCisrICAgICAgYWl4WzQtOV0qKQorKwkjIEFsbCBBSVggY29kZSBp cyBQSUMuCisrCWlmIHRlc3QgIiRob3N0X2NwdSIgPSBpYTY0OyB0aGVuCisrCSAgIyBBSVggNSBu b3cgc3VwcG9ydHMgSUE2NCBwcm9jZXNzb3IKKysJICBsdF9wcm9nX2NvbXBpbGVyX3N0YXRpY19D WFg9Jy1Cc3RhdGljJworKwllbHNlCisrCSAgbHRfcHJvZ19jb21waWxlcl9zdGF0aWNfQ1hYPSct Ym5zbyAtYkk6L2xpYi9zeXNjYWxscy5leHAnCisrCWZpCisrCTs7CisrICAgICAgY2hvcnVzKikK KysJY2FzZSAkY2NfYmFzZW5hbWUgaW4KKysJY3hjaDY4KikKKysJICAjIEdyZWVuIEhpbGxzIEMr KyBDb21waWxlcgorKwkgICMgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYywgQ1hY KT0iLS1ub19hdXRvX2luc3RhbnRpYXRpb24gLXUgX19tYWluIC11IF9fcHJlbWFpbiAtdSBfYWJv cnQgLXIgJENPT0xfRElSL2xpYi9saWJPcmIuYSAkTVZNRV9ESVIvbGliL0NDL2xpYkMuYSAkTVZN RV9ESVIvbGliL2NsYXNzaXgvbGliY3gucy5hIgorKwkgIDs7CisrCWVzYWMKKysJOzsKKysgICAg ICBkZ3V4KikKKysJY2FzZSAkY2NfYmFzZW5hbWUgaW4KKysJICBlYysrKikKKysJICAgIGx0X3By b2dfY29tcGlsZXJfcGljX0NYWD0nLUtQSUMnCisrCSAgICA7OworKwkgIGdoY3gqKQorKwkgICAg IyBHcmVlbiBIaWxscyBDKysgQ29tcGlsZXIKKysJICAgIGx0X3Byb2dfY29tcGlsZXJfcGljX0NY WD0nLXBpYycKKysJICAgIDs7CisrCSAgKikKKysJICAgIDs7CisrCWVzYWMKKysJOzsKKysgICAg ICBmcmVlYnNkKiB8IGRyYWdvbmZseSopCisrCSMgRnJlZUJTRCB1c2VzIEdOVSBDKysKKysJOzsK KysgICAgICBocHV4OSogfCBocHV4MTAqIHwgaHB1eDExKikKKysJY2FzZSAkY2NfYmFzZW5hbWUg aW4KKysJICBDQyopCisrCSAgICBsdF9wcm9nX2NvbXBpbGVyX3dsX0NYWD0nLVdsLCcKKysJICAg IGx0X3Byb2dfY29tcGlsZXJfc3RhdGljX0NYWD0nJHt3bH0tYSAke3dsfWFyY2hpdmUnCisrCSAg ICBpZiB0ZXN0ICIkaG9zdF9jcHUiICE9IGlhNjQ7IHRoZW4KKysJICAgICAgbHRfcHJvZ19jb21w aWxlcl9waWNfQ1hYPScrWicKKysJICAgIGZpCisrCSAgICA7OworKwkgIGFDQyopCisrCSAgICBs dF9wcm9nX2NvbXBpbGVyX3dsX0NYWD0nLVdsLCcKKysJICAgIGx0X3Byb2dfY29tcGlsZXJfc3Rh dGljX0NYWD0nJHt3bH0tYSAke3dsfWFyY2hpdmUnCisrCSAgICBjYXNlICRob3N0X2NwdSBpbgor KwkgICAgaHBwYSo2NCp8aWE2NCopCisrCSAgICAgICMgK1ogdGhlIGRlZmF1bHQKKysJICAgICAg OzsKKysJICAgICopCisrCSAgICAgIGx0X3Byb2dfY29tcGlsZXJfcGljX0NYWD0nK1onCisrCSAg ICAgIDs7CisrCSAgICBlc2FjCisrCSAgICA7OworKwkgICopCisrCSAgICA7OworKwllc2FjCisr CTs7CisrICAgICAgaW50ZXJpeCopCisrCSMgVGhpcyBpcyBjODksIHdoaWNoIGlzIE1TIFZpc3Vh bCBDKysgKG5vIHNoYXJlZCBsaWJzKQorKwkjIEFueW9uZSB3YW50cyB0byBkbyBhIHBvcnQ/Cisr CTs7CisrICAgICAgaXJpeDUqIHwgaXJpeDYqIHwgbm9uc3RvcHV4KikKKysJY2FzZSAkY2NfYmFz ZW5hbWUgaW4KKysJICBDQyopCisrCSAgICBsdF9wcm9nX2NvbXBpbGVyX3dsX0NYWD0nLVdsLCcK KysJICAgIGx0X3Byb2dfY29tcGlsZXJfc3RhdGljX0NYWD0nLW5vbl9zaGFyZWQnCisrCSAgICAj IENDIHBpYyBmbGFnIC1LUElDIGlzIHRoZSBkZWZhdWx0LgorKwkgICAgOzsKKysJICAqKQorKwkg ICAgOzsKKysJZXNhYworKwk7OworKyAgICAgIGxpbnV4KiB8IGsqYnNkKi1nbnUpCisrCWNhc2Ug JGNjX2Jhc2VuYW1lIGluCisrCSAgS0NDKikKKysJICAgICMgS0FJIEMrKyBDb21waWxlcgorKwkg ICAgbHRfcHJvZ19jb21waWxlcl93bF9DWFg9Jy0tYmFja2VuZCAtV2wsJworKwkgICAgbHRfcHJv Z19jb21waWxlcl9waWNfQ1hYPSctZlBJQycKKysJICAgIDs7CisrCSAgZWNwYyogKQorKwkgICAg IyBvbGQgSW50ZWwgQysrIGZvciB4ODZfNjQgd2hpY2ggc3RpbGwgc3VwcG9ydGVkIC1LUElDLgor KwkgICAgbHRfcHJvZ19jb21waWxlcl93bF9DWFg9Jy1XbCwnCisrCSAgICBsdF9wcm9nX2NvbXBp bGVyX3BpY19DWFg9Jy1LUElDJworKwkgICAgbHRfcHJvZ19jb21waWxlcl9zdGF0aWNfQ1hYPSct c3RhdGljJworKwkgICAgOzsKKysJICBpY3BjKiApCisrCSAgICAjIEludGVsIEMrKywgdXNlZCB0 byBiZSBpbmNvbXBhdGlibGUgd2l0aCBHQ0MuCisrCSAgICAjIElDQyAxMCBkb2Vzbid0IGFjY2Vw dCAtS1BJQyBhbnkgbW9yZS4KKysJICAgIGx0X3Byb2dfY29tcGlsZXJfd2xfQ1hYPSctV2wsJwor KwkgICAgbHRfcHJvZ19jb21waWxlcl9waWNfQ1hYPSctZlBJQycKKysJICAgIGx0X3Byb2dfY29t cGlsZXJfc3RhdGljX0NYWD0nLXN0YXRpYycKKysJICAgIDs7CisrCSAgcGdDQyogfCBwZ2NwcCop CisrCSAgICAjIFBvcnRsYW5kIEdyb3VwIEMrKyBjb21waWxlcgorKwkgICAgbHRfcHJvZ19jb21w aWxlcl93bF9DWFg9Jy1XbCwnCisrCSAgICBsdF9wcm9nX2NvbXBpbGVyX3BpY19DWFg9Jy1mcGlj JworKwkgICAgbHRfcHJvZ19jb21waWxlcl9zdGF0aWNfQ1hYPSctQnN0YXRpYycKKysJICAgIDs7 CisrCSAgY3h4KikKKysJICAgICMgQ29tcGFxIEMrKworKwkgICAgIyBNYWtlIHN1cmUgdGhlIFBJ QyBmbGFnIGlzIGVtcHR5LiAgSXQgYXBwZWFycyB0aGF0IGFsbCBBbHBoYQorKwkgICAgIyBMaW51 eCBhbmQgQ29tcGFxIFRydTY0IFVuaXggb2JqZWN0cyBhcmUgUElDLgorKwkgICAgbHRfcHJvZ19j b21waWxlcl9waWNfQ1hYPQorKwkgICAgbHRfcHJvZ19jb21waWxlcl9zdGF0aWNfQ1hYPSctbm9u X3NoYXJlZCcKKysJICAgIDs7CisrCSAgeGxjKiB8IHhsQyopCisrCSAgICAjIElCTSBYTCA4LjAg b24gUFBDCisrCSAgICBsdF9wcm9nX2NvbXBpbGVyX3dsX0NYWD0nLVdsLCcKKysJICAgIGx0X3By b2dfY29tcGlsZXJfcGljX0NYWD0nLXFwaWMnCisrCSAgICBsdF9wcm9nX2NvbXBpbGVyX3N0YXRp Y19DWFg9Jy1xc3RhdGljbGluaycKKysJICAgIDs7CisrCSAgKikKKysJICAgIGNhc2UgYCRDQyAt ViAyPiYxIHwgc2VkIDVxYCBpbgorKwkgICAgKlN1blwgQyopCisrCSAgICAgICMgU3VuIEMrKyA1 LjkKKysJICAgICAgbHRfcHJvZ19jb21waWxlcl9waWNfQ1hYPSctS1BJQycKKysJICAgICAgbHRf cHJvZ19jb21waWxlcl9zdGF0aWNfQ1hYPSctQnN0YXRpYycKKysJICAgICAgbHRfcHJvZ19jb21w aWxlcl93bF9DWFg9Jy1Rb3B0aW9uIGxkICcKKysJICAgICAgOzsKKysJICAgIGVzYWMKKysJICAg IDs7CisrCWVzYWMKKysJOzsKKysgICAgICBseW54b3MqKQorKwk7OworKyAgICAgIG04OGsqKQor Kwk7OworKyAgICAgIG12cyopCisrCWNhc2UgJGNjX2Jhc2VuYW1lIGluCisrCSAgY3h4KikKKysJ ICAgIGx0X3Byb2dfY29tcGlsZXJfcGljX0NYWD0nLVcgYyxleHBvcnRhbGwnCisrCSAgICA7Owor KwkgICopCisrCSAgICA7OworKwllc2FjCisrCTs7CisrICAgICAgbmV0YnNkKikKKysJOzsKKysg ICAgICAqcW54KiB8ICpudG8qKQorKyAgICAgICAgIyBRTlggdXNlcyBHTlUgQysrLCBidXQgbmVl ZCB0byBkZWZpbmUgLXNoYXJlZCBvcHRpb24gdG9vLCBvdGhlcndpc2UKKysgICAgICAgICMgaXQg d2lsbCBjb3JlZHVtcC4KKysgICAgICAgIGx0X3Byb2dfY29tcGlsZXJfcGljX0NYWD0nLWZQSUMg LXNoYXJlZCcKKysgICAgICAgIDs7CisrICAgICAgb3NmMyogfCBvc2Y0KiB8IG9zZjUqKQorKwlj YXNlICRjY19iYXNlbmFtZSBpbgorKwkgIEtDQyopCisrCSAgICBsdF9wcm9nX2NvbXBpbGVyX3ds X0NYWD0nLS1iYWNrZW5kIC1XbCwnCisrCSAgICA7OworKwkgIFJDQyopCisrCSAgICAjIFJhdGlv bmFsIEMrKyAyLjQuMQorKwkgICAgbHRfcHJvZ19jb21waWxlcl9waWNfQ1hYPSctcGljJworKwkg ICAgOzsKKysJICBjeHgqKQorKwkgICAgIyBEaWdpdGFsL0NvbXBhcSBDKysKKysJICAgIGx0X3By b2dfY29tcGlsZXJfd2xfQ1hYPSctV2wsJworKwkgICAgIyBNYWtlIHN1cmUgdGhlIFBJQyBmbGFn IGlzIGVtcHR5LiAgSXQgYXBwZWFycyB0aGF0IGFsbCBBbHBoYQorKwkgICAgIyBMaW51eCBhbmQg Q29tcGFxIFRydTY0IFVuaXggb2JqZWN0cyBhcmUgUElDLgorKwkgICAgbHRfcHJvZ19jb21waWxl cl9waWNfQ1hYPQorKwkgICAgbHRfcHJvZ19jb21waWxlcl9zdGF0aWNfQ1hYPSctbm9uX3NoYXJl ZCcKKysJICAgIDs7CisrCSAgKikKKysJICAgIDs7CisrCWVzYWMKKysJOzsKKysgICAgICBwc29z KikKKysJOzsKKysgICAgICBzb2xhcmlzKikKKysJY2FzZSAkY2NfYmFzZW5hbWUgaW4KKysJICBD QyopCisrCSAgICAjIFN1biBDKysgNC4yLCA1LnggYW5kIENlbnRlcmxpbmUgQysrCisrCSAgICBs dF9wcm9nX2NvbXBpbGVyX3BpY19DWFg9Jy1LUElDJworKwkgICAgbHRfcHJvZ19jb21waWxlcl9z dGF0aWNfQ1hYPSctQnN0YXRpYycKKysJICAgIGx0X3Byb2dfY29tcGlsZXJfd2xfQ1hYPSctUW9w dGlvbiBsZCAnCisrCSAgICA7OworKwkgIGdjeCopCisrCSAgICAjIEdyZWVuIEhpbGxzIEMrKyBD b21waWxlcgorKwkgICAgbHRfcHJvZ19jb21waWxlcl9waWNfQ1hYPSctUElDJworKwkgICAgOzsK KysJICAqKQorKwkgICAgOzsKKysJZXNhYworKwk7OworKyAgICAgIHN1bm9zNCopCisrCWNhc2Ug JGNjX2Jhc2VuYW1lIGluCisrCSAgQ0MqKQorKwkgICAgIyBTdW4gQysrIDQueAorKwkgICAgbHRf cHJvZ19jb21waWxlcl9waWNfQ1hYPSctcGljJworKwkgICAgbHRfcHJvZ19jb21waWxlcl9zdGF0 aWNfQ1hYPSctQnN0YXRpYycKKysJICAgIDs7CisrCSAgbGNjKikKKysJICAgICMgTHVjaWQKKysJ ICAgIGx0X3Byb2dfY29tcGlsZXJfcGljX0NYWD0nLXBpYycKKysJICAgIDs7CisrCSAgKikKKysJ ICAgIDs7CisrCWVzYWMKKysJOzsKKysgICAgICBzeXN2NSogfCB1bml4d2FyZSogfCBzY28zLjJ2 NSogfCBzY281djYqIHwgT3BlblVOSVgqKQorKwljYXNlICRjY19iYXNlbmFtZSBpbgorKwkgIEND KikKKysJICAgIGx0X3Byb2dfY29tcGlsZXJfd2xfQ1hYPSctV2wsJworKwkgICAgbHRfcHJvZ19j b21waWxlcl9waWNfQ1hYPSctS1BJQycKKysJICAgIGx0X3Byb2dfY29tcGlsZXJfc3RhdGljX0NY WD0nLUJzdGF0aWMnCisrCSAgICA7OworKwllc2FjCisrCTs7CisrICAgICAgdGFuZGVtKikKKysJ Y2FzZSAkY2NfYmFzZW5hbWUgaW4KKysJICBOQ0MqKQorKwkgICAgIyBOb25TdG9wLVVYIE5DQyAz LjIwCisrCSAgICBsdF9wcm9nX2NvbXBpbGVyX3BpY19DWFg9Jy1LUElDJworKwkgICAgOzsKKysJ ICAqKQorKwkgICAgOzsKKysJZXNhYworKwk7OworKyAgICAgIHZ4d29ya3MqKQorKwk7OworKyAg ICAgICopCisrCWx0X3Byb2dfY29tcGlsZXJfY2FuX2J1aWxkX3NoYXJlZF9DWFg9bm8KKysJOzsK KysgICAgZXNhYworKyAgZmkKKysKKytjYXNlICRob3N0X29zIGluCisrICAjIEZvciBwbGF0Zm9y bXMgd2hpY2ggZG8gbm90IHN1cHBvcnQgUElDLCAtRFBJQyBpcyBtZWFuaW5nbGVzczoKKysgICpk amdwcCopCisrICAgIGx0X3Byb2dfY29tcGlsZXJfcGljX0NYWD0KKysgICAgOzsKKysgICopCisr ICAgIGx0X3Byb2dfY29tcGlsZXJfcGljX0NYWD0iJGx0X3Byb2dfY29tcGlsZXJfcGljX0NYWCAt RFBJQyIKKysgICAgOzsKKytlc2FjCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3Vs dDogJGx0X3Byb2dfY29tcGlsZXJfcGljX0NYWCIgPiY1CisrJGFzX2VjaG8gIiRsdF9wcm9nX2Nv bXBpbGVyX3BpY19DWFgiID4mNjsgfQorKworKworKworKyMKKysjIENoZWNrIHRvIG1ha2Ugc3Vy ZSB0aGUgUElDIGZsYWcgYWN0dWFsbHkgd29ya3MuCisrIworK2lmIHRlc3QgLW4gIiRsdF9wcm9n X2NvbXBpbGVyX3BpY19DWFgiOyB0aGVuCisrICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzog Y2hlY2tpbmcgaWYgJGNvbXBpbGVyIFBJQyBmbGFnICRsdF9wcm9nX2NvbXBpbGVyX3BpY19DWFgg d29ya3MiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIGlmICRjb21waWxlciBQSUMgZmxhZyAk bHRfcHJvZ19jb21waWxlcl9waWNfQ1hYIHdvcmtzLi4uICIgPiY2OyB9CisraWYgdGVzdCAiJHts dF9jdl9wcm9nX2NvbXBpbGVyX3BpY193b3Jrc19DWFgrc2V0fSIgPSBzZXQ7IHRoZW4KKysgICRh c19lY2hvX24gIihjYWNoZWQpICIgPiY2CisrZWxzZQorKyAgbHRfY3ZfcHJvZ19jb21waWxlcl9w aWNfd29ya3NfQ1hYPW5vCisrICAgYWNfb3V0ZmlsZT1jb25mdGVzdC4kYWNfb2JqZXh0CisrICAg ZWNobyAiJGx0X3NpbXBsZV9jb21waWxlX3Rlc3RfY29kZSIgPiBjb25mdGVzdC4kYWNfZXh0Cisr ICAgbHRfY29tcGlsZXJfZmxhZz0iJGx0X3Byb2dfY29tcGlsZXJfcGljX0NYWCAtRFBJQyIKKysg ICAjIEluc2VydCB0aGUgb3B0aW9uIGVpdGhlciAoMSkgYWZ0ZXIgdGhlIGxhc3QgKkZMQUdTIHZh cmlhYmxlLCBvcgorKyAgICMgKDIpIGJlZm9yZSBhIHdvcmQgY29udGFpbmluZyAiY29uZnRlc3Qu Iiwgb3IgKDMpIGF0IHRoZSBlbmQuCisrICAgIyBOb3RlIHRoYXQgJGFjX2NvbXBpbGUgaXRzZWxm IGRvZXMgbm90IGNvbnRhaW4gYmFja3NsYXNoZXMgYW5kIGJlZ2lucworKyAgICMgd2l0aCBhIGRv bGxhciBzaWduIChub3QgYSBoeXBoZW4pLCBzbyB0aGUgZWNobyBzaG91bGQgd29yayBjb3JyZWN0 bHkuCisrICAgIyBUaGUgb3B0aW9uIGlzIHJlZmVyZW5jZWQgdmlhIGEgdmFyaWFibGUgdG8gYXZv aWQgY29uZnVzaW5nIHNlZC4KKysgICBsdF9jb21waWxlPWBlY2hvICIkYWNfY29tcGlsZSIgfCAk U0VEIFwKKysgICAtZSAnczouKkZMQUdTfVx7MCwxXH0gOiYkbHRfY29tcGlsZXJfZmxhZyA6OyB0 JyBcCisrICAgLWUgJ3M6IFteIF0qY29uZnRlc3RcLjogJGx0X2NvbXBpbGVyX2ZsYWcmOjsgdCcg XAorKyAgIC1lICdzOiQ6ICRsdF9jb21waWxlcl9mbGFnOidgCisrICAgKGV2YWwgZWNobyAiXCJc JGFzX21lOjE0Nzk3OiAkbHRfY29tcGlsZVwiIiA+JjUpCisrICAgKGV2YWwgIiRsdF9jb21waWxl IiAyPmNvbmZ0ZXN0LmVycikKKysgICBhY19zdGF0dXM9JD8KKysgICBjYXQgY29uZnRlc3QuZXJy ID4mNQorKyAgIGVjaG8gIiRhc19tZToxNDgwMTogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisrICAg aWYgKGV4aXQgJGFjX3N0YXR1cykgJiYgdGVzdCAtcyAiJGFjX291dGZpbGUiOyB0aGVuCisrICAg ICAjIFRoZSBjb21waWxlciBjYW4gb25seSB3YXJuIGFuZCBpZ25vcmUgdGhlIG9wdGlvbiBpZiBu b3QgcmVjb2duaXplZAorKyAgICAgIyBTbyBzYXkgbm8gaWYgdGhlcmUgYXJlIHdhcm5pbmdzIG90 aGVyIHRoYW4gdGhlIHVzdWFsIG91dHB1dC4KKysgICAgICRFQ0hPICJYJF9sdF9jb21waWxlcl9i b2lsZXJwbGF0ZSIgfCAkWHNlZCAtZSAnL14kL2QnID5jb25mdGVzdC5leHAKKysgICAgICRTRUQg Jy9eJC9kOyAvXiAqKy9kJyBjb25mdGVzdC5lcnIgPmNvbmZ0ZXN0LmVyMgorKyAgICAgaWYgdGVz dCAhIC1zIGNvbmZ0ZXN0LmVyMiB8fCBkaWZmIGNvbmZ0ZXN0LmV4cCBjb25mdGVzdC5lcjIgPi9k ZXYvbnVsbDsgdGhlbgorKyAgICAgICBsdF9jdl9wcm9nX2NvbXBpbGVyX3BpY193b3Jrc19DWFg9 eWVzCisrICAgICBmaQorKyAgIGZpCisrICAgJFJNIGNvbmZ0ZXN0KgorKworK2ZpCisreyAkYXNf ZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGx0X2N2X3Byb2dfY29tcGlsZXJfcGljX3dv cmtzX0NYWCIgPiY1CisrJGFzX2VjaG8gIiRsdF9jdl9wcm9nX2NvbXBpbGVyX3BpY193b3Jrc19D WFgiID4mNjsgfQorKworK2lmIHRlc3QgeCIkbHRfY3ZfcHJvZ19jb21waWxlcl9waWNfd29ya3Nf Q1hYIiA9IHh5ZXM7IHRoZW4KKysgICAgY2FzZSAkbHRfcHJvZ19jb21waWxlcl9waWNfQ1hYIGlu CisrICAgICAiIiB8ICIgIiopIDs7CisrICAgICAqKSBsdF9wcm9nX2NvbXBpbGVyX3BpY19DWFg9 IiAkbHRfcHJvZ19jb21waWxlcl9waWNfQ1hYIiA7OworKyAgICAgZXNhYworK2Vsc2UKKysgICAg bHRfcHJvZ19jb21waWxlcl9waWNfQ1hYPQorKyAgICAgbHRfcHJvZ19jb21waWxlcl9jYW5fYnVp bGRfc2hhcmVkX0NYWD1ubworK2ZpCisrCisrZmkKKysKKysKKysKKysjCisrIyBDaGVjayB0byBt YWtlIHN1cmUgdGhlIHN0YXRpYyBmbGFnIGFjdHVhbGx5IHdvcmtzLgorKyMKKyt3bD0kbHRfcHJv Z19jb21waWxlcl93bF9DWFggZXZhbCBsdF90bXBfc3RhdGljX2ZsYWc9XCIkbHRfcHJvZ19jb21w aWxlcl9zdGF0aWNfQ1hYXCIKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcg aWYgJGNvbXBpbGVyIHN0YXRpYyBmbGFnICRsdF90bXBfc3RhdGljX2ZsYWcgd29ya3MiID4mNQor KyRhc19lY2hvX24gImNoZWNraW5nIGlmICRjb21waWxlciBzdGF0aWMgZmxhZyAkbHRfdG1wX3N0 YXRpY19mbGFnIHdvcmtzLi4uICIgPiY2OyB9CisraWYgdGVzdCAiJHtsdF9jdl9wcm9nX2NvbXBp bGVyX3N0YXRpY193b3Jrc19DWFgrc2V0fSIgPSBzZXQ7IHRoZW4KKysgICRhc19lY2hvX24gIihj YWNoZWQpICIgPiY2CisrZWxzZQorKyAgbHRfY3ZfcHJvZ19jb21waWxlcl9zdGF0aWNfd29ya3Nf Q1hYPW5vCisrICAgc2F2ZV9MREZMQUdTPSIkTERGTEFHUyIKKysgICBMREZMQUdTPSIkTERGTEFH UyAkbHRfdG1wX3N0YXRpY19mbGFnIgorKyAgIGVjaG8gIiRsdF9zaW1wbGVfbGlua190ZXN0X2Nv ZGUiID4gY29uZnRlc3QuJGFjX2V4dAorKyAgIGlmIChldmFsICRhY19saW5rIDI+Y29uZnRlc3Qu ZXJyKSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0JGFjX2V4ZWV4dDsgdGhlbgorKyAgICAgIyBUaGUgbGlu a2VyIGNhbiBvbmx5IHdhcm4gYW5kIGlnbm9yZSB0aGUgb3B0aW9uIGlmIG5vdCByZWNvZ25pemVk CisrICAgICAjIFNvIHNheSBubyBpZiB0aGVyZSBhcmUgd2FybmluZ3MKKysgICAgIGlmIHRlc3Qg LXMgY29uZnRlc3QuZXJyOyB0aGVuCisrICAgICAgICMgQXBwZW5kIGFueSBlcnJvcnMgdG8gdGhl IGNvbmZpZy5sb2cuCisrICAgICAgIGNhdCBjb25mdGVzdC5lcnIgMT4mNQorKyAgICAgICAkRUNI TyAiWCRfbHRfbGlua2VyX2JvaWxlcnBsYXRlIiB8ICRYc2VkIC1lICcvXiQvZCcgPiBjb25mdGVz dC5leHAKKysgICAgICAgJFNFRCAnL14kL2Q7IC9eICorL2QnIGNvbmZ0ZXN0LmVyciA+Y29uZnRl c3QuZXIyCisrICAgICAgIGlmIGRpZmYgY29uZnRlc3QuZXhwIGNvbmZ0ZXN0LmVyMiA+L2Rldi9u dWxsOyB0aGVuCisrICAgICAgICAgbHRfY3ZfcHJvZ19jb21waWxlcl9zdGF0aWNfd29ya3NfQ1hY PXllcworKyAgICAgICBmaQorKyAgICAgZWxzZQorKyAgICAgICBsdF9jdl9wcm9nX2NvbXBpbGVy X3N0YXRpY193b3Jrc19DWFg9eWVzCisrICAgICBmaQorKyAgIGZpCisrICAgJFJNIC1yIGNvbmZ0 ZXN0KgorKyAgIExERkxBR1M9IiRzYXZlX0xERkxBR1MiCisrCisrZmkKKyt7ICRhc19lY2hvICIk YXNfbWU6JExJTkVOTzogcmVzdWx0OiAkbHRfY3ZfcHJvZ19jb21waWxlcl9zdGF0aWNfd29ya3Nf Q1hYIiA+JjUKKyskYXNfZWNobyAiJGx0X2N2X3Byb2dfY29tcGlsZXJfc3RhdGljX3dvcmtzX0NY WCIgPiY2OyB9CisrCisraWYgdGVzdCB4IiRsdF9jdl9wcm9nX2NvbXBpbGVyX3N0YXRpY193b3Jr c19DWFgiID0geHllczsgdGhlbgorKyAgICA6CisrZWxzZQorKyAgICBsdF9wcm9nX2NvbXBpbGVy X3N0YXRpY19DWFg9CisrZmkKKysKKysKKysKKysKKysgICAgeyAkYXNfZWNobyAiJGFzX21lOiRM SU5FTk86IGNoZWNraW5nIGlmICRjb21waWxlciBzdXBwb3J0cyAtYyAtbyBmaWxlLiRhY19vYmpl eHQiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIGlmICRjb21waWxlciBzdXBwb3J0cyAtYyAt byBmaWxlLiRhY19vYmpleHQuLi4gIiA+JjY7IH0KKytpZiB0ZXN0ICIke2x0X2N2X3Byb2dfY29t cGlsZXJfY19vX0NYWCtzZXR9IiA9IHNldDsgdGhlbgorKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkg IiA+JjYKKytlbHNlCisrICBsdF9jdl9wcm9nX2NvbXBpbGVyX2Nfb19DWFg9bm8KKysgICAkUk0g LXIgY29uZnRlc3QgMj4vZGV2L251bGwKKysgICBta2RpciBjb25mdGVzdAorKyAgIGNkIGNvbmZ0 ZXN0CisrICAgbWtkaXIgb3V0CisrICAgZWNobyAiJGx0X3NpbXBsZV9jb21waWxlX3Rlc3RfY29k ZSIgPiBjb25mdGVzdC4kYWNfZXh0CisrCisrICAgbHRfY29tcGlsZXJfZmxhZz0iLW8gb3V0L2Nv bmZ0ZXN0Mi4kYWNfb2JqZXh0IgorKyAgICMgSW5zZXJ0IHRoZSBvcHRpb24gZWl0aGVyICgxKSBh ZnRlciB0aGUgbGFzdCAqRkxBR1MgdmFyaWFibGUsIG9yCisrICAgIyAoMikgYmVmb3JlIGEgd29y ZCBjb250YWluaW5nICJjb25mdGVzdC4iLCBvciAoMykgYXQgdGhlIGVuZC4KKysgICAjIE5vdGUg dGhhdCAkYWNfY29tcGlsZSBpdHNlbGYgZG9lcyBub3QgY29udGFpbiBiYWNrc2xhc2hlcyBhbmQg YmVnaW5zCisrICAgIyB3aXRoIGEgZG9sbGFyIHNpZ24gKG5vdCBhIGh5cGhlbiksIHNvIHRoZSBl Y2hvIHNob3VsZCB3b3JrIGNvcnJlY3RseS4KKysgICBsdF9jb21waWxlPWBlY2hvICIkYWNfY29t cGlsZSIgfCAkU0VEIFwKKysgICAtZSAnczouKkZMQUdTfVx7MCwxXH0gOiYkbHRfY29tcGlsZXJf ZmxhZyA6OyB0JyBcCisrICAgLWUgJ3M6IFteIF0qY29uZnRlc3RcLjogJGx0X2NvbXBpbGVyX2Zs YWcmOjsgdCcgXAorKyAgIC1lICdzOiQ6ICRsdF9jb21waWxlcl9mbGFnOidgCisrICAgKGV2YWwg ZWNobyAiXCJcJGFzX21lOjE0ODk2OiAkbHRfY29tcGlsZVwiIiA+JjUpCisrICAgKGV2YWwgIiRs dF9jb21waWxlIiAyPm91dC9jb25mdGVzdC5lcnIpCisrICAgYWNfc3RhdHVzPSQ/CisrICAgY2F0 IG91dC9jb25mdGVzdC5lcnIgPiY1CisrICAgZWNobyAiJGFzX21lOjE0OTAwOiBcJD8gPSAkYWNf c3RhdHVzIiA+JjUKKysgICBpZiAoZXhpdCAkYWNfc3RhdHVzKSAmJiB0ZXN0IC1zIG91dC9jb25m dGVzdDIuJGFjX29iamV4dAorKyAgIHRoZW4KKysgICAgICMgVGhlIGNvbXBpbGVyIGNhbiBvbmx5 IHdhcm4gYW5kIGlnbm9yZSB0aGUgb3B0aW9uIGlmIG5vdCByZWNvZ25pemVkCisrICAgICAjIFNv IHNheSBubyBpZiB0aGVyZSBhcmUgd2FybmluZ3MKKysgICAgICRFQ0hPICJYJF9sdF9jb21waWxl cl9ib2lsZXJwbGF0ZSIgfCAkWHNlZCAtZSAnL14kL2QnID4gb3V0L2NvbmZ0ZXN0LmV4cAorKyAg ICAgJFNFRCAnL14kL2Q7IC9eICorL2QnIG91dC9jb25mdGVzdC5lcnIgPm91dC9jb25mdGVzdC5l cjIKKysgICAgIGlmIHRlc3QgISAtcyBvdXQvY29uZnRlc3QuZXIyIHx8IGRpZmYgb3V0L2NvbmZ0 ZXN0LmV4cCBvdXQvY29uZnRlc3QuZXIyID4vZGV2L251bGw7IHRoZW4KKysgICAgICAgbHRfY3Zf cHJvZ19jb21waWxlcl9jX29fQ1hYPXllcworKyAgICAgZmkKKysgICBmaQorKyAgIGNobW9kIHUr dyAuIDI+JjUKKysgICAkUk0gY29uZnRlc3QqCisrICAgIyBTR0kgQysrIGNvbXBpbGVyIHdpbGwg Y3JlYXRlIGRpcmVjdG9yeSBvdXQvaWlfZmlsZXMvIGZvcgorKyAgICMgdGVtcGxhdGUgaW5zdGFu dGlhdGlvbgorKyAgIHRlc3QgLWQgb3V0L2lpX2ZpbGVzICYmICRSTSBvdXQvaWlfZmlsZXMvKiAm JiBybWRpciBvdXQvaWlfZmlsZXMKKysgICAkUk0gb3V0LyogJiYgcm1kaXIgb3V0CisrICAgY2Qg Li4KKysgICAkUk0gLXIgY29uZnRlc3QKKysgICAkUk0gY29uZnRlc3QqCisrCisrZmkKKyt7ICRh c19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkbHRfY3ZfcHJvZ19jb21waWxlcl9jX29f Q1hYIiA+JjUKKyskYXNfZWNobyAiJGx0X2N2X3Byb2dfY29tcGlsZXJfY19vX0NYWCIgPiY2OyB9 CisrCisrCisrCisrICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBpZiAk Y29tcGlsZXIgc3VwcG9ydHMgLWMgLW8gZmlsZS4kYWNfb2JqZXh0IiA+JjUKKyskYXNfZWNob19u ICJjaGVja2luZyBpZiAkY29tcGlsZXIgc3VwcG9ydHMgLWMgLW8gZmlsZS4kYWNfb2JqZXh0Li4u ICIgPiY2OyB9CisraWYgdGVzdCAiJHtsdF9jdl9wcm9nX2NvbXBpbGVyX2Nfb19DWFgrc2V0fSIg PSBzZXQ7IHRoZW4KKysgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2CisrZWxzZQorKyAgbHRf Y3ZfcHJvZ19jb21waWxlcl9jX29fQ1hYPW5vCisrICAgJFJNIC1yIGNvbmZ0ZXN0IDI+L2Rldi9u dWxsCisrICAgbWtkaXIgY29uZnRlc3QKKysgICBjZCBjb25mdGVzdAorKyAgIG1rZGlyIG91dAor KyAgIGVjaG8gIiRsdF9zaW1wbGVfY29tcGlsZV90ZXN0X2NvZGUiID4gY29uZnRlc3QuJGFjX2V4 dAorKworKyAgIGx0X2NvbXBpbGVyX2ZsYWc9Ii1vIG91dC9jb25mdGVzdDIuJGFjX29iamV4dCIK KysgICAjIEluc2VydCB0aGUgb3B0aW9uIGVpdGhlciAoMSkgYWZ0ZXIgdGhlIGxhc3QgKkZMQUdT IHZhcmlhYmxlLCBvcgorKyAgICMgKDIpIGJlZm9yZSBhIHdvcmQgY29udGFpbmluZyAiY29uZnRl c3QuIiwgb3IgKDMpIGF0IHRoZSBlbmQuCisrICAgIyBOb3RlIHRoYXQgJGFjX2NvbXBpbGUgaXRz ZWxmIGRvZXMgbm90IGNvbnRhaW4gYmFja3NsYXNoZXMgYW5kIGJlZ2lucworKyAgICMgd2l0aCBh IGRvbGxhciBzaWduIChub3QgYSBoeXBoZW4pLCBzbyB0aGUgZWNobyBzaG91bGQgd29yayBjb3Jy ZWN0bHkuCisrICAgbHRfY29tcGlsZT1gZWNobyAiJGFjX2NvbXBpbGUiIHwgJFNFRCBcCisrICAg LWUgJ3M6LipGTEFHU31cezAsMVx9IDomJGx0X2NvbXBpbGVyX2ZsYWcgOjsgdCcgXAorKyAgIC1l ICdzOiBbXiBdKmNvbmZ0ZXN0XC46ICRsdF9jb21waWxlcl9mbGFnJjo7IHQnIFwKKysgICAtZSAn czokOiAkbHRfY29tcGlsZXJfZmxhZzonYAorKyAgIChldmFsIGVjaG8gIlwiXCRhc19tZToxNDk0 ODogJGx0X2NvbXBpbGVcIiIgPiY1KQorKyAgIChldmFsICIkbHRfY29tcGlsZSIgMj5vdXQvY29u ZnRlc3QuZXJyKQorKyAgIGFjX3N0YXR1cz0kPworKyAgIGNhdCBvdXQvY29uZnRlc3QuZXJyID4m NQorKyAgIGVjaG8gIiRhc19tZToxNDk1MjogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisrICAgaWYg KGV4aXQgJGFjX3N0YXR1cykgJiYgdGVzdCAtcyBvdXQvY29uZnRlc3QyLiRhY19vYmpleHQKKysg ICB0aGVuCisrICAgICAjIFRoZSBjb21waWxlciBjYW4gb25seSB3YXJuIGFuZCBpZ25vcmUgdGhl IG9wdGlvbiBpZiBub3QgcmVjb2duaXplZAorKyAgICAgIyBTbyBzYXkgbm8gaWYgdGhlcmUgYXJl IHdhcm5pbmdzCisrICAgICAkRUNITyAiWCRfbHRfY29tcGlsZXJfYm9pbGVycGxhdGUiIHwgJFhz ZWQgLWUgJy9eJC9kJyA+IG91dC9jb25mdGVzdC5leHAKKysgICAgICRTRUQgJy9eJC9kOyAvXiAq Ky9kJyBvdXQvY29uZnRlc3QuZXJyID5vdXQvY29uZnRlc3QuZXIyCisrICAgICBpZiB0ZXN0ICEg LXMgb3V0L2NvbmZ0ZXN0LmVyMiB8fCBkaWZmIG91dC9jb25mdGVzdC5leHAgb3V0L2NvbmZ0ZXN0 LmVyMiA+L2Rldi9udWxsOyB0aGVuCisrICAgICAgIGx0X2N2X3Byb2dfY29tcGlsZXJfY19vX0NY WD15ZXMKKysgICAgIGZpCisrICAgZmkKKysgICBjaG1vZCB1K3cgLiAyPiY1CisrICAgJFJNIGNv bmZ0ZXN0KgorKyAgICMgU0dJIEMrKyBjb21waWxlciB3aWxsIGNyZWF0ZSBkaXJlY3Rvcnkgb3V0 L2lpX2ZpbGVzLyBmb3IKKysgICAjIHRlbXBsYXRlIGluc3RhbnRpYXRpb24KKysgICB0ZXN0IC1k IG91dC9paV9maWxlcyAmJiAkUk0gb3V0L2lpX2ZpbGVzLyogJiYgcm1kaXIgb3V0L2lpX2ZpbGVz CisrICAgJFJNIG91dC8qICYmIHJtZGlyIG91dAorKyAgIGNkIC4uCisrICAgJFJNIC1yIGNvbmZ0 ZXN0CisrICAgJFJNIGNvbmZ0ZXN0KgorKworK2ZpCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5F Tk86IHJlc3VsdDogJGx0X2N2X3Byb2dfY29tcGlsZXJfY19vX0NYWCIgPiY1CisrJGFzX2VjaG8g IiRsdF9jdl9wcm9nX2NvbXBpbGVyX2Nfb19DWFgiID4mNjsgfQorKworKworKworKworK2hhcmRf bGlua3M9Im5vdHRlc3RlZCIKKytpZiB0ZXN0ICIkbHRfY3ZfcHJvZ19jb21waWxlcl9jX29fQ1hY IiA9IG5vICYmIHRlc3QgIiRuZWVkX2xvY2tzIiAhPSBubzsgdGhlbgorKyAgIyBkbyBub3Qgb3Zl cndyaXRlIHRoZSB2YWx1ZSBvZiBuZWVkX2xvY2tzIHByb3ZpZGVkIGJ5IHRoZSB1c2VyCisrICB7 ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgaWYgd2UgY2FuIGxvY2sgd2l0aCBo YXJkIGxpbmtzIiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyBpZiB3ZSBjYW4gbG9jayB3aXRo IGhhcmQgbGlua3MuLi4gIiA+JjY7IH0KKysgIGhhcmRfbGlua3M9eWVzCisrICAkUk0gY29uZnRl c3QqCisrICBsbiBjb25mdGVzdC5hIGNvbmZ0ZXN0LmIgMj4vZGV2L251bGwgJiYgaGFyZF9saW5r cz1ubworKyAgdG91Y2ggY29uZnRlc3QuYQorKyAgbG4gY29uZnRlc3QuYSBjb25mdGVzdC5iIDI+ JjUgfHwgaGFyZF9saW5rcz1ubworKyAgbG4gY29uZnRlc3QuYSBjb25mdGVzdC5iIDI+L2Rldi9u dWxsICYmIGhhcmRfbGlua3M9bm8KKysgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1 bHQ6ICRoYXJkX2xpbmtzIiA+JjUKKyskYXNfZWNobyAiJGhhcmRfbGlua3MiID4mNjsgfQorKyAg aWYgdGVzdCAiJGhhcmRfbGlua3MiID0gbm87IHRoZW4KKysgICAgeyAkYXNfZWNobyAiJGFzX21l OiRMSU5FTk86IFdBUk5JTkc6IFxgJENDJyBkb2VzIG5vdCBzdXBwb3J0IFxgLWMgLW8nLCBzbyBc YG1ha2UgLWonIG1heSBiZSB1bnNhZmUiID4mNQorKyRhc19lY2hvICIkYXNfbWU6IFdBUk5JTkc6 IFxgJENDJyBkb2VzIG5vdCBzdXBwb3J0IFxgLWMgLW8nLCBzbyBcYG1ha2UgLWonIG1heSBiZSB1 bnNhZmUiID4mMjt9CisrICAgIG5lZWRfbG9ja3M9d2FybgorKyAgZmkKKytlbHNlCisrICBuZWVk X2xvY2tzPW5vCisrZmkKKysKKysKKysKKysgICAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86 IGNoZWNraW5nIHdoZXRoZXIgdGhlICRjb21waWxlciBsaW5rZXIgKCRMRCkgc3VwcG9ydHMgc2hh cmVkIGxpYnJhcmllcyIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgd2hldGhlciB0aGUgJGNv bXBpbGVyIGxpbmtlciAoJExEKSBzdXBwb3J0cyBzaGFyZWQgbGlicmFyaWVzLi4uICIgPiY2OyB9 CisrCisrICBleHBvcnRfc3ltYm9sc19jbWRzX0NYWD0nJE5NICRsaWJvYmpzICRjb252ZW5pZW5j ZSB8ICRnbG9iYWxfc3ltYm9sX3BpcGUgfCAkU0VEICdcJydzLy4qIC8vJ1wnJyB8IHNvcnQgfCB1 bmlxID4gJGV4cG9ydF9zeW1ib2xzJworKyAgY2FzZSAkaG9zdF9vcyBpbgorKyAgYWl4WzQtOV0q KQorKyAgICAjIElmIHdlJ3JlIHVzaW5nIEdOVSBubSwgdGhlbiB3ZSBkb24ndCB3YW50IHRoZSAi LUMiIG9wdGlvbi4KKysgICAgIyAtQyBtZWFucyBkZW1hbmdsZSB0byBBSVggbm0sIGJ1dCBtZWFu cyBkb24ndCBkZW1hbmdsZSB3aXRoIEdOVSBubQorKyAgICBpZiAkTk0gLVYgMj4mMSB8ICRHUkVQ ICdHTlUnID4gL2Rldi9udWxsOyB0aGVuCisrICAgICAgZXhwb3J0X3N5bWJvbHNfY21kc19DWFg9 JyROTSAtQnBnICRsaWJvYmpzICRjb252ZW5pZW5jZSB8IGF3ayAnXCcneyBpZiAoKChcJCAyID09 ICJUIikgfHwgKFwkIDIgPT0gIkQiKSB8fCAoXCQgMiA9PSAiQiIpKSAmJiAoc3Vic3RyKFwkIDMs MSwxKSAhPSAiLiIpKSB7IHByaW50IFwkIDMgfSB9J1wnJyB8IHNvcnQgLXUgPiAkZXhwb3J0X3N5 bWJvbHMnCisrICAgIGVsc2UKKysgICAgICBleHBvcnRfc3ltYm9sc19jbWRzX0NYWD0nJE5NIC1C Q3BnICRsaWJvYmpzICRjb252ZW5pZW5jZSB8IGF3ayAnXCcneyBpZiAoKChcJCAyID09ICJUIikg fHwgKFwkIDIgPT0gIkQiKSB8fCAoXCQgMiA9PSAiQiIpKSAmJiAoc3Vic3RyKFwkIDMsMSwxKSAh PSAiLiIpKSB7IHByaW50IFwkIDMgfSB9J1wnJyB8IHNvcnQgLXUgPiAkZXhwb3J0X3N5bWJvbHMn CisrICAgIGZpCisrICAgIDs7CisrICBwdzMyKikKKysgICAgZXhwb3J0X3N5bWJvbHNfY21kc19D WFg9IiRsdGRsbF9jbWRzIgorKyAgOzsKKysgIGN5Z3dpbiogfCBtaW5ndyogfCBjZWdjYyopCisr ICAgIGV4cG9ydF9zeW1ib2xzX2NtZHNfQ1hYPSckTk0gJGxpYm9ianMgJGNvbnZlbmllbmNlIHwg JGdsb2JhbF9zeW1ib2xfcGlwZSB8ICRTRUQgLWUgJ1wnJy9eW0JDREdSU11bIF0vcy8uKlsgXVwo W14gXSpcKS9cMSBEQVRBLzsvXi4qWyBdX19ubV9fL3MvXi4qWyBdX19ubV9fXChbXiBdKlwpWyBd W14gXSovXDEgREFUQS87L15JWyBdL2Q7L15bQUlUV11bIF0vcy8uKiAvLydcJycgfCBzb3J0IHwg dW5pcSA+ICRleHBvcnRfc3ltYm9scycKKysgIDs7CisrICAqKQorKyAgICBleHBvcnRfc3ltYm9s c19jbWRzX0NYWD0nJE5NICRsaWJvYmpzICRjb252ZW5pZW5jZSB8ICRnbG9iYWxfc3ltYm9sX3Bp cGUgfCAkU0VEICdcJydzLy4qIC8vJ1wnJyB8IHNvcnQgfCB1bmlxID4gJGV4cG9ydF9zeW1ib2xz JworKyAgOzsKKysgIGVzYWMKKysgIGV4Y2x1ZGVfZXhwc3ltc19DWFg9J19HTE9CQUxfT0ZGU0VU X1RBQkxFX3xfR0xPQkFMX19GW0lEXV8uKicKKysKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVO TzogcmVzdWx0OiAkbGRfc2hsaWJzX0NYWCIgPiY1CisrJGFzX2VjaG8gIiRsZF9zaGxpYnNfQ1hY IiA+JjY7IH0KKyt0ZXN0ICIkbGRfc2hsaWJzX0NYWCIgPSBubyAmJiBjYW5fYnVpbGRfc2hhcmVk PW5vCisrCisrd2l0aF9nbnVfbGRfQ1hYPSR3aXRoX2dudV9sZAorKworKworKworKworKworKwor KyMKKysjIERvIHdlIG5lZWQgdG8gZXhwbGljaXRseSBsaW5rIGxpYmM/CisrIworK2Nhc2UgIngk YXJjaGl2ZV9jbWRzX25lZWRfbGNfQ1hYIiBpbgorK3h8eHllcykKKysgICMgQXNzdW1lIC1sYyBz aG91bGQgYmUgYWRkZWQKKysgIGFyY2hpdmVfY21kc19uZWVkX2xjX0NYWD15ZXMKKysKKysgIGlm IHRlc3QgIiRlbmFibGVfc2hhcmVkIiA9IHllcyAmJiB0ZXN0ICIkR0NDIiA9IHllczsgdGhlbgor KyAgICBjYXNlICRhcmNoaXZlX2NtZHNfQ1hYIGluCisrICAgIConficqKQorKyAgICAgICMgRklY TUU6IHdlIG1heSBoYXZlIHRvIGRlYWwgd2l0aCBtdWx0aS1jb21tYW5kIHNlcXVlbmNlcy4KKysg ICAgICA7OworKyAgICAnJENDICcqKQorKyAgICAgICMgVGVzdCB3aGV0aGVyIHRoZSBjb21waWxl ciBpbXBsaWNpdGx5IGxpbmtzIHdpdGggLWxjIHNpbmNlIG9uIHNvbWUKKysgICAgICAjIHN5c3Rl bXMsIC1sZ2NjIGhhcyB0byBjb21lIGJlZm9yZSAtbGMuIElmIGdjYyBhbHJlYWR5IHBhc3NlcyAt bGMKKysgICAgICAjIHRvIGxkLCBkb24ndCBhZGQgLWxjIGJlZm9yZSAtbGdjYy4KKysgICAgICB7 ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgd2hldGhlciAtbGMgc2hvdWxkIGJl IGV4cGxpY2l0bHkgbGlua2VkIGluIiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyB3aGV0aGVy IC1sYyBzaG91bGQgYmUgZXhwbGljaXRseSBsaW5rZWQgaW4uLi4gIiA+JjY7IH0KKysgICAgICAk Uk0gY29uZnRlc3QqCisrICAgICAgZWNobyAiJGx0X3NpbXBsZV9jb21waWxlX3Rlc3RfY29kZSIg PiBjb25mdGVzdC4kYWNfZXh0CisrCisrICAgICAgaWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJ TkVOTzogXCIkYWNfY29tcGlsZVwiIikgPiY1CisrICAoZXZhbCAkYWNfY29tcGlsZSkgMj4mNQor KyAgYWNfc3RhdHVzPSQ/CisrICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19z dGF0dXMiID4mNQorKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gMj5jb25mdGVzdC5lcnI7IHRoZW4K KysgICAgICAgIHNvbmFtZT1jb25mdGVzdAorKyAgICAgICAgbGliPWNvbmZ0ZXN0CisrICAgICAg ICBsaWJvYmpzPWNvbmZ0ZXN0LiRhY19vYmpleHQKKysgICAgICAgIGRlcGxpYnM9CisrICAgICAg ICB3bD0kbHRfcHJvZ19jb21waWxlcl93bF9DWFgKKysJcGljX2ZsYWc9JGx0X3Byb2dfY29tcGls ZXJfcGljX0NYWAorKyAgICAgICAgY29tcGlsZXJfZmxhZ3M9LXYKKysgICAgICAgIGxpbmtlcl9m bGFncz0tdgorKyAgICAgICAgdmVyc3RyaW5nPQorKyAgICAgICAgb3V0cHV0X29iamRpcj0uCisr ICAgICAgICBsaWJuYW1lPWNvbmZ0ZXN0CisrICAgICAgICBsdF9zYXZlX2FsbG93X3VuZGVmaW5l ZF9mbGFnPSRhbGxvd191bmRlZmluZWRfZmxhZ19DWFgKKysgICAgICAgIGFsbG93X3VuZGVmaW5l ZF9mbGFnX0NYWD0KKysgICAgICAgIGlmIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwi JGFyY2hpdmVfY21kc19DWFggMlw+XCYxIFx8ICRHUkVQIFwiIC1sYyBcIiBcPi9kZXYvbnVsbCAy XD5cJjFcIiIpID4mNQorKyAgKGV2YWwgJGFyY2hpdmVfY21kc19DWFggMlw+XCYxIFx8ICRHUkVQ IFwiIC1sYyBcIiBcPi9kZXYvbnVsbCAyXD5cJjEpIDI+JjUKKysgIGFjX3N0YXR1cz0kPworKyAg JGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKysgIChleGl0 ICRhY19zdGF0dXMpOyB9CisrICAgICAgICB0aGVuCisrCSAgYXJjaGl2ZV9jbWRzX25lZWRfbGNf Q1hYPW5vCisrICAgICAgICBlbHNlCisrCSAgYXJjaGl2ZV9jbWRzX25lZWRfbGNfQ1hYPXllcwor KyAgICAgICAgZmkKKysgICAgICAgIGFsbG93X3VuZGVmaW5lZF9mbGFnX0NYWD0kbHRfc2F2ZV9h bGxvd191bmRlZmluZWRfZmxhZworKyAgICAgIGVsc2UKKysgICAgICAgIGNhdCBjb25mdGVzdC5l cnIgMT4mNQorKyAgICAgIGZpCisrICAgICAgJFJNIGNvbmZ0ZXN0KgorKyAgICAgIHsgJGFzX2Vj aG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhcmNoaXZlX2NtZHNfbmVlZF9sY19DWFgiID4m NQorKyRhc19lY2hvICIkYXJjaGl2ZV9jbWRzX25lZWRfbGNfQ1hYIiA+JjY7IH0KKysgICAgICA7 OworKyAgICBlc2FjCisrICBmaQorKyAgOzsKKytlc2FjCisrCisrCisrCisrCisrCisrCisrCisr CisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisr CisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisr CisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisr ICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBkeW5hbWljIGxpbmtlciBj aGFyYWN0ZXJpc3RpY3MiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIGR5bmFtaWMgbGlua2Vy IGNoYXJhY3RlcmlzdGljcy4uLiAiID4mNjsgfQorKworK2xpYnJhcnlfbmFtZXNfc3BlYz0KKyts aWJuYW1lX3NwZWM9J2xpYiRuYW1lJworK3NvbmFtZV9zcGVjPQorK3NocmV4dF9jbWRzPSIuc28i CisrcG9zdGluc3RhbGxfY21kcz0KKytwb3N0dW5pbnN0YWxsX2NtZHM9CisrZmluaXNoX2NtZHM9 CisrZmluaXNoX2V2YWw9Cisrc2hsaWJwYXRoX3Zhcj0KKytzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1 bnBhdGg9dW5rbm93bgorK3ZlcnNpb25fdHlwZT1ub25lCisrZHluYW1pY19saW5rZXI9IiRob3N0 X29zIGxkLnNvIgorK3N5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjPSIvbGliIC91c3IvbGliIgor K25lZWRfbGliX3ByZWZpeD11bmtub3duCisraGFyZGNvZGVfaW50b19saWJzPW5vCisrCisrIyB3 aGVuIHlvdSBzZXQgbmVlZF92ZXJzaW9uIHRvIG5vLCBtYWtlIHN1cmUgaXQgZG9lcyBub3QgY2F1 c2UgLXNldF92ZXJzaW9uCisrIyBmbGFncyB0byBiZSBsZWZ0IHdpdGhvdXQgYXJndW1lbnRzCisr bmVlZF92ZXJzaW9uPXVua25vd24KKysKKytjYXNlICRob3N0X29zIGluCisrYWl4MyopCisrICB2 ZXJzaW9uX3R5cGU9bGludXgKKysgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVs ZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAkbGlibmFtZS5hJworKyAgc2hsaWJwYXRoX3Zh cj1MSUJQQVRICisrCisrICAjIEFJWCAzIGhhcyBubyB2ZXJzaW9uaW5nIHN1cHBvcnQsIHNvIHdl IGFwcGVuZCBhIG1ham9yIHZlcnNpb24gdG8gdGhlIG5hbWUuCisrICBzb25hbWVfc3BlYz0nJHts aWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yJworKyAgOzsKKysKKythaXhbNC05 XSopCisrICB2ZXJzaW9uX3R5cGU9bGludXgKKysgIG5lZWRfbGliX3ByZWZpeD1ubworKyAgbmVl ZF92ZXJzaW9uPW5vCisrICBoYXJkY29kZV9pbnRvX2xpYnM9eWVzCisrICBpZiB0ZXN0ICIkaG9z dF9jcHUiID0gaWE2NDsgdGhlbgorKyAgICAjIEFJWCA1IHN1cHBvcnRzIElBNjQKKysgICAgbGli cmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3Ig JHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAkbGlibmFtZSR7c2hh cmVkX2V4dH0nCisrICAgIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRICisrICBlbHNlCisr ICAgICMgV2l0aCBHQ0MgdXAgdG8gMi45NS54LCBjb2xsZWN0MiB3b3VsZCBjcmVhdGUgYW4gaW1w b3J0IGZpbGUKKysgICAgIyBmb3IgZGVwZW5kZW5jZSBsaWJyYXJpZXMuICBUaGUgaW1wb3J0IGZp bGUgd291bGQgc3RhcnQgd2l0aAorKyAgICAjIHRoZSBsaW5lIGAjISAuJy4gIFRoaXMgd291bGQg Y2F1c2UgdGhlIGdlbmVyYXRlZCBsaWJyYXJ5IHRvCisrICAgICMgZGVwZW5kIG9uIGAuJywgYWx3 YXlzIGFuIGludmFsaWQgbGlicmFyeS4gIFRoaXMgd2FzIGZpeGVkIGluCisrICAgICMgZGV2ZWxv cG1lbnQgc25hcHNob3RzIG9mIEdDQyBwcmlvciB0byAzLjAuCisrICAgIGNhc2UgJGhvc3Rfb3Mg aW4KKysgICAgICBhaXg0IHwgYWl4NC5bMDFdIHwgYWl4NC5bMDFdLiopCisrICAgICAgaWYgeyBl Y2hvICcjaWYgX19HTlVDX18gPiAyIHx8IChfX0dOVUNfXyA9PSAyICYmIF9fR05VQ19NSU5PUl9f ID49IDk3KScKKysJICAgZWNobyAnIHllcyAnCisrCSAgIGVjaG8gJyNlbmRpZic7IH0gfCAke0ND fSAtRSAtIHwgJEdSRVAgeWVzID4gL2Rldi9udWxsOyB0aGVuCisrCToKKysgICAgICBlbHNlCisr CWNhbl9idWlsZF9zaGFyZWQ9bm8KKysgICAgICBmaQorKyAgICAgIDs7CisrICAgIGVzYWMKKysg ICAgIyBBSVggKG9uIFBvd2VyKikgaGFzIG5vIHZlcnNpb25pbmcgc3VwcG9ydCwgc28gY3VycmVu dGx5IHdlIGNhbiBub3QgaGFyZGNvZGUgY29ycmVjdAorKyAgICAjIHNvbmFtZSBpbnRvIGV4ZWN1 dGFibGUuIFByb2JhYmx5IHdlIGNhbiBhZGQgdmVyc2lvbmluZyBzdXBwb3J0IHRvCisrICAgICMg Y29sbGVjdDIsIHNvIGFkZGl0aW9uYWwgbGlua3MgY2FuIGJlIHVzZWZ1bCBpbiBmdXR1cmUuCisr ICAgIGlmIHRlc3QgIiRhaXhfdXNlX3J1bnRpbWVsaW5raW5nIiA9IHllczsgdGhlbgorKyAgICAg ICMgSWYgdXNpbmcgcnVuIHRpbWUgbGlua2luZyAob24gQUlYIDQuMiBvciBsYXRlcikgdXNlIGxp YjxuYW1lPi5zbworKyAgICAgICMgaW5zdGVhZCBvZiBsaWI8bmFtZT4uYSB0byBsZXQgcGVvcGxl IGtub3cgdGhhdCB0aGVzZSBhcmUgbm90CisrICAgICAgIyB0eXBpY2FsIEFJWCBzaGFyZWQgbGli cmFyaWVzLgorKyAgICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0k e3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0k bWFqb3IgJGxpYm5hbWUke3NoYXJlZF9leHR9JworKyAgICBlbHNlCisrICAgICAgIyBXZSBwcmVz ZXJ2ZSAuYSBhcyBleHRlbnNpb24gZm9yIHNoYXJlZCBsaWJyYXJpZXMgdGhyb3VnaCBBSVg0LjIK KysgICAgICAjIGFuZCBsYXRlciB3aGVuIHdlIGFyZSBub3QgZG9pbmcgcnVuIHRpbWUgbGlua2lu Zy4KKysgICAgICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9LmEgJGxp Ym5hbWUuYScKKysgICAgICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJl ZF9leHR9JG1ham9yJworKyAgICBmaQorKyAgICBzaGxpYnBhdGhfdmFyPUxJQlBBVEgKKysgIGZp CisrICA7OworKworK2FtaWdhb3MqKQorKyAgY2FzZSAkaG9zdF9jcHUgaW4KKysgIHBvd2VycGMp CisrICAgICMgU2luY2UgSnVseSAyMDA3IEFtaWdhT1M0IG9mZmljaWFsbHkgc3VwcG9ydHMgLnNv IGxpYnJhcmllcy4KKysgICAgIyBXaGVuIGNvbXBpbGluZyB0aGUgZXhlY3V0YWJsZSwgYWRkIC11 c2UtZHlubGQgLUxzb2JqczogdG8gdGhlIGNvbXBpbGVsaW5lLgorKyAgICBsaWJyYXJ5X25hbWVz X3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJu YW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICRsaWJuYW1lJHtzaGFyZWRfZXh0fScK KysgICAgOzsKKysgIG02OGspCisrICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJGxpYm5hbWUuaXhs aWJyYXJ5ICRsaWJuYW1lLmEnCisrICAgICMgQ3JlYXRlICR7bGlibmFtZX1faXhsaWJyYXJ5LmEg ZW50cmllcyBpbiAvc3lzL2xpYnMuCisrICAgIGZpbmlzaF9ldmFsPSdmb3IgbGliIGluIGBscyAk bGliZGlyLyouaXhsaWJyYXJ5IDI+L2Rldi9udWxsYDsgZG8gbGlibmFtZT1gJEVDSE8gIlgkbGli IiB8ICRYc2VkIC1lICdcJydzJV4uKi9cKFteL10qXClcLml4bGlicmFyeSQlXDElJ1wnJ2A7IHRl c3QgJFJNIC9zeXMvbGlicy8ke2xpYm5hbWV9X2l4bGlicmFyeS5hOyAkc2hvdyAiY2QgL3N5cy9s aWJzICYmICRMTl9TICRsaWIgJHtsaWJuYW1lfV9peGxpYnJhcnkuYSI7IGNkIC9zeXMvbGlicyAm JiAkTE5fUyAkbGliICR7bGlibmFtZX1faXhsaWJyYXJ5LmEgfHwgZXhpdCAxOyBkb25lJworKyAg ICA7OworKyAgZXNhYworKyAgOzsKKysKKytiZW9zKikKKysgIGxpYnJhcnlfbmFtZXNfc3BlYz0n JHtsaWJuYW1lfSR7c2hhcmVkX2V4dH0nCisrICBkeW5hbWljX2xpbmtlcj0iJGhvc3Rfb3MgbGQu c28iCisrICBzaGxpYnBhdGhfdmFyPUxJQlJBUllfUEFUSAorKyAgOzsKKysKKytic2RpWzQ1XSop CisrICB2ZXJzaW9uX3R5cGU9bGludXgKKysgIG5lZWRfdmVyc2lvbj1ubworKyAgbGlicmFyeV9u YW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7 bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAkbGlibmFtZSR7c2hhcmVkX2V4 dH0nCisrICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1h am9yJworKyAgZmluaXNoX2NtZHM9J1BBVEg9IlwkUEFUSDovc2JpbiIgbGRjb25maWcgJGxpYmRp cicKKysgIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRICisrICBzeXNfbGliX3NlYXJjaF9w YXRoX3NwZWM9Ii9zaGxpYiAvdXNyL2xpYiAvdXNyL1gxMS9saWIgL3Vzci9jb250cmliL2xpYiAv bGliIC91c3IvbG9jYWwvbGliIgorKyAgc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWM9Ii9zaGxp YiAvdXNyL2xpYiAvdXNyL2xvY2FsL2xpYiIKKysgICMgdGhlIGRlZmF1bHQgbGQuc28uY29uZiBh bHNvIGNvbnRhaW5zIC91c3IvY29udHJpYi9saWIgYW5kCisrICAjIC91c3IvWDExUjYvbGliICgv dXNyL1gxMSBpcyBhIGxpbmsgdG8gL3Vzci9YMTFSNiksIGJ1dCBsZXQgdXMgYWxsb3cKKysgICMg bGlidG9vbCB0byBoYXJkLWNvZGUgdGhlc2UgaW50byBwcm9ncmFtcworKyAgOzsKKysKKytjeWd3 aW4qIHwgbWluZ3cqIHwgcHczMiogfCBjZWdjYyopCisrICB2ZXJzaW9uX3R5cGU9d2luZG93cwor KyAgc2hyZXh0X2NtZHM9Ii5kbGwiCisrICBuZWVkX3ZlcnNpb249bm8KKysgIG5lZWRfbGliX3By ZWZpeD1ubworKworKyAgY2FzZSAkR0NDLCRob3N0X29zIGluCisrICB5ZXMsY3lnd2luKiB8IHll cyxtaW5ndyogfCB5ZXMscHczMiogfCB5ZXMsY2VnY2MqKQorKyAgICBsaWJyYXJ5X25hbWVzX3Nw ZWM9JyRsaWJuYW1lLmRsbC5hJworKyAgICAjIERMTCBpcyBpbnN0YWxsZWQgdG8gJChsaWJkaXIp Ly4uL2JpbiBieSBwb3N0aW5zdGFsbF9jbWRzCisrICAgIHBvc3RpbnN0YWxsX2NtZHM9J2Jhc2Vf ZmlsZT1gYmFzZW5hbWUgXCR7ZmlsZX1gfgorKyAgICAgIGRscGF0aD1gJFNIRUxMIDI+JjEgLWMg J1wnJy4gJGRpci8nXCcnXCR7YmFzZV9maWxlfSdcJydpOyBlY2hvIFwkZGxuYW1lJ1wnJ2B+Cisr ICAgICAgZGxkaXI9JGRlc3RkaXIvYGRpcm5hbWUgXCRkbHBhdGhgfgorKyAgICAgIHRlc3QgLWQg XCRkbGRpciB8fCBta2RpciAtcCBcJGRsZGlyfgorKyAgICAgICRpbnN0YWxsX3Byb2cgJGRpci8k ZGxuYW1lIFwkZGxkaXIvJGRsbmFtZX4KKysgICAgICBjaG1vZCBhK3ggXCRkbGRpci8kZGxuYW1l fgorKyAgICAgIGlmIHRlc3QgLW4gJ1wnJyRzdHJpcG1lJ1wnJyAmJiB0ZXN0IC1uICdcJyckc3Ry aXBsaWInXCcnOyB0aGVuCisrICAgICAgICBldmFsICdcJyckc3RyaXBsaWIgXCRkbGRpci8kZGxu YW1lJ1wnJyB8fCBleGl0IFwkPzsKKysgICAgICBmaScKKysgICAgcG9zdHVuaW5zdGFsbF9jbWRz PSdkbGRsbD1gJFNIRUxMIDI+JjEgLWMgJ1wnJy4gJGZpbGU7IGVjaG8gXCRkbG5hbWUnXCcnYH4K KysgICAgICBkbHBhdGg9JGRpci9cJGRsZGxsfgorKyAgICAgICAkUk0gXCRkbHBhdGgnCisrICAg IHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD15ZXMKKysKKysgICAgY2FzZSAkaG9zdF9vcyBp bgorKyAgICBjeWd3aW4qKQorKyAgICAgICMgQ3lnd2luIERMTHMgdXNlICdjeWcnIHByZWZpeCBy YXRoZXIgdGhhbiAnbGliJworKyAgICAgIHNvbmFtZV9zcGVjPSdgZWNobyAke2xpYm5hbWV9IHwg c2VkIC1lICdzL15saWIvY3lnLydgYGVjaG8gJHtyZWxlYXNlfSB8ICRTRUQgLWUgJ3MvWy5dLy0v ZydgJHt2ZXJzdWZmaXh9JHtzaGFyZWRfZXh0fScKKysgICAgICBzeXNfbGliX3NlYXJjaF9wYXRo X3NwZWM9Ii91c3IvbGliIC9saWIvdzMyYXBpIC9saWIgL3Vzci9sb2NhbC9saWIiCisrICAgICAg OzsKKysgICAgbWluZ3cqIHwgY2VnY2MqKQorKyAgICAgICMgTWluR1cgRExMcyB1c2UgdHJhZGl0 aW9uYWwgJ2xpYicgcHJlZml4CisrICAgICAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX1gZWNobyAk e3JlbGVhc2V9IHwgJFNFRCAtZSAncy9bLl0vLS9nJ2Ake3ZlcnN1ZmZpeH0ke3NoYXJlZF9leHR9 JworKyAgICAgIHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYz1gJENDIC1wcmludC1zZWFyY2gtZGly cyB8ICRHUkVQICJebGlicmFyaWVzOiIgfCAkU0VEIC1lICJzL15saWJyYXJpZXM6Ly8iIC1lICJz LD0vLC8sZyJgCisrICAgICAgaWYgJEVDSE8gIiRzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWMiIHwg JEdSRVAgJztbYy16Qy1aXTovJyA+L2Rldi9udWxsOyB0aGVuCisrICAgICAgICAjIEl0IGlzIG1v c3QgcHJvYmFibHkgYSBXaW5kb3dzIGZvcm1hdCBQQVRIIHByaW50ZWQgYnkKKysgICAgICAgICMg bWluZ3cgZ2NjLCBidXQgd2UgYXJlIHJ1bm5pbmcgb24gQ3lnd2luLiBHY2MgcHJpbnRzIGl0cyBz ZWFyY2gKKysgICAgICAgICMgcGF0aCB3aXRoIDsgc2VwYXJhdG9ycywgYW5kIHdpdGggZHJpdmUg bGV0dGVycy4gV2UgY2FuIGhhbmRsZSB0aGUKKysgICAgICAgICMgZHJpdmUgbGV0dGVycyAoY3ln d2luIGZpbGV1dGlscyB1bmRlcnN0YW5kcyB0aGVtKSwgc28gbGVhdmUgdGhlbSwKKysgICAgICAg ICMgZXNwZWNpYWxseSBhcyB3ZSBtaWdodCBwYXNzIGZpbGVzIGZvdW5kIHRoZXJlIHRvIGEgbWlu Z3cgb2JqZHVtcCwKKysgICAgICAgICMgd2hpY2ggd291bGRuJ3QgdW5kZXJzdGFuZCBhIGN5Z3dp bmlmaWVkIHBhdGguIEFoaC4KKysgICAgICAgIHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYz1gJEVD SE8gIiRzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWMiIHwgJFNFRCAtZSAncy87LyAvZydgCisrICAg ICAgZWxzZQorKyAgICAgICAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPWAkRUNITyAiJHN5c19s aWJfc2VhcmNoX3BhdGhfc3BlYyIgfCAkU0VEICAtZSAicy8kUEFUSF9TRVBBUkFUT1IvIC9nImAK KysgICAgICBmaQorKyAgICAgIDs7CisrICAgIHB3MzIqKQorKyAgICAgICMgcHczMiBETExzIHVz ZSAncHcnIHByZWZpeCByYXRoZXIgdGhhbiAnbGliJworKyAgICAgIGxpYnJhcnlfbmFtZXNfc3Bl Yz0nYGVjaG8gJHtsaWJuYW1lfSB8IHNlZCAtZSAncy9ebGliL3B3LydgYGVjaG8gJHtyZWxlYXNl fSB8ICRTRUQgLWUgJ3MvWy5dLy0vZydgJHt2ZXJzdWZmaXh9JHtzaGFyZWRfZXh0fScKKysgICAg ICA7OworKyAgICBlc2FjCisrICAgIDs7CisrCisrICAqKQorKyAgICBsaWJyYXJ5X25hbWVzX3Nw ZWM9JyR7bGlibmFtZX1gZWNobyAke3JlbGVhc2V9IHwgJFNFRCAtZSAncy9bLl0vLS9nJ2Ake3Zl cnN1ZmZpeH0ke3NoYXJlZF9leHR9ICRsaWJuYW1lLmxpYicKKysgICAgOzsKKysgIGVzYWMKKysg IGR5bmFtaWNfbGlua2VyPSdXaW4zMiBsZC5leGUnCisrICAjIEZJWE1FOiBmaXJzdCB3ZSBzaG91 bGQgc2VhcmNoIC4gYW5kIHRoZSBkaXJlY3RvcnkgdGhlIGV4ZWN1dGFibGUgaXMgaW4KKysgIHNo bGlicGF0aF92YXI9UEFUSAorKyAgOzsKKysKKytkYXJ3aW4qIHwgcmhhcHNvZHkqKQorKyAgZHlu YW1pY19saW5rZXI9IiRob3N0X29zIGR5bGQiCisrICB2ZXJzaW9uX3R5cGU9ZGFyd2luCisrICBu ZWVkX2xpYl9wcmVmaXg9bm8KKysgIG5lZWRfdmVyc2lvbj1ubworKyAgbGlicmFyeV9uYW1lc19z cGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7bWFqb3J9JHNoYXJlZF9leHQgJHtsaWJuYW1lfSRz aGFyZWRfZXh0JworKyAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHttYWpvcn0k c2hhcmVkX2V4dCcKKysgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD15ZXMKKysgIHNobGli cGF0aF92YXI9RFlMRF9MSUJSQVJZX1BBVEgKKysgIHNocmV4dF9jbWRzPSdgdGVzdCAuJG1vZHVs ZSA9IC55ZXMgJiYgZWNobyAuc28gfHwgZWNobyAuZHlsaWJgJworKworKyAgc3lzX2xpYl9kbHNl YXJjaF9wYXRoX3NwZWM9Jy91c3IvbG9jYWwvbGliIC9saWIgL3Vzci9saWInCisrICA7OworKwor K2RndXgqKQorKyAgdmVyc2lvbl90eXBlPWxpbnV4CisrICBuZWVkX2xpYl9wcmVmaXg9bm8KKysg IG5lZWRfdmVyc2lvbj1ubworKyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxl YXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRf ZXh0fSRtYWpvciAkbGlibmFtZSRzaGFyZWRfZXh0JworKyAgc29uYW1lX3NwZWM9JyR7bGlibmFt ZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKKysgIHNobGlicGF0aF92YXI9TERfTElC UkFSWV9QQVRICisrICA7OworKworK2ZyZWVic2QxKikKKysgIGR5bmFtaWNfbGlua2VyPW5vCisr ICA7OworKworK2ZyZWVic2QqIHwgZHJhZ29uZmx5KikKKysgICMgRHJhZ29uRmx5IGRvZXMgbm90 IGhhdmUgYW91dC4gIFdoZW4vaWYgdGhleSBpbXBsZW1lbnQgYSBuZXcKKysgICMgdmVyc2lvbmlu ZyBtZWNoYW5pc20sIGFkanVzdCB0aGlzLgorKyAgaWYgdGVzdCAteCAvdXNyL2Jpbi9vYmpmb3Jt YXQ7IHRoZW4KKysgICAgb2JqZm9ybWF0PWAvdXNyL2Jpbi9vYmpmb3JtYXRgCisrICBlbHNlCisr ICAgIGNhc2UgJGhvc3Rfb3MgaW4KKysgICAgZnJlZWJzZFsxMjNdKikgb2JqZm9ybWF0PWFvdXQg OzsKKysgICAgKikgb2JqZm9ybWF0PWVsZiA7OworKyAgICBlc2FjCisrICBmaQorKyAgdmVyc2lv bl90eXBlPWZyZWVic2QtJG9iamZvcm1hdAorKyAgY2FzZSAkdmVyc2lvbl90eXBlIGluCisrICAg IGZyZWVic2QtZWxmKikKKysgICAgICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3Jl bGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJl ZF9leHR9ICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKKysgICAgICBuZWVkX3ZlcnNpb249bm8KKysg ICAgICBuZWVkX2xpYl9wcmVmaXg9bm8KKysgICAgICA7OworKyAgICBmcmVlYnNkLSopCisrICAg ICAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0k dmVyc3VmZml4ICRsaWJuYW1lJHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXgnCisrICAgICAgbmVlZF92 ZXJzaW9uPXllcworKyAgICAgIDs7CisrICBlc2FjCisrICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJB UllfUEFUSAorKyAgY2FzZSAkaG9zdF9vcyBpbgorKyAgZnJlZWJzZDIqKQorKyAgICBzaGxpYnBh dGhfb3ZlcnJpZGVzX3J1bnBhdGg9eWVzCisrICAgIDs7CisrICBmcmVlYnNkMy5bMDFdKiB8IGZy ZWVic2RlbGYzLlswMV0qKQorKyAgICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9eWVzCisr ICAgIGhhcmRjb2RlX2ludG9fbGlicz15ZXMKKysgICAgOzsKKysgIGZyZWVic2QzLlsyLTldKiB8 IGZyZWVic2RlbGYzLlsyLTldKiB8IFwKKysgIGZyZWVic2Q0LlswLTVdIHwgZnJlZWJzZGVsZjQu WzAtNV0gfCBmcmVlYnNkNC4xLjEgfCBmcmVlYnNkZWxmNC4xLjEpCisrICAgIHNobGlicGF0aF9v dmVycmlkZXNfcnVucGF0aD1ubworKyAgICBoYXJkY29kZV9pbnRvX2xpYnM9eWVzCisrICAgIDs7 CisrICAqKSAjIGZyb20gNC42IG9uLCBhbmQgRHJhZ29uRmx5CisrICAgIHNobGlicGF0aF9vdmVy cmlkZXNfcnVucGF0aD15ZXMKKysgICAgaGFyZGNvZGVfaW50b19saWJzPXllcworKyAgICA7Owor KyAgZXNhYworKyAgOzsKKysKKytnbnUqKQorKyAgdmVyc2lvbl90eXBlPWxpbnV4CisrICBuZWVk X2xpYl9wcmVmaXg9bm8KKysgIG5lZWRfdmVyc2lvbj1ubworKyAgbGlicmFyeV9uYW1lc19zcGVj PScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0k e3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR7bWFqb3J9ICR7bGlibmFtZX0ke3NoYXJlZF9leHR9Jwor KyAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicK KysgIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRICisrICBoYXJkY29kZV9pbnRvX2xpYnM9 eWVzCisrICA7OworKworK2hwdXg5KiB8IGhwdXgxMCogfCBocHV4MTEqKQorKyAgIyBHaXZlIGEg c29uYW1lIGNvcnJlc3BvbmRpbmcgdG8gdGhlIG1ham9yIHZlcnNpb24gc28gdGhhdCBkbGQuc2wg cmVmdXNlcyB0bworKyAgIyBsaW5rIGFnYWluc3Qgb3RoZXIgdmVyc2lvbnMuCisrICB2ZXJzaW9u X3R5cGU9c3Vub3MKKysgIG5lZWRfbGliX3ByZWZpeD1ubworKyAgbmVlZF92ZXJzaW9uPW5vCisr ICBjYXNlICRob3N0X2NwdSBpbgorKyAgaWE2NCopCisrICAgIHNocmV4dF9jbWRzPScuc28nCisr ICAgIGhhcmRjb2RlX2ludG9fbGlicz15ZXMKKysgICAgZHluYW1pY19saW5rZXI9IiRob3N0X29z IGRsZC5zbyIKKysgICAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKKysgICAgc2hsaWJw YXRoX292ZXJyaWRlc19ydW5wYXRoPXllcyAjIFVubGVzcyArbm9lbnZ2YXIgaXMgc3BlY2lmaWVk LgorKyAgICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRf ZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICRs aWJuYW1lJHtzaGFyZWRfZXh0fScKKysgICAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVh c2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKKysgICAgaWYgdGVzdCAiWCRIUFVYX0lBNjRfTU9ERSIg PSBYMzI7IHRoZW4KKysgICAgICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9Ii91c3IvbGliL2hw dXgzMiAvdXNyL2xvY2FsL2xpYi9ocHV4MzIgL3Vzci9sb2NhbC9saWIiCisrICAgIGVsc2UKKysg ICAgICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9Ii91c3IvbGliL2hwdXg2NCAvdXNyL2xvY2Fs L2xpYi9ocHV4NjQiCisrICAgIGZpCisrICAgIHN5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjPSRz eXNfbGliX3NlYXJjaF9wYXRoX3NwZWMKKysgICAgOzsKKysgIGhwcGEqNjQqKQorKyAgICBzaHJl eHRfY21kcz0nLnNsJworKyAgICBoYXJkY29kZV9pbnRvX2xpYnM9eWVzCisrICAgIGR5bmFtaWNf bGlua2VyPSIkaG9zdF9vcyBkbGQuc2wiCisrICAgIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9Q QVRIICMgSG93IHNob3VsZCB3ZSBoYW5kbGUgU0hMSUJfUEFUSAorKyAgICBzaGxpYnBhdGhfb3Zl cnJpZGVzX3J1bnBhdGg9eWVzICMgVW5sZXNzICtub2VudnZhciBpcyBzcGVjaWZpZWQuCisrICAg IGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZl cnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJGxpYm5hbWUk e3NoYXJlZF9leHR9JworKyAgICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3No YXJlZF9leHR9JG1ham9yJworKyAgICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9Ii91c3IvbGli L3BhMjBfNjQgL3Vzci9jY3MvbGliL3BhMjBfNjQiCisrICAgIHN5c19saWJfZGxzZWFyY2hfcGF0 aF9zcGVjPSRzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWMKKysgICAgOzsKKysgICopCisrICAgIHNo cmV4dF9jbWRzPScuc2wnCisrICAgIGR5bmFtaWNfbGlua2VyPSIkaG9zdF9vcyBkbGQuc2wiCisr ICAgIHNobGlicGF0aF92YXI9U0hMSUJfUEFUSAorKyAgICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1 bnBhdGg9bm8gIyArcyBpcyByZXF1aXJlZCB0byBlbmFibGUgU0hMSUJfUEFUSAorKyAgICBsaWJy YXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZm aXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICRsaWJuYW1lJHtzaGFy ZWRfZXh0fScKKysgICAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRf ZXh0fSRtYWpvcicKKysgICAgOzsKKysgIGVzYWMKKysgICMgSFAtVVggcnVucyAqcmVhbGx5KiBz bG93bHkgdW5sZXNzIHNoYXJlZCBsaWJyYXJpZXMgYXJlIG1vZGUgNTU1LgorKyAgcG9zdGluc3Rh bGxfY21kcz0nY2htb2QgNTU1ICRsaWInCisrICA7OworKworK2ludGVyaXhbMy05XSopCisrICB2 ZXJzaW9uX3R5cGU9bGludXgKKysgIG5lZWRfbGliX3ByZWZpeD1ubworKyAgbmVlZF92ZXJzaW9u PW5vCisrICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRf ZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICR7 bGlibmFtZX0ke3NoYXJlZF9leHR9JworKyAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVh c2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKKysgIGR5bmFtaWNfbGlua2VyPSdJbnRlcml4IDMueCBs ZC5zby4xIChQRSwgbGlrZSBFTEYpJworKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgK KysgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD1ubworKyAgaGFyZGNvZGVfaW50b19saWJz PXllcworKyAgOzsKKysKKytpcml4NSogfCBpcml4NiogfCBub25zdG9wdXgqKQorKyAgY2FzZSAk aG9zdF9vcyBpbgorKyAgICBub25zdG9wdXgqKSB2ZXJzaW9uX3R5cGU9bm9uc3RvcHV4IDs7Cisr ICAgICopCisrCWlmIHRlc3QgIiRsdF9jdl9wcm9nX2dudV9sZCIgPSB5ZXM7IHRoZW4KKysJCXZl cnNpb25fdHlwZT1saW51eAorKwllbHNlCisrCQl2ZXJzaW9uX3R5cGU9aXJpeAorKwlmaSA7Owor KyAgZXNhYworKyAgbmVlZF9saWJfcHJlZml4PW5vCisrICBuZWVkX3ZlcnNpb249bm8KKysgIHNv bmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCisrICBs aWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJz dWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICR7bGlibmFtZX0k e3JlbGVhc2V9JHtzaGFyZWRfZXh0fSAkbGlibmFtZSR7c2hhcmVkX2V4dH0nCisrICBjYXNlICRo b3N0X29zIGluCisrICBpcml4NSogfCBub25zdG9wdXgqKQorKyAgICBsaWJzdWZmPSBzaGxpYnN1 ZmY9CisrICAgIDs7CisrICAqKQorKyAgICBjYXNlICRMRCBpbiAjIGxpYnRvb2wubTQgd2lsbCBh ZGQgb25lIG9mIHRoZXNlIHN3aXRjaGVzIHRvIExECisrICAgICotMzJ8KiItMzIgInwqLW1lbGYz MmJzbWlwfCoiLW1lbGYzMmJzbWlwICIpCisrICAgICAgbGlic3VmZj0gc2hsaWJzdWZmPSBsaWJt YWdpYz0zMi1iaXQ7OworKyAgICAqLW4zMnwqIi1uMzIgInwqLW1lbGYzMmJtaXBuMzJ8KiItbWVs ZjMyYm1pcG4zMiAiKQorKyAgICAgIGxpYnN1ZmY9MzIgc2hsaWJzdWZmPU4zMiBsaWJtYWdpYz1O MzI7OworKyAgICAqLTY0fCoiLTY0ICJ8Ki1tZWxmNjRibWlwfCoiLW1lbGY2NGJtaXAgIikKKysg ICAgICBsaWJzdWZmPTY0IHNobGlic3VmZj02NCBsaWJtYWdpYz02NC1iaXQ7OworKyAgICAqKSBs aWJzdWZmPSBzaGxpYnN1ZmY9IGxpYm1hZ2ljPW5ldmVyLW1hdGNoOzsKKysgICAgZXNhYworKyAg ICA7OworKyAgZXNhYworKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZJHtzaGxpYnN1ZmZ9X1BB VEgKKysgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD1ubworKyAgc3lzX2xpYl9zZWFyY2hf cGF0aF9zcGVjPSIvdXNyL2xpYiR7bGlic3VmZn0gL2xpYiR7bGlic3VmZn0gL3Vzci9sb2NhbC9s aWIke2xpYnN1ZmZ9IgorKyAgc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWM9Ii91c3IvbGliJHts aWJzdWZmfSAvbGliJHtsaWJzdWZmfSIKKysgIGhhcmRjb2RlX2ludG9fbGlicz15ZXMKKysgIDs7 CisrCisrIyBObyBzaGFyZWQgbGliIHN1cHBvcnQgZm9yIExpbnV4IG9sZGxkLCBhb3V0LCBvciBj b2ZmLgorK2xpbnV4Km9sZGxkKiB8IGxpbnV4KmFvdXQqIHwgbGludXgqY29mZiopCisrICBkeW5h bWljX2xpbmtlcj1ubworKyAgOzsKKysKKysjIFRoaXMgbXVzdCBiZSBMaW51eCBFTEYuCisrbGlu dXgqIHwgaypic2QqLWdudSkKKysgIHZlcnNpb25fdHlwZT1saW51eAorKyAgbmVlZF9saWJfcHJl Zml4PW5vCisrICBuZWVkX3ZlcnNpb249bm8KKysgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJu YW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNl fSR7c2hhcmVkX2V4dH0kbWFqb3IgJGxpYm5hbWUke3NoYXJlZF9leHR9JworKyAgc29uYW1lX3Nw ZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKKysgIGZpbmlzaF9j bWRzPSdQQVRIPSJcJFBBVEg6L3NiaW4iIGxkY29uZmlnIC1uICRsaWJkaXInCisrICBzaGxpYnBh dGhfdmFyPUxEX0xJQlJBUllfUEFUSAorKyAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPW5v CisrICAjIFNvbWUgYmludXRpbHMgbGQgYXJlIHBhdGNoZWQgdG8gc2V0IERUX1JVTlBBVEgKKysg IHNhdmVfTERGTEFHUz0kTERGTEFHUworKyAgc2F2ZV9saWJkaXI9JGxpYmRpcgorKyAgZXZhbCAi bGliZGlyPS9mb287IHdsPVwiJGx0X3Byb2dfY29tcGlsZXJfd2xfQ1hYXCI7IFwKKysgICAgICAg TERGTEFHUz1cIlwkTERGTEFHUyAkaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19DWFhcIiIKKysg IGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorKy8qIGNvbmZkZWZzLmguICAqLworK19B Q0VPRgorK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAorK2NhdCA+PmNvbmZ0ZXN0 LiRhY19leHQgPDxfQUNFT0YKKysvKiBlbmQgY29uZmRlZnMuaC4gICovCisrCisraW50CisrbWFp biAoKQorK3sKKysKKysgIDsKKysgIHJldHVybiAwOworK30KKytfQUNFT0YKKytybSAtZiBjb25m dGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0JGFjX2V4ZWV4dAorK2lmIHsgKGFjX3RyeT0iJGFjX2xp bmsiCisrY2FzZSAiKCgkYWNfdHJ5IiBpbgorKyAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlf ZWNobz1cJGFjX3RyeTs7CisrICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKKytlc2FjCisrZXZh bCBhY190cnlfZWNobz0iXCJcJGFzX21lOiRMSU5FTk86ICRhY190cnlfZWNob1wiIgorKyRhc19l Y2hvICIkYWNfdHJ5X2VjaG8iKSA+JjUKKysgIChldmFsICIkYWNfbGluayIpIDI+Y29uZnRlc3Qu ZXIxCisrICBhY19zdGF0dXM9JD8KKysgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29u ZnRlc3QuZXJyCisrICBybSAtZiBjb25mdGVzdC5lcjEKKysgIGNhdCBjb25mdGVzdC5lcnIgPiY1 CisrICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorKyAg KGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYgeworKwkgdGVzdCAteiAiJGFjX2N4eF93ZXJyb3JfZmxh ZyIgfHwKKysJIHRlc3QgISAtcyBjb25mdGVzdC5lcnIKKysgICAgICAgfSAmJiB0ZXN0IC1zIGNv bmZ0ZXN0JGFjX2V4ZWV4dCAmJiB7CisrCSB0ZXN0ICIkY3Jvc3NfY29tcGlsaW5nIiA9IHllcyB8 fAorKwkgJGFzX3Rlc3RfeCBjb25mdGVzdCRhY19leGVleHQKKysgICAgICAgfTsgdGhlbgorKyAg aWYgICgkT0JKRFVNUCAtcCBjb25mdGVzdCRhY19leGVleHQpIDI+L2Rldi9udWxsIHwgZ3JlcCAi UlVOUEFUSC4qJGxpYmRpciIgPi9kZXYvbnVsbDsgdGhlbgorKyAgc2hsaWJwYXRoX292ZXJyaWRl c19ydW5wYXRoPXllcworK2ZpCisrCisrZWxzZQorKyAgJGFzX2VjaG8gIiRhc19tZTogZmFpbGVk IHByb2dyYW0gd2FzOiIgPiY1Cisrc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQor KworKworK2ZpCisrCisrcm0gLXJmIGNvbmZ0ZXN0LmRTWU0KKytybSAtZiBjb3JlIGNvbmZ0ZXN0 LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0X2lwYThfY29uZnRlc3Qub28gXAorKyAg ICAgIGNvbmZ0ZXN0JGFjX2V4ZWV4dCBjb25mdGVzdC4kYWNfZXh0CisrICBMREZMQUdTPSRzYXZl X0xERkxBR1MKKysgIGxpYmRpcj0kc2F2ZV9saWJkaXIKKysKKysgICMgVGhpcyBpbXBsaWVzIG5v IGZhc3RfaW5zdGFsbCwgd2hpY2ggaXMgdW5hY2NlcHRhYmxlLgorKyAgIyBTb21lIHJld29yayB3 aWxsIGJlIG5lZWRlZCB0byBhbGxvdyBmb3IgZmFzdF9pbnN0YWxsCisrICAjIGJlZm9yZSB0aGlz IGNhbiBiZSBlbmFibGVkLgorKyAgaGFyZGNvZGVfaW50b19saWJzPXllcworKworKyAgIyBBZGQg QUJJLXNwZWNpZmljIGRpcmVjdG9yaWVzIHRvIHRoZSBzeXN0ZW0gbGlicmFyeSBwYXRoLgorKyAg c3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWM9Ii9saWI2NCAvdXNyL2xpYjY0IC9saWIgL3Vzci9s aWIiCisrCisrICAjIEFwcGVuZCBsZC5zby5jb25mIGNvbnRlbnRzIHRvIHRoZSBzZWFyY2ggcGF0 aAorKyAgaWYgdGVzdCAtZiAvZXRjL2xkLnNvLmNvbmY7IHRoZW4KKysgICAgbHRfbGRfZXh0cmE9 YGF3ayAnL15pbmNsdWRlIC8geyBzeXN0ZW0oc3ByaW50ZigiY2QgL2V0YzsgY2F0ICVzIDI+L2Rl di9udWxsIiwgXCQyKSk7IHNraXAgPSAxOyB9IHsgaWYgKCFza2lwKSBwcmludCBcJDA7IHNraXAg PSAwOyB9JyA8IC9ldGMvbGQuc28uY29uZiB8ICRTRUQgLWUgJ3MvIy4qLy87L15bCSBdKmh3Y2Fw WwkgXS9kO3MvWzosCV0vIC9nO3MvPVtePV0qJC8vO3MvPVtePSBdKiAvIC9nOy9eJC9kJyB8IHRy ICdcbicgJyAnYAorKyAgICBzeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYz0iJHN5c19saWJfZGxz ZWFyY2hfcGF0aF9zcGVjICRsdF9sZF9leHRyYSIKKysgIGZpCisrCisrICAjIFdlIHVzZWQgdG8g dGVzdCBmb3IgL2xpYi9sZC5zby4xIGFuZCBkaXNhYmxlIHNoYXJlZCBsaWJyYXJpZXMgb24KKysg ICMgcG93ZXJwYywgYmVjYXVzZSBNa0xpbnV4IG9ubHkgc3VwcG9ydGVkIHNoYXJlZCBsaWJyYXJp ZXMgd2l0aCB0aGUKKysgICMgR05VIGR5bmFtaWMgbGlua2VyLiAgU2luY2UgdGhpcyB3YXMgYnJv a2VuIHdpdGggY3Jvc3MgY29tcGlsZXJzLAorKyAgIyBtb3N0IHBvd2VycGMtbGludXggYm94ZXMg c3VwcG9ydCBkeW5hbWljIGxpbmtpbmcgdGhlc2UgZGF5cyBhbmQKKysgICMgcGVvcGxlIGNhbiBh bHdheXMgLS1kaXNhYmxlLXNoYXJlZCwgdGhlIHRlc3Qgd2FzIHJlbW92ZWQsIGFuZCB3ZQorKyAg IyBhc3N1bWUgdGhlIEdOVS9MaW51eCBkeW5hbWljIGxpbmtlciBpcyBpbiB1c2UuCisrICBkeW5h bWljX2xpbmtlcj0nR05VL0xpbnV4IGxkLnNvJworKyAgOzsKKysKKytuZXRic2QqKQorKyAgdmVy c2lvbl90eXBlPXN1bm9zCisrICBuZWVkX2xpYl9wcmVmaXg9bm8KKysgIG5lZWRfdmVyc2lvbj1u bworKyAgaWYgZWNobyBfX0VMRl9fIHwgJENDIC1FIC0gfCAkR1JFUCBfX0VMRl9fID4vZGV2L251 bGw7IHRoZW4KKysgICAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7 c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCcK KysgICAgZmluaXNoX2NtZHM9J1BBVEg9IlwkUEFUSDovc2JpbiIgbGRjb25maWcgLW0gJGxpYmRp cicKKysgICAgZHluYW1pY19saW5rZXI9J05ldEJTRCAoYS5vdXQpIGxkLnNvJworKyAgZWxzZQor KyAgICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0 fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICR7bGli bmFtZX0ke3NoYXJlZF9leHR9JworKyAgICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFz ZX0ke3NoYXJlZF9leHR9JG1ham9yJworKyAgICBkeW5hbWljX2xpbmtlcj0nTmV0QlNEIGxkLmVs Zl9zbycKKysgIGZpCisrICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAorKyAgc2hsaWJw YXRoX292ZXJyaWRlc19ydW5wYXRoPXllcworKyAgaGFyZGNvZGVfaW50b19saWJzPXllcworKyAg OzsKKysKKytuZXdzb3M2KQorKyAgdmVyc2lvbl90eXBlPWxpbnV4CisrICBsaWJyYXJ5X25hbWVz X3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJu YW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICRsaWJuYW1lJHtzaGFyZWRfZXh0fScK KysgIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRICisrICBzaGxpYnBhdGhfb3ZlcnJpZGVz X3J1bnBhdGg9eWVzCisrICA7OworKworKypudG8qIHwgKnFueCopCisrICB2ZXJzaW9uX3R5cGU9 cW54CisrICBuZWVkX2xpYl9wcmVmaXg9bm8KKysgIG5lZWRfdmVyc2lvbj1ubworKyAgbGlicmFy eV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4 ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAkbGlibmFtZSR7c2hhcmVk X2V4dH0nCisrICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9 JG1ham9yJworKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKKysgIHNobGlicGF0aF9v dmVycmlkZXNfcnVucGF0aD1ubworKyAgaGFyZGNvZGVfaW50b19saWJzPXllcworKyAgZHluYW1p Y19saW5rZXI9J2xkcW54LnNvJworKyAgOzsKKysKKytvcGVuYnNkKikKKysgIHZlcnNpb25fdHlw ZT1zdW5vcworKyAgc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWM9Ii91c3IvbGliIgorKyAgbmVl ZF9saWJfcHJlZml4PW5vCisrICAjIFNvbWUgb2xkZXIgdmVyc2lvbnMgb2YgT3BlbkJTRCAoMy4z IGF0IGxlYXN0KSAqZG8qIG5lZWQgdmVyc2lvbmVkIGxpYnMuCisrICBjYXNlICRob3N0X29zIGlu CisrICAgIG9wZW5ic2QzLjMgfCBvcGVuYnNkMy4zLiopCW5lZWRfdmVyc2lvbj15ZXMgOzsKKysg ICAgKikJCQkJbmVlZF92ZXJzaW9uPW5vICA7OworKyAgZXNhYworKyAgbGlicmFyeV9uYW1lc19z cGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFt ZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCcKKysgIGZpbmlzaF9jbWRzPSdQQVRIPSJcJFBBVEg6 L3NiaW4iIGxkY29uZmlnIC1tICRsaWJkaXInCisrICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllf UEFUSAorKyAgaWYgdGVzdCAteiAiYGVjaG8gX19FTEZfXyB8ICRDQyAtRSAtIHwgJEdSRVAgX19F TEZfX2AiIHx8IHRlc3QgIiRob3N0X29zLSRob3N0X2NwdSIgPSAib3BlbmJzZDIuOC1wb3dlcnBj IjsgdGhlbgorKyAgICBjYXNlICRob3N0X29zIGluCisrICAgICAgb3BlbmJzZDIuWzg5XSB8IG9w ZW5ic2QyLls4OV0uKikKKysJc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPW5vCisrCTs7Cisr ICAgICAgKikKKysJc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPXllcworKwk7OworKyAgICAg IGVzYWMKKysgIGVsc2UKKysgICAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPXllcworKyAg ZmkKKysgIDs7CisrCisrb3MyKikKKysgIGxpYm5hbWVfc3BlYz0nJG5hbWUnCisrICBzaHJleHRf Y21kcz0iLmRsbCIKKysgIG5lZWRfbGliX3ByZWZpeD1ubworKyAgbGlicmFyeV9uYW1lc19zcGVj PSckbGlibmFtZSR7c2hhcmVkX2V4dH0gJGxpYm5hbWUuYScKKysgIGR5bmFtaWNfbGlua2VyPSdP Uy8yIGxkLmV4ZScKKysgIHNobGlicGF0aF92YXI9TElCUEFUSAorKyAgOzsKKysKKytvc2YzKiB8 IG9zZjQqIHwgb3NmNSopCisrICB2ZXJzaW9uX3R5cGU9b3NmCisrICBuZWVkX2xpYl9wcmVmaXg9 bm8KKysgIG5lZWRfdmVyc2lvbj1ubworKyAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVh c2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKKysgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1l fSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7 c2hhcmVkX2V4dH0kbWFqb3IgJGxpYm5hbWUke3NoYXJlZF9leHR9JworKyAgc2hsaWJwYXRoX3Zh cj1MRF9MSUJSQVJZX1BBVEgKKysgIHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYz0iL3Vzci9zaGxp YiAvdXNyL2Njcy9saWIgL3Vzci9saWIvY21wbHJzL2NjIC91c3IvbGliIC91c3IvbG9jYWwvbGli IC92YXIvc2hsaWIiCisrICBzeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYz0iJHN5c19saWJfc2Vh cmNoX3BhdGhfc3BlYyIKKysgIDs7CisrCisrcmRvcyopCisrICBkeW5hbWljX2xpbmtlcj1ubwor KyAgOzsKKysKKytzb2xhcmlzKikKKysgIHZlcnNpb25fdHlwZT1saW51eAorKyAgbmVlZF9saWJf cHJlZml4PW5vCisrICBuZWVkX3ZlcnNpb249bm8KKysgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHts aWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxl YXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJGxpYm5hbWUke3NoYXJlZF9leHR9JworKyAgc29uYW1l X3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKKysgIHNobGli cGF0aF92YXI9TERfTElCUkFSWV9QQVRICisrICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9 eWVzCisrICBoYXJkY29kZV9pbnRvX2xpYnM9eWVzCisrICAjIGxkZCBjb21wbGFpbnMgdW5sZXNz IGxpYnJhcmllcyBhcmUgZXhlY3V0YWJsZQorKyAgcG9zdGluc3RhbGxfY21kcz0nY2htb2QgK3gg JGxpYicKKysgIDs7CisrCisrc3Vub3M0KikKKysgIHZlcnNpb25fdHlwZT1zdW5vcworKyAgbGli cmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3Vm Zml4ICR7bGlibmFtZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCcKKysgIGZpbmlzaF9jbWRzPSdQ QVRIPSJcJFBBVEg6L3Vzci9ldGMiIGxkY29uZmlnICRsaWJkaXInCisrICBzaGxpYnBhdGhfdmFy PUxEX0xJQlJBUllfUEFUSAorKyAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPXllcworKyAg aWYgdGVzdCAiJHdpdGhfZ251X2xkIiA9IHllczsgdGhlbgorKyAgICBuZWVkX2xpYl9wcmVmaXg9 bm8KKysgIGZpCisrICBuZWVkX3ZlcnNpb249eWVzCisrICA7OworKworK3N5c3Y0IHwgc3lzdjQu MyopCisrICB2ZXJzaW9uX3R5cGU9bGludXgKKysgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJu YW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNl fSR7c2hhcmVkX2V4dH0kbWFqb3IgJGxpYm5hbWUke3NoYXJlZF9leHR9JworKyAgc29uYW1lX3Nw ZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKKysgIHNobGlicGF0 aF92YXI9TERfTElCUkFSWV9QQVRICisrICBjYXNlICRob3N0X3ZlbmRvciBpbgorKyAgICBzbmkp CisrICAgICAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPW5vCisrICAgICAgbmVlZF9saWJf cHJlZml4PW5vCisrICAgICAgcnVucGF0aF92YXI9TERfUlVOX1BBVEgKKysgICAgICA7OworKyAg ICBzaWVtZW5zKQorKyAgICAgIG5lZWRfbGliX3ByZWZpeD1ubworKyAgICAgIDs7CisrICAgIG1v dG9yb2xhKQorKyAgICAgIG5lZWRfbGliX3ByZWZpeD1ubworKyAgICAgIG5lZWRfdmVyc2lvbj1u bworKyAgICAgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD1ubworKyAgICAgIHN5c19saWJf c2VhcmNoX3BhdGhfc3BlYz0nL2xpYiAvdXNyL2xpYiAvdXNyL2Njcy9saWInCisrICAgICAgOzsK KysgIGVzYWMKKysgIDs7CisrCisrc3lzdjQqTVAqKQorKyAgaWYgdGVzdCAtZCAvdXNyL25lYyA7 dGhlbgorKyAgICB2ZXJzaW9uX3R5cGU9bGludXgKKysgICAgbGlicmFyeV9uYW1lc19zcGVjPSck bGlibmFtZSR7c2hhcmVkX2V4dH0uJHZlcnN1ZmZpeCAkbGlibmFtZSR7c2hhcmVkX2V4dH0uJG1h am9yICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKKysgICAgc29uYW1lX3NwZWM9JyRsaWJuYW1lJHtz aGFyZWRfZXh0fS4kbWFqb3InCisrICAgIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRICisr ICBmaQorKyAgOzsKKysKKytzeXN2NSogfCBzY28zLjJ2NSogfCBzY281djYqIHwgdW5peHdhcmUq IHwgT3BlblVOSVgqIHwgc3lzdjQqdXcyKikKKysgIHZlcnNpb25fdHlwZT1mcmVlYnNkLWVsZgor KyAgbmVlZF9saWJfcHJlZml4PW5vCisrICBuZWVkX3ZlcnNpb249bm8KKysgIGxpYnJhcnlfbmFt ZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xp Ym5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0gJGxpYm5hbWUke3NoYXJlZF9leHR9JworKyAg c29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKKysg IHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRICisrICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1 bnBhdGg9eWVzCisrICBoYXJkY29kZV9pbnRvX2xpYnM9eWVzCisrICBpZiB0ZXN0ICIkd2l0aF9n bnVfbGQiID0geWVzOyB0aGVuCisrICAgIHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYz0nL3Vzci9s b2NhbC9saWIgL3Vzci9nbnUvbGliIC91c3IvY2NzL2xpYiAvdXNyL2xpYiAvbGliJworKyAgZWxz ZQorKyAgICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9Jy91c3IvY2NzL2xpYiAvdXNyL2xpYicK KysgICAgY2FzZSAkaG9zdF9vcyBpbgorKyAgICAgIHNjbzMuMnY1KikKKysgICAgICAgIHN5c19s aWJfc2VhcmNoX3BhdGhfc3BlYz0iJHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYyAvbGliIgorKwk7 OworKyAgICBlc2FjCisrICBmaQorKyAgc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWM9Jy91c3Iv bGliJworKyAgOzsKKysKKyt0cGYqKQorKyAgIyBUUEYgaXMgYSBjcm9zcy10YXJnZXQgb25seS4g IFByZWZlcnJlZCBjcm9zcy1ob3N0ID0gR05VL0xpbnV4LgorKyAgdmVyc2lvbl90eXBlPWxpbnV4 CisrICBuZWVkX2xpYl9wcmVmaXg9bm8KKysgIG5lZWRfdmVyc2lvbj1ubworKyAgbGlicmFyeV9u YW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7 bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAkbGlibmFtZSR7c2hhcmVkX2V4 dH0nCisrICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAorKyAgc2hsaWJwYXRoX292ZXJy aWRlc19ydW5wYXRoPW5vCisrICBoYXJkY29kZV9pbnRvX2xpYnM9eWVzCisrICA7OworKworK3V0 czQqKQorKyAgdmVyc2lvbl90eXBlPWxpbnV4CisrICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGli bmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFz ZX0ke3NoYXJlZF9leHR9JG1ham9yICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKKysgIHNvbmFtZV9z cGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCisrICBzaGxpYnBh dGhfdmFyPUxEX0xJQlJBUllfUEFUSAorKyAgOzsKKysKKysqKQorKyAgZHluYW1pY19saW5rZXI9 bm8KKysgIDs7CisrZXNhYworK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRk eW5hbWljX2xpbmtlciIgPiY1CisrJGFzX2VjaG8gIiRkeW5hbWljX2xpbmtlciIgPiY2OyB9Cisr dGVzdCAiJGR5bmFtaWNfbGlua2VyIiA9IG5vICYmIGNhbl9idWlsZF9zaGFyZWQ9bm8KKysKKyt2 YXJpYWJsZXNfc2F2ZWRfZm9yX3JlbGluaz0iUEFUSCAkc2hsaWJwYXRoX3ZhciAkcnVucGF0aF92 YXIiCisraWYgdGVzdCAiJEdDQyIgPSB5ZXM7IHRoZW4KKysgIHZhcmlhYmxlc19zYXZlZF9mb3Jf cmVsaW5rPSIkdmFyaWFibGVzX3NhdmVkX2Zvcl9yZWxpbmsgR0NDX0VYRUNfUFJFRklYIENPTVBJ TEVSX1BBVEggTElCUkFSWV9QQVRIIgorK2ZpCisrCisraWYgdGVzdCAiJHtsdF9jdl9zeXNfbGli X3NlYXJjaF9wYXRoX3NwZWMrc2V0fSIgPSBzZXQ7IHRoZW4KKysgIHN5c19saWJfc2VhcmNoX3Bh dGhfc3BlYz0iJGx0X2N2X3N5c19saWJfc2VhcmNoX3BhdGhfc3BlYyIKKytmaQorK2lmIHRlc3Qg IiR7bHRfY3Zfc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWMrc2V0fSIgPSBzZXQ7IHRoZW4KKysg IHN5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjPSIkbHRfY3Zfc3lzX2xpYl9kbHNlYXJjaF9wYXRo X3NwZWMiCisrZmkKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysK KysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysK KysKKysKKysgICAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGhvdyB0byBo YXJkY29kZSBsaWJyYXJ5IHBhdGhzIGludG8gcHJvZ3JhbXMiID4mNQorKyRhc19lY2hvX24gImNo ZWNraW5nIGhvdyB0byBoYXJkY29kZSBsaWJyYXJ5IHBhdGhzIGludG8gcHJvZ3JhbXMuLi4gIiA+ JjY7IH0KKytoYXJkY29kZV9hY3Rpb25fQ1hYPQorK2lmIHRlc3QgLW4gIiRoYXJkY29kZV9saWJk aXJfZmxhZ19zcGVjX0NYWCIgfHwKKysgICB0ZXN0IC1uICIkcnVucGF0aF92YXJfQ1hYIiB8fAor KyAgIHRlc3QgIlgkaGFyZGNvZGVfYXV0b21hdGljX0NYWCIgPSAiWHllcyIgOyB0aGVuCisrCisr ICAjIFdlIGNhbiBoYXJkY29kZSBub24tZXhpc3RlbnQgZGlyZWN0b3JpZXMuCisrICBpZiB0ZXN0 ICIkaGFyZGNvZGVfZGlyZWN0X0NYWCIgIT0gbm8gJiYKKysgICAgICMgSWYgdGhlIG9ubHkgbWVj aGFuaXNtIHRvIGF2b2lkIGhhcmRjb2RpbmcgaXMgc2hsaWJwYXRoX3Zhciwgd2UKKysgICAgICMg aGF2ZSB0byByZWxpbmssIG90aGVyd2lzZSB3ZSBtaWdodCBsaW5rIHdpdGggYW4gaW5zdGFsbGVk IGxpYnJhcnkKKysgICAgICMgd2hlbiB3ZSBzaG91bGQgYmUgbGlua2luZyB3aXRoIGEgeWV0LXRv LWJlLWluc3RhbGxlZCBvbmUKKysgICAgICMjIHRlc3QgIiRfTFRfVEFHVkFSKGhhcmRjb2RlX3No bGlicGF0aF92YXIsIENYWCkiICE9IG5vICYmCisrICAgICB0ZXN0ICIkaGFyZGNvZGVfbWludXNf TF9DWFgiICE9IG5vOyB0aGVuCisrICAgICMgTGlua2luZyBhbHdheXMgaGFyZGNvZGVzIHRoZSB0 ZW1wb3JhcnkgbGlicmFyeSBkaXJlY3RvcnkuCisrICAgIGhhcmRjb2RlX2FjdGlvbl9DWFg9cmVs aW5rCisrICBlbHNlCisrICAgICMgV2UgY2FuIGxpbmsgd2l0aG91dCBoYXJkY29kaW5nLCBhbmQg d2UgY2FuIGhhcmRjb2RlIG5vbmV4aXN0aW5nIGRpcnMuCisrICAgIGhhcmRjb2RlX2FjdGlvbl9D WFg9aW1tZWRpYXRlCisrICBmaQorK2Vsc2UKKysgICMgV2UgY2Fubm90IGhhcmRjb2RlIGFueXRo aW5nLCBvciBlbHNlIHdlIGNhbiBvbmx5IGhhcmRjb2RlIGV4aXN0aW5nCisrICAjIGRpcmVjdG9y aWVzLgorKyAgaGFyZGNvZGVfYWN0aW9uX0NYWD11bnN1cHBvcnRlZAorK2ZpCisreyAkYXNfZWNo byAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGhhcmRjb2RlX2FjdGlvbl9DWFgiID4mNQorKyRh c19lY2hvICIkaGFyZGNvZGVfYWN0aW9uX0NYWCIgPiY2OyB9CisrCisraWYgdGVzdCAiJGhhcmRj b2RlX2FjdGlvbl9DWFgiID0gcmVsaW5rIHx8CisrICAgdGVzdCAiJGluaGVyaXRfcnBhdGhfQ1hY IiA9IHllczsgdGhlbgorKyAgIyBGYXN0IGluc3RhbGxhdGlvbiBpcyBub3Qgc3VwcG9ydGVkCisr ICBlbmFibGVfZmFzdF9pbnN0YWxsPW5vCisrZWxpZiB0ZXN0ICIkc2hsaWJwYXRoX292ZXJyaWRl c19ydW5wYXRoIiA9IHllcyB8fAorKyAgICAgdGVzdCAiJGVuYWJsZV9zaGFyZWQiID0gbm87IHRo ZW4KKysgICMgRmFzdCBpbnN0YWxsYXRpb24gaXMgbm90IG5lY2Vzc2FyeQorKyAgZW5hYmxlX2Zh c3RfaW5zdGFsbD1uZWVkbGVzcworK2ZpCisrCisrCisrCisrCisrCisrCisrCisrICBmaSAjIHRl c3QgLW4gIiRjb21waWxlciIKKysKKysgIENDPSRsdF9zYXZlX0NDCisrICBMRENYWD0kTEQKKysg IExEPSRsdF9zYXZlX0xECisrICBHQ0M9JGx0X3NhdmVfR0NDCisrICB3aXRoX2dudV9sZD0kbHRf c2F2ZV93aXRoX2dudV9sZAorKyAgbHRfY3ZfcGF0aF9MRENYWD0kbHRfY3ZfcGF0aF9MRAorKyAg bHRfY3ZfcGF0aF9MRD0kbHRfc2F2ZV9wYXRoX0xECisrICBsdF9jdl9wcm9nX2dudV9sZGN4eD0k bHRfY3ZfcHJvZ19nbnVfbGQKKysgIGx0X2N2X3Byb2dfZ251X2xkPSRsdF9zYXZlX3dpdGhfZ251 X2xkCisrZmkgIyB0ZXN0ICIkX2x0X2NhdWdodF9DWFhfZXJyb3IiICE9IHllcworKworK2FjX2V4 dD1jCisrYWNfY3BwPSckQ1BQICRDUFBGTEFHUycKKythY19jb21waWxlPSckQ0MgLWMgJENGTEFH UyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUnCisrYWNfbGluaz0nJENDIC1vIGNvbmZ0 ZXN0JGFjX2V4ZWV4dCAkQ0ZMQUdTICRDUFBGTEFHUyAkTERGTEFHUyBjb25mdGVzdC4kYWNfZXh0 ICRMSUJTID4mNScKKythY19jb21waWxlcl9nbnU9JGFjX2N2X2NfY29tcGlsZXJfZ251CisrCisr CisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrICAgICAgICBhY19jb25maWdfY29t bWFuZHM9IiRhY19jb25maWdfY29tbWFuZHMgbGlidG9vbCIKKysKKysKKysKKysKKysjIE9ubHkg ZXhwYW5kIG9uY2U6CisrCisrCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5n IHdoZXRoZXIgbG4gLXMgd29ya3MiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIHdoZXRoZXIg bG4gLXMgd29ya3MuLi4gIiA+JjY7IH0KKytMTl9TPSRhc19sbl9zCisraWYgdGVzdCAiJExOX1Mi ID0gImxuIC1zIjsgdGhlbgorKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDog eWVzIiA+JjUKKyskYXNfZWNobyAieWVzIiA+JjY7IH0KKytlbHNlCisrICB7ICRhc19lY2hvICIk YXNfbWU6JExJTkVOTzogcmVzdWx0OiBubywgdXNpbmcgJExOX1MiID4mNQorKyRhc19lY2hvICJu bywgdXNpbmcgJExOX1MiID4mNjsgfQorK2ZpCisrCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5F Tk86IGNoZWNraW5nIHdoZXRoZXIgJHtNQUtFLW1ha2V9IHNldHMgXCQoTUFLRSkiID4mNQorKyRh c19lY2hvX24gImNoZWNraW5nIHdoZXRoZXIgJHtNQUtFLW1ha2V9IHNldHMgXCQoTUFLRSkuLi4g IiA+JjY7IH0KKytzZXQgeCAke01BS0UtbWFrZX0KKythY19tYWtlPWAkYXNfZWNobyAiJDIiIHwg c2VkICdzLysvcC9nOyBzL1teYS16QS1aMC05X10vXy9nJ2AKKytpZiB7IGFzX3Zhcj1hY19jdl9w cm9nX21ha2VfJHthY19tYWtlfV9zZXQ7IGV2YWwgInRlc3QgXCJcJHskYXNfdmFyK3NldH1cIiA9 IHNldCI7IH07IHRoZW4KKysgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2CisrZWxzZQorKyAg Y2F0ID5jb25mdGVzdC5tYWtlIDw8XF9BQ0VPRgorK1NIRUxMID0gL2Jpbi9zaAorK2FsbDoKKysJ QGVjaG8gJ0BAQCUlJT0kKE1BS0UpPUBAQCUlJScKKytfQUNFT0YKKysjIEdOVSBtYWtlIHNvbWV0 aW1lcyBwcmludHMgIm1ha2VbMV06IEVudGVyaW5nLi4uIiwgd2hpY2ggd291bGQgY29uZnVzZSB1 cy4KKytjYXNlIGAke01BS0UtbWFrZX0gLWYgY29uZnRlc3QubWFrZSAyPi9kZXYvbnVsbGAgaW4K KysgICpAQEAlJSU9Pyo9QEBAJSUlKikKKysgICAgZXZhbCBhY19jdl9wcm9nX21ha2VfJHthY19t YWtlfV9zZXQ9eWVzOzsKKysgICopCisrICAgIGV2YWwgYWNfY3ZfcHJvZ19tYWtlXyR7YWNfbWFr ZX1fc2V0PW5vOzsKKytlc2FjCisrcm0gLWYgY29uZnRlc3QubWFrZQorK2ZpCisraWYgZXZhbCB0 ZXN0IFwkYWNfY3ZfcHJvZ19tYWtlXyR7YWNfbWFrZX1fc2V0ID0geWVzOyB0aGVuCisrICB7ICRh c19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiB5ZXMiID4mNQorKyRhc19lY2hvICJ5ZXMi ID4mNjsgfQorKyAgU0VUX01BS0U9CisrZWxzZQorKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5F Tk86IHJlc3VsdDogbm8iID4mNQorKyRhc19lY2hvICJubyIgPiY2OyB9CisrICBTRVRfTUFLRT0i TUFLRT0ke01BS0UtbWFrZX0iCisrZmkKKysKKysKKysjIFNldCBkZWZhdWx0IGxhbmd1YWdlIHRv IEMrKworK2FjX2V4dD1jcHAKKythY19jcHA9JyRDWFhDUFAgJENQUEZMQUdTJworK2FjX2NvbXBp bGU9JyRDWFggLWMgJENYWEZMQUdTICRDUFBGTEFHUyBjb25mdGVzdC4kYWNfZXh0ID4mNScKKyth Y19saW5rPSckQ1hYIC1vIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAkQ1hYRkxBR1MgJENQUEZMQUdTICRM REZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgJExJQlMgPiY1JworK2FjX2NvbXBpbGVyX2dudT0kYWNf Y3ZfY3h4X2NvbXBpbGVyX2dudQorKworKworKyMgQ2hlY2sgZm9yIGV4Y2VwdGlvbnMgc3dpdGNo CisrIyBDaGVjayB3aGV0aGVyIC0tZW5hYmxlLWV4Y2VwdGlvbnMgd2FzIGdpdmVuLgorK2lmIHRl c3QgIiR7ZW5hYmxlX2V4Y2VwdGlvbnMrc2V0fSIgPSBzZXQ7IHRoZW4KKysgIGVuYWJsZXZhbD0k ZW5hYmxlX2V4Y2VwdGlvbnM7CisrY2F0ID4+Y29uZmRlZnMuaCA8PFxfQUNFT0YKKysjZGVmaW5l IFNPQ0lfRVhDRVBUSU9OUyAxCisrX0FDRU9GCisrCisrZmkKKysKKyt0ZXN0ICJ4JGVuYWJsZV9l eGNlcHRpb25zIiAhPSB4bm8gJiYgZW5hYmxlX2V4Y2VwdGlvbnM9eWVzCisrdGVzdCAieCRheF9j dl9ib29zdF9kYXRlX3RpbWUiICE9IHhubyAmJiBlbmFibGVfZXhjZXB0aW9ucz15ZXMKKysKKysj IENoZWNrIGZvciBpbmZvIHBhZ2VzCisrIyBDaGVjayB3aGV0aGVyIC0tZW5hYmxlLWluZm8tZG9j IHdhcyBnaXZlbi4KKytpZiB0ZXN0ICIke2VuYWJsZV9pbmZvX2RvYytzZXR9IiA9IHNldDsgdGhl bgorKyAgZW5hYmxldmFsPSRlbmFibGVfaW5mb19kb2M7CisrZmkKKysKKyt0ZXN0ICJ4JGVuYWJs ZV9pbmZvX2RvYyIgIT0geG5vICYmIGVuYWJsZV9pbmZvX2RvYz15ZXMKKysKKysKKysjIENoZWNr IGZvciBodG1sLWRvYyBzd2l0Y2gKKysjIENoZWNrIHdoZXRoZXIgLS1lbmFibGUtaHRtbC1kb2Mg d2FzIGdpdmVuLgorK2lmIHRlc3QgIiR7ZW5hYmxlX2h0bWxfZG9jK3NldH0iID0gc2V0OyB0aGVu CisrICBlbmFibGV2YWw9JGVuYWJsZV9odG1sX2RvYzsKKytmaQorKworK3Rlc3QgIngkZW5hYmxl X2h0bWxfZG9jIiAhPSB4bm8gJiYgZW5hYmxlX2h0bWxfZG9jPXllcworKworKworKyMgUHJvdmlk ZSAtLXdpdGgtZG9jZGlyCisrCisrIyBDaGVjayB3aGV0aGVyIC0td2l0aC1kb2NkaXIgd2FzIGdp dmVuLgorK2lmIHRlc3QgIiR7d2l0aF9kb2NkaXIrc2V0fSIgPSBzZXQ7IHRoZW4KKysgIHdpdGh2 YWw9JHdpdGhfZG9jZGlyOyBET0NfRElSPSIkd2l0aHZhbCIKKytlbHNlCisrICBET0NfRElSPSIi CisrZmkKKysKKytpZiB0ZXN0ICJ4JERPQ19ESVIiICE9IHg7IHRoZW4KKysgIGRvY2Rpcj0iJERP Q19ESVIiCisrZWxzZQorKyAgZG9jZGlyPSIke2RhdGFkaXJ9L2RvYy8kUEFDS0FHRS0kVkVSU0lP TiIKKytmaQorKworKworKworKyMgQ2hlY2sgZm9yIGJ1cnJpZWQgaGVhZGVyIGZpbGVzIChmb3Ig U09DSSBpdHNlbGYpCisrIyBDaGVjayB3aGV0aGVyIC0tZW5hYmxlLWJ1cnJpZWQtaGVhZGVycyB3 YXMgZ2l2ZW4uCisraWYgdGVzdCAiJHtlbmFibGVfYnVycmllZF9oZWFkZXJzK3NldH0iID0gc2V0 OyB0aGVuCisrICBlbmFibGV2YWw9JGVuYWJsZV9idXJyaWVkX2hlYWRlcnM7ICBpZiB0ZXN0ICIk ZW5hYmxldmFsIiA9IG5vOyB0aGVuCisrICAgICAgZW5hYmxlX2J1cnJpZWRfaGVhZGVycz1ubwor KyAgIGVsc2UKKysgICAgICBlbmFibGVfYnVycmllZF9oZWFkZXJzPXllcworKyAgIGZpCisrZWxz ZQorKyAgIGVuYWJsZV9idXJyaWVkX2hlYWRlcnM9bm8KKytmaQorKworKyMgVGVtcG9yYXJ5LCBm b3IgdGhlIFJQTSBwYWNrYWdlcyBnZW5lcmF0aW9uCisrZW5hYmxlX2J1cnJpZWRfaGVhZGVycz15 ZXMKKysgaWYgdGVzdCAieCRlbmFibGVfYnVycmllZF9oZWFkZXJzIiA9IHh5ZXM7IHRoZW4KKysg IFNPQ0lfSEVBREVSU19CVVJJRURfVFJVRT0KKysgIFNPQ0lfSEVBREVSU19CVVJJRURfRkFMU0U9 JyMnCisrZWxzZQorKyAgU09DSV9IRUFERVJTX0JVUklFRF9UUlVFPScjJworKyAgU09DSV9IRUFE RVJTX0JVUklFRF9GQUxTRT0KKytmaQorKworKworK2lmIHRlc3QgIngkZW5hYmxlX2J1cnJpZWRf aGVhZGVycyIgPSB4eWVzOyB0aGVuCisrICAgQ1BQRkxBR1M9Ii1EU09DSV9IRUFERVJTX0JVUklF RCAkQ1BQRkxBR1MiCisrZmkKKysKKysjIENoZWNrIGZvciBidXJyaWVkIGhlYWRlciBmaWxlcyAo Zm9yIE15U1FMIGNsaWVudCkKKysjIENoZWNrIHdoZXRoZXIgLS1lbmFibGUtbXlzcWwtYnVycmll ZC1oZWFkZXJzIHdhcyBnaXZlbi4KKytpZiB0ZXN0ICIke2VuYWJsZV9teXNxbF9idXJyaWVkX2hl YWRlcnMrc2V0fSIgPSBzZXQ7IHRoZW4KKysgIGVuYWJsZXZhbD0kZW5hYmxlX215c3FsX2J1cnJp ZWRfaGVhZGVyczsgIGlmIHRlc3QgIiRlbmFibGV2YWwiID0gbm87IHRoZW4KKysJZW5hYmxlX215 c3FsX2J1cnJpZWRfaGVhZGVycz1ubworKyAgIGVsc2UKKysJZW5hYmxlX215c3FsX2J1cnJpZWRf aGVhZGVycz15ZXMKKysgICBmaQorK2Vsc2UKKysgICBlbmFibGVfbXlzcWxfYnVycmllZF9oZWFk ZXJzPW5vCisrZmkKKysKKysjIFRlbXBvcmFyeSwgZm9yIHRoZSBSUE0gcGFja2FnZXMgZ2VuZXJh dGlvbgorK2VuYWJsZV9teXNxbF9idXJyaWVkX2hlYWRlcnM9eWVzCisrIGlmIHRlc3QgIngkZW5h YmxlX215c3FsX2J1cnJpZWRfaGVhZGVycyIgPSB4eWVzOyB0aGVuCisrICBTT0NJX01ZU1FMX0hF QURFUlNfQlVSSUVEX1RSVUU9CisrICBTT0NJX01ZU1FMX0hFQURFUlNfQlVSSUVEX0ZBTFNFPScj JworK2Vsc2UKKysgIFNPQ0lfTVlTUUxfSEVBREVSU19CVVJJRURfVFJVRT0nIycKKysgIFNPQ0lf TVlTUUxfSEVBREVSU19CVVJJRURfRkFMU0U9CisrZmkKKysKKysKKytpZiB0ZXN0ICJ4JGVuYWJs ZV9teXNxbF9idXJyaWVkX2hlYWRlcnMiID0geHllczsgdGhlbgorKyAgIENQUEZMQUdTPSItRFNP Q0lfTVlTUUxfSEVBREVSU19CVVJJRUQgJENQUEZMQUdTIgorK2ZpCisrCisrIyBDaGVjayBmb3Ig YnVycmllZCBoZWFkZXIgZmlsZXMgKGZvciBQb3N0R3JlU1FMIGNsaWVudCkKKysjIENoZWNrIHdo ZXRoZXIgLS1lbmFibGUtcG9zdGdyZXNxbC1idXJyaWVkLWhlYWRlcnMgd2FzIGdpdmVuLgorK2lm IHRlc3QgIiR7ZW5hYmxlX3Bvc3RncmVzcWxfYnVycmllZF9oZWFkZXJzK3NldH0iID0gc2V0OyB0 aGVuCisrICBlbmFibGV2YWw9JGVuYWJsZV9wb3N0Z3Jlc3FsX2J1cnJpZWRfaGVhZGVyczsgIGlm IHRlc3QgIiRlbmFibGV2YWwiID0gbm87IHRoZW4KKysJZW5hYmxlX3Bvc3RncmVzcWxfYnVycmll ZF9oZWFkZXJzPW5vCisrICAgZWxzZQorKwllbmFibGVfcG9zdGdyZXNxbF9idXJyaWVkX2hlYWRl cnM9eWVzCisrICAgZmkKKytlbHNlCisrICAgZW5hYmxlX3Bvc3RncmVzcWxfYnVycmllZF9oZWFk ZXJzPW5vCisrZmkKKysKKysjIFRlbXBvcmFyeSwgZm9yIHRoZSBSUE0gcGFja2FnZXMgZ2VuZXJh dGlvbgorK2VuYWJsZV9wb3N0Z3Jlc3FsX2J1cnJpZWRfaGVhZGVycz15ZXMKKysgaWYgdGVzdCAi eCRlbmFibGVfcG9zdGdyZXNxbF9idXJyaWVkX2hlYWRlcnMiID0geHllczsgdGhlbgorKyAgU09D SV9QT1NUR1JFU1FMX0hFQURFUlNfQlVSSUVEX1RSVUU9CisrICBTT0NJX1BPU1RHUkVTUUxfSEVB REVSU19CVVJJRURfRkFMU0U9JyMnCisrZWxzZQorKyAgU09DSV9QT1NUR1JFU1FMX0hFQURFUlNf QlVSSUVEX1RSVUU9JyMnCisrICBTT0NJX1BPU1RHUkVTUUxfSEVBREVSU19CVVJJRURfRkFMU0U9 CisrZmkKKysKKysKKytpZiB0ZXN0ICJ4JGVuYWJsZV9wb3N0Z3Jlc3FsX2J1cnJpZWRfaGVhZGVy cyIgPSB4eWVzOyB0aGVuCisrICAgQ1BQRkxBR1M9Ii1EU09DSV9QT1NUR1JFU1FMX0hFQURFUlNf QlVSSUVEICRDUFBGTEFHUyIKKytmaQorKworKworKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKysjIEJvb3N0IChTVEwgRXh0ZW5zaW9u czogaHR0cDovL3d3dy5ib29zdC5vcmcpCisrIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKworKworKyMgQ2hlY2sgd2hldGhlciAtLXdp dGgtYm9vc3Qgd2FzIGdpdmVuLgorK2lmIHRlc3QgIiR7d2l0aF9ib29zdCtzZXR9IiA9IHNldDsg dGhlbgorKyAgd2l0aHZhbD0kd2l0aF9ib29zdDsKKysgICAgICAgICAgICAgICAgaWYgdGVzdCAi JHdpdGh2YWwiID0gIm5vIjsgdGhlbgorKwkJICAgICAgICAgICAgd2FudF9ib29zdD0ibm8iCisr ICAgICAgICAgICAgICAgIGVsaWYgdGVzdCAiJHdpdGh2YWwiID0gInllcyI7IHRoZW4KKysgICAg ICAgICAgICAgICAgICAgIHdhbnRfYm9vc3Q9InllcyIKKysgICAgICAgICAgICAgICAgICAgIGFj X2Jvb3N0X3BhdGg9IiIKKysgICAgICAgICAgICAgICAgZWxzZQorKwkJCSAgICAgICAgd2FudF9i b29zdD0ieWVzIgorKyAgICAgICAgICAgIAkJYWNfYm9vc3RfcGF0aD0iJHdpdGh2YWwiCisrCQkg ICAgICAgIGZpCisrCisrZWxzZQorKyAgd2FudF9ib29zdD0ieWVzIgorK2ZpCisrCisrCisrIyAg ICBBQ19DQU5PTklDQUxfQlVJTEQKKytCT09TVF9NRFdfVkVSU0lPTj0iMS0zMy0xIgorK0JPT1NU TElCX01EV19WRVJTSU9OPSIxXzMzXzEiCisrQk9PU1RfdmVyc2lvbl9oZWFkZXI9ImJvb3N0L3Zl cnNpb24uaHBwIgorKworKwlpZiB0ZXN0ICJ4JHdhbnRfYm9vc3QiID0gInh5ZXMiOyB0aGVuCisr CQlib29zdF9saWJfdmVyc2lvbl9yZXE9MS4zMworKwkJYm9vc3RfbGliX3ZlcnNpb25fcmVxX3No b3J0ZW49YGV4cHIgJGJvb3N0X2xpYl92ZXJzaW9uX3JlcSA6ICdcKFswLTldKlwuWzAtOV0qXCkn YAorKwkJYm9vc3RfbGliX3ZlcnNpb25fcmVxX21ham9yPWBleHByICRib29zdF9saWJfdmVyc2lv bl9yZXEgOiAnXChbMC05XSpcKSdgCisrCQlib29zdF9saWJfdmVyc2lvbl9yZXFfbWlub3I9YGV4 cHIgJGJvb3N0X2xpYl92ZXJzaW9uX3JlcSA6ICdbMC05XSpcLlwoWzAtOV0qXCknYAorKwkJYm9v c3RfbGliX3ZlcnNpb25fcmVxX3N1Yl9taW5vcj1gZXhwciAkYm9vc3RfbGliX3ZlcnNpb25fcmVx IDogJ1swLTldKlwuWzAtOV0qXC5cKFswLTldKlwpJ2AKKysJCWlmIHRlc3QgIngkYm9vc3RfbGli X3ZlcnNpb25fcmVxX3N1Yl9taW5vciIgPSAieCIgOyB0aGVuCisrCQkJYm9vc3RfbGliX3ZlcnNp b25fcmVxX3N1Yl9taW5vcj0iMCIKKysgICAgCWZpCisrCQlXQU5UX0JPT1NUX1ZFUlNJT049YGV4 cHIgJGJvb3N0X2xpYl92ZXJzaW9uX3JlcV9tYWpvciBcKiAxMDAwMDAgXCsgICRib29zdF9saWJf dmVyc2lvbl9yZXFfbWlub3IgXCogMTAwIFwrICRib29zdF9saWJfdmVyc2lvbl9yZXFfc3ViX21p bm9yYAorKwkJeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciBib29zdGxp YiA+PSAkYm9vc3RfbGliX3ZlcnNpb25fcmVxIiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyBm b3IgYm9vc3RsaWIgPj0gJGJvb3N0X2xpYl92ZXJzaW9uX3JlcS4uLiAiID4mNjsgfQorKwkJc3Vj Y2VlZGVkPW5vCisrCisrCQkJCQkJCQkJCWlmIHRlc3QgLWQgL2xpYjY0CisrCQl0aGVuCisrCQkJ Qk9PU1RfTElCRElSVFlQRT0ibGliNjQiCisrCQllbHNlCisrCQkJQk9PU1RfTElCRElSVFlQRT0i bGliIgorKwkJZmkKKysJCWlmIHRlc3QgIiRhY19ib29zdF9wYXRoIiAhPSAiIgorKwkJdGhlbgor KwkJCWlmIHRlc3QgIiRCT09TVF9MSUJESVJUWVBFIiA9PSAibGliNjQiCisrCQkJdGhlbgorKwkJ CQlpZiB0ZXN0IC1kICIkYWNfYm9vc3RfcGF0aC8kQk9PU1RfTElCRElSVFlQRSIgJiYgdGVzdCAt ciAiJGFjX2Jvb3N0X3BhdGgvJEJPT1NUX0xJQkRJUlRZUEUiCisrCQkJCXRoZW4KKysJICAgICAg ICAgICAgICAgIEJPT1NUX0xJQlM9Ii1MJGFjX2Jvb3N0X3BhdGgvJEJPT1NUX0xJQkRJUlRZUEUi CisrCQkJCWVsc2UKKysgICAgICAgICAgICAgICAgICAgIEJPT1NUX0xJQlM9Ii1MJGFjX2Jvb3N0 X3BhdGgvbGliIgorKwkJCQlmaQorKwkJCWVsc2UKKysJCQkJQk9PU1RfTElCUz0iLUwkYWNfYm9v c3RfcGF0aC9saWIiCisrCQkJZmkKKysJCQlCT09TVF9DRkxBR1M9Ii1JJGFjX2Jvb3N0X3BhdGgv aW5jbHVkZSIKKysJCQlCT09TVF9WRVJTSU9OPWBncmVwICJkZWZpbmUgQk9PU1RfTElCX1ZFUlNJ T04iICRhY19ib29zdF9wYXRoL2luY2x1ZGUvJHtCT09TVF92ZXJzaW9uX2hlYWRlcn0gfCBjdXQg LWQnICcgLWYzIHwgY3V0IC1kXCIgLWYyYAorKwkJZWxzZQorKwkJCWZvciBhY19ib29zdF9wYXRo X3RtcCBpbiAvdXNyIC91c3IvbG9jYWwgL29wdCAvbmFzdG9vbHMvYm9vc3QKKysJCQlkbworKwkJ CQlpZiB0ZXN0IC1kICIkYWNfYm9vc3RfcGF0aF90bXAvaW5jbHVkZS9ib29zdCIgJiYgdGVzdCAt ciAiJGFjX2Jvb3N0X3BhdGhfdG1wL2luY2x1ZGUvYm9vc3QiCisrCQkJCXRoZW4KKysJCQkJCUJP T1NUX0xJQlM9Ii1MJGFjX2Jvb3N0X3BhdGhfdG1wLyRCT09TVF9MSUJESVJUWVBFIgorKwkJCQkJ Qk9PU1RfQ0ZMQUdTPSItSSRhY19ib29zdF9wYXRoX3RtcC9pbmNsdWRlIgorKwkJCQkJQk9PU1Rf VkVSU0lPTj1gZ3JlcCAiZGVmaW5lIEJPT1NUX0xJQl9WRVJTSU9OIiAkYWNfYm9vc3RfcGF0aF90 bXAvaW5jbHVkZS8ke0JPT1NUX3ZlcnNpb25faGVhZGVyfSB8IGN1dCAtZCcgJyAtZjMgfCBjdXQg LWRcIiAtZjJgCisrCQkJCQlicmVhazsKKysJCQkJZmkKKysJCQkJaWYgdGVzdCAtZCAiJGFjX2Jv b3N0X3BhdGhfdG1wL2luY2x1ZGUvYm9vc3QtJEJPT1NUX01EV19WRVJTSU9OL2Jvb3N0IiAmJiB0 ZXN0IC1yICIkYWNfYm9vc3RfcGF0aF90bXAvaW5jbHVkZS9ib29zdC0kQk9PU1RfTURXX1ZFUlNJ T04vYm9vc3QiCisrCQkJCXRoZW4KKysJCQkJCUJPT1NUX0xJQlM9Ii1MJGFjX2Jvb3N0X3BhdGhf dG1wLyRCT09TVF9MSUJESVJUWVBFIgorKwkJCQkJQk9PU1RfQ0ZMQUdTPSItSSRhY19ib29zdF9w YXRoX3RtcC9pbmNsdWRlL2Jvb3N0LSRCT09TVF9NRFdfVkVSU0lPTiIKKysJCQkJCUJPT1NUX1ZF UlNJT049YGdyZXAgImRlZmluZSBCT09TVF9MSUJfVkVSU0lPTiIgJGFjX2Jvb3N0X3BhdGhfdG1w L2luY2x1ZGUvYm9vc3QtJEJPT1NUX01EV19WRVJTSU9OLyR7Qk9PU1RfdmVyc2lvbl9oZWFkZXJ9 IHwgY3V0IC1kJyAnIC1mMyB8IGN1dCAtZFwiIC1mMmAKKysKKysJCQkJCQkJCQkJaWYgdGVzdCAt ZCAiJGFjX2Jvb3N0X3BhdGhfdG1wL2xpYiIgXAorKwkJCQkJJiYgdGVzdCAtciAiJGFjX2Jvb3N0 X3BhdGhfdG1wL2xpYiIgXAorKwkJCQkJJiYgdGVzdCAhIC1kICIkYWNfYm9vc3RfcGF0aF90bXAv bGliNjQiCisrCQkJCQl0aGVuCisrCQkJCQkJQk9PU1RfTElCUz0iLUwkYWNfYm9vc3RfcGF0aF90 bXAvbGliIgorKwkJCQkJCWVjaG8gIkhhY2s6ICRCT09TVF9MSUJTIgorKwkJCQkJZmkKKysJCQkJ CWJyZWFrOworKwkJCQlmaQorKwkJCWRvbmUKKysJCWZpCisrCisrCQlDUFBGTEFHU19TQVZFRD0i JENQUEZMQUdTIgorKwkJQ1BQRkxBR1M9IiRDUFBGTEFHUyAkQk9PU1RfQ0ZMQUdTIgorKwkJZXhw b3J0IENQUEZMQUdTCisrCisrCQlMREZMQUdTX1NBVkVEPSIkTERGTEFHUyIKKysJCUxERkxBR1M9 IiRMREZMQUdTICRCT09TVF9MSUJTIgorKwkJZXhwb3J0IExERkxBR1MKKysKKysgICAgIAljYXQg PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKysvKiBjb25mZGVmcy5oLiAgKi8KKytfQUNFT0YK KytjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKKytjYXQgPj5jb25mdGVzdC4kYWNf ZXh0IDw8X0FDRU9GCisrLyogZW5kIGNvbmZkZWZzLmguICAqLworKworKyNpbmNsdWRlIDxib29z dC92ZXJzaW9uLmhwcD4KKysKKytpbnQKKyttYWluICgpCisreworKworKyNpZiBCT09TVF9WRVJT SU9OID49ICRXQU5UX0JPT1NUX1ZFUlNJT04KKysvLyBFdmVyeXRoaW5nIGlzIG9rYXkKKysjZWxz ZQorKyMgIGVycm9yIEJvb3N0IHZlcnNpb24gaXMgdG9vIG9sZAorKyNlbmRpZgorKworKworKyAg OworKyAgcmV0dXJuIDA7CisrfQorK19BQ0VPRgorK3JtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQK KytpZiB7IChhY190cnk9IiRhY19jb21waWxlIgorK2Nhc2UgIigoJGFjX3RyeSIgaW4KKysgICpc IiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OworKyAgKikgYWNfdHJ5X2Vj aG89JGFjX3RyeTs7CisrZXNhYworK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5P OiAkYWNfdHJ5X2VjaG9cIiIKKyskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1CisrICAoZXZh bCAiJGFjX2NvbXBpbGUiKSAyPmNvbmZ0ZXN0LmVyMQorKyAgYWNfc3RhdHVzPSQ/CisrICBncmVw IC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgorKyAgcm0gLWYgY29uZnRlc3Qu ZXIxCisrICBjYXQgY29uZnRlc3QuZXJyID4mNQorKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5P OiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKysgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmIHsKKysJ IHRlc3QgLXogIiRhY19jeHhfd2Vycm9yX2ZsYWciIHx8CisrCSB0ZXN0ICEgLXMgY29uZnRlc3Qu ZXJyCisrICAgICAgIH0gJiYgdGVzdCAtcyBjb25mdGVzdC4kYWNfb2JqZXh0OyB0aGVuCisrCisr ICAgICAgICAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogeWVzIiA+JjUKKysk YXNfZWNobyAieWVzIiA+JjY7IH0KKysJCSBzdWNjZWVkZWQ9eWVzCisrCQkgZm91bmRfc3lzdGVt PXllcworKyAgICAgICAgIDoKKysKKytlbHNlCisrICAkYXNfZWNobyAiJGFzX21lOiBmYWlsZWQg cHJvZ3JhbSB3YXM6IiA+JjUKKytzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1Cisr CisrCisrCisrZmkKKysKKytybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2Jq ZXh0IGNvbmZ0ZXN0LiRhY19leHQKKysKKysJCQkJCQlpZiB0ZXN0ICJ4JHN1Y2NlZWRlZCIgIT0g Inh5ZXMiOyB0aGVuCisrCQkJX3ZlcnNpb249MAorKwkJCWlmIHRlc3QgIiRhY19ib29zdF9wYXRo IiAhPSAiIjsgdGhlbgorKyAgICAgICAgICAgICAgICBCT09TVF9MSUJTPSItTCRhY19ib29zdF9w YXRoLyRCT09TVF9MSUJESVJUWVBFIgorKwkJCQlpZiB0ZXN0IC1kICIkYWNfYm9vc3RfcGF0aCIg JiYgdGVzdCAtciAiJGFjX2Jvb3N0X3BhdGgiOyB0aGVuCisrCQkJCQlmb3IgaSBpbiBgbHMgLWQg JGFjX2Jvb3N0X3BhdGgvaW5jbHVkZS9ib29zdC0qIDI+L2Rldi9udWxsYDsgZG8KKysJCQkJCQlf dmVyc2lvbl90bXA9YGVjaG8gJGkgfCBzZWQgInMjJGFjX2Jvb3N0X3BhdGgjIyIgfCBzZWQgJ3Mv XC9pbmNsdWRlXC9ib29zdC0vLycgfCBzZWQgJ3MvXy8uLydgCisrCQkJCQkJVl9DSEVDSz1gZXhw ciAkX3ZlcnNpb25fdG1wIFw+ICRfdmVyc2lvbmAKKysJCQkJCQlpZiB0ZXN0ICIkVl9DSEVDSyIg PSAiMSIgOyB0aGVuCisrCQkJCQkJCV92ZXJzaW9uPSRfdmVyc2lvbl90bXAKKysJCQkJCQlmaQor KwkJCQkJCVZFUlNJT05fVU5ERVJTQ09SRT1gZWNobyAkX3ZlcnNpb24gfCBzZWQgJ3MvXC4vXy8n YAorKwkJCQkJCUJPT1NUX0NGTEFHUz0iLUkkYWNfYm9vc3RfcGF0aC9pbmNsdWRlL2Jvb3N0LSRW RVJTSU9OX1VOREVSU0NPUkUiCisrCQkJCQlkb25lCisrCQkJCWZpCisrCQkJZWxzZQorKwkJCQlm b3IgYWNfYm9vc3RfcGF0aCBpbiAvdXNyIC91c3IvbG9jYWwgL29wdCA7IGRvCisrCQkJCQlpZiB0 ZXN0IC1kICIkYWNfYm9vc3RfcGF0aCIgJiYgdGVzdCAtciAiJGFjX2Jvb3N0X3BhdGgiOyB0aGVu CisrCQkJCQkJZm9yIGkgaW4gYGxzIC1kICRhY19ib29zdF9wYXRoL2luY2x1ZGUvYm9vc3QtKiAy Pi9kZXYvbnVsbGA7IGRvCisrCQkJCQkJCV92ZXJzaW9uX3RtcD1gZWNobyAkaSB8IHNlZCAicyMk YWNfYm9vc3RfcGF0aCMjIiB8IHNlZCAncy9cL2luY2x1ZGVcL2Jvb3N0LS8vJyB8IHNlZCAncy9f Ly4vJ2AKKysJCQkJCQkJVl9DSEVDSz1gZXhwciAkX3ZlcnNpb25fdG1wIFw+ICRfdmVyc2lvbmAK KysJCQkJCQkJaWYgdGVzdCAiJFZfQ0hFQ0siID0gIjEiIDsgdGhlbgorKwkJCQkJCQkJX3ZlcnNp b249JF92ZXJzaW9uX3RtcAorKwkJCQkJCQkJYmVzdF9wYXRoPSRhY19ib29zdF9wYXRoCisrCQkJ CQkJCWZpCisrCQkJCQkJZG9uZQorKwkJCQkJZmkKKysJCQkJZG9uZQorKworKwkJCQlWRVJTSU9O X1VOREVSU0NPUkU9YGVjaG8gJF92ZXJzaW9uIHwgc2VkICdzL1wuL18vJ2AKKysJCQkJQk9PU1Rf Q0ZMQUdTPSItSSRiZXN0X3BhdGgvaW5jbHVkZS9ib29zdC0kVkVSU0lPTl9VTkRFUlNDT1JFIgor KwkJCQlCT09TVF9MSUJTPSItTCRiZXN0X3BhdGgvJEJPT1NUX0xJQkRJUlRZUEUiCisrCisrCSAg ICAJCWlmIHRlc3QgIngkQk9PU1RfUk9PVCIgIT0gIngiOyB0aGVuCisrCQkJCQlpZiB0ZXN0IC1k ICIkQk9PU1RfUk9PVCIgJiYgdGVzdCAtciAiJEJPT1NUX1JPT1QiOyB0aGVuCisrCQkJCQkJdmVy c2lvbl9kaXI9YGV4cHIgLy8kQk9PU1RfUk9PVCA6ICcuKi9cKC4qXCknYAorKwkJCQkJCXN0YWdl X3ZlcnNpb249YGVjaG8gJHZlcnNpb25fZGlyIHwgc2VkICdzL2Jvb3N0Xy8vJyB8IHNlZCAncy9f Ly4vZydgCisrCQkJCQkJc3RhZ2VfdmVyc2lvbl9zaG9ydGVuPWBleHByICRzdGFnZV92ZXJzaW9u IDogJ1woWzAtOV0qXC5bMC05XSpcKSdgCisrCQkJCQkJVl9DSEVDSz1gZXhwciAkc3RhZ2VfdmVy c2lvbl9zaG9ydGVuIFw+XD0gJF92ZXJzaW9uYAorKwkJCQkJCWlmIHRlc3QgIiRWX0NIRUNLIiA9 ICIxIiA7IHRoZW4KKysJCQkJCQkJeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFdlIHdpbGwg dXNlIGEgc3RhZ2VkIGJvb3N0IGxpYnJhcnkgZnJvbSAkQk9PU1RfUk9PVCIgPiY1CisrJGFzX2Vj aG8gIiRhc19tZTogV2Ugd2lsbCB1c2UgYSBzdGFnZWQgYm9vc3QgbGlicmFyeSBmcm9tICRCT09T VF9ST09UIiA+JjY7fQorKwkJCQkJCQlCT09TVF9DRkxBR1M9Ii1JJEJPT1NUX1JPT1QiCisrCQkJ CQkJCUJPT1NUX0xJQlM9Ii1MJEJPT1NUX1JPT1Qvc3RhZ2UvJEJPT1NUX0xJQkRJUlRZUEUiCisr CQkJCQkJZmkKKysJCQkJCWZpCisrCSAgICAJCWZpCisrCQkJZmkKKysKKysJCQlDUFBGTEFHUz0i JENQUEZMQUdTICRCT09TVF9DRkxBR1MiCisrCQkJZXhwb3J0IENQUEZMQUdTCisrCQkJTERGTEFH Uz0iJExERkxBR1MgJEJPT1NUX0xJQlMiCisrCQkJZXhwb3J0IExERkxBR1MKKysKKysgICAgIAkJ Y2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisrLyogY29uZmRlZnMuaC4gICovCisrX0FD RU9GCisrY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0CisrY2F0ID4+Y29uZnRlc3Qu JGFjX2V4dCA8PF9BQ0VPRgorKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KKysKKysjaW5jbHVkZSA8 Ym9vc3QvdmVyc2lvbi5ocHA+CisrCisraW50CisrbWFpbiAoKQorK3sKKysKKysjaWYgQk9PU1Rf VkVSU0lPTiA+PSAkV0FOVF9CT09TVF9WRVJTSU9OCisrLy8gRXZlcnl0aGluZyBpcyBva2F5Cisr I2Vsc2UKKysjICBlcnJvciBCb29zdCB2ZXJzaW9uIGlzIHRvbyBvbGQKKysjZW5kaWYKKysKKysK KysgIDsKKysgIHJldHVybiAwOworK30KKytfQUNFT0YKKytybSAtZiBjb25mdGVzdC4kYWNfb2Jq ZXh0CisraWYgeyAoYWNfdHJ5PSIkYWNfY29tcGlsZSIKKytjYXNlICIoKCRhY190cnkiIGluCisr ICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKKysgICopIGFjX3Ry eV9lY2hvPSRhY190cnk7OworK2VzYWMKKytldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJ TkVOTzogJGFjX3RyeV9lY2hvXCIiCisrJGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4mNQorKyAg KGV2YWwgIiRhY19jb21waWxlIikgMj5jb25mdGVzdC5lcjEKKysgIGFjX3N0YXR1cz0kPworKyAg Z3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKKysgIHJtIC1mIGNvbmZ0 ZXN0LmVyMQorKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKKysgICRhc19lY2hvICIkYXNfbWU6JExJ TkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisrICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJiB7 CisrCSB0ZXN0IC16ICIkYWNfY3h4X3dlcnJvcl9mbGFnIiB8fAorKwkgdGVzdCAhIC1zIGNvbmZ0 ZXN0LmVycgorKyAgICAgICB9ICYmIHRlc3QgLXMgY29uZnRlc3QuJGFjX29iamV4dDsgdGhlbgor KworKyAgICAgICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IHllcyAoJF92 ZXJzaW9uKSIgPiY1CisrJGFzX2VjaG8gInllcyAoJF92ZXJzaW9uKSIgPiY2OyB9CisrCQkgc3Vj Y2VlZGVkPXllcworKyAgICAgICAgIDoKKysKKytlbHNlCisrICAkYXNfZWNobyAiJGFzX21lOiBm YWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKKytzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQg PiY1CisrCisrCisrICAgICAgICAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDog bm8gKCRfdmVyc2lvbikiID4mNQorKyRhc19lY2hvICJubyAoJF92ZXJzaW9uKSIgPiY2OyB9Cisr ICAgICAgICAgOgorKworK2ZpCisrCisrcm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3Qu JGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0CisrCQlmaQorKworKwkJaWYgdGVzdCAiJHN1Y2Nl ZWRlZCIgIT0gInllcyIgOyB0aGVuCisrCQkJaWYgdGVzdCAiJF92ZXJzaW9uIiA9ICIwIiA7IHRo ZW4KKysJCQkJeyB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IFdlIGNvdWxkIG5v dCBkZXRlY3QgdGhlIGJvb3N0IGxpYnJhcmllcyAodmVyc2lvbiAkYm9vc3RfbGliX3ZlcnNpb25f cmVxX3Nob3J0ZW4gb3IgaGlnaGVyKS4gSWYgeW91IGhhdmUgYSBzdGFnZWQgYm9vc3QgbGlicmFy eSAoc3RpbGwgbm90IGluc3RhbGxlZCkgcGxlYXNlIHNwZWNpZnkgXCRCT09TVF9ST09UIGluIHlv dXIgZW52aXJvbm1lbnQgYW5kIGRvIG5vdCBnaXZlIGEgUEFUSCB0byAtLXdpdGgtYm9vc3Qgb3B0 aW9uLiAgSWYgeW91IGFyZSBzdXJlIHlvdSBoYXZlIGJvb3N0IGluc3RhbGxlZCwgdGhlbiBjaGVj ayB5b3VyIHZlcnNpb24gbnVtYmVyIGxvb2tpbmcgaW4gPGJvb3N0L3ZlcnNpb24uaHBwPi4iID4m NQorKyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBXZSBjb3VsZCBub3QgZGV0ZWN0IHRoZSBib29z dCBsaWJyYXJpZXMgKHZlcnNpb24gJGJvb3N0X2xpYl92ZXJzaW9uX3JlcV9zaG9ydGVuIG9yIGhp Z2hlcikuIElmIHlvdSBoYXZlIGEgc3RhZ2VkIGJvb3N0IGxpYnJhcnkgKHN0aWxsIG5vdCBpbnN0 YWxsZWQpIHBsZWFzZSBzcGVjaWZ5IFwkQk9PU1RfUk9PVCBpbiB5b3VyIGVudmlyb25tZW50IGFu ZCBkbyBub3QgZ2l2ZSBhIFBBVEggdG8gLS13aXRoLWJvb3N0IG9wdGlvbi4gIElmIHlvdSBhcmUg c3VyZSB5b3UgaGF2ZSBib29zdCBpbnN0YWxsZWQsIHRoZW4gY2hlY2sgeW91ciB2ZXJzaW9uIG51 bWJlciBsb29raW5nIGluIDxib29zdC92ZXJzaW9uLmhwcD4uIiA+JjI7fQorKyAgIHsgKGV4aXQg MSk7IGV4aXQgMTsgfTsgfQorKwkJCWVsc2UKKysJCQkJeyB7ICRhc19lY2hvICIkYXNfbWU6JExJ TkVOTzogZXJyb3I6ICdZb3VyIGJvb3N0IGxpYnJhcmllcyBzZWVtcyB0byBvbGQgKHZlcnNpb24g JF92ZXJzaW9uKS4gIFdlIG5lZWQgYXQgbGVhc3QgJGJvb3N0X2xpYl92ZXJzaW9uX3Nob3J0ZW4n IiA+JjUKKyskYXNfZWNobyAiJGFzX21lOiBlcnJvcjogJ1lvdXIgYm9vc3QgbGlicmFyaWVzIHNl ZW1zIHRvIG9sZCAodmVyc2lvbiAkX3ZlcnNpb24pLiAgV2UgbmVlZCBhdCBsZWFzdCAkYm9vc3Rf bGliX3ZlcnNpb25fc2hvcnRlbiciID4mMjt9CisrICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9 CisrCQkJZmkKKysJCWVsc2UKKysKKysKKysKKytjYXQgPj5jb25mZGVmcy5oIDw8XF9BQ0VPRgor KyNkZWZpbmUgSEFWRV9CT09TVCAvKiovCisrX0FDRU9GCisrCisrCisrIworKyMgQm9vc3Q6OkZp bGVzeXN0ZW0KKysjCisrCQkJeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIHdo ZXRoZXIgdGhlIEJvb3N0OjpGaWxlc3lzdGVtIGxpYnJhcnkgaXMgYXZhaWxhYmxlIiA+JjUKKysk YXNfZWNob19uICJjaGVja2luZyB3aGV0aGVyIHRoZSBCb29zdDo6RmlsZXN5c3RlbSBsaWJyYXJ5 IGlzIGF2YWlsYWJsZS4uLiAiID4mNjsgfQorK2lmIHRlc3QgIiR7YXhfY3ZfYm9vc3RfZmlsZXN5 c3RlbStzZXR9IiA9IHNldDsgdGhlbgorKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKKytl bHNlCisrCisrCQkJIGFjX2V4dD1jcHAKKythY19jcHA9JyRDWFhDUFAgJENQUEZMQUdTJworK2Fj X2NvbXBpbGU9JyRDWFggLWMgJENYWEZMQUdTICRDUFBGTEFHUyBjb25mdGVzdC4kYWNfZXh0ID4m NScKKythY19saW5rPSckQ1hYIC1vIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAkQ1hYRkxBR1MgJENQUEZM QUdTICRMREZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgJExJQlMgPiY1JworK2FjX2NvbXBpbGVyX2du dT0kYWNfY3ZfY3h4X2NvbXBpbGVyX2dudQorKworKwkJCSBjYXQgPmNvbmZ0ZXN0LiRhY19leHQg PDxfQUNFT0YKKysvKiBjb25mZGVmcy5oLiAgKi8KKytfQUNFT0YKKytjYXQgY29uZmRlZnMuaCA+ PmNvbmZ0ZXN0LiRhY19leHQKKytjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisrLyog ZW5kIGNvbmZkZWZzLmguICAqLworKyNpbmNsdWRlIDxib29zdC9maWxlc3lzdGVtL3BhdGguaHBw PgorK2ludAorK21haW4gKCkKKyt7CisrdXNpbmcgbmFtZXNwYWNlIGJvb3N0OjpmaWxlc3lzdGVt OworKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGF0aCBteV9wYXRoKCAiZm9v L2Jhci9kYXRhLnR4dCIgKTsKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJl dHVybiAwOworKyAgOworKyAgcmV0dXJuIDA7CisrfQorK19BQ0VPRgorK3JtIC1mIGNvbmZ0ZXN0 LiRhY19vYmpleHQKKytpZiB7IChhY190cnk9IiRhY19jb21waWxlIgorK2Nhc2UgIigoJGFjX3Ry eSIgaW4KKysgICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OworKyAg KikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7CisrZXNhYworK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRh c19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIKKyskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikg PiY1CisrICAoZXZhbCAiJGFjX2NvbXBpbGUiKSAyPmNvbmZ0ZXN0LmVyMQorKyAgYWNfc3RhdHVz PSQ/CisrICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgorKyAgcm0g LWYgY29uZnRlc3QuZXIxCisrICBjYXQgY29uZnRlc3QuZXJyID4mNQorKyAgJGFzX2VjaG8gIiRh c19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKysgIChleGl0ICRhY19zdGF0dXMp OyB9ICYmIHsKKysJIHRlc3QgLXogIiRhY19jeHhfd2Vycm9yX2ZsYWciIHx8CisrCSB0ZXN0ICEg LXMgY29uZnRlc3QuZXJyCisrICAgICAgIH0gJiYgdGVzdCAtcyBjb25mdGVzdC4kYWNfb2JqZXh0 OyB0aGVuCisrICBheF9jdl9ib29zdF9maWxlc3lzdGVtPXllcworK2Vsc2UKKysgICRhc19lY2hv ICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQorK3NlZCAncy9eL3wgLycgY29uZnRl c3QuJGFjX2V4dCA+JjUKKysKKysJYXhfY3ZfYm9vc3RfZmlsZXN5c3RlbT1ubworK2ZpCisrCisr cm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNf ZXh0CisrCQkgCQkgICAgICAgIAkJCWFjX2V4dD1jcHAKKythY19jcHA9JyRDWFhDUFAgJENQUEZM QUdTJworK2FjX2NvbXBpbGU9JyRDWFggLWMgJENYWEZMQUdTICRDUFBGTEFHUyBjb25mdGVzdC4k YWNfZXh0ID4mNScKKythY19saW5rPSckQ1hYIC1vIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAkQ1hYRkxB R1MgJENQUEZMQUdTICRMREZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgJExJQlMgPiY1JworK2FjX2Nv bXBpbGVyX2dudT0kYWNfY3ZfY3h4X2NvbXBpbGVyX2dudQorKworKworK2ZpCisreyAkYXNfZWNo byAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGF4X2N2X2Jvb3N0X2ZpbGVzeXN0ZW0iID4mNQor KyRhc19lY2hvICIkYXhfY3ZfYm9vc3RfZmlsZXN5c3RlbSIgPiY2OyB9CisrCQkJaWYgdGVzdCAi JGF4X2N2X2Jvb3N0X2ZpbGVzeXN0ZW0iID0gInllcyI7IHRoZW4KKysKKytjYXQgPj5jb25mZGVm cy5oIDw8XF9BQ0VPRgorKyNkZWZpbmUgSEFWRV9CT09TVF9GSUxFU1lTVEVNIC8qKi8KKytfQUNF T0YKKysKKysJCQkJQk49Ym9vc3RfZmlsZXN5c3RlbQorKwkJCQlmb3IgYXhfbGliIGluICRCTiAk Qk4tJENDICRCTi0kQ0MtbXQgJEJOLSRDQy1tdC1zICRCTi0kQ0MtcyBcCisrICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgbGliJEJOIGxpYiRCTi0kQ0MgbGliJEJOLSRDQy1tdCBsaWIkQk4t JENDLW10LXMgXAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpYiRCTi0kQ0MtcyAk Qk4tbWd3ICRCTi1tZ3ctbXQgJEJOLW1ndy1tdC1zIFwKKysgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAkQk4tbWd3LXMgJEJOLSRDQy1tdC0kQk9PU1RMSUJfTURXX1ZFUlNJT04gOyBkbwor KwkJCQkgICAgYXNfYWNfTGliPWAkYXNfZWNobyAiYWNfY3ZfbGliXyRheF9saWInJ19tYWluIiB8 ICRhc190cl9zaGAKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIG1h aW4gaW4gLWwkYXhfbGliIiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyBmb3IgbWFpbiBpbiAt bCRheF9saWIuLi4gIiA+JjY7IH0KKytpZiB7IGFzX3Zhcj0kYXNfYWNfTGliOyBldmFsICJ0ZXN0 IFwiXCR7JGFzX3ZhcitzZXR9XCIgPSBzZXQiOyB9OyB0aGVuCisrICAkYXNfZWNob19uICIoY2Fj aGVkKSAiID4mNgorK2Vsc2UKKysgIGFjX2NoZWNrX2xpYl9zYXZlX0xJQlM9JExJQlMKKytMSUJT PSItbCRheF9saWIgICRMSUJTIgorK2NhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorKy8q IGNvbmZkZWZzLmguICAqLworK19BQ0VPRgorK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFj X2V4dAorK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKysvKiBlbmQgY29uZmRlZnMu aC4gICovCisrCisrCisraW50CisrbWFpbiAoKQorK3sKKytyZXR1cm4gbWFpbiAoKTsKKysgIDsK KysgIHJldHVybiAwOworK30KKytfQUNFT0YKKytybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0IGNv bmZ0ZXN0JGFjX2V4ZWV4dAorK2lmIHsgKGFjX3RyeT0iJGFjX2xpbmsiCisrY2FzZSAiKCgkYWNf dHJ5IiBpbgorKyAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7Cisr ICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKKytlc2FjCisrZXZhbCBhY190cnlfZWNobz0iXCJc JGFzX21lOiRMSU5FTk86ICRhY190cnlfZWNob1wiIgorKyRhc19lY2hvICIkYWNfdHJ5X2VjaG8i KSA+JjUKKysgIChldmFsICIkYWNfbGluayIpIDI+Y29uZnRlc3QuZXIxCisrICBhY19zdGF0dXM9 JD8KKysgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCisrICBybSAt ZiBjb25mdGVzdC5lcjEKKysgIGNhdCBjb25mdGVzdC5lcnIgPiY1CisrICAkYXNfZWNobyAiJGFz X21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorKyAgKGV4aXQgJGFjX3N0YXR1cyk7 IH0gJiYgeworKwkgdGVzdCAteiAiJGFjX2N4eF93ZXJyb3JfZmxhZyIgfHwKKysJIHRlc3QgISAt cyBjb25mdGVzdC5lcnIKKysgICAgICAgfSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAm JiB7CisrCSB0ZXN0ICIkY3Jvc3NfY29tcGlsaW5nIiA9IHllcyB8fAorKwkgJGFzX3Rlc3RfeCBj b25mdGVzdCRhY19leGVleHQKKysgICAgICAgfTsgdGhlbgorKyAgZXZhbCAiJGFzX2FjX0xpYj15 ZXMiCisrZWxzZQorKyAgJGFzX2VjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1 Cisrc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQorKworKwlldmFsICIkYXNfYWNf TGliPW5vIgorK2ZpCisrCisrcm0gLXJmIGNvbmZ0ZXN0LmRTWU0KKytybSAtZiBjb3JlIGNvbmZ0 ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0X2lwYThfY29uZnRlc3Qub28gXAor KyAgICAgIGNvbmZ0ZXN0JGFjX2V4ZWV4dCBjb25mdGVzdC4kYWNfZXh0CisrTElCUz0kYWNfY2hl Y2tfbGliX3NhdmVfTElCUworK2ZpCisrYWNfcmVzPWBldmFsICdhc192YWw9JHsnJGFzX2FjX0xp Yid9CisrCQkgJGFzX2VjaG8gIiRhc192YWwiJ2AKKysJICAgICAgIHsgJGFzX2VjaG8gIiRhc19t ZTokTElORU5POiByZXN1bHQ6ICRhY19yZXMiID4mNQorKyRhc19lY2hvICIkYWNfcmVzIiA+JjY7 IH0KKythc192YWw9YGV2YWwgJ2FzX3ZhbD0keyckYXNfYWNfTGliJ30KKysJCSAkYXNfZWNobyAi JGFzX3ZhbCInYAorKyAgIGlmIHRlc3QgIngkYXNfdmFsIiA9IHgiInllczsgdGhlbgorKyAgQk9P U1RfRklMRVNZU1RFTV9MSUI9Ii1sJGF4X2xpYiIgIGxpbmtfZmlsZXN5c3RlbT0ieWVzIiBicmVh aworK2Vsc2UKKysgIGxpbmtfZmlsZXN5c3RlbT0ibm8iCisrZmkKKysKKysgIAkJCQlkb25lCisr CQkJCWlmIHRlc3QgIngkbGlua19maWxlc3lzdGVtIiA9ICJ4bm8iOyB0aGVuCisrCQkJCQl7ICRh c19lY2hvICIkYXNfbWU6JExJTkVOTzogQ291bGQgbm90IGxpbmsgYWdhaW5zdCAkYXhfbGliICEi ID4mNQorKyRhc19lY2hvICIkYXNfbWU6IENvdWxkIG5vdCBsaW5rIGFnYWluc3QgJGF4X2xpYiAh IiA+JjY7fQorKwkJCQlmaQorKwkJCWZpCisrCisrIworKyMgQm9vc3Q6OlN5c3RlbQorKyMKKysg ICAgICAgICAgICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgd2hldGhlciB0 aGUgQm9vc3Q6OlN5c3RlbSBsaWJyYXJ5IGlzIGF2YWlsYWJsZSIgPiY1CisrJGFzX2VjaG9fbiAi Y2hlY2tpbmcgd2hldGhlciB0aGUgQm9vc3Q6OlN5c3RlbSBsaWJyYXJ5IGlzIGF2YWlsYWJsZS4u LiAiID4mNjsgfQorK2lmIHRlc3QgIiR7YXhfY3ZfYm9vc3Rfc3lzdGVtK3NldH0iID0gc2V0OyB0 aGVuCisrICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysKKysgICAgICAgICAg ICBhY19leHQ9Y3BwCisrYWNfY3BwPSckQ1hYQ1BQICRDUFBGTEFHUycKKythY19jb21waWxlPSck Q1hYIC1jICRDWFhGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUnCisrYWNfbGlu az0nJENYWCAtbyBjb25mdGVzdCRhY19leGVleHQgJENYWEZMQUdTICRDUFBGTEFHUyAkTERGTEFH UyBjb25mdGVzdC4kYWNfZXh0ICRMSUJTID4mNScKKythY19jb21waWxlcl9nbnU9JGFjX2N2X2N4 eF9jb21waWxlcl9nbnUKKysKKysgICAgICAgICAgICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxf QUNFT0YKKysvKiBjb25mZGVmcy5oLiAgKi8KKytfQUNFT0YKKytjYXQgY29uZmRlZnMuaCA+PmNv bmZ0ZXN0LiRhY19leHQKKytjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisrLyogZW5k IGNvbmZkZWZzLmguICAqLworKyNpbmNsdWRlIDxib29zdC9zeXN0ZW0vZXJyb3JfY29kZS5ocHA+ CisraW50CisrbWFpbiAoKQorK3sKKyt1c2luZyBuYW1lc3BhY2UgYm9vc3Q6OnN5c3RlbTsKKysg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yX2NvZGUgbXlFcnJvckNvZGUo KTsKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAwOworKyAgOwor KyAgcmV0dXJuIDA7CisrfQorK19BQ0VPRgorK3JtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQKKytp ZiB7IChhY190cnk9IiRhY19jb21waWxlIgorK2Nhc2UgIigoJGFjX3RyeSIgaW4KKysgICpcIiog fCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OworKyAgKikgYWNfdHJ5X2VjaG89 JGFjX3RyeTs7CisrZXNhYworK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5POiAk YWNfdHJ5X2VjaG9cIiIKKyskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1CisrICAoZXZhbCAi JGFjX2NvbXBpbGUiKSAyPmNvbmZ0ZXN0LmVyMQorKyAgYWNfc3RhdHVzPSQ/CisrICBncmVwIC12 ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgorKyAgcm0gLWYgY29uZnRlc3QuZXIx CisrICBjYXQgY29uZnRlc3QuZXJyID4mNQorKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBc JD8gPSAkYWNfc3RhdHVzIiA+JjUKKysgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmIHsKKysJIHRl c3QgLXogIiRhY19jeHhfd2Vycm9yX2ZsYWciIHx8CisrCSB0ZXN0ICEgLXMgY29uZnRlc3QuZXJy CisrICAgICAgIH0gJiYgdGVzdCAtcyBjb25mdGVzdC4kYWNfb2JqZXh0OyB0aGVuCisrICBheF9j dl9ib29zdF9zeXN0ZW09eWVzCisrZWxzZQorKyAgJGFzX2VjaG8gIiRhc19tZTogZmFpbGVkIHBy b2dyYW0gd2FzOiIgPiY1Cisrc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQorKwor KwlheF9jdl9ib29zdF9zeXN0ZW09bm8KKytmaQorKworK3JtIC1mIGNvcmUgY29uZnRlc3QuZXJy IGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAorKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGFjX2V4dD1jcHAKKythY19jcHA9JyRDWFhDUFAgJENQUEZMQUdT JworK2FjX2NvbXBpbGU9JyRDWFggLWMgJENYWEZMQUdTICRDUFBGTEFHUyBjb25mdGVzdC4kYWNf ZXh0ID4mNScKKythY19saW5rPSckQ1hYIC1vIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAkQ1hYRkxBR1Mg JENQUEZMQUdTICRMREZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgJExJQlMgPiY1JworK2FjX2NvbXBp bGVyX2dudT0kYWNfY3ZfY3h4X2NvbXBpbGVyX2dudQorKworKworK2ZpCisreyAkYXNfZWNobyAi JGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGF4X2N2X2Jvb3N0X3N5c3RlbSIgPiY1CisrJGFzX2Vj aG8gIiRheF9jdl9ib29zdF9zeXN0ZW0iID4mNjsgfQorKyAgICAgICAgICAgIGlmIHRlc3QgIiRh eF9jdl9ib29zdF9zeXN0ZW0iID0gInllcyI7IHRoZW4KKysKKytjYXQgPj5jb25mZGVmcy5oIDw8 XF9BQ0VPRgorKyNkZWZpbmUgSEFWRV9CT09TVF9TWVNURU0gLyoqLworK19BQ0VPRgorKworKyAg ICAgICAgICAgICAgICAgQk49Ym9vc3Rfc3lzdGVtCisrICAgICAgICAgICAgICAgICBmb3IgYXhf bGliIGluICRCTiAkQk4tJENDICRCTi0kQ0MtbXQgJEJOLSRDQy1tdC1zICRCTi0kQ0MtcyBcCisr ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGliJEJOIGxpYiRCTi0kQ0MgbGliJEJOLSRD Qy1tdCBsaWIkQk4tJENDLW10LXMgbGliJEJOLSRDQy1zIFwKKysgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAkQk4tbWd3ICRCTi1tZ3cgJEJOLW1ndy1tdCAkQk4tbWd3LW10LXMgJEJOLW1n dy1zIDsgZG8KKysgICAgICAgICAgICAgICAgICAgICBhc19hY19MaWI9YCRhc19lY2hvICJhY19j dl9saWJfJGF4X2xpYicnX21haW4iIHwgJGFzX3RyX3NoYAorK3sgJGFzX2VjaG8gIiRhc19tZTok TElORU5POiBjaGVja2luZyBmb3IgbWFpbiBpbiAtbCRheF9saWIiID4mNQorKyRhc19lY2hvX24g ImNoZWNraW5nIGZvciBtYWluIGluIC1sJGF4X2xpYi4uLiAiID4mNjsgfQorK2lmIHsgYXNfdmFy PSRhc19hY19MaWI7IGV2YWwgInRlc3QgXCJcJHskYXNfdmFyK3NldH1cIiA9IHNldCI7IH07IHRo ZW4KKysgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2CisrZWxzZQorKyAgYWNfY2hlY2tfbGli X3NhdmVfTElCUz0kTElCUworK0xJQlM9Ii1sJGF4X2xpYiAgJExJQlMiCisrY2F0ID5jb25mdGVz dC4kYWNfZXh0IDw8X0FDRU9GCisrLyogY29uZmRlZnMuaC4gICovCisrX0FDRU9GCisrY2F0IGNv bmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0CisrY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9B Q0VPRgorKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KKysKKysKKytpbnQKKyttYWluICgpCisrewor K3JldHVybiBtYWluICgpOworKyAgOworKyAgcmV0dXJuIDA7CisrfQorK19BQ0VPRgorK3JtIC1m IGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QkYWNfZXhlZXh0CisraWYgeyAoYWNfdHJ5PSIk YWNfbGluayIKKytjYXNlICIoKCRhY190cnkiIGluCisrICAqXCIqIHwgKlxgKiB8ICpcXCopIGFj X3RyeV9lY2hvPVwkYWNfdHJ5OzsKKysgICopIGFjX3RyeV9lY2hvPSRhY190cnk7OworK2VzYWMK KytldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCisr JGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4mNQorKyAgKGV2YWwgIiRhY19saW5rIikgMj5jb25m dGVzdC5lcjEKKysgIGFjX3N0YXR1cz0kPworKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIx ID5jb25mdGVzdC5lcnIKKysgIHJtIC1mIGNvbmZ0ZXN0LmVyMQorKyAgY2F0IGNvbmZ0ZXN0LmVy ciA+JjUKKysgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1 CisrICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJiB7CisrCSB0ZXN0IC16ICIkYWNfY3h4X3dlcnJv cl9mbGFnIiB8fAorKwkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgorKyAgICAgICB9ICYmIHRlc3Qg LXMgY29uZnRlc3QkYWNfZXhlZXh0ICYmIHsKKysJIHRlc3QgIiRjcm9zc19jb21waWxpbmciID0g eWVzIHx8CisrCSAkYXNfdGVzdF94IGNvbmZ0ZXN0JGFjX2V4ZWV4dAorKyAgICAgICB9OyB0aGVu CisrICBldmFsICIkYXNfYWNfTGliPXllcyIKKytlbHNlCisrICAkYXNfZWNobyAiJGFzX21lOiBm YWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKKytzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQg PiY1CisrCisrCWV2YWwgIiRhc19hY19MaWI9bm8iCisrZmkKKysKKytybSAtcmYgY29uZnRlc3Qu ZFNZTQorK3JtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRl c3RfaXBhOF9jb25mdGVzdC5vbyBcCisrICAgICAgY29uZnRlc3QkYWNfZXhlZXh0IGNvbmZ0ZXN0 LiRhY19leHQKKytMSUJTPSRhY19jaGVja19saWJfc2F2ZV9MSUJTCisrZmkKKythY19yZXM9YGV2 YWwgJ2FzX3ZhbD0keyckYXNfYWNfTGliJ30KKysJCSAkYXNfZWNobyAiJGFzX3ZhbCInYAorKwkg ICAgICAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX3JlcyIgPiY1Cisr JGFzX2VjaG8gIiRhY19yZXMiID4mNjsgfQorK2FzX3ZhbD1gZXZhbCAnYXNfdmFsPSR7JyRhc19h Y19MaWInfQorKwkJICRhc19lY2hvICIkYXNfdmFsIidgCisrICAgaWYgdGVzdCAieCRhc192YWwi ID0geCIieWVzOyB0aGVuCisrICBCT09TVF9TWVNURU1fTElCPSItbCRheF9saWIiICBsaW5rX3N5 c3RlbT0ieWVzIiBicmVhaworK2Vsc2UKKysgIGxpbmtfc3lzdGVtPSJubyIKKytmaQorKworKyAg ICAgICAgICAgICAgICAgZG9uZQorKyAgICAgICAgICAgICAgICAgaWYgdGVzdCAieCRsaW5rX3N5 c3RlbSIgPSAieG5vIjsgdGhlbgorKyAgICAgICAgICAgICAgICAgICAgIHsgJGFzX2VjaG8gIiRh c19tZTokTElORU5POiBDb3VsZCBub3QgbGluayBhZ2FpbnN0ICRheF9saWIgISIgPiY1CisrJGFz X2VjaG8gIiRhc19tZTogQ291bGQgbm90IGxpbmsgYWdhaW5zdCAkYXhfbGliICEiID4mNjt9Cisr ICAgICAgICAgICAgICAgICBmaQorKyAgICAgICAgICAgIGZpCisrCisrIworKyMgQm9vc3Q6OlBy b2dyYW1fT3B0aW9ucworKyMKKysJCQl7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tp bmcgd2hldGhlciB0aGUgQm9vc3Q6OlByb2dyYW1fT3B0aW9ucyBsaWJyYXJ5IGlzIGF2YWlsYWJs ZSIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgd2hldGhlciB0aGUgQm9vc3Q6OlByb2dyYW1f T3B0aW9ucyBsaWJyYXJ5IGlzIGF2YWlsYWJsZS4uLiAiID4mNjsgfQorK2lmIHRlc3QgIiR7YXhf Y3ZfYm9vc3RfcHJvZ3JhbV9vcHRpb25zK3NldH0iID0gc2V0OyB0aGVuCisrICAkYXNfZWNob19u ICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysKKysgICAgICAgICAgICAgICAgICAgICAgICAgICBh Y19leHQ9Y3BwCisrYWNfY3BwPSckQ1hYQ1BQICRDUFBGTEFHUycKKythY19jb21waWxlPSckQ1hY IC1jICRDWFhGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUnCisrYWNfbGluaz0n JENYWCAtbyBjb25mdGVzdCRhY19leGVleHQgJENYWEZMQUdTICRDUFBGTEFHUyAkTERGTEFHUyBj b25mdGVzdC4kYWNfZXh0ICRMSUJTID4mNScKKythY19jb21waWxlcl9nbnU9JGFjX2N2X2N4eF9j b21waWxlcl9nbnUKKysKKysJCQkgICAgICAgICAgICAgICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQg PDxfQUNFT0YKKysvKiBjb25mZGVmcy5oLiAgKi8KKytfQUNFT0YKKytjYXQgY29uZmRlZnMuaCA+ PmNvbmZ0ZXN0LiRhY19leHQKKytjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisrLyog ZW5kIGNvbmZkZWZzLmguICAqLworKyNpbmNsdWRlIDxib29zdC9wcm9ncmFtX29wdGlvbnMuaHBw PgorK2ludAorK21haW4gKCkKKyt7CisrYm9vc3Q6OnByb2dyYW1fb3B0aW9uczo6b3B0aW9uc19k ZXNjcmlwdGlvbiBnZW5lcmljKCJHZW5lcmljIG9wdGlvbnMiKTsKKysgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHJldHVybiAwOworKyAgOworKyAgcmV0dXJuIDA7CisrfQorK19B Q0VPRgorK3JtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQKKytpZiB7IChhY190cnk9IiRhY19jb21w aWxlIgorK2Nhc2UgIigoJGFjX3RyeSIgaW4KKysgICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5 X2VjaG89XCRhY190cnk7OworKyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7CisrZXNhYworK2V2 YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIKKyskYXNf ZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1CisrICAoZXZhbCAiJGFjX2NvbXBpbGUiKSAyPmNvbmZ0 ZXN0LmVyMQorKyAgYWNfc3RhdHVzPSQ/CisrICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEg PmNvbmZ0ZXN0LmVycgorKyAgcm0gLWYgY29uZnRlc3QuZXIxCisrICBjYXQgY29uZnRlc3QuZXJy ID4mNQorKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUK KysgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmIHsKKysJIHRlc3QgLXogIiRhY19jeHhfd2Vycm9y X2ZsYWciIHx8CisrCSB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCisrICAgICAgIH0gJiYgdGVzdCAt cyBjb25mdGVzdC4kYWNfb2JqZXh0OyB0aGVuCisrICBheF9jdl9ib29zdF9wcm9ncmFtX29wdGlv bnM9eWVzCisrZWxzZQorKyAgJGFzX2VjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIg PiY1Cisrc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQorKworKwlheF9jdl9ib29z dF9wcm9ncmFtX29wdGlvbnM9bm8KKytmaQorKworK3JtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNv bmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAorKwkJCSAgICAgICAgICAgICAgIGFj X2V4dD1jcHAKKythY19jcHA9JyRDWFhDUFAgJENQUEZMQUdTJworK2FjX2NvbXBpbGU9JyRDWFgg LWMgJENYWEZMQUdTICRDUFBGTEFHUyBjb25mdGVzdC4kYWNfZXh0ID4mNScKKythY19saW5rPSck Q1hYIC1vIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAkQ1hYRkxBR1MgJENQUEZMQUdTICRMREZMQUdTIGNv bmZ0ZXN0LiRhY19leHQgJExJQlMgPiY1JworK2FjX2NvbXBpbGVyX2dudT0kYWNfY3ZfY3h4X2Nv bXBpbGVyX2dudQorKworKworK2ZpCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3Vs dDogJGF4X2N2X2Jvb3N0X3Byb2dyYW1fb3B0aW9ucyIgPiY1CisrJGFzX2VjaG8gIiRheF9jdl9i b29zdF9wcm9ncmFtX29wdGlvbnMiID4mNjsgfQorKwkJCWlmIHRlc3QgIiRheF9jdl9ib29zdF9w cm9ncmFtX29wdGlvbnMiID0geWVzOyB0aGVuCisrCisrY2F0ID4+Y29uZmRlZnMuaCA8PFxfQUNF T0YKKysjZGVmaW5lIEhBVkVfQk9PU1RfUFJPR1JBTV9PUFRJT05TIC8qKi8KKytfQUNFT0YKKysK KysJCQkJQk49Ym9vc3RfcHJvZ3JhbV9vcHRpb25zCisrCQkJCWZvciBheF9saWIgaW4gJEJOICRC Ti0kQ0MgJEJOLSRDQy1tdCAkQk4tJENDLW10LXMgJEJOLSRDQy1zIFwKKysgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBsaWIkQk4gbGliJEJOLSRDQyBsaWIkQk4tJENDLW10IGxpYiRCTi0k Q0MtbXQtcyBcCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGliJEJOLSRDQy1zICRC Ti1tZ3cgJEJOLW1ndy1tdCBcCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJEJOLW1n dy1tdC1zICRCTi1tZ3ctcyBcCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJEJOLSRD Qy1tdC0kQk9PU1RMSUJfTURXX1ZFUlNJT047IGRvCisrCQkJCSAgICBhc19hY19MaWI9YCRhc19l Y2hvICJhY19jdl9saWJfJGF4X2xpYicnX21haW4iIHwgJGFzX3RyX3NoYAorK3sgJGFzX2VjaG8g IiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgbWFpbiBpbiAtbCRheF9saWIiID4mNQorKyRh c19lY2hvX24gImNoZWNraW5nIGZvciBtYWluIGluIC1sJGF4X2xpYi4uLiAiID4mNjsgfQorK2lm IHsgYXNfdmFyPSRhc19hY19MaWI7IGV2YWwgInRlc3QgXCJcJHskYXNfdmFyK3NldH1cIiA9IHNl dCI7IH07IHRoZW4KKysgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2CisrZWxzZQorKyAgYWNf Y2hlY2tfbGliX3NhdmVfTElCUz0kTElCUworK0xJQlM9Ii1sJGF4X2xpYiAgJExJQlMiCisrY2F0 ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisrLyogY29uZmRlZnMuaC4gICovCisrX0FDRU9G CisrY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0CisrY2F0ID4+Y29uZnRlc3QuJGFj X2V4dCA8PF9BQ0VPRgorKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KKysKKysKKytpbnQKKyttYWlu ICgpCisreworK3JldHVybiBtYWluICgpOworKyAgOworKyAgcmV0dXJuIDA7CisrfQorK19BQ0VP RgorK3JtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QkYWNfZXhlZXh0CisraWYgeyAo YWNfdHJ5PSIkYWNfbGluayIKKytjYXNlICIoKCRhY190cnkiIGluCisrICAqXCIqIHwgKlxgKiB8 ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKKysgICopIGFjX3RyeV9lY2hvPSRhY190cnk7 OworK2VzYWMKKytldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9l Y2hvXCIiCisrJGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4mNQorKyAgKGV2YWwgIiRhY19saW5r IikgMj5jb25mdGVzdC5lcjEKKysgIGFjX3N0YXR1cz0kPworKyAgZ3JlcCAtdiAnXiAqKycgY29u ZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKKysgIHJtIC1mIGNvbmZ0ZXN0LmVyMQorKyAgY2F0IGNv bmZ0ZXN0LmVyciA+JjUKKysgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0 YXR1cyIgPiY1CisrICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJiB7CisrCSB0ZXN0IC16ICIkYWNf Y3h4X3dlcnJvcl9mbGFnIiB8fAorKwkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgorKyAgICAgICB9 ICYmIHRlc3QgLXMgY29uZnRlc3QkYWNfZXhlZXh0ICYmIHsKKysJIHRlc3QgIiRjcm9zc19jb21w aWxpbmciID0geWVzIHx8CisrCSAkYXNfdGVzdF94IGNvbmZ0ZXN0JGFjX2V4ZWV4dAorKyAgICAg ICB9OyB0aGVuCisrICBldmFsICIkYXNfYWNfTGliPXllcyIKKytlbHNlCisrICAkYXNfZWNobyAi JGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKKytzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0 LiRhY19leHQgPiY1CisrCisrCWV2YWwgIiRhc19hY19MaWI9bm8iCisrZmkKKysKKytybSAtcmYg Y29uZnRlc3QuZFNZTQorK3JtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpl eHQgY29uZnRlc3RfaXBhOF9jb25mdGVzdC5vbyBcCisrICAgICAgY29uZnRlc3QkYWNfZXhlZXh0 IGNvbmZ0ZXN0LiRhY19leHQKKytMSUJTPSRhY19jaGVja19saWJfc2F2ZV9MSUJTCisrZmkKKyth Y19yZXM9YGV2YWwgJ2FzX3ZhbD0keyckYXNfYWNfTGliJ30KKysJCSAkYXNfZWNobyAiJGFzX3Zh bCInYAorKwkgICAgICAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX3Jl cyIgPiY1CisrJGFzX2VjaG8gIiRhY19yZXMiID4mNjsgfQorK2FzX3ZhbD1gZXZhbCAnYXNfdmFs PSR7JyRhc19hY19MaWInfQorKwkJICRhc19lY2hvICIkYXNfdmFsIidgCisrICAgaWYgdGVzdCAi eCRhc192YWwiID0geCIieWVzOyB0aGVuCisrICBCT09TVF9QUk9HUkFNX09QVElPTlNfTElCPSIt bCRheF9saWIiICBsaW5rX3Byb2dyYW1fb3B0aW9ucz0ieWVzIiBicmVhaworK2Vsc2UKKysgIGxp bmtfcHJvZ3JhbV9vcHRpb25zPSJubyIKKytmaQorKworKyAgCQkJCWRvbmUKKysJCQkJaWYgdGVz dCAieCRsaW5rX3Byb2dyYW1fb3B0aW9ucz0ibm8iIiA9ICJ4bm8iOyB0aGVuCisrCQkJCQl7ICRh c19lY2hvICIkYXNfbWU6JExJTkVOTzogQ291bGQgbm90IGxpbmsgYWdhaW5zdCAkYXhfbGliICEi ID4mNQorKyRhc19lY2hvICIkYXNfbWU6IENvdWxkIG5vdCBsaW5rIGFnYWluc3QgJGF4X2xpYiAh IiA+JjY7fQorKwkJCQlmaQorKwkJCWZpCisrCisrIworKyMgQm9vc3Q6OlRocmVhZHMKKysjCisr CQkJeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIHdoZXRoZXIgdGhlIEJvb3N0 OjpUaHJlYWQgbGlicmFyeSBpcyBhdmFpbGFibGUiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5n IHdoZXRoZXIgdGhlIEJvb3N0OjpUaHJlYWQgbGlicmFyeSBpcyBhdmFpbGFibGUuLi4gIiA+JjY7 IH0KKytpZiB0ZXN0ICIke2F4X2N2X2Jvb3N0X3RocmVhZCtzZXR9IiA9IHNldDsgdGhlbgorKyAg JGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKKytlbHNlCisrCisrCQkJIGFjX2V4dD1jcHAKKyth Y19jcHA9JyRDWFhDUFAgJENQUEZMQUdTJworK2FjX2NvbXBpbGU9JyRDWFggLWMgJENYWEZMQUdT ICRDUFBGTEFHUyBjb25mdGVzdC4kYWNfZXh0ID4mNScKKythY19saW5rPSckQ1hYIC1vIGNvbmZ0 ZXN0JGFjX2V4ZWV4dCAkQ1hYRkxBR1MgJENQUEZMQUdTICRMREZMQUdTIGNvbmZ0ZXN0LiRhY19l eHQgJExJQlMgPiY1JworK2FjX2NvbXBpbGVyX2dudT0kYWNfY3ZfY3h4X2NvbXBpbGVyX2dudQor KworKwkJCSBDWFhGTEFHU19TQVZFPSRDWFhGTEFHUworKworKwkJCSBpZiB0ZXN0ICJ4JGJ1aWxk X29zIiA9ICJ4c29sYXJpcyIgOyB0aGVuCisrICAJCQkJIENYWEZMQUdTPSItcHRocmVhZHMgJENY WEZMQUdTIgorKwkJCSBlbGlmIHRlc3QgIngkYnVpbGRfb3MiID0gInhtaW5nMzIiIDsgdGhlbgor KwkJCQkgQ1hYRkxBR1M9Ii1tdGhyZWFkcyAkQ1hYRkxBR1MiCisrCQkJIGVsc2UKKysJCQkJQ1hY RkxBR1M9Ii1wdGhyZWFkICRDWFhGTEFHUyIKKysJCQkgZmkKKysJCQkgY2F0ID5jb25mdGVzdC4k YWNfZXh0IDw8X0FDRU9GCisrLyogY29uZmRlZnMuaC4gICovCisrX0FDRU9GCisrY2F0IGNvbmZk ZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0CisrY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VP RgorKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KKysjaW5jbHVkZSA8Ym9vc3QvdGhyZWFkL3RocmVh ZC5ocHA+CisraW50CisrbWFpbiAoKQorK3sKKytib29zdDo6dGhyZWFkX2dyb3VwIHRocmRzOwor KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDA7CisrICA7CisrICBy ZXR1cm4gMDsKKyt9CisrX0FDRU9GCisrcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dAorK2lmIHsg KGFjX3RyeT0iJGFjX2NvbXBpbGUiCisrY2FzZSAiKCgkYWNfdHJ5IiBpbgorKyAgKlwiKiB8ICpc YCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7CisrICAqKSBhY190cnlfZWNobz0kYWNf dHJ5OzsKKytlc2FjCisrZXZhbCBhY190cnlfZWNobz0iXCJcJGFzX21lOiRMSU5FTk86ICRhY190 cnlfZWNob1wiIgorKyRhc19lY2hvICIkYWNfdHJ5X2VjaG8iKSA+JjUKKysgIChldmFsICIkYWNf Y29tcGlsZSIpIDI+Y29uZnRlc3QuZXIxCisrICBhY19zdGF0dXM9JD8KKysgIGdyZXAgLXYgJ14g KisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCisrICBybSAtZiBjb25mdGVzdC5lcjEKKysg IGNhdCBjb25mdGVzdC5lcnIgPiY1CisrICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9 ICRhY19zdGF0dXMiID4mNQorKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYgeworKwkgdGVzdCAt eiAiJGFjX2N4eF93ZXJyb3JfZmxhZyIgfHwKKysJIHRlc3QgISAtcyBjb25mdGVzdC5lcnIKKysg ICAgICAgfSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0LiRhY19vYmpleHQ7IHRoZW4KKysgIGF4X2N2X2Jv b3N0X3RocmVhZD15ZXMKKytlbHNlCisrICAkYXNfZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3Jh bSB3YXM6IiA+JjUKKytzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1CisrCisrCWF4 X2N2X2Jvb3N0X3RocmVhZD1ubworK2ZpCisrCisrcm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29u ZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0CisrCQkJIENYWEZMQUdTPSRDWFhGTEFH U19TQVZFCisrCQkJIGFjX2V4dD1jcHAKKythY19jcHA9JyRDWFhDUFAgJENQUEZMQUdTJworK2Fj X2NvbXBpbGU9JyRDWFggLWMgJENYWEZMQUdTICRDUFBGTEFHUyBjb25mdGVzdC4kYWNfZXh0ID4m NScKKythY19saW5rPSckQ1hYIC1vIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAkQ1hYRkxBR1MgJENQUEZM QUdTICRMREZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgJExJQlMgPiY1JworK2FjX2NvbXBpbGVyX2du dT0kYWNfY3ZfY3h4X2NvbXBpbGVyX2dudQorKworKworK2ZpCisreyAkYXNfZWNobyAiJGFzX21l OiRMSU5FTk86IHJlc3VsdDogJGF4X2N2X2Jvb3N0X3RocmVhZCIgPiY1CisrJGFzX2VjaG8gIiRh eF9jdl9ib29zdF90aHJlYWQiID4mNjsgfQorKwkJCWlmIHRlc3QgIngkYXhfY3ZfYm9vc3RfdGhy ZWFkIiA9ICJ4eWVzIjsgdGhlbgorKyAgICAgICAgICAgICAgIGlmIHRlc3QgIngkYnVpbGRfb3Mi ID0gInhzb2xhcmlzIiA7IHRoZW4KKysgCQkJCSAgQk9PU1RfQ0ZMQUdTPSItcHRocmVhZHMgJEJP T1NUX0NGTEFHUyIKKysJCQkgICBlbGlmIHRlc3QgIngkYnVpbGRfb3MiID0gInhtaW5nMzIiIDsg dGhlbgorKyAJCQkJICBCT09TVF9DRkxBR1M9Ii1tdGhyZWFkcyAkQk9PU1RfQ0ZMQUdTIgorKwkJ CSAgIGVsc2UKKysJCQkJICBCT09TVF9DRkxBR1M9Ii1wdGhyZWFkICRCT09TVF9DRkxBR1MiCisr CQkJICAgZmkKKysKKysKKysKKytjYXQgPj5jb25mZGVmcy5oIDw8XF9BQ0VPRgorKyNkZWZpbmUg SEFWRV9CT09TVF9USFJFQUQgLyoqLworK19BQ0VPRgorKworKwkJCQlCTj1ib29zdF90aHJlYWQK KysJCQkJZm9yIGF4X2xpYiBpbiAkQk4gJEJOLW10ICRCTi0kQ0MgJEJOLSRDQy1tdCBcCisrCQkJ CQkJICAgCSAgJEJOLSRDQy1tdC1zICRCTi0kQ0MtcyBcCisrICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgbGliJEJOIGxpYiRCTi0kQ0MgbGliJEJOLSRDQy1tdCBsaWIkQk4tJENDLW10LXMg XAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpYiRCTi0kQ0MtcyAkQk4tbWd3ICRC Ti1tZ3ctbXQgXAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRCTi1tZ3ctbXQtcyAk Qk4tbWd3LXMgIFwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkQk4tJENDLW10LSRC T09TVExJQl9NRFdfVkVSU0lPTiA7IGRvCisrCQkJCSAgICBhc19hY19MaWI9YCRhc19lY2hvICJh Y19jdl9saWJfJGF4X2xpYicnX21haW4iIHwgJGFzX3RyX3NoYAorK3sgJGFzX2VjaG8gIiRhc19t ZTokTElORU5POiBjaGVja2luZyBmb3IgbWFpbiBpbiAtbCRheF9saWIiID4mNQorKyRhc19lY2hv X24gImNoZWNraW5nIGZvciBtYWluIGluIC1sJGF4X2xpYi4uLiAiID4mNjsgfQorK2lmIHsgYXNf dmFyPSRhc19hY19MaWI7IGV2YWwgInRlc3QgXCJcJHskYXNfdmFyK3NldH1cIiA9IHNldCI7IH07 IHRoZW4KKysgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2CisrZWxzZQorKyAgYWNfY2hlY2tf bGliX3NhdmVfTElCUz0kTElCUworK0xJQlM9Ii1sJGF4X2xpYiAgJExJQlMiCisrY2F0ID5jb25m dGVzdC4kYWNfZXh0IDw8X0FDRU9GCisrLyogY29uZmRlZnMuaC4gICovCisrX0FDRU9GCisrY2F0 IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0CisrY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8 PF9BQ0VPRgorKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KKysKKysKKytpbnQKKyttYWluICgpCisr eworK3JldHVybiBtYWluICgpOworKyAgOworKyAgcmV0dXJuIDA7CisrfQorK19BQ0VPRgorK3Jt IC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QkYWNfZXhlZXh0CisraWYgeyAoYWNfdHJ5 PSIkYWNfbGluayIKKytjYXNlICIoKCRhY190cnkiIGluCisrICAqXCIqIHwgKlxgKiB8ICpcXCop IGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKKysgICopIGFjX3RyeV9lY2hvPSRhY190cnk7OworK2Vz YWMKKytldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIi CisrJGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4mNQorKyAgKGV2YWwgIiRhY19saW5rIikgMj5j b25mdGVzdC5lcjEKKysgIGFjX3N0YXR1cz0kPworKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3Qu ZXIxID5jb25mdGVzdC5lcnIKKysgIHJtIC1mIGNvbmZ0ZXN0LmVyMQorKyAgY2F0IGNvbmZ0ZXN0 LmVyciA+JjUKKysgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIg PiY1CisrICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJiB7CisrCSB0ZXN0IC16ICIkYWNfY3h4X3dl cnJvcl9mbGFnIiB8fAorKwkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgorKyAgICAgICB9ICYmIHRl c3QgLXMgY29uZnRlc3QkYWNfZXhlZXh0ICYmIHsKKysJIHRlc3QgIiRjcm9zc19jb21waWxpbmci ID0geWVzIHx8CisrCSAkYXNfdGVzdF94IGNvbmZ0ZXN0JGFjX2V4ZWV4dAorKyAgICAgICB9OyB0 aGVuCisrICBldmFsICIkYXNfYWNfTGliPXllcyIKKytlbHNlCisrICAkYXNfZWNobyAiJGFzX21l OiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKKytzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19l eHQgPiY1CisrCisrCWV2YWwgIiRhc19hY19MaWI9bm8iCisrZmkKKysKKytybSAtcmYgY29uZnRl c3QuZFNZTQorK3JtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29u ZnRlc3RfaXBhOF9jb25mdGVzdC5vbyBcCisrICAgICAgY29uZnRlc3QkYWNfZXhlZXh0IGNvbmZ0 ZXN0LiRhY19leHQKKytMSUJTPSRhY19jaGVja19saWJfc2F2ZV9MSUJTCisrZmkKKythY19yZXM9 YGV2YWwgJ2FzX3ZhbD0keyckYXNfYWNfTGliJ30KKysJCSAkYXNfZWNobyAiJGFzX3ZhbCInYAor KwkgICAgICAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX3JlcyIgPiY1 CisrJGFzX2VjaG8gIiRhY19yZXMiID4mNjsgfQorK2FzX3ZhbD1gZXZhbCAnYXNfdmFsPSR7JyRh c19hY19MaWInfQorKwkJICRhc19lY2hvICIkYXNfdmFsIidgCisrICAgaWYgdGVzdCAieCRhc192 YWwiID0geCIieWVzOyB0aGVuCisrICBCT09TVF9USFJFQURfTElCPSItbCRheF9saWIiICBsaW5r X3RocmVhZD0ieWVzIiBicmVhaworK2Vsc2UKKysgIGxpbmtfdGhyZWFkPSJubyIKKytmaQorKwor KyAgCQkJCWRvbmUKKysJCQkJaWYgdGVzdCAieCRsaW5rX3RocmVhZCIgPSAieG5vIjsgdGhlbgor KwkJCQkJeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IENvdWxkIG5vdCBsaW5rIGFnYWluc3Qg JGF4X2xpYiAhIiA+JjUKKyskYXNfZWNobyAiJGFzX21lOiBDb3VsZCBub3QgbGluayBhZ2FpbnN0 ICRheF9saWIgISIgPiY2O30KKysJCQkJZmkKKysJCQlmaQorKworKyMKKysjIEJvb3N0OjpJT1N0 cmVhbXMKKysjCisrCQkJeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIHdoZXRo ZXIgdGhlIEJvb3N0OjpJT1N0cmVhbXMgbGlicmFyeSBpcyBhdmFpbGFibGUiID4mNQorKyRhc19l Y2hvX24gImNoZWNraW5nIHdoZXRoZXIgdGhlIEJvb3N0OjpJT1N0cmVhbXMgbGlicmFyeSBpcyBh dmFpbGFibGUuLi4gIiA+JjY7IH0KKytpZiB0ZXN0ICIke2F4X2N2X2Jvb3N0X2lvc3RyZWFtcytz ZXR9IiA9IHNldDsgdGhlbgorKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKKytlbHNlCisr CisrCQkJIGFjX2V4dD1jcHAKKythY19jcHA9JyRDWFhDUFAgJENQUEZMQUdTJworK2FjX2NvbXBp bGU9JyRDWFggLWMgJENYWEZMQUdTICRDUFBGTEFHUyBjb25mdGVzdC4kYWNfZXh0ID4mNScKKyth Y19saW5rPSckQ1hYIC1vIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAkQ1hYRkxBR1MgJENQUEZMQUdTICRM REZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgJExJQlMgPiY1JworK2FjX2NvbXBpbGVyX2dudT0kYWNf Y3ZfY3h4X2NvbXBpbGVyX2dudQorKworKwkJCSBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNF T0YKKysvKiBjb25mZGVmcy5oLiAgKi8KKytfQUNFT0YKKytjYXQgY29uZmRlZnMuaCA+PmNvbmZ0 ZXN0LiRhY19leHQKKytjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisrLyogZW5kIGNv bmZkZWZzLmguICAqLworKyNpbmNsdWRlIDxib29zdC9pb3N0cmVhbXMvZmlsdGVyaW5nX3N0cmVh bS5ocHA+CisrCQkJCQkJCQkJCQkJICNpbmNsdWRlIDxib29zdC9yYW5nZS9pdGVyYXRvcl9yYW5n ZS5ocHA+CisrCisraW50CisrbWFpbiAoKQorK3sKKytzdGQ6OnN0cmluZyAgaW5wdXQgPSAiSGVs bG8gV29ybGQhIjsKKysJCQkJCQkJCQkgbmFtZXNwYWNlIGlvID0gYm9vc3Q6Omlvc3RyZWFtczsK KysJCQkJCQkJCQkgaW86OmZpbHRlcmluZ19pc3RyZWFtICBpbihib29zdDo6bWFrZV9pdGVyYXRv cl9yYW5nZShpbnB1dCkpOworKwkJCQkJCQkJCSByZXR1cm4gMDsKKysKKysgIDsKKysgIHJldHVy biAwOworK30KKytfQUNFT0YKKytybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0CisraWYgeyAoYWNf dHJ5PSIkYWNfY29tcGlsZSIKKytjYXNlICIoKCRhY190cnkiIGluCisrICAqXCIqIHwgKlxgKiB8 ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKKysgICopIGFjX3RyeV9lY2hvPSRhY190cnk7 OworK2VzYWMKKytldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9l Y2hvXCIiCisrJGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4mNQorKyAgKGV2YWwgIiRhY19jb21w aWxlIikgMj5jb25mdGVzdC5lcjEKKysgIGFjX3N0YXR1cz0kPworKyAgZ3JlcCAtdiAnXiAqKycg Y29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKKysgIHJtIC1mIGNvbmZ0ZXN0LmVyMQorKyAgY2F0 IGNvbmZ0ZXN0LmVyciA+JjUKKysgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFj X3N0YXR1cyIgPiY1CisrICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJiB7CisrCSB0ZXN0IC16ICIk YWNfY3h4X3dlcnJvcl9mbGFnIiB8fAorKwkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgorKyAgICAg ICB9ICYmIHRlc3QgLXMgY29uZnRlc3QuJGFjX29iamV4dDsgdGhlbgorKyAgYXhfY3ZfYm9vc3Rf aW9zdHJlYW1zPXllcworK2Vsc2UKKysgICRhc19lY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFt IHdhczoiID4mNQorK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKKysKKysJYXhf Y3ZfYm9vc3RfaW9zdHJlYW1zPW5vCisrZmkKKysKKytybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBj b25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKKysJCQkgYWNfZXh0PWNwcAorK2Fj X2NwcD0nJENYWENQUCAkQ1BQRkxBR1MnCisrYWNfY29tcGlsZT0nJENYWCAtYyAkQ1hYRkxBR1Mg JENQUEZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgPiY1JworK2FjX2xpbms9JyRDWFggLW8gY29uZnRl c3QkYWNfZXhlZXh0ICRDWFhGTEFHUyAkQ1BQRkxBR1MgJExERkxBR1MgY29uZnRlc3QuJGFjX2V4 dCAkTElCUyA+JjUnCisrYWNfY29tcGlsZXJfZ251PSRhY19jdl9jeHhfY29tcGlsZXJfZ251Cisr CisrCisrZmkKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYXhfY3ZfYm9v c3RfaW9zdHJlYW1zIiA+JjUKKyskYXNfZWNobyAiJGF4X2N2X2Jvb3N0X2lvc3RyZWFtcyIgPiY2 OyB9CisrCQkJaWYgdGVzdCAieCRheF9jdl9ib29zdF9pb3N0cmVhbXMiID0gInh5ZXMiOyB0aGVu CisrCisrY2F0ID4+Y29uZmRlZnMuaCA8PFxfQUNFT0YKKysjZGVmaW5lIEhBVkVfQk9PU1RfSU9T VFJFQU1TIC8qKi8KKytfQUNFT0YKKysKKysJCQkJQk49Ym9vc3RfaW9zdHJlYW1zCisrCQkJCWZv ciBheF9saWIgaW4gJEJOICRCTi0kQ0MgJEJOLSRDQy1tdCAkQk4tJENDLW10LXMgJEJOLSRDQy1z IFwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWIkQk4gbGliJEJOLSRDQyBsaWIk Qk4tJENDLW10IGxpYiRCTi0kQ0MtbXQtcyBcCisrICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgbGliJEJOLSRDQy1zICRCTi1tZ3cgJEJOLW1ndy1tdCBcCisrICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgJEJOLW1ndy1tdC1zICRCTi1tZ3ctcyAgXAorKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICRCTi0kQ0MtbXQtJEJPT1NUTElCX01EV19WRVJTSU9OIDsgZG8KKysJCQkJ ICAgIGFzX2FjX0xpYj1gJGFzX2VjaG8gImFjX2N2X2xpYl8kYXhfbGliJydfbWFpbiIgfCAkYXNf dHJfc2hgCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciBtYWluIGlu IC1sJGF4X2xpYiIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yIG1haW4gaW4gLWwkYXhf bGliLi4uICIgPiY2OyB9CisraWYgeyBhc192YXI9JGFzX2FjX0xpYjsgZXZhbCAidGVzdCBcIlwk eyRhc192YXIrc2V0fVwiID0gc2V0IjsgfTsgdGhlbgorKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkg IiA+JjYKKytlbHNlCisrICBhY19jaGVja19saWJfc2F2ZV9MSUJTPSRMSUJTCisrTElCUz0iLWwk YXhfbGliICAkTElCUyIKKytjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKysvKiBjb25m ZGVmcy5oLiAgKi8KKytfQUNFT0YKKytjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQK KytjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisrLyogZW5kIGNvbmZkZWZzLmguICAq LworKworKworK2ludAorK21haW4gKCkKKyt7CisrcmV0dXJuIG1haW4gKCk7CisrICA7CisrICBy ZXR1cm4gMDsKKyt9CisrX0FDRU9GCisrcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVz dCRhY19leGVleHQKKytpZiB7IChhY190cnk9IiRhY19saW5rIgorK2Nhc2UgIigoJGFjX3RyeSIg aW4KKysgICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OworKyAgKikg YWNfdHJ5X2VjaG89JGFjX3RyeTs7CisrZXNhYworK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19t ZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIKKyskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1 CisrICAoZXZhbCAiJGFjX2xpbmsiKSAyPmNvbmZ0ZXN0LmVyMQorKyAgYWNfc3RhdHVzPSQ/Cisr ICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgorKyAgcm0gLWYgY29u ZnRlc3QuZXIxCisrICBjYXQgY29uZnRlc3QuZXJyID4mNQorKyAgJGFzX2VjaG8gIiRhc19tZTok TElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKysgIChleGl0ICRhY19zdGF0dXMpOyB9ICYm IHsKKysJIHRlc3QgLXogIiRhY19jeHhfd2Vycm9yX2ZsYWciIHx8CisrCSB0ZXN0ICEgLXMgY29u ZnRlc3QuZXJyCisrICAgICAgIH0gJiYgdGVzdCAtcyBjb25mdGVzdCRhY19leGVleHQgJiYgewor KwkgdGVzdCAiJGNyb3NzX2NvbXBpbGluZyIgPSB5ZXMgfHwKKysJICRhc190ZXN0X3ggY29uZnRl c3QkYWNfZXhlZXh0CisrICAgICAgIH07IHRoZW4KKysgIGV2YWwgIiRhc19hY19MaWI9eWVzIgor K2Vsc2UKKysgICRhc19lY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQorK3Nl ZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKKysKKysJZXZhbCAiJGFzX2FjX0xpYj1u byIKKytmaQorKworK3JtIC1yZiBjb25mdGVzdC5kU1lNCisrcm0gLWYgY29yZSBjb25mdGVzdC5l cnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdF9pcGE4X2NvbmZ0ZXN0Lm9vIFwKKysgICAg ICBjb25mdGVzdCRhY19leGVleHQgY29uZnRlc3QuJGFjX2V4dAorK0xJQlM9JGFjX2NoZWNrX2xp Yl9zYXZlX0xJQlMKKytmaQorK2FjX3Jlcz1gZXZhbCAnYXNfdmFsPSR7JyRhc19hY19MaWInfQor KwkJICRhc19lY2hvICIkYXNfdmFsIidgCisrCSAgICAgICB7ICRhc19lY2hvICIkYXNfbWU6JExJ TkVOTzogcmVzdWx0OiAkYWNfcmVzIiA+JjUKKyskYXNfZWNobyAiJGFjX3JlcyIgPiY2OyB9Cisr YXNfdmFsPWBldmFsICdhc192YWw9JHsnJGFzX2FjX0xpYid9CisrCQkgJGFzX2VjaG8gIiRhc192 YWwiJ2AKKysgICBpZiB0ZXN0ICJ4JGFzX3ZhbCIgPSB4IiJ5ZXM7IHRoZW4KKysgIEJPT1NUX0lP U1RSRUFNU19MSUI9Ii1sJGF4X2xpYiIgIGxpbmtfdGhyZWFkPSJ5ZXMiIGJyZWFrCisrZWxzZQor KyAgbGlua190aHJlYWQ9Im5vIgorK2ZpCisrCisrICAJCQkJZG9uZQorKwkJCQlpZiB0ZXN0ICJ4 JGxpbmtfdGhyZWFkIiA9ICJ4bm8iOyB0aGVuCisrCQkJCQl7ICRhc19lY2hvICIkYXNfbWU6JExJ TkVOTzogQ291bGQgbm90IGxpbmsgYWdhaW5zdCAkYXhfbGliICEiID4mNQorKyRhc19lY2hvICIk YXNfbWU6IENvdWxkIG5vdCBsaW5rIGFnYWluc3QgJGF4X2xpYiAhIiA+JjY7fQorKwkJCQlmaQor KwkJCWZpCisrCisrIworKyMgQm9vc3Q6OlNlcmlhbGl6YXRpb24KKysjCisrCQkJeyAkYXNfZWNo byAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIHdoZXRoZXIgdGhlIEJvb3N0OjpTZXJpYWxpemF0 aW9uIGxpYnJhcnkgaXMgYXZhaWxhYmxlIiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyB3aGV0 aGVyIHRoZSBCb29zdDo6U2VyaWFsaXphdGlvbiBsaWJyYXJ5IGlzIGF2YWlsYWJsZS4uLiAiID4m NjsgfQorK2lmIHRlc3QgIiR7YXhfY3ZfYm9vc3Rfc2VyaWFsaXphdGlvbitzZXR9IiA9IHNldDsg dGhlbgorKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKKytlbHNlCisrCisrCQkJIGFjX2V4 dD1jcHAKKythY19jcHA9JyRDWFhDUFAgJENQUEZMQUdTJworK2FjX2NvbXBpbGU9JyRDWFggLWMg JENYWEZMQUdTICRDUFBGTEFHUyBjb25mdGVzdC4kYWNfZXh0ID4mNScKKythY19saW5rPSckQ1hY IC1vIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAkQ1hYRkxBR1MgJENQUEZMQUdTICRMREZMQUdTIGNvbmZ0 ZXN0LiRhY19leHQgJExJQlMgPiY1JworK2FjX2NvbXBpbGVyX2dudT0kYWNfY3ZfY3h4X2NvbXBp bGVyX2dudQorKworKwkJCSBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKysvKiBjb25m ZGVmcy5oLiAgKi8KKytfQUNFT0YKKytjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQK KytjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisrLyogZW5kIGNvbmZkZWZzLmguICAq LworKyNpbmNsdWRlIDxmc3RyZWFtPgorKwkJCQkJCQkJCQkJCSAjaW5jbHVkZSA8Ym9vc3QvYXJj aGl2ZS90ZXh0X29hcmNoaXZlLmhwcD4KKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgI2luY2x1ZGUgPGJvb3N0L2FyY2hpdmUvdGV4dF9pYXJjaGl2ZS5o cHA+CisrCisraW50CisrbWFpbiAoKQorK3sKKytzdGQ6Om9mc3RyZWFtIG9mcygiZmlsZW5hbWUi KTsKKysJCQkJCQkJCQlib29zdDo6YXJjaGl2ZTo6dGV4dF9vYXJjaGl2ZSBvYShvZnMpOworKwkJ CQkJCQkJCSByZXR1cm4gMDsKKysKKysgIDsKKysgIHJldHVybiAwOworK30KKytfQUNFT0YKKyty bSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0CisraWYgeyAoYWNfdHJ5PSIkYWNfY29tcGlsZSIKKytj YXNlICIoKCRhY190cnkiIGluCisrICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwk YWNfdHJ5OzsKKysgICopIGFjX3RyeV9lY2hvPSRhY190cnk7OworK2VzYWMKKytldmFsIGFjX3Ry eV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCisrJGFzX2VjaG8gIiRh Y190cnlfZWNobyIpID4mNQorKyAgKGV2YWwgIiRhY19jb21waWxlIikgMj5jb25mdGVzdC5lcjEK KysgIGFjX3N0YXR1cz0kPworKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVz dC5lcnIKKysgIHJtIC1mIGNvbmZ0ZXN0LmVyMQorKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKKysg ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisrICAoZXhp dCAkYWNfc3RhdHVzKTsgfSAmJiB7CisrCSB0ZXN0IC16ICIkYWNfY3h4X3dlcnJvcl9mbGFnIiB8 fAorKwkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgorKyAgICAgICB9ICYmIHRlc3QgLXMgY29uZnRl c3QuJGFjX29iamV4dDsgdGhlbgorKyAgYXhfY3ZfYm9vc3Rfc2VyaWFsaXphdGlvbj15ZXMKKytl bHNlCisrICAkYXNfZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKKytzZWQg J3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1CisrCisrCWF4X2N2X2Jvb3N0X3NlcmlhbGl6 YXRpb249bm8KKytmaQorKworK3JtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19v YmpleHQgY29uZnRlc3QuJGFjX2V4dAorKwkJCSBhY19leHQ9Y3BwCisrYWNfY3BwPSckQ1hYQ1BQ ICRDUFBGTEFHUycKKythY19jb21waWxlPSckQ1hYIC1jICRDWFhGTEFHUyAkQ1BQRkxBR1MgY29u ZnRlc3QuJGFjX2V4dCA+JjUnCisrYWNfbGluaz0nJENYWCAtbyBjb25mdGVzdCRhY19leGVleHQg JENYWEZMQUdTICRDUFBGTEFHUyAkTERGTEFHUyBjb25mdGVzdC4kYWNfZXh0ICRMSUJTID4mNScK KythY19jb21waWxlcl9nbnU9JGFjX2N2X2N4eF9jb21waWxlcl9nbnUKKysKKysKKytmaQorK3sg JGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRheF9jdl9ib29zdF9zZXJpYWxpemF0 aW9uIiA+JjUKKyskYXNfZWNobyAiJGF4X2N2X2Jvb3N0X3NlcmlhbGl6YXRpb24iID4mNjsgfQor KwkJCWlmIHRlc3QgIngkYXhfY3ZfYm9vc3Rfc2VyaWFsaXphdGlvbiIgPSAieHllcyI7IHRoZW4K KysKKytjYXQgPj5jb25mZGVmcy5oIDw8XF9BQ0VPRgorKyNkZWZpbmUgSEFWRV9CT09TVF9TRVJJ QUxJWkFUSU9OIC8qKi8KKytfQUNFT0YKKysKKysJCQkJQk49Ym9vc3Rfc2VyaWFsaXphdGlvbgor KwkJCQlmb3IgYXhfbGliIGluICRCTiAkQk4tJENDICRCTi0kQ0MtbXQgJEJOLSRDQy1tdC1zICRC Ti0kQ0MtcyBcCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGliJEJOIGxpYiRCTi0k Q0MgbGliJEJOLSRDQy1tdCBsaWIkQk4tJENDLW10LXMgXAorKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGxpYiRCTi0kQ0MtcyAkQk4tbWd3ICRCTi1tZ3ctbXQgXAorKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICRCTi1tZ3ctbXQtcyAkQk4tbWd3LXMgIFwKKysgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAkQk4tJENDLW10LSRCT09TVExJQl9NRFdfVkVSU0lPTiA7IGRv CisrCQkJCSAgICBhc19hY19MaWI9YCRhc19lY2hvICJhY19jdl9saWJfJGF4X2xpYicnX21haW4i IHwgJGFzX3RyX3NoYAorK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3Ig bWFpbiBpbiAtbCRheF9saWIiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIGZvciBtYWluIGlu IC1sJGF4X2xpYi4uLiAiID4mNjsgfQorK2lmIHsgYXNfdmFyPSRhc19hY19MaWI7IGV2YWwgInRl c3QgXCJcJHskYXNfdmFyK3NldH1cIiA9IHNldCI7IH07IHRoZW4KKysgICRhc19lY2hvX24gIihj YWNoZWQpICIgPiY2CisrZWxzZQorKyAgYWNfY2hlY2tfbGliX3NhdmVfTElCUz0kTElCUworK0xJ QlM9Ii1sJGF4X2xpYiAgJExJQlMiCisrY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisr LyogY29uZmRlZnMuaC4gICovCisrX0FDRU9GCisrY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4k YWNfZXh0CisrY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorKy8qIGVuZCBjb25mZGVm cy5oLiAgKi8KKysKKysKKytpbnQKKyttYWluICgpCisreworK3JldHVybiBtYWluICgpOworKyAg OworKyAgcmV0dXJuIDA7CisrfQorK19BQ0VPRgorK3JtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQg Y29uZnRlc3QkYWNfZXhlZXh0CisraWYgeyAoYWNfdHJ5PSIkYWNfbGluayIKKytjYXNlICIoKCRh Y190cnkiIGluCisrICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsK KysgICopIGFjX3RyeV9lY2hvPSRhY190cnk7OworK2VzYWMKKytldmFsIGFjX3RyeV9lY2hvPSJc IlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCisrJGFzX2VjaG8gIiRhY190cnlfZWNo byIpID4mNQorKyAgKGV2YWwgIiRhY19saW5rIikgMj5jb25mdGVzdC5lcjEKKysgIGFjX3N0YXR1 cz0kPworKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKKysgIHJt IC1mIGNvbmZ0ZXN0LmVyMQorKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKKysgICRhc19lY2hvICIk YXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisrICAoZXhpdCAkYWNfc3RhdHVz KTsgfSAmJiB7CisrCSB0ZXN0IC16ICIkYWNfY3h4X3dlcnJvcl9mbGFnIiB8fAorKwkgdGVzdCAh IC1zIGNvbmZ0ZXN0LmVycgorKyAgICAgICB9ICYmIHRlc3QgLXMgY29uZnRlc3QkYWNfZXhlZXh0 ICYmIHsKKysJIHRlc3QgIiRjcm9zc19jb21waWxpbmciID0geWVzIHx8CisrCSAkYXNfdGVzdF94 IGNvbmZ0ZXN0JGFjX2V4ZWV4dAorKyAgICAgICB9OyB0aGVuCisrICBldmFsICIkYXNfYWNfTGli PXllcyIKKytlbHNlCisrICAkYXNfZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+ JjUKKytzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1CisrCisrCWV2YWwgIiRhc19h Y19MaWI9bm8iCisrZmkKKysKKytybSAtcmYgY29uZnRlc3QuZFNZTQorK3JtIC1mIGNvcmUgY29u ZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3RfaXBhOF9jb25mdGVzdC5vbyBc CisrICAgICAgY29uZnRlc3QkYWNfZXhlZXh0IGNvbmZ0ZXN0LiRhY19leHQKKytMSUJTPSRhY19j aGVja19saWJfc2F2ZV9MSUJTCisrZmkKKythY19yZXM9YGV2YWwgJ2FzX3ZhbD0keyckYXNfYWNf TGliJ30KKysJCSAkYXNfZWNobyAiJGFzX3ZhbCInYAorKwkgICAgICAgeyAkYXNfZWNobyAiJGFz X21lOiRMSU5FTk86IHJlc3VsdDogJGFjX3JlcyIgPiY1CisrJGFzX2VjaG8gIiRhY19yZXMiID4m NjsgfQorK2FzX3ZhbD1gZXZhbCAnYXNfdmFsPSR7JyRhc19hY19MaWInfQorKwkJICRhc19lY2hv ICIkYXNfdmFsIidgCisrICAgaWYgdGVzdCAieCRhc192YWwiID0geCIieWVzOyB0aGVuCisrICBC T09TVF9TRVJJQUxJWkFUSU9OX0xJQj0iLWwkYXhfbGliIiAgbGlua190aHJlYWQ9InllcyIgYnJl YWsKKytlbHNlCisrICBsaW5rX3RocmVhZD0ibm8iCisrZmkKKysKKysgIAkJCQlkb25lCisrCQkJ CUJOPWJvb3N0X3dzZXJpYWxpemF0aW9uCisrCQkJCWZvciBheF9saWIgaW4gJEJOICRCTi0kQ0Mg JEJOLSRDQy1tdCAkQk4tJENDLW10LXMgJEJOLSRDQy1zIFwKKysgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBsaWIkQk4gbGliJEJOLSRDQyBsaWIkQk4tJENDLW10IGxpYiRCTi0kQ0MtbXQt cyBcCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGliJEJOLSRDQy1zICRCTi1tZ3cg JEJOLW1ndy1tdCBcCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJEJOLW1ndy1tdC1z ICRCTi1tZ3ctcyAgXAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRCTi0kQ0MtbXQt JEJPT1NUTElCX01EV19WRVJTSU9OIDsgZG8KKysJCQkJICAgIGFzX2FjX0xpYj1gJGFzX2VjaG8g ImFjX2N2X2xpYl8kYXhfbGliJydfbWFpbiIgfCAkYXNfdHJfc2hgCisreyAkYXNfZWNobyAiJGFz X21lOiRMSU5FTk86IGNoZWNraW5nIGZvciBtYWluIGluIC1sJGF4X2xpYiIgPiY1CisrJGFzX2Vj aG9fbiAiY2hlY2tpbmcgZm9yIG1haW4gaW4gLWwkYXhfbGliLi4uICIgPiY2OyB9CisraWYgeyBh c192YXI9JGFzX2FjX0xpYjsgZXZhbCAidGVzdCBcIlwkeyRhc192YXIrc2V0fVwiID0gc2V0Ijsg fTsgdGhlbgorKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKKytlbHNlCisrICBhY19jaGVj a19saWJfc2F2ZV9MSUJTPSRMSUJTCisrTElCUz0iLWwkYXhfbGliICAkTElCUyIKKytjYXQgPmNv bmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKysvKiBjb25mZGVmcy5oLiAgKi8KKytfQUNFT0YKKytj YXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKKytjYXQgPj5jb25mdGVzdC4kYWNfZXh0 IDw8X0FDRU9GCisrLyogZW5kIGNvbmZkZWZzLmguICAqLworKworKworK2ludAorK21haW4gKCkK Kyt7CisrcmV0dXJuIG1haW4gKCk7CisrICA7CisrICByZXR1cm4gMDsKKyt9CisrX0FDRU9GCisr cm0gLWYgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdCRhY19leGVleHQKKytpZiB7IChhY190 cnk9IiRhY19saW5rIgorK2Nhc2UgIigoJGFjX3RyeSIgaW4KKysgICpcIiogfCAqXGAqIHwgKlxc KikgYWNfdHJ5X2VjaG89XCRhY190cnk7OworKyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7Cisr ZXNhYworK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9c IiIKKyskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1CisrICAoZXZhbCAiJGFjX2xpbmsiKSAy PmNvbmZ0ZXN0LmVyMQorKyAgYWNfc3RhdHVzPSQ/CisrICBncmVwIC12ICdeICorJyBjb25mdGVz dC5lcjEgPmNvbmZ0ZXN0LmVycgorKyAgcm0gLWYgY29uZnRlc3QuZXIxCisrICBjYXQgY29uZnRl c3QuZXJyID4mNQorKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVz IiA+JjUKKysgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmIHsKKysJIHRlc3QgLXogIiRhY19jeHhf d2Vycm9yX2ZsYWciIHx8CisrCSB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCisrICAgICAgIH0gJiYg dGVzdCAtcyBjb25mdGVzdCRhY19leGVleHQgJiYgeworKwkgdGVzdCAiJGNyb3NzX2NvbXBpbGlu ZyIgPSB5ZXMgfHwKKysJICRhc190ZXN0X3ggY29uZnRlc3QkYWNfZXhlZXh0CisrICAgICAgIH07 IHRoZW4KKysgIGV2YWwgIiRhc19hY19MaWI9eWVzIgorK2Vsc2UKKysgICRhc19lY2hvICIkYXNf bWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQorK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFj X2V4dCA+JjUKKysKKysJZXZhbCAiJGFzX2FjX0xpYj1ubyIKKytmaQorKworK3JtIC1yZiBjb25m dGVzdC5kU1lNCisrcm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBj b25mdGVzdF9pcGE4X2NvbmZ0ZXN0Lm9vIFwKKysgICAgICBjb25mdGVzdCRhY19leGVleHQgY29u ZnRlc3QuJGFjX2V4dAorK0xJQlM9JGFjX2NoZWNrX2xpYl9zYXZlX0xJQlMKKytmaQorK2FjX3Jl cz1gZXZhbCAnYXNfdmFsPSR7JyRhc19hY19MaWInfQorKwkJICRhc19lY2hvICIkYXNfdmFsIidg CisrCSAgICAgICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfcmVzIiA+ JjUKKyskYXNfZWNobyAiJGFjX3JlcyIgPiY2OyB9CisrYXNfdmFsPWBldmFsICdhc192YWw9JHsn JGFzX2FjX0xpYid9CisrCQkgJGFzX2VjaG8gIiRhc192YWwiJ2AKKysgICBpZiB0ZXN0ICJ4JGFz X3ZhbCIgPSB4IiJ5ZXM7IHRoZW4KKysgIEJPT1NUX1dTRVJJQUxJWkFUSU9OX0xJQj0iLWwkYXhf bGliIiAgbGlua190aHJlYWQ9InllcyIgYnJlYWsKKytlbHNlCisrICBsaW5rX3RocmVhZD0ibm8i CisrZmkKKysKKysgIAkJCQlkb25lCisrCQkJCWlmIHRlc3QgIngkbGlua190aHJlYWQiID0gInhu byI7IHRoZW4KKysJCQkJCXsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBDb3VsZCBub3QgbGlu ayBhZ2FpbnN0ICRheF9saWIgISIgPiY1CisrJGFzX2VjaG8gIiRhc19tZTogQ291bGQgbm90IGxp bmsgYWdhaW5zdCAkYXhfbGliICEiID4mNjt9CisrCQkJCWZpCisrCQkJZmkKKysKKysjCisrIyBC b29zdDo6U2lnbmFscworKyMKKysJCQl7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tp bmcgd2hldGhlciB0aGUgQm9vc3Q6OlNpZ25hbHMgbGlicmFyeSBpcyBhdmFpbGFibGUiID4mNQor KyRhc19lY2hvX24gImNoZWNraW5nIHdoZXRoZXIgdGhlIEJvb3N0OjpTaWduYWxzIGxpYnJhcnkg aXMgYXZhaWxhYmxlLi4uICIgPiY2OyB9CisraWYgdGVzdCAiJHtheF9jdl9ib29zdF9zaWduYWxz K3NldH0iID0gc2V0OyB0aGVuCisrICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UK KysKKysJCQkgYWNfZXh0PWNwcAorK2FjX2NwcD0nJENYWENQUCAkQ1BQRkxBR1MnCisrYWNfY29t cGlsZT0nJENYWCAtYyAkQ1hYRkxBR1MgJENQUEZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgPiY1Jwor K2FjX2xpbms9JyRDWFggLW8gY29uZnRlc3QkYWNfZXhlZXh0ICRDWFhGTEFHUyAkQ1BQRkxBR1Mg JExERkxBR1MgY29uZnRlc3QuJGFjX2V4dCAkTElCUyA+JjUnCisrYWNfY29tcGlsZXJfZ251PSRh Y19jdl9jeHhfY29tcGlsZXJfZ251CisrCisrCQkJIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9B Q0VPRgorKy8qIGNvbmZkZWZzLmguICAqLworK19BQ0VPRgorK2NhdCBjb25mZGVmcy5oID4+Y29u ZnRlc3QuJGFjX2V4dAorK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKysvKiBlbmQg Y29uZmRlZnMuaC4gICovCisrI2luY2x1ZGUgPGJvb3N0L3NpZ25hbC5ocHA+CisrCisraW50Cisr bWFpbiAoKQorK3sKKytib29zdDo6c2lnbmFsPHZvaWQgKCk+IHNpZzsKKysgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDA7CisrCisrICA7CisrICByZXR1cm4gMDsK Kyt9CisrX0FDRU9GCisrcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dAorK2lmIHsgKGFjX3RyeT0i JGFjX2NvbXBpbGUiCisrY2FzZSAiKCgkYWNfdHJ5IiBpbgorKyAgKlwiKiB8ICpcYCogfCAqXFwq KSBhY190cnlfZWNobz1cJGFjX3RyeTs7CisrICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKKytl c2FjCisrZXZhbCBhY190cnlfZWNobz0iXCJcJGFzX21lOiRMSU5FTk86ICRhY190cnlfZWNob1wi IgorKyRhc19lY2hvICIkYWNfdHJ5X2VjaG8iKSA+JjUKKysgIChldmFsICIkYWNfY29tcGlsZSIp IDI+Y29uZnRlc3QuZXIxCisrICBhY19zdGF0dXM9JD8KKysgIGdyZXAgLXYgJ14gKisnIGNvbmZ0 ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCisrICBybSAtZiBjb25mdGVzdC5lcjEKKysgIGNhdCBjb25m dGVzdC5lcnIgPiY1CisrICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0 dXMiID4mNQorKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYgeworKwkgdGVzdCAteiAiJGFjX2N4 eF93ZXJyb3JfZmxhZyIgfHwKKysJIHRlc3QgISAtcyBjb25mdGVzdC5lcnIKKysgICAgICAgfSAm JiB0ZXN0IC1zIGNvbmZ0ZXN0LiRhY19vYmpleHQ7IHRoZW4KKysgIGF4X2N2X2Jvb3N0X3NpZ25h bHM9eWVzCisrZWxzZQorKyAgJGFzX2VjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIg PiY1Cisrc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQorKworKwlheF9jdl9ib29z dF9zaWduYWxzPW5vCisrZmkKKysKKytybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4k YWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKKysJCQkgYWNfZXh0PWNwcAorK2FjX2NwcD0nJENY WENQUCAkQ1BQRkxBR1MnCisrYWNfY29tcGlsZT0nJENYWCAtYyAkQ1hYRkxBR1MgJENQUEZMQUdT IGNvbmZ0ZXN0LiRhY19leHQgPiY1JworK2FjX2xpbms9JyRDWFggLW8gY29uZnRlc3QkYWNfZXhl ZXh0ICRDWFhGTEFHUyAkQ1BQRkxBR1MgJExERkxBR1MgY29uZnRlc3QuJGFjX2V4dCAkTElCUyA+ JjUnCisrYWNfY29tcGlsZXJfZ251PSRhY19jdl9jeHhfY29tcGlsZXJfZ251CisrCisrCisrZmkK Kyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYXhfY3ZfYm9vc3Rfc2lnbmFs cyIgPiY1CisrJGFzX2VjaG8gIiRheF9jdl9ib29zdF9zaWduYWxzIiA+JjY7IH0KKysJCQlpZiB0 ZXN0ICJ4JGF4X2N2X2Jvb3N0X3NpZ25hbHMiID0gInh5ZXMiOyB0aGVuCisrCisrY2F0ID4+Y29u ZmRlZnMuaCA8PFxfQUNFT0YKKysjZGVmaW5lIEhBVkVfQk9PU1RfU0lHTkFMUyAvKiovCisrX0FD RU9GCisrCisrCQkJCUJOPWJvb3N0X3NpZ25hbHMKKysJCQkJZm9yIGF4X2xpYiBpbiAkQk4gJEJO LSRDQyAkQk4tJENDLW10ICRCTi0kQ0MtbXQtcyAkQk4tJENDLXMgXAorKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGxpYiRCTiBsaWIkQk4tJENDIGxpYiRCTi0kQ0MtbXQgbGliJEJOLSRD Qy1tdC1zIFwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWIkQk4tJENDLXMgJEJO LW1ndyAkQk4tbWd3LW10IFwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkQk4tbWd3 LW10LXMgJEJOLW1ndy1zICBcCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJEJOLSRD Qy1tdC0kQk9PU1RMSUJfTURXX1ZFUlNJT04gOyBkbworKwkJCQkgICAgYXNfYWNfTGliPWAkYXNf ZWNobyAiYWNfY3ZfbGliXyRheF9saWInJ19tYWluIiB8ICRhc190cl9zaGAKKyt7ICRhc19lY2hv ICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIG1haW4gaW4gLWwkYXhfbGliIiA+JjUKKysk YXNfZWNob19uICJjaGVja2luZyBmb3IgbWFpbiBpbiAtbCRheF9saWIuLi4gIiA+JjY7IH0KKytp ZiB7IGFzX3Zhcj0kYXNfYWNfTGliOyBldmFsICJ0ZXN0IFwiXCR7JGFzX3ZhcitzZXR9XCIgPSBz ZXQiOyB9OyB0aGVuCisrICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysgIGFj X2NoZWNrX2xpYl9zYXZlX0xJQlM9JExJQlMKKytMSUJTPSItbCRheF9saWIgICRMSUJTIgorK2Nh dCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorKy8qIGNvbmZkZWZzLmguICAqLworK19BQ0VP RgorK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAorK2NhdCA+PmNvbmZ0ZXN0LiRh Y19leHQgPDxfQUNFT0YKKysvKiBlbmQgY29uZmRlZnMuaC4gICovCisrCisrCisraW50CisrbWFp biAoKQorK3sKKytyZXR1cm4gbWFpbiAoKTsKKysgIDsKKysgIHJldHVybiAwOworK30KKytfQUNF T0YKKytybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0JGFjX2V4ZWV4dAorK2lmIHsg KGFjX3RyeT0iJGFjX2xpbmsiCisrY2FzZSAiKCgkYWNfdHJ5IiBpbgorKyAgKlwiKiB8ICpcYCog fCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7CisrICAqKSBhY190cnlfZWNobz0kYWNfdHJ5 OzsKKytlc2FjCisrZXZhbCBhY190cnlfZWNobz0iXCJcJGFzX21lOiRMSU5FTk86ICRhY190cnlf ZWNob1wiIgorKyRhc19lY2hvICIkYWNfdHJ5X2VjaG8iKSA+JjUKKysgIChldmFsICIkYWNfbGlu ayIpIDI+Y29uZnRlc3QuZXIxCisrICBhY19zdGF0dXM9JD8KKysgIGdyZXAgLXYgJ14gKisnIGNv bmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCisrICBybSAtZiBjb25mdGVzdC5lcjEKKysgIGNhdCBj b25mdGVzdC5lcnIgPiY1CisrICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19z dGF0dXMiID4mNQorKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYgeworKwkgdGVzdCAteiAiJGFj X2N4eF93ZXJyb3JfZmxhZyIgfHwKKysJIHRlc3QgISAtcyBjb25mdGVzdC5lcnIKKysgICAgICAg fSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAmJiB7CisrCSB0ZXN0ICIkY3Jvc3NfY29t cGlsaW5nIiA9IHllcyB8fAorKwkgJGFzX3Rlc3RfeCBjb25mdGVzdCRhY19leGVleHQKKysgICAg ICAgfTsgdGhlbgorKyAgZXZhbCAiJGFzX2FjX0xpYj15ZXMiCisrZWxzZQorKyAgJGFzX2VjaG8g IiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Cisrc2VkICdzL14vfCAvJyBjb25mdGVz dC4kYWNfZXh0ID4mNQorKworKwlldmFsICIkYXNfYWNfTGliPW5vIgorK2ZpCisrCisrcm0gLXJm IGNvbmZ0ZXN0LmRTWU0KKytybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2Jq ZXh0IGNvbmZ0ZXN0X2lwYThfY29uZnRlc3Qub28gXAorKyAgICAgIGNvbmZ0ZXN0JGFjX2V4ZWV4 dCBjb25mdGVzdC4kYWNfZXh0CisrTElCUz0kYWNfY2hlY2tfbGliX3NhdmVfTElCUworK2ZpCisr YWNfcmVzPWBldmFsICdhc192YWw9JHsnJGFzX2FjX0xpYid9CisrCQkgJGFzX2VjaG8gIiRhc192 YWwiJ2AKKysJICAgICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19y ZXMiID4mNQorKyRhc19lY2hvICIkYWNfcmVzIiA+JjY7IH0KKythc192YWw9YGV2YWwgJ2FzX3Zh bD0keyckYXNfYWNfTGliJ30KKysJCSAkYXNfZWNobyAiJGFzX3ZhbCInYAorKyAgIGlmIHRlc3Qg IngkYXNfdmFsIiA9IHgiInllczsgdGhlbgorKyAgQk9PU1RfU0lHTkFMU19MSUI9Ii1sJGF4X2xp YiIgIGxpbmtfc2lnbmFscz0ieWVzIiBicmVhaworK2Vsc2UKKysgIGxpbmtfc2lnbmFscz0ibm8i CisrZmkKKysKKysgIAkJCQlkb25lCisrCQkJCWlmIHRlc3QgIngkbGlua19zaWduYWxzIiA9ICJ4 bm8iOyB0aGVuCisrCQkJCQl7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogQ291bGQgbm90IGxp bmsgYWdhaW5zdCAkYXhfbGliICEiID4mNQorKyRhc19lY2hvICIkYXNfbWU6IENvdWxkIG5vdCBs aW5rIGFnYWluc3QgJGF4X2xpYiAhIiA+JjY7fQorKwkJCQlmaQorKwkJCWZpCisrCisrIworKyMg Qm9vc3Q6OkRhdGVfVGltZQorKyMKKysJCQl7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hl Y2tpbmcgd2hldGhlciB0aGUgQm9vc3Q6OkRhdGVfVGltZSBsaWJyYXJ5IGlzIGF2YWlsYWJsZSIg PiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgd2hldGhlciB0aGUgQm9vc3Q6OkRhdGVfVGltZSBs aWJyYXJ5IGlzIGF2YWlsYWJsZS4uLiAiID4mNjsgfQorK2lmIHRlc3QgIiR7YXhfY3ZfYm9vc3Rf ZGF0ZV90aW1lK3NldH0iID0gc2V0OyB0aGVuCisrICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4m NgorK2Vsc2UKKysKKysJCQkgYWNfZXh0PWNwcAorK2FjX2NwcD0nJENYWENQUCAkQ1BQRkxBR1Mn CisrYWNfY29tcGlsZT0nJENYWCAtYyAkQ1hYRkxBR1MgJENQUEZMQUdTIGNvbmZ0ZXN0LiRhY19l eHQgPiY1JworK2FjX2xpbms9JyRDWFggLW8gY29uZnRlc3QkYWNfZXhlZXh0ICRDWFhGTEFHUyAk Q1BQRkxBR1MgJExERkxBR1MgY29uZnRlc3QuJGFjX2V4dCAkTElCUyA+JjUnCisrYWNfY29tcGls ZXJfZ251PSRhY19jdl9jeHhfY29tcGlsZXJfZ251CisrCisrCQkJIGNhdCA+Y29uZnRlc3QuJGFj X2V4dCA8PF9BQ0VPRgorKy8qIGNvbmZkZWZzLmguICAqLworK19BQ0VPRgorK2NhdCBjb25mZGVm cy5oID4+Y29uZnRlc3QuJGFjX2V4dAorK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YK KysvKiBlbmQgY29uZmRlZnMuaC4gICovCisrI2luY2x1ZGUgPGJvb3N0L2RhdGVfdGltZS9ncmVn b3JpYW4vZ3JlZ29yaWFuX3R5cGVzLmhwcD4KKysKKytpbnQKKyttYWluICgpCisreworK3VzaW5n IG5hbWVzcGFjZSBib29zdDo6Z3JlZ29yaWFuOyBkYXRlIGQoMjAwMixKYW4sMTApOworKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gMDsKKysKKysgIDsKKysgIHJl dHVybiAwOworK30KKytfQUNFT0YKKytybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0CisraWYgeyAo YWNfdHJ5PSIkYWNfY29tcGlsZSIKKytjYXNlICIoKCRhY190cnkiIGluCisrICAqXCIqIHwgKlxg KiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKKysgICopIGFjX3RyeV9lY2hvPSRhY190 cnk7OworK2VzYWMKKytldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3Ry eV9lY2hvXCIiCisrJGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4mNQorKyAgKGV2YWwgIiRhY19j b21waWxlIikgMj5jb25mdGVzdC5lcjEKKysgIGFjX3N0YXR1cz0kPworKyAgZ3JlcCAtdiAnXiAq KycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKKysgIHJtIC1mIGNvbmZ0ZXN0LmVyMQorKyAg Y2F0IGNvbmZ0ZXN0LmVyciA+JjUKKysgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0g JGFjX3N0YXR1cyIgPiY1CisrICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJiB7CisrCSB0ZXN0IC16 ICIkYWNfY3h4X3dlcnJvcl9mbGFnIiB8fAorKwkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgorKyAg ICAgICB9ICYmIHRlc3QgLXMgY29uZnRlc3QuJGFjX29iamV4dDsgdGhlbgorKyAgYXhfY3ZfYm9v c3RfZGF0ZV90aW1lPXllcworK2Vsc2UKKysgICRhc19lY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9n cmFtIHdhczoiID4mNQorK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKKysKKysJ YXhfY3ZfYm9vc3RfZGF0ZV90aW1lPW5vCisrZmkKKysKKytybSAtZiBjb3JlIGNvbmZ0ZXN0LmVy ciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKKysJCQkgYWNfZXh0PWNwcAor K2FjX2NwcD0nJENYWENQUCAkQ1BQRkxBR1MnCisrYWNfY29tcGlsZT0nJENYWCAtYyAkQ1hYRkxB R1MgJENQUEZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgPiY1JworK2FjX2xpbms9JyRDWFggLW8gY29u ZnRlc3QkYWNfZXhlZXh0ICRDWFhGTEFHUyAkQ1BQRkxBR1MgJExERkxBR1MgY29uZnRlc3QuJGFj X2V4dCAkTElCUyA+JjUnCisrYWNfY29tcGlsZXJfZ251PSRhY19jdl9jeHhfY29tcGlsZXJfZ251 CisrCisrCisrZmkKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYXhfY3Zf Ym9vc3RfZGF0ZV90aW1lIiA+JjUKKyskYXNfZWNobyAiJGF4X2N2X2Jvb3N0X2RhdGVfdGltZSIg PiY2OyB9CisrCQkJaWYgdGVzdCAieCRheF9jdl9ib29zdF9kYXRlX3RpbWUiID0gInh5ZXMiOyB0 aGVuCisrCisrY2F0ID4+Y29uZmRlZnMuaCA8PFxfQUNFT0YKKysjZGVmaW5lIEhBVkVfQk9PU1Rf REFURV9USU1FIC8qKi8KKytfQUNFT0YKKysKKysJCQkJQk49Ym9vc3RfZGF0ZV90aW1lCisrCQkJ CWZvciBheF9saWIgaW4gJEJOICRCTi0kQ0MgJEJOLSRDQy1tdCAkQk4tJENDLW10LXMgJEJOLSRD Qy1zIFwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWIkQk4gbGliJEJOLSRDQyBs aWIkQk4tJENDLW10IGxpYiRCTi0kQ0MtbXQtcyBcCisrICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgbGliJEJOLSRDQy1zICRCTi1tZ3cgJEJOLW1ndy1tdCBcCisrICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgJEJOLW1ndy1tdC1zICRCTi1tZ3ctcyAgXAorKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICRCTi0kQ0MtbXQtJEJPT1NUTElCX01EV19WRVJTSU9OIDsgZG8KKysJ CQkJICAgIGFzX2FjX0xpYj1gJGFzX2VjaG8gImFjX2N2X2xpYl8kYXhfbGliJydfbWFpbiIgfCAk YXNfdHJfc2hgCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciBtYWlu IGluIC1sJGF4X2xpYiIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yIG1haW4gaW4gLWwk YXhfbGliLi4uICIgPiY2OyB9CisraWYgeyBhc192YXI9JGFzX2FjX0xpYjsgZXZhbCAidGVzdCBc IlwkeyRhc192YXIrc2V0fVwiID0gc2V0IjsgfTsgdGhlbgorKyAgJGFzX2VjaG9fbiAiKGNhY2hl ZCkgIiA+JjYKKytlbHNlCisrICBhY19jaGVja19saWJfc2F2ZV9MSUJTPSRMSUJTCisrTElCUz0i LWwkYXhfbGliICAkTElCUyIKKytjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKysvKiBj b25mZGVmcy5oLiAgKi8KKytfQUNFT0YKKytjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19l eHQKKytjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisrLyogZW5kIGNvbmZkZWZzLmgu ICAqLworKworKworK2ludAorK21haW4gKCkKKyt7CisrcmV0dXJuIG1haW4gKCk7CisrICA7Cisr ICByZXR1cm4gMDsKKyt9CisrX0FDRU9GCisrcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dCBjb25m dGVzdCRhY19leGVleHQKKytpZiB7IChhY190cnk9IiRhY19saW5rIgorK2Nhc2UgIigoJGFjX3Ry eSIgaW4KKysgICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OworKyAg KikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7CisrZXNhYworK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRh c19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIKKyskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikg PiY1CisrICAoZXZhbCAiJGFjX2xpbmsiKSAyPmNvbmZ0ZXN0LmVyMQorKyAgYWNfc3RhdHVzPSQ/ CisrICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgorKyAgcm0gLWYg Y29uZnRlc3QuZXIxCisrICBjYXQgY29uZnRlc3QuZXJyID4mNQorKyAgJGFzX2VjaG8gIiRhc19t ZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKysgIChleGl0ICRhY19zdGF0dXMpOyB9 ICYmIHsKKysJIHRlc3QgLXogIiRhY19jeHhfd2Vycm9yX2ZsYWciIHx8CisrCSB0ZXN0ICEgLXMg Y29uZnRlc3QuZXJyCisrICAgICAgIH0gJiYgdGVzdCAtcyBjb25mdGVzdCRhY19leGVleHQgJiYg eworKwkgdGVzdCAiJGNyb3NzX2NvbXBpbGluZyIgPSB5ZXMgfHwKKysJICRhc190ZXN0X3ggY29u ZnRlc3QkYWNfZXhlZXh0CisrICAgICAgIH07IHRoZW4KKysgIGV2YWwgIiRhc19hY19MaWI9eWVz IgorK2Vsc2UKKysgICRhc19lY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQor K3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKKysKKysJZXZhbCAiJGFzX2FjX0xp Yj1ubyIKKytmaQorKworK3JtIC1yZiBjb25mdGVzdC5kU1lNCisrcm0gLWYgY29yZSBjb25mdGVz dC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdF9pcGE4X2NvbmZ0ZXN0Lm9vIFwKKysg ICAgICBjb25mdGVzdCRhY19leGVleHQgY29uZnRlc3QuJGFjX2V4dAorK0xJQlM9JGFjX2NoZWNr X2xpYl9zYXZlX0xJQlMKKytmaQorK2FjX3Jlcz1gZXZhbCAnYXNfdmFsPSR7JyRhc19hY19MaWIn fQorKwkJICRhc19lY2hvICIkYXNfdmFsIidgCisrCSAgICAgICB7ICRhc19lY2hvICIkYXNfbWU6 JExJTkVOTzogcmVzdWx0OiAkYWNfcmVzIiA+JjUKKyskYXNfZWNobyAiJGFjX3JlcyIgPiY2OyB9 CisrYXNfdmFsPWBldmFsICdhc192YWw9JHsnJGFzX2FjX0xpYid9CisrCQkgJGFzX2VjaG8gIiRh c192YWwiJ2AKKysgICBpZiB0ZXN0ICJ4JGFzX3ZhbCIgPSB4IiJ5ZXM7IHRoZW4KKysgIEJPT1NU X0RBVEVfVElNRV9MSUI9Ii1sJGF4X2xpYiIgIGxpbmtfZGF0ZV90aW1lPSJ5ZXMiIGJyZWFrCisr ZWxzZQorKyAgbGlua19kYXRlX3RpbWU9Im5vIgorK2ZpCisrCisrICAJCQkJZG9uZQorKwkJCQlp ZiB0ZXN0ICJ4JGxpbmtfZGF0ZV90aW1lIj0ibm8iID0gInhubyI7IHRoZW4KKysJCQkJCXsgJGFz X2VjaG8gIiRhc19tZTokTElORU5POiBDb3VsZCBub3QgbGluayBhZ2FpbnN0ICRheF9saWIgISIg PiY1CisrJGFzX2VjaG8gIiRhc19tZTogQ291bGQgbm90IGxpbmsgYWdhaW5zdCAkYXhfbGliICEi ID4mNjt9CisrCQkJCWZpCisrCQkJZmkKKysKKysjCisrIyBCb29zdDo6UmVnZXgKKysjCisrCQkJ eyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIHdoZXRoZXIgdGhlIEJvb3N0OjpS ZWdleCBsaWJyYXJ5IGlzIGF2YWlsYWJsZSIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgd2hl dGhlciB0aGUgQm9vc3Q6OlJlZ2V4IGxpYnJhcnkgaXMgYXZhaWxhYmxlLi4uICIgPiY2OyB9Cisr aWYgdGVzdCAiJHtheF9jdl9ib29zdF9yZWdleCtzZXR9IiA9IHNldDsgdGhlbgorKyAgJGFzX2Vj aG9fbiAiKGNhY2hlZCkgIiA+JjYKKytlbHNlCisrCisrCQkJIGFjX2V4dD1jcHAKKythY19jcHA9 JyRDWFhDUFAgJENQUEZMQUdTJworK2FjX2NvbXBpbGU9JyRDWFggLWMgJENYWEZMQUdTICRDUFBG TEFHUyBjb25mdGVzdC4kYWNfZXh0ID4mNScKKythY19saW5rPSckQ1hYIC1vIGNvbmZ0ZXN0JGFj X2V4ZWV4dCAkQ1hYRkxBR1MgJENQUEZMQUdTICRMREZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgJExJ QlMgPiY1JworK2FjX2NvbXBpbGVyX2dudT0kYWNfY3ZfY3h4X2NvbXBpbGVyX2dudQorKworKwkJ CSBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKysvKiBjb25mZGVmcy5oLiAgKi8KKytf QUNFT0YKKytjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKKytjYXQgPj5jb25mdGVz dC4kYWNfZXh0IDw8X0FDRU9GCisrLyogZW5kIGNvbmZkZWZzLmguICAqLworKyNpbmNsdWRlIDxi b29zdC9yZWdleC5ocHA+CisrCisraW50CisrbWFpbiAoKQorK3sKKytib29zdDo6cmVnZXggcigp OyByZXR1cm4gMDsKKysgIDsKKysgIHJldHVybiAwOworK30KKytfQUNFT0YKKytybSAtZiBjb25m dGVzdC4kYWNfb2JqZXh0CisraWYgeyAoYWNfdHJ5PSIkYWNfY29tcGlsZSIKKytjYXNlICIoKCRh Y190cnkiIGluCisrICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsK KysgICopIGFjX3RyeV9lY2hvPSRhY190cnk7OworK2VzYWMKKytldmFsIGFjX3RyeV9lY2hvPSJc IlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCisrJGFzX2VjaG8gIiRhY190cnlfZWNo byIpID4mNQorKyAgKGV2YWwgIiRhY19jb21waWxlIikgMj5jb25mdGVzdC5lcjEKKysgIGFjX3N0 YXR1cz0kPworKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKKysg IHJtIC1mIGNvbmZ0ZXN0LmVyMQorKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKKysgICRhc19lY2hv ICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisrICAoZXhpdCAkYWNfc3Rh dHVzKTsgfSAmJiB7CisrCSB0ZXN0IC16ICIkYWNfY3h4X3dlcnJvcl9mbGFnIiB8fAorKwkgdGVz dCAhIC1zIGNvbmZ0ZXN0LmVycgorKyAgICAgICB9ICYmIHRlc3QgLXMgY29uZnRlc3QuJGFjX29i amV4dDsgdGhlbgorKyAgYXhfY3ZfYm9vc3RfcmVnZXg9eWVzCisrZWxzZQorKyAgJGFzX2VjaG8g IiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Cisrc2VkICdzL14vfCAvJyBjb25mdGVz dC4kYWNfZXh0ID4mNQorKworKwlheF9jdl9ib29zdF9yZWdleD1ubworK2ZpCisrCisrcm0gLWYg Y29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0Cisr CQkJIGFjX2V4dD1jcHAKKythY19jcHA9JyRDWFhDUFAgJENQUEZMQUdTJworK2FjX2NvbXBpbGU9 JyRDWFggLWMgJENYWEZMQUdTICRDUFBGTEFHUyBjb25mdGVzdC4kYWNfZXh0ID4mNScKKythY19s aW5rPSckQ1hYIC1vIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAkQ1hYRkxBR1MgJENQUEZMQUdTICRMREZM QUdTIGNvbmZ0ZXN0LiRhY19leHQgJExJQlMgPiY1JworK2FjX2NvbXBpbGVyX2dudT0kYWNfY3Zf Y3h4X2NvbXBpbGVyX2dudQorKworKworK2ZpCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86 IHJlc3VsdDogJGF4X2N2X2Jvb3N0X3JlZ2V4IiA+JjUKKyskYXNfZWNobyAiJGF4X2N2X2Jvb3N0 X3JlZ2V4IiA+JjY7IH0KKysJCQlpZiB0ZXN0ICJ4JGF4X2N2X2Jvb3N0X3JlZ2V4IiA9ICJ4eWVz IjsgdGhlbgorKworK2NhdCA+PmNvbmZkZWZzLmggPDxcX0FDRU9GCisrI2RlZmluZSBIQVZFX0JP T1NUX1JFR0VYIC8qKi8KKytfQUNFT0YKKysKKysJCQkJQk49Ym9vc3RfcmVnZXgKKysJCQkJZm9y IGF4X2xpYiBpbiAkQk4gJEJOLSRDQyAkQk4tJENDLW10ICRCTi0kQ0MtbXQtcyAkQk4tJENDLXMg XAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpYiRCTiBsaWIkQk4tJENDIGxpYiRC Ti0kQ0MtbXQgbGliJEJOLSRDQy1tdC1zIFwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBsaWIkQk4tJENDLXMgJEJOLW1ndyAkQk4tbWd3LW10IFwKKysgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAkQk4tbWd3LW10LXMgJEJOLW1ndy1zICBcCisrICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgJEJOLSRDQy1tdC0kQk9PU1RMSUJfTURXX1ZFUlNJT04gOyBkbworKwkJCQkg ICAgYXNfYWNfTGliPWAkYXNfZWNobyAiYWNfY3ZfbGliXyRheF9saWInJ19tYWluIiB8ICRhc190 cl9zaGAKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIG1haW4gaW4g LWwkYXhfbGliIiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyBmb3IgbWFpbiBpbiAtbCRheF9s aWIuLi4gIiA+JjY7IH0KKytpZiB7IGFzX3Zhcj0kYXNfYWNfTGliOyBldmFsICJ0ZXN0IFwiXCR7 JGFzX3ZhcitzZXR9XCIgPSBzZXQiOyB9OyB0aGVuCisrICAkYXNfZWNob19uICIoY2FjaGVkKSAi ID4mNgorK2Vsc2UKKysgIGFjX2NoZWNrX2xpYl9zYXZlX0xJQlM9JExJQlMKKytMSUJTPSItbCRh eF9saWIgICRMSUJTIgorK2NhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorKy8qIGNvbmZk ZWZzLmguICAqLworK19BQ0VPRgorK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAor K2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKysvKiBlbmQgY29uZmRlZnMuaC4gICov CisrCisrCisraW50CisrbWFpbiAoKQorK3sKKytyZXR1cm4gbWFpbiAoKTsKKysgIDsKKysgIHJl dHVybiAwOworK30KKytfQUNFT0YKKytybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0 JGFjX2V4ZWV4dAorK2lmIHsgKGFjX3RyeT0iJGFjX2xpbmsiCisrY2FzZSAiKCgkYWNfdHJ5IiBp bgorKyAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7CisrICAqKSBh Y190cnlfZWNobz0kYWNfdHJ5OzsKKytlc2FjCisrZXZhbCBhY190cnlfZWNobz0iXCJcJGFzX21l OiRMSU5FTk86ICRhY190cnlfZWNob1wiIgorKyRhc19lY2hvICIkYWNfdHJ5X2VjaG8iKSA+JjUK KysgIChldmFsICIkYWNfbGluayIpIDI+Y29uZnRlc3QuZXIxCisrICBhY19zdGF0dXM9JD8KKysg IGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCisrICBybSAtZiBjb25m dGVzdC5lcjEKKysgIGNhdCBjb25mdGVzdC5lcnIgPiY1CisrICAkYXNfZWNobyAiJGFzX21lOiRM SU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYg eworKwkgdGVzdCAteiAiJGFjX2N4eF93ZXJyb3JfZmxhZyIgfHwKKysJIHRlc3QgISAtcyBjb25m dGVzdC5lcnIKKysgICAgICAgfSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAmJiB7Cisr CSB0ZXN0ICIkY3Jvc3NfY29tcGlsaW5nIiA9IHllcyB8fAorKwkgJGFzX3Rlc3RfeCBjb25mdGVz dCRhY19leGVleHQKKysgICAgICAgfTsgdGhlbgorKyAgZXZhbCAiJGFzX2FjX0xpYj15ZXMiCisr ZWxzZQorKyAgJGFzX2VjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Cisrc2Vk ICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQorKworKwlldmFsICIkYXNfYWNfTGliPW5v IgorK2ZpCisrCisrcm0gLXJmIGNvbmZ0ZXN0LmRTWU0KKytybSAtZiBjb3JlIGNvbmZ0ZXN0LmVy ciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0X2lwYThfY29uZnRlc3Qub28gXAorKyAgICAg IGNvbmZ0ZXN0JGFjX2V4ZWV4dCBjb25mdGVzdC4kYWNfZXh0CisrTElCUz0kYWNfY2hlY2tfbGli X3NhdmVfTElCUworK2ZpCisrYWNfcmVzPWBldmFsICdhc192YWw9JHsnJGFzX2FjX0xpYid9Cisr CQkgJGFzX2VjaG8gIiRhc192YWwiJ2AKKysJICAgICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElO RU5POiByZXN1bHQ6ICRhY19yZXMiID4mNQorKyRhc19lY2hvICIkYWNfcmVzIiA+JjY7IH0KKyth c192YWw9YGV2YWwgJ2FzX3ZhbD0keyckYXNfYWNfTGliJ30KKysJCSAkYXNfZWNobyAiJGFzX3Zh bCInYAorKyAgIGlmIHRlc3QgIngkYXNfdmFsIiA9IHgiInllczsgdGhlbgorKyAgQk9PU1RfUkVH RVhfTElCPSItbCRheF9saWIiICBsaW5rX3RocmVhZD0ieWVzIiBicmVhaworK2Vsc2UKKysgIGxp bmtfdGhyZWFkPSJubyIKKytmaQorKworKyAgCQkJCWRvbmUKKysJCQkJaWYgdGVzdCAieCRsaW5r X3RocmVhZCIgPSAieG5vIjsgdGhlbgorKwkJCQkJeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86 IENvdWxkIG5vdCBsaW5rIGFnYWluc3QgJGF4X2xpYiAhIiA+JjUKKyskYXNfZWNobyAiJGFzX21l OiBDb3VsZCBub3QgbGluayBhZ2FpbnN0ICRheF9saWIgISIgPiY2O30KKysJCQkJZmkKKysJCQlm aQorKworKyMKKysjIEJvb3N0OjpBU0lPOiBpdCBuZWVkcyBCb29zdC5TeXN0ZW0sIEJvb3N0LlJl Z2V4LCBCb29zdC5UaHJlYWQgYW5kCisrIyBCb29zdC5EYXRlVGltZSwgYnV0IGRvZXMgbm90IHBy b2R1Y2UgYW55IChvdGhlcikgbGlicmFyeS4KKysjCisrCQkJeyAkYXNfZWNobyAiJGFzX21lOiRM SU5FTk86IGNoZWNraW5nIHdoZXRoZXIgdGhlIEJvb3N0OjpBc2lvIGxpYnJhcnkgaXMgYXZhaWxh YmxlIiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyB3aGV0aGVyIHRoZSBCb29zdDo6QXNpbyBs aWJyYXJ5IGlzIGF2YWlsYWJsZS4uLiAiID4mNjsgfQorK2lmIHRlc3QgIiR7YXhfY3ZfYm9vc3Rf YXNpbytzZXR9IiA9IHNldDsgdGhlbgorKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKKytl bHNlCisrCisrCQkJIGFjX2V4dD1jcHAKKythY19jcHA9JyRDWFhDUFAgJENQUEZMQUdTJworK2Fj X2NvbXBpbGU9JyRDWFggLWMgJENYWEZMQUdTICRDUFBGTEFHUyBjb25mdGVzdC4kYWNfZXh0ID4m NScKKythY19saW5rPSckQ1hYIC1vIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAkQ1hYRkxBR1MgJENQUEZM QUdTICRMREZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgJExJQlMgPiY1JworK2FjX2NvbXBpbGVyX2du dT0kYWNfY3ZfY3h4X2NvbXBpbGVyX2dudQorKworKwkJCSBjYXQgPmNvbmZ0ZXN0LiRhY19leHQg PDxfQUNFT0YKKysvKiBjb25mZGVmcy5oLiAgKi8KKytfQUNFT0YKKytjYXQgY29uZmRlZnMuaCA+ PmNvbmZ0ZXN0LiRhY19leHQKKytjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisrLyog ZW5kIGNvbmZkZWZzLmguICAqLworKyNpbmNsdWRlIDxib29zdC9hc2lvLmhwcD4KKytpbnQKKytt YWluICgpCisreworK2Jvb3N0Ojphc2lvOjppb19zZXJ2aWNlIGlvOworKwkgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBib29zdDo6c3lzdGVtOjplcnJvcl9jb2RlIHRpbWVyX3Jlc3Vs dDsKKysJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vc3Q6OmFzaW86OmRlYWRs aW5lX3RpbWVyIHQoaW8pOworKwkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0LmNh bmNlbCgpOworKwkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpby5ydW5fb25lKCk7 CisrCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAwOworKworKyAgOwor KyAgcmV0dXJuIDA7CisrfQorK19BQ0VPRgorK3JtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQKKytp ZiB7IChhY190cnk9IiRhY19jb21waWxlIgorK2Nhc2UgIigoJGFjX3RyeSIgaW4KKysgICpcIiog fCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OworKyAgKikgYWNfdHJ5X2VjaG89 JGFjX3RyeTs7CisrZXNhYworK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5POiAk YWNfdHJ5X2VjaG9cIiIKKyskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1CisrICAoZXZhbCAi JGFjX2NvbXBpbGUiKSAyPmNvbmZ0ZXN0LmVyMQorKyAgYWNfc3RhdHVzPSQ/CisrICBncmVwIC12 ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgorKyAgcm0gLWYgY29uZnRlc3QuZXIx CisrICBjYXQgY29uZnRlc3QuZXJyID4mNQorKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBc JD8gPSAkYWNfc3RhdHVzIiA+JjUKKysgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmIHsKKysJIHRl c3QgLXogIiRhY19jeHhfd2Vycm9yX2ZsYWciIHx8CisrCSB0ZXN0ICEgLXMgY29uZnRlc3QuZXJy CisrICAgICAgIH0gJiYgdGVzdCAtcyBjb25mdGVzdC4kYWNfb2JqZXh0OyB0aGVuCisrICBheF9j dl9ib29zdF9hc2lvPXllcworK2Vsc2UKKysgICRhc19lY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9n cmFtIHdhczoiID4mNQorK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKKysKKysJ YXhfY3ZfYm9vc3RfYXNpbz1ubworK2ZpCisrCisrcm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29u ZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0CisrCQkJIGFjX2V4dD1jcHAKKythY19j cHA9JyRDWFhDUFAgJENQUEZMQUdTJworK2FjX2NvbXBpbGU9JyRDWFggLWMgJENYWEZMQUdTICRD UFBGTEFHUyBjb25mdGVzdC4kYWNfZXh0ID4mNScKKythY19saW5rPSckQ1hYIC1vIGNvbmZ0ZXN0 JGFjX2V4ZWV4dCAkQ1hYRkxBR1MgJENQUEZMQUdTICRMREZMQUdTIGNvbmZ0ZXN0LiRhY19leHQg JExJQlMgPiY1JworK2FjX2NvbXBpbGVyX2dudT0kYWNfY3ZfY3h4X2NvbXBpbGVyX2dudQorKwor KworK2ZpCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGF4X2N2X2Jvb3N0 X2FzaW8iID4mNQorKyRhc19lY2hvICIkYXhfY3ZfYm9vc3RfYXNpbyIgPiY2OyB9CisrCQkJaWYg dGVzdCAieCRheF9jdl9ib29zdF9hc2lvIiA9ICJ4eWVzIjsgdGhlbgorKworK2NhdCA+PmNvbmZk ZWZzLmggPDxcX0FDRU9GCisrI2RlZmluZSBIQVZFX0JPT1NUX0FTSU8gLyoqLworK19BQ0VPRgor KworKwkJCSAgIEJPT1NUX0FTSU9fTElCPSIke0JPT1NUX1NZU1RFTV9MSUJ9ICR7Qk9PU1RfVEhS RUFEX0xJQn0iCisrCQkJICAgQk9PU1RfQVNJT19MSUI9IiR7Qk9PU1RfQVNJT19MSUJ9ICR7Qk9P U1RfREFURV9USU1FX0xJQn0iCisrCQkJICAgQk9PU1RfQVNJT19MSUI9IiR7Qk9PU1RfQVNJT19M SUJ9ICR7Qk9PU1RfUkVHRVhfTElCfSIKKysJCQkgICBCT09TVF9BU0lPX0xJQj0iJHtCT09TVF9B U0lPX0xJQn0gJHtCT09TVF9TRVJJQUxJWkFUSU9OX0xJQn0iCisrCQkJZmkKKysKKysjCisrIyBT dXBwb3J0IGZvciBQeXRob24gYW5kIE1QSSAoTVBJQ0gyLCBCb29zdDo6TVBJLCBCb29zdDo6UHl0 aG9uLAorKyMgQm9vc3Q6OlNlcmlhbGl6YXRpb24sIEJvb3N0OjpNUElfUHl0aG9uKQorKyMgTm90 ZTogb24gc29tZSBkaXN0cmlidXRpb25zIChlLmcuLCBEZWJpYW4pLCBCb29zdC5NUEkgdXNlcyBP cGVuTVBJIHJhdGhlcgorKyMgICAgICAgdGhhbiBNUElDSDIKKysjCisrCQkJQ1BQRkxBR1NfT1JJ Rz0iJHtDUFBGTEFHU30iCisrCQkJQ1BQRkxBR1M9IiR7Q1BQRkxBR1N9ICR7UFlUSE9OX0NGTEFH U30gJHtNUElHRU5fQ0ZMQUdTfSIKKysjCQkJQ1BQRkxBR1M9IiR7Q1BQRkxBR1N9ICR7UFlUSE9O X0NGTEFHU30gJHtNUElDSDJfQ0ZMQUdTfSIKKysjCQkJQ1BQRkxBR1M9IiR7Q1BQRkxBR1N9ICR7 UFlUSE9OX0NGTEFHU30gJHtPUEVOTVBJX0NGTEFHU30iCisrCQkJTERGTEFHU19PUklHPSIke0xE RkxBR1N9IgorKwkJCUxERkxBR1M9IiR7TERGTEFHU30gJHtQWVRIT05fTElCU30gJHtQWVRIT05f QUREX0xJQlN9ICR7TVBJR0VOX0xJQlN9IgorKyMJCQlMREZMQUdTPSIke0xERkxBR1N9ICR7UFlU SE9OX0xJQlN9ICR7UFlUSE9OX0FERF9MSUJTfSAke01QSUNIMl9MSUJTfSIKKysjCQkJTERGTEFH Uz0iJHtMREZMQUdTfSAke1BZVEhPTl9MSUJTfSAke1BZVEhPTl9BRERfTElCU30gJHtPUEVOTVBJ X0xJQlN9IgorKworKyMKKysjIEJvb3N0OjpQeXRob24KKysjCisrCQkJeyAkYXNfZWNobyAiJGFz X21lOiRMSU5FTk86IGNoZWNraW5nIHdoZXRoZXIgdGhlIEJvb3N0OjpQeXRob24gbGlicmFyeSBp cyBhdmFpbGFibGUiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIHdoZXRoZXIgdGhlIEJvb3N0 OjpQeXRob24gbGlicmFyeSBpcyBhdmFpbGFibGUuLi4gIiA+JjY7IH0KKytpZiB0ZXN0ICIke2F4 X2N2X2Jvb3N0X3B5dGhvbitzZXR9IiA9IHNldDsgdGhlbgorKyAgJGFzX2VjaG9fbiAiKGNhY2hl ZCkgIiA+JjYKKytlbHNlCisrCisrCQkJYWNfZXh0PWNwcAorK2FjX2NwcD0nJENYWENQUCAkQ1BQ RkxBR1MnCisrYWNfY29tcGlsZT0nJENYWCAtYyAkQ1hYRkxBR1MgJENQUEZMQUdTIGNvbmZ0ZXN0 LiRhY19leHQgPiY1JworK2FjX2xpbms9JyRDWFggLW8gY29uZnRlc3QkYWNfZXhlZXh0ICRDWFhG TEFHUyAkQ1BQRkxBR1MgJExERkxBR1MgY29uZnRlc3QuJGFjX2V4dCAkTElCUyA+JjUnCisrYWNf Y29tcGlsZXJfZ251PSRhY19jdl9jeHhfY29tcGlsZXJfZ251CisrCisrCisrCQkgICAgY2F0ID5j b25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisrLyogY29uZmRlZnMuaC4gICovCisrX0FDRU9GCisr Y2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0CisrY2F0ID4+Y29uZnRlc3QuJGFjX2V4 dCA8PF9BQ0VPRgorKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KKysjaW5jbHVkZSA8Ym9vc3QvcHl0 aG9uLmhwcD4KKysJCQljaGFyIGNvbnN0KiBncmVldCgpIHsgcmV0dXJuICJoZWxsbyI7IH0KKysJ CQlCT09TVF9QWVRIT05fTU9EVUxFKGhlbGxvX2V4dCkgeyBib29zdDo6cHl0aG9uOjpkZWYoImdy ZWV0IiwgZ3JlZXQpO30KKysKKytpbnQKKyttYWluICgpCisreworKworKyAgOworKyAgcmV0dXJu IDA7CisrfQorK19BQ0VPRgorK3JtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQKKytpZiB7IChhY190 cnk9IiRhY19jb21waWxlIgorK2Nhc2UgIigoJGFjX3RyeSIgaW4KKysgICpcIiogfCAqXGAqIHwg KlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OworKyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7 CisrZXNhYworK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5X2Vj aG9cIiIKKyskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1CisrICAoZXZhbCAiJGFjX2NvbXBp bGUiKSAyPmNvbmZ0ZXN0LmVyMQorKyAgYWNfc3RhdHVzPSQ/CisrICBncmVwIC12ICdeICorJyBj b25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgorKyAgcm0gLWYgY29uZnRlc3QuZXIxCisrICBjYXQg Y29uZnRlc3QuZXJyID4mNQorKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNf c3RhdHVzIiA+JjUKKysgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmIHsKKysJIHRlc3QgLXogIiRh Y19jeHhfd2Vycm9yX2ZsYWciIHx8CisrCSB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCisrICAgICAg IH0gJiYgdGVzdCAtcyBjb25mdGVzdC4kYWNfb2JqZXh0OyB0aGVuCisrICBheF9jdl9ib29zdF9w eXRob249eWVzCisrZWxzZQorKyAgJGFzX2VjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2Fz OiIgPiY1Cisrc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQorKworKwlheF9jdl9i b29zdF9weXRob249bm8KKytmaQorKworK3JtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0 LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAorKwkJCSBhY19leHQ9Y3BwCisrYWNfY3BwPSck Q1hYQ1BQICRDUFBGTEFHUycKKythY19jb21waWxlPSckQ1hYIC1jICRDWFhGTEFHUyAkQ1BQRkxB R1MgY29uZnRlc3QuJGFjX2V4dCA+JjUnCisrYWNfbGluaz0nJENYWCAtbyBjb25mdGVzdCRhY19l eGVleHQgJENYWEZMQUdTICRDUFBGTEFHUyAkTERGTEFHUyBjb25mdGVzdC4kYWNfZXh0ICRMSUJT ID4mNScKKythY19jb21waWxlcl9nbnU9JGFjX2N2X2N4eF9jb21waWxlcl9nbnUKKysKKysKKytm aQorK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRheF9jdl9ib29zdF9weXRo b24iID4mNQorKyRhc19lY2hvICIkYXhfY3ZfYm9vc3RfcHl0aG9uIiA+JjY7IH0KKysKKysJCQlC T09TVF9QWVRIT05fTElCPSItbGJvb3N0X3B5dGhvbiAke1BZVEhPTl9MSUJTfSAke1BZVEhPTl9B RERfTElCU30iCisrCisrCisrIworKyMgQm9vc3Q6Ok1QSQorKyMKKysJCQl7ICRhc19lY2hvICIk YXNfbWU6JExJTkVOTzogY2hlY2tpbmcgd2hldGhlciB0aGUgQm9vc3Q6Ok1waSBsaWJyYXJ5IGlz IGF2YWlsYWJsZSIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgd2hldGhlciB0aGUgQm9vc3Q6 Ok1waSBsaWJyYXJ5IGlzIGF2YWlsYWJsZS4uLiAiID4mNjsgfQorK2lmIHRlc3QgIiR7YXhfY3Zf Ym9vc3RfbXBpK3NldH0iID0gc2V0OyB0aGVuCisrICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4m NgorK2Vsc2UKKysKKysJCQkgYWNfZXh0PWNwcAorK2FjX2NwcD0nJENYWENQUCAkQ1BQRkxBR1Mn CisrYWNfY29tcGlsZT0nJENYWCAtYyAkQ1hYRkxBR1MgJENQUEZMQUdTIGNvbmZ0ZXN0LiRhY19l eHQgPiY1JworK2FjX2xpbms9JyRDWFggLW8gY29uZnRlc3QkYWNfZXhlZXh0ICRDWFhGTEFHUyAk Q1BQRkxBR1MgJExERkxBR1MgY29uZnRlc3QuJGFjX2V4dCAkTElCUyA+JjUnCisrYWNfY29tcGls ZXJfZ251PSRhY19jdl9jeHhfY29tcGlsZXJfZ251CisrCisrCQkJIGNhdCA+Y29uZnRlc3QuJGFj X2V4dCA8PF9BQ0VPRgorKy8qIGNvbmZkZWZzLmguICAqLworK19BQ0VPRgorK2NhdCBjb25mZGVm cy5oID4+Y29uZnRlc3QuJGFjX2V4dAorK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YK KysvKiBlbmQgY29uZmRlZnMuaC4gICovCisrI2luY2x1ZGUgPGJvb3N0L21waS5ocHA+CisraW50 CisrbWFpbiAoKQorK3sKKysKKysJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0 dXJuIDA7CisrCisrICA7CisrICByZXR1cm4gMDsKKyt9CisrX0FDRU9GCisrcm0gLWYgY29uZnRl c3QuJGFjX29iamV4dAorK2lmIHsgKGFjX3RyeT0iJGFjX2NvbXBpbGUiCisrY2FzZSAiKCgkYWNf dHJ5IiBpbgorKyAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7Cisr ICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKKytlc2FjCisrZXZhbCBhY190cnlfZWNobz0iXCJc JGFzX21lOiRMSU5FTk86ICRhY190cnlfZWNob1wiIgorKyRhc19lY2hvICIkYWNfdHJ5X2VjaG8i KSA+JjUKKysgIChldmFsICIkYWNfY29tcGlsZSIpIDI+Y29uZnRlc3QuZXIxCisrICBhY19zdGF0 dXM9JD8KKysgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCisrICBy bSAtZiBjb25mdGVzdC5lcjEKKysgIGNhdCBjb25mdGVzdC5lcnIgPiY1CisrICAkYXNfZWNobyAi JGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorKyAgKGV4aXQgJGFjX3N0YXR1 cyk7IH0gJiYgeworKwkgdGVzdCAteiAiJGFjX2N4eF93ZXJyb3JfZmxhZyIgfHwKKysJIHRlc3Qg ISAtcyBjb25mdGVzdC5lcnIKKysgICAgICAgfSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0LiRhY19vYmpl eHQ7IHRoZW4KKysgIGF4X2N2X2Jvb3N0X21waT15ZXMKKytlbHNlCisrICAkYXNfZWNobyAiJGFz X21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKKytzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRh Y19leHQgPiY1CisrCisrCWF4X2N2X2Jvb3N0X21waT1ubworK2ZpCisrCisrcm0gLWYgY29yZSBj b25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0CisrCQkJIGFj X2V4dD1jcHAKKythY19jcHA9JyRDWFhDUFAgJENQUEZMQUdTJworK2FjX2NvbXBpbGU9JyRDWFgg LWMgJENYWEZMQUdTICRDUFBGTEFHUyBjb25mdGVzdC4kYWNfZXh0ID4mNScKKythY19saW5rPSck Q1hYIC1vIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAkQ1hYRkxBR1MgJENQUEZMQUdTICRMREZMQUdTIGNv bmZ0ZXN0LiRhY19leHQgJExJQlMgPiY1JworK2FjX2NvbXBpbGVyX2dudT0kYWNfY3ZfY3h4X2Nv bXBpbGVyX2dudQorKworKworK2ZpCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3Vs dDogJGF4X2N2X2Jvb3N0X21waSIgPiY1CisrJGFzX2VjaG8gIiRheF9jdl9ib29zdF9tcGkiID4m NjsgfQorKwkJCWlmIHRlc3QgIngkYXhfY3ZfYm9vc3RfbXBpIiA9ICJ4eWVzIjsgdGhlbgorKwor K2NhdCA+PmNvbmZkZWZzLmggPDxcX0FDRU9GCisrI2RlZmluZSBIQVZFX0JPT1NUX01QSSAvKiov CisrX0FDRU9GCisrCisrCQkJCUJOPWJvb3N0X21waQorKwkJCQlmb3IgYXhfbGliIGluICRCTiAk Qk4tJENDICRCTi0kQ0MtbXQgJEJOLSRDQy1tdC1zICRCTi0kQ0MtcyBcCisrICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgbGliJEJOIGxpYiRCTi0kQ0MgbGliJEJOLSRDQy1tdCBsaWIkQk4t JENDLW10LXMgXAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpYiRCTi0kQ0MtcyAk Qk4tbWd3ICRCTi1tZ3ctbXQgJEJOLW1ndy1tdC1zIFwKKysgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAkQk4tbWd3LXMgJEJOLSRDQy1tdC0kQk9PU1RMSUJfTURXX1ZFUlNJT04gOyBkbwor KworKwkJCQkgICAgYXNfYWNfTGliPWAkYXNfZWNobyAiYWNfY3ZfbGliXyRheF9saWInJ19tYWlu IiB8ICRhc190cl9zaGAKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9y IG1haW4gaW4gLWwkYXhfbGliIiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyBmb3IgbWFpbiBp biAtbCRheF9saWIuLi4gIiA+JjY7IH0KKytpZiB7IGFzX3Zhcj0kYXNfYWNfTGliOyBldmFsICJ0 ZXN0IFwiXCR7JGFzX3ZhcitzZXR9XCIgPSBzZXQiOyB9OyB0aGVuCisrICAkYXNfZWNob19uICIo Y2FjaGVkKSAiID4mNgorK2Vsc2UKKysgIGFjX2NoZWNrX2xpYl9zYXZlX0xJQlM9JExJQlMKKytM SUJTPSItbCRheF9saWIgICRMSUJTIgorK2NhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgor Ky8qIGNvbmZkZWZzLmguICAqLworK19BQ0VPRgorK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3Qu JGFjX2V4dAorK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKysvKiBlbmQgY29uZmRl ZnMuaC4gICovCisrCisrCisraW50CisrbWFpbiAoKQorK3sKKytyZXR1cm4gbWFpbiAoKTsKKysg IDsKKysgIHJldHVybiAwOworK30KKytfQUNFT0YKKytybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0 IGNvbmZ0ZXN0JGFjX2V4ZWV4dAorK2lmIHsgKGFjX3RyeT0iJGFjX2xpbmsiCisrY2FzZSAiKCgk YWNfdHJ5IiBpbgorKyAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7 CisrICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKKytlc2FjCisrZXZhbCBhY190cnlfZWNobz0i XCJcJGFzX21lOiRMSU5FTk86ICRhY190cnlfZWNob1wiIgorKyRhc19lY2hvICIkYWNfdHJ5X2Vj aG8iKSA+JjUKKysgIChldmFsICIkYWNfbGluayIpIDI+Y29uZnRlc3QuZXIxCisrICBhY19zdGF0 dXM9JD8KKysgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCisrICBy bSAtZiBjb25mdGVzdC5lcjEKKysgIGNhdCBjb25mdGVzdC5lcnIgPiY1CisrICAkYXNfZWNobyAi JGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorKyAgKGV4aXQgJGFjX3N0YXR1 cyk7IH0gJiYgeworKwkgdGVzdCAteiAiJGFjX2N4eF93ZXJyb3JfZmxhZyIgfHwKKysJIHRlc3Qg ISAtcyBjb25mdGVzdC5lcnIKKysgICAgICAgfSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0JGFjX2V4ZWV4 dCAmJiB7CisrCSB0ZXN0ICIkY3Jvc3NfY29tcGlsaW5nIiA9IHllcyB8fAorKwkgJGFzX3Rlc3Rf eCBjb25mdGVzdCRhY19leGVleHQKKysgICAgICAgfTsgdGhlbgorKyAgZXZhbCAiJGFzX2FjX0xp Yj15ZXMiCisrZWxzZQorKyAgJGFzX2VjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIg PiY1Cisrc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQorKworKwlldmFsICIkYXNf YWNfTGliPW5vIgorK2ZpCisrCisrcm0gLXJmIGNvbmZ0ZXN0LmRTWU0KKytybSAtZiBjb3JlIGNv bmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0X2lwYThfY29uZnRlc3Qub28g XAorKyAgICAgIGNvbmZ0ZXN0JGFjX2V4ZWV4dCBjb25mdGVzdC4kYWNfZXh0CisrTElCUz0kYWNf Y2hlY2tfbGliX3NhdmVfTElCUworK2ZpCisrYWNfcmVzPWBldmFsICdhc192YWw9JHsnJGFzX2Fj X0xpYid9CisrCQkgJGFzX2VjaG8gIiRhc192YWwiJ2AKKysJICAgICAgIHsgJGFzX2VjaG8gIiRh c19tZTokTElORU5POiByZXN1bHQ6ICRhY19yZXMiID4mNQorKyRhc19lY2hvICIkYWNfcmVzIiA+ JjY7IH0KKythc192YWw9YGV2YWwgJ2FzX3ZhbD0keyckYXNfYWNfTGliJ30KKysJCSAkYXNfZWNo byAiJGFzX3ZhbCInYAorKyAgIGlmIHRlc3QgIngkYXNfdmFsIiA9IHgiInllczsgdGhlbgorKyAg Qk9PU1RfTVBJX0xJQj0iLWwkYXhfbGliIiAgbGlua19tcGk9InllcyIgYnJlYWsKKytlbHNlCisr ICBsaW5rX21waT0ibm8iCisrZmkKKysKKysgIAkJCQlkb25lCisrCQkJCWlmIHRlc3QgIngkbGlu a19tcGkiID0gInhubyI7IHRoZW4KKysJCQkJCXsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBD b3VsZCBub3QgbGluayBhZ2FpbnN0ICRheF9saWIgISIgPiY1CisrJGFzX2VjaG8gIiRhc19tZTog Q291bGQgbm90IGxpbmsgYWdhaW5zdCAkYXhfbGliICEiID4mNjt9CisrCQkJCWVsc2UKKysJCQkJ CUJPT1NUX01QSV9MSUI9IiR7Qk9PU1RfTVBJX0xJQn0gJHtCT09TVF9TRVJJQUxJWkFUSU9OX0xJ Qn0gJHtNUElHRU5fTElCU30iCisrCQkJCWZpCisrCQkJZmkKKysKKysjCisrIyBCb29zdDo6TVBJ X1B5dGhvbgorKyMKKysJCQl7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgd2hl dGhlciB0aGUgQm9vc3Q6Ok1waV9QeXRob24gbGlicmFyeSBpcyBhdmFpbGFibGUiID4mNQorKyRh c19lY2hvX24gImNoZWNraW5nIHdoZXRoZXIgdGhlIEJvb3N0OjpNcGlfUHl0aG9uIGxpYnJhcnkg aXMgYXZhaWxhYmxlLi4uICIgPiY2OyB9CisraWYgdGVzdCAiJHtheF9jdl9ib29zdF9tcGlfcHl0 aG9uK3NldH0iID0gc2V0OyB0aGVuCisrICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vs c2UKKysKKysJCQkgYWNfZXh0PWNwcAorK2FjX2NwcD0nJENYWENQUCAkQ1BQRkxBR1MnCisrYWNf Y29tcGlsZT0nJENYWCAtYyAkQ1hYRkxBR1MgJENQUEZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgPiY1 JworK2FjX2xpbms9JyRDWFggLW8gY29uZnRlc3QkYWNfZXhlZXh0ICRDWFhGTEFHUyAkQ1BQRkxB R1MgJExERkxBR1MgY29uZnRlc3QuJGFjX2V4dCAkTElCUyA+JjUnCisrYWNfY29tcGlsZXJfZ251 PSRhY19jdl9jeHhfY29tcGlsZXJfZ251CisrCisrCQkJIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8 PF9BQ0VPRgorKy8qIGNvbmZkZWZzLmguICAqLworK19BQ0VPRgorK2NhdCBjb25mZGVmcy5oID4+ Y29uZnRlc3QuJGFjX2V4dAorK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKysvKiBl bmQgY29uZmRlZnMuaC4gICovCisrI2luY2x1ZGUgPGJvb3N0L21waS9weXRob24vc2VyaWFsaXpl LmhwcD4KKysKKytpbnQKKyttYWluICgpCisreworKworKwkgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICByZXR1cm4gMDsKKysKKysgIDsKKysgIHJldHVybiAwOworK30KKytfQUNFT0YK KytybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0CisraWYgeyAoYWNfdHJ5PSIkYWNfY29tcGlsZSIK KytjYXNlICIoKCRhY190cnkiIGluCisrICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hv PVwkYWNfdHJ5OzsKKysgICopIGFjX3RyeV9lY2hvPSRhY190cnk7OworK2VzYWMKKytldmFsIGFj X3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCisrJGFzX2VjaG8g IiRhY190cnlfZWNobyIpID4mNQorKyAgKGV2YWwgIiRhY19jb21waWxlIikgMj5jb25mdGVzdC5l cjEKKysgIGFjX3N0YXR1cz0kPworKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25m dGVzdC5lcnIKKysgIHJtIC1mIGNvbmZ0ZXN0LmVyMQorKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUK KysgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisrICAo ZXhpdCAkYWNfc3RhdHVzKTsgfSAmJiB7CisrCSB0ZXN0IC16ICIkYWNfY3h4X3dlcnJvcl9mbGFn IiB8fAorKwkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgorKyAgICAgICB9ICYmIHRlc3QgLXMgY29u ZnRlc3QuJGFjX29iamV4dDsgdGhlbgorKyAgYXhfY3ZfYm9vc3RfbXBpX3B5dGhvbj15ZXMKKytl bHNlCisrICAkYXNfZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKKytzZWQg J3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1CisrCisrCWF4X2N2X2Jvb3N0X21waV9weXRo b249bm8KKytmaQorKworK3JtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpl eHQgY29uZnRlc3QuJGFjX2V4dAorKwkJCSBhY19leHQ9Y3BwCisrYWNfY3BwPSckQ1hYQ1BQICRD UFBGTEFHUycKKythY19jb21waWxlPSckQ1hYIC1jICRDWFhGTEFHUyAkQ1BQRkxBR1MgY29uZnRl c3QuJGFjX2V4dCA+JjUnCisrYWNfbGluaz0nJENYWCAtbyBjb25mdGVzdCRhY19leGVleHQgJENY WEZMQUdTICRDUFBGTEFHUyAkTERGTEFHUyBjb25mdGVzdC4kYWNfZXh0ICRMSUJTID4mNScKKyth Y19jb21waWxlcl9nbnU9JGFjX2N2X2N4eF9jb21waWxlcl9nbnUKKysKKysKKytmaQorK3sgJGFz X2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRheF9jdl9ib29zdF9tcGlfcHl0aG9uIiA+ JjUKKyskYXNfZWNobyAiJGF4X2N2X2Jvb3N0X21waV9weXRob24iID4mNjsgfQorKwkJCWlmIHRl c3QgIngkYXhfY3ZfYm9vc3RfbXBpX3B5dGhvbiIgPSAieHllcyI7IHRoZW4KKysKKytjYXQgPj5j b25mZGVmcy5oIDw8XF9BQ0VPRgorKyNkZWZpbmUgSEFWRV9CT09TVF9NUElfUFlUSE9OIC8qKi8K KytfQUNFT0YKKysKKysJCQkJQk49Ym9vc3RfbXBpX3B5dGhvbgorKyMJCQkJQk49Ym9vc3RfbXBp X3B5dGhvbi1weTI1CisrCQkJCWZvciBheF9saWIgaW4gJEJOICRCTi0kQ0MgJEJOLSRDQy1tdCAk Qk4tJENDLW10LXMgJEJOLSRDQy1zIFwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBs aWIkQk4gbGliJEJOLSRDQyBsaWIkQk4tJENDLW10IGxpYiRCTi0kQ0MtbXQtcyBcCisrICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgbGliJEJOLSRDQy1zICRCTi1tZ3cgJEJOLW1ndy1tdCAk Qk4tbWd3LW10LXMgXAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRCTi1tZ3ctcyAk Qk4tJENDLW10LSRCT09TVExJQl9NRFdfVkVSU0lPTiA7IGRvCisrCQkJCSAgICBhc19hY19MaWI9 YCRhc19lY2hvICJhY19jdl9saWJfJGF4X2xpYicnX21haW4iIHwgJGFzX3RyX3NoYAorK3sgJGFz X2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgbWFpbiBpbiAtbCRheF9saWIiID4m NQorKyRhc19lY2hvX24gImNoZWNraW5nIGZvciBtYWluIGluIC1sJGF4X2xpYi4uLiAiID4mNjsg fQorK2lmIHsgYXNfdmFyPSRhc19hY19MaWI7IGV2YWwgInRlc3QgXCJcJHskYXNfdmFyK3NldH1c IiA9IHNldCI7IH07IHRoZW4KKysgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2CisrZWxzZQor KyAgYWNfY2hlY2tfbGliX3NhdmVfTElCUz0kTElCUworK0xJQlM9Ii1sJGF4X2xpYiAgJExJQlMi CisrY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisrLyogY29uZmRlZnMuaC4gICovCisr X0FDRU9GCisrY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0CisrY2F0ID4+Y29uZnRl c3QuJGFjX2V4dCA8PF9BQ0VPRgorKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KKysKKysKKytpbnQK KyttYWluICgpCisreworK3JldHVybiBtYWluICgpOworKyAgOworKyAgcmV0dXJuIDA7CisrfQor K19BQ0VPRgorK3JtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QkYWNfZXhlZXh0Cisr aWYgeyAoYWNfdHJ5PSIkYWNfbGluayIKKytjYXNlICIoKCRhY190cnkiIGluCisrICAqXCIqIHwg KlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKKysgICopIGFjX3RyeV9lY2hvPSRh Y190cnk7OworK2VzYWMKKytldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFj X3RyeV9lY2hvXCIiCisrJGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4mNQorKyAgKGV2YWwgIiRh Y19saW5rIikgMj5jb25mdGVzdC5lcjEKKysgIGFjX3N0YXR1cz0kPworKyAgZ3JlcCAtdiAnXiAq KycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKKysgIHJtIC1mIGNvbmZ0ZXN0LmVyMQorKyAg Y2F0IGNvbmZ0ZXN0LmVyciA+JjUKKysgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0g JGFjX3N0YXR1cyIgPiY1CisrICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJiB7CisrCSB0ZXN0IC16 ICIkYWNfY3h4X3dlcnJvcl9mbGFnIiB8fAorKwkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgorKyAg ICAgICB9ICYmIHRlc3QgLXMgY29uZnRlc3QkYWNfZXhlZXh0ICYmIHsKKysJIHRlc3QgIiRjcm9z c19jb21waWxpbmciID0geWVzIHx8CisrCSAkYXNfdGVzdF94IGNvbmZ0ZXN0JGFjX2V4ZWV4dAor KyAgICAgICB9OyB0aGVuCisrICBldmFsICIkYXNfYWNfTGliPXllcyIKKytlbHNlCisrICAkYXNf ZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKKytzZWQgJ3MvXi98IC8nIGNv bmZ0ZXN0LiRhY19leHQgPiY1CisrCisrCWV2YWwgIiRhc19hY19MaWI9bm8iCisrZmkKKysKKyty bSAtcmYgY29uZnRlc3QuZFNZTQorK3JtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRh Y19vYmpleHQgY29uZnRlc3RfaXBhOF9jb25mdGVzdC5vbyBcCisrICAgICAgY29uZnRlc3QkYWNf ZXhlZXh0IGNvbmZ0ZXN0LiRhY19leHQKKytMSUJTPSRhY19jaGVja19saWJfc2F2ZV9MSUJTCisr ZmkKKythY19yZXM9YGV2YWwgJ2FzX3ZhbD0keyckYXNfYWNfTGliJ30KKysJCSAkYXNfZWNobyAi JGFzX3ZhbCInYAorKwkgICAgICAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDog JGFjX3JlcyIgPiY1CisrJGFzX2VjaG8gIiRhY19yZXMiID4mNjsgfQorK2FzX3ZhbD1gZXZhbCAn YXNfdmFsPSR7JyRhc19hY19MaWInfQorKwkJICRhc19lY2hvICIkYXNfdmFsIidgCisrICAgaWYg dGVzdCAieCRhc192YWwiID0geCIieWVzOyB0aGVuCisrICBCT09TVF9NUElfUFlUSE9OX0xJQj0i LWwkYXhfbGliIiAgbGlua19tcGlfcHl0aG9uPSJ5ZXMiIGJyZWFrCisrZWxzZQorKyAgbGlua19t cGlfcHl0aG9uPSJubyIKKytmaQorKworKyAgCQkJCWRvbmUKKysJCQkJaWYgdGVzdCAieCRsaW5r X21waV9weXRob24iID0gInhubyI7IHRoZW4KKysJCQkJCXsgJGFzX2VjaG8gIiRhc19tZTokTElO RU5POiBDb3VsZCBub3QgbGluayBhZ2FpbnN0ICRheF9saWIgISIgPiY1CisrJGFzX2VjaG8gIiRh c19tZTogQ291bGQgbm90IGxpbmsgYWdhaW5zdCAkYXhfbGliICEiID4mNjt9CisrCQkJCWVsc2UK KysJCQkJCUJPT1NUX01QSV9QWVRIT05fTElCPSIke0JPT1NUX01QSV9QWVRIT05fTElCfSAke0JP T1NUX1NFUklBTElaQVRJT05fTElCfSIKKysJCQkJCUJPT1NUX01QSV9QWVRIT05fTElCPSIke0JP T1NUX01QSV9QWVRIT05fTElCfSAke0JPT1NUX1BZVEhPTl9MSUJ9IgorKwkJCQkJQk9PU1RfTVBJ X1BZVEhPTl9MSUI9IiR7Qk9PU1RfTVBJX1BZVEhPTl9MSUJ9ICR7Qk9PU1RfTVBJX0xJQn0iCisr CQkJCQlCT09TVF9NUElfUFlUSE9OX0xJQj0iJHtCT09TVF9NUElfUFlUSE9OX0xJQn0gJHtNUElH RU5fTElCU30iCisrCQkJCWZpCisrCQkJZmkKKysKKysjCisrIyBFbmQgb2Ygc2VjdGlvbiBvbiBz dXBwb3J0IGZvciBNUEkKKysjCisrCQkJQ1BQRkxBR1M9IiR7Q1BQRkxBR1NfT1JJR30iCisrCQkJ TERGTEFHUz0iJHtMREZMQUdTX09SSUd9IgorKworKyMKKysjIEJvb3N0OjpVbml0VGVzdEZyYW1l d29yaworKyMKKysJCQl7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgd2hldGhl ciB0aGUgQm9vc3Q6OlVuaXRUZXN0RnJhbWV3b3JrIGxpYnJhcnkgaXMgYXZhaWxhYmxlIiA+JjUK KyskYXNfZWNob19uICJjaGVja2luZyB3aGV0aGVyIHRoZSBCb29zdDo6VW5pdFRlc3RGcmFtZXdv cmsgbGlicmFyeSBpcyBhdmFpbGFibGUuLi4gIiA+JjY7IH0KKytpZiB0ZXN0ICIke2F4X2N2X2Jv b3N0X3VuaXRfdGVzdF9mcmFtZXdvcmsrc2V0fSIgPSBzZXQ7IHRoZW4KKysgICRhc19lY2hvX24g IihjYWNoZWQpICIgPiY2CisrZWxzZQorKworKwkJCSBhY19leHQ9Y3BwCisrYWNfY3BwPSckQ1hY Q1BQICRDUFBGTEFHUycKKythY19jb21waWxlPSckQ1hYIC1jICRDWFhGTEFHUyAkQ1BQRkxBR1Mg Y29uZnRlc3QuJGFjX2V4dCA+JjUnCisrYWNfbGluaz0nJENYWCAtbyBjb25mdGVzdCRhY19leGVl eHQgJENYWEZMQUdTICRDUFBGTEFHUyAkTERGTEFHUyBjb25mdGVzdC4kYWNfZXh0ICRMSUJTID4m NScKKythY19jb21waWxlcl9nbnU9JGFjX2N2X2N4eF9jb21waWxlcl9nbnUKKysKKysJCQkgY2F0 ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisrLyogY29uZmRlZnMuaC4gICovCisrX0FDRU9G CisrY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0CisrY2F0ID4+Y29uZnRlc3QuJGFj X2V4dCA8PF9BQ0VPRgorKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KKysjaW5jbHVkZSA8Ym9vc3Qv dGVzdC91bml0X3Rlc3QuaHBwPgorK2ludAorK21haW4gKCkKKyt7CisrdXNpbmcgYm9vc3Q6OnVu aXRfdGVzdDo6dGVzdF9zdWl0ZTsKKysJCQkJCSAgICAgICAgICAgICAgICAgdGVzdF9zdWl0ZSog dGVzdD0gQk9PU1RfVEVTVF9TVUlURSggIlVuaXQgdGVzdCBleGFtcGxlIDEiICk7IHJldHVybiAw OworKyAgOworKyAgcmV0dXJuIDA7CisrfQorK19BQ0VPRgorK3JtIC1mIGNvbmZ0ZXN0LiRhY19v YmpleHQKKytpZiB7IChhY190cnk9IiRhY19jb21waWxlIgorK2Nhc2UgIigoJGFjX3RyeSIgaW4K KysgICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OworKyAgKikgYWNf dHJ5X2VjaG89JGFjX3RyeTs7CisrZXNhYworK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTok TElORU5POiAkYWNfdHJ5X2VjaG9cIiIKKyskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1Cisr ICAoZXZhbCAiJGFjX2NvbXBpbGUiKSAyPmNvbmZ0ZXN0LmVyMQorKyAgYWNfc3RhdHVzPSQ/Cisr ICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgorKyAgcm0gLWYgY29u ZnRlc3QuZXIxCisrICBjYXQgY29uZnRlc3QuZXJyID4mNQorKyAgJGFzX2VjaG8gIiRhc19tZTok TElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKysgIChleGl0ICRhY19zdGF0dXMpOyB9ICYm IHsKKysJIHRlc3QgLXogIiRhY19jeHhfd2Vycm9yX2ZsYWciIHx8CisrCSB0ZXN0ICEgLXMgY29u ZnRlc3QuZXJyCisrICAgICAgIH0gJiYgdGVzdCAtcyBjb25mdGVzdC4kYWNfb2JqZXh0OyB0aGVu CisrICBheF9jdl9ib29zdF91bml0X3Rlc3RfZnJhbWV3b3JrPXllcworK2Vsc2UKKysgICRhc19l Y2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQorK3NlZCAncy9eL3wgLycgY29u ZnRlc3QuJGFjX2V4dCA+JjUKKysKKysJYXhfY3ZfYm9vc3RfdW5pdF90ZXN0X2ZyYW1ld29yaz1u bworK2ZpCisrCisrcm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBj b25mdGVzdC4kYWNfZXh0CisrCQkJIGFjX2V4dD1jcHAKKythY19jcHA9JyRDWFhDUFAgJENQUEZM QUdTJworK2FjX2NvbXBpbGU9JyRDWFggLWMgJENYWEZMQUdTICRDUFBGTEFHUyBjb25mdGVzdC4k YWNfZXh0ID4mNScKKythY19saW5rPSckQ1hYIC1vIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAkQ1hYRkxB R1MgJENQUEZMQUdTICRMREZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgJExJQlMgPiY1JworK2FjX2Nv bXBpbGVyX2dudT0kYWNfY3ZfY3h4X2NvbXBpbGVyX2dudQorKworKworK2ZpCisreyAkYXNfZWNo byAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGF4X2N2X2Jvb3N0X3VuaXRfdGVzdF9mcmFtZXdv cmsiID4mNQorKyRhc19lY2hvICIkYXhfY3ZfYm9vc3RfdW5pdF90ZXN0X2ZyYW1ld29yayIgPiY2 OyB9CisrCQkJaWYgdGVzdCAieCRheF9jdl9ib29zdF91bml0X3Rlc3RfZnJhbWV3b3JrIiA9ICJ4 eWVzIjsgdGhlbgorKworK2NhdCA+PmNvbmZkZWZzLmggPDxcX0FDRU9GCisrI2RlZmluZSBIQVZF X0JPT1NUX1VOSVRfVEVTVF9GUkFNRVdPUksgLyoqLworK19BQ0VPRgorKworKwkJCUJOPWJvb3N0 X3VuaXRfdGVzdF9mcmFtZXdvcmsKKysgICAgCQlzYXZlZF9sZGZsYWdzPSIke0xERkxBR1N9Igor KwkJCWZvciBheF9saWIgaW4gJEJOICRCTi0kQ0MgJEJOLSRDQy1tdCAkQk4tJENDLW10LXMgJEJO LSRDQy1zIFwKKysgICAgICAgICAgICAgICAgICAgICAgICAgIGxpYiRCTiBsaWIkQk4tJENDIGxp YiRCTi0kQ0MtbXQgbGliJEJOLSRDQy1tdC1zIFwKKysgICAgICAgICAgICAgICAgICAgICAgICAg IGxpYiRCTi0kQ0MtcyAkQk4tbWd3ICRCTi1tZ3ctbXQgJEJOLW1ndy1tdC1zIFwKKysgICAgICAg ICAgICAgICAgICAgICAgICAgICRCTi1tZ3ctcyAkQk4tJENDLW10LSRCT09TVExJQl9NRFdfVkVS U0lPTiA7IGRvCisrICAgICAgICAgICAgICAgIExERkxBR1M9IiR7TERGTEFHU30gLWwkYXhfbGli IgorKyAgICAJCQl7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgdGhlIG5hbWUg b2YgdGhlIEJvb3N0OjpVbml0VGVzdEZyYW1ld29yayBsaWJyYXJ5IiA+JjUKKyskYXNfZWNob19u ICJjaGVja2luZyB0aGUgbmFtZSBvZiB0aGUgQm9vc3Q6OlVuaXRUZXN0RnJhbWV3b3JrIGxpYnJh cnkuLi4gIiA+JjY7IH0KKytpZiB0ZXN0ICIke2F4X2N2X2Jvb3N0X3VuaXRfdGVzdF9mcmFtZXdv cmsrc2V0fSIgPSBzZXQ7IHRoZW4KKysgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2CisrZWxz ZQorKworKwkJCSBhY19leHQ9Y3BwCisrYWNfY3BwPSckQ1hYQ1BQICRDUFBGTEFHUycKKythY19j b21waWxlPSckQ1hYIC1jICRDWFhGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUn CisrYWNfbGluaz0nJENYWCAtbyBjb25mdGVzdCRhY19leGVleHQgJENYWEZMQUdTICRDUFBGTEFH UyAkTERGTEFHUyBjb25mdGVzdC4kYWNfZXh0ICRMSUJTID4mNScKKythY19jb21waWxlcl9nbnU9 JGFjX2N2X2N4eF9jb21waWxlcl9nbnUKKysKKysgICAgICAgICAgICAgICBjYXQgPmNvbmZ0ZXN0 LiRhY19leHQgPDxfQUNFT0YKKysvKiBjb25mZGVmcy5oLiAgKi8KKytfQUNFT0YKKytjYXQgY29u ZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKKytjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FD RU9GCisrLyogZW5kIGNvbmZkZWZzLmguICAqLworKyNpbmNsdWRlIDxib29zdC90ZXN0L3VuaXRf dGVzdC5ocHA+CisraW50CisrbWFpbiAoKQorK3sKKyt1c2luZyBib29zdDo6dW5pdF90ZXN0Ojp0 ZXN0X3N1aXRlOworKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X3N1aXRlKiB0 ZXN0PSBCT09TVF9URVNUX1NVSVRFKCAiVW5pdCB0ZXN0IGV4YW1wbGUgMSIgKTsgcmV0dXJuIDA7 CisrICA7CisrICByZXR1cm4gMDsKKyt9CisrX0FDRU9GCisrcm0gLWYgY29uZnRlc3QuJGFjX29i amV4dCBjb25mdGVzdCRhY19leGVleHQKKytpZiB7IChhY190cnk9IiRhY19saW5rIgorK2Nhc2Ug IigoJGFjX3RyeSIgaW4KKysgICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190 cnk7OworKyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7CisrZXNhYworK2V2YWwgYWNfdHJ5X2Vj aG89IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIKKyskYXNfZWNobyAiJGFjX3Ry eV9lY2hvIikgPiY1CisrICAoZXZhbCAiJGFjX2xpbmsiKSAyPmNvbmZ0ZXN0LmVyMQorKyAgYWNf c3RhdHVzPSQ/CisrICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgor KyAgcm0gLWYgY29uZnRlc3QuZXIxCisrICBjYXQgY29uZnRlc3QuZXJyID4mNQorKyAgJGFzX2Vj aG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKysgIChleGl0ICRhY19z dGF0dXMpOyB9ICYmIHsKKysJIHRlc3QgLXogIiRhY19jeHhfd2Vycm9yX2ZsYWciIHx8CisrCSB0 ZXN0ICEgLXMgY29uZnRlc3QuZXJyCisrICAgICAgIH0gJiYgdGVzdCAtcyBjb25mdGVzdCRhY19l eGVleHQgJiYgeworKwkgdGVzdCAiJGNyb3NzX2NvbXBpbGluZyIgPSB5ZXMgfHwKKysJICRhc190 ZXN0X3ggY29uZnRlc3QkYWNfZXhlZXh0CisrICAgICAgIH07IHRoZW4KKysgIGxpbmtfdGhyZWFk PSJ5ZXMiCisrZWxzZQorKyAgJGFzX2VjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIg PiY1Cisrc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQorKworKwlsaW5rX3RocmVh ZD0ibm8iCisrZmkKKysKKytybSAtcmYgY29uZnRlc3QuZFNZTQorK3JtIC1mIGNvcmUgY29uZnRl c3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3RfaXBhOF9jb25mdGVzdC5vbyBcCisr ICAgICAgY29uZnRlc3QkYWNfZXhlZXh0IGNvbmZ0ZXN0LiRhY19leHQKKysKKysJCQkgYWNfZXh0 PWNwcAorK2FjX2NwcD0nJENYWENQUCAkQ1BQRkxBR1MnCisrYWNfY29tcGlsZT0nJENYWCAtYyAk Q1hYRkxBR1MgJENQUEZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgPiY1JworK2FjX2xpbms9JyRDWFgg LW8gY29uZnRlc3QkYWNfZXhlZXh0ICRDWFhGTEFHUyAkQ1BQRkxBR1MgJExERkxBR1MgY29uZnRl c3QuJGFjX2V4dCAkTElCUyA+JjUnCisrYWNfY29tcGlsZXJfZ251PSRhY19jdl9jeHhfY29tcGls ZXJfZ251CisrCisrCisrZmkKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAk YXhfY3ZfYm9vc3RfdW5pdF90ZXN0X2ZyYW1ld29yayIgPiY1CisrJGFzX2VjaG8gIiRheF9jdl9i b29zdF91bml0X3Rlc3RfZnJhbWV3b3JrIiA+JjY7IH0KKysgICAgICAgICAgICAgICAgTERGTEFH Uz0iJHtzYXZlZF9sZGZsYWdzfSIKKysJCQkgICAgaWYgdGVzdCAieCRsaW5rX3RocmVhZCIgPSAi eHllcyI7IHRoZW4KKysgICAgICAgICAgICAgICAgICAgIEJPT1NUX1VOSVRfVEVTVF9GUkFNRVdP UktfTElCPSItbCRheF9saWIiCisrCisrCQkJCQlicmVhaworKwkJCQlmaQorKyAgICAgICAgICAg ICAgZG9uZQorKwkJCSAgICBpZiB0ZXN0ICJ4JGxpbmtfdGhyZWFkIiA9ICJ4bm8iOyB0aGVuCisr CQkJCSAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBDb3VsZCBub3QgbGluayBhZ2FpbnN0 ICRheF9saWIgISIgPiY1CisrJGFzX2VjaG8gIiRhc19tZTogQ291bGQgbm90IGxpbmsgYWdhaW5z dCAkYXhfbGliICEiID4mNjt9CisrCQkJCWZpCisrCQkJZmkKKysKKysKKysJCWZpCisrICAgICAg ICBDUFBGTEFHUz0iJENQUEZMQUdTX1NBVkVEIgorKyAgICAgICAgTERGTEFHUz0iJExERkxBR1Nf U0FWRUQiCisrCisrCWZpCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrIyAtLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQorKyMgU3VwcG9ydCBmb3IgTXlTUUwgYmFja2VuZCAoQyBjbGllbnQgQVBJKTogaHR0cDovL3d3 dy5teXNxbC5vcmcKKysjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrIyBDaGVjayB3aGV0aGVyIC0tZW5hYmxlLWJh Y2tlbmQtbXlzcWwgd2FzIGdpdmVuLgorK2lmIHRlc3QgIiR7ZW5hYmxlX2JhY2tlbmRfbXlzcWwr c2V0fSIgPSBzZXQ7IHRoZW4KKysgIGVuYWJsZXZhbD0kZW5hYmxlX2JhY2tlbmRfbXlzcWw7ICBp ZiB0ZXN0ICIkZW5hYmxldmFsIiA9IG5vOyB0aGVuCisrICAgICAgCSBlbmFibGVfYmFja2VuZF9t eXNxbD1ubworKyAgICAgIGVsc2UKKysJIGVuYWJsZV9iYWNrZW5kX215c3FsPXllcworKyAgICAg IGZpCisrZWxzZQorKyAgIGVuYWJsZV9iYWNrZW5kX215c3FsPW5vCisrCisrZmkKKysKKysKKytp ZiB0ZXN0ICJ4JGVuYWJsZV9iYWNrZW5kX215c3FsIiA9ICJ4eWVzIjsgdGhlbgorKyAgIE1ZU1FM X0RJUlM9Im15c3FsIgorKyMgICBNWVNRTF9SRVFfVkVSU0lPTj0iMy4wLjAiCisrCisrCSMKKysJ IyBTZXQgdXAgY29uZmlndXJlIHNjcmlwdCBtYWNyb3MKKysJIworKworKyMgQ2hlY2sgd2hldGhl ciAtLXdpdGgtbXlzcWwgd2FzIGdpdmVuLgorK2lmIHRlc3QgIiR7d2l0aF9teXNxbCtzZXR9IiA9 IHNldDsgdGhlbgorKyAgd2l0aHZhbD0kd2l0aF9teXNxbDsgTVlTUUxfbGliX2NoZWNrPSIkd2l0 aF9teXNxbC9saWI2NC9teXNxbCAkd2l0aF9teXNxbC9saWIvbXlzcWwgJHdpdGhfbXlzcWwvbGli NjQgJHdpdGhfbXlzcWwvbGliIgorKwkJTVlTUUxfaW5jX2NoZWNrPSIkd2l0aF9teXNxbC9pbmNs dWRlICR3aXRoX215c3FsL2luY2x1ZGUvbXlzcWwiCisrCQlNWVNRTF9iaW5fY2hlY2s9IiR3aXRo X215c3FsL2JpbiIKKytlbHNlCisrICBNWVNRTF9saWJfY2hlY2s9Ii91c3IvbGliNjQgL3Vzci9s aWIgL3Vzci9saWI2NC9teXNxbCAvdXNyL2xpYi9teXNxbCAvdXNyL2xvY2FsL2xpYjY0IC91c3Iv bG9jYWwvbGliIC91c3IvbG9jYWwvbGliL215c3FsIC91c3IvbG9jYWwvbXlzcWwvbGliIC91c3Iv bG9jYWwvbXlzcWwvbGliL215c3FsIC9vcHQvbXlzcWwvbGliIC9vcHQvbXlzcWwvbGliL215c3Fs IgorKwkJTVlTUUxfaW5jX2NoZWNrPSIvdXNyL2luY2x1ZGUvbXlzcWwgL3Vzci9sb2NhbC9pbmNs dWRlL215c3FsIC91c3IvbG9jYWwvbXlzcWwvaW5jbHVkZSAvdXNyL2xvY2FsL215c3FsL2luY2x1 ZGUvbXlzcWwgL29wdC9teXNxbC9pbmNsdWRlL215c3FsIgorKwkJTVlTUUxfYmluX2NoZWNrPSIv dXNyL2JpbiAvdXNyL2xvY2FsL2JpbiAvdXNyL2xvY2FsL215c3FsL2JpbiIKKytmaQorKworKwor KworKyMgQ2hlY2sgd2hldGhlciAtLXdpdGgtbXlzcWwtbGliIHdhcyBnaXZlbi4KKytpZiB0ZXN0 ICIke3dpdGhfbXlzcWxfbGliK3NldH0iID0gc2V0OyB0aGVuCisrICB3aXRodmFsPSR3aXRoX215 c3FsX2xpYjsgTVlTUUxfbGliX2NoZWNrPSIkd2l0aF9teXNxbF9saWIgJHdpdGhfbXlzcWxfbGli L2xpYjY0ICR3aXRoX215c3FsX2xpYi9saWIgJHdpdGhfbXlzcWxfbGliL2xpYjY0L215c3FsICR3 aXRoX215c3FsX2xpYi9saWIvbXlzcWwiCisrZmkKKysKKysKKysKKysjIENoZWNrIHdoZXRoZXIg LS13aXRoLW15c3FsLWluY2x1ZGUgd2FzIGdpdmVuLgorK2lmIHRlc3QgIiR7d2l0aF9teXNxbF9p bmNsdWRlK3NldH0iID0gc2V0OyB0aGVuCisrICB3aXRodmFsPSR3aXRoX215c3FsX2luY2x1ZGU7 IE1ZU1FMX2luY19jaGVjaz0iJHdpdGhfbXlzcWxfaW5jbHVkZSAkd2l0aF9teXNxbF9pbmNsdWRl L2luY2x1ZGUgJHdpdGhfbXlzcWxfaW5jbHVkZS9pbmNsdWRlL215c3FsIgorK2ZpCisrCisrCisr CisrICAgICMKKysJIyBMb29rIGZvciBNeVNRTCBDb25maWd1cmF0aW9uIFNjcmlwdAorKwkjCisr CXsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgTXlTUUwgY29uZmlndXJh dGlvbiBzY3JpcHQiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIGZvciBNeVNRTCBjb25maWd1 cmF0aW9uIHNjcmlwdC4uLiAiID4mNjsgfQorKwlNWVNRTF9DT05GSUc9CisrCU1ZU1FMX2JpbmRp cj0KKysJZm9yIG0gaW4gJE1ZU1FMX2Jpbl9jaGVjaworKwkJZG8KKysJCQlpZiB0ZXN0IC1kICIk bSIgJiYgdGVzdCAtZiAiJG0vbXlzcWxfY29uZmlnIgorKwkJCXRoZW4KKysJCQkJTVlTUUxfQ09O RklHPSRtL215c3FsX2NvbmZpZworKwkJCQlNWVNRTF9iaW5kaXI9JG0KKysJCQlicmVhaworKwkJ ZmkKKysJZG9uZQorKworKwlpZiB0ZXN0IC16ICIkTVlTUUxfYmluZGlyIgorKwl0aGVuCisrCQl7 IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogRGlkbid0IGZpbmQgJE1ZU1FMX0NP TkZJRyBiaW5hcnkgaW4gJyRNWVNRTF9iaW5fY2hlY2snIiA+JjUKKyskYXNfZWNobyAiJGFzX21l OiBlcnJvcjogRGlkbid0IGZpbmQgJE1ZU1FMX0NPTkZJRyBiaW5hcnkgaW4gJyRNWVNRTF9iaW5f Y2hlY2snIiA+JjI7fQorKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQorKwlmaQorKworKwlj YXNlICIkTVlTUUxfYmluZGlyIiBpbgorKwkJLyogKSA7OworKwkJKiApICB7IHsgJGFzX2VjaG8g IiRhc19tZTokTElORU5POiBlcnJvcjogVGhlIE15U1FMIGJpbmFyeSBkaXJlY3RvcnkgKCRNWVNR TF9iaW5kaXIpIG11c3QgYmUgYW4gYWJzb2x1dGUgcGF0aC4iID4mNQorKyRhc19lY2hvICIkYXNf bWU6IGVycm9yOiBUaGUgTXlTUUwgYmluYXJ5IGRpcmVjdG9yeSAoJE1ZU1FMX2JpbmRpcikgbXVz dCBiZSBhbiBhYnNvbHV0ZSBwYXRoLiIgPiYyO30KKysgICB7IChleGl0IDEpOyBleGl0IDE7IH07 IH0gOzsKKysJZXNhYworKworKwl7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAk TVlTUUxfQ09ORklHIiA+JjUKKyskYXNfZWNobyAiJE1ZU1FMX0NPTkZJRyIgPiY2OyB9CisrCisr IwlBQ19QQVRIX1BST0coTVlTUUxfQ09ORklHLCBteXNxbF9jb25maWcsICRNWVNRTF9iaW5kaXIp CisrCisrCSMKKysJIyBEZWNpZGUgd2hpY2ggQyBBUEkgbGlicmFyeSB0byB1c2UsIGJhc2VkIG9u IHRocmVhZCBzdXBwb3J0CisrCSMKKysJaWYgdGVzdCAieCRhY3hfcHRocmVhZF9vayIgPSB4eWVz CisrCXRoZW4KKysJCU1ZU1FMX0NfTElCPW15c3FsY2xpZW50X3IKKysJCU1ZU1FMX0xJQl9PUFRJ T049bGlic19yCisrCWVsc2UKKysJCU1ZU1FMX0NfTElCPW15c3FsY2xpZW50CisrCQlNWVNRTF9M SUJfT1BUSU9OPWxpYnMKKysJZmkKKysKKysJaWYgdGVzdCAieCR7TVlTUUxfQ09ORklHfTEiID0g IngxIgorKwl0aGVuCisrCQlNWVNRTF9WRVJTSU9OPWAke01ZU1FMX0NPTkZJR30gLS12ZXJzaW9u YAorKwkJTVlTUUxfQ0ZMQUdTPWAke01ZU1FMX0NPTkZJR30gLS1jZmxhZ3NgCisrCQlNWVNRTF9M SUJTPWAke01ZU1FMX0NPTkZJR30gLS0ke01ZU1FMX0xJQl9PUFRJT059YAorKwllbHNlCisrCQkj CisrCQkjIExvb2sgZm9yIE15U1FMIEMgQVBJIGxpYnJhcnkKKysJCSMKKysJCXsgJGFzX2VjaG8g IiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgTXlTUUwgbGlicmFyeSBkaXJlY3RvcnkiID4m NQorKyRhc19lY2hvX24gImNoZWNraW5nIGZvciBNeVNRTCBsaWJyYXJ5IGRpcmVjdG9yeS4uLiAi ID4mNjsgfQorKwkJTVlTUUxfbGliZGlyPQorKwkJZm9yIG0gaW4gJE1ZU1FMX2xpYl9jaGVjawor KwkJZG8KKysJCQlpZiB0ZXN0IC1kICIkbSIgJiYgXAorKwkJCQkodGVzdCAtZiAiJG0vbGliJE1Z U1FMX0NfTElCLnNvIiBcCisrCQkJCXx8IHRlc3QgLWYgIiRtL2xpYiRNWVNRTF9DX0xJQi5hIikK KysJCQl0aGVuCisrCQkJCU1ZU1FMX2xpYmRpcj0kbQorKwkJCQlicmVhaworKwkJCWZpCisrCQlk b25lCisrCisrCQlpZiB0ZXN0IC16ICIkTVlTUUxfbGliZGlyIgorKwkJdGhlbgorKwkJCXsgeyAk YXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBEaWRuJ3QgZmluZCAkTVlTUUxfQ19MSUIg bGlicmFyeSBpbiAnJE1ZU1FMX2xpYl9jaGVjayciID4mNQorKyRhc19lY2hvICIkYXNfbWU6IGVy cm9yOiBEaWRuJ3QgZmluZCAkTVlTUUxfQ19MSUIgbGlicmFyeSBpbiAnJE1ZU1FMX2xpYl9jaGVj ayciID4mMjt9CisrICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9CisrCQlmaQorKworKwkJY2Fz ZSAiJE1ZU1FMX2xpYmRpciIgaW4KKysJCQkvKiApIDs7CisrCQkJKiApICB7IHsgJGFzX2VjaG8g IiRhc19tZTokTElORU5POiBlcnJvcjogVGhlIE15U1FMIGxpYnJhcnkgZGlyZWN0b3J5ICgkTVlT UUxfbGliZGlyKSBtdXN0IGJlIGFuIGFic29sdXRlIHBhdGguIiA+JjUKKyskYXNfZWNobyAiJGFz X21lOiBlcnJvcjogVGhlIE15U1FMIGxpYnJhcnkgZGlyZWN0b3J5ICgkTVlTUUxfbGliZGlyKSBt dXN0IGJlIGFuIGFic29sdXRlIHBhdGguIiA+JjI7fQorKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsg fTsgfSA7OworKwkJZXNhYworKworKwkJeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3Vs dDogJE1ZU1FMX2xpYmRpciIgPiY1CisrJGFzX2VjaG8gIiRNWVNRTF9saWJkaXIiID4mNjsgfQor KworKyMJCWNhc2UgIiRNWVNRTF9saWJkaXIiIGluCisrIwkJICAvdXNyL2xpYikgOzsKKysjCQkg ICopIExERkxBR1M9IiRMREZMQUdTIC1MJHtNWVNRTF9saWJkaXJ9IiA7OworKyMJCWVzYWMKKysK KysJCSMKKysJCSMgTG9vayBmb3IgTXlTUUwgQyBBUEkgaGVhZGVycworKwkJIworKwkJeyAkYXNf ZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciBNeVNRTCBpbmNsdWRlIGRpcmVjdG9y eSIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yIE15U1FMIGluY2x1ZGUgZGlyZWN0b3J5 Li4uICIgPiY2OyB9CisrCQlNWVNRTF9pbmNkaXI9CisrCQlmb3IgbSBpbiAkTVlTUUxfaW5jX2No ZWNrCisrCQlkbworKwkJCWlmIHRlc3QgLWQgIiRtIiAmJiB0ZXN0IC1mICIkbS9teXNxbC5oIgor KwkJCXRoZW4KKysJCQkJTVlTUUxfaW5jZGlyPSRtCisrCQkJCWJyZWFrCisrCQkJZmkKKysJCWRv bmUKKysKKysJCWlmIHRlc3QgLXogIiRNWVNRTF9pbmNkaXIiCisrCQl0aGVuCisrCQkJeyB7ICRh c19lY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IERpZG4ndCBmaW5kIHRoZSBNeVNRTCBpbmNs dWRlIGRpciBpbiAnJE1ZU1FMX2luY19jaGVjayciID4mNQorKyRhc19lY2hvICIkYXNfbWU6IGVy cm9yOiBEaWRuJ3QgZmluZCB0aGUgTXlTUUwgaW5jbHVkZSBkaXIgaW4gJyRNWVNRTF9pbmNfY2hl Y2snIiA+JjI7fQorKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQorKwkJZmkKKysKKysJCWNh c2UgIiRNWVNRTF9pbmNkaXIiIGluCisrCQkJIC8qICkgOzsKKysJCQkgKiApICB7IHsgJGFzX2Vj aG8gIiRhc19tZTokTElORU5POiBlcnJvcjogVGhlIE15U1FMIGluY2x1ZGUgZGlyZWN0b3J5ICgk TVlTUUxfaW5jZGlyKSBtdXN0IGJlIGFuIGFic29sdXRlIHBhdGguIiA+JjUKKyskYXNfZWNobyAi JGFzX21lOiBlcnJvcjogVGhlIE15U1FMIGluY2x1ZGUgZGlyZWN0b3J5ICgkTVlTUUxfaW5jZGly KSBtdXN0IGJlIGFuIGFic29sdXRlIHBhdGguIiA+JjI7fQorKyAgIHsgKGV4aXQgMSk7IGV4aXQg MTsgfTsgfSA7OworKwkJZXNhYworKworKwkJeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJl c3VsdDogJE1ZU1FMX2luY2RpciIgPiY1CisrJGFzX2VjaG8gIiRNWVNRTF9pbmNkaXIiID4mNjsg fQorKworKwkJTVlTUUxfVkVSU0lPTj1gZ3JlcCAiZGVmaW5lIE1ZU1FMX1NFUlZFUl9WRVJTSU9O IiAkTVlTUUxfaW5jZGlyL215c3FsX3ZlcnNpb24uaCB8IGN1dCAtZFwiIC1mMmAKKysJCU1ZU1FM X0NGTEFHUz0iLUkke01ZU1FMX2luY2Rpcn0iCisrCQlNWVNRTF9MSUJTPSItTCR7TVlTUUxfbGli ZGlyfSAtbCR7TVlTUUxfQ19MSUJ9IgorKwlmaQorKworKworKworKworKworKwlzYXZlX0xJQlM9 IiRMSUJTIgorKwlMSUJTPSIkTElCUyAkTVlTUUxfTElCUyIKKysKKythc19hY19MaWI9YCRhc19l Y2hvICJhY19jdl9saWJfJE1ZU1FMX0NfTElCJydfbXlzcWxfc3RvcmVfcmVzdWx0IiB8ICRhc190 cl9zaGAKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIG15c3FsX3N0 b3JlX3Jlc3VsdCBpbiAtbCRNWVNRTF9DX0xJQiIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcg Zm9yIG15c3FsX3N0b3JlX3Jlc3VsdCBpbiAtbCRNWVNRTF9DX0xJQi4uLiAiID4mNjsgfQorK2lm IHsgYXNfdmFyPSRhc19hY19MaWI7IGV2YWwgInRlc3QgXCJcJHskYXNfdmFyK3NldH1cIiA9IHNl dCI7IH07IHRoZW4KKysgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2CisrZWxzZQorKyAgYWNf Y2hlY2tfbGliX3NhdmVfTElCUz0kTElCUworK0xJQlM9Ii1sJE1ZU1FMX0NfTElCICAkTElCUyIK KytjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKysvKiBjb25mZGVmcy5oLiAgKi8KKytf QUNFT0YKKytjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKKytjYXQgPj5jb25mdGVz dC4kYWNfZXh0IDw8X0FDRU9GCisrLyogZW5kIGNvbmZkZWZzLmguICAqLworKworKy8qIE92ZXJy aWRlIGFueSBHQ0MgaW50ZXJuYWwgcHJvdG90eXBlIHRvIGF2b2lkIGFuIGVycm9yLgorKyAgIFVz ZSBjaGFyIGJlY2F1c2UgaW50IG1pZ2h0IG1hdGNoIHRoZSByZXR1cm4gdHlwZSBvZiBhIEdDQwor KyAgIGJ1aWx0aW4gYW5kIHRoZW4gaXRzIGFyZ3VtZW50IHByb3RvdHlwZSB3b3VsZCBzdGlsbCBh cHBseS4gICovCisrI2lmZGVmIF9fY3BsdXNwbHVzCisrZXh0ZXJuICJDIgorKyNlbmRpZgorK2No YXIgbXlzcWxfc3RvcmVfcmVzdWx0ICgpOworK2ludAorK21haW4gKCkKKyt7CisrcmV0dXJuIG15 c3FsX3N0b3JlX3Jlc3VsdCAoKTsKKysgIDsKKysgIHJldHVybiAwOworK30KKytfQUNFT0YKKyty bSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0JGFjX2V4ZWV4dAorK2lmIHsgKGFjX3Ry eT0iJGFjX2xpbmsiCisrY2FzZSAiKCgkYWNfdHJ5IiBpbgorKyAgKlwiKiB8ICpcYCogfCAqXFwq KSBhY190cnlfZWNobz1cJGFjX3RyeTs7CisrICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKKytl c2FjCisrZXZhbCBhY190cnlfZWNobz0iXCJcJGFzX21lOiRMSU5FTk86ICRhY190cnlfZWNob1wi IgorKyRhc19lY2hvICIkYWNfdHJ5X2VjaG8iKSA+JjUKKysgIChldmFsICIkYWNfbGluayIpIDI+ Y29uZnRlc3QuZXIxCisrICBhY19zdGF0dXM9JD8KKysgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0 LmVyMSA+Y29uZnRlc3QuZXJyCisrICBybSAtZiBjb25mdGVzdC5lcjEKKysgIGNhdCBjb25mdGVz dC5lcnIgPiY1CisrICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMi ID4mNQorKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYgeworKwkgdGVzdCAteiAiJGFjX2N4eF93 ZXJyb3JfZmxhZyIgfHwKKysJIHRlc3QgISAtcyBjb25mdGVzdC5lcnIKKysgICAgICAgfSAmJiB0 ZXN0IC1zIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAmJiB7CisrCSB0ZXN0ICIkY3Jvc3NfY29tcGlsaW5n IiA9IHllcyB8fAorKwkgJGFzX3Rlc3RfeCBjb25mdGVzdCRhY19leGVleHQKKysgICAgICAgfTsg dGhlbgorKyAgZXZhbCAiJGFzX2FjX0xpYj15ZXMiCisrZWxzZQorKyAgJGFzX2VjaG8gIiRhc19t ZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Cisrc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNf ZXh0ID4mNQorKworKwlldmFsICIkYXNfYWNfTGliPW5vIgorK2ZpCisrCisrcm0gLXJmIGNvbmZ0 ZXN0LmRTWU0KKytybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNv bmZ0ZXN0X2lwYThfY29uZnRlc3Qub28gXAorKyAgICAgIGNvbmZ0ZXN0JGFjX2V4ZWV4dCBjb25m dGVzdC4kYWNfZXh0CisrTElCUz0kYWNfY2hlY2tfbGliX3NhdmVfTElCUworK2ZpCisrYWNfcmVz PWBldmFsICdhc192YWw9JHsnJGFzX2FjX0xpYid9CisrCQkgJGFzX2VjaG8gIiRhc192YWwiJ2AK KysJICAgICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19yZXMiID4m NQorKyRhc19lY2hvICIkYWNfcmVzIiA+JjY7IH0KKythc192YWw9YGV2YWwgJ2FzX3ZhbD0keyck YXNfYWNfTGliJ30KKysJCSAkYXNfZWNobyAiJGFzX3ZhbCInYAorKyAgIGlmIHRlc3QgIngkYXNf dmFsIiA9IHgiInllczsgdGhlbgorKyAgY2F0ID4+Y29uZmRlZnMuaCA8PF9BQ0VPRgorKyNkZWZp bmUgYCRhc19lY2hvICJIQVZFX0xJQiRNWVNRTF9DX0xJQiIgfCAkYXNfdHJfY3BwYCAxCisrX0FD RU9GCisrCisrICBMSUJTPSItbCRNWVNRTF9DX0xJQiAkTElCUyIKKysKKytlbHNlCisrICB7IHsg JGFzX2VjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogQ291bGQgbm90IGZpbmQgd29ya2luZyBN eVNRTCBjbGllbnQgbGlicmFyeSEiID4mNQorKyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBDb3Vs ZCBub3QgZmluZCB3b3JraW5nIE15U1FMIGNsaWVudCBsaWJyYXJ5ISIgPiYyO30KKysgICB7IChl eGl0IDEpOyBleGl0IDE7IH07IH0KKysKKytmaQorKworKworKwlMSUJTPSIkc2F2ZV9MSUJTIgor KworK2ZpCisrIGlmIHRlc3QgIngkZW5hYmxlX2JhY2tlbmRfbXlzcWwiID0geHllczsgdGhlbgor KyAgSEFWRV9NWVNRTF9UUlVFPQorKyAgSEFWRV9NWVNRTF9GQUxTRT0nIycKKytlbHNlCisrICBI QVZFX01ZU1FMX1RSVUU9JyMnCisrICBIQVZFX01ZU1FMX0ZBTFNFPQorK2ZpCisrCisrI01ZU1FM X0RJUlM9Im15c3FsIgorKworKworKworKworKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKyMgU3VwcG9ydCBmb3Ig T3JhY2xlIGJhY2tlbmQKKysjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKysjIENoZWNrIHdoZXRoZXIgLS1lbmFibGUt YmFja2VuZC1vcmFjbGUgd2FzIGdpdmVuLgorK2lmIHRlc3QgIiR7ZW5hYmxlX2JhY2tlbmRfb3Jh Y2xlK3NldH0iID0gc2V0OyB0aGVuCisrICBlbmFibGV2YWw9JGVuYWJsZV9iYWNrZW5kX29yYWNs ZTsgIGlmIHRlc3QgIiRlbmFibGV2YWwiID0gbm87IHRoZW4KKysgICAgICAJIGVuYWJsZV9iYWNr ZW5kX29yYWNsZT1ubworKyAgICAgIGVsc2UKKysJIGVuYWJsZV9iYWNrZW5kX29yYWNsZT15ZXMK KysgICAgICBmaQorK2Vsc2UKKysgICBlbmFibGVfYmFja2VuZF9vcmFjbGU9bm8KKysKKytmaQor KworKworK2lmIHRlc3QgIngkZW5hYmxlX2JhY2tlbmRfb3JhY2xlIiA9ICJ4eWVzIjsgdGhlbgor KyAgIE9SQUNMRV9ESVJTPSJvcmFjbGUiCisrICAgT1JBQ0xFX09DSV9SRVFfVkVSU0lPTj0iOS4w IgorKworKworKworKyMgQ2hlY2sgd2hldGhlciAtLXdpdGgtb3JhY2xlIHdhcyBnaXZlbi4KKytp ZiB0ZXN0ICIke3dpdGhfb3JhY2xlK3NldH0iID0gc2V0OyB0aGVuCisrICB3aXRodmFsPSR3aXRo X29yYWNsZTsKKysgICAgICAgIGlmIHRlc3QgIiR3aXRodmFsIiA9ICJ5ZXMiOyB0aGVuCisrICAg ICAgICAgICAgaWYgdGVzdCAtbiAiJE9SQUNMRV9IT01FIjsgdGhlbgorKyAgICAgICAgICAgICAg ICBvcmFjbGVfaG9tZV9kaXI9IiRPUkFDTEVfSE9NRSIKKysgICAgICAgICAgICBlbHNlCisrICAg ICAgICAgICAgICAgIG9yYWNsZV9ob21lX2Rpcj0iIgorKyAgICAgICAgICAgIGZpCisrICAgICAg ICBmaQorKworK2Vsc2UKKysKKysgICAgICAgIGlmIHRlc3QgLW4gIiRPUkFDTEVfSE9NRSI7IHRo ZW4KKysgICAgICAgICAgICBvcmFjbGVfaG9tZV9kaXI9IiRPUkFDTEVfSE9NRSIKKysgICAgICAg IGVsc2UKKysgICAgICAgICAgICBvcmFjbGVfaG9tZV9kaXI9IiIKKysgICAgICAgIGZpCisrCisr CisrZmkKKysKKysKKysKKysjIENoZWNrIHdoZXRoZXIgLS13aXRoLW9yYWNsZS1pbmNsdWRlIHdh cyBnaXZlbi4KKytpZiB0ZXN0ICIke3dpdGhfb3JhY2xlX2luY2x1ZGUrc2V0fSIgPSBzZXQ7IHRo ZW4KKysgIHdpdGh2YWw9JHdpdGhfb3JhY2xlX2luY2x1ZGU7IG9yYWNsZV9ob21lX2luY2x1ZGVf ZGlyPSIkd2l0aHZhbCIKKytlbHNlCisrICBvcmFjbGVfaG9tZV9pbmNsdWRlX2Rpcj0iIgorKwor K2ZpCisrCisrCisrIyBDaGVjayB3aGV0aGVyIC0td2l0aC1vcmFjbGUtbGliIHdhcyBnaXZlbi4K KytpZiB0ZXN0ICIke3dpdGhfb3JhY2xlX2xpYitzZXR9IiA9IHNldDsgdGhlbgorKyAgd2l0aHZh bD0kd2l0aF9vcmFjbGVfbGliOyBvcmFjbGVfaG9tZV9saWJfZGlyPSIkd2l0aHZhbCIKKytlbHNl CisrICBvcmFjbGVfaG9tZV9saWJfZGlyPSIiCisrCisrZmkKKysKKysKKysgICAgT1JBQ0xFX09D SV9DRkxBR1M9IiIKKysgICAgT1JBQ0xFX09DSV9MREZMQUdTPSIiCisrICAgIE9SQUNMRV9PQ0lf VkVSU0lPTj0iIgorKworKyAgICAgICAgICAgICAgICB3YW50X29yYWNsZV9idXRfbm9fcGF0aD0i bm8iCisrCisrICAgIGlmIHRlc3QgLW4gIiRvcmFjbGVfaG9tZV9kaXIiOyB0aGVuCisrCisrICAg ICAgICBpZiB0ZXN0ICIkb3JhY2xlX2hvbWVfZGlyIiAhPSAibm8iIC1hICIkb3JhY2xlX2hvbWVf ZGlyIiAhPSAieWVzIjsgdGhlbgorKworKyAgICAgICAgICAgICAgICAgICAgICAgIG9yYWNsZV9p bmNsdWRlX2Rpcj0iJG9yYWNsZV9ob21lX2Rpci9yZGJtcy9wdWJsaWMiCisrCisrICAgICAgICAg ICAgICAgICAgICAgICAgb3JhY2xlX2luY2x1ZGVfZGlyMj0iJG9yYWNsZV9ob21lX2Rpci9yZGJt cy9kZW1vIgorKworKyAgICAgICAgICAgICAgICAgICAgICAgIG9yYWNsZV9saWJfZGlyPSIkb3Jh Y2xlX2hvbWVfZGlyL2xpYiIKKysgICAgICAgIGVsaWYgdGVzdCAiJG9yYWNsZV9ob21lX2RpciIg PSAieWVzIjsgdGhlbgorKyAgICAgICAgICAgIHdhbnRfb3JhY2xlX2J1dF9ub19wYXRoPSJ5ZXMi CisrICAgICAgICBmaQorKworKyAgICBlbGlmIHRlc3QgLW4gIiRvcmFjbGVfaG9tZV9pbmNsdWRl X2RpciIgLW8gLW4gIiRvcmFjbGVfaG9tZV9saWJfZGlyIjsgdGhlbgorKworKyAgICAgICAgaWYg dGVzdCAiJG9yYWNsZV9ob21lX2luY2x1ZGVfZGlyIiAhPSAibm8iIC1hICIkb3JhY2xlX2hvbWVf aW5jbHVkZV9kaXIiICE9ICJ5ZXMiOyB0aGVuCisrICAgICAgICAgICAgb3JhY2xlX2luY2x1ZGVf ZGlyPSIkb3JhY2xlX2hvbWVfaW5jbHVkZV9kaXIiCisrICAgICAgICBlbGlmIHRlc3QgIiRvcmFj bGVfaG9tZV9pbmNsdWRlX2RpciIgPSAieWVzIjsgdGhlbgorKyAgICAgICAgICAgIHdhbnRfb3Jh Y2xlX2J1dF9ub19wYXRoPSJ5ZXMiCisrICAgICAgICBmaQorKworKyAgICAgICAgaWYgdGVzdCAi JG9yYWNsZV9ob21lX2xpYl9kaXIiICE9ICJubyIgLWEgIiRvcmFjbGVfaG9tZV9saWJfZGlyIiAh PSAieWVzIjsgdGhlbgorKyAgICAgICAgICAgIG9yYWNsZV9saWJfZGlyPSIkb3JhY2xlX2hvbWVf bGliX2RpciIKKysgICAgICAgIGVsaWYgdGVzdCAiJG9yYWNsZV9ob21lX2xpYl9kaXIiID0gInll cyI7IHRoZW4KKysgICAgICAgICAgICB3YW50X29yYWNsZV9idXRfbm9fcGF0aD0ieWVzIgorKyAg ICAgICAgZmkKKysgICAgZmkKKysKKysgICAgaWYgdGVzdCAiJHdhbnRfb3JhY2xlX2J1dF9ub19w YXRoIiA9ICJ5ZXMiOyB0aGVuCisrICAgICAgICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzog V0FSTklORzogT3JhY2xlIHN1cHBvcnQgaXMgcmVxdWVzdGVkIGJ1dCBubyBPcmFjbGUgcGF0aHMg aGF2ZSBiZWVuIHByb3ZpZGVkLiBcCisrUGxlYXNlLCBsb2NhdGUgT3JhY2xlIGRpcmVjdG9yaWVz IHVzaW5nIC0td2l0aC1vcmFjbGUgb3IgXAorKy0td2l0aC1vcmFjbGUtaW5jbHVkZSBhbmQgLS13 aXRoLW9yYWNsZS1saWIgb3B0aW9ucy4iID4mNQorKyRhc19lY2hvICIkYXNfbWU6IFdBUk5JTkc6 IE9yYWNsZSBzdXBwb3J0IGlzIHJlcXVlc3RlZCBidXQgbm8gT3JhY2xlIHBhdGhzIGhhdmUgYmVl biBwcm92aWRlZC4gXAorK1BsZWFzZSwgbG9jYXRlIE9yYWNsZSBkaXJlY3RvcmllcyB1c2luZyAt LXdpdGgtb3JhY2xlIG9yIFwKKystLXdpdGgtb3JhY2xlLWluY2x1ZGUgYW5kIC0td2l0aC1vcmFj bGUtbGliIG9wdGlvbnMuIiA+JjI7fQorKyAgICBmaQorKworKyAgICAgICAgICAgICAgICBpZiB0 ZXN0IC1uICIkb3JhY2xlX2luY2x1ZGVfZGlyIiAtYSAtbiAiJG9yYWNsZV9saWJfZGlyIjsgdGhl bgorKworKyAgICAgICAgc2F2ZWRfQ1BQRkxBR1M9IiRDUFBGTEFHUyIKKysgICAgICAgIENQUEZM QUdTPSIkQ1BQRkxBR1MgLUkkb3JhY2xlX2luY2x1ZGVfZGlyIgorKworKyAgICAgICAgICAgICAg ICBpZiB0ZXN0IC1uICIkb3JhY2xlX2luY2x1ZGVfZGlyMiI7IHRoZW4KKysgICAgICAgICAgICBD UFBGTEFHUz0iJENQUEZMQUdTIC1JJG9yYWNsZV9pbmNsdWRlX2RpcjIiCisrICAgICAgICBmaQor KworKyAgICAgICAgIyBGaWd1cmUgb3V0IGlmIHdlIGFyZSBidWlsZGluZyBvbiB3aW4zMi4KKysg ICAgICAgIGNhc2UgJGhvc3Rfb3MgaW4KKysgICAgICAgICAgICAqbWluZ3czMiogKSBXSU4zMj15 ZXMgOzsKKysgICAgICAgICAgICAqY3lnd2luKiApICBXSU4zMj15ZXMgOzsKKysgICAgICAgICAg ICAqKSBXSU4zMj1ubyA7OworKyAgICAgICAgZXNhYworKworKyAgICAgICAgaWYgdGVzdCAiJFdJ TjMyIiA9ICJubyIKKysgICAgICAgIHRoZW4KKysgICAgICAgICAgICBvY2lfbGlicz0iLWxjbG50 c2ggLWxubnoxMSIKKysgICAgICAgIGVsc2UKKysgICAgICAgICAgICBvY2lfbGlicz0iLWxvY2ki CisrICAgICAgICBmaQorKworKyAgICAgICAgc2F2ZWRfTERGTEFHUz0iJExERkxBR1MiCisrICAg ICAgICBzYXZlZF9MSUJTPSIkTElCUyIKKysgICAgICAgIG9jaV9sZGZsYWdzPSItTCRvcmFjbGVf bGliX2RpciIKKysgICAgICAgIExERkxBR1M9IiRMREZMQUdTICRvY2lfbGRmbGFncyIKKysgICAg ICAgIExJQlM9IiRMSUJTICRvY2lfbGlicyIKKysKKysgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgT3JhY2xlIE9D SSBoZWFkZXJzIGluICRvcmFjbGVfaW5jbHVkZV9kaXIiID4mNQorKyRhc19lY2hvX24gImNoZWNr aW5nIGZvciBPcmFjbGUgT0NJIGhlYWRlcnMgaW4gJG9yYWNsZV9pbmNsdWRlX2Rpci4uLiAiID4m NjsgfQorKworKyAgICAgICAgYWNfZXh0PWNwcAorK2FjX2NwcD0nJENYWENQUCAkQ1BQRkxBR1Mn CisrYWNfY29tcGlsZT0nJENYWCAtYyAkQ1hYRkxBR1MgJENQUEZMQUdTIGNvbmZ0ZXN0LiRhY19l eHQgPiY1JworK2FjX2xpbms9JyRDWFggLW8gY29uZnRlc3QkYWNfZXhlZXh0ICRDWFhGTEFHUyAk Q1BQRkxBR1MgJExERkxBR1MgY29uZnRlc3QuJGFjX2V4dCAkTElCUyA+JjUnCisrYWNfY29tcGls ZXJfZ251PSRhY19jdl9jeHhfY29tcGlsZXJfZ251CisrCisrICAgICAgICBjYXQgPmNvbmZ0ZXN0 LiRhY19leHQgPDxfQUNFT0YKKysKKysgICAgICAgICAgICAvKiBjb25mZGVmcy5oLiAgKi8KKytf QUNFT0YKKytjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKKytjYXQgPj5jb25mdGVz dC4kYWNfZXh0IDw8X0FDRU9GCisrLyogZW5kIGNvbmZkZWZzLmguICAqLworKyNpbmNsdWRlIDxv Y2kuaD4KKytpbnQKKyttYWluICgpCisreworKworKyNpZiBkZWZpbmVkKE9DSV9NQUpPUl9WRVJT SU9OKQorKyNpZiBPQ0lfTUFKT1JfVkVSU0lPTiA9PSAxMCAmJiBPQ0lfTUlOT1JfVkVSU0lPTiA9 PSAyCisrLy8gT3JhY2xlIDEwLjIgZGV0ZWN0ZWQKKysjZW5kaWYKKysjZWxpZiBkZWZpbmVkKE9D SV9WN19TWU5UQVgpCisrLy8gT0ssIG9sZGVyIE9yYWNsZSBkZXRlY3RlZAorKy8vIFRPRE8gLSBt bG9za290OiBmaW5kIGJldHRlciBtYWNybyB0byBjaGVjayBmb3Igb2xkZXIgdmVyc2lvbnM7Cisr I2Vsc2UKKysjICBlcnJvciBPcmFjbGUgb2NpLmggaGVhZGVyIG5vdCBmb3VuZAorKyNlbmRpZgor KworKworKyAgOworKyAgcmV0dXJuIDA7CisrfQorK19BQ0VPRgorK3JtIC1mIGNvbmZ0ZXN0LiRh Y19vYmpleHQKKytpZiB7IChhY190cnk9IiRhY19jb21waWxlIgorK2Nhc2UgIigoJGFjX3RyeSIg aW4KKysgICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OworKyAgKikg YWNfdHJ5X2VjaG89JGFjX3RyeTs7CisrZXNhYworK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19t ZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIKKyskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1 CisrICAoZXZhbCAiJGFjX2NvbXBpbGUiKSAyPmNvbmZ0ZXN0LmVyMQorKyAgYWNfc3RhdHVzPSQ/ CisrICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgorKyAgcm0gLWYg Y29uZnRlc3QuZXIxCisrICBjYXQgY29uZnRlc3QuZXJyID4mNQorKyAgJGFzX2VjaG8gIiRhc19t ZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKysgIChleGl0ICRhY19zdGF0dXMpOyB9 ICYmIHsKKysJIHRlc3QgLXogIiRhY19jeHhfd2Vycm9yX2ZsYWciIHx8CisrCSB0ZXN0ICEgLXMg Y29uZnRlc3QuZXJyCisrICAgICAgIH0gJiYgdGVzdCAtcyBjb25mdGVzdC4kYWNfb2JqZXh0OyB0 aGVuCisrCisrICAgICAgICAgICAgT1JBQ0xFX09DSV9DRkxBR1M9Ii1JJG9yYWNsZV9pbmNsdWRl X2RpciIKKysKKysgICAgICAgICAgICBpZiB0ZXN0IC1uICIkb3JhY2xlX2luY2x1ZGVfZGlyMiI7 IHRoZW4KKysgICAgICAgICAgICAgICAgT1JBQ0xFX09DSV9DRkxBR1M9IiRPUkFDTEVfT0NJX0NG TEFHUyAtSSRvcmFjbGVfaW5jbHVkZV9kaXIyIgorKyAgICAgICAgICAgIGZpCisrCisrICAgICAg ICAgICAgb2NpX2hlYWRlcl9mb3VuZD0ieWVzIgorKyAgICAgICAgICAgIHsgJGFzX2VjaG8gIiRh c19tZTokTElORU5POiByZXN1bHQ6IHllcyIgPiY1CisrJGFzX2VjaG8gInllcyIgPiY2OyB9Cisr CisrZWxzZQorKyAgJGFzX2VjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Cisr c2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQorKworKworKyAgICAgICAgICAgIG9j aV9oZWFkZXJfZm91bmQ9Im5vIgorKyAgICAgICAgICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElO RU5POiByZXN1bHQ6IG5vdCBmb3VuZCIgPiY1CisrJGFzX2VjaG8gIm5vdCBmb3VuZCIgPiY2OyB9 CisrCisrCisrZmkKKysKKytybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2Jq ZXh0IGNvbmZ0ZXN0LiRhY19leHQKKysgICAgICAgIGFjX2V4dD1jcHAKKythY19jcHA9JyRDWFhD UFAgJENQUEZMQUdTJworK2FjX2NvbXBpbGU9JyRDWFggLWMgJENYWEZMQUdTICRDUFBGTEFHUyBj b25mdGVzdC4kYWNfZXh0ID4mNScKKythY19saW5rPSckQ1hYIC1vIGNvbmZ0ZXN0JGFjX2V4ZWV4 dCAkQ1hYRkxBR1MgJENQUEZMQUdTICRMREZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgJExJQlMgPiY1 JworK2FjX2NvbXBpbGVyX2dudT0kYWNfY3ZfY3h4X2NvbXBpbGVyX2dudQorKworKworKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgdGVzdCAiJG9jaV9oZWFkZXJfZm91bmQiID0g InllcyI7IHRoZW4KKysKKysgICAgICAgICAgICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzog Y2hlY2tpbmcgZm9yIE9yYWNsZSBPQ0kgbGlicmFyaWVzIGluICRvcmFjbGVfbGliX2RpciIgPiY1 CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yIE9yYWNsZSBPQ0kgbGlicmFyaWVzIGluICRvcmFj bGVfbGliX2Rpci4uLiAiID4mNjsgfQorKworKyAgICAgICAgICAgIGFjX2V4dD1jcHAKKythY19j cHA9JyRDWFhDUFAgJENQUEZMQUdTJworK2FjX2NvbXBpbGU9JyRDWFggLWMgJENYWEZMQUdTICRD UFBGTEFHUyBjb25mdGVzdC4kYWNfZXh0ID4mNScKKythY19saW5rPSckQ1hYIC1vIGNvbmZ0ZXN0 JGFjX2V4ZWV4dCAkQ1hYRkxBR1MgJENQUEZMQUdTICRMREZMQUdTIGNvbmZ0ZXN0LiRhY19leHQg JExJQlMgPiY1JworK2FjX2NvbXBpbGVyX2dudT0kYWNfY3ZfY3h4X2NvbXBpbGVyX2dudQorKwor KyAgICAgICAgICAgIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorKworKyAgICAgICAg ICAgICAgICAvKiBjb25mZGVmcy5oLiAgKi8KKytfQUNFT0YKKytjYXQgY29uZmRlZnMuaCA+PmNv bmZ0ZXN0LiRhY19leHQKKytjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisrLyogZW5k IGNvbmZkZWZzLmguICAqLworKyNpbmNsdWRlIDxvY2kuaD4KKytpbnQKKyttYWluICgpCisrewor KworK09DSUVudiogZW52aCA9IDA7CisrT0NJRW52Q3JlYXRlKCZlbnZoLCBPQ0lfREVGQVVMVCwg MCwgMCwgMCwgMCwgMCwgMCk7CisraWYgKGVudmgpIE9DSUhhbmRsZUZyZWUoZW52aCwgT0NJX0hU WVBFX0VOVik7CisrCisrCisrICA7CisrICByZXR1cm4gMDsKKyt9CisrX0FDRU9GCisrcm0gLWYg Y29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdCRhY19leGVleHQKKytpZiB7IChhY190cnk9IiRh Y19saW5rIgorK2Nhc2UgIigoJGFjX3RyeSIgaW4KKysgICpcIiogfCAqXGAqIHwgKlxcKikgYWNf dHJ5X2VjaG89XCRhY190cnk7OworKyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7CisrZXNhYwor K2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIKKysk YXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1CisrICAoZXZhbCAiJGFjX2xpbmsiKSAyPmNvbmZ0 ZXN0LmVyMQorKyAgYWNfc3RhdHVzPSQ/CisrICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEg PmNvbmZ0ZXN0LmVycgorKyAgcm0gLWYgY29uZnRlc3QuZXIxCisrICBjYXQgY29uZnRlc3QuZXJy ID4mNQorKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUK KysgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmIHsKKysJIHRlc3QgLXogIiRhY19jeHhfd2Vycm9y X2ZsYWciIHx8CisrCSB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCisrICAgICAgIH0gJiYgdGVzdCAt cyBjb25mdGVzdCRhY19leGVleHQgJiYgeworKwkgdGVzdCAiJGNyb3NzX2NvbXBpbGluZyIgPSB5 ZXMgfHwKKysJICRhc190ZXN0X3ggY29uZnRlc3QkYWNfZXhlZXh0CisrICAgICAgIH07IHRoZW4K KysKKysgICAgICAgICAgICAgICAgT1JBQ0xFX09DSV9MREZMQUdTPSIkb2NpX2xkZmxhZ3MgJG9j aV9saWJzIgorKyAgICAgICAgICAgICAgICBvY2lfbGliX2ZvdW5kPSJ5ZXMiCisrICAgICAgICAg ICAgICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IHllcyIgPiY1CisrJGFz X2VjaG8gInllcyIgPiY2OyB9CisrCisrZWxzZQorKyAgJGFzX2VjaG8gIiRhc19tZTogZmFpbGVk IHByb2dyYW0gd2FzOiIgPiY1Cisrc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQor KworKworKyAgICAgICAgICAgICAgICBvY2lfbGliX2ZvdW5kPSJubyIKKysgICAgICAgICAgICAg ICAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogbm90IGZvdW5kIiA+JjUKKysk YXNfZWNobyAibm90IGZvdW5kIiA+JjY7IH0KKysKKysKKytmaQorKworK3JtIC1yZiBjb25mdGVz dC5kU1lNCisrcm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25m dGVzdF9pcGE4X2NvbmZ0ZXN0Lm9vIFwKKysgICAgICBjb25mdGVzdCRhY19leGVleHQgY29uZnRl c3QuJGFjX2V4dAorKyAgICAgICAgICAgIGFjX2V4dD1jcHAKKythY19jcHA9JyRDWFhDUFAgJENQ UEZMQUdTJworK2FjX2NvbXBpbGU9JyRDWFggLWMgJENYWEZMQUdTICRDUFBGTEFHUyBjb25mdGVz dC4kYWNfZXh0ID4mNScKKythY19saW5rPSckQ1hYIC1vIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAkQ1hY RkxBR1MgJENQUEZMQUdTICRMREZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgJExJQlMgPiY1JworK2Fj X2NvbXBpbGVyX2dudT0kYWNfY3ZfY3h4X2NvbXBpbGVyX2dudQorKworKyAgICAgICAgZmkKKysK KysgICAgICAgIENQUEZMQUdTPSIkc2F2ZWRfQ1BQRkxBR1MiCisrICAgICAgICBMREZMQUdTPSIk c2F2ZWRfTERGTEFHUyIKKysgICAgICAgIExJQlM9IiRzYXZlZF9MSUJTIgorKyAgICBmaQorKwor KyAgICAgICAgICAgICAgICBvcmFjbGVfdmVyc2lvbl9yZXE9JE9SQUNMRV9PQ0lfUkVRX1ZFUlNJ T04KKysKKysgICAgaWYgdGVzdCAiJG9jaV9oZWFkZXJfZm91bmQiID0gInllcyIgLWEgIiRvY2lf bGliX2ZvdW5kIiA9ICJ5ZXMiIC1hIFwKKysgICAgICAgIC1uICIkb3JhY2xlX3ZlcnNpb25fcmVx IjsgdGhlbgorKworKyAgICAgICAgb3JhY2xlX3ZlcnNpb25fbWFqb3I9YGNhdCAkb3JhY2xlX2lu Y2x1ZGVfZGlyL29jaS5oIFwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgZ3JlcCAn I2RlZmluZS4qT0NJX01BSk9SX1ZFUlNJT04uKicgXAorKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgfCBzZWQgLWUgJ3MvI2RlZmluZSBPQ0lfTUFKT1JfVkVSU0lPTiAgKi8vJyBcCisrICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB8IHNlZCAtZSAncy8gICpcL1wqLipcKlwvLy8nYAor KworKyAgICAgICAgb3JhY2xlX3ZlcnNpb25fbWlub3I9YGNhdCAkb3JhY2xlX2luY2x1ZGVfZGly L29jaS5oIFwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgZ3JlcCAnI2RlZmluZS4q T0NJX01JTk9SX1ZFUlNJT04uKicgXAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBz ZWQgLWUgJ3MvI2RlZmluZSBPQ0lfTUlOT1JfVkVSU0lPTiAgKi8vJyBcCisrICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB8IHNlZCAtZSAncy8gICpcL1wqLipcKlwvLy8nYAorKworKyAgICAg ICAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGlmIE9yYWNsZSBPQ0kgdmVy c2lvbiBpcyA+PSAkb3JhY2xlX3ZlcnNpb25fcmVxIiA+JjUKKyskYXNfZWNob19uICJjaGVja2lu ZyBpZiBPcmFjbGUgT0NJIHZlcnNpb24gaXMgPj0gJG9yYWNsZV92ZXJzaW9uX3JlcS4uLiAiID4m NjsgfQorKworKyAgICAgICAgaWYgdGVzdCAtbiAiJG9yYWNsZV92ZXJzaW9uX21ham9yIiAtYSAt biAkIm9yYWNsZV92ZXJzaW9uX21pbm9yIjsgdGhlbgorKworKyAgICAgICAgICAgIE9SQUNMRV9P Q0lfVkVSU0lPTj0iJG9yYWNsZV92ZXJzaW9uX21ham9yLiRvcmFjbGVfdmVyc2lvbl9taW5vciIK KysKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcmFjbGVfdmVyc2lvbl9y ZXFfbWFqb3I9YGV4cHIgJG9yYWNsZV92ZXJzaW9uX3JlcSA6ICdcKFswLTldKlwpJ2AKKysgICAg ICAgICAgICBvcmFjbGVfdmVyc2lvbl9yZXFfbWlub3I9YGV4cHIgJG9yYWNsZV92ZXJzaW9uX3Jl cSA6ICdbMC05XSpcLlwoWzAtOV0qXCknYAorKworKyAgICAgICAgICAgIG9yYWNsZV92ZXJzaW9u X3JlcV9udW1iZXI9YGV4cHIgJG9yYWNsZV92ZXJzaW9uX3JlcV9tYWpvciBcKiAxMDAwMDAwIFwK KysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcKyAkb3JhY2xlX3ZlcnNp b25fcmVxX21pbm9yIFwqIDEwMDBgCisrCisrICAgICAgICAgICAgICAgICAgICAgICAgb3JhY2xl X3ZlcnNpb25fbnVtYmVyPWBleHByICRvcmFjbGVfdmVyc2lvbl9tYWpvciBcKiAxMDAwMDAwIFwK KysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCsgJG9yYWNsZV92ZXJzaW9uX21p bm9yIFwqIDEwMDBgCisrCisrICAgICAgICAgICAgb3JhY2xlX3ZlcnNpb25fY2hlY2s9YGV4cHIg JG9yYWNsZV92ZXJzaW9uX251bWJlciBcPlw9ICRvcmFjbGVfdmVyc2lvbl9yZXFfbnVtYmVyYAor KyAgICAgICAgICAgIGlmIHRlc3QgIiRvcmFjbGVfdmVyc2lvbl9jaGVjayIgPSAiMSI7IHRoZW4K KysgICAgICAgICAgICAgICAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogeWVz IiA+JjUKKyskYXNfZWNobyAieWVzIiA+JjY7IH0KKysKKytjYXQgPj5jb25mZGVmcy5oIDw8XF9B Q0VPRgorKyNkZWZpbmUgSEFWRV9PUkFDTEUgMQorK19BQ0VPRgorKworKyAgICAgICAgICAgIGVs c2UKKysgICAgICAgICAgICAgICAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDog bm8iID4mNQorKyRhc19lY2hvICJubyIgPiY2OyB9CisrICAgICAgICAgICAgICAgIHsgeyAkYXNf ZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBPcmFjbGUgJE9SQUNMRV9PQ0lfVkVSU0lPTiBm b3VuZCwgYnV0IHJlcXVpcmVkIHZlcnNpb24gaXMgJG9yYWNsZV92ZXJzaW9uX3JlcSIgPiY1Cisr JGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IE9yYWNsZSAkT1JBQ0xFX09DSV9WRVJTSU9OIGZvdW5k LCBidXQgcmVxdWlyZWQgdmVyc2lvbiBpcyAkb3JhY2xlX3ZlcnNpb25fcmVxIiA+JjI7fQorKyAg IHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQorKyAgICAgICAgICAgIGZpCisrICAgICAgICBlbHNl CisrICAgICAgICAgICAgT1JBQ0xFX09DSV9WRVJTSU9OPSJVTktOT1dOIgorKyAgICAgICAgICAg IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IG5vIiA+JjUKKyskYXNfZWNobyAi bm8iID4mNjsgfQorKyAgICAgICAgICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBXQVJO SU5HOiBPcmFjbGUgdmVyc2lvbiB1bmtub3duLCBwcm9iYWJseSBPQ0kgb2xkZXIgdGhhbiAxMC4y IGlzIGF2YWlsYWJsZSIgPiY1CisrJGFzX2VjaG8gIiRhc19tZTogV0FSTklORzogT3JhY2xlIHZl cnNpb24gdW5rbm93biwgcHJvYmFibHkgT0NJIG9sZGVyIHRoYW4gMTAuMiBpcyBhdmFpbGFibGUi ID4mMjt9CisrICAgICAgICBmaQorKyAgICBmaQorKworKworKworKworKworK2ZpCisrIGlmIHRl c3QgIngkZW5hYmxlX2JhY2tlbmRfb3JhY2xlIiA9IHh5ZXM7IHRoZW4KKysgIEhBVkVfT1JBQ0xF X1RSVUU9CisrICBIQVZFX09SQUNMRV9GQUxTRT0nIycKKytlbHNlCisrICBIQVZFX09SQUNMRV9U UlVFPScjJworKyAgSEFWRV9PUkFDTEVfRkFMU0U9CisrZmkKKysKKysjT1JBQ0xFX0RJUlM9Im9y YWNsZSIKKysKKysKKysKKysjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKysjIFN1cHBvcnQgZm9yIFBvc3RncmVTUUwg YmFja2VuZAorKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKyMgQ2hlY2sgd2hldGhlciAtLWVuYWJsZS1iYWNrZW5k LXBvc3RncmVzcWwgd2FzIGdpdmVuLgorK2lmIHRlc3QgIiR7ZW5hYmxlX2JhY2tlbmRfcG9zdGdy ZXNxbCtzZXR9IiA9IHNldDsgdGhlbgorKyAgZW5hYmxldmFsPSRlbmFibGVfYmFja2VuZF9wb3N0 Z3Jlc3FsOyAgaWYgdGVzdCAiJGVuYWJsZXZhbCIgPSBubzsgdGhlbgorKyAgICAgIAkgZW5hYmxl X2JhY2tlbmRfcG9zdGdyZXNxbD1ubworKyAgICAgIGVsc2UKKysJIGVuYWJsZV9iYWNrZW5kX3Bv c3RncmVzcWw9eWVzCisrICAgICAgZmkKKytlbHNlCisrICAgZW5hYmxlX2JhY2tlbmRfcG9zdGdy ZXNxbD1ubworKworK2ZpCisrCisrCisraWYgdGVzdCAieCRlbmFibGVfYmFja2VuZF9wb3N0Z3Jl c3FsIiA9ICJ4eWVzIjsgdGhlbgorKyAgIFBPU1RHUkVTUUxfRElSUz0icG9zdGdyZXNxbCIKKysg ICBQT1NUR1JFU1FMX1JFUV9WRVJTSU9OPSI3LjEuNCIKKysKKysKKysjIENoZWNrIHdoZXRoZXIg LS13aXRoLXBvc3RncmVzcWwgd2FzIGdpdmVuLgorK2lmIHRlc3QgIiR7d2l0aF9wb3N0Z3Jlc3Fs K3NldH0iID0gc2V0OyB0aGVuCisrICB3aXRodmFsPSR3aXRoX3Bvc3RncmVzcWw7CisrCVBPU1RH UkVTUUxfaW5jX2NoZWNrPSIkd2l0aF9wb3N0Z3Jlc3FsL2luY2x1ZGUiCisrICAgICAgICBpZiB0 ZXN0ICIkd2l0aHZhbCIgPSAibm8iOyB0aGVuCisrICAgICAgICAgICAgd2FudF9wb3N0Z3Jlc3Fs PSJubyIKKysgICAgICAgIGVsaWYgdGVzdCAiJHdpdGh2YWwiID0gInllcyI7IHRoZW4KKysgICAg ICAgICAgICB3YW50X3Bvc3RncmVzcWw9InllcyIKKysgICAgICAgIGVsc2UKKysgICAgICAgICAg ICB3YW50X3Bvc3RncmVzcWw9InllcyIKKysgICAgICAgICAgICBQR19DT05GSUc9IiR3aXRodmFs IgorKyAgICAgICAgZmkKKysKKytlbHNlCisrICB3YW50X3Bvc3RncmVzcWw9InllcyIKKysJUE9T VEdSRVNRTF9pbmNfY2hlY2s9Ii91c3IvaW5jbHVkZSAvdXNyL2xvY2FsIC9vcHQiCisrCisrZmkK KysKKysKKysgICAgUE9TVEdSRVNRTF9DRkxBR1M9IiIKKysgICAgUE9TVEdSRVNRTF9MREZMQUdT PSIiCisrICAgIFBPU1RHUkVTUUxfUE9TVEdSRVNRTD0iIgorKworKworKyAgICBpZiB0ZXN0ICIk d2FudF9wb3N0Z3Jlc3FsIiA9ICJ5ZXMiOyB0aGVuCisrCisrICAgICAgICBpZiB0ZXN0IC16ICIk UEdfQ09ORklHIiAtbyB0ZXN0OyB0aGVuCisrICAgICAgICAgICAgIyBFeHRyYWN0IHRoZSBmaXJz dCB3b3JkIG9mICJwZ19jb25maWciLCBzbyBpdCBjYW4gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBh cmdzLgorK3NldCBkdW1teSBwZ19jb25maWc7IGFjX3dvcmQ9JDIKKyt7ICRhc19lY2hvICIkYXNf bWU6JExJTkVOTzogY2hlY2tpbmcgZm9yICRhY193b3JkIiA+JjUKKyskYXNfZWNob19uICJjaGVj a2luZyBmb3IgJGFjX3dvcmQuLi4gIiA+JjY7IH0KKytpZiB0ZXN0ICIke2FjX2N2X3BhdGhfUEdf Q09ORklHK3NldH0iID0gc2V0OyB0aGVuCisrICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgor K2Vsc2UKKysgIGNhc2UgJFBHX0NPTkZJRyBpbgorKyAgW1xcL10qIHwgPzpbXFwvXSopCisrICBh Y19jdl9wYXRoX1BHX0NPTkZJRz0iJFBHX0NPTkZJRyIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUg dGhlIHRlc3Qgd2l0aCBhIHBhdGguCisrICA7OworKyAgKikKKysgIGFzX3NhdmVfSUZTPSRJRlM7 IElGUz0kUEFUSF9TRVBBUkFUT1IKKytmb3IgYXNfZGlyIGluICRQQVRICisrZG8KKysgIElGUz0k YXNfc2F2ZV9JRlMKKysgIHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCisrICBmb3IgYWNf ZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1dGFibGVfZXh0ZW5zaW9uczsgZG8KKysgIGlmIHsgdGVz dCAtZiAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgJiYgJGFzX3Rlc3RfeCAiJGFzX2Rp ci8kYWNfd29yZCRhY19leGVjX2V4dCI7IH07IHRoZW4KKysgICAgYWNfY3ZfcGF0aF9QR19DT05G SUc9IiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiCisrICAgICRhc19lY2hvICIkYXNfbWU6 JExJTkVOTzogZm91bmQgJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgPiY1CisrICAgIGJy ZWFrIDIKKysgIGZpCisrZG9uZQorK2RvbmUKKytJRlM9JGFzX3NhdmVfSUZTCisrCisrICA7Owor K2VzYWMKKytmaQorK1BHX0NPTkZJRz0kYWNfY3ZfcGF0aF9QR19DT05GSUcKKytpZiB0ZXN0IC1u ICIkUEdfQ09ORklHIjsgdGhlbgorKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3Vs dDogJFBHX0NPTkZJRyIgPiY1CisrJGFzX2VjaG8gIiRQR19DT05GSUciID4mNjsgfQorK2Vsc2UK KysgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IG5vIiA+JjUKKyskYXNfZWNo byAibm8iID4mNjsgfQorK2ZpCisrCisrCisrICAgICAgICBmaQorKworKyAgICAgICAgaWYgdGVz dCAhIC14ICIkUEdfQ09ORklHIjsgdGhlbgorKyAgICAgICAgICAgIHsgeyAkYXNfZWNobyAiJGFz X21lOiRMSU5FTk86IGVycm9yOiAkUEdfQ09ORklHIGRvZXMgbm90IGV4aXN0IG9yIGl0IGlzIG5v dCBhbiBleGVjdHVhYmxlIGZpbGUiID4mNQorKyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiAkUEdf Q09ORklHIGRvZXMgbm90IGV4aXN0IG9yIGl0IGlzIG5vdCBhbiBleGVjdHVhYmxlIGZpbGUiID4m Mjt9CisrICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9CisrICAgICAgICAgICAgUEdfQ09ORklH PSJubyIKKysgICAgICAgICAgICBmb3VuZF9wb3N0Z3Jlc3FsPSJubyIKKysgICAgICAgIGZpCisr CisrICAgICAgICBpZiB0ZXN0ICIkUEdfQ09ORklHIiAhPSAibm8iOyB0aGVuCisrICAgICAgICAg ICAgIworKyAgICAgICAgICAgICMgTG9vayBmb3IgUG9zdGdyZXNxbCBDIEFQSSBoZWFkZXJzCisr ICAgICAgICAgICAgIworKyAgICAgICAgICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBj aGVja2luZyBmb3IgUG9zdGdyZXNxbCBpbmNsdWRlIGRpcmVjdG9yeSIgPiY1CisrJGFzX2VjaG9f biAiY2hlY2tpbmcgZm9yIFBvc3RncmVzcWwgaW5jbHVkZSBkaXJlY3RvcnkuLi4gIiA+JjY7IH0K KysgICAgICAgICAgICBQT1NUR1JFU1FMX2luY2Rpcj0KKysgICAgICAgICAgICBmb3IgcG9zdGdy ZXNxbF9pbmNfZGlyIGluICRQT1NUR1JFU1FMX2luY19jaGVjaworKyAgICAgICAgICAgIGRvCisr ICAgICAgICAgICAgICAgIGlmIHRlc3QgLWQgIiRwb3N0Z3Jlc3FsX2luY19kaXIiIFwKKysgICAg ICAgICAgICAgICAgJiYgdGVzdCAtZiAiJHBvc3RncmVzcWxfaW5jX2Rpci9wb3N0Z3Jlc19leHQu aCIKKysgICAgICAgICAgICAgICAgdGhlbgorKyAgICAgICAgICAgICAgICAgICAgUE9TVEdSRVNR TF9pbmNkaXI9JHBvc3RncmVzcWxfaW5jX2RpcgorKyAgICAgICAgICAgICAgICAgICAgYnJlYWsK KysgICAgICAgICAgICAgICAgZmkKKysgICAgICAgICAgICBkb25lCisrCisrICAgICAgICAgICAg aWYgdGVzdCAteiAiJFBPU1RHUkVTUUxfaW5jZGlyIgorKyAgICAgICAgICAgIHRoZW4KKysgICAg ICAgICAgICAgICAgeyB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IERpZG4ndCBm aW5kIHRoZSBQb3N0Z3Jlc3FsIGluY2x1ZGUgZGlyIGluICckUE9TVEdSRVNRTF9pbmNfY2hlY2sn IiA+JjUKKyskYXNfZWNobyAiJGFzX21lOiBlcnJvcjogRGlkbid0IGZpbmQgdGhlIFBvc3RncmVz cWwgaW5jbHVkZSBkaXIgaW4gJyRQT1NUR1JFU1FMX2luY19jaGVjayciID4mMjt9CisrICAgeyAo ZXhpdCAxKTsgZXhpdCAxOyB9OyB9CisrICAgICAgICAgICAgZmkKKysKKysgICAgICAgICAgICBj YXNlICIkUE9TVEdSRVNRTF9pbmNkaXIiIGluCisrICAgICAgICAgICAgICAgIC8qICkgOzsKKysg ICAgICAgICAgICAgICAgKiApICB7IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjog VGhlIFBvc3RncmVzcWwgaW5jbHVkZSBkaXJlY3RvcnkgKCRQT1NUR1JFU1FMX2luY2RpcikgbXVz dCBiZSBhbiBhYnNvbHV0ZSBwYXRoLiIgPiY1CisrJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IFRo ZSBQb3N0Z3Jlc3FsIGluY2x1ZGUgZGlyZWN0b3J5ICgkUE9TVEdSRVNRTF9pbmNkaXIpIG11c3Qg YmUgYW4gYWJzb2x1dGUgcGF0aC4iID4mMjt9CisrICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9 IDs7CisrICAgICAgICAgICAgZXNhYworKworKyAgICAgICAgICAgIHsgJGFzX2VjaG8gIiRhc19t ZTokTElORU5POiByZXN1bHQ6ICRQT1NUR1JFU1FMX2luY2RpciIgPiY1CisrJGFzX2VjaG8gIiRQ T1NUR1JFU1FMX2luY2RpciIgPiY2OyB9CisrCisrICAgICAgICAgICAgaWYgdGVzdCAiJFBPU1RH UkVTUUxfaW5jZGlyIiA9ICIvdXNyL2luY2x1ZGUiOyB0aGVuCisrICAgICAgICAgICAgICBQT1NU R1JFU1FMX0NGTEFHUz0iIgorKyAgICAgICAgICAgIGVsc2UKKysgICAgICAgICAgICAgIFBPU1RH UkVTUUxfQ0ZMQUdTPSItSSR7UE9TVEdSRVNRTF9pbmNkaXJ9IgorKyAgICAgICAgICAgIGZpCisr CisrICAgICAgICAgICAgUE9TVEdSRVNRTF9MREZMQUdTPSItTGAkUEdfQ09ORklHIC0tbGliZGly YCAtbHBxIgorKworKyAgICAgICAgICAgIFBPU1RHUkVTUUxfVkVSU0lPTj1gJFBHX0NPTkZJRyAt LXZlcnNpb24gfCBzZWQgLWUgJ3MjUG9zdGdyZVNRTCAjIydgCisrCisrCisrY2F0ID4+Y29uZmRl ZnMuaCA8PFxfQUNFT0YKKysjZGVmaW5lIEhBVkVfUE9TVEdSRVNRTCAxCisrX0FDRU9GCisrCisr CisrICAgICAgICAgICAgZm91bmRfcG9zdGdyZXNxbD0ieWVzIgorKyAgICAgICAgZWxzZQorKyAg ICAgICAgICAgIGZvdW5kX3Bvc3RncmVzcWw9Im5vIgorKyAgICAgICAgZmkKKysgICAgZmkKKysK KysKKysKKysgICAgcG9zdGdyZXNxbF92ZXJzaW9uX3JlcT0kUE9TVEdSRVNRTF9SRVFfVkVSU0lP TgorKworKyAgICBpZiB0ZXN0ICIkZm91bmRfcG9zdGdyZXNxbCIgPSAieWVzIiAtYSAtbiAiJHBv c3RncmVzcWxfdmVyc2lvbl9yZXEiOyB0aGVuCisrCisrICAgICAgICB7ICRhc19lY2hvICIkYXNf bWU6JExJTkVOTzogY2hlY2tpbmcgaWYgUG9zdGdyZVNRTCB2ZXJzaW9uIGlzID49ICRwb3N0Z3Jl c3FsX3ZlcnNpb25fcmVxIiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyBpZiBQb3N0Z3JlU1FM IHZlcnNpb24gaXMgPj0gJHBvc3RncmVzcWxfdmVyc2lvbl9yZXEuLi4gIiA+JjY7IH0KKysKKysg ICAgICAgICAgICAgICAgICAgICAgICBwb3N0Z3Jlc3FsX3ZlcnNpb25fcmVxX21ham9yPWBleHBy ICRwb3N0Z3Jlc3FsX3ZlcnNpb25fcmVxIDogJ1woWzAtOV0qXCknYAorKyAgICAgICAgcG9zdGdy ZXNxbF92ZXJzaW9uX3JlcV9taW5vcj1gZXhwciAkcG9zdGdyZXNxbF92ZXJzaW9uX3JlcSA6ICdb MC05XSpcLlwoWzAtOV0qXCknYAorKyAgICAgICAgcG9zdGdyZXNxbF92ZXJzaW9uX3JlcV9taWNy bz1gZXhwciAkcG9zdGdyZXNxbF92ZXJzaW9uX3JlcSA6ICdbMC05XSpcLlswLTldKlwuXChbMC05 XSpcKSdgCisrICAgICAgICBpZiB0ZXN0ICJ4JHBvc3RncmVzcWxfdmVyc2lvbl9yZXFfbWljcm8i ID0gIngiOyB0aGVuCisrICAgICAgICAgICAgcG9zdGdyZXNxbF92ZXJzaW9uX3JlcV9taWNybz0i MCIKKysgICAgICAgIGZpCisrCisrICAgICAgICBwb3N0Z3Jlc3FsX3ZlcnNpb25fcmVxX251bWJl cj1gZXhwciAkcG9zdGdyZXNxbF92ZXJzaW9uX3JlcV9tYWpvciBcKiAxMDAwMDAwIFwKKysgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwrICRwb3N0Z3Jlc3FsX3ZlcnNpb25fcmVx X21pbm9yIFwqIDEwMDAgXAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCsg JHBvc3RncmVzcWxfdmVyc2lvbl9yZXFfbWljcm9gCisrCisrICAgICAgICAgICAgICAgICAgICAg ICAgcG9zdGdyZXNxbF92ZXJzaW9uX21ham9yPWBleHByICRQT1NUR1JFU1FMX1ZFUlNJT04gOiAn XChbMC05XSpcKSdgCisrICAgICAgICBwb3N0Z3Jlc3FsX3ZlcnNpb25fbWlub3I9YGV4cHIgJFBP U1RHUkVTUUxfVkVSU0lPTiA6ICdbMC05XSpcLlwoWzAtOV0qXCknYAorKyAgICAgICAgcG9zdGdy ZXNxbF92ZXJzaW9uX21pY3JvPWBleHByICRQT1NUR1JFU1FMX1ZFUlNJT04gOiAnWzAtOV0qXC5b MC05XSpcLlwoWzAtOV0qXCknYAorKyAgICAgICAgaWYgdGVzdCAieCRwb3N0Z3Jlc3FsX3ZlcnNp b25fbWljcm8iID0gIngiOyB0aGVuCisrICAgICAgICAgICAgcG9zdGdyZXNxbF92ZXJzaW9uX21p Y3JvPSIwIgorKyAgICAgICAgZmkKKysKKysgICAgICAgIHBvc3RncmVzcWxfdmVyc2lvbl9udW1i ZXI9YGV4cHIgJHBvc3RncmVzcWxfdmVyc2lvbl9tYWpvciBcKiAxMDAwMDAwIFwKKysgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwrICRwb3N0Z3Jlc3FsX3ZlcnNpb25fbWlub3Ig XCogMTAwMCBcCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcKyAkcG9zdGdy ZXNxbF92ZXJzaW9uX21pY3JvYAorKworKyAgICAgICAgcG9zdGdyZXNxbF92ZXJzaW9uX2NoZWNr PWBleHByICRwb3N0Z3Jlc3FsX3ZlcnNpb25fbnVtYmVyIFw+XD0gJHBvc3RncmVzcWxfdmVyc2lv bl9yZXFfbnVtYmVyYAorKyAgICAgICAgaWYgdGVzdCAiJHBvc3RncmVzcWxfdmVyc2lvbl9jaGVj ayIgPSAiMSI7IHRoZW4KKysgICAgICAgICAgICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzog cmVzdWx0OiB5ZXMiID4mNQorKyRhc19lY2hvICJ5ZXMiID4mNjsgfQorKyAgICAgICAgZWxzZQor KyAgICAgICAgICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IG5vIiA+JjUK KyskYXNfZWNobyAibm8iID4mNjsgfQorKyAgICAgICAgZmkKKysgICAgZmkKKysKKysKKysKKysK KysKKytmaQorKyBpZiB0ZXN0ICJ4JGVuYWJsZV9iYWNrZW5kX3Bvc3RncmVzcWwiID0geHllczsg dGhlbgorKyAgSEFWRV9QT1NUR1JFU1FMX1RSVUU9CisrICBIQVZFX1BPU1RHUkVTUUxfRkFMU0U9 JyMnCisrZWxzZQorKyAgSEFWRV9QT1NUR1JFU1FMX1RSVUU9JyMnCisrICBIQVZFX1BPU1RHUkVT UUxfRkFMU0U9CisrZmkKKysKKysjUE9TVEdSRVNRTF9ESVJTPSJwb3N0Z3Jlc3FsIgorKworKwor KworKworKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQorKyMgU3VwcG9ydCBmb3IgZG9jdW1lbnRhdGlvbgorKyMgLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQorKyMgQ2hlY2tzIGZvciBkb2N1bWVudGF0aW9uIGJ1aWxkIHRvb2xzCisrI0FDX0NI RUNLX1BST0coW3RleGluZm9fb2tdLCBbdGV4aW5mb10sIFt5ZXNdLCBbbm9dKQorKyNpZiB0ZXN0 ICJ4JGVuYWJsZV9pbmZvX2RvYyIgIT0geG5vOyB0aGVuCisrIyAgdGVzdCAieCR0ZXhpbmZvX29r IiAhPSB4eWVzICYmIGVuYWJsZV9pbmZvX2RvYz1ubworKyMgIEFDX1BBVEhfUFJPRyhbUEVSTF0s IFtwZXJsXSwgW10pCisrI2ZpCisrIGlmIHRlc3QgIngkZW5hYmxlX2luZm9fZG9jIiA9IHh5ZXM7 IHRoZW4KKysgIElORk9fRE9DX1RSVUU9CisrICBJTkZPX0RPQ19GQUxTRT0nIycKKytlbHNlCisr ICBJTkZPX0RPQ19UUlVFPScjJworKyAgSU5GT19ET0NfRkFMU0U9CisrZmkKKysKKysKKysjIENo ZWNrcyBmb3IgZG9jdW1lbnRhdGlvbiBidWlsZCB0b29scworKyMgRXh0cmFjdCB0aGUgZmlyc3Qg d29yZCBvZiAiZG94eWdlbiIsIHNvIGl0IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3Mu Cisrc2V0IGR1bW15IGRveHlnZW47IGFjX3dvcmQ9JDIKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJ TkVOTzogY2hlY2tpbmcgZm9yICRhY193b3JkIiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyBm b3IgJGFjX3dvcmQuLi4gIiA+JjY7IH0KKytpZiB0ZXN0ICIke2FjX2N2X3Byb2dfZG94eWdlbl9v aytzZXR9IiA9IHNldDsgdGhlbgorKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKKytlbHNl CisrICBpZiB0ZXN0IC1uICIkZG94eWdlbl9vayI7IHRoZW4KKysgIGFjX2N2X3Byb2dfZG94eWdl bl9vaz0iJGRveHlnZW5fb2siICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0LgorK2Vs c2UKKythc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCisrZm9yIGFzX2RpciBp biAkUEFUSAorK2RvCisrICBJRlM9JGFzX3NhdmVfSUZTCisrICB0ZXN0IC16ICIkYXNfZGlyIiAm JiBhc19kaXI9LgorKyAgZm9yIGFjX2V4ZWNfZXh0IGluICcnICRhY19leGVjdXRhYmxlX2V4dGVu c2lvbnM7IGRvCisrICBpZiB7IHRlc3QgLWYgIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQi ICYmICRhc190ZXN0X3ggIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiOyB9OyB0aGVuCisr ICAgIGFjX2N2X3Byb2dfZG94eWdlbl9vaz0ieWVzIgorKyAgICAkYXNfZWNobyAiJGFzX21lOiRM SU5FTk86IGZvdW5kICRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiID4mNQorKyAgICBicmVh ayAyCisrICBmaQorK2RvbmUKKytkb25lCisrSUZTPSRhc19zYXZlX0lGUworKworKyAgdGVzdCAt eiAiJGFjX2N2X3Byb2dfZG94eWdlbl9vayIgJiYgYWNfY3ZfcHJvZ19kb3h5Z2VuX29rPSJubyIK KytmaQorK2ZpCisrZG94eWdlbl9vaz0kYWNfY3ZfcHJvZ19kb3h5Z2VuX29rCisraWYgdGVzdCAt biAiJGRveHlnZW5fb2siOyB0aGVuCisrICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVz dWx0OiAkZG94eWdlbl9vayIgPiY1CisrJGFzX2VjaG8gIiRkb3h5Z2VuX29rIiA+JjY7IH0KKytl bHNlCisrICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiBubyIgPiY1CisrJGFz X2VjaG8gIm5vIiA+JjY7IH0KKytmaQorKworKworKyMgRXh0cmFjdCB0aGUgZmlyc3Qgd29yZCBv ZiAibGF0ZXgiLCBzbyBpdCBjYW4gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmdzLgorK3NldCBk dW1teSBsYXRleDsgYWNfd29yZD0kMgorK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVj a2luZyBmb3IgJGFjX3dvcmQiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIGZvciAkYWNfd29y ZC4uLiAiID4mNjsgfQorK2lmIHRlc3QgIiR7YWNfY3ZfcHJvZ19sYXRleF9vaytzZXR9IiA9IHNl dDsgdGhlbgorKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKKytlbHNlCisrICBpZiB0ZXN0 IC1uICIkbGF0ZXhfb2siOyB0aGVuCisrICBhY19jdl9wcm9nX2xhdGV4X29rPSIkbGF0ZXhfb2si ICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0LgorK2Vsc2UKKythc19zYXZlX0lGUz0k SUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCisrZm9yIGFzX2RpciBpbiAkUEFUSAorK2RvCisrICBJ RlM9JGFzX3NhdmVfSUZTCisrICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgorKyAgZm9y IGFjX2V4ZWNfZXh0IGluICcnICRhY19leGVjdXRhYmxlX2V4dGVuc2lvbnM7IGRvCisrICBpZiB7 IHRlc3QgLWYgIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiICYmICRhc190ZXN0X3ggIiRh c19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiOyB9OyB0aGVuCisrICAgIGFjX2N2X3Byb2dfbGF0 ZXhfb2s9InllcyIKKysgICAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBmb3VuZCAkYXNfZGly LyRhY193b3JkJGFjX2V4ZWNfZXh0IiA+JjUKKysgICAgYnJlYWsgMgorKyAgZmkKKytkb25lCisr ZG9uZQorK0lGUz0kYXNfc2F2ZV9JRlMKKysKKysgIHRlc3QgLXogIiRhY19jdl9wcm9nX2xhdGV4 X29rIiAmJiBhY19jdl9wcm9nX2xhdGV4X29rPSJubyIKKytmaQorK2ZpCisrbGF0ZXhfb2s9JGFj X2N2X3Byb2dfbGF0ZXhfb2sKKytpZiB0ZXN0IC1uICIkbGF0ZXhfb2siOyB0aGVuCisrICB7ICRh c19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkbGF0ZXhfb2siID4mNQorKyRhc19lY2hv ICIkbGF0ZXhfb2siID4mNjsgfQorK2Vsc2UKKysgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5P OiByZXN1bHQ6IG5vIiA+JjUKKyskYXNfZWNobyAibm8iID4mNjsgfQorK2ZpCisrCisrCisrIyBF eHRyYWN0IHRoZSBmaXJzdCB3b3JkIG9mICJkdmlwcyIsIHNvIGl0IGNhbiBiZSBhIHByb2dyYW0g bmFtZSB3aXRoIGFyZ3MuCisrc2V0IGR1bW15IGR2aXBzOyBhY193b3JkPSQyCisreyAkYXNfZWNo byAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciAkYWNfd29yZCIgPiY1CisrJGFzX2VjaG9f biAiY2hlY2tpbmcgZm9yICRhY193b3JkLi4uICIgPiY2OyB9CisraWYgdGVzdCAiJHthY19jdl9w cm9nX2R2aXBzX29rK3NldH0iID0gc2V0OyB0aGVuCisrICAkYXNfZWNob19uICIoY2FjaGVkKSAi ID4mNgorK2Vsc2UKKysgIGlmIHRlc3QgLW4gIiRkdmlwc19vayI7IHRoZW4KKysgIGFjX2N2X3By b2dfZHZpcHNfb2s9IiRkdmlwc19vayIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3Qu CisrZWxzZQorK2FzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IKKytmb3IgYXNf ZGlyIGluICRQQVRICisrZG8KKysgIElGUz0kYXNfc2F2ZV9JRlMKKysgIHRlc3QgLXogIiRhc19k aXIiICYmIGFzX2Rpcj0uCisrICBmb3IgYWNfZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1dGFibGVf ZXh0ZW5zaW9uczsgZG8KKysgIGlmIHsgdGVzdCAtZiAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVj X2V4dCIgJiYgJGFzX3Rlc3RfeCAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCI7IH07IHRo ZW4KKysgICAgYWNfY3ZfcHJvZ19kdmlwc19vaz0ieWVzIgorKyAgICAkYXNfZWNobyAiJGFzX21l OiRMSU5FTk86IGZvdW5kICRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiID4mNQorKyAgICBi cmVhayAyCisrICBmaQorK2RvbmUKKytkb25lCisrSUZTPSRhc19zYXZlX0lGUworKworKyAgdGVz dCAteiAiJGFjX2N2X3Byb2dfZHZpcHNfb2siICYmIGFjX2N2X3Byb2dfZHZpcHNfb2s9Im5vIgor K2ZpCisrZmkKKytkdmlwc19vaz0kYWNfY3ZfcHJvZ19kdmlwc19vaworK2lmIHRlc3QgLW4gIiRk dmlwc19vayI7IHRoZW4KKysgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRk dmlwc19vayIgPiY1CisrJGFzX2VjaG8gIiRkdmlwc19vayIgPiY2OyB9CisrZWxzZQorKyAgeyAk YXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogbm8iID4mNQorKyRhc19lY2hvICJubyIg PiY2OyB9CisrZmkKKysKKysKKysjIEV4dHJhY3QgdGhlIGZpcnN0IHdvcmQgb2YgImdzIiwgc28g aXQgY2FuIGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJncy4KKytzZXQgZHVtbXkgZ3M7IGFjX3dv cmQ9JDIKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yICRhY193b3Jk IiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyBmb3IgJGFjX3dvcmQuLi4gIiA+JjY7IH0KKytp ZiB0ZXN0ICIke2FjX2N2X3Byb2dfZ3Nfb2src2V0fSIgPSBzZXQ7IHRoZW4KKysgICRhc19lY2hv X24gIihjYWNoZWQpICIgPiY2CisrZWxzZQorKyAgaWYgdGVzdCAtbiAiJGdzX29rIjsgdGhlbgor KyAgYWNfY3ZfcHJvZ19nc19vaz0iJGdzX29rIiAjIExldCB0aGUgdXNlciBvdmVycmlkZSB0aGUg dGVzdC4KKytlbHNlCisrYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgorK2Zv ciBhc19kaXIgaW4gJFBBVEgKKytkbworKyAgSUZTPSRhc19zYXZlX0lGUworKyAgdGVzdCAteiAi JGFzX2RpciIgJiYgYXNfZGlyPS4KKysgIGZvciBhY19leGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0 YWJsZV9leHRlbnNpb25zOyBkbworKyAgaWYgeyB0ZXN0IC1mICIkYXNfZGlyLyRhY193b3JkJGFj X2V4ZWNfZXh0IiAmJiAkYXNfdGVzdF94ICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0Ijsg fTsgdGhlbgorKyAgICBhY19jdl9wcm9nX2dzX29rPSJ5ZXMiCisrICAgICRhc19lY2hvICIkYXNf bWU6JExJTkVOTzogZm91bmQgJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgPiY1CisrICAg IGJyZWFrIDIKKysgIGZpCisrZG9uZQorK2RvbmUKKytJRlM9JGFzX3NhdmVfSUZTCisrCisrICB0 ZXN0IC16ICIkYWNfY3ZfcHJvZ19nc19vayIgJiYgYWNfY3ZfcHJvZ19nc19vaz0ibm8iCisrZmkK KytmaQorK2dzX29rPSRhY19jdl9wcm9nX2dzX29rCisraWYgdGVzdCAtbiAiJGdzX29rIjsgdGhl bgorKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGdzX29rIiA+JjUKKysk YXNfZWNobyAiJGdzX29rIiA+JjY7IH0KKytlbHNlCisrICB7ICRhc19lY2hvICIkYXNfbWU6JExJ TkVOTzogcmVzdWx0OiBubyIgPiY1CisrJGFzX2VjaG8gIm5vIiA+JjY7IH0KKytmaQorKworKwor K2lmIHRlc3QgIngkZW5hYmxlX2h0bWxfZG9jIiAhPSB4bm87IHRoZW4KKysgIHRlc3QgIngkZG94 eWdlbl9vayIgIT0geHllcyAmJiBlbmFibGVfaHRtbF9kb2M9bm8KKysgIHRlc3QgIngkbGF0ZXhf b2siICE9IHh5ZXMgJiYgZW5hYmxlX2h0bWxfZG9jPW5vCisrICB0ZXN0ICJ4JGR2aXBzX29rIiAh PSB4eWVzICYmIGVuYWJsZV9odG1sX2RvYz1ubworKyAgdGVzdCAieCRnc19vayIgIT0geHllcyAm JiBlbmFibGVfaHRtbF9kb2M9bm8KKysgICMgRXh0cmFjdCB0aGUgZmlyc3Qgd29yZCBvZiAicGVy bCIsIHNvIGl0IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3MuCisrc2V0IGR1bW15IHBl cmw7IGFjX3dvcmQ9JDIKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9y ICRhY193b3JkIiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyBmb3IgJGFjX3dvcmQuLi4gIiA+ JjY7IH0KKytpZiB0ZXN0ICIke2FjX2N2X3BhdGhfUEVSTCtzZXR9IiA9IHNldDsgdGhlbgorKyAg JGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKKytlbHNlCisrICBjYXNlICRQRVJMIGluCisrICBb XFwvXSogfCA/OltcXC9dKikKKysgIGFjX2N2X3BhdGhfUEVSTD0iJFBFUkwiICMgTGV0IHRoZSB1 c2VyIG92ZXJyaWRlIHRoZSB0ZXN0IHdpdGggYSBwYXRoLgorKyAgOzsKKysgICopCisrICBhc19z YXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCisrZm9yIGFzX2RpciBpbiAkUEFUSAor K2RvCisrICBJRlM9JGFzX3NhdmVfSUZTCisrICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9 LgorKyAgZm9yIGFjX2V4ZWNfZXh0IGluICcnICRhY19leGVjdXRhYmxlX2V4dGVuc2lvbnM7IGRv CisrICBpZiB7IHRlc3QgLWYgIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiICYmICRhc190 ZXN0X3ggIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiOyB9OyB0aGVuCisrICAgIGFjX2N2 X3BhdGhfUEVSTD0iJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIKKysgICAgJGFzX2VjaG8g IiRhc19tZTokTElORU5POiBmb3VuZCAkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiA+JjUK KysgICAgYnJlYWsgMgorKyAgZmkKKytkb25lCisrZG9uZQorK0lGUz0kYXNfc2F2ZV9JRlMKKysK KysgIDs7CisrZXNhYworK2ZpCisrUEVSTD0kYWNfY3ZfcGF0aF9QRVJMCisraWYgdGVzdCAtbiAi JFBFUkwiOyB0aGVuCisrICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkUEVS TCIgPiY1CisrJGFzX2VjaG8gIiRQRVJMIiA+JjY7IH0KKytlbHNlCisrICB7ICRhc19lY2hvICIk YXNfbWU6JExJTkVOTzogcmVzdWx0OiBubyIgPiY1CisrJGFzX2VjaG8gIm5vIiA+JjY7IH0KKytm aQorKworKworK2ZpCisrIGlmIHRlc3QgIngkZW5hYmxlX2h0bWxfZG9jIiA9IHh5ZXM7IHRoZW4K KysgIEhUTUxfRE9DX1RSVUU9CisrICBIVE1MX0RPQ19GQUxTRT0nIycKKytlbHNlCisrICBIVE1M X0RPQ19UUlVFPScjJworKyAgSFRNTF9ET0NfRkFMU0U9CisrZmkKKysKKysKKysKKysjIENoZWNr IGZvciBkaWZmIHByb2dyYW0gdXNlZCBmb3IgdGVzdHMKKysjIEV4dHJhY3QgdGhlIGZpcnN0IHdv cmQgb2YgImRpZmYiLCBzbyBpdCBjYW4gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmdzLgorK3Nl dCBkdW1teSBkaWZmOyBhY193b3JkPSQyCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNo ZWNraW5nIGZvciAkYWNfd29yZCIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yICRhY193 b3JkLi4uICIgPiY2OyB9CisraWYgdGVzdCAiJHthY19jdl9wcm9nX2RpZmZfb2src2V0fSIgPSBz ZXQ7IHRoZW4KKysgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2CisrZWxzZQorKyAgaWYgdGVz dCAtbiAiJGRpZmZfb2siOyB0aGVuCisrICBhY19jdl9wcm9nX2RpZmZfb2s9IiRkaWZmX29rIiAj IExldCB0aGUgdXNlciBvdmVycmlkZSB0aGUgdGVzdC4KKytlbHNlCisrYXNfc2F2ZV9JRlM9JElG UzsgSUZTPSRQQVRIX1NFUEFSQVRPUgorK2ZvciBhc19kaXIgaW4gJFBBVEgKKytkbworKyAgSUZT PSRhc19zYXZlX0lGUworKyAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KKysgIGZvciBh Y19leGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9leHRlbnNpb25zOyBkbworKyAgaWYgeyB0 ZXN0IC1mICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiAmJiAkYXNfdGVzdF94ICIkYXNf ZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IjsgfTsgdGhlbgorKyAgICBhY19jdl9wcm9nX2RpZmZf b2s9InllcyIKKysgICAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBmb3VuZCAkYXNfZGlyLyRh Y193b3JkJGFjX2V4ZWNfZXh0IiA+JjUKKysgICAgYnJlYWsgMgorKyAgZmkKKytkb25lCisrZG9u ZQorK0lGUz0kYXNfc2F2ZV9JRlMKKysKKysgIHRlc3QgLXogIiRhY19jdl9wcm9nX2RpZmZfb2si ICYmIGFjX2N2X3Byb2dfZGlmZl9vaz0ibm8iCisrZmkKKytmaQorK2RpZmZfb2s9JGFjX2N2X3By b2dfZGlmZl9vaworK2lmIHRlc3QgLW4gIiRkaWZmX29rIjsgdGhlbgorKyAgeyAkYXNfZWNobyAi JGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGRpZmZfb2siID4mNQorKyRhc19lY2hvICIkZGlmZl9v ayIgPiY2OyB9CisrZWxzZQorKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDog bm8iID4mNQorKyRhc19lY2hvICJubyIgPiY2OyB9CisrZmkKKysKKysKKysjIEV4dHJhY3QgdGhl IGZpcnN0IHdvcmQgb2YgInNlZCIsIHNvIGl0IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFy Z3MuCisrc2V0IGR1bW15IHNlZDsgYWNfd29yZD0kMgorK3sgJGFzX2VjaG8gIiRhc19tZTokTElO RU5POiBjaGVja2luZyBmb3IgJGFjX3dvcmQiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIGZv ciAkYWNfd29yZC4uLiAiID4mNjsgfQorK2lmIHRlc3QgIiR7YWNfY3ZfcHJvZ19zZWRfb2src2V0 fSIgPSBzZXQ7IHRoZW4KKysgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2CisrZWxzZQorKyAg aWYgdGVzdCAtbiAiJHNlZF9vayI7IHRoZW4KKysgIGFjX2N2X3Byb2dfc2VkX29rPSIkc2VkX29r IiAjIExldCB0aGUgdXNlciBvdmVycmlkZSB0aGUgdGVzdC4KKytlbHNlCisrYXNfc2F2ZV9JRlM9 JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgorK2ZvciBhc19kaXIgaW4gJFBBVEgKKytkbworKyAg SUZTPSRhc19zYXZlX0lGUworKyAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KKysgIGZv ciBhY19leGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9leHRlbnNpb25zOyBkbworKyAgaWYg eyB0ZXN0IC1mICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiAmJiAkYXNfdGVzdF94ICIk YXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IjsgfTsgdGhlbgorKyAgICBhY19jdl9wcm9nX3Nl ZF9vaz0ieWVzIgorKyAgICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGZvdW5kICRhc19kaXIv JGFjX3dvcmQkYWNfZXhlY19leHQiID4mNQorKyAgICBicmVhayAyCisrICBmaQorK2RvbmUKKytk b25lCisrSUZTPSRhc19zYXZlX0lGUworKworKyAgdGVzdCAteiAiJGFjX2N2X3Byb2dfc2VkX29r IiAmJiBhY19jdl9wcm9nX3NlZF9vaz0ibm8iCisrZmkKKytmaQorK3NlZF9vaz0kYWNfY3ZfcHJv Z19zZWRfb2sKKytpZiB0ZXN0IC1uICIkc2VkX29rIjsgdGhlbgorKyAgeyAkYXNfZWNobyAiJGFz X21lOiRMSU5FTk86IHJlc3VsdDogJHNlZF9vayIgPiY1CisrJGFzX2VjaG8gIiRzZWRfb2siID4m NjsgfQorK2Vsc2UKKysgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IG5vIiA+ JjUKKyskYXNfZWNobyAibm8iID4mNjsgfQorK2ZpCisrCisrCisrZW5hYmxlX3Rlc3RzPXllcwor K3Rlc3QgIngkZGlmZl9vayIgIT0geHllcyAmJiBlbmFibGVfdGVzdHM9bm8KKyt0ZXN0ICJ4JHNl ZF9vayIgIT0geHllcyAmJiBlbmFibGVfdGVzdHM9bm8KKysgaWYgdGVzdCAieCRlbmFibGVfdGVz dHMiID0geHllczsgdGhlbgorKyAgUlVOX1RFU1RTX1RSVUU9CisrICBSVU5fVEVTVFNfRkFMU0U9 JyMnCisrZWxzZQorKyAgUlVOX1RFU1RTX1RSVUU9JyMnCisrICBSVU5fVEVTVFNfRkFMU0U9Cisr ZmkKKysKKysKKysKKysjIENoZWNrcyBmb3IgaGVhZGVyIGZpbGVzCisrCisreyAkYXNfZWNobyAi JGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciBBTlNJIEMgaGVhZGVyIGZpbGVzIiA+JjUKKysk YXNfZWNob19uICJjaGVja2luZyBmb3IgQU5TSSBDIGhlYWRlciBmaWxlcy4uLiAiID4mNjsgfQor K2lmIHRlc3QgIiR7YWNfY3ZfaGVhZGVyX3N0ZGMrc2V0fSIgPSBzZXQ7IHRoZW4KKysgICRhc19l Y2hvX24gIihjYWNoZWQpICIgPiY2CisrZWxzZQorKyAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8 X0FDRU9GCisrLyogY29uZmRlZnMuaC4gICovCisrX0FDRU9GCisrY2F0IGNvbmZkZWZzLmggPj5j b25mdGVzdC4kYWNfZXh0CisrY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorKy8qIGVu ZCBjb25mZGVmcy5oLiAgKi8KKysjaW5jbHVkZSA8c3RkbGliLmg+CisrI2luY2x1ZGUgPHN0ZGFy Zy5oPgorKyNpbmNsdWRlIDxzdHJpbmcuaD4KKysjaW5jbHVkZSA8ZmxvYXQuaD4KKysKKytpbnQK KyttYWluICgpCisreworKworKyAgOworKyAgcmV0dXJuIDA7CisrfQorK19BQ0VPRgorK3JtIC1m IGNvbmZ0ZXN0LiRhY19vYmpleHQKKytpZiB7IChhY190cnk9IiRhY19jb21waWxlIgorK2Nhc2Ug IigoJGFjX3RyeSIgaW4KKysgICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190 cnk7OworKyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7CisrZXNhYworK2V2YWwgYWNfdHJ5X2Vj aG89IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIKKyskYXNfZWNobyAiJGFjX3Ry eV9lY2hvIikgPiY1CisrICAoZXZhbCAiJGFjX2NvbXBpbGUiKSAyPmNvbmZ0ZXN0LmVyMQorKyAg YWNfc3RhdHVzPSQ/CisrICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVy cgorKyAgcm0gLWYgY29uZnRlc3QuZXIxCisrICBjYXQgY29uZnRlc3QuZXJyID4mNQorKyAgJGFz X2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKysgIChleGl0ICRh Y19zdGF0dXMpOyB9ICYmIHsKKysJIHRlc3QgLXogIiRhY19jeHhfd2Vycm9yX2ZsYWciIHx8Cisr CSB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCisrICAgICAgIH0gJiYgdGVzdCAtcyBjb25mdGVzdC4k YWNfb2JqZXh0OyB0aGVuCisrICBhY19jdl9oZWFkZXJfc3RkYz15ZXMKKytlbHNlCisrICAkYXNf ZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKKytzZWQgJ3MvXi98IC8nIGNv bmZ0ZXN0LiRhY19leHQgPiY1CisrCisrCWFjX2N2X2hlYWRlcl9zdGRjPW5vCisrZmkKKysKKyty bSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19l eHQKKysKKytpZiB0ZXN0ICRhY19jdl9oZWFkZXJfc3RkYyA9IHllczsgdGhlbgorKyAgIyBTdW5P UyA0Lnggc3RyaW5nLmggZG9lcyBub3QgZGVjbGFyZSBtZW0qLCBjb250cmFyeSB0byBBTlNJLgor KyAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisrLyogY29uZmRlZnMuaC4gICovCisr X0FDRU9GCisrY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0CisrY2F0ID4+Y29uZnRl c3QuJGFjX2V4dCA8PF9BQ0VPRgorKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KKysjaW5jbHVkZSA8 c3RyaW5nLmg+CisrCisrX0FDRU9GCisraWYgKGV2YWwgIiRhY19jcHAgY29uZnRlc3QuJGFjX2V4 dCIpIDI+JjUgfAorKyAgJEVHUkVQICJtZW1jaHIiID4vZGV2L251bGwgMj4mMTsgdGhlbgorKyAg OgorK2Vsc2UKKysgIGFjX2N2X2hlYWRlcl9zdGRjPW5vCisrZmkKKytybSAtZiBjb25mdGVzdCoK KysKKytmaQorKworK2lmIHRlc3QgJGFjX2N2X2hlYWRlcl9zdGRjID0geWVzOyB0aGVuCisrICAj IElTQyAyLjAuMiBzdGRsaWIuaCBkb2VzIG5vdCBkZWNsYXJlIGZyZWUsIGNvbnRyYXJ5IHRvIEFO U0kuCisrICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKysvKiBjb25mZGVmcy5oLiAg Ki8KKytfQUNFT0YKKytjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKKytjYXQgPj5j b25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisrLyogZW5kIGNvbmZkZWZzLmguICAqLworKyNpbmNs dWRlIDxzdGRsaWIuaD4KKysKKytfQUNFT0YKKytpZiAoZXZhbCAiJGFjX2NwcCBjb25mdGVzdC4k YWNfZXh0IikgMj4mNSB8CisrICAkRUdSRVAgImZyZWUiID4vZGV2L251bGwgMj4mMTsgdGhlbgor KyAgOgorK2Vsc2UKKysgIGFjX2N2X2hlYWRlcl9zdGRjPW5vCisrZmkKKytybSAtZiBjb25mdGVz dCoKKysKKytmaQorKworK2lmIHRlc3QgJGFjX2N2X2hlYWRlcl9zdGRjID0geWVzOyB0aGVuCisr ICAjIC9iaW4vY2MgaW4gSXJpeC00LjAuNSBnZXRzIG5vbi1BTlNJIGN0eXBlIG1hY3JvcyB1bmxl c3MgdXNpbmcgLWFuc2kuCisrICBpZiB0ZXN0ICIkY3Jvc3NfY29tcGlsaW5nIiA9IHllczsgdGhl bgorKyAgOgorK2Vsc2UKKysgIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorKy8qIGNv bmZkZWZzLmguICAqLworK19BQ0VPRgorK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4 dAorK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKysvKiBlbmQgY29uZmRlZnMuaC4g ICovCisrI2luY2x1ZGUgPGN0eXBlLmg+CisrI2luY2x1ZGUgPHN0ZGxpYi5oPgorKyNpZiAoKCcg JyAmIDB4MEZGKSA9PSAweDAyMCkKKysjIGRlZmluZSBJU0xPV0VSKGMpICgnYScgPD0gKGMpICYm IChjKSA8PSAneicpCisrIyBkZWZpbmUgVE9VUFBFUihjKSAoSVNMT1dFUihjKSA/ICdBJyArICgo YykgLSAnYScpIDogKGMpKQorKyNlbHNlCisrIyBkZWZpbmUgSVNMT1dFUihjKSBcCisrCQkgICAo KCdhJyA8PSAoYykgJiYgKGMpIDw9ICdpJykgXAorKwkJICAgICB8fCAoJ2onIDw9IChjKSAmJiAo YykgPD0gJ3InKSBcCisrCQkgICAgIHx8ICgncycgPD0gKGMpICYmIChjKSA8PSAneicpKQorKyMg ZGVmaW5lIFRPVVBQRVIoYykgKElTTE9XRVIoYykgPyAoKGMpIHwgMHg0MCkgOiAoYykpCisrI2Vu ZGlmCisrCisrI2RlZmluZSBYT1IoZSwgZikgKCgoZSkgJiYgIShmKSkgfHwgKCEoZSkgJiYgKGYp KSkKKytpbnQKKyttYWluICgpCisreworKyAgaW50IGk7CisrICBmb3IgKGkgPSAwOyBpIDwgMjU2 OyBpKyspCisrICAgIGlmIChYT1IgKGlzbG93ZXIgKGkpLCBJU0xPV0VSIChpKSkKKysJfHwgdG91 cHBlciAoaSkgIT0gVE9VUFBFUiAoaSkpCisrICAgICAgcmV0dXJuIDI7CisrICByZXR1cm4gMDsK Kyt9CisrX0FDRU9GCisrcm0gLWYgY29uZnRlc3QkYWNfZXhlZXh0CisraWYgeyAoYWNfdHJ5PSIk YWNfbGluayIKKytjYXNlICIoKCRhY190cnkiIGluCisrICAqXCIqIHwgKlxgKiB8ICpcXCopIGFj X3RyeV9lY2hvPVwkYWNfdHJ5OzsKKysgICopIGFjX3RyeV9lY2hvPSRhY190cnk7OworK2VzYWMK KytldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCisr JGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4mNQorKyAgKGV2YWwgIiRhY19saW5rIikgMj4mNQor KyAgYWNfc3RhdHVzPSQ/CisrICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19z dGF0dXMiID4mNQorKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYgeyBhY190cnk9Jy4vY29uZnRl c3QkYWNfZXhlZXh0JworKyAgeyAoY2FzZSAiKCgkYWNfdHJ5IiBpbgorKyAgKlwiKiB8ICpcYCog fCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7CisrICAqKSBhY190cnlfZWNobz0kYWNfdHJ5 OzsKKytlc2FjCisrZXZhbCBhY190cnlfZWNobz0iXCJcJGFzX21lOiRMSU5FTk86ICRhY190cnlf ZWNob1wiIgorKyRhc19lY2hvICIkYWNfdHJ5X2VjaG8iKSA+JjUKKysgIChldmFsICIkYWNfdHJ5 IikgMj4mNQorKyAgYWNfc3RhdHVzPSQ/CisrICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwk PyA9ICRhY19zdGF0dXMiID4mNQorKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH07IHRoZW4KKysg IDoKKytlbHNlCisrICAkYXNfZWNobyAiJGFzX21lOiBwcm9ncmFtIGV4aXRlZCB3aXRoIHN0YXR1 cyAkYWNfc3RhdHVzIiA+JjUKKyskYXNfZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6 IiA+JjUKKytzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1CisrCisrKCBleGl0ICRh Y19zdGF0dXMgKQorK2FjX2N2X2hlYWRlcl9zdGRjPW5vCisrZmkKKytybSAtcmYgY29uZnRlc3Qu ZFNZTQorK3JtIC1mIGNvcmUgKi5jb3JlIGNvcmUuY29uZnRlc3QuKiBnbW9uLm91dCBiYi5vdXQg Y29uZnRlc3QkYWNfZXhlZXh0IGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAor K2ZpCisrCisrCisrZmkKKytmaQorK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6 ICRhY19jdl9oZWFkZXJfc3RkYyIgPiY1CisrJGFzX2VjaG8gIiRhY19jdl9oZWFkZXJfc3RkYyIg PiY2OyB9CisraWYgdGVzdCAkYWNfY3ZfaGVhZGVyX3N0ZGMgPSB5ZXM7IHRoZW4KKysKKytjYXQg Pj5jb25mZGVmcy5oIDw8XF9BQ0VPRgorKyNkZWZpbmUgU1REQ19IRUFERVJTIDEKKytfQUNFT0YK KysKKytmaQorKworK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyB3aGV0aGVy IHRpbWUuaCBhbmQgc3lzL3RpbWUuaCBtYXkgYm90aCBiZSBpbmNsdWRlZCIgPiY1CisrJGFzX2Vj aG9fbiAiY2hlY2tpbmcgd2hldGhlciB0aW1lLmggYW5kIHN5cy90aW1lLmggbWF5IGJvdGggYmUg aW5jbHVkZWQuLi4gIiA+JjY7IH0KKytpZiB0ZXN0ICIke2FjX2N2X2hlYWRlcl90aW1lK3NldH0i ID0gc2V0OyB0aGVuCisrICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysgIGNh dCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorKy8qIGNvbmZkZWZzLmguICAqLworK19BQ0VP RgorK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAorK2NhdCA+PmNvbmZ0ZXN0LiRh Y19leHQgPDxfQUNFT0YKKysvKiBlbmQgY29uZmRlZnMuaC4gICovCisrI2luY2x1ZGUgPHN5cy90 eXBlcy5oPgorKyNpbmNsdWRlIDxzeXMvdGltZS5oPgorKyNpbmNsdWRlIDx0aW1lLmg+CisrCisr aW50CisrbWFpbiAoKQorK3sKKytpZiAoKHN0cnVjdCB0bSAqKSAwKQorK3JldHVybiAwOworKyAg OworKyAgcmV0dXJuIDA7CisrfQorK19BQ0VPRgorK3JtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQK KytpZiB7IChhY190cnk9IiRhY19jb21waWxlIgorK2Nhc2UgIigoJGFjX3RyeSIgaW4KKysgICpc IiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OworKyAgKikgYWNfdHJ5X2Vj aG89JGFjX3RyeTs7CisrZXNhYworK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5P OiAkYWNfdHJ5X2VjaG9cIiIKKyskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1CisrICAoZXZh bCAiJGFjX2NvbXBpbGUiKSAyPmNvbmZ0ZXN0LmVyMQorKyAgYWNfc3RhdHVzPSQ/CisrICBncmVw IC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgorKyAgcm0gLWYgY29uZnRlc3Qu ZXIxCisrICBjYXQgY29uZnRlc3QuZXJyID4mNQorKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5P OiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKysgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmIHsKKysJ IHRlc3QgLXogIiRhY19jeHhfd2Vycm9yX2ZsYWciIHx8CisrCSB0ZXN0ICEgLXMgY29uZnRlc3Qu ZXJyCisrICAgICAgIH0gJiYgdGVzdCAtcyBjb25mdGVzdC4kYWNfb2JqZXh0OyB0aGVuCisrICBh Y19jdl9oZWFkZXJfdGltZT15ZXMKKytlbHNlCisrICAkYXNfZWNobyAiJGFzX21lOiBmYWlsZWQg cHJvZ3JhbSB3YXM6IiA+JjUKKytzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1Cisr CisrCWFjX2N2X2hlYWRlcl90aW1lPW5vCisrZmkKKysKKytybSAtZiBjb3JlIGNvbmZ0ZXN0LmVy ciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKKytmaQorK3sgJGFzX2VjaG8g IiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19jdl9oZWFkZXJfdGltZSIgPiY1CisrJGFzX2Vj aG8gIiRhY19jdl9oZWFkZXJfdGltZSIgPiY2OyB9CisraWYgdGVzdCAkYWNfY3ZfaGVhZGVyX3Rp bWUgPSB5ZXM7IHRoZW4KKysKKytjYXQgPj5jb25mZGVmcy5oIDw8XF9BQ0VPRgorKyNkZWZpbmUg VElNRV9XSVRIX1NZU19USU1FIDEKKytfQUNFT0YKKysKKytmaQorKworKworKworKworKworKwor KworKworKworKworKworKworKworKworKworK2ZvciBhY19oZWFkZXIgaW4gY21hdGggXAorKyAg ZGVxdWUgXAorKyAgZnN0cmVhbSBcCisrICBpb21hbmlwIFwKKysgIGlvc3RyZWFtIFwKKysgIHNz dHJlYW0gXAorKyAgbGltaXRzIFwKKysgIGxpc3QgXAorKyAgc2V0IFwKKysgIHZlY3RvciBcCisr ICBtYXAgXAorKyAgcXVldWUgXAorKyAgc3RkZXhjZXB0IFwKKysgIHN0cmluZworK2RvCisrYXNf YWNfSGVhZGVyPWAkYXNfZWNobyAiYWNfY3ZfaGVhZGVyXyRhY19oZWFkZXIiIHwgJGFzX3RyX3No YAorK2lmIHsgYXNfdmFyPSRhc19hY19IZWFkZXI7IGV2YWwgInRlc3QgXCJcJHskYXNfdmFyK3Nl dH1cIiA9IHNldCI7IH07IHRoZW4KKysgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVj a2luZyBmb3IgJGFjX2hlYWRlciIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yICRhY19o ZWFkZXIuLi4gIiA+JjY7IH0KKytpZiB7IGFzX3Zhcj0kYXNfYWNfSGVhZGVyOyBldmFsICJ0ZXN0 IFwiXCR7JGFzX3ZhcitzZXR9XCIgPSBzZXQiOyB9OyB0aGVuCisrICAkYXNfZWNob19uICIoY2Fj aGVkKSAiID4mNgorK2ZpCisrYWNfcmVzPWBldmFsICdhc192YWw9JHsnJGFzX2FjX0hlYWRlcid9 CisrCQkgJGFzX2VjaG8gIiRhc192YWwiJ2AKKysJICAgICAgIHsgJGFzX2VjaG8gIiRhc19tZTok TElORU5POiByZXN1bHQ6ICRhY19yZXMiID4mNQorKyRhc19lY2hvICIkYWNfcmVzIiA+JjY7IH0K KytlbHNlCisrICAjIElzIHRoZSBoZWFkZXIgY29tcGlsYWJsZT8KKyt7ICRhc19lY2hvICIkYXNf bWU6JExJTkVOTzogY2hlY2tpbmcgJGFjX2hlYWRlciB1c2FiaWxpdHkiID4mNQorKyRhc19lY2hv X24gImNoZWNraW5nICRhY19oZWFkZXIgdXNhYmlsaXR5Li4uICIgPiY2OyB9CisrY2F0ID5jb25m dGVzdC4kYWNfZXh0IDw8X0FDRU9GCisrLyogY29uZmRlZnMuaC4gICovCisrX0FDRU9GCisrY2F0 IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0CisrY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8 PF9BQ0VPRgorKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KKyskYWNfaW5jbHVkZXNfZGVmYXVsdAor KyNpbmNsdWRlIDwkYWNfaGVhZGVyPgorK19BQ0VPRgorK3JtIC1mIGNvbmZ0ZXN0LiRhY19vYmpl eHQKKytpZiB7IChhY190cnk9IiRhY19jb21waWxlIgorK2Nhc2UgIigoJGFjX3RyeSIgaW4KKysg ICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OworKyAgKikgYWNfdHJ5 X2VjaG89JGFjX3RyeTs7CisrZXNhYworK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElO RU5POiAkYWNfdHJ5X2VjaG9cIiIKKyskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1CisrICAo ZXZhbCAiJGFjX2NvbXBpbGUiKSAyPmNvbmZ0ZXN0LmVyMQorKyAgYWNfc3RhdHVzPSQ/CisrICBn cmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgorKyAgcm0gLWYgY29uZnRl c3QuZXIxCisrICBjYXQgY29uZnRlc3QuZXJyID4mNQorKyAgJGFzX2VjaG8gIiRhc19tZTokTElO RU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKysgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmIHsK KysJIHRlc3QgLXogIiRhY19jeHhfd2Vycm9yX2ZsYWciIHx8CisrCSB0ZXN0ICEgLXMgY29uZnRl c3QuZXJyCisrICAgICAgIH0gJiYgdGVzdCAtcyBjb25mdGVzdC4kYWNfb2JqZXh0OyB0aGVuCisr ICBhY19oZWFkZXJfY29tcGlsZXI9eWVzCisrZWxzZQorKyAgJGFzX2VjaG8gIiRhc19tZTogZmFp bGVkIHByb2dyYW0gd2FzOiIgPiY1Cisrc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4m NQorKworKwlhY19oZWFkZXJfY29tcGlsZXI9bm8KKytmaQorKworK3JtIC1mIGNvcmUgY29uZnRl c3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAorK3sgJGFzX2VjaG8g IiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19oZWFkZXJfY29tcGlsZXIiID4mNQorKyRhc19l Y2hvICIkYWNfaGVhZGVyX2NvbXBpbGVyIiA+JjY7IH0KKysKKysjIElzIHRoZSBoZWFkZXIgcHJl c2VudD8KKyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgJGFjX2hlYWRlciBw cmVzZW5jZSIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgJGFjX2hlYWRlciBwcmVzZW5jZS4u LiAiID4mNjsgfQorK2NhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorKy8qIGNvbmZkZWZz LmguICAqLworK19BQ0VPRgorK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAorK2Nh dCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKysvKiBlbmQgY29uZmRlZnMuaC4gICovCisr I2luY2x1ZGUgPCRhY19oZWFkZXI+CisrX0FDRU9GCisraWYgeyAoYWNfdHJ5PSIkYWNfY3BwIGNv bmZ0ZXN0LiRhY19leHQiCisrY2FzZSAiKCgkYWNfdHJ5IiBpbgorKyAgKlwiKiB8ICpcYCogfCAq XFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7CisrICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsK Kytlc2FjCisrZXZhbCBhY190cnlfZWNobz0iXCJcJGFzX21lOiRMSU5FTk86ICRhY190cnlfZWNo b1wiIgorKyRhc19lY2hvICIkYWNfdHJ5X2VjaG8iKSA+JjUKKysgIChldmFsICIkYWNfY3BwIGNv bmZ0ZXN0LiRhY19leHQiKSAyPmNvbmZ0ZXN0LmVyMQorKyAgYWNfc3RhdHVzPSQ/CisrICBncmVw IC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgorKyAgcm0gLWYgY29uZnRlc3Qu ZXIxCisrICBjYXQgY29uZnRlc3QuZXJyID4mNQorKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5P OiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKysgIChleGl0ICRhY19zdGF0dXMpOyB9ID4vZGV2L251 bGwgJiYgeworKwkgdGVzdCAteiAiJGFjX2N4eF9wcmVwcm9jX3dhcm5fZmxhZyRhY19jeHhfd2Vy cm9yX2ZsYWciIHx8CisrCSB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCisrICAgICAgIH07IHRoZW4K KysgIGFjX2hlYWRlcl9wcmVwcm9jPXllcworK2Vsc2UKKysgICRhc19lY2hvICIkYXNfbWU6IGZh aWxlZCBwcm9ncmFtIHdhczoiID4mNQorK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+ JjUKKysKKysgIGFjX2hlYWRlcl9wcmVwcm9jPW5vCisrZmkKKysKKytybSAtZiBjb25mdGVzdC5l cnIgY29uZnRlc3QuJGFjX2V4dAorK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6 ICRhY19oZWFkZXJfcHJlcHJvYyIgPiY1CisrJGFzX2VjaG8gIiRhY19oZWFkZXJfcHJlcHJvYyIg PiY2OyB9CisrCisrIyBTbz8gIFdoYXQgYWJvdXQgdGhpcyBoZWFkZXI/CisrY2FzZSAkYWNfaGVh ZGVyX2NvbXBpbGVyOiRhY19oZWFkZXJfcHJlcHJvYzokYWNfY3h4X3ByZXByb2Nfd2Fybl9mbGFn IGluCisrICB5ZXM6bm86ICkKKysgICAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5J Tkc6ICRhY19oZWFkZXI6IGFjY2VwdGVkIGJ5IHRoZSBjb21waWxlciwgcmVqZWN0ZWQgYnkgdGhl IHByZXByb2Nlc3NvciEiID4mNQorKyRhc19lY2hvICIkYXNfbWU6IFdBUk5JTkc6ICRhY19oZWFk ZXI6IGFjY2VwdGVkIGJ5IHRoZSBjb21waWxlciwgcmVqZWN0ZWQgYnkgdGhlIHByZXByb2Nlc3Nv ciEiID4mMjt9CisrICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBXQVJOSU5HOiAkYWNf aGVhZGVyOiBwcm9jZWVkaW5nIHdpdGggdGhlIGNvbXBpbGVyJ3MgcmVzdWx0IiA+JjUKKyskYXNf ZWNobyAiJGFzX21lOiBXQVJOSU5HOiAkYWNfaGVhZGVyOiBwcm9jZWVkaW5nIHdpdGggdGhlIGNv bXBpbGVyJ3MgcmVzdWx0IiA+JjI7fQorKyAgICBhY19oZWFkZXJfcHJlcHJvYz15ZXMKKysgICAg OzsKKysgIG5vOnllczoqICkKKysgICAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5J Tkc6ICRhY19oZWFkZXI6IHByZXNlbnQgYnV0IGNhbm5vdCBiZSBjb21waWxlZCIgPiY1CisrJGFz X2VjaG8gIiRhc19tZTogV0FSTklORzogJGFjX2hlYWRlcjogcHJlc2VudCBidXQgY2Fubm90IGJl IGNvbXBpbGVkIiA+JjI7fQorKyAgICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogV0FSTklO RzogJGFjX2hlYWRlcjogICAgIGNoZWNrIGZvciBtaXNzaW5nIHByZXJlcXVpc2l0ZSBoZWFkZXJz PyIgPiY1CisrJGFzX2VjaG8gIiRhc19tZTogV0FSTklORzogJGFjX2hlYWRlcjogICAgIGNoZWNr IGZvciBtaXNzaW5nIHByZXJlcXVpc2l0ZSBoZWFkZXJzPyIgPiYyO30KKysgICAgeyAkYXNfZWNo byAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6ICRhY19oZWFkZXI6IHNlZSB0aGUgQXV0b2NvbmYg ZG9jdW1lbnRhdGlvbiIgPiY1CisrJGFzX2VjaG8gIiRhc19tZTogV0FSTklORzogJGFjX2hlYWRl cjogc2VlIHRoZSBBdXRvY29uZiBkb2N1bWVudGF0aW9uIiA+JjI7fQorKyAgICB7ICRhc19lY2hv ICIkYXNfbWU6JExJTkVOTzogV0FSTklORzogJGFjX2hlYWRlcjogICAgIHNlY3Rpb24gXCJQcmVz ZW50IEJ1dCBDYW5ub3QgQmUgQ29tcGlsZWRcIiIgPiY1CisrJGFzX2VjaG8gIiRhc19tZTogV0FS TklORzogJGFjX2hlYWRlcjogICAgIHNlY3Rpb24gXCJQcmVzZW50IEJ1dCBDYW5ub3QgQmUgQ29t cGlsZWRcIiIgPiYyO30KKysgICAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6 ICRhY19oZWFkZXI6IHByb2NlZWRpbmcgd2l0aCB0aGUgcHJlcHJvY2Vzc29yJ3MgcmVzdWx0IiA+ JjUKKyskYXNfZWNobyAiJGFzX21lOiBXQVJOSU5HOiAkYWNfaGVhZGVyOiBwcm9jZWVkaW5nIHdp dGggdGhlIHByZXByb2Nlc3NvcidzIHJlc3VsdCIgPiYyO30KKysgICAgeyAkYXNfZWNobyAiJGFz X21lOiRMSU5FTk86IFdBUk5JTkc6ICRhY19oZWFkZXI6IGluIHRoZSBmdXR1cmUsIHRoZSBjb21w aWxlciB3aWxsIHRha2UgcHJlY2VkZW5jZSIgPiY1CisrJGFzX2VjaG8gIiRhc19tZTogV0FSTklO RzogJGFjX2hlYWRlcjogaW4gdGhlIGZ1dHVyZSwgdGhlIGNvbXBpbGVyIHdpbGwgdGFrZSBwcmVj ZWRlbmNlIiA+JjI7fQorKyAgICAoIGNhdCA8PFxfQVNCT1gKKysjIyAtLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIyMKKysjIyBSZXBvcnQgdGhpcyB0byBtc29i Y3pha0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQgIyMKKysjIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIyMKKytfQVNCT1gKKysgICAgICkgfCBzZWQgInMvXi8k YXNfbWU6IFdBUk5JTkc6ICAgICAvIiA+JjIKKysgICAgOzsKKytlc2FjCisreyAkYXNfZWNobyAi JGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciAkYWNfaGVhZGVyIiA+JjUKKyskYXNfZWNob19u ICJjaGVja2luZyBmb3IgJGFjX2hlYWRlci4uLiAiID4mNjsgfQorK2lmIHsgYXNfdmFyPSRhc19h Y19IZWFkZXI7IGV2YWwgInRlc3QgXCJcJHskYXNfdmFyK3NldH1cIiA9IHNldCI7IH07IHRoZW4K KysgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2CisrZWxzZQorKyAgZXZhbCAiJGFzX2FjX0hl YWRlcj1cJGFjX2hlYWRlcl9wcmVwcm9jIgorK2ZpCisrYWNfcmVzPWBldmFsICdhc192YWw9JHsn JGFzX2FjX0hlYWRlcid9CisrCQkgJGFzX2VjaG8gIiRhc192YWwiJ2AKKysJICAgICAgIHsgJGFz X2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19yZXMiID4mNQorKyRhc19lY2hvICIk YWNfcmVzIiA+JjY7IH0KKysKKytmaQorK2FzX3ZhbD1gZXZhbCAnYXNfdmFsPSR7JyRhc19hY19I ZWFkZXInfQorKwkJICRhc19lY2hvICIkYXNfdmFsIidgCisrICAgaWYgdGVzdCAieCRhc192YWwi ID0geCIieWVzOyB0aGVuCisrICBjYXQgPj5jb25mZGVmcy5oIDw8X0FDRU9GCisrI2RlZmluZSBg JGFzX2VjaG8gIkhBVkVfJGFjX2hlYWRlciIgfCAkYXNfdHJfY3BwYCAxCisrX0FDRU9GCisrCisr ZmkKKysKKytkb25lCisrCisrCisrCisrIyBEZWZpbmUgY29uZmlndXJlZCBmaWxlcworK2FjX2Nv bmZpZ19maWxlcz0iJGFjX2NvbmZpZ19maWxlcyBNYWtlZmlsZSBzb2NpLWNvbmZpZyBzb2NpLnBj IHNvY2kuc3BlYyBzb2NpL01ha2VmaWxlIHNvY2kvY29yZS9NYWtlZmlsZSBzb2NpL2NvcmUvdGVz dC9NYWtlZmlsZSBzb2NpL2JhY2tlbmRzL01ha2VmaWxlIHNvY2kvYmFja2VuZHMvbXlzcWwvTWFr ZWZpbGUgc29jaS9iYWNrZW5kcy9teXNxbC90ZXN0L01ha2VmaWxlIHNvY2kvYmFja2VuZHMvcG9z dGdyZXNxbC9NYWtlZmlsZSBzb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvdGVzdC9NYWtlZmlsZSBz b2NpL2JhY2tlbmRzL29yYWNsZS9NYWtlZmlsZSBzb2NpL2JhY2tlbmRzL29yYWNsZS90ZXN0L01h a2VmaWxlIG1hbi9NYWtlZmlsZSBkb2MvTWFrZWZpbGUgZG9jL2JhY2tlbmRzL01ha2VmaWxlIGJ1 aWxkL01ha2VmaWxlIGJ1aWxkL3VuaXgvTWFrZWZpbGUgYnVpbGQvbXN2YzgwL01ha2VmaWxlIGJ1 aWxkL21zdmM4MC9kbGwvTWFrZWZpbGUgYnVpbGQvbXN2YzgwL2xpYi9NYWtlZmlsZSIKKysKKysK KytjYXQgPmNvbmZjYWNoZSA8PFxfQUNFT0YKKysjIFRoaXMgZmlsZSBpcyBhIHNoZWxsIHNjcmlw dCB0aGF0IGNhY2hlcyB0aGUgcmVzdWx0cyBvZiBjb25maWd1cmUKKysjIHRlc3RzIHJ1biBvbiB0 aGlzIHN5c3RlbSBzbyB0aGV5IGNhbiBiZSBzaGFyZWQgYmV0d2VlbiBjb25maWd1cmUKKysjIHNj cmlwdHMgYW5kIGNvbmZpZ3VyZSBydW5zLCBzZWUgY29uZmlndXJlJ3Mgb3B0aW9uIC0tY29uZmln LWNhY2hlLgorKyMgSXQgaXMgbm90IHVzZWZ1bCBvbiBvdGhlciBzeXN0ZW1zLiAgSWYgaXQgY29u dGFpbnMgcmVzdWx0cyB5b3UgZG9uJ3QKKysjIHdhbnQgdG8ga2VlcCwgeW91IG1heSByZW1vdmUg b3IgZWRpdCBpdC4KKysjCisrIyBjb25maWcuc3RhdHVzIG9ubHkgcGF5cyBhdHRlbnRpb24gdG8g dGhlIGNhY2hlIGZpbGUgaWYgeW91IGdpdmUgaXQKKysjIHRoZSAtLXJlY2hlY2sgb3B0aW9uIHRv IHJlcnVuIGNvbmZpZ3VyZS4KKysjCisrIyBgYWNfY3ZfZW52X2ZvbycgdmFyaWFibGVzIChzZXQg b3IgdW5zZXQpIHdpbGwgYmUgb3ZlcnJpZGRlbiB3aGVuCisrIyBsb2FkaW5nIHRoaXMgZmlsZSwg b3RoZXIgKnVuc2V0KiBgYWNfY3ZfZm9vJyB3aWxsIGJlIGFzc2lnbmVkIHRoZQorKyMgZm9sbG93 aW5nIHZhbHVlcy4KKysKKytfQUNFT0YKKysKKysjIFRoZSBmb2xsb3dpbmcgd2F5IG9mIHdyaXRp bmcgdGhlIGNhY2hlIG1pc2hhbmRsZXMgbmV3bGluZXMgaW4gdmFsdWVzLAorKyMgYnV0IHdlIGtu b3cgb2Ygbm8gd29ya2Fyb3VuZCB0aGF0IGlzIHNpbXBsZSwgcG9ydGFibGUsIGFuZCBlZmZpY2ll bnQuCisrIyBTbywgd2Uga2lsbCB2YXJpYWJsZXMgY29udGFpbmluZyBuZXdsaW5lcy4KKysjIFVs dHJpeCBzaCBzZXQgd3JpdGVzIHRvIHN0ZGVyciBhbmQgY2FuJ3QgYmUgcmVkaXJlY3RlZCBkaXJl Y3RseSwKKysjIGFuZCBzZXRzIHRoZSBoaWdoIGJpdCBpbiB0aGUgY2FjaGUgZmlsZSB1bmxlc3Mg d2UgYXNzaWduIHRvIHRoZSB2YXJzLgorKygKKysgIGZvciBhY192YXIgaW4gYChzZXQpIDI+JjEg fCBzZWQgLW4gJ3MvXlwoW2EtekEtWl9dW2EtekEtWjAtOV9dKlwpPS4qL1wxL3AnYDsgZG8KKysg ICAgZXZhbCBhY192YWw9XCQkYWNfdmFyCisrICAgIGNhc2UgJGFjX3ZhbCBpbiAjKAorKyAgICAq JHthc19ubH0qKQorKyAgICAgIGNhc2UgJGFjX3ZhciBpbiAjKAorKyAgICAgICpfY3ZfKikgeyAk YXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6IGNhY2hlIHZhcmlhYmxlICRhY192YXIg Y29udGFpbnMgYSBuZXdsaW5lIiA+JjUKKyskYXNfZWNobyAiJGFzX21lOiBXQVJOSU5HOiBjYWNo ZSB2YXJpYWJsZSAkYWNfdmFyIGNvbnRhaW5zIGEgbmV3bGluZSIgPiYyO30gOzsKKysgICAgICBl c2FjCisrICAgICAgY2FzZSAkYWNfdmFyIGluICMoCisrICAgICAgXyB8IElGUyB8IGFzX25sKSA7 OyAjKAorKyAgICAgIEJBU0hfQVJHViB8IEJBU0hfU09VUkNFKSBldmFsICRhY192YXI9IDs7ICMo CisrICAgICAgKikgJGFzX3Vuc2V0ICRhY192YXIgOzsKKysgICAgICBlc2FjIDs7CisrICAgIGVz YWMKKysgIGRvbmUKKysKKysgIChzZXQpIDI+JjEgfAorKyAgICBjYXNlICRhc19ubGAoYWNfc3Bh Y2U9JyAnOyBzZXQpIDI+JjFgIGluICMoCisrICAgICoke2FzX25sfWFjX3NwYWNlPVwgKikKKysg ICAgICAjIGBzZXQnIGRvZXMgbm90IHF1b3RlIGNvcnJlY3RseSwgc28gYWRkIHF1b3RlcyAoZG91 YmxlLXF1b3RlCisrICAgICAgIyBzdWJzdGl0dXRpb24gdHVybnMgXFxcXCBpbnRvIFxcLCBhbmQg c2VkIHR1cm5zIFxcIGludG8gXCkuCisrICAgICAgc2VkIC1uIFwKKysJInMvJy8nXFxcXCcnL2c7 CisrCSAgcy9eXFwoW18kYXNfY3JfYWxudW1dKl9jdl9bXyRhc19jcl9hbG51bV0qXFwpPVxcKC4q XFwpL1xcMT0nXFwyJy9wIgorKyAgICAgIDs7ICMoCisrICAgICopCisrICAgICAgIyBgc2V0JyBx dW90ZXMgY29ycmVjdGx5IGFzIHJlcXVpcmVkIGJ5IFBPU0lYLCBzbyBkbyBub3QgYWRkIHF1b3Rl cy4KKysgICAgICBzZWQgLW4gIi9eW18kYXNfY3JfYWxudW1dKl9jdl9bXyRhc19jcl9hbG51bV0q PS9wIgorKyAgICAgIDs7CisrICAgIGVzYWMgfAorKyAgICBzb3J0CisrKSB8CisrICBzZWQgJwor KyAgICAgL15hY19jdl9lbnZfL2IgZW5kCisrICAgICB0IGNsZWFyCisrICAgICA6Y2xlYXIKKysg ICAgIHMvXlwoW149XSpcKT1cKC4qW3t9XS4qXCkkL3Rlc3QgIiR7XDErc2V0fSIgPSBzZXQgfHwg Ji8KKysgICAgIHQgZW5kCisrICAgICBzL15cKFtePV0qXCk9XCguKlwpJC9cMT0ke1wxPVwyfS8K KysgICAgIDplbmQnID4+Y29uZmNhY2hlCisraWYgZGlmZiAiJGNhY2hlX2ZpbGUiIGNvbmZjYWNo ZSA+L2Rldi9udWxsIDI+JjE7IHRoZW4gOjsgZWxzZQorKyAgaWYgdGVzdCAtdyAiJGNhY2hlX2Zp bGUiOyB0aGVuCisrICAgIHRlc3QgIngkY2FjaGVfZmlsZSIgIT0gIngvZGV2L251bGwiICYmCisr ICAgICAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHVwZGF0aW5nIGNhY2hlICRjYWNoZV9m aWxlIiA+JjUKKyskYXNfZWNobyAiJGFzX21lOiB1cGRhdGluZyBjYWNoZSAkY2FjaGVfZmlsZSIg PiY2O30KKysgICAgY2F0IGNvbmZjYWNoZSA+JGNhY2hlX2ZpbGUKKysgIGVsc2UKKysgICAgeyAk YXNfZWNobyAiJGFzX21lOiRMSU5FTk86IG5vdCB1cGRhdGluZyB1bndyaXRhYmxlIGNhY2hlICRj YWNoZV9maWxlIiA+JjUKKyskYXNfZWNobyAiJGFzX21lOiBub3QgdXBkYXRpbmcgdW53cml0YWJs ZSBjYWNoZSAkY2FjaGVfZmlsZSIgPiY2O30KKysgIGZpCisrZmkKKytybSAtZiBjb25mY2FjaGUK KysKKyt0ZXN0ICJ4JHByZWZpeCIgPSB4Tk9ORSAmJiBwcmVmaXg9JGFjX2RlZmF1bHRfcHJlZml4 CisrIyBMZXQgbWFrZSBleHBhbmQgZXhlY19wcmVmaXguCisrdGVzdCAieCRleGVjX3ByZWZpeCIg PSB4Tk9ORSAmJiBleGVjX3ByZWZpeD0nJHtwcmVmaXh9JworKworK0RFRlM9LURIQVZFX0NPTkZJ R19ICisrCisrYWNfbGlib2Jqcz0KKythY19sdGxpYm9ianM9CisrZm9yIGFjX2kgaW4gOiAkTElC T0JKUzsgZG8gdGVzdCAieCRhY19pIiA9IHg6ICYmIGNvbnRpbnVlCisrICAjIDEuIFJlbW92ZSB0 aGUgZXh0ZW5zaW9uLCBhbmQgJFUgaWYgYWxyZWFkeSBpbnN0YWxsZWQuCisrICBhY19zY3JpcHQ9 J3MvXCRVXC4vLi87cy9cLm8kLy87cy9cLm9iaiQvLycKKysgIGFjX2k9YCRhc19lY2hvICIkYWNf aSIgfCBzZWQgIiRhY19zY3JpcHQiYAorKyAgIyAyLiBQcmVwZW5kIExJQk9CSkRJUi4gIFdoZW4g dXNlZCB3aXRoIGF1dG9tYWtlPj0xLjEwIExJQk9CSkRJUgorKyAgIyAgICB3aWxsIGJlIHNldCB0 byB0aGUgZGlyZWN0b3J5IHdoZXJlIExJQk9CSlMgb2JqZWN0cyBhcmUgYnVpbHQuCisrICBhY19s aWJvYmpzPSIkYWNfbGlib2JqcyBcJHtMSUJPQkpESVJ9JGFjX2lcJFUuJGFjX29iamV4dCIKKysg IGFjX2x0bGlib2Jqcz0iJGFjX2x0bGlib2JqcyBcJHtMSUJPQkpESVJ9JGFjX2kiJyRVLmxvJwor K2RvbmUKKytMSUJPQkpTPSRhY19saWJvYmpzCisrCisrTFRMSUJPQkpTPSRhY19sdGxpYm9ianMK KysKKysKKysgaWYgdGVzdCAtbiAiJEVYRUVYVCI7IHRoZW4KKysgIGFtX19FWEVFWFRfVFJVRT0K KysgIGFtX19FWEVFWFRfRkFMU0U9JyMnCisrZWxzZQorKyAgYW1fX0VYRUVYVF9UUlVFPScjJwor KyAgYW1fX0VYRUVYVF9GQUxTRT0KKytmaQorKworK2lmIHRlc3QgLXogIiR7SEFWRV9DUFBVTklU X1RSVUV9IiAmJiB0ZXN0IC16ICIke0hBVkVfQ1BQVU5JVF9GQUxTRX0iOyB0aGVuCisrICB7IHsg JGFzX2VjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogY29uZGl0aW9uYWwgXCJIQVZFX0NQUFVO SVRcIiB3YXMgbmV2ZXIgZGVmaW5lZC4KKytVc3VhbGx5IHRoaXMgbWVhbnMgdGhlIG1hY3JvIHdh cyBvbmx5IGludm9rZWQgY29uZGl0aW9uYWxseS4iID4mNQorKyRhc19lY2hvICIkYXNfbWU6IGVy cm9yOiBjb25kaXRpb25hbCBcIkhBVkVfQ1BQVU5JVFwiIHdhcyBuZXZlciBkZWZpbmVkLgorK1Vz dWFsbHkgdGhpcyBtZWFucyB0aGUgbWFjcm8gd2FzIG9ubHkgaW52b2tlZCBjb25kaXRpb25hbGx5 LiIgPiYyO30KKysgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KKytmaQorK2lmIHRlc3QgLXog IiR7QU1ERVBfVFJVRX0iICYmIHRlc3QgLXogIiR7QU1ERVBfRkFMU0V9IjsgdGhlbgorKyAgeyB7 ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IGNvbmRpdGlvbmFsIFwiQU1ERVBcIiB3 YXMgbmV2ZXIgZGVmaW5lZC4KKytVc3VhbGx5IHRoaXMgbWVhbnMgdGhlIG1hY3JvIHdhcyBvbmx5 IGludm9rZWQgY29uZGl0aW9uYWxseS4iID4mNQorKyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBj b25kaXRpb25hbCBcIkFNREVQXCIgd2FzIG5ldmVyIGRlZmluZWQuCisrVXN1YWxseSB0aGlzIG1l YW5zIHRoZSBtYWNybyB3YXMgb25seSBpbnZva2VkIGNvbmRpdGlvbmFsbHkuIiA+JjI7fQorKyAg IHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQorK2ZpCisraWYgdGVzdCAteiAiJHthbV9fZmFzdGRl cENYWF9UUlVFfSIgJiYgdGVzdCAteiAiJHthbV9fZmFzdGRlcENYWF9GQUxTRX0iOyB0aGVuCisr ICB7IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogY29uZGl0aW9uYWwgXCJhbV9f ZmFzdGRlcENYWFwiIHdhcyBuZXZlciBkZWZpbmVkLgorK1VzdWFsbHkgdGhpcyBtZWFucyB0aGUg bWFjcm8gd2FzIG9ubHkgaW52b2tlZCBjb25kaXRpb25hbGx5LiIgPiY1CisrJGFzX2VjaG8gIiRh c19tZTogZXJyb3I6IGNvbmRpdGlvbmFsIFwiYW1fX2Zhc3RkZXBDWFhcIiB3YXMgbmV2ZXIgZGVm aW5lZC4KKytVc3VhbGx5IHRoaXMgbWVhbnMgdGhlIG1hY3JvIHdhcyBvbmx5IGludm9rZWQgY29u ZGl0aW9uYWxseS4iID4mMjt9CisrICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9CisrZmkKKytp ZiB0ZXN0IC16ICIke2FtX19mYXN0ZGVwQ0NfVFJVRX0iICYmIHRlc3QgLXogIiR7YW1fX2Zhc3Rk ZXBDQ19GQUxTRX0iOyB0aGVuCisrICB7IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBlcnJv cjogY29uZGl0aW9uYWwgXCJhbV9fZmFzdGRlcENDXCIgd2FzIG5ldmVyIGRlZmluZWQuCisrVXN1 YWxseSB0aGlzIG1lYW5zIHRoZSBtYWNybyB3YXMgb25seSBpbnZva2VkIGNvbmRpdGlvbmFsbHku IiA+JjUKKyskYXNfZWNobyAiJGFzX21lOiBlcnJvcjogY29uZGl0aW9uYWwgXCJhbV9fZmFzdGRl cENDXCIgd2FzIG5ldmVyIGRlZmluZWQuCisrVXN1YWxseSB0aGlzIG1lYW5zIHRoZSBtYWNybyB3 YXMgb25seSBpbnZva2VkIGNvbmRpdGlvbmFsbHkuIiA+JjI7fQorKyAgIHsgKGV4aXQgMSk7IGV4 aXQgMTsgfTsgfQorK2ZpCisraWYgdGVzdCAteiAiJHthbV9fZmFzdGRlcENYWF9UUlVFfSIgJiYg dGVzdCAteiAiJHthbV9fZmFzdGRlcENYWF9GQUxTRX0iOyB0aGVuCisrICB7IHsgJGFzX2VjaG8g IiRhc19tZTokTElORU5POiBlcnJvcjogY29uZGl0aW9uYWwgXCJhbV9fZmFzdGRlcENYWFwiIHdh cyBuZXZlciBkZWZpbmVkLgorK1VzdWFsbHkgdGhpcyBtZWFucyB0aGUgbWFjcm8gd2FzIG9ubHkg aW52b2tlZCBjb25kaXRpb25hbGx5LiIgPiY1CisrJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IGNv bmRpdGlvbmFsIFwiYW1fX2Zhc3RkZXBDWFhcIiB3YXMgbmV2ZXIgZGVmaW5lZC4KKytVc3VhbGx5 IHRoaXMgbWVhbnMgdGhlIG1hY3JvIHdhcyBvbmx5IGludm9rZWQgY29uZGl0aW9uYWxseS4iID4m Mjt9CisrICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9CisrZmkKKytpZiB0ZXN0IC16ICIke1NP Q0lfSEVBREVSU19CVVJJRURfVFJVRX0iICYmIHRlc3QgLXogIiR7U09DSV9IRUFERVJTX0JVUklF RF9GQUxTRX0iOyB0aGVuCisrICB7IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjog Y29uZGl0aW9uYWwgXCJTT0NJX0hFQURFUlNfQlVSSUVEXCIgd2FzIG5ldmVyIGRlZmluZWQuCisr VXN1YWxseSB0aGlzIG1lYW5zIHRoZSBtYWNybyB3YXMgb25seSBpbnZva2VkIGNvbmRpdGlvbmFs bHkuIiA+JjUKKyskYXNfZWNobyAiJGFzX21lOiBlcnJvcjogY29uZGl0aW9uYWwgXCJTT0NJX0hF QURFUlNfQlVSSUVEXCIgd2FzIG5ldmVyIGRlZmluZWQuCisrVXN1YWxseSB0aGlzIG1lYW5zIHRo ZSBtYWNybyB3YXMgb25seSBpbnZva2VkIGNvbmRpdGlvbmFsbHkuIiA+JjI7fQorKyAgIHsgKGV4 aXQgMSk7IGV4aXQgMTsgfTsgfQorK2ZpCisraWYgdGVzdCAteiAiJHtTT0NJX01ZU1FMX0hFQURF UlNfQlVSSUVEX1RSVUV9IiAmJiB0ZXN0IC16ICIke1NPQ0lfTVlTUUxfSEVBREVSU19CVVJJRURf RkFMU0V9IjsgdGhlbgorKyAgeyB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IGNv bmRpdGlvbmFsIFwiU09DSV9NWVNRTF9IRUFERVJTX0JVUklFRFwiIHdhcyBuZXZlciBkZWZpbmVk LgorK1VzdWFsbHkgdGhpcyBtZWFucyB0aGUgbWFjcm8gd2FzIG9ubHkgaW52b2tlZCBjb25kaXRp b25hbGx5LiIgPiY1CisrJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IGNvbmRpdGlvbmFsIFwiU09D SV9NWVNRTF9IRUFERVJTX0JVUklFRFwiIHdhcyBuZXZlciBkZWZpbmVkLgorK1VzdWFsbHkgdGhp cyBtZWFucyB0aGUgbWFjcm8gd2FzIG9ubHkgaW52b2tlZCBjb25kaXRpb25hbGx5LiIgPiYyO30K KysgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KKytmaQorK2lmIHRlc3QgLXogIiR7U09DSV9Q T1NUR1JFU1FMX0hFQURFUlNfQlVSSUVEX1RSVUV9IiAmJiB0ZXN0IC16ICIke1NPQ0lfUE9TVEdS RVNRTF9IRUFERVJTX0JVUklFRF9GQUxTRX0iOyB0aGVuCisrICB7IHsgJGFzX2VjaG8gIiRhc19t ZTokTElORU5POiBlcnJvcjogY29uZGl0aW9uYWwgXCJTT0NJX1BPU1RHUkVTUUxfSEVBREVSU19C VVJJRURcIiB3YXMgbmV2ZXIgZGVmaW5lZC4KKytVc3VhbGx5IHRoaXMgbWVhbnMgdGhlIG1hY3Jv IHdhcyBvbmx5IGludm9rZWQgY29uZGl0aW9uYWxseS4iID4mNQorKyRhc19lY2hvICIkYXNfbWU6 IGVycm9yOiBjb25kaXRpb25hbCBcIlNPQ0lfUE9TVEdSRVNRTF9IRUFERVJTX0JVUklFRFwiIHdh cyBuZXZlciBkZWZpbmVkLgorK1VzdWFsbHkgdGhpcyBtZWFucyB0aGUgbWFjcm8gd2FzIG9ubHkg aW52b2tlZCBjb25kaXRpb25hbGx5LiIgPiYyO30KKysgICB7IChleGl0IDEpOyBleGl0IDE7IH07 IH0KKytmaQorK2lmIHRlc3QgLXogIiR7SEFWRV9NWVNRTF9UUlVFfSIgJiYgdGVzdCAteiAiJHtI QVZFX01ZU1FMX0ZBTFNFfSI7IHRoZW4KKysgIHsgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86 IGVycm9yOiBjb25kaXRpb25hbCBcIkhBVkVfTVlTUUxcIiB3YXMgbmV2ZXIgZGVmaW5lZC4KKytV c3VhbGx5IHRoaXMgbWVhbnMgdGhlIG1hY3JvIHdhcyBvbmx5IGludm9rZWQgY29uZGl0aW9uYWxs eS4iID4mNQorKyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBjb25kaXRpb25hbCBcIkhBVkVfTVlT UUxcIiB3YXMgbmV2ZXIgZGVmaW5lZC4KKytVc3VhbGx5IHRoaXMgbWVhbnMgdGhlIG1hY3JvIHdh cyBvbmx5IGludm9rZWQgY29uZGl0aW9uYWxseS4iID4mMjt9CisrICAgeyAoZXhpdCAxKTsgZXhp dCAxOyB9OyB9CisrZmkKKytpZiB0ZXN0IC16ICIke0hBVkVfT1JBQ0xFX1RSVUV9IiAmJiB0ZXN0 IC16ICIke0hBVkVfT1JBQ0xFX0ZBTFNFfSI7IHRoZW4KKysgIHsgeyAkYXNfZWNobyAiJGFzX21l OiRMSU5FTk86IGVycm9yOiBjb25kaXRpb25hbCBcIkhBVkVfT1JBQ0xFXCIgd2FzIG5ldmVyIGRl ZmluZWQuCisrVXN1YWxseSB0aGlzIG1lYW5zIHRoZSBtYWNybyB3YXMgb25seSBpbnZva2VkIGNv bmRpdGlvbmFsbHkuIiA+JjUKKyskYXNfZWNobyAiJGFzX21lOiBlcnJvcjogY29uZGl0aW9uYWwg XCJIQVZFX09SQUNMRVwiIHdhcyBuZXZlciBkZWZpbmVkLgorK1VzdWFsbHkgdGhpcyBtZWFucyB0 aGUgbWFjcm8gd2FzIG9ubHkgaW52b2tlZCBjb25kaXRpb25hbGx5LiIgPiYyO30KKysgICB7IChl eGl0IDEpOyBleGl0IDE7IH07IH0KKytmaQorK2lmIHRlc3QgLXogIiR7SEFWRV9QT1NUR1JFU1FM X1RSVUV9IiAmJiB0ZXN0IC16ICIke0hBVkVfUE9TVEdSRVNRTF9GQUxTRX0iOyB0aGVuCisrICB7 IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogY29uZGl0aW9uYWwgXCJIQVZFX1BP U1RHUkVTUUxcIiB3YXMgbmV2ZXIgZGVmaW5lZC4KKytVc3VhbGx5IHRoaXMgbWVhbnMgdGhlIG1h Y3JvIHdhcyBvbmx5IGludm9rZWQgY29uZGl0aW9uYWxseS4iID4mNQorKyRhc19lY2hvICIkYXNf bWU6IGVycm9yOiBjb25kaXRpb25hbCBcIkhBVkVfUE9TVEdSRVNRTFwiIHdhcyBuZXZlciBkZWZp bmVkLgorK1VzdWFsbHkgdGhpcyBtZWFucyB0aGUgbWFjcm8gd2FzIG9ubHkgaW52b2tlZCBjb25k aXRpb25hbGx5LiIgPiYyO30KKysgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KKytmaQorK2lm IHRlc3QgLXogIiR7SU5GT19ET0NfVFJVRX0iICYmIHRlc3QgLXogIiR7SU5GT19ET0NfRkFMU0V9 IjsgdGhlbgorKyAgeyB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IGNvbmRpdGlv bmFsIFwiSU5GT19ET0NcIiB3YXMgbmV2ZXIgZGVmaW5lZC4KKytVc3VhbGx5IHRoaXMgbWVhbnMg dGhlIG1hY3JvIHdhcyBvbmx5IGludm9rZWQgY29uZGl0aW9uYWxseS4iID4mNQorKyRhc19lY2hv ICIkYXNfbWU6IGVycm9yOiBjb25kaXRpb25hbCBcIklORk9fRE9DXCIgd2FzIG5ldmVyIGRlZmlu ZWQuCisrVXN1YWxseSB0aGlzIG1lYW5zIHRoZSBtYWNybyB3YXMgb25seSBpbnZva2VkIGNvbmRp dGlvbmFsbHkuIiA+JjI7fQorKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQorK2ZpCisraWYg dGVzdCAteiAiJHtIVE1MX0RPQ19UUlVFfSIgJiYgdGVzdCAteiAiJHtIVE1MX0RPQ19GQUxTRX0i OyB0aGVuCisrICB7IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogY29uZGl0aW9u YWwgXCJIVE1MX0RPQ1wiIHdhcyBuZXZlciBkZWZpbmVkLgorK1VzdWFsbHkgdGhpcyBtZWFucyB0 aGUgbWFjcm8gd2FzIG9ubHkgaW52b2tlZCBjb25kaXRpb25hbGx5LiIgPiY1CisrJGFzX2VjaG8g IiRhc19tZTogZXJyb3I6IGNvbmRpdGlvbmFsIFwiSFRNTF9ET0NcIiB3YXMgbmV2ZXIgZGVmaW5l ZC4KKytVc3VhbGx5IHRoaXMgbWVhbnMgdGhlIG1hY3JvIHdhcyBvbmx5IGludm9rZWQgY29uZGl0 aW9uYWxseS4iID4mMjt9CisrICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9CisrZmkKKytpZiB0 ZXN0IC16ICIke1JVTl9URVNUU19UUlVFfSIgJiYgdGVzdCAteiAiJHtSVU5fVEVTVFNfRkFMU0V9 IjsgdGhlbgorKyAgeyB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IGNvbmRpdGlv bmFsIFwiUlVOX1RFU1RTXCIgd2FzIG5ldmVyIGRlZmluZWQuCisrVXN1YWxseSB0aGlzIG1lYW5z IHRoZSBtYWNybyB3YXMgb25seSBpbnZva2VkIGNvbmRpdGlvbmFsbHkuIiA+JjUKKyskYXNfZWNo byAiJGFzX21lOiBlcnJvcjogY29uZGl0aW9uYWwgXCJSVU5fVEVTVFNcIiB3YXMgbmV2ZXIgZGVm aW5lZC4KKytVc3VhbGx5IHRoaXMgbWVhbnMgdGhlIG1hY3JvIHdhcyBvbmx5IGludm9rZWQgY29u ZGl0aW9uYWxseS4iID4mMjt9CisrICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9CisrZmkKKysK Kys6ICR7Q09ORklHX1NUQVRVUz0uL2NvbmZpZy5zdGF0dXN9CisrYWNfd3JpdGVfZmFpbD0wCisr YWNfY2xlYW5fZmlsZXNfc2F2ZT0kYWNfY2xlYW5fZmlsZXMKKythY19jbGVhbl9maWxlcz0iJGFj X2NsZWFuX2ZpbGVzICRDT05GSUdfU1RBVFVTIgorK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5P OiBjcmVhdGluZyAkQ09ORklHX1NUQVRVUyIgPiY1CisrJGFzX2VjaG8gIiRhc19tZTogY3JlYXRp bmcgJENPTkZJR19TVEFUVVMiID4mNjt9CisrY2F0ID4kQ09ORklHX1NUQVRVUyA8PF9BQ0VPRiB8 fCBhY193cml0ZV9mYWlsPTEKKysjISAkU0hFTEwKKysjIEdlbmVyYXRlZCBieSAkYXNfbWUuCisr IyBSdW4gdGhpcyBmaWxlIHRvIHJlY3JlYXRlIHRoZSBjdXJyZW50IGNvbmZpZ3VyYXRpb24uCisr IyBDb21waWxlciBvdXRwdXQgcHJvZHVjZWQgYnkgY29uZmlndXJlLCB1c2VmdWwgZm9yIGRlYnVn Z2luZworKyMgY29uZmlndXJlLCBpcyBpbiBjb25maWcubG9nIGlmIGl0IGV4aXN0cy4KKysKKytk ZWJ1Zz1mYWxzZQorK2FjX2NzX3JlY2hlY2s9ZmFsc2UKKythY19jc19zaWxlbnQ9ZmFsc2UKKytT SEVMTD1cJHtDT05GSUdfU0hFTEwtJFNIRUxMfQorK19BQ0VPRgorKworK2NhdCA+PiRDT05GSUdf U1RBVFVTIDw8XF9BQ0VPRiB8fCBhY193cml0ZV9mYWlsPTEKKysjIyAtLS0tLS0tLS0tLS0tLS0t LS0tLS0gIyMKKysjIyBNNHNoIEluaXRpYWxpemF0aW9uLiAgIyMKKysjIyAtLS0tLS0tLS0tLS0t LS0tLS0tLS0gIyMKKysKKysjIEJlIG1vcmUgQm91cm5lIGNvbXBhdGlibGUKKytEVUFMQ0FTRT0x OyBleHBvcnQgRFVBTENBU0UgIyBmb3IgTUtTIHNoCisraWYgdGVzdCAtbiAiJHtaU0hfVkVSU0lP TitzZXR9IiAmJiAoZW11bGF0ZSBzaCkgPi9kZXYvbnVsbCAyPiYxOyB0aGVuCisrICBlbXVsYXRl IHNoCisrICBOVUxMQ01EPToKKysgICMgUHJlLTQuMiB2ZXJzaW9ucyBvZiBac2ggZG8gd29yZCBz cGxpdHRpbmcgb24gJHsxKyIkQCJ9LCB3aGljaAorKyAgIyBpcyBjb250cmFyeSB0byBvdXIgdXNh Z2UuICBEaXNhYmxlIHRoaXMgZmVhdHVyZS4KKysgIGFsaWFzIC1nICckezErIiRAIn0nPSciJEAi JworKyAgc2V0b3B0IE5PX0dMT0JfU1VCU1QKKytlbHNlCisrICBjYXNlIGAoc2V0IC1vKSAyPi9k ZXYvbnVsbGAgaW4KKysgICpwb3NpeCopIHNldCAtbyBwb3NpeCA7OworK2VzYWMKKysKKytmaQor KworKworKworKworKyMgUEFUSCBuZWVkcyBDUgorKyMgQXZvaWQgZGVwZW5kaW5nIHVwb24gQ2hh cmFjdGVyIFJhbmdlcy4KKythc19jcl9sZXR0ZXJzPSdhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5 eicKKythc19jcl9MRVRURVJTPSdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWicKKythc19jcl9M ZXR0ZXJzPSRhc19jcl9sZXR0ZXJzJGFzX2NyX0xFVFRFUlMKKythc19jcl9kaWdpdHM9JzAxMjM0 NTY3ODknCisrYXNfY3JfYWxudW09JGFzX2NyX0xldHRlcnMkYXNfY3JfZGlnaXRzCisrCisrYXNf bmw9JworKycKKytleHBvcnQgYXNfbmwKKysjIFByaW50aW5nIGEgbG9uZyBzdHJpbmcgY3Jhc2hl cyBTb2xhcmlzIDcgL3Vzci9iaW4vcHJpbnRmLgorK2FzX2VjaG89J1xcXFxcXFxcXFxcXFxcXFxc XFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxc XFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFwnCisrYXNfZWNobz0kYXNfZWNobyRhc19lY2hv JGFzX2VjaG8kYXNfZWNobyRhc19lY2hvCisrYXNfZWNobz0kYXNfZWNobyRhc19lY2hvJGFzX2Vj aG8kYXNfZWNobyRhc19lY2hvJGFzX2VjaG8KKytpZiAodGVzdCAiWGBwcmludGYgJXMgJGFzX2Vj aG9gIiA9ICJYJGFzX2VjaG8iKSAyPi9kZXYvbnVsbDsgdGhlbgorKyAgYXNfZWNobz0ncHJpbnRm ICVzXG4nCisrICBhc19lY2hvX249J3ByaW50ZiAlcycKKytlbHNlCisrICBpZiB0ZXN0ICJYYCgv dXNyL3VjYi9lY2hvIC1uIC1uICRhc19lY2hvKSAyPi9kZXYvbnVsbGAiID0gIlgtbiAkYXNfZWNo byI7IHRoZW4KKysgICAgYXNfZWNob19ib2R5PSdldmFsIC91c3IvdWNiL2VjaG8gLW4gIiQxJGFz X25sIicKKysgICAgYXNfZWNob19uPScvdXNyL3VjYi9lY2hvIC1uJworKyAgZWxzZQorKyAgICBh c19lY2hvX2JvZHk9J2V2YWwgZXhwciAiWCQxIiA6ICJYXFwoLipcXCkiJworKyAgICBhc19lY2hv X25fYm9keT0nZXZhbAorKyAgICAgIGFyZz0kMTsKKysgICAgICBjYXNlICRhcmcgaW4KKysgICAg ICAqIiRhc19ubCIqKQorKwlleHByICJYJGFyZyIgOiAiWFxcKC4qXFwpJGFzX25sIjsKKysJYXJn PWBleHByICJYJGFyZyIgOiAiLiokYXNfbmxcXCguKlxcKSJgOzsKKysgICAgICBlc2FjOworKyAg ICAgIGV4cHIgIlgkYXJnIiA6ICJYXFwoLipcXCkiIHwgdHIgLWQgIiRhc19ubCIKKysgICAgJwor KyAgICBleHBvcnQgYXNfZWNob19uX2JvZHkKKysgICAgYXNfZWNob19uPSdzaCAtYyAkYXNfZWNo b19uX2JvZHkgYXNfZWNobycKKysgIGZpCisrICBleHBvcnQgYXNfZWNob19ib2R5CisrICBhc19l Y2hvPSdzaCAtYyAkYXNfZWNob19ib2R5IGFzX2VjaG8nCisrZmkKKysKKysjIFRoZSB1c2VyIGlz IGFsd2F5cyByaWdodC4KKytpZiB0ZXN0ICIke1BBVEhfU0VQQVJBVE9SK3NldH0iICE9IHNldDsg dGhlbgorKyAgUEFUSF9TRVBBUkFUT1I9OgorKyAgKFBBVEg9Jy9iaW47L2Jpbic7IEZQQVRIPSRQ QVRIOyBzaCAtYyA6KSA+L2Rldi9udWxsIDI+JjEgJiYgeworKyAgICAoUEFUSD0nL2JpbjovYmlu JzsgRlBBVEg9JFBBVEg7IHNoIC1jIDopID4vZGV2L251bGwgMj4mMSB8fAorKyAgICAgIFBBVEhf U0VQQVJBVE9SPSc7JworKyAgfQorK2ZpCisrCisrIyBTdXBwb3J0IHVuc2V0IHdoZW4gcG9zc2li bGUuCisraWYgKCAoTUFJTD02MDsgdW5zZXQgTUFJTCkgfHwgZXhpdCkgPi9kZXYvbnVsbCAyPiYx OyB0aGVuCisrICBhc191bnNldD11bnNldAorK2Vsc2UKKysgIGFzX3Vuc2V0PWZhbHNlCisrZmkK KysKKysKKysjIElGUworKyMgV2UgbmVlZCBzcGFjZSwgdGFiIGFuZCBuZXcgbGluZSwgaW4gcHJl Y2lzZWx5IHRoYXQgb3JkZXIuICBRdW90aW5nIGlzCisrIyB0aGVyZSB0byBwcmV2ZW50IGVkaXRv cnMgZnJvbSBjb21wbGFpbmluZyBhYm91dCBzcGFjZS10YWIuCisrIyAoSWYgX0FTX1BBVEhfV0FM SyB3ZXJlIGNhbGxlZCB3aXRoIElGUyB1bnNldCwgaXQgd291bGQgZGlzYWJsZSB3b3JkCisrIyBz cGxpdHRpbmcgYnkgc2V0dGluZyBJRlMgdG8gZW1wdHkgdmFsdWUuKQorK0lGUz0iICIiCSRhc19u bCIKKysKKysjIEZpbmQgd2hvIHdlIGFyZS4gIExvb2sgaW4gdGhlIHBhdGggaWYgd2UgY29udGFp biBubyBkaXJlY3Rvcnkgc2VwYXJhdG9yLgorK2Nhc2UgJDAgaW4KKysgICpbXFwvXSogKSBhc19t eXNlbGY9JDAgOzsKKysgICopIGFzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IK Kytmb3IgYXNfZGlyIGluICRQQVRICisrZG8KKysgIElGUz0kYXNfc2F2ZV9JRlMKKysgIHRlc3Qg LXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCisrICB0ZXN0IC1yICIkYXNfZGlyLyQwIiAmJiBhc19t eXNlbGY9JGFzX2Rpci8kMCAmJiBicmVhaworK2RvbmUKKytJRlM9JGFzX3NhdmVfSUZTCisrCisr ICAgICA7OworK2VzYWMKKysjIFdlIGRpZCBub3QgZmluZCBvdXJzZWx2ZXMsIG1vc3QgcHJvYmFi bHkgd2Ugd2VyZSBydW4gYXMgYHNoIENPTU1BTkQnCisrIyBpbiB3aGljaCBjYXNlIHdlIGFyZSBu b3QgdG8gYmUgZm91bmQgaW4gdGhlIHBhdGguCisraWYgdGVzdCAieCRhc19teXNlbGYiID0geDsg dGhlbgorKyAgYXNfbXlzZWxmPSQwCisrZmkKKytpZiB0ZXN0ICEgLWYgIiRhc19teXNlbGYiOyB0 aGVuCisrICAkYXNfZWNobyAiJGFzX215c2VsZjogZXJyb3I6IGNhbm5vdCBmaW5kIG15c2VsZjsg cmVydW4gd2l0aCBhbiBhYnNvbHV0ZSBmaWxlIG5hbWUiID4mMgorKyAgeyAoZXhpdCAxKTsgZXhp dCAxOyB9CisrZmkKKysKKysjIFdvcmsgYXJvdW5kIGJ1Z3MgaW4gcHJlLTMuMCBVV0lOIGtzaC4K Kytmb3IgYXNfdmFyIGluIEVOViBNQUlMIE1BSUxQQVRICisrZG8gKCRhc191bnNldCAkYXNfdmFy KSA+L2Rldi9udWxsIDI+JjEgJiYgJGFzX3Vuc2V0ICRhc192YXIKKytkb25lCisrUFMxPSckICcK KytQUzI9Jz4gJworK1BTND0nKyAnCisrCisrIyBOTFMgbnVpc2FuY2VzLgorK0xDX0FMTD1DCisr ZXhwb3J0IExDX0FMTAorK0xBTkdVQUdFPUMKKytleHBvcnQgTEFOR1VBR0UKKysKKysjIFJlcXVp cmVkIHRvIHVzZSBiYXNlbmFtZS4KKytpZiBleHByIGEgOiAnXChhXCknID4vZGV2L251bGwgMj4m MSAmJgorKyAgIHRlc3QgIlhgZXhwciAwMDAwMSA6ICcuKlwoLi4uXCknYCIgPSBYMDAxOyB0aGVu CisrICBhc19leHByPWV4cHIKKytlbHNlCisrICBhc19leHByPWZhbHNlCisrZmkKKysKKytpZiAo YmFzZW5hbWUgLS0gLykgPi9kZXYvbnVsbCAyPiYxICYmIHRlc3QgIlhgYmFzZW5hbWUgLS0gLyAy PiYxYCIgPSAiWC8iOyB0aGVuCisrICBhc19iYXNlbmFtZT1iYXNlbmFtZQorK2Vsc2UKKysgIGFz X2Jhc2VuYW1lPWZhbHNlCisrZmkKKysKKysKKysjIE5hbWUgb2YgdGhlIGV4ZWN1dGFibGUuCisr YXNfbWU9YCRhc19iYXNlbmFtZSAtLSAiJDAiIHx8CisrJGFzX2V4cHIgWC8iJDAiIDogJy4qL1wo W14vXVteL10qXCkvKiQnIFx8IFwKKysJIFgiJDAiIDogJ1hcKC8vXCkkJyBcfCBcCisrCSBYIiQw IiA6ICdYXCgvXCknIFx8IC4gMj4vZGV2L251bGwgfHwKKyskYXNfZWNobyBYLyIkMCIgfAorKyAg ICBzZWQgJy9eLipcL1woW14vXVteL10qXClcLyokL3sKKysJICAgIHMvL1wxLworKwkgICAgcQor KwkgIH0KKysJICAvXlhcL1woXC9cL1wpJC97CisrCSAgICBzLy9cMS8KKysJICAgIHEKKysJICB9 CisrCSAgL15YXC9cKFwvXCkuKi97CisrCSAgICBzLy9cMS8KKysJICAgIHEKKysJICB9CisrCSAg cy8uKi8uLzsgcSdgCisrCisrIyBDRFBBVEguCisrJGFzX3Vuc2V0IENEUEFUSAorKworKworKwor KyAgYXNfbGluZW5vXzE9JExJTkVOTworKyAgYXNfbGluZW5vXzI9JExJTkVOTworKyAgdGVzdCAi eCRhc19saW5lbm9fMSIgIT0gIngkYXNfbGluZW5vXzIiICYmCisrICB0ZXN0ICJ4YGV4cHIgJGFz X2xpbmVub18xICsgMWAiID0gIngkYXNfbGluZW5vXzIiIHx8IHsKKysKKysgICMgQ3JlYXRlICRh c19tZS5saW5lbm8gYXMgYSBjb3B5IG9mICRhc19teXNlbGYsIGJ1dCB3aXRoICRMSU5FTk8KKysg ICMgdW5pZm9ybWx5IHJlcGxhY2VkIGJ5IHRoZSBsaW5lIG51bWJlci4gIFRoZSBmaXJzdCAnc2Vk JyBpbnNlcnRzIGEKKysgICMgbGluZS1udW1iZXIgbGluZSBhZnRlciBlYWNoIGxpbmUgdXNpbmcg JExJTkVOTzsgdGhlIHNlY29uZCAnc2VkJworKyAgIyBkb2VzIHRoZSByZWFsIHdvcmsuICBUaGUg c2Vjb25kIHNjcmlwdCB1c2VzICdOJyB0byBwYWlyIGVhY2gKKysgICMgbGluZS1udW1iZXIgbGlu ZSB3aXRoIHRoZSBsaW5lIGNvbnRhaW5pbmcgJExJTkVOTywgYW5kIGFwcGVuZHMKKysgICMgdHJh aWxpbmcgJy0nIGR1cmluZyBzdWJzdGl0dXRpb24gc28gdGhhdCAkTElORU5PIGlzIG5vdCBhIHNw ZWNpYWwKKysgICMgY2FzZSBhdCBsaW5lIGVuZC4KKysgICMgKFJhamEgUiBIYXJpbmF0aCBzdWdn ZXN0ZWQgc2VkICc9JywgYW5kIFBhdWwgRWdnZXJ0IHdyb3RlIHRoZQorKyAgIyBzY3JpcHRzIHdp dGggb3B0aW1pemF0aW9uIGhlbHAgZnJvbSBQYW9sbyBCb256aW5pLiAgQmxhbWUgTGVlCisrICAj IEUuIE1jTWFob24gKDE5MzEtMTk4OSkgZm9yIHNlZCdzIHN5bnRheC4gIDotKQorKyAgc2VkIC1u ICcKKysgICAgcAorKyAgICAvWyRdTElORU5PLz0KKysgICcgPCRhc19teXNlbGYgfAorKyAgICBz ZWQgJworKyAgICAgIHMvWyRdTElORU5PLiovJi0vCisrICAgICAgdCBsaW5lbm8KKysgICAgICBi CisrICAgICAgOmxpbmVubworKyAgICAgIE4KKysgICAgICA6bG9vcAorKyAgICAgIHMvWyRdTElO RU5PXChbXickYXNfY3JfYWxudW0nX10uKlxuXClcKC4qXCkvXDJcMVwyLworKyAgICAgIHQgbG9v cAorKyAgICAgIHMvLVxuLiovLworKyAgICAnID4kYXNfbWUubGluZW5vICYmCisrICBjaG1vZCAr eCAiJGFzX21lLmxpbmVubyIgfHwKKysgICAgeyAkYXNfZWNobyAiJGFzX21lOiBlcnJvcjogY2Fu bm90IGNyZWF0ZSAkYXNfbWUubGluZW5vOyByZXJ1biB3aXRoIGEgUE9TSVggc2hlbGwiID4mMgor KyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQorKworKyAgIyBEb24ndCB0cnkgdG8gZXhlYyBh cyBpdCBjaGFuZ2VzICRbMF0sIGNhdXNpbmcgYWxsIHNvcnQgb2YgcHJvYmxlbXMKKysgICMgKHRo ZSBkaXJuYW1lIG9mICRbMF0gaXMgbm90IHRoZSBwbGFjZSB3aGVyZSB3ZSBtaWdodCBmaW5kIHRo ZQorKyAgIyBvcmlnaW5hbCBhbmQgc28gb24uICBBdXRvY29uZiBpcyBlc3BlY2lhbGx5IHNlbnNp dGl2ZSB0byB0aGlzKS4KKysgIC4gIi4vJGFzX21lLmxpbmVubyIKKysgICMgRXhpdCBzdGF0dXMg aXMgdGhhdCBvZiB0aGUgbGFzdCBjb21tYW5kLgorKyAgZXhpdAorK30KKysKKysKKytpZiAoYXNf ZGlyPWBkaXJuYW1lIC0tIC9gICYmIHRlc3QgIlgkYXNfZGlyIiA9IFgvKSA+L2Rldi9udWxsIDI+ JjE7IHRoZW4KKysgIGFzX2Rpcm5hbWU9ZGlybmFtZQorK2Vsc2UKKysgIGFzX2Rpcm5hbWU9ZmFs c2UKKytmaQorKworK0VDSE9fQz0gRUNIT19OPSBFQ0hPX1Q9CisrY2FzZSBgZWNobyAtbiB4YCBp bgorKy1uKikKKysgIGNhc2UgYGVjaG8gJ3hcYydgIGluCisrICAqYyopIEVDSE9fVD0nCSc7Owkj IEVDSE9fVCBpcyBzaW5nbGUgdGFiIGNoYXJhY3Rlci4KKysgICopICAgRUNIT19DPSdcYyc7Owor KyAgZXNhYzs7CisrKikKKysgIEVDSE9fTj0nLW4nOzsKKytlc2FjCisraWYgZXhwciBhIDogJ1wo YVwpJyA+L2Rldi9udWxsIDI+JjEgJiYKKysgICB0ZXN0ICJYYGV4cHIgMDAwMDEgOiAnLipcKC4u LlwpJ2AiID0gWDAwMTsgdGhlbgorKyAgYXNfZXhwcj1leHByCisrZWxzZQorKyAgYXNfZXhwcj1m YWxzZQorK2ZpCisrCisrcm0gLWYgY29uZiQkIGNvbmYkJC5leGUgY29uZiQkLmZpbGUKKytpZiB0 ZXN0IC1kIGNvbmYkJC5kaXI7IHRoZW4KKysgIHJtIC1mIGNvbmYkJC5kaXIvY29uZiQkLmZpbGUK KytlbHNlCisrICBybSAtZiBjb25mJCQuZGlyCisrICBta2RpciBjb25mJCQuZGlyIDI+L2Rldi9u dWxsCisrZmkKKytpZiAoZWNobyA+Y29uZiQkLmZpbGUpIDI+L2Rldi9udWxsOyB0aGVuCisrICBp ZiBsbiAtcyBjb25mJCQuZmlsZSBjb25mJCQgMj4vZGV2L251bGw7IHRoZW4KKysgICAgYXNfbG5f cz0nbG4gLXMnCisrICAgICMgLi4uIGJ1dCB0aGVyZSBhcmUgdHdvIGdvdGNoYXM6CisrICAgICMg MSkgT24gTVNZUywgYm90aCBgbG4gLXMgZmlsZSBkaXInIGFuZCBgbG4gZmlsZSBkaXInIGZhaWwu CisrICAgICMgMikgREpHUFAgPCAyLjA0IGhhcyBubyBzeW1saW5rczsgYGxuIC1zJyBjcmVhdGVz IGEgd3JhcHBlciBleGVjdXRhYmxlLgorKyAgICAjIEluIGJvdGggY2FzZXMsIHdlIGhhdmUgdG8g ZGVmYXVsdCB0byBgY3AgLXAnLgorKyAgICBsbiAtcyBjb25mJCQuZmlsZSBjb25mJCQuZGlyIDI+ L2Rldi9udWxsICYmIHRlc3QgISAtZiBjb25mJCQuZXhlIHx8CisrICAgICAgYXNfbG5fcz0nY3Ag LXAnCisrICBlbGlmIGxuIGNvbmYkJC5maWxlIGNvbmYkJCAyPi9kZXYvbnVsbDsgdGhlbgorKyAg ICBhc19sbl9zPWxuCisrICBlbHNlCisrICAgIGFzX2xuX3M9J2NwIC1wJworKyAgZmkKKytlbHNl CisrICBhc19sbl9zPSdjcCAtcCcKKytmaQorK3JtIC1mIGNvbmYkJCBjb25mJCQuZXhlIGNvbmYk JC5kaXIvY29uZiQkLmZpbGUgY29uZiQkLmZpbGUKKytybWRpciBjb25mJCQuZGlyIDI+L2Rldi9u dWxsCisrCisraWYgbWtkaXIgLXAgLiAyPi9kZXYvbnVsbDsgdGhlbgorKyAgYXNfbWtkaXJfcD06 CisrZWxzZQorKyAgdGVzdCAtZCAuLy1wICYmIHJtZGlyIC4vLXAKKysgIGFzX21rZGlyX3A9ZmFs c2UKKytmaQorKworK2lmIHRlc3QgLXggLyA+L2Rldi9udWxsIDI+JjE7IHRoZW4KKysgIGFzX3Rl c3RfeD0ndGVzdCAteCcKKytlbHNlCisrICBpZiBscyAtZEwgLyA+L2Rldi9udWxsIDI+JjE7IHRo ZW4KKysgICAgYXNfbHNfTF9vcHRpb249TAorKyAgZWxzZQorKyAgICBhc19sc19MX29wdGlvbj0K KysgIGZpCisrICBhc190ZXN0X3g9JworKyAgICBldmFsIHNoIC1jICdcJycKKysgICAgICBpZiB0 ZXN0IC1kICIkMSI7IHRoZW4KKysJdGVzdCAtZCAiJDEvLiI7CisrICAgICAgZWxzZQorKwljYXNl ICQxIGluCisrCS0qKXNldCAiLi8kMSI7OworKwllc2FjOworKwljYXNlIGBscyAtbGQnJGFzX2xz X0xfb3B0aW9uJyAiJDEiIDI+L2Rldi9udWxsYCBpbgorKwk/Pz9bc3hdKik6OzsqKWZhbHNlOztl c2FjO2ZpCisrICAgICdcJycgc2gKKysgICcKKytmaQorK2FzX2V4ZWN1dGFibGVfcD0kYXNfdGVz dF94CisrCisrIyBTZWQgZXhwcmVzc2lvbiB0byBtYXAgYSBzdHJpbmcgb250byBhIHZhbGlkIENQ UCBuYW1lLgorK2FzX3RyX2NwcD0iZXZhbCBzZWQgJ3klKiRhc19jcl9sZXR0ZXJzJVAkYXNfY3Jf TEVUVEVSUyU7cyVbXl8kYXNfY3JfYWxudW1dJV8lZyciCisrCisrIyBTZWQgZXhwcmVzc2lvbiB0 byBtYXAgYSBzdHJpbmcgb250byBhIHZhbGlkIHZhcmlhYmxlIG5hbWUuCisrYXNfdHJfc2g9ImV2 YWwgc2VkICd5JSorJXBwJTtzJVteXyRhc19jcl9hbG51bV0lXyVnJyIKKysKKysKKytleGVjIDY+ JjEKKysKKysjIFNhdmUgdGhlIGxvZyBtZXNzYWdlLCB0byBrZWVwICRbMF0gYW5kIHNvIG9uIG1l YW5pbmdmdWwsIGFuZCB0bworKyMgcmVwb3J0IGFjdHVhbCBpbnB1dCB2YWx1ZXMgb2YgQ09ORklH X0ZJTEVTIGV0Yy4gaW5zdGVhZCBvZiB0aGVpcgorKyMgdmFsdWVzIGFmdGVyIG9wdGlvbnMgaGFu ZGxpbmcuCisrYWNfbG9nPSIKKytUaGlzIGZpbGUgd2FzIGV4dGVuZGVkIGJ5IFNPQ0kgJGFzX21l IDMuMC4wLCB3aGljaCB3YXMKKytnZW5lcmF0ZWQgYnkgR05VIEF1dG9jb25mIDIuNjMuICBJbnZv Y2F0aW9uIGNvbW1hbmQgbGluZSB3YXMKKysKKysgIENPTkZJR19GSUxFUyAgICA9ICRDT05GSUdf RklMRVMKKysgIENPTkZJR19IRUFERVJTICA9ICRDT05GSUdfSEVBREVSUworKyAgQ09ORklHX0xJ TktTICAgID0gJENPTkZJR19MSU5LUworKyAgQ09ORklHX0NPTU1BTkRTID0gJENPTkZJR19DT01N QU5EUworKyAgJCAkMCAkQAorKworK29uIGAoaG9zdG5hbWUgfHwgdW5hbWUgLW4pIDI+L2Rldi9u dWxsIHwgc2VkIDFxYAorKyIKKysKKytfQUNFT0YKKysKKytjYXNlICRhY19jb25maWdfZmlsZXMg aW4gKiIKKysiKikgc2V0IHggJGFjX2NvbmZpZ19maWxlczsgc2hpZnQ7IGFjX2NvbmZpZ19maWxl cz0kKjs7CisrZXNhYworKworK2Nhc2UgJGFjX2NvbmZpZ19oZWFkZXJzIGluICoiCisrIiopIHNl dCB4ICRhY19jb25maWdfaGVhZGVyczsgc2hpZnQ7IGFjX2NvbmZpZ19oZWFkZXJzPSQqOzsKKytl c2FjCisrCisrCisrY2F0ID4+JENPTkZJR19TVEFUVVMgPDxfQUNFT0YgfHwgYWNfd3JpdGVfZmFp bD0xCisrIyBGaWxlcyB0aGF0IGNvbmZpZy5zdGF0dXMgd2FzIG1hZGUgZm9yLgorK2NvbmZpZ19m aWxlcz0iJGFjX2NvbmZpZ19maWxlcyIKKytjb25maWdfaGVhZGVycz0iJGFjX2NvbmZpZ19oZWFk ZXJzIgorK2NvbmZpZ19jb21tYW5kcz0iJGFjX2NvbmZpZ19jb21tYW5kcyIKKysKKytfQUNFT0YK KysKKytjYXQgPj4kQ09ORklHX1NUQVRVUyA8PFxfQUNFT0YgfHwgYWNfd3JpdGVfZmFpbD0xCisr YWNfY3NfdXNhZ2U9IlwKKytcYCRhc19tZScgaW5zdGFudGlhdGVzIGZpbGVzIGZyb20gdGVtcGxh dGVzIGFjY29yZGluZyB0byB0aGUKKytjdXJyZW50IGNvbmZpZ3VyYXRpb24uCisrCisrVXNhZ2U6 ICQwIFtPUFRJT05dLi4uIFtGSUxFXS4uLgorKworKyAgLWgsIC0taGVscCAgICAgICBwcmludCB0 aGlzIGhlbHAsIHRoZW4gZXhpdAorKyAgLVYsIC0tdmVyc2lvbiAgICBwcmludCB2ZXJzaW9uIG51 bWJlciBhbmQgY29uZmlndXJhdGlvbiBzZXR0aW5ncywgdGhlbiBleGl0CisrICAtcSwgLS1xdWll dCwgLS1zaWxlbnQKKysgICAgICAgICAgICAgICAgICAgZG8gbm90IHByaW50IHByb2dyZXNzIG1l c3NhZ2VzCisrICAtZCwgLS1kZWJ1ZyAgICAgIGRvbid0IHJlbW92ZSB0ZW1wb3JhcnkgZmlsZXMK KysgICAgICAtLXJlY2hlY2sgICAgdXBkYXRlICRhc19tZSBieSByZWNvbmZpZ3VyaW5nIGluIHRo ZSBzYW1lIGNvbmRpdGlvbnMKKysgICAgICAtLWZpbGU9RklMRVs6VEVNUExBVEVdCisrICAgICAg ICAgICAgICAgICAgIGluc3RhbnRpYXRlIHRoZSBjb25maWd1cmF0aW9uIGZpbGUgRklMRQorKyAg ICAgIC0taGVhZGVyPUZJTEVbOlRFTVBMQVRFXQorKyAgICAgICAgICAgICAgICAgICBpbnN0YW50 aWF0ZSB0aGUgY29uZmlndXJhdGlvbiBoZWFkZXIgRklMRQorKworK0NvbmZpZ3VyYXRpb24gZmls ZXM6CisrJGNvbmZpZ19maWxlcworKworK0NvbmZpZ3VyYXRpb24gaGVhZGVyczoKKyskY29uZmln X2hlYWRlcnMKKysKKytDb25maWd1cmF0aW9uIGNvbW1hbmRzOgorKyRjb25maWdfY29tbWFuZHMK KysKKytSZXBvcnQgYnVncyB0byA8YnVnLWF1dG9jb25mQGdudS5vcmc+LiIKKysKKytfQUNFT0YK KytjYXQgPj4kQ09ORklHX1NUQVRVUyA8PF9BQ0VPRiB8fCBhY193cml0ZV9mYWlsPTEKKythY19j c192ZXJzaW9uPSJcXAorK1NPQ0kgY29uZmlnLnN0YXR1cyAzLjAuMAorK2NvbmZpZ3VyZWQgYnkg JDAsIGdlbmVyYXRlZCBieSBHTlUgQXV0b2NvbmYgMi42MywKKysgIHdpdGggb3B0aW9ucyBcXCJg JGFzX2VjaG8gIiRhY19jb25maWd1cmVfYXJncyIgfCBzZWQgJ3MvXiAvLzsgcy9bXFwiIlxgXCRd L1xcXFwmL2cnYFxcIgorKworK0NvcHlyaWdodCAoQykgMjAwOCBGcmVlIFNvZnR3YXJlIEZvdW5k YXRpb24sIEluYy4KKytUaGlzIGNvbmZpZy5zdGF0dXMgc2NyaXB0IGlzIGZyZWUgc29mdHdhcmU7 IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24KKytnaXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lv biB0byBjb3B5LCBkaXN0cmlidXRlIGFuZCBtb2RpZnkgaXQuIgorKworK2FjX3B3ZD0nJGFjX3B3 ZCcKKytzcmNkaXI9JyRzcmNkaXInCisrSU5TVEFMTD0nJElOU1RBTEwnCisrTUtESVJfUD0nJE1L RElSX1AnCisrQVdLPSckQVdLJworK3Rlc3QgLW4gIlwkQVdLIiB8fCBBV0s9YXdrCisrX0FDRU9G CisrCisrY2F0ID4+JENPTkZJR19TVEFUVVMgPDxcX0FDRU9GIHx8IGFjX3dyaXRlX2ZhaWw9MQor KyMgVGhlIGRlZmF1bHQgbGlzdHMgYXBwbHkgaWYgdGhlIHVzZXIgZG9lcyBub3Qgc3BlY2lmeSBh bnkgZmlsZS4KKythY19uZWVkX2RlZmF1bHRzPToKKyt3aGlsZSB0ZXN0ICQjICE9IDAKKytkbwor KyAgY2FzZSAkMSBpbgorKyAgLS0qPSopCisrICAgIGFjX29wdGlvbj1gZXhwciAiWCQxIiA6ICdY XChbXj1dKlwpPSdgCisrICAgIGFjX29wdGFyZz1gZXhwciAiWCQxIiA6ICdYW149XSo9XCguKlwp J2AKKysgICAgYWNfc2hpZnQ9OgorKyAgICA7OworKyAgKikKKysgICAgYWNfb3B0aW9uPSQxCisr ICAgIGFjX29wdGFyZz0kMgorKyAgICBhY19zaGlmdD1zaGlmdAorKyAgICA7OworKyAgZXNhYwor KworKyAgY2FzZSAkYWNfb3B0aW9uIGluCisrICAjIEhhbmRsaW5nIG9mIHRoZSBvcHRpb25zLgor KyAgLXJlY2hlY2sgfCAtLXJlY2hlY2sgfCAtLXJlY2hlYyB8IC0tcmVjaGUgfCAtLXJlY2ggfCAt LXJlYyB8IC0tcmUgfCAtLXIpCisrICAgIGFjX2NzX3JlY2hlY2s9OiA7OworKyAgLS12ZXJzaW9u IHwgLS12ZXJzaW8gfCAtLXZlcnNpIHwgLS12ZXJzIHwgLS12ZXIgfCAtLXZlIHwgLS12IHwgLVYg KQorKyAgICAkYXNfZWNobyAiJGFjX2NzX3ZlcnNpb24iOyBleGl0IDs7CisrICAtLWRlYnVnIHwg LS1kZWJ1IHwgLS1kZWIgfCAtLWRlIHwgLS1kIHwgLWQgKQorKyAgICBkZWJ1Zz06IDs7CisrICAt LWZpbGUgfCAtLWZpbCB8IC0tZmkgfCAtLWYgKQorKyAgICAkYWNfc2hpZnQKKysgICAgY2FzZSAk YWNfb3B0YXJnIGluCisrICAgICpcJyopIGFjX29wdGFyZz1gJGFzX2VjaG8gIiRhY19vcHRhcmci IHwgc2VkICJzLycvJ1xcXFxcXFxcJycvZyJgIDs7CisrICAgIGVzYWMKKysgICAgQ09ORklHX0ZJ TEVTPSIkQ09ORklHX0ZJTEVTICckYWNfb3B0YXJnJyIKKysgICAgYWNfbmVlZF9kZWZhdWx0cz1m YWxzZTs7CisrICAtLWhlYWRlciB8IC0taGVhZGUgfCAtLWhlYWQgfCAtLWhlYSApCisrICAgICRh Y19zaGlmdAorKyAgICBjYXNlICRhY19vcHRhcmcgaW4KKysgICAgKlwnKikgYWNfb3B0YXJnPWAk YXNfZWNobyAiJGFjX29wdGFyZyIgfCBzZWQgInMvJy8nXFxcXFxcXFwnJy9nImAgOzsKKysgICAg ZXNhYworKyAgICBDT05GSUdfSEVBREVSUz0iJENPTkZJR19IRUFERVJTICckYWNfb3B0YXJnJyIK KysgICAgYWNfbmVlZF9kZWZhdWx0cz1mYWxzZTs7CisrICAtLWhlIHwgLS1oKQorKyAgICAjIENv bmZsaWN0IGJldHdlZW4gLS1oZWxwIGFuZCAtLWhlYWRlcgorKyAgICB7ICRhc19lY2hvICIkYXNf bWU6IGVycm9yOiBhbWJpZ3VvdXMgb3B0aW9uOiAkMQorK1RyeSBcYCQwIC0taGVscCcgZm9yIG1v cmUgaW5mb3JtYXRpb24uIiA+JjIKKysgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH07OworKyAg LS1oZWxwIHwgLS1oZWwgfCAtaCApCisrICAgICRhc19lY2hvICIkYWNfY3NfdXNhZ2UiOyBleGl0 IDs7CisrICAtcSB8IC1xdWlldCB8IC0tcXVpZXQgfCAtLXF1aWUgfCAtLXF1aSB8IC0tcXUgfCAt LXEgXAorKyAgfCAtc2lsZW50IHwgLS1zaWxlbnQgfCAtLXNpbGVuIHwgLS1zaWxlIHwgLS1zaWwg fCAtLXNpIHwgLS1zKQorKyAgICBhY19jc19zaWxlbnQ9OiA7OworKworKyAgIyBUaGlzIGlzIGFu IGVycm9yLgorKyAgLSopIHsgJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IHVucmVjb2duaXplZCBv cHRpb246ICQxCisrVHJ5IFxgJDAgLS1oZWxwJyBmb3IgbW9yZSBpbmZvcm1hdGlvbi4iID4mMgor KyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfSA7OworKworKyAgKikgYWNfY29uZmlnX3Rhcmdl dHM9IiRhY19jb25maWdfdGFyZ2V0cyAkMSIKKysgICAgIGFjX25lZWRfZGVmYXVsdHM9ZmFsc2Ug OzsKKysKKysgIGVzYWMKKysgIHNoaWZ0CisrZG9uZQorKworK2FjX2NvbmZpZ3VyZV9leHRyYV9h cmdzPQorKworK2lmICRhY19jc19zaWxlbnQ7IHRoZW4KKysgIGV4ZWMgNj4vZGV2L251bGwKKysg IGFjX2NvbmZpZ3VyZV9leHRyYV9hcmdzPSIkYWNfY29uZmlndXJlX2V4dHJhX2FyZ3MgLS1zaWxl bnQiCisrZmkKKysKKytfQUNFT0YKKytjYXQgPj4kQ09ORklHX1NUQVRVUyA8PF9BQ0VPRiB8fCBh Y193cml0ZV9mYWlsPTEKKytpZiBcJGFjX2NzX3JlY2hlY2s7IHRoZW4KKysgIHNldCBYICckU0hF TEwnICckMCcgJGFjX2NvbmZpZ3VyZV9hcmdzIFwkYWNfY29uZmlndXJlX2V4dHJhX2FyZ3MgLS1u by1jcmVhdGUgLS1uby1yZWN1cnNpb24KKysgIHNoaWZ0CisrICBcJGFzX2VjaG8gInJ1bm5pbmcg Q09ORklHX1NIRUxMPSRTSEVMTCBcJCoiID4mNgorKyAgQ09ORklHX1NIRUxMPSckU0hFTEwnCisr ICBleHBvcnQgQ09ORklHX1NIRUxMCisrICBleGVjICJcJEAiCisrZmkKKysKKytfQUNFT0YKKytj YXQgPj4kQ09ORklHX1NUQVRVUyA8PFxfQUNFT0YgfHwgYWNfd3JpdGVfZmFpbD0xCisrZXhlYyA1 Pj5jb25maWcubG9nCisreworKyAgZWNobworKyAgc2VkICdoO3MvLi8tL2c7cy9eLi4uLyMjIC87 cy8uLi4kLyAjIy87cDt4O3A7eCcgPDxfQVNCT1gKKysjIyBSdW5uaW5nICRhc19tZS4gIyMKKytf QVNCT1gKKysgICRhc19lY2hvICIkYWNfbG9nIgorK30gPiY1CisrCisrX0FDRU9GCisrY2F0ID4+ JENPTkZJR19TVEFUVVMgPDxfQUNFT0YgfHwgYWNfd3JpdGVfZmFpbD0xCisrIworKyMgSU5JVC1D T01NQU5EUworKyMKKytBTURFUF9UUlVFPSIkQU1ERVBfVFJVRSIgYWNfYXV4X2Rpcj0iJGFjX2F1 eF9kaXIiCisrCisrCisrIyBUaGUgSFAtVVgga3NoIGFuZCBQT1NJWCBzaGVsbCBwcmludCB0aGUg dGFyZ2V0IGRpcmVjdG9yeSB0byBzdGRvdXQKKysjIGlmIENEUEFUSCBpcyBzZXQuCisrKHVuc2V0 IENEUEFUSCkgPi9kZXYvbnVsbCAyPiYxICYmIHVuc2V0IENEUEFUSAorKworK3NlZF9xdW90ZV9z dWJzdD0nJHNlZF9xdW90ZV9zdWJzdCcKKytkb3VibGVfcXVvdGVfc3Vic3Q9JyRkb3VibGVfcXVv dGVfc3Vic3QnCisrZGVsYXlfdmFyaWFibGVfc3Vic3Q9JyRkZWxheV92YXJpYWJsZV9zdWJzdCcK KytlbmFibGVfc2hhcmVkPSdgJEVDSE8gIlgkZW5hYmxlX3NoYXJlZCIgfCAkWHNlZCAtZSAiJGRl bGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK2VuYWJsZV9zdGF0aWM9J2AkRUNITyAiWCRlbmFi bGVfc3RhdGljIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisrbWFj cm9fdmVyc2lvbj0nYCRFQ0hPICJYJG1hY3JvX3ZlcnNpb24iIHwgJFhzZWQgLWUgIiRkZWxheV9z aW5nbGVfcXVvdGVfc3Vic3QiYCcKKyttYWNyb19yZXZpc2lvbj0nYCRFQ0hPICJYJG1hY3JvX3Jl dmlzaW9uIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisrcGljX21v ZGU9J2AkRUNITyAiWCRwaWNfbW9kZSIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9z dWJzdCJgJworK2VuYWJsZV9mYXN0X2luc3RhbGw9J2AkRUNITyAiWCRlbmFibGVfZmFzdF9pbnN0 YWxsIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisraG9zdF9hbGlh cz0nYCRFQ0hPICJYJGhvc3RfYWxpYXMiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVf c3Vic3QiYCcKKytob3N0PSdgJEVDSE8gIlgkaG9zdCIgfCAkWHNlZCAtZSAiJGRlbGF5X3Npbmds ZV9xdW90ZV9zdWJzdCJgJworK2hvc3Rfb3M9J2AkRUNITyAiWCRob3N0X29zIiB8ICRYc2VkIC1l ICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisrYnVpbGRfYWxpYXM9J2AkRUNITyAiWCRi dWlsZF9hbGlhcyIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK2J1 aWxkPSdgJEVDSE8gIlgkYnVpbGQiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vi c3QiYCcKKytidWlsZF9vcz0nYCRFQ0hPICJYJGJ1aWxkX29zIiB8ICRYc2VkIC1lICIkZGVsYXlf c2luZ2xlX3F1b3RlX3N1YnN0ImAnCisrU0VEPSdgJEVDSE8gIlgkU0VEIiB8ICRYc2VkIC1lICIk ZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisrWHNlZD0nYCRFQ0hPICJYJFhzZWQiIHwgJFhz ZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKKytHUkVQPSdgJEVDSE8gIlgkR1JF UCIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK0VHUkVQPSdgJEVD SE8gIlgkRUdSRVAiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKKytG R1JFUD0nYCRFQ0hPICJYJEZHUkVQIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1 YnN0ImAnCisrTEQ9J2AkRUNITyAiWCRMRCIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90 ZV9zdWJzdCJgJworK05NPSdgJEVDSE8gIlgkTk0iIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVf cXVvdGVfc3Vic3QiYCcKKytMTl9TPSdgJEVDSE8gIlgkTE5fUyIgfCAkWHNlZCAtZSAiJGRlbGF5 X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK21heF9jbWRfbGVuPSdgJEVDSE8gIlgkbWF4X2NtZF9s ZW4iIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKKythY19vYmpleHQ9 J2AkRUNITyAiWCRhY19vYmpleHQiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vi c3QiYCcKKytleGVleHQ9J2AkRUNITyAiWCRleGVleHQiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5n bGVfcXVvdGVfc3Vic3QiYCcKKytsdF91bnNldD0nYCRFQ0hPICJYJGx0X3Vuc2V0IiB8ICRYc2Vk IC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisrbHRfU1AyTkw9J2AkRUNITyAiWCRs dF9TUDJOTCIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK2x0X05M MlNQPSdgJEVDSE8gIlgkbHRfTkwyU1AiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVf c3Vic3QiYCcKKytyZWxvYWRfZmxhZz0nYCRFQ0hPICJYJHJlbG9hZF9mbGFnIiB8ICRYc2VkIC1l ICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisrcmVsb2FkX2NtZHM9J2AkRUNITyAiWCRy ZWxvYWRfY21kcyIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK09C SkRVTVA9J2AkRUNITyAiWCRPQkpEVU1QIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3Rl X3N1YnN0ImAnCisrZGVwbGlic19jaGVja19tZXRob2Q9J2AkRUNITyAiWCRkZXBsaWJzX2NoZWNr X21ldGhvZCIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK2ZpbGVf bWFnaWNfY21kPSdgJEVDSE8gIlgkZmlsZV9tYWdpY19jbWQiIHwgJFhzZWQgLWUgIiRkZWxheV9z aW5nbGVfcXVvdGVfc3Vic3QiYCcKKytBUj0nYCRFQ0hPICJYJEFSIiB8ICRYc2VkIC1lICIkZGVs YXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisrQVJfRkxBR1M9J2AkRUNITyAiWCRBUl9GTEFHUyIg fCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK1NUUklQPSdgJEVDSE8g IlgkU1RSSVAiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKKytSQU5M SUI9J2AkRUNITyAiWCRSQU5MSUIiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vi c3QiYCcKKytvbGRfcG9zdGluc3RhbGxfY21kcz0nYCRFQ0hPICJYJG9sZF9wb3N0aW5zdGFsbF9j bWRzIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisrb2xkX3Bvc3R1 bmluc3RhbGxfY21kcz0nYCRFQ0hPICJYJG9sZF9wb3N0dW5pbnN0YWxsX2NtZHMiIHwgJFhzZWQg LWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKKytvbGRfYXJjaGl2ZV9jbWRzPSdgJEVD SE8gIlgkb2xkX2FyY2hpdmVfY21kcyIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9z dWJzdCJgJworK0NDPSdgJEVDSE8gIlgkQ0MiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVv dGVfc3Vic3QiYCcKKytDRkxBR1M9J2AkRUNITyAiWCRDRkxBR1MiIHwgJFhzZWQgLWUgIiRkZWxh eV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKKytjb21waWxlcj0nYCRFQ0hPICJYJGNvbXBpbGVyIiB8 ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisrR0NDPSdgJEVDSE8gIlgk R0NDIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisrbHRfY3Zfc3lz X2dsb2JhbF9zeW1ib2xfcGlwZT0nYCRFQ0hPICJYJGx0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3Bp cGUiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKKytsdF9jdl9zeXNf Z2xvYmFsX3N5bWJvbF90b19jZGVjbD0nYCRFQ0hPICJYJGx0X2N2X3N5c19nbG9iYWxfc3ltYm9s X3RvX2NkZWNsIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisrbHRf Y3Zfc3lzX2dsb2JhbF9zeW1ib2xfdG9fY19uYW1lX2FkZHJlc3M9J2AkRUNITyAiWCRsdF9jdl9z eXNfZ2xvYmFsX3N5bWJvbF90b19jX25hbWVfYWRkcmVzcyIgfCAkWHNlZCAtZSAiJGRlbGF5X3Np bmdsZV9xdW90ZV9zdWJzdCJgJworK2x0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3RvX2NfbmFtZV9h ZGRyZXNzX2xpYl9wcmVmaXg9J2AkRUNITyAiWCRsdF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF90b19j X25hbWVfYWRkcmVzc19saWJfcHJlZml4IiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3Rl X3N1YnN0ImAnCisrb2JqZGlyPSdgJEVDSE8gIlgkb2JqZGlyIiB8ICRYc2VkIC1lICIkZGVsYXlf c2luZ2xlX3F1b3RlX3N1YnN0ImAnCisrU0hFTEw9J2AkRUNITyAiWCRTSEVMTCIgfCAkWHNlZCAt ZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK0VDSE89J2AkRUNITyAiWCRFQ0hPIiB8 ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisrTUFHSUNfQ01EPSdgJEVD SE8gIlgkTUFHSUNfQ01EIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAn CisrbHRfcHJvZ19jb21waWxlcl9ub19idWlsdGluX2ZsYWc9J2AkRUNITyAiWCRsdF9wcm9nX2Nv bXBpbGVyX25vX2J1aWx0aW5fZmxhZyIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9z dWJzdCJgJworK2x0X3Byb2dfY29tcGlsZXJfd2w9J2AkRUNITyAiWCRsdF9wcm9nX2NvbXBpbGVy X3dsIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisrbHRfcHJvZ19j b21waWxlcl9waWM9J2AkRUNITyAiWCRsdF9wcm9nX2NvbXBpbGVyX3BpYyIgfCAkWHNlZCAtZSAi JGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK2x0X3Byb2dfY29tcGlsZXJfc3RhdGljPSdg JEVDSE8gIlgkbHRfcHJvZ19jb21waWxlcl9zdGF0aWMiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5n bGVfcXVvdGVfc3Vic3QiYCcKKytsdF9jdl9wcm9nX2NvbXBpbGVyX2Nfbz0nYCRFQ0hPICJYJGx0 X2N2X3Byb2dfY29tcGlsZXJfY19vIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1 YnN0ImAnCisrbmVlZF9sb2Nrcz0nYCRFQ0hPICJYJG5lZWRfbG9ja3MiIHwgJFhzZWQgLWUgIiRk ZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKKytEU1lNVVRJTD0nYCRFQ0hPICJYJERTWU1VVElM IiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisrTk1FRElUPSdgJEVD SE8gIlgkTk1FRElUIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisr TElQTz0nYCRFQ0hPICJYJExJUE8iIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vi c3QiYCcKKytPVE9PTD0nYCRFQ0hPICJYJE9UT09MIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xl X3F1b3RlX3N1YnN0ImAnCisrT1RPT0w2ND0nYCRFQ0hPICJYJE9UT09MNjQiIHwgJFhzZWQgLWUg IiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKKytsaWJleHQ9J2AkRUNITyAiWCRsaWJleHQi IHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKKytzaHJleHRfY21kcz0n YCRFQ0hPICJYJHNocmV4dF9jbWRzIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1 YnN0ImAnCisrZXh0cmFjdF9leHBzeW1zX2NtZHM9J2AkRUNITyAiWCRleHRyYWN0X2V4cHN5bXNf Y21kcyIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK2FyY2hpdmVf Y21kc19uZWVkX2xjPSdgJEVDSE8gIlgkYXJjaGl2ZV9jbWRzX25lZWRfbGMiIHwgJFhzZWQgLWUg IiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKKytlbmFibGVfc2hhcmVkX3dpdGhfc3RhdGlj X3J1bnRpbWVzPSdgJEVDSE8gIlgkZW5hYmxlX3NoYXJlZF93aXRoX3N0YXRpY19ydW50aW1lcyIg fCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK2V4cG9ydF9keW5hbWlj X2ZsYWdfc3BlYz0nYCRFQ0hPICJYJGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlYyIgfCAkWHNlZCAt ZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK3dob2xlX2FyY2hpdmVfZmxhZ19zcGVj PSdgJEVDSE8gIlgkd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWMiIHwgJFhzZWQgLWUgIiRkZWxheV9z aW5nbGVfcXVvdGVfc3Vic3QiYCcKKytjb21waWxlcl9uZWVkc19vYmplY3Q9J2AkRUNITyAiWCRj b21waWxlcl9uZWVkc19vYmplY3QiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vi c3QiYCcKKytvbGRfYXJjaGl2ZV9mcm9tX25ld19jbWRzPSdgJEVDSE8gIlgkb2xkX2FyY2hpdmVf ZnJvbV9uZXdfY21kcyIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwor K29sZF9hcmNoaXZlX2Zyb21fZXhwc3ltc19jbWRzPSdgJEVDSE8gIlgkb2xkX2FyY2hpdmVfZnJv bV9leHBzeW1zX2NtZHMiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcK KythcmNoaXZlX2NtZHM9J2AkRUNITyAiWCRhcmNoaXZlX2NtZHMiIHwgJFhzZWQgLWUgIiRkZWxh eV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKKythcmNoaXZlX2V4cHN5bV9jbWRzPSdgJEVDSE8gIlgk YXJjaGl2ZV9leHBzeW1fY21kcyIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJz dCJgJworK21vZHVsZV9jbWRzPSdgJEVDSE8gIlgkbW9kdWxlX2NtZHMiIHwgJFhzZWQgLWUgIiRk ZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKKyttb2R1bGVfZXhwc3ltX2NtZHM9J2AkRUNITyAi WCRtb2R1bGVfZXhwc3ltX2NtZHMiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vi c3QiYCcKKyt3aXRoX2dudV9sZD0nYCRFQ0hPICJYJHdpdGhfZ251X2xkIiB8ICRYc2VkIC1lICIk ZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisrYWxsb3dfdW5kZWZpbmVkX2ZsYWc9J2AkRUNI TyAiWCRhbGxvd191bmRlZmluZWRfZmxhZyIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90 ZV9zdWJzdCJgJworK25vX3VuZGVmaW5lZF9mbGFnPSdgJEVDSE8gIlgkbm9fdW5kZWZpbmVkX2Zs YWciIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKKytoYXJkY29kZV9s aWJkaXJfZmxhZ19zcGVjPSdgJEVDSE8gIlgkaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYyIgfCAk WHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK2hhcmRjb2RlX2xpYmRpcl9m bGFnX3NwZWNfbGQ9J2AkRUNITyAiWCRoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX2xkIiB8ICRY c2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisraGFyZGNvZGVfbGliZGlyX3Nl cGFyYXRvcj0nYCRFQ0hPICJYJGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3IiIHwgJFhzZWQgLWUg IiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKKytoYXJkY29kZV9kaXJlY3Q9J2AkRUNITyAi WCRoYXJkY29kZV9kaXJlY3QiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3Qi YCcKKytoYXJkY29kZV9kaXJlY3RfYWJzb2x1dGU9J2AkRUNITyAiWCRoYXJkY29kZV9kaXJlY3Rf YWJzb2x1dGUiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKKytoYXJk Y29kZV9taW51c19MPSdgJEVDSE8gIlgkaGFyZGNvZGVfbWludXNfTCIgfCAkWHNlZCAtZSAiJGRl bGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK2hhcmRjb2RlX3NobGlicGF0aF92YXI9J2AkRUNI TyAiWCRoYXJkY29kZV9zaGxpYnBhdGhfdmFyIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1 b3RlX3N1YnN0ImAnCisraGFyZGNvZGVfYXV0b21hdGljPSdgJEVDSE8gIlgkaGFyZGNvZGVfYXV0 b21hdGljIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisraW5oZXJp dF9ycGF0aD0nYCRFQ0hPICJYJGluaGVyaXRfcnBhdGgiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5n bGVfcXVvdGVfc3Vic3QiYCcKKytsaW5rX2FsbF9kZXBsaWJzPSdgJEVDSE8gIlgkbGlua19hbGxf ZGVwbGlicyIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK2ZpeF9z cmNmaWxlX3BhdGg9J2AkRUNITyAiWCRmaXhfc3JjZmlsZV9wYXRoIiB8ICRYc2VkIC1lICIkZGVs YXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisrYWx3YXlzX2V4cG9ydF9zeW1ib2xzPSdgJEVDSE8g IlgkYWx3YXlzX2V4cG9ydF9zeW1ib2xzIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3Rl X3N1YnN0ImAnCisrZXhwb3J0X3N5bWJvbHNfY21kcz0nYCRFQ0hPICJYJGV4cG9ydF9zeW1ib2xz X2NtZHMiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKKytleGNsdWRl X2V4cHN5bXM9J2AkRUNITyAiWCRleGNsdWRlX2V4cHN5bXMiIHwgJFhzZWQgLWUgIiRkZWxheV9z aW5nbGVfcXVvdGVfc3Vic3QiYCcKKytpbmNsdWRlX2V4cHN5bXM9J2AkRUNITyAiWCRpbmNsdWRl X2V4cHN5bXMiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKKytwcmVs aW5rX2NtZHM9J2AkRUNITyAiWCRwcmVsaW5rX2NtZHMiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5n bGVfcXVvdGVfc3Vic3QiYCcKKytmaWxlX2xpc3Rfc3BlYz0nYCRFQ0hPICJYJGZpbGVfbGlzdF9z cGVjIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisrdmFyaWFibGVz X3NhdmVkX2Zvcl9yZWxpbms9J2AkRUNITyAiWCR2YXJpYWJsZXNfc2F2ZWRfZm9yX3JlbGluayIg fCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK25lZWRfbGliX3ByZWZp eD0nYCRFQ0hPICJYJG5lZWRfbGliX3ByZWZpeCIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9x dW90ZV9zdWJzdCJgJworK25lZWRfdmVyc2lvbj0nYCRFQ0hPICJYJG5lZWRfdmVyc2lvbiIgfCAk WHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK3ZlcnNpb25fdHlwZT0nYCRF Q0hPICJYJHZlcnNpb25fdHlwZSIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJz dCJgJworK3J1bnBhdGhfdmFyPSdgJEVDSE8gIlgkcnVucGF0aF92YXIiIHwgJFhzZWQgLWUgIiRk ZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKKytzaGxpYnBhdGhfdmFyPSdgJEVDSE8gIlgkc2hs aWJwYXRoX3ZhciIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK3No bGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD0nYCRFQ0hPICJYJHNobGlicGF0aF9vdmVycmlkZXNf cnVucGF0aCIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK2xpYm5h bWVfc3BlYz0nYCRFQ0hPICJYJGxpYm5hbWVfc3BlYyIgfCAkWHNlZCAtZSAiJGRlbGF5X3Npbmds ZV9xdW90ZV9zdWJzdCJgJworK2xpYnJhcnlfbmFtZXNfc3BlYz0nYCRFQ0hPICJYJGxpYnJhcnlf bmFtZXNfc3BlYyIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK3Nv bmFtZV9zcGVjPSdgJEVDSE8gIlgkc29uYW1lX3NwZWMiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5n bGVfcXVvdGVfc3Vic3QiYCcKKytwb3N0aW5zdGFsbF9jbWRzPSdgJEVDSE8gIlgkcG9zdGluc3Rh bGxfY21kcyIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK3Bvc3R1 bmluc3RhbGxfY21kcz0nYCRFQ0hPICJYJHBvc3R1bmluc3RhbGxfY21kcyIgfCAkWHNlZCAtZSAi JGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK2ZpbmlzaF9jbWRzPSdgJEVDSE8gIlgkZmlu aXNoX2NtZHMiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKKytmaW5p c2hfZXZhbD0nYCRFQ0hPICJYJGZpbmlzaF9ldmFsIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xl X3F1b3RlX3N1YnN0ImAnCisraGFyZGNvZGVfaW50b19saWJzPSdgJEVDSE8gIlgkaGFyZGNvZGVf aW50b19saWJzIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisrc3lz X2xpYl9zZWFyY2hfcGF0aF9zcGVjPSdgJEVDSE8gIlgkc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVj IiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisrc3lzX2xpYl9kbHNl YXJjaF9wYXRoX3NwZWM9J2AkRUNITyAiWCRzeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYyIgfCAk WHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK2hhcmRjb2RlX2FjdGlvbj0n YCRFQ0hPICJYJGhhcmRjb2RlX2FjdGlvbiIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90 ZV9zdWJzdCJgJworK2VuYWJsZV9kbG9wZW49J2AkRUNITyAiWCRlbmFibGVfZGxvcGVuIiB8ICRY c2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisrZW5hYmxlX2Rsb3Blbl9zZWxm PSdgJEVDSE8gIlgkZW5hYmxlX2Rsb3Blbl9zZWxmIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xl X3F1b3RlX3N1YnN0ImAnCisrZW5hYmxlX2Rsb3Blbl9zZWxmX3N0YXRpYz0nYCRFQ0hPICJYJGVu YWJsZV9kbG9wZW5fc2VsZl9zdGF0aWMiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVf c3Vic3QiYCcKKytvbGRfc3RyaXBsaWI9J2AkRUNITyAiWCRvbGRfc3RyaXBsaWIiIHwgJFhzZWQg LWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKKytzdHJpcGxpYj0nYCRFQ0hPICJYJHN0 cmlwbGliIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisrY29tcGls ZXJfbGliX3NlYXJjaF9kaXJzPSdgJEVDSE8gIlgkY29tcGlsZXJfbGliX3NlYXJjaF9kaXJzIiB8 ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisrcHJlZGVwX29iamVjdHM9 J2AkRUNITyAiWCRwcmVkZXBfb2JqZWN0cyIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90 ZV9zdWJzdCJgJworK3Bvc3RkZXBfb2JqZWN0cz0nYCRFQ0hPICJYJHBvc3RkZXBfb2JqZWN0cyIg fCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK3ByZWRlcHM9J2AkRUNI TyAiWCRwcmVkZXBzIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisr cG9zdGRlcHM9J2AkRUNITyAiWCRwb3N0ZGVwcyIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9x dW90ZV9zdWJzdCJgJworK2NvbXBpbGVyX2xpYl9zZWFyY2hfcGF0aD0nYCRFQ0hPICJYJGNvbXBp bGVyX2xpYl9zZWFyY2hfcGF0aCIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJz dCJgJworK0xEX0NYWD0nYCRFQ0hPICJYJExEX0NYWCIgfCAkWHNlZCAtZSAiJGRlbGF5X3Npbmds ZV9xdW90ZV9zdWJzdCJgJworK29sZF9hcmNoaXZlX2NtZHNfQ1hYPSdgJEVDSE8gIlgkb2xkX2Fy Y2hpdmVfY21kc19DWFgiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcK Kytjb21waWxlcl9DWFg9J2AkRUNITyAiWCRjb21waWxlcl9DWFgiIHwgJFhzZWQgLWUgIiRkZWxh eV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKKytHQ0NfQ1hYPSdgJEVDSE8gIlgkR0NDX0NYWCIgfCAk WHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK2x0X3Byb2dfY29tcGlsZXJf bm9fYnVpbHRpbl9mbGFnX0NYWD0nYCRFQ0hPICJYJGx0X3Byb2dfY29tcGlsZXJfbm9fYnVpbHRp bl9mbGFnX0NYWCIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK2x0 X3Byb2dfY29tcGlsZXJfd2xfQ1hYPSdgJEVDSE8gIlgkbHRfcHJvZ19jb21waWxlcl93bF9DWFgi IHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKKytsdF9wcm9nX2NvbXBp bGVyX3BpY19DWFg9J2AkRUNITyAiWCRsdF9wcm9nX2NvbXBpbGVyX3BpY19DWFgiIHwgJFhzZWQg LWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKKytsdF9wcm9nX2NvbXBpbGVyX3N0YXRp Y19DWFg9J2AkRUNITyAiWCRsdF9wcm9nX2NvbXBpbGVyX3N0YXRpY19DWFgiIHwgJFhzZWQgLWUg IiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKKytsdF9jdl9wcm9nX2NvbXBpbGVyX2Nfb19D WFg9J2AkRUNITyAiWCRsdF9jdl9wcm9nX2NvbXBpbGVyX2Nfb19DWFgiIHwgJFhzZWQgLWUgIiRk ZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKKythcmNoaXZlX2NtZHNfbmVlZF9sY19DWFg9J2Ak RUNITyAiWCRhcmNoaXZlX2NtZHNfbmVlZF9sY19DWFgiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5n bGVfcXVvdGVfc3Vic3QiYCcKKytlbmFibGVfc2hhcmVkX3dpdGhfc3RhdGljX3J1bnRpbWVzX0NY WD0nYCRFQ0hPICJYJGVuYWJsZV9zaGFyZWRfd2l0aF9zdGF0aWNfcnVudGltZXNfQ1hYIiB8ICRY c2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisrZXhwb3J0X2R5bmFtaWNfZmxh Z19zcGVjX0NYWD0nYCRFQ0hPICJYJGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlY19DWFgiIHwgJFhz ZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKKyt3aG9sZV9hcmNoaXZlX2ZsYWdf c3BlY19DWFg9J2AkRUNITyAiWCR3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlY19DWFgiIHwgJFhzZWQg LWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKKytjb21waWxlcl9uZWVkc19vYmplY3Rf Q1hYPSdgJEVDSE8gIlgkY29tcGlsZXJfbmVlZHNfb2JqZWN0X0NYWCIgfCAkWHNlZCAtZSAiJGRl bGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK29sZF9hcmNoaXZlX2Zyb21fbmV3X2NtZHNfQ1hY PSdgJEVDSE8gIlgkb2xkX2FyY2hpdmVfZnJvbV9uZXdfY21kc19DWFgiIHwgJFhzZWQgLWUgIiRk ZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKKytvbGRfYXJjaGl2ZV9mcm9tX2V4cHN5bXNfY21k c19DWFg9J2AkRUNITyAiWCRvbGRfYXJjaGl2ZV9mcm9tX2V4cHN5bXNfY21kc19DWFgiIHwgJFhz ZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKKythcmNoaXZlX2NtZHNfQ1hYPSdg JEVDSE8gIlgkYXJjaGl2ZV9jbWRzX0NYWCIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90 ZV9zdWJzdCJgJworK2FyY2hpdmVfZXhwc3ltX2NtZHNfQ1hYPSdgJEVDSE8gIlgkYXJjaGl2ZV9l eHBzeW1fY21kc19DWFgiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcK Kyttb2R1bGVfY21kc19DWFg9J2AkRUNITyAiWCRtb2R1bGVfY21kc19DWFgiIHwgJFhzZWQgLWUg IiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKKyttb2R1bGVfZXhwc3ltX2NtZHNfQ1hYPSdg JEVDSE8gIlgkbW9kdWxlX2V4cHN5bV9jbWRzX0NYWCIgfCAkWHNlZCAtZSAiJGRlbGF5X3Npbmds ZV9xdW90ZV9zdWJzdCJgJworK3dpdGhfZ251X2xkX0NYWD0nYCRFQ0hPICJYJHdpdGhfZ251X2xk X0NYWCIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK2FsbG93X3Vu ZGVmaW5lZF9mbGFnX0NYWD0nYCRFQ0hPICJYJGFsbG93X3VuZGVmaW5lZF9mbGFnX0NYWCIgfCAk WHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK25vX3VuZGVmaW5lZF9mbGFn X0NYWD0nYCRFQ0hPICJYJG5vX3VuZGVmaW5lZF9mbGFnX0NYWCIgfCAkWHNlZCAtZSAiJGRlbGF5 X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK2hhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfQ1hYPSdg JEVDSE8gIlgkaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19DWFgiIHwgJFhzZWQgLWUgIiRkZWxh eV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKKytoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX2xkX0NY WD0nYCRFQ0hPICJYJGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfbGRfQ1hYIiB8ICRYc2VkIC1l ICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisraGFyZGNvZGVfbGliZGlyX3NlcGFyYXRv cl9DWFg9J2AkRUNITyAiWCRoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yX0NYWCIgfCAkWHNlZCAt ZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK2hhcmRjb2RlX2RpcmVjdF9DWFg9J2Ak RUNITyAiWCRoYXJkY29kZV9kaXJlY3RfQ1hYIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1 b3RlX3N1YnN0ImAnCisraGFyZGNvZGVfZGlyZWN0X2Fic29sdXRlX0NYWD0nYCRFQ0hPICJYJGhh cmRjb2RlX2RpcmVjdF9hYnNvbHV0ZV9DWFgiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVv dGVfc3Vic3QiYCcKKytoYXJkY29kZV9taW51c19MX0NYWD0nYCRFQ0hPICJYJGhhcmRjb2RlX21p bnVzX0xfQ1hYIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisraGFy ZGNvZGVfc2hsaWJwYXRoX3Zhcl9DWFg9J2AkRUNITyAiWCRoYXJkY29kZV9zaGxpYnBhdGhfdmFy X0NYWCIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK2hhcmRjb2Rl X2F1dG9tYXRpY19DWFg9J2AkRUNITyAiWCRoYXJkY29kZV9hdXRvbWF0aWNfQ1hYIiB8ICRYc2Vk IC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisraW5oZXJpdF9ycGF0aF9DWFg9J2Ak RUNITyAiWCRpbmhlcml0X3JwYXRoX0NYWCIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90 ZV9zdWJzdCJgJworK2xpbmtfYWxsX2RlcGxpYnNfQ1hYPSdgJEVDSE8gIlgkbGlua19hbGxfZGVw bGlic19DWFgiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKKytmaXhf c3JjZmlsZV9wYXRoX0NYWD0nYCRFQ0hPICJYJGZpeF9zcmNmaWxlX3BhdGhfQ1hYIiB8ICRYc2Vk IC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisrYWx3YXlzX2V4cG9ydF9zeW1ib2xz X0NYWD0nYCRFQ0hPICJYJGFsd2F5c19leHBvcnRfc3ltYm9sc19DWFgiIHwgJFhzZWQgLWUgIiRk ZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKKytleHBvcnRfc3ltYm9sc19jbWRzX0NYWD0nYCRF Q0hPICJYJGV4cG9ydF9zeW1ib2xzX2NtZHNfQ1hYIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xl X3F1b3RlX3N1YnN0ImAnCisrZXhjbHVkZV9leHBzeW1zX0NYWD0nYCRFQ0hPICJYJGV4Y2x1ZGVf ZXhwc3ltc19DWFgiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKKytp bmNsdWRlX2V4cHN5bXNfQ1hYPSdgJEVDSE8gIlgkaW5jbHVkZV9leHBzeW1zX0NYWCIgfCAkWHNl ZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK3ByZWxpbmtfY21kc19DWFg9J2Ak RUNITyAiWCRwcmVsaW5rX2NtZHNfQ1hYIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3Rl X3N1YnN0ImAnCisrZmlsZV9saXN0X3NwZWNfQ1hYPSdgJEVDSE8gIlgkZmlsZV9saXN0X3NwZWNf Q1hYIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisraGFyZGNvZGVf YWN0aW9uX0NYWD0nYCRFQ0hPICJYJGhhcmRjb2RlX2FjdGlvbl9DWFgiIHwgJFhzZWQgLWUgIiRk ZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKKytjb21waWxlcl9saWJfc2VhcmNoX2RpcnNfQ1hY PSdgJEVDSE8gIlgkY29tcGlsZXJfbGliX3NlYXJjaF9kaXJzX0NYWCIgfCAkWHNlZCAtZSAiJGRl bGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK3ByZWRlcF9vYmplY3RzX0NYWD0nYCRFQ0hPICJY JHByZWRlcF9vYmplY3RzX0NYWCIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJz dCJgJworK3Bvc3RkZXBfb2JqZWN0c19DWFg9J2AkRUNITyAiWCRwb3N0ZGVwX29iamVjdHNfQ1hY IiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisrcHJlZGVwc19DWFg9 J2AkRUNITyAiWCRwcmVkZXBzX0NYWCIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9z dWJzdCJgJworK3Bvc3RkZXBzX0NYWD0nYCRFQ0hPICJYJHBvc3RkZXBzX0NYWCIgfCAkWHNlZCAt ZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK2NvbXBpbGVyX2xpYl9zZWFyY2hfcGF0 aF9DWFg9J2AkRUNITyAiWCRjb21waWxlcl9saWJfc2VhcmNoX3BhdGhfQ1hYIiB8ICRYc2VkIC1l ICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisrCisrTFRDQz0nJExUQ0MnCisrTFRDRkxB R1M9JyRMVENGTEFHUycKKytjb21waWxlcj0nJGNvbXBpbGVyX0RFRkFVTFQnCisrCisrIyBRdW90 ZSBldmFsZWQgc3RyaW5ncy4KKytmb3IgdmFyIGluIFNFRCBcCisrR1JFUCBcCisrRUdSRVAgXAor K0ZHUkVQIFwKKytMRCBcCisrTk0gXAorK0xOX1MgXAorK2x0X1NQMk5MIFwKKytsdF9OTDJTUCBc CisrcmVsb2FkX2ZsYWcgXAorK09CSkRVTVAgXAorK2RlcGxpYnNfY2hlY2tfbWV0aG9kIFwKKytm aWxlX21hZ2ljX2NtZCBcCisrQVIgXAorK0FSX0ZMQUdTIFwKKytTVFJJUCBcCisrUkFOTElCIFwK KytDQyBcCisrQ0ZMQUdTIFwKKytjb21waWxlciBcCisrbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xf cGlwZSBcCisrbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfdG9fY2RlY2wgXAorK2x0X2N2X3N5c19n bG9iYWxfc3ltYm9sX3RvX2NfbmFtZV9hZGRyZXNzIFwKKytsdF9jdl9zeXNfZ2xvYmFsX3N5bWJv bF90b19jX25hbWVfYWRkcmVzc19saWJfcHJlZml4IFwKKytTSEVMTCBcCisrRUNITyBcCisrbHRf cHJvZ19jb21waWxlcl9ub19idWlsdGluX2ZsYWcgXAorK2x0X3Byb2dfY29tcGlsZXJfd2wgXAor K2x0X3Byb2dfY29tcGlsZXJfcGljIFwKKytsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYyBcCisrbHRf Y3ZfcHJvZ19jb21waWxlcl9jX28gXAorK25lZWRfbG9ja3MgXAorK0RTWU1VVElMIFwKKytOTUVE SVQgXAorK0xJUE8gXAorK09UT09MIFwKKytPVE9PTDY0IFwKKytzaHJleHRfY21kcyBcCisrZXhw b3J0X2R5bmFtaWNfZmxhZ19zcGVjIFwKKyt3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYyBcCisrY29t cGlsZXJfbmVlZHNfb2JqZWN0IFwKKyt3aXRoX2dudV9sZCBcCisrYWxsb3dfdW5kZWZpbmVkX2Zs YWcgXAorK25vX3VuZGVmaW5lZF9mbGFnIFwKKytoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjIFwK KytoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX2xkIFwKKytoYXJkY29kZV9saWJkaXJfc2VwYXJh dG9yIFwKKytmaXhfc3JjZmlsZV9wYXRoIFwKKytleGNsdWRlX2V4cHN5bXMgXAorK2luY2x1ZGVf ZXhwc3ltcyBcCisrZmlsZV9saXN0X3NwZWMgXAorK3ZhcmlhYmxlc19zYXZlZF9mb3JfcmVsaW5r IFwKKytsaWJuYW1lX3NwZWMgXAorK2xpYnJhcnlfbmFtZXNfc3BlYyBcCisrc29uYW1lX3NwZWMg XAorK2ZpbmlzaF9ldmFsIFwKKytvbGRfc3RyaXBsaWIgXAorK3N0cmlwbGliIFwKKytjb21waWxl cl9saWJfc2VhcmNoX2RpcnMgXAorK3ByZWRlcF9vYmplY3RzIFwKKytwb3N0ZGVwX29iamVjdHMg XAorK3ByZWRlcHMgXAorK3Bvc3RkZXBzIFwKKytjb21waWxlcl9saWJfc2VhcmNoX3BhdGggXAor K0xEX0NYWCBcCisrY29tcGlsZXJfQ1hYIFwKKytsdF9wcm9nX2NvbXBpbGVyX25vX2J1aWx0aW5f ZmxhZ19DWFggXAorK2x0X3Byb2dfY29tcGlsZXJfd2xfQ1hYIFwKKytsdF9wcm9nX2NvbXBpbGVy X3BpY19DWFggXAorK2x0X3Byb2dfY29tcGlsZXJfc3RhdGljX0NYWCBcCisrbHRfY3ZfcHJvZ19j b21waWxlcl9jX29fQ1hYIFwKKytleHBvcnRfZHluYW1pY19mbGFnX3NwZWNfQ1hYIFwKKyt3aG9s ZV9hcmNoaXZlX2ZsYWdfc3BlY19DWFggXAorK2NvbXBpbGVyX25lZWRzX29iamVjdF9DWFggXAor K3dpdGhfZ251X2xkX0NYWCBcCisrYWxsb3dfdW5kZWZpbmVkX2ZsYWdfQ1hYIFwKKytub191bmRl ZmluZWRfZmxhZ19DWFggXAorK2hhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfQ1hYIFwKKytoYXJk Y29kZV9saWJkaXJfZmxhZ19zcGVjX2xkX0NYWCBcCisraGFyZGNvZGVfbGliZGlyX3NlcGFyYXRv cl9DWFggXAorK2ZpeF9zcmNmaWxlX3BhdGhfQ1hYIFwKKytleGNsdWRlX2V4cHN5bXNfQ1hYIFwK KytpbmNsdWRlX2V4cHN5bXNfQ1hYIFwKKytmaWxlX2xpc3Rfc3BlY19DWFggXAorK2NvbXBpbGVy X2xpYl9zZWFyY2hfZGlyc19DWFggXAorK3ByZWRlcF9vYmplY3RzX0NYWCBcCisrcG9zdGRlcF9v YmplY3RzX0NYWCBcCisrcHJlZGVwc19DWFggXAorK3Bvc3RkZXBzX0NYWCBcCisrY29tcGlsZXJf bGliX3NlYXJjaF9wYXRoX0NYWDsgZG8KKysgICAgY2FzZSBcYGV2YWwgXFxcXFwkRUNITyAiWFxc XFxcJFwkdmFyIlxgIGluCisrICAgICpbXFxcXFxcXGBcXCJcXFwkXSopCisrICAgICAgZXZhbCAi bHRfXCR2YXI9XFxcXFxcIlxcXGBcXFwkRUNITyBcXCJYXFxcJFwkdmFyXFwiIHwgXFxcJFhzZWQg LWUgXFwiXFxcJHNlZF9xdW90ZV9zdWJzdFxcIlxcXGBcXFxcXFwiIgorKyAgICAgIDs7CisrICAg ICopCisrICAgICAgZXZhbCAibHRfXCR2YXI9XFxcXFxcIlxcXCRcJHZhclxcXFxcXCIiCisrICAg ICAgOzsKKysgICAgZXNhYworK2RvbmUKKysKKysjIERvdWJsZS1xdW90ZSBkb3VibGUtZXZhbGVk IHN0cmluZ3MuCisrZm9yIHZhciBpbiByZWxvYWRfY21kcyBcCisrb2xkX3Bvc3RpbnN0YWxsX2Nt ZHMgXAorK29sZF9wb3N0dW5pbnN0YWxsX2NtZHMgXAorK29sZF9hcmNoaXZlX2NtZHMgXAorK2V4 dHJhY3RfZXhwc3ltc19jbWRzIFwKKytvbGRfYXJjaGl2ZV9mcm9tX25ld19jbWRzIFwKKytvbGRf YXJjaGl2ZV9mcm9tX2V4cHN5bXNfY21kcyBcCisrYXJjaGl2ZV9jbWRzIFwKKythcmNoaXZlX2V4 cHN5bV9jbWRzIFwKKyttb2R1bGVfY21kcyBcCisrbW9kdWxlX2V4cHN5bV9jbWRzIFwKKytleHBv cnRfc3ltYm9sc19jbWRzIFwKKytwcmVsaW5rX2NtZHMgXAorK3Bvc3RpbnN0YWxsX2NtZHMgXAor K3Bvc3R1bmluc3RhbGxfY21kcyBcCisrZmluaXNoX2NtZHMgXAorK3N5c19saWJfc2VhcmNoX3Bh dGhfc3BlYyBcCisrc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWMgXAorK29sZF9hcmNoaXZlX2Nt ZHNfQ1hYIFwKKytvbGRfYXJjaGl2ZV9mcm9tX25ld19jbWRzX0NYWCBcCisrb2xkX2FyY2hpdmVf ZnJvbV9leHBzeW1zX2NtZHNfQ1hYIFwKKythcmNoaXZlX2NtZHNfQ1hYIFwKKythcmNoaXZlX2V4 cHN5bV9jbWRzX0NYWCBcCisrbW9kdWxlX2NtZHNfQ1hYIFwKKyttb2R1bGVfZXhwc3ltX2NtZHNf Q1hYIFwKKytleHBvcnRfc3ltYm9sc19jbWRzX0NYWCBcCisrcHJlbGlua19jbWRzX0NYWDsgZG8K KysgICAgY2FzZSBcYGV2YWwgXFxcXFwkRUNITyAiWFxcXFxcJFwkdmFyIlxgIGluCisrICAgICpb XFxcXFxcXGBcXCJcXFwkXSopCisrICAgICAgZXZhbCAibHRfXCR2YXI9XFxcXFxcIlxcXGBcXFwk RUNITyBcXCJYXFxcJFwkdmFyXFwiIHwgXFxcJFhzZWQgLWUgXFwiXFxcJGRvdWJsZV9xdW90ZV9z dWJzdFxcIiAtZSBcXCJcXFwkc2VkX3F1b3RlX3N1YnN0XFwiIC1lIFxcIlxcXCRkZWxheV92YXJp YWJsZV9zdWJzdFxcIlxcXGBcXFxcXFwiIgorKyAgICAgIDs7CisrICAgICopCisrICAgICAgZXZh bCAibHRfXCR2YXI9XFxcXFxcIlxcXCRcJHZhclxcXFxcXCIiCisrICAgICAgOzsKKysgICAgZXNh YworK2RvbmUKKysKKysjIEZpeC11cCBmYWxsYmFjayBlY2hvIGlmIGl0IHdhcyBtYW5nbGVkIGJ5 IHRoZSBhYm92ZSBxdW90aW5nIHJ1bGVzLgorK2Nhc2UgXCRsdF9FQ0hPIGluCisrKidcXFwkMCAt LWZhbGxiYWNrLWVjaG8iJykgIGx0X0VDSE89XGBcJEVDSE8gIlhcJGx0X0VDSE8iIHwgXCRYc2Vk IC1lICdzL1xcXFxcXFxcXFxcXFxcXCQwIC0tZmFsbGJhY2stZWNobyJcJC9cJDAgLS1mYWxsYmFj ay1lY2hvIi8nXGAKKysgIDs7CisrZXNhYworKworK2FjX2F1eF9kaXI9JyRhY19hdXhfZGlyJwor K3hzaV9zaGVsbD0nJHhzaV9zaGVsbCcKKytsdF9zaGVsbF9hcHBlbmQ9JyRsdF9zaGVsbF9hcHBl bmQnCisrCisrIyBTZWUgaWYgd2UgYXJlIHJ1bm5pbmcgb24genNoLCBhbmQgc2V0IHRoZSBvcHRp b25zIHdoaWNoIGFsbG93IG91cgorKyMgY29tbWFuZHMgdGhyb3VnaCB3aXRob3V0IHJlbW92YWwg b2YgXCBlc2NhcGVzIElOSVQuCisraWYgdGVzdCAtbiAiXCR7WlNIX1ZFUlNJT04rc2V0fSIgOyB0 aGVuCisrICAgc2V0b3B0IE5PX0dMT0JfU1VCU1QKKytmaQorKworKworKyAgICBQQUNLQUdFPSck UEFDS0FHRScKKysgICAgVkVSU0lPTj0nJFZFUlNJT04nCisrICAgIFRJTUVTVEFNUD0nJFRJTUVT VEFNUCcKKysgICAgUk09JyRSTScKKysgICAgb2ZpbGU9JyRvZmlsZScKKysKKysKKysKKysKKysK KysKKytfQUNFT0YKKysKKytjYXQgPj4kQ09ORklHX1NUQVRVUyA8PFxfQUNFT0YgfHwgYWNfd3Jp dGVfZmFpbD0xCisrCisrIyBIYW5kbGluZyBvZiBhcmd1bWVudHMuCisrZm9yIGFjX2NvbmZpZ190 YXJnZXQgaW4gJGFjX2NvbmZpZ190YXJnZXRzCisrZG8KKysgIGNhc2UgJGFjX2NvbmZpZ190YXJn ZXQgaW4KKysgICAgInNvY2kvY29uZmlnLmgiKSBDT05GSUdfSEVBREVSUz0iJENPTkZJR19IRUFE RVJTIHNvY2kvY29uZmlnLmgiIDs7CisrICAgICJkZXBmaWxlcyIpIENPTkZJR19DT01NQU5EUz0i JENPTkZJR19DT01NQU5EUyBkZXBmaWxlcyIgOzsKKysgICAgImxpYnRvb2wiKSBDT05GSUdfQ09N TUFORFM9IiRDT05GSUdfQ09NTUFORFMgbGlidG9vbCIgOzsKKysgICAgIk1ha2VmaWxlIikgQ09O RklHX0ZJTEVTPSIkQ09ORklHX0ZJTEVTIE1ha2VmaWxlIiA7OworKyAgICAic29jaS1jb25maWci KSBDT05GSUdfRklMRVM9IiRDT05GSUdfRklMRVMgc29jaS1jb25maWciIDs7CisrICAgICJzb2Np LnBjIikgQ09ORklHX0ZJTEVTPSIkQ09ORklHX0ZJTEVTIHNvY2kucGMiIDs7CisrICAgICJzb2Np LnNwZWMiKSBDT05GSUdfRklMRVM9IiRDT05GSUdfRklMRVMgc29jaS5zcGVjIiA7OworKyAgICAi c29jaS9NYWtlZmlsZSIpIENPTkZJR19GSUxFUz0iJENPTkZJR19GSUxFUyBzb2NpL01ha2VmaWxl IiA7OworKyAgICAic29jaS9jb3JlL01ha2VmaWxlIikgQ09ORklHX0ZJTEVTPSIkQ09ORklHX0ZJ TEVTIHNvY2kvY29yZS9NYWtlZmlsZSIgOzsKKysgICAgInNvY2kvY29yZS90ZXN0L01ha2VmaWxl IikgQ09ORklHX0ZJTEVTPSIkQ09ORklHX0ZJTEVTIHNvY2kvY29yZS90ZXN0L01ha2VmaWxlIiA7 OworKyAgICAic29jaS9iYWNrZW5kcy9NYWtlZmlsZSIpIENPTkZJR19GSUxFUz0iJENPTkZJR19G SUxFUyBzb2NpL2JhY2tlbmRzL01ha2VmaWxlIiA7OworKyAgICAic29jaS9iYWNrZW5kcy9teXNx bC9NYWtlZmlsZSIpIENPTkZJR19GSUxFUz0iJENPTkZJR19GSUxFUyBzb2NpL2JhY2tlbmRzL215 c3FsL01ha2VmaWxlIiA7OworKyAgICAic29jaS9iYWNrZW5kcy9teXNxbC90ZXN0L01ha2VmaWxl IikgQ09ORklHX0ZJTEVTPSIkQ09ORklHX0ZJTEVTIHNvY2kvYmFja2VuZHMvbXlzcWwvdGVzdC9N YWtlZmlsZSIgOzsKKysgICAgInNvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9NYWtlZmlsZSIpIENP TkZJR19GSUxFUz0iJENPTkZJR19GSUxFUyBzb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvTWFrZWZp bGUiIDs7CisrICAgICJzb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvdGVzdC9NYWtlZmlsZSIpIENP TkZJR19GSUxFUz0iJENPTkZJR19GSUxFUyBzb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvdGVzdC9N YWtlZmlsZSIgOzsKKysgICAgInNvY2kvYmFja2VuZHMvb3JhY2xlL01ha2VmaWxlIikgQ09ORklH X0ZJTEVTPSIkQ09ORklHX0ZJTEVTIHNvY2kvYmFja2VuZHMvb3JhY2xlL01ha2VmaWxlIiA7Owor KyAgICAic29jaS9iYWNrZW5kcy9vcmFjbGUvdGVzdC9NYWtlZmlsZSIpIENPTkZJR19GSUxFUz0i JENPTkZJR19GSUxFUyBzb2NpL2JhY2tlbmRzL29yYWNsZS90ZXN0L01ha2VmaWxlIiA7OworKyAg ICAibWFuL01ha2VmaWxlIikgQ09ORklHX0ZJTEVTPSIkQ09ORklHX0ZJTEVTIG1hbi9NYWtlZmls ZSIgOzsKKysgICAgImRvYy9NYWtlZmlsZSIpIENPTkZJR19GSUxFUz0iJENPTkZJR19GSUxFUyBk b2MvTWFrZWZpbGUiIDs7CisrICAgICJkb2MvYmFja2VuZHMvTWFrZWZpbGUiKSBDT05GSUdfRklM RVM9IiRDT05GSUdfRklMRVMgZG9jL2JhY2tlbmRzL01ha2VmaWxlIiA7OworKyAgICAiYnVpbGQv TWFrZWZpbGUiKSBDT05GSUdfRklMRVM9IiRDT05GSUdfRklMRVMgYnVpbGQvTWFrZWZpbGUiIDs7 CisrICAgICJidWlsZC91bml4L01ha2VmaWxlIikgQ09ORklHX0ZJTEVTPSIkQ09ORklHX0ZJTEVT IGJ1aWxkL3VuaXgvTWFrZWZpbGUiIDs7CisrICAgICJidWlsZC9tc3ZjODAvTWFrZWZpbGUiKSBD T05GSUdfRklMRVM9IiRDT05GSUdfRklMRVMgYnVpbGQvbXN2YzgwL01ha2VmaWxlIiA7OworKyAg ICAiYnVpbGQvbXN2YzgwL2RsbC9NYWtlZmlsZSIpIENPTkZJR19GSUxFUz0iJENPTkZJR19GSUxF UyBidWlsZC9tc3ZjODAvZGxsL01ha2VmaWxlIiA7OworKyAgICAiYnVpbGQvbXN2YzgwL2xpYi9N YWtlZmlsZSIpIENPTkZJR19GSUxFUz0iJENPTkZJR19GSUxFUyBidWlsZC9tc3ZjODAvbGliL01h a2VmaWxlIiA7OworKworKyAgKikgeyB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6 IGludmFsaWQgYXJndW1lbnQ6ICRhY19jb25maWdfdGFyZ2V0IiA+JjUKKyskYXNfZWNobyAiJGFz X21lOiBlcnJvcjogaW52YWxpZCBhcmd1bWVudDogJGFjX2NvbmZpZ190YXJnZXQiID4mMjt9Cisr ICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9OzsKKysgIGVzYWMKKytkb25lCisrCisrCisrIyBJ ZiB0aGUgdXNlciBkaWQgbm90IHVzZSB0aGUgYXJndW1lbnRzIHRvIHNwZWNpZnkgdGhlIGl0ZW1z IHRvIGluc3RhbnRpYXRlLAorKyMgdGhlbiB0aGUgZW52dmFyIGludGVyZmFjZSBpcyB1c2VkLiAg U2V0IG9ubHkgdGhvc2UgdGhhdCBhcmUgbm90LgorKyMgV2UgdXNlIHRoZSBsb25nIGZvcm0gZm9y IHRoZSBkZWZhdWx0IGFzc2lnbm1lbnQgYmVjYXVzZSBvZiBhbiBleHRyZW1lbHkKKysjIGJpemFy cmUgYnVnIG9uIFN1bk9TIDQuMS4zLgorK2lmICRhY19uZWVkX2RlZmF1bHRzOyB0aGVuCisrICB0 ZXN0ICIke0NPTkZJR19GSUxFUytzZXR9IiA9IHNldCB8fCBDT05GSUdfRklMRVM9JGNvbmZpZ19m aWxlcworKyAgdGVzdCAiJHtDT05GSUdfSEVBREVSUytzZXR9IiA9IHNldCB8fCBDT05GSUdfSEVB REVSUz0kY29uZmlnX2hlYWRlcnMKKysgIHRlc3QgIiR7Q09ORklHX0NPTU1BTkRTK3NldH0iID0g c2V0IHx8IENPTkZJR19DT01NQU5EUz0kY29uZmlnX2NvbW1hbmRzCisrZmkKKysKKysjIEhhdmUg YSB0ZW1wb3JhcnkgZGlyZWN0b3J5IGZvciBjb252ZW5pZW5jZS4gIE1ha2UgaXQgaW4gdGhlIGJ1 aWxkIHRyZWUKKysjIHNpbXBseSBiZWNhdXNlIHRoZXJlIGlzIG5vIHJlYXNvbiBhZ2FpbnN0IGhh dmluZyBpdCBoZXJlLCBhbmQgaW4gYWRkaXRpb24sCisrIyBjcmVhdGluZyBhbmQgbW92aW5nIGZp bGVzIGZyb20gL3RtcCBjYW4gc29tZXRpbWVzIGNhdXNlIHByb2JsZW1zLgorKyMgSG9vayBmb3Ig aXRzIHJlbW92YWwgdW5sZXNzIGRlYnVnZ2luZy4KKysjIE5vdGUgdGhhdCB0aGVyZSBpcyBhIHNt YWxsIHdpbmRvdyBpbiB3aGljaCB0aGUgZGlyZWN0b3J5IHdpbGwgbm90IGJlIGNsZWFuZWQ6Cisr IyBhZnRlciBpdHMgY3JlYXRpb24gYnV0IGJlZm9yZSBpdHMgbmFtZSBoYXMgYmVlbiBhc3NpZ25l ZCB0byBgJHRtcCcuCisrJGRlYnVnIHx8CisreworKyAgdG1wPQorKyAgdHJhcCAnZXhpdF9zdGF0 dXM9JD8KKysgIHsgdGVzdCAteiAiJHRtcCIgfHwgdGVzdCAhIC1kICIkdG1wIiB8fCBybSAtZnIg IiR0bXAiOyB9ICYmIGV4aXQgJGV4aXRfc3RhdHVzCisrJyAwCisrICB0cmFwICd7IChleGl0IDEp OyBleGl0IDE7IH0nIDEgMiAxMyAxNQorK30KKysjIENyZWF0ZSBhIChzZWN1cmUpIHRtcCBkaXJl Y3RvcnkgZm9yIHRtcCBmaWxlcy4KKysKKyt7CisrICB0bXA9YCh1bWFzayAwNzcgJiYgbWt0ZW1w IC1kICIuL2NvbmZYWFhYWFgiKSAyPi9kZXYvbnVsbGAgJiYKKysgIHRlc3QgLW4gIiR0bXAiICYm IHRlc3QgLWQgIiR0bXAiCisrfSAgfHwKKyt7CisrICB0bXA9Li9jb25mJCQtJFJBTkRPTQorKyAg KHVtYXNrIDA3NyAmJiBta2RpciAiJHRtcCIpCisrfSB8fAorK3sKKysgICAkYXNfZWNobyAiJGFz X21lOiBjYW5ub3QgY3JlYXRlIGEgdGVtcG9yYXJ5IGRpcmVjdG9yeSBpbiAuIiA+JjIKKysgICB7 IChleGl0IDEpOyBleGl0IDE7IH0KKyt9CisrCisrIyBTZXQgdXAgdGhlIHNjcmlwdHMgZm9yIENP TkZJR19GSUxFUyBzZWN0aW9uLgorKyMgTm8gbmVlZCB0byBnZW5lcmF0ZSB0aGVtIGlmIHRoZXJl IGFyZSBubyBDT05GSUdfRklMRVMuCisrIyBUaGlzIGhhcHBlbnMgZm9yIGluc3RhbmNlIHdpdGgg YC4vY29uZmlnLnN0YXR1cyBjb25maWcuaCcuCisraWYgdGVzdCAtbiAiJENPTkZJR19GSUxFUyI7 IHRoZW4KKysKKysKKythY19jcj0nDScKKythY19jc19hd2tfY3I9YCRBV0sgJ0JFR0lOIHsgcHJp bnQgImFccmIiIH0nIDwvZGV2L251bGwgMj4vZGV2L251bGxgCisraWYgdGVzdCAiJGFjX2NzX2F3 a19jciIgPSAiYSR7YWNfY3J9YiI7IHRoZW4KKysgIGFjX2NzX2F3a19jcj0nXFxyJworK2Vsc2UK KysgIGFjX2NzX2F3a19jcj0kYWNfY3IKKytmaQorKworK2VjaG8gJ0JFR0lOIHsnID4iJHRtcC9z dWJzMS5hd2siICYmCisrX0FDRU9GCisrCisrCisreworKyAgZWNobyAiY2F0ID5jb25mJCRzdWJz LmF3ayA8PF9BQ0VPRiIgJiYKKysgIGVjaG8gIiRhY19zdWJzdF92YXJzIiB8IHNlZCAncy8uKi8m ISQmJGFjX2RlbGltLycgJiYKKysgIGVjaG8gIl9BQ0VPRiIKKyt9ID5jb25mJCRzdWJzLnNoIHx8 CisrICB7IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogY291bGQgbm90IG1ha2Ug JENPTkZJR19TVEFUVVMiID4mNQorKyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBjb3VsZCBub3Qg bWFrZSAkQ09ORklHX1NUQVRVUyIgPiYyO30KKysgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0K KythY19kZWxpbV9udW09YGVjaG8gIiRhY19zdWJzdF92YXJzIiB8IGdyZXAgLWMgJyQnYAorK2Fj X2RlbGltPSclIV8hIyAnCisrZm9yIGFjX2xhc3RfdHJ5IGluIGZhbHNlIGZhbHNlIGZhbHNlIGZh bHNlIGZhbHNlIDo7IGRvCisrICAuIC4vY29uZiQkc3Vicy5zaCB8fAorKyAgICB7IHsgJGFzX2Vj aG8gIiRhc19tZTokTElORU5POiBlcnJvcjogY291bGQgbm90IG1ha2UgJENPTkZJR19TVEFUVVMi ID4mNQorKyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBjb3VsZCBub3QgbWFrZSAkQ09ORklHX1NU QVRVUyIgPiYyO30KKysgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KKysKKysgIGFjX2RlbGlt X249YHNlZCAtbiAicy8uKiRhY19kZWxpbVwkL1gvcCIgY29uZiQkc3Vicy5hd2sgfCBncmVwIC1j IFhgCisrICBpZiB0ZXN0ICRhY19kZWxpbV9uID0gJGFjX2RlbGltX251bTsgdGhlbgorKyAgICBi cmVhaworKyAgZWxpZiAkYWNfbGFzdF90cnk7IHRoZW4KKysgICAgeyB7ICRhc19lY2hvICIkYXNf bWU6JExJTkVOTzogZXJyb3I6IGNvdWxkIG5vdCBtYWtlICRDT05GSUdfU1RBVFVTIiA+JjUKKysk YXNfZWNobyAiJGFzX21lOiBlcnJvcjogY291bGQgbm90IG1ha2UgJENPTkZJR19TVEFUVVMiID4m Mjt9CisrICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9CisrICBlbHNlCisrICAgIGFjX2RlbGlt PSIkYWNfZGVsaW0hJGFjX2RlbGltIF8kYWNfZGVsaW0hISAiCisrICBmaQorK2RvbmUKKytybSAt ZiBjb25mJCRzdWJzLnNoCisrCisrY2F0ID4+JENPTkZJR19TVEFUVVMgPDxfQUNFT0YgfHwgYWNf d3JpdGVfZmFpbD0xCisrY2F0ID4+IlwkdG1wL3N1YnMxLmF3ayIgPDxcXF9BQ0FXSyAmJgorK19B Q0VPRgorK3NlZCAtbiAnCisraAorK3MvXi9TWyIvOyBzLyEuKi8iXT0vCisrcAorK2cKKytzL15b XiFdKiEvLworKzpyZXBsCisrdCByZXBsCisrcy8nIiRhY19kZWxpbSInJC8vCisrdCBkZWxpbQor KzpubAorK2gKKytzL1woLlx7MTQ4XH1cKS4qL1wxLworK3QgbW9yZTEKKytzL1siXFxdL1xcJi9n OyBzL14vIi87IHMvJC9cXG4iXFwvCisrcAorK24KKytiIHJlcGwKKys6bW9yZTEKKytzL1siXFxd L1xcJi9nOyBzL14vIi87IHMvJC8iXFwvCisrcAorK2cKKytzLy5cezE0OFx9Ly8KKyt0IG5sCisr OmRlbGltCisraAorK3MvXCguXHsxNDhcfVwpLiovXDEvCisrdCBtb3JlMgorK3MvWyJcXF0vXFwm L2c7IHMvXi8iLzsgcy8kLyIvCisrcAorK2IKKys6bW9yZTIKKytzL1siXFxdL1xcJi9nOyBzL14v Ii87IHMvJC8iXFwvCisrcAorK2cKKytzLy5cezE0OFx9Ly8KKyt0IGRlbGltCisrJyA8Y29uZiQk c3Vicy5hd2sgfCBzZWQgJworKy9eW14iIl0veworKyAgTgorKyAgcy9cbi8vCisrfQorKycgPj4k Q09ORklHX1NUQVRVUyB8fCBhY193cml0ZV9mYWlsPTEKKytybSAtZiBjb25mJCRzdWJzLmF3awor K2NhdCA+PiRDT05GSUdfU1RBVFVTIDw8X0FDRU9GIHx8IGFjX3dyaXRlX2ZhaWw9MQorK19BQ0FX SworK2NhdCA+PiJcJHRtcC9zdWJzMS5hd2siIDw8X0FDQVdLICYmCisrICBmb3IgKGtleSBpbiBT KSBTX2lzX3NldFtrZXldID0gMQorKyAgRlMgPSAiByIKKysKKyt9CisreworKyAgbGluZSA9ICQg MAorKyAgbmZpZWxkcyA9IHNwbGl0KGxpbmUsIGZpZWxkLCAiQCIpCisrICBzdWJzdGVkID0gMAor KyAgbGVuID0gbGVuZ3RoKGZpZWxkWzFdKQorKyAgZm9yIChpID0gMjsgaSA8IG5maWVsZHM7IGkr KykgeworKyAgICBrZXkgPSBmaWVsZFtpXQorKyAgICBrZXlsZW4gPSBsZW5ndGgoa2V5KQorKyAg ICBpZiAoU19pc19zZXRba2V5XSkgeworKyAgICAgIHZhbHVlID0gU1trZXldCisrICAgICAgbGlu ZSA9IHN1YnN0cihsaW5lLCAxLCBsZW4pICIiIHZhbHVlICIiIHN1YnN0cihsaW5lLCBsZW4gKyBr ZXlsZW4gKyAzKQorKyAgICAgIGxlbiArPSBsZW5ndGgodmFsdWUpICsgbGVuZ3RoKGZpZWxkWysr aV0pCisrICAgICAgc3Vic3RlZCA9IDEKKysgICAgfSBlbHNlCisrICAgICAgbGVuICs9IDEgKyBr ZXlsZW4KKysgIH0KKysKKysgIHByaW50IGxpbmUKKyt9CisrCisrX0FDQVdLCisrX0FDRU9GCisr Y2F0ID4+JENPTkZJR19TVEFUVVMgPDxcX0FDRU9GIHx8IGFjX3dyaXRlX2ZhaWw9MQorK2lmIHNl ZCAicy8kYWNfY3IvLyIgPCAvZGV2L251bGwgPiAvZGV2L251bGwgMj4mMTsgdGhlbgorKyAgc2Vk ICJzLyRhY19jclwkLy87IHMvJGFjX2NyLyRhY19jc19hd2tfY3IvZyIKKytlbHNlCisrICBjYXQK KytmaSA8ICIkdG1wL3N1YnMxLmF3ayIgPiAiJHRtcC9zdWJzLmF3ayIgXAorKyAgfHwgeyB7ICRh c19lY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IGNvdWxkIG5vdCBzZXR1cCBjb25maWcgZmls ZXMgbWFjaGluZXJ5IiA+JjUKKyskYXNfZWNobyAiJGFzX21lOiBlcnJvcjogY291bGQgbm90IHNl dHVwIGNvbmZpZyBmaWxlcyBtYWNoaW5lcnkiID4mMjt9CisrICAgeyAoZXhpdCAxKTsgZXhpdCAx OyB9OyB9CisrX0FDRU9GCisrCisrIyBWUEFUSCBtYXkgY2F1c2UgdHJvdWJsZSB3aXRoIHNvbWUg bWFrZXMsIHNvIHdlIHJlbW92ZSAkKHNyY2RpciksCisrIyAke3NyY2Rpcn0gYW5kIEBzcmNkaXJA IGZyb20gVlBBVEggaWYgc3JjZGlyIGlzICIuIiwgc3RyaXAgbGVhZGluZyBhbmQKKysjIHRyYWls aW5nIGNvbG9ucyBhbmQgdGhlbiByZW1vdmUgdGhlIHdob2xlIGxpbmUgaWYgVlBBVEggYmVjb21l cyBlbXB0eQorKyMgKGFjdHVhbGx5IHdlIGxlYXZlIGFuIGVtcHR5IGxpbmUgdG8gcHJlc2VydmUg bGluZSBudW1iZXJzKS4KKytpZiB0ZXN0ICJ4JHNyY2RpciIgPSB4LjsgdGhlbgorKyAgYWNfdnBz dWI9Jy9eWwkgXSpWUEFUSFsJIF0qPS97Cisrcy86KlwkKHNyY2Rpcik6Ki86LworK3MvOipcJHtz cmNkaXJ9OiovOi8KKytzLzoqQHNyY2RpckA6Ki86LworK3MvXlwoW149XSo9WwkgXSpcKToqL1wx LworK3MvOiokLy8KKytzL15bXj1dKj1bCSBdKiQvLworK30nCisrZmkKKysKKytjYXQgPj4kQ09O RklHX1NUQVRVUyA8PFxfQUNFT0YgfHwgYWNfd3JpdGVfZmFpbD0xCisrZmkgIyB0ZXN0IC1uICIk Q09ORklHX0ZJTEVTIgorKworKyMgU2V0IHVwIHRoZSBzY3JpcHRzIGZvciBDT05GSUdfSEVBREVS UyBzZWN0aW9uLgorKyMgTm8gbmVlZCB0byBnZW5lcmF0ZSB0aGVtIGlmIHRoZXJlIGFyZSBubyBD T05GSUdfSEVBREVSUy4KKysjIFRoaXMgaGFwcGVucyBmb3IgaW5zdGFuY2Ugd2l0aCBgLi9jb25m aWcuc3RhdHVzIE1ha2VmaWxlJy4KKytpZiB0ZXN0IC1uICIkQ09ORklHX0hFQURFUlMiOyB0aGVu CisrY2F0ID4iJHRtcC9kZWZpbmVzLmF3ayIgPDxcX0FDQVdLIHx8CisrQkVHSU4geworK19BQ0VP RgorKworKyMgVHJhbnNmb3JtIGNvbmZkZWZzLmggaW50byBhbiBhd2sgc2NyaXB0IGBkZWZpbmVz LmF3aycsIGVtYmVkZGVkIGFzCisrIyBoZXJlLWRvY3VtZW50IGluIGNvbmZpZy5zdGF0dXMsIHRo YXQgc3Vic3RpdHV0ZXMgdGhlIHByb3BlciB2YWx1ZXMgaW50bworKyMgY29uZmlnLmguaW4gdG8g cHJvZHVjZSBjb25maWcuaC4KKysKKysjIENyZWF0ZSBhIGRlbGltaXRlciBzdHJpbmcgdGhhdCBk b2VzIG5vdCBleGlzdCBpbiBjb25mZGVmcy5oLCB0byBlYXNlCisrIyBoYW5kbGluZyBvZiBsb25n IGxpbmVzLgorK2FjX2RlbGltPSclIV8hIyAnCisrZm9yIGFjX2xhc3RfdHJ5IGluIGZhbHNlIGZh bHNlIDo7IGRvCisrICBhY190PWBzZWQgLW4gIi8kYWNfZGVsaW0vcCIgY29uZmRlZnMuaGAKKysg IGlmIHRlc3QgLXogIiRhY190IjsgdGhlbgorKyAgICBicmVhaworKyAgZWxpZiAkYWNfbGFzdF90 cnk7IHRoZW4KKysgICAgeyB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IGNvdWxk IG5vdCBtYWtlICRDT05GSUdfSEVBREVSUyIgPiY1CisrJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6 IGNvdWxkIG5vdCBtYWtlICRDT05GSUdfSEVBREVSUyIgPiYyO30KKysgICB7IChleGl0IDEpOyBl eGl0IDE7IH07IH0KKysgIGVsc2UKKysgICAgYWNfZGVsaW09IiRhY19kZWxpbSEkYWNfZGVsaW0g XyRhY19kZWxpbSEhICIKKysgIGZpCisrZG9uZQorKworKyMgRm9yIHRoZSBhd2sgc2NyaXB0LCBE IGlzIGFuIGFycmF5IG9mIG1hY3JvIHZhbHVlcyBrZXllZCBieSBuYW1lLAorKyMgbGlrZXdpc2Ug UCBjb250YWlucyBtYWNybyBwYXJhbWV0ZXJzIGlmIGFueS4gIFByZXNlcnZlIGJhY2tzbGFzaAor KyMgbmV3bGluZSBzZXF1ZW5jZXMuCisrCisrYWNfd29yZF9yZT1bXyRhc19jcl9MZXR0ZXJzXVtf JGFzX2NyX2FsbnVtXSoKKytzZWQgLW4gJworK3MvLlx7MTQ4XH0vJiciJGFjX2RlbGltIicvZwor K3QgcnNldAorKzpyc2V0Cisrcy9eWwkgXSojWwkgXSpkZWZpbmVbCSBdWwkgXSovIC8KKyt0IGRl ZgorK2QKKys6ZGVmCisrcy9cXCQvLworK3QgYnNubAorK3MvWyJcXF0vXFwmL2cKKytzL14gXCgn IiRhY193b3JkX3JlIidcKVwoKFteKCldKilcKVsJIF0qXCguKlwpL1BbIlwxIl09IlwyIlwKKytE WyJcMSJdPSIgXDMiL3AKKytzL14gXCgnIiRhY193b3JkX3JlIidcKVsJIF0qXCguKlwpL0RbIlwx Il09IiBcMiIvcAorK2QKKys6YnNubAorK3MvWyJcXF0vXFwmL2cKKytzL14gXCgnIiRhY193b3Jk X3JlIidcKVwoKFteKCldKilcKVsJIF0qXCguKlwpL1BbIlwxIl09IlwyIlwKKytEWyJcMSJdPSIg XDNcXFxcXFxuIlxcL3AKKyt0IGNvbnQKKytzL14gXCgnIiRhY193b3JkX3JlIidcKVsJIF0qXCgu KlwpL0RbIlwxIl09IiBcMlxcXFxcXG4iXFwvcAorK3QgY29udAorK2QKKys6Y29udAorK24KKytz Ly5cezE0OFx9LyYnIiRhY19kZWxpbSInL2cKKyt0IGNsZWFyCisrOmNsZWFyCisrcy9cXCQvLwor K3QgYnNubGMKKytzL1siXFxdL1xcJi9nOyBzL14vIi87IHMvJC8iL3AKKytkCisrOmJzbmxjCisr cy9bIlxcXS9cXCYvZzsgcy9eLyIvOyBzLyQvXFxcXFxcbiJcXC9wCisrYiBjb250CisrJyA8Y29u ZmRlZnMuaCB8IHNlZCAnCisrcy8nIiRhY19kZWxpbSInLyJcXFwKKysiL2cnID4+JENPTkZJR19T VEFUVVMgfHwgYWNfd3JpdGVfZmFpbD0xCisrCisrY2F0ID4+JENPTkZJR19TVEFUVVMgPDxfQUNF T0YgfHwgYWNfd3JpdGVfZmFpbD0xCisrICBmb3IgKGtleSBpbiBEKSBEX2lzX3NldFtrZXldID0g MQorKyAgRlMgPSAiByIKKyt9CisrL15bXHQgXSojW1x0IF0qKGRlZmluZXx1bmRlZilbXHQgXSsk YWNfd29yZF9yZShbXHQgKF18XCQpLyB7CisrICBsaW5lID0gXCQgMAorKyAgc3BsaXQobGluZSwg YXJnLCAiICIpCisrICBpZiAoYXJnWzFdID09ICIjIikgeworKyAgICBkZWZ1bmRlZiA9IGFyZ1sy XQorKyAgICBtYWMxID0gYXJnWzNdCisrICB9IGVsc2UgeworKyAgICBkZWZ1bmRlZiA9IHN1YnN0 cihhcmdbMV0sIDIpCisrICAgIG1hYzEgPSBhcmdbMl0KKysgIH0KKysgIHNwbGl0KG1hYzEsIG1h YzIsICIoIikgIykKKysgIG1hY3JvID0gbWFjMlsxXQorKyAgcHJlZml4ID0gc3Vic3RyKGxpbmUs IDEsIGluZGV4KGxpbmUsIGRlZnVuZGVmKSAtIDEpCisrICBpZiAoRF9pc19zZXRbbWFjcm9dKSB7 CisrICAgICMgUHJlc2VydmUgdGhlIHdoaXRlIHNwYWNlIHN1cnJvdW5kaW5nIHRoZSAiIyIuCisr ICAgIHByaW50IHByZWZpeCAiZGVmaW5lIiwgbWFjcm8gUFttYWNyb10gRFttYWNyb10KKysgICAg bmV4dAorKyAgfSBlbHNlIHsKKysgICAgIyBSZXBsYWNlICN1bmRlZiB3aXRoIGNvbW1lbnRzLiAg VGhpcyBpcyBuZWNlc3NhcnksIGZvciBleGFtcGxlLAorKyAgICAjIGluIHRoZSBjYXNlIG9mIF9Q T1NJWF9TT1VSQ0UsIHdoaWNoIGlzIHByZWRlZmluZWQgYW5kIHJlcXVpcmVkCisrICAgICMgb24g c29tZSBzeXN0ZW1zIHdoZXJlIGNvbmZpZ3VyZSB3aWxsIG5vdCBkZWNpZGUgdG8gZGVmaW5lIGl0 LgorKyAgICBpZiAoZGVmdW5kZWYgPT0gInVuZGVmIikgeworKyAgICAgIHByaW50ICIvKiIsIHBy ZWZpeCBkZWZ1bmRlZiwgbWFjcm8sICIqLyIKKysgICAgICBuZXh0CisrICAgIH0KKysgIH0KKyt9 CisreyBwcmludCB9CisrX0FDQVdLCisrX0FDRU9GCisrY2F0ID4+JENPTkZJR19TVEFUVVMgPDxc X0FDRU9GIHx8IGFjX3dyaXRlX2ZhaWw9MQorKyAgeyB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVO TzogZXJyb3I6IGNvdWxkIG5vdCBzZXR1cCBjb25maWcgaGVhZGVycyBtYWNoaW5lcnkiID4mNQor KyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBjb3VsZCBub3Qgc2V0dXAgY29uZmlnIGhlYWRlcnMg bWFjaGluZXJ5IiA+JjI7fQorKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQorK2ZpICMgdGVz dCAtbiAiJENPTkZJR19IRUFERVJTIgorKworKworK2V2YWwgc2V0IFggIiAgOkYgJENPTkZJR19G SUxFUyAgOkggJENPTkZJR19IRUFERVJTICAgIDpDICRDT05GSUdfQ09NTUFORFMiCisrc2hpZnQK Kytmb3IgYWNfdGFnCisrZG8KKysgIGNhc2UgJGFjX3RhZyBpbgorKyAgOltGSExDXSkgYWNfbW9k ZT0kYWNfdGFnOyBjb250aW51ZTs7CisrICBlc2FjCisrICBjYXNlICRhY19tb2RlJGFjX3RhZyBp bgorKyAgOltGSExdKjoqKTs7CisrICA6TCogfCA6Qyo6KikgeyB7ICRhc19lY2hvICIkYXNfbWU6 JExJTkVOTzogZXJyb3I6IGludmFsaWQgdGFnICRhY190YWciID4mNQorKyRhc19lY2hvICIkYXNf bWU6IGVycm9yOiBpbnZhbGlkIHRhZyAkYWNfdGFnIiA+JjI7fQorKyAgIHsgKGV4aXQgMSk7IGV4 aXQgMTsgfTsgfTs7CisrICA6W0ZIXS0pIGFjX3RhZz0tOi07OworKyAgOltGSF0qKSBhY190YWc9 JGFjX3RhZzokYWNfdGFnLmluOzsKKysgIGVzYWMKKysgIGFjX3NhdmVfSUZTPSRJRlMKKysgIElG Uz06CisrICBzZXQgeCAkYWNfdGFnCisrICBJRlM9JGFjX3NhdmVfSUZTCisrICBzaGlmdAorKyAg YWNfZmlsZT0kMQorKyAgc2hpZnQKKysKKysgIGNhc2UgJGFjX21vZGUgaW4KKysgIDpMKSBhY19z b3VyY2U9JDE7OworKyAgOltGSF0pCisrICAgIGFjX2ZpbGVfaW5wdXRzPQorKyAgICBmb3IgYWNf ZgorKyAgICBkbworKyAgICAgIGNhc2UgJGFjX2YgaW4KKysgICAgICAtKSBhY19mPSIkdG1wL3N0 ZGluIjs7CisrICAgICAgKikgIyBMb29rIGZvciB0aGUgZmlsZSBmaXJzdCBpbiB0aGUgYnVpbGQg dHJlZSwgdGhlbiBpbiB0aGUgc291cmNlIHRyZWUKKysJICMgKGlmIHRoZSBwYXRoIGlzIG5vdCBh YnNvbHV0ZSkuICBUaGUgYWJzb2x1dGUgcGF0aCBjYW5ub3QgYmUgRE9TLXN0eWxlLAorKwkgIyBi ZWNhdXNlICRhY19mIGNhbm5vdCBjb250YWluIGA6Jy4KKysJIHRlc3QgLWYgIiRhY19mIiB8fAor KwkgICBjYXNlICRhY19mIGluCisrCSAgIFtcXC8kXSopIGZhbHNlOzsKKysJICAgKikgdGVzdCAt ZiAiJHNyY2Rpci8kYWNfZiIgJiYgYWNfZj0iJHNyY2Rpci8kYWNfZiI7OworKwkgICBlc2FjIHx8 CisrCSAgIHsgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBjYW5ub3QgZmluZCBp bnB1dCBmaWxlOiAkYWNfZiIgPiY1CisrJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IGNhbm5vdCBm aW5kIGlucHV0IGZpbGU6ICRhY19mIiA+JjI7fQorKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsg fTs7CisrICAgICAgZXNhYworKyAgICAgIGNhc2UgJGFjX2YgaW4gKlwnKikgYWNfZj1gJGFzX2Vj aG8gIiRhY19mIiB8IHNlZCAicy8nLydcXFxcXFxcXCcnL2ciYDs7IGVzYWMKKysgICAgICBhY19m aWxlX2lucHV0cz0iJGFjX2ZpbGVfaW5wdXRzICckYWNfZiciCisrICAgIGRvbmUKKysKKysgICAg IyBMZXQncyBzdGlsbCBwcmV0ZW5kIGl0IGlzIGBjb25maWd1cmUnIHdoaWNoIGluc3RhbnRpYXRl cyAoaS5lLiwgZG9uJ3QKKysgICAgIyB1c2UgJGFzX21lKSwgcGVvcGxlIHdvdWxkIGJlIHN1cnBy aXNlZCB0byByZWFkOgorKyAgICAjICAgIC8qIGNvbmZpZy5oLiAgR2VuZXJhdGVkIGJ5IGNvbmZp Zy5zdGF0dXMuICAqLworKyAgICBjb25maWd1cmVfaW5wdXQ9J0dlbmVyYXRlZCBmcm9tICdgCisr CSAgJGFzX2VjaG8gIiQqIiB8IHNlZCAnc3xeW146XSovfHw7c3w6W146XSovfCwgfGcnCisrCWAn IGJ5IGNvbmZpZ3VyZS4nCisrICAgIGlmIHRlc3QgeCIkYWNfZmlsZSIgIT0geC07IHRoZW4KKysg ICAgICBjb25maWd1cmVfaW5wdXQ9IiRhY19maWxlLiAgJGNvbmZpZ3VyZV9pbnB1dCIKKysgICAg ICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY3JlYXRpbmcgJGFjX2ZpbGUiID4mNQorKyRh c19lY2hvICIkYXNfbWU6IGNyZWF0aW5nICRhY19maWxlIiA+JjY7fQorKyAgICBmaQorKyAgICAj IE5ldXRyYWxpemUgc3BlY2lhbCBjaGFyYWN0ZXJzIGludGVycHJldGVkIGJ5IHNlZCBpbiByZXBs YWNlbWVudCBzdHJpbmdzLgorKyAgICBjYXNlICRjb25maWd1cmVfaW5wdXQgaW4gIygKKysgICAg KlwmKiB8ICpcfCogfCAqXFwqICkKKysgICAgICAgYWNfc2VkX2NvbmZfaW5wdXQ9YCRhc19lY2hv ICIkY29uZmlndXJlX2lucHV0IiB8CisrICAgICAgIHNlZCAncy9bXFxcXCZ8XS9cXFxcJi9nJ2A7 OyAjKAorKyAgICAqKSBhY19zZWRfY29uZl9pbnB1dD0kY29uZmlndXJlX2lucHV0OzsKKysgICAg ZXNhYworKworKyAgICBjYXNlICRhY190YWcgaW4KKysgICAgKjotOiogfCAqOi0pIGNhdCA+IiR0 bXAvc3RkaW4iIFwKKysgICAgICB8fCB7IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBlcnJv cjogY291bGQgbm90IGNyZWF0ZSAkYWNfZmlsZSIgPiY1CisrJGFzX2VjaG8gIiRhc19tZTogZXJy b3I6IGNvdWxkIG5vdCBjcmVhdGUgJGFjX2ZpbGUiID4mMjt9CisrICAgeyAoZXhpdCAxKTsgZXhp dCAxOyB9OyB9IDs7CisrICAgIGVzYWMKKysgICAgOzsKKysgIGVzYWMKKysKKysgIGFjX2Rpcj1g JGFzX2Rpcm5hbWUgLS0gIiRhY19maWxlIiB8fAorKyRhc19leHByIFgiJGFjX2ZpbGUiIDogJ1hc KC4qW14vXVwpLy8qW14vXVteL10qLyokJyBcfCBcCisrCSBYIiRhY19maWxlIiA6ICdYXCgvL1wp W14vXScgXHwgXAorKwkgWCIkYWNfZmlsZSIgOiAnWFwoLy9cKSQnIFx8IFwKKysJIFgiJGFjX2Zp bGUiIDogJ1hcKC9cKScgXHwgLiAyPi9kZXYvbnVsbCB8fAorKyRhc19lY2hvIFgiJGFjX2ZpbGUi IHwKKysgICAgc2VkICcvXlhcKC4qW14vXVwpXC9cLypbXi9dW14vXSpcLyokL3sKKysJICAgIHMv L1wxLworKwkgICAgcQorKwkgIH0KKysJICAvXlhcKFwvXC9cKVteL10uKi97CisrCSAgICBzLy9c MS8KKysJICAgIHEKKysJICB9CisrCSAgL15YXChcL1wvXCkkL3sKKysJICAgIHMvL1wxLworKwkg ICAgcQorKwkgIH0KKysJICAvXlhcKFwvXCkuKi97CisrCSAgICBzLy9cMS8KKysJICAgIHEKKysJ ICB9CisrCSAgcy8uKi8uLzsgcSdgCisrICB7IGFzX2Rpcj0iJGFjX2RpciIKKysgIGNhc2UgJGFz X2RpciBpbiAjKAorKyAgLSopIGFzX2Rpcj0uLyRhc19kaXI7OworKyAgZXNhYworKyAgdGVzdCAt ZCAiJGFzX2RpciIgfHwgeyAkYXNfbWtkaXJfcCAmJiBta2RpciAtcCAiJGFzX2RpciI7IH0gfHwg eworKyAgICBhc19kaXJzPQorKyAgICB3aGlsZSA6OyBkbworKyAgICAgIGNhc2UgJGFzX2RpciBp biAjKAorKyAgICAgICpcJyopIGFzX3FkaXI9YCRhc19lY2hvICIkYXNfZGlyIiB8IHNlZCAicy8n LydcXFxcXFxcXCcnL2ciYDs7ICMnKAorKyAgICAgICopIGFzX3FkaXI9JGFzX2Rpcjs7CisrICAg ICAgZXNhYworKyAgICAgIGFzX2RpcnM9IickYXNfcWRpcicgJGFzX2RpcnMiCisrICAgICAgYXNf ZGlyPWAkYXNfZGlybmFtZSAtLSAiJGFzX2RpciIgfHwKKyskYXNfZXhwciBYIiRhc19kaXIiIDog J1hcKC4qW14vXVwpLy8qW14vXVteL10qLyokJyBcfCBcCisrCSBYIiRhc19kaXIiIDogJ1hcKC8v XClbXi9dJyBcfCBcCisrCSBYIiRhc19kaXIiIDogJ1hcKC8vXCkkJyBcfCBcCisrCSBYIiRhc19k aXIiIDogJ1hcKC9cKScgXHwgLiAyPi9kZXYvbnVsbCB8fAorKyRhc19lY2hvIFgiJGFzX2RpciIg fAorKyAgICBzZWQgJy9eWFwoLipbXi9dXClcL1wvKlteL11bXi9dKlwvKiQveworKwkgICAgcy8v XDEvCisrCSAgICBxCisrCSAgfQorKwkgIC9eWFwoXC9cL1wpW14vXS4qL3sKKysJICAgIHMvL1wx LworKwkgICAgcQorKwkgIH0KKysJICAvXlhcKFwvXC9cKSQveworKwkgICAgcy8vXDEvCisrCSAg ICBxCisrCSAgfQorKwkgIC9eWFwoXC9cKS4qL3sKKysJICAgIHMvL1wxLworKwkgICAgcQorKwkg IH0KKysJICBzLy4qLy4vOyBxJ2AKKysgICAgICB0ZXN0IC1kICIkYXNfZGlyIiAmJiBicmVhawor KyAgICBkb25lCisrICAgIHRlc3QgLXogIiRhc19kaXJzIiB8fCBldmFsICJta2RpciAkYXNfZGly cyIKKysgIH0gfHwgdGVzdCAtZCAiJGFzX2RpciIgfHwgeyB7ICRhc19lY2hvICIkYXNfbWU6JExJ TkVOTzogZXJyb3I6IGNhbm5vdCBjcmVhdGUgZGlyZWN0b3J5ICRhc19kaXIiID4mNQorKyRhc19l Y2hvICIkYXNfbWU6IGVycm9yOiBjYW5ub3QgY3JlYXRlIGRpcmVjdG9yeSAkYXNfZGlyIiA+JjI7 fQorKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfTsgfQorKyAgYWNfYnVpbGRkaXI9LgorKwor K2Nhc2UgIiRhY19kaXIiIGluCisrLikgYWNfZGlyX3N1ZmZpeD0gYWNfdG9wX2J1aWxkZGlyX3N1 Yj0uIGFjX3RvcF9idWlsZF9wcmVmaXg9IDs7CisrKikKKysgIGFjX2Rpcl9zdWZmaXg9L2AkYXNf ZWNobyAiJGFjX2RpciIgfCBzZWQgJ3N8XlwuW1xcL118fCdgCisrICAjIEEgIi4uIiBmb3IgZWFj aCBkaXJlY3RvcnkgaW4gJGFjX2Rpcl9zdWZmaXguCisrICBhY190b3BfYnVpbGRkaXJfc3ViPWAk YXNfZWNobyAiJGFjX2Rpcl9zdWZmaXgiIHwgc2VkICdzfC9bXlxcL10qfC8uLnxnO3N8L3x8J2AK KysgIGNhc2UgJGFjX3RvcF9idWlsZGRpcl9zdWIgaW4KKysgICIiKSBhY190b3BfYnVpbGRkaXJf c3ViPS4gYWNfdG9wX2J1aWxkX3ByZWZpeD0gOzsKKysgICopICBhY190b3BfYnVpbGRfcHJlZml4 PSRhY190b3BfYnVpbGRkaXJfc3ViLyA7OworKyAgZXNhYyA7OworK2VzYWMKKythY19hYnNfdG9w X2J1aWxkZGlyPSRhY19wd2QKKythY19hYnNfYnVpbGRkaXI9JGFjX3B3ZCRhY19kaXJfc3VmZml4 CisrIyBmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eToKKythY190b3BfYnVpbGRkaXI9JGFjX3Rv cF9idWlsZF9wcmVmaXgKKysKKytjYXNlICRzcmNkaXIgaW4KKysgIC4pICAjIFdlIGFyZSBidWls ZGluZyBpbiBwbGFjZS4KKysgICAgYWNfc3JjZGlyPS4KKysgICAgYWNfdG9wX3NyY2Rpcj0kYWNf dG9wX2J1aWxkZGlyX3N1YgorKyAgICBhY19hYnNfdG9wX3NyY2Rpcj0kYWNfcHdkIDs7CisrICBb XFwvXSogfCA/OltcXC9dKiApICAjIEFic29sdXRlIG5hbWUuCisrICAgIGFjX3NyY2Rpcj0kc3Jj ZGlyJGFjX2Rpcl9zdWZmaXg7CisrICAgIGFjX3RvcF9zcmNkaXI9JHNyY2RpcgorKyAgICBhY19h YnNfdG9wX3NyY2Rpcj0kc3JjZGlyIDs7CisrICAqKSAjIFJlbGF0aXZlIG5hbWUuCisrICAgIGFj X3NyY2Rpcj0kYWNfdG9wX2J1aWxkX3ByZWZpeCRzcmNkaXIkYWNfZGlyX3N1ZmZpeAorKyAgICBh Y190b3Bfc3JjZGlyPSRhY190b3BfYnVpbGRfcHJlZml4JHNyY2RpcgorKyAgICBhY19hYnNfdG9w X3NyY2Rpcj0kYWNfcHdkLyRzcmNkaXIgOzsKKytlc2FjCisrYWNfYWJzX3NyY2Rpcj0kYWNfYWJz X3RvcF9zcmNkaXIkYWNfZGlyX3N1ZmZpeAorKworKworKyAgY2FzZSAkYWNfbW9kZSBpbgorKyAg OkYpCisrICAjCisrICAjIENPTkZJR19GSUxFCisrICAjCisrCisrICBjYXNlICRJTlNUQUxMIGlu CisrICBbXFwvJF0qIHwgPzpbXFwvXSogKSBhY19JTlNUQUxMPSRJTlNUQUxMIDs7CisrICAqKSBh Y19JTlNUQUxMPSRhY190b3BfYnVpbGRfcHJlZml4JElOU1RBTEwgOzsKKysgIGVzYWMKKysgIGFj X01LRElSX1A9JE1LRElSX1AKKysgIGNhc2UgJE1LRElSX1AgaW4KKysgIFtcXC8kXSogfCA/Oltc XC9dKiApIDs7CisrICAqLyopIGFjX01LRElSX1A9JGFjX3RvcF9idWlsZF9wcmVmaXgkTUtESVJf UCA7OworKyAgZXNhYworK19BQ0VPRgorKworK2NhdCA+PiRDT05GSUdfU1RBVFVTIDw8XF9BQ0VP RiB8fCBhY193cml0ZV9mYWlsPTEKKysjIElmIHRoZSB0ZW1wbGF0ZSBkb2VzIG5vdCBrbm93IGFi b3V0IGRhdGFyb290ZGlyLCBleHBhbmQgaXQuCisrIyBGSVhNRTogVGhpcyBoYWNrIHNob3VsZCBi ZSByZW1vdmVkIGEgZmV3IHllYXJzIGFmdGVyIDIuNjAuCisrYWNfZGF0YXJvb3RkaXJfaGFjaz07 IGFjX2RhdGFyb290ZGlyX3NlZW49CisrCisrYWNfc2VkX2RhdGFyb290PScKKysvZGF0YXJvb3Rk aXIvIHsKKysgIHAKKysgIHEKKyt9CisrL0BkYXRhZGlyQC9wCisrL0Bkb2NkaXJAL3AKKysvQGlu Zm9kaXJAL3AKKysvQGxvY2FsZWRpckAvcAorKy9AbWFuZGlyQC9wCisrJworK2Nhc2UgYGV2YWwg InNlZCAtbiBcIlwkYWNfc2VkX2RhdGFyb290XCIgJGFjX2ZpbGVfaW5wdXRzImAgaW4KKysqZGF0 YXJvb3RkaXIqKSBhY19kYXRhcm9vdGRpcl9zZWVuPXllczs7CisrKkBkYXRhZGlyQCp8KkBkb2Nk aXJAKnwqQGluZm9kaXJAKnwqQGxvY2FsZWRpckAqfCpAbWFuZGlyQCopCisrICB7ICRhc19lY2hv ICIkYXNfbWU6JExJTkVOTzogV0FSTklORzogJGFjX2ZpbGVfaW5wdXRzIHNlZW1zIHRvIGlnbm9y ZSB0aGUgLS1kYXRhcm9vdGRpciBzZXR0aW5nIiA+JjUKKyskYXNfZWNobyAiJGFzX21lOiBXQVJO SU5HOiAkYWNfZmlsZV9pbnB1dHMgc2VlbXMgdG8gaWdub3JlIHRoZSAtLWRhdGFyb290ZGlyIHNl dHRpbmciID4mMjt9CisrX0FDRU9GCisrY2F0ID4+JENPTkZJR19TVEFUVVMgPDxfQUNFT0YgfHwg YWNfd3JpdGVfZmFpbD0xCisrICBhY19kYXRhcm9vdGRpcl9oYWNrPScKKysgIHMmQGRhdGFkaXJA JiRkYXRhZGlyJmcKKysgIHMmQGRvY2RpckAmJGRvY2RpciZnCisrICBzJkBpbmZvZGlyQCYkaW5m b2RpciZnCisrICBzJkBsb2NhbGVkaXJAJiRsb2NhbGVkaXImZworKyAgcyZAbWFuZGlyQCYkbWFu ZGlyJmcKKysgICAgcyZcXFwke2RhdGFyb290ZGlyfSYkZGF0YXJvb3RkaXImZycgOzsKKytlc2Fj CisrX0FDRU9GCisrCisrIyBOZXV0cmFsaXplIFZQQVRIIHdoZW4gYCRzcmNkaXInID0gYC4nLgor KyMgU2hlbGwgY29kZSBpbiBjb25maWd1cmUuYWMgbWlnaHQgc2V0IGV4dHJhc3ViLgorKyMgRklY TUU6IGRvIHdlIHJlYWxseSB3YW50IHRvIG1haW50YWluIHRoaXMgZmVhdHVyZT8KKytjYXQgPj4k Q09ORklHX1NUQVRVUyA8PF9BQ0VPRiB8fCBhY193cml0ZV9mYWlsPTEKKythY19zZWRfZXh0cmE9 IiRhY192cHN1YgorKyRleHRyYXN1YgorK19BQ0VPRgorK2NhdCA+PiRDT05GSUdfU1RBVFVTIDw8 XF9BQ0VPRiB8fCBhY193cml0ZV9mYWlsPTEKKys6dAorKy9AW2EtekEtWl9dW2EtekEtWl8wLTld KkAvIWIKKytzfEBjb25maWd1cmVfaW5wdXRAfCRhY19zZWRfY29uZl9pbnB1dHw7dCB0CisrcyZA dG9wX2J1aWxkZGlyQCYkYWNfdG9wX2J1aWxkZGlyX3N1YiY7dCB0CisrcyZAdG9wX2J1aWxkX3By ZWZpeEAmJGFjX3RvcF9idWlsZF9wcmVmaXgmO3QgdAorK3MmQHNyY2RpckAmJGFjX3NyY2RpciY7 dCB0CisrcyZAYWJzX3NyY2RpckAmJGFjX2Fic19zcmNkaXImO3QgdAorK3MmQHRvcF9zcmNkaXJA JiRhY190b3Bfc3JjZGlyJjt0IHQKKytzJkBhYnNfdG9wX3NyY2RpckAmJGFjX2Fic190b3Bfc3Jj ZGlyJjt0IHQKKytzJkBidWlsZGRpckAmJGFjX2J1aWxkZGlyJjt0IHQKKytzJkBhYnNfYnVpbGRk aXJAJiRhY19hYnNfYnVpbGRkaXImO3QgdAorK3MmQGFic190b3BfYnVpbGRkaXJAJiRhY19hYnNf dG9wX2J1aWxkZGlyJjt0IHQKKytzJkBJTlNUQUxMQCYkYWNfSU5TVEFMTCY7dCB0CisrcyZATUtE SVJfUEAmJGFjX01LRElSX1AmO3QgdAorKyRhY19kYXRhcm9vdGRpcl9oYWNrCisrIgorK2V2YWwg c2VkIFwiXCRhY19zZWRfZXh0cmFcIiAiJGFjX2ZpbGVfaW5wdXRzIiB8ICRBV0sgLWYgIiR0bXAv c3Vicy5hd2siID4kdG1wL291dCBcCisrICB8fCB7IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5P OiBlcnJvcjogY291bGQgbm90IGNyZWF0ZSAkYWNfZmlsZSIgPiY1CisrJGFzX2VjaG8gIiRhc19t ZTogZXJyb3I6IGNvdWxkIG5vdCBjcmVhdGUgJGFjX2ZpbGUiID4mMjt9CisrICAgeyAoZXhpdCAx KTsgZXhpdCAxOyB9OyB9CisrCisrdGVzdCAteiAiJGFjX2RhdGFyb290ZGlyX2hhY2skYWNfZGF0 YXJvb3RkaXJfc2VlbiIgJiYKKysgIHsgYWNfb3V0PWBzZWQgLW4gJy9cJHtkYXRhcm9vdGRpcn0v cCcgIiR0bXAvb3V0ImA7IHRlc3QgLW4gIiRhY19vdXQiOyB9ICYmCisrICB7IGFjX291dD1gc2Vk IC1uICcvXlsJIF0qZGF0YXJvb3RkaXJbCSBdKjoqPS9wJyAiJHRtcC9vdXQiYDsgdGVzdCAteiAi JGFjX291dCI7IH0gJiYKKysgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBXQVJOSU5HOiAk YWNfZmlsZSBjb250YWlucyBhIHJlZmVyZW5jZSB0byB0aGUgdmFyaWFibGUgXGBkYXRhcm9vdGRp cicKKyt3aGljaCBzZWVtcyB0byBiZSB1bmRlZmluZWQuICBQbGVhc2UgbWFrZSBzdXJlIGl0IGlz IGRlZmluZWQuIiA+JjUKKyskYXNfZWNobyAiJGFzX21lOiBXQVJOSU5HOiAkYWNfZmlsZSBjb250 YWlucyBhIHJlZmVyZW5jZSB0byB0aGUgdmFyaWFibGUgXGBkYXRhcm9vdGRpcicKKyt3aGljaCBz ZWVtcyB0byBiZSB1bmRlZmluZWQuICBQbGVhc2UgbWFrZSBzdXJlIGl0IGlzIGRlZmluZWQuIiA+ JjI7fQorKworKyAgcm0gLWYgIiR0bXAvc3RkaW4iCisrICBjYXNlICRhY19maWxlIGluCisrICAt KSBjYXQgIiR0bXAvb3V0IiAmJiBybSAtZiAiJHRtcC9vdXQiOzsKKysgICopIHJtIC1mICIkYWNf ZmlsZSIgJiYgbXYgIiR0bXAvb3V0IiAiJGFjX2ZpbGUiOzsKKysgIGVzYWMgXAorKyAgfHwgeyB7 ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IGNvdWxkIG5vdCBjcmVhdGUgJGFjX2Zp bGUiID4mNQorKyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBjb3VsZCBub3QgY3JlYXRlICRhY19m aWxlIiA+JjI7fQorKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQorKyA7OworKyAgOkgpCisr ICAjCisrICAjIENPTkZJR19IRUFERVIKKysgICMKKysgIGlmIHRlc3QgeCIkYWNfZmlsZSIgIT0g eC07IHRoZW4KKysgICAgeworKyAgICAgICRhc19lY2hvICIvKiAkY29uZmlndXJlX2lucHV0ICAq LyIgXAorKyAgICAgICYmIGV2YWwgJyRBV0sgLWYgIiR0bXAvZGVmaW5lcy5hd2siJyAiJGFjX2Zp bGVfaW5wdXRzIgorKyAgICB9ID4iJHRtcC9jb25maWcuaCIgXAorKyAgICAgIHx8IHsgeyAkYXNf ZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBjb3VsZCBub3QgY3JlYXRlICRhY19maWxlIiA+ JjUKKyskYXNfZWNobyAiJGFzX21lOiBlcnJvcjogY291bGQgbm90IGNyZWF0ZSAkYWNfZmlsZSIg PiYyO30KKysgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KKysgICAgaWYgZGlmZiAiJGFjX2Zp bGUiICIkdG1wL2NvbmZpZy5oIiA+L2Rldi9udWxsIDI+JjE7IHRoZW4KKysgICAgICB7ICRhc19l Y2hvICIkYXNfbWU6JExJTkVOTzogJGFjX2ZpbGUgaXMgdW5jaGFuZ2VkIiA+JjUKKyskYXNfZWNo byAiJGFzX21lOiAkYWNfZmlsZSBpcyB1bmNoYW5nZWQiID4mNjt9CisrICAgIGVsc2UKKysgICAg ICBybSAtZiAiJGFjX2ZpbGUiCisrICAgICAgbXYgIiR0bXAvY29uZmlnLmgiICIkYWNfZmlsZSIg XAorKwl8fCB7IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogY291bGQgbm90IGNy ZWF0ZSAkYWNfZmlsZSIgPiY1CisrJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IGNvdWxkIG5vdCBj cmVhdGUgJGFjX2ZpbGUiID4mMjt9CisrICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9CisrICAg IGZpCisrICBlbHNlCisrICAgICRhc19lY2hvICIvKiAkY29uZmlndXJlX2lucHV0ICAqLyIgXAor KyAgICAgICYmIGV2YWwgJyRBV0sgLWYgIiR0bXAvZGVmaW5lcy5hd2siJyAiJGFjX2ZpbGVfaW5w dXRzIiBcCisrICAgICAgfHwgeyB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IGNv dWxkIG5vdCBjcmVhdGUgLSIgPiY1CisrJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IGNvdWxkIG5v dCBjcmVhdGUgLSIgPiYyO30KKysgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KKysgIGZpCisr IyBDb21wdXRlICIkYWNfZmlsZSIncyBpbmRleCBpbiAkY29uZmlnX2hlYWRlcnMuCisrX2FtX2Fy Zz0iJGFjX2ZpbGUiCisrX2FtX3N0YW1wX2NvdW50PTEKKytmb3IgX2FtX2hlYWRlciBpbiAkY29u ZmlnX2hlYWRlcnMgOjsgZG8KKysgIGNhc2UgJF9hbV9oZWFkZXIgaW4KKysgICAgJF9hbV9hcmcg fCAkX2FtX2FyZzoqICkKKysgICAgICBicmVhayA7OworKyAgICAqICkKKysgICAgICBfYW1fc3Rh bXBfY291bnQ9YGV4cHIgJF9hbV9zdGFtcF9jb3VudCArIDFgIDs7CisrICBlc2FjCisrZG9uZQor K2VjaG8gInRpbWVzdGFtcCBmb3IgJF9hbV9hcmciID5gJGFzX2Rpcm5hbWUgLS0gIiRfYW1fYXJn IiB8fAorKyRhc19leHByIFgiJF9hbV9hcmciIDogJ1hcKC4qW14vXVwpLy8qW14vXVteL10qLyok JyBcfCBcCisrCSBYIiRfYW1fYXJnIiA6ICdYXCgvL1wpW14vXScgXHwgXAorKwkgWCIkX2FtX2Fy ZyIgOiAnWFwoLy9cKSQnIFx8IFwKKysJIFgiJF9hbV9hcmciIDogJ1hcKC9cKScgXHwgLiAyPi9k ZXYvbnVsbCB8fAorKyRhc19lY2hvIFgiJF9hbV9hcmciIHwKKysgICAgc2VkICcvXlhcKC4qW14v XVwpXC9cLypbXi9dW14vXSpcLyokL3sKKysJICAgIHMvL1wxLworKwkgICAgcQorKwkgIH0KKysJ ICAvXlhcKFwvXC9cKVteL10uKi97CisrCSAgICBzLy9cMS8KKysJICAgIHEKKysJICB9CisrCSAg L15YXChcL1wvXCkkL3sKKysJICAgIHMvL1wxLworKwkgICAgcQorKwkgIH0KKysJICAvXlhcKFwv XCkuKi97CisrCSAgICBzLy9cMS8KKysJICAgIHEKKysJICB9CisrCSAgcy8uKi8uLzsgcSdgL3N0 YW1wLWgkX2FtX3N0YW1wX2NvdW50CisrIDs7CisrCisrICA6QykgIHsgJGFzX2VjaG8gIiRhc19t ZTokTElORU5POiBleGVjdXRpbmcgJGFjX2ZpbGUgY29tbWFuZHMiID4mNQorKyRhc19lY2hvICIk YXNfbWU6IGV4ZWN1dGluZyAkYWNfZmlsZSBjb21tYW5kcyIgPiY2O30KKysgOzsKKysgIGVzYWMK KysKKysKKysgIGNhc2UgJGFjX2ZpbGUkYWNfbW9kZSBpbgorKyAgICAiZGVwZmlsZXMiOkMpIHRl c3QgeCIkQU1ERVBfVFJVRSIgIT0geCIiIHx8IHsKKysgICMgQXV0b2NvbmYgMi42MiBxdW90ZXMg LS1maWxlIGFyZ3VtZW50cyBmb3IgZXZhbCwgYnV0IG5vdCB3aGVuIGZpbGVzCisrICAjIGFyZSBs aXN0ZWQgd2l0aG91dCAtLWZpbGUuICBMZXQncyBwbGF5IHNhZmUgYW5kIG9ubHkgZW5hYmxlIHRo ZSBldmFsCisrICAjIGlmIHdlIGRldGVjdCB0aGUgcXVvdGluZy4KKysgIGNhc2UgJENPTkZJR19G SUxFUyBpbgorKyAgKlwnKikgZXZhbCBzZXQgeCAiJENPTkZJR19GSUxFUyIgOzsKKysgICopICAg c2V0IHggJENPTkZJR19GSUxFUyA7OworKyAgZXNhYworKyAgc2hpZnQKKysgIGZvciBtZgorKyAg ZG8KKysgICAgIyBTdHJpcCBNRiBzbyB3ZSBlbmQgdXAgd2l0aCB0aGUgbmFtZSBvZiB0aGUgZmls ZS4KKysgICAgbWY9YGVjaG8gIiRtZiIgfCBzZWQgLWUgJ3MvOi4qJC8vJ2AKKysgICAgIyBDaGVj ayB3aGV0aGVyIHRoaXMgaXMgYW4gQXV0b21ha2UgZ2VuZXJhdGVkIE1ha2VmaWxlIG9yIG5vdC4K KysgICAgIyBXZSB1c2VkIHRvIG1hdGNoIG9ubHkgdGhlIGZpbGVzIG5hbWVkIGBNYWtlZmlsZS5p bicsIGJ1dAorKyAgICAjIHNvbWUgcGVvcGxlIHJlbmFtZSB0aGVtOyBzbyBpbnN0ZWFkIHdlIGxv b2sgYXQgdGhlIGZpbGUgY29udGVudC4KKysgICAgIyBHcmVwJ2luZyB0aGUgZmlyc3QgbGluZSBp cyBub3QgZW5vdWdoOiBzb21lIHBlb3BsZSBwb3N0LXByb2Nlc3MKKysgICAgIyBlYWNoIE1ha2Vm aWxlLmluIGFuZCBhZGQgYSBuZXcgbGluZSBvbiB0b3Agb2YgZWFjaCBmaWxlIHRvIHNheSBzby4K KysgICAgIyBHcmVwJ2luZyB0aGUgd2hvbGUgZmlsZSBpcyBub3QgZ29vZCBlaXRoZXI6IEFJWCBn cmVwIGhhcyBhIGxpbmUKKysgICAgIyBsaW1pdCBvZiAyMDQ4LCBidXQgYWxsIHNlZCdzIHdlIGtu b3cgaGF2ZSB1bmRlcnN0YW5kIGF0IGxlYXN0IDQwMDAuCisrICAgIGlmIHNlZCAtbiAncyxeIy4q Z2VuZXJhdGVkIGJ5IGF1dG9tYWtlLiosWCxwJyAiJG1mIiB8IGdyZXAgWCA+L2Rldi9udWxsIDI+ JjE7IHRoZW4KKysgICAgICBkaXJwYXJ0PWAkYXNfZGlybmFtZSAtLSAiJG1mIiB8fAorKyRhc19l eHByIFgiJG1mIiA6ICdYXCguKlteL11cKS8vKlteL11bXi9dKi8qJCcgXHwgXAorKwkgWCIkbWYi IDogJ1hcKC8vXClbXi9dJyBcfCBcCisrCSBYIiRtZiIgOiAnWFwoLy9cKSQnIFx8IFwKKysJIFgi JG1mIiA6ICdYXCgvXCknIFx8IC4gMj4vZGV2L251bGwgfHwKKyskYXNfZWNobyBYIiRtZiIgfAor KyAgICBzZWQgJy9eWFwoLipbXi9dXClcL1wvKlteL11bXi9dKlwvKiQveworKwkgICAgcy8vXDEv CisrCSAgICBxCisrCSAgfQorKwkgIC9eWFwoXC9cL1wpW14vXS4qL3sKKysJICAgIHMvL1wxLwor KwkgICAgcQorKwkgIH0KKysJICAvXlhcKFwvXC9cKSQveworKwkgICAgcy8vXDEvCisrCSAgICBx CisrCSAgfQorKwkgIC9eWFwoXC9cKS4qL3sKKysJICAgIHMvL1wxLworKwkgICAgcQorKwkgIH0K KysJICBzLy4qLy4vOyBxJ2AKKysgICAgZWxzZQorKyAgICAgIGNvbnRpbnVlCisrICAgIGZpCisr ICAgICMgRXh0cmFjdCB0aGUgZGVmaW5pdGlvbiBvZiBERVBESVIsIGFtX19pbmNsdWRlLCBhbmQg YW1fX3F1b3RlCisrICAgICMgZnJvbSB0aGUgTWFrZWZpbGUgd2l0aG91dCBydW5uaW5nIGBtYWtl Jy4KKysgICAgREVQRElSPWBzZWQgLW4gJ3MvXkRFUERJUiA9IC8vcCcgPCAiJG1mImAKKysgICAg dGVzdCAteiAiJERFUERJUiIgJiYgY29udGludWUKKysgICAgYW1fX2luY2x1ZGU9YHNlZCAtbiAn cy9eYW1fX2luY2x1ZGUgPSAvL3AnIDwgIiRtZiJgCisrICAgIHRlc3QgLXogImFtX19pbmNsdWRl IiAmJiBjb250aW51ZQorKyAgICBhbV9fcXVvdGU9YHNlZCAtbiAncy9eYW1fX3F1b3RlID0gLy9w JyA8ICIkbWYiYAorKyAgICAjIFdoZW4gdXNpbmcgYW5zaTJrbnIsIFUgbWF5IGJlIGVtcHR5IG9y IGFuIHVuZGVyc2NvcmU7IGV4cGFuZCBpdAorKyAgICBVPWBzZWQgLW4gJ3MvXlUgPSAvL3AnIDwg IiRtZiJgCisrICAgICMgRmluZCBhbGwgZGVwZW5kZW5jeSBvdXRwdXQgZmlsZXMsIHRoZXkgYXJl IGluY2x1ZGVkIGZpbGVzIHdpdGgKKysgICAgIyAkKERFUERJUikgaW4gdGhlaXIgbmFtZXMuICBX ZSBpbnZva2Ugc2VkIHR3aWNlIGJlY2F1c2UgaXQgaXMgdGhlCisrICAgICMgc2ltcGxlc3QgYXBw cm9hY2ggdG8gY2hhbmdpbmcgJChERVBESVIpIHRvIGl0cyBhY3R1YWwgdmFsdWUgaW4gdGhlCisr ICAgICMgZXhwYW5zaW9uLgorKyAgICBmb3IgZmlsZSBpbiBgc2VkIC1uICIKKysgICAgICBzL14k YW1fX2luY2x1ZGUgJGFtX19xdW90ZVwoLiooREVQRElSKS4qXCkkYW1fX3F1b3RlIickL1wxL3An IDwiJG1mIiB8IFwKKysJIHNlZCAtZSAncy9cJChERVBESVIpLyciJERFUERJUiInL2cnIC1lICdz L1wkVS8nIiRVIicvZydgOyBkbworKyAgICAgICMgTWFrZSBzdXJlIHRoZSBkaXJlY3RvcnkgZXhp c3RzLgorKyAgICAgIHRlc3QgLWYgIiRkaXJwYXJ0LyRmaWxlIiAmJiBjb250aW51ZQorKyAgICAg IGZkaXI9YCRhc19kaXJuYW1lIC0tICIkZmlsZSIgfHwKKyskYXNfZXhwciBYIiRmaWxlIiA6ICdY XCguKlteL11cKS8vKlteL11bXi9dKi8qJCcgXHwgXAorKwkgWCIkZmlsZSIgOiAnWFwoLy9cKVte L10nIFx8IFwKKysJIFgiJGZpbGUiIDogJ1hcKC8vXCkkJyBcfCBcCisrCSBYIiRmaWxlIiA6ICdY XCgvXCknIFx8IC4gMj4vZGV2L251bGwgfHwKKyskYXNfZWNobyBYIiRmaWxlIiB8CisrICAgIHNl ZCAnL15YXCguKlteL11cKVwvXC8qW14vXVteL10qXC8qJC97CisrCSAgICBzLy9cMS8KKysJICAg IHEKKysJICB9CisrCSAgL15YXChcL1wvXClbXi9dLioveworKwkgICAgcy8vXDEvCisrCSAgICBx CisrCSAgfQorKwkgIC9eWFwoXC9cL1wpJC97CisrCSAgICBzLy9cMS8KKysJICAgIHEKKysJICB9 CisrCSAgL15YXChcL1wpLioveworKwkgICAgcy8vXDEvCisrCSAgICBxCisrCSAgfQorKwkgIHMv LiovLi87IHEnYAorKyAgICAgIHsgYXNfZGlyPSRkaXJwYXJ0LyRmZGlyCisrICBjYXNlICRhc19k aXIgaW4gIygKKysgIC0qKSBhc19kaXI9Li8kYXNfZGlyOzsKKysgIGVzYWMKKysgIHRlc3QgLWQg IiRhc19kaXIiIHx8IHsgJGFzX21rZGlyX3AgJiYgbWtkaXIgLXAgIiRhc19kaXIiOyB9IHx8IHsK KysgICAgYXNfZGlycz0KKysgICAgd2hpbGUgOjsgZG8KKysgICAgICBjYXNlICRhc19kaXIgaW4g IygKKysgICAgICAqXCcqKSBhc19xZGlyPWAkYXNfZWNobyAiJGFzX2RpciIgfCBzZWQgInMvJy8n XFxcXFxcXFwnJy9nImA7OyAjJygKKysgICAgICAqKSBhc19xZGlyPSRhc19kaXI7OworKyAgICAg IGVzYWMKKysgICAgICBhc19kaXJzPSInJGFzX3FkaXInICRhc19kaXJzIgorKyAgICAgIGFzX2Rp cj1gJGFzX2Rpcm5hbWUgLS0gIiRhc19kaXIiIHx8CisrJGFzX2V4cHIgWCIkYXNfZGlyIiA6ICdY XCguKlteL11cKS8vKlteL11bXi9dKi8qJCcgXHwgXAorKwkgWCIkYXNfZGlyIiA6ICdYXCgvL1wp W14vXScgXHwgXAorKwkgWCIkYXNfZGlyIiA6ICdYXCgvL1wpJCcgXHwgXAorKwkgWCIkYXNfZGly IiA6ICdYXCgvXCknIFx8IC4gMj4vZGV2L251bGwgfHwKKyskYXNfZWNobyBYIiRhc19kaXIiIHwK KysgICAgc2VkICcvXlhcKC4qW14vXVwpXC9cLypbXi9dW14vXSpcLyokL3sKKysJICAgIHMvL1wx LworKwkgICAgcQorKwkgIH0KKysJICAvXlhcKFwvXC9cKVteL10uKi97CisrCSAgICBzLy9cMS8K KysJICAgIHEKKysJICB9CisrCSAgL15YXChcL1wvXCkkL3sKKysJICAgIHMvL1wxLworKwkgICAg cQorKwkgIH0KKysJICAvXlhcKFwvXCkuKi97CisrCSAgICBzLy9cMS8KKysJICAgIHEKKysJICB9 CisrCSAgcy8uKi8uLzsgcSdgCisrICAgICAgdGVzdCAtZCAiJGFzX2RpciIgJiYgYnJlYWsKKysg ICAgZG9uZQorKyAgICB0ZXN0IC16ICIkYXNfZGlycyIgfHwgZXZhbCAibWtkaXIgJGFzX2RpcnMi CisrICB9IHx8IHRlc3QgLWQgIiRhc19kaXIiIHx8IHsgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5F Tk86IGVycm9yOiBjYW5ub3QgY3JlYXRlIGRpcmVjdG9yeSAkYXNfZGlyIiA+JjUKKyskYXNfZWNo byAiJGFzX21lOiBlcnJvcjogY2Fubm90IGNyZWF0ZSBkaXJlY3RvcnkgJGFzX2RpciIgPiYyO30K KysgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH07IH0KKysgICAgICAjIGVjaG8gImNyZWF0aW5n ICRkaXJwYXJ0LyRmaWxlIgorKyAgICAgIGVjaG8gJyMgZHVtbXknID4gIiRkaXJwYXJ0LyRmaWxl IgorKyAgICBkb25lCisrICBkb25lCisrfQorKyA7OworKyAgICAibGlidG9vbCI6QykKKysKKysg ICAgIyBTZWUgaWYgd2UgYXJlIHJ1bm5pbmcgb24genNoLCBhbmQgc2V0IHRoZSBvcHRpb25zIHdo aWNoIGFsbG93IG91cgorKyAgICAjIGNvbW1hbmRzIHRocm91Z2ggd2l0aG91dCByZW1vdmFsIG9m IFwgZXNjYXBlcy4KKysgICAgaWYgdGVzdCAtbiAiJHtaU0hfVkVSU0lPTitzZXR9IiA7IHRoZW4K KysgICAgICBzZXRvcHQgTk9fR0xPQl9TVUJTVAorKyAgICBmaQorKworKyAgICBjZmdmaWxlPSIk e29maWxlfVQiCisrICAgIHRyYXAgIiRSTSBcIiRjZmdmaWxlXCI7IGV4aXQgMSIgMSAyIDE1Cisr ICAgICRSTSAiJGNmZ2ZpbGUiCisrCisrICAgIGNhdCA8PF9MVF9FT0YgPj4gIiRjZmdmaWxlIgor KyMhICRTSEVMTAorKworKyMgYCRFQ0hPICIkb2ZpbGUiIHwgc2VkICdzJV4uKi8lJSdgIC0gUHJv dmlkZSBnZW5lcmFsaXplZCBsaWJyYXJ5LWJ1aWxkaW5nIHN1cHBvcnQgc2VydmljZXMuCisrIyBH ZW5lcmF0ZWQgYXV0b21hdGljYWxseSBieSAkYXNfbWUgKCRQQUNLQUdFJFRJTUVTVEFNUCkgJFZF UlNJT04KKysjIExpYnRvb2wgd2FzIGNvbmZpZ3VyZWQgb24gaG9zdCBgKGhvc3RuYW1lIHx8IHVu YW1lIC1uKSAyPi9kZXYvbnVsbCB8IHNlZCAxcWA6CisrIyBOT1RFOiBDaGFuZ2VzIG1hZGUgdG8g dGhpcyBmaWxlIHdpbGwgYmUgbG9zdDogbG9vayBhdCBsdG1haW4uc2guCisrIworKyMgICBDb3B5 cmlnaHQgKEMpIDE5OTYsIDE5OTcsIDE5OTgsIDE5OTksIDIwMDAsIDIwMDEsIDIwMDMsIDIwMDQs IDIwMDUsCisrIyAgICAgICAgICAgICAgICAgMjAwNiwgMjAwNywgMjAwOCBGcmVlIFNvZnR3YXJl IEZvdW5kYXRpb24sIEluYy4KKysjICAgV3JpdHRlbiBieSBHb3Jkb24gTWF0emlna2VpdCwgMTk5 NgorKyMKKysjICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgR05VIExpYnRvb2wuCisrIworKyMgR05V IExpYnRvb2wgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29y CisrIyBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMg TGljZW5zZSBhcworKyMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247 IGVpdGhlciB2ZXJzaW9uIDIgb2YKKysjIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24p IGFueSBsYXRlciB2ZXJzaW9uLgorKyMKKysjIEFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhl IEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLAorKyMgaWYgeW91IGRpc3RyaWJ1dGUgdGhpcyBm aWxlIGFzIHBhcnQgb2YgYSBwcm9ncmFtIG9yIGxpYnJhcnkgdGhhdAorKyMgaXMgYnVpbHQgdXNp bmcgR05VIExpYnRvb2wsIHlvdSBtYXkgaW5jbHVkZSB0aGlzIGZpbGUgdW5kZXIgdGhlCisrIyBz YW1lIGRpc3RyaWJ1dGlvbiB0ZXJtcyB0aGF0IHlvdSB1c2UgZm9yIHRoZSByZXN0IG9mIHRoYXQg cHJvZ3JhbS4KKysjCisrIyBHTlUgTGlidG9vbCBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0 aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRo b3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKysjIE1FUkNIQU5UQUJJTElUWSBvciBG SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKysjIEdOVSBHZW5lcmFs IFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisrIworKyMgWW91IHNob3VsZCBoYXZl IHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKysjIGFs b25nIHdpdGggR05VIExpYnRvb2w7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLiAgSWYgbm90LCBhIGNv cHkKKysjIGNhbiBiZSBkb3dubG9hZGVkIGZyb20gaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2Vz L2dwbC5odG1sLCBvcgorKyMgb2J0YWluZWQgYnkgd3JpdGluZyB0byB0aGUgRnJlZSBTb2Z0d2Fy ZSBGb3VuZGF0aW9uLCBJbmMuLAorKyMgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwg Qm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisrCisrCisrIyBUaGUgbmFtZXMgb2YgdGhlIHRh Z2dlZCBjb25maWd1cmF0aW9ucyBzdXBwb3J0ZWQgYnkgdGhpcyBzY3JpcHQuCisrYXZhaWxhYmxl X3RhZ3M9IkNYWCAiCisrCisrIyAjIyMgQkVHSU4gTElCVE9PTCBDT05GSUcKKysKKysjIFdoZXRo ZXIgb3Igbm90IHRvIGJ1aWxkIHNoYXJlZCBsaWJyYXJpZXMuCisrYnVpbGRfbGlidG9vbF9saWJz PSRlbmFibGVfc2hhcmVkCisrCisrIyBXaGV0aGVyIG9yIG5vdCB0byBidWlsZCBzdGF0aWMgbGli cmFyaWVzLgorK2J1aWxkX29sZF9saWJzPSRlbmFibGVfc3RhdGljCisrCisrIyBXaGljaCByZWxl YXNlIG9mIGxpYnRvb2wubTQgd2FzIHVzZWQ/CisrbWFjcm9fdmVyc2lvbj0kbWFjcm9fdmVyc2lv bgorK21hY3JvX3JldmlzaW9uPSRtYWNyb19yZXZpc2lvbgorKworKyMgV2hhdCB0eXBlIG9mIG9i amVjdHMgdG8gYnVpbGQuCisrcGljX21vZGU9JHBpY19tb2RlCisrCisrIyBXaGV0aGVyIG9yIG5v dCB0byBvcHRpbWl6ZSBmb3IgZmFzdCBpbnN0YWxsYXRpb24uCisrZmFzdF9pbnN0YWxsPSRlbmFi bGVfZmFzdF9pbnN0YWxsCisrCisrIyBUaGUgaG9zdCBzeXN0ZW0uCisraG9zdF9hbGlhcz0kaG9z dF9hbGlhcworK2hvc3Q9JGhvc3QKKytob3N0X29zPSRob3N0X29zCisrCisrIyBUaGUgYnVpbGQg c3lzdGVtLgorK2J1aWxkX2FsaWFzPSRidWlsZF9hbGlhcworK2J1aWxkPSRidWlsZAorK2J1aWxk X29zPSRidWlsZF9vcworKworKyMgQSBzZWQgcHJvZ3JhbSB0aGF0IGRvZXMgbm90IHRydW5jYXRl IG91dHB1dC4KKytTRUQ9JGx0X1NFRAorKworKyMgU2VkIHRoYXQgaGVscHMgdXMgYXZvaWQgYWNj aWRlbnRhbGx5IHRyaWdnZXJpbmcgZWNobygxKSBvcHRpb25zIGxpa2UgLW4uCisrWHNlZD0iXCRT RUQgLWUgMXMvXlgvLyIKKysKKysjIEEgZ3JlcCBwcm9ncmFtIHRoYXQgaGFuZGxlcyBsb25nIGxp bmVzLgorK0dSRVA9JGx0X0dSRVAKKysKKysjIEFuIEVSRSBtYXRjaGVyLgorK0VHUkVQPSRsdF9F R1JFUAorKworKyMgQSBsaXRlcmFsIHN0cmluZyBtYXRjaGVyLgorK0ZHUkVQPSRsdF9GR1JFUAor KworKyMgQSBCU0QtIG9yIE1TLWNvbXBhdGlibGUgbmFtZSBsaXN0ZXIuCisrTk09JGx0X05NCisr CisrIyBXaGV0aGVyIHdlIG5lZWQgc29mdCBvciBoYXJkIGxpbmtzLgorK0xOX1M9JGx0X0xOX1MK KysKKysjIFdoYXQgaXMgdGhlIG1heGltdW0gbGVuZ3RoIG9mIGEgY29tbWFuZD8KKyttYXhfY21k X2xlbj0kbWF4X2NtZF9sZW4KKysKKysjIE9iamVjdCBmaWxlIHN1ZmZpeCAobm9ybWFsbHkgIm8i KS4KKytvYmpleHQ9JGFjX29iamV4dAorKworKyMgRXhlY3V0YWJsZSBmaWxlIHN1ZmZpeCAobm9y bWFsbHkgIiIpLgorK2V4ZWV4dD0kZXhlZXh0CisrCisrIyB3aGV0aGVyIHRoZSBzaGVsbCB1bmRl cnN0YW5kcyAidW5zZXQiLgorK2x0X3Vuc2V0PSRsdF91bnNldAorKworKyMgdHVybiBzcGFjZXMg aW50byBuZXdsaW5lcy4KKytTUDJOTD0kbHRfbHRfU1AyTkwKKysKKysjIHR1cm4gbmV3bGluZXMg aW50byBzcGFjZXMuCisrTkwyU1A9JGx0X2x0X05MMlNQCisrCisrIyBIb3cgdG8gY3JlYXRlIHJl bG9hZGFibGUgb2JqZWN0IGZpbGVzLgorK3JlbG9hZF9mbGFnPSRsdF9yZWxvYWRfZmxhZworK3Jl bG9hZF9jbWRzPSRsdF9yZWxvYWRfY21kcworKworKyMgQW4gb2JqZWN0IHN5bWJvbCBkdW1wZXIu CisrT0JKRFVNUD0kbHRfT0JKRFVNUAorKworKyMgTWV0aG9kIHRvIGNoZWNrIHdoZXRoZXIgZGVw ZW5kZW50IGxpYnJhcmllcyBhcmUgc2hhcmVkIG9iamVjdHMuCisrZGVwbGlic19jaGVja19tZXRo b2Q9JGx0X2RlcGxpYnNfY2hlY2tfbWV0aG9kCisrCisrIyBDb21tYW5kIHRvIHVzZSB3aGVuIGRl cGxpYnNfY2hlY2tfbWV0aG9kID09ICJmaWxlX21hZ2ljIi4KKytmaWxlX21hZ2ljX2NtZD0kbHRf ZmlsZV9tYWdpY19jbWQKKysKKysjIFRoZSBhcmNoaXZlci4KKytBUj0kbHRfQVIKKytBUl9GTEFH Uz0kbHRfQVJfRkxBR1MKKysKKysjIEEgc3ltYm9sIHN0cmlwcGluZyBwcm9ncmFtLgorK1NUUklQ PSRsdF9TVFJJUAorKworKyMgQ29tbWFuZHMgdXNlZCB0byBpbnN0YWxsIGFuIG9sZC1zdHlsZSBh cmNoaXZlLgorK1JBTkxJQj0kbHRfUkFOTElCCisrb2xkX3Bvc3RpbnN0YWxsX2NtZHM9JGx0X29s ZF9wb3N0aW5zdGFsbF9jbWRzCisrb2xkX3Bvc3R1bmluc3RhbGxfY21kcz0kbHRfb2xkX3Bvc3R1 bmluc3RhbGxfY21kcworKworKyMgQSBDIGNvbXBpbGVyLgorK0xUQ0M9JGx0X0NDCisrCisrIyBM VENDIGNvbXBpbGVyIGZsYWdzLgorK0xUQ0ZMQUdTPSRsdF9DRkxBR1MKKysKKysjIFRha2UgdGhl IG91dHB1dCBvZiBubSBhbmQgcHJvZHVjZSBhIGxpc3Rpbmcgb2YgcmF3IHN5bWJvbHMgYW5kIEMg bmFtZXMuCisrZ2xvYmFsX3N5bWJvbF9waXBlPSRsdF9sdF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF9w aXBlCisrCisrIyBUcmFuc2Zvcm0gdGhlIG91dHB1dCBvZiBubSBpbiBhIHByb3BlciBDIGRlY2xh cmF0aW9uLgorK2dsb2JhbF9zeW1ib2xfdG9fY2RlY2w9JGx0X2x0X2N2X3N5c19nbG9iYWxfc3lt Ym9sX3RvX2NkZWNsCisrCisrIyBUcmFuc2Zvcm0gdGhlIG91dHB1dCBvZiBubSBpbiBhIEMgbmFt ZSBhZGRyZXNzIHBhaXIuCisrZ2xvYmFsX3N5bWJvbF90b19jX25hbWVfYWRkcmVzcz0kbHRfbHRf Y3Zfc3lzX2dsb2JhbF9zeW1ib2xfdG9fY19uYW1lX2FkZHJlc3MKKysKKysjIFRyYW5zZm9ybSB0 aGUgb3V0cHV0IG9mIG5tIGluIGEgQyBuYW1lIGFkZHJlc3MgcGFpciB3aGVuIGxpYiBwcmVmaXgg aXMgbmVlZGVkLgorK2dsb2JhbF9zeW1ib2xfdG9fY19uYW1lX2FkZHJlc3NfbGliX3ByZWZpeD0k bHRfbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfdG9fY19uYW1lX2FkZHJlc3NfbGliX3ByZWZpeAor KworKyMgVGhlIG5hbWUgb2YgdGhlIGRpcmVjdG9yeSB0aGF0IGNvbnRhaW5zIHRlbXBvcmFyeSBs aWJ0b29sIGZpbGVzLgorK29iamRpcj0kb2JqZGlyCisrCisrIyBTaGVsbCB0byB1c2Ugd2hlbiBp bnZva2luZyBzaGVsbCBzY3JpcHRzLgorK1NIRUxMPSRsdF9TSEVMTAorKworKyMgQW4gZWNobyBw cm9ncmFtIHRoYXQgZG9lcyBub3QgaW50ZXJwcmV0IGJhY2tzbGFzaGVzLgorK0VDSE89JGx0X0VD SE8KKysKKysjIFVzZWQgdG8gZXhhbWluZSBsaWJyYXJpZXMgd2hlbiBmaWxlX21hZ2ljX2NtZCBi ZWdpbnMgd2l0aCAiZmlsZSIuCisrTUFHSUNfQ01EPSRNQUdJQ19DTUQKKysKKysjIE11c3Qgd2Ug bG9jayBmaWxlcyB3aGVuIGRvaW5nIGNvbXBpbGF0aW9uPworK25lZWRfbG9ja3M9JGx0X25lZWRf bG9ja3MKKysKKysjIFRvb2wgdG8gbWFuaXB1bGF0ZSBhcmNoaXZlZCBEV0FSRiBkZWJ1ZyBzeW1i b2wgZmlsZXMgb24gTWFjIE9TIFguCisrRFNZTVVUSUw9JGx0X0RTWU1VVElMCisrCisrIyBUb29s IHRvIGNoYW5nZSBnbG9iYWwgdG8gbG9jYWwgc3ltYm9scyBvbiBNYWMgT1MgWC4KKytOTUVESVQ9 JGx0X05NRURJVAorKworKyMgVG9vbCB0byBtYW5pcHVsYXRlIGZhdCBvYmplY3RzIGFuZCBhcmNo aXZlcyBvbiBNYWMgT1MgWC4KKytMSVBPPSRsdF9MSVBPCisrCisrIyBsZGQvcmVhZGVsZiBsaWtl IHRvb2wgZm9yIE1hY2gtTyBiaW5hcmllcyBvbiBNYWMgT1MgWC4KKytPVE9PTD0kbHRfT1RPT0wK KysKKysjIGxkZC9yZWFkZWxmIGxpa2UgdG9vbCBmb3IgNjQgYml0IE1hY2gtTyBiaW5hcmllcyBv biBNYWMgT1MgWCAxMC40LgorK09UT09MNjQ9JGx0X09UT09MNjQKKysKKysjIE9sZCBhcmNoaXZl IHN1ZmZpeCAobm9ybWFsbHkgImEiKS4KKytsaWJleHQ9JGxpYmV4dAorKworKyMgU2hhcmVkIGxp YnJhcnkgc3VmZml4IChub3JtYWxseSAiLnNvIikuCisrc2hyZXh0X2NtZHM9JGx0X3NocmV4dF9j bWRzCisrCisrIyBUaGUgY29tbWFuZHMgdG8gZXh0cmFjdCB0aGUgZXhwb3J0ZWQgc3ltYm9sIGxp c3QgZnJvbSBhIHNoYXJlZCBhcmNoaXZlLgorK2V4dHJhY3RfZXhwc3ltc19jbWRzPSRsdF9leHRy YWN0X2V4cHN5bXNfY21kcworKworKyMgVmFyaWFibGVzIHdob3NlIHZhbHVlcyBzaG91bGQgYmUg c2F2ZWQgaW4gbGlidG9vbCB3cmFwcGVyIHNjcmlwdHMgYW5kCisrIyByZXN0b3JlZCBhdCBsaW5r IHRpbWUuCisrdmFyaWFibGVzX3NhdmVkX2Zvcl9yZWxpbms9JGx0X3ZhcmlhYmxlc19zYXZlZF9m b3JfcmVsaW5rCisrCisrIyBEbyB3ZSBuZWVkIHRoZSAibGliIiBwcmVmaXggZm9yIG1vZHVsZXM/ CisrbmVlZF9saWJfcHJlZml4PSRuZWVkX2xpYl9wcmVmaXgKKysKKysjIERvIHdlIG5lZWQgYSB2 ZXJzaW9uIGZvciBsaWJyYXJpZXM/CisrbmVlZF92ZXJzaW9uPSRuZWVkX3ZlcnNpb24KKysKKysj IExpYnJhcnkgdmVyc2lvbmluZyB0eXBlLgorK3ZlcnNpb25fdHlwZT0kdmVyc2lvbl90eXBlCisr CisrIyBTaGFyZWQgbGlicmFyeSBydW50aW1lIHBhdGggdmFyaWFibGUuCisrcnVucGF0aF92YXI9 JHJ1bnBhdGhfdmFyCisrCisrIyBTaGFyZWQgbGlicmFyeSBwYXRoIHZhcmlhYmxlLgorK3NobGli cGF0aF92YXI9JHNobGlicGF0aF92YXIKKysKKysjIElzIHNobGlicGF0aCBzZWFyY2hlZCBiZWZv cmUgdGhlIGhhcmQtY29kZWQgbGlicmFyeSBzZWFyY2ggcGF0aD8KKytzaGxpYnBhdGhfb3ZlcnJp ZGVzX3J1bnBhdGg9JHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aAorKworKyMgRm9ybWF0IG9m IGxpYnJhcnkgbmFtZSBwcmVmaXguCisrbGlibmFtZV9zcGVjPSRsdF9saWJuYW1lX3NwZWMKKysK KysjIExpc3Qgb2YgYXJjaGl2ZSBuYW1lcy4gIEZpcnN0IG5hbWUgaXMgdGhlIHJlYWwgb25lLCB0 aGUgcmVzdCBhcmUgbGlua3MuCisrIyBUaGUgbGFzdCBuYW1lIGlzIHRoZSBvbmUgdGhhdCB0aGUg bGlua2VyIGZpbmRzIHdpdGggLWxOQU1FCisrbGlicmFyeV9uYW1lc19zcGVjPSRsdF9saWJyYXJ5 X25hbWVzX3NwZWMKKysKKysjIFRoZSBjb2RlZCBuYW1lIG9mIHRoZSBsaWJyYXJ5LCBpZiBkaWZm ZXJlbnQgZnJvbSB0aGUgcmVhbCBuYW1lLgorK3NvbmFtZV9zcGVjPSRsdF9zb25hbWVfc3BlYwor KworKyMgQ29tbWFuZCB0byB1c2UgYWZ0ZXIgaW5zdGFsbGF0aW9uIG9mIGEgc2hhcmVkIGFyY2hp dmUuCisrcG9zdGluc3RhbGxfY21kcz0kbHRfcG9zdGluc3RhbGxfY21kcworKworKyMgQ29tbWFu ZCB0byB1c2UgYWZ0ZXIgdW5pbnN0YWxsYXRpb24gb2YgYSBzaGFyZWQgYXJjaGl2ZS4KKytwb3N0 dW5pbnN0YWxsX2NtZHM9JGx0X3Bvc3R1bmluc3RhbGxfY21kcworKworKyMgQ29tbWFuZHMgdXNl ZCB0byBmaW5pc2ggYSBsaWJ0b29sIGxpYnJhcnkgaW5zdGFsbGF0aW9uIGluIGEgZGlyZWN0b3J5 LgorK2ZpbmlzaF9jbWRzPSRsdF9maW5pc2hfY21kcworKworKyMgQXMgImZpbmlzaF9jbWRzIiwg ZXhjZXB0IGEgc2luZ2xlIHNjcmlwdCBmcmFnbWVudCB0byBiZSBldmFsZWQgYnV0CisrIyBub3Qg c2hvd24uCisrZmluaXNoX2V2YWw9JGx0X2ZpbmlzaF9ldmFsCisrCisrIyBXaGV0aGVyIHdlIHNo b3VsZCBoYXJkY29kZSBsaWJyYXJ5IHBhdGhzIGludG8gbGlicmFyaWVzLgorK2hhcmRjb2RlX2lu dG9fbGlicz0kaGFyZGNvZGVfaW50b19saWJzCisrCisrIyBDb21waWxlLXRpbWUgc3lzdGVtIHNl YXJjaCBwYXRoIGZvciBsaWJyYXJpZXMuCisrc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPSRsdF9z eXNfbGliX3NlYXJjaF9wYXRoX3NwZWMKKysKKysjIFJ1bi10aW1lIHN5c3RlbSBzZWFyY2ggcGF0 aCBmb3IgbGlicmFyaWVzLgorK3N5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjPSRsdF9zeXNfbGli X2Rsc2VhcmNoX3BhdGhfc3BlYworKworKyMgV2hldGhlciBkbG9wZW4gaXMgc3VwcG9ydGVkLgor K2Rsb3Blbl9zdXBwb3J0PSRlbmFibGVfZGxvcGVuCisrCisrIyBXaGV0aGVyIGRsb3BlbiBvZiBw cm9ncmFtcyBpcyBzdXBwb3J0ZWQuCisrZGxvcGVuX3NlbGY9JGVuYWJsZV9kbG9wZW5fc2VsZgor KworKyMgV2hldGhlciBkbG9wZW4gb2Ygc3RhdGljYWxseSBsaW5rZWQgcHJvZ3JhbXMgaXMgc3Vw cG9ydGVkLgorK2Rsb3Blbl9zZWxmX3N0YXRpYz0kZW5hYmxlX2Rsb3Blbl9zZWxmX3N0YXRpYwor KworKyMgQ29tbWFuZHMgdG8gc3RyaXAgbGlicmFyaWVzLgorK29sZF9zdHJpcGxpYj0kbHRfb2xk X3N0cmlwbGliCisrc3RyaXBsaWI9JGx0X3N0cmlwbGliCisrCisrCisrIyBUaGUgbGlua2VyIHVz ZWQgdG8gYnVpbGQgbGlicmFyaWVzLgorK0xEPSRsdF9MRAorKworKyMgQ29tbWFuZHMgdXNlZCB0 byBidWlsZCBhbiBvbGQtc3R5bGUgYXJjaGl2ZS4KKytvbGRfYXJjaGl2ZV9jbWRzPSRsdF9vbGRf YXJjaGl2ZV9jbWRzCisrCisrIyBBIGxhbmd1YWdlIHNwZWNpZmljIGNvbXBpbGVyLgorK0NDPSRs dF9jb21waWxlcgorKworKyMgSXMgdGhlIGNvbXBpbGVyIHRoZSBHTlUgY29tcGlsZXI/Cisrd2l0 aF9nY2M9JEdDQworKworKyMgQ29tcGlsZXIgZmxhZyB0byB0dXJuIG9mZiBidWlsdGluIGZ1bmN0 aW9ucy4KKytub19idWlsdGluX2ZsYWc9JGx0X2x0X3Byb2dfY29tcGlsZXJfbm9fYnVpbHRpbl9m bGFnCisrCisrIyBIb3cgdG8gcGFzcyBhIGxpbmtlciBmbGFnIHRocm91Z2ggdGhlIGNvbXBpbGVy LgorK3dsPSRsdF9sdF9wcm9nX2NvbXBpbGVyX3dsCisrCisrIyBBZGRpdGlvbmFsIGNvbXBpbGVy IGZsYWdzIGZvciBidWlsZGluZyBsaWJyYXJ5IG9iamVjdHMuCisrcGljX2ZsYWc9JGx0X2x0X3By b2dfY29tcGlsZXJfcGljCisrCisrIyBDb21waWxlciBmbGFnIHRvIHByZXZlbnQgZHluYW1pYyBs aW5raW5nLgorK2xpbmtfc3RhdGljX2ZsYWc9JGx0X2x0X3Byb2dfY29tcGlsZXJfc3RhdGljCisr CisrIyBEb2VzIGNvbXBpbGVyIHNpbXVsdGFuZW91c2x5IHN1cHBvcnQgLWMgYW5kIC1vIG9wdGlv bnM/CisrY29tcGlsZXJfY19vPSRsdF9sdF9jdl9wcm9nX2NvbXBpbGVyX2NfbworKworKyMgV2hl dGhlciBvciBub3QgdG8gYWRkIC1sYyBmb3IgYnVpbGRpbmcgc2hhcmVkIGxpYnJhcmllcy4KKyti dWlsZF9saWJ0b29sX25lZWRfbGM9JGFyY2hpdmVfY21kc19uZWVkX2xjCisrCisrIyBXaGV0aGVy IG9yIG5vdCB0byBkaXNhbGxvdyBzaGFyZWQgbGlicyB3aGVuIHJ1bnRpbWUgbGlicyBhcmUgc3Rh dGljLgorK2FsbG93X2xpYnRvb2xfbGlic193aXRoX3N0YXRpY19ydW50aW1lcz0kZW5hYmxlX3No YXJlZF93aXRoX3N0YXRpY19ydW50aW1lcworKworKyMgQ29tcGlsZXIgZmxhZyB0byBhbGxvdyBy ZWZsZXhpdmUgZGxvcGVucy4KKytleHBvcnRfZHluYW1pY19mbGFnX3NwZWM9JGx0X2V4cG9ydF9k eW5hbWljX2ZsYWdfc3BlYworKworKyMgQ29tcGlsZXIgZmxhZyB0byBnZW5lcmF0ZSBzaGFyZWQg b2JqZWN0cyBkaXJlY3RseSBmcm9tIGFyY2hpdmVzLgorK3dob2xlX2FyY2hpdmVfZmxhZ19zcGVj PSRsdF93aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYworKworKyMgV2hldGhlciB0aGUgY29tcGlsZXIg Y29wZXMgd2l0aCBwYXNzaW5nIG5vIG9iamVjdHMgZGlyZWN0bHkuCisrY29tcGlsZXJfbmVlZHNf b2JqZWN0PSRsdF9jb21waWxlcl9uZWVkc19vYmplY3QKKysKKysjIENyZWF0ZSBhbiBvbGQtc3R5 bGUgYXJjaGl2ZSBmcm9tIGEgc2hhcmVkIGFyY2hpdmUuCisrb2xkX2FyY2hpdmVfZnJvbV9uZXdf Y21kcz0kbHRfb2xkX2FyY2hpdmVfZnJvbV9uZXdfY21kcworKworKyMgQ3JlYXRlIGEgdGVtcG9y YXJ5IG9sZC1zdHlsZSBhcmNoaXZlIHRvIGxpbmsgaW5zdGVhZCBvZiBhIHNoYXJlZCBhcmNoaXZl LgorK29sZF9hcmNoaXZlX2Zyb21fZXhwc3ltc19jbWRzPSRsdF9vbGRfYXJjaGl2ZV9mcm9tX2V4 cHN5bXNfY21kcworKworKyMgQ29tbWFuZHMgdXNlZCB0byBidWlsZCBhIHNoYXJlZCBhcmNoaXZl LgorK2FyY2hpdmVfY21kcz0kbHRfYXJjaGl2ZV9jbWRzCisrYXJjaGl2ZV9leHBzeW1fY21kcz0k bHRfYXJjaGl2ZV9leHBzeW1fY21kcworKworKyMgQ29tbWFuZHMgdXNlZCB0byBidWlsZCBhIGxv YWRhYmxlIG1vZHVsZSBpZiBkaWZmZXJlbnQgZnJvbSBidWlsZGluZworKyMgYSBzaGFyZWQgYXJj aGl2ZS4KKyttb2R1bGVfY21kcz0kbHRfbW9kdWxlX2NtZHMKKyttb2R1bGVfZXhwc3ltX2NtZHM9 JGx0X21vZHVsZV9leHBzeW1fY21kcworKworKyMgV2hldGhlciB3ZSBhcmUgYnVpbGRpbmcgd2l0 aCBHTlUgbGQgb3Igbm90LgorK3dpdGhfZ251X2xkPSRsdF93aXRoX2dudV9sZAorKworKyMgRmxh ZyB0aGF0IGFsbG93cyBzaGFyZWQgbGlicmFyaWVzIHdpdGggdW5kZWZpbmVkIHN5bWJvbHMgdG8g YmUgYnVpbHQuCisrYWxsb3dfdW5kZWZpbmVkX2ZsYWc9JGx0X2FsbG93X3VuZGVmaW5lZF9mbGFn CisrCisrIyBGbGFnIHRoYXQgZW5mb3JjZXMgbm8gdW5kZWZpbmVkIHN5bWJvbHMuCisrbm9fdW5k ZWZpbmVkX2ZsYWc9JGx0X25vX3VuZGVmaW5lZF9mbGFnCisrCisrIyBGbGFnIHRvIGhhcmRjb2Rl IFwkbGliZGlyIGludG8gYSBiaW5hcnkgZHVyaW5nIGxpbmtpbmcuCisrIyBUaGlzIG11c3Qgd29y ayBldmVuIGlmIFwkbGliZGlyIGRvZXMgbm90IGV4aXN0CisraGFyZGNvZGVfbGliZGlyX2ZsYWdf c3BlYz0kbHRfaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYworKworKyMgSWYgbGQgaXMgdXNlZCB3 aGVuIGxpbmtpbmcsIGZsYWcgdG8gaGFyZGNvZGUgXCRsaWJkaXIgaW50byBhIGJpbmFyeQorKyMg ZHVyaW5nIGxpbmtpbmcuICBUaGlzIG11c3Qgd29yayBldmVuIGlmIFwkbGliZGlyIGRvZXMgbm90 IGV4aXN0LgorK2hhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfbGQ9JGx0X2hhcmRjb2RlX2xpYmRp cl9mbGFnX3NwZWNfbGQKKysKKysjIFdoZXRoZXIgd2UgbmVlZCBhIHNpbmdsZSAiLXJwYXRoIiBm bGFnIHdpdGggYSBzZXBhcmF0ZWQgYXJndW1lbnQuCisraGFyZGNvZGVfbGliZGlyX3NlcGFyYXRv cj0kbHRfaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvcgorKworKyMgU2V0IHRvICJ5ZXMiIGlmIHVz aW5nIERJUi9saWJOQU1FXCR7c2hhcmVkX2V4dH0gZHVyaW5nIGxpbmtpbmcgaGFyZGNvZGVzCisr IyBESVIgaW50byB0aGUgcmVzdWx0aW5nIGJpbmFyeS4KKytoYXJkY29kZV9kaXJlY3Q9JGhhcmRj b2RlX2RpcmVjdAorKworKyMgU2V0IHRvICJ5ZXMiIGlmIHVzaW5nIERJUi9saWJOQU1FXCR7c2hh cmVkX2V4dH0gZHVyaW5nIGxpbmtpbmcgaGFyZGNvZGVzCisrIyBESVIgaW50byB0aGUgcmVzdWx0 aW5nIGJpbmFyeSBhbmQgdGhlIHJlc3VsdGluZyBsaWJyYXJ5IGRlcGVuZGVuY3kgaXMKKysjICJh YnNvbHV0ZSIsaS5lIGltcG9zc2libGUgdG8gY2hhbmdlIGJ5IHNldHRpbmcgXCR7c2hsaWJwYXRo X3Zhcn0gaWYgdGhlCisrIyBsaWJyYXJ5IGlzIHJlbG9jYXRlZC4KKytoYXJkY29kZV9kaXJlY3Rf YWJzb2x1dGU9JGhhcmRjb2RlX2RpcmVjdF9hYnNvbHV0ZQorKworKyMgU2V0IHRvICJ5ZXMiIGlm IHVzaW5nIHRoZSAtTERJUiBmbGFnIGR1cmluZyBsaW5raW5nIGhhcmRjb2RlcyBESVIKKysjIGlu dG8gdGhlIHJlc3VsdGluZyBiaW5hcnkuCisraGFyZGNvZGVfbWludXNfTD0kaGFyZGNvZGVfbWlu dXNfTAorKworKyMgU2V0IHRvICJ5ZXMiIGlmIHVzaW5nIFNITElCUEFUSF9WQVI9RElSIGR1cmlu ZyBsaW5raW5nIGhhcmRjb2RlcyBESVIKKysjIGludG8gdGhlIHJlc3VsdGluZyBiaW5hcnkuCisr aGFyZGNvZGVfc2hsaWJwYXRoX3Zhcj0kaGFyZGNvZGVfc2hsaWJwYXRoX3ZhcgorKworKyMgU2V0 IHRvICJ5ZXMiIGlmIGJ1aWxkaW5nIGEgc2hhcmVkIGxpYnJhcnkgYXV0b21hdGljYWxseSBoYXJk Y29kZXMgRElSCisrIyBpbnRvIHRoZSBsaWJyYXJ5IGFuZCBhbGwgc3Vic2VxdWVudCBsaWJyYXJp ZXMgYW5kIGV4ZWN1dGFibGVzIGxpbmtlZAorKyMgYWdhaW5zdCBpdC4KKytoYXJkY29kZV9hdXRv bWF0aWM9JGhhcmRjb2RlX2F1dG9tYXRpYworKworKyMgU2V0IHRvIHllcyBpZiBsaW5rZXIgYWRk cyBydW50aW1lIHBhdGhzIG9mIGRlcGVuZGVudCBsaWJyYXJpZXMKKysjIHRvIHJ1bnRpbWUgcGF0 aCBsaXN0LgorK2luaGVyaXRfcnBhdGg9JGluaGVyaXRfcnBhdGgKKysKKysjIFdoZXRoZXIgbGli dG9vbCBtdXN0IGxpbmsgYSBwcm9ncmFtIGFnYWluc3QgYWxsIGl0cyBkZXBlbmRlbmN5IGxpYnJh cmllcy4KKytsaW5rX2FsbF9kZXBsaWJzPSRsaW5rX2FsbF9kZXBsaWJzCisrCisrIyBGaXggdGhl IHNoZWxsIHZhcmlhYmxlIFwkc3JjZmlsZSBmb3IgdGhlIGNvbXBpbGVyLgorK2ZpeF9zcmNmaWxl X3BhdGg9JGx0X2ZpeF9zcmNmaWxlX3BhdGgKKysKKysjIFNldCB0byAieWVzIiBpZiBleHBvcnRl ZCBzeW1ib2xzIGFyZSByZXF1aXJlZC4KKythbHdheXNfZXhwb3J0X3N5bWJvbHM9JGFsd2F5c19l eHBvcnRfc3ltYm9scworKworKyMgVGhlIGNvbW1hbmRzIHRvIGxpc3QgZXhwb3J0ZWQgc3ltYm9s cy4KKytleHBvcnRfc3ltYm9sc19jbWRzPSRsdF9leHBvcnRfc3ltYm9sc19jbWRzCisrCisrIyBT eW1ib2xzIHRoYXQgc2hvdWxkIG5vdCBiZSBsaXN0ZWQgaW4gdGhlIHByZWxvYWRlZCBzeW1ib2xz LgorK2V4Y2x1ZGVfZXhwc3ltcz0kbHRfZXhjbHVkZV9leHBzeW1zCisrCisrIyBTeW1ib2xzIHRo YXQgbXVzdCBhbHdheXMgYmUgZXhwb3J0ZWQuCisraW5jbHVkZV9leHBzeW1zPSRsdF9pbmNsdWRl X2V4cHN5bXMKKysKKysjIENvbW1hbmRzIG5lY2Vzc2FyeSBmb3IgbGlua2luZyBwcm9ncmFtcyAo YWdhaW5zdCBsaWJyYXJpZXMpIHdpdGggdGVtcGxhdGVzLgorK3ByZWxpbmtfY21kcz0kbHRfcHJl bGlua19jbWRzCisrCisrIyBTcGVjaWZ5IGZpbGVuYW1lIGNvbnRhaW5pbmcgaW5wdXQgZmlsZXMu CisrZmlsZV9saXN0X3NwZWM9JGx0X2ZpbGVfbGlzdF9zcGVjCisrCisrIyBIb3cgdG8gaGFyZGNv ZGUgYSBzaGFyZWQgbGlicmFyeSBwYXRoIGludG8gYW4gZXhlY3V0YWJsZS4KKytoYXJkY29kZV9h Y3Rpb249JGhhcmRjb2RlX2FjdGlvbgorKworKyMgVGhlIGRpcmVjdG9yaWVzIHNlYXJjaGVkIGJ5 IHRoaXMgY29tcGlsZXIgd2hlbiBjcmVhdGluZyBhIHNoYXJlZCBsaWJyYXJ5LgorK2NvbXBpbGVy X2xpYl9zZWFyY2hfZGlycz0kbHRfY29tcGlsZXJfbGliX3NlYXJjaF9kaXJzCisrCisrIyBEZXBl bmRlbmNpZXMgdG8gcGxhY2UgYmVmb3JlIGFuZCBhZnRlciB0aGUgb2JqZWN0cyBiZWluZyBsaW5r ZWQgdG8KKysjIGNyZWF0ZSBhIHNoYXJlZCBsaWJyYXJ5LgorK3ByZWRlcF9vYmplY3RzPSRsdF9w cmVkZXBfb2JqZWN0cworK3Bvc3RkZXBfb2JqZWN0cz0kbHRfcG9zdGRlcF9vYmplY3RzCisrcHJl ZGVwcz0kbHRfcHJlZGVwcworK3Bvc3RkZXBzPSRsdF9wb3N0ZGVwcworKworKyMgVGhlIGxpYnJh cnkgc2VhcmNoIHBhdGggdXNlZCBpbnRlcm5hbGx5IGJ5IHRoZSBjb21waWxlciB3aGVuIGxpbmtp bmcKKysjIGEgc2hhcmVkIGxpYnJhcnkuCisrY29tcGlsZXJfbGliX3NlYXJjaF9wYXRoPSRsdF9j b21waWxlcl9saWJfc2VhcmNoX3BhdGgKKysKKysjICMjIyBFTkQgTElCVE9PTCBDT05GSUcKKysK KytfTFRfRU9GCisrCisrICBjYXNlICRob3N0X29zIGluCisrICBhaXgzKikKKysgICAgY2F0IDw8 XF9MVF9FT0YgPj4gIiRjZmdmaWxlIgorKyMgQUlYIHNvbWV0aW1lcyBoYXMgcHJvYmxlbXMgd2l0 aCB0aGUgR0NDIGNvbGxlY3QyIHByb2dyYW0uICBGb3Igc29tZQorKyMgcmVhc29uLCBpZiB3ZSBz ZXQgdGhlIENPTExFQ1RfTkFNRVMgZW52aXJvbm1lbnQgdmFyaWFibGUsIHRoZSBwcm9ibGVtcwor KyMgdmFuaXNoIGluIGEgcHVmZiBvZiBzbW9rZS4KKytpZiB0ZXN0ICJYJHtDT0xMRUNUX05BTUVT K3NldH0iICE9IFhzZXQ7IHRoZW4KKysgIENPTExFQ1RfTkFNRVM9CisrICBleHBvcnQgQ09MTEVD VF9OQU1FUworK2ZpCisrX0xUX0VPRgorKyAgICA7OworKyAgZXNhYworKworKworK2x0bWFpbj0i JGFjX2F1eF9kaXIvbHRtYWluLnNoIgorKworKworKyAgIyBXZSB1c2Ugc2VkIGluc3RlYWQgb2Yg Y2F0IGJlY2F1c2UgYmFzaCBvbiBESkdQUCBnZXRzIGNvbmZ1c2VkIGlmCisrICAjIGlmIGZpbmRz IG1peGVkIENSL0xGIGFuZCBMRi1vbmx5IGxpbmVzLiAgU2luY2Ugc2VkIG9wZXJhdGVzIGluCisr ICAjIHRleHQgbW9kZSwgaXQgcHJvcGVybHkgY29udmVydHMgbGluZXMgdG8gQ1IvTEYuICBUaGlz IGJhc2ggcHJvYmxlbQorKyAgIyBpcyByZXBvcnRlZGx5IGZpeGVkLCBidXQgd2h5IG5vdCBydW4g b24gb2xkIHZlcnNpb25zIHRvbz8KKysgIHNlZCAnL14jIEdlbmVyYXRlZCBzaGVsbCBmdW5jdGlv bnMgaW5zZXJ0ZWQgaGVyZS9xJyAiJGx0bWFpbiIgPj4gIiRjZmdmaWxlIiBcCisrICAgIHx8IChy bSAtZiAiJGNmZ2ZpbGUiOyBleGl0IDEpCisrCisrICBjYXNlICR4c2lfc2hlbGwgaW4KKysgIHll cykKKysgICAgY2F0IDw8IFxfTFRfRU9GID4+ICIkY2ZnZmlsZSIKKysKKysjIGZ1bmNfZGlybmFt ZSBmaWxlIGFwcGVuZCBub25kaXJfcmVwbGFjZW1lbnQKKysjIENvbXB1dGUgdGhlIGRpcm5hbWUg b2YgRklMRS4gIElmIG5vbmVtcHR5LCBhZGQgQVBQRU5EIHRvIHRoZSByZXN1bHQsCisrIyBvdGhl cndpc2Ugc2V0IHJlc3VsdCB0byBOT05ESVJfUkVQTEFDRU1FTlQuCisrZnVuY19kaXJuYW1lICgp CisreworKyAgY2FzZSAkezF9IGluCisrICAgICovKikgZnVuY19kaXJuYW1lX3Jlc3VsdD0iJHsx JS8qfSR7Mn0iIDs7CisrICAgICogICkgZnVuY19kaXJuYW1lX3Jlc3VsdD0iJHszfSIgOzsKKysg IGVzYWMKKyt9CisrCisrIyBmdW5jX2Jhc2VuYW1lIGZpbGUKKytmdW5jX2Jhc2VuYW1lICgpCisr eworKyAgZnVuY19iYXNlbmFtZV9yZXN1bHQ9IiR7MSMjKi99IgorK30KKysKKysjIGZ1bmNfZGly bmFtZV9hbmRfYmFzZW5hbWUgZmlsZSBhcHBlbmQgbm9uZGlyX3JlcGxhY2VtZW50CisrIyBwZXJm b3JtIGZ1bmNfYmFzZW5hbWUgYW5kIGZ1bmNfZGlybmFtZSBpbiBhIHNpbmdsZSBmdW5jdGlvbgor KyMgY2FsbDoKKysjICAgZGlybmFtZTogIENvbXB1dGUgdGhlIGRpcm5hbWUgb2YgRklMRS4gIElm IG5vbmVtcHR5LAorKyMgICAgICAgICAgICAgYWRkIEFQUEVORCB0byB0aGUgcmVzdWx0LCBvdGhl cndpc2Ugc2V0IHJlc3VsdAorKyMgICAgICAgICAgICAgdG8gTk9ORElSX1JFUExBQ0VNRU5ULgor KyMgICAgICAgICAgICAgdmFsdWUgcmV0dXJuZWQgaW4gIiRmdW5jX2Rpcm5hbWVfcmVzdWx0Igor KyMgICBiYXNlbmFtZTogQ29tcHV0ZSBmaWxlbmFtZSBvZiBGSUxFLgorKyMgICAgICAgICAgICAg dmFsdWUgcmV0dW5lZCBpbiAiJGZ1bmNfYmFzZW5hbWVfcmVzdWx0IgorKyMgSW1wbGVtZW50YXRp b24gbXVzdCBiZSBrZXB0IHN5bmNocm9uaXplZCB3aXRoIGZ1bmNfZGlybmFtZQorKyMgYW5kIGZ1 bmNfYmFzZW5hbWUuIEZvciBlZmZpY2llbmN5LCB3ZSBkbyBub3QgZGVsZWdhdGUgdG8KKysjIHRo b3NlIGZ1bmN0aW9ucyBidXQgaW5zdGVhZCBkdXBsaWNhdGUgdGhlIGZ1bmN0aW9uYWxpdHkgaGVy ZS4KKytmdW5jX2Rpcm5hbWVfYW5kX2Jhc2VuYW1lICgpCisreworKyAgY2FzZSAkezF9IGluCisr ICAgICovKikgZnVuY19kaXJuYW1lX3Jlc3VsdD0iJHsxJS8qfSR7Mn0iIDs7CisrICAgICogICkg ZnVuY19kaXJuYW1lX3Jlc3VsdD0iJHszfSIgOzsKKysgIGVzYWMKKysgIGZ1bmNfYmFzZW5hbWVf cmVzdWx0PSIkezEjIyovfSIKKyt9CisrCisrIyBmdW5jX3N0cmlwbmFtZSBwcmVmaXggc3VmZml4 IG5hbWUKKysjIHN0cmlwIFBSRUZJWCBhbmQgU1VGRklYIG9mZiBvZiBOQU1FLgorKyMgUFJFRklY IGFuZCBTVUZGSVggbXVzdCBub3QgY29udGFpbiBnbG9iYmluZyBvciByZWdleCBzcGVjaWFsCisr IyBjaGFyYWN0ZXJzLCBoYXNoZXMsIHBlcmNlbnQgc2lnbnMsIGJ1dCBTVUZGSVggbWF5IGNvbnRh aW4gYSBsZWFkaW5nCisrIyBkb3QgKGluIHdoaWNoIGNhc2UgdGhhdCBtYXRjaGVzIG9ubHkgYSBk b3QpLgorK2Z1bmNfc3RyaXBuYW1lICgpCisreworKyAgIyBwZGtzaCA1LjIuMTQgZG9lcyBub3Qg ZG8gJHtYJSRZfSBjb3JyZWN0bHkgaWYgYm90aCBYIGFuZCBZIGFyZQorKyAgIyBwb3NpdGlvbmFs IHBhcmFtZXRlcnMsIHNvIGFzc2lnbiBvbmUgdG8gb3JkaW5hcnkgcGFyYW1ldGVyIGZpcnN0Lgor KyAgZnVuY19zdHJpcG5hbWVfcmVzdWx0PSR7M30KKysgIGZ1bmNfc3RyaXBuYW1lX3Jlc3VsdD0k e2Z1bmNfc3RyaXBuYW1lX3Jlc3VsdCMiJHsxfSJ9CisrICBmdW5jX3N0cmlwbmFtZV9yZXN1bHQ9 JHtmdW5jX3N0cmlwbmFtZV9yZXN1bHQlIiR7Mn0ifQorK30KKysKKysjIGZ1bmNfb3B0X3NwbGl0 CisrZnVuY19vcHRfc3BsaXQgKCkKKyt7CisrICBmdW5jX29wdF9zcGxpdF9vcHQ9JHsxJSU9Kn0K KysgIGZ1bmNfb3B0X3NwbGl0X2FyZz0kezEjKj19CisrfQorKworKyMgZnVuY19sbzJvIG9iamVj dAorK2Z1bmNfbG8ybyAoKQorK3sKKysgIGNhc2UgJHsxfSBpbgorKyAgICAqLmxvKSBmdW5jX2xv Mm9fcmVzdWx0PSR7MSUubG99LiR7b2JqZXh0fSA7OworKyAgICAqKSAgICBmdW5jX2xvMm9fcmVz dWx0PSR7MX0gOzsKKysgIGVzYWMKKyt9CisrCisrIyBmdW5jX3hmb3JtIGxpYm9iai1vci1zb3Vy Y2UKKytmdW5jX3hmb3JtICgpCisreworKyAgZnVuY194Zm9ybV9yZXN1bHQ9JHsxJS4qfS5sbwor K30KKysKKysjIGZ1bmNfYXJpdGggYXJpdGhtZXRpYy10ZXJtLi4uCisrZnVuY19hcml0aCAoKQor K3sKKysgIGZ1bmNfYXJpdGhfcmVzdWx0PSQoKCAkKiApKQorK30KKysKKysjIGZ1bmNfbGVuIHN0 cmluZworKyMgU1RSSU5HIG1heSBub3Qgc3RhcnQgd2l0aCBhIGh5cGhlbi4KKytmdW5jX2xlbiAo KQorK3sKKysgIGZ1bmNfbGVuX3Jlc3VsdD0keyMxfQorK30KKysKKytfTFRfRU9GCisrICAgIDs7 CisrICAqKSAjIEJvdXJuZSBjb21wYXRpYmxlIGZ1bmN0aW9ucy4KKysgICAgY2F0IDw8IFxfTFRf RU9GID4+ICIkY2ZnZmlsZSIKKysKKysjIGZ1bmNfZGlybmFtZSBmaWxlIGFwcGVuZCBub25kaXJf cmVwbGFjZW1lbnQKKysjIENvbXB1dGUgdGhlIGRpcm5hbWUgb2YgRklMRS4gIElmIG5vbmVtcHR5 LCBhZGQgQVBQRU5EIHRvIHRoZSByZXN1bHQsCisrIyBvdGhlcndpc2Ugc2V0IHJlc3VsdCB0byBO T05ESVJfUkVQTEFDRU1FTlQuCisrZnVuY19kaXJuYW1lICgpCisreworKyAgIyBFeHRyYWN0IHN1 YmRpcmVjdG9yeSBmcm9tIHRoZSBhcmd1bWVudC4KKysgIGZ1bmNfZGlybmFtZV9yZXN1bHQ9YCRF Q0hPICJYJHsxfSIgfCAkWHNlZCAtZSAiJGRpcm5hbWUiYAorKyAgaWYgdGVzdCAiWCRmdW5jX2Rp cm5hbWVfcmVzdWx0IiA9ICJYJHsxfSI7IHRoZW4KKysgICAgZnVuY19kaXJuYW1lX3Jlc3VsdD0i JHszfSIKKysgIGVsc2UKKysgICAgZnVuY19kaXJuYW1lX3Jlc3VsdD0iJGZ1bmNfZGlybmFtZV9y ZXN1bHQkezJ9IgorKyAgZmkKKyt9CisrCisrIyBmdW5jX2Jhc2VuYW1lIGZpbGUKKytmdW5jX2Jh c2VuYW1lICgpCisreworKyAgZnVuY19iYXNlbmFtZV9yZXN1bHQ9YCRFQ0hPICJYJHsxfSIgfCAk WHNlZCAtZSAiJGJhc2VuYW1lImAKKyt9CisrCisrCisrIyBmdW5jX3N0cmlwbmFtZSBwcmVmaXgg c3VmZml4IG5hbWUKKysjIHN0cmlwIFBSRUZJWCBhbmQgU1VGRklYIG9mZiBvZiBOQU1FLgorKyMg UFJFRklYIGFuZCBTVUZGSVggbXVzdCBub3QgY29udGFpbiBnbG9iYmluZyBvciByZWdleCBzcGVj aWFsCisrIyBjaGFyYWN0ZXJzLCBoYXNoZXMsIHBlcmNlbnQgc2lnbnMsIGJ1dCBTVUZGSVggbWF5 IGNvbnRhaW4gYSBsZWFkaW5nCisrIyBkb3QgKGluIHdoaWNoIGNhc2UgdGhhdCBtYXRjaGVzIG9u bHkgYSBkb3QpLgorKyMgZnVuY19zdHJpcF9zdWZmaXggcHJlZml4IG5hbWUKKytmdW5jX3N0cmlw bmFtZSAoKQorK3sKKysgIGNhc2UgJHsyfSBpbgorKyAgICAuKikgZnVuY19zdHJpcG5hbWVfcmVz dWx0PWAkRUNITyAiWCR7M30iIFwKKysgICAgICAgICAgIHwgJFhzZWQgLWUgInMlXiR7MX0lJSIg LWUgInMlXFxcXCR7Mn1cJCUlImA7OworKyAgICAqKSAgZnVuY19zdHJpcG5hbWVfcmVzdWx0PWAk RUNITyAiWCR7M30iIFwKKysgICAgICAgICAgIHwgJFhzZWQgLWUgInMlXiR7MX0lJSIgLWUgInMl JHsyfVwkJSUiYDs7CisrICBlc2FjCisrfQorKworKyMgc2VkIHNjcmlwdHM6CisrbXlfc2VkX2xv bmdfb3B0PScxcy9eXCgtW149XSpcKT0uKi9cMS87cScKKytteV9zZWRfbG9uZ19hcmc9JzFzL14t W149XSo9Ly8nCisrCisrIyBmdW5jX29wdF9zcGxpdAorK2Z1bmNfb3B0X3NwbGl0ICgpCisrewor KyAgZnVuY19vcHRfc3BsaXRfb3B0PWAkRUNITyAiWCR7MX0iIHwgJFhzZWQgLWUgIiRteV9zZWRf bG9uZ19vcHQiYAorKyAgZnVuY19vcHRfc3BsaXRfYXJnPWAkRUNITyAiWCR7MX0iIHwgJFhzZWQg LWUgIiRteV9zZWRfbG9uZ19hcmciYAorK30KKysKKysjIGZ1bmNfbG8ybyBvYmplY3QKKytmdW5j X2xvMm8gKCkKKyt7CisrICBmdW5jX2xvMm9fcmVzdWx0PWAkRUNITyAiWCR7MX0iIHwgJFhzZWQg LWUgIiRsbzJvImAKKyt9CisrCisrIyBmdW5jX3hmb3JtIGxpYm9iai1vci1zb3VyY2UKKytmdW5j X3hmb3JtICgpCisreworKyAgZnVuY194Zm9ybV9yZXN1bHQ9YCRFQ0hPICJYJHsxfSIgfCAkWHNl ZCAtZSAncy9cLlteLl0qJC8ubG8vJ2AKKyt9CisrCisrIyBmdW5jX2FyaXRoIGFyaXRobWV0aWMt dGVybS4uLgorK2Z1bmNfYXJpdGggKCkKKyt7CisrICBmdW5jX2FyaXRoX3Jlc3VsdD1gZXhwciAi JEAiYAorK30KKysKKysjIGZ1bmNfbGVuIHN0cmluZworKyMgU1RSSU5HIG1heSBub3Qgc3RhcnQg d2l0aCBhIGh5cGhlbi4KKytmdW5jX2xlbiAoKQorK3sKKysgIGZ1bmNfbGVuX3Jlc3VsdD1gZXhw ciAiJDEiIDogIi4qIiAyPi9kZXYvbnVsbCB8fCBlY2hvICRtYXhfY21kX2xlbmAKKyt9CisrCisr X0xUX0VPRgorK2VzYWMKKysKKytjYXNlICRsdF9zaGVsbF9hcHBlbmQgaW4KKysgIHllcykKKysg ICAgY2F0IDw8IFxfTFRfRU9GID4+ICIkY2ZnZmlsZSIKKysKKysjIGZ1bmNfYXBwZW5kIHZhciB2 YWx1ZQorKyMgQXBwZW5kIFZBTFVFIHRvIHRoZSBlbmQgb2Ygc2hlbGwgdmFyaWFibGUgVkFSLgor K2Z1bmNfYXBwZW5kICgpCisreworKyAgZXZhbCAiJDErPVwkMiIKKyt9CisrX0xUX0VPRgorKyAg ICA7OworKyAgKikKKysgICAgY2F0IDw8IFxfTFRfRU9GID4+ICIkY2ZnZmlsZSIKKysKKysjIGZ1 bmNfYXBwZW5kIHZhciB2YWx1ZQorKyMgQXBwZW5kIFZBTFVFIHRvIHRoZSBlbmQgb2Ygc2hlbGwg dmFyaWFibGUgVkFSLgorK2Z1bmNfYXBwZW5kICgpCisreworKyAgZXZhbCAiJDE9XCQkMVwkMiIK Kyt9CisrCisrX0xUX0VPRgorKyAgICA7OworKyAgZXNhYworKworKworKyAgc2VkIC1uICcvXiMg R2VuZXJhdGVkIHNoZWxsIGZ1bmN0aW9ucyBpbnNlcnRlZCBoZXJlLywkcCcgIiRsdG1haW4iID4+ ICIkY2ZnZmlsZSIgXAorKyAgICB8fCAocm0gLWYgIiRjZmdmaWxlIjsgZXhpdCAxKQorKworKyAg bXYgLWYgIiRjZmdmaWxlIiAiJG9maWxlIiB8fAorKyAgICAocm0gLWYgIiRvZmlsZSIgJiYgY3Ag IiRjZmdmaWxlIiAiJG9maWxlIiAmJiBybSAtZiAiJGNmZ2ZpbGUiKQorKyAgY2htb2QgK3ggIiRv ZmlsZSIKKysKKysKKysgICAgY2F0IDw8X0xUX0VPRiA+PiAiJG9maWxlIgorKworKyMgIyMjIEJF R0lOIExJQlRPT0wgVEFHIENPTkZJRzogQ1hYCisrCisrIyBUaGUgbGlua2VyIHVzZWQgdG8gYnVp bGQgbGlicmFyaWVzLgorK0xEPSRsdF9MRF9DWFgKKysKKysjIENvbW1hbmRzIHVzZWQgdG8gYnVp bGQgYW4gb2xkLXN0eWxlIGFyY2hpdmUuCisrb2xkX2FyY2hpdmVfY21kcz0kbHRfb2xkX2FyY2hp dmVfY21kc19DWFgKKysKKysjIEEgbGFuZ3VhZ2Ugc3BlY2lmaWMgY29tcGlsZXIuCisrQ0M9JGx0 X2NvbXBpbGVyX0NYWAorKworKyMgSXMgdGhlIGNvbXBpbGVyIHRoZSBHTlUgY29tcGlsZXI/Cisr d2l0aF9nY2M9JEdDQ19DWFgKKysKKysjIENvbXBpbGVyIGZsYWcgdG8gdHVybiBvZmYgYnVpbHRp biBmdW5jdGlvbnMuCisrbm9fYnVpbHRpbl9mbGFnPSRsdF9sdF9wcm9nX2NvbXBpbGVyX25vX2J1 aWx0aW5fZmxhZ19DWFgKKysKKysjIEhvdyB0byBwYXNzIGEgbGlua2VyIGZsYWcgdGhyb3VnaCB0 aGUgY29tcGlsZXIuCisrd2w9JGx0X2x0X3Byb2dfY29tcGlsZXJfd2xfQ1hYCisrCisrIyBBZGRp dGlvbmFsIGNvbXBpbGVyIGZsYWdzIGZvciBidWlsZGluZyBsaWJyYXJ5IG9iamVjdHMuCisrcGlj X2ZsYWc9JGx0X2x0X3Byb2dfY29tcGlsZXJfcGljX0NYWAorKworKyMgQ29tcGlsZXIgZmxhZyB0 byBwcmV2ZW50IGR5bmFtaWMgbGlua2luZy4KKytsaW5rX3N0YXRpY19mbGFnPSRsdF9sdF9wcm9n X2NvbXBpbGVyX3N0YXRpY19DWFgKKysKKysjIERvZXMgY29tcGlsZXIgc2ltdWx0YW5lb3VzbHkg c3VwcG9ydCAtYyBhbmQgLW8gb3B0aW9ucz8KKytjb21waWxlcl9jX289JGx0X2x0X2N2X3Byb2df Y29tcGlsZXJfY19vX0NYWAorKworKyMgV2hldGhlciBvciBub3QgdG8gYWRkIC1sYyBmb3IgYnVp bGRpbmcgc2hhcmVkIGxpYnJhcmllcy4KKytidWlsZF9saWJ0b29sX25lZWRfbGM9JGFyY2hpdmVf Y21kc19uZWVkX2xjX0NYWAorKworKyMgV2hldGhlciBvciBub3QgdG8gZGlzYWxsb3cgc2hhcmVk IGxpYnMgd2hlbiBydW50aW1lIGxpYnMgYXJlIHN0YXRpYy4KKythbGxvd19saWJ0b29sX2xpYnNf d2l0aF9zdGF0aWNfcnVudGltZXM9JGVuYWJsZV9zaGFyZWRfd2l0aF9zdGF0aWNfcnVudGltZXNf Q1hYCisrCisrIyBDb21waWxlciBmbGFnIHRvIGFsbG93IHJlZmxleGl2ZSBkbG9wZW5zLgorK2V4 cG9ydF9keW5hbWljX2ZsYWdfc3BlYz0kbHRfZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjX0NYWAor KworKyMgQ29tcGlsZXIgZmxhZyB0byBnZW5lcmF0ZSBzaGFyZWQgb2JqZWN0cyBkaXJlY3RseSBm cm9tIGFyY2hpdmVzLgorK3dob2xlX2FyY2hpdmVfZmxhZ19zcGVjPSRsdF93aG9sZV9hcmNoaXZl X2ZsYWdfc3BlY19DWFgKKysKKysjIFdoZXRoZXIgdGhlIGNvbXBpbGVyIGNvcGVzIHdpdGggcGFz c2luZyBubyBvYmplY3RzIGRpcmVjdGx5LgorK2NvbXBpbGVyX25lZWRzX29iamVjdD0kbHRfY29t cGlsZXJfbmVlZHNfb2JqZWN0X0NYWAorKworKyMgQ3JlYXRlIGFuIG9sZC1zdHlsZSBhcmNoaXZl IGZyb20gYSBzaGFyZWQgYXJjaGl2ZS4KKytvbGRfYXJjaGl2ZV9mcm9tX25ld19jbWRzPSRsdF9v bGRfYXJjaGl2ZV9mcm9tX25ld19jbWRzX0NYWAorKworKyMgQ3JlYXRlIGEgdGVtcG9yYXJ5IG9s ZC1zdHlsZSBhcmNoaXZlIHRvIGxpbmsgaW5zdGVhZCBvZiBhIHNoYXJlZCBhcmNoaXZlLgorK29s ZF9hcmNoaXZlX2Zyb21fZXhwc3ltc19jbWRzPSRsdF9vbGRfYXJjaGl2ZV9mcm9tX2V4cHN5bXNf Y21kc19DWFgKKysKKysjIENvbW1hbmRzIHVzZWQgdG8gYnVpbGQgYSBzaGFyZWQgYXJjaGl2ZS4K KythcmNoaXZlX2NtZHM9JGx0X2FyY2hpdmVfY21kc19DWFgKKythcmNoaXZlX2V4cHN5bV9jbWRz PSRsdF9hcmNoaXZlX2V4cHN5bV9jbWRzX0NYWAorKworKyMgQ29tbWFuZHMgdXNlZCB0byBidWls ZCBhIGxvYWRhYmxlIG1vZHVsZSBpZiBkaWZmZXJlbnQgZnJvbSBidWlsZGluZworKyMgYSBzaGFy ZWQgYXJjaGl2ZS4KKyttb2R1bGVfY21kcz0kbHRfbW9kdWxlX2NtZHNfQ1hYCisrbW9kdWxlX2V4 cHN5bV9jbWRzPSRsdF9tb2R1bGVfZXhwc3ltX2NtZHNfQ1hYCisrCisrIyBXaGV0aGVyIHdlIGFy ZSBidWlsZGluZyB3aXRoIEdOVSBsZCBvciBub3QuCisrd2l0aF9nbnVfbGQ9JGx0X3dpdGhfZ251 X2xkX0NYWAorKworKyMgRmxhZyB0aGF0IGFsbG93cyBzaGFyZWQgbGlicmFyaWVzIHdpdGggdW5k ZWZpbmVkIHN5bWJvbHMgdG8gYmUgYnVpbHQuCisrYWxsb3dfdW5kZWZpbmVkX2ZsYWc9JGx0X2Fs bG93X3VuZGVmaW5lZF9mbGFnX0NYWAorKworKyMgRmxhZyB0aGF0IGVuZm9yY2VzIG5vIHVuZGVm aW5lZCBzeW1ib2xzLgorK25vX3VuZGVmaW5lZF9mbGFnPSRsdF9ub191bmRlZmluZWRfZmxhZ19D WFgKKysKKysjIEZsYWcgdG8gaGFyZGNvZGUgXCRsaWJkaXIgaW50byBhIGJpbmFyeSBkdXJpbmcg bGlua2luZy4KKysjIFRoaXMgbXVzdCB3b3JrIGV2ZW4gaWYgXCRsaWJkaXIgZG9lcyBub3QgZXhp c3QKKytoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjPSRsdF9oYXJkY29kZV9saWJkaXJfZmxhZ19z cGVjX0NYWAorKworKyMgSWYgbGQgaXMgdXNlZCB3aGVuIGxpbmtpbmcsIGZsYWcgdG8gaGFyZGNv ZGUgXCRsaWJkaXIgaW50byBhIGJpbmFyeQorKyMgZHVyaW5nIGxpbmtpbmcuICBUaGlzIG11c3Qg d29yayBldmVuIGlmIFwkbGliZGlyIGRvZXMgbm90IGV4aXN0LgorK2hhcmRjb2RlX2xpYmRpcl9m bGFnX3NwZWNfbGQ9JGx0X2hhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfbGRfQ1hYCisrCisrIyBX aGV0aGVyIHdlIG5lZWQgYSBzaW5nbGUgIi1ycGF0aCIgZmxhZyB3aXRoIGEgc2VwYXJhdGVkIGFy Z3VtZW50LgorK2hhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3I9JGx0X2hhcmRjb2RlX2xpYmRpcl9z ZXBhcmF0b3JfQ1hYCisrCisrIyBTZXQgdG8gInllcyIgaWYgdXNpbmcgRElSL2xpYk5BTUVcJHtz aGFyZWRfZXh0fSBkdXJpbmcgbGlua2luZyBoYXJkY29kZXMKKysjIERJUiBpbnRvIHRoZSByZXN1 bHRpbmcgYmluYXJ5LgorK2hhcmRjb2RlX2RpcmVjdD0kaGFyZGNvZGVfZGlyZWN0X0NYWAorKwor KyMgU2V0IHRvICJ5ZXMiIGlmIHVzaW5nIERJUi9saWJOQU1FXCR7c2hhcmVkX2V4dH0gZHVyaW5n IGxpbmtpbmcgaGFyZGNvZGVzCisrIyBESVIgaW50byB0aGUgcmVzdWx0aW5nIGJpbmFyeSBhbmQg dGhlIHJlc3VsdGluZyBsaWJyYXJ5IGRlcGVuZGVuY3kgaXMKKysjICJhYnNvbHV0ZSIsaS5lIGlt cG9zc2libGUgdG8gY2hhbmdlIGJ5IHNldHRpbmcgXCR7c2hsaWJwYXRoX3Zhcn0gaWYgdGhlCisr IyBsaWJyYXJ5IGlzIHJlbG9jYXRlZC4KKytoYXJkY29kZV9kaXJlY3RfYWJzb2x1dGU9JGhhcmRj b2RlX2RpcmVjdF9hYnNvbHV0ZV9DWFgKKysKKysjIFNldCB0byAieWVzIiBpZiB1c2luZyB0aGUg LUxESVIgZmxhZyBkdXJpbmcgbGlua2luZyBoYXJkY29kZXMgRElSCisrIyBpbnRvIHRoZSByZXN1 bHRpbmcgYmluYXJ5LgorK2hhcmRjb2RlX21pbnVzX0w9JGhhcmRjb2RlX21pbnVzX0xfQ1hYCisr CisrIyBTZXQgdG8gInllcyIgaWYgdXNpbmcgU0hMSUJQQVRIX1ZBUj1ESVIgZHVyaW5nIGxpbmtp bmcgaGFyZGNvZGVzIERJUgorKyMgaW50byB0aGUgcmVzdWx0aW5nIGJpbmFyeS4KKytoYXJkY29k ZV9zaGxpYnBhdGhfdmFyPSRoYXJkY29kZV9zaGxpYnBhdGhfdmFyX0NYWAorKworKyMgU2V0IHRv ICJ5ZXMiIGlmIGJ1aWxkaW5nIGEgc2hhcmVkIGxpYnJhcnkgYXV0b21hdGljYWxseSBoYXJkY29k ZXMgRElSCisrIyBpbnRvIHRoZSBsaWJyYXJ5IGFuZCBhbGwgc3Vic2VxdWVudCBsaWJyYXJpZXMg YW5kIGV4ZWN1dGFibGVzIGxpbmtlZAorKyMgYWdhaW5zdCBpdC4KKytoYXJkY29kZV9hdXRvbWF0 aWM9JGhhcmRjb2RlX2F1dG9tYXRpY19DWFgKKysKKysjIFNldCB0byB5ZXMgaWYgbGlua2VyIGFk ZHMgcnVudGltZSBwYXRocyBvZiBkZXBlbmRlbnQgbGlicmFyaWVzCisrIyB0byBydW50aW1lIHBh dGggbGlzdC4KKytpbmhlcml0X3JwYXRoPSRpbmhlcml0X3JwYXRoX0NYWAorKworKyMgV2hldGhl ciBsaWJ0b29sIG11c3QgbGluayBhIHByb2dyYW0gYWdhaW5zdCBhbGwgaXRzIGRlcGVuZGVuY3kg bGlicmFyaWVzLgorK2xpbmtfYWxsX2RlcGxpYnM9JGxpbmtfYWxsX2RlcGxpYnNfQ1hYCisrCisr IyBGaXggdGhlIHNoZWxsIHZhcmlhYmxlIFwkc3JjZmlsZSBmb3IgdGhlIGNvbXBpbGVyLgorK2Zp eF9zcmNmaWxlX3BhdGg9JGx0X2ZpeF9zcmNmaWxlX3BhdGhfQ1hYCisrCisrIyBTZXQgdG8gInll cyIgaWYgZXhwb3J0ZWQgc3ltYm9scyBhcmUgcmVxdWlyZWQuCisrYWx3YXlzX2V4cG9ydF9zeW1i b2xzPSRhbHdheXNfZXhwb3J0X3N5bWJvbHNfQ1hYCisrCisrIyBUaGUgY29tbWFuZHMgdG8gbGlz dCBleHBvcnRlZCBzeW1ib2xzLgorK2V4cG9ydF9zeW1ib2xzX2NtZHM9JGx0X2V4cG9ydF9zeW1i b2xzX2NtZHNfQ1hYCisrCisrIyBTeW1ib2xzIHRoYXQgc2hvdWxkIG5vdCBiZSBsaXN0ZWQgaW4g dGhlIHByZWxvYWRlZCBzeW1ib2xzLgorK2V4Y2x1ZGVfZXhwc3ltcz0kbHRfZXhjbHVkZV9leHBz eW1zX0NYWAorKworKyMgU3ltYm9scyB0aGF0IG11c3QgYWx3YXlzIGJlIGV4cG9ydGVkLgorK2lu Y2x1ZGVfZXhwc3ltcz0kbHRfaW5jbHVkZV9leHBzeW1zX0NYWAorKworKyMgQ29tbWFuZHMgbmVj ZXNzYXJ5IGZvciBsaW5raW5nIHByb2dyYW1zIChhZ2FpbnN0IGxpYnJhcmllcykgd2l0aCB0ZW1w bGF0ZXMuCisrcHJlbGlua19jbWRzPSRsdF9wcmVsaW5rX2NtZHNfQ1hYCisrCisrIyBTcGVjaWZ5 IGZpbGVuYW1lIGNvbnRhaW5pbmcgaW5wdXQgZmlsZXMuCisrZmlsZV9saXN0X3NwZWM9JGx0X2Zp bGVfbGlzdF9zcGVjX0NYWAorKworKyMgSG93IHRvIGhhcmRjb2RlIGEgc2hhcmVkIGxpYnJhcnkg cGF0aCBpbnRvIGFuIGV4ZWN1dGFibGUuCisraGFyZGNvZGVfYWN0aW9uPSRoYXJkY29kZV9hY3Rp b25fQ1hYCisrCisrIyBUaGUgZGlyZWN0b3JpZXMgc2VhcmNoZWQgYnkgdGhpcyBjb21waWxlciB3 aGVuIGNyZWF0aW5nIGEgc2hhcmVkIGxpYnJhcnkuCisrY29tcGlsZXJfbGliX3NlYXJjaF9kaXJz PSRsdF9jb21waWxlcl9saWJfc2VhcmNoX2RpcnNfQ1hYCisrCisrIyBEZXBlbmRlbmNpZXMgdG8g cGxhY2UgYmVmb3JlIGFuZCBhZnRlciB0aGUgb2JqZWN0cyBiZWluZyBsaW5rZWQgdG8KKysjIGNy ZWF0ZSBhIHNoYXJlZCBsaWJyYXJ5LgorK3ByZWRlcF9vYmplY3RzPSRsdF9wcmVkZXBfb2JqZWN0 c19DWFgKKytwb3N0ZGVwX29iamVjdHM9JGx0X3Bvc3RkZXBfb2JqZWN0c19DWFgKKytwcmVkZXBz PSRsdF9wcmVkZXBzX0NYWAorK3Bvc3RkZXBzPSRsdF9wb3N0ZGVwc19DWFgKKysKKysjIFRoZSBs aWJyYXJ5IHNlYXJjaCBwYXRoIHVzZWQgaW50ZXJuYWxseSBieSB0aGUgY29tcGlsZXIgd2hlbiBs aW5raW5nCisrIyBhIHNoYXJlZCBsaWJyYXJ5LgorK2NvbXBpbGVyX2xpYl9zZWFyY2hfcGF0aD0k bHRfY29tcGlsZXJfbGliX3NlYXJjaF9wYXRoX0NYWAorKworKyMgIyMjIEVORCBMSUJUT09MIFRB RyBDT05GSUc6IENYWAorK19MVF9FT0YKKysKKysgOzsKKysKKysgIGVzYWMKKytkb25lICMgZm9y IGFjX3RhZworKworKworK3sgKGV4aXQgMCk7IGV4aXQgMDsgfQorK19BQ0VPRgorK2NobW9kICt4 ICRDT05GSUdfU1RBVFVTCisrYWNfY2xlYW5fZmlsZXM9JGFjX2NsZWFuX2ZpbGVzX3NhdmUKKysK Kyt0ZXN0ICRhY193cml0ZV9mYWlsID0gMCB8fAorKyAgeyB7ICRhc19lY2hvICIkYXNfbWU6JExJ TkVOTzogZXJyb3I6IHdyaXRlIGZhaWx1cmUgY3JlYXRpbmcgJENPTkZJR19TVEFUVVMiID4mNQor KyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiB3cml0ZSBmYWlsdXJlIGNyZWF0aW5nICRDT05GSUdf U1RBVFVTIiA+JjI7fQorKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQorKworKworKyMgY29u ZmlndXJlIGlzIHdyaXRpbmcgdG8gY29uZmlnLmxvZywgYW5kIHRoZW4gY2FsbHMgY29uZmlnLnN0 YXR1cy4KKysjIGNvbmZpZy5zdGF0dXMgZG9lcyBpdHMgb3duIHJlZGlyZWN0aW9uLCBhcHBlbmRp bmcgdG8gY29uZmlnLmxvZy4KKysjIFVuZm9ydHVuYXRlbHksIG9uIERPUyB0aGlzIGZhaWxzLCBh cyBjb25maWcubG9nIGlzIHN0aWxsIGtlcHQgb3BlbgorKyMgYnkgY29uZmlndXJlLCBzbyBjb25m aWcuc3RhdHVzIHdvbid0IGJlIGFibGUgdG8gd3JpdGUgdG8gaXQ7IGl0cworKyMgb3V0cHV0IGlz IHNpbXBseSBkaXNjYXJkZWQuICBTbyB3ZSBleGVjIHRoZSBGRCB0byAvZGV2L251bGwsCisrIyBl ZmZlY3RpdmVseSBjbG9zaW5nIGNvbmZpZy5sb2csIHNvIGl0IGNhbiBiZSBwcm9wZXJseSAocmUp b3BlbmVkIGFuZAorKyMgYXBwZW5kZWQgdG8gYnkgY29uZmlnLnN0YXR1cy4gIFdoZW4gY29taW5n IGJhY2sgdG8gY29uZmlndXJlLCB3ZQorKyMgbmVlZCB0byBtYWtlIHRoZSBGRCBhdmFpbGFibGUg YWdhaW4uCisraWYgdGVzdCAiJG5vX2NyZWF0ZSIgIT0geWVzOyB0aGVuCisrICBhY19jc19zdWNj ZXNzPToKKysgIGFjX2NvbmZpZ19zdGF0dXNfYXJncz0KKysgIHRlc3QgIiRzaWxlbnQiID0geWVz ICYmCisrICAgIGFjX2NvbmZpZ19zdGF0dXNfYXJncz0iJGFjX2NvbmZpZ19zdGF0dXNfYXJncyAt LXF1aWV0IgorKyAgZXhlYyA1Pi9kZXYvbnVsbAorKyAgJFNIRUxMICRDT05GSUdfU1RBVFVTICRh Y19jb25maWdfc3RhdHVzX2FyZ3MgfHwgYWNfY3Nfc3VjY2Vzcz1mYWxzZQorKyAgZXhlYyA1Pj5j b25maWcubG9nCisrICAjIFVzZSB8fCwgbm90ICYmLCB0byBhdm9pZCBleGl0aW5nIGZyb20gdGhl IGlmIHdpdGggJD8gPSAxLCB3aGljaAorKyAgIyB3b3VsZCBtYWtlIGNvbmZpZ3VyZSBmYWlsIGlm IHRoaXMgaXMgdGhlIGxhc3QgaW5zdHJ1Y3Rpb24uCisrICAkYWNfY3Nfc3VjY2VzcyB8fCB7IChl eGl0IDEpOyBleGl0IDE7IH0KKytmaQorK2lmIHRlc3QgLW4gIiRhY191bnJlY29nbml6ZWRfb3B0 cyIgJiYgdGVzdCAiJGVuYWJsZV9vcHRpb25fY2hlY2tpbmciICE9IG5vOyB0aGVuCisrICB7ICRh c19lY2hvICIkYXNfbWU6JExJTkVOTzogV0FSTklORzogdW5yZWNvZ25pemVkIG9wdGlvbnM6ICRh Y191bnJlY29nbml6ZWRfb3B0cyIgPiY1CisrJGFzX2VjaG8gIiRhc19tZTogV0FSTklORzogdW5y ZWNvZ25pemVkIG9wdGlvbnM6ICRhY191bnJlY29nbml6ZWRfb3B0cyIgPiYyO30KKytmaQorKwor KworK2VjaG8gIgorKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKyRQQUNLQUdFLSRWRVJTSU9OIGxp YnJhcnkgY29uZmlndXJhdGlvbjoKKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKysKKytEaXJlY3Rv cmllczoKKysgIC0gcHJlZml4IC4uLi4uLi4uLi4uLi4uLiA6ICR7cHJlZml4fQorKyAgLSBleGVj X3ByZWZpeCAuLi4uLi4uLi4uIDogJHtleGVjX3ByZWZpeH0KKysgIC0gaW5jbHVkZWRpciAuLi4u Li4uLi4uLiA6ICR7aW5jbHVkZWRpcn0KKysgIC0gbGliZGlyIC4uLi4uLi4uLi4uLi4uLiA6ICR7 bGliZGlyfQorKyAgLSBkb2NkaXIgLi4uLi4uLi4uLi4uLi4uIDogJHtkb2NkaXJ9CisrICAtIG1h bmRpciAuLi4uLi4uLi4uLi4uLi4gOiAke21hbmRpcn0KKysgIC0gaW5mb2RpciAuLi4uLi4uLi4u Li4uLiA6ICR7aW5mb2Rpcn0KKysKKytTd2l0Y2hlczoKKysgIC0gZXhjZXB0aW9ucyAuLi4uLi4u Li4uLiA6ICR7ZW5hYmxlX2V4Y2VwdGlvbnN9CisrICAtIGluZm8tZG9jIC4uLi4uLi4uLi4uLi4g OiAke2VuYWJsZV9pbmZvX2RvY30KKysgIC0gaHRtbC1kb2MgLi4uLi4uLi4uLi4uLiA6ICR7ZW5h YmxlX2h0bWxfZG9jfQorKyAgLSBzaGFyZWQgLi4uLi4uLi4uLi4uLi4uIDogJHtlbmFibGVfc2hh cmVkfQorKyAgLSBzdGF0aWMgLi4uLi4uLi4uLi4uLi4uIDogJHtlbmFibGVfc3RhdGljfQorKwor K0RvY3VtZW50YXRpb24gdG9vbHM6CisrICAtIHRleGluZm8gLi4uLi4uLi4uLi4uLi4gOiAke3Rl eGluZm9fb2t9CisrICAtIGRveHlnZW4gLi4uLi4uLi4uLi4uLi4gOiAke2RveHlnZW5fb2t9Cisr ICAtIGxhdGV4IC4uLi4uLi4uLi4uLi4uLi4gOiAke2xhdGV4X29rfQorKyAgLSBkdmlwcyAuLi4u Li4uLi4uLi4uLi4uIDogJHtkdmlwc19va30KKysgIC0gZ2hvc3RzY3JpcHQgLi4uLi4uLi4uLiA6 ICR7Z3Nfb2t9CisrCisrVGVzdGluZyB0b29sczoKKysgIC0gZGlmZiAuLi4uLi4uLi4uLi4uLi4u LiA6ICR7ZGlmZl9va30KKysgIC0gc2VkIC4uLi4uLi4uLi4uLi4uLi4uLiA6ICR7c2VkX29rfQor KworK0NvbXBpbGVyL2xpbmtlciBmbGFncy9saWJzL2RlZnM6CisrICAtIENYWCAuLi4uLi4uLi4u Li4uLi4uLi4gOiAke0NYWH0KKysgIC0gQ1hYRkxBR1MgLi4uLi4uLi4uLi4uLiA6ICR7Q1hYRkxB R1N9CisrICAtIENQUEZMQUdTIC4uLi4uLi4uLi4uLi4gOiAke0NQUEZMQUdTfQorKyAgLSBMREZM QUdTIC4uLi4uLi4uLi4uLi4uIDogJHtMREZMQUdTfQorKyAgLSBMSUJTIC4uLi4uLi4uLi4uLi4u Li4uIDogJHtMSUJTfQorKworK0J1cnJpZWQgaGVhZGVyIGZpbGVzOgorKyAgLSBTT0NJX0hFQURF UlNfQlVSSUVEIC4uLi4uLi4gOiAke2VuYWJsZV9idXJyaWVkX2hlYWRlcnN9CisrICAtIE1ZU1FM X0hFQURFUlNfQlVSSUVEIC4uLi4uLiA6ICR7ZW5hYmxlX215c3FsX2J1cnJpZWRfaGVhZGVyc30K KysgIC0gUE9TVEdSRVNRTF9IRUFERVJTX0JVUklFRCAuIDogJHtlbmFibGVfcG9zdGdyZXNxbF9i dXJyaWVkX2hlYWRlcnN9CisrCisrRXh0ZXJuYWwgbGlicmFyaWVzOgorKyAgLSBCb29zdCAuLi4u Li4uLi4uLi4uLi4uIDoKKysgICAgbyBCT09TVF9WRVJTSU9OIC4uLi4uLiA6ICR7Qk9PU1RfVkVS U0lPTn0KKysgICAgbyBCT09TVF9DRkxBR1MgLi4uLi4uLiA6ICR7Qk9PU1RfQ0ZMQUdTfQorKyAg ICBvIEJPT1NUX0xJQlMgLi4uLi4uLi4uIDogJHtCT09TVF9MSUJTfQorKyAgICBvIEJPT1NUX0RU X0xJQiAuLi4uLi4uIDogJHtCT09TVF9EQVRFX1RJTUVfTElCfQorKyAgICBvIEJPT1NUX1BPX0xJ QiAuLi4uLi4uIDogJHtCT09TVF9QUk9HUkFNX09QVElPTlNfTElCfQorKworKyAgLSBNeVNRTCBz dXBwb3J0IC4uLi4uLi4uIDogJHtlbmFibGVfYmFja2VuZF9teXNxbH0KKysgICAgbyBNWVNRTF9W RVJTSU9OIC4uLi4uLiA6ICR7TVlTUUxfVkVSU0lPTn0KKysgICAgbyBNWVNRTF9DRkxBR1MgLi4u Li4uLiA6ICR7TVlTUUxfQ0ZMQUdTfQorKyAgICBvIE1ZU1FMX0xJQlMgLi4uLi4uLi4uIDogJHtN WVNRTF9MSUJTfQorKworKyAgLSBQb3N0R3JlU1FMIHN1cHBvcnQgLi4uIDogJHtlbmFibGVfYmFj a2VuZF9wb3N0Z3Jlc3FsfQorKyAgICBvIFBPU1RHUkVTUUxfVkVSU0lPTiAuIDogJHtQT1NUR1JF U1FMX1ZFUlNJT059CisrICAgIG8gUE9TVEdSRVNRTF9DRkxBR1MgLi4gOiAke1BPU1RHUkVTUUxf Q0ZMQUdTfQorKyAgICBvIFBPU1RHUkVTUUxfTERGTEFHUyAuIDogJHtQT1NUR1JFU1FMX0xERkxB R1N9CisrCisrICAtIE9yYWNsZSBzdXBwb3J0IC4uLi4uLi4gOiAke2VuYWJsZV9iYWNrZW5kX29y YWNsZX0KKysgICAgbyBPUkFDTEVfVkVSU0lPTiAuLi4uLiA6ICR7T1JBQ0xFX09DSV9WRVJTSU9O fQorKyAgICBvIE9SQUNMRV9DRkxBR1MgLi4uLi4uIDogJHtPUkFDTEVfT0NJX0NGTEFHU30KKysg ICAgbyBPUkFDTEVfTERGTEFHUyAuLi4uLiA6ICR7T1JBQ0xFX09DSV9MREZMQUdTfQorKworKyAg LSBDUFBVbml0IC4uLi4uLi4uLi4uLi4uIDoKKysgICAgbyBDUFBVTklUX1ZFUlNJT04gLi4uLiA6 ICR7Q1BQVU5JVF9WRVJTSU9OfQorKyAgICBvIENQUFVOSVRfQ0ZMQUdTIC4uLi4uIDogJHtDUFBV TklUX0NGTEFHU30KKysgICAgbyBDUFBVTklUX0xJQlMgLi4uLi4uLiA6ICR7Q1BQVU5JVF9MSUJT fQorIAorLWVjaG8gJycKKy1jZCBidWlsZC91bml4OyBgY2F0IGxvY2FsL3RjbGAgcGFyc2UtcGFy YW1ldGVycy50Y2wKKy0KKy1lY2hvICcnCistZWNobyAnQ29uZmlndXJlIGRvbmUuJworLWVjaG8g J1llcywgaXQgd2FzIHNob3J0LicKKy1lY2hvICcnCistZWNobyAnWW91IGNhbiBub3cgcnVuIG1h a2UuJworKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorK05vdyB0eXBlICdtYWtlICYmIG1ha2UgaW5z dGFsbCcgdG8gYnVpbGQgYW5kIGluc3RhbGwgJFBBQ0tBR0UtJFZFUlNJT04gbGlicmFyeQorKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQorKyIKK2RpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9jb25m aWd1cmUuYWMgc29jaS0zLjAuMF90cmVwMzAwL2NvbmZpZ3VyZS5hYworLS0tIHNvY2ktMy4wLjBf NC1wYWNrL2NvbmZpZ3VyZS5hYwkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAor KysrIHNvY2ktMy4wLjBfdHJlcDMwMC9jb25maWd1cmUuYWMJMjAxMC0wMS0yMyAxNDo0Mjo0Mi4w MDAwMDAwMDAgKzAxMDAKK0BAIC0wLDAgKzEsNDAyIEBACisrIyBQcm9jZXNzIHRoaXMgZmlsZSB3 aXRoIGF1dG9jb25mIHRvIHByb2R1Y2UgYSBjb25maWd1cmUgc2NyaXB0CisrIy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K KytBQ19QUkVSRVEoMi41OSkKKytBQ19DT1BZUklHSFQoW0NvcHlyaWdodCAoQykgMjAwNC0yMDA5 IE1hY2llaiBTb2JjemFrIDxtc29iY3pha0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+XSkKKytBQ19J TklUKFtTT0NJXSxbMy4wLjBdLFttc29iY3pha0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXRdLFtzb2Np XSkKKytBQ19DT05GSUdfSEVBREVSKFtzb2NpL2NvbmZpZy5oXSkKKytBQ19DT05GSUdfU1JDRElS KFtzb2NpL2NvcmUvZXJyb3IuY3BwXSkKKytBQ19DT05GSUdfQVVYX0RJUihbY29uZmlnXSkKKytB TV9JTklUX0FVVE9NQUtFCisrQU1fUEFUSF9DUFBVTklUKDEuMTApCisrQU1fQ09ORElUSU9OQUwo W0hBVkVfQ1BQVU5JVF0sIFt0ZXN0ICJ4JENQUFVOSVRfTElCUyIgIT0geF0pCisrCisrIyBSUE0g cmVsZWFzZSBudW1iZXIKKytSUE1fUkVMRUFTRT0iMTYiCisrQUNfU1VCU1QoUlBNX1JFTEVBU0Up CisrCisrIyBTaGFyZWQgbGlicmFyeSB2ZXJzaW9uaW5nCisrR0VORVJJQ19MSUJSQVJZX1ZFUlNJ T049IjM6MDowIgorKyMgICAgICAgICAgICAgICAgICAgICAgICB8IHwgfAorKyMgICAgICAgICAg ICAgICAgICstLS0tLS0rIHwgKy0tLSsKKysjICAgICAgICAgICAgICAgICB8ICAgICAgICB8ICAg ICB8CisrIyAgICAgICAgICAgICAgY3VycmVudDpyZXZpc2lvbjphZ2UKKysjICAgICAgICAgICAg ICAgICB8ICAgICAgICB8ICAgICB8CisrIyAgICAgICAgICAgICAgICAgfCAgICAgICAgfCAgICAg Ky0gaW5jcmVtZW50IGlmIGludGVyZmFjZXMgaGF2ZSBiZWVuIGFkZGVkOworKyMgICAgICAgICAg ICAgICAgIHwgICAgICAgIHwgICAgICAgIHNldCB0byB6ZXJvIGlmIGludGVyZmFjZXMgaGF2ZSBi ZWVuIAorKyMgICAgICAgICAgICAgICAgIHwgICAgICAgIHwgICAgICAgIHJlbW92ZWQgb3IgY2hh bmdlZAorKyMgICAgICAgICAgICAgICAgIHwgICAgICAgICstIGluY3JlbWVudCBpZiBzb3VyY2Ug Y29kZSBoYXMgY2hhbmdlZDsKKysjICAgICAgICAgICAgICAgICB8ICAgICAgICAgICBzZXQgdG8g emVybyBpZiBjdXJyZW50IGlzIGluY3JlbWVudGVkCisrIyAgICAgICAgICAgICAgICAgKy0gaW5j cmVtZW50IGlmIGludGVyZmFjZXMgaGF2ZSBiZWVuIGFkZGVkLCByZW1vdmVkCisrIyAgICAgICAg ICAgICAgICAgICAgb3IgY2hhbmdlZAorK0FDX1NVQlNUKEdFTkVSSUNfTElCUkFSWV9WRVJTSU9O KQorKworKyMgVXBsb2FkIGNvbW1hbmQgZm9yIFNvdXJjZUZvcmdlCisrVVBMT0FEX0NPTU1BTkQ9 Im5jZnRwcHV0IC12IHVwbG9hZC5zb3VyY2Vmb3JnZS5uZXQgL2luY29taW5nIgorK0FDX1NVQlNU KFVQTE9BRF9DT01NQU5EKQorKworKyMgQ2hlY2sgZm9yIGhvc3QgYW5kIGRpc2FibGUgYnVpbGRp bmcgYSBzaGFyZWQgbGlicmFyeSBpbiBXaW5kb3dzCisrQUNfQ0FOT05JQ0FMX0hPU1QKKytjYXNl ICRob3N0IGluCisrICAqLSotbXNkb3MqIHwgKi0qLWdvMzIqIHwgKi0qLW1pbmd3MzIqIHwgKi0q LWN5Z3dpbiogfCAqLSotd2luZG93cyopIAorKyAgICBBQ19ESVNBQkxFX1NIQVJFRAorKyAgICBB Q19FTkFCTEVfU1RBVElDCisrICAgIDs7CisrICAqKSAgCisrICAgIEFDX0VOQUJMRV9TSEFSRUQK KysgICAgQUNfRElTQUJMRV9TVEFUSUMKKysgICAgOzsKKytlc2FjCisrCisrIyBDaGVja3MgZm9y IHByb2dyYW1zCisrc2F2ZV9DWFhGTEFHUz0iJENYWEZMQUdTIgorK0FDX1BST0dfQ1hYCisrQUNf UFJPR19DWFhDUFAKKytDWFhGTEFHUz0iJHNhdmVfQ1hYRkxBR1MiCisrQUNfUFJPR19JTlNUQUxM CisrQUNfUFJPR19MSUJUT09MCisrQUNfUFJPR19MTl9TCisrQUNfUFJPR19NQUtFX1NFVAorKwor KyMgU2V0IGRlZmF1bHQgbGFuZ3VhZ2UgdG8gQysrCisrQUNfTEFORyhbQysrXSkKKysKKysjIENo ZWNrIGZvciBleGNlcHRpb25zIHN3aXRjaAorK0FDX0FSR19FTkFCTEUoZXhjZXB0aW9ucywKKysg ICAgICAgICAgICAgIFtBU19IRUxQX1NUUklORyhbLS1lbmFibGUtZXhjZXB0aW9uc10sCisrICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgW2VuYWJsZSBleGNlcHRpb25zIGhhbmRsaW5nIG1l Y2hhbmlzbV0pXSwKKysgICAgICAgICAgICAgIFtBQ19ERUZJTkUoW1NPQ0lfRVhDRVBUSU9OU10s IFsxXSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgW0RlZmluZSBpZiB5b3Ugd2FudCBleGNl cHRpb25zIGhhbmRsaW5nXSldKQorK3Rlc3QgIngkZW5hYmxlX2V4Y2VwdGlvbnMiICE9IHhubyAm JiBlbmFibGVfZXhjZXB0aW9ucz15ZXMKKyt0ZXN0ICJ4JGF4X2N2X2Jvb3N0X2RhdGVfdGltZSIg IT0geG5vICYmIGVuYWJsZV9leGNlcHRpb25zPXllcworKworKyMgQ2hlY2sgZm9yIGluZm8gcGFn ZXMKKytBQ19BUkdfRU5BQkxFKGluZm8tZG9jLCAKKysgICAgICAgICAgICAgIFtBU19IRUxQX1NU UklORyhbLS1kaXNhYmxlLWluZm8tZG9jXSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBbZG8gbm90IGdlbmVyYXRlIEluZm8gZG9jdW1lbnRhdGlvbl0pXSkKKyt0ZXN0ICJ4JGVuYWJs ZV9pbmZvX2RvYyIgIT0geG5vICYmIGVuYWJsZV9pbmZvX2RvYz15ZXMKKysKKysKKysjIENoZWNr IGZvciBodG1sLWRvYyBzd2l0Y2gKKytBQ19BUkdfRU5BQkxFKGh0bWwtZG9jLCAKKysgICAgICAg ICAgICAgIFtBU19IRUxQX1NUUklORyhbLS1kaXNhYmxlLWh0bWwtZG9jXSwKKysgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBbZG8gbm90IGdlbmVyYXRlIEhUTUwgZG9jdW1lbnRhdGlvbl0p XSkKKyt0ZXN0ICJ4JGVuYWJsZV9odG1sX2RvYyIgIT0geG5vICYmIGVuYWJsZV9odG1sX2RvYz15 ZXMKKysKKysKKysjIFByb3ZpZGUgLS13aXRoLWRvY2RpcgorK0FDX0FSR19XSVRIKGRvY2RpciwK KysgICAgICAgICAgICBbQVNfSEVMUF9TVFJJTkcoWy0td2l0aC1kb2NkaXI9RElSXSwKKysgICAg ICAgICAgICAgICAgICAgICAgICAgICAgW3NldCBkb2N1bWVudGF0aW9uIGRpcmVjdG9yeSB0byBE SVJdKV0sCisrICAgICAgICAgICAgW0RPQ19ESVI9IiR3aXRodmFsIl0sCisrICAgICAgICAgICAg W0RPQ19ESVI9IiJdKQorK2lmIHRlc3QgIngkRE9DX0RJUiIgIT0geDsgdGhlbgorKyAgZG9jZGly PSIkRE9DX0RJUiIKKytlbHNlCisrICBkb2NkaXI9IiR7ZGF0YWRpcn0vZG9jLyRQQUNLQUdFLSRW RVJTSU9OIgorK2ZpCisrQUNfU1VCU1QoZG9jZGlyKQorKworKworKyMgQ2hlY2sgZm9yIGJ1cnJp ZWQgaGVhZGVyIGZpbGVzIChmb3IgU09DSSBpdHNlbGYpCisrQUNfQVJHX0VOQUJMRShidXJyaWVk LWhlYWRlcnMsIAorKyBBU19IRUxQX1NUUklORyhbLS1lbmFibGUtYnVycmllZC1oZWFkZXJzXSwK KysJCVtpbmNsdWRlIGhlYWRlciBmaWxlcyBmcm9tIGEgZGlyZWN0b3J5IHN0cnVjdHVyZV0pLAor KyBbIGlmIHRlc3QgIiRlbmFibGV2YWwiID0gbm87IHRoZW4KKysgICAgICBlbmFibGVfYnVycmll ZF9oZWFkZXJzPW5vCisrICAgZWxzZQorKyAgICAgIGVuYWJsZV9idXJyaWVkX2hlYWRlcnM9eWVz CisrICAgZmkgXSwKKysgWyBlbmFibGVfYnVycmllZF9oZWFkZXJzPW5vIF0pCisrIyBUZW1wb3Jh cnksIGZvciB0aGUgUlBNIHBhY2thZ2VzIGdlbmVyYXRpb24KKytlbmFibGVfYnVycmllZF9oZWFk ZXJzPXllcworK0FNX0NPTkRJVElPTkFMKFtTT0NJX0hFQURFUlNfQlVSSUVEXSwgW3Rlc3QgIngk ZW5hYmxlX2J1cnJpZWRfaGVhZGVycyIgPSB4eWVzXSkKKytBQ19TVUJTVChTT0NJX0hFQURFUlNf QlVSSUVEKQorK2lmIHRlc3QgIngkZW5hYmxlX2J1cnJpZWRfaGVhZGVycyIgPSB4eWVzOyB0aGVu CisrICAgQ1BQRkxBR1M9Ii1EU09DSV9IRUFERVJTX0JVUklFRCAkQ1BQRkxBR1MiCisrZmkKKysK KysjIENoZWNrIGZvciBidXJyaWVkIGhlYWRlciBmaWxlcyAoZm9yIE15U1FMIGNsaWVudCkKKytB Q19BUkdfRU5BQkxFKG15c3FsLWJ1cnJpZWQtaGVhZGVycywgCisrIEFTX0hFTFBfU1RSSU5HKFst LWVuYWJsZS1teXNxbC1idXJyaWVkLWhlYWRlcnNdLAorKwkJW2luY2x1ZGUgTXlTUUwgaGVhZGVy IGZpbGVzIGZyb20gYSBkaXJlY3Rvcnkgc3RydWN0dXJlXSksCisrIFsgaWYgdGVzdCAiJGVuYWJs ZXZhbCIgPSBubzsgdGhlbgorKwllbmFibGVfbXlzcWxfYnVycmllZF9oZWFkZXJzPW5vCisrICAg ZWxzZQorKwllbmFibGVfbXlzcWxfYnVycmllZF9oZWFkZXJzPXllcworKyAgIGZpIF0sCisrIFsg ZW5hYmxlX215c3FsX2J1cnJpZWRfaGVhZGVycz1ubyBdKQorKyMgVGVtcG9yYXJ5LCBmb3IgdGhl IFJQTSBwYWNrYWdlcyBnZW5lcmF0aW9uCisrZW5hYmxlX215c3FsX2J1cnJpZWRfaGVhZGVycz15 ZXMKKytBTV9DT05ESVRJT05BTChbU09DSV9NWVNRTF9IRUFERVJTX0JVUklFRF0sCisrICAgICAg ICAgICAgICAgW3Rlc3QgIngkZW5hYmxlX215c3FsX2J1cnJpZWRfaGVhZGVycyIgPSB4eWVzXSkK KytBQ19TVUJTVChTT0NJX01ZU1FMX0hFQURFUlNfQlVSSUVEKQorK2lmIHRlc3QgIngkZW5hYmxl X215c3FsX2J1cnJpZWRfaGVhZGVycyIgPSB4eWVzOyB0aGVuCisrICAgQ1BQRkxBR1M9Ii1EU09D SV9NWVNRTF9IRUFERVJTX0JVUklFRCAkQ1BQRkxBR1MiCisrZmkKKysKKysjIENoZWNrIGZvciBi dXJyaWVkIGhlYWRlciBmaWxlcyAoZm9yIFBvc3RHcmVTUUwgY2xpZW50KQorK0FDX0FSR19FTkFC TEUocG9zdGdyZXNxbC1idXJyaWVkLWhlYWRlcnMsIAorKyBBU19IRUxQX1NUUklORyhbLS1lbmFi bGUtcG9zdGdyZXNxbC1idXJyaWVkLWhlYWRlcnNdLAorKwkJW2luY2x1ZGUgUG9zdEdyZVNRTCBo ZWFkZXIgZmlsZXMgZnJvbSBhIGRpcmVjdG9yeSBzdHJ1Y3R1cmVdKSwKKysgWyBpZiB0ZXN0ICIk ZW5hYmxldmFsIiA9IG5vOyB0aGVuCisrCWVuYWJsZV9wb3N0Z3Jlc3FsX2J1cnJpZWRfaGVhZGVy cz1ubworKyAgIGVsc2UKKysJZW5hYmxlX3Bvc3RncmVzcWxfYnVycmllZF9oZWFkZXJzPXllcwor KyAgIGZpIF0sCisrIFsgZW5hYmxlX3Bvc3RncmVzcWxfYnVycmllZF9oZWFkZXJzPW5vIF0pCisr IyBUZW1wb3JhcnksIGZvciB0aGUgUlBNIHBhY2thZ2VzIGdlbmVyYXRpb24KKytlbmFibGVfcG9z dGdyZXNxbF9idXJyaWVkX2hlYWRlcnM9eWVzCisrQU1fQ09ORElUSU9OQUwoW1NPQ0lfUE9TVEdS RVNRTF9IRUFERVJTX0JVUklFRF0sCisrICAgICAgICAgICAgICAgW3Rlc3QgIngkZW5hYmxlX3Bv c3RncmVzcWxfYnVycmllZF9oZWFkZXJzIiA9IHh5ZXNdKQorK0FDX1NVQlNUKFNPQ0lfUE9TVEdS RVNRTF9IRUFERVJTX0JVUklFRCkKKytpZiB0ZXN0ICJ4JGVuYWJsZV9wb3N0Z3Jlc3FsX2J1cnJp ZWRfaGVhZGVycyIgPSB4eWVzOyB0aGVuCisrICAgQ1BQRkxBR1M9Ii1EU09DSV9QT1NUR1JFU1FM X0hFQURFUlNfQlVSSUVEICRDUFBGTEFHUyIKKytmaQorKworKworKyMgLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKysjIEJvb3N0IChTVEwg RXh0ZW5zaW9uczogaHR0cDovL3d3dy5ib29zdC5vcmcpCisrIyAtLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorK0FYX0JPT1NUKFsxLjMzXSkK KytBQ19TVUJTVChCT09TVF9WRVJTSU9OKQorK0FDX1NVQlNUKEJPT1NUX0NGTEFHUykKKytBQ19T VUJTVChCT09TVF9MSUJTKQorK0FDX1NVQlNUKEJPT1NUX0RBVEVfVElNRV9MSUIpCisrQUNfU1VC U1QoQk9PU1RfUFJPR1JBTV9PUFRJT05TX0xJQikKKytBQ19TVUJTVChCT09TVF9GSUxFU1lTVEVN X0xJQikKKytBQ19TVUJTVChCT09TVF9USFJFQURfTElCKQorK0FDX1NVQlNUKEJPT1NUX1BZVEhP Tl9MSUIpCisrCisrIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKyMgU3VwcG9ydCBmb3IgTXlTUUwgYmFja2VuZCAo QyBjbGllbnQgQVBJKTogaHR0cDovL3d3dy5teXNxbC5vcmcKKysjIC0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrQUNf QVJHX0VOQUJMRShbYmFja2VuZC1teXNxbF0sCisrICAgIEFDX0hFTFBfU1RSSU5HKFstLWVuYWJs ZS1iYWNrZW5kLW15c3FsXSwKKysgICAgICAgIFtidWlsZC1pbiBNeVNRTCBiYWNrZW5kIHN1cHBv cnQgQDw6QGRlZmF1bHQ9bm9AOj5AXQorKyAgICApLAorKyAgICBbIGlmIHRlc3QgIiRlbmFibGV2 YWwiID0gbm87IHRoZW4KKysgICAgICAJIGVuYWJsZV9iYWNrZW5kX215c3FsPW5vCisrICAgICAg ZWxzZQorKwkgZW5hYmxlX2JhY2tlbmRfbXlzcWw9eWVzCisrICAgICAgZmkgXSwKKysgICAgWyBl bmFibGVfYmFja2VuZF9teXNxbD1ubyBdCisrKQorKworK2lmIHRlc3QgIngkZW5hYmxlX2JhY2tl bmRfbXlzcWwiID0gInh5ZXMiOyB0aGVuCisrICAgTVlTUUxfRElSUz0ibXlzcWwiCisrIyAgIE1Z U1FMX1JFUV9WRVJTSU9OPSIzLjAuMCIKKysgICBBWF9NWVNRTAorK2ZpCisrQU1fQ09ORElUSU9O QUwoW0hBVkVfTVlTUUxdLCBbdGVzdCAieCRlbmFibGVfYmFja2VuZF9teXNxbCIgPSB4eWVzXSkK KysjTVlTUUxfRElSUz0ibXlzcWwiCisrCisrQUNfU1VCU1QoW01ZU1FMX0RJUlNdKQorKworKwor KyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQorKyMgU3VwcG9ydCBmb3IgT3JhY2xlIGJhY2tlbmQKKysjIC0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KKytBQ19BUkdfRU5BQkxFKFtiYWNrZW5kLW9yYWNsZV0sCisrICAgIEFDX0hFTFBfU1RSSU5H KFstLWVuYWJsZS1iYWNrZW5kLW9yYWNsZV0sCisrCQkgICBbYnVpbGQtaW4gT1JBQ0xFIGJhY2tl bmQgc3VwcG9ydCBAPDpAZGVmYXVsdD1ub0A6PkBdKSwKKysgICAgWyBpZiB0ZXN0ICIkZW5hYmxl dmFsIiA9IG5vOyB0aGVuCisrICAgICAgCSBlbmFibGVfYmFja2VuZF9vcmFjbGU9bm8KKysgICAg ICBlbHNlCisrCSBlbmFibGVfYmFja2VuZF9vcmFjbGU9eWVzCisrICAgICAgZmkgXSwKKysgICAg WyBlbmFibGVfYmFja2VuZF9vcmFjbGU9bm8gXQorKykKKysKKytpZiB0ZXN0ICJ4JGVuYWJsZV9i YWNrZW5kX29yYWNsZSIgPSAieHllcyI7IHRoZW4KKysgICBPUkFDTEVfRElSUz0ib3JhY2xlIgor KyAgIE9SQUNMRV9PQ0lfUkVRX1ZFUlNJT049IjkuMCIKKysgICBBWF9MSUJfT1JBQ0xFX09DSSgk T1JBQ0xFX09DSV9SRVFfVkVSU0lPTikKKytmaQorK0FNX0NPTkRJVElPTkFMKFtIQVZFX09SQUNM RV0sIFt0ZXN0ICJ4JGVuYWJsZV9iYWNrZW5kX29yYWNsZSIgPSB4eWVzXSkKKysjT1JBQ0xFX0RJ UlM9Im9yYWNsZSIKKysKKytBQ19TVUJTVChbT1JBQ0xFX0RJUlNdKQorKworKyMgLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQorKyMgU3VwcG9ydCBmb3IgUG9zdGdyZVNRTCBiYWNrZW5kCisrIyAtLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrQUNf QVJHX0VOQUJMRShbYmFja2VuZC1wb3N0Z3Jlc3FsXSwKKysgICAgQUNfSEVMUF9TVFJJTkcoWy0t ZW5hYmxlLWJhY2tlbmQtcG9zdGdyZXNxbF0sCisrICAgICAgICBbYnVpbGQtaW4gUG9zdGdyZVNR TCBiYWNrZW5kIHN1cHBvcnQgQDw6QGRlZmF1bHQ9bm9AOj5AXQorKyAgICApLAorKyAgICBbIGlm IHRlc3QgIiRlbmFibGV2YWwiID0gbm87IHRoZW4KKysgICAgICAJIGVuYWJsZV9iYWNrZW5kX3Bv c3RncmVzcWw9bm8KKysgICAgICBlbHNlCisrCSBlbmFibGVfYmFja2VuZF9wb3N0Z3Jlc3FsPXll cworKyAgICAgIGZpIF0sCisrICAgIFsgZW5hYmxlX2JhY2tlbmRfcG9zdGdyZXNxbD1ubyBdCisr KQorKworK2lmIHRlc3QgIngkZW5hYmxlX2JhY2tlbmRfcG9zdGdyZXNxbCIgPSAieHllcyI7IHRo ZW4KKysgICBQT1NUR1JFU1FMX0RJUlM9InBvc3RncmVzcWwiCisrICAgUE9TVEdSRVNRTF9SRVFf VkVSU0lPTj0iNy4xLjQiCisrICAgQVhfTElCX1BPU1RHUkVTUUwoJFBPU1RHUkVTUUxfUkVRX1ZF UlNJT04pCisrZmkKKytBTV9DT05ESVRJT05BTChbSEFWRV9QT1NUR1JFU1FMXSwgW3Rlc3QgIngk ZW5hYmxlX2JhY2tlbmRfcG9zdGdyZXNxbCIgPSB4eWVzXSkKKysjUE9TVEdSRVNRTF9ESVJTPSJw b3N0Z3Jlc3FsIgorKworK0FDX1NVQlNUKFtQT1NUR1JFU1FMX0RJUlNdKQorKworKworKyMgLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQorKyMgU3VwcG9ydCBmb3IgZG9jdW1lbnRhdGlvbgorKyMgLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKyMg Q2hlY2tzIGZvciBkb2N1bWVudGF0aW9uIGJ1aWxkIHRvb2xzCisrI0FDX0NIRUNLX1BST0coW3Rl eGluZm9fb2tdLCBbdGV4aW5mb10sIFt5ZXNdLCBbbm9dKQorKyNpZiB0ZXN0ICJ4JGVuYWJsZV9p bmZvX2RvYyIgIT0geG5vOyB0aGVuCisrIyAgdGVzdCAieCR0ZXhpbmZvX29rIiAhPSB4eWVzICYm IGVuYWJsZV9pbmZvX2RvYz1ubworKyMgIEFDX1BBVEhfUFJPRyhbUEVSTF0sIFtwZXJsXSwgW10p CisrI2ZpCisrQU1fQ09ORElUSU9OQUwoW0lORk9fRE9DXSwgW3Rlc3QgIngkZW5hYmxlX2luZm9f ZG9jIiA9IHh5ZXNdKQorKworKyMgQ2hlY2tzIGZvciBkb2N1bWVudGF0aW9uIGJ1aWxkIHRvb2xz CisrQUNfQ0hFQ0tfUFJPRyhbZG94eWdlbl9va10sIFtkb3h5Z2VuXSwgW3llc10sIFtub10pCisr QUNfQ0hFQ0tfUFJPRyhbbGF0ZXhfb2tdLCBbbGF0ZXhdLCBbeWVzXSwgW25vXSkKKytBQ19DSEVD S19QUk9HKFtkdmlwc19va10sIFtkdmlwc10sIFt5ZXNdLCBbbm9dKQorK0FDX0NIRUNLX1BST0co W2dzX29rXSwgW2dzXSwgW3llc10sIFtub10pCisraWYgdGVzdCAieCRlbmFibGVfaHRtbF9kb2Mi ICE9IHhubzsgdGhlbgorKyAgdGVzdCAieCRkb3h5Z2VuX29rIiAhPSB4eWVzICYmIGVuYWJsZV9o dG1sX2RvYz1ubworKyAgdGVzdCAieCRsYXRleF9vayIgIT0geHllcyAmJiBlbmFibGVfaHRtbF9k b2M9bm8KKysgIHRlc3QgIngkZHZpcHNfb2siICE9IHh5ZXMgJiYgZW5hYmxlX2h0bWxfZG9jPW5v CisrICB0ZXN0ICJ4JGdzX29rIiAhPSB4eWVzICYmIGVuYWJsZV9odG1sX2RvYz1ubworKyAgQUNf UEFUSF9QUk9HKFtQRVJMXSwgW3BlcmxdLCBbXSkKKytmaQorK0FNX0NPTkRJVElPTkFMKFtIVE1M X0RPQ10sIFt0ZXN0ICJ4JGVuYWJsZV9odG1sX2RvYyIgPSB4eWVzXSkKKysKKysKKysjIENoZWNr IGZvciBkaWZmIHByb2dyYW0gdXNlZCBmb3IgdGVzdHMKKytBQ19DSEVDS19QUk9HKFtkaWZmX29r XSwgW2RpZmZdLCBbeWVzXSwgW25vXSkKKytBQ19DSEVDS19QUk9HKFtzZWRfb2tdLCBbc2VkXSwg W3llc10sIFtub10pCisrZW5hYmxlX3Rlc3RzPXllcworK3Rlc3QgIngkZGlmZl9vayIgIT0geHll cyAmJiBlbmFibGVfdGVzdHM9bm8KKyt0ZXN0ICJ4JHNlZF9vayIgIT0geHllcyAmJiBlbmFibGVf dGVzdHM9bm8KKytBTV9DT05ESVRJT05BTChbUlVOX1RFU1RTXSwgW3Rlc3QgIngkZW5hYmxlX3Rl c3RzIiA9IHh5ZXNdKQorKworKworKyMgQ2hlY2tzIGZvciBoZWFkZXIgZmlsZXMKKytBQ19IRUFE RVJfU1REQworK0FDX0hFQURFUl9USU1FCisrQUNfQ0hFQ0tfSEVBREVSUyhbY21hdGggXAorKyAg ZGVxdWUgXAorKyAgZnN0cmVhbSBcCisrICBpb21hbmlwIFwKKysgIGlvc3RyZWFtIFwKKysgIHNz dHJlYW0gXAorKyAgbGltaXRzIFwKKysgIGxpc3QgXAorKyAgc2V0IFwKKysgIHZlY3RvciBcCisr ICBtYXAgXAorKyAgcXVldWUgXAorKyAgc3RkZXhjZXB0IFwKKysgIHN0cmluZ10pCisrCisrCisr IyBEZWZpbmUgY29uZmlndXJlZCBmaWxlcworK0FDX0NPTkZJR19GSUxFUygKKysJTWFrZWZpbGUK KysJc29jaS1jb25maWcKKysJc29jaS5wYworKwlzb2NpLnNwZWMKKysJc29jaS9NYWtlZmlsZQor Kwlzb2NpL2NvcmUvTWFrZWZpbGUKKysJc29jaS9jb3JlL3Rlc3QvTWFrZWZpbGUKKysJc29jaS9i YWNrZW5kcy9NYWtlZmlsZQorKwlzb2NpL2JhY2tlbmRzL215c3FsL01ha2VmaWxlCisrCXNvY2kv YmFja2VuZHMvbXlzcWwvdGVzdC9NYWtlZmlsZQorKwlzb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwv TWFrZWZpbGUKKysJc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Rlc3QvTWFrZWZpbGUKKysJc29j aS9iYWNrZW5kcy9vcmFjbGUvTWFrZWZpbGUKKysJc29jaS9iYWNrZW5kcy9vcmFjbGUvdGVzdC9N YWtlZmlsZQorKwltYW4vTWFrZWZpbGUKKysgICAgICAgIGRvYy9NYWtlZmlsZQorKyAgICAgICAg ZG9jL2JhY2tlbmRzL01ha2VmaWxlCisrCWJ1aWxkL01ha2VmaWxlCisrCWJ1aWxkL3VuaXgvTWFr ZWZpbGUKKysJYnVpbGQvbXN2YzgwL01ha2VmaWxlCisrCWJ1aWxkL21zdmM4MC9kbGwvTWFrZWZp bGUKKysJYnVpbGQvbXN2YzgwL2xpYi9NYWtlZmlsZSkKKysKKytBQ19PVVRQVVQKKysKKytlY2hv ICIKKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyskUEFDS0FHRS0kVkVSU0lPTiBsaWJyYXJ5IGNv bmZpZ3VyYXRpb246CisrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrCisrRGlyZWN0b3JpZXM6Cisr ICAtIHByZWZpeCAuLi4uLi4uLi4uLi4uLi4gOiAke3ByZWZpeH0KKysgIC0gZXhlY19wcmVmaXgg Li4uLi4uLi4uLiA6ICR7ZXhlY19wcmVmaXh9CisrICAtIGluY2x1ZGVkaXIgLi4uLi4uLi4uLi4g OiAke2luY2x1ZGVkaXJ9CisrICAtIGxpYmRpciAuLi4uLi4uLi4uLi4uLi4gOiAke2xpYmRpcn0K KysgIC0gZG9jZGlyIC4uLi4uLi4uLi4uLi4uLiA6ICR7ZG9jZGlyfQorKyAgLSBtYW5kaXIgLi4u Li4uLi4uLi4uLi4uIDogJHttYW5kaXJ9CisrICAtIGluZm9kaXIgLi4uLi4uLi4uLi4uLi4gOiAk e2luZm9kaXJ9CisrCisrU3dpdGNoZXM6CisrICAtIGV4Y2VwdGlvbnMgLi4uLi4uLi4uLi4gOiAk e2VuYWJsZV9leGNlcHRpb25zfQorKyAgLSBpbmZvLWRvYyAuLi4uLi4uLi4uLi4uIDogJHtlbmFi bGVfaW5mb19kb2N9CisrICAtIGh0bWwtZG9jIC4uLi4uLi4uLi4uLi4gOiAke2VuYWJsZV9odG1s X2RvY30KKysgIC0gc2hhcmVkIC4uLi4uLi4uLi4uLi4uLiA6ICR7ZW5hYmxlX3NoYXJlZH0KKysg IC0gc3RhdGljIC4uLi4uLi4uLi4uLi4uLiA6ICR7ZW5hYmxlX3N0YXRpY30KKysKKytEb2N1bWVu dGF0aW9uIHRvb2xzOgorKyAgLSB0ZXhpbmZvIC4uLi4uLi4uLi4uLi4uIDogJHt0ZXhpbmZvX29r fQorKyAgLSBkb3h5Z2VuIC4uLi4uLi4uLi4uLi4uIDogJHtkb3h5Z2VuX29rfQorKyAgLSBsYXRl eCAuLi4uLi4uLi4uLi4uLi4uIDogJHtsYXRleF9va30KKysgIC0gZHZpcHMgLi4uLi4uLi4uLi4u Li4uLiA6ICR7ZHZpcHNfb2t9CisrICAtIGdob3N0c2NyaXB0IC4uLi4uLi4uLi4gOiAke2dzX29r fQorKworK1Rlc3RpbmcgdG9vbHM6CisrICAtIGRpZmYgLi4uLi4uLi4uLi4uLi4uLi4gOiAke2Rp ZmZfb2t9CisrICAtIHNlZCAuLi4uLi4uLi4uLi4uLi4uLi4gOiAke3NlZF9va30KKysKKytDb21w aWxlci9saW5rZXIgZmxhZ3MvbGlicy9kZWZzOgorKyAgLSBDWFggLi4uLi4uLi4uLi4uLi4uLi4u IDogJHtDWFh9CisrICAtIENYWEZMQUdTIC4uLi4uLi4uLi4uLi4gOiAke0NYWEZMQUdTfQorKyAg LSBDUFBGTEFHUyAuLi4uLi4uLi4uLi4uIDogJHtDUFBGTEFHU30KKysgIC0gTERGTEFHUyAuLi4u Li4uLi4uLi4uLiA6ICR7TERGTEFHU30KKysgIC0gTElCUyAuLi4uLi4uLi4uLi4uLi4uLiA6ICR7 TElCU30KKysKKytCdXJyaWVkIGhlYWRlciBmaWxlczoKKysgIC0gU09DSV9IRUFERVJTX0JVUklF RCAuLi4uLi4uIDogJHtlbmFibGVfYnVycmllZF9oZWFkZXJzfQorKyAgLSBNWVNRTF9IRUFERVJT X0JVUklFRCAuLi4uLi4gOiAke2VuYWJsZV9teXNxbF9idXJyaWVkX2hlYWRlcnN9CisrICAtIFBP U1RHUkVTUUxfSEVBREVSU19CVVJJRUQgLiA6ICR7ZW5hYmxlX3Bvc3RncmVzcWxfYnVycmllZF9o ZWFkZXJzfQorKworK0V4dGVybmFsIGxpYnJhcmllczoKKysgIC0gQm9vc3QgLi4uLi4uLi4uLi4u Li4uLiA6CisrICAgIG8gQk9PU1RfVkVSU0lPTiAuLi4uLi4gOiAke0JPT1NUX1ZFUlNJT059Cisr ICAgIG8gQk9PU1RfQ0ZMQUdTIC4uLi4uLi4gOiAke0JPT1NUX0NGTEFHU30KKysgICAgbyBCT09T VF9MSUJTIC4uLi4uLi4uLiA6ICR7Qk9PU1RfTElCU30KKysgICAgbyBCT09TVF9EVF9MSUIgLi4u Li4uLiA6ICR7Qk9PU1RfREFURV9USU1FX0xJQn0KKysgICAgbyBCT09TVF9QT19MSUIgLi4uLi4u LiA6ICR7Qk9PU1RfUFJPR1JBTV9PUFRJT05TX0xJQn0KKysKKysgIC0gTXlTUUwgc3VwcG9ydCAu Li4uLi4uLiA6ICR7ZW5hYmxlX2JhY2tlbmRfbXlzcWx9CisrICAgIG8gTVlTUUxfVkVSU0lPTiAu Li4uLi4gOiAke01ZU1FMX1ZFUlNJT059CisrICAgIG8gTVlTUUxfQ0ZMQUdTIC4uLi4uLi4gOiAk e01ZU1FMX0NGTEFHU30KKysgICAgbyBNWVNRTF9MSUJTIC4uLi4uLi4uLiA6ICR7TVlTUUxfTElC U30KKysKKysgIC0gUG9zdEdyZVNRTCBzdXBwb3J0IC4uLiA6ICR7ZW5hYmxlX2JhY2tlbmRfcG9z dGdyZXNxbH0KKysgICAgbyBQT1NUR1JFU1FMX1ZFUlNJT04gLiA6ICR7UE9TVEdSRVNRTF9WRVJT SU9OfQorKyAgICBvIFBPU1RHUkVTUUxfQ0ZMQUdTIC4uIDogJHtQT1NUR1JFU1FMX0NGTEFHU30K KysgICAgbyBQT1NUR1JFU1FMX0xERkxBR1MgLiA6ICR7UE9TVEdSRVNRTF9MREZMQUdTfSAKKysK KysgIC0gT3JhY2xlIHN1cHBvcnQgLi4uLi4uLiA6ICR7ZW5hYmxlX2JhY2tlbmRfb3JhY2xlfQor KyAgICBvIE9SQUNMRV9WRVJTSU9OIC4uLi4uIDogJHtPUkFDTEVfT0NJX1ZFUlNJT059CisrICAg IG8gT1JBQ0xFX0NGTEFHUyAuLi4uLi4gOiAke09SQUNMRV9PQ0lfQ0ZMQUdTfQorKyAgICBvIE9S QUNMRV9MREZMQUdTIC4uLi4uIDogJHtPUkFDTEVfT0NJX0xERkxBR1N9IAorKworKyAgLSBDUFBV bml0IC4uLi4uLi4uLi4uLi4uIDoKKysgICAgbyBDUFBVTklUX1ZFUlNJT04gLi4uLiA6ICR7Q1BQ VU5JVF9WRVJTSU9OfQorKyAgICBvIENQUFVOSVRfQ0ZMQUdTIC4uLi4uIDogJHtDUFBVTklUX0NG TEFHU30KKysgICAgbyBDUFBVTklUX0xJQlMgLi4uLi4uLiA6ICR7Q1BQVU5JVF9MSUJTfQorKwor Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorK05vdyB0eXBlICdtYWtlICYmIG1ha2UgaW5zdGFsbCcg dG8gYnVpbGQgYW5kIGluc3RhbGwgJFBBQ0tBR0UtJFZFUlNJT04gbGlicmFyeQorKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQorKyIKK2RpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9DT1BZSU5HIHNv Y2ktMy4wLjBfdHJlcDMwMC9DT1BZSU5HCistLS0gc29jaS0zLjAuMF80LXBhY2svQ09QWUlORwky MDEwLTAxLTIzIDE0OjQ1OjQ0LjAwMDAwMDAwMCArMDEwMAorKysrIHNvY2ktMy4wLjBfdHJlcDMw MC9DT1BZSU5HCTIwMDktMDQtMTYgMTk6Mzc6MTAuMDAwMDAwMDAwICswMjAwCitAQCAtMjEsMyAr MjEsNCBAQAorIEZPUiBBTlkgREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g Q09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLAorIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElO IENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUgorIERFQUxJ TkdTIElOIFRIRSBTT0ZUV0FSRS4KKysKK2RpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9kb2Mv YmFja2VuZHMvTWFrZWZpbGUuYW0gc29jaS0zLjAuMF90cmVwMzAwL2RvYy9iYWNrZW5kcy9NYWtl ZmlsZS5hbQorLS0tIHNvY2ktMy4wLjBfNC1wYWNrL2RvYy9iYWNrZW5kcy9NYWtlZmlsZS5hbQkx OTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAorKysrIHNvY2ktMy4wLjBfdHJlcDMw MC9kb2MvYmFja2VuZHMvTWFrZWZpbGUuYW0JMjAwOS0wNC0xNiAxOTo1MDozOC4wMDAwMDAwMDAg KzAyMDAKK0BAIC0wLDAgKzEsMTYgQEAKKysjIyBkb2MvYmFja2VuZHMgc3ViLWRpcmVjdG9yeQor K2luY2x1ZGUgJCh0b3Bfc3JjZGlyKS9NYWtlZmlsZS5jb21tb24KKytpbmNsdWRlICQoc3JjZGly KS9zb3VyY2VzLm1rCisrCisrIyMgU291cmNlIGRpcmVjdG9yeQorKworK01BSU5UQUlORVJDTEVB TkZJTEVTID0gTWFrZWZpbGUuaW4KKysKKytTVUJESVJTID0KKysKKytFWFRSQV9ESVNUX0ZPUl9T T0NJX0NPTVBBVElCSUxJVFkgPSAkKGh0bWxfYmNrX3NvdXJjZXMpCisrI2ZpcmViaXJkLmh0bWwg aW5kZXguaHRtbCBteXNxbC5odG1sIG9kYmMuaHRtbCBvcmFjbGUuaHRtbCBwb3N0Z3Jlc3FsLmh0 bWwgc3FsaXRlMy5odG1sCisrCisrRVhUUkFfRElTVCA9ICQoRVhUUkFfRElTVF9GT1JfU09DSV9D T01QQVRJQklMSVRZKQorKworKyNwa2dkYXRhZGlyID0gJChodG1sX2Jja19zb3VyY2VzKQorZGlm ZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL2RvYy9iYWNrZW5kcy9NYWtlZmlsZS5pbiBzb2NpLTMu MC4wX3RyZXAzMDAvZG9jL2JhY2tlbmRzL01ha2VmaWxlLmluCistLS0gc29jaS0zLjAuMF80LXBh Y2svZG9jL2JhY2tlbmRzL01ha2VmaWxlLmluCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAw ICswMTAwCisrKysgc29jaS0zLjAuMF90cmVwMzAwL2RvYy9iYWNrZW5kcy9NYWtlZmlsZS5pbgky MDEwLTAxLTIzIDE0OjQ0OjUxLjAwMDAwMDAwMCArMDEwMAorQEAgLTAsMCArMSw2MjkgQEAKKysj IE1ha2VmaWxlLmluIGdlbmVyYXRlZCBieSBhdXRvbWFrZSAxLjExLjEgZnJvbSBNYWtlZmlsZS5h bS4KKysjIEBjb25maWd1cmVfaW5wdXRACisrCisrIyBDb3B5cmlnaHQgKEMpIDE5OTQsIDE5OTUs IDE5OTYsIDE5OTcsIDE5OTgsIDE5OTksIDIwMDAsIDIwMDEsIDIwMDIsCisrIyAyMDAzLCAyMDA0 LCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5ICBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24s CisrIyBJbmMuCisrIyBUaGlzIE1ha2VmaWxlLmluIGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVl IFNvZnR3YXJlIEZvdW5kYXRpb24KKysjIGdpdmVzIHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNv cHkgYW5kL29yIGRpc3RyaWJ1dGUgaXQsCisrIyB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9u cywgYXMgbG9uZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCisrCisrIyBUaGlzIHByb2dy YW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKysj IGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWSwgdG8gdGhlIGV4dGVudCBwZXJtaXR0ZWQgYnkgbGF3 OyB3aXRob3V0CisrIyBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElU WSBvciBGSVRORVNTIEZPUiBBCisrIyBQQVJUSUNVTEFSIFBVUlBPU0UuCisrCisrQFNFVF9NQUtF QAorK1ZQQVRIID0gQHNyY2RpckAKKytwa2dkYXRhZGlyID0gJChkYXRhZGlyKS9AUEFDS0FHRUAK Kytwa2dpbmNsdWRlZGlyID0gJChpbmNsdWRlZGlyKS9AUEFDS0FHRUAKKytwa2dsaWJkaXIgPSAk KGxpYmRpcikvQFBBQ0tBR0VACisrcGtnbGliZXhlY2RpciA9ICQobGliZXhlY2RpcikvQFBBQ0tB R0VACisrYW1fX2NkID0gQ0RQQVRIPSIkJHtaU0hfVkVSU0lPTisufSQoUEFUSF9TRVBBUkFUT1Ip IiAmJiBjZAorK2luc3RhbGxfc2hfREFUQSA9ICQoaW5zdGFsbF9zaCkgLWMgLW0gNjQ0CisraW5z dGFsbF9zaF9QUk9HUkFNID0gJChpbnN0YWxsX3NoKSAtYworK2luc3RhbGxfc2hfU0NSSVBUID0g JChpbnN0YWxsX3NoKSAtYworK0lOU1RBTExfSEVBREVSID0gJChJTlNUQUxMX0RBVEEpCisrdHJh bnNmb3JtID0gJChwcm9ncmFtX3RyYW5zZm9ybV9uYW1lKQorK05PUk1BTF9JTlNUQUxMID0gOgor K1BSRV9JTlNUQUxMID0gOgorK1BPU1RfSU5TVEFMTCA9IDoKKytOT1JNQUxfVU5JTlNUQUxMID0g OgorK1BSRV9VTklOU1RBTEwgPSA6CisrUE9TVF9VTklOU1RBTEwgPSA6CisrYnVpbGRfdHJpcGxl dCA9IEBidWlsZEAKKytob3N0X3RyaXBsZXQgPSBAaG9zdEAKKytESVNUX0NPTU1PTiA9ICQoc3Jj ZGlyKS9NYWtlZmlsZS5hbSAkKHNyY2RpcikvTWFrZWZpbGUuaW4gXAorKwkkKHNyY2Rpcikvc291 cmNlcy5tayAkKHRvcF9zcmNkaXIpL01ha2VmaWxlLmNvbW1vbgorK3N1YmRpciA9IGRvYy9iYWNr ZW5kcworK0FDTE9DQUxfTTQgPSAkKHRvcF9zcmNkaXIpL2FjbG9jYWwubTQKKythbV9fYWNsb2Nh bF9tNF9kZXBzID0gJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfYm9vc3QubTQgXAorKwkkKHRvcF9z cmNkaXIpL2NvbmZpZy9heF9teXNxbC5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2F4X29y YWNsZV9vY2kubTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9wb3N0Z3Jlc3FsLm00IFwK KysJJCh0b3Bfc3JjZGlyKS9jb25maWcvY3BwdW5pdC5tNCBcCisrCSQodG9wX3NyY2RpcikvY29u ZmlnL2xpYnRvb2wubTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9sdG9wdGlvbnMubTQgXAor KwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9sdHN1Z2FyLm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25m aWcvbHR2ZXJzaW9uLm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcvbHR+b2Jzb2xldGUubTQg JCh0b3Bfc3JjZGlyKS9jb25maWd1cmUuYWMKKythbV9fY29uZmlndXJlX2RlcHMgPSAkKGFtX19h Y2xvY2FsX200X2RlcHMpICQoQ09ORklHVVJFX0RFUEVOREVOQ0lFUykgXAorKwkkKEFDTE9DQUxf TTQpCisrbWtpbnN0YWxsZGlycyA9ICQoaW5zdGFsbF9zaCkgLWQKKytDT05GSUdfSEVBREVSID0g JCh0b3BfYnVpbGRkaXIpL3NvY2kvY29uZmlnLmgKKytDT05GSUdfQ0xFQU5fRklMRVMgPQorK0NP TkZJR19DTEVBTl9WUEFUSF9GSUxFUyA9CisrU09VUkNFUyA9CisrRElTVF9TT1VSQ0VTID0KKytS RUNVUlNJVkVfVEFSR0VUUyA9IGFsbC1yZWN1cnNpdmUgY2hlY2stcmVjdXJzaXZlIGR2aS1yZWN1 cnNpdmUgXAorKwlodG1sLXJlY3Vyc2l2ZSBpbmZvLXJlY3Vyc2l2ZSBpbnN0YWxsLWRhdGEtcmVj dXJzaXZlIFwKKysJaW5zdGFsbC1kdmktcmVjdXJzaXZlIGluc3RhbGwtZXhlYy1yZWN1cnNpdmUg XAorKwlpbnN0YWxsLWh0bWwtcmVjdXJzaXZlIGluc3RhbGwtaW5mby1yZWN1cnNpdmUgXAorKwlp bnN0YWxsLXBkZi1yZWN1cnNpdmUgaW5zdGFsbC1wcy1yZWN1cnNpdmUgaW5zdGFsbC1yZWN1cnNp dmUgXAorKwlpbnN0YWxsY2hlY2stcmVjdXJzaXZlIGluc3RhbGxkaXJzLXJlY3Vyc2l2ZSBwZGYt cmVjdXJzaXZlIFwKKysJcHMtcmVjdXJzaXZlIHVuaW5zdGFsbC1yZWN1cnNpdmUKKytSRUNVUlNJ VkVfQ0xFQU5fVEFSR0VUUyA9IG1vc3RseWNsZWFuLXJlY3Vyc2l2ZSBjbGVhbi1yZWN1cnNpdmUJ XAorKyAgZGlzdGNsZWFuLXJlY3Vyc2l2ZSBtYWludGFpbmVyLWNsZWFuLXJlY3Vyc2l2ZQorK0FN X1JFQ1VSU0lWRV9UQVJHRVRTID0gJChSRUNVUlNJVkVfVEFSR0VUUzotcmVjdXJzaXZlPSkgXAor KwkkKFJFQ1VSU0lWRV9DTEVBTl9UQVJHRVRTOi1yZWN1cnNpdmU9KSB0YWdzIFRBR1MgY3RhZ3Mg Q1RBR1MgXAorKwlkaXN0ZGlyCisrRVRBR1MgPSBldGFncworK0NUQUdTID0gY3RhZ3MKKytESVNU X1NVQkRJUlMgPSAkKFNVQkRJUlMpCisrRElTVEZJTEVTID0gJChESVNUX0NPTU1PTikgJChESVNU X1NPVVJDRVMpICQoVEVYSU5GT1MpICQoRVhUUkFfRElTVCkKKythbV9fcmVsYXRpdml6ZSA9IFwK KysgIGRpcjA9YHB3ZGA7IFwKKysgIHNlZF9maXJzdD0ncyxeXChbXi9dKlwpLy4qJCQsXDEsJzsg XAorKyAgc2VkX3Jlc3Q9J3MsXlteL10qLyosLCc7IFwKKysgIHNlZF9sYXN0PSdzLF4uKi9cKFte L10qXCkkJCxcMSwnOyBcCisrICBzZWRfYnV0bGFzdD0ncywvKlteL10qJCQsLCc7IFwKKysgIHdo aWxlIHRlc3QgLW4gIiQkZGlyMSI7IGRvIFwKKysgICAgZmlyc3Q9YGVjaG8gIiQkZGlyMSIgfCBz ZWQgLWUgIiQkc2VkX2ZpcnN0ImA7IFwKKysgICAgaWYgdGVzdCAiJCRmaXJzdCIgIT0gIi4iOyB0 aGVuIFwKKysgICAgICBpZiB0ZXN0ICIkJGZpcnN0IiA9ICIuLiI7IHRoZW4gXAorKyAgICAgICAg ZGlyMj1gZWNobyAiJCRkaXIwIiB8IHNlZCAtZSAiJCRzZWRfbGFzdCJgLyIkJGRpcjIiOyBcCisr ICAgICAgICBkaXIwPWBlY2hvICIkJGRpcjAiIHwgc2VkIC1lICIkJHNlZF9idXRsYXN0ImA7IFwK KysgICAgICBlbHNlIFwKKysgICAgICAgIGZpcnN0Mj1gZWNobyAiJCRkaXIyIiB8IHNlZCAtZSAi JCRzZWRfZmlyc3QiYDsgXAorKyAgICAgICAgaWYgdGVzdCAiJCRmaXJzdDIiID0gIiQkZmlyc3Qi OyB0aGVuIFwKKysgICAgICAgICAgZGlyMj1gZWNobyAiJCRkaXIyIiB8IHNlZCAtZSAiJCRzZWRf cmVzdCJgOyBcCisrICAgICAgICBlbHNlIFwKKysgICAgICAgICAgZGlyMj0iLi4vJCRkaXIyIjsg XAorKyAgICAgICAgZmk7IFwKKysgICAgICAgIGRpcjA9IiQkZGlyMCIvIiQkZmlyc3QiOyBcCisr ICAgICAgZmk7IFwKKysgICAgZmk7IFwKKysgICAgZGlyMT1gZWNobyAiJCRkaXIxIiB8IHNlZCAt ZSAiJCRzZWRfcmVzdCJgOyBcCisrICBkb25lOyBcCisrICByZWxkaXI9IiQkZGlyMiIKKytBQ0xP Q0FMID0gQEFDTE9DQUxACisrQU1UQVIgPSBAQU1UQVJACisrQVIgPSBAQVJACisrQVVUT0NPTkYg PSBAQVVUT0NPTkZACisrQVVUT0hFQURFUiA9IEBBVVRPSEVBREVSQAorK0FVVE9NQUtFID0gQEFV VE9NQUtFQAorK0FXSyA9IEBBV0tACisrQk9PU1RfQ0ZMQUdTID0gQEJPT1NUX0NGTEFHU0AKKytC T09TVF9EQVRFX1RJTUVfTElCID0gQEJPT1NUX0RBVEVfVElNRV9MSUJACisrQk9PU1RfRklMRVNZ U1RFTV9MSUIgPSBAQk9PU1RfRklMRVNZU1RFTV9MSUJACisrQk9PU1RfSU9TVFJFQU1TX0xJQiA9 IEBCT09TVF9JT1NUUkVBTVNfTElCQAorK0JPT1NUX0xJQlMgPSBAQk9PU1RfTElCU0AKKytCT09T VF9NUElfTElCID0gQEJPT1NUX01QSV9MSUJACisrQk9PU1RfTVBJX1BZVEhPTl9MSUIgPSBAQk9P U1RfTVBJX1BZVEhPTl9MSUJACisrQk9PU1RfUFJPR1JBTV9PUFRJT05TX0xJQiA9IEBCT09TVF9Q Uk9HUkFNX09QVElPTlNfTElCQAorK0JPT1NUX1BZVEhPTl9MSUIgPSBAQk9PU1RfUFlUSE9OX0xJ QkAKKytCT09TVF9SRUdFWF9MSUIgPSBAQk9PU1RfUkVHRVhfTElCQAorK0JPT1NUX1NFUklBTEla QVRJT05fTElCID0gQEJPT1NUX1NFUklBTElaQVRJT05fTElCQAorK0JPT1NUX1NJR05BTFNfTElC ID0gQEJPT1NUX1NJR05BTFNfTElCQAorK0JPT1NUX1NZU1RFTV9MSUIgPSBAQk9PU1RfU1lTVEVN X0xJQkAKKytCT09TVF9USFJFQURfTElCID0gQEJPT1NUX1RIUkVBRF9MSUJACisrQk9PU1RfVU5J VF9URVNUX0ZSQU1FV09SS19MSUIgPSBAQk9PU1RfVU5JVF9URVNUX0ZSQU1FV09SS19MSUJACisr Qk9PU1RfVkVSU0lPTiA9IEBCT09TVF9WRVJTSU9OQAorK0JPT1NUX1dTRVJJQUxJWkFUSU9OX0xJ QiA9IEBCT09TVF9XU0VSSUFMSVpBVElPTl9MSUJACisrQ0MgPSBAQ0NACisrQ0NERVBNT0RFID0g QENDREVQTU9ERUAKKytDRkxBR1MgPSBAQ0ZMQUdTQAorK0NQUCA9IEBDUFBACisrQ1BQRkxBR1Mg PSBAQ1BQRkxBR1NACisrQ1BQVU5JVF9DRkxBR1MgPSBAQ1BQVU5JVF9DRkxBR1NACisrQ1BQVU5J VF9DT05GSUcgPSBAQ1BQVU5JVF9DT05GSUdACisrQ1BQVU5JVF9MSUJTID0gQENQUFVOSVRfTElC U0AKKytDUFBVTklUX1ZFUlNJT04gPSBAQ1BQVU5JVF9WRVJTSU9OQAorK0NYWCA9IEBDWFhACisr Q1hYQ1BQID0gQENYWENQUEAKKytDWFhERVBNT0RFID0gQENYWERFUE1PREVACisrQ1hYRkxBR1Mg PSBAQ1hYRkxBR1NACisrQ1lHUEFUSF9XID0gQENZR1BBVEhfV0AKKytERUZTID0gQERFRlNACisr REVQRElSID0gQERFUERJUkAKKytEU1lNVVRJTCA9IEBEU1lNVVRJTEAKKytEVU1QQklOID0gQERV TVBCSU5ACisrRUNIT19DID0gQEVDSE9fQ0AKKytFQ0hPX04gPSBARUNIT19OQAorK0VDSE9fVCA9 IEBFQ0hPX1RACisrRUdSRVAgPSBARUdSRVBACisrRVhFRVhUID0gQEVYRUVYVEAKKytGR1JFUCA9 IEBGR1JFUEAKKytHRU5FUklDX0xJQlJBUllfVkVSU0lPTiA9IEBHRU5FUklDX0xJQlJBUllfVkVS U0lPTkAKKytHUkVQID0gQEdSRVBACisrSU5TVEFMTCA9IEBJTlNUQUxMQAorK0lOU1RBTExfREFU QSA9IEBJTlNUQUxMX0RBVEFACisrSU5TVEFMTF9QUk9HUkFNID0gQElOU1RBTExfUFJPR1JBTUAK KytJTlNUQUxMX1NDUklQVCA9IEBJTlNUQUxMX1NDUklQVEAKKytJTlNUQUxMX1NUUklQX1BST0dS QU0gPSBASU5TVEFMTF9TVFJJUF9QUk9HUkFNQAorK0xEID0gQExEQAorK0xERkxBR1MgPSBATERG TEFHU0AKKytMSUJPQkpTID0gQExJQk9CSlNACisrTElCUyA9IEBMSUJTQAorK0xJQlRPT0wgPSBA TElCVE9PTEAKKytMSVBPID0gQExJUE9ACisrTE5fUyA9IEBMTl9TQAorK0xUTElCT0JKUyA9IEBM VExJQk9CSlNACisrTUFLRUlORk8gPSBATUFLRUlORk9ACisrTUtESVJfUCA9IEBNS0RJUl9QQAor K01ZU1FMX0NGTEFHUyA9IEBNWVNRTF9DRkxBR1NACisrTVlTUUxfQ19MSUIgPSBATVlTUUxfQ19M SUJACisrTVlTUUxfRElSUyA9IEBNWVNRTF9ESVJTQAorK01ZU1FMX0xJQlMgPSBATVlTUUxfTElC U0AKKytNWVNRTF9WRVJTSU9OID0gQE1ZU1FMX1ZFUlNJT05ACisrTk0gPSBATk1ACisrTk1FRElU ID0gQE5NRURJVEAKKytPQkpEVU1QID0gQE9CSkRVTVBACisrT0JKRVhUID0gQE9CSkVYVEAKKytP UkFDTEVfRElSUyA9IEBPUkFDTEVfRElSU0AKKytPUkFDTEVfT0NJX0NGTEFHUyA9IEBPUkFDTEVf T0NJX0NGTEFHU0AKKytPUkFDTEVfT0NJX0xERkxBR1MgPSBAT1JBQ0xFX09DSV9MREZMQUdTQAor K09SQUNMRV9PQ0lfVkVSU0lPTiA9IEBPUkFDTEVfT0NJX1ZFUlNJT05ACisrT1RPT0wgPSBAT1RP T0xACisrT1RPT0w2NCA9IEBPVE9PTDY0QAorK1BBQ0tBR0UgPSBAUEFDS0FHRUAKKytQQUNLQUdF X0JVR1JFUE9SVCA9IEBQQUNLQUdFX0JVR1JFUE9SVEAKKytQQUNLQUdFX05BTUUgPSBAUEFDS0FH RV9OQU1FQAorK1BBQ0tBR0VfU1RSSU5HID0gQFBBQ0tBR0VfU1RSSU5HQAorK1BBQ0tBR0VfVEFS TkFNRSA9IEBQQUNLQUdFX1RBUk5BTUVACisrUEFDS0FHRV9WRVJTSU9OID0gQFBBQ0tBR0VfVkVS U0lPTkAKKytQQVRIX1NFUEFSQVRPUiA9IEBQQVRIX1NFUEFSQVRPUkAKKytQRVJMID0gQFBFUkxA CisrUEdfQ09ORklHID0gQFBHX0NPTkZJR0AKKytQT1NUR1JFU1FMX0NGTEFHUyA9IEBQT1NUR1JF U1FMX0NGTEFHU0AKKytQT1NUR1JFU1FMX0RJUlMgPSBAUE9TVEdSRVNRTF9ESVJTQAorK1BPU1RH UkVTUUxfTERGTEFHUyA9IEBQT1NUR1JFU1FMX0xERkxBR1NACisrUE9TVEdSRVNRTF9WRVJTSU9O ID0gQFBPU1RHUkVTUUxfVkVSU0lPTkAKKytSQU5MSUIgPSBAUkFOTElCQAorK1JQTV9SRUxFQVNF ID0gQFJQTV9SRUxFQVNFQAorK1NFRCA9IEBTRURACisrU0VUX01BS0UgPSBAU0VUX01BS0VACisr U0hFTEwgPSBAU0hFTExACisrU09DSV9IRUFERVJTX0JVUklFRCA9IEBTT0NJX0hFQURFUlNfQlVS SUVEQAorK1NPQ0lfTVlTUUxfSEVBREVSU19CVVJJRUQgPSBAU09DSV9NWVNRTF9IRUFERVJTX0JV UklFREAKKytTT0NJX1BPU1RHUkVTUUxfSEVBREVSU19CVVJJRUQgPSBAU09DSV9QT1NUR1JFU1FM X0hFQURFUlNfQlVSSUVEQAorK1NUUklQID0gQFNUUklQQAorK1VQTE9BRF9DT01NQU5EID0gQFVQ TE9BRF9DT01NQU5EQAorK1ZFUlNJT04gPSBAVkVSU0lPTkAKKythYnNfYnVpbGRkaXIgPSBAYWJz X2J1aWxkZGlyQAorK2Fic19zcmNkaXIgPSBAYWJzX3NyY2RpckAKKythYnNfdG9wX2J1aWxkZGly ID0gQGFic190b3BfYnVpbGRkaXJACisrYWJzX3RvcF9zcmNkaXIgPSBAYWJzX3RvcF9zcmNkaXJA CisrYWNfY3RfQ0MgPSBAYWNfY3RfQ0NACisrYWNfY3RfQ1hYID0gQGFjX2N0X0NYWEAKKythY19j dF9EVU1QQklOID0gQGFjX2N0X0RVTVBCSU5ACisrYW1fX2luY2x1ZGUgPSBAYW1fX2luY2x1ZGVA CisrYW1fX2xlYWRpbmdfZG90ID0gQGFtX19sZWFkaW5nX2RvdEAKKythbV9fcXVvdGUgPSBAYW1f X3F1b3RlQAorK2FtX190YXIgPSBAYW1fX3RhckAKKythbV9fdW50YXIgPSBAYW1fX3VudGFyQAor K2JpbmRpciA9IEBiaW5kaXJACisrYnVpbGQgPSBAYnVpbGRACisrYnVpbGRfYWxpYXMgPSBAYnVp bGRfYWxpYXNACisrYnVpbGRfY3B1ID0gQGJ1aWxkX2NwdUAKKytidWlsZF9vcyA9IEBidWlsZF9v c0AKKytidWlsZF92ZW5kb3IgPSBAYnVpbGRfdmVuZG9yQAorK2J1aWxkZGlyID0gQGJ1aWxkZGly QAorK2RhdGFkaXIgPSBAZGF0YWRpckAKKytkYXRhcm9vdGRpciA9IEBkYXRhcm9vdGRpckAKKytk aWZmX29rID0gQGRpZmZfb2tACisrZG9jZGlyID0gQGRvY2RpckAKKytkb3h5Z2VuX29rID0gQGRv eHlnZW5fb2tACisrZHZpZGlyID0gQGR2aWRpckAKKytkdmlwc19vayA9IEBkdmlwc19va0AKKytl eGVjX3ByZWZpeCA9IEBleGVjX3ByZWZpeEAKKytnc19vayA9IEBnc19va0AKKytob3N0ID0gQGhv c3RACisraG9zdF9hbGlhcyA9IEBob3N0X2FsaWFzQAorK2hvc3RfY3B1ID0gQGhvc3RfY3B1QAor K2hvc3Rfb3MgPSBAaG9zdF9vc0AKKytob3N0X3ZlbmRvciA9IEBob3N0X3ZlbmRvckAKKytodG1s ZGlyID0gQGh0bWxkaXJACisraW5jbHVkZWRpciA9IEBpbmNsdWRlZGlyQAorK2luZm9kaXIgPSBA aW5mb2RpckAKKytpbnN0YWxsX3NoID0gQGluc3RhbGxfc2hACisrbGF0ZXhfb2sgPSBAbGF0ZXhf b2tACisrbGliZGlyID0gQGxpYmRpckAKKytsaWJleGVjZGlyID0gQGxpYmV4ZWNkaXJACisrbG9j YWxlZGlyID0gQGxvY2FsZWRpckAKKytsb2NhbHN0YXRlZGlyID0gQGxvY2Fsc3RhdGVkaXJACisr bHRfRUNITyA9IEBsdF9FQ0hPQAorK21hbmRpciA9IEBtYW5kaXJACisrbWtkaXJfcCA9IEBta2Rp cl9wQAorK29sZGluY2x1ZGVkaXIgPSBAb2xkaW5jbHVkZWRpckAKKytwZGZkaXIgPSBAcGRmZGly QAorK3ByZWZpeCA9IEBwcmVmaXhACisrcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZSA9IEBwcm9ncmFt X3RyYW5zZm9ybV9uYW1lQAorK3BzZGlyID0gQHBzZGlyQAorK3NiaW5kaXIgPSBAc2JpbmRpckAK KytzZWRfb2sgPSBAc2VkX29rQAorK3NoYXJlZHN0YXRlZGlyID0gQHNoYXJlZHN0YXRlZGlyQAor K3NyY2RpciA9IEBzcmNkaXJACisrc3lzY29uZmRpciA9IEBzeXNjb25mZGlyQAorK3RhcmdldF9h bGlhcyA9IEB0YXJnZXRfYWxpYXNACisrdG9wX2J1aWxkX3ByZWZpeCA9IEB0b3BfYnVpbGRfcHJl Zml4QAorK3RvcF9idWlsZGRpciA9IEB0b3BfYnVpbGRkaXJACisrdG9wX3NyY2RpciA9IEB0b3Bf c3JjZGlyQAorK0FNX0NQUEZMQUdTID0gLUkkKHRvcF9idWlsZGRpcikgLUkkKHRvcF9zcmNkaXIp CisraHRtbF9iY2tfc291cmNlcyA9ICQodG9wX3NyY2RpcikvZG9jL2JhY2tlbmRzL2luZGV4Lmh0 bWwgXAorKwkkKHRvcF9zcmNkaXIpL2RvYy9iYWNrZW5kcy9maXJlYmlyZC5odG1sIFwKKysJJCh0 b3Bfc3JjZGlyKS9kb2MvYmFja2VuZHMvbXlzcWwuaHRtbCBcCisrCSQodG9wX3NyY2RpcikvZG9j L2JhY2tlbmRzL29kYmMuaHRtbCBcCisrCSQodG9wX3NyY2RpcikvZG9jL2JhY2tlbmRzL29yYWNs ZS5odG1sIFwKKysJJCh0b3Bfc3JjZGlyKS9kb2MvYmFja2VuZHMvcG9zdGdyZXNxbC5odG1sIFwK KysJJCh0b3Bfc3JjZGlyKS9kb2MvYmFja2VuZHMvc3FsaXRlMy5odG1sCisrCisrTUFJTlRBSU5F UkNMRUFORklMRVMgPSBNYWtlZmlsZS5pbgorK1NVQkRJUlMgPSAKKytFWFRSQV9ESVNUX0ZPUl9T T0NJX0NPTVBBVElCSUxJVFkgPSAkKGh0bWxfYmNrX3NvdXJjZXMpCisrI2ZpcmViaXJkLmh0bWwg aW5kZXguaHRtbCBteXNxbC5odG1sIG9kYmMuaHRtbCBvcmFjbGUuaHRtbCBwb3N0Z3Jlc3FsLmh0 bWwgc3FsaXRlMy5odG1sCisrRVhUUkFfRElTVCA9ICQoRVhUUkFfRElTVF9GT1JfU09DSV9DT01Q QVRJQklMSVRZKQorK2FsbDogYWxsLXJlY3Vyc2l2ZQorKworKy5TVUZGSVhFUzoKKyskKHNyY2Rp cikvTWFrZWZpbGUuaW46ICAkKHNyY2RpcikvTWFrZWZpbGUuYW0gJCh0b3Bfc3JjZGlyKS9NYWtl ZmlsZS5jb21tb24gJChzcmNkaXIpL3NvdXJjZXMubWsgJChhbV9fY29uZmlndXJlX2RlcHMpCisr CUBmb3IgZGVwIGluICQ/OyBkbyBcCisrCSAgY2FzZSAnJChhbV9fY29uZmlndXJlX2RlcHMpJyBp biBcCisrCSAgICAqJCRkZXAqKSBcCisrCSAgICAgICggY2QgJCh0b3BfYnVpbGRkaXIpICYmICQo TUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoICkgXAorKwkgICAgICAgICYmIHsgaWYg dGVzdCAtZiAkQDsgdGhlbiBleGl0IDA7IGVsc2UgYnJlYWs7IGZpOyB9OyBcCisrCSAgICAgIGV4 aXQgMTs7IFwKKysJICBlc2FjOyBcCisrCWRvbmU7IFwKKysJZWNobyAnIGNkICQodG9wX3NyY2Rp cikgJiYgJChBVVRPTUFLRSkgLS1nbnUgZG9jL2JhY2tlbmRzL01ha2VmaWxlJzsgXAorKwkkKGFt X19jZCkgJCh0b3Bfc3JjZGlyKSAmJiBcCisrCSAgJChBVVRPTUFLRSkgLS1nbnUgZG9jL2JhY2tl bmRzL01ha2VmaWxlCisrLlBSRUNJT1VTOiBNYWtlZmlsZQorK01ha2VmaWxlOiAkKHNyY2Rpcikv TWFrZWZpbGUuaW4gJCh0b3BfYnVpbGRkaXIpL2NvbmZpZy5zdGF0dXMKKysJQGNhc2UgJyQ/JyBp biBcCisrCSAgKmNvbmZpZy5zdGF0dXMqKSBcCisrCSAgICBjZCAkKHRvcF9idWlsZGRpcikgJiYg JChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2g7OyBcCisrCSAgKikgXAorKwkgICAg ZWNobyAnIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKFNIRUxMKSAuL2NvbmZpZy5zdGF0dXMgJChz dWJkaXIpLyRAICQoYW1fX2RlcGZpbGVzX21heWJlKSc7IFwKKysJICAgIGNkICQodG9wX2J1aWxk ZGlyKSAmJiAkKFNIRUxMKSAuL2NvbmZpZy5zdGF0dXMgJChzdWJkaXIpLyRAICQoYW1fX2RlcGZp bGVzX21heWJlKTs7IFwKKysJZXNhYzsKKysKKyskKHRvcF9idWlsZGRpcikvY29uZmlnLnN0YXR1 czogJCh0b3Bfc3JjZGlyKS9jb25maWd1cmUgJChDT05GSUdfU1RBVFVTX0RFUEVOREVOQ0lFUykK KysJY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZy ZXNoCisrCisrJCh0b3Bfc3JjZGlyKS9jb25maWd1cmU6ICAkKGFtX19jb25maWd1cmVfZGVwcykK KysJY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZy ZXNoCisrJChBQ0xPQ0FMX000KTogICQoYW1fX2FjbG9jYWxfbTRfZGVwcykKKysJY2QgJCh0b3Bf YnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCisrJChhbV9f YWNsb2NhbF9tNF9kZXBzKToKKysKKyttb3N0bHljbGVhbi1saWJ0b29sOgorKwktcm0gLWYgKi5s bworKworK2NsZWFuLWxpYnRvb2w6CisrCS1ybSAtcmYgLmxpYnMgX2xpYnMKKysKKysjIFRoaXMg ZGlyZWN0b3J5J3Mgc3ViZGlyZWN0b3JpZXMgYXJlIG1vc3RseSBpbmRlcGVuZGVudDsgeW91IGNh biBjZAorKyMgaW50byB0aGVtIGFuZCBydW4gYG1ha2UnIHdpdGhvdXQgZ29pbmcgdGhyb3VnaCB0 aGlzIE1ha2VmaWxlLgorKyMgVG8gY2hhbmdlIHRoZSB2YWx1ZXMgb2YgYG1ha2UnIHZhcmlhYmxl czogaW5zdGVhZCBvZiBlZGl0aW5nIE1ha2VmaWxlcywKKysjICgxKSBpZiB0aGUgdmFyaWFibGUg aXMgc2V0IGluIGBjb25maWcuc3RhdHVzJywgZWRpdCBgY29uZmlnLnN0YXR1cycKKysjICAgICAo d2hpY2ggd2lsbCBjYXVzZSB0aGUgTWFrZWZpbGVzIHRvIGJlIHJlZ2VuZXJhdGVkIHdoZW4geW91 IHJ1biBgbWFrZScpOworKyMgKDIpIG90aGVyd2lzZSwgcGFzcyB0aGUgZGVzaXJlZCB2YWx1ZXMg b24gdGhlIGBtYWtlJyBjb21tYW5kIGxpbmUuCisrJChSRUNVUlNJVkVfVEFSR0VUUyk6CisrCUBm YWlsPSBmYWlsY29tPSdleGl0IDEnOyBcCisrCWZvciBmIGluIHggJCRNQUtFRkxBR1M7IGRvIFwK KysJICBjYXNlICQkZiBpbiBcCisrCSAgICAqPSogfCAtLVsha10qKTs7IFwKKysJICAgICprKikg ZmFpbGNvbT0nZmFpbD15ZXMnOzsgXAorKwkgIGVzYWM7IFwKKysJZG9uZTsgXAorKwlkb3Rfc2Vl bj1ubzsgXAorKwl0YXJnZXQ9YGVjaG8gJEAgfCBzZWQgcy8tcmVjdXJzaXZlLy9gOyBcCisrCWxp c3Q9JyQoU1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAorKwkgIGVjaG8gIk1h a2luZyAkJHRhcmdldCBpbiAkJHN1YmRpciI7IFwKKysJICBpZiB0ZXN0ICIkJHN1YmRpciIgPSAi LiI7IHRoZW4gXAorKwkgICAgZG90X3NlZW49eWVzOyBcCisrCSAgICBsb2NhbF90YXJnZXQ9IiQk dGFyZ2V0LWFtIjsgXAorKwkgIGVsc2UgXAorKwkgICAgbG9jYWxfdGFyZ2V0PSIkJHRhcmdldCI7 IFwKKysJICBmaTsgXAorKwkgICgkKGFtX19jZCkgJCRzdWJkaXIgJiYgJChNQUtFKSAkKEFNX01B S0VGTEFHUykgJCRsb2NhbF90YXJnZXQpIFwKKysJICB8fCBldmFsICQkZmFpbGNvbTsgXAorKwlk b25lOyBcCisrCWlmIHRlc3QgIiQkZG90X3NlZW4iID0gIm5vIjsgdGhlbiBcCisrCSAgJChNQUtF KSAkKEFNX01BS0VGTEFHUykgIiQkdGFyZ2V0LWFtIiB8fCBleGl0IDE7IFwKKysJZmk7IHRlc3Qg LXogIiQkZmFpbCIKKysKKyskKFJFQ1VSU0lWRV9DTEVBTl9UQVJHRVRTKToKKysJQGZhaWw9IGZh aWxjb209J2V4aXQgMSc7IFwKKysJZm9yIGYgaW4geCAkJE1BS0VGTEFHUzsgZG8gXAorKwkgIGNh c2UgJCRmIGluIFwKKysJICAgICo9KiB8IC0tWyFrXSopOzsgXAorKwkgICAgKmsqKSBmYWlsY29t PSdmYWlsPXllcyc7OyBcCisrCSAgZXNhYzsgXAorKwlkb25lOyBcCisrCWRvdF9zZWVuPW5vOyBc CisrCWNhc2UgIiRAIiBpbiBcCisrCSAgZGlzdGNsZWFuLSogfCBtYWludGFpbmVyLWNsZWFuLSop IGxpc3Q9JyQoRElTVF9TVUJESVJTKScgOzsgXAorKwkgICopIGxpc3Q9JyQoU1VCRElSUyknIDs7 IFwKKysJZXNhYzsgXAorKwlyZXY9Jyc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCisrCSAg aWYgdGVzdCAiJCRzdWJkaXIiID0gIi4iOyB0aGVuIDo7IGVsc2UgXAorKwkgICAgcmV2PSIkJHN1 YmRpciAkJHJldiI7IFwKKysJICBmaTsgXAorKwlkb25lOyBcCisrCXJldj0iJCRyZXYgLiI7IFwK KysJdGFyZ2V0PWBlY2hvICRAIHwgc2VkIHMvLXJlY3Vyc2l2ZS8vYDsgXAorKwlmb3Igc3ViZGly IGluICQkcmV2OyBkbyBcCisrCSAgZWNobyAiTWFraW5nICQkdGFyZ2V0IGluICQkc3ViZGlyIjsg XAorKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9ICIuIjsgdGhlbiBcCisrCSAgICBsb2NhbF90YXJn ZXQ9IiQkdGFyZ2V0LWFtIjsgXAorKwkgIGVsc2UgXAorKwkgICAgbG9jYWxfdGFyZ2V0PSIkJHRh cmdldCI7IFwKKysJICBmaTsgXAorKwkgICgkKGFtX19jZCkgJCRzdWJkaXIgJiYgJChNQUtFKSAk KEFNX01BS0VGTEFHUykgJCRsb2NhbF90YXJnZXQpIFwKKysJICB8fCBldmFsICQkZmFpbGNvbTsg XAorKwlkb25lICYmIHRlc3QgLXogIiQkZmFpbCIKKyt0YWdzLXJlY3Vyc2l2ZToKKysJbGlzdD0n JChTVUJESVJTKSc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCisrCSAgdGVzdCAiJCRzdWJk aXIiID0gLiB8fCAoJChhbV9fY2QpICQkc3ViZGlyICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1Mp IHRhZ3MpOyBcCisrCWRvbmUKKytjdGFncy1yZWN1cnNpdmU6CisrCWxpc3Q9JyQoU1VCRElSUykn OyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAorKwkgIHRlc3QgIiQkc3ViZGlyIiA9IC4gfHwg KCQoYW1fX2NkKSAkJHN1YmRpciAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBjdGFncyk7IFwK KysJZG9uZQorKworK0lEOiAkKEhFQURFUlMpICQoU09VUkNFUykgJChMSVNQKSAkKFRBR1NfRklM RVMpCisrCWxpc3Q9JyQoU09VUkNFUykgJChIRUFERVJTKSAkKExJU1ApICQoVEFHU19GSUxFUykn OyBcCisrCXVuaXF1ZT1gZm9yIGkgaW4gJCRsaXN0OyBkbyBcCisrCSAgICBpZiB0ZXN0IC1mICIk JGkiOyB0aGVuIGVjaG8gJCRpOyBlbHNlIGVjaG8gJChzcmNkaXIpLyQkaTsgZmk7IFwKKysJICBk b25lIHwgXAorKwkgICQoQVdLKSAneyBmaWxlc1skJDBdID0gMTsgbm9uZW1wdHkgPSAxOyB9IFwK KysJICAgICAgRU5EIHsgaWYgKG5vbmVtcHR5KSB7IGZvciAoaSBpbiBmaWxlcykgcHJpbnQgaTsg fTsgfSdgOyBcCisrCW1raWQgLWZJRCAkJHVuaXF1ZQorK3RhZ3M6IFRBR1MKKysKKytUQUdTOiB0 YWdzLXJlY3Vyc2l2ZSAkKEhFQURFUlMpICQoU09VUkNFUykgICQoVEFHU19ERVBFTkRFTkNJRVMp IFwKKysJCSQoVEFHU19GSUxFUykgJChMSVNQKQorKwlzZXQgeDsgXAorKwloZXJlPWBwd2RgOyBc CisrCWlmICgkKEVUQUdTKSAtLWV0YWdzLWluY2x1ZGUgLS12ZXJzaW9uKSA+L2Rldi9udWxsIDI+ JjE7IHRoZW4gXAorKwkgIGluY2x1ZGVfb3B0aW9uPS0tZXRhZ3MtaW5jbHVkZTsgXAorKwkgIGVt cHR5X2ZpeD0uOyBcCisrCWVsc2UgXAorKwkgIGluY2x1ZGVfb3B0aW9uPS0taW5jbHVkZTsgXAor KwkgIGVtcHR5X2ZpeD07IFwKKysJZmk7IFwKKysJbGlzdD0nJChTVUJESVJTKSc7IGZvciBzdWJk aXIgaW4gJCRsaXN0OyBkbyBcCisrCSAgaWYgdGVzdCAiJCRzdWJkaXIiID0gLjsgdGhlbiA6OyBl bHNlIFwKKysJICAgIHRlc3QgISAtZiAkJHN1YmRpci9UQUdTIHx8IFwKKysJICAgICAgc2V0ICIk JEAiICIkJGluY2x1ZGVfb3B0aW9uPSQkaGVyZS8kJHN1YmRpci9UQUdTIjsgXAorKwkgIGZpOyBc CisrCWRvbmU7IFwKKysJbGlzdD0nJChTT1VSQ0VTKSAkKEhFQURFUlMpICAkKExJU1ApICQoVEFH U19GSUxFUyknOyBcCisrCXVuaXF1ZT1gZm9yIGkgaW4gJCRsaXN0OyBkbyBcCisrCSAgICBpZiB0 ZXN0IC1mICIkJGkiOyB0aGVuIGVjaG8gJCRpOyBlbHNlIGVjaG8gJChzcmNkaXIpLyQkaTsgZmk7 IFwKKysJICBkb25lIHwgXAorKwkgICQoQVdLKSAneyBmaWxlc1skJDBdID0gMTsgbm9uZW1wdHkg PSAxOyB9IFwKKysJICAgICAgRU5EIHsgaWYgKG5vbmVtcHR5KSB7IGZvciAoaSBpbiBmaWxlcykg cHJpbnQgaTsgfTsgfSdgOyBcCisrCXNoaWZ0OyBcCisrCWlmIHRlc3QgLXogIiQoRVRBR1NfQVJH UykkJCokJHVuaXF1ZSI7IHRoZW4gOjsgZWxzZSBcCisrCSAgdGVzdCAtbiAiJCR1bmlxdWUiIHx8 IHVuaXF1ZT0kJGVtcHR5X2ZpeDsgXAorKwkgIGlmIHRlc3QgJCQjIC1ndCAwOyB0aGVuIFwKKysJ ICAgICQoRVRBR1MpICQoRVRBR1NGTEFHUykgJChBTV9FVEFHU0ZMQUdTKSAkKEVUQUdTX0FSR1Mp IFwKKysJICAgICAgIiQkQCIgJCR1bmlxdWU7IFwKKysJICBlbHNlIFwKKysJICAgICQoRVRBR1Mp ICQoRVRBR1NGTEFHUykgJChBTV9FVEFHU0ZMQUdTKSAkKEVUQUdTX0FSR1MpIFwKKysJICAgICAg JCR1bmlxdWU7IFwKKysJICBmaTsgXAorKwlmaQorK2N0YWdzOiBDVEFHUworK0NUQUdTOiBjdGFn cy1yZWN1cnNpdmUgJChIRUFERVJTKSAkKFNPVVJDRVMpICAkKFRBR1NfREVQRU5ERU5DSUVTKSBc CisrCQkkKFRBR1NfRklMRVMpICQoTElTUCkKKysJbGlzdD0nJChTT1VSQ0VTKSAkKEhFQURFUlMp ICAkKExJU1ApICQoVEFHU19GSUxFUyknOyBcCisrCXVuaXF1ZT1gZm9yIGkgaW4gJCRsaXN0OyBk byBcCisrCSAgICBpZiB0ZXN0IC1mICIkJGkiOyB0aGVuIGVjaG8gJCRpOyBlbHNlIGVjaG8gJChz cmNkaXIpLyQkaTsgZmk7IFwKKysJICBkb25lIHwgXAorKwkgICQoQVdLKSAneyBmaWxlc1skJDBd ID0gMTsgbm9uZW1wdHkgPSAxOyB9IFwKKysJICAgICAgRU5EIHsgaWYgKG5vbmVtcHR5KSB7IGZv ciAoaSBpbiBmaWxlcykgcHJpbnQgaTsgfTsgfSdgOyBcCisrCXRlc3QgLXogIiQoQ1RBR1NfQVJH UykkJHVuaXF1ZSIgXAorKwkgIHx8ICQoQ1RBR1MpICQoQ1RBR1NGTEFHUykgJChBTV9DVEFHU0ZM QUdTKSAkKENUQUdTX0FSR1MpIFwKKysJICAgICAkJHVuaXF1ZQorKworK0dUQUdTOgorKwloZXJl PWAkKGFtX19jZCkgJCh0b3BfYnVpbGRkaXIpICYmIHB3ZGAgXAorKwkgICYmICQoYW1fX2NkKSAk KHRvcF9zcmNkaXIpIFwKKysJICAmJiBndGFncyAtaSAkKEdUQUdTX0FSR1MpICIkJGhlcmUiCisr CisrZGlzdGNsZWFuLXRhZ3M6CisrCS1ybSAtZiBUQUdTIElEIEdUQUdTIEdSVEFHUyBHU1lNUyBH UEFUSCB0YWdzCisrCisrZGlzdGRpcjogJChESVNURklMRVMpCisrCUBzcmNkaXJzdHJpcD1gZWNo byAiJChzcmNkaXIpIiB8IHNlZCAncy9bXS5bXiQkXFwqXS9cXFxcJi9nJ2A7IFwKKysJdG9wc3Jj ZGlyc3RyaXA9YGVjaG8gIiQodG9wX3NyY2RpcikiIHwgc2VkICdzL1tdLlteJCRcXCpdL1xcXFwm L2cnYDsgXAorKwlsaXN0PSckKERJU1RGSUxFUyknOyBcCisrCSAgZGlzdF9maWxlcz1gZm9yIGZp bGUgaW4gJCRsaXN0OyBkbyBlY2hvICQkZmlsZTsgZG9uZSB8IFwKKysJICBzZWQgLWUgInN8XiQk c3JjZGlyc3RyaXAvfHw7dCIgXAorKwkgICAgICAtZSAic3xeJCR0b3BzcmNkaXJzdHJpcC98JCh0 b3BfYnVpbGRkaXIpL3w7dCJgOyBcCisrCWNhc2UgJCRkaXN0X2ZpbGVzIGluIFwKKysJICAqLyop ICQoTUtESVJfUCkgYGVjaG8gIiQkZGlzdF9maWxlcyIgfCBcCisrCQkJICAgc2VkICcvXC8vIWQ7 c3xefCQoZGlzdGRpcikvfDtzLC9bXi9dKiQkLCwnIHwgXAorKwkJCSAgIHNvcnQgLXVgIDs7IFwK KysJZXNhYzsgXAorKwlmb3IgZmlsZSBpbiAkJGRpc3RfZmlsZXM7IGRvIFwKKysJICBpZiB0ZXN0 IC1mICQkZmlsZSB8fCB0ZXN0IC1kICQkZmlsZTsgdGhlbiBkPS47IGVsc2UgZD0kKHNyY2Rpcik7 IGZpOyBcCisrCSAgaWYgdGVzdCAtZCAkJGQvJCRmaWxlOyB0aGVuIFwKKysJICAgIGRpcj1gZWNo byAiLyQkZmlsZSIgfCBzZWQgLWUgJ3MsL1teL10qJCQsLCdgOyBcCisrCSAgICBpZiB0ZXN0IC1k ICIkKGRpc3RkaXIpLyQkZmlsZSI7IHRoZW4gXAorKwkgICAgICBmaW5kICIkKGRpc3RkaXIpLyQk ZmlsZSIgLXR5cGUgZCAhIC1wZXJtIC03MDAgLWV4ZWMgY2htb2QgdStyd3gge30gXDs7IFwKKysJ ICAgIGZpOyBcCisrCSAgICBpZiB0ZXN0IC1kICQoc3JjZGlyKS8kJGZpbGUgJiYgdGVzdCAkJGQg IT0gJChzcmNkaXIpOyB0aGVuIFwKKysJICAgICAgY3AgLWZwUiAkKHNyY2RpcikvJCRmaWxlICIk KGRpc3RkaXIpJCRkaXIiIHx8IGV4aXQgMTsgXAorKwkgICAgICBmaW5kICIkKGRpc3RkaXIpLyQk ZmlsZSIgLXR5cGUgZCAhIC1wZXJtIC03MDAgLWV4ZWMgY2htb2QgdStyd3gge30gXDs7IFwKKysJ ICAgIGZpOyBcCisrCSAgICBjcCAtZnBSICQkZC8kJGZpbGUgIiQoZGlzdGRpcikkJGRpciIgfHwg ZXhpdCAxOyBcCisrCSAgZWxzZSBcCisrCSAgICB0ZXN0IC1mICIkKGRpc3RkaXIpLyQkZmlsZSIg XAorKwkgICAgfHwgY3AgLXAgJCRkLyQkZmlsZSAiJChkaXN0ZGlyKS8kJGZpbGUiIFwKKysJICAg IHx8IGV4aXQgMTsgXAorKwkgIGZpOyBcCisrCWRvbmUKKysJQGxpc3Q9JyQoRElTVF9TVUJESVJT KSc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCisrCSAgaWYgdGVzdCAiJCRzdWJkaXIiID0g LjsgdGhlbiA6OyBlbHNlIFwKKysJICAgIHRlc3QgLWQgIiQoZGlzdGRpcikvJCRzdWJkaXIiIFwK KysJICAgIHx8ICQoTUtESVJfUCkgIiQoZGlzdGRpcikvJCRzdWJkaXIiIFwKKysJICAgIHx8IGV4 aXQgMTsgXAorKwkgIGZpOyBcCisrCWRvbmUKKysJQGxpc3Q9JyQoRElTVF9TVUJESVJTKSc7IGZv ciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCisrCSAgaWYgdGVzdCAiJCRzdWJkaXIiID0gLjsgdGhl biA6OyBlbHNlIFwKKysJICAgIGRpcjE9JCRzdWJkaXI7IGRpcjI9IiQoZGlzdGRpcikvJCRzdWJk aXIiOyBcCisrCSAgICAkKGFtX19yZWxhdGl2aXplKTsgXAorKwkgICAgbmV3X2Rpc3RkaXI9JCRy ZWxkaXI7IFwKKysJICAgIGRpcjE9JCRzdWJkaXI7IGRpcjI9IiQodG9wX2Rpc3RkaXIpIjsgXAor KwkgICAgJChhbV9fcmVsYXRpdml6ZSk7IFwKKysJICAgIG5ld190b3BfZGlzdGRpcj0kJHJlbGRp cjsgXAorKwkgICAgZWNobyAiIChjZCAkJHN1YmRpciAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdT KSB0b3BfZGlzdGRpcj0iJCRuZXdfdG9wX2Rpc3RkaXIiIGRpc3RkaXI9IiQkbmV3X2Rpc3RkaXIi IFxcIjsgXAorKwkgICAgZWNobyAiICAgICBhbV9fcmVtb3ZlX2Rpc3RkaXI9OiBhbV9fc2tpcF9s ZW5ndGhfY2hlY2s9OiBhbV9fc2tpcF9tb2RlX2ZpeD06IGRpc3RkaXIpIjsgXAorKwkgICAgKCQo YW1fX2NkKSAkJHN1YmRpciAmJiBcCisrCSAgICAgICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIFwK KysJICAgICAgICB0b3BfZGlzdGRpcj0iJCRuZXdfdG9wX2Rpc3RkaXIiIFwKKysJICAgICAgICBk aXN0ZGlyPSIkJG5ld19kaXN0ZGlyIiBcCisrCQlhbV9fcmVtb3ZlX2Rpc3RkaXI9OiBcCisrCQlh bV9fc2tpcF9sZW5ndGhfY2hlY2s9OiBcCisrCQlhbV9fc2tpcF9tb2RlX2ZpeD06IFwKKysJICAg ICAgICBkaXN0ZGlyKSBcCisrCSAgICAgIHx8IGV4aXQgMTsgXAorKwkgIGZpOyBcCisrCWRvbmUK KytjaGVjay1hbTogYWxsLWFtCisrY2hlY2s6IGNoZWNrLXJlY3Vyc2l2ZQorK2FsbC1hbTogTWFr ZWZpbGUKKytpbnN0YWxsZGlyczogaW5zdGFsbGRpcnMtcmVjdXJzaXZlCisraW5zdGFsbGRpcnMt YW06CisraW5zdGFsbDogaW5zdGFsbC1yZWN1cnNpdmUKKytpbnN0YWxsLWV4ZWM6IGluc3RhbGwt ZXhlYy1yZWN1cnNpdmUKKytpbnN0YWxsLWRhdGE6IGluc3RhbGwtZGF0YS1yZWN1cnNpdmUKKyt1 bmluc3RhbGw6IHVuaW5zdGFsbC1yZWN1cnNpdmUKKysKKytpbnN0YWxsLWFtOiBhbGwtYW0KKysJ QCQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGluc3RhbGwtZXhlYy1hbSBpbnN0YWxsLWRhdGEtYW0K KysKKytpbnN0YWxsY2hlY2s6IGluc3RhbGxjaGVjay1yZWN1cnNpdmUKKytpbnN0YWxsLXN0cmlw OgorKwkkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBJTlNUQUxMX1BST0dSQU09IiQoSU5TVEFMTF9T VFJJUF9QUk9HUkFNKSIgXAorKwkgIGluc3RhbGxfc2hfUFJPR1JBTT0iJChJTlNUQUxMX1NUUklQ X1BST0dSQU0pIiBJTlNUQUxMX1NUUklQX0ZMQUc9LXMgXAorKwkgIGB0ZXN0IC16ICckKFNUUklQ KScgfHwgXAorKwkgICAgZWNobyAiSU5TVEFMTF9QUk9HUkFNX0VOVj1TVFJJUFBST0c9JyQoU1RS SVApJyJgIGluc3RhbGwKKyttb3N0bHljbGVhbi1nZW5lcmljOgorKworK2NsZWFuLWdlbmVyaWM6 CisrCisrZGlzdGNsZWFuLWdlbmVyaWM6CisrCS10ZXN0IC16ICIkKENPTkZJR19DTEVBTl9GSUxF UykiIHx8IHJtIC1mICQoQ09ORklHX0NMRUFOX0ZJTEVTKQorKwktdGVzdCAuID0gIiQoc3JjZGly KSIgfHwgdGVzdCAteiAiJChDT05GSUdfQ0xFQU5fVlBBVEhfRklMRVMpIiB8fCBybSAtZiAkKENP TkZJR19DTEVBTl9WUEFUSF9GSUxFUykKKysKKyttYWludGFpbmVyLWNsZWFuLWdlbmVyaWM6Cisr CUBlY2hvICJUaGlzIGNvbW1hbmQgaXMgaW50ZW5kZWQgZm9yIG1haW50YWluZXJzIHRvIHVzZSIK KysJQGVjaG8gIml0IGRlbGV0ZXMgZmlsZXMgdGhhdCBtYXkgcmVxdWlyZSBzcGVjaWFsIHRvb2xz IHRvIHJlYnVpbGQuIgorKwktdGVzdCAteiAiJChNQUlOVEFJTkVSQ0xFQU5GSUxFUykiIHx8IHJt IC1mICQoTUFJTlRBSU5FUkNMRUFORklMRVMpCisrY2xlYW46IGNsZWFuLXJlY3Vyc2l2ZQorKwor K2NsZWFuLWFtOiBjbGVhbi1nZW5lcmljIGNsZWFuLWxpYnRvb2wgbW9zdGx5Y2xlYW4tYW0KKysK KytkaXN0Y2xlYW46IGRpc3RjbGVhbi1yZWN1cnNpdmUKKysJLXJtIC1mIE1ha2VmaWxlCisrZGlz dGNsZWFuLWFtOiBjbGVhbi1hbSBkaXN0Y2xlYW4tZ2VuZXJpYyBkaXN0Y2xlYW4tdGFncworKwor K2R2aTogZHZpLXJlY3Vyc2l2ZQorKworK2R2aS1hbToKKysKKytodG1sOiBodG1sLXJlY3Vyc2l2 ZQorKworK2h0bWwtYW06CisrCisraW5mbzogaW5mby1yZWN1cnNpdmUKKysKKytpbmZvLWFtOgor KworK2luc3RhbGwtZGF0YS1hbToKKysKKytpbnN0YWxsLWR2aTogaW5zdGFsbC1kdmktcmVjdXJz aXZlCisrCisraW5zdGFsbC1kdmktYW06CisrCisraW5zdGFsbC1leGVjLWFtOgorKworK2luc3Rh bGwtaHRtbDogaW5zdGFsbC1odG1sLXJlY3Vyc2l2ZQorKworK2luc3RhbGwtaHRtbC1hbToKKysK KytpbnN0YWxsLWluZm86IGluc3RhbGwtaW5mby1yZWN1cnNpdmUKKysKKytpbnN0YWxsLWluZm8t YW06CisrCisraW5zdGFsbC1tYW46CisrCisraW5zdGFsbC1wZGY6IGluc3RhbGwtcGRmLXJlY3Vy c2l2ZQorKworK2luc3RhbGwtcGRmLWFtOgorKworK2luc3RhbGwtcHM6IGluc3RhbGwtcHMtcmVj dXJzaXZlCisrCisraW5zdGFsbC1wcy1hbToKKysKKytpbnN0YWxsY2hlY2stYW06CisrCisrbWFp bnRhaW5lci1jbGVhbjogbWFpbnRhaW5lci1jbGVhbi1yZWN1cnNpdmUKKysJLXJtIC1mIE1ha2Vm aWxlCisrbWFpbnRhaW5lci1jbGVhbi1hbTogZGlzdGNsZWFuLWFtIG1haW50YWluZXItY2xlYW4t Z2VuZXJpYworKworK21vc3RseWNsZWFuOiBtb3N0bHljbGVhbi1yZWN1cnNpdmUKKysKKyttb3N0 bHljbGVhbi1hbTogbW9zdGx5Y2xlYW4tZ2VuZXJpYyBtb3N0bHljbGVhbi1saWJ0b29sCisrCisr cGRmOiBwZGYtcmVjdXJzaXZlCisrCisrcGRmLWFtOgorKworK3BzOiBwcy1yZWN1cnNpdmUKKysK Kytwcy1hbToKKysKKyt1bmluc3RhbGwtYW06CisrCisrLk1BS0U6ICQoUkVDVVJTSVZFX0NMRUFO X1RBUkdFVFMpICQoUkVDVVJTSVZFX1RBUkdFVFMpIGN0YWdzLXJlY3Vyc2l2ZSBcCisrCWluc3Rh bGwtYW0gaW5zdGFsbC1zdHJpcCB0YWdzLXJlY3Vyc2l2ZQorKworKy5QSE9OWTogJChSRUNVUlNJ VkVfQ0xFQU5fVEFSR0VUUykgJChSRUNVUlNJVkVfVEFSR0VUUykgQ1RBR1MgR1RBR1MgXAorKwlh bGwgYWxsLWFtIGNoZWNrIGNoZWNrLWFtIGNsZWFuIGNsZWFuLWdlbmVyaWMgY2xlYW4tbGlidG9v bCBcCisrCWN0YWdzIGN0YWdzLXJlY3Vyc2l2ZSBkaXN0Y2xlYW4gZGlzdGNsZWFuLWdlbmVyaWMg XAorKwlkaXN0Y2xlYW4tbGlidG9vbCBkaXN0Y2xlYW4tdGFncyBkaXN0ZGlyIGR2aSBkdmktYW0g aHRtbCBcCisrCWh0bWwtYW0gaW5mbyBpbmZvLWFtIGluc3RhbGwgaW5zdGFsbC1hbSBpbnN0YWxs LWRhdGEgXAorKwlpbnN0YWxsLWRhdGEtYW0gaW5zdGFsbC1kdmkgaW5zdGFsbC1kdmktYW0gaW5z dGFsbC1leGVjIFwKKysJaW5zdGFsbC1leGVjLWFtIGluc3RhbGwtaHRtbCBpbnN0YWxsLWh0bWwt YW0gaW5zdGFsbC1pbmZvIFwKKysJaW5zdGFsbC1pbmZvLWFtIGluc3RhbGwtbWFuIGluc3RhbGwt cGRmIGluc3RhbGwtcGRmLWFtIFwKKysJaW5zdGFsbC1wcyBpbnN0YWxsLXBzLWFtIGluc3RhbGwt c3RyaXAgaW5zdGFsbGNoZWNrIFwKKysJaW5zdGFsbGNoZWNrLWFtIGluc3RhbGxkaXJzIGluc3Rh bGxkaXJzLWFtIG1haW50YWluZXItY2xlYW4gXAorKwltYWludGFpbmVyLWNsZWFuLWdlbmVyaWMg bW9zdGx5Y2xlYW4gbW9zdGx5Y2xlYW4tZ2VuZXJpYyBcCisrCW1vc3RseWNsZWFuLWxpYnRvb2wg cGRmIHBkZi1hbSBwcyBwcy1hbSB0YWdzIHRhZ3MtcmVjdXJzaXZlIFwKKysJdW5pbnN0YWxsIHVu aW5zdGFsbC1hbQorKworK0BTRVRfTUFLRUAKKysKKysjcGtnZGF0YWRpciA9ICQoaHRtbF9iY2tf c291cmNlcykKKysKKysjIFRlbGwgdmVyc2lvbnMgWzMuNTksMy42Mykgb2YgR05VIG1ha2UgdG8g bm90IGV4cG9ydCBhbGwgdmFyaWFibGVzLgorKyMgT3RoZXJ3aXNlIGEgc3lzdGVtIGxpbWl0IChm b3IgU3lzViBhdCBsZWFzdCkgbWF5IGJlIGV4Y2VlZGVkLgorKy5OT0VYUE9SVDoKK2RpZmYgLU51 ciBzb2NpLTMuMC4wXzQtcGFjay9kb2MvYmFja2VuZHMvc291cmNlcy5tayBzb2NpLTMuMC4wX3Ry ZXAzMDAvZG9jL2JhY2tlbmRzL3NvdXJjZXMubWsKKy0tLSBzb2NpLTMuMC4wXzQtcGFjay9kb2Mv YmFja2VuZHMvc291cmNlcy5tawkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAor KysrIHNvY2ktMy4wLjBfdHJlcDMwMC9kb2MvYmFja2VuZHMvc291cmNlcy5tawkyMDA5LTA0LTE2 IDE5OjQ3OjUzLjAwMDAwMDAwMCArMDIwMAorQEAgLTAsMCArMSw3IEBACisraHRtbF9iY2tfc291 cmNlcyA9ICQodG9wX3NyY2RpcikvZG9jL2JhY2tlbmRzL2luZGV4Lmh0bWwgXAorKwkkKHRvcF9z cmNkaXIpL2RvYy9iYWNrZW5kcy9maXJlYmlyZC5odG1sIFwKKysJJCh0b3Bfc3JjZGlyKS9kb2Mv YmFja2VuZHMvbXlzcWwuaHRtbCBcCisrCSQodG9wX3NyY2RpcikvZG9jL2JhY2tlbmRzL29kYmMu aHRtbCBcCisrCSQodG9wX3NyY2RpcikvZG9jL2JhY2tlbmRzL29yYWNsZS5odG1sIFwKKysJJCh0 b3Bfc3JjZGlyKS9kb2MvYmFja2VuZHMvcG9zdGdyZXNxbC5odG1sIFwKKysJJCh0b3Bfc3JjZGly KS9kb2MvYmFja2VuZHMvc3FsaXRlMy5odG1sCitkaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2sv ZG9jL01ha2VmaWxlLmFtIHNvY2ktMy4wLjBfdHJlcDMwMC9kb2MvTWFrZWZpbGUuYW0KKy0tLSBz b2NpLTMuMC4wXzQtcGFjay9kb2MvTWFrZWZpbGUuYW0JMTk3MC0wMS0wMSAwMTowMDowMC4wMDAw MDAwMDAgKzAxMDAKKysrKyBzb2NpLTMuMC4wX3RyZXAzMDAvZG9jL01ha2VmaWxlLmFtCTIwMTAt MDEtMjMgMTM6MjU6NTcuMDAwMDAwMDAwICswMTAwCitAQCAtMCwwICsxLDggQEAKKytpbmNsdWRl ICQodG9wX3NyY2RpcikvZG9jL3NvdXJjZXMubWsKKysKKytTVUJESVJTID0gYmFja2VuZHMKKysK KytFWFRSQV9ESVNUX0ZPUl9TT0NJX0NPTVBBVElCSUxJVFkgPSAkKGh0bWxfbG9jYWxfc291cmNl cykgXAorKwkkKGNzc19sb2NhbF9zb3VyY2VzKSAkKGltZ19sb2NhbF9zb3VyY2VzKQorKworK0VY VFJBX0RJU1QgPSAkKEVYVFJBX0RJU1RfRk9SX1NPQ0lfQ09NUEFUSUJJTElUWSkKK2RpZmYgLU51 ciBzb2NpLTMuMC4wXzQtcGFjay9kb2MvTWFrZWZpbGUuaW4gc29jaS0zLjAuMF90cmVwMzAwL2Rv Yy9NYWtlZmlsZS5pbgorLS0tIHNvY2ktMy4wLjBfNC1wYWNrL2RvYy9NYWtlZmlsZS5pbgkxOTcw LTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAorKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9k b2MvTWFrZWZpbGUuaW4JMjAxMC0wMS0yMyAxNDo0NDo1MS4wMDAwMDAwMDAgKzAxMDAKK0BAIC0w LDAgKzEsNjMyIEBACisrIyBNYWtlZmlsZS5pbiBnZW5lcmF0ZWQgYnkgYXV0b21ha2UgMS4xMS4x IGZyb20gTWFrZWZpbGUuYW0uCisrIyBAY29uZmlndXJlX2lucHV0QAorKworKyMgQ29weXJpZ2h0 IChDKSAxOTk0LCAxOTk1LCAxOTk2LCAxOTk3LCAxOTk4LCAxOTk5LCAyMDAwLCAyMDAxLCAyMDAy LAorKyMgMjAwMywgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSAgRnJlZSBTb2Z0 d2FyZSBGb3VuZGF0aW9uLAorKyMgSW5jLgorKyMgVGhpcyBNYWtlZmlsZS5pbiBpcyBmcmVlIHNv ZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCisrIyBnaXZlcyB1bmxpbWl0ZWQg cGVybWlzc2lvbiB0byBjb3B5IGFuZC9vciBkaXN0cmlidXRlIGl0LAorKyMgd2l0aCBvciB3aXRo b3V0IG1vZGlmaWNhdGlvbnMsIGFzIGxvbmcgYXMgdGhpcyBub3RpY2UgaXMgcHJlc2VydmVkLgor KworKyMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2ls bCBiZSB1c2VmdWwsCisrIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFksIHRvIHRoZSBleHRlbnQg cGVybWl0dGVkIGJ5IGxhdzsgd2l0aG91dAorKyMgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBv ZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQQorKyMgUEFSVElDVUxBUiBQVVJQT1NF LgorKworK0BTRVRfTUFLRUAKKytWUEFUSCA9IEBzcmNkaXJACisrcGtnZGF0YWRpciA9ICQoZGF0 YWRpcikvQFBBQ0tBR0VACisrcGtnaW5jbHVkZWRpciA9ICQoaW5jbHVkZWRpcikvQFBBQ0tBR0VA CisrcGtnbGliZGlyID0gJChsaWJkaXIpL0BQQUNLQUdFQAorK3BrZ2xpYmV4ZWNkaXIgPSAkKGxp YmV4ZWNkaXIpL0BQQUNLQUdFQAorK2FtX19jZCA9IENEUEFUSD0iJCR7WlNIX1ZFUlNJT04rLn0k KFBBVEhfU0VQQVJBVE9SKSIgJiYgY2QKKytpbnN0YWxsX3NoX0RBVEEgPSAkKGluc3RhbGxfc2gp IC1jIC1tIDY0NAorK2luc3RhbGxfc2hfUFJPR1JBTSA9ICQoaW5zdGFsbF9zaCkgLWMKKytpbnN0 YWxsX3NoX1NDUklQVCA9ICQoaW5zdGFsbF9zaCkgLWMKKytJTlNUQUxMX0hFQURFUiA9ICQoSU5T VEFMTF9EQVRBKQorK3RyYW5zZm9ybSA9ICQocHJvZ3JhbV90cmFuc2Zvcm1fbmFtZSkKKytOT1JN QUxfSU5TVEFMTCA9IDoKKytQUkVfSU5TVEFMTCA9IDoKKytQT1NUX0lOU1RBTEwgPSA6CisrTk9S TUFMX1VOSU5TVEFMTCA9IDoKKytQUkVfVU5JTlNUQUxMID0gOgorK1BPU1RfVU5JTlNUQUxMID0g OgorK2J1aWxkX3RyaXBsZXQgPSBAYnVpbGRACisraG9zdF90cmlwbGV0ID0gQGhvc3RACisrRElT VF9DT01NT04gPSAkKHNyY2RpcikvTWFrZWZpbGUuYW0gJChzcmNkaXIpL01ha2VmaWxlLmluIFwK KysJJCh0b3Bfc3JjZGlyKS9kb2Mvc291cmNlcy5taworK3N1YmRpciA9IGRvYworK0FDTE9DQUxf TTQgPSAkKHRvcF9zcmNkaXIpL2FjbG9jYWwubTQKKythbV9fYWNsb2NhbF9tNF9kZXBzID0gJCh0 b3Bfc3JjZGlyKS9jb25maWcvYXhfYm9vc3QubTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9h eF9teXNxbC5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2F4X29yYWNsZV9vY2kubTQgXAor KwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9wb3N0Z3Jlc3FsLm00IFwKKysJJCh0b3Bfc3JjZGly KS9jb25maWcvY3BwdW5pdC5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2xpYnRvb2wubTQg XAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9sdG9wdGlvbnMubTQgXAorKwkkKHRvcF9zcmNkaXIp L2NvbmZpZy9sdHN1Z2FyLm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcvbHR2ZXJzaW9uLm00 IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcvbHR+b2Jzb2xldGUubTQgJCh0b3Bfc3JjZGlyKS9j b25maWd1cmUuYWMKKythbV9fY29uZmlndXJlX2RlcHMgPSAkKGFtX19hY2xvY2FsX200X2RlcHMp ICQoQ09ORklHVVJFX0RFUEVOREVOQ0lFUykgXAorKwkkKEFDTE9DQUxfTTQpCisrbWtpbnN0YWxs ZGlycyA9ICQoaW5zdGFsbF9zaCkgLWQKKytDT05GSUdfSEVBREVSID0gJCh0b3BfYnVpbGRkaXIp L3NvY2kvY29uZmlnLmgKKytDT05GSUdfQ0xFQU5fRklMRVMgPQorK0NPTkZJR19DTEVBTl9WUEFU SF9GSUxFUyA9CisrU09VUkNFUyA9CisrRElTVF9TT1VSQ0VTID0KKytSRUNVUlNJVkVfVEFSR0VU UyA9IGFsbC1yZWN1cnNpdmUgY2hlY2stcmVjdXJzaXZlIGR2aS1yZWN1cnNpdmUgXAorKwlodG1s LXJlY3Vyc2l2ZSBpbmZvLXJlY3Vyc2l2ZSBpbnN0YWxsLWRhdGEtcmVjdXJzaXZlIFwKKysJaW5z dGFsbC1kdmktcmVjdXJzaXZlIGluc3RhbGwtZXhlYy1yZWN1cnNpdmUgXAorKwlpbnN0YWxsLWh0 bWwtcmVjdXJzaXZlIGluc3RhbGwtaW5mby1yZWN1cnNpdmUgXAorKwlpbnN0YWxsLXBkZi1yZWN1 cnNpdmUgaW5zdGFsbC1wcy1yZWN1cnNpdmUgaW5zdGFsbC1yZWN1cnNpdmUgXAorKwlpbnN0YWxs Y2hlY2stcmVjdXJzaXZlIGluc3RhbGxkaXJzLXJlY3Vyc2l2ZSBwZGYtcmVjdXJzaXZlIFwKKysJ cHMtcmVjdXJzaXZlIHVuaW5zdGFsbC1yZWN1cnNpdmUKKytSRUNVUlNJVkVfQ0xFQU5fVEFSR0VU UyA9IG1vc3RseWNsZWFuLXJlY3Vyc2l2ZSBjbGVhbi1yZWN1cnNpdmUJXAorKyAgZGlzdGNsZWFu LXJlY3Vyc2l2ZSBtYWludGFpbmVyLWNsZWFuLXJlY3Vyc2l2ZQorK0FNX1JFQ1VSU0lWRV9UQVJH RVRTID0gJChSRUNVUlNJVkVfVEFSR0VUUzotcmVjdXJzaXZlPSkgXAorKwkkKFJFQ1VSU0lWRV9D TEVBTl9UQVJHRVRTOi1yZWN1cnNpdmU9KSB0YWdzIFRBR1MgY3RhZ3MgQ1RBR1MgXAorKwlkaXN0 ZGlyCisrRVRBR1MgPSBldGFncworK0NUQUdTID0gY3RhZ3MKKytESVNUX1NVQkRJUlMgPSAkKFNV QkRJUlMpCisrRElTVEZJTEVTID0gJChESVNUX0NPTU1PTikgJChESVNUX1NPVVJDRVMpICQoVEVY SU5GT1MpICQoRVhUUkFfRElTVCkKKythbV9fcmVsYXRpdml6ZSA9IFwKKysgIGRpcjA9YHB3ZGA7 IFwKKysgIHNlZF9maXJzdD0ncyxeXChbXi9dKlwpLy4qJCQsXDEsJzsgXAorKyAgc2VkX3Jlc3Q9 J3MsXlteL10qLyosLCc7IFwKKysgIHNlZF9sYXN0PSdzLF4uKi9cKFteL10qXCkkJCxcMSwnOyBc CisrICBzZWRfYnV0bGFzdD0ncywvKlteL10qJCQsLCc7IFwKKysgIHdoaWxlIHRlc3QgLW4gIiQk ZGlyMSI7IGRvIFwKKysgICAgZmlyc3Q9YGVjaG8gIiQkZGlyMSIgfCBzZWQgLWUgIiQkc2VkX2Zp cnN0ImA7IFwKKysgICAgaWYgdGVzdCAiJCRmaXJzdCIgIT0gIi4iOyB0aGVuIFwKKysgICAgICBp ZiB0ZXN0ICIkJGZpcnN0IiA9ICIuLiI7IHRoZW4gXAorKyAgICAgICAgZGlyMj1gZWNobyAiJCRk aXIwIiB8IHNlZCAtZSAiJCRzZWRfbGFzdCJgLyIkJGRpcjIiOyBcCisrICAgICAgICBkaXIwPWBl Y2hvICIkJGRpcjAiIHwgc2VkIC1lICIkJHNlZF9idXRsYXN0ImA7IFwKKysgICAgICBlbHNlIFwK KysgICAgICAgIGZpcnN0Mj1gZWNobyAiJCRkaXIyIiB8IHNlZCAtZSAiJCRzZWRfZmlyc3QiYDsg XAorKyAgICAgICAgaWYgdGVzdCAiJCRmaXJzdDIiID0gIiQkZmlyc3QiOyB0aGVuIFwKKysgICAg ICAgICAgZGlyMj1gZWNobyAiJCRkaXIyIiB8IHNlZCAtZSAiJCRzZWRfcmVzdCJgOyBcCisrICAg ICAgICBlbHNlIFwKKysgICAgICAgICAgZGlyMj0iLi4vJCRkaXIyIjsgXAorKyAgICAgICAgZmk7 IFwKKysgICAgICAgIGRpcjA9IiQkZGlyMCIvIiQkZmlyc3QiOyBcCisrICAgICAgZmk7IFwKKysg ICAgZmk7IFwKKysgICAgZGlyMT1gZWNobyAiJCRkaXIxIiB8IHNlZCAtZSAiJCRzZWRfcmVzdCJg OyBcCisrICBkb25lOyBcCisrICByZWxkaXI9IiQkZGlyMiIKKytBQ0xPQ0FMID0gQEFDTE9DQUxA CisrQU1UQVIgPSBAQU1UQVJACisrQVIgPSBAQVJACisrQVVUT0NPTkYgPSBAQVVUT0NPTkZACisr QVVUT0hFQURFUiA9IEBBVVRPSEVBREVSQAorK0FVVE9NQUtFID0gQEFVVE9NQUtFQAorK0FXSyA9 IEBBV0tACisrQk9PU1RfQ0ZMQUdTID0gQEJPT1NUX0NGTEFHU0AKKytCT09TVF9EQVRFX1RJTUVf TElCID0gQEJPT1NUX0RBVEVfVElNRV9MSUJACisrQk9PU1RfRklMRVNZU1RFTV9MSUIgPSBAQk9P U1RfRklMRVNZU1RFTV9MSUJACisrQk9PU1RfSU9TVFJFQU1TX0xJQiA9IEBCT09TVF9JT1NUUkVB TVNfTElCQAorK0JPT1NUX0xJQlMgPSBAQk9PU1RfTElCU0AKKytCT09TVF9NUElfTElCID0gQEJP T1NUX01QSV9MSUJACisrQk9PU1RfTVBJX1BZVEhPTl9MSUIgPSBAQk9PU1RfTVBJX1BZVEhPTl9M SUJACisrQk9PU1RfUFJPR1JBTV9PUFRJT05TX0xJQiA9IEBCT09TVF9QUk9HUkFNX09QVElPTlNf TElCQAorK0JPT1NUX1BZVEhPTl9MSUIgPSBAQk9PU1RfUFlUSE9OX0xJQkAKKytCT09TVF9SRUdF WF9MSUIgPSBAQk9PU1RfUkVHRVhfTElCQAorK0JPT1NUX1NFUklBTElaQVRJT05fTElCID0gQEJP T1NUX1NFUklBTElaQVRJT05fTElCQAorK0JPT1NUX1NJR05BTFNfTElCID0gQEJPT1NUX1NJR05B TFNfTElCQAorK0JPT1NUX1NZU1RFTV9MSUIgPSBAQk9PU1RfU1lTVEVNX0xJQkAKKytCT09TVF9U SFJFQURfTElCID0gQEJPT1NUX1RIUkVBRF9MSUJACisrQk9PU1RfVU5JVF9URVNUX0ZSQU1FV09S S19MSUIgPSBAQk9PU1RfVU5JVF9URVNUX0ZSQU1FV09SS19MSUJACisrQk9PU1RfVkVSU0lPTiA9 IEBCT09TVF9WRVJTSU9OQAorK0JPT1NUX1dTRVJJQUxJWkFUSU9OX0xJQiA9IEBCT09TVF9XU0VS SUFMSVpBVElPTl9MSUJACisrQ0MgPSBAQ0NACisrQ0NERVBNT0RFID0gQENDREVQTU9ERUAKKytD RkxBR1MgPSBAQ0ZMQUdTQAorK0NQUCA9IEBDUFBACisrQ1BQRkxBR1MgPSBAQ1BQRkxBR1NACisr Q1BQVU5JVF9DRkxBR1MgPSBAQ1BQVU5JVF9DRkxBR1NACisrQ1BQVU5JVF9DT05GSUcgPSBAQ1BQ VU5JVF9DT05GSUdACisrQ1BQVU5JVF9MSUJTID0gQENQUFVOSVRfTElCU0AKKytDUFBVTklUX1ZF UlNJT04gPSBAQ1BQVU5JVF9WRVJTSU9OQAorK0NYWCA9IEBDWFhACisrQ1hYQ1BQID0gQENYWENQ UEAKKytDWFhERVBNT0RFID0gQENYWERFUE1PREVACisrQ1hYRkxBR1MgPSBAQ1hYRkxBR1NACisr Q1lHUEFUSF9XID0gQENZR1BBVEhfV0AKKytERUZTID0gQERFRlNACisrREVQRElSID0gQERFUERJ UkAKKytEU1lNVVRJTCA9IEBEU1lNVVRJTEAKKytEVU1QQklOID0gQERVTVBCSU5ACisrRUNIT19D ID0gQEVDSE9fQ0AKKytFQ0hPX04gPSBARUNIT19OQAorK0VDSE9fVCA9IEBFQ0hPX1RACisrRUdS RVAgPSBARUdSRVBACisrRVhFRVhUID0gQEVYRUVYVEAKKytGR1JFUCA9IEBGR1JFUEAKKytHRU5F UklDX0xJQlJBUllfVkVSU0lPTiA9IEBHRU5FUklDX0xJQlJBUllfVkVSU0lPTkAKKytHUkVQID0g QEdSRVBACisrSU5TVEFMTCA9IEBJTlNUQUxMQAorK0lOU1RBTExfREFUQSA9IEBJTlNUQUxMX0RB VEFACisrSU5TVEFMTF9QUk9HUkFNID0gQElOU1RBTExfUFJPR1JBTUAKKytJTlNUQUxMX1NDUklQ VCA9IEBJTlNUQUxMX1NDUklQVEAKKytJTlNUQUxMX1NUUklQX1BST0dSQU0gPSBASU5TVEFMTF9T VFJJUF9QUk9HUkFNQAorK0xEID0gQExEQAorK0xERkxBR1MgPSBATERGTEFHU0AKKytMSUJPQkpT ID0gQExJQk9CSlNACisrTElCUyA9IEBMSUJTQAorK0xJQlRPT0wgPSBATElCVE9PTEAKKytMSVBP ID0gQExJUE9ACisrTE5fUyA9IEBMTl9TQAorK0xUTElCT0JKUyA9IEBMVExJQk9CSlNACisrTUFL RUlORk8gPSBATUFLRUlORk9ACisrTUtESVJfUCA9IEBNS0RJUl9QQAorK01ZU1FMX0NGTEFHUyA9 IEBNWVNRTF9DRkxBR1NACisrTVlTUUxfQ19MSUIgPSBATVlTUUxfQ19MSUJACisrTVlTUUxfRElS UyA9IEBNWVNRTF9ESVJTQAorK01ZU1FMX0xJQlMgPSBATVlTUUxfTElCU0AKKytNWVNRTF9WRVJT SU9OID0gQE1ZU1FMX1ZFUlNJT05ACisrTk0gPSBATk1ACisrTk1FRElUID0gQE5NRURJVEAKKytP QkpEVU1QID0gQE9CSkRVTVBACisrT0JKRVhUID0gQE9CSkVYVEAKKytPUkFDTEVfRElSUyA9IEBP UkFDTEVfRElSU0AKKytPUkFDTEVfT0NJX0NGTEFHUyA9IEBPUkFDTEVfT0NJX0NGTEFHU0AKKytP UkFDTEVfT0NJX0xERkxBR1MgPSBAT1JBQ0xFX09DSV9MREZMQUdTQAorK09SQUNMRV9PQ0lfVkVS U0lPTiA9IEBPUkFDTEVfT0NJX1ZFUlNJT05ACisrT1RPT0wgPSBAT1RPT0xACisrT1RPT0w2NCA9 IEBPVE9PTDY0QAorK1BBQ0tBR0UgPSBAUEFDS0FHRUAKKytQQUNLQUdFX0JVR1JFUE9SVCA9IEBQ QUNLQUdFX0JVR1JFUE9SVEAKKytQQUNLQUdFX05BTUUgPSBAUEFDS0FHRV9OQU1FQAorK1BBQ0tB R0VfU1RSSU5HID0gQFBBQ0tBR0VfU1RSSU5HQAorK1BBQ0tBR0VfVEFSTkFNRSA9IEBQQUNLQUdF X1RBUk5BTUVACisrUEFDS0FHRV9WRVJTSU9OID0gQFBBQ0tBR0VfVkVSU0lPTkAKKytQQVRIX1NF UEFSQVRPUiA9IEBQQVRIX1NFUEFSQVRPUkAKKytQRVJMID0gQFBFUkxACisrUEdfQ09ORklHID0g QFBHX0NPTkZJR0AKKytQT1NUR1JFU1FMX0NGTEFHUyA9IEBQT1NUR1JFU1FMX0NGTEFHU0AKKytQ T1NUR1JFU1FMX0RJUlMgPSBAUE9TVEdSRVNRTF9ESVJTQAorK1BPU1RHUkVTUUxfTERGTEFHUyA9 IEBQT1NUR1JFU1FMX0xERkxBR1NACisrUE9TVEdSRVNRTF9WRVJTSU9OID0gQFBPU1RHUkVTUUxf VkVSU0lPTkAKKytSQU5MSUIgPSBAUkFOTElCQAorK1JQTV9SRUxFQVNFID0gQFJQTV9SRUxFQVNF QAorK1NFRCA9IEBTRURACisrU0VUX01BS0UgPSBAU0VUX01BS0VACisrU0hFTEwgPSBAU0hFTExA CisrU09DSV9IRUFERVJTX0JVUklFRCA9IEBTT0NJX0hFQURFUlNfQlVSSUVEQAorK1NPQ0lfTVlT UUxfSEVBREVSU19CVVJJRUQgPSBAU09DSV9NWVNRTF9IRUFERVJTX0JVUklFREAKKytTT0NJX1BP U1RHUkVTUUxfSEVBREVSU19CVVJJRUQgPSBAU09DSV9QT1NUR1JFU1FMX0hFQURFUlNfQlVSSUVE QAorK1NUUklQID0gQFNUUklQQAorK1VQTE9BRF9DT01NQU5EID0gQFVQTE9BRF9DT01NQU5EQAor K1ZFUlNJT04gPSBAVkVSU0lPTkAKKythYnNfYnVpbGRkaXIgPSBAYWJzX2J1aWxkZGlyQAorK2Fi c19zcmNkaXIgPSBAYWJzX3NyY2RpckAKKythYnNfdG9wX2J1aWxkZGlyID0gQGFic190b3BfYnVp bGRkaXJACisrYWJzX3RvcF9zcmNkaXIgPSBAYWJzX3RvcF9zcmNkaXJACisrYWNfY3RfQ0MgPSBA YWNfY3RfQ0NACisrYWNfY3RfQ1hYID0gQGFjX2N0X0NYWEAKKythY19jdF9EVU1QQklOID0gQGFj X2N0X0RVTVBCSU5ACisrYW1fX2luY2x1ZGUgPSBAYW1fX2luY2x1ZGVACisrYW1fX2xlYWRpbmdf ZG90ID0gQGFtX19sZWFkaW5nX2RvdEAKKythbV9fcXVvdGUgPSBAYW1fX3F1b3RlQAorK2FtX190 YXIgPSBAYW1fX3RhckAKKythbV9fdW50YXIgPSBAYW1fX3VudGFyQAorK2JpbmRpciA9IEBiaW5k aXJACisrYnVpbGQgPSBAYnVpbGRACisrYnVpbGRfYWxpYXMgPSBAYnVpbGRfYWxpYXNACisrYnVp bGRfY3B1ID0gQGJ1aWxkX2NwdUAKKytidWlsZF9vcyA9IEBidWlsZF9vc0AKKytidWlsZF92ZW5k b3IgPSBAYnVpbGRfdmVuZG9yQAorK2J1aWxkZGlyID0gQGJ1aWxkZGlyQAorK2RhdGFkaXIgPSBA ZGF0YWRpckAKKytkYXRhcm9vdGRpciA9IEBkYXRhcm9vdGRpckAKKytkaWZmX29rID0gQGRpZmZf b2tACisrZG9jZGlyID0gQGRvY2RpckAKKytkb3h5Z2VuX29rID0gQGRveHlnZW5fb2tACisrZHZp ZGlyID0gQGR2aWRpckAKKytkdmlwc19vayA9IEBkdmlwc19va0AKKytleGVjX3ByZWZpeCA9IEBl eGVjX3ByZWZpeEAKKytnc19vayA9IEBnc19va0AKKytob3N0ID0gQGhvc3RACisraG9zdF9hbGlh cyA9IEBob3N0X2FsaWFzQAorK2hvc3RfY3B1ID0gQGhvc3RfY3B1QAorK2hvc3Rfb3MgPSBAaG9z dF9vc0AKKytob3N0X3ZlbmRvciA9IEBob3N0X3ZlbmRvckAKKytodG1sZGlyID0gQGh0bWxkaXJA CisraW5jbHVkZWRpciA9IEBpbmNsdWRlZGlyQAorK2luZm9kaXIgPSBAaW5mb2RpckAKKytpbnN0 YWxsX3NoID0gQGluc3RhbGxfc2hACisrbGF0ZXhfb2sgPSBAbGF0ZXhfb2tACisrbGliZGlyID0g QGxpYmRpckAKKytsaWJleGVjZGlyID0gQGxpYmV4ZWNkaXJACisrbG9jYWxlZGlyID0gQGxvY2Fs ZWRpckAKKytsb2NhbHN0YXRlZGlyID0gQGxvY2Fsc3RhdGVkaXJACisrbHRfRUNITyA9IEBsdF9F Q0hPQAorK21hbmRpciA9IEBtYW5kaXJACisrbWtkaXJfcCA9IEBta2Rpcl9wQAorK29sZGluY2x1 ZGVkaXIgPSBAb2xkaW5jbHVkZWRpckAKKytwZGZkaXIgPSBAcGRmZGlyQAorK3ByZWZpeCA9IEBw cmVmaXhACisrcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZSA9IEBwcm9ncmFtX3RyYW5zZm9ybV9uYW1l QAorK3BzZGlyID0gQHBzZGlyQAorK3NiaW5kaXIgPSBAc2JpbmRpckAKKytzZWRfb2sgPSBAc2Vk X29rQAorK3NoYXJlZHN0YXRlZGlyID0gQHNoYXJlZHN0YXRlZGlyQAorK3NyY2RpciA9IEBzcmNk aXJACisrc3lzY29uZmRpciA9IEBzeXNjb25mZGlyQAorK3RhcmdldF9hbGlhcyA9IEB0YXJnZXRf YWxpYXNACisrdG9wX2J1aWxkX3ByZWZpeCA9IEB0b3BfYnVpbGRfcHJlZml4QAorK3RvcF9idWls ZGRpciA9IEB0b3BfYnVpbGRkaXJACisrdG9wX3NyY2RpciA9IEB0b3Bfc3JjZGlyQAorK2h0bWxf bG9jYWxfc291cmNlcyA9ICQodG9wX3NyY2RpcikvZG9jL2JhY2tlbmRzLmh0bWwgXAorKwkkKHRv cF9zcmNkaXIpL2RvYy9iYXNpY3MuaHRtbCBcCisrCSQodG9wX3NyY2RpcikvZG9jL2JleW9uZC5o dG1sIFwKKysJJCh0b3Bfc3JjZGlyKS9kb2MvYm9vc3QuaHRtbCBcCisrCSQodG9wX3NyY2Rpcikv ZG9jL2Vycm9ycy5odG1sIFwKKysJJCh0b3Bfc3JjZGlyKS9kb2MvZXhjaGFuZ2UuaHRtbCBcCisr CSQodG9wX3NyY2RpcikvZG9jL2luZGV4Lmh0bWwgXAorKwkkKHRvcF9zcmNkaXIpL2RvYy9pbnRl cmZhY2VzLmh0bWwgXAorKwkkKHRvcF9zcmNkaXIpL2RvYy9tdWx0aXRocmVhZGluZy5odG1sIFwK KysJJCh0b3Bfc3JjZGlyKS9kb2MvcmF0aW9uYWxlLmh0bWwgXAorKwkkKHRvcF9zcmNkaXIpL2Rv Yy9yZWZlcmVuY2UuaHRtbCBcCisrCSQodG9wX3NyY2RpcikvZG9jL3N0YXRlbWVudHMuaHRtbCBc CisrCSQodG9wX3NyY2RpcikvZG9jL3N0cnVjdHVyZS5odG1sCisrCisrY3NzX2xvY2FsX3NvdXJj ZXMgPSAkKHRvcF9zcmNkaXIpL2RvYy9zdHlsZS5jc3MKKytpbWdfbG9jYWxfc291cmNlcyA9ICQo dG9wX3NyY2RpcikvZG9jL3N0cnVjdHVyZS5wbmcKKytTVUJESVJTID0gYmFja2VuZHMKKytFWFRS QV9ESVNUX0ZPUl9TT0NJX0NPTVBBVElCSUxJVFkgPSAkKGh0bWxfbG9jYWxfc291cmNlcykgXAor KwkkKGNzc19sb2NhbF9zb3VyY2VzKSAkKGltZ19sb2NhbF9zb3VyY2VzKQorKworK0VYVFJBX0RJ U1QgPSAkKEVYVFJBX0RJU1RfRk9SX1NPQ0lfQ09NUEFUSUJJTElUWSkKKythbGw6IGFsbC1yZWN1 cnNpdmUKKysKKysuU1VGRklYRVM6CisrJChzcmNkaXIpL01ha2VmaWxlLmluOiAgJChzcmNkaXIp L01ha2VmaWxlLmFtICQodG9wX3NyY2RpcikvZG9jL3NvdXJjZXMubWsgJChhbV9fY29uZmlndXJl X2RlcHMpCisrCUBmb3IgZGVwIGluICQ/OyBkbyBcCisrCSAgY2FzZSAnJChhbV9fY29uZmlndXJl X2RlcHMpJyBpbiBcCisrCSAgICAqJCRkZXAqKSBcCisrCSAgICAgICggY2QgJCh0b3BfYnVpbGRk aXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoICkgXAorKwkgICAgICAg ICYmIHsgaWYgdGVzdCAtZiAkQDsgdGhlbiBleGl0IDA7IGVsc2UgYnJlYWs7IGZpOyB9OyBcCisr CSAgICAgIGV4aXQgMTs7IFwKKysJICBlc2FjOyBcCisrCWRvbmU7IFwKKysJZWNobyAnIGNkICQo dG9wX3NyY2RpcikgJiYgJChBVVRPTUFLRSkgLS1nbnUgZG9jL01ha2VmaWxlJzsgXAorKwkkKGFt X19jZCkgJCh0b3Bfc3JjZGlyKSAmJiBcCisrCSAgJChBVVRPTUFLRSkgLS1nbnUgZG9jL01ha2Vm aWxlCisrLlBSRUNJT1VTOiBNYWtlZmlsZQorK01ha2VmaWxlOiAkKHNyY2RpcikvTWFrZWZpbGUu aW4gJCh0b3BfYnVpbGRkaXIpL2NvbmZpZy5zdGF0dXMKKysJQGNhc2UgJyQ/JyBpbiBcCisrCSAg KmNvbmZpZy5zdGF0dXMqKSBcCisrCSAgICBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAk KEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2g7OyBcCisrCSAgKikgXAorKwkgICAgZWNobyAnIGNk ICQodG9wX2J1aWxkZGlyKSAmJiAkKFNIRUxMKSAuL2NvbmZpZy5zdGF0dXMgJChzdWJkaXIpLyRA ICQoYW1fX2RlcGZpbGVzX21heWJlKSc7IFwKKysJICAgIGNkICQodG9wX2J1aWxkZGlyKSAmJiAk KFNIRUxMKSAuL2NvbmZpZy5zdGF0dXMgJChzdWJkaXIpLyRAICQoYW1fX2RlcGZpbGVzX21heWJl KTs7IFwKKysJZXNhYzsKKysKKyskKHRvcF9idWlsZGRpcikvY29uZmlnLnN0YXR1czogJCh0b3Bf c3JjZGlyKS9jb25maWd1cmUgJChDT05GSUdfU1RBVFVTX0RFUEVOREVOQ0lFUykKKysJY2QgJCh0 b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCisrCisr JCh0b3Bfc3JjZGlyKS9jb25maWd1cmU6ICAkKGFtX19jb25maWd1cmVfZGVwcykKKysJY2QgJCh0 b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCisrJChB Q0xPQ0FMX000KTogICQoYW1fX2FjbG9jYWxfbTRfZGVwcykKKysJY2QgJCh0b3BfYnVpbGRkaXIp ICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCisrJChhbV9fYWNsb2NhbF9t NF9kZXBzKToKKysKKyttb3N0bHljbGVhbi1saWJ0b29sOgorKwktcm0gLWYgKi5sbworKworK2Ns ZWFuLWxpYnRvb2w6CisrCS1ybSAtcmYgLmxpYnMgX2xpYnMKKysKKysjIFRoaXMgZGlyZWN0b3J5 J3Mgc3ViZGlyZWN0b3JpZXMgYXJlIG1vc3RseSBpbmRlcGVuZGVudDsgeW91IGNhbiBjZAorKyMg aW50byB0aGVtIGFuZCBydW4gYG1ha2UnIHdpdGhvdXQgZ29pbmcgdGhyb3VnaCB0aGlzIE1ha2Vm aWxlLgorKyMgVG8gY2hhbmdlIHRoZSB2YWx1ZXMgb2YgYG1ha2UnIHZhcmlhYmxlczogaW5zdGVh ZCBvZiBlZGl0aW5nIE1ha2VmaWxlcywKKysjICgxKSBpZiB0aGUgdmFyaWFibGUgaXMgc2V0IGlu IGBjb25maWcuc3RhdHVzJywgZWRpdCBgY29uZmlnLnN0YXR1cycKKysjICAgICAod2hpY2ggd2ls bCBjYXVzZSB0aGUgTWFrZWZpbGVzIHRvIGJlIHJlZ2VuZXJhdGVkIHdoZW4geW91IHJ1biBgbWFr ZScpOworKyMgKDIpIG90aGVyd2lzZSwgcGFzcyB0aGUgZGVzaXJlZCB2YWx1ZXMgb24gdGhlIGBt YWtlJyBjb21tYW5kIGxpbmUuCisrJChSRUNVUlNJVkVfVEFSR0VUUyk6CisrCUBmYWlsPSBmYWls Y29tPSdleGl0IDEnOyBcCisrCWZvciBmIGluIHggJCRNQUtFRkxBR1M7IGRvIFwKKysJICBjYXNl ICQkZiBpbiBcCisrCSAgICAqPSogfCAtLVsha10qKTs7IFwKKysJICAgICprKikgZmFpbGNvbT0n ZmFpbD15ZXMnOzsgXAorKwkgIGVzYWM7IFwKKysJZG9uZTsgXAorKwlkb3Rfc2Vlbj1ubzsgXAor Kwl0YXJnZXQ9YGVjaG8gJEAgfCBzZWQgcy8tcmVjdXJzaXZlLy9gOyBcCisrCWxpc3Q9JyQoU1VC RElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAorKwkgIGVjaG8gIk1ha2luZyAkJHRh cmdldCBpbiAkJHN1YmRpciI7IFwKKysJICBpZiB0ZXN0ICIkJHN1YmRpciIgPSAiLiI7IHRoZW4g XAorKwkgICAgZG90X3NlZW49eWVzOyBcCisrCSAgICBsb2NhbF90YXJnZXQ9IiQkdGFyZ2V0LWFt IjsgXAorKwkgIGVsc2UgXAorKwkgICAgbG9jYWxfdGFyZ2V0PSIkJHRhcmdldCI7IFwKKysJICBm aTsgXAorKwkgICgkKGFtX19jZCkgJCRzdWJkaXIgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykg JCRsb2NhbF90YXJnZXQpIFwKKysJICB8fCBldmFsICQkZmFpbGNvbTsgXAorKwlkb25lOyBcCisr CWlmIHRlc3QgIiQkZG90X3NlZW4iID0gIm5vIjsgdGhlbiBcCisrCSAgJChNQUtFKSAkKEFNX01B S0VGTEFHUykgIiQkdGFyZ2V0LWFtIiB8fCBleGl0IDE7IFwKKysJZmk7IHRlc3QgLXogIiQkZmFp bCIKKysKKyskKFJFQ1VSU0lWRV9DTEVBTl9UQVJHRVRTKToKKysJQGZhaWw9IGZhaWxjb209J2V4 aXQgMSc7IFwKKysJZm9yIGYgaW4geCAkJE1BS0VGTEFHUzsgZG8gXAorKwkgIGNhc2UgJCRmIGlu IFwKKysJICAgICo9KiB8IC0tWyFrXSopOzsgXAorKwkgICAgKmsqKSBmYWlsY29tPSdmYWlsPXll cyc7OyBcCisrCSAgZXNhYzsgXAorKwlkb25lOyBcCisrCWRvdF9zZWVuPW5vOyBcCisrCWNhc2Ug IiRAIiBpbiBcCisrCSAgZGlzdGNsZWFuLSogfCBtYWludGFpbmVyLWNsZWFuLSopIGxpc3Q9JyQo RElTVF9TVUJESVJTKScgOzsgXAorKwkgICopIGxpc3Q9JyQoU1VCRElSUyknIDs7IFwKKysJZXNh YzsgXAorKwlyZXY9Jyc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCisrCSAgaWYgdGVzdCAi JCRzdWJkaXIiID0gIi4iOyB0aGVuIDo7IGVsc2UgXAorKwkgICAgcmV2PSIkJHN1YmRpciAkJHJl diI7IFwKKysJICBmaTsgXAorKwlkb25lOyBcCisrCXJldj0iJCRyZXYgLiI7IFwKKysJdGFyZ2V0 PWBlY2hvICRAIHwgc2VkIHMvLXJlY3Vyc2l2ZS8vYDsgXAorKwlmb3Igc3ViZGlyIGluICQkcmV2 OyBkbyBcCisrCSAgZWNobyAiTWFraW5nICQkdGFyZ2V0IGluICQkc3ViZGlyIjsgXAorKwkgIGlm IHRlc3QgIiQkc3ViZGlyIiA9ICIuIjsgdGhlbiBcCisrCSAgICBsb2NhbF90YXJnZXQ9IiQkdGFy Z2V0LWFtIjsgXAorKwkgIGVsc2UgXAorKwkgICAgbG9jYWxfdGFyZ2V0PSIkJHRhcmdldCI7IFwK KysJICBmaTsgXAorKwkgICgkKGFtX19jZCkgJCRzdWJkaXIgJiYgJChNQUtFKSAkKEFNX01BS0VG TEFHUykgJCRsb2NhbF90YXJnZXQpIFwKKysJICB8fCBldmFsICQkZmFpbGNvbTsgXAorKwlkb25l ICYmIHRlc3QgLXogIiQkZmFpbCIKKyt0YWdzLXJlY3Vyc2l2ZToKKysJbGlzdD0nJChTVUJESVJT KSc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCisrCSAgdGVzdCAiJCRzdWJkaXIiID0gLiB8 fCAoJChhbV9fY2QpICQkc3ViZGlyICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIHRhZ3MpOyBc CisrCWRvbmUKKytjdGFncy1yZWN1cnNpdmU6CisrCWxpc3Q9JyQoU1VCRElSUyknOyBmb3Igc3Vi ZGlyIGluICQkbGlzdDsgZG8gXAorKwkgIHRlc3QgIiQkc3ViZGlyIiA9IC4gfHwgKCQoYW1fX2Nk KSAkJHN1YmRpciAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBjdGFncyk7IFwKKysJZG9uZQor KworK0lEOiAkKEhFQURFUlMpICQoU09VUkNFUykgJChMSVNQKSAkKFRBR1NfRklMRVMpCisrCWxp c3Q9JyQoU09VUkNFUykgJChIRUFERVJTKSAkKExJU1ApICQoVEFHU19GSUxFUyknOyBcCisrCXVu aXF1ZT1gZm9yIGkgaW4gJCRsaXN0OyBkbyBcCisrCSAgICBpZiB0ZXN0IC1mICIkJGkiOyB0aGVu IGVjaG8gJCRpOyBlbHNlIGVjaG8gJChzcmNkaXIpLyQkaTsgZmk7IFwKKysJICBkb25lIHwgXAor KwkgICQoQVdLKSAneyBmaWxlc1skJDBdID0gMTsgbm9uZW1wdHkgPSAxOyB9IFwKKysJICAgICAg RU5EIHsgaWYgKG5vbmVtcHR5KSB7IGZvciAoaSBpbiBmaWxlcykgcHJpbnQgaTsgfTsgfSdgOyBc CisrCW1raWQgLWZJRCAkJHVuaXF1ZQorK3RhZ3M6IFRBR1MKKysKKytUQUdTOiB0YWdzLXJlY3Vy c2l2ZSAkKEhFQURFUlMpICQoU09VUkNFUykgICQoVEFHU19ERVBFTkRFTkNJRVMpIFwKKysJCSQo VEFHU19GSUxFUykgJChMSVNQKQorKwlzZXQgeDsgXAorKwloZXJlPWBwd2RgOyBcCisrCWlmICgk KEVUQUdTKSAtLWV0YWdzLWluY2x1ZGUgLS12ZXJzaW9uKSA+L2Rldi9udWxsIDI+JjE7IHRoZW4g XAorKwkgIGluY2x1ZGVfb3B0aW9uPS0tZXRhZ3MtaW5jbHVkZTsgXAorKwkgIGVtcHR5X2ZpeD0u OyBcCisrCWVsc2UgXAorKwkgIGluY2x1ZGVfb3B0aW9uPS0taW5jbHVkZTsgXAorKwkgIGVtcHR5 X2ZpeD07IFwKKysJZmk7IFwKKysJbGlzdD0nJChTVUJESVJTKSc7IGZvciBzdWJkaXIgaW4gJCRs aXN0OyBkbyBcCisrCSAgaWYgdGVzdCAiJCRzdWJkaXIiID0gLjsgdGhlbiA6OyBlbHNlIFwKKysJ ICAgIHRlc3QgISAtZiAkJHN1YmRpci9UQUdTIHx8IFwKKysJICAgICAgc2V0ICIkJEAiICIkJGlu Y2x1ZGVfb3B0aW9uPSQkaGVyZS8kJHN1YmRpci9UQUdTIjsgXAorKwkgIGZpOyBcCisrCWRvbmU7 IFwKKysJbGlzdD0nJChTT1VSQ0VTKSAkKEhFQURFUlMpICAkKExJU1ApICQoVEFHU19GSUxFUykn OyBcCisrCXVuaXF1ZT1gZm9yIGkgaW4gJCRsaXN0OyBkbyBcCisrCSAgICBpZiB0ZXN0IC1mICIk JGkiOyB0aGVuIGVjaG8gJCRpOyBlbHNlIGVjaG8gJChzcmNkaXIpLyQkaTsgZmk7IFwKKysJICBk b25lIHwgXAorKwkgICQoQVdLKSAneyBmaWxlc1skJDBdID0gMTsgbm9uZW1wdHkgPSAxOyB9IFwK KysJICAgICAgRU5EIHsgaWYgKG5vbmVtcHR5KSB7IGZvciAoaSBpbiBmaWxlcykgcHJpbnQgaTsg fTsgfSdgOyBcCisrCXNoaWZ0OyBcCisrCWlmIHRlc3QgLXogIiQoRVRBR1NfQVJHUykkJCokJHVu aXF1ZSI7IHRoZW4gOjsgZWxzZSBcCisrCSAgdGVzdCAtbiAiJCR1bmlxdWUiIHx8IHVuaXF1ZT0k JGVtcHR5X2ZpeDsgXAorKwkgIGlmIHRlc3QgJCQjIC1ndCAwOyB0aGVuIFwKKysJICAgICQoRVRB R1MpICQoRVRBR1NGTEFHUykgJChBTV9FVEFHU0ZMQUdTKSAkKEVUQUdTX0FSR1MpIFwKKysJICAg ICAgIiQkQCIgJCR1bmlxdWU7IFwKKysJICBlbHNlIFwKKysJICAgICQoRVRBR1MpICQoRVRBR1NG TEFHUykgJChBTV9FVEFHU0ZMQUdTKSAkKEVUQUdTX0FSR1MpIFwKKysJICAgICAgJCR1bmlxdWU7 IFwKKysJICBmaTsgXAorKwlmaQorK2N0YWdzOiBDVEFHUworK0NUQUdTOiBjdGFncy1yZWN1cnNp dmUgJChIRUFERVJTKSAkKFNPVVJDRVMpICAkKFRBR1NfREVQRU5ERU5DSUVTKSBcCisrCQkkKFRB R1NfRklMRVMpICQoTElTUCkKKysJbGlzdD0nJChTT1VSQ0VTKSAkKEhFQURFUlMpICAkKExJU1Ap ICQoVEFHU19GSUxFUyknOyBcCisrCXVuaXF1ZT1gZm9yIGkgaW4gJCRsaXN0OyBkbyBcCisrCSAg ICBpZiB0ZXN0IC1mICIkJGkiOyB0aGVuIGVjaG8gJCRpOyBlbHNlIGVjaG8gJChzcmNkaXIpLyQk aTsgZmk7IFwKKysJICBkb25lIHwgXAorKwkgICQoQVdLKSAneyBmaWxlc1skJDBdID0gMTsgbm9u ZW1wdHkgPSAxOyB9IFwKKysJICAgICAgRU5EIHsgaWYgKG5vbmVtcHR5KSB7IGZvciAoaSBpbiBm aWxlcykgcHJpbnQgaTsgfTsgfSdgOyBcCisrCXRlc3QgLXogIiQoQ1RBR1NfQVJHUykkJHVuaXF1 ZSIgXAorKwkgIHx8ICQoQ1RBR1MpICQoQ1RBR1NGTEFHUykgJChBTV9DVEFHU0ZMQUdTKSAkKENU QUdTX0FSR1MpIFwKKysJICAgICAkJHVuaXF1ZQorKworK0dUQUdTOgorKwloZXJlPWAkKGFtX19j ZCkgJCh0b3BfYnVpbGRkaXIpICYmIHB3ZGAgXAorKwkgICYmICQoYW1fX2NkKSAkKHRvcF9zcmNk aXIpIFwKKysJICAmJiBndGFncyAtaSAkKEdUQUdTX0FSR1MpICIkJGhlcmUiCisrCisrZGlzdGNs ZWFuLXRhZ3M6CisrCS1ybSAtZiBUQUdTIElEIEdUQUdTIEdSVEFHUyBHU1lNUyBHUEFUSCB0YWdz CisrCisrZGlzdGRpcjogJChESVNURklMRVMpCisrCUBzcmNkaXJzdHJpcD1gZWNobyAiJChzcmNk aXIpIiB8IHNlZCAncy9bXS5bXiQkXFwqXS9cXFxcJi9nJ2A7IFwKKysJdG9wc3JjZGlyc3RyaXA9 YGVjaG8gIiQodG9wX3NyY2RpcikiIHwgc2VkICdzL1tdLlteJCRcXCpdL1xcXFwmL2cnYDsgXAor KwlsaXN0PSckKERJU1RGSUxFUyknOyBcCisrCSAgZGlzdF9maWxlcz1gZm9yIGZpbGUgaW4gJCRs aXN0OyBkbyBlY2hvICQkZmlsZTsgZG9uZSB8IFwKKysJICBzZWQgLWUgInN8XiQkc3JjZGlyc3Ry aXAvfHw7dCIgXAorKwkgICAgICAtZSAic3xeJCR0b3BzcmNkaXJzdHJpcC98JCh0b3BfYnVpbGRk aXIpL3w7dCJgOyBcCisrCWNhc2UgJCRkaXN0X2ZpbGVzIGluIFwKKysJICAqLyopICQoTUtESVJf UCkgYGVjaG8gIiQkZGlzdF9maWxlcyIgfCBcCisrCQkJICAgc2VkICcvXC8vIWQ7c3xefCQoZGlz dGRpcikvfDtzLC9bXi9dKiQkLCwnIHwgXAorKwkJCSAgIHNvcnQgLXVgIDs7IFwKKysJZXNhYzsg XAorKwlmb3IgZmlsZSBpbiAkJGRpc3RfZmlsZXM7IGRvIFwKKysJICBpZiB0ZXN0IC1mICQkZmls ZSB8fCB0ZXN0IC1kICQkZmlsZTsgdGhlbiBkPS47IGVsc2UgZD0kKHNyY2Rpcik7IGZpOyBcCisr CSAgaWYgdGVzdCAtZCAkJGQvJCRmaWxlOyB0aGVuIFwKKysJICAgIGRpcj1gZWNobyAiLyQkZmls ZSIgfCBzZWQgLWUgJ3MsL1teL10qJCQsLCdgOyBcCisrCSAgICBpZiB0ZXN0IC1kICIkKGRpc3Rk aXIpLyQkZmlsZSI7IHRoZW4gXAorKwkgICAgICBmaW5kICIkKGRpc3RkaXIpLyQkZmlsZSIgLXR5 cGUgZCAhIC1wZXJtIC03MDAgLWV4ZWMgY2htb2QgdStyd3gge30gXDs7IFwKKysJICAgIGZpOyBc CisrCSAgICBpZiB0ZXN0IC1kICQoc3JjZGlyKS8kJGZpbGUgJiYgdGVzdCAkJGQgIT0gJChzcmNk aXIpOyB0aGVuIFwKKysJICAgICAgY3AgLWZwUiAkKHNyY2RpcikvJCRmaWxlICIkKGRpc3RkaXIp JCRkaXIiIHx8IGV4aXQgMTsgXAorKwkgICAgICBmaW5kICIkKGRpc3RkaXIpLyQkZmlsZSIgLXR5 cGUgZCAhIC1wZXJtIC03MDAgLWV4ZWMgY2htb2QgdStyd3gge30gXDs7IFwKKysJICAgIGZpOyBc CisrCSAgICBjcCAtZnBSICQkZC8kJGZpbGUgIiQoZGlzdGRpcikkJGRpciIgfHwgZXhpdCAxOyBc CisrCSAgZWxzZSBcCisrCSAgICB0ZXN0IC1mICIkKGRpc3RkaXIpLyQkZmlsZSIgXAorKwkgICAg fHwgY3AgLXAgJCRkLyQkZmlsZSAiJChkaXN0ZGlyKS8kJGZpbGUiIFwKKysJICAgIHx8IGV4aXQg MTsgXAorKwkgIGZpOyBcCisrCWRvbmUKKysJQGxpc3Q9JyQoRElTVF9TVUJESVJTKSc7IGZvciBz dWJkaXIgaW4gJCRsaXN0OyBkbyBcCisrCSAgaWYgdGVzdCAiJCRzdWJkaXIiID0gLjsgdGhlbiA6 OyBlbHNlIFwKKysJICAgIHRlc3QgLWQgIiQoZGlzdGRpcikvJCRzdWJkaXIiIFwKKysJICAgIHx8 ICQoTUtESVJfUCkgIiQoZGlzdGRpcikvJCRzdWJkaXIiIFwKKysJICAgIHx8IGV4aXQgMTsgXAor KwkgIGZpOyBcCisrCWRvbmUKKysJQGxpc3Q9JyQoRElTVF9TVUJESVJTKSc7IGZvciBzdWJkaXIg aW4gJCRsaXN0OyBkbyBcCisrCSAgaWYgdGVzdCAiJCRzdWJkaXIiID0gLjsgdGhlbiA6OyBlbHNl IFwKKysJICAgIGRpcjE9JCRzdWJkaXI7IGRpcjI9IiQoZGlzdGRpcikvJCRzdWJkaXIiOyBcCisr CSAgICAkKGFtX19yZWxhdGl2aXplKTsgXAorKwkgICAgbmV3X2Rpc3RkaXI9JCRyZWxkaXI7IFwK KysJICAgIGRpcjE9JCRzdWJkaXI7IGRpcjI9IiQodG9wX2Rpc3RkaXIpIjsgXAorKwkgICAgJChh bV9fcmVsYXRpdml6ZSk7IFwKKysJICAgIG5ld190b3BfZGlzdGRpcj0kJHJlbGRpcjsgXAorKwkg ICAgZWNobyAiIChjZCAkJHN1YmRpciAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSB0b3BfZGlz dGRpcj0iJCRuZXdfdG9wX2Rpc3RkaXIiIGRpc3RkaXI9IiQkbmV3X2Rpc3RkaXIiIFxcIjsgXAor KwkgICAgZWNobyAiICAgICBhbV9fcmVtb3ZlX2Rpc3RkaXI9OiBhbV9fc2tpcF9sZW5ndGhfY2hl Y2s9OiBhbV9fc2tpcF9tb2RlX2ZpeD06IGRpc3RkaXIpIjsgXAorKwkgICAgKCQoYW1fX2NkKSAk JHN1YmRpciAmJiBcCisrCSAgICAgICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIFwKKysJICAgICAg ICB0b3BfZGlzdGRpcj0iJCRuZXdfdG9wX2Rpc3RkaXIiIFwKKysJICAgICAgICBkaXN0ZGlyPSIk JG5ld19kaXN0ZGlyIiBcCisrCQlhbV9fcmVtb3ZlX2Rpc3RkaXI9OiBcCisrCQlhbV9fc2tpcF9s ZW5ndGhfY2hlY2s9OiBcCisrCQlhbV9fc2tpcF9tb2RlX2ZpeD06IFwKKysJICAgICAgICBkaXN0 ZGlyKSBcCisrCSAgICAgIHx8IGV4aXQgMTsgXAorKwkgIGZpOyBcCisrCWRvbmUKKytjaGVjay1h bTogYWxsLWFtCisrY2hlY2s6IGNoZWNrLXJlY3Vyc2l2ZQorK2FsbC1hbTogTWFrZWZpbGUKKytp bnN0YWxsZGlyczogaW5zdGFsbGRpcnMtcmVjdXJzaXZlCisraW5zdGFsbGRpcnMtYW06CisraW5z dGFsbDogaW5zdGFsbC1yZWN1cnNpdmUKKytpbnN0YWxsLWV4ZWM6IGluc3RhbGwtZXhlYy1yZWN1 cnNpdmUKKytpbnN0YWxsLWRhdGE6IGluc3RhbGwtZGF0YS1yZWN1cnNpdmUKKyt1bmluc3RhbGw6 IHVuaW5zdGFsbC1yZWN1cnNpdmUKKysKKytpbnN0YWxsLWFtOiBhbGwtYW0KKysJQCQoTUFLRSkg JChBTV9NQUtFRkxBR1MpIGluc3RhbGwtZXhlYy1hbSBpbnN0YWxsLWRhdGEtYW0KKysKKytpbnN0 YWxsY2hlY2s6IGluc3RhbGxjaGVjay1yZWN1cnNpdmUKKytpbnN0YWxsLXN0cmlwOgorKwkkKE1B S0UpICQoQU1fTUFLRUZMQUdTKSBJTlNUQUxMX1BST0dSQU09IiQoSU5TVEFMTF9TVFJJUF9QUk9H UkFNKSIgXAorKwkgIGluc3RhbGxfc2hfUFJPR1JBTT0iJChJTlNUQUxMX1NUUklQX1BST0dSQU0p IiBJTlNUQUxMX1NUUklQX0ZMQUc9LXMgXAorKwkgIGB0ZXN0IC16ICckKFNUUklQKScgfHwgXAor KwkgICAgZWNobyAiSU5TVEFMTF9QUk9HUkFNX0VOVj1TVFJJUFBST0c9JyQoU1RSSVApJyJgIGlu c3RhbGwKKyttb3N0bHljbGVhbi1nZW5lcmljOgorKworK2NsZWFuLWdlbmVyaWM6CisrCisrZGlz dGNsZWFuLWdlbmVyaWM6CisrCS10ZXN0IC16ICIkKENPTkZJR19DTEVBTl9GSUxFUykiIHx8IHJt IC1mICQoQ09ORklHX0NMRUFOX0ZJTEVTKQorKwktdGVzdCAuID0gIiQoc3JjZGlyKSIgfHwgdGVz dCAteiAiJChDT05GSUdfQ0xFQU5fVlBBVEhfRklMRVMpIiB8fCBybSAtZiAkKENPTkZJR19DTEVB Tl9WUEFUSF9GSUxFUykKKysKKyttYWludGFpbmVyLWNsZWFuLWdlbmVyaWM6CisrCUBlY2hvICJU aGlzIGNvbW1hbmQgaXMgaW50ZW5kZWQgZm9yIG1haW50YWluZXJzIHRvIHVzZSIKKysJQGVjaG8g Iml0IGRlbGV0ZXMgZmlsZXMgdGhhdCBtYXkgcmVxdWlyZSBzcGVjaWFsIHRvb2xzIHRvIHJlYnVp bGQuIgorK2NsZWFuOiBjbGVhbi1yZWN1cnNpdmUKKysKKytjbGVhbi1hbTogY2xlYW4tZ2VuZXJp YyBjbGVhbi1saWJ0b29sIG1vc3RseWNsZWFuLWFtCisrCisrZGlzdGNsZWFuOiBkaXN0Y2xlYW4t cmVjdXJzaXZlCisrCS1ybSAtZiBNYWtlZmlsZQorK2Rpc3RjbGVhbi1hbTogY2xlYW4tYW0gZGlz dGNsZWFuLWdlbmVyaWMgZGlzdGNsZWFuLXRhZ3MKKysKKytkdmk6IGR2aS1yZWN1cnNpdmUKKysK KytkdmktYW06CisrCisraHRtbDogaHRtbC1yZWN1cnNpdmUKKysKKytodG1sLWFtOgorKworK2lu Zm86IGluZm8tcmVjdXJzaXZlCisrCisraW5mby1hbToKKysKKytpbnN0YWxsLWRhdGEtYW06Cisr CisraW5zdGFsbC1kdmk6IGluc3RhbGwtZHZpLXJlY3Vyc2l2ZQorKworK2luc3RhbGwtZHZpLWFt OgorKworK2luc3RhbGwtZXhlYy1hbToKKysKKytpbnN0YWxsLWh0bWw6IGluc3RhbGwtaHRtbC1y ZWN1cnNpdmUKKysKKytpbnN0YWxsLWh0bWwtYW06CisrCisraW5zdGFsbC1pbmZvOiBpbnN0YWxs LWluZm8tcmVjdXJzaXZlCisrCisraW5zdGFsbC1pbmZvLWFtOgorKworK2luc3RhbGwtbWFuOgor KworK2luc3RhbGwtcGRmOiBpbnN0YWxsLXBkZi1yZWN1cnNpdmUKKysKKytpbnN0YWxsLXBkZi1h bToKKysKKytpbnN0YWxsLXBzOiBpbnN0YWxsLXBzLXJlY3Vyc2l2ZQorKworK2luc3RhbGwtcHMt YW06CisrCisraW5zdGFsbGNoZWNrLWFtOgorKworK21haW50YWluZXItY2xlYW46IG1haW50YWlu ZXItY2xlYW4tcmVjdXJzaXZlCisrCS1ybSAtZiBNYWtlZmlsZQorK21haW50YWluZXItY2xlYW4t YW06IGRpc3RjbGVhbi1hbSBtYWludGFpbmVyLWNsZWFuLWdlbmVyaWMKKysKKyttb3N0bHljbGVh bjogbW9zdGx5Y2xlYW4tcmVjdXJzaXZlCisrCisrbW9zdGx5Y2xlYW4tYW06IG1vc3RseWNsZWFu LWdlbmVyaWMgbW9zdGx5Y2xlYW4tbGlidG9vbAorKworK3BkZjogcGRmLXJlY3Vyc2l2ZQorKwor K3BkZi1hbToKKysKKytwczogcHMtcmVjdXJzaXZlCisrCisrcHMtYW06CisrCisrdW5pbnN0YWxs LWFtOgorKworKy5NQUtFOiAkKFJFQ1VSU0lWRV9DTEVBTl9UQVJHRVRTKSAkKFJFQ1VSU0lWRV9U QVJHRVRTKSBjdGFncy1yZWN1cnNpdmUgXAorKwlpbnN0YWxsLWFtIGluc3RhbGwtc3RyaXAgdGFn cy1yZWN1cnNpdmUKKysKKysuUEhPTlk6ICQoUkVDVVJTSVZFX0NMRUFOX1RBUkdFVFMpICQoUkVD VVJTSVZFX1RBUkdFVFMpIENUQUdTIEdUQUdTIFwKKysJYWxsIGFsbC1hbSBjaGVjayBjaGVjay1h bSBjbGVhbiBjbGVhbi1nZW5lcmljIGNsZWFuLWxpYnRvb2wgXAorKwljdGFncyBjdGFncy1yZWN1 cnNpdmUgZGlzdGNsZWFuIGRpc3RjbGVhbi1nZW5lcmljIFwKKysJZGlzdGNsZWFuLWxpYnRvb2wg ZGlzdGNsZWFuLXRhZ3MgZGlzdGRpciBkdmkgZHZpLWFtIGh0bWwgXAorKwlodG1sLWFtIGluZm8g aW5mby1hbSBpbnN0YWxsIGluc3RhbGwtYW0gaW5zdGFsbC1kYXRhIFwKKysJaW5zdGFsbC1kYXRh LWFtIGluc3RhbGwtZHZpIGluc3RhbGwtZHZpLWFtIGluc3RhbGwtZXhlYyBcCisrCWluc3RhbGwt ZXhlYy1hbSBpbnN0YWxsLWh0bWwgaW5zdGFsbC1odG1sLWFtIGluc3RhbGwtaW5mbyBcCisrCWlu c3RhbGwtaW5mby1hbSBpbnN0YWxsLW1hbiBpbnN0YWxsLXBkZiBpbnN0YWxsLXBkZi1hbSBcCisr CWluc3RhbGwtcHMgaW5zdGFsbC1wcy1hbSBpbnN0YWxsLXN0cmlwIGluc3RhbGxjaGVjayBcCisr CWluc3RhbGxjaGVjay1hbSBpbnN0YWxsZGlycyBpbnN0YWxsZGlycy1hbSBtYWludGFpbmVyLWNs ZWFuIFwKKysJbWFpbnRhaW5lci1jbGVhbi1nZW5lcmljIG1vc3RseWNsZWFuIG1vc3RseWNsZWFu LWdlbmVyaWMgXAorKwltb3N0bHljbGVhbi1saWJ0b29sIHBkZiBwZGYtYW0gcHMgcHMtYW0gdGFn cyB0YWdzLXJlY3Vyc2l2ZSBcCisrCXVuaW5zdGFsbCB1bmluc3RhbGwtYW0KKysKKysKKysjIFRl bGwgdmVyc2lvbnMgWzMuNTksMy42Mykgb2YgR05VIG1ha2UgdG8gbm90IGV4cG9ydCBhbGwgdmFy aWFibGVzLgorKyMgT3RoZXJ3aXNlIGEgc3lzdGVtIGxpbWl0IChmb3IgU3lzViBhdCBsZWFzdCkg bWF5IGJlIGV4Y2VlZGVkLgorKy5OT0VYUE9SVDoKK2RpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFj ay9kb2Mvc291cmNlcy5tayBzb2NpLTMuMC4wX3RyZXAzMDAvZG9jL3NvdXJjZXMubWsKKy0tLSBz b2NpLTMuMC4wXzQtcGFjay9kb2Mvc291cmNlcy5tawkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAw MDAwMCArMDEwMAorKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9kb2Mvc291cmNlcy5tawkyMDEwLTAx LTIzIDEzOjI1OjU3LjAwMDAwMDAwMCArMDEwMAorQEAgLTAsMCArMSwxOCBAQAorK2h0bWxfbG9j YWxfc291cmNlcyA9ICQodG9wX3NyY2RpcikvZG9jL2JhY2tlbmRzLmh0bWwgXAorKwkkKHRvcF9z cmNkaXIpL2RvYy9iYXNpY3MuaHRtbCBcCisrCSQodG9wX3NyY2RpcikvZG9jL2JleW9uZC5odG1s IFwKKysJJCh0b3Bfc3JjZGlyKS9kb2MvYm9vc3QuaHRtbCBcCisrCSQodG9wX3NyY2RpcikvZG9j L2Vycm9ycy5odG1sIFwKKysJJCh0b3Bfc3JjZGlyKS9kb2MvZXhjaGFuZ2UuaHRtbCBcCisrCSQo dG9wX3NyY2RpcikvZG9jL2luZGV4Lmh0bWwgXAorKwkkKHRvcF9zcmNkaXIpL2RvYy9pbnRlcmZh Y2VzLmh0bWwgXAorKwkkKHRvcF9zcmNkaXIpL2RvYy9tdWx0aXRocmVhZGluZy5odG1sIFwKKysJ JCh0b3Bfc3JjZGlyKS9kb2MvcmF0aW9uYWxlLmh0bWwgXAorKwkkKHRvcF9zcmNkaXIpL2RvYy9y ZWZlcmVuY2UuaHRtbCBcCisrCSQodG9wX3NyY2RpcikvZG9jL3N0YXRlbWVudHMuaHRtbCBcCisr CSQodG9wX3NyY2RpcikvZG9jL3N0cnVjdHVyZS5odG1sCisrCisrY3NzX2xvY2FsX3NvdXJjZXMg PSAkKHRvcF9zcmNkaXIpL2RvYy9zdHlsZS5jc3MKKysKKytpbWdfbG9jYWxfc291cmNlcyA9ICQo dG9wX3NyY2RpcikvZG9jL3N0cnVjdHVyZS5wbmcKKysKK2RpZmYgLU51ciBzb2NpLTMuMC4wXzQt cGFjay9JTlNUQUxMIHNvY2ktMy4wLjBfdHJlcDMwMC9JTlNUQUxMCistLS0gc29jaS0zLjAuMF80 LXBhY2svSU5TVEFMTAkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAorKysrIHNv Y2ktMy4wLjBfdHJlcDMwMC9JTlNUQUxMCTIwMTAtMDEtMjMgMTQ6NDQ6NTIuMDAwMDAwMDAwICsw MTAwCitAQCAtMCwwICsxLDM2NSBAQAorK0luc3RhbGxhdGlvbiBJbnN0cnVjdGlvbnMKKysqKioq KioqKioqKioqKioqKioqKioqKioqCisrCisrQ29weXJpZ2h0IChDKSAxOTk0LCAxOTk1LCAxOTk2 LCAxOTk5LCAyMDAwLCAyMDAxLCAyMDAyLCAyMDA0LCAyMDA1LAorKzIwMDYsIDIwMDcsIDIwMDgs IDIwMDkgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisrCisrICAgQ29weWluZyBhbmQg ZGlzdHJpYnV0aW9uIG9mIHRoaXMgZmlsZSwgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbiwK KythcmUgcGVybWl0dGVkIGluIGFueSBtZWRpdW0gd2l0aG91dCByb3lhbHR5IHByb3ZpZGVkIHRo ZSBjb3B5cmlnaHQKKytub3RpY2UgYW5kIHRoaXMgbm90aWNlIGFyZSBwcmVzZXJ2ZWQuICBUaGlz IGZpbGUgaXMgb2ZmZXJlZCBhcy1pcywKKyt3aXRob3V0IHdhcnJhbnR5IG9mIGFueSBraW5kLgor KworK0Jhc2ljIEluc3RhbGxhdGlvbgorKz09PT09PT09PT09PT09PT09PQorKworKyAgIEJyaWVm bHksIHRoZSBzaGVsbCBjb21tYW5kcyBgLi9jb25maWd1cmU7IG1ha2U7IG1ha2UgaW5zdGFsbCcg c2hvdWxkCisrY29uZmlndXJlLCBidWlsZCwgYW5kIGluc3RhbGwgdGhpcyBwYWNrYWdlLiAgVGhl IGZvbGxvd2luZworK21vcmUtZGV0YWlsZWQgaW5zdHJ1Y3Rpb25zIGFyZSBnZW5lcmljOyBzZWUg dGhlIGBSRUFETUUnIGZpbGUgZm9yCisraW5zdHJ1Y3Rpb25zIHNwZWNpZmljIHRvIHRoaXMgcGFj a2FnZS4gIFNvbWUgcGFja2FnZXMgcHJvdmlkZSB0aGlzCisrYElOU1RBTEwnIGZpbGUgYnV0IGRv IG5vdCBpbXBsZW1lbnQgYWxsIG9mIHRoZSBmZWF0dXJlcyBkb2N1bWVudGVkCisrYmVsb3cuICBU aGUgbGFjayBvZiBhbiBvcHRpb25hbCBmZWF0dXJlIGluIGEgZ2l2ZW4gcGFja2FnZSBpcyBub3QK KytuZWNlc3NhcmlseSBhIGJ1Zy4gIE1vcmUgcmVjb21tZW5kYXRpb25zIGZvciBHTlUgcGFja2Fn ZXMgY2FuIGJlIGZvdW5kCisraW4gKm5vdGUgTWFrZWZpbGUgQ29udmVudGlvbnM6IChzdGFuZGFy ZHMpTWFrZWZpbGUgQ29udmVudGlvbnMuCisrCisrICAgVGhlIGBjb25maWd1cmUnIHNoZWxsIHNj cmlwdCBhdHRlbXB0cyB0byBndWVzcyBjb3JyZWN0IHZhbHVlcyBmb3IKKyt2YXJpb3VzIHN5c3Rl bS1kZXBlbmRlbnQgdmFyaWFibGVzIHVzZWQgZHVyaW5nIGNvbXBpbGF0aW9uLiAgSXQgdXNlcwor K3Rob3NlIHZhbHVlcyB0byBjcmVhdGUgYSBgTWFrZWZpbGUnIGluIGVhY2ggZGlyZWN0b3J5IG9m IHRoZSBwYWNrYWdlLgorK0l0IG1heSBhbHNvIGNyZWF0ZSBvbmUgb3IgbW9yZSBgLmgnIGZpbGVz IGNvbnRhaW5pbmcgc3lzdGVtLWRlcGVuZGVudAorK2RlZmluaXRpb25zLiAgRmluYWxseSwgaXQg Y3JlYXRlcyBhIHNoZWxsIHNjcmlwdCBgY29uZmlnLnN0YXR1cycgdGhhdAorK3lvdSBjYW4gcnVu IGluIHRoZSBmdXR1cmUgdG8gcmVjcmVhdGUgdGhlIGN1cnJlbnQgY29uZmlndXJhdGlvbiwgYW5k IGEKKytmaWxlIGBjb25maWcubG9nJyBjb250YWluaW5nIGNvbXBpbGVyIG91dHB1dCAodXNlZnVs IG1haW5seSBmb3IKKytkZWJ1Z2dpbmcgYGNvbmZpZ3VyZScpLgorKworKyAgIEl0IGNhbiBhbHNv IHVzZSBhbiBvcHRpb25hbCBmaWxlICh0eXBpY2FsbHkgY2FsbGVkIGBjb25maWcuY2FjaGUnCisr YW5kIGVuYWJsZWQgd2l0aCBgLS1jYWNoZS1maWxlPWNvbmZpZy5jYWNoZScgb3Igc2ltcGx5IGAt QycpIHRoYXQgc2F2ZXMKKyt0aGUgcmVzdWx0cyBvZiBpdHMgdGVzdHMgdG8gc3BlZWQgdXAgcmVj b25maWd1cmluZy4gIENhY2hpbmcgaXMKKytkaXNhYmxlZCBieSBkZWZhdWx0IHRvIHByZXZlbnQg cHJvYmxlbXMgd2l0aCBhY2NpZGVudGFsIHVzZSBvZiBzdGFsZQorK2NhY2hlIGZpbGVzLgorKwor KyAgIElmIHlvdSBuZWVkIHRvIGRvIHVudXN1YWwgdGhpbmdzIHRvIGNvbXBpbGUgdGhlIHBhY2th Z2UsIHBsZWFzZSB0cnkKKyt0byBmaWd1cmUgb3V0IGhvdyBgY29uZmlndXJlJyBjb3VsZCBjaGVj ayB3aGV0aGVyIHRvIGRvIHRoZW0sIGFuZCBtYWlsCisrZGlmZnMgb3IgaW5zdHJ1Y3Rpb25zIHRv IHRoZSBhZGRyZXNzIGdpdmVuIGluIHRoZSBgUkVBRE1FJyBzbyB0aGV5IGNhbgorK2JlIGNvbnNp ZGVyZWQgZm9yIHRoZSBuZXh0IHJlbGVhc2UuICBJZiB5b3UgYXJlIHVzaW5nIHRoZSBjYWNoZSwg YW5kIGF0Cisrc29tZSBwb2ludCBgY29uZmlnLmNhY2hlJyBjb250YWlucyByZXN1bHRzIHlvdSBk b24ndCB3YW50IHRvIGtlZXAsIHlvdQorK21heSByZW1vdmUgb3IgZWRpdCBpdC4KKysKKysgICBU aGUgZmlsZSBgY29uZmlndXJlLmFjJyAob3IgYGNvbmZpZ3VyZS5pbicpIGlzIHVzZWQgdG8gY3Jl YXRlCisrYGNvbmZpZ3VyZScgYnkgYSBwcm9ncmFtIGNhbGxlZCBgYXV0b2NvbmYnLiAgWW91IG5l ZWQgYGNvbmZpZ3VyZS5hYycgaWYKKyt5b3Ugd2FudCB0byBjaGFuZ2UgaXQgb3IgcmVnZW5lcmF0 ZSBgY29uZmlndXJlJyB1c2luZyBhIG5ld2VyIHZlcnNpb24KKytvZiBgYXV0b2NvbmYnLgorKwor KyAgIFRoZSBzaW1wbGVzdCB3YXkgdG8gY29tcGlsZSB0aGlzIHBhY2thZ2UgaXM6CisrCisrICAx LiBgY2QnIHRvIHRoZSBkaXJlY3RvcnkgY29udGFpbmluZyB0aGUgcGFja2FnZSdzIHNvdXJjZSBj b2RlIGFuZCB0eXBlCisrICAgICBgLi9jb25maWd1cmUnIHRvIGNvbmZpZ3VyZSB0aGUgcGFja2Fn ZSBmb3IgeW91ciBzeXN0ZW0uCisrCisrICAgICBSdW5uaW5nIGBjb25maWd1cmUnIG1pZ2h0IHRh a2UgYSB3aGlsZS4gIFdoaWxlIHJ1bm5pbmcsIGl0IHByaW50cworKyAgICAgc29tZSBtZXNzYWdl cyB0ZWxsaW5nIHdoaWNoIGZlYXR1cmVzIGl0IGlzIGNoZWNraW5nIGZvci4KKysKKysgIDIuIFR5 cGUgYG1ha2UnIHRvIGNvbXBpbGUgdGhlIHBhY2thZ2UuCisrCisrICAzLiBPcHRpb25hbGx5LCB0 eXBlIGBtYWtlIGNoZWNrJyB0byBydW4gYW55IHNlbGYtdGVzdHMgdGhhdCBjb21lIHdpdGgKKysg ICAgIHRoZSBwYWNrYWdlLCBnZW5lcmFsbHkgdXNpbmcgdGhlIGp1c3QtYnVpbHQgdW5pbnN0YWxs ZWQgYmluYXJpZXMuCisrCisrICA0LiBUeXBlIGBtYWtlIGluc3RhbGwnIHRvIGluc3RhbGwgdGhl IHByb2dyYW1zIGFuZCBhbnkgZGF0YSBmaWxlcyBhbmQKKysgICAgIGRvY3VtZW50YXRpb24uICBX aGVuIGluc3RhbGxpbmcgaW50byBhIHByZWZpeCBvd25lZCBieSByb290LCBpdCBpcworKyAgICAg cmVjb21tZW5kZWQgdGhhdCB0aGUgcGFja2FnZSBiZSBjb25maWd1cmVkIGFuZCBidWlsdCBhcyBh IHJlZ3VsYXIKKysgICAgIHVzZXIsIGFuZCBvbmx5IHRoZSBgbWFrZSBpbnN0YWxsJyBwaGFzZSBl eGVjdXRlZCB3aXRoIHJvb3QKKysgICAgIHByaXZpbGVnZXMuCisrCisrICA1LiBPcHRpb25hbGx5 LCB0eXBlIGBtYWtlIGluc3RhbGxjaGVjaycgdG8gcmVwZWF0IGFueSBzZWxmLXRlc3RzLCBidXQK KysgICAgIHRoaXMgdGltZSB1c2luZyB0aGUgYmluYXJpZXMgaW4gdGhlaXIgZmluYWwgaW5zdGFs bGVkIGxvY2F0aW9uLgorKyAgICAgVGhpcyB0YXJnZXQgZG9lcyBub3QgaW5zdGFsbCBhbnl0aGlu Zy4gIFJ1bm5pbmcgdGhpcyB0YXJnZXQgYXMgYQorKyAgICAgcmVndWxhciB1c2VyLCBwYXJ0aWN1 bGFybHkgaWYgdGhlIHByaW9yIGBtYWtlIGluc3RhbGwnIHJlcXVpcmVkCisrICAgICByb290IHBy aXZpbGVnZXMsIHZlcmlmaWVzIHRoYXQgdGhlIGluc3RhbGxhdGlvbiBjb21wbGV0ZWQKKysgICAg IGNvcnJlY3RseS4KKysKKysgIDYuIFlvdSBjYW4gcmVtb3ZlIHRoZSBwcm9ncmFtIGJpbmFyaWVz IGFuZCBvYmplY3QgZmlsZXMgZnJvbSB0aGUKKysgICAgIHNvdXJjZSBjb2RlIGRpcmVjdG9yeSBi eSB0eXBpbmcgYG1ha2UgY2xlYW4nLiAgVG8gYWxzbyByZW1vdmUgdGhlCisrICAgICBmaWxlcyB0 aGF0IGBjb25maWd1cmUnIGNyZWF0ZWQgKHNvIHlvdSBjYW4gY29tcGlsZSB0aGUgcGFja2FnZSBm b3IKKysgICAgIGEgZGlmZmVyZW50IGtpbmQgb2YgY29tcHV0ZXIpLCB0eXBlIGBtYWtlIGRpc3Rj bGVhbicuICBUaGVyZSBpcworKyAgICAgYWxzbyBhIGBtYWtlIG1haW50YWluZXItY2xlYW4nIHRh cmdldCwgYnV0IHRoYXQgaXMgaW50ZW5kZWQgbWFpbmx5CisrICAgICBmb3IgdGhlIHBhY2thZ2Un cyBkZXZlbG9wZXJzLiAgSWYgeW91IHVzZSBpdCwgeW91IG1heSBoYXZlIHRvIGdldAorKyAgICAg YWxsIHNvcnRzIG9mIG90aGVyIHByb2dyYW1zIGluIG9yZGVyIHRvIHJlZ2VuZXJhdGUgZmlsZXMg dGhhdCBjYW1lCisrICAgICB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisrCisrICA3LiBPZnRlbiwg eW91IGNhbiBhbHNvIHR5cGUgYG1ha2UgdW5pbnN0YWxsJyB0byByZW1vdmUgdGhlIGluc3RhbGxl ZAorKyAgICAgZmlsZXMgYWdhaW4uICBJbiBwcmFjdGljZSwgbm90IGFsbCBwYWNrYWdlcyBoYXZl IHRlc3RlZCB0aGF0CisrICAgICB1bmluc3RhbGxhdGlvbiB3b3JrcyBjb3JyZWN0bHksIGV2ZW4g dGhvdWdoIGl0IGlzIHJlcXVpcmVkIGJ5IHRoZQorKyAgICAgR05VIENvZGluZyBTdGFuZGFyZHMu CisrCisrICA4LiBTb21lIHBhY2thZ2VzLCBwYXJ0aWN1bGFybHkgdGhvc2UgdGhhdCB1c2UgQXV0 b21ha2UsIHByb3ZpZGUgYG1ha2UKKysgICAgIGRpc3RjaGVjaycsIHdoaWNoIGNhbiBieSB1c2Vk IGJ5IGRldmVsb3BlcnMgdG8gdGVzdCB0aGF0IGFsbCBvdGhlcgorKyAgICAgdGFyZ2V0cyBsaWtl IGBtYWtlIGluc3RhbGwnIGFuZCBgbWFrZSB1bmluc3RhbGwnIHdvcmsgY29ycmVjdGx5LgorKyAg ICAgVGhpcyB0YXJnZXQgaXMgZ2VuZXJhbGx5IG5vdCBydW4gYnkgZW5kIHVzZXJzLgorKworK0Nv bXBpbGVycyBhbmQgT3B0aW9ucworKz09PT09PT09PT09PT09PT09PT09PQorKworKyAgIFNvbWUg c3lzdGVtcyByZXF1aXJlIHVudXN1YWwgb3B0aW9ucyBmb3IgY29tcGlsYXRpb24gb3IgbGlua2lu ZyB0aGF0CisrdGhlIGBjb25maWd1cmUnIHNjcmlwdCBkb2VzIG5vdCBrbm93IGFib3V0LiAgUnVu IGAuL2NvbmZpZ3VyZSAtLWhlbHAnCisrZm9yIGRldGFpbHMgb24gc29tZSBvZiB0aGUgcGVydGlu ZW50IGVudmlyb25tZW50IHZhcmlhYmxlcy4KKysKKysgICBZb3UgY2FuIGdpdmUgYGNvbmZpZ3Vy ZScgaW5pdGlhbCB2YWx1ZXMgZm9yIGNvbmZpZ3VyYXRpb24gcGFyYW1ldGVycworK2J5IHNldHRp bmcgdmFyaWFibGVzIGluIHRoZSBjb21tYW5kIGxpbmUgb3IgaW4gdGhlIGVudmlyb25tZW50LiAg SGVyZQorK2lzIGFuIGV4YW1wbGU6CisrCisrICAgICAuL2NvbmZpZ3VyZSBDQz1jOTkgQ0ZMQUdT PS1nIExJQlM9LWxwb3NpeAorKworKyAgICpOb3RlIERlZmluaW5nIFZhcmlhYmxlczo6LCBmb3Ig bW9yZSBkZXRhaWxzLgorKworK0NvbXBpbGluZyBGb3IgTXVsdGlwbGUgQXJjaGl0ZWN0dXJlcwor Kz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorKworKyAgIFlvdSBjYW4gY29t cGlsZSB0aGUgcGFja2FnZSBmb3IgbW9yZSB0aGFuIG9uZSBraW5kIG9mIGNvbXB1dGVyIGF0IHRo ZQorK3NhbWUgdGltZSwgYnkgcGxhY2luZyB0aGUgb2JqZWN0IGZpbGVzIGZvciBlYWNoIGFyY2hp dGVjdHVyZSBpbiB0aGVpcgorK293biBkaXJlY3RvcnkuICBUbyBkbyB0aGlzLCB5b3UgY2FuIHVz ZSBHTlUgYG1ha2UnLiAgYGNkJyB0byB0aGUKKytkaXJlY3Rvcnkgd2hlcmUgeW91IHdhbnQgdGhl IG9iamVjdCBmaWxlcyBhbmQgZXhlY3V0YWJsZXMgdG8gZ28gYW5kIHJ1bgorK3RoZSBgY29uZmln dXJlJyBzY3JpcHQuICBgY29uZmlndXJlJyBhdXRvbWF0aWNhbGx5IGNoZWNrcyBmb3IgdGhlCisr c291cmNlIGNvZGUgaW4gdGhlIGRpcmVjdG9yeSB0aGF0IGBjb25maWd1cmUnIGlzIGluIGFuZCBp biBgLi4nLiAgVGhpcworK2lzIGtub3duIGFzIGEgIlZQQVRIIiBidWlsZC4KKysKKysgICBXaXRo IGEgbm9uLUdOVSBgbWFrZScsIGl0IGlzIHNhZmVyIHRvIGNvbXBpbGUgdGhlIHBhY2thZ2UgZm9y IG9uZQorK2FyY2hpdGVjdHVyZSBhdCBhIHRpbWUgaW4gdGhlIHNvdXJjZSBjb2RlIGRpcmVjdG9y eS4gIEFmdGVyIHlvdSBoYXZlCisraW5zdGFsbGVkIHRoZSBwYWNrYWdlIGZvciBvbmUgYXJjaGl0 ZWN0dXJlLCB1c2UgYG1ha2UgZGlzdGNsZWFuJyBiZWZvcmUKKytyZWNvbmZpZ3VyaW5nIGZvciBh bm90aGVyIGFyY2hpdGVjdHVyZS4KKysKKysgICBPbiBNYWNPUyBYIDEwLjUgYW5kIGxhdGVyIHN5 c3RlbXMsIHlvdSBjYW4gY3JlYXRlIGxpYnJhcmllcyBhbmQKKytleGVjdXRhYmxlcyB0aGF0IHdv cmsgb24gbXVsdGlwbGUgc3lzdGVtIHR5cGVzLS1rbm93biBhcyAiZmF0IiBvcgorKyJ1bml2ZXJz YWwiIGJpbmFyaWVzLS1ieSBzcGVjaWZ5aW5nIG11bHRpcGxlIGAtYXJjaCcgb3B0aW9ucyB0byB0 aGUKKytjb21waWxlciBidXQgb25seSBhIHNpbmdsZSBgLWFyY2gnIG9wdGlvbiB0byB0aGUgcHJl cHJvY2Vzc29yLiAgTGlrZQorK3RoaXM6CisrCisrICAgICAuL2NvbmZpZ3VyZSBDQz0iZ2NjIC1h cmNoIGkzODYgLWFyY2ggeDg2XzY0IC1hcmNoIHBwYyAtYXJjaCBwcGM2NCIgXAorKyAgICAgICAg ICAgICAgICAgQ1hYPSJnKysgLWFyY2ggaTM4NiAtYXJjaCB4ODZfNjQgLWFyY2ggcHBjIC1hcmNo IHBwYzY0IiBcCisrICAgICAgICAgICAgICAgICBDUFA9ImdjYyAtRSIgQ1hYQ1BQPSJnKysgLUUi CisrCisrICAgVGhpcyBpcyBub3QgZ3VhcmFudGVlZCB0byBwcm9kdWNlIHdvcmtpbmcgb3V0cHV0 IGluIGFsbCBjYXNlcywgeW91CisrbWF5IGhhdmUgdG8gYnVpbGQgb25lIGFyY2hpdGVjdHVyZSBh dCBhIHRpbWUgYW5kIGNvbWJpbmUgdGhlIHJlc3VsdHMKKyt1c2luZyB0aGUgYGxpcG8nIHRvb2wg aWYgeW91IGhhdmUgcHJvYmxlbXMuCisrCisrSW5zdGFsbGF0aW9uIE5hbWVzCisrPT09PT09PT09 PT09PT09PT09CisrCisrICAgQnkgZGVmYXVsdCwgYG1ha2UgaW5zdGFsbCcgaW5zdGFsbHMgdGhl IHBhY2thZ2UncyBjb21tYW5kcyB1bmRlcgorK2AvdXNyL2xvY2FsL2JpbicsIGluY2x1ZGUgZmls ZXMgdW5kZXIgYC91c3IvbG9jYWwvaW5jbHVkZScsIGV0Yy4gIFlvdQorK2NhbiBzcGVjaWZ5IGFu IGluc3RhbGxhdGlvbiBwcmVmaXggb3RoZXIgdGhhbiBgL3Vzci9sb2NhbCcgYnkgZ2l2aW5nCisr YGNvbmZpZ3VyZScgdGhlIG9wdGlvbiBgLS1wcmVmaXg9UFJFRklYJywgd2hlcmUgUFJFRklYIG11 c3QgYmUgYW4KKythYnNvbHV0ZSBmaWxlIG5hbWUuCisrCisrICAgWW91IGNhbiBzcGVjaWZ5IHNl cGFyYXRlIGluc3RhbGxhdGlvbiBwcmVmaXhlcyBmb3IKKythcmNoaXRlY3R1cmUtc3BlY2lmaWMg ZmlsZXMgYW5kIGFyY2hpdGVjdHVyZS1pbmRlcGVuZGVudCBmaWxlcy4gIElmIHlvdQorK3Bhc3Mg dGhlIG9wdGlvbiBgLS1leGVjLXByZWZpeD1QUkVGSVgnIHRvIGBjb25maWd1cmUnLCB0aGUgcGFj a2FnZSB1c2VzCisrUFJFRklYIGFzIHRoZSBwcmVmaXggZm9yIGluc3RhbGxpbmcgcHJvZ3JhbXMg YW5kIGxpYnJhcmllcy4KKytEb2N1bWVudGF0aW9uIGFuZCBvdGhlciBkYXRhIGZpbGVzIHN0aWxs IHVzZSB0aGUgcmVndWxhciBwcmVmaXguCisrCisrICAgSW4gYWRkaXRpb24sIGlmIHlvdSB1c2Ug YW4gdW51c3VhbCBkaXJlY3RvcnkgbGF5b3V0IHlvdSBjYW4gZ2l2ZQorK29wdGlvbnMgbGlrZSBg LS1iaW5kaXI9RElSJyB0byBzcGVjaWZ5IGRpZmZlcmVudCB2YWx1ZXMgZm9yIHBhcnRpY3VsYXIK KytraW5kcyBvZiBmaWxlcy4gIFJ1biBgY29uZmlndXJlIC0taGVscCcgZm9yIGEgbGlzdCBvZiB0 aGUgZGlyZWN0b3JpZXMKKyt5b3UgY2FuIHNldCBhbmQgd2hhdCBraW5kcyBvZiBmaWxlcyBnbyBp biB0aGVtLiAgSW4gZ2VuZXJhbCwgdGhlCisrZGVmYXVsdCBmb3IgdGhlc2Ugb3B0aW9ucyBpcyBl eHByZXNzZWQgaW4gdGVybXMgb2YgYCR7cHJlZml4fScsIHNvIHRoYXQKKytzcGVjaWZ5aW5nIGp1 c3QgYC0tcHJlZml4JyB3aWxsIGFmZmVjdCBhbGwgb2YgdGhlIG90aGVyIGRpcmVjdG9yeQorK3Nw ZWNpZmljYXRpb25zIHRoYXQgd2VyZSBub3QgZXhwbGljaXRseSBwcm92aWRlZC4KKysKKysgICBU aGUgbW9zdCBwb3J0YWJsZSB3YXkgdG8gYWZmZWN0IGluc3RhbGxhdGlvbiBsb2NhdGlvbnMgaXMg dG8gcGFzcyB0aGUKKytjb3JyZWN0IGxvY2F0aW9ucyB0byBgY29uZmlndXJlJzsgaG93ZXZlciwg bWFueSBwYWNrYWdlcyBwcm92aWRlIG9uZSBvcgorK2JvdGggb2YgdGhlIGZvbGxvd2luZyBzaG9y dGN1dHMgb2YgcGFzc2luZyB2YXJpYWJsZSBhc3NpZ25tZW50cyB0byB0aGUKKytgbWFrZSBpbnN0 YWxsJyBjb21tYW5kIGxpbmUgdG8gY2hhbmdlIGluc3RhbGxhdGlvbiBsb2NhdGlvbnMgd2l0aG91 dAorK2hhdmluZyB0byByZWNvbmZpZ3VyZSBvciByZWNvbXBpbGUuCisrCisrICAgVGhlIGZpcnN0 IG1ldGhvZCBpbnZvbHZlcyBwcm92aWRpbmcgYW4gb3ZlcnJpZGUgdmFyaWFibGUgZm9yIGVhY2gK KythZmZlY3RlZCBkaXJlY3RvcnkuICBGb3IgZXhhbXBsZSwgYG1ha2UgaW5zdGFsbAorK3ByZWZp eD0vYWx0ZXJuYXRlL2RpcmVjdG9yeScgd2lsbCBjaG9vc2UgYW4gYWx0ZXJuYXRlIGxvY2F0aW9u IGZvciBhbGwKKytkaXJlY3RvcnkgY29uZmlndXJhdGlvbiB2YXJpYWJsZXMgdGhhdCB3ZXJlIGV4 cHJlc3NlZCBpbiB0ZXJtcyBvZgorK2Ake3ByZWZpeH0nLiAgQW55IGRpcmVjdG9yaWVzIHRoYXQg d2VyZSBzcGVjaWZpZWQgZHVyaW5nIGBjb25maWd1cmUnLAorK2J1dCBub3QgaW4gdGVybXMgb2Yg YCR7cHJlZml4fScsIG11c3QgZWFjaCBiZSBvdmVycmlkZGVuIGF0IGluc3RhbGwKKyt0aW1lIGZv ciB0aGUgZW50aXJlIGluc3RhbGxhdGlvbiB0byBiZSByZWxvY2F0ZWQuICBUaGUgYXBwcm9hY2gg b2YKKyttYWtlZmlsZSB2YXJpYWJsZSBvdmVycmlkZXMgZm9yIGVhY2ggZGlyZWN0b3J5IHZhcmlh YmxlIGlzIHJlcXVpcmVkIGJ5CisrdGhlIEdOVSBDb2RpbmcgU3RhbmRhcmRzLCBhbmQgaWRlYWxs eSBjYXVzZXMgbm8gcmVjb21waWxhdGlvbi4KKytIb3dldmVyLCBzb21lIHBsYXRmb3JtcyBoYXZl IGtub3duIGxpbWl0YXRpb25zIHdpdGggdGhlIHNlbWFudGljcyBvZgorK3NoYXJlZCBsaWJyYXJp ZXMgdGhhdCBlbmQgdXAgcmVxdWlyaW5nIHJlY29tcGlsYXRpb24gd2hlbiB1c2luZyB0aGlzCisr bWV0aG9kLCBwYXJ0aWN1bGFybHkgbm90aWNlYWJsZSBpbiBwYWNrYWdlcyB0aGF0IHVzZSBHTlUg TGlidG9vbC4KKysKKysgICBUaGUgc2Vjb25kIG1ldGhvZCBpbnZvbHZlcyBwcm92aWRpbmcgdGhl IGBERVNURElSJyB2YXJpYWJsZS4gIEZvcgorK2V4YW1wbGUsIGBtYWtlIGluc3RhbGwgREVTVERJ Uj0vYWx0ZXJuYXRlL2RpcmVjdG9yeScgd2lsbCBwcmVwZW5kCisrYC9hbHRlcm5hdGUvZGlyZWN0 b3J5JyBiZWZvcmUgYWxsIGluc3RhbGxhdGlvbiBuYW1lcy4gIFRoZSBhcHByb2FjaCBvZgorK2BE RVNURElSJyBvdmVycmlkZXMgaXMgbm90IHJlcXVpcmVkIGJ5IHRoZSBHTlUgQ29kaW5nIFN0YW5k YXJkcywgYW5kCisrZG9lcyBub3Qgd29yayBvbiBwbGF0Zm9ybXMgdGhhdCBoYXZlIGRyaXZlIGxl dHRlcnMuICBPbiB0aGUgb3RoZXIgaGFuZCwKKytpdCBkb2VzIGJldHRlciBhdCBhdm9pZGluZyBy ZWNvbXBpbGF0aW9uIGlzc3VlcywgYW5kIHdvcmtzIHdlbGwgZXZlbgorK3doZW4gc29tZSBkaXJl Y3Rvcnkgb3B0aW9ucyB3ZXJlIG5vdCBzcGVjaWZpZWQgaW4gdGVybXMgb2YgYCR7cHJlZml4fScK KythdCBgY29uZmlndXJlJyB0aW1lLgorKworK09wdGlvbmFsIEZlYXR1cmVzCisrPT09PT09PT09 PT09PT09PT0KKysKKysgICBJZiB0aGUgcGFja2FnZSBzdXBwb3J0cyBpdCwgeW91IGNhbiBjYXVz ZSBwcm9ncmFtcyB0byBiZSBpbnN0YWxsZWQKKyt3aXRoIGFuIGV4dHJhIHByZWZpeCBvciBzdWZm aXggb24gdGhlaXIgbmFtZXMgYnkgZ2l2aW5nIGBjb25maWd1cmUnIHRoZQorK29wdGlvbiBgLS1w cm9ncmFtLXByZWZpeD1QUkVGSVgnIG9yIGAtLXByb2dyYW0tc3VmZml4PVNVRkZJWCcuCisrCisr ICAgU29tZSBwYWNrYWdlcyBwYXkgYXR0ZW50aW9uIHRvIGAtLWVuYWJsZS1GRUFUVVJFJyBvcHRp b25zIHRvCisrYGNvbmZpZ3VyZScsIHdoZXJlIEZFQVRVUkUgaW5kaWNhdGVzIGFuIG9wdGlvbmFs IHBhcnQgb2YgdGhlIHBhY2thZ2UuCisrVGhleSBtYXkgYWxzbyBwYXkgYXR0ZW50aW9uIHRvIGAt LXdpdGgtUEFDS0FHRScgb3B0aW9ucywgd2hlcmUgUEFDS0FHRQorK2lzIHNvbWV0aGluZyBsaWtl IGBnbnUtYXMnIG9yIGB4JyAoZm9yIHRoZSBYIFdpbmRvdyBTeXN0ZW0pLiAgVGhlCisrYFJFQURN RScgc2hvdWxkIG1lbnRpb24gYW55IGAtLWVuYWJsZS0nIGFuZCBgLS13aXRoLScgb3B0aW9ucyB0 aGF0IHRoZQorK3BhY2thZ2UgcmVjb2duaXplcy4KKysKKysgICBGb3IgcGFja2FnZXMgdGhhdCB1 c2UgdGhlIFggV2luZG93IFN5c3RlbSwgYGNvbmZpZ3VyZScgY2FuIHVzdWFsbHkKKytmaW5kIHRo ZSBYIGluY2x1ZGUgYW5kIGxpYnJhcnkgZmlsZXMgYXV0b21hdGljYWxseSwgYnV0IGlmIGl0IGRv ZXNuJ3QsCisreW91IGNhbiB1c2UgdGhlIGBjb25maWd1cmUnIG9wdGlvbnMgYC0teC1pbmNsdWRl cz1ESVInIGFuZAorK2AtLXgtbGlicmFyaWVzPURJUicgdG8gc3BlY2lmeSB0aGVpciBsb2NhdGlv bnMuCisrCisrICAgU29tZSBwYWNrYWdlcyBvZmZlciB0aGUgYWJpbGl0eSB0byBjb25maWd1cmUg aG93IHZlcmJvc2UgdGhlCisrZXhlY3V0aW9uIG9mIGBtYWtlJyB3aWxsIGJlLiAgRm9yIHRoZXNl IHBhY2thZ2VzLCBydW5uaW5nIGAuL2NvbmZpZ3VyZQorKy0tZW5hYmxlLXNpbGVudC1ydWxlcycg c2V0cyB0aGUgZGVmYXVsdCB0byBtaW5pbWFsIG91dHB1dCwgd2hpY2ggY2FuIGJlCisrb3ZlcnJp ZGRlbiB3aXRoIGBtYWtlIFY9MSc7IHdoaWxlIHJ1bm5pbmcgYC4vY29uZmlndXJlCisrLS1kaXNh YmxlLXNpbGVudC1ydWxlcycgc2V0cyB0aGUgZGVmYXVsdCB0byB2ZXJib3NlLCB3aGljaCBjYW4g YmUKKytvdmVycmlkZGVuIHdpdGggYG1ha2UgVj0wJy4KKysKKytQYXJ0aWN1bGFyIHN5c3RlbXMK Kys9PT09PT09PT09PT09PT09PT0KKysKKysgICBPbiBIUC1VWCwgdGhlIGRlZmF1bHQgQyBjb21w aWxlciBpcyBub3QgQU5TSSBDIGNvbXBhdGlibGUuICBJZiBHTlUKKytDQyBpcyBub3QgaW5zdGFs bGVkLCBpdCBpcyByZWNvbW1lbmRlZCB0byB1c2UgdGhlIGZvbGxvd2luZyBvcHRpb25zIGluCisr b3JkZXIgdG8gdXNlIGFuIEFOU0kgQyBjb21waWxlcjoKKysKKysgICAgIC4vY29uZmlndXJlIEND PSJjYyAtQWUgLURfWE9QRU5fU09VUkNFPTUwMCIKKysKKythbmQgaWYgdGhhdCBkb2Vzbid0IHdv cmssIGluc3RhbGwgcHJlLWJ1aWx0IGJpbmFyaWVzIG9mIEdDQyBmb3IgSFAtVVguCisrCisrICAg T24gT1NGLzEgYS5rLmEuIFRydTY0LCBzb21lIHZlcnNpb25zIG9mIHRoZSBkZWZhdWx0IEMgY29t cGlsZXIgY2Fubm90CisrcGFyc2UgaXRzIGA8d2NoYXIuaD4nIGhlYWRlciBmaWxlLiAgVGhlIG9w dGlvbiBgLW5vZHRrJyBjYW4gYmUgdXNlZCBhcworK2Egd29ya2Fyb3VuZC4gIElmIEdOVSBDQyBp cyBub3QgaW5zdGFsbGVkLCBpdCBpcyB0aGVyZWZvcmUgcmVjb21tZW5kZWQKKyt0byB0cnkKKysK KysgICAgIC4vY29uZmlndXJlIENDPSJjYyIKKysKKythbmQgaWYgdGhhdCBkb2Vzbid0IHdvcmss IHRyeQorKworKyAgICAgLi9jb25maWd1cmUgQ0M9ImNjIC1ub2R0ayIKKysKKysgICBPbiBTb2xh cmlzLCBkb24ndCBwdXQgYC91c3IvdWNiJyBlYXJseSBpbiB5b3VyIGBQQVRIJy4gIFRoaXMKKytk aXJlY3RvcnkgY29udGFpbnMgc2V2ZXJhbCBkeXNmdW5jdGlvbmFsIHByb2dyYW1zOyB3b3JraW5n IHZhcmlhbnRzIG9mCisrdGhlc2UgcHJvZ3JhbXMgYXJlIGF2YWlsYWJsZSBpbiBgL3Vzci9iaW4n LiAgU28sIGlmIHlvdSBuZWVkIGAvdXNyL3VjYicKKytpbiB5b3VyIGBQQVRIJywgcHV0IGl0IF9h ZnRlcl8gYC91c3IvYmluJy4KKysKKysgICBPbiBIYWlrdSwgc29mdHdhcmUgaW5zdGFsbGVkIGZv ciBhbGwgdXNlcnMgZ29lcyBpbiBgL2Jvb3QvY29tbW9uJywKKytub3QgYC91c3IvbG9jYWwnLiAg SXQgaXMgcmVjb21tZW5kZWQgdG8gdXNlIHRoZSBmb2xsb3dpbmcgb3B0aW9uczoKKysKKysgICAg IC4vY29uZmlndXJlIC0tcHJlZml4PS9ib290L2NvbW1vbgorKworK1NwZWNpZnlpbmcgdGhlIFN5 c3RlbSBUeXBlCisrPT09PT09PT09PT09PT09PT09PT09PT09PT0KKysKKysgICBUaGVyZSBtYXkg YmUgc29tZSBmZWF0dXJlcyBgY29uZmlndXJlJyBjYW5ub3QgZmlndXJlIG91dAorK2F1dG9tYXRp Y2FsbHksIGJ1dCBuZWVkcyB0byBkZXRlcm1pbmUgYnkgdGhlIHR5cGUgb2YgbWFjaGluZSB0aGUg cGFja2FnZQorK3dpbGwgcnVuIG9uLiAgVXN1YWxseSwgYXNzdW1pbmcgdGhlIHBhY2thZ2UgaXMg YnVpbHQgdG8gYmUgcnVuIG9uIHRoZQorK19zYW1lXyBhcmNoaXRlY3R1cmVzLCBgY29uZmlndXJl JyBjYW4gZmlndXJlIHRoYXQgb3V0LCBidXQgaWYgaXQgcHJpbnRzCisrYSBtZXNzYWdlIHNheWlu ZyBpdCBjYW5ub3QgZ3Vlc3MgdGhlIG1hY2hpbmUgdHlwZSwgZ2l2ZSBpdCB0aGUKKytgLS1idWls ZD1UWVBFJyBvcHRpb24uICBUWVBFIGNhbiBlaXRoZXIgYmUgYSBzaG9ydCBuYW1lIGZvciB0aGUg c3lzdGVtCisrdHlwZSwgc3VjaCBhcyBgc3VuNCcsIG9yIGEgY2Fub25pY2FsIG5hbWUgd2hpY2gg aGFzIHRoZSBmb3JtOgorKworKyAgICAgQ1BVLUNPTVBBTlktU1lTVEVNCisrCisrd2hlcmUgU1lT VEVNIGNhbiBoYXZlIG9uZSBvZiB0aGVzZSBmb3JtczoKKysKKysgICAgIE9TCisrICAgICBLRVJO RUwtT1MKKysKKysgICBTZWUgdGhlIGZpbGUgYGNvbmZpZy5zdWInIGZvciB0aGUgcG9zc2libGUg dmFsdWVzIG9mIGVhY2ggZmllbGQuICBJZgorK2Bjb25maWcuc3ViJyBpc24ndCBpbmNsdWRlZCBp biB0aGlzIHBhY2thZ2UsIHRoZW4gdGhpcyBwYWNrYWdlIGRvZXNuJ3QKKytuZWVkIHRvIGtub3cg dGhlIG1hY2hpbmUgdHlwZS4KKysKKysgICBJZiB5b3UgYXJlIF9idWlsZGluZ18gY29tcGlsZXIg dG9vbHMgZm9yIGNyb3NzLWNvbXBpbGluZywgeW91IHNob3VsZAorK3VzZSB0aGUgb3B0aW9uIGAt LXRhcmdldD1UWVBFJyB0byBzZWxlY3QgdGhlIHR5cGUgb2Ygc3lzdGVtIHRoZXkgd2lsbAorK3By b2R1Y2UgY29kZSBmb3IuCisrCisrICAgSWYgeW91IHdhbnQgdG8gX3VzZV8gYSBjcm9zcyBjb21w aWxlciwgdGhhdCBnZW5lcmF0ZXMgY29kZSBmb3IgYQorK3BsYXRmb3JtIGRpZmZlcmVudCBmcm9t IHRoZSBidWlsZCBwbGF0Zm9ybSwgeW91IHNob3VsZCBzcGVjaWZ5IHRoZQorKyJob3N0IiBwbGF0 Zm9ybSAoaS5lLiwgdGhhdCBvbiB3aGljaCB0aGUgZ2VuZXJhdGVkIHByb2dyYW1zIHdpbGwKKytl dmVudHVhbGx5IGJlIHJ1bikgd2l0aCBgLS1ob3N0PVRZUEUnLgorKworK1NoYXJpbmcgRGVmYXVs dHMKKys9PT09PT09PT09PT09PT09CisrCisrICAgSWYgeW91IHdhbnQgdG8gc2V0IGRlZmF1bHQg dmFsdWVzIGZvciBgY29uZmlndXJlJyBzY3JpcHRzIHRvIHNoYXJlLAorK3lvdSBjYW4gY3JlYXRl IGEgc2l0ZSBzaGVsbCBzY3JpcHQgY2FsbGVkIGBjb25maWcuc2l0ZScgdGhhdCBnaXZlcworK2Rl ZmF1bHQgdmFsdWVzIGZvciB2YXJpYWJsZXMgbGlrZSBgQ0MnLCBgY2FjaGVfZmlsZScsIGFuZCBg cHJlZml4Jy4KKytgY29uZmlndXJlJyBsb29rcyBmb3IgYFBSRUZJWC9zaGFyZS9jb25maWcuc2l0 ZScgaWYgaXQgZXhpc3RzLCB0aGVuCisrYFBSRUZJWC9ldGMvY29uZmlnLnNpdGUnIGlmIGl0IGV4 aXN0cy4gIE9yLCB5b3UgY2FuIHNldCB0aGUKKytgQ09ORklHX1NJVEUnIGVudmlyb25tZW50IHZh cmlhYmxlIHRvIHRoZSBsb2NhdGlvbiBvZiB0aGUgc2l0ZSBzY3JpcHQuCisrQSB3YXJuaW5nOiBu b3QgYWxsIGBjb25maWd1cmUnIHNjcmlwdHMgbG9vayBmb3IgYSBzaXRlIHNjcmlwdC4KKysKKytE ZWZpbmluZyBWYXJpYWJsZXMKKys9PT09PT09PT09PT09PT09PT0KKysKKysgICBWYXJpYWJsZXMg bm90IGRlZmluZWQgaW4gYSBzaXRlIHNoZWxsIHNjcmlwdCBjYW4gYmUgc2V0IGluIHRoZQorK2Vu dmlyb25tZW50IHBhc3NlZCB0byBgY29uZmlndXJlJy4gIEhvd2V2ZXIsIHNvbWUgcGFja2FnZXMg bWF5IHJ1bgorK2NvbmZpZ3VyZSBhZ2FpbiBkdXJpbmcgdGhlIGJ1aWxkLCBhbmQgdGhlIGN1c3Rv bWl6ZWQgdmFsdWVzIG9mIHRoZXNlCisrdmFyaWFibGVzIG1heSBiZSBsb3N0LiAgSW4gb3JkZXIg dG8gYXZvaWQgdGhpcyBwcm9ibGVtLCB5b3Ugc2hvdWxkIHNldAorK3RoZW0gaW4gdGhlIGBjb25m aWd1cmUnIGNvbW1hbmQgbGluZSwgdXNpbmcgYFZBUj12YWx1ZScuICBGb3IgZXhhbXBsZToKKysK KysgICAgIC4vY29uZmlndXJlIENDPS91c3IvbG9jYWwyL2Jpbi9nY2MKKysKKytjYXVzZXMgdGhl IHNwZWNpZmllZCBgZ2NjJyB0byBiZSB1c2VkIGFzIHRoZSBDIGNvbXBpbGVyICh1bmxlc3MgaXQg aXMKKytvdmVycmlkZGVuIGluIHRoZSBzaXRlIHNoZWxsIHNjcmlwdCkuCisrCisrVW5mb3J0dW5h dGVseSwgdGhpcyB0ZWNobmlxdWUgZG9lcyBub3Qgd29yayBmb3IgYENPTkZJR19TSEVMTCcgZHVl IHRvCisrYW4gQXV0b2NvbmYgYnVnLiAgVW50aWwgdGhlIGJ1ZyBpcyBmaXhlZCB5b3UgY2FuIHVz ZSB0aGlzIHdvcmthcm91bmQ6CisrCisrICAgICBDT05GSUdfU0hFTEw9L2Jpbi9iYXNoIC9iaW4v YmFzaCAuL2NvbmZpZ3VyZSBDT05GSUdfU0hFTEw9L2Jpbi9iYXNoCisrCisrYGNvbmZpZ3VyZScg SW52b2NhdGlvbgorKz09PT09PT09PT09PT09PT09PT09PT0KKysKKysgICBgY29uZmlndXJlJyBy ZWNvZ25pemVzIHRoZSBmb2xsb3dpbmcgb3B0aW9ucyB0byBjb250cm9sIGhvdyBpdAorK29wZXJh dGVzLgorKworK2AtLWhlbHAnCisrYC1oJworKyAgICAgUHJpbnQgYSBzdW1tYXJ5IG9mIGFsbCBv ZiB0aGUgb3B0aW9ucyB0byBgY29uZmlndXJlJywgYW5kIGV4aXQuCisrCisrYC0taGVscD1zaG9y dCcKKytgLS1oZWxwPXJlY3Vyc2l2ZScKKysgICAgIFByaW50IGEgc3VtbWFyeSBvZiB0aGUgb3B0 aW9ucyB1bmlxdWUgdG8gdGhpcyBwYWNrYWdlJ3MKKysgICAgIGBjb25maWd1cmUnLCBhbmQgZXhp dC4gIFRoZSBgc2hvcnQnIHZhcmlhbnQgbGlzdHMgb3B0aW9ucyB1c2VkCisrICAgICBvbmx5IGlu IHRoZSB0b3AgbGV2ZWwsIHdoaWxlIHRoZSBgcmVjdXJzaXZlJyB2YXJpYW50IGxpc3RzIG9wdGlv bnMKKysgICAgIGFsc28gcHJlc2VudCBpbiBhbnkgbmVzdGVkIHBhY2thZ2VzLgorKworK2AtLXZl cnNpb24nCisrYC1WJworKyAgICAgUHJpbnQgdGhlIHZlcnNpb24gb2YgQXV0b2NvbmYgdXNlZCB0 byBnZW5lcmF0ZSB0aGUgYGNvbmZpZ3VyZScKKysgICAgIHNjcmlwdCwgYW5kIGV4aXQuCisrCisr YC0tY2FjaGUtZmlsZT1GSUxFJworKyAgICAgRW5hYmxlIHRoZSBjYWNoZTogdXNlIGFuZCBzYXZl IHRoZSByZXN1bHRzIG9mIHRoZSB0ZXN0cyBpbiBGSUxFLAorKyAgICAgdHJhZGl0aW9uYWxseSBg Y29uZmlnLmNhY2hlJy4gIEZJTEUgZGVmYXVsdHMgdG8gYC9kZXYvbnVsbCcgdG8KKysgICAgIGRp c2FibGUgY2FjaGluZy4KKysKKytgLS1jb25maWctY2FjaGUnCisrYC1DJworKyAgICAgQWxpYXMg Zm9yIGAtLWNhY2hlLWZpbGU9Y29uZmlnLmNhY2hlJy4KKysKKytgLS1xdWlldCcKKytgLS1zaWxl bnQnCisrYC1xJworKyAgICAgRG8gbm90IHByaW50IG1lc3NhZ2VzIHNheWluZyB3aGljaCBjaGVj a3MgYXJlIGJlaW5nIG1hZGUuICBUbworKyAgICAgc3VwcHJlc3MgYWxsIG5vcm1hbCBvdXRwdXQs IHJlZGlyZWN0IGl0IHRvIGAvZGV2L251bGwnIChhbnkgZXJyb3IKKysgICAgIG1lc3NhZ2VzIHdp bGwgc3RpbGwgYmUgc2hvd24pLgorKworK2AtLXNyY2Rpcj1ESVInCisrICAgICBMb29rIGZvciB0 aGUgcGFja2FnZSdzIHNvdXJjZSBjb2RlIGluIGRpcmVjdG9yeSBESVIuICBVc3VhbGx5CisrICAg ICBgY29uZmlndXJlJyBjYW4gZGV0ZXJtaW5lIHRoYXQgZGlyZWN0b3J5IGF1dG9tYXRpY2FsbHku CisrCisrYC0tcHJlZml4PURJUicKKysgICAgIFVzZSBESVIgYXMgdGhlIGluc3RhbGxhdGlvbiBw cmVmaXguICAqbm90ZSBJbnN0YWxsYXRpb24gTmFtZXM6OgorKyAgICAgZm9yIG1vcmUgZGV0YWls cywgaW5jbHVkaW5nIG90aGVyIG9wdGlvbnMgYXZhaWxhYmxlIGZvciBmaW5lLXR1bmluZworKyAg ICAgdGhlIGluc3RhbGxhdGlvbiBsb2NhdGlvbnMuCisrCisrYC0tbm8tY3JlYXRlJworK2AtbicK KysgICAgIFJ1biB0aGUgY29uZmlndXJlIGNoZWNrcywgYnV0IHN0b3AgYmVmb3JlIGNyZWF0aW5n IGFueSBvdXRwdXQKKysgICAgIGZpbGVzLgorKworK2Bjb25maWd1cmUnIGFsc28gYWNjZXB0cyBz b21lIG90aGVyLCBub3Qgd2lkZWx5IHVzZWZ1bCwgb3B0aW9ucy4gIFJ1bgorK2Bjb25maWd1cmUg LS1oZWxwJyBmb3IgbW9yZSBkZXRhaWxzLgorKworZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNr L01ha2VmaWxlIHNvY2ktMy4wLjBfdHJlcDMwMC9NYWtlZmlsZQorLS0tIHNvY2ktMy4wLjBfNC1w YWNrL01ha2VmaWxlCTIwMTAtMDEtMjMgMTQ6NDU6NDQuMDAwMDAwMDAwICswMTAwCisrKysgc29j aS0zLjAuMF90cmVwMzAwL01ha2VmaWxlCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICsw MTAwCitAQCAtMSwyMCArMCwwIEBACistYnVpbGRfbGlicyA6CistCWNkIGJ1aWxkL3VuaXg7IGBj YXQgbG9jYWwvdGNsYCBidWlsZC50Y2wgY29yZSBjb3JlLXNvIG15c3FsIG15c3FsLXNvIHBvc3Rn cmVzcWwgcG9zdGdyZXNxbC1zbyBvcmFjbGUgb3JhY2xlLXNvCistCistdGVzdHMgOgorLQljZCBi dWlsZC91bml4OyBgY2F0IGxvY2FsL3RjbGAgYnVpbGQudGNsIG15c3FsLXRlc3Qgb3JhY2xlLXRl c3QgcG9zdGdyZXNxbC10ZXN0CistCistaW5zdGFsbCA6CistCWNkIGJ1aWxkL3VuaXg7IGBjYXQg bG9jYWwvdGNsYCBpbnN0YWxsLnRjbAorLQorLXVuaW5zdGFsbCA6CistCWNkIGJ1aWxkL3VuaXgv bG9jYWw7IC9iaW4vc2ggdW5pbnN0YWxsLnNoCistCistY2xlYW4gOgorLQlmaW5kIC4gLW5hbWUg JyoubycgfCB4YXJncyBybQorLQlmaW5kIC4gLW5hbWUgJyouYScgfCB4YXJncyBybQorLQlmaW5k IC4gLW5hbWUgJyouc28nIHwgeGFyZ3Mgcm0KKy0Jcm0gLWYgc3JjL2JhY2tlbmRzL215c3FsL3Rl c3QvdGVzdC1teXNxbAorLQlybSAtZiBzcmMvYmFja2VuZHMvb3JhY2xlL3Rlc3QvdGVzdC1vcmFj bGUKKy0Jcm0gLWYgc3JjL2JhY2tlbmRzL3Bvc3RncmVzcWwvdGVzdC90ZXN0LXBvc3RncmVzcWwK Ky0Jcm0gLXJmIGJ1aWxkL3VuaXgvaW5jbHVkZSBidWlsZC91bml4L2xpYiBidWlsZC91bml4L3Rl c3RzCitkaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svTWFrZWZpbGUuYW0gc29jaS0zLjAuMF90 cmVwMzAwL01ha2VmaWxlLmFtCistLS0gc29jaS0zLjAuMF80LXBhY2svTWFrZWZpbGUuYW0JMTk3 MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKKysrKyBzb2NpLTMuMC4wX3RyZXAzMDAv TWFrZWZpbGUuYW0JMjAwOS0wNS0wMyAwMDoxOTo0Mi4wMDAwMDAwMDAgKzAyMDAKK0BAIC0wLDAg KzEsNjIgQEAKKysjIyB0b3AgZGlyZWN0b3J5CisraW5jbHVkZSAkKHRvcF9zcmNkaXIpL01ha2Vm aWxlLmNvbW1vbgorKworK0FDTE9DQUxfQU1GTEFHUyA9IC1JIGNvbmZpZworKworK0FVVE9NQUtF X09QVElPTlMgPSBkaXN0LWJ6aXAyCisrCisraWYgUlVOX1RFU1RTCisrIyAgVEVTVF9ESVIgPSB0 ZXN0CisrZW5kaWYKKysKKytNQU5fRE9DX0RJUiA9IG1hbgorKworKyMgTWFpbnRhaW5hbmNlIGZp bGVzCisrTUFJTlRBSU5FUkNMRUFORklMRVMgPSBNYWtlZmlsZS5pbiBhY2xvY2FsLm00IGNvbmZp Z3VyZSBcCisrCQkJY29uZmlnLWguaW4gc2ljL3N0YW1wLWguaW4gYXV0b2dlbi5zaCBib290c3Ry YXAKKysKKysjRVhUUkFfRElTVF9GT1JfU09DSV9DT01QQVRJQklMSVRZID0gLl9jb25maWd1cmUg Ll9NYWtlZmlsZSBjb250cmliCisrRVhUUkFfRElTVF9GT1JfU09DSV9DT01QQVRJQklMSVRZID0g Y29udHJpYgorKworK0VYVFJBX0RJU1QgPSBNYWtlZmlsZS5jb21tb24gJChFWFRSQV9ESVNUX0ZP Ul9TT0NJX0NPTVBBVElCSUxJVFkpIEBQQUNLQUdFQC5tNAorKworKyMgQnVpbGQgaW4gdGhlc2Ug ZGlyZWN0b3JpZXM6CisrU1VCRElSUyA9IGJ1aWxkIEBQQUNLQUdFQCAkKE1BTl9ET0NfRElSKSBk b2MgJChURVNUX0RJUikKKysKKysKKysjIENvbmZpZ3VyYXRpb24gaGVscGVycworK2Jpbl9TQ1JJ UFRTID0gQFBBQ0tBR0VALWNvbmZpZworKworK3BrZ2NvbmZpZ2RpciA9ICQobGliZGlyKS9wa2dj b25maWcKKytwa2djb25maWdfREFUQSA9IEBQQUNLQUdFQC5wYworKworK200ZGF0YWRpciA9ICQo ZGF0YWRpcikvYWNsb2NhbAorK200ZGF0YV9EQVRBID0gQFBBQ0tBR0VALm00CisrCisrIyBUYXJn ZXRzCisrdW5pbnN0YWxsLWxvY2FsOgorKwlybSAtcmYgJChERVNURElSKSQoaW5jbHVkZWRpcikv QFBBQ0tBR0VACisrCisrZGlzdC1odG1sOgorKwkkKE1BS0UpIC1DIGRvYyBkaXN0LWh0bWwKKysK KysKKytzbmFwc2hvdDogc25hcHNob3Qtc3JjIHNuYXBzaG90LWh0bWwKKysKKysKKytzbmFwc2hv dC1zcmM6CisrICAgICAgICAkKE1BS0UpIGRpc3QgZGlzdGRpcj1AUEFDS0FHRV9UQVJOQU1FQC1g ZGF0ZSArIiVZJW0lZCJgCisrCisrc25hcHNob3QtaHRtbDoKKysJJChNQUtFKSAtQyBkb2MgZGlz dC1odG1sIGh0bWxfdGFybmFtZT1AUEFDS0FHRV9UQVJOQU1FQC1odG1sLWRvYy1gZGF0ZSArIiVZ JW0lZCJgCisrCisrdXBsb2FkOiB1cGxvYWQtc3JjIHVwbG9hZC1odG1sCisrCisrdXBsb2FkLXNy YzogZGlzdAorKwlAVVBMT0FEX0NPTU1BTkRAIEBQQUNLQUdFX1RBUk5BTUVALUBWRVJTSU9OQC50 YXIuZ3ogXAorKwlAUEFDS0FHRV9UQVJOQU1FQC1AVkVSU0lPTkAudGFyLmJ6MgorKworK3VwbG9h ZC1odG1sOiBkaXN0LWh0bWwKKysJQFVQTE9BRF9DT01NQU5EQCBAUEFDS0FHRV9UQVJOQU1FQC1o dG1sLWRvYy1AVkVSU0lPTkAudGFyLmd6IFwKKysJQFBBQ0tBR0VfVEFSTkFNRUAtaHRtbC1kb2Mt QFZFUlNJT05ALnRhci5iejIKKysKK2RpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9NYWtlZmls ZS5jb21tb24gc29jaS0zLjAuMF90cmVwMzAwL01ha2VmaWxlLmNvbW1vbgorLS0tIHNvY2ktMy4w LjBfNC1wYWNrL01ha2VmaWxlLmNvbW1vbgkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCAr MDEwMAorKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9NYWtlZmlsZS5jb21tb24JMjAwOS0wNC0xOCAx NzoyMDozMi4wMDAwMDAwMDAgKzAyMDAKK0BAIC0wLDAgKzEsMiBAQAorK0BTRVRfTUFLRUAKKytB TV9DUFBGTEFHUyA9IC1JJCh0b3BfYnVpbGRkaXIpIC1JJCh0b3Bfc3JjZGlyKQorZGlmZiAtTnVy IHNvY2ktMy4wLjBfNC1wYWNrL01ha2VmaWxlLmluIHNvY2ktMy4wLjBfdHJlcDMwMC9NYWtlZmls ZS5pbgorLS0tIHNvY2ktMy4wLjBfNC1wYWNrL01ha2VmaWxlLmluCTE5NzAtMDEtMDEgMDE6MDA6 MDAuMDAwMDAwMDAwICswMTAwCisrKysgc29jaS0zLjAuMF90cmVwMzAwL01ha2VmaWxlLmluCTIw MTAtMDEtMjMgMTQ6NDQ6NTIuMDAwMDAwMDAwICswMTAwCitAQCAtMCwwICsxLDkyNCBAQAorKyMg TWFrZWZpbGUuaW4gZ2VuZXJhdGVkIGJ5IGF1dG9tYWtlIDEuMTEuMSBmcm9tIE1ha2VmaWxlLmFt LgorKyMgQGNvbmZpZ3VyZV9pbnB1dEAKKysKKysjIENvcHlyaWdodCAoQykgMTk5NCwgMTk5NSwg MTk5NiwgMTk5NywgMTk5OCwgMTk5OSwgMjAwMCwgMjAwMSwgMjAwMiwKKysjIDIwMDMsIDIwMDQs IDIwMDUsIDIwMDYsIDIwMDcsIDIwMDgsIDIwMDkgIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwK KysjIEluYy4KKysjIFRoaXMgTWFrZWZpbGUuaW4gaXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUg U29mdHdhcmUgRm91bmRhdGlvbgorKyMgZ2l2ZXMgdW5saW1pdGVkIHBlcm1pc3Npb24gdG8gY29w eSBhbmQvb3IgZGlzdHJpYnV0ZSBpdCwKKysjIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb25z LCBhcyBsb25nIGFzIHRoaXMgbm90aWNlIGlzIHByZXNlcnZlZC4KKysKKysjIFRoaXMgcHJvZ3Jh bSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorKyMg YnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZLCB0byB0aGUgZXh0ZW50IHBlcm1pdHRlZCBieSBsYXc7 IHdpdGhvdXQKKysjIGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZ IG9yIEZJVE5FU1MgRk9SIEEKKysjIFBBUlRJQ1VMQVIgUFVSUE9TRS4KKysKKytAU0VUX01BS0VA CisrCisrCisrVlBBVEggPSBAc3JjZGlyQAorK3BrZ2RhdGFkaXIgPSAkKGRhdGFkaXIpL0BQQUNL QUdFQAorK3BrZ2luY2x1ZGVkaXIgPSAkKGluY2x1ZGVkaXIpL0BQQUNLQUdFQAorK3BrZ2xpYmRp ciA9ICQobGliZGlyKS9AUEFDS0FHRUAKKytwa2dsaWJleGVjZGlyID0gJChsaWJleGVjZGlyKS9A UEFDS0FHRUAKKythbV9fY2QgPSBDRFBBVEg9IiQke1pTSF9WRVJTSU9OKy59JChQQVRIX1NFUEFS QVRPUikiICYmIGNkCisraW5zdGFsbF9zaF9EQVRBID0gJChpbnN0YWxsX3NoKSAtYyAtbSA2NDQK KytpbnN0YWxsX3NoX1BST0dSQU0gPSAkKGluc3RhbGxfc2gpIC1jCisraW5zdGFsbF9zaF9TQ1JJ UFQgPSAkKGluc3RhbGxfc2gpIC1jCisrSU5TVEFMTF9IRUFERVIgPSAkKElOU1RBTExfREFUQSkK Kyt0cmFuc2Zvcm0gPSAkKHByb2dyYW1fdHJhbnNmb3JtX25hbWUpCisrTk9STUFMX0lOU1RBTEwg PSA6CisrUFJFX0lOU1RBTEwgPSA6CisrUE9TVF9JTlNUQUxMID0gOgorK05PUk1BTF9VTklOU1RB TEwgPSA6CisrUFJFX1VOSU5TVEFMTCA9IDoKKytQT1NUX1VOSU5TVEFMTCA9IDoKKytidWlsZF90 cmlwbGV0ID0gQGJ1aWxkQAorK2hvc3RfdHJpcGxldCA9IEBob3N0QAorK0RJU1RfQ09NTU9OID0g UkVBRE1FICQoYW1fX2NvbmZpZ3VyZV9kZXBzKSAkKHNyY2RpcikvTWFrZWZpbGUuYW0gXAorKwkk KHNyY2RpcikvTWFrZWZpbGUuaW4gJChzcmNkaXIpL3NvY2ktY29uZmlnLmluIFwKKysJJChzcmNk aXIpL3NvY2kucGMuaW4gJChzcmNkaXIpL3NvY2kuc3BlYy5pbiBcCisrCSQodG9wX3NyY2Rpcikv TWFrZWZpbGUuY29tbW9uICQodG9wX3NyY2RpcikvY29uZmlndXJlIEFVVEhPUlMgXAorKwlDT1BZ SU5HIENoYW5nZUxvZyBJTlNUQUxMIE5FV1MgY29uZmlnL2NvbmZpZy5ndWVzcyBcCisrCWNvbmZp Zy9jb25maWcuc3ViIGNvbmZpZy9kZXBjb21wIGNvbmZpZy9pbnN0YWxsLXNoIFwKKysJY29uZmln L2x0bWFpbi5zaCBjb25maWcvbWlzc2luZworK3N1YmRpciA9IC4KKytBQ0xPQ0FMX000ID0gJCh0 b3Bfc3JjZGlyKS9hY2xvY2FsLm00CisrYW1fX2FjbG9jYWxfbTRfZGVwcyA9ICQodG9wX3NyY2Rp cikvY29uZmlnL2F4X2Jvb3N0Lm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfbXlzcWwu bTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9vcmFjbGVfb2NpLm00IFwKKysJJCh0b3Bf c3JjZGlyKS9jb25maWcvYXhfcG9zdGdyZXNxbC5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmln L2NwcHVuaXQubTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9saWJ0b29sLm00IFwKKysJJCh0 b3Bfc3JjZGlyKS9jb25maWcvbHRvcHRpb25zLm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcv bHRzdWdhci5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2x0dmVyc2lvbi5tNCBcCisrCSQo dG9wX3NyY2RpcikvY29uZmlnL2x0fm9ic29sZXRlLm00ICQodG9wX3NyY2RpcikvY29uZmlndXJl LmFjCisrYW1fX2NvbmZpZ3VyZV9kZXBzID0gJChhbV9fYWNsb2NhbF9tNF9kZXBzKSAkKENPTkZJ R1VSRV9ERVBFTkRFTkNJRVMpIFwKKysJJChBQ0xPQ0FMX000KQorK2FtX19DT05GSUdfRElTVENM RUFOX0ZJTEVTID0gY29uZmlnLnN0YXR1cyBjb25maWcuY2FjaGUgY29uZmlnLmxvZyBcCisrIGNv bmZpZ3VyZS5saW5lbm8gY29uZmlnLnN0YXR1cy5saW5lbm8KKytta2luc3RhbGxkaXJzID0gJChp bnN0YWxsX3NoKSAtZAorK0NPTkZJR19IRUFERVIgPSAkKHRvcF9idWlsZGRpcikvc29jaS9jb25m aWcuaAorK0NPTkZJR19DTEVBTl9GSUxFUyA9IHNvY2ktY29uZmlnIHNvY2kucGMgc29jaS5zcGVj CisrQ09ORklHX0NMRUFOX1ZQQVRIX0ZJTEVTID0KKythbV9fdnBhdGhfYWRqX3NldHVwID0gc3Jj ZGlyc3RyaXA9YGVjaG8gIiQoc3JjZGlyKSIgfCBzZWQgJ3N8LnwufGcnYDsKKythbV9fdnBhdGhf YWRqID0gY2FzZSAkJHAgaW4gXAorKyAgICAkKHNyY2RpcikvKikgZj1gZWNobyAiJCRwIiB8IHNl ZCAic3xeJCRzcmNkaXJzdHJpcC98fCJgOzsgXAorKyAgICAqKSBmPSQkcDs7IFwKKysgIGVzYWM7 CisrYW1fX3N0cmlwX2RpciA9IGY9YGVjaG8gJCRwIHwgc2VkIC1lICdzfF4uKi98fCdgOworK2Ft X19pbnN0YWxsX21heCA9IDQwCisrYW1fX25vYmFzZV9zdHJpcF9zZXR1cCA9IFwKKysgIHNyY2Rp cnN0cmlwPWBlY2hvICIkKHNyY2RpcikiIHwgc2VkICdzL1tdLlteJCRcXCp8XS9cXFxcJi9nJ2AK KythbV9fbm9iYXNlX3N0cmlwID0gXAorKyAgZm9yIHAgaW4gJCRsaXN0OyBkbyBlY2hvICIkJHAi OyBkb25lIHwgc2VkIC1lICJzfCQkc3JjZGlyc3RyaXAvfHwiCisrYW1fX25vYmFzZV9saXN0ID0g JChhbV9fbm9iYXNlX3N0cmlwX3NldHVwKTsgXAorKyAgZm9yIHAgaW4gJCRsaXN0OyBkbyBlY2hv ICIkJHAgJCRwIjsgZG9uZSB8IFwKKysgIHNlZCAic3wgJCRzcmNkaXJzdHJpcC98IHw7IicgLyAu KlwvLyFzLyAuKi8gLi87IHMsXCggLipcKS9bXi9dKiQkLFwxLCcgfCBcCisrICAkKEFXSykgJ0JF R0lOIHsgZmlsZXNbIi4iXSA9ICIiIH0geyBmaWxlc1skJDJdID0gZmlsZXNbJCQyXSAiICIgJCQx OyBcCisrICAgIGlmICgrK25bJCQyXSA9PSAkKGFtX19pbnN0YWxsX21heCkpIFwKKysgICAgICB7 IHByaW50ICQkMiwgZmlsZXNbJCQyXTsgblskJDJdID0gMDsgZmlsZXNbJCQyXSA9ICIiIH0gfSBc CisrICAgIEVORCB7IGZvciAoZGlyIGluIGZpbGVzKSBwcmludCBkaXIsIGZpbGVzW2Rpcl0gfScK KythbV9fYmFzZV9saXN0ID0gXAorKyAgc2VkICckJCFOOyQkIU47JCQhTjskJCFOOyQkIU47JCQh TjskJCFOO3MvXG4vIC9nJyB8IFwKKysgIHNlZCAnJCQhTjskJCFOOyQkIU47JCQhTjtzL1xuLyAv ZycKKythbV9faW5zdGFsbGRpcnMgPSAiJChERVNURElSKSQoYmluZGlyKSIgIiQoREVTVERJUikk KG00ZGF0YWRpcikiIFwKKysJIiQoREVTVERJUikkKHBrZ2NvbmZpZ2RpcikiCisrU0NSSVBUUyA9 ICQoYmluX1NDUklQVFMpCisrU09VUkNFUyA9CisrRElTVF9TT1VSQ0VTID0KKytSRUNVUlNJVkVf VEFSR0VUUyA9IGFsbC1yZWN1cnNpdmUgY2hlY2stcmVjdXJzaXZlIGR2aS1yZWN1cnNpdmUgXAor KwlodG1sLXJlY3Vyc2l2ZSBpbmZvLXJlY3Vyc2l2ZSBpbnN0YWxsLWRhdGEtcmVjdXJzaXZlIFwK KysJaW5zdGFsbC1kdmktcmVjdXJzaXZlIGluc3RhbGwtZXhlYy1yZWN1cnNpdmUgXAorKwlpbnN0 YWxsLWh0bWwtcmVjdXJzaXZlIGluc3RhbGwtaW5mby1yZWN1cnNpdmUgXAorKwlpbnN0YWxsLXBk Zi1yZWN1cnNpdmUgaW5zdGFsbC1wcy1yZWN1cnNpdmUgaW5zdGFsbC1yZWN1cnNpdmUgXAorKwlp bnN0YWxsY2hlY2stcmVjdXJzaXZlIGluc3RhbGxkaXJzLXJlY3Vyc2l2ZSBwZGYtcmVjdXJzaXZl IFwKKysJcHMtcmVjdXJzaXZlIHVuaW5zdGFsbC1yZWN1cnNpdmUKKytEQVRBID0gJChtNGRhdGFf REFUQSkgJChwa2djb25maWdfREFUQSkKKytSRUNVUlNJVkVfQ0xFQU5fVEFSR0VUUyA9IG1vc3Rs eWNsZWFuLXJlY3Vyc2l2ZSBjbGVhbi1yZWN1cnNpdmUJXAorKyAgZGlzdGNsZWFuLXJlY3Vyc2l2 ZSBtYWludGFpbmVyLWNsZWFuLXJlY3Vyc2l2ZQorK0FNX1JFQ1VSU0lWRV9UQVJHRVRTID0gJChS RUNVUlNJVkVfVEFSR0VUUzotcmVjdXJzaXZlPSkgXAorKwkkKFJFQ1VSU0lWRV9DTEVBTl9UQVJH RVRTOi1yZWN1cnNpdmU9KSB0YWdzIFRBR1MgY3RhZ3MgQ1RBR1MgXAorKwlkaXN0ZGlyIGRpc3Qg ZGlzdC1hbGwgZGlzdGNoZWNrCisrRVRBR1MgPSBldGFncworK0NUQUdTID0gY3RhZ3MKKytESVNU X1NVQkRJUlMgPSAkKFNVQkRJUlMpCisrRElTVEZJTEVTID0gJChESVNUX0NPTU1PTikgJChESVNU X1NPVVJDRVMpICQoVEVYSU5GT1MpICQoRVhUUkFfRElTVCkKKytkaXN0ZGlyID0gJChQQUNLQUdF KS0kKFZFUlNJT04pCisrdG9wX2Rpc3RkaXIgPSAkKGRpc3RkaXIpCisrYW1fX3JlbW92ZV9kaXN0 ZGlyID0gXAorKyAgeyB0ZXN0ICEgLWQgIiQoZGlzdGRpcikiIFwKKysgICAgfHwgeyBmaW5kICIk KGRpc3RkaXIpIiAtdHlwZSBkICEgLXBlcm0gLTIwMCAtZXhlYyBjaG1vZCB1K3cge30gJzsnIFwK KysgICAgICAgICAmJiBybSAtZnIgIiQoZGlzdGRpcikiOyB9OyB9CisrYW1fX3JlbGF0aXZpemUg PSBcCisrICBkaXIwPWBwd2RgOyBcCisrICBzZWRfZmlyc3Q9J3MsXlwoW14vXSpcKS8uKiQkLFwx LCc7IFwKKysgIHNlZF9yZXN0PSdzLF5bXi9dKi8qLCwnOyBcCisrICBzZWRfbGFzdD0ncyxeLiov XChbXi9dKlwpJCQsXDEsJzsgXAorKyAgc2VkX2J1dGxhc3Q9J3MsLypbXi9dKiQkLCwnOyBcCisr ICB3aGlsZSB0ZXN0IC1uICIkJGRpcjEiOyBkbyBcCisrICAgIGZpcnN0PWBlY2hvICIkJGRpcjEi IHwgc2VkIC1lICIkJHNlZF9maXJzdCJgOyBcCisrICAgIGlmIHRlc3QgIiQkZmlyc3QiICE9ICIu IjsgdGhlbiBcCisrICAgICAgaWYgdGVzdCAiJCRmaXJzdCIgPSAiLi4iOyB0aGVuIFwKKysgICAg ICAgIGRpcjI9YGVjaG8gIiQkZGlyMCIgfCBzZWQgLWUgIiQkc2VkX2xhc3QiYC8iJCRkaXIyIjsg XAorKyAgICAgICAgZGlyMD1gZWNobyAiJCRkaXIwIiB8IHNlZCAtZSAiJCRzZWRfYnV0bGFzdCJg OyBcCisrICAgICAgZWxzZSBcCisrICAgICAgICBmaXJzdDI9YGVjaG8gIiQkZGlyMiIgfCBzZWQg LWUgIiQkc2VkX2ZpcnN0ImA7IFwKKysgICAgICAgIGlmIHRlc3QgIiQkZmlyc3QyIiA9ICIkJGZp cnN0IjsgdGhlbiBcCisrICAgICAgICAgIGRpcjI9YGVjaG8gIiQkZGlyMiIgfCBzZWQgLWUgIiQk c2VkX3Jlc3QiYDsgXAorKyAgICAgICAgZWxzZSBcCisrICAgICAgICAgIGRpcjI9Ii4uLyQkZGly MiI7IFwKKysgICAgICAgIGZpOyBcCisrICAgICAgICBkaXIwPSIkJGRpcjAiLyIkJGZpcnN0Ijsg XAorKyAgICAgIGZpOyBcCisrICAgIGZpOyBcCisrICAgIGRpcjE9YGVjaG8gIiQkZGlyMSIgfCBz ZWQgLWUgIiQkc2VkX3Jlc3QiYDsgXAorKyAgZG9uZTsgXAorKyAgcmVsZGlyPSIkJGRpcjIiCisr RElTVF9BUkNISVZFUyA9ICQoZGlzdGRpcikudGFyLmd6ICQoZGlzdGRpcikudGFyLmJ6MgorK0da SVBfRU5WID0gLS1iZXN0CisrZGlzdHVuaW5zdGFsbGNoZWNrX2xpc3RmaWxlcyA9IGZpbmQgLiAt dHlwZSBmIC1wcmludAorK2Rpc3RjbGVhbmNoZWNrX2xpc3RmaWxlcyA9IGZpbmQgLiAtdHlwZSBm IC1wcmludAorK0FDTE9DQUwgPSBAQUNMT0NBTEAKKytBTVRBUiA9IEBBTVRBUkAKKytBUiA9IEBB UkAKKytBVVRPQ09ORiA9IEBBVVRPQ09ORkAKKytBVVRPSEVBREVSID0gQEFVVE9IRUFERVJACisr QVVUT01BS0UgPSBAQVVUT01BS0VACisrQVdLID0gQEFXS0AKKytCT09TVF9DRkxBR1MgPSBAQk9P U1RfQ0ZMQUdTQAorK0JPT1NUX0RBVEVfVElNRV9MSUIgPSBAQk9PU1RfREFURV9USU1FX0xJQkAK KytCT09TVF9GSUxFU1lTVEVNX0xJQiA9IEBCT09TVF9GSUxFU1lTVEVNX0xJQkAKKytCT09TVF9J T1NUUkVBTVNfTElCID0gQEJPT1NUX0lPU1RSRUFNU19MSUJACisrQk9PU1RfTElCUyA9IEBCT09T VF9MSUJTQAorK0JPT1NUX01QSV9MSUIgPSBAQk9PU1RfTVBJX0xJQkAKKytCT09TVF9NUElfUFlU SE9OX0xJQiA9IEBCT09TVF9NUElfUFlUSE9OX0xJQkAKKytCT09TVF9QUk9HUkFNX09QVElPTlNf TElCID0gQEJPT1NUX1BST0dSQU1fT1BUSU9OU19MSUJACisrQk9PU1RfUFlUSE9OX0xJQiA9IEBC T09TVF9QWVRIT05fTElCQAorK0JPT1NUX1JFR0VYX0xJQiA9IEBCT09TVF9SRUdFWF9MSUJACisr Qk9PU1RfU0VSSUFMSVpBVElPTl9MSUIgPSBAQk9PU1RfU0VSSUFMSVpBVElPTl9MSUJACisrQk9P U1RfU0lHTkFMU19MSUIgPSBAQk9PU1RfU0lHTkFMU19MSUJACisrQk9PU1RfU1lTVEVNX0xJQiA9 IEBCT09TVF9TWVNURU1fTElCQAorK0JPT1NUX1RIUkVBRF9MSUIgPSBAQk9PU1RfVEhSRUFEX0xJ QkAKKytCT09TVF9VTklUX1RFU1RfRlJBTUVXT1JLX0xJQiA9IEBCT09TVF9VTklUX1RFU1RfRlJB TUVXT1JLX0xJQkAKKytCT09TVF9WRVJTSU9OID0gQEJPT1NUX1ZFUlNJT05ACisrQk9PU1RfV1NF UklBTElaQVRJT05fTElCID0gQEJPT1NUX1dTRVJJQUxJWkFUSU9OX0xJQkAKKytDQyA9IEBDQ0AK KytDQ0RFUE1PREUgPSBAQ0NERVBNT0RFQAorK0NGTEFHUyA9IEBDRkxBR1NACisrQ1BQID0gQENQ UEAKKytDUFBGTEFHUyA9IEBDUFBGTEFHU0AKKytDUFBVTklUX0NGTEFHUyA9IEBDUFBVTklUX0NG TEFHU0AKKytDUFBVTklUX0NPTkZJRyA9IEBDUFBVTklUX0NPTkZJR0AKKytDUFBVTklUX0xJQlMg PSBAQ1BQVU5JVF9MSUJTQAorK0NQUFVOSVRfVkVSU0lPTiA9IEBDUFBVTklUX1ZFUlNJT05ACisr Q1hYID0gQENYWEAKKytDWFhDUFAgPSBAQ1hYQ1BQQAorK0NYWERFUE1PREUgPSBAQ1hYREVQTU9E RUAKKytDWFhGTEFHUyA9IEBDWFhGTEFHU0AKKytDWUdQQVRIX1cgPSBAQ1lHUEFUSF9XQAorK0RF RlMgPSBAREVGU0AKKytERVBESVIgPSBAREVQRElSQAorK0RTWU1VVElMID0gQERTWU1VVElMQAor K0RVTVBCSU4gPSBARFVNUEJJTkAKKytFQ0hPX0MgPSBARUNIT19DQAorK0VDSE9fTiA9IEBFQ0hP X05ACisrRUNIT19UID0gQEVDSE9fVEAKKytFR1JFUCA9IEBFR1JFUEAKKytFWEVFWFQgPSBARVhF RVhUQAorK0ZHUkVQID0gQEZHUkVQQAorK0dFTkVSSUNfTElCUkFSWV9WRVJTSU9OID0gQEdFTkVS SUNfTElCUkFSWV9WRVJTSU9OQAorK0dSRVAgPSBAR1JFUEAKKytJTlNUQUxMID0gQElOU1RBTExA CisrSU5TVEFMTF9EQVRBID0gQElOU1RBTExfREFUQUAKKytJTlNUQUxMX1BST0dSQU0gPSBASU5T VEFMTF9QUk9HUkFNQAorK0lOU1RBTExfU0NSSVBUID0gQElOU1RBTExfU0NSSVBUQAorK0lOU1RB TExfU1RSSVBfUFJPR1JBTSA9IEBJTlNUQUxMX1NUUklQX1BST0dSQU1ACisrTEQgPSBATERACisr TERGTEFHUyA9IEBMREZMQUdTQAorK0xJQk9CSlMgPSBATElCT0JKU0AKKytMSUJTID0gQExJQlNA CisrTElCVE9PTCA9IEBMSUJUT09MQAorK0xJUE8gPSBATElQT0AKKytMTl9TID0gQExOX1NACisr TFRMSUJPQkpTID0gQExUTElCT0JKU0AKKytNQUtFSU5GTyA9IEBNQUtFSU5GT0AKKytNS0RJUl9Q ID0gQE1LRElSX1BACisrTVlTUUxfQ0ZMQUdTID0gQE1ZU1FMX0NGTEFHU0AKKytNWVNRTF9DX0xJ QiA9IEBNWVNRTF9DX0xJQkAKKytNWVNRTF9ESVJTID0gQE1ZU1FMX0RJUlNACisrTVlTUUxfTElC UyA9IEBNWVNRTF9MSUJTQAorK01ZU1FMX1ZFUlNJT04gPSBATVlTUUxfVkVSU0lPTkAKKytOTSA9 IEBOTUAKKytOTUVESVQgPSBATk1FRElUQAorK09CSkRVTVAgPSBAT0JKRFVNUEAKKytPQkpFWFQg PSBAT0JKRVhUQAorK09SQUNMRV9ESVJTID0gQE9SQUNMRV9ESVJTQAorK09SQUNMRV9PQ0lfQ0ZM QUdTID0gQE9SQUNMRV9PQ0lfQ0ZMQUdTQAorK09SQUNMRV9PQ0lfTERGTEFHUyA9IEBPUkFDTEVf T0NJX0xERkxBR1NACisrT1JBQ0xFX09DSV9WRVJTSU9OID0gQE9SQUNMRV9PQ0lfVkVSU0lPTkAK KytPVE9PTCA9IEBPVE9PTEAKKytPVE9PTDY0ID0gQE9UT09MNjRACisrUEFDS0FHRSA9IEBQQUNL QUdFQAorK1BBQ0tBR0VfQlVHUkVQT1JUID0gQFBBQ0tBR0VfQlVHUkVQT1JUQAorK1BBQ0tBR0Vf TkFNRSA9IEBQQUNLQUdFX05BTUVACisrUEFDS0FHRV9TVFJJTkcgPSBAUEFDS0FHRV9TVFJJTkdA CisrUEFDS0FHRV9UQVJOQU1FID0gQFBBQ0tBR0VfVEFSTkFNRUAKKytQQUNLQUdFX1ZFUlNJT04g PSBAUEFDS0FHRV9WRVJTSU9OQAorK1BBVEhfU0VQQVJBVE9SID0gQFBBVEhfU0VQQVJBVE9SQAor K1BFUkwgPSBAUEVSTEAKKytQR19DT05GSUcgPSBAUEdfQ09ORklHQAorK1BPU1RHUkVTUUxfQ0ZM QUdTID0gQFBPU1RHUkVTUUxfQ0ZMQUdTQAorK1BPU1RHUkVTUUxfRElSUyA9IEBQT1NUR1JFU1FM X0RJUlNACisrUE9TVEdSRVNRTF9MREZMQUdTID0gQFBPU1RHUkVTUUxfTERGTEFHU0AKKytQT1NU R1JFU1FMX1ZFUlNJT04gPSBAUE9TVEdSRVNRTF9WRVJTSU9OQAorK1JBTkxJQiA9IEBSQU5MSUJA CisrUlBNX1JFTEVBU0UgPSBAUlBNX1JFTEVBU0VACisrU0VEID0gQFNFREAKKytTRVRfTUFLRSA9 IEBTRVRfTUFLRUAKKytTSEVMTCA9IEBTSEVMTEAKKytTT0NJX0hFQURFUlNfQlVSSUVEID0gQFNP Q0lfSEVBREVSU19CVVJJRURACisrU09DSV9NWVNRTF9IRUFERVJTX0JVUklFRCA9IEBTT0NJX01Z U1FMX0hFQURFUlNfQlVSSUVEQAorK1NPQ0lfUE9TVEdSRVNRTF9IRUFERVJTX0JVUklFRCA9IEBT T0NJX1BPU1RHUkVTUUxfSEVBREVSU19CVVJJRURACisrU1RSSVAgPSBAU1RSSVBACisrVVBMT0FE X0NPTU1BTkQgPSBAVVBMT0FEX0NPTU1BTkRACisrVkVSU0lPTiA9IEBWRVJTSU9OQAorK2Fic19i dWlsZGRpciA9IEBhYnNfYnVpbGRkaXJACisrYWJzX3NyY2RpciA9IEBhYnNfc3JjZGlyQAorK2Fi c190b3BfYnVpbGRkaXIgPSBAYWJzX3RvcF9idWlsZGRpckAKKythYnNfdG9wX3NyY2RpciA9IEBh YnNfdG9wX3NyY2RpckAKKythY19jdF9DQyA9IEBhY19jdF9DQ0AKKythY19jdF9DWFggPSBAYWNf Y3RfQ1hYQAorK2FjX2N0X0RVTVBCSU4gPSBAYWNfY3RfRFVNUEJJTkAKKythbV9faW5jbHVkZSA9 IEBhbV9faW5jbHVkZUAKKythbV9fbGVhZGluZ19kb3QgPSBAYW1fX2xlYWRpbmdfZG90QAorK2Ft X19xdW90ZSA9IEBhbV9fcXVvdGVACisrYW1fX3RhciA9IEBhbV9fdGFyQAorK2FtX191bnRhciA9 IEBhbV9fdW50YXJACisrYmluZGlyID0gQGJpbmRpckAKKytidWlsZCA9IEBidWlsZEAKKytidWls ZF9hbGlhcyA9IEBidWlsZF9hbGlhc0AKKytidWlsZF9jcHUgPSBAYnVpbGRfY3B1QAorK2J1aWxk X29zID0gQGJ1aWxkX29zQAorK2J1aWxkX3ZlbmRvciA9IEBidWlsZF92ZW5kb3JACisrYnVpbGRk aXIgPSBAYnVpbGRkaXJACisrZGF0YWRpciA9IEBkYXRhZGlyQAorK2RhdGFyb290ZGlyID0gQGRh dGFyb290ZGlyQAorK2RpZmZfb2sgPSBAZGlmZl9va0AKKytkb2NkaXIgPSBAZG9jZGlyQAorK2Rv eHlnZW5fb2sgPSBAZG94eWdlbl9va0AKKytkdmlkaXIgPSBAZHZpZGlyQAorK2R2aXBzX29rID0g QGR2aXBzX29rQAorK2V4ZWNfcHJlZml4ID0gQGV4ZWNfcHJlZml4QAorK2dzX29rID0gQGdzX29r QAorK2hvc3QgPSBAaG9zdEAKKytob3N0X2FsaWFzID0gQGhvc3RfYWxpYXNACisraG9zdF9jcHUg PSBAaG9zdF9jcHVACisraG9zdF9vcyA9IEBob3N0X29zQAorK2hvc3RfdmVuZG9yID0gQGhvc3Rf dmVuZG9yQAorK2h0bWxkaXIgPSBAaHRtbGRpckAKKytpbmNsdWRlZGlyID0gQGluY2x1ZGVkaXJA CisraW5mb2RpciA9IEBpbmZvZGlyQAorK2luc3RhbGxfc2ggPSBAaW5zdGFsbF9zaEAKKytsYXRl eF9vayA9IEBsYXRleF9va0AKKytsaWJkaXIgPSBAbGliZGlyQAorK2xpYmV4ZWNkaXIgPSBAbGli ZXhlY2RpckAKKytsb2NhbGVkaXIgPSBAbG9jYWxlZGlyQAorK2xvY2Fsc3RhdGVkaXIgPSBAbG9j YWxzdGF0ZWRpckAKKytsdF9FQ0hPID0gQGx0X0VDSE9ACisrbWFuZGlyID0gQG1hbmRpckAKKytt a2Rpcl9wID0gQG1rZGlyX3BACisrb2xkaW5jbHVkZWRpciA9IEBvbGRpbmNsdWRlZGlyQAorK3Bk ZmRpciA9IEBwZGZkaXJACisrcHJlZml4ID0gQHByZWZpeEAKKytwcm9ncmFtX3RyYW5zZm9ybV9u YW1lID0gQHByb2dyYW1fdHJhbnNmb3JtX25hbWVACisrcHNkaXIgPSBAcHNkaXJACisrc2JpbmRp ciA9IEBzYmluZGlyQAorK3NlZF9vayA9IEBzZWRfb2tACisrc2hhcmVkc3RhdGVkaXIgPSBAc2hh cmVkc3RhdGVkaXJACisrc3JjZGlyID0gQHNyY2RpckAKKytzeXNjb25mZGlyID0gQHN5c2NvbmZk aXJACisrdGFyZ2V0X2FsaWFzID0gQHRhcmdldF9hbGlhc0AKKyt0b3BfYnVpbGRfcHJlZml4ID0g QHRvcF9idWlsZF9wcmVmaXhACisrdG9wX2J1aWxkZGlyID0gQHRvcF9idWlsZGRpckAKKyt0b3Bf c3JjZGlyID0gQHRvcF9zcmNkaXJACisrQU1fQ1BQRkxBR1MgPSAtSSQodG9wX2J1aWxkZGlyKSAt SSQodG9wX3NyY2RpcikKKytBQ0xPQ0FMX0FNRkxBR1MgPSAtSSBjb25maWcKKytBVVRPTUFLRV9P UFRJT05TID0gZGlzdC1iemlwMgorKworKyMgIFRFU1RfRElSID0gdGVzdAorK01BTl9ET0NfRElS ID0gbWFuCisrCisrIyBNYWludGFpbmFuY2UgZmlsZXMKKytNQUlOVEFJTkVSQ0xFQU5GSUxFUyA9 IE1ha2VmaWxlLmluIGFjbG9jYWwubTQgY29uZmlndXJlIFwKKysJCQljb25maWctaC5pbiBzaWMv c3RhbXAtaC5pbiBhdXRvZ2VuLnNoIGJvb3RzdHJhcAorKworKworKyNFWFRSQV9ESVNUX0ZPUl9T T0NJX0NPTVBBVElCSUxJVFkgPSAuX2NvbmZpZ3VyZSAuX01ha2VmaWxlIGNvbnRyaWIKKytFWFRS QV9ESVNUX0ZPUl9TT0NJX0NPTVBBVElCSUxJVFkgPSBjb250cmliCisrRVhUUkFfRElTVCA9IE1h a2VmaWxlLmNvbW1vbiAkKEVYVFJBX0RJU1RfRk9SX1NPQ0lfQ09NUEFUSUJJTElUWSkgQFBBQ0tB R0VALm00CisrCisrIyBCdWlsZCBpbiB0aGVzZSBkaXJlY3RvcmllczoKKytTVUJESVJTID0gYnVp bGQgQFBBQ0tBR0VAICQoTUFOX0RPQ19ESVIpIGRvYyAkKFRFU1RfRElSKQorKworKyMgQ29uZmln dXJhdGlvbiBoZWxwZXJzCisrYmluX1NDUklQVFMgPSBAUEFDS0FHRUAtY29uZmlnCisrcGtnY29u ZmlnZGlyID0gJChsaWJkaXIpL3BrZ2NvbmZpZworK3BrZ2NvbmZpZ19EQVRBID0gQFBBQ0tBR0VA LnBjCisrbTRkYXRhZGlyID0gJChkYXRhZGlyKS9hY2xvY2FsCisrbTRkYXRhX0RBVEEgPSBAUEFD S0FHRUAubTQKKythbGw6IGFsbC1yZWN1cnNpdmUKKysKKysuU1VGRklYRVM6CisrYW0tLXJlZnJl c2g6CisrCUA6CisrJChzcmNkaXIpL01ha2VmaWxlLmluOiAgJChzcmNkaXIpL01ha2VmaWxlLmFt ICQodG9wX3NyY2RpcikvTWFrZWZpbGUuY29tbW9uICQoYW1fX2NvbmZpZ3VyZV9kZXBzKQorKwlA Zm9yIGRlcCBpbiAkPzsgZG8gXAorKwkgIGNhc2UgJyQoYW1fX2NvbmZpZ3VyZV9kZXBzKScgaW4g XAorKwkgICAgKiQkZGVwKikgXAorKwkgICAgICBlY2hvICcgY2QgJChzcmNkaXIpICYmICQoQVVU T01BS0UpIC0tZ251JzsgXAorKwkgICAgICAkKGFtX19jZCkgJChzcmNkaXIpICYmICQoQVVUT01B S0UpIC0tZ251IFwKKysJCSYmIGV4aXQgMDsgXAorKwkgICAgICBleGl0IDE7OyBcCisrCSAgZXNh YzsgXAorKwlkb25lOyBcCisrCWVjaG8gJyBjZCAkKHRvcF9zcmNkaXIpICYmICQoQVVUT01BS0Up IC0tZ251IE1ha2VmaWxlJzsgXAorKwkkKGFtX19jZCkgJCh0b3Bfc3JjZGlyKSAmJiBcCisrCSAg JChBVVRPTUFLRSkgLS1nbnUgTWFrZWZpbGUKKysuUFJFQ0lPVVM6IE1ha2VmaWxlCisrTWFrZWZp bGU6ICQoc3JjZGlyKS9NYWtlZmlsZS5pbiAkKHRvcF9idWlsZGRpcikvY29uZmlnLnN0YXR1cwor KwlAY2FzZSAnJD8nIGluIFwKKysJICAqY29uZmlnLnN0YXR1cyopIFwKKysJICAgIGVjaG8gJyAk KFNIRUxMKSAuL2NvbmZpZy5zdGF0dXMnOyBcCisrCSAgICAkKFNIRUxMKSAuL2NvbmZpZy5zdGF0 dXM7OyBcCisrCSAgKikgXAorKwkgICAgZWNobyAnIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKFNI RUxMKSAuL2NvbmZpZy5zdGF0dXMgJEAgJChhbV9fZGVwZmlsZXNfbWF5YmUpJzsgXAorKwkgICAg Y2QgJCh0b3BfYnVpbGRkaXIpICYmICQoU0hFTEwpIC4vY29uZmlnLnN0YXR1cyAkQCAkKGFtX19k ZXBmaWxlc19tYXliZSk7OyBcCisrCWVzYWM7CisrCisrJCh0b3BfYnVpbGRkaXIpL2NvbmZpZy5z dGF0dXM6ICQodG9wX3NyY2RpcikvY29uZmlndXJlICQoQ09ORklHX1NUQVRVU19ERVBFTkRFTkNJ RVMpCisrCSQoU0hFTEwpIC4vY29uZmlnLnN0YXR1cyAtLXJlY2hlY2sKKysKKyskKHRvcF9zcmNk aXIpL2NvbmZpZ3VyZTogICQoYW1fX2NvbmZpZ3VyZV9kZXBzKQorKwkkKGFtX19jZCkgJChzcmNk aXIpICYmICQoQVVUT0NPTkYpCisrJChBQ0xPQ0FMX000KTogICQoYW1fX2FjbG9jYWxfbTRfZGVw cykKKysJJChhbV9fY2QpICQoc3JjZGlyKSAmJiAkKEFDTE9DQUwpICQoQUNMT0NBTF9BTUZMQUdT KQorKyQoYW1fX2FjbG9jYWxfbTRfZGVwcyk6Cisrc29jaS1jb25maWc6ICQodG9wX2J1aWxkZGly KS9jb25maWcuc3RhdHVzICQoc3JjZGlyKS9zb2NpLWNvbmZpZy5pbgorKwljZCAkKHRvcF9idWls ZGRpcikgJiYgJChTSEVMTCkgLi9jb25maWcuc3RhdHVzICRACisrc29jaS5wYzogJCh0b3BfYnVp bGRkaXIpL2NvbmZpZy5zdGF0dXMgJChzcmNkaXIpL3NvY2kucGMuaW4KKysJY2QgJCh0b3BfYnVp bGRkaXIpICYmICQoU0hFTEwpIC4vY29uZmlnLnN0YXR1cyAkQAorK3NvY2kuc3BlYzogJCh0b3Bf YnVpbGRkaXIpL2NvbmZpZy5zdGF0dXMgJChzcmNkaXIpL3NvY2kuc3BlYy5pbgorKwljZCAkKHRv cF9idWlsZGRpcikgJiYgJChTSEVMTCkgLi9jb25maWcuc3RhdHVzICRACisraW5zdGFsbC1iaW5T Q1JJUFRTOiAkKGJpbl9TQ1JJUFRTKQorKwlAJChOT1JNQUxfSU5TVEFMTCkKKysJdGVzdCAteiAi JChiaW5kaXIpIiB8fCAkKE1LRElSX1ApICIkKERFU1RESVIpJChiaW5kaXIpIgorKwlAbGlzdD0n JChiaW5fU0NSSVBUUyknOyB0ZXN0IC1uICIkKGJpbmRpcikiIHx8IGxpc3Q9OyBcCisrCWZvciBw IGluICQkbGlzdDsgZG8gXAorKwkgIGlmIHRlc3QgLWYgIiQkcCI7IHRoZW4gZD07IGVsc2UgZD0i JChzcmNkaXIpLyI7IGZpOyBcCisrCSAgaWYgdGVzdCAtZiAiJCRkJCRwIjsgdGhlbiBlY2hvICIk JGQkJHAiOyBlY2hvICIkJHAiOyBlbHNlIDo7IGZpOyBcCisrCWRvbmUgfCBcCisrCXNlZCAtZSAn cDtzLC4qLywsO24nIFwKKysJICAgIC1lICdoO3N8Lip8LnwnIFwKKysJICAgIC1lICdwO3g7cywu Ki8sLDskKHRyYW5zZm9ybSknIHwgc2VkICdOO047TjtzLFxuLCAsZycgfCBcCisrCSQoQVdLKSAn QkVHSU4geyBmaWxlc1siLiJdID0gIiI7IGRpcnNbIi4iXSA9IDE7IH0gXAorKwkgIHsgZD0kJDM7 IGlmIChkaXJzW2RdICE9IDEpIHsgcHJpbnQgImQiLCBkOyBkaXJzW2RdID0gMSB9IFwKKysJICAg IGlmICgkJDIgPT0gJCQ0KSB7IGZpbGVzW2RdID0gZmlsZXNbZF0gIiAiICQkMTsgXAorKwkgICAg ICBpZiAoKytuW2RdID09ICQoYW1fX2luc3RhbGxfbWF4KSkgeyBcCisrCQlwcmludCAiZiIsIGQs IGZpbGVzW2RdOyBuW2RdID0gMDsgZmlsZXNbZF0gPSAiIiB9IH0gXAorKwkgICAgZWxzZSB7IHBy aW50ICJmIiwgZCAiLyIgJCQ0LCAkJDEgfSB9IFwKKysJICBFTkQgeyBmb3IgKGQgaW4gZmlsZXMp IHByaW50ICJmIiwgZCwgZmlsZXNbZF0gfScgfCBcCisrCXdoaWxlIHJlYWQgdHlwZSBkaXIgZmls ZXM7IGRvIFwKKysJICAgICBpZiB0ZXN0ICIkJGRpciIgPSAuOyB0aGVuIGRpcj07IGVsc2UgZGly PS8kJGRpcjsgZmk7IFwKKysJICAgICB0ZXN0IC16ICIkJGZpbGVzIiB8fCB7IFwKKysJICAgICAg IGVjaG8gIiAkKElOU1RBTExfU0NSSVBUKSAkJGZpbGVzICckKERFU1RESVIpJChiaW5kaXIpJCRk aXInIjsgXAorKwkgICAgICAgJChJTlNUQUxMX1NDUklQVCkgJCRmaWxlcyAiJChERVNURElSKSQo YmluZGlyKSQkZGlyIiB8fCBleGl0ICQkPzsgXAorKwkgICAgIH0gXAorKwk7IGRvbmUKKysKKyt1 bmluc3RhbGwtYmluU0NSSVBUUzoKKysJQCQoTk9STUFMX1VOSU5TVEFMTCkKKysJQGxpc3Q9JyQo YmluX1NDUklQVFMpJzsgdGVzdCAtbiAiJChiaW5kaXIpIiB8fCBleGl0IDA7IFwKKysJZmlsZXM9 YGZvciBwIGluICQkbGlzdDsgZG8gZWNobyAiJCRwIjsgZG9uZSB8IFwKKysJICAgICAgIHNlZCAt ZSAncywuKi8sLDskKHRyYW5zZm9ybSknYDsgXAorKwl0ZXN0IC1uICIkJGxpc3QiIHx8IGV4aXQg MDsgXAorKwllY2hvICIgKCBjZCAnJChERVNURElSKSQoYmluZGlyKScgJiYgcm0gLWYiICQkZmls ZXMgIikiOyBcCisrCWNkICIkKERFU1RESVIpJChiaW5kaXIpIiAmJiBybSAtZiAkJGZpbGVzCisr CisrbW9zdGx5Y2xlYW4tbGlidG9vbDoKKysJLXJtIC1mICoubG8KKysKKytjbGVhbi1saWJ0b29s OgorKwktcm0gLXJmIC5saWJzIF9saWJzCisrCisrZGlzdGNsZWFuLWxpYnRvb2w6CisrCS1ybSAt ZiBsaWJ0b29sIGNvbmZpZy5sdAorK2luc3RhbGwtbTRkYXRhREFUQTogJChtNGRhdGFfREFUQSkK KysJQCQoTk9STUFMX0lOU1RBTEwpCisrCXRlc3QgLXogIiQobTRkYXRhZGlyKSIgfHwgJChNS0RJ Ul9QKSAiJChERVNURElSKSQobTRkYXRhZGlyKSIKKysJQGxpc3Q9JyQobTRkYXRhX0RBVEEpJzsg dGVzdCAtbiAiJChtNGRhdGFkaXIpIiB8fCBsaXN0PTsgXAorKwlmb3IgcCBpbiAkJGxpc3Q7IGRv IFwKKysJICBpZiB0ZXN0IC1mICIkJHAiOyB0aGVuIGQ9OyBlbHNlIGQ9IiQoc3JjZGlyKS8iOyBm aTsgXAorKwkgIGVjaG8gIiQkZCQkcCI7IFwKKysJZG9uZSB8ICQoYW1fX2Jhc2VfbGlzdCkgfCBc CisrCXdoaWxlIHJlYWQgZmlsZXM7IGRvIFwKKysJICBlY2hvICIgJChJTlNUQUxMX0RBVEEpICQk ZmlsZXMgJyQoREVTVERJUikkKG00ZGF0YWRpciknIjsgXAorKwkgICQoSU5TVEFMTF9EQVRBKSAk JGZpbGVzICIkKERFU1RESVIpJChtNGRhdGFkaXIpIiB8fCBleGl0ICQkPzsgXAorKwlkb25lCisr CisrdW5pbnN0YWxsLW00ZGF0YURBVEE6CisrCUAkKE5PUk1BTF9VTklOU1RBTEwpCisrCUBsaXN0 PSckKG00ZGF0YV9EQVRBKSc7IHRlc3QgLW4gIiQobTRkYXRhZGlyKSIgfHwgbGlzdD07IFwKKysJ ZmlsZXM9YGZvciBwIGluICQkbGlzdDsgZG8gZWNobyAkJHA7IGRvbmUgfCBzZWQgLWUgJ3N8Xi4q L3x8J2A7IFwKKysJdGVzdCAtbiAiJCRmaWxlcyIgfHwgZXhpdCAwOyBcCisrCWVjaG8gIiAoIGNk ICckKERFU1RESVIpJChtNGRhdGFkaXIpJyAmJiBybSAtZiIgJCRmaWxlcyAiKSI7IFwKKysJY2Qg IiQoREVTVERJUikkKG00ZGF0YWRpcikiICYmIHJtIC1mICQkZmlsZXMKKytpbnN0YWxsLXBrZ2Nv bmZpZ0RBVEE6ICQocGtnY29uZmlnX0RBVEEpCisrCUAkKE5PUk1BTF9JTlNUQUxMKQorKwl0ZXN0 IC16ICIkKHBrZ2NvbmZpZ2RpcikiIHx8ICQoTUtESVJfUCkgIiQoREVTVERJUikkKHBrZ2NvbmZp Z2RpcikiCisrCUBsaXN0PSckKHBrZ2NvbmZpZ19EQVRBKSc7IHRlc3QgLW4gIiQocGtnY29uZmln ZGlyKSIgfHwgbGlzdD07IFwKKysJZm9yIHAgaW4gJCRsaXN0OyBkbyBcCisrCSAgaWYgdGVzdCAt ZiAiJCRwIjsgdGhlbiBkPTsgZWxzZSBkPSIkKHNyY2RpcikvIjsgZmk7IFwKKysJICBlY2hvICIk JGQkJHAiOyBcCisrCWRvbmUgfCAkKGFtX19iYXNlX2xpc3QpIHwgXAorKwl3aGlsZSByZWFkIGZp bGVzOyBkbyBcCisrCSAgZWNobyAiICQoSU5TVEFMTF9EQVRBKSAkJGZpbGVzICckKERFU1RESVIp JChwa2djb25maWdkaXIpJyI7IFwKKysJICAkKElOU1RBTExfREFUQSkgJCRmaWxlcyAiJChERVNU RElSKSQocGtnY29uZmlnZGlyKSIgfHwgZXhpdCAkJD87IFwKKysJZG9uZQorKworK3VuaW5zdGFs bC1wa2djb25maWdEQVRBOgorKwlAJChOT1JNQUxfVU5JTlNUQUxMKQorKwlAbGlzdD0nJChwa2dj b25maWdfREFUQSknOyB0ZXN0IC1uICIkKHBrZ2NvbmZpZ2RpcikiIHx8IGxpc3Q9OyBcCisrCWZp bGVzPWBmb3IgcCBpbiAkJGxpc3Q7IGRvIGVjaG8gJCRwOyBkb25lIHwgc2VkIC1lICdzfF4uKi98 fCdgOyBcCisrCXRlc3QgLW4gIiQkZmlsZXMiIHx8IGV4aXQgMDsgXAorKwllY2hvICIgKCBjZCAn JChERVNURElSKSQocGtnY29uZmlnZGlyKScgJiYgcm0gLWYiICQkZmlsZXMgIikiOyBcCisrCWNk ICIkKERFU1RESVIpJChwa2djb25maWdkaXIpIiAmJiBybSAtZiAkJGZpbGVzCisrCisrIyBUaGlz IGRpcmVjdG9yeSdzIHN1YmRpcmVjdG9yaWVzIGFyZSBtb3N0bHkgaW5kZXBlbmRlbnQ7IHlvdSBj YW4gY2QKKysjIGludG8gdGhlbSBhbmQgcnVuIGBtYWtlJyB3aXRob3V0IGdvaW5nIHRocm91Z2gg dGhpcyBNYWtlZmlsZS4KKysjIFRvIGNoYW5nZSB0aGUgdmFsdWVzIG9mIGBtYWtlJyB2YXJpYWJs ZXM6IGluc3RlYWQgb2YgZWRpdGluZyBNYWtlZmlsZXMsCisrIyAoMSkgaWYgdGhlIHZhcmlhYmxl IGlzIHNldCBpbiBgY29uZmlnLnN0YXR1cycsIGVkaXQgYGNvbmZpZy5zdGF0dXMnCisrIyAgICAg KHdoaWNoIHdpbGwgY2F1c2UgdGhlIE1ha2VmaWxlcyB0byBiZSByZWdlbmVyYXRlZCB3aGVuIHlv dSBydW4gYG1ha2UnKTsKKysjICgyKSBvdGhlcndpc2UsIHBhc3MgdGhlIGRlc2lyZWQgdmFsdWVz IG9uIHRoZSBgbWFrZScgY29tbWFuZCBsaW5lLgorKyQoUkVDVVJTSVZFX1RBUkdFVFMpOgorKwlA ZmFpbD0gZmFpbGNvbT0nZXhpdCAxJzsgXAorKwlmb3IgZiBpbiB4ICQkTUFLRUZMQUdTOyBkbyBc CisrCSAgY2FzZSAkJGYgaW4gXAorKwkgICAgKj0qIHwgLS1bIWtdKik7OyBcCisrCSAgICAqayop IGZhaWxjb209J2ZhaWw9eWVzJzs7IFwKKysJICBlc2FjOyBcCisrCWRvbmU7IFwKKysJZG90X3Nl ZW49bm87IFwKKysJdGFyZ2V0PWBlY2hvICRAIHwgc2VkIHMvLXJlY3Vyc2l2ZS8vYDsgXAorKwls aXN0PSckKFNVQkRJUlMpJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKKysJICBlY2hvICJN YWtpbmcgJCR0YXJnZXQgaW4gJCRzdWJkaXIiOyBcCisrCSAgaWYgdGVzdCAiJCRzdWJkaXIiID0g Ii4iOyB0aGVuIFwKKysJICAgIGRvdF9zZWVuPXllczsgXAorKwkgICAgbG9jYWxfdGFyZ2V0PSIk JHRhcmdldC1hbSI7IFwKKysJICBlbHNlIFwKKysJICAgIGxvY2FsX3RhcmdldD0iJCR0YXJnZXQi OyBcCisrCSAgZmk7IFwKKysJICAoJChhbV9fY2QpICQkc3ViZGlyICYmICQoTUFLRSkgJChBTV9N QUtFRkxBR1MpICQkbG9jYWxfdGFyZ2V0KSBcCisrCSAgfHwgZXZhbCAkJGZhaWxjb207IFwKKysJ ZG9uZTsgXAorKwlpZiB0ZXN0ICIkJGRvdF9zZWVuIiA9ICJubyI7IHRoZW4gXAorKwkgICQoTUFL RSkgJChBTV9NQUtFRkxBR1MpICIkJHRhcmdldC1hbSIgfHwgZXhpdCAxOyBcCisrCWZpOyB0ZXN0 IC16ICIkJGZhaWwiCisrCisrJChSRUNVUlNJVkVfQ0xFQU5fVEFSR0VUUyk6CisrCUBmYWlsPSBm YWlsY29tPSdleGl0IDEnOyBcCisrCWZvciBmIGluIHggJCRNQUtFRkxBR1M7IGRvIFwKKysJICBj YXNlICQkZiBpbiBcCisrCSAgICAqPSogfCAtLVsha10qKTs7IFwKKysJICAgICprKikgZmFpbGNv bT0nZmFpbD15ZXMnOzsgXAorKwkgIGVzYWM7IFwKKysJZG9uZTsgXAorKwlkb3Rfc2Vlbj1ubzsg XAorKwljYXNlICIkQCIgaW4gXAorKwkgIGRpc3RjbGVhbi0qIHwgbWFpbnRhaW5lci1jbGVhbi0q KSBsaXN0PSckKERJU1RfU1VCRElSUyknIDs7IFwKKysJICAqKSBsaXN0PSckKFNVQkRJUlMpJyA7 OyBcCisrCWVzYWM7IFwKKysJcmV2PScnOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAorKwkg IGlmIHRlc3QgIiQkc3ViZGlyIiA9ICIuIjsgdGhlbiA6OyBlbHNlIFwKKysJICAgIHJldj0iJCRz dWJkaXIgJCRyZXYiOyBcCisrCSAgZmk7IFwKKysJZG9uZTsgXAorKwlyZXY9IiQkcmV2IC4iOyBc CisrCXRhcmdldD1gZWNobyAkQCB8IHNlZCBzLy1yZWN1cnNpdmUvL2A7IFwKKysJZm9yIHN1YmRp ciBpbiAkJHJldjsgZG8gXAorKwkgIGVjaG8gIk1ha2luZyAkJHRhcmdldCBpbiAkJHN1YmRpciI7 IFwKKysJICBpZiB0ZXN0ICIkJHN1YmRpciIgPSAiLiI7IHRoZW4gXAorKwkgICAgbG9jYWxfdGFy Z2V0PSIkJHRhcmdldC1hbSI7IFwKKysJICBlbHNlIFwKKysJICAgIGxvY2FsX3RhcmdldD0iJCR0 YXJnZXQiOyBcCisrCSAgZmk7IFwKKysJICAoJChhbV9fY2QpICQkc3ViZGlyICYmICQoTUFLRSkg JChBTV9NQUtFRkxBR1MpICQkbG9jYWxfdGFyZ2V0KSBcCisrCSAgfHwgZXZhbCAkJGZhaWxjb207 IFwKKysJZG9uZSAmJiB0ZXN0IC16ICIkJGZhaWwiCisrdGFncy1yZWN1cnNpdmU6CisrCWxpc3Q9 JyQoU1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAorKwkgIHRlc3QgIiQkc3Vi ZGlyIiA9IC4gfHwgKCQoYW1fX2NkKSAkJHN1YmRpciAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdT KSB0YWdzKTsgXAorKwlkb25lCisrY3RhZ3MtcmVjdXJzaXZlOgorKwlsaXN0PSckKFNVQkRJUlMp JzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKKysJICB0ZXN0ICIkJHN1YmRpciIgPSAuIHx8 ICgkKGFtX19jZCkgJCRzdWJkaXIgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgY3RhZ3MpOyBc CisrCWRvbmUKKysKKytJRDogJChIRUFERVJTKSAkKFNPVVJDRVMpICQoTElTUCkgJChUQUdTX0ZJ TEVTKQorKwlsaXN0PSckKFNPVVJDRVMpICQoSEVBREVSUykgJChMSVNQKSAkKFRBR1NfRklMRVMp JzsgXAorKwl1bmlxdWU9YGZvciBpIGluICQkbGlzdDsgZG8gXAorKwkgICAgaWYgdGVzdCAtZiAi JCRpIjsgdGhlbiBlY2hvICQkaTsgZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7IGZpOyBcCisrCSAg ZG9uZSB8IFwKKysJICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9IDE7IG5vbmVtcHR5ID0gMTsgfSBc CisrCSAgICAgIEVORCB7IGlmIChub25lbXB0eSkgeyBmb3IgKGkgaW4gZmlsZXMpIHByaW50IGk7 IH07IH0nYDsgXAorKwlta2lkIC1mSUQgJCR1bmlxdWUKKyt0YWdzOiBUQUdTCisrCisrVEFHUzog dGFncy1yZWN1cnNpdmUgJChIRUFERVJTKSAkKFNPVVJDRVMpICAkKFRBR1NfREVQRU5ERU5DSUVT KSBcCisrCQkkKFRBR1NfRklMRVMpICQoTElTUCkKKysJc2V0IHg7IFwKKysJaGVyZT1gcHdkYDsg XAorKwlpZiAoJChFVEFHUykgLS1ldGFncy1pbmNsdWRlIC0tdmVyc2lvbikgPi9kZXYvbnVsbCAy PiYxOyB0aGVuIFwKKysJICBpbmNsdWRlX29wdGlvbj0tLWV0YWdzLWluY2x1ZGU7IFwKKysJICBl bXB0eV9maXg9LjsgXAorKwllbHNlIFwKKysJICBpbmNsdWRlX29wdGlvbj0tLWluY2x1ZGU7IFwK KysJICBlbXB0eV9maXg9OyBcCisrCWZpOyBcCisrCWxpc3Q9JyQoU1VCRElSUyknOyBmb3Igc3Vi ZGlyIGluICQkbGlzdDsgZG8gXAorKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9IC47IHRoZW4gOjsg ZWxzZSBcCisrCSAgICB0ZXN0ICEgLWYgJCRzdWJkaXIvVEFHUyB8fCBcCisrCSAgICAgIHNldCAi JCRAIiAiJCRpbmNsdWRlX29wdGlvbj0kJGhlcmUvJCRzdWJkaXIvVEFHUyI7IFwKKysJICBmaTsg XAorKwlkb25lOyBcCisrCWxpc3Q9JyQoU09VUkNFUykgJChIRUFERVJTKSAgJChMSVNQKSAkKFRB R1NfRklMRVMpJzsgXAorKwl1bmlxdWU9YGZvciBpIGluICQkbGlzdDsgZG8gXAorKwkgICAgaWYg dGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsgZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7IGZp OyBcCisrCSAgZG9uZSB8IFwKKysJICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9IDE7IG5vbmVtcHR5 ID0gMTsgfSBcCisrCSAgICAgIEVORCB7IGlmIChub25lbXB0eSkgeyBmb3IgKGkgaW4gZmlsZXMp IHByaW50IGk7IH07IH0nYDsgXAorKwlzaGlmdDsgXAorKwlpZiB0ZXN0IC16ICIkKEVUQUdTX0FS R1MpJCQqJCR1bmlxdWUiOyB0aGVuIDo7IGVsc2UgXAorKwkgIHRlc3QgLW4gIiQkdW5pcXVlIiB8 fCB1bmlxdWU9JCRlbXB0eV9maXg7IFwKKysJICBpZiB0ZXN0ICQkIyAtZ3QgMDsgdGhlbiBcCisr CSAgICAkKEVUQUdTKSAkKEVUQUdTRkxBR1MpICQoQU1fRVRBR1NGTEFHUykgJChFVEFHU19BUkdT KSBcCisrCSAgICAgICIkJEAiICQkdW5pcXVlOyBcCisrCSAgZWxzZSBcCisrCSAgICAkKEVUQUdT KSAkKEVUQUdTRkxBR1MpICQoQU1fRVRBR1NGTEFHUykgJChFVEFHU19BUkdTKSBcCisrCSAgICAg ICQkdW5pcXVlOyBcCisrCSAgZmk7IFwKKysJZmkKKytjdGFnczogQ1RBR1MKKytDVEFHUzogY3Rh Z3MtcmVjdXJzaXZlICQoSEVBREVSUykgJChTT1VSQ0VTKSAgJChUQUdTX0RFUEVOREVOQ0lFUykg XAorKwkJJChUQUdTX0ZJTEVTKSAkKExJU1ApCisrCWxpc3Q9JyQoU09VUkNFUykgJChIRUFERVJT KSAgJChMSVNQKSAkKFRBR1NfRklMRVMpJzsgXAorKwl1bmlxdWU9YGZvciBpIGluICQkbGlzdDsg ZG8gXAorKwkgICAgaWYgdGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsgZWxzZSBlY2hvICQo c3JjZGlyKS8kJGk7IGZpOyBcCisrCSAgZG9uZSB8IFwKKysJICAkKEFXSykgJ3sgZmlsZXNbJCQw XSA9IDE7IG5vbmVtcHR5ID0gMTsgfSBcCisrCSAgICAgIEVORCB7IGlmIChub25lbXB0eSkgeyBm b3IgKGkgaW4gZmlsZXMpIHByaW50IGk7IH07IH0nYDsgXAorKwl0ZXN0IC16ICIkKENUQUdTX0FS R1MpJCR1bmlxdWUiIFwKKysJICB8fCAkKENUQUdTKSAkKENUQUdTRkxBR1MpICQoQU1fQ1RBR1NG TEFHUykgJChDVEFHU19BUkdTKSBcCisrCSAgICAgJCR1bmlxdWUKKysKKytHVEFHUzoKKysJaGVy ZT1gJChhbV9fY2QpICQodG9wX2J1aWxkZGlyKSAmJiBwd2RgIFwKKysJICAmJiAkKGFtX19jZCkg JCh0b3Bfc3JjZGlyKSBcCisrCSAgJiYgZ3RhZ3MgLWkgJChHVEFHU19BUkdTKSAiJCRoZXJlIgor KworK2Rpc3RjbGVhbi10YWdzOgorKwktcm0gLWYgVEFHUyBJRCBHVEFHUyBHUlRBR1MgR1NZTVMg R1BBVEggdGFncworKworK2Rpc3RkaXI6ICQoRElTVEZJTEVTKQorKwkkKGFtX19yZW1vdmVfZGlz dGRpcikKKysJdGVzdCAtZCAiJChkaXN0ZGlyKSIgfHwgbWtkaXIgIiQoZGlzdGRpcikiCisrCUBz cmNkaXJzdHJpcD1gZWNobyAiJChzcmNkaXIpIiB8IHNlZCAncy9bXS5bXiQkXFwqXS9cXFxcJi9n J2A7IFwKKysJdG9wc3JjZGlyc3RyaXA9YGVjaG8gIiQodG9wX3NyY2RpcikiIHwgc2VkICdzL1td LlteJCRcXCpdL1xcXFwmL2cnYDsgXAorKwlsaXN0PSckKERJU1RGSUxFUyknOyBcCisrCSAgZGlz dF9maWxlcz1gZm9yIGZpbGUgaW4gJCRsaXN0OyBkbyBlY2hvICQkZmlsZTsgZG9uZSB8IFwKKysJ ICBzZWQgLWUgInN8XiQkc3JjZGlyc3RyaXAvfHw7dCIgXAorKwkgICAgICAtZSAic3xeJCR0b3Bz cmNkaXJzdHJpcC98JCh0b3BfYnVpbGRkaXIpL3w7dCJgOyBcCisrCWNhc2UgJCRkaXN0X2ZpbGVz IGluIFwKKysJICAqLyopICQoTUtESVJfUCkgYGVjaG8gIiQkZGlzdF9maWxlcyIgfCBcCisrCQkJ ICAgc2VkICcvXC8vIWQ7c3xefCQoZGlzdGRpcikvfDtzLC9bXi9dKiQkLCwnIHwgXAorKwkJCSAg IHNvcnQgLXVgIDs7IFwKKysJZXNhYzsgXAorKwlmb3IgZmlsZSBpbiAkJGRpc3RfZmlsZXM7IGRv IFwKKysJICBpZiB0ZXN0IC1mICQkZmlsZSB8fCB0ZXN0IC1kICQkZmlsZTsgdGhlbiBkPS47IGVs c2UgZD0kKHNyY2Rpcik7IGZpOyBcCisrCSAgaWYgdGVzdCAtZCAkJGQvJCRmaWxlOyB0aGVuIFwK KysJICAgIGRpcj1gZWNobyAiLyQkZmlsZSIgfCBzZWQgLWUgJ3MsL1teL10qJCQsLCdgOyBcCisr CSAgICBpZiB0ZXN0IC1kICIkKGRpc3RkaXIpLyQkZmlsZSI7IHRoZW4gXAorKwkgICAgICBmaW5k ICIkKGRpc3RkaXIpLyQkZmlsZSIgLXR5cGUgZCAhIC1wZXJtIC03MDAgLWV4ZWMgY2htb2QgdSty d3gge30gXDs7IFwKKysJICAgIGZpOyBcCisrCSAgICBpZiB0ZXN0IC1kICQoc3JjZGlyKS8kJGZp bGUgJiYgdGVzdCAkJGQgIT0gJChzcmNkaXIpOyB0aGVuIFwKKysJICAgICAgY3AgLWZwUiAkKHNy Y2RpcikvJCRmaWxlICIkKGRpc3RkaXIpJCRkaXIiIHx8IGV4aXQgMTsgXAorKwkgICAgICBmaW5k ICIkKGRpc3RkaXIpLyQkZmlsZSIgLXR5cGUgZCAhIC1wZXJtIC03MDAgLWV4ZWMgY2htb2QgdSty d3gge30gXDs7IFwKKysJICAgIGZpOyBcCisrCSAgICBjcCAtZnBSICQkZC8kJGZpbGUgIiQoZGlz dGRpcikkJGRpciIgfHwgZXhpdCAxOyBcCisrCSAgZWxzZSBcCisrCSAgICB0ZXN0IC1mICIkKGRp c3RkaXIpLyQkZmlsZSIgXAorKwkgICAgfHwgY3AgLXAgJCRkLyQkZmlsZSAiJChkaXN0ZGlyKS8k JGZpbGUiIFwKKysJICAgIHx8IGV4aXQgMTsgXAorKwkgIGZpOyBcCisrCWRvbmUKKysJQGxpc3Q9 JyQoRElTVF9TVUJESVJTKSc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCisrCSAgaWYgdGVz dCAiJCRzdWJkaXIiID0gLjsgdGhlbiA6OyBlbHNlIFwKKysJICAgIHRlc3QgLWQgIiQoZGlzdGRp cikvJCRzdWJkaXIiIFwKKysJICAgIHx8ICQoTUtESVJfUCkgIiQoZGlzdGRpcikvJCRzdWJkaXIi IFwKKysJICAgIHx8IGV4aXQgMTsgXAorKwkgIGZpOyBcCisrCWRvbmUKKysJQGxpc3Q9JyQoRElT VF9TVUJESVJTKSc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCisrCSAgaWYgdGVzdCAiJCRz dWJkaXIiID0gLjsgdGhlbiA6OyBlbHNlIFwKKysJICAgIGRpcjE9JCRzdWJkaXI7IGRpcjI9IiQo ZGlzdGRpcikvJCRzdWJkaXIiOyBcCisrCSAgICAkKGFtX19yZWxhdGl2aXplKTsgXAorKwkgICAg bmV3X2Rpc3RkaXI9JCRyZWxkaXI7IFwKKysJICAgIGRpcjE9JCRzdWJkaXI7IGRpcjI9IiQodG9w X2Rpc3RkaXIpIjsgXAorKwkgICAgJChhbV9fcmVsYXRpdml6ZSk7IFwKKysJICAgIG5ld190b3Bf ZGlzdGRpcj0kJHJlbGRpcjsgXAorKwkgICAgZWNobyAiIChjZCAkJHN1YmRpciAmJiAkKE1BS0Up ICQoQU1fTUFLRUZMQUdTKSB0b3BfZGlzdGRpcj0iJCRuZXdfdG9wX2Rpc3RkaXIiIGRpc3RkaXI9 IiQkbmV3X2Rpc3RkaXIiIFxcIjsgXAorKwkgICAgZWNobyAiICAgICBhbV9fcmVtb3ZlX2Rpc3Rk aXI9OiBhbV9fc2tpcF9sZW5ndGhfY2hlY2s9OiBhbV9fc2tpcF9tb2RlX2ZpeD06IGRpc3RkaXIp IjsgXAorKwkgICAgKCQoYW1fX2NkKSAkJHN1YmRpciAmJiBcCisrCSAgICAgICQoTUFLRSkgJChB TV9NQUtFRkxBR1MpIFwKKysJICAgICAgICB0b3BfZGlzdGRpcj0iJCRuZXdfdG9wX2Rpc3RkaXIi IFwKKysJICAgICAgICBkaXN0ZGlyPSIkJG5ld19kaXN0ZGlyIiBcCisrCQlhbV9fcmVtb3ZlX2Rp c3RkaXI9OiBcCisrCQlhbV9fc2tpcF9sZW5ndGhfY2hlY2s9OiBcCisrCQlhbV9fc2tpcF9tb2Rl X2ZpeD06IFwKKysJICAgICAgICBkaXN0ZGlyKSBcCisrCSAgICAgIHx8IGV4aXQgMTsgXAorKwkg IGZpOyBcCisrCWRvbmUKKysJLXRlc3QgLW4gIiQoYW1fX3NraXBfbW9kZV9maXgpIiBcCisrCXx8 IGZpbmQgIiQoZGlzdGRpcikiIC10eXBlIGQgISAtcGVybSAtNzU1IFwKKysJCS1leGVjIGNobW9k IHUrcnd4LGdvK3J4IHt9IFw7IC1vIFwKKysJICAhIC10eXBlIGQgISAtcGVybSAtNDQ0IC1saW5r cyAxIC1leGVjIGNobW9kIGErciB7fSBcOyAtbyBcCisrCSAgISAtdHlwZSBkICEgLXBlcm0gLTQw MCAtZXhlYyBjaG1vZCBhK3Ige30gXDsgLW8gXAorKwkgICEgLXR5cGUgZCAhIC1wZXJtIC00NDQg LWV4ZWMgJChpbnN0YWxsX3NoKSAtYyAtbSBhK3Ige30ge30gXDsgXAorKwl8fCBjaG1vZCAtUiBh K3IgIiQoZGlzdGRpcikiCisrZGlzdC1nemlwOiBkaXN0ZGlyCisrCXRhcmRpcj0kKGRpc3RkaXIp ICYmICQoYW1fX3RhcikgfCBHWklQPSQoR1pJUF9FTlYpIGd6aXAgLWMgPiQoZGlzdGRpcikudGFy Lmd6CisrCSQoYW1fX3JlbW92ZV9kaXN0ZGlyKQorK2Rpc3QtYnppcDI6IGRpc3RkaXIKKysJdGFy ZGlyPSQoZGlzdGRpcikgJiYgJChhbV9fdGFyKSB8IGJ6aXAyIC05IC1jID4kKGRpc3RkaXIpLnRh ci5iejIKKysJJChhbV9fcmVtb3ZlX2Rpc3RkaXIpCisrCisrZGlzdC1sem1hOiBkaXN0ZGlyCisr CXRhcmRpcj0kKGRpc3RkaXIpICYmICQoYW1fX3RhcikgfCBsem1hIC05IC1jID4kKGRpc3RkaXIp LnRhci5sem1hCisrCSQoYW1fX3JlbW92ZV9kaXN0ZGlyKQorKworK2Rpc3QteHo6IGRpc3RkaXIK KysJdGFyZGlyPSQoZGlzdGRpcikgJiYgJChhbV9fdGFyKSB8IHh6IC1jID4kKGRpc3RkaXIpLnRh ci54egorKwkkKGFtX19yZW1vdmVfZGlzdGRpcikKKysKKytkaXN0LXRhclo6IGRpc3RkaXIKKysJ dGFyZGlyPSQoZGlzdGRpcikgJiYgJChhbV9fdGFyKSB8IGNvbXByZXNzIC1jID4kKGRpc3RkaXIp LnRhci5aCisrCSQoYW1fX3JlbW92ZV9kaXN0ZGlyKQorKworK2Rpc3Qtc2hhcjogZGlzdGRpcgor KwlzaGFyICQoZGlzdGRpcikgfCBHWklQPSQoR1pJUF9FTlYpIGd6aXAgLWMgPiQoZGlzdGRpciku c2hhci5negorKwkkKGFtX19yZW1vdmVfZGlzdGRpcikKKysKKytkaXN0LXppcDogZGlzdGRpcgor Kwktcm0gLWYgJChkaXN0ZGlyKS56aXAKKysJemlwIC1ycSAkKGRpc3RkaXIpLnppcCAkKGRpc3Rk aXIpCisrCSQoYW1fX3JlbW92ZV9kaXN0ZGlyKQorKworK2Rpc3QgZGlzdC1hbGw6IGRpc3RkaXIK KysJdGFyZGlyPSQoZGlzdGRpcikgJiYgJChhbV9fdGFyKSB8IEdaSVA9JChHWklQX0VOVikgZ3pp cCAtYyA+JChkaXN0ZGlyKS50YXIuZ3oKKysJdGFyZGlyPSQoZGlzdGRpcikgJiYgJChhbV9fdGFy KSB8IGJ6aXAyIC05IC1jID4kKGRpc3RkaXIpLnRhci5iejIKKysJJChhbV9fcmVtb3ZlX2Rpc3Rk aXIpCisrCisrIyBUaGlzIHRhcmdldCB1bnRhcnMgdGhlIGRpc3QgZmlsZSBhbmQgdHJpZXMgYSBW UEFUSCBjb25maWd1cmF0aW9uLiAgVGhlbgorKyMgaXQgZ3VhcmFudGVlcyB0aGF0IHRoZSBkaXN0 cmlidXRpb24gaXMgc2VsZi1jb250YWluZWQgYnkgbWFraW5nIGFub3RoZXIKKysjIHRhcmZpbGUu CisrZGlzdGNoZWNrOiBkaXN0CisrCWNhc2UgJyQoRElTVF9BUkNISVZFUyknIGluIFwKKysJKi50 YXIuZ3oqKSBcCisrCSAgR1pJUD0kKEdaSVBfRU5WKSBnemlwIC1kYyAkKGRpc3RkaXIpLnRhci5n eiB8ICQoYW1fX3VudGFyKSA7O1wKKysJKi50YXIuYnoyKikgXAorKwkgIGJ6aXAyIC1kYyAkKGRp c3RkaXIpLnRhci5iejIgfCAkKGFtX191bnRhcikgOztcCisrCSoudGFyLmx6bWEqKSBcCisrCSAg bHptYSAtZGMgJChkaXN0ZGlyKS50YXIubHptYSB8ICQoYW1fX3VudGFyKSA7O1wKKysJKi50YXIu eHoqKSBcCisrCSAgeHogLWRjICQoZGlzdGRpcikudGFyLnh6IHwgJChhbV9fdW50YXIpIDs7XAor KwkqLnRhci5aKikgXAorKwkgIHVuY29tcHJlc3MgLWMgJChkaXN0ZGlyKS50YXIuWiB8ICQoYW1f X3VudGFyKSA7O1wKKysJKi5zaGFyLmd6KikgXAorKwkgIEdaSVA9JChHWklQX0VOVikgZ3ppcCAt ZGMgJChkaXN0ZGlyKS5zaGFyLmd6IHwgdW5zaGFyIDs7XAorKwkqLnppcCopIFwKKysJICB1bnpp cCAkKGRpc3RkaXIpLnppcCA7O1wKKysJZXNhYworKwljaG1vZCAtUiBhLXcgJChkaXN0ZGlyKTsg Y2htb2QgYSt3ICQoZGlzdGRpcikKKysJbWtkaXIgJChkaXN0ZGlyKS9fYnVpbGQKKysJbWtkaXIg JChkaXN0ZGlyKS9faW5zdAorKwljaG1vZCBhLXcgJChkaXN0ZGlyKQorKwl0ZXN0IC1kICQoZGlz dGRpcikvX2J1aWxkIHx8IGV4aXQgMDsgXAorKwlkY19pbnN0YWxsX2Jhc2U9YCQoYW1fX2NkKSAk KGRpc3RkaXIpL19pbnN0ICYmIHB3ZCB8IHNlZCAtZSAncyxeW146XFwvXTpbXFwvXSwvLCdgIFwK KysJICAmJiBkY19kZXN0ZGlyPSIkJHtUTVBESVItL3RtcH0vYW0tZGMtJCQkJC8iIFwKKysJICAm JiBhbV9fY3dkPWBwd2RgIFwKKysJICAmJiAkKGFtX19jZCkgJChkaXN0ZGlyKS9fYnVpbGQgXAor KwkgICYmIC4uL2NvbmZpZ3VyZSAtLXNyY2Rpcj0uLiAtLXByZWZpeD0iJCRkY19pbnN0YWxsX2Jh c2UiIFwKKysJICAgICQoRElTVENIRUNLX0NPTkZJR1VSRV9GTEFHUykgXAorKwkgICYmICQoTUFL RSkgJChBTV9NQUtFRkxBR1MpIFwKKysJICAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBkdmkg XAorKwkgICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGNoZWNrIFwKKysJICAmJiAkKE1BS0Up ICQoQU1fTUFLRUZMQUdTKSBpbnN0YWxsIFwKKysJICAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdT KSBpbnN0YWxsY2hlY2sgXAorKwkgICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIHVuaW5zdGFs bCBcCisrCSAgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgZGlzdHVuaW5zdGFsbGNoZWNrX2Rp cj0iJCRkY19pbnN0YWxsX2Jhc2UiIFwKKysJICAgICAgICBkaXN0dW5pbnN0YWxsY2hlY2sgXAor KwkgICYmIGNobW9kIC1SIGEtdyAiJCRkY19pbnN0YWxsX2Jhc2UiIFwKKysJICAmJiAoeyBcCisr CSAgICAgICAoY2QgLi4vLi4gJiYgdW1hc2sgMDc3ICYmIG1rZGlyICIkJGRjX2Rlc3RkaXIiKSBc CisrCSAgICAgICAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBERVNURElSPSIkJGRjX2Rlc3Rk aXIiIGluc3RhbGwgXAorKwkgICAgICAgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgREVTVERJ Uj0iJCRkY19kZXN0ZGlyIiB1bmluc3RhbGwgXAorKwkgICAgICAgJiYgJChNQUtFKSAkKEFNX01B S0VGTEFHUykgREVTVERJUj0iJCRkY19kZXN0ZGlyIiBcCisrCSAgICAgICAgICAgIGRpc3R1bmlu c3RhbGxjaGVja19kaXI9IiQkZGNfZGVzdGRpciIgZGlzdHVuaW5zdGFsbGNoZWNrOyBcCisrCSAg ICAgIH0gfHwgeyBybSAtcmYgIiQkZGNfZGVzdGRpciI7IGV4aXQgMTsgfSkgXAorKwkgICYmIHJt IC1yZiAiJCRkY19kZXN0ZGlyIiBcCisrCSAgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgZGlz dCBcCisrCSAgJiYgcm0gLXJmICQoRElTVF9BUkNISVZFUykgXAorKwkgICYmICQoTUFLRSkgJChB TV9NQUtFRkxBR1MpIGRpc3RjbGVhbmNoZWNrIFwKKysJICAmJiBjZCAiJCRhbV9fY3dkIiBcCisr CSAgfHwgZXhpdCAxCisrCSQoYW1fX3JlbW92ZV9kaXN0ZGlyKQorKwlAKGVjaG8gIiQoZGlzdGRp cikgYXJjaGl2ZXMgcmVhZHkgZm9yIGRpc3RyaWJ1dGlvbjogIjsgXAorKwkgIGxpc3Q9JyQoRElT VF9BUkNISVZFUyknOyBmb3IgaSBpbiAkJGxpc3Q7IGRvIGVjaG8gJCRpOyBkb25lKSB8IFwKKysJ ICBzZWQgLWUgMWggLWUgMXMvLi89L2cgLWUgMXAgLWUgMXggLWUgJyQkcCcgLWUgJyQkeCcKKytk aXN0dW5pbnN0YWxsY2hlY2s6CisrCUAkKGFtX19jZCkgJyQoZGlzdHVuaW5zdGFsbGNoZWNrX2Rp ciknIFwKKysJJiYgdGVzdCBgJChkaXN0dW5pbnN0YWxsY2hlY2tfbGlzdGZpbGVzKSB8IHdjIC1s YCAtbGUgMSBcCisrCSAgIHx8IHsgZWNobyAiRVJST1I6IGZpbGVzIGxlZnQgYWZ0ZXIgdW5pbnN0 YWxsOiIgOyBcCisrCSAgICAgICAgaWYgdGVzdCAtbiAiJChERVNURElSKSI7IHRoZW4gXAorKwkg ICAgICAgICAgZWNobyAiICAoY2hlY2sgREVTVERJUiBzdXBwb3J0KSI7IFwKKysJICAgICAgICBm aSA7IFwKKysJICAgICAgICAkKGRpc3R1bmluc3RhbGxjaGVja19saXN0ZmlsZXMpIDsgXAorKwkg ICAgICAgIGV4aXQgMTsgfSA+JjIKKytkaXN0Y2xlYW5jaGVjazogZGlzdGNsZWFuCisrCUBpZiB0 ZXN0ICckKHNyY2RpciknID0gLiA7IHRoZW4gXAorKwkgIGVjaG8gIkVSUk9SOiBkaXN0Y2xlYW5j aGVjayBjYW4gb25seSBydW4gZnJvbSBhIFZQQVRIIGJ1aWxkIiA7IFwKKysJICBleGl0IDEgOyBc CisrCWZpCisrCUB0ZXN0IGAkKGRpc3RjbGVhbmNoZWNrX2xpc3RmaWxlcykgfCB3YyAtbGAgLWVx IDAgXAorKwkgIHx8IHsgZWNobyAiRVJST1I6IGZpbGVzIGxlZnQgaW4gYnVpbGQgZGlyZWN0b3J5 IGFmdGVyIGRpc3RjbGVhbjoiIDsgXAorKwkgICAgICAgJChkaXN0Y2xlYW5jaGVja19saXN0Zmls ZXMpIDsgXAorKwkgICAgICAgZXhpdCAxOyB9ID4mMgorK2NoZWNrLWFtOiBhbGwtYW0KKytjaGVj azogY2hlY2stcmVjdXJzaXZlCisrYWxsLWFtOiBNYWtlZmlsZSAkKFNDUklQVFMpICQoREFUQSkK KytpbnN0YWxsZGlyczogaW5zdGFsbGRpcnMtcmVjdXJzaXZlCisraW5zdGFsbGRpcnMtYW06Cisr CWZvciBkaXIgaW4gIiQoREVTVERJUikkKGJpbmRpcikiICIkKERFU1RESVIpJChtNGRhdGFkaXIp IiAiJChERVNURElSKSQocGtnY29uZmlnZGlyKSI7IGRvIFwKKysJICB0ZXN0IC16ICIkJGRpciIg fHwgJChNS0RJUl9QKSAiJCRkaXIiOyBcCisrCWRvbmUKKytpbnN0YWxsOiBpbnN0YWxsLXJlY3Vy c2l2ZQorK2luc3RhbGwtZXhlYzogaW5zdGFsbC1leGVjLXJlY3Vyc2l2ZQorK2luc3RhbGwtZGF0 YTogaW5zdGFsbC1kYXRhLXJlY3Vyc2l2ZQorK3VuaW5zdGFsbDogdW5pbnN0YWxsLXJlY3Vyc2l2 ZQorKworK2luc3RhbGwtYW06IGFsbC1hbQorKwlAJChNQUtFKSAkKEFNX01BS0VGTEFHUykgaW5z dGFsbC1leGVjLWFtIGluc3RhbGwtZGF0YS1hbQorKworK2luc3RhbGxjaGVjazogaW5zdGFsbGNo ZWNrLXJlY3Vyc2l2ZQorK2luc3RhbGwtc3RyaXA6CisrCSQoTUFLRSkgJChBTV9NQUtFRkxBR1Mp IElOU1RBTExfUFJPR1JBTT0iJChJTlNUQUxMX1NUUklQX1BST0dSQU0pIiBcCisrCSAgaW5zdGFs bF9zaF9QUk9HUkFNPSIkKElOU1RBTExfU1RSSVBfUFJPR1JBTSkiIElOU1RBTExfU1RSSVBfRkxB Rz0tcyBcCisrCSAgYHRlc3QgLXogJyQoU1RSSVApJyB8fCBcCisrCSAgICBlY2hvICJJTlNUQUxM X1BST0dSQU1fRU5WPVNUUklQUFJPRz0nJChTVFJJUCknImAgaW5zdGFsbAorK21vc3RseWNsZWFu LWdlbmVyaWM6CisrCisrY2xlYW4tZ2VuZXJpYzoKKysKKytkaXN0Y2xlYW4tZ2VuZXJpYzoKKysJ LXRlc3QgLXogIiQoQ09ORklHX0NMRUFOX0ZJTEVTKSIgfHwgcm0gLWYgJChDT05GSUdfQ0xFQU5f RklMRVMpCisrCS10ZXN0IC4gPSAiJChzcmNkaXIpIiB8fCB0ZXN0IC16ICIkKENPTkZJR19DTEVB Tl9WUEFUSF9GSUxFUykiIHx8IHJtIC1mICQoQ09ORklHX0NMRUFOX1ZQQVRIX0ZJTEVTKQorKwor K21haW50YWluZXItY2xlYW4tZ2VuZXJpYzoKKysJQGVjaG8gIlRoaXMgY29tbWFuZCBpcyBpbnRl bmRlZCBmb3IgbWFpbnRhaW5lcnMgdG8gdXNlIgorKwlAZWNobyAiaXQgZGVsZXRlcyBmaWxlcyB0 aGF0IG1heSByZXF1aXJlIHNwZWNpYWwgdG9vbHMgdG8gcmVidWlsZC4iCisrCS10ZXN0IC16ICIk KE1BSU5UQUlORVJDTEVBTkZJTEVTKSIgfHwgcm0gLWYgJChNQUlOVEFJTkVSQ0xFQU5GSUxFUykK KytjbGVhbjogY2xlYW4tcmVjdXJzaXZlCisrCisrY2xlYW4tYW06IGNsZWFuLWdlbmVyaWMgY2xl YW4tbGlidG9vbCBtb3N0bHljbGVhbi1hbQorKworK2Rpc3RjbGVhbjogZGlzdGNsZWFuLXJlY3Vy c2l2ZQorKwktcm0gLWYgJChhbV9fQ09ORklHX0RJU1RDTEVBTl9GSUxFUykKKysJLXJtIC1mIE1h a2VmaWxlCisrZGlzdGNsZWFuLWFtOiBjbGVhbi1hbSBkaXN0Y2xlYW4tZ2VuZXJpYyBkaXN0Y2xl YW4tbGlidG9vbCBcCisrCWRpc3RjbGVhbi10YWdzCisrCisrZHZpOiBkdmktcmVjdXJzaXZlCisr CisrZHZpLWFtOgorKworK2h0bWw6IGh0bWwtcmVjdXJzaXZlCisrCisraHRtbC1hbToKKysKKytp bmZvOiBpbmZvLXJlY3Vyc2l2ZQorKworK2luZm8tYW06CisrCisraW5zdGFsbC1kYXRhLWFtOiBp bnN0YWxsLW00ZGF0YURBVEEgaW5zdGFsbC1wa2djb25maWdEQVRBCisrCisraW5zdGFsbC1kdmk6 IGluc3RhbGwtZHZpLXJlY3Vyc2l2ZQorKworK2luc3RhbGwtZHZpLWFtOgorKworK2luc3RhbGwt ZXhlYy1hbTogaW5zdGFsbC1iaW5TQ1JJUFRTCisrCisraW5zdGFsbC1odG1sOiBpbnN0YWxsLWh0 bWwtcmVjdXJzaXZlCisrCisraW5zdGFsbC1odG1sLWFtOgorKworK2luc3RhbGwtaW5mbzogaW5z dGFsbC1pbmZvLXJlY3Vyc2l2ZQorKworK2luc3RhbGwtaW5mby1hbToKKysKKytpbnN0YWxsLW1h bjoKKysKKytpbnN0YWxsLXBkZjogaW5zdGFsbC1wZGYtcmVjdXJzaXZlCisrCisraW5zdGFsbC1w ZGYtYW06CisrCisraW5zdGFsbC1wczogaW5zdGFsbC1wcy1yZWN1cnNpdmUKKysKKytpbnN0YWxs LXBzLWFtOgorKworK2luc3RhbGxjaGVjay1hbToKKysKKyttYWludGFpbmVyLWNsZWFuOiBtYWlu dGFpbmVyLWNsZWFuLXJlY3Vyc2l2ZQorKwktcm0gLWYgJChhbV9fQ09ORklHX0RJU1RDTEVBTl9G SUxFUykKKysJLXJtIC1yZiAkKHRvcF9zcmNkaXIpL2F1dG9tNHRlLmNhY2hlCisrCS1ybSAtZiBN YWtlZmlsZQorK21haW50YWluZXItY2xlYW4tYW06IGRpc3RjbGVhbi1hbSBtYWludGFpbmVyLWNs ZWFuLWdlbmVyaWMKKysKKyttb3N0bHljbGVhbjogbW9zdGx5Y2xlYW4tcmVjdXJzaXZlCisrCisr bW9zdGx5Y2xlYW4tYW06IG1vc3RseWNsZWFuLWdlbmVyaWMgbW9zdGx5Y2xlYW4tbGlidG9vbAor KworK3BkZjogcGRmLXJlY3Vyc2l2ZQorKworK3BkZi1hbToKKysKKytwczogcHMtcmVjdXJzaXZl CisrCisrcHMtYW06CisrCisrdW5pbnN0YWxsLWFtOiB1bmluc3RhbGwtYmluU0NSSVBUUyB1bmlu c3RhbGwtbG9jYWwgXAorKwl1bmluc3RhbGwtbTRkYXRhREFUQSB1bmluc3RhbGwtcGtnY29uZmln REFUQQorKworKy5NQUtFOiAkKFJFQ1VSU0lWRV9DTEVBTl9UQVJHRVRTKSAkKFJFQ1VSU0lWRV9U QVJHRVRTKSBjdGFncy1yZWN1cnNpdmUgXAorKwlpbnN0YWxsLWFtIGluc3RhbGwtc3RyaXAgdGFn cy1yZWN1cnNpdmUKKysKKysuUEhPTlk6ICQoUkVDVVJTSVZFX0NMRUFOX1RBUkdFVFMpICQoUkVD VVJTSVZFX1RBUkdFVFMpIENUQUdTIEdUQUdTIFwKKysJYWxsIGFsbC1hbSBhbS0tcmVmcmVzaCBj aGVjayBjaGVjay1hbSBjbGVhbiBjbGVhbi1nZW5lcmljIFwKKysJY2xlYW4tbGlidG9vbCBjdGFn cyBjdGFncy1yZWN1cnNpdmUgZGlzdCBkaXN0LWFsbCBkaXN0LWJ6aXAyIFwKKysJZGlzdC1nemlw IGRpc3QtbHptYSBkaXN0LXNoYXIgZGlzdC10YXJaIGRpc3QteHogZGlzdC16aXAgXAorKwlkaXN0 Y2hlY2sgZGlzdGNsZWFuIGRpc3RjbGVhbi1nZW5lcmljIGRpc3RjbGVhbi1saWJ0b29sIFwKKysJ ZGlzdGNsZWFuLXRhZ3MgZGlzdGNsZWFuY2hlY2sgZGlzdGRpciBkaXN0dW5pbnN0YWxsY2hlY2sg ZHZpIFwKKysJZHZpLWFtIGh0bWwgaHRtbC1hbSBpbmZvIGluZm8tYW0gaW5zdGFsbCBpbnN0YWxs LWFtIFwKKysJaW5zdGFsbC1iaW5TQ1JJUFRTIGluc3RhbGwtZGF0YSBpbnN0YWxsLWRhdGEtYW0g aW5zdGFsbC1kdmkgXAorKwlpbnN0YWxsLWR2aS1hbSBpbnN0YWxsLWV4ZWMgaW5zdGFsbC1leGVj LWFtIGluc3RhbGwtaHRtbCBcCisrCWluc3RhbGwtaHRtbC1hbSBpbnN0YWxsLWluZm8gaW5zdGFs bC1pbmZvLWFtIFwKKysJaW5zdGFsbC1tNGRhdGFEQVRBIGluc3RhbGwtbWFuIGluc3RhbGwtcGRm IGluc3RhbGwtcGRmLWFtIFwKKysJaW5zdGFsbC1wa2djb25maWdEQVRBIGluc3RhbGwtcHMgaW5z dGFsbC1wcy1hbSBpbnN0YWxsLXN0cmlwIFwKKysJaW5zdGFsbGNoZWNrIGluc3RhbGxjaGVjay1h bSBpbnN0YWxsZGlycyBpbnN0YWxsZGlycy1hbSBcCisrCW1haW50YWluZXItY2xlYW4gbWFpbnRh aW5lci1jbGVhbi1nZW5lcmljIG1vc3RseWNsZWFuIFwKKysJbW9zdGx5Y2xlYW4tZ2VuZXJpYyBt b3N0bHljbGVhbi1saWJ0b29sIHBkZiBwZGYtYW0gcHMgcHMtYW0gXAorKwl0YWdzIHRhZ3MtcmVj dXJzaXZlIHVuaW5zdGFsbCB1bmluc3RhbGwtYW0gXAorKwl1bmluc3RhbGwtYmluU0NSSVBUUyB1 bmluc3RhbGwtbG9jYWwgdW5pbnN0YWxsLW00ZGF0YURBVEEgXAorKwl1bmluc3RhbGwtcGtnY29u ZmlnREFUQQorKworK0BTRVRfTUFLRUAKKysKKysjIFRhcmdldHMKKyt1bmluc3RhbGwtbG9jYWw6 CisrCXJtIC1yZiAkKERFU1RESVIpJChpbmNsdWRlZGlyKS9AUEFDS0FHRUAKKysKKytkaXN0LWh0 bWw6CisrCSQoTUFLRSkgLUMgZG9jIGRpc3QtaHRtbAorKworK3NuYXBzaG90OiBzbmFwc2hvdC1z cmMgc25hcHNob3QtaHRtbAorKworK3NuYXBzaG90LXNyYzoKKysgICAgICAgICQoTUFLRSkgZGlz dCBkaXN0ZGlyPUBQQUNLQUdFX1RBUk5BTUVALWBkYXRlICsiJVklbSVkImAKKysKKytzbmFwc2hv dC1odG1sOgorKwkkKE1BS0UpIC1DIGRvYyBkaXN0LWh0bWwgaHRtbF90YXJuYW1lPUBQQUNLQUdF X1RBUk5BTUVALWh0bWwtZG9jLWBkYXRlICsiJVklbSVkImAKKysKKyt1cGxvYWQ6IHVwbG9hZC1z cmMgdXBsb2FkLWh0bWwKKysKKyt1cGxvYWQtc3JjOiBkaXN0CisrCUBVUExPQURfQ09NTUFOREAg QFBBQ0tBR0VfVEFSTkFNRUAtQFZFUlNJT05ALnRhci5neiBcCisrCUBQQUNLQUdFX1RBUk5BTUVA LUBWRVJTSU9OQC50YXIuYnoyCisrCisrdXBsb2FkLWh0bWw6IGRpc3QtaHRtbAorKwlAVVBMT0FE X0NPTU1BTkRAIEBQQUNLQUdFX1RBUk5BTUVALWh0bWwtZG9jLUBWRVJTSU9OQC50YXIuZ3ogXAor KwlAUEFDS0FHRV9UQVJOQU1FQC1odG1sLWRvYy1AVkVSU0lPTkAudGFyLmJ6MgorKworKyMgVGVs bCB2ZXJzaW9ucyBbMy41OSwzLjYzKSBvZiBHTlUgbWFrZSB0byBub3QgZXhwb3J0IGFsbCB2YXJp YWJsZXMuCisrIyBPdGhlcndpc2UgYSBzeXN0ZW0gbGltaXQgKGZvciBTeXNWIGF0IGxlYXN0KSBt YXkgYmUgZXhjZWVkZWQuCisrLk5PRVhQT1JUOgorZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNr L21hbi9NYWtlZmlsZS5hbSBzb2NpLTMuMC4wX3RyZXAzMDAvbWFuL01ha2VmaWxlLmFtCistLS0g c29jaS0zLjAuMF80LXBhY2svbWFuL01ha2VmaWxlLmFtCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAw MDAwMDAwICswMTAwCisrKysgc29jaS0zLjAuMF90cmVwMzAwL21hbi9NYWtlZmlsZS5hbQkyMDA5 LTA0LTE2IDE5OjM3OjA5LjAwMDAwMDAwMCArMDIwMAorQEAgLTAsMCArMSw0IEBACisrIyBNYW4g cGFnZXMKKyttYW5fTUFOUyA9IHNvY2ktY29uZmlnLjEKKysKKytFWFRSQV9ESVNUID0gJChtYW5f TUFOUykKK2RpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9tYW4vTWFrZWZpbGUuaW4gc29jaS0z LjAuMF90cmVwMzAwL21hbi9NYWtlZmlsZS5pbgorLS0tIHNvY2ktMy4wLjBfNC1wYWNrL21hbi9N YWtlZmlsZS5pbgkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAorKysrIHNvY2kt My4wLjBfdHJlcDMwMC9tYW4vTWFrZWZpbGUuaW4JMjAxMC0wMS0yMyAxNDo0NDo1MS4wMDAwMDAw MDAgKzAxMDAKK0BAIC0wLDAgKzEsNDk0IEBACisrIyBNYWtlZmlsZS5pbiBnZW5lcmF0ZWQgYnkg YXV0b21ha2UgMS4xMS4xIGZyb20gTWFrZWZpbGUuYW0uCisrIyBAY29uZmlndXJlX2lucHV0QAor KworKyMgQ29weXJpZ2h0IChDKSAxOTk0LCAxOTk1LCAxOTk2LCAxOTk3LCAxOTk4LCAxOTk5LCAy MDAwLCAyMDAxLCAyMDAyLAorKyMgMjAwMywgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCwg MjAwOSAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLAorKyMgSW5jLgorKyMgVGhpcyBNYWtlZmls ZS5pbiBpcyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCisrIyBn aXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5IGFuZC9vciBkaXN0cmlidXRlIGl0LAor KyMgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbnMsIGFzIGxvbmcgYXMgdGhpcyBub3RpY2Ug aXMgcHJlc2VydmVkLgorKworKyMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBo b3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisrIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFks IHRvIHRoZSBleHRlbnQgcGVybWl0dGVkIGJ5IGxhdzsgd2l0aG91dAorKyMgZXZlbiB0aGUgaW1w bGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQQorKyMgUEFS VElDVUxBUiBQVVJQT1NFLgorKworK0BTRVRfTUFLRUAKKytWUEFUSCA9IEBzcmNkaXJACisrcGtn ZGF0YWRpciA9ICQoZGF0YWRpcikvQFBBQ0tBR0VACisrcGtnaW5jbHVkZWRpciA9ICQoaW5jbHVk ZWRpcikvQFBBQ0tBR0VACisrcGtnbGliZGlyID0gJChsaWJkaXIpL0BQQUNLQUdFQAorK3BrZ2xp YmV4ZWNkaXIgPSAkKGxpYmV4ZWNkaXIpL0BQQUNLQUdFQAorK2FtX19jZCA9IENEUEFUSD0iJCR7 WlNIX1ZFUlNJT04rLn0kKFBBVEhfU0VQQVJBVE9SKSIgJiYgY2QKKytpbnN0YWxsX3NoX0RBVEEg PSAkKGluc3RhbGxfc2gpIC1jIC1tIDY0NAorK2luc3RhbGxfc2hfUFJPR1JBTSA9ICQoaW5zdGFs bF9zaCkgLWMKKytpbnN0YWxsX3NoX1NDUklQVCA9ICQoaW5zdGFsbF9zaCkgLWMKKytJTlNUQUxM X0hFQURFUiA9ICQoSU5TVEFMTF9EQVRBKQorK3RyYW5zZm9ybSA9ICQocHJvZ3JhbV90cmFuc2Zv cm1fbmFtZSkKKytOT1JNQUxfSU5TVEFMTCA9IDoKKytQUkVfSU5TVEFMTCA9IDoKKytQT1NUX0lO U1RBTEwgPSA6CisrTk9STUFMX1VOSU5TVEFMTCA9IDoKKytQUkVfVU5JTlNUQUxMID0gOgorK1BP U1RfVU5JTlNUQUxMID0gOgorK2J1aWxkX3RyaXBsZXQgPSBAYnVpbGRACisraG9zdF90cmlwbGV0 ID0gQGhvc3RACisrc3ViZGlyID0gbWFuCisrRElTVF9DT01NT04gPSAkKHNyY2RpcikvTWFrZWZp bGUuYW0gJChzcmNkaXIpL01ha2VmaWxlLmluCisrQUNMT0NBTF9NNCA9ICQodG9wX3NyY2Rpcikv YWNsb2NhbC5tNAorK2FtX19hY2xvY2FsX200X2RlcHMgPSAkKHRvcF9zcmNkaXIpL2NvbmZpZy9h eF9ib29zdC5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2F4X215c3FsLm00IFwKKysJJCh0 b3Bfc3JjZGlyKS9jb25maWcvYXhfb3JhY2xlX29jaS5tNCBcCisrCSQodG9wX3NyY2RpcikvY29u ZmlnL2F4X3Bvc3RncmVzcWwubTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9jcHB1bml0Lm00 IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcvbGlidG9vbC5tNCBcCisrCSQodG9wX3NyY2Rpcikv Y29uZmlnL2x0b3B0aW9ucy5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2x0c3VnYXIubTQg XAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9sdHZlcnNpb24ubTQgXAorKwkkKHRvcF9zcmNkaXIp L2NvbmZpZy9sdH5vYnNvbGV0ZS5tNCAkKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZS5hYworK2FtX19j b25maWd1cmVfZGVwcyA9ICQoYW1fX2FjbG9jYWxfbTRfZGVwcykgJChDT05GSUdVUkVfREVQRU5E RU5DSUVTKSBcCisrCSQoQUNMT0NBTF9NNCkKKytta2luc3RhbGxkaXJzID0gJChpbnN0YWxsX3No KSAtZAorK0NPTkZJR19IRUFERVIgPSAkKHRvcF9idWlsZGRpcikvc29jaS9jb25maWcuaAorK0NP TkZJR19DTEVBTl9GSUxFUyA9CisrQ09ORklHX0NMRUFOX1ZQQVRIX0ZJTEVTID0KKytTT1VSQ0VT ID0KKytESVNUX1NPVVJDRVMgPQorK2FtX192cGF0aF9hZGpfc2V0dXAgPSBzcmNkaXJzdHJpcD1g ZWNobyAiJChzcmNkaXIpIiB8IHNlZCAnc3wufC58ZydgOworK2FtX192cGF0aF9hZGogPSBjYXNl ICQkcCBpbiBcCisrICAgICQoc3JjZGlyKS8qKSBmPWBlY2hvICIkJHAiIHwgc2VkICJzfF4kJHNy Y2RpcnN0cmlwL3x8ImA7OyBcCisrICAgICopIGY9JCRwOzsgXAorKyAgZXNhYzsKKythbV9fc3Ry aXBfZGlyID0gZj1gZWNobyAkJHAgfCBzZWQgLWUgJ3N8Xi4qL3x8J2A7CisrYW1fX2luc3RhbGxf bWF4ID0gNDAKKythbV9fbm9iYXNlX3N0cmlwX3NldHVwID0gXAorKyAgc3JjZGlyc3RyaXA9YGVj aG8gIiQoc3JjZGlyKSIgfCBzZWQgJ3MvW10uW14kJFxcKnxdL1xcXFwmL2cnYAorK2FtX19ub2Jh c2Vfc3RyaXAgPSBcCisrICBmb3IgcCBpbiAkJGxpc3Q7IGRvIGVjaG8gIiQkcCI7IGRvbmUgfCBz ZWQgLWUgInN8JCRzcmNkaXJzdHJpcC98fCIKKythbV9fbm9iYXNlX2xpc3QgPSAkKGFtX19ub2Jh c2Vfc3RyaXBfc2V0dXApOyBcCisrICBmb3IgcCBpbiAkJGxpc3Q7IGRvIGVjaG8gIiQkcCAkJHAi OyBkb25lIHwgXAorKyAgc2VkICJzfCAkJHNyY2RpcnN0cmlwL3wgfDsiJyAvIC4qXC8vIXMvIC4q LyAuLzsgcyxcKCAuKlwpL1teL10qJCQsXDEsJyB8IFwKKysgICQoQVdLKSAnQkVHSU4geyBmaWxl c1siLiJdID0gIiIgfSB7IGZpbGVzWyQkMl0gPSBmaWxlc1skJDJdICIgIiAkJDE7IFwKKysgICAg aWYgKCsrblskJDJdID09ICQoYW1fX2luc3RhbGxfbWF4KSkgXAorKyAgICAgIHsgcHJpbnQgJCQy LCBmaWxlc1skJDJdOyBuWyQkMl0gPSAwOyBmaWxlc1skJDJdID0gIiIgfSB9IFwKKysgICAgRU5E IHsgZm9yIChkaXIgaW4gZmlsZXMpIHByaW50IGRpciwgZmlsZXNbZGlyXSB9JworK2FtX19iYXNl X2xpc3QgPSBcCisrICBzZWQgJyQkIU47JCQhTjskJCFOOyQkIU47JCQhTjskJCFOOyQkIU47cy9c bi8gL2cnIHwgXAorKyAgc2VkICckJCFOOyQkIU47JCQhTjskJCFOO3MvXG4vIC9nJworK21hbjFk aXIgPSAkKG1hbmRpcikvbWFuMQorK2FtX19pbnN0YWxsZGlycyA9ICIkKERFU1RESVIpJChtYW4x ZGlyKSIKKytOUk9GRiA9IG5yb2ZmCisrTUFOUyA9ICQobWFuX01BTlMpCisrRElTVEZJTEVTID0g JChESVNUX0NPTU1PTikgJChESVNUX1NPVVJDRVMpICQoVEVYSU5GT1MpICQoRVhUUkFfRElTVCkK KytBQ0xPQ0FMID0gQEFDTE9DQUxACisrQU1UQVIgPSBAQU1UQVJACisrQVIgPSBAQVJACisrQVVU T0NPTkYgPSBAQVVUT0NPTkZACisrQVVUT0hFQURFUiA9IEBBVVRPSEVBREVSQAorK0FVVE9NQUtF ID0gQEFVVE9NQUtFQAorK0FXSyA9IEBBV0tACisrQk9PU1RfQ0ZMQUdTID0gQEJPT1NUX0NGTEFH U0AKKytCT09TVF9EQVRFX1RJTUVfTElCID0gQEJPT1NUX0RBVEVfVElNRV9MSUJACisrQk9PU1Rf RklMRVNZU1RFTV9MSUIgPSBAQk9PU1RfRklMRVNZU1RFTV9MSUJACisrQk9PU1RfSU9TVFJFQU1T X0xJQiA9IEBCT09TVF9JT1NUUkVBTVNfTElCQAorK0JPT1NUX0xJQlMgPSBAQk9PU1RfTElCU0AK KytCT09TVF9NUElfTElCID0gQEJPT1NUX01QSV9MSUJACisrQk9PU1RfTVBJX1BZVEhPTl9MSUIg PSBAQk9PU1RfTVBJX1BZVEhPTl9MSUJACisrQk9PU1RfUFJPR1JBTV9PUFRJT05TX0xJQiA9IEBC T09TVF9QUk9HUkFNX09QVElPTlNfTElCQAorK0JPT1NUX1BZVEhPTl9MSUIgPSBAQk9PU1RfUFlU SE9OX0xJQkAKKytCT09TVF9SRUdFWF9MSUIgPSBAQk9PU1RfUkVHRVhfTElCQAorK0JPT1NUX1NF UklBTElaQVRJT05fTElCID0gQEJPT1NUX1NFUklBTElaQVRJT05fTElCQAorK0JPT1NUX1NJR05B TFNfTElCID0gQEJPT1NUX1NJR05BTFNfTElCQAorK0JPT1NUX1NZU1RFTV9MSUIgPSBAQk9PU1Rf U1lTVEVNX0xJQkAKKytCT09TVF9USFJFQURfTElCID0gQEJPT1NUX1RIUkVBRF9MSUJACisrQk9P U1RfVU5JVF9URVNUX0ZSQU1FV09SS19MSUIgPSBAQk9PU1RfVU5JVF9URVNUX0ZSQU1FV09SS19M SUJACisrQk9PU1RfVkVSU0lPTiA9IEBCT09TVF9WRVJTSU9OQAorK0JPT1NUX1dTRVJJQUxJWkFU SU9OX0xJQiA9IEBCT09TVF9XU0VSSUFMSVpBVElPTl9MSUJACisrQ0MgPSBAQ0NACisrQ0NERVBN T0RFID0gQENDREVQTU9ERUAKKytDRkxBR1MgPSBAQ0ZMQUdTQAorK0NQUCA9IEBDUFBACisrQ1BQ RkxBR1MgPSBAQ1BQRkxBR1NACisrQ1BQVU5JVF9DRkxBR1MgPSBAQ1BQVU5JVF9DRkxBR1NACisr Q1BQVU5JVF9DT05GSUcgPSBAQ1BQVU5JVF9DT05GSUdACisrQ1BQVU5JVF9MSUJTID0gQENQUFVO SVRfTElCU0AKKytDUFBVTklUX1ZFUlNJT04gPSBAQ1BQVU5JVF9WRVJTSU9OQAorK0NYWCA9IEBD WFhACisrQ1hYQ1BQID0gQENYWENQUEAKKytDWFhERVBNT0RFID0gQENYWERFUE1PREVACisrQ1hY RkxBR1MgPSBAQ1hYRkxBR1NACisrQ1lHUEFUSF9XID0gQENZR1BBVEhfV0AKKytERUZTID0gQERF RlNACisrREVQRElSID0gQERFUERJUkAKKytEU1lNVVRJTCA9IEBEU1lNVVRJTEAKKytEVU1QQklO ID0gQERVTVBCSU5ACisrRUNIT19DID0gQEVDSE9fQ0AKKytFQ0hPX04gPSBARUNIT19OQAorK0VD SE9fVCA9IEBFQ0hPX1RACisrRUdSRVAgPSBARUdSRVBACisrRVhFRVhUID0gQEVYRUVYVEAKKytG R1JFUCA9IEBGR1JFUEAKKytHRU5FUklDX0xJQlJBUllfVkVSU0lPTiA9IEBHRU5FUklDX0xJQlJB UllfVkVSU0lPTkAKKytHUkVQID0gQEdSRVBACisrSU5TVEFMTCA9IEBJTlNUQUxMQAorK0lOU1RB TExfREFUQSA9IEBJTlNUQUxMX0RBVEFACisrSU5TVEFMTF9QUk9HUkFNID0gQElOU1RBTExfUFJP R1JBTUAKKytJTlNUQUxMX1NDUklQVCA9IEBJTlNUQUxMX1NDUklQVEAKKytJTlNUQUxMX1NUUklQ X1BST0dSQU0gPSBASU5TVEFMTF9TVFJJUF9QUk9HUkFNQAorK0xEID0gQExEQAorK0xERkxBR1Mg PSBATERGTEFHU0AKKytMSUJPQkpTID0gQExJQk9CSlNACisrTElCUyA9IEBMSUJTQAorK0xJQlRP T0wgPSBATElCVE9PTEAKKytMSVBPID0gQExJUE9ACisrTE5fUyA9IEBMTl9TQAorK0xUTElCT0JK UyA9IEBMVExJQk9CSlNACisrTUFLRUlORk8gPSBATUFLRUlORk9ACisrTUtESVJfUCA9IEBNS0RJ Ul9QQAorK01ZU1FMX0NGTEFHUyA9IEBNWVNRTF9DRkxBR1NACisrTVlTUUxfQ19MSUIgPSBATVlT UUxfQ19MSUJACisrTVlTUUxfRElSUyA9IEBNWVNRTF9ESVJTQAorK01ZU1FMX0xJQlMgPSBATVlT UUxfTElCU0AKKytNWVNRTF9WRVJTSU9OID0gQE1ZU1FMX1ZFUlNJT05ACisrTk0gPSBATk1ACisr Tk1FRElUID0gQE5NRURJVEAKKytPQkpEVU1QID0gQE9CSkRVTVBACisrT0JKRVhUID0gQE9CSkVY VEAKKytPUkFDTEVfRElSUyA9IEBPUkFDTEVfRElSU0AKKytPUkFDTEVfT0NJX0NGTEFHUyA9IEBP UkFDTEVfT0NJX0NGTEFHU0AKKytPUkFDTEVfT0NJX0xERkxBR1MgPSBAT1JBQ0xFX09DSV9MREZM QUdTQAorK09SQUNMRV9PQ0lfVkVSU0lPTiA9IEBPUkFDTEVfT0NJX1ZFUlNJT05ACisrT1RPT0wg PSBAT1RPT0xACisrT1RPT0w2NCA9IEBPVE9PTDY0QAorK1BBQ0tBR0UgPSBAUEFDS0FHRUAKKytQ QUNLQUdFX0JVR1JFUE9SVCA9IEBQQUNLQUdFX0JVR1JFUE9SVEAKKytQQUNLQUdFX05BTUUgPSBA UEFDS0FHRV9OQU1FQAorK1BBQ0tBR0VfU1RSSU5HID0gQFBBQ0tBR0VfU1RSSU5HQAorK1BBQ0tB R0VfVEFSTkFNRSA9IEBQQUNLQUdFX1RBUk5BTUVACisrUEFDS0FHRV9WRVJTSU9OID0gQFBBQ0tB R0VfVkVSU0lPTkAKKytQQVRIX1NFUEFSQVRPUiA9IEBQQVRIX1NFUEFSQVRPUkAKKytQRVJMID0g QFBFUkxACisrUEdfQ09ORklHID0gQFBHX0NPTkZJR0AKKytQT1NUR1JFU1FMX0NGTEFHUyA9IEBQ T1NUR1JFU1FMX0NGTEFHU0AKKytQT1NUR1JFU1FMX0RJUlMgPSBAUE9TVEdSRVNRTF9ESVJTQAor K1BPU1RHUkVTUUxfTERGTEFHUyA9IEBQT1NUR1JFU1FMX0xERkxBR1NACisrUE9TVEdSRVNRTF9W RVJTSU9OID0gQFBPU1RHUkVTUUxfVkVSU0lPTkAKKytSQU5MSUIgPSBAUkFOTElCQAorK1JQTV9S RUxFQVNFID0gQFJQTV9SRUxFQVNFQAorK1NFRCA9IEBTRURACisrU0VUX01BS0UgPSBAU0VUX01B S0VACisrU0hFTEwgPSBAU0hFTExACisrU09DSV9IRUFERVJTX0JVUklFRCA9IEBTT0NJX0hFQURF UlNfQlVSSUVEQAorK1NPQ0lfTVlTUUxfSEVBREVSU19CVVJJRUQgPSBAU09DSV9NWVNRTF9IRUFE RVJTX0JVUklFREAKKytTT0NJX1BPU1RHUkVTUUxfSEVBREVSU19CVVJJRUQgPSBAU09DSV9QT1NU R1JFU1FMX0hFQURFUlNfQlVSSUVEQAorK1NUUklQID0gQFNUUklQQAorK1VQTE9BRF9DT01NQU5E ID0gQFVQTE9BRF9DT01NQU5EQAorK1ZFUlNJT04gPSBAVkVSU0lPTkAKKythYnNfYnVpbGRkaXIg PSBAYWJzX2J1aWxkZGlyQAorK2Fic19zcmNkaXIgPSBAYWJzX3NyY2RpckAKKythYnNfdG9wX2J1 aWxkZGlyID0gQGFic190b3BfYnVpbGRkaXJACisrYWJzX3RvcF9zcmNkaXIgPSBAYWJzX3RvcF9z cmNkaXJACisrYWNfY3RfQ0MgPSBAYWNfY3RfQ0NACisrYWNfY3RfQ1hYID0gQGFjX2N0X0NYWEAK KythY19jdF9EVU1QQklOID0gQGFjX2N0X0RVTVBCSU5ACisrYW1fX2luY2x1ZGUgPSBAYW1fX2lu Y2x1ZGVACisrYW1fX2xlYWRpbmdfZG90ID0gQGFtX19sZWFkaW5nX2RvdEAKKythbV9fcXVvdGUg PSBAYW1fX3F1b3RlQAorK2FtX190YXIgPSBAYW1fX3RhckAKKythbV9fdW50YXIgPSBAYW1fX3Vu dGFyQAorK2JpbmRpciA9IEBiaW5kaXJACisrYnVpbGQgPSBAYnVpbGRACisrYnVpbGRfYWxpYXMg PSBAYnVpbGRfYWxpYXNACisrYnVpbGRfY3B1ID0gQGJ1aWxkX2NwdUAKKytidWlsZF9vcyA9IEBi dWlsZF9vc0AKKytidWlsZF92ZW5kb3IgPSBAYnVpbGRfdmVuZG9yQAorK2J1aWxkZGlyID0gQGJ1 aWxkZGlyQAorK2RhdGFkaXIgPSBAZGF0YWRpckAKKytkYXRhcm9vdGRpciA9IEBkYXRhcm9vdGRp ckAKKytkaWZmX29rID0gQGRpZmZfb2tACisrZG9jZGlyID0gQGRvY2RpckAKKytkb3h5Z2VuX29r ID0gQGRveHlnZW5fb2tACisrZHZpZGlyID0gQGR2aWRpckAKKytkdmlwc19vayA9IEBkdmlwc19v a0AKKytleGVjX3ByZWZpeCA9IEBleGVjX3ByZWZpeEAKKytnc19vayA9IEBnc19va0AKKytob3N0 ID0gQGhvc3RACisraG9zdF9hbGlhcyA9IEBob3N0X2FsaWFzQAorK2hvc3RfY3B1ID0gQGhvc3Rf Y3B1QAorK2hvc3Rfb3MgPSBAaG9zdF9vc0AKKytob3N0X3ZlbmRvciA9IEBob3N0X3ZlbmRvckAK KytodG1sZGlyID0gQGh0bWxkaXJACisraW5jbHVkZWRpciA9IEBpbmNsdWRlZGlyQAorK2luZm9k aXIgPSBAaW5mb2RpckAKKytpbnN0YWxsX3NoID0gQGluc3RhbGxfc2hACisrbGF0ZXhfb2sgPSBA bGF0ZXhfb2tACisrbGliZGlyID0gQGxpYmRpckAKKytsaWJleGVjZGlyID0gQGxpYmV4ZWNkaXJA CisrbG9jYWxlZGlyID0gQGxvY2FsZWRpckAKKytsb2NhbHN0YXRlZGlyID0gQGxvY2Fsc3RhdGVk aXJACisrbHRfRUNITyA9IEBsdF9FQ0hPQAorK21hbmRpciA9IEBtYW5kaXJACisrbWtkaXJfcCA9 IEBta2Rpcl9wQAorK29sZGluY2x1ZGVkaXIgPSBAb2xkaW5jbHVkZWRpckAKKytwZGZkaXIgPSBA cGRmZGlyQAorK3ByZWZpeCA9IEBwcmVmaXhACisrcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZSA9IEBw cm9ncmFtX3RyYW5zZm9ybV9uYW1lQAorK3BzZGlyID0gQHBzZGlyQAorK3NiaW5kaXIgPSBAc2Jp bmRpckAKKytzZWRfb2sgPSBAc2VkX29rQAorK3NoYXJlZHN0YXRlZGlyID0gQHNoYXJlZHN0YXRl ZGlyQAorK3NyY2RpciA9IEBzcmNkaXJACisrc3lzY29uZmRpciA9IEBzeXNjb25mZGlyQAorK3Rh cmdldF9hbGlhcyA9IEB0YXJnZXRfYWxpYXNACisrdG9wX2J1aWxkX3ByZWZpeCA9IEB0b3BfYnVp bGRfcHJlZml4QAorK3RvcF9idWlsZGRpciA9IEB0b3BfYnVpbGRkaXJACisrdG9wX3NyY2RpciA9 IEB0b3Bfc3JjZGlyQAorKworKyMgTWFuIHBhZ2VzCisrbWFuX01BTlMgPSBzb2NpLWNvbmZpZy4x CisrRVhUUkFfRElTVCA9ICQobWFuX01BTlMpCisrYWxsOiBhbGwtYW0KKysKKysuU1VGRklYRVM6 CisrJChzcmNkaXIpL01ha2VmaWxlLmluOiAgJChzcmNkaXIpL01ha2VmaWxlLmFtICAkKGFtX19j b25maWd1cmVfZGVwcykKKysJQGZvciBkZXAgaW4gJD87IGRvIFwKKysJICBjYXNlICckKGFtX19j b25maWd1cmVfZGVwcyknIGluIFwKKysJICAgICokJGRlcCopIFwKKysJICAgICAgKCBjZCAkKHRv cF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2ggKSBcCisr CSAgICAgICAgJiYgeyBpZiB0ZXN0IC1mICRAOyB0aGVuIGV4aXQgMDsgZWxzZSBicmVhazsgZmk7 IH07IFwKKysJICAgICAgZXhpdCAxOzsgXAorKwkgIGVzYWM7IFwKKysJZG9uZTsgXAorKwllY2hv ICcgY2QgJCh0b3Bfc3JjZGlyKSAmJiAkKEFVVE9NQUtFKSAtLWdudSBtYW4vTWFrZWZpbGUnOyBc CisrCSQoYW1fX2NkKSAkKHRvcF9zcmNkaXIpICYmIFwKKysJICAkKEFVVE9NQUtFKSAtLWdudSBt YW4vTWFrZWZpbGUKKysuUFJFQ0lPVVM6IE1ha2VmaWxlCisrTWFrZWZpbGU6ICQoc3JjZGlyKS9N YWtlZmlsZS5pbiAkKHRvcF9idWlsZGRpcikvY29uZmlnLnN0YXR1cworKwlAY2FzZSAnJD8nIGlu IFwKKysJICAqY29uZmlnLnN0YXR1cyopIFwKKysJICAgIGNkICQodG9wX2J1aWxkZGlyKSAmJiAk KE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaDs7IFwKKysJICAqKSBcCisrCSAgICBl Y2hvICcgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoU0hFTEwpIC4vY29uZmlnLnN0YXR1cyAkKHN1 YmRpcikvJEAgJChhbV9fZGVwZmlsZXNfbWF5YmUpJzsgXAorKwkgICAgY2QgJCh0b3BfYnVpbGRk aXIpICYmICQoU0hFTEwpIC4vY29uZmlnLnN0YXR1cyAkKHN1YmRpcikvJEAgJChhbV9fZGVwZmls ZXNfbWF5YmUpOzsgXAorKwllc2FjOworKworKyQodG9wX2J1aWxkZGlyKS9jb25maWcuc3RhdHVz OiAkKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZSAkKENPTkZJR19TVEFUVVNfREVQRU5ERU5DSUVTKQor KwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJl c2gKKysKKyskKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZTogICQoYW1fX2NvbmZpZ3VyZV9kZXBzKQor KwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJl c2gKKyskKEFDTE9DQUxfTTQpOiAgJChhbV9fYWNsb2NhbF9tNF9kZXBzKQorKwljZCAkKHRvcF9i dWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gKKyskKGFtX19h Y2xvY2FsX200X2RlcHMpOgorKworK21vc3RseWNsZWFuLWxpYnRvb2w6CisrCS1ybSAtZiAqLmxv CisrCisrY2xlYW4tbGlidG9vbDoKKysJLXJtIC1yZiAubGlicyBfbGlicworK2luc3RhbGwtbWFu MTogJChtYW5fTUFOUykKKysJQCQoTk9STUFMX0lOU1RBTEwpCisrCXRlc3QgLXogIiQobWFuMWRp cikiIHx8ICQoTUtESVJfUCkgIiQoREVTVERJUikkKG1hbjFkaXIpIgorKwlAbGlzdD0nJzsgdGVz dCAtbiAiJChtYW4xZGlyKSIgfHwgZXhpdCAwOyBcCisrCXsgZm9yIGkgaW4gJCRsaXN0OyBkbyBl Y2hvICIkJGkiOyBkb25lOyBcCisrCWwyPSckKG1hbl9NQU5TKSc7IGZvciBpIGluICQkbDI7IGRv IGVjaG8gIiQkaSI7IGRvbmUgfCBcCisrCSAgc2VkIC1uICcvXC4xW2Etel0qJCQvcCc7IFwKKysJ fSB8IHdoaWxlIHJlYWQgcDsgZG8gXAorKwkgIGlmIHRlc3QgLWYgJCRwOyB0aGVuIGQ9OyBlbHNl IGQ9IiQoc3JjZGlyKS8iOyBmaTsgXAorKwkgIGVjaG8gIiQkZCQkcCI7IGVjaG8gIiQkcCI7IFwK KysJZG9uZSB8IFwKKysJc2VkIC1lICduO3MsLiovLCw7cDtoO3MsLipcLiwsO3MsXlteMV1bMC05 YS16XSokJCwxLDt4JyBcCisrCSAgICAgIC1lICdzLFwuWzAtOWEtel0qJCQsLDskKHRyYW5zZm9y bSk7RztzLFxuLC4sJyB8IFwKKysJc2VkICdOO047cyxcbiwgLGcnIHwgeyBcCisrCWxpc3Q9OyB3 aGlsZSByZWFkIGZpbGUgYmFzZSBpbnN0OyBkbyBcCisrCSAgaWYgdGVzdCAiJCRiYXNlIiA9ICIk JGluc3QiOyB0aGVuIGxpc3Q9IiQkbGlzdCAkJGZpbGUiOyBlbHNlIFwKKysJICAgIGVjaG8gIiAk KElOU1RBTExfREFUQSkgJyQkZmlsZScgJyQoREVTVERJUikkKG1hbjFkaXIpLyQkaW5zdCciOyBc CisrCSAgICAkKElOU1RBTExfREFUQSkgIiQkZmlsZSIgIiQoREVTVERJUikkKG1hbjFkaXIpLyQk aW5zdCIgfHwgZXhpdCAkJD87IFwKKysJICBmaTsgXAorKwlkb25lOyBcCisrCWZvciBpIGluICQk bGlzdDsgZG8gZWNobyAiJCRpIjsgZG9uZSB8ICQoYW1fX2Jhc2VfbGlzdCkgfCBcCisrCXdoaWxl IHJlYWQgZmlsZXM7IGRvIFwKKysJICB0ZXN0IC16ICIkJGZpbGVzIiB8fCB7IFwKKysJICAgIGVj aG8gIiAkKElOU1RBTExfREFUQSkgJCRmaWxlcyAnJChERVNURElSKSQobWFuMWRpciknIjsgXAor KwkgICAgJChJTlNUQUxMX0RBVEEpICQkZmlsZXMgIiQoREVTVERJUikkKG1hbjFkaXIpIiB8fCBl eGl0ICQkPzsgfTsgXAorKwlkb25lOyB9CisrCisrdW5pbnN0YWxsLW1hbjE6CisrCUAkKE5PUk1B TF9VTklOU1RBTEwpCisrCUBsaXN0PScnOyB0ZXN0IC1uICIkKG1hbjFkaXIpIiB8fCBleGl0IDA7 IFwKKysJZmlsZXM9YHsgZm9yIGkgaW4gJCRsaXN0OyBkbyBlY2hvICIkJGkiOyBkb25lOyBcCisr CWwyPSckKG1hbl9NQU5TKSc7IGZvciBpIGluICQkbDI7IGRvIGVjaG8gIiQkaSI7IGRvbmUgfCBc CisrCSAgc2VkIC1uICcvXC4xW2Etel0qJCQvcCc7IFwKKysJfSB8IHNlZCAtZSAncywuKi8sLDto O3MsLipcLiwsO3MsXlteMV1bMC05YS16XSokJCwxLDt4JyBcCisrCSAgICAgIC1lICdzLFwuWzAt OWEtel0qJCQsLDskKHRyYW5zZm9ybSk7RztzLFxuLC4sJ2A7IFwKKysJdGVzdCAteiAiJCRmaWxl cyIgfHwgeyBcCisrCSAgZWNobyAiICggY2QgJyQoREVTVERJUikkKG1hbjFkaXIpJyAmJiBybSAt ZiIgJCRmaWxlcyAiKSI7IFwKKysJICBjZCAiJChERVNURElSKSQobWFuMWRpcikiICYmIHJtIC1m ICQkZmlsZXM7IH0KKyt0YWdzOiBUQUdTCisrVEFHUzoKKysKKytjdGFnczogQ1RBR1MKKytDVEFH UzoKKysKKysKKytkaXN0ZGlyOiAkKERJU1RGSUxFUykKKysJQGxpc3Q9JyQoTUFOUyknOyBpZiB0 ZXN0IC1uICIkJGxpc3QiOyB0aGVuIFwKKysJICBsaXN0PWBmb3IgcCBpbiAkJGxpc3Q7IGRvIFwK KysJICAgIGlmIHRlc3QgLWYgJCRwOyB0aGVuIGQ9OyBlbHNlIGQ9IiQoc3JjZGlyKS8iOyBmaTsg XAorKwkgICAgaWYgdGVzdCAtZiAiJCRkJCRwIjsgdGhlbiBlY2hvICIkJGQkJHAiOyBlbHNlIDo7 IGZpOyBkb25lYDsgXAorKwkgIGlmIHRlc3QgLW4gIiQkbGlzdCIgJiYgXAorKwkgICAgZ3JlcCAn YWIgaGVscDJtYW4gaXMgcmVxdWlyZWQgdG8gZ2VuZXJhdGUgdGhpcyBwYWdlJyAkJGxpc3QgPi9k ZXYvbnVsbDsgdGhlbiBcCisrCSAgICBlY2hvICJlcnJvcjogZm91bmQgbWFuIHBhZ2VzIGNvbnRh aW5pbmcgdGhlIFxgbWlzc2luZyBoZWxwMm1hbicgcmVwbGFjZW1lbnQgdGV4dDoiID4mMjsgXAor KwkgICAgZ3JlcCAtbCAnYWIgaGVscDJtYW4gaXMgcmVxdWlyZWQgdG8gZ2VuZXJhdGUgdGhpcyBw YWdlJyAkJGxpc3QgfCBzZWQgJ3MvXi8gICAgICAgICAvJyA+JjI7IFwKKysJICAgIGVjaG8gIiAg ICAgICB0byBmaXggdGhlbSwgaW5zdGFsbCBoZWxwMm1hbiwgcmVtb3ZlIGFuZCByZWdlbmVyYXRl IHRoZSBtYW4gcGFnZXM7IiA+JjI7IFwKKysJICAgIGVjaG8gIiAgICAgICB0eXBpY2FsbHkgXGBt YWtlIG1haW50YWluZXItY2xlYW4nIHdpbGwgcmVtb3ZlIHRoZW0iID4mMjsgXAorKwkgICAgZXhp dCAxOyBcCisrCSAgZWxzZSA6OyBmaTsgXAorKwllbHNlIDo7IGZpCisrCUBzcmNkaXJzdHJpcD1g ZWNobyAiJChzcmNkaXIpIiB8IHNlZCAncy9bXS5bXiQkXFwqXS9cXFxcJi9nJ2A7IFwKKysJdG9w c3JjZGlyc3RyaXA9YGVjaG8gIiQodG9wX3NyY2RpcikiIHwgc2VkICdzL1tdLlteJCRcXCpdL1xc XFwmL2cnYDsgXAorKwlsaXN0PSckKERJU1RGSUxFUyknOyBcCisrCSAgZGlzdF9maWxlcz1gZm9y IGZpbGUgaW4gJCRsaXN0OyBkbyBlY2hvICQkZmlsZTsgZG9uZSB8IFwKKysJICBzZWQgLWUgInN8 XiQkc3JjZGlyc3RyaXAvfHw7dCIgXAorKwkgICAgICAtZSAic3xeJCR0b3BzcmNkaXJzdHJpcC98 JCh0b3BfYnVpbGRkaXIpL3w7dCJgOyBcCisrCWNhc2UgJCRkaXN0X2ZpbGVzIGluIFwKKysJICAq LyopICQoTUtESVJfUCkgYGVjaG8gIiQkZGlzdF9maWxlcyIgfCBcCisrCQkJICAgc2VkICcvXC8v IWQ7c3xefCQoZGlzdGRpcikvfDtzLC9bXi9dKiQkLCwnIHwgXAorKwkJCSAgIHNvcnQgLXVgIDs7 IFwKKysJZXNhYzsgXAorKwlmb3IgZmlsZSBpbiAkJGRpc3RfZmlsZXM7IGRvIFwKKysJICBpZiB0 ZXN0IC1mICQkZmlsZSB8fCB0ZXN0IC1kICQkZmlsZTsgdGhlbiBkPS47IGVsc2UgZD0kKHNyY2Rp cik7IGZpOyBcCisrCSAgaWYgdGVzdCAtZCAkJGQvJCRmaWxlOyB0aGVuIFwKKysJICAgIGRpcj1g ZWNobyAiLyQkZmlsZSIgfCBzZWQgLWUgJ3MsL1teL10qJCQsLCdgOyBcCisrCSAgICBpZiB0ZXN0 IC1kICIkKGRpc3RkaXIpLyQkZmlsZSI7IHRoZW4gXAorKwkgICAgICBmaW5kICIkKGRpc3RkaXIp LyQkZmlsZSIgLXR5cGUgZCAhIC1wZXJtIC03MDAgLWV4ZWMgY2htb2QgdStyd3gge30gXDs7IFwK KysJICAgIGZpOyBcCisrCSAgICBpZiB0ZXN0IC1kICQoc3JjZGlyKS8kJGZpbGUgJiYgdGVzdCAk JGQgIT0gJChzcmNkaXIpOyB0aGVuIFwKKysJICAgICAgY3AgLWZwUiAkKHNyY2RpcikvJCRmaWxl ICIkKGRpc3RkaXIpJCRkaXIiIHx8IGV4aXQgMTsgXAorKwkgICAgICBmaW5kICIkKGRpc3RkaXIp LyQkZmlsZSIgLXR5cGUgZCAhIC1wZXJtIC03MDAgLWV4ZWMgY2htb2QgdStyd3gge30gXDs7IFwK KysJICAgIGZpOyBcCisrCSAgICBjcCAtZnBSICQkZC8kJGZpbGUgIiQoZGlzdGRpcikkJGRpciIg fHwgZXhpdCAxOyBcCisrCSAgZWxzZSBcCisrCSAgICB0ZXN0IC1mICIkKGRpc3RkaXIpLyQkZmls ZSIgXAorKwkgICAgfHwgY3AgLXAgJCRkLyQkZmlsZSAiJChkaXN0ZGlyKS8kJGZpbGUiIFwKKysJ ICAgIHx8IGV4aXQgMTsgXAorKwkgIGZpOyBcCisrCWRvbmUKKytjaGVjay1hbTogYWxsLWFtCisr Y2hlY2s6IGNoZWNrLWFtCisrYWxsLWFtOiBNYWtlZmlsZSAkKE1BTlMpCisraW5zdGFsbGRpcnM6 CisrCWZvciBkaXIgaW4gIiQoREVTVERJUikkKG1hbjFkaXIpIjsgZG8gXAorKwkgIHRlc3QgLXog IiQkZGlyIiB8fCAkKE1LRElSX1ApICIkJGRpciI7IFwKKysJZG9uZQorK2luc3RhbGw6IGluc3Rh bGwtYW0KKytpbnN0YWxsLWV4ZWM6IGluc3RhbGwtZXhlYy1hbQorK2luc3RhbGwtZGF0YTogaW5z dGFsbC1kYXRhLWFtCisrdW5pbnN0YWxsOiB1bmluc3RhbGwtYW0KKysKKytpbnN0YWxsLWFtOiBh bGwtYW0KKysJQCQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGluc3RhbGwtZXhlYy1hbSBpbnN0YWxs LWRhdGEtYW0KKysKKytpbnN0YWxsY2hlY2s6IGluc3RhbGxjaGVjay1hbQorK2luc3RhbGwtc3Ry aXA6CisrCSQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIElOU1RBTExfUFJPR1JBTT0iJChJTlNUQUxM X1NUUklQX1BST0dSQU0pIiBcCisrCSAgaW5zdGFsbF9zaF9QUk9HUkFNPSIkKElOU1RBTExfU1RS SVBfUFJPR1JBTSkiIElOU1RBTExfU1RSSVBfRkxBRz0tcyBcCisrCSAgYHRlc3QgLXogJyQoU1RS SVApJyB8fCBcCisrCSAgICBlY2hvICJJTlNUQUxMX1BST0dSQU1fRU5WPVNUUklQUFJPRz0nJChT VFJJUCknImAgaW5zdGFsbAorK21vc3RseWNsZWFuLWdlbmVyaWM6CisrCisrY2xlYW4tZ2VuZXJp YzoKKysKKytkaXN0Y2xlYW4tZ2VuZXJpYzoKKysJLXRlc3QgLXogIiQoQ09ORklHX0NMRUFOX0ZJ TEVTKSIgfHwgcm0gLWYgJChDT05GSUdfQ0xFQU5fRklMRVMpCisrCS10ZXN0IC4gPSAiJChzcmNk aXIpIiB8fCB0ZXN0IC16ICIkKENPTkZJR19DTEVBTl9WUEFUSF9GSUxFUykiIHx8IHJtIC1mICQo Q09ORklHX0NMRUFOX1ZQQVRIX0ZJTEVTKQorKworK21haW50YWluZXItY2xlYW4tZ2VuZXJpYzoK KysJQGVjaG8gIlRoaXMgY29tbWFuZCBpcyBpbnRlbmRlZCBmb3IgbWFpbnRhaW5lcnMgdG8gdXNl IgorKwlAZWNobyAiaXQgZGVsZXRlcyBmaWxlcyB0aGF0IG1heSByZXF1aXJlIHNwZWNpYWwgdG9v bHMgdG8gcmVidWlsZC4iCisrY2xlYW46IGNsZWFuLWFtCisrCisrY2xlYW4tYW06IGNsZWFuLWdl bmVyaWMgY2xlYW4tbGlidG9vbCBtb3N0bHljbGVhbi1hbQorKworK2Rpc3RjbGVhbjogZGlzdGNs ZWFuLWFtCisrCS1ybSAtZiBNYWtlZmlsZQorK2Rpc3RjbGVhbi1hbTogY2xlYW4tYW0gZGlzdGNs ZWFuLWdlbmVyaWMKKysKKytkdmk6IGR2aS1hbQorKworK2R2aS1hbToKKysKKytodG1sOiBodG1s LWFtCisrCisraHRtbC1hbToKKysKKytpbmZvOiBpbmZvLWFtCisrCisraW5mby1hbToKKysKKytp bnN0YWxsLWRhdGEtYW06IGluc3RhbGwtbWFuCisrCisraW5zdGFsbC1kdmk6IGluc3RhbGwtZHZp LWFtCisrCisraW5zdGFsbC1kdmktYW06CisrCisraW5zdGFsbC1leGVjLWFtOgorKworK2luc3Rh bGwtaHRtbDogaW5zdGFsbC1odG1sLWFtCisrCisraW5zdGFsbC1odG1sLWFtOgorKworK2luc3Rh bGwtaW5mbzogaW5zdGFsbC1pbmZvLWFtCisrCisraW5zdGFsbC1pbmZvLWFtOgorKworK2luc3Rh bGwtbWFuOiBpbnN0YWxsLW1hbjEKKysKKytpbnN0YWxsLXBkZjogaW5zdGFsbC1wZGYtYW0KKysK KytpbnN0YWxsLXBkZi1hbToKKysKKytpbnN0YWxsLXBzOiBpbnN0YWxsLXBzLWFtCisrCisraW5z dGFsbC1wcy1hbToKKysKKytpbnN0YWxsY2hlY2stYW06CisrCisrbWFpbnRhaW5lci1jbGVhbjog bWFpbnRhaW5lci1jbGVhbi1hbQorKwktcm0gLWYgTWFrZWZpbGUKKyttYWludGFpbmVyLWNsZWFu LWFtOiBkaXN0Y2xlYW4tYW0gbWFpbnRhaW5lci1jbGVhbi1nZW5lcmljCisrCisrbW9zdGx5Y2xl YW46IG1vc3RseWNsZWFuLWFtCisrCisrbW9zdGx5Y2xlYW4tYW06IG1vc3RseWNsZWFuLWdlbmVy aWMgbW9zdGx5Y2xlYW4tbGlidG9vbAorKworK3BkZjogcGRmLWFtCisrCisrcGRmLWFtOgorKwor K3BzOiBwcy1hbQorKworK3BzLWFtOgorKworK3VuaW5zdGFsbC1hbTogdW5pbnN0YWxsLW1hbgor KworK3VuaW5zdGFsbC1tYW46IHVuaW5zdGFsbC1tYW4xCisrCisrLk1BS0U6IGluc3RhbGwtYW0g aW5zdGFsbC1zdHJpcAorKworKy5QSE9OWTogYWxsIGFsbC1hbSBjaGVjayBjaGVjay1hbSBjbGVh biBjbGVhbi1nZW5lcmljIGNsZWFuLWxpYnRvb2wgXAorKwlkaXN0Y2xlYW4gZGlzdGNsZWFuLWdl bmVyaWMgZGlzdGNsZWFuLWxpYnRvb2wgZGlzdGRpciBkdmkgXAorKwlkdmktYW0gaHRtbCBodG1s LWFtIGluZm8gaW5mby1hbSBpbnN0YWxsIGluc3RhbGwtYW0gXAorKwlpbnN0YWxsLWRhdGEgaW5z dGFsbC1kYXRhLWFtIGluc3RhbGwtZHZpIGluc3RhbGwtZHZpLWFtIFwKKysJaW5zdGFsbC1leGVj IGluc3RhbGwtZXhlYy1hbSBpbnN0YWxsLWh0bWwgaW5zdGFsbC1odG1sLWFtIFwKKysJaW5zdGFs bC1pbmZvIGluc3RhbGwtaW5mby1hbSBpbnN0YWxsLW1hbiBpbnN0YWxsLW1hbjEgXAorKwlpbnN0 YWxsLXBkZiBpbnN0YWxsLXBkZi1hbSBpbnN0YWxsLXBzIGluc3RhbGwtcHMtYW0gXAorKwlpbnN0 YWxsLXN0cmlwIGluc3RhbGxjaGVjayBpbnN0YWxsY2hlY2stYW0gaW5zdGFsbGRpcnMgXAorKwlt YWludGFpbmVyLWNsZWFuIG1haW50YWluZXItY2xlYW4tZ2VuZXJpYyBtb3N0bHljbGVhbiBcCisr CW1vc3RseWNsZWFuLWdlbmVyaWMgbW9zdGx5Y2xlYW4tbGlidG9vbCBwZGYgcGRmLWFtIHBzIHBz LWFtIFwKKysJdW5pbnN0YWxsIHVuaW5zdGFsbC1hbSB1bmluc3RhbGwtbWFuIHVuaW5zdGFsbC1t YW4xCisrCisrCisrIyBUZWxsIHZlcnNpb25zIFszLjU5LDMuNjMpIG9mIEdOVSBtYWtlIHRvIG5v dCBleHBvcnQgYWxsIHZhcmlhYmxlcy4KKysjIE90aGVyd2lzZSBhIHN5c3RlbSBsaW1pdCAoZm9y IFN5c1YgYXQgbGVhc3QpIG1heSBiZSBleGNlZWRlZC4KKysuTk9FWFBPUlQ6CitkaWZmIC1OdXIg c29jaS0zLjAuMF80LXBhY2svbWFuL3NvY2ktY29uZmlnLjEgc29jaS0zLjAuMF90cmVwMzAwL21h bi9zb2NpLWNvbmZpZy4xCistLS0gc29jaS0zLjAuMF80LXBhY2svbWFuL3NvY2ktY29uZmlnLjEJ MTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKKysrKyBzb2NpLTMuMC4wX3RyZXAz MDAvbWFuL3NvY2ktY29uZmlnLjEJMjAwOS0wNC0xNiAxOTozNzowOS4wMDAwMDAwMDAgKzAyMDAK K0BAIC0wLDAgKzEsMzkgQEAKKysuVEggU09DSSAxICIyOCBNYXJjaCAyMDA5IgorKy5TSCBOQU1F Cisrc29jaS1jb25maWcgLSBzY3JpcHQgdG8gZ2V0IHZlcnNpb24gbnVtYmVyIGFuZCBjb21waWxl ciBmbGFncyBvZiB0aGUgaW5zdGFsbGVkIFNPQ0kgbGlicmFyeQorKy5TSCBTWU5PUFNJUworKy5C IHNvY2ktY29uZmlnCisrW1wtXC1wcmVmaXhdICBbXC1cLXZlcnNpb25dIFtcLVwtbGlic10gW1wt XC1jZmxhZ3NdCisrLlNIIERFU0NSSVBUSU9OCisrLlBQCisrXGZJc29jaS1jb25maWdcZlAgaXMg YSB0b29sIHRoYXQgaXMgdXNlZCB0byBjb25maWd1cmUgdG8gZGV0ZXJtaW5lCisrdGhlIGNvbXBp bGVyIGFuZCBsaW5rZXIgZmxhZ3MgdGhhdCBzaG91bGQgYmUgdXNlZCB0byBjb21waWxlCisrYW5k IGxpbmsgcHJvZ3JhbXMgdGhhdCB1c2UgXGZJU09DSVxmUC4gSXQgaXMgYWxzbyB1c2VkIGludGVy bmFsbHkKKyt0byB0aGUgLm00IG1hY3JvcyBmb3IgR05VIGF1dG9jb25mIHRoYXQgYXJlIGluY2x1 ZGVkIHdpdGggXGZJU09DSVxmUC4KKysuCisrLlNIIE9QVElPTlMKKysubAorK1xmSXNvY2ktY29u ZmlnXGZQIGFjY2VwdHMgdGhlIGZvbGxvd2luZyBvcHRpb25zOgorKy5UUCA4CisrLkIgIFwtXC12 ZXJzaW9uCisrUHJpbnQgdGhlIGN1cnJlbnRseSBpbnN0YWxsZWQgdmVyc2lvbiBvZiBcZklTT0NJ XGZQIG9uIHRoZSBzdGFuZGFyZCBvdXRwdXQuCisrLlRQIDgKKysuQiAgXC1cLWxpYnMKKytQcmlu dCB0aGUgbGlua2VyIGZsYWdzIHRoYXQgYXJlIG5lY2Vzc2FyeSB0byBsaW5rIGEgXGZJU09DSVxm UCBwcm9ncmFtLCB3aXRoIGNibGFzCisrLlRQIDgKKysuQiAgXC1cLWNmbGFncworK1ByaW50IHRo ZSBjb21waWxlciBmbGFncyB0aGF0IGFyZSBuZWNlc3NhcnkgdG8gY29tcGlsZSBhIFxmSVNPQ0lc ZlAgcHJvZ3JhbS4KKysuVFAgOAorKy5CICBcLVwtcHJlZml4CisrU2hvdyB0aGUgU09DSSBpbnN0 YWxsYXRpb24gcHJlZml4LgorKy5TSCBTRUUgQUxTTworKy5CUiBndGstY29uZmlnICgxKSwKKysu QlIgZ25vbWUtY29uZmlnICgxKQorKy5TSCBDT1BZUklHSFQKKytDb3B5cmlnaHQgXChjbyAgMjAw OSBEZW5pcyBBcm5hdWQKKysKKytQZXJtaXNzaW9uIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBhbmQg ZGlzdHJpYnV0ZSB0aGlzIHNvZnR3YXJlIGFuZCBpdHMKKytkb2N1bWVudGF0aW9uIGZvciBhbnkg cHVycG9zZSBhbmQgd2l0aG91dCBmZWUgaXMgaGVyZWJ5IGdyYW50ZWQsCisrcHJvdmlkZWQgdGhh dCB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhcHBlYXIgaW4gYWxsIGNvcGllcyBhbmQgdGhh dAorK2JvdGggdGhhdCBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNl IGFwcGVhciBpbgorK3N1cHBvcnRpbmcgZG9jdW1lbnRhdGlvbi4KK2RpZmYgLU51ciBzb2NpLTMu MC4wXzQtcGFjay9ORVdTIHNvY2ktMy4wLjBfdHJlcDMwMC9ORVdTCistLS0gc29jaS0zLjAuMF80 LXBhY2svTkVXUwkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAorKysrIHNvY2kt My4wLjBfdHJlcDMwMC9ORVdTCTIwMDktMDQtMTYgMTk6Mzc6MTAuMDAwMDAwMDAwICswMjAwCitA QCAtMCwwICsxLDMgQEAKKysKKysqIFdlZCBNYXIgMjYgMjAwOSBSUE0gcmVsZWFzZSBmb3IgdmVy c2lvbiAzLjAuMAorKworZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMv TWFrZWZpbGUuYW0gc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvTWFrZWZpbGUuYW0K Ky0tLSBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL01ha2VmaWxlLmFtCTE5NzAtMDEt MDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCisrKysgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kv YmFja2VuZHMvTWFrZWZpbGUuYW0JMjAwOS0wNC0yOCAyMzoxNToxNC4wMDAwMDAwMDAgKzAyMDAK K0BAIC0wLDAgKzEsOSBAQAorK2luY2x1ZGUgJCh0b3Bfc3JjZGlyKS9NYWtlZmlsZS5jb21tb24K KysKKysjIyBTb3VyY2UgZGlyZWN0b3J5CisrCisrTUFJTlRBSU5FUkNMRUFORklMRVMgPSBNYWtl ZmlsZS5pbgorKworK1NVQkRJUlMgPSBATVlTUUxfRElSU0AgQFBPU1RHUkVTUUxfRElSU0AgQE9S QUNMRV9ESVJTQAorKworK0VYVFJBX0RJU1QgPQorZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNr L3NvY2kvYmFja2VuZHMvTWFrZWZpbGUuaW4gc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2Vu ZHMvTWFrZWZpbGUuaW4KKy0tLSBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL01ha2Vm aWxlLmluCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCisrKysgc29jaS0zLjAu MF90cmVwMzAwL3NvY2kvYmFja2VuZHMvTWFrZWZpbGUuaW4JMjAxMC0wMS0yMyAxNDo0NDo1MS4w MDAwMDAwMDAgKzAxMDAKK0BAIC0wLDAgKzEsNjE3IEBACisrIyBNYWtlZmlsZS5pbiBnZW5lcmF0 ZWQgYnkgYXV0b21ha2UgMS4xMS4xIGZyb20gTWFrZWZpbGUuYW0uCisrIyBAY29uZmlndXJlX2lu cHV0QAorKworKyMgQ29weXJpZ2h0IChDKSAxOTk0LCAxOTk1LCAxOTk2LCAxOTk3LCAxOTk4LCAx OTk5LCAyMDAwLCAyMDAxLCAyMDAyLAorKyMgMjAwMywgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNywg MjAwOCwgMjAwOSAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLAorKyMgSW5jLgorKyMgVGhpcyBN YWtlZmlsZS5pbiBpcyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u CisrIyBnaXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5IGFuZC9vciBkaXN0cmlidXRl IGl0LAorKyMgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbnMsIGFzIGxvbmcgYXMgdGhpcyBu b3RpY2UgaXMgcHJlc2VydmVkLgorKworKyMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGlu IHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisrIyBidXQgV0lUSE9VVCBBTlkgV0FS UkFOVFksIHRvIHRoZSBleHRlbnQgcGVybWl0dGVkIGJ5IGxhdzsgd2l0aG91dAorKyMgZXZlbiB0 aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQQor KyMgUEFSVElDVUxBUiBQVVJQT1NFLgorKworK0BTRVRfTUFLRUAKKytWUEFUSCA9IEBzcmNkaXJA CisrcGtnZGF0YWRpciA9ICQoZGF0YWRpcikvQFBBQ0tBR0VACisrcGtnaW5jbHVkZWRpciA9ICQo aW5jbHVkZWRpcikvQFBBQ0tBR0VACisrcGtnbGliZGlyID0gJChsaWJkaXIpL0BQQUNLQUdFQAor K3BrZ2xpYmV4ZWNkaXIgPSAkKGxpYmV4ZWNkaXIpL0BQQUNLQUdFQAorK2FtX19jZCA9IENEUEFU SD0iJCR7WlNIX1ZFUlNJT04rLn0kKFBBVEhfU0VQQVJBVE9SKSIgJiYgY2QKKytpbnN0YWxsX3No X0RBVEEgPSAkKGluc3RhbGxfc2gpIC1jIC1tIDY0NAorK2luc3RhbGxfc2hfUFJPR1JBTSA9ICQo aW5zdGFsbF9zaCkgLWMKKytpbnN0YWxsX3NoX1NDUklQVCA9ICQoaW5zdGFsbF9zaCkgLWMKKytJ TlNUQUxMX0hFQURFUiA9ICQoSU5TVEFMTF9EQVRBKQorK3RyYW5zZm9ybSA9ICQocHJvZ3JhbV90 cmFuc2Zvcm1fbmFtZSkKKytOT1JNQUxfSU5TVEFMTCA9IDoKKytQUkVfSU5TVEFMTCA9IDoKKytQ T1NUX0lOU1RBTEwgPSA6CisrTk9STUFMX1VOSU5TVEFMTCA9IDoKKytQUkVfVU5JTlNUQUxMID0g OgorK1BPU1RfVU5JTlNUQUxMID0gOgorK2J1aWxkX3RyaXBsZXQgPSBAYnVpbGRACisraG9zdF90 cmlwbGV0ID0gQGhvc3RACisrRElTVF9DT01NT04gPSAkKHNyY2RpcikvTWFrZWZpbGUuYW0gJChz cmNkaXIpL01ha2VmaWxlLmluIFwKKysJJCh0b3Bfc3JjZGlyKS9NYWtlZmlsZS5jb21tb24KKytz dWJkaXIgPSBzb2NpL2JhY2tlbmRzCisrQUNMT0NBTF9NNCA9ICQodG9wX3NyY2RpcikvYWNsb2Nh bC5tNAorK2FtX19hY2xvY2FsX200X2RlcHMgPSAkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9ib29z dC5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2F4X215c3FsLm00IFwKKysJJCh0b3Bfc3Jj ZGlyKS9jb25maWcvYXhfb3JhY2xlX29jaS5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2F4 X3Bvc3RncmVzcWwubTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9jcHB1bml0Lm00IFwKKysJ JCh0b3Bfc3JjZGlyKS9jb25maWcvbGlidG9vbC5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmln L2x0b3B0aW9ucy5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2x0c3VnYXIubTQgXAorKwkk KHRvcF9zcmNkaXIpL2NvbmZpZy9sdHZlcnNpb24ubTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZp Zy9sdH5vYnNvbGV0ZS5tNCAkKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZS5hYworK2FtX19jb25maWd1 cmVfZGVwcyA9ICQoYW1fX2FjbG9jYWxfbTRfZGVwcykgJChDT05GSUdVUkVfREVQRU5ERU5DSUVT KSBcCisrCSQoQUNMT0NBTF9NNCkKKytta2luc3RhbGxkaXJzID0gJChpbnN0YWxsX3NoKSAtZAor K0NPTkZJR19IRUFERVIgPSAkKHRvcF9idWlsZGRpcikvc29jaS9jb25maWcuaAorK0NPTkZJR19D TEVBTl9GSUxFUyA9CisrQ09ORklHX0NMRUFOX1ZQQVRIX0ZJTEVTID0KKytTT1VSQ0VTID0KKytE SVNUX1NPVVJDRVMgPQorK1JFQ1VSU0lWRV9UQVJHRVRTID0gYWxsLXJlY3Vyc2l2ZSBjaGVjay1y ZWN1cnNpdmUgZHZpLXJlY3Vyc2l2ZSBcCisrCWh0bWwtcmVjdXJzaXZlIGluZm8tcmVjdXJzaXZl IGluc3RhbGwtZGF0YS1yZWN1cnNpdmUgXAorKwlpbnN0YWxsLWR2aS1yZWN1cnNpdmUgaW5zdGFs bC1leGVjLXJlY3Vyc2l2ZSBcCisrCWluc3RhbGwtaHRtbC1yZWN1cnNpdmUgaW5zdGFsbC1pbmZv LXJlY3Vyc2l2ZSBcCisrCWluc3RhbGwtcGRmLXJlY3Vyc2l2ZSBpbnN0YWxsLXBzLXJlY3Vyc2l2 ZSBpbnN0YWxsLXJlY3Vyc2l2ZSBcCisrCWluc3RhbGxjaGVjay1yZWN1cnNpdmUgaW5zdGFsbGRp cnMtcmVjdXJzaXZlIHBkZi1yZWN1cnNpdmUgXAorKwlwcy1yZWN1cnNpdmUgdW5pbnN0YWxsLXJl Y3Vyc2l2ZQorK1JFQ1VSU0lWRV9DTEVBTl9UQVJHRVRTID0gbW9zdGx5Y2xlYW4tcmVjdXJzaXZl IGNsZWFuLXJlY3Vyc2l2ZQlcCisrICBkaXN0Y2xlYW4tcmVjdXJzaXZlIG1haW50YWluZXItY2xl YW4tcmVjdXJzaXZlCisrQU1fUkVDVVJTSVZFX1RBUkdFVFMgPSAkKFJFQ1VSU0lWRV9UQVJHRVRT Oi1yZWN1cnNpdmU9KSBcCisrCSQoUkVDVVJTSVZFX0NMRUFOX1RBUkdFVFM6LXJlY3Vyc2l2ZT0p IHRhZ3MgVEFHUyBjdGFncyBDVEFHUyBcCisrCWRpc3RkaXIKKytFVEFHUyA9IGV0YWdzCisrQ1RB R1MgPSBjdGFncworK0RJU1RfU1VCRElSUyA9ICQoU1VCRElSUykKKytESVNURklMRVMgPSAkKERJ U1RfQ09NTU9OKSAkKERJU1RfU09VUkNFUykgJChURVhJTkZPUykgJChFWFRSQV9ESVNUKQorK2Ft X19yZWxhdGl2aXplID0gXAorKyAgZGlyMD1gcHdkYDsgXAorKyAgc2VkX2ZpcnN0PSdzLF5cKFte L10qXCkvLiokJCxcMSwnOyBcCisrICBzZWRfcmVzdD0ncyxeW14vXSovKiwsJzsgXAorKyAgc2Vk X2xhc3Q9J3MsXi4qL1woW14vXSpcKSQkLFwxLCc7IFwKKysgIHNlZF9idXRsYXN0PSdzLC8qW14v XSokJCwsJzsgXAorKyAgd2hpbGUgdGVzdCAtbiAiJCRkaXIxIjsgZG8gXAorKyAgICBmaXJzdD1g ZWNobyAiJCRkaXIxIiB8IHNlZCAtZSAiJCRzZWRfZmlyc3QiYDsgXAorKyAgICBpZiB0ZXN0ICIk JGZpcnN0IiAhPSAiLiI7IHRoZW4gXAorKyAgICAgIGlmIHRlc3QgIiQkZmlyc3QiID0gIi4uIjsg dGhlbiBcCisrICAgICAgICBkaXIyPWBlY2hvICIkJGRpcjAiIHwgc2VkIC1lICIkJHNlZF9sYXN0 ImAvIiQkZGlyMiI7IFwKKysgICAgICAgIGRpcjA9YGVjaG8gIiQkZGlyMCIgfCBzZWQgLWUgIiQk c2VkX2J1dGxhc3QiYDsgXAorKyAgICAgIGVsc2UgXAorKyAgICAgICAgZmlyc3QyPWBlY2hvICIk JGRpcjIiIHwgc2VkIC1lICIkJHNlZF9maXJzdCJgOyBcCisrICAgICAgICBpZiB0ZXN0ICIkJGZp cnN0MiIgPSAiJCRmaXJzdCI7IHRoZW4gXAorKyAgICAgICAgICBkaXIyPWBlY2hvICIkJGRpcjIi IHwgc2VkIC1lICIkJHNlZF9yZXN0ImA7IFwKKysgICAgICAgIGVsc2UgXAorKyAgICAgICAgICBk aXIyPSIuLi8kJGRpcjIiOyBcCisrICAgICAgICBmaTsgXAorKyAgICAgICAgZGlyMD0iJCRkaXIw Ii8iJCRmaXJzdCI7IFwKKysgICAgICBmaTsgXAorKyAgICBmaTsgXAorKyAgICBkaXIxPWBlY2hv ICIkJGRpcjEiIHwgc2VkIC1lICIkJHNlZF9yZXN0ImA7IFwKKysgIGRvbmU7IFwKKysgIHJlbGRp cj0iJCRkaXIyIgorK0FDTE9DQUwgPSBAQUNMT0NBTEAKKytBTVRBUiA9IEBBTVRBUkAKKytBUiA9 IEBBUkAKKytBVVRPQ09ORiA9IEBBVVRPQ09ORkAKKytBVVRPSEVBREVSID0gQEFVVE9IRUFERVJA CisrQVVUT01BS0UgPSBAQVVUT01BS0VACisrQVdLID0gQEFXS0AKKytCT09TVF9DRkxBR1MgPSBA Qk9PU1RfQ0ZMQUdTQAorK0JPT1NUX0RBVEVfVElNRV9MSUIgPSBAQk9PU1RfREFURV9USU1FX0xJ QkAKKytCT09TVF9GSUxFU1lTVEVNX0xJQiA9IEBCT09TVF9GSUxFU1lTVEVNX0xJQkAKKytCT09T VF9JT1NUUkVBTVNfTElCID0gQEJPT1NUX0lPU1RSRUFNU19MSUJACisrQk9PU1RfTElCUyA9IEBC T09TVF9MSUJTQAorK0JPT1NUX01QSV9MSUIgPSBAQk9PU1RfTVBJX0xJQkAKKytCT09TVF9NUElf UFlUSE9OX0xJQiA9IEBCT09TVF9NUElfUFlUSE9OX0xJQkAKKytCT09TVF9QUk9HUkFNX09QVElP TlNfTElCID0gQEJPT1NUX1BST0dSQU1fT1BUSU9OU19MSUJACisrQk9PU1RfUFlUSE9OX0xJQiA9 IEBCT09TVF9QWVRIT05fTElCQAorK0JPT1NUX1JFR0VYX0xJQiA9IEBCT09TVF9SRUdFWF9MSUJA CisrQk9PU1RfU0VSSUFMSVpBVElPTl9MSUIgPSBAQk9PU1RfU0VSSUFMSVpBVElPTl9MSUJACisr Qk9PU1RfU0lHTkFMU19MSUIgPSBAQk9PU1RfU0lHTkFMU19MSUJACisrQk9PU1RfU1lTVEVNX0xJ QiA9IEBCT09TVF9TWVNURU1fTElCQAorK0JPT1NUX1RIUkVBRF9MSUIgPSBAQk9PU1RfVEhSRUFE X0xJQkAKKytCT09TVF9VTklUX1RFU1RfRlJBTUVXT1JLX0xJQiA9IEBCT09TVF9VTklUX1RFU1Rf RlJBTUVXT1JLX0xJQkAKKytCT09TVF9WRVJTSU9OID0gQEJPT1NUX1ZFUlNJT05ACisrQk9PU1Rf V1NFUklBTElaQVRJT05fTElCID0gQEJPT1NUX1dTRVJJQUxJWkFUSU9OX0xJQkAKKytDQyA9IEBD Q0AKKytDQ0RFUE1PREUgPSBAQ0NERVBNT0RFQAorK0NGTEFHUyA9IEBDRkxBR1NACisrQ1BQID0g QENQUEAKKytDUFBGTEFHUyA9IEBDUFBGTEFHU0AKKytDUFBVTklUX0NGTEFHUyA9IEBDUFBVTklU X0NGTEFHU0AKKytDUFBVTklUX0NPTkZJRyA9IEBDUFBVTklUX0NPTkZJR0AKKytDUFBVTklUX0xJ QlMgPSBAQ1BQVU5JVF9MSUJTQAorK0NQUFVOSVRfVkVSU0lPTiA9IEBDUFBVTklUX1ZFUlNJT05A CisrQ1hYID0gQENYWEAKKytDWFhDUFAgPSBAQ1hYQ1BQQAorK0NYWERFUE1PREUgPSBAQ1hYREVQ TU9ERUAKKytDWFhGTEFHUyA9IEBDWFhGTEFHU0AKKytDWUdQQVRIX1cgPSBAQ1lHUEFUSF9XQAor K0RFRlMgPSBAREVGU0AKKytERVBESVIgPSBAREVQRElSQAorK0RTWU1VVElMID0gQERTWU1VVElM QAorK0RVTVBCSU4gPSBARFVNUEJJTkAKKytFQ0hPX0MgPSBARUNIT19DQAorK0VDSE9fTiA9IEBF Q0hPX05ACisrRUNIT19UID0gQEVDSE9fVEAKKytFR1JFUCA9IEBFR1JFUEAKKytFWEVFWFQgPSBA RVhFRVhUQAorK0ZHUkVQID0gQEZHUkVQQAorK0dFTkVSSUNfTElCUkFSWV9WRVJTSU9OID0gQEdF TkVSSUNfTElCUkFSWV9WRVJTSU9OQAorK0dSRVAgPSBAR1JFUEAKKytJTlNUQUxMID0gQElOU1RB TExACisrSU5TVEFMTF9EQVRBID0gQElOU1RBTExfREFUQUAKKytJTlNUQUxMX1BST0dSQU0gPSBA SU5TVEFMTF9QUk9HUkFNQAorK0lOU1RBTExfU0NSSVBUID0gQElOU1RBTExfU0NSSVBUQAorK0lO U1RBTExfU1RSSVBfUFJPR1JBTSA9IEBJTlNUQUxMX1NUUklQX1BST0dSQU1ACisrTEQgPSBATERA CisrTERGTEFHUyA9IEBMREZMQUdTQAorK0xJQk9CSlMgPSBATElCT0JKU0AKKytMSUJTID0gQExJ QlNACisrTElCVE9PTCA9IEBMSUJUT09MQAorK0xJUE8gPSBATElQT0AKKytMTl9TID0gQExOX1NA CisrTFRMSUJPQkpTID0gQExUTElCT0JKU0AKKytNQUtFSU5GTyA9IEBNQUtFSU5GT0AKKytNS0RJ Ul9QID0gQE1LRElSX1BACisrTVlTUUxfQ0ZMQUdTID0gQE1ZU1FMX0NGTEFHU0AKKytNWVNRTF9D X0xJQiA9IEBNWVNRTF9DX0xJQkAKKytNWVNRTF9ESVJTID0gQE1ZU1FMX0RJUlNACisrTVlTUUxf TElCUyA9IEBNWVNRTF9MSUJTQAorK01ZU1FMX1ZFUlNJT04gPSBATVlTUUxfVkVSU0lPTkAKKytO TSA9IEBOTUAKKytOTUVESVQgPSBATk1FRElUQAorK09CSkRVTVAgPSBAT0JKRFVNUEAKKytPQkpF WFQgPSBAT0JKRVhUQAorK09SQUNMRV9ESVJTID0gQE9SQUNMRV9ESVJTQAorK09SQUNMRV9PQ0lf Q0ZMQUdTID0gQE9SQUNMRV9PQ0lfQ0ZMQUdTQAorK09SQUNMRV9PQ0lfTERGTEFHUyA9IEBPUkFD TEVfT0NJX0xERkxBR1NACisrT1JBQ0xFX09DSV9WRVJTSU9OID0gQE9SQUNMRV9PQ0lfVkVSU0lP TkAKKytPVE9PTCA9IEBPVE9PTEAKKytPVE9PTDY0ID0gQE9UT09MNjRACisrUEFDS0FHRSA9IEBQ QUNLQUdFQAorK1BBQ0tBR0VfQlVHUkVQT1JUID0gQFBBQ0tBR0VfQlVHUkVQT1JUQAorK1BBQ0tB R0VfTkFNRSA9IEBQQUNLQUdFX05BTUVACisrUEFDS0FHRV9TVFJJTkcgPSBAUEFDS0FHRV9TVFJJ TkdACisrUEFDS0FHRV9UQVJOQU1FID0gQFBBQ0tBR0VfVEFSTkFNRUAKKytQQUNLQUdFX1ZFUlNJ T04gPSBAUEFDS0FHRV9WRVJTSU9OQAorK1BBVEhfU0VQQVJBVE9SID0gQFBBVEhfU0VQQVJBVE9S QAorK1BFUkwgPSBAUEVSTEAKKytQR19DT05GSUcgPSBAUEdfQ09ORklHQAorK1BPU1RHUkVTUUxf Q0ZMQUdTID0gQFBPU1RHUkVTUUxfQ0ZMQUdTQAorK1BPU1RHUkVTUUxfRElSUyA9IEBQT1NUR1JF U1FMX0RJUlNACisrUE9TVEdSRVNRTF9MREZMQUdTID0gQFBPU1RHUkVTUUxfTERGTEFHU0AKKytQ T1NUR1JFU1FMX1ZFUlNJT04gPSBAUE9TVEdSRVNRTF9WRVJTSU9OQAorK1JBTkxJQiA9IEBSQU5M SUJACisrUlBNX1JFTEVBU0UgPSBAUlBNX1JFTEVBU0VACisrU0VEID0gQFNFREAKKytTRVRfTUFL RSA9IEBTRVRfTUFLRUAKKytTSEVMTCA9IEBTSEVMTEAKKytTT0NJX0hFQURFUlNfQlVSSUVEID0g QFNPQ0lfSEVBREVSU19CVVJJRURACisrU09DSV9NWVNRTF9IRUFERVJTX0JVUklFRCA9IEBTT0NJ X01ZU1FMX0hFQURFUlNfQlVSSUVEQAorK1NPQ0lfUE9TVEdSRVNRTF9IRUFERVJTX0JVUklFRCA9 IEBTT0NJX1BPU1RHUkVTUUxfSEVBREVSU19CVVJJRURACisrU1RSSVAgPSBAU1RSSVBACisrVVBM T0FEX0NPTU1BTkQgPSBAVVBMT0FEX0NPTU1BTkRACisrVkVSU0lPTiA9IEBWRVJTSU9OQAorK2Fi c19idWlsZGRpciA9IEBhYnNfYnVpbGRkaXJACisrYWJzX3NyY2RpciA9IEBhYnNfc3JjZGlyQAor K2Fic190b3BfYnVpbGRkaXIgPSBAYWJzX3RvcF9idWlsZGRpckAKKythYnNfdG9wX3NyY2RpciA9 IEBhYnNfdG9wX3NyY2RpckAKKythY19jdF9DQyA9IEBhY19jdF9DQ0AKKythY19jdF9DWFggPSBA YWNfY3RfQ1hYQAorK2FjX2N0X0RVTVBCSU4gPSBAYWNfY3RfRFVNUEJJTkAKKythbV9faW5jbHVk ZSA9IEBhbV9faW5jbHVkZUAKKythbV9fbGVhZGluZ19kb3QgPSBAYW1fX2xlYWRpbmdfZG90QAor K2FtX19xdW90ZSA9IEBhbV9fcXVvdGVACisrYW1fX3RhciA9IEBhbV9fdGFyQAorK2FtX191bnRh ciA9IEBhbV9fdW50YXJACisrYmluZGlyID0gQGJpbmRpckAKKytidWlsZCA9IEBidWlsZEAKKyti dWlsZF9hbGlhcyA9IEBidWlsZF9hbGlhc0AKKytidWlsZF9jcHUgPSBAYnVpbGRfY3B1QAorK2J1 aWxkX29zID0gQGJ1aWxkX29zQAorK2J1aWxkX3ZlbmRvciA9IEBidWlsZF92ZW5kb3JACisrYnVp bGRkaXIgPSBAYnVpbGRkaXJACisrZGF0YWRpciA9IEBkYXRhZGlyQAorK2RhdGFyb290ZGlyID0g QGRhdGFyb290ZGlyQAorK2RpZmZfb2sgPSBAZGlmZl9va0AKKytkb2NkaXIgPSBAZG9jZGlyQAor K2RveHlnZW5fb2sgPSBAZG94eWdlbl9va0AKKytkdmlkaXIgPSBAZHZpZGlyQAorK2R2aXBzX29r ID0gQGR2aXBzX29rQAorK2V4ZWNfcHJlZml4ID0gQGV4ZWNfcHJlZml4QAorK2dzX29rID0gQGdz X29rQAorK2hvc3QgPSBAaG9zdEAKKytob3N0X2FsaWFzID0gQGhvc3RfYWxpYXNACisraG9zdF9j cHUgPSBAaG9zdF9jcHVACisraG9zdF9vcyA9IEBob3N0X29zQAorK2hvc3RfdmVuZG9yID0gQGhv c3RfdmVuZG9yQAorK2h0bWxkaXIgPSBAaHRtbGRpckAKKytpbmNsdWRlZGlyID0gQGluY2x1ZGVk aXJACisraW5mb2RpciA9IEBpbmZvZGlyQAorK2luc3RhbGxfc2ggPSBAaW5zdGFsbF9zaEAKKyts YXRleF9vayA9IEBsYXRleF9va0AKKytsaWJkaXIgPSBAbGliZGlyQAorK2xpYmV4ZWNkaXIgPSBA bGliZXhlY2RpckAKKytsb2NhbGVkaXIgPSBAbG9jYWxlZGlyQAorK2xvY2Fsc3RhdGVkaXIgPSBA bG9jYWxzdGF0ZWRpckAKKytsdF9FQ0hPID0gQGx0X0VDSE9ACisrbWFuZGlyID0gQG1hbmRpckAK Kytta2Rpcl9wID0gQG1rZGlyX3BACisrb2xkaW5jbHVkZWRpciA9IEBvbGRpbmNsdWRlZGlyQAor K3BkZmRpciA9IEBwZGZkaXJACisrcHJlZml4ID0gQHByZWZpeEAKKytwcm9ncmFtX3RyYW5zZm9y bV9uYW1lID0gQHByb2dyYW1fdHJhbnNmb3JtX25hbWVACisrcHNkaXIgPSBAcHNkaXJACisrc2Jp bmRpciA9IEBzYmluZGlyQAorK3NlZF9vayA9IEBzZWRfb2tACisrc2hhcmVkc3RhdGVkaXIgPSBA c2hhcmVkc3RhdGVkaXJACisrc3JjZGlyID0gQHNyY2RpckAKKytzeXNjb25mZGlyID0gQHN5c2Nv bmZkaXJACisrdGFyZ2V0X2FsaWFzID0gQHRhcmdldF9hbGlhc0AKKyt0b3BfYnVpbGRfcHJlZml4 ID0gQHRvcF9idWlsZF9wcmVmaXhACisrdG9wX2J1aWxkZGlyID0gQHRvcF9idWlsZGRpckAKKyt0 b3Bfc3JjZGlyID0gQHRvcF9zcmNkaXJACisrQU1fQ1BQRkxBR1MgPSAtSSQodG9wX2J1aWxkZGly KSAtSSQodG9wX3NyY2RpcikKKytNQUlOVEFJTkVSQ0xFQU5GSUxFUyA9IE1ha2VmaWxlLmluCisr U1VCRElSUyA9IEBNWVNRTF9ESVJTQCBAUE9TVEdSRVNRTF9ESVJTQCBAT1JBQ0xFX0RJUlNACisr RVhUUkFfRElTVCA9IAorK2FsbDogYWxsLXJlY3Vyc2l2ZQorKworKy5TVUZGSVhFUzoKKyskKHNy Y2RpcikvTWFrZWZpbGUuaW46ICAkKHNyY2RpcikvTWFrZWZpbGUuYW0gJCh0b3Bfc3JjZGlyKS9N YWtlZmlsZS5jb21tb24gJChhbV9fY29uZmlndXJlX2RlcHMpCisrCUBmb3IgZGVwIGluICQ/OyBk byBcCisrCSAgY2FzZSAnJChhbV9fY29uZmlndXJlX2RlcHMpJyBpbiBcCisrCSAgICAqJCRkZXAq KSBcCisrCSAgICAgICggY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxB R1MpIGFtLS1yZWZyZXNoICkgXAorKwkgICAgICAgICYmIHsgaWYgdGVzdCAtZiAkQDsgdGhlbiBl eGl0IDA7IGVsc2UgYnJlYWs7IGZpOyB9OyBcCisrCSAgICAgIGV4aXQgMTs7IFwKKysJICBlc2Fj OyBcCisrCWRvbmU7IFwKKysJZWNobyAnIGNkICQodG9wX3NyY2RpcikgJiYgJChBVVRPTUFLRSkg LS1nbnUgc29jaS9iYWNrZW5kcy9NYWtlZmlsZSc7IFwKKysJJChhbV9fY2QpICQodG9wX3NyY2Rp cikgJiYgXAorKwkgICQoQVVUT01BS0UpIC0tZ251IHNvY2kvYmFja2VuZHMvTWFrZWZpbGUKKysu UFJFQ0lPVVM6IE1ha2VmaWxlCisrTWFrZWZpbGU6ICQoc3JjZGlyKS9NYWtlZmlsZS5pbiAkKHRv cF9idWlsZGRpcikvY29uZmlnLnN0YXR1cworKwlAY2FzZSAnJD8nIGluIFwKKysJICAqY29uZmln LnN0YXR1cyopIFwKKysJICAgIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFL RUZMQUdTKSBhbS0tcmVmcmVzaDs7IFwKKysJICAqKSBcCisrCSAgICBlY2hvICcgY2QgJCh0b3Bf YnVpbGRkaXIpICYmICQoU0hFTEwpIC4vY29uZmlnLnN0YXR1cyAkKHN1YmRpcikvJEAgJChhbV9f ZGVwZmlsZXNfbWF5YmUpJzsgXAorKwkgICAgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoU0hFTEwp IC4vY29uZmlnLnN0YXR1cyAkKHN1YmRpcikvJEAgJChhbV9fZGVwZmlsZXNfbWF5YmUpOzsgXAor Kwllc2FjOworKworKyQodG9wX2J1aWxkZGlyKS9jb25maWcuc3RhdHVzOiAkKHRvcF9zcmNkaXIp L2NvbmZpZ3VyZSAkKENPTkZJR19TVEFUVVNfREVQRU5ERU5DSUVTKQorKwljZCAkKHRvcF9idWls ZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gKKysKKyskKHRvcF9z cmNkaXIpL2NvbmZpZ3VyZTogICQoYW1fX2NvbmZpZ3VyZV9kZXBzKQorKwljZCAkKHRvcF9idWls ZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gKKyskKEFDTE9DQUxf TTQpOiAgJChhbV9fYWNsb2NhbF9tNF9kZXBzKQorKwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChN QUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gKKyskKGFtX19hY2xvY2FsX200X2RlcHMp OgorKworK21vc3RseWNsZWFuLWxpYnRvb2w6CisrCS1ybSAtZiAqLmxvCisrCisrY2xlYW4tbGli dG9vbDoKKysJLXJtIC1yZiAubGlicyBfbGlicworKworKyMgVGhpcyBkaXJlY3RvcnkncyBzdWJk aXJlY3RvcmllcyBhcmUgbW9zdGx5IGluZGVwZW5kZW50OyB5b3UgY2FuIGNkCisrIyBpbnRvIHRo ZW0gYW5kIHJ1biBgbWFrZScgd2l0aG91dCBnb2luZyB0aHJvdWdoIHRoaXMgTWFrZWZpbGUuCisr IyBUbyBjaGFuZ2UgdGhlIHZhbHVlcyBvZiBgbWFrZScgdmFyaWFibGVzOiBpbnN0ZWFkIG9mIGVk aXRpbmcgTWFrZWZpbGVzLAorKyMgKDEpIGlmIHRoZSB2YXJpYWJsZSBpcyBzZXQgaW4gYGNvbmZp Zy5zdGF0dXMnLCBlZGl0IGBjb25maWcuc3RhdHVzJworKyMgICAgICh3aGljaCB3aWxsIGNhdXNl IHRoZSBNYWtlZmlsZXMgdG8gYmUgcmVnZW5lcmF0ZWQgd2hlbiB5b3UgcnVuIGBtYWtlJyk7Cisr IyAoMikgb3RoZXJ3aXNlLCBwYXNzIHRoZSBkZXNpcmVkIHZhbHVlcyBvbiB0aGUgYG1ha2UnIGNv bW1hbmQgbGluZS4KKyskKFJFQ1VSU0lWRV9UQVJHRVRTKToKKysJQGZhaWw9IGZhaWxjb209J2V4 aXQgMSc7IFwKKysJZm9yIGYgaW4geCAkJE1BS0VGTEFHUzsgZG8gXAorKwkgIGNhc2UgJCRmIGlu IFwKKysJICAgICo9KiB8IC0tWyFrXSopOzsgXAorKwkgICAgKmsqKSBmYWlsY29tPSdmYWlsPXll cyc7OyBcCisrCSAgZXNhYzsgXAorKwlkb25lOyBcCisrCWRvdF9zZWVuPW5vOyBcCisrCXRhcmdl dD1gZWNobyAkQCB8IHNlZCBzLy1yZWN1cnNpdmUvL2A7IFwKKysJbGlzdD0nJChTVUJESVJTKSc7 IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCisrCSAgZWNobyAiTWFraW5nICQkdGFyZ2V0IGlu ICQkc3ViZGlyIjsgXAorKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9ICIuIjsgdGhlbiBcCisrCSAg ICBkb3Rfc2Vlbj15ZXM7IFwKKysJICAgIGxvY2FsX3RhcmdldD0iJCR0YXJnZXQtYW0iOyBcCisr CSAgZWxzZSBcCisrCSAgICBsb2NhbF90YXJnZXQ9IiQkdGFyZ2V0IjsgXAorKwkgIGZpOyBcCisr CSAgKCQoYW1fX2NkKSAkJHN1YmRpciAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSAkJGxvY2Fs X3RhcmdldCkgXAorKwkgIHx8IGV2YWwgJCRmYWlsY29tOyBcCisrCWRvbmU7IFwKKysJaWYgdGVz dCAiJCRkb3Rfc2VlbiIgPSAibm8iOyB0aGVuIFwKKysJICAkKE1BS0UpICQoQU1fTUFLRUZMQUdT KSAiJCR0YXJnZXQtYW0iIHx8IGV4aXQgMTsgXAorKwlmaTsgdGVzdCAteiAiJCRmYWlsIgorKwor KyQoUkVDVVJTSVZFX0NMRUFOX1RBUkdFVFMpOgorKwlAZmFpbD0gZmFpbGNvbT0nZXhpdCAxJzsg XAorKwlmb3IgZiBpbiB4ICQkTUFLRUZMQUdTOyBkbyBcCisrCSAgY2FzZSAkJGYgaW4gXAorKwkg ICAgKj0qIHwgLS1bIWtdKik7OyBcCisrCSAgICAqayopIGZhaWxjb209J2ZhaWw9eWVzJzs7IFwK KysJICBlc2FjOyBcCisrCWRvbmU7IFwKKysJZG90X3NlZW49bm87IFwKKysJY2FzZSAiJEAiIGlu IFwKKysJICBkaXN0Y2xlYW4tKiB8IG1haW50YWluZXItY2xlYW4tKikgbGlzdD0nJChESVNUX1NV QkRJUlMpJyA7OyBcCisrCSAgKikgbGlzdD0nJChTVUJESVJTKScgOzsgXAorKwllc2FjOyBcCisr CXJldj0nJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKKysJICBpZiB0ZXN0ICIkJHN1YmRp ciIgPSAiLiI7IHRoZW4gOjsgZWxzZSBcCisrCSAgICByZXY9IiQkc3ViZGlyICQkcmV2IjsgXAor KwkgIGZpOyBcCisrCWRvbmU7IFwKKysJcmV2PSIkJHJldiAuIjsgXAorKwl0YXJnZXQ9YGVjaG8g JEAgfCBzZWQgcy8tcmVjdXJzaXZlLy9gOyBcCisrCWZvciBzdWJkaXIgaW4gJCRyZXY7IGRvIFwK KysJICBlY2hvICJNYWtpbmcgJCR0YXJnZXQgaW4gJCRzdWJkaXIiOyBcCisrCSAgaWYgdGVzdCAi JCRzdWJkaXIiID0gIi4iOyB0aGVuIFwKKysJICAgIGxvY2FsX3RhcmdldD0iJCR0YXJnZXQtYW0i OyBcCisrCSAgZWxzZSBcCisrCSAgICBsb2NhbF90YXJnZXQ9IiQkdGFyZ2V0IjsgXAorKwkgIGZp OyBcCisrCSAgKCQoYW1fX2NkKSAkJHN1YmRpciAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSAk JGxvY2FsX3RhcmdldCkgXAorKwkgIHx8IGV2YWwgJCRmYWlsY29tOyBcCisrCWRvbmUgJiYgdGVz dCAteiAiJCRmYWlsIgorK3RhZ3MtcmVjdXJzaXZlOgorKwlsaXN0PSckKFNVQkRJUlMpJzsgZm9y IHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKKysJICB0ZXN0ICIkJHN1YmRpciIgPSAuIHx8ICgkKGFt X19jZCkgJCRzdWJkaXIgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgdGFncyk7IFwKKysJZG9u ZQorK2N0YWdzLXJlY3Vyc2l2ZToKKysJbGlzdD0nJChTVUJESVJTKSc7IGZvciBzdWJkaXIgaW4g JCRsaXN0OyBkbyBcCisrCSAgdGVzdCAiJCRzdWJkaXIiID0gLiB8fCAoJChhbV9fY2QpICQkc3Vi ZGlyICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGN0YWdzKTsgXAorKwlkb25lCisrCisrSUQ6 ICQoSEVBREVSUykgJChTT1VSQ0VTKSAkKExJU1ApICQoVEFHU19GSUxFUykKKysJbGlzdD0nJChT T1VSQ0VTKSAkKEhFQURFUlMpICQoTElTUCkgJChUQUdTX0ZJTEVTKSc7IFwKKysJdW5pcXVlPWBm b3IgaSBpbiAkJGxpc3Q7IGRvIFwKKysJICAgIGlmIHRlc3QgLWYgIiQkaSI7IHRoZW4gZWNobyAk JGk7IGVsc2UgZWNobyAkKHNyY2RpcikvJCRpOyBmaTsgXAorKwkgIGRvbmUgfCBcCisrCSAgJChB V0spICd7IGZpbGVzWyQkMF0gPSAxOyBub25lbXB0eSA9IDE7IH0gXAorKwkgICAgICBFTkQgeyBp ZiAobm9uZW1wdHkpIHsgZm9yIChpIGluIGZpbGVzKSBwcmludCBpOyB9OyB9J2A7IFwKKysJbWtp ZCAtZklEICQkdW5pcXVlCisrdGFnczogVEFHUworKworK1RBR1M6IHRhZ3MtcmVjdXJzaXZlICQo SEVBREVSUykgJChTT1VSQ0VTKSAgJChUQUdTX0RFUEVOREVOQ0lFUykgXAorKwkJJChUQUdTX0ZJ TEVTKSAkKExJU1ApCisrCXNldCB4OyBcCisrCWhlcmU9YHB3ZGA7IFwKKysJaWYgKCQoRVRBR1Mp IC0tZXRhZ3MtaW5jbHVkZSAtLXZlcnNpb24pID4vZGV2L251bGwgMj4mMTsgdGhlbiBcCisrCSAg aW5jbHVkZV9vcHRpb249LS1ldGFncy1pbmNsdWRlOyBcCisrCSAgZW1wdHlfZml4PS47IFwKKysJ ZWxzZSBcCisrCSAgaW5jbHVkZV9vcHRpb249LS1pbmNsdWRlOyBcCisrCSAgZW1wdHlfZml4PTsg XAorKwlmaTsgXAorKwlsaXN0PSckKFNVQkRJUlMpJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRv IFwKKysJICBpZiB0ZXN0ICIkJHN1YmRpciIgPSAuOyB0aGVuIDo7IGVsc2UgXAorKwkgICAgdGVz dCAhIC1mICQkc3ViZGlyL1RBR1MgfHwgXAorKwkgICAgICBzZXQgIiQkQCIgIiQkaW5jbHVkZV9v cHRpb249JCRoZXJlLyQkc3ViZGlyL1RBR1MiOyBcCisrCSAgZmk7IFwKKysJZG9uZTsgXAorKwls aXN0PSckKFNPVVJDRVMpICQoSEVBREVSUykgICQoTElTUCkgJChUQUdTX0ZJTEVTKSc7IFwKKysJ dW5pcXVlPWBmb3IgaSBpbiAkJGxpc3Q7IGRvIFwKKysJICAgIGlmIHRlc3QgLWYgIiQkaSI7IHRo ZW4gZWNobyAkJGk7IGVsc2UgZWNobyAkKHNyY2RpcikvJCRpOyBmaTsgXAorKwkgIGRvbmUgfCBc CisrCSAgJChBV0spICd7IGZpbGVzWyQkMF0gPSAxOyBub25lbXB0eSA9IDE7IH0gXAorKwkgICAg ICBFTkQgeyBpZiAobm9uZW1wdHkpIHsgZm9yIChpIGluIGZpbGVzKSBwcmludCBpOyB9OyB9J2A7 IFwKKysJc2hpZnQ7IFwKKysJaWYgdGVzdCAteiAiJChFVEFHU19BUkdTKSQkKiQkdW5pcXVlIjsg dGhlbiA6OyBlbHNlIFwKKysJICB0ZXN0IC1uICIkJHVuaXF1ZSIgfHwgdW5pcXVlPSQkZW1wdHlf Zml4OyBcCisrCSAgaWYgdGVzdCAkJCMgLWd0IDA7IHRoZW4gXAorKwkgICAgJChFVEFHUykgJChF VEFHU0ZMQUdTKSAkKEFNX0VUQUdTRkxBR1MpICQoRVRBR1NfQVJHUykgXAorKwkgICAgICAiJCRA IiAkJHVuaXF1ZTsgXAorKwkgIGVsc2UgXAorKwkgICAgJChFVEFHUykgJChFVEFHU0ZMQUdTKSAk KEFNX0VUQUdTRkxBR1MpICQoRVRBR1NfQVJHUykgXAorKwkgICAgICAkJHVuaXF1ZTsgXAorKwkg IGZpOyBcCisrCWZpCisrY3RhZ3M6IENUQUdTCisrQ1RBR1M6IGN0YWdzLXJlY3Vyc2l2ZSAkKEhF QURFUlMpICQoU09VUkNFUykgICQoVEFHU19ERVBFTkRFTkNJRVMpIFwKKysJCSQoVEFHU19GSUxF UykgJChMSVNQKQorKwlsaXN0PSckKFNPVVJDRVMpICQoSEVBREVSUykgICQoTElTUCkgJChUQUdT X0ZJTEVTKSc7IFwKKysJdW5pcXVlPWBmb3IgaSBpbiAkJGxpc3Q7IGRvIFwKKysJICAgIGlmIHRl c3QgLWYgIiQkaSI7IHRoZW4gZWNobyAkJGk7IGVsc2UgZWNobyAkKHNyY2RpcikvJCRpOyBmaTsg XAorKwkgIGRvbmUgfCBcCisrCSAgJChBV0spICd7IGZpbGVzWyQkMF0gPSAxOyBub25lbXB0eSA9 IDE7IH0gXAorKwkgICAgICBFTkQgeyBpZiAobm9uZW1wdHkpIHsgZm9yIChpIGluIGZpbGVzKSBw cmludCBpOyB9OyB9J2A7IFwKKysJdGVzdCAteiAiJChDVEFHU19BUkdTKSQkdW5pcXVlIiBcCisr CSAgfHwgJChDVEFHUykgJChDVEFHU0ZMQUdTKSAkKEFNX0NUQUdTRkxBR1MpICQoQ1RBR1NfQVJH UykgXAorKwkgICAgICQkdW5pcXVlCisrCisrR1RBR1M6CisrCWhlcmU9YCQoYW1fX2NkKSAkKHRv cF9idWlsZGRpcikgJiYgcHdkYCBcCisrCSAgJiYgJChhbV9fY2QpICQodG9wX3NyY2RpcikgXAor KwkgICYmIGd0YWdzIC1pICQoR1RBR1NfQVJHUykgIiQkaGVyZSIKKysKKytkaXN0Y2xlYW4tdGFn czoKKysJLXJtIC1mIFRBR1MgSUQgR1RBR1MgR1JUQUdTIEdTWU1TIEdQQVRIIHRhZ3MKKysKKytk aXN0ZGlyOiAkKERJU1RGSUxFUykKKysJQHNyY2RpcnN0cmlwPWBlY2hvICIkKHNyY2RpcikiIHwg c2VkICdzL1tdLlteJCRcXCpdL1xcXFwmL2cnYDsgXAorKwl0b3BzcmNkaXJzdHJpcD1gZWNobyAi JCh0b3Bfc3JjZGlyKSIgfCBzZWQgJ3MvW10uW14kJFxcKl0vXFxcXCYvZydgOyBcCisrCWxpc3Q9 JyQoRElTVEZJTEVTKSc7IFwKKysJICBkaXN0X2ZpbGVzPWBmb3IgZmlsZSBpbiAkJGxpc3Q7IGRv IGVjaG8gJCRmaWxlOyBkb25lIHwgXAorKwkgIHNlZCAtZSAic3xeJCRzcmNkaXJzdHJpcC98fDt0 IiBcCisrCSAgICAgIC1lICJzfF4kJHRvcHNyY2RpcnN0cmlwL3wkKHRvcF9idWlsZGRpcikvfDt0 ImA7IFwKKysJY2FzZSAkJGRpc3RfZmlsZXMgaW4gXAorKwkgICovKikgJChNS0RJUl9QKSBgZWNo byAiJCRkaXN0X2ZpbGVzIiB8IFwKKysJCQkgICBzZWQgJy9cLy8hZDtzfF58JChkaXN0ZGlyKS98 O3MsL1teL10qJCQsLCcgfCBcCisrCQkJICAgc29ydCAtdWAgOzsgXAorKwllc2FjOyBcCisrCWZv ciBmaWxlIGluICQkZGlzdF9maWxlczsgZG8gXAorKwkgIGlmIHRlc3QgLWYgJCRmaWxlIHx8IHRl c3QgLWQgJCRmaWxlOyB0aGVuIGQ9LjsgZWxzZSBkPSQoc3JjZGlyKTsgZmk7IFwKKysJICBpZiB0 ZXN0IC1kICQkZC8kJGZpbGU7IHRoZW4gXAorKwkgICAgZGlyPWBlY2hvICIvJCRmaWxlIiB8IHNl ZCAtZSAncywvW14vXSokJCwsJ2A7IFwKKysJICAgIGlmIHRlc3QgLWQgIiQoZGlzdGRpcikvJCRm aWxlIjsgdGhlbiBcCisrCSAgICAgIGZpbmQgIiQoZGlzdGRpcikvJCRmaWxlIiAtdHlwZSBkICEg LXBlcm0gLTcwMCAtZXhlYyBjaG1vZCB1K3J3eCB7fSBcOzsgXAorKwkgICAgZmk7IFwKKysJICAg IGlmIHRlc3QgLWQgJChzcmNkaXIpLyQkZmlsZSAmJiB0ZXN0ICQkZCAhPSAkKHNyY2Rpcik7IHRo ZW4gXAorKwkgICAgICBjcCAtZnBSICQoc3JjZGlyKS8kJGZpbGUgIiQoZGlzdGRpcikkJGRpciIg fHwgZXhpdCAxOyBcCisrCSAgICAgIGZpbmQgIiQoZGlzdGRpcikvJCRmaWxlIiAtdHlwZSBkICEg LXBlcm0gLTcwMCAtZXhlYyBjaG1vZCB1K3J3eCB7fSBcOzsgXAorKwkgICAgZmk7IFwKKysJICAg IGNwIC1mcFIgJCRkLyQkZmlsZSAiJChkaXN0ZGlyKSQkZGlyIiB8fCBleGl0IDE7IFwKKysJICBl bHNlIFwKKysJICAgIHRlc3QgLWYgIiQoZGlzdGRpcikvJCRmaWxlIiBcCisrCSAgICB8fCBjcCAt cCAkJGQvJCRmaWxlICIkKGRpc3RkaXIpLyQkZmlsZSIgXAorKwkgICAgfHwgZXhpdCAxOyBcCisr CSAgZmk7IFwKKysJZG9uZQorKwlAbGlzdD0nJChESVNUX1NVQkRJUlMpJzsgZm9yIHN1YmRpciBp biAkJGxpc3Q7IGRvIFwKKysJICBpZiB0ZXN0ICIkJHN1YmRpciIgPSAuOyB0aGVuIDo7IGVsc2Ug XAorKwkgICAgdGVzdCAtZCAiJChkaXN0ZGlyKS8kJHN1YmRpciIgXAorKwkgICAgfHwgJChNS0RJ Ul9QKSAiJChkaXN0ZGlyKS8kJHN1YmRpciIgXAorKwkgICAgfHwgZXhpdCAxOyBcCisrCSAgZmk7 IFwKKysJZG9uZQorKwlAbGlzdD0nJChESVNUX1NVQkRJUlMpJzsgZm9yIHN1YmRpciBpbiAkJGxp c3Q7IGRvIFwKKysJICBpZiB0ZXN0ICIkJHN1YmRpciIgPSAuOyB0aGVuIDo7IGVsc2UgXAorKwkg ICAgZGlyMT0kJHN1YmRpcjsgZGlyMj0iJChkaXN0ZGlyKS8kJHN1YmRpciI7IFwKKysJICAgICQo YW1fX3JlbGF0aXZpemUpOyBcCisrCSAgICBuZXdfZGlzdGRpcj0kJHJlbGRpcjsgXAorKwkgICAg ZGlyMT0kJHN1YmRpcjsgZGlyMj0iJCh0b3BfZGlzdGRpcikiOyBcCisrCSAgICAkKGFtX19yZWxh dGl2aXplKTsgXAorKwkgICAgbmV3X3RvcF9kaXN0ZGlyPSQkcmVsZGlyOyBcCisrCSAgICBlY2hv ICIgKGNkICQkc3ViZGlyICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIHRvcF9kaXN0ZGlyPSIk JG5ld190b3BfZGlzdGRpciIgZGlzdGRpcj0iJCRuZXdfZGlzdGRpciIgXFwiOyBcCisrCSAgICBl Y2hvICIgICAgIGFtX19yZW1vdmVfZGlzdGRpcj06IGFtX19za2lwX2xlbmd0aF9jaGVjaz06IGFt X19za2lwX21vZGVfZml4PTogZGlzdGRpcikiOyBcCisrCSAgICAoJChhbV9fY2QpICQkc3ViZGly ICYmIFwKKysJICAgICAgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgXAorKwkgICAgICAgIHRvcF9k aXN0ZGlyPSIkJG5ld190b3BfZGlzdGRpciIgXAorKwkgICAgICAgIGRpc3RkaXI9IiQkbmV3X2Rp c3RkaXIiIFwKKysJCWFtX19yZW1vdmVfZGlzdGRpcj06IFwKKysJCWFtX19za2lwX2xlbmd0aF9j aGVjaz06IFwKKysJCWFtX19za2lwX21vZGVfZml4PTogXAorKwkgICAgICAgIGRpc3RkaXIpIFwK KysJICAgICAgfHwgZXhpdCAxOyBcCisrCSAgZmk7IFwKKysJZG9uZQorK2NoZWNrLWFtOiBhbGwt YW0KKytjaGVjazogY2hlY2stcmVjdXJzaXZlCisrYWxsLWFtOiBNYWtlZmlsZQorK2luc3RhbGxk aXJzOiBpbnN0YWxsZGlycy1yZWN1cnNpdmUKKytpbnN0YWxsZGlycy1hbToKKytpbnN0YWxsOiBp bnN0YWxsLXJlY3Vyc2l2ZQorK2luc3RhbGwtZXhlYzogaW5zdGFsbC1leGVjLXJlY3Vyc2l2ZQor K2luc3RhbGwtZGF0YTogaW5zdGFsbC1kYXRhLXJlY3Vyc2l2ZQorK3VuaW5zdGFsbDogdW5pbnN0 YWxsLXJlY3Vyc2l2ZQorKworK2luc3RhbGwtYW06IGFsbC1hbQorKwlAJChNQUtFKSAkKEFNX01B S0VGTEFHUykgaW5zdGFsbC1leGVjLWFtIGluc3RhbGwtZGF0YS1hbQorKworK2luc3RhbGxjaGVj azogaW5zdGFsbGNoZWNrLXJlY3Vyc2l2ZQorK2luc3RhbGwtc3RyaXA6CisrCSQoTUFLRSkgJChB TV9NQUtFRkxBR1MpIElOU1RBTExfUFJPR1JBTT0iJChJTlNUQUxMX1NUUklQX1BST0dSQU0pIiBc CisrCSAgaW5zdGFsbF9zaF9QUk9HUkFNPSIkKElOU1RBTExfU1RSSVBfUFJPR1JBTSkiIElOU1RB TExfU1RSSVBfRkxBRz0tcyBcCisrCSAgYHRlc3QgLXogJyQoU1RSSVApJyB8fCBcCisrCSAgICBl Y2hvICJJTlNUQUxMX1BST0dSQU1fRU5WPVNUUklQUFJPRz0nJChTVFJJUCknImAgaW5zdGFsbAor K21vc3RseWNsZWFuLWdlbmVyaWM6CisrCisrY2xlYW4tZ2VuZXJpYzoKKysKKytkaXN0Y2xlYW4t Z2VuZXJpYzoKKysJLXRlc3QgLXogIiQoQ09ORklHX0NMRUFOX0ZJTEVTKSIgfHwgcm0gLWYgJChD T05GSUdfQ0xFQU5fRklMRVMpCisrCS10ZXN0IC4gPSAiJChzcmNkaXIpIiB8fCB0ZXN0IC16ICIk KENPTkZJR19DTEVBTl9WUEFUSF9GSUxFUykiIHx8IHJtIC1mICQoQ09ORklHX0NMRUFOX1ZQQVRI X0ZJTEVTKQorKworK21haW50YWluZXItY2xlYW4tZ2VuZXJpYzoKKysJQGVjaG8gIlRoaXMgY29t bWFuZCBpcyBpbnRlbmRlZCBmb3IgbWFpbnRhaW5lcnMgdG8gdXNlIgorKwlAZWNobyAiaXQgZGVs ZXRlcyBmaWxlcyB0aGF0IG1heSByZXF1aXJlIHNwZWNpYWwgdG9vbHMgdG8gcmVidWlsZC4iCisr CS10ZXN0IC16ICIkKE1BSU5UQUlORVJDTEVBTkZJTEVTKSIgfHwgcm0gLWYgJChNQUlOVEFJTkVS Q0xFQU5GSUxFUykKKytjbGVhbjogY2xlYW4tcmVjdXJzaXZlCisrCisrY2xlYW4tYW06IGNsZWFu LWdlbmVyaWMgY2xlYW4tbGlidG9vbCBtb3N0bHljbGVhbi1hbQorKworK2Rpc3RjbGVhbjogZGlz dGNsZWFuLXJlY3Vyc2l2ZQorKwktcm0gLWYgTWFrZWZpbGUKKytkaXN0Y2xlYW4tYW06IGNsZWFu LWFtIGRpc3RjbGVhbi1nZW5lcmljIGRpc3RjbGVhbi10YWdzCisrCisrZHZpOiBkdmktcmVjdXJz aXZlCisrCisrZHZpLWFtOgorKworK2h0bWw6IGh0bWwtcmVjdXJzaXZlCisrCisraHRtbC1hbToK KysKKytpbmZvOiBpbmZvLXJlY3Vyc2l2ZQorKworK2luZm8tYW06CisrCisraW5zdGFsbC1kYXRh LWFtOgorKworK2luc3RhbGwtZHZpOiBpbnN0YWxsLWR2aS1yZWN1cnNpdmUKKysKKytpbnN0YWxs LWR2aS1hbToKKysKKytpbnN0YWxsLWV4ZWMtYW06CisrCisraW5zdGFsbC1odG1sOiBpbnN0YWxs LWh0bWwtcmVjdXJzaXZlCisrCisraW5zdGFsbC1odG1sLWFtOgorKworK2luc3RhbGwtaW5mbzog aW5zdGFsbC1pbmZvLXJlY3Vyc2l2ZQorKworK2luc3RhbGwtaW5mby1hbToKKysKKytpbnN0YWxs LW1hbjoKKysKKytpbnN0YWxsLXBkZjogaW5zdGFsbC1wZGYtcmVjdXJzaXZlCisrCisraW5zdGFs bC1wZGYtYW06CisrCisraW5zdGFsbC1wczogaW5zdGFsbC1wcy1yZWN1cnNpdmUKKysKKytpbnN0 YWxsLXBzLWFtOgorKworK2luc3RhbGxjaGVjay1hbToKKysKKyttYWludGFpbmVyLWNsZWFuOiBt YWludGFpbmVyLWNsZWFuLXJlY3Vyc2l2ZQorKwktcm0gLWYgTWFrZWZpbGUKKyttYWludGFpbmVy LWNsZWFuLWFtOiBkaXN0Y2xlYW4tYW0gbWFpbnRhaW5lci1jbGVhbi1nZW5lcmljCisrCisrbW9z dGx5Y2xlYW46IG1vc3RseWNsZWFuLXJlY3Vyc2l2ZQorKworK21vc3RseWNsZWFuLWFtOiBtb3N0 bHljbGVhbi1nZW5lcmljIG1vc3RseWNsZWFuLWxpYnRvb2wKKysKKytwZGY6IHBkZi1yZWN1cnNp dmUKKysKKytwZGYtYW06CisrCisrcHM6IHBzLXJlY3Vyc2l2ZQorKworK3BzLWFtOgorKworK3Vu aW5zdGFsbC1hbToKKysKKysuTUFLRTogJChSRUNVUlNJVkVfQ0xFQU5fVEFSR0VUUykgJChSRUNV UlNJVkVfVEFSR0VUUykgY3RhZ3MtcmVjdXJzaXZlIFwKKysJaW5zdGFsbC1hbSBpbnN0YWxsLXN0 cmlwIHRhZ3MtcmVjdXJzaXZlCisrCisrLlBIT05ZOiAkKFJFQ1VSU0lWRV9DTEVBTl9UQVJHRVRT KSAkKFJFQ1VSU0lWRV9UQVJHRVRTKSBDVEFHUyBHVEFHUyBcCisrCWFsbCBhbGwtYW0gY2hlY2sg Y2hlY2stYW0gY2xlYW4gY2xlYW4tZ2VuZXJpYyBjbGVhbi1saWJ0b29sIFwKKysJY3RhZ3MgY3Rh Z3MtcmVjdXJzaXZlIGRpc3RjbGVhbiBkaXN0Y2xlYW4tZ2VuZXJpYyBcCisrCWRpc3RjbGVhbi1s aWJ0b29sIGRpc3RjbGVhbi10YWdzIGRpc3RkaXIgZHZpIGR2aS1hbSBodG1sIFwKKysJaHRtbC1h bSBpbmZvIGluZm8tYW0gaW5zdGFsbCBpbnN0YWxsLWFtIGluc3RhbGwtZGF0YSBcCisrCWluc3Rh bGwtZGF0YS1hbSBpbnN0YWxsLWR2aSBpbnN0YWxsLWR2aS1hbSBpbnN0YWxsLWV4ZWMgXAorKwlp bnN0YWxsLWV4ZWMtYW0gaW5zdGFsbC1odG1sIGluc3RhbGwtaHRtbC1hbSBpbnN0YWxsLWluZm8g XAorKwlpbnN0YWxsLWluZm8tYW0gaW5zdGFsbC1tYW4gaW5zdGFsbC1wZGYgaW5zdGFsbC1wZGYt YW0gXAorKwlpbnN0YWxsLXBzIGluc3RhbGwtcHMtYW0gaW5zdGFsbC1zdHJpcCBpbnN0YWxsY2hl Y2sgXAorKwlpbnN0YWxsY2hlY2stYW0gaW5zdGFsbGRpcnMgaW5zdGFsbGRpcnMtYW0gbWFpbnRh aW5lci1jbGVhbiBcCisrCW1haW50YWluZXItY2xlYW4tZ2VuZXJpYyBtb3N0bHljbGVhbiBtb3N0 bHljbGVhbi1nZW5lcmljIFwKKysJbW9zdGx5Y2xlYW4tbGlidG9vbCBwZGYgcGRmLWFtIHBzIHBz LWFtIHRhZ3MgdGFncy1yZWN1cnNpdmUgXAorKwl1bmluc3RhbGwgdW5pbnN0YWxsLWFtCisrCisr QFNFVF9NQUtFQAorKworKyMgVGVsbCB2ZXJzaW9ucyBbMy41OSwzLjYzKSBvZiBHTlUgbWFrZSB0 byBub3QgZXhwb3J0IGFsbCB2YXJpYWJsZXMuCisrIyBPdGhlcndpc2UgYSBzeXN0ZW0gbGltaXQg KGZvciBTeXNWIGF0IGxlYXN0KSBtYXkgYmUgZXhjZWVkZWQuCisrLk5PRVhQT1JUOgorZGlmZiAt TnVyIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvbXlzcWwvY29tbW9uLmNwcCBzb2Np LTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9teXNxbC9jb21tb24uY3BwCistLS0gc29jaS0z LjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9teXNxbC9jb21tb24uY3BwCTIwMTAtMDEtMjMgMTQ6 NDU6NDQuMDAwMDAwMDAwICswMTAwCisrKysgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2Vu ZHMvbXlzcWwvY29tbW9uLmNwcAkyMDA5LTA0LTE2IDE5OjM3OjA2LjAwMDAwMDAwMCArMDIwMAor QEAgLTYsNyArNiwxMyBAQAorIC8vCisgCisgI2luY2x1ZGUgImNvbW1vbi5oIgorLSNpbmNsdWRl ICJzb2NpLWJhY2tlbmQuaCIKKysvLworKyNpZiBkZWZpbmVkKFNPQ0lfSEVBREVSU19CVVJJRUQp CisrIyAgICAgICBpbmNsdWRlIDxzb2NpL2NvcmUvc29jaS1iYWNrZW5kLmg+CisrI2Vsc2UKKysj CWluY2x1ZGUgPHNvY2ktYmFja2VuZC5oPgorKyNlbmRpZgorKy8vCisgI2luY2x1ZGUgPGNpc282 NDY+CisgI2luY2x1ZGUgPGNzdGRsaWI+CisgI2luY2x1ZGUgPGN0aW1lPgorZGlmZiAtTnVyIHNv Y2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvbXlzcWwvTWFrZWZpbGUuYW0gc29jaS0zLjAu MF90cmVwMzAwL3NvY2kvYmFja2VuZHMvbXlzcWwvTWFrZWZpbGUuYW0KKy0tLSBzb2NpLTMuMC4w XzQtcGFjay9zb2NpL2JhY2tlbmRzL215c3FsL01ha2VmaWxlLmFtCTE5NzAtMDEtMDEgMDE6MDA6 MDAuMDAwMDAwMDAwICswMTAwCisrKysgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMv bXlzcWwvTWFrZWZpbGUuYW0JMjAwOS0wNC0xNiAxOTozNzowNi4wMDAwMDAwMDAgKzAyMDAKK0BA IC0wLDAgKzEsMjYgQEAKKysjIyBiYWNrZW5kcy9teXNxbCBzdWItZGlyZWN0b3J5CisraW5jbHVk ZSAkKHRvcF9zcmNkaXIpL01ha2VmaWxlLmNvbW1vbgorK2luY2x1ZGUgJChzcmNkaXIpL3NvdXJj ZXMubWsKKysKKytNQUlOVEFJTkVSQ0xFQU5GSUxFUyA9IE1ha2VmaWxlLmluCisrCisrU1VCRElS UyA9IC4gdGVzdAorKworK2lmIEhBVkVfTVlTUUwKKytsaWJfTFRMSUJSQVJJRVM9IGxpYnNvY2lf bXlzcWwubGEKKysKKytsaWJzb2NpX215c3FsX2xhX1NPVVJDRVM9ICQoYmNrX215c3FsX2hfc291 cmNlcykgJChiY2tfbXlzcWxfY2Nfc291cmNlcykgCisrbGlic29jaV9teXNxbF9sYV9DWFhGTEFH UyA9ICQoTVlTUUxfQ0ZMQUdTKQorK2xpYnNvY2lfbXlzcWxfbGFfTElCQUREID0KKytsaWJzb2Np X215c3FsX2xhX0xERkxBR1MgPSBcCisrCSQoQk9PU1RfTElCUykgJChCT09TVF9EQVRFX1RJTUVf TElCKSAkKEJPT1NUX1BST0dSQU1fT1BUSU9OU19MSUIpIFwKKysJLXZlcnNpb24taW5mbyAkKEdF TkVSSUNfTElCUkFSWV9WRVJTSU9OKQorKworK3BrZ2luY2x1ZGVfSEVBREVSUyA9ICQodG9wX3Ny Y2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9zb2NpLW15c3FsLmgKKytlbmRpZgorK2lmIFNPQ0lf SEVBREVSU19CVVJJRUQKKytzb2NpX2luY2x1ZGVfZGlyID0gJChpbmNsdWRlZGlyKS9zb2NpL2Jh Y2tlbmRzL215c3FsCisrZWxzZQorK3NvY2lfaW5jbHVkZV9kaXIgPSAkKGluY2x1ZGVkaXIpCisr ZW5kaWYKKytwa2dpbmNsdWRlZGlyID0gJChzb2NpX2luY2x1ZGVfZGlyKQorZGlmZiAtTnVyIHNv Y2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvbXlzcWwvTWFrZWZpbGUuYmFzaWMgc29jaS0z LjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvbXlzcWwvTWFrZWZpbGUuYmFzaWMKKy0tLSBzb2Np LTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL215c3FsL01ha2VmaWxlLmJhc2ljCTIwMTAtMDEt MjMgMTQ6NDU6NDQuMDAwMDAwMDAwICswMTAwCisrKysgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kv YmFja2VuZHMvbXlzcWwvTWFrZWZpbGUuYmFzaWMJMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAw MDAgKzAxMDAKK0BAIC0xLDk3ICswLDAgQEAKKy0jIFRoZSBmb2xsb3dpbmcgdmFyaWFibGVzIGFy ZSBzcGVjaWZpYyB0byB0aGlzIGJhY2tlbmQgYW5kIHRoZWlyIGNvcnJlY3QKKy0jIHZhbHVlcyBt aWdodCBkZXBlbmQgb24geW91ciBlbnZpcm9ubWVudCAtIGZlZWwgZnJlZSB0byBzZXQgaXQgYWNj b3JkaW5nbHkuCistCistTVlTUUxMSUJESVIgPSAtTC91c3IvbGliL215c3FsCistTVlTUUxMSUJT ID0gLWxteXNxbGNsaWVudCAtbHoKKy1NWVNRTElOQ0xVREVESVIgPSAtSS91c3IvaW5jbHVkZS9t eXNxbAorLQorLSMgVGhlIHJlc3Qgb2YgdGhlIE1ha2VmaWxlIGlzIGluZGVwZW5kZW50IG9mIHRo ZSB0YXJnZXQgZW52aXJvbm1lbnQuCistCistQ09NUElMRVIgPSBnKysKKy1DWFhGTEFHUyA9IC1X YWxsIC1wZWRhbnRpYyAtV25vLWxvbmctbG9uZworLUNYWEZMQUdTU08gPSAke0NYWEZMQUdTfSAt ZlBJQworLUlOQ0xVREVESVJTID0gLUkuLi8uLi9jb3JlICR7TVlTUUxJTkNMVURFRElSfQorLQor LQorLU9CSkVDVFMgPSBibG9iLm8gZmFjdG9yeS5vIHJvdy1pZC5vIHNlc3Npb24ubyBzdGFuZGFy ZC1pbnRvLXR5cGUubyBcCistCXN0YW5kYXJkLXVzZS10eXBlLm8gc3RhdGVtZW50Lm8gdmVjdG9y LWludG8tdHlwZS5vIHZlY3Rvci11c2UtdHlwZS5vIFwKKy0JY29tbW9uLm8KKy0KKy0KKy1PQkpF Q1RTU08gPSBibG9iLXMubyBmYWN0b3J5LXMubyByb3ctaWQtcy5vIHNlc3Npb24tcy5vIFwKKy0J c3RhbmRhcmQtaW50by10eXBlLXMubyBzdGFuZGFyZC11c2UtdHlwZS1zLm8gc3RhdGVtZW50LXMu byBcCistCXZlY3Rvci1pbnRvLXR5cGUtcy5vIHZlY3Rvci11c2UtdHlwZS1zLm8gY29tbW9uLXMu bworLQorLQorLWxpYnNvY2lfbXlzcWwuYSA6ICR7T0JKRUNUU30KKy0JYXIgcnYgJEAgJD8KKy0J cm0gKi5vCistCistCistYmxvYi5vIDogYmxvYi5jcHAKKy0JJHtDT01QSUxFUn0gLWMgJD8gJHtD WFhGTEFHU30gJHtJTkNMVURFRElSU30KKy0KKy1jb21tb24ubyA6IGNvbW1vbi5jcHAKKy0JJHtD T01QSUxFUn0gLWMgJD8gJHtDWFhGTEFHU30gJHtJTkNMVURFRElSU30KKy0KKy1mYWN0b3J5Lm8g OiBmYWN0b3J5LmNwcAorLQkke0NPTVBJTEVSfSAtYyAkPyAke0NYWEZMQUdTfSAke0lOQ0xVREVE SVJTfQorLQorLXJvdy1pZC5vIDogcm93LWlkLmNwcAorLQkke0NPTVBJTEVSfSAtYyAkPyAke0NY WEZMQUdTfSAke0lOQ0xVREVESVJTfQorLQorLXNlc3Npb24ubyA6IHNlc3Npb24uY3BwCistCSR7 Q09NUElMRVJ9IC1jICQ/ICR7Q1hYRkxBR1N9ICR7SU5DTFVERURJUlN9CistCistc3RhbmRhcmQt aW50by10eXBlLm8gOiBzdGFuZGFyZC1pbnRvLXR5cGUuY3BwCistCSR7Q09NUElMRVJ9IC1jICQ/ ICR7Q1hYRkxBR1N9ICR7SU5DTFVERURJUlN9CistCistc3RhbmRhcmQtdXNlLXR5cGUubyA6IHN0 YW5kYXJkLXVzZS10eXBlLmNwcAorLQkke0NPTVBJTEVSfSAtYyAkPyAke0NYWEZMQUdTfSAke0lO Q0xVREVESVJTfQorLQorLXN0YXRlbWVudC5vIDogc3RhdGVtZW50LmNwcAorLQkke0NPTVBJTEVS fSAtYyAkPyAke0NYWEZMQUdTfSAke0lOQ0xVREVESVJTfQorLQorLXZlY3Rvci1pbnRvLXR5cGUu byA6IHZlY3Rvci1pbnRvLXR5cGUuY3BwCistCSR7Q09NUElMRVJ9IC1jICQ/ICR7Q1hYRkxBR1N9 ICR7SU5DTFVERURJUlN9CistCistdmVjdG9yLXVzZS10eXBlLm8gOiB2ZWN0b3ItdXNlLXR5cGUu Y3BwCistCSR7Q09NUElMRVJ9IC1jICQ/ICR7Q1hYRkxBR1N9ICR7SU5DTFVERURJUlN9CistCist c2hhcmVkIDogJHtPQkpFQ1RTU099CistCSR7Q09NUElMRVJ9IC1zaGFyZWQgLW8gbGlic29jaV9t eXNxbC5zbyAke09CSkVDVFNTT30KKy0Jcm0gKi5vCistCistYmxvYi1zLm8gOiBibG9iLmNwcAor LQkke0NPTVBJTEVSfSAtYyAtbyAkQCAkPyAke0NYWEZMQUdTU099ICR7SU5DTFVERURJUlN9Cist CistY29tbW9uLXMubyA6IGNvbW1vbi5jcHAKKy0JJHtDT01QSUxFUn0gLWMgLW8gJEAgJD8gJHtD WFhGTEFHU1NPfSAke0lOQ0xVREVESVJTfQorLQorLWZhY3Rvcnktcy5vIDogZmFjdG9yeS5jcHAK Ky0JJHtDT01QSUxFUn0gLWMgLW8gJEAgJD8gJHtDWFhGTEFHU1NPfSAke0lOQ0xVREVESVJTfQor LQorLXJvdy1pZC1zLm8gOiByb3ctaWQuY3BwCistCSR7Q09NUElMRVJ9IC1jIC1vICRAICQ/ICR7 Q1hYRkxBR1NTT30gJHtJTkNMVURFRElSU30KKy0KKy1zZXNzaW9uLXMubyA6IHNlc3Npb24uY3Bw CistCSR7Q09NUElMRVJ9IC1jIC1vICRAICQ/ICR7Q1hYRkxBR1NTT30gJHtJTkNMVURFRElSU30K Ky0KKy1zdGFuZGFyZC1pbnRvLXR5cGUtcy5vIDogc3RhbmRhcmQtaW50by10eXBlLmNwcAorLQkk e0NPTVBJTEVSfSAtYyAtbyAkQCAkPyAke0NYWEZMQUdTU099ICR7SU5DTFVERURJUlN9CistCist c3RhbmRhcmQtdXNlLXR5cGUtcy5vIDogc3RhbmRhcmQtdXNlLXR5cGUuY3BwCistCSR7Q09NUElM RVJ9IC1jIC1vICRAICQ/ICR7Q1hYRkxBR1NTT30gJHtJTkNMVURFRElSU30KKy0KKy1zdGF0ZW1l bnQtcy5vIDogc3RhdGVtZW50LmNwcAorLQkke0NPTVBJTEVSfSAtYyAtbyAkQCAkPyAke0NYWEZM QUdTU099ICR7SU5DTFVERURJUlN9CistCistdmVjdG9yLWludG8tdHlwZS1zLm8gOiB2ZWN0b3It aW50by10eXBlLmNwcAorLQkke0NPTVBJTEVSfSAtYyAtbyAkQCAkPyAke0NYWEZMQUdTU099ICR7 SU5DTFVERURJUlN9CistCistdmVjdG9yLXVzZS10eXBlLXMubyA6IHZlY3Rvci11c2UtdHlwZS5j cHAKKy0JJHtDT01QSUxFUn0gLWMgLW8gJEAgJD8gJHtDWFhGTEFHU1NPfSAke0lOQ0xVREVESVJT fQorLQorLQorLWNsZWFuIDoKKy0Jcm0gLWYgbGlic29jaV9teXNxbC5hIGxpYnNvY2lfbXlzcWwu c28KK2RpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL215c3FsL01ha2Vm aWxlLmluIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL215c3FsL01ha2VmaWxlLmlu CistLS0gc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9teXNxbC9NYWtlZmlsZS5pbgkx OTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAorKysrIHNvY2ktMy4wLjBfdHJlcDMw MC9zb2NpL2JhY2tlbmRzL215c3FsL01ha2VmaWxlLmluCTIwMTAtMDEtMjMgMTQ6NDQ6NTEuMDAw MDAwMDAwICswMTAwCitAQCAtMCwwICsxLDg5OCBAQAorKyMgTWFrZWZpbGUuaW4gZ2VuZXJhdGVk IGJ5IGF1dG9tYWtlIDEuMTEuMSBmcm9tIE1ha2VmaWxlLmFtLgorKyMgQGNvbmZpZ3VyZV9pbnB1 dEAKKysKKysjIENvcHlyaWdodCAoQykgMTk5NCwgMTk5NSwgMTk5NiwgMTk5NywgMTk5OCwgMTk5 OSwgMjAwMCwgMjAwMSwgMjAwMiwKKysjIDIwMDMsIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIw MDgsIDIwMDkgIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwKKysjIEluYy4KKysjIFRoaXMgTWFr ZWZpbGUuaW4gaXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbgor KyMgZ2l2ZXMgdW5saW1pdGVkIHBlcm1pc3Npb24gdG8gY29weSBhbmQvb3IgZGlzdHJpYnV0ZSBp dCwKKysjIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb25zLCBhcyBsb25nIGFzIHRoaXMgbm90 aWNlIGlzIHByZXNlcnZlZC4KKysKKysjIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0 aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJB TlRZLCB0byB0aGUgZXh0ZW50IHBlcm1pdHRlZCBieSBsYXc7IHdpdGhvdXQKKysjIGV2ZW4gdGhl IGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEKKysj IFBBUlRJQ1VMQVIgUFVSUE9TRS4KKysKKytAU0VUX01BS0VACisrCisrCisrVlBBVEggPSBAc3Jj ZGlyQAorK3BrZ2RhdGFkaXIgPSAkKGRhdGFkaXIpL0BQQUNLQUdFQAorK3BrZ2xpYmRpciA9ICQo bGliZGlyKS9AUEFDS0FHRUAKKytwa2dsaWJleGVjZGlyID0gJChsaWJleGVjZGlyKS9AUEFDS0FH RUAKKythbV9fY2QgPSBDRFBBVEg9IiQke1pTSF9WRVJTSU9OKy59JChQQVRIX1NFUEFSQVRPUiki ICYmIGNkCisraW5zdGFsbF9zaF9EQVRBID0gJChpbnN0YWxsX3NoKSAtYyAtbSA2NDQKKytpbnN0 YWxsX3NoX1BST0dSQU0gPSAkKGluc3RhbGxfc2gpIC1jCisraW5zdGFsbF9zaF9TQ1JJUFQgPSAk KGluc3RhbGxfc2gpIC1jCisrSU5TVEFMTF9IRUFERVIgPSAkKElOU1RBTExfREFUQSkKKyt0cmFu c2Zvcm0gPSAkKHByb2dyYW1fdHJhbnNmb3JtX25hbWUpCisrTk9STUFMX0lOU1RBTEwgPSA6Cisr UFJFX0lOU1RBTEwgPSA6CisrUE9TVF9JTlNUQUxMID0gOgorK05PUk1BTF9VTklOU1RBTEwgPSA6 CisrUFJFX1VOSU5TVEFMTCA9IDoKKytQT1NUX1VOSU5TVEFMTCA9IDoKKytidWlsZF90cmlwbGV0 ID0gQGJ1aWxkQAorK2hvc3RfdHJpcGxldCA9IEBob3N0QAorK0RJU1RfQ09NTU9OID0gJChhbV9f cGtnaW5jbHVkZV9IRUFERVJTX0RJU1QpICQoc3JjZGlyKS9NYWtlZmlsZS5hbSBcCisrCSQoc3Jj ZGlyKS9NYWtlZmlsZS5pbiAkKHNyY2Rpcikvc291cmNlcy5tayBcCisrCSQodG9wX3NyY2Rpcikv TWFrZWZpbGUuY29tbW9uCisrc3ViZGlyID0gc29jaS9iYWNrZW5kcy9teXNxbAorK0FDTE9DQUxf TTQgPSAkKHRvcF9zcmNkaXIpL2FjbG9jYWwubTQKKythbV9fYWNsb2NhbF9tNF9kZXBzID0gJCh0 b3Bfc3JjZGlyKS9jb25maWcvYXhfYm9vc3QubTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9h eF9teXNxbC5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2F4X29yYWNsZV9vY2kubTQgXAor KwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9wb3N0Z3Jlc3FsLm00IFwKKysJJCh0b3Bfc3JjZGly KS9jb25maWcvY3BwdW5pdC5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2xpYnRvb2wubTQg XAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9sdG9wdGlvbnMubTQgXAorKwkkKHRvcF9zcmNkaXIp L2NvbmZpZy9sdHN1Z2FyLm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcvbHR2ZXJzaW9uLm00 IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcvbHR+b2Jzb2xldGUubTQgJCh0b3Bfc3JjZGlyKS9j b25maWd1cmUuYWMKKythbV9fY29uZmlndXJlX2RlcHMgPSAkKGFtX19hY2xvY2FsX200X2RlcHMp ICQoQ09ORklHVVJFX0RFUEVOREVOQ0lFUykgXAorKwkkKEFDTE9DQUxfTTQpCisrbWtpbnN0YWxs ZGlycyA9ICQoaW5zdGFsbF9zaCkgLWQKKytDT05GSUdfSEVBREVSID0gJCh0b3BfYnVpbGRkaXIp L3NvY2kvY29uZmlnLmgKKytDT05GSUdfQ0xFQU5fRklMRVMgPQorK0NPTkZJR19DTEVBTl9WUEFU SF9GSUxFUyA9CisrYW1fX3ZwYXRoX2Fkal9zZXR1cCA9IHNyY2RpcnN0cmlwPWBlY2hvICIkKHNy Y2RpcikiIHwgc2VkICdzfC58LnxnJ2A7CisrYW1fX3ZwYXRoX2FkaiA9IGNhc2UgJCRwIGluIFwK KysgICAgJChzcmNkaXIpLyopIGY9YGVjaG8gIiQkcCIgfCBzZWQgInN8XiQkc3JjZGlyc3RyaXAv fHwiYDs7IFwKKysgICAgKikgZj0kJHA7OyBcCisrICBlc2FjOworK2FtX19zdHJpcF9kaXIgPSBm PWBlY2hvICQkcCB8IHNlZCAtZSAnc3xeLiovfHwnYDsKKythbV9faW5zdGFsbF9tYXggPSA0MAor K2FtX19ub2Jhc2Vfc3RyaXBfc2V0dXAgPSBcCisrICBzcmNkaXJzdHJpcD1gZWNobyAiJChzcmNk aXIpIiB8IHNlZCAncy9bXS5bXiQkXFwqfF0vXFxcXCYvZydgCisrYW1fX25vYmFzZV9zdHJpcCA9 IFwKKysgIGZvciBwIGluICQkbGlzdDsgZG8gZWNobyAiJCRwIjsgZG9uZSB8IHNlZCAtZSAic3wk JHNyY2RpcnN0cmlwL3x8IgorK2FtX19ub2Jhc2VfbGlzdCA9ICQoYW1fX25vYmFzZV9zdHJpcF9z ZXR1cCk7IFwKKysgIGZvciBwIGluICQkbGlzdDsgZG8gZWNobyAiJCRwICQkcCI7IGRvbmUgfCBc CisrICBzZWQgInN8ICQkc3JjZGlyc3RyaXAvfCB8OyInIC8gLipcLy8hcy8gLiovIC4vOyBzLFwo IC4qXCkvW14vXSokJCxcMSwnIHwgXAorKyAgJChBV0spICdCRUdJTiB7IGZpbGVzWyIuIl0gPSAi IiB9IHsgZmlsZXNbJCQyXSA9IGZpbGVzWyQkMl0gIiAiICQkMTsgXAorKyAgICBpZiAoKytuWyQk Ml0gPT0gJChhbV9faW5zdGFsbF9tYXgpKSBcCisrICAgICAgeyBwcmludCAkJDIsIGZpbGVzWyQk Ml07IG5bJCQyXSA9IDA7IGZpbGVzWyQkMl0gPSAiIiB9IH0gXAorKyAgICBFTkQgeyBmb3IgKGRp ciBpbiBmaWxlcykgcHJpbnQgZGlyLCBmaWxlc1tkaXJdIH0nCisrYW1fX2Jhc2VfbGlzdCA9IFwK KysgIHNlZCAnJCQhTjskJCFOOyQkIU47JCQhTjskJCFOOyQkIU47JCQhTjtzL1xuLyAvZycgfCBc CisrICBzZWQgJyQkIU47JCQhTjskJCFOOyQkIU47cy9cbi8gL2cnCisrYW1fX2luc3RhbGxkaXJz ID0gIiQoREVTVERJUikkKGxpYmRpcikiICIkKERFU1RESVIpJChwa2dpbmNsdWRlZGlyKSIKKytM VExJQlJBUklFUyA9ICQobGliX0xUTElCUkFSSUVTKQorK2xpYnNvY2lfbXlzcWxfbGFfREVQRU5E RU5DSUVTID0KKythbV9fbGlic29jaV9teXNxbF9sYV9TT1VSQ0VTX0RJU1QgPSAgXAorKwkkKHRv cF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvY29tbW9uLmggXAorKwkkKHRvcF9zcmNkaXIp L3NvY2kvYmFja2VuZHMvbXlzcWwvc29jaS1teXNxbC5oIFwKKysJJCh0b3Bfc3JjZGlyKS9zb2Np L2JhY2tlbmRzL215c3FsL2Jsb2IuY3BwIFwKKysJJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRz L215c3FsL2NvbW1vbi5jcHAgXAorKwkkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwv ZmFjdG9yeS5jcHAgXAorKwkkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvcm93LWlk LmNwcCBcCisrCSQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9zZXNzaW9uLmNwcCBc CisrCSQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9zdGFuZGFyZC1pbnRvLXR5cGUu Y3BwIFwKKysJJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3N0YW5kYXJkLXVzZS10 eXBlLmNwcCBcCisrCSQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9zdGF0ZW1lbnQu Y3BwIFwKKysJJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3ZlY3Rvci1pbnRvLXR5 cGUuY3BwIFwKKysJJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3ZlY3Rvci11c2Ut dHlwZS5jcHAKKythbV9fb2JqZWN0c18xID0KKythbV9fb2JqZWN0c18yID0gbGlic29jaV9teXNx bF9sYS1ibG9iLmxvIGxpYnNvY2lfbXlzcWxfbGEtY29tbW9uLmxvIFwKKysJbGlic29jaV9teXNx bF9sYS1mYWN0b3J5LmxvIGxpYnNvY2lfbXlzcWxfbGEtcm93LWlkLmxvIFwKKysJbGlic29jaV9t eXNxbF9sYS1zZXNzaW9uLmxvIFwKKysJbGlic29jaV9teXNxbF9sYS1zdGFuZGFyZC1pbnRvLXR5 cGUubG8gXAorKwlsaWJzb2NpX215c3FsX2xhLXN0YW5kYXJkLXVzZS10eXBlLmxvIFwKKysJbGli c29jaV9teXNxbF9sYS1zdGF0ZW1lbnQubG8gXAorKwlsaWJzb2NpX215c3FsX2xhLXZlY3Rvci1p bnRvLXR5cGUubG8gXAorKwlsaWJzb2NpX215c3FsX2xhLXZlY3Rvci11c2UtdHlwZS5sbworK0BI QVZFX01ZU1FMX1RSVUVAYW1fbGlic29jaV9teXNxbF9sYV9PQkpFQ1RTID0gJChhbV9fb2JqZWN0 c18xKSBcCisrQEhBVkVfTVlTUUxfVFJVRUAJJChhbV9fb2JqZWN0c18yKQorK2xpYnNvY2lfbXlz cWxfbGFfT0JKRUNUUyA9ICQoYW1fbGlic29jaV9teXNxbF9sYV9PQkpFQ1RTKQorK2xpYnNvY2lf bXlzcWxfbGFfTElOSyA9ICQoTElCVE9PTCkgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSBc CisrCSQoTElCVE9PTEZMQUdTKSAtLW1vZGU9bGluayAkKENYWExEKSBcCisrCSQobGlic29jaV9t eXNxbF9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgXAorKwkkKGxpYnNvY2lfbXlzcWxfbGFfTERG TEFHUykgJChMREZMQUdTKSAtbyAkQAorK0BIQVZFX01ZU1FMX1RSVUVAYW1fbGlic29jaV9teXNx bF9sYV9ycGF0aCA9IC1ycGF0aCAkKGxpYmRpcikKKytERUZBVUxUX0lOQ0xVREVTID0gLUkuQGFt X19pc3JjQCAtSSQodG9wX2J1aWxkZGlyKS9zb2NpCisrZGVwY29tcCA9ICQoU0hFTEwpICQodG9w X3NyY2RpcikvY29uZmlnL2RlcGNvbXAKKythbV9fZGVwZmlsZXNfbWF5YmUgPSBkZXBmaWxlcwor K2FtX19tdiA9IG12IC1mCisrQ1hYQ09NUElMRSA9ICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9J TkNMVURFUykgJChJTkNMVURFUykgXAorKwkkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKEFN X0NYWEZMQUdTKSAkKENYWEZMQUdTKQorK0xUQ1hYQ09NUElMRSA9ICQoTElCVE9PTCkgLS10YWc9 Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgXAorKwktLW1vZGU9Y29tcGls ZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpIFwKKysJJChB TV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChBTV9DWFhGTEFHUykgJChDWFhGTEFHUykKKytDWFhM RCA9ICQoQ1hYKQorK0NYWExJTksgPSAkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xG TEFHUykgJChMSUJUT09MRkxBR1MpIFwKKysJLS1tb2RlPWxpbmsgJChDWFhMRCkgJChBTV9DWFhG TEFHUykgJChDWFhGTEFHUykgJChBTV9MREZMQUdTKSBcCisrCSQoTERGTEFHUykgLW8gJEAKKytD T01QSUxFID0gJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQo QU1fQ1BQRkxBR1MpIFwKKysJJChDUFBGTEFHUykgJChBTV9DRkxBR1MpICQoQ0ZMQUdTKQorK0xU Q09NUElMRSA9ICQoTElCVE9PTCkgLS10YWc9Q0MgJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9P TEZMQUdTKSBcCisrCS0tbW9kZT1jb21waWxlICQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xV REVTKSAkKElOQ0xVREVTKSBcCisrCSQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQoQU1fQ0ZM QUdTKSAkKENGTEFHUykKKytDQ0xEID0gJChDQykKKytMSU5LID0gJChMSUJUT09MKSAtLXRhZz1D QyAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIFwKKysJLS1tb2RlPWxpbmsgJChD Q0xEKSAkKEFNX0NGTEFHUykgJChDRkxBR1MpICQoQU1fTERGTEFHUykgXAorKwkkKExERkxBR1Mp IC1vICRACisrU09VUkNFUyA9ICQobGlic29jaV9teXNxbF9sYV9TT1VSQ0VTKQorK0RJU1RfU09V UkNFUyA9ICQoYW1fX2xpYnNvY2lfbXlzcWxfbGFfU09VUkNFU19ESVNUKQorK1JFQ1VSU0lWRV9U QVJHRVRTID0gYWxsLXJlY3Vyc2l2ZSBjaGVjay1yZWN1cnNpdmUgZHZpLXJlY3Vyc2l2ZSBcCisr CWh0bWwtcmVjdXJzaXZlIGluZm8tcmVjdXJzaXZlIGluc3RhbGwtZGF0YS1yZWN1cnNpdmUgXAor KwlpbnN0YWxsLWR2aS1yZWN1cnNpdmUgaW5zdGFsbC1leGVjLXJlY3Vyc2l2ZSBcCisrCWluc3Rh bGwtaHRtbC1yZWN1cnNpdmUgaW5zdGFsbC1pbmZvLXJlY3Vyc2l2ZSBcCisrCWluc3RhbGwtcGRm LXJlY3Vyc2l2ZSBpbnN0YWxsLXBzLXJlY3Vyc2l2ZSBpbnN0YWxsLXJlY3Vyc2l2ZSBcCisrCWlu c3RhbGxjaGVjay1yZWN1cnNpdmUgaW5zdGFsbGRpcnMtcmVjdXJzaXZlIHBkZi1yZWN1cnNpdmUg XAorKwlwcy1yZWN1cnNpdmUgdW5pbnN0YWxsLXJlY3Vyc2l2ZQorK2FtX19wa2dpbmNsdWRlX0hF QURFUlNfRElTVCA9ICBcCisrCSQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9zb2Np LW15c3FsLmgKKytIRUFERVJTID0gJChwa2dpbmNsdWRlX0hFQURFUlMpCisrUkVDVVJTSVZFX0NM RUFOX1RBUkdFVFMgPSBtb3N0bHljbGVhbi1yZWN1cnNpdmUgY2xlYW4tcmVjdXJzaXZlCVwKKysg IGRpc3RjbGVhbi1yZWN1cnNpdmUgbWFpbnRhaW5lci1jbGVhbi1yZWN1cnNpdmUKKytBTV9SRUNV UlNJVkVfVEFSR0VUUyA9ICQoUkVDVVJTSVZFX1RBUkdFVFM6LXJlY3Vyc2l2ZT0pIFwKKysJJChS RUNVUlNJVkVfQ0xFQU5fVEFSR0VUUzotcmVjdXJzaXZlPSkgdGFncyBUQUdTIGN0YWdzIENUQUdT IFwKKysJZGlzdGRpcgorK0VUQUdTID0gZXRhZ3MKKytDVEFHUyA9IGN0YWdzCisrRElTVF9TVUJE SVJTID0gJChTVUJESVJTKQorK0RJU1RGSUxFUyA9ICQoRElTVF9DT01NT04pICQoRElTVF9TT1VS Q0VTKSAkKFRFWElORk9TKSAkKEVYVFJBX0RJU1QpCisrYW1fX3JlbGF0aXZpemUgPSBcCisrICBk aXIwPWBwd2RgOyBcCisrICBzZWRfZmlyc3Q9J3MsXlwoW14vXSpcKS8uKiQkLFwxLCc7IFwKKysg IHNlZF9yZXN0PSdzLF5bXi9dKi8qLCwnOyBcCisrICBzZWRfbGFzdD0ncyxeLiovXChbXi9dKlwp JCQsXDEsJzsgXAorKyAgc2VkX2J1dGxhc3Q9J3MsLypbXi9dKiQkLCwnOyBcCisrICB3aGlsZSB0 ZXN0IC1uICIkJGRpcjEiOyBkbyBcCisrICAgIGZpcnN0PWBlY2hvICIkJGRpcjEiIHwgc2VkIC1l ICIkJHNlZF9maXJzdCJgOyBcCisrICAgIGlmIHRlc3QgIiQkZmlyc3QiICE9ICIuIjsgdGhlbiBc CisrICAgICAgaWYgdGVzdCAiJCRmaXJzdCIgPSAiLi4iOyB0aGVuIFwKKysgICAgICAgIGRpcjI9 YGVjaG8gIiQkZGlyMCIgfCBzZWQgLWUgIiQkc2VkX2xhc3QiYC8iJCRkaXIyIjsgXAorKyAgICAg ICAgZGlyMD1gZWNobyAiJCRkaXIwIiB8IHNlZCAtZSAiJCRzZWRfYnV0bGFzdCJgOyBcCisrICAg ICAgZWxzZSBcCisrICAgICAgICBmaXJzdDI9YGVjaG8gIiQkZGlyMiIgfCBzZWQgLWUgIiQkc2Vk X2ZpcnN0ImA7IFwKKysgICAgICAgIGlmIHRlc3QgIiQkZmlyc3QyIiA9ICIkJGZpcnN0IjsgdGhl biBcCisrICAgICAgICAgIGRpcjI9YGVjaG8gIiQkZGlyMiIgfCBzZWQgLWUgIiQkc2VkX3Jlc3Qi YDsgXAorKyAgICAgICAgZWxzZSBcCisrICAgICAgICAgIGRpcjI9Ii4uLyQkZGlyMiI7IFwKKysg ICAgICAgIGZpOyBcCisrICAgICAgICBkaXIwPSIkJGRpcjAiLyIkJGZpcnN0IjsgXAorKyAgICAg IGZpOyBcCisrICAgIGZpOyBcCisrICAgIGRpcjE9YGVjaG8gIiQkZGlyMSIgfCBzZWQgLWUgIiQk c2VkX3Jlc3QiYDsgXAorKyAgZG9uZTsgXAorKyAgcmVsZGlyPSIkJGRpcjIiCisrcGtnaW5jbHVk ZWRpciA9ICQoc29jaV9pbmNsdWRlX2RpcikKKytBQ0xPQ0FMID0gQEFDTE9DQUxACisrQU1UQVIg PSBAQU1UQVJACisrQVIgPSBAQVJACisrQVVUT0NPTkYgPSBAQVVUT0NPTkZACisrQVVUT0hFQURF UiA9IEBBVVRPSEVBREVSQAorK0FVVE9NQUtFID0gQEFVVE9NQUtFQAorK0FXSyA9IEBBV0tACisr Qk9PU1RfQ0ZMQUdTID0gQEJPT1NUX0NGTEFHU0AKKytCT09TVF9EQVRFX1RJTUVfTElCID0gQEJP T1NUX0RBVEVfVElNRV9MSUJACisrQk9PU1RfRklMRVNZU1RFTV9MSUIgPSBAQk9PU1RfRklMRVNZ U1RFTV9MSUJACisrQk9PU1RfSU9TVFJFQU1TX0xJQiA9IEBCT09TVF9JT1NUUkVBTVNfTElCQAor K0JPT1NUX0xJQlMgPSBAQk9PU1RfTElCU0AKKytCT09TVF9NUElfTElCID0gQEJPT1NUX01QSV9M SUJACisrQk9PU1RfTVBJX1BZVEhPTl9MSUIgPSBAQk9PU1RfTVBJX1BZVEhPTl9MSUJACisrQk9P U1RfUFJPR1JBTV9PUFRJT05TX0xJQiA9IEBCT09TVF9QUk9HUkFNX09QVElPTlNfTElCQAorK0JP T1NUX1BZVEhPTl9MSUIgPSBAQk9PU1RfUFlUSE9OX0xJQkAKKytCT09TVF9SRUdFWF9MSUIgPSBA Qk9PU1RfUkVHRVhfTElCQAorK0JPT1NUX1NFUklBTElaQVRJT05fTElCID0gQEJPT1NUX1NFUklB TElaQVRJT05fTElCQAorK0JPT1NUX1NJR05BTFNfTElCID0gQEJPT1NUX1NJR05BTFNfTElCQAor K0JPT1NUX1NZU1RFTV9MSUIgPSBAQk9PU1RfU1lTVEVNX0xJQkAKKytCT09TVF9USFJFQURfTElC ID0gQEJPT1NUX1RIUkVBRF9MSUJACisrQk9PU1RfVU5JVF9URVNUX0ZSQU1FV09SS19MSUIgPSBA Qk9PU1RfVU5JVF9URVNUX0ZSQU1FV09SS19MSUJACisrQk9PU1RfVkVSU0lPTiA9IEBCT09TVF9W RVJTSU9OQAorK0JPT1NUX1dTRVJJQUxJWkFUSU9OX0xJQiA9IEBCT09TVF9XU0VSSUFMSVpBVElP Tl9MSUJACisrQ0MgPSBAQ0NACisrQ0NERVBNT0RFID0gQENDREVQTU9ERUAKKytDRkxBR1MgPSBA Q0ZMQUdTQAorK0NQUCA9IEBDUFBACisrQ1BQRkxBR1MgPSBAQ1BQRkxBR1NACisrQ1BQVU5JVF9D RkxBR1MgPSBAQ1BQVU5JVF9DRkxBR1NACisrQ1BQVU5JVF9DT05GSUcgPSBAQ1BQVU5JVF9DT05G SUdACisrQ1BQVU5JVF9MSUJTID0gQENQUFVOSVRfTElCU0AKKytDUFBVTklUX1ZFUlNJT04gPSBA Q1BQVU5JVF9WRVJTSU9OQAorK0NYWCA9IEBDWFhACisrQ1hYQ1BQID0gQENYWENQUEAKKytDWFhE RVBNT0RFID0gQENYWERFUE1PREVACisrQ1hYRkxBR1MgPSBAQ1hYRkxBR1NACisrQ1lHUEFUSF9X ID0gQENZR1BBVEhfV0AKKytERUZTID0gQERFRlNACisrREVQRElSID0gQERFUERJUkAKKytEU1lN VVRJTCA9IEBEU1lNVVRJTEAKKytEVU1QQklOID0gQERVTVBCSU5ACisrRUNIT19DID0gQEVDSE9f Q0AKKytFQ0hPX04gPSBARUNIT19OQAorK0VDSE9fVCA9IEBFQ0hPX1RACisrRUdSRVAgPSBARUdS RVBACisrRVhFRVhUID0gQEVYRUVYVEAKKytGR1JFUCA9IEBGR1JFUEAKKytHRU5FUklDX0xJQlJB UllfVkVSU0lPTiA9IEBHRU5FUklDX0xJQlJBUllfVkVSU0lPTkAKKytHUkVQID0gQEdSRVBACisr SU5TVEFMTCA9IEBJTlNUQUxMQAorK0lOU1RBTExfREFUQSA9IEBJTlNUQUxMX0RBVEFACisrSU5T VEFMTF9QUk9HUkFNID0gQElOU1RBTExfUFJPR1JBTUAKKytJTlNUQUxMX1NDUklQVCA9IEBJTlNU QUxMX1NDUklQVEAKKytJTlNUQUxMX1NUUklQX1BST0dSQU0gPSBASU5TVEFMTF9TVFJJUF9QUk9H UkFNQAorK0xEID0gQExEQAorK0xERkxBR1MgPSBATERGTEFHU0AKKytMSUJPQkpTID0gQExJQk9C SlNACisrTElCUyA9IEBMSUJTQAorK0xJQlRPT0wgPSBATElCVE9PTEAKKytMSVBPID0gQExJUE9A CisrTE5fUyA9IEBMTl9TQAorK0xUTElCT0JKUyA9IEBMVExJQk9CSlNACisrTUFLRUlORk8gPSBA TUFLRUlORk9ACisrTUtESVJfUCA9IEBNS0RJUl9QQAorK01ZU1FMX0NGTEFHUyA9IEBNWVNRTF9D RkxBR1NACisrTVlTUUxfQ19MSUIgPSBATVlTUUxfQ19MSUJACisrTVlTUUxfRElSUyA9IEBNWVNR TF9ESVJTQAorK01ZU1FMX0xJQlMgPSBATVlTUUxfTElCU0AKKytNWVNRTF9WRVJTSU9OID0gQE1Z U1FMX1ZFUlNJT05ACisrTk0gPSBATk1ACisrTk1FRElUID0gQE5NRURJVEAKKytPQkpEVU1QID0g QE9CSkRVTVBACisrT0JKRVhUID0gQE9CSkVYVEAKKytPUkFDTEVfRElSUyA9IEBPUkFDTEVfRElS U0AKKytPUkFDTEVfT0NJX0NGTEFHUyA9IEBPUkFDTEVfT0NJX0NGTEFHU0AKKytPUkFDTEVfT0NJ X0xERkxBR1MgPSBAT1JBQ0xFX09DSV9MREZMQUdTQAorK09SQUNMRV9PQ0lfVkVSU0lPTiA9IEBP UkFDTEVfT0NJX1ZFUlNJT05ACisrT1RPT0wgPSBAT1RPT0xACisrT1RPT0w2NCA9IEBPVE9PTDY0 QAorK1BBQ0tBR0UgPSBAUEFDS0FHRUAKKytQQUNLQUdFX0JVR1JFUE9SVCA9IEBQQUNLQUdFX0JV R1JFUE9SVEAKKytQQUNLQUdFX05BTUUgPSBAUEFDS0FHRV9OQU1FQAorK1BBQ0tBR0VfU1RSSU5H ID0gQFBBQ0tBR0VfU1RSSU5HQAorK1BBQ0tBR0VfVEFSTkFNRSA9IEBQQUNLQUdFX1RBUk5BTUVA CisrUEFDS0FHRV9WRVJTSU9OID0gQFBBQ0tBR0VfVkVSU0lPTkAKKytQQVRIX1NFUEFSQVRPUiA9 IEBQQVRIX1NFUEFSQVRPUkAKKytQRVJMID0gQFBFUkxACisrUEdfQ09ORklHID0gQFBHX0NPTkZJ R0AKKytQT1NUR1JFU1FMX0NGTEFHUyA9IEBQT1NUR1JFU1FMX0NGTEFHU0AKKytQT1NUR1JFU1FM X0RJUlMgPSBAUE9TVEdSRVNRTF9ESVJTQAorK1BPU1RHUkVTUUxfTERGTEFHUyA9IEBQT1NUR1JF U1FMX0xERkxBR1NACisrUE9TVEdSRVNRTF9WRVJTSU9OID0gQFBPU1RHUkVTUUxfVkVSU0lPTkAK KytSQU5MSUIgPSBAUkFOTElCQAorK1JQTV9SRUxFQVNFID0gQFJQTV9SRUxFQVNFQAorK1NFRCA9 IEBTRURACisrU0VUX01BS0UgPSBAU0VUX01BS0VACisrU0hFTEwgPSBAU0hFTExACisrU09DSV9I RUFERVJTX0JVUklFRCA9IEBTT0NJX0hFQURFUlNfQlVSSUVEQAorK1NPQ0lfTVlTUUxfSEVBREVS U19CVVJJRUQgPSBAU09DSV9NWVNRTF9IRUFERVJTX0JVUklFREAKKytTT0NJX1BPU1RHUkVTUUxf SEVBREVSU19CVVJJRUQgPSBAU09DSV9QT1NUR1JFU1FMX0hFQURFUlNfQlVSSUVEQAorK1NUUklQ ID0gQFNUUklQQAorK1VQTE9BRF9DT01NQU5EID0gQFVQTE9BRF9DT01NQU5EQAorK1ZFUlNJT04g PSBAVkVSU0lPTkAKKythYnNfYnVpbGRkaXIgPSBAYWJzX2J1aWxkZGlyQAorK2Fic19zcmNkaXIg PSBAYWJzX3NyY2RpckAKKythYnNfdG9wX2J1aWxkZGlyID0gQGFic190b3BfYnVpbGRkaXJACisr YWJzX3RvcF9zcmNkaXIgPSBAYWJzX3RvcF9zcmNkaXJACisrYWNfY3RfQ0MgPSBAYWNfY3RfQ0NA CisrYWNfY3RfQ1hYID0gQGFjX2N0X0NYWEAKKythY19jdF9EVU1QQklOID0gQGFjX2N0X0RVTVBC SU5ACisrYW1fX2luY2x1ZGUgPSBAYW1fX2luY2x1ZGVACisrYW1fX2xlYWRpbmdfZG90ID0gQGFt X19sZWFkaW5nX2RvdEAKKythbV9fcXVvdGUgPSBAYW1fX3F1b3RlQAorK2FtX190YXIgPSBAYW1f X3RhckAKKythbV9fdW50YXIgPSBAYW1fX3VudGFyQAorK2JpbmRpciA9IEBiaW5kaXJACisrYnVp bGQgPSBAYnVpbGRACisrYnVpbGRfYWxpYXMgPSBAYnVpbGRfYWxpYXNACisrYnVpbGRfY3B1ID0g QGJ1aWxkX2NwdUAKKytidWlsZF9vcyA9IEBidWlsZF9vc0AKKytidWlsZF92ZW5kb3IgPSBAYnVp bGRfdmVuZG9yQAorK2J1aWxkZGlyID0gQGJ1aWxkZGlyQAorK2RhdGFkaXIgPSBAZGF0YWRpckAK KytkYXRhcm9vdGRpciA9IEBkYXRhcm9vdGRpckAKKytkaWZmX29rID0gQGRpZmZfb2tACisrZG9j ZGlyID0gQGRvY2RpckAKKytkb3h5Z2VuX29rID0gQGRveHlnZW5fb2tACisrZHZpZGlyID0gQGR2 aWRpckAKKytkdmlwc19vayA9IEBkdmlwc19va0AKKytleGVjX3ByZWZpeCA9IEBleGVjX3ByZWZp eEAKKytnc19vayA9IEBnc19va0AKKytob3N0ID0gQGhvc3RACisraG9zdF9hbGlhcyA9IEBob3N0 X2FsaWFzQAorK2hvc3RfY3B1ID0gQGhvc3RfY3B1QAorK2hvc3Rfb3MgPSBAaG9zdF9vc0AKKyto b3N0X3ZlbmRvciA9IEBob3N0X3ZlbmRvckAKKytodG1sZGlyID0gQGh0bWxkaXJACisraW5jbHVk ZWRpciA9IEBpbmNsdWRlZGlyQAorK2luZm9kaXIgPSBAaW5mb2RpckAKKytpbnN0YWxsX3NoID0g QGluc3RhbGxfc2hACisrbGF0ZXhfb2sgPSBAbGF0ZXhfb2tACisrbGliZGlyID0gQGxpYmRpckAK KytsaWJleGVjZGlyID0gQGxpYmV4ZWNkaXJACisrbG9jYWxlZGlyID0gQGxvY2FsZWRpckAKKyts b2NhbHN0YXRlZGlyID0gQGxvY2Fsc3RhdGVkaXJACisrbHRfRUNITyA9IEBsdF9FQ0hPQAorK21h bmRpciA9IEBtYW5kaXJACisrbWtkaXJfcCA9IEBta2Rpcl9wQAorK29sZGluY2x1ZGVkaXIgPSBA b2xkaW5jbHVkZWRpckAKKytwZGZkaXIgPSBAcGRmZGlyQAorK3ByZWZpeCA9IEBwcmVmaXhACisr cHJvZ3JhbV90cmFuc2Zvcm1fbmFtZSA9IEBwcm9ncmFtX3RyYW5zZm9ybV9uYW1lQAorK3BzZGly ID0gQHBzZGlyQAorK3NiaW5kaXIgPSBAc2JpbmRpckAKKytzZWRfb2sgPSBAc2VkX29rQAorK3No YXJlZHN0YXRlZGlyID0gQHNoYXJlZHN0YXRlZGlyQAorK3NyY2RpciA9IEBzcmNkaXJACisrc3lz Y29uZmRpciA9IEBzeXNjb25mZGlyQAorK3RhcmdldF9hbGlhcyA9IEB0YXJnZXRfYWxpYXNACisr dG9wX2J1aWxkX3ByZWZpeCA9IEB0b3BfYnVpbGRfcHJlZml4QAorK3RvcF9idWlsZGRpciA9IEB0 b3BfYnVpbGRkaXJACisrdG9wX3NyY2RpciA9IEB0b3Bfc3JjZGlyQAorK0FNX0NQUEZMQUdTID0g LUkkKHRvcF9idWlsZGRpcikgLUkkKHRvcF9zcmNkaXIpCisrYmNrX215c3FsX2hfc291cmNlcyA9 IFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9jb21tb24uaCBc CisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvc29jaS1teXNxbC5o CisrCisrYmNrX215c3FsX2NjX3NvdXJjZXMgPSBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3Nv Y2kvYmFja2VuZHMvbXlzcWwvYmxvYi5jcHAgXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2Np L2JhY2tlbmRzL215c3FsL2NvbW1vbi5jcHAgXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2Np L2JhY2tlbmRzL215c3FsL2ZhY3RvcnkuY3BwIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29j aS9iYWNrZW5kcy9teXNxbC9yb3ctaWQuY3BwIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29j aS9iYWNrZW5kcy9teXNxbC9zZXNzaW9uLmNwcCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3Nv Y2kvYmFja2VuZHMvbXlzcWwvc3RhbmRhcmQtaW50by10eXBlLmNwcCBcCisrICAgICAgICAkKHRv cF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvc3RhbmRhcmQtdXNlLXR5cGUuY3BwIFwKKysg ICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9zdGF0ZW1lbnQuY3BwIFwK KysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC92ZWN0b3ItaW50by10 eXBlLmNwcCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvdmVj dG9yLXVzZS10eXBlLmNwcAorKworK01BSU5UQUlORVJDTEVBTkZJTEVTID0gTWFrZWZpbGUuaW4K KytTVUJESVJTID0gLiB0ZXN0CisrQEhBVkVfTVlTUUxfVFJVRUBsaWJfTFRMSUJSQVJJRVMgPSBs aWJzb2NpX215c3FsLmxhCisrQEhBVkVfTVlTUUxfVFJVRUBsaWJzb2NpX215c3FsX2xhX1NPVVJD RVMgPSAkKGJja19teXNxbF9oX3NvdXJjZXMpICQoYmNrX215c3FsX2NjX3NvdXJjZXMpIAorK0BI QVZFX01ZU1FMX1RSVUVAbGlic29jaV9teXNxbF9sYV9DWFhGTEFHUyA9ICQoTVlTUUxfQ0ZMQUdT KQorK0BIQVZFX01ZU1FMX1RSVUVAbGlic29jaV9teXNxbF9sYV9MSUJBREQgPSAKKytASEFWRV9N WVNRTF9UUlVFQGxpYnNvY2lfbXlzcWxfbGFfTERGTEFHUyA9IFwKKytASEFWRV9NWVNRTF9UUlVF QAkkKEJPT1NUX0xJQlMpICQoQk9PU1RfREFURV9USU1FX0xJQikgJChCT09TVF9QUk9HUkFNX09Q VElPTlNfTElCKSBcCisrQEhBVkVfTVlTUUxfVFJVRUAJLXZlcnNpb24taW5mbyAkKEdFTkVSSUNf TElCUkFSWV9WRVJTSU9OKQorKworK0BIQVZFX01ZU1FMX1RSVUVAcGtnaW5jbHVkZV9IRUFERVJT ID0gJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3NvY2ktbXlzcWwuaAorK0BTT0NJ X0hFQURFUlNfQlVSSUVEX0ZBTFNFQHNvY2lfaW5jbHVkZV9kaXIgPSAkKGluY2x1ZGVkaXIpCisr QFNPQ0lfSEVBREVSU19CVVJJRURfVFJVRUBzb2NpX2luY2x1ZGVfZGlyID0gJChpbmNsdWRlZGly KS9zb2NpL2JhY2tlbmRzL215c3FsCisrYWxsOiBhbGwtcmVjdXJzaXZlCisrCisrLlNVRkZJWEVT OgorKy5TVUZGSVhFUzogLmNwcCAubG8gLm8gLm9iagorKyQoc3JjZGlyKS9NYWtlZmlsZS5pbjog ICQoc3JjZGlyKS9NYWtlZmlsZS5hbSAkKHRvcF9zcmNkaXIpL01ha2VmaWxlLmNvbW1vbiAkKHNy Y2Rpcikvc291cmNlcy5tayAkKGFtX19jb25maWd1cmVfZGVwcykKKysJQGZvciBkZXAgaW4gJD87 IGRvIFwKKysJICBjYXNlICckKGFtX19jb25maWd1cmVfZGVwcyknIGluIFwKKysJICAgICokJGRl cCopIFwKKysJICAgICAgKCBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VG TEFHUykgYW0tLXJlZnJlc2ggKSBcCisrCSAgICAgICAgJiYgeyBpZiB0ZXN0IC1mICRAOyB0aGVu IGV4aXQgMDsgZWxzZSBicmVhazsgZmk7IH07IFwKKysJICAgICAgZXhpdCAxOzsgXAorKwkgIGVz YWM7IFwKKysJZG9uZTsgXAorKwllY2hvICcgY2QgJCh0b3Bfc3JjZGlyKSAmJiAkKEFVVE9NQUtF KSAtLWdudSBzb2NpL2JhY2tlbmRzL215c3FsL01ha2VmaWxlJzsgXAorKwkkKGFtX19jZCkgJCh0 b3Bfc3JjZGlyKSAmJiBcCisrCSAgJChBVVRPTUFLRSkgLS1nbnUgc29jaS9iYWNrZW5kcy9teXNx bC9NYWtlZmlsZQorKy5QUkVDSU9VUzogTWFrZWZpbGUKKytNYWtlZmlsZTogJChzcmNkaXIpL01h a2VmaWxlLmluICQodG9wX2J1aWxkZGlyKS9jb25maWcuc3RhdHVzCisrCUBjYXNlICckPycgaW4g XAorKwkgICpjb25maWcuc3RhdHVzKikgXAorKwkgICAgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQo TUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoOzsgXAorKwkgICopIFwKKysJICAgIGVj aG8gJyBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChTSEVMTCkgLi9jb25maWcuc3RhdHVzICQoc3Vi ZGlyKS8kQCAkKGFtX19kZXBmaWxlc19tYXliZSknOyBcCisrCSAgICBjZCAkKHRvcF9idWlsZGRp cikgJiYgJChTSEVMTCkgLi9jb25maWcuc3RhdHVzICQoc3ViZGlyKS8kQCAkKGFtX19kZXBmaWxl c19tYXliZSk7OyBcCisrCWVzYWM7CisrCisrJCh0b3BfYnVpbGRkaXIpL2NvbmZpZy5zdGF0dXM6 ICQodG9wX3NyY2RpcikvY29uZmlndXJlICQoQ09ORklHX1NUQVRVU19ERVBFTkRFTkNJRVMpCisr CWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVz aAorKworKyQodG9wX3NyY2RpcikvY29uZmlndXJlOiAgJChhbV9fY29uZmlndXJlX2RlcHMpCisr CWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVz aAorKyQoQUNMT0NBTF9NNCk6ICAkKGFtX19hY2xvY2FsX200X2RlcHMpCisrCWNkICQodG9wX2J1 aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaAorKyQoYW1fX2Fj bG9jYWxfbTRfZGVwcyk6CisraW5zdGFsbC1saWJMVExJQlJBUklFUzogJChsaWJfTFRMSUJSQVJJ RVMpCisrCUAkKE5PUk1BTF9JTlNUQUxMKQorKwl0ZXN0IC16ICIkKGxpYmRpcikiIHx8ICQoTUtE SVJfUCkgIiQoREVTVERJUikkKGxpYmRpcikiCisrCUBsaXN0PSckKGxpYl9MVExJQlJBUklFUykn OyB0ZXN0IC1uICIkKGxpYmRpcikiIHx8IGxpc3Q9OyBcCisrCWxpc3QyPTsgZm9yIHAgaW4gJCRs aXN0OyBkbyBcCisrCSAgaWYgdGVzdCAtZiAkJHA7IHRoZW4gXAorKwkgICAgbGlzdDI9IiQkbGlz dDIgJCRwIjsgXAorKwkgIGVsc2UgOjsgZmk7IFwKKysJZG9uZTsgXAorKwl0ZXN0IC16ICIkJGxp c3QyIiB8fCB7IFwKKysJICBlY2hvICIgJChMSUJUT09MKSAkKEFNX0xJQlRPT0xGTEFHUykgJChM SUJUT09MRkxBR1MpIC0tbW9kZT1pbnN0YWxsICQoSU5TVEFMTCkgJChJTlNUQUxMX1NUUklQX0ZM QUcpICQkbGlzdDIgJyQoREVTVERJUikkKGxpYmRpciknIjsgXAorKwkgICQoTElCVE9PTCkgJChB TV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9aW5zdGFsbCAkKElOU1RBTEwp ICQoSU5TVEFMTF9TVFJJUF9GTEFHKSAkJGxpc3QyICIkKERFU1RESVIpJChsaWJkaXIpIjsgXAor Kwl9CisrCisrdW5pbnN0YWxsLWxpYkxUTElCUkFSSUVTOgorKwlAJChOT1JNQUxfVU5JTlNUQUxM KQorKwlAbGlzdD0nJChsaWJfTFRMSUJSQVJJRVMpJzsgdGVzdCAtbiAiJChsaWJkaXIpIiB8fCBs aXN0PTsgXAorKwlmb3IgcCBpbiAkJGxpc3Q7IGRvIFwKKysJICAkKGFtX19zdHJpcF9kaXIpIFwK KysJICBlY2hvICIgJChMSUJUT09MKSAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1Mp IC0tbW9kZT11bmluc3RhbGwgcm0gLWYgJyQoREVTVERJUikkKGxpYmRpcikvJCRmJyI7IFwKKysJ ICAkKExJQlRPT0wpICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPXVu aW5zdGFsbCBybSAtZiAiJChERVNURElSKSQobGliZGlyKS8kJGYiOyBcCisrCWRvbmUKKysKKytj bGVhbi1saWJMVExJQlJBUklFUzoKKysJLXRlc3QgLXogIiQobGliX0xUTElCUkFSSUVTKSIgfHwg cm0gLWYgJChsaWJfTFRMSUJSQVJJRVMpCisrCUBsaXN0PSckKGxpYl9MVExJQlJBUklFUyknOyBm b3IgcCBpbiAkJGxpc3Q7IGRvIFwKKysJICBkaXI9ImBlY2hvICQkcCB8IHNlZCAtZSAnc3wvW14v XSokJHx8J2AiOyBcCisrCSAgdGVzdCAiJCRkaXIiICE9ICIkJHAiIHx8IGRpcj0uOyBcCisrCSAg ZWNobyAicm0gLWYgXCIkJHtkaXJ9L3NvX2xvY2F0aW9uc1wiIjsgXAorKwkgIHJtIC1mICIkJHtk aXJ9L3NvX2xvY2F0aW9ucyI7IFwKKysJZG9uZQorK2xpYnNvY2lfbXlzcWwubGE6ICQobGlic29j aV9teXNxbF9sYV9PQkpFQ1RTKSAkKGxpYnNvY2lfbXlzcWxfbGFfREVQRU5ERU5DSUVTKSAKKysJ JChsaWJzb2NpX215c3FsX2xhX0xJTkspICQoYW1fbGlic29jaV9teXNxbF9sYV9ycGF0aCkgJChs aWJzb2NpX215c3FsX2xhX09CSkVDVFMpICQobGlic29jaV9teXNxbF9sYV9MSUJBREQpICQoTElC UykKKysKKyttb3N0bHljbGVhbi1jb21waWxlOgorKwktcm0gLWYgKi4kKE9CSkVYVCkKKysKKytk aXN0Y2xlYW4tY29tcGlsZToKKysJLXJtIC1mICoudGFiLmMKKysKKytAQU1ERVBfVFJVRUBAYW1f X2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvbGlic29jaV9teXNxbF9sYS1ibG9iLlBs b0BhbV9fcXVvdGVACisrQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChE RVBESVIpL2xpYnNvY2lfbXlzcWxfbGEtY29tbW9uLlBsb0BhbV9fcXVvdGVACisrQEFNREVQX1RS VUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL2xpYnNvY2lfbXlzcWxfbGEt ZmFjdG9yeS5QbG9AYW1fX3F1b3RlQAorK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19x dW90ZUAuLyQoREVQRElSKS9saWJzb2NpX215c3FsX2xhLXJvdy1pZC5QbG9AYW1fX3F1b3RlQAor K0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9saWJzb2Np X215c3FsX2xhLXNlc3Npb24uUGxvQGFtX19xdW90ZUAKKytAQU1ERVBfVFJVRUBAYW1fX2luY2x1 ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvbGlic29jaV9teXNxbF9sYS1zdGFuZGFyZC1pbnRv LXR5cGUuUGxvQGFtX19xdW90ZUAKKytAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVv dGVALi8kKERFUERJUikvbGlic29jaV9teXNxbF9sYS1zdGFuZGFyZC11c2UtdHlwZS5QbG9AYW1f X3F1b3RlQAorK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElS KS9saWJzb2NpX215c3FsX2xhLXN0YXRlbWVudC5QbG9AYW1fX3F1b3RlQAorK0BBTURFUF9UUlVF QEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9saWJzb2NpX215c3FsX2xhLXZl Y3Rvci1pbnRvLXR5cGUuUGxvQGFtX19xdW90ZUAKKytAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVA IEBhbV9fcXVvdGVALi8kKERFUERJUikvbGlic29jaV9teXNxbF9sYS12ZWN0b3ItdXNlLXR5cGUu UGxvQGFtX19xdW90ZUAKKysKKysuY3BwLm86CisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoQ1hY Q09NUElMRSkgLU1UICRAIC1NRCAtTVAgLU1GICQoREVQRElSKS8kKi5UcG8gLWMgLW8gJEAgJDwK KytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChhbV9fbXYpICQoREVQRElSKS8kKi5UcG8gJChERVBE SVIpLyQqLlBvCisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQ8 JyBvYmplY3Q9JyRAJyBsaWJ0b29sPW5vIEBBTURFUEJBQ0tTTEFTSEAKKytAQU1ERVBfVFJVRUBA YW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDWFhERVBNT0RFKSAkKGRl cGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKKytAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQoQ1hYQ09N UElMRSkgLWMgLW8gJEAgJDwKKysKKysuY3BwLm9iajoKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJ JChDWFhDT01QSUxFKSAtTVQgJEAgLU1EIC1NUCAtTUYgJChERVBESVIpLyQqLlRwbyAtYyAtbyAk QCBgJChDWUdQQVRIX1cpICckPCdgCisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoYW1fX212KSAk KERFUERJUikvJCouVHBvICQoREVQRElSKS8kKi5QbworK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRl cENYWF9GQUxTRUAJc291cmNlPSckPCcgb2JqZWN0PSckQCcgbGlidG9vbD1ubyBAQU1ERVBCQUNL U0xBU0hACisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBE SVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACisrQGFtX19mYXN0 ZGVwQ1hYX0ZBTFNFQAkkKENYWENPTVBJTEUpIC1jIC1vICRAIGAkKENZR1BBVEhfVykgJyQ8J2AK KysKKysuY3BwLmxvOgorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKExUQ1hYQ09NUElMRSkgLU1U ICRAIC1NRCAtTVAgLU1GICQoREVQRElSKS8kKi5UcG8gLWMgLW8gJEAgJDwKKytAYW1fX2Zhc3Rk ZXBDWFhfVFJVRUAJJChhbV9fbXYpICQoREVQRElSKS8kKi5UcG8gJChERVBESVIpLyQqLlBsbwor K0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSckPCcgb2JqZWN0PSck QCcgbGlidG9vbD15ZXMgQEFNREVQQkFDS1NMQVNIQAorK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRl cENYWF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFN REVQQkFDS1NMQVNIQAorK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChMVENYWENPTVBJTEUpIC1j IC1vICRAICQ8CisrCisrbGlic29jaV9teXNxbF9sYS1ibG9iLmxvOiAkKHRvcF9zcmNkaXIpL3Nv Y2kvYmFja2VuZHMvbXlzcWwvYmxvYi5jcHAKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChMSUJU T09MKSAgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2Rl PWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAk KEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfbXlzcWxfbGFfQ1hYRkxBR1MpICQo Q1hYRkxBR1MpIC1NVCBsaWJzb2NpX215c3FsX2xhLWJsb2IubG8gLU1EIC1NUCAtTUYgJChERVBE SVIpL2xpYnNvY2lfbXlzcWxfbGEtYmxvYi5UcG8gLWMgLW8gbGlic29jaV9teXNxbF9sYS1ibG9i LmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvYmxvYi5jcHAn IHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9i bG9iLmNwcAorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKGFtX19tdikgJChERVBESVIpL2xpYnNv Y2lfbXlzcWxfbGEtYmxvYi5UcG8gJChERVBESVIpL2xpYnNvY2lfbXlzcWxfbGEtYmxvYi5QbG8K KytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJCh0b3Bfc3JjZGly KS9zb2NpL2JhY2tlbmRzL215c3FsL2Jsb2IuY3BwJyBvYmplY3Q9J2xpYnNvY2lfbXlzcWxfbGEt YmxvYi5sbycgbGlidG9vbD15ZXMgQEFNREVQQkFDS1NMQVNIQAorK0BBTURFUF9UUlVFQEBhbV9f ZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29t cCkgQEFNREVQQkFDS1NMQVNIQAorK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChMSUJUT09MKSAg LS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBp bGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQ UEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfbXlzcWxfbGFfQ1hYRkxBR1MpICQoQ1hYRkxB R1MpIC1jIC1vIGxpYnNvY2lfbXlzcWxfbGEtYmxvYi5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGly KS9zb2NpL2JhY2tlbmRzL215c3FsL2Jsb2IuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRv cF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvYmxvYi5jcHAKKysKKytsaWJzb2NpX215c3Fs X2xhLWNvbW1vbi5sbzogJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL2NvbW1vbi5j cHAKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChMSUJUT09MKSAgLS10YWc9Q1hYICQoQU1fTElC VE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykg JChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdT KSAkKGxpYnNvY2lfbXlzcWxfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1NVCBsaWJzb2NpX215 c3FsX2xhLWNvbW1vbi5sbyAtTUQgLU1QIC1NRiAkKERFUERJUikvbGlic29jaV9teXNxbF9sYS1j b21tb24uVHBvIC1jIC1vIGxpYnNvY2lfbXlzcWxfbGEtY29tbW9uLmxvIGB0ZXN0IC1mICckKHRv cF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvY29tbW9uLmNwcCcgfHwgZWNobyAnJChzcmNk aXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL2NvbW1vbi5jcHAKKytAYW1f X2Zhc3RkZXBDWFhfVFJVRUAJJChhbV9fbXYpICQoREVQRElSKS9saWJzb2NpX215c3FsX2xhLWNv bW1vbi5UcG8gJChERVBESVIpL2xpYnNvY2lfbXlzcWxfbGEtY29tbW9uLlBsbworK0BBTURFUF9U UlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSckKHRvcF9zcmNkaXIpL3NvY2kvYmFj a2VuZHMvbXlzcWwvY29tbW9uLmNwcCcgb2JqZWN0PSdsaWJzb2NpX215c3FsX2xhLWNvbW1vbi5s bycgbGlidG9vbD15ZXMgQEFNREVQQkFDS1NMQVNIQAorK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRl cENYWF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFN REVQQkFDS1NMQVNIQAorK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChMSUJUT09MKSAgLS10YWc9 Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChD WFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdT KSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfbXlzcWxfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1j IC1vIGxpYnNvY2lfbXlzcWxfbGEtY29tbW9uLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3Nv Y2kvYmFja2VuZHMvbXlzcWwvY29tbW9uLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bf c3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL2NvbW1vbi5jcHAKKysKKytsaWJzb2NpX215c3Fs X2xhLWZhY3RvcnkubG86ICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9mYWN0b3J5 LmNwcAorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKExJQlRPT0wpICAtLXRhZz1DWFggJChBTV9M SUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZT KSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxB R1MpICQobGlic29jaV9teXNxbF9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLU1UIGxpYnNvY2lf bXlzcWxfbGEtZmFjdG9yeS5sbyAtTUQgLU1QIC1NRiAkKERFUERJUikvbGlic29jaV9teXNxbF9s YS1mYWN0b3J5LlRwbyAtYyAtbyBsaWJzb2NpX215c3FsX2xhLWZhY3RvcnkubG8gYHRlc3QgLWYg JyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9mYWN0b3J5LmNwcCcgfHwgZWNobyAn JChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL2ZhY3RvcnkuY3Bw CisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoYW1fX212KSAkKERFUERJUikvbGlic29jaV9teXNx bF9sYS1mYWN0b3J5LlRwbyAkKERFUERJUikvbGlic29jaV9teXNxbF9sYS1mYWN0b3J5LlBsbwor K0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSckKHRvcF9zcmNkaXIp L3NvY2kvYmFja2VuZHMvbXlzcWwvZmFjdG9yeS5jcHAnIG9iamVjdD0nbGlic29jaV9teXNxbF9s YS1mYWN0b3J5LmxvJyBsaWJ0b29sPXllcyBAQU1ERVBCQUNLU0xBU0hACisrQEFNREVQX1RSVUVA QGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChk ZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACisrQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKExJQlRP T0wpICAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9 Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQo QU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9teXNxbF9sYV9DWFhGTEFHUykgJChD WFhGTEFHUykgLWMgLW8gbGlic29jaV9teXNxbF9sYS1mYWN0b3J5LmxvIGB0ZXN0IC1mICckKHRv cF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvZmFjdG9yeS5jcHAnIHx8IGVjaG8gJyQoc3Jj ZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9mYWN0b3J5LmNwcAorKwor K2xpYnNvY2lfbXlzcWxfbGEtcm93LWlkLmxvOiAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMv bXlzcWwvcm93LWlkLmNwcAorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKExJQlRPT0wpICAtLXRh Zz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAk KENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxB R1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9teXNxbF9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykg LU1UIGxpYnNvY2lfbXlzcWxfbGEtcm93LWlkLmxvIC1NRCAtTVAgLU1GICQoREVQRElSKS9saWJz b2NpX215c3FsX2xhLXJvdy1pZC5UcG8gLWMgLW8gbGlic29jaV9teXNxbF9sYS1yb3ctaWQubG8g YHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9yb3ctaWQuY3BwJyB8 fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvcm93 LWlkLmNwcAorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKGFtX19tdikgJChERVBESVIpL2xpYnNv Y2lfbXlzcWxfbGEtcm93LWlkLlRwbyAkKERFUERJUikvbGlic29jaV9teXNxbF9sYS1yb3ctaWQu UGxvCisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQodG9wX3Ny Y2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9yb3ctaWQuY3BwJyBvYmplY3Q9J2xpYnNvY2lfbXlz cWxfbGEtcm93LWlkLmxvJyBsaWJ0b29sPXllcyBAQU1ERVBCQUNLU0xBU0hACisrQEFNREVQX1RS VUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkg JChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACisrQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKExJ QlRPT0wpICAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1v ZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMp ICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9teXNxbF9sYV9DWFhGTEFHUykg JChDWFhGTEFHUykgLWMgLW8gbGlic29jaV9teXNxbF9sYS1yb3ctaWQubG8gYHRlc3QgLWYgJyQo dG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9yb3ctaWQuY3BwJyB8fCBlY2hvICckKHNy Y2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvcm93LWlkLmNwcAorKwor K2xpYnNvY2lfbXlzcWxfbGEtc2Vzc2lvbi5sbzogJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRz L215c3FsL3Nlc3Npb24uY3BwCisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoTElCVE9PTCkgIC0t dGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxl ICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBG TEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX215c3FsX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdT KSAtTVQgbGlic29jaV9teXNxbF9sYS1zZXNzaW9uLmxvIC1NRCAtTVAgLU1GICQoREVQRElSKS9s aWJzb2NpX215c3FsX2xhLXNlc3Npb24uVHBvIC1jIC1vIGxpYnNvY2lfbXlzcWxfbGEtc2Vzc2lv bi5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3Nlc3Npb24u Y3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlz cWwvc2Vzc2lvbi5jcHAKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChhbV9fbXYpICQoREVQRElS KS9saWJzb2NpX215c3FsX2xhLXNlc3Npb24uVHBvICQoREVQRElSKS9saWJzb2NpX215c3FsX2xh LXNlc3Npb24uUGxvCisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9 JyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9zZXNzaW9uLmNwcCcgb2JqZWN0PSds aWJzb2NpX215c3FsX2xhLXNlc3Npb24ubG8nIGxpYnRvb2w9eWVzIEBBTURFUEJBQ0tTTEFTSEAK KytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJUikgJChD WFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKKytAYW1fX2Zhc3RkZXBDWFhf RkFMU0VACSQoTElCVE9PTCkgIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09M RkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykg JChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX215c3FsX2xh X0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtYyAtbyBsaWJzb2NpX215c3FsX2xhLXNlc3Npb24ubG8g YHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9zZXNzaW9uLmNwcCcg fHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3Nl c3Npb24uY3BwCisrCisrbGlic29jaV9teXNxbF9sYS1zdGFuZGFyZC1pbnRvLXR5cGUubG86ICQo dG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9zdGFuZGFyZC1pbnRvLXR5cGUuY3BwCisr QGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoTElCVE9PTCkgIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xG TEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVG QVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChs aWJzb2NpX215c3FsX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtTVQgbGlic29jaV9teXNxbF9s YS1zdGFuZGFyZC1pbnRvLXR5cGUubG8gLU1EIC1NUCAtTUYgJChERVBESVIpL2xpYnNvY2lfbXlz cWxfbGEtc3RhbmRhcmQtaW50by10eXBlLlRwbyAtYyAtbyBsaWJzb2NpX215c3FsX2xhLXN0YW5k YXJkLWludG8tdHlwZS5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215 c3FsL3N0YW5kYXJkLWludG8tdHlwZS5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3Ny Y2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9zdGFuZGFyZC1pbnRvLXR5cGUuY3BwCisrQGFtX19m YXN0ZGVwQ1hYX1RSVUVACSQoYW1fX212KSAkKERFUERJUikvbGlic29jaV9teXNxbF9sYS1zdGFu ZGFyZC1pbnRvLXR5cGUuVHBvICQoREVQRElSKS9saWJzb2NpX215c3FsX2xhLXN0YW5kYXJkLWlu dG8tdHlwZS5QbG8KKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0n JCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3N0YW5kYXJkLWludG8tdHlwZS5jcHAn IG9iamVjdD0nbGlic29jaV9teXNxbF9sYS1zdGFuZGFyZC1pbnRvLXR5cGUubG8nIGxpYnRvb2w9 eWVzIEBBTURFUEJBQ0tTTEFTSEAKKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VA CURFUERJUj0kKERFUERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFT SEAKKytAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQoTElCVE9PTCkgIC0tdGFnPUNYWCAkKEFNX0xJ QlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMp ICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFH UykgJChsaWJzb2NpX215c3FsX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtYyAtbyBsaWJzb2Np X215c3FsX2xhLXN0YW5kYXJkLWludG8tdHlwZS5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9z b2NpL2JhY2tlbmRzL215c3FsL3N0YW5kYXJkLWludG8tdHlwZS5jcHAnIHx8IGVjaG8gJyQoc3Jj ZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9zdGFuZGFyZC1pbnRvLXR5 cGUuY3BwCisrCisrbGlic29jaV9teXNxbF9sYS1zdGFuZGFyZC11c2UtdHlwZS5sbzogJCh0b3Bf c3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3N0YW5kYXJkLXVzZS10eXBlLmNwcAorK0BhbV9f ZmFzdGRlcENYWF9UUlVFQAkkKExJQlRPT0wpICAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1Mp ICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRf SU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29j aV9teXNxbF9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLU1UIGxpYnNvY2lfbXlzcWxfbGEtc3Rh bmRhcmQtdXNlLXR5cGUubG8gLU1EIC1NUCAtTUYgJChERVBESVIpL2xpYnNvY2lfbXlzcWxfbGEt c3RhbmRhcmQtdXNlLXR5cGUuVHBvIC1jIC1vIGxpYnNvY2lfbXlzcWxfbGEtc3RhbmRhcmQtdXNl LXR5cGUubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9zdGFu ZGFyZC11c2UtdHlwZS5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29j aS9iYWNrZW5kcy9teXNxbC9zdGFuZGFyZC11c2UtdHlwZS5jcHAKKytAYW1fX2Zhc3RkZXBDWFhf VFJVRUAJJChhbV9fbXYpICQoREVQRElSKS9saWJzb2NpX215c3FsX2xhLXN0YW5kYXJkLXVzZS10 eXBlLlRwbyAkKERFUERJUikvbGlic29jaV9teXNxbF9sYS1zdGFuZGFyZC11c2UtdHlwZS5QbG8K KytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJCh0b3Bfc3JjZGly KS9zb2NpL2JhY2tlbmRzL215c3FsL3N0YW5kYXJkLXVzZS10eXBlLmNwcCcgb2JqZWN0PSdsaWJz b2NpX215c3FsX2xhLXN0YW5kYXJkLXVzZS10eXBlLmxvJyBsaWJ0b29sPXllcyBAQU1ERVBCQUNL U0xBU0hACisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBE SVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACisrQGFtX19mYXN0 ZGVwQ1hYX0ZBTFNFQAkkKExJQlRPT0wpICAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQo TElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5D TFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9t eXNxbF9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLWMgLW8gbGlic29jaV9teXNxbF9sYS1zdGFu ZGFyZC11c2UtdHlwZS5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215 c3FsL3N0YW5kYXJkLXVzZS10eXBlLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3Jj ZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3N0YW5kYXJkLXVzZS10eXBlLmNwcAorKworK2xpYnNv Y2lfbXlzcWxfbGEtc3RhdGVtZW50LmxvOiAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlz cWwvc3RhdGVtZW50LmNwcAorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKExJQlRPT0wpICAtLXRh Zz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAk KENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxB R1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9teXNxbF9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykg LU1UIGxpYnNvY2lfbXlzcWxfbGEtc3RhdGVtZW50LmxvIC1NRCAtTVAgLU1GICQoREVQRElSKS9s aWJzb2NpX215c3FsX2xhLXN0YXRlbWVudC5UcG8gLWMgLW8gbGlic29jaV9teXNxbF9sYS1zdGF0 ZW1lbnQubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9zdGF0 ZW1lbnQuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2Vu ZHMvbXlzcWwvc3RhdGVtZW50LmNwcAorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKGFtX19tdikg JChERVBESVIpL2xpYnNvY2lfbXlzcWxfbGEtc3RhdGVtZW50LlRwbyAkKERFUERJUikvbGlic29j aV9teXNxbF9sYS1zdGF0ZW1lbnQuUGxvCisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZB TFNFQAlzb3VyY2U9JyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9zdGF0ZW1lbnQu Y3BwJyBvYmplY3Q9J2xpYnNvY2lfbXlzcWxfbGEtc3RhdGVtZW50LmxvJyBsaWJ0b29sPXllcyBA QU1ERVBCQUNLU0xBU0hACisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBE SVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACisr QGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKExJQlRPT0wpICAtLXRhZz1DWFggJChBTV9MSUJUT09M RkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERF RkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQo bGlic29jaV9teXNxbF9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLWMgLW8gbGlic29jaV9teXNx bF9sYS1zdGF0ZW1lbnQubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9t eXNxbC9zdGF0ZW1lbnQuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3Nv Y2kvYmFja2VuZHMvbXlzcWwvc3RhdGVtZW50LmNwcAorKworK2xpYnNvY2lfbXlzcWxfbGEtdmVj dG9yLWludG8tdHlwZS5sbzogJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3ZlY3Rv ci1pbnRvLXR5cGUuY3BwCisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoTElCVE9PTCkgIC0tdGFn PUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQo Q1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFH UykgJChDUFBGTEFHUykgJChsaWJzb2NpX215c3FsX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAt TVQgbGlic29jaV9teXNxbF9sYS12ZWN0b3ItaW50by10eXBlLmxvIC1NRCAtTVAgLU1GICQoREVQ RElSKS9saWJzb2NpX215c3FsX2xhLXZlY3Rvci1pbnRvLXR5cGUuVHBvIC1jIC1vIGxpYnNvY2lf bXlzcWxfbGEtdmVjdG9yLWludG8tdHlwZS5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2Np L2JhY2tlbmRzL215c3FsL3ZlY3Rvci1pbnRvLXR5cGUuY3BwJyB8fCBlY2hvICckKHNyY2Rpcikv J2AkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvdmVjdG9yLWludG8tdHlwZS5jcHAK KytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChhbV9fbXYpICQoREVQRElSKS9saWJzb2NpX215c3Fs X2xhLXZlY3Rvci1pbnRvLXR5cGUuVHBvICQoREVQRElSKS9saWJzb2NpX215c3FsX2xhLXZlY3Rv ci1pbnRvLXR5cGUuUGxvCisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3Vy Y2U9JyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC92ZWN0b3ItaW50by10eXBlLmNw cCcgb2JqZWN0PSdsaWJzb2NpX215c3FsX2xhLXZlY3Rvci1pbnRvLXR5cGUubG8nIGxpYnRvb2w9 eWVzIEBBTURFUEJBQ0tTTEFTSEAKKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VA CURFUERJUj0kKERFUERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFT SEAKKytAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQoTElCVE9PTCkgIC0tdGFnPUNYWCAkKEFNX0xJ QlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMp ICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFH UykgJChsaWJzb2NpX215c3FsX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtYyAtbyBsaWJzb2Np X215c3FsX2xhLXZlY3Rvci1pbnRvLXR5cGUubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29j aS9iYWNrZW5kcy9teXNxbC92ZWN0b3ItaW50by10eXBlLmNwcCcgfHwgZWNobyAnJChzcmNkaXIp LydgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3ZlY3Rvci1pbnRvLXR5cGUuY3Bw CisrCisrbGlic29jaV9teXNxbF9sYS12ZWN0b3ItdXNlLXR5cGUubG86ICQodG9wX3NyY2Rpcikv c29jaS9iYWNrZW5kcy9teXNxbC92ZWN0b3ItdXNlLXR5cGUuY3BwCisrQGFtX19mYXN0ZGVwQ1hY X1RSVUVACSQoTElCVE9PTCkgIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09M RkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykg JChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX215c3FsX2xh X0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtTVQgbGlic29jaV9teXNxbF9sYS12ZWN0b3ItdXNlLXR5 cGUubG8gLU1EIC1NUCAtTUYgJChERVBESVIpL2xpYnNvY2lfbXlzcWxfbGEtdmVjdG9yLXVzZS10 eXBlLlRwbyAtYyAtbyBsaWJzb2NpX215c3FsX2xhLXZlY3Rvci11c2UtdHlwZS5sbyBgdGVzdCAt ZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3ZlY3Rvci11c2UtdHlwZS5jcHAn IHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC92 ZWN0b3ItdXNlLXR5cGUuY3BwCisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoYW1fX212KSAkKERF UERJUikvbGlic29jaV9teXNxbF9sYS12ZWN0b3ItdXNlLXR5cGUuVHBvICQoREVQRElSKS9saWJz b2NpX215c3FsX2xhLXZlY3Rvci11c2UtdHlwZS5QbG8KKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3Rk ZXBDWFhfRkFMU0VACXNvdXJjZT0nJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3Zl Y3Rvci11c2UtdHlwZS5jcHAnIG9iamVjdD0nbGlic29jaV9teXNxbF9sYS12ZWN0b3ItdXNlLXR5 cGUubG8nIGxpYnRvb2w9eWVzIEBBTURFUEJBQ0tTTEFTSEAKKytAQU1ERVBfVFJVRUBAYW1fX2Zh c3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXAp IEBBTURFUEJBQ0tTTEFTSEAKKytAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQoTElCVE9PTCkgIC0t dGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxl ICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBG TEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX215c3FsX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdT KSAtYyAtbyBsaWJzb2NpX215c3FsX2xhLXZlY3Rvci11c2UtdHlwZS5sbyBgdGVzdCAtZiAnJCh0 b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3ZlY3Rvci11c2UtdHlwZS5jcHAnIHx8IGVj aG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC92ZWN0b3It dXNlLXR5cGUuY3BwCisrCisrbW9zdGx5Y2xlYW4tbGlidG9vbDoKKysJLXJtIC1mICoubG8KKysK KytjbGVhbi1saWJ0b29sOgorKwktcm0gLXJmIC5saWJzIF9saWJzCisraW5zdGFsbC1wa2dpbmNs dWRlSEVBREVSUzogJChwa2dpbmNsdWRlX0hFQURFUlMpCisrCUAkKE5PUk1BTF9JTlNUQUxMKQor Kwl0ZXN0IC16ICIkKHBrZ2luY2x1ZGVkaXIpIiB8fCAkKE1LRElSX1ApICIkKERFU1RESVIpJChw a2dpbmNsdWRlZGlyKSIKKysJQGxpc3Q9JyQocGtnaW5jbHVkZV9IRUFERVJTKSc7IHRlc3QgLW4g IiQocGtnaW5jbHVkZWRpcikiIHx8IGxpc3Q9OyBcCisrCWZvciBwIGluICQkbGlzdDsgZG8gXAor KwkgIGlmIHRlc3QgLWYgIiQkcCI7IHRoZW4gZD07IGVsc2UgZD0iJChzcmNkaXIpLyI7IGZpOyBc CisrCSAgZWNobyAiJCRkJCRwIjsgXAorKwlkb25lIHwgJChhbV9fYmFzZV9saXN0KSB8IFwKKysJ d2hpbGUgcmVhZCBmaWxlczsgZG8gXAorKwkgIGVjaG8gIiAkKElOU1RBTExfSEVBREVSKSAkJGZp bGVzICckKERFU1RESVIpJChwa2dpbmNsdWRlZGlyKSciOyBcCisrCSAgJChJTlNUQUxMX0hFQURF UikgJCRmaWxlcyAiJChERVNURElSKSQocGtnaW5jbHVkZWRpcikiIHx8IGV4aXQgJCQ/OyBcCisr CWRvbmUKKysKKyt1bmluc3RhbGwtcGtnaW5jbHVkZUhFQURFUlM6CisrCUAkKE5PUk1BTF9VTklO U1RBTEwpCisrCUBsaXN0PSckKHBrZ2luY2x1ZGVfSEVBREVSUyknOyB0ZXN0IC1uICIkKHBrZ2lu Y2x1ZGVkaXIpIiB8fCBsaXN0PTsgXAorKwlmaWxlcz1gZm9yIHAgaW4gJCRsaXN0OyBkbyBlY2hv ICQkcDsgZG9uZSB8IHNlZCAtZSAnc3xeLiovfHwnYDsgXAorKwl0ZXN0IC1uICIkJGZpbGVzIiB8 fCBleGl0IDA7IFwKKysJZWNobyAiICggY2QgJyQoREVTVERJUikkKHBrZ2luY2x1ZGVkaXIpJyAm JiBybSAtZiIgJCRmaWxlcyAiKSI7IFwKKysJY2QgIiQoREVTVERJUikkKHBrZ2luY2x1ZGVkaXIp IiAmJiBybSAtZiAkJGZpbGVzCisrCisrIyBUaGlzIGRpcmVjdG9yeSdzIHN1YmRpcmVjdG9yaWVz IGFyZSBtb3N0bHkgaW5kZXBlbmRlbnQ7IHlvdSBjYW4gY2QKKysjIGludG8gdGhlbSBhbmQgcnVu IGBtYWtlJyB3aXRob3V0IGdvaW5nIHRocm91Z2ggdGhpcyBNYWtlZmlsZS4KKysjIFRvIGNoYW5n ZSB0aGUgdmFsdWVzIG9mIGBtYWtlJyB2YXJpYWJsZXM6IGluc3RlYWQgb2YgZWRpdGluZyBNYWtl ZmlsZXMsCisrIyAoMSkgaWYgdGhlIHZhcmlhYmxlIGlzIHNldCBpbiBgY29uZmlnLnN0YXR1cycs IGVkaXQgYGNvbmZpZy5zdGF0dXMnCisrIyAgICAgKHdoaWNoIHdpbGwgY2F1c2UgdGhlIE1ha2Vm aWxlcyB0byBiZSByZWdlbmVyYXRlZCB3aGVuIHlvdSBydW4gYG1ha2UnKTsKKysjICgyKSBvdGhl cndpc2UsIHBhc3MgdGhlIGRlc2lyZWQgdmFsdWVzIG9uIHRoZSBgbWFrZScgY29tbWFuZCBsaW5l LgorKyQoUkVDVVJTSVZFX1RBUkdFVFMpOgorKwlAZmFpbD0gZmFpbGNvbT0nZXhpdCAxJzsgXAor Kwlmb3IgZiBpbiB4ICQkTUFLRUZMQUdTOyBkbyBcCisrCSAgY2FzZSAkJGYgaW4gXAorKwkgICAg Kj0qIHwgLS1bIWtdKik7OyBcCisrCSAgICAqayopIGZhaWxjb209J2ZhaWw9eWVzJzs7IFwKKysJ ICBlc2FjOyBcCisrCWRvbmU7IFwKKysJZG90X3NlZW49bm87IFwKKysJdGFyZ2V0PWBlY2hvICRA IHwgc2VkIHMvLXJlY3Vyc2l2ZS8vYDsgXAorKwlsaXN0PSckKFNVQkRJUlMpJzsgZm9yIHN1YmRp ciBpbiAkJGxpc3Q7IGRvIFwKKysJICBlY2hvICJNYWtpbmcgJCR0YXJnZXQgaW4gJCRzdWJkaXIi OyBcCisrCSAgaWYgdGVzdCAiJCRzdWJkaXIiID0gIi4iOyB0aGVuIFwKKysJICAgIGRvdF9zZWVu PXllczsgXAorKwkgICAgbG9jYWxfdGFyZ2V0PSIkJHRhcmdldC1hbSI7IFwKKysJICBlbHNlIFwK KysJICAgIGxvY2FsX3RhcmdldD0iJCR0YXJnZXQiOyBcCisrCSAgZmk7IFwKKysJICAoJChhbV9f Y2QpICQkc3ViZGlyICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpICQkbG9jYWxfdGFyZ2V0KSBc CisrCSAgfHwgZXZhbCAkJGZhaWxjb207IFwKKysJZG9uZTsgXAorKwlpZiB0ZXN0ICIkJGRvdF9z ZWVuIiA9ICJubyI7IHRoZW4gXAorKwkgICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpICIkJHRhcmdl dC1hbSIgfHwgZXhpdCAxOyBcCisrCWZpOyB0ZXN0IC16ICIkJGZhaWwiCisrCisrJChSRUNVUlNJ VkVfQ0xFQU5fVEFSR0VUUyk6CisrCUBmYWlsPSBmYWlsY29tPSdleGl0IDEnOyBcCisrCWZvciBm IGluIHggJCRNQUtFRkxBR1M7IGRvIFwKKysJICBjYXNlICQkZiBpbiBcCisrCSAgICAqPSogfCAt LVsha10qKTs7IFwKKysJICAgICprKikgZmFpbGNvbT0nZmFpbD15ZXMnOzsgXAorKwkgIGVzYWM7 IFwKKysJZG9uZTsgXAorKwlkb3Rfc2Vlbj1ubzsgXAorKwljYXNlICIkQCIgaW4gXAorKwkgIGRp c3RjbGVhbi0qIHwgbWFpbnRhaW5lci1jbGVhbi0qKSBsaXN0PSckKERJU1RfU1VCRElSUyknIDs7 IFwKKysJICAqKSBsaXN0PSckKFNVQkRJUlMpJyA7OyBcCisrCWVzYWM7IFwKKysJcmV2PScnOyBm b3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAorKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9ICIuIjsg dGhlbiA6OyBlbHNlIFwKKysJICAgIHJldj0iJCRzdWJkaXIgJCRyZXYiOyBcCisrCSAgZmk7IFwK KysJZG9uZTsgXAorKwlyZXY9IiQkcmV2IC4iOyBcCisrCXRhcmdldD1gZWNobyAkQCB8IHNlZCBz Ly1yZWN1cnNpdmUvL2A7IFwKKysJZm9yIHN1YmRpciBpbiAkJHJldjsgZG8gXAorKwkgIGVjaG8g Ik1ha2luZyAkJHRhcmdldCBpbiAkJHN1YmRpciI7IFwKKysJICBpZiB0ZXN0ICIkJHN1YmRpciIg PSAiLiI7IHRoZW4gXAorKwkgICAgbG9jYWxfdGFyZ2V0PSIkJHRhcmdldC1hbSI7IFwKKysJICBl bHNlIFwKKysJICAgIGxvY2FsX3RhcmdldD0iJCR0YXJnZXQiOyBcCisrCSAgZmk7IFwKKysJICAo JChhbV9fY2QpICQkc3ViZGlyICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpICQkbG9jYWxfdGFy Z2V0KSBcCisrCSAgfHwgZXZhbCAkJGZhaWxjb207IFwKKysJZG9uZSAmJiB0ZXN0IC16ICIkJGZh aWwiCisrdGFncy1yZWN1cnNpdmU6CisrCWxpc3Q9JyQoU1VCRElSUyknOyBmb3Igc3ViZGlyIGlu ICQkbGlzdDsgZG8gXAorKwkgIHRlc3QgIiQkc3ViZGlyIiA9IC4gfHwgKCQoYW1fX2NkKSAkJHN1 YmRpciAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSB0YWdzKTsgXAorKwlkb25lCisrY3RhZ3Mt cmVjdXJzaXZlOgorKwlsaXN0PSckKFNVQkRJUlMpJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRv IFwKKysJICB0ZXN0ICIkJHN1YmRpciIgPSAuIHx8ICgkKGFtX19jZCkgJCRzdWJkaXIgJiYgJChN QUtFKSAkKEFNX01BS0VGTEFHUykgY3RhZ3MpOyBcCisrCWRvbmUKKysKKytJRDogJChIRUFERVJT KSAkKFNPVVJDRVMpICQoTElTUCkgJChUQUdTX0ZJTEVTKQorKwlsaXN0PSckKFNPVVJDRVMpICQo SEVBREVSUykgJChMSVNQKSAkKFRBR1NfRklMRVMpJzsgXAorKwl1bmlxdWU9YGZvciBpIGluICQk bGlzdDsgZG8gXAorKwkgICAgaWYgdGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsgZWxzZSBl Y2hvICQoc3JjZGlyKS8kJGk7IGZpOyBcCisrCSAgZG9uZSB8IFwKKysJICAkKEFXSykgJ3sgZmls ZXNbJCQwXSA9IDE7IG5vbmVtcHR5ID0gMTsgfSBcCisrCSAgICAgIEVORCB7IGlmIChub25lbXB0 eSkgeyBmb3IgKGkgaW4gZmlsZXMpIHByaW50IGk7IH07IH0nYDsgXAorKwlta2lkIC1mSUQgJCR1 bmlxdWUKKyt0YWdzOiBUQUdTCisrCisrVEFHUzogdGFncy1yZWN1cnNpdmUgJChIRUFERVJTKSAk KFNPVVJDRVMpICAkKFRBR1NfREVQRU5ERU5DSUVTKSBcCisrCQkkKFRBR1NfRklMRVMpICQoTElT UCkKKysJc2V0IHg7IFwKKysJaGVyZT1gcHdkYDsgXAorKwlpZiAoJChFVEFHUykgLS1ldGFncy1p bmNsdWRlIC0tdmVyc2lvbikgPi9kZXYvbnVsbCAyPiYxOyB0aGVuIFwKKysJICBpbmNsdWRlX29w dGlvbj0tLWV0YWdzLWluY2x1ZGU7IFwKKysJICBlbXB0eV9maXg9LjsgXAorKwllbHNlIFwKKysJ ICBpbmNsdWRlX29wdGlvbj0tLWluY2x1ZGU7IFwKKysJICBlbXB0eV9maXg9OyBcCisrCWZpOyBc CisrCWxpc3Q9JyQoU1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAorKwkgIGlm IHRlc3QgIiQkc3ViZGlyIiA9IC47IHRoZW4gOjsgZWxzZSBcCisrCSAgICB0ZXN0ICEgLWYgJCRz dWJkaXIvVEFHUyB8fCBcCisrCSAgICAgIHNldCAiJCRAIiAiJCRpbmNsdWRlX29wdGlvbj0kJGhl cmUvJCRzdWJkaXIvVEFHUyI7IFwKKysJICBmaTsgXAorKwlkb25lOyBcCisrCWxpc3Q9JyQoU09V UkNFUykgJChIRUFERVJTKSAgJChMSVNQKSAkKFRBR1NfRklMRVMpJzsgXAorKwl1bmlxdWU9YGZv ciBpIGluICQkbGlzdDsgZG8gXAorKwkgICAgaWYgdGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hvICQk aTsgZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7IGZpOyBcCisrCSAgZG9uZSB8IFwKKysJICAkKEFX SykgJ3sgZmlsZXNbJCQwXSA9IDE7IG5vbmVtcHR5ID0gMTsgfSBcCisrCSAgICAgIEVORCB7IGlm IChub25lbXB0eSkgeyBmb3IgKGkgaW4gZmlsZXMpIHByaW50IGk7IH07IH0nYDsgXAorKwlzaGlm dDsgXAorKwlpZiB0ZXN0IC16ICIkKEVUQUdTX0FSR1MpJCQqJCR1bmlxdWUiOyB0aGVuIDo7IGVs c2UgXAorKwkgIHRlc3QgLW4gIiQkdW5pcXVlIiB8fCB1bmlxdWU9JCRlbXB0eV9maXg7IFwKKysJ ICBpZiB0ZXN0ICQkIyAtZ3QgMDsgdGhlbiBcCisrCSAgICAkKEVUQUdTKSAkKEVUQUdTRkxBR1Mp ICQoQU1fRVRBR1NGTEFHUykgJChFVEFHU19BUkdTKSBcCisrCSAgICAgICIkJEAiICQkdW5pcXVl OyBcCisrCSAgZWxzZSBcCisrCSAgICAkKEVUQUdTKSAkKEVUQUdTRkxBR1MpICQoQU1fRVRBR1NG TEFHUykgJChFVEFHU19BUkdTKSBcCisrCSAgICAgICQkdW5pcXVlOyBcCisrCSAgZmk7IFwKKysJ ZmkKKytjdGFnczogQ1RBR1MKKytDVEFHUzogY3RhZ3MtcmVjdXJzaXZlICQoSEVBREVSUykgJChT T1VSQ0VTKSAgJChUQUdTX0RFUEVOREVOQ0lFUykgXAorKwkJJChUQUdTX0ZJTEVTKSAkKExJU1Ap CisrCWxpc3Q9JyQoU09VUkNFUykgJChIRUFERVJTKSAgJChMSVNQKSAkKFRBR1NfRklMRVMpJzsg XAorKwl1bmlxdWU9YGZvciBpIGluICQkbGlzdDsgZG8gXAorKwkgICAgaWYgdGVzdCAtZiAiJCRp IjsgdGhlbiBlY2hvICQkaTsgZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7IGZpOyBcCisrCSAgZG9u ZSB8IFwKKysJICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9IDE7IG5vbmVtcHR5ID0gMTsgfSBcCisr CSAgICAgIEVORCB7IGlmIChub25lbXB0eSkgeyBmb3IgKGkgaW4gZmlsZXMpIHByaW50IGk7IH07 IH0nYDsgXAorKwl0ZXN0IC16ICIkKENUQUdTX0FSR1MpJCR1bmlxdWUiIFwKKysJICB8fCAkKENU QUdTKSAkKENUQUdTRkxBR1MpICQoQU1fQ1RBR1NGTEFHUykgJChDVEFHU19BUkdTKSBcCisrCSAg ICAgJCR1bmlxdWUKKysKKytHVEFHUzoKKysJaGVyZT1gJChhbV9fY2QpICQodG9wX2J1aWxkZGly KSAmJiBwd2RgIFwKKysJICAmJiAkKGFtX19jZCkgJCh0b3Bfc3JjZGlyKSBcCisrCSAgJiYgZ3Rh Z3MgLWkgJChHVEFHU19BUkdTKSAiJCRoZXJlIgorKworK2Rpc3RjbGVhbi10YWdzOgorKwktcm0g LWYgVEFHUyBJRCBHVEFHUyBHUlRBR1MgR1NZTVMgR1BBVEggdGFncworKworK2Rpc3RkaXI6ICQo RElTVEZJTEVTKQorKwlAc3JjZGlyc3RyaXA9YGVjaG8gIiQoc3JjZGlyKSIgfCBzZWQgJ3MvW10u W14kJFxcKl0vXFxcXCYvZydgOyBcCisrCXRvcHNyY2RpcnN0cmlwPWBlY2hvICIkKHRvcF9zcmNk aXIpIiB8IHNlZCAncy9bXS5bXiQkXFwqXS9cXFxcJi9nJ2A7IFwKKysJbGlzdD0nJChESVNURklM RVMpJzsgXAorKwkgIGRpc3RfZmlsZXM9YGZvciBmaWxlIGluICQkbGlzdDsgZG8gZWNobyAkJGZp bGU7IGRvbmUgfCBcCisrCSAgc2VkIC1lICJzfF4kJHNyY2RpcnN0cmlwL3x8O3QiIFwKKysJICAg ICAgLWUgInN8XiQkdG9wc3JjZGlyc3RyaXAvfCQodG9wX2J1aWxkZGlyKS98O3QiYDsgXAorKwlj YXNlICQkZGlzdF9maWxlcyBpbiBcCisrCSAgKi8qKSAkKE1LRElSX1ApIGBlY2hvICIkJGRpc3Rf ZmlsZXMiIHwgXAorKwkJCSAgIHNlZCAnL1wvLyFkO3N8XnwkKGRpc3RkaXIpL3w7cywvW14vXSok JCwsJyB8IFwKKysJCQkgICBzb3J0IC11YCA7OyBcCisrCWVzYWM7IFwKKysJZm9yIGZpbGUgaW4g JCRkaXN0X2ZpbGVzOyBkbyBcCisrCSAgaWYgdGVzdCAtZiAkJGZpbGUgfHwgdGVzdCAtZCAkJGZp bGU7IHRoZW4gZD0uOyBlbHNlIGQ9JChzcmNkaXIpOyBmaTsgXAorKwkgIGlmIHRlc3QgLWQgJCRk LyQkZmlsZTsgdGhlbiBcCisrCSAgICBkaXI9YGVjaG8gIi8kJGZpbGUiIHwgc2VkIC1lICdzLC9b Xi9dKiQkLCwnYDsgXAorKwkgICAgaWYgdGVzdCAtZCAiJChkaXN0ZGlyKS8kJGZpbGUiOyB0aGVu IFwKKysJICAgICAgZmluZCAiJChkaXN0ZGlyKS8kJGZpbGUiIC10eXBlIGQgISAtcGVybSAtNzAw IC1leGVjIGNobW9kIHUrcnd4IHt9IFw7OyBcCisrCSAgICBmaTsgXAorKwkgICAgaWYgdGVzdCAt ZCAkKHNyY2RpcikvJCRmaWxlICYmIHRlc3QgJCRkICE9ICQoc3JjZGlyKTsgdGhlbiBcCisrCSAg ICAgIGNwIC1mcFIgJChzcmNkaXIpLyQkZmlsZSAiJChkaXN0ZGlyKSQkZGlyIiB8fCBleGl0IDE7 IFwKKysJICAgICAgZmluZCAiJChkaXN0ZGlyKS8kJGZpbGUiIC10eXBlIGQgISAtcGVybSAtNzAw IC1leGVjIGNobW9kIHUrcnd4IHt9IFw7OyBcCisrCSAgICBmaTsgXAorKwkgICAgY3AgLWZwUiAk JGQvJCRmaWxlICIkKGRpc3RkaXIpJCRkaXIiIHx8IGV4aXQgMTsgXAorKwkgIGVsc2UgXAorKwkg ICAgdGVzdCAtZiAiJChkaXN0ZGlyKS8kJGZpbGUiIFwKKysJICAgIHx8IGNwIC1wICQkZC8kJGZp bGUgIiQoZGlzdGRpcikvJCRmaWxlIiBcCisrCSAgICB8fCBleGl0IDE7IFwKKysJICBmaTsgXAor Kwlkb25lCisrCUBsaXN0PSckKERJU1RfU1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsg ZG8gXAorKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9IC47IHRoZW4gOjsgZWxzZSBcCisrCSAgICB0 ZXN0IC1kICIkKGRpc3RkaXIpLyQkc3ViZGlyIiBcCisrCSAgICB8fCAkKE1LRElSX1ApICIkKGRp c3RkaXIpLyQkc3ViZGlyIiBcCisrCSAgICB8fCBleGl0IDE7IFwKKysJICBmaTsgXAorKwlkb25l CisrCUBsaXN0PSckKERJU1RfU1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAor KwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9IC47IHRoZW4gOjsgZWxzZSBcCisrCSAgICBkaXIxPSQk c3ViZGlyOyBkaXIyPSIkKGRpc3RkaXIpLyQkc3ViZGlyIjsgXAorKwkgICAgJChhbV9fcmVsYXRp dml6ZSk7IFwKKysJICAgIG5ld19kaXN0ZGlyPSQkcmVsZGlyOyBcCisrCSAgICBkaXIxPSQkc3Vi ZGlyOyBkaXIyPSIkKHRvcF9kaXN0ZGlyKSI7IFwKKysJICAgICQoYW1fX3JlbGF0aXZpemUpOyBc CisrCSAgICBuZXdfdG9wX2Rpc3RkaXI9JCRyZWxkaXI7IFwKKysJICAgIGVjaG8gIiAoY2QgJCRz dWJkaXIgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgdG9wX2Rpc3RkaXI9IiQkbmV3X3RvcF9k aXN0ZGlyIiBkaXN0ZGlyPSIkJG5ld19kaXN0ZGlyIiBcXCI7IFwKKysJICAgIGVjaG8gIiAgICAg YW1fX3JlbW92ZV9kaXN0ZGlyPTogYW1fX3NraXBfbGVuZ3RoX2NoZWNrPTogYW1fX3NraXBfbW9k ZV9maXg9OiBkaXN0ZGlyKSI7IFwKKysJICAgICgkKGFtX19jZCkgJCRzdWJkaXIgJiYgXAorKwkg ICAgICAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBcCisrCSAgICAgICAgdG9wX2Rpc3RkaXI9IiQk bmV3X3RvcF9kaXN0ZGlyIiBcCisrCSAgICAgICAgZGlzdGRpcj0iJCRuZXdfZGlzdGRpciIgXAor KwkJYW1fX3JlbW92ZV9kaXN0ZGlyPTogXAorKwkJYW1fX3NraXBfbGVuZ3RoX2NoZWNrPTogXAor KwkJYW1fX3NraXBfbW9kZV9maXg9OiBcCisrCSAgICAgICAgZGlzdGRpcikgXAorKwkgICAgICB8 fCBleGl0IDE7IFwKKysJICBmaTsgXAorKwlkb25lCisrY2hlY2stYW06IGFsbC1hbQorK2NoZWNr OiBjaGVjay1yZWN1cnNpdmUKKythbGwtYW06IE1ha2VmaWxlICQoTFRMSUJSQVJJRVMpICQoSEVB REVSUykKKytpbnN0YWxsZGlyczogaW5zdGFsbGRpcnMtcmVjdXJzaXZlCisraW5zdGFsbGRpcnMt YW06CisrCWZvciBkaXIgaW4gIiQoREVTVERJUikkKGxpYmRpcikiICIkKERFU1RESVIpJChwa2dp bmNsdWRlZGlyKSI7IGRvIFwKKysJICB0ZXN0IC16ICIkJGRpciIgfHwgJChNS0RJUl9QKSAiJCRk aXIiOyBcCisrCWRvbmUKKytpbnN0YWxsOiBpbnN0YWxsLXJlY3Vyc2l2ZQorK2luc3RhbGwtZXhl YzogaW5zdGFsbC1leGVjLXJlY3Vyc2l2ZQorK2luc3RhbGwtZGF0YTogaW5zdGFsbC1kYXRhLXJl Y3Vyc2l2ZQorK3VuaW5zdGFsbDogdW5pbnN0YWxsLXJlY3Vyc2l2ZQorKworK2luc3RhbGwtYW06 IGFsbC1hbQorKwlAJChNQUtFKSAkKEFNX01BS0VGTEFHUykgaW5zdGFsbC1leGVjLWFtIGluc3Rh bGwtZGF0YS1hbQorKworK2luc3RhbGxjaGVjazogaW5zdGFsbGNoZWNrLXJlY3Vyc2l2ZQorK2lu c3RhbGwtc3RyaXA6CisrCSQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIElOU1RBTExfUFJPR1JBTT0i JChJTlNUQUxMX1NUUklQX1BST0dSQU0pIiBcCisrCSAgaW5zdGFsbF9zaF9QUk9HUkFNPSIkKElO U1RBTExfU1RSSVBfUFJPR1JBTSkiIElOU1RBTExfU1RSSVBfRkxBRz0tcyBcCisrCSAgYHRlc3Qg LXogJyQoU1RSSVApJyB8fCBcCisrCSAgICBlY2hvICJJTlNUQUxMX1BST0dSQU1fRU5WPVNUUklQ UFJPRz0nJChTVFJJUCknImAgaW5zdGFsbAorK21vc3RseWNsZWFuLWdlbmVyaWM6CisrCisrY2xl YW4tZ2VuZXJpYzoKKysKKytkaXN0Y2xlYW4tZ2VuZXJpYzoKKysJLXRlc3QgLXogIiQoQ09ORklH X0NMRUFOX0ZJTEVTKSIgfHwgcm0gLWYgJChDT05GSUdfQ0xFQU5fRklMRVMpCisrCS10ZXN0IC4g PSAiJChzcmNkaXIpIiB8fCB0ZXN0IC16ICIkKENPTkZJR19DTEVBTl9WUEFUSF9GSUxFUykiIHx8 IHJtIC1mICQoQ09ORklHX0NMRUFOX1ZQQVRIX0ZJTEVTKQorKworK21haW50YWluZXItY2xlYW4t Z2VuZXJpYzoKKysJQGVjaG8gIlRoaXMgY29tbWFuZCBpcyBpbnRlbmRlZCBmb3IgbWFpbnRhaW5l cnMgdG8gdXNlIgorKwlAZWNobyAiaXQgZGVsZXRlcyBmaWxlcyB0aGF0IG1heSByZXF1aXJlIHNw ZWNpYWwgdG9vbHMgdG8gcmVidWlsZC4iCisrCS10ZXN0IC16ICIkKE1BSU5UQUlORVJDTEVBTkZJ TEVTKSIgfHwgcm0gLWYgJChNQUlOVEFJTkVSQ0xFQU5GSUxFUykKKytjbGVhbjogY2xlYW4tcmVj dXJzaXZlCisrCisrY2xlYW4tYW06IGNsZWFuLWdlbmVyaWMgY2xlYW4tbGliTFRMSUJSQVJJRVMg Y2xlYW4tbGlidG9vbCBcCisrCW1vc3RseWNsZWFuLWFtCisrCisrZGlzdGNsZWFuOiBkaXN0Y2xl YW4tcmVjdXJzaXZlCisrCS1ybSAtcmYgLi8kKERFUERJUikKKysJLXJtIC1mIE1ha2VmaWxlCisr ZGlzdGNsZWFuLWFtOiBjbGVhbi1hbSBkaXN0Y2xlYW4tY29tcGlsZSBkaXN0Y2xlYW4tZ2VuZXJp YyBcCisrCWRpc3RjbGVhbi10YWdzCisrCisrZHZpOiBkdmktcmVjdXJzaXZlCisrCisrZHZpLWFt OgorKworK2h0bWw6IGh0bWwtcmVjdXJzaXZlCisrCisraHRtbC1hbToKKysKKytpbmZvOiBpbmZv LXJlY3Vyc2l2ZQorKworK2luZm8tYW06CisrCisraW5zdGFsbC1kYXRhLWFtOiBpbnN0YWxsLXBr Z2luY2x1ZGVIRUFERVJTCisrCisraW5zdGFsbC1kdmk6IGluc3RhbGwtZHZpLXJlY3Vyc2l2ZQor KworK2luc3RhbGwtZHZpLWFtOgorKworK2luc3RhbGwtZXhlYy1hbTogaW5zdGFsbC1saWJMVExJ QlJBUklFUworKworK2luc3RhbGwtaHRtbDogaW5zdGFsbC1odG1sLXJlY3Vyc2l2ZQorKworK2lu c3RhbGwtaHRtbC1hbToKKysKKytpbnN0YWxsLWluZm86IGluc3RhbGwtaW5mby1yZWN1cnNpdmUK KysKKytpbnN0YWxsLWluZm8tYW06CisrCisraW5zdGFsbC1tYW46CisrCisraW5zdGFsbC1wZGY6 IGluc3RhbGwtcGRmLXJlY3Vyc2l2ZQorKworK2luc3RhbGwtcGRmLWFtOgorKworK2luc3RhbGwt cHM6IGluc3RhbGwtcHMtcmVjdXJzaXZlCisrCisraW5zdGFsbC1wcy1hbToKKysKKytpbnN0YWxs Y2hlY2stYW06CisrCisrbWFpbnRhaW5lci1jbGVhbjogbWFpbnRhaW5lci1jbGVhbi1yZWN1cnNp dmUKKysJLXJtIC1yZiAuLyQoREVQRElSKQorKwktcm0gLWYgTWFrZWZpbGUKKyttYWludGFpbmVy LWNsZWFuLWFtOiBkaXN0Y2xlYW4tYW0gbWFpbnRhaW5lci1jbGVhbi1nZW5lcmljCisrCisrbW9z dGx5Y2xlYW46IG1vc3RseWNsZWFuLXJlY3Vyc2l2ZQorKworK21vc3RseWNsZWFuLWFtOiBtb3N0 bHljbGVhbi1jb21waWxlIG1vc3RseWNsZWFuLWdlbmVyaWMgXAorKwltb3N0bHljbGVhbi1saWJ0 b29sCisrCisrcGRmOiBwZGYtcmVjdXJzaXZlCisrCisrcGRmLWFtOgorKworK3BzOiBwcy1yZWN1 cnNpdmUKKysKKytwcy1hbToKKysKKyt1bmluc3RhbGwtYW06IHVuaW5zdGFsbC1saWJMVExJQlJB UklFUyB1bmluc3RhbGwtcGtnaW5jbHVkZUhFQURFUlMKKysKKysuTUFLRTogJChSRUNVUlNJVkVf Q0xFQU5fVEFSR0VUUykgJChSRUNVUlNJVkVfVEFSR0VUUykgY3RhZ3MtcmVjdXJzaXZlIFwKKysJ aW5zdGFsbC1hbSBpbnN0YWxsLXN0cmlwIHRhZ3MtcmVjdXJzaXZlCisrCisrLlBIT05ZOiAkKFJF Q1VSU0lWRV9DTEVBTl9UQVJHRVRTKSAkKFJFQ1VSU0lWRV9UQVJHRVRTKSBDVEFHUyBHVEFHUyBc CisrCWFsbCBhbGwtYW0gY2hlY2sgY2hlY2stYW0gY2xlYW4gY2xlYW4tZ2VuZXJpYyBcCisrCWNs ZWFuLWxpYkxUTElCUkFSSUVTIGNsZWFuLWxpYnRvb2wgY3RhZ3MgY3RhZ3MtcmVjdXJzaXZlIFwK KysJZGlzdGNsZWFuIGRpc3RjbGVhbi1jb21waWxlIGRpc3RjbGVhbi1nZW5lcmljIFwKKysJZGlz dGNsZWFuLWxpYnRvb2wgZGlzdGNsZWFuLXRhZ3MgZGlzdGRpciBkdmkgZHZpLWFtIGh0bWwgXAor KwlodG1sLWFtIGluZm8gaW5mby1hbSBpbnN0YWxsIGluc3RhbGwtYW0gaW5zdGFsbC1kYXRhIFwK KysJaW5zdGFsbC1kYXRhLWFtIGluc3RhbGwtZHZpIGluc3RhbGwtZHZpLWFtIGluc3RhbGwtZXhl YyBcCisrCWluc3RhbGwtZXhlYy1hbSBpbnN0YWxsLWh0bWwgaW5zdGFsbC1odG1sLWFtIGluc3Rh bGwtaW5mbyBcCisrCWluc3RhbGwtaW5mby1hbSBpbnN0YWxsLWxpYkxUTElCUkFSSUVTIGluc3Rh bGwtbWFuIGluc3RhbGwtcGRmIFwKKysJaW5zdGFsbC1wZGYtYW0gaW5zdGFsbC1wa2dpbmNsdWRl SEVBREVSUyBpbnN0YWxsLXBzIFwKKysJaW5zdGFsbC1wcy1hbSBpbnN0YWxsLXN0cmlwIGluc3Rh bGxjaGVjayBpbnN0YWxsY2hlY2stYW0gXAorKwlpbnN0YWxsZGlycyBpbnN0YWxsZGlycy1hbSBt YWludGFpbmVyLWNsZWFuIFwKKysJbWFpbnRhaW5lci1jbGVhbi1nZW5lcmljIG1vc3RseWNsZWFu IG1vc3RseWNsZWFuLWNvbXBpbGUgXAorKwltb3N0bHljbGVhbi1nZW5lcmljIG1vc3RseWNsZWFu LWxpYnRvb2wgcGRmIHBkZi1hbSBwcyBwcy1hbSBcCisrCXRhZ3MgdGFncy1yZWN1cnNpdmUgdW5p bnN0YWxsIHVuaW5zdGFsbC1hbSBcCisrCXVuaW5zdGFsbC1saWJMVExJQlJBUklFUyB1bmluc3Rh bGwtcGtnaW5jbHVkZUhFQURFUlMKKysKKytAU0VUX01BS0VACisrCisrIyBUZWxsIHZlcnNpb25z IFszLjU5LDMuNjMpIG9mIEdOVSBtYWtlIHRvIG5vdCBleHBvcnQgYWxsIHZhcmlhYmxlcy4KKysj IE90aGVyd2lzZSBhIHN5c3RlbSBsaW1pdCAoZm9yIFN5c1YgYXQgbGVhc3QpIG1heSBiZSBleGNl ZWRlZC4KKysuTk9FWFBPUlQ6CitkaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNr ZW5kcy9teXNxbC9zb2NpLW15c3FsLmggc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMv bXlzcWwvc29jaS1teXNxbC5oCistLS0gc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9t eXNxbC9zb2NpLW15c3FsLmgJMjAxMC0wMS0yMyAxNDo0NTo0NC4wMDAwMDAwMDAgKzAxMDAKKysr KyBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9teXNxbC9zb2NpLW15c3FsLmgJMjAw OS0wNC0xNiAxOTozNzowNi4wMDAwMDAwMDAgKzAyMDAKK0BAIC0yMywxMiArMjMsMjMgQEAKKyAj aWZuZGVmIFNPQ0lfTVlTUUxfREVDTAorICMgZGVmaW5lIFNPQ0lfTVlTUUxfREVDTAorICNlbmRp ZgorLQorLSNpbmNsdWRlICJzb2NpLWJhY2tlbmQuaCIKKysvLworKyNpZiBkZWZpbmVkKFNPQ0lf SEVBREVSU19CVVJJRUQpCisrIyAgICAgICBpbmNsdWRlIDxzb2NpL2NvcmUvc29jaS1iYWNrZW5k Lmg+CisrI2Vsc2UKKysjCWluY2x1ZGUgPHNvY2ktYmFja2VuZC5oPgorKyNlbmRpZgorKy8vCisg I2lmZGVmIF9XSU4zMgorICNpbmNsdWRlIDx3aW5zb2NrLmg+IC8vIFNPQ0tFVAorICNlbmRpZiAv LyBfV0lOMzIKKy0jaW5jbHVkZSA8bXlzcWwuaD4gLy8gTXlTUUwgQ2xpZW50CisrLy8KKysvLyBN eVNRTCBDbGllbnQKKysjaWYgZGVmaW5lZChTT0NJX01ZU1FMX0hFQURFUlNfQlVSSUVEKQorKyMg ICAgICAgaW5jbHVkZSA8bXlzcWwvbXlzcWwuaD4KKysjZWxzZQorKyMJaW5jbHVkZSA8bXlzcWwu aD4KKysjZW5kaWYKKyAjaW5jbHVkZSA8dmVjdG9yPgorIAorIAorZGlmZiAtTnVyIHNvY2ktMy4w LjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvbXlzcWwvc291cmNlcy5tayBzb2NpLTMuMC4wX3RyZXAz MDAvc29jaS9iYWNrZW5kcy9teXNxbC9zb3VyY2VzLm1rCistLS0gc29jaS0zLjAuMF80LXBhY2sv c29jaS9iYWNrZW5kcy9teXNxbC9zb3VyY2VzLm1rCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAw MDAwICswMTAwCisrKysgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvbXlzcWwvc291 cmNlcy5tawkyMDA5LTA0LTE2IDE5OjM3OjA2LjAwMDAwMDAwMCArMDIwMAorQEAgLTAsMCArMSwx NCBAQAorK2Jja19teXNxbF9oX3NvdXJjZXMgPSBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3Nv Y2kvYmFja2VuZHMvbXlzcWwvY29tbW9uLmggXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2Np L2JhY2tlbmRzL215c3FsL3NvY2ktbXlzcWwuaAorK2Jja19teXNxbF9jY19zb3VyY2VzID0gXAor KyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL2Jsb2IuY3BwIFwKKysg ICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9jb21tb24uY3BwIFwKKysg ICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9mYWN0b3J5LmNwcCBcCisr ICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvcm93LWlkLmNwcCBcCisr ICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvc2Vzc2lvbi5jcHAgXAor KyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3N0YW5kYXJkLWludG8t dHlwZS5jcHAgXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3N0 YW5kYXJkLXVzZS10eXBlLmNwcCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2Vu ZHMvbXlzcWwvc3RhdGVtZW50LmNwcCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFj a2VuZHMvbXlzcWwvdmVjdG9yLWludG8tdHlwZS5jcHAgXAorKyAgICAgICAgJCh0b3Bfc3JjZGly KS9zb2NpL2JhY2tlbmRzL215c3FsL3ZlY3Rvci11c2UtdHlwZS5jcHAKK2RpZmYgLU51ciBzb2Np LTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL215c3FsL3N0YW5kYXJkLWludG8tdHlwZS5jcHAg c29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvbXlzcWwvc3RhbmRhcmQtaW50by10eXBl LmNwcAorLS0tIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvbXlzcWwvc3RhbmRhcmQt aW50by10eXBlLmNwcAkyMDEwLTAxLTIzIDE0OjQ1OjQ0LjAwMDAwMDAwMCArMDEwMAorKysrIHNv Y2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL215c3FsL3N0YW5kYXJkLWludG8tdHlwZS5j cHAJMjAwOS0wNC0xNiAxOTozNzowNi4wMDAwMDAwMDAgKzAyMDAKK0BAIC04LDggKzgsMTQgQEAK KyAKKyAjZGVmaW5lIFNPQ0lfTVlTUUxfU09VUkNFCisgI2luY2x1ZGUgInNvY2ktbXlzcWwuaCIK Ky0jaW5jbHVkZSA8c29jaS1wbGF0Zm9ybS5oPgorICNpbmNsdWRlICJjb21tb24uaCIKKysvLwor KyNpZiBkZWZpbmVkKFNPQ0lfSEVBREVSU19CVVJJRUQpCisrIyAgICAgICBpbmNsdWRlIDxzb2Np L2NvcmUvc29jaS1wbGF0Zm9ybS5oPgorKyNlbHNlCisrIwlpbmNsdWRlIDxzb2NpLXBsYXRmb3Jt Lmg+CisrI2VuZGlmCisrLy8KKyAjaW5jbHVkZSA8Y2lzbzY0Nj4KKyAjaW5jbHVkZSA8Y2Fzc2Vy dD4KKyAjaW5jbHVkZSA8Y3RpbWU+CitkaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svc29jaS9i YWNrZW5kcy9teXNxbC9zdGFuZGFyZC11c2UtdHlwZS5jcHAgc29jaS0zLjAuMF90cmVwMzAwL3Nv Y2kvYmFja2VuZHMvbXlzcWwvc3RhbmRhcmQtdXNlLXR5cGUuY3BwCistLS0gc29jaS0zLjAuMF80 LXBhY2svc29jaS9iYWNrZW5kcy9teXNxbC9zdGFuZGFyZC11c2UtdHlwZS5jcHAJMjAxMC0wMS0y MyAxNDo0NTo0NC4wMDAwMDAwMDAgKzAxMDAKKysrKyBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9i YWNrZW5kcy9teXNxbC9zdGFuZGFyZC11c2UtdHlwZS5jcHAJMjAwOS0wNS0wNSAyMjoyNTo0MC4w MDAwMDAwMDAgKzAyMDAKK0BAIC05LDcgKzksMTIgQEAKKyAjZGVmaW5lIFNPQ0lfTVlTUUxfU09V UkNFCisgI2luY2x1ZGUgInNvY2ktbXlzcWwuaCIKKyAjaW5jbHVkZSAiY29tbW9uLmgiCistI2lu Y2x1ZGUgPHNvY2ktcGxhdGZvcm0uaD4KKysvLworKyNpZiBkZWZpbmVkKFNPQ0lfSEVBREVSU19C VVJJRUQpCisrIyAgICAgICBpbmNsdWRlIDxzb2NpL2NvcmUvc29jaS1wbGF0Zm9ybS5oPgorKyNl bHNlCisrIwlpbmNsdWRlIDxzb2NpLXBsYXRmb3JtLmg+CisrI2VuZGlmCisgLy8KKyAjaW5jbHVk ZSA8Y2lzbzY0Nj4KKyAjaW5jbHVkZSA8bGltaXRzPgorZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1w YWNrL3NvY2kvYmFja2VuZHMvbXlzcWwvdGVzdC9NYWtlZmlsZS5hbSBzb2NpLTMuMC4wX3RyZXAz MDAvc29jaS9iYWNrZW5kcy9teXNxbC90ZXN0L01ha2VmaWxlLmFtCistLS0gc29jaS0zLjAuMF80 LXBhY2svc29jaS9iYWNrZW5kcy9teXNxbC90ZXN0L01ha2VmaWxlLmFtCTE5NzAtMDEtMDEgMDE6 MDA6MDAuMDAwMDAwMDAwICswMTAwCisrKysgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2Vu ZHMvbXlzcWwvdGVzdC9NYWtlZmlsZS5hbQkyMDEwLTAxLTIzIDE0OjQzOjE4LjAwMDAwMDAwMCAr MDEwMAorQEAgLTAsMCArMSwxOCBAQAorKyMjIGJhY2tlbmQvbXlzcWwvdGVzdCBzdWItZGlyZWN0 b3J5CisraW5jbHVkZSAkKHRvcF9zcmNkaXIpL01ha2VmaWxlLmNvbW1vbgorK2luY2x1ZGUgJChz cmNkaXIpL3NvdXJjZXMubWsKKysKKytNQUlOVEFJTkVSQ0xFQU5GSUxFUyA9IE1ha2VmaWxlLmlu CisrCisraWYgUlVOX1RFU1RTCisrICBub2luc3RfUFJPR1JBTVMgPSB0ZXN0X215c3FsCisrZW5k aWYKKysKKyt0ZXN0X215c3FsX1NPVVJDRVMgPSAkKG15c3FsX3Rlc3RfY2Nfc291cmNlcykKKyt0 ZXN0X215c3FsX0NYWEZMQUdTID0gJChCT09TVF9DRkxBR1MpCisrdGVzdF9teXNxbF9MREFERCA9 CisrdGVzdF9teXNxbF9MREZMQUdTID0gJCh0b3BfYnVpbGRkaXIpL3NvY2kvY29yZS9saWJzb2Np X2NvcmUubGEgLWxkbCBcCisrCQkkKHRvcF9idWlsZGRpcikvc29jaS9iYWNrZW5kcy9teXNxbC9s aWJzb2NpX215c3FsLmxhIFwKKysJCSQoTVlTUUxfTElCUykKKysKKysjbm9kaXN0X3BrZ2luY2x1 ZGVfSEVBREVSUyA9ICQobXlzcWxfdGVzdF9oX3NvdXJjZXMpCitkaWZmIC1OdXIgc29jaS0zLjAu MF80LXBhY2svc29jaS9iYWNrZW5kcy9teXNxbC90ZXN0L01ha2VmaWxlLmJhc2ljIHNvY2ktMy4w LjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL215c3FsL3Rlc3QvTWFrZWZpbGUuYmFzaWMKKy0tLSBz b2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL215c3FsL3Rlc3QvTWFrZWZpbGUuYmFzaWMJ MjAxMC0wMS0yMyAxNDo0NTo0NC4wMDAwMDAwMDAgKzAxMDAKKysrKyBzb2NpLTMuMC4wX3RyZXAz MDAvc29jaS9iYWNrZW5kcy9teXNxbC90ZXN0L01ha2VmaWxlLmJhc2ljCTE5NzAtMDEtMDEgMDE6 MDA6MDAuMDAwMDAwMDAwICswMTAwCitAQCAtMSwyMiArMCwwIEBACistIyBUaGUgZm9sbG93aW5n IHZhcmlhYmxlcyBhcmUgc3BlY2lmaWMgdG8gdGhpcyBiYWNrZW5kIGFuZCB0aGVpciBjb3JyZWN0 CistIyB2YWx1ZXMgbWlnaHQgZGVwZW5kIG9uIHlvdXIgZW52aXJvbm1lbnQgLSBmZWVsIGZyZWUg dG8gc2V0IGl0IGFjY29yZGluZ2x5LgorLQorLU1ZU1FMTElCRElSID0gLUwvdXNyL2xpYi9teXNx bAorLU1ZU1FMTElCUyA9IC1sbXlzcWxjbGllbnQgLWx6CistTVlTUUxJTkNMVURFRElSID0gLUkv dXNyL2luY2x1ZGUvbXlzcWwKKy0KKy0jIFRoZSByZXN0IG9mIHRoZSBNYWtlZmlsZSBpcyBpbmRl cGVuZGVudCBvZiB0aGUgdGFyZ2V0IGVudmlyb25tZW50LgorLQorLUNPTVBJTEVSID0gZysrCist Q1hYRkxBR1MgPSAtV2FsbCAtcGVkYW50aWMgLVduby1sb25nLWxvbmcKKy1JTkNMVURFRElSUyA9 IC1JLi4gLUkuLi8uLi8uLi9jb3JlICR7TVlTUUxJTkNMVURFRElSfQorLUxJQkRJUlMgPSAtTC4u IC1MLi4vLi4vLi4vY29yZSAke01ZU1FMTElCRElSfQorLUxJQlMgPSAtbHNvY2lfY29yZSAtbHNv Y2lfbXlzcWwgLWxkbCAke01ZU1FMTElCU30KKy0KKy0KKy10ZXN0LW15c3FsIDogdGVzdC1teXNx bC5jcHAKKy0JJHtDT01QSUxFUn0gLW8gJEAgJD8gJHtDWFhGTEFHU30gJHtJTkNMVURFRElSU30g JHtMSUJESVJTfSAke0xJQlN9CistCistCistY2xlYW4gOgorLQlybSAtZiB0ZXN0LW15c3FsCitk aWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9teXNxbC90ZXN0L01ha2Vm aWxlLmluIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL215c3FsL3Rlc3QvTWFrZWZp bGUuaW4KKy0tLSBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL215c3FsL3Rlc3QvTWFr ZWZpbGUuaW4JMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKKysrKyBzb2NpLTMu MC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9teXNxbC90ZXN0L01ha2VmaWxlLmluCTIwMTAtMDEt MjMgMTQ6NDQ6NTEuMDAwMDAwMDAwICswMTAwCitAQCAtMCwwICsxLDU1OCBAQAorKyMgTWFrZWZp bGUuaW4gZ2VuZXJhdGVkIGJ5IGF1dG9tYWtlIDEuMTEuMSBmcm9tIE1ha2VmaWxlLmFtLgorKyMg QGNvbmZpZ3VyZV9pbnB1dEAKKysKKysjIENvcHlyaWdodCAoQykgMTk5NCwgMTk5NSwgMTk5Niwg MTk5NywgMTk5OCwgMTk5OSwgMjAwMCwgMjAwMSwgMjAwMiwKKysjIDIwMDMsIDIwMDQsIDIwMDUs IDIwMDYsIDIwMDcsIDIwMDgsIDIwMDkgIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwKKysjIElu Yy4KKysjIFRoaXMgTWFrZWZpbGUuaW4gaXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdh cmUgRm91bmRhdGlvbgorKyMgZ2l2ZXMgdW5saW1pdGVkIHBlcm1pc3Npb24gdG8gY29weSBhbmQv b3IgZGlzdHJpYnV0ZSBpdCwKKysjIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb25zLCBhcyBs b25nIGFzIHRoaXMgbm90aWNlIGlzIHByZXNlcnZlZC4KKysKKysjIFRoaXMgcHJvZ3JhbSBpcyBk aXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorKyMgYnV0IFdJ VEhPVVQgQU5ZIFdBUlJBTlRZLCB0byB0aGUgZXh0ZW50IHBlcm1pdHRlZCBieSBsYXc7IHdpdGhv dXQKKysjIGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJ VE5FU1MgRk9SIEEKKysjIFBBUlRJQ1VMQVIgUFVSUE9TRS4KKysKKytAU0VUX01BS0VACisrCisr VlBBVEggPSBAc3JjZGlyQAorK3BrZ2RhdGFkaXIgPSAkKGRhdGFkaXIpL0BQQUNLQUdFQAorK3Br Z2luY2x1ZGVkaXIgPSAkKGluY2x1ZGVkaXIpL0BQQUNLQUdFQAorK3BrZ2xpYmRpciA9ICQobGli ZGlyKS9AUEFDS0FHRUAKKytwa2dsaWJleGVjZGlyID0gJChsaWJleGVjZGlyKS9AUEFDS0FHRUAK KythbV9fY2QgPSBDRFBBVEg9IiQke1pTSF9WRVJTSU9OKy59JChQQVRIX1NFUEFSQVRPUikiICYm IGNkCisraW5zdGFsbF9zaF9EQVRBID0gJChpbnN0YWxsX3NoKSAtYyAtbSA2NDQKKytpbnN0YWxs X3NoX1BST0dSQU0gPSAkKGluc3RhbGxfc2gpIC1jCisraW5zdGFsbF9zaF9TQ1JJUFQgPSAkKGlu c3RhbGxfc2gpIC1jCisrSU5TVEFMTF9IRUFERVIgPSAkKElOU1RBTExfREFUQSkKKyt0cmFuc2Zv cm0gPSAkKHByb2dyYW1fdHJhbnNmb3JtX25hbWUpCisrTk9STUFMX0lOU1RBTEwgPSA6CisrUFJF X0lOU1RBTEwgPSA6CisrUE9TVF9JTlNUQUxMID0gOgorK05PUk1BTF9VTklOU1RBTEwgPSA6Cisr UFJFX1VOSU5TVEFMTCA9IDoKKytQT1NUX1VOSU5TVEFMTCA9IDoKKytidWlsZF90cmlwbGV0ID0g QGJ1aWxkQAorK2hvc3RfdHJpcGxldCA9IEBob3N0QAorK0RJU1RfQ09NTU9OID0gJChzcmNkaXIp L01ha2VmaWxlLmFtICQoc3JjZGlyKS9NYWtlZmlsZS5pbiBcCisrCSQoc3JjZGlyKS9zb3VyY2Vz Lm1rICQodG9wX3NyY2RpcikvTWFrZWZpbGUuY29tbW9uCisrQFJVTl9URVNUU19UUlVFQG5vaW5z dF9QUk9HUkFNUyA9IHRlc3RfbXlzcWwkKEVYRUVYVCkKKytzdWJkaXIgPSBzb2NpL2JhY2tlbmRz L215c3FsL3Rlc3QKKytBQ0xPQ0FMX000ID0gJCh0b3Bfc3JjZGlyKS9hY2xvY2FsLm00CisrYW1f X2FjbG9jYWxfbTRfZGVwcyA9ICQodG9wX3NyY2RpcikvY29uZmlnL2F4X2Jvb3N0Lm00IFwKKysJ JCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfbXlzcWwubTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZp Zy9heF9vcmFjbGVfb2NpLm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfcG9zdGdyZXNx bC5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2NwcHVuaXQubTQgXAorKwkkKHRvcF9zcmNk aXIpL2NvbmZpZy9saWJ0b29sLm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcvbHRvcHRpb25z Lm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcvbHRzdWdhci5tNCBcCisrCSQodG9wX3NyY2Rp cikvY29uZmlnL2x0dmVyc2lvbi5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2x0fm9ic29s ZXRlLm00ICQodG9wX3NyY2RpcikvY29uZmlndXJlLmFjCisrYW1fX2NvbmZpZ3VyZV9kZXBzID0g JChhbV9fYWNsb2NhbF9tNF9kZXBzKSAkKENPTkZJR1VSRV9ERVBFTkRFTkNJRVMpIFwKKysJJChB Q0xPQ0FMX000KQorK21raW5zdGFsbGRpcnMgPSAkKGluc3RhbGxfc2gpIC1kCisrQ09ORklHX0hF QURFUiA9ICQodG9wX2J1aWxkZGlyKS9zb2NpL2NvbmZpZy5oCisrQ09ORklHX0NMRUFOX0ZJTEVT ID0KKytDT05GSUdfQ0xFQU5fVlBBVEhfRklMRVMgPQorK1BST0dSQU1TID0gJChub2luc3RfUFJP R1JBTVMpCisrYW1fX29iamVjdHNfMSA9IHRlc3RfbXlzcWwtdGVzdC1teXNxbC4kKE9CSkVYVCkK KythbV90ZXN0X215c3FsX09CSkVDVFMgPSAkKGFtX19vYmplY3RzXzEpCisrdGVzdF9teXNxbF9P QkpFQ1RTID0gJChhbV90ZXN0X215c3FsX09CSkVDVFMpCisrdGVzdF9teXNxbF9ERVBFTkRFTkNJ RVMgPQorK3Rlc3RfbXlzcWxfTElOSyA9ICQoTElCVE9PTCkgLS10YWc9Q1hYICQoQU1fTElCVE9P TEZMQUdTKSBcCisrCSQoTElCVE9PTEZMQUdTKSAtLW1vZGU9bGluayAkKENYWExEKSAkKHRlc3Rf bXlzcWxfQ1hYRkxBR1MpIFwKKysJJChDWFhGTEFHUykgJCh0ZXN0X215c3FsX0xERkxBR1MpICQo TERGTEFHUykgLW8gJEAKKytERUZBVUxUX0lOQ0xVREVTID0gLUkuQGFtX19pc3JjQCAtSSQodG9w X2J1aWxkZGlyKS9zb2NpCisrZGVwY29tcCA9ICQoU0hFTEwpICQodG9wX3NyY2RpcikvY29uZmln L2RlcGNvbXAKKythbV9fZGVwZmlsZXNfbWF5YmUgPSBkZXBmaWxlcworK2FtX19tdiA9IG12IC1m CisrQ1hYQ09NUElMRSA9ICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNM VURFUykgXAorKwkkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKEFNX0NYWEZMQUdTKSAkKENY WEZMQUdTKQorK0xUQ1hYQ09NUElMRSA9ICQoTElCVE9PTCkgLS10YWc9Q1hYICQoQU1fTElCVE9P TEZMQUdTKSAkKExJQlRPT0xGTEFHUykgXAorKwktLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZT KSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpIFwKKysJJChBTV9DUFBGTEFHUykgJChD UFBGTEFHUykgJChBTV9DWFhGTEFHUykgJChDWFhGTEFHUykKKytDWFhMRCA9ICQoQ1hYKQorK0NY WExJTksgPSAkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09M RkxBR1MpIFwKKysJLS1tb2RlPWxpbmsgJChDWFhMRCkgJChBTV9DWFhGTEFHUykgJChDWFhGTEFH UykgJChBTV9MREZMQUdTKSBcCisrCSQoTERGTEFHUykgLW8gJEAKKytTT1VSQ0VTID0gJCh0ZXN0 X215c3FsX1NPVVJDRVMpCisrRElTVF9TT1VSQ0VTID0gJCh0ZXN0X215c3FsX1NPVVJDRVMpCisr RVRBR1MgPSBldGFncworK0NUQUdTID0gY3RhZ3MKKytESVNURklMRVMgPSAkKERJU1RfQ09NTU9O KSAkKERJU1RfU09VUkNFUykgJChURVhJTkZPUykgJChFWFRSQV9ESVNUKQorK0FDTE9DQUwgPSBA QUNMT0NBTEAKKytBTVRBUiA9IEBBTVRBUkAKKytBUiA9IEBBUkAKKytBVVRPQ09ORiA9IEBBVVRP Q09ORkAKKytBVVRPSEVBREVSID0gQEFVVE9IRUFERVJACisrQVVUT01BS0UgPSBAQVVUT01BS0VA CisrQVdLID0gQEFXS0AKKytCT09TVF9DRkxBR1MgPSBAQk9PU1RfQ0ZMQUdTQAorK0JPT1NUX0RB VEVfVElNRV9MSUIgPSBAQk9PU1RfREFURV9USU1FX0xJQkAKKytCT09TVF9GSUxFU1lTVEVNX0xJ QiA9IEBCT09TVF9GSUxFU1lTVEVNX0xJQkAKKytCT09TVF9JT1NUUkVBTVNfTElCID0gQEJPT1NU X0lPU1RSRUFNU19MSUJACisrQk9PU1RfTElCUyA9IEBCT09TVF9MSUJTQAorK0JPT1NUX01QSV9M SUIgPSBAQk9PU1RfTVBJX0xJQkAKKytCT09TVF9NUElfUFlUSE9OX0xJQiA9IEBCT09TVF9NUElf UFlUSE9OX0xJQkAKKytCT09TVF9QUk9HUkFNX09QVElPTlNfTElCID0gQEJPT1NUX1BST0dSQU1f T1BUSU9OU19MSUJACisrQk9PU1RfUFlUSE9OX0xJQiA9IEBCT09TVF9QWVRIT05fTElCQAorK0JP T1NUX1JFR0VYX0xJQiA9IEBCT09TVF9SRUdFWF9MSUJACisrQk9PU1RfU0VSSUFMSVpBVElPTl9M SUIgPSBAQk9PU1RfU0VSSUFMSVpBVElPTl9MSUJACisrQk9PU1RfU0lHTkFMU19MSUIgPSBAQk9P U1RfU0lHTkFMU19MSUJACisrQk9PU1RfU1lTVEVNX0xJQiA9IEBCT09TVF9TWVNURU1fTElCQAor K0JPT1NUX1RIUkVBRF9MSUIgPSBAQk9PU1RfVEhSRUFEX0xJQkAKKytCT09TVF9VTklUX1RFU1Rf RlJBTUVXT1JLX0xJQiA9IEBCT09TVF9VTklUX1RFU1RfRlJBTUVXT1JLX0xJQkAKKytCT09TVF9W RVJTSU9OID0gQEJPT1NUX1ZFUlNJT05ACisrQk9PU1RfV1NFUklBTElaQVRJT05fTElCID0gQEJP T1NUX1dTRVJJQUxJWkFUSU9OX0xJQkAKKytDQyA9IEBDQ0AKKytDQ0RFUE1PREUgPSBAQ0NERVBN T0RFQAorK0NGTEFHUyA9IEBDRkxBR1NACisrQ1BQID0gQENQUEAKKytDUFBGTEFHUyA9IEBDUFBG TEFHU0AKKytDUFBVTklUX0NGTEFHUyA9IEBDUFBVTklUX0NGTEFHU0AKKytDUFBVTklUX0NPTkZJ RyA9IEBDUFBVTklUX0NPTkZJR0AKKytDUFBVTklUX0xJQlMgPSBAQ1BQVU5JVF9MSUJTQAorK0NQ UFVOSVRfVkVSU0lPTiA9IEBDUFBVTklUX1ZFUlNJT05ACisrQ1hYID0gQENYWEAKKytDWFhDUFAg PSBAQ1hYQ1BQQAorK0NYWERFUE1PREUgPSBAQ1hYREVQTU9ERUAKKytDWFhGTEFHUyA9IEBDWFhG TEFHU0AKKytDWUdQQVRIX1cgPSBAQ1lHUEFUSF9XQAorK0RFRlMgPSBAREVGU0AKKytERVBESVIg PSBAREVQRElSQAorK0RTWU1VVElMID0gQERTWU1VVElMQAorK0RVTVBCSU4gPSBARFVNUEJJTkAK KytFQ0hPX0MgPSBARUNIT19DQAorK0VDSE9fTiA9IEBFQ0hPX05ACisrRUNIT19UID0gQEVDSE9f VEAKKytFR1JFUCA9IEBFR1JFUEAKKytFWEVFWFQgPSBARVhFRVhUQAorK0ZHUkVQID0gQEZHUkVQ QAorK0dFTkVSSUNfTElCUkFSWV9WRVJTSU9OID0gQEdFTkVSSUNfTElCUkFSWV9WRVJTSU9OQAor K0dSRVAgPSBAR1JFUEAKKytJTlNUQUxMID0gQElOU1RBTExACisrSU5TVEFMTF9EQVRBID0gQElO U1RBTExfREFUQUAKKytJTlNUQUxMX1BST0dSQU0gPSBASU5TVEFMTF9QUk9HUkFNQAorK0lOU1RB TExfU0NSSVBUID0gQElOU1RBTExfU0NSSVBUQAorK0lOU1RBTExfU1RSSVBfUFJPR1JBTSA9IEBJ TlNUQUxMX1NUUklQX1BST0dSQU1ACisrTEQgPSBATERACisrTERGTEFHUyA9IEBMREZMQUdTQAor K0xJQk9CSlMgPSBATElCT0JKU0AKKytMSUJTID0gQExJQlNACisrTElCVE9PTCA9IEBMSUJUT09M QAorK0xJUE8gPSBATElQT0AKKytMTl9TID0gQExOX1NACisrTFRMSUJPQkpTID0gQExUTElCT0JK U0AKKytNQUtFSU5GTyA9IEBNQUtFSU5GT0AKKytNS0RJUl9QID0gQE1LRElSX1BACisrTVlTUUxf Q0ZMQUdTID0gQE1ZU1FMX0NGTEFHU0AKKytNWVNRTF9DX0xJQiA9IEBNWVNRTF9DX0xJQkAKKytN WVNRTF9ESVJTID0gQE1ZU1FMX0RJUlNACisrTVlTUUxfTElCUyA9IEBNWVNRTF9MSUJTQAorK01Z U1FMX1ZFUlNJT04gPSBATVlTUUxfVkVSU0lPTkAKKytOTSA9IEBOTUAKKytOTUVESVQgPSBATk1F RElUQAorK09CSkRVTVAgPSBAT0JKRFVNUEAKKytPQkpFWFQgPSBAT0JKRVhUQAorK09SQUNMRV9E SVJTID0gQE9SQUNMRV9ESVJTQAorK09SQUNMRV9PQ0lfQ0ZMQUdTID0gQE9SQUNMRV9PQ0lfQ0ZM QUdTQAorK09SQUNMRV9PQ0lfTERGTEFHUyA9IEBPUkFDTEVfT0NJX0xERkxBR1NACisrT1JBQ0xF X09DSV9WRVJTSU9OID0gQE9SQUNMRV9PQ0lfVkVSU0lPTkAKKytPVE9PTCA9IEBPVE9PTEAKKytP VE9PTDY0ID0gQE9UT09MNjRACisrUEFDS0FHRSA9IEBQQUNLQUdFQAorK1BBQ0tBR0VfQlVHUkVQ T1JUID0gQFBBQ0tBR0VfQlVHUkVQT1JUQAorK1BBQ0tBR0VfTkFNRSA9IEBQQUNLQUdFX05BTUVA CisrUEFDS0FHRV9TVFJJTkcgPSBAUEFDS0FHRV9TVFJJTkdACisrUEFDS0FHRV9UQVJOQU1FID0g QFBBQ0tBR0VfVEFSTkFNRUAKKytQQUNLQUdFX1ZFUlNJT04gPSBAUEFDS0FHRV9WRVJTSU9OQAor K1BBVEhfU0VQQVJBVE9SID0gQFBBVEhfU0VQQVJBVE9SQAorK1BFUkwgPSBAUEVSTEAKKytQR19D T05GSUcgPSBAUEdfQ09ORklHQAorK1BPU1RHUkVTUUxfQ0ZMQUdTID0gQFBPU1RHUkVTUUxfQ0ZM QUdTQAorK1BPU1RHUkVTUUxfRElSUyA9IEBQT1NUR1JFU1FMX0RJUlNACisrUE9TVEdSRVNRTF9M REZMQUdTID0gQFBPU1RHUkVTUUxfTERGTEFHU0AKKytQT1NUR1JFU1FMX1ZFUlNJT04gPSBAUE9T VEdSRVNRTF9WRVJTSU9OQAorK1JBTkxJQiA9IEBSQU5MSUJACisrUlBNX1JFTEVBU0UgPSBAUlBN X1JFTEVBU0VACisrU0VEID0gQFNFREAKKytTRVRfTUFLRSA9IEBTRVRfTUFLRUAKKytTSEVMTCA9 IEBTSEVMTEAKKytTT0NJX0hFQURFUlNfQlVSSUVEID0gQFNPQ0lfSEVBREVSU19CVVJJRURACisr U09DSV9NWVNRTF9IRUFERVJTX0JVUklFRCA9IEBTT0NJX01ZU1FMX0hFQURFUlNfQlVSSUVEQAor K1NPQ0lfUE9TVEdSRVNRTF9IRUFERVJTX0JVUklFRCA9IEBTT0NJX1BPU1RHUkVTUUxfSEVBREVS U19CVVJJRURACisrU1RSSVAgPSBAU1RSSVBACisrVVBMT0FEX0NPTU1BTkQgPSBAVVBMT0FEX0NP TU1BTkRACisrVkVSU0lPTiA9IEBWRVJTSU9OQAorK2Fic19idWlsZGRpciA9IEBhYnNfYnVpbGRk aXJACisrYWJzX3NyY2RpciA9IEBhYnNfc3JjZGlyQAorK2Fic190b3BfYnVpbGRkaXIgPSBAYWJz X3RvcF9idWlsZGRpckAKKythYnNfdG9wX3NyY2RpciA9IEBhYnNfdG9wX3NyY2RpckAKKythY19j dF9DQyA9IEBhY19jdF9DQ0AKKythY19jdF9DWFggPSBAYWNfY3RfQ1hYQAorK2FjX2N0X0RVTVBC SU4gPSBAYWNfY3RfRFVNUEJJTkAKKythbV9faW5jbHVkZSA9IEBhbV9faW5jbHVkZUAKKythbV9f bGVhZGluZ19kb3QgPSBAYW1fX2xlYWRpbmdfZG90QAorK2FtX19xdW90ZSA9IEBhbV9fcXVvdGVA CisrYW1fX3RhciA9IEBhbV9fdGFyQAorK2FtX191bnRhciA9IEBhbV9fdW50YXJACisrYmluZGly ID0gQGJpbmRpckAKKytidWlsZCA9IEBidWlsZEAKKytidWlsZF9hbGlhcyA9IEBidWlsZF9hbGlh c0AKKytidWlsZF9jcHUgPSBAYnVpbGRfY3B1QAorK2J1aWxkX29zID0gQGJ1aWxkX29zQAorK2J1 aWxkX3ZlbmRvciA9IEBidWlsZF92ZW5kb3JACisrYnVpbGRkaXIgPSBAYnVpbGRkaXJACisrZGF0 YWRpciA9IEBkYXRhZGlyQAorK2RhdGFyb290ZGlyID0gQGRhdGFyb290ZGlyQAorK2RpZmZfb2sg PSBAZGlmZl9va0AKKytkb2NkaXIgPSBAZG9jZGlyQAorK2RveHlnZW5fb2sgPSBAZG94eWdlbl9v a0AKKytkdmlkaXIgPSBAZHZpZGlyQAorK2R2aXBzX29rID0gQGR2aXBzX29rQAorK2V4ZWNfcHJl Zml4ID0gQGV4ZWNfcHJlZml4QAorK2dzX29rID0gQGdzX29rQAorK2hvc3QgPSBAaG9zdEAKKyto b3N0X2FsaWFzID0gQGhvc3RfYWxpYXNACisraG9zdF9jcHUgPSBAaG9zdF9jcHVACisraG9zdF9v cyA9IEBob3N0X29zQAorK2hvc3RfdmVuZG9yID0gQGhvc3RfdmVuZG9yQAorK2h0bWxkaXIgPSBA aHRtbGRpckAKKytpbmNsdWRlZGlyID0gQGluY2x1ZGVkaXJACisraW5mb2RpciA9IEBpbmZvZGly QAorK2luc3RhbGxfc2ggPSBAaW5zdGFsbF9zaEAKKytsYXRleF9vayA9IEBsYXRleF9va0AKKyts aWJkaXIgPSBAbGliZGlyQAorK2xpYmV4ZWNkaXIgPSBAbGliZXhlY2RpckAKKytsb2NhbGVkaXIg PSBAbG9jYWxlZGlyQAorK2xvY2Fsc3RhdGVkaXIgPSBAbG9jYWxzdGF0ZWRpckAKKytsdF9FQ0hP ID0gQGx0X0VDSE9ACisrbWFuZGlyID0gQG1hbmRpckAKKytta2Rpcl9wID0gQG1rZGlyX3BACisr b2xkaW5jbHVkZWRpciA9IEBvbGRpbmNsdWRlZGlyQAorK3BkZmRpciA9IEBwZGZkaXJACisrcHJl Zml4ID0gQHByZWZpeEAKKytwcm9ncmFtX3RyYW5zZm9ybV9uYW1lID0gQHByb2dyYW1fdHJhbnNm b3JtX25hbWVACisrcHNkaXIgPSBAcHNkaXJACisrc2JpbmRpciA9IEBzYmluZGlyQAorK3NlZF9v ayA9IEBzZWRfb2tACisrc2hhcmVkc3RhdGVkaXIgPSBAc2hhcmVkc3RhdGVkaXJACisrc3JjZGly ID0gQHNyY2RpckAKKytzeXNjb25mZGlyID0gQHN5c2NvbmZkaXJACisrdGFyZ2V0X2FsaWFzID0g QHRhcmdldF9hbGlhc0AKKyt0b3BfYnVpbGRfcHJlZml4ID0gQHRvcF9idWlsZF9wcmVmaXhACisr dG9wX2J1aWxkZGlyID0gQHRvcF9idWlsZGRpckAKKyt0b3Bfc3JjZGlyID0gQHRvcF9zcmNkaXJA CisrQU1fQ1BQRkxBR1MgPSAtSSQodG9wX2J1aWxkZGlyKSAtSSQodG9wX3NyY2RpcikKKytteXNx bF90ZXN0X2hfc291cmNlcyA9IAorK215c3FsX3Rlc3RfY2Nfc291cmNlcyA9ICQodG9wX3NyY2Rp cikvc29jaS9iYWNrZW5kcy9teXNxbC90ZXN0L3Rlc3QtbXlzcWwuY3BwCisrTUFJTlRBSU5FUkNM RUFORklMRVMgPSBNYWtlZmlsZS5pbgorK3Rlc3RfbXlzcWxfU09VUkNFUyA9ICQobXlzcWxfdGVz dF9jY19zb3VyY2VzKQorK3Rlc3RfbXlzcWxfQ1hYRkxBR1MgPSAkKEJPT1NUX0NGTEFHUykKKyt0 ZXN0X215c3FsX0xEQUREID0gCisrdGVzdF9teXNxbF9MREZMQUdTID0gJCh0b3BfYnVpbGRkaXIp L3NvY2kvY29yZS9saWJzb2NpX2NvcmUubGEgLWxkbCBcCisrCQkkKHRvcF9idWlsZGRpcikvc29j aS9iYWNrZW5kcy9teXNxbC9saWJzb2NpX215c3FsLmxhIFwKKysJCSQoTVlTUUxfTElCUykKKysK KythbGw6IGFsbC1hbQorKworKy5TVUZGSVhFUzoKKysuU1VGRklYRVM6IC5jcHAgLmxvIC5vIC5v YmoKKyskKHNyY2RpcikvTWFrZWZpbGUuaW46ICAkKHNyY2RpcikvTWFrZWZpbGUuYW0gJCh0b3Bf c3JjZGlyKS9NYWtlZmlsZS5jb21tb24gJChzcmNkaXIpL3NvdXJjZXMubWsgJChhbV9fY29uZmln dXJlX2RlcHMpCisrCUBmb3IgZGVwIGluICQ/OyBkbyBcCisrCSAgY2FzZSAnJChhbV9fY29uZmln dXJlX2RlcHMpJyBpbiBcCisrCSAgICAqJCRkZXAqKSBcCisrCSAgICAgICggY2QgJCh0b3BfYnVp bGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoICkgXAorKwkgICAg ICAgICYmIHsgaWYgdGVzdCAtZiAkQDsgdGhlbiBleGl0IDA7IGVsc2UgYnJlYWs7IGZpOyB9OyBc CisrCSAgICAgIGV4aXQgMTs7IFwKKysJICBlc2FjOyBcCisrCWRvbmU7IFwKKysJZWNobyAnIGNk ICQodG9wX3NyY2RpcikgJiYgJChBVVRPTUFLRSkgLS1nbnUgc29jaS9iYWNrZW5kcy9teXNxbC90 ZXN0L01ha2VmaWxlJzsgXAorKwkkKGFtX19jZCkgJCh0b3Bfc3JjZGlyKSAmJiBcCisrCSAgJChB VVRPTUFLRSkgLS1nbnUgc29jaS9iYWNrZW5kcy9teXNxbC90ZXN0L01ha2VmaWxlCisrLlBSRUNJ T1VTOiBNYWtlZmlsZQorK01ha2VmaWxlOiAkKHNyY2RpcikvTWFrZWZpbGUuaW4gJCh0b3BfYnVp bGRkaXIpL2NvbmZpZy5zdGF0dXMKKysJQGNhc2UgJyQ/JyBpbiBcCisrCSAgKmNvbmZpZy5zdGF0 dXMqKSBcCisrCSAgICBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFH UykgYW0tLXJlZnJlc2g7OyBcCisrCSAgKikgXAorKwkgICAgZWNobyAnIGNkICQodG9wX2J1aWxk ZGlyKSAmJiAkKFNIRUxMKSAuL2NvbmZpZy5zdGF0dXMgJChzdWJkaXIpLyRAICQoYW1fX2RlcGZp bGVzX21heWJlKSc7IFwKKysJICAgIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKFNIRUxMKSAuL2Nv bmZpZy5zdGF0dXMgJChzdWJkaXIpLyRAICQoYW1fX2RlcGZpbGVzX21heWJlKTs7IFwKKysJZXNh YzsKKysKKyskKHRvcF9idWlsZGRpcikvY29uZmlnLnN0YXR1czogJCh0b3Bfc3JjZGlyKS9jb25m aWd1cmUgJChDT05GSUdfU1RBVFVTX0RFUEVOREVOQ0lFUykKKysJY2QgJCh0b3BfYnVpbGRkaXIp ICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCisrCisrJCh0b3Bfc3JjZGly KS9jb25maWd1cmU6ICAkKGFtX19jb25maWd1cmVfZGVwcykKKysJY2QgJCh0b3BfYnVpbGRkaXIp ICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCisrJChBQ0xPQ0FMX000KTog ICQoYW1fX2FjbG9jYWxfbTRfZGVwcykKKysJY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkg JChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCisrJChhbV9fYWNsb2NhbF9tNF9kZXBzKToKKysK KytjbGVhbi1ub2luc3RQUk9HUkFNUzoKKysJQGxpc3Q9JyQobm9pbnN0X1BST0dSQU1TKSc7IHRl c3QgLW4gIiQkbGlzdCIgfHwgZXhpdCAwOyBcCisrCWVjaG8gIiBybSAtZiIgJCRsaXN0OyBcCisr CXJtIC1mICQkbGlzdCB8fCBleGl0ICQkPzsgXAorKwl0ZXN0IC1uICIkKEVYRUVYVCkiIHx8IGV4 aXQgMDsgXAorKwlsaXN0PWBmb3IgcCBpbiAkJGxpc3Q7IGRvIGVjaG8gIiQkcCI7IGRvbmUgfCBz ZWQgJ3MvJChFWEVFWFQpJCQvLydgOyBcCisrCWVjaG8gIiBybSAtZiIgJCRsaXN0OyBcCisrCXJt IC1mICQkbGlzdAorK3Rlc3RfbXlzcWwkKEVYRUVYVCk6ICQodGVzdF9teXNxbF9PQkpFQ1RTKSAk KHRlc3RfbXlzcWxfREVQRU5ERU5DSUVTKSAKKysJQHJtIC1mIHRlc3RfbXlzcWwkKEVYRUVYVCkK KysJJCh0ZXN0X215c3FsX0xJTkspICQodGVzdF9teXNxbF9PQkpFQ1RTKSAkKHRlc3RfbXlzcWxf TERBREQpICQoTElCUykKKysKKyttb3N0bHljbGVhbi1jb21waWxlOgorKwktcm0gLWYgKi4kKE9C SkVYVCkKKysKKytkaXN0Y2xlYW4tY29tcGlsZToKKysJLXJtIC1mICoudGFiLmMKKysKKytAQU1E RVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvdGVzdF9teXNxbC10 ZXN0LW15c3FsLlBvQGFtX19xdW90ZUAKKysKKysuY3BwLm86CisrQGFtX19mYXN0ZGVwQ1hYX1RS VUVACSQoQ1hYQ09NUElMRSkgLU1UICRAIC1NRCAtTVAgLU1GICQoREVQRElSKS8kKi5UcG8gLWMg LW8gJEAgJDwKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChhbV9fbXYpICQoREVQRElSKS8kKi5U cG8gJChERVBESVIpLyQqLlBvCisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlz b3VyY2U9JyQ8JyBvYmplY3Q9JyRAJyBsaWJ0b29sPW5vIEBBTURFUEJBQ0tTTEFTSEAKKytAQU1E RVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDWFhERVBN T0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKKytAYW1fX2Zhc3RkZXBDWFhfRkFMU0VA CSQoQ1hYQ09NUElMRSkgLWMgLW8gJEAgJDwKKysKKysuY3BwLm9iajoKKytAYW1fX2Zhc3RkZXBD WFhfVFJVRUAJJChDWFhDT01QSUxFKSAtTVQgJEAgLU1EIC1NUCAtTUYgJChERVBESVIpLyQqLlRw byAtYyAtbyAkQCBgJChDWUdQQVRIX1cpICckPCdgCisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQo YW1fX212KSAkKERFUERJUikvJCouVHBvICQoREVQRElSKS8kKi5QbworK0BBTURFUF9UUlVFQEBh bV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSckPCcgb2JqZWN0PSckQCcgbGlidG9vbD1ubyBA QU1ERVBCQUNLU0xBU0hACisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBE SVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACisr QGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKENYWENPTVBJTEUpIC1jIC1vICRAIGAkKENZR1BBVEhf VykgJyQ8J2AKKysKKysuY3BwLmxvOgorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKExUQ1hYQ09N UElMRSkgLU1UICRAIC1NRCAtTVAgLU1GICQoREVQRElSKS8kKi5UcG8gLWMgLW8gJEAgJDwKKytA YW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChhbV9fbXYpICQoREVQRElSKS8kKi5UcG8gJChERVBESVIp LyQqLlBsbworK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSckPCcg b2JqZWN0PSckQCcgbGlidG9vbD15ZXMgQEFNREVQQkFDS1NMQVNIQAorK0BBTURFUF9UUlVFQEBh bV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVw Y29tcCkgQEFNREVQQkFDS1NMQVNIQAorK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChMVENYWENP TVBJTEUpIC1jIC1vICRAICQ8CisrCisrdGVzdF9teXNxbC10ZXN0LW15c3FsLm86ICQodG9wX3Ny Y2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC90ZXN0L3Rlc3QtbXlzcWwuY3BwCisrQGFtX19mYXN0 ZGVwQ1hYX1RSVUVACSQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURF UykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJCh0ZXN0X215c3FsX0NYWEZMQUdTKSAkKENY WEZMQUdTKSAtTVQgdGVzdF9teXNxbC10ZXN0LW15c3FsLm8gLU1EIC1NUCAtTUYgJChERVBESVIp L3Rlc3RfbXlzcWwtdGVzdC1teXNxbC5UcG8gLWMgLW8gdGVzdF9teXNxbC10ZXN0LW15c3FsLm8g YHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC90ZXN0L3Rlc3QtbXlz cWwuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMv bXlzcWwvdGVzdC90ZXN0LW15c3FsLmNwcAorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKGFtX19t dikgJChERVBESVIpL3Rlc3RfbXlzcWwtdGVzdC1teXNxbC5UcG8gJChERVBESVIpL3Rlc3RfbXlz cWwtdGVzdC1teXNxbC5QbworK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291 cmNlPSckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvdGVzdC90ZXN0LW15c3FsLmNw cCcgb2JqZWN0PSd0ZXN0X215c3FsLXRlc3QtbXlzcWwubycgbGlidG9vbD1ubyBAQU1ERVBCQUNL U0xBU0hACisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBE SVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACisrQGFtX19mYXN0 ZGVwQ1hYX0ZBTFNFQAkkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVE RVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQodGVzdF9teXNxbF9DWFhGTEFHUykgJChD WFhGTEFHUykgLWMgLW8gdGVzdF9teXNxbC10ZXN0LW15c3FsLm8gYHRlc3QgLWYgJyQodG9wX3Ny Y2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC90ZXN0L3Rlc3QtbXlzcWwuY3BwJyB8fCBlY2hvICck KHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvdGVzdC90ZXN0LW15 c3FsLmNwcAorKworK3Rlc3RfbXlzcWwtdGVzdC1teXNxbC5vYmo6ICQodG9wX3NyY2Rpcikvc29j aS9iYWNrZW5kcy9teXNxbC90ZXN0L3Rlc3QtbXlzcWwuY3BwCisrQGFtX19mYXN0ZGVwQ1hYX1RS VUVACSQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9D UFBGTEFHUykgJChDUFBGTEFHUykgJCh0ZXN0X215c3FsX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAt TVQgdGVzdF9teXNxbC10ZXN0LW15c3FsLm9iaiAtTUQgLU1QIC1NRiAkKERFUERJUikvdGVzdF9t eXNxbC10ZXN0LW15c3FsLlRwbyAtYyAtbyB0ZXN0X215c3FsLXRlc3QtbXlzcWwub2JqIGBpZiB0 ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvdGVzdC90ZXN0LW15c3Fs LmNwcCc7IHRoZW4gJChDWUdQQVRIX1cpICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlz cWwvdGVzdC90ZXN0LW15c3FsLmNwcCc7IGVsc2UgJChDWUdQQVRIX1cpICckKHNyY2RpcikvJCh0 b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3Rlc3QvdGVzdC1teXNxbC5jcHAnOyBmaWAK KytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChhbV9fbXYpICQoREVQRElSKS90ZXN0X215c3FsLXRl c3QtbXlzcWwuVHBvICQoREVQRElSKS90ZXN0X215c3FsLXRlc3QtbXlzcWwuUG8KKytAQU1ERVBf VFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJCh0b3Bfc3JjZGlyKS9zb2NpL2Jh Y2tlbmRzL215c3FsL3Rlc3QvdGVzdC1teXNxbC5jcHAnIG9iamVjdD0ndGVzdF9teXNxbC10ZXN0 LW15c3FsLm9iaicgbGlidG9vbD1ubyBAQU1ERVBCQUNLU0xBU0hACisrQEFNREVQX1RSVUVAQGFt X19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBj b21wKSBAQU1ERVBCQUNLU0xBU0hACisrQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKENYWCkgJChE RUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQ RkxBR1MpICQodGVzdF9teXNxbF9DWFhGTEFHUykgJChDWFhGTEFHUykgLWMgLW8gdGVzdF9teXNx bC10ZXN0LW15c3FsLm9iaiBgaWYgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRz L215c3FsL3Rlc3QvdGVzdC1teXNxbC5jcHAnOyB0aGVuICQoQ1lHUEFUSF9XKSAnJCh0b3Bfc3Jj ZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3Rlc3QvdGVzdC1teXNxbC5jcHAnOyBlbHNlICQoQ1lH UEFUSF9XKSAnJChzcmNkaXIpLyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC90ZXN0 L3Rlc3QtbXlzcWwuY3BwJzsgZmlgCisrCisrbW9zdGx5Y2xlYW4tbGlidG9vbDoKKysJLXJtIC1m ICoubG8KKysKKytjbGVhbi1saWJ0b29sOgorKwktcm0gLXJmIC5saWJzIF9saWJzCisrCisrSUQ6 ICQoSEVBREVSUykgJChTT1VSQ0VTKSAkKExJU1ApICQoVEFHU19GSUxFUykKKysJbGlzdD0nJChT T1VSQ0VTKSAkKEhFQURFUlMpICQoTElTUCkgJChUQUdTX0ZJTEVTKSc7IFwKKysJdW5pcXVlPWBm b3IgaSBpbiAkJGxpc3Q7IGRvIFwKKysJICAgIGlmIHRlc3QgLWYgIiQkaSI7IHRoZW4gZWNobyAk JGk7IGVsc2UgZWNobyAkKHNyY2RpcikvJCRpOyBmaTsgXAorKwkgIGRvbmUgfCBcCisrCSAgJChB V0spICd7IGZpbGVzWyQkMF0gPSAxOyBub25lbXB0eSA9IDE7IH0gXAorKwkgICAgICBFTkQgeyBp ZiAobm9uZW1wdHkpIHsgZm9yIChpIGluIGZpbGVzKSBwcmludCBpOyB9OyB9J2A7IFwKKysJbWtp ZCAtZklEICQkdW5pcXVlCisrdGFnczogVEFHUworKworK1RBR1M6ICAkKEhFQURFUlMpICQoU09V UkNFUykgICQoVEFHU19ERVBFTkRFTkNJRVMpIFwKKysJCSQoVEFHU19GSUxFUykgJChMSVNQKQor KwlzZXQgeDsgXAorKwloZXJlPWBwd2RgOyBcCisrCWxpc3Q9JyQoU09VUkNFUykgJChIRUFERVJT KSAgJChMSVNQKSAkKFRBR1NfRklMRVMpJzsgXAorKwl1bmlxdWU9YGZvciBpIGluICQkbGlzdDsg ZG8gXAorKwkgICAgaWYgdGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsgZWxzZSBlY2hvICQo c3JjZGlyKS8kJGk7IGZpOyBcCisrCSAgZG9uZSB8IFwKKysJICAkKEFXSykgJ3sgZmlsZXNbJCQw XSA9IDE7IG5vbmVtcHR5ID0gMTsgfSBcCisrCSAgICAgIEVORCB7IGlmIChub25lbXB0eSkgeyBm b3IgKGkgaW4gZmlsZXMpIHByaW50IGk7IH07IH0nYDsgXAorKwlzaGlmdDsgXAorKwlpZiB0ZXN0 IC16ICIkKEVUQUdTX0FSR1MpJCQqJCR1bmlxdWUiOyB0aGVuIDo7IGVsc2UgXAorKwkgIHRlc3Qg LW4gIiQkdW5pcXVlIiB8fCB1bmlxdWU9JCRlbXB0eV9maXg7IFwKKysJICBpZiB0ZXN0ICQkIyAt Z3QgMDsgdGhlbiBcCisrCSAgICAkKEVUQUdTKSAkKEVUQUdTRkxBR1MpICQoQU1fRVRBR1NGTEFH UykgJChFVEFHU19BUkdTKSBcCisrCSAgICAgICIkJEAiICQkdW5pcXVlOyBcCisrCSAgZWxzZSBc CisrCSAgICAkKEVUQUdTKSAkKEVUQUdTRkxBR1MpICQoQU1fRVRBR1NGTEFHUykgJChFVEFHU19B UkdTKSBcCisrCSAgICAgICQkdW5pcXVlOyBcCisrCSAgZmk7IFwKKysJZmkKKytjdGFnczogQ1RB R1MKKytDVEFHUzogICQoSEVBREVSUykgJChTT1VSQ0VTKSAgJChUQUdTX0RFUEVOREVOQ0lFUykg XAorKwkJJChUQUdTX0ZJTEVTKSAkKExJU1ApCisrCWxpc3Q9JyQoU09VUkNFUykgJChIRUFERVJT KSAgJChMSVNQKSAkKFRBR1NfRklMRVMpJzsgXAorKwl1bmlxdWU9YGZvciBpIGluICQkbGlzdDsg ZG8gXAorKwkgICAgaWYgdGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsgZWxzZSBlY2hvICQo c3JjZGlyKS8kJGk7IGZpOyBcCisrCSAgZG9uZSB8IFwKKysJICAkKEFXSykgJ3sgZmlsZXNbJCQw XSA9IDE7IG5vbmVtcHR5ID0gMTsgfSBcCisrCSAgICAgIEVORCB7IGlmIChub25lbXB0eSkgeyBm b3IgKGkgaW4gZmlsZXMpIHByaW50IGk7IH07IH0nYDsgXAorKwl0ZXN0IC16ICIkKENUQUdTX0FS R1MpJCR1bmlxdWUiIFwKKysJICB8fCAkKENUQUdTKSAkKENUQUdTRkxBR1MpICQoQU1fQ1RBR1NG TEFHUykgJChDVEFHU19BUkdTKSBcCisrCSAgICAgJCR1bmlxdWUKKysKKytHVEFHUzoKKysJaGVy ZT1gJChhbV9fY2QpICQodG9wX2J1aWxkZGlyKSAmJiBwd2RgIFwKKysJICAmJiAkKGFtX19jZCkg JCh0b3Bfc3JjZGlyKSBcCisrCSAgJiYgZ3RhZ3MgLWkgJChHVEFHU19BUkdTKSAiJCRoZXJlIgor KworK2Rpc3RjbGVhbi10YWdzOgorKwktcm0gLWYgVEFHUyBJRCBHVEFHUyBHUlRBR1MgR1NZTVMg R1BBVEggdGFncworKworK2Rpc3RkaXI6ICQoRElTVEZJTEVTKQorKwlAc3JjZGlyc3RyaXA9YGVj aG8gIiQoc3JjZGlyKSIgfCBzZWQgJ3MvW10uW14kJFxcKl0vXFxcXCYvZydgOyBcCisrCXRvcHNy Y2RpcnN0cmlwPWBlY2hvICIkKHRvcF9zcmNkaXIpIiB8IHNlZCAncy9bXS5bXiQkXFwqXS9cXFxc Ji9nJ2A7IFwKKysJbGlzdD0nJChESVNURklMRVMpJzsgXAorKwkgIGRpc3RfZmlsZXM9YGZvciBm aWxlIGluICQkbGlzdDsgZG8gZWNobyAkJGZpbGU7IGRvbmUgfCBcCisrCSAgc2VkIC1lICJzfF4k JHNyY2RpcnN0cmlwL3x8O3QiIFwKKysJICAgICAgLWUgInN8XiQkdG9wc3JjZGlyc3RyaXAvfCQo dG9wX2J1aWxkZGlyKS98O3QiYDsgXAorKwljYXNlICQkZGlzdF9maWxlcyBpbiBcCisrCSAgKi8q KSAkKE1LRElSX1ApIGBlY2hvICIkJGRpc3RfZmlsZXMiIHwgXAorKwkJCSAgIHNlZCAnL1wvLyFk O3N8XnwkKGRpc3RkaXIpL3w7cywvW14vXSokJCwsJyB8IFwKKysJCQkgICBzb3J0IC11YCA7OyBc CisrCWVzYWM7IFwKKysJZm9yIGZpbGUgaW4gJCRkaXN0X2ZpbGVzOyBkbyBcCisrCSAgaWYgdGVz dCAtZiAkJGZpbGUgfHwgdGVzdCAtZCAkJGZpbGU7IHRoZW4gZD0uOyBlbHNlIGQ9JChzcmNkaXIp OyBmaTsgXAorKwkgIGlmIHRlc3QgLWQgJCRkLyQkZmlsZTsgdGhlbiBcCisrCSAgICBkaXI9YGVj aG8gIi8kJGZpbGUiIHwgc2VkIC1lICdzLC9bXi9dKiQkLCwnYDsgXAorKwkgICAgaWYgdGVzdCAt ZCAiJChkaXN0ZGlyKS8kJGZpbGUiOyB0aGVuIFwKKysJICAgICAgZmluZCAiJChkaXN0ZGlyKS8k JGZpbGUiIC10eXBlIGQgISAtcGVybSAtNzAwIC1leGVjIGNobW9kIHUrcnd4IHt9IFw7OyBcCisr CSAgICBmaTsgXAorKwkgICAgaWYgdGVzdCAtZCAkKHNyY2RpcikvJCRmaWxlICYmIHRlc3QgJCRk ICE9ICQoc3JjZGlyKTsgdGhlbiBcCisrCSAgICAgIGNwIC1mcFIgJChzcmNkaXIpLyQkZmlsZSAi JChkaXN0ZGlyKSQkZGlyIiB8fCBleGl0IDE7IFwKKysJICAgICAgZmluZCAiJChkaXN0ZGlyKS8k JGZpbGUiIC10eXBlIGQgISAtcGVybSAtNzAwIC1leGVjIGNobW9kIHUrcnd4IHt9IFw7OyBcCisr CSAgICBmaTsgXAorKwkgICAgY3AgLWZwUiAkJGQvJCRmaWxlICIkKGRpc3RkaXIpJCRkaXIiIHx8 IGV4aXQgMTsgXAorKwkgIGVsc2UgXAorKwkgICAgdGVzdCAtZiAiJChkaXN0ZGlyKS8kJGZpbGUi IFwKKysJICAgIHx8IGNwIC1wICQkZC8kJGZpbGUgIiQoZGlzdGRpcikvJCRmaWxlIiBcCisrCSAg ICB8fCBleGl0IDE7IFwKKysJICBmaTsgXAorKwlkb25lCisrY2hlY2stYW06IGFsbC1hbQorK2No ZWNrOiBjaGVjay1hbQorK2FsbC1hbTogTWFrZWZpbGUgJChQUk9HUkFNUykKKytpbnN0YWxsZGly czoKKytpbnN0YWxsOiBpbnN0YWxsLWFtCisraW5zdGFsbC1leGVjOiBpbnN0YWxsLWV4ZWMtYW0K KytpbnN0YWxsLWRhdGE6IGluc3RhbGwtZGF0YS1hbQorK3VuaW5zdGFsbDogdW5pbnN0YWxsLWFt CisrCisraW5zdGFsbC1hbTogYWxsLWFtCisrCUAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBpbnN0 YWxsLWV4ZWMtYW0gaW5zdGFsbC1kYXRhLWFtCisrCisraW5zdGFsbGNoZWNrOiBpbnN0YWxsY2hl Y2stYW0KKytpbnN0YWxsLXN0cmlwOgorKwkkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBJTlNUQUxM X1BST0dSQU09IiQoSU5TVEFMTF9TVFJJUF9QUk9HUkFNKSIgXAorKwkgIGluc3RhbGxfc2hfUFJP R1JBTT0iJChJTlNUQUxMX1NUUklQX1BST0dSQU0pIiBJTlNUQUxMX1NUUklQX0ZMQUc9LXMgXAor KwkgIGB0ZXN0IC16ICckKFNUUklQKScgfHwgXAorKwkgICAgZWNobyAiSU5TVEFMTF9QUk9HUkFN X0VOVj1TVFJJUFBST0c9JyQoU1RSSVApJyJgIGluc3RhbGwKKyttb3N0bHljbGVhbi1nZW5lcmlj OgorKworK2NsZWFuLWdlbmVyaWM6CisrCisrZGlzdGNsZWFuLWdlbmVyaWM6CisrCS10ZXN0IC16 ICIkKENPTkZJR19DTEVBTl9GSUxFUykiIHx8IHJtIC1mICQoQ09ORklHX0NMRUFOX0ZJTEVTKQor KwktdGVzdCAuID0gIiQoc3JjZGlyKSIgfHwgdGVzdCAteiAiJChDT05GSUdfQ0xFQU5fVlBBVEhf RklMRVMpIiB8fCBybSAtZiAkKENPTkZJR19DTEVBTl9WUEFUSF9GSUxFUykKKysKKyttYWludGFp bmVyLWNsZWFuLWdlbmVyaWM6CisrCUBlY2hvICJUaGlzIGNvbW1hbmQgaXMgaW50ZW5kZWQgZm9y IG1haW50YWluZXJzIHRvIHVzZSIKKysJQGVjaG8gIml0IGRlbGV0ZXMgZmlsZXMgdGhhdCBtYXkg cmVxdWlyZSBzcGVjaWFsIHRvb2xzIHRvIHJlYnVpbGQuIgorKwktdGVzdCAteiAiJChNQUlOVEFJ TkVSQ0xFQU5GSUxFUykiIHx8IHJtIC1mICQoTUFJTlRBSU5FUkNMRUFORklMRVMpCisrY2xlYW46 IGNsZWFuLWFtCisrCisrY2xlYW4tYW06IGNsZWFuLWdlbmVyaWMgY2xlYW4tbGlidG9vbCBjbGVh bi1ub2luc3RQUk9HUkFNUyBcCisrCW1vc3RseWNsZWFuLWFtCisrCisrZGlzdGNsZWFuOiBkaXN0 Y2xlYW4tYW0KKysJLXJtIC1yZiAuLyQoREVQRElSKQorKwktcm0gLWYgTWFrZWZpbGUKKytkaXN0 Y2xlYW4tYW06IGNsZWFuLWFtIGRpc3RjbGVhbi1jb21waWxlIGRpc3RjbGVhbi1nZW5lcmljIFwK KysJZGlzdGNsZWFuLXRhZ3MKKysKKytkdmk6IGR2aS1hbQorKworK2R2aS1hbToKKysKKytodG1s OiBodG1sLWFtCisrCisraHRtbC1hbToKKysKKytpbmZvOiBpbmZvLWFtCisrCisraW5mby1hbToK KysKKytpbnN0YWxsLWRhdGEtYW06CisrCisraW5zdGFsbC1kdmk6IGluc3RhbGwtZHZpLWFtCisr CisraW5zdGFsbC1kdmktYW06CisrCisraW5zdGFsbC1leGVjLWFtOgorKworK2luc3RhbGwtaHRt bDogaW5zdGFsbC1odG1sLWFtCisrCisraW5zdGFsbC1odG1sLWFtOgorKworK2luc3RhbGwtaW5m bzogaW5zdGFsbC1pbmZvLWFtCisrCisraW5zdGFsbC1pbmZvLWFtOgorKworK2luc3RhbGwtbWFu OgorKworK2luc3RhbGwtcGRmOiBpbnN0YWxsLXBkZi1hbQorKworK2luc3RhbGwtcGRmLWFtOgor KworK2luc3RhbGwtcHM6IGluc3RhbGwtcHMtYW0KKysKKytpbnN0YWxsLXBzLWFtOgorKworK2lu c3RhbGxjaGVjay1hbToKKysKKyttYWludGFpbmVyLWNsZWFuOiBtYWludGFpbmVyLWNsZWFuLWFt CisrCS1ybSAtcmYgLi8kKERFUERJUikKKysJLXJtIC1mIE1ha2VmaWxlCisrbWFpbnRhaW5lci1j bGVhbi1hbTogZGlzdGNsZWFuLWFtIG1haW50YWluZXItY2xlYW4tZ2VuZXJpYworKworK21vc3Rs eWNsZWFuOiBtb3N0bHljbGVhbi1hbQorKworK21vc3RseWNsZWFuLWFtOiBtb3N0bHljbGVhbi1j b21waWxlIG1vc3RseWNsZWFuLWdlbmVyaWMgXAorKwltb3N0bHljbGVhbi1saWJ0b29sCisrCisr cGRmOiBwZGYtYW0KKysKKytwZGYtYW06CisrCisrcHM6IHBzLWFtCisrCisrcHMtYW06CisrCisr dW5pbnN0YWxsLWFtOgorKworKy5NQUtFOiBpbnN0YWxsLWFtIGluc3RhbGwtc3RyaXAKKysKKysu UEhPTlk6IENUQUdTIEdUQUdTIGFsbCBhbGwtYW0gY2hlY2sgY2hlY2stYW0gY2xlYW4gY2xlYW4t Z2VuZXJpYyBcCisrCWNsZWFuLWxpYnRvb2wgY2xlYW4tbm9pbnN0UFJPR1JBTVMgY3RhZ3MgZGlz dGNsZWFuIFwKKysJZGlzdGNsZWFuLWNvbXBpbGUgZGlzdGNsZWFuLWdlbmVyaWMgZGlzdGNsZWFu LWxpYnRvb2wgXAorKwlkaXN0Y2xlYW4tdGFncyBkaXN0ZGlyIGR2aSBkdmktYW0gaHRtbCBodG1s LWFtIGluZm8gaW5mby1hbSBcCisrCWluc3RhbGwgaW5zdGFsbC1hbSBpbnN0YWxsLWRhdGEgaW5z dGFsbC1kYXRhLWFtIGluc3RhbGwtZHZpIFwKKysJaW5zdGFsbC1kdmktYW0gaW5zdGFsbC1leGVj IGluc3RhbGwtZXhlYy1hbSBpbnN0YWxsLWh0bWwgXAorKwlpbnN0YWxsLWh0bWwtYW0gaW5zdGFs bC1pbmZvIGluc3RhbGwtaW5mby1hbSBpbnN0YWxsLW1hbiBcCisrCWluc3RhbGwtcGRmIGluc3Rh bGwtcGRmLWFtIGluc3RhbGwtcHMgaW5zdGFsbC1wcy1hbSBcCisrCWluc3RhbGwtc3RyaXAgaW5z dGFsbGNoZWNrIGluc3RhbGxjaGVjay1hbSBpbnN0YWxsZGlycyBcCisrCW1haW50YWluZXItY2xl YW4gbWFpbnRhaW5lci1jbGVhbi1nZW5lcmljIG1vc3RseWNsZWFuIFwKKysJbW9zdGx5Y2xlYW4t Y29tcGlsZSBtb3N0bHljbGVhbi1nZW5lcmljIG1vc3RseWNsZWFuLWxpYnRvb2wgXAorKwlwZGYg cGRmLWFtIHBzIHBzLWFtIHRhZ3MgdW5pbnN0YWxsIHVuaW5zdGFsbC1hbQorKworK0BTRVRfTUFL RUAKKysKKysjbm9kaXN0X3BrZ2luY2x1ZGVfSEVBREVSUyA9ICQobXlzcWxfdGVzdF9oX3NvdXJj ZXMpCisrCisrIyBUZWxsIHZlcnNpb25zIFszLjU5LDMuNjMpIG9mIEdOVSBtYWtlIHRvIG5vdCBl eHBvcnQgYWxsIHZhcmlhYmxlcy4KKysjIE90aGVyd2lzZSBhIHN5c3RlbSBsaW1pdCAoZm9yIFN5 c1YgYXQgbGVhc3QpIG1heSBiZSBleGNlZWRlZC4KKysuTk9FWFBPUlQ6CitkaWZmIC1OdXIgc29j aS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9teXNxbC90ZXN0L3NvdXJjZXMubWsgc29jaS0z LjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvbXlzcWwvdGVzdC9zb3VyY2VzLm1rCistLS0gc29j aS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9teXNxbC90ZXN0L3NvdXJjZXMubWsJMTk3MC0w MS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKKysrKyBzb2NpLTMuMC4wX3RyZXAzMDAvc29j aS9iYWNrZW5kcy9teXNxbC90ZXN0L3NvdXJjZXMubWsJMjAwOS0wNC0xNiAxOTozNzowNi4wMDAw MDAwMDAgKzAyMDAKK0BAIC0wLDAgKzEsMiBAQAorK215c3FsX3Rlc3RfaF9zb3VyY2VzID0KKytt eXNxbF90ZXN0X2NjX3NvdXJjZXMgPSAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwv dGVzdC90ZXN0LW15c3FsLmNwcAorZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFj a2VuZHMvbXlzcWwvdGVzdC90ZXN0LW15c3FsLmNwcCBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9i YWNrZW5kcy9teXNxbC90ZXN0L3Rlc3QtbXlzcWwuY3BwCistLS0gc29jaS0zLjAuMF80LXBhY2sv c29jaS9iYWNrZW5kcy9teXNxbC90ZXN0L3Rlc3QtbXlzcWwuY3BwCTIwMTAtMDEtMjMgMTQ6NDU6 NDQuMDAwMDAwMDAwICswMTAwCisrKysgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMv bXlzcWwvdGVzdC90ZXN0LW15c3FsLmNwcAkyMDA5LTA0LTE2IDE5OjM3OjA2LjAwMDAwMDAwMCAr MDIwMAorQEAgLTYsOSArNiwxNyBAQAorIC8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0Vf MV8wLnR4dCkKKyAvLworIAorLSNpbmNsdWRlICJzb2NpLmgiCistI2luY2x1ZGUgInNvY2ktbXlz cWwuaCIKKy0jaW5jbHVkZSAidGVzdC9jb21tb24tdGVzdHMuaCIKKysvLworKyNpZiBkZWZpbmVk KFNPQ0lfSEVBREVSU19CVVJJRUQpCisrIyAgICAgICBpbmNsdWRlIDxzb2NpL2NvcmUvc29jaS5o PgorKyMgICAgICAgaW5jbHVkZSA8c29jaS9iYWNrZW5kcy9teXNxbC9zb2NpLW15c3FsLmg+Cisr IyAgICAgICBpbmNsdWRlIDxzb2NpL2NvcmUvdGVzdC9jb21tb24tdGVzdHMuaD4KKysjZWxzZQor KyMJaW5jbHVkZSA8c29jaS5oPgorKyMJaW5jbHVkZSA8c29jaS1teXNxbC5oPgorKyMgICAgICAg aW5jbHVkZSA8dGVzdC9jb21tb24tdGVzdHMuaD4KKysjZW5kaWYKKysvLworICNpbmNsdWRlIDxp b3N0cmVhbT4KKyAjaW5jbHVkZSA8c3N0cmVhbT4KKyAjaW5jbHVkZSA8c3RyaW5nPgorQEAgLTE4 LDggKzI2LDE0IEBACisgI2luY2x1ZGUgPGN0aW1lPgorICNpbmNsdWRlIDxjaXNvNjQ2PgorICNp bmNsdWRlIDxjc3RkbGliPgorLSNpbmNsdWRlIDxteXNxbGRfZXJyb3IuaD4KKy0jaW5jbHVkZSA8 ZXJybXNnLmg+CisrLy8gTXlTUUwgQ2xpZW50CisrI2lmIGRlZmluZWQoU09DSV9NWVNRTF9IRUFE RVJTX0JVUklFRCkKKysjICAgICAgIGluY2x1ZGUgPG15c3FsL215c3FsZF9lcnJvci5oPgorKyMg ICAgICAgaW5jbHVkZSA8bXlzcWwvZXJybXNnLmg+CisrI2Vsc2UKKysjICAgICAgIGluY2x1ZGUg PG15c3FsZF9lcnJvci5oPgorKyMgICAgICAgaW5jbHVkZSA8ZXJybXNnLmg+CisrI2VuZGlmCisg CisgdXNpbmcgbmFtZXNwYWNlIHNvY2k7CisgdXNpbmcgbmFtZXNwYWNlIHNvY2k6OnRlc3RzOwor ZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvbXlzcWwvdmVjdG9yLWlu dG8tdHlwZS5jcHAgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvbXlzcWwvdmVjdG9y LWludG8tdHlwZS5jcHAKKy0tLSBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL215c3Fs L3ZlY3Rvci1pbnRvLXR5cGUuY3BwCTIwMTAtMDEtMjMgMTQ6NDU6NDQuMDAwMDAwMDAwICswMTAw CisrKysgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvbXlzcWwvdmVjdG9yLWludG8t dHlwZS5jcHAJMjAwOS0wNC0xNiAxOTozNzowNi4wMDAwMDAwMDAgKzAyMDAKK0BAIC05LDcgKzks MTMgQEAKKyAjZGVmaW5lIFNPQ0lfTVlTUUxfU09VUkNFCisgI2luY2x1ZGUgInNvY2ktbXlzcWwu aCIKKyAjaW5jbHVkZSAiY29tbW9uLmgiCistI2luY2x1ZGUgPHNvY2ktcGxhdGZvcm0uaD4KKysv LworKyNpZiBkZWZpbmVkKFNPQ0lfSEVBREVSU19CVVJJRUQpCisrIyAgICAgICBpbmNsdWRlIDxz b2NpL2NvcmUvc29jaS1wbGF0Zm9ybS5oPgorKyNlbHNlCisrIwlpbmNsdWRlIDxzb2NpLXBsYXRm b3JtLmg+CisrI2VuZGlmCisrLy8KKyAjaW5jbHVkZSA8Y2lzbzY0Nj4KKyAKKyAjaWZkZWYgX01T Q19WRVIKK2RpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL215c3FsL3Zl Y3Rvci11c2UtdHlwZS5jcHAgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvbXlzcWwv dmVjdG9yLXVzZS10eXBlLmNwcAorLS0tIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMv bXlzcWwvdmVjdG9yLXVzZS10eXBlLmNwcAkyMDEwLTAxLTIzIDE0OjQ1OjQ0LjAwMDAwMDAwMCAr MDEwMAorKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL215c3FsL3ZlY3Rvci11 c2UtdHlwZS5jcHAJMjAwOS0wNS0wNSAyMjoyMzoyOS4wMDAwMDAwMDAgKzAyMDAKK0BAIC05LDcg KzksMTIgQEAKKyAjZGVmaW5lIFNPQ0lfTVlTUUxfU09VUkNFCisgI2luY2x1ZGUgInNvY2ktbXlz cWwuaCIKKyAjaW5jbHVkZSAiY29tbW9uLmgiCistI2luY2x1ZGUgPHNvY2ktcGxhdGZvcm0uaD4K KysvLworKyNpZiBkZWZpbmVkKFNPQ0lfSEVBREVSU19CVVJJRUQpCisrIyAgICAgICBpbmNsdWRl IDxzb2NpL2NvcmUvc29jaS1wbGF0Zm9ybS5oPgorKyNlbHNlCisrIwlpbmNsdWRlIDxzb2NpLXBs YXRmb3JtLmg+CisrI2VuZGlmCisgLy8KKyAjaW5jbHVkZSA8Y2lzbzY0Nj4KKyAjaW5jbHVkZSA8 bGltaXRzPgorZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvb3JhY2xl L2Jsb2IuY3BwIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL29yYWNsZS9ibG9iLmNw cAorLS0tIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvb3JhY2xlL2Jsb2IuY3BwCTIw MTAtMDEtMjMgMTQ6NDU6NDQuMDAwMDAwMDAwICswMTAwCisrKysgc29jaS0zLjAuMF90cmVwMzAw L3NvY2kvYmFja2VuZHMvb3JhY2xlL2Jsb2IuY3BwCTIwMDktMDQtMTYgMTk6Mzc6MDYuMDAwMDAw MDAwICswMjAwCitAQCAtNyw3ICs3LDEzIEBACisgCisgI2luY2x1ZGUgInNvY2ktb3JhY2xlLmgi CisgI2luY2x1ZGUgImVycm9yLmgiCistI2luY2x1ZGUgInN0YXRlbWVudC5oIgorKy8vCisrI2lm IGRlZmluZWQoU09DSV9IRUFERVJTX0JVUklFRCkKKysjICAgICAgIGluY2x1ZGUgPHNvY2kvY29y ZS9zdGF0ZW1lbnQuaD4KKysjZWxzZQorKyMJaW5jbHVkZSA8c3RhdGVtZW50Lmg+CisrI2VuZGlm CisrLy8KKyAjaW5jbHVkZSA8Y3N0cmluZz4KKyAjaW5jbHVkZSA8c3N0cmVhbT4KKyAjaW5jbHVk ZSA8Y3N0ZGlvPgorZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvb3Jh Y2xlL01ha2VmaWxlLmFtIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL29yYWNsZS9N YWtlZmlsZS5hbQorLS0tIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvb3JhY2xlL01h a2VmaWxlLmFtCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCisrKysgc29jaS0z LjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvb3JhY2xlL01ha2VmaWxlLmFtCTIwMDktMDQtMTYg MTk6Mzc6MDYuMDAwMDAwMDAwICswMjAwCitAQCAtMCwwICsxLDI3IEBACisrIyMgYmFja2VuZHMv b3JhY2xlIHN1Yi1kaXJlY3RvcnkKKytpbmNsdWRlICQodG9wX3NyY2RpcikvTWFrZWZpbGUuY29t bW9uCisraW5jbHVkZSAkKHNyY2Rpcikvc291cmNlcy5taworKworK01BSU5UQUlORVJDTEVBTkZJ TEVTID0gTWFrZWZpbGUuaW4KKysKKytTVUJESVJTID0gLiB0ZXN0CisrCisraWYgSEFWRV9PUkFD TEUKKytsaWJfTFRMSUJSQVJJRVM9IGxpYnNvY2lfb3JhY2xlLmxhCisrCisrbGlic29jaV9vcmFj bGVfbGFfU09VUkNFUz0gJChiY2tfb3JhY2xlX2hfc291cmNlcykgJChiY2tfb3JhY2xlX2NjX3Nv dXJjZXMpIAorK2xpYnNvY2lfb3JhY2xlX2xhX0NYWEZMQUdTID0gJChPUkFDTEVfT0NJX0NGTEFH UykKKytsaWJzb2NpX29yYWNsZV9sYV9MSUJBREQgPQorK2xpYnNvY2lfb3JhY2xlX2xhX0xERkxB R1MgPSBcCisrCSQoQk9PU1RfTElCUykgJChCT09TVF9EQVRFX1RJTUVfTElCKSAkKEJPT1NUX1BS T0dSQU1fT1BUSU9OU19MSUIpIFwKKysJJChPUkFDTEVfT0NJX0xERkxBR1MpIFwKKysJLXZlcnNp b24taW5mbyAkKEdFTkVSSUNfTElCUkFSWV9WRVJTSU9OKQorKworK25vYmFzZV9wa2dpbmNsdWRl X0hFQURFUlMgPSAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3NvY2ktb3JhY2xl LmgKKytlbmRpZgorK2lmIFNPQ0lfSEVBREVSU19CVVJJRUQKKytzb2NpX2luY2x1ZGVfZGlyID0g JChpbmNsdWRlZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZQorK2Vsc2UKKytzb2NpX2luY2x1ZGVf ZGlyID0gJChpbmNsdWRlZGlyKQorK2VuZGlmCisrcGtnaW5jbHVkZWRpciA9ICQoc29jaV9pbmNs dWRlX2RpcikKK2RpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL29yYWNs ZS9NYWtlZmlsZS5iYXNpYyBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9vcmFjbGUv TWFrZWZpbGUuYmFzaWMKKy0tLSBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL29yYWNs ZS9NYWtlZmlsZS5iYXNpYwkyMDEwLTAxLTIzIDE0OjQ1OjQ0LjAwMDAwMDAwMCArMDEwMAorKysr IHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL29yYWNsZS9NYWtlZmlsZS5iYXNpYwkx OTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAorQEAgLTEsOTUgKzAsMCBAQAorLSMg VGhlIGZvbGxvd2luZyB2YXJpYWJsZSBpcyBzcGVjaWZpYyB0byB0aGlzIGJhY2tlbmQgYW5kIGl0 cyBjb3JyZWN0CistIyB2YWx1ZXMgbWlnaHQgZGVwZW5kIG9uIHlvdXIgZW52aXJvbm1lbnQgLSBm ZWVsIGZyZWUgdG8gc2V0IGl0IGFjY29yZGluZ2x5LgorLQorLU9SQUNMRUlOQ0xVREVESVIgPSAt SS91c3IvbGliL29yYWNsZS94ZS9hcHAvb3JhY2xlL3Byb2R1Y3QvMTAuMi4wL3NlcnZlci9yZGJt cy9wdWJsaWMKKy0KKy0jIFRoZSByZXN0IG9mIHRoZSBNYWtlZmlsZSBpcyBpbmRlcGVudGVudCBv ZiB0aGUgdGFyZ2V0IGVudmlyb25tZW50LgorLQorLUNPTVBJTEVSID0gZysrCistQ1hYRkxBR1Mg PSAtV2FsbCAtcGVkYW50aWMgLVduby1sb25nLWxvbmcKKy1DWFhGTEFHU1NPID0gJHtDWFhGTEFH U30gLWZQSUMKKy1JTkNMVURFRElSUyA9IC1JLi4vLi4vY29yZSAke09SQUNMRUlOQ0xVREVESVJ9 CistCistT0JKRUNUUyA9IGJsb2IubyBmYWN0b3J5Lm8gcm93LWlkLm8gc2Vzc2lvbi5vIHN0YW5k YXJkLWludG8tdHlwZS5vIFwKKy0Jc3RhbmRhcmQtdXNlLXR5cGUubyBzdGF0ZW1lbnQubyB2ZWN0 b3ItaW50by10eXBlLm8gdmVjdG9yLXVzZS10eXBlLm8gXAorLQllcnJvci5vCistCistT0JKRUNU U1NPID0gYmxvYi1zLm8gZmFjdG9yeS1zLm8gcm93LWlkLXMubyBzZXNzaW9uLXMubyBcCistCXN0 YW5kYXJkLWludG8tdHlwZS1zLm8gc3RhbmRhcmQtdXNlLXR5cGUtcy5vIHN0YXRlbWVudC1zLm8g XAorLQl2ZWN0b3ItaW50by10eXBlLXMubyB2ZWN0b3ItdXNlLXR5cGUtcy5vIGVycm9yLXMubwor LQorLWxpYnNvY2lfb3JhY2xlLmEgOiAke09CSkVDVFN9CistCWFyIHJ2ICRAICQ/CistCXJtICou bworLQorLXNvY2ktb3JhY2xlLm8gOiBzb2NpLW9yYWNsZS5jcHAgCistCSR7Q09NUElMRVJ9IC1j ICQ/ICR7Q1hYRkxBR1N9ICR7SU5DTFVERURJUlN9CistCQorLWJsb2IubyA6IGJsb2IuY3BwCist CSR7Q09NUElMRVJ9IC1jICQ/ICR7Q1hYRkxBR1N9ICR7SU5DTFVERURJUlN9CistCistZXJyb3Iu byA6IGVycm9yLmNwcAorLQkke0NPTVBJTEVSfSAtYyAkPyAke0NYWEZMQUdTfSAke0lOQ0xVREVE SVJTfQorLQorLWZhY3RvcnkubyA6IGZhY3RvcnkuY3BwCistCSR7Q09NUElMRVJ9IC1jICQ/ICR7 Q1hYRkxBR1N9ICR7SU5DTFVERURJUlN9CistCistcm93LWlkLm8gOiByb3ctaWQuY3BwCistCSR7 Q09NUElMRVJ9IC1jICQ/ICR7Q1hYRkxBR1N9ICR7SU5DTFVERURJUlN9CistCistc2Vzc2lvbi5v IDogc2Vzc2lvbi5jcHAKKy0JJHtDT01QSUxFUn0gLWMgJD8gJHtDWFhGTEFHU30gJHtJTkNMVURF RElSU30KKy0KKy1zdGFuZGFyZC1pbnRvLXR5cGUubyA6IHN0YW5kYXJkLWludG8tdHlwZS5jcHAK Ky0JJHtDT01QSUxFUn0gLWMgJD8gJHtDWFhGTEFHU30gJHtJTkNMVURFRElSU30KKy0KKy1zdGFu ZGFyZC11c2UtdHlwZS5vIDogc3RhbmRhcmQtdXNlLXR5cGUuY3BwCistCSR7Q09NUElMRVJ9IC1j ICQ/ICR7Q1hYRkxBR1N9ICR7SU5DTFVERURJUlN9CistCistc3RhdGVtZW50Lm8gOiBzdGF0ZW1l bnQuY3BwCistCSR7Q09NUElMRVJ9IC1jICQ/ICR7Q1hYRkxBR1N9ICR7SU5DTFVERURJUlN9Cist CistdmVjdG9yLWludG8tdHlwZS5vIDogdmVjdG9yLWludG8tdHlwZS5jcHAKKy0JJHtDT01QSUxF Un0gLWMgJD8gJHtDWFhGTEFHU30gJHtJTkNMVURFRElSU30KKy0KKy12ZWN0b3ItdXNlLXR5cGUu byA6IHZlY3Rvci11c2UtdHlwZS5jcHAKKy0JJHtDT01QSUxFUn0gLWMgJD8gJHtDWFhGTEFHU30g JHtJTkNMVURFRElSU30KKy0KKy0KKy1zaGFyZWQgOiAke09CSkVDVFNTT30KKy0JJHtDT01QSUxF Un0gLXNoYXJlZCAtbyBsaWJzb2NpX29yYWNsZS5zbyAke09CSkVDVFNTT30KKy0Jcm0gKi5vCist CistYmxvYi1zLm8gOiBibG9iLmNwcAorLQkke0NPTVBJTEVSfSAtYyAtbyAkQCAkPyAke0NYWEZM QUdTU099ICR7SU5DTFVERURJUlN9CistCistZXJyb3Itcy5vIDogZXJyb3IuY3BwCistCSR7Q09N UElMRVJ9IC1jIC1vICRAICQ/ICR7Q1hYRkxBR1NTT30gJHtJTkNMVURFRElSU30KKy0KKy1mYWN0 b3J5LXMubyA6IGZhY3RvcnkuY3BwCistCSR7Q09NUElMRVJ9IC1jIC1vICRAICQ/ICR7Q1hYRkxB R1NTT30gJHtJTkNMVURFRElSU30KKy0KKy1yb3ctaWQtcy5vIDogcm93LWlkLmNwcAorLQkke0NP TVBJTEVSfSAtYyAtbyAkQCAkPyAke0NYWEZMQUdTU099ICR7SU5DTFVERURJUlN9CistCistc2Vz c2lvbi1zLm8gOiBzZXNzaW9uLmNwcAorLQkke0NPTVBJTEVSfSAtYyAtbyAkQCAkPyAke0NYWEZM QUdTU099ICR7SU5DTFVERURJUlN9CistCistc3RhbmRhcmQtaW50by10eXBlLXMubyA6IHN0YW5k YXJkLWludG8tdHlwZS5jcHAKKy0JJHtDT01QSUxFUn0gLWMgLW8gJEAgJD8gJHtDWFhGTEFHU1NP fSAke0lOQ0xVREVESVJTfQorLQorLXN0YW5kYXJkLXVzZS10eXBlLXMubyA6IHN0YW5kYXJkLXVz ZS10eXBlLmNwcAorLQkke0NPTVBJTEVSfSAtYyAtbyAkQCAkPyAke0NYWEZMQUdTU099ICR7SU5D TFVERURJUlN9CistCistc3RhdGVtZW50LXMubyA6IHN0YXRlbWVudC5jcHAKKy0JJHtDT01QSUxF Un0gLWMgLW8gJEAgJD8gJHtDWFhGTEFHU1NPfSAke0lOQ0xVREVESVJTfQorLQorLXZlY3Rvci1p bnRvLXR5cGUtcy5vIDogdmVjdG9yLWludG8tdHlwZS5jcHAKKy0JJHtDT01QSUxFUn0gLWMgLW8g JEAgJD8gJHtDWFhGTEFHU1NPfSAke0lOQ0xVREVESVJTfQorLQorLXZlY3Rvci11c2UtdHlwZS1z Lm8gOiB2ZWN0b3ItdXNlLXR5cGUuY3BwCistCSR7Q09NUElMRVJ9IC1jIC1vICRAICQ/ICR7Q1hY RkxBR1NTT30gJHtJTkNMVURFRElSU30KKy0KKy0KKy1jbGVhbiA6CistCXJtIC1mICoubyBsaWJz b2NpX29yYWNsZS5hIGxpYnNvY2lfb3JhY2xlLnNvCitkaWZmIC1OdXIgc29jaS0zLjAuMF80LXBh Y2svc29jaS9iYWNrZW5kcy9vcmFjbGUvTWFrZWZpbGUuaW4gc29jaS0zLjAuMF90cmVwMzAwL3Nv Y2kvYmFja2VuZHMvb3JhY2xlL01ha2VmaWxlLmluCistLS0gc29jaS0zLjAuMF80LXBhY2svc29j aS9iYWNrZW5kcy9vcmFjbGUvTWFrZWZpbGUuaW4JMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAw MDAgKzAxMDAKKysrKyBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9vcmFjbGUvTWFr ZWZpbGUuaW4JMjAxMC0wMS0yMyAxNDo0NDo1MS4wMDAwMDAwMDAgKzAxMDAKK0BAIC0wLDAgKzEs OTAzIEBACisrIyBNYWtlZmlsZS5pbiBnZW5lcmF0ZWQgYnkgYXV0b21ha2UgMS4xMS4xIGZyb20g TWFrZWZpbGUuYW0uCisrIyBAY29uZmlndXJlX2lucHV0QAorKworKyMgQ29weXJpZ2h0IChDKSAx OTk0LCAxOTk1LCAxOTk2LCAxOTk3LCAxOTk4LCAxOTk5LCAyMDAwLCAyMDAxLCAyMDAyLAorKyMg MjAwMywgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSAgRnJlZSBTb2Z0d2FyZSBG b3VuZGF0aW9uLAorKyMgSW5jLgorKyMgVGhpcyBNYWtlZmlsZS5pbiBpcyBmcmVlIHNvZnR3YXJl OyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCisrIyBnaXZlcyB1bmxpbWl0ZWQgcGVybWlz c2lvbiB0byBjb3B5IGFuZC9vciBkaXN0cmlidXRlIGl0LAorKyMgd2l0aCBvciB3aXRob3V0IG1v ZGlmaWNhdGlvbnMsIGFzIGxvbmcgYXMgdGhpcyBub3RpY2UgaXMgcHJlc2VydmVkLgorKworKyMg VGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1 c2VmdWwsCisrIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFksIHRvIHRoZSBleHRlbnQgcGVybWl0 dGVkIGJ5IGxhdzsgd2l0aG91dAorKyMgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJD SEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQQorKyMgUEFSVElDVUxBUiBQVVJQT1NFLgorKwor K0BTRVRfTUFLRUAKKysKKysKKytWUEFUSCA9IEBzcmNkaXJACisrcGtnZGF0YWRpciA9ICQoZGF0 YWRpcikvQFBBQ0tBR0VACisrcGtnbGliZGlyID0gJChsaWJkaXIpL0BQQUNLQUdFQAorK3BrZ2xp YmV4ZWNkaXIgPSAkKGxpYmV4ZWNkaXIpL0BQQUNLQUdFQAorK2FtX19jZCA9IENEUEFUSD0iJCR7 WlNIX1ZFUlNJT04rLn0kKFBBVEhfU0VQQVJBVE9SKSIgJiYgY2QKKytpbnN0YWxsX3NoX0RBVEEg PSAkKGluc3RhbGxfc2gpIC1jIC1tIDY0NAorK2luc3RhbGxfc2hfUFJPR1JBTSA9ICQoaW5zdGFs bF9zaCkgLWMKKytpbnN0YWxsX3NoX1NDUklQVCA9ICQoaW5zdGFsbF9zaCkgLWMKKytJTlNUQUxM X0hFQURFUiA9ICQoSU5TVEFMTF9EQVRBKQorK3RyYW5zZm9ybSA9ICQocHJvZ3JhbV90cmFuc2Zv cm1fbmFtZSkKKytOT1JNQUxfSU5TVEFMTCA9IDoKKytQUkVfSU5TVEFMTCA9IDoKKytQT1NUX0lO U1RBTEwgPSA6CisrTk9STUFMX1VOSU5TVEFMTCA9IDoKKytQUkVfVU5JTlNUQUxMID0gOgorK1BP U1RfVU5JTlNUQUxMID0gOgorK2J1aWxkX3RyaXBsZXQgPSBAYnVpbGRACisraG9zdF90cmlwbGV0 ID0gQGhvc3RACisrRElTVF9DT01NT04gPSAkKGFtX19ub2Jhc2VfcGtnaW5jbHVkZV9IRUFERVJT X0RJU1QpIFwKKysJJChzcmNkaXIpL01ha2VmaWxlLmFtICQoc3JjZGlyKS9NYWtlZmlsZS5pbiBc CisrCSQoc3JjZGlyKS9zb3VyY2VzLm1rICQodG9wX3NyY2RpcikvTWFrZWZpbGUuY29tbW9uCisr c3ViZGlyID0gc29jaS9iYWNrZW5kcy9vcmFjbGUKKytBQ0xPQ0FMX000ID0gJCh0b3Bfc3JjZGly KS9hY2xvY2FsLm00CisrYW1fX2FjbG9jYWxfbTRfZGVwcyA9ICQodG9wX3NyY2RpcikvY29uZmln L2F4X2Jvb3N0Lm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfbXlzcWwubTQgXAorKwkk KHRvcF9zcmNkaXIpL2NvbmZpZy9heF9vcmFjbGVfb2NpLm00IFwKKysJJCh0b3Bfc3JjZGlyKS9j b25maWcvYXhfcG9zdGdyZXNxbC5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2NwcHVuaXQu bTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9saWJ0b29sLm00IFwKKysJJCh0b3Bfc3JjZGly KS9jb25maWcvbHRvcHRpb25zLm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcvbHRzdWdhci5t NCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2x0dmVyc2lvbi5tNCBcCisrCSQodG9wX3NyY2Rp cikvY29uZmlnL2x0fm9ic29sZXRlLm00ICQodG9wX3NyY2RpcikvY29uZmlndXJlLmFjCisrYW1f X2NvbmZpZ3VyZV9kZXBzID0gJChhbV9fYWNsb2NhbF9tNF9kZXBzKSAkKENPTkZJR1VSRV9ERVBF TkRFTkNJRVMpIFwKKysJJChBQ0xPQ0FMX000KQorK21raW5zdGFsbGRpcnMgPSAkKGluc3RhbGxf c2gpIC1kCisrQ09ORklHX0hFQURFUiA9ICQodG9wX2J1aWxkZGlyKS9zb2NpL2NvbmZpZy5oCisr Q09ORklHX0NMRUFOX0ZJTEVTID0KKytDT05GSUdfQ0xFQU5fVlBBVEhfRklMRVMgPQorK2FtX192 cGF0aF9hZGpfc2V0dXAgPSBzcmNkaXJzdHJpcD1gZWNobyAiJChzcmNkaXIpIiB8IHNlZCAnc3wu fC58ZydgOworK2FtX192cGF0aF9hZGogPSBjYXNlICQkcCBpbiBcCisrICAgICQoc3JjZGlyKS8q KSBmPWBlY2hvICIkJHAiIHwgc2VkICJzfF4kJHNyY2RpcnN0cmlwL3x8ImA7OyBcCisrICAgICop IGY9JCRwOzsgXAorKyAgZXNhYzsKKythbV9fc3RyaXBfZGlyID0gZj1gZWNobyAkJHAgfCBzZWQg LWUgJ3N8Xi4qL3x8J2A7CisrYW1fX2luc3RhbGxfbWF4ID0gNDAKKythbV9fbm9iYXNlX3N0cmlw X3NldHVwID0gXAorKyAgc3JjZGlyc3RyaXA9YGVjaG8gIiQoc3JjZGlyKSIgfCBzZWQgJ3MvW10u W14kJFxcKnxdL1xcXFwmL2cnYAorK2FtX19ub2Jhc2Vfc3RyaXAgPSBcCisrICBmb3IgcCBpbiAk JGxpc3Q7IGRvIGVjaG8gIiQkcCI7IGRvbmUgfCBzZWQgLWUgInN8JCRzcmNkaXJzdHJpcC98fCIK KythbV9fbm9iYXNlX2xpc3QgPSAkKGFtX19ub2Jhc2Vfc3RyaXBfc2V0dXApOyBcCisrICBmb3Ig cCBpbiAkJGxpc3Q7IGRvIGVjaG8gIiQkcCAkJHAiOyBkb25lIHwgXAorKyAgc2VkICJzfCAkJHNy Y2RpcnN0cmlwL3wgfDsiJyAvIC4qXC8vIXMvIC4qLyAuLzsgcyxcKCAuKlwpL1teL10qJCQsXDEs JyB8IFwKKysgICQoQVdLKSAnQkVHSU4geyBmaWxlc1siLiJdID0gIiIgfSB7IGZpbGVzWyQkMl0g PSBmaWxlc1skJDJdICIgIiAkJDE7IFwKKysgICAgaWYgKCsrblskJDJdID09ICQoYW1fX2luc3Rh bGxfbWF4KSkgXAorKyAgICAgIHsgcHJpbnQgJCQyLCBmaWxlc1skJDJdOyBuWyQkMl0gPSAwOyBm aWxlc1skJDJdID0gIiIgfSB9IFwKKysgICAgRU5EIHsgZm9yIChkaXIgaW4gZmlsZXMpIHByaW50 IGRpciwgZmlsZXNbZGlyXSB9JworK2FtX19iYXNlX2xpc3QgPSBcCisrICBzZWQgJyQkIU47JCQh TjskJCFOOyQkIU47JCQhTjskJCFOOyQkIU47cy9cbi8gL2cnIHwgXAorKyAgc2VkICckJCFOOyQk IU47JCQhTjskJCFOO3MvXG4vIC9nJworK2FtX19pbnN0YWxsZGlycyA9ICIkKERFU1RESVIpJChs aWJkaXIpIiAiJChERVNURElSKSQocGtnaW5jbHVkZWRpcikiCisrTFRMSUJSQVJJRVMgPSAkKGxp Yl9MVExJQlJBUklFUykKKytsaWJzb2NpX29yYWNsZV9sYV9ERVBFTkRFTkNJRVMgPQorK2FtX19s aWJzb2NpX29yYWNsZV9sYV9TT1VSQ0VTX0RJU1QgPSAgXAorKwkkKHRvcF9zcmNkaXIpL3NvY2kv YmFja2VuZHMvb3JhY2xlL2Vycm9yLmggXAorKwkkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMv b3JhY2xlL3NvY2ktb3JhY2xlLmggXAorKwkkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3Jh Y2xlL2Jsb2IuY3BwIFwKKysJJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9lcnJv ci5jcHAgXAorKwkkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL2ZhY3RvcnkuY3Bw IFwKKysJJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9yb3ctaWQuY3BwIFwKKysJ JCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9zZXNzaW9uLmNwcCBcCisrCSQodG9w X3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvc3RhbmRhcmQtaW50by10eXBlLmNwcCBcCisr CSQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvc3RhbmRhcmQtdXNlLXR5cGUuY3Bw IFwKKysJJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9zdGF0ZW1lbnQuY3BwIFwK KysJJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS92ZWN0b3ItaW50by10eXBlLmNw cCBcCisrCSQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvdmVjdG9yLXVzZS10eXBl LmNwcAorK2FtX19vYmplY3RzXzEgPQorK2FtX19vYmplY3RzXzIgPSBsaWJzb2NpX29yYWNsZV9s YS1ibG9iLmxvIGxpYnNvY2lfb3JhY2xlX2xhLWVycm9yLmxvIFwKKysJbGlic29jaV9vcmFjbGVf bGEtZmFjdG9yeS5sbyBsaWJzb2NpX29yYWNsZV9sYS1yb3ctaWQubG8gXAorKwlsaWJzb2NpX29y YWNsZV9sYS1zZXNzaW9uLmxvIFwKKysJbGlic29jaV9vcmFjbGVfbGEtc3RhbmRhcmQtaW50by10 eXBlLmxvIFwKKysJbGlic29jaV9vcmFjbGVfbGEtc3RhbmRhcmQtdXNlLXR5cGUubG8gXAorKwls aWJzb2NpX29yYWNsZV9sYS1zdGF0ZW1lbnQubG8gXAorKwlsaWJzb2NpX29yYWNsZV9sYS12ZWN0 b3ItaW50by10eXBlLmxvIFwKKysJbGlic29jaV9vcmFjbGVfbGEtdmVjdG9yLXVzZS10eXBlLmxv CisrQEhBVkVfT1JBQ0xFX1RSVUVAYW1fbGlic29jaV9vcmFjbGVfbGFfT0JKRUNUUyA9ICQoYW1f X29iamVjdHNfMSkgXAorK0BIQVZFX09SQUNMRV9UUlVFQAkkKGFtX19vYmplY3RzXzIpCisrbGli c29jaV9vcmFjbGVfbGFfT0JKRUNUUyA9ICQoYW1fbGlic29jaV9vcmFjbGVfbGFfT0JKRUNUUykK KytsaWJzb2NpX29yYWNsZV9sYV9MSU5LID0gJChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJU T09MRkxBR1MpIFwKKysJJChMSUJUT09MRkxBR1MpIC0tbW9kZT1saW5rICQoQ1hYTEQpIFwKKysJ JChsaWJzb2NpX29yYWNsZV9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgXAorKwkkKGxpYnNvY2lf b3JhY2xlX2xhX0xERkxBR1MpICQoTERGTEFHUykgLW8gJEAKKytASEFWRV9PUkFDTEVfVFJVRUBh bV9saWJzb2NpX29yYWNsZV9sYV9ycGF0aCA9IC1ycGF0aCAkKGxpYmRpcikKKytERUZBVUxUX0lO Q0xVREVTID0gLUkuQGFtX19pc3JjQCAtSSQodG9wX2J1aWxkZGlyKS9zb2NpCisrZGVwY29tcCA9 ICQoU0hFTEwpICQodG9wX3NyY2RpcikvY29uZmlnL2RlcGNvbXAKKythbV9fZGVwZmlsZXNfbWF5 YmUgPSBkZXBmaWxlcworK2FtX19tdiA9IG12IC1mCisrQ1hYQ09NUElMRSA9ICQoQ1hYKSAkKERF RlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgXAorKwkkKEFNX0NQUEZMQUdTKSAk KENQUEZMQUdTKSAkKEFNX0NYWEZMQUdTKSAkKENYWEZMQUdTKQorK0xUQ1hYQ09NUElMRSA9ICQo TElCVE9PTCkgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgXAor KwktLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5D TFVERVMpIFwKKysJJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChBTV9DWFhGTEFHUykgJChD WFhGTEFHUykKKytDWFhMRCA9ICQoQ1hYKQorK0NYWExJTksgPSAkKExJQlRPT0wpIC0tdGFnPUNY WCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIFwKKysJLS1tb2RlPWxpbmsgJChD WFhMRCkgJChBTV9DWFhGTEFHUykgJChDWFhGTEFHUykgJChBTV9MREZMQUdTKSBcCisrCSQoTERG TEFHUykgLW8gJEAKKytDT01QSUxFID0gJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMp ICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpIFwKKysJJChDUFBGTEFHUykgJChBTV9DRkxBR1Mp ICQoQ0ZMQUdTKQorK0xUQ09NUElMRSA9ICQoTElCVE9PTCkgLS10YWc9Q0MgJChBTV9MSUJUT09M RkxBR1MpICQoTElCVE9PTEZMQUdTKSBcCisrCS0tbW9kZT1jb21waWxlICQoQ0MpICQoREVGUykg JChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSBcCisrCSQoQU1fQ1BQRkxBR1MpICQoQ1BQ RkxBR1MpICQoQU1fQ0ZMQUdTKSAkKENGTEFHUykKKytDQ0xEID0gJChDQykKKytMSU5LID0gJChM SUJUT09MKSAtLXRhZz1DQyAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIFwKKysJ LS1tb2RlPWxpbmsgJChDQ0xEKSAkKEFNX0NGTEFHUykgJChDRkxBR1MpICQoQU1fTERGTEFHUykg XAorKwkkKExERkxBR1MpIC1vICRACisrU09VUkNFUyA9ICQobGlic29jaV9vcmFjbGVfbGFfU09V UkNFUykKKytESVNUX1NPVVJDRVMgPSAkKGFtX19saWJzb2NpX29yYWNsZV9sYV9TT1VSQ0VTX0RJ U1QpCisrUkVDVVJTSVZFX1RBUkdFVFMgPSBhbGwtcmVjdXJzaXZlIGNoZWNrLXJlY3Vyc2l2ZSBk dmktcmVjdXJzaXZlIFwKKysJaHRtbC1yZWN1cnNpdmUgaW5mby1yZWN1cnNpdmUgaW5zdGFsbC1k YXRhLXJlY3Vyc2l2ZSBcCisrCWluc3RhbGwtZHZpLXJlY3Vyc2l2ZSBpbnN0YWxsLWV4ZWMtcmVj dXJzaXZlIFwKKysJaW5zdGFsbC1odG1sLXJlY3Vyc2l2ZSBpbnN0YWxsLWluZm8tcmVjdXJzaXZl IFwKKysJaW5zdGFsbC1wZGYtcmVjdXJzaXZlIGluc3RhbGwtcHMtcmVjdXJzaXZlIGluc3RhbGwt cmVjdXJzaXZlIFwKKysJaW5zdGFsbGNoZWNrLXJlY3Vyc2l2ZSBpbnN0YWxsZGlycy1yZWN1cnNp dmUgcGRmLXJlY3Vyc2l2ZSBcCisrCXBzLXJlY3Vyc2l2ZSB1bmluc3RhbGwtcmVjdXJzaXZlCisr YW1fX25vYmFzZV9wa2dpbmNsdWRlX0hFQURFUlNfRElTVCA9ICBcCisrCSQodG9wX3NyY2Rpcikv c29jaS9iYWNrZW5kcy9vcmFjbGUvc29jaS1vcmFjbGUuaAorK0hFQURFUlMgPSAkKG5vYmFzZV9w a2dpbmNsdWRlX0hFQURFUlMpCisrUkVDVVJTSVZFX0NMRUFOX1RBUkdFVFMgPSBtb3N0bHljbGVh bi1yZWN1cnNpdmUgY2xlYW4tcmVjdXJzaXZlCVwKKysgIGRpc3RjbGVhbi1yZWN1cnNpdmUgbWFp bnRhaW5lci1jbGVhbi1yZWN1cnNpdmUKKytBTV9SRUNVUlNJVkVfVEFSR0VUUyA9ICQoUkVDVVJT SVZFX1RBUkdFVFM6LXJlY3Vyc2l2ZT0pIFwKKysJJChSRUNVUlNJVkVfQ0xFQU5fVEFSR0VUUzot cmVjdXJzaXZlPSkgdGFncyBUQUdTIGN0YWdzIENUQUdTIFwKKysJZGlzdGRpcgorK0VUQUdTID0g ZXRhZ3MKKytDVEFHUyA9IGN0YWdzCisrRElTVF9TVUJESVJTID0gJChTVUJESVJTKQorK0RJU1RG SUxFUyA9ICQoRElTVF9DT01NT04pICQoRElTVF9TT1VSQ0VTKSAkKFRFWElORk9TKSAkKEVYVFJB X0RJU1QpCisrYW1fX3JlbGF0aXZpemUgPSBcCisrICBkaXIwPWBwd2RgOyBcCisrICBzZWRfZmly c3Q9J3MsXlwoW14vXSpcKS8uKiQkLFwxLCc7IFwKKysgIHNlZF9yZXN0PSdzLF5bXi9dKi8qLCwn OyBcCisrICBzZWRfbGFzdD0ncyxeLiovXChbXi9dKlwpJCQsXDEsJzsgXAorKyAgc2VkX2J1dGxh c3Q9J3MsLypbXi9dKiQkLCwnOyBcCisrICB3aGlsZSB0ZXN0IC1uICIkJGRpcjEiOyBkbyBcCisr ICAgIGZpcnN0PWBlY2hvICIkJGRpcjEiIHwgc2VkIC1lICIkJHNlZF9maXJzdCJgOyBcCisrICAg IGlmIHRlc3QgIiQkZmlyc3QiICE9ICIuIjsgdGhlbiBcCisrICAgICAgaWYgdGVzdCAiJCRmaXJz dCIgPSAiLi4iOyB0aGVuIFwKKysgICAgICAgIGRpcjI9YGVjaG8gIiQkZGlyMCIgfCBzZWQgLWUg IiQkc2VkX2xhc3QiYC8iJCRkaXIyIjsgXAorKyAgICAgICAgZGlyMD1gZWNobyAiJCRkaXIwIiB8 IHNlZCAtZSAiJCRzZWRfYnV0bGFzdCJgOyBcCisrICAgICAgZWxzZSBcCisrICAgICAgICBmaXJz dDI9YGVjaG8gIiQkZGlyMiIgfCBzZWQgLWUgIiQkc2VkX2ZpcnN0ImA7IFwKKysgICAgICAgIGlm IHRlc3QgIiQkZmlyc3QyIiA9ICIkJGZpcnN0IjsgdGhlbiBcCisrICAgICAgICAgIGRpcjI9YGVj aG8gIiQkZGlyMiIgfCBzZWQgLWUgIiQkc2VkX3Jlc3QiYDsgXAorKyAgICAgICAgZWxzZSBcCisr ICAgICAgICAgIGRpcjI9Ii4uLyQkZGlyMiI7IFwKKysgICAgICAgIGZpOyBcCisrICAgICAgICBk aXIwPSIkJGRpcjAiLyIkJGZpcnN0IjsgXAorKyAgICAgIGZpOyBcCisrICAgIGZpOyBcCisrICAg IGRpcjE9YGVjaG8gIiQkZGlyMSIgfCBzZWQgLWUgIiQkc2VkX3Jlc3QiYDsgXAorKyAgZG9uZTsg XAorKyAgcmVsZGlyPSIkJGRpcjIiCisrcGtnaW5jbHVkZWRpciA9ICQoc29jaV9pbmNsdWRlX2Rp cikKKytBQ0xPQ0FMID0gQEFDTE9DQUxACisrQU1UQVIgPSBAQU1UQVJACisrQVIgPSBAQVJACisr QVVUT0NPTkYgPSBAQVVUT0NPTkZACisrQVVUT0hFQURFUiA9IEBBVVRPSEVBREVSQAorK0FVVE9N QUtFID0gQEFVVE9NQUtFQAorK0FXSyA9IEBBV0tACisrQk9PU1RfQ0ZMQUdTID0gQEJPT1NUX0NG TEFHU0AKKytCT09TVF9EQVRFX1RJTUVfTElCID0gQEJPT1NUX0RBVEVfVElNRV9MSUJACisrQk9P U1RfRklMRVNZU1RFTV9MSUIgPSBAQk9PU1RfRklMRVNZU1RFTV9MSUJACisrQk9PU1RfSU9TVFJF QU1TX0xJQiA9IEBCT09TVF9JT1NUUkVBTVNfTElCQAorK0JPT1NUX0xJQlMgPSBAQk9PU1RfTElC U0AKKytCT09TVF9NUElfTElCID0gQEJPT1NUX01QSV9MSUJACisrQk9PU1RfTVBJX1BZVEhPTl9M SUIgPSBAQk9PU1RfTVBJX1BZVEhPTl9MSUJACisrQk9PU1RfUFJPR1JBTV9PUFRJT05TX0xJQiA9 IEBCT09TVF9QUk9HUkFNX09QVElPTlNfTElCQAorK0JPT1NUX1BZVEhPTl9MSUIgPSBAQk9PU1Rf UFlUSE9OX0xJQkAKKytCT09TVF9SRUdFWF9MSUIgPSBAQk9PU1RfUkVHRVhfTElCQAorK0JPT1NU X1NFUklBTElaQVRJT05fTElCID0gQEJPT1NUX1NFUklBTElaQVRJT05fTElCQAorK0JPT1NUX1NJ R05BTFNfTElCID0gQEJPT1NUX1NJR05BTFNfTElCQAorK0JPT1NUX1NZU1RFTV9MSUIgPSBAQk9P U1RfU1lTVEVNX0xJQkAKKytCT09TVF9USFJFQURfTElCID0gQEJPT1NUX1RIUkVBRF9MSUJACisr Qk9PU1RfVU5JVF9URVNUX0ZSQU1FV09SS19MSUIgPSBAQk9PU1RfVU5JVF9URVNUX0ZSQU1FV09S S19MSUJACisrQk9PU1RfVkVSU0lPTiA9IEBCT09TVF9WRVJTSU9OQAorK0JPT1NUX1dTRVJJQUxJ WkFUSU9OX0xJQiA9IEBCT09TVF9XU0VSSUFMSVpBVElPTl9MSUJACisrQ0MgPSBAQ0NACisrQ0NE RVBNT0RFID0gQENDREVQTU9ERUAKKytDRkxBR1MgPSBAQ0ZMQUdTQAorK0NQUCA9IEBDUFBACisr Q1BQRkxBR1MgPSBAQ1BQRkxBR1NACisrQ1BQVU5JVF9DRkxBR1MgPSBAQ1BQVU5JVF9DRkxBR1NA CisrQ1BQVU5JVF9DT05GSUcgPSBAQ1BQVU5JVF9DT05GSUdACisrQ1BQVU5JVF9MSUJTID0gQENQ UFVOSVRfTElCU0AKKytDUFBVTklUX1ZFUlNJT04gPSBAQ1BQVU5JVF9WRVJTSU9OQAorK0NYWCA9 IEBDWFhACisrQ1hYQ1BQID0gQENYWENQUEAKKytDWFhERVBNT0RFID0gQENYWERFUE1PREVACisr Q1hYRkxBR1MgPSBAQ1hYRkxBR1NACisrQ1lHUEFUSF9XID0gQENZR1BBVEhfV0AKKytERUZTID0g QERFRlNACisrREVQRElSID0gQERFUERJUkAKKytEU1lNVVRJTCA9IEBEU1lNVVRJTEAKKytEVU1Q QklOID0gQERVTVBCSU5ACisrRUNIT19DID0gQEVDSE9fQ0AKKytFQ0hPX04gPSBARUNIT19OQAor K0VDSE9fVCA9IEBFQ0hPX1RACisrRUdSRVAgPSBARUdSRVBACisrRVhFRVhUID0gQEVYRUVYVEAK KytGR1JFUCA9IEBGR1JFUEAKKytHRU5FUklDX0xJQlJBUllfVkVSU0lPTiA9IEBHRU5FUklDX0xJ QlJBUllfVkVSU0lPTkAKKytHUkVQID0gQEdSRVBACisrSU5TVEFMTCA9IEBJTlNUQUxMQAorK0lO U1RBTExfREFUQSA9IEBJTlNUQUxMX0RBVEFACisrSU5TVEFMTF9QUk9HUkFNID0gQElOU1RBTExf UFJPR1JBTUAKKytJTlNUQUxMX1NDUklQVCA9IEBJTlNUQUxMX1NDUklQVEAKKytJTlNUQUxMX1NU UklQX1BST0dSQU0gPSBASU5TVEFMTF9TVFJJUF9QUk9HUkFNQAorK0xEID0gQExEQAorK0xERkxB R1MgPSBATERGTEFHU0AKKytMSUJPQkpTID0gQExJQk9CSlNACisrTElCUyA9IEBMSUJTQAorK0xJ QlRPT0wgPSBATElCVE9PTEAKKytMSVBPID0gQExJUE9ACisrTE5fUyA9IEBMTl9TQAorK0xUTElC T0JKUyA9IEBMVExJQk9CSlNACisrTUFLRUlORk8gPSBATUFLRUlORk9ACisrTUtESVJfUCA9IEBN S0RJUl9QQAorK01ZU1FMX0NGTEFHUyA9IEBNWVNRTF9DRkxBR1NACisrTVlTUUxfQ19MSUIgPSBA TVlTUUxfQ19MSUJACisrTVlTUUxfRElSUyA9IEBNWVNRTF9ESVJTQAorK01ZU1FMX0xJQlMgPSBA TVlTUUxfTElCU0AKKytNWVNRTF9WRVJTSU9OID0gQE1ZU1FMX1ZFUlNJT05ACisrTk0gPSBATk1A CisrTk1FRElUID0gQE5NRURJVEAKKytPQkpEVU1QID0gQE9CSkRVTVBACisrT0JKRVhUID0gQE9C SkVYVEAKKytPUkFDTEVfRElSUyA9IEBPUkFDTEVfRElSU0AKKytPUkFDTEVfT0NJX0NGTEFHUyA9 IEBPUkFDTEVfT0NJX0NGTEFHU0AKKytPUkFDTEVfT0NJX0xERkxBR1MgPSBAT1JBQ0xFX09DSV9M REZMQUdTQAorK09SQUNMRV9PQ0lfVkVSU0lPTiA9IEBPUkFDTEVfT0NJX1ZFUlNJT05ACisrT1RP T0wgPSBAT1RPT0xACisrT1RPT0w2NCA9IEBPVE9PTDY0QAorK1BBQ0tBR0UgPSBAUEFDS0FHRUAK KytQQUNLQUdFX0JVR1JFUE9SVCA9IEBQQUNLQUdFX0JVR1JFUE9SVEAKKytQQUNLQUdFX05BTUUg PSBAUEFDS0FHRV9OQU1FQAorK1BBQ0tBR0VfU1RSSU5HID0gQFBBQ0tBR0VfU1RSSU5HQAorK1BB Q0tBR0VfVEFSTkFNRSA9IEBQQUNLQUdFX1RBUk5BTUVACisrUEFDS0FHRV9WRVJTSU9OID0gQFBB Q0tBR0VfVkVSU0lPTkAKKytQQVRIX1NFUEFSQVRPUiA9IEBQQVRIX1NFUEFSQVRPUkAKKytQRVJM ID0gQFBFUkxACisrUEdfQ09ORklHID0gQFBHX0NPTkZJR0AKKytQT1NUR1JFU1FMX0NGTEFHUyA9 IEBQT1NUR1JFU1FMX0NGTEFHU0AKKytQT1NUR1JFU1FMX0RJUlMgPSBAUE9TVEdSRVNRTF9ESVJT QAorK1BPU1RHUkVTUUxfTERGTEFHUyA9IEBQT1NUR1JFU1FMX0xERkxBR1NACisrUE9TVEdSRVNR TF9WRVJTSU9OID0gQFBPU1RHUkVTUUxfVkVSU0lPTkAKKytSQU5MSUIgPSBAUkFOTElCQAorK1JQ TV9SRUxFQVNFID0gQFJQTV9SRUxFQVNFQAorK1NFRCA9IEBTRURACisrU0VUX01BS0UgPSBAU0VU X01BS0VACisrU0hFTEwgPSBAU0hFTExACisrU09DSV9IRUFERVJTX0JVUklFRCA9IEBTT0NJX0hF QURFUlNfQlVSSUVEQAorK1NPQ0lfTVlTUUxfSEVBREVSU19CVVJJRUQgPSBAU09DSV9NWVNRTF9I RUFERVJTX0JVUklFREAKKytTT0NJX1BPU1RHUkVTUUxfSEVBREVSU19CVVJJRUQgPSBAU09DSV9Q T1NUR1JFU1FMX0hFQURFUlNfQlVSSUVEQAorK1NUUklQID0gQFNUUklQQAorK1VQTE9BRF9DT01N QU5EID0gQFVQTE9BRF9DT01NQU5EQAorK1ZFUlNJT04gPSBAVkVSU0lPTkAKKythYnNfYnVpbGRk aXIgPSBAYWJzX2J1aWxkZGlyQAorK2Fic19zcmNkaXIgPSBAYWJzX3NyY2RpckAKKythYnNfdG9w X2J1aWxkZGlyID0gQGFic190b3BfYnVpbGRkaXJACisrYWJzX3RvcF9zcmNkaXIgPSBAYWJzX3Rv cF9zcmNkaXJACisrYWNfY3RfQ0MgPSBAYWNfY3RfQ0NACisrYWNfY3RfQ1hYID0gQGFjX2N0X0NY WEAKKythY19jdF9EVU1QQklOID0gQGFjX2N0X0RVTVBCSU5ACisrYW1fX2luY2x1ZGUgPSBAYW1f X2luY2x1ZGVACisrYW1fX2xlYWRpbmdfZG90ID0gQGFtX19sZWFkaW5nX2RvdEAKKythbV9fcXVv dGUgPSBAYW1fX3F1b3RlQAorK2FtX190YXIgPSBAYW1fX3RhckAKKythbV9fdW50YXIgPSBAYW1f X3VudGFyQAorK2JpbmRpciA9IEBiaW5kaXJACisrYnVpbGQgPSBAYnVpbGRACisrYnVpbGRfYWxp YXMgPSBAYnVpbGRfYWxpYXNACisrYnVpbGRfY3B1ID0gQGJ1aWxkX2NwdUAKKytidWlsZF9vcyA9 IEBidWlsZF9vc0AKKytidWlsZF92ZW5kb3IgPSBAYnVpbGRfdmVuZG9yQAorK2J1aWxkZGlyID0g QGJ1aWxkZGlyQAorK2RhdGFkaXIgPSBAZGF0YWRpckAKKytkYXRhcm9vdGRpciA9IEBkYXRhcm9v dGRpckAKKytkaWZmX29rID0gQGRpZmZfb2tACisrZG9jZGlyID0gQGRvY2RpckAKKytkb3h5Z2Vu X29rID0gQGRveHlnZW5fb2tACisrZHZpZGlyID0gQGR2aWRpckAKKytkdmlwc19vayA9IEBkdmlw c19va0AKKytleGVjX3ByZWZpeCA9IEBleGVjX3ByZWZpeEAKKytnc19vayA9IEBnc19va0AKKyto b3N0ID0gQGhvc3RACisraG9zdF9hbGlhcyA9IEBob3N0X2FsaWFzQAorK2hvc3RfY3B1ID0gQGhv c3RfY3B1QAorK2hvc3Rfb3MgPSBAaG9zdF9vc0AKKytob3N0X3ZlbmRvciA9IEBob3N0X3ZlbmRv ckAKKytodG1sZGlyID0gQGh0bWxkaXJACisraW5jbHVkZWRpciA9IEBpbmNsdWRlZGlyQAorK2lu Zm9kaXIgPSBAaW5mb2RpckAKKytpbnN0YWxsX3NoID0gQGluc3RhbGxfc2hACisrbGF0ZXhfb2sg PSBAbGF0ZXhfb2tACisrbGliZGlyID0gQGxpYmRpckAKKytsaWJleGVjZGlyID0gQGxpYmV4ZWNk aXJACisrbG9jYWxlZGlyID0gQGxvY2FsZWRpckAKKytsb2NhbHN0YXRlZGlyID0gQGxvY2Fsc3Rh dGVkaXJACisrbHRfRUNITyA9IEBsdF9FQ0hPQAorK21hbmRpciA9IEBtYW5kaXJACisrbWtkaXJf cCA9IEBta2Rpcl9wQAorK29sZGluY2x1ZGVkaXIgPSBAb2xkaW5jbHVkZWRpckAKKytwZGZkaXIg PSBAcGRmZGlyQAorK3ByZWZpeCA9IEBwcmVmaXhACisrcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZSA9 IEBwcm9ncmFtX3RyYW5zZm9ybV9uYW1lQAorK3BzZGlyID0gQHBzZGlyQAorK3NiaW5kaXIgPSBA c2JpbmRpckAKKytzZWRfb2sgPSBAc2VkX29rQAorK3NoYXJlZHN0YXRlZGlyID0gQHNoYXJlZHN0 YXRlZGlyQAorK3NyY2RpciA9IEBzcmNkaXJACisrc3lzY29uZmRpciA9IEBzeXNjb25mZGlyQAor K3RhcmdldF9hbGlhcyA9IEB0YXJnZXRfYWxpYXNACisrdG9wX2J1aWxkX3ByZWZpeCA9IEB0b3Bf YnVpbGRfcHJlZml4QAorK3RvcF9idWlsZGRpciA9IEB0b3BfYnVpbGRkaXJACisrdG9wX3NyY2Rp ciA9IEB0b3Bfc3JjZGlyQAorK0FNX0NQUEZMQUdTID0gLUkkKHRvcF9idWlsZGRpcikgLUkkKHRv cF9zcmNkaXIpCisrYmNrX29yYWNsZV9oX3NvdXJjZXMgPSBcCisrICAgICAgICAkKHRvcF9zcmNk aXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL2Vycm9yLmggXAorKyAgICAgICAgJCh0b3Bfc3JjZGly KS9zb2NpL2JhY2tlbmRzL29yYWNsZS9zb2NpLW9yYWNsZS5oCisrCisrYmNrX29yYWNsZV9jY19z b3VyY2VzID0gXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9i bG9iLmNwcCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL2Vy cm9yLmNwcCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL2Zh Y3RvcnkuY3BwIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUv cm93LWlkLmNwcCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xl L3Nlc3Npb24uY3BwIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFj bGUvc3RhbmRhcmQtaW50by10eXBlLmNwcCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kv YmFja2VuZHMvb3JhY2xlL3N0YW5kYXJkLXVzZS10eXBlLmNwcCBcCisrICAgICAgICAkKHRvcF9z cmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3N0YXRlbWVudC5jcHAgXAorKyAgICAgICAgJCh0 b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS92ZWN0b3ItaW50by10eXBlLmNwcCBcCisr ICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3ZlY3Rvci11c2UtdHlw ZS5jcHAKKysKKytNQUlOVEFJTkVSQ0xFQU5GSUxFUyA9IE1ha2VmaWxlLmluCisrU1VCRElSUyA9 IC4gdGVzdAorK0BIQVZFX09SQUNMRV9UUlVFQGxpYl9MVExJQlJBUklFUyA9IGxpYnNvY2lfb3Jh Y2xlLmxhCisrQEhBVkVfT1JBQ0xFX1RSVUVAbGlic29jaV9vcmFjbGVfbGFfU09VUkNFUyA9ICQo YmNrX29yYWNsZV9oX3NvdXJjZXMpICQoYmNrX29yYWNsZV9jY19zb3VyY2VzKSAKKytASEFWRV9P UkFDTEVfVFJVRUBsaWJzb2NpX29yYWNsZV9sYV9DWFhGTEFHUyA9ICQoT1JBQ0xFX09DSV9DRkxB R1MpCisrQEhBVkVfT1JBQ0xFX1RSVUVAbGlic29jaV9vcmFjbGVfbGFfTElCQUREID0gCisrQEhB VkVfT1JBQ0xFX1RSVUVAbGlic29jaV9vcmFjbGVfbGFfTERGTEFHUyA9IFwKKytASEFWRV9PUkFD TEVfVFJVRUAJJChCT09TVF9MSUJTKSAkKEJPT1NUX0RBVEVfVElNRV9MSUIpICQoQk9PU1RfUFJP R1JBTV9PUFRJT05TX0xJQikgXAorK0BIQVZFX09SQUNMRV9UUlVFQAkkKE9SQUNMRV9PQ0lfTERG TEFHUykgXAorK0BIQVZFX09SQUNMRV9UUlVFQAktdmVyc2lvbi1pbmZvICQoR0VORVJJQ19MSUJS QVJZX1ZFUlNJT04pCisrCisrQEhBVkVfT1JBQ0xFX1RSVUVAbm9iYXNlX3BrZ2luY2x1ZGVfSEVB REVSUyA9ICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvc29jaS1vcmFjbGUuaAor K0BTT0NJX0hFQURFUlNfQlVSSUVEX0ZBTFNFQHNvY2lfaW5jbHVkZV9kaXIgPSAkKGluY2x1ZGVk aXIpCisrQFNPQ0lfSEVBREVSU19CVVJJRURfVFJVRUBzb2NpX2luY2x1ZGVfZGlyID0gJChpbmNs dWRlZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZQorK2FsbDogYWxsLXJlY3Vyc2l2ZQorKworKy5T VUZGSVhFUzoKKysuU1VGRklYRVM6IC5jcHAgLmxvIC5vIC5vYmoKKyskKHNyY2RpcikvTWFrZWZp bGUuaW46ICAkKHNyY2RpcikvTWFrZWZpbGUuYW0gJCh0b3Bfc3JjZGlyKS9NYWtlZmlsZS5jb21t b24gJChzcmNkaXIpL3NvdXJjZXMubWsgJChhbV9fY29uZmlndXJlX2RlcHMpCisrCUBmb3IgZGVw IGluICQ/OyBkbyBcCisrCSAgY2FzZSAnJChhbV9fY29uZmlndXJlX2RlcHMpJyBpbiBcCisrCSAg ICAqJCRkZXAqKSBcCisrCSAgICAgICggY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChB TV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoICkgXAorKwkgICAgICAgICYmIHsgaWYgdGVzdCAtZiAk QDsgdGhlbiBleGl0IDA7IGVsc2UgYnJlYWs7IGZpOyB9OyBcCisrCSAgICAgIGV4aXQgMTs7IFwK KysJICBlc2FjOyBcCisrCWRvbmU7IFwKKysJZWNobyAnIGNkICQodG9wX3NyY2RpcikgJiYgJChB VVRPTUFLRSkgLS1nbnUgc29jaS9iYWNrZW5kcy9vcmFjbGUvTWFrZWZpbGUnOyBcCisrCSQoYW1f X2NkKSAkKHRvcF9zcmNkaXIpICYmIFwKKysJICAkKEFVVE9NQUtFKSAtLWdudSBzb2NpL2JhY2tl bmRzL29yYWNsZS9NYWtlZmlsZQorKy5QUkVDSU9VUzogTWFrZWZpbGUKKytNYWtlZmlsZTogJChz cmNkaXIpL01ha2VmaWxlLmluICQodG9wX2J1aWxkZGlyKS9jb25maWcuc3RhdHVzCisrCUBjYXNl ICckPycgaW4gXAorKwkgICpjb25maWcuc3RhdHVzKikgXAorKwkgICAgY2QgJCh0b3BfYnVpbGRk aXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoOzsgXAorKwkgICopIFwK KysJICAgIGVjaG8gJyBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChTSEVMTCkgLi9jb25maWcuc3Rh dHVzICQoc3ViZGlyKS8kQCAkKGFtX19kZXBmaWxlc19tYXliZSknOyBcCisrCSAgICBjZCAkKHRv cF9idWlsZGRpcikgJiYgJChTSEVMTCkgLi9jb25maWcuc3RhdHVzICQoc3ViZGlyKS8kQCAkKGFt X19kZXBmaWxlc19tYXliZSk7OyBcCisrCWVzYWM7CisrCisrJCh0b3BfYnVpbGRkaXIpL2NvbmZp Zy5zdGF0dXM6ICQodG9wX3NyY2RpcikvY29uZmlndXJlICQoQ09ORklHX1NUQVRVU19ERVBFTkRF TkNJRVMpCisrCWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBh bS0tcmVmcmVzaAorKworKyQodG9wX3NyY2RpcikvY29uZmlndXJlOiAgJChhbV9fY29uZmlndXJl X2RlcHMpCisrCWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBh bS0tcmVmcmVzaAorKyQoQUNMT0NBTF9NNCk6ICAkKGFtX19hY2xvY2FsX200X2RlcHMpCisrCWNk ICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaAor KyQoYW1fX2FjbG9jYWxfbTRfZGVwcyk6CisraW5zdGFsbC1saWJMVExJQlJBUklFUzogJChsaWJf TFRMSUJSQVJJRVMpCisrCUAkKE5PUk1BTF9JTlNUQUxMKQorKwl0ZXN0IC16ICIkKGxpYmRpciki IHx8ICQoTUtESVJfUCkgIiQoREVTVERJUikkKGxpYmRpcikiCisrCUBsaXN0PSckKGxpYl9MVExJ QlJBUklFUyknOyB0ZXN0IC1uICIkKGxpYmRpcikiIHx8IGxpc3Q9OyBcCisrCWxpc3QyPTsgZm9y IHAgaW4gJCRsaXN0OyBkbyBcCisrCSAgaWYgdGVzdCAtZiAkJHA7IHRoZW4gXAorKwkgICAgbGlz dDI9IiQkbGlzdDIgJCRwIjsgXAorKwkgIGVsc2UgOjsgZmk7IFwKKysJZG9uZTsgXAorKwl0ZXN0 IC16ICIkJGxpc3QyIiB8fCB7IFwKKysJICBlY2hvICIgJChMSUJUT09MKSAkKEFNX0xJQlRPT0xG TEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1pbnN0YWxsICQoSU5TVEFMTCkgJChJTlNUQUxM X1NUUklQX0ZMQUcpICQkbGlzdDIgJyQoREVTVERJUikkKGxpYmRpciknIjsgXAorKwkgICQoTElC VE9PTCkgJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9aW5zdGFsbCAk KElOU1RBTEwpICQoSU5TVEFMTF9TVFJJUF9GTEFHKSAkJGxpc3QyICIkKERFU1RESVIpJChsaWJk aXIpIjsgXAorKwl9CisrCisrdW5pbnN0YWxsLWxpYkxUTElCUkFSSUVTOgorKwlAJChOT1JNQUxf VU5JTlNUQUxMKQorKwlAbGlzdD0nJChsaWJfTFRMSUJSQVJJRVMpJzsgdGVzdCAtbiAiJChsaWJk aXIpIiB8fCBsaXN0PTsgXAorKwlmb3IgcCBpbiAkJGxpc3Q7IGRvIFwKKysJICAkKGFtX19zdHJp cF9kaXIpIFwKKysJICBlY2hvICIgJChMSUJUT09MKSAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJU T09MRkxBR1MpIC0tbW9kZT11bmluc3RhbGwgcm0gLWYgJyQoREVTVERJUikkKGxpYmRpcikvJCRm JyI7IFwKKysJICAkKExJQlRPT0wpICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykg LS1tb2RlPXVuaW5zdGFsbCBybSAtZiAiJChERVNURElSKSQobGliZGlyKS8kJGYiOyBcCisrCWRv bmUKKysKKytjbGVhbi1saWJMVExJQlJBUklFUzoKKysJLXRlc3QgLXogIiQobGliX0xUTElCUkFS SUVTKSIgfHwgcm0gLWYgJChsaWJfTFRMSUJSQVJJRVMpCisrCUBsaXN0PSckKGxpYl9MVExJQlJB UklFUyknOyBmb3IgcCBpbiAkJGxpc3Q7IGRvIFwKKysJICBkaXI9ImBlY2hvICQkcCB8IHNlZCAt ZSAnc3wvW14vXSokJHx8J2AiOyBcCisrCSAgdGVzdCAiJCRkaXIiICE9ICIkJHAiIHx8IGRpcj0u OyBcCisrCSAgZWNobyAicm0gLWYgXCIkJHtkaXJ9L3NvX2xvY2F0aW9uc1wiIjsgXAorKwkgIHJt IC1mICIkJHtkaXJ9L3NvX2xvY2F0aW9ucyI7IFwKKysJZG9uZQorK2xpYnNvY2lfb3JhY2xlLmxh OiAkKGxpYnNvY2lfb3JhY2xlX2xhX09CSkVDVFMpICQobGlic29jaV9vcmFjbGVfbGFfREVQRU5E RU5DSUVTKSAKKysJJChsaWJzb2NpX29yYWNsZV9sYV9MSU5LKSAkKGFtX2xpYnNvY2lfb3JhY2xl X2xhX3JwYXRoKSAkKGxpYnNvY2lfb3JhY2xlX2xhX09CSkVDVFMpICQobGlic29jaV9vcmFjbGVf bGFfTElCQUREKSAkKExJQlMpCisrCisrbW9zdGx5Y2xlYW4tY29tcGlsZToKKysJLXJtIC1mICou JChPQkpFWFQpCisrCisrZGlzdGNsZWFuLWNvbXBpbGU6CisrCS1ybSAtZiAqLnRhYi5jCisrCisr QEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL2xpYnNvY2lf b3JhY2xlX2xhLWJsb2IuUGxvQGFtX19xdW90ZUAKKytAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVA IEBhbV9fcXVvdGVALi8kKERFUERJUikvbGlic29jaV9vcmFjbGVfbGEtZXJyb3IuUGxvQGFtX19x dW90ZUAKKytAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikv bGlic29jaV9vcmFjbGVfbGEtZmFjdG9yeS5QbG9AYW1fX3F1b3RlQAorK0BBTURFUF9UUlVFQEBh bV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9saWJzb2NpX29yYWNsZV9sYS1yb3ct aWQuUGxvQGFtX19xdW90ZUAKKytAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVA Li8kKERFUERJUikvbGlic29jaV9vcmFjbGVfbGEtc2Vzc2lvbi5QbG9AYW1fX3F1b3RlQAorK0BB TURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9saWJzb2NpX29y YWNsZV9sYS1zdGFuZGFyZC1pbnRvLXR5cGUuUGxvQGFtX19xdW90ZUAKKytAQU1ERVBfVFJVRUBA YW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvbGlic29jaV9vcmFjbGVfbGEtc3Rh bmRhcmQtdXNlLXR5cGUuUGxvQGFtX19xdW90ZUAKKytAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVA IEBhbV9fcXVvdGVALi8kKERFUERJUikvbGlic29jaV9vcmFjbGVfbGEtc3RhdGVtZW50LlBsb0Bh bV9fcXVvdGVACisrQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBE SVIpL2xpYnNvY2lfb3JhY2xlX2xhLXZlY3Rvci1pbnRvLXR5cGUuUGxvQGFtX19xdW90ZUAKKytA QU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvbGlic29jaV9v cmFjbGVfbGEtdmVjdG9yLXVzZS10eXBlLlBsb0BhbV9fcXVvdGVACisrCisrLmNwcC5vOgorK0Bh bV9fZmFzdGRlcENYWF9UUlVFQAkkKENYWENPTVBJTEUpIC1NVCAkQCAtTUQgLU1QIC1NRiAkKERF UERJUikvJCouVHBvIC1jIC1vICRAICQ8CisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoYW1fX212 KSAkKERFUERJUikvJCouVHBvICQoREVQRElSKS8kKi5QbworK0BBTURFUF9UUlVFQEBhbV9fZmFz dGRlcENYWF9GQUxTRUAJc291cmNlPSckPCcgb2JqZWN0PSckQCcgbGlidG9vbD1ubyBAQU1ERVBC QUNLU0xBU0hACisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChE RVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACisrQGFtX19m YXN0ZGVwQ1hYX0ZBTFNFQAkkKENYWENPTVBJTEUpIC1jIC1vICRAICQ8CisrCisrLmNwcC5vYmo6 CisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoQ1hYQ09NUElMRSkgLU1UICRAIC1NRCAtTVAgLU1G ICQoREVQRElSKS8kKi5UcG8gLWMgLW8gJEAgYCQoQ1lHUEFUSF9XKSAnJDwnYAorK0BhbV9fZmFz dGRlcENYWF9UUlVFQAkkKGFtX19tdikgJChERVBESVIpLyQqLlRwbyAkKERFUERJUikvJCouUG8K KytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJDwnIG9iamVjdD0n JEAnIGxpYnRvb2w9bm8gQEFNREVQQkFDS1NMQVNIQAorK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRl cENYWF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFN REVQQkFDS1NMQVNIQAorK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChDWFhDT01QSUxFKSAtYyAt byAkQCBgJChDWUdQQVRIX1cpICckPCdgCisrCisrLmNwcC5sbzoKKytAYW1fX2Zhc3RkZXBDWFhf VFJVRUAJJChMVENYWENPTVBJTEUpIC1NVCAkQCAtTUQgLU1QIC1NRiAkKERFUERJUikvJCouVHBv IC1jIC1vICRAICQ8CisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoYW1fX212KSAkKERFUERJUikv JCouVHBvICQoREVQRElSKS8kKi5QbG8KKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFM U0VACXNvdXJjZT0nJDwnIG9iamVjdD0nJEAnIGxpYnRvb2w9eWVzIEBBTURFUEJBQ0tTTEFTSEAK KytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJUikgJChD WFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKKytAYW1fX2Zhc3RkZXBDWFhf RkFMU0VACSQoTFRDWFhDT01QSUxFKSAtYyAtbyAkQCAkPAorKworK2xpYnNvY2lfb3JhY2xlX2xh LWJsb2IubG86ICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvYmxvYi5jcHAKKytA YW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChMSUJUT09MKSAgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZM QUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZB VUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxp YnNvY2lfb3JhY2xlX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtTVQgbGlic29jaV9vcmFjbGVf bGEtYmxvYi5sbyAtTUQgLU1QIC1NRiAkKERFUERJUikvbGlic29jaV9vcmFjbGVfbGEtYmxvYi5U cG8gLWMgLW8gbGlic29jaV9vcmFjbGVfbGEtYmxvYi5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGly KS9zb2NpL2JhY2tlbmRzL29yYWNsZS9ibG9iLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0 b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9ibG9iLmNwcAorK0BhbV9fZmFzdGRlcENY WF9UUlVFQAkkKGFtX19tdikgJChERVBESVIpL2xpYnNvY2lfb3JhY2xlX2xhLWJsb2IuVHBvICQo REVQRElSKS9saWJzb2NpX29yYWNsZV9sYS1ibG9iLlBsbworK0BBTURFUF9UUlVFQEBhbV9fZmFz dGRlcENYWF9GQUxTRUAJc291cmNlPSckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xl L2Jsb2IuY3BwJyBvYmplY3Q9J2xpYnNvY2lfb3JhY2xlX2xhLWJsb2IubG8nIGxpYnRvb2w9eWVz IEBBTURFUEJBQ0tTTEFTSEAKKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURF UERJUj0kKERFUERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAK KytAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQoTElCVE9PTCkgIC0tdGFnPUNYWCAkKEFNX0xJQlRP T0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQo REVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykg JChsaWJzb2NpX29yYWNsZV9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLWMgLW8gbGlic29jaV9v cmFjbGVfbGEtYmxvYi5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29y YWNsZS9ibG9iLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2Jh Y2tlbmRzL29yYWNsZS9ibG9iLmNwcAorKworK2xpYnNvY2lfb3JhY2xlX2xhLWVycm9yLmxvOiAk KHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL2Vycm9yLmNwcAorK0BhbV9fZmFzdGRl cENYWF9UUlVFQAkkKExJQlRPT0wpICAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElC VE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVE RVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9vcmFj bGVfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1NVCBsaWJzb2NpX29yYWNsZV9sYS1lcnJvci5s byAtTUQgLU1QIC1NRiAkKERFUERJUikvbGlic29jaV9vcmFjbGVfbGEtZXJyb3IuVHBvIC1jIC1v IGxpYnNvY2lfb3JhY2xlX2xhLWVycm9yLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kv YmFja2VuZHMvb3JhY2xlL2Vycm9yLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3Jj ZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9lcnJvci5jcHAKKytAYW1fX2Zhc3RkZXBDWFhfVFJV RUAJJChhbV9fbXYpICQoREVQRElSKS9saWJzb2NpX29yYWNsZV9sYS1lcnJvci5UcG8gJChERVBE SVIpL2xpYnNvY2lfb3JhY2xlX2xhLWVycm9yLlBsbworK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRl cENYWF9GQUxTRUAJc291cmNlPSckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL2Vy cm9yLmNwcCcgb2JqZWN0PSdsaWJzb2NpX29yYWNsZV9sYS1lcnJvci5sbycgbGlidG9vbD15ZXMg QEFNREVQQkFDS1NMQVNIQAorK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQ RElSPSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAor K0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChMSUJUT09MKSAgLS10YWc9Q1hYICQoQU1fTElCVE9P TEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChE RUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAk KGxpYnNvY2lfb3JhY2xlX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtYyAtbyBsaWJzb2NpX29y YWNsZV9sYS1lcnJvci5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29y YWNsZS9lcnJvci5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9i YWNrZW5kcy9vcmFjbGUvZXJyb3IuY3BwCisrCisrbGlic29jaV9vcmFjbGVfbGEtZmFjdG9yeS5s bzogJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9mYWN0b3J5LmNwcAorK0BhbV9f ZmFzdGRlcENYWF9UUlVFQAkkKExJQlRPT0wpICAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1Mp ICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRf SU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29j aV9vcmFjbGVfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1NVCBsaWJzb2NpX29yYWNsZV9sYS1m YWN0b3J5LmxvIC1NRCAtTVAgLU1GICQoREVQRElSKS9saWJzb2NpX29yYWNsZV9sYS1mYWN0b3J5 LlRwbyAtYyAtbyBsaWJzb2NpX29yYWNsZV9sYS1mYWN0b3J5LmxvIGB0ZXN0IC1mICckKHRvcF9z cmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL2ZhY3RvcnkuY3BwJyB8fCBlY2hvICckKHNyY2Rp cikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL2ZhY3RvcnkuY3BwCisrQGFt X19mYXN0ZGVwQ1hYX1RSVUVACSQoYW1fX212KSAkKERFUERJUikvbGlic29jaV9vcmFjbGVfbGEt ZmFjdG9yeS5UcG8gJChERVBESVIpL2xpYnNvY2lfb3JhY2xlX2xhLWZhY3RvcnkuUGxvCisrQEFN REVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQodG9wX3NyY2Rpcikvc29j aS9iYWNrZW5kcy9vcmFjbGUvZmFjdG9yeS5jcHAnIG9iamVjdD0nbGlic29jaV9vcmFjbGVfbGEt ZmFjdG9yeS5sbycgbGlidG9vbD15ZXMgQEFNREVQQkFDS1NMQVNIQAorK0BBTURFUF9UUlVFQEBh bV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVw Y29tcCkgQEFNREVQQkFDS1NMQVNIQAorK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChMSUJUT09M KSAgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNv bXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFN X0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfb3JhY2xlX2xhX0NYWEZMQUdTKSAkKENY WEZMQUdTKSAtYyAtbyBsaWJzb2NpX29yYWNsZV9sYS1mYWN0b3J5LmxvIGB0ZXN0IC1mICckKHRv cF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL2ZhY3RvcnkuY3BwJyB8fCBlY2hvICckKHNy Y2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL2ZhY3RvcnkuY3BwCisr CisrbGlic29jaV9vcmFjbGVfbGEtcm93LWlkLmxvOiAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2Vu ZHMvb3JhY2xlL3Jvdy1pZC5jcHAKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChMSUJUT09MKSAg LS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBp bGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQ UEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfb3JhY2xlX2xhX0NYWEZMQUdTKSAkKENYWEZM QUdTKSAtTVQgbGlic29jaV9vcmFjbGVfbGEtcm93LWlkLmxvIC1NRCAtTVAgLU1GICQoREVQRElS KS9saWJzb2NpX29yYWNsZV9sYS1yb3ctaWQuVHBvIC1jIC1vIGxpYnNvY2lfb3JhY2xlX2xhLXJv dy1pZC5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9yb3ct aWQuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMv b3JhY2xlL3Jvdy1pZC5jcHAKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChhbV9fbXYpICQoREVQ RElSKS9saWJzb2NpX29yYWNsZV9sYS1yb3ctaWQuVHBvICQoREVQRElSKS9saWJzb2NpX29yYWNs ZV9sYS1yb3ctaWQuUGxvCisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3Vy Y2U9JyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvcm93LWlkLmNwcCcgb2JqZWN0 PSdsaWJzb2NpX29yYWNsZV9sYS1yb3ctaWQubG8nIGxpYnRvb2w9eWVzIEBBTURFUEJBQ0tTTEFT SEAKKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJUikg JChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKKytAYW1fX2Zhc3RkZXBD WFhfRkFMU0VACSQoTElCVE9PTCkgIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJU T09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURF UykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX29yYWNs ZV9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLWMgLW8gbGlic29jaV9vcmFjbGVfbGEtcm93LWlk LmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3Jvdy1pZC5j cHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFj bGUvcm93LWlkLmNwcAorKworK2xpYnNvY2lfb3JhY2xlX2xhLXNlc3Npb24ubG86ICQodG9wX3Ny Y2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvc2Vzc2lvbi5jcHAKKytAYW1fX2Zhc3RkZXBDWFhf VFJVRUAJJChMSUJUT09MKSAgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xG TEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAk KElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfb3JhY2xlX2xh X0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtTVQgbGlic29jaV9vcmFjbGVfbGEtc2Vzc2lvbi5sbyAt TUQgLU1QIC1NRiAkKERFUERJUikvbGlic29jaV9vcmFjbGVfbGEtc2Vzc2lvbi5UcG8gLWMgLW8g bGlic29jaV9vcmFjbGVfbGEtc2Vzc2lvbi5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2Np L2JhY2tlbmRzL29yYWNsZS9zZXNzaW9uLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bf c3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9zZXNzaW9uLmNwcAorK0BhbV9fZmFzdGRlcENY WF9UUlVFQAkkKGFtX19tdikgJChERVBESVIpL2xpYnNvY2lfb3JhY2xlX2xhLXNlc3Npb24uVHBv ICQoREVQRElSKS9saWJzb2NpX29yYWNsZV9sYS1zZXNzaW9uLlBsbworK0BBTURFUF9UUlVFQEBh bV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMv b3JhY2xlL3Nlc3Npb24uY3BwJyBvYmplY3Q9J2xpYnNvY2lfb3JhY2xlX2xhLXNlc3Npb24ubG8n IGxpYnRvb2w9eWVzIEBBTURFUEJBQ0tTTEFTSEAKKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBD WFhfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURF UEJBQ0tTTEFTSEAKKytAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQoTElCVE9PTCkgIC0tdGFnPUNY WCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hY KSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykg JChDUFBGTEFHUykgJChsaWJzb2NpX29yYWNsZV9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLWMg LW8gbGlic29jaV9vcmFjbGVfbGEtc2Vzc2lvbi5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9z b2NpL2JhY2tlbmRzL29yYWNsZS9zZXNzaW9uLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0 b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9zZXNzaW9uLmNwcAorKworK2xpYnNvY2lf b3JhY2xlX2xhLXN0YW5kYXJkLWludG8tdHlwZS5sbzogJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tl bmRzL29yYWNsZS9zdGFuZGFyZC1pbnRvLXR5cGUuY3BwCisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVA CSQoTElCVE9PTCkgIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1Mp IC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNM VURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX29yYWNsZV9sYV9DWFhG TEFHUykgJChDWFhGTEFHUykgLU1UIGxpYnNvY2lfb3JhY2xlX2xhLXN0YW5kYXJkLWludG8tdHlw ZS5sbyAtTUQgLU1QIC1NRiAkKERFUERJUikvbGlic29jaV9vcmFjbGVfbGEtc3RhbmRhcmQtaW50 by10eXBlLlRwbyAtYyAtbyBsaWJzb2NpX29yYWNsZV9sYS1zdGFuZGFyZC1pbnRvLXR5cGUubG8g YHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvc3RhbmRhcmQtaW50 by10eXBlLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tl bmRzL29yYWNsZS9zdGFuZGFyZC1pbnRvLXR5cGUuY3BwCisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVA CSQoYW1fX212KSAkKERFUERJUikvbGlic29jaV9vcmFjbGVfbGEtc3RhbmRhcmQtaW50by10eXBl LlRwbyAkKERFUERJUikvbGlic29jaV9vcmFjbGVfbGEtc3RhbmRhcmQtaW50by10eXBlLlBsbwor K0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSckKHRvcF9zcmNkaXIp L3NvY2kvYmFja2VuZHMvb3JhY2xlL3N0YW5kYXJkLWludG8tdHlwZS5jcHAnIG9iamVjdD0nbGli c29jaV9vcmFjbGVfbGEtc3RhbmRhcmQtaW50by10eXBlLmxvJyBsaWJ0b29sPXllcyBAQU1ERVBC QUNLU0xBU0hACisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChE RVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACisrQGFtX19m YXN0ZGVwQ1hYX0ZBTFNFQAkkKExJQlRPT0wpICAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1Mp ICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRf SU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29j aV9vcmFjbGVfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1jIC1vIGxpYnNvY2lfb3JhY2xlX2xh LXN0YW5kYXJkLWludG8tdHlwZS5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tl bmRzL29yYWNsZS9zdGFuZGFyZC1pbnRvLXR5cGUuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2Ak KHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3N0YW5kYXJkLWludG8tdHlwZS5jcHAK KysKKytsaWJzb2NpX29yYWNsZV9sYS1zdGFuZGFyZC11c2UtdHlwZS5sbzogJCh0b3Bfc3JjZGly KS9zb2NpL2JhY2tlbmRzL29yYWNsZS9zdGFuZGFyZC11c2UtdHlwZS5jcHAKKytAYW1fX2Zhc3Rk ZXBDWFhfVFJVRUAJJChMSUJUT09MKSAgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJ QlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xV REVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfb3Jh Y2xlX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtTVQgbGlic29jaV9vcmFjbGVfbGEtc3RhbmRh cmQtdXNlLXR5cGUubG8gLU1EIC1NUCAtTUYgJChERVBESVIpL2xpYnNvY2lfb3JhY2xlX2xhLXN0 YW5kYXJkLXVzZS10eXBlLlRwbyAtYyAtbyBsaWJzb2NpX29yYWNsZV9sYS1zdGFuZGFyZC11c2Ut dHlwZS5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9zdGFu ZGFyZC11c2UtdHlwZS5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29j aS9iYWNrZW5kcy9vcmFjbGUvc3RhbmRhcmQtdXNlLXR5cGUuY3BwCisrQGFtX19mYXN0ZGVwQ1hY X1RSVUVACSQoYW1fX212KSAkKERFUERJUikvbGlic29jaV9vcmFjbGVfbGEtc3RhbmRhcmQtdXNl LXR5cGUuVHBvICQoREVQRElSKS9saWJzb2NpX29yYWNsZV9sYS1zdGFuZGFyZC11c2UtdHlwZS5Q bG8KKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJCh0b3Bfc3Jj ZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9zdGFuZGFyZC11c2UtdHlwZS5jcHAnIG9iamVjdD0n bGlic29jaV9vcmFjbGVfbGEtc3RhbmRhcmQtdXNlLXR5cGUubG8nIGxpYnRvb2w9eWVzIEBBTURF UEJBQ0tTTEFTSEAKKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0k KERFUERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKKytAYW1f X2Zhc3RkZXBDWFhfRkFMU0VACSQoTElCVE9PTCkgIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFH UykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVM VF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJz b2NpX29yYWNsZV9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLWMgLW8gbGlic29jaV9vcmFjbGVf bGEtc3RhbmRhcmQtdXNlLXR5cGUubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNr ZW5kcy9vcmFjbGUvc3RhbmRhcmQtdXNlLXR5cGUuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2Ak KHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3N0YW5kYXJkLXVzZS10eXBlLmNwcAor KworK2xpYnNvY2lfb3JhY2xlX2xhLXN0YXRlbWVudC5sbzogJCh0b3Bfc3JjZGlyKS9zb2NpL2Jh Y2tlbmRzL29yYWNsZS9zdGF0ZW1lbnQuY3BwCisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoTElC VE9PTCkgIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9k ZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykg JChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX29yYWNsZV9sYV9DWFhGTEFHUykg JChDWFhGTEFHUykgLU1UIGxpYnNvY2lfb3JhY2xlX2xhLXN0YXRlbWVudC5sbyAtTUQgLU1QIC1N RiAkKERFUERJUikvbGlic29jaV9vcmFjbGVfbGEtc3RhdGVtZW50LlRwbyAtYyAtbyBsaWJzb2Np X29yYWNsZV9sYS1zdGF0ZW1lbnQubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNr ZW5kcy9vcmFjbGUvc3RhdGVtZW50LmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3Jj ZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9zdGF0ZW1lbnQuY3BwCisrQGFtX19mYXN0ZGVwQ1hY X1RSVUVACSQoYW1fX212KSAkKERFUERJUikvbGlic29jaV9vcmFjbGVfbGEtc3RhdGVtZW50LlRw byAkKERFUERJUikvbGlic29jaV9vcmFjbGVfbGEtc3RhdGVtZW50LlBsbworK0BBTURFUF9UUlVF QEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2Vu ZHMvb3JhY2xlL3N0YXRlbWVudC5jcHAnIG9iamVjdD0nbGlic29jaV9vcmFjbGVfbGEtc3RhdGVt ZW50LmxvJyBsaWJ0b29sPXllcyBAQU1ERVBCQUNLU0xBU0hACisrQEFNREVQX1RSVUVAQGFtX19m YXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21w KSBAQU1ERVBCQUNLU0xBU0hACisrQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKExJQlRPT0wpICAt LXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGls ZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQ RkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9vcmFjbGVfbGFfQ1hYRkxBR1MpICQoQ1hYRkxB R1MpIC1jIC1vIGxpYnNvY2lfb3JhY2xlX2xhLXN0YXRlbWVudC5sbyBgdGVzdCAtZiAnJCh0b3Bf c3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9zdGF0ZW1lbnQuY3BwJyB8fCBlY2hvICckKHNy Y2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3N0YXRlbWVudC5jcHAK KysKKytsaWJzb2NpX29yYWNsZV9sYS12ZWN0b3ItaW50by10eXBlLmxvOiAkKHRvcF9zcmNkaXIp L3NvY2kvYmFja2VuZHMvb3JhY2xlL3ZlY3Rvci1pbnRvLXR5cGUuY3BwCisrQGFtX19mYXN0ZGVw Q1hYX1RSVUVACSQoTElCVE9PTCkgIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJU T09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURF UykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX29yYWNs ZV9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLU1UIGxpYnNvY2lfb3JhY2xlX2xhLXZlY3Rvci1p bnRvLXR5cGUubG8gLU1EIC1NUCAtTUYgJChERVBESVIpL2xpYnNvY2lfb3JhY2xlX2xhLXZlY3Rv ci1pbnRvLXR5cGUuVHBvIC1jIC1vIGxpYnNvY2lfb3JhY2xlX2xhLXZlY3Rvci1pbnRvLXR5cGUu bG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvdmVjdG9yLWlu dG8tdHlwZS5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNr ZW5kcy9vcmFjbGUvdmVjdG9yLWludG8tdHlwZS5jcHAKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJ JChhbV9fbXYpICQoREVQRElSKS9saWJzb2NpX29yYWNsZV9sYS12ZWN0b3ItaW50by10eXBlLlRw byAkKERFUERJUikvbGlic29jaV9vcmFjbGVfbGEtdmVjdG9yLWludG8tdHlwZS5QbG8KKytAQU1E RVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJCh0b3Bfc3JjZGlyKS9zb2Np L2JhY2tlbmRzL29yYWNsZS92ZWN0b3ItaW50by10eXBlLmNwcCcgb2JqZWN0PSdsaWJzb2NpX29y YWNsZV9sYS12ZWN0b3ItaW50by10eXBlLmxvJyBsaWJ0b29sPXllcyBAQU1ERVBCQUNLU0xBU0hA CisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQo Q1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACisrQGFtX19mYXN0ZGVwQ1hY X0ZBTFNFQAkkKExJQlRPT0wpICAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9P TEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMp ICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9vcmFjbGVf bGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1jIC1vIGxpYnNvY2lfb3JhY2xlX2xhLXZlY3Rvci1p bnRvLXR5cGUubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUv dmVjdG9yLWludG8tdHlwZS5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikv c29jaS9iYWNrZW5kcy9vcmFjbGUvdmVjdG9yLWludG8tdHlwZS5jcHAKKysKKytsaWJzb2NpX29y YWNsZV9sYS12ZWN0b3ItdXNlLXR5cGUubG86ICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9v cmFjbGUvdmVjdG9yLXVzZS10eXBlLmNwcAorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKExJQlRP T0wpICAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9 Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQo QU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9vcmFjbGVfbGFfQ1hYRkxBR1MpICQo Q1hYRkxBR1MpIC1NVCBsaWJzb2NpX29yYWNsZV9sYS12ZWN0b3ItdXNlLXR5cGUubG8gLU1EIC1N UCAtTUYgJChERVBESVIpL2xpYnNvY2lfb3JhY2xlX2xhLXZlY3Rvci11c2UtdHlwZS5UcG8gLWMg LW8gbGlic29jaV9vcmFjbGVfbGEtdmVjdG9yLXVzZS10eXBlLmxvIGB0ZXN0IC1mICckKHRvcF9z cmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3ZlY3Rvci11c2UtdHlwZS5jcHAnIHx8IGVjaG8g JyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvdmVjdG9yLXVz ZS10eXBlLmNwcAorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKGFtX19tdikgJChERVBESVIpL2xp YnNvY2lfb3JhY2xlX2xhLXZlY3Rvci11c2UtdHlwZS5UcG8gJChERVBESVIpL2xpYnNvY2lfb3Jh Y2xlX2xhLXZlY3Rvci11c2UtdHlwZS5QbG8KKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhf RkFMU0VACXNvdXJjZT0nJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS92ZWN0b3It dXNlLXR5cGUuY3BwJyBvYmplY3Q9J2xpYnNvY2lfb3JhY2xlX2xhLXZlY3Rvci11c2UtdHlwZS5s bycgbGlidG9vbD15ZXMgQEFNREVQQkFDS1NMQVNIQAorK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRl cENYWF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFN REVQQkFDS1NMQVNIQAorK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChMSUJUT09MKSAgLS10YWc9 Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChD WFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdT KSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfb3JhY2xlX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAt YyAtbyBsaWJzb2NpX29yYWNsZV9sYS12ZWN0b3ItdXNlLXR5cGUubG8gYHRlc3QgLWYgJyQodG9w X3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvdmVjdG9yLXVzZS10eXBlLmNwcCcgfHwgZWNo byAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS92ZWN0b3It dXNlLXR5cGUuY3BwCisrCisrbW9zdGx5Y2xlYW4tbGlidG9vbDoKKysJLXJtIC1mICoubG8KKysK KytjbGVhbi1saWJ0b29sOgorKwktcm0gLXJmIC5saWJzIF9saWJzCisraW5zdGFsbC1ub2Jhc2Vf cGtnaW5jbHVkZUhFQURFUlM6ICQobm9iYXNlX3BrZ2luY2x1ZGVfSEVBREVSUykKKysJQCQoTk9S TUFMX0lOU1RBTEwpCisrCXRlc3QgLXogIiQocGtnaW5jbHVkZWRpcikiIHx8ICQoTUtESVJfUCkg IiQoREVTVERJUikkKHBrZ2luY2x1ZGVkaXIpIgorKwlAbGlzdD0nJChub2Jhc2VfcGtnaW5jbHVk ZV9IRUFERVJTKSc7IHRlc3QgLW4gIiQocGtnaW5jbHVkZWRpcikiIHx8IGxpc3Q9OyBcCisrCSQo YW1fX25vYmFzZV9saXN0KSB8IHdoaWxlIHJlYWQgZGlyIGZpbGVzOyBkbyBcCisrCSAgeGZpbGVz PTsgZm9yIGZpbGUgaW4gJCRmaWxlczsgZG8gXAorKwkgICAgaWYgdGVzdCAtZiAiJCRmaWxlIjsg dGhlbiB4ZmlsZXM9IiQkeGZpbGVzICQkZmlsZSI7IFwKKysJICAgIGVsc2UgeGZpbGVzPSIkJHhm aWxlcyAkKHNyY2RpcikvJCRmaWxlIjsgZmk7IGRvbmU7IFwKKysJICB0ZXN0IC16ICIkJHhmaWxl cyIgfHwgeyBcCisrCSAgICB0ZXN0ICJ4JCRkaXIiID0geC4gfHwgeyBcCisrCSAgICAgIGVjaG8g IiQoTUtESVJfUCkgJyQoREVTVERJUikkKHBrZ2luY2x1ZGVkaXIpLyQkZGlyJyI7IFwKKysJICAg ICAgJChNS0RJUl9QKSAiJChERVNURElSKSQocGtnaW5jbHVkZWRpcikvJCRkaXIiOyB9OyBcCisr CSAgICBlY2hvICIgJChJTlNUQUxMX0hFQURFUikgJCR4ZmlsZXMgJyQoREVTVERJUikkKHBrZ2lu Y2x1ZGVkaXIpLyQkZGlyJyI7IFwKKysJICAgICQoSU5TVEFMTF9IRUFERVIpICQkeGZpbGVzICIk KERFU1RESVIpJChwa2dpbmNsdWRlZGlyKS8kJGRpciIgfHwgZXhpdCAkJD87IH07IFwKKysJZG9u ZQorKworK3VuaW5zdGFsbC1ub2Jhc2VfcGtnaW5jbHVkZUhFQURFUlM6CisrCUAkKE5PUk1BTF9V TklOU1RBTEwpCisrCUBsaXN0PSckKG5vYmFzZV9wa2dpbmNsdWRlX0hFQURFUlMpJzsgdGVzdCAt biAiJChwa2dpbmNsdWRlZGlyKSIgfHwgbGlzdD07IFwKKysJJChhbV9fbm9iYXNlX3N0cmlwX3Nl dHVwKTsgZmlsZXM9YCQoYW1fX25vYmFzZV9zdHJpcClgOyBcCisrCXRlc3QgLW4gIiQkZmlsZXMi IHx8IGV4aXQgMDsgXAorKwllY2hvICIgKCBjZCAnJChERVNURElSKSQocGtnaW5jbHVkZWRpcikn ICYmIHJtIC1mIiAkJGZpbGVzICIpIjsgXAorKwljZCAiJChERVNURElSKSQocGtnaW5jbHVkZWRp cikiICYmIHJtIC1mICQkZmlsZXMKKysKKysjIFRoaXMgZGlyZWN0b3J5J3Mgc3ViZGlyZWN0b3Jp ZXMgYXJlIG1vc3RseSBpbmRlcGVuZGVudDsgeW91IGNhbiBjZAorKyMgaW50byB0aGVtIGFuZCBy dW4gYG1ha2UnIHdpdGhvdXQgZ29pbmcgdGhyb3VnaCB0aGlzIE1ha2VmaWxlLgorKyMgVG8gY2hh bmdlIHRoZSB2YWx1ZXMgb2YgYG1ha2UnIHZhcmlhYmxlczogaW5zdGVhZCBvZiBlZGl0aW5nIE1h a2VmaWxlcywKKysjICgxKSBpZiB0aGUgdmFyaWFibGUgaXMgc2V0IGluIGBjb25maWcuc3RhdHVz JywgZWRpdCBgY29uZmlnLnN0YXR1cycKKysjICAgICAod2hpY2ggd2lsbCBjYXVzZSB0aGUgTWFr ZWZpbGVzIHRvIGJlIHJlZ2VuZXJhdGVkIHdoZW4geW91IHJ1biBgbWFrZScpOworKyMgKDIpIG90 aGVyd2lzZSwgcGFzcyB0aGUgZGVzaXJlZCB2YWx1ZXMgb24gdGhlIGBtYWtlJyBjb21tYW5kIGxp bmUuCisrJChSRUNVUlNJVkVfVEFSR0VUUyk6CisrCUBmYWlsPSBmYWlsY29tPSdleGl0IDEnOyBc CisrCWZvciBmIGluIHggJCRNQUtFRkxBR1M7IGRvIFwKKysJICBjYXNlICQkZiBpbiBcCisrCSAg ICAqPSogfCAtLVsha10qKTs7IFwKKysJICAgICprKikgZmFpbGNvbT0nZmFpbD15ZXMnOzsgXAor KwkgIGVzYWM7IFwKKysJZG9uZTsgXAorKwlkb3Rfc2Vlbj1ubzsgXAorKwl0YXJnZXQ9YGVjaG8g JEAgfCBzZWQgcy8tcmVjdXJzaXZlLy9gOyBcCisrCWxpc3Q9JyQoU1VCRElSUyknOyBmb3Igc3Vi ZGlyIGluICQkbGlzdDsgZG8gXAorKwkgIGVjaG8gIk1ha2luZyAkJHRhcmdldCBpbiAkJHN1YmRp ciI7IFwKKysJICBpZiB0ZXN0ICIkJHN1YmRpciIgPSAiLiI7IHRoZW4gXAorKwkgICAgZG90X3Nl ZW49eWVzOyBcCisrCSAgICBsb2NhbF90YXJnZXQ9IiQkdGFyZ2V0LWFtIjsgXAorKwkgIGVsc2Ug XAorKwkgICAgbG9jYWxfdGFyZ2V0PSIkJHRhcmdldCI7IFwKKysJICBmaTsgXAorKwkgICgkKGFt X19jZCkgJCRzdWJkaXIgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgJCRsb2NhbF90YXJnZXQp IFwKKysJICB8fCBldmFsICQkZmFpbGNvbTsgXAorKwlkb25lOyBcCisrCWlmIHRlc3QgIiQkZG90 X3NlZW4iID0gIm5vIjsgdGhlbiBcCisrCSAgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgIiQkdGFy Z2V0LWFtIiB8fCBleGl0IDE7IFwKKysJZmk7IHRlc3QgLXogIiQkZmFpbCIKKysKKyskKFJFQ1VS U0lWRV9DTEVBTl9UQVJHRVRTKToKKysJQGZhaWw9IGZhaWxjb209J2V4aXQgMSc7IFwKKysJZm9y IGYgaW4geCAkJE1BS0VGTEFHUzsgZG8gXAorKwkgIGNhc2UgJCRmIGluIFwKKysJICAgICo9KiB8 IC0tWyFrXSopOzsgXAorKwkgICAgKmsqKSBmYWlsY29tPSdmYWlsPXllcyc7OyBcCisrCSAgZXNh YzsgXAorKwlkb25lOyBcCisrCWRvdF9zZWVuPW5vOyBcCisrCWNhc2UgIiRAIiBpbiBcCisrCSAg ZGlzdGNsZWFuLSogfCBtYWludGFpbmVyLWNsZWFuLSopIGxpc3Q9JyQoRElTVF9TVUJESVJTKScg OzsgXAorKwkgICopIGxpc3Q9JyQoU1VCRElSUyknIDs7IFwKKysJZXNhYzsgXAorKwlyZXY9Jyc7 IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCisrCSAgaWYgdGVzdCAiJCRzdWJkaXIiID0gIi4i OyB0aGVuIDo7IGVsc2UgXAorKwkgICAgcmV2PSIkJHN1YmRpciAkJHJldiI7IFwKKysJICBmaTsg XAorKwlkb25lOyBcCisrCXJldj0iJCRyZXYgLiI7IFwKKysJdGFyZ2V0PWBlY2hvICRAIHwgc2Vk IHMvLXJlY3Vyc2l2ZS8vYDsgXAorKwlmb3Igc3ViZGlyIGluICQkcmV2OyBkbyBcCisrCSAgZWNo byAiTWFraW5nICQkdGFyZ2V0IGluICQkc3ViZGlyIjsgXAorKwkgIGlmIHRlc3QgIiQkc3ViZGly IiA9ICIuIjsgdGhlbiBcCisrCSAgICBsb2NhbF90YXJnZXQ9IiQkdGFyZ2V0LWFtIjsgXAorKwkg IGVsc2UgXAorKwkgICAgbG9jYWxfdGFyZ2V0PSIkJHRhcmdldCI7IFwKKysJICBmaTsgXAorKwkg ICgkKGFtX19jZCkgJCRzdWJkaXIgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgJCRsb2NhbF90 YXJnZXQpIFwKKysJICB8fCBldmFsICQkZmFpbGNvbTsgXAorKwlkb25lICYmIHRlc3QgLXogIiQk ZmFpbCIKKyt0YWdzLXJlY3Vyc2l2ZToKKysJbGlzdD0nJChTVUJESVJTKSc7IGZvciBzdWJkaXIg aW4gJCRsaXN0OyBkbyBcCisrCSAgdGVzdCAiJCRzdWJkaXIiID0gLiB8fCAoJChhbV9fY2QpICQk c3ViZGlyICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIHRhZ3MpOyBcCisrCWRvbmUKKytjdGFn cy1yZWN1cnNpdmU6CisrCWxpc3Q9JyQoU1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsg ZG8gXAorKwkgIHRlc3QgIiQkc3ViZGlyIiA9IC4gfHwgKCQoYW1fX2NkKSAkJHN1YmRpciAmJiAk KE1BS0UpICQoQU1fTUFLRUZMQUdTKSBjdGFncyk7IFwKKysJZG9uZQorKworK0lEOiAkKEhFQURF UlMpICQoU09VUkNFUykgJChMSVNQKSAkKFRBR1NfRklMRVMpCisrCWxpc3Q9JyQoU09VUkNFUykg JChIRUFERVJTKSAkKExJU1ApICQoVEFHU19GSUxFUyknOyBcCisrCXVuaXF1ZT1gZm9yIGkgaW4g JCRsaXN0OyBkbyBcCisrCSAgICBpZiB0ZXN0IC1mICIkJGkiOyB0aGVuIGVjaG8gJCRpOyBlbHNl IGVjaG8gJChzcmNkaXIpLyQkaTsgZmk7IFwKKysJICBkb25lIHwgXAorKwkgICQoQVdLKSAneyBm aWxlc1skJDBdID0gMTsgbm9uZW1wdHkgPSAxOyB9IFwKKysJICAgICAgRU5EIHsgaWYgKG5vbmVt cHR5KSB7IGZvciAoaSBpbiBmaWxlcykgcHJpbnQgaTsgfTsgfSdgOyBcCisrCW1raWQgLWZJRCAk JHVuaXF1ZQorK3RhZ3M6IFRBR1MKKysKKytUQUdTOiB0YWdzLXJlY3Vyc2l2ZSAkKEhFQURFUlMp ICQoU09VUkNFUykgICQoVEFHU19ERVBFTkRFTkNJRVMpIFwKKysJCSQoVEFHU19GSUxFUykgJChM SVNQKQorKwlzZXQgeDsgXAorKwloZXJlPWBwd2RgOyBcCisrCWlmICgkKEVUQUdTKSAtLWV0YWdz LWluY2x1ZGUgLS12ZXJzaW9uKSA+L2Rldi9udWxsIDI+JjE7IHRoZW4gXAorKwkgIGluY2x1ZGVf b3B0aW9uPS0tZXRhZ3MtaW5jbHVkZTsgXAorKwkgIGVtcHR5X2ZpeD0uOyBcCisrCWVsc2UgXAor KwkgIGluY2x1ZGVfb3B0aW9uPS0taW5jbHVkZTsgXAorKwkgIGVtcHR5X2ZpeD07IFwKKysJZmk7 IFwKKysJbGlzdD0nJChTVUJESVJTKSc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCisrCSAg aWYgdGVzdCAiJCRzdWJkaXIiID0gLjsgdGhlbiA6OyBlbHNlIFwKKysJICAgIHRlc3QgISAtZiAk JHN1YmRpci9UQUdTIHx8IFwKKysJICAgICAgc2V0ICIkJEAiICIkJGluY2x1ZGVfb3B0aW9uPSQk aGVyZS8kJHN1YmRpci9UQUdTIjsgXAorKwkgIGZpOyBcCisrCWRvbmU7IFwKKysJbGlzdD0nJChT T1VSQ0VTKSAkKEhFQURFUlMpICAkKExJU1ApICQoVEFHU19GSUxFUyknOyBcCisrCXVuaXF1ZT1g Zm9yIGkgaW4gJCRsaXN0OyBkbyBcCisrCSAgICBpZiB0ZXN0IC1mICIkJGkiOyB0aGVuIGVjaG8g JCRpOyBlbHNlIGVjaG8gJChzcmNkaXIpLyQkaTsgZmk7IFwKKysJICBkb25lIHwgXAorKwkgICQo QVdLKSAneyBmaWxlc1skJDBdID0gMTsgbm9uZW1wdHkgPSAxOyB9IFwKKysJICAgICAgRU5EIHsg aWYgKG5vbmVtcHR5KSB7IGZvciAoaSBpbiBmaWxlcykgcHJpbnQgaTsgfTsgfSdgOyBcCisrCXNo aWZ0OyBcCisrCWlmIHRlc3QgLXogIiQoRVRBR1NfQVJHUykkJCokJHVuaXF1ZSI7IHRoZW4gOjsg ZWxzZSBcCisrCSAgdGVzdCAtbiAiJCR1bmlxdWUiIHx8IHVuaXF1ZT0kJGVtcHR5X2ZpeDsgXAor KwkgIGlmIHRlc3QgJCQjIC1ndCAwOyB0aGVuIFwKKysJICAgICQoRVRBR1MpICQoRVRBR1NGTEFH UykgJChBTV9FVEFHU0ZMQUdTKSAkKEVUQUdTX0FSR1MpIFwKKysJICAgICAgIiQkQCIgJCR1bmlx dWU7IFwKKysJICBlbHNlIFwKKysJICAgICQoRVRBR1MpICQoRVRBR1NGTEFHUykgJChBTV9FVEFH U0ZMQUdTKSAkKEVUQUdTX0FSR1MpIFwKKysJICAgICAgJCR1bmlxdWU7IFwKKysJICBmaTsgXAor KwlmaQorK2N0YWdzOiBDVEFHUworK0NUQUdTOiBjdGFncy1yZWN1cnNpdmUgJChIRUFERVJTKSAk KFNPVVJDRVMpICAkKFRBR1NfREVQRU5ERU5DSUVTKSBcCisrCQkkKFRBR1NfRklMRVMpICQoTElT UCkKKysJbGlzdD0nJChTT1VSQ0VTKSAkKEhFQURFUlMpICAkKExJU1ApICQoVEFHU19GSUxFUykn OyBcCisrCXVuaXF1ZT1gZm9yIGkgaW4gJCRsaXN0OyBkbyBcCisrCSAgICBpZiB0ZXN0IC1mICIk JGkiOyB0aGVuIGVjaG8gJCRpOyBlbHNlIGVjaG8gJChzcmNkaXIpLyQkaTsgZmk7IFwKKysJICBk b25lIHwgXAorKwkgICQoQVdLKSAneyBmaWxlc1skJDBdID0gMTsgbm9uZW1wdHkgPSAxOyB9IFwK KysJICAgICAgRU5EIHsgaWYgKG5vbmVtcHR5KSB7IGZvciAoaSBpbiBmaWxlcykgcHJpbnQgaTsg fTsgfSdgOyBcCisrCXRlc3QgLXogIiQoQ1RBR1NfQVJHUykkJHVuaXF1ZSIgXAorKwkgIHx8ICQo Q1RBR1MpICQoQ1RBR1NGTEFHUykgJChBTV9DVEFHU0ZMQUdTKSAkKENUQUdTX0FSR1MpIFwKKysJ ICAgICAkJHVuaXF1ZQorKworK0dUQUdTOgorKwloZXJlPWAkKGFtX19jZCkgJCh0b3BfYnVpbGRk aXIpICYmIHB3ZGAgXAorKwkgICYmICQoYW1fX2NkKSAkKHRvcF9zcmNkaXIpIFwKKysJICAmJiBn dGFncyAtaSAkKEdUQUdTX0FSR1MpICIkJGhlcmUiCisrCisrZGlzdGNsZWFuLXRhZ3M6CisrCS1y bSAtZiBUQUdTIElEIEdUQUdTIEdSVEFHUyBHU1lNUyBHUEFUSCB0YWdzCisrCisrZGlzdGRpcjog JChESVNURklMRVMpCisrCUBzcmNkaXJzdHJpcD1gZWNobyAiJChzcmNkaXIpIiB8IHNlZCAncy9b XS5bXiQkXFwqXS9cXFxcJi9nJ2A7IFwKKysJdG9wc3JjZGlyc3RyaXA9YGVjaG8gIiQodG9wX3Ny Y2RpcikiIHwgc2VkICdzL1tdLlteJCRcXCpdL1xcXFwmL2cnYDsgXAorKwlsaXN0PSckKERJU1RG SUxFUyknOyBcCisrCSAgZGlzdF9maWxlcz1gZm9yIGZpbGUgaW4gJCRsaXN0OyBkbyBlY2hvICQk ZmlsZTsgZG9uZSB8IFwKKysJICBzZWQgLWUgInN8XiQkc3JjZGlyc3RyaXAvfHw7dCIgXAorKwkg ICAgICAtZSAic3xeJCR0b3BzcmNkaXJzdHJpcC98JCh0b3BfYnVpbGRkaXIpL3w7dCJgOyBcCisr CWNhc2UgJCRkaXN0X2ZpbGVzIGluIFwKKysJICAqLyopICQoTUtESVJfUCkgYGVjaG8gIiQkZGlz dF9maWxlcyIgfCBcCisrCQkJICAgc2VkICcvXC8vIWQ7c3xefCQoZGlzdGRpcikvfDtzLC9bXi9d KiQkLCwnIHwgXAorKwkJCSAgIHNvcnQgLXVgIDs7IFwKKysJZXNhYzsgXAorKwlmb3IgZmlsZSBp biAkJGRpc3RfZmlsZXM7IGRvIFwKKysJICBpZiB0ZXN0IC1mICQkZmlsZSB8fCB0ZXN0IC1kICQk ZmlsZTsgdGhlbiBkPS47IGVsc2UgZD0kKHNyY2Rpcik7IGZpOyBcCisrCSAgaWYgdGVzdCAtZCAk JGQvJCRmaWxlOyB0aGVuIFwKKysJICAgIGRpcj1gZWNobyAiLyQkZmlsZSIgfCBzZWQgLWUgJ3Ms L1teL10qJCQsLCdgOyBcCisrCSAgICBpZiB0ZXN0IC1kICIkKGRpc3RkaXIpLyQkZmlsZSI7IHRo ZW4gXAorKwkgICAgICBmaW5kICIkKGRpc3RkaXIpLyQkZmlsZSIgLXR5cGUgZCAhIC1wZXJtIC03 MDAgLWV4ZWMgY2htb2QgdStyd3gge30gXDs7IFwKKysJICAgIGZpOyBcCisrCSAgICBpZiB0ZXN0 IC1kICQoc3JjZGlyKS8kJGZpbGUgJiYgdGVzdCAkJGQgIT0gJChzcmNkaXIpOyB0aGVuIFwKKysJ ICAgICAgY3AgLWZwUiAkKHNyY2RpcikvJCRmaWxlICIkKGRpc3RkaXIpJCRkaXIiIHx8IGV4aXQg MTsgXAorKwkgICAgICBmaW5kICIkKGRpc3RkaXIpLyQkZmlsZSIgLXR5cGUgZCAhIC1wZXJtIC03 MDAgLWV4ZWMgY2htb2QgdStyd3gge30gXDs7IFwKKysJICAgIGZpOyBcCisrCSAgICBjcCAtZnBS ICQkZC8kJGZpbGUgIiQoZGlzdGRpcikkJGRpciIgfHwgZXhpdCAxOyBcCisrCSAgZWxzZSBcCisr CSAgICB0ZXN0IC1mICIkKGRpc3RkaXIpLyQkZmlsZSIgXAorKwkgICAgfHwgY3AgLXAgJCRkLyQk ZmlsZSAiJChkaXN0ZGlyKS8kJGZpbGUiIFwKKysJICAgIHx8IGV4aXQgMTsgXAorKwkgIGZpOyBc CisrCWRvbmUKKysJQGxpc3Q9JyQoRElTVF9TVUJESVJTKSc7IGZvciBzdWJkaXIgaW4gJCRsaXN0 OyBkbyBcCisrCSAgaWYgdGVzdCAiJCRzdWJkaXIiID0gLjsgdGhlbiA6OyBlbHNlIFwKKysJICAg IHRlc3QgLWQgIiQoZGlzdGRpcikvJCRzdWJkaXIiIFwKKysJICAgIHx8ICQoTUtESVJfUCkgIiQo ZGlzdGRpcikvJCRzdWJkaXIiIFwKKysJICAgIHx8IGV4aXQgMTsgXAorKwkgIGZpOyBcCisrCWRv bmUKKysJQGxpc3Q9JyQoRElTVF9TVUJESVJTKSc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBc CisrCSAgaWYgdGVzdCAiJCRzdWJkaXIiID0gLjsgdGhlbiA6OyBlbHNlIFwKKysJICAgIGRpcjE9 JCRzdWJkaXI7IGRpcjI9IiQoZGlzdGRpcikvJCRzdWJkaXIiOyBcCisrCSAgICAkKGFtX19yZWxh dGl2aXplKTsgXAorKwkgICAgbmV3X2Rpc3RkaXI9JCRyZWxkaXI7IFwKKysJICAgIGRpcjE9JCRz dWJkaXI7IGRpcjI9IiQodG9wX2Rpc3RkaXIpIjsgXAorKwkgICAgJChhbV9fcmVsYXRpdml6ZSk7 IFwKKysJICAgIG5ld190b3BfZGlzdGRpcj0kJHJlbGRpcjsgXAorKwkgICAgZWNobyAiIChjZCAk JHN1YmRpciAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSB0b3BfZGlzdGRpcj0iJCRuZXdfdG9w X2Rpc3RkaXIiIGRpc3RkaXI9IiQkbmV3X2Rpc3RkaXIiIFxcIjsgXAorKwkgICAgZWNobyAiICAg ICBhbV9fcmVtb3ZlX2Rpc3RkaXI9OiBhbV9fc2tpcF9sZW5ndGhfY2hlY2s9OiBhbV9fc2tpcF9t b2RlX2ZpeD06IGRpc3RkaXIpIjsgXAorKwkgICAgKCQoYW1fX2NkKSAkJHN1YmRpciAmJiBcCisr CSAgICAgICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIFwKKysJICAgICAgICB0b3BfZGlzdGRpcj0i JCRuZXdfdG9wX2Rpc3RkaXIiIFwKKysJICAgICAgICBkaXN0ZGlyPSIkJG5ld19kaXN0ZGlyIiBc CisrCQlhbV9fcmVtb3ZlX2Rpc3RkaXI9OiBcCisrCQlhbV9fc2tpcF9sZW5ndGhfY2hlY2s9OiBc CisrCQlhbV9fc2tpcF9tb2RlX2ZpeD06IFwKKysJICAgICAgICBkaXN0ZGlyKSBcCisrCSAgICAg IHx8IGV4aXQgMTsgXAorKwkgIGZpOyBcCisrCWRvbmUKKytjaGVjay1hbTogYWxsLWFtCisrY2hl Y2s6IGNoZWNrLXJlY3Vyc2l2ZQorK2FsbC1hbTogTWFrZWZpbGUgJChMVExJQlJBUklFUykgJChI RUFERVJTKQorK2luc3RhbGxkaXJzOiBpbnN0YWxsZGlycy1yZWN1cnNpdmUKKytpbnN0YWxsZGly cy1hbToKKysJZm9yIGRpciBpbiAiJChERVNURElSKSQobGliZGlyKSIgIiQoREVTVERJUikkKHBr Z2luY2x1ZGVkaXIpIjsgZG8gXAorKwkgIHRlc3QgLXogIiQkZGlyIiB8fCAkKE1LRElSX1ApICIk JGRpciI7IFwKKysJZG9uZQorK2luc3RhbGw6IGluc3RhbGwtcmVjdXJzaXZlCisraW5zdGFsbC1l eGVjOiBpbnN0YWxsLWV4ZWMtcmVjdXJzaXZlCisraW5zdGFsbC1kYXRhOiBpbnN0YWxsLWRhdGEt cmVjdXJzaXZlCisrdW5pbnN0YWxsOiB1bmluc3RhbGwtcmVjdXJzaXZlCisrCisraW5zdGFsbC1h bTogYWxsLWFtCisrCUAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBpbnN0YWxsLWV4ZWMtYW0gaW5z dGFsbC1kYXRhLWFtCisrCisraW5zdGFsbGNoZWNrOiBpbnN0YWxsY2hlY2stcmVjdXJzaXZlCisr aW5zdGFsbC1zdHJpcDoKKysJJChNQUtFKSAkKEFNX01BS0VGTEFHUykgSU5TVEFMTF9QUk9HUkFN PSIkKElOU1RBTExfU1RSSVBfUFJPR1JBTSkiIFwKKysJICBpbnN0YWxsX3NoX1BST0dSQU09IiQo SU5TVEFMTF9TVFJJUF9QUk9HUkFNKSIgSU5TVEFMTF9TVFJJUF9GTEFHPS1zIFwKKysJICBgdGVz dCAteiAnJChTVFJJUCknIHx8IFwKKysJICAgIGVjaG8gIklOU1RBTExfUFJPR1JBTV9FTlY9U1RS SVBQUk9HPSckKFNUUklQKSciYCBpbnN0YWxsCisrbW9zdGx5Y2xlYW4tZ2VuZXJpYzoKKysKKytj bGVhbi1nZW5lcmljOgorKworK2Rpc3RjbGVhbi1nZW5lcmljOgorKwktdGVzdCAteiAiJChDT05G SUdfQ0xFQU5fRklMRVMpIiB8fCBybSAtZiAkKENPTkZJR19DTEVBTl9GSUxFUykKKysJLXRlc3Qg LiA9ICIkKHNyY2RpcikiIHx8IHRlc3QgLXogIiQoQ09ORklHX0NMRUFOX1ZQQVRIX0ZJTEVTKSIg fHwgcm0gLWYgJChDT05GSUdfQ0xFQU5fVlBBVEhfRklMRVMpCisrCisrbWFpbnRhaW5lci1jbGVh bi1nZW5lcmljOgorKwlAZWNobyAiVGhpcyBjb21tYW5kIGlzIGludGVuZGVkIGZvciBtYWludGFp bmVycyB0byB1c2UiCisrCUBlY2hvICJpdCBkZWxldGVzIGZpbGVzIHRoYXQgbWF5IHJlcXVpcmUg c3BlY2lhbCB0b29scyB0byByZWJ1aWxkLiIKKysJLXRlc3QgLXogIiQoTUFJTlRBSU5FUkNMRUFO RklMRVMpIiB8fCBybSAtZiAkKE1BSU5UQUlORVJDTEVBTkZJTEVTKQorK2NsZWFuOiBjbGVhbi1y ZWN1cnNpdmUKKysKKytjbGVhbi1hbTogY2xlYW4tZ2VuZXJpYyBjbGVhbi1saWJMVExJQlJBUklF UyBjbGVhbi1saWJ0b29sIFwKKysJbW9zdGx5Y2xlYW4tYW0KKysKKytkaXN0Y2xlYW46IGRpc3Rj bGVhbi1yZWN1cnNpdmUKKysJLXJtIC1yZiAuLyQoREVQRElSKQorKwktcm0gLWYgTWFrZWZpbGUK KytkaXN0Y2xlYW4tYW06IGNsZWFuLWFtIGRpc3RjbGVhbi1jb21waWxlIGRpc3RjbGVhbi1nZW5l cmljIFwKKysJZGlzdGNsZWFuLXRhZ3MKKysKKytkdmk6IGR2aS1yZWN1cnNpdmUKKysKKytkdmkt YW06CisrCisraHRtbDogaHRtbC1yZWN1cnNpdmUKKysKKytodG1sLWFtOgorKworK2luZm86IGlu Zm8tcmVjdXJzaXZlCisrCisraW5mby1hbToKKysKKytpbnN0YWxsLWRhdGEtYW06IGluc3RhbGwt bm9iYXNlX3BrZ2luY2x1ZGVIRUFERVJTCisrCisraW5zdGFsbC1kdmk6IGluc3RhbGwtZHZpLXJl Y3Vyc2l2ZQorKworK2luc3RhbGwtZHZpLWFtOgorKworK2luc3RhbGwtZXhlYy1hbTogaW5zdGFs bC1saWJMVExJQlJBUklFUworKworK2luc3RhbGwtaHRtbDogaW5zdGFsbC1odG1sLXJlY3Vyc2l2 ZQorKworK2luc3RhbGwtaHRtbC1hbToKKysKKytpbnN0YWxsLWluZm86IGluc3RhbGwtaW5mby1y ZWN1cnNpdmUKKysKKytpbnN0YWxsLWluZm8tYW06CisrCisraW5zdGFsbC1tYW46CisrCisraW5z dGFsbC1wZGY6IGluc3RhbGwtcGRmLXJlY3Vyc2l2ZQorKworK2luc3RhbGwtcGRmLWFtOgorKwor K2luc3RhbGwtcHM6IGluc3RhbGwtcHMtcmVjdXJzaXZlCisrCisraW5zdGFsbC1wcy1hbToKKysK KytpbnN0YWxsY2hlY2stYW06CisrCisrbWFpbnRhaW5lci1jbGVhbjogbWFpbnRhaW5lci1jbGVh bi1yZWN1cnNpdmUKKysJLXJtIC1yZiAuLyQoREVQRElSKQorKwktcm0gLWYgTWFrZWZpbGUKKytt YWludGFpbmVyLWNsZWFuLWFtOiBkaXN0Y2xlYW4tYW0gbWFpbnRhaW5lci1jbGVhbi1nZW5lcmlj CisrCisrbW9zdGx5Y2xlYW46IG1vc3RseWNsZWFuLXJlY3Vyc2l2ZQorKworK21vc3RseWNsZWFu LWFtOiBtb3N0bHljbGVhbi1jb21waWxlIG1vc3RseWNsZWFuLWdlbmVyaWMgXAorKwltb3N0bHlj bGVhbi1saWJ0b29sCisrCisrcGRmOiBwZGYtcmVjdXJzaXZlCisrCisrcGRmLWFtOgorKworK3Bz OiBwcy1yZWN1cnNpdmUKKysKKytwcy1hbToKKysKKyt1bmluc3RhbGwtYW06IHVuaW5zdGFsbC1s aWJMVExJQlJBUklFUyBcCisrCXVuaW5zdGFsbC1ub2Jhc2VfcGtnaW5jbHVkZUhFQURFUlMKKysK KysuTUFLRTogJChSRUNVUlNJVkVfQ0xFQU5fVEFSR0VUUykgJChSRUNVUlNJVkVfVEFSR0VUUykg Y3RhZ3MtcmVjdXJzaXZlIFwKKysJaW5zdGFsbC1hbSBpbnN0YWxsLXN0cmlwIHRhZ3MtcmVjdXJz aXZlCisrCisrLlBIT05ZOiAkKFJFQ1VSU0lWRV9DTEVBTl9UQVJHRVRTKSAkKFJFQ1VSU0lWRV9U QVJHRVRTKSBDVEFHUyBHVEFHUyBcCisrCWFsbCBhbGwtYW0gY2hlY2sgY2hlY2stYW0gY2xlYW4g Y2xlYW4tZ2VuZXJpYyBcCisrCWNsZWFuLWxpYkxUTElCUkFSSUVTIGNsZWFuLWxpYnRvb2wgY3Rh Z3MgY3RhZ3MtcmVjdXJzaXZlIFwKKysJZGlzdGNsZWFuIGRpc3RjbGVhbi1jb21waWxlIGRpc3Rj bGVhbi1nZW5lcmljIFwKKysJZGlzdGNsZWFuLWxpYnRvb2wgZGlzdGNsZWFuLXRhZ3MgZGlzdGRp ciBkdmkgZHZpLWFtIGh0bWwgXAorKwlodG1sLWFtIGluZm8gaW5mby1hbSBpbnN0YWxsIGluc3Rh bGwtYW0gaW5zdGFsbC1kYXRhIFwKKysJaW5zdGFsbC1kYXRhLWFtIGluc3RhbGwtZHZpIGluc3Rh bGwtZHZpLWFtIGluc3RhbGwtZXhlYyBcCisrCWluc3RhbGwtZXhlYy1hbSBpbnN0YWxsLWh0bWwg aW5zdGFsbC1odG1sLWFtIGluc3RhbGwtaW5mbyBcCisrCWluc3RhbGwtaW5mby1hbSBpbnN0YWxs LWxpYkxUTElCUkFSSUVTIGluc3RhbGwtbWFuIFwKKysJaW5zdGFsbC1ub2Jhc2VfcGtnaW5jbHVk ZUhFQURFUlMgaW5zdGFsbC1wZGYgaW5zdGFsbC1wZGYtYW0gXAorKwlpbnN0YWxsLXBzIGluc3Rh bGwtcHMtYW0gaW5zdGFsbC1zdHJpcCBpbnN0YWxsY2hlY2sgXAorKwlpbnN0YWxsY2hlY2stYW0g aW5zdGFsbGRpcnMgaW5zdGFsbGRpcnMtYW0gbWFpbnRhaW5lci1jbGVhbiBcCisrCW1haW50YWlu ZXItY2xlYW4tZ2VuZXJpYyBtb3N0bHljbGVhbiBtb3N0bHljbGVhbi1jb21waWxlIFwKKysJbW9z dGx5Y2xlYW4tZ2VuZXJpYyBtb3N0bHljbGVhbi1saWJ0b29sIHBkZiBwZGYtYW0gcHMgcHMtYW0g XAorKwl0YWdzIHRhZ3MtcmVjdXJzaXZlIHVuaW5zdGFsbCB1bmluc3RhbGwtYW0gXAorKwl1bmlu c3RhbGwtbGliTFRMSUJSQVJJRVMgdW5pbnN0YWxsLW5vYmFzZV9wa2dpbmNsdWRlSEVBREVSUwor KworK0BTRVRfTUFLRUAKKysKKysjIFRlbGwgdmVyc2lvbnMgWzMuNTksMy42Mykgb2YgR05VIG1h a2UgdG8gbm90IGV4cG9ydCBhbGwgdmFyaWFibGVzLgorKyMgT3RoZXJ3aXNlIGEgc3lzdGVtIGxp bWl0IChmb3IgU3lzViBhdCBsZWFzdCkgbWF5IGJlIGV4Y2VlZGVkLgorKy5OT0VYUE9SVDoKK2Rp ZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL29yYWNsZS9zb2NpLW9yYWNs ZS5oIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL29yYWNsZS9zb2NpLW9yYWNsZS5o CistLS0gc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9vcmFjbGUvc29jaS1vcmFjbGUu aAkyMDEwLTAxLTIzIDE0OjQ1OjQ0LjAwMDAwMDAwMCArMDEwMAorKysrIHNvY2ktMy4wLjBfdHJl cDMwMC9zb2NpL2JhY2tlbmRzL29yYWNsZS9zb2NpLW9yYWNsZS5oCTIwMDktMDQtMTYgMTk6Mzc6 MDYuMDAwMDAwMDAwICswMjAwCitAQCAtMjIsOSArMjIsMTQgQEAKKyAjaWZuZGVmIFNPQ0lfT1JB Q0xFX0RFQ0wKKyAjIGRlZmluZSBTT0NJX09SQUNMRV9ERUNMCisgI2VuZGlmCistCistI2luY2x1 ZGUgPHNvY2ktYmFja2VuZC5oPgorLSNpbmNsdWRlIDxvY2kuaD4gLy8gT0NJCisrLy8KKysjaWYg ZGVmaW5lZChTT0NJX0hFQURFUlNfQlVSSUVEKQorKyMgICAgICAgaW5jbHVkZSA8c29jaS9jb3Jl L3NvY2ktYmFja2VuZC5oPgorKyNlbHNlCisrIwlpbmNsdWRlIDxzb2NpLWJhY2tlbmQuaD4KKysj ZW5kaWYKKysvLworKyNpbmNsdWRlIDxvY2kuaD4gLy8gT0NJIChPcmFjbGUgY2xpZW50KQorICNp bmNsdWRlIDx2ZWN0b3I+CisgCisgI2lmZGVmIF9NU0NfVkVSCitkaWZmIC1OdXIgc29jaS0zLjAu MF80LXBhY2svc29jaS9iYWNrZW5kcy9vcmFjbGUvc291cmNlcy5tayBzb2NpLTMuMC4wX3RyZXAz MDAvc29jaS9iYWNrZW5kcy9vcmFjbGUvc291cmNlcy5taworLS0tIHNvY2ktMy4wLjBfNC1wYWNr L3NvY2kvYmFja2VuZHMvb3JhY2xlL3NvdXJjZXMubWsJMTk3MC0wMS0wMSAwMTowMDowMC4wMDAw MDAwMDAgKzAxMDAKKysrKyBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9vcmFjbGUv c291cmNlcy5tawkyMDA5LTA0LTE2IDE5OjM3OjA2LjAwMDAwMDAwMCArMDIwMAorQEAgLTAsMCAr MSwxNCBAQAorK2Jja19vcmFjbGVfaF9zb3VyY2VzID0gXAorKyAgICAgICAgJCh0b3Bfc3JjZGly KS9zb2NpL2JhY2tlbmRzL29yYWNsZS9lcnJvci5oIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikv c29jaS9iYWNrZW5kcy9vcmFjbGUvc29jaS1vcmFjbGUuaAorK2Jja19vcmFjbGVfY2Nfc291cmNl cyA9IFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvYmxvYi5j cHAgXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9lcnJvci5j cHAgXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9mYWN0b3J5 LmNwcCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3Jvdy1p ZC5jcHAgXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9zZXNz aW9uLmNwcCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3N0 YW5kYXJkLWludG8tdHlwZS5jcHAgXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tl bmRzL29yYWNsZS9zdGFuZGFyZC11c2UtdHlwZS5jcHAgXAorKyAgICAgICAgJCh0b3Bfc3JjZGly KS9zb2NpL2JhY2tlbmRzL29yYWNsZS9zdGF0ZW1lbnQuY3BwIFwKKysgICAgICAgICQodG9wX3Ny Y2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvdmVjdG9yLWludG8tdHlwZS5jcHAgXAorKyAgICAg ICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS92ZWN0b3ItdXNlLXR5cGUuY3Bw CitkaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9vcmFjbGUvc3RhbmRh cmQtaW50by10eXBlLmNwcCBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9vcmFjbGUv c3RhbmRhcmQtaW50by10eXBlLmNwcAorLS0tIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2Vu ZHMvb3JhY2xlL3N0YW5kYXJkLWludG8tdHlwZS5jcHAJMjAxMC0wMS0yMyAxNDo0NTo0NC4wMDAw MDAwMDAgKzAxMDAKKysrKyBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9vcmFjbGUv c3RhbmRhcmQtaW50by10eXBlLmNwcAkyMDA5LTA0LTE2IDE5OjM3OjA2LjAwMDAwMDAwMCArMDIw MAorQEAgLTcsMTAgKzcsMTggQEAKKyAKKyAjZGVmaW5lIFNPQ0lfT1JBQ0xFX1NPVVJDRQorICNp bmNsdWRlICJzb2NpLW9yYWNsZS5oIgorLSNpbmNsdWRlICJibG9iLmgiCisgI2luY2x1ZGUgImVy cm9yLmgiCistI2luY2x1ZGUgInJvd2lkLmgiCistI2luY2x1ZGUgInN0YXRlbWVudC5oIgorKy8v CisrI2lmIGRlZmluZWQoU09DSV9IRUFERVJTX0JVUklFRCkKKysjICAgICAgIGluY2x1ZGUgPHNv Y2kvY29yZS9ibG9iLmg+CisrIyAgICAgICBpbmNsdWRlIDxzb2NpL2NvcmUvcm93aWQuaD4KKysj ICAgICAgIGluY2x1ZGUgPHNvY2kvY29yZS9zdGF0ZW1lbnQuaD4KKysjZWxzZQorKyMgICAgICAg aW5jbHVkZSA8YmxvYi5oPgorKyMgICAgICAgaW5jbHVkZSA8cm93aWQuaD4KKysjICAgICAgIGlu Y2x1ZGUgPHN0YXRlbWVudC5oPgorKyNlbmRpZgorKy8vCisgI2luY2x1ZGUgPGNjdHlwZT4KKyAj aW5jbHVkZSA8Y3N0ZGlvPgorICNpbmNsdWRlIDxjc3RyaW5nPgorZGlmZiAtTnVyIHNvY2ktMy4w LjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvb3JhY2xlL3N0YW5kYXJkLXVzZS10eXBlLmNwcCBzb2Np LTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9vcmFjbGUvc3RhbmRhcmQtdXNlLXR5cGUuY3Bw CistLS0gc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9vcmFjbGUvc3RhbmRhcmQtdXNl LXR5cGUuY3BwCTIwMTAtMDEtMjMgMTQ6NDU6NDQuMDAwMDAwMDAwICswMTAwCisrKysgc29jaS0z LjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvb3JhY2xlL3N0YW5kYXJkLXVzZS10eXBlLmNwcAky MDA5LTA0LTE2IDE5OjM3OjA2LjAwMDAwMDAwMCArMDIwMAorQEAgLTcsMTAgKzcsMTggQEAKKyAK KyAjZGVmaW5lIHNvY2lfT1JBQ0xFX1NPVVJDRQorICNpbmNsdWRlICJzb2NpLW9yYWNsZS5oIgor LSNpbmNsdWRlICJibG9iLmgiCisgI2luY2x1ZGUgImVycm9yLmgiCistI2luY2x1ZGUgInJvd2lk LmgiCistI2luY2x1ZGUgInN0YXRlbWVudC5oIgorKy8vCisrI2lmIGRlZmluZWQoU09DSV9IRUFE RVJTX0JVUklFRCkKKysjICAgICAgIGluY2x1ZGUgPHNvY2kvY29yZS9ibG9iLmg+CisrIyAgICAg ICBpbmNsdWRlIDxzb2NpL2NvcmUvcm93aWQuaD4KKysjICAgICAgIGluY2x1ZGUgPHNvY2kvY29y ZS9zdGF0ZW1lbnQuaD4KKysjZWxzZQorKyMgICAgICAgaW5jbHVkZSA8YmxvYi5oPgorKyMgICAg ICAgaW5jbHVkZSA8cm93aWQuaD4KKysjICAgICAgIGluY2x1ZGUgPHN0YXRlbWVudC5oPgorKyNl bmRpZgorKy8vCisgI2luY2x1ZGUgPGNjdHlwZT4KKyAjaW5jbHVkZSA8Y3N0ZGlvPgorICNpbmNs dWRlIDxjc3RyaW5nPgorZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMv b3JhY2xlL3N0YXRlbWVudC5jcHAgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvb3Jh Y2xlL3N0YXRlbWVudC5jcHAKKy0tLSBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL29y YWNsZS9zdGF0ZW1lbnQuY3BwCTIwMTAtMDEtMjMgMTQ6NDU6NDQuMDAwMDAwMDAwICswMTAwCisr Kysgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvb3JhY2xlL3N0YXRlbWVudC5jcHAJ MjAwOS0wNC0xNiAxOTozNzowNi4wMDAwMDAwMDAgKzAyMDAKK0BAIC05LDcgKzksMTMgQEAKKyAK KyAjaW5jbHVkZSAic29jaS1vcmFjbGUuaCIKKyAjaW5jbHVkZSAiZXJyb3IuaCIKKy0jaW5jbHVk ZSA8c29jaS1iYWNrZW5kLmg+CisrLy8KKysjaWYgZGVmaW5lZChTT0NJX0hFQURFUlNfQlVSSUVE KQorKyMgICAgICAgaW5jbHVkZSA8c29jaS9jb3JlL3NvY2ktYmFja2VuZC5oPgorKyNlbHNlCisr IwlpbmNsdWRlIDxzb2NpLWJhY2tlbmQuaD4KKysjZW5kaWYKKysvLworICNpbmNsdWRlIDxjY3R5 cGU+CisgI2luY2x1ZGUgPGNzdGRpbz4KKyAjaW5jbHVkZSA8Y3N0cmluZz4KK2RpZmYgLU51ciBz b2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL29yYWNsZS90ZXN0L01ha2VmaWxlLmFtIHNv Y2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL29yYWNsZS90ZXN0L01ha2VmaWxlLmFtCist LS0gc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9vcmFjbGUvdGVzdC9NYWtlZmlsZS5h bQkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAorKysrIHNvY2ktMy4wLjBfdHJl cDMwMC9zb2NpL2JhY2tlbmRzL29yYWNsZS90ZXN0L01ha2VmaWxlLmFtCTIwMDktMDQtMTYgMTk6 Mzc6MDYuMDAwMDAwMDAwICswMjAwCitAQCAtMCwwICsxLDIyIEBACisrIyMgY29yZSBzdWItZGly ZWN0b3J5CisraW5jbHVkZSAkKHRvcF9zcmNkaXIpL01ha2VmaWxlLmNvbW1vbgorK2luY2x1ZGUg JChzcmNkaXIpL3NvdXJjZXMubWsKKysKKytNQUlOVEFJTkVSQ0xFQU5GSUxFUyA9IE1ha2VmaWxl LmluCisrCisraWYgSEFWRV9PUkFDTEUKKysgIFRFU1RfT1JBQ0xFID0gdGVzdF9vcmFjbGUKKysK KytpZiBSVU5fVEVTVFMKKysgIG5vaW5zdF9QUk9HUkFNUyA9ICQoVEVTVF9PUkFDTEUpCisrZW5k aWYKKysKKyt0ZXN0X29yYWNsZV9TT1VSQ0VTID0gJChvcmFjbGVfdGVzdF9jY19zb3VyY2VzKQor K3Rlc3Rfb3JhY2xlX0NYWEZMQUdTID0gJChCT09TVF9DRkxBR1MpICQoT1JBQ0xFX09DSV9DRkxB R1MpCisrdGVzdF9vcmFjbGVfTERBREQgPQorK3Rlc3Rfb3JhY2xlX0xERkxBR1MgPSAkKHRvcF9i dWlsZGRpcikvc29jaS9jb3JlL2xpYnNvY2lfY29yZS5sYSAtbGRsIFwKKysJCSQodG9wX2J1aWxk ZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9saWJzb2NpX29yYWNsZS5sYSBcCisrCQkkKE9SQUNM RV9PQ0lfTERGTEFHUykKKytlbmRpZgorKworKyNub2Rpc3RfcGtnaW5jbHVkZV9IRUFERVJTID0g JChvcmFjbGVfdGVzdF9oX3NvdXJjZXMpCitkaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svc29j aS9iYWNrZW5kcy9vcmFjbGUvdGVzdC9NYWtlZmlsZS5iYXNpYyBzb2NpLTMuMC4wX3RyZXAzMDAv c29jaS9iYWNrZW5kcy9vcmFjbGUvdGVzdC9NYWtlZmlsZS5iYXNpYworLS0tIHNvY2ktMy4wLjBf NC1wYWNrL3NvY2kvYmFja2VuZHMvb3JhY2xlL3Rlc3QvTWFrZWZpbGUuYmFzaWMJMjAxMC0wMS0y MyAxNDo0NTo0NC4wMDAwMDAwMDAgKzAxMDAKKysrKyBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9i YWNrZW5kcy9vcmFjbGUvdGVzdC9NYWtlZmlsZS5iYXNpYwkxOTcwLTAxLTAxIDAxOjAwOjAwLjAw MDAwMDAwMCArMDEwMAorQEAgLTEsMjMgKzAsMCBAQAorLSMgVGhlIGZvbGxvd2luZyB2YXJpYWJs ZSBpcyBzcGVjaWZpYyB0byB0aGlzIGJhY2tlbmQgYW5kIGl0cyBjb3JyZWN0CistIyB2YWx1ZXMg bWlnaHQgZGVwZW5kIG9uIHlvdXIgZW52aXJvbm1lbnQgLSBmZWVsIGZyZWUgdG8gc2V0IGl0IGFj Y29yZGluZ2x5LgorLQorLU9SQUNMRUlOQ0xVREVESVIgPSAtSS91c3IvbGliL29yYWNsZS94ZS9h cHAvb3JhY2xlL3Byb2R1Y3QvMTAuMi4wL3NlcnZlci9yZGJtcy9wdWJsaWMgCistT1JBQ0xFTElC RElSID0gLUwvdXNyL2xpYi9vcmFjbGUveGUvYXBwL29yYWNsZS9wcm9kdWN0LzEwLjIuMC9zZXJ2 ZXIvbGliIAorLU9SQUNMRUxJQlMgPSAtbGNsbnRzaCAtbG5uejEwCistCistIyBUaGUgcmVzdCBv ZiB0aGUgTWFrZWZpbGUgaXMgaW5kZXBlbnRlbnQgb2YgdGhlIHRhcmdldCBlbnZpcm9ubWVudC4K Ky0KKy1DT01QSUxFUiA9IGcrKworLUNYWEZMQUdTID0gLVdhbGwgLXBlZGFudGljIC1Xbm8tbG9u Zy1sb25nCistSU5DTFVERURJUlMgPSAtSS4uIC1JLi4vLi4vLi4vY29yZSAtSS4uLy4uLy4uL2Nv cmUvdGVzdCAke09SQUNMRUlOQ0xVREVESVJ9CistTElCRElSUyA9IC1MLi4gLUwuLi8uLi8uLi9j b3JlICR7T1JBQ0xFTElCRElSfQorLUxJQlMgPSAtbHNvY2lfY29yZSAtbHNvY2lfb3JhY2xlIC1s ZGwgLWxib29zdF9kYXRlX3RpbWUgJHtPUkFDTEVMSUJTfQorLQorLQorLXRlc3Qtb3JhY2xlIDog dGVzdC1vcmFjbGUuY3BwIAorLSMuLi8uLi8uLi9jb3JlL3Rlc3QvY29tbW9uLXRlc3RzLmgKKy0J JHtDT01QSUxFUn0gLW8gJEAgJD8gJHtDWFhGTEFHU30gJHtJTkNMVURFRElSU30gJHtMSUJESVJT fSAke0xJQlN9CistCistCistY2xlYW4gOgorLQlybSAtZiAqLm8gdGVzdC1vcmFjbGUKK2RpZmYg LU51ciBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL29yYWNsZS90ZXN0L01ha2VmaWxl LmluIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL29yYWNsZS90ZXN0L01ha2VmaWxl LmluCistLS0gc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9vcmFjbGUvdGVzdC9NYWtl ZmlsZS5pbgkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAorKysrIHNvY2ktMy4w LjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL29yYWNsZS90ZXN0L01ha2VmaWxlLmluCTIwMTAtMDEt MjMgMTQ6NDQ6NTIuMDAwMDAwMDAwICswMTAwCitAQCAtMCwwICsxLDU2MiBAQAorKyMgTWFrZWZp bGUuaW4gZ2VuZXJhdGVkIGJ5IGF1dG9tYWtlIDEuMTEuMSBmcm9tIE1ha2VmaWxlLmFtLgorKyMg QGNvbmZpZ3VyZV9pbnB1dEAKKysKKysjIENvcHlyaWdodCAoQykgMTk5NCwgMTk5NSwgMTk5Niwg MTk5NywgMTk5OCwgMTk5OSwgMjAwMCwgMjAwMSwgMjAwMiwKKysjIDIwMDMsIDIwMDQsIDIwMDUs IDIwMDYsIDIwMDcsIDIwMDgsIDIwMDkgIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwKKysjIElu Yy4KKysjIFRoaXMgTWFrZWZpbGUuaW4gaXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdh cmUgRm91bmRhdGlvbgorKyMgZ2l2ZXMgdW5saW1pdGVkIHBlcm1pc3Npb24gdG8gY29weSBhbmQv b3IgZGlzdHJpYnV0ZSBpdCwKKysjIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb25zLCBhcyBs b25nIGFzIHRoaXMgbm90aWNlIGlzIHByZXNlcnZlZC4KKysKKysjIFRoaXMgcHJvZ3JhbSBpcyBk aXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorKyMgYnV0IFdJ VEhPVVQgQU5ZIFdBUlJBTlRZLCB0byB0aGUgZXh0ZW50IHBlcm1pdHRlZCBieSBsYXc7IHdpdGhv dXQKKysjIGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJ VE5FU1MgRk9SIEEKKysjIFBBUlRJQ1VMQVIgUFVSUE9TRS4KKysKKytAU0VUX01BS0VACisrCisr VlBBVEggPSBAc3JjZGlyQAorK3BrZ2RhdGFkaXIgPSAkKGRhdGFkaXIpL0BQQUNLQUdFQAorK3Br Z2luY2x1ZGVkaXIgPSAkKGluY2x1ZGVkaXIpL0BQQUNLQUdFQAorK3BrZ2xpYmRpciA9ICQobGli ZGlyKS9AUEFDS0FHRUAKKytwa2dsaWJleGVjZGlyID0gJChsaWJleGVjZGlyKS9AUEFDS0FHRUAK KythbV9fY2QgPSBDRFBBVEg9IiQke1pTSF9WRVJTSU9OKy59JChQQVRIX1NFUEFSQVRPUikiICYm IGNkCisraW5zdGFsbF9zaF9EQVRBID0gJChpbnN0YWxsX3NoKSAtYyAtbSA2NDQKKytpbnN0YWxs X3NoX1BST0dSQU0gPSAkKGluc3RhbGxfc2gpIC1jCisraW5zdGFsbF9zaF9TQ1JJUFQgPSAkKGlu c3RhbGxfc2gpIC1jCisrSU5TVEFMTF9IRUFERVIgPSAkKElOU1RBTExfREFUQSkKKyt0cmFuc2Zv cm0gPSAkKHByb2dyYW1fdHJhbnNmb3JtX25hbWUpCisrTk9STUFMX0lOU1RBTEwgPSA6CisrUFJF X0lOU1RBTEwgPSA6CisrUE9TVF9JTlNUQUxMID0gOgorK05PUk1BTF9VTklOU1RBTEwgPSA6Cisr UFJFX1VOSU5TVEFMTCA9IDoKKytQT1NUX1VOSU5TVEFMTCA9IDoKKytidWlsZF90cmlwbGV0ID0g QGJ1aWxkQAorK2hvc3RfdHJpcGxldCA9IEBob3N0QAorK0RJU1RfQ09NTU9OID0gJChzcmNkaXIp L01ha2VmaWxlLmFtICQoc3JjZGlyKS9NYWtlZmlsZS5pbiBcCisrCSQoc3JjZGlyKS9zb3VyY2Vz Lm1rICQodG9wX3NyY2RpcikvTWFrZWZpbGUuY29tbW9uCisrQEhBVkVfT1JBQ0xFX1RSVUVAQFJV Tl9URVNUU19UUlVFQG5vaW5zdF9QUk9HUkFNUyA9ICQoYW1fX0VYRUVYVF8xKQorK3N1YmRpciA9 IHNvY2kvYmFja2VuZHMvb3JhY2xlL3Rlc3QKKytBQ0xPQ0FMX000ID0gJCh0b3Bfc3JjZGlyKS9h Y2xvY2FsLm00CisrYW1fX2FjbG9jYWxfbTRfZGVwcyA9ICQodG9wX3NyY2RpcikvY29uZmlnL2F4 X2Jvb3N0Lm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfbXlzcWwubTQgXAorKwkkKHRv cF9zcmNkaXIpL2NvbmZpZy9heF9vcmFjbGVfb2NpLm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25m aWcvYXhfcG9zdGdyZXNxbC5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2NwcHVuaXQubTQg XAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9saWJ0b29sLm00IFwKKysJJCh0b3Bfc3JjZGlyKS9j b25maWcvbHRvcHRpb25zLm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcvbHRzdWdhci5tNCBc CisrCSQodG9wX3NyY2RpcikvY29uZmlnL2x0dmVyc2lvbi5tNCBcCisrCSQodG9wX3NyY2Rpcikv Y29uZmlnL2x0fm9ic29sZXRlLm00ICQodG9wX3NyY2RpcikvY29uZmlndXJlLmFjCisrYW1fX2Nv bmZpZ3VyZV9kZXBzID0gJChhbV9fYWNsb2NhbF9tNF9kZXBzKSAkKENPTkZJR1VSRV9ERVBFTkRF TkNJRVMpIFwKKysJJChBQ0xPQ0FMX000KQorK21raW5zdGFsbGRpcnMgPSAkKGluc3RhbGxfc2gp IC1kCisrQ09ORklHX0hFQURFUiA9ICQodG9wX2J1aWxkZGlyKS9zb2NpL2NvbmZpZy5oCisrQ09O RklHX0NMRUFOX0ZJTEVTID0KKytDT05GSUdfQ0xFQU5fVlBBVEhfRklMRVMgPQorK0BIQVZFX09S QUNMRV9UUlVFQGFtX19FWEVFWFRfMSA9IHRlc3Rfb3JhY2xlJChFWEVFWFQpCisrUFJPR1JBTVMg PSAkKG5vaW5zdF9QUk9HUkFNUykKKythbV9fdGVzdF9vcmFjbGVfU09VUkNFU19ESVNUID0gIFwK KysJJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS90ZXN0L3Rlc3Qtb3JhY2xlLmNw cAorK2FtX19vYmplY3RzXzEgPSB0ZXN0X29yYWNsZS10ZXN0LW9yYWNsZS4kKE9CSkVYVCkKKytA SEFWRV9PUkFDTEVfVFJVRUBhbV90ZXN0X29yYWNsZV9PQkpFQ1RTID0gJChhbV9fb2JqZWN0c18x KQorK3Rlc3Rfb3JhY2xlX09CSkVDVFMgPSAkKGFtX3Rlc3Rfb3JhY2xlX09CSkVDVFMpCisrdGVz dF9vcmFjbGVfREVQRU5ERU5DSUVTID0KKyt0ZXN0X29yYWNsZV9MSU5LID0gJChMSUJUT09MKSAt LXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpIFwKKysJJChMSUJUT09MRkxBR1MpIC0tbW9kZT1s aW5rICQoQ1hYTEQpICQodGVzdF9vcmFjbGVfQ1hYRkxBR1MpIFwKKysJJChDWFhGTEFHUykgJCh0 ZXN0X29yYWNsZV9MREZMQUdTKSAkKExERkxBR1MpIC1vICRACisrREVGQVVMVF9JTkNMVURFUyA9 IC1JLkBhbV9faXNyY0AgLUkkKHRvcF9idWlsZGRpcikvc29jaQorK2RlcGNvbXAgPSAkKFNIRUxM KSAkKHRvcF9zcmNkaXIpL2NvbmZpZy9kZXBjb21wCisrYW1fX2RlcGZpbGVzX21heWJlID0gZGVw ZmlsZXMKKythbV9fbXYgPSBtdiAtZgorK0NYWENPTVBJTEUgPSAkKENYWCkgJChERUZTKSAkKERF RkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpIFwKKysJJChBTV9DUFBGTEFHUykgJChDUFBGTEFH UykgJChBTV9DWFhGTEFHUykgJChDWFhGTEFHUykKKytMVENYWENPTVBJTEUgPSAkKExJQlRPT0wp IC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIFwKKysJLS1tb2Rl PWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSBc CisrCSQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQoQU1fQ1hYRkxBR1MpICQoQ1hYRkxBR1Mp CisrQ1hYTEQgPSAkKENYWCkKKytDWFhMSU5LID0gJChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9M SUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSBcCisrCS0tbW9kZT1saW5rICQoQ1hYTEQpICQo QU1fQ1hYRkxBR1MpICQoQ1hYRkxBR1MpICQoQU1fTERGTEFHUykgXAorKwkkKExERkxBR1MpIC1v ICRACisrU09VUkNFUyA9ICQodGVzdF9vcmFjbGVfU09VUkNFUykKKytESVNUX1NPVVJDRVMgPSAk KGFtX190ZXN0X29yYWNsZV9TT1VSQ0VTX0RJU1QpCisrRVRBR1MgPSBldGFncworK0NUQUdTID0g Y3RhZ3MKKytESVNURklMRVMgPSAkKERJU1RfQ09NTU9OKSAkKERJU1RfU09VUkNFUykgJChURVhJ TkZPUykgJChFWFRSQV9ESVNUKQorK0FDTE9DQUwgPSBAQUNMT0NBTEAKKytBTVRBUiA9IEBBTVRB UkAKKytBUiA9IEBBUkAKKytBVVRPQ09ORiA9IEBBVVRPQ09ORkAKKytBVVRPSEVBREVSID0gQEFV VE9IRUFERVJACisrQVVUT01BS0UgPSBAQVVUT01BS0VACisrQVdLID0gQEFXS0AKKytCT09TVF9D RkxBR1MgPSBAQk9PU1RfQ0ZMQUdTQAorK0JPT1NUX0RBVEVfVElNRV9MSUIgPSBAQk9PU1RfREFU RV9USU1FX0xJQkAKKytCT09TVF9GSUxFU1lTVEVNX0xJQiA9IEBCT09TVF9GSUxFU1lTVEVNX0xJ QkAKKytCT09TVF9JT1NUUkVBTVNfTElCID0gQEJPT1NUX0lPU1RSRUFNU19MSUJACisrQk9PU1Rf TElCUyA9IEBCT09TVF9MSUJTQAorK0JPT1NUX01QSV9MSUIgPSBAQk9PU1RfTVBJX0xJQkAKKytC T09TVF9NUElfUFlUSE9OX0xJQiA9IEBCT09TVF9NUElfUFlUSE9OX0xJQkAKKytCT09TVF9QUk9H UkFNX09QVElPTlNfTElCID0gQEJPT1NUX1BST0dSQU1fT1BUSU9OU19MSUJACisrQk9PU1RfUFlU SE9OX0xJQiA9IEBCT09TVF9QWVRIT05fTElCQAorK0JPT1NUX1JFR0VYX0xJQiA9IEBCT09TVF9S RUdFWF9MSUJACisrQk9PU1RfU0VSSUFMSVpBVElPTl9MSUIgPSBAQk9PU1RfU0VSSUFMSVpBVElP Tl9MSUJACisrQk9PU1RfU0lHTkFMU19MSUIgPSBAQk9PU1RfU0lHTkFMU19MSUJACisrQk9PU1Rf U1lTVEVNX0xJQiA9IEBCT09TVF9TWVNURU1fTElCQAorK0JPT1NUX1RIUkVBRF9MSUIgPSBAQk9P U1RfVEhSRUFEX0xJQkAKKytCT09TVF9VTklUX1RFU1RfRlJBTUVXT1JLX0xJQiA9IEBCT09TVF9V TklUX1RFU1RfRlJBTUVXT1JLX0xJQkAKKytCT09TVF9WRVJTSU9OID0gQEJPT1NUX1ZFUlNJT05A CisrQk9PU1RfV1NFUklBTElaQVRJT05fTElCID0gQEJPT1NUX1dTRVJJQUxJWkFUSU9OX0xJQkAK KytDQyA9IEBDQ0AKKytDQ0RFUE1PREUgPSBAQ0NERVBNT0RFQAorK0NGTEFHUyA9IEBDRkxBR1NA CisrQ1BQID0gQENQUEAKKytDUFBGTEFHUyA9IEBDUFBGTEFHU0AKKytDUFBVTklUX0NGTEFHUyA9 IEBDUFBVTklUX0NGTEFHU0AKKytDUFBVTklUX0NPTkZJRyA9IEBDUFBVTklUX0NPTkZJR0AKKytD UFBVTklUX0xJQlMgPSBAQ1BQVU5JVF9MSUJTQAorK0NQUFVOSVRfVkVSU0lPTiA9IEBDUFBVTklU X1ZFUlNJT05ACisrQ1hYID0gQENYWEAKKytDWFhDUFAgPSBAQ1hYQ1BQQAorK0NYWERFUE1PREUg PSBAQ1hYREVQTU9ERUAKKytDWFhGTEFHUyA9IEBDWFhGTEFHU0AKKytDWUdQQVRIX1cgPSBAQ1lH UEFUSF9XQAorK0RFRlMgPSBAREVGU0AKKytERVBESVIgPSBAREVQRElSQAorK0RTWU1VVElMID0g QERTWU1VVElMQAorK0RVTVBCSU4gPSBARFVNUEJJTkAKKytFQ0hPX0MgPSBARUNIT19DQAorK0VD SE9fTiA9IEBFQ0hPX05ACisrRUNIT19UID0gQEVDSE9fVEAKKytFR1JFUCA9IEBFR1JFUEAKKytF WEVFWFQgPSBARVhFRVhUQAorK0ZHUkVQID0gQEZHUkVQQAorK0dFTkVSSUNfTElCUkFSWV9WRVJT SU9OID0gQEdFTkVSSUNfTElCUkFSWV9WRVJTSU9OQAorK0dSRVAgPSBAR1JFUEAKKytJTlNUQUxM ID0gQElOU1RBTExACisrSU5TVEFMTF9EQVRBID0gQElOU1RBTExfREFUQUAKKytJTlNUQUxMX1BS T0dSQU0gPSBASU5TVEFMTF9QUk9HUkFNQAorK0lOU1RBTExfU0NSSVBUID0gQElOU1RBTExfU0NS SVBUQAorK0lOU1RBTExfU1RSSVBfUFJPR1JBTSA9IEBJTlNUQUxMX1NUUklQX1BST0dSQU1ACisr TEQgPSBATERACisrTERGTEFHUyA9IEBMREZMQUdTQAorK0xJQk9CSlMgPSBATElCT0JKU0AKKytM SUJTID0gQExJQlNACisrTElCVE9PTCA9IEBMSUJUT09MQAorK0xJUE8gPSBATElQT0AKKytMTl9T ID0gQExOX1NACisrTFRMSUJPQkpTID0gQExUTElCT0JKU0AKKytNQUtFSU5GTyA9IEBNQUtFSU5G T0AKKytNS0RJUl9QID0gQE1LRElSX1BACisrTVlTUUxfQ0ZMQUdTID0gQE1ZU1FMX0NGTEFHU0AK KytNWVNRTF9DX0xJQiA9IEBNWVNRTF9DX0xJQkAKKytNWVNRTF9ESVJTID0gQE1ZU1FMX0RJUlNA CisrTVlTUUxfTElCUyA9IEBNWVNRTF9MSUJTQAorK01ZU1FMX1ZFUlNJT04gPSBATVlTUUxfVkVS U0lPTkAKKytOTSA9IEBOTUAKKytOTUVESVQgPSBATk1FRElUQAorK09CSkRVTVAgPSBAT0JKRFVN UEAKKytPQkpFWFQgPSBAT0JKRVhUQAorK09SQUNMRV9ESVJTID0gQE9SQUNMRV9ESVJTQAorK09S QUNMRV9PQ0lfQ0ZMQUdTID0gQE9SQUNMRV9PQ0lfQ0ZMQUdTQAorK09SQUNMRV9PQ0lfTERGTEFH UyA9IEBPUkFDTEVfT0NJX0xERkxBR1NACisrT1JBQ0xFX09DSV9WRVJTSU9OID0gQE9SQUNMRV9P Q0lfVkVSU0lPTkAKKytPVE9PTCA9IEBPVE9PTEAKKytPVE9PTDY0ID0gQE9UT09MNjRACisrUEFD S0FHRSA9IEBQQUNLQUdFQAorK1BBQ0tBR0VfQlVHUkVQT1JUID0gQFBBQ0tBR0VfQlVHUkVQT1JU QAorK1BBQ0tBR0VfTkFNRSA9IEBQQUNLQUdFX05BTUVACisrUEFDS0FHRV9TVFJJTkcgPSBAUEFD S0FHRV9TVFJJTkdACisrUEFDS0FHRV9UQVJOQU1FID0gQFBBQ0tBR0VfVEFSTkFNRUAKKytQQUNL QUdFX1ZFUlNJT04gPSBAUEFDS0FHRV9WRVJTSU9OQAorK1BBVEhfU0VQQVJBVE9SID0gQFBBVEhf U0VQQVJBVE9SQAorK1BFUkwgPSBAUEVSTEAKKytQR19DT05GSUcgPSBAUEdfQ09ORklHQAorK1BP U1RHUkVTUUxfQ0ZMQUdTID0gQFBPU1RHUkVTUUxfQ0ZMQUdTQAorK1BPU1RHUkVTUUxfRElSUyA9 IEBQT1NUR1JFU1FMX0RJUlNACisrUE9TVEdSRVNRTF9MREZMQUdTID0gQFBPU1RHUkVTUUxfTERG TEFHU0AKKytQT1NUR1JFU1FMX1ZFUlNJT04gPSBAUE9TVEdSRVNRTF9WRVJTSU9OQAorK1JBTkxJ QiA9IEBSQU5MSUJACisrUlBNX1JFTEVBU0UgPSBAUlBNX1JFTEVBU0VACisrU0VEID0gQFNFREAK KytTRVRfTUFLRSA9IEBTRVRfTUFLRUAKKytTSEVMTCA9IEBTSEVMTEAKKytTT0NJX0hFQURFUlNf QlVSSUVEID0gQFNPQ0lfSEVBREVSU19CVVJJRURACisrU09DSV9NWVNRTF9IRUFERVJTX0JVUklF RCA9IEBTT0NJX01ZU1FMX0hFQURFUlNfQlVSSUVEQAorK1NPQ0lfUE9TVEdSRVNRTF9IRUFERVJT X0JVUklFRCA9IEBTT0NJX1BPU1RHUkVTUUxfSEVBREVSU19CVVJJRURACisrU1RSSVAgPSBAU1RS SVBACisrVVBMT0FEX0NPTU1BTkQgPSBAVVBMT0FEX0NPTU1BTkRACisrVkVSU0lPTiA9IEBWRVJT SU9OQAorK2Fic19idWlsZGRpciA9IEBhYnNfYnVpbGRkaXJACisrYWJzX3NyY2RpciA9IEBhYnNf c3JjZGlyQAorK2Fic190b3BfYnVpbGRkaXIgPSBAYWJzX3RvcF9idWlsZGRpckAKKythYnNfdG9w X3NyY2RpciA9IEBhYnNfdG9wX3NyY2RpckAKKythY19jdF9DQyA9IEBhY19jdF9DQ0AKKythY19j dF9DWFggPSBAYWNfY3RfQ1hYQAorK2FjX2N0X0RVTVBCSU4gPSBAYWNfY3RfRFVNUEJJTkAKKyth bV9faW5jbHVkZSA9IEBhbV9faW5jbHVkZUAKKythbV9fbGVhZGluZ19kb3QgPSBAYW1fX2xlYWRp bmdfZG90QAorK2FtX19xdW90ZSA9IEBhbV9fcXVvdGVACisrYW1fX3RhciA9IEBhbV9fdGFyQAor K2FtX191bnRhciA9IEBhbV9fdW50YXJACisrYmluZGlyID0gQGJpbmRpckAKKytidWlsZCA9IEBi dWlsZEAKKytidWlsZF9hbGlhcyA9IEBidWlsZF9hbGlhc0AKKytidWlsZF9jcHUgPSBAYnVpbGRf Y3B1QAorK2J1aWxkX29zID0gQGJ1aWxkX29zQAorK2J1aWxkX3ZlbmRvciA9IEBidWlsZF92ZW5k b3JACisrYnVpbGRkaXIgPSBAYnVpbGRkaXJACisrZGF0YWRpciA9IEBkYXRhZGlyQAorK2RhdGFy b290ZGlyID0gQGRhdGFyb290ZGlyQAorK2RpZmZfb2sgPSBAZGlmZl9va0AKKytkb2NkaXIgPSBA ZG9jZGlyQAorK2RveHlnZW5fb2sgPSBAZG94eWdlbl9va0AKKytkdmlkaXIgPSBAZHZpZGlyQAor K2R2aXBzX29rID0gQGR2aXBzX29rQAorK2V4ZWNfcHJlZml4ID0gQGV4ZWNfcHJlZml4QAorK2dz X29rID0gQGdzX29rQAorK2hvc3QgPSBAaG9zdEAKKytob3N0X2FsaWFzID0gQGhvc3RfYWxpYXNA CisraG9zdF9jcHUgPSBAaG9zdF9jcHVACisraG9zdF9vcyA9IEBob3N0X29zQAorK2hvc3RfdmVu ZG9yID0gQGhvc3RfdmVuZG9yQAorK2h0bWxkaXIgPSBAaHRtbGRpckAKKytpbmNsdWRlZGlyID0g QGluY2x1ZGVkaXJACisraW5mb2RpciA9IEBpbmZvZGlyQAorK2luc3RhbGxfc2ggPSBAaW5zdGFs bF9zaEAKKytsYXRleF9vayA9IEBsYXRleF9va0AKKytsaWJkaXIgPSBAbGliZGlyQAorK2xpYmV4 ZWNkaXIgPSBAbGliZXhlY2RpckAKKytsb2NhbGVkaXIgPSBAbG9jYWxlZGlyQAorK2xvY2Fsc3Rh dGVkaXIgPSBAbG9jYWxzdGF0ZWRpckAKKytsdF9FQ0hPID0gQGx0X0VDSE9ACisrbWFuZGlyID0g QG1hbmRpckAKKytta2Rpcl9wID0gQG1rZGlyX3BACisrb2xkaW5jbHVkZWRpciA9IEBvbGRpbmNs dWRlZGlyQAorK3BkZmRpciA9IEBwZGZkaXJACisrcHJlZml4ID0gQHByZWZpeEAKKytwcm9ncmFt X3RyYW5zZm9ybV9uYW1lID0gQHByb2dyYW1fdHJhbnNmb3JtX25hbWVACisrcHNkaXIgPSBAcHNk aXJACisrc2JpbmRpciA9IEBzYmluZGlyQAorK3NlZF9vayA9IEBzZWRfb2tACisrc2hhcmVkc3Rh dGVkaXIgPSBAc2hhcmVkc3RhdGVkaXJACisrc3JjZGlyID0gQHNyY2RpckAKKytzeXNjb25mZGly ID0gQHN5c2NvbmZkaXJACisrdGFyZ2V0X2FsaWFzID0gQHRhcmdldF9hbGlhc0AKKyt0b3BfYnVp bGRfcHJlZml4ID0gQHRvcF9idWlsZF9wcmVmaXhACisrdG9wX2J1aWxkZGlyID0gQHRvcF9idWls ZGRpckAKKyt0b3Bfc3JjZGlyID0gQHRvcF9zcmNkaXJACisrQU1fQ1BQRkxBR1MgPSAtSSQodG9w X2J1aWxkZGlyKSAtSSQodG9wX3NyY2RpcikKKytvcmFjbGVfdGVzdF9oX3NvdXJjZXMgPSAKKytv cmFjbGVfdGVzdF9jY19zb3VyY2VzID0gJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNs ZS90ZXN0L3Rlc3Qtb3JhY2xlLmNwcAorK01BSU5UQUlORVJDTEVBTkZJTEVTID0gTWFrZWZpbGUu aW4KKytASEFWRV9PUkFDTEVfVFJVRUBURVNUX09SQUNMRSA9IHRlc3Rfb3JhY2xlCisrQEhBVkVf T1JBQ0xFX1RSVUVAdGVzdF9vcmFjbGVfU09VUkNFUyA9ICQob3JhY2xlX3Rlc3RfY2Nfc291cmNl cykKKytASEFWRV9PUkFDTEVfVFJVRUB0ZXN0X29yYWNsZV9DWFhGTEFHUyA9ICQoQk9PU1RfQ0ZM QUdTKSAkKE9SQUNMRV9PQ0lfQ0ZMQUdTKQorK0BIQVZFX09SQUNMRV9UUlVFQHRlc3Rfb3JhY2xl X0xEQUREID0gCisrQEhBVkVfT1JBQ0xFX1RSVUVAdGVzdF9vcmFjbGVfTERGTEFHUyA9ICQodG9w X2J1aWxkZGlyKS9zb2NpL2NvcmUvbGlic29jaV9jb3JlLmxhIC1sZGwgXAorK0BIQVZFX09SQUNM RV9UUlVFQAkJJCh0b3BfYnVpbGRkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL2xpYnNvY2lfb3Jh Y2xlLmxhIFwKKytASEFWRV9PUkFDTEVfVFJVRUAJCSQoT1JBQ0xFX09DSV9MREZMQUdTKQorKwor K2FsbDogYWxsLWFtCisrCisrLlNVRkZJWEVTOgorKy5TVUZGSVhFUzogLmNwcCAubG8gLm8gLm9i agorKyQoc3JjZGlyKS9NYWtlZmlsZS5pbjogICQoc3JjZGlyKS9NYWtlZmlsZS5hbSAkKHRvcF9z cmNkaXIpL01ha2VmaWxlLmNvbW1vbiAkKHNyY2Rpcikvc291cmNlcy5tayAkKGFtX19jb25maWd1 cmVfZGVwcykKKysJQGZvciBkZXAgaW4gJD87IGRvIFwKKysJICBjYXNlICckKGFtX19jb25maWd1 cmVfZGVwcyknIGluIFwKKysJICAgICokJGRlcCopIFwKKysJICAgICAgKCBjZCAkKHRvcF9idWls ZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2ggKSBcCisrCSAgICAg ICAgJiYgeyBpZiB0ZXN0IC1mICRAOyB0aGVuIGV4aXQgMDsgZWxzZSBicmVhazsgZmk7IH07IFwK KysJICAgICAgZXhpdCAxOzsgXAorKwkgIGVzYWM7IFwKKysJZG9uZTsgXAorKwllY2hvICcgY2Qg JCh0b3Bfc3JjZGlyKSAmJiAkKEFVVE9NQUtFKSAtLWdudSBzb2NpL2JhY2tlbmRzL29yYWNsZS90 ZXN0L01ha2VmaWxlJzsgXAorKwkkKGFtX19jZCkgJCh0b3Bfc3JjZGlyKSAmJiBcCisrCSAgJChB VVRPTUFLRSkgLS1nbnUgc29jaS9iYWNrZW5kcy9vcmFjbGUvdGVzdC9NYWtlZmlsZQorKy5QUkVD SU9VUzogTWFrZWZpbGUKKytNYWtlZmlsZTogJChzcmNkaXIpL01ha2VmaWxlLmluICQodG9wX2J1 aWxkZGlyKS9jb25maWcuc3RhdHVzCisrCUBjYXNlICckPycgaW4gXAorKwkgICpjb25maWcuc3Rh dHVzKikgXAorKwkgICAgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxB R1MpIGFtLS1yZWZyZXNoOzsgXAorKwkgICopIFwKKysJICAgIGVjaG8gJyBjZCAkKHRvcF9idWls ZGRpcikgJiYgJChTSEVMTCkgLi9jb25maWcuc3RhdHVzICQoc3ViZGlyKS8kQCAkKGFtX19kZXBm aWxlc19tYXliZSknOyBcCisrCSAgICBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChTSEVMTCkgLi9j b25maWcuc3RhdHVzICQoc3ViZGlyKS8kQCAkKGFtX19kZXBmaWxlc19tYXliZSk7OyBcCisrCWVz YWM7CisrCisrJCh0b3BfYnVpbGRkaXIpL2NvbmZpZy5zdGF0dXM6ICQodG9wX3NyY2RpcikvY29u ZmlndXJlICQoQ09ORklHX1NUQVRVU19ERVBFTkRFTkNJRVMpCisrCWNkICQodG9wX2J1aWxkZGly KSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaAorKworKyQodG9wX3NyY2Rp cikvY29uZmlndXJlOiAgJChhbV9fY29uZmlndXJlX2RlcHMpCisrCWNkICQodG9wX2J1aWxkZGly KSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaAorKyQoQUNMT0NBTF9NNCk6 ICAkKGFtX19hY2xvY2FsX200X2RlcHMpCisrCWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0Up ICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaAorKyQoYW1fX2FjbG9jYWxfbTRfZGVwcyk6Cisr CisrY2xlYW4tbm9pbnN0UFJPR1JBTVM6CisrCUBsaXN0PSckKG5vaW5zdF9QUk9HUkFNUyknOyB0 ZXN0IC1uICIkJGxpc3QiIHx8IGV4aXQgMDsgXAorKwllY2hvICIgcm0gLWYiICQkbGlzdDsgXAor KwlybSAtZiAkJGxpc3QgfHwgZXhpdCAkJD87IFwKKysJdGVzdCAtbiAiJChFWEVFWFQpIiB8fCBl eGl0IDA7IFwKKysJbGlzdD1gZm9yIHAgaW4gJCRsaXN0OyBkbyBlY2hvICIkJHAiOyBkb25lIHwg c2VkICdzLyQoRVhFRVhUKSQkLy8nYDsgXAorKwllY2hvICIgcm0gLWYiICQkbGlzdDsgXAorKwly bSAtZiAkJGxpc3QKKyt0ZXN0X29yYWNsZSQoRVhFRVhUKTogJCh0ZXN0X29yYWNsZV9PQkpFQ1RT KSAkKHRlc3Rfb3JhY2xlX0RFUEVOREVOQ0lFUykgCisrCUBybSAtZiB0ZXN0X29yYWNsZSQoRVhF RVhUKQorKwkkKHRlc3Rfb3JhY2xlX0xJTkspICQodGVzdF9vcmFjbGVfT0JKRUNUUykgJCh0ZXN0 X29yYWNsZV9MREFERCkgJChMSUJTKQorKworK21vc3RseWNsZWFuLWNvbXBpbGU6CisrCS1ybSAt ZiAqLiQoT0JKRVhUKQorKworK2Rpc3RjbGVhbi1jb21waWxlOgorKwktcm0gLWYgKi50YWIuYwor KworK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS90ZXN0 X29yYWNsZS10ZXN0LW9yYWNsZS5Qb0BhbV9fcXVvdGVACisrCisrLmNwcC5vOgorK0BhbV9fZmFz dGRlcENYWF9UUlVFQAkkKENYWENPTVBJTEUpIC1NVCAkQCAtTUQgLU1QIC1NRiAkKERFUERJUikv JCouVHBvIC1jIC1vICRAICQ8CisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoYW1fX212KSAkKERF UERJUikvJCouVHBvICQoREVQRElSKS8kKi5QbworK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENY WF9GQUxTRUAJc291cmNlPSckPCcgb2JqZWN0PSckQCcgbGlidG9vbD1ubyBAQU1ERVBCQUNLU0xB U0hACisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIp ICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACisrQGFtX19mYXN0ZGVw Q1hYX0ZBTFNFQAkkKENYWENPTVBJTEUpIC1jIC1vICRAICQ8CisrCisrLmNwcC5vYmo6CisrQGFt X19mYXN0ZGVwQ1hYX1RSVUVACSQoQ1hYQ09NUElMRSkgLU1UICRAIC1NRCAtTVAgLU1GICQoREVQ RElSKS8kKi5UcG8gLWMgLW8gJEAgYCQoQ1lHUEFUSF9XKSAnJDwnYAorK0BhbV9fZmFzdGRlcENY WF9UUlVFQAkkKGFtX19tdikgJChERVBESVIpLyQqLlRwbyAkKERFUERJUikvJCouUG8KKytAQU1E RVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJDwnIG9iamVjdD0nJEAnIGxp YnRvb2w9bm8gQEFNREVQQkFDS1NMQVNIQAorK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9G QUxTRUAJREVQRElSPSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFD S1NMQVNIQAorK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChDWFhDT01QSUxFKSAtYyAtbyAkQCBg JChDWUdQQVRIX1cpICckPCdgCisrCisrLmNwcC5sbzoKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJ JChMVENYWENPTVBJTEUpIC1NVCAkQCAtTUQgLU1QIC1NRiAkKERFUERJUikvJCouVHBvIC1jIC1v ICRAICQ8CisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoYW1fX212KSAkKERFUERJUikvJCouVHBv ICQoREVQRElSKS8kKi5QbG8KKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNv dXJjZT0nJDwnIG9iamVjdD0nJEAnIGxpYnRvb2w9eWVzIEBBTURFUEJBQ0tTTEFTSEAKKytAQU1E RVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDWFhERVBN T0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKKytAYW1fX2Zhc3RkZXBDWFhfRkFMU0VA CSQoTFRDWFhDT01QSUxFKSAtYyAtbyAkQCAkPAorKworK3Rlc3Rfb3JhY2xlLXRlc3Qtb3JhY2xl Lm86ICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvdGVzdC90ZXN0LW9yYWNsZS5j cHAKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xV REVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKHRlc3Rfb3JhY2xl X0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtTVQgdGVzdF9vcmFjbGUtdGVzdC1vcmFjbGUubyAtTUQg LU1QIC1NRiAkKERFUERJUikvdGVzdF9vcmFjbGUtdGVzdC1vcmFjbGUuVHBvIC1jIC1vIHRlc3Rf b3JhY2xlLXRlc3Qtb3JhY2xlLm8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5k cy9vcmFjbGUvdGVzdC90ZXN0LW9yYWNsZS5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9w X3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvdGVzdC90ZXN0LW9yYWNsZS5jcHAKKytAYW1f X2Zhc3RkZXBDWFhfVFJVRUAJJChhbV9fbXYpICQoREVQRElSKS90ZXN0X29yYWNsZS10ZXN0LW9y YWNsZS5UcG8gJChERVBESVIpL3Rlc3Rfb3JhY2xlLXRlc3Qtb3JhY2xlLlBvCisrQEFNREVQX1RS VUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQodG9wX3NyY2Rpcikvc29jaS9iYWNr ZW5kcy9vcmFjbGUvdGVzdC90ZXN0LW9yYWNsZS5jcHAnIG9iamVjdD0ndGVzdF9vcmFjbGUtdGVz dC1vcmFjbGUubycgbGlidG9vbD1ubyBAQU1ERVBCQUNLU0xBU0hACisrQEFNREVQX1RSVUVAQGFt X19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBj b21wKSBAQU1ERVBCQUNLU0xBU0hACisrQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKENYWCkgJChE RUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQ RkxBR1MpICQodGVzdF9vcmFjbGVfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1jIC1vIHRlc3Rfb3Jh Y2xlLXRlc3Qtb3JhY2xlLm8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9v cmFjbGUvdGVzdC90ZXN0LW9yYWNsZS5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3Ny Y2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvdGVzdC90ZXN0LW9yYWNsZS5jcHAKKysKKyt0ZXN0 X29yYWNsZS10ZXN0LW9yYWNsZS5vYmo6ICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFj bGUvdGVzdC90ZXN0LW9yYWNsZS5jcHAKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChDWFgpICQo REVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQ UEZMQUdTKSAkKHRlc3Rfb3JhY2xlX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtTVQgdGVzdF9vcmFj bGUtdGVzdC1vcmFjbGUub2JqIC1NRCAtTVAgLU1GICQoREVQRElSKS90ZXN0X29yYWNsZS10ZXN0 LW9yYWNsZS5UcG8gLWMgLW8gdGVzdF9vcmFjbGUtdGVzdC1vcmFjbGUub2JqIGBpZiB0ZXN0IC1m ICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3Rlc3QvdGVzdC1vcmFjbGUuY3Bw JzsgdGhlbiAkKENZR1BBVEhfVykgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUv dGVzdC90ZXN0LW9yYWNsZS5jcHAnOyBlbHNlICQoQ1lHUEFUSF9XKSAnJChzcmNkaXIpLyQodG9w X3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvdGVzdC90ZXN0LW9yYWNsZS5jcHAnOyBmaWAK KytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChhbV9fbXYpICQoREVQRElSKS90ZXN0X29yYWNsZS10 ZXN0LW9yYWNsZS5UcG8gJChERVBESVIpL3Rlc3Rfb3JhY2xlLXRlc3Qtb3JhY2xlLlBvCisrQEFN REVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQodG9wX3NyY2Rpcikvc29j aS9iYWNrZW5kcy9vcmFjbGUvdGVzdC90ZXN0LW9yYWNsZS5jcHAnIG9iamVjdD0ndGVzdF9vcmFj bGUtdGVzdC1vcmFjbGUub2JqJyBsaWJ0b29sPW5vIEBBTURFUEJBQ0tTTEFTSEAKKytAQU1ERVBf VFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDWFhERVBNT0RF KSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKKytAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQo Q1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFH UykgJChDUFBGTEFHUykgJCh0ZXN0X29yYWNsZV9DWFhGTEFHUykgJChDWFhGTEFHUykgLWMgLW8g dGVzdF9vcmFjbGUtdGVzdC1vcmFjbGUub2JqIGBpZiB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3Nv Y2kvYmFja2VuZHMvb3JhY2xlL3Rlc3QvdGVzdC1vcmFjbGUuY3BwJzsgdGhlbiAkKENZR1BBVEhf VykgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvdGVzdC90ZXN0LW9yYWNsZS5j cHAnOyBlbHNlICQoQ1lHUEFUSF9XKSAnJChzcmNkaXIpLyQodG9wX3NyY2Rpcikvc29jaS9iYWNr ZW5kcy9vcmFjbGUvdGVzdC90ZXN0LW9yYWNsZS5jcHAnOyBmaWAKKysKKyttb3N0bHljbGVhbi1s aWJ0b29sOgorKwktcm0gLWYgKi5sbworKworK2NsZWFuLWxpYnRvb2w6CisrCS1ybSAtcmYgLmxp YnMgX2xpYnMKKysKKytJRDogJChIRUFERVJTKSAkKFNPVVJDRVMpICQoTElTUCkgJChUQUdTX0ZJ TEVTKQorKwlsaXN0PSckKFNPVVJDRVMpICQoSEVBREVSUykgJChMSVNQKSAkKFRBR1NfRklMRVMp JzsgXAorKwl1bmlxdWU9YGZvciBpIGluICQkbGlzdDsgZG8gXAorKwkgICAgaWYgdGVzdCAtZiAi JCRpIjsgdGhlbiBlY2hvICQkaTsgZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7IGZpOyBcCisrCSAg ZG9uZSB8IFwKKysJICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9IDE7IG5vbmVtcHR5ID0gMTsgfSBc CisrCSAgICAgIEVORCB7IGlmIChub25lbXB0eSkgeyBmb3IgKGkgaW4gZmlsZXMpIHByaW50IGk7 IH07IH0nYDsgXAorKwlta2lkIC1mSUQgJCR1bmlxdWUKKyt0YWdzOiBUQUdTCisrCisrVEFHUzog ICQoSEVBREVSUykgJChTT1VSQ0VTKSAgJChUQUdTX0RFUEVOREVOQ0lFUykgXAorKwkJJChUQUdT X0ZJTEVTKSAkKExJU1ApCisrCXNldCB4OyBcCisrCWhlcmU9YHB3ZGA7IFwKKysJbGlzdD0nJChT T1VSQ0VTKSAkKEhFQURFUlMpICAkKExJU1ApICQoVEFHU19GSUxFUyknOyBcCisrCXVuaXF1ZT1g Zm9yIGkgaW4gJCRsaXN0OyBkbyBcCisrCSAgICBpZiB0ZXN0IC1mICIkJGkiOyB0aGVuIGVjaG8g JCRpOyBlbHNlIGVjaG8gJChzcmNkaXIpLyQkaTsgZmk7IFwKKysJICBkb25lIHwgXAorKwkgICQo QVdLKSAneyBmaWxlc1skJDBdID0gMTsgbm9uZW1wdHkgPSAxOyB9IFwKKysJICAgICAgRU5EIHsg aWYgKG5vbmVtcHR5KSB7IGZvciAoaSBpbiBmaWxlcykgcHJpbnQgaTsgfTsgfSdgOyBcCisrCXNo aWZ0OyBcCisrCWlmIHRlc3QgLXogIiQoRVRBR1NfQVJHUykkJCokJHVuaXF1ZSI7IHRoZW4gOjsg ZWxzZSBcCisrCSAgdGVzdCAtbiAiJCR1bmlxdWUiIHx8IHVuaXF1ZT0kJGVtcHR5X2ZpeDsgXAor KwkgIGlmIHRlc3QgJCQjIC1ndCAwOyB0aGVuIFwKKysJICAgICQoRVRBR1MpICQoRVRBR1NGTEFH UykgJChBTV9FVEFHU0ZMQUdTKSAkKEVUQUdTX0FSR1MpIFwKKysJICAgICAgIiQkQCIgJCR1bmlx dWU7IFwKKysJICBlbHNlIFwKKysJICAgICQoRVRBR1MpICQoRVRBR1NGTEFHUykgJChBTV9FVEFH U0ZMQUdTKSAkKEVUQUdTX0FSR1MpIFwKKysJICAgICAgJCR1bmlxdWU7IFwKKysJICBmaTsgXAor KwlmaQorK2N0YWdzOiBDVEFHUworK0NUQUdTOiAgJChIRUFERVJTKSAkKFNPVVJDRVMpICAkKFRB R1NfREVQRU5ERU5DSUVTKSBcCisrCQkkKFRBR1NfRklMRVMpICQoTElTUCkKKysJbGlzdD0nJChT T1VSQ0VTKSAkKEhFQURFUlMpICAkKExJU1ApICQoVEFHU19GSUxFUyknOyBcCisrCXVuaXF1ZT1g Zm9yIGkgaW4gJCRsaXN0OyBkbyBcCisrCSAgICBpZiB0ZXN0IC1mICIkJGkiOyB0aGVuIGVjaG8g JCRpOyBlbHNlIGVjaG8gJChzcmNkaXIpLyQkaTsgZmk7IFwKKysJICBkb25lIHwgXAorKwkgICQo QVdLKSAneyBmaWxlc1skJDBdID0gMTsgbm9uZW1wdHkgPSAxOyB9IFwKKysJICAgICAgRU5EIHsg aWYgKG5vbmVtcHR5KSB7IGZvciAoaSBpbiBmaWxlcykgcHJpbnQgaTsgfTsgfSdgOyBcCisrCXRl c3QgLXogIiQoQ1RBR1NfQVJHUykkJHVuaXF1ZSIgXAorKwkgIHx8ICQoQ1RBR1MpICQoQ1RBR1NG TEFHUykgJChBTV9DVEFHU0ZMQUdTKSAkKENUQUdTX0FSR1MpIFwKKysJICAgICAkJHVuaXF1ZQor KworK0dUQUdTOgorKwloZXJlPWAkKGFtX19jZCkgJCh0b3BfYnVpbGRkaXIpICYmIHB3ZGAgXAor KwkgICYmICQoYW1fX2NkKSAkKHRvcF9zcmNkaXIpIFwKKysJICAmJiBndGFncyAtaSAkKEdUQUdT X0FSR1MpICIkJGhlcmUiCisrCisrZGlzdGNsZWFuLXRhZ3M6CisrCS1ybSAtZiBUQUdTIElEIEdU QUdTIEdSVEFHUyBHU1lNUyBHUEFUSCB0YWdzCisrCisrZGlzdGRpcjogJChESVNURklMRVMpCisr CUBzcmNkaXJzdHJpcD1gZWNobyAiJChzcmNkaXIpIiB8IHNlZCAncy9bXS5bXiQkXFwqXS9cXFxc Ji9nJ2A7IFwKKysJdG9wc3JjZGlyc3RyaXA9YGVjaG8gIiQodG9wX3NyY2RpcikiIHwgc2VkICdz L1tdLlteJCRcXCpdL1xcXFwmL2cnYDsgXAorKwlsaXN0PSckKERJU1RGSUxFUyknOyBcCisrCSAg ZGlzdF9maWxlcz1gZm9yIGZpbGUgaW4gJCRsaXN0OyBkbyBlY2hvICQkZmlsZTsgZG9uZSB8IFwK KysJICBzZWQgLWUgInN8XiQkc3JjZGlyc3RyaXAvfHw7dCIgXAorKwkgICAgICAtZSAic3xeJCR0 b3BzcmNkaXJzdHJpcC98JCh0b3BfYnVpbGRkaXIpL3w7dCJgOyBcCisrCWNhc2UgJCRkaXN0X2Zp bGVzIGluIFwKKysJICAqLyopICQoTUtESVJfUCkgYGVjaG8gIiQkZGlzdF9maWxlcyIgfCBcCisr CQkJICAgc2VkICcvXC8vIWQ7c3xefCQoZGlzdGRpcikvfDtzLC9bXi9dKiQkLCwnIHwgXAorKwkJ CSAgIHNvcnQgLXVgIDs7IFwKKysJZXNhYzsgXAorKwlmb3IgZmlsZSBpbiAkJGRpc3RfZmlsZXM7 IGRvIFwKKysJICBpZiB0ZXN0IC1mICQkZmlsZSB8fCB0ZXN0IC1kICQkZmlsZTsgdGhlbiBkPS47 IGVsc2UgZD0kKHNyY2Rpcik7IGZpOyBcCisrCSAgaWYgdGVzdCAtZCAkJGQvJCRmaWxlOyB0aGVu IFwKKysJICAgIGRpcj1gZWNobyAiLyQkZmlsZSIgfCBzZWQgLWUgJ3MsL1teL10qJCQsLCdgOyBc CisrCSAgICBpZiB0ZXN0IC1kICIkKGRpc3RkaXIpLyQkZmlsZSI7IHRoZW4gXAorKwkgICAgICBm aW5kICIkKGRpc3RkaXIpLyQkZmlsZSIgLXR5cGUgZCAhIC1wZXJtIC03MDAgLWV4ZWMgY2htb2Qg dStyd3gge30gXDs7IFwKKysJICAgIGZpOyBcCisrCSAgICBpZiB0ZXN0IC1kICQoc3JjZGlyKS8k JGZpbGUgJiYgdGVzdCAkJGQgIT0gJChzcmNkaXIpOyB0aGVuIFwKKysJICAgICAgY3AgLWZwUiAk KHNyY2RpcikvJCRmaWxlICIkKGRpc3RkaXIpJCRkaXIiIHx8IGV4aXQgMTsgXAorKwkgICAgICBm aW5kICIkKGRpc3RkaXIpLyQkZmlsZSIgLXR5cGUgZCAhIC1wZXJtIC03MDAgLWV4ZWMgY2htb2Qg dStyd3gge30gXDs7IFwKKysJICAgIGZpOyBcCisrCSAgICBjcCAtZnBSICQkZC8kJGZpbGUgIiQo ZGlzdGRpcikkJGRpciIgfHwgZXhpdCAxOyBcCisrCSAgZWxzZSBcCisrCSAgICB0ZXN0IC1mICIk KGRpc3RkaXIpLyQkZmlsZSIgXAorKwkgICAgfHwgY3AgLXAgJCRkLyQkZmlsZSAiJChkaXN0ZGly KS8kJGZpbGUiIFwKKysJICAgIHx8IGV4aXQgMTsgXAorKwkgIGZpOyBcCisrCWRvbmUKKytjaGVj ay1hbTogYWxsLWFtCisrY2hlY2s6IGNoZWNrLWFtCisrYWxsLWFtOiBNYWtlZmlsZSAkKFBST0dS QU1TKQorK2luc3RhbGxkaXJzOgorK2luc3RhbGw6IGluc3RhbGwtYW0KKytpbnN0YWxsLWV4ZWM6 IGluc3RhbGwtZXhlYy1hbQorK2luc3RhbGwtZGF0YTogaW5zdGFsbC1kYXRhLWFtCisrdW5pbnN0 YWxsOiB1bmluc3RhbGwtYW0KKysKKytpbnN0YWxsLWFtOiBhbGwtYW0KKysJQCQoTUFLRSkgJChB TV9NQUtFRkxBR1MpIGluc3RhbGwtZXhlYy1hbSBpbnN0YWxsLWRhdGEtYW0KKysKKytpbnN0YWxs Y2hlY2s6IGluc3RhbGxjaGVjay1hbQorK2luc3RhbGwtc3RyaXA6CisrCSQoTUFLRSkgJChBTV9N QUtFRkxBR1MpIElOU1RBTExfUFJPR1JBTT0iJChJTlNUQUxMX1NUUklQX1BST0dSQU0pIiBcCisr CSAgaW5zdGFsbF9zaF9QUk9HUkFNPSIkKElOU1RBTExfU1RSSVBfUFJPR1JBTSkiIElOU1RBTExf U1RSSVBfRkxBRz0tcyBcCisrCSAgYHRlc3QgLXogJyQoU1RSSVApJyB8fCBcCisrCSAgICBlY2hv ICJJTlNUQUxMX1BST0dSQU1fRU5WPVNUUklQUFJPRz0nJChTVFJJUCknImAgaW5zdGFsbAorK21v c3RseWNsZWFuLWdlbmVyaWM6CisrCisrY2xlYW4tZ2VuZXJpYzoKKysKKytkaXN0Y2xlYW4tZ2Vu ZXJpYzoKKysJLXRlc3QgLXogIiQoQ09ORklHX0NMRUFOX0ZJTEVTKSIgfHwgcm0gLWYgJChDT05G SUdfQ0xFQU5fRklMRVMpCisrCS10ZXN0IC4gPSAiJChzcmNkaXIpIiB8fCB0ZXN0IC16ICIkKENP TkZJR19DTEVBTl9WUEFUSF9GSUxFUykiIHx8IHJtIC1mICQoQ09ORklHX0NMRUFOX1ZQQVRIX0ZJ TEVTKQorKworK21haW50YWluZXItY2xlYW4tZ2VuZXJpYzoKKysJQGVjaG8gIlRoaXMgY29tbWFu ZCBpcyBpbnRlbmRlZCBmb3IgbWFpbnRhaW5lcnMgdG8gdXNlIgorKwlAZWNobyAiaXQgZGVsZXRl cyBmaWxlcyB0aGF0IG1heSByZXF1aXJlIHNwZWNpYWwgdG9vbHMgdG8gcmVidWlsZC4iCisrCS10 ZXN0IC16ICIkKE1BSU5UQUlORVJDTEVBTkZJTEVTKSIgfHwgcm0gLWYgJChNQUlOVEFJTkVSQ0xF QU5GSUxFUykKKytjbGVhbjogY2xlYW4tYW0KKysKKytjbGVhbi1hbTogY2xlYW4tZ2VuZXJpYyBj bGVhbi1saWJ0b29sIGNsZWFuLW5vaW5zdFBST0dSQU1TIFwKKysJbW9zdGx5Y2xlYW4tYW0KKysK KytkaXN0Y2xlYW46IGRpc3RjbGVhbi1hbQorKwktcm0gLXJmIC4vJChERVBESVIpCisrCS1ybSAt ZiBNYWtlZmlsZQorK2Rpc3RjbGVhbi1hbTogY2xlYW4tYW0gZGlzdGNsZWFuLWNvbXBpbGUgZGlz dGNsZWFuLWdlbmVyaWMgXAorKwlkaXN0Y2xlYW4tdGFncworKworK2R2aTogZHZpLWFtCisrCisr ZHZpLWFtOgorKworK2h0bWw6IGh0bWwtYW0KKysKKytodG1sLWFtOgorKworK2luZm86IGluZm8t YW0KKysKKytpbmZvLWFtOgorKworK2luc3RhbGwtZGF0YS1hbToKKysKKytpbnN0YWxsLWR2aTog aW5zdGFsbC1kdmktYW0KKysKKytpbnN0YWxsLWR2aS1hbToKKysKKytpbnN0YWxsLWV4ZWMtYW06 CisrCisraW5zdGFsbC1odG1sOiBpbnN0YWxsLWh0bWwtYW0KKysKKytpbnN0YWxsLWh0bWwtYW06 CisrCisraW5zdGFsbC1pbmZvOiBpbnN0YWxsLWluZm8tYW0KKysKKytpbnN0YWxsLWluZm8tYW06 CisrCisraW5zdGFsbC1tYW46CisrCisraW5zdGFsbC1wZGY6IGluc3RhbGwtcGRmLWFtCisrCisr aW5zdGFsbC1wZGYtYW06CisrCisraW5zdGFsbC1wczogaW5zdGFsbC1wcy1hbQorKworK2luc3Rh bGwtcHMtYW06CisrCisraW5zdGFsbGNoZWNrLWFtOgorKworK21haW50YWluZXItY2xlYW46IG1h aW50YWluZXItY2xlYW4tYW0KKysJLXJtIC1yZiAuLyQoREVQRElSKQorKwktcm0gLWYgTWFrZWZp bGUKKyttYWludGFpbmVyLWNsZWFuLWFtOiBkaXN0Y2xlYW4tYW0gbWFpbnRhaW5lci1jbGVhbi1n ZW5lcmljCisrCisrbW9zdGx5Y2xlYW46IG1vc3RseWNsZWFuLWFtCisrCisrbW9zdGx5Y2xlYW4t YW06IG1vc3RseWNsZWFuLWNvbXBpbGUgbW9zdGx5Y2xlYW4tZ2VuZXJpYyBcCisrCW1vc3RseWNs ZWFuLWxpYnRvb2wKKysKKytwZGY6IHBkZi1hbQorKworK3BkZi1hbToKKysKKytwczogcHMtYW0K KysKKytwcy1hbToKKysKKyt1bmluc3RhbGwtYW06CisrCisrLk1BS0U6IGluc3RhbGwtYW0gaW5z dGFsbC1zdHJpcAorKworKy5QSE9OWTogQ1RBR1MgR1RBR1MgYWxsIGFsbC1hbSBjaGVjayBjaGVj ay1hbSBjbGVhbiBjbGVhbi1nZW5lcmljIFwKKysJY2xlYW4tbGlidG9vbCBjbGVhbi1ub2luc3RQ Uk9HUkFNUyBjdGFncyBkaXN0Y2xlYW4gXAorKwlkaXN0Y2xlYW4tY29tcGlsZSBkaXN0Y2xlYW4t Z2VuZXJpYyBkaXN0Y2xlYW4tbGlidG9vbCBcCisrCWRpc3RjbGVhbi10YWdzIGRpc3RkaXIgZHZp IGR2aS1hbSBodG1sIGh0bWwtYW0gaW5mbyBpbmZvLWFtIFwKKysJaW5zdGFsbCBpbnN0YWxsLWFt IGluc3RhbGwtZGF0YSBpbnN0YWxsLWRhdGEtYW0gaW5zdGFsbC1kdmkgXAorKwlpbnN0YWxsLWR2 aS1hbSBpbnN0YWxsLWV4ZWMgaW5zdGFsbC1leGVjLWFtIGluc3RhbGwtaHRtbCBcCisrCWluc3Rh bGwtaHRtbC1hbSBpbnN0YWxsLWluZm8gaW5zdGFsbC1pbmZvLWFtIGluc3RhbGwtbWFuIFwKKysJ aW5zdGFsbC1wZGYgaW5zdGFsbC1wZGYtYW0gaW5zdGFsbC1wcyBpbnN0YWxsLXBzLWFtIFwKKysJ aW5zdGFsbC1zdHJpcCBpbnN0YWxsY2hlY2sgaW5zdGFsbGNoZWNrLWFtIGluc3RhbGxkaXJzIFwK KysJbWFpbnRhaW5lci1jbGVhbiBtYWludGFpbmVyLWNsZWFuLWdlbmVyaWMgbW9zdGx5Y2xlYW4g XAorKwltb3N0bHljbGVhbi1jb21waWxlIG1vc3RseWNsZWFuLWdlbmVyaWMgbW9zdGx5Y2xlYW4t bGlidG9vbCBcCisrCXBkZiBwZGYtYW0gcHMgcHMtYW0gdGFncyB1bmluc3RhbGwgdW5pbnN0YWxs LWFtCisrCisrQFNFVF9NQUtFQAorKworKyNub2Rpc3RfcGtnaW5jbHVkZV9IRUFERVJTID0gJChv cmFjbGVfdGVzdF9oX3NvdXJjZXMpCisrCisrIyBUZWxsIHZlcnNpb25zIFszLjU5LDMuNjMpIG9m IEdOVSBtYWtlIHRvIG5vdCBleHBvcnQgYWxsIHZhcmlhYmxlcy4KKysjIE90aGVyd2lzZSBhIHN5 c3RlbSBsaW1pdCAoZm9yIFN5c1YgYXQgbGVhc3QpIG1heSBiZSBleGNlZWRlZC4KKysuTk9FWFBP UlQ6CitkaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9vcmFjbGUvdGVz dC9zb3VyY2VzLm1rIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL29yYWNsZS90ZXN0 L3NvdXJjZXMubWsKKy0tLSBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL29yYWNsZS90 ZXN0L3NvdXJjZXMubWsJMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKKysrKyBz b2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9vcmFjbGUvdGVzdC9zb3VyY2VzLm1rCTIw MDktMDQtMTYgMTk6Mzc6MDYuMDAwMDAwMDAwICswMjAwCitAQCAtMCwwICsxLDIgQEAKKytvcmFj bGVfdGVzdF9oX3NvdXJjZXMgPQorK29yYWNsZV90ZXN0X2NjX3NvdXJjZXMgPSAkKHRvcF9zcmNk aXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3Rlc3QvdGVzdC1vcmFjbGUuY3BwCitkaWZmIC1OdXIg c29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9vcmFjbGUvdGVzdC90ZXN0LW9yYWNsZS5j cHAgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvb3JhY2xlL3Rlc3QvdGVzdC1vcmFj bGUuY3BwCistLS0gc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9vcmFjbGUvdGVzdC90 ZXN0LW9yYWNsZS5jcHAJMjAxMC0wMS0yMyAxNDo0NTo0NC4wMDAwMDAwMDAgKzAxMDAKKysrKyBz b2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9vcmFjbGUvdGVzdC90ZXN0LW9yYWNsZS5j cHAJMjAwOS0wNC0xNiAxOTozNzowNi4wMDAwMDAwMDAgKzAyMDAKK0BAIC01LDkgKzUsMTcgQEAK KyAvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisgLy8KKyAKKy0jaW5j bHVkZSAic29jaS5oIgorLSNpbmNsdWRlICJzb2NpLW9yYWNsZS5oIgorLSNpbmNsdWRlICJjb21t b24tdGVzdHMuaCIKKysvLworKyNpZiBkZWZpbmVkKFNPQ0lfSEVBREVSU19CVVJJRUQpCisrIyAg ICAgICBpbmNsdWRlIDxzb2NpL2NvcmUvc29jaS5oPgorKyMgICAgICAgaW5jbHVkZSA8c29jaS9i YWNrZW5kcy9vcmFjbGUvc29jaS1vcmFjbGUuaD4KKysjICAgICAgIGluY2x1ZGUgPHNvY2kvY29y ZS90ZXN0L2NvbW1vbi10ZXN0cy5oPgorKyNlbHNlCisrIwlpbmNsdWRlIDxzb2NpLmg+CisrIwlp bmNsdWRlIDxzb2NpLW9yYWNsZS5oPgorKyMgICAgICAgaW5jbHVkZSA8dGVzdC9jb21tb24tdGVz dHMuaD4KKysjZW5kaWYKKysvLworICNpbmNsdWRlIDxpb3N0cmVhbT4KKyAjaW5jbHVkZSA8c3Ry aW5nPgorICNpbmNsdWRlIDxjYXNzZXJ0PgorZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL3Nv Y2kvYmFja2VuZHMvb3JhY2xlL3ZlY3Rvci1pbnRvLXR5cGUuY3BwIHNvY2ktMy4wLjBfdHJlcDMw MC9zb2NpL2JhY2tlbmRzL29yYWNsZS92ZWN0b3ItaW50by10eXBlLmNwcAorLS0tIHNvY2ktMy4w LjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvb3JhY2xlL3ZlY3Rvci1pbnRvLXR5cGUuY3BwCTIwMTAt MDEtMjMgMTQ6NDU6NDQuMDAwMDAwMDAwICswMTAwCisrKysgc29jaS0zLjAuMF90cmVwMzAwL3Nv Y2kvYmFja2VuZHMvb3JhY2xlL3ZlY3Rvci1pbnRvLXR5cGUuY3BwCTIwMDktMDQtMTYgMTk6Mzc6 MDYuMDAwMDAwMDAwICswMjAwCitAQCAtNyw4ICs3LDE0IEBACisgCisgI2RlZmluZSBzb2NpX09S QUNMRV9TT1VSQ0UKKyAjaW5jbHVkZSAic29jaS1vcmFjbGUuaCIKKy0jaW5jbHVkZSAic3RhdGVt ZW50LmgiCisgI2luY2x1ZGUgImVycm9yLmgiCisrLy8KKysjaWYgZGVmaW5lZChTT0NJX0hFQURF UlNfQlVSSUVEKQorKyMgICAgICAgaW5jbHVkZSA8c29jaS9jb3JlL3N0YXRlbWVudC5oPgorKyNl bHNlCisrIwlpbmNsdWRlIDxzdGF0ZW1lbnQuaD4KKysjZW5kaWYKKysvLworICNpbmNsdWRlIDxj Y3R5cGU+CisgI2luY2x1ZGUgPGNzdGRpbz4KKyAjaW5jbHVkZSA8Y3N0cmluZz4KK2RpZmYgLU51 ciBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvY29tbW9uLmNwcCBz b2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL2NvbW1vbi5jcHAKKy0t LSBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvY29tbW9uLmNwcAky MDEwLTAxLTIzIDE0OjQ1OjQ0LjAwMDAwMDAwMCArMDEwMAorKysrIHNvY2ktMy4wLjBfdHJlcDMw MC9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvY29tbW9uLmNwcAkyMDA5LTA1LTA1IDIyOjMwOjUy LjAwMDAwMDAwMCArMDIwMAorQEAgLTYsNyArNiwxMiBAQAorIC8vCisgCisgI2luY2x1ZGUgImNv bW1vbi5oIgorLSNpbmNsdWRlIDxzb2NpLWJhY2tlbmQuaD4KKysvLworKyNpZiBkZWZpbmVkKFNP Q0lfSEVBREVSU19CVVJJRUQpCisrIyAgICAgICBpbmNsdWRlIDxzb2NpL2NvcmUvc29jaS1iYWNr ZW5kLmg+CisrI2Vsc2UKKysjCWluY2x1ZGUgPHNvY2ktYmFja2VuZC5oPgorKyNlbmRpZgorIC8v CisgI2luY2x1ZGUgPGNzdGRsaWI+CisgI2luY2x1ZGUgPGNzdGRpbz4KK2RpZmYgLU51ciBzb2Np LTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvTWFrZWZpbGUuYW0gc29jaS0z LjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9NYWtlZmlsZS5hbQorLS0tIHNv Y2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9NYWtlZmlsZS5hbQkxOTcw LTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAorKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9z b2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvTWFrZWZpbGUuYW0JMjAwOS0wNC0xNiAxOTozNzowNS4w MDAwMDAwMDAgKzAyMDAKK0BAIC0wLDAgKzEsMzAgQEAKKysjIyBiYWNrZW5kcy9wb3N0Z3Jlc3Fs IHN1Yi1kaXJlY3RvcnkKKytpbmNsdWRlICQodG9wX3NyY2RpcikvTWFrZWZpbGUuY29tbW9uCisr aW5jbHVkZSAkKHNyY2Rpcikvc291cmNlcy5taworKworK01BSU5UQUlORVJDTEVBTkZJTEVTID0g TWFrZWZpbGUuaW4KKysKKytTVUJESVJTID0gLiB0ZXN0CisrCisrI0VYVFJBX0RJU1RfRk9SX1NP Q0lfQ09NUEFUSUJJTElUWSA9IC5fY29tbW9uLmgKKysKKytFWFRSQV9ESVNUID0gJChFWFRSQV9E SVNUX0ZPUl9TT0NJX0NPTVBBVElCSUxJVFkpCisrCisraWYgSEFWRV9QT1NUR1JFU1FMCisrbGli X0xUTElCUkFSSUVTPSBsaWJzb2NpX3Bvc3RncmVzcWwubGEKKysKKytsaWJzb2NpX3Bvc3RncmVz cWxfbGFfU09VUkNFUz0gJChiY2tfcG9zdGdyZXNxbF9oX3NvdXJjZXMpICQoYmNrX3Bvc3RncmVz cWxfY2Nfc291cmNlcykgCisrbGlic29jaV9wb3N0Z3Jlc3FsX2xhX0NYWEZMQUdTID0gJChQT1NU R1JFU1FMX0NGTEFHUykKKytsaWJzb2NpX3Bvc3RncmVzcWxfbGFfTElCQUREID0KKytsaWJzb2Np X3Bvc3RncmVzcWxfbGFfTERGTEFHUyA9IFwKKysJJChCT09TVF9MSUJTKSAkKEJPT1NUX0RBVEVf VElNRV9MSUIpICQoQk9PU1RfUFJPR1JBTV9PUFRJT05TX0xJQikgXAorKwktdmVyc2lvbi1pbmZv ICQoR0VORVJJQ19MSUJSQVJZX1ZFUlNJT04pCisrCisrcGtnaW5jbHVkZV9IRUFERVJTID0gJCh0 b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvc29jaS1wb3N0Z3Jlc3FsLmgKKytl bmRpZgorK2lmIFNPQ0lfSEVBREVSU19CVVJJRUQKKytzb2NpX2luY2x1ZGVfZGlyID0gJChpbmNs dWRlZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwKKytlbHNlCisrc29jaV9pbmNsdWRlX2Rp ciA9ICQoaW5jbHVkZWRpcikKKytlbmRpZgorK3BrZ2luY2x1ZGVkaXIgPSAkKHNvY2lfaW5jbHVk ZV9kaXIpCitkaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9wb3N0Z3Jl c3FsL01ha2VmaWxlLmJhc2ljIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL3Bvc3Rn cmVzcWwvTWFrZWZpbGUuYmFzaWMKKy0tLSBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRz L3Bvc3RncmVzcWwvTWFrZWZpbGUuYmFzaWMJMjAxMC0wMS0yMyAxNDo0NTo0NC4wMDAwMDAwMDAg KzAxMDAKKysrKyBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL01h a2VmaWxlLmJhc2ljCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCitAQCAtMSw5 NSArMCwwIEBACistIyBUaGUgZm9sbG93aW5nIHZhcmlhYmxlIGlzIHNwZWNpZmljIHRvIHRoaXMg YmFja2VuZCBhbmQgaXRzIGNvcnJlY3QKKy0jIHZhbHVlcyBtaWdodCBkZXBlbmQgb24geW91ciBl bnZpcm9ubWVudCAtIGZlZWwgZnJlZSB0byBzZXQgaXQgYWNjb3JkaW5nbHkuCistCistUEdTUUxJ TkNMVURFRElSID0gLUkvdXNyL2luY2x1ZGUKKy0KKy0jIFRoZSByZXN0IG9mIHRoZSBNYWtlZmls ZSBpcyBpbmRlcGVudGVudCBvZiB0aGUgdGFyZ2V0IGVudmlyb25tZW50LgorLQorLUNPTVBJTEVS ID0gZysrCistQ1hYRkxBR1MgPSAtV2FsbCAtcGVkYW50aWMgLVduby1sb25nLWxvbmcKKy1DWFhG TEFHU1NPID0gJHtDWFhGTEFHU30gLWZQSUMKKy1JTkNMVURFRElSUyA9IC1JLi4vLi4vY29yZSAk e1BHU1FMSU5DTFVERURJUn0KKy0KKy0KKy1PQkpFQ1RTID0gYmxvYi5vIGZhY3RvcnkubyByb3ct aWQubyBzZXNzaW9uLm8gc3RhbmRhcmQtaW50by10eXBlLm8gXAorLQlzdGFuZGFyZC11c2UtdHlw ZS5vIHN0YXRlbWVudC5vIHZlY3Rvci1pbnRvLXR5cGUubyB2ZWN0b3ItdXNlLXR5cGUubyBcCist CWNvbW1vbi5vCistCistT0JKRUNUU1NPID0gYmxvYi1zLm8gZmFjdG9yeS1zLm8gcm93LWlkLXMu byBzZXNzaW9uLXMubyBcCistCXN0YW5kYXJkLWludG8tdHlwZS1zLm8gc3RhbmRhcmQtdXNlLXR5 cGUtcy5vIHN0YXRlbWVudC1zLm8gXAorLQl2ZWN0b3ItaW50by10eXBlLXMubyB2ZWN0b3ItdXNl LXR5cGUtcy5vIGNvbW1vbi1zLm8KKy0KKy0KKy1saWJzb2NpX3Bvc3RncmVzcWwuYSA6ICR7T0JK RUNUU30KKy0JYXIgcnYgJEAgJD8KKy0Jcm0gKi5vCistCistCistYmxvYi5vIDogYmxvYi5jcHAK Ky0JJHtDT01QSUxFUn0gLWMgJD8gJHtDWFhGTEFHU30gJHtJTkNMVURFRElSU30KKy0KKy1jb21t b24ubyA6IGNvbW1vbi5jcHAKKy0JJHtDT01QSUxFUn0gLWMgJD8gJHtDWFhGTEFHU30gJHtJTkNM VURFRElSU30KKy0KKy1mYWN0b3J5Lm8gOiBmYWN0b3J5LmNwcAorLQkke0NPTVBJTEVSfSAtYyAk PyAke0NYWEZMQUdTfSAke0lOQ0xVREVESVJTfQorLQorLXJvdy1pZC5vIDogcm93LWlkLmNwcAor LQkke0NPTVBJTEVSfSAtYyAkPyAke0NYWEZMQUdTfSAke0lOQ0xVREVESVJTfQorLQorLXNlc3Np b24ubyA6IHNlc3Npb24uY3BwCistCSR7Q09NUElMRVJ9IC1jICQ/ICR7Q1hYRkxBR1N9ICR7SU5D TFVERURJUlN9CistCistc3RhbmRhcmQtaW50by10eXBlLm8gOiBzdGFuZGFyZC1pbnRvLXR5cGUu Y3BwCistCSR7Q09NUElMRVJ9IC1jICQ/ICR7Q1hYRkxBR1N9ICR7SU5DTFVERURJUlN9CistCist c3RhbmRhcmQtdXNlLXR5cGUubyA6IHN0YW5kYXJkLXVzZS10eXBlLmNwcAorLQkke0NPTVBJTEVS fSAtYyAkPyAke0NYWEZMQUdTfSAke0lOQ0xVREVESVJTfQorLQorLXN0YXRlbWVudC5vIDogc3Rh dGVtZW50LmNwcAorLQkke0NPTVBJTEVSfSAtYyAkPyAke0NYWEZMQUdTfSAke0lOQ0xVREVESVJT fQorLQorLXZlY3Rvci1pbnRvLXR5cGUubyA6IHZlY3Rvci1pbnRvLXR5cGUuY3BwCistCSR7Q09N UElMRVJ9IC1jICQ/ICR7Q1hYRkxBR1N9ICR7SU5DTFVERURJUlN9CistCistdmVjdG9yLXVzZS10 eXBlLm8gOiB2ZWN0b3ItdXNlLXR5cGUuY3BwCistCSR7Q09NUElMRVJ9IC1jICQ/ICR7Q1hYRkxB R1N9ICR7SU5DTFVERURJUlN9CistCistCistc2hhcmVkIDogJHtPQkpFQ1RTU099CistCSR7Q09N UElMRVJ9IC1zaGFyZWQgLW8gbGlic29jaV9wb3N0Z3Jlc3FsLnNvICR7T0JKRUNUU1NPfQorLQly bSAqLm8KKy0KKy1ibG9iLXMubyA6IGJsb2IuY3BwCistCSR7Q09NUElMRVJ9IC1jIC1vICRAICQ/ ICR7Q1hYRkxBR1NTT30gJHtJTkNMVURFRElSU30KKy0KKy1jb21tb24tcy5vIDogY29tbW9uLmNw cAorLQkke0NPTVBJTEVSfSAtYyAtbyAkQCAkPyAke0NYWEZMQUdTU099ICR7SU5DTFVERURJUlN9 CistCistZmFjdG9yeS1zLm8gOiBmYWN0b3J5LmNwcAorLQkke0NPTVBJTEVSfSAtYyAtbyAkQCAk PyAke0NYWEZMQUdTU099ICR7SU5DTFVERURJUlN9CistCistcm93LWlkLXMubyA6IHJvdy1pZC5j cHAKKy0JJHtDT01QSUxFUn0gLWMgLW8gJEAgJD8gJHtDWFhGTEFHU1NPfSAke0lOQ0xVREVESVJT fQorLQorLXNlc3Npb24tcy5vIDogc2Vzc2lvbi5jcHAKKy0JJHtDT01QSUxFUn0gLWMgLW8gJEAg JD8gJHtDWFhGTEFHU1NPfSAke0lOQ0xVREVESVJTfQorLQorLXN0YW5kYXJkLWludG8tdHlwZS1z Lm8gOiBzdGFuZGFyZC1pbnRvLXR5cGUuY3BwCistCSR7Q09NUElMRVJ9IC1jIC1vICRAICQ/ICR7 Q1hYRkxBR1NTT30gJHtJTkNMVURFRElSU30KKy0KKy1zdGFuZGFyZC11c2UtdHlwZS1zLm8gOiBz dGFuZGFyZC11c2UtdHlwZS5jcHAKKy0JJHtDT01QSUxFUn0gLWMgLW8gJEAgJD8gJHtDWFhGTEFH U1NPfSAke0lOQ0xVREVESVJTfQorLQorLXN0YXRlbWVudC1zLm8gOiBzdGF0ZW1lbnQuY3BwCist CSR7Q09NUElMRVJ9IC1jIC1vICRAICQ/ICR7Q1hYRkxBR1NTT30gJHtJTkNMVURFRElSU30KKy0K Ky12ZWN0b3ItaW50by10eXBlLXMubyA6IHZlY3Rvci1pbnRvLXR5cGUuY3BwCistCSR7Q09NUElM RVJ9IC1jIC1vICRAICQ/ICR7Q1hYRkxBR1NTT30gJHtJTkNMVURFRElSU30KKy0KKy12ZWN0b3It dXNlLXR5cGUtcy5vIDogdmVjdG9yLXVzZS10eXBlLmNwcAorLQkke0NPTVBJTEVSfSAtYyAtbyAk QCAkPyAke0NYWEZMQUdTU099ICR7SU5DTFVERURJUlN9CistCistCistY2xlYW4gOgorLQlybSAt ZiBsaWJzb2NpX3Bvc3RncmVzcWwuYSBsaWJzb2NpX3Bvc3RncmVzcWwuc28KK2RpZmYgLU51ciBz b2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvTWFrZWZpbGUuaW4gc29j aS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9NYWtlZmlsZS5pbgorLS0t IHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9NYWtlZmlsZS5pbgkx OTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAorKysrIHNvY2ktMy4wLjBfdHJlcDMw MC9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvTWFrZWZpbGUuaW4JMjAxMC0wMS0yMyAxNDo0NDo1 Mi4wMDAwMDAwMDAgKzAxMDAKK0BAIC0wLDAgKzEsOTA0IEBACisrIyBNYWtlZmlsZS5pbiBnZW5l cmF0ZWQgYnkgYXV0b21ha2UgMS4xMS4xIGZyb20gTWFrZWZpbGUuYW0uCisrIyBAY29uZmlndXJl X2lucHV0QAorKworKyMgQ29weXJpZ2h0IChDKSAxOTk0LCAxOTk1LCAxOTk2LCAxOTk3LCAxOTk4 LCAxOTk5LCAyMDAwLCAyMDAxLCAyMDAyLAorKyMgMjAwMywgMjAwNCwgMjAwNSwgMjAwNiwgMjAw NywgMjAwOCwgMjAwOSAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLAorKyMgSW5jLgorKyMgVGhp cyBNYWtlZmlsZS5pbiBpcyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0 aW9uCisrIyBnaXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5IGFuZC9vciBkaXN0cmli dXRlIGl0LAorKyMgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbnMsIGFzIGxvbmcgYXMgdGhp cyBub3RpY2UgaXMgcHJlc2VydmVkLgorKworKyMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVk IGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisrIyBidXQgV0lUSE9VVCBBTlkg V0FSUkFOVFksIHRvIHRoZSBleHRlbnQgcGVybWl0dGVkIGJ5IGxhdzsgd2l0aG91dAorKyMgZXZl biB0aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1Ig QQorKyMgUEFSVElDVUxBUiBQVVJQT1NFLgorKworK0BTRVRfTUFLRUAKKysKKysKKytWUEFUSCA9 IEBzcmNkaXJACisrcGtnZGF0YWRpciA9ICQoZGF0YWRpcikvQFBBQ0tBR0VACisrcGtnbGliZGly ID0gJChsaWJkaXIpL0BQQUNLQUdFQAorK3BrZ2xpYmV4ZWNkaXIgPSAkKGxpYmV4ZWNkaXIpL0BQ QUNLQUdFQAorK2FtX19jZCA9IENEUEFUSD0iJCR7WlNIX1ZFUlNJT04rLn0kKFBBVEhfU0VQQVJB VE9SKSIgJiYgY2QKKytpbnN0YWxsX3NoX0RBVEEgPSAkKGluc3RhbGxfc2gpIC1jIC1tIDY0NAor K2luc3RhbGxfc2hfUFJPR1JBTSA9ICQoaW5zdGFsbF9zaCkgLWMKKytpbnN0YWxsX3NoX1NDUklQ VCA9ICQoaW5zdGFsbF9zaCkgLWMKKytJTlNUQUxMX0hFQURFUiA9ICQoSU5TVEFMTF9EQVRBKQor K3RyYW5zZm9ybSA9ICQocHJvZ3JhbV90cmFuc2Zvcm1fbmFtZSkKKytOT1JNQUxfSU5TVEFMTCA9 IDoKKytQUkVfSU5TVEFMTCA9IDoKKytQT1NUX0lOU1RBTEwgPSA6CisrTk9STUFMX1VOSU5TVEFM TCA9IDoKKytQUkVfVU5JTlNUQUxMID0gOgorK1BPU1RfVU5JTlNUQUxMID0gOgorK2J1aWxkX3Ry aXBsZXQgPSBAYnVpbGRACisraG9zdF90cmlwbGV0ID0gQGhvc3RACisrRElTVF9DT01NT04gPSAk KGFtX19wa2dpbmNsdWRlX0hFQURFUlNfRElTVCkgJChzcmNkaXIpL01ha2VmaWxlLmFtIFwKKysJ JChzcmNkaXIpL01ha2VmaWxlLmluICQoc3JjZGlyKS9zb3VyY2VzLm1rIFwKKysJJCh0b3Bfc3Jj ZGlyKS9NYWtlZmlsZS5jb21tb24KKytzdWJkaXIgPSBzb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwK KytBQ0xPQ0FMX000ID0gJCh0b3Bfc3JjZGlyKS9hY2xvY2FsLm00CisrYW1fX2FjbG9jYWxfbTRf ZGVwcyA9ICQodG9wX3NyY2RpcikvY29uZmlnL2F4X2Jvb3N0Lm00IFwKKysJJCh0b3Bfc3JjZGly KS9jb25maWcvYXhfbXlzcWwubTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9vcmFjbGVf b2NpLm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfcG9zdGdyZXNxbC5tNCBcCisrCSQo dG9wX3NyY2RpcikvY29uZmlnL2NwcHVuaXQubTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9s aWJ0b29sLm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcvbHRvcHRpb25zLm00IFwKKysJJCh0 b3Bfc3JjZGlyKS9jb25maWcvbHRzdWdhci5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2x0 dmVyc2lvbi5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2x0fm9ic29sZXRlLm00ICQodG9w X3NyY2RpcikvY29uZmlndXJlLmFjCisrYW1fX2NvbmZpZ3VyZV9kZXBzID0gJChhbV9fYWNsb2Nh bF9tNF9kZXBzKSAkKENPTkZJR1VSRV9ERVBFTkRFTkNJRVMpIFwKKysJJChBQ0xPQ0FMX000KQor K21raW5zdGFsbGRpcnMgPSAkKGluc3RhbGxfc2gpIC1kCisrQ09ORklHX0hFQURFUiA9ICQodG9w X2J1aWxkZGlyKS9zb2NpL2NvbmZpZy5oCisrQ09ORklHX0NMRUFOX0ZJTEVTID0KKytDT05GSUdf Q0xFQU5fVlBBVEhfRklMRVMgPQorK2FtX192cGF0aF9hZGpfc2V0dXAgPSBzcmNkaXJzdHJpcD1g ZWNobyAiJChzcmNkaXIpIiB8IHNlZCAnc3wufC58ZydgOworK2FtX192cGF0aF9hZGogPSBjYXNl ICQkcCBpbiBcCisrICAgICQoc3JjZGlyKS8qKSBmPWBlY2hvICIkJHAiIHwgc2VkICJzfF4kJHNy Y2RpcnN0cmlwL3x8ImA7OyBcCisrICAgICopIGY9JCRwOzsgXAorKyAgZXNhYzsKKythbV9fc3Ry aXBfZGlyID0gZj1gZWNobyAkJHAgfCBzZWQgLWUgJ3N8Xi4qL3x8J2A7CisrYW1fX2luc3RhbGxf bWF4ID0gNDAKKythbV9fbm9iYXNlX3N0cmlwX3NldHVwID0gXAorKyAgc3JjZGlyc3RyaXA9YGVj aG8gIiQoc3JjZGlyKSIgfCBzZWQgJ3MvW10uW14kJFxcKnxdL1xcXFwmL2cnYAorK2FtX19ub2Jh c2Vfc3RyaXAgPSBcCisrICBmb3IgcCBpbiAkJGxpc3Q7IGRvIGVjaG8gIiQkcCI7IGRvbmUgfCBz ZWQgLWUgInN8JCRzcmNkaXJzdHJpcC98fCIKKythbV9fbm9iYXNlX2xpc3QgPSAkKGFtX19ub2Jh c2Vfc3RyaXBfc2V0dXApOyBcCisrICBmb3IgcCBpbiAkJGxpc3Q7IGRvIGVjaG8gIiQkcCAkJHAi OyBkb25lIHwgXAorKyAgc2VkICJzfCAkJHNyY2RpcnN0cmlwL3wgfDsiJyAvIC4qXC8vIXMvIC4q LyAuLzsgcyxcKCAuKlwpL1teL10qJCQsXDEsJyB8IFwKKysgICQoQVdLKSAnQkVHSU4geyBmaWxl c1siLiJdID0gIiIgfSB7IGZpbGVzWyQkMl0gPSBmaWxlc1skJDJdICIgIiAkJDE7IFwKKysgICAg aWYgKCsrblskJDJdID09ICQoYW1fX2luc3RhbGxfbWF4KSkgXAorKyAgICAgIHsgcHJpbnQgJCQy LCBmaWxlc1skJDJdOyBuWyQkMl0gPSAwOyBmaWxlc1skJDJdID0gIiIgfSB9IFwKKysgICAgRU5E IHsgZm9yIChkaXIgaW4gZmlsZXMpIHByaW50IGRpciwgZmlsZXNbZGlyXSB9JworK2FtX19iYXNl X2xpc3QgPSBcCisrICBzZWQgJyQkIU47JCQhTjskJCFOOyQkIU47JCQhTjskJCFOOyQkIU47cy9c bi8gL2cnIHwgXAorKyAgc2VkICckJCFOOyQkIU47JCQhTjskJCFOO3MvXG4vIC9nJworK2FtX19p bnN0YWxsZGlycyA9ICIkKERFU1RESVIpJChsaWJkaXIpIiAiJChERVNURElSKSQocGtnaW5jbHVk ZWRpcikiCisrTFRMSUJSQVJJRVMgPSAkKGxpYl9MVExJQlJBUklFUykKKytsaWJzb2NpX3Bvc3Rn cmVzcWxfbGFfREVQRU5ERU5DSUVTID0KKythbV9fbGlic29jaV9wb3N0Z3Jlc3FsX2xhX1NPVVJD RVNfRElTVCA9ICBcCisrCSQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL2Nv bW1vbi5oIFwKKysJJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvc29jaS1w b3N0Z3Jlc3FsLmggXAorKwkkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9i bG9iLmNwcCBcCisrCSQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL2NvbW1v bi5jcHAgXAorKwkkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9mYWN0b3J5 LmNwcCBcCisrCSQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Jvdy1pZC5j cHAgXAorKwkkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9zZXNzaW9uLmNw cCBcCisrCSQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3N0YW5kYXJkLWlu dG8tdHlwZS5jcHAgXAorKwkkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9z dGFuZGFyZC11c2UtdHlwZS5jcHAgXAorKwkkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9z dGdyZXNxbC9zdGF0ZW1lbnQuY3BwIFwKKysJJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bv c3RncmVzcWwvdmVjdG9yLWludG8tdHlwZS5jcHAgXAorKwkkKHRvcF9zcmNkaXIpL3NvY2kvYmFj a2VuZHMvcG9zdGdyZXNxbC92ZWN0b3ItdXNlLXR5cGUuY3BwCisrYW1fX29iamVjdHNfMSA9Cisr YW1fX29iamVjdHNfMiA9IGxpYnNvY2lfcG9zdGdyZXNxbF9sYS1ibG9iLmxvIFwKKysJbGlic29j aV9wb3N0Z3Jlc3FsX2xhLWNvbW1vbi5sbyBcCisrCWxpYnNvY2lfcG9zdGdyZXNxbF9sYS1mYWN0 b3J5LmxvIFwKKysJbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXJvdy1pZC5sbyBcCisrCWxpYnNvY2lf cG9zdGdyZXNxbF9sYS1zZXNzaW9uLmxvIFwKKysJbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXN0YW5k YXJkLWludG8tdHlwZS5sbyBcCisrCWxpYnNvY2lfcG9zdGdyZXNxbF9sYS1zdGFuZGFyZC11c2Ut dHlwZS5sbyBcCisrCWxpYnNvY2lfcG9zdGdyZXNxbF9sYS1zdGF0ZW1lbnQubG8gXAorKwlsaWJz b2NpX3Bvc3RncmVzcWxfbGEtdmVjdG9yLWludG8tdHlwZS5sbyBcCisrCWxpYnNvY2lfcG9zdGdy ZXNxbF9sYS12ZWN0b3ItdXNlLXR5cGUubG8KKytASEFWRV9QT1NUR1JFU1FMX1RSVUVAYW1fbGli c29jaV9wb3N0Z3Jlc3FsX2xhX09CSkVDVFMgPSAgXAorK0BIQVZFX1BPU1RHUkVTUUxfVFJVRUAJ JChhbV9fb2JqZWN0c18xKSAkKGFtX19vYmplY3RzXzIpCisrbGlic29jaV9wb3N0Z3Jlc3FsX2xh X09CSkVDVFMgPSAkKGFtX2xpYnNvY2lfcG9zdGdyZXNxbF9sYV9PQkpFQ1RTKQorK2xpYnNvY2lf cG9zdGdyZXNxbF9sYV9MSU5LID0gJChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxB R1MpIFwKKysJJChMSUJUT09MRkxBR1MpIC0tbW9kZT1saW5rICQoQ1hYTEQpIFwKKysJJChsaWJz b2NpX3Bvc3RncmVzcWxfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIFwKKysJJChsaWJzb2NpX3Bv c3RncmVzcWxfbGFfTERGTEFHUykgJChMREZMQUdTKSAtbyAkQAorK0BIQVZFX1BPU1RHUkVTUUxf VFJVRUBhbV9saWJzb2NpX3Bvc3RncmVzcWxfbGFfcnBhdGggPSAtcnBhdGggXAorK0BIQVZFX1BP U1RHUkVTUUxfVFJVRUAJJChsaWJkaXIpCisrREVGQVVMVF9JTkNMVURFUyA9IC1JLkBhbV9faXNy Y0AgLUkkKHRvcF9idWlsZGRpcikvc29jaQorK2RlcGNvbXAgPSAkKFNIRUxMKSAkKHRvcF9zcmNk aXIpL2NvbmZpZy9kZXBjb21wCisrYW1fX2RlcGZpbGVzX21heWJlID0gZGVwZmlsZXMKKythbV9f bXYgPSBtdiAtZgorK0NYWENPTVBJTEUgPSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVE RVMpICQoSU5DTFVERVMpIFwKKysJJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChBTV9DWFhG TEFHUykgJChDWFhGTEFHUykKKytMVENYWENPTVBJTEUgPSAkKExJQlRPT0wpIC0tdGFnPUNYWCAk KEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIFwKKysJLS1tb2RlPWNvbXBpbGUgJChD WFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSBcCisrCSQoQU1fQ1BQ RkxBR1MpICQoQ1BQRkxBR1MpICQoQU1fQ1hYRkxBR1MpICQoQ1hYRkxBR1MpCisrQ1hYTEQgPSAk KENYWCkKKytDWFhMSU5LID0gJChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1Mp ICQoTElCVE9PTEZMQUdTKSBcCisrCS0tbW9kZT1saW5rICQoQ1hYTEQpICQoQU1fQ1hYRkxBR1Mp ICQoQ1hYRkxBR1MpICQoQU1fTERGTEFHUykgXAorKwkkKExERkxBR1MpIC1vICRACisrQ09NUElM RSA9ICQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQ UEZMQUdTKSBcCisrCSQoQ1BQRkxBR1MpICQoQU1fQ0ZMQUdTKSAkKENGTEFHUykKKytMVENPTVBJ TEUgPSAkKExJQlRPT0wpIC0tdGFnPUNDICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFH UykgXAorKwktLW1vZGU9Y29tcGlsZSAkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykg JChJTkNMVURFUykgXAorKwkkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKEFNX0NGTEFHUykg JChDRkxBR1MpCisrQ0NMRCA9ICQoQ0MpCisrTElOSyA9ICQoTElCVE9PTCkgLS10YWc9Q0MgJChB TV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSBcCisrCS0tbW9kZT1saW5rICQoQ0NMRCkg JChBTV9DRkxBR1MpICQoQ0ZMQUdTKSAkKEFNX0xERkxBR1MpIFwKKysJJChMREZMQUdTKSAtbyAk QAorK1NPVVJDRVMgPSAkKGxpYnNvY2lfcG9zdGdyZXNxbF9sYV9TT1VSQ0VTKQorK0RJU1RfU09V UkNFUyA9ICQoYW1fX2xpYnNvY2lfcG9zdGdyZXNxbF9sYV9TT1VSQ0VTX0RJU1QpCisrUkVDVVJT SVZFX1RBUkdFVFMgPSBhbGwtcmVjdXJzaXZlIGNoZWNrLXJlY3Vyc2l2ZSBkdmktcmVjdXJzaXZl IFwKKysJaHRtbC1yZWN1cnNpdmUgaW5mby1yZWN1cnNpdmUgaW5zdGFsbC1kYXRhLXJlY3Vyc2l2 ZSBcCisrCWluc3RhbGwtZHZpLXJlY3Vyc2l2ZSBpbnN0YWxsLWV4ZWMtcmVjdXJzaXZlIFwKKysJ aW5zdGFsbC1odG1sLXJlY3Vyc2l2ZSBpbnN0YWxsLWluZm8tcmVjdXJzaXZlIFwKKysJaW5zdGFs bC1wZGYtcmVjdXJzaXZlIGluc3RhbGwtcHMtcmVjdXJzaXZlIGluc3RhbGwtcmVjdXJzaXZlIFwK KysJaW5zdGFsbGNoZWNrLXJlY3Vyc2l2ZSBpbnN0YWxsZGlycy1yZWN1cnNpdmUgcGRmLXJlY3Vy c2l2ZSBcCisrCXBzLXJlY3Vyc2l2ZSB1bmluc3RhbGwtcmVjdXJzaXZlCisrYW1fX3BrZ2luY2x1 ZGVfSEVBREVSU19ESVNUID0gIFwKKysJJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3Rn cmVzcWwvc29jaS1wb3N0Z3Jlc3FsLmgKKytIRUFERVJTID0gJChwa2dpbmNsdWRlX0hFQURFUlMp CisrUkVDVVJTSVZFX0NMRUFOX1RBUkdFVFMgPSBtb3N0bHljbGVhbi1yZWN1cnNpdmUgY2xlYW4t cmVjdXJzaXZlCVwKKysgIGRpc3RjbGVhbi1yZWN1cnNpdmUgbWFpbnRhaW5lci1jbGVhbi1yZWN1 cnNpdmUKKytBTV9SRUNVUlNJVkVfVEFSR0VUUyA9ICQoUkVDVVJTSVZFX1RBUkdFVFM6LXJlY3Vy c2l2ZT0pIFwKKysJJChSRUNVUlNJVkVfQ0xFQU5fVEFSR0VUUzotcmVjdXJzaXZlPSkgdGFncyBU QUdTIGN0YWdzIENUQUdTIFwKKysJZGlzdGRpcgorK0VUQUdTID0gZXRhZ3MKKytDVEFHUyA9IGN0 YWdzCisrRElTVF9TVUJESVJTID0gJChTVUJESVJTKQorK0RJU1RGSUxFUyA9ICQoRElTVF9DT01N T04pICQoRElTVF9TT1VSQ0VTKSAkKFRFWElORk9TKSAkKEVYVFJBX0RJU1QpCisrYW1fX3JlbGF0 aXZpemUgPSBcCisrICBkaXIwPWBwd2RgOyBcCisrICBzZWRfZmlyc3Q9J3MsXlwoW14vXSpcKS8u KiQkLFwxLCc7IFwKKysgIHNlZF9yZXN0PSdzLF5bXi9dKi8qLCwnOyBcCisrICBzZWRfbGFzdD0n cyxeLiovXChbXi9dKlwpJCQsXDEsJzsgXAorKyAgc2VkX2J1dGxhc3Q9J3MsLypbXi9dKiQkLCwn OyBcCisrICB3aGlsZSB0ZXN0IC1uICIkJGRpcjEiOyBkbyBcCisrICAgIGZpcnN0PWBlY2hvICIk JGRpcjEiIHwgc2VkIC1lICIkJHNlZF9maXJzdCJgOyBcCisrICAgIGlmIHRlc3QgIiQkZmlyc3Qi ICE9ICIuIjsgdGhlbiBcCisrICAgICAgaWYgdGVzdCAiJCRmaXJzdCIgPSAiLi4iOyB0aGVuIFwK KysgICAgICAgIGRpcjI9YGVjaG8gIiQkZGlyMCIgfCBzZWQgLWUgIiQkc2VkX2xhc3QiYC8iJCRk aXIyIjsgXAorKyAgICAgICAgZGlyMD1gZWNobyAiJCRkaXIwIiB8IHNlZCAtZSAiJCRzZWRfYnV0 bGFzdCJgOyBcCisrICAgICAgZWxzZSBcCisrICAgICAgICBmaXJzdDI9YGVjaG8gIiQkZGlyMiIg fCBzZWQgLWUgIiQkc2VkX2ZpcnN0ImA7IFwKKysgICAgICAgIGlmIHRlc3QgIiQkZmlyc3QyIiA9 ICIkJGZpcnN0IjsgdGhlbiBcCisrICAgICAgICAgIGRpcjI9YGVjaG8gIiQkZGlyMiIgfCBzZWQg LWUgIiQkc2VkX3Jlc3QiYDsgXAorKyAgICAgICAgZWxzZSBcCisrICAgICAgICAgIGRpcjI9Ii4u LyQkZGlyMiI7IFwKKysgICAgICAgIGZpOyBcCisrICAgICAgICBkaXIwPSIkJGRpcjAiLyIkJGZp cnN0IjsgXAorKyAgICAgIGZpOyBcCisrICAgIGZpOyBcCisrICAgIGRpcjE9YGVjaG8gIiQkZGly MSIgfCBzZWQgLWUgIiQkc2VkX3Jlc3QiYDsgXAorKyAgZG9uZTsgXAorKyAgcmVsZGlyPSIkJGRp cjIiCisrcGtnaW5jbHVkZWRpciA9ICQoc29jaV9pbmNsdWRlX2RpcikKKytBQ0xPQ0FMID0gQEFD TE9DQUxACisrQU1UQVIgPSBAQU1UQVJACisrQVIgPSBAQVJACisrQVVUT0NPTkYgPSBAQVVUT0NP TkZACisrQVVUT0hFQURFUiA9IEBBVVRPSEVBREVSQAorK0FVVE9NQUtFID0gQEFVVE9NQUtFQAor K0FXSyA9IEBBV0tACisrQk9PU1RfQ0ZMQUdTID0gQEJPT1NUX0NGTEFHU0AKKytCT09TVF9EQVRF X1RJTUVfTElCID0gQEJPT1NUX0RBVEVfVElNRV9MSUJACisrQk9PU1RfRklMRVNZU1RFTV9MSUIg PSBAQk9PU1RfRklMRVNZU1RFTV9MSUJACisrQk9PU1RfSU9TVFJFQU1TX0xJQiA9IEBCT09TVF9J T1NUUkVBTVNfTElCQAorK0JPT1NUX0xJQlMgPSBAQk9PU1RfTElCU0AKKytCT09TVF9NUElfTElC ID0gQEJPT1NUX01QSV9MSUJACisrQk9PU1RfTVBJX1BZVEhPTl9MSUIgPSBAQk9PU1RfTVBJX1BZ VEhPTl9MSUJACisrQk9PU1RfUFJPR1JBTV9PUFRJT05TX0xJQiA9IEBCT09TVF9QUk9HUkFNX09Q VElPTlNfTElCQAorK0JPT1NUX1BZVEhPTl9MSUIgPSBAQk9PU1RfUFlUSE9OX0xJQkAKKytCT09T VF9SRUdFWF9MSUIgPSBAQk9PU1RfUkVHRVhfTElCQAorK0JPT1NUX1NFUklBTElaQVRJT05fTElC ID0gQEJPT1NUX1NFUklBTElaQVRJT05fTElCQAorK0JPT1NUX1NJR05BTFNfTElCID0gQEJPT1NU X1NJR05BTFNfTElCQAorK0JPT1NUX1NZU1RFTV9MSUIgPSBAQk9PU1RfU1lTVEVNX0xJQkAKKytC T09TVF9USFJFQURfTElCID0gQEJPT1NUX1RIUkVBRF9MSUJACisrQk9PU1RfVU5JVF9URVNUX0ZS QU1FV09SS19MSUIgPSBAQk9PU1RfVU5JVF9URVNUX0ZSQU1FV09SS19MSUJACisrQk9PU1RfVkVS U0lPTiA9IEBCT09TVF9WRVJTSU9OQAorK0JPT1NUX1dTRVJJQUxJWkFUSU9OX0xJQiA9IEBCT09T VF9XU0VSSUFMSVpBVElPTl9MSUJACisrQ0MgPSBAQ0NACisrQ0NERVBNT0RFID0gQENDREVQTU9E RUAKKytDRkxBR1MgPSBAQ0ZMQUdTQAorK0NQUCA9IEBDUFBACisrQ1BQRkxBR1MgPSBAQ1BQRkxB R1NACisrQ1BQVU5JVF9DRkxBR1MgPSBAQ1BQVU5JVF9DRkxBR1NACisrQ1BQVU5JVF9DT05GSUcg PSBAQ1BQVU5JVF9DT05GSUdACisrQ1BQVU5JVF9MSUJTID0gQENQUFVOSVRfTElCU0AKKytDUFBV TklUX1ZFUlNJT04gPSBAQ1BQVU5JVF9WRVJTSU9OQAorK0NYWCA9IEBDWFhACisrQ1hYQ1BQID0g QENYWENQUEAKKytDWFhERVBNT0RFID0gQENYWERFUE1PREVACisrQ1hYRkxBR1MgPSBAQ1hYRkxB R1NACisrQ1lHUEFUSF9XID0gQENZR1BBVEhfV0AKKytERUZTID0gQERFRlNACisrREVQRElSID0g QERFUERJUkAKKytEU1lNVVRJTCA9IEBEU1lNVVRJTEAKKytEVU1QQklOID0gQERVTVBCSU5ACisr RUNIT19DID0gQEVDSE9fQ0AKKytFQ0hPX04gPSBARUNIT19OQAorK0VDSE9fVCA9IEBFQ0hPX1RA CisrRUdSRVAgPSBARUdSRVBACisrRVhFRVhUID0gQEVYRUVYVEAKKytGR1JFUCA9IEBGR1JFUEAK KytHRU5FUklDX0xJQlJBUllfVkVSU0lPTiA9IEBHRU5FUklDX0xJQlJBUllfVkVSU0lPTkAKKytH UkVQID0gQEdSRVBACisrSU5TVEFMTCA9IEBJTlNUQUxMQAorK0lOU1RBTExfREFUQSA9IEBJTlNU QUxMX0RBVEFACisrSU5TVEFMTF9QUk9HUkFNID0gQElOU1RBTExfUFJPR1JBTUAKKytJTlNUQUxM X1NDUklQVCA9IEBJTlNUQUxMX1NDUklQVEAKKytJTlNUQUxMX1NUUklQX1BST0dSQU0gPSBASU5T VEFMTF9TVFJJUF9QUk9HUkFNQAorK0xEID0gQExEQAorK0xERkxBR1MgPSBATERGTEFHU0AKKytM SUJPQkpTID0gQExJQk9CSlNACisrTElCUyA9IEBMSUJTQAorK0xJQlRPT0wgPSBATElCVE9PTEAK KytMSVBPID0gQExJUE9ACisrTE5fUyA9IEBMTl9TQAorK0xUTElCT0JKUyA9IEBMVExJQk9CSlNA CisrTUFLRUlORk8gPSBATUFLRUlORk9ACisrTUtESVJfUCA9IEBNS0RJUl9QQAorK01ZU1FMX0NG TEFHUyA9IEBNWVNRTF9DRkxBR1NACisrTVlTUUxfQ19MSUIgPSBATVlTUUxfQ19MSUJACisrTVlT UUxfRElSUyA9IEBNWVNRTF9ESVJTQAorK01ZU1FMX0xJQlMgPSBATVlTUUxfTElCU0AKKytNWVNR TF9WRVJTSU9OID0gQE1ZU1FMX1ZFUlNJT05ACisrTk0gPSBATk1ACisrTk1FRElUID0gQE5NRURJ VEAKKytPQkpEVU1QID0gQE9CSkRVTVBACisrT0JKRVhUID0gQE9CSkVYVEAKKytPUkFDTEVfRElS UyA9IEBPUkFDTEVfRElSU0AKKytPUkFDTEVfT0NJX0NGTEFHUyA9IEBPUkFDTEVfT0NJX0NGTEFH U0AKKytPUkFDTEVfT0NJX0xERkxBR1MgPSBAT1JBQ0xFX09DSV9MREZMQUdTQAorK09SQUNMRV9P Q0lfVkVSU0lPTiA9IEBPUkFDTEVfT0NJX1ZFUlNJT05ACisrT1RPT0wgPSBAT1RPT0xACisrT1RP T0w2NCA9IEBPVE9PTDY0QAorK1BBQ0tBR0UgPSBAUEFDS0FHRUAKKytQQUNLQUdFX0JVR1JFUE9S VCA9IEBQQUNLQUdFX0JVR1JFUE9SVEAKKytQQUNLQUdFX05BTUUgPSBAUEFDS0FHRV9OQU1FQAor K1BBQ0tBR0VfU1RSSU5HID0gQFBBQ0tBR0VfU1RSSU5HQAorK1BBQ0tBR0VfVEFSTkFNRSA9IEBQ QUNLQUdFX1RBUk5BTUVACisrUEFDS0FHRV9WRVJTSU9OID0gQFBBQ0tBR0VfVkVSU0lPTkAKKytQ QVRIX1NFUEFSQVRPUiA9IEBQQVRIX1NFUEFSQVRPUkAKKytQRVJMID0gQFBFUkxACisrUEdfQ09O RklHID0gQFBHX0NPTkZJR0AKKytQT1NUR1JFU1FMX0NGTEFHUyA9IEBQT1NUR1JFU1FMX0NGTEFH U0AKKytQT1NUR1JFU1FMX0RJUlMgPSBAUE9TVEdSRVNRTF9ESVJTQAorK1BPU1RHUkVTUUxfTERG TEFHUyA9IEBQT1NUR1JFU1FMX0xERkxBR1NACisrUE9TVEdSRVNRTF9WRVJTSU9OID0gQFBPU1RH UkVTUUxfVkVSU0lPTkAKKytSQU5MSUIgPSBAUkFOTElCQAorK1JQTV9SRUxFQVNFID0gQFJQTV9S RUxFQVNFQAorK1NFRCA9IEBTRURACisrU0VUX01BS0UgPSBAU0VUX01BS0VACisrU0hFTEwgPSBA U0hFTExACisrU09DSV9IRUFERVJTX0JVUklFRCA9IEBTT0NJX0hFQURFUlNfQlVSSUVEQAorK1NP Q0lfTVlTUUxfSEVBREVSU19CVVJJRUQgPSBAU09DSV9NWVNRTF9IRUFERVJTX0JVUklFREAKKytT T0NJX1BPU1RHUkVTUUxfSEVBREVSU19CVVJJRUQgPSBAU09DSV9QT1NUR1JFU1FMX0hFQURFUlNf QlVSSUVEQAorK1NUUklQID0gQFNUUklQQAorK1VQTE9BRF9DT01NQU5EID0gQFVQTE9BRF9DT01N QU5EQAorK1ZFUlNJT04gPSBAVkVSU0lPTkAKKythYnNfYnVpbGRkaXIgPSBAYWJzX2J1aWxkZGly QAorK2Fic19zcmNkaXIgPSBAYWJzX3NyY2RpckAKKythYnNfdG9wX2J1aWxkZGlyID0gQGFic190 b3BfYnVpbGRkaXJACisrYWJzX3RvcF9zcmNkaXIgPSBAYWJzX3RvcF9zcmNkaXJACisrYWNfY3Rf Q0MgPSBAYWNfY3RfQ0NACisrYWNfY3RfQ1hYID0gQGFjX2N0X0NYWEAKKythY19jdF9EVU1QQklO ID0gQGFjX2N0X0RVTVBCSU5ACisrYW1fX2luY2x1ZGUgPSBAYW1fX2luY2x1ZGVACisrYW1fX2xl YWRpbmdfZG90ID0gQGFtX19sZWFkaW5nX2RvdEAKKythbV9fcXVvdGUgPSBAYW1fX3F1b3RlQAor K2FtX190YXIgPSBAYW1fX3RhckAKKythbV9fdW50YXIgPSBAYW1fX3VudGFyQAorK2JpbmRpciA9 IEBiaW5kaXJACisrYnVpbGQgPSBAYnVpbGRACisrYnVpbGRfYWxpYXMgPSBAYnVpbGRfYWxpYXNA CisrYnVpbGRfY3B1ID0gQGJ1aWxkX2NwdUAKKytidWlsZF9vcyA9IEBidWlsZF9vc0AKKytidWls ZF92ZW5kb3IgPSBAYnVpbGRfdmVuZG9yQAorK2J1aWxkZGlyID0gQGJ1aWxkZGlyQAorK2RhdGFk aXIgPSBAZGF0YWRpckAKKytkYXRhcm9vdGRpciA9IEBkYXRhcm9vdGRpckAKKytkaWZmX29rID0g QGRpZmZfb2tACisrZG9jZGlyID0gQGRvY2RpckAKKytkb3h5Z2VuX29rID0gQGRveHlnZW5fb2tA CisrZHZpZGlyID0gQGR2aWRpckAKKytkdmlwc19vayA9IEBkdmlwc19va0AKKytleGVjX3ByZWZp eCA9IEBleGVjX3ByZWZpeEAKKytnc19vayA9IEBnc19va0AKKytob3N0ID0gQGhvc3RACisraG9z dF9hbGlhcyA9IEBob3N0X2FsaWFzQAorK2hvc3RfY3B1ID0gQGhvc3RfY3B1QAorK2hvc3Rfb3Mg PSBAaG9zdF9vc0AKKytob3N0X3ZlbmRvciA9IEBob3N0X3ZlbmRvckAKKytodG1sZGlyID0gQGh0 bWxkaXJACisraW5jbHVkZWRpciA9IEBpbmNsdWRlZGlyQAorK2luZm9kaXIgPSBAaW5mb2RpckAK KytpbnN0YWxsX3NoID0gQGluc3RhbGxfc2hACisrbGF0ZXhfb2sgPSBAbGF0ZXhfb2tACisrbGli ZGlyID0gQGxpYmRpckAKKytsaWJleGVjZGlyID0gQGxpYmV4ZWNkaXJACisrbG9jYWxlZGlyID0g QGxvY2FsZWRpckAKKytsb2NhbHN0YXRlZGlyID0gQGxvY2Fsc3RhdGVkaXJACisrbHRfRUNITyA9 IEBsdF9FQ0hPQAorK21hbmRpciA9IEBtYW5kaXJACisrbWtkaXJfcCA9IEBta2Rpcl9wQAorK29s ZGluY2x1ZGVkaXIgPSBAb2xkaW5jbHVkZWRpckAKKytwZGZkaXIgPSBAcGRmZGlyQAorK3ByZWZp eCA9IEBwcmVmaXhACisrcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZSA9IEBwcm9ncmFtX3RyYW5zZm9y bV9uYW1lQAorK3BzZGlyID0gQHBzZGlyQAorK3NiaW5kaXIgPSBAc2JpbmRpckAKKytzZWRfb2sg PSBAc2VkX29rQAorK3NoYXJlZHN0YXRlZGlyID0gQHNoYXJlZHN0YXRlZGlyQAorK3NyY2RpciA9 IEBzcmNkaXJACisrc3lzY29uZmRpciA9IEBzeXNjb25mZGlyQAorK3RhcmdldF9hbGlhcyA9IEB0 YXJnZXRfYWxpYXNACisrdG9wX2J1aWxkX3ByZWZpeCA9IEB0b3BfYnVpbGRfcHJlZml4QAorK3Rv cF9idWlsZGRpciA9IEB0b3BfYnVpbGRkaXJACisrdG9wX3NyY2RpciA9IEB0b3Bfc3JjZGlyQAor K0FNX0NQUEZMQUdTID0gLUkkKHRvcF9idWlsZGRpcikgLUkkKHRvcF9zcmNkaXIpCisrYmNrX3Bv c3RncmVzcWxfaF9zb3VyY2VzID0gXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tl bmRzL3Bvc3RncmVzcWwvY29tbW9uLmggXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2Jh Y2tlbmRzL3Bvc3RncmVzcWwvc29jaS1wb3N0Z3Jlc3FsLmgKKysKKytiY2tfcG9zdGdyZXNxbF9j Y19zb3VyY2VzID0gXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3Rn cmVzcWwvYmxvYi5jcHAgXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bv c3RncmVzcWwvY29tbW9uLmNwcCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2Vu ZHMvcG9zdGdyZXNxbC9mYWN0b3J5LmNwcCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kv YmFja2VuZHMvcG9zdGdyZXNxbC9yb3ctaWQuY3BwIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikv c29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Nlc3Npb24uY3BwIFwKKysgICAgICAgICQodG9wX3Ny Y2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3N0YW5kYXJkLWludG8tdHlwZS5jcHAgXAor KyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvc3RhbmRhcmQt dXNlLXR5cGUuY3BwIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0 Z3Jlc3FsL3N0YXRlbWVudC5jcHAgXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tl bmRzL3Bvc3RncmVzcWwvdmVjdG9yLWludG8tdHlwZS5jcHAgXAorKyAgICAgICAgJCh0b3Bfc3Jj ZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvdmVjdG9yLXVzZS10eXBlLmNwcAorKworK01B SU5UQUlORVJDTEVBTkZJTEVTID0gTWFrZWZpbGUuaW4KKytTVUJESVJTID0gLiB0ZXN0CisrCisr I0VYVFJBX0RJU1RfRk9SX1NPQ0lfQ09NUEFUSUJJTElUWSA9IC5fY29tbW9uLmgKKytFWFRSQV9E SVNUID0gJChFWFRSQV9ESVNUX0ZPUl9TT0NJX0NPTVBBVElCSUxJVFkpCisrQEhBVkVfUE9TVEdS RVNRTF9UUlVFQGxpYl9MVExJQlJBUklFUyA9IGxpYnNvY2lfcG9zdGdyZXNxbC5sYQorK0BIQVZF X1BPU1RHUkVTUUxfVFJVRUBsaWJzb2NpX3Bvc3RncmVzcWxfbGFfU09VUkNFUyA9ICQoYmNrX3Bv c3RncmVzcWxfaF9zb3VyY2VzKSAkKGJja19wb3N0Z3Jlc3FsX2NjX3NvdXJjZXMpIAorK0BIQVZF X1BPU1RHUkVTUUxfVFJVRUBsaWJzb2NpX3Bvc3RncmVzcWxfbGFfQ1hYRkxBR1MgPSAkKFBPU1RH UkVTUUxfQ0ZMQUdTKQorK0BIQVZFX1BPU1RHUkVTUUxfVFJVRUBsaWJzb2NpX3Bvc3RncmVzcWxf bGFfTElCQUREID0gCisrQEhBVkVfUE9TVEdSRVNRTF9UUlVFQGxpYnNvY2lfcG9zdGdyZXNxbF9s YV9MREZMQUdTID0gXAorK0BIQVZFX1BPU1RHUkVTUUxfVFJVRUAJJChCT09TVF9MSUJTKSAkKEJP T1NUX0RBVEVfVElNRV9MSUIpICQoQk9PU1RfUFJPR1JBTV9PUFRJT05TX0xJQikgXAorK0BIQVZF X1BPU1RHUkVTUUxfVFJVRUAJLXZlcnNpb24taW5mbyAkKEdFTkVSSUNfTElCUkFSWV9WRVJTSU9O KQorKworK0BIQVZFX1BPU1RHUkVTUUxfVFJVRUBwa2dpbmNsdWRlX0hFQURFUlMgPSAkKHRvcF9z cmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9zb2NpLXBvc3RncmVzcWwuaAorK0BTT0NJ X0hFQURFUlNfQlVSSUVEX0ZBTFNFQHNvY2lfaW5jbHVkZV9kaXIgPSAkKGluY2x1ZGVkaXIpCisr QFNPQ0lfSEVBREVSU19CVVJJRURfVFJVRUBzb2NpX2luY2x1ZGVfZGlyID0gJChpbmNsdWRlZGly KS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwKKythbGw6IGFsbC1yZWN1cnNpdmUKKysKKysuU1VG RklYRVM6CisrLlNVRkZJWEVTOiAuY3BwIC5sbyAubyAub2JqCisrJChzcmNkaXIpL01ha2VmaWxl LmluOiAgJChzcmNkaXIpL01ha2VmaWxlLmFtICQodG9wX3NyY2RpcikvTWFrZWZpbGUuY29tbW9u ICQoc3JjZGlyKS9zb3VyY2VzLm1rICQoYW1fX2NvbmZpZ3VyZV9kZXBzKQorKwlAZm9yIGRlcCBp biAkPzsgZG8gXAorKwkgIGNhc2UgJyQoYW1fX2NvbmZpZ3VyZV9kZXBzKScgaW4gXAorKwkgICAg KiQkZGVwKikgXAorKwkgICAgICAoIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1f TUFLRUZMQUdTKSBhbS0tcmVmcmVzaCApIFwKKysJICAgICAgICAmJiB7IGlmIHRlc3QgLWYgJEA7 IHRoZW4gZXhpdCAwOyBlbHNlIGJyZWFrOyBmaTsgfTsgXAorKwkgICAgICBleGl0IDE7OyBcCisr CSAgZXNhYzsgXAorKwlkb25lOyBcCisrCWVjaG8gJyBjZCAkKHRvcF9zcmNkaXIpICYmICQoQVVU T01BS0UpIC0tZ251IHNvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9NYWtlZmlsZSc7IFwKKysJJChh bV9fY2QpICQodG9wX3NyY2RpcikgJiYgXAorKwkgICQoQVVUT01BS0UpIC0tZ251IHNvY2kvYmFj a2VuZHMvcG9zdGdyZXNxbC9NYWtlZmlsZQorKy5QUkVDSU9VUzogTWFrZWZpbGUKKytNYWtlZmls ZTogJChzcmNkaXIpL01ha2VmaWxlLmluICQodG9wX2J1aWxkZGlyKS9jb25maWcuc3RhdHVzCisr CUBjYXNlICckPycgaW4gXAorKwkgICpjb25maWcuc3RhdHVzKikgXAorKwkgICAgY2QgJCh0b3Bf YnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoOzsgXAorKwkg ICopIFwKKysJICAgIGVjaG8gJyBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChTSEVMTCkgLi9jb25m aWcuc3RhdHVzICQoc3ViZGlyKS8kQCAkKGFtX19kZXBmaWxlc19tYXliZSknOyBcCisrCSAgICBj ZCAkKHRvcF9idWlsZGRpcikgJiYgJChTSEVMTCkgLi9jb25maWcuc3RhdHVzICQoc3ViZGlyKS8k QCAkKGFtX19kZXBmaWxlc19tYXliZSk7OyBcCisrCWVzYWM7CisrCisrJCh0b3BfYnVpbGRkaXIp L2NvbmZpZy5zdGF0dXM6ICQodG9wX3NyY2RpcikvY29uZmlndXJlICQoQ09ORklHX1NUQVRVU19E RVBFTkRFTkNJRVMpCisrCWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZM QUdTKSBhbS0tcmVmcmVzaAorKworKyQodG9wX3NyY2RpcikvY29uZmlndXJlOiAgJChhbV9fY29u ZmlndXJlX2RlcHMpCisrCWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZM QUdTKSBhbS0tcmVmcmVzaAorKyQoQUNMT0NBTF9NNCk6ICAkKGFtX19hY2xvY2FsX200X2RlcHMp CisrCWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVm cmVzaAorKyQoYW1fX2FjbG9jYWxfbTRfZGVwcyk6CisraW5zdGFsbC1saWJMVExJQlJBUklFUzog JChsaWJfTFRMSUJSQVJJRVMpCisrCUAkKE5PUk1BTF9JTlNUQUxMKQorKwl0ZXN0IC16ICIkKGxp YmRpcikiIHx8ICQoTUtESVJfUCkgIiQoREVTVERJUikkKGxpYmRpcikiCisrCUBsaXN0PSckKGxp Yl9MVExJQlJBUklFUyknOyB0ZXN0IC1uICIkKGxpYmRpcikiIHx8IGxpc3Q9OyBcCisrCWxpc3Qy PTsgZm9yIHAgaW4gJCRsaXN0OyBkbyBcCisrCSAgaWYgdGVzdCAtZiAkJHA7IHRoZW4gXAorKwkg ICAgbGlzdDI9IiQkbGlzdDIgJCRwIjsgXAorKwkgIGVsc2UgOjsgZmk7IFwKKysJZG9uZTsgXAor Kwl0ZXN0IC16ICIkJGxpc3QyIiB8fCB7IFwKKysJICBlY2hvICIgJChMSUJUT09MKSAkKEFNX0xJ QlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1pbnN0YWxsICQoSU5TVEFMTCkgJChJ TlNUQUxMX1NUUklQX0ZMQUcpICQkbGlzdDIgJyQoREVTVERJUikkKGxpYmRpciknIjsgXAorKwkg ICQoTElCVE9PTCkgJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9aW5z dGFsbCAkKElOU1RBTEwpICQoSU5TVEFMTF9TVFJJUF9GTEFHKSAkJGxpc3QyICIkKERFU1RESVIp JChsaWJkaXIpIjsgXAorKwl9CisrCisrdW5pbnN0YWxsLWxpYkxUTElCUkFSSUVTOgorKwlAJChO T1JNQUxfVU5JTlNUQUxMKQorKwlAbGlzdD0nJChsaWJfTFRMSUJSQVJJRVMpJzsgdGVzdCAtbiAi JChsaWJkaXIpIiB8fCBsaXN0PTsgXAorKwlmb3IgcCBpbiAkJGxpc3Q7IGRvIFwKKysJICAkKGFt X19zdHJpcF9kaXIpIFwKKysJICBlY2hvICIgJChMSUJUT09MKSAkKEFNX0xJQlRPT0xGTEFHUykg JChMSUJUT09MRkxBR1MpIC0tbW9kZT11bmluc3RhbGwgcm0gLWYgJyQoREVTVERJUikkKGxpYmRp cikvJCRmJyI7IFwKKysJICAkKExJQlRPT0wpICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xG TEFHUykgLS1tb2RlPXVuaW5zdGFsbCBybSAtZiAiJChERVNURElSKSQobGliZGlyKS8kJGYiOyBc CisrCWRvbmUKKysKKytjbGVhbi1saWJMVExJQlJBUklFUzoKKysJLXRlc3QgLXogIiQobGliX0xU TElCUkFSSUVTKSIgfHwgcm0gLWYgJChsaWJfTFRMSUJSQVJJRVMpCisrCUBsaXN0PSckKGxpYl9M VExJQlJBUklFUyknOyBmb3IgcCBpbiAkJGxpc3Q7IGRvIFwKKysJICBkaXI9ImBlY2hvICQkcCB8 IHNlZCAtZSAnc3wvW14vXSokJHx8J2AiOyBcCisrCSAgdGVzdCAiJCRkaXIiICE9ICIkJHAiIHx8 IGRpcj0uOyBcCisrCSAgZWNobyAicm0gLWYgXCIkJHtkaXJ9L3NvX2xvY2F0aW9uc1wiIjsgXAor KwkgIHJtIC1mICIkJHtkaXJ9L3NvX2xvY2F0aW9ucyI7IFwKKysJZG9uZQorK2xpYnNvY2lfcG9z dGdyZXNxbC5sYTogJChsaWJzb2NpX3Bvc3RncmVzcWxfbGFfT0JKRUNUUykgJChsaWJzb2NpX3Bv c3RncmVzcWxfbGFfREVQRU5ERU5DSUVTKSAKKysJJChsaWJzb2NpX3Bvc3RncmVzcWxfbGFfTElO SykgJChhbV9saWJzb2NpX3Bvc3RncmVzcWxfbGFfcnBhdGgpICQobGlic29jaV9wb3N0Z3Jlc3Fs X2xhX09CSkVDVFMpICQobGlic29jaV9wb3N0Z3Jlc3FsX2xhX0xJQkFERCkgJChMSUJTKQorKwor K21vc3RseWNsZWFuLWNvbXBpbGU6CisrCS1ybSAtZiAqLiQoT0JKRVhUKQorKworK2Rpc3RjbGVh bi1jb21waWxlOgorKwktcm0gLWYgKi50YWIuYworKworK0BBTURFUF9UUlVFQEBhbV9faW5jbHVk ZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9saWJzb2NpX3Bvc3RncmVzcWxfbGEtYmxvYi5QbG9A YW1fX3F1b3RlQAorK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQ RElSKS9saWJzb2NpX3Bvc3RncmVzcWxfbGEtY29tbW9uLlBsb0BhbV9fcXVvdGVACisrQEFNREVQ X1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL2xpYnNvY2lfcG9zdGdy ZXNxbF9sYS1mYWN0b3J5LlBsb0BhbV9fcXVvdGVACisrQEFNREVQX1RSVUVAQGFtX19pbmNsdWRl QCBAYW1fX3F1b3RlQC4vJChERVBESVIpL2xpYnNvY2lfcG9zdGdyZXNxbF9sYS1yb3ctaWQuUGxv QGFtX19xdW90ZUAKKytAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERF UERJUikvbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXNlc3Npb24uUGxvQGFtX19xdW90ZUAKKytAQU1E RVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvbGlic29jaV9wb3N0 Z3Jlc3FsX2xhLXN0YW5kYXJkLWludG8tdHlwZS5QbG9AYW1fX3F1b3RlQAorK0BBTURFUF9UUlVF QEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9saWJzb2NpX3Bvc3RncmVzcWxf bGEtc3RhbmRhcmQtdXNlLXR5cGUuUGxvQGFtX19xdW90ZUAKKytAQU1ERVBfVFJVRUBAYW1fX2lu Y2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXN0YXRl bWVudC5QbG9AYW1fX3F1b3RlQAorK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90 ZUAuLyQoREVQRElSKS9saWJzb2NpX3Bvc3RncmVzcWxfbGEtdmVjdG9yLWludG8tdHlwZS5QbG9A YW1fX3F1b3RlQAorK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQ RElSKS9saWJzb2NpX3Bvc3RncmVzcWxfbGEtdmVjdG9yLXVzZS10eXBlLlBsb0BhbV9fcXVvdGVA CisrCisrLmNwcC5vOgorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKENYWENPTVBJTEUpIC1NVCAk QCAtTUQgLU1QIC1NRiAkKERFUERJUikvJCouVHBvIC1jIC1vICRAICQ8CisrQGFtX19mYXN0ZGVw Q1hYX1RSVUVACSQoYW1fX212KSAkKERFUERJUikvJCouVHBvICQoREVQRElSKS8kKi5QbworK0BB TURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSckPCcgb2JqZWN0PSckQCcg bGlidG9vbD1ubyBAQU1ERVBCQUNLU0xBU0hACisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hY X0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBC QUNLU0xBU0hACisrQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKENYWENPTVBJTEUpIC1jIC1vICRA ICQ8CisrCisrLmNwcC5vYmo6CisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoQ1hYQ09NUElMRSkg LU1UICRAIC1NRCAtTVAgLU1GICQoREVQRElSKS8kKi5UcG8gLWMgLW8gJEAgYCQoQ1lHUEFUSF9X KSAnJDwnYAorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKGFtX19tdikgJChERVBESVIpLyQqLlRw byAkKERFUERJUikvJCouUG8KKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNv dXJjZT0nJDwnIG9iamVjdD0nJEAnIGxpYnRvb2w9bm8gQEFNREVQQkFDS1NMQVNIQAorK0BBTURF UF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENYWERFUE1P REUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJ JChDWFhDT01QSUxFKSAtYyAtbyAkQCBgJChDWUdQQVRIX1cpICckPCdgCisrCisrLmNwcC5sbzoK KytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChMVENYWENPTVBJTEUpIC1NVCAkQCAtTUQgLU1QIC1N RiAkKERFUERJUikvJCouVHBvIC1jIC1vICRAICQ8CisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQo YW1fX212KSAkKERFUERJUikvJCouVHBvICQoREVQRElSKS8kKi5QbG8KKytAQU1ERVBfVFJVRUBA YW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJDwnIG9iamVjdD0nJEAnIGxpYnRvb2w9eWVz IEBBTURFUEJBQ0tTTEFTSEAKKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURF UERJUj0kKERFUERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAK KytAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQoTFRDWFhDT01QSUxFKSAtYyAtbyAkQCAkPAorKwor K2xpYnNvY2lfcG9zdGdyZXNxbF9sYS1ibG9iLmxvOiAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2Vu ZHMvcG9zdGdyZXNxbC9ibG9iLmNwcAorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKExJQlRPT0wp ICAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29t cGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1f Q1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9wb3N0Z3Jlc3FsX2xhX0NYWEZMQUdTKSAk KENYWEZMQUdTKSAtTVQgbGlic29jaV9wb3N0Z3Jlc3FsX2xhLWJsb2IubG8gLU1EIC1NUCAtTUYg JChERVBESVIpL2xpYnNvY2lfcG9zdGdyZXNxbF9sYS1ibG9iLlRwbyAtYyAtbyBsaWJzb2NpX3Bv c3RncmVzcWxfbGEtYmxvYi5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRz L3Bvc3RncmVzcWwvYmxvYi5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikv c29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL2Jsb2IuY3BwCisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVA CSQoYW1fX212KSAkKERFUERJUikvbGlic29jaV9wb3N0Z3Jlc3FsX2xhLWJsb2IuVHBvICQoREVQ RElSKS9saWJzb2NpX3Bvc3RncmVzcWxfbGEtYmxvYi5QbG8KKytAQU1ERVBfVFJVRUBAYW1fX2Zh c3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3Rn cmVzcWwvYmxvYi5jcHAnIG9iamVjdD0nbGlic29jaV9wb3N0Z3Jlc3FsX2xhLWJsb2IubG8nIGxp YnRvb2w9eWVzIEBBTURFUEJBQ0tTTEFTSEAKKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhf RkFMU0VACURFUERJUj0kKERFUERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJB Q0tTTEFTSEAKKytAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQoTElCVE9PTCkgIC0tdGFnPUNYWCAk KEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAk KERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChD UFBGTEFHUykgJChsaWJzb2NpX3Bvc3RncmVzcWxfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1j IC1vIGxpYnNvY2lfcG9zdGdyZXNxbF9sYS1ibG9iLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIp L3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9ibG9iLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydg JCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvYmxvYi5jcHAKKysKKytsaWJz b2NpX3Bvc3RncmVzcWxfbGEtY29tbW9uLmxvOiAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMv cG9zdGdyZXNxbC9jb21tb24uY3BwCisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoTElCVE9PTCkg IC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21w aWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9D UFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX3Bvc3RncmVzcWxfbGFfQ1hYRkxBR1MpICQo Q1hYRkxBR1MpIC1NVCBsaWJzb2NpX3Bvc3RncmVzcWxfbGEtY29tbW9uLmxvIC1NRCAtTVAgLU1G ICQoREVQRElSKS9saWJzb2NpX3Bvc3RncmVzcWxfbGEtY29tbW9uLlRwbyAtYyAtbyBsaWJzb2Np X3Bvc3RncmVzcWxfbGEtY29tbW9uLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFj a2VuZHMvcG9zdGdyZXNxbC9jb21tb24uY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9z cmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9jb21tb24uY3BwCisrQGFtX19mYXN0ZGVw Q1hYX1RSVUVACSQoYW1fX212KSAkKERFUERJUikvbGlic29jaV9wb3N0Z3Jlc3FsX2xhLWNvbW1v bi5UcG8gJChERVBESVIpL2xpYnNvY2lfcG9zdGdyZXNxbF9sYS1jb21tb24uUGxvCisrQEFNREVQ X1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQodG9wX3NyY2Rpcikvc29jaS9i YWNrZW5kcy9wb3N0Z3Jlc3FsL2NvbW1vbi5jcHAnIG9iamVjdD0nbGlic29jaV9wb3N0Z3Jlc3Fs X2xhLWNvbW1vbi5sbycgbGlidG9vbD15ZXMgQEFNREVQQkFDS1NMQVNIQAorK0BBTURFUF9UUlVF QEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENYWERFUE1PREUpICQo ZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChMSUJU T09MKSAgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2Rl PWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAk KEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfcG9zdGdyZXNxbF9sYV9DWFhGTEFH UykgJChDWFhGTEFHUykgLWMgLW8gbGlic29jaV9wb3N0Z3Jlc3FsX2xhLWNvbW1vbi5sbyBgdGVz dCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvY29tbW9uLmNwcCcg fHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVz cWwvY29tbW9uLmNwcAorKworK2xpYnNvY2lfcG9zdGdyZXNxbF9sYS1mYWN0b3J5LmxvOiAkKHRv cF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9mYWN0b3J5LmNwcAorK0BhbV9fZmFz dGRlcENYWF9UUlVFQAkkKExJQlRPT0wpICAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQo TElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5D TFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9w b3N0Z3Jlc3FsX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtTVQgbGlic29jaV9wb3N0Z3Jlc3Fs X2xhLWZhY3RvcnkubG8gLU1EIC1NUCAtTUYgJChERVBESVIpL2xpYnNvY2lfcG9zdGdyZXNxbF9s YS1mYWN0b3J5LlRwbyAtYyAtbyBsaWJzb2NpX3Bvc3RncmVzcWxfbGEtZmFjdG9yeS5sbyBgdGVz dCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvZmFjdG9yeS5jcHAn IHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jl c3FsL2ZhY3RvcnkuY3BwCisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoYW1fX212KSAkKERFUERJ UikvbGlic29jaV9wb3N0Z3Jlc3FsX2xhLWZhY3RvcnkuVHBvICQoREVQRElSKS9saWJzb2NpX3Bv c3RncmVzcWxfbGEtZmFjdG9yeS5QbG8KKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFM U0VACXNvdXJjZT0nJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvZmFjdG9y eS5jcHAnIG9iamVjdD0nbGlic29jaV9wb3N0Z3Jlc3FsX2xhLWZhY3RvcnkubG8nIGxpYnRvb2w9 eWVzIEBBTURFUEJBQ0tTTEFTSEAKKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VA CURFUERJUj0kKERFUERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFT SEAKKytAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQoTElCVE9PTCkgIC0tdGFnPUNYWCAkKEFNX0xJ QlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMp ICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFH UykgJChsaWJzb2NpX3Bvc3RncmVzcWxfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1jIC1vIGxp YnNvY2lfcG9zdGdyZXNxbF9sYS1mYWN0b3J5LmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3Nv Y2kvYmFja2VuZHMvcG9zdGdyZXNxbC9mYWN0b3J5LmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydg JCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvZmFjdG9yeS5jcHAKKysKKyts aWJzb2NpX3Bvc3RncmVzcWxfbGEtcm93LWlkLmxvOiAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2Vu ZHMvcG9zdGdyZXNxbC9yb3ctaWQuY3BwCisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoTElCVE9P TCkgIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1j b21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChB TV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX3Bvc3RncmVzcWxfbGFfQ1hYRkxBR1Mp ICQoQ1hYRkxBR1MpIC1NVCBsaWJzb2NpX3Bvc3RncmVzcWxfbGEtcm93LWlkLmxvIC1NRCAtTVAg LU1GICQoREVQRElSKS9saWJzb2NpX3Bvc3RncmVzcWxfbGEtcm93LWlkLlRwbyAtYyAtbyBsaWJz b2NpX3Bvc3RncmVzcWxfbGEtcm93LWlkLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kv YmFja2VuZHMvcG9zdGdyZXNxbC9yb3ctaWQuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRv cF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9yb3ctaWQuY3BwCisrQGFtX19mYXN0 ZGVwQ1hYX1RSVUVACSQoYW1fX212KSAkKERFUERJUikvbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXJv dy1pZC5UcG8gJChERVBESVIpL2xpYnNvY2lfcG9zdGdyZXNxbF9sYS1yb3ctaWQuUGxvCisrQEFN REVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQodG9wX3NyY2Rpcikvc29j aS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Jvdy1pZC5jcHAnIG9iamVjdD0nbGlic29jaV9wb3N0Z3Jl c3FsX2xhLXJvdy1pZC5sbycgbGlidG9vbD15ZXMgQEFNREVQQkFDS1NMQVNIQAorK0BBTURFUF9U UlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENYWERFUE1PREUp ICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChM SUJUT09MKSAgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1t b2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVT KSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfcG9zdGdyZXNxbF9sYV9DWFhG TEFHUykgJChDWFhGTEFHUykgLWMgLW8gbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXJvdy1pZC5sbyBg dGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvcm93LWlkLmNw cCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3Rn cmVzcWwvcm93LWlkLmNwcAorKworK2xpYnNvY2lfcG9zdGdyZXNxbF9sYS1zZXNzaW9uLmxvOiAk KHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9zZXNzaW9uLmNwcAorK0BhbV9f ZmFzdGRlcENYWF9UUlVFQAkkKExJQlRPT0wpICAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1Mp ICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRf SU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29j aV9wb3N0Z3Jlc3FsX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtTVQgbGlic29jaV9wb3N0Z3Jl c3FsX2xhLXNlc3Npb24ubG8gLU1EIC1NUCAtTUYgJChERVBESVIpL2xpYnNvY2lfcG9zdGdyZXNx bF9sYS1zZXNzaW9uLlRwbyAtYyAtbyBsaWJzb2NpX3Bvc3RncmVzcWxfbGEtc2Vzc2lvbi5sbyBg dGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvc2Vzc2lvbi5j cHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0 Z3Jlc3FsL3Nlc3Npb24uY3BwCisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoYW1fX212KSAkKERF UERJUikvbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXNlc3Npb24uVHBvICQoREVQRElSKS9saWJzb2Np X3Bvc3RncmVzcWxfbGEtc2Vzc2lvbi5QbG8KKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhf RkFMU0VACXNvdXJjZT0nJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvc2Vz c2lvbi5jcHAnIG9iamVjdD0nbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXNlc3Npb24ubG8nIGxpYnRv b2w9eWVzIEBBTURFUEJBQ0tTTEFTSEAKKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFM U0VACURFUERJUj0kKERFUERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tT TEFTSEAKKytAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQoTElCVE9PTCkgIC0tdGFnPUNYWCAkKEFN X0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERF RlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBG TEFHUykgJChsaWJzb2NpX3Bvc3RncmVzcWxfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1jIC1v IGxpYnNvY2lfcG9zdGdyZXNxbF9sYS1zZXNzaW9uLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIp L3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9zZXNzaW9uLmNwcCcgfHwgZWNobyAnJChzcmNkaXIp LydgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvc2Vzc2lvbi5jcHAKKysK KytsaWJzb2NpX3Bvc3RncmVzcWxfbGEtc3RhbmRhcmQtaW50by10eXBlLmxvOiAkKHRvcF9zcmNk aXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9zdGFuZGFyZC1pbnRvLXR5cGUuY3BwCisrQGFt X19mYXN0ZGVwQ1hYX1RSVUVACSQoTElCVE9PTCkgIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFH UykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVM VF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJz b2NpX3Bvc3RncmVzcWxfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1NVCBsaWJzb2NpX3Bvc3Rn cmVzcWxfbGEtc3RhbmRhcmQtaW50by10eXBlLmxvIC1NRCAtTVAgLU1GICQoREVQRElSKS9saWJz b2NpX3Bvc3RncmVzcWxfbGEtc3RhbmRhcmQtaW50by10eXBlLlRwbyAtYyAtbyBsaWJzb2NpX3Bv c3RncmVzcWxfbGEtc3RhbmRhcmQtaW50by10eXBlLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIp L3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9zdGFuZGFyZC1pbnRvLXR5cGUuY3BwJyB8fCBlY2hv ICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9zdGFu ZGFyZC1pbnRvLXR5cGUuY3BwCisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoYW1fX212KSAkKERF UERJUikvbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXN0YW5kYXJkLWludG8tdHlwZS5UcG8gJChERVBE SVIpL2xpYnNvY2lfcG9zdGdyZXNxbF9sYS1zdGFuZGFyZC1pbnRvLXR5cGUuUGxvCisrQEFNREVQ X1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQodG9wX3NyY2Rpcikvc29jaS9i YWNrZW5kcy9wb3N0Z3Jlc3FsL3N0YW5kYXJkLWludG8tdHlwZS5jcHAnIG9iamVjdD0nbGlic29j aV9wb3N0Z3Jlc3FsX2xhLXN0YW5kYXJkLWludG8tdHlwZS5sbycgbGlidG9vbD15ZXMgQEFNREVQ QkFDS1NMQVNIQAorK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQo REVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorK0BhbV9f ZmFzdGRlcENYWF9GQUxTRUAJJChMSUJUT09MKSAgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdT KSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxU X0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNv Y2lfcG9zdGdyZXNxbF9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLWMgLW8gbGlic29jaV9wb3N0 Z3Jlc3FsX2xhLXN0YW5kYXJkLWludG8tdHlwZS5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9z b2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvc3RhbmRhcmQtaW50by10eXBlLmNwcCcgfHwgZWNobyAn JChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvc3RhbmRh cmQtaW50by10eXBlLmNwcAorKworK2xpYnNvY2lfcG9zdGdyZXNxbF9sYS1zdGFuZGFyZC11c2Ut dHlwZS5sbzogJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvc3RhbmRhcmQt dXNlLXR5cGUuY3BwCisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoTElCVE9PTCkgIC0tdGFnPUNY WCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hY KSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykg JChDUFBGTEFHUykgJChsaWJzb2NpX3Bvc3RncmVzcWxfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1Mp IC1NVCBsaWJzb2NpX3Bvc3RncmVzcWxfbGEtc3RhbmRhcmQtdXNlLXR5cGUubG8gLU1EIC1NUCAt TUYgJChERVBESVIpL2xpYnNvY2lfcG9zdGdyZXNxbF9sYS1zdGFuZGFyZC11c2UtdHlwZS5UcG8g LWMgLW8gbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXN0YW5kYXJkLXVzZS10eXBlLmxvIGB0ZXN0IC1m ICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9zdGFuZGFyZC11c2UtdHlw ZS5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9w b3N0Z3Jlc3FsL3N0YW5kYXJkLXVzZS10eXBlLmNwcAorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkk KGFtX19tdikgJChERVBESVIpL2xpYnNvY2lfcG9zdGdyZXNxbF9sYS1zdGFuZGFyZC11c2UtdHlw ZS5UcG8gJChERVBESVIpL2xpYnNvY2lfcG9zdGdyZXNxbF9sYS1zdGFuZGFyZC11c2UtdHlwZS5Q bG8KKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJCh0b3Bfc3Jj ZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvc3RhbmRhcmQtdXNlLXR5cGUuY3BwJyBvYmpl Y3Q9J2xpYnNvY2lfcG9zdGdyZXNxbF9sYS1zdGFuZGFyZC11c2UtdHlwZS5sbycgbGlidG9vbD15 ZXMgQEFNREVQQkFDS1NMQVNIQAorK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJ REVQRElSPSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNI QAorK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChMSUJUT09MKSAgLS10YWc9Q1hYICQoQU1fTElC VE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykg JChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdT KSAkKGxpYnNvY2lfcG9zdGdyZXNxbF9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLWMgLW8gbGli c29jaV9wb3N0Z3Jlc3FsX2xhLXN0YW5kYXJkLXVzZS10eXBlLmxvIGB0ZXN0IC1mICckKHRvcF9z cmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9zdGFuZGFyZC11c2UtdHlwZS5jcHAnIHx8 IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3Fs L3N0YW5kYXJkLXVzZS10eXBlLmNwcAorKworK2xpYnNvY2lfcG9zdGdyZXNxbF9sYS1zdGF0ZW1l bnQubG86ICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3N0YXRlbWVudC5j cHAKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChMSUJUT09MKSAgLS10YWc9Q1hYICQoQU1fTElC VE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykg JChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdT KSAkKGxpYnNvY2lfcG9zdGdyZXNxbF9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLU1UIGxpYnNv Y2lfcG9zdGdyZXNxbF9sYS1zdGF0ZW1lbnQubG8gLU1EIC1NUCAtTUYgJChERVBESVIpL2xpYnNv Y2lfcG9zdGdyZXNxbF9sYS1zdGF0ZW1lbnQuVHBvIC1jIC1vIGxpYnNvY2lfcG9zdGdyZXNxbF9s YS1zdGF0ZW1lbnQubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0 Z3Jlc3FsL3N0YXRlbWVudC5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikv c29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3N0YXRlbWVudC5jcHAKKytAYW1fX2Zhc3RkZXBDWFhf VFJVRUAJJChhbV9fbXYpICQoREVQRElSKS9saWJzb2NpX3Bvc3RncmVzcWxfbGEtc3RhdGVtZW50 LlRwbyAkKERFUERJUikvbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXN0YXRlbWVudC5QbG8KKytAQU1E RVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJCh0b3Bfc3JjZGlyKS9zb2Np L2JhY2tlbmRzL3Bvc3RncmVzcWwvc3RhdGVtZW50LmNwcCcgb2JqZWN0PSdsaWJzb2NpX3Bvc3Rn cmVzcWxfbGEtc3RhdGVtZW50LmxvJyBsaWJ0b29sPXllcyBAQU1ERVBCQUNLU0xBU0hACisrQEFN REVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQ TU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACisrQGFtX19mYXN0ZGVwQ1hYX0ZBTFNF QAkkKExJQlRPT0wpICAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdT KSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5D TFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9wb3N0Z3Jlc3FsX2xh X0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtYyAtbyBsaWJzb2NpX3Bvc3RncmVzcWxfbGEtc3RhdGVt ZW50LmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9z dGF0ZW1lbnQuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvYmFj a2VuZHMvcG9zdGdyZXNxbC9zdGF0ZW1lbnQuY3BwCisrCisrbGlic29jaV9wb3N0Z3Jlc3FsX2xh LXZlY3Rvci1pbnRvLXR5cGUubG86ICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jl c3FsL3ZlY3Rvci1pbnRvLXR5cGUuY3BwCisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoTElCVE9P TCkgIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1j b21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChB TV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX3Bvc3RncmVzcWxfbGFfQ1hYRkxBR1Mp ICQoQ1hYRkxBR1MpIC1NVCBsaWJzb2NpX3Bvc3RncmVzcWxfbGEtdmVjdG9yLWludG8tdHlwZS5s byAtTUQgLU1QIC1NRiAkKERFUERJUikvbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXZlY3Rvci1pbnRv LXR5cGUuVHBvIC1jIC1vIGxpYnNvY2lfcG9zdGdyZXNxbF9sYS12ZWN0b3ItaW50by10eXBlLmxv IGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC92ZWN0b3It aW50by10eXBlLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2Jh Y2tlbmRzL3Bvc3RncmVzcWwvdmVjdG9yLWludG8tdHlwZS5jcHAKKytAYW1fX2Zhc3RkZXBDWFhf VFJVRUAJJChhbV9fbXYpICQoREVQRElSKS9saWJzb2NpX3Bvc3RncmVzcWxfbGEtdmVjdG9yLWlu dG8tdHlwZS5UcG8gJChERVBESVIpL2xpYnNvY2lfcG9zdGdyZXNxbF9sYS12ZWN0b3ItaW50by10 eXBlLlBsbworK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSckKHRv cF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC92ZWN0b3ItaW50by10eXBlLmNwcCcg b2JqZWN0PSdsaWJzb2NpX3Bvc3RncmVzcWxfbGEtdmVjdG9yLWludG8tdHlwZS5sbycgbGlidG9v bD15ZXMgQEFNREVQQkFDS1NMQVNIQAorK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxT RUAJREVQRElSPSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NM QVNIQAorK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChMSUJUT09MKSAgLS10YWc9Q1hYICQoQU1f TElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVG UykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZM QUdTKSAkKGxpYnNvY2lfcG9zdGdyZXNxbF9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLWMgLW8g bGlic29jaV9wb3N0Z3Jlc3FsX2xhLXZlY3Rvci1pbnRvLXR5cGUubG8gYHRlc3QgLWYgJyQodG9w X3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3ZlY3Rvci1pbnRvLXR5cGUuY3BwJyB8 fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNx bC92ZWN0b3ItaW50by10eXBlLmNwcAorKworK2xpYnNvY2lfcG9zdGdyZXNxbF9sYS12ZWN0b3It dXNlLXR5cGUubG86ICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3ZlY3Rv ci11c2UtdHlwZS5jcHAKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChMSUJUT09MKSAgLS10YWc9 Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChD WFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdT KSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfcG9zdGdyZXNxbF9sYV9DWFhGTEFHUykgJChDWFhGTEFH UykgLU1UIGxpYnNvY2lfcG9zdGdyZXNxbF9sYS12ZWN0b3ItdXNlLXR5cGUubG8gLU1EIC1NUCAt TUYgJChERVBESVIpL2xpYnNvY2lfcG9zdGdyZXNxbF9sYS12ZWN0b3ItdXNlLXR5cGUuVHBvIC1j IC1vIGxpYnNvY2lfcG9zdGdyZXNxbF9sYS12ZWN0b3ItdXNlLXR5cGUubG8gYHRlc3QgLWYgJyQo dG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3ZlY3Rvci11c2UtdHlwZS5jcHAn IHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jl c3FsL3ZlY3Rvci11c2UtdHlwZS5jcHAKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChhbV9fbXYp ICQoREVQRElSKS9saWJzb2NpX3Bvc3RncmVzcWxfbGEtdmVjdG9yLXVzZS10eXBlLlRwbyAkKERF UERJUikvbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXZlY3Rvci11c2UtdHlwZS5QbG8KKytAQU1ERVBf VFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJCh0b3Bfc3JjZGlyKS9zb2NpL2Jh Y2tlbmRzL3Bvc3RncmVzcWwvdmVjdG9yLXVzZS10eXBlLmNwcCcgb2JqZWN0PSdsaWJzb2NpX3Bv c3RncmVzcWxfbGEtdmVjdG9yLXVzZS10eXBlLmxvJyBsaWJ0b29sPXllcyBAQU1ERVBCQUNLU0xB U0hACisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIp ICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACisrQGFtX19mYXN0ZGVw Q1hYX0ZBTFNFQAkkKExJQlRPT0wpICAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElC VE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVE RVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9wb3N0 Z3Jlc3FsX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtYyAtbyBsaWJzb2NpX3Bvc3RncmVzcWxf bGEtdmVjdG9yLXVzZS10eXBlLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2Vu ZHMvcG9zdGdyZXNxbC92ZWN0b3ItdXNlLXR5cGUuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2Ak KHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC92ZWN0b3ItdXNlLXR5cGUuY3Bw CisrCisrbW9zdGx5Y2xlYW4tbGlidG9vbDoKKysJLXJtIC1mICoubG8KKysKKytjbGVhbi1saWJ0 b29sOgorKwktcm0gLXJmIC5saWJzIF9saWJzCisraW5zdGFsbC1wa2dpbmNsdWRlSEVBREVSUzog JChwa2dpbmNsdWRlX0hFQURFUlMpCisrCUAkKE5PUk1BTF9JTlNUQUxMKQorKwl0ZXN0IC16ICIk KHBrZ2luY2x1ZGVkaXIpIiB8fCAkKE1LRElSX1ApICIkKERFU1RESVIpJChwa2dpbmNsdWRlZGly KSIKKysJQGxpc3Q9JyQocGtnaW5jbHVkZV9IRUFERVJTKSc7IHRlc3QgLW4gIiQocGtnaW5jbHVk ZWRpcikiIHx8IGxpc3Q9OyBcCisrCWZvciBwIGluICQkbGlzdDsgZG8gXAorKwkgIGlmIHRlc3Qg LWYgIiQkcCI7IHRoZW4gZD07IGVsc2UgZD0iJChzcmNkaXIpLyI7IGZpOyBcCisrCSAgZWNobyAi JCRkJCRwIjsgXAorKwlkb25lIHwgJChhbV9fYmFzZV9saXN0KSB8IFwKKysJd2hpbGUgcmVhZCBm aWxlczsgZG8gXAorKwkgIGVjaG8gIiAkKElOU1RBTExfSEVBREVSKSAkJGZpbGVzICckKERFU1RE SVIpJChwa2dpbmNsdWRlZGlyKSciOyBcCisrCSAgJChJTlNUQUxMX0hFQURFUikgJCRmaWxlcyAi JChERVNURElSKSQocGtnaW5jbHVkZWRpcikiIHx8IGV4aXQgJCQ/OyBcCisrCWRvbmUKKysKKyt1 bmluc3RhbGwtcGtnaW5jbHVkZUhFQURFUlM6CisrCUAkKE5PUk1BTF9VTklOU1RBTEwpCisrCUBs aXN0PSckKHBrZ2luY2x1ZGVfSEVBREVSUyknOyB0ZXN0IC1uICIkKHBrZ2luY2x1ZGVkaXIpIiB8 fCBsaXN0PTsgXAorKwlmaWxlcz1gZm9yIHAgaW4gJCRsaXN0OyBkbyBlY2hvICQkcDsgZG9uZSB8 IHNlZCAtZSAnc3xeLiovfHwnYDsgXAorKwl0ZXN0IC1uICIkJGZpbGVzIiB8fCBleGl0IDA7IFwK KysJZWNobyAiICggY2QgJyQoREVTVERJUikkKHBrZ2luY2x1ZGVkaXIpJyAmJiBybSAtZiIgJCRm aWxlcyAiKSI7IFwKKysJY2QgIiQoREVTVERJUikkKHBrZ2luY2x1ZGVkaXIpIiAmJiBybSAtZiAk JGZpbGVzCisrCisrIyBUaGlzIGRpcmVjdG9yeSdzIHN1YmRpcmVjdG9yaWVzIGFyZSBtb3N0bHkg aW5kZXBlbmRlbnQ7IHlvdSBjYW4gY2QKKysjIGludG8gdGhlbSBhbmQgcnVuIGBtYWtlJyB3aXRo b3V0IGdvaW5nIHRocm91Z2ggdGhpcyBNYWtlZmlsZS4KKysjIFRvIGNoYW5nZSB0aGUgdmFsdWVz IG9mIGBtYWtlJyB2YXJpYWJsZXM6IGluc3RlYWQgb2YgZWRpdGluZyBNYWtlZmlsZXMsCisrIyAo MSkgaWYgdGhlIHZhcmlhYmxlIGlzIHNldCBpbiBgY29uZmlnLnN0YXR1cycsIGVkaXQgYGNvbmZp Zy5zdGF0dXMnCisrIyAgICAgKHdoaWNoIHdpbGwgY2F1c2UgdGhlIE1ha2VmaWxlcyB0byBiZSBy ZWdlbmVyYXRlZCB3aGVuIHlvdSBydW4gYG1ha2UnKTsKKysjICgyKSBvdGhlcndpc2UsIHBhc3Mg dGhlIGRlc2lyZWQgdmFsdWVzIG9uIHRoZSBgbWFrZScgY29tbWFuZCBsaW5lLgorKyQoUkVDVVJT SVZFX1RBUkdFVFMpOgorKwlAZmFpbD0gZmFpbGNvbT0nZXhpdCAxJzsgXAorKwlmb3IgZiBpbiB4 ICQkTUFLRUZMQUdTOyBkbyBcCisrCSAgY2FzZSAkJGYgaW4gXAorKwkgICAgKj0qIHwgLS1bIWtd Kik7OyBcCisrCSAgICAqayopIGZhaWxjb209J2ZhaWw9eWVzJzs7IFwKKysJICBlc2FjOyBcCisr CWRvbmU7IFwKKysJZG90X3NlZW49bm87IFwKKysJdGFyZ2V0PWBlY2hvICRAIHwgc2VkIHMvLXJl Y3Vyc2l2ZS8vYDsgXAorKwlsaXN0PSckKFNVQkRJUlMpJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7 IGRvIFwKKysJICBlY2hvICJNYWtpbmcgJCR0YXJnZXQgaW4gJCRzdWJkaXIiOyBcCisrCSAgaWYg dGVzdCAiJCRzdWJkaXIiID0gIi4iOyB0aGVuIFwKKysJICAgIGRvdF9zZWVuPXllczsgXAorKwkg ICAgbG9jYWxfdGFyZ2V0PSIkJHRhcmdldC1hbSI7IFwKKysJICBlbHNlIFwKKysJICAgIGxvY2Fs X3RhcmdldD0iJCR0YXJnZXQiOyBcCisrCSAgZmk7IFwKKysJICAoJChhbV9fY2QpICQkc3ViZGly ICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpICQkbG9jYWxfdGFyZ2V0KSBcCisrCSAgfHwgZXZh bCAkJGZhaWxjb207IFwKKysJZG9uZTsgXAorKwlpZiB0ZXN0ICIkJGRvdF9zZWVuIiA9ICJubyI7 IHRoZW4gXAorKwkgICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpICIkJHRhcmdldC1hbSIgfHwgZXhp dCAxOyBcCisrCWZpOyB0ZXN0IC16ICIkJGZhaWwiCisrCisrJChSRUNVUlNJVkVfQ0xFQU5fVEFS R0VUUyk6CisrCUBmYWlsPSBmYWlsY29tPSdleGl0IDEnOyBcCisrCWZvciBmIGluIHggJCRNQUtF RkxBR1M7IGRvIFwKKysJICBjYXNlICQkZiBpbiBcCisrCSAgICAqPSogfCAtLVsha10qKTs7IFwK KysJICAgICprKikgZmFpbGNvbT0nZmFpbD15ZXMnOzsgXAorKwkgIGVzYWM7IFwKKysJZG9uZTsg XAorKwlkb3Rfc2Vlbj1ubzsgXAorKwljYXNlICIkQCIgaW4gXAorKwkgIGRpc3RjbGVhbi0qIHwg bWFpbnRhaW5lci1jbGVhbi0qKSBsaXN0PSckKERJU1RfU1VCRElSUyknIDs7IFwKKysJICAqKSBs aXN0PSckKFNVQkRJUlMpJyA7OyBcCisrCWVzYWM7IFwKKysJcmV2PScnOyBmb3Igc3ViZGlyIGlu ICQkbGlzdDsgZG8gXAorKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9ICIuIjsgdGhlbiA6OyBlbHNl IFwKKysJICAgIHJldj0iJCRzdWJkaXIgJCRyZXYiOyBcCisrCSAgZmk7IFwKKysJZG9uZTsgXAor KwlyZXY9IiQkcmV2IC4iOyBcCisrCXRhcmdldD1gZWNobyAkQCB8IHNlZCBzLy1yZWN1cnNpdmUv L2A7IFwKKysJZm9yIHN1YmRpciBpbiAkJHJldjsgZG8gXAorKwkgIGVjaG8gIk1ha2luZyAkJHRh cmdldCBpbiAkJHN1YmRpciI7IFwKKysJICBpZiB0ZXN0ICIkJHN1YmRpciIgPSAiLiI7IHRoZW4g XAorKwkgICAgbG9jYWxfdGFyZ2V0PSIkJHRhcmdldC1hbSI7IFwKKysJICBlbHNlIFwKKysJICAg IGxvY2FsX3RhcmdldD0iJCR0YXJnZXQiOyBcCisrCSAgZmk7IFwKKysJICAoJChhbV9fY2QpICQk c3ViZGlyICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpICQkbG9jYWxfdGFyZ2V0KSBcCisrCSAg fHwgZXZhbCAkJGZhaWxjb207IFwKKysJZG9uZSAmJiB0ZXN0IC16ICIkJGZhaWwiCisrdGFncy1y ZWN1cnNpdmU6CisrCWxpc3Q9JyQoU1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8g XAorKwkgIHRlc3QgIiQkc3ViZGlyIiA9IC4gfHwgKCQoYW1fX2NkKSAkJHN1YmRpciAmJiAkKE1B S0UpICQoQU1fTUFLRUZMQUdTKSB0YWdzKTsgXAorKwlkb25lCisrY3RhZ3MtcmVjdXJzaXZlOgor KwlsaXN0PSckKFNVQkRJUlMpJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKKysJICB0ZXN0 ICIkJHN1YmRpciIgPSAuIHx8ICgkKGFtX19jZCkgJCRzdWJkaXIgJiYgJChNQUtFKSAkKEFNX01B S0VGTEFHUykgY3RhZ3MpOyBcCisrCWRvbmUKKysKKytJRDogJChIRUFERVJTKSAkKFNPVVJDRVMp ICQoTElTUCkgJChUQUdTX0ZJTEVTKQorKwlsaXN0PSckKFNPVVJDRVMpICQoSEVBREVSUykgJChM SVNQKSAkKFRBR1NfRklMRVMpJzsgXAorKwl1bmlxdWU9YGZvciBpIGluICQkbGlzdDsgZG8gXAor KwkgICAgaWYgdGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsgZWxzZSBlY2hvICQoc3JjZGly KS8kJGk7IGZpOyBcCisrCSAgZG9uZSB8IFwKKysJICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9IDE7 IG5vbmVtcHR5ID0gMTsgfSBcCisrCSAgICAgIEVORCB7IGlmIChub25lbXB0eSkgeyBmb3IgKGkg aW4gZmlsZXMpIHByaW50IGk7IH07IH0nYDsgXAorKwlta2lkIC1mSUQgJCR1bmlxdWUKKyt0YWdz OiBUQUdTCisrCisrVEFHUzogdGFncy1yZWN1cnNpdmUgJChIRUFERVJTKSAkKFNPVVJDRVMpICAk KFRBR1NfREVQRU5ERU5DSUVTKSBcCisrCQkkKFRBR1NfRklMRVMpICQoTElTUCkKKysJc2V0IHg7 IFwKKysJaGVyZT1gcHdkYDsgXAorKwlpZiAoJChFVEFHUykgLS1ldGFncy1pbmNsdWRlIC0tdmVy c2lvbikgPi9kZXYvbnVsbCAyPiYxOyB0aGVuIFwKKysJICBpbmNsdWRlX29wdGlvbj0tLWV0YWdz LWluY2x1ZGU7IFwKKysJICBlbXB0eV9maXg9LjsgXAorKwllbHNlIFwKKysJICBpbmNsdWRlX29w dGlvbj0tLWluY2x1ZGU7IFwKKysJICBlbXB0eV9maXg9OyBcCisrCWZpOyBcCisrCWxpc3Q9JyQo U1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAorKwkgIGlmIHRlc3QgIiQkc3Vi ZGlyIiA9IC47IHRoZW4gOjsgZWxzZSBcCisrCSAgICB0ZXN0ICEgLWYgJCRzdWJkaXIvVEFHUyB8 fCBcCisrCSAgICAgIHNldCAiJCRAIiAiJCRpbmNsdWRlX29wdGlvbj0kJGhlcmUvJCRzdWJkaXIv VEFHUyI7IFwKKysJICBmaTsgXAorKwlkb25lOyBcCisrCWxpc3Q9JyQoU09VUkNFUykgJChIRUFE RVJTKSAgJChMSVNQKSAkKFRBR1NfRklMRVMpJzsgXAorKwl1bmlxdWU9YGZvciBpIGluICQkbGlz dDsgZG8gXAorKwkgICAgaWYgdGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsgZWxzZSBlY2hv ICQoc3JjZGlyKS8kJGk7IGZpOyBcCisrCSAgZG9uZSB8IFwKKysJICAkKEFXSykgJ3sgZmlsZXNb JCQwXSA9IDE7IG5vbmVtcHR5ID0gMTsgfSBcCisrCSAgICAgIEVORCB7IGlmIChub25lbXB0eSkg eyBmb3IgKGkgaW4gZmlsZXMpIHByaW50IGk7IH07IH0nYDsgXAorKwlzaGlmdDsgXAorKwlpZiB0 ZXN0IC16ICIkKEVUQUdTX0FSR1MpJCQqJCR1bmlxdWUiOyB0aGVuIDo7IGVsc2UgXAorKwkgIHRl c3QgLW4gIiQkdW5pcXVlIiB8fCB1bmlxdWU9JCRlbXB0eV9maXg7IFwKKysJICBpZiB0ZXN0ICQk IyAtZ3QgMDsgdGhlbiBcCisrCSAgICAkKEVUQUdTKSAkKEVUQUdTRkxBR1MpICQoQU1fRVRBR1NG TEFHUykgJChFVEFHU19BUkdTKSBcCisrCSAgICAgICIkJEAiICQkdW5pcXVlOyBcCisrCSAgZWxz ZSBcCisrCSAgICAkKEVUQUdTKSAkKEVUQUdTRkxBR1MpICQoQU1fRVRBR1NGTEFHUykgJChFVEFH U19BUkdTKSBcCisrCSAgICAgICQkdW5pcXVlOyBcCisrCSAgZmk7IFwKKysJZmkKKytjdGFnczog Q1RBR1MKKytDVEFHUzogY3RhZ3MtcmVjdXJzaXZlICQoSEVBREVSUykgJChTT1VSQ0VTKSAgJChU QUdTX0RFUEVOREVOQ0lFUykgXAorKwkJJChUQUdTX0ZJTEVTKSAkKExJU1ApCisrCWxpc3Q9JyQo U09VUkNFUykgJChIRUFERVJTKSAgJChMSVNQKSAkKFRBR1NfRklMRVMpJzsgXAorKwl1bmlxdWU9 YGZvciBpIGluICQkbGlzdDsgZG8gXAorKwkgICAgaWYgdGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hv ICQkaTsgZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7IGZpOyBcCisrCSAgZG9uZSB8IFwKKysJICAk KEFXSykgJ3sgZmlsZXNbJCQwXSA9IDE7IG5vbmVtcHR5ID0gMTsgfSBcCisrCSAgICAgIEVORCB7 IGlmIChub25lbXB0eSkgeyBmb3IgKGkgaW4gZmlsZXMpIHByaW50IGk7IH07IH0nYDsgXAorKwl0 ZXN0IC16ICIkKENUQUdTX0FSR1MpJCR1bmlxdWUiIFwKKysJICB8fCAkKENUQUdTKSAkKENUQUdT RkxBR1MpICQoQU1fQ1RBR1NGTEFHUykgJChDVEFHU19BUkdTKSBcCisrCSAgICAgJCR1bmlxdWUK KysKKytHVEFHUzoKKysJaGVyZT1gJChhbV9fY2QpICQodG9wX2J1aWxkZGlyKSAmJiBwd2RgIFwK KysJICAmJiAkKGFtX19jZCkgJCh0b3Bfc3JjZGlyKSBcCisrCSAgJiYgZ3RhZ3MgLWkgJChHVEFH U19BUkdTKSAiJCRoZXJlIgorKworK2Rpc3RjbGVhbi10YWdzOgorKwktcm0gLWYgVEFHUyBJRCBH VEFHUyBHUlRBR1MgR1NZTVMgR1BBVEggdGFncworKworK2Rpc3RkaXI6ICQoRElTVEZJTEVTKQor KwlAc3JjZGlyc3RyaXA9YGVjaG8gIiQoc3JjZGlyKSIgfCBzZWQgJ3MvW10uW14kJFxcKl0vXFxc XCYvZydgOyBcCisrCXRvcHNyY2RpcnN0cmlwPWBlY2hvICIkKHRvcF9zcmNkaXIpIiB8IHNlZCAn cy9bXS5bXiQkXFwqXS9cXFxcJi9nJ2A7IFwKKysJbGlzdD0nJChESVNURklMRVMpJzsgXAorKwkg IGRpc3RfZmlsZXM9YGZvciBmaWxlIGluICQkbGlzdDsgZG8gZWNobyAkJGZpbGU7IGRvbmUgfCBc CisrCSAgc2VkIC1lICJzfF4kJHNyY2RpcnN0cmlwL3x8O3QiIFwKKysJICAgICAgLWUgInN8XiQk dG9wc3JjZGlyc3RyaXAvfCQodG9wX2J1aWxkZGlyKS98O3QiYDsgXAorKwljYXNlICQkZGlzdF9m aWxlcyBpbiBcCisrCSAgKi8qKSAkKE1LRElSX1ApIGBlY2hvICIkJGRpc3RfZmlsZXMiIHwgXAor KwkJCSAgIHNlZCAnL1wvLyFkO3N8XnwkKGRpc3RkaXIpL3w7cywvW14vXSokJCwsJyB8IFwKKysJ CQkgICBzb3J0IC11YCA7OyBcCisrCWVzYWM7IFwKKysJZm9yIGZpbGUgaW4gJCRkaXN0X2ZpbGVz OyBkbyBcCisrCSAgaWYgdGVzdCAtZiAkJGZpbGUgfHwgdGVzdCAtZCAkJGZpbGU7IHRoZW4gZD0u OyBlbHNlIGQ9JChzcmNkaXIpOyBmaTsgXAorKwkgIGlmIHRlc3QgLWQgJCRkLyQkZmlsZTsgdGhl biBcCisrCSAgICBkaXI9YGVjaG8gIi8kJGZpbGUiIHwgc2VkIC1lICdzLC9bXi9dKiQkLCwnYDsg XAorKwkgICAgaWYgdGVzdCAtZCAiJChkaXN0ZGlyKS8kJGZpbGUiOyB0aGVuIFwKKysJICAgICAg ZmluZCAiJChkaXN0ZGlyKS8kJGZpbGUiIC10eXBlIGQgISAtcGVybSAtNzAwIC1leGVjIGNobW9k IHUrcnd4IHt9IFw7OyBcCisrCSAgICBmaTsgXAorKwkgICAgaWYgdGVzdCAtZCAkKHNyY2Rpcikv JCRmaWxlICYmIHRlc3QgJCRkICE9ICQoc3JjZGlyKTsgdGhlbiBcCisrCSAgICAgIGNwIC1mcFIg JChzcmNkaXIpLyQkZmlsZSAiJChkaXN0ZGlyKSQkZGlyIiB8fCBleGl0IDE7IFwKKysJICAgICAg ZmluZCAiJChkaXN0ZGlyKS8kJGZpbGUiIC10eXBlIGQgISAtcGVybSAtNzAwIC1leGVjIGNobW9k IHUrcnd4IHt9IFw7OyBcCisrCSAgICBmaTsgXAorKwkgICAgY3AgLWZwUiAkJGQvJCRmaWxlICIk KGRpc3RkaXIpJCRkaXIiIHx8IGV4aXQgMTsgXAorKwkgIGVsc2UgXAorKwkgICAgdGVzdCAtZiAi JChkaXN0ZGlyKS8kJGZpbGUiIFwKKysJICAgIHx8IGNwIC1wICQkZC8kJGZpbGUgIiQoZGlzdGRp cikvJCRmaWxlIiBcCisrCSAgICB8fCBleGl0IDE7IFwKKysJICBmaTsgXAorKwlkb25lCisrCUBs aXN0PSckKERJU1RfU1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAorKwkgIGlm IHRlc3QgIiQkc3ViZGlyIiA9IC47IHRoZW4gOjsgZWxzZSBcCisrCSAgICB0ZXN0IC1kICIkKGRp c3RkaXIpLyQkc3ViZGlyIiBcCisrCSAgICB8fCAkKE1LRElSX1ApICIkKGRpc3RkaXIpLyQkc3Vi ZGlyIiBcCisrCSAgICB8fCBleGl0IDE7IFwKKysJICBmaTsgXAorKwlkb25lCisrCUBsaXN0PSck KERJU1RfU1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAorKwkgIGlmIHRlc3Qg IiQkc3ViZGlyIiA9IC47IHRoZW4gOjsgZWxzZSBcCisrCSAgICBkaXIxPSQkc3ViZGlyOyBkaXIy PSIkKGRpc3RkaXIpLyQkc3ViZGlyIjsgXAorKwkgICAgJChhbV9fcmVsYXRpdml6ZSk7IFwKKysJ ICAgIG5ld19kaXN0ZGlyPSQkcmVsZGlyOyBcCisrCSAgICBkaXIxPSQkc3ViZGlyOyBkaXIyPSIk KHRvcF9kaXN0ZGlyKSI7IFwKKysJICAgICQoYW1fX3JlbGF0aXZpemUpOyBcCisrCSAgICBuZXdf dG9wX2Rpc3RkaXI9JCRyZWxkaXI7IFwKKysJICAgIGVjaG8gIiAoY2QgJCRzdWJkaXIgJiYgJChN QUtFKSAkKEFNX01BS0VGTEFHUykgdG9wX2Rpc3RkaXI9IiQkbmV3X3RvcF9kaXN0ZGlyIiBkaXN0 ZGlyPSIkJG5ld19kaXN0ZGlyIiBcXCI7IFwKKysJICAgIGVjaG8gIiAgICAgYW1fX3JlbW92ZV9k aXN0ZGlyPTogYW1fX3NraXBfbGVuZ3RoX2NoZWNrPTogYW1fX3NraXBfbW9kZV9maXg9OiBkaXN0 ZGlyKSI7IFwKKysJICAgICgkKGFtX19jZCkgJCRzdWJkaXIgJiYgXAorKwkgICAgICAkKE1BS0Up ICQoQU1fTUFLRUZMQUdTKSBcCisrCSAgICAgICAgdG9wX2Rpc3RkaXI9IiQkbmV3X3RvcF9kaXN0 ZGlyIiBcCisrCSAgICAgICAgZGlzdGRpcj0iJCRuZXdfZGlzdGRpciIgXAorKwkJYW1fX3JlbW92 ZV9kaXN0ZGlyPTogXAorKwkJYW1fX3NraXBfbGVuZ3RoX2NoZWNrPTogXAorKwkJYW1fX3NraXBf bW9kZV9maXg9OiBcCisrCSAgICAgICAgZGlzdGRpcikgXAorKwkgICAgICB8fCBleGl0IDE7IFwK KysJICBmaTsgXAorKwlkb25lCisrY2hlY2stYW06IGFsbC1hbQorK2NoZWNrOiBjaGVjay1yZWN1 cnNpdmUKKythbGwtYW06IE1ha2VmaWxlICQoTFRMSUJSQVJJRVMpICQoSEVBREVSUykKKytpbnN0 YWxsZGlyczogaW5zdGFsbGRpcnMtcmVjdXJzaXZlCisraW5zdGFsbGRpcnMtYW06CisrCWZvciBk aXIgaW4gIiQoREVTVERJUikkKGxpYmRpcikiICIkKERFU1RESVIpJChwa2dpbmNsdWRlZGlyKSI7 IGRvIFwKKysJICB0ZXN0IC16ICIkJGRpciIgfHwgJChNS0RJUl9QKSAiJCRkaXIiOyBcCisrCWRv bmUKKytpbnN0YWxsOiBpbnN0YWxsLXJlY3Vyc2l2ZQorK2luc3RhbGwtZXhlYzogaW5zdGFsbC1l eGVjLXJlY3Vyc2l2ZQorK2luc3RhbGwtZGF0YTogaW5zdGFsbC1kYXRhLXJlY3Vyc2l2ZQorK3Vu aW5zdGFsbDogdW5pbnN0YWxsLXJlY3Vyc2l2ZQorKworK2luc3RhbGwtYW06IGFsbC1hbQorKwlA JChNQUtFKSAkKEFNX01BS0VGTEFHUykgaW5zdGFsbC1leGVjLWFtIGluc3RhbGwtZGF0YS1hbQor KworK2luc3RhbGxjaGVjazogaW5zdGFsbGNoZWNrLXJlY3Vyc2l2ZQorK2luc3RhbGwtc3RyaXA6 CisrCSQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIElOU1RBTExfUFJPR1JBTT0iJChJTlNUQUxMX1NU UklQX1BST0dSQU0pIiBcCisrCSAgaW5zdGFsbF9zaF9QUk9HUkFNPSIkKElOU1RBTExfU1RSSVBf UFJPR1JBTSkiIElOU1RBTExfU1RSSVBfRkxBRz0tcyBcCisrCSAgYHRlc3QgLXogJyQoU1RSSVAp JyB8fCBcCisrCSAgICBlY2hvICJJTlNUQUxMX1BST0dSQU1fRU5WPVNUUklQUFJPRz0nJChTVFJJ UCknImAgaW5zdGFsbAorK21vc3RseWNsZWFuLWdlbmVyaWM6CisrCisrY2xlYW4tZ2VuZXJpYzoK KysKKytkaXN0Y2xlYW4tZ2VuZXJpYzoKKysJLXRlc3QgLXogIiQoQ09ORklHX0NMRUFOX0ZJTEVT KSIgfHwgcm0gLWYgJChDT05GSUdfQ0xFQU5fRklMRVMpCisrCS10ZXN0IC4gPSAiJChzcmNkaXIp IiB8fCB0ZXN0IC16ICIkKENPTkZJR19DTEVBTl9WUEFUSF9GSUxFUykiIHx8IHJtIC1mICQoQ09O RklHX0NMRUFOX1ZQQVRIX0ZJTEVTKQorKworK21haW50YWluZXItY2xlYW4tZ2VuZXJpYzoKKysJ QGVjaG8gIlRoaXMgY29tbWFuZCBpcyBpbnRlbmRlZCBmb3IgbWFpbnRhaW5lcnMgdG8gdXNlIgor KwlAZWNobyAiaXQgZGVsZXRlcyBmaWxlcyB0aGF0IG1heSByZXF1aXJlIHNwZWNpYWwgdG9vbHMg dG8gcmVidWlsZC4iCisrCS10ZXN0IC16ICIkKE1BSU5UQUlORVJDTEVBTkZJTEVTKSIgfHwgcm0g LWYgJChNQUlOVEFJTkVSQ0xFQU5GSUxFUykKKytjbGVhbjogY2xlYW4tcmVjdXJzaXZlCisrCisr Y2xlYW4tYW06IGNsZWFuLWdlbmVyaWMgY2xlYW4tbGliTFRMSUJSQVJJRVMgY2xlYW4tbGlidG9v bCBcCisrCW1vc3RseWNsZWFuLWFtCisrCisrZGlzdGNsZWFuOiBkaXN0Y2xlYW4tcmVjdXJzaXZl CisrCS1ybSAtcmYgLi8kKERFUERJUikKKysJLXJtIC1mIE1ha2VmaWxlCisrZGlzdGNsZWFuLWFt OiBjbGVhbi1hbSBkaXN0Y2xlYW4tY29tcGlsZSBkaXN0Y2xlYW4tZ2VuZXJpYyBcCisrCWRpc3Rj bGVhbi10YWdzCisrCisrZHZpOiBkdmktcmVjdXJzaXZlCisrCisrZHZpLWFtOgorKworK2h0bWw6 IGh0bWwtcmVjdXJzaXZlCisrCisraHRtbC1hbToKKysKKytpbmZvOiBpbmZvLXJlY3Vyc2l2ZQor KworK2luZm8tYW06CisrCisraW5zdGFsbC1kYXRhLWFtOiBpbnN0YWxsLXBrZ2luY2x1ZGVIRUFE RVJTCisrCisraW5zdGFsbC1kdmk6IGluc3RhbGwtZHZpLXJlY3Vyc2l2ZQorKworK2luc3RhbGwt ZHZpLWFtOgorKworK2luc3RhbGwtZXhlYy1hbTogaW5zdGFsbC1saWJMVExJQlJBUklFUworKwor K2luc3RhbGwtaHRtbDogaW5zdGFsbC1odG1sLXJlY3Vyc2l2ZQorKworK2luc3RhbGwtaHRtbC1h bToKKysKKytpbnN0YWxsLWluZm86IGluc3RhbGwtaW5mby1yZWN1cnNpdmUKKysKKytpbnN0YWxs LWluZm8tYW06CisrCisraW5zdGFsbC1tYW46CisrCisraW5zdGFsbC1wZGY6IGluc3RhbGwtcGRm LXJlY3Vyc2l2ZQorKworK2luc3RhbGwtcGRmLWFtOgorKworK2luc3RhbGwtcHM6IGluc3RhbGwt cHMtcmVjdXJzaXZlCisrCisraW5zdGFsbC1wcy1hbToKKysKKytpbnN0YWxsY2hlY2stYW06Cisr CisrbWFpbnRhaW5lci1jbGVhbjogbWFpbnRhaW5lci1jbGVhbi1yZWN1cnNpdmUKKysJLXJtIC1y ZiAuLyQoREVQRElSKQorKwktcm0gLWYgTWFrZWZpbGUKKyttYWludGFpbmVyLWNsZWFuLWFtOiBk aXN0Y2xlYW4tYW0gbWFpbnRhaW5lci1jbGVhbi1nZW5lcmljCisrCisrbW9zdGx5Y2xlYW46IG1v c3RseWNsZWFuLXJlY3Vyc2l2ZQorKworK21vc3RseWNsZWFuLWFtOiBtb3N0bHljbGVhbi1jb21w aWxlIG1vc3RseWNsZWFuLWdlbmVyaWMgXAorKwltb3N0bHljbGVhbi1saWJ0b29sCisrCisrcGRm OiBwZGYtcmVjdXJzaXZlCisrCisrcGRmLWFtOgorKworK3BzOiBwcy1yZWN1cnNpdmUKKysKKytw cy1hbToKKysKKyt1bmluc3RhbGwtYW06IHVuaW5zdGFsbC1saWJMVExJQlJBUklFUyB1bmluc3Rh bGwtcGtnaW5jbHVkZUhFQURFUlMKKysKKysuTUFLRTogJChSRUNVUlNJVkVfQ0xFQU5fVEFSR0VU UykgJChSRUNVUlNJVkVfVEFSR0VUUykgY3RhZ3MtcmVjdXJzaXZlIFwKKysJaW5zdGFsbC1hbSBp bnN0YWxsLXN0cmlwIHRhZ3MtcmVjdXJzaXZlCisrCisrLlBIT05ZOiAkKFJFQ1VSU0lWRV9DTEVB Tl9UQVJHRVRTKSAkKFJFQ1VSU0lWRV9UQVJHRVRTKSBDVEFHUyBHVEFHUyBcCisrCWFsbCBhbGwt YW0gY2hlY2sgY2hlY2stYW0gY2xlYW4gY2xlYW4tZ2VuZXJpYyBcCisrCWNsZWFuLWxpYkxUTElC UkFSSUVTIGNsZWFuLWxpYnRvb2wgY3RhZ3MgY3RhZ3MtcmVjdXJzaXZlIFwKKysJZGlzdGNsZWFu IGRpc3RjbGVhbi1jb21waWxlIGRpc3RjbGVhbi1nZW5lcmljIFwKKysJZGlzdGNsZWFuLWxpYnRv b2wgZGlzdGNsZWFuLXRhZ3MgZGlzdGRpciBkdmkgZHZpLWFtIGh0bWwgXAorKwlodG1sLWFtIGlu Zm8gaW5mby1hbSBpbnN0YWxsIGluc3RhbGwtYW0gaW5zdGFsbC1kYXRhIFwKKysJaW5zdGFsbC1k YXRhLWFtIGluc3RhbGwtZHZpIGluc3RhbGwtZHZpLWFtIGluc3RhbGwtZXhlYyBcCisrCWluc3Rh bGwtZXhlYy1hbSBpbnN0YWxsLWh0bWwgaW5zdGFsbC1odG1sLWFtIGluc3RhbGwtaW5mbyBcCisr CWluc3RhbGwtaW5mby1hbSBpbnN0YWxsLWxpYkxUTElCUkFSSUVTIGluc3RhbGwtbWFuIGluc3Rh bGwtcGRmIFwKKysJaW5zdGFsbC1wZGYtYW0gaW5zdGFsbC1wa2dpbmNsdWRlSEVBREVSUyBpbnN0 YWxsLXBzIFwKKysJaW5zdGFsbC1wcy1hbSBpbnN0YWxsLXN0cmlwIGluc3RhbGxjaGVjayBpbnN0 YWxsY2hlY2stYW0gXAorKwlpbnN0YWxsZGlycyBpbnN0YWxsZGlycy1hbSBtYWludGFpbmVyLWNs ZWFuIFwKKysJbWFpbnRhaW5lci1jbGVhbi1nZW5lcmljIG1vc3RseWNsZWFuIG1vc3RseWNsZWFu LWNvbXBpbGUgXAorKwltb3N0bHljbGVhbi1nZW5lcmljIG1vc3RseWNsZWFuLWxpYnRvb2wgcGRm IHBkZi1hbSBwcyBwcy1hbSBcCisrCXRhZ3MgdGFncy1yZWN1cnNpdmUgdW5pbnN0YWxsIHVuaW5z dGFsbC1hbSBcCisrCXVuaW5zdGFsbC1saWJMVExJQlJBUklFUyB1bmluc3RhbGwtcGtnaW5jbHVk ZUhFQURFUlMKKysKKytAU0VUX01BS0VACisrCisrIyBUZWxsIHZlcnNpb25zIFszLjU5LDMuNjMp IG9mIEdOVSBtYWtlIHRvIG5vdCBleHBvcnQgYWxsIHZhcmlhYmxlcy4KKysjIE90aGVyd2lzZSBh IHN5c3RlbSBsaW1pdCAoZm9yIFN5c1YgYXQgbGVhc3QpIG1heSBiZSBleGNlZWRlZC4KKysuTk9F WFBPUlQ6CitkaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9wb3N0Z3Jl c3FsL3NvY2ktcG9zdGdyZXNxbC5oIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL3Bv c3RncmVzcWwvc29jaS1wb3N0Z3Jlc3FsLmgKKy0tLSBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2Jh Y2tlbmRzL3Bvc3RncmVzcWwvc29jaS1wb3N0Z3Jlc3FsLmgJMjAxMC0wMS0yMyAxNDo0NTo0NC4w MDAwMDAwMDAgKzAxMDAKKysrKyBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9wb3N0 Z3Jlc3FsL3NvY2ktcG9zdGdyZXNxbC5oCTIwMDktMDQtMTYgMTk6Mzc6MDUuMDAwMDAwMDAwICsw MjAwCitAQCAtMjIsOSArMjIsMTQgQEAKKyAjaWZuZGVmIFNPQ0lfUE9TVEdSRVNRTF9ERUNMCisg IyBkZWZpbmUgU09DSV9QT1NUR1JFU1FMX0RFQ0wKKyAjZW5kaWYKKy0KKy0jaW5jbHVkZSA8c29j aS1iYWNrZW5kLmg+CistI2luY2x1ZGUgPGxpYnBxLWZlLmg+CisrLy8KKysjaWYgZGVmaW5lZChT T0NJX0hFQURFUlNfQlVSSUVEKQorKyMgICAgICAgaW5jbHVkZSA8c29jaS9jb3JlL3NvY2ktYmFj a2VuZC5oPgorKyNlbHNlCisrIwlpbmNsdWRlIDxzb2NpLWJhY2tlbmQuaD4KKysjZW5kaWYKKysv LworKyNpbmNsdWRlIDxsaWJwcS1mZS5oPiAvLyBQb3N0R3JlU1FMIGNsaWVudAorICNpbmNsdWRl IDx2ZWN0b3I+CisgCisgI2lmZGVmIF9NU0NfVkVSCitkaWZmIC1OdXIgc29jaS0zLjAuMF80LXBh Y2svc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3NvdXJjZXMubWsgc29jaS0zLjAuMF90cmVwMzAw L3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9zb3VyY2VzLm1rCistLS0gc29jaS0zLjAuMF80LXBh Y2svc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3NvdXJjZXMubWsJMTk3MC0wMS0wMSAwMTowMDow MC4wMDAwMDAwMDAgKzAxMDAKKysrKyBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9w b3N0Z3Jlc3FsL3NvdXJjZXMubWsJMjAwOS0wNC0xNiAxOTozNzowNS4wMDAwMDAwMDAgKzAyMDAK K0BAIC0wLDAgKzEsMTQgQEAKKytiY2tfcG9zdGdyZXNxbF9oX3NvdXJjZXMgPSBcCisrICAgICAg ICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9jb21tb24uaCBcCisrICAg ICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9zb2NpLXBvc3RncmVz cWwuaAorK2Jja19wb3N0Z3Jlc3FsX2NjX3NvdXJjZXMgPSBcCisrICAgICAgICAkKHRvcF9zcmNk aXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9ibG9iLmNwcCBcCisrICAgICAgICAkKHRvcF9z cmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9jb21tb24uY3BwIFwKKysgICAgICAgICQo dG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL2ZhY3RvcnkuY3BwIFwKKysgICAg ICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Jvdy1pZC5jcHAgXAor KyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvc2Vzc2lvbi5j cHAgXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvc3Rh bmRhcmQtaW50by10eXBlLmNwcCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2Vu ZHMvcG9zdGdyZXNxbC9zdGFuZGFyZC11c2UtdHlwZS5jcHAgXAorKyAgICAgICAgJCh0b3Bfc3Jj ZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvc3RhdGVtZW50LmNwcCBcCisrICAgICAgICAk KHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC92ZWN0b3ItaW50by10eXBlLmNw cCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC92ZWN0 b3ItdXNlLXR5cGUuY3BwCitkaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5k cy9wb3N0Z3Jlc3FsL3N0YW5kYXJkLWludG8tdHlwZS5jcHAgc29jaS0zLjAuMF90cmVwMzAwL3Nv Y2kvYmFja2VuZHMvcG9zdGdyZXNxbC9zdGFuZGFyZC1pbnRvLXR5cGUuY3BwCistLS0gc29jaS0z LjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3N0YW5kYXJkLWludG8tdHlwZS5j cHAJMjAxMC0wMS0yMyAxNDo0NTo0NC4wMDAwMDAwMDAgKzAxMDAKKysrKyBzb2NpLTMuMC4wX3Ry ZXAzMDAvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3N0YW5kYXJkLWludG8tdHlwZS5jcHAJMjAw OS0wNC0xNiAxOTozNzowNS4wMDAwMDAwMDAgKzAyMDAKK0BAIC04LDkgKzgsMTYgQEAKKyAjZGVm aW5lIFNPQ0lfUE9TVEdSRVNRTF9TT1VSQ0UKKyAjaW5jbHVkZSAic29jaS1wb3N0Z3Jlc3FsLmgi CisgI2luY2x1ZGUgImNvbW1vbi5oIgorLSNpbmNsdWRlICJyb3dpZC5oIgorLSNpbmNsdWRlICJi bG9iLmgiCistI2luY2x1ZGUgPGxpYnBxL2xpYnBxLWZzLmg+IC8vIGxpYnBxCisrLy8KKysjaWYg ZGVmaW5lZChTT0NJX0hFQURFUlNfQlVSSUVEKQorKyMgICAgICAgaW5jbHVkZSA8c29jaS9jb3Jl L2Jsb2IuaD4KKysjICAgICAgIGluY2x1ZGUgPHNvY2kvY29yZS9yb3dpZC5oPgorKyNlbHNlCisr IyAgICAgICBpbmNsdWRlIDxibG9iLmg+CisrIyAgICAgICBpbmNsdWRlIDxyb3dpZC5oPgorKyNl bmRpZgorKy8vCisrI2luY2x1ZGUgPGxpYnBxL2xpYnBxLWZzLmg+IC8vIGxpYnBxIChQb3N0R3Jl U1FMIGNsaWVudCkKKyAjaW5jbHVkZSA8Y2N0eXBlPgorICNpbmNsdWRlIDxjc3RkaW8+CisgI2lu Y2x1ZGUgPGNzdHJpbmc+CitkaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5k cy9wb3N0Z3Jlc3FsL3N0YW5kYXJkLXVzZS10eXBlLmNwcCBzb2NpLTMuMC4wX3RyZXAzMDAvc29j aS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3N0YW5kYXJkLXVzZS10eXBlLmNwcAorLS0tIHNvY2ktMy4w LjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9zdGFuZGFyZC11c2UtdHlwZS5jcHAJ MjAxMC0wMS0yMyAxNDo0NTo0NC4wMDAwMDAwMDAgKzAxMDAKKysrKyBzb2NpLTMuMC4wX3RyZXAz MDAvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3N0YW5kYXJkLXVzZS10eXBlLmNwcAkyMDA5LTA0 LTE2IDE5OjM3OjA1LjAwMDAwMDAwMCArMDIwMAorQEAgLTcsOCArNywxNCBAQAorIAorICNkZWZp bmUgU09DSV9QT1NUR1JFU1FMX1NPVVJDRQorICNpbmNsdWRlICJzb2NpLXBvc3RncmVzcWwuaCIK Ky0jaW5jbHVkZSAicm93aWQuaCIKKy0jaW5jbHVkZSA8bGlicHEvbGlicHEtZnMuaD4gLy8gbGli cHEKKysvLworKyNpZiBkZWZpbmVkKFNPQ0lfSEVBREVSU19CVVJJRUQpCisrIyAgICAgICBpbmNs dWRlIDxzb2NpL2NvcmUvcm93aWQuaD4KKysjZWxzZQorKyMgICAgICAgaW5jbHVkZSA8cm93aWQu aD4KKysjZW5kaWYKKysvLworKyNpbmNsdWRlIDxsaWJwcS9saWJwcS1mcy5oPiAvLyBsaWJwcSAo UG9zdEdyZVNRTCBjbGllbnQpCisgI2luY2x1ZGUgPGNjdHlwZT4KKyAjaW5jbHVkZSA8Y3N0ZGlv PgorICNpbmNsdWRlIDxjc3RyaW5nPgorZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kv YmFja2VuZHMvcG9zdGdyZXNxbC90ZXN0L01ha2VmaWxlLmFtIHNvY2ktMy4wLjBfdHJlcDMwMC9z b2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvdGVzdC9NYWtlZmlsZS5hbQorLS0tIHNvY2ktMy4wLjBf NC1wYWNrL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC90ZXN0L01ha2VmaWxlLmFtCTE5NzAtMDEt MDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCisrKysgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kv YmFja2VuZHMvcG9zdGdyZXNxbC90ZXN0L01ha2VmaWxlLmFtCTIwMDktMDQtMTYgMTk6Mzc6MDUu MDAwMDAwMDAwICswMjAwCitAQCAtMCwwICsxLDE4IEBACisrIyMgY29yZSBzdWItZGlyZWN0b3J5 CisraW5jbHVkZSAkKHRvcF9zcmNkaXIpL01ha2VmaWxlLmNvbW1vbgorK2luY2x1ZGUgJChzcmNk aXIpL3NvdXJjZXMubWsKKysKKytNQUlOVEFJTkVSQ0xFQU5GSUxFUyA9IE1ha2VmaWxlLmluCisr CisraWYgUlVOX1RFU1RTCisrICBub2luc3RfUFJPR1JBTVMgPSB0ZXN0X3Bvc3RncmVzcWwKKytl bmRpZgorKworK3Rlc3RfcG9zdGdyZXNxbF9TT1VSQ0VTID0gJChwb3N0Z3Jlc3FsX3Rlc3RfY2Nf c291cmNlcykKKyt0ZXN0X3Bvc3RncmVzcWxfQ1hYRkxBR1MgPSAkKEJPT1NUX0NGTEFHUykKKyt0 ZXN0X3Bvc3RncmVzcWxfTERBREQgPQorK3Rlc3RfcG9zdGdyZXNxbF9MREZMQUdTID0gJCh0b3Bf YnVpbGRkaXIpL3NvY2kvY29yZS9saWJzb2NpX2NvcmUubGEgLWxkbCBcCisrCQkkKHRvcF9idWls ZGRpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL2xpYnNvY2lfcG9zdGdyZXNxbC5sYSBcCisr CQkkKFBPU1RHUkVTUUxfTERGTEFHUykKKysKKysjbm9kaXN0X3BrZ2luY2x1ZGVfSEVBREVSUyA9 ICQocG9zdGdyZXNxbF90ZXN0X2hfc291cmNlcykKK2RpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFj ay9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvdGVzdC9NYWtlZmlsZS5iYXNpYyBzb2NpLTMuMC4w X3RyZXAzMDAvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Rlc3QvTWFrZWZpbGUuYmFzaWMKKy0t LSBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvdGVzdC9NYWtlZmls ZS5iYXNpYwkyMDEwLTAxLTIzIDE0OjQ1OjQ0LjAwMDAwMDAwMCArMDEwMAorKysrIHNvY2ktMy4w LjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvdGVzdC9NYWtlZmlsZS5iYXNpYwkx OTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAorQEAgLTEsMjIgKzAsMCBAQAorLSMg VGhlIGZvbGxvd2luZyB2YXJpYWJsZSBpcyBzcGVjaWZpYyB0byB0aGlzIGJhY2tlbmQgYW5kIGl0 cyBjb3JyZWN0CistIyB2YWx1ZXMgbWlnaHQgZGVwZW5kIG9uIHlvdXIgZW52aXJvbm1lbnQgLSBm ZWVsIGZyZWUgdG8gc2V0IGl0IGFjY29yZGluZ2x5LgorLQorLVBHU1FMSU5DTFVERURJUiA9IC1J L3Vzci9pbmNsdWRlCistUEdTUUxMSUJESVIgPSAtTC91c3IvbGliCistUEdTUUxMSUJTID0gLWxw cQorLQorLSMgVGhlIHJlc3Qgb2YgdGhlIE1ha2VmaWxlIGlzIGluZGVwZW50ZW50IG9mIHRoZSB0 YXJnZXQgZW52aXJvbm1lbnQuCistCistQ09NUElMRVIgPSBnKysKKy1DWFhGTEFHUyA9IC1XYWxs IC1wZWRhbnRpYyAtV25vLWxvbmctbG9uZworLUlOQ0xVREVESVJTID0gLUkuLiAtSS4uLy4uLy4u L2NvcmUvdGVzdCAtSS4uLy4uLy4uL2NvcmUgJHtQR1NRTElOQ0xVREVESVJ9CistTElCRElSUyA9 IC1MLi4gLUwuLi8uLi8uLi9jb3JlICR7UEdTUUxMSUJESVJ9CistTElCUyA9IC1sc29jaV9jb3Jl IC1sc29jaV9wb3N0Z3Jlc3FsIC1sZGwgJHtQR1NRTExJQlN9CistCistCistdGVzdC1wb3N0Z3Jl c3FsIDogdGVzdC1wb3N0Z3Jlc3FsLmNwcAorLQkke0NPTVBJTEVSfSAtbyAkQCAkPyAke0NYWEZM QUdTfSAke0lOQ0xVREVESVJTfSAke0xJQkRJUlN9ICR7TElCU30KKy0KKy0KKy1jbGVhbiA6Cist CXJtIC1mIHRlc3QtcG9zdGdyZXNxbAorZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kv YmFja2VuZHMvcG9zdGdyZXNxbC90ZXN0L01ha2VmaWxlLmluIHNvY2ktMy4wLjBfdHJlcDMwMC9z b2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvdGVzdC9NYWtlZmlsZS5pbgorLS0tIHNvY2ktMy4wLjBf NC1wYWNrL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC90ZXN0L01ha2VmaWxlLmluCTE5NzAtMDEt MDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCisrKysgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kv YmFja2VuZHMvcG9zdGdyZXNxbC90ZXN0L01ha2VmaWxlLmluCTIwMTAtMDEtMjMgMTQ6NDQ6NTIu MDAwMDAwMDAwICswMTAwCitAQCAtMCwwICsxLDU1OSBAQAorKyMgTWFrZWZpbGUuaW4gZ2VuZXJh dGVkIGJ5IGF1dG9tYWtlIDEuMTEuMSBmcm9tIE1ha2VmaWxlLmFtLgorKyMgQGNvbmZpZ3VyZV9p bnB1dEAKKysKKysjIENvcHlyaWdodCAoQykgMTk5NCwgMTk5NSwgMTk5NiwgMTk5NywgMTk5OCwg MTk5OSwgMjAwMCwgMjAwMSwgMjAwMiwKKysjIDIwMDMsIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcs IDIwMDgsIDIwMDkgIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwKKysjIEluYy4KKysjIFRoaXMg TWFrZWZpbGUuaW4gaXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv bgorKyMgZ2l2ZXMgdW5saW1pdGVkIHBlcm1pc3Npb24gdG8gY29weSBhbmQvb3IgZGlzdHJpYnV0 ZSBpdCwKKysjIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb25zLCBhcyBsb25nIGFzIHRoaXMg bm90aWNlIGlzIHByZXNlcnZlZC4KKysKKysjIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBp biB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorKyMgYnV0IFdJVEhPVVQgQU5ZIFdB UlJBTlRZLCB0byB0aGUgZXh0ZW50IHBlcm1pdHRlZCBieSBsYXc7IHdpdGhvdXQKKysjIGV2ZW4g dGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEK KysjIFBBUlRJQ1VMQVIgUFVSUE9TRS4KKysKKytAU0VUX01BS0VACisrCisrVlBBVEggPSBAc3Jj ZGlyQAorK3BrZ2RhdGFkaXIgPSAkKGRhdGFkaXIpL0BQQUNLQUdFQAorK3BrZ2luY2x1ZGVkaXIg PSAkKGluY2x1ZGVkaXIpL0BQQUNLQUdFQAorK3BrZ2xpYmRpciA9ICQobGliZGlyKS9AUEFDS0FH RUAKKytwa2dsaWJleGVjZGlyID0gJChsaWJleGVjZGlyKS9AUEFDS0FHRUAKKythbV9fY2QgPSBD RFBBVEg9IiQke1pTSF9WRVJTSU9OKy59JChQQVRIX1NFUEFSQVRPUikiICYmIGNkCisraW5zdGFs bF9zaF9EQVRBID0gJChpbnN0YWxsX3NoKSAtYyAtbSA2NDQKKytpbnN0YWxsX3NoX1BST0dSQU0g PSAkKGluc3RhbGxfc2gpIC1jCisraW5zdGFsbF9zaF9TQ1JJUFQgPSAkKGluc3RhbGxfc2gpIC1j CisrSU5TVEFMTF9IRUFERVIgPSAkKElOU1RBTExfREFUQSkKKyt0cmFuc2Zvcm0gPSAkKHByb2dy YW1fdHJhbnNmb3JtX25hbWUpCisrTk9STUFMX0lOU1RBTEwgPSA6CisrUFJFX0lOU1RBTEwgPSA6 CisrUE9TVF9JTlNUQUxMID0gOgorK05PUk1BTF9VTklOU1RBTEwgPSA6CisrUFJFX1VOSU5TVEFM TCA9IDoKKytQT1NUX1VOSU5TVEFMTCA9IDoKKytidWlsZF90cmlwbGV0ID0gQGJ1aWxkQAorK2hv c3RfdHJpcGxldCA9IEBob3N0QAorK0RJU1RfQ09NTU9OID0gJChzcmNkaXIpL01ha2VmaWxlLmFt ICQoc3JjZGlyKS9NYWtlZmlsZS5pbiBcCisrCSQoc3JjZGlyKS9zb3VyY2VzLm1rICQodG9wX3Ny Y2RpcikvTWFrZWZpbGUuY29tbW9uCisrQFJVTl9URVNUU19UUlVFQG5vaW5zdF9QUk9HUkFNUyA9 IHRlc3RfcG9zdGdyZXNxbCQoRVhFRVhUKQorK3N1YmRpciA9IHNvY2kvYmFja2VuZHMvcG9zdGdy ZXNxbC90ZXN0CisrQUNMT0NBTF9NNCA9ICQodG9wX3NyY2RpcikvYWNsb2NhbC5tNAorK2FtX19h Y2xvY2FsX200X2RlcHMgPSAkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9ib29zdC5tNCBcCisrCSQo dG9wX3NyY2RpcikvY29uZmlnL2F4X215c3FsLm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcv YXhfb3JhY2xlX29jaS5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2F4X3Bvc3RncmVzcWwu bTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9jcHB1bml0Lm00IFwKKysJJCh0b3Bfc3JjZGly KS9jb25maWcvbGlidG9vbC5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2x0b3B0aW9ucy5t NCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2x0c3VnYXIubTQgXAorKwkkKHRvcF9zcmNkaXIp L2NvbmZpZy9sdHZlcnNpb24ubTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9sdH5vYnNvbGV0 ZS5tNCAkKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZS5hYworK2FtX19jb25maWd1cmVfZGVwcyA9ICQo YW1fX2FjbG9jYWxfbTRfZGVwcykgJChDT05GSUdVUkVfREVQRU5ERU5DSUVTKSBcCisrCSQoQUNM T0NBTF9NNCkKKytta2luc3RhbGxkaXJzID0gJChpbnN0YWxsX3NoKSAtZAorK0NPTkZJR19IRUFE RVIgPSAkKHRvcF9idWlsZGRpcikvc29jaS9jb25maWcuaAorK0NPTkZJR19DTEVBTl9GSUxFUyA9 CisrQ09ORklHX0NMRUFOX1ZQQVRIX0ZJTEVTID0KKytQUk9HUkFNUyA9ICQobm9pbnN0X1BST0dS QU1TKQorK2FtX19vYmplY3RzXzEgPSB0ZXN0X3Bvc3RncmVzcWwtdGVzdC1wb3N0Z3Jlc3FsLiQo T0JKRVhUKQorK2FtX3Rlc3RfcG9zdGdyZXNxbF9PQkpFQ1RTID0gJChhbV9fb2JqZWN0c18xKQor K3Rlc3RfcG9zdGdyZXNxbF9PQkpFQ1RTID0gJChhbV90ZXN0X3Bvc3RncmVzcWxfT0JKRUNUUykK Kyt0ZXN0X3Bvc3RncmVzcWxfREVQRU5ERU5DSUVTID0KKyt0ZXN0X3Bvc3RncmVzcWxfTElOSyA9 ICQoTElCVE9PTCkgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSBcCisrCSQoTElCVE9PTEZM QUdTKSAtLW1vZGU9bGluayAkKENYWExEKSBcCisrCSQodGVzdF9wb3N0Z3Jlc3FsX0NYWEZMQUdT KSAkKENYWEZMQUdTKSBcCisrCSQodGVzdF9wb3N0Z3Jlc3FsX0xERkxBR1MpICQoTERGTEFHUykg LW8gJEAKKytERUZBVUxUX0lOQ0xVREVTID0gLUkuQGFtX19pc3JjQCAtSSQodG9wX2J1aWxkZGly KS9zb2NpCisrZGVwY29tcCA9ICQoU0hFTEwpICQodG9wX3NyY2RpcikvY29uZmlnL2RlcGNvbXAK KythbV9fZGVwZmlsZXNfbWF5YmUgPSBkZXBmaWxlcworK2FtX19tdiA9IG12IC1mCisrQ1hYQ09N UElMRSA9ICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgXAor KwkkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKEFNX0NYWEZMQUdTKSAkKENYWEZMQUdTKQor K0xUQ1hYQ09NUElMRSA9ICQoTElCVE9PTCkgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAk KExJQlRPT0xGTEFHUykgXAorKwktLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFV TFRfSU5DTFVERVMpICQoSU5DTFVERVMpIFwKKysJJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykg JChBTV9DWFhGTEFHUykgJChDWFhGTEFHUykKKytDWFhMRCA9ICQoQ1hYKQorK0NYWExJTksgPSAk KExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIFwK KysJLS1tb2RlPWxpbmsgJChDWFhMRCkgJChBTV9DWFhGTEFHUykgJChDWFhGTEFHUykgJChBTV9M REZMQUdTKSBcCisrCSQoTERGTEFHUykgLW8gJEAKKytTT1VSQ0VTID0gJCh0ZXN0X3Bvc3RncmVz cWxfU09VUkNFUykKKytESVNUX1NPVVJDRVMgPSAkKHRlc3RfcG9zdGdyZXNxbF9TT1VSQ0VTKQor K0VUQUdTID0gZXRhZ3MKKytDVEFHUyA9IGN0YWdzCisrRElTVEZJTEVTID0gJChESVNUX0NPTU1P TikgJChESVNUX1NPVVJDRVMpICQoVEVYSU5GT1MpICQoRVhUUkFfRElTVCkKKytBQ0xPQ0FMID0g QEFDTE9DQUxACisrQU1UQVIgPSBAQU1UQVJACisrQVIgPSBAQVJACisrQVVUT0NPTkYgPSBAQVVU T0NPTkZACisrQVVUT0hFQURFUiA9IEBBVVRPSEVBREVSQAorK0FVVE9NQUtFID0gQEFVVE9NQUtF QAorK0FXSyA9IEBBV0tACisrQk9PU1RfQ0ZMQUdTID0gQEJPT1NUX0NGTEFHU0AKKytCT09TVF9E QVRFX1RJTUVfTElCID0gQEJPT1NUX0RBVEVfVElNRV9MSUJACisrQk9PU1RfRklMRVNZU1RFTV9M SUIgPSBAQk9PU1RfRklMRVNZU1RFTV9MSUJACisrQk9PU1RfSU9TVFJFQU1TX0xJQiA9IEBCT09T VF9JT1NUUkVBTVNfTElCQAorK0JPT1NUX0xJQlMgPSBAQk9PU1RfTElCU0AKKytCT09TVF9NUElf TElCID0gQEJPT1NUX01QSV9MSUJACisrQk9PU1RfTVBJX1BZVEhPTl9MSUIgPSBAQk9PU1RfTVBJ X1BZVEhPTl9MSUJACisrQk9PU1RfUFJPR1JBTV9PUFRJT05TX0xJQiA9IEBCT09TVF9QUk9HUkFN X09QVElPTlNfTElCQAorK0JPT1NUX1BZVEhPTl9MSUIgPSBAQk9PU1RfUFlUSE9OX0xJQkAKKytC T09TVF9SRUdFWF9MSUIgPSBAQk9PU1RfUkVHRVhfTElCQAorK0JPT1NUX1NFUklBTElaQVRJT05f TElCID0gQEJPT1NUX1NFUklBTElaQVRJT05fTElCQAorK0JPT1NUX1NJR05BTFNfTElCID0gQEJP T1NUX1NJR05BTFNfTElCQAorK0JPT1NUX1NZU1RFTV9MSUIgPSBAQk9PU1RfU1lTVEVNX0xJQkAK KytCT09TVF9USFJFQURfTElCID0gQEJPT1NUX1RIUkVBRF9MSUJACisrQk9PU1RfVU5JVF9URVNU X0ZSQU1FV09SS19MSUIgPSBAQk9PU1RfVU5JVF9URVNUX0ZSQU1FV09SS19MSUJACisrQk9PU1Rf VkVSU0lPTiA9IEBCT09TVF9WRVJTSU9OQAorK0JPT1NUX1dTRVJJQUxJWkFUSU9OX0xJQiA9IEBC T09TVF9XU0VSSUFMSVpBVElPTl9MSUJACisrQ0MgPSBAQ0NACisrQ0NERVBNT0RFID0gQENDREVQ TU9ERUAKKytDRkxBR1MgPSBAQ0ZMQUdTQAorK0NQUCA9IEBDUFBACisrQ1BQRkxBR1MgPSBAQ1BQ RkxBR1NACisrQ1BQVU5JVF9DRkxBR1MgPSBAQ1BQVU5JVF9DRkxBR1NACisrQ1BQVU5JVF9DT05G SUcgPSBAQ1BQVU5JVF9DT05GSUdACisrQ1BQVU5JVF9MSUJTID0gQENQUFVOSVRfTElCU0AKKytD UFBVTklUX1ZFUlNJT04gPSBAQ1BQVU5JVF9WRVJTSU9OQAorK0NYWCA9IEBDWFhACisrQ1hYQ1BQ ID0gQENYWENQUEAKKytDWFhERVBNT0RFID0gQENYWERFUE1PREVACisrQ1hYRkxBR1MgPSBAQ1hY RkxBR1NACisrQ1lHUEFUSF9XID0gQENZR1BBVEhfV0AKKytERUZTID0gQERFRlNACisrREVQRElS ID0gQERFUERJUkAKKytEU1lNVVRJTCA9IEBEU1lNVVRJTEAKKytEVU1QQklOID0gQERVTVBCSU5A CisrRUNIT19DID0gQEVDSE9fQ0AKKytFQ0hPX04gPSBARUNIT19OQAorK0VDSE9fVCA9IEBFQ0hP X1RACisrRUdSRVAgPSBARUdSRVBACisrRVhFRVhUID0gQEVYRUVYVEAKKytGR1JFUCA9IEBGR1JF UEAKKytHRU5FUklDX0xJQlJBUllfVkVSU0lPTiA9IEBHRU5FUklDX0xJQlJBUllfVkVSU0lPTkAK KytHUkVQID0gQEdSRVBACisrSU5TVEFMTCA9IEBJTlNUQUxMQAorK0lOU1RBTExfREFUQSA9IEBJ TlNUQUxMX0RBVEFACisrSU5TVEFMTF9QUk9HUkFNID0gQElOU1RBTExfUFJPR1JBTUAKKytJTlNU QUxMX1NDUklQVCA9IEBJTlNUQUxMX1NDUklQVEAKKytJTlNUQUxMX1NUUklQX1BST0dSQU0gPSBA SU5TVEFMTF9TVFJJUF9QUk9HUkFNQAorK0xEID0gQExEQAorK0xERkxBR1MgPSBATERGTEFHU0AK KytMSUJPQkpTID0gQExJQk9CSlNACisrTElCUyA9IEBMSUJTQAorK0xJQlRPT0wgPSBATElCVE9P TEAKKytMSVBPID0gQExJUE9ACisrTE5fUyA9IEBMTl9TQAorK0xUTElCT0JKUyA9IEBMVExJQk9C SlNACisrTUFLRUlORk8gPSBATUFLRUlORk9ACisrTUtESVJfUCA9IEBNS0RJUl9QQAorK01ZU1FM X0NGTEFHUyA9IEBNWVNRTF9DRkxBR1NACisrTVlTUUxfQ19MSUIgPSBATVlTUUxfQ19MSUJACisr TVlTUUxfRElSUyA9IEBNWVNRTF9ESVJTQAorK01ZU1FMX0xJQlMgPSBATVlTUUxfTElCU0AKKytN WVNRTF9WRVJTSU9OID0gQE1ZU1FMX1ZFUlNJT05ACisrTk0gPSBATk1ACisrTk1FRElUID0gQE5N RURJVEAKKytPQkpEVU1QID0gQE9CSkRVTVBACisrT0JKRVhUID0gQE9CSkVYVEAKKytPUkFDTEVf RElSUyA9IEBPUkFDTEVfRElSU0AKKytPUkFDTEVfT0NJX0NGTEFHUyA9IEBPUkFDTEVfT0NJX0NG TEFHU0AKKytPUkFDTEVfT0NJX0xERkxBR1MgPSBAT1JBQ0xFX09DSV9MREZMQUdTQAorK09SQUNM RV9PQ0lfVkVSU0lPTiA9IEBPUkFDTEVfT0NJX1ZFUlNJT05ACisrT1RPT0wgPSBAT1RPT0xACisr T1RPT0w2NCA9IEBPVE9PTDY0QAorK1BBQ0tBR0UgPSBAUEFDS0FHRUAKKytQQUNLQUdFX0JVR1JF UE9SVCA9IEBQQUNLQUdFX0JVR1JFUE9SVEAKKytQQUNLQUdFX05BTUUgPSBAUEFDS0FHRV9OQU1F QAorK1BBQ0tBR0VfU1RSSU5HID0gQFBBQ0tBR0VfU1RSSU5HQAorK1BBQ0tBR0VfVEFSTkFNRSA9 IEBQQUNLQUdFX1RBUk5BTUVACisrUEFDS0FHRV9WRVJTSU9OID0gQFBBQ0tBR0VfVkVSU0lPTkAK KytQQVRIX1NFUEFSQVRPUiA9IEBQQVRIX1NFUEFSQVRPUkAKKytQRVJMID0gQFBFUkxACisrUEdf Q09ORklHID0gQFBHX0NPTkZJR0AKKytQT1NUR1JFU1FMX0NGTEFHUyA9IEBQT1NUR1JFU1FMX0NG TEFHU0AKKytQT1NUR1JFU1FMX0RJUlMgPSBAUE9TVEdSRVNRTF9ESVJTQAorK1BPU1RHUkVTUUxf TERGTEFHUyA9IEBQT1NUR1JFU1FMX0xERkxBR1NACisrUE9TVEdSRVNRTF9WRVJTSU9OID0gQFBP U1RHUkVTUUxfVkVSU0lPTkAKKytSQU5MSUIgPSBAUkFOTElCQAorK1JQTV9SRUxFQVNFID0gQFJQ TV9SRUxFQVNFQAorK1NFRCA9IEBTRURACisrU0VUX01BS0UgPSBAU0VUX01BS0VACisrU0hFTEwg PSBAU0hFTExACisrU09DSV9IRUFERVJTX0JVUklFRCA9IEBTT0NJX0hFQURFUlNfQlVSSUVEQAor K1NPQ0lfTVlTUUxfSEVBREVSU19CVVJJRUQgPSBAU09DSV9NWVNRTF9IRUFERVJTX0JVUklFREAK KytTT0NJX1BPU1RHUkVTUUxfSEVBREVSU19CVVJJRUQgPSBAU09DSV9QT1NUR1JFU1FMX0hFQURF UlNfQlVSSUVEQAorK1NUUklQID0gQFNUUklQQAorK1VQTE9BRF9DT01NQU5EID0gQFVQTE9BRF9D T01NQU5EQAorK1ZFUlNJT04gPSBAVkVSU0lPTkAKKythYnNfYnVpbGRkaXIgPSBAYWJzX2J1aWxk ZGlyQAorK2Fic19zcmNkaXIgPSBAYWJzX3NyY2RpckAKKythYnNfdG9wX2J1aWxkZGlyID0gQGFi c190b3BfYnVpbGRkaXJACisrYWJzX3RvcF9zcmNkaXIgPSBAYWJzX3RvcF9zcmNkaXJACisrYWNf Y3RfQ0MgPSBAYWNfY3RfQ0NACisrYWNfY3RfQ1hYID0gQGFjX2N0X0NYWEAKKythY19jdF9EVU1Q QklOID0gQGFjX2N0X0RVTVBCSU5ACisrYW1fX2luY2x1ZGUgPSBAYW1fX2luY2x1ZGVACisrYW1f X2xlYWRpbmdfZG90ID0gQGFtX19sZWFkaW5nX2RvdEAKKythbV9fcXVvdGUgPSBAYW1fX3F1b3Rl QAorK2FtX190YXIgPSBAYW1fX3RhckAKKythbV9fdW50YXIgPSBAYW1fX3VudGFyQAorK2JpbmRp ciA9IEBiaW5kaXJACisrYnVpbGQgPSBAYnVpbGRACisrYnVpbGRfYWxpYXMgPSBAYnVpbGRfYWxp YXNACisrYnVpbGRfY3B1ID0gQGJ1aWxkX2NwdUAKKytidWlsZF9vcyA9IEBidWlsZF9vc0AKKyti dWlsZF92ZW5kb3IgPSBAYnVpbGRfdmVuZG9yQAorK2J1aWxkZGlyID0gQGJ1aWxkZGlyQAorK2Rh dGFkaXIgPSBAZGF0YWRpckAKKytkYXRhcm9vdGRpciA9IEBkYXRhcm9vdGRpckAKKytkaWZmX29r ID0gQGRpZmZfb2tACisrZG9jZGlyID0gQGRvY2RpckAKKytkb3h5Z2VuX29rID0gQGRveHlnZW5f b2tACisrZHZpZGlyID0gQGR2aWRpckAKKytkdmlwc19vayA9IEBkdmlwc19va0AKKytleGVjX3By ZWZpeCA9IEBleGVjX3ByZWZpeEAKKytnc19vayA9IEBnc19va0AKKytob3N0ID0gQGhvc3RACisr aG9zdF9hbGlhcyA9IEBob3N0X2FsaWFzQAorK2hvc3RfY3B1ID0gQGhvc3RfY3B1QAorK2hvc3Rf b3MgPSBAaG9zdF9vc0AKKytob3N0X3ZlbmRvciA9IEBob3N0X3ZlbmRvckAKKytodG1sZGlyID0g QGh0bWxkaXJACisraW5jbHVkZWRpciA9IEBpbmNsdWRlZGlyQAorK2luZm9kaXIgPSBAaW5mb2Rp ckAKKytpbnN0YWxsX3NoID0gQGluc3RhbGxfc2hACisrbGF0ZXhfb2sgPSBAbGF0ZXhfb2tACisr bGliZGlyID0gQGxpYmRpckAKKytsaWJleGVjZGlyID0gQGxpYmV4ZWNkaXJACisrbG9jYWxlZGly ID0gQGxvY2FsZWRpckAKKytsb2NhbHN0YXRlZGlyID0gQGxvY2Fsc3RhdGVkaXJACisrbHRfRUNI TyA9IEBsdF9FQ0hPQAorK21hbmRpciA9IEBtYW5kaXJACisrbWtkaXJfcCA9IEBta2Rpcl9wQAor K29sZGluY2x1ZGVkaXIgPSBAb2xkaW5jbHVkZWRpckAKKytwZGZkaXIgPSBAcGRmZGlyQAorK3By ZWZpeCA9IEBwcmVmaXhACisrcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZSA9IEBwcm9ncmFtX3RyYW5z Zm9ybV9uYW1lQAorK3BzZGlyID0gQHBzZGlyQAorK3NiaW5kaXIgPSBAc2JpbmRpckAKKytzZWRf b2sgPSBAc2VkX29rQAorK3NoYXJlZHN0YXRlZGlyID0gQHNoYXJlZHN0YXRlZGlyQAorK3NyY2Rp ciA9IEBzcmNkaXJACisrc3lzY29uZmRpciA9IEBzeXNjb25mZGlyQAorK3RhcmdldF9hbGlhcyA9 IEB0YXJnZXRfYWxpYXNACisrdG9wX2J1aWxkX3ByZWZpeCA9IEB0b3BfYnVpbGRfcHJlZml4QAor K3RvcF9idWlsZGRpciA9IEB0b3BfYnVpbGRkaXJACisrdG9wX3NyY2RpciA9IEB0b3Bfc3JjZGly QAorK0FNX0NQUEZMQUdTID0gLUkkKHRvcF9idWlsZGRpcikgLUkkKHRvcF9zcmNkaXIpCisrcG9z dGdyZXNxbF90ZXN0X2hfc291cmNlcyA9IAorK3Bvc3RncmVzcWxfdGVzdF9jY19zb3VyY2VzID0g JCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvdGVzdC90ZXN0LXBvc3RncmVz cWwuY3BwCisrTUFJTlRBSU5FUkNMRUFORklMRVMgPSBNYWtlZmlsZS5pbgorK3Rlc3RfcG9zdGdy ZXNxbF9TT1VSQ0VTID0gJChwb3N0Z3Jlc3FsX3Rlc3RfY2Nfc291cmNlcykKKyt0ZXN0X3Bvc3Rn cmVzcWxfQ1hYRkxBR1MgPSAkKEJPT1NUX0NGTEFHUykKKyt0ZXN0X3Bvc3RncmVzcWxfTERBREQg PSAKKyt0ZXN0X3Bvc3RncmVzcWxfTERGTEFHUyA9ICQodG9wX2J1aWxkZGlyKS9zb2NpL2NvcmUv bGlic29jaV9jb3JlLmxhIC1sZGwgXAorKwkJJCh0b3BfYnVpbGRkaXIpL3NvY2kvYmFja2VuZHMv cG9zdGdyZXNxbC9saWJzb2NpX3Bvc3RncmVzcWwubGEgXAorKwkJJChQT1NUR1JFU1FMX0xERkxB R1MpCisrCisrYWxsOiBhbGwtYW0KKysKKysuU1VGRklYRVM6CisrLlNVRkZJWEVTOiAuY3BwIC5s byAubyAub2JqCisrJChzcmNkaXIpL01ha2VmaWxlLmluOiAgJChzcmNkaXIpL01ha2VmaWxlLmFt ICQodG9wX3NyY2RpcikvTWFrZWZpbGUuY29tbW9uICQoc3JjZGlyKS9zb3VyY2VzLm1rICQoYW1f X2NvbmZpZ3VyZV9kZXBzKQorKwlAZm9yIGRlcCBpbiAkPzsgZG8gXAorKwkgIGNhc2UgJyQoYW1f X2NvbmZpZ3VyZV9kZXBzKScgaW4gXAorKwkgICAgKiQkZGVwKikgXAorKwkgICAgICAoIGNkICQo dG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaCApIFwK KysJICAgICAgICAmJiB7IGlmIHRlc3QgLWYgJEA7IHRoZW4gZXhpdCAwOyBlbHNlIGJyZWFrOyBm aTsgfTsgXAorKwkgICAgICBleGl0IDE7OyBcCisrCSAgZXNhYzsgXAorKwlkb25lOyBcCisrCWVj aG8gJyBjZCAkKHRvcF9zcmNkaXIpICYmICQoQVVUT01BS0UpIC0tZ251IHNvY2kvYmFja2VuZHMv cG9zdGdyZXNxbC90ZXN0L01ha2VmaWxlJzsgXAorKwkkKGFtX19jZCkgJCh0b3Bfc3JjZGlyKSAm JiBcCisrCSAgJChBVVRPTUFLRSkgLS1nbnUgc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Rlc3Qv TWFrZWZpbGUKKysuUFJFQ0lPVVM6IE1ha2VmaWxlCisrTWFrZWZpbGU6ICQoc3JjZGlyKS9NYWtl ZmlsZS5pbiAkKHRvcF9idWlsZGRpcikvY29uZmlnLnN0YXR1cworKwlAY2FzZSAnJD8nIGluIFwK KysJICAqY29uZmlnLnN0YXR1cyopIFwKKysJICAgIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1B S0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaDs7IFwKKysJICAqKSBcCisrCSAgICBlY2hv ICcgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoU0hFTEwpIC4vY29uZmlnLnN0YXR1cyAkKHN1YmRp cikvJEAgJChhbV9fZGVwZmlsZXNfbWF5YmUpJzsgXAorKwkgICAgY2QgJCh0b3BfYnVpbGRkaXIp ICYmICQoU0hFTEwpIC4vY29uZmlnLnN0YXR1cyAkKHN1YmRpcikvJEAgJChhbV9fZGVwZmlsZXNf bWF5YmUpOzsgXAorKwllc2FjOworKworKyQodG9wX2J1aWxkZGlyKS9jb25maWcuc3RhdHVzOiAk KHRvcF9zcmNkaXIpL2NvbmZpZ3VyZSAkKENPTkZJR19TVEFUVVNfREVQRU5ERU5DSUVTKQorKwlj ZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gK KysKKyskKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZTogICQoYW1fX2NvbmZpZ3VyZV9kZXBzKQorKwlj ZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gK KyskKEFDTE9DQUxfTTQpOiAgJChhbV9fYWNsb2NhbF9tNF9kZXBzKQorKwljZCAkKHRvcF9idWls ZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gKKyskKGFtX19hY2xv Y2FsX200X2RlcHMpOgorKworK2NsZWFuLW5vaW5zdFBST0dSQU1TOgorKwlAbGlzdD0nJChub2lu c3RfUFJPR1JBTVMpJzsgdGVzdCAtbiAiJCRsaXN0IiB8fCBleGl0IDA7IFwKKysJZWNobyAiIHJt IC1mIiAkJGxpc3Q7IFwKKysJcm0gLWYgJCRsaXN0IHx8IGV4aXQgJCQ/OyBcCisrCXRlc3QgLW4g IiQoRVhFRVhUKSIgfHwgZXhpdCAwOyBcCisrCWxpc3Q9YGZvciBwIGluICQkbGlzdDsgZG8gZWNo byAiJCRwIjsgZG9uZSB8IHNlZCAncy8kKEVYRUVYVCkkJC8vJ2A7IFwKKysJZWNobyAiIHJtIC1m IiAkJGxpc3Q7IFwKKysJcm0gLWYgJCRsaXN0CisrdGVzdF9wb3N0Z3Jlc3FsJChFWEVFWFQpOiAk KHRlc3RfcG9zdGdyZXNxbF9PQkpFQ1RTKSAkKHRlc3RfcG9zdGdyZXNxbF9ERVBFTkRFTkNJRVMp IAorKwlAcm0gLWYgdGVzdF9wb3N0Z3Jlc3FsJChFWEVFWFQpCisrCSQodGVzdF9wb3N0Z3Jlc3Fs X0xJTkspICQodGVzdF9wb3N0Z3Jlc3FsX09CSkVDVFMpICQodGVzdF9wb3N0Z3Jlc3FsX0xEQURE KSAkKExJQlMpCisrCisrbW9zdGx5Y2xlYW4tY29tcGlsZToKKysJLXJtIC1mICouJChPQkpFWFQp CisrCisrZGlzdGNsZWFuLWNvbXBpbGU6CisrCS1ybSAtZiAqLnRhYi5jCisrCisrQEFNREVQX1RS VUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL3Rlc3RfcG9zdGdyZXNxbC10 ZXN0LXBvc3RncmVzcWwuUG9AYW1fX3F1b3RlQAorKworKy5jcHAubzoKKytAYW1fX2Zhc3RkZXBD WFhfVFJVRUAJJChDWFhDT01QSUxFKSAtTVQgJEAgLU1EIC1NUCAtTUYgJChERVBESVIpLyQqLlRw byAtYyAtbyAkQCAkPAorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKGFtX19tdikgJChERVBESVIp LyQqLlRwbyAkKERFUERJUikvJCouUG8KKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFM U0VACXNvdXJjZT0nJDwnIG9iamVjdD0nJEAnIGxpYnRvb2w9bm8gQEFNREVQQkFDS1NMQVNIQAor K0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENY WERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorK0BhbV9fZmFzdGRlcENYWF9G QUxTRUAJJChDWFhDT01QSUxFKSAtYyAtbyAkQCAkPAorKworKy5jcHAub2JqOgorK0BhbV9fZmFz dGRlcENYWF9UUlVFQAkkKENYWENPTVBJTEUpIC1NVCAkQCAtTUQgLU1QIC1NRiAkKERFUERJUikv JCouVHBvIC1jIC1vICRAIGAkKENZR1BBVEhfVykgJyQ8J2AKKytAYW1fX2Zhc3RkZXBDWFhfVFJV RUAJJChhbV9fbXYpICQoREVQRElSKS8kKi5UcG8gJChERVBESVIpLyQqLlBvCisrQEFNREVQX1RS VUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQ8JyBvYmplY3Q9JyRAJyBsaWJ0b29s PW5vIEBBTURFUEJBQ0tTTEFTSEAKKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VA CURFUERJUj0kKERFUERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFT SEAKKytAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQoQ1hYQ09NUElMRSkgLWMgLW8gJEAgYCQoQ1lH UEFUSF9XKSAnJDwnYAorKworKy5jcHAubG86CisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoTFRD WFhDT01QSUxFKSAtTVQgJEAgLU1EIC1NUCAtTUYgJChERVBESVIpLyQqLlRwbyAtYyAtbyAkQCAk PAorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKGFtX19tdikgJChERVBESVIpLyQqLlRwbyAkKERF UERJUikvJCouUGxvCisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9 JyQ8JyBvYmplY3Q9JyRAJyBsaWJ0b29sPXllcyBAQU1ERVBCQUNLU0xBU0hACisrQEFNREVQX1RS VUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkg JChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACisrQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKExU Q1hYQ09NUElMRSkgLWMgLW8gJEAgJDwKKysKKyt0ZXN0X3Bvc3RncmVzcWwtdGVzdC1wb3N0Z3Jl c3FsLm86ICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Rlc3QvdGVzdC1w b3N0Z3Jlc3FsLmNwcAorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKENYWCkgJChERUZTKSAkKERF RkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQo dGVzdF9wb3N0Z3Jlc3FsX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtTVQgdGVzdF9wb3N0Z3Jlc3Fs LXRlc3QtcG9zdGdyZXNxbC5vIC1NRCAtTVAgLU1GICQoREVQRElSKS90ZXN0X3Bvc3RncmVzcWwt dGVzdC1wb3N0Z3Jlc3FsLlRwbyAtYyAtbyB0ZXN0X3Bvc3RncmVzcWwtdGVzdC1wb3N0Z3Jlc3Fs Lm8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Rlc3Qv dGVzdC1wb3N0Z3Jlc3FsLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9z b2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvdGVzdC90ZXN0LXBvc3RncmVzcWwuY3BwCisrQGFtX19m YXN0ZGVwQ1hYX1RSVUVACSQoYW1fX212KSAkKERFUERJUikvdGVzdF9wb3N0Z3Jlc3FsLXRlc3Qt cG9zdGdyZXNxbC5UcG8gJChERVBESVIpL3Rlc3RfcG9zdGdyZXNxbC10ZXN0LXBvc3RncmVzcWwu UG8KKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJCh0b3Bfc3Jj ZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvdGVzdC90ZXN0LXBvc3RncmVzcWwuY3BwJyBv YmplY3Q9J3Rlc3RfcG9zdGdyZXNxbC10ZXN0LXBvc3RncmVzcWwubycgbGlidG9vbD1ubyBAQU1E RVBCQUNLU0xBU0hACisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9 JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACisrQGFt X19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQo SU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQodGVzdF9wb3N0Z3Jlc3FsX0NY WEZMQUdTKSAkKENYWEZMQUdTKSAtYyAtbyB0ZXN0X3Bvc3RncmVzcWwtdGVzdC1wb3N0Z3Jlc3Fs Lm8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Rlc3Qv dGVzdC1wb3N0Z3Jlc3FsLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9z b2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvdGVzdC90ZXN0LXBvc3RncmVzcWwuY3BwCisrCisrdGVz dF9wb3N0Z3Jlc3FsLXRlc3QtcG9zdGdyZXNxbC5vYmo6ICQodG9wX3NyY2Rpcikvc29jaS9iYWNr ZW5kcy9wb3N0Z3Jlc3FsL3Rlc3QvdGVzdC1wb3N0Z3Jlc3FsLmNwcAorK0BhbV9fZmFzdGRlcENY WF9UUlVFQAkkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQo QU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQodGVzdF9wb3N0Z3Jlc3FsX0NYWEZMQUdTKSAkKENY WEZMQUdTKSAtTVQgdGVzdF9wb3N0Z3Jlc3FsLXRlc3QtcG9zdGdyZXNxbC5vYmogLU1EIC1NUCAt TUYgJChERVBESVIpL3Rlc3RfcG9zdGdyZXNxbC10ZXN0LXBvc3RncmVzcWwuVHBvIC1jIC1vIHRl c3RfcG9zdGdyZXNxbC10ZXN0LXBvc3RncmVzcWwub2JqIGBpZiB0ZXN0IC1mICckKHRvcF9zcmNk aXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC90ZXN0L3Rlc3QtcG9zdGdyZXNxbC5jcHAnOyB0 aGVuICQoQ1lHUEFUSF9XKSAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwv dGVzdC90ZXN0LXBvc3RncmVzcWwuY3BwJzsgZWxzZSAkKENZR1BBVEhfVykgJyQoc3JjZGlyKS8k KHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC90ZXN0L3Rlc3QtcG9zdGdyZXNx bC5jcHAnOyBmaWAKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChhbV9fbXYpICQoREVQRElSKS90 ZXN0X3Bvc3RncmVzcWwtdGVzdC1wb3N0Z3Jlc3FsLlRwbyAkKERFUERJUikvdGVzdF9wb3N0Z3Jl c3FsLXRlc3QtcG9zdGdyZXNxbC5QbworK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxT RUAJc291cmNlPSckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC90ZXN0L3Rl c3QtcG9zdGdyZXNxbC5jcHAnIG9iamVjdD0ndGVzdF9wb3N0Z3Jlc3FsLXRlc3QtcG9zdGdyZXNx bC5vYmonIGxpYnRvb2w9bm8gQEFNREVQQkFDS1NMQVNIQAorK0BBTURFUF9UUlVFQEBhbV9fZmFz dGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkg QEFNREVQQkFDS1NMQVNIQAorK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChDWFgpICQoREVGUykg JChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdT KSAkKHRlc3RfcG9zdGdyZXNxbF9DWFhGTEFHUykgJChDWFhGTEFHUykgLWMgLW8gdGVzdF9wb3N0 Z3Jlc3FsLXRlc3QtcG9zdGdyZXNxbC5vYmogYGlmIHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29j aS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Rlc3QvdGVzdC1wb3N0Z3Jlc3FsLmNwcCc7IHRoZW4gJChD WUdQQVRIX1cpICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC90ZXN0L3Rl c3QtcG9zdGdyZXNxbC5jcHAnOyBlbHNlICQoQ1lHUEFUSF9XKSAnJChzcmNkaXIpLyQodG9wX3Ny Y2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Rlc3QvdGVzdC1wb3N0Z3Jlc3FsLmNwcCc7 IGZpYAorKworK21vc3RseWNsZWFuLWxpYnRvb2w6CisrCS1ybSAtZiAqLmxvCisrCisrY2xlYW4t bGlidG9vbDoKKysJLXJtIC1yZiAubGlicyBfbGlicworKworK0lEOiAkKEhFQURFUlMpICQoU09V UkNFUykgJChMSVNQKSAkKFRBR1NfRklMRVMpCisrCWxpc3Q9JyQoU09VUkNFUykgJChIRUFERVJT KSAkKExJU1ApICQoVEFHU19GSUxFUyknOyBcCisrCXVuaXF1ZT1gZm9yIGkgaW4gJCRsaXN0OyBk byBcCisrCSAgICBpZiB0ZXN0IC1mICIkJGkiOyB0aGVuIGVjaG8gJCRpOyBlbHNlIGVjaG8gJChz cmNkaXIpLyQkaTsgZmk7IFwKKysJICBkb25lIHwgXAorKwkgICQoQVdLKSAneyBmaWxlc1skJDBd ID0gMTsgbm9uZW1wdHkgPSAxOyB9IFwKKysJICAgICAgRU5EIHsgaWYgKG5vbmVtcHR5KSB7IGZv ciAoaSBpbiBmaWxlcykgcHJpbnQgaTsgfTsgfSdgOyBcCisrCW1raWQgLWZJRCAkJHVuaXF1ZQor K3RhZ3M6IFRBR1MKKysKKytUQUdTOiAgJChIRUFERVJTKSAkKFNPVVJDRVMpICAkKFRBR1NfREVQ RU5ERU5DSUVTKSBcCisrCQkkKFRBR1NfRklMRVMpICQoTElTUCkKKysJc2V0IHg7IFwKKysJaGVy ZT1gcHdkYDsgXAorKwlsaXN0PSckKFNPVVJDRVMpICQoSEVBREVSUykgICQoTElTUCkgJChUQUdT X0ZJTEVTKSc7IFwKKysJdW5pcXVlPWBmb3IgaSBpbiAkJGxpc3Q7IGRvIFwKKysJICAgIGlmIHRl c3QgLWYgIiQkaSI7IHRoZW4gZWNobyAkJGk7IGVsc2UgZWNobyAkKHNyY2RpcikvJCRpOyBmaTsg XAorKwkgIGRvbmUgfCBcCisrCSAgJChBV0spICd7IGZpbGVzWyQkMF0gPSAxOyBub25lbXB0eSA9 IDE7IH0gXAorKwkgICAgICBFTkQgeyBpZiAobm9uZW1wdHkpIHsgZm9yIChpIGluIGZpbGVzKSBw cmludCBpOyB9OyB9J2A7IFwKKysJc2hpZnQ7IFwKKysJaWYgdGVzdCAteiAiJChFVEFHU19BUkdT KSQkKiQkdW5pcXVlIjsgdGhlbiA6OyBlbHNlIFwKKysJICB0ZXN0IC1uICIkJHVuaXF1ZSIgfHwg dW5pcXVlPSQkZW1wdHlfZml4OyBcCisrCSAgaWYgdGVzdCAkJCMgLWd0IDA7IHRoZW4gXAorKwkg ICAgJChFVEFHUykgJChFVEFHU0ZMQUdTKSAkKEFNX0VUQUdTRkxBR1MpICQoRVRBR1NfQVJHUykg XAorKwkgICAgICAiJCRAIiAkJHVuaXF1ZTsgXAorKwkgIGVsc2UgXAorKwkgICAgJChFVEFHUykg JChFVEFHU0ZMQUdTKSAkKEFNX0VUQUdTRkxBR1MpICQoRVRBR1NfQVJHUykgXAorKwkgICAgICAk JHVuaXF1ZTsgXAorKwkgIGZpOyBcCisrCWZpCisrY3RhZ3M6IENUQUdTCisrQ1RBR1M6ICAkKEhF QURFUlMpICQoU09VUkNFUykgICQoVEFHU19ERVBFTkRFTkNJRVMpIFwKKysJCSQoVEFHU19GSUxF UykgJChMSVNQKQorKwlsaXN0PSckKFNPVVJDRVMpICQoSEVBREVSUykgICQoTElTUCkgJChUQUdT X0ZJTEVTKSc7IFwKKysJdW5pcXVlPWBmb3IgaSBpbiAkJGxpc3Q7IGRvIFwKKysJICAgIGlmIHRl c3QgLWYgIiQkaSI7IHRoZW4gZWNobyAkJGk7IGVsc2UgZWNobyAkKHNyY2RpcikvJCRpOyBmaTsg XAorKwkgIGRvbmUgfCBcCisrCSAgJChBV0spICd7IGZpbGVzWyQkMF0gPSAxOyBub25lbXB0eSA9 IDE7IH0gXAorKwkgICAgICBFTkQgeyBpZiAobm9uZW1wdHkpIHsgZm9yIChpIGluIGZpbGVzKSBw cmludCBpOyB9OyB9J2A7IFwKKysJdGVzdCAteiAiJChDVEFHU19BUkdTKSQkdW5pcXVlIiBcCisr CSAgfHwgJChDVEFHUykgJChDVEFHU0ZMQUdTKSAkKEFNX0NUQUdTRkxBR1MpICQoQ1RBR1NfQVJH UykgXAorKwkgICAgICQkdW5pcXVlCisrCisrR1RBR1M6CisrCWhlcmU9YCQoYW1fX2NkKSAkKHRv cF9idWlsZGRpcikgJiYgcHdkYCBcCisrCSAgJiYgJChhbV9fY2QpICQodG9wX3NyY2RpcikgXAor KwkgICYmIGd0YWdzIC1pICQoR1RBR1NfQVJHUykgIiQkaGVyZSIKKysKKytkaXN0Y2xlYW4tdGFn czoKKysJLXJtIC1mIFRBR1MgSUQgR1RBR1MgR1JUQUdTIEdTWU1TIEdQQVRIIHRhZ3MKKysKKytk aXN0ZGlyOiAkKERJU1RGSUxFUykKKysJQHNyY2RpcnN0cmlwPWBlY2hvICIkKHNyY2RpcikiIHwg c2VkICdzL1tdLlteJCRcXCpdL1xcXFwmL2cnYDsgXAorKwl0b3BzcmNkaXJzdHJpcD1gZWNobyAi JCh0b3Bfc3JjZGlyKSIgfCBzZWQgJ3MvW10uW14kJFxcKl0vXFxcXCYvZydgOyBcCisrCWxpc3Q9 JyQoRElTVEZJTEVTKSc7IFwKKysJICBkaXN0X2ZpbGVzPWBmb3IgZmlsZSBpbiAkJGxpc3Q7IGRv IGVjaG8gJCRmaWxlOyBkb25lIHwgXAorKwkgIHNlZCAtZSAic3xeJCRzcmNkaXJzdHJpcC98fDt0 IiBcCisrCSAgICAgIC1lICJzfF4kJHRvcHNyY2RpcnN0cmlwL3wkKHRvcF9idWlsZGRpcikvfDt0 ImA7IFwKKysJY2FzZSAkJGRpc3RfZmlsZXMgaW4gXAorKwkgICovKikgJChNS0RJUl9QKSBgZWNo byAiJCRkaXN0X2ZpbGVzIiB8IFwKKysJCQkgICBzZWQgJy9cLy8hZDtzfF58JChkaXN0ZGlyKS98 O3MsL1teL10qJCQsLCcgfCBcCisrCQkJICAgc29ydCAtdWAgOzsgXAorKwllc2FjOyBcCisrCWZv ciBmaWxlIGluICQkZGlzdF9maWxlczsgZG8gXAorKwkgIGlmIHRlc3QgLWYgJCRmaWxlIHx8IHRl c3QgLWQgJCRmaWxlOyB0aGVuIGQ9LjsgZWxzZSBkPSQoc3JjZGlyKTsgZmk7IFwKKysJICBpZiB0 ZXN0IC1kICQkZC8kJGZpbGU7IHRoZW4gXAorKwkgICAgZGlyPWBlY2hvICIvJCRmaWxlIiB8IHNl ZCAtZSAncywvW14vXSokJCwsJ2A7IFwKKysJICAgIGlmIHRlc3QgLWQgIiQoZGlzdGRpcikvJCRm aWxlIjsgdGhlbiBcCisrCSAgICAgIGZpbmQgIiQoZGlzdGRpcikvJCRmaWxlIiAtdHlwZSBkICEg LXBlcm0gLTcwMCAtZXhlYyBjaG1vZCB1K3J3eCB7fSBcOzsgXAorKwkgICAgZmk7IFwKKysJICAg IGlmIHRlc3QgLWQgJChzcmNkaXIpLyQkZmlsZSAmJiB0ZXN0ICQkZCAhPSAkKHNyY2Rpcik7IHRo ZW4gXAorKwkgICAgICBjcCAtZnBSICQoc3JjZGlyKS8kJGZpbGUgIiQoZGlzdGRpcikkJGRpciIg fHwgZXhpdCAxOyBcCisrCSAgICAgIGZpbmQgIiQoZGlzdGRpcikvJCRmaWxlIiAtdHlwZSBkICEg LXBlcm0gLTcwMCAtZXhlYyBjaG1vZCB1K3J3eCB7fSBcOzsgXAorKwkgICAgZmk7IFwKKysJICAg IGNwIC1mcFIgJCRkLyQkZmlsZSAiJChkaXN0ZGlyKSQkZGlyIiB8fCBleGl0IDE7IFwKKysJICBl bHNlIFwKKysJICAgIHRlc3QgLWYgIiQoZGlzdGRpcikvJCRmaWxlIiBcCisrCSAgICB8fCBjcCAt cCAkJGQvJCRmaWxlICIkKGRpc3RkaXIpLyQkZmlsZSIgXAorKwkgICAgfHwgZXhpdCAxOyBcCisr CSAgZmk7IFwKKysJZG9uZQorK2NoZWNrLWFtOiBhbGwtYW0KKytjaGVjazogY2hlY2stYW0KKyth bGwtYW06IE1ha2VmaWxlICQoUFJPR1JBTVMpCisraW5zdGFsbGRpcnM6CisraW5zdGFsbDogaW5z dGFsbC1hbQorK2luc3RhbGwtZXhlYzogaW5zdGFsbC1leGVjLWFtCisraW5zdGFsbC1kYXRhOiBp bnN0YWxsLWRhdGEtYW0KKyt1bmluc3RhbGw6IHVuaW5zdGFsbC1hbQorKworK2luc3RhbGwtYW06 IGFsbC1hbQorKwlAJChNQUtFKSAkKEFNX01BS0VGTEFHUykgaW5zdGFsbC1leGVjLWFtIGluc3Rh bGwtZGF0YS1hbQorKworK2luc3RhbGxjaGVjazogaW5zdGFsbGNoZWNrLWFtCisraW5zdGFsbC1z dHJpcDoKKysJJChNQUtFKSAkKEFNX01BS0VGTEFHUykgSU5TVEFMTF9QUk9HUkFNPSIkKElOU1RB TExfU1RSSVBfUFJPR1JBTSkiIFwKKysJICBpbnN0YWxsX3NoX1BST0dSQU09IiQoSU5TVEFMTF9T VFJJUF9QUk9HUkFNKSIgSU5TVEFMTF9TVFJJUF9GTEFHPS1zIFwKKysJICBgdGVzdCAteiAnJChT VFJJUCknIHx8IFwKKysJICAgIGVjaG8gIklOU1RBTExfUFJPR1JBTV9FTlY9U1RSSVBQUk9HPSck KFNUUklQKSciYCBpbnN0YWxsCisrbW9zdGx5Y2xlYW4tZ2VuZXJpYzoKKysKKytjbGVhbi1nZW5l cmljOgorKworK2Rpc3RjbGVhbi1nZW5lcmljOgorKwktdGVzdCAteiAiJChDT05GSUdfQ0xFQU5f RklMRVMpIiB8fCBybSAtZiAkKENPTkZJR19DTEVBTl9GSUxFUykKKysJLXRlc3QgLiA9ICIkKHNy Y2RpcikiIHx8IHRlc3QgLXogIiQoQ09ORklHX0NMRUFOX1ZQQVRIX0ZJTEVTKSIgfHwgcm0gLWYg JChDT05GSUdfQ0xFQU5fVlBBVEhfRklMRVMpCisrCisrbWFpbnRhaW5lci1jbGVhbi1nZW5lcmlj OgorKwlAZWNobyAiVGhpcyBjb21tYW5kIGlzIGludGVuZGVkIGZvciBtYWludGFpbmVycyB0byB1 c2UiCisrCUBlY2hvICJpdCBkZWxldGVzIGZpbGVzIHRoYXQgbWF5IHJlcXVpcmUgc3BlY2lhbCB0 b29scyB0byByZWJ1aWxkLiIKKysJLXRlc3QgLXogIiQoTUFJTlRBSU5FUkNMRUFORklMRVMpIiB8 fCBybSAtZiAkKE1BSU5UQUlORVJDTEVBTkZJTEVTKQorK2NsZWFuOiBjbGVhbi1hbQorKworK2Ns ZWFuLWFtOiBjbGVhbi1nZW5lcmljIGNsZWFuLWxpYnRvb2wgY2xlYW4tbm9pbnN0UFJPR1JBTVMg XAorKwltb3N0bHljbGVhbi1hbQorKworK2Rpc3RjbGVhbjogZGlzdGNsZWFuLWFtCisrCS1ybSAt cmYgLi8kKERFUERJUikKKysJLXJtIC1mIE1ha2VmaWxlCisrZGlzdGNsZWFuLWFtOiBjbGVhbi1h bSBkaXN0Y2xlYW4tY29tcGlsZSBkaXN0Y2xlYW4tZ2VuZXJpYyBcCisrCWRpc3RjbGVhbi10YWdz CisrCisrZHZpOiBkdmktYW0KKysKKytkdmktYW06CisrCisraHRtbDogaHRtbC1hbQorKworK2h0 bWwtYW06CisrCisraW5mbzogaW5mby1hbQorKworK2luZm8tYW06CisrCisraW5zdGFsbC1kYXRh LWFtOgorKworK2luc3RhbGwtZHZpOiBpbnN0YWxsLWR2aS1hbQorKworK2luc3RhbGwtZHZpLWFt OgorKworK2luc3RhbGwtZXhlYy1hbToKKysKKytpbnN0YWxsLWh0bWw6IGluc3RhbGwtaHRtbC1h bQorKworK2luc3RhbGwtaHRtbC1hbToKKysKKytpbnN0YWxsLWluZm86IGluc3RhbGwtaW5mby1h bQorKworK2luc3RhbGwtaW5mby1hbToKKysKKytpbnN0YWxsLW1hbjoKKysKKytpbnN0YWxsLXBk ZjogaW5zdGFsbC1wZGYtYW0KKysKKytpbnN0YWxsLXBkZi1hbToKKysKKytpbnN0YWxsLXBzOiBp bnN0YWxsLXBzLWFtCisrCisraW5zdGFsbC1wcy1hbToKKysKKytpbnN0YWxsY2hlY2stYW06Cisr CisrbWFpbnRhaW5lci1jbGVhbjogbWFpbnRhaW5lci1jbGVhbi1hbQorKwktcm0gLXJmIC4vJChE RVBESVIpCisrCS1ybSAtZiBNYWtlZmlsZQorK21haW50YWluZXItY2xlYW4tYW06IGRpc3RjbGVh bi1hbSBtYWludGFpbmVyLWNsZWFuLWdlbmVyaWMKKysKKyttb3N0bHljbGVhbjogbW9zdGx5Y2xl YW4tYW0KKysKKyttb3N0bHljbGVhbi1hbTogbW9zdGx5Y2xlYW4tY29tcGlsZSBtb3N0bHljbGVh bi1nZW5lcmljIFwKKysJbW9zdGx5Y2xlYW4tbGlidG9vbAorKworK3BkZjogcGRmLWFtCisrCisr cGRmLWFtOgorKworK3BzOiBwcy1hbQorKworK3BzLWFtOgorKworK3VuaW5zdGFsbC1hbToKKysK KysuTUFLRTogaW5zdGFsbC1hbSBpbnN0YWxsLXN0cmlwCisrCisrLlBIT05ZOiBDVEFHUyBHVEFH UyBhbGwgYWxsLWFtIGNoZWNrIGNoZWNrLWFtIGNsZWFuIGNsZWFuLWdlbmVyaWMgXAorKwljbGVh bi1saWJ0b29sIGNsZWFuLW5vaW5zdFBST0dSQU1TIGN0YWdzIGRpc3RjbGVhbiBcCisrCWRpc3Rj bGVhbi1jb21waWxlIGRpc3RjbGVhbi1nZW5lcmljIGRpc3RjbGVhbi1saWJ0b29sIFwKKysJZGlz dGNsZWFuLXRhZ3MgZGlzdGRpciBkdmkgZHZpLWFtIGh0bWwgaHRtbC1hbSBpbmZvIGluZm8tYW0g XAorKwlpbnN0YWxsIGluc3RhbGwtYW0gaW5zdGFsbC1kYXRhIGluc3RhbGwtZGF0YS1hbSBpbnN0 YWxsLWR2aSBcCisrCWluc3RhbGwtZHZpLWFtIGluc3RhbGwtZXhlYyBpbnN0YWxsLWV4ZWMtYW0g aW5zdGFsbC1odG1sIFwKKysJaW5zdGFsbC1odG1sLWFtIGluc3RhbGwtaW5mbyBpbnN0YWxsLWlu Zm8tYW0gaW5zdGFsbC1tYW4gXAorKwlpbnN0YWxsLXBkZiBpbnN0YWxsLXBkZi1hbSBpbnN0YWxs LXBzIGluc3RhbGwtcHMtYW0gXAorKwlpbnN0YWxsLXN0cmlwIGluc3RhbGxjaGVjayBpbnN0YWxs Y2hlY2stYW0gaW5zdGFsbGRpcnMgXAorKwltYWludGFpbmVyLWNsZWFuIG1haW50YWluZXItY2xl YW4tZ2VuZXJpYyBtb3N0bHljbGVhbiBcCisrCW1vc3RseWNsZWFuLWNvbXBpbGUgbW9zdGx5Y2xl YW4tZ2VuZXJpYyBtb3N0bHljbGVhbi1saWJ0b29sIFwKKysJcGRmIHBkZi1hbSBwcyBwcy1hbSB0 YWdzIHVuaW5zdGFsbCB1bmluc3RhbGwtYW0KKysKKytAU0VUX01BS0VACisrCisrI25vZGlzdF9w a2dpbmNsdWRlX0hFQURFUlMgPSAkKHBvc3RncmVzcWxfdGVzdF9oX3NvdXJjZXMpCisrCisrIyBU ZWxsIHZlcnNpb25zIFszLjU5LDMuNjMpIG9mIEdOVSBtYWtlIHRvIG5vdCBleHBvcnQgYWxsIHZh cmlhYmxlcy4KKysjIE90aGVyd2lzZSBhIHN5c3RlbSBsaW1pdCAoZm9yIFN5c1YgYXQgbGVhc3Qp IG1heSBiZSBleGNlZWRlZC4KKysuTk9FWFBPUlQ6CitkaWZmIC1OdXIgc29jaS0zLjAuMF80LXBh Y2svc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Rlc3Qvc291cmNlcy5tayBzb2NpLTMuMC4wX3Ry ZXAzMDAvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Rlc3Qvc291cmNlcy5taworLS0tIHNvY2kt My4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC90ZXN0L3NvdXJjZXMubWsJMTk3 MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKKysrKyBzb2NpLTMuMC4wX3RyZXAzMDAv c29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Rlc3Qvc291cmNlcy5tawkyMDA5LTA0LTE2IDE5OjM3 OjA1LjAwMDAwMDAwMCArMDIwMAorQEAgLTAsMCArMSwyIEBACisrcG9zdGdyZXNxbF90ZXN0X2hf c291cmNlcyA9CisrcG9zdGdyZXNxbF90ZXN0X2NjX3NvdXJjZXMgPSAkKHRvcF9zcmNkaXIpL3Nv Y2kvYmFja2VuZHMvcG9zdGdyZXNxbC90ZXN0L3Rlc3QtcG9zdGdyZXNxbC5jcHAKK2RpZmYgLU51 ciBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvdGVzdC90ZXN0LXBv c3RncmVzcWwuY3BwIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwv dGVzdC90ZXN0LXBvc3RncmVzcWwuY3BwCistLS0gc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNr ZW5kcy9wb3N0Z3Jlc3FsL3Rlc3QvdGVzdC1wb3N0Z3Jlc3FsLmNwcAkyMDEwLTAxLTIzIDE0OjQ1 OjQ0LjAwMDAwMDAwMCArMDEwMAorKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRz L3Bvc3RncmVzcWwvdGVzdC90ZXN0LXBvc3RncmVzcWwuY3BwCTIwMTAtMDEtMjMgMTM6MjU6NTcu MDAwMDAwMDAwICswMTAwCitAQCAtNSw5ICs1LDE3IEBACisgLy8gaHR0cDovL3d3dy5ib29zdC5v cmcvTElDRU5TRV8xXzAudHh0KQorIC8vCisgCistI2luY2x1ZGUgInNvY2kuaCIKKy0jaW5jbHVk ZSAic29jaS1wb3N0Z3Jlc3FsLmgiCistI2luY2x1ZGUgImNvbW1vbi10ZXN0cy5oIgorKy8vCisr I2lmIGRlZmluZWQoU09DSV9IRUFERVJTX0JVUklFRCkKKysjICAgICAgIGluY2x1ZGUgPHNvY2kv Y29yZS9zb2NpLmg+CisrIyAgICAgICBpbmNsdWRlIDxzb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwv c29jaS1wb3N0Z3Jlc3FsLmg+CisrIyAgICAgICBpbmNsdWRlIDxzb2NpL2NvcmUvdGVzdC9jb21t b24tdGVzdHMuaD4KKysjZWxzZQorKyMJaW5jbHVkZSA8c29jaS5oPgorKyMJaW5jbHVkZSA8c29j aS1wb3N0Z3Jlc3FsLmg+CisrIyAgICAgICBpbmNsdWRlIDx0ZXN0L2NvbW1vbi10ZXN0cy5oPgor KyNlbmRpZgorKy8vCisgI2luY2x1ZGUgPGlvc3RyZWFtPgorICNpbmNsdWRlIDxzc3RyZWFtPgor ICNpbmNsdWRlIDxzdHJpbmc+CitkaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svc29jaS9jb25m aWcuaC5pbiBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9jb25maWcuaC5pbgorLS0tIHNvY2ktMy4w LjBfNC1wYWNrL3NvY2kvY29uZmlnLmguaW4JMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAg KzAxMDAKKysrKyBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9jb25maWcuaC5pbgkyMDEwLTAxLTIz IDE0OjQ0OjUwLjAwMDAwMDAwMCArMDEwMAorQEAgLTAsMCArMSwxNTUgQEAKKysvKiBzb2NpL2Nv bmZpZy5oLmluLiAgR2VuZXJhdGVkIGZyb20gY29uZmlndXJlLmFjIGJ5IGF1dG9oZWFkZXIuICAq LworKworKy8qIGRlZmluZSBpZiB0aGUgQm9vc3QgbGlicmFyeSBpcyBhdmFpbGFibGUgKi8KKysj dW5kZWYgSEFWRV9CT09TVAorKworKy8qIGRlZmluZSBpZiB0aGUgQm9vc3Q6OkFzaW8gbGlicmFy eSBpcyBhdmFpbGFibGUgKi8KKysjdW5kZWYgSEFWRV9CT09TVF9BU0lPCisrCisrLyogZGVmaW5l IGlmIHRoZSBCb29zdDo6RGF0ZV9UaW1lIGxpYnJhcnkgaXMgYXZhaWxhYmxlICovCisrI3VuZGVm IEhBVkVfQk9PU1RfREFURV9USU1FCisrCisrLyogZGVmaW5lIGlmIHRoZSBCb29zdDo6RklMRVNZ U1RFTSBsaWJyYXJ5IGlzIGF2YWlsYWJsZSAqLworKyN1bmRlZiBIQVZFX0JPT1NUX0ZJTEVTWVNU RU0KKysKKysvKiBkZWZpbmUgaWYgdGhlIEJvb3N0OjpJT1N0cmVhbXMgbGlicmFyeSBpcyBhdmFp bGFibGUgKi8KKysjdW5kZWYgSEFWRV9CT09TVF9JT1NUUkVBTVMKKysKKysvKiBkZWZpbmUgaWYg dGhlIEJvb3N0OjpNcGkgbGlicmFyeSBpcyBhdmFpbGFibGUgKi8KKysjdW5kZWYgSEFWRV9CT09T VF9NUEkKKysKKysvKiBkZWZpbmUgaWYgdGhlIEJvb3N0OjpNcGlfUHl0aG9uIGxpYnJhcnkgaXMg YXZhaWxhYmxlICovCisrI3VuZGVmIEhBVkVfQk9PU1RfTVBJX1BZVEhPTgorKworKy8qIGRlZmlu ZSBpZiB0aGUgQm9vc3Q6OlBST0dSQU1fT1BUSU9OUyBsaWJyYXJ5IGlzIGF2YWlsYWJsZSAqLwor KyN1bmRlZiBIQVZFX0JPT1NUX1BST0dSQU1fT1BUSU9OUworKworKy8qIGRlZmluZSBpZiB0aGUg Qm9vc3Q6OlJlZ2V4IGxpYnJhcnkgaXMgYXZhaWxhYmxlICovCisrI3VuZGVmIEhBVkVfQk9PU1Rf UkVHRVgKKysKKysvKiBkZWZpbmUgaWYgdGhlIEJvb3N0OjpTZXJpYWxpemF0aW9uIGxpYnJhcnkg aXMgYXZhaWxhYmxlICovCisrI3VuZGVmIEhBVkVfQk9PU1RfU0VSSUFMSVpBVElPTgorKworKy8q IGRlZmluZSBpZiB0aGUgQm9vc3Q6OlNpZ25hbHMgbGlicmFyeSBpcyBhdmFpbGFibGUgKi8KKysj dW5kZWYgSEFWRV9CT09TVF9TSUdOQUxTCisrCisrLyogZGVmaW5lIGlmIHRoZSBCb29zdDo6U1lT VEVNIGxpYnJhcnkgaXMgYXZhaWxhYmxlICovCisrI3VuZGVmIEhBVkVfQk9PU1RfU1lTVEVNCisr CisrLyogZGVmaW5lIGlmIHRoZSBCb29zdDo6VEhSRUFEIGxpYnJhcnkgaXMgYXZhaWxhYmxlICov CisrI3VuZGVmIEhBVkVfQk9PU1RfVEhSRUFECisrCisrLyogZGVmaW5lIGlmIHRoZSBCb29zdDo6 VW5pdF90ZXN0X2ZyYW1ld29yayBsaWJyYXJ5IGlzIGF2YWlsYWJsZSAqLworKyN1bmRlZiBIQVZF X0JPT1NUX1VOSVRfVEVTVF9GUkFNRVdPUksKKysKKysvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2 ZSB0aGUgPGNtYXRoPiBoZWFkZXIgZmlsZS4gKi8KKysjdW5kZWYgSEFWRV9DTUFUSAorKworKy8q IERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8ZGVxdWU+IGhlYWRlciBmaWxlLiAqLworKyN1 bmRlZiBIQVZFX0RFUVVFCisrCisrLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxkbGZj bi5oPiBoZWFkZXIgZmlsZS4gKi8KKysjdW5kZWYgSEFWRV9ETEZDTl9ICisrCisrLyogRGVmaW5l IHRvIDEgaWYgeW91IGhhdmUgdGhlIDxmc3RyZWFtPiBoZWFkZXIgZmlsZS4gKi8KKysjdW5kZWYg SEFWRV9GU1RSRUFNCisrCisrLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxpbnR0eXBl cy5oPiBoZWFkZXIgZmlsZS4gKi8KKysjdW5kZWYgSEFWRV9JTlRUWVBFU19ICisrCisrLyogRGVm aW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxpb21hbmlwPiBoZWFkZXIgZmlsZS4gKi8KKysjdW5k ZWYgSEFWRV9JT01BTklQCisrCisrLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxpb3N0 cmVhbT4gaGVhZGVyIGZpbGUuICovCisrI3VuZGVmIEhBVkVfSU9TVFJFQU0KKysKKysvKiBEZWZp bmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPGxpbWl0cz4gaGVhZGVyIGZpbGUuICovCisrI3VuZGVm IEhBVkVfTElNSVRTCisrCisrLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxsaXN0PiBo ZWFkZXIgZmlsZS4gKi8KKysjdW5kZWYgSEFWRV9MSVNUCisrCisrLyogRGVmaW5lIHRvIDEgaWYg eW91IGhhdmUgdGhlIDxtYXA+IGhlYWRlciBmaWxlLiAqLworKyN1bmRlZiBIQVZFX01BUAorKwor Ky8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8bWVtb3J5Lmg+IGhlYWRlciBmaWxlLiAq LworKyN1bmRlZiBIQVZFX01FTU9SWV9ICisrCisrLyogRGVmaW5lIHRvIDEgaWYgdGhlIE9yYWNs ZSBPQ0kgbGlicmFyeSBpcyBhdmFpbGFibGUgKi8KKysjdW5kZWYgSEFWRV9PUkFDTEUKKysKKysv KiBEZWZpbmUgdG8gMSBpZiBQb3N0Z3JlU1FMIGxpYnJhcmllcyBhcmUgYXZhaWxhYmxlICovCisr I3VuZGVmIEhBVkVfUE9TVEdSRVNRTAorKworKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRo ZSA8cXVldWU+IGhlYWRlciBmaWxlLiAqLworKyN1bmRlZiBIQVZFX1FVRVVFCisrCisrLyogRGVm aW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzZXQ+IGhlYWRlciBmaWxlLiAqLworKyN1bmRlZiBI QVZFX1NFVAorKworKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3N0cmVhbT4gaGVh ZGVyIGZpbGUuICovCisrI3VuZGVmIEhBVkVfU1NUUkVBTQorKworKy8qIERlZmluZSB0byAxIGlm IHlvdSBoYXZlIHRoZSA8c3RkZXhjZXB0PiBoZWFkZXIgZmlsZS4gKi8KKysjdW5kZWYgSEFWRV9T VERFWENFUFQKKysKKysvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN0ZGludC5oPiBo ZWFkZXIgZmlsZS4gKi8KKysjdW5kZWYgSEFWRV9TVERJTlRfSAorKworKy8qIERlZmluZSB0byAx IGlmIHlvdSBoYXZlIHRoZSA8c3RkbGliLmg+IGhlYWRlciBmaWxlLiAqLworKyN1bmRlZiBIQVZF X1NURExJQl9ICisrCisrLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzdHJpbmc+IGhl YWRlciBmaWxlLiAqLworKyN1bmRlZiBIQVZFX1NUUklORworKworKy8qIERlZmluZSB0byAxIGlm IHlvdSBoYXZlIHRoZSA8c3RyaW5ncy5oPiBoZWFkZXIgZmlsZS4gKi8KKysjdW5kZWYgSEFWRV9T VFJJTkdTX0gKKysKKysvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN0cmluZy5oPiBo ZWFkZXIgZmlsZS4gKi8KKysjdW5kZWYgSEFWRV9TVFJJTkdfSAorKworKy8qIERlZmluZSB0byAx IGlmIHlvdSBoYXZlIHRoZSA8c3lzL3N0YXQuaD4gaGVhZGVyIGZpbGUuICovCisrI3VuZGVmIEhB VkVfU1lTX1NUQVRfSAorKworKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL3R5 cGVzLmg+IGhlYWRlciBmaWxlLiAqLworKyN1bmRlZiBIQVZFX1NZU19UWVBFU19ICisrCisrLyog RGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDx1bmlzdGQuaD4gaGVhZGVyIGZpbGUuICovCisr I3VuZGVmIEhBVkVfVU5JU1REX0gKKysKKysvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUg PHZlY3Rvcj4gaGVhZGVyIGZpbGUuICovCisrI3VuZGVmIEhBVkVfVkVDVE9SCisrCisrLyogRGVm aW5lIHRvIHRoZSBzdWItZGlyZWN0b3J5IGluIHdoaWNoIGxpYnRvb2wgc3RvcmVzIHVuaW5zdGFs bGVkIGxpYnJhcmllcy4KKysgICAqLworKyN1bmRlZiBMVF9PQkpESVIKKysKKysvKiBOYW1lIG9m IHBhY2thZ2UgKi8KKysjdW5kZWYgUEFDS0FHRQorKworKy8qIERlZmluZSB0byB0aGUgYWRkcmVz cyB3aGVyZSBidWcgcmVwb3J0cyBmb3IgdGhpcyBwYWNrYWdlIHNob3VsZCBiZSBzZW50LiAqLwor KyN1bmRlZiBQQUNLQUdFX0JVR1JFUE9SVAorKworKy8qIERlZmluZSB0byB0aGUgZnVsbCBuYW1l IG9mIHRoaXMgcGFja2FnZS4gKi8KKysjdW5kZWYgUEFDS0FHRV9OQU1FCisrCisrLyogRGVmaW5l IHRvIHRoZSBmdWxsIG5hbWUgYW5kIHZlcnNpb24gb2YgdGhpcyBwYWNrYWdlLiAqLworKyN1bmRl ZiBQQUNLQUdFX1NUUklORworKworKy8qIERlZmluZSB0byB0aGUgb25lIHN5bWJvbCBzaG9ydCBu YW1lIG9mIHRoaXMgcGFja2FnZS4gKi8KKysjdW5kZWYgUEFDS0FHRV9UQVJOQU1FCisrCisrLyog RGVmaW5lIHRvIHRoZSB2ZXJzaW9uIG9mIHRoaXMgcGFja2FnZS4gKi8KKysjdW5kZWYgUEFDS0FH RV9WRVJTSU9OCisrCisrLyogRGVmaW5lIGlmIHlvdSB3YW50IGV4Y2VwdGlvbnMgaGFuZGxpbmcg Ki8KKysjdW5kZWYgU09DSV9FWENFUFRJT05TCisrCisrLyogRGVmaW5lIHRvIDEgaWYgeW91IGhh dmUgdGhlIEFOU0kgQyBoZWFkZXIgZmlsZXMuICovCisrI3VuZGVmIFNURENfSEVBREVSUworKwor Ky8qIERlZmluZSB0byAxIGlmIHlvdSBjYW4gc2FmZWx5IGluY2x1ZGUgYm90aCA8c3lzL3RpbWUu aD4gYW5kIDx0aW1lLmg+LiAqLworKyN1bmRlZiBUSU1FX1dJVEhfU1lTX1RJTUUKKysKKysvKiBW ZXJzaW9uIG51bWJlciBvZiBwYWNrYWdlICovCisrI3VuZGVmIFZFUlNJT04KK2RpZmYgLU51ciBz b2NpLTMuMC4wXzQtcGFjay9zb2NpL2NvcmUvYmFja2VuZC1sb2FkZXIuY3BwIHNvY2ktMy4wLjBf dHJlcDMwMC9zb2NpL2NvcmUvYmFja2VuZC1sb2FkZXIuY3BwCistLS0gc29jaS0zLjAuMF80LXBh Y2svc29jaS9jb3JlL2JhY2tlbmQtbG9hZGVyLmNwcAkyMDEwLTAxLTIzIDE0OjQ1OjQ0LjAwMDAw MDAwMCArMDEwMAorKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2NvcmUvYmFja2VuZC1sb2Fk ZXIuY3BwCTIwMTAtMDEtMjMgMTM6MjU6NTcuMDAwMDAwMDAwICswMTAwCitAQCAtMTEsNiArMTEs OSBAQAorICNpbmNsdWRlIDxtYXA+CisgI2luY2x1ZGUgPGNhc3NlcnQ+CisgI2luY2x1ZGUgPGNz dGRsaWI+CisrI2lmbmRlZiBfTVNDX1ZFUgorKyNpbmNsdWRlIDxzdGRpbnQuaD4KKysjZW5kaWYK KyAKKyB1c2luZyBuYW1lc3BhY2Ugc29jaTsKKyB1c2luZyBuYW1lc3BhY2Ugc29jaTo6ZHluYW1p Y19iYWNrZW5kczsKK2RpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2NvcmUvTWFrZWZp bGUuYW0gc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvY29yZS9NYWtlZmlsZS5hbQorLS0tIHNvY2kt My4wLjBfNC1wYWNrL3NvY2kvY29yZS9NYWtlZmlsZS5hbQkxOTcwLTAxLTAxIDAxOjAwOjAwLjAw MDAwMDAwMCArMDEwMAorKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2NvcmUvTWFrZWZpbGUu YW0JMjAwOS0wNS0wNiAwMDoyODoxMC4wMDAwMDAwMDAgKzAyMDAKK0BAIC0wLDAgKzEsMjkgQEAK KysjIyBjb3JlIHN1Yi1kaXJlY3RvcnkKKytpbmNsdWRlICQodG9wX3NyY2RpcikvTWFrZWZpbGUu Y29tbW9uCisraW5jbHVkZSAkKHNyY2Rpcikvc291cmNlcy5taworKworK01BSU5UQUlORVJDTEVB TkZJTEVTID0gTWFrZWZpbGUuaW4KKysKKytTVUJESVJTID0gLiB0ZXN0CisrCisrI0VYVFJBX0RJ U1RfRk9SX1NPQ0lfQ09NUEFUSUJJTElUWSA9IC5fcm93LmNwcCAuX3NvY2ktc2ltcGxlLmNwcCAu X3NvY2ktc2ltcGxlLmggLl92YWx1ZXMtZXhjaGFuZ2UuaAorKworK0VYVFJBX0RJU1QgPSAkKEVY VFJBX0RJU1RfRk9SX1NPQ0lfQ09NUEFUSUJJTElUWSkKKysKKytsaWJfTFRMSUJSQVJJRVM9IGxp YnNvY2lfY29yZS5sYQorKworK2xpYnNvY2lfY29yZV9sYV9TT1VSQ0VTPSAkKGNvcmVfaF9zb3Vy Y2VzKSAkKGNvcmVfY2Nfc291cmNlcykgCisrbGlic29jaV9jb3JlX2xhX0NYWEZMQUdTID0KKyts aWJzb2NpX2NvcmVfbGFfTElCQUREID0KKytsaWJzb2NpX2NvcmVfbGFfTERGTEFHUyA9IFwKKysJ JChCT09TVF9MSUJTKSAkKEJPT1NUX0RBVEVfVElNRV9MSUIpICQoQk9PU1RfUFJPR1JBTV9PUFRJ T05TX0xJQikgXAorKwktdmVyc2lvbi1pbmZvICQoR0VORVJJQ19MSUJSQVJZX1ZFUlNJT04pCisr CisrcGtnaW5jbHVkZV9IRUFERVJTID0gJChjb3JlX2hfc291cmNlcykKKytpZiBTT0NJX0hFQURF UlNfQlVSSUVECisrc29jaV9pbmNsdWRlX2RpciA9ICQoaW5jbHVkZWRpcikvc29jaS9jb3JlCisr ZWxzZQorK3NvY2lfaW5jbHVkZV9kaXIgPSAkKGluY2x1ZGVkaXIpCisrZW5kaWYKKytwa2dpbmNs dWRlZGlyID0gJChzb2NpX2luY2x1ZGVfZGlyKQorKworZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1w YWNrL3NvY2kvY29yZS9NYWtlZmlsZS5iYXNpYyBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9jb3Jl L01ha2VmaWxlLmJhc2ljCistLS0gc29jaS0zLjAuMF80LXBhY2svc29jaS9jb3JlL01ha2VmaWxl LmJhc2ljCTIwMTAtMDEtMjMgMTQ6NDU6NDQuMDAwMDAwMDAwICswMTAwCisrKysgc29jaS0zLjAu MF90cmVwMzAwL3NvY2kvY29yZS9NYWtlZmlsZS5iYXNpYwkxOTcwLTAxLTAxIDAxOjAwOjAwLjAw MDAwMDAwMCArMDEwMAorQEAgLTEsNzYgKzAsMCBAQAorLUNPTVBJTEVSID0gZysrCistQ1hYRkxB R1MgPSAtV2FsbCAtcGVkYW50aWMgLVduby1sb25nLWxvbmcKKy1JTkNMVURFRElSUyA9IAorLU9C SlMgPSAgc2Vzc2lvbi5vIHN0YXRlbWVudC5vIHJvdy5vIHZhbHVlcy5vIFwKKy0JaW50by10eXBl Lm8gdXNlLXR5cGUubyBcCistCWJsb2IubyByb3dpZC5vIHByb2NlZHVyZS5vIHJlZi1jb3VudGVk LXByZXBhcmUtaW5mby5vIHJlZi1jb3VudGVkLXN0YXRlbWVudC5vIFwKKy0Jb25jZS10ZW1wLXR5 cGUubyBwcmVwYXJlLXRlbXAtdHlwZS5vIGVycm9yLm8gdHJhbnNhY3Rpb24ubyBiYWNrZW5kLWxv YWRlci5vIFwKKy0JY29ubmVjdGlvbi1wb29sLm8gc29jaS1zaW1wbGUubworLQorLQorLWxpYnNv Y2lfY29yZS5hIDogJHtPQkpTfSAKKy0JYXIgcnYgJEAgJD8KKy0Jcm0gKi5vCistCistc2hhcmVk IDogJHtPQkpTfSAKKy0JJHtDT01QSUxFUn0gLWZQSUMgLWMgJD8gJHtDWFhGTEFHU30gJHtJTkNM VURFRElSU30KKy0JJHtDT01QSUxFUn0gLXNoYXJlZCAtbyBsaWJzb2NpX2NvcmUuc28gJHtPQkpT fSAKKy0Jcm0gKi5vCistCistc2Vzc2lvbi5vIDogc2Vzc2lvbi5jcHAKKy0JJHtDT01QSUxFUn0g LWMgJD8gJHtDWFhGTEFHU30gJHtJTkNMVURFRElSU30KKy0KKy1zdGF0ZW1lbnQubyA6IHN0YXRl bWVudC5jcHAKKy0JJHtDT01QSUxFUn0gLWMgJD8gJHtDWFhGTEFHU30gJHtJTkNMVURFRElSU30K Ky0KKy1yb3cubyA6IHJvdy5jcHAKKy0JJHtDT01QSUxFUn0gLWMgJD8gJHtDWFhGTEFHU30gJHtJ TkNMVURFRElSU30KKy0KKy12YWx1ZXMubyA6IHZhbHVlcy5jcHAKKy0JJHtDT01QSUxFUn0gLWMg JD8gJHtDWFhGTEFHU30gJHtJTkNMVURFRElSU30KKy0KKy1pbnRvLXR5cGUubyA6IGludG8tdHlw ZS5jcHAKKy0JJHtDT01QSUxFUn0gLWMgJD8gJHtDWFhGTEFHU30gJHtJTkNMVURFRElSU30KKy0K Ky11c2UtdHlwZS5vIDogdXNlLXR5cGUuY3BwCistCSR7Q09NUElMRVJ9IC1jICQ/ICR7Q1hYRkxB R1N9ICR7SU5DTFVERURJUlN9CistCQorLWJsb2IubyA6IGJsb2IuY3BwCistCSR7Q09NUElMRVJ9 IC1jICQ/ICR7Q1hYRkxBR1N9ICR7SU5DTFVERURJUlN9CistCistZXJyb3IubyA6IGVycm9yLmNw cAorLQkke0NPTVBJTEVSfSAtYyAkPyAke0NYWEZMQUdTfSAke0lOQ0xVREVESVJTfQorLQorLXJv d2lkLm8gOiByb3dpZC5jcHAKKy0JJHtDT01QSUxFUn0gLWMgJD8gJHtDWFhGTEFHU30gJHtJTkNM VURFRElSU30KKy0KKy1wcm9jZWR1cmUubyA6IHByb2NlZHVyZS5jcHAKKy0JJHtDT01QSUxFUn0g LWMgJD8gJHtDWFhGTEFHU30gJHtJTkNMVURFRElSU30KKy0KKy1yZWYtY291bnRlZC1wcmVwYXJl LWluZm8ubyA6IHJlZi1jb3VudGVkLXByZXBhcmUtaW5mby5jcHAKKy0JJHtDT01QSUxFUn0gLWMg JD8gJHtDWFhGTEFHU30gJHtJTkNMVURFRElSU30KKy0KKy1yZWYtY291bnRlZC1zdGF0ZW1lbnQu byA6IHJlZi1jb3VudGVkLXN0YXRlbWVudC5jcHAKKy0JJHtDT01QSUxFUn0gLWMgJD8gJHtDWFhG TEFHU30gJHtJTkNMVURFRElSU30KKy0KKy1vbmNlLXRlbXAtdHlwZS5vIDogb25jZS10ZW1wLXR5 cGUuY3BwCistCSR7Q09NUElMRVJ9IC1jICQ/ICR7Q1hYRkxBR1N9ICR7SU5DTFVERURJUlN9Cist CistcHJlcGFyZS10ZW1wLXR5cGUubyA6IHByZXBhcmUtdGVtcC10eXBlLmNwcAorLQkke0NPTVBJ TEVSfSAtYyAkPyAke0NYWEZMQUdTfSAke0lOQ0xVREVESVJTfQorLQorLXRyYW5zYWN0aW9uLm8g OiB0cmFuc2FjdGlvbi5jcHAKKy0JJHtDT01QSUxFUn0gLWMgJD8gJHtDWFhGTEFHU30gJHtJTkNM VURFRElSU30KKy0KKy1iYWNrZW5kLWxvYWRlci5vIDogYmFja2VuZC1sb2FkZXIuY3BwCistCSR7 Q09NUElMRVJ9IC1jICQ/ICR7Q1hYRkxBR1N9ICR7SU5DTFVERURJUlN9CistCistY29ubmVjdGlv bi1wb29sLm8gOiBjb25uZWN0aW9uLXBvb2wuY3BwCistCSR7Q09NUElMRVJ9IC1jICQ/ICR7Q1hY RkxBR1N9ICR7SU5DTFVERURJUlN9CistCistc29jaS1zaW1wbGUubyA6IHNvY2ktc2ltcGxlLmNw cAorLQkke0NPTVBJTEVSfSAtYyAkPyAke0NYWEZMQUdTfSAke0lOQ0xVREVESVJTfQorLQorLQor LWNsZWFuIDoKKy0Jcm0gLWYgbGlic29jaV9jb3JlLmEgbGlic29jaV9jb3JlLnNvCitkaWZmIC1O dXIgc29jaS0zLjAuMF80LXBhY2svc29jaS9jb3JlL01ha2VmaWxlLmluIHNvY2ktMy4wLjBfdHJl cDMwMC9zb2NpL2NvcmUvTWFrZWZpbGUuaW4KKy0tLSBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2Nv cmUvTWFrZWZpbGUuaW4JMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKKysrKyBz b2NpLTMuMC4wX3RyZXAzMDAvc29jaS9jb3JlL01ha2VmaWxlLmluCTIwMTAtMDEtMjMgMTQ6NDQ6 NTIuMDAwMDAwMDAwICswMTAwCitAQCAtMCwwICsxLDk5NiBAQAorKyMgTWFrZWZpbGUuaW4gZ2Vu ZXJhdGVkIGJ5IGF1dG9tYWtlIDEuMTEuMSBmcm9tIE1ha2VmaWxlLmFtLgorKyMgQGNvbmZpZ3Vy ZV9pbnB1dEAKKysKKysjIENvcHlyaWdodCAoQykgMTk5NCwgMTk5NSwgMTk5NiwgMTk5NywgMTk5 OCwgMTk5OSwgMjAwMCwgMjAwMSwgMjAwMiwKKysjIDIwMDMsIDIwMDQsIDIwMDUsIDIwMDYsIDIw MDcsIDIwMDgsIDIwMDkgIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwKKysjIEluYy4KKysjIFRo aXMgTWFrZWZpbGUuaW4gaXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRh dGlvbgorKyMgZ2l2ZXMgdW5saW1pdGVkIHBlcm1pc3Npb24gdG8gY29weSBhbmQvb3IgZGlzdHJp YnV0ZSBpdCwKKysjIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb25zLCBhcyBsb25nIGFzIHRo aXMgbm90aWNlIGlzIHByZXNlcnZlZC4KKysKKysjIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRl ZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorKyMgYnV0IFdJVEhPVVQgQU5Z IFdBUlJBTlRZLCB0byB0aGUgZXh0ZW50IHBlcm1pdHRlZCBieSBsYXc7IHdpdGhvdXQKKysjIGV2 ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9S IEEKKysjIFBBUlRJQ1VMQVIgUFVSUE9TRS4KKysKKytAU0VUX01BS0VACisrCisrCisrVlBBVEgg PSBAc3JjZGlyQAorK3BrZ2RhdGFkaXIgPSAkKGRhdGFkaXIpL0BQQUNLQUdFQAorK3BrZ2xpYmRp ciA9ICQobGliZGlyKS9AUEFDS0FHRUAKKytwa2dsaWJleGVjZGlyID0gJChsaWJleGVjZGlyKS9A UEFDS0FHRUAKKythbV9fY2QgPSBDRFBBVEg9IiQke1pTSF9WRVJTSU9OKy59JChQQVRIX1NFUEFS QVRPUikiICYmIGNkCisraW5zdGFsbF9zaF9EQVRBID0gJChpbnN0YWxsX3NoKSAtYyAtbSA2NDQK KytpbnN0YWxsX3NoX1BST0dSQU0gPSAkKGluc3RhbGxfc2gpIC1jCisraW5zdGFsbF9zaF9TQ1JJ UFQgPSAkKGluc3RhbGxfc2gpIC1jCisrSU5TVEFMTF9IRUFERVIgPSAkKElOU1RBTExfREFUQSkK Kyt0cmFuc2Zvcm0gPSAkKHByb2dyYW1fdHJhbnNmb3JtX25hbWUpCisrTk9STUFMX0lOU1RBTEwg PSA6CisrUFJFX0lOU1RBTEwgPSA6CisrUE9TVF9JTlNUQUxMID0gOgorK05PUk1BTF9VTklOU1RB TEwgPSA6CisrUFJFX1VOSU5TVEFMTCA9IDoKKytQT1NUX1VOSU5TVEFMTCA9IDoKKytidWlsZF90 cmlwbGV0ID0gQGJ1aWxkQAorK2hvc3RfdHJpcGxldCA9IEBob3N0QAorK0RJU1RfQ09NTU9OID0g JChwa2dpbmNsdWRlX0hFQURFUlMpICQoc3JjZGlyKS9NYWtlZmlsZS5hbSBcCisrCSQoc3JjZGly KS9NYWtlZmlsZS5pbiAkKHNyY2Rpcikvc291cmNlcy5tayBcCisrCSQodG9wX3NyY2RpcikvTWFr ZWZpbGUuY29tbW9uCisrc3ViZGlyID0gc29jaS9jb3JlCisrQUNMT0NBTF9NNCA9ICQodG9wX3Ny Y2RpcikvYWNsb2NhbC5tNAorK2FtX19hY2xvY2FsX200X2RlcHMgPSAkKHRvcF9zcmNkaXIpL2Nv bmZpZy9heF9ib29zdC5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2F4X215c3FsLm00IFwK KysJJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfb3JhY2xlX29jaS5tNCBcCisrCSQodG9wX3NyY2Rp cikvY29uZmlnL2F4X3Bvc3RncmVzcWwubTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9jcHB1 bml0Lm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcvbGlidG9vbC5tNCBcCisrCSQodG9wX3Ny Y2RpcikvY29uZmlnL2x0b3B0aW9ucy5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2x0c3Vn YXIubTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9sdHZlcnNpb24ubTQgXAorKwkkKHRvcF9z cmNkaXIpL2NvbmZpZy9sdH5vYnNvbGV0ZS5tNCAkKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZS5hYwor K2FtX19jb25maWd1cmVfZGVwcyA9ICQoYW1fX2FjbG9jYWxfbTRfZGVwcykgJChDT05GSUdVUkVf REVQRU5ERU5DSUVTKSBcCisrCSQoQUNMT0NBTF9NNCkKKytta2luc3RhbGxkaXJzID0gJChpbnN0 YWxsX3NoKSAtZAorK0NPTkZJR19IRUFERVIgPSAkKHRvcF9idWlsZGRpcikvc29jaS9jb25maWcu aAorK0NPTkZJR19DTEVBTl9GSUxFUyA9CisrQ09ORklHX0NMRUFOX1ZQQVRIX0ZJTEVTID0KKyth bV9fdnBhdGhfYWRqX3NldHVwID0gc3JjZGlyc3RyaXA9YGVjaG8gIiQoc3JjZGlyKSIgfCBzZWQg J3N8LnwufGcnYDsKKythbV9fdnBhdGhfYWRqID0gY2FzZSAkJHAgaW4gXAorKyAgICAkKHNyY2Rp cikvKikgZj1gZWNobyAiJCRwIiB8IHNlZCAic3xeJCRzcmNkaXJzdHJpcC98fCJgOzsgXAorKyAg ICAqKSBmPSQkcDs7IFwKKysgIGVzYWM7CisrYW1fX3N0cmlwX2RpciA9IGY9YGVjaG8gJCRwIHwg c2VkIC1lICdzfF4uKi98fCdgOworK2FtX19pbnN0YWxsX21heCA9IDQwCisrYW1fX25vYmFzZV9z dHJpcF9zZXR1cCA9IFwKKysgIHNyY2RpcnN0cmlwPWBlY2hvICIkKHNyY2RpcikiIHwgc2VkICdz L1tdLlteJCRcXCp8XS9cXFxcJi9nJ2AKKythbV9fbm9iYXNlX3N0cmlwID0gXAorKyAgZm9yIHAg aW4gJCRsaXN0OyBkbyBlY2hvICIkJHAiOyBkb25lIHwgc2VkIC1lICJzfCQkc3JjZGlyc3RyaXAv fHwiCisrYW1fX25vYmFzZV9saXN0ID0gJChhbV9fbm9iYXNlX3N0cmlwX3NldHVwKTsgXAorKyAg Zm9yIHAgaW4gJCRsaXN0OyBkbyBlY2hvICIkJHAgJCRwIjsgZG9uZSB8IFwKKysgIHNlZCAic3wg JCRzcmNkaXJzdHJpcC98IHw7IicgLyAuKlwvLyFzLyAuKi8gLi87IHMsXCggLipcKS9bXi9dKiQk LFwxLCcgfCBcCisrICAkKEFXSykgJ0JFR0lOIHsgZmlsZXNbIi4iXSA9ICIiIH0geyBmaWxlc1sk JDJdID0gZmlsZXNbJCQyXSAiICIgJCQxOyBcCisrICAgIGlmICgrK25bJCQyXSA9PSAkKGFtX19p bnN0YWxsX21heCkpIFwKKysgICAgICB7IHByaW50ICQkMiwgZmlsZXNbJCQyXTsgblskJDJdID0g MDsgZmlsZXNbJCQyXSA9ICIiIH0gfSBcCisrICAgIEVORCB7IGZvciAoZGlyIGluIGZpbGVzKSBw cmludCBkaXIsIGZpbGVzW2Rpcl0gfScKKythbV9fYmFzZV9saXN0ID0gXAorKyAgc2VkICckJCFO OyQkIU47JCQhTjskJCFOOyQkIU47JCQhTjskJCFOO3MvXG4vIC9nJyB8IFwKKysgIHNlZCAnJCQh TjskJCFOOyQkIU47JCQhTjtzL1xuLyAvZycKKythbV9faW5zdGFsbGRpcnMgPSAiJChERVNURElS KSQobGliZGlyKSIgIiQoREVTVERJUikkKHBrZ2luY2x1ZGVkaXIpIgorK0xUTElCUkFSSUVTID0g JChsaWJfTFRMSUJSQVJJRVMpCisrbGlic29jaV9jb3JlX2xhX0RFUEVOREVOQ0lFUyA9CisrYW1f X29iamVjdHNfMSA9CisrYW1fX29iamVjdHNfMiA9IGxpYnNvY2lfY29yZV9sYS1iYWNrZW5kLWxv YWRlci5sbyBcCisrCWxpYnNvY2lfY29yZV9sYS1ibG9iLmxvIGxpYnNvY2lfY29yZV9sYS1jb25u ZWN0aW9uLXBvb2wubG8gXAorKwlsaWJzb2NpX2NvcmVfbGEtZXJyb3IubG8gbGlic29jaV9jb3Jl X2xhLWludG8tdHlwZS5sbyBcCisrCWxpYnNvY2lfY29yZV9sYS1vbmNlLXRlbXAtdHlwZS5sbyBc CisrCWxpYnNvY2lfY29yZV9sYS1wcmVwYXJlLXRlbXAtdHlwZS5sbyBcCisrCWxpYnNvY2lfY29y ZV9sYS1wcm9jZWR1cmUubG8gXAorKwlsaWJzb2NpX2NvcmVfbGEtcmVmLWNvdW50ZWQtcHJlcGFy ZS1pbmZvLmxvIFwKKysJbGlic29jaV9jb3JlX2xhLXJlZi1jb3VudGVkLXN0YXRlbWVudC5sbyBc CisrCWxpYnNvY2lfY29yZV9sYS1yb3cubG8gbGlic29jaV9jb3JlX2xhLXJvd2lkLmxvIFwKKysJ bGlic29jaV9jb3JlX2xhLXNlc3Npb24ubG8gbGlic29jaV9jb3JlX2xhLXNvY2ktc2ltcGxlLmxv IFwKKysJbGlic29jaV9jb3JlX2xhLXN0YXRlbWVudC5sbyBsaWJzb2NpX2NvcmVfbGEtdHJhbnNh Y3Rpb24ubG8gXAorKwlsaWJzb2NpX2NvcmVfbGEtdXNlLXR5cGUubG8gbGlic29jaV9jb3JlX2xh LXZhbHVlcy5sbworK2FtX2xpYnNvY2lfY29yZV9sYV9PQkpFQ1RTID0gJChhbV9fb2JqZWN0c18x KSAkKGFtX19vYmplY3RzXzIpCisrbGlic29jaV9jb3JlX2xhX09CSkVDVFMgPSAkKGFtX2xpYnNv Y2lfY29yZV9sYV9PQkpFQ1RTKQorK2xpYnNvY2lfY29yZV9sYV9MSU5LID0gJChMSUJUT09MKSAt LXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpIFwKKysJJChMSUJUT09MRkxBR1MpIC0tbW9kZT1s aW5rICQoQ1hYTEQpIFwKKysJJChsaWJzb2NpX2NvcmVfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1Mp IFwKKysJJChsaWJzb2NpX2NvcmVfbGFfTERGTEFHUykgJChMREZMQUdTKSAtbyAkQAorK0RFRkFV TFRfSU5DTFVERVMgPSAtSS5AYW1fX2lzcmNAIC1JJCh0b3BfYnVpbGRkaXIpL3NvY2kKKytkZXBj b21wID0gJChTSEVMTCkgJCh0b3Bfc3JjZGlyKS9jb25maWcvZGVwY29tcAorK2FtX19kZXBmaWxl c19tYXliZSA9IGRlcGZpbGVzCisrYW1fX212ID0gbXYgLWYKKytDWFhDT01QSUxFID0gJChDWFgp ICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSBcCisrCSQoQU1fQ1BQRkxB R1MpICQoQ1BQRkxBR1MpICQoQU1fQ1hYRkxBR1MpICQoQ1hYRkxBR1MpCisrTFRDWFhDT01QSUxF ID0gJChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdT KSBcCisrCS0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykg JChJTkNMVURFUykgXAorKwkkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKEFNX0NYWEZMQUdT KSAkKENYWEZMQUdTKQorK0NYWExEID0gJChDWFgpCisrQ1hYTElOSyA9ICQoTElCVE9PTCkgLS10 YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgXAorKwktLW1vZGU9bGlu ayAkKENYWExEKSAkKEFNX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAkKEFNX0xERkxBR1MpIFwKKysJ JChMREZMQUdTKSAtbyAkQAorK0NPTVBJTEUgPSAkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNM VURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgXAorKwkkKENQUEZMQUdTKSAkKEFNX0NG TEFHUykgJChDRkxBR1MpCisrTFRDT01QSUxFID0gJChMSUJUT09MKSAtLXRhZz1DQyAkKEFNX0xJ QlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIFwKKysJLS1tb2RlPWNvbXBpbGUgJChDQykgJChE RUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpIFwKKysJJChBTV9DUFBGTEFHUykg JChDUFBGTEFHUykgJChBTV9DRkxBR1MpICQoQ0ZMQUdTKQorK0NDTEQgPSAkKENDKQorK0xJTksg PSAkKExJQlRPT0wpIC0tdGFnPUNDICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykg XAorKwktLW1vZGU9bGluayAkKENDTEQpICQoQU1fQ0ZMQUdTKSAkKENGTEFHUykgJChBTV9MREZM QUdTKSBcCisrCSQoTERGTEFHUykgLW8gJEAKKytTT1VSQ0VTID0gJChsaWJzb2NpX2NvcmVfbGFf U09VUkNFUykKKytESVNUX1NPVVJDRVMgPSAkKGxpYnNvY2lfY29yZV9sYV9TT1VSQ0VTKQorK1JF Q1VSU0lWRV9UQVJHRVRTID0gYWxsLXJlY3Vyc2l2ZSBjaGVjay1yZWN1cnNpdmUgZHZpLXJlY3Vy c2l2ZSBcCisrCWh0bWwtcmVjdXJzaXZlIGluZm8tcmVjdXJzaXZlIGluc3RhbGwtZGF0YS1yZWN1 cnNpdmUgXAorKwlpbnN0YWxsLWR2aS1yZWN1cnNpdmUgaW5zdGFsbC1leGVjLXJlY3Vyc2l2ZSBc CisrCWluc3RhbGwtaHRtbC1yZWN1cnNpdmUgaW5zdGFsbC1pbmZvLXJlY3Vyc2l2ZSBcCisrCWlu c3RhbGwtcGRmLXJlY3Vyc2l2ZSBpbnN0YWxsLXBzLXJlY3Vyc2l2ZSBpbnN0YWxsLXJlY3Vyc2l2 ZSBcCisrCWluc3RhbGxjaGVjay1yZWN1cnNpdmUgaW5zdGFsbGRpcnMtcmVjdXJzaXZlIHBkZi1y ZWN1cnNpdmUgXAorKwlwcy1yZWN1cnNpdmUgdW5pbnN0YWxsLXJlY3Vyc2l2ZQorK0hFQURFUlMg PSAkKHBrZ2luY2x1ZGVfSEVBREVSUykKKytSRUNVUlNJVkVfQ0xFQU5fVEFSR0VUUyA9IG1vc3Rs eWNsZWFuLXJlY3Vyc2l2ZSBjbGVhbi1yZWN1cnNpdmUJXAorKyAgZGlzdGNsZWFuLXJlY3Vyc2l2 ZSBtYWludGFpbmVyLWNsZWFuLXJlY3Vyc2l2ZQorK0FNX1JFQ1VSU0lWRV9UQVJHRVRTID0gJChS RUNVUlNJVkVfVEFSR0VUUzotcmVjdXJzaXZlPSkgXAorKwkkKFJFQ1VSU0lWRV9DTEVBTl9UQVJH RVRTOi1yZWN1cnNpdmU9KSB0YWdzIFRBR1MgY3RhZ3MgQ1RBR1MgXAorKwlkaXN0ZGlyCisrRVRB R1MgPSBldGFncworK0NUQUdTID0gY3RhZ3MKKytESVNUX1NVQkRJUlMgPSAkKFNVQkRJUlMpCisr RElTVEZJTEVTID0gJChESVNUX0NPTU1PTikgJChESVNUX1NPVVJDRVMpICQoVEVYSU5GT1MpICQo RVhUUkFfRElTVCkKKythbV9fcmVsYXRpdml6ZSA9IFwKKysgIGRpcjA9YHB3ZGA7IFwKKysgIHNl ZF9maXJzdD0ncyxeXChbXi9dKlwpLy4qJCQsXDEsJzsgXAorKyAgc2VkX3Jlc3Q9J3MsXlteL10q LyosLCc7IFwKKysgIHNlZF9sYXN0PSdzLF4uKi9cKFteL10qXCkkJCxcMSwnOyBcCisrICBzZWRf YnV0bGFzdD0ncywvKlteL10qJCQsLCc7IFwKKysgIHdoaWxlIHRlc3QgLW4gIiQkZGlyMSI7IGRv IFwKKysgICAgZmlyc3Q9YGVjaG8gIiQkZGlyMSIgfCBzZWQgLWUgIiQkc2VkX2ZpcnN0ImA7IFwK KysgICAgaWYgdGVzdCAiJCRmaXJzdCIgIT0gIi4iOyB0aGVuIFwKKysgICAgICBpZiB0ZXN0ICIk JGZpcnN0IiA9ICIuLiI7IHRoZW4gXAorKyAgICAgICAgZGlyMj1gZWNobyAiJCRkaXIwIiB8IHNl ZCAtZSAiJCRzZWRfbGFzdCJgLyIkJGRpcjIiOyBcCisrICAgICAgICBkaXIwPWBlY2hvICIkJGRp cjAiIHwgc2VkIC1lICIkJHNlZF9idXRsYXN0ImA7IFwKKysgICAgICBlbHNlIFwKKysgICAgICAg IGZpcnN0Mj1gZWNobyAiJCRkaXIyIiB8IHNlZCAtZSAiJCRzZWRfZmlyc3QiYDsgXAorKyAgICAg ICAgaWYgdGVzdCAiJCRmaXJzdDIiID0gIiQkZmlyc3QiOyB0aGVuIFwKKysgICAgICAgICAgZGly Mj1gZWNobyAiJCRkaXIyIiB8IHNlZCAtZSAiJCRzZWRfcmVzdCJgOyBcCisrICAgICAgICBlbHNl IFwKKysgICAgICAgICAgZGlyMj0iLi4vJCRkaXIyIjsgXAorKyAgICAgICAgZmk7IFwKKysgICAg ICAgIGRpcjA9IiQkZGlyMCIvIiQkZmlyc3QiOyBcCisrICAgICAgZmk7IFwKKysgICAgZmk7IFwK KysgICAgZGlyMT1gZWNobyAiJCRkaXIxIiB8IHNlZCAtZSAiJCRzZWRfcmVzdCJgOyBcCisrICBk b25lOyBcCisrICByZWxkaXI9IiQkZGlyMiIKKytwa2dpbmNsdWRlZGlyID0gJChzb2NpX2luY2x1 ZGVfZGlyKQorK0FDTE9DQUwgPSBAQUNMT0NBTEAKKytBTVRBUiA9IEBBTVRBUkAKKytBUiA9IEBB UkAKKytBVVRPQ09ORiA9IEBBVVRPQ09ORkAKKytBVVRPSEVBREVSID0gQEFVVE9IRUFERVJACisr QVVUT01BS0UgPSBAQVVUT01BS0VACisrQVdLID0gQEFXS0AKKytCT09TVF9DRkxBR1MgPSBAQk9P U1RfQ0ZMQUdTQAorK0JPT1NUX0RBVEVfVElNRV9MSUIgPSBAQk9PU1RfREFURV9USU1FX0xJQkAK KytCT09TVF9GSUxFU1lTVEVNX0xJQiA9IEBCT09TVF9GSUxFU1lTVEVNX0xJQkAKKytCT09TVF9J T1NUUkVBTVNfTElCID0gQEJPT1NUX0lPU1RSRUFNU19MSUJACisrQk9PU1RfTElCUyA9IEBCT09T VF9MSUJTQAorK0JPT1NUX01QSV9MSUIgPSBAQk9PU1RfTVBJX0xJQkAKKytCT09TVF9NUElfUFlU SE9OX0xJQiA9IEBCT09TVF9NUElfUFlUSE9OX0xJQkAKKytCT09TVF9QUk9HUkFNX09QVElPTlNf TElCID0gQEJPT1NUX1BST0dSQU1fT1BUSU9OU19MSUJACisrQk9PU1RfUFlUSE9OX0xJQiA9IEBC T09TVF9QWVRIT05fTElCQAorK0JPT1NUX1JFR0VYX0xJQiA9IEBCT09TVF9SRUdFWF9MSUJACisr Qk9PU1RfU0VSSUFMSVpBVElPTl9MSUIgPSBAQk9PU1RfU0VSSUFMSVpBVElPTl9MSUJACisrQk9P U1RfU0lHTkFMU19MSUIgPSBAQk9PU1RfU0lHTkFMU19MSUJACisrQk9PU1RfU1lTVEVNX0xJQiA9 IEBCT09TVF9TWVNURU1fTElCQAorK0JPT1NUX1RIUkVBRF9MSUIgPSBAQk9PU1RfVEhSRUFEX0xJ QkAKKytCT09TVF9VTklUX1RFU1RfRlJBTUVXT1JLX0xJQiA9IEBCT09TVF9VTklUX1RFU1RfRlJB TUVXT1JLX0xJQkAKKytCT09TVF9WRVJTSU9OID0gQEJPT1NUX1ZFUlNJT05ACisrQk9PU1RfV1NF UklBTElaQVRJT05fTElCID0gQEJPT1NUX1dTRVJJQUxJWkFUSU9OX0xJQkAKKytDQyA9IEBDQ0AK KytDQ0RFUE1PREUgPSBAQ0NERVBNT0RFQAorK0NGTEFHUyA9IEBDRkxBR1NACisrQ1BQID0gQENQ UEAKKytDUFBGTEFHUyA9IEBDUFBGTEFHU0AKKytDUFBVTklUX0NGTEFHUyA9IEBDUFBVTklUX0NG TEFHU0AKKytDUFBVTklUX0NPTkZJRyA9IEBDUFBVTklUX0NPTkZJR0AKKytDUFBVTklUX0xJQlMg PSBAQ1BQVU5JVF9MSUJTQAorK0NQUFVOSVRfVkVSU0lPTiA9IEBDUFBVTklUX1ZFUlNJT05ACisr Q1hYID0gQENYWEAKKytDWFhDUFAgPSBAQ1hYQ1BQQAorK0NYWERFUE1PREUgPSBAQ1hYREVQTU9E RUAKKytDWFhGTEFHUyA9IEBDWFhGTEFHU0AKKytDWUdQQVRIX1cgPSBAQ1lHUEFUSF9XQAorK0RF RlMgPSBAREVGU0AKKytERVBESVIgPSBAREVQRElSQAorK0RTWU1VVElMID0gQERTWU1VVElMQAor K0RVTVBCSU4gPSBARFVNUEJJTkAKKytFQ0hPX0MgPSBARUNIT19DQAorK0VDSE9fTiA9IEBFQ0hP X05ACisrRUNIT19UID0gQEVDSE9fVEAKKytFR1JFUCA9IEBFR1JFUEAKKytFWEVFWFQgPSBARVhF RVhUQAorK0ZHUkVQID0gQEZHUkVQQAorK0dFTkVSSUNfTElCUkFSWV9WRVJTSU9OID0gQEdFTkVS SUNfTElCUkFSWV9WRVJTSU9OQAorK0dSRVAgPSBAR1JFUEAKKytJTlNUQUxMID0gQElOU1RBTExA CisrSU5TVEFMTF9EQVRBID0gQElOU1RBTExfREFUQUAKKytJTlNUQUxMX1BST0dSQU0gPSBASU5T VEFMTF9QUk9HUkFNQAorK0lOU1RBTExfU0NSSVBUID0gQElOU1RBTExfU0NSSVBUQAorK0lOU1RB TExfU1RSSVBfUFJPR1JBTSA9IEBJTlNUQUxMX1NUUklQX1BST0dSQU1ACisrTEQgPSBATERACisr TERGTEFHUyA9IEBMREZMQUdTQAorK0xJQk9CSlMgPSBATElCT0JKU0AKKytMSUJTID0gQExJQlNA CisrTElCVE9PTCA9IEBMSUJUT09MQAorK0xJUE8gPSBATElQT0AKKytMTl9TID0gQExOX1NACisr TFRMSUJPQkpTID0gQExUTElCT0JKU0AKKytNQUtFSU5GTyA9IEBNQUtFSU5GT0AKKytNS0RJUl9Q ID0gQE1LRElSX1BACisrTVlTUUxfQ0ZMQUdTID0gQE1ZU1FMX0NGTEFHU0AKKytNWVNRTF9DX0xJ QiA9IEBNWVNRTF9DX0xJQkAKKytNWVNRTF9ESVJTID0gQE1ZU1FMX0RJUlNACisrTVlTUUxfTElC UyA9IEBNWVNRTF9MSUJTQAorK01ZU1FMX1ZFUlNJT04gPSBATVlTUUxfVkVSU0lPTkAKKytOTSA9 IEBOTUAKKytOTUVESVQgPSBATk1FRElUQAorK09CSkRVTVAgPSBAT0JKRFVNUEAKKytPQkpFWFQg PSBAT0JKRVhUQAorK09SQUNMRV9ESVJTID0gQE9SQUNMRV9ESVJTQAorK09SQUNMRV9PQ0lfQ0ZM QUdTID0gQE9SQUNMRV9PQ0lfQ0ZMQUdTQAorK09SQUNMRV9PQ0lfTERGTEFHUyA9IEBPUkFDTEVf T0NJX0xERkxBR1NACisrT1JBQ0xFX09DSV9WRVJTSU9OID0gQE9SQUNMRV9PQ0lfVkVSU0lPTkAK KytPVE9PTCA9IEBPVE9PTEAKKytPVE9PTDY0ID0gQE9UT09MNjRACisrUEFDS0FHRSA9IEBQQUNL QUdFQAorK1BBQ0tBR0VfQlVHUkVQT1JUID0gQFBBQ0tBR0VfQlVHUkVQT1JUQAorK1BBQ0tBR0Vf TkFNRSA9IEBQQUNLQUdFX05BTUVACisrUEFDS0FHRV9TVFJJTkcgPSBAUEFDS0FHRV9TVFJJTkdA CisrUEFDS0FHRV9UQVJOQU1FID0gQFBBQ0tBR0VfVEFSTkFNRUAKKytQQUNLQUdFX1ZFUlNJT04g PSBAUEFDS0FHRV9WRVJTSU9OQAorK1BBVEhfU0VQQVJBVE9SID0gQFBBVEhfU0VQQVJBVE9SQAor K1BFUkwgPSBAUEVSTEAKKytQR19DT05GSUcgPSBAUEdfQ09ORklHQAorK1BPU1RHUkVTUUxfQ0ZM QUdTID0gQFBPU1RHUkVTUUxfQ0ZMQUdTQAorK1BPU1RHUkVTUUxfRElSUyA9IEBQT1NUR1JFU1FM X0RJUlNACisrUE9TVEdSRVNRTF9MREZMQUdTID0gQFBPU1RHUkVTUUxfTERGTEFHU0AKKytQT1NU R1JFU1FMX1ZFUlNJT04gPSBAUE9TVEdSRVNRTF9WRVJTSU9OQAorK1JBTkxJQiA9IEBSQU5MSUJA CisrUlBNX1JFTEVBU0UgPSBAUlBNX1JFTEVBU0VACisrU0VEID0gQFNFREAKKytTRVRfTUFLRSA9 IEBTRVRfTUFLRUAKKytTSEVMTCA9IEBTSEVMTEAKKytTT0NJX0hFQURFUlNfQlVSSUVEID0gQFNP Q0lfSEVBREVSU19CVVJJRURACisrU09DSV9NWVNRTF9IRUFERVJTX0JVUklFRCA9IEBTT0NJX01Z U1FMX0hFQURFUlNfQlVSSUVEQAorK1NPQ0lfUE9TVEdSRVNRTF9IRUFERVJTX0JVUklFRCA9IEBT T0NJX1BPU1RHUkVTUUxfSEVBREVSU19CVVJJRURACisrU1RSSVAgPSBAU1RSSVBACisrVVBMT0FE X0NPTU1BTkQgPSBAVVBMT0FEX0NPTU1BTkRACisrVkVSU0lPTiA9IEBWRVJTSU9OQAorK2Fic19i dWlsZGRpciA9IEBhYnNfYnVpbGRkaXJACisrYWJzX3NyY2RpciA9IEBhYnNfc3JjZGlyQAorK2Fi c190b3BfYnVpbGRkaXIgPSBAYWJzX3RvcF9idWlsZGRpckAKKythYnNfdG9wX3NyY2RpciA9IEBh YnNfdG9wX3NyY2RpckAKKythY19jdF9DQyA9IEBhY19jdF9DQ0AKKythY19jdF9DWFggPSBAYWNf Y3RfQ1hYQAorK2FjX2N0X0RVTVBCSU4gPSBAYWNfY3RfRFVNUEJJTkAKKythbV9faW5jbHVkZSA9 IEBhbV9faW5jbHVkZUAKKythbV9fbGVhZGluZ19kb3QgPSBAYW1fX2xlYWRpbmdfZG90QAorK2Ft X19xdW90ZSA9IEBhbV9fcXVvdGVACisrYW1fX3RhciA9IEBhbV9fdGFyQAorK2FtX191bnRhciA9 IEBhbV9fdW50YXJACisrYmluZGlyID0gQGJpbmRpckAKKytidWlsZCA9IEBidWlsZEAKKytidWls ZF9hbGlhcyA9IEBidWlsZF9hbGlhc0AKKytidWlsZF9jcHUgPSBAYnVpbGRfY3B1QAorK2J1aWxk X29zID0gQGJ1aWxkX29zQAorK2J1aWxkX3ZlbmRvciA9IEBidWlsZF92ZW5kb3JACisrYnVpbGRk aXIgPSBAYnVpbGRkaXJACisrZGF0YWRpciA9IEBkYXRhZGlyQAorK2RhdGFyb290ZGlyID0gQGRh dGFyb290ZGlyQAorK2RpZmZfb2sgPSBAZGlmZl9va0AKKytkb2NkaXIgPSBAZG9jZGlyQAorK2Rv eHlnZW5fb2sgPSBAZG94eWdlbl9va0AKKytkdmlkaXIgPSBAZHZpZGlyQAorK2R2aXBzX29rID0g QGR2aXBzX29rQAorK2V4ZWNfcHJlZml4ID0gQGV4ZWNfcHJlZml4QAorK2dzX29rID0gQGdzX29r QAorK2hvc3QgPSBAaG9zdEAKKytob3N0X2FsaWFzID0gQGhvc3RfYWxpYXNACisraG9zdF9jcHUg PSBAaG9zdF9jcHVACisraG9zdF9vcyA9IEBob3N0X29zQAorK2hvc3RfdmVuZG9yID0gQGhvc3Rf dmVuZG9yQAorK2h0bWxkaXIgPSBAaHRtbGRpckAKKytpbmNsdWRlZGlyID0gQGluY2x1ZGVkaXJA CisraW5mb2RpciA9IEBpbmZvZGlyQAorK2luc3RhbGxfc2ggPSBAaW5zdGFsbF9zaEAKKytsYXRl eF9vayA9IEBsYXRleF9va0AKKytsaWJkaXIgPSBAbGliZGlyQAorK2xpYmV4ZWNkaXIgPSBAbGli ZXhlY2RpckAKKytsb2NhbGVkaXIgPSBAbG9jYWxlZGlyQAorK2xvY2Fsc3RhdGVkaXIgPSBAbG9j YWxzdGF0ZWRpckAKKytsdF9FQ0hPID0gQGx0X0VDSE9ACisrbWFuZGlyID0gQG1hbmRpckAKKytt a2Rpcl9wID0gQG1rZGlyX3BACisrb2xkaW5jbHVkZWRpciA9IEBvbGRpbmNsdWRlZGlyQAorK3Bk ZmRpciA9IEBwZGZkaXJACisrcHJlZml4ID0gQHByZWZpeEAKKytwcm9ncmFtX3RyYW5zZm9ybV9u YW1lID0gQHByb2dyYW1fdHJhbnNmb3JtX25hbWVACisrcHNkaXIgPSBAcHNkaXJACisrc2JpbmRp ciA9IEBzYmluZGlyQAorK3NlZF9vayA9IEBzZWRfb2tACisrc2hhcmVkc3RhdGVkaXIgPSBAc2hh cmVkc3RhdGVkaXJACisrc3JjZGlyID0gQHNyY2RpckAKKytzeXNjb25mZGlyID0gQHN5c2NvbmZk aXJACisrdGFyZ2V0X2FsaWFzID0gQHRhcmdldF9hbGlhc0AKKyt0b3BfYnVpbGRfcHJlZml4ID0g QHRvcF9idWlsZF9wcmVmaXhACisrdG9wX2J1aWxkZGlyID0gQHRvcF9idWlsZGRpckAKKyt0b3Bf c3JjZGlyID0gQHRvcF9zcmNkaXJACisrQU1fQ1BQRkxBR1MgPSAtSSQodG9wX2J1aWxkZGlyKSAt SSQodG9wX3NyY2RpcikKKytjb3JlX2hfc291cmNlcyA9IFwKKysgICAgICAgICQodG9wX3NyY2Rp cikvc29jaS9jb3JlL2JhY2tlbmQtbG9hZGVyLmggXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9z b2NpL2NvcmUvYmxvYi5oIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL2Jsb2It ZXhjaGFuZ2UuaCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9ib29zdC1ncmVn b3JpYW4tZGF0ZS5oIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL2Jvb3N0LWZ1 c2lvbi5oIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL2Jvb3N0LW9wdGlvbmFs LmggXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvYm9vc3QtdHVwbGUuaCBcCisr ICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9jb25uZWN0aW9uLXBvb2wuaCBcCisrICAg ICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9lcnJvci5oIFwKKysgICAgICAgICQodG9wX3Ny Y2Rpcikvc29jaS9jb3JlL2V4Y2hhbmdlLXRyYWl0cy5oIFwKKysgICAgICAgICQodG9wX3NyY2Rp cikvc29jaS9jb3JlL2ludG8uaCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9p bnRvLXR5cGUuaCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9vbmNlLXRlbXAt dHlwZS5oIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3ByZXBhcmUtdGVtcC10 eXBlLmggXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcHJvY2VkdXJlLmggXAor KyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcmVmLWNvdW50ZWQtcHJlcGFyZS1pbmZv LmggXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcmVmLWNvdW50ZWQtc3RhdGVt ZW50LmggXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcm93LmggXAorKyAgICAg ICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcm93LWV4Y2hhbmdlLmggXAorKyAgICAgICAgJCh0 b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcm93aWQuaCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3Nv Y2kvY29yZS9yb3dpZC1leGNoYW5nZS5oIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9j b3JlL3Jvd3NldC5oIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3Nlc3Npb24u aCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9zb2NpLWJhY2tlbmQuaCBcCisr ICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9zb2NpLWNvbmZpZy5oIFwKKysgICAgICAg ICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3NvY2ktcGxhdGZvcm0uaCBcCisrICAgICAgICAkKHRv cF9zcmNkaXIpL3NvY2kvY29yZS9zb2NpLXNpbXBsZS5oIFwKKysgICAgICAgICQodG9wX3NyY2Rp cikvc29jaS9jb3JlL3NvY2kuaCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9z dGF0ZW1lbnQuaCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS90cmFuc2FjdGlv bi5oIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3R5cGUtY29udmVyc2lvbi5o IFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3R5cGUtY29udmVyc2lvbi10cmFp dHMuaCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS90eXBlLWhvbGRlci5oIFwK KysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3R5cGUtcHRyLmggXAorKyAgICAgICAg JCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvdXNlLmggXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9z b2NpL2NvcmUvdXNlLXR5cGUuaCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS92 YWx1ZXMuaCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS92YWx1ZXMtZXhjaGFu Z2UuaAorKworK2NvcmVfY2Nfc291cmNlcyA9IFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29j aS9jb3JlL2JhY2tlbmQtbG9hZGVyLmNwcCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kv Y29yZS9ibG9iLmNwcCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9jb25uZWN0 aW9uLXBvb2wuY3BwIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL2Vycm9yLmNw cCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9pbnRvLXR5cGUuY3BwIFwKKysg ICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL29uY2UtdGVtcC10eXBlLmNwcCBcCisrICAg ICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9wcmVwYXJlLXRlbXAtdHlwZS5jcHAgXAorKyAg ICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcHJvY2VkdXJlLmNwcCBcCisrICAgICAgICAk KHRvcF9zcmNkaXIpL3NvY2kvY29yZS9yZWYtY291bnRlZC1wcmVwYXJlLWluZm8uY3BwIFwKKysg ICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3JlZi1jb3VudGVkLXN0YXRlbWVudC5jcHAg XAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcm93LmNwcCBcCisrICAgICAgICAk KHRvcF9zcmNkaXIpL3NvY2kvY29yZS9yb3dpZC5jcHAgXAorKyAgICAgICAgJCh0b3Bfc3JjZGly KS9zb2NpL2NvcmUvc2Vzc2lvbi5jcHAgXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2Nv cmUvc29jaS1zaW1wbGUuY3BwIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3N0 YXRlbWVudC5jcHAgXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvdHJhbnNhY3Rp b24uY3BwIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3VzZS10eXBlLmNwcCBc CisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS92YWx1ZXMuY3BwCisrCisrTUFJTlRB SU5FUkNMRUFORklMRVMgPSBNYWtlZmlsZS5pbgorK1NVQkRJUlMgPSAuIHRlc3QKKysKKysjRVhU UkFfRElTVF9GT1JfU09DSV9DT01QQVRJQklMSVRZID0gLl9yb3cuY3BwIC5fc29jaS1zaW1wbGUu Y3BwIC5fc29jaS1zaW1wbGUuaCAuX3ZhbHVlcy1leGNoYW5nZS5oCisrRVhUUkFfRElTVCA9ICQo RVhUUkFfRElTVF9GT1JfU09DSV9DT01QQVRJQklMSVRZKQorK2xpYl9MVExJQlJBUklFUyA9IGxp YnNvY2lfY29yZS5sYQorK2xpYnNvY2lfY29yZV9sYV9TT1VSQ0VTID0gJChjb3JlX2hfc291cmNl cykgJChjb3JlX2NjX3NvdXJjZXMpIAorK2xpYnNvY2lfY29yZV9sYV9DWFhGTEFHUyA9IAorK2xp YnNvY2lfY29yZV9sYV9MSUJBREQgPSAKKytsaWJzb2NpX2NvcmVfbGFfTERGTEFHUyA9IFwKKysJ JChCT09TVF9MSUJTKSAkKEJPT1NUX0RBVEVfVElNRV9MSUIpICQoQk9PU1RfUFJPR1JBTV9PUFRJ T05TX0xJQikgXAorKwktdmVyc2lvbi1pbmZvICQoR0VORVJJQ19MSUJSQVJZX1ZFUlNJT04pCisr CisrcGtnaW5jbHVkZV9IRUFERVJTID0gJChjb3JlX2hfc291cmNlcykKKytAU09DSV9IRUFERVJT X0JVUklFRF9GQUxTRUBzb2NpX2luY2x1ZGVfZGlyID0gJChpbmNsdWRlZGlyKQorK0BTT0NJX0hF QURFUlNfQlVSSUVEX1RSVUVAc29jaV9pbmNsdWRlX2RpciA9ICQoaW5jbHVkZWRpcikvc29jaS9j b3JlCisrYWxsOiBhbGwtcmVjdXJzaXZlCisrCisrLlNVRkZJWEVTOgorKy5TVUZGSVhFUzogLmNw cCAubG8gLm8gLm9iagorKyQoc3JjZGlyKS9NYWtlZmlsZS5pbjogICQoc3JjZGlyKS9NYWtlZmls ZS5hbSAkKHRvcF9zcmNkaXIpL01ha2VmaWxlLmNvbW1vbiAkKHNyY2Rpcikvc291cmNlcy5tayAk KGFtX19jb25maWd1cmVfZGVwcykKKysJQGZvciBkZXAgaW4gJD87IGRvIFwKKysJICBjYXNlICck KGFtX19jb25maWd1cmVfZGVwcyknIGluIFwKKysJICAgICokJGRlcCopIFwKKysJICAgICAgKCBj ZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gg KSBcCisrCSAgICAgICAgJiYgeyBpZiB0ZXN0IC1mICRAOyB0aGVuIGV4aXQgMDsgZWxzZSBicmVh azsgZmk7IH07IFwKKysJICAgICAgZXhpdCAxOzsgXAorKwkgIGVzYWM7IFwKKysJZG9uZTsgXAor KwllY2hvICcgY2QgJCh0b3Bfc3JjZGlyKSAmJiAkKEFVVE9NQUtFKSAtLWdudSBzb2NpL2NvcmUv TWFrZWZpbGUnOyBcCisrCSQoYW1fX2NkKSAkKHRvcF9zcmNkaXIpICYmIFwKKysJICAkKEFVVE9N QUtFKSAtLWdudSBzb2NpL2NvcmUvTWFrZWZpbGUKKysuUFJFQ0lPVVM6IE1ha2VmaWxlCisrTWFr ZWZpbGU6ICQoc3JjZGlyKS9NYWtlZmlsZS5pbiAkKHRvcF9idWlsZGRpcikvY29uZmlnLnN0YXR1 cworKwlAY2FzZSAnJD8nIGluIFwKKysJICAqY29uZmlnLnN0YXR1cyopIFwKKysJICAgIGNkICQo dG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaDs7IFwK KysJICAqKSBcCisrCSAgICBlY2hvICcgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoU0hFTEwpIC4v Y29uZmlnLnN0YXR1cyAkKHN1YmRpcikvJEAgJChhbV9fZGVwZmlsZXNfbWF5YmUpJzsgXAorKwkg ICAgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoU0hFTEwpIC4vY29uZmlnLnN0YXR1cyAkKHN1YmRp cikvJEAgJChhbV9fZGVwZmlsZXNfbWF5YmUpOzsgXAorKwllc2FjOworKworKyQodG9wX2J1aWxk ZGlyKS9jb25maWcuc3RhdHVzOiAkKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZSAkKENPTkZJR19TVEFU VVNfREVQRU5ERU5DSUVTKQorKwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01B S0VGTEFHUykgYW0tLXJlZnJlc2gKKysKKyskKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZTogICQoYW1f X2NvbmZpZ3VyZV9kZXBzKQorKwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01B S0VGTEFHUykgYW0tLXJlZnJlc2gKKyskKEFDTE9DQUxfTTQpOiAgJChhbV9fYWNsb2NhbF9tNF9k ZXBzKQorKwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0t LXJlZnJlc2gKKyskKGFtX19hY2xvY2FsX200X2RlcHMpOgorK2luc3RhbGwtbGliTFRMSUJSQVJJ RVM6ICQobGliX0xUTElCUkFSSUVTKQorKwlAJChOT1JNQUxfSU5TVEFMTCkKKysJdGVzdCAteiAi JChsaWJkaXIpIiB8fCAkKE1LRElSX1ApICIkKERFU1RESVIpJChsaWJkaXIpIgorKwlAbGlzdD0n JChsaWJfTFRMSUJSQVJJRVMpJzsgdGVzdCAtbiAiJChsaWJkaXIpIiB8fCBsaXN0PTsgXAorKwls aXN0Mj07IGZvciBwIGluICQkbGlzdDsgZG8gXAorKwkgIGlmIHRlc3QgLWYgJCRwOyB0aGVuIFwK KysJICAgIGxpc3QyPSIkJGxpc3QyICQkcCI7IFwKKysJICBlbHNlIDo7IGZpOyBcCisrCWRvbmU7 IFwKKysJdGVzdCAteiAiJCRsaXN0MiIgfHwgeyBcCisrCSAgZWNobyAiICQoTElCVE9PTCkgJChB TV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9aW5zdGFsbCAkKElOU1RBTEwp ICQoSU5TVEFMTF9TVFJJUF9GTEFHKSAkJGxpc3QyICckKERFU1RESVIpJChsaWJkaXIpJyI7IFwK KysJICAkKExJQlRPT0wpICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2Rl PWluc3RhbGwgJChJTlNUQUxMKSAkKElOU1RBTExfU1RSSVBfRkxBRykgJCRsaXN0MiAiJChERVNU RElSKSQobGliZGlyKSI7IFwKKysJfQorKworK3VuaW5zdGFsbC1saWJMVExJQlJBUklFUzoKKysJ QCQoTk9STUFMX1VOSU5TVEFMTCkKKysJQGxpc3Q9JyQobGliX0xUTElCUkFSSUVTKSc7IHRlc3Qg LW4gIiQobGliZGlyKSIgfHwgbGlzdD07IFwKKysJZm9yIHAgaW4gJCRsaXN0OyBkbyBcCisrCSAg JChhbV9fc3RyaXBfZGlyKSBcCisrCSAgZWNobyAiICQoTElCVE9PTCkgJChBTV9MSUJUT09MRkxB R1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9dW5pbnN0YWxsIHJtIC1mICckKERFU1RESVIpJChs aWJkaXIpLyQkZiciOyBcCisrCSAgJChMSUJUT09MKSAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJU T09MRkxBR1MpIC0tbW9kZT11bmluc3RhbGwgcm0gLWYgIiQoREVTVERJUikkKGxpYmRpcikvJCRm IjsgXAorKwlkb25lCisrCisrY2xlYW4tbGliTFRMSUJSQVJJRVM6CisrCS10ZXN0IC16ICIkKGxp Yl9MVExJQlJBUklFUykiIHx8IHJtIC1mICQobGliX0xUTElCUkFSSUVTKQorKwlAbGlzdD0nJChs aWJfTFRMSUJSQVJJRVMpJzsgZm9yIHAgaW4gJCRsaXN0OyBkbyBcCisrCSAgZGlyPSJgZWNobyAk JHAgfCBzZWQgLWUgJ3N8L1teL10qJCR8fCdgIjsgXAorKwkgIHRlc3QgIiQkZGlyIiAhPSAiJCRw IiB8fCBkaXI9LjsgXAorKwkgIGVjaG8gInJtIC1mIFwiJCR7ZGlyfS9zb19sb2NhdGlvbnNcIiI7 IFwKKysJICBybSAtZiAiJCR7ZGlyfS9zb19sb2NhdGlvbnMiOyBcCisrCWRvbmUKKytsaWJzb2Np X2NvcmUubGE6ICQobGlic29jaV9jb3JlX2xhX09CSkVDVFMpICQobGlic29jaV9jb3JlX2xhX0RF UEVOREVOQ0lFUykgCisrCSQobGlic29jaV9jb3JlX2xhX0xJTkspIC1ycGF0aCAkKGxpYmRpcikg JChsaWJzb2NpX2NvcmVfbGFfT0JKRUNUUykgJChsaWJzb2NpX2NvcmVfbGFfTElCQUREKSAkKExJ QlMpCisrCisrbW9zdGx5Y2xlYW4tY29tcGlsZToKKysJLXJtIC1mICouJChPQkpFWFQpCisrCisr ZGlzdGNsZWFuLWNvbXBpbGU6CisrCS1ybSAtZiAqLnRhYi5jCisrCisrQEFNREVQX1RSVUVAQGFt X19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS1iYWNrZW5k LWxvYWRlci5QbG9AYW1fX3F1b3RlQAorK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19x dW90ZUAuLyQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEtYmxvYi5QbG9AYW1fX3F1b3RlQAorK0BB TURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9saWJzb2NpX2Nv cmVfbGEtY29ubmVjdGlvbi1wb29sLlBsb0BhbV9fcXVvdGVACisrQEFNREVQX1RSVUVAQGFtX19p bmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS1lcnJvci5QbG9A YW1fX3F1b3RlQAorK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQ RElSKS9saWJzb2NpX2NvcmVfbGEtaW50by10eXBlLlBsb0BhbV9fcXVvdGVACisrQEFNREVQX1RS VUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS1v bmNlLXRlbXAtdHlwZS5QbG9AYW1fX3F1b3RlQAorK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAg QGFtX19xdW90ZUAuLyQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEtcHJlcGFyZS10ZW1wLXR5cGUu UGxvQGFtX19xdW90ZUAKKytAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8k KERFUERJUikvbGlic29jaV9jb3JlX2xhLXByb2NlZHVyZS5QbG9AYW1fX3F1b3RlQAorK0BBTURF UF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9saWJzb2NpX2NvcmVf bGEtcmVmLWNvdW50ZWQtcHJlcGFyZS1pbmZvLlBsb0BhbV9fcXVvdGVACisrQEFNREVQX1RSVUVA QGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS1yZWYt Y291bnRlZC1zdGF0ZW1lbnQuUGxvQGFtX19xdW90ZUAKKytAQU1ERVBfVFJVRUBAYW1fX2luY2x1 ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvbGlic29jaV9jb3JlX2xhLXJvdy5QbG9AYW1fX3F1 b3RlQAorK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9s aWJzb2NpX2NvcmVfbGEtcm93aWQuUGxvQGFtX19xdW90ZUAKKytAQU1ERVBfVFJVRUBAYW1fX2lu Y2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvbGlic29jaV9jb3JlX2xhLXNlc3Npb24uUGxv QGFtX19xdW90ZUAKKytAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERF UERJUikvbGlic29jaV9jb3JlX2xhLXNvY2ktc2ltcGxlLlBsb0BhbV9fcXVvdGVACisrQEFNREVQ X1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL2xpYnNvY2lfY29yZV9s YS1zdGF0ZW1lbnQuUGxvQGFtX19xdW90ZUAKKytAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBh bV9fcXVvdGVALi8kKERFUERJUikvbGlic29jaV9jb3JlX2xhLXRyYW5zYWN0aW9uLlBsb0BhbV9f cXVvdGVACisrQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIp L2xpYnNvY2lfY29yZV9sYS11c2UtdHlwZS5QbG9AYW1fX3F1b3RlQAorK0BBTURFUF9UUlVFQEBh bV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEtdmFsdWVz LlBsb0BhbV9fcXVvdGVACisrCisrLmNwcC5vOgorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKENY WENPTVBJTEUpIC1NVCAkQCAtTUQgLU1QIC1NRiAkKERFUERJUikvJCouVHBvIC1jIC1vICRAICQ8 CisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoYW1fX212KSAkKERFUERJUikvJCouVHBvICQoREVQ RElSKS8kKi5QbworK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSck PCcgb2JqZWN0PSckQCcgbGlidG9vbD1ubyBAQU1ERVBCQUNLU0xBU0hACisrQEFNREVQX1RSVUVA QGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChk ZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACisrQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKENYWENP TVBJTEUpIC1jIC1vICRAICQ8CisrCisrLmNwcC5vYmo6CisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVA CSQoQ1hYQ09NUElMRSkgLU1UICRAIC1NRCAtTVAgLU1GICQoREVQRElSKS8kKi5UcG8gLWMgLW8g JEAgYCQoQ1lHUEFUSF9XKSAnJDwnYAorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKGFtX19tdikg JChERVBESVIpLyQqLlRwbyAkKERFUERJUikvJCouUG8KKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3Rk ZXBDWFhfRkFMU0VACXNvdXJjZT0nJDwnIG9iamVjdD0nJEAnIGxpYnRvb2w9bm8gQEFNREVQQkFD S1NMQVNIQAorK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQ RElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorK0BhbV9fZmFz dGRlcENYWF9GQUxTRUAJJChDWFhDT01QSUxFKSAtYyAtbyAkQCBgJChDWUdQQVRIX1cpICckPCdg CisrCisrLmNwcC5sbzoKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChMVENYWENPTVBJTEUpIC1N VCAkQCAtTUQgLU1QIC1NRiAkKERFUERJUikvJCouVHBvIC1jIC1vICRAICQ8CisrQGFtX19mYXN0 ZGVwQ1hYX1RSVUVACSQoYW1fX212KSAkKERFUERJUikvJCouVHBvICQoREVQRElSKS8kKi5QbG8K KytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJDwnIG9iamVjdD0n JEAnIGxpYnRvb2w9eWVzIEBBTURFUEJBQ0tTTEFTSEAKKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3Rk ZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBB TURFUEJBQ0tTTEFTSEAKKytAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQoTFRDWFhDT01QSUxFKSAt YyAtbyAkQCAkPAorKworK2xpYnNvY2lfY29yZV9sYS1iYWNrZW5kLWxvYWRlci5sbzogJCh0b3Bf c3JjZGlyKS9zb2NpL2NvcmUvYmFja2VuZC1sb2FkZXIuY3BwCisrQGFtX19mYXN0ZGVwQ1hYX1RS VUVACSQoTElCVE9PTCkgIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxB R1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJ TkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX2NvcmVfbGFfQ1hY RkxBR1MpICQoQ1hYRkxBR1MpIC1NVCBsaWJzb2NpX2NvcmVfbGEtYmFja2VuZC1sb2FkZXIubG8g LU1EIC1NUCAtTUYgJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS1iYWNrZW5kLWxvYWRlci5UcG8g LWMgLW8gbGlic29jaV9jb3JlX2xhLWJhY2tlbmQtbG9hZGVyLmxvIGB0ZXN0IC1mICckKHRvcF9z cmNkaXIpL3NvY2kvY29yZS9iYWNrZW5kLWxvYWRlci5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8n YCQodG9wX3NyY2Rpcikvc29jaS9jb3JlL2JhY2tlbmQtbG9hZGVyLmNwcAorK0BhbV9fZmFzdGRl cENYWF9UUlVFQAkkKGFtX19tdikgJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS1iYWNrZW5kLWxv YWRlci5UcG8gJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS1iYWNrZW5kLWxvYWRlci5QbG8KKytA QU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJCh0b3Bfc3JjZGlyKS9z b2NpL2NvcmUvYmFja2VuZC1sb2FkZXIuY3BwJyBvYmplY3Q9J2xpYnNvY2lfY29yZV9sYS1iYWNr ZW5kLWxvYWRlci5sbycgbGlidG9vbD15ZXMgQEFNREVQQkFDS1NMQVNIQAorK0BBTURFUF9UUlVF QEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENYWERFUE1PREUpICQo ZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChMSUJU T09MKSAgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2Rl PWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAk KEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfY29yZV9sYV9DWFhGTEFHUykgJChD WFhGTEFHUykgLWMgLW8gbGlic29jaV9jb3JlX2xhLWJhY2tlbmQtbG9hZGVyLmxvIGB0ZXN0IC1m ICckKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9iYWNrZW5kLWxvYWRlci5jcHAnIHx8IGVjaG8gJyQo c3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9jb3JlL2JhY2tlbmQtbG9hZGVyLmNwcAorKwor K2xpYnNvY2lfY29yZV9sYS1ibG9iLmxvOiAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9ibG9iLmNw cAorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKExJQlRPT0wpICAtLXRhZz1DWFggJChBTV9MSUJU T09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAk KERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1Mp ICQobGlic29jaV9jb3JlX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtTVQgbGlic29jaV9jb3Jl X2xhLWJsb2IubG8gLU1EIC1NUCAtTUYgJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS1ibG9iLlRw byAtYyAtbyBsaWJzb2NpX2NvcmVfbGEtYmxvYi5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9z b2NpL2NvcmUvYmxvYi5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29j aS9jb3JlL2Jsb2IuY3BwCisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoYW1fX212KSAkKERFUERJ UikvbGlic29jaV9jb3JlX2xhLWJsb2IuVHBvICQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEtYmxv Yi5QbG8KKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJCh0b3Bf c3JjZGlyKS9zb2NpL2NvcmUvYmxvYi5jcHAnIG9iamVjdD0nbGlic29jaV9jb3JlX2xhLWJsb2Iu bG8nIGxpYnRvb2w9eWVzIEBBTURFUEJBQ0tTTEFTSEAKKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3Rk ZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBB TURFUEJBQ0tTTEFTSEAKKytAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQoTElCVE9PTCkgIC0tdGFn PUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQo Q1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFH UykgJChDUFBGTEFHUykgJChsaWJzb2NpX2NvcmVfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1j IC1vIGxpYnNvY2lfY29yZV9sYS1ibG9iLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kv Y29yZS9ibG9iLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2Nv cmUvYmxvYi5jcHAKKysKKytsaWJzb2NpX2NvcmVfbGEtY29ubmVjdGlvbi1wb29sLmxvOiAkKHRv cF9zcmNkaXIpL3NvY2kvY29yZS9jb25uZWN0aW9uLXBvb2wuY3BwCisrQGFtX19mYXN0ZGVwQ1hY X1RSVUVACSQoTElCVE9PTCkgIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09M RkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykg JChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX2NvcmVfbGFf Q1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1NVCBsaWJzb2NpX2NvcmVfbGEtY29ubmVjdGlvbi1wb29s LmxvIC1NRCAtTVAgLU1GICQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEtY29ubmVjdGlvbi1wb29s LlRwbyAtYyAtbyBsaWJzb2NpX2NvcmVfbGEtY29ubmVjdGlvbi1wb29sLmxvIGB0ZXN0IC1mICck KHRvcF9zcmNkaXIpL3NvY2kvY29yZS9jb25uZWN0aW9uLXBvb2wuY3BwJyB8fCBlY2hvICckKHNy Y2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9jb25uZWN0aW9uLXBvb2wuY3BwCisrQGFt X19mYXN0ZGVwQ1hYX1RSVUVACSQoYW1fX212KSAkKERFUERJUikvbGlic29jaV9jb3JlX2xhLWNv bm5lY3Rpb24tcG9vbC5UcG8gJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS1jb25uZWN0aW9uLXBv b2wuUGxvCisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQodG9w X3NyY2Rpcikvc29jaS9jb3JlL2Nvbm5lY3Rpb24tcG9vbC5jcHAnIG9iamVjdD0nbGlic29jaV9j b3JlX2xhLWNvbm5lY3Rpb24tcG9vbC5sbycgbGlidG9vbD15ZXMgQEFNREVQQkFDS1NMQVNIQAor K0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENY WERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorK0BhbV9fZmFzdGRlcENYWF9G QUxTRUAJJChMSUJUT09MKSAgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xG TEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAk KElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfY29yZV9sYV9D WFhGTEFHUykgJChDWFhGTEFHUykgLWMgLW8gbGlic29jaV9jb3JlX2xhLWNvbm5lY3Rpb24tcG9v bC5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvY29ubmVjdGlvbi1wb29sLmNw cCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvY29ubmVjdGlv bi1wb29sLmNwcAorKworK2xpYnNvY2lfY29yZV9sYS1lcnJvci5sbzogJCh0b3Bfc3JjZGlyKS9z b2NpL2NvcmUvZXJyb3IuY3BwCisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoTElCVE9PTCkgIC0t dGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxl ICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBG TEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX2NvcmVfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1Mp IC1NVCBsaWJzb2NpX2NvcmVfbGEtZXJyb3IubG8gLU1EIC1NUCAtTUYgJChERVBESVIpL2xpYnNv Y2lfY29yZV9sYS1lcnJvci5UcG8gLWMgLW8gbGlic29jaV9jb3JlX2xhLWVycm9yLmxvIGB0ZXN0 IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9lcnJvci5jcHAnIHx8IGVjaG8gJyQoc3JjZGly KS8nYCQodG9wX3NyY2Rpcikvc29jaS9jb3JlL2Vycm9yLmNwcAorK0BhbV9fZmFzdGRlcENYWF9U UlVFQAkkKGFtX19tdikgJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS1lcnJvci5UcG8gJChERVBE SVIpL2xpYnNvY2lfY29yZV9sYS1lcnJvci5QbG8KKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBD WFhfRkFMU0VACXNvdXJjZT0nJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvZXJyb3IuY3BwJyBvYmpl Y3Q9J2xpYnNvY2lfY29yZV9sYS1lcnJvci5sbycgbGlidG9vbD15ZXMgQEFNREVQQkFDS1NMQVNI QAorK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAk KENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorK0BhbV9fZmFzdGRlcENY WF9GQUxTRUAJJChMSUJUT09MKSAgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRP T0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVT KSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfY29yZV9s YV9DWFhGTEFHUykgJChDWFhGTEFHUykgLWMgLW8gbGlic29jaV9jb3JlX2xhLWVycm9yLmxvIGB0 ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9lcnJvci5jcHAnIHx8IGVjaG8gJyQoc3Jj ZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9jb3JlL2Vycm9yLmNwcAorKworK2xpYnNvY2lfY29y ZV9sYS1pbnRvLXR5cGUubG86ICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL2ludG8tdHlwZS5jcHAK KytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChMSUJUT09MKSAgLS10YWc9Q1hYICQoQU1fTElCVE9P TEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChE RUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAk KGxpYnNvY2lfY29yZV9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLU1UIGxpYnNvY2lfY29yZV9s YS1pbnRvLXR5cGUubG8gLU1EIC1NUCAtTUYgJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS1pbnRv LXR5cGUuVHBvIC1jIC1vIGxpYnNvY2lfY29yZV9sYS1pbnRvLXR5cGUubG8gYHRlc3QgLWYgJyQo dG9wX3NyY2Rpcikvc29jaS9jb3JlL2ludG8tdHlwZS5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8n YCQodG9wX3NyY2Rpcikvc29jaS9jb3JlL2ludG8tdHlwZS5jcHAKKytAYW1fX2Zhc3RkZXBDWFhf VFJVRUAJJChhbV9fbXYpICQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEtaW50by10eXBlLlRwbyAk KERFUERJUikvbGlic29jaV9jb3JlX2xhLWludG8tdHlwZS5QbG8KKytAQU1ERVBfVFJVRUBAYW1f X2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvaW50by10 eXBlLmNwcCcgb2JqZWN0PSdsaWJzb2NpX2NvcmVfbGEtaW50by10eXBlLmxvJyBsaWJ0b29sPXll cyBAQU1ERVBCQUNLU0xBU0hACisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlE RVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hA CisrQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKExJQlRPT0wpICAtLXRhZz1DWFggJChBTV9MSUJU T09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAk KERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1Mp ICQobGlic29jaV9jb3JlX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtYyAtbyBsaWJzb2NpX2Nv cmVfbGEtaW50by10eXBlLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9pbnRv LXR5cGUuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9p bnRvLXR5cGUuY3BwCisrCisrbGlic29jaV9jb3JlX2xhLW9uY2UtdGVtcC10eXBlLmxvOiAkKHRv cF9zcmNkaXIpL3NvY2kvY29yZS9vbmNlLXRlbXAtdHlwZS5jcHAKKytAYW1fX2Zhc3RkZXBDWFhf VFJVRUAJJChMSUJUT09MKSAgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xG TEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAk KElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfY29yZV9sYV9D WFhGTEFHUykgJChDWFhGTEFHUykgLU1UIGxpYnNvY2lfY29yZV9sYS1vbmNlLXRlbXAtdHlwZS5s byAtTUQgLU1QIC1NRiAkKERFUERJUikvbGlic29jaV9jb3JlX2xhLW9uY2UtdGVtcC10eXBlLlRw byAtYyAtbyBsaWJzb2NpX2NvcmVfbGEtb25jZS10ZW1wLXR5cGUubG8gYHRlc3QgLWYgJyQodG9w X3NyY2Rpcikvc29jaS9jb3JlL29uY2UtdGVtcC10eXBlLmNwcCcgfHwgZWNobyAnJChzcmNkaXIp LydgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvb25jZS10ZW1wLXR5cGUuY3BwCisrQGFtX19mYXN0 ZGVwQ1hYX1RSVUVACSQoYW1fX212KSAkKERFUERJUikvbGlic29jaV9jb3JlX2xhLW9uY2UtdGVt cC10eXBlLlRwbyAkKERFUERJUikvbGlic29jaV9jb3JlX2xhLW9uY2UtdGVtcC10eXBlLlBsbwor K0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSckKHRvcF9zcmNkaXIp L3NvY2kvY29yZS9vbmNlLXRlbXAtdHlwZS5jcHAnIG9iamVjdD0nbGlic29jaV9jb3JlX2xhLW9u Y2UtdGVtcC10eXBlLmxvJyBsaWJ0b29sPXllcyBAQU1ERVBCQUNLU0xBU0hACisrQEFNREVQX1RS VUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkg JChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACisrQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKExJ QlRPT0wpICAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1v ZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMp ICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9jb3JlX2xhX0NYWEZMQUdTKSAk KENYWEZMQUdTKSAtYyAtbyBsaWJzb2NpX2NvcmVfbGEtb25jZS10ZW1wLXR5cGUubG8gYHRlc3Qg LWYgJyQodG9wX3NyY2Rpcikvc29jaS9jb3JlL29uY2UtdGVtcC10eXBlLmNwcCcgfHwgZWNobyAn JChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvb25jZS10ZW1wLXR5cGUuY3BwCisr CisrbGlic29jaV9jb3JlX2xhLXByZXBhcmUtdGVtcC10eXBlLmxvOiAkKHRvcF9zcmNkaXIpL3Nv Y2kvY29yZS9wcmVwYXJlLXRlbXAtdHlwZS5jcHAKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChM SUJUT09MKSAgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1t b2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVT KSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfY29yZV9sYV9DWFhGTEFHUykg JChDWFhGTEFHUykgLU1UIGxpYnNvY2lfY29yZV9sYS1wcmVwYXJlLXRlbXAtdHlwZS5sbyAtTUQg LU1QIC1NRiAkKERFUERJUikvbGlic29jaV9jb3JlX2xhLXByZXBhcmUtdGVtcC10eXBlLlRwbyAt YyAtbyBsaWJzb2NpX2NvcmVfbGEtcHJlcGFyZS10ZW1wLXR5cGUubG8gYHRlc3QgLWYgJyQodG9w X3NyY2Rpcikvc29jaS9jb3JlL3ByZXBhcmUtdGVtcC10eXBlLmNwcCcgfHwgZWNobyAnJChzcmNk aXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcHJlcGFyZS10ZW1wLXR5cGUuY3BwCisrQGFt X19mYXN0ZGVwQ1hYX1RSVUVACSQoYW1fX212KSAkKERFUERJUikvbGlic29jaV9jb3JlX2xhLXBy ZXBhcmUtdGVtcC10eXBlLlRwbyAkKERFUERJUikvbGlic29jaV9jb3JlX2xhLXByZXBhcmUtdGVt cC10eXBlLlBsbworK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSck KHRvcF9zcmNkaXIpL3NvY2kvY29yZS9wcmVwYXJlLXRlbXAtdHlwZS5jcHAnIG9iamVjdD0nbGli c29jaV9jb3JlX2xhLXByZXBhcmUtdGVtcC10eXBlLmxvJyBsaWJ0b29sPXllcyBAQU1ERVBCQUNL U0xBU0hACisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBE SVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACisrQGFtX19mYXN0 ZGVwQ1hYX0ZBTFNFQAkkKExJQlRPT0wpICAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQo TElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5D TFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9j b3JlX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtYyAtbyBsaWJzb2NpX2NvcmVfbGEtcHJlcGFy ZS10ZW1wLXR5cGUubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3ByZXBhcmUt dGVtcC10eXBlLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2Nv cmUvcHJlcGFyZS10ZW1wLXR5cGUuY3BwCisrCisrbGlic29jaV9jb3JlX2xhLXByb2NlZHVyZS5s bzogJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcHJvY2VkdXJlLmNwcAorK0BhbV9fZmFzdGRlcENY WF9UUlVFQAkkKExJQlRPT0wpICAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9P TEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMp ICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9jb3JlX2xh X0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtTVQgbGlic29jaV9jb3JlX2xhLXByb2NlZHVyZS5sbyAt TUQgLU1QIC1NRiAkKERFUERJUikvbGlic29jaV9jb3JlX2xhLXByb2NlZHVyZS5UcG8gLWMgLW8g bGlic29jaV9jb3JlX2xhLXByb2NlZHVyZS5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2Np L2NvcmUvcHJvY2VkdXJlLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9z b2NpL2NvcmUvcHJvY2VkdXJlLmNwcAorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKGFtX19tdikg JChERVBESVIpL2xpYnNvY2lfY29yZV9sYS1wcm9jZWR1cmUuVHBvICQoREVQRElSKS9saWJzb2Np X2NvcmVfbGEtcHJvY2VkdXJlLlBsbworK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxT RUAJc291cmNlPSckKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9wcm9jZWR1cmUuY3BwJyBvYmplY3Q9 J2xpYnNvY2lfY29yZV9sYS1wcm9jZWR1cmUubG8nIGxpYnRvb2w9eWVzIEBBTURFUEJBQ0tTTEFT SEAKKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJUikg JChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKKytAYW1fX2Zhc3RkZXBD WFhfRkFMU0VACSQoTElCVE9PTCkgIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJU T09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURF UykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX2NvcmVf bGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1jIC1vIGxpYnNvY2lfY29yZV9sYS1wcm9jZWR1cmUu bG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3Byb2NlZHVyZS5jcHAnIHx8IGVj aG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3Byb2NlZHVyZS5jcHAKKysK KytsaWJzb2NpX2NvcmVfbGEtcmVmLWNvdW50ZWQtcHJlcGFyZS1pbmZvLmxvOiAkKHRvcF9zcmNk aXIpL3NvY2kvY29yZS9yZWYtY291bnRlZC1wcmVwYXJlLWluZm8uY3BwCisrQGFtX19mYXN0ZGVw Q1hYX1RSVUVACSQoTElCVE9PTCkgIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJU T09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURF UykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX2NvcmVf bGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1NVCBsaWJzb2NpX2NvcmVfbGEtcmVmLWNvdW50ZWQt cHJlcGFyZS1pbmZvLmxvIC1NRCAtTVAgLU1GICQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEtcmVm LWNvdW50ZWQtcHJlcGFyZS1pbmZvLlRwbyAtYyAtbyBsaWJzb2NpX2NvcmVfbGEtcmVmLWNvdW50 ZWQtcHJlcGFyZS1pbmZvLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9yZWYt Y291bnRlZC1wcmVwYXJlLWluZm8uY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNk aXIpL3NvY2kvY29yZS9yZWYtY291bnRlZC1wcmVwYXJlLWluZm8uY3BwCisrQGFtX19mYXN0ZGVw Q1hYX1RSVUVACSQoYW1fX212KSAkKERFUERJUikvbGlic29jaV9jb3JlX2xhLXJlZi1jb3VudGVk LXByZXBhcmUtaW5mby5UcG8gJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS1yZWYtY291bnRlZC1w cmVwYXJlLWluZm8uUGxvCisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3Vy Y2U9JyQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3JlZi1jb3VudGVkLXByZXBhcmUtaW5mby5jcHAn IG9iamVjdD0nbGlic29jaV9jb3JlX2xhLXJlZi1jb3VudGVkLXByZXBhcmUtaW5mby5sbycgbGli dG9vbD15ZXMgQEFNREVQQkFDS1NMQVNIQAorK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9G QUxTRUAJREVQRElSPSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFD S1NMQVNIQAorK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChMSUJUT09MKSAgLS10YWc9Q1hYICQo QU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQo REVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQ UEZMQUdTKSAkKGxpYnNvY2lfY29yZV9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLWMgLW8gbGli c29jaV9jb3JlX2xhLXJlZi1jb3VudGVkLXByZXBhcmUtaW5mby5sbyBgdGVzdCAtZiAnJCh0b3Bf c3JjZGlyKS9zb2NpL2NvcmUvcmVmLWNvdW50ZWQtcHJlcGFyZS1pbmZvLmNwcCcgfHwgZWNobyAn JChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcmVmLWNvdW50ZWQtcHJlcGFyZS1p bmZvLmNwcAorKworK2xpYnNvY2lfY29yZV9sYS1yZWYtY291bnRlZC1zdGF0ZW1lbnQubG86ICQo dG9wX3NyY2Rpcikvc29jaS9jb3JlL3JlZi1jb3VudGVkLXN0YXRlbWVudC5jcHAKKytAYW1fX2Zh c3RkZXBDWFhfVFJVRUAJJChMSUJUT09MKSAgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAk KExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lO Q0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lf Y29yZV9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLU1UIGxpYnNvY2lfY29yZV9sYS1yZWYtY291 bnRlZC1zdGF0ZW1lbnQubG8gLU1EIC1NUCAtTUYgJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS1y ZWYtY291bnRlZC1zdGF0ZW1lbnQuVHBvIC1jIC1vIGxpYnNvY2lfY29yZV9sYS1yZWYtY291bnRl ZC1zdGF0ZW1lbnQubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3JlZi1jb3Vu dGVkLXN0YXRlbWVudC5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29j aS9jb3JlL3JlZi1jb3VudGVkLXN0YXRlbWVudC5jcHAKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJ JChhbV9fbXYpICQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEtcmVmLWNvdW50ZWQtc3RhdGVtZW50 LlRwbyAkKERFUERJUikvbGlic29jaV9jb3JlX2xhLXJlZi1jb3VudGVkLXN0YXRlbWVudC5QbG8K KytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJCh0b3Bfc3JjZGly KS9zb2NpL2NvcmUvcmVmLWNvdW50ZWQtc3RhdGVtZW50LmNwcCcgb2JqZWN0PSdsaWJzb2NpX2Nv cmVfbGEtcmVmLWNvdW50ZWQtc3RhdGVtZW50LmxvJyBsaWJ0b29sPXllcyBAQU1ERVBCQUNLU0xB U0hACisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIp ICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACisrQGFtX19mYXN0ZGVw Q1hYX0ZBTFNFQAkkKExJQlRPT0wpICAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElC VE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVE RVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9jb3Jl X2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtYyAtbyBsaWJzb2NpX2NvcmVfbGEtcmVmLWNvdW50 ZWQtc3RhdGVtZW50LmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9yZWYtY291 bnRlZC1zdGF0ZW1lbnQuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3Nv Y2kvY29yZS9yZWYtY291bnRlZC1zdGF0ZW1lbnQuY3BwCisrCisrbGlic29jaV9jb3JlX2xhLXJv dy5sbzogJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcm93LmNwcAorK0BhbV9fZmFzdGRlcENYWF9U UlVFQAkkKExJQlRPT0wpICAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZM QUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQo SU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9jb3JlX2xhX0NY WEZMQUdTKSAkKENYWEZMQUdTKSAtTVQgbGlic29jaV9jb3JlX2xhLXJvdy5sbyAtTUQgLU1QIC1N RiAkKERFUERJUikvbGlic29jaV9jb3JlX2xhLXJvdy5UcG8gLWMgLW8gbGlic29jaV9jb3JlX2xh LXJvdy5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcm93LmNwcCcgfHwgZWNo byAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcm93LmNwcAorK0BhbV9fZmFz dGRlcENYWF9UUlVFQAkkKGFtX19tdikgJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS1yb3cuVHBv ICQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEtcm93LlBsbworK0BBTURFUF9UUlVFQEBhbV9fZmFz dGRlcENYWF9GQUxTRUAJc291cmNlPSckKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9yb3cuY3BwJyBv YmplY3Q9J2xpYnNvY2lfY29yZV9sYS1yb3cubG8nIGxpYnRvb2w9eWVzIEBBTURFUEJBQ0tTTEFT SEAKKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJUikg JChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKKytAYW1fX2Zhc3RkZXBD WFhfRkFMU0VACSQoTElCVE9PTCkgIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJU T09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURF UykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX2NvcmVf bGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1jIC1vIGxpYnNvY2lfY29yZV9sYS1yb3cubG8gYHRl c3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3Jvdy5jcHAnIHx8IGVjaG8gJyQoc3JjZGly KS8nYCQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3Jvdy5jcHAKKysKKytsaWJzb2NpX2NvcmVfbGEt cm93aWQubG86ICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3Jvd2lkLmNwcAorK0BhbV9fZmFzdGRl cENYWF9UUlVFQAkkKExJQlRPT0wpICAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElC VE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVE RVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9jb3Jl X2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtTVQgbGlic29jaV9jb3JlX2xhLXJvd2lkLmxvIC1N RCAtTVAgLU1GICQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEtcm93aWQuVHBvIC1jIC1vIGxpYnNv Y2lfY29yZV9sYS1yb3dpZC5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcm93 aWQuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9yb3dp ZC5jcHAKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChhbV9fbXYpICQoREVQRElSKS9saWJzb2Np X2NvcmVfbGEtcm93aWQuVHBvICQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEtcm93aWQuUGxvCisr QEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQodG9wX3NyY2Rpcikv c29jaS9jb3JlL3Jvd2lkLmNwcCcgb2JqZWN0PSdsaWJzb2NpX2NvcmVfbGEtcm93aWQubG8nIGxp YnRvb2w9eWVzIEBBTURFUEJBQ0tTTEFTSEAKKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhf RkFMU0VACURFUERJUj0kKERFUERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJB Q0tTTEFTSEAKKytAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQoTElCVE9PTCkgIC0tdGFnPUNYWCAk KEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAk KERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChD UFBGTEFHUykgJChsaWJzb2NpX2NvcmVfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1jIC1vIGxp YnNvY2lfY29yZV9sYS1yb3dpZC5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUv cm93aWQuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9y b3dpZC5jcHAKKysKKytsaWJzb2NpX2NvcmVfbGEtc2Vzc2lvbi5sbzogJCh0b3Bfc3JjZGlyKS9z b2NpL2NvcmUvc2Vzc2lvbi5jcHAKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChMSUJUT09MKSAg LS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBp bGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQ UEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfY29yZV9sYV9DWFhGTEFHUykgJChDWFhGTEFH UykgLU1UIGxpYnNvY2lfY29yZV9sYS1zZXNzaW9uLmxvIC1NRCAtTVAgLU1GICQoREVQRElSKS9s aWJzb2NpX2NvcmVfbGEtc2Vzc2lvbi5UcG8gLWMgLW8gbGlic29jaV9jb3JlX2xhLXNlc3Npb24u bG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3Nlc3Npb24uY3BwJyB8fCBlY2hv ICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9zZXNzaW9uLmNwcAorK0BhbV9f ZmFzdGRlcENYWF9UUlVFQAkkKGFtX19tdikgJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS1zZXNz aW9uLlRwbyAkKERFUERJUikvbGlic29jaV9jb3JlX2xhLXNlc3Npb24uUGxvCisrQEFNREVQX1RS VUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQodG9wX3NyY2Rpcikvc29jaS9jb3Jl L3Nlc3Npb24uY3BwJyBvYmplY3Q9J2xpYnNvY2lfY29yZV9sYS1zZXNzaW9uLmxvJyBsaWJ0b29s PXllcyBAQU1ERVBCQUNLU0xBU0hACisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNF QAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xB U0hACisrQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKExJQlRPT0wpICAtLXRhZz1DWFggJChBTV9M SUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZT KSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxB R1MpICQobGlic29jaV9jb3JlX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtYyAtbyBsaWJzb2Np X2NvcmVfbGEtc2Vzc2lvbi5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvc2Vz c2lvbi5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3Nl c3Npb24uY3BwCisrCisrbGlic29jaV9jb3JlX2xhLXNvY2ktc2ltcGxlLmxvOiAkKHRvcF9zcmNk aXIpL3NvY2kvY29yZS9zb2NpLXNpbXBsZS5jcHAKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChM SUJUT09MKSAgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1t b2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVT KSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfY29yZV9sYV9DWFhGTEFHUykg JChDWFhGTEFHUykgLU1UIGxpYnNvY2lfY29yZV9sYS1zb2NpLXNpbXBsZS5sbyAtTUQgLU1QIC1N RiAkKERFUERJUikvbGlic29jaV9jb3JlX2xhLXNvY2ktc2ltcGxlLlRwbyAtYyAtbyBsaWJzb2Np X2NvcmVfbGEtc29jaS1zaW1wbGUubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9jb3Jl L3NvY2ktc2ltcGxlLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2Np L2NvcmUvc29jaS1zaW1wbGUuY3BwCisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoYW1fX212KSAk KERFUERJUikvbGlic29jaV9jb3JlX2xhLXNvY2ktc2ltcGxlLlRwbyAkKERFUERJUikvbGlic29j aV9jb3JlX2xhLXNvY2ktc2ltcGxlLlBsbworK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9G QUxTRUAJc291cmNlPSckKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9zb2NpLXNpbXBsZS5jcHAnIG9i amVjdD0nbGlic29jaV9jb3JlX2xhLXNvY2ktc2ltcGxlLmxvJyBsaWJ0b29sPXllcyBAQU1ERVBC QUNLU0xBU0hACisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChE RVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACisrQGFtX19m YXN0ZGVwQ1hYX0ZBTFNFQAkkKExJQlRPT0wpICAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1Mp ICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRf SU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29j aV9jb3JlX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtYyAtbyBsaWJzb2NpX2NvcmVfbGEtc29j aS1zaW1wbGUubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3NvY2ktc2ltcGxl LmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvc29jaS1z aW1wbGUuY3BwCisrCisrbGlic29jaV9jb3JlX2xhLXN0YXRlbWVudC5sbzogJCh0b3Bfc3JjZGly KS9zb2NpL2NvcmUvc3RhdGVtZW50LmNwcAorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKExJQlRP T0wpICAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9 Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQo QU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9jb3JlX2xhX0NYWEZMQUdTKSAkKENY WEZMQUdTKSAtTVQgbGlic29jaV9jb3JlX2xhLXN0YXRlbWVudC5sbyAtTUQgLU1QIC1NRiAkKERF UERJUikvbGlic29jaV9jb3JlX2xhLXN0YXRlbWVudC5UcG8gLWMgLW8gbGlic29jaV9jb3JlX2xh LXN0YXRlbWVudC5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvc3RhdGVtZW50 LmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvc3RhdGVt ZW50LmNwcAorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKGFtX19tdikgJChERVBESVIpL2xpYnNv Y2lfY29yZV9sYS1zdGF0ZW1lbnQuVHBvICQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEtc3RhdGVt ZW50LlBsbworK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSckKHRv cF9zcmNkaXIpL3NvY2kvY29yZS9zdGF0ZW1lbnQuY3BwJyBvYmplY3Q9J2xpYnNvY2lfY29yZV9s YS1zdGF0ZW1lbnQubG8nIGxpYnRvb2w9eWVzIEBBTURFUEJBQ0tTTEFTSEAKKytAQU1ERVBfVFJV RUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDWFhERVBNT0RFKSAk KGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKKytAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQoTElC VE9PTCkgIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9k ZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykg JChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX2NvcmVfbGFfQ1hYRkxBR1MpICQo Q1hYRkxBR1MpIC1jIC1vIGxpYnNvY2lfY29yZV9sYS1zdGF0ZW1lbnQubG8gYHRlc3QgLWYgJyQo dG9wX3NyY2Rpcikvc29jaS9jb3JlL3N0YXRlbWVudC5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8n YCQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3N0YXRlbWVudC5jcHAKKysKKytsaWJzb2NpX2NvcmVf bGEtdHJhbnNhY3Rpb24ubG86ICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3RyYW5zYWN0aW9uLmNw cAorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKExJQlRPT0wpICAtLXRhZz1DWFggJChBTV9MSUJU T09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAk KERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1Mp ICQobGlic29jaV9jb3JlX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtTVQgbGlic29jaV9jb3Jl X2xhLXRyYW5zYWN0aW9uLmxvIC1NRCAtTVAgLU1GICQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEt dHJhbnNhY3Rpb24uVHBvIC1jIC1vIGxpYnNvY2lfY29yZV9sYS10cmFuc2FjdGlvbi5sbyBgdGVz dCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvdHJhbnNhY3Rpb24uY3BwJyB8fCBlY2hvICck KHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS90cmFuc2FjdGlvbi5jcHAKKytAYW1f X2Zhc3RkZXBDWFhfVFJVRUAJJChhbV9fbXYpICQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEtdHJh bnNhY3Rpb24uVHBvICQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEtdHJhbnNhY3Rpb24uUGxvCisr QEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQodG9wX3NyY2Rpcikv c29jaS9jb3JlL3RyYW5zYWN0aW9uLmNwcCcgb2JqZWN0PSdsaWJzb2NpX2NvcmVfbGEtdHJhbnNh Y3Rpb24ubG8nIGxpYnRvb2w9eWVzIEBBTURFUEJBQ0tTTEFTSEAKKytAQU1ERVBfVFJVRUBAYW1f X2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNv bXApIEBBTURFUEJBQ0tTTEFTSEAKKytAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQoTElCVE9PTCkg IC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21w aWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9D UFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX2NvcmVfbGFfQ1hYRkxBR1MpICQoQ1hYRkxB R1MpIC1jIC1vIGxpYnNvY2lfY29yZV9sYS10cmFuc2FjdGlvbi5sbyBgdGVzdCAtZiAnJCh0b3Bf c3JjZGlyKS9zb2NpL2NvcmUvdHJhbnNhY3Rpb24uY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2Ak KHRvcF9zcmNkaXIpL3NvY2kvY29yZS90cmFuc2FjdGlvbi5jcHAKKysKKytsaWJzb2NpX2NvcmVf bGEtdXNlLXR5cGUubG86ICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3VzZS10eXBlLmNwcAorK0Bh bV9fZmFzdGRlcENYWF9UUlVFQAkkKExJQlRPT0wpICAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxB R1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFV TFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGli c29jaV9jb3JlX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtTVQgbGlic29jaV9jb3JlX2xhLXVz ZS10eXBlLmxvIC1NRCAtTVAgLU1GICQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEtdXNlLXR5cGUu VHBvIC1jIC1vIGxpYnNvY2lfY29yZV9sYS11c2UtdHlwZS5sbyBgdGVzdCAtZiAnJCh0b3Bfc3Jj ZGlyKS9zb2NpL2NvcmUvdXNlLXR5cGUuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9z cmNkaXIpL3NvY2kvY29yZS91c2UtdHlwZS5jcHAKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChh bV9fbXYpICQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEtdXNlLXR5cGUuVHBvICQoREVQRElSKS9s aWJzb2NpX2NvcmVfbGEtdXNlLXR5cGUuUGxvCisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hY X0ZBTFNFQAlzb3VyY2U9JyQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3VzZS10eXBlLmNwcCcgb2Jq ZWN0PSdsaWJzb2NpX2NvcmVfbGEtdXNlLXR5cGUubG8nIGxpYnRvb2w9eWVzIEBBTURFUEJBQ0tT TEFTSEAKKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJ UikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKKytAYW1fX2Zhc3Rk ZXBDWFhfRkFMU0VACSQoTElCVE9PTCkgIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChM SUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNM VURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX2Nv cmVfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1jIC1vIGxpYnNvY2lfY29yZV9sYS11c2UtdHlw ZS5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvdXNlLXR5cGUuY3BwJyB8fCBl Y2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS91c2UtdHlwZS5jcHAKKysK KytsaWJzb2NpX2NvcmVfbGEtdmFsdWVzLmxvOiAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS92YWx1 ZXMuY3BwCisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoTElCVE9PTCkgIC0tdGFnPUNYWCAkKEFN X0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERF RlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBG TEFHUykgJChsaWJzb2NpX2NvcmVfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1NVCBsaWJzb2Np X2NvcmVfbGEtdmFsdWVzLmxvIC1NRCAtTVAgLU1GICQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEt dmFsdWVzLlRwbyAtYyAtbyBsaWJzb2NpX2NvcmVfbGEtdmFsdWVzLmxvIGB0ZXN0IC1mICckKHRv cF9zcmNkaXIpL3NvY2kvY29yZS92YWx1ZXMuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRv cF9zcmNkaXIpL3NvY2kvY29yZS92YWx1ZXMuY3BwCisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQo YW1fX212KSAkKERFUERJUikvbGlic29jaV9jb3JlX2xhLXZhbHVlcy5UcG8gJChERVBESVIpL2xp YnNvY2lfY29yZV9sYS12YWx1ZXMuUGxvCisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZB TFNFQAlzb3VyY2U9JyQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3ZhbHVlcy5jcHAnIG9iamVjdD0n bGlic29jaV9jb3JlX2xhLXZhbHVlcy5sbycgbGlidG9vbD15ZXMgQEFNREVQQkFDS1NMQVNIQAor K0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENY WERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorK0BhbV9fZmFzdGRlcENYWF9G QUxTRUAJJChMSUJUT09MKSAgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xG TEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAk KElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfY29yZV9sYV9D WFhGTEFHUykgJChDWFhGTEFHUykgLWMgLW8gbGlic29jaV9jb3JlX2xhLXZhbHVlcy5sbyBgdGVz dCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvdmFsdWVzLmNwcCcgfHwgZWNobyAnJChzcmNk aXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvdmFsdWVzLmNwcAorKworK21vc3RseWNsZWFu LWxpYnRvb2w6CisrCS1ybSAtZiAqLmxvCisrCisrY2xlYW4tbGlidG9vbDoKKysJLXJtIC1yZiAu bGlicyBfbGlicworK2luc3RhbGwtcGtnaW5jbHVkZUhFQURFUlM6ICQocGtnaW5jbHVkZV9IRUFE RVJTKQorKwlAJChOT1JNQUxfSU5TVEFMTCkKKysJdGVzdCAteiAiJChwa2dpbmNsdWRlZGlyKSIg fHwgJChNS0RJUl9QKSAiJChERVNURElSKSQocGtnaW5jbHVkZWRpcikiCisrCUBsaXN0PSckKHBr Z2luY2x1ZGVfSEVBREVSUyknOyB0ZXN0IC1uICIkKHBrZ2luY2x1ZGVkaXIpIiB8fCBsaXN0PTsg XAorKwlmb3IgcCBpbiAkJGxpc3Q7IGRvIFwKKysJICBpZiB0ZXN0IC1mICIkJHAiOyB0aGVuIGQ9 OyBlbHNlIGQ9IiQoc3JjZGlyKS8iOyBmaTsgXAorKwkgIGVjaG8gIiQkZCQkcCI7IFwKKysJZG9u ZSB8ICQoYW1fX2Jhc2VfbGlzdCkgfCBcCisrCXdoaWxlIHJlYWQgZmlsZXM7IGRvIFwKKysJICBl Y2hvICIgJChJTlNUQUxMX0hFQURFUikgJCRmaWxlcyAnJChERVNURElSKSQocGtnaW5jbHVkZWRp ciknIjsgXAorKwkgICQoSU5TVEFMTF9IRUFERVIpICQkZmlsZXMgIiQoREVTVERJUikkKHBrZ2lu Y2x1ZGVkaXIpIiB8fCBleGl0ICQkPzsgXAorKwlkb25lCisrCisrdW5pbnN0YWxsLXBrZ2luY2x1 ZGVIRUFERVJTOgorKwlAJChOT1JNQUxfVU5JTlNUQUxMKQorKwlAbGlzdD0nJChwa2dpbmNsdWRl X0hFQURFUlMpJzsgdGVzdCAtbiAiJChwa2dpbmNsdWRlZGlyKSIgfHwgbGlzdD07IFwKKysJZmls ZXM9YGZvciBwIGluICQkbGlzdDsgZG8gZWNobyAkJHA7IGRvbmUgfCBzZWQgLWUgJ3N8Xi4qL3x8 J2A7IFwKKysJdGVzdCAtbiAiJCRmaWxlcyIgfHwgZXhpdCAwOyBcCisrCWVjaG8gIiAoIGNkICck KERFU1RESVIpJChwa2dpbmNsdWRlZGlyKScgJiYgcm0gLWYiICQkZmlsZXMgIikiOyBcCisrCWNk ICIkKERFU1RESVIpJChwa2dpbmNsdWRlZGlyKSIgJiYgcm0gLWYgJCRmaWxlcworKworKyMgVGhp cyBkaXJlY3RvcnkncyBzdWJkaXJlY3RvcmllcyBhcmUgbW9zdGx5IGluZGVwZW5kZW50OyB5b3Ug Y2FuIGNkCisrIyBpbnRvIHRoZW0gYW5kIHJ1biBgbWFrZScgd2l0aG91dCBnb2luZyB0aHJvdWdo IHRoaXMgTWFrZWZpbGUuCisrIyBUbyBjaGFuZ2UgdGhlIHZhbHVlcyBvZiBgbWFrZScgdmFyaWFi bGVzOiBpbnN0ZWFkIG9mIGVkaXRpbmcgTWFrZWZpbGVzLAorKyMgKDEpIGlmIHRoZSB2YXJpYWJs ZSBpcyBzZXQgaW4gYGNvbmZpZy5zdGF0dXMnLCBlZGl0IGBjb25maWcuc3RhdHVzJworKyMgICAg ICh3aGljaCB3aWxsIGNhdXNlIHRoZSBNYWtlZmlsZXMgdG8gYmUgcmVnZW5lcmF0ZWQgd2hlbiB5 b3UgcnVuIGBtYWtlJyk7CisrIyAoMikgb3RoZXJ3aXNlLCBwYXNzIHRoZSBkZXNpcmVkIHZhbHVl cyBvbiB0aGUgYG1ha2UnIGNvbW1hbmQgbGluZS4KKyskKFJFQ1VSU0lWRV9UQVJHRVRTKToKKysJ QGZhaWw9IGZhaWxjb209J2V4aXQgMSc7IFwKKysJZm9yIGYgaW4geCAkJE1BS0VGTEFHUzsgZG8g XAorKwkgIGNhc2UgJCRmIGluIFwKKysJICAgICo9KiB8IC0tWyFrXSopOzsgXAorKwkgICAgKmsq KSBmYWlsY29tPSdmYWlsPXllcyc7OyBcCisrCSAgZXNhYzsgXAorKwlkb25lOyBcCisrCWRvdF9z ZWVuPW5vOyBcCisrCXRhcmdldD1gZWNobyAkQCB8IHNlZCBzLy1yZWN1cnNpdmUvL2A7IFwKKysJ bGlzdD0nJChTVUJESVJTKSc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCisrCSAgZWNobyAi TWFraW5nICQkdGFyZ2V0IGluICQkc3ViZGlyIjsgXAorKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9 ICIuIjsgdGhlbiBcCisrCSAgICBkb3Rfc2Vlbj15ZXM7IFwKKysJICAgIGxvY2FsX3RhcmdldD0i JCR0YXJnZXQtYW0iOyBcCisrCSAgZWxzZSBcCisrCSAgICBsb2NhbF90YXJnZXQ9IiQkdGFyZ2V0 IjsgXAorKwkgIGZpOyBcCisrCSAgKCQoYW1fX2NkKSAkJHN1YmRpciAmJiAkKE1BS0UpICQoQU1f TUFLRUZMQUdTKSAkJGxvY2FsX3RhcmdldCkgXAorKwkgIHx8IGV2YWwgJCRmYWlsY29tOyBcCisr CWRvbmU7IFwKKysJaWYgdGVzdCAiJCRkb3Rfc2VlbiIgPSAibm8iOyB0aGVuIFwKKysJICAkKE1B S0UpICQoQU1fTUFLRUZMQUdTKSAiJCR0YXJnZXQtYW0iIHx8IGV4aXQgMTsgXAorKwlmaTsgdGVz dCAteiAiJCRmYWlsIgorKworKyQoUkVDVVJTSVZFX0NMRUFOX1RBUkdFVFMpOgorKwlAZmFpbD0g ZmFpbGNvbT0nZXhpdCAxJzsgXAorKwlmb3IgZiBpbiB4ICQkTUFLRUZMQUdTOyBkbyBcCisrCSAg Y2FzZSAkJGYgaW4gXAorKwkgICAgKj0qIHwgLS1bIWtdKik7OyBcCisrCSAgICAqayopIGZhaWxj b209J2ZhaWw9eWVzJzs7IFwKKysJICBlc2FjOyBcCisrCWRvbmU7IFwKKysJZG90X3NlZW49bm87 IFwKKysJY2FzZSAiJEAiIGluIFwKKysJICBkaXN0Y2xlYW4tKiB8IG1haW50YWluZXItY2xlYW4t KikgbGlzdD0nJChESVNUX1NVQkRJUlMpJyA7OyBcCisrCSAgKikgbGlzdD0nJChTVUJESVJTKScg OzsgXAorKwllc2FjOyBcCisrCXJldj0nJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKKysJ ICBpZiB0ZXN0ICIkJHN1YmRpciIgPSAiLiI7IHRoZW4gOjsgZWxzZSBcCisrCSAgICByZXY9IiQk c3ViZGlyICQkcmV2IjsgXAorKwkgIGZpOyBcCisrCWRvbmU7IFwKKysJcmV2PSIkJHJldiAuIjsg XAorKwl0YXJnZXQ9YGVjaG8gJEAgfCBzZWQgcy8tcmVjdXJzaXZlLy9gOyBcCisrCWZvciBzdWJk aXIgaW4gJCRyZXY7IGRvIFwKKysJICBlY2hvICJNYWtpbmcgJCR0YXJnZXQgaW4gJCRzdWJkaXIi OyBcCisrCSAgaWYgdGVzdCAiJCRzdWJkaXIiID0gIi4iOyB0aGVuIFwKKysJICAgIGxvY2FsX3Rh cmdldD0iJCR0YXJnZXQtYW0iOyBcCisrCSAgZWxzZSBcCisrCSAgICBsb2NhbF90YXJnZXQ9IiQk dGFyZ2V0IjsgXAorKwkgIGZpOyBcCisrCSAgKCQoYW1fX2NkKSAkJHN1YmRpciAmJiAkKE1BS0Up ICQoQU1fTUFLRUZMQUdTKSAkJGxvY2FsX3RhcmdldCkgXAorKwkgIHx8IGV2YWwgJCRmYWlsY29t OyBcCisrCWRvbmUgJiYgdGVzdCAteiAiJCRmYWlsIgorK3RhZ3MtcmVjdXJzaXZlOgorKwlsaXN0 PSckKFNVQkRJUlMpJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKKysJICB0ZXN0ICIkJHN1 YmRpciIgPSAuIHx8ICgkKGFtX19jZCkgJCRzdWJkaXIgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFH UykgdGFncyk7IFwKKysJZG9uZQorK2N0YWdzLXJlY3Vyc2l2ZToKKysJbGlzdD0nJChTVUJESVJT KSc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCisrCSAgdGVzdCAiJCRzdWJkaXIiID0gLiB8 fCAoJChhbV9fY2QpICQkc3ViZGlyICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGN0YWdzKTsg XAorKwlkb25lCisrCisrSUQ6ICQoSEVBREVSUykgJChTT1VSQ0VTKSAkKExJU1ApICQoVEFHU19G SUxFUykKKysJbGlzdD0nJChTT1VSQ0VTKSAkKEhFQURFUlMpICQoTElTUCkgJChUQUdTX0ZJTEVT KSc7IFwKKysJdW5pcXVlPWBmb3IgaSBpbiAkJGxpc3Q7IGRvIFwKKysJICAgIGlmIHRlc3QgLWYg IiQkaSI7IHRoZW4gZWNobyAkJGk7IGVsc2UgZWNobyAkKHNyY2RpcikvJCRpOyBmaTsgXAorKwkg IGRvbmUgfCBcCisrCSAgJChBV0spICd7IGZpbGVzWyQkMF0gPSAxOyBub25lbXB0eSA9IDE7IH0g XAorKwkgICAgICBFTkQgeyBpZiAobm9uZW1wdHkpIHsgZm9yIChpIGluIGZpbGVzKSBwcmludCBp OyB9OyB9J2A7IFwKKysJbWtpZCAtZklEICQkdW5pcXVlCisrdGFnczogVEFHUworKworK1RBR1M6 IHRhZ3MtcmVjdXJzaXZlICQoSEVBREVSUykgJChTT1VSQ0VTKSAgJChUQUdTX0RFUEVOREVOQ0lF UykgXAorKwkJJChUQUdTX0ZJTEVTKSAkKExJU1ApCisrCXNldCB4OyBcCisrCWhlcmU9YHB3ZGA7 IFwKKysJaWYgKCQoRVRBR1MpIC0tZXRhZ3MtaW5jbHVkZSAtLXZlcnNpb24pID4vZGV2L251bGwg Mj4mMTsgdGhlbiBcCisrCSAgaW5jbHVkZV9vcHRpb249LS1ldGFncy1pbmNsdWRlOyBcCisrCSAg ZW1wdHlfZml4PS47IFwKKysJZWxzZSBcCisrCSAgaW5jbHVkZV9vcHRpb249LS1pbmNsdWRlOyBc CisrCSAgZW1wdHlfZml4PTsgXAorKwlmaTsgXAorKwlsaXN0PSckKFNVQkRJUlMpJzsgZm9yIHN1 YmRpciBpbiAkJGxpc3Q7IGRvIFwKKysJICBpZiB0ZXN0ICIkJHN1YmRpciIgPSAuOyB0aGVuIDo7 IGVsc2UgXAorKwkgICAgdGVzdCAhIC1mICQkc3ViZGlyL1RBR1MgfHwgXAorKwkgICAgICBzZXQg IiQkQCIgIiQkaW5jbHVkZV9vcHRpb249JCRoZXJlLyQkc3ViZGlyL1RBR1MiOyBcCisrCSAgZmk7 IFwKKysJZG9uZTsgXAorKwlsaXN0PSckKFNPVVJDRVMpICQoSEVBREVSUykgICQoTElTUCkgJChU QUdTX0ZJTEVTKSc7IFwKKysJdW5pcXVlPWBmb3IgaSBpbiAkJGxpc3Q7IGRvIFwKKysJICAgIGlm IHRlc3QgLWYgIiQkaSI7IHRoZW4gZWNobyAkJGk7IGVsc2UgZWNobyAkKHNyY2RpcikvJCRpOyBm aTsgXAorKwkgIGRvbmUgfCBcCisrCSAgJChBV0spICd7IGZpbGVzWyQkMF0gPSAxOyBub25lbXB0 eSA9IDE7IH0gXAorKwkgICAgICBFTkQgeyBpZiAobm9uZW1wdHkpIHsgZm9yIChpIGluIGZpbGVz KSBwcmludCBpOyB9OyB9J2A7IFwKKysJc2hpZnQ7IFwKKysJaWYgdGVzdCAteiAiJChFVEFHU19B UkdTKSQkKiQkdW5pcXVlIjsgdGhlbiA6OyBlbHNlIFwKKysJICB0ZXN0IC1uICIkJHVuaXF1ZSIg fHwgdW5pcXVlPSQkZW1wdHlfZml4OyBcCisrCSAgaWYgdGVzdCAkJCMgLWd0IDA7IHRoZW4gXAor KwkgICAgJChFVEFHUykgJChFVEFHU0ZMQUdTKSAkKEFNX0VUQUdTRkxBR1MpICQoRVRBR1NfQVJH UykgXAorKwkgICAgICAiJCRAIiAkJHVuaXF1ZTsgXAorKwkgIGVsc2UgXAorKwkgICAgJChFVEFH UykgJChFVEFHU0ZMQUdTKSAkKEFNX0VUQUdTRkxBR1MpICQoRVRBR1NfQVJHUykgXAorKwkgICAg ICAkJHVuaXF1ZTsgXAorKwkgIGZpOyBcCisrCWZpCisrY3RhZ3M6IENUQUdTCisrQ1RBR1M6IGN0 YWdzLXJlY3Vyc2l2ZSAkKEhFQURFUlMpICQoU09VUkNFUykgICQoVEFHU19ERVBFTkRFTkNJRVMp IFwKKysJCSQoVEFHU19GSUxFUykgJChMSVNQKQorKwlsaXN0PSckKFNPVVJDRVMpICQoSEVBREVS UykgICQoTElTUCkgJChUQUdTX0ZJTEVTKSc7IFwKKysJdW5pcXVlPWBmb3IgaSBpbiAkJGxpc3Q7 IGRvIFwKKysJICAgIGlmIHRlc3QgLWYgIiQkaSI7IHRoZW4gZWNobyAkJGk7IGVsc2UgZWNobyAk KHNyY2RpcikvJCRpOyBmaTsgXAorKwkgIGRvbmUgfCBcCisrCSAgJChBV0spICd7IGZpbGVzWyQk MF0gPSAxOyBub25lbXB0eSA9IDE7IH0gXAorKwkgICAgICBFTkQgeyBpZiAobm9uZW1wdHkpIHsg Zm9yIChpIGluIGZpbGVzKSBwcmludCBpOyB9OyB9J2A7IFwKKysJdGVzdCAteiAiJChDVEFHU19B UkdTKSQkdW5pcXVlIiBcCisrCSAgfHwgJChDVEFHUykgJChDVEFHU0ZMQUdTKSAkKEFNX0NUQUdT RkxBR1MpICQoQ1RBR1NfQVJHUykgXAorKwkgICAgICQkdW5pcXVlCisrCisrR1RBR1M6CisrCWhl cmU9YCQoYW1fX2NkKSAkKHRvcF9idWlsZGRpcikgJiYgcHdkYCBcCisrCSAgJiYgJChhbV9fY2Qp ICQodG9wX3NyY2RpcikgXAorKwkgICYmIGd0YWdzIC1pICQoR1RBR1NfQVJHUykgIiQkaGVyZSIK KysKKytkaXN0Y2xlYW4tdGFnczoKKysJLXJtIC1mIFRBR1MgSUQgR1RBR1MgR1JUQUdTIEdTWU1T IEdQQVRIIHRhZ3MKKysKKytkaXN0ZGlyOiAkKERJU1RGSUxFUykKKysJQHNyY2RpcnN0cmlwPWBl Y2hvICIkKHNyY2RpcikiIHwgc2VkICdzL1tdLlteJCRcXCpdL1xcXFwmL2cnYDsgXAorKwl0b3Bz cmNkaXJzdHJpcD1gZWNobyAiJCh0b3Bfc3JjZGlyKSIgfCBzZWQgJ3MvW10uW14kJFxcKl0vXFxc XCYvZydgOyBcCisrCWxpc3Q9JyQoRElTVEZJTEVTKSc7IFwKKysJICBkaXN0X2ZpbGVzPWBmb3Ig ZmlsZSBpbiAkJGxpc3Q7IGRvIGVjaG8gJCRmaWxlOyBkb25lIHwgXAorKwkgIHNlZCAtZSAic3xe JCRzcmNkaXJzdHJpcC98fDt0IiBcCisrCSAgICAgIC1lICJzfF4kJHRvcHNyY2RpcnN0cmlwL3wk KHRvcF9idWlsZGRpcikvfDt0ImA7IFwKKysJY2FzZSAkJGRpc3RfZmlsZXMgaW4gXAorKwkgICov KikgJChNS0RJUl9QKSBgZWNobyAiJCRkaXN0X2ZpbGVzIiB8IFwKKysJCQkgICBzZWQgJy9cLy8h ZDtzfF58JChkaXN0ZGlyKS98O3MsL1teL10qJCQsLCcgfCBcCisrCQkJICAgc29ydCAtdWAgOzsg XAorKwllc2FjOyBcCisrCWZvciBmaWxlIGluICQkZGlzdF9maWxlczsgZG8gXAorKwkgIGlmIHRl c3QgLWYgJCRmaWxlIHx8IHRlc3QgLWQgJCRmaWxlOyB0aGVuIGQ9LjsgZWxzZSBkPSQoc3JjZGly KTsgZmk7IFwKKysJICBpZiB0ZXN0IC1kICQkZC8kJGZpbGU7IHRoZW4gXAorKwkgICAgZGlyPWBl Y2hvICIvJCRmaWxlIiB8IHNlZCAtZSAncywvW14vXSokJCwsJ2A7IFwKKysJICAgIGlmIHRlc3Qg LWQgIiQoZGlzdGRpcikvJCRmaWxlIjsgdGhlbiBcCisrCSAgICAgIGZpbmQgIiQoZGlzdGRpcikv JCRmaWxlIiAtdHlwZSBkICEgLXBlcm0gLTcwMCAtZXhlYyBjaG1vZCB1K3J3eCB7fSBcOzsgXAor KwkgICAgZmk7IFwKKysJICAgIGlmIHRlc3QgLWQgJChzcmNkaXIpLyQkZmlsZSAmJiB0ZXN0ICQk ZCAhPSAkKHNyY2Rpcik7IHRoZW4gXAorKwkgICAgICBjcCAtZnBSICQoc3JjZGlyKS8kJGZpbGUg IiQoZGlzdGRpcikkJGRpciIgfHwgZXhpdCAxOyBcCisrCSAgICAgIGZpbmQgIiQoZGlzdGRpcikv JCRmaWxlIiAtdHlwZSBkICEgLXBlcm0gLTcwMCAtZXhlYyBjaG1vZCB1K3J3eCB7fSBcOzsgXAor KwkgICAgZmk7IFwKKysJICAgIGNwIC1mcFIgJCRkLyQkZmlsZSAiJChkaXN0ZGlyKSQkZGlyIiB8 fCBleGl0IDE7IFwKKysJICBlbHNlIFwKKysJICAgIHRlc3QgLWYgIiQoZGlzdGRpcikvJCRmaWxl IiBcCisrCSAgICB8fCBjcCAtcCAkJGQvJCRmaWxlICIkKGRpc3RkaXIpLyQkZmlsZSIgXAorKwkg ICAgfHwgZXhpdCAxOyBcCisrCSAgZmk7IFwKKysJZG9uZQorKwlAbGlzdD0nJChESVNUX1NVQkRJ UlMpJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKKysJICBpZiB0ZXN0ICIkJHN1YmRpciIg PSAuOyB0aGVuIDo7IGVsc2UgXAorKwkgICAgdGVzdCAtZCAiJChkaXN0ZGlyKS8kJHN1YmRpciIg XAorKwkgICAgfHwgJChNS0RJUl9QKSAiJChkaXN0ZGlyKS8kJHN1YmRpciIgXAorKwkgICAgfHwg ZXhpdCAxOyBcCisrCSAgZmk7IFwKKysJZG9uZQorKwlAbGlzdD0nJChESVNUX1NVQkRJUlMpJzsg Zm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKKysJICBpZiB0ZXN0ICIkJHN1YmRpciIgPSAuOyB0 aGVuIDo7IGVsc2UgXAorKwkgICAgZGlyMT0kJHN1YmRpcjsgZGlyMj0iJChkaXN0ZGlyKS8kJHN1 YmRpciI7IFwKKysJICAgICQoYW1fX3JlbGF0aXZpemUpOyBcCisrCSAgICBuZXdfZGlzdGRpcj0k JHJlbGRpcjsgXAorKwkgICAgZGlyMT0kJHN1YmRpcjsgZGlyMj0iJCh0b3BfZGlzdGRpcikiOyBc CisrCSAgICAkKGFtX19yZWxhdGl2aXplKTsgXAorKwkgICAgbmV3X3RvcF9kaXN0ZGlyPSQkcmVs ZGlyOyBcCisrCSAgICBlY2hvICIgKGNkICQkc3ViZGlyICYmICQoTUFLRSkgJChBTV9NQUtFRkxB R1MpIHRvcF9kaXN0ZGlyPSIkJG5ld190b3BfZGlzdGRpciIgZGlzdGRpcj0iJCRuZXdfZGlzdGRp ciIgXFwiOyBcCisrCSAgICBlY2hvICIgICAgIGFtX19yZW1vdmVfZGlzdGRpcj06IGFtX19za2lw X2xlbmd0aF9jaGVjaz06IGFtX19za2lwX21vZGVfZml4PTogZGlzdGRpcikiOyBcCisrCSAgICAo JChhbV9fY2QpICQkc3ViZGlyICYmIFwKKysJICAgICAgJChNQUtFKSAkKEFNX01BS0VGTEFHUykg XAorKwkgICAgICAgIHRvcF9kaXN0ZGlyPSIkJG5ld190b3BfZGlzdGRpciIgXAorKwkgICAgICAg IGRpc3RkaXI9IiQkbmV3X2Rpc3RkaXIiIFwKKysJCWFtX19yZW1vdmVfZGlzdGRpcj06IFwKKysJ CWFtX19za2lwX2xlbmd0aF9jaGVjaz06IFwKKysJCWFtX19za2lwX21vZGVfZml4PTogXAorKwkg ICAgICAgIGRpc3RkaXIpIFwKKysJICAgICAgfHwgZXhpdCAxOyBcCisrCSAgZmk7IFwKKysJZG9u ZQorK2NoZWNrLWFtOiBhbGwtYW0KKytjaGVjazogY2hlY2stcmVjdXJzaXZlCisrYWxsLWFtOiBN YWtlZmlsZSAkKExUTElCUkFSSUVTKSAkKEhFQURFUlMpCisraW5zdGFsbGRpcnM6IGluc3RhbGxk aXJzLXJlY3Vyc2l2ZQorK2luc3RhbGxkaXJzLWFtOgorKwlmb3IgZGlyIGluICIkKERFU1RESVIp JChsaWJkaXIpIiAiJChERVNURElSKSQocGtnaW5jbHVkZWRpcikiOyBkbyBcCisrCSAgdGVzdCAt eiAiJCRkaXIiIHx8ICQoTUtESVJfUCkgIiQkZGlyIjsgXAorKwlkb25lCisraW5zdGFsbDogaW5z dGFsbC1yZWN1cnNpdmUKKytpbnN0YWxsLWV4ZWM6IGluc3RhbGwtZXhlYy1yZWN1cnNpdmUKKytp bnN0YWxsLWRhdGE6IGluc3RhbGwtZGF0YS1yZWN1cnNpdmUKKyt1bmluc3RhbGw6IHVuaW5zdGFs bC1yZWN1cnNpdmUKKysKKytpbnN0YWxsLWFtOiBhbGwtYW0KKysJQCQoTUFLRSkgJChBTV9NQUtF RkxBR1MpIGluc3RhbGwtZXhlYy1hbSBpbnN0YWxsLWRhdGEtYW0KKysKKytpbnN0YWxsY2hlY2s6 IGluc3RhbGxjaGVjay1yZWN1cnNpdmUKKytpbnN0YWxsLXN0cmlwOgorKwkkKE1BS0UpICQoQU1f TUFLRUZMQUdTKSBJTlNUQUxMX1BST0dSQU09IiQoSU5TVEFMTF9TVFJJUF9QUk9HUkFNKSIgXAor KwkgIGluc3RhbGxfc2hfUFJPR1JBTT0iJChJTlNUQUxMX1NUUklQX1BST0dSQU0pIiBJTlNUQUxM X1NUUklQX0ZMQUc9LXMgXAorKwkgIGB0ZXN0IC16ICckKFNUUklQKScgfHwgXAorKwkgICAgZWNo byAiSU5TVEFMTF9QUk9HUkFNX0VOVj1TVFJJUFBST0c9JyQoU1RSSVApJyJgIGluc3RhbGwKKytt b3N0bHljbGVhbi1nZW5lcmljOgorKworK2NsZWFuLWdlbmVyaWM6CisrCisrZGlzdGNsZWFuLWdl bmVyaWM6CisrCS10ZXN0IC16ICIkKENPTkZJR19DTEVBTl9GSUxFUykiIHx8IHJtIC1mICQoQ09O RklHX0NMRUFOX0ZJTEVTKQorKwktdGVzdCAuID0gIiQoc3JjZGlyKSIgfHwgdGVzdCAteiAiJChD T05GSUdfQ0xFQU5fVlBBVEhfRklMRVMpIiB8fCBybSAtZiAkKENPTkZJR19DTEVBTl9WUEFUSF9G SUxFUykKKysKKyttYWludGFpbmVyLWNsZWFuLWdlbmVyaWM6CisrCUBlY2hvICJUaGlzIGNvbW1h bmQgaXMgaW50ZW5kZWQgZm9yIG1haW50YWluZXJzIHRvIHVzZSIKKysJQGVjaG8gIml0IGRlbGV0 ZXMgZmlsZXMgdGhhdCBtYXkgcmVxdWlyZSBzcGVjaWFsIHRvb2xzIHRvIHJlYnVpbGQuIgorKwkt dGVzdCAteiAiJChNQUlOVEFJTkVSQ0xFQU5GSUxFUykiIHx8IHJtIC1mICQoTUFJTlRBSU5FUkNM RUFORklMRVMpCisrY2xlYW46IGNsZWFuLXJlY3Vyc2l2ZQorKworK2NsZWFuLWFtOiBjbGVhbi1n ZW5lcmljIGNsZWFuLWxpYkxUTElCUkFSSUVTIGNsZWFuLWxpYnRvb2wgXAorKwltb3N0bHljbGVh bi1hbQorKworK2Rpc3RjbGVhbjogZGlzdGNsZWFuLXJlY3Vyc2l2ZQorKwktcm0gLXJmIC4vJChE RVBESVIpCisrCS1ybSAtZiBNYWtlZmlsZQorK2Rpc3RjbGVhbi1hbTogY2xlYW4tYW0gZGlzdGNs ZWFuLWNvbXBpbGUgZGlzdGNsZWFuLWdlbmVyaWMgXAorKwlkaXN0Y2xlYW4tdGFncworKworK2R2 aTogZHZpLXJlY3Vyc2l2ZQorKworK2R2aS1hbToKKysKKytodG1sOiBodG1sLXJlY3Vyc2l2ZQor KworK2h0bWwtYW06CisrCisraW5mbzogaW5mby1yZWN1cnNpdmUKKysKKytpbmZvLWFtOgorKwor K2luc3RhbGwtZGF0YS1hbTogaW5zdGFsbC1wa2dpbmNsdWRlSEVBREVSUworKworK2luc3RhbGwt ZHZpOiBpbnN0YWxsLWR2aS1yZWN1cnNpdmUKKysKKytpbnN0YWxsLWR2aS1hbToKKysKKytpbnN0 YWxsLWV4ZWMtYW06IGluc3RhbGwtbGliTFRMSUJSQVJJRVMKKysKKytpbnN0YWxsLWh0bWw6IGlu c3RhbGwtaHRtbC1yZWN1cnNpdmUKKysKKytpbnN0YWxsLWh0bWwtYW06CisrCisraW5zdGFsbC1p bmZvOiBpbnN0YWxsLWluZm8tcmVjdXJzaXZlCisrCisraW5zdGFsbC1pbmZvLWFtOgorKworK2lu c3RhbGwtbWFuOgorKworK2luc3RhbGwtcGRmOiBpbnN0YWxsLXBkZi1yZWN1cnNpdmUKKysKKytp bnN0YWxsLXBkZi1hbToKKysKKytpbnN0YWxsLXBzOiBpbnN0YWxsLXBzLXJlY3Vyc2l2ZQorKwor K2luc3RhbGwtcHMtYW06CisrCisraW5zdGFsbGNoZWNrLWFtOgorKworK21haW50YWluZXItY2xl YW46IG1haW50YWluZXItY2xlYW4tcmVjdXJzaXZlCisrCS1ybSAtcmYgLi8kKERFUERJUikKKysJ LXJtIC1mIE1ha2VmaWxlCisrbWFpbnRhaW5lci1jbGVhbi1hbTogZGlzdGNsZWFuLWFtIG1haW50 YWluZXItY2xlYW4tZ2VuZXJpYworKworK21vc3RseWNsZWFuOiBtb3N0bHljbGVhbi1yZWN1cnNp dmUKKysKKyttb3N0bHljbGVhbi1hbTogbW9zdGx5Y2xlYW4tY29tcGlsZSBtb3N0bHljbGVhbi1n ZW5lcmljIFwKKysJbW9zdGx5Y2xlYW4tbGlidG9vbAorKworK3BkZjogcGRmLXJlY3Vyc2l2ZQor KworK3BkZi1hbToKKysKKytwczogcHMtcmVjdXJzaXZlCisrCisrcHMtYW06CisrCisrdW5pbnN0 YWxsLWFtOiB1bmluc3RhbGwtbGliTFRMSUJSQVJJRVMgdW5pbnN0YWxsLXBrZ2luY2x1ZGVIRUFE RVJTCisrCisrLk1BS0U6ICQoUkVDVVJTSVZFX0NMRUFOX1RBUkdFVFMpICQoUkVDVVJTSVZFX1RB UkdFVFMpIGN0YWdzLXJlY3Vyc2l2ZSBcCisrCWluc3RhbGwtYW0gaW5zdGFsbC1zdHJpcCB0YWdz LXJlY3Vyc2l2ZQorKworKy5QSE9OWTogJChSRUNVUlNJVkVfQ0xFQU5fVEFSR0VUUykgJChSRUNV UlNJVkVfVEFSR0VUUykgQ1RBR1MgR1RBR1MgXAorKwlhbGwgYWxsLWFtIGNoZWNrIGNoZWNrLWFt IGNsZWFuIGNsZWFuLWdlbmVyaWMgXAorKwljbGVhbi1saWJMVExJQlJBUklFUyBjbGVhbi1saWJ0 b29sIGN0YWdzIGN0YWdzLXJlY3Vyc2l2ZSBcCisrCWRpc3RjbGVhbiBkaXN0Y2xlYW4tY29tcGls ZSBkaXN0Y2xlYW4tZ2VuZXJpYyBcCisrCWRpc3RjbGVhbi1saWJ0b29sIGRpc3RjbGVhbi10YWdz IGRpc3RkaXIgZHZpIGR2aS1hbSBodG1sIFwKKysJaHRtbC1hbSBpbmZvIGluZm8tYW0gaW5zdGFs bCBpbnN0YWxsLWFtIGluc3RhbGwtZGF0YSBcCisrCWluc3RhbGwtZGF0YS1hbSBpbnN0YWxsLWR2 aSBpbnN0YWxsLWR2aS1hbSBpbnN0YWxsLWV4ZWMgXAorKwlpbnN0YWxsLWV4ZWMtYW0gaW5zdGFs bC1odG1sIGluc3RhbGwtaHRtbC1hbSBpbnN0YWxsLWluZm8gXAorKwlpbnN0YWxsLWluZm8tYW0g aW5zdGFsbC1saWJMVExJQlJBUklFUyBpbnN0YWxsLW1hbiBpbnN0YWxsLXBkZiBcCisrCWluc3Rh bGwtcGRmLWFtIGluc3RhbGwtcGtnaW5jbHVkZUhFQURFUlMgaW5zdGFsbC1wcyBcCisrCWluc3Rh bGwtcHMtYW0gaW5zdGFsbC1zdHJpcCBpbnN0YWxsY2hlY2sgaW5zdGFsbGNoZWNrLWFtIFwKKysJ aW5zdGFsbGRpcnMgaW5zdGFsbGRpcnMtYW0gbWFpbnRhaW5lci1jbGVhbiBcCisrCW1haW50YWlu ZXItY2xlYW4tZ2VuZXJpYyBtb3N0bHljbGVhbiBtb3N0bHljbGVhbi1jb21waWxlIFwKKysJbW9z dGx5Y2xlYW4tZ2VuZXJpYyBtb3N0bHljbGVhbi1saWJ0b29sIHBkZiBwZGYtYW0gcHMgcHMtYW0g XAorKwl0YWdzIHRhZ3MtcmVjdXJzaXZlIHVuaW5zdGFsbCB1bmluc3RhbGwtYW0gXAorKwl1bmlu c3RhbGwtbGliTFRMSUJSQVJJRVMgdW5pbnN0YWxsLXBrZ2luY2x1ZGVIRUFERVJTCisrCisrQFNF VF9NQUtFQAorKworKyMgVGVsbCB2ZXJzaW9ucyBbMy41OSwzLjYzKSBvZiBHTlUgbWFrZSB0byBu b3QgZXhwb3J0IGFsbCB2YXJpYWJsZXMuCisrIyBPdGhlcndpc2UgYSBzeXN0ZW0gbGltaXQgKGZv ciBTeXNWIGF0IGxlYXN0KSBtYXkgYmUgZXhjZWVkZWQuCisrLk5PRVhQT1JUOgorZGlmZiAtTnVy IHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvY29yZS9zb2NpLXBsYXRmb3JtLmggc29jaS0zLjAuMF90 cmVwMzAwL3NvY2kvY29yZS9zb2NpLXBsYXRmb3JtLmgKKy0tLSBzb2NpLTMuMC4wXzQtcGFjay9z b2NpL2NvcmUvc29jaS1wbGF0Zm9ybS5oCTIwMTAtMDEtMjMgMTQ6NDU6NDQuMDAwMDAwMDAwICsw MTAwCisrKysgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvY29yZS9zb2NpLXBsYXRmb3JtLmgJMjAx MC0wMS0yMyAxMzoyNTo1Ny4wMDAwMDAwMDAgKzAxMDAKK0BAIC0xMiw4ICsxMiwxMCBAQAorICNp ZmRlZiBfTVNDX1ZFUgorIAorIC8vIERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgdnNucHJpbnRmIHZh cmlhbnRzLgorLSNkZWZpbmUgSEFWRV9WU05QUklOVEYgMQorLSNkZWZpbmUgdnNucHJpbnRmIF92 c25wcmludGYKKysjaWYgX01TQ19WRVIgPCAxNTAwCisrIyBkZWZpbmUgSEFWRV9WU05QUklOVEYg MQorKyMgZGVmaW5lIHZzbnByaW50ZiBfdnNucHJpbnRmCisrI2VuZGlmCisgCisgLy8gRGVmaW5l IGlmIHlvdSBoYXZlIHRoZSBzbnByaW50ZiB2YXJpYW50cy4KKyAjZGVmaW5lIEhBVkVfU05QUklO VEYgMQorZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvY29yZS9zb2NpLXNpbXBsZS5j cHAgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvY29yZS9zb2NpLXNpbXBsZS5jcHAKKy0tLSBzb2Np LTMuMC4wXzQtcGFjay9zb2NpL2NvcmUvc29jaS1zaW1wbGUuY3BwCTIwMTAtMDEtMjMgMTQ6NDU6 NDQuMDAwMDAwMDAwICswMTAwCisrKysgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvY29yZS9zb2Np LXNpbXBsZS5jcHAJMjAxMC0wMS0yMyAxMzoyNTo1Ny4wMDAwMDAwMDAgKzAxMDAKK0BAIC00NzMs NyArNDczLDcgQEAKKyAvLyBoZWxwZXIgZm9yIGZvcm1hdHRpbmcgZGF0ZSB2YWx1ZXMKKyBjaGFy IGNvbnN0ICogZm9ybWF0X2RhdGUoc3RhdGVtZW50X3dyYXBwZXIgJiB3cmFwcGVyLCBzdGQ6OnRt IGNvbnN0ICYgZCkKKyB7CistICAgIHNwcmludGYod3JhcHBlci5kYXRlX2Zvcm1hdHRlZCwgIiVk ICVkICVkICVkICVkICVkIiwKKysgICAgc3RkOjpzcHJpbnRmKHdyYXBwZXIuZGF0ZV9mb3JtYXR0 ZWQsICIlZCAlZCAlZCAlZCAlZCAlZCIsCisgICAgICAgICBkLnRtX3llYXIgKyAxOTAwLCBkLnRt X21vbiArIDEsIGQudG1fbWRheSwKKyAgICAgICAgIGQudG1faG91ciwgZC50bV9taW4sIGQudG1f c2VjKTsKKyAKK0BAIC00OTAsNyArNDkwLDcgQEAKKyAgICAgaW50IGhvdXI7CisgICAgIGludCBt aW51dGU7CisgICAgIGludCBzZWNvbmQ7CistICAgIGludCBjb25zdCBjb252ZXJ0ZWQgPSBzc2Nh bmYodmFsLCAiJWQgJWQgJWQgJWQgJWQgJWQiLAorKyAgICBpbnQgY29uc3QgY29udmVydGVkID0g c3RkOjpzc2NhbmYodmFsLCAiJWQgJWQgJWQgJWQgJWQgJWQiLAorICAgICAgICAgJnllYXIsICZt b250aCwgJmRheSwgJmhvdXIsICZtaW51dGUsICZzZWNvbmQpOworICAgICBpZiAoY29udmVydGVk ICE9IDYpCisgICAgIHsKK0BAIC0xNTExLDcgKzE1MTEsNyBAQAorIAorICAgICAvLyBmb3JtYXQg aXM6ICJZWVlZIE1NIEREIGhoIG1tIHNzIgorICAgICBzdGQ6OnRtIGNvbnN0ICYgZCA9IHdyYXBw ZXItPnVzZV9kYXRlc1tuYW1lXTsKKy0gICAgc3ByaW50Zih3cmFwcGVyLT5kYXRlX2Zvcm1hdHRl ZCwgIiVkICVkICVkICVkICVkICVkIiwKKysgICAgc3RkOjpzcHJpbnRmKHdyYXBwZXItPmRhdGVf Zm9ybWF0dGVkLCAiJWQgJWQgJWQgJWQgJWQgJWQiLAorICAgICAgICAgZC50bV95ZWFyICsgMTkw MCwgZC50bV9tb24gKyAxLCBkLnRtX21kYXksCisgICAgICAgICBkLnRtX2hvdXIsIGQudG1fbWlu LCBkLnRtX3NlYyk7CisgCitAQCAtMTUyOCwxMCArMTUyOCwxMCBAQAorIAorICAgICAgICAgLy8g YmluZCBhbGwgaW50byBlbGVtZW50cworIAorLSAgICAgICAgc2l6ZV90IGNvbnN0IGludG9fZWxl bWVudHMgPSB3cmFwcGVyLT5pbnRvX3R5cGVzLnNpemUoKTsKKysgICAgICAgIGludCBjb25zdCBp bnRvX2VsZW1lbnRzID0gc3RhdGljX2Nhc3Q8aW50Pih3cmFwcGVyLT5pbnRvX3R5cGVzLnNpemUo KSk7CisgICAgICAgICBpZiAod3JhcHBlci0+aW50b19raW5kID09IHN0YXRlbWVudF93cmFwcGVy OjpzaW5nbGUpCisgICAgICAgICB7CistICAgICAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkg IT0gaW50b19lbGVtZW50czsgKytpKQorKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpICE9 IGludG9fZWxlbWVudHM7ICsraSkKKyAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgIHN3 aXRjaCAod3JhcHBlci0+aW50b190eXBlc1tpXSkKKyAgICAgICAgICAgICAgICAgeworQEAgLTE1 NjMsOCArMTU2Myw3IEBACisgICAgICAgICBlbHNlCisgICAgICAgICB7CisgICAgICAgICAgICAg Ly8gdmVjdG9yIGVsZW1lbnRzCistCistICAgICAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkg IT0gaW50b19lbGVtZW50czsgKytpKQorKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpICE9 IGludG9fZWxlbWVudHM7ICsraSkKKyAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgIHN3 aXRjaCAod3JhcHBlci0+aW50b190eXBlc1tpXSkKKyAgICAgICAgICAgICAgICAgeworZGlmZiAt TnVyIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvY29yZS9zb3VyY2VzLm1rIHNvY2ktMy4wLjBfdHJl cDMwMC9zb2NpL2NvcmUvc291cmNlcy5taworLS0tIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvY29y ZS9zb3VyY2VzLm1rCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCisrKysgc29j aS0zLjAuMF90cmVwMzAwL3NvY2kvY29yZS9zb3VyY2VzLm1rCTIwMDktMDQtMTYgMTk6Mzc6MDUu MDAwMDAwMDAwICswMjAwCitAQCAtMCwwICsxLDU4IEBACisrY29yZV9oX3NvdXJjZXMgPSBcCisr ICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9iYWNrZW5kLWxvYWRlci5oIFwKKysgICAg ICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL2Jsb2IuaCBcCisrICAgICAgICAkKHRvcF9zcmNk aXIpL3NvY2kvY29yZS9ibG9iLWV4Y2hhbmdlLmggXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9z b2NpL2NvcmUvYm9vc3QtZ3JlZ29yaWFuLWRhdGUuaCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIp L3NvY2kvY29yZS9ib29zdC1mdXNpb24uaCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kv Y29yZS9ib29zdC1vcHRpb25hbC5oIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3Jl L2Jvb3N0LXR1cGxlLmggXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvY29ubmVj dGlvbi1wb29sLmggXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvZXJyb3IuaCBc CisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9leGNoYW5nZS10cmFpdHMuaCBcCisr ICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9pbnRvLmggXAorKyAgICAgICAgJCh0b3Bf c3JjZGlyKS9zb2NpL2NvcmUvaW50by10eXBlLmggXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9z b2NpL2NvcmUvb25jZS10ZW1wLXR5cGUuaCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kv Y29yZS9wcmVwYXJlLXRlbXAtdHlwZS5oIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9j b3JlL3Byb2NlZHVyZS5oIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3JlZi1j b3VudGVkLXByZXBhcmUtaW5mby5oIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3Jl L3JlZi1jb3VudGVkLXN0YXRlbWVudC5oIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9j b3JlL3Jvdy5oIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3Jvdy1leGNoYW5n ZS5oIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3Jvd2lkLmggXAorKyAgICAg ICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcm93aWQtZXhjaGFuZ2UuaCBcCisrICAgICAgICAk KHRvcF9zcmNkaXIpL3NvY2kvY29yZS9yb3dzZXQuaCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIp L3NvY2kvY29yZS9zZXNzaW9uLmggXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUv c29jaS1iYWNrZW5kLmggXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvc29jaS1j b25maWcuaCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9zb2NpLXBsYXRmb3Jt LmggXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvc29jaS1zaW1wbGUuaCBcCisr ICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9zb2NpLmggXAorKyAgICAgICAgJCh0b3Bf c3JjZGlyKS9zb2NpL2NvcmUvc3RhdGVtZW50LmggXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9z b2NpL2NvcmUvdHJhbnNhY3Rpb24uaCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29y ZS90eXBlLWNvbnZlcnNpb24uaCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS90 eXBlLWNvbnZlcnNpb24tdHJhaXRzLmggXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2Nv cmUvdHlwZS1ob2xkZXIuaCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS90eXBl LXB0ci5oIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3VzZS5oIFwKKysgICAg ICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3VzZS10eXBlLmggXAorKyAgICAgICAgJCh0b3Bf c3JjZGlyKS9zb2NpL2NvcmUvdmFsdWVzLmggXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2Np L2NvcmUvdmFsdWVzLWV4Y2hhbmdlLmgKKytjb3JlX2NjX3NvdXJjZXMgPSBcCisrICAgICAgICAk KHRvcF9zcmNkaXIpL3NvY2kvY29yZS9iYWNrZW5kLWxvYWRlci5jcHAgXAorKyAgICAgICAgJCh0 b3Bfc3JjZGlyKS9zb2NpL2NvcmUvYmxvYi5jcHAgXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9z b2NpL2NvcmUvY29ubmVjdGlvbi1wb29sLmNwcCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3Nv Y2kvY29yZS9lcnJvci5jcHAgXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvaW50 by10eXBlLmNwcCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9vbmNlLXRlbXAt dHlwZS5jcHAgXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcHJlcGFyZS10ZW1w LXR5cGUuY3BwIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3Byb2NlZHVyZS5j cHAgXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcmVmLWNvdW50ZWQtcHJlcGFy ZS1pbmZvLmNwcCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9yZWYtY291bnRl ZC1zdGF0ZW1lbnQuY3BwIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3Jvdy5j cHAgXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcm93aWQuY3BwIFwKKysgICAg ICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3Nlc3Npb24uY3BwIFwKKysgICAgICAgICQodG9w X3NyY2Rpcikvc29jaS9jb3JlL3NvY2ktc2ltcGxlLmNwcCBcCisrICAgICAgICAkKHRvcF9zcmNk aXIpL3NvY2kvY29yZS9zdGF0ZW1lbnQuY3BwIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29j aS9jb3JlL3RyYW5zYWN0aW9uLmNwcCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29y ZS91c2UtdHlwZS5jcHAgXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvdmFsdWVz LmNwcAorZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvY29yZS90ZXN0L2NvbW1vbi10 ZXN0cy5oIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2NvcmUvdGVzdC9jb21tb24tdGVzdHMuaAor LS0tIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvY29yZS90ZXN0L2NvbW1vbi10ZXN0cy5oCTIwMTAt MDEtMjMgMTQ6NDU6NDQuMDAwMDAwMDAwICswMTAwCisrKysgc29jaS0zLjAuMF90cmVwMzAwL3Nv Y2kvY29yZS90ZXN0L2NvbW1vbi10ZXN0cy5oCTIwMDktMDUtMDYgMDA6MDI6MzYuMDAwMDAwMDAw ICswMjAwCitAQCAtOCwxNiArOCwzMCBAQAorICNpZm5kZWYgU09DSV9DT01NT05fVEVTVFNfSF9J TkNMVURFRAorICNkZWZpbmUgU09DSV9DT01NT05fVEVTVFNfSF9JTkNMVURFRAorIAorLSNpbmNs dWRlICJzb2NpLmgiCistI2luY2x1ZGUgInNvY2ktY29uZmlnLmgiCisrLy8KKysjaWYgZGVmaW5l ZChTT0NJX0hFQURFUlNfQlVSSUVEKQorKyMgICAgICAgaW5jbHVkZSA8c29jaS9jb3JlL3NvY2ku aD4KKysjICAgICAgIGluY2x1ZGUgPHNvY2kvY29yZS9zb2NpLWNvbmZpZy5oPgorKyMgICAgICAg aW5jbHVkZSA8c29jaS9jb3JlL2Jvb3N0LW9wdGlvbmFsLmg+CisrIyAgICAgICBpbmNsdWRlIDxz b2NpL2NvcmUvYm9vc3QtdHVwbGUuaD4KKysjICAgICAgIGluY2x1ZGUgPHNvY2kvY29yZS9ib29z dC1ncmVnb3JpYW4tZGF0ZS5oPgorKyNlbHNlCisrIwlpbmNsdWRlIDxzb2NpLmg+CisrIyAgICAg ICBpbmNsdWRlIDxzb2NpLWNvbmZpZy5oPgorKyMgICAgICAgaW5jbHVkZSA8Ym9vc3Qtb3B0aW9u YWwuaD4KKysjICAgICAgIGluY2x1ZGUgPGJvb3N0LXR1cGxlLmg+CisrIyAgICAgICBpbmNsdWRl IDxib29zdC1ncmVnb3JpYW4tZGF0ZS5oPgorKyNlbmRpZgorKy8vCisgCisgLy8gZXhwbGljaXRs eSBwdWxsIGNvbnZlcnNpb25zIGZvciBCb29zdCdzIG9wdGlvbmFsLCB0dXBsZSBhbmQgZnVzaW9u OgorICNpbmNsdWRlIDxib29zdC92ZXJzaW9uLmhwcD4KKy0jaW5jbHVkZSA8Ym9vc3Qtb3B0aW9u YWwuaD4KKy0jaW5jbHVkZSA8Ym9vc3QtdHVwbGUuaD4KKy0jaW5jbHVkZSA8Ym9vc3QtZ3JlZ29y aWFuLWRhdGUuaD4KKyAjaWYgZGVmaW5lZChCT09TVF9WRVJTSU9OKSAmJiBCT09TVF9WRVJTSU9O ID49IDEwMzUwMAorKyNpZiBkZWZpbmVkKFNPQ0lfSEVBREVSU19CVVJJRUQpCisrI2luY2x1ZGUg PHNvY2kvY29yZS9ib29zdC1mdXNpb24uaD4KKysjZWxzZQorICNpbmNsdWRlIDxib29zdC1mdXNp b24uaD4KKysjZW5kaWYKKyAjZW5kaWYgLy8gQk9PU1RfVkVSU0lPTgorIAorICNpbmNsdWRlIDxh bGdvcml0aG0+CitkaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svc29jaS9jb3JlL3Rlc3QvTWFr ZWZpbGUuYW0gc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvY29yZS90ZXN0L01ha2VmaWxlLmFtCist LS0gc29jaS0zLjAuMF80LXBhY2svc29jaS9jb3JlL3Rlc3QvTWFrZWZpbGUuYW0JMTk3MC0wMS0w MSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKKysrKyBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9j b3JlL3Rlc3QvTWFrZWZpbGUuYW0JMjAwOS0wNS0wNiAwMDoyOTowNi4wMDAwMDAwMDAgKzAyMDAK K0BAIC0wLDAgKzEsMjYgQEAKKysjIyBjb3JlIHN1Yi1kaXJlY3RvcnkKKytpbmNsdWRlICQodG9w X3NyY2RpcikvTWFrZWZpbGUuY29tbW9uCisraW5jbHVkZSAkKHNyY2Rpcikvc291cmNlcy5tawor KworK01BSU5UQUlORVJDTEVBTkZJTEVTID0gTWFrZWZpbGUuaW4KKysKKytFWFRSQV9ESVNUX0ZP Ul9TT0NJX0NPTVBBVElCSUxJVFkgPQorKworK0VYVFJBX0RJU1QgPSAkKEVYVFJBX0RJU1RfRk9S X1NPQ0lfQ09NUEFUSUJJTElUWSkKKysKKytub2luc3RfTFRMSUJSQVJJRVM9IGxpYnNvY2lfY29y ZV90ZXN0LmxhCisrCisrbGlic29jaV9jb3JlX3Rlc3RfbGFfU09VUkNFUz0gJChjb3JlX3Rlc3Rf aF9zb3VyY2VzKQorK2xpYnNvY2lfY29yZV90ZXN0X2xhX0NYWEZMQUdTID0KKytsaWJzb2NpX2Nv cmVfdGVzdF9sYV9MSUJBREQgPQorKyNsaWJzb2NpX2NvcmVfdGVzdF9sYV9MREZMQUdTID0gLXZl cnNpb24taW5mbyAkKEdFTkVSSUNfTElCUkFSWV9WRVJTSU9OKQorK2xpYnNvY2lfY29yZV90ZXN0 X2xhX0xERkxBR1MgPQorKworK3BrZ2luY2x1ZGVfSEVBREVSUyA9ICQoY29yZV90ZXN0X2hfc291 cmNlcykKKytpZiBTT0NJX0hFQURFUlNfQlVSSUVECisrc29jaV9pbmNsdWRlX2RpciA9ICQoaW5j bHVkZWRpcikvc29jaS9jb3JlL3Rlc3QKKytlbHNlCisrc29jaV9pbmNsdWRlX2RpciA9ICQoaW5j bHVkZWRpcikKKytlbmRpZgorK3BrZ2luY2x1ZGVkaXIgPSAkKHNvY2lfaW5jbHVkZV9kaXIpCisr CitkaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svc29jaS9jb3JlL3Rlc3QvTWFrZWZpbGUuaW4g c29jaS0zLjAuMF90cmVwMzAwL3NvY2kvY29yZS90ZXN0L01ha2VmaWxlLmluCistLS0gc29jaS0z LjAuMF80LXBhY2svc29jaS9jb3JlL3Rlc3QvTWFrZWZpbGUuaW4JMTk3MC0wMS0wMSAwMTowMDow MC4wMDAwMDAwMDAgKzAxMDAKKysrKyBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9jb3JlL3Rlc3Qv TWFrZWZpbGUuaW4JMjAxMC0wMS0yMyAxNDo0NDo1Mi4wMDAwMDAwMDAgKzAxMDAKK0BAIC0wLDAg KzEsNTY0IEBACisrIyBNYWtlZmlsZS5pbiBnZW5lcmF0ZWQgYnkgYXV0b21ha2UgMS4xMS4xIGZy b20gTWFrZWZpbGUuYW0uCisrIyBAY29uZmlndXJlX2lucHV0QAorKworKyMgQ29weXJpZ2h0IChD KSAxOTk0LCAxOTk1LCAxOTk2LCAxOTk3LCAxOTk4LCAxOTk5LCAyMDAwLCAyMDAxLCAyMDAyLAor KyMgMjAwMywgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSAgRnJlZSBTb2Z0d2Fy ZSBGb3VuZGF0aW9uLAorKyMgSW5jLgorKyMgVGhpcyBNYWtlZmlsZS5pbiBpcyBmcmVlIHNvZnR3 YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCisrIyBnaXZlcyB1bmxpbWl0ZWQgcGVy bWlzc2lvbiB0byBjb3B5IGFuZC9vciBkaXN0cmlidXRlIGl0LAorKyMgd2l0aCBvciB3aXRob3V0 IG1vZGlmaWNhdGlvbnMsIGFzIGxvbmcgYXMgdGhpcyBub3RpY2UgaXMgcHJlc2VydmVkLgorKwor KyMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBi ZSB1c2VmdWwsCisrIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFksIHRvIHRoZSBleHRlbnQgcGVy bWl0dGVkIGJ5IGxhdzsgd2l0aG91dAorKyMgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZiBN RVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQQorKyMgUEFSVElDVUxBUiBQVVJQT1NFLgor KworK0BTRVRfTUFLRUAKKysKKysKKytWUEFUSCA9IEBzcmNkaXJACisrcGtnZGF0YWRpciA9ICQo ZGF0YWRpcikvQFBBQ0tBR0VACisrcGtnbGliZGlyID0gJChsaWJkaXIpL0BQQUNLQUdFQAorK3Br Z2xpYmV4ZWNkaXIgPSAkKGxpYmV4ZWNkaXIpL0BQQUNLQUdFQAorK2FtX19jZCA9IENEUEFUSD0i JCR7WlNIX1ZFUlNJT04rLn0kKFBBVEhfU0VQQVJBVE9SKSIgJiYgY2QKKytpbnN0YWxsX3NoX0RB VEEgPSAkKGluc3RhbGxfc2gpIC1jIC1tIDY0NAorK2luc3RhbGxfc2hfUFJPR1JBTSA9ICQoaW5z dGFsbF9zaCkgLWMKKytpbnN0YWxsX3NoX1NDUklQVCA9ICQoaW5zdGFsbF9zaCkgLWMKKytJTlNU QUxMX0hFQURFUiA9ICQoSU5TVEFMTF9EQVRBKQorK3RyYW5zZm9ybSA9ICQocHJvZ3JhbV90cmFu c2Zvcm1fbmFtZSkKKytOT1JNQUxfSU5TVEFMTCA9IDoKKytQUkVfSU5TVEFMTCA9IDoKKytQT1NU X0lOU1RBTEwgPSA6CisrTk9STUFMX1VOSU5TVEFMTCA9IDoKKytQUkVfVU5JTlNUQUxMID0gOgor K1BPU1RfVU5JTlNUQUxMID0gOgorK2J1aWxkX3RyaXBsZXQgPSBAYnVpbGRACisraG9zdF90cmlw bGV0ID0gQGhvc3RACisrRElTVF9DT01NT04gPSAkKHBrZ2luY2x1ZGVfSEVBREVSUykgJChzcmNk aXIpL01ha2VmaWxlLmFtIFwKKysJJChzcmNkaXIpL01ha2VmaWxlLmluICQoc3JjZGlyKS9zb3Vy Y2VzLm1rIFwKKysJJCh0b3Bfc3JjZGlyKS9NYWtlZmlsZS5jb21tb24KKytzdWJkaXIgPSBzb2Np L2NvcmUvdGVzdAorK0FDTE9DQUxfTTQgPSAkKHRvcF9zcmNkaXIpL2FjbG9jYWwubTQKKythbV9f YWNsb2NhbF9tNF9kZXBzID0gJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfYm9vc3QubTQgXAorKwkk KHRvcF9zcmNkaXIpL2NvbmZpZy9heF9teXNxbC5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmln L2F4X29yYWNsZV9vY2kubTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9wb3N0Z3Jlc3Fs Lm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcvY3BwdW5pdC5tNCBcCisrCSQodG9wX3NyY2Rp cikvY29uZmlnL2xpYnRvb2wubTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9sdG9wdGlvbnMu bTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9sdHN1Z2FyLm00IFwKKysJJCh0b3Bfc3JjZGly KS9jb25maWcvbHR2ZXJzaW9uLm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcvbHR+b2Jzb2xl dGUubTQgJCh0b3Bfc3JjZGlyKS9jb25maWd1cmUuYWMKKythbV9fY29uZmlndXJlX2RlcHMgPSAk KGFtX19hY2xvY2FsX200X2RlcHMpICQoQ09ORklHVVJFX0RFUEVOREVOQ0lFUykgXAorKwkkKEFD TE9DQUxfTTQpCisrbWtpbnN0YWxsZGlycyA9ICQoaW5zdGFsbF9zaCkgLWQKKytDT05GSUdfSEVB REVSID0gJCh0b3BfYnVpbGRkaXIpL3NvY2kvY29uZmlnLmgKKytDT05GSUdfQ0xFQU5fRklMRVMg PQorK0NPTkZJR19DTEVBTl9WUEFUSF9GSUxFUyA9CisrTFRMSUJSQVJJRVMgPSAkKG5vaW5zdF9M VExJQlJBUklFUykKKytsaWJzb2NpX2NvcmVfdGVzdF9sYV9ERVBFTkRFTkNJRVMgPQorK2FtX19v YmplY3RzXzEgPQorK2FtX2xpYnNvY2lfY29yZV90ZXN0X2xhX09CSkVDVFMgPSAkKGFtX19vYmpl Y3RzXzEpCisrbGlic29jaV9jb3JlX3Rlc3RfbGFfT0JKRUNUUyA9ICQoYW1fbGlic29jaV9jb3Jl X3Rlc3RfbGFfT0JKRUNUUykKKytsaWJzb2NpX2NvcmVfdGVzdF9sYV9MSU5LID0gJChMSUJUT09M KSAtLXRhZz1DQyAkKEFNX0xJQlRPT0xGTEFHUykgXAorKwkkKExJQlRPT0xGTEFHUykgLS1tb2Rl PWxpbmsgJChDQ0xEKSAkKEFNX0NGTEFHUykgJChDRkxBR1MpIFwKKysJJChsaWJzb2NpX2NvcmVf dGVzdF9sYV9MREZMQUdTKSAkKExERkxBR1MpIC1vICRACisrREVGQVVMVF9JTkNMVURFUyA9IC1J LkBhbV9faXNyY0AgLUkkKHRvcF9idWlsZGRpcikvc29jaQorK0NPTVBJTEUgPSAkKENDKSAkKERF RlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgXAorKwkk KENQUEZMQUdTKSAkKEFNX0NGTEFHUykgJChDRkxBR1MpCisrTFRDT01QSUxFID0gJChMSUJUT09M KSAtLXRhZz1DQyAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIFwKKysJLS1tb2Rl PWNvbXBpbGUgJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpIFwK KysJJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChBTV9DRkxBR1MpICQoQ0ZMQUdTKQorK0ND TEQgPSAkKENDKQorK0xJTksgPSAkKExJQlRPT0wpIC0tdGFnPUNDICQoQU1fTElCVE9PTEZMQUdT KSAkKExJQlRPT0xGTEFHUykgXAorKwktLW1vZGU9bGluayAkKENDTEQpICQoQU1fQ0ZMQUdTKSAk KENGTEFHUykgJChBTV9MREZMQUdTKSBcCisrCSQoTERGTEFHUykgLW8gJEAKKytTT1VSQ0VTID0g JChsaWJzb2NpX2NvcmVfdGVzdF9sYV9TT1VSQ0VTKQorK0RJU1RfU09VUkNFUyA9ICQobGlic29j aV9jb3JlX3Rlc3RfbGFfU09VUkNFUykKKythbV9fdnBhdGhfYWRqX3NldHVwID0gc3JjZGlyc3Ry aXA9YGVjaG8gIiQoc3JjZGlyKSIgfCBzZWQgJ3N8LnwufGcnYDsKKythbV9fdnBhdGhfYWRqID0g Y2FzZSAkJHAgaW4gXAorKyAgICAkKHNyY2RpcikvKikgZj1gZWNobyAiJCRwIiB8IHNlZCAic3xe JCRzcmNkaXJzdHJpcC98fCJgOzsgXAorKyAgICAqKSBmPSQkcDs7IFwKKysgIGVzYWM7CisrYW1f X3N0cmlwX2RpciA9IGY9YGVjaG8gJCRwIHwgc2VkIC1lICdzfF4uKi98fCdgOworK2FtX19pbnN0 YWxsX21heCA9IDQwCisrYW1fX25vYmFzZV9zdHJpcF9zZXR1cCA9IFwKKysgIHNyY2RpcnN0cmlw PWBlY2hvICIkKHNyY2RpcikiIHwgc2VkICdzL1tdLlteJCRcXCp8XS9cXFxcJi9nJ2AKKythbV9f bm9iYXNlX3N0cmlwID0gXAorKyAgZm9yIHAgaW4gJCRsaXN0OyBkbyBlY2hvICIkJHAiOyBkb25l IHwgc2VkIC1lICJzfCQkc3JjZGlyc3RyaXAvfHwiCisrYW1fX25vYmFzZV9saXN0ID0gJChhbV9f bm9iYXNlX3N0cmlwX3NldHVwKTsgXAorKyAgZm9yIHAgaW4gJCRsaXN0OyBkbyBlY2hvICIkJHAg JCRwIjsgZG9uZSB8IFwKKysgIHNlZCAic3wgJCRzcmNkaXJzdHJpcC98IHw7IicgLyAuKlwvLyFz LyAuKi8gLi87IHMsXCggLipcKS9bXi9dKiQkLFwxLCcgfCBcCisrICAkKEFXSykgJ0JFR0lOIHsg ZmlsZXNbIi4iXSA9ICIiIH0geyBmaWxlc1skJDJdID0gZmlsZXNbJCQyXSAiICIgJCQxOyBcCisr ICAgIGlmICgrK25bJCQyXSA9PSAkKGFtX19pbnN0YWxsX21heCkpIFwKKysgICAgICB7IHByaW50 ICQkMiwgZmlsZXNbJCQyXTsgblskJDJdID0gMDsgZmlsZXNbJCQyXSA9ICIiIH0gfSBcCisrICAg IEVORCB7IGZvciAoZGlyIGluIGZpbGVzKSBwcmludCBkaXIsIGZpbGVzW2Rpcl0gfScKKythbV9f YmFzZV9saXN0ID0gXAorKyAgc2VkICckJCFOOyQkIU47JCQhTjskJCFOOyQkIU47JCQhTjskJCFO O3MvXG4vIC9nJyB8IFwKKysgIHNlZCAnJCQhTjskJCFOOyQkIU47JCQhTjtzL1xuLyAvZycKKyth bV9faW5zdGFsbGRpcnMgPSAiJChERVNURElSKSQocGtnaW5jbHVkZWRpcikiCisrSEVBREVSUyA9 ICQocGtnaW5jbHVkZV9IRUFERVJTKQorK0VUQUdTID0gZXRhZ3MKKytDVEFHUyA9IGN0YWdzCisr RElTVEZJTEVTID0gJChESVNUX0NPTU1PTikgJChESVNUX1NPVVJDRVMpICQoVEVYSU5GT1MpICQo RVhUUkFfRElTVCkKKytwa2dpbmNsdWRlZGlyID0gJChzb2NpX2luY2x1ZGVfZGlyKQorK0FDTE9D QUwgPSBAQUNMT0NBTEAKKytBTVRBUiA9IEBBTVRBUkAKKytBUiA9IEBBUkAKKytBVVRPQ09ORiA9 IEBBVVRPQ09ORkAKKytBVVRPSEVBREVSID0gQEFVVE9IRUFERVJACisrQVVUT01BS0UgPSBAQVVU T01BS0VACisrQVdLID0gQEFXS0AKKytCT09TVF9DRkxBR1MgPSBAQk9PU1RfQ0ZMQUdTQAorK0JP T1NUX0RBVEVfVElNRV9MSUIgPSBAQk9PU1RfREFURV9USU1FX0xJQkAKKytCT09TVF9GSUxFU1lT VEVNX0xJQiA9IEBCT09TVF9GSUxFU1lTVEVNX0xJQkAKKytCT09TVF9JT1NUUkVBTVNfTElCID0g QEJPT1NUX0lPU1RSRUFNU19MSUJACisrQk9PU1RfTElCUyA9IEBCT09TVF9MSUJTQAorK0JPT1NU X01QSV9MSUIgPSBAQk9PU1RfTVBJX0xJQkAKKytCT09TVF9NUElfUFlUSE9OX0xJQiA9IEBCT09T VF9NUElfUFlUSE9OX0xJQkAKKytCT09TVF9QUk9HUkFNX09QVElPTlNfTElCID0gQEJPT1NUX1BS T0dSQU1fT1BUSU9OU19MSUJACisrQk9PU1RfUFlUSE9OX0xJQiA9IEBCT09TVF9QWVRIT05fTElC QAorK0JPT1NUX1JFR0VYX0xJQiA9IEBCT09TVF9SRUdFWF9MSUJACisrQk9PU1RfU0VSSUFMSVpB VElPTl9MSUIgPSBAQk9PU1RfU0VSSUFMSVpBVElPTl9MSUJACisrQk9PU1RfU0lHTkFMU19MSUIg PSBAQk9PU1RfU0lHTkFMU19MSUJACisrQk9PU1RfU1lTVEVNX0xJQiA9IEBCT09TVF9TWVNURU1f TElCQAorK0JPT1NUX1RIUkVBRF9MSUIgPSBAQk9PU1RfVEhSRUFEX0xJQkAKKytCT09TVF9VTklU X1RFU1RfRlJBTUVXT1JLX0xJQiA9IEBCT09TVF9VTklUX1RFU1RfRlJBTUVXT1JLX0xJQkAKKytC T09TVF9WRVJTSU9OID0gQEJPT1NUX1ZFUlNJT05ACisrQk9PU1RfV1NFUklBTElaQVRJT05fTElC ID0gQEJPT1NUX1dTRVJJQUxJWkFUSU9OX0xJQkAKKytDQyA9IEBDQ0AKKytDQ0RFUE1PREUgPSBA Q0NERVBNT0RFQAorK0NGTEFHUyA9IEBDRkxBR1NACisrQ1BQID0gQENQUEAKKytDUFBGTEFHUyA9 IEBDUFBGTEFHU0AKKytDUFBVTklUX0NGTEFHUyA9IEBDUFBVTklUX0NGTEFHU0AKKytDUFBVTklU X0NPTkZJRyA9IEBDUFBVTklUX0NPTkZJR0AKKytDUFBVTklUX0xJQlMgPSBAQ1BQVU5JVF9MSUJT QAorK0NQUFVOSVRfVkVSU0lPTiA9IEBDUFBVTklUX1ZFUlNJT05ACisrQ1hYID0gQENYWEAKKytD WFhDUFAgPSBAQ1hYQ1BQQAorK0NYWERFUE1PREUgPSBAQ1hYREVQTU9ERUAKKytDWFhGTEFHUyA9 IEBDWFhGTEFHU0AKKytDWUdQQVRIX1cgPSBAQ1lHUEFUSF9XQAorK0RFRlMgPSBAREVGU0AKKytE RVBESVIgPSBAREVQRElSQAorK0RTWU1VVElMID0gQERTWU1VVElMQAorK0RVTVBCSU4gPSBARFVN UEJJTkAKKytFQ0hPX0MgPSBARUNIT19DQAorK0VDSE9fTiA9IEBFQ0hPX05ACisrRUNIT19UID0g QEVDSE9fVEAKKytFR1JFUCA9IEBFR1JFUEAKKytFWEVFWFQgPSBARVhFRVhUQAorK0ZHUkVQID0g QEZHUkVQQAorK0dFTkVSSUNfTElCUkFSWV9WRVJTSU9OID0gQEdFTkVSSUNfTElCUkFSWV9WRVJT SU9OQAorK0dSRVAgPSBAR1JFUEAKKytJTlNUQUxMID0gQElOU1RBTExACisrSU5TVEFMTF9EQVRB ID0gQElOU1RBTExfREFUQUAKKytJTlNUQUxMX1BST0dSQU0gPSBASU5TVEFMTF9QUk9HUkFNQAor K0lOU1RBTExfU0NSSVBUID0gQElOU1RBTExfU0NSSVBUQAorK0lOU1RBTExfU1RSSVBfUFJPR1JB TSA9IEBJTlNUQUxMX1NUUklQX1BST0dSQU1ACisrTEQgPSBATERACisrTERGTEFHUyA9IEBMREZM QUdTQAorK0xJQk9CSlMgPSBATElCT0JKU0AKKytMSUJTID0gQExJQlNACisrTElCVE9PTCA9IEBM SUJUT09MQAorK0xJUE8gPSBATElQT0AKKytMTl9TID0gQExOX1NACisrTFRMSUJPQkpTID0gQExU TElCT0JKU0AKKytNQUtFSU5GTyA9IEBNQUtFSU5GT0AKKytNS0RJUl9QID0gQE1LRElSX1BACisr TVlTUUxfQ0ZMQUdTID0gQE1ZU1FMX0NGTEFHU0AKKytNWVNRTF9DX0xJQiA9IEBNWVNRTF9DX0xJ QkAKKytNWVNRTF9ESVJTID0gQE1ZU1FMX0RJUlNACisrTVlTUUxfTElCUyA9IEBNWVNRTF9MSUJT QAorK01ZU1FMX1ZFUlNJT04gPSBATVlTUUxfVkVSU0lPTkAKKytOTSA9IEBOTUAKKytOTUVESVQg PSBATk1FRElUQAorK09CSkRVTVAgPSBAT0JKRFVNUEAKKytPQkpFWFQgPSBAT0JKRVhUQAorK09S QUNMRV9ESVJTID0gQE9SQUNMRV9ESVJTQAorK09SQUNMRV9PQ0lfQ0ZMQUdTID0gQE9SQUNMRV9P Q0lfQ0ZMQUdTQAorK09SQUNMRV9PQ0lfTERGTEFHUyA9IEBPUkFDTEVfT0NJX0xERkxBR1NACisr T1JBQ0xFX09DSV9WRVJTSU9OID0gQE9SQUNMRV9PQ0lfVkVSU0lPTkAKKytPVE9PTCA9IEBPVE9P TEAKKytPVE9PTDY0ID0gQE9UT09MNjRACisrUEFDS0FHRSA9IEBQQUNLQUdFQAorK1BBQ0tBR0Vf QlVHUkVQT1JUID0gQFBBQ0tBR0VfQlVHUkVQT1JUQAorK1BBQ0tBR0VfTkFNRSA9IEBQQUNLQUdF X05BTUVACisrUEFDS0FHRV9TVFJJTkcgPSBAUEFDS0FHRV9TVFJJTkdACisrUEFDS0FHRV9UQVJO QU1FID0gQFBBQ0tBR0VfVEFSTkFNRUAKKytQQUNLQUdFX1ZFUlNJT04gPSBAUEFDS0FHRV9WRVJT SU9OQAorK1BBVEhfU0VQQVJBVE9SID0gQFBBVEhfU0VQQVJBVE9SQAorK1BFUkwgPSBAUEVSTEAK KytQR19DT05GSUcgPSBAUEdfQ09ORklHQAorK1BPU1RHUkVTUUxfQ0ZMQUdTID0gQFBPU1RHUkVT UUxfQ0ZMQUdTQAorK1BPU1RHUkVTUUxfRElSUyA9IEBQT1NUR1JFU1FMX0RJUlNACisrUE9TVEdS RVNRTF9MREZMQUdTID0gQFBPU1RHUkVTUUxfTERGTEFHU0AKKytQT1NUR1JFU1FMX1ZFUlNJT04g PSBAUE9TVEdSRVNRTF9WRVJTSU9OQAorK1JBTkxJQiA9IEBSQU5MSUJACisrUlBNX1JFTEVBU0Ug PSBAUlBNX1JFTEVBU0VACisrU0VEID0gQFNFREAKKytTRVRfTUFLRSA9IEBTRVRfTUFLRUAKKytT SEVMTCA9IEBTSEVMTEAKKytTT0NJX0hFQURFUlNfQlVSSUVEID0gQFNPQ0lfSEVBREVSU19CVVJJ RURACisrU09DSV9NWVNRTF9IRUFERVJTX0JVUklFRCA9IEBTT0NJX01ZU1FMX0hFQURFUlNfQlVS SUVEQAorK1NPQ0lfUE9TVEdSRVNRTF9IRUFERVJTX0JVUklFRCA9IEBTT0NJX1BPU1RHUkVTUUxf SEVBREVSU19CVVJJRURACisrU1RSSVAgPSBAU1RSSVBACisrVVBMT0FEX0NPTU1BTkQgPSBAVVBM T0FEX0NPTU1BTkRACisrVkVSU0lPTiA9IEBWRVJTSU9OQAorK2Fic19idWlsZGRpciA9IEBhYnNf YnVpbGRkaXJACisrYWJzX3NyY2RpciA9IEBhYnNfc3JjZGlyQAorK2Fic190b3BfYnVpbGRkaXIg PSBAYWJzX3RvcF9idWlsZGRpckAKKythYnNfdG9wX3NyY2RpciA9IEBhYnNfdG9wX3NyY2RpckAK KythY19jdF9DQyA9IEBhY19jdF9DQ0AKKythY19jdF9DWFggPSBAYWNfY3RfQ1hYQAorK2FjX2N0 X0RVTVBCSU4gPSBAYWNfY3RfRFVNUEJJTkAKKythbV9faW5jbHVkZSA9IEBhbV9faW5jbHVkZUAK KythbV9fbGVhZGluZ19kb3QgPSBAYW1fX2xlYWRpbmdfZG90QAorK2FtX19xdW90ZSA9IEBhbV9f cXVvdGVACisrYW1fX3RhciA9IEBhbV9fdGFyQAorK2FtX191bnRhciA9IEBhbV9fdW50YXJACisr YmluZGlyID0gQGJpbmRpckAKKytidWlsZCA9IEBidWlsZEAKKytidWlsZF9hbGlhcyA9IEBidWls ZF9hbGlhc0AKKytidWlsZF9jcHUgPSBAYnVpbGRfY3B1QAorK2J1aWxkX29zID0gQGJ1aWxkX29z QAorK2J1aWxkX3ZlbmRvciA9IEBidWlsZF92ZW5kb3JACisrYnVpbGRkaXIgPSBAYnVpbGRkaXJA CisrZGF0YWRpciA9IEBkYXRhZGlyQAorK2RhdGFyb290ZGlyID0gQGRhdGFyb290ZGlyQAorK2Rp ZmZfb2sgPSBAZGlmZl9va0AKKytkb2NkaXIgPSBAZG9jZGlyQAorK2RveHlnZW5fb2sgPSBAZG94 eWdlbl9va0AKKytkdmlkaXIgPSBAZHZpZGlyQAorK2R2aXBzX29rID0gQGR2aXBzX29rQAorK2V4 ZWNfcHJlZml4ID0gQGV4ZWNfcHJlZml4QAorK2dzX29rID0gQGdzX29rQAorK2hvc3QgPSBAaG9z dEAKKytob3N0X2FsaWFzID0gQGhvc3RfYWxpYXNACisraG9zdF9jcHUgPSBAaG9zdF9jcHVACisr aG9zdF9vcyA9IEBob3N0X29zQAorK2hvc3RfdmVuZG9yID0gQGhvc3RfdmVuZG9yQAorK2h0bWxk aXIgPSBAaHRtbGRpckAKKytpbmNsdWRlZGlyID0gQGluY2x1ZGVkaXJACisraW5mb2RpciA9IEBp bmZvZGlyQAorK2luc3RhbGxfc2ggPSBAaW5zdGFsbF9zaEAKKytsYXRleF9vayA9IEBsYXRleF9v a0AKKytsaWJkaXIgPSBAbGliZGlyQAorK2xpYmV4ZWNkaXIgPSBAbGliZXhlY2RpckAKKytsb2Nh bGVkaXIgPSBAbG9jYWxlZGlyQAorK2xvY2Fsc3RhdGVkaXIgPSBAbG9jYWxzdGF0ZWRpckAKKyts dF9FQ0hPID0gQGx0X0VDSE9ACisrbWFuZGlyID0gQG1hbmRpckAKKytta2Rpcl9wID0gQG1rZGly X3BACisrb2xkaW5jbHVkZWRpciA9IEBvbGRpbmNsdWRlZGlyQAorK3BkZmRpciA9IEBwZGZkaXJA CisrcHJlZml4ID0gQHByZWZpeEAKKytwcm9ncmFtX3RyYW5zZm9ybV9uYW1lID0gQHByb2dyYW1f dHJhbnNmb3JtX25hbWVACisrcHNkaXIgPSBAcHNkaXJACisrc2JpbmRpciA9IEBzYmluZGlyQAor K3NlZF9vayA9IEBzZWRfb2tACisrc2hhcmVkc3RhdGVkaXIgPSBAc2hhcmVkc3RhdGVkaXJACisr c3JjZGlyID0gQHNyY2RpckAKKytzeXNjb25mZGlyID0gQHN5c2NvbmZkaXJACisrdGFyZ2V0X2Fs aWFzID0gQHRhcmdldF9hbGlhc0AKKyt0b3BfYnVpbGRfcHJlZml4ID0gQHRvcF9idWlsZF9wcmVm aXhACisrdG9wX2J1aWxkZGlyID0gQHRvcF9idWlsZGRpckAKKyt0b3Bfc3JjZGlyID0gQHRvcF9z cmNkaXJACisrQU1fQ1BQRkxBR1MgPSAtSSQodG9wX2J1aWxkZGlyKSAtSSQodG9wX3NyY2RpcikK Kytjb3JlX3Rlc3RfaF9zb3VyY2VzID0gJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvdGVzdC9jb21t b24tdGVzdHMuaAorK2NvcmVfdGVzdF9jY19zb3VyY2VzID0gCisrTUFJTlRBSU5FUkNMRUFORklM RVMgPSBNYWtlZmlsZS5pbgorK0VYVFJBX0RJU1RfRk9SX1NPQ0lfQ09NUEFUSUJJTElUWSA9IAor K0VYVFJBX0RJU1QgPSAkKEVYVFJBX0RJU1RfRk9SX1NPQ0lfQ09NUEFUSUJJTElUWSkKKytub2lu c3RfTFRMSUJSQVJJRVMgPSBsaWJzb2NpX2NvcmVfdGVzdC5sYQorK2xpYnNvY2lfY29yZV90ZXN0 X2xhX1NPVVJDRVMgPSAkKGNvcmVfdGVzdF9oX3NvdXJjZXMpCisrbGlic29jaV9jb3JlX3Rlc3Rf bGFfQ1hYRkxBR1MgPSAKKytsaWJzb2NpX2NvcmVfdGVzdF9sYV9MSUJBREQgPSAKKysjbGlic29j aV9jb3JlX3Rlc3RfbGFfTERGTEFHUyA9IC12ZXJzaW9uLWluZm8gJChHRU5FUklDX0xJQlJBUllf VkVSU0lPTikKKytsaWJzb2NpX2NvcmVfdGVzdF9sYV9MREZMQUdTID0gCisrcGtnaW5jbHVkZV9I RUFERVJTID0gJChjb3JlX3Rlc3RfaF9zb3VyY2VzKQorK0BTT0NJX0hFQURFUlNfQlVSSUVEX0ZB TFNFQHNvY2lfaW5jbHVkZV9kaXIgPSAkKGluY2x1ZGVkaXIpCisrQFNPQ0lfSEVBREVSU19CVVJJ RURfVFJVRUBzb2NpX2luY2x1ZGVfZGlyID0gJChpbmNsdWRlZGlyKS9zb2NpL2NvcmUvdGVzdAor K2FsbDogYWxsLWFtCisrCisrLlNVRkZJWEVTOgorKyQoc3JjZGlyKS9NYWtlZmlsZS5pbjogICQo c3JjZGlyKS9NYWtlZmlsZS5hbSAkKHRvcF9zcmNkaXIpL01ha2VmaWxlLmNvbW1vbiAkKHNyY2Rp cikvc291cmNlcy5tayAkKGFtX19jb25maWd1cmVfZGVwcykKKysJQGZvciBkZXAgaW4gJD87IGRv IFwKKysJICBjYXNlICckKGFtX19jb25maWd1cmVfZGVwcyknIGluIFwKKysJICAgICokJGRlcCop IFwKKysJICAgICAgKCBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFH UykgYW0tLXJlZnJlc2ggKSBcCisrCSAgICAgICAgJiYgeyBpZiB0ZXN0IC1mICRAOyB0aGVuIGV4 aXQgMDsgZWxzZSBicmVhazsgZmk7IH07IFwKKysJICAgICAgZXhpdCAxOzsgXAorKwkgIGVzYWM7 IFwKKysJZG9uZTsgXAorKwllY2hvICcgY2QgJCh0b3Bfc3JjZGlyKSAmJiAkKEFVVE9NQUtFKSAt LWdudSBzb2NpL2NvcmUvdGVzdC9NYWtlZmlsZSc7IFwKKysJJChhbV9fY2QpICQodG9wX3NyY2Rp cikgJiYgXAorKwkgICQoQVVUT01BS0UpIC0tZ251IHNvY2kvY29yZS90ZXN0L01ha2VmaWxlCisr LlBSRUNJT1VTOiBNYWtlZmlsZQorK01ha2VmaWxlOiAkKHNyY2RpcikvTWFrZWZpbGUuaW4gJCh0 b3BfYnVpbGRkaXIpL2NvbmZpZy5zdGF0dXMKKysJQGNhc2UgJyQ/JyBpbiBcCisrCSAgKmNvbmZp Zy5zdGF0dXMqKSBcCisrCSAgICBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01B S0VGTEFHUykgYW0tLXJlZnJlc2g7OyBcCisrCSAgKikgXAorKwkgICAgZWNobyAnIGNkICQodG9w X2J1aWxkZGlyKSAmJiAkKFNIRUxMKSAuL2NvbmZpZy5zdGF0dXMgJChzdWJkaXIpLyRAICQoYW1f X2RlcGZpbGVzX21heWJlKSc7IFwKKysJICAgIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKFNIRUxM KSAuL2NvbmZpZy5zdGF0dXMgJChzdWJkaXIpLyRAICQoYW1fX2RlcGZpbGVzX21heWJlKTs7IFwK KysJZXNhYzsKKysKKyskKHRvcF9idWlsZGRpcikvY29uZmlnLnN0YXR1czogJCh0b3Bfc3JjZGly KS9jb25maWd1cmUgJChDT05GSUdfU1RBVFVTX0RFUEVOREVOQ0lFUykKKysJY2QgJCh0b3BfYnVp bGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCisrCisrJCh0b3Bf c3JjZGlyKS9jb25maWd1cmU6ICAkKGFtX19jb25maWd1cmVfZGVwcykKKysJY2QgJCh0b3BfYnVp bGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCisrJChBQ0xPQ0FM X000KTogICQoYW1fX2FjbG9jYWxfbTRfZGVwcykKKysJY2QgJCh0b3BfYnVpbGRkaXIpICYmICQo TUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCisrJChhbV9fYWNsb2NhbF9tNF9kZXBz KToKKysKKytjbGVhbi1ub2luc3RMVExJQlJBUklFUzoKKysJLXRlc3QgLXogIiQobm9pbnN0X0xU TElCUkFSSUVTKSIgfHwgcm0gLWYgJChub2luc3RfTFRMSUJSQVJJRVMpCisrCUBsaXN0PSckKG5v aW5zdF9MVExJQlJBUklFUyknOyBmb3IgcCBpbiAkJGxpc3Q7IGRvIFwKKysJICBkaXI9ImBlY2hv ICQkcCB8IHNlZCAtZSAnc3wvW14vXSokJHx8J2AiOyBcCisrCSAgdGVzdCAiJCRkaXIiICE9ICIk JHAiIHx8IGRpcj0uOyBcCisrCSAgZWNobyAicm0gLWYgXCIkJHtkaXJ9L3NvX2xvY2F0aW9uc1wi IjsgXAorKwkgIHJtIC1mICIkJHtkaXJ9L3NvX2xvY2F0aW9ucyI7IFwKKysJZG9uZQorK2xpYnNv Y2lfY29yZV90ZXN0LmxhOiAkKGxpYnNvY2lfY29yZV90ZXN0X2xhX09CSkVDVFMpICQobGlic29j aV9jb3JlX3Rlc3RfbGFfREVQRU5ERU5DSUVTKSAKKysJJChsaWJzb2NpX2NvcmVfdGVzdF9sYV9M SU5LKSAgJChsaWJzb2NpX2NvcmVfdGVzdF9sYV9PQkpFQ1RTKSAkKGxpYnNvY2lfY29yZV90ZXN0 X2xhX0xJQkFERCkgJChMSUJTKQorKworK21vc3RseWNsZWFuLWNvbXBpbGU6CisrCS1ybSAtZiAq LiQoT0JKRVhUKQorKworK2Rpc3RjbGVhbi1jb21waWxlOgorKwktcm0gLWYgKi50YWIuYworKwor K21vc3RseWNsZWFuLWxpYnRvb2w6CisrCS1ybSAtZiAqLmxvCisrCisrY2xlYW4tbGlidG9vbDoK KysJLXJtIC1yZiAubGlicyBfbGlicworK2luc3RhbGwtcGtnaW5jbHVkZUhFQURFUlM6ICQocGtn aW5jbHVkZV9IRUFERVJTKQorKwlAJChOT1JNQUxfSU5TVEFMTCkKKysJdGVzdCAteiAiJChwa2dp bmNsdWRlZGlyKSIgfHwgJChNS0RJUl9QKSAiJChERVNURElSKSQocGtnaW5jbHVkZWRpcikiCisr CUBsaXN0PSckKHBrZ2luY2x1ZGVfSEVBREVSUyknOyB0ZXN0IC1uICIkKHBrZ2luY2x1ZGVkaXIp IiB8fCBsaXN0PTsgXAorKwlmb3IgcCBpbiAkJGxpc3Q7IGRvIFwKKysJICBpZiB0ZXN0IC1mICIk JHAiOyB0aGVuIGQ9OyBlbHNlIGQ9IiQoc3JjZGlyKS8iOyBmaTsgXAorKwkgIGVjaG8gIiQkZCQk cCI7IFwKKysJZG9uZSB8ICQoYW1fX2Jhc2VfbGlzdCkgfCBcCisrCXdoaWxlIHJlYWQgZmlsZXM7 IGRvIFwKKysJICBlY2hvICIgJChJTlNUQUxMX0hFQURFUikgJCRmaWxlcyAnJChERVNURElSKSQo cGtnaW5jbHVkZWRpciknIjsgXAorKwkgICQoSU5TVEFMTF9IRUFERVIpICQkZmlsZXMgIiQoREVT VERJUikkKHBrZ2luY2x1ZGVkaXIpIiB8fCBleGl0ICQkPzsgXAorKwlkb25lCisrCisrdW5pbnN0 YWxsLXBrZ2luY2x1ZGVIRUFERVJTOgorKwlAJChOT1JNQUxfVU5JTlNUQUxMKQorKwlAbGlzdD0n JChwa2dpbmNsdWRlX0hFQURFUlMpJzsgdGVzdCAtbiAiJChwa2dpbmNsdWRlZGlyKSIgfHwgbGlz dD07IFwKKysJZmlsZXM9YGZvciBwIGluICQkbGlzdDsgZG8gZWNobyAkJHA7IGRvbmUgfCBzZWQg LWUgJ3N8Xi4qL3x8J2A7IFwKKysJdGVzdCAtbiAiJCRmaWxlcyIgfHwgZXhpdCAwOyBcCisrCWVj aG8gIiAoIGNkICckKERFU1RESVIpJChwa2dpbmNsdWRlZGlyKScgJiYgcm0gLWYiICQkZmlsZXMg IikiOyBcCisrCWNkICIkKERFU1RESVIpJChwa2dpbmNsdWRlZGlyKSIgJiYgcm0gLWYgJCRmaWxl cworKworK0lEOiAkKEhFQURFUlMpICQoU09VUkNFUykgJChMSVNQKSAkKFRBR1NfRklMRVMpCisr CWxpc3Q9JyQoU09VUkNFUykgJChIRUFERVJTKSAkKExJU1ApICQoVEFHU19GSUxFUyknOyBcCisr CXVuaXF1ZT1gZm9yIGkgaW4gJCRsaXN0OyBkbyBcCisrCSAgICBpZiB0ZXN0IC1mICIkJGkiOyB0 aGVuIGVjaG8gJCRpOyBlbHNlIGVjaG8gJChzcmNkaXIpLyQkaTsgZmk7IFwKKysJICBkb25lIHwg XAorKwkgICQoQVdLKSAneyBmaWxlc1skJDBdID0gMTsgbm9uZW1wdHkgPSAxOyB9IFwKKysJICAg ICAgRU5EIHsgaWYgKG5vbmVtcHR5KSB7IGZvciAoaSBpbiBmaWxlcykgcHJpbnQgaTsgfTsgfSdg OyBcCisrCW1raWQgLWZJRCAkJHVuaXF1ZQorK3RhZ3M6IFRBR1MKKysKKytUQUdTOiAgJChIRUFE RVJTKSAkKFNPVVJDRVMpICAkKFRBR1NfREVQRU5ERU5DSUVTKSBcCisrCQkkKFRBR1NfRklMRVMp ICQoTElTUCkKKysJc2V0IHg7IFwKKysJaGVyZT1gcHdkYDsgXAorKwlsaXN0PSckKFNPVVJDRVMp ICQoSEVBREVSUykgICQoTElTUCkgJChUQUdTX0ZJTEVTKSc7IFwKKysJdW5pcXVlPWBmb3IgaSBp biAkJGxpc3Q7IGRvIFwKKysJICAgIGlmIHRlc3QgLWYgIiQkaSI7IHRoZW4gZWNobyAkJGk7IGVs c2UgZWNobyAkKHNyY2RpcikvJCRpOyBmaTsgXAorKwkgIGRvbmUgfCBcCisrCSAgJChBV0spICd7 IGZpbGVzWyQkMF0gPSAxOyBub25lbXB0eSA9IDE7IH0gXAorKwkgICAgICBFTkQgeyBpZiAobm9u ZW1wdHkpIHsgZm9yIChpIGluIGZpbGVzKSBwcmludCBpOyB9OyB9J2A7IFwKKysJc2hpZnQ7IFwK KysJaWYgdGVzdCAteiAiJChFVEFHU19BUkdTKSQkKiQkdW5pcXVlIjsgdGhlbiA6OyBlbHNlIFwK KysJICB0ZXN0IC1uICIkJHVuaXF1ZSIgfHwgdW5pcXVlPSQkZW1wdHlfZml4OyBcCisrCSAgaWYg dGVzdCAkJCMgLWd0IDA7IHRoZW4gXAorKwkgICAgJChFVEFHUykgJChFVEFHU0ZMQUdTKSAkKEFN X0VUQUdTRkxBR1MpICQoRVRBR1NfQVJHUykgXAorKwkgICAgICAiJCRAIiAkJHVuaXF1ZTsgXAor KwkgIGVsc2UgXAorKwkgICAgJChFVEFHUykgJChFVEFHU0ZMQUdTKSAkKEFNX0VUQUdTRkxBR1Mp ICQoRVRBR1NfQVJHUykgXAorKwkgICAgICAkJHVuaXF1ZTsgXAorKwkgIGZpOyBcCisrCWZpCisr Y3RhZ3M6IENUQUdTCisrQ1RBR1M6ICAkKEhFQURFUlMpICQoU09VUkNFUykgICQoVEFHU19ERVBF TkRFTkNJRVMpIFwKKysJCSQoVEFHU19GSUxFUykgJChMSVNQKQorKwlsaXN0PSckKFNPVVJDRVMp ICQoSEVBREVSUykgICQoTElTUCkgJChUQUdTX0ZJTEVTKSc7IFwKKysJdW5pcXVlPWBmb3IgaSBp biAkJGxpc3Q7IGRvIFwKKysJICAgIGlmIHRlc3QgLWYgIiQkaSI7IHRoZW4gZWNobyAkJGk7IGVs c2UgZWNobyAkKHNyY2RpcikvJCRpOyBmaTsgXAorKwkgIGRvbmUgfCBcCisrCSAgJChBV0spICd7 IGZpbGVzWyQkMF0gPSAxOyBub25lbXB0eSA9IDE7IH0gXAorKwkgICAgICBFTkQgeyBpZiAobm9u ZW1wdHkpIHsgZm9yIChpIGluIGZpbGVzKSBwcmludCBpOyB9OyB9J2A7IFwKKysJdGVzdCAteiAi JChDVEFHU19BUkdTKSQkdW5pcXVlIiBcCisrCSAgfHwgJChDVEFHUykgJChDVEFHU0ZMQUdTKSAk KEFNX0NUQUdTRkxBR1MpICQoQ1RBR1NfQVJHUykgXAorKwkgICAgICQkdW5pcXVlCisrCisrR1RB R1M6CisrCWhlcmU9YCQoYW1fX2NkKSAkKHRvcF9idWlsZGRpcikgJiYgcHdkYCBcCisrCSAgJiYg JChhbV9fY2QpICQodG9wX3NyY2RpcikgXAorKwkgICYmIGd0YWdzIC1pICQoR1RBR1NfQVJHUykg IiQkaGVyZSIKKysKKytkaXN0Y2xlYW4tdGFnczoKKysJLXJtIC1mIFRBR1MgSUQgR1RBR1MgR1JU QUdTIEdTWU1TIEdQQVRIIHRhZ3MKKysKKytkaXN0ZGlyOiAkKERJU1RGSUxFUykKKysJQHNyY2Rp cnN0cmlwPWBlY2hvICIkKHNyY2RpcikiIHwgc2VkICdzL1tdLlteJCRcXCpdL1xcXFwmL2cnYDsg XAorKwl0b3BzcmNkaXJzdHJpcD1gZWNobyAiJCh0b3Bfc3JjZGlyKSIgfCBzZWQgJ3MvW10uW14k JFxcKl0vXFxcXCYvZydgOyBcCisrCWxpc3Q9JyQoRElTVEZJTEVTKSc7IFwKKysJICBkaXN0X2Zp bGVzPWBmb3IgZmlsZSBpbiAkJGxpc3Q7IGRvIGVjaG8gJCRmaWxlOyBkb25lIHwgXAorKwkgIHNl ZCAtZSAic3xeJCRzcmNkaXJzdHJpcC98fDt0IiBcCisrCSAgICAgIC1lICJzfF4kJHRvcHNyY2Rp cnN0cmlwL3wkKHRvcF9idWlsZGRpcikvfDt0ImA7IFwKKysJY2FzZSAkJGRpc3RfZmlsZXMgaW4g XAorKwkgICovKikgJChNS0RJUl9QKSBgZWNobyAiJCRkaXN0X2ZpbGVzIiB8IFwKKysJCQkgICBz ZWQgJy9cLy8hZDtzfF58JChkaXN0ZGlyKS98O3MsL1teL10qJCQsLCcgfCBcCisrCQkJICAgc29y dCAtdWAgOzsgXAorKwllc2FjOyBcCisrCWZvciBmaWxlIGluICQkZGlzdF9maWxlczsgZG8gXAor KwkgIGlmIHRlc3QgLWYgJCRmaWxlIHx8IHRlc3QgLWQgJCRmaWxlOyB0aGVuIGQ9LjsgZWxzZSBk PSQoc3JjZGlyKTsgZmk7IFwKKysJICBpZiB0ZXN0IC1kICQkZC8kJGZpbGU7IHRoZW4gXAorKwkg ICAgZGlyPWBlY2hvICIvJCRmaWxlIiB8IHNlZCAtZSAncywvW14vXSokJCwsJ2A7IFwKKysJICAg IGlmIHRlc3QgLWQgIiQoZGlzdGRpcikvJCRmaWxlIjsgdGhlbiBcCisrCSAgICAgIGZpbmQgIiQo ZGlzdGRpcikvJCRmaWxlIiAtdHlwZSBkICEgLXBlcm0gLTcwMCAtZXhlYyBjaG1vZCB1K3J3eCB7 fSBcOzsgXAorKwkgICAgZmk7IFwKKysJICAgIGlmIHRlc3QgLWQgJChzcmNkaXIpLyQkZmlsZSAm JiB0ZXN0ICQkZCAhPSAkKHNyY2Rpcik7IHRoZW4gXAorKwkgICAgICBjcCAtZnBSICQoc3JjZGly KS8kJGZpbGUgIiQoZGlzdGRpcikkJGRpciIgfHwgZXhpdCAxOyBcCisrCSAgICAgIGZpbmQgIiQo ZGlzdGRpcikvJCRmaWxlIiAtdHlwZSBkICEgLXBlcm0gLTcwMCAtZXhlYyBjaG1vZCB1K3J3eCB7 fSBcOzsgXAorKwkgICAgZmk7IFwKKysJICAgIGNwIC1mcFIgJCRkLyQkZmlsZSAiJChkaXN0ZGly KSQkZGlyIiB8fCBleGl0IDE7IFwKKysJICBlbHNlIFwKKysJICAgIHRlc3QgLWYgIiQoZGlzdGRp cikvJCRmaWxlIiBcCisrCSAgICB8fCBjcCAtcCAkJGQvJCRmaWxlICIkKGRpc3RkaXIpLyQkZmls ZSIgXAorKwkgICAgfHwgZXhpdCAxOyBcCisrCSAgZmk7IFwKKysJZG9uZQorK2NoZWNrLWFtOiBh bGwtYW0KKytjaGVjazogY2hlY2stYW0KKythbGwtYW06IE1ha2VmaWxlICQoTFRMSUJSQVJJRVMp ICQoSEVBREVSUykKKytpbnN0YWxsZGlyczoKKysJZm9yIGRpciBpbiAiJChERVNURElSKSQocGtn aW5jbHVkZWRpcikiOyBkbyBcCisrCSAgdGVzdCAteiAiJCRkaXIiIHx8ICQoTUtESVJfUCkgIiQk ZGlyIjsgXAorKwlkb25lCisraW5zdGFsbDogaW5zdGFsbC1hbQorK2luc3RhbGwtZXhlYzogaW5z dGFsbC1leGVjLWFtCisraW5zdGFsbC1kYXRhOiBpbnN0YWxsLWRhdGEtYW0KKyt1bmluc3RhbGw6 IHVuaW5zdGFsbC1hbQorKworK2luc3RhbGwtYW06IGFsbC1hbQorKwlAJChNQUtFKSAkKEFNX01B S0VGTEFHUykgaW5zdGFsbC1leGVjLWFtIGluc3RhbGwtZGF0YS1hbQorKworK2luc3RhbGxjaGVj azogaW5zdGFsbGNoZWNrLWFtCisraW5zdGFsbC1zdHJpcDoKKysJJChNQUtFKSAkKEFNX01BS0VG TEFHUykgSU5TVEFMTF9QUk9HUkFNPSIkKElOU1RBTExfU1RSSVBfUFJPR1JBTSkiIFwKKysJICBp bnN0YWxsX3NoX1BST0dSQU09IiQoSU5TVEFMTF9TVFJJUF9QUk9HUkFNKSIgSU5TVEFMTF9TVFJJ UF9GTEFHPS1zIFwKKysJICBgdGVzdCAteiAnJChTVFJJUCknIHx8IFwKKysJICAgIGVjaG8gIklO U1RBTExfUFJPR1JBTV9FTlY9U1RSSVBQUk9HPSckKFNUUklQKSciYCBpbnN0YWxsCisrbW9zdGx5 Y2xlYW4tZ2VuZXJpYzoKKysKKytjbGVhbi1nZW5lcmljOgorKworK2Rpc3RjbGVhbi1nZW5lcmlj OgorKwktdGVzdCAteiAiJChDT05GSUdfQ0xFQU5fRklMRVMpIiB8fCBybSAtZiAkKENPTkZJR19D TEVBTl9GSUxFUykKKysJLXRlc3QgLiA9ICIkKHNyY2RpcikiIHx8IHRlc3QgLXogIiQoQ09ORklH X0NMRUFOX1ZQQVRIX0ZJTEVTKSIgfHwgcm0gLWYgJChDT05GSUdfQ0xFQU5fVlBBVEhfRklMRVMp CisrCisrbWFpbnRhaW5lci1jbGVhbi1nZW5lcmljOgorKwlAZWNobyAiVGhpcyBjb21tYW5kIGlz IGludGVuZGVkIGZvciBtYWludGFpbmVycyB0byB1c2UiCisrCUBlY2hvICJpdCBkZWxldGVzIGZp bGVzIHRoYXQgbWF5IHJlcXVpcmUgc3BlY2lhbCB0b29scyB0byByZWJ1aWxkLiIKKysJLXRlc3Qg LXogIiQoTUFJTlRBSU5FUkNMRUFORklMRVMpIiB8fCBybSAtZiAkKE1BSU5UQUlORVJDTEVBTkZJ TEVTKQorK2NsZWFuOiBjbGVhbi1hbQorKworK2NsZWFuLWFtOiBjbGVhbi1nZW5lcmljIGNsZWFu LWxpYnRvb2wgY2xlYW4tbm9pbnN0TFRMSUJSQVJJRVMgXAorKwltb3N0bHljbGVhbi1hbQorKwor K2Rpc3RjbGVhbjogZGlzdGNsZWFuLWFtCisrCS1ybSAtZiBNYWtlZmlsZQorK2Rpc3RjbGVhbi1h bTogY2xlYW4tYW0gZGlzdGNsZWFuLWNvbXBpbGUgZGlzdGNsZWFuLWdlbmVyaWMgXAorKwlkaXN0 Y2xlYW4tdGFncworKworK2R2aTogZHZpLWFtCisrCisrZHZpLWFtOgorKworK2h0bWw6IGh0bWwt YW0KKysKKytodG1sLWFtOgorKworK2luZm86IGluZm8tYW0KKysKKytpbmZvLWFtOgorKworK2lu c3RhbGwtZGF0YS1hbTogaW5zdGFsbC1wa2dpbmNsdWRlSEVBREVSUworKworK2luc3RhbGwtZHZp OiBpbnN0YWxsLWR2aS1hbQorKworK2luc3RhbGwtZHZpLWFtOgorKworK2luc3RhbGwtZXhlYy1h bToKKysKKytpbnN0YWxsLWh0bWw6IGluc3RhbGwtaHRtbC1hbQorKworK2luc3RhbGwtaHRtbC1h bToKKysKKytpbnN0YWxsLWluZm86IGluc3RhbGwtaW5mby1hbQorKworK2luc3RhbGwtaW5mby1h bToKKysKKytpbnN0YWxsLW1hbjoKKysKKytpbnN0YWxsLXBkZjogaW5zdGFsbC1wZGYtYW0KKysK KytpbnN0YWxsLXBkZi1hbToKKysKKytpbnN0YWxsLXBzOiBpbnN0YWxsLXBzLWFtCisrCisraW5z dGFsbC1wcy1hbToKKysKKytpbnN0YWxsY2hlY2stYW06CisrCisrbWFpbnRhaW5lci1jbGVhbjog bWFpbnRhaW5lci1jbGVhbi1hbQorKwktcm0gLWYgTWFrZWZpbGUKKyttYWludGFpbmVyLWNsZWFu LWFtOiBkaXN0Y2xlYW4tYW0gbWFpbnRhaW5lci1jbGVhbi1nZW5lcmljCisrCisrbW9zdGx5Y2xl YW46IG1vc3RseWNsZWFuLWFtCisrCisrbW9zdGx5Y2xlYW4tYW06IG1vc3RseWNsZWFuLWNvbXBp bGUgbW9zdGx5Y2xlYW4tZ2VuZXJpYyBcCisrCW1vc3RseWNsZWFuLWxpYnRvb2wKKysKKytwZGY6 IHBkZi1hbQorKworK3BkZi1hbToKKysKKytwczogcHMtYW0KKysKKytwcy1hbToKKysKKyt1bmlu c3RhbGwtYW06IHVuaW5zdGFsbC1wa2dpbmNsdWRlSEVBREVSUworKworKy5NQUtFOiBpbnN0YWxs LWFtIGluc3RhbGwtc3RyaXAKKysKKysuUEhPTlk6IENUQUdTIEdUQUdTIGFsbCBhbGwtYW0gY2hl Y2sgY2hlY2stYW0gY2xlYW4gY2xlYW4tZ2VuZXJpYyBcCisrCWNsZWFuLWxpYnRvb2wgY2xlYW4t bm9pbnN0TFRMSUJSQVJJRVMgY3RhZ3MgZGlzdGNsZWFuIFwKKysJZGlzdGNsZWFuLWNvbXBpbGUg ZGlzdGNsZWFuLWdlbmVyaWMgZGlzdGNsZWFuLWxpYnRvb2wgXAorKwlkaXN0Y2xlYW4tdGFncyBk aXN0ZGlyIGR2aSBkdmktYW0gaHRtbCBodG1sLWFtIGluZm8gaW5mby1hbSBcCisrCWluc3RhbGwg aW5zdGFsbC1hbSBpbnN0YWxsLWRhdGEgaW5zdGFsbC1kYXRhLWFtIGluc3RhbGwtZHZpIFwKKysJ aW5zdGFsbC1kdmktYW0gaW5zdGFsbC1leGVjIGluc3RhbGwtZXhlYy1hbSBpbnN0YWxsLWh0bWwg XAorKwlpbnN0YWxsLWh0bWwtYW0gaW5zdGFsbC1pbmZvIGluc3RhbGwtaW5mby1hbSBpbnN0YWxs LW1hbiBcCisrCWluc3RhbGwtcGRmIGluc3RhbGwtcGRmLWFtIGluc3RhbGwtcGtnaW5jbHVkZUhF QURFUlMgXAorKwlpbnN0YWxsLXBzIGluc3RhbGwtcHMtYW0gaW5zdGFsbC1zdHJpcCBpbnN0YWxs Y2hlY2sgXAorKwlpbnN0YWxsY2hlY2stYW0gaW5zdGFsbGRpcnMgbWFpbnRhaW5lci1jbGVhbiBc CisrCW1haW50YWluZXItY2xlYW4tZ2VuZXJpYyBtb3N0bHljbGVhbiBtb3N0bHljbGVhbi1jb21w aWxlIFwKKysJbW9zdGx5Y2xlYW4tZ2VuZXJpYyBtb3N0bHljbGVhbi1saWJ0b29sIHBkZiBwZGYt YW0gcHMgcHMtYW0gXAorKwl0YWdzIHVuaW5zdGFsbCB1bmluc3RhbGwtYW0gdW5pbnN0YWxsLXBr Z2luY2x1ZGVIRUFERVJTCisrCisrQFNFVF9NQUtFQAorKworKyMgVGVsbCB2ZXJzaW9ucyBbMy41 OSwzLjYzKSBvZiBHTlUgbWFrZSB0byBub3QgZXhwb3J0IGFsbCB2YXJpYWJsZXMuCisrIyBPdGhl cndpc2UgYSBzeXN0ZW0gbGltaXQgKGZvciBTeXNWIGF0IGxlYXN0KSBtYXkgYmUgZXhjZWVkZWQu CisrLk5PRVhQT1JUOgorZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvY29yZS90ZXN0 L3NvdXJjZXMubWsgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvY29yZS90ZXN0L3NvdXJjZXMubWsK Ky0tLSBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2NvcmUvdGVzdC9zb3VyY2VzLm1rCTE5NzAtMDEt MDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCisrKysgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kv Y29yZS90ZXN0L3NvdXJjZXMubWsJMjAwOS0wNC0xNiAxOTozNzowNS4wMDAwMDAwMDAgKzAyMDAK K0BAIC0wLDAgKzEsMiBAQAorK2NvcmVfdGVzdF9oX3NvdXJjZXMgPSAkKHRvcF9zcmNkaXIpL3Nv Y2kvY29yZS90ZXN0L2NvbW1vbi10ZXN0cy5oCisrY29yZV90ZXN0X2NjX3NvdXJjZXMgPQorZGlm ZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvTWFrZWZpbGUuYW0gc29jaS0zLjAuMF90cmVw MzAwL3NvY2kvTWFrZWZpbGUuYW0KKy0tLSBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL01ha2VmaWxl LmFtCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCisrKysgc29jaS0zLjAuMF90 cmVwMzAwL3NvY2kvTWFrZWZpbGUuYW0JMjAwOS0wNC0xNiAxOTozNzowNy4wMDAwMDAwMDAgKzAy MDAKK0BAIC0wLDAgKzEsOSBAQAorK2luY2x1ZGUgJCh0b3Bfc3JjZGlyKS9NYWtlZmlsZS5jb21t b24KKysKKysjIyBTb3VyY2UgZGlyZWN0b3J5CisrCisrTUFJTlRBSU5FUkNMRUFORklMRVMgPSBN YWtlZmlsZS5pbgorKworK1NVQkRJUlMgPSBjb3JlIGJhY2tlbmRzCisrCisrRVhUUkFfRElTVCA9 CitkaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svc29jaS9NYWtlZmlsZS5pbiBzb2NpLTMuMC4w X3RyZXAzMDAvc29jaS9NYWtlZmlsZS5pbgorLS0tIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvTWFr ZWZpbGUuaW4JMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKKysrKyBzb2NpLTMu MC4wX3RyZXAzMDAvc29jaS9NYWtlZmlsZS5pbgkyMDEwLTAxLTIzIDE0OjQ0OjUxLjAwMDAwMDAw MCArMDEwMAorQEAgLTAsMCArMSw2MzUgQEAKKysjIE1ha2VmaWxlLmluIGdlbmVyYXRlZCBieSBh dXRvbWFrZSAxLjExLjEgZnJvbSBNYWtlZmlsZS5hbS4KKysjIEBjb25maWd1cmVfaW5wdXRACisr CisrIyBDb3B5cmlnaHQgKEMpIDE5OTQsIDE5OTUsIDE5OTYsIDE5OTcsIDE5OTgsIDE5OTksIDIw MDAsIDIwMDEsIDIwMDIsCisrIyAyMDAzLCAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4LCAy MDA5ICBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sCisrIyBJbmMuCisrIyBUaGlzIE1ha2VmaWxl LmluIGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24KKysjIGdp dmVzIHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNvcHkgYW5kL29yIGRpc3RyaWJ1dGUgaXQsCisr IyB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9ucywgYXMgbG9uZyBhcyB0aGlzIG5vdGljZSBp cyBwcmVzZXJ2ZWQuCisrCisrIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhv cGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKysjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWSwg dG8gdGhlIGV4dGVudCBwZXJtaXR0ZWQgYnkgbGF3OyB3aXRob3V0CisrIyBldmVuIHRoZSBpbXBs aWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBCisrIyBQQVJU SUNVTEFSIFBVUlBPU0UuCisrCisrQFNFVF9NQUtFQAorK1ZQQVRIID0gQHNyY2RpckAKKytwa2dk YXRhZGlyID0gJChkYXRhZGlyKS9AUEFDS0FHRUAKKytwa2dpbmNsdWRlZGlyID0gJChpbmNsdWRl ZGlyKS9AUEFDS0FHRUAKKytwa2dsaWJkaXIgPSAkKGxpYmRpcikvQFBBQ0tBR0VACisrcGtnbGli ZXhlY2RpciA9ICQobGliZXhlY2RpcikvQFBBQ0tBR0VACisrYW1fX2NkID0gQ0RQQVRIPSIkJHta U0hfVkVSU0lPTisufSQoUEFUSF9TRVBBUkFUT1IpIiAmJiBjZAorK2luc3RhbGxfc2hfREFUQSA9 ICQoaW5zdGFsbF9zaCkgLWMgLW0gNjQ0CisraW5zdGFsbF9zaF9QUk9HUkFNID0gJChpbnN0YWxs X3NoKSAtYworK2luc3RhbGxfc2hfU0NSSVBUID0gJChpbnN0YWxsX3NoKSAtYworK0lOU1RBTExf SEVBREVSID0gJChJTlNUQUxMX0RBVEEpCisrdHJhbnNmb3JtID0gJChwcm9ncmFtX3RyYW5zZm9y bV9uYW1lKQorK05PUk1BTF9JTlNUQUxMID0gOgorK1BSRV9JTlNUQUxMID0gOgorK1BPU1RfSU5T VEFMTCA9IDoKKytOT1JNQUxfVU5JTlNUQUxMID0gOgorK1BSRV9VTklOU1RBTEwgPSA6CisrUE9T VF9VTklOU1RBTEwgPSA6CisrYnVpbGRfdHJpcGxldCA9IEBidWlsZEAKKytob3N0X3RyaXBsZXQg PSBAaG9zdEAKKytESVNUX0NPTU1PTiA9ICQoc3JjZGlyKS9NYWtlZmlsZS5hbSAkKHNyY2Rpcikv TWFrZWZpbGUuaW4gXAorKwkkKHNyY2RpcikvY29uZmlnLmguaW4gJCh0b3Bfc3JjZGlyKS9NYWtl ZmlsZS5jb21tb24KKytzdWJkaXIgPSBzb2NpCisrQUNMT0NBTF9NNCA9ICQodG9wX3NyY2Rpcikv YWNsb2NhbC5tNAorK2FtX19hY2xvY2FsX200X2RlcHMgPSAkKHRvcF9zcmNkaXIpL2NvbmZpZy9h eF9ib29zdC5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2F4X215c3FsLm00IFwKKysJJCh0 b3Bfc3JjZGlyKS9jb25maWcvYXhfb3JhY2xlX29jaS5tNCBcCisrCSQodG9wX3NyY2RpcikvY29u ZmlnL2F4X3Bvc3RncmVzcWwubTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9jcHB1bml0Lm00 IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcvbGlidG9vbC5tNCBcCisrCSQodG9wX3NyY2Rpcikv Y29uZmlnL2x0b3B0aW9ucy5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2x0c3VnYXIubTQg XAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9sdHZlcnNpb24ubTQgXAorKwkkKHRvcF9zcmNkaXIp L2NvbmZpZy9sdH5vYnNvbGV0ZS5tNCAkKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZS5hYworK2FtX19j b25maWd1cmVfZGVwcyA9ICQoYW1fX2FjbG9jYWxfbTRfZGVwcykgJChDT05GSUdVUkVfREVQRU5E RU5DSUVTKSBcCisrCSQoQUNMT0NBTF9NNCkKKytta2luc3RhbGxkaXJzID0gJChpbnN0YWxsX3No KSAtZAorK0NPTkZJR19IRUFERVIgPSBjb25maWcuaAorK0NPTkZJR19DTEVBTl9GSUxFUyA9Cisr Q09ORklHX0NMRUFOX1ZQQVRIX0ZJTEVTID0KKytTT1VSQ0VTID0KKytESVNUX1NPVVJDRVMgPQor K1JFQ1VSU0lWRV9UQVJHRVRTID0gYWxsLXJlY3Vyc2l2ZSBjaGVjay1yZWN1cnNpdmUgZHZpLXJl Y3Vyc2l2ZSBcCisrCWh0bWwtcmVjdXJzaXZlIGluZm8tcmVjdXJzaXZlIGluc3RhbGwtZGF0YS1y ZWN1cnNpdmUgXAorKwlpbnN0YWxsLWR2aS1yZWN1cnNpdmUgaW5zdGFsbC1leGVjLXJlY3Vyc2l2 ZSBcCisrCWluc3RhbGwtaHRtbC1yZWN1cnNpdmUgaW5zdGFsbC1pbmZvLXJlY3Vyc2l2ZSBcCisr CWluc3RhbGwtcGRmLXJlY3Vyc2l2ZSBpbnN0YWxsLXBzLXJlY3Vyc2l2ZSBpbnN0YWxsLXJlY3Vy c2l2ZSBcCisrCWluc3RhbGxjaGVjay1yZWN1cnNpdmUgaW5zdGFsbGRpcnMtcmVjdXJzaXZlIHBk Zi1yZWN1cnNpdmUgXAorKwlwcy1yZWN1cnNpdmUgdW5pbnN0YWxsLXJlY3Vyc2l2ZQorK1JFQ1VS U0lWRV9DTEVBTl9UQVJHRVRTID0gbW9zdGx5Y2xlYW4tcmVjdXJzaXZlIGNsZWFuLXJlY3Vyc2l2 ZQlcCisrICBkaXN0Y2xlYW4tcmVjdXJzaXZlIG1haW50YWluZXItY2xlYW4tcmVjdXJzaXZlCisr QU1fUkVDVVJTSVZFX1RBUkdFVFMgPSAkKFJFQ1VSU0lWRV9UQVJHRVRTOi1yZWN1cnNpdmU9KSBc CisrCSQoUkVDVVJTSVZFX0NMRUFOX1RBUkdFVFM6LXJlY3Vyc2l2ZT0pIHRhZ3MgVEFHUyBjdGFn cyBDVEFHUyBcCisrCWRpc3RkaXIKKytFVEFHUyA9IGV0YWdzCisrQ1RBR1MgPSBjdGFncworK0RJ U1RfU1VCRElSUyA9ICQoU1VCRElSUykKKytESVNURklMRVMgPSAkKERJU1RfQ09NTU9OKSAkKERJ U1RfU09VUkNFUykgJChURVhJTkZPUykgJChFWFRSQV9ESVNUKQorK2FtX19yZWxhdGl2aXplID0g XAorKyAgZGlyMD1gcHdkYDsgXAorKyAgc2VkX2ZpcnN0PSdzLF5cKFteL10qXCkvLiokJCxcMSwn OyBcCisrICBzZWRfcmVzdD0ncyxeW14vXSovKiwsJzsgXAorKyAgc2VkX2xhc3Q9J3MsXi4qL1wo W14vXSpcKSQkLFwxLCc7IFwKKysgIHNlZF9idXRsYXN0PSdzLC8qW14vXSokJCwsJzsgXAorKyAg d2hpbGUgdGVzdCAtbiAiJCRkaXIxIjsgZG8gXAorKyAgICBmaXJzdD1gZWNobyAiJCRkaXIxIiB8 IHNlZCAtZSAiJCRzZWRfZmlyc3QiYDsgXAorKyAgICBpZiB0ZXN0ICIkJGZpcnN0IiAhPSAiLiI7 IHRoZW4gXAorKyAgICAgIGlmIHRlc3QgIiQkZmlyc3QiID0gIi4uIjsgdGhlbiBcCisrICAgICAg ICBkaXIyPWBlY2hvICIkJGRpcjAiIHwgc2VkIC1lICIkJHNlZF9sYXN0ImAvIiQkZGlyMiI7IFwK KysgICAgICAgIGRpcjA9YGVjaG8gIiQkZGlyMCIgfCBzZWQgLWUgIiQkc2VkX2J1dGxhc3QiYDsg XAorKyAgICAgIGVsc2UgXAorKyAgICAgICAgZmlyc3QyPWBlY2hvICIkJGRpcjIiIHwgc2VkIC1l ICIkJHNlZF9maXJzdCJgOyBcCisrICAgICAgICBpZiB0ZXN0ICIkJGZpcnN0MiIgPSAiJCRmaXJz dCI7IHRoZW4gXAorKyAgICAgICAgICBkaXIyPWBlY2hvICIkJGRpcjIiIHwgc2VkIC1lICIkJHNl ZF9yZXN0ImA7IFwKKysgICAgICAgIGVsc2UgXAorKyAgICAgICAgICBkaXIyPSIuLi8kJGRpcjIi OyBcCisrICAgICAgICBmaTsgXAorKyAgICAgICAgZGlyMD0iJCRkaXIwIi8iJCRmaXJzdCI7IFwK KysgICAgICBmaTsgXAorKyAgICBmaTsgXAorKyAgICBkaXIxPWBlY2hvICIkJGRpcjEiIHwgc2Vk IC1lICIkJHNlZF9yZXN0ImA7IFwKKysgIGRvbmU7IFwKKysgIHJlbGRpcj0iJCRkaXIyIgorK0FD TE9DQUwgPSBAQUNMT0NBTEAKKytBTVRBUiA9IEBBTVRBUkAKKytBUiA9IEBBUkAKKytBVVRPQ09O RiA9IEBBVVRPQ09ORkAKKytBVVRPSEVBREVSID0gQEFVVE9IRUFERVJACisrQVVUT01BS0UgPSBA QVVUT01BS0VACisrQVdLID0gQEFXS0AKKytCT09TVF9DRkxBR1MgPSBAQk9PU1RfQ0ZMQUdTQAor K0JPT1NUX0RBVEVfVElNRV9MSUIgPSBAQk9PU1RfREFURV9USU1FX0xJQkAKKytCT09TVF9GSUxF U1lTVEVNX0xJQiA9IEBCT09TVF9GSUxFU1lTVEVNX0xJQkAKKytCT09TVF9JT1NUUkVBTVNfTElC ID0gQEJPT1NUX0lPU1RSRUFNU19MSUJACisrQk9PU1RfTElCUyA9IEBCT09TVF9MSUJTQAorK0JP T1NUX01QSV9MSUIgPSBAQk9PU1RfTVBJX0xJQkAKKytCT09TVF9NUElfUFlUSE9OX0xJQiA9IEBC T09TVF9NUElfUFlUSE9OX0xJQkAKKytCT09TVF9QUk9HUkFNX09QVElPTlNfTElCID0gQEJPT1NU X1BST0dSQU1fT1BUSU9OU19MSUJACisrQk9PU1RfUFlUSE9OX0xJQiA9IEBCT09TVF9QWVRIT05f TElCQAorK0JPT1NUX1JFR0VYX0xJQiA9IEBCT09TVF9SRUdFWF9MSUJACisrQk9PU1RfU0VSSUFM SVpBVElPTl9MSUIgPSBAQk9PU1RfU0VSSUFMSVpBVElPTl9MSUJACisrQk9PU1RfU0lHTkFMU19M SUIgPSBAQk9PU1RfU0lHTkFMU19MSUJACisrQk9PU1RfU1lTVEVNX0xJQiA9IEBCT09TVF9TWVNU RU1fTElCQAorK0JPT1NUX1RIUkVBRF9MSUIgPSBAQk9PU1RfVEhSRUFEX0xJQkAKKytCT09TVF9V TklUX1RFU1RfRlJBTUVXT1JLX0xJQiA9IEBCT09TVF9VTklUX1RFU1RfRlJBTUVXT1JLX0xJQkAK KytCT09TVF9WRVJTSU9OID0gQEJPT1NUX1ZFUlNJT05ACisrQk9PU1RfV1NFUklBTElaQVRJT05f TElCID0gQEJPT1NUX1dTRVJJQUxJWkFUSU9OX0xJQkAKKytDQyA9IEBDQ0AKKytDQ0RFUE1PREUg PSBAQ0NERVBNT0RFQAorK0NGTEFHUyA9IEBDRkxBR1NACisrQ1BQID0gQENQUEAKKytDUFBGTEFH UyA9IEBDUFBGTEFHU0AKKytDUFBVTklUX0NGTEFHUyA9IEBDUFBVTklUX0NGTEFHU0AKKytDUFBV TklUX0NPTkZJRyA9IEBDUFBVTklUX0NPTkZJR0AKKytDUFBVTklUX0xJQlMgPSBAQ1BQVU5JVF9M SUJTQAorK0NQUFVOSVRfVkVSU0lPTiA9IEBDUFBVTklUX1ZFUlNJT05ACisrQ1hYID0gQENYWEAK KytDWFhDUFAgPSBAQ1hYQ1BQQAorK0NYWERFUE1PREUgPSBAQ1hYREVQTU9ERUAKKytDWFhGTEFH UyA9IEBDWFhGTEFHU0AKKytDWUdQQVRIX1cgPSBAQ1lHUEFUSF9XQAorK0RFRlMgPSBAREVGU0AK KytERVBESVIgPSBAREVQRElSQAorK0RTWU1VVElMID0gQERTWU1VVElMQAorK0RVTVBCSU4gPSBA RFVNUEJJTkAKKytFQ0hPX0MgPSBARUNIT19DQAorK0VDSE9fTiA9IEBFQ0hPX05ACisrRUNIT19U ID0gQEVDSE9fVEAKKytFR1JFUCA9IEBFR1JFUEAKKytFWEVFWFQgPSBARVhFRVhUQAorK0ZHUkVQ ID0gQEZHUkVQQAorK0dFTkVSSUNfTElCUkFSWV9WRVJTSU9OID0gQEdFTkVSSUNfTElCUkFSWV9W RVJTSU9OQAorK0dSRVAgPSBAR1JFUEAKKytJTlNUQUxMID0gQElOU1RBTExACisrSU5TVEFMTF9E QVRBID0gQElOU1RBTExfREFUQUAKKytJTlNUQUxMX1BST0dSQU0gPSBASU5TVEFMTF9QUk9HUkFN QAorK0lOU1RBTExfU0NSSVBUID0gQElOU1RBTExfU0NSSVBUQAorK0lOU1RBTExfU1RSSVBfUFJP R1JBTSA9IEBJTlNUQUxMX1NUUklQX1BST0dSQU1ACisrTEQgPSBATERACisrTERGTEFHUyA9IEBM REZMQUdTQAorK0xJQk9CSlMgPSBATElCT0JKU0AKKytMSUJTID0gQExJQlNACisrTElCVE9PTCA9 IEBMSUJUT09MQAorK0xJUE8gPSBATElQT0AKKytMTl9TID0gQExOX1NACisrTFRMSUJPQkpTID0g QExUTElCT0JKU0AKKytNQUtFSU5GTyA9IEBNQUtFSU5GT0AKKytNS0RJUl9QID0gQE1LRElSX1BA CisrTVlTUUxfQ0ZMQUdTID0gQE1ZU1FMX0NGTEFHU0AKKytNWVNRTF9DX0xJQiA9IEBNWVNRTF9D X0xJQkAKKytNWVNRTF9ESVJTID0gQE1ZU1FMX0RJUlNACisrTVlTUUxfTElCUyA9IEBNWVNRTF9M SUJTQAorK01ZU1FMX1ZFUlNJT04gPSBATVlTUUxfVkVSU0lPTkAKKytOTSA9IEBOTUAKKytOTUVE SVQgPSBATk1FRElUQAorK09CSkRVTVAgPSBAT0JKRFVNUEAKKytPQkpFWFQgPSBAT0JKRVhUQAor K09SQUNMRV9ESVJTID0gQE9SQUNMRV9ESVJTQAorK09SQUNMRV9PQ0lfQ0ZMQUdTID0gQE9SQUNM RV9PQ0lfQ0ZMQUdTQAorK09SQUNMRV9PQ0lfTERGTEFHUyA9IEBPUkFDTEVfT0NJX0xERkxBR1NA CisrT1JBQ0xFX09DSV9WRVJTSU9OID0gQE9SQUNMRV9PQ0lfVkVSU0lPTkAKKytPVE9PTCA9IEBP VE9PTEAKKytPVE9PTDY0ID0gQE9UT09MNjRACisrUEFDS0FHRSA9IEBQQUNLQUdFQAorK1BBQ0tB R0VfQlVHUkVQT1JUID0gQFBBQ0tBR0VfQlVHUkVQT1JUQAorK1BBQ0tBR0VfTkFNRSA9IEBQQUNL QUdFX05BTUVACisrUEFDS0FHRV9TVFJJTkcgPSBAUEFDS0FHRV9TVFJJTkdACisrUEFDS0FHRV9U QVJOQU1FID0gQFBBQ0tBR0VfVEFSTkFNRUAKKytQQUNLQUdFX1ZFUlNJT04gPSBAUEFDS0FHRV9W RVJTSU9OQAorK1BBVEhfU0VQQVJBVE9SID0gQFBBVEhfU0VQQVJBVE9SQAorK1BFUkwgPSBAUEVS TEAKKytQR19DT05GSUcgPSBAUEdfQ09ORklHQAorK1BPU1RHUkVTUUxfQ0ZMQUdTID0gQFBPU1RH UkVTUUxfQ0ZMQUdTQAorK1BPU1RHUkVTUUxfRElSUyA9IEBQT1NUR1JFU1FMX0RJUlNACisrUE9T VEdSRVNRTF9MREZMQUdTID0gQFBPU1RHUkVTUUxfTERGTEFHU0AKKytQT1NUR1JFU1FMX1ZFUlNJ T04gPSBAUE9TVEdSRVNRTF9WRVJTSU9OQAorK1JBTkxJQiA9IEBSQU5MSUJACisrUlBNX1JFTEVB U0UgPSBAUlBNX1JFTEVBU0VACisrU0VEID0gQFNFREAKKytTRVRfTUFLRSA9IEBTRVRfTUFLRUAK KytTSEVMTCA9IEBTSEVMTEAKKytTT0NJX0hFQURFUlNfQlVSSUVEID0gQFNPQ0lfSEVBREVSU19C VVJJRURACisrU09DSV9NWVNRTF9IRUFERVJTX0JVUklFRCA9IEBTT0NJX01ZU1FMX0hFQURFUlNf QlVSSUVEQAorK1NPQ0lfUE9TVEdSRVNRTF9IRUFERVJTX0JVUklFRCA9IEBTT0NJX1BPU1RHUkVT UUxfSEVBREVSU19CVVJJRURACisrU1RSSVAgPSBAU1RSSVBACisrVVBMT0FEX0NPTU1BTkQgPSBA VVBMT0FEX0NPTU1BTkRACisrVkVSU0lPTiA9IEBWRVJTSU9OQAorK2Fic19idWlsZGRpciA9IEBh YnNfYnVpbGRkaXJACisrYWJzX3NyY2RpciA9IEBhYnNfc3JjZGlyQAorK2Fic190b3BfYnVpbGRk aXIgPSBAYWJzX3RvcF9idWlsZGRpckAKKythYnNfdG9wX3NyY2RpciA9IEBhYnNfdG9wX3NyY2Rp ckAKKythY19jdF9DQyA9IEBhY19jdF9DQ0AKKythY19jdF9DWFggPSBAYWNfY3RfQ1hYQAorK2Fj X2N0X0RVTVBCSU4gPSBAYWNfY3RfRFVNUEJJTkAKKythbV9faW5jbHVkZSA9IEBhbV9faW5jbHVk ZUAKKythbV9fbGVhZGluZ19kb3QgPSBAYW1fX2xlYWRpbmdfZG90QAorK2FtX19xdW90ZSA9IEBh bV9fcXVvdGVACisrYW1fX3RhciA9IEBhbV9fdGFyQAorK2FtX191bnRhciA9IEBhbV9fdW50YXJA CisrYmluZGlyID0gQGJpbmRpckAKKytidWlsZCA9IEBidWlsZEAKKytidWlsZF9hbGlhcyA9IEBi dWlsZF9hbGlhc0AKKytidWlsZF9jcHUgPSBAYnVpbGRfY3B1QAorK2J1aWxkX29zID0gQGJ1aWxk X29zQAorK2J1aWxkX3ZlbmRvciA9IEBidWlsZF92ZW5kb3JACisrYnVpbGRkaXIgPSBAYnVpbGRk aXJACisrZGF0YWRpciA9IEBkYXRhZGlyQAorK2RhdGFyb290ZGlyID0gQGRhdGFyb290ZGlyQAor K2RpZmZfb2sgPSBAZGlmZl9va0AKKytkb2NkaXIgPSBAZG9jZGlyQAorK2RveHlnZW5fb2sgPSBA ZG94eWdlbl9va0AKKytkdmlkaXIgPSBAZHZpZGlyQAorK2R2aXBzX29rID0gQGR2aXBzX29rQAor K2V4ZWNfcHJlZml4ID0gQGV4ZWNfcHJlZml4QAorK2dzX29rID0gQGdzX29rQAorK2hvc3QgPSBA aG9zdEAKKytob3N0X2FsaWFzID0gQGhvc3RfYWxpYXNACisraG9zdF9jcHUgPSBAaG9zdF9jcHVA CisraG9zdF9vcyA9IEBob3N0X29zQAorK2hvc3RfdmVuZG9yID0gQGhvc3RfdmVuZG9yQAorK2h0 bWxkaXIgPSBAaHRtbGRpckAKKytpbmNsdWRlZGlyID0gQGluY2x1ZGVkaXJACisraW5mb2RpciA9 IEBpbmZvZGlyQAorK2luc3RhbGxfc2ggPSBAaW5zdGFsbF9zaEAKKytsYXRleF9vayA9IEBsYXRl eF9va0AKKytsaWJkaXIgPSBAbGliZGlyQAorK2xpYmV4ZWNkaXIgPSBAbGliZXhlY2RpckAKKyts b2NhbGVkaXIgPSBAbG9jYWxlZGlyQAorK2xvY2Fsc3RhdGVkaXIgPSBAbG9jYWxzdGF0ZWRpckAK KytsdF9FQ0hPID0gQGx0X0VDSE9ACisrbWFuZGlyID0gQG1hbmRpckAKKytta2Rpcl9wID0gQG1r ZGlyX3BACisrb2xkaW5jbHVkZWRpciA9IEBvbGRpbmNsdWRlZGlyQAorK3BkZmRpciA9IEBwZGZk aXJACisrcHJlZml4ID0gQHByZWZpeEAKKytwcm9ncmFtX3RyYW5zZm9ybV9uYW1lID0gQHByb2dy YW1fdHJhbnNmb3JtX25hbWVACisrcHNkaXIgPSBAcHNkaXJACisrc2JpbmRpciA9IEBzYmluZGly QAorK3NlZF9vayA9IEBzZWRfb2tACisrc2hhcmVkc3RhdGVkaXIgPSBAc2hhcmVkc3RhdGVkaXJA Cisrc3JjZGlyID0gQHNyY2RpckAKKytzeXNjb25mZGlyID0gQHN5c2NvbmZkaXJACisrdGFyZ2V0 X2FsaWFzID0gQHRhcmdldF9hbGlhc0AKKyt0b3BfYnVpbGRfcHJlZml4ID0gQHRvcF9idWlsZF9w cmVmaXhACisrdG9wX2J1aWxkZGlyID0gQHRvcF9idWlsZGRpckAKKyt0b3Bfc3JjZGlyID0gQHRv cF9zcmNkaXJACisrQU1fQ1BQRkxBR1MgPSAtSSQodG9wX2J1aWxkZGlyKSAtSSQodG9wX3NyY2Rp cikKKytNQUlOVEFJTkVSQ0xFQU5GSUxFUyA9IE1ha2VmaWxlLmluCisrU1VCRElSUyA9IGNvcmUg YmFja2VuZHMKKytFWFRSQV9ESVNUID0gCisrYWxsOiBjb25maWcuaAorKwkkKE1BS0UpICQoQU1f TUFLRUZMQUdTKSBhbGwtcmVjdXJzaXZlCisrCisrLlNVRkZJWEVTOgorKyQoc3JjZGlyKS9NYWtl ZmlsZS5pbjogICQoc3JjZGlyKS9NYWtlZmlsZS5hbSAkKHRvcF9zcmNkaXIpL01ha2VmaWxlLmNv bW1vbiAkKGFtX19jb25maWd1cmVfZGVwcykKKysJQGZvciBkZXAgaW4gJD87IGRvIFwKKysJICBj YXNlICckKGFtX19jb25maWd1cmVfZGVwcyknIGluIFwKKysJICAgICokJGRlcCopIFwKKysJICAg ICAgKCBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJl ZnJlc2ggKSBcCisrCSAgICAgICAgJiYgeyBpZiB0ZXN0IC1mICRAOyB0aGVuIGV4aXQgMDsgZWxz ZSBicmVhazsgZmk7IH07IFwKKysJICAgICAgZXhpdCAxOzsgXAorKwkgIGVzYWM7IFwKKysJZG9u ZTsgXAorKwllY2hvICcgY2QgJCh0b3Bfc3JjZGlyKSAmJiAkKEFVVE9NQUtFKSAtLWdudSBzb2Np L01ha2VmaWxlJzsgXAorKwkkKGFtX19jZCkgJCh0b3Bfc3JjZGlyKSAmJiBcCisrCSAgJChBVVRP TUFLRSkgLS1nbnUgc29jaS9NYWtlZmlsZQorKy5QUkVDSU9VUzogTWFrZWZpbGUKKytNYWtlZmls ZTogJChzcmNkaXIpL01ha2VmaWxlLmluICQodG9wX2J1aWxkZGlyKS9jb25maWcuc3RhdHVzCisr CUBjYXNlICckPycgaW4gXAorKwkgICpjb25maWcuc3RhdHVzKikgXAorKwkgICAgY2QgJCh0b3Bf YnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoOzsgXAorKwkg ICopIFwKKysJICAgIGVjaG8gJyBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChTSEVMTCkgLi9jb25m aWcuc3RhdHVzICQoc3ViZGlyKS8kQCAkKGFtX19kZXBmaWxlc19tYXliZSknOyBcCisrCSAgICBj ZCAkKHRvcF9idWlsZGRpcikgJiYgJChTSEVMTCkgLi9jb25maWcuc3RhdHVzICQoc3ViZGlyKS8k QCAkKGFtX19kZXBmaWxlc19tYXliZSk7OyBcCisrCWVzYWM7CisrCisrJCh0b3BfYnVpbGRkaXIp L2NvbmZpZy5zdGF0dXM6ICQodG9wX3NyY2RpcikvY29uZmlndXJlICQoQ09ORklHX1NUQVRVU19E RVBFTkRFTkNJRVMpCisrCWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZM QUdTKSBhbS0tcmVmcmVzaAorKworKyQodG9wX3NyY2RpcikvY29uZmlndXJlOiAgJChhbV9fY29u ZmlndXJlX2RlcHMpCisrCWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZM QUdTKSBhbS0tcmVmcmVzaAorKyQoQUNMT0NBTF9NNCk6ICAkKGFtX19hY2xvY2FsX200X2RlcHMp CisrCWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVm cmVzaAorKyQoYW1fX2FjbG9jYWxfbTRfZGVwcyk6CisrCisrY29uZmlnLmg6IHN0YW1wLWgxCisr CUBpZiB0ZXN0ICEgLWYgJEA7IHRoZW4gXAorKwkgIHJtIC1mIHN0YW1wLWgxOyBcCisrCSAgJChN QUtFKSAkKEFNX01BS0VGTEFHUykgc3RhbXAtaDE7IFwKKysJZWxzZSA6OyBmaQorKworK3N0YW1w LWgxOiAkKHNyY2RpcikvY29uZmlnLmguaW4gJCh0b3BfYnVpbGRkaXIpL2NvbmZpZy5zdGF0dXMK KysJQHJtIC1mIHN0YW1wLWgxCisrCWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKFNIRUxMKSAuL2Nv bmZpZy5zdGF0dXMgc29jaS9jb25maWcuaAorKyQoc3JjZGlyKS9jb25maWcuaC5pbjogICQoYW1f X2NvbmZpZ3VyZV9kZXBzKSAKKysJKCQoYW1fX2NkKSAkKHRvcF9zcmNkaXIpICYmICQoQVVUT0hF QURFUikpCisrCXJtIC1mIHN0YW1wLWgxCisrCXRvdWNoICRACisrCisrZGlzdGNsZWFuLWhkcjoK KysJLXJtIC1mIGNvbmZpZy5oIHN0YW1wLWgxCisrCisrbW9zdGx5Y2xlYW4tbGlidG9vbDoKKysJ LXJtIC1mICoubG8KKysKKytjbGVhbi1saWJ0b29sOgorKwktcm0gLXJmIC5saWJzIF9saWJzCisr CisrIyBUaGlzIGRpcmVjdG9yeSdzIHN1YmRpcmVjdG9yaWVzIGFyZSBtb3N0bHkgaW5kZXBlbmRl bnQ7IHlvdSBjYW4gY2QKKysjIGludG8gdGhlbSBhbmQgcnVuIGBtYWtlJyB3aXRob3V0IGdvaW5n IHRocm91Z2ggdGhpcyBNYWtlZmlsZS4KKysjIFRvIGNoYW5nZSB0aGUgdmFsdWVzIG9mIGBtYWtl JyB2YXJpYWJsZXM6IGluc3RlYWQgb2YgZWRpdGluZyBNYWtlZmlsZXMsCisrIyAoMSkgaWYgdGhl IHZhcmlhYmxlIGlzIHNldCBpbiBgY29uZmlnLnN0YXR1cycsIGVkaXQgYGNvbmZpZy5zdGF0dXMn CisrIyAgICAgKHdoaWNoIHdpbGwgY2F1c2UgdGhlIE1ha2VmaWxlcyB0byBiZSByZWdlbmVyYXRl ZCB3aGVuIHlvdSBydW4gYG1ha2UnKTsKKysjICgyKSBvdGhlcndpc2UsIHBhc3MgdGhlIGRlc2ly ZWQgdmFsdWVzIG9uIHRoZSBgbWFrZScgY29tbWFuZCBsaW5lLgorKyQoUkVDVVJTSVZFX1RBUkdF VFMpOgorKwlAZmFpbD0gZmFpbGNvbT0nZXhpdCAxJzsgXAorKwlmb3IgZiBpbiB4ICQkTUFLRUZM QUdTOyBkbyBcCisrCSAgY2FzZSAkJGYgaW4gXAorKwkgICAgKj0qIHwgLS1bIWtdKik7OyBcCisr CSAgICAqayopIGZhaWxjb209J2ZhaWw9eWVzJzs7IFwKKysJICBlc2FjOyBcCisrCWRvbmU7IFwK KysJZG90X3NlZW49bm87IFwKKysJdGFyZ2V0PWBlY2hvICRAIHwgc2VkIHMvLXJlY3Vyc2l2ZS8v YDsgXAorKwlsaXN0PSckKFNVQkRJUlMpJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKKysJ ICBlY2hvICJNYWtpbmcgJCR0YXJnZXQgaW4gJCRzdWJkaXIiOyBcCisrCSAgaWYgdGVzdCAiJCRz dWJkaXIiID0gIi4iOyB0aGVuIFwKKysJICAgIGRvdF9zZWVuPXllczsgXAorKwkgICAgbG9jYWxf dGFyZ2V0PSIkJHRhcmdldC1hbSI7IFwKKysJICBlbHNlIFwKKysJICAgIGxvY2FsX3RhcmdldD0i JCR0YXJnZXQiOyBcCisrCSAgZmk7IFwKKysJICAoJChhbV9fY2QpICQkc3ViZGlyICYmICQoTUFL RSkgJChBTV9NQUtFRkxBR1MpICQkbG9jYWxfdGFyZ2V0KSBcCisrCSAgfHwgZXZhbCAkJGZhaWxj b207IFwKKysJZG9uZTsgXAorKwlpZiB0ZXN0ICIkJGRvdF9zZWVuIiA9ICJubyI7IHRoZW4gXAor KwkgICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpICIkJHRhcmdldC1hbSIgfHwgZXhpdCAxOyBcCisr CWZpOyB0ZXN0IC16ICIkJGZhaWwiCisrCisrJChSRUNVUlNJVkVfQ0xFQU5fVEFSR0VUUyk6Cisr CUBmYWlsPSBmYWlsY29tPSdleGl0IDEnOyBcCisrCWZvciBmIGluIHggJCRNQUtFRkxBR1M7IGRv IFwKKysJICBjYXNlICQkZiBpbiBcCisrCSAgICAqPSogfCAtLVsha10qKTs7IFwKKysJICAgICpr KikgZmFpbGNvbT0nZmFpbD15ZXMnOzsgXAorKwkgIGVzYWM7IFwKKysJZG9uZTsgXAorKwlkb3Rf c2Vlbj1ubzsgXAorKwljYXNlICIkQCIgaW4gXAorKwkgIGRpc3RjbGVhbi0qIHwgbWFpbnRhaW5l ci1jbGVhbi0qKSBsaXN0PSckKERJU1RfU1VCRElSUyknIDs7IFwKKysJICAqKSBsaXN0PSckKFNV QkRJUlMpJyA7OyBcCisrCWVzYWM7IFwKKysJcmV2PScnOyBmb3Igc3ViZGlyIGluICQkbGlzdDsg ZG8gXAorKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9ICIuIjsgdGhlbiA6OyBlbHNlIFwKKysJICAg IHJldj0iJCRzdWJkaXIgJCRyZXYiOyBcCisrCSAgZmk7IFwKKysJZG9uZTsgXAorKwlyZXY9IiQk cmV2IC4iOyBcCisrCXRhcmdldD1gZWNobyAkQCB8IHNlZCBzLy1yZWN1cnNpdmUvL2A7IFwKKysJ Zm9yIHN1YmRpciBpbiAkJHJldjsgZG8gXAorKwkgIGVjaG8gIk1ha2luZyAkJHRhcmdldCBpbiAk JHN1YmRpciI7IFwKKysJICBpZiB0ZXN0ICIkJHN1YmRpciIgPSAiLiI7IHRoZW4gXAorKwkgICAg bG9jYWxfdGFyZ2V0PSIkJHRhcmdldC1hbSI7IFwKKysJICBlbHNlIFwKKysJICAgIGxvY2FsX3Rh cmdldD0iJCR0YXJnZXQiOyBcCisrCSAgZmk7IFwKKysJICAoJChhbV9fY2QpICQkc3ViZGlyICYm ICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpICQkbG9jYWxfdGFyZ2V0KSBcCisrCSAgfHwgZXZhbCAk JGZhaWxjb207IFwKKysJZG9uZSAmJiB0ZXN0IC16ICIkJGZhaWwiCisrdGFncy1yZWN1cnNpdmU6 CisrCWxpc3Q9JyQoU1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAorKwkgIHRl c3QgIiQkc3ViZGlyIiA9IC4gfHwgKCQoYW1fX2NkKSAkJHN1YmRpciAmJiAkKE1BS0UpICQoQU1f TUFLRUZMQUdTKSB0YWdzKTsgXAorKwlkb25lCisrY3RhZ3MtcmVjdXJzaXZlOgorKwlsaXN0PSck KFNVQkRJUlMpJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKKysJICB0ZXN0ICIkJHN1YmRp ciIgPSAuIHx8ICgkKGFtX19jZCkgJCRzdWJkaXIgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykg Y3RhZ3MpOyBcCisrCWRvbmUKKysKKytJRDogJChIRUFERVJTKSAkKFNPVVJDRVMpICQoTElTUCkg JChUQUdTX0ZJTEVTKQorKwlsaXN0PSckKFNPVVJDRVMpICQoSEVBREVSUykgJChMSVNQKSAkKFRB R1NfRklMRVMpJzsgXAorKwl1bmlxdWU9YGZvciBpIGluICQkbGlzdDsgZG8gXAorKwkgICAgaWYg dGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsgZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7IGZp OyBcCisrCSAgZG9uZSB8IFwKKysJICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9IDE7IG5vbmVtcHR5 ID0gMTsgfSBcCisrCSAgICAgIEVORCB7IGlmIChub25lbXB0eSkgeyBmb3IgKGkgaW4gZmlsZXMp IHByaW50IGk7IH07IH0nYDsgXAorKwlta2lkIC1mSUQgJCR1bmlxdWUKKyt0YWdzOiBUQUdTCisr CisrVEFHUzogdGFncy1yZWN1cnNpdmUgJChIRUFERVJTKSAkKFNPVVJDRVMpIGNvbmZpZy5oLmlu ICQoVEFHU19ERVBFTkRFTkNJRVMpIFwKKysJCSQoVEFHU19GSUxFUykgJChMSVNQKQorKwlzZXQg eDsgXAorKwloZXJlPWBwd2RgOyBcCisrCWlmICgkKEVUQUdTKSAtLWV0YWdzLWluY2x1ZGUgLS12 ZXJzaW9uKSA+L2Rldi9udWxsIDI+JjE7IHRoZW4gXAorKwkgIGluY2x1ZGVfb3B0aW9uPS0tZXRh Z3MtaW5jbHVkZTsgXAorKwkgIGVtcHR5X2ZpeD0uOyBcCisrCWVsc2UgXAorKwkgIGluY2x1ZGVf b3B0aW9uPS0taW5jbHVkZTsgXAorKwkgIGVtcHR5X2ZpeD07IFwKKysJZmk7IFwKKysJbGlzdD0n JChTVUJESVJTKSc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCisrCSAgaWYgdGVzdCAiJCRz dWJkaXIiID0gLjsgdGhlbiA6OyBlbHNlIFwKKysJICAgIHRlc3QgISAtZiAkJHN1YmRpci9UQUdT IHx8IFwKKysJICAgICAgc2V0ICIkJEAiICIkJGluY2x1ZGVfb3B0aW9uPSQkaGVyZS8kJHN1YmRp ci9UQUdTIjsgXAorKwkgIGZpOyBcCisrCWRvbmU7IFwKKysJbGlzdD0nJChTT1VSQ0VTKSAkKEhF QURFUlMpIGNvbmZpZy5oLmluICQoTElTUCkgJChUQUdTX0ZJTEVTKSc7IFwKKysJdW5pcXVlPWBm b3IgaSBpbiAkJGxpc3Q7IGRvIFwKKysJICAgIGlmIHRlc3QgLWYgIiQkaSI7IHRoZW4gZWNobyAk JGk7IGVsc2UgZWNobyAkKHNyY2RpcikvJCRpOyBmaTsgXAorKwkgIGRvbmUgfCBcCisrCSAgJChB V0spICd7IGZpbGVzWyQkMF0gPSAxOyBub25lbXB0eSA9IDE7IH0gXAorKwkgICAgICBFTkQgeyBp ZiAobm9uZW1wdHkpIHsgZm9yIChpIGluIGZpbGVzKSBwcmludCBpOyB9OyB9J2A7IFwKKysJc2hp ZnQ7IFwKKysJaWYgdGVzdCAteiAiJChFVEFHU19BUkdTKSQkKiQkdW5pcXVlIjsgdGhlbiA6OyBl bHNlIFwKKysJICB0ZXN0IC1uICIkJHVuaXF1ZSIgfHwgdW5pcXVlPSQkZW1wdHlfZml4OyBcCisr CSAgaWYgdGVzdCAkJCMgLWd0IDA7IHRoZW4gXAorKwkgICAgJChFVEFHUykgJChFVEFHU0ZMQUdT KSAkKEFNX0VUQUdTRkxBR1MpICQoRVRBR1NfQVJHUykgXAorKwkgICAgICAiJCRAIiAkJHVuaXF1 ZTsgXAorKwkgIGVsc2UgXAorKwkgICAgJChFVEFHUykgJChFVEFHU0ZMQUdTKSAkKEFNX0VUQUdT RkxBR1MpICQoRVRBR1NfQVJHUykgXAorKwkgICAgICAkJHVuaXF1ZTsgXAorKwkgIGZpOyBcCisr CWZpCisrY3RhZ3M6IENUQUdTCisrQ1RBR1M6IGN0YWdzLXJlY3Vyc2l2ZSAkKEhFQURFUlMpICQo U09VUkNFUykgY29uZmlnLmguaW4gJChUQUdTX0RFUEVOREVOQ0lFUykgXAorKwkJJChUQUdTX0ZJ TEVTKSAkKExJU1ApCisrCWxpc3Q9JyQoU09VUkNFUykgJChIRUFERVJTKSBjb25maWcuaC5pbiAk KExJU1ApICQoVEFHU19GSUxFUyknOyBcCisrCXVuaXF1ZT1gZm9yIGkgaW4gJCRsaXN0OyBkbyBc CisrCSAgICBpZiB0ZXN0IC1mICIkJGkiOyB0aGVuIGVjaG8gJCRpOyBlbHNlIGVjaG8gJChzcmNk aXIpLyQkaTsgZmk7IFwKKysJICBkb25lIHwgXAorKwkgICQoQVdLKSAneyBmaWxlc1skJDBdID0g MTsgbm9uZW1wdHkgPSAxOyB9IFwKKysJICAgICAgRU5EIHsgaWYgKG5vbmVtcHR5KSB7IGZvciAo aSBpbiBmaWxlcykgcHJpbnQgaTsgfTsgfSdgOyBcCisrCXRlc3QgLXogIiQoQ1RBR1NfQVJHUykk JHVuaXF1ZSIgXAorKwkgIHx8ICQoQ1RBR1MpICQoQ1RBR1NGTEFHUykgJChBTV9DVEFHU0ZMQUdT KSAkKENUQUdTX0FSR1MpIFwKKysJICAgICAkJHVuaXF1ZQorKworK0dUQUdTOgorKwloZXJlPWAk KGFtX19jZCkgJCh0b3BfYnVpbGRkaXIpICYmIHB3ZGAgXAorKwkgICYmICQoYW1fX2NkKSAkKHRv cF9zcmNkaXIpIFwKKysJICAmJiBndGFncyAtaSAkKEdUQUdTX0FSR1MpICIkJGhlcmUiCisrCisr ZGlzdGNsZWFuLXRhZ3M6CisrCS1ybSAtZiBUQUdTIElEIEdUQUdTIEdSVEFHUyBHU1lNUyBHUEFU SCB0YWdzCisrCisrZGlzdGRpcjogJChESVNURklMRVMpCisrCUBzcmNkaXJzdHJpcD1gZWNobyAi JChzcmNkaXIpIiB8IHNlZCAncy9bXS5bXiQkXFwqXS9cXFxcJi9nJ2A7IFwKKysJdG9wc3JjZGly c3RyaXA9YGVjaG8gIiQodG9wX3NyY2RpcikiIHwgc2VkICdzL1tdLlteJCRcXCpdL1xcXFwmL2cn YDsgXAorKwlsaXN0PSckKERJU1RGSUxFUyknOyBcCisrCSAgZGlzdF9maWxlcz1gZm9yIGZpbGUg aW4gJCRsaXN0OyBkbyBlY2hvICQkZmlsZTsgZG9uZSB8IFwKKysJICBzZWQgLWUgInN8XiQkc3Jj ZGlyc3RyaXAvfHw7dCIgXAorKwkgICAgICAtZSAic3xeJCR0b3BzcmNkaXJzdHJpcC98JCh0b3Bf YnVpbGRkaXIpL3w7dCJgOyBcCisrCWNhc2UgJCRkaXN0X2ZpbGVzIGluIFwKKysJICAqLyopICQo TUtESVJfUCkgYGVjaG8gIiQkZGlzdF9maWxlcyIgfCBcCisrCQkJICAgc2VkICcvXC8vIWQ7c3xe fCQoZGlzdGRpcikvfDtzLC9bXi9dKiQkLCwnIHwgXAorKwkJCSAgIHNvcnQgLXVgIDs7IFwKKysJ ZXNhYzsgXAorKwlmb3IgZmlsZSBpbiAkJGRpc3RfZmlsZXM7IGRvIFwKKysJICBpZiB0ZXN0IC1m ICQkZmlsZSB8fCB0ZXN0IC1kICQkZmlsZTsgdGhlbiBkPS47IGVsc2UgZD0kKHNyY2Rpcik7IGZp OyBcCisrCSAgaWYgdGVzdCAtZCAkJGQvJCRmaWxlOyB0aGVuIFwKKysJICAgIGRpcj1gZWNobyAi LyQkZmlsZSIgfCBzZWQgLWUgJ3MsL1teL10qJCQsLCdgOyBcCisrCSAgICBpZiB0ZXN0IC1kICIk KGRpc3RkaXIpLyQkZmlsZSI7IHRoZW4gXAorKwkgICAgICBmaW5kICIkKGRpc3RkaXIpLyQkZmls ZSIgLXR5cGUgZCAhIC1wZXJtIC03MDAgLWV4ZWMgY2htb2QgdStyd3gge30gXDs7IFwKKysJICAg IGZpOyBcCisrCSAgICBpZiB0ZXN0IC1kICQoc3JjZGlyKS8kJGZpbGUgJiYgdGVzdCAkJGQgIT0g JChzcmNkaXIpOyB0aGVuIFwKKysJICAgICAgY3AgLWZwUiAkKHNyY2RpcikvJCRmaWxlICIkKGRp c3RkaXIpJCRkaXIiIHx8IGV4aXQgMTsgXAorKwkgICAgICBmaW5kICIkKGRpc3RkaXIpLyQkZmls ZSIgLXR5cGUgZCAhIC1wZXJtIC03MDAgLWV4ZWMgY2htb2QgdStyd3gge30gXDs7IFwKKysJICAg IGZpOyBcCisrCSAgICBjcCAtZnBSICQkZC8kJGZpbGUgIiQoZGlzdGRpcikkJGRpciIgfHwgZXhp dCAxOyBcCisrCSAgZWxzZSBcCisrCSAgICB0ZXN0IC1mICIkKGRpc3RkaXIpLyQkZmlsZSIgXAor KwkgICAgfHwgY3AgLXAgJCRkLyQkZmlsZSAiJChkaXN0ZGlyKS8kJGZpbGUiIFwKKysJICAgIHx8 IGV4aXQgMTsgXAorKwkgIGZpOyBcCisrCWRvbmUKKysJQGxpc3Q9JyQoRElTVF9TVUJESVJTKSc7 IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCisrCSAgaWYgdGVzdCAiJCRzdWJkaXIiID0gLjsg dGhlbiA6OyBlbHNlIFwKKysJICAgIHRlc3QgLWQgIiQoZGlzdGRpcikvJCRzdWJkaXIiIFwKKysJ ICAgIHx8ICQoTUtESVJfUCkgIiQoZGlzdGRpcikvJCRzdWJkaXIiIFwKKysJICAgIHx8IGV4aXQg MTsgXAorKwkgIGZpOyBcCisrCWRvbmUKKysJQGxpc3Q9JyQoRElTVF9TVUJESVJTKSc7IGZvciBz dWJkaXIgaW4gJCRsaXN0OyBkbyBcCisrCSAgaWYgdGVzdCAiJCRzdWJkaXIiID0gLjsgdGhlbiA6 OyBlbHNlIFwKKysJICAgIGRpcjE9JCRzdWJkaXI7IGRpcjI9IiQoZGlzdGRpcikvJCRzdWJkaXIi OyBcCisrCSAgICAkKGFtX19yZWxhdGl2aXplKTsgXAorKwkgICAgbmV3X2Rpc3RkaXI9JCRyZWxk aXI7IFwKKysJICAgIGRpcjE9JCRzdWJkaXI7IGRpcjI9IiQodG9wX2Rpc3RkaXIpIjsgXAorKwkg ICAgJChhbV9fcmVsYXRpdml6ZSk7IFwKKysJICAgIG5ld190b3BfZGlzdGRpcj0kJHJlbGRpcjsg XAorKwkgICAgZWNobyAiIChjZCAkJHN1YmRpciAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSB0 b3BfZGlzdGRpcj0iJCRuZXdfdG9wX2Rpc3RkaXIiIGRpc3RkaXI9IiQkbmV3X2Rpc3RkaXIiIFxc IjsgXAorKwkgICAgZWNobyAiICAgICBhbV9fcmVtb3ZlX2Rpc3RkaXI9OiBhbV9fc2tpcF9sZW5n dGhfY2hlY2s9OiBhbV9fc2tpcF9tb2RlX2ZpeD06IGRpc3RkaXIpIjsgXAorKwkgICAgKCQoYW1f X2NkKSAkJHN1YmRpciAmJiBcCisrCSAgICAgICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIFwKKysJ ICAgICAgICB0b3BfZGlzdGRpcj0iJCRuZXdfdG9wX2Rpc3RkaXIiIFwKKysJICAgICAgICBkaXN0 ZGlyPSIkJG5ld19kaXN0ZGlyIiBcCisrCQlhbV9fcmVtb3ZlX2Rpc3RkaXI9OiBcCisrCQlhbV9f c2tpcF9sZW5ndGhfY2hlY2s9OiBcCisrCQlhbV9fc2tpcF9tb2RlX2ZpeD06IFwKKysJICAgICAg ICBkaXN0ZGlyKSBcCisrCSAgICAgIHx8IGV4aXQgMTsgXAorKwkgIGZpOyBcCisrCWRvbmUKKytj aGVjay1hbTogYWxsLWFtCisrY2hlY2s6IGNoZWNrLXJlY3Vyc2l2ZQorK2FsbC1hbTogTWFrZWZp bGUgY29uZmlnLmgKKytpbnN0YWxsZGlyczogaW5zdGFsbGRpcnMtcmVjdXJzaXZlCisraW5zdGFs bGRpcnMtYW06CisraW5zdGFsbDogaW5zdGFsbC1yZWN1cnNpdmUKKytpbnN0YWxsLWV4ZWM6IGlu c3RhbGwtZXhlYy1yZWN1cnNpdmUKKytpbnN0YWxsLWRhdGE6IGluc3RhbGwtZGF0YS1yZWN1cnNp dmUKKyt1bmluc3RhbGw6IHVuaW5zdGFsbC1yZWN1cnNpdmUKKysKKytpbnN0YWxsLWFtOiBhbGwt YW0KKysJQCQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGluc3RhbGwtZXhlYy1hbSBpbnN0YWxsLWRh dGEtYW0KKysKKytpbnN0YWxsY2hlY2s6IGluc3RhbGxjaGVjay1yZWN1cnNpdmUKKytpbnN0YWxs LXN0cmlwOgorKwkkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBJTlNUQUxMX1BST0dSQU09IiQoSU5T VEFMTF9TVFJJUF9QUk9HUkFNKSIgXAorKwkgIGluc3RhbGxfc2hfUFJPR1JBTT0iJChJTlNUQUxM X1NUUklQX1BST0dSQU0pIiBJTlNUQUxMX1NUUklQX0ZMQUc9LXMgXAorKwkgIGB0ZXN0IC16ICck KFNUUklQKScgfHwgXAorKwkgICAgZWNobyAiSU5TVEFMTF9QUk9HUkFNX0VOVj1TVFJJUFBST0c9 JyQoU1RSSVApJyJgIGluc3RhbGwKKyttb3N0bHljbGVhbi1nZW5lcmljOgorKworK2NsZWFuLWdl bmVyaWM6CisrCisrZGlzdGNsZWFuLWdlbmVyaWM6CisrCS10ZXN0IC16ICIkKENPTkZJR19DTEVB Tl9GSUxFUykiIHx8IHJtIC1mICQoQ09ORklHX0NMRUFOX0ZJTEVTKQorKwktdGVzdCAuID0gIiQo c3JjZGlyKSIgfHwgdGVzdCAteiAiJChDT05GSUdfQ0xFQU5fVlBBVEhfRklMRVMpIiB8fCBybSAt ZiAkKENPTkZJR19DTEVBTl9WUEFUSF9GSUxFUykKKysKKyttYWludGFpbmVyLWNsZWFuLWdlbmVy aWM6CisrCUBlY2hvICJUaGlzIGNvbW1hbmQgaXMgaW50ZW5kZWQgZm9yIG1haW50YWluZXJzIHRv IHVzZSIKKysJQGVjaG8gIml0IGRlbGV0ZXMgZmlsZXMgdGhhdCBtYXkgcmVxdWlyZSBzcGVjaWFs IHRvb2xzIHRvIHJlYnVpbGQuIgorKwktdGVzdCAteiAiJChNQUlOVEFJTkVSQ0xFQU5GSUxFUyki IHx8IHJtIC1mICQoTUFJTlRBSU5FUkNMRUFORklMRVMpCisrY2xlYW46IGNsZWFuLXJlY3Vyc2l2 ZQorKworK2NsZWFuLWFtOiBjbGVhbi1nZW5lcmljIGNsZWFuLWxpYnRvb2wgbW9zdGx5Y2xlYW4t YW0KKysKKytkaXN0Y2xlYW46IGRpc3RjbGVhbi1yZWN1cnNpdmUKKysJLXJtIC1mIE1ha2VmaWxl CisrZGlzdGNsZWFuLWFtOiBjbGVhbi1hbSBkaXN0Y2xlYW4tZ2VuZXJpYyBkaXN0Y2xlYW4taGRy IGRpc3RjbGVhbi10YWdzCisrCisrZHZpOiBkdmktcmVjdXJzaXZlCisrCisrZHZpLWFtOgorKwor K2h0bWw6IGh0bWwtcmVjdXJzaXZlCisrCisraHRtbC1hbToKKysKKytpbmZvOiBpbmZvLXJlY3Vy c2l2ZQorKworK2luZm8tYW06CisrCisraW5zdGFsbC1kYXRhLWFtOgorKworK2luc3RhbGwtZHZp OiBpbnN0YWxsLWR2aS1yZWN1cnNpdmUKKysKKytpbnN0YWxsLWR2aS1hbToKKysKKytpbnN0YWxs LWV4ZWMtYW06CisrCisraW5zdGFsbC1odG1sOiBpbnN0YWxsLWh0bWwtcmVjdXJzaXZlCisrCisr aW5zdGFsbC1odG1sLWFtOgorKworK2luc3RhbGwtaW5mbzogaW5zdGFsbC1pbmZvLXJlY3Vyc2l2 ZQorKworK2luc3RhbGwtaW5mby1hbToKKysKKytpbnN0YWxsLW1hbjoKKysKKytpbnN0YWxsLXBk ZjogaW5zdGFsbC1wZGYtcmVjdXJzaXZlCisrCisraW5zdGFsbC1wZGYtYW06CisrCisraW5zdGFs bC1wczogaW5zdGFsbC1wcy1yZWN1cnNpdmUKKysKKytpbnN0YWxsLXBzLWFtOgorKworK2luc3Rh bGxjaGVjay1hbToKKysKKyttYWludGFpbmVyLWNsZWFuOiBtYWludGFpbmVyLWNsZWFuLXJlY3Vy c2l2ZQorKwktcm0gLWYgTWFrZWZpbGUKKyttYWludGFpbmVyLWNsZWFuLWFtOiBkaXN0Y2xlYW4t YW0gbWFpbnRhaW5lci1jbGVhbi1nZW5lcmljCisrCisrbW9zdGx5Y2xlYW46IG1vc3RseWNsZWFu LXJlY3Vyc2l2ZQorKworK21vc3RseWNsZWFuLWFtOiBtb3N0bHljbGVhbi1nZW5lcmljIG1vc3Rs eWNsZWFuLWxpYnRvb2wKKysKKytwZGY6IHBkZi1yZWN1cnNpdmUKKysKKytwZGYtYW06CisrCisr cHM6IHBzLXJlY3Vyc2l2ZQorKworK3BzLWFtOgorKworK3VuaW5zdGFsbC1hbToKKysKKysuTUFL RTogJChSRUNVUlNJVkVfQ0xFQU5fVEFSR0VUUykgJChSRUNVUlNJVkVfVEFSR0VUUykgYWxsIFwK KysJY3RhZ3MtcmVjdXJzaXZlIGluc3RhbGwtYW0gaW5zdGFsbC1zdHJpcCB0YWdzLXJlY3Vyc2l2 ZQorKworKy5QSE9OWTogJChSRUNVUlNJVkVfQ0xFQU5fVEFSR0VUUykgJChSRUNVUlNJVkVfVEFS R0VUUykgQ1RBR1MgR1RBR1MgXAorKwlhbGwgYWxsLWFtIGNoZWNrIGNoZWNrLWFtIGNsZWFuIGNs ZWFuLWdlbmVyaWMgY2xlYW4tbGlidG9vbCBcCisrCWN0YWdzIGN0YWdzLXJlY3Vyc2l2ZSBkaXN0 Y2xlYW4gZGlzdGNsZWFuLWdlbmVyaWMgXAorKwlkaXN0Y2xlYW4taGRyIGRpc3RjbGVhbi1saWJ0 b29sIGRpc3RjbGVhbi10YWdzIGRpc3RkaXIgZHZpIFwKKysJZHZpLWFtIGh0bWwgaHRtbC1hbSBp bmZvIGluZm8tYW0gaW5zdGFsbCBpbnN0YWxsLWFtIFwKKysJaW5zdGFsbC1kYXRhIGluc3RhbGwt ZGF0YS1hbSBpbnN0YWxsLWR2aSBpbnN0YWxsLWR2aS1hbSBcCisrCWluc3RhbGwtZXhlYyBpbnN0 YWxsLWV4ZWMtYW0gaW5zdGFsbC1odG1sIGluc3RhbGwtaHRtbC1hbSBcCisrCWluc3RhbGwtaW5m byBpbnN0YWxsLWluZm8tYW0gaW5zdGFsbC1tYW4gaW5zdGFsbC1wZGYgXAorKwlpbnN0YWxsLXBk Zi1hbSBpbnN0YWxsLXBzIGluc3RhbGwtcHMtYW0gaW5zdGFsbC1zdHJpcCBcCisrCWluc3RhbGxj aGVjayBpbnN0YWxsY2hlY2stYW0gaW5zdGFsbGRpcnMgaW5zdGFsbGRpcnMtYW0gXAorKwltYWlu dGFpbmVyLWNsZWFuIG1haW50YWluZXItY2xlYW4tZ2VuZXJpYyBtb3N0bHljbGVhbiBcCisrCW1v c3RseWNsZWFuLWdlbmVyaWMgbW9zdGx5Y2xlYW4tbGlidG9vbCBwZGYgcGRmLWFtIHBzIHBzLWFt IFwKKysJdGFncyB0YWdzLXJlY3Vyc2l2ZSB1bmluc3RhbGwgdW5pbnN0YWxsLWFtCisrCisrQFNF VF9NQUtFQAorKworKyMgVGVsbCB2ZXJzaW9ucyBbMy41OSwzLjYzKSBvZiBHTlUgbWFrZSB0byBu b3QgZXhwb3J0IGFsbCB2YXJpYWJsZXMuCisrIyBPdGhlcndpc2UgYSBzeXN0ZW0gbGltaXQgKGZv ciBTeXNWIGF0IGxlYXN0KSBtYXkgYmUgZXhjZWVkZWQuCisrLk5PRVhQT1JUOgorZGlmZiAtTnVy IHNvY2ktMy4wLjBfNC1wYWNrL3NvY2ktY29uZmlnLmluIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2Np LWNvbmZpZy5pbgorLS0tIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2ktY29uZmlnLmluCTE5NzAtMDEt MDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCisrKysgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kt Y29uZmlnLmluCTIwMDktMDQtMTYgMTk6Mzc6MTAuMDAwMDAwMDAwICswMjAwCitAQCAtMCwwICsx LDc2IEBACisrIyEvYmluL3NoCisrCisrcHJlZml4PUBwcmVmaXhACisrZXhlY19wcmVmaXg9JHtw cmVmaXh9CisrbGliZGlyPUBsaWJkaXJACisraW5jbHVkZWRpcj1AaW5jbHVkZWRpckAKKysKKyt1 c2FnZSgpCisreworKyAgY2F0IDw8RU9GCisrVXNhZ2U6IEBQQUNLQUdFQC1jb25maWcgW09QVElP Tl0KKysKKytLbm93biB2YWx1ZXMgZm9yIE9QVElPTiBhcmU6CisrCisrICAtLXByZWZpeCAgICAg ICAgcHJpbnQgQFBBQ0tBR0VfTkFNRUAgaW5zdGFsbGF0aW9uIHByZWZpeAorKyAgLS1saWJzICAg ICAgICAgIHByaW50IGxpYnJhcnkgbGlua2luZyBpbmZvcm1hdGlvbgorKyAgLS1jZmxhZ3MgICAg ICAgIHByaW50IHByZS1wcm9jZXNzb3IgYW5kIGNvbXBpbGVyIGZsYWdzCisrICAtLWhlbHAgICAg ICAgICAgZGlzcGxheSB0aGlzIGhlbHAgYW5kIGV4aXQKKysgIC0tdmVyc2lvbiAgICAgICBvdXRw dXQgdmVyc2lvbiBpbmZvcm1hdGlvbgorK0VPRgorKyAgZXhpdCAkMQorK30KKysKKytpZiB0ZXN0 ICQjIC1lcSAwOyB0aGVuCisrICB1c2FnZSAxCisrZmkKKysKKytjZmxhZ3M9ZmFsc2UKKytsaWJz PWZhbHNlCisrCisrd2hpbGUgdGVzdCAkIyAtZ3QgMDsgZG8KKysgIGNhc2UgIiQxIiBpbgorKyAg LSo9Kikgb3B0YXJnPWBlY2hvICIkMSIgfCBzZWQgJ3MvWy1fYS16QS1aMC05XSo9Ly8nYCA7Owor KyAgKikgb3B0YXJnPSA7OworKyAgZXNhYworKworKyAgY2FzZSAkMSBpbgorKyAgICAtLXByZWZp eD0qKQorKyAgICAgIHByZWZpeD0kb3B0YXJnCisrICAgICAgOzsKKysKKysgICAgLS1wcmVmaXgp CisrICAgICAgZWNobyAkcHJlZml4CisrICAgICAgOzsKKysKKysgICAgLS12ZXJzaW9uKQorKyAg ICAgIGVjaG8gQFZFUlNJT05ACisrICAgICAgOzsKKysKKysgICAgLS1oZWxwKQorKyAgICAgIHVz YWdlIDAKKysgICAgICA7OworKworKyAgICAtLWNmbGFncykKKysgICAgICBpZiBbICIke3ByZWZp eH0iICE9ICIvdXNyIiBdOyB0aGVuCisrICAgICAgICBlY2hvIC1JJHtpbmNsdWRlZGlyfQorKyAg ICAgIGVsc2UKKysgICAgICAgIGVjaG8KKysgICAgICBmaQorKyAgICAgIDs7CisrCisrICAgIC0t bGlicykKKysgICAgICBpZiBbICIke3ByZWZpeH0iICE9ICIvdXNyIiBdOyB0aGVuCisrICAgICAg ICBlY2hvIC1MJHtsaWJkaXJ9IC1sQFBBQ0tBR0VACisrICAgICAgZWxzZQorKyAgICAgICAgZWNo byAtbEBQQUNLQUdFQAorKyAgICAgIGZpCisrICAgICAgOzsKKysKKysgICAgKikKKysgICAgICB1 c2FnZQorKyAgICAgIGV4aXQgMQorKyAgICAgIDs7CisrICBlc2FjCisrICBzaGlmdAorK2RvbmUK K2RpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9zb2NpLm00IHNvY2ktMy4wLjBfdHJlcDMwMC9z b2NpLm00CistLS0gc29jaS0zLjAuMF80LXBhY2svc29jaS5tNAkxOTcwLTAxLTAxIDAxOjAwOjAw LjAwMDAwMDAwMCArMDEwMAorKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpLm00CTIwMDktMDUt MDIgMjM6NTk6MTMuMDAwMDAwMDAwICswMjAwCitAQCAtMCwwICsxLDExOCBAQAorK2RubCBAc3lu b3BzaXMgQVhfU09DSQorK2RubCAKKytkbmwgVGhpcyBtYWNybyB0cmllcyB0byBmaW5kIFNvY2kg QyBBUEkgaGVhZGVyIGFuZCBsaWJyYXJ5IGxvY2F0aW9ucy4KKytkbmwKKytkbmwgV2UgZGVmaW5l IHRoZSBmb2xsb3dpbmcgY29uZmlndXJlIHNjcmlwdCBmbGFnczoKKytkbmwKKytkbmwJLS13aXRo LXNvY2k6IEdpdmUgcHJlZml4IGZvciBib3RoIGxpYnJhcnkgYW5kIGhlYWRlcnMsIGFuZCB0cnkK KytkbmwJCSAgICAgdG8gZ3Vlc3Mgc3ViZGlyZWN0b3J5IG5hbWVzIGZvciBlYWNoLiAgKGUuZy4g YWRkIC9saWIgYW5kCisrZG5sCQkgICAgIC9pbmNsdWRlIG9udG8gZ2l2ZW4gZGlyIG5hbWVzLCBh bmQgb3RoZXIgY29tbW9uIHNjaGVtZXMuKQorK2RubAorK2RubCBAdmVyc2lvbiAxLjMsIDIwMDkv MDUvMDIKKytkbmwgQGF1dGhvciBEZW5pcyBBcm5hdWQgPGRlbmlzX2FybmF1ZEB1c2Vycy5zb3Vy Y2Vmb3JnZS5uZXQ+CisrZG5sCisrZG5sIEB2ZXJzaW9uIDEuMiwgMjAwNy8wMi8yMAorK2RubCBA YXV0aG9yIFdhcnJlbiBZb3VuZyA8c29jaXBwQGV0ci11c2EuY29tPgorKworK0FDX0RFRlVOKFtB WF9TT0NJXSwKKytbCisrIworKyMgU2V0IHVwIGNvbmZpZ3VyZSBzY3JpcHQgbWFjcm9zCisrIwor K0FDX0FSR19XSVRIKHNvY2ksCisrCVstLXdpdGgtc29jaT08cGF0aD4gICAgIHJvb3QgZGlyZWN0 b3J5IHBhdGggb2YgU29jaSBpbnN0YWxsYXRpb25dLAorKwlbU09DSV9saWJfY2hlY2s9IiR3aXRo X3NvY2kvbGliNjQvc29jaSAkd2l0aF9zb2NpL2xpYi9zb2NpICR3aXRoX3NvY2kvbGliNjQgJHdp dGhfc29jaS9saWIiCisrCVNPQ0lfaW5jX2NoZWNrPSIkd2l0aF9zb2NpL2luY2x1ZGUgJHdpdGhf c29jaS9pbmNsdWRlL3NvY2kiXSwKKysJW1NPQ0lfbGliX2NoZWNrPSIvdXNyL2xpYjY0IC91c3Iv bGliIC91c3IvbGliNjQvc29jaSAvdXNyL2xpYi9zb2NpIC91c3IvbG9jYWwvbGliNjQgL3Vzci9s b2NhbC9saWIgL29wdC9zb2NpL2xpYjY0IC9vcHQvc29jaS9saWIgL3Vzci9sb2NhbC9saWI2NC9z b2NpIC91c3IvbG9jYWwvbGliL3NvY2kgL3Vzci9sb2NhbC9zb2NpL2xpYjY0IC91c3IvbG9jYWwv c29jaS9saWIgL29wdC9zb2NpL2xpYjY0L3NvY2kgL29wdC9zb2NpL2xpYi9zb2NpIgorKwlTT0NJ X2luY19jaGVjaz0iL3Vzci9pbmNsdWRlIC91c3IvaW5jbHVkZS9zb2NpIC91c3IvbG9jYWwvaW5j bHVkZSAvb3B0L3NvY2kvaW5jbHVkZSAvdXNyL2xvY2FsL2luY2x1ZGUvc29jaSAvdXNyL2xvY2Fs L3NvY2kvaW5jbHVkZSAvdXNyL2xvY2FsL3NvY2kvaW5jbHVkZS9zb2NpIC9vcHQvc29jaS9pbmNs dWRlL3NvY2kiXSkKKysKKysjIFNPQ0kgbGlicmFyeQorK1NPQ0lfQ09SRV9MSUI9c29jaV9jb3Jl CisrU09DSV9NWVNRTF9MSUI9c29jaV9teXNxbAorKworKyMKKysjIExvb2sgZm9yIFNvY2kgQ29y ZSBBUEkgbGlicmFyeQorKyMKKytBQ19NU0dfQ0hFQ0tJTkcoW2ZvciBTb2NpIGxpYnJhcnkgZGly ZWN0b3J5XSkKKytTT0NJX2xpYmRpcj0KKytmb3IgbSBpbiAkU09DSV9saWJfY2hlY2sKKytkbwor KwlpZiB0ZXN0IC1kICIkbSIgJiYgXAorKwkJKHRlc3QgLWYgIiRtL2xpYiRTT0NJX0NPUkVfTElC LnNvIiB8fCB0ZXN0IC1mICIkbS9saWIkU09DSV9DT1JFX0xJQi5hIikKKysJdGhlbgorKwkJU09D SV9saWJkaXI9JG0KKysJCWJyZWFrCisrCWZpCisrZG9uZQorKworK2lmIHRlc3QgLXogIiRTT0NJ X2xpYmRpciIKKyt0aGVuCisrCUFDX01TR19FUlJPUihbRGlkbid0IGZpbmQgJFNPQ0lfQ09SRV9M SUIgbGlicmFyeSBpbiAnJFNPQ0lfbGliX2NoZWNrJ10pCisrZmkKKysKKytjYXNlICIkU09DSV9s aWJkaXIiIGluCisrCS8qICkgOzsKKysJKiApICBBQ19NU0dfRVJST1IoW1RoZSBTb2NpIGxpYnJh cnkgZGlyZWN0b3J5ICgkU09DSV9saWJkaXIpIG11c3QgYmUgYW4gYWJzb2x1dGUgcGF0aC5dKSA7 OworK2VzYWMKKysKKytBQ19NU0dfUkVTVUxUKFskU09DSV9saWJkaXJdKQorKworK2Nhc2UgIiRT T0NJX2xpYmRpciIgaW4KKysgIC91c3IvbGliNjQpIDs7CisrICAvdXNyL2xpYikgOzsKKysgICop IFNPQ0lfTElCUz0iLUwke1NPQ0lfbGliZGlyfSIgOzsKKytlc2FjCisrTERGTEFHUz0iJExERkxB R1MgJHtTT0NJX0xJQlN9IgorKworKworKyMKKysjIExvb2sgZm9yIFNvY2kgQ29yZSBBUEkgaGVh ZGVycworKyMKKytBQ19NU0dfQ0hFQ0tJTkcoW2ZvciBTb2NpIGluY2x1ZGUgZGlyZWN0b3J5XSkK KytTT0NJX2luY2Rpcj0KKytmb3IgbSBpbiAkU09DSV9pbmNfY2hlY2sKKytkbworKwlpZiB0ZXN0 IC1kICIkbSIgJiYgdGVzdCAtZiAiJG0vc29jaS9jb3JlL3NvY2kuaCIKKysJdGhlbgorKwkJU09D SV9pbmNkaXI9JG0KKysJCWJyZWFrCisrCWZpCisrZG9uZQorKworK2lmIHRlc3QgLXogIiRTT0NJ X2luY2RpciIKKyt0aGVuCisrCUFDX01TR19FUlJPUihbRGlkbid0IGZpbmQgdGhlIFNvY2kgaW5j bHVkZSBkaXIgaW4gJyRTT0NJX2luY19jaGVjayddKQorK2ZpCisrCisrY2FzZSAiJFNPQ0lfaW5j ZGlyIiBpbgorKwkvKiApIDs7CisrCSogKSAgQUNfTVNHX0VSUk9SKFtUaGUgU29jaSBpbmNsdWRl IGRpcmVjdG9yeSAoJFNPQ0lfaW5jZGlyKSBtdXN0IGJlIGFuIGFic29sdXRlIHBhdGguXSkgOzsK Kytlc2FjCisrCisrQUNfTVNHX1JFU1VMVChbJFNPQ0lfaW5jZGlyXSkKKysKKytjYXNlICIkU09D SV9pbmNkaXIiIGluCisrICAvdXNyL2luY2x1ZGUpIDs7CisrICAqKSBTT0NJX0NGTEFHUz0iLUkk e1NPQ0lfaW5jZGlyfSIgOzsKKytlc2FjCisrCisrU09DSV9MSUJTPSIke1NPQ0lfTElCU30gLWwk e1NPQ0lfQ09SRV9MSUJ9IC1sJHtTT0NJX01ZU1FMX0xJQn0gLWxkbCIKKysKKytBQ19TVUJTVChT T0NJX0NGTEFHUykKKytBQ19TVUJTVChTT0NJX0xJQlMpCisrCisrIyBUZXN0IGxpbmtpbmcgd2l0 aCBzb2NpIChub3RlIHRoYXQgaXQgbmVlZHMgTXlTUUwgY2xpZW50IHRvIGhhdmUgYmVlbiBkZWZp bmVkCisrIyBiZWZvcmUpCisrc2F2ZV9MSUJTPSIkTElCUyIKKytpZiB0ZXN0IC16ICIkTVlTUUxf TElCUyIKKyt0aGVuCisrCU1ZU1FMX0xJQlM9Ii1ML3Vzci9saWI2NC9teXNxbCAtTC91c3IvbGli L215c3FsIC1sbXlzcWxjbGllbnQiCisrZmkKKytMSUJTPSIkTElCUyAkTVlTUUxfTElCUyAkU09D SV9MSUJTIgorK0FDX0NIRUNLX0xJQigkU09DSV9DT1JFX0xJQiwgc29jaV9iZWdpbiwKKysJICAg ICBbXSwgCisrICAgICAgICAgICAgIFtBQ19NU0dfRVJST1IoW0NvdWxkIG5vdCBmaW5kIHdvcmtp bmcgU29jaSBjbGllbnQgbGlicmFyeSFdKV0KKysJICAgICApCisrTElCUz0iJHNhdmVfTElCUyIK KytBQ19TVUJTVChTT0NJX0NPUkVfTElCKQorK10pIGRubCBBWF9TT0NJCitkaWZmIC1OdXIgc29j aS0zLjAuMF80LXBhY2svc29jaS5wYy5pbiBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS5wYy5pbgor LS0tIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kucGMuaW4JMTk3MC0wMS0wMSAwMTowMDowMC4wMDAw MDAwMDAgKzAxMDAKKysrKyBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS5wYy5pbgkyMDA5LTA0LTE2 IDE5OjM3OjEwLjAwMDAwMDAwMCArMDIwMAorQEAgLTAsMCArMSwxMSBAQAorK3ByZWZpeD1AcHJl Zml4QAorK2V4ZWNfcHJlZml4PUBleGVjX3ByZWZpeEAKKytsaWJkaXI9QGxpYmRpckAKKytpbmNs dWRlZGlyPUBpbmNsdWRlZGlyQAorKworK05hbWU6IEBQQUNLQUdFX05BTUVACisrRGVzY3JpcHRp b246IFRoZSBkYXRhYmFzZSBhY2Nlc3MgbGlicmFyeSBmb3IgQysrIHByb2dyYW1tZXJzCisrVmVy c2lvbjogQFBBQ0tBR0VfVkVSU0lPTkAKKytVUkw6IGh0dHA6Ly9AUEFDS0FHRUAuc291cmNlZm9y Z2UubmV0CisrTGliczogLUwke2xpYmRpcn0gLWxAUEFDS0FHRUBfY29yZSBATERGTEFHU0AgQExJ QlNACisrQ2ZsYWdzOiAtSSR7aW5jbHVkZWRpcn0KK2RpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFj ay9zb2NpLnNwZWMuaW4gc29jaS0zLjAuMF90cmVwMzAwL3NvY2kuc3BlYy5pbgorLS0tIHNvY2kt My4wLjBfNC1wYWNrL3NvY2kuc3BlYy5pbgkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCAr MDEwMAorKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpLnNwZWMuaW4JMjAxMC0wMS0yMyAxNDoz OTozMi4wMDAwMDAwMDAgKzAxMDAKK0BAIC0wLDAgKzEsMzM2IEBACisrIworKyMjCisrIyBEZWZh dWx0IHZhbHVlcyBhcmUgLS13aXRoIG15c3FsIC0td2l0aCBwb3N0Z3Jlc3FsIC0td2l0aG91dCBv cmFjbGUgCisrIyBOb3RlIHRoYXQsIGZvciBPcmFjbGUsIHdoZW4gZW5hYmxlZCwgdGhlIGZvbGxv d2luZyBvcHRpb25zIHNob3VsZAorKyMgYWxzbyBiZSBnaXZlbjoKKysjIC0td2l0aC1vcmFjbGUt aW5jbHVkZT0vb3B0L29yYWNsZS9hcHAvb3JhY2xlL3Byb2R1Y3QvMTEuMS4wL2RiXzEvcmRibXMv cHVibGljCisrIyAtLXdpdGgtb3JhY2xlLWxpYj0vb3B0L29yYWNsZS9hcHAvb3JhY2xlL3Byb2R1 Y3QvMTEuMS4wL2RiXzEvbGliCisrIyBJZiB0aGUgbWFjcm9zIGFyZSBkZWZpbmVkLCByZWRlZmlu ZSB0aGVtIHdpdGggdGhlIGNvcnJlY3QgY29tcGlsYXRpb24gZmxhZ3MuCisrJWJjb25kX3dpdGhv dXQgbXlzcWwKKyslYmNvbmRfd2l0aG91dCBwb3N0Z3Jlc3FsCisrJWJjb25kX3dpdGggb3JhY2xl CisrCisrJWRlZmluZSBfZGVmYXVsdF9vcmFjbGVfZGlyIC9vcHQvb3JhY2xlL2FwcC9vcmFjbGUv cHJvZHVjdC8xMS4xLjAvZGJfMQorKyV7IT9fd2l0aF9vcmFjbGVfaW5jZGlyOiAlZGVmaW5lIF93 aXRoX29yYWNsZV9pbmNkaXIgLS13aXRoLW9yYWNsZS1pbmNsdWRlPSV7X2RlZmF1bHRfb3JhY2xl X2Rpcn0vcmRibXMvcHVibGljfQorKyV7IT9fd2l0aF9vcmFjbGVfbGliZGlyOiAlZGVmaW5lIF93 aXRoX29yYWNsZV9saWJkaXIgLS13aXRoLW9yYWNsZS1saWI9JXtfZGVmYXVsdF9vcmFjbGVfZGly fS9saWJ9CisrIworKyMjCisrIworK05hbWU6ICAgICAgICAgICBAUEFDS0FHRUAKKytWZXJzaW9u OiAgICAgICAgQFZFUlNJT05ACisrUmVsZWFzZTogICAgICAgIEBSUE1fUkVMRUFTRUAlez9kaXN0 fQorKworK1N1bW1hcnk6ICAgICAgICBUaGUgZGF0YWJhc2UgYWNjZXNzIGxpYnJhcnkgZm9yIEMr KyBwcm9ncmFtbWVycworKworK0dyb3VwOiAgICAgICAgICBTeXN0ZW0gRW52aXJvbm1lbnQvTGli cmFyaWVzCisrTGljZW5zZTogICAgICAgIEJvb3N0CisrVVJMOiAgICAgICAgICAgIGh0dHA6Ly8l e25hbWV9LnNvdXJjZWZvcmdlLm5ldAorK1NvdXJjZTA6ICAgICAgICBodHRwOi8vZG93bmxvYWRz LnNvdXJjZWZvcmdlLm5ldC9zb2NpLyV7bmFtZX0tJXt2ZXJzaW9ufS50YXIuZ3oKKysjIFRoYXQg cGF0Y2ggd2lsbCBiZSBzdWJtaXR0ZWQgdXBzdHJlYW0KKytQYXRjaDA6ICAgICAgICAgJXtuYW1l fS0le3ZlcnNpb259LUBSUE1fUkVMRUFTRUAtZml4LWdjYzQ0LWNvbXBhdGliaWxpdHkucGF0Y2gK KysjIFRoYXQgcGF0Y2ggd2lsbCBiZSBzdWJtaXR0ZWQgdXBzdHJlYW0KKytQYXRjaDE6ICAgICAg ICAgJXtuYW1lfS0le3ZlcnNpb259LUBSUE1fUkVMRUFTRUAtZml4LWdudS1hdXRvdG9vbHMtY29t cGF0aWJpbGl0eS5wYXRjaAorK0J1aWxkUm9vdDogICAgICAle190bXBwYXRofS8le25hbWV9LSV7 dmVyc2lvbn0tJXtyZWxlYXNlfS1yb290LSUoJXtfX2lkX3V9IC1uKQorKworK0J1aWxkUmVxdWly ZXM6ICBib29zdC1kZXZlbAorKyNCdWlsZFJlcXVpcmVzOiAgY3BwdW5pdC1kZXZlbCA+PSAxLjEw CisrQnVpbGRSZXF1aXJlczogIGxpYnRvb2wKKysjUmVxdWlyZXM6ICAgICAgIAorKworKyVkZXNj cmlwdGlvbgorK0BQQUNLQUdFX05BTUVAIGlzIGEgQysrIGRhdGFiYXNlIGFjY2VzcyBsaWJyYXJ5 IHRoYXQgcHJvdmlkZXMgdGhlCisraWxsdXNpb24gb2YgZW1iZWRkaW5nIFNRTCBpbiByZWd1bGFy IEMrKyBjb2RlLCBzdGF5aW5nIGVudGlyZWx5IHdpdGhpbgorK3RoZSBDKysgc3RhbmRhcmQuCisr CisrCisrJXs/d2l0aF9teXNxbDolcGFja2FnZSAgICAgICAgbXlzcWwKKytTdW1tYXJ5OiAgICAg ICAgTXlTUUwgYmFja2VuZCBmb3IgJXtuYW1lfQorK0dyb3VwOiAgICAgICAgICBTeXN0ZW0gRW52 aXJvbm1lbnQvTGlicmFyaWVzCisrUmVxdWlyZXM6ICAgICAgICV7bmFtZX0gPSAle3ZlcnNpb259 LSV7cmVsZWFzZX0KKytCdWlsZFJlcXVpcmVzOiAgbXlzcWwtZGV2ZWwgPj0gNS4wCisrCisrJWRl c2NyaXB0aW9uICAgIG15c3FsCisrVGhpcyBwYWNrYWdlIGNvbnRhaW5zIHRoZSBNeVNRTCBiYWNr ZW5kIGZvciBAUEFDS0FHRV9OQU1FQCwgaS5lLiwKKytkeW5hbWljIGxpYnJhcnkgc3BlY2lmaWMg dG8gdGhlIE15U1FMIGRhdGFiYXNlLiBJZiB5b3Ugd291bGQgbGlrZSB0bworK3VzZSBAUEFDS0FH RV9OQU1FQCBpbiB5b3VyIHByb2dyYW1zIHdpdGggTXlTUUwsIHlvdSB3aWxsIG5lZWQgdG8KKytp bnN0YWxsICV7bmFtZX0tbXlzcWwufQorKworKyV7P3dpdGhfcG9zdGdyZXNxbDolcGFja2FnZSAg ICAgICAgcG9zdGdyZXNxbAorK1N1bW1hcnk6ICAgICAgICBQb3N0R3JlU1FMIGJhY2tlbmQgZm9y ICV7bmFtZX0KKytHcm91cDogICAgICAgICAgU3lzdGVtIEVudmlyb25tZW50L0xpYnJhcmllcwor K1JlcXVpcmVzOiAgICAgICAle25hbWV9ID0gJXt2ZXJzaW9ufS0le3JlbGVhc2V9CisrQnVpbGRS ZXF1aXJlczogIHBvc3RncmVzcWwtZGV2ZWwgPj0gNy4xCisrCisrJWRlc2NyaXB0aW9uICAgIHBv c3RncmVzcWwKKytUaGlzIHBhY2thZ2UgY29udGFpbnMgdGhlIFBvc3RHcmVTUUwgYmFja2VuZCBm b3IgQFBBQ0tBR0VfTkFNRUAsIGkuZS4sCisrZHluYW1pYyBsaWJyYXJ5IHNwZWNpZmljIHRvIHRo ZSBQb3N0R3JlU1FMIGRhdGFiYXNlLiBJZiB5b3Ugd291bGQgbGlrZQorK3RvIHVzZSBAUEFDS0FH RV9OQU1FQCBpbiB5b3VyIHByb2dyYW1zIHdpdGggUG9zdEdyZVNRTCwgeW91IHdpbGwgbmVlZCB0 bworK2luc3RhbGwgJXtuYW1lfS1wb3N0Z3Jlc3FsLn0KKysKKyslez93aXRoX29yYWNsZTolcGFj a2FnZSAgICAgICAgb3JhY2xlCisrU3VtbWFyeTogICAgICAgIE9yYWNsZSBiYWNrZW5kIGZvciAl e25hbWV9CisrR3JvdXA6ICAgICAgICAgIFN5c3RlbSBFbnZpcm9ubWVudC9MaWJyYXJpZXMKKytS ZXF1aXJlczogICAgICAgJXtuYW1lfSA9ICV7dmVyc2lvbn0tJXtyZWxlYXNlfQorKworKyVkZXNj cmlwdGlvbiAgICBvcmFjbGUKKytUaGlzIHBhY2thZ2UgY29udGFpbnMgdGhlIE9yYWNsZSBiYWNr ZW5kIGZvciBAUEFDS0FHRV9OQU1FQCwgaS5lLiwKKytkeW5hbWljIGxpYnJhcnkgc3BlY2lmaWMg dG8gdGhlIE9yYWNsZSBkYXRhYmFzZS4gSWYgeW91IHdvdWxkIGxpa2UgdG8KKyt1c2UgQFBBQ0tB R0VfTkFNRUAgaW4geW91ciBwcm9ncmFtcyB3aXRoIE9yYWNsZSwgeW91IHdpbGwgbmVlZCB0byBp bnN0YWxsCisrJXtuYW1lfS1vcmFjbGUufQorKworKworKyVwYWNrYWdlICAgICAgICBkZXZlbAor K1N1bW1hcnk6ICAgICAgICBIZWFkZXIgZmlsZXMsIGxpYnJhcmllcyBhbmQgZGV2ZWxvcG1lbnQg ZG9jdW1lbnRhdGlvbiBmb3IgJXtuYW1lfQorK0dyb3VwOiAgICAgICAgICBEZXZlbG9wbWVudC9M aWJyYXJpZXMKKytSZXF1aXJlczogICAgICAgJXtuYW1lfSA9ICV7dmVyc2lvbn0tJXtyZWxlYXNl fQorK1JlcXVpcmVzOiAgICAgICBwa2djb25maWcKKysKKyslZGVzY3JpcHRpb24gICAgZGV2ZWwK KytUaGlzIHBhY2thZ2UgY29udGFpbnMgdGhlIGhlYWRlciBmaWxlcywgZHluYW1pYyBsaWJyYXJp ZXMgYW5kCisrZGV2ZWxvcG1lbnQgZG9jdW1lbnRhdGlvbiBmb3IgJXtuYW1lfS4gSWYgeW91IHdv dWxkIGxpa2UgdG8gZGV2ZWxvcAorK3Byb2dyYW1zIHVzaW5nICV7bmFtZX0sIHlvdSB3aWxsIG5l ZWQgdG8gaW5zdGFsbCAle25hbWV9LWRldmVsLgorKworKyV7P3dpdGhfbXlzcWw6JXBhY2thZ2Ug ICAgICAgIG15c3FsLWRldmVsCisrU3VtbWFyeTogICAgICAgIE15U1FMIGJhY2tlbmQgZm9yICV7 bmFtZX0KKytHcm91cDogICAgICAgICAgRGV2ZWxvcG1lbnQvTGlicmFyaWVzCisrUmVxdWlyZXM6 ICAgICAgICV7bmFtZX0tZGV2ZWwgPSAle3ZlcnNpb259LSV7cmVsZWFzZX0KKytSZXF1aXJlczog ICAgICAgJXtuYW1lfS1teXNxbCA9ICV7dmVyc2lvbn0tJXtyZWxlYXNlfQorK1JlcXVpcmVzOiAg ICAgICBteXNxbC1kZXZlbCA+PSA1LjAKKysKKyslZGVzY3JpcHRpb24gICAgbXlzcWwtZGV2ZWwK KytUaGlzIHBhY2thZ2UgY29udGFpbnMgdGhlIE15U1FMIGJhY2tlbmQgZm9yICV7bmFtZX0sIGku ZS4sIGhlYWRlcgorK2ZpbGVzIGFuZCBkeW5hbWljIGxpYnJhcmllcyBzcGVjaWZpYyB0byB0aGUg TXlTUUwgZGF0YWJhc2UuIElmIHlvdQorK3dvdWxkIGxpa2UgdG8gZGV2ZWxvcCBwcm9ncmFtcyB1 c2luZyAle25hbWV9IGFuZCBNeVNRTCwgeW91IHdpbGwgbmVlZAorK3RvIGluc3RhbGwgJXtuYW1l fS1teXNxbC59CisrCisrJXs/d2l0aF9wb3N0Z3Jlc3FsOiVwYWNrYWdlICAgICAgICBwb3N0Z3Jl c3FsLWRldmVsCisrU3VtbWFyeTogICAgICAgIFBvc3RHcmVTUUwgYmFja2VuZCBmb3IgJXtuYW1l fQorK0dyb3VwOiAgICAgICAgICBEZXZlbG9wbWVudC9MaWJyYXJpZXMKKytSZXF1aXJlczogICAg ICAgJXtuYW1lfS1kZXZlbCA9ICV7dmVyc2lvbn0tJXtyZWxlYXNlfQorK1JlcXVpcmVzOiAgICAg ICAle25hbWV9LXBvc3RncmVzcWwgPSAle3ZlcnNpb259LSV7cmVsZWFzZX0KKytSZXF1aXJlczog ICAgICAgcG9zdGdyZXNxbC1kZXZlbCA+PSA3LjEKKysKKyslZGVzY3JpcHRpb24gICAgcG9zdGdy ZXNxbC1kZXZlbAorK1RoaXMgcGFja2FnZSBjb250YWlucyB0aGUgUG9zdEdyZVNRTCBiYWNrZW5k IGZvciAle25hbWV9LCBpLmUuLCBoZWFkZXIKKytmaWxlcyBhbmQgZHluYW1pYyBsaWJyYXJpZXMg c3BlY2lmaWMgdG8gdGhlIFBvc3RHcmVTUUwgZGF0YWJhc2UuIElmCisreW91IHdvdWxkIGxpa2Ug dG8gZGV2ZWxvcCBwcm9ncmFtcyB1c2luZyAle25hbWV9IGFuZCBQb3N0R3JlU1FMLCB5b3UKKyt3 aWxsIG5lZWQgdG8gaW5zdGFsbCAle25hbWV9LXBvc3RncmVzcWwufQorKworKyV7P3dpdGhfb3Jh Y2xlOiVwYWNrYWdlICAgICAgICBvcmFjbGUtZGV2ZWwKKytTdW1tYXJ5OiAgICAgICAgT3JhY2xl IGJhY2tlbmQgZm9yICV7bmFtZX0KKytHcm91cDogICAgICAgICAgRGV2ZWxvcG1lbnQvTGlicmFy aWVzCisrUmVxdWlyZXM6ICAgICAgICV7bmFtZX0tZGV2ZWwgPSAle3ZlcnNpb259LSV7cmVsZWFz ZX0KKytSZXF1aXJlczogICAgICAgJXtuYW1lfS1vcmFjbGUgPSAle3ZlcnNpb259LSV7cmVsZWFz ZX0KKysKKyslZGVzY3JpcHRpb24gICAgb3JhY2xlLWRldmVsCisrVGhpcyBwYWNrYWdlIGNvbnRh aW5zIHRoZSBPcmFjbGUgYmFja2VuZCBmb3IgJXtuYW1lfSwgaS5lLiwgaGVhZGVyCisrZmlsZXMg YW5kIGR5bmFtaWMgbGlicmFyaWVzIHNwZWNpZmljIHRvIHRoZSBPcmFjbGUgZGF0YWJhc2UuIElm IHlvdQorK3dvdWxkIGxpa2UgdG8gZGV2ZWxvcCBwcm9ncmFtcyB1c2luZyAle25hbWV9IGFuZCBP cmFjbGUsIHlvdSB3aWxsIG5lZWQKKyt0byBpbnN0YWxsICV7bmFtZX0tb3JhY2xlLn0KKysKKysK KyslcGFja2FnZSBkb2MKKytTdW1tYXJ5OiAgICAgICAgSFRNTCBkb2N1bWVudGF0aW9uIGZvciB0 aGUgQFBBQ0tBR0VfTkFNRUAgbGlicmFyeQorK0dyb3VwOiAgICAgICAgICBEb2N1bWVudGF0aW9u CisrJWlmIDAlez9mZWRvcmF9ID49IDEwCisrQnVpbGRBcmNoOiAgICAgIG5vYXJjaAorKyNCdWls ZFJlcXVpcmVzOiAgdGV4bGl2ZS1sYXRleCwgdGV4bGl2ZS1kdmlwcworKyVlbmRpZgorKyNCdWls ZFJlcXVpcmVzOiAgdGV0ZXgtbGF0ZXgsIHRldGV4LWR2aXBzCisrI0J1aWxkUmVxdWlyZXM6ICBk b3h5Z2VuLCBnaG9zdHNjcmlwdAorKworKyVkZXNjcmlwdGlvbiBkb2MKKytUaGlzIHBhY2thZ2Ug Y29udGFpbnMgdGhlIGRvY3VtZW50YXRpb24gaW4gdGhlIEhUTUwgZm9ybWF0IG9mIHRoZSBAUEFD S0FHRV9OQU1FQAorK2xpYnJhcnkuIFRoZSBkb2N1bWVudGF0aW9uIGlzIHRoZSBzYW1lIGFzIGF0 IHRoZSBAUEFDS0FHRV9OQU1FQCB3ZWIgcGFnZS4KKysKKysKKyslcHJlcAorKyVzZXR1cCAtcQor KworKyMgQXBwbHkgdGhlIGcrKyA0LjQgY29tcGF0aWJpbGl0eSBwYXRjaAorKyVwYXRjaDAgLXAx CisrCisrIyBSZW5hbWUgY2hhbmdlLWxvZyBhbmQgbGljZW5zZSBmaWxlLCBzbyB0aGF0IHRoZXkg Y29tcGx5IHdpdGgKKysjIHBhY2thZ2luZyBzdGFuZGFyZAorK212IENIQU5HRVMgQ2hhbmdlTG9n CisrbXYgTElDRU5TRV8xXzAudHh0IENPUFlJTkcKKytybSAtZiBJTlNUQUxMCisrCisrIyBSZW1v dmUgTWFjT1NYIGNvbXBhdGliaWxpdHkgYnVpbGRpbmcgZmlsZXMKKytybSAtZiBidWlsZC91bml4 Ly5fKi50Y2wKKytybSAtZiAuX01ha2VmaWxlIC5fY29uZmlndXJlCisrcm0gLWYgc3JjL2NvcmUv Ll8qLmggc3JjL2NvcmUvLl8qLmNwcAorK3JtIC1mIHNyYy9iYWNrZW5kcy9wb3N0Z3Jlc3FsLy5f Ki5oCisrcm0gLWYgZG9jLy5fKi5odG1sCisrCisrIyBSZW5hbWUgdGhlIHNvdXJjZSBjb2RlIGRp cmVjdG9yeSwgc28gdGhhdCB0aGUgZmlsZXMgKGUuZywgaGVhZGVyCisrIyBmaWxlcykgY2FuIGJl IGV4cG9ydGVkIGNvcnJlY3RseSBpbnRvIHtfc3RhbmRhcmRfZGlyfS8le25hbWV9CisrbXYgc3Jj ICV7bmFtZX0KKysKKysjIEFwcGx5IHRoZSBHTlUgQXV0b3Rvb2xzIGNvbXBhdGliaWxpdHkgcGF0 Y2gKKyslcGF0Y2gxIC1wMQorKworKyMgRml4IHNvbWUgcGVybWlzc2lvbnMgYW5kIGZvcm1hdHMK KytmaW5kIC4vZG9jIC10eXBlIGYgLXBlcm0gNzU1IC1leGVjIGNobW9kIDY0NCB7fSBcOworK2No bW9kIC14IEFVVEhPUlMgQ2hhbmdlTG9nIENPUFlJTkcgTkVXUyBSRUFETUUKKysjIGZpbmQgLiAt dHlwZSBmIC1uYW1lICcqLltoY11wcCcgLWV4ZWMgY2htb2QgNjQ0IHt9IFw7CisrCisrCisrJWJ1 aWxkCisrJWNvbmZpZ3VyZSAtLWRpc2FibGUtc3RhdGljIFwKKyslez93aXRoX215c3FsOi0tZW5h YmxlLWJhY2tlbmQtbXlzcWx9IFwKKyslez93aXRoX3Bvc3RncmVzcWw6LS1lbmFibGUtYmFja2Vu ZC1wb3N0Z3Jlc3FsfSBcCisrJXs/d2l0aF9vcmFjbGU6LS1lbmFibGUtYmFja2VuZC1vcmFjbGUg JXs/X3dpdGhfb3JhY2xlX2luY2Rpcn0gJXs/X3dpdGhfb3JhY2xlX2xpYmRpcn19CisrbWFrZSAl ez9fc21wX21mbGFnc30KKysKKyslaW5zdGFsbAorK3JtIC1yZiAkUlBNX0JVSUxEX1JPT1QKKytt YWtlIGluc3RhbGwgREVTVERJUj0kUlBNX0JVSUxEX1JPT1QKKysjIworKyMgIFJlbW92ZSB1bnBh Y2thZ2VkIGZpbGVzIGZyb20gdGhlIGJ1aWxkcm9vdAorK3JtIC1mICRSUE1fQlVJTERfUk9PVCV7 X2luY2x1ZGVkaXJ9LyV7bmFtZX0vY29uZmlnLmgKKytybSAtZiAkUlBNX0JVSUxEX1JPT1Qle19s aWJkaXJ9L2xpYiV7bmFtZX1fKi5sYQorKyMjCisrIyMKKysjICBEdXBsaWNhdGUgdGhlIGhlYWRl ciBmaWxlcywgc28gYXMgdG8ga2VlcCB0aGUgY29tcGF0aWJpbGl0eSwgZm9yCisrIyAgZGV2ZWxv cGVycyB1c2luZyB0aGUgU09DSSBsaWJyYXJ5LCB3aXRoIHRoZSBub24tcGFja2FnZWQgdmVyc2lv biBvZgorKyMgIHRoYXQgbGlicmFyeS4KKytmb3IgaGVhZGVyX2ZpbGUgaW4gJFJQTV9CVUlMRF9S T09UJXtfaW5jbHVkZWRpcn0vJXtuYW1lfS9jb3JlLyouaDsgZG8KKysgIGNwICR7aGVhZGVyX2Zp bGV9ICRSUE1fQlVJTERfUk9PVCV7X2luY2x1ZGVkaXJ9LyV7bmFtZX0KKytkb25lCisrJXs/d2l0 aF9teXNxbDpjcCAkUlBNX0JVSUxEX1JPT1Qle19pbmNsdWRlZGlyfS8le25hbWV9L2JhY2tlbmRz L215c3FsL3NvY2ktbXlzcWwuaCAkUlBNX0JVSUxEX1JPT1Qle19pbmNsdWRlZGlyfS8le25hbWV9 fQorKyV7P3dpdGhfcG9zdGdyZXNxbDpjcCAkUlBNX0JVSUxEX1JPT1Qle19pbmNsdWRlZGlyfS8l e25hbWV9L2JhY2tlbmRzL3Bvc3RncmVzcWwvc29jaS1wb3N0Z3Jlc3FsLmggJFJQTV9CVUlMRF9S T09UJXtfaW5jbHVkZWRpcn0vJXtuYW1lfX0KKyslez93aXRoX29yYWNsZTpjcCAkUlBNX0JVSUxE X1JPT1Qle19pbmNsdWRlZGlyfS8le25hbWV9L2JhY2tlbmRzL29yYWNsZS9zb2NpLW9yYWNsZS5o ICRSUE1fQlVJTERfUk9PVCV7X2luY2x1ZGVkaXJ9LyV7bmFtZX19CisrCisrCisrJWNsZWFuCisr cm0gLXJmICRSUE1fQlVJTERfUk9PVAorKworKyVwb3N0IC1wIC9zYmluL2xkY29uZmlnCisrCisr JXBvc3R1biAtcCAvc2Jpbi9sZGNvbmZpZworKworKyV7P3dpdGhfbXlzcWw6JXBvc3QgbXlzcWwg LXAgL3NiaW4vbGRjb25maWcKKysKKyslcG9zdHVuIG15c3FsIC1wIC9zYmluL2xkY29uZmlnfQor KworKyV7P3dpdGhfcG9zdGdyZXNxbDolcG9zdCBwb3N0Z3Jlc3FsIC1wIC9zYmluL2xkY29uZmln CisrCisrJXBvc3R1biBwb3N0Z3Jlc3FsIC1wIC9zYmluL2xkY29uZmlnfQorKworKyV7P3dpdGhf b3JhY2xlOiVwb3N0IG9yYWNsZSAtcCAvc2Jpbi9sZGNvbmZpZworKworKyVwb3N0dW4gb3JhY2xl IC1wIC9zYmluL2xkY29uZmlnfQorKworKworKworKyVmaWxlcworKyVkZWZhdHRyKC0scm9vdCxy b290LC0pCisrJWRvYyBBVVRIT1JTIENoYW5nZUxvZyBDT1BZSU5HIE5FV1MgUkVBRE1FCisrJXtf bGliZGlyfS9saWIle25hbWV9X2NvcmUuc28uKgorKworKyV7P3dpdGhfbXlzcWw6JWZpbGVzIG15 c3FsCisrJWRlZmF0dHIoLSxyb290LHJvb3QsLSkKKyslZG9jIEFVVEhPUlMgQ2hhbmdlTG9nIENP UFlJTkcgTkVXUyBSRUFETUUKKysle19saWJkaXJ9L2xpYiV7bmFtZX1fbXlzcWwuc28uKn0KKysK Kyslez93aXRoX3Bvc3RncmVzcWw6JWZpbGVzIHBvc3RncmVzcWwKKyslZGVmYXR0cigtLHJvb3Qs cm9vdCwtKQorKyVkb2MgQVVUSE9SUyBDaGFuZ2VMb2cgQ09QWUlORyBORVdTIFJFQURNRQorKyV7 X2xpYmRpcn0vbGliJXtuYW1lfV9wb3N0Z3Jlc3FsLnNvLip9CisrCisrJXs/d2l0aF9vcmFjbGU6 JWZpbGVzIG9yYWNsZQorKyVkZWZhdHRyKC0scm9vdCxyb290LC0pCisrJWRvYyBBVVRIT1JTIENo YW5nZUxvZyBDT1BZSU5HIE5FV1MgUkVBRE1FCisrJXtfbGliZGlyfS9saWIle25hbWV9X29yYWNs ZS5zby4qfQorKworKworKyVmaWxlcyBkZXZlbAorKyVkZWZhdHRyKC0scm9vdCxyb290LC0pCisr JWRvYyBBVVRIT1JTIENoYW5nZUxvZyBDT1BZSU5HIE5FV1MgUkVBRE1FCisrJWRpciAle19pbmNs dWRlZGlyfS8le25hbWV9CisrJWRpciAle19pbmNsdWRlZGlyfS8le25hbWV9L2NvcmUKKysle19p bmNsdWRlZGlyfS8le25hbWV9LyouaAorKyV7X2luY2x1ZGVkaXJ9LyV7bmFtZX0vY29yZS8qLmgK Kysle19pbmNsdWRlZGlyfS8le25hbWV9L2NvcmUvdGVzdAorKyV7X2JpbmRpcn0vJXtuYW1lfS1j b25maWcKKysle19saWJkaXJ9L2xpYiV7bmFtZX1fY29yZS5zbworKyV7X2xpYmRpcn0vcGtnY29u ZmlnLyV7bmFtZX0ucGMKKysle19kYXRhZGlyfS9hY2xvY2FsLyV7bmFtZX0ubTQKKysle19tYW5k aXJ9L21hbjEvJXtuYW1lfS1jb25maWcuMS4qCisrCisrJXs/d2l0aF9teXNxbDolZmlsZXMgbXlz cWwtZGV2ZWwKKyslZGVmYXR0cigtLHJvb3Qscm9vdCwtKQorKyVkb2MgQVVUSE9SUyBDaGFuZ2VM b2cgQ09QWUlORyBORVdTIFJFQURNRQorKyVkaXIgJXtfaW5jbHVkZWRpcn0vJXtuYW1lfQorKyV7 X2luY2x1ZGVkaXJ9LyV7bmFtZX0vYmFja2VuZHMvbXlzcWwKKysle19saWJkaXJ9L2xpYiV7bmFt ZX1fbXlzcWwuc299CisrCisrJXs/d2l0aF9wb3N0Z3Jlc3FsOiVmaWxlcyBwb3N0Z3Jlc3FsLWRl dmVsCisrJWRlZmF0dHIoLSxyb290LHJvb3QsLSkKKyslZG9jIEFVVEhPUlMgQ2hhbmdlTG9nIENP UFlJTkcgTkVXUyBSRUFETUUKKyslZGlyICV7X2luY2x1ZGVkaXJ9LyV7bmFtZX0KKysle19pbmNs dWRlZGlyfS8le25hbWV9L2JhY2tlbmRzL3Bvc3RncmVzcWwKKysle19saWJkaXJ9L2xpYiV7bmFt ZX1fcG9zdGdyZXNxbC5zb30KKysKKyslez93aXRoX29yYWNsZTolZmlsZXMgb3JhY2xlLWRldmVs CisrJWRlZmF0dHIoLSxyb290LHJvb3QsLSkKKyslZG9jIEFVVEhPUlMgQ2hhbmdlTG9nIENPUFlJ TkcgTkVXUyBSRUFETUUKKyslZGlyICV7X2luY2x1ZGVkaXJ9LyV7bmFtZX0KKysle19pbmNsdWRl ZGlyfS8le25hbWV9L2JhY2tlbmRzL29yYWNsZQorKyV7X2xpYmRpcn0vbGliJXtuYW1lfV9vcmFj bGUuc299CisrCisrCisrJWZpbGVzIGRvYworKyVkZWZhdHRyKC0scm9vdCxyb290LC0pCisrJWRv YyBBVVRIT1JTIENoYW5nZUxvZyBDT1BZSU5HIE5FV1MgUkVBRE1FIGRvYworKworKworKyVjaGFu Z2Vsb2cKKysqIFNhdCBKYW4gMjMgMjAxMCBEZW5pcyBBcm5hdWQgPGRlbmlzLmFybmF1ZF9mZWRv cmFAbTR4Lm9yZz4gMy4wLjAtMTYKKystIEFkZGVkIGEgbWlzc2luZyBjc3RyaW5nIGhlYWRlciBp bmNsdWRlIGZvciBnKystNC40IGNvbXBhdGliaWxpdHkKKysKKysqIEZyaSBKYW4gMjIgMjAxMCBS YWh1bCBTdW5kYXJhbSA8c3VuZGFyYW1AZmVkb3JhcHJvamVjdC5vcmc+IC0gMy4wLjAtMTUKKyst IFJlYnVpbGQgZm9yIEJvb3N0IHNvbmFtZSBidW1wCisrCisrKiBTdW4gSnVsIDI2IDIwMDkgRmVk b3JhIFJlbGVhc2UgRW5naW5lZXJpbmcgPHJlbC1lbmdAbGlzdHMuZmVkb3JhcHJvamVjdC5vcmc+ IC0gMy4wLjAtMTQKKystIFJlYnVpbHQgZm9yIGh0dHBzOi8vZmVkb3JhcHJvamVjdC5vcmcvd2lr aS9GZWRvcmFfMTJfTWFzc19SZWJ1aWxkCisrCisrKiBTYXQgTWF5IDA5IDIwMDkgRGVuaXMgQXJu YXVkIDxkZW5pcy5hcm5hdWRfZmVkb3JhQG00eC5vcmc+IDMuMC4wLTEzCisrLSBJbnRyb2R1Y2Vk IGRpc3RpbmN0IGRlcGVuZGVuY2llcyBmb3IgZGlmZmVyZW50IGRpc3RyaWJ1dGlvbnMKKysKKysq IFR1ZSBNYXkgMDUgMjAwOSBEZW5pcyBBcm5hdWQgPGRlbmlzLmFybmF1ZF9mZWRvcmFAbTR4Lm9y Zz4gMy4wLjAtMTIKKystIFJlbW92ZWQgdGhlIGRlcGVuZGVuY3kgb24gdGhlIHZlcnNpb24gb2Yg Qm9vc3QsIGFuZCBvbiBDUFBVbml0CisrCisrKiBUdWUgTWF5IDA1IDIwMDkgRGVuaXMgQXJuYXVk IDxkZW5pcy5hcm5hdWRfZmVkb3JhQG00eC5vcmc+IDMuMC4wLTExCisrLSBSZW1vdmVkIHRoZSBk ZXBlbmRlbmN5IG9uIExhdGV4IGZvciBkb2N1bWVudGF0aW9uIGRlbGl2ZXJ5CisrCisrKiBUdWUg TWF5IDA1IDIwMDkgRGVuaXMgQXJuYXVkIDxkZW5pcy5hcm5hdWRfZmVkb3JhQG00eC5vcmc+IDMu MC4wLTEwCisrLSBCdXJyaWVkIHRoZSBCb29zdCBGdXNpb24gaGVhZGVyIGluY2x1ZGUgZm9yIGNv cmUvdGVzdC9jb21tb24tdGVzdHMuaAorKworKyogVHVlIE1heSAwNSAyMDA5IERlbmlzIEFybmF1 ZCA8ZGVuaXMuYXJuYXVkX2ZlZG9yYUBtNHgub3JnPiAzLjAuMC05CisrLSBBZGRlZCBhIG1pc3Np bmcgY3N0ZGlvIGhlYWRlciBpbmNsdWRlIGZvciBnKystNC40IGNvbXBhdGliaWxpdHkKKysKKysq IFR1ZSBNYXkgMDUgMjAwOSBEZW5pcyBBcm5hdWQgPGRlbmlzLmFybmF1ZF9mZWRvcmFAbTR4Lm9y Zz4gMy4wLjAtOAorKy0gQWRkZWQgbWlzc2luZyBjc3RkaW8gaGVhZGVyIGluY2x1ZGVzIGZvciBn KystNC40IGNvbXBhdGliaWxpdHkKKysKKysqIFR1ZSBNYXkgMDUgMjAwOSBEZW5pcyBBcm5hdWQg PGRlbmlzLmFybmF1ZF9mZWRvcmFAbTR4Lm9yZz4gMy4wLjAtNworKy0gQWRkZWQgYSBtaXNzaW5n IGNzdGRpbyBoZWFkZXIgaW5jbHVkZSBmb3IgZysrLTQuNCBjb21wYXRpYmlsaXR5CisrCisrKiBT YXQgTWF5IDAyIDIwMDkgRGVuaXMgQXJuYXVkIDxkZW5pcy5hcm5hdWRfZmVkb3JhQG00eC5vcmc+ IDMuMC4wLTYKKystIFJlbW92ZWQgdGhlIHVudXNlZCBidWlsZCBjb25kaXRpb25hbHMKKysKKysq IFR1ZSBBcHIgMjggMjAwOSBEZW5pcyBBcm5hdWQgPGRlbmlzLmFybmF1ZF9mZWRvcmFAbTR4Lm9y Zz4gMy4wLjAtNQorKy0gU2ltcGxpZmllZCB0aGUgY29uZGl0aW9uYWwgYnVpbGQgcnVsZXMgd2l0 aGluIHRoZSBSUE0gc3BlY2lmaWNhdGlvbiBmaWxlCisrCisrKiBTYXQgQXByIDE4IDIwMDkgRGVu aXMgQXJuYXVkIDxkZW5pcy5hcm5hdWRfZmVkb3JhQG00eC5vcmc+IDMuMC4wLTQKKystIEZpeGVk IGFuIGlzc3VlIGFib3V0IE9QVEZMQUdTIGNvbXBpbGF0aW9uCisrCisrKiBUdWUgQXByIDE0IDIw MDkgRGVuaXMgQXJuYXVkIDxkZW5pcy5hcm5hdWRfZmVkb3JhQG00eC5vcmc+IDMuMC4wLTMKKyst IFJlc3RhcnRlZCBmcm9tIHByaXN0aW5lIHZlcnNpb24gMy4wLjAgb2YgdXBzdHJlYW0gKFNPQ0kp IHByb2plY3QKKysKKysqIFNhdCBBcHIgIDQgMjAwOSBEZW5pcyBBcm5hdWQgPGRlbmlzLmFybmF1 ZF9mZWRvcmFAbTR4Lm9yZz4gMy4wLjAtMgorKy0gU3BlY2lmaWMgUlBNIGZvciBlYWNoIGJhY2tl bmQKKysKKysqIEZyaSBNYXIgMjcgMjAwOSBEZW5pcyBBcm5hdWQgPGRlbmlzLmFybmF1ZF9mZWRv cmFAbTR4Lm9yZz4gMy4wLjAtMQorKy0gRmlyc3QgUlBNIHJlbGVhc2UKCmRpZmYgLS1naXQgYS9z b2NpLnNwZWMgYi9zb2NpLnNwZWMKaW5kZXggNDk4MWUxOS4uZmU3MzY0ZCAxMDA2NDQKLS0tIGEv c29jaS5zcGVjCisrKyBiL3NvY2kuc3BlYwpAQCAtMTgsNyArMTgsNyBAQAogIwogTmFtZTogICAg ICAgICAgIHNvY2kKIFZlcnNpb246ICAgICAgICAzLjAuMAotUmVsZWFzZTogICAgICAgIDE1JXs/ ZGlzdH0KK1JlbGVhc2U6ICAgICAgICAxNiV7P2Rpc3R9CiAKIFN1bW1hcnk6ICAgICAgICBUaGUg ZGF0YWJhc2UgYWNjZXNzIGxpYnJhcnkgZm9yIEMrKyBwcm9ncmFtbWVycwogCkBAIC0yNyw5ICsy Nyw5IEBAIExpY2Vuc2U6ICAgICAgICBCb29zdAogVVJMOiAgICAgICAgICAgIGh0dHA6Ly8le25h bWV9LnNvdXJjZWZvcmdlLm5ldAogU291cmNlMDogICAgICAgIGh0dHA6Ly9kb3dubG9hZHMuc291 cmNlZm9yZ2UubmV0L3NvY2kvJXtuYW1lfS0le3ZlcnNpb259LnRhci5negogIyBUaGF0IHBhdGNo IHdpbGwgYmUgc3VibWl0dGVkIHVwc3RyZWFtCi1QYXRjaDA6ICAgICAgICAgJXtuYW1lfS0le3Zl cnNpb259LTEzLWZpeC1nY2M0My1jb21wYXRpYmlsaXR5LnBhdGNoCitQYXRjaDA6ICAgICAgICAg JXtuYW1lfS0le3ZlcnNpb259LTE2LWZpeC1nY2M0NC1jb21wYXRpYmlsaXR5LnBhdGNoCiAjIFRo YXQgcGF0Y2ggd2lsbCBiZSBzdWJtaXR0ZWQgdXBzdHJlYW0KLVBhdGNoMTogICAgICAgICAle25h bWV9LSV7dmVyc2lvbn0tMTMtZml4LWdudS1hdXRvdG9vbHMtY29tcGF0aWJpbGl0eS5wYXRjaAor UGF0Y2gxOiAgICAgICAgICV7bmFtZX0tJXt2ZXJzaW9ufS0xNi1maXgtZ251LWF1dG90b29scy1j b21wYXRpYmlsaXR5LnBhdGNoCiBCdWlsZFJvb3Q6ICAgICAgJXtfdG1wcGF0aH0vJXtuYW1lfS0l e3ZlcnNpb259LSV7cmVsZWFzZX0tcm9vdC0lKCV7X19pZF91fSAtbikKIAogQnVpbGRSZXF1aXJl czogIGJvb3N0LWRldmVsCkBAIC0xNDcsNyArMTQ3LDcgQEAgbGlicmFyeS4gVGhlIGRvY3VtZW50 YXRpb24gaXMgdGhlIHNhbWUgYXMgYXQgdGhlIFNPQ0kgd2ViIHBhZ2UuCiAlcHJlcAogJXNldHVw IC1xCiAKLSMgQXBwbHkgdGhlIGcrKyA0LjMgY29tcGF0aWJpbGl0eSBwYXRjaAorIyBBcHBseSB0 aGUgZysrIDQuNCBjb21wYXRpYmlsaXR5IHBhdGNoCiAlcGF0Y2gwIC1wMQogCiAjIFJlbmFtZSBj aGFuZ2UtbG9nIGFuZCBsaWNlbnNlIGZpbGUsIHNvIHRoYXQgdGhleSBjb21wbHkgd2l0aApAQCAt Mjg3LDYgKzI4Nyw5IEBAIHJtIC1yZiAkUlBNX0JVSUxEX1JPT1QKIAogCiAlY2hhbmdlbG9nCisq IFNhdCBKYW4gMjMgMjAxMCBEZW5pcyBBcm5hdWQgPGRlbmlzLmFybmF1ZF9mZWRvcmFAbTR4Lm9y Zz4gMy4wLjAtMTYKKy0gQWRkZWQgYSBtaXNzaW5nIGNzdHJpbmcgaGVhZGVyIGluY2x1ZGUgZm9y IGcrKy00LjQgY29tcGF0aWJpbGl0eQorCiAqIEZyaSBKYW4gMjIgMjAxMCBSYWh1bCBTdW5kYXJh bSA8c3VuZGFyYW1AZmVkb3JhcHJvamVjdC5vcmc+IC0gMy4wLjAtMTUKIC0gUmVidWlsZCBmb3Ig Qm9vc3Qgc29uYW1lIGJ1bXAKIAo=